@oiz/stzh-components-angular 3.4.0-beta1 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/stencil-generated/index.mjs +5 -1
- package/esm2022/lib/stencil-generated/proxies.mjs +120 -23
- package/esm2022/stzh-components-angular.module.mjs +3 -3
- package/fesm2022/oiz-stzh-components-angular.mjs +126 -25
- package/fesm2022/oiz-stzh-components-angular.mjs.map +1 -1
- package/lib/stencil-generated/index.d.ts +1 -1
- package/lib/stencil-generated/proxies.d.ts +48 -7
- package/package.json +2 -2
- package/stzh-components-angular.module.d.ts +1 -1
|
@@ -63,11 +63,11 @@ export let StzhActions = class StzhActions {
|
|
|
63
63
|
this.el = r.nativeElement;
|
|
64
64
|
}
|
|
65
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhActions, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhActions, selector: "stzh-actions", inputs: { variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhActions, selector: "stzh-actions", inputs: { spaceBetween: "spaceBetween", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
67
67
|
};
|
|
68
68
|
StzhActions = __decorate([
|
|
69
69
|
ProxyCmp({
|
|
70
|
-
inputs: ['variant']
|
|
70
|
+
inputs: ['spaceBetween', 'variant']
|
|
71
71
|
})
|
|
72
72
|
], StzhActions);
|
|
73
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhActions, decorators: [{
|
|
@@ -77,7 +77,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
77
77
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
78
78
|
template: '<ng-content></ng-content>',
|
|
79
79
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
80
|
-
inputs: ['variant'],
|
|
80
|
+
inputs: ['spaceBetween', 'variant'],
|
|
81
81
|
}]
|
|
82
82
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
83
83
|
export let StzhActionset = class StzhActionset {
|
|
@@ -235,11 +235,11 @@ export let StzhArchivelist = class StzhArchivelist {
|
|
|
235
235
|
proxyOutputs(this, this.el, ['stzhItemClick']);
|
|
236
236
|
}
|
|
237
237
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhArchivelist, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
238
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhArchivelist, selector: "stzh-archivelist", inputs: { items: "items", localization: "localization", showItems: "showItems", stepItems: "stepItems" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
238
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhArchivelist, selector: "stzh-archivelist", inputs: { heading: "heading", headingLevel: "headingLevel", items: "items", localization: "localization", showItems: "showItems", stepItems: "stepItems" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
239
239
|
};
|
|
240
240
|
StzhArchivelist = __decorate([
|
|
241
241
|
ProxyCmp({
|
|
242
|
-
inputs: ['items', 'localization', 'showItems', 'stepItems']
|
|
242
|
+
inputs: ['heading', 'headingLevel', 'items', 'localization', 'showItems', 'stepItems']
|
|
243
243
|
})
|
|
244
244
|
], StzhArchivelist);
|
|
245
245
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhArchivelist, decorators: [{
|
|
@@ -249,7 +249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
249
249
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
250
250
|
template: '<ng-content></ng-content>',
|
|
251
251
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
252
|
-
inputs: ['items', 'localization', 'showItems', 'stepItems'],
|
|
252
|
+
inputs: ['heading', 'headingLevel', 'items', 'localization', 'showItems', 'stepItems'],
|
|
253
253
|
}]
|
|
254
254
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
255
255
|
export let StzhAudio = class StzhAudio {
|
|
@@ -434,11 +434,11 @@ export let StzhCard = class StzhCard {
|
|
|
434
434
|
proxyOutputs(this, this.el, ['stzhClick', 'stzhCollapse', 'stzhSubtitleClick', 'stzhStarClick', 'stzhHeaderActionClick']);
|
|
435
435
|
}
|
|
436
436
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
437
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhCard, selector: "stzh-card", inputs: { analyticsId: "analyticsId", checked: "checked", collapsed: "collapsed", collapsible: "collapsible", disabled: "disabled", footerActions: "footerActions", headerActions: "headerActions", headerActionsBadge: "headerActionsBadge", headerActionsBadgeType: "headerActionsBadgeType", heading: "heading", headingLevel: "headingLevel", hideMovementActions: "hideMovementActions", href: "href", localization: "localization", name: "name", selectable: "selectable", sortableDisabled: "sortableDisabled", starrable: "starrable", starred: "starred", subtitle: "subtitle", subtitleInteractive: "subtitleInteractive", target: "target", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
437
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhCard, selector: "stzh-card", inputs: { analyticsId: "analyticsId", checked: "checked", collapsed: "collapsed", collapsible: "collapsible", disabled: "disabled", footerActions: "footerActions", headerActions: "headerActions", headerActionsBadge: "headerActionsBadge", headerActionsBadgeType: "headerActionsBadgeType", heading: "heading", headingLevel: "headingLevel", hideMovementActions: "hideMovementActions", href: "href", hyphensEnabled: "hyphensEnabled", localization: "localization", name: "name", selectable: "selectable", sortableDisabled: "sortableDisabled", starrable: "starrable", starred: "starred", subtitle: "subtitle", subtitleInteractive: "subtitleInteractive", target: "target", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
438
438
|
};
|
|
439
439
|
StzhCard = __decorate([
|
|
440
440
|
ProxyCmp({
|
|
441
|
-
inputs: ['analyticsId', 'checked', 'collapsed', 'collapsible', 'disabled', 'footerActions', 'headerActions', 'headerActionsBadge', 'headerActionsBadgeType', 'heading', 'headingLevel', 'hideMovementActions', 'href', 'localization', 'name', 'selectable', 'sortableDisabled', 'starrable', 'starred', 'subtitle', 'subtitleInteractive', 'target', 'value', 'variant']
|
|
441
|
+
inputs: ['analyticsId', 'checked', 'collapsed', 'collapsible', 'disabled', 'footerActions', 'headerActions', 'headerActionsBadge', 'headerActionsBadgeType', 'heading', 'headingLevel', 'hideMovementActions', 'href', 'hyphensEnabled', 'localization', 'name', 'selectable', 'sortableDisabled', 'starrable', 'starred', 'subtitle', 'subtitleInteractive', 'target', 'value', 'variant']
|
|
442
442
|
})
|
|
443
443
|
], StzhCard);
|
|
444
444
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhCard, decorators: [{
|
|
@@ -448,7 +448,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
448
448
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
449
449
|
template: '<ng-content></ng-content>',
|
|
450
450
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
451
|
-
inputs: ['analyticsId', 'checked', 'collapsed', 'collapsible', 'disabled', 'footerActions', 'headerActions', 'headerActionsBadge', 'headerActionsBadgeType', 'heading', 'headingLevel', 'hideMovementActions', 'href', 'localization', 'name', 'selectable', 'sortableDisabled', 'starrable', 'starred', 'subtitle', 'subtitleInteractive', 'target', 'value', 'variant'],
|
|
451
|
+
inputs: ['analyticsId', 'checked', 'collapsed', 'collapsible', 'disabled', 'footerActions', 'headerActions', 'headerActionsBadge', 'headerActionsBadgeType', 'heading', 'headingLevel', 'hideMovementActions', 'href', 'hyphensEnabled', 'localization', 'name', 'selectable', 'sortableDisabled', 'starrable', 'starred', 'subtitle', 'subtitleInteractive', 'target', 'value', 'variant'],
|
|
452
452
|
}]
|
|
453
453
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
454
454
|
export let StzhCardNavigation = class StzhCardNavigation {
|
|
@@ -1178,11 +1178,11 @@ export let StzhDropdown = class StzhDropdown {
|
|
|
1178
1178
|
proxyOutputs(this, this.el, ['stzhChange', 'stzhItemAdd', 'stzhItemRemove', 'stzhOptionAdd', 'stzhOptionRemove', 'stzhOpen', 'stzhClose', 'stzhFocus', 'stzhBlur', 'stzhInit']);
|
|
1179
1179
|
}
|
|
1180
1180
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1181
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhDropdown, selector: "stzh-dropdown", inputs: { a11yDescribedby: "a11yDescribedby", allowEmptyOption: "allowEmptyOption", closeAfterSelect: "closeAfterSelect", defaultItems: "defaultItems", description: "description", descriptionLong: "descriptionLong", descriptionLongTitle: "descriptionLongTitle", disabled: "disabled", error: "error", hideOptional: "hideOptional", icon: "icon", iconAngle: "iconAngle", inline: "inline", invalid: "invalid", isOpen: "isOpen", items: "items", label: "label", labelField: "labelField", labelHidden: "labelHidden", load: "load", loadThrottle: "loadThrottle", localization: "localization", lockOptgroupOrder: "lockOptgroupOrder", maxOptions: "maxOptions", minCharacters: "minCharacters", multiple: "multiple", name: "name", noBackspaceDelete: "noBackspaceDelete", noSearch: "noSearch", open: "open", openOnFocus: "openOnFocus", optgroupField: "optgroupField", optgroupLabelField: "optgroupLabelField", optgroupValueField: "optgroupValueField", optgroups: "optgroups", options: "options", popoverFullwidth: "popoverFullwidth", popoverPlacement: "popoverPlacement", preload: "preload", required: "required", searchConjunction: "searchConjunction", searchField: "searchField", size: "size", sizeLarge: "sizeLarge", sizeMedium: "sizeMedium", sizeSmall: "sizeSmall", sizeUltra: "sizeUltra", transformLoadQuery: "transformLoadQuery", value: "value", valueField: "valueField", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1181
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhDropdown, selector: "stzh-dropdown", inputs: { a11yDescribedby: "a11yDescribedby", allowEmptyOption: "allowEmptyOption", closeAfterSelect: "closeAfterSelect", defaultItems: "defaultItems", description: "description", descriptionLong: "descriptionLong", descriptionLongTitle: "descriptionLongTitle", disabled: "disabled", error: "error", hideOptional: "hideOptional", icon: "icon", iconAngle: "iconAngle", inline: "inline", invalid: "invalid", isOpen: "isOpen", items: "items", label: "label", labelField: "labelField", labelHidden: "labelHidden", load: "load", loadThrottle: "loadThrottle", localization: "localization", lockOptgroupOrder: "lockOptgroupOrder", maxOptions: "maxOptions", minCharacters: "minCharacters", multiple: "multiple", name: "name", noBackspaceDelete: "noBackspaceDelete", noLabelTruncate: "noLabelTruncate", noSearch: "noSearch", noWrap: "noWrap", open: "open", openOnFocus: "openOnFocus", optgroupField: "optgroupField", optgroupLabelField: "optgroupLabelField", optgroupValueField: "optgroupValueField", optgroups: "optgroups", options: "options", popoverFullwidth: "popoverFullwidth", popoverPlacement: "popoverPlacement", preload: "preload", required: "required", searchConjunction: "searchConjunction", searchField: "searchField", size: "size", sizeLarge: "sizeLarge", sizeMedium: "sizeMedium", sizeSmall: "sizeSmall", sizeUltra: "sizeUltra", transformLoadQuery: "transformLoadQuery", value: "value", valueField: "valueField", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1182
1182
|
};
|
|
1183
1183
|
StzhDropdown = __decorate([
|
|
1184
1184
|
ProxyCmp({
|
|
1185
|
-
inputs: ['a11yDescribedby', 'allowEmptyOption', 'closeAfterSelect', 'defaultItems', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'icon', 'iconAngle', 'inline', 'invalid', 'isOpen', 'items', 'label', 'labelField', 'labelHidden', 'load', 'loadThrottle', 'localization', 'lockOptgroupOrder', 'maxOptions', 'minCharacters', 'multiple', 'name', 'noBackspaceDelete', 'noSearch', 'open', 'openOnFocus', 'optgroupField', 'optgroupLabelField', 'optgroupValueField', 'optgroups', 'options', 'popoverFullwidth', 'popoverPlacement', 'preload', 'required', 'searchConjunction', 'searchField', 'size', 'sizeLarge', 'sizeMedium', 'sizeSmall', 'sizeUltra', 'transformLoadQuery', 'value', 'valueField', 'variant'],
|
|
1185
|
+
inputs: ['a11yDescribedby', 'allowEmptyOption', 'closeAfterSelect', 'defaultItems', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'icon', 'iconAngle', 'inline', 'invalid', 'isOpen', 'items', 'label', 'labelField', 'labelHidden', 'load', 'loadThrottle', 'localization', 'lockOptgroupOrder', 'maxOptions', 'minCharacters', 'multiple', 'name', 'noBackspaceDelete', 'noLabelTruncate', 'noSearch', 'noWrap', 'open', 'openOnFocus', 'optgroupField', 'optgroupLabelField', 'optgroupValueField', 'optgroups', 'options', 'popoverFullwidth', 'popoverPlacement', 'preload', 'required', 'searchConjunction', 'searchField', 'size', 'sizeLarge', 'sizeMedium', 'sizeSmall', 'sizeUltra', 'transformLoadQuery', 'value', 'valueField', 'variant'],
|
|
1186
1186
|
methods: ['getValue', 'setValue', 'resetLoadedSearches', 'getLoadedSearches', 'getItems', 'loadItems', 'show', 'hide']
|
|
1187
1187
|
})
|
|
1188
1188
|
], StzhDropdown);
|
|
@@ -1193,7 +1193,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1193
1193
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1194
1194
|
template: '<ng-content></ng-content>',
|
|
1195
1195
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1196
|
-
inputs: ['a11yDescribedby', 'allowEmptyOption', 'closeAfterSelect', 'defaultItems', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'icon', 'iconAngle', 'inline', 'invalid', 'isOpen', 'items', 'label', 'labelField', 'labelHidden', 'load', 'loadThrottle', 'localization', 'lockOptgroupOrder', 'maxOptions', 'minCharacters', 'multiple', 'name', 'noBackspaceDelete', 'noSearch', 'open', 'openOnFocus', 'optgroupField', 'optgroupLabelField', 'optgroupValueField', 'optgroups', 'options', 'popoverFullwidth', 'popoverPlacement', 'preload', 'required', 'searchConjunction', 'searchField', 'size', 'sizeLarge', 'sizeMedium', 'sizeSmall', 'sizeUltra', 'transformLoadQuery', 'value', 'valueField', 'variant'],
|
|
1196
|
+
inputs: ['a11yDescribedby', 'allowEmptyOption', 'closeAfterSelect', 'defaultItems', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'icon', 'iconAngle', 'inline', 'invalid', 'isOpen', 'items', 'label', 'labelField', 'labelHidden', 'load', 'loadThrottle', 'localization', 'lockOptgroupOrder', 'maxOptions', 'minCharacters', 'multiple', 'name', 'noBackspaceDelete', 'noLabelTruncate', 'noSearch', 'noWrap', 'open', 'openOnFocus', 'optgroupField', 'optgroupLabelField', 'optgroupValueField', 'optgroups', 'options', 'popoverFullwidth', 'popoverPlacement', 'preload', 'required', 'searchConjunction', 'searchField', 'size', 'sizeLarge', 'sizeMedium', 'sizeSmall', 'sizeUltra', 'transformLoadQuery', 'value', 'valueField', 'variant'],
|
|
1197
1197
|
}]
|
|
1198
1198
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1199
1199
|
export let StzhEditor = class StzhEditor {
|
|
@@ -1268,6 +1268,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1268
1268
|
inputs: ['calendarLabel', 'calendarUrl', 'dateAdapter', 'end', 'items', 'localization', 'monthHeadingLevel', 'start'],
|
|
1269
1269
|
}]
|
|
1270
1270
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1271
|
+
export let StzhFeedreader = class StzhFeedreader {
|
|
1272
|
+
constructor(c, r, z) {
|
|
1273
|
+
this.z = z;
|
|
1274
|
+
c.detach();
|
|
1275
|
+
this.el = r.nativeElement;
|
|
1276
|
+
}
|
|
1277
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhFeedreader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1278
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhFeedreader, selector: "stzh-feedreader", inputs: { description: "description", heading: "heading", headingLevel: "headingLevel", localization: "localization", noItemsLink: "noItemsLink", noItemsText: "noItemsText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1279
|
+
};
|
|
1280
|
+
StzhFeedreader = __decorate([
|
|
1281
|
+
ProxyCmp({
|
|
1282
|
+
inputs: ['description', 'heading', 'headingLevel', 'localization', 'noItemsLink', 'noItemsText']
|
|
1283
|
+
})
|
|
1284
|
+
], StzhFeedreader);
|
|
1285
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhFeedreader, decorators: [{
|
|
1286
|
+
type: Component,
|
|
1287
|
+
args: [{
|
|
1288
|
+
selector: 'stzh-feedreader',
|
|
1289
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1290
|
+
template: '<ng-content></ng-content>',
|
|
1291
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1292
|
+
inputs: ['description', 'heading', 'headingLevel', 'localization', 'noItemsLink', 'noItemsText'],
|
|
1293
|
+
}]
|
|
1294
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1295
|
+
export let StzhFeedreaderItem = class StzhFeedreaderItem {
|
|
1296
|
+
constructor(c, r, z) {
|
|
1297
|
+
this.z = z;
|
|
1298
|
+
c.detach();
|
|
1299
|
+
this.el = r.nativeElement;
|
|
1300
|
+
}
|
|
1301
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhFeedreaderItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1302
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhFeedreaderItem, selector: "stzh-feedreader-item", inputs: { link: "link", target: "target", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1303
|
+
};
|
|
1304
|
+
StzhFeedreaderItem = __decorate([
|
|
1305
|
+
ProxyCmp({
|
|
1306
|
+
inputs: ['link', 'target', 'variant']
|
|
1307
|
+
})
|
|
1308
|
+
], StzhFeedreaderItem);
|
|
1309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhFeedreaderItem, decorators: [{
|
|
1310
|
+
type: Component,
|
|
1311
|
+
args: [{
|
|
1312
|
+
selector: 'stzh-feedreader-item',
|
|
1313
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1314
|
+
template: '<ng-content></ng-content>',
|
|
1315
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1316
|
+
inputs: ['link', 'target', 'variant'],
|
|
1317
|
+
}]
|
|
1318
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1271
1319
|
export let StzhFieldset = class StzhFieldset {
|
|
1272
1320
|
constructor(c, r, z) {
|
|
1273
1321
|
this.z = z;
|
|
@@ -1398,11 +1446,11 @@ export let StzhGeoRefData = class StzhGeoRefData {
|
|
|
1398
1446
|
proxyOutputs(this, this.el, ['stzhOverlayCloseClick']);
|
|
1399
1447
|
}
|
|
1400
1448
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhGeoRefData, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1401
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhGeoRefData, selector: "stzh-geo-ref-data", inputs: { availableTags: "availableTags", baseUrlOverride: "baseUrlOverride", heading: "heading", mapDataUrl: "mapDataUrl", poiDataUrl: "poiDataUrl", resetTag: "resetTag" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1449
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhGeoRefData, selector: "stzh-geo-ref-data", inputs: { availableTags: "availableTags", baseUrlOverride: "baseUrlOverride", heading: "heading", mapDataUrl: "mapDataUrl", poiDataUrl: "poiDataUrl", resetTag: "resetTag", searchIndexFields: "searchIndexFields", searchIndexIdField: "searchIndexIdField" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1402
1450
|
};
|
|
1403
1451
|
StzhGeoRefData = __decorate([
|
|
1404
1452
|
ProxyCmp({
|
|
1405
|
-
inputs: ['availableTags', 'baseUrlOverride', 'heading', 'mapDataUrl', 'poiDataUrl', 'resetTag']
|
|
1453
|
+
inputs: ['availableTags', 'baseUrlOverride', 'heading', 'mapDataUrl', 'poiDataUrl', 'resetTag', 'searchIndexFields', 'searchIndexIdField']
|
|
1406
1454
|
})
|
|
1407
1455
|
], StzhGeoRefData);
|
|
1408
1456
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhGeoRefData, decorators: [{
|
|
@@ -1412,7 +1460,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1412
1460
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1413
1461
|
template: '<ng-content></ng-content>',
|
|
1414
1462
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1415
|
-
inputs: ['availableTags', 'baseUrlOverride', 'heading', 'mapDataUrl', 'poiDataUrl', 'resetTag'],
|
|
1463
|
+
inputs: ['availableTags', 'baseUrlOverride', 'heading', 'mapDataUrl', 'poiDataUrl', 'resetTag', 'searchIndexFields', 'searchIndexIdField'],
|
|
1416
1464
|
}]
|
|
1417
1465
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1418
1466
|
export let StzhGhettobox = class StzhGhettobox {
|
|
@@ -1454,7 +1502,7 @@ export let StzhHeader = class StzhHeader {
|
|
|
1454
1502
|
StzhHeader = __decorate([
|
|
1455
1503
|
ProxyCmp({
|
|
1456
1504
|
inputs: ['appNavItems', 'hideMetabar', 'href', 'languageActive', 'languageId', 'languagePreventUrlchange', 'languageStay', 'languages', 'localization', 'loginErrorMessage', 'logoAnalyticsId', 'logoType', 'menuBackLabel', 'menuId', 'menuItems', 'metanavId', 'metanavItems', 'searchAction', 'searchFieldName', 'searchId', 'searchValue', 'sticky', 'userSpecificMetanavItemsEndpoint', 'userSpecificMetanavItemsNotLoggedIn'],
|
|
1457
|
-
methods: ['updatePosition']
|
|
1505
|
+
methods: ['updatePosition', 'requestUserSpecificMetanavItems']
|
|
1458
1506
|
})
|
|
1459
1507
|
], StzhHeader);
|
|
1460
1508
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhHeader, decorators: [{
|
|
@@ -1643,11 +1691,11 @@ export let StzhInput = class StzhInput {
|
|
|
1643
1691
|
proxyOutputs(this, this.el, ['stzhChange', 'stzhChanged', 'stzhFocus', 'stzhBlur']);
|
|
1644
1692
|
}
|
|
1645
1693
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1646
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhInput, selector: "stzh-input", inputs: { a11yDescribedby: "a11yDescribedby", autocomplete: "autocomplete", clearable: "clearable", defaultValue: "defaultValue", description: "description", descriptionLong: "descriptionLong", descriptionLongTitle: "descriptionLongTitle", disabled: "disabled", error: "error", hideOptional: "hideOptional", inputmode: "inputmode", invalid: "invalid", label: "label", labelHidden: "labelHidden", localization: "localization", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", multiline: "multiline", name: "name", noAutocomplete: "noAutocomplete", readonly: "readonly", required: "required", rows: "rows", showSpin: "showSpin", size: "size", step: "step", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1694
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhInput, selector: "stzh-input", inputs: { a11yDescribedby: "a11yDescribedby", autocomplete: "autocomplete", clearable: "clearable", defaultValue: "defaultValue", description: "description", descriptionLong: "descriptionLong", descriptionLongTitle: "descriptionLongTitle", disabled: "disabled", error: "error", hideOptional: "hideOptional", inputmode: "inputmode", invalid: "invalid", label: "label", labelHidden: "labelHidden", localization: "localization", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", multiline: "multiline", name: "name", noAutocomplete: "noAutocomplete", noLabelTruncate: "noLabelTruncate", readonly: "readonly", required: "required", rows: "rows", showSpin: "showSpin", size: "size", step: "step", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1647
1695
|
};
|
|
1648
1696
|
StzhInput = __decorate([
|
|
1649
1697
|
ProxyCmp({
|
|
1650
|
-
inputs: ['a11yDescribedby', 'autocomplete', 'clearable', 'defaultValue', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'inputmode', 'invalid', 'label', 'labelHidden', 'localization', 'max', 'maxlength', 'min', 'minlength', 'multiline', 'name', 'noAutocomplete', 'readonly', 'required', 'rows', 'showSpin', 'size', 'step', 'type', 'value']
|
|
1698
|
+
inputs: ['a11yDescribedby', 'autocomplete', 'clearable', 'defaultValue', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'inputmode', 'invalid', 'label', 'labelHidden', 'localization', 'max', 'maxlength', 'min', 'minlength', 'multiline', 'name', 'noAutocomplete', 'noLabelTruncate', 'readonly', 'required', 'rows', 'showSpin', 'size', 'step', 'type', 'value']
|
|
1651
1699
|
})
|
|
1652
1700
|
], StzhInput);
|
|
1653
1701
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhInput, decorators: [{
|
|
@@ -1657,7 +1705,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1657
1705
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1658
1706
|
template: '<ng-content></ng-content>',
|
|
1659
1707
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1660
|
-
inputs: ['a11yDescribedby', 'autocomplete', 'clearable', 'defaultValue', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'inputmode', 'invalid', 'label', 'labelHidden', 'localization', 'max', 'maxlength', 'min', 'minlength', 'multiline', 'name', 'noAutocomplete', 'readonly', 'required', 'rows', 'showSpin', 'size', 'step', 'type', 'value'],
|
|
1708
|
+
inputs: ['a11yDescribedby', 'autocomplete', 'clearable', 'defaultValue', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'inputmode', 'invalid', 'label', 'labelHidden', 'localization', 'max', 'maxlength', 'min', 'minlength', 'multiline', 'name', 'noAutocomplete', 'noLabelTruncate', 'readonly', 'required', 'rows', 'showSpin', 'size', 'step', 'type', 'value'],
|
|
1661
1709
|
}]
|
|
1662
1710
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1663
1711
|
export let StzhInvert = class StzhInvert {
|
|
@@ -2167,6 +2215,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2167
2215
|
inputs: ['autoload', 'caption', 'copyright', 'heading', 'localization', 'orientationOnByDefault', 'scene', 'sceneFadeDuration', 'scenes', 'showControls', 'showHotspots'],
|
|
2168
2216
|
}]
|
|
2169
2217
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2218
|
+
export let StzhPoicard = class StzhPoicard {
|
|
2219
|
+
constructor(c, r, z) {
|
|
2220
|
+
this.z = z;
|
|
2221
|
+
c.detach();
|
|
2222
|
+
this.el = r.nativeElement;
|
|
2223
|
+
}
|
|
2224
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhPoicard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2225
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhPoicard, selector: "stzh-poicard", inputs: { item: "item" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2226
|
+
};
|
|
2227
|
+
StzhPoicard = __decorate([
|
|
2228
|
+
ProxyCmp({
|
|
2229
|
+
inputs: ['item']
|
|
2230
|
+
})
|
|
2231
|
+
], StzhPoicard);
|
|
2232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhPoicard, decorators: [{
|
|
2233
|
+
type: Component,
|
|
2234
|
+
args: [{
|
|
2235
|
+
selector: 'stzh-poicard',
|
|
2236
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2237
|
+
template: '<ng-content></ng-content>',
|
|
2238
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2239
|
+
inputs: ['item'],
|
|
2240
|
+
}]
|
|
2241
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2242
|
+
export let StzhPoilist = class StzhPoilist {
|
|
2243
|
+
constructor(c, r, z) {
|
|
2244
|
+
this.z = z;
|
|
2245
|
+
c.detach();
|
|
2246
|
+
this.el = r.nativeElement;
|
|
2247
|
+
}
|
|
2248
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhPoilist, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2249
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhPoilist, selector: "stzh-poilist", inputs: { api: "api", localization: "localization" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2250
|
+
};
|
|
2251
|
+
StzhPoilist = __decorate([
|
|
2252
|
+
ProxyCmp({
|
|
2253
|
+
inputs: ['api', 'localization']
|
|
2254
|
+
})
|
|
2255
|
+
], StzhPoilist);
|
|
2256
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhPoilist, decorators: [{
|
|
2257
|
+
type: Component,
|
|
2258
|
+
args: [{
|
|
2259
|
+
selector: 'stzh-poilist',
|
|
2260
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2261
|
+
template: '<ng-content></ng-content>',
|
|
2262
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2263
|
+
inputs: ['api', 'localization'],
|
|
2264
|
+
}]
|
|
2265
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2170
2266
|
export let StzhPopover = class StzhPopover {
|
|
2171
2267
|
constructor(c, r, z) {
|
|
2172
2268
|
this.z = z;
|
|
@@ -2416,6 +2512,7 @@ export let StzhSaptcha = class StzhSaptcha {
|
|
|
2416
2512
|
this.z = z;
|
|
2417
2513
|
c.detach();
|
|
2418
2514
|
this.el = r.nativeElement;
|
|
2515
|
+
proxyOutputs(this, this.el, ['stzhChange']);
|
|
2419
2516
|
}
|
|
2420
2517
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhSaptcha, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2421
2518
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhSaptcha, selector: "stzh-saptcha", inputs: { disabled: "disabled", error: "error", invalid: "invalid", localization: "localization", name: "name", numbers: "numbers", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -2465,11 +2562,11 @@ export let StzhSearch = class StzhSearch {
|
|
|
2465
2562
|
proxyOutputs(this, this.el, ['stzhOverlayCloseClick']);
|
|
2466
2563
|
}
|
|
2467
2564
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhSearch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2468
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhSearch, selector: "stzh-search", inputs: { api: "api", autofetchAsideFilters: "autofetchAsideFilters", autofetchMainFilters: "autofetchMainFilters", breakout: "breakout", debounceTime: "debounceTime", emptyLinkHref: "emptyLinkHref", emptyLinkLabel: "emptyLinkLabel", emptyText: "emptyText", heading: "heading", hideAsideFilters: "hideAsideFilters", hideMainFilters: "hideMainFilters", initialFetch: "initialFetch", limit: "limit", localization: "localization", preventUpdateUrl: "preventUpdateUrl", resultHeadingLevel: "resultHeadingLevel", templateResult: "templateResult", templateResultWrapperElement: "templateResultWrapperElement", templateResultWrapperProps: "templateResultWrapperProps", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2565
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhSearch, selector: "stzh-search", inputs: { api: "api", autofetchAsideFilters: "autofetchAsideFilters", autofetchMainFilters: "autofetchMainFilters", breakout: "breakout", debounceTime: "debounceTime", emptyLinkHref: "emptyLinkHref", emptyLinkLabel: "emptyLinkLabel", emptyText: "emptyText", heading: "heading", hideAsideFilters: "hideAsideFilters", hideMainFilters: "hideMainFilters", hideResultsHeading: "hideResultsHeading", hyphensEnabled: "hyphensEnabled", initialFetch: "initialFetch", limit: "limit", localization: "localization", preventUpdateUrl: "preventUpdateUrl", resultHeadingLevel: "resultHeadingLevel", subscribeAdditionalQueryParameters: "subscribeAdditionalQueryParameters", subscribeLabel: "subscribeLabel", subscribePath: "subscribePath", templateResult: "templateResult", templateResultWrapperElement: "templateResultWrapperElement", templateResultWrapperProps: "templateResultWrapperProps", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2469
2566
|
};
|
|
2470
2567
|
StzhSearch = __decorate([
|
|
2471
2568
|
ProxyCmp({
|
|
2472
|
-
inputs: ['api', 'autofetchAsideFilters', 'autofetchMainFilters', 'breakout', 'debounceTime', 'emptyLinkHref', 'emptyLinkLabel', 'emptyText', 'heading', 'hideAsideFilters', 'hideMainFilters', 'initialFetch', 'limit', 'localization', 'preventUpdateUrl', 'resultHeadingLevel', 'templateResult', 'templateResultWrapperElement', 'templateResultWrapperProps', 'variant']
|
|
2569
|
+
inputs: ['api', 'autofetchAsideFilters', 'autofetchMainFilters', 'breakout', 'debounceTime', 'emptyLinkHref', 'emptyLinkLabel', 'emptyText', 'heading', 'hideAsideFilters', 'hideMainFilters', 'hideResultsHeading', 'hyphensEnabled', 'initialFetch', 'limit', 'localization', 'preventUpdateUrl', 'resultHeadingLevel', 'subscribeAdditionalQueryParameters', 'subscribeLabel', 'subscribePath', 'templateResult', 'templateResultWrapperElement', 'templateResultWrapperProps', 'variant']
|
|
2473
2570
|
})
|
|
2474
2571
|
], StzhSearch);
|
|
2475
2572
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhSearch, decorators: [{
|
|
@@ -2479,7 +2576,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2479
2576
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2480
2577
|
template: '<ng-content></ng-content>',
|
|
2481
2578
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2482
|
-
inputs: ['api', 'autofetchAsideFilters', 'autofetchMainFilters', 'breakout', 'debounceTime', 'emptyLinkHref', 'emptyLinkLabel', 'emptyText', 'heading', 'hideAsideFilters', 'hideMainFilters', 'initialFetch', 'limit', 'localization', 'preventUpdateUrl', 'resultHeadingLevel', 'templateResult', 'templateResultWrapperElement', 'templateResultWrapperProps', 'variant'],
|
|
2579
|
+
inputs: ['api', 'autofetchAsideFilters', 'autofetchMainFilters', 'breakout', 'debounceTime', 'emptyLinkHref', 'emptyLinkLabel', 'emptyText', 'heading', 'hideAsideFilters', 'hideMainFilters', 'hideResultsHeading', 'hyphensEnabled', 'initialFetch', 'limit', 'localization', 'preventUpdateUrl', 'resultHeadingLevel', 'subscribeAdditionalQueryParameters', 'subscribeLabel', 'subscribePath', 'templateResult', 'templateResultWrapperElement', 'templateResultWrapperProps', 'variant'],
|
|
2483
2580
|
}]
|
|
2484
2581
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2485
2582
|
export let StzhSection = class StzhSection {
|
|
@@ -3357,4 +3454,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3357
3454
|
inputs: ['cookie', 'cookieExpires', 'localization', 'skipPreview', 'skipPreviewIfCookieAccepted', 'url'],
|
|
3358
3455
|
}]
|
|
3359
3456
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
3360
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0emgtY29tcG9uZW50cy1hbmd1bGFyL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvcHJveGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFnQmhFLFdBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7SUFFeEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7K0dBTlUsYUFBYTttR0FBYixhQUFhLDBLQUpkLDJCQUEyQjs7QUFJMUIsYUFBYTtJQVh6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztRQUNoRSxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7S0FDMUIsQ0FBQztHQVFXLGFBQWEsQ0FPekI7NEZBUFksYUFBYTtrQkFQekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUs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LGFBQWEsRUFBRSw2QkFBNkIsRUFBRSxLQUFLLENBQUM7S0FDekcsQ0FBQztHQVFXLFdBQVcsQ0FNdkI7NEZBTlksV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUFFLEtBQUssQ0FBQztpQkFDekciLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2hlYWRpbmcnLCAnbXVsdGlzZWxlY3RhYmxlJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzZXRJdGVtRm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYWNjb3JkaW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdoZWFkaW5nJywgJ211bHRpc2VsZWN0YWJsZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBY2NvcmRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoVmFyaWFudENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvblZhcmlhbnRDaGFuZ2VFdmVudCBhcyBJU3R6aEFjY29yZGlvblN0emhBY2NvcmRpb25WYXJpYW50Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQWNjb3JkaW9uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQWNjb3JkaW9uIHtcbiAgLyoqXG4gICAqIFZhcmlhbnQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoVmFyaWFudENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uU3R6aEFjY29yZGlvblZhcmlhbnRDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb2xsYXBzaWJsZScsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpY29uJywgJ29wZW4nLCAnc3VidGl0bGUnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYWNjb3JkaW9uLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvbGxhcHNpYmxlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnb3BlbicsICdzdWJ0aXRsZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBY2NvcmRpb25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aE9wZW5lZCcsICdzdHpoQ2xvc2UnLCAnc3R6aENsb3NlZCcsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1Gb2N1c0V2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1CbHVyRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQWNjb3JkaW9uSXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjY29yZGlvbkl0ZW0ge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogT3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFjdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFjdGlvbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQWN0aW9ucyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjdGlvbnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aW9ucycsICdsb2NhbGl6YXRpb24nLCAncG9wb3ZlckJ1dHRvblNpemUnLCAncG9wb3ZlckJ1dHRvblZhcmlhbnQnLCAncG9wb3ZlclBsYWNlbWVudCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFjdGlvbnNldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9ucycsICdsb2NhbGl6YXRpb24nLCAncG9wb3ZlckJ1dHRvblNpemUnLCAncG9wb3ZlckJ1dHRvblZhcmlhbnQnLCAncG9wb3ZlclBsYWNlbWVudCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBY3Rpb25zZXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQWN0aW9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBY3Rpb25zZXRJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFjdGlvbnNldFN0emhBY3Rpb25zZXRJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBY3Rpb25zZXQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBY3Rpb25zZXQge1xuICAvKipcbiAgICogSGVhZGVyIGFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY3Rpb25zZXRTdHpoQWN0aW9uc2V0SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NsZWFyYWJsZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heFZhbHVlJywgJ21heFZhbHVlRHJvcGRvd24nLCAnbWluVmFsdWUnLCAnbWluVmFsdWVEcm9wZG93bicsICduYW1lJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFtb3VudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NsZWFyYWJsZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heFZhbHVlJywgJ21heFZhbHVlRHJvcGRvd24nLCAnbWluVmFsdWUnLCAnbWluVmFsdWVEcm9wZG93bicsICduYW1lJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBbW91bnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQW1vdW50Q2hhbmdlRXZlbnQgYXMgSVN0emhBbW91bnRTdHpoQW1vdW50Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQW1vdW50IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQW1vdW50IHtcbiAgLyoqXG4gICAqIEFtb3VudCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFtb3VudFN0emhBbW91bnRDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtcycsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYW5jaG9ybmF2JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpdGVtcycsICdsb2NhbGl6YXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFuY2hvcm5hdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhJdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBbmNob3JuYXZJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFuY2hvcm5hdlN0emhBbmNob3JuYXZJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBbmNob3JuYXYgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBbmNob3JuYXYge1xuICAvKipcbiAgICogSXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQW5jaG9ybmF2U3R6aEFuY2hvcm5hdkl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFwcC1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFwcEJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBcHBCYXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcHBCYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaXRlbXMnLCAnbG9jYWxpemF0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFwcC1uYXYnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXBwTmF2IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEFwcE5hdkl0ZW1DbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQXBwTmF2U3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFwcE5hdiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFwcE5hdiB7XG4gIC8qKlxuICAgKiBBcHBOYXYgaXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEFwcE5hdkl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXBwTmF2U3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwcG9pbnRtZW50cycsICdhcHBvaW50bWVudHNUaXRsZScsICdjYWxlbmRhclRpdGxlJywgJ2N1cnJlbnREYXRlJywgJ2RhdGVBZGFwdGVyJywgJ2Rpc2FibGVTb3J0JywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3Nob3dJdGVtcycsICdzb3J0QnknLCAnc3RlcEl0ZW1zJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFwcG9pbnRtZW50cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwb2ludG1lbnRzJywgJ2FwcG9pbnRtZW50c1RpdGxlJywgJ2NhbGVuZGFyVGl0bGUnLCAnY3VycmVudERhdGUnLCAnZGF0ZUFkYXB0ZXInLCAnZGlzYWJsZVNvcnQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnc2hvd0l0ZW1zJywgJ3NvcnRCeScsICdzdGVwSXRlbXMnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFwcG9pbnRtZW50cyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBcHBvaW50bWVudHNDaGFuZ2VFdmVudCBhcyBJU3R6aEFwcG9pbnRtZW50c1N0emhBcHBvaW50bWVudHNDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBcHBvaW50bWVudHMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcHBvaW50bWVudHMge1xuICAvKipcbiAgICogQXBwb2ludG1lbnRzIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXBwb2ludG1lbnRzU3R6aEFwcG9pbnRtZW50c0NoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFyY2hpdmVsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpdGVtcycsICdsb2NhbGl6YXRpb24nLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXJjaGl2ZWxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSXRlbUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQXJjaGl2ZWxpc3RJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFyY2hpdmVsaXN0U3R6aEFyY2hpdmVsaXN0SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQXJjaGl2ZWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcmNoaXZlbGlzdCB7XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBcmNoaXZlbGlzdFN0emhBcmNoaXZlbGlzdEl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rvd25sb2FkQW5hbHl0aWNzSWQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZWxvYWQnLCAnc3JjJywgJ3RyYW5zY3JpcHQnLCAndHJhbnNjcmlwdEFuYWx5dGljc0lkJywgJ3RyYW5zY3JpcHRTaG93biddLFxuICBtZXRob2RzOiBbJ3BsYXknLCAncGF1c2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYXVkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rvd25sb2FkQW5hbHl0aWNzSWQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZWxvYWQnLCAnc3JjJywgJ3RyYW5zY3JpcHQnLCAndHJhbnNjcmlwdEFuYWx5dGljc0lkJywgJ3RyYW5zY3JpcHRTaG93biddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXVkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoUGxheScsICdzdHpoUGxheWluZycsICdzdHpoUGF1c2UnLCAnc3R6aFJlcGxheScsICdzdHpoRW5kJywgJ3N0emhFbmRlZCcsICdzdHpoRXJyb3InXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb1BsYXlFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9QbGF5aW5nRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb1BsYXlpbmdFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvUGF1c2VFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvUGF1c2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvUmVwbGF5RXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb1JlcGxheUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9FbmRFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvRW5kRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb0VuZGVkRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb0VuZGVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb0Vycm9yRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb0Vycm9yRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQXVkaW8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBdWRpbyB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBwYXVzZWQgcHJvcGVydHkgaXMgY2hhbmdlZCBmcm9tIHRydWUgdG8gZmFsc2UsIGFzIGEgcmVzdWx0IG9mIHRoZSBwbGF5KCkgbWV0aG9kLCBvciB0aGUgYXV0b3BsYXkgYXR0cmlidXRlLlxuICAgKi9cbiAgc3R6aFBsYXk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHBsYXliYWNrIGlzIHJlYWR5IHRvIHN0YXJ0IGFmdGVyIGhhdmluZyBiZWVuIHBhdXNlZCBvciBkZWxheWVkIGR1ZSB0byBsYWNrIG9mIGRhdGEuXG4gICAqL1xuICBzdHpoUGxheWluZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5aW5nRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYSByZXF1ZXN0IHRvIHBhdXNlIGFuIGFjdGl2aXR5IGlzIGhhbmRsZWQgYW5kIHRoZSBhY3Rpdml0eSBoYXMgZW50ZXJlZCBpdHMgcGF1c2VkIHN0YXRlLCBtb3N0IGNvbW1vbmx5IGFmdGVyIHRoZSBtZWRpYSBoYXMgYmVlbiBwYXVzZWQgdGhyb3VnaCBhIGNhbGwgdG8gdGhlIHBhdXNlKCkgbWV0aG9kLlxuICAgKi9cbiAgc3R6aFBhdXNlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb1BhdXNlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gbWVkaWEgcGxheWJhY2sgc3RhcnRzIGFnYWluIGFmdGVyIGJlaW5nIGluIGFuIGVuZGVkIHN0YXRlLiBUaGlzIGlzIGZpcmVkIHdoZW4gdGhlIGxvb3AgcHJvcGVydHkgaXMgdHJ1ZSBhbmQgbWVkaWEgbG9vcHMsIHdoZXJlYXMgdGhlIHZkcy1wbGF5IGV2ZW50IGlzIG5vdC5cbiAgICovXG4gIHN0emhSZXBsYXk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUmVwbGF5RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIGVhY2ggdGltZSBtZWRpYSBwbGF5YmFjayBoYXMgcmVhY2hlZCB0aGUgZW5kLiBUaGlzIGlzIGZpcmVkIGV2ZW4gaWYgdGhlIGxvb3AgcHJvcGVydHkgaXMgdHJ1ZSwgd2hpY2ggaXMgZ2VuZXJhbGx5IHdoZW4geW91J2QgcmVhY2ggZm9yIHRoaXMgZXZlbnQgb3ZlciB0aGUgTWVkaWFFbmRlZEV2ZW50IGlmIHlvdSB3YW50IHRvIGJlIG5vdGlmaWVkIG9mIG1lZGlhIGxvb3BpbmcuXG4gICAqL1xuICBzdHpoRW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb0VuZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHBsYXliYWNrIG9yIHN0cmVhbWluZyBoYXMgc3RvcHBlZCBiZWNhdXNlIHRoZSBlbmQgb2YgdGhlIG1lZGlhIHdhcyByZWFjaGVkIG9yIGJlY2F1c2Ugbm8gZnVydGhlciBkYXRhIGlzIGF2YWlsYWJsZS4gVGhpcyBpcyBub3QgZmlyZWQgaWYgcGxheWJhY2sgd2lsbCBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmcgYWdhaW4gZHVlIHRvIHRoZSBsb29wIHByb3BlcnR5IGJlaW5nIHRydWUgKHNlZSBNZWRpYVJlcGxheUV2ZW50IGFuZCBNZWRpYUVuZEV2ZW50KS5cbiAgICovXG4gIHN0emhFbmRlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9FbmRlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIG1lZGlhIGxvYWRpbmcgb3IgcGxheWJhY2sgaGFzIGVuY291bnRlcmVkIGFueSBpc3N1ZXMgKGZvciBleGFtcGxlLCBhIG5ldHdvcmsgY29ubmVjdGl2aXR5IHByb2JsZW0pLiBUaGUgZXZlbnQgZGV0YWlsIGNvbnRhaW5zIGEgcG90ZW50aWFsIG1lc3NhZ2UgY29udGFpbmluZyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvciAoZW1wdHkgc3RyaW5nIGlmIG5vdGhpbmcgYXZhaWxhYmxlKSwgYW5kIGEgY29kZSB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyYWwgdHlwZSBvZiBlcnJvciB0aGF0IG9jY3VycmVkLlxuICAgKi9cbiAgc3R6aEVycm9yOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb0Vycm9yRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1iYWRnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQmFkZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQmFkZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCYWRnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlQ2xvc2UnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJhbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQmFubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQmFubmVyT3BlbkV2ZW50IGFzIElTdHpoQmFubmVyU3R6aEJhbm5lck9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJhbm5lckNsb3NlRXZlbnQgYXMgSVN0emhCYW5uZXJTdHpoQmFubmVyQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCYW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCYW5uZXIge1xuICAvKipcbiAgICogQmFubmVyIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCYW5uZXJTdHpoQmFubmVyT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBCYW5uZXIgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQmFubmVyU3R6aEJhbm5lckNsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZXhwYW5kZWQnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYnJlYWRjcnVtYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZXhwYW5kZWQnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJyZWFkY3J1bWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSXRlbUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQnJlYWRjcnVtYkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQnJlYWRjcnVtYlN0emhCcmVhZGNydW1iSXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQnJlYWRjcnVtYiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJyZWFkY3J1bWIge1xuICAvKipcbiAgICogSXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnJlYWRjcnVtYlN0emhCcmVhZGNydW1iSXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlDdXJyZW50JywgJ2ExMXlEZXNjcmliZWRieScsICdhMTF5RGlzYWJsZWQnLCAnYTExeUV4cGFuZGVkJywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VQb3NpdGlvbicsICdiYWRnZVR5cGUnLCAnYnV0dG9uQWNjZXNza2V5JywgJ2J1dHRvbklkJywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZWZmZWN0JywgJ2Z1bGx3aWR0aCcsICdocmVmJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ25vSHlwaGVuYXRpb24nLCAnbm9QYWRkaW5nTGVmdCcsICdub1BhZGRpbmdSaWdodCcsICdyZWwnLCAncm91bmRlZCcsICdzaG93VG9nZ2xlSWNvbicsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdidXR0b25BY2Nlc3NrZXknLCAnYnV0dG9uSWQnLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdlZmZlY3QnLCAnZnVsbHdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbm9IeXBoZW5hdGlvbicsICdub1BhZGRpbmdMZWZ0JywgJ25vUGFkZGluZ1JpZ2h0JywgJ3JlbCcsICdyb3VuZGVkJywgJ3Nob3dUb2dnbGVJY29uJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFsdWUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEZvY3VzJywgJ3N0emhCbHVyJywgJ3N0emhDaGFuZ2UnLCAnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uRm9jdXNFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uQmx1ckV2ZW50IGFzIElTdHpoQnV0dG9uU3R6aEJ1dHRvbkJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkNoYW5nZUV2ZW50IGFzIElTdHpoQnV0dG9uU3R6aEJ1dHRvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uQ2xpY2tFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJ1dHRvbiB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25CbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudCAob25seSBjYWxsZWQgaWYgdHlwZSBpcyByYWRpbylcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYnV0dG9uZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJ1dHRvbmdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJ1dHRvbmdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQnV0dG9uZ3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmlyc3REYXlPZldlZWsnLCAnaXNEYXRlRGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtaW4nLCAnbmV4dE1vbnRoQW5hbHl0aWNzSWQnLCAncHJldk1vbnRoQW5hbHl0aWNzSWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1c2VkRGF5JywgJ3NldERhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FsZW5kYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZpcnN0RGF5T2ZXZWVrJywgJ2lzRGF0ZURpc2FibGVkJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25leHRNb250aEFuYWx5dGljc0lkJywgJ3ByZXZNb250aEFuYWx5dGljc0lkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYWxlbmRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYWxlbmRhckNoYW5nZUV2ZW50IGFzIElTdHpoQ2FsZW5kYXJTdHpoQ2FsZW5kYXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYWxlbmRhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhbGVuZGFyIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIGRhdGUgaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYWxlbmRhclN0emhDYWxlbmRhckNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2NoZWNrZWQnLCAnY29sbGFwc2VkJywgJ2NvbGxhcHNpYmxlJywgJ2Rpc2FibGVkJywgJ2Zvb3RlckFjdGlvbnMnLCAnaGVhZGVyQWN0aW9ucycsICdoZWFkZXJBY3Rpb25zQmFkZ2UnLCAnaGVhZGVyQWN0aW9uc0JhZGdlVHlwZScsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdoaWRlTW92ZW1lbnRBY3Rpb25zJywgJ2hyZWYnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnc2VsZWN0YWJsZScsICdzb3J0YWJsZURpc2FibGVkJywgJ3N0YXJyYWJsZScsICdzdGFycmVkJywgJ3N1YnRpdGxlJywgJ3N1YnRpdGxlSW50ZXJhY3RpdmUnLCAndGFyZ2V0JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnY2hlY2tlZCcsICdjb2xsYXBzZWQnLCAnY29sbGFwc2libGUnLCAnZGlzYWJsZWQnLCAnZm9vdGVyQWN0aW9ucycsICdoZWFkZXJBY3Rpb25zJywgJ2hlYWRlckFjdGlvbnNCYWRnZScsICdoZWFkZXJBY3Rpb25zQmFkZ2VUeXBlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hpZGVNb3ZlbWVudEFjdGlvbnMnLCAnaHJlZicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdzZWxlY3RhYmxlJywgJ3NvcnRhYmxlRGlzYWJsZWQnLCAnc3RhcnJhYmxlJywgJ3N0YXJyZWQnLCAnc3VidGl0bGUnLCAnc3VidGl0bGVJbnRlcmFjdGl2ZScsICd0YXJnZXQnLCAndmFsdWUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljaycsICdzdHpoQ29sbGFwc2UnLCAnc3R6aFN1YnRpdGxlQ2xpY2snLCAnc3R6aFN0YXJDbGljaycsICdzdHpoSGVhZGVyQWN0aW9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkQ29sbGFwc2VFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZENvbGxhcHNlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkU3VidGl0bGVDbGlja0V2ZW50IGFzIElTdHpoQ2FyZFN0emhDYXJkU3VidGl0bGVDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFN0YXJDbGlja0V2ZW50IGFzIElTdHpoQ2FyZFN0emhDYXJkU3RhckNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkSGVhZGVyQWN0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZEhlYWRlckFjdGlvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmQge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgKGlmIGhyZWYgaXMgdXNlZClcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogQ29sbGFwc2UgZXZlbnRcbiAgICovXG4gIHN0emhDb2xsYXBzZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkQ29sbGFwc2VFdmVudD4+O1xuICAvKipcbiAgICogU3VidGl0bGUgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhTdWJ0aXRsZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRTdWJ0aXRsZUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN0YXIgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhTdGFyQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZFN0YXJDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBIZWFkZXIgYWN0aW9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSGVhZGVyQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZEhlYWRlckFjdGlvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdsZWFkJywgJ3RhcmdldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkLW5hdmlnYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnbGVhZCcsICd0YXJnZXQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmROYXZpZ2F0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZE5hdmlnYXRpb25DbGlja0V2ZW50IGFzIElTdHpoQ2FyZE5hdmlnYXRpb25TdHpoQ2FyZE5hdmlnYXRpb25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmROYXZpZ2F0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FyZE5hdmlnYXRpb24ge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgKGlmIGhyZWYgaXMgdXNlZClcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZE5hdmlnYXRpb25TdHpoQ2FyZE5hdmlnYXRpb25DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3NlcnZpY2UnLCAndGFnJywgJ3RhcmdldCcsICd0b3BpYyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkLXNlYXJjaHJlc3VsdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYnJlYWRjcnVtYkl0ZW1zJywgJ2RhdGFsaXN0SXRlbXMnLCAnZGF0ZUFkYXB0ZXInLCAnZGF0ZWxpbmUnLCAnZGVzY3JpcHRpb24nLCAnZG93bmxvYWQnLCAnZG93bmxvYWRIZWFkaW5nJywgJ2Rvd25sb2FkTWV0YScsICdldmVudERhdGVFbmQnLCAnZXZlbnREYXRlU3RhcnQnLCAnZXZlbnRMb2NhdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2ltYWdlUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAnc2VydmljZScsICd0YWcnLCAndGFyZ2V0JywgJ3RvcGljJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJkU2VhcmNocmVzdWx0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFNlYXJjaHJlc3VsdENsaWNrRXZlbnQgYXMgSVN0emhDYXJkU2VhcmNocmVzdWx0U3R6aENhcmRTZWFyY2hyZXN1bHRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRTZWFyY2hyZXN1bHQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJkU2VhcmNocmVzdWx0IHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IChpZiBocmVmIGlzIHVzZWQpXG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTZWFyY2hyZXN1bHRTdHpoQ2FyZFNlYXJjaHJlc3VsdENsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYnJlYWRjcnVtYkl0ZW1zJywgJ2RhdGFsaXN0SXRlbXMnLCAnZGF0ZUFkYXB0ZXInLCAnZGF0ZWxpbmUnLCAnZGVzY3JpcHRpb24nLCAnZG93bmxvYWQnLCAnZG93bmxvYWRIZWFkaW5nJywgJ2Rvd25sb2FkTWV0YScsICdldmVudERhdGVFbmQnLCAnZXZlbnREYXRlU3RhcnQnLCAnZXZlbnRMb2NhdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2ltYWdlUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAnc2VydmljZScsICd0YWcnLCAndGFyZ2V0JywgJ3RvcGljJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcmQtc3VwZXJ0ZWFzZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3NlcnZpY2UnLCAndGFnJywgJ3RhcmdldCcsICd0b3BpYyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZFN1cGVydGVhc2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdXBlcnRlYXNlclN0emhDYXJkU3VwZXJ0ZWFzZXJDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRTdXBlcnRlYXNlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmRTdXBlcnRlYXNlciB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudCAoaWYgaHJlZiBpcyB1c2VkKVxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3VwZXJ0ZWFzZXJTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdsYXlvdXQnLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dUb2dnbGVMaW5rJywgJ3NvcnRhYmxlRGF0YUlkQXR0cmlidXRlJywgJ3NvcnRhYmxlRW5hYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnbGF5b3V0JywgJ2xvY2FsaXphdGlvbicsICdzaG93VG9nZ2xlTGluaycsICdzb3J0YWJsZURhdGFJZEF0dHJpYnV0ZScsICdzb3J0YWJsZUVuYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmRsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENvbGxhcHNlQWxsJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZGxpc3RDb2xsYXBzZUFsbEV2ZW50IGFzIElTdHpoQ2FyZGxpc3RTdHpoQ2FyZGxpc3RDb2xsYXBzZUFsbEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FyZGxpc3Qge1xuICAvKipcbiAgICogQ29sbGFwc2UgYWxsIGV2ZW50XG4gICAqL1xuICBzdHpoQ29sbGFwc2VBbGw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRsaXN0U3R6aENhcmRsaXN0Q29sbGFwc2VBbGxFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvcGxheScsICdhdXRvcGxheVRpbWVvdXQnLCAnZGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ25vUGVlaycsICdub25JbnRlcmFjdGl2ZScsICdwcmV2ZW50QXV0b3BsYXlQYXVzZScsICdwcmV2ZW50QXV0b3BsYXlTdG9wJywgJ3ByZXZlbnRNb3VzZURyYWcnLCAnc2xpZGUnLCAnc2xpZGVzJywgJ3NsaWRlc0xhcmdlJywgJ3NsaWRlc01lZGl1bScsICdzbGlkZXNTbWFsbCcsICdzbGlkZXNVbHRyYScsICd0YWJUaHJvdWdoJywgJ3ZhcmlhbnQnLCAnd2l0aFRyYWNrJ10sXG4gIG1ldGhvZHM6IFsnc2xpZGVUbycsICdzbGlkZVRvUHJldmlvdXMnLCAnc2xpZGVUb05leHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2Fyb3VzZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9wbGF5JywgJ2F1dG9wbGF5VGltZW91dCcsICdkaXNhYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbm9QZWVrJywgJ25vbkludGVyYWN0aXZlJywgJ3ByZXZlbnRBdXRvcGxheVBhdXNlJywgJ3ByZXZlbnRBdXRvcGxheVN0b3AnLCAncHJldmVudE1vdXNlRHJhZycsICdzbGlkZScsICdzbGlkZXMnLCAnc2xpZGVzTGFyZ2UnLCAnc2xpZGVzTWVkaXVtJywgJ3NsaWRlc1NtYWxsJywgJ3NsaWRlc1VsdHJhJywgJ3RhYlRocm91Z2gnLCAndmFyaWFudCcsICd3aXRoVHJhY2snXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcm91c2VsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aFNsaWRlU3RhcnQnLCAnc3R6aFNsaWRlUGFzc2VkJywgJ3N0emhTbGlkZUVuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50IGFzIElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVN0YXJ0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlUGFzc2VkRXZlbnQgYXMgSVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlUGFzc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlRW5kRXZlbnQgYXMgSVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlRW5kRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2Fyb3VzZWwgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJvdXNlbCB7XG4gIC8qKlxuICAgKiBTbGlkZSBzdGFydCBldmVudFxuICAgKi9cbiAgc3R6aFNsaWRlU3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50Pj47XG4gIC8qKlxuICAgKiBTbGlkZSBwYXNzZWQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZVBhc3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVBhc3NlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBTbGlkZSBlbmQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZUVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZUVuZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2FsaWduU2VsZicsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2VsbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxpZ24nLCAnYWxpZ25TZWxmJywgJ3NwYW4nLCAnc3BhbkxhcmdlJywgJ3NwYW5NZWRpdW0nLCAnc3BhblNtYWxsJywgJ3NwYW5VbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2VsbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGFydElkJywgJ2NyZWF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hhcnRJZCcsICdjcmVhdGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hhcnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoZWNrYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoZWNrYm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGVja2JveENoYW5nZUV2ZW50IGFzIElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoZWNrYm94Rm9jdXNFdmVudCBhcyBJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Rm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoZWNrYm94Qmx1ckV2ZW50IGFzIElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDaGVja2JveCB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Q2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Qmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWRDaGVja2JveCcsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2RpcmVjdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlTGVnZW5kJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xlZ2VuZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2ZW50VXBkYXRlUHJvcGVydGllcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGVja2JveGdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkQ2hlY2tib3gnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXJlY3Rpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZUxlZ2VuZCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmVudFVwZGF0ZVByb3BlcnRpZXMnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoZWNrYm94Z3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2hlY2tib3hncm91cENoYW5nZUV2ZW50IGFzIElTdHpoQ2hlY2tib3hncm91cFN0emhDaGVja2JveGdyb3VwQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hlY2tib3hncm91cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoZWNrYm94Z3JvdXAge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveGdyb3VwU3R6aENoZWNrYm94Z3JvdXBDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnY291bnRlcicsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnaW52ZXJ0ZWQnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZhYmxlJywgJ3JlbW92ZUFuYWx5dGljc0lkJywgJ3JlbW92ZUxhYmVsJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdjb3VudGVyJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdpbnZlcnRlZCcsICdsYWJlbCcsICdub25JbnRlcmFjdGl2ZScsICdyZW1vdmFibGUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAncmVtb3ZlTGFiZWwnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0eXBlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aFJlbW92ZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwQ2xpY2tFdmVudCBhcyBJU3R6aENoaXBTdHpoQ2hpcENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwUmVtb3ZlRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBSZW1vdmVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoaXBGb2N1c0V2ZW50IGFzIElTdHpoQ2hpcFN0emhDaGlwRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoaXBCbHVyRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoaXAge1xuICAvKipcbiAgICogQ2hpcCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBDaGlwIHJlbW92ZSBldmVudFxuICAgKi9cbiAgc3R6aFJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBTdHpoQ2hpcEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hpcGdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGlwZ3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcGdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hpcGdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdkYXRhJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ211bHRpcGxlJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hpcHNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2RhdGEnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbXVsdGlwbGUnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2hpcHNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwc2VsZWN0Q2hhbmdlRXZlbnQgYXMgSVN0emhDaGlwc2VsZWN0U3R6aENoaXBzZWxlY3RDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDaGlwc2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hpcHNlbGVjdCB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBzZWxlY3RTdHpoQ2hpcHNlbGVjdENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsYW1wZWQnLCAnZXhwYW5kZWQnLCAnbGluZXMnLCAnbGluZXNMYXJnZScsICdsaW5lc01lZGl1bScsICdsaW5lc1NtYWxsJywgJ2xpbmVzVWx0cmEnLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dFeHBhbmRMaW5rJ10sXG4gIG1ldGhvZHM6IFsndXBkYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNsYW1wJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGFtcGVkJywgJ2V4cGFuZGVkJywgJ2xpbmVzJywgJ2xpbmVzTGFyZ2UnLCAnbGluZXNNZWRpdW0nLCAnbGluZXNTbWFsbCcsICdsaW5lc1VsdHJhJywgJ2xvY2FsaXphdGlvbicsICdzaG93RXhwYW5kTGluayddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2xhbXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xhbXAnLCAnc3R6aEV4cGFuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENsYW1wQ2xhbXBFdmVudCBhcyBJU3R6aENsYW1wU3R6aENsYW1wQ2xhbXBFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENsYW1wRXhwYW5kRXZlbnQgYXMgSVN0emhDbGFtcFN0emhDbGFtcEV4cGFuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENsYW1wIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2xhbXAge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBjbGFtcGluZyBzdGF0ZSBjaGFuZ2VkXG4gICAqL1xuICBzdHpoQ2xhbXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENsYW1wU3R6aENsYW1wQ2xhbXBFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBleHBhbmRpbmcgc3RhdGUgY2hhbmdlZFxuICAgKi9cbiAgc3R6aEV4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2xhbXBTdHpoQ2xhbXBFeHBhbmRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhZGRyZXNzJywgJ2F2YWlsYWJpbGl0eScsICdhdmFpbGFiaWxpdHlUaXRsZScsICdhdmFpbGFiaWxpdHlUaXRsZUxldmVsJywgJ2VtYWlscycsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2F0aW9uJywgJ21haW5IZWFkaW5nJywgJ21haW5IZWFkaW5nTGV2ZWwnLCAnbmFtZScsICduYW1lSGVhZGluZ0xldmVsJywgJ251bWJlcnMnLCAncG9ib3gnLCAncG9ib3hIZWFkaW5nJywgJ3BvYm94TG9jYXRpb24nLCAncG9ib3hQb3N0YWxDb2RlJywgJ3BvYm94VGl0bGUnLCAncG9zdGFsQ29kZScsICdzdHJlZXQnLCAnc3RyZWV0SW5mbycsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRhY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FkZHJlc3MnLCAnYXZhaWxhYmlsaXR5JywgJ2F2YWlsYWJpbGl0eVRpdGxlJywgJ2F2YWlsYWJpbGl0eVRpdGxlTGV2ZWwnLCAnZW1haWxzJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ltYWdlUG9zaXRpb24nLCAnbG9jYXRpb24nLCAnbWFpbkhlYWRpbmcnLCAnbWFpbkhlYWRpbmdMZXZlbCcsICduYW1lJywgJ25hbWVIZWFkaW5nTGV2ZWwnLCAnbnVtYmVycycsICdwb2JveCcsICdwb2JveEhlYWRpbmcnLCAncG9ib3hMb2NhdGlvbicsICdwb2JveFBvc3RhbENvZGUnLCAncG9ib3hUaXRsZScsICdwb3N0YWxDb2RlJywgJ3N0cmVldCcsICdzdHJlZXRJbmZvJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRhY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ29udGFjdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRhY3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaG9iYmllcycsICdqb2J0aXRsZScsICdsb2NhbGl6YXRpb24nLCAncmVzcG9uc2liaWxpdGllcycsICd0cmFpbmluZ3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29udGFjdC1jdicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaG9iYmllcycsICdqb2J0aXRsZScsICdsb2NhbGl6YXRpb24nLCAncmVzcG9uc2liaWxpdGllcycsICd0cmFpbmluZ3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRhY3RDdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDb250YWN0Q3YgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDb250YWN0Q3Yge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbm9NYXJnaW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydub01hcmdpbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwcmV2ZW50RWxlbWVudExheW91dCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ByZXZlbnRFbGVtZW50TGF5b3V0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ29udGVudCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRlbnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncHJldmVudFJlbW92ZU5lc3RlZCcsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNzcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncHJldmVudFJlbW92ZU5lc3RlZCcsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDc3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ3NwYWNlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ3NwYWNlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaHJlZicsICdsYWJlbCcsICdsZWFkJywgJ3N0aWNreURpc2FibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWN0YScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdocmVmJywgJ2xhYmVsJywgJ2xlYWQnLCAnc3RpY2t5RGlzYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEN0YSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDdGFGb2N1c0V2ZW50IGFzIElTdHpoQ3RhU3R6aEN0YUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDdGFCbHVyRXZlbnQgYXMgSVN0emhDdGFTdHpoQ3RhQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ3RhQ2xpY2tFdmVudCBhcyBJU3R6aEN0YVN0emhDdGFDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEN0YSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEN0YSB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEN0YVN0emhDdGFCbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEN0YVN0emhDdGFDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbHVtbnMnLCAnY29sdW1uc0xhcmdlJywgJ2NvbHVtbnNNZWRpdW0nLCAnY29sdW1uc1NtYWxsJywgJ2NvbHVtbnNVbHRyYScsICdkaXJlY3Rpb24nLCAnZGlyZWN0aW9uTGFyZ2UnLCAnZGlyZWN0aW9uTWVkaXVtJywgJ2RpcmVjdGlvblNtYWxsJywgJ2RpcmVjdGlvblVsdHJhJywgJ2l0ZW1zJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydnZXRDdXJyZW50RGlyZWN0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGFsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2x1bW5zJywgJ2NvbHVtbnNMYXJnZScsICdjb2x1bW5zTWVkaXVtJywgJ2NvbHVtbnNTbWFsbCcsICdjb2x1bW5zVWx0cmEnLCAnZGlyZWN0aW9uJywgJ2RpcmVjdGlvbkxhcmdlJywgJ2RpcmVjdGlvbk1lZGl1bScsICdkaXJlY3Rpb25TbWFsbCcsICdkaXJlY3Rpb25VbHRyYScsICdpdGVtcycsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhbGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhWYXJpYW50Q2hhbmdlJywgJ3N0emhEaXJlY3Rpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudCBhcyBJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0VmFyaWFudENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3REaXJlY3Rpb25DaGFuZ2VFdmVudCBhcyBJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0RGlyZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhbGlzdCB7XG4gIC8qKlxuICAgKiBWYXJpYW50IGF0dHJpYnV0ZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhWYXJpYW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRGlyZWN0aW9uIGF0dHJpYnV0ZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhEaXJlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0RGlyZWN0aW9uQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlFeHBhbmRlZCcsICdkb3dubG9hZCcsICdocmVmJywgJ2ljb24nLCAnaWNvbkhyZWYnLCAnaWNvbkxhYmVsJywgJ2ljb25Qb3NpdGlvbicsICdpY29uVG9vbHRpcCcsICdsYWJlbCcsICdsZWFkaW5nSWNvbicsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdyZWwnLCAnc3RhdHVzTGFiZWwnLCAnc3RhdHVzVHlwZScsICd0YXJnZXQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlFeHBhbmRlZCcsICdkb3dubG9hZCcsICdocmVmJywgJ2ljb24nLCAnaWNvbkhyZWYnLCAnaWNvbkxhYmVsJywgJ2ljb25Qb3NpdGlvbicsICdpY29uVG9vbHRpcCcsICdsYWJlbCcsICdsZWFkaW5nSWNvbicsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdyZWwnLCAnc3RhdHVzTGFiZWwnLCAnc3RhdHVzVHlwZScsICd0YXJnZXQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGFsaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhJdGVtQWN0aW9uQ2xpY2snLCAnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3RJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGFsaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGFsaXN0SXRlbSB7XG4gIC8qKlxuICAgKiBJdGVtIGFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1BY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RJdGVtU3R6aERhdGFsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RJdGVtU3R6aERhdGFsaXN0SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YW1lc3NhZ2VsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhbWVzc2FnZWxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YW1lc3NhZ2VsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0YW1lc3NhZ2VsaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnYW5hbHl0aWNzSWQnLCAnZGVzY3JpcHRpb24nLCAnaGVhZGluZycsICdocmVmJywgJ2ljb24nLCAnbG9hZGluZ1N0YXR1cycsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdub25JbnRlcmFjdGl2ZScsICdyZWwnLCAndGFncycsICd0YXJnZXQnLCAndW5yZWFkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGFtZXNzYWdlbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3Rpb25zJywgJ2FuYWx5dGljc0lkJywgJ2Rlc2NyaXB0aW9uJywgJ2hlYWRpbmcnLCAnaHJlZicsICdpY29uJywgJ2xvYWRpbmdTdGF0dXMnLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVsJywgJ3RhZ3MnLCAndGFyZ2V0JywgJ3VucmVhZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljaycsICdzdHpoQWN0aW9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW0ge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogQWN0aW9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sdW1ucycsICdjc3ZEeW5hbWljVHlwaW5nJywgJ2NzdkhlYWRlcicsICdjc3ZVcmwnLCAnZGlzYWJsZU1pbldpZHRoJywgJ2hpZGVDb2x1bW5IZWFkaW5ncycsICdoaWRlU2VhcmNoJywgJ2lkRmllbGQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAncm93SGVhZGVyRmllbGQnLCAncm93cycsICdzaG93TGlzdCcsICdzb3J0QnknLCAnc29ydERpcmVjdGlvbicsICd0YWJsZUxheW91dCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZVNvcnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2x1bW5zJywgJ2NzdkR5bmFtaWNUeXBpbmcnLCAnY3N2SGVhZGVyJywgJ2NzdlVybCcsICdkaXNhYmxlTWluV2lkdGgnLCAnaGlkZUNvbHVtbkhlYWRpbmdzJywgJ2hpZGVTZWFyY2gnLCAnaWRGaWVsZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAncGFnZScsICdwYWdlU2l6ZScsICdyb3dIZWFkZXJGaWVsZCcsICdyb3dzJywgJ3Nob3dMaXN0JywgJ3NvcnRCeScsICdzb3J0RGlyZWN0aW9uJywgJ3RhYmxlTGF5b3V0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhdGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoUm93Q2xpY2snLCAnc3R6aENlbGxDbGljaycsICdzdHpoSGVhZGluZ0NlbGxDbGljaycsICdzdHpoU29ydENsaWNrJywgJ3N0emhTb3J0QnlDaGFuZ2UnLCAnc3R6aFNvcnREaXJlY3Rpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVSb3dDbGlja0V2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVJvd0NsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZUhlYWRpbmdDZWxsQ2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVIZWFkaW5nQ2VsbENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YXRhYmxlU29ydERpcmVjdGlvbkNoYW5nZUV2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnREaXJlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhdGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhdGFibGUge1xuICAvKipcbiAgICogRGF0YXRhYmxlIHJvdyBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aFJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlUm93Q2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIGNlbGwgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIGhlYWRpbmcgY2VsbCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEhlYWRpbmdDZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVIZWFkaW5nQ2VsbENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBzb3J0IGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoU29ydENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBzb3J0IGJ5IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFNvcnRCeUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgc29ydCBkaXJlY3Rpb24gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU29ydERpcmVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnREaXJlY3Rpb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYWxlbmRhcklzRGF0ZURpc2FibGVkJywgJ2NhbGVuZGFyTWF4JywgJ2NhbGVuZGFyTWluJywgJ2RhdGVBZGFwdGVyJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lubGluZScsICdpbnRlcm5hbERhdGVBZGFwdGVyJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldERhdGUnLCAnZ2V0UG9wb3ZlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRlcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYWxlbmRhcklzRGF0ZURpc2FibGVkJywgJ2NhbGVuZGFyTWF4JywgJ2NhbGVuZGFyTWluJywgJ2RhdGVBZGFwdGVyJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lubGluZScsICdpbnRlcm5hbERhdGVBZGFwdGVyJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0ZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRlcGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhEYXRlcGlja2VyU3R6aERhdGVwaWNrZXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRlcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0ZXBpY2tlciB7XG4gIC8qKlxuICAgKiBEYXRlcGlja2VyIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0ZXBpY2tlclN0emhEYXRlcGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICdyYW5nZUxpbmtzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGVyYW5nZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICdyYW5nZUxpbmtzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRlcmFuZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0ZXJhbmdlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0ZXJhbmdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ29wZW4nXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRldGFpbHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29wZW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERldGFpbHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQgYXMgSVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50IGFzIElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGV0YWlscyBleHRlbmRzIENvbXBvbmVudHMuU3R6aERldGFpbHMge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogT3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnYTExeVJvbGUnLCAnY2xvc2VBbmFseXRpY3NJZCcsICdjbG9zZU9uQmFja2Ryb3BDbGljaycsICdjbG9zZU9uRXNjYXBlS2V5JywgJ2hlYWRpbmcnLCAnaGlkZUNsb3NlJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3NpemUnLCAnc3RheSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kaWFsb2cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdhMTF5Um9sZScsICdjbG9zZUFuYWx5dGljc0lkJywgJ2Nsb3NlT25CYWNrZHJvcENsaWNrJywgJ2Nsb3NlT25Fc2NhcGVLZXknLCAnaGVhZGluZycsICdoaWRlQ2xvc2UnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAnc2l6ZScsICdzdGF5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEaWFsb2cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEaWFsb2dPcGVuRXZlbnQgYXMgSVN0emhEaWFsb2dTdHpoRGlhbG9nT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGlhbG9nQ2xvc2VFdmVudCBhcyBJU3R6aERpYWxvZ1N0emhEaWFsb2dDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERpYWxvZyBleHRlbmRzIENvbXBvbmVudHMuU3R6aERpYWxvZyB7XG4gIC8qKlxuICAgKiBEaWFsb2cgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpYWxvZ1N0emhEaWFsb2dPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpYWxvZyBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaWFsb2dTdHpoRGlhbG9nQ2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zZUtleScsICdoaWRlQ2xvc2UnLCAnaW5pdGlhbE9wZW5BbmltYXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGlzdHVyYmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbG9zZUtleScsICdoaWRlQ2xvc2UnLCAnaW5pdGlhbE9wZW5BbmltYXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERpc3R1cmJlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJPcGVuRXZlbnQgYXMgSVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGlzdHVyYmVyT3BlbmVkRXZlbnQgYXMgSVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJDbG9zZUV2ZW50IGFzIElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJDbG9zZWRFdmVudCBhcyBJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEaXN0dXJiZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEaXN0dXJiZXIge1xuICAvKipcbiAgICogRGlzdHVyYmVyIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXN0dXJiZXIgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpc3R1cmJlciBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogRGlzdHVyYmVyIGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhbGxvd0VtcHR5T3B0aW9uJywgJ2Nsb3NlQWZ0ZXJTZWxlY3QnLCAnZGVmYXVsdEl0ZW1zJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaWNvbicsICdpY29uQW5nbGUnLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnaXNPcGVuJywgJ2l0ZW1zJywgJ2xhYmVsJywgJ2xhYmVsRmllbGQnLCAnbGFiZWxIaWRkZW4nLCAnbG9hZCcsICdsb2FkVGhyb3R0bGUnLCAnbG9jYWxpemF0aW9uJywgJ2xvY2tPcHRncm91cE9yZGVyJywgJ21heE9wdGlvbnMnLCAnbWluQ2hhcmFjdGVycycsICdtdWx0aXBsZScsICduYW1lJywgJ25vQmFja3NwYWNlRGVsZXRlJywgJ25vU2VhcmNoJywgJ29wZW4nLCAnb3Blbk9uRm9jdXMnLCAnb3B0Z3JvdXBGaWVsZCcsICdvcHRncm91cExhYmVsRmllbGQnLCAnb3B0Z3JvdXBWYWx1ZUZpZWxkJywgJ29wdGdyb3VwcycsICdvcHRpb25zJywgJ3BvcG92ZXJGdWxsd2lkdGgnLCAncG9wb3ZlclBsYWNlbWVudCcsICdwcmVsb2FkJywgJ3JlcXVpcmVkJywgJ3NlYXJjaENvbmp1bmN0aW9uJywgJ3NlYXJjaEZpZWxkJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0cmFuc2Zvcm1Mb2FkUXVlcnknLCAndmFsdWUnLCAndmFsdWVGaWVsZCcsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnZ2V0VmFsdWUnLCAnc2V0VmFsdWUnLCAncmVzZXRMb2FkZWRTZWFyY2hlcycsICdnZXRMb2FkZWRTZWFyY2hlcycsICdnZXRJdGVtcycsICdsb2FkSXRlbXMnLCAnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRyb3Bkb3duJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYWxsb3dFbXB0eU9wdGlvbicsICdjbG9zZUFmdGVyU2VsZWN0JywgJ2RlZmF1bHRJdGVtcycsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ljb24nLCAnaWNvbkFuZ2xlJywgJ2lubGluZScsICdpbnZhbGlkJywgJ2lzT3BlbicsICdpdGVtcycsICdsYWJlbCcsICdsYWJlbEZpZWxkJywgJ2xhYmVsSGlkZGVuJywgJ2xvYWQnLCAnbG9hZFRocm90dGxlJywgJ2xvY2FsaXphdGlvbicsICdsb2NrT3B0Z3JvdXBPcmRlcicsICdtYXhPcHRpb25zJywgJ21pbkNoYXJhY3RlcnMnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdub0JhY2tzcGFjZURlbGV0ZScsICdub1NlYXJjaCcsICdvcGVuJywgJ29wZW5PbkZvY3VzJywgJ29wdGdyb3VwRmllbGQnLCAnb3B0Z3JvdXBMYWJlbEZpZWxkJywgJ29wdGdyb3VwVmFsdWVGaWVsZCcsICdvcHRncm91cHMnLCAnb3B0aW9ucycsICdwb3BvdmVyRnVsbHdpZHRoJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncHJlbG9hZCcsICdyZXF1aXJlZCcsICdzZWFyY2hDb25qdW5jdGlvbicsICdzZWFyY2hGaWVsZCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndHJhbnNmb3JtTG9hZFF1ZXJ5JywgJ3ZhbHVlJywgJ3ZhbHVlRmllbGQnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJywgJ3N0emhJdGVtQWRkJywgJ3N0emhJdGVtUmVtb3ZlJywgJ3N0emhPcHRpb25BZGQnLCAnc3R6aE9wdGlvblJlbW92ZScsICdzdHpoT3BlbicsICdzdHpoQ2xvc2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJywgJ3N0emhJbml0J10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25DaGFuZ2VFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkl0ZW1BZGRFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duSXRlbUFkZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1SZW1vdmVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duT3B0aW9uQWRkRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wdGlvbkFkZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25PcHRpb25SZW1vdmVFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bk9wZW5FdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd0Nsb3NlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93Q2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duRm9jdXNFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duQmx1ckV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93SW5pdEV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0luaXRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuU3R6aERyb3Bkb3duIHtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gaXRlbSBhZGRlZCBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1BZGQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duSXRlbUFkZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBpdGVtIHJlbW92ZWQgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtUmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1SZW1vdmVFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gb3B0aW9uIGFkZGVkIGV2ZW50XG4gICAqL1xuICBzdHpoT3B0aW9uQWRkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wdGlvbkFkZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBvcHRpb24gcmVtb3ZlZCBldmVudFxuICAgKi9cbiAgc3R6aE9wdGlvblJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25SZW1vdmVFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93Q2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gZm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25CbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoSW5pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0luaXRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1lZGl0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhFZGl0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRWRpdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRWRpdG9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWV2ZW50ZGF0YScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEV2ZW50ZGF0YSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhFdmVudGRhdGEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhFdmVudGRhdGEge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FsZW5kYXJMYWJlbCcsICdjYWxlbmRhclVybCcsICdkYXRlQWRhcHRlcicsICdlbmQnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ21vbnRoSGVhZGluZ0xldmVsJywgJ3N0YXJ0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWV2ZW50aW5mbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FsZW5kYXJMYWJlbCcsICdjYWxlbmRhclVybCcsICdkYXRlQWRhcHRlcicsICdlbmQnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ21vbnRoSGVhZGluZ0xldmVsJywgJ3N0YXJ0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhFdmVudGluZm8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRXZlbnRpbmZvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRXZlbnRpbmZvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVMZWdlbmQnLCAnbGVnZW5kJywgJ2xlZ2VuZEN1cnZlJywgJ2xlZ2VuZExldmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWZpZWxkc2V0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlTGVnZW5kJywgJ2xlZ2VuZCcsICdsZWdlbmRDdXJ2ZScsICdsZWdlbmRMZXZlbCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmllbGRzZXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRmllbGRzZXQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGaWVsZHNldCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdjb3VudGVyJywgJ2Z1bGx3aWR0aCcsICdoZWFkaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWZpZ3VyZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FwdGlvbicsICdjb3B5cmlnaHQnLCAnY291bnRlcicsICdmdWxsd2lkdGgnLCAnaGVhZGluZyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmlndXJlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZpZ3VyZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEZpZ3VyZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydtaW5pbWFsRWRnZVNwYWNlJ10sXG4gIG1ldGhvZHM6IFsncmVwb3NpdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1mbHlpbmdmb2N1cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbWluaW1hbEVkZ2VTcGFjZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmx5aW5nZm9jdXMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRmx5aW5nZm9jdXMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGbHlpbmdmb2N1cyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb3B5cmlnaHQnLCAnbG9jYWxpemF0aW9uJywgJ21haW5VcmwnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1mb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvcHlyaWdodCcsICdsb2NhbGl6YXRpb24nLCAnbWFpblVybCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRm9vdGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nhcm91c2VsQXV0b3BsYXknLCAnY2Fyb3VzZWxBdXRvcGxheVRpbWVvdXQnLCAnY2Fyb3VzZWxEaXNhYmxlZCcsICdjYXJvdXNlbFdpdGhUcmFjaycsICdleGNsdWRlRmlyc3RJbWFnZScsICdpbWFnZXMnLCAnaXRlbUVsZW1lbnQnLCAnbG9jYWxpemF0aW9uJywgJ3JhdGlvJywgJ3JhdGlvTGFyZ2UnLCAncmF0aW9NZWRpdW0nLCAncmF0aW9TbWFsbCcsICdyYXRpb1VsdHJhJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ29wZW5MaWdodGJveCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1nYWxsZXJ5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXJvdXNlbEF1dG9wbGF5JywgJ2Nhcm91c2VsQXV0b3BsYXlUaW1lb3V0JywgJ2Nhcm91c2VsRGlzYWJsZWQnLCAnY2Fyb3VzZWxXaXRoVHJhY2snLCAnZXhjbHVkZUZpcnN0SW1hZ2UnLCAnaW1hZ2VzJywgJ2l0ZW1FbGVtZW50JywgJ2xvY2FsaXphdGlvbicsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYScsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEdhbGxlcnkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoR2FsbGVyeSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEdhbGxlcnkge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXZhaWxhYmxlVGFncycsICdiYXNlVXJsT3ZlcnJpZGUnLCAnaGVhZGluZycsICdtYXBEYXRhVXJsJywgJ3BvaURhdGFVcmwnLCAncmVzZXRUYWcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZ2VvLXJlZi1kYXRhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdmFpbGFibGVUYWdzJywgJ2Jhc2VVcmxPdmVycmlkZScsICdoZWFkaW5nJywgJ21hcERhdGFVcmwnLCAncG9pRGF0YVVybCcsICdyZXNldFRhZyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoR2VvUmVmRGF0YSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPdmVybGF5Q2xvc2VDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEdlb1JlZkRhdGFPdmVybGF5Q2xvc2VDbGlja0V2ZW50IGFzIElTdHpoR2VvUmVmRGF0YVN0emhHZW9SZWZEYXRhT3ZlcmxheUNsb3NlQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhHZW9SZWZEYXRhIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoR2VvUmVmRGF0YSB7XG4gIC8qKlxuICAgKiBPdmVybGF5IGNsb3NlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoT3ZlcmxheUNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEdlb1JlZkRhdGFTdHpoR2VvUmVmRGF0YU92ZXJsYXlDbG9zZUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGlkZGVuVGl0bGUnLCAnaGlkZUNsb3NlJywgJ2xvY2FsaXphdGlvbicsICdtYWluVGl0bGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZ2hldHRvYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoaWRkZW5UaXRsZScsICdoaWRlQ2xvc2UnLCAnbG9jYWxpemF0aW9uJywgJ21haW5UaXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoR2hldHRvYm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoR2hldHRvYm94T3BlbkV2ZW50IGFzIElTdHpoR2hldHRvYm94U3R6aEdoZXR0b2JveE9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEdoZXR0b2JveENsb3NlRXZlbnQgYXMgSVN0emhHaGV0dG9ib3hTdHpoR2hldHRvYm94Q2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhHaGV0dG9ib3ggZXh0ZW5kcyBDb21wb25lbnRzLlN0emhHaGV0dG9ib3gge1xuICAvKipcbiAgICogR2hldHRvYm94IG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhHaGV0dG9ib3hTdHpoR2hldHRvYm94T3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBHaGV0dG9ib3ggY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoR2hldHRvYm94U3R6aEdoZXR0b2JveENsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBwTmF2SXRlbXMnLCAnaGlkZU1ldGFiYXInLCAnaHJlZicsICdsYW5ndWFnZUFjdGl2ZScsICdsYW5ndWFnZUlkJywgJ2xhbmd1YWdlUHJldmVudFVybGNoYW5nZScsICdsYW5ndWFnZVN0YXknLCAnbGFuZ3VhZ2VzJywgJ2xvY2FsaXphdGlvbicsICdsb2dpbkVycm9yTWVzc2FnZScsICdsb2dvQW5hbHl0aWNzSWQnLCAnbG9nb1R5cGUnLCAnbWVudUJhY2tMYWJlbCcsICdtZW51SWQnLCAnbWVudUl0ZW1zJywgJ21ldGFuYXZJZCcsICdtZXRhbmF2SXRlbXMnLCAnc2VhcmNoQWN0aW9uJywgJ3NlYXJjaEZpZWxkTmFtZScsICdzZWFyY2hJZCcsICdzZWFyY2hWYWx1ZScsICdzdGlja3knLCAndXNlclNwZWNpZmljTWV0YW5hdkl0ZW1zRW5kcG9pbnQnLCAndXNlclNwZWNpZmljTWV0YW5hdkl0ZW1zTm90TG9nZ2VkSW4nXSxcbiAgbWV0aG9kczogWyd1cGRhdGVQb3NpdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwcE5hdkl0ZW1zJywgJ2hpZGVNZXRhYmFyJywgJ2hyZWYnLCAnbGFuZ3VhZ2VBY3RpdmUnLCAnbGFuZ3VhZ2VJZCcsICdsYW5ndWFnZVByZXZlbnRVcmxjaGFuZ2UnLCAnbGFuZ3VhZ2VTdGF5JywgJ2xhbmd1YWdlcycsICdsb2NhbGl6YXRpb24nLCAnbG9naW5FcnJvck1lc3NhZ2UnLCAnbG9nb0FuYWx5dGljc0lkJywgJ2xvZ29UeXBlJywgJ21lbnVCYWNrTGFiZWwnLCAnbWVudUlkJywgJ21lbnVJdGVtcycsICdtZXRhbmF2SWQnLCAnbWV0YW5hdkl0ZW1zJywgJ3NlYXJjaEFjdGlvbicsICdzZWFyY2hGaWVsZE5hbWUnLCAnc2VhcmNoSWQnLCAnc2VhcmNoVmFsdWUnLCAnc3RpY2t5JywgJ3VzZXJTcGVjaWZpY01ldGFuYXZJdGVtc0VuZHBvaW50JywgJ3VzZXJTcGVjaWZpY01ldGFuYXZJdGVtc05vdExvZ2dlZEluJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoTWV0YW5hdkl0ZW1DbGljaycsICdzdHpoTWV0YW5hdkl0ZW1DaGlsZENsaWNrJywgJ3N0emhNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrJywgJ3N0emhNZW51SXRlbUNsaWNrJywgJ3N0emhMYW5ndWFnZUNoYW5nZScsICdzdHpoU2VhcmNoQ2hhbmdlJywgJ3N0emhTZWFyY2hDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2hpbGRDbGlja0V2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2hpbGRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyTWV0YW5hdkl0ZW1CdXR0b25DbGlja0V2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQnV0dG9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlck1lbnVJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZW51SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJMYW5ndWFnZUNoYW5nZUV2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlckxhbmd1YWdlQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJTZWFyY2hDaGFuZ2VFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJTZWFyY2hDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlclNlYXJjaENoYW5nZWRFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJTZWFyY2hDaGFuZ2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSGVhZGVyIHtcbiAgLyoqXG4gICAqIE1ldGFuYXYgaXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE1ldGFuYXZJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE1ldGFuYXYgaXRlbSBjaGlsZCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE1ldGFuYXZJdGVtQ2hpbGRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2hpbGRDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBNZXRhbmF2IGl0ZW0gYnV0dG9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoTWV0YW5hdkl0ZW1CdXR0b25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQnV0dG9uQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogTWV0YW5hdiBpdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoTWVudUl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlck1lbnVJdGVtQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogTGFuZ3VhZ2UgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoTGFuZ3VhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJMYW5ndWFnZUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBTZWFyY2ggaW5wdXQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU2VhcmNoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFNlYXJjaCBpbnB1dCBjaGFuZ2VkIGV2ZW50XG4gICAqL1xuICBzdHpoU2VhcmNoQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlclNlYXJjaENoYW5nZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXJ2ZScsICdsZXZlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1oZWFkaW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXJ2ZScsICdsZXZlbCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSGVhZGluZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIZWFkaW5nIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSGVhZGluZyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydtb3N0c2VhcmNoZWRJdGVtcycsICd0b3BuZXdzSXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaG9tZXBhZ2Utc2VydmljZS1oaWdobGlnaHRzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydtb3N0c2VhcmNoZWRJdGVtcycsICd0b3BuZXdzSXRlbXMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhvbWVwYWdlU2VydmljZUhpZ2hsaWdodHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSG9tZXBhZ2VTZXJ2aWNlSGlnaGxpZ2h0cyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhvbWVwYWdlU2VydmljZUhpZ2hsaWdodHMge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaHInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSHIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZExlZnQnLCAnYXJvdW5kUmlnaHQnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhzcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZExlZnQnLCAnYXJvdW5kUmlnaHQnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIc3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSHNwYWNlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSHNwYWNlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlUaXRsZScsICduYW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlUaXRsZScsICduYW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEljb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJY29uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93JywgJ2Nvb2tpZScsICdjb29raWVDb25maXJtSWNvbicsICdjb29raWVDb25maXJtTGFiZWwnLCAnY29va2llQ29uZmlybVRleHQnLCAnY29va2llRXhwaXJlcycsICdoZWlnaHQnLCAnaWZyYW1lRXJyb3JUZXh0JywgJ2lmcmFtZUlkJywgJ2lmcmFtZVJlc2l6ZXJIZWlnaHRDb3JyZWN0aW9uJywgJ2lmcmFtZVJlc2l6ZXJTZWNvbmRsZXZlbERvbWFpbicsICdpZnJhbWVSZXNpemVyVmFyaWFudCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2aWV3SWNvbicsICdwcmV2aWV3TGFiZWwnLCAncmVmZXJyZXJwb2xpY3knLCAnc2FuZGJveCcsICdza2lwUHJldmlldycsICdza2lwUHJldmlld0lmQ29va2llQWNjZXB0ZWQnLCAnc3JjJywgJ3dpZHRoJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWlmcmFtZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsb3cnLCAnY29va2llJywgJ2Nvb2tpZUNvbmZpcm1JY29uJywgJ2Nvb2tpZUNvbmZpcm1MYWJlbCcsICdjb29raWVDb25maXJtVGV4dCcsICdjb29raWVFeHBpcmVzJywgJ2hlaWdodCcsICdpZnJhbWVFcnJvclRleHQnLCAnaWZyYW1lSWQnLCAnaWZyYW1lUmVzaXplckhlaWdodENvcnJlY3Rpb24nLCAnaWZyYW1lUmVzaXplclNlY29uZGxldmVsRG9tYWluJywgJ2lmcmFtZVJlc2l6ZXJWYXJpYW50JywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZpZXdJY29uJywgJ3ByZXZpZXdMYWJlbCcsICdyZWZlcnJlcnBvbGljeScsICdzYW5kYm94JywgJ3NraXBQcmV2aWV3JywgJ3NraXBQcmV2aWV3SWZDb29raWVBY2NlcHRlZCcsICdzcmMnLCAnd2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aElmcmFtZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhQcmV2aWV3U2tpcCcsICdzdHpoVmlld0NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aElmcmFtZVByZXZpZXdTa2lwRXZlbnQgYXMgSVN0emhJZnJhbWVTdHpoSWZyYW1lUHJldmlld1NraXBFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aElmcmFtZVZpZXdDaGFuZ2VFdmVudCBhcyBJU3R6aElmcmFtZVN0emhJZnJhbWVWaWV3Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSWZyYW1lIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSWZyYW1lIHtcbiAgLyoqXG4gICAqIFByZXZpZXcgc2tpcCAob25seSBnZXRzIGV4ZWN1dGVkIGlmIGl0IGdvZXMgZGlyZWN0bHkgdG8gaWZyYW1lIGFuZCBub3QgY29va2lld2FsbClcbiAgICovXG4gIHN0emhQcmV2aWV3U2tpcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSWZyYW1lU3R6aElmcmFtZVByZXZpZXdTa2lwRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFZpZXcgY2hhbmdlXG4gICAqL1xuICBzdHpoVmlld0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSWZyYW1lU3R6aElmcmFtZVZpZXdDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnaGludExlZnQnLCAnaGludFJpZ2h0JywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pbWFnZWNvbXBhcmlzb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdoaW50TGVmdCcsICdoaW50UmlnaHQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJbWFnZWNvbXBhcmlzb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoSW1hZ2Vjb21wYXJpc29uQ2hhbmdlRXZlbnQgYXMgSVN0emhJbWFnZWNvbXBhcmlzb25TdHpoSW1hZ2Vjb21wYXJpc29uQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSW1hZ2Vjb21wYXJpc29uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSW1hZ2Vjb21wYXJpc29uIHtcblxuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbWFnZWNvbXBhcmlzb25TdHpoSW1hZ2Vjb21wYXJpc29uQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2F1dG9jb21wbGV0ZScsICdjbGVhcmFibGUnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtYXhsZW5ndGgnLCAnbWluJywgJ21pbmxlbmd0aCcsICdtdWx0aWxpbmUnLCAnbmFtZScsICdub0F1dG9jb21wbGV0ZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyb3dzJywgJ3Nob3dTcGluJywgJ3NpemUnLCAnc3RlcCcsICd0eXBlJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYXV0b2NvbXBsZXRlJywgJ2NsZWFyYWJsZScsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21heGxlbmd0aCcsICdtaW4nLCAnbWlubGVuZ3RoJywgJ211bHRpbGluZScsICduYW1lJywgJ25vQXV0b2NvbXBsZXRlJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Jvd3MnLCAnc2hvd1NwaW4nLCAnc2l6ZScsICdzdGVwJywgJ3R5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aElucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZScsICdzdHpoQ2hhbmdlZCcsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhJbnB1dENoYW5nZUV2ZW50IGFzIElTdHpoSW5wdXRTdHpoSW5wdXRDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aElucHV0Q2hhbmdlZEV2ZW50IGFzIElTdHpoSW5wdXRTdHpoSW5wdXRDaGFuZ2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhJbnB1dEZvY3VzRXZlbnQgYXMgSVN0emhJbnB1dFN0emhJbnB1dEZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhJbnB1dEJsdXJFdmVudCBhcyBJU3R6aElucHV0U3R6aElucHV0Qmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aElucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSW5wdXQge1xuICAvKipcbiAgICogSW5wdXQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBjaGFuZ2VkIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRDaGFuZ2VkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Qmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWludmVydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSW52ZXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEludmVydCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEludmVydCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdmdWxsd2lkdGgnLCAnaGVpZ2h0JywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbGlua0FjY2Vzc2tleScsICdsaW5rSWQnLCAnbG9jYWxpemF0aW9uJywgJ3JlbCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlDdXJyZW50JywgJ2ExMXlEZXNjcmliZWRieScsICdhMTF5RGlzYWJsZWQnLCAnYTExeUV4cGFuZGVkJywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VQb3NpdGlvbicsICdiYWRnZVR5cGUnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZnVsbHdpZHRoJywgJ2hlaWdodCcsICdocmVmJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2xhYmVsJywgJ2xpbmtBY2Nlc3NrZXknLCAnbGlua0lkJywgJ2xvY2FsaXphdGlvbicsICdyZWwnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0ZXh0QWxpZ24nLCAndHlwZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMaW5rIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aExpbmtDbGlja0V2ZW50IGFzIElTdHpoTGlua1N0emhMaW5rQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aExpbmtGb2N1c0V2ZW50IGFzIElTdHpoTGlua1N0emhMaW5rRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aExpbmtCbHVyRXZlbnQgYXMgSVN0emhMaW5rU3R6aExpbmtCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTGluayBleHRlbmRzIENvbXBvbmVudHMuU3R6aExpbmsge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTGlua1N0emhMaW5rQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTGlua1N0emhMaW5rRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aExpbmtTdHpoTGlua0JsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aExpc3Qge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aExpc3RJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVMYWJlbCcsICdsYWJlbCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxvYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUxhYmVsJywgJ2xhYmVsJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExvYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMb2FkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMb2FkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZVBlcmNlbnQnLCAnbGFiZWwnLCAncGVyY2VudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1sb2FkaW5nYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlUGVyY2VudCcsICdsYWJlbCcsICdwZXJjZW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMb2FkaW5nYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExvYWRpbmdiYXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMb2FkaW5nYmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTWVudSBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1lbnUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb3VudGVyJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdsYWJlbCcsICdzaXplJywgJ3RhcmdldCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb3VudGVyJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdsYWJlbCcsICdzaXplJywgJ3RhcmdldCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNZW51SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhNZW51SXRlbUZvY3VzRXZlbnQgYXMgSVN0emhNZW51SXRlbVN0emhNZW51SXRlbUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhNZW51SXRlbUJsdXJFdmVudCBhcyBJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTWVudUl0ZW1DbGlja0V2ZW50IGFzIElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTWVudUl0ZW0ge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1CbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoaWRlQ2xvc2UnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbWVzc2FnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGlkZUNsb3NlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNZXNzYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoTWVzc2FnZU9wZW5FdmVudCBhcyBJU3R6aE1lc3NhZ2VTdHpoTWVzc2FnZU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE1lc3NhZ2VDbG9zZUV2ZW50IGFzIElTdHpoTWVzc2FnZVN0emhNZXNzYWdlQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhNZXNzYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBNZXNzYWdlIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE1lc3NhZ2UgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVzc2FnZVN0emhNZXNzYWdlQ2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnLCAndGFncyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1taWNyb3NpdGUtdGVhc2VybGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBpJywgJ2xvY2FsaXphdGlvbicsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJywgJ3RhZ3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1pY3Jvc2l0ZVRlYXNlcmxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTWljcm9zaXRlVGVhc2VybGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1pY3Jvc2l0ZVRlYXNlcmxpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5TW9udGgnLCAnYTExeURlc2NyaWJlZGJ5WWVhcicsICdkZXNjcmlwdGlvbkxvbmdNb250aCcsICdkZXNjcmlwdGlvbkxvbmdZZWFyJywgJ2Rlc2NyaXB0aW9uTW9udGgnLCAnZGVzY3JpcHRpb25ZZWFyJywgJ2Rpc2FibGVkJywgJ2Vycm9yTW9udGgnLCAnZXJyb3JZZWFyJywgJ2Zvcm1hdCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZE1vbnRoJywgJ2ludmFsaWRZZWFyJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWF4WWVhcicsICdtaW4nLCAnbWluWWVhcicsICdtb250aExhYmVsJywgJ21vbnRoT3BlbicsICdtb250aHMnLCAnbmFtZScsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnLCAneWVhckxhYmVsJywgJ3llYXJPcGVuJywgJ3llYXJTb3J0RGlyZWN0aW9uJywgJ3llYXJzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1vbnRoeWVhcnBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5TW9udGgnLCAnYTExeURlc2NyaWJlZGJ5WWVhcicsICdkZXNjcmlwdGlvbkxvbmdNb250aCcsICdkZXNjcmlwdGlvbkxvbmdZZWFyJywgJ2Rlc2NyaXB0aW9uTW9udGgnLCAnZGVzY3JpcHRpb25ZZWFyJywgJ2Rpc2FibGVkJywgJ2Vycm9yTW9udGgnLCAnZXJyb3JZZWFyJywgJ2Zvcm1hdCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZE1vbnRoJywgJ2ludmFsaWRZZWFyJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWF4WWVhcicsICdtaW4nLCAnbWluWWVhcicsICdtb250aExhYmVsJywgJ21vbnRoT3BlbicsICdtb250aHMnLCAnbmFtZScsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnLCAneWVhckxhYmVsJywgJ3llYXJPcGVuJywgJ3llYXJTb3J0RGlyZWN0aW9uJywgJ3llYXJzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNb250aHllYXJwaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoTW9udGh5ZWFycGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhNb250aHllYXJwaWNrZXJTdHpoTW9udGh5ZWFycGlja2VyQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTW9udGh5ZWFycGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTW9udGh5ZWFycGlja2VyIHtcbiAgLyoqXG4gICAqIE1vbnRoeWVhcnBpY2tlciBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1vbnRoeWVhcnBpY2tlclN0emhNb250aHllYXJwaWNrZXJDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjZW50ZXInLCAnY2VudGVyTWFya2VyJywgJ2hvc3RuYW1lJywgJ2xheWVyJywgJ2xheWVyQ29udHJvbCcsICdsYXllcnMnLCAnbG9jYWxpemF0aW9uJywgJ2xvY2F0aW9uQ29udHJvbCcsICdwaW5jaFJvdGF0ZVRocmVzaG9sZCcsICdwcmludENvbnRyb2wnLCAncmVzb2x1dGlvbnMnLCAnc2NhbGVDb250cm9sJywgJ3pvb20nLCAnem9vbUxvY2F0aW9uJ10sXG4gIG1ldGhvZHM6IFsnZ2V0TWFwJywgJ2dldFZpc2libGVNYXJrZXJzJywgJ2ZpbmRNYXJrZXJCeUlkJywgJ2FkZEljb25NYXJrZXInLCAnYWRkSWNvbk1hcmtlcnMnLCAndXBkYXRlVmlld1RvRml0TWFya2VycycsICdyZW1vdmVBbGxJY29uTWFya2VycycsICdyZW1vdmVJY29uTWFya2VyJywgJ3NldEljb25NYXJrZXJBY3RpdmUnLCAnc2V0SWNvbk1hcmtlckluYWN0aXZlJywgJ3NldEFsbEljb25NYXJrZXJzSW5hY3RpdmUnLCAnZW5hYmxlTG9jYXRpb25UcmFja2luZycsICdkaXNhYmxlTG9jYXRpb25UcmFja2luZycsICdnZXREaXN0YW5jZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1vbG1hcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2VudGVyJywgJ2NlbnRlck1hcmtlcicsICdob3N0bmFtZScsICdsYXllcicsICdsYXllckNvbnRyb2wnLCAnbGF5ZXJzJywgJ2xvY2FsaXphdGlvbicsICdsb2NhdGlvbkNvbnRyb2wnLCAncGluY2hSb3RhdGVUaHJlc2hvbGQnLCAncHJpbnRDb250cm9sJywgJ3Jlc29sdXRpb25zJywgJ3NjYWxlQ29udHJvbCcsICd6b29tJywgJ3pvb21Mb2NhdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoT2xtYXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSW5pdGlhbGl6ZWQnLCAnc3R6aFBvc3RSZW5kZXInLCAnc3R6aE1vdmVTdGFydCcsICdzdHpoTW92ZUVuZCcsICdzdHpoTW92ZVBhblpvb20nXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcEluaXRpYWxpemVkRXZlbnQgYXMgSVN0emhPbG1hcFN0emhPbG1hcEluaXRpYWxpemVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcFBvc3RSZW5kZXJFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwUG9zdFJlbmRlckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoT2xtYXBNb3ZlU3RhcnRFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZVN0YXJ0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcE1vdmVFbmRFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZUVuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoT2xtYXBNb3ZlUGFuWm9vbUV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlUGFuWm9vbUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE9sbWFwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoT2xtYXAge1xuICAvKipcbiAgICogT2xtYXAgaW5pdGlhbGl6ZWQgZXZlbnRcbiAgICovXG4gIHN0emhJbml0aWFsaXplZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBJbml0aWFsaXplZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBPbG1hcCBwb3N0cmVuZGVyIGV2ZW50XG4gICAqL1xuICBzdHpoUG9zdFJlbmRlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBQb3N0UmVuZGVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9sbWFwIG1vdmVzdGFydCBldmVudFxuICAgKi9cbiAgc3R6aE1vdmVTdGFydDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlU3RhcnRFdmVudD4+O1xuICAvKipcbiAgICogT2xtYXAgbW92ZWVuZCBldmVudFxuICAgKi9cbiAgc3R6aE1vdmVFbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZUVuZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBPbG1hcCBtb3ZlIHBhbiB6b29tIGV2ZW50XG4gICAqL1xuICBzdHpoTW92ZVBhblpvb206IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZVBhblpvb21FdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnb3BlbicsICdzdGF5J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW92ZXJsYXknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdvcGVuJywgJ3N0YXknXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE92ZXJsYXkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhPdmVybGF5T3BlbkV2ZW50IGFzIElTdHpoT3ZlcmxheVN0emhPdmVybGF5T3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoT3ZlcmxheUNsb3NlRXZlbnQgYXMgSVN0emhPdmVybGF5U3R6aE92ZXJsYXlDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE92ZXJsYXkgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhPdmVybGF5IHtcbiAgLyoqXG4gICAqIERpYWxvZyBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT3ZlcmxheVN0emhPdmVybGF5T3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaWFsb2cgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT3ZlcmxheVN0emhPdmVybGF5Q2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdlLXNraXBsaW5rcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZVNraXBsaW5rcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdlU2tpcGxpbmtzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZVNraXBsaW5rcyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAnbG9nb0hyZWYnLCAncHJpbnRBbmFseXRpY3NJZCcsICdzaGFyZURpc2FibGVkJywgJ3NoYXJlTWFpbEJvZHknLCAnc2hhcmVNYWlsU3ViamVjdCcsICdzaGFyZVNlcnZpY2VzJywgJ3NoYXJlVGl0bGUnLCAnc2hhcmVVcmwnLCAnd2l0aFByaW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2Vib3R0b20nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdsb2dvSHJlZicsICdwcmludEFuYWx5dGljc0lkJywgJ3NoYXJlRGlzYWJsZWQnLCAnc2hhcmVNYWlsQm9keScsICdzaGFyZU1haWxTdWJqZWN0JywgJ3NoYXJlU2VydmljZXMnLCAnc2hhcmVUaXRsZScsICdzaGFyZVVybCcsICd3aXRoUHJpbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2Vib3R0b20ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZWJvdHRvbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2Vib3R0b20ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2Vjb250ZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2Vjb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZWNvbnRlbnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdkYXRlbGluZScsICdoeXBoZW5zRW5hYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdldGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmQnLCAnZGF0ZWxpbmUnLCAnaHlwaGVuc0VuYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2V0aXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdldGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdldGl0bGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nSWQnLCAnbGVhZEF1dGhvcicsICdzdWJ0aXRsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdldGl0bGUtaGVybycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nSWQnLCAnbGVhZEF1dGhvcicsICdzdWJ0aXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZXRpdGxlSGVybyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdldGl0bGVIZXJvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZXRpdGxlSGVybyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoeXBoZW5zRW5hYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdldGl0bGUtaG9tZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaHlwaGVuc0VuYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2V0aXRsZUhvbWUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZXRpdGxlSG9tZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2V0aXRsZUhvbWUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2FsbG93TWFudWFsSW5wdXQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0b3RhbCcsICd2YWx1ZScsICd3aWR0aCddLFxuICBtZXRob2RzOiBbJ3ByZXYnLCAnbmV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdpbmF0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYWxsb3dNYW51YWxJbnB1dCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3RvdGFsJywgJ3ZhbHVlJywgJ3dpZHRoJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdpbmF0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFBhZ2luYXRpb25DaGFuZ2VFdmVudCBhcyBJU3R6aFBhZ2luYXRpb25TdHpoUGFnaW5hdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2luYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFBhZ2luYXRpb24gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYWdpbmF0aW9uU3R6aFBhZ2luYXRpb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvbG9hZCcsICdjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdoZWFkaW5nJywgJ2xvY2FsaXphdGlvbicsICdvcmllbnRhdGlvbk9uQnlEZWZhdWx0JywgJ3NjZW5lJywgJ3NjZW5lRmFkZUR1cmF0aW9uJywgJ3NjZW5lcycsICdzaG93Q29udHJvbHMnLCAnc2hvd0hvdHNwb3RzJ10sXG4gIG1ldGhvZHM6IFsnZ2V0Vmlld2VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhbm9yYW1hJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvbG9hZCcsICdjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdoZWFkaW5nJywgJ2xvY2FsaXphdGlvbicsICdvcmllbnRhdGlvbk9uQnlEZWZhdWx0JywgJ3NjZW5lJywgJ3NjZW5lRmFkZUR1cmF0aW9uJywgJ3NjZW5lcycsICdzaG93Q29udHJvbHMnLCAnc2hvd0hvdHNwb3RzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYW5vcmFtYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhMb2FkJywgJ3N0emhDaGFuZ2UnLCAnc3R6aEZ1bGxzY3JlZW5DaGFuZ2UnLCAnc3R6aFNjZW5lQ2hhbmdlJywgJ3N0emhab29tQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFMb2FkRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUxvYWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFGdWxsc2NyZWVuQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hWm9vbUNoYW5nZUV2ZW50IGFzIElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFab29tQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFub3JhbWEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYW5vcmFtYSB7XG4gIC8qKlxuICAgKiBMb2FkIGV2ZW50XG4gICAqL1xuICBzdHpoTG9hZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFMb2FkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRnVsbHNjcmVlbiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhGdWxsc2NyZWVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogU2NlbmUgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU2NlbmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogWm9vbSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhab29tQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYVpvb21DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXN0YW5jZScsICdmdWxsd2lkdGgnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NpemUnLCAnc2tpZGRpbmcnLCAnc3RyYXRlZ3knLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnLCAndXBkYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBvcG92ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc3RhbmNlJywgJ2Z1bGx3aWR0aCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICdza2lkZGluZycsICdzdHJhdGVneScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQb3BvdmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aE9wZW5lZCcsICdzdHpoQ2xvc2UnLCAnc3R6aENsb3NlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFBvcG92ZXJPcGVuRXZlbnQgYXMgSVN0emhQb3BvdmVyU3R6aFBvcG92ZXJPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQb3BvdmVyT3BlbmVkRXZlbnQgYXMgSVN0emhQb3BvdmVyU3R6aFBvcG92ZXJPcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBvcG92ZXJDbG9zZUV2ZW50IGFzIElTdHpoUG9wb3ZlclN0emhQb3BvdmVyQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBvcG92ZXJDbG9zZWRFdmVudCBhcyBJU3R6aFBvcG92ZXJTdHpoUG9wb3ZlckNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBvcG92ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQb3BvdmVyIHtcbiAgLyoqXG4gICAqIFBvcG92ZXIgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBvcG92ZXJTdHpoUG9wb3Zlck9wZW5FdmVudD4+O1xuICAvKipcbiAgICogUG9wb3ZlciBvcGVuZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBvcG92ZXJTdHpoUG9wb3Zlck9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBQb3BvdmVyIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBvcG92ZXJTdHpoUG9wb3ZlckNsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFBvcG92ZXIgY2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJDbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wcmludCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUHJpbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUHJpbnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQcmludCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGlja0Rpc2FibGVkJywgJ2RhdGEnLCAnaW5kZXgnLCAnbG9jYWxpemF0aW9uJywgJ3N0ZXBzJywgJ3N0ZXBzTGFyZ2UnLCAnc3RlcHNNZWRpdW0nLCAnc3RlcHNTbWFsbCcsICdzdGVwc1VsdHJhJ10sXG4gIG1ldGhvZHM6IFsnZ2V0SXRlbURhdGEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcHJvZ3Jlc3NiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsaWNrRGlzYWJsZWQnLCAnZGF0YScsICdpbmRleCcsICdsb2NhbGl6YXRpb24nLCAnc3RlcHMnLCAnc3RlcHNMYXJnZScsICdzdGVwc01lZGl1bScsICdzdGVwc1NtYWxsJywgJ3N0ZXBzVWx0cmEnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFByb2dyZXNzYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFByb2dyZXNzYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUHJvZ3Jlc3NiYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnY2xpY2tEaXNhYmxlZCcsICdjdXJyZW50JywgJ2Rpc2FibGVkJywgJ2RvdHRlZCcsICdmaXJzdCcsICdoaWRlJywgJ2ljb24nLCAnbGFiZWwnLCAnbGFzdCcsICdwYXNzZWQnLCAnc3RlcCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wcm9ncmVzc2Jhci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdjbGlja0Rpc2FibGVkJywgJ2N1cnJlbnQnLCAnZGlzYWJsZWQnLCAnZG90dGVkJywgJ2ZpcnN0JywgJ2hpZGUnLCAnaWNvbicsICdsYWJlbCcsICdsYXN0JywgJ3Bhc3NlZCcsICdzdGVwJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQcm9ncmVzc2Jhckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aERvdHRlZENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUHJvZ3Jlc3NiYXJJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aFByb2dyZXNzYmFySXRlbVN0emhQcm9ncmVzc2Jhckl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUHJvZ3Jlc3NiYXJJdGVtRG90dGVkQ2xpY2tFdmVudCBhcyBJU3R6aFByb2dyZXNzYmFySXRlbVN0emhQcm9ncmVzc2Jhckl0ZW1Eb3R0ZWRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFByb2dyZXNzYmFySXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFByb2dyZXNzYmFySXRlbSB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQcm9ncmVzc2Jhckl0ZW1TdHpoUHJvZ3Jlc3NiYXJJdGVtQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRG90dGVkIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoRG90dGVkQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFByb2dyZXNzYmFySXRlbVN0emhQcm9ncmVzc2Jhckl0ZW1Eb3R0ZWRDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yYWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUmFkaW9DaGFuZ2VFdmVudCBhcyBJU3R6aFJhZGlvU3R6aFJhZGlvQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhSYWRpb0ZvY3VzRXZlbnQgYXMgSVN0emhSYWRpb1N0emhSYWRpb0ZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhSYWRpb0JsdXJFdmVudCBhcyBJU3R6aFJhZGlvU3R6aFJhZGlvQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmFkaW8ge1xuICAvKipcbiAgICogSW5wdXQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYWRpb1N0emhSYWRpb0NoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBmb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYWRpb1N0emhSYWRpb0ZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYWRpb1N0emhSYWRpb0JsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkUmFkaW8nLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXJlY3Rpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZUxlZ2VuZCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmVudFVwZGF0ZVByb3BlcnRpZXMnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmFkaW9ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZFJhZGlvJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlyZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVMZWdlbmQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZlbnRVcGRhdGVQcm9wZXJ0aWVzJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSYWRpb2dyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJhZGlvZ3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSYWRpb2dyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZpdCcsICdwb3J0cmFpdCcsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yYXRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZml0JywgJ3BvcnRyYWl0JywgJ3JhdGlvJywgJ3JhdGlvTGFyZ2UnLCAncmF0aW9NZWRpdW0nLCAncmF0aW9TbWFsbCcsICdyYXRpb1VsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSYXRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSYXRpbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJhdGlvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hyZWYnXSxcbiAgbWV0aG9kczogWydvcGVuUGxheWVyJywgJ2Nsb3NlUGxheWVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJlYWRzcGVha2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydocmVmJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSZWFkc3BlYWtlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSZWFkc3BlYWtlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJlYWRzcGVha2VyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2V4dGVybmFsTGlua0ljb24nLCAnZXh0ZXJuYWxMaW5rU2VsZWN0b3InLCAnbG9jYWxpemF0aW9uJywgJ3JlbW92ZUZpcnN0TWFyZ2luJywgJ3JlbW92ZUxhc3RNYXJnaW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmljaHRleHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2V4dGVybmFsTGlua0ljb24nLCAnZXh0ZXJuYWxMaW5rU2VsZWN0b3InLCAnbG9jYWxpemF0aW9uJywgJ3JlbW92ZUZpcnN0TWFyZ2luJywgJ3JlbW92ZUxhc3RNYXJnaW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFJpY2h0ZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJpY2h0ZXh0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmljaHRleHQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGVudCcsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NwYW4nLCAnc3BhbkxhcmdlJywgJ3NwYW5NZWRpdW0nLCAnc3BhblNtYWxsJywgJ3NwYW5VbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yb3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnaXRlbXMnLCAnanVzdGlmeScsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSb3cgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSb3cge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXJyb3InLCAnaW52YWxpZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdudW1iZXJzJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNhcHRjaGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ludmFsaWQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbnVtYmVycycsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2FwdGNoYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTYXB0Y2hhIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2FwdGNoYSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zY3JvbGx1cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2Nyb2xsdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2Nyb2xsdXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTY3JvbGx1cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnYXV0b2ZldGNoQXNpZGVGaWx0ZXJzJywgJ2F1dG9mZXRjaE1haW5GaWx0ZXJzJywgJ2JyZWFrb3V0JywgJ2RlYm91bmNlVGltZScsICdlbXB0eUxpbmtIcmVmJywgJ2VtcHR5TGlua0xhYmVsJywgJ2VtcHR5VGV4dCcsICdoZWFkaW5nJywgJ2hpZGVBc2lkZUZpbHRlcnMnLCAnaGlkZU1haW5GaWx0ZXJzJywgJ2luaXRpYWxGZXRjaCcsICdsaW1pdCcsICdsb2NhbGl6YXRpb24nLCAncHJldmVudFVwZGF0ZVVybCcsICdyZXN1bHRIZWFkaW5nTGV2ZWwnLCAndGVtcGxhdGVSZXN1bHQnLCAndGVtcGxhdGVSZXN1bHRXcmFwcGVyRWxlbWVudCcsICd0ZW1wbGF0ZVJlc3VsdFdyYXBwZXJQcm9wcycsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNlYXJjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBpJywgJ2F1dG9mZXRjaEFzaWRlRmlsdGVycycsICdhdXRvZmV0Y2hNYWluRmlsdGVycycsICdicmVha291dCcsICdkZWJvdW5jZVRpbWUnLCAnZW1wdHlMaW5rSHJlZicsICdlbXB0eUxpbmtMYWJlbCcsICdlbXB0eVRleHQnLCAnaGVhZGluZycsICdoaWRlQXNpZGVGaWx0ZXJzJywgJ2hpZGVNYWluRmlsdGVycycsICdpbml0aWFsRmV0Y2gnLCAnbGltaXQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZXZlbnRVcGRhdGVVcmwnLCAncmVzdWx0SGVhZGluZ0xldmVsJywgJ3RlbXBsYXRlUmVzdWx0JywgJ3RlbXBsYXRlUmVzdWx0V3JhcHBlckVsZW1lbnQnLCAndGVtcGxhdGVSZXN1bHRXcmFwcGVyUHJvcHMnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2VhcmNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE92ZXJsYXlDbG9zZUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU2VhcmNoT3ZlcmxheUNsb3NlQ2xpY2tFdmVudCBhcyBJU3R6aFNlYXJjaFN0emhTZWFyY2hPdmVybGF5Q2xvc2VDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNlYXJjaCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNlYXJjaCB7XG4gIC8qKlxuICAgKiBTZWFyY2ggb3ZlcmxheSBjbG9zZSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE92ZXJsYXlDbG9zZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTZWFyY2hTdHpoU2VhcmNoT3ZlcmxheUNsb3NlQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2JyZWFrb3V0JywgJ21hcmdpbkJvdHRvbScsICdtYXJnaW5Ub3AnLCAncGFkZGluZ0JvdHRvbScsICdwYWRkaW5nVG9wJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2VjdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdicmVha291dCcsICdtYXJnaW5Cb3R0b20nLCAnbWFyZ2luVG9wJywgJ3BhZGRpbmdCb3R0b20nLCAncGFkZGluZ1RvcCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTZWN0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNlY3Rpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTZWN0aW9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdtYWlsQm9keScsICdtYWlsU3ViamVjdCcsICdzZXJ2aWNlcycsICd1cmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2hhcmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdtYWlsQm9keScsICdtYWlsU3ViamVjdCcsICdzZXJ2aWNlcycsICd1cmwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNoYXJlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNoYXJlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2hhcmUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2VLZXknLCAnaGlkZUZyb21EYXRlJywgJ2xhcmdlJywgJ21lZGl1bScsICdtaWtybycsICdzaG93RnJvbURhdGUnLCAnc21hbGwnLCAndWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2hvdycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xvc2VLZXknLCAnaGlkZUZyb21EYXRlJywgJ2xhcmdlJywgJ21lZGl1bScsICdtaWtybycsICdzaG93RnJvbURhdGUnLCAnc21hbGwnLCAndWx0cmEnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNob3cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2hvdyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNob3cge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2l0ZW1hcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaXRlbXMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNpdGVtYXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2l0ZW1hcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNpdGVtYXAge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2tpbi1wb3J0YWwtbWl0d2lya2VuJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTa2luUG9ydGFsTWl0d2lya2VuIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNraW5Qb3J0YWxNaXR3aXJrZW4gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTa2luUG9ydGFsTWl0d2lya2VuIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNraW4tc3Rvcnlib29rLXByZXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNraW5TdG9yeWJvb2tQcmV2aWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNraW5TdG9yeWJvb2tQcmV2aWV3IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2tpblN0b3J5Ym9va1ByZXZpZXcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnaHJlZicsICdsYWJlbCcsICdsaW5rQWNjZXNza2V5JywgJ2xpbmtUaXRsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1za2lwbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnaHJlZicsICdsYWJlbCcsICdsaW5rQWNjZXNza2V5JywgJ2xpbmtUaXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2tpcGxpbmsge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTa2lwbGlua0ZvY3VzRXZlbnQgYXMgSVN0emhTa2lwbGlua1N0emhTa2lwbGlua0ZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTa2lwbGlua0JsdXJFdmVudCBhcyBJU3R6aFNraXBsaW5rU3R6aFNraXBsaW5rQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNraXBsaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2tpcGxpbmsge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU2tpcGxpbmtTdHpoU2tpcGxpbmtGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU2tpcGxpbmtTdHpoU2tpcGxpbmtCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc29jaWFsbWVkaWFzdHJlYW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW1zJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTb2NpYWxtZWRpYXN0cmVhbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTb2NpYWxtZWRpYXN0cmVhbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNvY2lhbG1lZGlhc3RyZWFtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2l0ZW0nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc29jaWFsbWVkaWFzdHJlYW0taXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaXRlbSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU29jaWFsbWVkaWFzdHJlYW1JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNvY2lhbG1lZGlhc3RyZWFtSXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNvY2lhbG1lZGlhc3RyZWFtSXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250YWluZXInLCAnZGF0YUlkQXR0cmlidXRlJywgJ2Rpc2FibGVkJywgJ2ZpbHRlckVsZW1lbnRzJywgJ2dob3N0Q2xvbmUnLCAnbG9jYWxpemF0aW9uJ10sXG4gIG1ldGhvZHM6IFsndG9BcnJheScsICdzb3J0JywgJ21vdmVJdGVtJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNvcnRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250YWluZXInLCAnZGF0YUlkQXR0cmlidXRlJywgJ2Rpc2FibGVkJywgJ2ZpbHRlckVsZW1lbnRzJywgJ2dob3N0Q2xvbmUnLCAnbG9jYWxpemF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTb3J0YWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhVcGRhdGUnLCAnc3R6aERpc2FibGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTb3J0YWJsZVVwZGF0ZUV2ZW50IGFzIElTdHpoU29ydGFibGVTdHpoU29ydGFibGVVcGRhdGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFNvcnRhYmxlRGlzYWJsZUV2ZW50IGFzIElTdHpoU29ydGFibGVTdHpoU29ydGFibGVEaXNhYmxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU29ydGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTb3J0YWJsZSB7XG4gIC8qKlxuICAgKiBVcGRhdGUgZXZlbnRcbiAgICovXG4gIHN0emhVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlVXBkYXRlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpc2FibGUgZXZlbnRcbiAgICovXG4gIHN0emhEaXNhYmxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTb3J0YWJsZVN0emhTb3J0YWJsZURpc2FibGVFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcm91bmQnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNwYWNlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcm91bmQnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTcGFjZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTcGFjZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNwYWNlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ3BlcmNlbnQnLCAndHlwZScsICd3aXRoTG9hZGluZ2JhciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zdGF0dXMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ3BlcmNlbnQnLCAndHlwZScsICd3aXRoTG9hZGluZ2JhciddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU3RhdHVzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFN0YXR1cyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFN0YXR1cyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydibGVlZGluZycsICdkaXNhYmxlU3RpY2t5Qm90dG9tJywgJ2Rpc2FibGVTdGlja3lUb3AnLCAnbmFtZScsICdwb3NpdGlvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXN0aWNreScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmxlZWRpbmcnLCAnZGlzYWJsZVN0aWNreUJvdHRvbScsICdkaXNhYmxlU3RpY2t5VG9wJywgJ25hbWUnLCAncG9zaXRpb24nLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU3RpY2t5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aFN0dWNrVG9wJywgJ3N0emhTdHVja0JvdHRvbSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFN0aWNreVN0dWNrVG9wRXZlbnQgYXMgSVN0emhTdGlja3lTdHpoU3RpY2t5U3R1Y2tUb3BFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQgYXMgSVN0emhTdGlja3lTdHpoU3RpY2t5U3R1Y2tCb3R0b21FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTdGlja3kgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGlja3kge1xuICAvKipcbiAgICogU3RpY2t5IHN0dWNrIHRvcCBldmVudFxuICAgKi9cbiAgc3R6aFN0dWNrVG9wOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTdGlja3lTdHpoU3RpY2t5U3R1Y2tUb3BFdmVudD4+O1xuICAvKipcbiAgICogU3RpY2t5IHN0dWNrIGJvdHRvbSBldmVudFxuICAgKi9cbiAgc3R6aFN0dWNrQm90dG9tOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTdGlja3lTdHpoU3RpY2t5U3R1Y2tCb3R0b21FdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwYWdldGl0bGVRdWVyeSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zdGlja3ktYWN0aW9ucycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncGFnZXRpdGxlUXVlcnknXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0aWNreUFjdGlvbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3RpY2t5QWN0aW9ucyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFN0aWNreUFjdGlvbnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZU1pbldpZHRoJywgJ2ZpeGVkTGVmdCcsICdmaXhlZFJpZ2h0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlTWluV2lkdGgnLCAnZml4ZWRMZWZ0JywgJ2ZpeGVkUmlnaHQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGFibGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYW5hbHl0aWNzSWQnLCAnZGlzYWJsZWQnLCAnaHJlZicsICdsYWJlbCcsICdub25JbnRlcmFjdGl2ZScsICdyZW1vdmVBbmFseXRpY3NJZCcsICdzaXplJywgJ3RhcmdldCcsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRhZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYW5hbHl0aWNzSWQnLCAnZGlzYWJsZWQnLCAnaHJlZicsICdsYWJlbCcsICdub25JbnRlcmFjdGl2ZScsICdyZW1vdmVBbmFseXRpY3NJZCcsICdzaXplJywgJ3RhcmdldCcsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUYWcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVGFnQ2xpY2tFdmVudCBhcyBJU3R6aFRhZ1N0emhUYWdDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGFnRm9jdXNFdmVudCBhcyBJU3R6aFRhZ1N0emhUYWdGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGFnQmx1ckV2ZW50IGFzIElTdHpoVGFnU3R6aFRhZ0JsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUYWcgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUYWcge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGFnU3R6aFRhZ0NsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGFnU3R6aFRhZ0JsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdjdXJ2ZScsICdmb250JywgJ2xlYWQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRleHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2N1cnZlJywgJ2ZvbnQnLCAnbGVhZCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRleHQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGV4dCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRleHQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaW1hZ2VQb3NpdGlvbicsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRleHRhbmRpbWFnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaW1hZ2VQb3NpdGlvbicsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUZXh0YW5kaW1hZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGV4dGFuZGltYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGV4dGFuZGltYWdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2ZvbGRhYmxlJywgJ211bHRpc2VsZWN0YWJsZSddLFxuICBtZXRob2RzOiBbJ3NldEl0ZW1Gb2N1cycsICd1cGRhdGVTdGVwcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10aW1lbGluZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sbGFwc2libGUnLCAnZm9sZGFibGUnLCAnbXVsdGlzZWxlY3RhYmxlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUaW1lbGluZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2xkYWJsZUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lRm9sZGFibGVDaGFuZ2VFdmVudCBhcyBJU3R6aFRpbWVsaW5lU3R6aFRpbWVsaW5lRm9sZGFibGVDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUaW1lbGluZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRpbWVsaW5lIHtcbiAgLyoqXG4gICAqIEZvbGRhYmxlIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aEZvbGRhYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZVN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnY29tcGxldGVkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2ZvbGRhYmxlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnb3BlbicsICdzdGVwJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10aW1lbGluZS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb2xsYXBzaWJsZScsICdjb21wbGV0ZWQnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZm9sZGFibGUnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaWNvbicsICdvcGVuJywgJ3N0ZXAnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRpbWVsaW5lSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtT3BlbkV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbU9wZW5lZEV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbU9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1DbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtQ2xvc2VkRXZlbnQgYXMgSVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUl0ZW1Gb2N1c0V2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUl0ZW1CbHVyRXZlbnQgYXMgSVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRpbWVsaW5lSXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRpbWVsaW5lSXRlbSB7XG4gIC8qKlxuICAgKiBPcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogT3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1DbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1DbG9zZWRFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdvcGVuJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRpbWVwaWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdvcGVuJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUaW1lcGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVwaWNrZXJDaGFuZ2VFdmVudCBhcyBJU3R6aFRpbWVwaWNrZXJTdHpoVGltZXBpY2tlckNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRpbWVwaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUaW1lcGlja2VyIHtcbiAgLyoqXG4gICAqIFRpbWVwaWNrZXIgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lcGlja2VyU3R6aFRpbWVwaWNrZXJDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlQ2xvc2UnLCAnaW5pdGlhbE9wZW5BbmltYXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10b2FzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2luaXRpYWxPcGVuQW5pbWF0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvYXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aE9wZW5lZCcsICdzdHpoQ2xvc2UnLCAnc3R6aENsb3NlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRvYXN0T3BlbkV2ZW50IGFzIElTdHpoVG9hc3RTdHpoVG9hc3RPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdE9wZW5lZEV2ZW50IGFzIElTdHpoVG9hc3RTdHpoVG9hc3RPcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvYXN0Q2xvc2VFdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0Q2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvYXN0Q2xvc2VkRXZlbnQgYXMgSVN0emhUb2FzdFN0emhUb2FzdENsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRvYXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVG9hc3Qge1xuICAvKipcbiAgICogVG9hc3Qgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb2FzdCBvcGVuZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvYXN0IGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvYXN0U3R6aFRvYXN0Q2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogVG9hc3QgY2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdENsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVBZnRlcicsICdpbml0aWFsVG9hc3RzJywgJ21heCddLFxuICBtZXRob2RzOiBbJ3RvYXN0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRvYXN0YmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlQWZ0ZXInLCAnaW5pdGlhbFRvYXN0cycsICdtYXgnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvYXN0YmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRvYXN0YmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVG9hc3RiYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxQb3NpdGlvbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUb2dnbGVDaGFuZ2VFdmVudCBhcyBJU3R6aFRvZ2dsZVN0emhUb2dnbGVDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvZ2dsZUZvY3VzRXZlbnQgYXMgSVN0emhUb2dnbGVTdHpoVG9nZ2xlRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvZ2dsZUJsdXJFdmVudCBhcyBJU3R6aFRvZ2dsZVN0emhUb2dnbGVCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVG9nZ2xlIHtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2dnbGVTdHpoVG9nZ2xlRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvZ2dsZVN0emhUb2dnbGVCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGVudCcsICdkaXN0YW5jZScsICdpbnRlcmFjdGl2ZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICdza2lkZGluZycsICdzdHJhdGVneScsICd0cmlnZ2VyJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJywgJ3VwZGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZW50JywgJ2Rpc3RhbmNlJywgJ2ludGVyYWN0aXZlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3BsYWNlbWVudCcsICdzaXplJywgJ3NraWRkaW5nJywgJ3N0cmF0ZWd5JywgJ3RyaWdnZXInLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUb29sdGlwT3BlbkV2ZW50IGFzIElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcE9wZW5lZEV2ZW50IGFzIElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb29sdGlwQ2xvc2VFdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcENsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb29sdGlwQ2xvc2VkRXZlbnQgYXMgSVN0emhUb29sdGlwU3R6aFRvb2x0aXBDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVG9vbHRpcCB7XG4gIC8qKlxuICAgKiBUb29sdGlwIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb29sdGlwU3R6aFRvb2x0aXBPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvb2x0aXAgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb29sdGlwU3R6aFRvb2x0aXBPcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogVG9vbHRpcCBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb29sdGlwU3R6aFRvb2x0aXBDbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb29sdGlwIGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdHdvY29sdW1ucycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVHdvY29sdW1ucyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUd29jb2x1bW5zIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVHdvY29sdW1ucyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2NlcHQnLCAnYWNjZXB0ZWRGaWxlcycsICdhdXRvUHJvY2Vzc1F1ZXVlJywgJ2J1dHRvbicsICdidXR0b25TY2FuJywgJ2NodW5rU2l6ZScsICdjaHVua2luZycsICdjaHVua3NVcGxvYWRlZCcsICdkZWZhdWx0SGVhZGVycycsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlVG9hc3RzJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkRGlzYWJsZWQnLCAnZG93bmxvYWREaXNhYmxlZFdoaWxlUHJvY2Vzc2luZycsICdlcnJvcicsICdleGlzdGluZ0ZpbGVzJywgJ2ZpbGVzaXplQmFzZScsICdmb3JjZUNodW5raW5nJywgJ2hlYWRlcnMnLCAnaGVhZGluZycsICdoaWRkZW5JbnB1dENvbnRhaW5lcicsICdoaWRlUHJvZ3Jlc3MnLCAnaGlkZVByb2dyZXNzV2hpbGVJZGxlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ21heEZpbGVzJywgJ21heEZpbGVzaXplJywgJ21ldGhvZCcsICduYW1lJywgJ3BhcmFsbGVsQ2h1bmtVcGxvYWRzJywgJ3BhcmFsbGVsVXBsb2FkcycsICdwaG90b2dyYXBoaW5nRW5hYmxlZCcsICdwcmV2ZW50SGlkZGVuSW5wdXRDbGVhcicsICdyZXRyeUNodW5rcycsICdyZXRyeUNodW5rc0xpbWl0JywgJ3VwbG9hZE11bHRpcGxlJywgJ3VybCcsICd3aXRoQ3JlZGVudGlhbHMnXSxcbiAgbWV0aG9kczogWydwcm9jZXNzUXVldWUnLCAncmVtb3ZlRmlsZScsICdyZW1vdmVBbGxGaWxlcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC11cGxvYWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjY2VwdCcsICdhY2NlcHRlZEZpbGVzJywgJ2F1dG9Qcm9jZXNzUXVldWUnLCAnYnV0dG9uJywgJ2J1dHRvblNjYW4nLCAnY2h1bmtTaXplJywgJ2NodW5raW5nJywgJ2NodW5rc1VwbG9hZGVkJywgJ2RlZmF1bHRIZWFkZXJzJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVUb2FzdHMnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWREaXNhYmxlZCcsICdkb3dubG9hZERpc2FibGVkV2hpbGVQcm9jZXNzaW5nJywgJ2Vycm9yJywgJ2V4aXN0aW5nRmlsZXMnLCAnZmlsZXNpemVCYXNlJywgJ2ZvcmNlQ2h1bmtpbmcnLCAnaGVhZGVycycsICdoZWFkaW5nJywgJ2hpZGRlbklucHV0Q29udGFpbmVyJywgJ2hpZGVQcm9ncmVzcycsICdoaWRlUHJvZ3Jlc3NXaGlsZUlkbGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbWF4RmlsZXMnLCAnbWF4RmlsZXNpemUnLCAnbWV0aG9kJywgJ25hbWUnLCAncGFyYWxsZWxDaHVua1VwbG9hZHMnLCAncGFyYWxsZWxVcGxvYWRzJywgJ3Bob3RvZ3JhcGhpbmdFbmFibGVkJywgJ3ByZXZlbnRIaWRkZW5JbnB1dENsZWFyJywgJ3JldHJ5Q2h1bmtzJywgJ3JldHJ5Q2h1bmtzTGltaXQnLCAndXBsb2FkTXVsdGlwbGUnLCAndXJsJywgJ3dpdGhDcmVkZW50aWFscyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVXBsb2FkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEZpbGVBZGRlZCcsICdzdHpoRmlsZXNBZGRlZCcsICdzdHpoRmlsZVJlbW92ZScsICdzdHpoRmlsZVJlbW92ZWQnLCAnc3R6aFNlbmRpbmcnLCAnc3R6aFNlbmRpbmdNdWx0aXBsZScsICdzdHpoUHJvY2Vzc2luZycsICdzdHpoUHJvY2Vzc2luZ011bHRpcGxlJywgJ3N0emhQcm9ncmVzcycsICdzdHpoUHJvZ3Jlc3NUb3RhbCcsICdzdHpoRXJyb3InLCAnc3R6aEVycm9yTXVsdGlwbGUnLCAnc3R6aFN1Y2Nlc3MnLCAnc3R6aFN1Y2Nlc3NNdWx0aXBsZScsICdzdHpoQ2FuY2VsZWQnLCAnc3R6aENhbmNlbGVkTXVsdGlwbGUnLCAnc3R6aENvbXBsZXRlJywgJ3N0emhDb21wbGV0ZU11bHRpcGxlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRmlsZUFkZGVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZUFkZGVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRGaWxlc0FkZGVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZXNBZGRlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRmlsZVJlbW92ZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEZpbGVSZW1vdmVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZVJlbW92ZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFNlbmRpbmdFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTZW5kaW5nRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRTZW5kaW5nTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTZW5kaW5nTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFByb2Nlc3NpbmdFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9jZXNzaW5nRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9jZXNzaW5nTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9jZXNzaW5nTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFByb2dyZXNzRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFByb2dyZXNzVG90YWxFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9ncmVzc1RvdGFsRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRFcnJvckV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRFcnJvck11bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRXJyb3JNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkU3VjY2Vzc0V2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFN1Y2Nlc3NFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFN1Y2Nlc3NNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFN1Y2Nlc3NNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkQ2FuY2VsZWRFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkQ2FuY2VsZWRNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZENhbmNlbGVkTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENvbXBsZXRlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENvbXBsZXRlTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZU11bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVXBsb2FkIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVXBsb2FkIHtcbiAgLyoqXG4gICAqIEZpbGUgYWRkZWRcbiAgICovXG4gIHN0emhGaWxlQWRkZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlQWRkZWRFdmVudD4+O1xuICAvKipcbiAgICogRmlsZXMgYWRkZWQgKG11bHRpcGxlKVxuICAgKi9cbiAgc3R6aEZpbGVzQWRkZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlc0FkZGVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGUgcmVtb3ZlIChiZWZvcmUsIGNhbmNlbGFibGUpXG4gICAqL1xuICBzdHpoRmlsZVJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVFdmVudD4+O1xuICAvKipcbiAgICogRmlsZSByZW1vdmVkXG4gICAqL1xuICBzdHpoRmlsZVJlbW92ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBCZWZvcmUgc2VuZGluZyBmaWxlIChhZGQgYWRkaXRpb25hbCBkYXRhIGJlZm9yZSByZXF1ZXN0IGlmIG5lY2Vzc2FyeSlcbiAgICovXG4gIHN0emhTZW5kaW5nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ0V2ZW50Pj47XG4gIC8qKlxuICAgKiBCZWZvcmUgc2VuZGluZyBtdWx0aXBsZSBmaWxlcyAoYWRkIGFkZGl0aW9uYWwgZGF0YSBiZWZvcmUgcmVxdWVzdCBpZiBuZWNlc3NhcnkpXG4gICAqL1xuICBzdHpoU2VuZGluZ011bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ011bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIHN0YXJ0aW5nIHRvIGdldCBwcm9jZXNzZWRcbiAgICovXG4gIHN0emhQcm9jZXNzaW5nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBzdGFydGluZyB0byBnZXQgcHJvY2Vzc2VkIChtdWx0aXBsZSlcbiAgICovXG4gIHN0emhQcm9jZXNzaW5nTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9jZXNzaW5nTXVsdGlwbGVFdmVudD4+O1xuICAvKipcbiAgICogVXBsb2FkIGZpbGUgcHJvZ3Jlc3MgZHVyaW5nIHVwbG9hZFxuICAgKi9cbiAgc3R6aFByb2dyZXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NFdmVudD4+O1xuICAvKipcbiAgICogVXBsb2FkIHRvdGFsIGZpbGUgcHJvZ3Jlc3MgZHVyaW5nIHVwbG9hZFxuICAgKi9cbiAgc3R6aFByb2dyZXNzVG90YWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9ncmVzc1RvdGFsRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGUgZXJyb3JcbiAgICovXG4gIHN0emhFcnJvcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIGVycm9yIChtdWx0aXBsZSBmaWxlcylcbiAgICovXG4gIHN0emhFcnJvck11bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRXJyb3JNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlIHN1Y2Nlc3NmdWxseSB1cGxvYWRlZFxuICAgKi9cbiAgc3R6aFN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIHN1Y2Nlc3NmdWxseSB1cGxvYWRlZCAobXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoU3VjY2Vzc011bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU3VjY2Vzc011bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENhbmNlbGVkIGZpbGUgdXBsb2FkXG4gICAqL1xuICBzdHpoQ2FuY2VsZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDYW5jZWxlZCBmaWxlIHVwbG9hZCAobXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoQ2FuY2VsZWRNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZENhbmNlbGVkTXVsdGlwbGVFdmVudD4+O1xuICAvKipcbiAgICogQ29tcGxldGVkIHVwbG9hZCAoc3VjY2Vzc2Z1bGx5IG9yIHdpdGggZXJyb3IpXG4gICAqL1xuICBzdHpoQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDb21wbGV0ZWQgdXBsb2FkIChzdWNjZXNzZnVsbHkgb3Igd2l0aCBlcnJvciwgbXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoQ29tcGxldGVNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZENvbXBsZXRlTXVsdGlwbGVFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvcGxheVRpbWVvdXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdmJ6LWNhcm91c2VsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvcGxheVRpbWVvdXQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiekNhcm91c2VsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekNhcm91c2VsIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6Q2Fyb3VzZWwge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdmJ6LWNvbm5lY3Rpb24tZmluZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpDb25uZWN0aW9uRmluZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekNvbm5lY3Rpb25GaW5kZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpDb25uZWN0aW9uRmluZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdxdWlja2xpbmtzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1pbnRybycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ3F1aWNrbGlua3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiekludHJvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekludHJvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6SW50cm8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2FsZXJ0JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2dsb2JhbCcsICdsaW5lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1saW5lY2hpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2FsZXJ0JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2dsb2JhbCcsICdsaW5lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpMaW5lY2hpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFZiekxpbmVjaGlwRm9jdXNFdmVudCBhcyBJU3R6aFZiekxpbmVjaGlwU3R6aFZiekxpbmVjaGlwRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFZiekxpbmVjaGlwQmx1ckV2ZW50IGFzIElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVmJ6TGluZWNoaXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpMaW5lY2hpcCB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnZGF0YScsICdkYXRlQWRhcHRlcicsICdsb2NhbGl6YXRpb24nLCAnbW9yZUluZm9MaW5rJywgJ3Nob3dDbG9zZUtleSddLFxuICBtZXRob2RzOiBbJ2dldEdoZXR0b2JveFNob3duJywgJ2dldERpc3R1cmJhbmNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1tYWpvcnRpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBpJywgJ2RhdGEnLCAnZGF0ZUFkYXB0ZXInLCAnbG9jYWxpemF0aW9uJywgJ21vcmVJbmZvTGluaycsICdzaG93Q2xvc2VLZXknXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiek1ham9ydGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aERpc3R1cmJhbmNlRmV0Y2hlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFZiek1ham9ydGlja2VyRGlzdHVyYmFuY2VGZXRjaGVkRXZlbnQgYXMgSVN0emhWYnpNYWpvcnRpY2tlclN0emhWYnpNYWpvcnRpY2tlckRpc3R1cmJhbmNlRmV0Y2hlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiek1ham9ydGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6TWFqb3J0aWNrZXIge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBtYWpvciBkaXN0dXJiYW5jZSB3YXMgZmV0Y2hlZFxuICAgKi9cbiAgc3R6aERpc3R1cmJhbmNlRmV0Y2hlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TWFqb3J0aWNrZXJTdHpoVmJ6TWFqb3J0aWNrZXJEaXN0dXJiYW5jZUZldGNoZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnZGF0YScsICdkYXRlQWRhcHRlcicsICdsb2NhbGl6YXRpb24nLCAnbW9yZUluZm9MaW5rJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei10aWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdkYXRhJywgJ2RhdGVBZGFwdGVyJywgJ2xvY2FsaXphdGlvbicsICdtb3JlSW5mb0xpbmsnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZielRpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpUaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpUaWNrZXIge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdmlzdWFsbHloaWRkZW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZpc3VhbGx5aGlkZGVuIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZpc3VhbGx5aGlkZGVuIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmlzdWFsbHloaWRkZW4ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZEJvdHRvbScsICdhcm91bmRUb3AnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZzcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZEJvdHRvbScsICdhcm91bmRUb3AnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWc3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVnNwYWNlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVnNwYWNlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nvb2tpZScsICdjb29raWVFeHBpcmVzJywgJ2xvY2FsaXphdGlvbicsICdza2lwUHJldmlldycsICdza2lwUHJldmlld0lmQ29va2llQWNjZXB0ZWQnLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXlvdXR1YmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nvb2tpZScsICdjb29raWVFeHBpcmVzJywgJ2xvY2FsaXphdGlvbicsICdza2lwUHJldmlldycsICdza2lwUHJldmlld0lmQ29va2llQWNjZXB0ZWQnLCAndXJsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhZb3V0dWJlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFlvdXR1YmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhZb3V0dWJlIHt9XG5cblxuIl19
|
|
3457
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0emgtY29tcG9uZW50cy1hbmd1bGFyL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvcHJveGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFnQmhFLFdBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7SUFFeEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7K0dBTlUsYUFBYTttR0FBYixhQUFhLDBLQUpkLDJCQUEyQjs7QUFJMUIsYUFBYTtJQVh6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztRQUNoRSxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7S0FDMUIsQ0FBQztHQVFXLGFBQWEsQ0FPekI7NEZBUFksYUFBYTtrQkFQekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUs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Q3pHIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGF1dG8tZ2VuZXJhdGVkIGFuZ3VsYXIgZGlyZWN0aXZlIHByb3hpZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCwgcHJveHlPdXRwdXRzIH0gZnJvbSAnLi9hbmd1bGFyLWNvbXBvbmVudC1saWIvdXRpbHMnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRzIH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdoZWFkaW5nJywgJ211bHRpc2VsZWN0YWJsZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2V0SXRlbUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFjY29yZGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sbGFwc2libGUnLCAnaGVhZGluZycsICdtdWx0aXNlbGVjdGFibGUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQWNjb3JkaW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aFZhcmlhbnRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25WYXJpYW50Q2hhbmdlRXZlbnQgYXMgSVN0emhBY2NvcmRpb25TdHpoQWNjb3JkaW9uVmFyaWFudENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFjY29yZGlvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjY29yZGlvbiB7XG4gIC8qKlxuICAgKiBWYXJpYW50IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFZhcmlhbnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvblN0emhBY2NvcmRpb25WYXJpYW50Q2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaWNvbicsICdvcGVuJywgJ3N1YnRpdGxlJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFjY29yZGlvbi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb2xsYXBzaWJsZScsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpY29uJywgJ29wZW4nLCAnc3VidGl0bGUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQWNjb3JkaW9uSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtRm9jdXNFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtQmx1ckV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFjY29yZGlvbkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBY2NvcmRpb25JdGVtIHtcbiAgLyoqXG4gICAqIE9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1CbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc3BhY2VCZXR3ZWVuJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYWN0aW9ucycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3BhY2VCZXR3ZWVuJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFjdGlvbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQWN0aW9ucyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjdGlvbnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aW9ucycsICdsb2NhbGl6YXRpb24nLCAncG9wb3ZlckJ1dHRvblNpemUnLCAncG9wb3ZlckJ1dHRvblZhcmlhbnQnLCAncG9wb3ZlclBsYWNlbWVudCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFjdGlvbnNldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9ucycsICdsb2NhbGl6YXRpb24nLCAncG9wb3ZlckJ1dHRvblNpemUnLCAncG9wb3ZlckJ1dHRvblZhcmlhbnQnLCAncG9wb3ZlclBsYWNlbWVudCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBY3Rpb25zZXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQWN0aW9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBY3Rpb25zZXRJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFjdGlvbnNldFN0emhBY3Rpb25zZXRJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBY3Rpb25zZXQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBY3Rpb25zZXQge1xuICAvKipcbiAgICogSGVhZGVyIGFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY3Rpb25zZXRTdHpoQWN0aW9uc2V0SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NsZWFyYWJsZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heFZhbHVlJywgJ21heFZhbHVlRHJvcGRvd24nLCAnbWluVmFsdWUnLCAnbWluVmFsdWVEcm9wZG93bicsICduYW1lJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFtb3VudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NsZWFyYWJsZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heFZhbHVlJywgJ21heFZhbHVlRHJvcGRvd24nLCAnbWluVmFsdWUnLCAnbWluVmFsdWVEcm9wZG93bicsICduYW1lJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBbW91bnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQW1vdW50Q2hhbmdlRXZlbnQgYXMgSVN0emhBbW91bnRTdHpoQW1vdW50Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQW1vdW50IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQW1vdW50IHtcbiAgLyoqXG4gICAqIEFtb3VudCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFtb3VudFN0emhBbW91bnRDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtcycsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYW5jaG9ybmF2JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpdGVtcycsICdsb2NhbGl6YXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFuY2hvcm5hdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhJdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBbmNob3JuYXZJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFuY2hvcm5hdlN0emhBbmNob3JuYXZJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBbmNob3JuYXYgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBbmNob3JuYXYge1xuICAvKipcbiAgICogSXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQW5jaG9ybmF2U3R6aEFuY2hvcm5hdkl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFwcC1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFwcEJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBcHBCYXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcHBCYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaXRlbXMnLCAnbG9jYWxpemF0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFwcC1uYXYnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXBwTmF2IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEFwcE5hdkl0ZW1DbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQXBwTmF2U3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFwcE5hdiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFwcE5hdiB7XG4gIC8qKlxuICAgKiBBcHBOYXYgaXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEFwcE5hdkl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXBwTmF2U3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwcG9pbnRtZW50cycsICdhcHBvaW50bWVudHNUaXRsZScsICdjYWxlbmRhclRpdGxlJywgJ2N1cnJlbnREYXRlJywgJ2RhdGVBZGFwdGVyJywgJ2Rpc2FibGVTb3J0JywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3Nob3dJdGVtcycsICdzb3J0QnknLCAnc3RlcEl0ZW1zJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFwcG9pbnRtZW50cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwb2ludG1lbnRzJywgJ2FwcG9pbnRtZW50c1RpdGxlJywgJ2NhbGVuZGFyVGl0bGUnLCAnY3VycmVudERhdGUnLCAnZGF0ZUFkYXB0ZXInLCAnZGlzYWJsZVNvcnQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnc2hvd0l0ZW1zJywgJ3NvcnRCeScsICdzdGVwSXRlbXMnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFwcG9pbnRtZW50cyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBcHBvaW50bWVudHNDaGFuZ2VFdmVudCBhcyBJU3R6aEFwcG9pbnRtZW50c1N0emhBcHBvaW50bWVudHNDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBcHBvaW50bWVudHMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcHBvaW50bWVudHMge1xuICAvKipcbiAgICogQXBwb2ludG1lbnRzIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXBwb2ludG1lbnRzU3R6aEFwcG9pbnRtZW50c0NoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFyY2hpdmVsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpdGVtcycsICdsb2NhbGl6YXRpb24nLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXJjaGl2ZWxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSXRlbUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQXJjaGl2ZWxpc3RJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFyY2hpdmVsaXN0U3R6aEFyY2hpdmVsaXN0SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQXJjaGl2ZWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcmNoaXZlbGlzdCB7XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBcmNoaXZlbGlzdFN0emhBcmNoaXZlbGlzdEl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rvd25sb2FkQW5hbHl0aWNzSWQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZWxvYWQnLCAnc3JjJywgJ3RyYW5zY3JpcHQnLCAndHJhbnNjcmlwdEFuYWx5dGljc0lkJywgJ3RyYW5zY3JpcHRTaG93biddLFxuICBtZXRob2RzOiBbJ3BsYXknLCAncGF1c2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYXVkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rvd25sb2FkQW5hbHl0aWNzSWQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZWxvYWQnLCAnc3JjJywgJ3RyYW5zY3JpcHQnLCAndHJhbnNjcmlwdEFuYWx5dGljc0lkJywgJ3RyYW5zY3JpcHRTaG93biddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXVkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoUGxheScsICdzdHpoUGxheWluZycsICdzdHpoUGF1c2UnLCAnc3R6aFJlcGxheScsICdzdHpoRW5kJywgJ3N0emhFbmRlZCcsICdzdHpoRXJyb3InXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb1BsYXlFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9QbGF5aW5nRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb1BsYXlpbmdFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvUGF1c2VFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvUGF1c2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvUmVwbGF5RXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb1JlcGxheUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9FbmRFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvRW5kRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb0VuZGVkRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb0VuZGVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb0Vycm9yRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb0Vycm9yRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQXVkaW8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBdWRpbyB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBwYXVzZWQgcHJvcGVydHkgaXMgY2hhbmdlZCBmcm9tIHRydWUgdG8gZmFsc2UsIGFzIGEgcmVzdWx0IG9mIHRoZSBwbGF5KCkgbWV0aG9kLCBvciB0aGUgYXV0b3BsYXkgYXR0cmlidXRlLlxuICAgKi9cbiAgc3R6aFBsYXk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHBsYXliYWNrIGlzIHJlYWR5IHRvIHN0YXJ0IGFmdGVyIGhhdmluZyBiZWVuIHBhdXNlZCBvciBkZWxheWVkIGR1ZSB0byBsYWNrIG9mIGRhdGEuXG4gICAqL1xuICBzdHpoUGxheWluZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5aW5nRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYSByZXF1ZXN0IHRvIHBhdXNlIGFuIGFjdGl2aXR5IGlzIGhhbmRsZWQgYW5kIHRoZSBhY3Rpdml0eSBoYXMgZW50ZXJlZCBpdHMgcGF1c2VkIHN0YXRlLCBtb3N0IGNvbW1vbmx5IGFmdGVyIHRoZSBtZWRpYSBoYXMgYmVlbiBwYXVzZWQgdGhyb3VnaCBhIGNhbGwgdG8gdGhlIHBhdXNlKCkgbWV0aG9kLlxuICAgKi9cbiAgc3R6aFBhdXNlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb1BhdXNlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gbWVkaWEgcGxheWJhY2sgc3RhcnRzIGFnYWluIGFmdGVyIGJlaW5nIGluIGFuIGVuZGVkIHN0YXRlLiBUaGlzIGlzIGZpcmVkIHdoZW4gdGhlIGxvb3AgcHJvcGVydHkgaXMgdHJ1ZSBhbmQgbWVkaWEgbG9vcHMsIHdoZXJlYXMgdGhlIHZkcy1wbGF5IGV2ZW50IGlzIG5vdC5cbiAgICovXG4gIHN0emhSZXBsYXk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUmVwbGF5RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIGVhY2ggdGltZSBtZWRpYSBwbGF5YmFjayBoYXMgcmVhY2hlZCB0aGUgZW5kLiBUaGlzIGlzIGZpcmVkIGV2ZW4gaWYgdGhlIGxvb3AgcHJvcGVydHkgaXMgdHJ1ZSwgd2hpY2ggaXMgZ2VuZXJhbGx5IHdoZW4geW91J2QgcmVhY2ggZm9yIHRoaXMgZXZlbnQgb3ZlciB0aGUgTWVkaWFFbmRlZEV2ZW50IGlmIHlvdSB3YW50IHRvIGJlIG5vdGlmaWVkIG9mIG1lZGlhIGxvb3BpbmcuXG4gICAqL1xuICBzdHpoRW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb0VuZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHBsYXliYWNrIG9yIHN0cmVhbWluZyBoYXMgc3RvcHBlZCBiZWNhdXNlIHRoZSBlbmQgb2YgdGhlIG1lZGlhIHdhcyByZWFjaGVkIG9yIGJlY2F1c2Ugbm8gZnVydGhlciBkYXRhIGlzIGF2YWlsYWJsZS4gVGhpcyBpcyBub3QgZmlyZWQgaWYgcGxheWJhY2sgd2lsbCBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmcgYWdhaW4gZHVlIHRvIHRoZSBsb29wIHByb3BlcnR5IGJlaW5nIHRydWUgKHNlZSBNZWRpYVJlcGxheUV2ZW50IGFuZCBNZWRpYUVuZEV2ZW50KS5cbiAgICovXG4gIHN0emhFbmRlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9FbmRlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIG1lZGlhIGxvYWRpbmcgb3IgcGxheWJhY2sgaGFzIGVuY291bnRlcmVkIGFueSBpc3N1ZXMgKGZvciBleGFtcGxlLCBhIG5ldHdvcmsgY29ubmVjdGl2aXR5IHByb2JsZW0pLiBUaGUgZXZlbnQgZGV0YWlsIGNvbnRhaW5zIGEgcG90ZW50aWFsIG1lc3NhZ2UgY29udGFpbmluZyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvciAoZW1wdHkgc3RyaW5nIGlmIG5vdGhpbmcgYXZhaWxhYmxlKSwgYW5kIGEgY29kZSB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyYWwgdHlwZSBvZiBlcnJvciB0aGF0IG9jY3VycmVkLlxuICAgKi9cbiAgc3R6aEVycm9yOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb0Vycm9yRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1iYWRnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQmFkZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQmFkZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCYWRnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlQ2xvc2UnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJhbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQmFubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQmFubmVyT3BlbkV2ZW50IGFzIElTdHpoQmFubmVyU3R6aEJhbm5lck9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJhbm5lckNsb3NlRXZlbnQgYXMgSVN0emhCYW5uZXJTdHpoQmFubmVyQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCYW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCYW5uZXIge1xuICAvKipcbiAgICogQmFubmVyIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCYW5uZXJTdHpoQmFubmVyT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBCYW5uZXIgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQmFubmVyU3R6aEJhbm5lckNsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZXhwYW5kZWQnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYnJlYWRjcnVtYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZXhwYW5kZWQnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJyZWFkY3J1bWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSXRlbUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQnJlYWRjcnVtYkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQnJlYWRjcnVtYlN0emhCcmVhZGNydW1iSXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQnJlYWRjcnVtYiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJyZWFkY3J1bWIge1xuICAvKipcbiAgICogSXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnJlYWRjcnVtYlN0emhCcmVhZGNydW1iSXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlDdXJyZW50JywgJ2ExMXlEZXNjcmliZWRieScsICdhMTF5RGlzYWJsZWQnLCAnYTExeUV4cGFuZGVkJywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VQb3NpdGlvbicsICdiYWRnZVR5cGUnLCAnYnV0dG9uQWNjZXNza2V5JywgJ2J1dHRvbklkJywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZWZmZWN0JywgJ2Z1bGx3aWR0aCcsICdocmVmJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ25vSHlwaGVuYXRpb24nLCAnbm9QYWRkaW5nTGVmdCcsICdub1BhZGRpbmdSaWdodCcsICdyZWwnLCAncm91bmRlZCcsICdzaG93VG9nZ2xlSWNvbicsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdidXR0b25BY2Nlc3NrZXknLCAnYnV0dG9uSWQnLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdlZmZlY3QnLCAnZnVsbHdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbm9IeXBoZW5hdGlvbicsICdub1BhZGRpbmdMZWZ0JywgJ25vUGFkZGluZ1JpZ2h0JywgJ3JlbCcsICdyb3VuZGVkJywgJ3Nob3dUb2dnbGVJY29uJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFsdWUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEZvY3VzJywgJ3N0emhCbHVyJywgJ3N0emhDaGFuZ2UnLCAnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uRm9jdXNFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uQmx1ckV2ZW50IGFzIElTdHpoQnV0dG9uU3R6aEJ1dHRvbkJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkNoYW5nZUV2ZW50IGFzIElTdHpoQnV0dG9uU3R6aEJ1dHRvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uQ2xpY2tFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJ1dHRvbiB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25CbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudCAob25seSBjYWxsZWQgaWYgdHlwZSBpcyByYWRpbylcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYnV0dG9uZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJ1dHRvbmdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJ1dHRvbmdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQnV0dG9uZ3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmlyc3REYXlPZldlZWsnLCAnaXNEYXRlRGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtaW4nLCAnbmV4dE1vbnRoQW5hbHl0aWNzSWQnLCAncHJldk1vbnRoQW5hbHl0aWNzSWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1c2VkRGF5JywgJ3NldERhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FsZW5kYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZpcnN0RGF5T2ZXZWVrJywgJ2lzRGF0ZURpc2FibGVkJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25leHRNb250aEFuYWx5dGljc0lkJywgJ3ByZXZNb250aEFuYWx5dGljc0lkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYWxlbmRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYWxlbmRhckNoYW5nZUV2ZW50IGFzIElTdHpoQ2FsZW5kYXJTdHpoQ2FsZW5kYXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYWxlbmRhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhbGVuZGFyIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIGRhdGUgaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYWxlbmRhclN0emhDYWxlbmRhckNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2NoZWNrZWQnLCAnY29sbGFwc2VkJywgJ2NvbGxhcHNpYmxlJywgJ2Rpc2FibGVkJywgJ2Zvb3RlckFjdGlvbnMnLCAnaGVhZGVyQWN0aW9ucycsICdoZWFkZXJBY3Rpb25zQmFkZ2UnLCAnaGVhZGVyQWN0aW9uc0JhZGdlVHlwZScsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdoaWRlTW92ZW1lbnRBY3Rpb25zJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnc2VsZWN0YWJsZScsICdzb3J0YWJsZURpc2FibGVkJywgJ3N0YXJyYWJsZScsICdzdGFycmVkJywgJ3N1YnRpdGxlJywgJ3N1YnRpdGxlSW50ZXJhY3RpdmUnLCAndGFyZ2V0JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnY2hlY2tlZCcsICdjb2xsYXBzZWQnLCAnY29sbGFwc2libGUnLCAnZGlzYWJsZWQnLCAnZm9vdGVyQWN0aW9ucycsICdoZWFkZXJBY3Rpb25zJywgJ2hlYWRlckFjdGlvbnNCYWRnZScsICdoZWFkZXJBY3Rpb25zQmFkZ2VUeXBlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hpZGVNb3ZlbWVudEFjdGlvbnMnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdzZWxlY3RhYmxlJywgJ3NvcnRhYmxlRGlzYWJsZWQnLCAnc3RhcnJhYmxlJywgJ3N0YXJyZWQnLCAnc3VidGl0bGUnLCAnc3VidGl0bGVJbnRlcmFjdGl2ZScsICd0YXJnZXQnLCAndmFsdWUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljaycsICdzdHpoQ29sbGFwc2UnLCAnc3R6aFN1YnRpdGxlQ2xpY2snLCAnc3R6aFN0YXJDbGljaycsICdzdHpoSGVhZGVyQWN0aW9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkQ29sbGFwc2VFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZENvbGxhcHNlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkU3VidGl0bGVDbGlja0V2ZW50IGFzIElTdHpoQ2FyZFN0emhDYXJkU3VidGl0bGVDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFN0YXJDbGlja0V2ZW50IGFzIElTdHpoQ2FyZFN0emhDYXJkU3RhckNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkSGVhZGVyQWN0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZEhlYWRlckFjdGlvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmQge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgKGlmIGhyZWYgaXMgdXNlZClcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogQ29sbGFwc2UgZXZlbnRcbiAgICovXG4gIHN0emhDb2xsYXBzZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkQ29sbGFwc2VFdmVudD4+O1xuICAvKipcbiAgICogU3VidGl0bGUgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhTdWJ0aXRsZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRTdWJ0aXRsZUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN0YXIgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhTdGFyQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZFN0YXJDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBIZWFkZXIgYWN0aW9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSGVhZGVyQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZEhlYWRlckFjdGlvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdsZWFkJywgJ3RhcmdldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkLW5hdmlnYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnbGVhZCcsICd0YXJnZXQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmROYXZpZ2F0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZE5hdmlnYXRpb25DbGlja0V2ZW50IGFzIElTdHpoQ2FyZE5hdmlnYXRpb25TdHpoQ2FyZE5hdmlnYXRpb25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmROYXZpZ2F0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FyZE5hdmlnYXRpb24ge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgKGlmIGhyZWYgaXMgdXNlZClcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZE5hdmlnYXRpb25TdHpoQ2FyZE5hdmlnYXRpb25DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3NlcnZpY2UnLCAndGFnJywgJ3RhcmdldCcsICd0b3BpYyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkLXNlYXJjaHJlc3VsdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYnJlYWRjcnVtYkl0ZW1zJywgJ2RhdGFsaXN0SXRlbXMnLCAnZGF0ZUFkYXB0ZXInLCAnZGF0ZWxpbmUnLCAnZGVzY3JpcHRpb24nLCAnZG93bmxvYWQnLCAnZG93bmxvYWRIZWFkaW5nJywgJ2Rvd25sb2FkTWV0YScsICdldmVudERhdGVFbmQnLCAnZXZlbnREYXRlU3RhcnQnLCAnZXZlbnRMb2NhdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2ltYWdlUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAnc2VydmljZScsICd0YWcnLCAndGFyZ2V0JywgJ3RvcGljJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJkU2VhcmNocmVzdWx0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFNlYXJjaHJlc3VsdENsaWNrRXZlbnQgYXMgSVN0emhDYXJkU2VhcmNocmVzdWx0U3R6aENhcmRTZWFyY2hyZXN1bHRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRTZWFyY2hyZXN1bHQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJkU2VhcmNocmVzdWx0IHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IChpZiBocmVmIGlzIHVzZWQpXG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTZWFyY2hyZXN1bHRTdHpoQ2FyZFNlYXJjaHJlc3VsdENsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYnJlYWRjcnVtYkl0ZW1zJywgJ2RhdGFsaXN0SXRlbXMnLCAnZGF0ZUFkYXB0ZXInLCAnZGF0ZWxpbmUnLCAnZGVzY3JpcHRpb24nLCAnZG93bmxvYWQnLCAnZG93bmxvYWRIZWFkaW5nJywgJ2Rvd25sb2FkTWV0YScsICdldmVudERhdGVFbmQnLCAnZXZlbnREYXRlU3RhcnQnLCAnZXZlbnRMb2NhdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2ltYWdlUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAnc2VydmljZScsICd0YWcnLCAndGFyZ2V0JywgJ3RvcGljJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcmQtc3VwZXJ0ZWFzZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3NlcnZpY2UnLCAndGFnJywgJ3RhcmdldCcsICd0b3BpYyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZFN1cGVydGVhc2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdXBlcnRlYXNlclN0emhDYXJkU3VwZXJ0ZWFzZXJDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRTdXBlcnRlYXNlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmRTdXBlcnRlYXNlciB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudCAoaWYgaHJlZiBpcyB1c2VkKVxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3VwZXJ0ZWFzZXJTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdsYXlvdXQnLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dUb2dnbGVMaW5rJywgJ3NvcnRhYmxlRGF0YUlkQXR0cmlidXRlJywgJ3NvcnRhYmxlRW5hYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnbGF5b3V0JywgJ2xvY2FsaXphdGlvbicsICdzaG93VG9nZ2xlTGluaycsICdzb3J0YWJsZURhdGFJZEF0dHJpYnV0ZScsICdzb3J0YWJsZUVuYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmRsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENvbGxhcHNlQWxsJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZGxpc3RDb2xsYXBzZUFsbEV2ZW50IGFzIElTdHpoQ2FyZGxpc3RTdHpoQ2FyZGxpc3RDb2xsYXBzZUFsbEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FyZGxpc3Qge1xuICAvKipcbiAgICogQ29sbGFwc2UgYWxsIGV2ZW50XG4gICAqL1xuICBzdHpoQ29sbGFwc2VBbGw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRsaXN0U3R6aENhcmRsaXN0Q29sbGFwc2VBbGxFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvcGxheScsICdhdXRvcGxheVRpbWVvdXQnLCAnZGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ25vUGVlaycsICdub25JbnRlcmFjdGl2ZScsICdwcmV2ZW50QXV0b3BsYXlQYXVzZScsICdwcmV2ZW50QXV0b3BsYXlTdG9wJywgJ3ByZXZlbnRNb3VzZURyYWcnLCAnc2xpZGUnLCAnc2xpZGVzJywgJ3NsaWRlc0xhcmdlJywgJ3NsaWRlc01lZGl1bScsICdzbGlkZXNTbWFsbCcsICdzbGlkZXNVbHRyYScsICd0YWJUaHJvdWdoJywgJ3ZhcmlhbnQnLCAnd2l0aFRyYWNrJ10sXG4gIG1ldGhvZHM6IFsnc2xpZGVUbycsICdzbGlkZVRvUHJldmlvdXMnLCAnc2xpZGVUb05leHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2Fyb3VzZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9wbGF5JywgJ2F1dG9wbGF5VGltZW91dCcsICdkaXNhYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbm9QZWVrJywgJ25vbkludGVyYWN0aXZlJywgJ3ByZXZlbnRBdXRvcGxheVBhdXNlJywgJ3ByZXZlbnRBdXRvcGxheVN0b3AnLCAncHJldmVudE1vdXNlRHJhZycsICdzbGlkZScsICdzbGlkZXMnLCAnc2xpZGVzTGFyZ2UnLCAnc2xpZGVzTWVkaXVtJywgJ3NsaWRlc1NtYWxsJywgJ3NsaWRlc1VsdHJhJywgJ3RhYlRocm91Z2gnLCAndmFyaWFudCcsICd3aXRoVHJhY2snXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcm91c2VsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aFNsaWRlU3RhcnQnLCAnc3R6aFNsaWRlUGFzc2VkJywgJ3N0emhTbGlkZUVuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50IGFzIElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVN0YXJ0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlUGFzc2VkRXZlbnQgYXMgSVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlUGFzc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlRW5kRXZlbnQgYXMgSVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlRW5kRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2Fyb3VzZWwgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJvdXNlbCB7XG4gIC8qKlxuICAgKiBTbGlkZSBzdGFydCBldmVudFxuICAgKi9cbiAgc3R6aFNsaWRlU3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50Pj47XG4gIC8qKlxuICAgKiBTbGlkZSBwYXNzZWQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZVBhc3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVBhc3NlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBTbGlkZSBlbmQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZUVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZUVuZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2FsaWduU2VsZicsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2VsbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxpZ24nLCAnYWxpZ25TZWxmJywgJ3NwYW4nLCAnc3BhbkxhcmdlJywgJ3NwYW5NZWRpdW0nLCAnc3BhblNtYWxsJywgJ3NwYW5VbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2VsbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGFydElkJywgJ2NyZWF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hhcnRJZCcsICdjcmVhdGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hhcnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoZWNrYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoZWNrYm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGVja2JveENoYW5nZUV2ZW50IGFzIElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoZWNrYm94Rm9jdXNFdmVudCBhcyBJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Rm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoZWNrYm94Qmx1ckV2ZW50IGFzIElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDaGVja2JveCB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Q2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Qmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWRDaGVja2JveCcsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2RpcmVjdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlTGVnZW5kJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xlZ2VuZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2ZW50VXBkYXRlUHJvcGVydGllcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGVja2JveGdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkQ2hlY2tib3gnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXJlY3Rpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZUxlZ2VuZCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmVudFVwZGF0ZVByb3BlcnRpZXMnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoZWNrYm94Z3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2hlY2tib3hncm91cENoYW5nZUV2ZW50IGFzIElTdHpoQ2hlY2tib3hncm91cFN0emhDaGVja2JveGdyb3VwQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hlY2tib3hncm91cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoZWNrYm94Z3JvdXAge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveGdyb3VwU3R6aENoZWNrYm94Z3JvdXBDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnY291bnRlcicsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnaW52ZXJ0ZWQnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZhYmxlJywgJ3JlbW92ZUFuYWx5dGljc0lkJywgJ3JlbW92ZUxhYmVsJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdjb3VudGVyJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdpbnZlcnRlZCcsICdsYWJlbCcsICdub25JbnRlcmFjdGl2ZScsICdyZW1vdmFibGUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAncmVtb3ZlTGFiZWwnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0eXBlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aFJlbW92ZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwQ2xpY2tFdmVudCBhcyBJU3R6aENoaXBTdHpoQ2hpcENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwUmVtb3ZlRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBSZW1vdmVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoaXBGb2N1c0V2ZW50IGFzIElTdHpoQ2hpcFN0emhDaGlwRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoaXBCbHVyRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoaXAge1xuICAvKipcbiAgICogQ2hpcCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBDaGlwIHJlbW92ZSBldmVudFxuICAgKi9cbiAgc3R6aFJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBTdHpoQ2hpcEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hpcGdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGlwZ3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcGdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hpcGdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdkYXRhJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ211bHRpcGxlJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hpcHNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2RhdGEnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbXVsdGlwbGUnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2hpcHNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwc2VsZWN0Q2hhbmdlRXZlbnQgYXMgSVN0emhDaGlwc2VsZWN0U3R6aENoaXBzZWxlY3RDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDaGlwc2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hpcHNlbGVjdCB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBzZWxlY3RTdHpoQ2hpcHNlbGVjdENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsYW1wZWQnLCAnZXhwYW5kZWQnLCAnbGluZXMnLCAnbGluZXNMYXJnZScsICdsaW5lc01lZGl1bScsICdsaW5lc1NtYWxsJywgJ2xpbmVzVWx0cmEnLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dFeHBhbmRMaW5rJ10sXG4gIG1ldGhvZHM6IFsndXBkYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNsYW1wJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGFtcGVkJywgJ2V4cGFuZGVkJywgJ2xpbmVzJywgJ2xpbmVzTGFyZ2UnLCAnbGluZXNNZWRpdW0nLCAnbGluZXNTbWFsbCcsICdsaW5lc1VsdHJhJywgJ2xvY2FsaXphdGlvbicsICdzaG93RXhwYW5kTGluayddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2xhbXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xhbXAnLCAnc3R6aEV4cGFuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENsYW1wQ2xhbXBFdmVudCBhcyBJU3R6aENsYW1wU3R6aENsYW1wQ2xhbXBFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENsYW1wRXhwYW5kRXZlbnQgYXMgSVN0emhDbGFtcFN0emhDbGFtcEV4cGFuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENsYW1wIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2xhbXAge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBjbGFtcGluZyBzdGF0ZSBjaGFuZ2VkXG4gICAqL1xuICBzdHpoQ2xhbXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENsYW1wU3R6aENsYW1wQ2xhbXBFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBleHBhbmRpbmcgc3RhdGUgY2hhbmdlZFxuICAgKi9cbiAgc3R6aEV4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2xhbXBTdHpoQ2xhbXBFeHBhbmRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhZGRyZXNzJywgJ2F2YWlsYWJpbGl0eScsICdhdmFpbGFiaWxpdHlUaXRsZScsICdhdmFpbGFiaWxpdHlUaXRsZUxldmVsJywgJ2VtYWlscycsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2F0aW9uJywgJ21haW5IZWFkaW5nJywgJ21haW5IZWFkaW5nTGV2ZWwnLCAnbmFtZScsICduYW1lSGVhZGluZ0xldmVsJywgJ251bWJlcnMnLCAncG9ib3gnLCAncG9ib3hIZWFkaW5nJywgJ3BvYm94TG9jYXRpb24nLCAncG9ib3hQb3N0YWxDb2RlJywgJ3BvYm94VGl0bGUnLCAncG9zdGFsQ29kZScsICdzdHJlZXQnLCAnc3RyZWV0SW5mbycsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRhY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FkZHJlc3MnLCAnYXZhaWxhYmlsaXR5JywgJ2F2YWlsYWJpbGl0eVRpdGxlJywgJ2F2YWlsYWJpbGl0eVRpdGxlTGV2ZWwnLCAnZW1haWxzJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ltYWdlUG9zaXRpb24nLCAnbG9jYXRpb24nLCAnbWFpbkhlYWRpbmcnLCAnbWFpbkhlYWRpbmdMZXZlbCcsICduYW1lJywgJ25hbWVIZWFkaW5nTGV2ZWwnLCAnbnVtYmVycycsICdwb2JveCcsICdwb2JveEhlYWRpbmcnLCAncG9ib3hMb2NhdGlvbicsICdwb2JveFBvc3RhbENvZGUnLCAncG9ib3hUaXRsZScsICdwb3N0YWxDb2RlJywgJ3N0cmVldCcsICdzdHJlZXRJbmZvJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRhY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ29udGFjdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRhY3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaG9iYmllcycsICdqb2J0aXRsZScsICdsb2NhbGl6YXRpb24nLCAncmVzcG9uc2liaWxpdGllcycsICd0cmFpbmluZ3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29udGFjdC1jdicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaG9iYmllcycsICdqb2J0aXRsZScsICdsb2NhbGl6YXRpb24nLCAncmVzcG9uc2liaWxpdGllcycsICd0cmFpbmluZ3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRhY3RDdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDb250YWN0Q3YgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDb250YWN0Q3Yge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbm9NYXJnaW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydub01hcmdpbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwcmV2ZW50RWxlbWVudExheW91dCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ByZXZlbnRFbGVtZW50TGF5b3V0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ29udGVudCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRlbnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncHJldmVudFJlbW92ZU5lc3RlZCcsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNzcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncHJldmVudFJlbW92ZU5lc3RlZCcsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDc3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ3NwYWNlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ3NwYWNlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaHJlZicsICdsYWJlbCcsICdsZWFkJywgJ3N0aWNreURpc2FibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWN0YScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdocmVmJywgJ2xhYmVsJywgJ2xlYWQnLCAnc3RpY2t5RGlzYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEN0YSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDdGFGb2N1c0V2ZW50IGFzIElTdHpoQ3RhU3R6aEN0YUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDdGFCbHVyRXZlbnQgYXMgSVN0emhDdGFTdHpoQ3RhQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ3RhQ2xpY2tFdmVudCBhcyBJU3R6aEN0YVN0emhDdGFDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEN0YSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEN0YSB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEN0YVN0emhDdGFCbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEN0YVN0emhDdGFDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbHVtbnMnLCAnY29sdW1uc0xhcmdlJywgJ2NvbHVtbnNNZWRpdW0nLCAnY29sdW1uc1NtYWxsJywgJ2NvbHVtbnNVbHRyYScsICdkaXJlY3Rpb24nLCAnZGlyZWN0aW9uTGFyZ2UnLCAnZGlyZWN0aW9uTWVkaXVtJywgJ2RpcmVjdGlvblNtYWxsJywgJ2RpcmVjdGlvblVsdHJhJywgJ2l0ZW1zJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydnZXRDdXJyZW50RGlyZWN0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGFsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2x1bW5zJywgJ2NvbHVtbnNMYXJnZScsICdjb2x1bW5zTWVkaXVtJywgJ2NvbHVtbnNTbWFsbCcsICdjb2x1bW5zVWx0cmEnLCAnZGlyZWN0aW9uJywgJ2RpcmVjdGlvbkxhcmdlJywgJ2RpcmVjdGlvbk1lZGl1bScsICdkaXJlY3Rpb25TbWFsbCcsICdkaXJlY3Rpb25VbHRyYScsICdpdGVtcycsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhbGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhWYXJpYW50Q2hhbmdlJywgJ3N0emhEaXJlY3Rpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudCBhcyBJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0VmFyaWFudENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3REaXJlY3Rpb25DaGFuZ2VFdmVudCBhcyBJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0RGlyZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhbGlzdCB7XG4gIC8qKlxuICAgKiBWYXJpYW50IGF0dHJpYnV0ZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhWYXJpYW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRGlyZWN0aW9uIGF0dHJpYnV0ZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhEaXJlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0RGlyZWN0aW9uQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlFeHBhbmRlZCcsICdkb3dubG9hZCcsICdocmVmJywgJ2ljb24nLCAnaWNvbkhyZWYnLCAnaWNvbkxhYmVsJywgJ2ljb25Qb3NpdGlvbicsICdpY29uVG9vbHRpcCcsICdsYWJlbCcsICdsZWFkaW5nSWNvbicsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdyZWwnLCAnc3RhdHVzTGFiZWwnLCAnc3RhdHVzVHlwZScsICd0YXJnZXQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlFeHBhbmRlZCcsICdkb3dubG9hZCcsICdocmVmJywgJ2ljb24nLCAnaWNvbkhyZWYnLCAnaWNvbkxhYmVsJywgJ2ljb25Qb3NpdGlvbicsICdpY29uVG9vbHRpcCcsICdsYWJlbCcsICdsZWFkaW5nSWNvbicsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdyZWwnLCAnc3RhdHVzTGFiZWwnLCAnc3RhdHVzVHlwZScsICd0YXJnZXQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGFsaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhJdGVtQWN0aW9uQ2xpY2snLCAnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3RJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGFsaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGFsaXN0SXRlbSB7XG4gIC8qKlxuICAgKiBJdGVtIGFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1BY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RJdGVtU3R6aERhdGFsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RJdGVtU3R6aERhdGFsaXN0SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YW1lc3NhZ2VsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhbWVzc2FnZWxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YW1lc3NhZ2VsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0YW1lc3NhZ2VsaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnYW5hbHl0aWNzSWQnLCAnZGVzY3JpcHRpb24nLCAnaGVhZGluZycsICdocmVmJywgJ2ljb24nLCAnbG9hZGluZ1N0YXR1cycsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdub25JbnRlcmFjdGl2ZScsICdyZWwnLCAndGFncycsICd0YXJnZXQnLCAndW5yZWFkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGFtZXNzYWdlbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3Rpb25zJywgJ2FuYWx5dGljc0lkJywgJ2Rlc2NyaXB0aW9uJywgJ2hlYWRpbmcnLCAnaHJlZicsICdpY29uJywgJ2xvYWRpbmdTdGF0dXMnLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVsJywgJ3RhZ3MnLCAndGFyZ2V0JywgJ3VucmVhZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljaycsICdzdHpoQWN0aW9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW0ge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogQWN0aW9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sdW1ucycsICdjc3ZEeW5hbWljVHlwaW5nJywgJ2NzdkhlYWRlcicsICdjc3ZVcmwnLCAnZGlzYWJsZU1pbldpZHRoJywgJ2hpZGVDb2x1bW5IZWFkaW5ncycsICdoaWRlU2VhcmNoJywgJ2lkRmllbGQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAncm93SGVhZGVyRmllbGQnLCAncm93cycsICdzaG93TGlzdCcsICdzb3J0QnknLCAnc29ydERpcmVjdGlvbicsICd0YWJsZUxheW91dCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZVNvcnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2x1bW5zJywgJ2NzdkR5bmFtaWNUeXBpbmcnLCAnY3N2SGVhZGVyJywgJ2NzdlVybCcsICdkaXNhYmxlTWluV2lkdGgnLCAnaGlkZUNvbHVtbkhlYWRpbmdzJywgJ2hpZGVTZWFyY2gnLCAnaWRGaWVsZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAncGFnZScsICdwYWdlU2l6ZScsICdyb3dIZWFkZXJGaWVsZCcsICdyb3dzJywgJ3Nob3dMaXN0JywgJ3NvcnRCeScsICdzb3J0RGlyZWN0aW9uJywgJ3RhYmxlTGF5b3V0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhdGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoUm93Q2xpY2snLCAnc3R6aENlbGxDbGljaycsICdzdHpoSGVhZGluZ0NlbGxDbGljaycsICdzdHpoU29ydENsaWNrJywgJ3N0emhTb3J0QnlDaGFuZ2UnLCAnc3R6aFNvcnREaXJlY3Rpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVSb3dDbGlja0V2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVJvd0NsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZUhlYWRpbmdDZWxsQ2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVIZWFkaW5nQ2VsbENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YXRhYmxlU29ydERpcmVjdGlvbkNoYW5nZUV2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnREaXJlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhdGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhdGFibGUge1xuICAvKipcbiAgICogRGF0YXRhYmxlIHJvdyBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aFJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlUm93Q2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIGNlbGwgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIGhlYWRpbmcgY2VsbCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEhlYWRpbmdDZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVIZWFkaW5nQ2VsbENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBzb3J0IGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoU29ydENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBzb3J0IGJ5IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFNvcnRCeUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgc29ydCBkaXJlY3Rpb24gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU29ydERpcmVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnREaXJlY3Rpb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYWxlbmRhcklzRGF0ZURpc2FibGVkJywgJ2NhbGVuZGFyTWF4JywgJ2NhbGVuZGFyTWluJywgJ2RhdGVBZGFwdGVyJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lubGluZScsICdpbnRlcm5hbERhdGVBZGFwdGVyJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldERhdGUnLCAnZ2V0UG9wb3ZlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRlcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYWxlbmRhcklzRGF0ZURpc2FibGVkJywgJ2NhbGVuZGFyTWF4JywgJ2NhbGVuZGFyTWluJywgJ2RhdGVBZGFwdGVyJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lubGluZScsICdpbnRlcm5hbERhdGVBZGFwdGVyJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0ZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRlcGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhEYXRlcGlja2VyU3R6aERhdGVwaWNrZXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRlcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0ZXBpY2tlciB7XG4gIC8qKlxuICAgKiBEYXRlcGlja2VyIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0ZXBpY2tlclN0emhEYXRlcGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICdyYW5nZUxpbmtzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGVyYW5nZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICdyYW5nZUxpbmtzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRlcmFuZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0ZXJhbmdlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0ZXJhbmdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ29wZW4nXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRldGFpbHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29wZW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERldGFpbHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQgYXMgSVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50IGFzIElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGV0YWlscyBleHRlbmRzIENvbXBvbmVudHMuU3R6aERldGFpbHMge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogT3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnYTExeVJvbGUnLCAnY2xvc2VBbmFseXRpY3NJZCcsICdjbG9zZU9uQmFja2Ryb3BDbGljaycsICdjbG9zZU9uRXNjYXBlS2V5JywgJ2hlYWRpbmcnLCAnaGlkZUNsb3NlJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3NpemUnLCAnc3RheSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kaWFsb2cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdhMTF5Um9sZScsICdjbG9zZUFuYWx5dGljc0lkJywgJ2Nsb3NlT25CYWNrZHJvcENsaWNrJywgJ2Nsb3NlT25Fc2NhcGVLZXknLCAnaGVhZGluZycsICdoaWRlQ2xvc2UnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAnc2l6ZScsICdzdGF5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEaWFsb2cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEaWFsb2dPcGVuRXZlbnQgYXMgSVN0emhEaWFsb2dTdHpoRGlhbG9nT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGlhbG9nQ2xvc2VFdmVudCBhcyBJU3R6aERpYWxvZ1N0emhEaWFsb2dDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERpYWxvZyBleHRlbmRzIENvbXBvbmVudHMuU3R6aERpYWxvZyB7XG4gIC8qKlxuICAgKiBEaWFsb2cgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpYWxvZ1N0emhEaWFsb2dPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpYWxvZyBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaWFsb2dTdHpoRGlhbG9nQ2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zZUtleScsICdoaWRlQ2xvc2UnLCAnaW5pdGlhbE9wZW5BbmltYXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGlzdHVyYmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbG9zZUtleScsICdoaWRlQ2xvc2UnLCAnaW5pdGlhbE9wZW5BbmltYXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERpc3R1cmJlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJPcGVuRXZlbnQgYXMgSVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGlzdHVyYmVyT3BlbmVkRXZlbnQgYXMgSVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJDbG9zZUV2ZW50IGFzIElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJDbG9zZWRFdmVudCBhcyBJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEaXN0dXJiZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEaXN0dXJiZXIge1xuICAvKipcbiAgICogRGlzdHVyYmVyIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXN0dXJiZXIgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpc3R1cmJlciBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogRGlzdHVyYmVyIGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhbGxvd0VtcHR5T3B0aW9uJywgJ2Nsb3NlQWZ0ZXJTZWxlY3QnLCAnZGVmYXVsdEl0ZW1zJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaWNvbicsICdpY29uQW5nbGUnLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnaXNPcGVuJywgJ2l0ZW1zJywgJ2xhYmVsJywgJ2xhYmVsRmllbGQnLCAnbGFiZWxIaWRkZW4nLCAnbG9hZCcsICdsb2FkVGhyb3R0bGUnLCAnbG9jYWxpemF0aW9uJywgJ2xvY2tPcHRncm91cE9yZGVyJywgJ21heE9wdGlvbnMnLCAnbWluQ2hhcmFjdGVycycsICdtdWx0aXBsZScsICduYW1lJywgJ25vQmFja3NwYWNlRGVsZXRlJywgJ25vTGFiZWxUcnVuY2F0ZScsICdub1NlYXJjaCcsICdub1dyYXAnLCAnb3BlbicsICdvcGVuT25Gb2N1cycsICdvcHRncm91cEZpZWxkJywgJ29wdGdyb3VwTGFiZWxGaWVsZCcsICdvcHRncm91cFZhbHVlRmllbGQnLCAnb3B0Z3JvdXBzJywgJ29wdGlvbnMnLCAncG9wb3ZlckZ1bGx3aWR0aCcsICdwb3BvdmVyUGxhY2VtZW50JywgJ3ByZWxvYWQnLCAncmVxdWlyZWQnLCAnc2VhcmNoQ29uanVuY3Rpb24nLCAnc2VhcmNoRmllbGQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RyYW5zZm9ybUxvYWRRdWVyeScsICd2YWx1ZScsICd2YWx1ZUZpZWxkJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydnZXRWYWx1ZScsICdzZXRWYWx1ZScsICdyZXNldExvYWRlZFNlYXJjaGVzJywgJ2dldExvYWRlZFNlYXJjaGVzJywgJ2dldEl0ZW1zJywgJ2xvYWRJdGVtcycsICdzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhbGxvd0VtcHR5T3B0aW9uJywgJ2Nsb3NlQWZ0ZXJTZWxlY3QnLCAnZGVmYXVsdEl0ZW1zJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaWNvbicsICdpY29uQW5nbGUnLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnaXNPcGVuJywgJ2l0ZW1zJywgJ2xhYmVsJywgJ2xhYmVsRmllbGQnLCAnbGFiZWxIaWRkZW4nLCAnbG9hZCcsICdsb2FkVGhyb3R0bGUnLCAnbG9jYWxpemF0aW9uJywgJ2xvY2tPcHRncm91cE9yZGVyJywgJ21heE9wdGlvbnMnLCAnbWluQ2hhcmFjdGVycycsICdtdWx0aXBsZScsICduYW1lJywgJ25vQmFja3NwYWNlRGVsZXRlJywgJ25vTGFiZWxUcnVuY2F0ZScsICdub1NlYXJjaCcsICdub1dyYXAnLCAnb3BlbicsICdvcGVuT25Gb2N1cycsICdvcHRncm91cEZpZWxkJywgJ29wdGdyb3VwTGFiZWxGaWVsZCcsICdvcHRncm91cFZhbHVlRmllbGQnLCAnb3B0Z3JvdXBzJywgJ29wdGlvbnMnLCAncG9wb3ZlckZ1bGx3aWR0aCcsICdwb3BvdmVyUGxhY2VtZW50JywgJ3ByZWxvYWQnLCAncmVxdWlyZWQnLCAnc2VhcmNoQ29uanVuY3Rpb24nLCAnc2VhcmNoRmllbGQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RyYW5zZm9ybUxvYWRRdWVyeScsICd2YWx1ZScsICd2YWx1ZUZpZWxkJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZScsICdzdHpoSXRlbUFkZCcsICdzdHpoSXRlbVJlbW92ZScsICdzdHpoT3B0aW9uQWRkJywgJ3N0emhPcHRpb25SZW1vdmUnLCAnc3R6aE9wZW4nLCAnc3R6aENsb3NlJywgJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoSW5pdCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25JdGVtQWRkRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1BZGRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duSXRlbVJlbW92ZUV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bk9wdGlvbkFkZEV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25BZGRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wdGlvblJlbW92ZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25PcGVuRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3dDbG9zZUV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0Nsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkZvY3VzRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkJsdXJFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd0luaXRFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3dJbml0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEcm9wZG93biB7XG4gIC8qKlxuICAgKiBEcm9wZG93biBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGl0ZW0gYWRkZWQgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtQWRkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1BZGRFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gaXRlbSByZW1vdmVkIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbVJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIG9wdGlvbiBhZGRlZCBldmVudFxuICAgKi9cbiAgc3R6aE9wdGlvbkFkZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25BZGRFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gb3B0aW9uIHJlbW92ZWQgZXZlbnRcbiAgICovXG4gIHN0emhPcHRpb25SZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wZW5FdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0Nsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBmb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEluaXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3dJbml0RXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdpdGVtcycsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZWRpdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRWRpdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEVkaXRvciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEVkaXRvciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ldmVudGRhdGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhFdmVudGRhdGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRXZlbnRkYXRhIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRXZlbnRkYXRhIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhbGVuZGFyTGFiZWwnLCAnY2FsZW5kYXJVcmwnLCAnZGF0ZUFkYXB0ZXInLCAnZW5kJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICdtb250aEhlYWRpbmdMZXZlbCcsICdzdGFydCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ldmVudGluZm8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhbGVuZGFyTGFiZWwnLCAnY2FsZW5kYXJVcmwnLCAnZGF0ZUFkYXB0ZXInLCAnZW5kJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICdtb250aEhlYWRpbmdMZXZlbCcsICdzdGFydCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRXZlbnRpbmZvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEV2ZW50aW5mbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEV2ZW50aW5mbyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdsb2NhbGl6YXRpb24nLCAnbm9JdGVtc0xpbmsnLCAnbm9JdGVtc1RleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZmVlZHJlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnbG9jYWxpemF0aW9uJywgJ25vSXRlbXNMaW5rJywgJ25vSXRlbXNUZXh0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhGZWVkcmVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZlZWRyZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGZWVkcmVhZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xpbmsnLCAndGFyZ2V0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZmVlZHJlYWRlci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsaW5rJywgJ3RhcmdldCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhGZWVkcmVhZGVySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhGZWVkcmVhZGVySXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEZlZWRyZWFkZXJJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVMZWdlbmQnLCAnbGVnZW5kJywgJ2xlZ2VuZEN1cnZlJywgJ2xlZ2VuZExldmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWZpZWxkc2V0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlTGVnZW5kJywgJ2xlZ2VuZCcsICdsZWdlbmRDdXJ2ZScsICdsZWdlbmRMZXZlbCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmllbGRzZXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRmllbGRzZXQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGaWVsZHNldCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdjb3VudGVyJywgJ2Z1bGx3aWR0aCcsICdoZWFkaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWZpZ3VyZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FwdGlvbicsICdjb3B5cmlnaHQnLCAnY291bnRlcicsICdmdWxsd2lkdGgnLCAnaGVhZGluZyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmlndXJlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZpZ3VyZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEZpZ3VyZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydtaW5pbWFsRWRnZVNwYWNlJ10sXG4gIG1ldGhvZHM6IFsncmVwb3NpdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1mbHlpbmdmb2N1cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbWluaW1hbEVkZ2VTcGFjZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmx5aW5nZm9jdXMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRmx5aW5nZm9jdXMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGbHlpbmdmb2N1cyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb3B5cmlnaHQnLCAnbG9jYWxpemF0aW9uJywgJ21haW5VcmwnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1mb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvcHlyaWdodCcsICdsb2NhbGl6YXRpb24nLCAnbWFpblVybCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRm9vdGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nhcm91c2VsQXV0b3BsYXknLCAnY2Fyb3VzZWxBdXRvcGxheVRpbWVvdXQnLCAnY2Fyb3VzZWxEaXNhYmxlZCcsICdjYXJvdXNlbFdpdGhUcmFjaycsICdleGNsdWRlRmlyc3RJbWFnZScsICdpbWFnZXMnLCAnaXRlbUVsZW1lbnQnLCAnbG9jYWxpemF0aW9uJywgJ3JhdGlvJywgJ3JhdGlvTGFyZ2UnLCAncmF0aW9NZWRpdW0nLCAncmF0aW9TbWFsbCcsICdyYXRpb1VsdHJhJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ29wZW5MaWdodGJveCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1nYWxsZXJ5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXJvdXNlbEF1dG9wbGF5JywgJ2Nhcm91c2VsQXV0b3BsYXlUaW1lb3V0JywgJ2Nhcm91c2VsRGlzYWJsZWQnLCAnY2Fyb3VzZWxXaXRoVHJhY2snLCAnZXhjbHVkZUZpcnN0SW1hZ2UnLCAnaW1hZ2VzJywgJ2l0ZW1FbGVtZW50JywgJ2xvY2FsaXphdGlvbicsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYScsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEdhbGxlcnkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoR2FsbGVyeSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEdhbGxlcnkge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXZhaWxhYmxlVGFncycsICdiYXNlVXJsT3ZlcnJpZGUnLCAnaGVhZGluZycsICdtYXBEYXRhVXJsJywgJ3BvaURhdGFVcmwnLCAncmVzZXRUYWcnLCAnc2VhcmNoSW5kZXhGaWVsZHMnLCAnc2VhcmNoSW5kZXhJZEZpZWxkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWdlby1yZWYtZGF0YScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXZhaWxhYmxlVGFncycsICdiYXNlVXJsT3ZlcnJpZGUnLCAnaGVhZGluZycsICdtYXBEYXRhVXJsJywgJ3BvaURhdGFVcmwnLCAncmVzZXRUYWcnLCAnc2VhcmNoSW5kZXhGaWVsZHMnLCAnc2VhcmNoSW5kZXhJZEZpZWxkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhHZW9SZWZEYXRhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE92ZXJsYXlDbG9zZUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoR2VvUmVmRGF0YU92ZXJsYXlDbG9zZUNsaWNrRXZlbnQgYXMgSVN0emhHZW9SZWZEYXRhU3R6aEdlb1JlZkRhdGFPdmVybGF5Q2xvc2VDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEdlb1JlZkRhdGEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhHZW9SZWZEYXRhIHtcbiAgLyoqXG4gICAqIE92ZXJsYXkgY2xvc2UgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhPdmVybGF5Q2xvc2VDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoR2VvUmVmRGF0YVN0emhHZW9SZWZEYXRhT3ZlcmxheUNsb3NlQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoaWRkZW5UaXRsZScsICdoaWRlQ2xvc2UnLCAnbG9jYWxpemF0aW9uJywgJ21haW5UaXRsZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1naGV0dG9ib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hpZGRlblRpdGxlJywgJ2hpZGVDbG9zZScsICdsb2NhbGl6YXRpb24nLCAnbWFpblRpdGxlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhHaGV0dG9ib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhHaGV0dG9ib3hPcGVuRXZlbnQgYXMgSVN0emhHaGV0dG9ib3hTdHpoR2hldHRvYm94T3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoR2hldHRvYm94Q2xvc2VFdmVudCBhcyBJU3R6aEdoZXR0b2JveFN0emhHaGV0dG9ib3hDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEdoZXR0b2JveCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEdoZXR0b2JveCB7XG4gIC8qKlxuICAgKiBHaGV0dG9ib3ggb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEdoZXR0b2JveFN0emhHaGV0dG9ib3hPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEdoZXR0b2JveCBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhHaGV0dG9ib3hTdHpoR2hldHRvYm94Q2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcHBOYXZJdGVtcycsICdoaWRlTWV0YWJhcicsICdocmVmJywgJ2xhbmd1YWdlQWN0aXZlJywgJ2xhbmd1YWdlSWQnLCAnbGFuZ3VhZ2VQcmV2ZW50VXJsY2hhbmdlJywgJ2xhbmd1YWdlU3RheScsICdsYW5ndWFnZXMnLCAnbG9jYWxpemF0aW9uJywgJ2xvZ2luRXJyb3JNZXNzYWdlJywgJ2xvZ29BbmFseXRpY3NJZCcsICdsb2dvVHlwZScsICdtZW51QmFja0xhYmVsJywgJ21lbnVJZCcsICdtZW51SXRlbXMnLCAnbWV0YW5hdklkJywgJ21ldGFuYXZJdGVtcycsICdzZWFyY2hBY3Rpb24nLCAnc2VhcmNoRmllbGROYW1lJywgJ3NlYXJjaElkJywgJ3NlYXJjaFZhbHVlJywgJ3N0aWNreScsICd1c2VyU3BlY2lmaWNNZXRhbmF2SXRlbXNFbmRwb2ludCcsICd1c2VyU3BlY2lmaWNNZXRhbmF2SXRlbXNOb3RMb2dnZWRJbiddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZVBvc2l0aW9uJywgJ3JlcXVlc3RVc2VyU3BlY2lmaWNNZXRhbmF2SXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBOYXZJdGVtcycsICdoaWRlTWV0YWJhcicsICdocmVmJywgJ2xhbmd1YWdlQWN0aXZlJywgJ2xhbmd1YWdlSWQnLCAnbGFuZ3VhZ2VQcmV2ZW50VXJsY2hhbmdlJywgJ2xhbmd1YWdlU3RheScsICdsYW5ndWFnZXMnLCAnbG9jYWxpemF0aW9uJywgJ2xvZ2luRXJyb3JNZXNzYWdlJywgJ2xvZ29BbmFseXRpY3NJZCcsICdsb2dvVHlwZScsICdtZW51QmFja0xhYmVsJywgJ21lbnVJZCcsICdtZW51SXRlbXMnLCAnbWV0YW5hdklkJywgJ21ldGFuYXZJdGVtcycsICdzZWFyY2hBY3Rpb24nLCAnc2VhcmNoRmllbGROYW1lJywgJ3NlYXJjaElkJywgJ3NlYXJjaFZhbHVlJywgJ3N0aWNreScsICd1c2VyU3BlY2lmaWNNZXRhbmF2SXRlbXNFbmRwb2ludCcsICd1c2VyU3BlY2lmaWNNZXRhbmF2SXRlbXNOb3RMb2dnZWRJbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE1ldGFuYXZJdGVtQ2xpY2snLCAnc3R6aE1ldGFuYXZJdGVtQ2hpbGRDbGljaycsICdzdHpoTWV0YW5hdkl0ZW1CdXR0b25DbGljaycsICdzdHpoTWVudUl0ZW1DbGljaycsICdzdHpoTGFuZ3VhZ2VDaGFuZ2UnLCAnc3R6aFNlYXJjaENoYW5nZScsICdzdHpoU2VhcmNoQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlck1ldGFuYXZJdGVtQnV0dG9uQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJNZW51SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyTWVudUl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyTGFuZ3VhZ2VDaGFuZ2VFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJMYW5ndWFnZUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJTZWFyY2hDaGFuZ2VkRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhlYWRlciB7XG4gIC8qKlxuICAgKiBNZXRhbmF2IGl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhNZXRhbmF2SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBNZXRhbmF2IGl0ZW0gY2hpbGQgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhNZXRhbmF2SXRlbUNoaWxkQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogTWV0YW5hdiBpdGVtIGJ1dHRvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE1ldGFuYXZJdGVtQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE1ldGFuYXYgaXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE1lbnVJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZW51SXRlbUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIExhbmd1YWdlIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aExhbmd1YWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTGFuZ3VhZ2VDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogU2VhcmNoIGlucHV0IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFNlYXJjaENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlclNlYXJjaENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBTZWFyY2ggaW5wdXQgY2hhbmdlZCBldmVudFxuICAgKi9cbiAgc3R6aFNlYXJjaENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJTZWFyY2hDaGFuZ2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VydmUnLCAnbGV2ZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaGVhZGluZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VydmUnLCAnbGV2ZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhlYWRpbmcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSGVhZGluZyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhlYWRpbmcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbW9zdHNlYXJjaGVkSXRlbXMnLCAndG9wbmV3c0l0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhvbWVwYWdlLXNlcnZpY2UtaGlnaGxpZ2h0cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbW9zdHNlYXJjaGVkSXRlbXMnLCAndG9wbmV3c0l0ZW1zJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIb21lcGFnZVNlcnZpY2VIaWdobGlnaHRzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhvbWVwYWdlU2VydmljZUhpZ2hsaWdodHMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhIb21lcGFnZVNlcnZpY2VIaWdobGlnaHRzIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRMZWZ0JywgJ2Fyb3VuZFJpZ2h0JywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1oc3BhY2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRMZWZ0JywgJ2Fyb3VuZFJpZ2h0JywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSHNwYWNlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhzcGFjZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhzcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5VGl0bGUnLCAnbmFtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pY29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5VGl0bGUnLCAnbmFtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSWNvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxvdycsICdjb29raWUnLCAnY29va2llQ29uZmlybUljb24nLCAnY29va2llQ29uZmlybUxhYmVsJywgJ2Nvb2tpZUNvbmZpcm1UZXh0JywgJ2Nvb2tpZUV4cGlyZXMnLCAnaGVpZ2h0JywgJ2lmcmFtZUVycm9yVGV4dCcsICdpZnJhbWVJZCcsICdpZnJhbWVSZXNpemVySGVpZ2h0Q29ycmVjdGlvbicsICdpZnJhbWVSZXNpemVyU2Vjb25kbGV2ZWxEb21haW4nLCAnaWZyYW1lUmVzaXplclZhcmlhbnQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmlld0ljb24nLCAncHJldmlld0xhYmVsJywgJ3JlZmVycmVycG9saWN5JywgJ3NhbmRib3gnLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3NyYycsICd3aWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pZnJhbWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbG93JywgJ2Nvb2tpZScsICdjb29raWVDb25maXJtSWNvbicsICdjb29raWVDb25maXJtTGFiZWwnLCAnY29va2llQ29uZmlybVRleHQnLCAnY29va2llRXhwaXJlcycsICdoZWlnaHQnLCAnaWZyYW1lRXJyb3JUZXh0JywgJ2lmcmFtZUlkJywgJ2lmcmFtZVJlc2l6ZXJIZWlnaHRDb3JyZWN0aW9uJywgJ2lmcmFtZVJlc2l6ZXJTZWNvbmRsZXZlbERvbWFpbicsICdpZnJhbWVSZXNpemVyVmFyaWFudCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2aWV3SWNvbicsICdwcmV2aWV3TGFiZWwnLCAncmVmZXJyZXJwb2xpY3knLCAnc2FuZGJveCcsICdza2lwUHJldmlldycsICdza2lwUHJldmlld0lmQ29va2llQWNjZXB0ZWQnLCAnc3JjJywgJ3dpZHRoJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJZnJhbWUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoUHJldmlld1NraXAnLCAnc3R6aFZpZXdDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhJZnJhbWVQcmV2aWV3U2tpcEV2ZW50IGFzIElTdHpoSWZyYW1lU3R6aElmcmFtZVByZXZpZXdTa2lwRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhJZnJhbWVWaWV3Q2hhbmdlRXZlbnQgYXMgSVN0emhJZnJhbWVTdHpoSWZyYW1lVmlld0NoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aElmcmFtZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aElmcmFtZSB7XG4gIC8qKlxuICAgKiBQcmV2aWV3IHNraXAgKG9ubHkgZ2V0cyBleGVjdXRlZCBpZiBpdCBnb2VzIGRpcmVjdGx5IHRvIGlmcmFtZSBhbmQgbm90IGNvb2tpZXdhbGwpXG4gICAqL1xuICBzdHpoUHJldmlld1NraXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElmcmFtZVN0emhJZnJhbWVQcmV2aWV3U2tpcEV2ZW50Pj47XG4gIC8qKlxuICAgKiBWaWV3IGNoYW5nZVxuICAgKi9cbiAgc3R6aFZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElmcmFtZVN0emhJZnJhbWVWaWV3Q2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2hpbnRMZWZ0JywgJ2hpbnRSaWdodCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaW1hZ2Vjb21wYXJpc29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnaGludExlZnQnLCAnaGludFJpZ2h0JywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSW1hZ2Vjb21wYXJpc29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEltYWdlY29tcGFyaXNvbkNoYW5nZUV2ZW50IGFzIElTdHpoSW1hZ2Vjb21wYXJpc29uU3R6aEltYWdlY29tcGFyaXNvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEltYWdlY29tcGFyaXNvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEltYWdlY29tcGFyaXNvbiB7XG5cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW1hZ2Vjb21wYXJpc29uU3R6aEltYWdlY29tcGFyaXNvbkNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhdXRvY29tcGxldGUnLCAnY2xlYXJhYmxlJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWF4bGVuZ3RoJywgJ21pbicsICdtaW5sZW5ndGgnLCAnbXVsdGlsaW5lJywgJ25hbWUnLCAnbm9BdXRvY29tcGxldGUnLCAnbm9MYWJlbFRydW5jYXRlJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Jvd3MnLCAnc2hvd1NwaW4nLCAnc2l6ZScsICdzdGVwJywgJ3R5cGUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaW5wdXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhdXRvY29tcGxldGUnLCAnY2xlYXJhYmxlJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWF4bGVuZ3RoJywgJ21pbicsICdtaW5sZW5ndGgnLCAnbXVsdGlsaW5lJywgJ25hbWUnLCAnbm9BdXRvY29tcGxldGUnLCAnbm9MYWJlbFRydW5jYXRlJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Jvd3MnLCAnc2hvd1NwaW4nLCAnc2l6ZScsICdzdGVwJywgJ3R5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aElucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZScsICdzdHpoQ2hhbmdlZCcsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhJbnB1dENoYW5nZUV2ZW50IGFzIElTdHpoSW5wdXRTdHpoSW5wdXRDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aElucHV0Q2hhbmdlZEV2ZW50IGFzIElTdHpoSW5wdXRTdHpoSW5wdXRDaGFuZ2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhJbnB1dEZvY3VzRXZlbnQgYXMgSVN0emhJbnB1dFN0emhJbnB1dEZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhJbnB1dEJsdXJFdmVudCBhcyBJU3R6aElucHV0U3R6aElucHV0Qmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aElucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSW5wdXQge1xuICAvKipcbiAgICogSW5wdXQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBjaGFuZ2VkIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRDaGFuZ2VkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Qmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWludmVydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSW52ZXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEludmVydCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEludmVydCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdmdWxsd2lkdGgnLCAnaGVpZ2h0JywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbGlua0FjY2Vzc2tleScsICdsaW5rSWQnLCAnbG9jYWxpemF0aW9uJywgJ3JlbCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlDdXJyZW50JywgJ2ExMXlEZXNjcmliZWRieScsICdhMTF5RGlzYWJsZWQnLCAnYTExeUV4cGFuZGVkJywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VQb3NpdGlvbicsICdiYWRnZVR5cGUnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZnVsbHdpZHRoJywgJ2hlaWdodCcsICdocmVmJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2xhYmVsJywgJ2xpbmtBY2Nlc3NrZXknLCAnbGlua0lkJywgJ2xvY2FsaXphdGlvbicsICdyZWwnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0ZXh0QWxpZ24nLCAndHlwZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMaW5rIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aExpbmtDbGlja0V2ZW50IGFzIElTdHpoTGlua1N0emhMaW5rQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aExpbmtGb2N1c0V2ZW50IGFzIElTdHpoTGlua1N0emhMaW5rRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aExpbmtCbHVyRXZlbnQgYXMgSVN0emhMaW5rU3R6aExpbmtCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTGluayBleHRlbmRzIENvbXBvbmVudHMuU3R6aExpbmsge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTGlua1N0emhMaW5rQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTGlua1N0emhMaW5rRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aExpbmtTdHpoTGlua0JsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aExpc3Qge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aExpc3RJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVMYWJlbCcsICdsYWJlbCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxvYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUxhYmVsJywgJ2xhYmVsJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExvYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMb2FkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMb2FkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZVBlcmNlbnQnLCAnbGFiZWwnLCAncGVyY2VudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1sb2FkaW5nYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlUGVyY2VudCcsICdsYWJlbCcsICdwZXJjZW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMb2FkaW5nYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExvYWRpbmdiYXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMb2FkaW5nYmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTWVudSBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1lbnUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb3VudGVyJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdsYWJlbCcsICdzaXplJywgJ3RhcmdldCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb3VudGVyJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdsYWJlbCcsICdzaXplJywgJ3RhcmdldCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNZW51SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhNZW51SXRlbUZvY3VzRXZlbnQgYXMgSVN0emhNZW51SXRlbVN0emhNZW51SXRlbUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhNZW51SXRlbUJsdXJFdmVudCBhcyBJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTWVudUl0ZW1DbGlja0V2ZW50IGFzIElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTWVudUl0ZW0ge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1CbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoaWRlQ2xvc2UnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbWVzc2FnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGlkZUNsb3NlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNZXNzYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoTWVzc2FnZU9wZW5FdmVudCBhcyBJU3R6aE1lc3NhZ2VTdHpoTWVzc2FnZU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE1lc3NhZ2VDbG9zZUV2ZW50IGFzIElTdHpoTWVzc2FnZVN0emhNZXNzYWdlQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhNZXNzYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBNZXNzYWdlIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE1lc3NhZ2UgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVzc2FnZVN0emhNZXNzYWdlQ2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnLCAndGFncyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1taWNyb3NpdGUtdGVhc2VybGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBpJywgJ2xvY2FsaXphdGlvbicsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJywgJ3RhZ3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1pY3Jvc2l0ZVRlYXNlcmxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTWljcm9zaXRlVGVhc2VybGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1pY3Jvc2l0ZVRlYXNlcmxpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5TW9udGgnLCAnYTExeURlc2NyaWJlZGJ5WWVhcicsICdkZXNjcmlwdGlvbkxvbmdNb250aCcsICdkZXNjcmlwdGlvbkxvbmdZZWFyJywgJ2Rlc2NyaXB0aW9uTW9udGgnLCAnZGVzY3JpcHRpb25ZZWFyJywgJ2Rpc2FibGVkJywgJ2Vycm9yTW9udGgnLCAnZXJyb3JZZWFyJywgJ2Zvcm1hdCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZE1vbnRoJywgJ2ludmFsaWRZZWFyJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWF4WWVhcicsICdtaW4nLCAnbWluWWVhcicsICdtb250aExhYmVsJywgJ21vbnRoT3BlbicsICdtb250aHMnLCAnbmFtZScsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnLCAneWVhckxhYmVsJywgJ3llYXJPcGVuJywgJ3llYXJTb3J0RGlyZWN0aW9uJywgJ3llYXJzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1vbnRoeWVhcnBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5TW9udGgnLCAnYTExeURlc2NyaWJlZGJ5WWVhcicsICdkZXNjcmlwdGlvbkxvbmdNb250aCcsICdkZXNjcmlwdGlvbkxvbmdZZWFyJywgJ2Rlc2NyaXB0aW9uTW9udGgnLCAnZGVzY3JpcHRpb25ZZWFyJywgJ2Rpc2FibGVkJywgJ2Vycm9yTW9udGgnLCAnZXJyb3JZZWFyJywgJ2Zvcm1hdCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZE1vbnRoJywgJ2ludmFsaWRZZWFyJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWF4WWVhcicsICdtaW4nLCAnbWluWWVhcicsICdtb250aExhYmVsJywgJ21vbnRoT3BlbicsICdtb250aHMnLCAnbmFtZScsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnLCAneWVhckxhYmVsJywgJ3llYXJPcGVuJywgJ3llYXJTb3J0RGlyZWN0aW9uJywgJ3llYXJzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNb250aHllYXJwaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoTW9udGh5ZWFycGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhNb250aHllYXJwaWNrZXJTdHpoTW9udGh5ZWFycGlja2VyQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTW9udGh5ZWFycGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTW9udGh5ZWFycGlja2VyIHtcbiAgLyoqXG4gICAqIE1vbnRoeWVhcnBpY2tlciBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1vbnRoeWVhcnBpY2tlclN0emhNb250aHllYXJwaWNrZXJDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjZW50ZXInLCAnY2VudGVyTWFya2VyJywgJ2hvc3RuYW1lJywgJ2xheWVyJywgJ2xheWVyQ29udHJvbCcsICdsYXllcnMnLCAnbG9jYWxpemF0aW9uJywgJ2xvY2F0aW9uQ29udHJvbCcsICdwaW5jaFJvdGF0ZVRocmVzaG9sZCcsICdwcmludENvbnRyb2wnLCAncmVzb2x1dGlvbnMnLCAnc2NhbGVDb250cm9sJywgJ3pvb20nLCAnem9vbUxvY2F0aW9uJ10sXG4gIG1ldGhvZHM6IFsnZ2V0TWFwJywgJ2dldFZpc2libGVNYXJrZXJzJywgJ2ZpbmRNYXJrZXJCeUlkJywgJ2FkZEljb25NYXJrZXInLCAnYWRkSWNvbk1hcmtlcnMnLCAndXBkYXRlVmlld1RvRml0TWFya2VycycsICdyZW1vdmVBbGxJY29uTWFya2VycycsICdyZW1vdmVJY29uTWFya2VyJywgJ3NldEljb25NYXJrZXJBY3RpdmUnLCAnc2V0SWNvbk1hcmtlckluYWN0aXZlJywgJ3NldEFsbEljb25NYXJrZXJzSW5hY3RpdmUnLCAnZW5hYmxlTG9jYXRpb25UcmFja2luZycsICdkaXNhYmxlTG9jYXRpb25UcmFja2luZycsICdnZXREaXN0YW5jZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1vbG1hcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2VudGVyJywgJ2NlbnRlck1hcmtlcicsICdob3N0bmFtZScsICdsYXllcicsICdsYXllckNvbnRyb2wnLCAnbGF5ZXJzJywgJ2xvY2FsaXphdGlvbicsICdsb2NhdGlvbkNvbnRyb2wnLCAncGluY2hSb3RhdGVUaHJlc2hvbGQnLCAncHJpbnRDb250cm9sJywgJ3Jlc29sdXRpb25zJywgJ3NjYWxlQ29udHJvbCcsICd6b29tJywgJ3pvb21Mb2NhdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoT2xtYXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSW5pdGlhbGl6ZWQnLCAnc3R6aFBvc3RSZW5kZXInLCAnc3R6aE1vdmVTdGFydCcsICdzdHpoTW92ZUVuZCcsICdzdHpoTW92ZVBhblpvb20nXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcEluaXRpYWxpemVkRXZlbnQgYXMgSVN0emhPbG1hcFN0emhPbG1hcEluaXRpYWxpemVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcFBvc3RSZW5kZXJFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwUG9zdFJlbmRlckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoT2xtYXBNb3ZlU3RhcnRFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZVN0YXJ0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcE1vdmVFbmRFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZUVuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoT2xtYXBNb3ZlUGFuWm9vbUV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlUGFuWm9vbUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE9sbWFwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoT2xtYXAge1xuICAvKipcbiAgICogT2xtYXAgaW5pdGlhbGl6ZWQgZXZlbnRcbiAgICovXG4gIHN0emhJbml0aWFsaXplZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBJbml0aWFsaXplZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBPbG1hcCBwb3N0cmVuZGVyIGV2ZW50XG4gICAqL1xuICBzdHpoUG9zdFJlbmRlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBQb3N0UmVuZGVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9sbWFwIG1vdmVzdGFydCBldmVudFxuICAgKi9cbiAgc3R6aE1vdmVTdGFydDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlU3RhcnRFdmVudD4+O1xuICAvKipcbiAgICogT2xtYXAgbW92ZWVuZCBldmVudFxuICAgKi9cbiAgc3R6aE1vdmVFbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZUVuZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBPbG1hcCBtb3ZlIHBhbiB6b29tIGV2ZW50XG4gICAqL1xuICBzdHpoTW92ZVBhblpvb206IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZVBhblpvb21FdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnb3BlbicsICdzdGF5J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW92ZXJsYXknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdvcGVuJywgJ3N0YXknXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE92ZXJsYXkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhPdmVybGF5T3BlbkV2ZW50IGFzIElTdHpoT3ZlcmxheVN0emhPdmVybGF5T3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoT3ZlcmxheUNsb3NlRXZlbnQgYXMgSVN0emhPdmVybGF5U3R6aE92ZXJsYXlDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE92ZXJsYXkgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhPdmVybGF5IHtcbiAgLyoqXG4gICAqIERpYWxvZyBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT3ZlcmxheVN0emhPdmVybGF5T3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaWFsb2cgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT3ZlcmxheVN0emhPdmVybGF5Q2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdlLXNraXBsaW5rcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZVNraXBsaW5rcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdlU2tpcGxpbmtzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZVNraXBsaW5rcyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAnbG9nb0hyZWYnLCAncHJpbnRBbmFseXRpY3NJZCcsICdzaGFyZURpc2FibGVkJywgJ3NoYXJlTWFpbEJvZHknLCAnc2hhcmVNYWlsU3ViamVjdCcsICdzaGFyZVNlcnZpY2VzJywgJ3NoYXJlVGl0bGUnLCAnc2hhcmVVcmwnLCAnd2l0aFByaW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2Vib3R0b20nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdsb2dvSHJlZicsICdwcmludEFuYWx5dGljc0lkJywgJ3NoYXJlRGlzYWJsZWQnLCAnc2hhcmVNYWlsQm9keScsICdzaGFyZU1haWxTdWJqZWN0JywgJ3NoYXJlU2VydmljZXMnLCAnc2hhcmVUaXRsZScsICdzaGFyZVVybCcsICd3aXRoUHJpbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2Vib3R0b20ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZWJvdHRvbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2Vib3R0b20ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2Vjb250ZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2Vjb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZWNvbnRlbnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdkYXRlbGluZScsICdoeXBoZW5zRW5hYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdldGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmQnLCAnZGF0ZWxpbmUnLCAnaHlwaGVuc0VuYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2V0aXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdldGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdldGl0bGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nSWQnLCAnbGVhZEF1dGhvcicsICdzdWJ0aXRsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdldGl0bGUtaGVybycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nSWQnLCAnbGVhZEF1dGhvcicsICdzdWJ0aXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZXRpdGxlSGVybyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdldGl0bGVIZXJvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZXRpdGxlSGVybyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoeXBoZW5zRW5hYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdldGl0bGUtaG9tZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaHlwaGVuc0VuYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2V0aXRsZUhvbWUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZXRpdGxlSG9tZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2V0aXRsZUhvbWUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2FsbG93TWFudWFsSW5wdXQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0b3RhbCcsICd2YWx1ZScsICd3aWR0aCddLFxuICBtZXRob2RzOiBbJ3ByZXYnLCAnbmV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdpbmF0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYWxsb3dNYW51YWxJbnB1dCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3RvdGFsJywgJ3ZhbHVlJywgJ3dpZHRoJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdpbmF0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFBhZ2luYXRpb25DaGFuZ2VFdmVudCBhcyBJU3R6aFBhZ2luYXRpb25TdHpoUGFnaW5hdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2luYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFBhZ2luYXRpb24gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYWdpbmF0aW9uU3R6aFBhZ2luYXRpb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvbG9hZCcsICdjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdoZWFkaW5nJywgJ2xvY2FsaXphdGlvbicsICdvcmllbnRhdGlvbk9uQnlEZWZhdWx0JywgJ3NjZW5lJywgJ3NjZW5lRmFkZUR1cmF0aW9uJywgJ3NjZW5lcycsICdzaG93Q29udHJvbHMnLCAnc2hvd0hvdHNwb3RzJ10sXG4gIG1ldGhvZHM6IFsnZ2V0Vmlld2VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhbm9yYW1hJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvbG9hZCcsICdjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdoZWFkaW5nJywgJ2xvY2FsaXphdGlvbicsICdvcmllbnRhdGlvbk9uQnlEZWZhdWx0JywgJ3NjZW5lJywgJ3NjZW5lRmFkZUR1cmF0aW9uJywgJ3NjZW5lcycsICdzaG93Q29udHJvbHMnLCAnc2hvd0hvdHNwb3RzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYW5vcmFtYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhMb2FkJywgJ3N0emhDaGFuZ2UnLCAnc3R6aEZ1bGxzY3JlZW5DaGFuZ2UnLCAnc3R6aFNjZW5lQ2hhbmdlJywgJ3N0emhab29tQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFMb2FkRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUxvYWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFGdWxsc2NyZWVuQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hWm9vbUNoYW5nZUV2ZW50IGFzIElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFab29tQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFub3JhbWEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYW5vcmFtYSB7XG4gIC8qKlxuICAgKiBMb2FkIGV2ZW50XG4gICAqL1xuICBzdHpoTG9hZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFMb2FkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRnVsbHNjcmVlbiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhGdWxsc2NyZWVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogU2NlbmUgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU2NlbmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogWm9vbSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhab29tQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYVpvb21DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBvaWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW0nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBvaWNhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUG9pY2FyZCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBvaWNhcmQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2xvY2FsaXphdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wb2lsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnbG9jYWxpemF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQb2lsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBvaWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQb2lsaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc3RhbmNlJywgJ2Z1bGx3aWR0aCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICdza2lkZGluZycsICdzdHJhdGVneScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZScsICd1cGRhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcG9wb3ZlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzdGFuY2UnLCAnZnVsbHdpZHRoJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3BsYWNlbWVudCcsICdzaXplJywgJ3NraWRkaW5nJywgJ3N0cmF0ZWd5JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBvcG92ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUG9wb3Zlck9wZW5FdmVudCBhcyBJU3R6aFBvcG92ZXJTdHpoUG9wb3Zlck9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBvcG92ZXJPcGVuZWRFdmVudCBhcyBJU3R6aFBvcG92ZXJTdHpoUG9wb3Zlck9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUG9wb3ZlckNsb3NlRXZlbnQgYXMgSVN0emhQb3BvdmVyU3R6aFBvcG92ZXJDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUG9wb3ZlckNsb3NlZEV2ZW50IGFzIElTdHpoUG9wb3ZlclN0emhQb3BvdmVyQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUG9wb3ZlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBvcG92ZXIge1xuICAvKipcbiAgICogUG9wb3ZlciBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBQb3BvdmVyIG9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFBvcG92ZXIgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogUG9wb3ZlciBjbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBvcG92ZXJTdHpoUG9wb3ZlckNsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXByaW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQcmludCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQcmludCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFByaW50IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsaWNrRGlzYWJsZWQnLCAnZGF0YScsICdpbmRleCcsICdsb2NhbGl6YXRpb24nLCAnc3RlcHMnLCAnc3RlcHNMYXJnZScsICdzdGVwc01lZGl1bScsICdzdGVwc1NtYWxsJywgJ3N0ZXBzVWx0cmEnXSxcbiAgbWV0aG9kczogWydnZXRJdGVtRGF0YSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wcm9ncmVzc2JhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xpY2tEaXNhYmxlZCcsICdkYXRhJywgJ2luZGV4JywgJ2xvY2FsaXphdGlvbicsICdzdGVwcycsICdzdGVwc0xhcmdlJywgJ3N0ZXBzTWVkaXVtJywgJ3N0ZXBzU21hbGwnLCAnc3RlcHNVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUHJvZ3Jlc3NiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUHJvZ3Jlc3NiYXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQcm9ncmVzc2JhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdjbGlja0Rpc2FibGVkJywgJ2N1cnJlbnQnLCAnZGlzYWJsZWQnLCAnZG90dGVkJywgJ2ZpcnN0JywgJ2hpZGUnLCAnaWNvbicsICdsYWJlbCcsICdsYXN0JywgJ3Bhc3NlZCcsICdzdGVwJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXByb2dyZXNzYmFyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2NsaWNrRGlzYWJsZWQnLCAnY3VycmVudCcsICdkaXNhYmxlZCcsICdkb3R0ZWQnLCAnZmlyc3QnLCAnaGlkZScsICdpY29uJywgJ2xhYmVsJywgJ2xhc3QnLCAncGFzc2VkJywgJ3N0ZXAnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFByb2dyZXNzYmFySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljaycsICdzdHpoRG90dGVkQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhQcm9ncmVzc2Jhckl0ZW1DbGlja0V2ZW50IGFzIElTdHpoUHJvZ3Jlc3NiYXJJdGVtU3R6aFByb2dyZXNzYmFySXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQcm9ncmVzc2Jhckl0ZW1Eb3R0ZWRDbGlja0V2ZW50IGFzIElTdHpoUHJvZ3Jlc3NiYXJJdGVtU3R6aFByb2dyZXNzYmFySXRlbURvdHRlZENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUHJvZ3Jlc3NiYXJJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUHJvZ3Jlc3NiYXJJdGVtIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFByb2dyZXNzYmFySXRlbVN0emhQcm9ncmVzc2Jhckl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEb3R0ZWQgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhEb3R0ZWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUHJvZ3Jlc3NiYXJJdGVtU3R6aFByb2dyZXNzYmFySXRlbURvdHRlZENsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFJhZGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhSYWRpb0NoYW5nZUV2ZW50IGFzIElTdHpoUmFkaW9TdHpoUmFkaW9DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFJhZGlvRm9jdXNFdmVudCBhcyBJU3R6aFJhZGlvU3R6aFJhZGlvRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFJhZGlvQmx1ckV2ZW50IGFzIElTdHpoUmFkaW9TdHpoUmFkaW9CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmFkaW8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSYWRpbyB7XG4gIC8qKlxuICAgKiBJbnB1dCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFJhZGlvU3R6aFJhZGlvQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFJhZGlvU3R6aFJhZGlvRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFJhZGlvU3R6aFJhZGlvQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWRSYWRpbycsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2RpcmVjdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlTGVnZW5kJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xlZ2VuZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2ZW50VXBkYXRlUHJvcGVydGllcycsICdyZXF1aXJlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yYWRpb2dyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkUmFkaW8nLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXJlY3Rpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZUxlZ2VuZCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmVudFVwZGF0ZVByb3BlcnRpZXMnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFJhZGlvZ3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmFkaW9ncm91cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJhZGlvZ3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZml0JywgJ3BvcnRyYWl0JywgJ3JhdGlvJywgJ3JhdGlvTGFyZ2UnLCAncmF0aW9NZWRpdW0nLCAncmF0aW9TbWFsbCcsICdyYXRpb1VsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJhdGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmaXQnLCAncG9ydHJhaXQnLCAncmF0aW8nLCAncmF0aW9MYXJnZScsICdyYXRpb01lZGl1bScsICdyYXRpb1NtYWxsJywgJ3JhdGlvVWx0cmEnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFJhdGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJhdGlvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmF0aW8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaHJlZiddLFxuICBtZXRob2RzOiBbJ29wZW5QbGF5ZXInLCAnY2xvc2VQbGF5ZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmVhZHNwZWFrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hyZWYnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFJlYWRzcGVha2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJlYWRzcGVha2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmVhZHNwZWFrZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZXh0ZXJuYWxMaW5rSWNvbicsICdleHRlcm5hbExpbmtTZWxlY3RvcicsICdsb2NhbGl6YXRpb24nLCAncmVtb3ZlRmlyc3RNYXJnaW4nLCAncmVtb3ZlTGFzdE1hcmdpbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yaWNodGV4dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZXh0ZXJuYWxMaW5rSWNvbicsICdleHRlcm5hbExpbmtTZWxlY3RvcicsICdsb2NhbGl6YXRpb24nLCAncmVtb3ZlRmlyc3RNYXJnaW4nLCAncmVtb3ZlTGFzdE1hcmdpbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmljaHRleHQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmljaHRleHQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSaWNodGV4dCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250ZW50JywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc3BhbicsICdzcGFuTGFyZ2UnLCAnc3Bhbk1lZGl1bScsICdzcGFuU21hbGwnLCAnc3BhblVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJvdycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGVudCcsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NwYW4nLCAnc3BhbkxhcmdlJywgJ3NwYW5NZWRpdW0nLCAnc3BhblNtYWxsJywgJ3NwYW5VbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUm93IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJvdyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJvdyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdlcnJvcicsICdpbnZhbGlkJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ251bWJlcnMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2FwdGNoYScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXJyb3InLCAnaW52YWxpZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdudW1iZXJzJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTYXB0Y2hhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFNhcHRjaGFDaGFuZ2VFdmVudCBhcyBJU3R6aFNhcHRjaGFTdHpoU2FwdGNoYUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNhcHRjaGEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTYXB0Y2hhIHtcbiAgLyoqXG4gICAqIFNhcHRjaGEgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTYXB0Y2hhU3R6aFNhcHRjaGFDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zY3JvbGx1cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2Nyb2xsdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2Nyb2xsdXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTY3JvbGx1cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnYXV0b2ZldGNoQXNpZGVGaWx0ZXJzJywgJ2F1dG9mZXRjaE1haW5GaWx0ZXJzJywgJ2JyZWFrb3V0JywgJ2RlYm91bmNlVGltZScsICdlbXB0eUxpbmtIcmVmJywgJ2VtcHR5TGlua0xhYmVsJywgJ2VtcHR5VGV4dCcsICdoZWFkaW5nJywgJ2hpZGVBc2lkZUZpbHRlcnMnLCAnaGlkZU1haW5GaWx0ZXJzJywgJ2hpZGVSZXN1bHRzSGVhZGluZycsICdoeXBoZW5zRW5hYmxlZCcsICdpbml0aWFsRmV0Y2gnLCAnbGltaXQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZXZlbnRVcGRhdGVVcmwnLCAncmVzdWx0SGVhZGluZ0xldmVsJywgJ3N1YnNjcmliZUFkZGl0aW9uYWxRdWVyeVBhcmFtZXRlcnMnLCAnc3Vic2NyaWJlTGFiZWwnLCAnc3Vic2NyaWJlUGF0aCcsICd0ZW1wbGF0ZVJlc3VsdCcsICd0ZW1wbGF0ZVJlc3VsdFdyYXBwZXJFbGVtZW50JywgJ3RlbXBsYXRlUmVzdWx0V3JhcHBlclByb3BzJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2VhcmNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnYXV0b2ZldGNoQXNpZGVGaWx0ZXJzJywgJ2F1dG9mZXRjaE1haW5GaWx0ZXJzJywgJ2JyZWFrb3V0JywgJ2RlYm91bmNlVGltZScsICdlbXB0eUxpbmtIcmVmJywgJ2VtcHR5TGlua0xhYmVsJywgJ2VtcHR5VGV4dCcsICdoZWFkaW5nJywgJ2hpZGVBc2lkZUZpbHRlcnMnLCAnaGlkZU1haW5GaWx0ZXJzJywgJ2hpZGVSZXN1bHRzSGVhZGluZycsICdoeXBoZW5zRW5hYmxlZCcsICdpbml0aWFsRmV0Y2gnLCAnbGltaXQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZXZlbnRVcGRhdGVVcmwnLCAncmVzdWx0SGVhZGluZ0xldmVsJywgJ3N1YnNjcmliZUFkZGl0aW9uYWxRdWVyeVBhcmFtZXRlcnMnLCAnc3Vic2NyaWJlTGFiZWwnLCAnc3Vic2NyaWJlUGF0aCcsICd0ZW1wbGF0ZVJlc3VsdCcsICd0ZW1wbGF0ZVJlc3VsdFdyYXBwZXJFbGVtZW50JywgJ3RlbXBsYXRlUmVzdWx0V3JhcHBlclByb3BzJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNlYXJjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPdmVybGF5Q2xvc2VDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFNlYXJjaE92ZXJsYXlDbG9zZUNsaWNrRXZlbnQgYXMgSVN0emhTZWFyY2hTdHpoU2VhcmNoT3ZlcmxheUNsb3NlQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTZWFyY2ggZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTZWFyY2gge1xuICAvKipcbiAgICogU2VhcmNoIG92ZXJsYXkgY2xvc2UgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhPdmVybGF5Q2xvc2VDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU2VhcmNoU3R6aFNlYXJjaE92ZXJsYXlDbG9zZUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdicmVha291dCcsICdtYXJnaW5Cb3R0b20nLCAnbWFyZ2luVG9wJywgJ3BhZGRpbmdCb3R0b20nLCAncGFkZGluZ1RvcCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNlY3Rpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmQnLCAnYnJlYWtvdXQnLCAnbWFyZ2luQm90dG9tJywgJ21hcmdpblRvcCcsICdwYWRkaW5nQm90dG9tJywgJ3BhZGRpbmdUb3AnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2VjdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTZWN0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2VjdGlvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAnbWFpbEJvZHknLCAnbWFpbFN1YmplY3QnLCAnc2VydmljZXMnLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNoYXJlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAnbWFpbEJvZHknLCAnbWFpbFN1YmplY3QnLCAnc2VydmljZXMnLCAndXJsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTaGFyZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTaGFyZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNoYXJlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NlS2V5JywgJ2hpZGVGcm9tRGF0ZScsICdsYXJnZScsICdtZWRpdW0nLCAnbWlrcm8nLCAnc2hvd0Zyb21EYXRlJywgJ3NtYWxsJywgJ3VsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNob3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NlS2V5JywgJ2hpZGVGcm9tRGF0ZScsICdsYXJnZScsICdtZWRpdW0nLCAnbWlrcm8nLCAnc2hvd0Zyb21EYXRlJywgJ3NtYWxsJywgJ3VsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTaG93IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNob3cgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTaG93IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2l0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNpdGVtYXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW1zJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTaXRlbWFwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNpdGVtYXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTaXRlbWFwIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNraW4tcG9ydGFsLW1pdHdpcmtlbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2tpblBvcnRhbE1pdHdpcmtlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTa2luUG9ydGFsTWl0d2lya2VuIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2tpblBvcnRhbE1pdHdpcmtlbiB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1za2luLXN0b3J5Ym9vay1wcmV2aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTa2luU3Rvcnlib29rUHJldmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTa2luU3Rvcnlib29rUHJldmlldyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNraW5TdG9yeWJvb2tQcmV2aWV3IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbGlua0FjY2Vzc2tleScsICdsaW5rVGl0bGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2tpcGxpbmsnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbGlua0FjY2Vzc2tleScsICdsaW5rVGl0bGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNraXBsaW5rIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU2tpcGxpbmtGb2N1c0V2ZW50IGFzIElTdHpoU2tpcGxpbmtTdHpoU2tpcGxpbmtGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoU2tpcGxpbmtCbHVyRXZlbnQgYXMgSVN0emhTa2lwbGlua1N0emhTa2lwbGlua0JsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTa2lwbGluayBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNraXBsaW5rIHtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNraXBsaW5rU3R6aFNraXBsaW5rRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNraXBsaW5rU3R6aFNraXBsaW5rQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2l0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNvY2lhbG1lZGlhc3RyZWFtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpdGVtcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU29jaWFsbWVkaWFzdHJlYW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU29jaWFsbWVkaWFzdHJlYW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTb2NpYWxtZWRpYXN0cmVhbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNvY2lhbG1lZGlhc3RyZWFtLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW0nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNvY2lhbG1lZGlhc3RyZWFtSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTb2NpYWxtZWRpYXN0cmVhbUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTb2NpYWxtZWRpYXN0cmVhbUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2RhdGFJZEF0dHJpYnV0ZScsICdkaXNhYmxlZCcsICdmaWx0ZXJFbGVtZW50cycsICdnaG9zdENsb25lJywgJ2xvY2FsaXphdGlvbiddLFxuICBtZXRob2RzOiBbJ3RvQXJyYXknLCAnc29ydCcsICdtb3ZlSXRlbSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zb3J0YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2RhdGFJZEF0dHJpYnV0ZScsICdkaXNhYmxlZCcsICdmaWx0ZXJFbGVtZW50cycsICdnaG9zdENsb25lJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU29ydGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoVXBkYXRlJywgJ3N0emhEaXNhYmxlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU29ydGFibGVVcGRhdGVFdmVudCBhcyBJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlVXBkYXRlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTb3J0YWJsZURpc2FibGVFdmVudCBhcyBJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlRGlzYWJsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNvcnRhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU29ydGFibGUge1xuICAvKipcbiAgICogVXBkYXRlIGV2ZW50XG4gICAqL1xuICBzdHpoVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTb3J0YWJsZVN0emhTb3J0YWJsZVVwZGF0ZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXNhYmxlIGV2ZW50XG4gICAqL1xuICBzdHpoRGlzYWJsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU29ydGFibGVTdHpoU29ydGFibGVEaXNhYmxlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3BhY2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICdwZXJjZW50JywgJ3R5cGUnLCAnd2l0aExvYWRpbmdiYXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RhdHVzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICdwZXJjZW50JywgJ3R5cGUnLCAnd2l0aExvYWRpbmdiYXInXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0YXR1cyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTdGF0dXMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGF0dXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmxlZWRpbmcnLCAnZGlzYWJsZVN0aWNreUJvdHRvbScsICdkaXNhYmxlU3RpY2t5VG9wJywgJ25hbWUnLCAncG9zaXRpb24nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zdGlja3knLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JsZWVkaW5nJywgJ2Rpc2FibGVTdGlja3lCb3R0b20nLCAnZGlzYWJsZVN0aWNreVRvcCcsICduYW1lJywgJ3Bvc2l0aW9uJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0aWNreSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhTdHVja1RvcCcsICdzdHpoU3R1Y2tCb3R0b20nXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTdGlja3lTdHVja1RvcEV2ZW50IGFzIElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTdGlja3lTdHVja0JvdHRvbUV2ZW50IGFzIElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3RpY2t5IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU3RpY2t5IHtcbiAgLyoqXG4gICAqIFN0aWNreSBzdHVjayB0b3AgZXZlbnRcbiAgICovXG4gIHN0emhTdHVja1RvcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN0aWNreSBzdHVjayBib3R0b20gZXZlbnRcbiAgICovXG4gIHN0emhTdHVja0JvdHRvbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncGFnZXRpdGxlUXVlcnknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RpY2t5LWFjdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BhZ2V0aXRsZVF1ZXJ5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTdGlja3lBY3Rpb25zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFN0aWNreUFjdGlvbnMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGlja3lBY3Rpb25zIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVNaW5XaWR0aCcsICdmaXhlZExlZnQnLCAnZml4ZWRSaWdodCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZU1pbldpZHRoJywgJ2ZpeGVkTGVmdCcsICdmaXhlZFJpZ2h0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUYWJsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRhYmxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAnc2l6ZScsICd0YXJnZXQnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10YWcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAnc2l6ZScsICd0YXJnZXQnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGFnIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0NsaWNrRXZlbnQgYXMgSVN0emhUYWdTdHpoVGFnQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0ZvY3VzRXZlbnQgYXMgSVN0emhUYWdTdHpoVGFnRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0JsdXJFdmVudCBhcyBJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGFnIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGFnIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUYWdTdHpoVGFnRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnY3VydmUnLCAnZm9udCcsICdsZWFkJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdjdXJ2ZScsICdmb250JywgJ2xlYWQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRleHQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUZXh0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ltYWdlUG9zaXRpb24nLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10ZXh0YW5kaW1hZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ltYWdlUG9zaXRpb24nLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGV4dGFuZGltYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRleHRhbmRpbWFnZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRleHRhbmRpbWFnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdmb2xkYWJsZScsICdtdWx0aXNlbGVjdGFibGUnXSxcbiAgbWV0aG9kczogWydzZXRJdGVtRm9jdXMnLCAndXBkYXRlU3RlcHMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGltZWxpbmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2ZvbGRhYmxlJywgJ211bHRpc2VsZWN0YWJsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZWxpbmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9sZGFibGVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQgYXMgSVN0emhUaW1lbGluZVN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGltZWxpbmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUaW1lbGluZSB7XG4gIC8qKlxuICAgKiBGb2xkYWJsZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhGb2xkYWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVTdHpoVGltZWxpbmVGb2xkYWJsZUNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvbGxhcHNpYmxlJywgJ2NvbXBsZXRlZCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdmb2xkYWJsZScsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpY29uJywgJ29wZW4nLCAnc3RlcCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGltZWxpbmUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnY29tcGxldGVkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2ZvbGRhYmxlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnb3BlbicsICdzdGVwJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUaW1lbGluZUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbU9wZW5FdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUl0ZW1PcGVuZWRFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbUNsb3NlRXZlbnQgYXMgSVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbUNsb3NlZEV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtRm9jdXNFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtQmx1ckV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUaW1lbGluZUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUaW1lbGluZUl0ZW0ge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbU9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10aW1lcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lcGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhUaW1lcGlja2VyU3R6aFRpbWVwaWNrZXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUaW1lcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGltZXBpY2tlciB7XG4gIC8qKlxuICAgKiBUaW1lcGlja2VyIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZXBpY2tlclN0emhUaW1lcGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2luaXRpYWxPcGVuQW5pbWF0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9hc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVDbG9zZScsICdpbml0aWFsT3BlbkFuaW1hdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUb2FzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdE9wZW5FdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9hc3RPcGVuZWRFdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdENsb3NlRXZlbnQgYXMgSVN0emhUb2FzdFN0emhUb2FzdENsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdENsb3NlZEV2ZW50IGFzIElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb2FzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvYXN0IHtcbiAgLyoqXG4gICAqIFRvYXN0IG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdE9wZW5FdmVudD4+O1xuICAvKipcbiAgICogVG9hc3Qgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdE9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb2FzdCBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdENsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvYXN0IGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlQWZ0ZXInLCAnaW5pdGlhbFRvYXN0cycsICdtYXgnXSxcbiAgbWV0aG9kczogWyd0b2FzdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10b2FzdGJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUFmdGVyJywgJ2luaXRpYWxUb2FzdHMnLCAnbWF4J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUb2FzdGJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb2FzdGJhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvYXN0YmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVG9nZ2xlQ2hhbmdlRXZlbnQgYXMgSVN0emhUb2dnbGVTdHpoVG9nZ2xlQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2dnbGVGb2N1c0V2ZW50IGFzIElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2dnbGVCbHVyRXZlbnQgYXMgSVN0emhUb2dnbGVTdHpoVG9nZ2xlQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvZ2dsZSB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvZ2dsZVN0emhUb2dnbGVDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2dnbGVTdHpoVG9nZ2xlQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnZGlzdGFuY2UnLCAnaW50ZXJhY3RpdmUnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NpemUnLCAnc2tpZGRpbmcnLCAnc3RyYXRlZ3knLCAndHJpZ2dlcicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZScsICd1cGRhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGVudCcsICdkaXN0YW5jZScsICdpbnRlcmFjdGl2ZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICdza2lkZGluZycsICdzdHJhdGVneScsICd0cmlnZ2VyJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcE9wZW5FdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvb2x0aXBPcGVuZWRFdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcENsb3NlRXZlbnQgYXMgSVN0emhUb29sdGlwU3R6aFRvb2x0aXBDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcENsb3NlZEV2ZW50IGFzIElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvb2x0aXAge1xuICAvKipcbiAgICogVG9vbHRpcCBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb29sdGlwIG9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvb2x0aXAgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogVG9vbHRpcCBjbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcENsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXR3b2NvbHVtbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFR3b2NvbHVtbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVHdvY29sdW1ucyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFR3b2NvbHVtbnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2FjY2VwdGVkRmlsZXMnLCAnYXV0b1Byb2Nlc3NRdWV1ZScsICdidXR0b24nLCAnYnV0dG9uU2NhbicsICdjaHVua1NpemUnLCAnY2h1bmtpbmcnLCAnY2h1bmtzVXBsb2FkZWQnLCAnZGVmYXVsdEhlYWRlcnMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZVRvYXN0cycsICdkaXNhYmxlZCcsICdkb3dubG9hZERpc2FibGVkJywgJ2Rvd25sb2FkRGlzYWJsZWRXaGlsZVByb2Nlc3NpbmcnLCAnZXJyb3InLCAnZXhpc3RpbmdGaWxlcycsICdmaWxlc2l6ZUJhc2UnLCAnZm9yY2VDaHVua2luZycsICdoZWFkZXJzJywgJ2hlYWRpbmcnLCAnaGlkZGVuSW5wdXRDb250YWluZXInLCAnaGlkZVByb2dyZXNzJywgJ2hpZGVQcm9ncmVzc1doaWxlSWRsZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXhGaWxlcycsICdtYXhGaWxlc2l6ZScsICdtZXRob2QnLCAnbmFtZScsICdwYXJhbGxlbENodW5rVXBsb2FkcycsICdwYXJhbGxlbFVwbG9hZHMnLCAncGhvdG9ncmFwaGluZ0VuYWJsZWQnLCAncHJldmVudEhpZGRlbklucHV0Q2xlYXInLCAncmV0cnlDaHVua3MnLCAncmV0cnlDaHVua3NMaW1pdCcsICd1cGxvYWRNdWx0aXBsZScsICd1cmwnLCAnd2l0aENyZWRlbnRpYWxzJ10sXG4gIG1ldGhvZHM6IFsncHJvY2Vzc1F1ZXVlJywgJ3JlbW92ZUZpbGUnLCAncmVtb3ZlQWxsRmlsZXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdXBsb2FkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2NlcHQnLCAnYWNjZXB0ZWRGaWxlcycsICdhdXRvUHJvY2Vzc1F1ZXVlJywgJ2J1dHRvbicsICdidXR0b25TY2FuJywgJ2NodW5rU2l6ZScsICdjaHVua2luZycsICdjaHVua3NVcGxvYWRlZCcsICdkZWZhdWx0SGVhZGVycycsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlVG9hc3RzJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkRGlzYWJsZWQnLCAnZG93bmxvYWREaXNhYmxlZFdoaWxlUHJvY2Vzc2luZycsICdlcnJvcicsICdleGlzdGluZ0ZpbGVzJywgJ2ZpbGVzaXplQmFzZScsICdmb3JjZUNodW5raW5nJywgJ2hlYWRlcnMnLCAnaGVhZGluZycsICdoaWRkZW5JbnB1dENvbnRhaW5lcicsICdoaWRlUHJvZ3Jlc3MnLCAnaGlkZVByb2dyZXNzV2hpbGVJZGxlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ21heEZpbGVzJywgJ21heEZpbGVzaXplJywgJ21ldGhvZCcsICduYW1lJywgJ3BhcmFsbGVsQ2h1bmtVcGxvYWRzJywgJ3BhcmFsbGVsVXBsb2FkcycsICdwaG90b2dyYXBoaW5nRW5hYmxlZCcsICdwcmV2ZW50SGlkZGVuSW5wdXRDbGVhcicsICdyZXRyeUNodW5rcycsICdyZXRyeUNodW5rc0xpbWl0JywgJ3VwbG9hZE11bHRpcGxlJywgJ3VybCcsICd3aXRoQ3JlZGVudGlhbHMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFVwbG9hZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGaWxlQWRkZWQnLCAnc3R6aEZpbGVzQWRkZWQnLCAnc3R6aEZpbGVSZW1vdmUnLCAnc3R6aEZpbGVSZW1vdmVkJywgJ3N0emhTZW5kaW5nJywgJ3N0emhTZW5kaW5nTXVsdGlwbGUnLCAnc3R6aFByb2Nlc3NpbmcnLCAnc3R6aFByb2Nlc3NpbmdNdWx0aXBsZScsICdzdHpoUHJvZ3Jlc3MnLCAnc3R6aFByb2dyZXNzVG90YWwnLCAnc3R6aEVycm9yJywgJ3N0emhFcnJvck11bHRpcGxlJywgJ3N0emhTdWNjZXNzJywgJ3N0emhTdWNjZXNzTXVsdGlwbGUnLCAnc3R6aENhbmNlbGVkJywgJ3N0emhDYW5jZWxlZE11bHRpcGxlJywgJ3N0emhDb21wbGV0ZScsICdzdHpoQ29tcGxldGVNdWx0aXBsZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEZpbGVBZGRlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVBZGRlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRmlsZXNBZGRlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVzQWRkZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEZpbGVSZW1vdmVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRGaWxlUmVtb3ZlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRTZW5kaW5nRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkU2VuZGluZ011bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ011bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9jZXNzaW5nRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkUHJvY2Vzc2luZ011bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ011bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9ncmVzc0V2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2dyZXNzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9ncmVzc1RvdGFsRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NUb3RhbEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRXJyb3JFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRFcnJvckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRXJyb3JNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFN1Y2Nlc3NFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRTdWNjZXNzTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENhbmNlbGVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkQ2FuY2VsZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENhbmNlbGVkTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZE11bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRDb21wbGV0ZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZENvbXBsZXRlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRDb21wbGV0ZU11bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFVwbG9hZCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFVwbG9hZCB7XG4gIC8qKlxuICAgKiBGaWxlIGFkZGVkXG4gICAqL1xuICBzdHpoRmlsZUFkZGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZUFkZGVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIGFkZGVkIChtdWx0aXBsZSlcbiAgICovXG4gIHN0emhGaWxlc0FkZGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZXNBZGRlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlIHJlbW92ZSAoYmVmb3JlLCBjYW5jZWxhYmxlKVxuICAgKi9cbiAgc3R6aEZpbGVSZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGUgcmVtb3ZlZFxuICAgKi9cbiAgc3R6aEZpbGVSZW1vdmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZVJlbW92ZWRFdmVudD4+O1xuICAvKipcbiAgICogQmVmb3JlIHNlbmRpbmcgZmlsZSAoYWRkIGFkZGl0aW9uYWwgZGF0YSBiZWZvcmUgcmVxdWVzdCBpZiBuZWNlc3NhcnkpXG4gICAqL1xuICBzdHpoU2VuZGluZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFNlbmRpbmdFdmVudD4+O1xuICAvKipcbiAgICogQmVmb3JlIHNlbmRpbmcgbXVsdGlwbGUgZmlsZXMgKGFkZCBhZGRpdGlvbmFsIGRhdGEgYmVmb3JlIHJlcXVlc3QgaWYgbmVjZXNzYXJ5KVxuICAgKi9cbiAgc3R6aFNlbmRpbmdNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFNlbmRpbmdNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBzdGFydGluZyB0byBnZXQgcHJvY2Vzc2VkXG4gICAqL1xuICBzdHpoUHJvY2Vzc2luZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2Nlc3NpbmdFdmVudD4+O1xuICAvKipcbiAgICogRmlsZXMgc3RhcnRpbmcgdG8gZ2V0IHByb2Nlc3NlZCAobXVsdGlwbGUpXG4gICAqL1xuICBzdHpoUHJvY2Vzc2luZ011bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ011bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFVwbG9hZCBmaWxlIHByb2dyZXNzIGR1cmluZyB1cGxvYWRcbiAgICovXG4gIHN0emhQcm9ncmVzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2dyZXNzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFVwbG9hZCB0b3RhbCBmaWxlIHByb2dyZXNzIGR1cmluZyB1cGxvYWRcbiAgICovXG4gIHN0emhQcm9ncmVzc1RvdGFsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NUb3RhbEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlIGVycm9yXG4gICAqL1xuICBzdHpoRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRFcnJvckV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBlcnJvciAobXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoRXJyb3JNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yTXVsdGlwbGVFdmVudD4+O1xuICAvKipcbiAgICogRmlsZSBzdWNjZXNzZnVsbHkgdXBsb2FkZWRcbiAgICovXG4gIHN0emhTdWNjZXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU3VjY2Vzc0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBzdWNjZXNzZnVsbHkgdXBsb2FkZWQgKG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aFN1Y2Nlc3NNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFN1Y2Nlc3NNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDYW5jZWxlZCBmaWxlIHVwbG9hZFxuICAgKi9cbiAgc3R6aENhbmNlbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ2FuY2VsZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2FuY2VsZWQgZmlsZSB1cGxvYWQgKG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aENhbmNlbGVkTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZE11bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENvbXBsZXRlZCB1cGxvYWQgKHN1Y2Nlc3NmdWxseSBvciB3aXRoIGVycm9yKVxuICAgKi9cbiAgc3R6aENvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVFdmVudD4+O1xuICAvKipcbiAgICogQ29tcGxldGVkIHVwbG9hZCAoc3VjY2Vzc2Z1bGx5IG9yIHdpdGggZXJyb3IsIG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aENvbXBsZXRlTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZU11bHRpcGxlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b3BsYXlUaW1lb3V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1jYXJvdXNlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b3BsYXlUaW1lb3V0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpDYXJvdXNlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpDYXJvdXNlbCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZiekNhcm91c2VsIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1jb25uZWN0aW9uLWZpbmRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVmJ6Q29ubmVjdGlvbkZpbmRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpDb25uZWN0aW9uRmluZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6Q29ubmVjdGlvbkZpbmRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAncXVpY2tsaW5rcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotaW50cm8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdxdWlja2xpbmtzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpJbnRybyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpJbnRybyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZiekludHJvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhbGVydCcsICdhbmFseXRpY3NJZCcsICdkaXNhYmxlZCcsICdnbG9iYWwnLCAnbGluZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotbGluZWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhbGVydCcsICdhbmFseXRpY3NJZCcsICdkaXNhYmxlZCcsICdnbG9iYWwnLCAnbGluZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVmJ6TGluZWNoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQgYXMgSVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhWYnpMaW5lY2hpcEJsdXJFdmVudCBhcyBJU3R6aFZiekxpbmVjaGlwU3R6aFZiekxpbmVjaGlwQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekxpbmVjaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6TGluZWNoaXAge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2RhdGEnLCAnZGF0ZUFkYXB0ZXInLCAnbG9jYWxpemF0aW9uJywgJ21vcmVJbmZvTGluaycsICdzaG93Q2xvc2VLZXknXSxcbiAgbWV0aG9kczogWydnZXRHaGV0dG9ib3hTaG93bicsICdnZXREaXN0dXJiYW5jZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotbWFqb3J0aWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdkYXRhJywgJ2RhdGVBZGFwdGVyJywgJ2xvY2FsaXphdGlvbicsICdtb3JlSW5mb0xpbmsnLCAnc2hvd0Nsb3NlS2V5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpNYWpvcnRpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhEaXN0dXJiYW5jZUZldGNoZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhWYnpNYWpvcnRpY2tlckRpc3R1cmJhbmNlRmV0Y2hlZEV2ZW50IGFzIElTdHpoVmJ6TWFqb3J0aWNrZXJTdHpoVmJ6TWFqb3J0aWNrZXJEaXN0dXJiYW5jZUZldGNoZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpNYWpvcnRpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZiek1ham9ydGlja2VyIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gbWFqb3IgZGlzdHVyYmFuY2Ugd2FzIGZldGNoZWRcbiAgICovXG4gIHN0emhEaXN0dXJiYW5jZUZldGNoZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFZiek1ham9ydGlja2VyU3R6aFZiek1ham9ydGlja2VyRGlzdHVyYmFuY2VGZXRjaGVkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2RhdGEnLCAnZGF0ZUFkYXB0ZXInLCAnbG9jYWxpemF0aW9uJywgJ21vcmVJbmZvTGluayddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotdGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnZGF0YScsICdkYXRlQWRhcHRlcicsICdsb2NhbGl6YXRpb24nLCAnbW9yZUluZm9MaW5rJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpUaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVmJ6VGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6VGlja2VyIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZpc3VhbGx5aGlkZGVuJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWaXN1YWxseWhpZGRlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWaXN1YWxseWhpZGRlbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZpc3VhbGx5aGlkZGVuIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRCb3R0b20nLCAnYXJvdW5kVG9wJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12c3BhY2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRCb3R0b20nLCAnYXJvdW5kVG9wJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVnNwYWNlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZzcGFjZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZzcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb29raWUnLCAnY29va2llRXhwaXJlcycsICdsb2NhbGl6YXRpb24nLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3VybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC15b3V0dWJlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb29raWUnLCAnY29va2llRXhwaXJlcycsICdsb2NhbGl6YXRpb24nLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3VybCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoWW91dHViZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhZb3V0dWJlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoWW91dHViZSB7fVxuXG5cbiJdfQ==
|