@maggioli-design-system/magma-angular 2.0.0-alpha.1 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3491 +0,0 @@
1
- import { __decorate } from "tslib";
2
- /* tslint:disable */
3
- /* auto-generated angular directive proxies */
4
- import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';
5
- import { ProxyCmp } from './angular-component-lib/utils';
6
- import * as i0 from "@angular/core";
7
- let MdsAccordion = class MdsAccordion {
8
- z;
9
- el;
10
- mdsAccordionChange = new EventEmitter();
11
- constructor(c, r, z) {
12
- this.z = z;
13
- c.detach();
14
- this.el = r.nativeElement;
15
- }
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
17
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsAccordion, selector: "mds-accordion", inputs: { closable: "closable", multiple: "multiple" }, outputs: { mdsAccordionChange: "mdsAccordionChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
18
- };
19
- MdsAccordion = __decorate([
20
- ProxyCmp({
21
- inputs: ['closable', 'multiple']
22
- })
23
- ], MdsAccordion);
24
- export { MdsAccordion };
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAccordion, decorators: [{
26
- type: Component,
27
- args: [{
28
- selector: 'mds-accordion',
29
- changeDetection: ChangeDetectionStrategy.OnPush,
30
- template: '<ng-content></ng-content>',
31
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
32
- inputs: ['closable', 'multiple'],
33
- outputs: ['mdsAccordionChange'],
34
- standalone: false
35
- }]
36
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsAccordionChange: [{
37
- type: Output
38
- }] } });
39
- let MdsAccordionItem = class MdsAccordionItem {
40
- z;
41
- el;
42
- mdsAccordionItemSelect = new EventEmitter();
43
- mdsAccordionItemUnselect = new EventEmitter();
44
- mdsAccordionItemChange = new EventEmitter();
45
- constructor(c, r, z) {
46
- this.z = z;
47
- c.detach();
48
- this.el = r.nativeElement;
49
- }
50
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAccordionItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
51
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsAccordionItem, selector: "mds-accordion-item", inputs: { label: "label", selected: "selected", typography: "typography" }, outputs: { mdsAccordionItemSelect: "mdsAccordionItemSelect", mdsAccordionItemUnselect: "mdsAccordionItemUnselect", mdsAccordionItemChange: "mdsAccordionItemChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
- };
53
- MdsAccordionItem = __decorate([
54
- ProxyCmp({
55
- inputs: ['label', 'selected', 'typography']
56
- })
57
- ], MdsAccordionItem);
58
- export { MdsAccordionItem };
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAccordionItem, decorators: [{
60
- type: Component,
61
- args: [{
62
- selector: 'mds-accordion-item',
63
- changeDetection: ChangeDetectionStrategy.OnPush,
64
- template: '<ng-content></ng-content>',
65
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
66
- inputs: [{ name: 'label', required: true }, 'selected', 'typography'],
67
- outputs: ['mdsAccordionItemSelect', 'mdsAccordionItemUnselect', 'mdsAccordionItemChange'],
68
- standalone: false
69
- }]
70
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsAccordionItemSelect: [{
71
- type: Output
72
- }], mdsAccordionItemUnselect: [{
73
- type: Output
74
- }], mdsAccordionItemChange: [{
75
- type: Output
76
- }] } });
77
- let MdsAccordionTimer = class MdsAccordionTimer {
78
- z;
79
- el;
80
- mdsAccordionTimerChange = new EventEmitter();
81
- constructor(c, r, z) {
82
- this.z = z;
83
- c.detach();
84
- this.el = r.nativeElement;
85
- }
86
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAccordionTimer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
87
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsAccordionTimer, selector: "mds-accordion-timer", inputs: { duration: "duration", paused: "paused" }, outputs: { mdsAccordionTimerChange: "mdsAccordionTimerChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
88
- };
89
- MdsAccordionTimer = __decorate([
90
- ProxyCmp({
91
- inputs: ['duration', 'paused']
92
- })
93
- ], MdsAccordionTimer);
94
- export { MdsAccordionTimer };
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAccordionTimer, decorators: [{
96
- type: Component,
97
- args: [{
98
- selector: 'mds-accordion-timer',
99
- changeDetection: ChangeDetectionStrategy.OnPush,
100
- template: '<ng-content></ng-content>',
101
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
102
- inputs: ['duration', 'paused'],
103
- outputs: ['mdsAccordionTimerChange'],
104
- standalone: false
105
- }]
106
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsAccordionTimerChange: [{
107
- type: Output
108
- }] } });
109
- let MdsAccordionTimerItem = class MdsAccordionTimerItem {
110
- z;
111
- el;
112
- mdsAccordionTimerItemClickSelect = new EventEmitter();
113
- mdsAccordionTimerItemSelect = new EventEmitter();
114
- mdsAccordionTimerItemMouseEnterSelect = new EventEmitter();
115
- mdsAccordionTimerItemMouseLeaveSelect = new EventEmitter();
116
- constructor(c, r, z) {
117
- this.z = z;
118
- c.detach();
119
- this.el = r.nativeElement;
120
- }
121
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAccordionTimerItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
122
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsAccordionTimerItem, selector: "mds-accordion-timer-item", inputs: { description: "description", duration: "duration", progress: "progress", selected: "selected", typography: "typography", uuid: "uuid" }, outputs: { mdsAccordionTimerItemClickSelect: "mdsAccordionTimerItemClickSelect", mdsAccordionTimerItemSelect: "mdsAccordionTimerItemSelect", mdsAccordionTimerItemMouseEnterSelect: "mdsAccordionTimerItemMouseEnterSelect", mdsAccordionTimerItemMouseLeaveSelect: "mdsAccordionTimerItemMouseLeaveSelect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
123
- };
124
- MdsAccordionTimerItem = __decorate([
125
- ProxyCmp({
126
- inputs: ['description', 'duration', 'progress', 'selected', 'typography', 'uuid']
127
- })
128
- ], MdsAccordionTimerItem);
129
- export { MdsAccordionTimerItem };
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAccordionTimerItem, decorators: [{
131
- type: Component,
132
- args: [{
133
- selector: 'mds-accordion-timer-item',
134
- changeDetection: ChangeDetectionStrategy.OnPush,
135
- template: '<ng-content></ng-content>',
136
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
137
- inputs: [{ name: 'description', required: true }, 'duration', 'progress', 'selected', 'typography', 'uuid'],
138
- outputs: ['mdsAccordionTimerItemClickSelect', 'mdsAccordionTimerItemSelect', 'mdsAccordionTimerItemMouseEnterSelect', 'mdsAccordionTimerItemMouseLeaveSelect'],
139
- standalone: false
140
- }]
141
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsAccordionTimerItemClickSelect: [{
142
- type: Output
143
- }], mdsAccordionTimerItemSelect: [{
144
- type: Output
145
- }], mdsAccordionTimerItemMouseEnterSelect: [{
146
- type: Output
147
- }], mdsAccordionTimerItemMouseLeaveSelect: [{
148
- type: Output
149
- }] } });
150
- let MdsAuthor = class MdsAuthor {
151
- z;
152
- el;
153
- constructor(c, r, z) {
154
- this.z = z;
155
- c.detach();
156
- this.el = r.nativeElement;
157
- }
158
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAuthor, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
159
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsAuthor, selector: "mds-author", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
160
- };
161
- MdsAuthor = __decorate([
162
- ProxyCmp({})
163
- ], MdsAuthor);
164
- export { MdsAuthor };
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAuthor, decorators: [{
166
- type: Component,
167
- args: [{
168
- selector: 'mds-author',
169
- changeDetection: ChangeDetectionStrategy.OnPush,
170
- template: '<ng-content></ng-content>',
171
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
172
- inputs: [],
173
- standalone: false
174
- }]
175
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
176
- let MdsAvatar = class MdsAvatar {
177
- z;
178
- el;
179
- constructor(c, r, z) {
180
- this.z = z;
181
- c.detach();
182
- this.el = r.nativeElement;
183
- }
184
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
185
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsAvatar, selector: "mds-avatar", inputs: { count: "count", icon: "icon", initials: "initials", src: "src", tone: "tone", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
186
- };
187
- MdsAvatar = __decorate([
188
- ProxyCmp({
189
- inputs: ['count', 'icon', 'initials', 'src', 'tone', 'variant']
190
- })
191
- ], MdsAvatar);
192
- export { MdsAvatar };
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAvatar, decorators: [{
194
- type: Component,
195
- args: [{
196
- selector: 'mds-avatar',
197
- changeDetection: ChangeDetectionStrategy.OnPush,
198
- template: '<ng-content></ng-content>',
199
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
200
- inputs: ['count', 'icon', 'initials', 'src', 'tone', 'variant'],
201
- standalone: false
202
- }]
203
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
204
- let MdsAvatarStack = class MdsAvatarStack {
205
- z;
206
- el;
207
- constructor(c, r, z) {
208
- this.z = z;
209
- c.detach();
210
- this.el = r.nativeElement;
211
- }
212
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAvatarStack, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
213
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsAvatarStack, selector: "mds-avatar-stack", inputs: { size: "size", total: "total" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
214
- };
215
- MdsAvatarStack = __decorate([
216
- ProxyCmp({
217
- inputs: ['size', 'total']
218
- })
219
- ], MdsAvatarStack);
220
- export { MdsAvatarStack };
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAvatarStack, decorators: [{
222
- type: Component,
223
- args: [{
224
- selector: 'mds-avatar-stack',
225
- changeDetection: ChangeDetectionStrategy.OnPush,
226
- template: '<ng-content></ng-content>',
227
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
228
- inputs: ['size', 'total'],
229
- standalone: false
230
- }]
231
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
232
- let MdsAvatarStackItem = class MdsAvatarStackItem {
233
- z;
234
- el;
235
- constructor(c, r, z) {
236
- this.z = z;
237
- c.detach();
238
- this.el = r.nativeElement;
239
- }
240
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAvatarStackItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
241
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsAvatarStackItem, selector: "mds-avatar-stack-item", inputs: { count: "count", initials: "initials", src: "src", tone: "tone", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
242
- };
243
- MdsAvatarStackItem = __decorate([
244
- ProxyCmp({
245
- inputs: ['count', 'initials', 'src', 'tone', 'variant']
246
- })
247
- ], MdsAvatarStackItem);
248
- export { MdsAvatarStackItem };
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsAvatarStackItem, decorators: [{
250
- type: Component,
251
- args: [{
252
- selector: 'mds-avatar-stack-item',
253
- changeDetection: ChangeDetectionStrategy.OnPush,
254
- template: '<ng-content></ng-content>',
255
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
256
- inputs: ['count', 'initials', 'src', 'tone', 'variant'],
257
- standalone: false
258
- }]
259
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
260
- let MdsBadge = class MdsBadge {
261
- z;
262
- el;
263
- constructor(c, r, z) {
264
- this.z = z;
265
- c.detach();
266
- this.el = r.nativeElement;
267
- }
268
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
269
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsBadge, selector: "mds-badge", inputs: { label: "label", tone: "tone", typography: "typography", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
270
- };
271
- MdsBadge = __decorate([
272
- ProxyCmp({
273
- inputs: ['label', 'tone', 'typography', 'variant']
274
- })
275
- ], MdsBadge);
276
- export { MdsBadge };
277
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsBadge, decorators: [{
278
- type: Component,
279
- args: [{
280
- selector: 'mds-badge',
281
- changeDetection: ChangeDetectionStrategy.OnPush,
282
- template: '<ng-content></ng-content>',
283
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
284
- inputs: ['label', 'tone', 'typography', 'variant'],
285
- standalone: false
286
- }]
287
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
288
- let MdsBanner = class MdsBanner {
289
- z;
290
- el;
291
- mdsBannerClose = new EventEmitter();
292
- constructor(c, r, z) {
293
- this.z = z;
294
- c.detach();
295
- this.el = r.nativeElement;
296
- }
297
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsBanner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
298
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsBanner, selector: "mds-banner", inputs: { cockade: "cockade", deletable: "deletable", headline: "headline", icon: "icon", tone: "tone", variant: "variant" }, outputs: { mdsBannerClose: "mdsBannerClose" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
299
- };
300
- MdsBanner = __decorate([
301
- ProxyCmp({
302
- inputs: ['cockade', 'deletable', 'headline', 'icon', 'tone', 'variant'],
303
- methods: ['updateLang']
304
- })
305
- ], MdsBanner);
306
- export { MdsBanner };
307
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsBanner, decorators: [{
308
- type: Component,
309
- args: [{
310
- selector: 'mds-banner',
311
- changeDetection: ChangeDetectionStrategy.OnPush,
312
- template: '<ng-content></ng-content>',
313
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
314
- inputs: ['cockade', 'deletable', 'headline', 'icon', 'tone', 'variant'],
315
- outputs: ['mdsBannerClose'],
316
- standalone: false
317
- }]
318
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsBannerClose: [{
319
- type: Output
320
- }] } });
321
- let MdsBenchmarkBar = class MdsBenchmarkBar {
322
- z;
323
- el;
324
- constructor(c, r, z) {
325
- this.z = z;
326
- c.detach();
327
- this.el = r.nativeElement;
328
- }
329
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsBenchmarkBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
330
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsBenchmarkBar, selector: "mds-benchmark-bar", inputs: { alias: "alias", label: "label", size: "size", typography: "typography", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
331
- };
332
- MdsBenchmarkBar = __decorate([
333
- ProxyCmp({
334
- inputs: ['alias', 'label', 'size', 'typography', 'value', 'variant']
335
- })
336
- ], MdsBenchmarkBar);
337
- export { MdsBenchmarkBar };
338
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsBenchmarkBar, decorators: [{
339
- type: Component,
340
- args: [{
341
- selector: 'mds-benchmark-bar',
342
- changeDetection: ChangeDetectionStrategy.OnPush,
343
- template: '<ng-content></ng-content>',
344
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
345
- inputs: ['alias', 'label', 'size', 'typography', 'value', 'variant'],
346
- standalone: false
347
- }]
348
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
349
- let MdsBibliography = class MdsBibliography {
350
- z;
351
- el;
352
- constructor(c, r, z) {
353
- this.z = z;
354
- c.detach();
355
- this.el = r.nativeElement;
356
- }
357
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsBibliography, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
358
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsBibliography, selector: "mds-bibliography", inputs: { author: "author", date: "date", format: "format", location: "location", name: "name", publisher: "publisher", rel: "rel", typography: "typography", url: "url", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
359
- };
360
- MdsBibliography = __decorate([
361
- ProxyCmp({
362
- inputs: ['author', 'date', 'format', 'location', 'name', 'publisher', 'rel', 'typography', 'url', 'variant']
363
- })
364
- ], MdsBibliography);
365
- export { MdsBibliography };
366
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsBibliography, decorators: [{
367
- type: Component,
368
- args: [{
369
- selector: 'mds-bibliography',
370
- changeDetection: ChangeDetectionStrategy.OnPush,
371
- template: '<ng-content></ng-content>',
372
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
373
- inputs: ['author', 'date', 'format', 'location', 'name', 'publisher', 'rel', 'typography', 'url', 'variant'],
374
- standalone: false
375
- }]
376
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
377
- let MdsBreadcrumb = class MdsBreadcrumb {
378
- z;
379
- el;
380
- mdsBreadcrumbChange = new EventEmitter();
381
- constructor(c, r, z) {
382
- this.z = z;
383
- c.detach();
384
- this.el = r.nativeElement;
385
- }
386
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsBreadcrumb, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
387
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsBreadcrumb, selector: "mds-breadcrumb", inputs: { back: "back" }, outputs: { mdsBreadcrumbChange: "mdsBreadcrumbChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
388
- };
389
- MdsBreadcrumb = __decorate([
390
- ProxyCmp({
391
- inputs: ['back'],
392
- methods: ['updateLang']
393
- })
394
- ], MdsBreadcrumb);
395
- export { MdsBreadcrumb };
396
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsBreadcrumb, decorators: [{
397
- type: Component,
398
- args: [{
399
- selector: 'mds-breadcrumb',
400
- changeDetection: ChangeDetectionStrategy.OnPush,
401
- template: '<ng-content></ng-content>',
402
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
403
- inputs: ['back'],
404
- outputs: ['mdsBreadcrumbChange'],
405
- standalone: false
406
- }]
407
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsBreadcrumbChange: [{
408
- type: Output
409
- }] } });
410
- let MdsBreadcrumbItem = class MdsBreadcrumbItem {
411
- z;
412
- el;
413
- mdsBreadcrumbItemSelect = new EventEmitter();
414
- constructor(c, r, z) {
415
- this.z = z;
416
- c.detach();
417
- this.el = r.nativeElement;
418
- }
419
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsBreadcrumbItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
420
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsBreadcrumbItem, selector: "mds-breadcrumb-item", inputs: { label: "label", selected: "selected" }, outputs: { mdsBreadcrumbItemSelect: "mdsBreadcrumbItemSelect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
421
- };
422
- MdsBreadcrumbItem = __decorate([
423
- ProxyCmp({
424
- inputs: ['label', 'selected']
425
- })
426
- ], MdsBreadcrumbItem);
427
- export { MdsBreadcrumbItem };
428
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsBreadcrumbItem, decorators: [{
429
- type: Component,
430
- args: [{
431
- selector: 'mds-breadcrumb-item',
432
- changeDetection: ChangeDetectionStrategy.OnPush,
433
- template: '<ng-content></ng-content>',
434
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
435
- inputs: ['label', 'selected'],
436
- outputs: ['mdsBreadcrumbItemSelect'],
437
- standalone: false
438
- }]
439
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsBreadcrumbItemSelect: [{
440
- type: Output
441
- }] } });
442
- let MdsButton = class MdsButton {
443
- z;
444
- el;
445
- constructor(c, r, z) {
446
- this.z = z;
447
- c.detach();
448
- this.el = r.nativeElement;
449
- }
450
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
451
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsButton, selector: "mds-button", inputs: { active: "active", animation: "animation", autoFocus: "autoFocus", await: "await", disabled: "disabled", href: "href", icon: "icon", iconPosition: "iconPosition", label: "label", size: "size", target: "target", tone: "tone", truncate: "truncate", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
452
- };
453
- MdsButton = __decorate([
454
- ProxyCmp({
455
- inputs: ['active', 'animation', 'autoFocus', 'await', 'disabled', 'href', 'icon', 'iconPosition', 'label', 'size', 'target', 'tone', 'truncate', 'type', 'variant']
456
- })
457
- ], MdsButton);
458
- export { MdsButton };
459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsButton, decorators: [{
460
- type: Component,
461
- args: [{
462
- selector: 'mds-button',
463
- changeDetection: ChangeDetectionStrategy.OnPush,
464
- template: '<ng-content></ng-content>',
465
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
466
- inputs: ['active', 'animation', 'autoFocus', 'await', 'disabled', 'href', 'icon', 'iconPosition', 'label', 'size', 'target', 'tone', 'truncate', 'type', 'variant'],
467
- standalone: false
468
- }]
469
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
470
- let MdsButtonDropdown = class MdsButtonDropdown {
471
- z;
472
- el;
473
- constructor(c, r, z) {
474
- this.z = z;
475
- c.detach();
476
- this.el = r.nativeElement;
477
- }
478
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsButtonDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
479
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsButtonDropdown, selector: "mds-button-dropdown", inputs: { active: "active", autoFocus: "autoFocus", await: "await", disabled: "disabled", href: "href", icon: "icon", label: "label", size: "size", target: "target", tone: "tone", truncate: "truncate", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
480
- };
481
- MdsButtonDropdown = __decorate([
482
- ProxyCmp({
483
- inputs: ['active', 'autoFocus', 'await', 'disabled', 'href', 'icon', 'label', 'size', 'target', 'tone', 'truncate', 'type', 'variant']
484
- })
485
- ], MdsButtonDropdown);
486
- export { MdsButtonDropdown };
487
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsButtonDropdown, decorators: [{
488
- type: Component,
489
- args: [{
490
- selector: 'mds-button-dropdown',
491
- changeDetection: ChangeDetectionStrategy.OnPush,
492
- template: '<ng-content></ng-content>',
493
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
494
- inputs: ['active', 'autoFocus', 'await', 'disabled', 'href', 'icon', 'label', 'size', 'target', 'tone', 'truncate', 'type', 'variant'],
495
- standalone: false
496
- }]
497
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
498
- let MdsButtonGroup = class MdsButtonGroup {
499
- z;
500
- el;
501
- constructor(c, r, z) {
502
- this.z = z;
503
- c.detach();
504
- this.el = r.nativeElement;
505
- }
506
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsButtonGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
507
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsButtonGroup, selector: "mds-button-group", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
508
- };
509
- MdsButtonGroup = __decorate([
510
- ProxyCmp({})
511
- ], MdsButtonGroup);
512
- export { MdsButtonGroup };
513
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsButtonGroup, decorators: [{
514
- type: Component,
515
- args: [{
516
- selector: 'mds-button-group',
517
- changeDetection: ChangeDetectionStrategy.OnPush,
518
- template: '<ng-content></ng-content>',
519
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
520
- inputs: [],
521
- standalone: false
522
- }]
523
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
524
- let MdsCalendar = class MdsCalendar {
525
- z;
526
- el;
527
- mdsCalendarChange = new EventEmitter();
528
- mdsCalendarPreselect = new EventEmitter();
529
- constructor(c, r, z) {
530
- this.z = z;
531
- c.detach();
532
- this.el = r.nativeElement;
533
- }
534
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCalendar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
535
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsCalendar, selector: "mds-calendar", inputs: { endDate: "endDate", max: "max", min: "min", rangePicker: "rangePicker", startDate: "startDate" }, outputs: { mdsCalendarChange: "mdsCalendarChange", mdsCalendarPreselect: "mdsCalendarPreselect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
536
- };
537
- MdsCalendar = __decorate([
538
- ProxyCmp({
539
- inputs: ['endDate', 'max', 'min', 'rangePicker', 'startDate'],
540
- methods: ['updateLang', 'updateCurrentDate']
541
- })
542
- ], MdsCalendar);
543
- export { MdsCalendar };
544
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCalendar, decorators: [{
545
- type: Component,
546
- args: [{
547
- selector: 'mds-calendar',
548
- changeDetection: ChangeDetectionStrategy.OnPush,
549
- template: '<ng-content></ng-content>',
550
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
551
- inputs: ['endDate', 'max', 'min', 'rangePicker', 'startDate'],
552
- outputs: ['mdsCalendarChange', 'mdsCalendarPreselect'],
553
- standalone: false
554
- }]
555
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsCalendarChange: [{
556
- type: Output
557
- }], mdsCalendarPreselect: [{
558
- type: Output
559
- }] } });
560
- let MdsCalendarCell = class MdsCalendarCell {
561
- z;
562
- el;
563
- constructor(c, r, z) {
564
- this.z = z;
565
- c.detach();
566
- this.el = r.nativeElement;
567
- }
568
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCalendarCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
569
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsCalendarCell, selector: "mds-calendar-cell", inputs: { date: "date", disabled: "disabled", label: "label", month: "month", orientation: "orientation", preview: "preview", selection: "selection", today: "today" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
570
- };
571
- MdsCalendarCell = __decorate([
572
- ProxyCmp({
573
- inputs: ['date', 'disabled', 'label', 'month', 'orientation', 'preview', 'selection', 'today']
574
- })
575
- ], MdsCalendarCell);
576
- export { MdsCalendarCell };
577
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCalendarCell, decorators: [{
578
- type: Component,
579
- args: [{
580
- selector: 'mds-calendar-cell',
581
- changeDetection: ChangeDetectionStrategy.OnPush,
582
- template: '<ng-content></ng-content>',
583
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
584
- inputs: ['date', 'disabled', 'label', 'month', 'orientation', 'preview', 'selection', 'today'],
585
- standalone: false
586
- }]
587
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
588
- let MdsCard = class MdsCard {
589
- z;
590
- el;
591
- constructor(c, r, z) {
592
- this.z = z;
593
- c.detach();
594
- this.el = r.nativeElement;
595
- }
596
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
597
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsCard, selector: "mds-card", inputs: { autoGrid: "autoGrid" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
598
- };
599
- MdsCard = __decorate([
600
- ProxyCmp({
601
- inputs: ['autoGrid']
602
- })
603
- ], MdsCard);
604
- export { MdsCard };
605
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCard, decorators: [{
606
- type: Component,
607
- args: [{
608
- selector: 'mds-card',
609
- changeDetection: ChangeDetectionStrategy.OnPush,
610
- template: '<ng-content></ng-content>',
611
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
612
- inputs: ['autoGrid'],
613
- standalone: false
614
- }]
615
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
616
- let MdsCardContent = class MdsCardContent {
617
- z;
618
- el;
619
- constructor(c, r, z) {
620
- this.z = z;
621
- c.detach();
622
- this.el = r.nativeElement;
623
- }
624
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCardContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
625
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsCardContent, selector: "mds-card-content", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
626
- };
627
- MdsCardContent = __decorate([
628
- ProxyCmp({})
629
- ], MdsCardContent);
630
- export { MdsCardContent };
631
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCardContent, decorators: [{
632
- type: Component,
633
- args: [{
634
- selector: 'mds-card-content',
635
- changeDetection: ChangeDetectionStrategy.OnPush,
636
- template: '<ng-content></ng-content>',
637
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
638
- inputs: [],
639
- standalone: false
640
- }]
641
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
642
- let MdsCardFooter = class MdsCardFooter {
643
- z;
644
- el;
645
- constructor(c, r, z) {
646
- this.z = z;
647
- c.detach();
648
- this.el = r.nativeElement;
649
- }
650
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCardFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
651
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsCardFooter, selector: "mds-card-footer", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
652
- };
653
- MdsCardFooter = __decorate([
654
- ProxyCmp({})
655
- ], MdsCardFooter);
656
- export { MdsCardFooter };
657
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCardFooter, decorators: [{
658
- type: Component,
659
- args: [{
660
- selector: 'mds-card-footer',
661
- changeDetection: ChangeDetectionStrategy.OnPush,
662
- template: '<ng-content></ng-content>',
663
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
664
- inputs: [],
665
- standalone: false
666
- }]
667
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
668
- let MdsCardHeader = class MdsCardHeader {
669
- z;
670
- el;
671
- constructor(c, r, z) {
672
- this.z = z;
673
- c.detach();
674
- this.el = r.nativeElement;
675
- }
676
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCardHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
677
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsCardHeader, selector: "mds-card-header", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
678
- };
679
- MdsCardHeader = __decorate([
680
- ProxyCmp({})
681
- ], MdsCardHeader);
682
- export { MdsCardHeader };
683
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCardHeader, decorators: [{
684
- type: Component,
685
- args: [{
686
- selector: 'mds-card-header',
687
- changeDetection: ChangeDetectionStrategy.OnPush,
688
- template: '<ng-content></ng-content>',
689
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
690
- inputs: [],
691
- standalone: false
692
- }]
693
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
694
- let MdsCardMedia = class MdsCardMedia {
695
- z;
696
- el;
697
- constructor(c, r, z) {
698
- this.z = z;
699
- c.detach();
700
- this.el = r.nativeElement;
701
- }
702
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCardMedia, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
703
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsCardMedia, selector: "mds-card-media", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
704
- };
705
- MdsCardMedia = __decorate([
706
- ProxyCmp({})
707
- ], MdsCardMedia);
708
- export { MdsCardMedia };
709
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsCardMedia, decorators: [{
710
- type: Component,
711
- args: [{
712
- selector: 'mds-card-media',
713
- changeDetection: ChangeDetectionStrategy.OnPush,
714
- template: '<ng-content></ng-content>',
715
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
716
- inputs: [],
717
- standalone: false
718
- }]
719
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
720
- let MdsChip = class MdsChip {
721
- z;
722
- el;
723
- mdsChipClickLabel = new EventEmitter();
724
- mdsChipDelete = new EventEmitter();
725
- mdsChipSelect = new EventEmitter();
726
- constructor(c, r, z) {
727
- this.z = z;
728
- c.detach();
729
- this.el = r.nativeElement;
730
- }
731
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
732
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsChip, selector: "mds-chip", inputs: { clickable: "clickable", deletable: "deletable", disabled: "disabled", icon: "icon", label: "label", selectable: "selectable", selected: "selected", tone: "tone", variant: "variant" }, outputs: { mdsChipClickLabel: "mdsChipClickLabel", mdsChipDelete: "mdsChipDelete", mdsChipSelect: "mdsChipSelect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
733
- };
734
- MdsChip = __decorate([
735
- ProxyCmp({
736
- inputs: ['clickable', 'deletable', 'disabled', 'icon', 'label', 'selectable', 'selected', 'tone', 'variant'],
737
- methods: ['updateLang']
738
- })
739
- ], MdsChip);
740
- export { MdsChip };
741
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsChip, decorators: [{
742
- type: Component,
743
- args: [{
744
- selector: 'mds-chip',
745
- changeDetection: ChangeDetectionStrategy.OnPush,
746
- template: '<ng-content></ng-content>',
747
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
748
- inputs: ['clickable', 'deletable', 'disabled', 'icon', { name: 'label', required: true }, 'selectable', 'selected', 'tone', 'variant'],
749
- outputs: ['mdsChipClickLabel', 'mdsChipDelete', 'mdsChipSelect'],
750
- standalone: false
751
- }]
752
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsChipClickLabel: [{
753
- type: Output
754
- }], mdsChipDelete: [{
755
- type: Output
756
- }], mdsChipSelect: [{
757
- type: Output
758
- }] } });
759
- let MdsDetails = class MdsDetails {
760
- z;
761
- el;
762
- mdsDetailsChange = new EventEmitter();
763
- constructor(c, r, z) {
764
- this.z = z;
765
- c.detach();
766
- this.el = r.nativeElement;
767
- }
768
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsDetails, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
769
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsDetails, selector: "mds-details", inputs: { opened: "opened" }, outputs: { mdsDetailsChange: "mdsDetailsChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
770
- };
771
- MdsDetails = __decorate([
772
- ProxyCmp({
773
- inputs: ['opened']
774
- })
775
- ], MdsDetails);
776
- export { MdsDetails };
777
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsDetails, decorators: [{
778
- type: Component,
779
- args: [{
780
- selector: 'mds-details',
781
- changeDetection: ChangeDetectionStrategy.OnPush,
782
- template: '<ng-content></ng-content>',
783
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
784
- inputs: ['opened'],
785
- outputs: ['mdsDetailsChange'],
786
- standalone: false
787
- }]
788
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsDetailsChange: [{
789
- type: Output
790
- }] } });
791
- let MdsDropdown = class MdsDropdown {
792
- z;
793
- el;
794
- mdsDropdownVisible = new EventEmitter();
795
- mdsDropdownHide = new EventEmitter();
796
- mdsDropdownChange = new EventEmitter();
797
- constructor(c, r, z) {
798
- this.z = z;
799
- c.detach();
800
- this.el = r.nativeElement;
801
- }
802
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
803
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsDropdown, selector: "mds-dropdown", inputs: { arrow: "arrow", arrowPadding: "arrowPadding", autoPlacement: "autoPlacement", backdrop: "backdrop", flip: "flip", interaction: "interaction", offset: "offset", placement: "placement", shift: "shift", shiftPadding: "shiftPadding", smooth: "smooth", strategy: "strategy", target: "target", visible: "visible", zIndex: "zIndex" }, outputs: { mdsDropdownVisible: "mdsDropdownVisible", mdsDropdownHide: "mdsDropdownHide", mdsDropdownChange: "mdsDropdownChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
804
- };
805
- MdsDropdown = __decorate([
806
- ProxyCmp({
807
- inputs: ['arrow', 'arrowPadding', 'autoPlacement', 'backdrop', 'flip', 'interaction', 'offset', 'placement', 'shift', 'shiftPadding', 'smooth', 'strategy', 'target', 'visible', 'zIndex']
808
- })
809
- ], MdsDropdown);
810
- export { MdsDropdown };
811
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsDropdown, decorators: [{
812
- type: Component,
813
- args: [{
814
- selector: 'mds-dropdown',
815
- changeDetection: ChangeDetectionStrategy.OnPush,
816
- template: '<ng-content></ng-content>',
817
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
818
- inputs: ['arrow', 'arrowPadding', 'autoPlacement', 'backdrop', 'flip', 'interaction', 'offset', 'placement', 'shift', 'shiftPadding', 'smooth', 'strategy', { name: 'target', required: true }, 'visible', 'zIndex'],
819
- outputs: ['mdsDropdownVisible', 'mdsDropdownHide', 'mdsDropdownChange'],
820
- standalone: false
821
- }]
822
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsDropdownVisible: [{
823
- type: Output
824
- }], mdsDropdownHide: [{
825
- type: Output
826
- }], mdsDropdownChange: [{
827
- type: Output
828
- }] } });
829
- let MdsEmoji = class MdsEmoji {
830
- z;
831
- el;
832
- constructor(c, r, z) {
833
- this.z = z;
834
- c.detach();
835
- this.el = r.nativeElement;
836
- }
837
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsEmoji, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
838
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsEmoji, selector: "mds-emoji", inputs: { name: "name" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
839
- };
840
- MdsEmoji = __decorate([
841
- ProxyCmp({
842
- inputs: ['name'],
843
- methods: ['agree', 'smile', 'disagree', 'startThinking', 'stopThinking', 'startBlinking', 'stopBlinking', 'stopFollowMouse', 'startFollowMouse']
844
- })
845
- ], MdsEmoji);
846
- export { MdsEmoji };
847
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsEmoji, decorators: [{
848
- type: Component,
849
- args: [{
850
- selector: 'mds-emoji',
851
- changeDetection: ChangeDetectionStrategy.OnPush,
852
- template: '<ng-content></ng-content>',
853
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
854
- inputs: ['name'],
855
- standalone: false
856
- }]
857
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
858
- let MdsEntity = class MdsEntity {
859
- z;
860
- el;
861
- constructor(c, r, z) {
862
- this.z = z;
863
- c.detach();
864
- this.el = r.nativeElement;
865
- }
866
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsEntity, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
867
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsEntity, selector: "mds-entity", inputs: { await: "await", icon: "icon", initials: "initials", src: "src", tone: "tone", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
868
- };
869
- MdsEntity = __decorate([
870
- ProxyCmp({
871
- inputs: ['await', 'icon', 'initials', 'src', 'tone', 'variant']
872
- })
873
- ], MdsEntity);
874
- export { MdsEntity };
875
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsEntity, decorators: [{
876
- type: Component,
877
- args: [{
878
- selector: 'mds-entity',
879
- changeDetection: ChangeDetectionStrategy.OnPush,
880
- template: '<ng-content></ng-content>',
881
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
882
- inputs: ['await', 'icon', 'initials', 'src', 'tone', 'variant'],
883
- standalone: false
884
- }]
885
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
886
- let MdsFile = class MdsFile {
887
- z;
888
- el;
889
- mdsFileDownload = new EventEmitter();
890
- constructor(c, r, z) {
891
- this.z = z;
892
- c.detach();
893
- this.el = r.nativeElement;
894
- }
895
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsFile, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
896
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsFile, selector: "mds-file", inputs: { description: "description", filename: "filename", format: "format", preview: "preview", showDownloadedIcon: "showDownloadedIcon", suffix: "suffix" }, outputs: { mdsFileDownload: "mdsFileDownload" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
897
- };
898
- MdsFile = __decorate([
899
- ProxyCmp({
900
- inputs: ['description', 'filename', 'format', 'preview', 'showDownloadedIcon', 'suffix'],
901
- methods: ['updateLang']
902
- })
903
- ], MdsFile);
904
- export { MdsFile };
905
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsFile, decorators: [{
906
- type: Component,
907
- args: [{
908
- selector: 'mds-file',
909
- changeDetection: ChangeDetectionStrategy.OnPush,
910
- template: '<ng-content></ng-content>',
911
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
912
- inputs: ['description', 'filename', 'format', 'preview', 'showDownloadedIcon', 'suffix'],
913
- outputs: ['mdsFileDownload'],
914
- standalone: false
915
- }]
916
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsFileDownload: [{
917
- type: Output
918
- }] } });
919
- let MdsFilePreview = class MdsFilePreview {
920
- z;
921
- el;
922
- mdsFileDownload = new EventEmitter();
923
- mdsFileDelete = new EventEmitter();
924
- constructor(c, r, z) {
925
- this.z = z;
926
- c.detach();
927
- this.el = r.nativeElement;
928
- }
929
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsFilePreview, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
930
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsFilePreview, selector: "mds-file-preview", inputs: { deletable: "deletable", description: "description", downloadable: "downloadable", filename: "filename", filesize: "filesize", format: "format", icon: "icon", message: "message", src: "src", suffix: "suffix", truncate: "truncate", variant: "variant" }, outputs: { mdsFileDownload: "mdsFileDownload", mdsFileDelete: "mdsFileDelete" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
931
- };
932
- MdsFilePreview = __decorate([
933
- ProxyCmp({
934
- inputs: ['deletable', 'description', 'downloadable', 'filename', 'filesize', 'format', 'icon', 'message', 'src', 'suffix', 'truncate', 'variant'],
935
- methods: ['updateLang']
936
- })
937
- ], MdsFilePreview);
938
- export { MdsFilePreview };
939
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsFilePreview, decorators: [{
940
- type: Component,
941
- args: [{
942
- selector: 'mds-file-preview',
943
- changeDetection: ChangeDetectionStrategy.OnPush,
944
- template: '<ng-content></ng-content>',
945
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
946
- inputs: ['deletable', 'description', 'downloadable', { name: 'filename', required: true }, 'filesize', 'format', 'icon', 'message', 'src', 'suffix', 'truncate', 'variant'],
947
- outputs: ['mdsFileDownload', 'mdsFileDelete'],
948
- standalone: false
949
- }]
950
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsFileDownload: [{
951
- type: Output
952
- }], mdsFileDelete: [{
953
- type: Output
954
- }] } });
955
- let MdsFilter = class MdsFilter {
956
- z;
957
- el;
958
- mdsFilterChange = new EventEmitter();
959
- constructor(c, r, z) {
960
- this.z = z;
961
- c.detach();
962
- this.el = r.nativeElement;
963
- }
964
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsFilter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
965
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsFilter, selector: "mds-filter", inputs: { autoReset: "autoReset", label: "label", multiple: "multiple", reset: "reset" }, outputs: { mdsFilterChange: "mdsFilterChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
966
- };
967
- MdsFilter = __decorate([
968
- ProxyCmp({
969
- inputs: ['autoReset', 'label', 'multiple', 'reset']
970
- })
971
- ], MdsFilter);
972
- export { MdsFilter };
973
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsFilter, decorators: [{
974
- type: Component,
975
- args: [{
976
- selector: 'mds-filter',
977
- changeDetection: ChangeDetectionStrategy.OnPush,
978
- template: '<ng-content></ng-content>',
979
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
980
- inputs: ['autoReset', 'label', 'multiple', 'reset'],
981
- outputs: ['mdsFilterChange'],
982
- standalone: false
983
- }]
984
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsFilterChange: [{
985
- type: Output
986
- }] } });
987
- let MdsFilterItem = class MdsFilterItem {
988
- z;
989
- el;
990
- mdsFilterItemSelect = new EventEmitter();
991
- constructor(c, r, z) {
992
- this.z = z;
993
- c.detach();
994
- this.el = r.nativeElement;
995
- }
996
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsFilterItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
997
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsFilterItem, selector: "mds-filter-item", inputs: { count: "count", disabled: "disabled", icon: "icon", label: "label", selected: "selected", value: "value" }, outputs: { mdsFilterItemSelect: "mdsFilterItemSelect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
998
- };
999
- MdsFilterItem = __decorate([
1000
- ProxyCmp({
1001
- inputs: ['count', 'disabled', 'icon', 'label', 'selected', 'value']
1002
- })
1003
- ], MdsFilterItem);
1004
- export { MdsFilterItem };
1005
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsFilterItem, decorators: [{
1006
- type: Component,
1007
- args: [{
1008
- selector: 'mds-filter-item',
1009
- changeDetection: ChangeDetectionStrategy.OnPush,
1010
- template: '<ng-content></ng-content>',
1011
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1012
- inputs: ['count', 'disabled', 'icon', 'label', 'selected', 'value'],
1013
- outputs: ['mdsFilterItemSelect'],
1014
- standalone: false
1015
- }]
1016
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsFilterItemSelect: [{
1017
- type: Output
1018
- }] } });
1019
- let MdsHeader = class MdsHeader {
1020
- z;
1021
- el;
1022
- mdsHeaderClose = new EventEmitter();
1023
- mdsHeaderVisibilityChange = new EventEmitter();
1024
- constructor(c, r, z) {
1025
- this.z = z;
1026
- c.detach();
1027
- this.el = r.nativeElement;
1028
- }
1029
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1030
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsHeader, selector: "mds-header", inputs: { appearance: "appearance", appearanceSet: "appearanceSet", autoHide: "autoHide", backdrop: "backdrop", menu: "menu", nav: "nav", threshold: "threshold", visibility: "visibility" }, outputs: { mdsHeaderClose: "mdsHeaderClose", mdsHeaderVisibilityChange: "mdsHeaderVisibilityChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1031
- };
1032
- MdsHeader = __decorate([
1033
- ProxyCmp({
1034
- inputs: ['appearance', 'appearanceSet', 'autoHide', 'backdrop', 'menu', 'nav', 'threshold', 'visibility'],
1035
- methods: ['setOpened']
1036
- })
1037
- ], MdsHeader);
1038
- export { MdsHeader };
1039
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsHeader, decorators: [{
1040
- type: Component,
1041
- args: [{
1042
- selector: 'mds-header',
1043
- changeDetection: ChangeDetectionStrategy.OnPush,
1044
- template: '<ng-content></ng-content>',
1045
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1046
- inputs: ['appearance', 'appearanceSet', 'autoHide', 'backdrop', 'menu', 'nav', 'threshold', 'visibility'],
1047
- outputs: ['mdsHeaderClose', 'mdsHeaderVisibilityChange'],
1048
- standalone: false
1049
- }]
1050
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsHeaderClose: [{
1051
- type: Output
1052
- }], mdsHeaderVisibilityChange: [{
1053
- type: Output
1054
- }] } });
1055
- let MdsHeaderBar = class MdsHeaderBar {
1056
- z;
1057
- el;
1058
- mdsHeaderBarOpen = new EventEmitter();
1059
- constructor(c, r, z) {
1060
- this.z = z;
1061
- c.detach();
1062
- this.el = r.nativeElement;
1063
- }
1064
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsHeaderBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1065
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsHeaderBar, selector: "mds-header-bar", inputs: { menu: "menu", nav: "nav" }, outputs: { mdsHeaderBarOpen: "mdsHeaderBarOpen" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1066
- };
1067
- MdsHeaderBar = __decorate([
1068
- ProxyCmp({
1069
- inputs: ['menu', 'nav'],
1070
- methods: ['setOpened']
1071
- })
1072
- ], MdsHeaderBar);
1073
- export { MdsHeaderBar };
1074
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsHeaderBar, decorators: [{
1075
- type: Component,
1076
- args: [{
1077
- selector: 'mds-header-bar',
1078
- changeDetection: ChangeDetectionStrategy.OnPush,
1079
- template: '<ng-content></ng-content>',
1080
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1081
- inputs: ['menu', 'nav'],
1082
- outputs: ['mdsHeaderBarOpen'],
1083
- standalone: false
1084
- }]
1085
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsHeaderBarOpen: [{
1086
- type: Output
1087
- }] } });
1088
- let MdsHelp = class MdsHelp {
1089
- z;
1090
- el;
1091
- constructor(c, r, z) {
1092
- this.z = z;
1093
- c.detach();
1094
- this.el = r.nativeElement;
1095
- }
1096
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsHelp, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1097
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsHelp, selector: "mds-help", inputs: { autoPlacement: "autoPlacement", icon: "icon", placement: "placement" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1098
- };
1099
- MdsHelp = __decorate([
1100
- ProxyCmp({
1101
- inputs: ['autoPlacement', 'icon', 'placement']
1102
- })
1103
- ], MdsHelp);
1104
- export { MdsHelp };
1105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsHelp, decorators: [{
1106
- type: Component,
1107
- args: [{
1108
- selector: 'mds-help',
1109
- changeDetection: ChangeDetectionStrategy.OnPush,
1110
- template: '<ng-content></ng-content>',
1111
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1112
- inputs: ['autoPlacement', 'icon', 'placement'],
1113
- standalone: false
1114
- }]
1115
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1116
- let MdsHorizontalScroll = class MdsHorizontalScroll {
1117
- z;
1118
- el;
1119
- constructor(c, r, z) {
1120
- this.z = z;
1121
- c.detach();
1122
- this.el = r.nativeElement;
1123
- }
1124
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsHorizontalScroll, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1125
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsHorizontalScroll, selector: "mds-horizontal-scroll", inputs: { controls: "controls", navigation: "navigation", snap: "snap" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1126
- };
1127
- MdsHorizontalScroll = __decorate([
1128
- ProxyCmp({
1129
- inputs: ['controls', 'navigation', 'snap']
1130
- })
1131
- ], MdsHorizontalScroll);
1132
- export { MdsHorizontalScroll };
1133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsHorizontalScroll, decorators: [{
1134
- type: Component,
1135
- args: [{
1136
- selector: 'mds-horizontal-scroll',
1137
- changeDetection: ChangeDetectionStrategy.OnPush,
1138
- template: '<ng-content></ng-content>',
1139
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1140
- inputs: ['controls', 'navigation', 'snap'],
1141
- standalone: false
1142
- }]
1143
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1144
- let MdsHr = class MdsHr {
1145
- z;
1146
- el;
1147
- constructor(c, r, z) {
1148
- this.z = z;
1149
- c.detach();
1150
- this.el = r.nativeElement;
1151
- }
1152
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsHr, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1153
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsHr, selector: "mds-hr", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1154
- };
1155
- MdsHr = __decorate([
1156
- ProxyCmp({})
1157
- ], MdsHr);
1158
- export { MdsHr };
1159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsHr, decorators: [{
1160
- type: Component,
1161
- args: [{
1162
- selector: 'mds-hr',
1163
- changeDetection: ChangeDetectionStrategy.OnPush,
1164
- template: '<ng-content></ng-content>',
1165
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1166
- inputs: [],
1167
- standalone: false
1168
- }]
1169
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1170
- let MdsIcon = class MdsIcon {
1171
- z;
1172
- el;
1173
- constructor(c, r, z) {
1174
- this.z = z;
1175
- c.detach();
1176
- this.el = r.nativeElement;
1177
- }
1178
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1179
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsIcon, selector: "mds-icon", inputs: { name: "name" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1180
- };
1181
- MdsIcon = __decorate([
1182
- ProxyCmp({
1183
- inputs: ['name'],
1184
- methods: ['setSvgPath']
1185
- })
1186
- ], MdsIcon);
1187
- export { MdsIcon };
1188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsIcon, decorators: [{
1189
- type: Component,
1190
- args: [{
1191
- selector: 'mds-icon',
1192
- changeDetection: ChangeDetectionStrategy.OnPush,
1193
- template: '<ng-content></ng-content>',
1194
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1195
- inputs: [{ name: 'name', required: true }],
1196
- standalone: false
1197
- }]
1198
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1199
- let MdsImg = class MdsImg {
1200
- z;
1201
- el;
1202
- mdsImgLoadError = new EventEmitter();
1203
- mdsImgLoadSuccess = new EventEmitter();
1204
- constructor(c, r, z) {
1205
- this.z = z;
1206
- c.detach();
1207
- this.el = r.nativeElement;
1208
- }
1209
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsImg, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1210
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsImg, selector: "mds-img", inputs: { alt: "alt", crossorigin: "crossorigin", height: "height", loading: "loading", referrerpolicy: "referrerpolicy", sizes: "sizes", src: "src", srcset: "srcset", srcsetConsumption: "srcsetConsumption", width: "width" }, outputs: { mdsImgLoadError: "mdsImgLoadError", mdsImgLoadSuccess: "mdsImgLoadSuccess" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1211
- };
1212
- MdsImg = __decorate([
1213
- ProxyCmp({
1214
- inputs: ['alt', 'crossorigin', 'height', 'loading', 'referrerpolicy', 'sizes', 'src', 'srcset', 'srcsetConsumption', 'width'],
1215
- methods: ['updateLang']
1216
- })
1217
- ], MdsImg);
1218
- export { MdsImg };
1219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsImg, decorators: [{
1220
- type: Component,
1221
- args: [{
1222
- selector: 'mds-img',
1223
- changeDetection: ChangeDetectionStrategy.OnPush,
1224
- template: '<ng-content></ng-content>',
1225
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1226
- inputs: ['alt', 'crossorigin', 'height', 'loading', 'referrerpolicy', 'sizes', 'src', 'srcset', 'srcsetConsumption', 'width'],
1227
- outputs: ['mdsImgLoadError', 'mdsImgLoadSuccess'],
1228
- standalone: false
1229
- }]
1230
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsImgLoadError: [{
1231
- type: Output
1232
- }], mdsImgLoadSuccess: [{
1233
- type: Output
1234
- }] } });
1235
- let MdsInput = class MdsInput {
1236
- z;
1237
- el;
1238
- mdsInputChange = new EventEmitter();
1239
- mdsInputKeydown = new EventEmitter();
1240
- mdsInputBlur = new EventEmitter();
1241
- mdsInputFocus = new EventEmitter();
1242
- mdsInputSpeechEnd = new EventEmitter();
1243
- mdsInputValidation = new EventEmitter();
1244
- constructor(c, r, z) {
1245
- this.z = z;
1246
- c.detach();
1247
- this.el = r.nativeElement;
1248
- }
1249
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1250
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsInput, selector: "mds-input", inputs: { autocomplete: "autocomplete", autofocus: "autofocus", await: "await", controlsIcon: "controlsIcon", controlsLayout: "controlsLayout", datalist: "datalist", disabled: "disabled", icon: "icon", max: "max", maxlength: "maxlength", mic: "mic", min: "min", minlength: "minlength", name: "name", pattern: "pattern", placeholder: "placeholder", readonly: "readonly", required: "required", step: "step", tip: "tip", type: "type", typography: "typography", value: "value", variant: "variant" }, outputs: { mdsInputChange: "mdsInputChange", mdsInputKeydown: "mdsInputKeydown", mdsInputBlur: "mdsInputBlur", mdsInputFocus: "mdsInputFocus", mdsInputSpeechEnd: "mdsInputSpeechEnd", mdsInputValidation: "mdsInputValidation" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1251
- };
1252
- MdsInput = __decorate([
1253
- ProxyCmp({
1254
- inputs: ['autocomplete', 'autofocus', 'await', 'controlsIcon', 'controlsLayout', 'datalist', 'disabled', 'icon', 'max', 'maxlength', 'mic', 'min', 'minlength', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'step', 'tip', 'type', 'typography', 'value', 'variant'],
1255
- methods: ['updateLang', 'addValidator', 'removeValidator', 'hasValidator', 'getErrors', 'setFocus', 'getInputElement']
1256
- })
1257
- ], MdsInput);
1258
- export { MdsInput };
1259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInput, decorators: [{
1260
- type: Component,
1261
- args: [{
1262
- selector: 'mds-input',
1263
- changeDetection: ChangeDetectionStrategy.OnPush,
1264
- template: '<ng-content></ng-content>',
1265
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1266
- inputs: ['autocomplete', 'autofocus', 'await', 'controlsIcon', 'controlsLayout', 'datalist', 'disabled', 'icon', 'max', 'maxlength', 'mic', 'min', 'minlength', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'step', 'tip', 'type', 'typography', 'value', 'variant'],
1267
- outputs: ['mdsInputChange', 'mdsInputKeydown', 'mdsInputBlur', 'mdsInputFocus', 'mdsInputSpeechEnd', 'mdsInputValidation'],
1268
- standalone: false
1269
- }]
1270
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsInputChange: [{
1271
- type: Output
1272
- }], mdsInputKeydown: [{
1273
- type: Output
1274
- }], mdsInputBlur: [{
1275
- type: Output
1276
- }], mdsInputFocus: [{
1277
- type: Output
1278
- }], mdsInputSpeechEnd: [{
1279
- type: Output
1280
- }], mdsInputValidation: [{
1281
- type: Output
1282
- }] } });
1283
- let MdsInputDate = class MdsInputDate {
1284
- z;
1285
- el;
1286
- mdsInputValidation = new EventEmitter();
1287
- mdsInputDateSelect = new EventEmitter();
1288
- constructor(c, r, z) {
1289
- this.z = z;
1290
- c.detach();
1291
- this.el = r.nativeElement;
1292
- }
1293
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputDate, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1294
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsInputDate, selector: "mds-input-date", inputs: { delay: "delay", disabled: "disabled", max: "max", min: "min", name: "name", readonly: "readonly", required: "required", value: "value", variant: "variant" }, outputs: { mdsInputValidation: "mdsInputValidation", mdsInputDateSelect: "mdsInputDateSelect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1295
- };
1296
- MdsInputDate = __decorate([
1297
- ProxyCmp({
1298
- inputs: ['delay', 'disabled', 'max', 'min', 'name', 'readonly', 'required', 'value', 'variant'],
1299
- methods: ['updateLang', 'focusInput', 'setValue', 'getErrors']
1300
- })
1301
- ], MdsInputDate);
1302
- export { MdsInputDate };
1303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputDate, decorators: [{
1304
- type: Component,
1305
- args: [{
1306
- selector: 'mds-input-date',
1307
- changeDetection: ChangeDetectionStrategy.OnPush,
1308
- template: '<ng-content></ng-content>',
1309
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1310
- inputs: ['delay', 'disabled', 'max', 'min', 'name', 'readonly', 'required', 'value', 'variant'],
1311
- outputs: ['mdsInputValidation', 'mdsInputDateSelect'],
1312
- standalone: false
1313
- }]
1314
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsInputValidation: [{
1315
- type: Output
1316
- }], mdsInputDateSelect: [{
1317
- type: Output
1318
- }] } });
1319
- let MdsInputDateRange = class MdsInputDateRange {
1320
- z;
1321
- el;
1322
- mdsInputDateRangeSelect = new EventEmitter();
1323
- mdsInputDateRangeValueChange = new EventEmitter();
1324
- constructor(c, r, z) {
1325
- this.z = z;
1326
- c.detach();
1327
- this.el = r.nativeElement;
1328
- }
1329
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputDateRange, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1330
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsInputDateRange, selector: "mds-input-date-range", inputs: { delay: "delay", endDate: "endDate", max: "max", min: "min", name: "name", startDate: "startDate" }, outputs: { mdsInputDateRangeSelect: "mdsInputDateRangeSelect", mdsInputDateRangeValueChange: "mdsInputDateRangeValueChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1331
- };
1332
- MdsInputDateRange = __decorate([
1333
- ProxyCmp({
1334
- inputs: ['delay', 'endDate', 'max', 'min', 'name', 'startDate'],
1335
- methods: ['updateLang', 'preselect']
1336
- })
1337
- ], MdsInputDateRange);
1338
- export { MdsInputDateRange };
1339
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputDateRange, decorators: [{
1340
- type: Component,
1341
- args: [{
1342
- selector: 'mds-input-date-range',
1343
- changeDetection: ChangeDetectionStrategy.OnPush,
1344
- template: '<ng-content></ng-content>',
1345
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1346
- inputs: ['delay', 'endDate', 'max', 'min', 'name', 'startDate'],
1347
- outputs: ['mdsInputDateRangeSelect', 'mdsInputDateRangeValueChange'],
1348
- standalone: false
1349
- }]
1350
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsInputDateRangeSelect: [{
1351
- type: Output
1352
- }], mdsInputDateRangeValueChange: [{
1353
- type: Output
1354
- }] } });
1355
- let MdsInputDateRangePreselection = class MdsInputDateRangePreselection {
1356
- z;
1357
- el;
1358
- constructor(c, r, z) {
1359
- this.z = z;
1360
- c.detach();
1361
- this.el = r.nativeElement;
1362
- }
1363
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputDateRangePreselection, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1364
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsInputDateRangePreselection, selector: "mds-input-date-range-preselection", inputs: { end: "end", selected: "selected", start: "start" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1365
- };
1366
- MdsInputDateRangePreselection = __decorate([
1367
- ProxyCmp({
1368
- inputs: ['end', 'selected', 'start']
1369
- })
1370
- ], MdsInputDateRangePreselection);
1371
- export { MdsInputDateRangePreselection };
1372
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputDateRangePreselection, decorators: [{
1373
- type: Component,
1374
- args: [{
1375
- selector: 'mds-input-date-range-preselection',
1376
- changeDetection: ChangeDetectionStrategy.OnPush,
1377
- template: '<ng-content></ng-content>',
1378
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1379
- inputs: ['end', 'selected', { name: 'start', required: true }],
1380
- standalone: false
1381
- }]
1382
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1383
- let MdsInputField = class MdsInputField {
1384
- z;
1385
- el;
1386
- constructor(c, r, z) {
1387
- this.z = z;
1388
- c.detach();
1389
- this.el = r.nativeElement;
1390
- }
1391
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1392
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsInputField, selector: "mds-input-field", inputs: { label: "label", message: "message", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1393
- };
1394
- MdsInputField = __decorate([
1395
- ProxyCmp({
1396
- inputs: ['label', 'message', 'variant']
1397
- })
1398
- ], MdsInputField);
1399
- export { MdsInputField };
1400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputField, decorators: [{
1401
- type: Component,
1402
- args: [{
1403
- selector: 'mds-input-field',
1404
- changeDetection: ChangeDetectionStrategy.OnPush,
1405
- template: '<ng-content></ng-content>',
1406
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1407
- inputs: ['label', 'message', 'variant'],
1408
- standalone: false
1409
- }]
1410
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1411
- let MdsInputOtp = class MdsInputOtp {
1412
- z;
1413
- el;
1414
- constructor(c, r, z) {
1415
- this.z = z;
1416
- c.detach();
1417
- this.el = r.nativeElement;
1418
- }
1419
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputOtp, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1420
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsInputOtp, selector: "mds-input-otp", inputs: { autosubmit: "autosubmit", length: "length", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1421
- };
1422
- MdsInputOtp = __decorate([
1423
- ProxyCmp({
1424
- inputs: ['autosubmit', 'length', 'value']
1425
- })
1426
- ], MdsInputOtp);
1427
- export { MdsInputOtp };
1428
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputOtp, decorators: [{
1429
- type: Component,
1430
- args: [{
1431
- selector: 'mds-input-otp',
1432
- changeDetection: ChangeDetectionStrategy.OnPush,
1433
- template: '<ng-content></ng-content>',
1434
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1435
- inputs: ['autosubmit', 'length', 'value'],
1436
- standalone: false
1437
- }]
1438
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1439
- let MdsInputRange = class MdsInputRange {
1440
- z;
1441
- el;
1442
- mdsInputRangeChange = new EventEmitter();
1443
- constructor(c, r, z) {
1444
- this.z = z;
1445
- c.detach();
1446
- this.el = r.nativeElement;
1447
- }
1448
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputRange, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1449
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsInputRange, selector: "mds-input-range", inputs: { disabled: "disabled", formatValue: "formatValue", max: "max", min: "min", name: "name", step: "step", value: "value" }, outputs: { mdsInputRangeChange: "mdsInputRangeChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1450
- };
1451
- MdsInputRange = __decorate([
1452
- ProxyCmp({
1453
- inputs: ['disabled', 'formatValue', 'max', 'min', 'name', 'step', 'value']
1454
- })
1455
- ], MdsInputRange);
1456
- export { MdsInputRange };
1457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputRange, decorators: [{
1458
- type: Component,
1459
- args: [{
1460
- selector: 'mds-input-range',
1461
- changeDetection: ChangeDetectionStrategy.OnPush,
1462
- template: '<ng-content></ng-content>',
1463
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1464
- inputs: ['disabled', 'formatValue', 'max', 'min', 'name', 'step', 'value'],
1465
- outputs: ['mdsInputRangeChange'],
1466
- standalone: false
1467
- }]
1468
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsInputRangeChange: [{
1469
- type: Output
1470
- }] } });
1471
- let MdsInputSelect = class MdsInputSelect {
1472
- z;
1473
- el;
1474
- mdsInputSelectChange = new EventEmitter();
1475
- constructor(c, r, z) {
1476
- this.z = z;
1477
- c.detach();
1478
- this.el = r.nativeElement;
1479
- }
1480
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1481
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsInputSelect, selector: "mds-input-select", inputs: { autoFocus: "autoFocus", autocomplete: "autocomplete", defaultValue: "defaultValue", disabled: "disabled", multiple: "multiple", name: "name", placeholder: "placeholder", required: "required", size: "size", value: "value", variant: "variant" }, outputs: { mdsInputSelectChange: "mdsInputSelectChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1482
- };
1483
- MdsInputSelect = __decorate([
1484
- ProxyCmp({
1485
- inputs: ['autoFocus', 'autocomplete', 'defaultValue', 'disabled', 'multiple', 'name', 'placeholder', 'required', 'size', 'value', 'variant'],
1486
- methods: ['updateLang', 'setValue']
1487
- })
1488
- ], MdsInputSelect);
1489
- export { MdsInputSelect };
1490
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputSelect, decorators: [{
1491
- type: Component,
1492
- args: [{
1493
- selector: 'mds-input-select',
1494
- changeDetection: ChangeDetectionStrategy.OnPush,
1495
- template: '<ng-content></ng-content>',
1496
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1497
- inputs: ['autoFocus', 'autocomplete', 'defaultValue', 'disabled', 'multiple', 'name', 'placeholder', 'required', 'size', 'value', 'variant'],
1498
- outputs: ['mdsInputSelectChange'],
1499
- standalone: false
1500
- }]
1501
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsInputSelectChange: [{
1502
- type: Output
1503
- }] } });
1504
- let MdsInputSwitch = class MdsInputSwitch {
1505
- z;
1506
- el;
1507
- mdsInputSwitchChange = new EventEmitter();
1508
- constructor(c, r, z) {
1509
- this.z = z;
1510
- c.detach();
1511
- this.el = r.nativeElement;
1512
- }
1513
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputSwitch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1514
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsInputSwitch, selector: "mds-input-switch", inputs: { autofocus: "autofocus", checked: "checked", disabled: "disabled", explicit: "explicit", icon: "icon", indeterminate: "indeterminate", name: "name", size: "size", type: "type", typography: "typography", value: "value", variant: "variant" }, outputs: { mdsInputSwitchChange: "mdsInputSwitchChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1515
- };
1516
- MdsInputSwitch = __decorate([
1517
- ProxyCmp({
1518
- inputs: ['autofocus', 'checked', 'disabled', 'explicit', 'icon', 'indeterminate', 'name', 'size', 'type', 'typography', 'value', 'variant'],
1519
- methods: ['updateLang']
1520
- })
1521
- ], MdsInputSwitch);
1522
- export { MdsInputSwitch };
1523
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputSwitch, decorators: [{
1524
- type: Component,
1525
- args: [{
1526
- selector: 'mds-input-switch',
1527
- changeDetection: ChangeDetectionStrategy.OnPush,
1528
- template: '<ng-content></ng-content>',
1529
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1530
- inputs: ['autofocus', 'checked', 'disabled', 'explicit', 'icon', 'indeterminate', 'name', 'size', 'type', 'typography', 'value', 'variant'],
1531
- outputs: ['mdsInputSwitchChange'],
1532
- standalone: false
1533
- }]
1534
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsInputSwitchChange: [{
1535
- type: Output
1536
- }] } });
1537
- let MdsInputTip = class MdsInputTip {
1538
- z;
1539
- el;
1540
- constructor(c, r, z) {
1541
- this.z = z;
1542
- c.detach();
1543
- this.el = r.nativeElement;
1544
- }
1545
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputTip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1546
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsInputTip, selector: "mds-input-tip", inputs: { active: "active", position: "position" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1547
- };
1548
- MdsInputTip = __decorate([
1549
- ProxyCmp({
1550
- inputs: ['active', 'position']
1551
- })
1552
- ], MdsInputTip);
1553
- export { MdsInputTip };
1554
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputTip, decorators: [{
1555
- type: Component,
1556
- args: [{
1557
- selector: 'mds-input-tip',
1558
- changeDetection: ChangeDetectionStrategy.OnPush,
1559
- template: '<ng-content></ng-content>',
1560
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1561
- inputs: ['active', 'position'],
1562
- standalone: false
1563
- }]
1564
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1565
- let MdsInputTipItem = class MdsInputTipItem {
1566
- z;
1567
- el;
1568
- constructor(c, r, z) {
1569
- this.z = z;
1570
- c.detach();
1571
- this.el = r.nativeElement;
1572
- }
1573
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputTipItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1574
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsInputTipItem, selector: "mds-input-tip-item", inputs: { expanded: "expanded", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1575
- };
1576
- MdsInputTipItem = __decorate([
1577
- ProxyCmp({
1578
- inputs: ['expanded', 'variant'],
1579
- methods: ['updateLang']
1580
- })
1581
- ], MdsInputTipItem);
1582
- export { MdsInputTipItem };
1583
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputTipItem, decorators: [{
1584
- type: Component,
1585
- args: [{
1586
- selector: 'mds-input-tip-item',
1587
- changeDetection: ChangeDetectionStrategy.OnPush,
1588
- template: '<ng-content></ng-content>',
1589
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1590
- inputs: ['expanded', 'variant'],
1591
- standalone: false
1592
- }]
1593
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1594
- let MdsInputUpload = class MdsInputUpload {
1595
- z;
1596
- el;
1597
- mdsInputUploadChange = new EventEmitter();
1598
- constructor(c, r, z) {
1599
- this.z = z;
1600
- c.detach();
1601
- this.el = r.nativeElement;
1602
- }
1603
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputUpload, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1604
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsInputUpload, selector: "mds-input-upload", inputs: { accept: "accept", initialValue: "initialValue", maxFileSize: "maxFileSize", maxFiles: "maxFiles", sort: "sort" }, outputs: { mdsInputUploadChange: "mdsInputUploadChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1605
- };
1606
- MdsInputUpload = __decorate([
1607
- ProxyCmp({
1608
- inputs: ['accept', 'initialValue', 'maxFileSize', 'maxFiles', 'sort'],
1609
- methods: ['updateLang', 'getFiles', 'getFilesError', 'reset']
1610
- })
1611
- ], MdsInputUpload);
1612
- export { MdsInputUpload };
1613
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsInputUpload, decorators: [{
1614
- type: Component,
1615
- args: [{
1616
- selector: 'mds-input-upload',
1617
- changeDetection: ChangeDetectionStrategy.OnPush,
1618
- template: '<ng-content></ng-content>',
1619
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1620
- inputs: ['accept', 'initialValue', 'maxFileSize', 'maxFiles', 'sort'],
1621
- outputs: ['mdsInputUploadChange'],
1622
- standalone: false
1623
- }]
1624
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsInputUploadChange: [{
1625
- type: Output
1626
- }] } });
1627
- let MdsKeyboard = class MdsKeyboard {
1628
- z;
1629
- el;
1630
- constructor(c, r, z) {
1631
- this.z = z;
1632
- c.detach();
1633
- this.el = r.nativeElement;
1634
- }
1635
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsKeyboard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1636
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsKeyboard, selector: "mds-keyboard", inputs: { test: "test", try: "try" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1637
- };
1638
- MdsKeyboard = __decorate([
1639
- ProxyCmp({
1640
- inputs: ['test', 'try'],
1641
- methods: ['updateLang']
1642
- })
1643
- ], MdsKeyboard);
1644
- export { MdsKeyboard };
1645
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsKeyboard, decorators: [{
1646
- type: Component,
1647
- args: [{
1648
- selector: 'mds-keyboard',
1649
- changeDetection: ChangeDetectionStrategy.OnPush,
1650
- template: '<ng-content></ng-content>',
1651
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1652
- inputs: ['test', 'try'],
1653
- standalone: false
1654
- }]
1655
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1656
- let MdsKeyboardKey = class MdsKeyboardKey {
1657
- z;
1658
- el;
1659
- constructor(c, r, z) {
1660
- this.z = z;
1661
- c.detach();
1662
- this.el = r.nativeElement;
1663
- }
1664
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsKeyboardKey, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1665
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsKeyboardKey, selector: "mds-keyboard-key", inputs: { name: "name", pressed: "pressed" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1666
- };
1667
- MdsKeyboardKey = __decorate([
1668
- ProxyCmp({
1669
- inputs: ['name', 'pressed'],
1670
- methods: ['updateLang']
1671
- })
1672
- ], MdsKeyboardKey);
1673
- export { MdsKeyboardKey };
1674
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsKeyboardKey, decorators: [{
1675
- type: Component,
1676
- args: [{
1677
- selector: 'mds-keyboard-key',
1678
- changeDetection: ChangeDetectionStrategy.OnPush,
1679
- template: '<ng-content></ng-content>',
1680
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1681
- inputs: ['name', 'pressed'],
1682
- standalone: false
1683
- }]
1684
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1685
- let MdsKpi = class MdsKpi {
1686
- z;
1687
- el;
1688
- constructor(c, r, z) {
1689
- this.z = z;
1690
- c.detach();
1691
- this.el = r.nativeElement;
1692
- }
1693
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsKpi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1694
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsKpi, selector: "mds-kpi", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1695
- };
1696
- MdsKpi = __decorate([
1697
- ProxyCmp({})
1698
- ], MdsKpi);
1699
- export { MdsKpi };
1700
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsKpi, decorators: [{
1701
- type: Component,
1702
- args: [{
1703
- selector: 'mds-kpi',
1704
- changeDetection: ChangeDetectionStrategy.OnPush,
1705
- template: '<ng-content></ng-content>',
1706
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1707
- inputs: [],
1708
- standalone: false
1709
- }]
1710
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1711
- let MdsKpiItem = class MdsKpiItem {
1712
- z;
1713
- el;
1714
- constructor(c, r, z) {
1715
- this.z = z;
1716
- c.detach();
1717
- this.el = r.nativeElement;
1718
- }
1719
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsKpiItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1720
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsKpiItem, selector: "mds-kpi-item", inputs: { description: "description", icon: "icon", label: "label", threshold: "threshold" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1721
- };
1722
- MdsKpiItem = __decorate([
1723
- ProxyCmp({
1724
- inputs: ['description', 'icon', 'label', 'threshold']
1725
- })
1726
- ], MdsKpiItem);
1727
- export { MdsKpiItem };
1728
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsKpiItem, decorators: [{
1729
- type: Component,
1730
- args: [{
1731
- selector: 'mds-kpi-item',
1732
- changeDetection: ChangeDetectionStrategy.OnPush,
1733
- template: '<ng-content></ng-content>',
1734
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1735
- inputs: ['description', 'icon', 'label', 'threshold'],
1736
- standalone: false
1737
- }]
1738
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1739
- let MdsLabel = class MdsLabel {
1740
- z;
1741
- el;
1742
- mdsLabelDelete = new EventEmitter();
1743
- constructor(c, r, z) {
1744
- this.z = z;
1745
- c.detach();
1746
- this.el = r.nativeElement;
1747
- }
1748
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1749
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsLabel, selector: "mds-label", inputs: { deletable: "deletable", label: "label", tone: "tone", truncate: "truncate", typography: "typography", variant: "variant" }, outputs: { mdsLabelDelete: "mdsLabelDelete" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1750
- };
1751
- MdsLabel = __decorate([
1752
- ProxyCmp({
1753
- inputs: ['deletable', 'label', 'tone', 'truncate', 'typography', 'variant'],
1754
- methods: ['updateLang']
1755
- })
1756
- ], MdsLabel);
1757
- export { MdsLabel };
1758
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsLabel, decorators: [{
1759
- type: Component,
1760
- args: [{
1761
- selector: 'mds-label',
1762
- changeDetection: ChangeDetectionStrategy.OnPush,
1763
- template: '<ng-content></ng-content>',
1764
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1765
- inputs: ['deletable', 'label', 'tone', 'truncate', 'typography', 'variant'],
1766
- outputs: ['mdsLabelDelete'],
1767
- standalone: false
1768
- }]
1769
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsLabelDelete: [{
1770
- type: Output
1771
- }] } });
1772
- let MdsList = class MdsList {
1773
- z;
1774
- el;
1775
- constructor(c, r, z) {
1776
- this.z = z;
1777
- c.detach();
1778
- this.el = r.nativeElement;
1779
- }
1780
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1781
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsList, selector: "mds-list", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1782
- };
1783
- MdsList = __decorate([
1784
- ProxyCmp({})
1785
- ], MdsList);
1786
- export { MdsList };
1787
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsList, decorators: [{
1788
- type: Component,
1789
- args: [{
1790
- selector: 'mds-list',
1791
- changeDetection: ChangeDetectionStrategy.OnPush,
1792
- template: '<ng-content></ng-content>',
1793
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1794
- inputs: [],
1795
- standalone: false
1796
- }]
1797
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1798
- let MdsListItem = class MdsListItem {
1799
- z;
1800
- el;
1801
- constructor(c, r, z) {
1802
- this.z = z;
1803
- c.detach();
1804
- this.el = r.nativeElement;
1805
- }
1806
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1807
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsListItem, selector: "mds-list-item", inputs: { icon: "icon", typography: "typography", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1808
- };
1809
- MdsListItem = __decorate([
1810
- ProxyCmp({
1811
- inputs: ['icon', 'typography', 'variant']
1812
- })
1813
- ], MdsListItem);
1814
- export { MdsListItem };
1815
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsListItem, decorators: [{
1816
- type: Component,
1817
- args: [{
1818
- selector: 'mds-list-item',
1819
- changeDetection: ChangeDetectionStrategy.OnPush,
1820
- template: '<ng-content></ng-content>',
1821
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1822
- inputs: ['icon', 'typography', 'variant'],
1823
- standalone: false
1824
- }]
1825
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1826
- let MdsMention = class MdsMention {
1827
- z;
1828
- el;
1829
- constructor(c, r, z) {
1830
- this.z = z;
1831
- c.detach();
1832
- this.el = r.nativeElement;
1833
- }
1834
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsMention, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1835
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsMention, selector: "mds-mention", inputs: { icon: "icon", label: "label", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1836
- };
1837
- MdsMention = __decorate([
1838
- ProxyCmp({
1839
- inputs: ['icon', 'label', 'size']
1840
- })
1841
- ], MdsMention);
1842
- export { MdsMention };
1843
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsMention, decorators: [{
1844
- type: Component,
1845
- args: [{
1846
- selector: 'mds-mention',
1847
- changeDetection: ChangeDetectionStrategy.OnPush,
1848
- template: '<ng-content></ng-content>',
1849
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1850
- inputs: ['icon', 'label', 'size'],
1851
- standalone: false
1852
- }]
1853
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1854
- let MdsModal = class MdsModal {
1855
- z;
1856
- el;
1857
- mdsModalOpen = new EventEmitter();
1858
- mdsModalShow = new EventEmitter();
1859
- mdsModalClose = new EventEmitter();
1860
- mdsModalHide = new EventEmitter();
1861
- constructor(c, r, z) {
1862
- this.z = z;
1863
- c.detach();
1864
- this.el = r.nativeElement;
1865
- }
1866
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1867
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsModal, selector: "mds-modal", inputs: { animating: "animating", animation: "animation", backdrop: "backdrop", interaction: "interaction", opened: "opened", overflow: "overflow", position: "position" }, outputs: { mdsModalOpen: "mdsModalOpen", mdsModalShow: "mdsModalShow", mdsModalClose: "mdsModalClose", mdsModalHide: "mdsModalHide" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1868
- };
1869
- MdsModal = __decorate([
1870
- ProxyCmp({
1871
- inputs: ['animating', 'animation', 'backdrop', 'interaction', 'opened', 'overflow', 'position'],
1872
- methods: ['close']
1873
- })
1874
- ], MdsModal);
1875
- export { MdsModal };
1876
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsModal, decorators: [{
1877
- type: Component,
1878
- args: [{
1879
- selector: 'mds-modal',
1880
- changeDetection: ChangeDetectionStrategy.OnPush,
1881
- template: '<ng-content></ng-content>',
1882
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1883
- inputs: ['animating', 'animation', 'backdrop', 'interaction', 'opened', 'overflow', 'position'],
1884
- outputs: ['mdsModalOpen', 'mdsModalShow', 'mdsModalClose', 'mdsModalHide'],
1885
- standalone: false
1886
- }]
1887
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsModalOpen: [{
1888
- type: Output
1889
- }], mdsModalShow: [{
1890
- type: Output
1891
- }], mdsModalClose: [{
1892
- type: Output
1893
- }], mdsModalHide: [{
1894
- type: Output
1895
- }] } });
1896
- let MdsNote = class MdsNote {
1897
- z;
1898
- el;
1899
- mdsNoteDelete = new EventEmitter();
1900
- constructor(c, r, z) {
1901
- this.z = z;
1902
- c.detach();
1903
- this.el = r.nativeElement;
1904
- }
1905
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsNote, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1906
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsNote, selector: "mds-note", inputs: { deletable: "deletable", variant: "variant" }, outputs: { mdsNoteDelete: "mdsNoteDelete" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1907
- };
1908
- MdsNote = __decorate([
1909
- ProxyCmp({
1910
- inputs: ['deletable', 'variant'],
1911
- methods: ['updateLang']
1912
- })
1913
- ], MdsNote);
1914
- export { MdsNote };
1915
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsNote, decorators: [{
1916
- type: Component,
1917
- args: [{
1918
- selector: 'mds-note',
1919
- changeDetection: ChangeDetectionStrategy.OnPush,
1920
- template: '<ng-content></ng-content>',
1921
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1922
- inputs: ['deletable', 'variant'],
1923
- outputs: ['mdsNoteDelete'],
1924
- standalone: false
1925
- }]
1926
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsNoteDelete: [{
1927
- type: Output
1928
- }] } });
1929
- let MdsNotification = class MdsNotification {
1930
- z;
1931
- el;
1932
- constructor(c, r, z) {
1933
- this.z = z;
1934
- c.detach();
1935
- this.el = r.nativeElement;
1936
- }
1937
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsNotification, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1938
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsNotification, selector: "mds-notification", inputs: { max: "max", strategy: "strategy", target: "target", value: "value", visible: "visible" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1939
- };
1940
- MdsNotification = __decorate([
1941
- ProxyCmp({
1942
- inputs: ['max', 'strategy', 'target', 'value', 'visible']
1943
- })
1944
- ], MdsNotification);
1945
- export { MdsNotification };
1946
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsNotification, decorators: [{
1947
- type: Component,
1948
- args: [{
1949
- selector: 'mds-notification',
1950
- changeDetection: ChangeDetectionStrategy.OnPush,
1951
- template: '<ng-content></ng-content>',
1952
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1953
- inputs: ['max', 'strategy', 'target', 'value', 'visible'],
1954
- standalone: false
1955
- }]
1956
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1957
- let MdsPaginator = class MdsPaginator {
1958
- z;
1959
- el;
1960
- mdsPaginatorChange = new EventEmitter();
1961
- constructor(c, r, z) {
1962
- this.z = z;
1963
- c.detach();
1964
- this.el = r.nativeElement;
1965
- }
1966
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPaginator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1967
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPaginator, selector: "mds-paginator", inputs: { currentPage: "currentPage", pages: "pages" }, outputs: { mdsPaginatorChange: "mdsPaginatorChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1968
- };
1969
- MdsPaginator = __decorate([
1970
- ProxyCmp({
1971
- inputs: ['currentPage', 'pages']
1972
- })
1973
- ], MdsPaginator);
1974
- export { MdsPaginator };
1975
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPaginator, decorators: [{
1976
- type: Component,
1977
- args: [{
1978
- selector: 'mds-paginator',
1979
- changeDetection: ChangeDetectionStrategy.OnPush,
1980
- template: '<ng-content></ng-content>',
1981
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1982
- inputs: ['currentPage', 'pages'],
1983
- outputs: ['mdsPaginatorChange'],
1984
- standalone: false
1985
- }]
1986
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsPaginatorChange: [{
1987
- type: Output
1988
- }] } });
1989
- let MdsPaginatorItem = class MdsPaginatorItem {
1990
- z;
1991
- el;
1992
- constructor(c, r, z) {
1993
- this.z = z;
1994
- c.detach();
1995
- this.el = r.nativeElement;
1996
- }
1997
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPaginatorItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1998
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPaginatorItem, selector: "mds-paginator-item", inputs: { disabled: "disabled", icon: "icon", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1999
- };
2000
- MdsPaginatorItem = __decorate([
2001
- ProxyCmp({
2002
- inputs: ['disabled', 'icon', 'selected']
2003
- })
2004
- ], MdsPaginatorItem);
2005
- export { MdsPaginatorItem };
2006
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPaginatorItem, decorators: [{
2007
- type: Component,
2008
- args: [{
2009
- selector: 'mds-paginator-item',
2010
- changeDetection: ChangeDetectionStrategy.OnPush,
2011
- template: '<ng-content></ng-content>',
2012
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2013
- inputs: ['disabled', 'icon', 'selected'],
2014
- standalone: false
2015
- }]
2016
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2017
- let MdsPolicyAi = class MdsPolicyAi {
2018
- z;
2019
- el;
2020
- constructor(c, r, z) {
2021
- this.z = z;
2022
- c.detach();
2023
- this.el = r.nativeElement;
2024
- }
2025
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPolicyAi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2026
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPolicyAi, selector: "mds-policy-ai", inputs: { description: "description", headline: "headline", href: "href", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2027
- };
2028
- MdsPolicyAi = __decorate([
2029
- ProxyCmp({
2030
- inputs: ['description', 'headline', 'href', 'variant'],
2031
- methods: ['updateLang']
2032
- })
2033
- ], MdsPolicyAi);
2034
- export { MdsPolicyAi };
2035
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPolicyAi, decorators: [{
2036
- type: Component,
2037
- args: [{
2038
- selector: 'mds-policy-ai',
2039
- changeDetection: ChangeDetectionStrategy.OnPush,
2040
- template: '<ng-content></ng-content>',
2041
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2042
- inputs: ['description', 'headline', 'href', 'variant'],
2043
- standalone: false
2044
- }]
2045
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2046
- let MdsPref = class MdsPref {
2047
- z;
2048
- el;
2049
- constructor(c, r, z) {
2050
- this.z = z;
2051
- c.detach();
2052
- this.el = r.nativeElement;
2053
- }
2054
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPref, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2055
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPref, selector: "mds-pref", inputs: { controller: "controller", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2056
- };
2057
- MdsPref = __decorate([
2058
- ProxyCmp({
2059
- inputs: ['controller', 'size'],
2060
- methods: ['updateLang']
2061
- })
2062
- ], MdsPref);
2063
- export { MdsPref };
2064
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPref, decorators: [{
2065
- type: Component,
2066
- args: [{
2067
- selector: 'mds-pref',
2068
- changeDetection: ChangeDetectionStrategy.OnPush,
2069
- template: '<ng-content></ng-content>',
2070
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2071
- inputs: ['controller', 'size'],
2072
- standalone: false
2073
- }]
2074
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2075
- let MdsPrefAnimation = class MdsPrefAnimation {
2076
- z;
2077
- el;
2078
- mdsPrefChange = new EventEmitter();
2079
- constructor(c, r, z) {
2080
- this.z = z;
2081
- c.detach();
2082
- this.el = r.nativeElement;
2083
- }
2084
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefAnimation, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2085
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPrefAnimation, selector: "mds-pref-animation", inputs: { mode: "mode", size: "size" }, outputs: { mdsPrefChange: "mdsPrefChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2086
- };
2087
- MdsPrefAnimation = __decorate([
2088
- ProxyCmp({
2089
- inputs: ['mode', 'size'],
2090
- methods: ['updateLang']
2091
- })
2092
- ], MdsPrefAnimation);
2093
- export { MdsPrefAnimation };
2094
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefAnimation, decorators: [{
2095
- type: Component,
2096
- args: [{
2097
- selector: 'mds-pref-animation',
2098
- changeDetection: ChangeDetectionStrategy.OnPush,
2099
- template: '<ng-content></ng-content>',
2100
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2101
- inputs: ['mode', 'size'],
2102
- outputs: ['mdsPrefChange'],
2103
- standalone: false
2104
- }]
2105
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsPrefChange: [{
2106
- type: Output
2107
- }] } });
2108
- let MdsPrefConsumption = class MdsPrefConsumption {
2109
- z;
2110
- el;
2111
- mdsPrefChange = new EventEmitter();
2112
- constructor(c, r, z) {
2113
- this.z = z;
2114
- c.detach();
2115
- this.el = r.nativeElement;
2116
- }
2117
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefConsumption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2118
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPrefConsumption, selector: "mds-pref-consumption", inputs: { mode: "mode", size: "size" }, outputs: { mdsPrefChange: "mdsPrefChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2119
- };
2120
- MdsPrefConsumption = __decorate([
2121
- ProxyCmp({
2122
- inputs: ['mode', 'size'],
2123
- methods: ['updateLang']
2124
- })
2125
- ], MdsPrefConsumption);
2126
- export { MdsPrefConsumption };
2127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefConsumption, decorators: [{
2128
- type: Component,
2129
- args: [{
2130
- selector: 'mds-pref-consumption',
2131
- changeDetection: ChangeDetectionStrategy.OnPush,
2132
- template: '<ng-content></ng-content>',
2133
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2134
- inputs: ['mode', 'size'],
2135
- outputs: ['mdsPrefChange'],
2136
- standalone: false
2137
- }]
2138
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsPrefChange: [{
2139
- type: Output
2140
- }] } });
2141
- let MdsPrefContrast = class MdsPrefContrast {
2142
- z;
2143
- el;
2144
- mdsPrefChange = new EventEmitter();
2145
- constructor(c, r, z) {
2146
- this.z = z;
2147
- c.detach();
2148
- this.el = r.nativeElement;
2149
- }
2150
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefContrast, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2151
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPrefContrast, selector: "mds-pref-contrast", inputs: { mode: "mode", size: "size" }, outputs: { mdsPrefChange: "mdsPrefChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2152
- };
2153
- MdsPrefContrast = __decorate([
2154
- ProxyCmp({
2155
- inputs: ['mode', 'size'],
2156
- methods: ['updateLang']
2157
- })
2158
- ], MdsPrefContrast);
2159
- export { MdsPrefContrast };
2160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefContrast, decorators: [{
2161
- type: Component,
2162
- args: [{
2163
- selector: 'mds-pref-contrast',
2164
- changeDetection: ChangeDetectionStrategy.OnPush,
2165
- template: '<ng-content></ng-content>',
2166
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2167
- inputs: ['mode', 'size'],
2168
- outputs: ['mdsPrefChange'],
2169
- standalone: false
2170
- }]
2171
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsPrefChange: [{
2172
- type: Output
2173
- }] } });
2174
- let MdsPrefLanguage = class MdsPrefLanguage {
2175
- z;
2176
- el;
2177
- mdsPrefLanguageChange = new EventEmitter();
2178
- mdsPrefChange = new EventEmitter();
2179
- constructor(c, r, z) {
2180
- this.z = z;
2181
- c.detach();
2182
- this.el = r.nativeElement;
2183
- }
2184
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefLanguage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2185
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPrefLanguage, selector: "mds-pref-language", inputs: { set: "set", size: "size" }, outputs: { mdsPrefLanguageChange: "mdsPrefLanguageChange", mdsPrefChange: "mdsPrefChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2186
- };
2187
- MdsPrefLanguage = __decorate([
2188
- ProxyCmp({
2189
- inputs: ['set', 'size'],
2190
- methods: ['updateLang']
2191
- })
2192
- ], MdsPrefLanguage);
2193
- export { MdsPrefLanguage };
2194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefLanguage, decorators: [{
2195
- type: Component,
2196
- args: [{
2197
- selector: 'mds-pref-language',
2198
- changeDetection: ChangeDetectionStrategy.OnPush,
2199
- template: '<ng-content></ng-content>',
2200
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2201
- inputs: ['set', 'size'],
2202
- outputs: ['mdsPrefLanguageChange', 'mdsPrefChange'],
2203
- standalone: false
2204
- }]
2205
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsPrefLanguageChange: [{
2206
- type: Output
2207
- }], mdsPrefChange: [{
2208
- type: Output
2209
- }] } });
2210
- let MdsPrefLanguageItem = class MdsPrefLanguageItem {
2211
- z;
2212
- el;
2213
- mdsPrefLanguageItemSelect = new EventEmitter();
2214
- constructor(c, r, z) {
2215
- this.z = z;
2216
- c.detach();
2217
- this.el = r.nativeElement;
2218
- }
2219
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefLanguageItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2220
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPrefLanguageItem, selector: "mds-pref-language-item", inputs: { code: "code", selected: "selected" }, outputs: { mdsPrefLanguageItemSelect: "mdsPrefLanguageItemSelect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2221
- };
2222
- MdsPrefLanguageItem = __decorate([
2223
- ProxyCmp({
2224
- inputs: ['code', 'selected'],
2225
- methods: ['updateLang']
2226
- })
2227
- ], MdsPrefLanguageItem);
2228
- export { MdsPrefLanguageItem };
2229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefLanguageItem, decorators: [{
2230
- type: Component,
2231
- args: [{
2232
- selector: 'mds-pref-language-item',
2233
- changeDetection: ChangeDetectionStrategy.OnPush,
2234
- template: '<ng-content></ng-content>',
2235
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2236
- inputs: ['code', 'selected'],
2237
- outputs: ['mdsPrefLanguageItemSelect'],
2238
- standalone: false
2239
- }]
2240
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsPrefLanguageItemSelect: [{
2241
- type: Output
2242
- }] } });
2243
- let MdsPrefTheme = class MdsPrefTheme {
2244
- z;
2245
- el;
2246
- mdsPrefChange = new EventEmitter();
2247
- constructor(c, r, z) {
2248
- this.z = z;
2249
- c.detach();
2250
- this.el = r.nativeElement;
2251
- }
2252
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefTheme, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2253
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPrefTheme, selector: "mds-pref-theme", inputs: { mode: "mode", size: "size", transition: "transition" }, outputs: { mdsPrefChange: "mdsPrefChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2254
- };
2255
- MdsPrefTheme = __decorate([
2256
- ProxyCmp({
2257
- inputs: ['mode', 'size', 'transition'],
2258
- methods: ['updateLang']
2259
- })
2260
- ], MdsPrefTheme);
2261
- export { MdsPrefTheme };
2262
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefTheme, decorators: [{
2263
- type: Component,
2264
- args: [{
2265
- selector: 'mds-pref-theme',
2266
- changeDetection: ChangeDetectionStrategy.OnPush,
2267
- template: '<ng-content></ng-content>',
2268
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2269
- inputs: ['mode', 'size', 'transition'],
2270
- outputs: ['mdsPrefChange'],
2271
- standalone: false
2272
- }]
2273
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsPrefChange: [{
2274
- type: Output
2275
- }] } });
2276
- let MdsPrefThemeVariant = class MdsPrefThemeVariant {
2277
- z;
2278
- el;
2279
- mdsPrefThemeVariantChange = new EventEmitter();
2280
- mdsPrefChange = new EventEmitter();
2281
- constructor(c, r, z) {
2282
- this.z = z;
2283
- c.detach();
2284
- this.el = r.nativeElement;
2285
- }
2286
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefThemeVariant, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2287
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPrefThemeVariant, selector: "mds-pref-theme-variant", inputs: { name: "name", scheme: "scheme", size: "size" }, outputs: { mdsPrefThemeVariantChange: "mdsPrefThemeVariantChange", mdsPrefChange: "mdsPrefChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2288
- };
2289
- MdsPrefThemeVariant = __decorate([
2290
- ProxyCmp({
2291
- inputs: ['name', 'scheme', 'size'],
2292
- methods: ['updateLang']
2293
- })
2294
- ], MdsPrefThemeVariant);
2295
- export { MdsPrefThemeVariant };
2296
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefThemeVariant, decorators: [{
2297
- type: Component,
2298
- args: [{
2299
- selector: 'mds-pref-theme-variant',
2300
- changeDetection: ChangeDetectionStrategy.OnPush,
2301
- template: '<ng-content></ng-content>',
2302
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2303
- inputs: ['name', 'scheme', 'size'],
2304
- outputs: ['mdsPrefThemeVariantChange', 'mdsPrefChange'],
2305
- standalone: false
2306
- }]
2307
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsPrefThemeVariantChange: [{
2308
- type: Output
2309
- }], mdsPrefChange: [{
2310
- type: Output
2311
- }] } });
2312
- let MdsPrefThemeVariantItem = class MdsPrefThemeVariantItem {
2313
- z;
2314
- el;
2315
- mdsPrefThemeVariantItemSelect = new EventEmitter();
2316
- constructor(c, r, z) {
2317
- this.z = z;
2318
- c.detach();
2319
- this.el = r.nativeElement;
2320
- }
2321
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefThemeVariantItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2322
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPrefThemeVariantItem, selector: "mds-pref-theme-variant-item", inputs: { label: "label", name: "name", scheme: "scheme", selected: "selected" }, outputs: { mdsPrefThemeVariantItemSelect: "mdsPrefThemeVariantItemSelect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2323
- };
2324
- MdsPrefThemeVariantItem = __decorate([
2325
- ProxyCmp({
2326
- inputs: ['label', 'name', 'scheme', 'selected'],
2327
- methods: ['updateLang']
2328
- })
2329
- ], MdsPrefThemeVariantItem);
2330
- export { MdsPrefThemeVariantItem };
2331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPrefThemeVariantItem, decorators: [{
2332
- type: Component,
2333
- args: [{
2334
- selector: 'mds-pref-theme-variant-item',
2335
- changeDetection: ChangeDetectionStrategy.OnPush,
2336
- template: '<ng-content></ng-content>',
2337
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2338
- inputs: ['label', 'name', 'scheme', 'selected'],
2339
- outputs: ['mdsPrefThemeVariantItemSelect'],
2340
- standalone: false
2341
- }]
2342
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsPrefThemeVariantItemSelect: [{
2343
- type: Output
2344
- }] } });
2345
- let MdsPriceTable = class MdsPriceTable {
2346
- z;
2347
- el;
2348
- constructor(c, r, z) {
2349
- this.z = z;
2350
- c.detach();
2351
- this.el = r.nativeElement;
2352
- }
2353
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2354
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPriceTable, selector: "mds-price-table", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2355
- };
2356
- MdsPriceTable = __decorate([
2357
- ProxyCmp({})
2358
- ], MdsPriceTable);
2359
- export { MdsPriceTable };
2360
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTable, decorators: [{
2361
- type: Component,
2362
- args: [{
2363
- selector: 'mds-price-table',
2364
- changeDetection: ChangeDetectionStrategy.OnPush,
2365
- template: '<ng-content></ng-content>',
2366
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2367
- inputs: [],
2368
- standalone: false
2369
- }]
2370
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2371
- let MdsPriceTableFeatures = class MdsPriceTableFeatures {
2372
- z;
2373
- el;
2374
- constructor(c, r, z) {
2375
- this.z = z;
2376
- c.detach();
2377
- this.el = r.nativeElement;
2378
- }
2379
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTableFeatures, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2380
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPriceTableFeatures, selector: "mds-price-table-features", inputs: { label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2381
- };
2382
- MdsPriceTableFeatures = __decorate([
2383
- ProxyCmp({
2384
- inputs: ['label']
2385
- })
2386
- ], MdsPriceTableFeatures);
2387
- export { MdsPriceTableFeatures };
2388
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTableFeatures, decorators: [{
2389
- type: Component,
2390
- args: [{
2391
- selector: 'mds-price-table-features',
2392
- changeDetection: ChangeDetectionStrategy.OnPush,
2393
- template: '<ng-content></ng-content>',
2394
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2395
- inputs: ['label'],
2396
- standalone: false
2397
- }]
2398
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2399
- let MdsPriceTableFeaturesCell = class MdsPriceTableFeaturesCell {
2400
- z;
2401
- el;
2402
- constructor(c, r, z) {
2403
- this.z = z;
2404
- c.detach();
2405
- this.el = r.nativeElement;
2406
- }
2407
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTableFeaturesCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2408
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPriceTableFeaturesCell, selector: "mds-price-table-features-cell", inputs: { type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2409
- };
2410
- MdsPriceTableFeaturesCell = __decorate([
2411
- ProxyCmp({
2412
- inputs: ['type']
2413
- })
2414
- ], MdsPriceTableFeaturesCell);
2415
- export { MdsPriceTableFeaturesCell };
2416
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTableFeaturesCell, decorators: [{
2417
- type: Component,
2418
- args: [{
2419
- selector: 'mds-price-table-features-cell',
2420
- changeDetection: ChangeDetectionStrategy.OnPush,
2421
- template: '<ng-content></ng-content>',
2422
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2423
- inputs: ['type'],
2424
- standalone: false
2425
- }]
2426
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2427
- let MdsPriceTableFeaturesRow = class MdsPriceTableFeaturesRow {
2428
- z;
2429
- el;
2430
- constructor(c, r, z) {
2431
- this.z = z;
2432
- c.detach();
2433
- this.el = r.nativeElement;
2434
- }
2435
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTableFeaturesRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2436
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPriceTableFeaturesRow, selector: "mds-price-table-features-row", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2437
- };
2438
- MdsPriceTableFeaturesRow = __decorate([
2439
- ProxyCmp({})
2440
- ], MdsPriceTableFeaturesRow);
2441
- export { MdsPriceTableFeaturesRow };
2442
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTableFeaturesRow, decorators: [{
2443
- type: Component,
2444
- args: [{
2445
- selector: 'mds-price-table-features-row',
2446
- changeDetection: ChangeDetectionStrategy.OnPush,
2447
- template: '<ng-content></ng-content>',
2448
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2449
- inputs: [],
2450
- standalone: false
2451
- }]
2452
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2453
- let MdsPriceTableHeader = class MdsPriceTableHeader {
2454
- z;
2455
- el;
2456
- constructor(c, r, z) {
2457
- this.z = z;
2458
- c.detach();
2459
- this.el = r.nativeElement;
2460
- }
2461
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTableHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2462
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPriceTableHeader, selector: "mds-price-table-header", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2463
- };
2464
- MdsPriceTableHeader = __decorate([
2465
- ProxyCmp({})
2466
- ], MdsPriceTableHeader);
2467
- export { MdsPriceTableHeader };
2468
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTableHeader, decorators: [{
2469
- type: Component,
2470
- args: [{
2471
- selector: 'mds-price-table-header',
2472
- changeDetection: ChangeDetectionStrategy.OnPush,
2473
- template: '<ng-content></ng-content>',
2474
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2475
- inputs: [],
2476
- standalone: false
2477
- }]
2478
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2479
- let MdsPriceTableList = class MdsPriceTableList {
2480
- z;
2481
- el;
2482
- constructor(c, r, z) {
2483
- this.z = z;
2484
- c.detach();
2485
- this.el = r.nativeElement;
2486
- }
2487
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTableList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2488
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPriceTableList, selector: "mds-price-table-list", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2489
- };
2490
- MdsPriceTableList = __decorate([
2491
- ProxyCmp({})
2492
- ], MdsPriceTableList);
2493
- export { MdsPriceTableList };
2494
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTableList, decorators: [{
2495
- type: Component,
2496
- args: [{
2497
- selector: 'mds-price-table-list',
2498
- changeDetection: ChangeDetectionStrategy.OnPush,
2499
- template: '<ng-content></ng-content>',
2500
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2501
- inputs: [],
2502
- standalone: false
2503
- }]
2504
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2505
- let MdsPriceTableListItem = class MdsPriceTableListItem {
2506
- z;
2507
- el;
2508
- constructor(c, r, z) {
2509
- this.z = z;
2510
- c.detach();
2511
- this.el = r.nativeElement;
2512
- }
2513
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTableListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2514
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPriceTableListItem, selector: "mds-price-table-list-item", inputs: { supported: "supported", typography: "typography" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2515
- };
2516
- MdsPriceTableListItem = __decorate([
2517
- ProxyCmp({
2518
- inputs: ['supported', 'typography']
2519
- })
2520
- ], MdsPriceTableListItem);
2521
- export { MdsPriceTableListItem };
2522
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPriceTableListItem, decorators: [{
2523
- type: Component,
2524
- args: [{
2525
- selector: 'mds-price-table-list-item',
2526
- changeDetection: ChangeDetectionStrategy.OnPush,
2527
- template: '<ng-content></ng-content>',
2528
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2529
- inputs: ['supported', 'typography'],
2530
- standalone: false
2531
- }]
2532
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2533
- let MdsProgress = class MdsProgress {
2534
- z;
2535
- el;
2536
- constructor(c, r, z) {
2537
- this.z = z;
2538
- c.detach();
2539
- this.el = r.nativeElement;
2540
- }
2541
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsProgress, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2542
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsProgress, selector: "mds-progress", inputs: { direction: "direction", progress: "progress", size: "size", steps: "steps", typography: "typography", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2543
- };
2544
- MdsProgress = __decorate([
2545
- ProxyCmp({
2546
- inputs: ['direction', 'progress', 'size', 'steps', 'typography', 'variant']
2547
- })
2548
- ], MdsProgress);
2549
- export { MdsProgress };
2550
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsProgress, decorators: [{
2551
- type: Component,
2552
- args: [{
2553
- selector: 'mds-progress',
2554
- changeDetection: ChangeDetectionStrategy.OnPush,
2555
- template: '<ng-content></ng-content>',
2556
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2557
- inputs: ['direction', 'progress', 'size', 'steps', 'typography', 'variant'],
2558
- standalone: false
2559
- }]
2560
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2561
- let MdsPushNotification = class MdsPushNotification {
2562
- z;
2563
- el;
2564
- mdsPushNotificationChange = new EventEmitter();
2565
- mdsPushNotificationShow = new EventEmitter();
2566
- mdsPushNotificationHide = new EventEmitter();
2567
- constructor(c, r, z) {
2568
- this.z = z;
2569
- c.detach();
2570
- this.el = r.nativeElement;
2571
- }
2572
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPushNotification, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2573
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPushNotification, selector: "mds-push-notification", inputs: { behavior: "behavior", visible: "visible" }, outputs: { mdsPushNotificationChange: "mdsPushNotificationChange", mdsPushNotificationShow: "mdsPushNotificationShow", mdsPushNotificationHide: "mdsPushNotificationHide" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2574
- };
2575
- MdsPushNotification = __decorate([
2576
- ProxyCmp({
2577
- inputs: ['behavior', 'visible'],
2578
- methods: ['show', 'hide', 'removeNotification']
2579
- })
2580
- ], MdsPushNotification);
2581
- export { MdsPushNotification };
2582
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPushNotification, decorators: [{
2583
- type: Component,
2584
- args: [{
2585
- selector: 'mds-push-notification',
2586
- changeDetection: ChangeDetectionStrategy.OnPush,
2587
- template: '<ng-content></ng-content>',
2588
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2589
- inputs: ['behavior', 'visible'],
2590
- outputs: ['mdsPushNotificationChange', 'mdsPushNotificationShow', 'mdsPushNotificationHide'],
2591
- standalone: false
2592
- }]
2593
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsPushNotificationChange: [{
2594
- type: Output
2595
- }], mdsPushNotificationShow: [{
2596
- type: Output
2597
- }], mdsPushNotificationHide: [{
2598
- type: Output
2599
- }] } });
2600
- let MdsPushNotificationItem = class MdsPushNotificationItem {
2601
- z;
2602
- el;
2603
- mdsPushNotificationItemClose = new EventEmitter();
2604
- constructor(c, r, z) {
2605
- this.z = z;
2606
- c.detach();
2607
- this.el = r.nativeElement;
2608
- }
2609
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPushNotificationItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2610
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsPushNotificationItem, selector: "mds-push-notification-item", inputs: { dateFormat: "dateFormat", datetime: "datetime", deletable: "deletable", icon: "icon", initials: "initials", message: "message", preview: "preview", src: "src", subject: "subject", tone: "tone", variant: "variant" }, outputs: { mdsPushNotificationItemClose: "mdsPushNotificationItemClose" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2611
- };
2612
- MdsPushNotificationItem = __decorate([
2613
- ProxyCmp({
2614
- inputs: ['dateFormat', 'datetime', 'deletable', 'icon', 'initials', 'message', 'preview', 'src', 'subject', 'tone', 'variant'],
2615
- methods: ['updateLang']
2616
- })
2617
- ], MdsPushNotificationItem);
2618
- export { MdsPushNotificationItem };
2619
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsPushNotificationItem, decorators: [{
2620
- type: Component,
2621
- args: [{
2622
- selector: 'mds-push-notification-item',
2623
- changeDetection: ChangeDetectionStrategy.OnPush,
2624
- template: '<ng-content></ng-content>',
2625
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2626
- inputs: ['dateFormat', 'datetime', 'deletable', 'icon', 'initials', 'message', 'preview', 'src', 'subject', 'tone', 'variant'],
2627
- outputs: ['mdsPushNotificationItemClose'],
2628
- standalone: false
2629
- }]
2630
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsPushNotificationItemClose: [{
2631
- type: Output
2632
- }] } });
2633
- let MdsQuote = class MdsQuote {
2634
- z;
2635
- el;
2636
- constructor(c, r, z) {
2637
- this.z = z;
2638
- c.detach();
2639
- this.el = r.nativeElement;
2640
- }
2641
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsQuote, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2642
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsQuote, selector: "mds-quote", inputs: { tag: "tag", typography: "typography" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2643
- };
2644
- MdsQuote = __decorate([
2645
- ProxyCmp({
2646
- inputs: ['tag', 'typography']
2647
- })
2648
- ], MdsQuote);
2649
- export { MdsQuote };
2650
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsQuote, decorators: [{
2651
- type: Component,
2652
- args: [{
2653
- selector: 'mds-quote',
2654
- changeDetection: ChangeDetectionStrategy.OnPush,
2655
- template: '<ng-content></ng-content>',
2656
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2657
- inputs: ['tag', 'typography'],
2658
- standalone: false
2659
- }]
2660
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2661
- let MdsRadialMenu = class MdsRadialMenu {
2662
- z;
2663
- el;
2664
- constructor(c, r, z) {
2665
- this.z = z;
2666
- c.detach();
2667
- this.el = r.nativeElement;
2668
- }
2669
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsRadialMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2670
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsRadialMenu, selector: "mds-radial-menu", inputs: { angleEnd: "angleEnd", angleStart: "angleStart", backdrop: "backdrop", direction: "direction", disc: "disc", icon: "icon", interaction: "interaction", opened: "opened", radius: "radius", size: "size", tone: "tone", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2671
- };
2672
- MdsRadialMenu = __decorate([
2673
- ProxyCmp({
2674
- inputs: ['angleEnd', 'angleStart', 'backdrop', 'direction', 'disc', 'icon', 'interaction', 'opened', 'radius', 'size', 'tone', 'variant']
2675
- })
2676
- ], MdsRadialMenu);
2677
- export { MdsRadialMenu };
2678
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsRadialMenu, decorators: [{
2679
- type: Component,
2680
- args: [{
2681
- selector: 'mds-radial-menu',
2682
- changeDetection: ChangeDetectionStrategy.OnPush,
2683
- template: '<ng-content></ng-content>',
2684
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2685
- inputs: ['angleEnd', 'angleStart', 'backdrop', 'direction', 'disc', 'icon', 'interaction', 'opened', 'radius', 'size', 'tone', 'variant'],
2686
- standalone: false
2687
- }]
2688
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2689
- let MdsRadialMenuItem = class MdsRadialMenuItem {
2690
- z;
2691
- el;
2692
- constructor(c, r, z) {
2693
- this.z = z;
2694
- c.detach();
2695
- this.el = r.nativeElement;
2696
- }
2697
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsRadialMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2698
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsRadialMenuItem, selector: "mds-radial-menu-item", inputs: { icon: "icon", size: "size", tone: "tone", tooltip: "tooltip", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2699
- };
2700
- MdsRadialMenuItem = __decorate([
2701
- ProxyCmp({
2702
- inputs: ['icon', 'size', 'tone', 'tooltip', 'variant']
2703
- })
2704
- ], MdsRadialMenuItem);
2705
- export { MdsRadialMenuItem };
2706
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsRadialMenuItem, decorators: [{
2707
- type: Component,
2708
- args: [{
2709
- selector: 'mds-radial-menu-item',
2710
- changeDetection: ChangeDetectionStrategy.OnPush,
2711
- template: '<ng-content></ng-content>',
2712
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2713
- inputs: ['icon', 'size', 'tone', 'tooltip', 'variant'],
2714
- standalone: false
2715
- }]
2716
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2717
- let MdsRadialProgress = class MdsRadialProgress {
2718
- z;
2719
- el;
2720
- constructor(c, r, z) {
2721
- this.z = z;
2722
- c.detach();
2723
- this.el = r.nativeElement;
2724
- }
2725
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsRadialProgress, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2726
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsRadialProgress, selector: "mds-radial-progress", inputs: { icon: "icon", progress: "progress", typography: "typography", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2727
- };
2728
- MdsRadialProgress = __decorate([
2729
- ProxyCmp({
2730
- inputs: ['icon', 'progress', 'typography', 'variant']
2731
- })
2732
- ], MdsRadialProgress);
2733
- export { MdsRadialProgress };
2734
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsRadialProgress, decorators: [{
2735
- type: Component,
2736
- args: [{
2737
- selector: 'mds-radial-progress',
2738
- changeDetection: ChangeDetectionStrategy.OnPush,
2739
- template: '<ng-content></ng-content>',
2740
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2741
- inputs: ['icon', 'progress', 'typography', 'variant'],
2742
- standalone: false
2743
- }]
2744
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2745
- let MdsSeparator = class MdsSeparator {
2746
- z;
2747
- el;
2748
- constructor(c, r, z) {
2749
- this.z = z;
2750
- c.detach();
2751
- this.el = r.nativeElement;
2752
- }
2753
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsSeparator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2754
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsSeparator, selector: "mds-separator", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2755
- };
2756
- MdsSeparator = __decorate([
2757
- ProxyCmp({})
2758
- ], MdsSeparator);
2759
- export { MdsSeparator };
2760
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsSeparator, decorators: [{
2761
- type: Component,
2762
- args: [{
2763
- selector: 'mds-separator',
2764
- changeDetection: ChangeDetectionStrategy.OnPush,
2765
- template: '<ng-content></ng-content>',
2766
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2767
- inputs: [],
2768
- standalone: false
2769
- }]
2770
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2771
- let MdsSpinner = class MdsSpinner {
2772
- z;
2773
- el;
2774
- constructor(c, r, z) {
2775
- this.z = z;
2776
- c.detach();
2777
- this.el = r.nativeElement;
2778
- }
2779
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2780
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsSpinner, selector: "mds-spinner", inputs: { running: "running" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2781
- };
2782
- MdsSpinner = __decorate([
2783
- ProxyCmp({
2784
- inputs: ['running']
2785
- })
2786
- ], MdsSpinner);
2787
- export { MdsSpinner };
2788
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsSpinner, decorators: [{
2789
- type: Component,
2790
- args: [{
2791
- selector: 'mds-spinner',
2792
- changeDetection: ChangeDetectionStrategy.OnPush,
2793
- template: '<ng-content></ng-content>',
2794
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2795
- inputs: ['running'],
2796
- standalone: false
2797
- }]
2798
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2799
- let MdsStatusBar = class MdsStatusBar {
2800
- z;
2801
- el;
2802
- constructor(c, r, z) {
2803
- this.z = z;
2804
- c.detach();
2805
- this.el = r.nativeElement;
2806
- }
2807
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsStatusBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2808
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsStatusBar, selector: "mds-status-bar", inputs: { description: "description", overflow: "overflow", position: "position", visible: "visible" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2809
- };
2810
- MdsStatusBar = __decorate([
2811
- ProxyCmp({
2812
- inputs: ['description', 'overflow', 'position', 'visible'],
2813
- methods: ['hide']
2814
- })
2815
- ], MdsStatusBar);
2816
- export { MdsStatusBar };
2817
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsStatusBar, decorators: [{
2818
- type: Component,
2819
- args: [{
2820
- selector: 'mds-status-bar',
2821
- changeDetection: ChangeDetectionStrategy.OnPush,
2822
- template: '<ng-content></ng-content>',
2823
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2824
- inputs: ['description', 'overflow', 'position', 'visible'],
2825
- standalone: false
2826
- }]
2827
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2828
- let MdsStepperBar = class MdsStepperBar {
2829
- z;
2830
- el;
2831
- mdsStepperBarChange = new EventEmitter();
2832
- constructor(c, r, z) {
2833
- this.z = z;
2834
- c.detach();
2835
- this.el = r.nativeElement;
2836
- }
2837
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsStepperBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2838
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsStepperBar, selector: "mds-stepper-bar", inputs: { itemsDone: "itemsDone", navigation: "navigation" }, outputs: { mdsStepperBarChange: "mdsStepperBarChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2839
- };
2840
- MdsStepperBar = __decorate([
2841
- ProxyCmp({
2842
- inputs: ['itemsDone', 'navigation']
2843
- })
2844
- ], MdsStepperBar);
2845
- export { MdsStepperBar };
2846
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsStepperBar, decorators: [{
2847
- type: Component,
2848
- args: [{
2849
- selector: 'mds-stepper-bar',
2850
- changeDetection: ChangeDetectionStrategy.OnPush,
2851
- template: '<ng-content></ng-content>',
2852
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2853
- inputs: ['itemsDone', 'navigation'],
2854
- outputs: ['mdsStepperBarChange'],
2855
- standalone: false
2856
- }]
2857
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsStepperBarChange: [{
2858
- type: Output
2859
- }] } });
2860
- let MdsStepperBarItem = class MdsStepperBarItem {
2861
- z;
2862
- el;
2863
- mdsStepperBarItemDone = new EventEmitter();
2864
- constructor(c, r, z) {
2865
- this.z = z;
2866
- c.detach();
2867
- this.el = r.nativeElement;
2868
- }
2869
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsStepperBarItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2870
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsStepperBarItem, selector: "mds-stepper-bar-item", inputs: { badge: "badge", current: "current", done: "done", icon: "icon", iconChecked: "iconChecked", label: "label", step: "step", typography: "typography", value: "value" }, outputs: { mdsStepperBarItemDone: "mdsStepperBarItemDone" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2871
- };
2872
- MdsStepperBarItem = __decorate([
2873
- ProxyCmp({
2874
- inputs: ['badge', 'current', 'done', 'icon', 'iconChecked', 'label', 'step', 'typography', 'value'],
2875
- methods: ['updateLang']
2876
- })
2877
- ], MdsStepperBarItem);
2878
- export { MdsStepperBarItem };
2879
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsStepperBarItem, decorators: [{
2880
- type: Component,
2881
- args: [{
2882
- selector: 'mds-stepper-bar-item',
2883
- changeDetection: ChangeDetectionStrategy.OnPush,
2884
- template: '<ng-content></ng-content>',
2885
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2886
- inputs: ['badge', 'current', 'done', { name: 'icon', required: true }, 'iconChecked', { name: 'label', required: true }, 'step', 'typography', 'value'],
2887
- outputs: ['mdsStepperBarItemDone'],
2888
- standalone: false
2889
- }]
2890
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsStepperBarItemDone: [{
2891
- type: Output
2892
- }] } });
2893
- let MdsTab = class MdsTab {
2894
- z;
2895
- el;
2896
- mdsTabChange = new EventEmitter();
2897
- constructor(c, r, z) {
2898
- this.z = z;
2899
- c.detach();
2900
- this.el = r.nativeElement;
2901
- }
2902
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2903
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTab, selector: "mds-tab", inputs: { animation: "animation", direction: "direction", fill: "fill", overflow: "overflow", scrollbar: "scrollbar", size: "size" }, outputs: { mdsTabChange: "mdsTabChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2904
- };
2905
- MdsTab = __decorate([
2906
- ProxyCmp({
2907
- inputs: ['animation', 'direction', 'fill', 'overflow', 'scrollbar', 'size']
2908
- })
2909
- ], MdsTab);
2910
- export { MdsTab };
2911
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTab, decorators: [{
2912
- type: Component,
2913
- args: [{
2914
- selector: 'mds-tab',
2915
- changeDetection: ChangeDetectionStrategy.OnPush,
2916
- template: '<ng-content></ng-content>',
2917
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2918
- inputs: ['animation', 'direction', 'fill', 'overflow', 'scrollbar', 'size'],
2919
- outputs: ['mdsTabChange'],
2920
- standalone: false
2921
- }]
2922
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsTabChange: [{
2923
- type: Output
2924
- }] } });
2925
- let MdsTabBar = class MdsTabBar {
2926
- z;
2927
- el;
2928
- mdsTabBarChange = new EventEmitter();
2929
- constructor(c, r, z) {
2930
- this.z = z;
2931
- c.detach();
2932
- this.el = r.nativeElement;
2933
- }
2934
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTabBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2935
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTabBar, selector: "mds-tab-bar", outputs: { mdsTabBarChange: "mdsTabBarChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2936
- };
2937
- MdsTabBar = __decorate([
2938
- ProxyCmp({})
2939
- ], MdsTabBar);
2940
- export { MdsTabBar };
2941
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTabBar, decorators: [{
2942
- type: Component,
2943
- args: [{
2944
- selector: 'mds-tab-bar',
2945
- changeDetection: ChangeDetectionStrategy.OnPush,
2946
- template: '<ng-content></ng-content>',
2947
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2948
- inputs: [],
2949
- outputs: ['mdsTabBarChange'],
2950
- standalone: false
2951
- }]
2952
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsTabBarChange: [{
2953
- type: Output
2954
- }] } });
2955
- let MdsTabBarItem = class MdsTabBarItem {
2956
- z;
2957
- el;
2958
- mdsTabBarItemSelect = new EventEmitter();
2959
- constructor(c, r, z) {
2960
- this.z = z;
2961
- c.detach();
2962
- this.el = r.nativeElement;
2963
- }
2964
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTabBarItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2965
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTabBarItem, selector: "mds-tab-bar-item", inputs: { icon: "icon", label: "label", selected: "selected", typography: "typography" }, outputs: { mdsTabBarItemSelect: "mdsTabBarItemSelect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2966
- };
2967
- MdsTabBarItem = __decorate([
2968
- ProxyCmp({
2969
- inputs: ['icon', 'label', 'selected', 'typography']
2970
- })
2971
- ], MdsTabBarItem);
2972
- export { MdsTabBarItem };
2973
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTabBarItem, decorators: [{
2974
- type: Component,
2975
- args: [{
2976
- selector: 'mds-tab-bar-item',
2977
- changeDetection: ChangeDetectionStrategy.OnPush,
2978
- template: '<ng-content></ng-content>',
2979
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2980
- inputs: ['icon', 'label', 'selected', 'typography'],
2981
- outputs: ['mdsTabBarItemSelect'],
2982
- standalone: false
2983
- }]
2984
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsTabBarItemSelect: [{
2985
- type: Output
2986
- }] } });
2987
- let MdsTabItem = class MdsTabItem {
2988
- z;
2989
- el;
2990
- mdsTabItemSelect = new EventEmitter();
2991
- mdsTabItemFocus = new EventEmitter();
2992
- constructor(c, r, z) {
2993
- this.z = z;
2994
- c.detach();
2995
- this.el = r.nativeElement;
2996
- }
2997
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTabItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2998
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTabItem, selector: "mds-tab-item", inputs: { await: "await", disabled: "disabled", href: "href", icon: "icon", iconPosition: "iconPosition", label: "label", selected: "selected", size: "size", type: "type", value: "value" }, outputs: { mdsTabItemSelect: "mdsTabItemSelect", mdsTabItemFocus: "mdsTabItemFocus" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2999
- };
3000
- MdsTabItem = __decorate([
3001
- ProxyCmp({
3002
- inputs: ['await', 'disabled', 'href', 'icon', 'iconPosition', 'label', 'selected', 'size', 'type', 'value']
3003
- })
3004
- ], MdsTabItem);
3005
- export { MdsTabItem };
3006
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTabItem, decorators: [{
3007
- type: Component,
3008
- args: [{
3009
- selector: 'mds-tab-item',
3010
- changeDetection: ChangeDetectionStrategy.OnPush,
3011
- template: '<ng-content></ng-content>',
3012
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3013
- inputs: ['await', 'disabled', 'href', 'icon', 'iconPosition', 'label', 'selected', 'size', 'type', 'value'],
3014
- outputs: ['mdsTabItemSelect', 'mdsTabItemFocus'],
3015
- standalone: false
3016
- }]
3017
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsTabItemSelect: [{
3018
- type: Output
3019
- }], mdsTabItemFocus: [{
3020
- type: Output
3021
- }] } });
3022
- let MdsTable = class MdsTable {
3023
- z;
3024
- el;
3025
- mdsTableSelectionChange = new EventEmitter();
3026
- constructor(c, r, z) {
3027
- this.z = z;
3028
- c.detach();
3029
- this.el = r.nativeElement;
3030
- }
3031
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3032
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTable, selector: "mds-table", inputs: { interactive: "interactive", selectable: "selectable", selection: "selection" }, outputs: { mdsTableSelectionChange: "mdsTableSelectionChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3033
- };
3034
- MdsTable = __decorate([
3035
- ProxyCmp({
3036
- inputs: ['interactive', 'selectable', 'selection'],
3037
- methods: ['updateSelection', 'selectAll']
3038
- })
3039
- ], MdsTable);
3040
- export { MdsTable };
3041
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTable, decorators: [{
3042
- type: Component,
3043
- args: [{
3044
- selector: 'mds-table',
3045
- changeDetection: ChangeDetectionStrategy.OnPush,
3046
- template: '<ng-content></ng-content>',
3047
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3048
- inputs: ['interactive', 'selectable', 'selection'],
3049
- outputs: ['mdsTableSelectionChange'],
3050
- standalone: false
3051
- }]
3052
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsTableSelectionChange: [{
3053
- type: Output
3054
- }] } });
3055
- let MdsTableBody = class MdsTableBody {
3056
- z;
3057
- el;
3058
- constructor(c, r, z) {
3059
- this.z = z;
3060
- c.detach();
3061
- this.el = r.nativeElement;
3062
- }
3063
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTableBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3064
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTableBody, selector: "mds-table-body", inputs: { interactive: "interactive", selection: "selection" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3065
- };
3066
- MdsTableBody = __decorate([
3067
- ProxyCmp({
3068
- inputs: ['interactive', 'selection']
3069
- })
3070
- ], MdsTableBody);
3071
- export { MdsTableBody };
3072
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTableBody, decorators: [{
3073
- type: Component,
3074
- args: [{
3075
- selector: 'mds-table-body',
3076
- changeDetection: ChangeDetectionStrategy.OnPush,
3077
- template: '<ng-content></ng-content>',
3078
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3079
- inputs: ['interactive', 'selection'],
3080
- standalone: false
3081
- }]
3082
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3083
- let MdsTableCell = class MdsTableCell {
3084
- z;
3085
- el;
3086
- constructor(c, r, z) {
3087
- this.z = z;
3088
- c.detach();
3089
- this.el = r.nativeElement;
3090
- }
3091
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTableCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3092
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTableCell, selector: "mds-table-cell", inputs: { value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3093
- };
3094
- MdsTableCell = __decorate([
3095
- ProxyCmp({
3096
- inputs: ['value']
3097
- })
3098
- ], MdsTableCell);
3099
- export { MdsTableCell };
3100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTableCell, decorators: [{
3101
- type: Component,
3102
- args: [{
3103
- selector: 'mds-table-cell',
3104
- changeDetection: ChangeDetectionStrategy.OnPush,
3105
- template: '<ng-content></ng-content>',
3106
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3107
- inputs: ['value'],
3108
- standalone: false
3109
- }]
3110
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3111
- let MdsTableFooter = class MdsTableFooter {
3112
- z;
3113
- el;
3114
- constructor(c, r, z) {
3115
- this.z = z;
3116
- c.detach();
3117
- this.el = r.nativeElement;
3118
- }
3119
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTableFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3120
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTableFooter, selector: "mds-table-footer", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3121
- };
3122
- MdsTableFooter = __decorate([
3123
- ProxyCmp({})
3124
- ], MdsTableFooter);
3125
- export { MdsTableFooter };
3126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTableFooter, decorators: [{
3127
- type: Component,
3128
- args: [{
3129
- selector: 'mds-table-footer',
3130
- changeDetection: ChangeDetectionStrategy.OnPush,
3131
- template: '<ng-content></ng-content>',
3132
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3133
- inputs: [],
3134
- standalone: false
3135
- }]
3136
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3137
- let MdsTableHeader = class MdsTableHeader {
3138
- z;
3139
- el;
3140
- constructor(c, r, z) {
3141
- this.z = z;
3142
- c.detach();
3143
- this.el = r.nativeElement;
3144
- }
3145
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTableHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3146
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTableHeader, selector: "mds-table-header", inputs: { selectable: "selectable" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3147
- };
3148
- MdsTableHeader = __decorate([
3149
- ProxyCmp({
3150
- inputs: ['selectable'],
3151
- methods: ['updateLang', 'setSelection']
3152
- })
3153
- ], MdsTableHeader);
3154
- export { MdsTableHeader };
3155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTableHeader, decorators: [{
3156
- type: Component,
3157
- args: [{
3158
- selector: 'mds-table-header',
3159
- changeDetection: ChangeDetectionStrategy.OnPush,
3160
- template: '<ng-content></ng-content>',
3161
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3162
- inputs: ['selectable'],
3163
- standalone: false
3164
- }]
3165
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3166
- let MdsTableHeaderCell = class MdsTableHeaderCell {
3167
- z;
3168
- el;
3169
- constructor(c, r, z) {
3170
- this.z = z;
3171
- c.detach();
3172
- this.el = r.nativeElement;
3173
- }
3174
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTableHeaderCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3175
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTableHeaderCell, selector: "mds-table-header-cell", inputs: { direction: "direction", label: "label", sortable: "sortable" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3176
- };
3177
- MdsTableHeaderCell = __decorate([
3178
- ProxyCmp({
3179
- inputs: ['direction', 'label', 'sortable']
3180
- })
3181
- ], MdsTableHeaderCell);
3182
- export { MdsTableHeaderCell };
3183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTableHeaderCell, decorators: [{
3184
- type: Component,
3185
- args: [{
3186
- selector: 'mds-table-header-cell',
3187
- changeDetection: ChangeDetectionStrategy.OnPush,
3188
- template: '<ng-content></ng-content>',
3189
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3190
- inputs: ['direction', 'label', 'sortable'],
3191
- standalone: false
3192
- }]
3193
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3194
- let MdsTableRow = class MdsTableRow {
3195
- z;
3196
- el;
3197
- constructor(c, r, z) {
3198
- this.z = z;
3199
- c.detach();
3200
- this.el = r.nativeElement;
3201
- }
3202
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTableRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3203
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTableRow, selector: "mds-table-row", inputs: { interactive: "interactive", overlayActions: "overlayActions", selectable: "selectable", selected: "selected", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3204
- };
3205
- MdsTableRow = __decorate([
3206
- ProxyCmp({
3207
- inputs: ['interactive', 'overlayActions', 'selectable', 'selected', 'value'],
3208
- methods: ['updateLang']
3209
- })
3210
- ], MdsTableRow);
3211
- export { MdsTableRow };
3212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTableRow, decorators: [{
3213
- type: Component,
3214
- args: [{
3215
- selector: 'mds-table-row',
3216
- changeDetection: ChangeDetectionStrategy.OnPush,
3217
- template: '<ng-content></ng-content>',
3218
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3219
- inputs: ['interactive', 'overlayActions', 'selectable', 'selected', 'value'],
3220
- standalone: false
3221
- }]
3222
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3223
- let MdsText = class MdsText {
3224
- z;
3225
- el;
3226
- constructor(c, r, z) {
3227
- this.z = z;
3228
- c.detach();
3229
- this.el = r.nativeElement;
3230
- }
3231
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsText, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3232
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsText, selector: "mds-text", inputs: { animation: "animation", tag: "tag", text: "text", truncate: "truncate", typography: "typography", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3233
- };
3234
- MdsText = __decorate([
3235
- ProxyCmp({
3236
- inputs: ['animation', 'tag', 'text', 'truncate', 'typography', 'variant']
3237
- })
3238
- ], MdsText);
3239
- export { MdsText };
3240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsText, decorators: [{
3241
- type: Component,
3242
- args: [{
3243
- selector: 'mds-text',
3244
- changeDetection: ChangeDetectionStrategy.OnPush,
3245
- template: '<ng-content></ng-content>',
3246
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3247
- inputs: ['animation', 'tag', 'text', 'truncate', 'typography', 'variant'],
3248
- standalone: false
3249
- }]
3250
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3251
- let MdsToast = class MdsToast {
3252
- z;
3253
- el;
3254
- mdsToastClose = new EventEmitter();
3255
- constructor(c, r, z) {
3256
- this.z = z;
3257
- c.detach();
3258
- this.el = r.nativeElement;
3259
- }
3260
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsToast, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3261
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsToast, selector: "mds-toast", inputs: { duration: "duration", position: "position", tone: "tone", variant: "variant", visible: "visible" }, outputs: { mdsToastClose: "mdsToastClose" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3262
- };
3263
- MdsToast = __decorate([
3264
- ProxyCmp({
3265
- inputs: ['duration', 'position', 'tone', 'variant', 'visible']
3266
- })
3267
- ], MdsToast);
3268
- export { MdsToast };
3269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsToast, decorators: [{
3270
- type: Component,
3271
- args: [{
3272
- selector: 'mds-toast',
3273
- changeDetection: ChangeDetectionStrategy.OnPush,
3274
- template: '<ng-content></ng-content>',
3275
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3276
- inputs: ['duration', 'position', 'tone', 'variant', 'visible'],
3277
- outputs: ['mdsToastClose'],
3278
- standalone: false
3279
- }]
3280
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsToastClose: [{
3281
- type: Output
3282
- }] } });
3283
- let MdsTooltip = class MdsTooltip {
3284
- z;
3285
- el;
3286
- constructor(c, r, z) {
3287
- this.z = z;
3288
- c.detach();
3289
- this.el = r.nativeElement;
3290
- }
3291
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3292
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTooltip, selector: "mds-tooltip", inputs: { autoPlacement: "autoPlacement", flip: "flip", offset: "offset", placement: "placement", shift: "shift", shiftPadding: "shiftPadding", strategy: "strategy", target: "target", typography: "typography", visible: "visible" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3293
- };
3294
- MdsTooltip = __decorate([
3295
- ProxyCmp({
3296
- inputs: ['autoPlacement', 'flip', 'offset', 'placement', 'shift', 'shiftPadding', 'strategy', 'target', 'typography', 'visible']
3297
- })
3298
- ], MdsTooltip);
3299
- export { MdsTooltip };
3300
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTooltip, decorators: [{
3301
- type: Component,
3302
- args: [{
3303
- selector: 'mds-tooltip',
3304
- changeDetection: ChangeDetectionStrategy.OnPush,
3305
- template: '<ng-content></ng-content>',
3306
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3307
- inputs: ['autoPlacement', 'flip', 'offset', 'placement', 'shift', 'shiftPadding', 'strategy', { name: 'target', required: true }, 'typography', 'visible'],
3308
- standalone: false
3309
- }]
3310
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3311
- let MdsTree = class MdsTree {
3312
- z;
3313
- el;
3314
- constructor(c, r, z) {
3315
- this.z = z;
3316
- c.detach();
3317
- this.el = r.nativeElement;
3318
- }
3319
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTree, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3320
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTree, selector: "mds-tree", inputs: { actions: "actions", appearance: "appearance", async: "async", expanded: "expanded", label: "label", toggle: "toggle", togglePosition: "togglePosition", truncate: "truncate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3321
- };
3322
- MdsTree = __decorate([
3323
- ProxyCmp({
3324
- inputs: ['actions', 'appearance', 'async', 'expanded', 'label', 'toggle', 'togglePosition', 'truncate']
3325
- })
3326
- ], MdsTree);
3327
- export { MdsTree };
3328
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTree, decorators: [{
3329
- type: Component,
3330
- args: [{
3331
- selector: 'mds-tree',
3332
- changeDetection: ChangeDetectionStrategy.OnPush,
3333
- template: '<ng-content></ng-content>',
3334
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3335
- inputs: ['actions', 'appearance', 'async', 'expanded', 'label', 'toggle', 'togglePosition', 'truncate'],
3336
- standalone: false
3337
- }]
3338
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3339
- let MdsTreeItem = class MdsTreeItem {
3340
- z;
3341
- el;
3342
- mdsTreeItemExpand = new EventEmitter();
3343
- mdsTreeItemCollapse = new EventEmitter();
3344
- constructor(c, r, z) {
3345
- this.z = z;
3346
- c.detach();
3347
- this.el = r.nativeElement;
3348
- }
3349
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTreeItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3350
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsTreeItem, selector: "mds-tree-item", inputs: { actions: "actions", async: "async", depth: "depth", expanded: "expanded", icon: "icon", label: "label", toggle: "toggle", truncate: "truncate" }, outputs: { mdsTreeItemExpand: "mdsTreeItemExpand", mdsTreeItemCollapse: "mdsTreeItemCollapse" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3351
- };
3352
- MdsTreeItem = __decorate([
3353
- ProxyCmp({
3354
- inputs: ['actions', 'async', 'depth', 'expanded', 'icon', 'label', 'toggle', 'truncate'],
3355
- methods: ['updateLang', 'expand']
3356
- })
3357
- ], MdsTreeItem);
3358
- export { MdsTreeItem };
3359
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsTreeItem, decorators: [{
3360
- type: Component,
3361
- args: [{
3362
- selector: 'mds-tree-item',
3363
- changeDetection: ChangeDetectionStrategy.OnPush,
3364
- template: '<ng-content></ng-content>',
3365
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3366
- inputs: ['actions', 'async', 'depth', 'expanded', 'icon', 'label', 'toggle', 'truncate'],
3367
- outputs: ['mdsTreeItemExpand', 'mdsTreeItemCollapse'],
3368
- standalone: false
3369
- }]
3370
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsTreeItemExpand: [{
3371
- type: Output
3372
- }], mdsTreeItemCollapse: [{
3373
- type: Output
3374
- }] } });
3375
- let MdsUrlView = class MdsUrlView {
3376
- z;
3377
- el;
3378
- mdsUrlViewClose = new EventEmitter();
3379
- constructor(c, r, z) {
3380
- this.z = z;
3381
- c.detach();
3382
- this.el = r.nativeElement;
3383
- }
3384
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsUrlView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3385
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsUrlView, selector: "mds-url-view", inputs: { icon: "icon", label: "label", loading: "loading", src: "src" }, outputs: { mdsUrlViewClose: "mdsUrlViewClose" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3386
- };
3387
- MdsUrlView = __decorate([
3388
- ProxyCmp({
3389
- inputs: ['icon', 'label', 'loading', 'src'],
3390
- methods: ['updateLang']
3391
- })
3392
- ], MdsUrlView);
3393
- export { MdsUrlView };
3394
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsUrlView, decorators: [{
3395
- type: Component,
3396
- args: [{
3397
- selector: 'mds-url-view',
3398
- changeDetection: ChangeDetectionStrategy.OnPush,
3399
- template: '<ng-content></ng-content>',
3400
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3401
- inputs: ['icon', 'label', 'loading', { name: 'src', required: true }],
3402
- outputs: ['mdsUrlViewClose'],
3403
- standalone: false
3404
- }]
3405
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { mdsUrlViewClose: [{
3406
- type: Output
3407
- }] } });
3408
- let MdsUsage = class MdsUsage {
3409
- z;
3410
- el;
3411
- constructor(c, r, z) {
3412
- this.z = z;
3413
- c.detach();
3414
- this.el = r.nativeElement;
3415
- }
3416
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsUsage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3417
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsUsage, selector: "mds-usage", inputs: { alias: "alias", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3418
- };
3419
- MdsUsage = __decorate([
3420
- ProxyCmp({
3421
- inputs: ['alias', 'variant'],
3422
- methods: ['updateLang']
3423
- })
3424
- ], MdsUsage);
3425
- export { MdsUsage };
3426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsUsage, decorators: [{
3427
- type: Component,
3428
- args: [{
3429
- selector: 'mds-usage',
3430
- changeDetection: ChangeDetectionStrategy.OnPush,
3431
- template: '<ng-content></ng-content>',
3432
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3433
- inputs: ['alias', 'variant'],
3434
- standalone: false
3435
- }]
3436
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3437
- let MdsVideoWall = class MdsVideoWall {
3438
- z;
3439
- el;
3440
- constructor(c, r, z) {
3441
- this.z = z;
3442
- c.detach();
3443
- this.el = r.nativeElement;
3444
- }
3445
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsVideoWall, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3446
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsVideoWall, selector: "mds-video-wall", inputs: { autoplay: "autoplay", loop: "loop", muted: "muted", noise: "noise", poster: "poster", preload: "preload", src: "src" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3447
- };
3448
- MdsVideoWall = __decorate([
3449
- ProxyCmp({
3450
- inputs: ['autoplay', 'loop', 'muted', 'noise', 'poster', 'preload', 'src']
3451
- })
3452
- ], MdsVideoWall);
3453
- export { MdsVideoWall };
3454
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsVideoWall, decorators: [{
3455
- type: Component,
3456
- args: [{
3457
- selector: 'mds-video-wall',
3458
- changeDetection: ChangeDetectionStrategy.OnPush,
3459
- template: '<ng-content></ng-content>',
3460
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3461
- inputs: ['autoplay', 'loop', 'muted', 'noise', 'poster', 'preload', 'src'],
3462
- standalone: false
3463
- }]
3464
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3465
- let MdsZero = class MdsZero {
3466
- z;
3467
- el;
3468
- constructor(c, r, z) {
3469
- this.z = z;
3470
- c.detach();
3471
- this.el = r.nativeElement;
3472
- }
3473
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsZero, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3474
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MdsZero, selector: "mds-zero", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3475
- };
3476
- MdsZero = __decorate([
3477
- ProxyCmp({})
3478
- ], MdsZero);
3479
- export { MdsZero };
3480
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MdsZero, decorators: [{
3481
- type: Component,
3482
- args: [{
3483
- selector: 'mds-zero',
3484
- changeDetection: ChangeDetectionStrategy.OnPush,
3485
- template: '<ng-content></ng-content>',
3486
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3487
- inputs: [],
3488
- standalone: false
3489
- }]
3490
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3491
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21hZ21hLWFuZ3VsYXIvc3JjL3N0ZW5jaWwtZ2VuZXJhdGVkL2NvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9CQUFvQjtBQUNwQiw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVoSSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBaUJsRCxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBR29DO0lBRmpELEVBQUUsQ0FBMEI7SUFDNUIsa0JBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQXFELENBQUM7SUFDckcsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzt3R0FOVSxZQUFZOzRGQUFaLFlBQVksb0tBTmIsMkJBQTJCOztBQU0xQixZQUFZO0lBWnhCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7S0FDakMsQ0FBQztHQVVXLFlBQVksQ0FPeEI7OzRGQVBZLFlBQVk7a0JBVHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7b0JBQ2hDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUMvQixVQUFVLEVBQUUsS0FBSztpQkFDbEI7b0lB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Q0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxFQUFFO29CQUNWLFVBQVUsRUFBRSxLQUFLO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2FibGUnLCAnbXVsdGlwbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NhYmxlJywgJ211bHRpcGxlJ10sXG4gIG91dHB1dHM6IFsnbWRzQWNjb3JkaW9uQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0FjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0FjY29yZGlvbkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNBY2NvcmRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNBY2NvcmRpb25NZHNBY2NvcmRpb25FdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNBY2NvcmRpb25FdmVudERldGFpbCBhcyBJTWRzQWNjb3JkaW9uTWRzQWNjb3JkaW9uRXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLk1kc0FjY29yZGlvbiB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjb21wb25lbnQgYXR0cmlidXRlIHNlbGVjdGVkIGlzIGNoYW5nZWRcbiAgICovXG4gIG1kc0FjY29yZGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNBY2NvcmRpb25NZHNBY2NvcmRpb25FdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICdzZWxlY3RlZCcsICd0eXBvZ3JhcGh5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtYWNjb3JkaW9uLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbeyBuYW1lOiAnbGFiZWwnLCByZXF1aXJlZDogdHJ1ZSB9LCAnc2VsZWN0ZWQnLCAndHlwb2dyYXBoeSddLFxuICBvdXRwdXRzOiBbJ21kc0FjY29yZGlvbkl0ZW1TZWxlY3QnLCAnbWRzQWNjb3JkaW9uSXRlbVVuc2VsZWN0JywgJ21kc0FjY29yZGlvbkl0ZW1DaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzQWNjb3JkaW9uSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0FjY29yZGlvbkl0ZW1FbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzQWNjb3JkaW9uSXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0FjY29yZGlvbkl0ZW1NZHNBY2NvcmRpb25JdGVtRXZlbnREZXRhaWw+PigpO1xuICBAT3V0cHV0KCkgbWRzQWNjb3JkaW9uSXRlbVVuc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzQWNjb3JkaW9uSXRlbU1kc0FjY29yZGlvbkl0ZW1FdmVudERldGFpbD4+KCk7XG4gIEBPdXRwdXQoKSBtZHNBY2NvcmRpb25JdGVtQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzQWNjb3JkaW9uSXRlbU1kc0FjY29yZGlvbkl0ZW1FdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNBY2NvcmRpb25JdGVtRXZlbnREZXRhaWwgYXMgSU1kc0FjY29yZGlvbkl0ZW1NZHNBY2NvcmRpb25JdGVtRXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNBY2NvcmRpb25JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNBY2NvcmRpb25JdGVtIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBzZWxlY3RlZFxuICAgKi9cbiAgbWRzQWNjb3JkaW9uSXRlbVNlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNBY2NvcmRpb25JdGVtTWRzQWNjb3JkaW9uSXRlbUV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjb21wb25lbnQgaXMgdW5zZWxlY3RlZFxuICAgKi9cbiAgbWRzQWNjb3JkaW9uSXRlbVVuc2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0FjY29yZGlvbkl0ZW1NZHNBY2NvcmRpb25JdGVtRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCBhdHRyaWJ1dGUgc2VsZWN0ZWQgaXMgY2hhbmdlZFxuICAgKi9cbiAgbWRzQWNjb3JkaW9uSXRlbUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNBY2NvcmRpb25JdGVtTWRzQWNjb3JkaW9uSXRlbUV2ZW50RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2R1cmF0aW9uJywgJ3BhdXNlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWFjY29yZGlvbi10aW1lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZHVyYXRpb24nLCAncGF1c2VkJ10sXG4gIG91dHB1dHM6IFsnbWRzQWNjb3JkaW9uVGltZXJDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzQWNjb3JkaW9uVGltZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNBY2NvcmRpb25UaW1lckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNBY2NvcmRpb25UaW1lckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0FjY29yZGlvblRpbWVyTWRzQWNjb3JkaW9uVGltZXJFdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNBY2NvcmRpb25UaW1lckV2ZW50RGV0YWlsIGFzIElNZHNBY2NvcmRpb25UaW1lck1kc0FjY29yZGlvblRpbWVyRXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNBY2NvcmRpb25UaW1lciBleHRlbmRzIENvbXBvbmVudHMuTWRzQWNjb3JkaW9uVGltZXIge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgYWNjb3JkaW9uIGNoYW5nZXMgaXQncyBpdGVtXG4gICAqL1xuICBtZHNBY2NvcmRpb25UaW1lckNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNBY2NvcmRpb25UaW1lck1kc0FjY29yZGlvblRpbWVyRXZlbnREZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnZHVyYXRpb24nLCAncHJvZ3Jlc3MnLCAnc2VsZWN0ZWQnLCAndHlwb2dyYXBoeScsICd1dWlkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtYWNjb3JkaW9uLXRpbWVyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbeyBuYW1lOiAnZGVzY3JpcHRpb24nLCByZXF1aXJlZDogdHJ1ZSB9LCAnZHVyYXRpb24nLCAncHJvZ3Jlc3MnLCAnc2VsZWN0ZWQnLCAndHlwb2dyYXBoeScsICd1dWlkJ10sXG4gIG91dHB1dHM6IFsnbWRzQWNjb3JkaW9uVGltZXJJdGVtQ2xpY2tTZWxlY3QnLCAnbWRzQWNjb3JkaW9uVGltZXJJdGVtU2VsZWN0JywgJ21kc0FjY29yZGlvblRpbWVySXRlbU1vdXNlRW50ZXJTZWxlY3QnLCAnbWRzQWNjb3JkaW9uVGltZXJJdGVtTW91c2VMZWF2ZVNlbGVjdCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNBY2NvcmRpb25UaW1lckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNBY2NvcmRpb25UaW1lckl0ZW1FbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzQWNjb3JkaW9uVGltZXJJdGVtQ2xpY2tTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNBY2NvcmRpb25UaW1lckl0ZW1NZHNBY2NvcmRpb25UaW1lckl0ZW1FdmVudERldGFpbD4+KCk7XG4gIEBPdXRwdXQoKSBtZHNBY2NvcmRpb25UaW1lckl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNBY2NvcmRpb25UaW1lckl0ZW1NZHNBY2NvcmRpb25UaW1lckl0ZW1FdmVudERldGFpbD4+KCk7XG4gIEBPdXRwdXQoKSBtZHNBY2NvcmRpb25UaW1lckl0ZW1Nb3VzZUVudGVyU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzQWNjb3JkaW9uVGltZXJJdGVtTWRzQWNjb3JkaW9uVGltZXJJdGVtRXZlbnREZXRhaWw+PigpO1xuICBAT3V0cHV0KCkgbWRzQWNjb3JkaW9uVGltZXJJdGVtTW91c2VMZWF2ZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0FjY29yZGlvblRpbWVySXRlbU1kc0FjY29yZGlvblRpbWVySXRlbUV2ZW50RGV0YWlsPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kc0FjY29yZGlvblRpbWVySXRlbUV2ZW50RGV0YWlsIGFzIElNZHNBY2NvcmRpb25UaW1lckl0ZW1NZHNBY2NvcmRpb25UaW1lckl0ZW1FdmVudERldGFpbCB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0FjY29yZGlvblRpbWVySXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRzQWNjb3JkaW9uVGltZXJJdGVtIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGFjY29yZGlvbiBpcyBjbGlja2VkIGJ5IHRoZSBtb3VzZVxuICAgKi9cbiAgbWRzQWNjb3JkaW9uVGltZXJJdGVtQ2xpY2tTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzQWNjb3JkaW9uVGltZXJJdGVtTWRzQWNjb3JkaW9uVGltZXJJdGVtRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGFjY29yZGlvbiBpcyBjaGFuZ2VkIGZyb20gY29kZVxuICAgKi9cbiAgbWRzQWNjb3JkaW9uVGltZXJJdGVtU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0FjY29yZGlvblRpbWVySXRlbU1kc0FjY29yZGlvblRpbWVySXRlbUV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBhY2NvcmRpb24gaXMgaG92ZXJlZCBieSB0aGUgbW91c2VcbiAgICovXG4gIG1kc0FjY29yZGlvblRpbWVySXRlbU1vdXNlRW50ZXJTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzQWNjb3JkaW9uVGltZXJJdGVtTWRzQWNjb3JkaW9uVGltZXJJdGVtRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGFjY29yZGlvbiBpcyBob3ZlcmVkIGJ5IHRoZSBtb3VzZVxuICAgKi9cbiAgbWRzQWNjb3JkaW9uVGltZXJJdGVtTW91c2VMZWF2ZVNlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNBY2NvcmRpb25UaW1lckl0ZW1NZHNBY2NvcmRpb25UaW1lckl0ZW1FdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWF1dGhvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNBdXRob3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNBdXRob3JFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNBdXRob3IgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0F1dGhvciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb3VudCcsICdpY29uJywgJ2luaXRpYWxzJywgJ3NyYycsICd0b25lJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1hdmF0YXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvdW50JywgJ2ljb24nLCAnaW5pdGlhbHMnLCAnc3JjJywgJ3RvbmUnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNBdmF0YXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNBdmF0YXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNBdmF0YXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0F2YXRhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzaXplJywgJ3RvdGFsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtYXZhdGFyLXN0YWNrJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaXplJywgJ3RvdGFsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0F2YXRhclN0YWNrIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzQXZhdGFyU3RhY2tFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNBdmF0YXJTdGFjayBleHRlbmRzIENvbXBvbmVudHMuTWRzQXZhdGFyU3RhY2sge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY291bnQnLCAnaW5pdGlhbHMnLCAnc3JjJywgJ3RvbmUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWF2YXRhci1zdGFjay1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb3VudCcsICdpbml0aWFscycsICdzcmMnLCAndG9uZScsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0F2YXRhclN0YWNrSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0F2YXRhclN0YWNrSXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0F2YXRhclN0YWNrSXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRzQXZhdGFyU3RhY2tJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ3RvbmUnLCAndHlwb2dyYXBoeScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtYmFkZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ3RvbmUnLCAndHlwb2dyYXBoeScsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0JhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzQmFkZ2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuTWRzQmFkZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29ja2FkZScsICdkZWxldGFibGUnLCAnaGVhZGxpbmUnLCAnaWNvbicsICd0b25lJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVMYW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtYmFubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2NrYWRlJywgJ2RlbGV0YWJsZScsICdoZWFkbGluZScsICdpY29uJywgJ3RvbmUnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ21kc0Jhbm5lckNsb3NlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0Jhbm5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0Jhbm5lckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNCYW5uZXJDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0Jhbm5lciBleHRlbmRzIENvbXBvbmVudHMuTWRzQmFubmVyIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHVybCB2aWV3IGlzIGNsb3NlZFxuICAgKi9cbiAgbWRzQmFubmVyQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsaWFzJywgJ2xhYmVsJywgJ3NpemUnLCAndHlwb2dyYXBoeScsICd2YWx1ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtYmVuY2htYXJrLWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxpYXMnLCAnbGFiZWwnLCAnc2l6ZScsICd0eXBvZ3JhcGh5JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzQmVuY2htYXJrQmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzQmVuY2htYXJrQmFyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzQmVuY2htYXJrQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNCZW5jaG1hcmtCYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0aG9yJywgJ2RhdGUnLCAnZm9ybWF0JywgJ2xvY2F0aW9uJywgJ25hbWUnLCAncHVibGlzaGVyJywgJ3JlbCcsICd0eXBvZ3JhcGh5JywgJ3VybCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtYmlibGlvZ3JhcGh5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRob3InLCAnZGF0ZScsICdmb3JtYXQnLCAnbG9jYXRpb24nLCAnbmFtZScsICdwdWJsaXNoZXInLCAncmVsJywgJ3R5cG9ncmFwaHknLCAndXJsJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzQmlibGlvZ3JhcGh5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzQmlibGlvZ3JhcGh5RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzQmlibGlvZ3JhcGh5IGV4dGVuZHMgQ29tcG9uZW50cy5NZHNCaWJsaW9ncmFwaHkge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFjayddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZUxhbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1icmVhZGNydW1iJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYWNrJ10sXG4gIG91dHB1dHM6IFsnbWRzQnJlYWRjcnVtYkNoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNCcmVhZGNydW1iIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzQnJlYWRjcnVtYkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNCcmVhZGNydW1iQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzQnJlYWRjcnVtYk1kc0JyZWFkY3J1bWJFdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNCcmVhZGNydW1iRXZlbnREZXRhaWwgYXMgSU1kc0JyZWFkY3J1bWJNZHNCcmVhZGNydW1iRXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNCcmVhZGNydW1iIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNCcmVhZGNydW1iIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGJyZWFkY3J1bWIgaXMgY2hhbmdlZFxuICAgKi9cbiAgbWRzQnJlYWRjcnVtYkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNCcmVhZGNydW1iTWRzQnJlYWRjcnVtYkV2ZW50RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ3NlbGVjdGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtYnJlYWRjcnVtYi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICdzZWxlY3RlZCddLFxuICBvdXRwdXRzOiBbJ21kc0JyZWFkY3J1bWJJdGVtU2VsZWN0J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0JyZWFkY3J1bWJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzQnJlYWRjcnVtYkl0ZW1FbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzQnJlYWRjcnVtYkl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNCcmVhZGNydW1iSXRlbU1kc0JyZWFkY3J1bWJJdGVtRXZlbnREZXRhaWw+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRzQnJlYWRjcnVtYkl0ZW1FdmVudERldGFpbCBhcyBJTWRzQnJlYWRjcnVtYkl0ZW1NZHNCcmVhZGNydW1iSXRlbUV2ZW50RGV0YWlsIH0gZnJvbSAnQG1hZ2dpb2xpLWRlc2lnbi1zeXN0ZW0vbWFnbWEnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzQnJlYWRjcnVtYkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kc0JyZWFkY3J1bWJJdGVtIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGJyZWFkY3J1bWIgaXMgYWN0aXZlXG4gICAqL1xuICBtZHNCcmVhZGNydW1iSXRlbVNlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNCcmVhZGNydW1iSXRlbU1kc0JyZWFkY3J1bWJJdGVtRXZlbnREZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2FuaW1hdGlvbicsICdhdXRvRm9jdXMnLCAnYXdhaXQnLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2ljb25Qb3NpdGlvbicsICdsYWJlbCcsICdzaXplJywgJ3RhcmdldCcsICd0b25lJywgJ3RydW5jYXRlJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2FuaW1hdGlvbicsICdhdXRvRm9jdXMnLCAnYXdhaXQnLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2ljb25Qb3NpdGlvbicsICdsYWJlbCcsICdzaXplJywgJ3RhcmdldCcsICd0b25lJywgJ3RydW5jYXRlJywgJ3R5cGUnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNCdXR0b25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLk1kc0J1dHRvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnYXV0b0ZvY3VzJywgJ2F3YWl0JywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdsYWJlbCcsICdzaXplJywgJ3RhcmdldCcsICd0b25lJywgJ3RydW5jYXRlJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWJ1dHRvbi1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2F1dG9Gb2N1cycsICdhd2FpdCcsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnbGFiZWwnLCAnc2l6ZScsICd0YXJnZXQnLCAndG9uZScsICd0cnVuY2F0ZScsICd0eXBlJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzQnV0dG9uRHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNCdXR0b25Ecm9wZG93bkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0J1dHRvbkRyb3Bkb3duIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNCdXR0b25Ecm9wZG93biB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWJ1dHRvbi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNCdXR0b25Hcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0J1dHRvbkdyb3VwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzQnV0dG9uR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0J1dHRvbkdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2VuZERhdGUnLCAnbWF4JywgJ21pbicsICdyYW5nZVBpY2tlcicsICdzdGFydERhdGUnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVMYW5nJywgJ3VwZGF0ZUN1cnJlbnREYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtY2FsZW5kYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2VuZERhdGUnLCAnbWF4JywgJ21pbicsICdyYW5nZVBpY2tlcicsICdzdGFydERhdGUnXSxcbiAgb3V0cHV0czogWydtZHNDYWxlbmRhckNoYW5nZScsICdtZHNDYWxlbmRhclByZXNlbGVjdCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNDYWxlbmRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0NhbGVuZGFyRWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc0NhbGVuZGFyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHN0YXJ0RGF0ZTogc3RyaW5nOyBlbmREYXRlPzogc3RyaW5nOyB9Pj4oKTtcbiAgQE91dHB1dCgpIG1kc0NhbGVuZGFyUHJlc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzQ2FsZW5kYXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0NhbGVuZGFyIHtcblxuICBtZHNDYWxlbmRhckNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3RhcnREYXRlOiBzdHJpbmc7IGVuZERhdGU/OiBzdHJpbmc7IH0+PjtcblxuICBtZHNDYWxlbmRhclByZXNlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGF0ZScsICdkaXNhYmxlZCcsICdsYWJlbCcsICdtb250aCcsICdvcmllbnRhdGlvbicsICdwcmV2aWV3JywgJ3NlbGVjdGlvbicsICd0b2RheSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWNhbGVuZGFyLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RhdGUnLCAnZGlzYWJsZWQnLCAnbGFiZWwnLCAnbW9udGgnLCAnb3JpZW50YXRpb24nLCAncHJldmlldycsICdzZWxlY3Rpb24nLCAndG9kYXknXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzQ2FsZW5kYXJDZWxsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzQ2FsZW5kYXJDZWxsRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzQ2FsZW5kYXJDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNDYWxlbmRhckNlbGwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b0dyaWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvR3JpZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzQ2FyZEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0NhcmQgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0NhcmQge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1jYXJkLWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzQ2FyZENvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNDYXJkQ29udGVudEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0NhcmRDb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5NZHNDYXJkQ29udGVudCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWNhcmQtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0NhcmRGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNDYXJkRm9vdGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzQ2FyZEZvb3RlciBleHRlbmRzIENvbXBvbmVudHMuTWRzQ2FyZEZvb3RlciB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWNhcmQtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0NhcmRIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNDYXJkSGVhZGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzQ2FyZEhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuTWRzQ2FyZEhlYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWNhcmQtbWVkaWEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzQ2FyZE1lZGlhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzQ2FyZE1lZGlhRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzQ2FyZE1lZGlhIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNDYXJkTWVkaWEge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xpY2thYmxlJywgJ2RlbGV0YWJsZScsICdkaXNhYmxlZCcsICdpY29uJywgJ2xhYmVsJywgJ3NlbGVjdGFibGUnLCAnc2VsZWN0ZWQnLCAndG9uZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsndXBkYXRlTGFuZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdkZWxldGFibGUnLCAnZGlzYWJsZWQnLCAnaWNvbicsIHsgbmFtZTogJ2xhYmVsJywgcmVxdWlyZWQ6IHRydWUgfSwgJ3NlbGVjdGFibGUnLCAnc2VsZWN0ZWQnLCAndG9uZScsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnbWRzQ2hpcENsaWNrTGFiZWwnLCAnbWRzQ2hpcERlbGV0ZScsICdtZHNDaGlwU2VsZWN0J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0NoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNDaGlwRWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc0NoaXBDbGlja0xhYmVsID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzQ2hpcE1kc0NoaXBFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBtZHNDaGlwRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzQ2hpcE1kc0NoaXBFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBtZHNDaGlwU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzQ2hpcE1kc0NoaXBFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNDaGlwRXZlbnQgYXMgSU1kc0NoaXBNZHNDaGlwRXZlbnQgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNDaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNDaGlwIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCdzIGxhYmVsIGlzIGNsaWNrZWRcbiAgICovXG4gIG1kc0NoaXBDbGlja0xhYmVsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0NoaXBNZHNDaGlwRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCdzIGRlbGV0ZSBidXR0b24gaXMgY2xpY2tlZFxuICAgKi9cbiAgbWRzQ2hpcERlbGV0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNDaGlwTWRzQ2hpcEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjb21wb25lbnQncyBsYWJlbCBpcyBjbGlja2VkIGFuZCB3aGVuIGBzZWxlY3RhYmxlYCBhdHRyaWJ1dGUgaXMgc2V0IHRvIGB0cnVlYFxuICAgKi9cbiAgbWRzQ2hpcFNlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNDaGlwTWRzQ2hpcEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ29wZW5lZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWRldGFpbHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29wZW5lZCddLFxuICBvdXRwdXRzOiBbJ21kc0RldGFpbHNDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzRGV0YWlscyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0RldGFpbHNFbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzRGV0YWlsc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0RldGFpbHMgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0RldGFpbHMge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIG9wZW5lZFxuICAgKi9cbiAgbWRzRGV0YWlsc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJyb3cnLCAnYXJyb3dQYWRkaW5nJywgJ2F1dG9QbGFjZW1lbnQnLCAnYmFja2Ryb3AnLCAnZmxpcCcsICdpbnRlcmFjdGlvbicsICdvZmZzZXQnLCAncGxhY2VtZW50JywgJ3NoaWZ0JywgJ3NoaWZ0UGFkZGluZycsICdzbW9vdGgnLCAnc3RyYXRlZ3knLCAndGFyZ2V0JywgJ3Zpc2libGUnLCAnekluZGV4J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Fycm93JywgJ2Fycm93UGFkZGluZycsICdhdXRvUGxhY2VtZW50JywgJ2JhY2tkcm9wJywgJ2ZsaXAnLCAnaW50ZXJhY3Rpb24nLCAnb2Zmc2V0JywgJ3BsYWNlbWVudCcsICdzaGlmdCcsICdzaGlmdFBhZGRpbmcnLCAnc21vb3RoJywgJ3N0cmF0ZWd5JywgeyBuYW1lOiAndGFyZ2V0JywgcmVxdWlyZWQ6IHRydWUgfSwgJ3Zpc2libGUnLCAnekluZGV4J10sXG4gIG91dHB1dHM6IFsnbWRzRHJvcGRvd25WaXNpYmxlJywgJ21kc0Ryb3Bkb3duSGlkZScsICdtZHNEcm9wZG93bkNoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNEcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0Ryb3Bkb3duRWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc0Ryb3Bkb3duVmlzaWJsZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0Ryb3Bkb3duTWRzRHJvcGRvd25FdmVudERldGFpbD4+KCk7XG4gIEBPdXRwdXQoKSBtZHNEcm9wZG93bkhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNEcm9wZG93bk1kc0Ryb3Bkb3duRXZlbnREZXRhaWw+PigpO1xuICBAT3V0cHV0KCkgbWRzRHJvcGRvd25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNEcm9wZG93bk1kc0Ryb3Bkb3duRXZlbnREZXRhaWw+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRzRHJvcGRvd25FdmVudERldGFpbCBhcyBJTWRzRHJvcGRvd25NZHNEcm9wZG93bkV2ZW50RGV0YWlsIH0gZnJvbSAnQG1hZ2dpb2xpLWRlc2lnbi1zeXN0ZW0vbWFnbWEnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLk1kc0Ryb3Bkb3duIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSBtb2RhbCBpcyB2aXNpYmxlXG4gICAqL1xuICBtZHNEcm9wZG93blZpc2libGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzRHJvcGRvd25NZHNEcm9wZG93bkV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgbW9kYWwgaXMgaGlkZGVuXG4gICAqL1xuICBtZHNEcm9wZG93bkhpZGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzRHJvcGRvd25NZHNEcm9wZG93bkV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgbW9kYWwgaXMgdmlzaWJsZSBvciBoaWRkZW5cbiAgICovXG4gIG1kc0Ryb3Bkb3duQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0Ryb3Bkb3duTWRzRHJvcGRvd25FdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyduYW1lJ10sXG4gIG1ldGhvZHM6IFsnYWdyZWUnLCAnc21pbGUnLCAnZGlzYWdyZWUnLCAnc3RhcnRUaGlua2luZycsICdzdG9wVGhpbmtpbmcnLCAnc3RhcnRCbGlua2luZycsICdzdG9wQmxpbmtpbmcnLCAnc3RvcEZvbGxvd01vdXNlJywgJ3N0YXJ0Rm9sbG93TW91c2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1lbW9qaScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbmFtZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNFbW9qaSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0Vtb2ppRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzRW1vamkgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0Vtb2ppIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F3YWl0JywgJ2ljb24nLCAnaW5pdGlhbHMnLCAnc3JjJywgJ3RvbmUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWVudGl0eScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXdhaXQnLCAnaWNvbicsICdpbml0aWFscycsICdzcmMnLCAndG9uZScsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0VudGl0eSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0VudGl0eUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0VudGl0eSBleHRlbmRzIENvbXBvbmVudHMuTWRzRW50aXR5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2ZpbGVuYW1lJywgJ2Zvcm1hdCcsICdwcmV2aWV3JywgJ3Nob3dEb3dubG9hZGVkSWNvbicsICdzdWZmaXgnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVMYW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtZmlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnZmlsZW5hbWUnLCAnZm9ybWF0JywgJ3ByZXZpZXcnLCAnc2hvd0Rvd25sb2FkZWRJY29uJywgJ3N1ZmZpeCddLFxuICBvdXRwdXRzOiBbJ21kc0ZpbGVEb3dubG9hZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNGaWxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzRmlsZUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNGaWxlRG93bmxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNGaWxlTWRzRmlsZUV2ZW50RGV0YWlsPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kc0ZpbGVFdmVudERldGFpbCBhcyBJTWRzRmlsZU1kc0ZpbGVFdmVudERldGFpbCB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0ZpbGUgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0ZpbGUge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNsaWNrZWQsIHJldHVybmluZyBmaWxlIGluZm9zXG4gICAqL1xuICBtZHNGaWxlRG93bmxvYWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzRmlsZU1kc0ZpbGVFdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZWxldGFibGUnLCAnZGVzY3JpcHRpb24nLCAnZG93bmxvYWRhYmxlJywgJ2ZpbGVuYW1lJywgJ2ZpbGVzaXplJywgJ2Zvcm1hdCcsICdpY29uJywgJ21lc3NhZ2UnLCAnc3JjJywgJ3N1ZmZpeCcsICd0cnVuY2F0ZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsndXBkYXRlTGFuZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWZpbGUtcHJldmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVsZXRhYmxlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkYWJsZScsIHsgbmFtZTogJ2ZpbGVuYW1lJywgcmVxdWlyZWQ6IHRydWUgfSwgJ2ZpbGVzaXplJywgJ2Zvcm1hdCcsICdpY29uJywgJ21lc3NhZ2UnLCAnc3JjJywgJ3N1ZmZpeCcsICd0cnVuY2F0ZScsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnbWRzRmlsZURvd25sb2FkJywgJ21kc0ZpbGVEZWxldGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzRmlsZVByZXZpZXcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNGaWxlUHJldmlld0VsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNGaWxlRG93bmxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNGaWxlUHJldmlld01kc0ZpbGVQcmV2aWV3RXZlbnREZXRhaWw+PigpO1xuICBAT3V0cHV0KCkgbWRzRmlsZURlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0ZpbGVQcmV2aWV3TWRzRmlsZVByZXZpZXdFdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNGaWxlUHJldmlld0V2ZW50RGV0YWlsIGFzIElNZHNGaWxlUHJldmlld01kc0ZpbGVQcmV2aWV3RXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNGaWxlUHJldmlldyBleHRlbmRzIENvbXBvbmVudHMuTWRzRmlsZVByZXZpZXcge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNsaWNrZWQsIHJldHVybmluZyBmaWxlIGluZm9zXG4gICAqL1xuICBtZHNGaWxlRG93bmxvYWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzRmlsZVByZXZpZXdNZHNGaWxlUHJldmlld0V2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjb21wb25lbnQgaXMgcmVtb3ZlZCwgcmV0dXJuaW5nIGZpbGUgaW5mb3NcbiAgICovXG4gIG1kc0ZpbGVEZWxldGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzRmlsZVByZXZpZXdNZHNGaWxlUHJldmlld0V2ZW50RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9SZXNldCcsICdsYWJlbCcsICdtdWx0aXBsZScsICdyZXNldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWZpbHRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b1Jlc2V0JywgJ2xhYmVsJywgJ211bHRpcGxlJywgJ3Jlc2V0J10sXG4gIG91dHB1dHM6IFsnbWRzRmlsdGVyQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0ZpbHRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0ZpbHRlckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNGaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNGaWx0ZXJNZHNGaWx0ZXJFdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNGaWx0ZXJFdmVudERldGFpbCBhcyBJTWRzRmlsdGVyTWRzRmlsdGVyRXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNGaWx0ZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0ZpbHRlciB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBvbmUgb2YgdGhlIGNoaWxkcmVuIGlzIGNoYW5nZWRcbiAgICovXG4gIG1kc0ZpbHRlckNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNGaWx0ZXJNZHNGaWx0ZXJFdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb3VudCcsICdkaXNhYmxlZCcsICdpY29uJywgJ2xhYmVsJywgJ3NlbGVjdGVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtZmlsdGVyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvdW50JywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnbGFiZWwnLCAnc2VsZWN0ZWQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydtZHNGaWx0ZXJJdGVtU2VsZWN0J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0ZpbHRlckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNGaWx0ZXJJdGVtRWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc0ZpbHRlckl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNGaWx0ZXJJdGVtTWRzRmlsdGVySXRlbUV2ZW50RGV0YWlsPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kc0ZpbHRlckl0ZW1FdmVudERldGFpbCBhcyBJTWRzRmlsdGVySXRlbU1kc0ZpbHRlckl0ZW1FdmVudERldGFpbCB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0ZpbHRlckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kc0ZpbHRlckl0ZW0ge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgZWxlbWVudCBpcyBhY3RpdmVcbiAgICovXG4gIG1kc0ZpbHRlckl0ZW1TZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzRmlsdGVySXRlbU1kc0ZpbHRlckl0ZW1FdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcHBlYXJhbmNlJywgJ2FwcGVhcmFuY2VTZXQnLCAnYXV0b0hpZGUnLCAnYmFja2Ryb3AnLCAnbWVudScsICduYXYnLCAndGhyZXNob2xkJywgJ3Zpc2liaWxpdHknXSxcbiAgbWV0aG9kczogWydzZXRPcGVuZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwcGVhcmFuY2UnLCAnYXBwZWFyYW5jZVNldCcsICdhdXRvSGlkZScsICdiYWNrZHJvcCcsICdtZW51JywgJ25hdicsICd0aHJlc2hvbGQnLCAndmlzaWJpbGl0eSddLFxuICBvdXRwdXRzOiBbJ21kc0hlYWRlckNsb3NlJywgJ21kc0hlYWRlclZpc2liaWxpdHlDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzSGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzSGVhZGVyRWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc0hlYWRlckNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzSGVhZGVyTWRzSGVhZGVyRXZlbnREZXRhaWw+PigpO1xuICBAT3V0cHV0KCkgbWRzSGVhZGVyVmlzaWJpbGl0eUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0hlYWRlck1kc0hlYWRlclZpc2liaWxpdHlFdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNIZWFkZXJFdmVudERldGFpbCBhcyBJTWRzSGVhZGVyTWRzSGVhZGVyRXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5pbXBvcnQgdHlwZSB7IE1kc0hlYWRlclZpc2liaWxpdHlFdmVudERldGFpbCBhcyBJTWRzSGVhZGVyTWRzSGVhZGVyVmlzaWJpbGl0eUV2ZW50RGV0YWlsIH0gZnJvbSAnQG1hZ2dpb2xpLWRlc2lnbi1zeXN0ZW0vbWFnbWEnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNIZWFkZXIge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNsb3NlZFxuICAgKi9cbiAgbWRzSGVhZGVyQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzSGVhZGVyTWRzSGVhZGVyRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCBtZHMtaGVhZGVyLWJhciBpcyBzaG93biBvciBoaWRkZW5cbiAgICovXG4gIG1kc0hlYWRlclZpc2liaWxpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzSGVhZGVyTWRzSGVhZGVyVmlzaWJpbGl0eUV2ZW50RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21lbnUnLCAnbmF2J10sXG4gIG1ldGhvZHM6IFsnc2V0T3BlbmVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtaGVhZGVyLWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbWVudScsICduYXYnXSxcbiAgb3V0cHV0czogWydtZHNIZWFkZXJCYXJPcGVuJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0hlYWRlckJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0hlYWRlckJhckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNIZWFkZXJCYXJPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzSGVhZGVyQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNIZWFkZXJCYXIge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIG9wZW5lZFxuICAgKi9cbiAgbWRzSGVhZGVyQmFyT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b1BsYWNlbWVudCcsICdpY29uJywgJ3BsYWNlbWVudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWhlbHAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9QbGFjZW1lbnQnLCAnaWNvbicsICdwbGFjZW1lbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzSGVscCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0hlbHBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNIZWxwIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNIZWxwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRyb2xzJywgJ25hdmlnYXRpb24nLCAnc25hcCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWhvcml6b250YWwtc2Nyb2xsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250cm9scycsICduYXZpZ2F0aW9uJywgJ3NuYXAnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzSG9yaXpvbnRhbFNjcm9sbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0hvcml6b250YWxTY3JvbGxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNIb3Jpem9udGFsU2Nyb2xsIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNIb3Jpem9udGFsU2Nyb2xsIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtaHInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzSHIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNIckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0hyIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNIciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyduYW1lJ10sXG4gIG1ldGhvZHM6IFsnc2V0U3ZnUGF0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbeyBuYW1lOiAnbmFtZScsIHJlcXVpcmVkOiB0cnVlIH1dLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzSWNvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0ljb24gZXh0ZW5kcyBDb21wb25lbnRzLk1kc0ljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWx0JywgJ2Nyb3Nzb3JpZ2luJywgJ2hlaWdodCcsICdsb2FkaW5nJywgJ3JlZmVycmVycG9saWN5JywgJ3NpemVzJywgJ3NyYycsICdzcmNzZXQnLCAnc3Jjc2V0Q29uc3VtcHRpb24nLCAnd2lkdGgnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVMYW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtaW1nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbHQnLCAnY3Jvc3NvcmlnaW4nLCAnaGVpZ2h0JywgJ2xvYWRpbmcnLCAncmVmZXJyZXJwb2xpY3knLCAnc2l6ZXMnLCAnc3JjJywgJ3NyY3NldCcsICdzcmNzZXRDb25zdW1wdGlvbicsICd3aWR0aCddLFxuICBvdXRwdXRzOiBbJ21kc0ltZ0xvYWRFcnJvcicsICdtZHNJbWdMb2FkU3VjY2VzcyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNJbWcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNJbWdFbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzSW1nTG9hZEVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzSW1nTWRzSW1nRXZlbnREZXRhaWw+PigpO1xuICBAT3V0cHV0KCkgbWRzSW1nTG9hZFN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNJbWdNZHNJbWdFdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNJbWdFdmVudERldGFpbCBhcyBJTWRzSW1nTWRzSW1nRXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNJbWcgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0ltZyB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBpbWFnZSBpcyBub3QgbG9hZGVkXG4gICAqL1xuICBtZHNJbWdMb2FkRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzSW1nTWRzSW1nRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGltYWdlIGlzIHN1Y2Nlc3NmdWxseSBsb2FkZWRcbiAgICovXG4gIG1kc0ltZ0xvYWRTdWNjZXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0ltZ01kc0ltZ0V2ZW50RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9jb21wbGV0ZScsICdhdXRvZm9jdXMnLCAnYXdhaXQnLCAnY29udHJvbHNJY29uJywgJ2NvbnRyb2xzTGF5b3V0JywgJ2RhdGFsaXN0JywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnbWF4JywgJ21heGxlbmd0aCcsICdtaWMnLCAnbWluJywgJ21pbmxlbmd0aCcsICduYW1lJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc3RlcCcsICd0aXAnLCAndHlwZScsICd0eXBvZ3JhcGh5JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVMYW5nJywgJ2FkZFZhbGlkYXRvcicsICdyZW1vdmVWYWxpZGF0b3InLCAnaGFzVmFsaWRhdG9yJywgJ2dldEVycm9ycycsICdzZXRGb2N1cycsICdnZXRJbnB1dEVsZW1lbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b2NvbXBsZXRlJywgJ2F1dG9mb2N1cycsICdhd2FpdCcsICdjb250cm9sc0ljb24nLCAnY29udHJvbHNMYXlvdXQnLCAnZGF0YWxpc3QnLCAnZGlzYWJsZWQnLCAnaWNvbicsICdtYXgnLCAnbWF4bGVuZ3RoJywgJ21pYycsICdtaW4nLCAnbWlubGVuZ3RoJywgJ25hbWUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3RpcCcsICd0eXBlJywgJ3R5cG9ncmFwaHknLCAndmFsdWUnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ21kc0lucHV0Q2hhbmdlJywgJ21kc0lucHV0S2V5ZG93bicsICdtZHNJbnB1dEJsdXInLCAnbWRzSW5wdXRGb2N1cycsICdtZHNJbnB1dFNwZWVjaEVuZCcsICdtZHNJbnB1dFZhbGlkYXRpb24nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzSW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNJbnB1dEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNJbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0lucHV0TWRzSW5wdXRFdmVudERldGFpbD4+KCk7XG4gIEBPdXRwdXQoKSBtZHNJbnB1dEtleWRvd24gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEtleWJvYXJkRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgbWRzSW5wdXRCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj4oKTtcbiAgQE91dHB1dCgpIG1kc0lucHV0Rm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PigpO1xuICBAT3V0cHV0KCkgbWRzSW5wdXRTcGVlY2hFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PigpO1xuICBAT3V0cHV0KCkgbWRzSW5wdXRWYWxpZGF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kc0lucHV0RXZlbnREZXRhaWwgYXMgSU1kc0lucHV0TWRzSW5wdXRFdmVudERldGFpbCB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0lucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5NZHNJbnB1dCB7XG4gIC8qKlxuICAgKiBFbWl0cyBhbiBJbnB1dENoYW5nZUV2ZW50RGV0YWlsIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBpbnB1dCBlbGVtZW50IGNoYW5nZXNcbiAgICovXG4gIG1kc0lucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0lucHV0TWRzSW5wdXRFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHMgYSBLZXlib2FyZEV2ZW50IHdoZW4gYSBrZXlib2FyZCBrZXkgaXMgcHJlc3NlZCBvbiB0aGUgZm9jdXNlZCBpbnB1dCBlbGVtZW50XG4gICAqL1xuICBtZHNJbnB1dEtleWRvd246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxLZXlib2FyZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFbWl0cyBhIHZvaWQgZXZlbnQgd2hlbiBpbnB1dCBlbGVtZW50IGlzIGJsdXJyZWRcbiAgICovXG4gIG1kc0lucHV0Qmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGEgdm9pZCBldmVudCB3aGVuIGlucHV0IGVsZW1lbnQgaXMgZm9jdXNlZFxuICAgKi9cbiAgbWRzSW5wdXRGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGEgdm9pZCBldmVudCB3aGVuIGlucHV0IHNwZWVjaCByZWNvZ25pdGlvbiBlbmRzXG4gICAqL1xuICBtZHNJbnB1dFNwZWVjaEVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGEgYm9vbGVhbiBldmVudCB3aGVuIGEgaW5wdXQgZXhlY3V0ZSB2YWxpZGF0aW9uXG4gICAqL1xuICBtZHNJbnB1dFZhbGlkYXRpb246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RlbGF5JywgJ2Rpc2FibGVkJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICd2YWx1ZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsndXBkYXRlTGFuZycsICdmb2N1c0lucHV0JywgJ3NldFZhbHVlJywgJ2dldEVycm9ycyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWlucHV0LWRhdGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbGF5JywgJ2Rpc2FibGVkJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICd2YWx1ZScsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnbWRzSW5wdXRWYWxpZGF0aW9uJywgJ21kc0lucHV0RGF0ZVNlbGVjdCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNJbnB1dERhdGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNJbnB1dERhdGVFbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzSW5wdXRWYWxpZGF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj4oKTtcbiAgQE91dHB1dCgpIG1kc0lucHV0RGF0ZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzSW5wdXREYXRlIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNJbnB1dERhdGUge1xuICAvKipcbiAgICogRW1pdHMgYSBib29sZWFuIGV2ZW50IHdoZW4gYSBpbnB1dCBleGVjdXRlIHZhbGlkYXRpb25cbiAgICovXG4gIG1kc0lucHV0VmFsaWRhdGlvbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxuICBtZHNJbnB1dERhdGVTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVsYXknLCAnZW5kRGF0ZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnc3RhcnREYXRlJ10sXG4gIG1ldGhvZHM6IFsndXBkYXRlTGFuZycsICdwcmVzZWxlY3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1pbnB1dC1kYXRlLXJhbmdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWxheScsICdlbmREYXRlJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdzdGFydERhdGUnXSxcbiAgb3V0cHV0czogWydtZHNJbnB1dERhdGVSYW5nZVNlbGVjdCcsICdtZHNJbnB1dERhdGVSYW5nZVZhbHVlQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0lucHV0RGF0ZVJhbmdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzSW5wdXREYXRlUmFuZ2VFbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzSW5wdXREYXRlUmFuZ2VTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3RhcnREYXRlOiBzdHJpbmc7IGVuZERhdGU6IHN0cmluZzsgfT4+KCk7XG4gIEBPdXRwdXQoKSBtZHNJbnB1dERhdGVSYW5nZVZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHN0YXJ0RGF0ZTogc3RyaW5nOyBlbmREYXRlOiBzdHJpbmc7IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNJbnB1dERhdGVSYW5nZSBleHRlbmRzIENvbXBvbmVudHMuTWRzSW5wdXREYXRlUmFuZ2Uge1xuXG4gIG1kc0lucHV0RGF0ZVJhbmdlU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzdGFydERhdGU6IHN0cmluZzsgZW5kRGF0ZTogc3RyaW5nOyB9Pj47XG5cbiAgbWRzSW5wdXREYXRlUmFuZ2VWYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3RhcnREYXRlOiBzdHJpbmc7IGVuZERhdGU6IHN0cmluZzsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydlbmQnLCAnc2VsZWN0ZWQnLCAnc3RhcnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1pbnB1dC1kYXRlLXJhbmdlLXByZXNlbGVjdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZW5kJywgJ3NlbGVjdGVkJywgeyBuYW1lOiAnc3RhcnQnLCByZXF1aXJlZDogdHJ1ZSB9XSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzSW5wdXREYXRlUmFuZ2VQcmVzZWxlY3Rpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNJbnB1dERhdGVSYW5nZVByZXNlbGVjdGlvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0lucHV0RGF0ZVJhbmdlUHJlc2VsZWN0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNJbnB1dERhdGVSYW5nZVByZXNlbGVjdGlvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICdtZXNzYWdlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1pbnB1dC1maWVsZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnLCAnbWVzc2FnZScsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0lucHV0RmllbGQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNJbnB1dEZpZWxkRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzSW5wdXRGaWVsZCBleHRlbmRzIENvbXBvbmVudHMuTWRzSW5wdXRGaWVsZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvc3VibWl0JywgJ2xlbmd0aCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWlucHV0LW90cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b3N1Ym1pdCcsICdsZW5ndGgnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzSW5wdXRPdHAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNJbnB1dE90cEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0lucHV0T3RwIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNJbnB1dE90cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdmb3JtYXRWYWx1ZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnc3RlcCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWlucHV0LXJhbmdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdmb3JtYXRWYWx1ZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnc3RlcCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ21kc0lucHV0UmFuZ2VDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzSW5wdXRSYW5nZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0lucHV0UmFuZ2VFbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzSW5wdXRSYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzSW5wdXRSYW5nZSBleHRlbmRzIENvbXBvbmVudHMuTWRzSW5wdXRSYW5nZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBpbnB1dCByYW5nZSBpcyBjaGFuZ2VkXG4gICAqL1xuICBtZHNJbnB1dFJhbmdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9Gb2N1cycsICdhdXRvY29tcGxldGUnLCAnZGVmYXVsdFZhbHVlJywgJ2Rpc2FibGVkJywgJ211bHRpcGxlJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsndXBkYXRlTGFuZycsICdzZXRWYWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWlucHV0LXNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b0ZvY3VzJywgJ2F1dG9jb21wbGV0ZScsICdkZWZhdWx0VmFsdWUnLCAnZGlzYWJsZWQnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbiAgb3V0cHV0czogWydtZHNJbnB1dFNlbGVjdENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNJbnB1dFNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0lucHV0U2VsZWN0RWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc0lucHV0U2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzSW5wdXRTZWxlY3RNZHNJbnB1dEV2ZW50RGV0YWlsPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kc0lucHV0RXZlbnREZXRhaWwgYXMgSU1kc0lucHV0U2VsZWN0TWRzSW5wdXRFdmVudERldGFpbCB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0lucHV0U2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5NZHNJbnB1dFNlbGVjdCB7XG4gIC8qKlxuICAgKiBFbWl0cyBhbiBJbnB1dENoYW5nZUV2ZW50RGV0YWlsIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBpbnB1dCBlbGVtZW50IGNoYW5nZXNcbiAgICovXG4gIG1kc0lucHV0U2VsZWN0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0lucHV0U2VsZWN0TWRzSW5wdXRFdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvZm9jdXMnLCAnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdleHBsaWNpdCcsICdpY29uJywgJ2luZGV0ZXJtaW5hdGUnLCAnbmFtZScsICdzaXplJywgJ3R5cGUnLCAndHlwb2dyYXBoeScsICd2YWx1ZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsndXBkYXRlTGFuZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWlucHV0LXN3aXRjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZXhwbGljaXQnLCAnaWNvbicsICdpbmRldGVybWluYXRlJywgJ25hbWUnLCAnc2l6ZScsICd0eXBlJywgJ3R5cG9ncmFwaHknLCAndmFsdWUnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ21kc0lucHV0U3dpdGNoQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc0lucHV0U3dpdGNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzSW5wdXRTd2l0Y2hFbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzSW5wdXRTd2l0Y2hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNJbnB1dFN3aXRjaE1kc0lucHV0U3dpdGNoRXZlbnREZXRhaWw+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRzSW5wdXRTd2l0Y2hFdmVudERldGFpbCBhcyBJTWRzSW5wdXRTd2l0Y2hNZHNJbnB1dFN3aXRjaEV2ZW50RGV0YWlsIH0gZnJvbSAnQG1hZ2dpb2xpLWRlc2lnbi1zeXN0ZW0vbWFnbWEnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzSW5wdXRTd2l0Y2ggZXh0ZW5kcyBDb21wb25lbnRzLk1kc0lucHV0U3dpdGNoIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gIG1kc0lucHV0U3dpdGNoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc0lucHV0U3dpdGNoTWRzSW5wdXRTd2l0Y2hFdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAncG9zaXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1pbnB1dC10aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdwb3NpdGlvbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNJbnB1dFRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0lucHV0VGlwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzSW5wdXRUaXAgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0lucHV0VGlwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2V4cGFuZGVkJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVMYW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtaW5wdXQtdGlwLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2V4cGFuZGVkJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzSW5wdXRUaXBJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzSW5wdXRUaXBJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzSW5wdXRUaXBJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNJbnB1dFRpcEl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2luaXRpYWxWYWx1ZScsICdtYXhGaWxlU2l6ZScsICdtYXhGaWxlcycsICdzb3J0J10sXG4gIG1ldGhvZHM6IFsndXBkYXRlTGFuZycsICdnZXRGaWxlcycsICdnZXRGaWxlc0Vycm9yJywgJ3Jlc2V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtaW5wdXQtdXBsb2FkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2NlcHQnLCAnaW5pdGlhbFZhbHVlJywgJ21heEZpbGVTaXplJywgJ21heEZpbGVzJywgJ3NvcnQnXSxcbiAgb3V0cHV0czogWydtZHNJbnB1dFVwbG9hZENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNJbnB1dFVwbG9hZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0lucHV0VXBsb2FkRWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc0lucHV0VXBsb2FkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGaWxlTGlzdCB8IG51bGw+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNJbnB1dFVwbG9hZCBleHRlbmRzIENvbXBvbmVudHMuTWRzSW5wdXRVcGxvYWQge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGZpbGVzIGFyZSBjaGFuZ2VkXG4gICAqL1xuICBtZHNJbnB1dFVwbG9hZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZpbGVMaXN0IHwgbnVsbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyd0ZXN0JywgJ3RyeSddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZUxhbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1rZXlib2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndGVzdCcsICd0cnknXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzS2V5Ym9hcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNLZXlib2FyZEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0tleWJvYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNLZXlib2FyZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyduYW1lJywgJ3ByZXNzZWQnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVMYW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMta2V5Ym9hcmQta2V5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyduYW1lJywgJ3ByZXNzZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzS2V5Ym9hcmRLZXkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNLZXlib2FyZEtleUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0tleWJvYXJkS2V5IGV4dGVuZHMgQ29tcG9uZW50cy5NZHNLZXlib2FyZEtleSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWtwaScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNLcGkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNLcGlFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNLcGkgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0twaSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdpY29uJywgJ2xhYmVsJywgJ3RocmVzaG9sZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWtwaS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdpY29uJywgJ2xhYmVsJywgJ3RocmVzaG9sZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNLcGlJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzS3BpSXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc0twaUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kc0twaUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVsZXRhYmxlJywgJ2xhYmVsJywgJ3RvbmUnLCAndHJ1bmNhdGUnLCAndHlwb2dyYXBoeScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsndXBkYXRlTGFuZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWxldGFibGUnLCAnbGFiZWwnLCAndG9uZScsICd0cnVuY2F0ZScsICd0eXBvZ3JhcGh5JywgJ3ZhcmlhbnQnXSxcbiAgb3V0cHV0czogWydtZHNMYWJlbERlbGV0ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0xhYmVsRWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc0xhYmVsRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzTGFiZWwgZXh0ZW5kcyBDb21wb25lbnRzLk1kc0xhYmVsIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGxhYmVsIGhhcyB0byBiZSBjYW5jZWxsZWRcbiAgICovXG4gIG1kc0xhYmVsRGVsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0xpc3RFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5NZHNMaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb24nLCAndHlwb2dyYXBoeScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uJywgJ3R5cG9ncmFwaHknLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNMaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc0xpc3RJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzTGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kc0xpc3RJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLW1lbnRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnLCAnc2l6ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNNZW50aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzTWVudGlvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc01lbnRpb24gZXh0ZW5kcyBDb21wb25lbnRzLk1kc01lbnRpb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0aW5nJywgJ2FuaW1hdGlvbicsICdiYWNrZHJvcCcsICdpbnRlcmFjdGlvbicsICdvcGVuZWQnLCAnb3ZlcmZsb3cnLCAncG9zaXRpb24nXSxcbiAgbWV0aG9kczogWydjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLW1vZGFsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpbmcnLCAnYW5pbWF0aW9uJywgJ2JhY2tkcm9wJywgJ2ludGVyYWN0aW9uJywgJ29wZW5lZCcsICdvdmVyZmxvdycsICdwb3NpdGlvbiddLFxuICBvdXRwdXRzOiBbJ21kc01vZGFsT3BlbicsICdtZHNNb2RhbFNob3cnLCAnbWRzTW9kYWxDbG9zZScsICdtZHNNb2RhbEhpZGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzTW9kYWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNNb2RhbEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNNb2RhbE9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PigpO1xuICBAT3V0cHV0KCkgbWRzTW9kYWxTaG93ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj4oKTtcbiAgQE91dHB1dCgpIG1kc01vZGFsQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PigpO1xuICBAT3V0cHV0KCkgbWRzTW9kYWxIaWRlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzTW9kYWwgZXh0ZW5kcyBDb21wb25lbnRzLk1kc01vZGFsIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSBtb2RhbCBpcyBjbG9zZWRcbiAgICovXG4gIG1kc01vZGFsT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSBtb2RhbCBpcyB0b3RhbGx5IHZpc2libGUsIHdoZW4gdGhlIG1vZGFsIGludHJvIGFuaW1hdGlvbiBpcyBmaW5pc2hlZFxuICAgKi9cbiAgbWRzTW9kYWxTaG93OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBhIG1vZGFsIGlzIGNsb3NlZFxuICAgKi9cbiAgbWRzTW9kYWxDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSBtb2RhbCBpcyB0b3RhbGx5IGludmlzaWJsZSwgY2FuIGJlIHVzZWZ1bCB0byBkZXRhY2ggdGhlIGNvbXBvbmVudCB3aGVuIGl0J3MgaGlkZGVuIGFuZCBnYWluIG1lbW9yeVxuICAgKi9cbiAgbWRzTW9kYWxIaWRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZWxldGFibGUnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZUxhbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1ub3RlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWxldGFibGUnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ21kc05vdGVEZWxldGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzTm90ZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc05vdGVFbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzTm90ZURlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc05vdGUgZXh0ZW5kcyBDb21wb25lbnRzLk1kc05vdGUge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgbm90ZSBoYXMgdG8gYmUgY2FuY2VsbGVkXG4gICAqL1xuICBtZHNOb3RlRGVsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydtYXgnLCAnc3RyYXRlZ3knLCAndGFyZ2V0JywgJ3ZhbHVlJywgJ3Zpc2libGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1ub3RpZmljYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ21heCcsICdzdHJhdGVneScsICd0YXJnZXQnLCAndmFsdWUnLCAndmlzaWJsZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNOb3RpZmljYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNOb3RpZmljYXRpb25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNOb3RpZmljYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLk1kc05vdGlmaWNhdGlvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXJyZW50UGFnZScsICdwYWdlcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXBhZ2luYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VycmVudFBhZ2UnLCAncGFnZXMnXSxcbiAgb3V0cHV0czogWydtZHNQYWdpbmF0b3JDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzUGFnaW5hdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzUGFnaW5hdG9yRWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc1BhZ2luYXRvckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc1BhZ2luYXRvck1kc1BhZ2luYXRvckV2ZW50RGV0YWlsPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kc1BhZ2luYXRvckV2ZW50RGV0YWlsIGFzIElNZHNQYWdpbmF0b3JNZHNQYWdpbmF0b3JFdmVudERldGFpbCB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1BhZ2luYXRvciBleHRlbmRzIENvbXBvbmVudHMuTWRzUGFnaW5hdG9yIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSBwYWdlIGlzIGNoYW5nZWRcbiAgICovXG4gIG1kc1BhZ2luYXRvckNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNQYWdpbmF0b3JNZHNQYWdpbmF0b3JFdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpY29uJywgJ3NlbGVjdGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtcGFnaW5hdG9yLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2ljb24nLCAnc2VsZWN0ZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzUGFnaW5hdG9ySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1BhZ2luYXRvckl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNQYWdpbmF0b3JJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNQYWdpbmF0b3JJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hlYWRsaW5lJywgJ2hyZWYnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZUxhbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1wb2xpY3ktYWknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hlYWRsaW5lJywgJ2hyZWYnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNQb2xpY3lBaSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1BvbGljeUFpRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzUG9saWN5QWkgZXh0ZW5kcyBDb21wb25lbnRzLk1kc1BvbGljeUFpIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRyb2xsZXInLCAnc2l6ZSddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZUxhbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1wcmVmJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250cm9sbGVyJywgJ3NpemUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzUHJlZiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1ByZWZFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNQcmVmIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNQcmVmIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21vZGUnLCAnc2l6ZSddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZUxhbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1wcmVmLWFuaW1hdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbW9kZScsICdzaXplJ10sXG4gIG91dHB1dHM6IFsnbWRzUHJlZkNoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNQcmVmQW5pbWF0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzUHJlZkFuaW1hdGlvbkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNQcmVmQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzUHJlZkFuaW1hdGlvbk1kc1ByZWZDaGFuZ2VFdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNQcmVmQ2hhbmdlRXZlbnREZXRhaWwgYXMgSU1kc1ByZWZBbmltYXRpb25NZHNQcmVmQ2hhbmdlRXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNQcmVmQW5pbWF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNQcmVmQW5pbWF0aW9uIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCBpcyB0cmlnZ2VyZWRcbiAgICovXG4gIG1kc1ByZWZDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzUHJlZkFuaW1hdGlvbk1kc1ByZWZDaGFuZ2VFdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydtb2RlJywgJ3NpemUnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVMYW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtcHJlZi1jb25zdW1wdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbW9kZScsICdzaXplJ10sXG4gIG91dHB1dHM6IFsnbWRzUHJlZkNoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNQcmVmQ29uc3VtcHRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNQcmVmQ29uc3VtcHRpb25FbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzUHJlZkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc1ByZWZDb25zdW1wdGlvbk1kc1ByZWZDaGFuZ2VFdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNQcmVmQ2hhbmdlRXZlbnREZXRhaWwgYXMgSU1kc1ByZWZDb25zdW1wdGlvbk1kc1ByZWZDaGFuZ2VFdmVudERldGFpbCB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1ByZWZDb25zdW1wdGlvbiBleHRlbmRzIENvbXBvbmVudHMuTWRzUHJlZkNvbnN1bXB0aW9uIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCBpcyB0cmlnZ2VyZWRcbiAgICovXG4gIG1kc1ByZWZDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzUHJlZkNvbnN1bXB0aW9uTWRzUHJlZkNoYW5nZUV2ZW50RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21vZGUnLCAnc2l6ZSddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZUxhbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1wcmVmLWNvbnRyYXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydtb2RlJywgJ3NpemUnXSxcbiAgb3V0cHV0czogWydtZHNQcmVmQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1ByZWZDb250cmFzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1ByZWZDb250cmFzdEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNQcmVmQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzUHJlZkNvbnRyYXN0TWRzUHJlZkNoYW5nZUV2ZW50RGV0YWlsPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kc1ByZWZDaGFuZ2VFdmVudERldGFpbCBhcyBJTWRzUHJlZkNvbnRyYXN0TWRzUHJlZkNoYW5nZUV2ZW50RGV0YWlsIH0gZnJvbSAnQG1hZ2dpb2xpLWRlc2lnbi1zeXN0ZW0vbWFnbWEnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzUHJlZkNvbnRyYXN0IGV4dGVuZHMgQ29tcG9uZW50cy5NZHNQcmVmQ29udHJhc3Qge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIHRyaWdnZXJlZFxuICAgKi9cbiAgbWRzUHJlZkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNQcmVmQ29udHJhc3RNZHNQcmVmQ2hhbmdlRXZlbnREZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2V0JywgJ3NpemUnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVMYW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtcHJlZi1sYW5ndWFnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2V0JywgJ3NpemUnXSxcbiAgb3V0cHV0czogWydtZHNQcmVmTGFuZ3VhZ2VDaGFuZ2UnLCAnbWRzUHJlZkNoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNQcmVmTGFuZ3VhZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNQcmVmTGFuZ3VhZ2VFbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzUHJlZkxhbmd1YWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzUHJlZkxhbmd1YWdlTWRzUHJlZkxhbmd1YWdlRXZlbnREZXRhaWw+PigpO1xuICBAT3V0cHV0KCkgbWRzUHJlZkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc1ByZWZMYW5ndWFnZU1kc1ByZWZDaGFuZ2VFdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNQcmVmTGFuZ3VhZ2VFdmVudERldGFpbCBhcyBJTWRzUHJlZkxhbmd1YWdlTWRzUHJlZkxhbmd1YWdlRXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5pbXBvcnQgdHlwZSB7IE1kc1ByZWZDaGFuZ2VFdmVudERldGFpbCBhcyBJTWRzUHJlZkxhbmd1YWdlTWRzUHJlZkNoYW5nZUV2ZW50RGV0YWlsIH0gZnJvbSAnQG1hZ2dpb2xpLWRlc2lnbi1zeXN0ZW0vbWFnbWEnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzUHJlZkxhbmd1YWdlIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNQcmVmTGFuZ3VhZ2Uge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGNoYW5nZXMgdGhlIGxhbmd1YWdlIHNlbGVjdGVkIGZyb20gdGhlIGNsaWNrIGV2ZW50IG9mIHRoZSBkcm9wZG93biBsaXN0IGl0ZW1cbiAgICovXG4gIG1kc1ByZWZMYW5ndWFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNQcmVmTGFuZ3VhZ2VNZHNQcmVmTGFuZ3VhZ2VFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIHRyaWdnZXJlZFxuICAgKi9cbiAgbWRzUHJlZkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNQcmVmTGFuZ3VhZ2VNZHNQcmVmQ2hhbmdlRXZlbnREZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29kZScsICdzZWxlY3RlZCddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZUxhbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1wcmVmLWxhbmd1YWdlLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvZGUnLCAnc2VsZWN0ZWQnXSxcbiAgb3V0cHV0czogWydtZHNQcmVmTGFuZ3VhZ2VJdGVtU2VsZWN0J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1ByZWZMYW5ndWFnZUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNQcmVmTGFuZ3VhZ2VJdGVtRWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc1ByZWZMYW5ndWFnZUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNQcmVmTGFuZ3VhZ2VJdGVtTWRzUHJlZkxhbmd1YWdlRXZlbnREZXRhaWw+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRzUHJlZkxhbmd1YWdlRXZlbnREZXRhaWwgYXMgSU1kc1ByZWZMYW5ndWFnZUl0ZW1NZHNQcmVmTGFuZ3VhZ2VFdmVudERldGFpbCB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1ByZWZMYW5ndWFnZUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kc1ByZWZMYW5ndWFnZUl0ZW0ge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IHRyaWdnZXIgdGhlIGxhbmd1YWdlXG4gICAqL1xuICBtZHNQcmVmTGFuZ3VhZ2VJdGVtU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc1ByZWZMYW5ndWFnZUl0ZW1NZHNQcmVmTGFuZ3VhZ2VFdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydtb2RlJywgJ3NpemUnLCAndHJhbnNpdGlvbiddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZUxhbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1wcmVmLXRoZW1lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydtb2RlJywgJ3NpemUnLCAndHJhbnNpdGlvbiddLFxuICBvdXRwdXRzOiBbJ21kc1ByZWZDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzUHJlZlRoZW1lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzUHJlZlRoZW1lRWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc1ByZWZDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNQcmVmVGhlbWVNZHNQcmVmQ2hhbmdlRXZlbnREZXRhaWw+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRzUHJlZkNoYW5nZUV2ZW50RGV0YWlsIGFzIElNZHNQcmVmVGhlbWVNZHNQcmVmQ2hhbmdlRXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNQcmVmVGhlbWUgZXh0ZW5kcyBDb21wb25lbnRzLk1kc1ByZWZUaGVtZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjb21wb25lbnQgaXMgdHJpZ2dlcmVkXG4gICAqL1xuICBtZHNQcmVmQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc1ByZWZUaGVtZU1kc1ByZWZDaGFuZ2VFdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyduYW1lJywgJ3NjaGVtZScsICdzaXplJ10sXG4gIG1ldGhvZHM6IFsndXBkYXRlTGFuZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXByZWYtdGhlbWUtdmFyaWFudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbmFtZScsICdzY2hlbWUnLCAnc2l6ZSddLFxuICBvdXRwdXRzOiBbJ21kc1ByZWZUaGVtZVZhcmlhbnRDaGFuZ2UnLCAnbWRzUHJlZkNoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNQcmVmVGhlbWVWYXJpYW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzUHJlZlRoZW1lVmFyaWFudEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNQcmVmVGhlbWVWYXJpYW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzUHJlZlRoZW1lVmFyaWFudE1kc1ByZWZUaGVtZVZhcmlhbnRFdmVudERldGFpbD4+KCk7XG4gIEBPdXRwdXQoKSBtZHNQcmVmQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzUHJlZlRoZW1lVmFyaWFudE1kc1ByZWZDaGFuZ2VFdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNQcmVmVGhlbWVWYXJpYW50RXZlbnREZXRhaWwgYXMgSU1kc1ByZWZUaGVtZVZhcmlhbnRNZHNQcmVmVGhlbWVWYXJpYW50RXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5pbXBvcnQgdHlwZSB7IE1kc1ByZWZDaGFuZ2VFdmVudERldGFpbCBhcyBJTWRzUHJlZlRoZW1lVmFyaWFudE1kc1ByZWZDaGFuZ2VFdmVudERldGFpbCB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1ByZWZUaGVtZVZhcmlhbnQgZXh0ZW5kcyBDb21wb25lbnRzLk1kc1ByZWZUaGVtZVZhcmlhbnQge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGNoYW5nZXMgdGhlIGxhbmd1YWdlIHNlbGVjdGVkIGZyb20gdGhlIGNsaWNrIGV2ZW50IG9mIHRoZSBkcm9wZG93biBsaXN0IGl0ZW1cbiAgICovXG4gIG1kc1ByZWZUaGVtZVZhcmlhbnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzUHJlZlRoZW1lVmFyaWFudE1kc1ByZWZUaGVtZVZhcmlhbnRFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIHRyaWdnZXJlZFxuICAgKi9cbiAgbWRzUHJlZkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNQcmVmVGhlbWVWYXJpYW50TWRzUHJlZkNoYW5nZUV2ZW50RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ25hbWUnLCAnc2NoZW1lJywgJ3NlbGVjdGVkJ10sXG4gIG1ldGhvZHM6IFsndXBkYXRlTGFuZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXByZWYtdGhlbWUtdmFyaWFudC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICduYW1lJywgJ3NjaGVtZScsICdzZWxlY3RlZCddLFxuICBvdXRwdXRzOiBbJ21kc1ByZWZUaGVtZVZhcmlhbnRJdGVtU2VsZWN0J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1ByZWZUaGVtZVZhcmlhbnRJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzUHJlZlRoZW1lVmFyaWFudEl0ZW1FbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzUHJlZlRoZW1lVmFyaWFudEl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNQcmVmVGhlbWVWYXJpYW50SXRlbU1kc1ByZWZUaGVtZVZhcmlhbnRFdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNQcmVmVGhlbWVWYXJpYW50RXZlbnREZXRhaWwgYXMgSU1kc1ByZWZUaGVtZVZhcmlhbnRJdGVtTWRzUHJlZlRoZW1lVmFyaWFudEV2ZW50RGV0YWlsIH0gZnJvbSAnQG1hZ2dpb2xpLWRlc2lnbi1zeXN0ZW0vbWFnbWEnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzUHJlZlRoZW1lVmFyaWFudEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kc1ByZWZUaGVtZVZhcmlhbnRJdGVtIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNvbXBvbmVudCB0cmlnZ2VyIHRoZSBsYW5ndWFnZVxuICAgKi9cbiAgbWRzUHJlZlRoZW1lVmFyaWFudEl0ZW1TZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzUHJlZlRoZW1lVmFyaWFudEl0ZW1NZHNQcmVmVGhlbWVWYXJpYW50RXZlbnREZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1wcmljZS10YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNQcmljZVRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzUHJpY2VUYWJsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1ByaWNlVGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLk1kc1ByaWNlVGFibGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1wcmljZS10YWJsZS1mZWF0dXJlcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzUHJpY2VUYWJsZUZlYXR1cmVzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzUHJpY2VUYWJsZUZlYXR1cmVzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzUHJpY2VUYWJsZUZlYXR1cmVzIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNQcmljZVRhYmxlRmVhdHVyZXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXByaWNlLXRhYmxlLWZlYXR1cmVzLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3R5cGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzUHJpY2VUYWJsZUZlYXR1cmVzQ2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1ByaWNlVGFibGVGZWF0dXJlc0NlbGxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNQcmljZVRhYmxlRmVhdHVyZXNDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNQcmljZVRhYmxlRmVhdHVyZXNDZWxsIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtcHJpY2UtdGFibGUtZmVhdHVyZXMtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1ByaWNlVGFibGVGZWF0dXJlc1JvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1ByaWNlVGFibGVGZWF0dXJlc1Jvd0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1ByaWNlVGFibGVGZWF0dXJlc1JvdyBleHRlbmRzIENvbXBvbmVudHMuTWRzUHJpY2VUYWJsZUZlYXR1cmVzUm93IHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtcHJpY2UtdGFibGUtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1ByaWNlVGFibGVIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNQcmljZVRhYmxlSGVhZGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzUHJpY2VUYWJsZUhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuTWRzUHJpY2VUYWJsZUhlYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXByaWNlLXRhYmxlLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzUHJpY2VUYWJsZUxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNQcmljZVRhYmxlTGlzdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1ByaWNlVGFibGVMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5NZHNQcmljZVRhYmxlTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzdXBwb3J0ZWQnLCAndHlwb2dyYXBoeSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXByaWNlLXRhYmxlLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3VwcG9ydGVkJywgJ3R5cG9ncmFwaHknXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzUHJpY2VUYWJsZUxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzUHJpY2VUYWJsZUxpc3RJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzUHJpY2VUYWJsZUxpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNQcmljZVRhYmxlTGlzdEl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlyZWN0aW9uJywgJ3Byb2dyZXNzJywgJ3NpemUnLCAnc3RlcHMnLCAndHlwb2dyYXBoeScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtcHJvZ3Jlc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RpcmVjdGlvbicsICdwcm9ncmVzcycsICdzaXplJywgJ3N0ZXBzJywgJ3R5cG9ncmFwaHknLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNQcm9ncmVzcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1Byb2dyZXNzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzUHJvZ3Jlc3MgZXh0ZW5kcyBDb21wb25lbnRzLk1kc1Byb2dyZXNzIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JlaGF2aW9yJywgJ3Zpc2libGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAncmVtb3ZlTm90aWZpY2F0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtcHVzaC1ub3RpZmljYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JlaGF2aW9yJywgJ3Zpc2libGUnXSxcbiAgb3V0cHV0czogWydtZHNQdXNoTm90aWZpY2F0aW9uQ2hhbmdlJywgJ21kc1B1c2hOb3RpZmljYXRpb25TaG93JywgJ21kc1B1c2hOb3RpZmljYXRpb25IaWRlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1B1c2hOb3RpZmljYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNQdXNoTm90aWZpY2F0aW9uRWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc1B1c2hOb3RpZmljYXRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNQdXNoTm90aWZpY2F0aW9uTWRzUHVzaE5vdGlmaWNhdGlvbkV2ZW50RGV0YWlsPj4oKTtcbiAgQE91dHB1dCgpIG1kc1B1c2hOb3RpZmljYXRpb25TaG93ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj4oKTtcbiAgQE91dHB1dCgpIG1kc1B1c2hOb3RpZmljYXRpb25IaWRlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kc1B1c2hOb3RpZmljYXRpb25FdmVudERldGFpbCBhcyBJTWRzUHVzaE5vdGlmaWNhdGlvbk1kc1B1c2hOb3RpZmljYXRpb25FdmVudERldGFpbCB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1B1c2hOb3RpZmljYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLk1kc1B1c2hOb3RpZmljYXRpb24ge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IHZpc2liaWxpdHkgY2hhbmdlc1xuICAgKi9cbiAgbWRzUHVzaE5vdGlmaWNhdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNQdXNoTm90aWZpY2F0aW9uTWRzUHVzaE5vdGlmaWNhdGlvbkV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjb21wb25lbnQgaXMgc2hvd25cbiAgICovXG4gIG1kc1B1c2hOb3RpZmljYXRpb25TaG93OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIGhpZGRlblxuICAgKi9cbiAgbWRzUHVzaE5vdGlmaWNhdGlvbkhpZGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RhdGVGb3JtYXQnLCAnZGF0ZXRpbWUnLCAnZGVsZXRhYmxlJywgJ2ljb24nLCAnaW5pdGlhbHMnLCAnbWVzc2FnZScsICdwcmV2aWV3JywgJ3NyYycsICdzdWJqZWN0JywgJ3RvbmUnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZUxhbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1wdXNoLW5vdGlmaWNhdGlvbi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXRlRm9ybWF0JywgJ2RhdGV0aW1lJywgJ2RlbGV0YWJsZScsICdpY29uJywgJ2luaXRpYWxzJywgJ21lc3NhZ2UnLCAncHJldmlldycsICdzcmMnLCAnc3ViamVjdCcsICd0b25lJywgJ3ZhcmlhbnQnXSxcbiAgb3V0cHV0czogWydtZHNQdXNoTm90aWZpY2F0aW9uSXRlbUNsb3NlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1B1c2hOb3RpZmljYXRpb25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzUHVzaE5vdGlmaWNhdGlvbkl0ZW1FbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzUHVzaE5vdGlmaWNhdGlvbkl0ZW1DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc1B1c2hOb3RpZmljYXRpb25JdGVtTWRzUHVzaE5vdGlmaWNhdGlvbkl0ZW1FdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNQdXNoTm90aWZpY2F0aW9uSXRlbUV2ZW50RGV0YWlsIGFzIElNZHNQdXNoTm90aWZpY2F0aW9uSXRlbU1kc1B1c2hOb3RpZmljYXRpb25JdGVtRXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNQdXNoTm90aWZpY2F0aW9uSXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRzUHVzaE5vdGlmaWNhdGlvbkl0ZW0ge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNsb3NlZFxuICAgKi9cbiAgbWRzUHVzaE5vdGlmaWNhdGlvbkl0ZW1DbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNQdXNoTm90aWZpY2F0aW9uSXRlbU1kc1B1c2hOb3RpZmljYXRpb25JdGVtRXZlbnREZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndGFnJywgJ3R5cG9ncmFwaHknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1xdW90ZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndGFnJywgJ3R5cG9ncmFwaHknXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzUXVvdGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNRdW90ZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1F1b3RlIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNRdW90ZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmdsZUVuZCcsICdhbmdsZVN0YXJ0JywgJ2JhY2tkcm9wJywgJ2RpcmVjdGlvbicsICdkaXNjJywgJ2ljb24nLCAnaW50ZXJhY3Rpb24nLCAnb3BlbmVkJywgJ3JhZGl1cycsICdzaXplJywgJ3RvbmUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXJhZGlhbC1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmdsZUVuZCcsICdhbmdsZVN0YXJ0JywgJ2JhY2tkcm9wJywgJ2RpcmVjdGlvbicsICdkaXNjJywgJ2ljb24nLCAnaW50ZXJhY3Rpb24nLCAnb3BlbmVkJywgJ3JhZGl1cycsICdzaXplJywgJ3RvbmUnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNSYWRpYWxNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzUmFkaWFsTWVudUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1JhZGlhbE1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLk1kc1JhZGlhbE1lbnUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvbicsICdzaXplJywgJ3RvbmUnLCAndG9vbHRpcCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtcmFkaWFsLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvbicsICdzaXplJywgJ3RvbmUnLCAndG9vbHRpcCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1JhZGlhbE1lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzUmFkaWFsTWVudUl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNSYWRpYWxNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRzUmFkaWFsTWVudUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvbicsICdwcm9ncmVzcycsICd0eXBvZ3JhcGh5JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1yYWRpYWwtcHJvZ3Jlc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb24nLCAncHJvZ3Jlc3MnLCAndHlwb2dyYXBoeScsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1JhZGlhbFByb2dyZXNzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzUmFkaWFsUHJvZ3Jlc3NFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNSYWRpYWxQcm9ncmVzcyBleHRlbmRzIENvbXBvbmVudHMuTWRzUmFkaWFsUHJvZ3Jlc3Mge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy1zZXBhcmF0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzU2VwYXJhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzU2VwYXJhdG9yRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzU2VwYXJhdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNTZXBhcmF0b3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncnVubmluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXNwaW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3J1bm5pbmcnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzU3Bpbm5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1NwaW5uZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNTcGlubmVyIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNTcGlubmVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ292ZXJmbG93JywgJ3Bvc2l0aW9uJywgJ3Zpc2libGUnXSxcbiAgbWV0aG9kczogWydoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtc3RhdHVzLWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnb3ZlcmZsb3cnLCAncG9zaXRpb24nLCAndmlzaWJsZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNTdGF0dXNCYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNTdGF0dXNCYXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNTdGF0dXNCYXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kc1N0YXR1c0JhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtc0RvbmUnLCAnbmF2aWdhdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXN0ZXBwZXItYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpdGVtc0RvbmUnLCAnbmF2aWdhdGlvbiddLFxuICBvdXRwdXRzOiBbJ21kc1N0ZXBwZXJCYXJDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzU3RlcHBlckJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1N0ZXBwZXJCYXJFbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzU3RlcHBlckJhckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc1N0ZXBwZXJCYXJNZHNTdGVwcGVyQmFyRXZlbnREZXRhaWw+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRzU3RlcHBlckJhckV2ZW50RGV0YWlsIGFzIElNZHNTdGVwcGVyQmFyTWRzU3RlcHBlckJhckV2ZW50RGV0YWlsIH0gZnJvbSAnQG1hZ2dpb2xpLWRlc2lnbi1zeXN0ZW0vbWFnbWEnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzU3RlcHBlckJhciBleHRlbmRzIENvbXBvbmVudHMuTWRzU3RlcHBlckJhciB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgc3RlcCBpcyBjaGFuZ2VkXG4gICAqL1xuICBtZHNTdGVwcGVyQmFyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc1N0ZXBwZXJCYXJNZHNTdGVwcGVyQmFyRXZlbnREZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFkZ2UnLCAnY3VycmVudCcsICdkb25lJywgJ2ljb24nLCAnaWNvbkNoZWNrZWQnLCAnbGFiZWwnLCAnc3RlcCcsICd0eXBvZ3JhcGh5JywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsndXBkYXRlTGFuZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXN0ZXBwZXItYmFyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhZGdlJywgJ2N1cnJlbnQnLCAnZG9uZScsIHsgbmFtZTogJ2ljb24nLCByZXF1aXJlZDogdHJ1ZSB9LCAnaWNvbkNoZWNrZWQnLCB7IG5hbWU6ICdsYWJlbCcsIHJlcXVpcmVkOiB0cnVlIH0sICdzdGVwJywgJ3R5cG9ncmFwaHknLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydtZHNTdGVwcGVyQmFySXRlbURvbmUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzU3RlcHBlckJhckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNTdGVwcGVyQmFySXRlbUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNTdGVwcGVyQmFySXRlbURvbmUgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNTdGVwcGVyQmFySXRlbU1kc1N0ZXBwZXJCYXJJdGVtRXZlbnREZXRhaWw+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRzU3RlcHBlckJhckl0ZW1FdmVudERldGFpbCBhcyBJTWRzU3RlcHBlckJhckl0ZW1NZHNTdGVwcGVyQmFySXRlbUV2ZW50RGV0YWlsIH0gZnJvbSAnQG1hZ2dpb2xpLWRlc2lnbi1zeXN0ZW0vbWFnbWEnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzU3RlcHBlckJhckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kc1N0ZXBwZXJCYXJJdGVtIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGFjY29yZGlvbiBpcyBzZWxlY3RlZFxuICAgKi9cbiAgbWRzU3RlcHBlckJhckl0ZW1Eb25lOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc1N0ZXBwZXJCYXJJdGVtTWRzU3RlcHBlckJhckl0ZW1FdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnZGlyZWN0aW9uJywgJ2ZpbGwnLCAnb3ZlcmZsb3cnLCAnc2Nyb2xsYmFyJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy10YWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdkaXJlY3Rpb24nLCAnZmlsbCcsICdvdmVyZmxvdycsICdzY3JvbGxiYXInLCAnc2l6ZSddLFxuICBvdXRwdXRzOiBbJ21kc1RhYkNoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNUYWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNUYWJFbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzVGFiQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzVGFiTWRzVGFiRXZlbnREZXRhaWw+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRzVGFiRXZlbnREZXRhaWwgYXMgSU1kc1RhYk1kc1RhYkV2ZW50RGV0YWlsIH0gZnJvbSAnQG1hZ2dpb2xpLWRlc2lnbi1zeXN0ZW0vbWFnbWEnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzVGFiIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNUYWIge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBhIGNoaWxkcmVuIGlzIGNoYW5nZWRcbiAgICovXG4gIG1kc1RhYkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNUYWJNZHNUYWJFdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXRhYi1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgb3V0cHV0czogWydtZHNUYWJCYXJDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzVGFiQmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzVGFiQmFyRWxlbWVudDtcbiAgQE91dHB1dCgpIG1kc1RhYkJhckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc1RhYkJhck1kc1RhYkJhckV2ZW50RGV0YWlsPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kc1RhYkJhckV2ZW50RGV0YWlsIGFzIElNZHNUYWJCYXJNZHNUYWJCYXJFdmVudERldGFpbCB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1RhYkJhciBleHRlbmRzIENvbXBvbmVudHMuTWRzVGFiQmFyIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSBzdGVwIGlzIGNoYW5nZWRcbiAgICovXG4gIG1kc1RhYkJhckNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNUYWJCYXJNZHNUYWJCYXJFdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJywgJ3NlbGVjdGVkJywgJ3R5cG9ncmFwaHknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy10YWItYmFyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnLCAnc2VsZWN0ZWQnLCAndHlwb2dyYXBoeSddLFxuICBvdXRwdXRzOiBbJ21kc1RhYkJhckl0ZW1TZWxlY3QnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzVGFiQmFySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1RhYkJhckl0ZW1FbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzVGFiQmFySXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzVGFiQmFySXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRzVGFiQmFySXRlbSB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjb21wb25lbnQgaXMgc2VsZWN0ZWRcbiAgICovXG4gIG1kc1RhYkJhckl0ZW1TZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXdhaXQnLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2ljb25Qb3NpdGlvbicsICdsYWJlbCcsICdzZWxlY3RlZCcsICdzaXplJywgJ3R5cGUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy10YWItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXdhaXQnLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2ljb25Qb3NpdGlvbicsICdsYWJlbCcsICdzZWxlY3RlZCcsICdzaXplJywgJ3R5cGUnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydtZHNUYWJJdGVtU2VsZWN0JywgJ21kc1RhYkl0ZW1Gb2N1cyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNUYWJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzVGFiSXRlbUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNUYWJJdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzVGFiSXRlbU1kc1RhYkl0ZW1FdmVudERldGFpbD4+KCk7XG4gIEBPdXRwdXQoKSBtZHNUYWJJdGVtRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNUYWJJdGVtTWRzVGFiSXRlbUV2ZW50RGV0YWlsPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kc1RhYkl0ZW1FdmVudERldGFpbCBhcyBJTWRzVGFiSXRlbU1kc1RhYkl0ZW1FdmVudERldGFpbCB9IGZyb20gJ0BtYWdnaW9saS1kZXNpZ24tc3lzdGVtL21hZ21hJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1RhYkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kc1RhYkl0ZW0ge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgdGFiIGl0ZW0gaXMgc2VsZWN0ZWRcbiAgICovXG4gIG1kc1RhYkl0ZW1TZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzVGFiSXRlbU1kc1RhYkl0ZW1FdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgdGFiIGl0ZW0gaXMgc2VsZWN0ZWRcbiAgICovXG4gIG1kc1RhYkl0ZW1Gb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNUYWJJdGVtTWRzVGFiSXRlbUV2ZW50RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ludGVyYWN0aXZlJywgJ3NlbGVjdGFibGUnLCAnc2VsZWN0aW9uJ10sXG4gIG1ldGhvZHM6IFsndXBkYXRlU2VsZWN0aW9uJywgJ3NlbGVjdEFsbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpbnRlcmFjdGl2ZScsICdzZWxlY3RhYmxlJywgJ3NlbGVjdGlvbiddLFxuICBvdXRwdXRzOiBbJ21kc1RhYmxlU2VsZWN0aW9uQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1RhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzVGFibGVFbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzVGFibGVTZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNUYWJsZU1kc1RhYmxlU2VsZWN0aW9uRXZlbnREZXRhaWw+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRzVGFibGVTZWxlY3Rpb25FdmVudERldGFpbCBhcyBJTWRzVGFibGVNZHNUYWJsZVNlbGVjdGlvbkV2ZW50RGV0YWlsIH0gZnJvbSAnQG1hZ2dpb2xpLWRlc2lnbi1zeXN0ZW0vbWFnbWEnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzVGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLk1kc1RhYmxlIHtcbiAgLyoqXG4gICAqIERpc3BhdGNlcyB3aGVuIGludGVyYWN0aXZlIHByb3BlcnR5IGNoYW5nZXNcbiAgICovXG4gIG1kc1RhYmxlU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc1RhYmxlTWRzVGFibGVTZWxlY3Rpb25FdmVudERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbnRlcmFjdGl2ZScsICdzZWxlY3Rpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy10YWJsZS1ib2R5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpbnRlcmFjdGl2ZScsICdzZWxlY3Rpb24nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzVGFibGVCb2R5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzVGFibGVCb2R5RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzVGFibGVCb2R5IGV4dGVuZHMgQ29tcG9uZW50cy5NZHNUYWJsZUJvZHkge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy10YWJsZS1jZWxsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNUYWJsZUNlbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNUYWJsZUNlbGxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNUYWJsZUNlbGwgZXh0ZW5kcyBDb21wb25lbnRzLk1kc1RhYmxlQ2VsbCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXRhYmxlLWZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNUYWJsZUZvb3RlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1RhYmxlRm9vdGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzVGFibGVGb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kc1RhYmxlRm9vdGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NlbGVjdGFibGUnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVMYW5nJywgJ3NldFNlbGVjdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXRhYmxlLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2VsZWN0YWJsZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNUYWJsZUhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1RhYmxlSGVhZGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzVGFibGVIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kc1RhYmxlSGVhZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RpcmVjdGlvbicsICdsYWJlbCcsICdzb3J0YWJsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXRhYmxlLWhlYWRlci1jZWxsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXJlY3Rpb24nLCAnbGFiZWwnLCAnc29ydGFibGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzVGFibGVIZWFkZXJDZWxsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzVGFibGVIZWFkZXJDZWxsRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzVGFibGVIZWFkZXJDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNUYWJsZUhlYWRlckNlbGwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaW50ZXJhY3RpdmUnLCAnb3ZlcmxheUFjdGlvbnMnLCAnc2VsZWN0YWJsZScsICdzZWxlY3RlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZUxhbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy10YWJsZS1yb3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ludGVyYWN0aXZlJywgJ292ZXJsYXlBY3Rpb25zJywgJ3NlbGVjdGFibGUnLCAnc2VsZWN0ZWQnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzVGFibGVSb3cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNUYWJsZVJvd0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1RhYmxlUm93IGV4dGVuZHMgQ29tcG9uZW50cy5NZHNUYWJsZVJvdyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmltYXRpb24nLCAndGFnJywgJ3RleHQnLCAndHJ1bmNhdGUnLCAndHlwb2dyYXBoeScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtdGV4dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ3RhZycsICd0ZXh0JywgJ3RydW5jYXRlJywgJ3R5cG9ncmFwaHknLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNUZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzVGV4dEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1RleHQgZXh0ZW5kcyBDb21wb25lbnRzLk1kc1RleHQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZHVyYXRpb24nLCAncG9zaXRpb24nLCAndG9uZScsICd2YXJpYW50JywgJ3Zpc2libGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy10b2FzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZHVyYXRpb24nLCAncG9zaXRpb24nLCAndG9uZScsICd2YXJpYW50JywgJ3Zpc2libGUnXSxcbiAgb3V0cHV0czogWydtZHNUb2FzdENsb3NlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1RvYXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzVG9hc3RFbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzVG9hc3RDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1RvYXN0IGV4dGVuZHMgQ29tcG9uZW50cy5NZHNUb2FzdCB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBhY2NvcmRpb24gaXMgb3BlbmVkXG4gICAqL1xuICBtZHNUb2FzdENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvUGxhY2VtZW50JywgJ2ZsaXAnLCAnb2Zmc2V0JywgJ3BsYWNlbWVudCcsICdzaGlmdCcsICdzaGlmdFBhZGRpbmcnLCAnc3RyYXRlZ3knLCAndGFyZ2V0JywgJ3R5cG9ncmFwaHknLCAndmlzaWJsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXRvb2x0aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9QbGFjZW1lbnQnLCAnZmxpcCcsICdvZmZzZXQnLCAncGxhY2VtZW50JywgJ3NoaWZ0JywgJ3NoaWZ0UGFkZGluZycsICdzdHJhdGVneScsIHsgbmFtZTogJ3RhcmdldCcsIHJlcXVpcmVkOiB0cnVlIH0sICd0eXBvZ3JhcGh5JywgJ3Zpc2libGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzVG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1Rvb2x0aXBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNUb29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNUb29sdGlwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnYXBwZWFyYW5jZScsICdhc3luYycsICdleHBhbmRlZCcsICdsYWJlbCcsICd0b2dnbGUnLCAndG9nZ2xlUG9zaXRpb24nLCAndHJ1bmNhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy10cmVlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3Rpb25zJywgJ2FwcGVhcmFuY2UnLCAnYXN5bmMnLCAnZXhwYW5kZWQnLCAnbGFiZWwnLCAndG9nZ2xlJywgJ3RvZ2dsZVBvc2l0aW9uJywgJ3RydW5jYXRlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1RyZWUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNUcmVlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRzVHJlZSBleHRlbmRzIENvbXBvbmVudHMuTWRzVHJlZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3Rpb25zJywgJ2FzeW5jJywgJ2RlcHRoJywgJ2V4cGFuZGVkJywgJ2ljb24nLCAnbGFiZWwnLCAndG9nZ2xlJywgJ3RydW5jYXRlJ10sXG4gIG1ldGhvZHM6IFsndXBkYXRlTGFuZycsICdleHBhbmQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kcy10cmVlLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnYXN5bmMnLCAnZGVwdGgnLCAnZXhwYW5kZWQnLCAnaWNvbicsICdsYWJlbCcsICd0b2dnbGUnLCAndHJ1bmNhdGUnXSxcbiAgb3V0cHV0czogWydtZHNUcmVlSXRlbUV4cGFuZCcsICdtZHNUcmVlSXRlbUNvbGxhcHNlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1RyZWVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzVHJlZUl0ZW1FbGVtZW50O1xuICBAT3V0cHV0KCkgbWRzVHJlZUl0ZW1FeHBhbmQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZHNUcmVlSXRlbU1kc1RyZWVJdGVtRXZlbnREZXRhaWw+PigpO1xuICBAT3V0cHV0KCkgbWRzVHJlZUl0ZW1Db2xsYXBzZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kc1RyZWVJdGVtTWRzVHJlZUl0ZW1FdmVudERldGFpbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZHNUcmVlSXRlbUV2ZW50RGV0YWlsIGFzIElNZHNUcmVlSXRlbU1kc1RyZWVJdGVtRXZlbnREZXRhaWwgfSBmcm9tICdAbWFnZ2lvbGktZGVzaWduLXN5c3RlbS9tYWdtYSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNUcmVlSXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRzVHJlZUl0ZW0ge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGV4cGFuZCBpdCdzIGNoaWxkcmVuIGNvbnRhaW5lclxuICAgKi9cbiAgbWRzVHJlZUl0ZW1FeHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzVHJlZUl0ZW1NZHNUcmVlSXRlbUV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjb21wb25lbnQgYXR0cmlidXRlIHNlbGVjdGVkIGlzIGNoYW5nZWRcbiAgICovXG4gIG1kc1RyZWVJdGVtQ29sbGFwc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRzVHJlZUl0ZW1NZHNUcmVlSXRlbUV2ZW50RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnLCAnbG9hZGluZycsICdzcmMnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVMYW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtdXJsLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnLCAnbG9hZGluZycsIHsgbmFtZTogJ3NyYycsIHJlcXVpcmVkOiB0cnVlIH1dLFxuICBvdXRwdXRzOiBbJ21kc1VybFZpZXdDbG9zZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNVcmxWaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzVXJsVmlld0VsZW1lbnQ7XG4gIEBPdXRwdXQoKSBtZHNVcmxWaWV3Q2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZHNVcmxWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5NZHNVcmxWaWV3IHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNsb3NlIGJ1dHRvbiBpcyBjbGlja2VkXG4gICAqL1xuICBtZHNVcmxWaWV3Q2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsaWFzJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVMYW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtdXNhZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsaWFzJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTWRzVXNhZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNZHNVc2FnZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1VzYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5NZHNVc2FnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvcGxheScsICdsb29wJywgJ211dGVkJywgJ25vaXNlJywgJ3Bvc3RlcicsICdwcmVsb2FkJywgJ3NyYyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWRzLXZpZGVvLXdhbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9wbGF5JywgJ2xvb3AnLCAnbXV0ZWQnLCAnbm9pc2UnLCAncG9zdGVyJywgJ3ByZWxvYWQnLCAnc3JjJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE1kc1ZpZGVvV2FsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1kc1ZpZGVvV2FsbEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1ZpZGVvV2FsbCBleHRlbmRzIENvbXBvbmVudHMuTWRzVmlkZW9XYWxsIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHMtemVybycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBNZHNaZXJvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTWRzWmVyb0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kc1plcm8gZXh0ZW5kcyBDb21wb25lbnRzLk1kc1plcm8ge31cblxuXG4iXX0=