@awc-ui/angular 1.0.0-beta.6 → 1.0.0-beta.8
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.
|
@@ -263,12 +263,12 @@ let MdBadge = class MdBadge {
|
|
|
263
263
|
this.el = r.nativeElement;
|
|
264
264
|
}
|
|
265
265
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
266
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdBadge, isStandalone: true, selector: "md-badge", inputs: { density: "density", icon: "icon", max: "max", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
266
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdBadge, isStandalone: true, selector: "md-badge", inputs: { density: "density", icon: "icon", max: "max", shape: "shape", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
267
267
|
};
|
|
268
268
|
MdBadge = __decorate([
|
|
269
269
|
ProxyCmp({
|
|
270
270
|
defineCustomElementFn: defineMdBadge,
|
|
271
|
-
inputs: ['density', 'icon', 'max', 'value', 'variant']
|
|
271
|
+
inputs: ['density', 'icon', 'max', 'shape', 'value', 'variant']
|
|
272
272
|
})
|
|
273
273
|
], MdBadge);
|
|
274
274
|
export { MdBadge };
|
|
@@ -279,7 +279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
279
279
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
280
280
|
template: '<ng-content></ng-content>',
|
|
281
281
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
282
|
-
inputs: ['density', 'icon', 'max', 'value', 'variant'],
|
|
282
|
+
inputs: ['density', 'icon', 'max', 'shape', 'value', 'variant'],
|
|
283
283
|
standalone: true
|
|
284
284
|
}]
|
|
285
285
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
@@ -519,12 +519,12 @@ let MdChip = class MdChip {
|
|
|
519
519
|
proxyOutputs(this, this.el, ['mdClick', 'mdSelect', 'mdRemove']);
|
|
520
520
|
}
|
|
521
521
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
522
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdChip, isStandalone: true, selector: "md-chip", inputs: { appearance: "appearance", color: "color", density: "density", disabled: "disabled", elevated: "elevated", icon: "icon", label: "label", removable: "removable", selectable: "selectable", selected: "selected", softDisabled: "softDisabled", trailingIcon: "trailingIcon", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
522
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdChip, isStandalone: true, selector: "md-chip", inputs: { appearance: "appearance", color: "color", contentAlign: "contentAlign", density: "density", disabled: "disabled", elevated: "elevated", icon: "icon", label: "label", removable: "removable", selectable: "selectable", selected: "selected", softDisabled: "softDisabled", trailingIcon: "trailingIcon", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
523
523
|
};
|
|
524
524
|
MdChip = __decorate([
|
|
525
525
|
ProxyCmp({
|
|
526
526
|
defineCustomElementFn: defineMdChip,
|
|
527
|
-
inputs: ['appearance', 'color', 'density', 'disabled', 'elevated', 'icon', 'label', 'removable', 'selectable', 'selected', 'softDisabled', 'trailingIcon', 'variant']
|
|
527
|
+
inputs: ['appearance', 'color', 'contentAlign', 'density', 'disabled', 'elevated', 'icon', 'label', 'removable', 'selectable', 'selected', 'softDisabled', 'trailingIcon', 'variant']
|
|
528
528
|
})
|
|
529
529
|
], MdChip);
|
|
530
530
|
export { MdChip };
|
|
@@ -535,7 +535,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
535
535
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
536
536
|
template: '<ng-content></ng-content>',
|
|
537
537
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
538
|
-
inputs: ['appearance', 'color', 'density', 'disabled', 'elevated', 'icon', 'label', 'removable', 'selectable', 'selected', 'softDisabled', 'trailingIcon', 'variant'],
|
|
538
|
+
inputs: ['appearance', 'color', 'contentAlign', 'density', 'disabled', 'elevated', 'icon', 'label', 'removable', 'selectable', 'selected', 'softDisabled', 'trailingIcon', 'variant'],
|
|
539
539
|
standalone: true
|
|
540
540
|
}]
|
|
541
541
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
@@ -1684,12 +1684,12 @@ let MdStatusDot = class MdStatusDot {
|
|
|
1684
1684
|
this.el = r.nativeElement;
|
|
1685
1685
|
}
|
|
1686
1686
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdStatusDot, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1687
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdStatusDot, isStandalone: true, selector: "md-status-dot", inputs: { density: "density", inline: "inline", label: "label", live: "live", size: "size", state: "state" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1687
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdStatusDot, isStandalone: true, selector: "md-status-dot", inputs: { density: "density", inline: "inline", label: "label", live: "live", shape: "shape", size: "size", state: "state" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1688
1688
|
};
|
|
1689
1689
|
MdStatusDot = __decorate([
|
|
1690
1690
|
ProxyCmp({
|
|
1691
1691
|
defineCustomElementFn: defineMdStatusDot,
|
|
1692
|
-
inputs: ['density', 'inline', 'label', 'live', 'size', 'state']
|
|
1692
|
+
inputs: ['density', 'inline', 'label', 'live', 'shape', 'size', 'state']
|
|
1693
1693
|
})
|
|
1694
1694
|
], MdStatusDot);
|
|
1695
1695
|
export { MdStatusDot };
|
|
@@ -1700,7 +1700,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1700
1700
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1701
1701
|
template: '<ng-content></ng-content>',
|
|
1702
1702
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1703
|
-
inputs: ['density', 'inline', 'label', 'live', 'size', 'state'],
|
|
1703
|
+
inputs: ['density', 'inline', 'label', 'live', 'shape', 'size', 'state'],
|
|
1704
1704
|
standalone: true
|
|
1705
1705
|
}]
|
|
1706
1706
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
@@ -1740,12 +1740,12 @@ let MdStepper = class MdStepper {
|
|
|
1740
1740
|
proxyOutputs(this, this.el, ['mdBeforeChange', 'mdStepChange', 'mdComplete']);
|
|
1741
1741
|
}
|
|
1742
1742
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdStepper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1743
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdStepper, isStandalone: true, selector: "md-stepper", inputs: { active: "active", autoComplete: "autoComplete", backLabel: "backLabel", completedWord: "completedWord", currentWord: "currentWord", density: "density", errorWord: "errorWord", finishLabel: "finishLabel", indicator: "indicator", label: "label", lazy: "lazy", loading: "loading", mode: "mode", nav: "nav", nextDisabled: "nextDisabled", nextLabel: "nextLabel", ofWord: "ofWord", optionalWord: "optionalWord", orientation: "orientation", stepWord: "stepWord", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1743
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdStepper, isStandalone: true, selector: "md-stepper", inputs: { active: "active", autoComplete: "autoComplete", backLabel: "backLabel", completedWord: "completedWord", currentWord: "currentWord", density: "density", errorWord: "errorWord", finishLabel: "finishLabel", indicator: "indicator", label: "label", lazy: "lazy", loading: "loading", mode: "mode", nav: "nav", nextDisabled: "nextDisabled", nextLabel: "nextLabel", ofWord: "ofWord", optionalWord: "optionalWord", orientation: "orientation", readonly: "readonly", stepWord: "stepWord", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1744
1744
|
};
|
|
1745
1745
|
MdStepper = __decorate([
|
|
1746
1746
|
ProxyCmp({
|
|
1747
1747
|
defineCustomElementFn: defineMdStepper,
|
|
1748
|
-
inputs: ['active', 'autoComplete', 'backLabel', 'completedWord', 'currentWord', 'density', 'errorWord', 'finishLabel', 'indicator', 'label', 'lazy', 'loading', 'mode', 'nav', 'nextDisabled', 'nextLabel', 'ofWord', 'optionalWord', 'orientation', 'stepWord', 'variant'],
|
|
1748
|
+
inputs: ['active', 'autoComplete', 'backLabel', 'completedWord', 'currentWord', 'density', 'errorWord', 'finishLabel', 'indicator', 'label', 'lazy', 'loading', 'mode', 'nav', 'nextDisabled', 'nextLabel', 'ofWord', 'optionalWord', 'orientation', 'readonly', 'stepWord', 'variant'],
|
|
1749
1749
|
methods: ['next', 'prev', 'goTo', 'reset']
|
|
1750
1750
|
})
|
|
1751
1751
|
], MdStepper);
|
|
@@ -1757,7 +1757,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1757
1757
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1758
1758
|
template: '<ng-content></ng-content>',
|
|
1759
1759
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1760
|
-
inputs: ['active', 'autoComplete', 'backLabel', 'completedWord', 'currentWord', 'density', 'errorWord', 'finishLabel', 'indicator', 'label', 'lazy', 'loading', 'mode', 'nav', 'nextDisabled', 'nextLabel', 'ofWord', 'optionalWord', 'orientation', 'stepWord', 'variant'],
|
|
1760
|
+
inputs: ['active', 'autoComplete', 'backLabel', 'completedWord', 'currentWord', 'density', 'errorWord', 'finishLabel', 'indicator', 'label', 'lazy', 'loading', 'mode', 'nav', 'nextDisabled', 'nextLabel', 'ofWord', 'optionalWord', 'orientation', 'readonly', 'stepWord', 'variant'],
|
|
1761
1761
|
standalone: true
|
|
1762
1762
|
}]
|
|
1763
1763
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
@@ -1769,12 +1769,12 @@ let MdSubMenuItem = class MdSubMenuItem {
|
|
|
1769
1769
|
proxyOutputs(this, this.el, ['mdClick']);
|
|
1770
1770
|
}
|
|
1771
1771
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSubMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1772
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSubMenuItem, isStandalone: true, selector: "md-sub-menu-item", inputs: { badge: "badge", density: "density", disabled: "disabled", divider: "divider", gap: "gap", headline: "headline", supportingText: "supportingText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1772
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSubMenuItem, isStandalone: true, selector: "md-sub-menu-item", inputs: { badge: "badge", closeDelay: "closeDelay", density: "density", disabled: "disabled", divider: "divider", gap: "gap", headline: "headline", openDelay: "openDelay", supportingText: "supportingText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1773
1773
|
};
|
|
1774
1774
|
MdSubMenuItem = __decorate([
|
|
1775
1775
|
ProxyCmp({
|
|
1776
1776
|
defineCustomElementFn: defineMdSubMenuItem,
|
|
1777
|
-
inputs: ['badge', 'density', 'disabled', 'divider', 'gap', 'headline', 'supportingText'],
|
|
1777
|
+
inputs: ['badge', 'closeDelay', 'density', 'disabled', 'divider', 'gap', 'headline', 'openDelay', 'supportingText'],
|
|
1778
1778
|
methods: ['collapse']
|
|
1779
1779
|
})
|
|
1780
1780
|
], MdSubMenuItem);
|
|
@@ -1786,7 +1786,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1786
1786
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1787
1787
|
template: '<ng-content></ng-content>',
|
|
1788
1788
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1789
|
-
inputs: ['badge', 'density', 'disabled', 'divider', 'gap', 'headline', 'supportingText'],
|
|
1789
|
+
inputs: ['badge', 'closeDelay', 'density', 'disabled', 'divider', 'gap', 'headline', 'openDelay', 'supportingText'],
|
|
1790
1790
|
standalone: true
|
|
1791
1791
|
}]
|
|
1792
1792
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
@@ -2268,12 +2268,12 @@ let MdTimePicker = class MdTimePicker {
|
|
|
2268
2268
|
proxyOutputs(this, this.el, ['mdChange', 'mdInput', 'mdOpen', 'mdClose', 'mdCancel', 'mdModeChange', 'mdValidityChange']);
|
|
2269
2269
|
}
|
|
2270
2270
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTimePicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2271
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTimePicker, isStandalone: true, selector: "md-time-picker", inputs: { amLabel: "amLabel", cancelLabel: "cancelLabel", density: "density", disabled: "disabled", format: "format", headline: "headline", headlineDialLabel: "headlineDialLabel", headlineInputLabel: "headlineInputLabel", hideTrigger: "hideTrigger", hourLabel: "hourLabel", label: "label", max: "max", min: "min", minuteLabel: "minuteLabel", minuteStep: "minuteStep", name: "name", okLabel: "okLabel", open: "open", orientation: "orientation", periodLabel: "periodLabel", periodLayout: "periodLayout", pmLabel: "pmLabel", rangeOutsideLabel: "rangeOutsideLabel", rangeOverflowLabel: "rangeOverflowLabel", rangeUnderflowLabel: "rangeUnderflowLabel", required: "required", responsive: "responsive", toggleDialLabel: "toggleDialLabel", toggleInputLabel: "toggleInputLabel", value: "value", valueMissingLabel: "valueMissingLabel", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2271
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTimePicker, isStandalone: true, selector: "md-time-picker", inputs: { amLabel: "amLabel", cancelLabel: "cancelLabel", density: "density", disabled: "disabled", error: "error", errorText: "errorText", format: "format", headline: "headline", headlineDialLabel: "headlineDialLabel", headlineInputLabel: "headlineInputLabel", hideTrigger: "hideTrigger", hourLabel: "hourLabel", label: "label", max: "max", min: "min", minuteLabel: "minuteLabel", minuteStep: "minuteStep", name: "name", okLabel: "okLabel", open: "open", orientation: "orientation", periodLabel: "periodLabel", periodLayout: "periodLayout", pmLabel: "pmLabel", rangeOutsideLabel: "rangeOutsideLabel", rangeOverflowLabel: "rangeOverflowLabel", rangeUnderflowLabel: "rangeUnderflowLabel", required: "required", reserveSupportingSpace: "reserveSupportingSpace", responsive: "responsive", supportingText: "supportingText", toggleDialLabel: "toggleDialLabel", toggleInputLabel: "toggleInputLabel", value: "value", valueMissingLabel: "valueMissingLabel", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2272
2272
|
};
|
|
2273
2273
|
MdTimePicker = __decorate([
|
|
2274
2274
|
ProxyCmp({
|
|
2275
2275
|
defineCustomElementFn: defineMdTimePicker,
|
|
2276
|
-
inputs: ['amLabel', 'cancelLabel', 'density', 'disabled', 'format', 'headline', 'headlineDialLabel', 'headlineInputLabel', 'hideTrigger', 'hourLabel', 'label', 'max', 'min', 'minuteLabel', 'minuteStep', 'name', 'okLabel', 'open', 'orientation', 'periodLabel', 'periodLayout', 'pmLabel', 'rangeOutsideLabel', 'rangeOverflowLabel', 'rangeUnderflowLabel', 'required', 'responsive', 'toggleDialLabel', 'toggleInputLabel', 'value', 'valueMissingLabel', 'variant'],
|
|
2276
|
+
inputs: ['amLabel', 'cancelLabel', 'density', 'disabled', 'error', 'errorText', 'format', 'headline', 'headlineDialLabel', 'headlineInputLabel', 'hideTrigger', 'hourLabel', 'label', 'max', 'min', 'minuteLabel', 'minuteStep', 'name', 'okLabel', 'open', 'orientation', 'periodLabel', 'periodLayout', 'pmLabel', 'rangeOutsideLabel', 'rangeOverflowLabel', 'rangeUnderflowLabel', 'required', 'reserveSupportingSpace', 'responsive', 'supportingText', 'toggleDialLabel', 'toggleInputLabel', 'value', 'valueMissingLabel', 'variant'],
|
|
2277
2277
|
methods: ['show', 'hide', 'checkValidity', 'reportValidity', 'getValidity']
|
|
2278
2278
|
})
|
|
2279
2279
|
], MdTimePicker);
|
|
@@ -2285,7 +2285,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2285
2285
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2286
2286
|
template: '<ng-content></ng-content>',
|
|
2287
2287
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2288
|
-
inputs: ['amLabel', 'cancelLabel', 'density', 'disabled', 'format', 'headline', 'headlineDialLabel', 'headlineInputLabel', 'hideTrigger', 'hourLabel', 'label', 'max', 'min', 'minuteLabel', 'minuteStep', 'name', 'okLabel', 'open', 'orientation', 'periodLabel', 'periodLayout', 'pmLabel', 'rangeOutsideLabel', 'rangeOverflowLabel', 'rangeUnderflowLabel', 'required', 'responsive', 'toggleDialLabel', 'toggleInputLabel', 'value', 'valueMissingLabel', 'variant'],
|
|
2288
|
+
inputs: ['amLabel', 'cancelLabel', 'density', 'disabled', 'error', 'errorText', 'format', 'headline', 'headlineDialLabel', 'headlineInputLabel', 'hideTrigger', 'hourLabel', 'label', 'max', 'min', 'minuteLabel', 'minuteStep', 'name', 'okLabel', 'open', 'orientation', 'periodLabel', 'periodLayout', 'pmLabel', 'rangeOutsideLabel', 'rangeOverflowLabel', 'rangeUnderflowLabel', 'required', 'reserveSupportingSpace', 'responsive', 'supportingText', 'toggleDialLabel', 'toggleInputLabel', 'value', 'valueMissingLabel', 'variant'],
|
|
2289
2289
|
standalone: true
|
|
2290
2290
|
}]
|
|
2291
2291
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
@@ -2375,4 +2375,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2375
2375
|
standalone: true
|
|
2376
2376
|
}]
|
|
2377
2377
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2378
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL3Byb3hpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9CQUFvQjtBQUNwQiw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJdkUsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHFCQUFxQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDakgsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzlHLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxjQUFjLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLElBQUksYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixJQUFJLHNCQUFzQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDbkgsT0FBTyxFQUFFLG1CQUFtQixJQUFJLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUcsT0FBTyxFQUFFLG1CQUFtQixJ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QyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDO29CQUNuWSxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50cyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQWNjb3JkaW9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1hY2NvcmRpb24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEFjY29yZGlvbkl0ZW0gfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWFjY29yZGlvbi1pdGVtLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRBcHBCYXIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWFwcC1iYXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEFyZWFDaGFydCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtYXJlYS1jaGFydC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQXV0b2NvbXBsZXRlIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1hdXRvY29tcGxldGUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEF2YXRhciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtYXZhdGFyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRCYWRnZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtYmFkZ2UuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJhckNoYXJ0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1iYXItY2hhcnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJvdHRvbVNoZWV0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1ib3R0b20tc2hlZXQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJyZWFkY3J1bWJJdGVtIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1icmVhZGNydW1iLWl0ZW0uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJyZWFkY3J1bWJzIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1icmVhZGNydW1icy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1idXR0b24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJ1dHRvbkdyb3VwIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1idXR0b24tZ3JvdXAuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZENhcmQgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWNhcmQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZENoZWNrYm94IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1jaGVja2JveC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQ2hpcCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtY2hpcC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQ29sb3JQaWNrZXIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWNvbG9yLXBpY2tlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kRGF0ZVBpY2tlciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtZGF0ZS1waWNrZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZERpYWxvZyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtZGlhbG9nLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWREaXZpZGVyIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1kaXZpZGVyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRGYWIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWZhYi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kRmFiTWVudSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtZmFiLW1lbnUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEZhYk1lbnVJdGVtIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1mYWItbWVudS1pdGVtLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRJY29uQnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1pY29uLWJ1dHRvbi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTGluZUNoYXJ0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1saW5lLWNoYXJ0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRMaXN0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1saXN0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRMaXN0SXRlbSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbGlzdC1pdGVtLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRMb2FkaW5nSW5kaWNhdG9yIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1sb2FkaW5nLWluZGljYXRvci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTWVudSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbWVudS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTWVudUl0ZW0gfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLW1lbnUtaXRlbS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTWVudUl0ZW1Hcm91cCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbWVudS1pdGVtLWdyb3VwLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRNZXRlciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbWV0ZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE11bHRpU2VsZWN0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1tdWx0aS1zZWxlY3QuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE5hdmlnYXRpb25CYXIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLW5hdmlnYXRpb24tYmFyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWROYXZpZ2F0aW9uUmFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbmF2aWdhdGlvbi1yYWlsLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWROYXZpZ2F0aW9uUmFpbFRhYiB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbmF2aWdhdGlvbi1yYWlsLXRhYi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTmF2aWdhdGlvblRhYiB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbmF2aWdhdGlvbi10YWIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE51bWJlckZpZWxkIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1udW1iZXItZmllbGQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE9yZ2FuaXphdGlvbkNoYXJ0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1vcmdhbml6YXRpb24tY2hhcnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE90cEZpZWxkIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1vdHAtZmllbGQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFBpZUNoYXJ0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1waWUtY2hhcnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFByb2dyZXNzSW5kaWNhdG9yIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1wcm9ncmVzcy1pbmRpY2F0b3IuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFJhZGlvIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1yYWRpby5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kUmF0aW5nIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1yYXRpbmcuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFJpcHBsZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtcmlwcGxlLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRTZWFyY2ggfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXNlYXJjaC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU2VnbWVudGVkQnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zZWdtZW50ZWQtYnV0dG9uLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRTZWdtZW50ZWRCdXR0b25TZXQgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXNlZ21lbnRlZC1idXR0b24tc2V0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRTZWxlY3QgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXNlbGVjdC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU2VsZWN0T3B0aW9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zZWxlY3Qtb3B0aW9uLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRTaWRlU2hlZXQgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXNpZGUtc2hlZXQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFNrZWxldG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1za2VsZXRvbi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU2xpZGVyIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zbGlkZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFNuYWNrYmFyIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zbmFja2Jhci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU3BhcmtsaW5lIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zcGFya2xpbmUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFNwbGl0QnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zcGxpdC1idXR0b24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFN0YXR1c0RvdCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtc3RhdHVzLWRvdC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU3RlcCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtc3RlcC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU3RlcHBlciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtc3RlcHBlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU3ViTWVudUl0ZW0gfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXN1Yi1tZW51LWl0ZW0uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFN3aXRjaCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtc3dpdGNoLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFiUGFuZWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYi1wYW5lbC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFiUGFuZWxzIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10YWItcGFuZWxzLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWJsZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFRhYmxlQm9keSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtYm9keS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFibGVDZWxsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10YWJsZS1jZWxsLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWJsZUNvbnRhaW5lciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtY29udGFpbmVyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWJsZUV4cGFuZFRvZ2dsZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtZXhwYW5kLXRvZ2dsZS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFibGVGb290IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10YWJsZS1mb290LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWJsZUhlYWQgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYmxlLWhlYWQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFRhYmxlUGFnaW5hdGlvbiB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtcGFnaW5hdGlvbi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFibGVSb3cgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYmxlLXJvdy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFibGVTb3J0TGFiZWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYmxlLXNvcnQtbGFiZWwuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFRhYmxlVG9vbGJhciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtdG9vbGJhci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFicyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFicy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGV4dEZpZWxkIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10ZXh0LWZpZWxkLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUaW1lUGlja2VyIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10aW1lLXBpY2tlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVG9vbGJhciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdG9vbGJhci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVG9vbHRpcCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdG9vbHRpcC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVHJhbnNmZXJMaXN0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10cmFuc2Zlci1saXN0LmpzJztcbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRBY2NvcmRpb24sXG4gIGlucHV0czogWydicmluZ1RvRnJvbnQnLCAnZGVmYXVsdEV4cGFuZGVkJywgJ2RlbnNpdHknLCAnZWxldmF0aW9uJywgJ2V4Y2x1c2l2ZScsICdmbG9hdGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaW5pdGlhbFgnLCAnaW5pdGlhbFknLCAna2VlcE9uZUV4cGFuZGVkJywgJ3JlZ2lvbicsICdyZWdpb25UaHJlc2hvbGQnLCAncmVvcmRlcmFibGUnLCAndHJhbnNpdGlvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JyaW5nVG9Gcm9udCcsICdkZWZhdWx0RXhwYW5kZWQnLCAnZGVuc2l0eScsICdlbGV2YXRpb24nLCAnZXhjbHVzaXZlJywgJ2Zsb2F0aW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpbml0aWFsWCcsICdpbml0aWFsWScsICdrZWVwT25lRXhwYW5kZWQnLCAncmVnaW9uJywgJ3JlZ2lvblRocmVzaG9sZCcsICdyZW9yZGVyYWJsZScsICd0cmFuc2l0aW9uJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEFjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kVG9nZ2xlJywgJ21kUmVvcmRlcicsICdtZERyYWdTdGFydCcsICdtZERyYWdNb3ZlJywgJ21kRHJhZ0VuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRBY2NvcmRpb25EcmFnRGV0YWlsIGFzIElNZEFjY29yZGlvbk1kQWNjb3JkaW9uRHJhZ0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLk1kQWNjb3JkaW9uIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhbiBpdGVtIGV4cGFuZHMgb3IgY29sbGFwc2VzLiBEZXRhaWwgY2FycmllcyB0aGVcbmZ1bGwgc2V0IG9mIGV4cGFuZGVkIGluZGljZXMuXG4gICAqL1xuICBtZFRvZ2dsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaW5kZXg6IG51bWJlcjsgZXhwYW5kZWQ6IGJvb2xlYW47IGV4cGFuZGVkSW5kaWNlczogbnVtYmVyW107IH0+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBpdGVtcyBhcmUgcmVvcmRlcmVkIHZpYSBkcmFnLWFuZC1kcm9wIG9yIGtleWJvYXJkXG4oQWx0K0Fycm93VXAgLyBBbHQrQXJyb3dEb3duKS4gYG9yZGVyYCBpcyB0aGUgbmV3IGluZGV4IHNlcXVlbmNlXG5yZWxhdGl2ZSB0byB0aGUgb3JpZ2luYWwgb3JkZXIsIGUuZy4gbW92aW5nIHRoZSBpdGVtIHRoYXQgd2FzIGF0XG5pbmRleCAwIHRvIGluZGV4IDIgeWllbGRzIGBvcmRlcjogWzEsIDIsIDBdYC5cbiAgICovXG4gIG1kUmVvcmRlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyOyBvcmRlcjogbnVtYmVyW107IH0+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgb25jZSBhIGZsb2F0aW5nIHBhbmVsIHN0YXJ0cyBiZWluZyBkcmFnZ2VkLlxuICAgKi9cbiAgbWREcmFnU3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRBY2NvcmRpb25NZEFjY29yZGlvbkRyYWdEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgY29udGludW91c2x5IHdoaWxlIGEgZmxvYXRpbmcgcGFuZWwgaXMgYmVpbmcgZHJhZ2dlZC5cbiAgICovXG4gIG1kRHJhZ01vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRBY2NvcmRpb25NZEFjY29yZGlvbkRyYWdEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIGZsb2F0aW5nIHBhbmVsIGlzIHJlbGVhc2VkLlxuICAgKi9cbiAgbWREcmFnRW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQWNjb3JkaW9uTWRBY2NvcmRpb25EcmFnRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEFjY29yZGlvbkl0ZW0sXG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdjb250ZW50TWF4SGVpZ2h0JywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnaGVhZGluZ0xldmVsJywgJ2hlYWRsaW5lJywgJ2ljb24nLCAncmVnaW9uUm9sZScsICdzdXBwb3J0aW5nVGV4dCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZScsICdmb2N1c0hlYWRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYWNjb3JkaW9uLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2NvbnRlbnRNYXhIZWlnaHQnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdleHBhbmRlZCcsICdoZWFkaW5nTGV2ZWwnLCAnaGVhZGxpbmUnLCAnaWNvbicsICdyZWdpb25Sb2xlJywgJ3N1cHBvcnRpbmdUZXh0J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRBY2NvcmRpb25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRJdGVtVG9nZ2xlJywgJ21kSXRlbVJlcXVlc3RGb2N1cycsICdtZEl0ZW1SZXF1ZXN0UmVvcmRlciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZEFjY29yZGlvbkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kQWNjb3JkaW9uSXRlbSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW5ldmVyIHRoZSBpdGVtIHRvZ2dsZXMuIFRoZSBwYXJlbnQgYG1kLWFjY29yZGlvbmAgdXNlc1xudGhpcyB0byBjb29yZGluYXRlIGV4Y2x1c2l2ZSBtb2RlLlxuICAgKi9cbiAgbWRJdGVtVG9nZ2xlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBleHBhbmRlZDogYm9vbGVhbjsgaW5kZXg6IG51bWJlciB9Pj47XG4gIC8qKlxuICAgKiBJbnRlcm5hbCBldmVudCB0aGUgcGFyZW50IGxpc3RlbnMgdG8gZm9yIGFycm93LWtleSByb3ZpbmcgZm9jdXMuXG5CdWJibGVzICsgY29tcG9zZWQgc28gdGhlIHBhcmVudCByZWNlaXZlcyBpdCB0aHJvdWdoIHRoZSBzaGFkb3cuXG4gICAqL1xuICBtZEl0ZW1SZXF1ZXN0Rm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGRpcmVjdGlvbjogJ25leHQnIHwgJ3ByZXYnIHwgJ2ZpcnN0JyB8ICdsYXN0JzsgZnJvbTogbnVtYmVyOyB9Pj47XG4gIC8qKlxuICAgKiBJbnRlcm5hbCBldmVudCB0aGUgcGFyZW50IGxpc3RlbnMgdG8gZm9yIEFsdCtBcnJvdyBrZXlib2FyZFxucmVvcmRlcmluZy4gQnViYmxlcyArIGNvbXBvc2VkIHNvIHRoZSBwYXJlbnQgcmVjZWl2ZXMgaXRcbnRocm91Z2ggdGhlIHNoYWRvdy5cbiAgICovXG4gIG1kSXRlbVJlcXVlc3RSZW9yZGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBkaXJlY3Rpb246ICd1cCcgfCAnZG93bic7IGZyb206IG51bWJlcjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRBcHBCYXIsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2hlYWRsaW5lJywgJ2xlYWRpbmdJY29uJywgJ2xlYWRpbmdJY29uTGFiZWwnLCAnc2Nyb2xsZWQnLCAnc2VhcmNoQXJpYUxhYmVsJywgJ3NlYXJjaERpc2FibGVkJywgJ3NlYXJjaFBsYWNlaG9sZGVyJywgJ3NlYXJjaFZhbHVlJywgJ3N1YnRpdGxlJywgJ3RpdGxlQWxpZ25tZW50JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWFwcC1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnaGVhZGxpbmUnLCAnbGVhZGluZ0ljb24nLCAnbGVhZGluZ0ljb25MYWJlbCcsICdzY3JvbGxlZCcsICdzZWFyY2hBcmlhTGFiZWwnLCAnc2VhcmNoRGlzYWJsZWQnLCAnc2VhcmNoUGxhY2Vob2xkZXInLCAnc2VhcmNoVmFsdWUnLCAnc3VidGl0bGUnLCAndGl0bGVBbGlnbm1lbnQnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQXBwQmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRMZWFkaW5nQ2xpY2snLCAnbWRTZWFyY2hBY3RpdmF0ZScsICdtZFNlYXJjaElucHV0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQXBwQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5NZEFwcEJhciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHByb3AtYmFzZWQgbGVhZGluZyBpY29uIGJ1dHRvbiBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICBtZExlYWRpbmdDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFNlYXJjaCB2YXJpYW50IG9ubHk6IGVtaXR0ZWQgd2hlbiB0aGUgaW5saW5lIHNlYXJjaCBmaWVsZCBpcyBzZWxlY3RlZFxuKGNsaWNrLCBmb2N1cywgRW50ZXIsIG9yIFNwYWNlKS4gV2lyZSB0aGlzIHRvIGBtZC1zZWFyY2guc2hvdygpYCB0byBvcGVuXG50aGUgZnVsbC1zY3JlZW4gc2VhcmNoIHZpZXcgcGVyIHRoZSBNRDMgc3BlYy5cbiAgICovXG4gIG1kU2VhcmNoQWN0aXZhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogU2VhcmNoIHZhcmlhbnQgb25seTogZW1pdHRlZCBvbiBldmVyeSBpbmxpbmUgc2VhcmNoIGZpZWxkIGlucHV0IGNoYW5nZS5cbiAgICovXG4gIG1kU2VhcmNoSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmcgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRBcmVhQ2hhcnQsXG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnYXhpc1RpY2tzJywgJ2Nvbm5lY3ROdWxscycsICdjdXJ2ZScsICdkZW5zaXR5JywgJ2ZpbGxPcGFjaXR5JywgJ2dyaWQnLCAnaGVpZ2h0UHJvcCcsICdpbnZlcnRlZCcsICdsYWJlbCcsICdsYWJlbEVtcHR5JywgJ2xhYmVsUGxvdCcsICdsYWJlbFBvaW50JywgJ2xhYmVsWm9vbUVuZCcsICdsYWJlbFpvb21TdGFydCcsICdsZWdlbmQnLCAnbGluZVdpZHRoJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdtYXJrU2l6ZScsICdub0FuaW1hdGlvbicsICdzZXJpZXMnLCAnc2VyaWVzTGFiZWxzJywgJ3Nob3dMYWJlbHMnLCAnc2hvd0xpbmUnLCAnc2hvd01hcmtzJywgJ3N0YWNrJywgJ3N1YnRpdGxlJywgJ3N1bW1hcnknLCAndGFibGVMYWJlbHMnLCAndGl0bGVBbGlnbicsICd0b29sdGlwJywgJ3Rvb2x0aXBSZW5kZXJlcicsICd2YWx1ZUZvcm1hdHRlcicsICd4QXhpcycsICd5QXhpcycsICd6b29tJ10sXG4gIG1ldGhvZHM6IFsncmVmcmVzaFRoZW1lJywgJ3Jlc2l6ZScsICdyZXBsYXknLCAndG9EYXRhVVJMJywgJ2dldEluc3RhbmNlJywgJ3NldFpvb20nLCAncmVzZXRab29tJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1hcmVhLWNoYXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnYXhpc1RpY2tzJywgJ2Nvbm5lY3ROdWxscycsICdjdXJ2ZScsICdkZW5zaXR5JywgJ2ZpbGxPcGFjaXR5JywgJ2dyaWQnLCAnaGVpZ2h0UHJvcCcsICdpbnZlcnRlZCcsICdsYWJlbCcsICdsYWJlbEVtcHR5JywgJ2xhYmVsUGxvdCcsICdsYWJlbFBvaW50JywgJ2xhYmVsWm9vbUVuZCcsICdsYWJlbFpvb21TdGFydCcsICdsZWdlbmQnLCAnbGluZVdpZHRoJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdtYXJrU2l6ZScsICdub0FuaW1hdGlvbicsICdzZXJpZXMnLCAnc2VyaWVzTGFiZWxzJywgJ3Nob3dMYWJlbHMnLCAnc2hvd0xpbmUnLCAnc2hvd01hcmtzJywgJ3N0YWNrJywgJ3N1YnRpdGxlJywgJ3N1bW1hcnknLCAndGFibGVMYWJlbHMnLCAndGl0bGVBbGlnbicsICd0b29sdGlwJywgJ3Rvb2x0aXBSZW5kZXJlcicsICd2YWx1ZUZvcm1hdHRlcicsICd4QXhpcycsICd5QXhpcycsICd6b29tJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRBcmVhQ2hhcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZE1hcmtlckNsaWNrJywgJ21kTGluZUNsaWNrJywgJ21kQXJlYUNsaWNrJywgJ21kQXhpc0NsaWNrJywgJ21kTGVnZW5kQ2xpY2snLCAnbWRIb3ZlcicsICdtZFJlYWR5JywgJ21kWm9vbSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRDaGFydENsaWNrRGV0YWlsIGFzIElNZEFyZWFDaGFydE1kQ2hhcnRDbGlja0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZENoYXJ0U2VyaWVzIGFzIElNZEFyZWFDaGFydE1kQ2hhcnRTZXJpZXMgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRDaGFydEF4aXNDbGlja0RldGFpbCBhcyBJTWRBcmVhQ2hhcnRNZENoYXJ0QXhpc0NsaWNrRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kQ2hhcnRIb3ZlckRldGFpbCBhcyBJTWRBcmVhQ2hhcnRNZENoYXJ0SG92ZXJEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQXJlYUNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5NZEFyZWFDaGFydCB7XG5cbiAgbWRNYXJrZXJDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZEFyZWFDaGFydE1kQ2hhcnRDbGlja0RldGFpbDxJTWRBcmVhQ2hhcnRNZENoYXJ0U2VyaWVzPj4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIHNlcmllcycgZHJhd24gbGluZSBpcyBjbGlja2VkICpiZXR3ZWVuKiBpdHMgZGF0YSBwb2ludHMgKGFcbmNsaWNrIG9uIGEgcG9pbnQgZW1pdHMgYG1kTWFya2VyQ2xpY2tgIGluc3RlYWQpLlxuICAgKi9cbiAgbWRMaW5lQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRBcmVhQ2hhcnRNZENoYXJ0Q2xpY2tEZXRhaWw8SU1kQXJlYUNoYXJ0TWRDaGFydFNlcmllcz4+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gYSBzZXJpZXMnIGZpbGxlZCBhcmVhIGlzIGNsaWNrZWQg4oCUIHRoZSBiYW5kIGJldHdlZW4gaXRzIGxpbmVcbmFuZCBpdHMgYmFzZSAoaXRzIG93biBiYW5kIHdoZW4gc3RhY2tlZCksIGV4Y2x1ZGluZyBpdHMgbGluZSBhbmQgcG9pbnRzLlxuICAgKi9cbiAgbWRBcmVhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRBcmVhQ2hhcnRNZENoYXJ0Q2xpY2tEZXRhaWw8SU1kQXJlYUNoYXJ0TWRDaGFydFNlcmllcz4+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHBsb3QgYmFja2dyb3VuZCBpcyBjbGlja2VkIChpbnNpZGUgdGhlIHBsb3QsIGJ1dCBub3Qgb24gYVxubWFyaywgbGluZSBvciBhcmVhKTogdGhlIG5lYXJlc3QgeCBwbHVzIGV2ZXJ5IHZpc2libGUgc2VyaWVzJyB2YWx1ZSB0aGVyZS5cbiAgICovXG4gIG1kQXhpc0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQXJlYUNoYXJ0TWRDaGFydEF4aXNDbGlja0RldGFpbD4+O1xuXG4gIG1kTGVnZW5kQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlcmllc0luZGV4OiBudW1iZXI7IHNlcmllc0lkPzogc3RyaW5nOyBzZWxlY3RlZDogYm9vbGVhbiB9Pj47XG5cbiAgbWRIb3ZlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZEFyZWFDaGFydE1kQ2hhcnRIb3ZlckRldGFpbD4+O1xuXG4gIG1kUmVhZHk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB6b29tIHdpbmRvdyBjaGFuZ2VzIChkcmFnLCBzbGlkZXIgb3IgYHNldFpvb21gL2ByZXNldFpvb21gKS5cbiAgICovXG4gIG1kWm9vbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3RhcnRJbmRleDogbnVtYmVyOyBlbmRJbmRleDogbnVtYmVyOyByZXNldDogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEF1dG9jb21wbGV0ZSxcbiAgaW5wdXRzOiBbJ2NoaXBQb3NpdGlvbicsICdjbGVhckljb24nLCAnY2xlYXJPbkJsdXInLCAnY2xlYXJhYmxlJywgJ2RlbnNpdHknLCAnZGlzYWJsZUNsb3NlT25TZWxlY3QnLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25JY29uJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmaWx0ZXJNb2RlJywgJ2ZpbHRlcmVyJywgJ2ZyZWVTb2xvJywgJ2lucHV0VmFsdWUnLCAnbGFiZWwnLCAnbGltaXRSZXN1bHRzJywgJ2xvYWRpbmcnLCAnbG9hZGluZ1RleHQnLCAnbWF0Y2hUcmlnZ2VyV2lkdGgnLCAnbWF4SGVpZ2h0JywgJ21heFNlbGVjdGVkJywgJ211bHRpcGxlJywgJ25hbWUnLCAnbm9PcHRpb25zVGV4dCcsICdub1Jlc3VsdHNUZXh0JywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdyb3dIZWlnaHQnLCAnc29mdERpc2FibGVkJywgJ3N0YXR1c1RlbXBsYXRlJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBtZXRob2RzOiBbJ2ZvY3VzSW5wdXQnLCAnc2hvd01lbnUnLCAnY2xvc2VNZW51JywgJ2xvYWRPcHRpb25zJywgJ2dldExhYmVscycsICdnZXRWYWxpZGl0eScsICdjaGVja1ZhbGlkaXR5JywgJ3JlcG9ydFZhbGlkaXR5JywgJ3NldEN1c3RvbVZhbGlkaXR5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1hdXRvY29tcGxldGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoaXBQb3NpdGlvbicsICdjbGVhckljb24nLCAnY2xlYXJPbkJsdXInLCAnY2xlYXJhYmxlJywgJ2RlbnNpdHknLCAnZGlzYWJsZUNsb3NlT25TZWxlY3QnLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25JY29uJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmaWx0ZXJNb2RlJywgJ2ZpbHRlcmVyJywgJ2ZyZWVTb2xvJywgJ2lucHV0VmFsdWUnLCAnbGFiZWwnLCAnbGltaXRSZXN1bHRzJywgJ2xvYWRpbmcnLCAnbG9hZGluZ1RleHQnLCAnbWF0Y2hUcmlnZ2VyV2lkdGgnLCAnbWF4SGVpZ2h0JywgJ21heFNlbGVjdGVkJywgJ211bHRpcGxlJywgJ25hbWUnLCAnbm9PcHRpb25zVGV4dCcsICdub1Jlc3VsdHNUZXh0JywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdyb3dIZWlnaHQnLCAnc29mdERpc2FibGVkJywgJ3N0YXR1c1RlbXBsYXRlJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQXV0b2NvbXBsZXRlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnLCAnbWRJbnB1dCcsICdtZE9wZW4nLCAnbWRDbG9zZScsICdtZENsZWFyJywgJ21kVmFsaWRpdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRBdXRvY29tcGxldGUgZXh0ZW5kcyBDb21wb25lbnRzLk1kQXV0b2NvbXBsZXRlIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW5ldmVyIHRoZSBjb21taXR0ZWQgc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuZXZlciB0aGUgbGl2ZSBpbnB1dCBzdHJpbmcgY2hhbmdlcy5cbiAgICovXG4gIG1kSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIG1lbnUgb3BlbnMuXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBtZW51IGNsb3Nlcy5cbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIGNsZWFycyB0aGUgdmFsdWUuXG4gICAqL1xuICBtZENsZWFyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEF2YXRhcixcbiAgaW5wdXRzOiBbJ2FsdCcsICdjb2xvckZyb21OYW1lJywgJ2Nyb3Nzb3JpZ2luJywgJ2RlbnNpdHknLCAnaW5pdGlhbHMnLCAnbGFiZWwnLCAnbG9hZGluZycsICduYW1lJywgJ3NoYXBlJywgJ3NpemUnLCAnc3JjJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1hdmF0YXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsdCcsICdjb2xvckZyb21OYW1lJywgJ2Nyb3Nzb3JpZ2luJywgJ2RlbnNpdHknLCAnaW5pdGlhbHMnLCAnbGFiZWwnLCAnbG9hZGluZycsICduYW1lJywgJ3NoYXBlJywgJ3NpemUnLCAnc3JjJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRBdmF0YXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZExvYWQnLCAnbWRFcnJvciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZEF2YXRhciBleHRlbmRzIENvbXBvbmVudHMuTWRBdmF0YXIge1xuICAvKipcbiAgICogSW1hZ2Ugc3VjY2Vzc2Z1bGx5IGxvYWRlZC5cbiAgICovXG4gIG1kTG9hZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3JjOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogSW1hZ2UgZmFpbGVkIHRvIGxvYWQg4oCUIGNvbXBvbmVudCBmZWxsIGJhY2sgdG8gaW5pdGlhbHMvaWNvbi5cbiAgICovXG4gIG1kRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNyYzogc3RyaW5nIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kQmFkZ2UsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2ljb24nLCAnbWF4JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2ljb24nLCAnbWF4JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEJhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuTWRCYWRnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRCYXJDaGFydCxcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhbmltYXRpb25EdXJhdGlvbicsICdheGlzVGlja3MnLCAnYmFyR2FwJywgJ2JhcldpZHRoJywgJ2NhdGVnb3J5R2FwJywgJ2NoZXZyb24nLCAnY2xpY2thYmxlJywgJ2Nvcm5lclJhZGl1cycsICdkZW5zaXR5JywgJ2hlaWdodFByb3AnLCAnbGFiZWwnLCAnbGFiZWxQbG90JywgJ2xhYmVsUG9pbnQnLCAnbGFiZWxab29tRW5kJywgJ2xhYmVsWm9vbVN0YXJ0JywgJ2xheW91dCcsICdsZWdlbmQnLCAnbG9hZGluZycsICdsb2FkaW5nTGFiZWwnLCAnbG9jYWxlJywgJ25vQW5pbWF0aW9uJywgJ3BvbGFyJywgJ3BvbGFySG9sZScsICdwb2xhclN3ZWVwJywgJ3NlcmllcycsICdzaG93TGFiZWxzJywgJ3Nob3dUb3RhbHMnLCAnc3RhY2snLCAnc3VidGl0bGUnLCAndGl0bGVBbGlnbicsICd0b29sdGlwJywgJ3Rvb2x0aXBSZW5kZXJlcicsICd2YWx1ZUZvcm1hdHRlcicsICd4QXhpcycsICd5QXhpcycsICd5QXhpczInLCAnem9vbSddLFxuICBtZXRob2RzOiBbJ3JlZnJlc2hUaGVtZScsICdyZXNpemUnLCAncmVwbGF5JywgJ2RyaWxsJywgJ3RvRGF0YVVSTCcsICdnZXRJbnN0YW5jZScsICdzZXRab29tJywgJ3Jlc2V0Wm9vbSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYmFyLWNoYXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnYXhpc1RpY2tzJywgJ2JhckdhcCcsICdiYXJXaWR0aCcsICdjYXRlZ29yeUdhcCcsICdjaGV2cm9uJywgJ2NsaWNrYWJsZScsICdjb3JuZXJSYWRpdXMnLCAnZGVuc2l0eScsICdoZWlnaHRQcm9wJywgJ2xhYmVsJywgJ2xhYmVsUGxvdCcsICdsYWJlbFBvaW50JywgJ2xhYmVsWm9vbUVuZCcsICdsYWJlbFpvb21TdGFydCcsICdsYXlvdXQnLCAnbGVnZW5kJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdub0FuaW1hdGlvbicsICdwb2xhcicsICdwb2xhckhvbGUnLCAncG9sYXJTd2VlcCcsICdzZXJpZXMnLCAnc2hvd0xhYmVscycsICdzaG93VG90YWxzJywgJ3N0YWNrJywgJ3N1YnRpdGxlJywgJ3RpdGxlQWxpZ24nLCAndG9vbHRpcCcsICd0b29sdGlwUmVuZGVyZXInLCAndmFsdWVGb3JtYXR0ZXInLCAneEF4aXMnLCAneUF4aXMnLCAneUF4aXMyJywgJ3pvb20nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEJhckNoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRCYXJDbGljaycsICdtZExlZ2VuZENsaWNrJywgJ21kSG92ZXInLCAnbWRSZWFkeScsICdtZFpvb20nXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kQ2hhcnRDbGlja0RldGFpbCBhcyBJTWRCYXJDaGFydE1kQ2hhcnRDbGlja0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZENoYXJ0U2VyaWVzIGFzIElNZEJhckNoYXJ0TWRDaGFydFNlcmllcyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZENoYXJ0SG92ZXJEZXRhaWwgYXMgSU1kQmFyQ2hhcnRNZENoYXJ0SG92ZXJEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQmFyQ2hhcnQgZXh0ZW5kcyBDb21wb25lbnRzLk1kQmFyQ2hhcnQge1xuXG4gIG1kQmFyQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRCYXJDaGFydE1kQ2hhcnRDbGlja0RldGFpbDxJTWRCYXJDaGFydE1kQ2hhcnRTZXJpZXM+Pj47XG5cbiAgbWRMZWdlbmRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VyaWVzSW5kZXg6IG51bWJlcjsgc2VyaWVzSWQ/OiBzdHJpbmc7IHNlbGVjdGVkOiBib29sZWFuIH0+PjtcblxuICBtZEhvdmVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQmFyQ2hhcnRNZENoYXJ0SG92ZXJEZXRhaWw+PjtcblxuICBtZFJlYWR5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgem9vbSB3aW5kb3cgY2hhbmdlcyAoZHJhZywgc2xpZGVyLCBvciBgc2V0Wm9vbWAvYHJlc2V0Wm9vbWApLlxuICAgKi9cbiAgbWRab29tOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzdGFydEluZGV4OiBudW1iZXI7IGVuZEluZGV4OiBudW1iZXI7IHJlc2V0OiBib29sZWFuIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kQm90dG9tU2hlZXQsXG4gIGlucHV0czogWydib3R0b21EaXZpZGVyJywgJ2Nsb3NlYWJsZScsICdjb250ZW50QWxpZ24nLCAnZGVuc2l0eScsICdoZWFkbGluZScsICdoZWFkbGluZUFsaWduJywgJ29wZW4nLCAnc2NyaW1EaXNtaXNzaWJsZScsICdzY3JvbGxTaGFkb3cnLCAnc2hlZXRBcmlhTGFiZWwnLCAnc2hvd0RyYWdIYW5kbGUnLCAndG9wRGl2aWRlcicsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYm90dG9tLXNoZWV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydib3R0b21EaXZpZGVyJywgJ2Nsb3NlYWJsZScsICdjb250ZW50QWxpZ24nLCAnZGVuc2l0eScsICdoZWFkbGluZScsICdoZWFkbGluZUFsaWduJywgJ29wZW4nLCAnc2NyaW1EaXNtaXNzaWJsZScsICdzY3JvbGxTaGFkb3cnLCAnc2hlZXRBcmlhTGFiZWwnLCAnc2hvd0RyYWdIYW5kbGUnLCAndG9wRGl2aWRlcicsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRCb3R0b21TaGVldCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kT3BlbicsICdtZENsb3NlJywgJ21kQ2FuY2VsJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQm90dG9tU2hlZXQgZXh0ZW5kcyBDb21wb25lbnRzLk1kQm90dG9tU2hlZXQge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgc2hlZXQgb3BlbnNcbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHNoZWV0IGNsb3Nlc1xuICAgKi9cbiAgbWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gZGlzbWlzc2VkIHZpYSBzY3JpbSBjbGljaywgRXNjYXBlLCBkcmFnLCBvciBjbG9zZSBidXR0b25cbiAgICovXG4gIG1kQ2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRCcmVhZGNydW1iSXRlbSxcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlZCcsICdjdXJyZW50JywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2l0ZW1JbmRleCcsICdpdGVtVG90YWwnLCAncmVsJywgJ3RhcmdldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYnJlYWRjcnVtYi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzZWQnLCAnY3VycmVudCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdpdGVtSW5kZXgnLCAnaXRlbVRvdGFsJywgJ3JlbCcsICd0YXJnZXQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEJyZWFkY3J1bWJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRTZWxlY3QnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kQnJlYWRjcnVtYlNlbGVjdERldGFpbCBhcyBJTWRCcmVhZGNydW1iSXRlbU1kQnJlYWRjcnVtYlNlbGVjdERldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRCcmVhZGNydW1iSXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRCcmVhZGNydW1iSXRlbSB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIGFjdGl2YXRlcyBhIG5hdmlnYWJsZSBjcnVtYiDigJQgaS5lLiB3aGVuIGFuIGl0ZW0gd2l0aFxuYSBub24tZW1wdHkgYGhyZWZgIChhbmQgbm90IG1hcmtlZCBgY3VycmVudGAgLyBgZGlzYWJsZWRgKSBpcyBjbGlja2VkIG9yXG5hY3RpdmF0ZWQgd2l0aCBgRW50ZXJgIHdoaWxlIGZvY3VzZWQuIFRoZSBldmVudCBpcyAqKmNhbmNlbGFibGUqKjpcbmNhbGwgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIGZyb20gdGhlIGxpc3RlbmVyIHRvIHN0b3AgdGhlIGJyb3dzZXInc1xuZGVmYXVsdCBuYXZpZ2F0aW9uLiBUaGlzIGlzIHRoZSByZWNvbW1lbmRlZCBob29rIGZvciBTUEEgcm91dGluZyDigJQgbGV0XG50aGUgYnJlYWRjcnVtYiByZW5kZXIgYSByZWFsIGA8YT5gIChzbyByaWdodC1jbGljayAvIG1pZGRsZS1jbGljayAvXG5cIk9wZW4gaW4gbmV3IHRhYlwiIHN0aWxsIHdvcmspLCB0aGVuIGludGVyY2VwdCBgbWRTZWxlY3RgIHRvIHB1c2ggdGhlXG5yb3V0ZSB0aHJvdWdoIHlvdXIgY2xpZW50LXNpZGUgcm91dGVyIGluc3RlYWQgb2YgYSBmdWxsIHBhZ2UgcmVsb2FkLlxuXG5UaGUgZXZlbnQgYnViYmxlcywgc28gY29uc3VtZXJzIGNhbiBhdHRhY2ggYSBzaW5nbGUgbGlzdGVuZXIgb24gdGhlXG5wYXJlbnQgYDxtZC1icmVhZGNydW1icz5gIGZvciBkZWxlZ2F0aW9uLiBUaGUgZXZlbnQgaXMgY29tcG9zZWQsIHNvXG5saXN0ZW5lcnMgb3V0c2lkZSB0aGUgc2hhZG93IHRyZWUgKHRoZSB0eXBpY2FsIGNhc2UpIHJlY2VpdmUgaXQuXG5cbmBgYHRzXG5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZC1icmVhZGNydW1icycpIVxuICAuYWRkRXZlbnRMaXN0ZW5lcignbWRTZWxlY3QnLCAoZSkgPT4ge1xuICAgIGNvbnN0IHsgaHJlZiwgbGFiZWwsIGl0ZW1JbmRleCB9ID0gKGUgYXMgQ3VzdG9tRXZlbnQpLmRldGFpbDtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7ICAgICAgICAgICAgICAvLyBzdG9wIHRoZSA8YT4gZnJvbSBuYXZpZ2F0aW5nXG4gICAgbXlSb3V0ZXIucHVzaChocmVmKTsgICAgICAgICAgICAgLy8gU1BBIG5hdmlnYXRpb25cbiAgfSk7XG5gYGBcbiAgICovXG4gIG1kU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQnJlYWRjcnVtYkl0ZW1NZEJyZWFkY3J1bWJTZWxlY3REZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kQnJlYWRjcnVtYnMsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2V4cGFuZExhYmVsJywgJ2l0ZW1zQWZ0ZXJDb2xsYXBzZScsICdpdGVtc0JlZm9yZUNvbGxhcHNlJywgJ2xhYmVsJywgJ21heEl0ZW1zJywgJ3NlcGFyYXRvciddLFxuICBtZXRob2RzOiBbJ2V4cGFuZCcsICdjb2xsYXBzZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYnJlYWRjcnVtYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZXhwYW5kTGFiZWwnLCAnaXRlbXNBZnRlckNvbGxhcHNlJywgJ2l0ZW1zQmVmb3JlQ29sbGFwc2UnLCAnbGFiZWwnLCAnbWF4SXRlbXMnLCAnc2VwYXJhdG9yJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRCcmVhZGNydW1icyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kRXhwYW5kJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZEJyZWFkY3J1bWJzRXhwYW5kRGV0YWlsIGFzIElNZEJyZWFkY3J1bWJzTWRCcmVhZGNydW1ic0V4cGFuZERldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRCcmVhZGNydW1icyBleHRlbmRzIENvbXBvbmVudHMuTWRCcmVhZGNydW1icyB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIHJldmVhbHMgdGhlIGZ1bGwgYnJlYWRjcnVtYiB0cmFpbCBieSBhY3RpdmF0aW5nXG50aGUgb3ZlcmZsb3cgKFwi4oCmXCIpIHRvZ2dsZSwgb3Igd2hlbiBjb25zdW1lcnMgcHJvZ3JhbW1hdGljYWxseSBjYWxsXG5gZXhwYW5kKClgIC8gYGNvbGxhcHNlKClgLiBOb3QgY2FuY2VsYWJsZSDigJQgdGhlIHZpc2liaWxpdHkgY2hhbmdlXG5oYXMgYWxyZWFkeSBoYXBwZW5lZC4gVXNlIGl0IGZvciBhbmFseXRpY3Mgb3IgdG8gcmVhY3QgdG8gYSB1c2VyXG53aG8gd2FudHMgdG8gc2VlIHRoZSBmdWxsIHBhdGguXG5cbkJ1YmJsZXMgKyBjb21wb3NlZCwgc28gY29uc3VtZXJzIG91dHNpZGUgdGhlIHNoYWRvdyB0cmVlICh0aGUgdHlwaWNhbFxuY2FzZSkgcmVjZWl2ZSBpdC5cbiAgICovXG4gIG1kRXhwYW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQnJlYWRjcnVtYnNNZEJyZWFkY3J1bWJzRXhwYW5kRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEJ1dHRvbixcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZnVsbFdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nJywgJ21pcnJvckljb24nLCAncmlwcGxlJywgJ3JvbGVPdmVycmlkZScsICdzZWxlY3RlZCcsICdzaGFwZScsICdzaGFwZU1vcnBoJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3N1cHByZXNzRXhwYW5kSWNvbkZsaXAnLCAndGFyZ2V0JywgJ3RvZ2dsZScsICd0cmFpbGluZ0ljb24nLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZnVsbFdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nJywgJ21pcnJvckljb24nLCAncmlwcGxlJywgJ3JvbGVPdmVycmlkZScsICdzZWxlY3RlZCcsICdzaGFwZScsICdzaGFwZU1vcnBoJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3N1cHByZXNzRXhwYW5kSWNvbkZsaXAnLCAndGFyZ2V0JywgJ3RvZ2dsZScsICd0cmFpbGluZ0ljb24nLCAndHlwZScsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJywgJ21kQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZEJ1dHRvbkNsaWNrRGV0YWlsIGFzIElNZEJ1dHRvbk1kQnV0dG9uQ2xpY2tEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRCdXR0b25DaGFuZ2VEZXRhaWwgYXMgSU1kQnV0dG9uTWRCdXR0b25DaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5NZEJ1dHRvbiB7XG4gIC8qKlxuICAgKiBGaXJlcyBldmVyeSB0aW1lIHRoZSB1c2VyIGFjdGl2YXRlcyB0aGUgYnV0dG9uIChtb3VzZSBjbGljaywgdG91Y2gsXG5vciBgRW50ZXJgL2BTcGFjZWAgd2hpbGUgZm9jdXNlZCkuIFRoZSBldmVudCBpcyAqKmNhbmNlbGFibGUqKiBhbmRcbnRoZSBkZXRhaWwgcGF5bG9hZCBkZXNjcmliZXMgd2hhdCAqd291bGQqIGhhcHBlbjogdGhlIHBvc3QtY2xpY2tcbnRvZ2dsZSBzdGF0ZSwgdGhlIG5hdmlnYXRpb24gYGhyZWZgLCBhbmQgc28gb24uXG5cbkNhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIGZyb20gYSBsaXN0ZW5lciBzdXBwcmVzc2VzIHRoZVxuZGVmYXVsdCBzaWRlIGVmZmVjdHMgKHRvZ2dsZSBmbGlwICsgYGhyZWZgIG5hdmlnYXRpb24pIGJ1dCBsZXRzXG50aGUgdW5kZXJseWluZyBET00gY2xpY2sgYnViYmxlLiBUaGlzIGlzIHRoZSBob29rIHRvIHVzZSBmb3IgU1BBXG5yb3V0aW5nLCBcImFyZSB5b3Ugc3VyZT9cIiBwcm9tcHRzLCBhc3luYyBjb25maXJtYXRpb24sIGV0Yy5cblxuVGhlIGV2ZW50IGJ1YmJsZXMgYW5kIGlzIGNvbXBvc2VkLCBzbyBsaXN0ZW5lcnMgb3V0c2lkZSB0aGVcbnNoYWRvdyB0cmVlICh0aGUgdHlwaWNhbCBjYXNlKSByZWNlaXZlIGl0LlxuXG5gYGB0c1xuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWQtYnV0dG9uJykhLmFkZEV2ZW50TGlzdGVuZXIoJ21kQ2xpY2snLCAoZSkgPT4ge1xuICBjb25zdCB7IGhyZWYsIHNlbGVjdGVkIH0gPSAoZSBhcyBDdXN0b21FdmVudCkuZGV0YWlsO1xuICBpZiAoIWNvbmZpcm0oJ0NvbnRpbnVlPycpKSBlLnByZXZlbnREZWZhdWx0KCk7XG59KTtcbmBgYFxuICAgKi9cbiAgbWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZEJ1dHRvbk1kQnV0dG9uQ2xpY2tEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdG9nZ2xlIG1vZGUgZmxpcHMgdGhlIGBzZWxlY3RlZGAgc3RhdGUgaW4gcmVzcG9uc2UgdG8gYVxudXNlciBhY3RpdmF0aW9uLiBOb3QgY2FuY2VsYWJsZSDigJQgdGhlIHN0YXRlIGNoYW5nZSBoYXMgYWxyZWFkeVxuaGFwcGVuZWQuIFBhaXIgd2l0aCBgbWRDbGlja2AgKGNhbmNlbGFibGUpIHdoZW4geW91IG5lZWQgYSB2ZXRvLlxuXG5CdWJibGVzIGFuZCBpcyBjb21wb3NlZC5cbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQnV0dG9uTWRCdXR0b25DaGFuZ2VEZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kQnV0dG9uR3JvdXAsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Z1bGxXaWR0aCcsICdyZXF1aXJlZCcsICdzZWxlY3Rpb25Nb2RlJywgJ3NoYXBlJywgJ3NpemUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYnV0dG9uLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Z1bGxXaWR0aCcsICdyZXF1aXJlZCcsICdzZWxlY3Rpb25Nb2RlJywgJ3NoYXBlJywgJ3NpemUnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQnV0dG9uR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFNlbGVjdGlvbkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRCdXR0b25Hcm91cENoYW5nZURldGFpbCBhcyBJTWRCdXR0b25Hcm91cE1kQnV0dG9uR3JvdXBDaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQnV0dG9uR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLk1kQnV0dG9uR3JvdXAge1xuICAvKipcbiAgICogRmlyZXMgZXZlcnkgdGltZSBhIHVzZXIgYWN0aXZhdGlvbiB0b2dnbGVzIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2ZcbmEgY2hpbGQgYnV0dG9uLiBUaGUgZGV0YWlsIG9iamVjdCBkZXNjcmliZXMgYm90aCB0aGUgbmV3IHNlbGVjdGlvblxuc25hcHNob3QgKGB2YWx1ZXNgKSBhbmQgdGhlIGRpZmYgZnJvbSB0aGUgcHJldmlvdXMgc2VsZWN0aW9uXG4oYGFkZGVkYCwgYHJlbW92ZWRgKSwgcGx1cyB0aGUgdW5kZXJseWluZyBgb3JpZ2luYWxFdmVudGAuXG5cbkRpc3RpbmN0IGZyb20gZWFjaCBjaGlsZCBidXR0b24ncyBvd24gYG1kQ2hhbmdlYCAod2hpY2ggZmlyZXMgcGVyXG5pbmRpdmlkdWFsIGJ1dHRvbiB0b2dnbGUpOyB0aGUgZ3JvdXAncyBgbWRTZWxlY3Rpb25DaGFuZ2VgIGZpcmVzXG5vbmNlIHBlciB1c2VyIGFjdGl2YXRpb24gYW5kIHJlcG9ydHMgdGhlICpncm91cC1sZXZlbCogc3RhdGUuXG5cbkJ1YmJsZXMgYW5kIGlzIGNvbXBvc2VkIHNvIGxpc3RlbmVycyBvdXRzaWRlIHRoZSBzaGFkb3cgdHJlZVxucmVjZWl2ZSBpdC4gQGV4YW1wbGUgYGBgdHNcbmdyb3VwLmFkZEV2ZW50TGlzdGVuZXIoJ21kU2VsZWN0aW9uQ2hhbmdlJywgKGU6IEN1c3RvbUV2ZW50PE1kQnV0dG9uR3JvdXBDaGFuZ2VEZXRhaWw+KSA9PiB7XG4gIGNvbnNvbGUubG9nKCdub3cgc2VsZWN0ZWQ6JywgZS5kZXRhaWwudmFsdWVzKTtcbiAgY29uc29sZS5sb2coJ2p1c3QgYWRkZWQ6JywgZS5kZXRhaWwuYWRkZWQpO1xuICBjb25zb2xlLmxvZygnanVzdCByZW1vdmVkOicsIGUuZGV0YWlsLnJlbW92ZWQpO1xufSk7XG5gYGBcbiAgICovXG4gIG1kU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQnV0dG9uR3JvdXBNZEJ1dHRvbkdyb3VwQ2hhbmdlRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZENhcmQsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2RyYWdFbmFibGVkJywgJ2Z1bGxIZWlnaHQnLCAnZnVsbFdpZHRoJywgJ2ludGVyYWN0aXZlJywgJ3JpcHBsZScsICdzb2Z0RGlzYWJsZWQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkcmFnRW5hYmxlZCcsICdmdWxsSGVpZ2h0JywgJ2Z1bGxXaWR0aCcsICdpbnRlcmFjdGl2ZScsICdyaXBwbGUnLCAnc29mdERpc2FibGVkJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZENhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJywgJ21kRHJhZ1N0YXJ0JywgJ21kRHJhZ01vdmUnLCAnbWREcmFnRW5kJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZENhcmREcmFnRGV0YWlsIGFzIElNZENhcmRNZENhcmREcmFnRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZENhcmQgZXh0ZW5kcyBDb21wb25lbnRzLk1kQ2FyZCB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGFuIGludGVyYWN0aXZlIGNhcmQgaXMgY2xpY2tlZCBvciBhY3RpdmF0ZWQgdmlhIGtleWJvYXJkXG4gICAqL1xuICBtZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICAvKipcbiAgICogRW1pdHMgb25jZSB3aGVuIGEgZHJhZ2dhYmxlIGNhcmQgc3RhcnRzIGJlaW5nIGRyYWdnZWQgKGFmdGVyIGNyb3NzaW5nIHRoZSBtb3ZlbWVudCB0aHJlc2hvbGQpXG4gICAqL1xuICBtZERyYWdTdGFydDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZENhcmRNZENhcmREcmFnRGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyBjb250aW51b3VzbHkgYXMgYSBkcmFnZ2VkIGNhcmQgbW92ZXMg4oCUIHVzZSBmb3IgZHJvcC16b25lIGRldGVjdGlvbiBvciBwb3NpdGlvbiB0cmFja2luZ1xuICAgKi9cbiAgbWREcmFnTW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZENhcmRNZENhcmREcmFnRGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgZHJhZ2dhYmxlIGNhcmQgaXMgcmVsZWFzZWQgYWZ0ZXIgZHJhZ2dpbmdcbiAgICovXG4gIG1kRHJhZ0VuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZENhcmRNZENhcmREcmFnRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZENoZWNrYm94LFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdpbmRldGVybWluYXRlJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc29mdERpc2FibGVkJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJ10sXG4gIG1ldGhvZHM6IFsnZ2V0VmFsaWRpdHknLCAnY2hlY2tWYWxpZGl0eScsICdyZXBvcnRWYWxpZGl0eScsICdzZXRDdXN0b21WYWxpZGl0eSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtY2hlY2tib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvclRleHQnLCAnaW5kZXRlcm1pbmF0ZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NvZnREaXNhYmxlZCcsICdzdXBwb3J0aW5nVGV4dCcsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQ2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENoYW5nZScsICdtZFZhbGlkaXR5Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLk1kQ2hlY2tib3gge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBjaGVja2VkIG9yIGluZGV0ZXJtaW5hdGUgc3RhdGUgY2hhbmdlc1xuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNoZWNrZWQ6IGJvb2xlYW47IGluZGV0ZXJtaW5hdGU6IGJvb2xlYW4gfT4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZENoaXAsXG4gIGlucHV0czogWydhcHBlYXJhbmNlJywgJ2NvbG9yJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZWxldmF0ZWQnLCAnaWNvbicsICdsYWJlbCcsICdyZW1vdmFibGUnLCAnc2VsZWN0YWJsZScsICdzZWxlY3RlZCcsICdzb2Z0RGlzYWJsZWQnLCAndHJhaWxpbmdJY29uJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwcGVhcmFuY2UnLCAnY29sb3InLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlbGV2YXRlZCcsICdpY29uJywgJ2xhYmVsJywgJ3JlbW92YWJsZScsICdzZWxlY3RhYmxlJywgJ3NlbGVjdGVkJywgJ3NvZnREaXNhYmxlZCcsICd0cmFpbGluZ0ljb24nLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQ2hpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2xpY2snLCAnbWRTZWxlY3QnLCAnbWRSZW1vdmUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRDaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5NZENoaXAge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY2hpcCBpcyBjbGlja2VkIG9yIGFjdGl2YXRlZCB2aWEga2V5Ym9hcmRcbiAgICovXG4gIG1kQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBzZWxlY3RlZCBzdGF0ZSBjaGFuZ2VzIChmaWx0ZXIvaW5wdXQpXG4gICAqL1xuICBtZFNlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWQ6IGJvb2xlYW4gfT4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgdHJhaWxpbmcgcmVtb3ZlIChcIuKclVwiKSBidXR0b24gaXMgYWN0aXZhdGVkIG9uIGEgcmVtb3ZhYmxlXG5jaGlwIChieSBjbGljaywgRW50ZXIsIFNwYWNlLCBEZWxldGUsIG9yIEJhY2tzcGFjZSkuXG5cblRoZSBldmVudCBpcyAqKmNhbmNlbGFibGUqKjogYnkgZGVmYXVsdCwgYWZ0ZXIgYG1kUmVtb3ZlYCBpcyBkaXNwYXRjaGVkXG50aGUgY2hpcCByZW1vdmVzIGl0c2VsZiBmcm9tIHRoZSBET00uIENhbGwgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIGluIGFcbmhhbmRsZXIgdG8ga2VlcCB0aGUgY2hpcCBtb3VudGVkIChlLmcuIHdoZW4geW91ciBzdGF0ZSBsYXllciBvd25zIHRoZVxubGlzdCBhbmQgd2lsbCByZS1yZW5kZXIgd2l0aCB0aGUgY2hpcCBnb25lKS5cbiAgICovXG4gIG1kUmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRDb2xvclBpY2tlcixcbiAgaW5wdXRzOiBbJ2FscGhhJywgJ2FyaWFMYWJlbFByb3AnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkaXNtaXNzT25PdXRzaWRlQ2xpY2snLCAnZm9ybWF0JywgJ29wZW4nLCAncHJlc2V0cycsICdzaG93SGV4JywgJ3Nob3dJbnB1dHMnLCAndmFsdWUnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWNvbG9yLXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxwaGEnLCAnYXJpYUxhYmVsUHJvcCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Rpc21pc3NPbk91dHNpZGVDbGljaycsICdmb3JtYXQnLCAnb3BlbicsICdwcmVzZXRzJywgJ3Nob3dIZXgnLCAnc2hvd0lucHV0cycsICd2YWx1ZScsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRDb2xvclBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kSW5wdXQnLCAnbWRDaGFuZ2UnLCAnbWRPcGVuQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQ29sb3JQaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kQ29sb3JQaWNrZXIge1xuICAvKipcbiAgICogRW1pdHRlZCBvbiBldmVyeSBjaGFuZ2Ugd2hpbGUgdGhlIHVzZXIgZHJhZ3MgLyB0eXBlcy5cbiAgICovXG4gIG1kSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNvbW1pdHMgYSB2YWx1ZSAocmVsZWFzZSBwb2ludGVyLCBibHVyIGlucHV0LFxuRW50ZXIsIG9yIGNsaWNrIGEgcHJlc2V0KS5cbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcG9wb3ZlciBvcGVucyBvciBjbG9zZXMuXG4gICAqL1xuICBtZE9wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IG9wZW46IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWREYXRlUGlja2VyLFxuICBpbnB1dHM6IFsnY2FsZW5kYXJJY29uJywgJ2NhbmNlbExhYmVsJywgJ2Nob29zZU1vbnRoQW5kWWVhckxhYmVsJywgJ2Nob29zZU1vbnRoTGFiZWwnLCAnY2hvb3NlTW9udGhZZWFyTGFiZWwnLCAnY2hvb3NlWWVhckxhYmVsJywgJ2NsZWFyTGFiZWwnLCAnY2xlYXJhYmxlJywgJ2Nsb3NlQ2FsZW5kYXJMYWJlbCcsICdjb21taXRPblNlbGVjdCcsICdkYXRlU2VwYXJhdG9yJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZW50ZXJEYXRlc0xhYmVsJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmaWVsZFZhcmlhbnQnLCAnZmlyc3REYXlPZldlZWsnLCAnaGVhZGxpbmUnLCAnaW52YWxpZERhdGVMYWJlbCcsICdpc0RhdGVEaXNhYmxlZCcsICdsYWJlbCcsICdsb2NhbGUnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ25leHRNb250aExhYmVsJywgJ25leHRZZWFyTGFiZWwnLCAnb2tMYWJlbCcsICdvcGVuJywgJ29wZW5DYWxlbmRhckxhYmVsJywgJ291dHNpZGVDbGlja0Rpc21pc3NpYmxlJywgJ3BsYWNlaG9sZGVyJywgJ3ByZXZpb3VzTW9udGhMYWJlbCcsICdwcmV2aW91c1llYXJMYWJlbCcsICdyZXF1aXJlZCcsICdyZXNlcnZlU3VwcG9ydGluZ1NwYWNlJywgJ3NjcmltRGlzbWlzc2libGUnLCAnc2VsZWN0RGF0ZUxhYmVsJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3RvZ2dsZUNhbGVuZGFyTGFiZWwnLCAndG9nZ2xlVGV4dExhYmVsJywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAneWVhckdyaWRMYWJlbCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnLCAnY2xlYXInLCAnZm9jdXNJbnB1dCcsICdnZXRWYWxpZGl0eScsICdjaGVja1ZhbGlkaXR5JywgJ3JlcG9ydFZhbGlkaXR5JywgJ3NldEN1c3RvbVZhbGlkaXR5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1kYXRlLXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FsZW5kYXJJY29uJywgJ2NhbmNlbExhYmVsJywgJ2Nob29zZU1vbnRoQW5kWWVhckxhYmVsJywgJ2Nob29zZU1vbnRoTGFiZWwnLCAnY2hvb3NlTW9udGhZZWFyTGFiZWwnLCAnY2hvb3NlWWVhckxhYmVsJywgJ2NsZWFyTGFiZWwnLCAnY2xlYXJhYmxlJywgJ2Nsb3NlQ2FsZW5kYXJMYWJlbCcsICdjb21taXRPblNlbGVjdCcsICdkYXRlU2VwYXJhdG9yJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZW50ZXJEYXRlc0xhYmVsJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmaWVsZFZhcmlhbnQnLCAnZmlyc3REYXlPZldlZWsnLCAnaGVhZGxpbmUnLCAnaW52YWxpZERhdGVMYWJlbCcsICdpc0RhdGVEaXNhYmxlZCcsICdsYWJlbCcsICdsb2NhbGUnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ25leHRNb250aExhYmVsJywgJ25leHRZZWFyTGFiZWwnLCAnb2tMYWJlbCcsICdvcGVuJywgJ29wZW5DYWxlbmRhckxhYmVsJywgJ291dHNpZGVDbGlja0Rpc21pc3NpYmxlJywgJ3BsYWNlaG9sZGVyJywgJ3ByZXZpb3VzTW9udGhMYWJlbCcsICdwcmV2aW91c1llYXJMYWJlbCcsICdyZXF1aXJlZCcsICdyZXNlcnZlU3VwcG9ydGluZ1NwYWNlJywgJ3NjcmltRGlzbWlzc2libGUnLCAnc2VsZWN0RGF0ZUxhYmVsJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3RvZ2dsZUNhbGVuZGFyTGFiZWwnLCAndG9nZ2xlVGV4dExhYmVsJywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAneWVhckdyaWRMYWJlbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kRGF0ZVBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2hhbmdlJywgJ21kU2VsZWN0ZWQnLCAnbWRJbnB1dCcsICdtZE9wZW4nLCAnbWRDbG9zZScsICdtZENhbmNlbCcsICdtZFZpZXdDaGFuZ2UnLCAnbWRNZW51T3BlbicsICdtZE1lbnVTZWxlY3QnLCAnbWRNb2RlQ2hhbmdlJywgJ21kVmFsaWRpdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kRGF0ZVBpY2tlckNoYW5nZURldGFpbCBhcyBJTWREYXRlUGlja2VyTWREYXRlUGlja2VyQ2hhbmdlRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kRGF0ZVBpY2tlclNlbGVjdGVkRGV0YWlsIGFzIElNZERhdGVQaWNrZXJNZERhdGVQaWNrZXJTZWxlY3RlZERldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZERhdGVQaWNrZXJWaWV3Q2hhbmdlRGV0YWlsIGFzIElNZERhdGVQaWNrZXJNZERhdGVQaWNrZXJWaWV3Q2hhbmdlRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kRGF0ZVBpY2tlck1lbnVPcGVuRGV0YWlsIGFzIElNZERhdGVQaWNrZXJNZERhdGVQaWNrZXJNZW51T3BlbkRldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZERhdGVQaWNrZXJNZW51U2VsZWN0RGV0YWlsIGFzIElNZERhdGVQaWNrZXJNZERhdGVQaWNrZXJNZW51U2VsZWN0RGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kRGF0ZVBpY2tlck1vZGVDaGFuZ2VEZXRhaWwgYXMgSU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlck1vZGVDaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kRGF0ZVBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuTWREYXRlUGlja2VyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBjb21taXRzIGEgc2VsZWN0aW9uLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWREYXRlUGlja2VyTWREYXRlUGlja2VyQ2hhbmdlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIGRheSBpbiB0aGUgY2FsZW5kYXIgKGNsaWNrIG9yIGtleWJvYXJkKS5cbiAgICovXG4gIG1kU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWREYXRlUGlja2VyTWREYXRlUGlja2VyU2VsZWN0ZWREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgb24gZXZlcnkga2V5c3Ryb2tlIGluIGEgdGV4dC1lbnRyeSBmaWVsZC5cbiAgICovXG4gIG1kSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBwaWNrZXIgb3BlbnMuXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHBpY2tlciBjbG9zZXMgZm9yIGFueSByZWFzb24uXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGRpc21pc3NlcyB3aXRob3V0IGNvbW1pdHRpbmcgKHNjcmltLCBDYW5jZWwsIEVzYykuXG4gICAqL1xuICBtZENhbmNlbDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGlzcGxheWVkIGNhbGVuZGFyIG1vbnRoL3llYXIgY2hhbmdlcyBmcm9tIHVzZXIgbmF2aWdhdGlvbi5cbiAgICovXG4gIG1kVmlld0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZERhdGVQaWNrZXJNZERhdGVQaWNrZXJWaWV3Q2hhbmdlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgb3BlbnMgdGhlIG1vbnRoIG9yIHllYXIgc2VsZWN0aW9uIG1lbnUgLyBncmlkLlxuICAgKi9cbiAgbWRNZW51T3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZERhdGVQaWNrZXJNZERhdGVQaWNrZXJNZW51T3BlbkRldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIHBpY2tzIGEgbW9udGggb3IgeWVhciBmcm9tIGEgc2VsZWN0aW9uIG1lbnUgLyBncmlkLlxuICAgKi9cbiAgbWRNZW51U2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlck1lbnVTZWxlY3REZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciB0b2dnbGVzIGJldHdlZW4gY2FsZW5kYXIgYW5kIHR5cGVkLWVudHJ5IHZpZXdzLlxuICAgKi9cbiAgbWRNb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlck1vZGVDaGFuZ2VEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhpcyBjb250cm9sJ3MgdmFsaWRpdHkgQ0hBTkdFUyDigJQgbmV2ZXIgb24gZXZlcnkga2V5c3Ryb2tlLCBhbmRcbm5ldmVyIGZvciBhIHJlLXB1Ymxpc2ggdGhhdCBsYW5kcyBvbiB0aGUgc2FtZSBzdGF0ZS5cblxuYGNvbXBvc2VkOiBmYWxzZWAgaXMgZGVsaWJlcmF0ZS4gQ29tcG9zaXRlcyBsaWtlIG1kLXNlbGVjdCBlbWJlZCBhblxubWQtdGV4dC1maWVsZCwgYW5kIGEgY29tcG9zZWQgZXZlbnQgZXNjYXBlcyB0aGF0IGlubmVyIHNoYWRvdyByb290LCBzbyBhXG5saXN0ZW5lciBvbiBtZC1zZWxlY3Qgd291bGQgcmVjZWl2ZSB0aGUgaW5uZXIgZmllbGQncyBldmVudCBhcyB3ZWxsIGFzIHRoZVxuaG9zdCdzIOKAlCB0d28gZXZlbnRzLCBkaWZmZXJlbnQgcGF5bG9hZHMsIGZvciBvbmUgbG9naWNhbCBjb250cm9sLiBLZWVwaW5nXG5pdCB1bmNvbXBvc2VkIG1lYW5zIGVhY2ggY29tcG9uZW50IHJlcG9ydHMgb25seSBmb3IgaXRzZWxmLCB3aGlsZVxuYGJ1YmJsZXM6IHRydWVgIHN0aWxsIGxldHMgYSA8Zm9ybT4gb3IgYXBwIHJvb3QgaGVhciBldmVyeSBjb250cm9sLlxuICAgKi9cbiAgbWRWYWxpZGl0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsaWQ6IGJvb2xlYW47IHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmc7IGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWREaWFsb2csXG4gIGlucHV0czogWydjYW5jZWxMYWJlbCcsICdjbG9zZUxhYmVsJywgJ2RlbnNpdHknLCAnZGl2aWRlcicsICdmdWxsc2NyZWVuJywgJ2hlYWRlckRpdmlkZXInLCAnaGVhZGxpbmUnLCAnaWNvbicsICdsb2NhbGUnLCAnb2tMYWJlbCcsICdvcGVuJywgJ3NjcmltRGlzbWlzc2libGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1kaWFsb2cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhbmNlbExhYmVsJywgJ2Nsb3NlTGFiZWwnLCAnZGVuc2l0eScsICdkaXZpZGVyJywgJ2Z1bGxzY3JlZW4nLCAnaGVhZGVyRGl2aWRlcicsICdoZWFkbGluZScsICdpY29uJywgJ2xvY2FsZScsICdva0xhYmVsJywgJ29wZW4nLCAnc2NyaW1EaXNtaXNzaWJsZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kRGlhbG9nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRPcGVuJywgJ21kQ2xvc2UnLCAnbWRDYW5jZWwnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWREaWFsb2cgZXh0ZW5kcyBDb21wb25lbnRzLk1kRGlhbG9nIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGRpYWxvZyBvcGVuc1xuICAgKi9cbiAgbWRPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgZGlhbG9nIGNsb3Nlc1xuICAgKi9cbiAgbWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gZGlzbWlzc2VkIHZpYSBzY3JpbSBvciBFc2NhcGVcbiAgICovXG4gIG1kQ2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWREaXZpZGVyLFxuICBpbnB1dHM6IFsnaW5zZXQnLCAnaW5zZXRFbmQnLCAnaW5zZXRTdGFydCcsICd2ZXJ0aWNhbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtZGl2aWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaW5zZXQnLCAnaW5zZXRFbmQnLCAnaW5zZXRTdGFydCcsICd2ZXJ0aWNhbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kRGl2aWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kRGl2aWRlciBleHRlbmRzIENvbXBvbmVudHMuTWREaXZpZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEZhYixcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXh0ZW5kZWQnLCAnaWNvbicsICdsYWJlbCcsICdsb3dlcmVkJywgJ3JpcHBsZScsICdzaXplJywgJ3NvZnREaXNhYmxlZCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1mYWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXh0ZW5kZWQnLCAnaWNvbicsICdsYWJlbCcsICdsb3dlcmVkJywgJ3JpcHBsZScsICdzaXplJywgJ3NvZnREaXNhYmxlZCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRGYWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kRmFiIGV4dGVuZHMgQ29tcG9uZW50cy5NZEZhYiB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIGFjdGl2YXRlcyB0aGUgRkFCIChtb3VzZSBjbGljaywgdG91Y2gsIG9yXG5gRW50ZXJgL2BTcGFjZWAgd2hpbGUgZm9jdXNlZCkuIE5vdCBlbWl0dGVkIHdoZW4gYGRpc2FibGVkYCBvclxuYHNvZnQtZGlzYWJsZWRgLiBCdWJibGVzIGFuZCBpcyBjb21wb3NlZCBzbyBhIGRlbGVnYXRlZCBsaXN0ZW5lclxub24gYSBwYXJlbnQgZWxlbWVudCB3b3Jrcy5cblxuYGBgdHNcbmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21kLWZhYicpIS5hZGRFdmVudExpc3RlbmVyKCdtZENsaWNrJywgKGUpID0+IHtcbiAgY29uc3QgbW91c2VFdmVudCA9IChlIGFzIEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+KS5kZXRhaWw7XG4gIGNvbnNvbGUubG9nKCdGQUIgY2xpY2tlZCBhdCcsIG1vdXNlRXZlbnQuY2xpZW50WCwgbW91c2VFdmVudC5jbGllbnRZKTtcbn0pO1xuYGBgXG4gICAqL1xuICBtZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRGYWJNZW51LFxuICBpbnB1dHM6IFsnYW5jaG9yJywgJ2RlbnNpdHknLCAnbWVudUxhYmVsJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3F1aWNrJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1mYWItbWVudScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5jaG9yJywgJ2RlbnNpdHknLCAnbWVudUxhYmVsJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3F1aWNrJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEZhYk1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZE9wZW4nLCAnbWRDbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZEZhYk1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLk1kRmFiTWVudSB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBtZW51IG9wZW5zLlxuICAgKi9cbiAgbWRPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgbWVudSBjbG9zZXMuXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRGYWJNZW51SXRlbSxcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbicsICdsYWJlbCcsICdyb3ZpbmdGb2N1c1Zpc2libGUnLCAnc29mdERpc2FibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1mYWItbWVudS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnbGFiZWwnLCAncm92aW5nRm9jdXNWaXNpYmxlJywgJ3NvZnREaXNhYmxlZCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kRmFiTWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kRmFiTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kRmFiTWVudUl0ZW0ge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgaXRlbSBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICBtZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRJY29uQnV0dG9uLFxuICBpbnB1dHM6IFsnYnV0dG9uV2lkdGgnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAncmlwcGxlJywgJ3NlbGVjdGVkJywgJ3NlbGVjdGVkSWNvbicsICdzaGFwZScsICdzaGFwZU1vcnBoJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3RhcmdldCcsICd0b2dnbGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtaWNvbi1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2J1dHRvbldpZHRoJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ3JpcHBsZScsICdzZWxlY3RlZCcsICdzZWxlY3RlZEljb24nLCAnc2hhcGUnLCAnc2hhcGVNb3JwaCcsICdzaXplJywgJ3NvZnREaXNhYmxlZCcsICd0YXJnZXQnLCAndG9nZ2xlJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEljb25CdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kSWNvbkJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuTWRJY29uQnV0dG9uIHtcbiAgLyoqXG4gICAqIEZpcmVzIG9uIHBvaW50ZXIgb3Iga2V5Ym9hcmQgYWN0aXZhdGlvbi4gRGV0YWlsIGluY2x1ZGVzIHRvZ2dsZSBgc2VsZWN0ZWRgIHN0YXRlLlxuICAgKi9cbiAgbWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWQ6IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRMaW5lQ2hhcnQsXG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnYXJlYScsICdheGlzVGlja3MnLCAnY29ubmVjdE51bGxzJywgJ2N1cnZlJywgJ2RlbnNpdHknLCAnZ3JpZCcsICdoZWlnaHRQcm9wJywgJ2ludmVydGVkJywgJ2xhYmVsJywgJ2xhYmVsRW1wdHknLCAnbGFiZWxQbG90JywgJ2xhYmVsUG9pbnQnLCAnbGFiZWxab29tRW5kJywgJ2xhYmVsWm9vbVN0YXJ0JywgJ2xlZ2VuZCcsICdsaW5lV2lkdGgnLCAnbG9hZGluZycsICdsb2FkaW5nTGFiZWwnLCAnbG9jYWxlJywgJ21hcmtMaW5lcycsICdtYXJrU2l6ZScsICdub0FuaW1hdGlvbicsICdzZXJpZXMnLCAnc2VyaWVzTGFiZWxzJywgJ3Nob3dMYWJlbHMnLCAnc2hvd0xpbmUnLCAnc2hvd01hcmtzJywgJ3N0YWNrJywgJ3N1YnRpdGxlJywgJ3N1bW1hcnknLCAndGFibGVMYWJlbHMnLCAndGl0bGVBbGlnbicsICd0b29sdGlwJywgJ3Rvb2x0aXBSZW5kZXJlcicsICd2YWx1ZUZvcm1hdHRlcicsICd4QXhpcycsICd5QXhlcycsICd5QXhpcycsICd6b29tJ10sXG4gIG1ldGhvZHM6IFsncmVmcmVzaFRoZW1lJywgJ3Jlc2l6ZScsICdyZXBsYXknLCAndG9EYXRhVVJMJywgJ2dldEluc3RhbmNlJywgJ3NldFpvb20nLCAncmVzZXRab29tJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1saW5lLWNoYXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnYXJlYScsICdheGlzVGlja3MnLCAnY29ubmVjdE51bGxzJywgJ2N1cnZlJywgJ2RlbnNpdHknLCAnZ3JpZCcsICdoZWlnaHRQcm9wJywgJ2ludmVydGVkJywgJ2xhYmVsJywgJ2xhYmVsRW1wdHknLCAnbGFiZWxQbG90JywgJ2xhYmVsUG9pbnQnLCAnbGFiZWxab29tRW5kJywgJ2xhYmVsWm9vbVN0YXJ0JywgJ2xlZ2VuZCcsICdsaW5lV2lkdGgnLCAnbG9hZGluZycsICdsb2FkaW5nTGFiZWwnLCAnbG9jYWxlJywgJ21hcmtMaW5lcycsICdtYXJrU2l6ZScsICdub0FuaW1hdGlvbicsICdzZXJpZXMnLCAnc2VyaWVzTGFiZWxzJywgJ3Nob3dMYWJlbHMnLCAnc2hvd0xpbmUnLCAnc2hvd01hcmtzJywgJ3N0YWNrJywgJ3N1YnRpdGxlJywgJ3N1bW1hcnknLCAndGFibGVMYWJlbHMnLCAndGl0bGVBbGlnbicsICd0b29sdGlwJywgJ3Rvb2x0aXBSZW5kZXJlcicsICd2YWx1ZUZvcm1hdHRlcicsICd4QXhpcycsICd5QXhlcycsICd5QXhpcycsICd6b29tJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRMaW5lQ2hhcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZE1hcmtlckNsaWNrJywgJ21kTGluZUNsaWNrJywgJ21kQXJlYUNsaWNrJywgJ21kQXhpc0NsaWNrJywgJ21kTGVnZW5kQ2xpY2snLCAnbWRIb3ZlcicsICdtZFJlYWR5JywgJ21kWm9vbSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRDaGFydENsaWNrRGV0YWlsIGFzIElNZExpbmVDaGFydE1kQ2hhcnRDbGlja0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZENoYXJ0WFlTZXJpZXMgYXMgSU1kTGluZUNoYXJ0TWRDaGFydFhZU2VyaWVzIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kQ2hhcnRBeGlzQ2xpY2tEZXRhaWwgYXMgSU1kTGluZUNoYXJ0TWRDaGFydEF4aXNDbGlja0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZENoYXJ0SG92ZXJEZXRhaWwgYXMgSU1kTGluZUNoYXJ0TWRDaGFydEhvdmVyRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZExpbmVDaGFydCBleHRlbmRzIENvbXBvbmVudHMuTWRMaW5lQ2hhcnQge1xuICAvKipcbiAgICogRmlyZXMgb24gbWFya2VyIGNsaWNrLiBgZGF0YUluZGV4YCBhZGRyZXNzZXMgdGhlIGNsaWNrZWQgc2VyaWVzJyBvd25cbmBkYXRhYCBhcnJheSAoaXRzIHBvaW50IGluZGV4LCBmb3Igc2VyaWVzIHRoYXQgY2FycnkgdGhlaXIgb3duIHgpLlxuICAgKi9cbiAgbWRNYXJrZXJDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZExpbmVDaGFydE1kQ2hhcnRDbGlja0RldGFpbDxJTWRMaW5lQ2hhcnRNZENoYXJ0WFlTZXJpZXM+Pj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIGEgc2VyaWVzJyBkcmF3biBsaW5lIGlzIGNsaWNrZWQgKmJldHdlZW4qIGl0cyBkYXRhIHBvaW50cyAoYVxuY2xpY2sgb24gYSBwb2ludCBlbWl0cyBgbWRNYXJrZXJDbGlja2AgaW5zdGVhZCkuIGBkYXRhSW5kZXhgIGlzIHRoZSBwb2ludFxudGhlIGNsaWNrIGlzIG5lYXJlc3QgYWxvbmcgeC5cbiAgICovXG4gIG1kTGluZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kTGluZUNoYXJ0TWRDaGFydENsaWNrRGV0YWlsPElNZExpbmVDaGFydE1kQ2hhcnRYWVNlcmllcz4+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gYSBzZXJpZXMnIGZpbGxlZCBhcmVhIGlzIGNsaWNrZWQgKGBhcmVhYCBjaGFydHMgb25seSkg4oCUIHRoZVxucmVnaW9uIGJldHdlZW4gdGhhdCBzZXJpZXMnIGxpbmUgYW5kIGl0cyBiYXNlbGluZSwgZXhjbHVkaW5nIGl0cyBsaW5lIGFuZFxucG9pbnRzLiBgZGF0YUluZGV4YCBpcyB0aGUgcG9pbnQgdGhlIGNsaWNrIGlzIG5lYXJlc3QgYWxvbmcgeC5cbiAgICovXG4gIG1kQXJlYUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kTGluZUNoYXJ0TWRDaGFydENsaWNrRGV0YWlsPElNZExpbmVDaGFydE1kQ2hhcnRYWVNlcmllcz4+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHBsb3QgYmFja2dyb3VuZCBpcyBjbGlja2VkIChpbnNpZGUgdGhlIHBsb3QsIGJ1dCBub3Qgb24gYVxubWFyaywgbGluZSBvciBhcmVhKTogdGhlIG5lYXJlc3QgeCBwb3NpdGlvbiBwbHVzIGV2ZXJ5IHZpc2libGUgc2VyaWVzJ1xudmFsdWUgdGhlcmUuXG4gICAqL1xuICBtZEF4aXNDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZExpbmVDaGFydE1kQ2hhcnRBeGlzQ2xpY2tEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gYSBsZWdlbmQgZW50cnkgaXMgY2xpY2tlZC5cbiAgICovXG4gIG1kTGVnZW5kQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlcmllc0luZGV4OiBudW1iZXI7IHNlcmllc0lkPzogc3RyaW5nOyBzZWxlY3RlZDogYm9vbGVhbiB9Pj47XG4gIC8qKlxuICAgKiBGaXJlcyAodGhyb3R0bGVkIHRvIHJBRikgYXMgdGhlIHBvaW50ZXIgY3Jvc3NlcyB0aGUgcGxvdC5cbiAgICovXG4gIG1kSG92ZXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRMaW5lQ2hhcnRNZENoYXJ0SG92ZXJEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVzIGFmdGVyIHRoZSBjaGFydCBmaW5pc2hlcyBpdHMgaW5pdGlhbCByZW5kZXIuXG4gICAqL1xuICBtZFJlYWR5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgem9vbSB3aW5kb3cgY2hhbmdlcyAoZHJhZywgc2xpZGVyIG9yIGBzZXRab29tYC9gcmVzZXRab29tYCkuXG4gICAqL1xuICBtZFpvb206IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHN0YXJ0SW5kZXg6IG51bWJlcjsgZW5kSW5kZXg6IG51bWJlcjsgcmVzZXQ6IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRMaXN0LFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdpbnRlcmFjdGlvbk1vZGUnLCAnbGFiZWwnLCAnbGFiZWxsZWRieScsICdsaXN0U3R5bGUnLCAncmVvcmRlcmFibGUnLCAncm9sZU92ZXJyaWRlJywgJ3NlbGVjdGlvbk1vZGUnXSxcbiAgbWV0aG9kczogWydhY3RpdmF0ZU5leHQnLCAnYWN0aXZhdGVQcmV2aW91cycsICdzZWxlY3RJdGVtJywgJ2dldFNlbGVjdGVkSW5kaWNlcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdpbnRlcmFjdGlvbk1vZGUnLCAnbGFiZWwnLCAnbGFiZWxsZWRieScsICdsaXN0U3R5bGUnLCAncmVvcmRlcmFibGUnLCAncm9sZU92ZXJyaWRlJywgJ3NlbGVjdGlvbk1vZGUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZExpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFNlbGVjdCcsICdtZEFjdGl2YXRlJywgJ21kUmVvcmRlciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRMaXN0U2VsZWN0RGV0YWlsIGFzIElNZExpc3RNZExpc3RTZWxlY3REZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTGlzdCBleHRlbmRzIENvbXBvbmVudHMuTWRMaXN0IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBzZWxlY3Rpb24gY2hhbmdlcyB2aWEgdXNlciBpbnB1dCAoY2xpY2sgLyBFbnRlciAvIFNwYWNlKS5cbiAgICovXG4gIG1kU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kTGlzdE1kTGlzdFNlbGVjdERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuZXZlciByb3ZpbmcgZm9jdXMgbGFuZHMgb24gYSBkaWZmZXJlbnQgcm93LlxuICAgKi9cbiAgbWRBY3RpdmF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaW5kZXg6IG51bWJlcjsgaXRlbTogSFRNTE1kTGlzdEl0ZW1FbGVtZW50IH0+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgYSBkcmFnIChvciBrZXlib2FyZCkgcmVvcmRlciBjb21wbGV0ZXMuXG5cbi0gYGZyb21gIC8gYHRvYDogdGhlIG1vdmVkIHJvdydzIG9sZCBhbmQgbmV3IHBvc2l0aW9ucyAoaXRlbSBpbmRpY2VzLFxuICBpZ25vcmluZyBub24taXRlbSBjaGlsZHJlbiBsaWtlIGRpdmlkZXJzKS5cbi0gYG9yZGVyYDogdGhlIG5ldyBvcmRlciBleHByZXNzZWQgYXMgdGhlIG9yaWdpbmFsIChhcy1hdXRob3JlZCkgaW5kaWNlcyxcbiAgc28gYG9yZGVyW25ld1Bvc2l0aW9uXSA9PT0gb3JpZ2luYWxQb3NpdGlvbmAuIFVzZSBpdCB0byByZW9yZGVyIGFcbiAgYmFja2luZyBkYXRhIGFycmF5IGluIG9uZSBwYXNzLlxuICAgKi9cbiAgbWRSZW9yZGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBmcm9tOiBudW1iZXI7IHRvOiBudW1iZXI7IG9yZGVyOiBudW1iZXJbXSB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZExpc3RJdGVtLFxuICBpbnB1dHM6IFsnY29udGFpbmVyUm9sZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2V4cGFuZGFibGUnLCAnZXhwYW5kZWQnLCAnaGVhZGxpbmUnLCAnaHJlZicsICdpbnRlcmFjdGlvbk1vZGUnLCAnbGVhZGluZ0F2YXRhcicsICdsZWFkaW5nQXZhdGFyQWx0JywgJ2xlYWRpbmdBdmF0YXJMYWJlbCcsICdsZWFkaW5nQXZhdGFyTmFtZScsICdsZWFkaW5nSWNvbicsICdsZWFkaW5nSW1hZ2UnLCAnbGVhZGluZ0ltYWdlQWx0JywgJ2xpbmVzJywgJ292ZXJsaW5lJywgJ3Jlb3JkZXJhYmxlJywgJ3JvdmluZ0ZvY3VzVmlzaWJsZScsICdzZWxlY3RlZCcsICdzZWxlY3Rpb25Nb2RlJywgJ3NvZnREaXNhYmxlZCcsICdzdXBwb3J0aW5nVGV4dCcsICd0YWJiYWJsZScsICd0YXJnZXQnLCAndHJhaWxpbmdJY29uJywgJ3RyYWlsaW5nU3VwcG9ydGluZ1RleHQnLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ2ZvY3VzSXRlbScsICd0b2dnbGUnLCAnZXhwYW5kJywgJ2NvbGxhcHNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1saXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lclJvbGUnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdleHBhbmRhYmxlJywgJ2V4cGFuZGVkJywgJ2hlYWRsaW5lJywgJ2hyZWYnLCAnaW50ZXJhY3Rpb25Nb2RlJywgJ2xlYWRpbmdBdmF0YXInLCAnbGVhZGluZ0F2YXRhckFsdCcsICdsZWFkaW5nQXZhdGFyTGFiZWwnLCAnbGVhZGluZ0F2YXRhck5hbWUnLCAnbGVhZGluZ0ljb24nLCAnbGVhZGluZ0ltYWdlJywgJ2xlYWRpbmdJbWFnZUFsdCcsICdsaW5lcycsICdvdmVybGluZScsICdyZW9yZGVyYWJsZScsICdyb3ZpbmdGb2N1c1Zpc2libGUnLCAnc2VsZWN0ZWQnLCAnc2VsZWN0aW9uTW9kZScsICdzb2Z0RGlzYWJsZWQnLCAnc3VwcG9ydGluZ1RleHQnLCAndGFiYmFibGUnLCAndGFyZ2V0JywgJ3RyYWlsaW5nSWNvbicsICd0cmFpbGluZ1N1cHBvcnRpbmdUZXh0JywgJ3R5cGUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZExpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDbGljaycsICdtZEl0ZW1DbGljaycsICdtZEl0ZW1TZWxlY3QnLCAnbWRSZXF1ZXN0QWN0aXZhdGlvbicsICdtZEl0ZW1SZXF1ZXN0UmVvcmRlcicsICdtZEV4cGFuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRMaXN0SXRlbUV4cGFuZERldGFpbCBhcyBJTWRMaXN0SXRlbU1kTGlzdEl0ZW1FeHBhbmREZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kTGlzdEl0ZW0ge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBhbiBpbnRlcmFjdGl2ZSByb3cgaXMgYWN0aXZhdGVkIChjbGljaywgRW50ZXIsIG9yIFNwYWNlKS5cbiAgICovXG4gIG1kQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGl0ZW06IEhUTUxFbGVtZW50IH0+PjtcbiAgLyoqXG4gICAqIEJ1YmJsZXMgdG8gcGFyZW50IGBtZC1saXN0YCBzbyBpdCBjYW4gbWFuYWdlIHNlbGVjdGlvbiBzdGF0ZS5cbiAgICovXG4gIG1kSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyOyBzZWxlY3RlZDogYm9vbGVhbiB9Pj47XG4gIC8qKlxuICAgKiBCdWJibGVzIHRvIHBhcmVudCBgbWQtbGlzdGAgd2hlbiBhbiBgZXhwYW5kZWQtY29udGVudGAgY2hpbGQgcm93IGlzXG5zZWxlY3RlZC4gVGhlIGxpc3QgcmUtZW1pdHMgYG1kU2VsZWN0YCB3aXRoIHRoZSBwYXJlbnQncyBsaXN0IGluZGV4LFxuYGNoaWxkSW5kZXhgLCBgZXhwYW5kZWRgLCBhbmQgdGhlIGNoaWxkIGluIGBpdGVtYC5cbiAgICovXG4gIG1kSXRlbVNlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaW5kZXg6IG51bWJlcjsgdmFsdWU6IHN0cmluZzsgc2VsZWN0ZWQ6IGJvb2xlYW47IGl0ZW06IEhUTUxNZExpc3RJdGVtRWxlbWVudDsgfT4+O1xuICAvKipcbiAgICogQXNrcyB0aGUgcGFyZW50IGBtZC1saXN0YCB0byBnaXZlIHRoaXMgcm93IHJvdmluZyBmb2N1cy5cbiAgICovXG4gIG1kUmVxdWVzdEFjdGl2YXRpb246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBJbnRlcm5hbCBldmVudCB0aGUgcGFyZW50IGBtZC1saXN0YCBsaXN0ZW5zIHRvIGZvciBrZXlib2FyZCByZW9yZGVyaW5nXG4oYEFsdCArIEFycm93VXAgLyBBcnJvd0Rvd25gKS4gQnViYmxlcyArIGNvbXBvc2VkIHNvIGl0IGNyb3NzZXMgdGhlXG5zaGFkb3cgYm91bmRhcnkgdXAgdG8gdGhlIGxpc3QuXG4gICAqL1xuICBtZEl0ZW1SZXF1ZXN0UmVvcmRlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZGlyZWN0aW9uOiAndXAnIHwgJ2Rvd24nOyBmcm9tOiBudW1iZXI7IH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW5ldmVyIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiBhbiBleHBhbmRhYmxlIHJvdyBjaGFuZ2VzLlxuICAgKi9cbiAgbWRFeHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRMaXN0SXRlbU1kTGlzdEl0ZW1FeHBhbmREZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTG9hZGluZ0luZGljYXRvcixcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnbGFiZWwnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbG9hZGluZy1pbmRpY2F0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnbGFiZWwnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTG9hZGluZ0luZGljYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTG9hZGluZ0luZGljYXRvciBleHRlbmRzIENvbXBvbmVudHMuTWRMb2FkaW5nSW5kaWNhdG9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZE1lbnUsXG4gIGlucHV0czogWydhbmNob3InLCAnYXV0b0ZvY3VzJywgJ2RlbnNpdHknLCAnZW1wdHlUZXh0JywgJ2xheW91dCcsICdsaXN0TGFiZWwnLCAnbGlzdGJveCcsICdtYXRjaEFuY2hvcldpZHRoJywgJ21heEhlaWdodCcsICdvcGVuJywgJ3BlcnNpc3RlbnQnLCAncGxhY2VtZW50JywgJ3F1aWNrJywgJ3Jlc3BvbnNpdmUnLCAndXNlR2FwJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzZXRDb21ib2JveEVsZW1lbnQnLCAnc2V0VmlydHVhbFByb3ZpZGVyJywgJ2dldFNjcm9sbFZpZXdwb3J0JywgJ3Nob3cnLCAncmVwb3NpdGlvbicsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbWVudScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5jaG9yJywgJ2F1dG9Gb2N1cycsICdkZW5zaXR5JywgJ2VtcHR5VGV4dCcsICdsYXlvdXQnLCAnbGlzdExhYmVsJywgJ2xpc3Rib3gnLCAnbWF0Y2hBbmNob3JXaWR0aCcsICdtYXhIZWlnaHQnLCAnb3BlbicsICdwZXJzaXN0ZW50JywgJ3BsYWNlbWVudCcsICdxdWljaycsICdyZXNwb25zaXZlJywgJ3VzZUdhcCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRPcGVuJywgJ21kQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5NZE1lbnUge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgbWVudSBvcGVucy4gU2NvcGVkIHRvIHRoZSBtZW51IGVsZW1lbnQ6IGBidWJibGVzOiBmYWxzZWBcbnN0b3BzIGl0IGNsaW1iaW5nIHRoZSBsaWdodC1ET00gdHJlZSwgYW5kIGBjb21wb3NlZDogZmFsc2VgIHN0b3BzIGl0XG5lc2NhcGluZyB0aGUgc2hhZG93IHJvb3Qgb2YgYSBob3N0IHRoYXQgZW1iZWRzIHRoaXMgbWVudSAobWQtc2VsZWN0LFxubWQtbXVsdGktc2VsZWN0LCBtZC1kYXRlLXBpY2tlciDigKYpLiBXaXRob3V0IGBjb21wb3NlZDogZmFsc2VgIGFcbmBjb21wb3NlZGAgZXZlbnQgc3RpbGwgc3VyZmFjZXMgYXQgdGhlIGVtYmVkZGluZyBob3N0IGFzIGFuXG5gQVRfVEFSR0VUYCBldmVudCDigJQgc28gYSBjb25zdW1lcidzIGBtZE9wZW5gIGxpc3RlbmVyIG9uIHRoZSB3cmFwcGVyXG53b3VsZCBmaXJlIGZvciBib3RoIHRoZSB3cmFwcGVyJ3Mgb3duIGV2ZW50IGFuZCB0aGlzIGlubmVyIG9uZVxuKGR1cGxpY2F0ZSBvcGVuL2Nsb3NlKS4gV3JhcHBlcnMgbGlzdGVuIHZpYSBgb25NZE9wZW5gIG9uIHRoZSBtZW51XG5lbGVtZW50IGl0c2VsZiwgd2hpY2ggc3RpbGwgZmlyZXMgcmVnYXJkbGVzcy5cbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIG1lbnUgY2xvc2VzLiBTY29wZWQgbGlrZSBgbWRPcGVuYCDigJQgc2VlIGl0cyBub3RlLlxuICAgKi9cbiAgbWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTWVudUl0ZW0sXG4gIGlucHV0czogWydiYWRnZScsICdjaGVja1Bvc2l0aW9uJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZGl2aWRlcicsICdnYXAnLCAnaGVhZGxpbmUnLCAnaW5kZXRlcm1pbmF0ZScsICdrZWVwT3BlbicsICdwcmVzZW50YXRpb24nLCAncm9sZU92ZXJyaWRlJywgJ3NlbGVjdGVkJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3RyYWlsaW5nVGV4dCcsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhZGdlJywgJ2NoZWNrUG9zaXRpb24nLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkaXZpZGVyJywgJ2dhcCcsICdoZWFkbGluZScsICdpbmRldGVybWluYXRlJywgJ2tlZXBPcGVuJywgJ3ByZXNlbnRhdGlvbicsICdyb2xlT3ZlcnJpZGUnLCAnc2VsZWN0ZWQnLCAnc3VwcG9ydGluZ1RleHQnLCAndHJhaWxpbmdUZXh0JywgJ3R5cGUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZE1lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZE1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5NZE1lbnVJdGVtIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGl0ZW0gaXMgYWN0aXZhdGVkLlxuICAgKi9cbiAgbWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTWVudUl0ZW1Hcm91cCxcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnbGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW1lbnUtaXRlbS1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdsYWJlbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTWVudUl0ZW1Hcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTWVudUl0ZW1Hcm91cCBleHRlbmRzIENvbXBvbmVudHMuTWRNZW51SXRlbUdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZE1ldGVyLFxuICBpbnB1dHM6IFsnY29sb3InLCAnZGVuc2l0eScsICdmb3JtYXRPcHRpb25zJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ3Nob3dMYWJlbCcsICdzaG93VmFsdWUnLCAnc2l6ZScsICd0aGlja25lc3MnLCAndmFsdWUnLCAndmFsdWVUZXh0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW1ldGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdkZW5zaXR5JywgJ2Zvcm1hdE9wdGlvbnMnLCAnbGFiZWwnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnc2hvd0xhYmVsJywgJ3Nob3dWYWx1ZScsICdzaXplJywgJ3RoaWNrbmVzcycsICd2YWx1ZScsICd2YWx1ZVRleHQnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTWV0ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZE1ldGVyIGV4dGVuZHMgQ29tcG9uZW50cy5NZE1ldGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZE11bHRpU2VsZWN0LFxuICBpbnB1dHM6IFsnY2hpcE92ZXJmbG93JywgJ2NoaXBQb3NpdGlvbicsICdjbGVhckljb24nLCAnY2xlYXJMYWJlbCcsICdjbGVhcmFibGUnLCAnY291bnRGb3JtYXR0ZXInLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkaXNwbGF5TW9kZScsICdkcm9wZG93bkljb24nLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2ZpbHRlckxhYmVsJywgJ2ZpbHRlck1vZGUnLCAnZmlsdGVyYWJsZScsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdUZXh0JywgJ21hdGNoVHJpZ2dlcldpZHRoJywgJ21heEhlaWdodCcsICdtYXhTZWxlY3RlZCcsICduYW1lJywgJ25vT3B0aW9uc1RleHQnLCAnbm9SZXN1bHRzVGV4dCcsICdvcGVuJywgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAncm93SGVpZ2h0JywgJ3NlYXJjaFBsYWNlaG9sZGVyJywgJ3NlYXJjaGluZ0xhYmVsJywgJ3NlbGVjdEFsbExhYmVsJywgJ3Nob3dTZWxlY3RBbGwnLCAnc29mdERpc2FibGVkJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3RyaWdnZXInLCAndHJpZ2dlckljb24nLCAndHJpZ2dlckxhYmVsJywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnLCAnZm9jdXNUcmlnZ2VyJywgJ3Jlc2V0JywgJ2xvYWRPcHRpb25zJywgJ3NldFF1ZXJ5JywgJ2dldExhYmVscycsICdnZXRWYWxpZGl0eScsICdjaGVja1ZhbGlkaXR5JywgJ3JlcG9ydFZhbGlkaXR5JywgJ3NldEN1c3RvbVZhbGlkaXR5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1tdWx0aS1zZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoaXBPdmVyZmxvdycsICdjaGlwUG9zaXRpb24nLCAnY2xlYXJJY29uJywgJ2NsZWFyTGFiZWwnLCAnY2xlYXJhYmxlJywgJ2NvdW50Rm9ybWF0dGVyJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZGlzcGxheU1vZGUnLCAnZHJvcGRvd25JY29uJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmaWx0ZXJMYWJlbCcsICdmaWx0ZXJNb2RlJywgJ2ZpbHRlcmFibGUnLCAnbGFiZWwnLCAnbG9hZGluZycsICdsb2FkaW5nVGV4dCcsICdtYXRjaFRyaWdnZXJXaWR0aCcsICdtYXhIZWlnaHQnLCAnbWF4U2VsZWN0ZWQnLCAnbmFtZScsICdub09wdGlvbnNUZXh0JywgJ25vUmVzdWx0c1RleHQnLCAnb3BlbicsICdvcHRpb25zJywgJ3BsYWNlaG9sZGVyJywgJ3BsYWNlbWVudCcsICdyZXF1aXJlZCcsICdyZXNlcnZlU3VwcG9ydGluZ1NwYWNlJywgJ3Jvd0hlaWdodCcsICdzZWFyY2hQbGFjZWhvbGRlcicsICdzZWFyY2hpbmdMYWJlbCcsICdzZWxlY3RBbGxMYWJlbCcsICdzaG93U2VsZWN0QWxsJywgJ3NvZnREaXNhYmxlZCcsICdzdXBwb3J0aW5nVGV4dCcsICd0cmlnZ2VyJywgJ3RyaWdnZXJJY29uJywgJ3RyaWdnZXJMYWJlbCcsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCcsICd2YXJpYW50JywgJ3ZpcnR1YWxpemUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZE11bHRpU2VsZWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnLCAnbWRPcGVuJywgJ21kQ2xvc2UnLCAnbWRSZW1vdmUnLCAnbWRDbGVhcicsICdtZFZhbGlkaXR5Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTXVsdGlTZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLk1kTXVsdGlTZWxlY3Qge1xuICAvKipcbiAgICogRW1pdHMgdGhlIGZ1bGwgc2VsZWN0ZWQtdmFsdWUgYXJyYXkgd2hlbmV2ZXIgdGhlIHNlbGVjdGlvbiBjaGFuZ2VzLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmdbXT4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgbWVudSBvcGVucy5cbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIG1lbnUgY2xvc2VzLlxuICAgKi9cbiAgbWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHRoZSByZW1vdmVkIHZhbHVlIHdoZW4gYSBjaGlwIGlzIGRpc21pc3NlZC5cbiAgICovXG4gIG1kUmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjbGVhciBidXR0b24gZW1wdGllcyB0aGUgc2VsZWN0aW9uLlxuICAgKi9cbiAgbWRDbGVhcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhpcyBjb250cm9sJ3MgdmFsaWRpdHkgQ0hBTkdFUyDigJQgbmV2ZXIgb24gZXZlcnkga2V5c3Ryb2tlLCBhbmRcbm5ldmVyIGZvciBhIHJlLXB1Ymxpc2ggdGhhdCBsYW5kcyBvbiB0aGUgc2FtZSBzdGF0ZS5cblxuYGNvbXBvc2VkOiBmYWxzZWAgaXMgZGVsaWJlcmF0ZS4gQ29tcG9zaXRlcyBsaWtlIG1kLXNlbGVjdCBlbWJlZCBhblxubWQtdGV4dC1maWVsZCwgYW5kIGEgY29tcG9zZWQgZXZlbnQgZXNjYXBlcyB0aGF0IGlubmVyIHNoYWRvdyByb290LCBzbyBhXG5saXN0ZW5lciBvbiBtZC1zZWxlY3Qgd291bGQgcmVjZWl2ZSB0aGUgaW5uZXIgZmllbGQncyBldmVudCBhcyB3ZWxsIGFzIHRoZVxuaG9zdCdzIOKAlCB0d28gZXZlbnRzLCBkaWZmZXJlbnQgcGF5bG9hZHMsIGZvciBvbmUgbG9naWNhbCBjb250cm9sLiBLZWVwaW5nXG5pdCB1bmNvbXBvc2VkIG1lYW5zIGVhY2ggY29tcG9uZW50IHJlcG9ydHMgb25seSBmb3IgaXRzZWxmLCB3aGlsZVxuYGJ1YmJsZXM6IHRydWVgIHN0aWxsIGxldHMgYSA8Zm9ybT4gb3IgYXBwIHJvb3QgaGVhciBldmVyeSBjb250cm9sLlxuICAgKi9cbiAgbWRWYWxpZGl0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsaWQ6IGJvb2xlYW47IHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmc7IGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWROYXZpZ2F0aW9uQmFyLFxuICBpbnB1dHM6IFsnYWN0aXZlSW5kZXgnLCAnZGVuc2l0eScsICdsYWJlbEJlaGF2aW9yJywgJ21hbnVhbEFjdGl2YXRpb24nXSxcbiAgbWV0aG9kczogWydzZWxlY3QnLCAnZm9jdXNUYWInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW5hdmlnYXRpb24tYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmVJbmRleCcsICdkZW5zaXR5JywgJ2xhYmVsQmVoYXZpb3InLCAnbWFudWFsQWN0aXZhdGlvbiddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTmF2aWdhdGlvbkJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTmF2aWdhdGlvbkJhciBleHRlbmRzIENvbXBvbmVudHMuTWROYXZpZ2F0aW9uQmFyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgZGVzdGluYXRpb24gY2hhbmdlcyAodXNlciBjbGljayxcbmtleWJvYXJkIGFjdGl2YXRpb24sIG9yIHByb2dyYW1tYXRpYyBgc2VsZWN0KClgIGNhbGwpLlxuRGV0YWlsIGluY2x1ZGVzIGJvdGggdGhlIG5ldyBhbmQgcHJldmlvdXMgaW5kaWNlcyBzbyBsaXN0ZW5lcnNcbmNhbiBzaG9ydC1jaXJjdWl0IG5vLW9wIHJlc2VsZWN0cy5cbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyOyBwcmV2aW91c0luZGV4OiBudW1iZXIgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWROYXZpZ2F0aW9uUmFpbCxcbiAgaW5wdXRzOiBbJ2FjdGl2ZUluZGV4JywgJ2FsaWdubWVudCcsICdkZW5zaXR5JywgJ2Rpc2FibGVGb2N1c01hbmFnZW1lbnQnLCAnZXhwYW5kYWJsZScsICdmdWxsSGVpZ2h0JywgJ2xhYmVsJywgJ2xhYmVsVmlzaWJpbGl0eScsICdtYXhWaXNpYmxlJywgJ21vZGFsJywgJ29yaWVudGF0aW9uJywgJ292ZXJmbG93SWNvbicsICdvdmVyZmxvd0xhYmVsJywgJ3RvZ2dsZUxhYmVsJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydleHBhbmQnLCAnY29sbGFwc2UnLCAndG9nZ2xlJywgJ2ZvY3VzVGFiJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1uYXZpZ2F0aW9uLXJhaWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZUluZGV4JywgJ2FsaWdubWVudCcsICdkZW5zaXR5JywgJ2Rpc2FibGVGb2N1c01hbmFnZW1lbnQnLCAnZXhwYW5kYWJsZScsICdmdWxsSGVpZ2h0JywgJ2xhYmVsJywgJ2xhYmVsVmlzaWJpbGl0eScsICdtYXhWaXNpYmxlJywgJ21vZGFsJywgJ29yaWVudGF0aW9uJywgJ292ZXJmbG93SWNvbicsICdvdmVyZmxvd0xhYmVsJywgJ3RvZ2dsZUxhYmVsJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZE5hdmlnYXRpb25SYWlsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRUYWJDaGFuZ2UnLCAnbWRFeHBhbmQnLCAnbWRDb2xsYXBzZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZE5hdmlnYXRpb25SYWlsIGV4dGVuZHMgQ29tcG9uZW50cy5NZE5hdmlnYXRpb25SYWlsIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGEgZGVzdGluYXRpb24uXG4gICAqL1xuICBtZFRhYkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaW5kZXg6IG51bWJlcjsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHJhaWwgdHJhbnNpdGlvbnMgZnJvbSBjb2xsYXBzZWQg4oaSIGV4cGFuZGVkLlxuICAgKi9cbiAgbWRFeHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHJhaWwgdHJhbnNpdGlvbnMgZnJvbSBleHBhbmRlZCDihpIgY29sbGFwc2VkLlxuICAgKi9cbiAgbWRDb2xsYXBzZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTmF2aWdhdGlvblJhaWxUYWIsXG4gIGlucHV0czogWydhY3RpdmUnLCAnYmFkZ2UnLCAnYmFkZ2VWYWx1ZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2V4cGFuZGVkJywgJ2hyZWYnLCAnaWNvbicsICdsYWJlbCcsICdsYWJlbFZpc2liaWxpdHknLCAndGFyZ2V0JywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnY2xlYXJTdWJtZW51U2VsZWN0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1uYXZpZ2F0aW9uLXJhaWwtdGFiJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnYmFkZ2UnLCAnYmFkZ2VWYWx1ZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2V4cGFuZGVkJywgJ2hyZWYnLCAnaWNvbicsICdsYWJlbCcsICdsYWJlbFZpc2liaWxpdHknLCAndGFyZ2V0JywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWROYXZpZ2F0aW9uUmFpbFRhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kVGFiQ2xpY2snLCAnbWRTdWJtZW51VG9nZ2xlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTmF2aWdhdGlvblJhaWxUYWIgZXh0ZW5kcyBDb21wb25lbnRzLk1kTmF2aWdhdGlvblJhaWxUYWIge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgdXNlciBhY3RpdmF0ZXMgdGhlIGRlc3RpbmF0aW9uIChjbGljayAvIEVudGVyIC8gU3BhY2UpLlxuICAgKi9cbiAgbWRUYWJDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoaXMgZGVzdGluYXRpb24ncyBzbG90dGVkIGRyb3Bkb3duIG9wZW5zIG9yIGNsb3Nlcy4gYG1kLW1lbnVgJ3Ncbm93biBgbWRPcGVuYCAvIGBtZENsb3NlYCBhcmUgZGVsaWJlcmF0ZWx5IG5vbi1idWJibGluZyBhbmQgbm9uLWNvbXBvc2VkLCBzb1xudGhlIHJhaWwgaGFzIG5vIHdheSB0byBoZWFyIHRoZW0g4oCUIHRoaXMgaXMgdGhlIHNpZ25hbCBpdCBsaXN0ZW5zIGZvciAoaXRcbmxpZnRzIGl0cyBzdGFja2luZyBjb250ZXh0IHNvIHRoZSBmaXhlZC1wb3NpdGlvbiBtZW51IGlzIG5vdCB0cmFwcGVkKS5cbiAgICovXG4gIG1kU3VibWVudVRvZ2dsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgb3BlbjogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZE5hdmlnYXRpb25UYWIsXG4gIGlucHV0czogWydhY3RpdmUnLCAnYWN0aXZlSWNvbicsICdiYWRnZScsICdiYWRnZU1heCcsICdiYWRnZVZhbHVlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2xhYmVsJywgJ2xhYmVsQmVoYXZpb3InLCAnc29mdERpc2FibGVkJywgJ3RhcmdldCddLFxuICBtZXRob2RzOiBbJ2ZvY3VzRWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW5hdmlnYXRpb24tdGFiJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnYWN0aXZlSWNvbicsICdiYWRnZScsICdiYWRnZU1heCcsICdiYWRnZVZhbHVlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2xhYmVsJywgJ2xhYmVsQmVoYXZpb3InLCAnc29mdERpc2FibGVkJywgJ3RhcmdldCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTmF2aWdhdGlvblRhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kVGFiQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWROYXZpZ2F0aW9uVGFiIGV4dGVuZHMgQ29tcG9uZW50cy5NZE5hdmlnYXRpb25UYWIge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgdGFiIGlzIGFjdGl2YXRlZCAoY2xpY2ssIEVudGVyLCBvciBTcGFjZSkgYW5kIHRoZSB0YWIgaXNcbm5vdCBkaXNhYmxlZC4gVGhlIHBhcmVudCBgbWQtbmF2aWdhdGlvbi1iYXJgIGxpc3RlbnMgZm9yIHRoaXMgdG8gZHJpdmVcbnNlbGVjdGlvbjsgZXh0ZXJuYWwgY29kZSBtYXkgYWxzbyBsaXN0ZW4gdG8gZGV0ZWN0IHBlci10YWIgYWN0aXZhdGlvblxuKGluY2x1ZGluZyBhIHJlLWNsaWNrIG9mIHRoZSBhbHJlYWR5LWFjdGl2ZSB0YWIsIHdoaWNoIGRvZXMgbm90IGVtaXRcbmBtZENoYW5nZWAgb24gdGhlIGJhcikuXG4gICAqL1xuICBtZFRhYkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTnVtYmVyRmllbGQsXG4gIGlucHV0czogWydhbGxvd091dE9mUmFuZ2UnLCAnYWxsb3dXaGVlbFNjcnViJywgJ2RlY3JlbWVudExhYmVsJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2Zvcm1hdE9wdGlvbnMnLCAnaW5jcmVtZW50TGFiZWwnLCAnbGFiZWwnLCAnbGFyZ2VTdGVwJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdzbWFsbFN0ZXAnLCAnc25hcE9uU3RlcCcsICdzdGVwJywgJ3N0ZXBwZXJzJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdzZWxlY3QnLCAnc3RlcFVwJywgJ3N0ZXBEb3duJywgJ2dldFZhbGlkaXR5JywgJ2NoZWNrVmFsaWRpdHknLCAncmVwb3J0VmFsaWRpdHknLCAnc2V0Q3VzdG9tVmFsaWRpdHknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW51bWJlci1maWVsZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsb3dPdXRPZlJhbmdlJywgJ2FsbG93V2hlZWxTY3J1YicsICdkZWNyZW1lbnRMYWJlbCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmb3JtYXRPcHRpb25zJywgJ2luY3JlbWVudExhYmVsJywgJ2xhYmVsJywgJ2xhcmdlU3RlcCcsICdsb2NhbGUnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAnc21hbGxTdGVwJywgJ3NuYXBPblN0ZXAnLCAnc3RlcCcsICdzdGVwcGVycycsICdzdXBwb3J0aW5nVGV4dCcsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWROdW1iZXJGaWVsZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kSW5wdXQnLCAnbWRDaGFuZ2UnLCAnbWRWYWxpZGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWROdW1iZXJGaWVsZENoYW5nZURldGFpbCBhcyBJTWROdW1iZXJGaWVsZE1kTnVtYmVyRmllbGRDaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTnVtYmVyRmllbGQgZXh0ZW5kcyBDb21wb25lbnRzLk1kTnVtYmVyRmllbGQge1xuICAvKipcbiAgICogRmlyZXMgb24gZXZlcnkgdmFsdWUgY2hhbmdlICh0eXBpbmcgaW5jbHVkZWQpLlxuICAgKi9cbiAgbWRJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZE51bWJlckZpZWxkTWROdW1iZXJGaWVsZENoYW5nZURldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgYXQgY29tbWl0IHBvaW50czogYmx1ci9FbnRlciByZWZvcm1hdCwgc3RlcHBpbmcsIHdoZWVsLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWROdW1iZXJGaWVsZE1kTnVtYmVyRmllbGRDaGFuZ2VEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhpcyBjb250cm9sJ3MgdmFsaWRpdHkgQ0hBTkdFUyDigJQgbmV2ZXIgb24gZXZlcnkga2V5c3Ryb2tlLCBhbmRcbm5ldmVyIGZvciBhIHJlLXB1Ymxpc2ggdGhhdCBsYW5kcyBvbiB0aGUgc2FtZSBzdGF0ZS5cblxuYGNvbXBvc2VkOiBmYWxzZWAgaXMgZGVsaWJlcmF0ZS4gQ29tcG9zaXRlcyBlbWJlZGRpbmcgYSBmaWVsZCB3b3VsZFxub3RoZXJ3aXNlIGhlYXIgdHdvIGV2ZW50cyBmb3Igb25lIGxvZ2ljYWwgY29udHJvbDsgYGJ1YmJsZXM6IHRydWVgIHN0aWxsXG5sZXRzIGEgYDxmb3JtPmAgb3IgYXBwIHJvb3QgaGVhciBldmVyeSBjb250cm9sLlxuICAgKi9cbiAgbWRWYWxpZGl0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsaWQ6IGJvb2xlYW47IHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmc7IGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRPcmdhbml6YXRpb25DaGFydCxcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlTGFiZWwnLCAnY29sbGFwc2libGUnLCAnZGVuc2l0eScsICdleHBhbmRMYWJlbCcsICdsYWJlbCcsICdub2RlcycsICdvcmllbnRhdGlvbicsICdzZWxlY3RlZElkcycsICdzZWxlY3Rpb25Nb2RlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1vcmdhbml6YXRpb24tY2hhcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlTGFiZWwnLCAnY29sbGFwc2libGUnLCAnZGVuc2l0eScsICdleHBhbmRMYWJlbCcsICdsYWJlbCcsICdub2RlcycsICdvcmllbnRhdGlvbicsICdzZWxlY3RlZElkcycsICdzZWxlY3Rpb25Nb2RlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRPcmdhbml6YXRpb25DaGFydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kU2VsZWN0aW9uQ2hhbmdlJywgJ21kTm9kZVRvZ2dsZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgT3JnQ2hhcnRTZWxlY3Rpb25DaGFuZ2VEZXRhaWwgYXMgSU1kT3JnYW5pemF0aW9uQ2hhcnRPcmdDaGFydFNlbGVjdGlvbkNoYW5nZURldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBPcmdDaGFydFRvZ2dsZURldGFpbCBhcyBJTWRPcmdhbml6YXRpb25DaGFydE9yZ0NoYXJ0VG9nZ2xlRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZE9yZ2FuaXphdGlvbkNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5NZE9yZ2FuaXphdGlvbkNoYXJ0IHtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIHNlbGVjdGlvbiBjaGFuZ2VzLlxuICAgKi9cbiAgbWRTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRPcmdhbml6YXRpb25DaGFydE9yZ0NoYXJ0U2VsZWN0aW9uQ2hhbmdlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIGEgbm9kZSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWQuXG4gICAqL1xuICBtZE5vZGVUb2dnbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRPcmdhbml6YXRpb25DaGFydE9yZ0NoYXJ0VG9nZ2xlRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZE90cEZpZWxkLFxuICBpbnB1dHM6IFsnYXV0b1N1Ym1pdCcsICdjZWxsTGFiZWxUZW1wbGF0ZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdncm91cFNpemUnLCAnaW5jb21wbGV0ZUxhYmVsJywgJ2lucHV0TW9kZScsICdsYWJlbCcsICdsZW5ndGgnLCAnbWFzaycsICduYW1lJywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAnc3VwcG9ydGluZ1RleHQnLCAndHJhbnNmb3JtJywgJ3ZhbGlkYXRpb25UeXBlJywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnY2xlYXInLCAnZ2V0VmFsaWRpdHknLCAnc2V0Q3VzdG9tVmFsaWRpdHknLCAnY2hlY2tWYWxpZGl0eScsICdyZXBvcnRWYWxpZGl0eSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtb3RwLWZpZWxkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvU3VibWl0JywgJ2NlbGxMYWJlbFRlbXBsYXRlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2dyb3VwU2l6ZScsICdpbmNvbXBsZXRlTGFiZWwnLCAnaW5wdXRNb2RlJywgJ2xhYmVsJywgJ2xlbmd0aCcsICdtYXNrJywgJ25hbWUnLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdzdXBwb3J0aW5nVGV4dCcsICd0cmFuc2Zvcm0nLCAndmFsaWRhdGlvblR5cGUnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZE90cEZpZWxkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRJbnB1dCcsICdtZENoYW5nZScsICdtZENvbXBsZXRlJywgJ21kSW52YWxpZElucHV0JywgJ21kVmFsaWRpdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kT3RwRmllbGRDb21wbGV0ZURldGFpbCBhcyBJTWRPdHBGaWVsZE1kT3RwRmllbGRDb21wbGV0ZURldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZE90cEZpZWxkSW52YWxpZERldGFpbCBhcyBJTWRPdHBGaWVsZE1kT3RwRmllbGRJbnZhbGlkRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kT3RwRmllbGRWYWxpZGl0eURldGFpbCBhcyBJTWRPdHBGaWVsZE1kT3RwRmllbGRWYWxpZGl0eURldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRPdHBGaWVsZCBleHRlbmRzIENvbXBvbmVudHMuTWRPdHBGaWVsZCB7XG4gIC8qKlxuICAgKiBGaXJlcyBvbiBldmVyeSB2YWx1ZSBjaGFuZ2UgZnJvbSB1c2VyIGlucHV0ICh0eXBpbmcsIGNsZWFyaW5nLCBwYXN0ZSwgYXV0b2ZpbGwpLlxuICAgKi9cbiAgbWRJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQ29tbWl0IGV2ZW50OiBmaXJlcyB3aGVuIHRoZSBjb2RlIGJlY29tZXMgY29tcGxldGUgYW5kIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSB3aG9sZSBncm91cC5cbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIGV2ZXJ5IGNlbGwgaXMgZmlsbGVkLiBBIGNvbXBsZXRlIHBhc3RlIHJlLWZpcmVzIGl0IGV2ZW4gaWYgdGhlIHZhbHVlIGlzIHVuY2hhbmdlZC5cbiAgICovXG4gIG1kQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRPdHBGaWVsZE1kT3RwRmllbGRDb21wbGV0ZURldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0eXBlZC9wYXN0ZWQgY2hhcmFjdGVycyBhcmUgcmVqZWN0ZWQgYnkgdGhlIGB2YWxpZGF0aW9uVHlwZWAgY2hhcnNldC5cbiAgICovXG4gIG1kSW52YWxpZElucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kT3RwRmllbGRNZE90cEZpZWxkSW52YWxpZERldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBtb3VudCwgbmV2ZXIgZm9yIGFcbnJlLXB1Ymxpc2ggbGFuZGluZyBvbiB0aGUgc2FtZSBzdGF0ZS4gYGNvbXBvc2VkOiBmYWxzZWAgYnkgdGhlIGxpYnJhcnlcbmNvbnZlbnRpb246IGVhY2ggY29udHJvbCByZXBvcnRzIG9ubHkgZm9yIGl0c2VsZjsgYGJ1YmJsZXM6IHRydWVgIHN0aWxsXG5yZWFjaGVzIGA8Zm9ybT5gLWxldmVsIGxpc3RlbmVycyBpbiB0aGUgc2FtZSBET00gdHJlZS5cbiAgICovXG4gIG1kVmFsaWRpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRPdHBGaWVsZE1kT3RwRmllbGRWYWxpZGl0eURldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRQaWVDaGFydCxcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhbmltYXRpb25EdXJhdGlvbicsICdjb3JuZXJSYWRpdXMnLCAnZGF0YScsICdkZW5zaXR5JywgJ2VuZEFuZ2xlJywgJ2dyYWRpZW50JywgJ2hlaWdodFByb3AnLCAnaGlnaGxpZ2h0JywgJ2lubmVyUmFkaXVzJywgJ2xhYmVsJywgJ2xhYmVsRW1wdHknLCAnbGFiZWxNb2RlJywgJ2xhYmVsUGxvdCcsICdsYWJlbFBvaW50JywgJ2xlZ2VuZCcsICdsb2FkaW5nJywgJ2xvYWRpbmdMYWJlbCcsICdsb2NhbGUnLCAnbW9ub2Nocm9tZScsICdub0FuaW1hdGlvbicsICdvdXRlclJhZGl1cycsICdwYWRkaW5nQW5nbGUnLCAncmluZ1dpZHRocycsICdzaG93TGFiZWxzJywgJ3N0YXJ0QW5nbGUnLCAnc3VidGl0bGUnLCAnc3VtbWFyeScsICd0YWJsZUxhYmVscycsICd0aXRsZUFsaWduJywgJ3Rvb2x0aXAnLCAndG9vbHRpcFJlbmRlcmVyJywgJ3ZhbHVlRm9ybWF0dGVyJ10sXG4gIG1ldGhvZHM6IFsncmVmcmVzaFRoZW1lJywgJ3Jlc2l6ZScsICdyZXBsYXknLCAnZHJpbGwnLCAndG9EYXRhVVJMJywgJ2dldEluc3RhbmNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1waWUtY2hhcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhbmltYXRpb25EdXJhdGlvbicsICdjb3JuZXJSYWRpdXMnLCAnZGF0YScsICdkZW5zaXR5JywgJ2VuZEFuZ2xlJywgJ2dyYWRpZW50JywgJ2hlaWdodFByb3AnLCAnaGlnaGxpZ2h0JywgJ2lubmVyUmFkaXVzJywgJ2xhYmVsJywgJ2xhYmVsRW1wdHknLCAnbGFiZWxNb2RlJywgJ2xhYmVsUGxvdCcsICdsYWJlbFBvaW50JywgJ2xlZ2VuZCcsICdsb2FkaW5nJywgJ2xvYWRpbmdMYWJlbCcsICdsb2NhbGUnLCAnbW9ub2Nocm9tZScsICdub0FuaW1hdGlvbicsICdvdXRlclJhZGl1cycsICdwYWRkaW5nQW5nbGUnLCAncmluZ1dpZHRocycsICdzaG93TGFiZWxzJywgJ3N0YXJ0QW5nbGUnLCAnc3VidGl0bGUnLCAnc3VtbWFyeScsICd0YWJsZUxhYmVscycsICd0aXRsZUFsaWduJywgJ3Rvb2x0aXAnLCAndG9vbHRpcFJlbmRlcmVyJywgJ3ZhbHVlRm9ybWF0dGVyJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRQaWVDaGFydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kU2xpY2VDbGljaycsICdtZExlZ2VuZENsaWNrJywgJ21kUmVhZHknXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kQ2hhcnRDbGlja0RldGFpbCBhcyBJTWRQaWVDaGFydE1kQ2hhcnRDbGlja0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZFBpZURhdHVtIGFzIElNZFBpZUNoYXJ0TWRQaWVEYXR1bSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRQaWVDaGFydCBleHRlbmRzIENvbXBvbmVudHMuTWRQaWVDaGFydCB7XG5cbiAgbWRTbGljZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kUGllQ2hhcnRNZENoYXJ0Q2xpY2tEZXRhaWw8SU1kUGllQ2hhcnRNZFBpZURhdHVtPj4+O1xuXG4gIG1kTGVnZW5kQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGRhdGFJbmRleDogbnVtYmVyOyBzZWxlY3RlZDogYm9vbGVhbiB9Pj47XG5cbiAgbWRSZWFkeTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kUHJvZ3Jlc3NJbmRpY2F0b3IsXG4gIGlucHV0czogWydjb21wbGV0ZScsICdkZW5zaXR5JywgJ2ZvdXJDb2xvcicsICdpbmRldGVybWluYXRlJywgJ2xhYmVsJywgJ21heCcsICdzaXplJywgJ3RoaWNrbmVzcycsICd2YWx1ZScsICd2YXJpYW50JywgJ3dhdmUnLCAnd2F2ZUFtcGxpdHVkZScsICd3YXZlTGVuZ3RoJywgJ3dhdmVTcGVlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtcHJvZ3Jlc3MtaW5kaWNhdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb21wbGV0ZScsICdkZW5zaXR5JywgJ2ZvdXJDb2xvcicsICdpbmRldGVybWluYXRlJywgJ2xhYmVsJywgJ21heCcsICdzaXplJywgJ3RoaWNrbmVzcycsICd2YWx1ZScsICd2YXJpYW50JywgJ3dhdmUnLCAnd2F2ZUFtcGxpdHVkZScsICd3YXZlTGVuZ3RoJywgJ3dhdmVTcGVlZCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kUHJvZ3Jlc3NJbmRpY2F0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENvbXBsZXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kUHJvZ3Jlc3NJbmRpY2F0b3IgZXh0ZW5kcyBDb21wb25lbnRzLk1kUHJvZ3Jlc3NJbmRpY2F0b3Ige1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgY29tcGxldGlvbiBhbmltYXRpb24gZmluaXNoZXMgKGFuZCB0aGUgaW5kaWNhdG9yIGhhcyBoaWRkZW5cbml0c2VsZiwgb3Ig4oCUIGZvciBmbGF0IGNpcmN1bGFyIOKAlCBzZXR0bGVkIG9uIGl0cyBlbXB0eSB0cmFjayByaW5nKS5cbiAgICovXG4gIG1kQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFJhZGlvLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc29mdERpc2FibGVkJywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJ10sXG4gIG1ldGhvZHM6IFsnc3luY1ZhbGlkaXR5RnJvbUdyb3VwJywgJ2dldFZhbGlkaXR5JywgJ2NoZWNrVmFsaWRpdHknLCAncmVwb3J0VmFsaWRpdHknLCAnc2V0Q3VzdG9tVmFsaWRpdHknLCAnc2V0Rm9jdXMnLCAnc2V0Qmx1cicsICdzZWxlY3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnbmFtZScsICdyZXF1aXJlZCcsICdzb2Z0RGlzYWJsZWQnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFJhZGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnLCAnbWRGb2N1cycsICdtZEJsdXInLCAnbWRWYWxpZGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5NZFJhZGlvIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNoZWNrZWQgc3RhdGUgY2hhbmdlcyB2aWEgdXNlciBpbnRlcmFjdGlvblxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNoZWNrZWQ6IGJvb2xlYW47IHZhbHVlOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgcmFkaW8gcmVjZWl2ZXMgZm9jdXNcbiAgICovXG4gIG1kRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSByYWRpbyBsb3NlcyBmb2N1c1xuICAgKi9cbiAgbWRCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFJhdGluZyxcbiAgaW5wdXRzOiBbJ2RlZmF1bHRWYWx1ZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2VtcHR5SWNvbicsICdnZXRMYWJlbCcsICdob3ZlcicsICdpY29uJywgJ21heCcsICduYW1lJywgJ291dGxpbmVFbXB0eScsICdwcmVjaXNpb24nLCAncmF0aW5nTGFiZWwnLCAncmVhZG9ubHknLCAnc2hvd1ZhbHVlTGFiZWwnLCAnc2l6ZScsICdzb2Z0RGlzYWJsZWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydmb2N1c1JhdGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtcmF0aW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWZhdWx0VmFsdWUnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlbXB0eUljb24nLCAnZ2V0TGFiZWwnLCAnaG92ZXInLCAnaWNvbicsICdtYXgnLCAnbmFtZScsICdvdXRsaW5lRW1wdHknLCAncHJlY2lzaW9uJywgJ3JhdGluZ0xhYmVsJywgJ3JlYWRvbmx5JywgJ3Nob3dWYWx1ZUxhYmVsJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRSYXRpbmcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZEhvdmVyJywgJ21kQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kUmF0aW5nIGV4dGVuZHMgQ29tcG9uZW50cy5NZFJhdGluZyB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGlsZSB0aGUgdXNlciBpcyBob3ZlcmluZyAob3IgYG51bGxgIHdoZW4gdGhlIGN1cnNvciBsZWF2ZXMpLlxuICAgKi9cbiAgbWRIb3ZlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlciB8IG51bGw+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW5ldmVyIHRoZSB2YWx1ZSBjaGFuZ2VzIHZpYSBpbnRlcmFjdGlvbi5cbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFJpcHBsZSxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ10sXG4gIG1ldGhvZHM6IFsnd2hlblNldHRsZWQnLCAndHJpZ2dlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtcmlwcGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kUmlwcGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRSaXBwbGUgZXh0ZW5kcyBDb21wb25lbnRzLk1kUmlwcGxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNlYXJjaCxcbiAgaW5wdXRzOiBbJ2Fubm91bmNlUmVzdWx0cycsICdkZWJvdW5jZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Rpc21pc3NPbk91dHNpZGVDbGljaycsICdlbGV2YXRpb24nLCAnZXNjYXBlQ2xvc2VzJywgJ2Z1bGxXaWR0aCcsICdpbml0aWFsRm9jdXMnLCAnaW5wdXRBcmlhTGFiZWwnLCAnbGF5b3V0JywgJ2xlYWRpbmdJY29uJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ21heEJsb2NrU2l6ZScsICdub1Jlc3VsdHNMYWJlbCcsICdvcGVuJywgJ29wZW5MZWFkaW5nSWNvbicsICdwbGFjZWhvbGRlcicsICdyZXN1bHRzTGFiZWwnLCAnc2Nyb2xsU2hhZG93JywgJ3Nob3dDbGVhckJ1dHRvbicsICd0aHJvdHRsZScsICd0cmlnZ2VyJywgJ3RyaWdnZXJFbGVtZW50JywgJ3RyaWdnZXJGb3InLCAndHJpZ2dlckljb24nLCAndmFsdWUnLCAndmFyaWFudCcsICd2b2ljZVNlYXJjaCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnLCAndG9nZ2xlJywgJ2ZvY3VzSW5wdXQnLCAnc3RhcnRWb2ljZScsICdzdG9wVm9pY2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXNlYXJjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5ub3VuY2VSZXN1bHRzJywgJ2RlYm91bmNlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZGlzbWlzc09uT3V0c2lkZUNsaWNrJywgJ2VsZXZhdGlvbicsICdlc2NhcGVDbG9zZXMnLCAnZnVsbFdpZHRoJywgJ2luaXRpYWxGb2N1cycsICdpbnB1dEFyaWFMYWJlbCcsICdsYXlvdXQnLCAnbGVhZGluZ0ljb24nLCAnbG9hZGluZycsICdsb2FkaW5nTGFiZWwnLCAnbWF4QmxvY2tTaXplJywgJ25vUmVzdWx0c0xhYmVsJywgJ29wZW4nLCAnb3BlbkxlYWRpbmdJY29uJywgJ3BsYWNlaG9sZGVyJywgJ3Jlc3VsdHNMYWJlbCcsICdzY3JvbGxTaGFkb3cnLCAnc2hvd0NsZWFyQnV0dG9uJywgJ3Rocm90dGxlJywgJ3RyaWdnZXInLCAndHJpZ2dlckVsZW1lbnQnLCAndHJpZ2dlckZvcicsICd0cmlnZ2VySWNvbicsICd2YWx1ZScsICd2YXJpYW50JywgJ3ZvaWNlU2VhcmNoJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRTZWFyY2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZElucHV0JywgJ21kU2VhcmNoJywgJ21kU3VibWl0JywgJ21kQ2hhbmdlJywgJ21kT3BlbicsICdtZENsb3NlJywgJ21kQ2xlYXInLCAnbWRWb2ljZScsICdtZExlYWRpbmdJY29uQ2xpY2snLCAnbWRUcmFpbGluZ0ljb25DbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRTZWFyY2hMZWFkaW5nSWNvbkNsaWNrRGV0YWlsIGFzIElNZFNlYXJjaE1kU2VhcmNoTGVhZGluZ0ljb25DbGlja0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZFNlYXJjaFRyYWlsaW5nSWNvbkNsaWNrRGV0YWlsIGFzIElNZFNlYXJjaE1kU2VhcmNoVHJhaWxpbmdJY29uQ2xpY2tEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kU2VhcmNoIGV4dGVuZHMgQ29tcG9uZW50cy5NZFNlYXJjaCB7XG4gIC8qKlxuICAgKiBGaXJlcyBvbiBldmVyeSBpbnB1dCBjaGFuZ2UgKGltbWVkaWF0ZSwgZXZlcnkga2V5c3Ryb2tlKS5cbiAgICovXG4gIG1kSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogRGVib3VuY2VkLCBkZS1kdXBsaWNhdGVkIHF1ZXJ5IGV2ZW50IOKAlCB0aGUgb25lIHRvIHdpcmUgYW4gYXN5bmMgcmVzdWx0c1xuZmV0Y2ggdG8uIEhvbm91cnMgYGRlYm91bmNlYCAvIGB0aHJvdHRsZWAgYW5kIGFwcGxpZXMgYVxuZGlzdGluY3QtdW50aWwtY2hhbmdlZCBndWFyZCBvbiB0aGUgdHJpbW1lZCBxdWVyeSAoc28gcmUtdHlwaW5nIHRoZSBzYW1lXG50ZXJtLCBvciBvbmx5IGFkZGluZyBzdXJyb3VuZGluZyB3aGl0ZXNwYWNlLCB3b24ndCByZS10cmlnZ2VyIGEgZmV0Y2gpLlxuUHJlc3NpbmcgRW50ZXIgb3IgY2xlYXJpbmcgdGhlIGZpZWxkIGZsdXNoZXMgaXQgaW1tZWRpYXRlbHkuXG4gICAqL1xuICBtZFNlYXJjaDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIHByZXNzZXMgRW50ZXIgdG8gc3VibWl0IGEgcXVlcnkuXG4gICAqL1xuICBtZFN1Ym1pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cyB3aXRoIGEgZGlmZmVyZW50IHZhbHVlIHRoYW4gb24gZm9jdXMuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBwYW5lbCBvcGVucy5cbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHBhbmVsIGNsb3Nlcy5cbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGUgY2xlYXIgKMOXKSBidXR0b24uXG4gICAqL1xuICBtZENsZWFyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hpbGUgdm9pY2Ugc2VhcmNoIGlzIGFjdGl2ZSBhcyB0aGUgdHJhbnNjcmlwdCBzdHJlYW1zIGluLiBgdmFsdWVgXG5pcyB0aGUgY3VycmVudCAoaW50ZXJpbSBvciBmaW5hbCkgdHJhbnNjcmlwdDsgYGZpbmFsYCBpcyBgdHJ1ZWAgb24gdGhlXG5yZWNvZ25pc2VkIGZpbmFsIHJlc3VsdC4gVGhlIGNvbXBvbmVudCBhbHJlYWR5IG1pcnJvcnMgdGhlIHRyYW5zY3JpcHQgaW50b1xudGhlIGlucHV0IGFuZCBmaXJlcyBgbWRJbnB1dGAgLyBgbWRTZWFyY2hgLCBzbyBsaXN0ZW4gdG8gdGhpcyBvbmx5IGlmIHlvdVxubmVlZCB2b2ljZS1zcGVjaWZpYyBVSSAoZS5nLiBhIHRyYW5zY3JpcHQgcHJldmlldykuXG4gICAqL1xuICBtZFZvaWNlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nOyBmaW5hbDogYm9vbGVhbiB9Pj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBpbnRlcmFjdGl2ZSBsZWFkaW5nIGFmZm9yZGFuY2UgaXMgY2xpY2tlZCDigJQgdGhlIG1vcnBoaW5nXG5iYWNrIC8gZGlzbWlzcyBidXR0b24gd2hpbGUgdGhlIGJhciBpcyBvcGVuLCBvciBhIGN1c3RvbSBzbG90dGVkIGBsZWFkaW5nYFxuaWNvbi4gVGhlIGRlZmF1bHQgYmFjayBidXR0b24gc3RpbGwgZGlzbWlzc2VzIHRoZSBwYW5lbCBhcyBiZWZvcmU7IHRoaXNcbmV2ZW50IGlzIGFkZGl0aXZlLiBUaGUgY2xvc2VkIHJlc3Rpbmcgc2VhcmNoIGdseXBoIGlzIGludGVudGlvbmFsbHkgTk9UIGFcbmNsaWNrIHRhcmdldCAoYSBjbGljayB0aGVyZSBmb2N1c2VzIHRoZSBpbnB1dCksIHNvIGl0IGRvZXMgbm90IGVtaXQuXG4gICAqL1xuICBtZExlYWRpbmdJY29uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRTZWFyY2hNZFNlYXJjaExlYWRpbmdJY29uQ2xpY2tEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gYSBzbG90dGVkIGB0cmFpbGluZ2AgYWZmb3JkYW5jZSBpcyBjbGlja2VkLiBUaGUgYnVpbHQtaW4gY2xlYXJcbijDlykgYW5kIHZvaWNlIChtaWMpIGJ1dHRvbnMgb3duIHRoZWlyIGRlZGljYXRlZCBgbWRDbGVhcmAgLyBgbWRWb2ljZWBcbmV2ZW50cyBhbmQgZG8gTk9UIHRyaWdnZXIgdGhpcy4gT25seSBlbWl0dGVkIHdoZW4gc2xvdHRlZCB0cmFpbGluZyBjb250ZW50XG5pcyBhY3R1YWxseSBwcmVzZW50IGFuZCB3YXMgdGhlIGNsaWNrIHRhcmdldC5cbiAgICovXG4gIG1kVHJhaWxpbmdJY29uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRTZWFyY2hNZFNlYXJjaFRyYWlsaW5nSWNvbkNsaWNrRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNlZ21lbnRlZEJ1dHRvbixcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbicsICdsYWJlbCcsICdub0NoZWNrbWFyaycsICdyaXBwbGUnLCAnc2VnbWVudERlbnNpdHknLCAnc2VnbWVudEluZGV4JywgJ3NlZ21lbnRNdWx0aXNlbGVjdCcsICdzZWdtZW50VG90YWwnLCAnc2VsZWN0ZWQnLCAnc29mdERpc2FibGVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zZWdtZW50ZWQtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnbGFiZWwnLCAnbm9DaGVja21hcmsnLCAncmlwcGxlJywgJ3NlZ21lbnREZW5zaXR5JywgJ3NlZ21lbnRJbmRleCcsICdzZWdtZW50TXVsdGlzZWxlY3QnLCAnc2VnbWVudFRvdGFsJywgJ3NlbGVjdGVkJywgJ3NvZnREaXNhYmxlZCcsICd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU2VnbWVudGVkQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRTZWdtZW50Q2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTZWdtZW50ZWRCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLk1kU2VnbWVudGVkQnV0dG9uIHtcbiAgLyoqXG4gICAqIEludGVybmFsIGV2ZW50IOKAlCBjYXVnaHQgYnkgdGhlIHNldFxuICAgKi9cbiAgbWRTZWdtZW50Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmc7IHNlbGVjdGVkOiBib29sZWFuIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU2VnbWVudGVkQnV0dG9uU2V0LFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdtdWx0aXNlbGVjdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc2VnbWVudGVkLWJ1dHRvbi1zZXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnbXVsdGlzZWxlY3QnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFNlZ21lbnRlZEJ1dHRvblNldCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kU2VnbWVudGVkQnV0dG9uU2V0IGV4dGVuZHMgQ29tcG9uZW50cy5NZFNlZ21lbnRlZEJ1dHRvblNldCB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBzZXQgb2Ygc2VsZWN0ZWQgc2VnbWVudCB2YWx1ZXMgY2hhbmdlc1xuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmdbXT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTZWxlY3QsXG4gIGlucHV0czogWydjbGVhckljb24nLCAnY2xlYXJMYWJlbCcsICdjbGVhcmFibGUnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkcm9wZG93bkljb24nLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2ZpbHRlckxhYmVsJywgJ2ZpbHRlck1vZGUnLCAnZmlsdGVyYWJsZScsICdmdWxsV2lkdGgnLCAnbGFiZWwnLCAnbG9hZGluZycsICdsb2FkaW5nVGV4dCcsICdtYXRjaFRyaWdnZXJXaWR0aCcsICdtYXhIZWlnaHQnLCAnbmFtZScsICdub09wdGlvbnNUZXh0JywgJ25vUmVzdWx0c1RleHQnLCAnb3BlbicsICdvcHRpb25zJywgJ3BsYWNlaG9sZGVyJywgJ3BsYWNlbWVudCcsICdyZXF1aXJlZCcsICdyZXNlcnZlU3VwcG9ydGluZ1NwYWNlJywgJ3Jvd0hlaWdodCcsICdzZWFyY2hQbGFjZWhvbGRlcicsICdzZWFyY2hpbmdMYWJlbCcsICdzdXBwb3J0aW5nVGV4dCcsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCcsICd2YXJpYW50JywgJ3ZpcnR1YWxpemUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2Nsb3NlJywgJ2ZvY3VzVHJpZ2dlcicsICdyZXNldCcsICdsb2FkT3B0aW9ucycsICdzZXRRdWVyeScsICdnZXRMYWJlbHMnLCAnZ2V0VmFsaWRpdHknLCAnY2hlY2tWYWxpZGl0eScsICdyZXBvcnRWYWxpZGl0eScsICdzZXRDdXN0b21WYWxpZGl0eSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc2VsZWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGVhckljb24nLCAnY2xlYXJMYWJlbCcsICdjbGVhcmFibGUnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkcm9wZG93bkljb24nLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2ZpbHRlckxhYmVsJywgJ2ZpbHRlck1vZGUnLCAnZmlsdGVyYWJsZScsICdmdWxsV2lkdGgnLCAnbGFiZWwnLCAnbG9hZGluZycsICdsb2FkaW5nVGV4dCcsICdtYXRjaFRyaWdnZXJXaWR0aCcsICdtYXhIZWlnaHQnLCAnbmFtZScsICdub09wdGlvbnNUZXh0JywgJ25vUmVzdWx0c1RleHQnLCAnb3BlbicsICdvcHRpb25zJywgJ3BsYWNlaG9sZGVyJywgJ3BsYWNlbWVudCcsICdyZXF1aXJlZCcsICdyZXNlcnZlU3VwcG9ydGluZ1NwYWNlJywgJ3Jvd0hlaWdodCcsICdzZWFyY2hQbGFjZWhvbGRlcicsICdzZWFyY2hpbmdMYWJlbCcsICdzdXBwb3J0aW5nVGV4dCcsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCcsICd2YXJpYW50JywgJ3ZpcnR1YWxpemUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2hhbmdlJywgJ21kT3BlbicsICdtZENsb3NlJywgJ21kVmFsaWRpdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLk1kU2VsZWN0IHtcbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBuZXdseSBzZWxlY3RlZCB2YWx1ZSB3aGVuZXZlciB0aGUgc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgZHJvcGRvd24gb3BlbnMuXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBkcm9wZG93biBjbG9zZXMuXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNlbGVjdE9wdGlvbixcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ2xhYmVsJywgJ3NlbGVjdGVkJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zZWxlY3Qtb3B0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpY29uJywgJ2ljb25Db2xvcicsICdsYWJlbCcsICdzZWxlY3RlZCcsICdzdXBwb3J0aW5nVGV4dCcsICd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU2VsZWN0T3B0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRTZWxlY3RPcHRpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTZWxlY3RPcHRpb24gZXh0ZW5kcyBDb21wb25lbnRzLk1kU2VsZWN0T3B0aW9uIHtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIG9wdGlvbiBtb3VudHMsIHVubW91bnRzLCBvciBpdHMgZGF0YSBjaGFuZ2VzIHNvIHRoZVxucGFyZW50IHBpY2tlciBjYW4gcmUtcmVhZCBpdHMgb3B0aW9uIHNldC5cbiAgICovXG4gIG1kU2VsZWN0T3B0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTaWRlU2hlZXQsXG4gIGlucHV0czogWydib3R0b21EaXZpZGVyJywgJ2Nsb3NlYWJsZScsICdkZW5zaXR5JywgJ2RldGFjaGVkJywgJ2hlYWRsaW5lJywgJ29wZW4nLCAnc2NyaW1EaXNtaXNzaWJsZScsICdzaGVldEFyaWFMYWJlbCcsICdzaG93QmFjaycsICdzaWRlJywgJ3RvcERpdmlkZXInLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXNpZGUtc2hlZXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JvdHRvbURpdmlkZXInLCAnY2xvc2VhYmxlJywgJ2RlbnNpdHknLCAnZGV0YWNoZWQnLCAnaGVhZGxpbmUnLCAnb3BlbicsICdzY3JpbURpc21pc3NpYmxlJywgJ3NoZWV0QXJpYUxhYmVsJywgJ3Nob3dCYWNrJywgJ3NpZGUnLCAndG9wRGl2aWRlcicsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRTaWRlU2hlZXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZE9wZW4nLCAnbWRDbG9zZScsICdtZENhbmNlbCcsICdtZEJhY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTaWRlU2hlZXQgZXh0ZW5kcyBDb21wb25lbnRzLk1kU2lkZVNoZWV0IHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHNoZWV0IG9wZW5zXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBzaGVldCBjbG9zZXNcbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGRpc21pc3NlZCB2aWEgc2NyaW0gY2xpY2sgb3IgRXNjYXBlXG4gICAqL1xuICBtZENhbmNlbDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGJhY2sgYnV0dG9uIGlzIHByZXNzZWQgKG1vZGFsIG9ubHkpXG4gICAqL1xuICBtZEJhY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNrZWxldG9uLFxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2Fubm91bmNlJywgJ2FyaWFMYWJlbFByb3AnLCAnZGVuc2l0eScsICdmdWxsSGVpZ2h0JywgJ2Z1bGxXaWR0aCcsICdoZWlnaHQnLCAnbGluZXMnLCAndmFyaWFudCcsICd3aWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc2tlbGV0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhbm5vdW5jZScsICdhcmlhTGFiZWxQcm9wJywgJ2RlbnNpdHknLCAnZnVsbEhlaWdodCcsICdmdWxsV2lkdGgnLCAnaGVpZ2h0JywgJ2xpbmVzJywgJ3ZhcmlhbnQnLCAnd2lkdGgnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFNrZWxldG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTa2VsZXRvbiBleHRlbmRzIENvbXBvbmVudHMuTWRTa2VsZXRvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTbGlkZXIsXG4gIGlucHV0czogWydhcmlhTGFiZWxFbmQnLCAnYXJpYUxhYmVsU3RhcnQnLCAnY29udHJvbGxlZCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Z1bGxIZWlnaHQnLCAnaWNvbicsICdpbnNldEljb24nLCAnbGFiZWxlZCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnbmFtZUVuZCcsICduYW1lU3RhcnQnLCAnb3JpZW50YXRpb24nLCAncmFuZ2UnLCAnc2l6ZScsICdzbGlkZXJBcmlhTGFiZWwnLCAnc3RlcCcsICdzdG9wcycsICd2YWx1ZScsICd2YWx1ZUVuZCcsICd2YWx1ZUVuZFRleHQnLCAndmFsdWVJbmRpY2F0b3InLCAndmFsdWVTdGFydCcsICd2YWx1ZVN0YXJ0VGV4dCcsICd2YWx1ZVRleHQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc2xpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcmlhTGFiZWxFbmQnLCAnYXJpYUxhYmVsU3RhcnQnLCAnY29udHJvbGxlZCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Z1bGxIZWlnaHQnLCAnaWNvbicsICdpbnNldEljb24nLCAnbGFiZWxlZCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnbmFtZUVuZCcsICduYW1lU3RhcnQnLCAnb3JpZW50YXRpb24nLCAncmFuZ2UnLCAnc2l6ZScsICdzbGlkZXJBcmlhTGFiZWwnLCAnc3RlcCcsICdzdG9wcycsICd2YWx1ZScsICd2YWx1ZUVuZCcsICd2YWx1ZUVuZFRleHQnLCAndmFsdWVJbmRpY2F0b3InLCAndmFsdWVTdGFydCcsICd2YWx1ZVN0YXJ0VGV4dCcsICd2YWx1ZVRleHQnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU2xpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRJbnB1dCcsICdtZENoYW5nZScsICdtZEZvY3VzJywgJ21kQmx1cicsICdtZERyYWdTdGFydCcsICdtZERyYWdFbmQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kU2xpZGVyVmFsdWVEZXRhaWwgYXMgSU1kU2xpZGVyTWRTbGlkZXJWYWx1ZURldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZFNsaWRlclRodW1iRGV0YWlsIGFzIElNZFNsaWRlck1kU2xpZGVyVGh1bWJEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRTbGlkZXJEcmFnRGV0YWlsIGFzIElNZFNsaWRlck1kU2xpZGVyRHJhZ0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTbGlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kU2xpZGVyIHtcbiAgLyoqXG4gICAqIEZpcmVzIGNvbnRpbnVvdXNseSB3aGlsZSB0aGUgdXNlciBkcmFncyBvciBwcmVzc2VzIGFycm93IGtleXMuXG4gICAqL1xuICBtZElucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kU2xpZGVyTWRTbGlkZXJWYWx1ZURldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgb25jZSB3aGVuIHRoZSB1c2VyIGNvbW1pdHMgYSB2YWx1ZSAocG9pbnRlciB1cCwga2V5Ym9hcmQgcmVsZWFzZSwgY2hhbmdlIGV2ZW50KS5cbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kU2xpZGVyTWRTbGlkZXJWYWx1ZURldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIHNsaWRlciB0aHVtYiByZWNlaXZlcyBmb2N1cy5cbiAgICovXG4gIG1kRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRTbGlkZXJNZFNsaWRlclRodW1iRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIGEgc2xpZGVyIHRodW1iIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgbWRCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kU2xpZGVyTWRTbGlkZXJUaHVtYkRldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIGRyYWcva2V5Ym9hcmQgaW50ZXJhY3Rpb24gYmVnaW5zLlxuICAgKi9cbiAgbWREcmFnU3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRTbGlkZXJNZFNsaWRlckRyYWdEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gYSBkcmFnL2tleWJvYXJkIGludGVyYWN0aW9uIGVuZHMuXG4gICAqL1xuICBtZERyYWdFbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRTbGlkZXJNZFNsaWRlckRyYWdEZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU25hY2tiYXIsXG4gIGlucHV0czogWydhY3Rpb24nLCAnYXV0b0hpZGUnLCAnYXV0b0hpZGVEdXJhdGlvbicsICdjbG9zZWFibGUnLCAnZGVuc2l0eScsICdkaXNtaXNzTGFiZWwnLCAnbWVzc2FnZScsICdvcGVuJywgJ3BvbGl0ZW5lc3MnLCAncG9zaXRpb24nLCAnc3RhY2tlZCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc25hY2tiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGlvbicsICdhdXRvSGlkZScsICdhdXRvSGlkZUR1cmF0aW9uJywgJ2Nsb3NlYWJsZScsICdkZW5zaXR5JywgJ2Rpc21pc3NMYWJlbCcsICdtZXNzYWdlJywgJ29wZW4nLCAncG9saXRlbmVzcycsICdwb3NpdGlvbicsICdzdGFja2VkJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRTbmFja2JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kT3BlbicsICdtZENsb3NlJywgJ21kQWN0aW9uJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kU25hY2tiYXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kU25hY2tiYXIge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgc25hY2tiYXIgYmVjb21lcyB2aXNpYmxlXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBzbmFja2JhciBpcyBkaXNtaXNzZWQsIHdpdGggcmVhc29uXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyByZWFzb246ICdhdXRvJyB8ICdhY3Rpb24nIHwgJ2Nsb3NlJyB9Pj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBhY3Rpb24gYnV0dG9uIGlzIGNsaWNrZWRcbiAgICovXG4gIG1kQWN0aW9uOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTcGFya2xpbmUsXG4gIGlucHV0czogWydiYXJXaWR0aCcsICdjb2xvcicsICdjb3JuZXJSYWRpdXMnLCAnY3VydmUnLCAnZGF0YScsICdoZWlnaHRQcm9wJywgJ2xhYmVscycsICdsaW5lV2lkdGgnLCAnbWFya1NpemUnLCAnbWF4JywgJ21pbicsICdub0FuaW1hdGlvbicsICdyZWZlcmVuY2VBcmVhcycsICdzaG93TWFya3MnLCAnc2hvd1Rvb2x0aXAnLCAndmFsdWVGb3JtYXR0ZXInLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3JlZnJlc2hUaGVtZScsICdyZXNpemUnLCAnZ2V0SW5zdGFuY2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXNwYXJrbGluZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFyV2lkdGgnLCAnY29sb3InLCAnY29ybmVyUmFkaXVzJywgJ2N1cnZlJywgJ2RhdGEnLCAnaGVpZ2h0UHJvcCcsICdsYWJlbHMnLCAnbGluZVdpZHRoJywgJ21hcmtTaXplJywgJ21heCcsICdtaW4nLCAnbm9BbmltYXRpb24nLCAncmVmZXJlbmNlQXJlYXMnLCAnc2hvd01hcmtzJywgJ3Nob3dUb29sdGlwJywgJ3ZhbHVlRm9ybWF0dGVyJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFNwYXJrbGluZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kU3BhcmtDbGljaycsICdtZFJlYWR5J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kU3BhcmtsaW5lIGV4dGVuZHMgQ29tcG9uZW50cy5NZFNwYXJrbGluZSB7XG5cbiAgbWRTcGFya0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBkYXRhSW5kZXg6IG51bWJlcjsgdmFsdWU6IG51bWJlciB8IG51bGwgfT4+O1xuXG4gIG1kUmVhZHk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNwbGl0QnV0dG9uLFxuICBpbnB1dHM6IFsnY29udHJvbHMnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdmdWxsV2lkdGgnLCAnaGFzcG9wdXAnLCAnaWNvbicsICdsYWJlbCcsICdtZW51TGFiZWwnLCAncmlwcGxlJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3RyYWlsaW5nQ2hlY2tlZCcsICd0cmFpbGluZ0ljb24nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc3BsaXQtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250cm9scycsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Z1bGxXaWR0aCcsICdoYXNwb3B1cCcsICdpY29uJywgJ2xhYmVsJywgJ21lbnVMYWJlbCcsICdyaXBwbGUnLCAnc2l6ZScsICdzb2Z0RGlzYWJsZWQnLCAndHJhaWxpbmdDaGVja2VkJywgJ3RyYWlsaW5nSWNvbicsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRTcGxpdEJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kTGVhZGluZ0NsaWNrJywgJ21kVHJhaWxpbmdDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNwbGl0QnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5NZFNwbGl0QnV0dG9uIHtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIGxlYWRpbmcgYnV0dG9uIGlzIGFjdGl2YXRlZFxuICAgKi9cbiAgbWRMZWFkaW5nQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSB0cmFpbGluZyBidXR0b24gaXMgdG9nZ2xlZFxuICAgKi9cbiAgbWRUcmFpbGluZ0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjaGVja2VkOiBib29sZWFuIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU3RhdHVzRG90LFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdpbmxpbmUnLCAnbGFiZWwnLCAnbGl2ZScsICdzaXplJywgJ3N0YXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zdGF0dXMtZG90JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2lubGluZScsICdsYWJlbCcsICdsaXZlJywgJ3NpemUnLCAnc3RhdGUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFN0YXR1c0RvdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kU3RhdHVzRG90IGV4dGVuZHMgQ29tcG9uZW50cy5NZFN0YXR1c0RvdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTdGVwLFxuICBpbnB1dHM6IFsnYWNjZXNzaWJsZU5hbWUnLCAnYWN0aXZlJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWRJY29uJywgJ2RlbnNpdHknLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZWRpdGFibGUnLCAnZXJyb3InLCAnZXJyb3JJY29uJywgJ2Vycm9yVGV4dCcsICdoaWRlQWN0aW9ucycsICdpY29uJywgJ2xhYmVsJywgJ29wdGlvbmFsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zdGVwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2Nlc3NpYmxlTmFtZScsICdhY3RpdmUnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZEljb24nLCAnZGVuc2l0eScsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlZGl0YWJsZScsICdlcnJvcicsICdlcnJvckljb24nLCAnZXJyb3JUZXh0JywgJ2hpZGVBY3Rpb25zJywgJ2ljb24nLCAnbGFiZWwnLCAnb3B0aW9uYWwnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFN0ZXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFN0ZXBDbGljaycsICdtZFN0ZXBOZXh0JywgJ21kU3RlcEJhY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTdGVwIGV4dGVuZHMgQ29tcG9uZW50cy5NZFN0ZXAge1xuICAvKipcbiAgICogQnViYmxlZCB0byB0aGUgcGFyZW50IHN0ZXBwZXIsIHdoaWNoIGRlY2lkZXMgd2hldGhlciB0aGUgbW92ZSBpcyBhbGxvd2VkLlxuSW50ZXJuYWwgY29vcmRpbmF0aW9uIGV2ZW50IOKAlCBjb25zdW1lZCAoYW5kIHN0b3BwZWQpIGJ5IGBtZC1zdGVwcGVyYC5cbiAgICovXG4gIG1kU3RlcENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyIH0+PjtcbiAgLyoqXG4gICAqIENvbnRpbnVlIHByZXNzZWQgaW4gdGhpcyBzdGVwJ3MgY29udGVudCBwYW5lbC4gQ29uc3VtZWQgYnkgYG1kLXN0ZXBwZXJgLlxuICAgKi9cbiAgbWRTdGVwTmV4dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaW5kZXg6IG51bWJlciB9Pj47XG4gIC8qKlxuICAgKiBCYWNrIHByZXNzZWQgaW4gdGhpcyBzdGVwJ3MgY29udGVudCBwYW5lbC4gQ29uc3VtZWQgYnkgYG1kLXN0ZXBwZXJgLlxuICAgKi9cbiAgbWRTdGVwQmFjazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaW5kZXg6IG51bWJlciB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFN0ZXBwZXIsXG4gIGlucHV0czogWydhY3RpdmUnLCAnYXV0b0NvbXBsZXRlJywgJ2JhY2tMYWJlbCcsICdjb21wbGV0ZWRXb3JkJywgJ2N1cnJlbnRXb3JkJywgJ2RlbnNpdHknLCAnZXJyb3JXb3JkJywgJ2ZpbmlzaExhYmVsJywgJ2luZGljYXRvcicsICdsYWJlbCcsICdsYXp5JywgJ2xvYWRpbmcnLCAnbW9kZScsICduYXYnLCAnbmV4dERpc2FibGVkJywgJ25leHRMYWJlbCcsICdvZldvcmQnLCAnb3B0aW9uYWxXb3JkJywgJ29yaWVudGF0aW9uJywgJ3N0ZXBXb3JkJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWyduZXh0JywgJ3ByZXYnLCAnZ29UbycsICdyZXNldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc3RlcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2F1dG9Db21wbGV0ZScsICdiYWNrTGFiZWwnLCAnY29tcGxldGVkV29yZCcsICdjdXJyZW50V29yZCcsICdkZW5zaXR5JywgJ2Vycm9yV29yZCcsICdmaW5pc2hMYWJlbCcsICdpbmRpY2F0b3InLCAnbGFiZWwnLCAnbGF6eScsICdsb2FkaW5nJywgJ21vZGUnLCAnbmF2JywgJ25leHREaXNhYmxlZCcsICduZXh0TGFiZWwnLCAnb2ZXb3JkJywgJ29wdGlvbmFsV29yZCcsICdvcmllbnRhdGlvbicsICdzdGVwV29yZCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRTdGVwcGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRCZWZvcmVDaGFuZ2UnLCAnbWRTdGVwQ2hhbmdlJywgJ21kQ29tcGxldGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTdGVwcGVyIGV4dGVuZHMgQ29tcG9uZW50cy5NZFN0ZXBwZXIge1xuICAvKipcbiAgICogRmlyZXMgQkVGT1JFIGEgdXNlci1kcml2ZW4gc3RlcCBjaGFuZ2UgY29tbWl0cyAoc3RlcCBjbGljaywgYnVpbHQtaW4gbmF2LCBvclxuYG5leHQoKWAvYHByZXYoKWAvYGdvVG8oKWApLiBDYW5jZWxhYmxlOiBjYWxsIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB0b1xudmV0byB0aGUgdHJhbnNpdGlvbiAoZS5nLiBibG9jayBDb250aW51ZSB1bnRpbCB0aGUgY3VycmVudCBzdGVwIHZhbGlkYXRlcykuXG5gZGV0YWlsLmluZGV4YCBpcyB0aGUgcmVxdWVzdGVkIHN0ZXAsIGBkZXRhaWwucHJldmlvdXNgIHRoZSBjdXJyZW50IG9uZS5cbkRvZXMgbm90IGZpcmUgZm9yIGEgZGlyZWN0IGBhY3RpdmVgIHByb3BlcnR5IGFzc2lnbm1lbnQg4oCUIHNldCBgYWN0aXZlYFxueW91cnNlbGYgdG8gY29tbWl0IGF1dGhvcml0YXRpdmVseSAoZS5nLiBhZnRlciBhc3luYyB2YWxpZGF0aW9uKS5cbiAgICovXG4gIG1kQmVmb3JlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyOyBwcmV2aW91czogbnVtYmVyIH0+PjtcbiAgLyoqXG4gICAqIEFjdGl2ZSBzdGVwIGNoYW5nZWQgKGFmdGVyIGl0IGNvbW1pdHMpLlxuICAgKi9cbiAgbWRTdGVwQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyOyBwcmV2aW91czogbnVtYmVyIH0+PjtcbiAgLyoqXG4gICAqIENvbnRpbnVlIHByZXNzZWQgb24gdGhlIGxhc3Qgc3RlcCAodGhlIGZsb3cgaXMgZmluaXNoZWQpLlxuICAgKi9cbiAgbWRDb21wbGV0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU3ViTWVudUl0ZW0sXG4gIGlucHV0czogWydiYWRnZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2RpdmlkZXInLCAnZ2FwJywgJ2hlYWRsaW5lJywgJ3N1cHBvcnRpbmdUZXh0J10sXG4gIG1ldGhvZHM6IFsnY29sbGFwc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXN1Yi1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhZGdlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZGl2aWRlcicsICdnYXAnLCAnaGVhZGxpbmUnLCAnc3VwcG9ydGluZ1RleHQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFN1Yk1lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFN1Yk1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5NZFN1Yk1lbnVJdGVtIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGl0ZW0gcm93IGl0c2VsZiBpcyBjbGlja2VkIChub3QgdGhlIHN1Ym1lbnUpLlxuICAgKi9cbiAgbWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU3dpdGNoLFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdpY29ucycsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NlbGVjdGVkJywgJ3NlbGVjdGVkSWNvbicsICdzaG93T25seVNlbGVjdGVkSWNvbicsICdzb2Z0RGlzYWJsZWQnLCAndW5zZWxlY3RlZEljb24nLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdnZXRWYWxpZGl0eScsICdjaGVja1ZhbGlkaXR5JywgJ3JlcG9ydFZhbGlkaXR5JywgJ3NldEN1c3RvbVZhbGlkaXR5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zd2l0Y2gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbnMnLCAnbmFtZScsICdyZXF1aXJlZCcsICdzZWxlY3RlZCcsICdzZWxlY3RlZEljb24nLCAnc2hvd09ubHlTZWxlY3RlZEljb24nLCAnc29mdERpc2FibGVkJywgJ3Vuc2VsZWN0ZWRJY29uJywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRTd2l0Y2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZElucHV0JywgJ21kQ2hhbmdlJywgJ21kVmFsaWRpdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTd2l0Y2ggZXh0ZW5kcyBDb21wb25lbnRzLk1kU3dpdGNoIHtcbiAgLyoqXG4gICAqIEZpcmVzICoqYmVmb3JlKiogdGhlIHN0YXRlIGNoYW5nZXMuIENhbGwgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHRvXG5ibG9jayB0aGUgaW50ZXJuYWwgdG9nZ2xlIGFuZCBtYW5hZ2Ugc3RhdGUgZXh0ZXJuYWxseSAoY29udHJvbGxlZCBtb2RlKS5cblxuYGBgdHNcbnN3aXRjaC5hZGRFdmVudExpc3RlbmVyKCdtZElucHV0JywgKGUpID0+IHtcbiAgZS5wcmV2ZW50RGVmYXVsdCgpOyAgICAgICAgICAvLyBwcmV2ZW50IGludGVybmFsIHRvZ2dsZVxuICBteVN0YXRlLnZhbHVlID0gZS5kZXRhaWwuc2VsZWN0ZWQ7IC8vIHVwZGF0ZSB5b3VyIG93biBzdGF0ZVxufSk7XG5gYGBcbiAgICovXG4gIG1kSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkOiBib29sZWFuIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzICoqYWZ0ZXIqKiB0aGUgaW50ZXJuYWwgc3RhdGUgaGFzIGNvbW1pdHRlZC4gVXNlIGZvciBzaWRlIGVmZmVjdHNcbmxpa2Ugc2F2aW5nIHByZWZlcmVuY2VzLCBhbmFseXRpY3MsIG9yIHN5bmNpbmcgd2l0aCBvdGhlciBjb21wb25lbnRzLlxuTm90IGNhbmNlbGFibGUg4oCUIHRoZSB0b2dnbGUgaGFzIGFscmVhZHkgaGFwcGVuZWQuXG5cbmBgYHRzXG5zd2l0Y2guYWRkRXZlbnRMaXN0ZW5lcignbWRDaGFuZ2UnLCAoZSkgPT4ge1xuICBjb25zb2xlLmxvZygnU3dpdGNoIGlzIG5vdycsIGUuZGV0YWlsLnNlbGVjdGVkID8gJ09OJyA6ICdPRkYnKTtcbn0pO1xuYGBgXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWQ6IGJvb2xlYW4gfT4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRhYixcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdiYWRnZScsICdjb250cm9scycsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaW5saW5lSWNvbicsICdsYWJlbCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdiYWRnZScsICdjb250cm9scycsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaW5saW5lSWNvbicsICdsYWJlbCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFRhYkNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFiIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYiB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSB0YWIgaXMgYWN0aXZhdGVkIGJ5IGNsaWNrIG9yIGtleWJvYXJkXG4gICAqL1xuICBtZFRhYkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJQYW5lbCxcbiAgaW5wdXRzOiBbJ2FjdGl2ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFiLXBhbmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYlBhbmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJQYW5lbCBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJQYW5lbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJQYW5lbHMsXG4gIGlucHV0czogWydmb3InLCAnc2l6aW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWItcGFuZWxzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmb3InLCAnc2l6aW5nJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJQYW5lbHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRhYlBhbmVscyBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJQYW5lbHMge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFibGUsXG4gIGlucHV0czogWydjYXB0aW9uJywgJ2NvbHVtblRlbXBsYXRlJywgJ2NvbHVtbnMnLCAnZGVuc2l0eScsICdlbXB0eScsICdmcm96ZW5IZWFkZXInLCAnaG92ZXJhYmxlJywgJ2tlZXBIZWlnaHQnLCAnbGFiZWwnLCAnbG9hZGluZycsICdsb2FkaW5nTW9kZScsICdsb2FkaW5nUm93cycsICdtaW5XaWR0aCcsICdtb3Rpb24nLCAnbm9EaXZpZGVycycsICdwaW5JY29uJywgJ3Bpbk1vZGUnLCAncm93Q291bnQnLCAncm93T2Zmc2V0JywgJ3Njcm9sbGJhcicsICdzZWxlY3Rpb24nLCAnc29ydEJ5JywgJ3NvcnRPcmRlcicsICdzdGlja3lGb290ZXInLCAnc3RpY2t5SGVhZGVyJywgJ3N0cmlwZWQnLCAnc3VtbWFyeSddLFxuICBtZXRob2RzOiBbJ2dldFNlbGVjdGlvbicsICdzZWxlY3RBbGwnLCAnZGVzZWxlY3RBbGwnLCAndG9nZ2xlU2VsZWN0QWxsJywgJ3NldFNvcnQnLCAncGluQ29sdW1uJywgJ3NldENvbHVtblZpc2liaWxpdHknLCAnYW5pbWF0ZU5leHRDaGFuZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXB0aW9uJywgJ2NvbHVtblRlbXBsYXRlJywgJ2NvbHVtbnMnLCAnZGVuc2l0eScsICdlbXB0eScsICdmcm96ZW5IZWFkZXInLCAnaG92ZXJhYmxlJywgJ2tlZXBIZWlnaHQnLCAnbGFiZWwnLCAnbG9hZGluZycsICdsb2FkaW5nTW9kZScsICdsb2FkaW5nUm93cycsICdtaW5XaWR0aCcsICdtb3Rpb24nLCAnbm9EaXZpZGVycycsICdwaW5JY29uJywgJ3Bpbk1vZGUnLCAncm93Q291bnQnLCAncm93T2Zmc2V0JywgJ3Njcm9sbGJhcicsICdzZWxlY3Rpb24nLCAnc29ydEJ5JywgJ3NvcnRPcmRlcicsICdzdGlja3lGb290ZXInLCAnc3RpY2t5SGVhZGVyJywgJ3N0cmlwZWQnLCAnc3VtbWFyeSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFNvcnRDaGFuZ2UnLCAnbWRTZWxlY3Rpb25DaGFuZ2UnLCAnbWRQaW5DaGFuZ2UnLCAnbWRDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlJywgJ21kU2Nyb2xsJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZFRhYmxlU29ydFN0YXRlIGFzIElNZFRhYmxlTWRUYWJsZVNvcnRTdGF0ZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZFRhYmxlU2VsZWN0aW9uU3RhdGUgYXMgSU1kVGFibGVNZFRhYmxlU2VsZWN0aW9uU3RhdGUgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGFibGUge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHNvcnQgY2hhbmdlcyAoYWZ0ZXIgYSBgbWQtdGFibGUtc29ydC1sYWJlbGAgaXMgY2xpY2tlZCkuXG4gICAqL1xuICBtZFNvcnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRUYWJsZU1kVGFibGVTb3J0U3RhdGU+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbmV2ZXIgdGhlIHJvdyBzZWxlY3Rpb24gc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gIG1kU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kVGFibGVNZFRhYmxlU2VsZWN0aW9uU3RhdGU+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSBjb2x1bW4gaXMgcGlubmVkL3VucGlubmVkIHZpYSBgcGluQ29sdW1uYC5cbiAgICovXG4gIG1kUGluQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjb2x1bW46IG51bWJlcjsgc2lkZTogJ3N0YXJ0JyB8ICdlbmQnIHwgbnVsbCB9Pj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgY29sdW1uIGlzIGhpZGRlbi9zaG93biB2aWEgYHNldENvbHVtblZpc2liaWxpdHlgLlxuICAgKi9cbiAgbWRDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjb2x1bW46IG51bWJlcjsgdmlzaWJsZTogYm9vbGVhbjsgaGlkZGVuOiBudW1iZXJbXSB9Pj47XG4gIC8qKlxuICAgKiByQUYtdGhyb3R0bGVkIHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgZnJvemVuIGJvZHkgc2Nyb2xsZXIuXG4gICAqL1xuICBtZFNjcm9sbDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2Nyb2xsTGVmdDogbnVtYmVyOyBzY3JvbGxUb3A6IG51bWJlciB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRhYmxlQm9keVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYmxlLWJvZHknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlQm9keSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGVCb2R5IGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYmxlQm9keSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZUNlbGwsXG4gIGlucHV0czogWydhbGlnbicsICdjb2xTcGFuJywgJ2RlbnNpdHknLCAnZWxsaXBzaXMnLCAnaGVhZCcsICdub1BpbkluZGljYXRvcicsICdudW1lcmljJywgJ3BhZGRpbmcnLCAncGluSWNvbicsICdyb3dTcGFuJywgJ3Njb3BlJywgJ3N0aWNreScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWJsZS1jZWxsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGlnbicsICdjb2xTcGFuJywgJ2RlbnNpdHknLCAnZWxsaXBzaXMnLCAnaGVhZCcsICdub1BpbkluZGljYXRvcicsICdudW1lcmljJywgJ3BhZGRpbmcnLCAncGluSWNvbicsICdyb3dTcGFuJywgJ3Njb3BlJywgJ3N0aWNreScsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJsZUNlbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRhYmxlQ2VsbCBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJsZUNlbGwge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFibGVDb250YWluZXIsXG4gIGlucHV0czogWydlbGV2YXRpb24nLCAnbWF4SGVpZ2h0JywgJ21pbkhlaWdodCcsICdzaGFwZScsICd2YXJpYW50JywgJ3ZpYnJhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYmxlLWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZWxldmF0aW9uJywgJ21heEhlaWdodCcsICdtaW5IZWlnaHQnLCAnc2hhcGUnLCAndmFyaWFudCcsICd2aWJyYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJsZUNvbnRhaW5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGVDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGFibGVDb250YWluZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFibGVFeHBhbmRUb2dnbGUsXG4gIGlucHV0czogWydidXR0b25MYWJlbCcsICdpY29uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWJsZS1leHBhbmQtdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydidXR0b25MYWJlbCcsICdpY29uJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJsZUV4cGFuZFRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGVFeHBhbmRUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGFibGVFeHBhbmRUb2dnbGUge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFibGVGb290XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUtZm9vdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGFibGVGb290IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJsZUZvb3QgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGFibGVGb290IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRhYmxlSGVhZFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYmxlLWhlYWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlSGVhZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGVIZWFkIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYmxlSGVhZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZVBhZ2luYXRpb24sXG4gIGlucHV0czogWydjb21wYWN0JywgJ2NvdW50JywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnbGFiZWxBbGwnLCAnbGFiZWxEaXNwbGF5ZWRSb3dzJywgJ2xhYmVsRmlyc3RQYWdlJywgJ2xhYmVsTGFzdFBhZ2UnLCAnbGFiZWxOZXh0UGFnZScsICdsYWJlbFByZXZpb3VzUGFnZScsICdsYWJlbFJvd3NQZXJQYWdlJywgJ3BhZ2UnLCAncm93c1BlclBhZ2UnLCAncm93c1BlclBhZ2VPcHRpb25zJywgJ3Nob3dGaXJzdExhc3QnXSxcbiAgbWV0aG9kczogWydnb1RvUGFnZScsICdzZXRSb3dzUGVyUGFnZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUtcGFnaW5hdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29tcGFjdCcsICdjb3VudCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2xhYmVsQWxsJywgJ2xhYmVsRGlzcGxheWVkUm93cycsICdsYWJlbEZpcnN0UGFnZScsICdsYWJlbExhc3RQYWdlJywgJ2xhYmVsTmV4dFBhZ2UnLCAnbGFiZWxQcmV2aW91c1BhZ2UnLCAnbGFiZWxSb3dzUGVyUGFnZScsICdwYWdlJywgJ3Jvd3NQZXJQYWdlJywgJ3Jvd3NQZXJQYWdlT3B0aW9ucycsICdzaG93Rmlyc3RMYXN0J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJsZVBhZ2luYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFBhZ2VDaGFuZ2UnLCAnbWRSb3dzUGVyUGFnZUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRhYmxlUGFnaW5hdGlvbiBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJsZVBhZ2luYXRpb24ge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgdXNlciBjaGFuZ2VzIHRoZSBwYWdlLlxuICAgKi9cbiAgbWRQYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBwYWdlOiBudW1iZXIgfT4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgdXNlciBjaGFuZ2VzIHJvd3MtcGVyLXBhZ2UuXG4gICAqL1xuICBtZFJvd3NQZXJQYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyByb3dzUGVyUGFnZTogbnVtYmVyIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFibGVSb3csXG4gIGlucHV0czogWydjbGlja2FibGUnLCAnZGlzYWJsZWQnLCAnZXhwYW5kYWJsZScsICdleHBhbmRlZCcsICdoaWdobGlnaHQnLCAncm93Z3JvdXAnLCAnc2VsZWN0YWJsZScsICdzZWxlY3RlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGlja2FibGUnLCAnZGlzYWJsZWQnLCAnZXhwYW5kYWJsZScsICdleHBhbmRlZCcsICdoaWdobGlnaHQnLCAncm93Z3JvdXAnLCAnc2VsZWN0YWJsZScsICdzZWxlY3RlZCcsICd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGFibGVSb3cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFJvd0NsaWNrJywgJ21kUm93U2VsZWN0aW9uQ2hhbmdlJywgJ21kUm93RXhwYW5kZWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJsZVJvdyBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJsZVJvdyB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyAob3IgRW50ZXIvU3BhY2UtYWN0aXZhdGVzKSB0aGUgcm93LlxuICAgKi9cbiAgbWRSb3dDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZzsgcm93OiBIVE1MRWxlbWVudCB9Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBgc2VsZWN0ZWRgIHN0YXRlIGNoYW5nZXMgKHVzZWQgYnkgYDxtZC10YWJsZT5gIGZvclxuc2VsZWN0aW9uIGNvb3JkaW5hdGlvbikuXG4gICAqL1xuICBtZFJvd1NlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWQ6IGJvb2xlYW47IHZhbHVlOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgcm93J3MgZXhwYW5kZWQgc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gIG1kUm93RXhwYW5kZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGV4cGFuZGVkOiBib29sZWFuIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFibGVTb3J0TGFiZWwsXG4gIGlucHV0czogWydhY3RpdmUnLCAnY29sdW1uJywgJ2RlZmF1bHRPcmRlcicsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvblBvc2l0aW9uJywgJ2luYWN0aXZlSWNvbicsICdvcmRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUtc29ydC1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2NvbHVtbicsICdkZWZhdWx0T3JkZXInLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdpY29uJywgJ2ljb25Qb3NpdGlvbicsICdpbmFjdGl2ZUljb24nLCAnb3JkZXInXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlU29ydExhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRTb3J0UmVxdWVzdCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRhYmxlU29ydExhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYmxlU29ydExhYmVsIHtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIHVzZXIgcmVxdWVzdHMgdG8gc29ydCBieSB0aGlzIGNvbHVtbi5cbiAgICovXG4gIG1kU29ydFJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNvbHVtbjogc3RyaW5nOyBkZWZhdWx0T3JkZXI6ICdhc2MnIHwgJ2Rlc2MnIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFibGVUb29sYmFyLFxuICBpbnB1dHM6IFsnYXV0b0JpbmQnLCAnY29tcGFjdCcsICdkZW5zaXR5JywgJ2hlYWRsaW5lJywgJ2xhYmVsU2VsZWN0ZWQnLCAnbnVtU2VsZWN0ZWQnLCAnc3VwcG9ydGluZ1RleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYmxlLXRvb2xiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9CaW5kJywgJ2NvbXBhY3QnLCAnZGVuc2l0eScsICdoZWFkbGluZScsICdsYWJlbFNlbGVjdGVkJywgJ251bVNlbGVjdGVkJywgJ3N1cHBvcnRpbmdUZXh0J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJsZVRvb2xiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRhYmxlVG9vbGJhciBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJsZVRvb2xiYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFicyxcbiAgaW5wdXRzOiBbJ2FjdGl2ZVRhYkluZGV4JywgJ2FyaWFMYWJlbFByb3AnLCAnZGl2aWRlcicsICd0YWJXaWR0aCcsICd2YXJpYW50JywgJ3dpZHRoJ10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0VGFiJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWJzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmVUYWJJbmRleCcsICdhcmlhTGFiZWxQcm9wJywgJ2RpdmlkZXInLCAndGFiV2lkdGgnLCAndmFyaWFudCcsICd3aWR0aCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGFicyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kVGFiQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFicyBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJzIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGFjdGl2ZSB0YWIgY2hhbmdlc1xuICAgKi9cbiAgbWRUYWJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXI7IHByZXZpb3VzSW5kZXg6IG51bWJlciB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRleHRGaWVsZCxcbiAgaW5wdXRzOiBbJ2FwcGVhckZvY3VzZWQnLCAnYXV0b0NhcGl0YWxpemUnLCAnYXV0b2NvbXBsZXRlJywgJ2NoaXBzV3JhcCcsICdjbGVhcmFibGUnLCAnZGVib3VuY2UnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlbnRlcktleUhpbnQnLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2ZvY3VzQm9yZGVyV2lkdGgnLCAnZm9ybWF0T24nLCAnZm9ybWF0dGVyJywgJ2lucHV0QXJpYUF1dG9jb21wbGV0ZScsICdpbnB1dEV4cGFuZGVkJywgJ2lucHV0TW9kZScsICdpbnB1dFJvbGUnLCAnbGFiZWwnLCAnbWF4JywgJ21heExlbmd0aCcsICdtaW4nLCAnbWluTGVuZ3RoJywgJ211bHRpbGluZScsICduYW1lJywgJ3BhcnNlcicsICdwYXNzd29yZFRvZ2dsZScsICdwYXR0ZXJuJywgJ3BsYWNlaG9sZGVyJywgJ3ByZWZpeFRleHQnLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdyZXN0cmljdCcsICdyb3dzJywgJ3NwZWVjaExhbmcnLCAnc3BlZWNoVG9UZXh0JywgJ3NwZWxsY2hlY2snLCAnc3RlcCcsICdzdWZmaXhUZXh0JywgJ3N1cHBvcnRpbmdUZXh0JywgJ3Rocm90dGxlJywgJ3R5cGUnLCAndmFsdWUnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3NlbGVjdCcsICdnZXRJbnB1dEVsZW1lbnQnLCAnZ2V0VmFsaWRpdHknLCAnc2V0Q3VzdG9tVmFsaWRpdHknLCAnY2hlY2tWYWxpZGl0eScsICdyZXBvcnRWYWxpZGl0eSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGV4dC1maWVsZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwZWFyRm9jdXNlZCcsICdhdXRvQ2FwaXRhbGl6ZScsICdhdXRvY29tcGxldGUnLCAnY2hpcHNXcmFwJywgJ2NsZWFyYWJsZScsICdkZWJvdW5jZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2VudGVyS2V5SGludCcsICdlcnJvcicsICdlcnJvclRleHQnLCAnZm9jdXNCb3JkZXJXaWR0aCcsICdmb3JtYXRPbicsICdmb3JtYXR0ZXInLCAnaW5wdXRBcmlhQXV0b2NvbXBsZXRlJywgJ2lucHV0RXhwYW5kZWQnLCAnaW5wdXRNb2RlJywgJ2lucHV0Um9sZScsICdsYWJlbCcsICdtYXgnLCAnbWF4TGVuZ3RoJywgJ21pbicsICdtaW5MZW5ndGgnLCAnbXVsdGlsaW5lJywgJ25hbWUnLCAncGFyc2VyJywgJ3Bhc3N3b3JkVG9nZ2xlJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncHJlZml4VGV4dCcsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdyZXNlcnZlU3VwcG9ydGluZ1NwYWNlJywgJ3Jlc3RyaWN0JywgJ3Jvd3MnLCAnc3BlZWNoTGFuZycsICdzcGVlY2hUb1RleHQnLCAnc3BlbGxjaGVjaycsICdzdGVwJywgJ3N1ZmZpeFRleHQnLCAnc3VwcG9ydGluZ1RleHQnLCAndGhyb3R0bGUnLCAndHlwZScsICd2YWx1ZScsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUZXh0RmllbGQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZElucHV0JywgJ21kQ2hhbmdlJywgJ21kU2VhcmNoJywgJ21kQ2xlYXInLCAnbWRQYXNzd29yZFRvZ2dsZScsICdtZFNwZWVjaFJlc3VsdCcsICdtZFZhbGlkaXR5Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGV4dEZpZWxkIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRleHRGaWVsZCB7XG5cbiAgbWRJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdpdGggZGVib3VuY2UvdGhyb3R0bGUgY29udHJvbC4gVXNlZnVsIGZvciBzZWFyY2gtYXMteW91LXR5cGUsIEFQSSBjYWxscywgb3IgZmlsdGVyaW5nLlxuICAgKi9cbiAgbWRTZWFyY2g6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxuICBtZENsZWFyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuXG4gIG1kUGFzc3dvcmRUb2dnbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZpc2libGU6IGJvb2xlYW4gfT4+O1xuXG4gIG1kU3BlZWNoUmVzdWx0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0cmFuc2NyaXB0OiBzdHJpbmc7IGxpc3RlbmluZzogYm9vbGVhbiB9Pj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoaXMgY29udHJvbCdzIHZhbGlkaXR5IENIQU5HRVMg4oCUIG5ldmVyIG9uIGV2ZXJ5IGtleXN0cm9rZSwgYW5kXG5uZXZlciBmb3IgYSByZS1wdWJsaXNoIHRoYXQgbGFuZHMgb24gdGhlIHNhbWUgc3RhdGUuXG5cbmBjb21wb3NlZDogZmFsc2VgIGlzIGRlbGliZXJhdGUuIENvbXBvc2l0ZXMgbGlrZSBtZC1zZWxlY3QgZW1iZWQgYW5cbm1kLXRleHQtZmllbGQsIGFuZCBhIGNvbXBvc2VkIGV2ZW50IGVzY2FwZXMgdGhhdCBpbm5lciBzaGFkb3cgcm9vdCwgc28gYVxubGlzdGVuZXIgb24gbWQtc2VsZWN0IHdvdWxkIHJlY2VpdmUgdGhlIGlubmVyIGZpZWxkJ3MgZXZlbnQgYXMgd2VsbCBhcyB0aGVcbmhvc3QncyDigJQgdHdvIGV2ZW50cywgZGlmZmVyZW50IHBheWxvYWRzLCBmb3Igb25lIGxvZ2ljYWwgY29udHJvbC4gS2VlcGluZ1xuaXQgdW5jb21wb3NlZCBtZWFucyBlYWNoIGNvbXBvbmVudCByZXBvcnRzIG9ubHkgZm9yIGl0c2VsZiwgd2hpbGVcbmBidWJibGVzOiB0cnVlYCBzdGlsbCBsZXRzIGEgPGZvcm0+IG9yIGFwcCByb290IGhlYXIgZXZlcnkgY29udHJvbC5cbiAgICovXG4gIG1kVmFsaWRpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbGlkOiBib29sZWFuOyB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nOyBmbGFnczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGltZVBpY2tlcixcbiAgaW5wdXRzOiBbJ2FtTGFiZWwnLCAnY2FuY2VsTGFiZWwnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdmb3JtYXQnLCAnaGVhZGxpbmUnLCAnaGVhZGxpbmVEaWFsTGFiZWwnLCAnaGVhZGxpbmVJbnB1dExhYmVsJywgJ2hpZGVUcmlnZ2VyJywgJ2hvdXJMYWJlbCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ21pbnV0ZUxhYmVsJywgJ21pbnV0ZVN0ZXAnLCAnbmFtZScsICdva0xhYmVsJywgJ29wZW4nLCAnb3JpZW50YXRpb24nLCAncGVyaW9kTGFiZWwnLCAncGVyaW9kTGF5b3V0JywgJ3BtTGFiZWwnLCAncmFuZ2VPdXRzaWRlTGFiZWwnLCAncmFuZ2VPdmVyZmxvd0xhYmVsJywgJ3JhbmdlVW5kZXJmbG93TGFiZWwnLCAncmVxdWlyZWQnLCAncmVzcG9uc2l2ZScsICd0b2dnbGVEaWFsTGFiZWwnLCAndG9nZ2xlSW5wdXRMYWJlbCcsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCcsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ2NoZWNrVmFsaWRpdHknLCAncmVwb3J0VmFsaWRpdHknLCAnZ2V0VmFsaWRpdHknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRpbWUtcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbUxhYmVsJywgJ2NhbmNlbExhYmVsJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZm9ybWF0JywgJ2hlYWRsaW5lJywgJ2hlYWRsaW5lRGlhbExhYmVsJywgJ2hlYWRsaW5lSW5wdXRMYWJlbCcsICdoaWRlVHJpZ2dlcicsICdob3VyTGFiZWwnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICdtaW51dGVMYWJlbCcsICdtaW51dGVTdGVwJywgJ25hbWUnLCAnb2tMYWJlbCcsICdvcGVuJywgJ29yaWVudGF0aW9uJywgJ3BlcmlvZExhYmVsJywgJ3BlcmlvZExheW91dCcsICdwbUxhYmVsJywgJ3JhbmdlT3V0c2lkZUxhYmVsJywgJ3JhbmdlT3ZlcmZsb3dMYWJlbCcsICdyYW5nZVVuZGVyZmxvd0xhYmVsJywgJ3JlcXVpcmVkJywgJ3Jlc3BvbnNpdmUnLCAndG9nZ2xlRGlhbExhYmVsJywgJ3RvZ2dsZUlucHV0TGFiZWwnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGltZVBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2hhbmdlJywgJ21kSW5wdXQnLCAnbWRPcGVuJywgJ21kQ2xvc2UnLCAnbWRDYW5jZWwnLCAnbWRNb2RlQ2hhbmdlJywgJ21kVmFsaWRpdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kVGltZVBpY2tlckNoYW5nZURldGFpbCBhcyBJTWRUaW1lUGlja2VyTWRUaW1lUGlja2VyQ2hhbmdlRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kVGltZVBpY2tlck1vZGVDaGFuZ2VEZXRhaWwgYXMgSU1kVGltZVBpY2tlck1kVGltZVBpY2tlck1vZGVDaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGltZVBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuTWRUaW1lUGlja2VyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBjb25maXJtcyB0aGUgY2hvc2VuIHRpbWUgKE9LIGJ1dHRvbiwgb3JcbkVudGVyIGluc2lkZSB0aGUgSEgvTU0gZmllbGRzIHdoaWxlIHRoZSBidWZmZXJzIGFyZSB2YWxpZCkuXG5UaGlzIGlzIHRoZSBjYW5vbmljYWwgXCJ0aGUgdXNlciBoYXMgY29tbWl0dGVkIGEgdmFsdWVcIiBldmVudCDigJRcbnVzZSBpdCBmb3IgZm9ybSBpbnRlZ3JhdGlvbiwgcGVyc2lzdGVuY2UsIGFuZCBhbmFseXRpY3MuXG5cblRoZSBkZXRhaWwgYnVuZGxlIGluY2x1ZGVzIGJvdGggdGhlIGh1bWFuLWZyaWVuZGx5IGB2YWx1ZWAgYW5kXG50aHJlZSBpbmR1c3RyeS1zdGFuZGFyZCBJU08gLyBEYXRlIHJlcHJlc2VudGF0aW9ucyBzb1xuZG93bnN0cmVhbSBjb2RlIG5ldmVyIGhhcyB0byByZS1mb3JtYXQgdGhlIHRpbWUgaXRzZWxmLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRUaW1lUGlja2VyTWRUaW1lUGlja2VyQ2hhbmdlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIG9uIGV2ZXJ5IGludGVybWVkaWF0ZSBjaGFuZ2Ugd2hpbGUgdGhlIGRpYWxvZyBpc1xub3BlbiDigJQgZGlhbCBkcmFnLCBkaWFsLW1vZGUga2V5Ym9hcmQgdHlwaW5nLCBBTS9QTSB0b2dnbGUsXG5hbmQgaW5wdXQtdmFyaWFudCBrZXlzdHJva2VzIHRoYXQgcHJvZHVjZSBhIHZhbGlkIEhIOk1NLlxuXG5NaXJyb3JzIHRoZSBIVE1MIGBpbnB1dGAgZXZlbnQgc2VtYW50aWNzIChcImZpcmVzIGZvciBldmVyeVxudXNlci1kcml2ZW4gbXV0YXRpb25cIikgYW5kIG1hdGNoZXMgdGhlIHBhdHRlcm4gdXNlZCBieVxuYG1kLWRhdGUtcGlja2VyYCAvIGBtZC10ZXh0LWZpZWxkYC4gVXNlIGBtZElucHV0YCBmb3IgbGl2ZVxucHJldmlld3MgYW5kIGBtZENoYW5nZWAgZm9yIHRoZSBmaW5hbCBjb21taXQuIFRoZSBkZXRhaWxcbnNoYXBlIGlzIGlkZW50aWNhbCB0byBgbWRDaGFuZ2VgIHNvIGEgcHJldmlld2VyIGNhbiByZWFkIHRoZVxuc2FtZSBmaWVsZHMgcmVnYXJkbGVzcyBvZiB3aGljaCBldmVudCBhcnJpdmVkLlxuICAgKi9cbiAgbWRJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFRpbWVQaWNrZXJNZFRpbWVQaWNrZXJDaGFuZ2VEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcGlja2VyIG9wZW5zLlxuICAgKi9cbiAgbWRPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBwaWNrZXIgY2xvc2VzICh3aGV0aGVyIGNvbmZpcm1lZCwgY2FuY2VsbGVkLCBvciBkaXNtaXNzZWQpLlxuICAgKi9cbiAgbWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcGlja2VyIGlzIGNhbmNlbGxlZCBvciBkaXNtaXNzZWQgd2l0aG91dCBjb21taXR0aW5nLlxuICAgKi9cbiAgbWRDYW5jZWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3dpdGNoZXMgYmV0d2VlbiB0aGUgZGlhbCBhbmQgaW5wdXRcbnZhcmlhbnRzIHZpYSB0aGUgZGlhbG9nJ3Mga2V5Ym9hcmQgLyBjbG9jayB0b2dnbGUuIExldHNcbmFuYWx5dGljcyBvciBzaWJsaW5nIFVJIHJlYWN0IHRvIHRoZSB2YXJpYW50IGNoYW5nZSAoZS5nLlxuYW5ub3VuY2UgdGhlIG5ldyBtb2RlIHRvIHNjcmVlbiByZWFkZXJzLCBvciByZXNpemUgYSBob3N0aW5nXG5kaWFsb2cgd3JhcHBlcikuXG4gICAqL1xuICBtZE1vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRUaW1lUGlja2VyTWRUaW1lUGlja2VyTW9kZUNoYW5nZURldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRvb2xiYXIsXG4gIGlucHV0czogWydhbGlnbm1lbnQnLCAnYXJpYUxhYmVsUHJvcCcsICdhcmlhTGFiZWxsZWRieScsICdjb2xvcicsICdjb250YWluZXJTZW1hbnRpY3MnLCAnZGVuc2l0eScsICdsYXlvdXQnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10b29sYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGlnbm1lbnQnLCAnYXJpYUxhYmVsUHJvcCcsICdhcmlhTGFiZWxsZWRieScsICdjb2xvcicsICdjb250YWluZXJTZW1hbnRpY3MnLCAnZGVuc2l0eScsICdsYXlvdXQnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVG9vbGJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVG9vbGJhciBleHRlbmRzIENvbXBvbmVudHMuTWRUb29sYmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRvb2x0aXAsXG4gIGlucHV0czogWydhdXRvUG9zaXRpb24nLCAnY3Jvc3NPZmZzZXQnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdoaWRlRGVsYXknLCAnb2Zmc2V0JywgJ29wZW4nLCAncG9zaXRpb24nLCAnc2hvd0RlbGF5JywgJ3N1YmhlYWQnLCAndGV4dCcsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvUG9zaXRpb24nLCAnY3Jvc3NPZmZzZXQnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdoaWRlRGVsYXknLCAnb2Zmc2V0JywgJ29wZW4nLCAncG9zaXRpb24nLCAnc2hvd0RlbGF5JywgJ3N1YmhlYWQnLCAndGV4dCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUb29sdGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRPcGVuJywgJ21kQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUb29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRvb2x0aXAge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgdG9vbHRpcCBiZWNvbWVzIHZpc2libGUuIGBidWJibGVzOmZhbHNlYCArIGBjb21wb3NlZDpmYWxzZWAga2VlcCBpdFxuZnJvbSBjcm9zc2luZyB0aGUgc2hhZG93IGJvdW5kYXJ5IGFuZCByZXRhcmdldGluZyBvbnRvIGFuIGVtYmVkZGluZyBob3N0ICh0aGUgcmVwbydzXG5kb2N1bWVudGVkIGNvbXBvc2VkLWV2ZW50LWxlYWsgY2xhc3Mg4oCUIHNlZSBtZC1kYXRlLXBpY2tlcidzIHN3YWxsb3cgZ3VhcmRzKS5cbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHRvb2x0aXAgaXMgZGlzbWlzc2VkIChkb2VzIG5vdCBidWJibGUgb3IgY3Jvc3Mgc2hhZG93IGJvdW5kYXJpZXMpLlxuICAgKi9cbiAgbWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVHJhbnNmZXJMaXN0LFxuICBpbnB1dHM6IFsnY291bnRUZW1wbGF0ZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2VtcHR5SWNvbicsICdlbXB0eVRleHQnLCAnaXRlbXMnLCAnbW92ZUFsbExlZnRJY29uJywgJ21vdmVBbGxMZWZ0TGFiZWwnLCAnbW92ZUFsbFJpZ2h0SWNvbicsICdtb3ZlQWxsUmlnaHRMYWJlbCcsICdtb3ZlTGVmdEljb24nLCAnbW92ZUxlZnRMYWJlbCcsICdtb3ZlUmlnaHRJY29uJywgJ21vdmVSaWdodExhYmVsJywgJ3NlYXJjaEljb24nLCAnc2VhcmNoYWJsZScsICdzaG93U2VsZWN0QWxsJywgJ3NpbmdsZVN0ZXBPbmx5JywgJ3NvdXJjZVNlYXJjaFBsYWNlaG9sZGVyJywgJ3NvdXJjZVRpdGxlJywgJ3RhcmdldFNlYXJjaFBsYWNlaG9sZGVyJywgJ3RhcmdldFRpdGxlJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnbW92ZVNlbGVjdGVkUmlnaHQnLCAnbW92ZVNlbGVjdGVkTGVmdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdHJhbnNmZXItbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY291bnRUZW1wbGF0ZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2VtcHR5SWNvbicsICdlbXB0eVRleHQnLCAnaXRlbXMnLCAnbW92ZUFsbExlZnRJY29uJywgJ21vdmVBbGxMZWZ0TGFiZWwnLCAnbW92ZUFsbFJpZ2h0SWNvbicsICdtb3ZlQWxsUmlnaHRMYWJlbCcsICdtb3ZlTGVmdEljb24nLCAnbW92ZUxlZnRMYWJlbCcsICdtb3ZlUmlnaHRJY29uJywgJ21vdmVSaWdodExhYmVsJywgJ3NlYXJjaEljb24nLCAnc2VhcmNoYWJsZScsICdzaG93U2VsZWN0QWxsJywgJ3NpbmdsZVN0ZXBPbmx5JywgJ3NvdXJjZVNlYXJjaFBsYWNlaG9sZGVyJywgJ3NvdXJjZVRpdGxlJywgJ3RhcmdldFNlYXJjaFBsYWNlaG9sZGVyJywgJ3RhcmdldFRpdGxlJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUcmFuc2Zlckxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENoYW5nZScsICdtZE1vdmUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUcmFuc2Zlckxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLk1kVHJhbnNmZXJMaXN0IHtcbiAgLyoqXG4gICAqIEZpcmVzIG9uIGV2ZXJ5IGNoYW5nZSB0byB0aGUgdGFyZ2V0IHZhbHVlLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmdbXT4+O1xuICAvKipcbiAgICogRmlyZXMgYWZ0ZXIgaXRlbXMgYXJlIG1vdmVkLiBkZXRhaWwgZGVzY3JpYmVzIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICBtZE1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JzsgbW92ZWQ6IHN0cmluZ1tdOyB0YXJnZXQ6IHN0cmluZ1tdOyB9Pj47XG59XG5cblxuIl19
|
|
2378
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL3Byb3hpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9CQUFvQjtBQUNwQiw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJdkUsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHFCQUFxQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDakgsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzlHLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxjQUFjLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLElBQUksYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixJQUFJLHNCQUFzQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDbkgsT0FBTyxFQUFFLG1CQUFtQixJQUFJLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUcsT0FBTyxFQUFFLG1CQUFtQixJ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QUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDO1FBQ25ZLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDO0tBQ25ELENBQUM7R0FTVyxjQUFjLENBTzFCOzs0RkFQWSxjQUFjO2tCQVIxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDO29CQUNuWSxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50cyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQWNjb3JkaW9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1hY2NvcmRpb24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEFjY29yZGlvbkl0ZW0gfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWFjY29yZGlvbi1pdGVtLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRBcHBCYXIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWFwcC1iYXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEFyZWFDaGFydCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtYXJlYS1jaGFydC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQXV0b2NvbXBsZXRlIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1hdXRvY29tcGxldGUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEF2YXRhciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtYXZhdGFyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRCYWRnZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtYmFkZ2UuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJhckNoYXJ0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1iYXItY2hhcnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJvdHRvbVNoZWV0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1ib3R0b20tc2hlZXQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJyZWFkY3J1bWJJdGVtIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1icmVhZGNydW1iLWl0ZW0uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJyZWFkY3J1bWJzIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1icmVhZGNydW1icy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1idXR0b24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJ1dHRvbkdyb3VwIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1idXR0b24tZ3JvdXAuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZENhcmQgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWNhcmQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZENoZWNrYm94IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1jaGVja2JveC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQ2hpcCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtY2hpcC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQ29sb3JQaWNrZXIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWNvbG9yLXBpY2tlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kRGF0ZVBpY2tlciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtZGF0ZS1waWNrZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZERpYWxvZyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtZGlhbG9nLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWREaXZpZGVyIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1kaXZpZGVyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRGYWIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWZhYi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kRmFiTWVudSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtZmFiLW1lbnUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEZhYk1lbnVJdGVtIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1mYWItbWVudS1pdGVtLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRJY29uQnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1pY29uLWJ1dHRvbi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTGluZUNoYXJ0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1saW5lLWNoYXJ0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRMaXN0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1saXN0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRMaXN0SXRlbSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbGlzdC1pdGVtLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRMb2FkaW5nSW5kaWNhdG9yIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1sb2FkaW5nLWluZGljYXRvci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTWVudSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbWVudS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTWVudUl0ZW0gfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLW1lbnUtaXRlbS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTWVudUl0ZW1Hcm91cCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbWVudS1pdGVtLWdyb3VwLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRNZXRlciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbWV0ZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE11bHRpU2VsZWN0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1tdWx0aS1zZWxlY3QuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE5hdmlnYXRpb25CYXIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLW5hdmlnYXRpb24tYmFyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWROYXZpZ2F0aW9uUmFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbmF2aWdhdGlvbi1yYWlsLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWROYXZpZ2F0aW9uUmFpbFRhYiB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbmF2aWdhdGlvbi1yYWlsLXRhYi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTmF2aWdhdGlvblRhYiB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbmF2aWdhdGlvbi10YWIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE51bWJlckZpZWxkIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1udW1iZXItZmllbGQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE9yZ2FuaXphdGlvbkNoYXJ0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1vcmdhbml6YXRpb24tY2hhcnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE90cEZpZWxkIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1vdHAtZmllbGQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFBpZUNoYXJ0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1waWUtY2hhcnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFByb2dyZXNzSW5kaWNhdG9yIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1wcm9ncmVzcy1pbmRpY2F0b3IuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFJhZGlvIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1yYWRpby5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kUmF0aW5nIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1yYXRpbmcuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFJpcHBsZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtcmlwcGxlLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRTZWFyY2ggfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXNlYXJjaC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU2VnbWVudGVkQnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zZWdtZW50ZWQtYnV0dG9uLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRTZWdtZW50ZWRCdXR0b25TZXQgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXNlZ21lbnRlZC1idXR0b24tc2V0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRTZWxlY3QgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXNlbGVjdC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU2VsZWN0T3B0aW9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zZWxlY3Qtb3B0aW9uLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRTaWRlU2hlZXQgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXNpZGUtc2hlZXQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFNrZWxldG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1za2VsZXRvbi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU2xpZGVyIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zbGlkZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFNuYWNrYmFyIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zbmFja2Jhci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU3BhcmtsaW5lIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zcGFya2xpbmUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFNwbGl0QnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zcGxpdC1idXR0b24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFN0YXR1c0RvdCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtc3RhdHVzLWRvdC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU3RlcCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtc3RlcC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU3RlcHBlciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtc3RlcHBlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU3ViTWVudUl0ZW0gfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXN1Yi1tZW51LWl0ZW0uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFN3aXRjaCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtc3dpdGNoLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFiUGFuZWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYi1wYW5lbC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFiUGFuZWxzIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10YWItcGFuZWxzLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWJsZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFRhYmxlQm9keSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtYm9keS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFibGVDZWxsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10YWJsZS1jZWxsLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWJsZUNvbnRhaW5lciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtY29udGFpbmVyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWJsZUV4cGFuZFRvZ2dsZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtZXhwYW5kLXRvZ2dsZS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFibGVGb290IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10YWJsZS1mb290LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWJsZUhlYWQgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYmxlLWhlYWQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFRhYmxlUGFnaW5hdGlvbiB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtcGFnaW5hdGlvbi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFibGVSb3cgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYmxlLXJvdy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFibGVTb3J0TGFiZWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYmxlLXNvcnQtbGFiZWwuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFRhYmxlVG9vbGJhciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtdG9vbGJhci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFicyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFicy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGV4dEZpZWxkIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10ZXh0LWZpZWxkLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUaW1lUGlja2VyIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10aW1lLXBpY2tlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVG9vbGJhciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdG9vbGJhci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVG9vbHRpcCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdG9vbHRpcC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVHJhbnNmZXJMaXN0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10cmFuc2Zlci1saXN0LmpzJztcbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRBY2NvcmRpb24sXG4gIGlucHV0czogWydicmluZ1RvRnJvbnQnLCAnZGVmYXVsdEV4cGFuZGVkJywgJ2RlbnNpdHknLCAnZWxldmF0aW9uJywgJ2V4Y2x1c2l2ZScsICdmbG9hdGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaW5pdGlhbFgnLCAnaW5pdGlhbFknLCAna2VlcE9uZUV4cGFuZGVkJywgJ3JlZ2lvbicsICdyZWdpb25UaHJlc2hvbGQnLCAncmVvcmRlcmFibGUnLCAndHJhbnNpdGlvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JyaW5nVG9Gcm9udCcsICdkZWZhdWx0RXhwYW5kZWQnLCAnZGVuc2l0eScsICdlbGV2YXRpb24nLCAnZXhjbHVzaXZlJywgJ2Zsb2F0aW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpbml0aWFsWCcsICdpbml0aWFsWScsICdrZWVwT25lRXhwYW5kZWQnLCAncmVnaW9uJywgJ3JlZ2lvblRocmVzaG9sZCcsICdyZW9yZGVyYWJsZScsICd0cmFuc2l0aW9uJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEFjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kVG9nZ2xlJywgJ21kUmVvcmRlcicsICdtZERyYWdTdGFydCcsICdtZERyYWdNb3ZlJywgJ21kRHJhZ0VuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRBY2NvcmRpb25EcmFnRGV0YWlsIGFzIElNZEFjY29yZGlvbk1kQWNjb3JkaW9uRHJhZ0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLk1kQWNjb3JkaW9uIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhbiBpdGVtIGV4cGFuZHMgb3IgY29sbGFwc2VzLiBEZXRhaWwgY2FycmllcyB0aGVcbmZ1bGwgc2V0IG9mIGV4cGFuZGVkIGluZGljZXMuXG4gICAqL1xuICBtZFRvZ2dsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaW5kZXg6IG51bWJlcjsgZXhwYW5kZWQ6IGJvb2xlYW47IGV4cGFuZGVkSW5kaWNlczogbnVtYmVyW107IH0+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBpdGVtcyBhcmUgcmVvcmRlcmVkIHZpYSBkcmFnLWFuZC1kcm9wIG9yIGtleWJvYXJkXG4oQWx0K0Fycm93VXAgLyBBbHQrQXJyb3dEb3duKS4gYG9yZGVyYCBpcyB0aGUgbmV3IGluZGV4IHNlcXVlbmNlXG5yZWxhdGl2ZSB0byB0aGUgb3JpZ2luYWwgb3JkZXIsIGUuZy4gbW92aW5nIHRoZSBpdGVtIHRoYXQgd2FzIGF0XG5pbmRleCAwIHRvIGluZGV4IDIgeWllbGRzIGBvcmRlcjogWzEsIDIsIDBdYC5cbiAgICovXG4gIG1kUmVvcmRlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyOyBvcmRlcjogbnVtYmVyW107IH0+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgb25jZSBhIGZsb2F0aW5nIHBhbmVsIHN0YXJ0cyBiZWluZyBkcmFnZ2VkLlxuICAgKi9cbiAgbWREcmFnU3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRBY2NvcmRpb25NZEFjY29yZGlvbkRyYWdEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgY29udGludW91c2x5IHdoaWxlIGEgZmxvYXRpbmcgcGFuZWwgaXMgYmVpbmcgZHJhZ2dlZC5cbiAgICovXG4gIG1kRHJhZ01vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRBY2NvcmRpb25NZEFjY29yZGlvbkRyYWdEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIGZsb2F0aW5nIHBhbmVsIGlzIHJlbGVhc2VkLlxuICAgKi9cbiAgbWREcmFnRW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQWNjb3JkaW9uTWRBY2NvcmRpb25EcmFnRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEFjY29yZGlvbkl0ZW0sXG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdjb250ZW50TWF4SGVpZ2h0JywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnaGVhZGluZ0xldmVsJywgJ2hlYWRsaW5lJywgJ2ljb24nLCAncmVnaW9uUm9sZScsICdzdXBwb3J0aW5nVGV4dCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZScsICdmb2N1c0hlYWRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYWNjb3JkaW9uLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2NvbnRlbnRNYXhIZWlnaHQnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdleHBhbmRlZCcsICdoZWFkaW5nTGV2ZWwnLCAnaGVhZGxpbmUnLCAnaWNvbicsICdyZWdpb25Sb2xlJywgJ3N1cHBvcnRpbmdUZXh0J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRBY2NvcmRpb25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRJdGVtVG9nZ2xlJywgJ21kSXRlbVJlcXVlc3RGb2N1cycsICdtZEl0ZW1SZXF1ZXN0UmVvcmRlciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZEFjY29yZGlvbkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kQWNjb3JkaW9uSXRlbSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW5ldmVyIHRoZSBpdGVtIHRvZ2dsZXMuIFRoZSBwYXJlbnQgYG1kLWFjY29yZGlvbmAgdXNlc1xudGhpcyB0byBjb29yZGluYXRlIGV4Y2x1c2l2ZSBtb2RlLlxuICAgKi9cbiAgbWRJdGVtVG9nZ2xlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBleHBhbmRlZDogYm9vbGVhbjsgaW5kZXg6IG51bWJlciB9Pj47XG4gIC8qKlxuICAgKiBJbnRlcm5hbCBldmVudCB0aGUgcGFyZW50IGxpc3RlbnMgdG8gZm9yIGFycm93LWtleSByb3ZpbmcgZm9jdXMuXG5CdWJibGVzICsgY29tcG9zZWQgc28gdGhlIHBhcmVudCByZWNlaXZlcyBpdCB0aHJvdWdoIHRoZSBzaGFkb3cuXG4gICAqL1xuICBtZEl0ZW1SZXF1ZXN0Rm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGRpcmVjdGlvbjogJ25leHQnIHwgJ3ByZXYnIHwgJ2ZpcnN0JyB8ICdsYXN0JzsgZnJvbTogbnVtYmVyOyB9Pj47XG4gIC8qKlxuICAgKiBJbnRlcm5hbCBldmVudCB0aGUgcGFyZW50IGxpc3RlbnMgdG8gZm9yIEFsdCtBcnJvdyBrZXlib2FyZFxucmVvcmRlcmluZy4gQnViYmxlcyArIGNvbXBvc2VkIHNvIHRoZSBwYXJlbnQgcmVjZWl2ZXMgaXRcbnRocm91Z2ggdGhlIHNoYWRvdy5cbiAgICovXG4gIG1kSXRlbVJlcXVlc3RSZW9yZGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBkaXJlY3Rpb246ICd1cCcgfCAnZG93bic7IGZyb206IG51bWJlcjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRBcHBCYXIsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2hlYWRsaW5lJywgJ2xlYWRpbmdJY29uJywgJ2xlYWRpbmdJY29uTGFiZWwnLCAnc2Nyb2xsZWQnLCAnc2VhcmNoQXJpYUxhYmVsJywgJ3NlYXJjaERpc2FibGVkJywgJ3NlYXJjaFBsYWNlaG9sZGVyJywgJ3NlYXJjaFZhbHVlJywgJ3N1YnRpdGxlJywgJ3RpdGxlQWxpZ25tZW50JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWFwcC1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnaGVhZGxpbmUnLCAnbGVhZGluZ0ljb24nLCAnbGVhZGluZ0ljb25MYWJlbCcsICdzY3JvbGxlZCcsICdzZWFyY2hBcmlhTGFiZWwnLCAnc2VhcmNoRGlzYWJsZWQnLCAnc2VhcmNoUGxhY2Vob2xkZXInLCAnc2VhcmNoVmFsdWUnLCAnc3VidGl0bGUnLCAndGl0bGVBbGlnbm1lbnQnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQXBwQmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRMZWFkaW5nQ2xpY2snLCAnbWRTZWFyY2hBY3RpdmF0ZScsICdtZFNlYXJjaElucHV0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQXBwQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5NZEFwcEJhciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHByb3AtYmFzZWQgbGVhZGluZyBpY29uIGJ1dHRvbiBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICBtZExlYWRpbmdDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFNlYXJjaCB2YXJpYW50IG9ubHk6IGVtaXR0ZWQgd2hlbiB0aGUgaW5saW5lIHNlYXJjaCBmaWVsZCBpcyBzZWxlY3RlZFxuKGNsaWNrLCBmb2N1cywgRW50ZXIsIG9yIFNwYWNlKS4gV2lyZSB0aGlzIHRvIGBtZC1zZWFyY2guc2hvdygpYCB0byBvcGVuXG50aGUgZnVsbC1zY3JlZW4gc2VhcmNoIHZpZXcgcGVyIHRoZSBNRDMgc3BlYy5cbiAgICovXG4gIG1kU2VhcmNoQWN0aXZhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogU2VhcmNoIHZhcmlhbnQgb25seTogZW1pdHRlZCBvbiBldmVyeSBpbmxpbmUgc2VhcmNoIGZpZWxkIGlucHV0IGNoYW5nZS5cbiAgICovXG4gIG1kU2VhcmNoSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmcgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRBcmVhQ2hhcnQsXG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnYXhpc1RpY2tzJywgJ2Nvbm5lY3ROdWxscycsICdjdXJ2ZScsICdkZW5zaXR5JywgJ2ZpbGxPcGFjaXR5JywgJ2dyaWQnLCAnaGVpZ2h0UHJvcCcsICdpbnZlcnRlZCcsICdsYWJlbCcsICdsYWJlbEVtcHR5JywgJ2xhYmVsUGxvdCcsICdsYWJlbFBvaW50JywgJ2xhYmVsWm9vbUVuZCcsICdsYWJlbFpvb21TdGFydCcsICdsZWdlbmQnLCAnbGluZVdpZHRoJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdtYXJrU2l6ZScsICdub0FuaW1hdGlvbicsICdzZXJpZXMnLCAnc2VyaWVzTGFiZWxzJywgJ3Nob3dMYWJlbHMnLCAnc2hvd0xpbmUnLCAnc2hvd01hcmtzJywgJ3N0YWNrJywgJ3N1YnRpdGxlJywgJ3N1bW1hcnknLCAndGFibGVMYWJlbHMnLCAndGl0bGVBbGlnbicsICd0b29sdGlwJywgJ3Rvb2x0aXBSZW5kZXJlcicsICd2YWx1ZUZvcm1hdHRlcicsICd4QXhpcycsICd5QXhpcycsICd6b29tJ10sXG4gIG1ldGhvZHM6IFsncmVmcmVzaFRoZW1lJywgJ3Jlc2l6ZScsICdyZXBsYXknLCAndG9EYXRhVVJMJywgJ2dldEluc3RhbmNlJywgJ3NldFpvb20nLCAncmVzZXRab29tJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1hcmVhLWNoYXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnYXhpc1RpY2tzJywgJ2Nvbm5lY3ROdWxscycsICdjdXJ2ZScsICdkZW5zaXR5JywgJ2ZpbGxPcGFjaXR5JywgJ2dyaWQnLCAnaGVpZ2h0UHJvcCcsICdpbnZlcnRlZCcsICdsYWJlbCcsICdsYWJlbEVtcHR5JywgJ2xhYmVsUGxvdCcsICdsYWJlbFBvaW50JywgJ2xhYmVsWm9vbUVuZCcsICdsYWJlbFpvb21TdGFydCcsICdsZWdlbmQnLCAnbGluZVdpZHRoJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdtYXJrU2l6ZScsICdub0FuaW1hdGlvbicsICdzZXJpZXMnLCAnc2VyaWVzTGFiZWxzJywgJ3Nob3dMYWJlbHMnLCAnc2hvd0xpbmUnLCAnc2hvd01hcmtzJywgJ3N0YWNrJywgJ3N1YnRpdGxlJywgJ3N1bW1hcnknLCAndGFibGVMYWJlbHMnLCAndGl0bGVBbGlnbicsICd0b29sdGlwJywgJ3Rvb2x0aXBSZW5kZXJlcicsICd2YWx1ZUZvcm1hdHRlcicsICd4QXhpcycsICd5QXhpcycsICd6b29tJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRBcmVhQ2hhcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZE1hcmtlckNsaWNrJywgJ21kTGluZUNsaWNrJywgJ21kQXJlYUNsaWNrJywgJ21kQXhpc0NsaWNrJywgJ21kTGVnZW5kQ2xpY2snLCAnbWRIb3ZlcicsICdtZFJlYWR5JywgJ21kWm9vbSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRDaGFydENsaWNrRGV0YWlsIGFzIElNZEFyZWFDaGFydE1kQ2hhcnRDbGlja0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZENoYXJ0U2VyaWVzIGFzIElNZEFyZWFDaGFydE1kQ2hhcnRTZXJpZXMgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRDaGFydEF4aXNDbGlja0RldGFpbCBhcyBJTWRBcmVhQ2hhcnRNZENoYXJ0QXhpc0NsaWNrRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kQ2hhcnRIb3ZlckRldGFpbCBhcyBJTWRBcmVhQ2hhcnRNZENoYXJ0SG92ZXJEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQXJlYUNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5NZEFyZWFDaGFydCB7XG5cbiAgbWRNYXJrZXJDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZEFyZWFDaGFydE1kQ2hhcnRDbGlja0RldGFpbDxJTWRBcmVhQ2hhcnRNZENoYXJ0U2VyaWVzPj4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIHNlcmllcycgZHJhd24gbGluZSBpcyBjbGlja2VkICpiZXR3ZWVuKiBpdHMgZGF0YSBwb2ludHMgKGFcbmNsaWNrIG9uIGEgcG9pbnQgZW1pdHMgYG1kTWFya2VyQ2xpY2tgIGluc3RlYWQpLlxuICAgKi9cbiAgbWRMaW5lQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRBcmVhQ2hhcnRNZENoYXJ0Q2xpY2tEZXRhaWw8SU1kQXJlYUNoYXJ0TWRDaGFydFNlcmllcz4+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gYSBzZXJpZXMnIGZpbGxlZCBhcmVhIGlzIGNsaWNrZWQg4oCUIHRoZSBiYW5kIGJldHdlZW4gaXRzIGxpbmVcbmFuZCBpdHMgYmFzZSAoaXRzIG93biBiYW5kIHdoZW4gc3RhY2tlZCksIGV4Y2x1ZGluZyBpdHMgbGluZSBhbmQgcG9pbnRzLlxuICAgKi9cbiAgbWRBcmVhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRBcmVhQ2hhcnRNZENoYXJ0Q2xpY2tEZXRhaWw8SU1kQXJlYUNoYXJ0TWRDaGFydFNlcmllcz4+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHBsb3QgYmFja2dyb3VuZCBpcyBjbGlja2VkIChpbnNpZGUgdGhlIHBsb3QsIGJ1dCBub3Qgb24gYVxubWFyaywgbGluZSBvciBhcmVhKTogdGhlIG5lYXJlc3QgeCBwbHVzIGV2ZXJ5IHZpc2libGUgc2VyaWVzJyB2YWx1ZSB0aGVyZS5cbiAgICovXG4gIG1kQXhpc0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQXJlYUNoYXJ0TWRDaGFydEF4aXNDbGlja0RldGFpbD4+O1xuXG4gIG1kTGVnZW5kQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlcmllc0luZGV4OiBudW1iZXI7IHNlcmllc0lkPzogc3RyaW5nOyBzZWxlY3RlZDogYm9vbGVhbiB9Pj47XG5cbiAgbWRIb3ZlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZEFyZWFDaGFydE1kQ2hhcnRIb3ZlckRldGFpbD4+O1xuXG4gIG1kUmVhZHk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB6b29tIHdpbmRvdyBjaGFuZ2VzIChkcmFnLCBzbGlkZXIgb3IgYHNldFpvb21gL2ByZXNldFpvb21gKS5cbiAgICovXG4gIG1kWm9vbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3RhcnRJbmRleDogbnVtYmVyOyBlbmRJbmRleDogbnVtYmVyOyByZXNldDogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEF1dG9jb21wbGV0ZSxcbiAgaW5wdXRzOiBbJ2NoaXBQb3NpdGlvbicsICdjbGVhckljb24nLCAnY2xlYXJPbkJsdXInLCAnY2xlYXJhYmxlJywgJ2RlbnNpdHknLCAnZGlzYWJsZUNsb3NlT25TZWxlY3QnLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25JY29uJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmaWx0ZXJNb2RlJywgJ2ZpbHRlcmVyJywgJ2ZyZWVTb2xvJywgJ2lucHV0VmFsdWUnLCAnbGFiZWwnLCAnbGltaXRSZXN1bHRzJywgJ2xvYWRpbmcnLCAnbG9hZGluZ1RleHQnLCAnbWF0Y2hUcmlnZ2VyV2lkdGgnLCAnbWF4SGVpZ2h0JywgJ21heFNlbGVjdGVkJywgJ211bHRpcGxlJywgJ25hbWUnLCAnbm9PcHRpb25zVGV4dCcsICdub1Jlc3VsdHNUZXh0JywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdyb3dIZWlnaHQnLCAnc29mdERpc2FibGVkJywgJ3N0YXR1c1RlbXBsYXRlJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBtZXRob2RzOiBbJ2ZvY3VzSW5wdXQnLCAnc2hvd01lbnUnLCAnY2xvc2VNZW51JywgJ2xvYWRPcHRpb25zJywgJ2dldExhYmVscycsICdnZXRWYWxpZGl0eScsICdjaGVja1ZhbGlkaXR5JywgJ3JlcG9ydFZhbGlkaXR5JywgJ3NldEN1c3RvbVZhbGlkaXR5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1hdXRvY29tcGxldGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoaXBQb3NpdGlvbicsICdjbGVhckljb24nLCAnY2xlYXJPbkJsdXInLCAnY2xlYXJhYmxlJywgJ2RlbnNpdHknLCAnZGlzYWJsZUNsb3NlT25TZWxlY3QnLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25JY29uJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmaWx0ZXJNb2RlJywgJ2ZpbHRlcmVyJywgJ2ZyZWVTb2xvJywgJ2lucHV0VmFsdWUnLCAnbGFiZWwnLCAnbGltaXRSZXN1bHRzJywgJ2xvYWRpbmcnLCAnbG9hZGluZ1RleHQnLCAnbWF0Y2hUcmlnZ2VyV2lkdGgnLCAnbWF4SGVpZ2h0JywgJ21heFNlbGVjdGVkJywgJ211bHRpcGxlJywgJ25hbWUnLCAnbm9PcHRpb25zVGV4dCcsICdub1Jlc3VsdHNUZXh0JywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdyb3dIZWlnaHQnLCAnc29mdERpc2FibGVkJywgJ3N0YXR1c1RlbXBsYXRlJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQXV0b2NvbXBsZXRlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnLCAnbWRJbnB1dCcsICdtZE9wZW4nLCAnbWRDbG9zZScsICdtZENsZWFyJywgJ21kVmFsaWRpdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRBdXRvY29tcGxldGUgZXh0ZW5kcyBDb21wb25lbnRzLk1kQXV0b2NvbXBsZXRlIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW5ldmVyIHRoZSBjb21taXR0ZWQgc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuZXZlciB0aGUgbGl2ZSBpbnB1dCBzdHJpbmcgY2hhbmdlcy5cbiAgICovXG4gIG1kSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIG1lbnUgb3BlbnMuXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBtZW51IGNsb3Nlcy5cbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIGNsZWFycyB0aGUgdmFsdWUuXG4gICAqL1xuICBtZENsZWFyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEF2YXRhcixcbiAgaW5wdXRzOiBbJ2FsdCcsICdjb2xvckZyb21OYW1lJywgJ2Nyb3Nzb3JpZ2luJywgJ2RlbnNpdHknLCAnaW5pdGlhbHMnLCAnbGFiZWwnLCAnbG9hZGluZycsICduYW1lJywgJ3NoYXBlJywgJ3NpemUnLCAnc3JjJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1hdmF0YXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsdCcsICdjb2xvckZyb21OYW1lJywgJ2Nyb3Nzb3JpZ2luJywgJ2RlbnNpdHknLCAnaW5pdGlhbHMnLCAnbGFiZWwnLCAnbG9hZGluZycsICduYW1lJywgJ3NoYXBlJywgJ3NpemUnLCAnc3JjJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRBdmF0YXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZExvYWQnLCAnbWRFcnJvciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZEF2YXRhciBleHRlbmRzIENvbXBvbmVudHMuTWRBdmF0YXIge1xuICAvKipcbiAgICogSW1hZ2Ugc3VjY2Vzc2Z1bGx5IGxvYWRlZC5cbiAgICovXG4gIG1kTG9hZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3JjOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogSW1hZ2UgZmFpbGVkIHRvIGxvYWQg4oCUIGNvbXBvbmVudCBmZWxsIGJhY2sgdG8gaW5pdGlhbHMvaWNvbi5cbiAgICovXG4gIG1kRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNyYzogc3RyaW5nIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kQmFkZ2UsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2ljb24nLCAnbWF4JywgJ3NoYXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2ljb24nLCAnbWF4JywgJ3NoYXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEJhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuTWRCYWRnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRCYXJDaGFydCxcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhbmltYXRpb25EdXJhdGlvbicsICdheGlzVGlja3MnLCAnYmFyR2FwJywgJ2JhcldpZHRoJywgJ2NhdGVnb3J5R2FwJywgJ2NoZXZyb24nLCAnY2xpY2thYmxlJywgJ2Nvcm5lclJhZGl1cycsICdkZW5zaXR5JywgJ2hlaWdodFByb3AnLCAnbGFiZWwnLCAnbGFiZWxQbG90JywgJ2xhYmVsUG9pbnQnLCAnbGFiZWxab29tRW5kJywgJ2xhYmVsWm9vbVN0YXJ0JywgJ2xheW91dCcsICdsZWdlbmQnLCAnbG9hZGluZycsICdsb2FkaW5nTGFiZWwnLCAnbG9jYWxlJywgJ25vQW5pbWF0aW9uJywgJ3BvbGFyJywgJ3BvbGFySG9sZScsICdwb2xhclN3ZWVwJywgJ3NlcmllcycsICdzaG93TGFiZWxzJywgJ3Nob3dUb3RhbHMnLCAnc3RhY2snLCAnc3VidGl0bGUnLCAndGl0bGVBbGlnbicsICd0b29sdGlwJywgJ3Rvb2x0aXBSZW5kZXJlcicsICd2YWx1ZUZvcm1hdHRlcicsICd4QXhpcycsICd5QXhpcycsICd5QXhpczInLCAnem9vbSddLFxuICBtZXRob2RzOiBbJ3JlZnJlc2hUaGVtZScsICdyZXNpemUnLCAncmVwbGF5JywgJ2RyaWxsJywgJ3RvRGF0YVVSTCcsICdnZXRJbnN0YW5jZScsICdzZXRab29tJywgJ3Jlc2V0Wm9vbSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYmFyLWNoYXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnYXhpc1RpY2tzJywgJ2JhckdhcCcsICdiYXJXaWR0aCcsICdjYXRlZ29yeUdhcCcsICdjaGV2cm9uJywgJ2NsaWNrYWJsZScsICdjb3JuZXJSYWRpdXMnLCAnZGVuc2l0eScsICdoZWlnaHRQcm9wJywgJ2xhYmVsJywgJ2xhYmVsUGxvdCcsICdsYWJlbFBvaW50JywgJ2xhYmVsWm9vbUVuZCcsICdsYWJlbFpvb21TdGFydCcsICdsYXlvdXQnLCAnbGVnZW5kJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdub0FuaW1hdGlvbicsICdwb2xhcicsICdwb2xhckhvbGUnLCAncG9sYXJTd2VlcCcsICdzZXJpZXMnLCAnc2hvd0xhYmVscycsICdzaG93VG90YWxzJywgJ3N0YWNrJywgJ3N1YnRpdGxlJywgJ3RpdGxlQWxpZ24nLCAndG9vbHRpcCcsICd0b29sdGlwUmVuZGVyZXInLCAndmFsdWVGb3JtYXR0ZXInLCAneEF4aXMnLCAneUF4aXMnLCAneUF4aXMyJywgJ3pvb20nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEJhckNoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRCYXJDbGljaycsICdtZExlZ2VuZENsaWNrJywgJ21kSG92ZXInLCAnbWRSZWFkeScsICdtZFpvb20nXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kQ2hhcnRDbGlja0RldGFpbCBhcyBJTWRCYXJDaGFydE1kQ2hhcnRDbGlja0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZENoYXJ0U2VyaWVzIGFzIElNZEJhckNoYXJ0TWRDaGFydFNlcmllcyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZENoYXJ0SG92ZXJEZXRhaWwgYXMgSU1kQmFyQ2hhcnRNZENoYXJ0SG92ZXJEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQmFyQ2hhcnQgZXh0ZW5kcyBDb21wb25lbnRzLk1kQmFyQ2hhcnQge1xuXG4gIG1kQmFyQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRCYXJDaGFydE1kQ2hhcnRDbGlja0RldGFpbDxJTWRCYXJDaGFydE1kQ2hhcnRTZXJpZXM+Pj47XG5cbiAgbWRMZWdlbmRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VyaWVzSW5kZXg6IG51bWJlcjsgc2VyaWVzSWQ/OiBzdHJpbmc7IHNlbGVjdGVkOiBib29sZWFuIH0+PjtcblxuICBtZEhvdmVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQmFyQ2hhcnRNZENoYXJ0SG92ZXJEZXRhaWw+PjtcblxuICBtZFJlYWR5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgem9vbSB3aW5kb3cgY2hhbmdlcyAoZHJhZywgc2xpZGVyLCBvciBgc2V0Wm9vbWAvYHJlc2V0Wm9vbWApLlxuICAgKi9cbiAgbWRab29tOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzdGFydEluZGV4OiBudW1iZXI7IGVuZEluZGV4OiBudW1iZXI7IHJlc2V0OiBib29sZWFuIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kQm90dG9tU2hlZXQsXG4gIGlucHV0czogWydib3R0b21EaXZpZGVyJywgJ2Nsb3NlYWJsZScsICdjb250ZW50QWxpZ24nLCAnZGVuc2l0eScsICdoZWFkbGluZScsICdoZWFkbGluZUFsaWduJywgJ29wZW4nLCAnc2NyaW1EaXNtaXNzaWJsZScsICdzY3JvbGxTaGFkb3cnLCAnc2hlZXRBcmlhTGFiZWwnLCAnc2hvd0RyYWdIYW5kbGUnLCAndG9wRGl2aWRlcicsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYm90dG9tLXNoZWV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydib3R0b21EaXZpZGVyJywgJ2Nsb3NlYWJsZScsICdjb250ZW50QWxpZ24nLCAnZGVuc2l0eScsICdoZWFkbGluZScsICdoZWFkbGluZUFsaWduJywgJ29wZW4nLCAnc2NyaW1EaXNtaXNzaWJsZScsICdzY3JvbGxTaGFkb3cnLCAnc2hlZXRBcmlhTGFiZWwnLCAnc2hvd0RyYWdIYW5kbGUnLCAndG9wRGl2aWRlcicsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRCb3R0b21TaGVldCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kT3BlbicsICdtZENsb3NlJywgJ21kQ2FuY2VsJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQm90dG9tU2hlZXQgZXh0ZW5kcyBDb21wb25lbnRzLk1kQm90dG9tU2hlZXQge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgc2hlZXQgb3BlbnNcbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHNoZWV0IGNsb3Nlc1xuICAgKi9cbiAgbWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gZGlzbWlzc2VkIHZpYSBzY3JpbSBjbGljaywgRXNjYXBlLCBkcmFnLCBvciBjbG9zZSBidXR0b25cbiAgICovXG4gIG1kQ2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRCcmVhZGNydW1iSXRlbSxcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlZCcsICdjdXJyZW50JywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2l0ZW1JbmRleCcsICdpdGVtVG90YWwnLCAncmVsJywgJ3RhcmdldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYnJlYWRjcnVtYi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzZWQnLCAnY3VycmVudCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdpdGVtSW5kZXgnLCAnaXRlbVRvdGFsJywgJ3JlbCcsICd0YXJnZXQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEJyZWFkY3J1bWJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRTZWxlY3QnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kQnJlYWRjcnVtYlNlbGVjdERldGFpbCBhcyBJTWRCcmVhZGNydW1iSXRlbU1kQnJlYWRjcnVtYlNlbGVjdERldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRCcmVhZGNydW1iSXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRCcmVhZGNydW1iSXRlbSB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIGFjdGl2YXRlcyBhIG5hdmlnYWJsZSBjcnVtYiDigJQgaS5lLiB3aGVuIGFuIGl0ZW0gd2l0aFxuYSBub24tZW1wdHkgYGhyZWZgIChhbmQgbm90IG1hcmtlZCBgY3VycmVudGAgLyBgZGlzYWJsZWRgKSBpcyBjbGlja2VkIG9yXG5hY3RpdmF0ZWQgd2l0aCBgRW50ZXJgIHdoaWxlIGZvY3VzZWQuIFRoZSBldmVudCBpcyAqKmNhbmNlbGFibGUqKjpcbmNhbGwgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIGZyb20gdGhlIGxpc3RlbmVyIHRvIHN0b3AgdGhlIGJyb3dzZXInc1xuZGVmYXVsdCBuYXZpZ2F0aW9uLiBUaGlzIGlzIHRoZSByZWNvbW1lbmRlZCBob29rIGZvciBTUEEgcm91dGluZyDigJQgbGV0XG50aGUgYnJlYWRjcnVtYiByZW5kZXIgYSByZWFsIGA8YT5gIChzbyByaWdodC1jbGljayAvIG1pZGRsZS1jbGljayAvXG5cIk9wZW4gaW4gbmV3IHRhYlwiIHN0aWxsIHdvcmspLCB0aGVuIGludGVyY2VwdCBgbWRTZWxlY3RgIHRvIHB1c2ggdGhlXG5yb3V0ZSB0aHJvdWdoIHlvdXIgY2xpZW50LXNpZGUgcm91dGVyIGluc3RlYWQgb2YgYSBmdWxsIHBhZ2UgcmVsb2FkLlxuXG5UaGUgZXZlbnQgYnViYmxlcywgc28gY29uc3VtZXJzIGNhbiBhdHRhY2ggYSBzaW5nbGUgbGlzdGVuZXIgb24gdGhlXG5wYXJlbnQgYDxtZC1icmVhZGNydW1icz5gIGZvciBkZWxlZ2F0aW9uLiBUaGUgZXZlbnQgaXMgY29tcG9zZWQsIHNvXG5saXN0ZW5lcnMgb3V0c2lkZSB0aGUgc2hhZG93IHRyZWUgKHRoZSB0eXBpY2FsIGNhc2UpIHJlY2VpdmUgaXQuXG5cbmBgYHRzXG5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZC1icmVhZGNydW1icycpIVxuICAuYWRkRXZlbnRMaXN0ZW5lcignbWRTZWxlY3QnLCAoZSkgPT4ge1xuICAgIGNvbnN0IHsgaHJlZiwgbGFiZWwsIGl0ZW1JbmRleCB9ID0gKGUgYXMgQ3VzdG9tRXZlbnQpLmRldGFpbDtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7ICAgICAgICAgICAgICAvLyBzdG9wIHRoZSA8YT4gZnJvbSBuYXZpZ2F0aW5nXG4gICAgbXlSb3V0ZXIucHVzaChocmVmKTsgICAgICAgICAgICAgLy8gU1BBIG5hdmlnYXRpb25cbiAgfSk7XG5gYGBcbiAgICovXG4gIG1kU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQnJlYWRjcnVtYkl0ZW1NZEJyZWFkY3J1bWJTZWxlY3REZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kQnJlYWRjcnVtYnMsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2V4cGFuZExhYmVsJywgJ2l0ZW1zQWZ0ZXJDb2xsYXBzZScsICdpdGVtc0JlZm9yZUNvbGxhcHNlJywgJ2xhYmVsJywgJ21heEl0ZW1zJywgJ3NlcGFyYXRvciddLFxuICBtZXRob2RzOiBbJ2V4cGFuZCcsICdjb2xsYXBzZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYnJlYWRjcnVtYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZXhwYW5kTGFiZWwnLCAnaXRlbXNBZnRlckNvbGxhcHNlJywgJ2l0ZW1zQmVmb3JlQ29sbGFwc2UnLCAnbGFiZWwnLCAnbWF4SXRlbXMnLCAnc2VwYXJhdG9yJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRCcmVhZGNydW1icyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kRXhwYW5kJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZEJyZWFkY3J1bWJzRXhwYW5kRGV0YWlsIGFzIElNZEJyZWFkY3J1bWJzTWRCcmVhZGNydW1ic0V4cGFuZERldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRCcmVhZGNydW1icyBleHRlbmRzIENvbXBvbmVudHMuTWRCcmVhZGNydW1icyB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIHJldmVhbHMgdGhlIGZ1bGwgYnJlYWRjcnVtYiB0cmFpbCBieSBhY3RpdmF0aW5nXG50aGUgb3ZlcmZsb3cgKFwi4oCmXCIpIHRvZ2dsZSwgb3Igd2hlbiBjb25zdW1lcnMgcHJvZ3JhbW1hdGljYWxseSBjYWxsXG5gZXhwYW5kKClgIC8gYGNvbGxhcHNlKClgLiBOb3QgY2FuY2VsYWJsZSDigJQgdGhlIHZpc2liaWxpdHkgY2hhbmdlXG5oYXMgYWxyZWFkeSBoYXBwZW5lZC4gVXNlIGl0IGZvciBhbmFseXRpY3Mgb3IgdG8gcmVhY3QgdG8gYSB1c2VyXG53aG8gd2FudHMgdG8gc2VlIHRoZSBmdWxsIHBhdGguXG5cbkJ1YmJsZXMgKyBjb21wb3NlZCwgc28gY29uc3VtZXJzIG91dHNpZGUgdGhlIHNoYWRvdyB0cmVlICh0aGUgdHlwaWNhbFxuY2FzZSkgcmVjZWl2ZSBpdC5cbiAgICovXG4gIG1kRXhwYW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQnJlYWRjcnVtYnNNZEJyZWFkY3J1bWJzRXhwYW5kRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEJ1dHRvbixcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZnVsbFdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nJywgJ21pcnJvckljb24nLCAncmlwcGxlJywgJ3JvbGVPdmVycmlkZScsICdzZWxlY3RlZCcsICdzaGFwZScsICdzaGFwZU1vcnBoJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3N1cHByZXNzRXhwYW5kSWNvbkZsaXAnLCAndGFyZ2V0JywgJ3RvZ2dsZScsICd0cmFpbGluZ0ljb24nLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZnVsbFdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nJywgJ21pcnJvckljb24nLCAncmlwcGxlJywgJ3JvbGVPdmVycmlkZScsICdzZWxlY3RlZCcsICdzaGFwZScsICdzaGFwZU1vcnBoJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3N1cHByZXNzRXhwYW5kSWNvbkZsaXAnLCAndGFyZ2V0JywgJ3RvZ2dsZScsICd0cmFpbGluZ0ljb24nLCAndHlwZScsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJywgJ21kQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZEJ1dHRvbkNsaWNrRGV0YWlsIGFzIElNZEJ1dHRvbk1kQnV0dG9uQ2xpY2tEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRCdXR0b25DaGFuZ2VEZXRhaWwgYXMgSU1kQnV0dG9uTWRCdXR0b25DaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5NZEJ1dHRvbiB7XG4gIC8qKlxuICAgKiBGaXJlcyBldmVyeSB0aW1lIHRoZSB1c2VyIGFjdGl2YXRlcyB0aGUgYnV0dG9uIChtb3VzZSBjbGljaywgdG91Y2gsXG5vciBgRW50ZXJgL2BTcGFjZWAgd2hpbGUgZm9jdXNlZCkuIFRoZSBldmVudCBpcyAqKmNhbmNlbGFibGUqKiBhbmRcbnRoZSBkZXRhaWwgcGF5bG9hZCBkZXNjcmliZXMgd2hhdCAqd291bGQqIGhhcHBlbjogdGhlIHBvc3QtY2xpY2tcbnRvZ2dsZSBzdGF0ZSwgdGhlIG5hdmlnYXRpb24gYGhyZWZgLCBhbmQgc28gb24uXG5cbkNhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIGZyb20gYSBsaXN0ZW5lciBzdXBwcmVzc2VzIHRoZVxuZGVmYXVsdCBzaWRlIGVmZmVjdHMgKHRvZ2dsZSBmbGlwICsgYGhyZWZgIG5hdmlnYXRpb24pIGJ1dCBsZXRzXG50aGUgdW5kZXJseWluZyBET00gY2xpY2sgYnViYmxlLiBUaGlzIGlzIHRoZSBob29rIHRvIHVzZSBmb3IgU1BBXG5yb3V0aW5nLCBcImFyZSB5b3Ugc3VyZT9cIiBwcm9tcHRzLCBhc3luYyBjb25maXJtYXRpb24sIGV0Yy5cblxuVGhlIGV2ZW50IGJ1YmJsZXMgYW5kIGlzIGNvbXBvc2VkLCBzbyBsaXN0ZW5lcnMgb3V0c2lkZSB0aGVcbnNoYWRvdyB0cmVlICh0aGUgdHlwaWNhbCBjYXNlKSByZWNlaXZlIGl0LlxuXG5gYGB0c1xuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWQtYnV0dG9uJykhLmFkZEV2ZW50TGlzdGVuZXIoJ21kQ2xpY2snLCAoZSkgPT4ge1xuICBjb25zdCB7IGhyZWYsIHNlbGVjdGVkIH0gPSAoZSBhcyBDdXN0b21FdmVudCkuZGV0YWlsO1xuICBpZiAoIWNvbmZpcm0oJ0NvbnRpbnVlPycpKSBlLnByZXZlbnREZWZhdWx0KCk7XG59KTtcbmBgYFxuICAgKi9cbiAgbWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZEJ1dHRvbk1kQnV0dG9uQ2xpY2tEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdG9nZ2xlIG1vZGUgZmxpcHMgdGhlIGBzZWxlY3RlZGAgc3RhdGUgaW4gcmVzcG9uc2UgdG8gYVxudXNlciBhY3RpdmF0aW9uLiBOb3QgY2FuY2VsYWJsZSDigJQgdGhlIHN0YXRlIGNoYW5nZSBoYXMgYWxyZWFkeVxuaGFwcGVuZWQuIFBhaXIgd2l0aCBgbWRDbGlja2AgKGNhbmNlbGFibGUpIHdoZW4geW91IG5lZWQgYSB2ZXRvLlxuXG5CdWJibGVzIGFuZCBpcyBjb21wb3NlZC5cbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQnV0dG9uTWRCdXR0b25DaGFuZ2VEZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kQnV0dG9uR3JvdXAsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Z1bGxXaWR0aCcsICdyZXF1aXJlZCcsICdzZWxlY3Rpb25Nb2RlJywgJ3NoYXBlJywgJ3NpemUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYnV0dG9uLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Z1bGxXaWR0aCcsICdyZXF1aXJlZCcsICdzZWxlY3Rpb25Nb2RlJywgJ3NoYXBlJywgJ3NpemUnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQnV0dG9uR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFNlbGVjdGlvbkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRCdXR0b25Hcm91cENoYW5nZURldGFpbCBhcyBJTWRCdXR0b25Hcm91cE1kQnV0dG9uR3JvdXBDaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQnV0dG9uR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLk1kQnV0dG9uR3JvdXAge1xuICAvKipcbiAgICogRmlyZXMgZXZlcnkgdGltZSBhIHVzZXIgYWN0aXZhdGlvbiB0b2dnbGVzIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2ZcbmEgY2hpbGQgYnV0dG9uLiBUaGUgZGV0YWlsIG9iamVjdCBkZXNjcmliZXMgYm90aCB0aGUgbmV3IHNlbGVjdGlvblxuc25hcHNob3QgKGB2YWx1ZXNgKSBhbmQgdGhlIGRpZmYgZnJvbSB0aGUgcHJldmlvdXMgc2VsZWN0aW9uXG4oYGFkZGVkYCwgYHJlbW92ZWRgKSwgcGx1cyB0aGUgdW5kZXJseWluZyBgb3JpZ2luYWxFdmVudGAuXG5cbkRpc3RpbmN0IGZyb20gZWFjaCBjaGlsZCBidXR0b24ncyBvd24gYG1kQ2hhbmdlYCAod2hpY2ggZmlyZXMgcGVyXG5pbmRpdmlkdWFsIGJ1dHRvbiB0b2dnbGUpOyB0aGUgZ3JvdXAncyBgbWRTZWxlY3Rpb25DaGFuZ2VgIGZpcmVzXG5vbmNlIHBlciB1c2VyIGFjdGl2YXRpb24gYW5kIHJlcG9ydHMgdGhlICpncm91cC1sZXZlbCogc3RhdGUuXG5cbkJ1YmJsZXMgYW5kIGlzIGNvbXBvc2VkIHNvIGxpc3RlbmVycyBvdXRzaWRlIHRoZSBzaGFkb3cgdHJlZVxucmVjZWl2ZSBpdC4gQGV4YW1wbGUgYGBgdHNcbmdyb3VwLmFkZEV2ZW50TGlzdGVuZXIoJ21kU2VsZWN0aW9uQ2hhbmdlJywgKGU6IEN1c3RvbUV2ZW50PE1kQnV0dG9uR3JvdXBDaGFuZ2VEZXRhaWw+KSA9PiB7XG4gIGNvbnNvbGUubG9nKCdub3cgc2VsZWN0ZWQ6JywgZS5kZXRhaWwudmFsdWVzKTtcbiAgY29uc29sZS5sb2coJ2p1c3QgYWRkZWQ6JywgZS5kZXRhaWwuYWRkZWQpO1xuICBjb25zb2xlLmxvZygnanVzdCByZW1vdmVkOicsIGUuZGV0YWlsLnJlbW92ZWQpO1xufSk7XG5gYGBcbiAgICovXG4gIG1kU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQnV0dG9uR3JvdXBNZEJ1dHRvbkdyb3VwQ2hhbmdlRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZENhcmQsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2RyYWdFbmFibGVkJywgJ2Z1bGxIZWlnaHQnLCAnZnVsbFdpZHRoJywgJ2ludGVyYWN0aXZlJywgJ3JpcHBsZScsICdzb2Z0RGlzYWJsZWQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkcmFnRW5hYmxlZCcsICdmdWxsSGVpZ2h0JywgJ2Z1bGxXaWR0aCcsICdpbnRlcmFjdGl2ZScsICdyaXBwbGUnLCAnc29mdERpc2FibGVkJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZENhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJywgJ21kRHJhZ1N0YXJ0JywgJ21kRHJhZ01vdmUnLCAnbWREcmFnRW5kJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZENhcmREcmFnRGV0YWlsIGFzIElNZENhcmRNZENhcmREcmFnRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZENhcmQgZXh0ZW5kcyBDb21wb25lbnRzLk1kQ2FyZCB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGFuIGludGVyYWN0aXZlIGNhcmQgaXMgY2xpY2tlZCBvciBhY3RpdmF0ZWQgdmlhIGtleWJvYXJkXG4gICAqL1xuICBtZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICAvKipcbiAgICogRW1pdHMgb25jZSB3aGVuIGEgZHJhZ2dhYmxlIGNhcmQgc3RhcnRzIGJlaW5nIGRyYWdnZWQgKGFmdGVyIGNyb3NzaW5nIHRoZSBtb3ZlbWVudCB0aHJlc2hvbGQpXG4gICAqL1xuICBtZERyYWdTdGFydDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZENhcmRNZENhcmREcmFnRGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyBjb250aW51b3VzbHkgYXMgYSBkcmFnZ2VkIGNhcmQgbW92ZXMg4oCUIHVzZSBmb3IgZHJvcC16b25lIGRldGVjdGlvbiBvciBwb3NpdGlvbiB0cmFja2luZ1xuICAgKi9cbiAgbWREcmFnTW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZENhcmRNZENhcmREcmFnRGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgZHJhZ2dhYmxlIGNhcmQgaXMgcmVsZWFzZWQgYWZ0ZXIgZHJhZ2dpbmdcbiAgICovXG4gIG1kRHJhZ0VuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZENhcmRNZENhcmREcmFnRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZENoZWNrYm94LFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdpbmRldGVybWluYXRlJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc29mdERpc2FibGVkJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJ10sXG4gIG1ldGhvZHM6IFsnZ2V0VmFsaWRpdHknLCAnY2hlY2tWYWxpZGl0eScsICdyZXBvcnRWYWxpZGl0eScsICdzZXRDdXN0b21WYWxpZGl0eSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtY2hlY2tib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvclRleHQnLCAnaW5kZXRlcm1pbmF0ZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NvZnREaXNhYmxlZCcsICdzdXBwb3J0aW5nVGV4dCcsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQ2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENoYW5nZScsICdtZFZhbGlkaXR5Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLk1kQ2hlY2tib3gge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBjaGVja2VkIG9yIGluZGV0ZXJtaW5hdGUgc3RhdGUgY2hhbmdlc1xuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNoZWNrZWQ6IGJvb2xlYW47IGluZGV0ZXJtaW5hdGU6IGJvb2xlYW4gfT4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZENoaXAsXG4gIGlucHV0czogWydhcHBlYXJhbmNlJywgJ2NvbG9yJywgJ2NvbnRlbnRBbGlnbicsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2VsZXZhdGVkJywgJ2ljb24nLCAnbGFiZWwnLCAncmVtb3ZhYmxlJywgJ3NlbGVjdGFibGUnLCAnc2VsZWN0ZWQnLCAnc29mdERpc2FibGVkJywgJ3RyYWlsaW5nSWNvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1jaGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBlYXJhbmNlJywgJ2NvbG9yJywgJ2NvbnRlbnRBbGlnbicsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2VsZXZhdGVkJywgJ2ljb24nLCAnbGFiZWwnLCAncmVtb3ZhYmxlJywgJ3NlbGVjdGFibGUnLCAnc2VsZWN0ZWQnLCAnc29mdERpc2FibGVkJywgJ3RyYWlsaW5nSWNvbicsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRDaGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDbGljaycsICdtZFNlbGVjdCcsICdtZFJlbW92ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZENoaXAgZXh0ZW5kcyBDb21wb25lbnRzLk1kQ2hpcCB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjaGlwIGlzIGNsaWNrZWQgb3IgYWN0aXZhdGVkIHZpYSBrZXlib2FyZFxuICAgKi9cbiAgbWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHNlbGVjdGVkIHN0YXRlIGNoYW5nZXMgKGZpbHRlci9pbnB1dClcbiAgICovXG4gIG1kU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZDogYm9vbGVhbiB9Pj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB0cmFpbGluZyByZW1vdmUgKFwi4pyVXCIpIGJ1dHRvbiBpcyBhY3RpdmF0ZWQgb24gYSByZW1vdmFibGVcbmNoaXAgKGJ5IGNsaWNrLCBFbnRlciwgU3BhY2UsIERlbGV0ZSwgb3IgQmFja3NwYWNlKS5cblxuVGhlIGV2ZW50IGlzICoqY2FuY2VsYWJsZSoqOiBieSBkZWZhdWx0LCBhZnRlciBgbWRSZW1vdmVgIGlzIGRpc3BhdGNoZWRcbnRoZSBjaGlwIHJlbW92ZXMgaXRzZWxmIGZyb20gdGhlIERPTS4gQ2FsbCBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgaW4gYVxuaGFuZGxlciB0byBrZWVwIHRoZSBjaGlwIG1vdW50ZWQgKGUuZy4gd2hlbiB5b3VyIHN0YXRlIGxheWVyIG93bnMgdGhlXG5saXN0IGFuZCB3aWxsIHJlLXJlbmRlciB3aXRoIHRoZSBjaGlwIGdvbmUpLlxuICAgKi9cbiAgbWRSZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZENvbG9yUGlja2VyLFxuICBpbnB1dHM6IFsnYWxwaGEnLCAnYXJpYUxhYmVsUHJvcCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Rpc21pc3NPbk91dHNpZGVDbGljaycsICdmb3JtYXQnLCAnb3BlbicsICdwcmVzZXRzJywgJ3Nob3dIZXgnLCAnc2hvd0lucHV0cycsICd2YWx1ZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtY29sb3ItcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbHBoYScsICdhcmlhTGFiZWxQcm9wJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZGlzbWlzc09uT3V0c2lkZUNsaWNrJywgJ2Zvcm1hdCcsICdvcGVuJywgJ3ByZXNldHMnLCAnc2hvd0hleCcsICdzaG93SW5wdXRzJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZENvbG9yUGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRJbnB1dCcsICdtZENoYW5nZScsICdtZE9wZW5DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRDb2xvclBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuTWRDb2xvclBpY2tlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIG9uIGV2ZXJ5IGNoYW5nZSB3aGlsZSB0aGUgdXNlciBkcmFncyAvIHR5cGVzLlxuICAgKi9cbiAgbWRJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgY29tbWl0cyBhIHZhbHVlIChyZWxlYXNlIHBvaW50ZXIsIGJsdXIgaW5wdXQsXG5FbnRlciwgb3IgY2xpY2sgYSBwcmVzZXQpLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBwb3BvdmVyIG9wZW5zIG9yIGNsb3Nlcy5cbiAgICovXG4gIG1kT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgb3BlbjogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZERhdGVQaWNrZXIsXG4gIGlucHV0czogWydjYWxlbmRhckljb24nLCAnY2FuY2VsTGFiZWwnLCAnY2hvb3NlTW9udGhBbmRZZWFyTGFiZWwnLCAnY2hvb3NlTW9udGhMYWJlbCcsICdjaG9vc2VNb250aFllYXJMYWJlbCcsICdjaG9vc2VZZWFyTGFiZWwnLCAnY2xlYXJMYWJlbCcsICdjbGVhcmFibGUnLCAnY2xvc2VDYWxlbmRhckxhYmVsJywgJ2NvbW1pdE9uU2VsZWN0JywgJ2RhdGVTZXBhcmF0b3InLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlbnRlckRhdGVzTGFiZWwnLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2ZpZWxkVmFyaWFudCcsICdmaXJzdERheU9mV2VlaycsICdoZWFkbGluZScsICdpbnZhbGlkRGF0ZUxhYmVsJywgJ2lzRGF0ZURpc2FibGVkJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnbmV4dE1vbnRoTGFiZWwnLCAnbmV4dFllYXJMYWJlbCcsICdva0xhYmVsJywgJ29wZW4nLCAnb3BlbkNhbGVuZGFyTGFiZWwnLCAnb3V0c2lkZUNsaWNrRGlzbWlzc2libGUnLCAncGxhY2Vob2xkZXInLCAncHJldmlvdXNNb250aExhYmVsJywgJ3ByZXZpb3VzWWVhckxhYmVsJywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAnc2NyaW1EaXNtaXNzaWJsZScsICdzZWxlY3REYXRlTGFiZWwnLCAnc3VwcG9ydGluZ1RleHQnLCAndG9nZ2xlQ2FsZW5kYXJMYWJlbCcsICd0b2dnbGVUZXh0TGFiZWwnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnLCAndmFyaWFudCcsICd5ZWFyR3JpZExhYmVsJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZScsICdjbGVhcicsICdmb2N1c0lucHV0JywgJ2dldFZhbGlkaXR5JywgJ2NoZWNrVmFsaWRpdHknLCAncmVwb3J0VmFsaWRpdHknLCAnc2V0Q3VzdG9tVmFsaWRpdHknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWRhdGUtcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYWxlbmRhckljb24nLCAnY2FuY2VsTGFiZWwnLCAnY2hvb3NlTW9udGhBbmRZZWFyTGFiZWwnLCAnY2hvb3NlTW9udGhMYWJlbCcsICdjaG9vc2VNb250aFllYXJMYWJlbCcsICdjaG9vc2VZZWFyTGFiZWwnLCAnY2xlYXJMYWJlbCcsICdjbGVhcmFibGUnLCAnY2xvc2VDYWxlbmRhckxhYmVsJywgJ2NvbW1pdE9uU2VsZWN0JywgJ2RhdGVTZXBhcmF0b3InLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlbnRlckRhdGVzTGFiZWwnLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2ZpZWxkVmFyaWFudCcsICdmaXJzdERheU9mV2VlaycsICdoZWFkbGluZScsICdpbnZhbGlkRGF0ZUxhYmVsJywgJ2lzRGF0ZURpc2FibGVkJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnbmV4dE1vbnRoTGFiZWwnLCAnbmV4dFllYXJMYWJlbCcsICdva0xhYmVsJywgJ29wZW4nLCAnb3BlbkNhbGVuZGFyTGFiZWwnLCAnb3V0c2lkZUNsaWNrRGlzbWlzc2libGUnLCAncGxhY2Vob2xkZXInLCAncHJldmlvdXNNb250aExhYmVsJywgJ3ByZXZpb3VzWWVhckxhYmVsJywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAnc2NyaW1EaXNtaXNzaWJsZScsICdzZWxlY3REYXRlTGFiZWwnLCAnc3VwcG9ydGluZ1RleHQnLCAndG9nZ2xlQ2FsZW5kYXJMYWJlbCcsICd0b2dnbGVUZXh0TGFiZWwnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnLCAndmFyaWFudCcsICd5ZWFyR3JpZExhYmVsJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWREYXRlUGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnLCAnbWRTZWxlY3RlZCcsICdtZElucHV0JywgJ21kT3BlbicsICdtZENsb3NlJywgJ21kQ2FuY2VsJywgJ21kVmlld0NoYW5nZScsICdtZE1lbnVPcGVuJywgJ21kTWVudVNlbGVjdCcsICdtZE1vZGVDaGFuZ2UnLCAnbWRWYWxpZGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWREYXRlUGlja2VyQ2hhbmdlRGV0YWlsIGFzIElNZERhdGVQaWNrZXJNZERhdGVQaWNrZXJDaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWREYXRlUGlja2VyU2VsZWN0ZWREZXRhaWwgYXMgSU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlclNlbGVjdGVkRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kRGF0ZVBpY2tlclZpZXdDaGFuZ2VEZXRhaWwgYXMgSU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlclZpZXdDaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWREYXRlUGlja2VyTWVudU9wZW5EZXRhaWwgYXMgSU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlck1lbnVPcGVuRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kRGF0ZVBpY2tlck1lbnVTZWxlY3REZXRhaWwgYXMgSU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlck1lbnVTZWxlY3REZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWREYXRlUGlja2VyTW9kZUNoYW5nZURldGFpbCBhcyBJTWREYXRlUGlja2VyTWREYXRlUGlja2VyTW9kZUNoYW5nZURldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWREYXRlUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5NZERhdGVQaWNrZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNvbW1pdHMgYSBzZWxlY3Rpb24uXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZERhdGVQaWNrZXJNZERhdGVQaWNrZXJDaGFuZ2VEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGEgZGF5IGluIHRoZSBjYWxlbmRhciAoY2xpY2sgb3Iga2V5Ym9hcmQpLlxuICAgKi9cbiAgbWRTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZERhdGVQaWNrZXJNZERhdGVQaWNrZXJTZWxlY3RlZERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBvbiBldmVyeSBrZXlzdHJva2UgaW4gYSB0ZXh0LWVudHJ5IGZpZWxkLlxuICAgKi9cbiAgbWRJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHBpY2tlciBvcGVucy5cbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcGlja2VyIGNsb3NlcyBmb3IgYW55IHJlYXNvbi5cbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgZGlzbWlzc2VzIHdpdGhvdXQgY29tbWl0dGluZyAoc2NyaW0sIENhbmNlbCwgRXNjKS5cbiAgICovXG4gIG1kQ2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkaXNwbGF5ZWQgY2FsZW5kYXIgbW9udGgveWVhciBjaGFuZ2VzIGZyb20gdXNlciBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgbWRWaWV3Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlclZpZXdDaGFuZ2VEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBvcGVucyB0aGUgbW9udGggb3IgeWVhciBzZWxlY3Rpb24gbWVudSAvIGdyaWQuXG4gICAqL1xuICBtZE1lbnVPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlck1lbnVPcGVuRGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgcGlja3MgYSBtb250aCBvciB5ZWFyIGZyb20gYSBzZWxlY3Rpb24gbWVudSAvIGdyaWQuXG4gICAqL1xuICBtZE1lbnVTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWREYXRlUGlja2VyTWREYXRlUGlja2VyTWVudVNlbGVjdERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIHRvZ2dsZXMgYmV0d2VlbiBjYWxlbmRhciBhbmQgdHlwZWQtZW50cnkgdmlld3MuXG4gICAqL1xuICBtZE1vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWREYXRlUGlja2VyTWREYXRlUGlja2VyTW9kZUNoYW5nZURldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZERpYWxvZyxcbiAgaW5wdXRzOiBbJ2NhbmNlbExhYmVsJywgJ2Nsb3NlTGFiZWwnLCAnZGVuc2l0eScsICdkaXZpZGVyJywgJ2Z1bGxzY3JlZW4nLCAnaGVhZGVyRGl2aWRlcicsICdoZWFkbGluZScsICdpY29uJywgJ2xvY2FsZScsICdva0xhYmVsJywgJ29wZW4nLCAnc2NyaW1EaXNtaXNzaWJsZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWRpYWxvZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FuY2VsTGFiZWwnLCAnY2xvc2VMYWJlbCcsICdkZW5zaXR5JywgJ2RpdmlkZXInLCAnZnVsbHNjcmVlbicsICdoZWFkZXJEaXZpZGVyJywgJ2hlYWRsaW5lJywgJ2ljb24nLCAnbG9jYWxlJywgJ29rTGFiZWwnLCAnb3BlbicsICdzY3JpbURpc21pc3NpYmxlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWREaWFsb2cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZE9wZW4nLCAnbWRDbG9zZScsICdtZENhbmNlbCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZERpYWxvZyBleHRlbmRzIENvbXBvbmVudHMuTWREaWFsb2cge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgZGlhbG9nIG9wZW5zXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBkaWFsb2cgY2xvc2VzXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBkaXNtaXNzZWQgdmlhIHNjcmltIG9yIEVzY2FwZVxuICAgKi9cbiAgbWRDYW5jZWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZERpdmlkZXIsXG4gIGlucHV0czogWydpbnNldCcsICdpbnNldEVuZCcsICdpbnNldFN0YXJ0JywgJ3ZlcnRpY2FsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1kaXZpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpbnNldCcsICdpbnNldEVuZCcsICdpbnNldFN0YXJ0JywgJ3ZlcnRpY2FsJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWREaXZpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWREaXZpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5NZERpdmlkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kRmFiLFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdleHRlbmRlZCcsICdpY29uJywgJ2xhYmVsJywgJ2xvd2VyZWQnLCAncmlwcGxlJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWZhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdleHRlbmRlZCcsICdpY29uJywgJ2xhYmVsJywgJ2xvd2VyZWQnLCAncmlwcGxlJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEZhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRGYWIgZXh0ZW5kcyBDb21wb25lbnRzLk1kRmFiIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHVzZXIgYWN0aXZhdGVzIHRoZSBGQUIgKG1vdXNlIGNsaWNrLCB0b3VjaCwgb3JcbmBFbnRlcmAvYFNwYWNlYCB3aGlsZSBmb2N1c2VkKS4gTm90IGVtaXR0ZWQgd2hlbiBgZGlzYWJsZWRgIG9yXG5gc29mdC1kaXNhYmxlZGAuIEJ1YmJsZXMgYW5kIGlzIGNvbXBvc2VkIHNvIGEgZGVsZWdhdGVkIGxpc3RlbmVyXG5vbiBhIHBhcmVudCBlbGVtZW50IHdvcmtzLlxuXG5gYGB0c1xuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWQtZmFiJykhLmFkZEV2ZW50TGlzdGVuZXIoJ21kQ2xpY2snLCAoZSkgPT4ge1xuICBjb25zdCBtb3VzZUV2ZW50ID0gKGUgYXMgQ3VzdG9tRXZlbnQ8TW91c2VFdmVudD4pLmRldGFpbDtcbiAgY29uc29sZS5sb2coJ0ZBQiBjbGlja2VkIGF0JywgbW91c2VFdmVudC5jbGllbnRYLCBtb3VzZUV2ZW50LmNsaWVudFkpO1xufSk7XG5gYGBcbiAgICovXG4gIG1kQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEZhYk1lbnUsXG4gIGlucHV0czogWydhbmNob3InLCAnZGVuc2l0eScsICdtZW51TGFiZWwnLCAnb3BlbicsICdwbGFjZW1lbnQnLCAncXVpY2snLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWZhYi1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmNob3InLCAnZGVuc2l0eScsICdtZW51TGFiZWwnLCAnb3BlbicsICdwbGFjZW1lbnQnLCAncXVpY2snLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kRmFiTWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kT3BlbicsICdtZENsb3NlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kRmFiTWVudSBleHRlbmRzIENvbXBvbmVudHMuTWRGYWJNZW51IHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIG1lbnUgb3BlbnMuXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBtZW51IGNsb3Nlcy5cbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEZhYk1lbnVJdGVtLFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdpY29uJywgJ2xhYmVsJywgJ3JvdmluZ0ZvY3VzVmlzaWJsZScsICdzb2Z0RGlzYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWZhYi1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbicsICdsYWJlbCcsICdyb3ZpbmdGb2N1c1Zpc2libGUnLCAnc29mdERpc2FibGVkJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRGYWJNZW51SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRGYWJNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRGYWJNZW51SXRlbSB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBpdGVtIGlzIGFjdGl2YXRlZC5cbiAgICovXG4gIG1kQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEljb25CdXR0b24sXG4gIGlucHV0czogWydidXR0b25XaWR0aCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdyaXBwbGUnLCAnc2VsZWN0ZWQnLCAnc2VsZWN0ZWRJY29uJywgJ3NoYXBlJywgJ3NoYXBlTW9ycGgnLCAnc2l6ZScsICdzb2Z0RGlzYWJsZWQnLCAndGFyZ2V0JywgJ3RvZ2dsZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1pY29uLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYnV0dG9uV2lkdGgnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAncmlwcGxlJywgJ3NlbGVjdGVkJywgJ3NlbGVjdGVkSWNvbicsICdzaGFwZScsICdzaGFwZU1vcnBoJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3RhcmdldCcsICd0b2dnbGUnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kSWNvbkJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRJY29uQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5NZEljb25CdXR0b24ge1xuICAvKipcbiAgICogRmlyZXMgb24gcG9pbnRlciBvciBrZXlib2FyZCBhY3RpdmF0aW9uLiBEZXRhaWwgaW5jbHVkZXMgdG9nZ2xlIGBzZWxlY3RlZGAgc3RhdGUuXG4gICAqL1xuICBtZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZDogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZExpbmVDaGFydCxcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhbmltYXRpb25EdXJhdGlvbicsICdhcmVhJywgJ2F4aXNUaWNrcycsICdjb25uZWN0TnVsbHMnLCAnY3VydmUnLCAnZGVuc2l0eScsICdncmlkJywgJ2hlaWdodFByb3AnLCAnaW52ZXJ0ZWQnLCAnbGFiZWwnLCAnbGFiZWxFbXB0eScsICdsYWJlbFBsb3QnLCAnbGFiZWxQb2ludCcsICdsYWJlbFpvb21FbmQnLCAnbGFiZWxab29tU3RhcnQnLCAnbGVnZW5kJywgJ2xpbmVXaWR0aCcsICdsb2FkaW5nJywgJ2xvYWRpbmdMYWJlbCcsICdsb2NhbGUnLCAnbWFya0xpbmVzJywgJ21hcmtTaXplJywgJ25vQW5pbWF0aW9uJywgJ3NlcmllcycsICdzZXJpZXNMYWJlbHMnLCAnc2hvd0xhYmVscycsICdzaG93TGluZScsICdzaG93TWFya3MnLCAnc3RhY2snLCAnc3VidGl0bGUnLCAnc3VtbWFyeScsICd0YWJsZUxhYmVscycsICd0aXRsZUFsaWduJywgJ3Rvb2x0aXAnLCAndG9vbHRpcFJlbmRlcmVyJywgJ3ZhbHVlRm9ybWF0dGVyJywgJ3hBeGlzJywgJ3lBeGVzJywgJ3lBeGlzJywgJ3pvb20nXSxcbiAgbWV0aG9kczogWydyZWZyZXNoVGhlbWUnLCAncmVzaXplJywgJ3JlcGxheScsICd0b0RhdGFVUkwnLCAnZ2V0SW5zdGFuY2UnLCAnc2V0Wm9vbScsICdyZXNldFpvb20nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWxpbmUtY2hhcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhbmltYXRpb25EdXJhdGlvbicsICdhcmVhJywgJ2F4aXNUaWNrcycsICdjb25uZWN0TnVsbHMnLCAnY3VydmUnLCAnZGVuc2l0eScsICdncmlkJywgJ2hlaWdodFByb3AnLCAnaW52ZXJ0ZWQnLCAnbGFiZWwnLCAnbGFiZWxFbXB0eScsICdsYWJlbFBsb3QnLCAnbGFiZWxQb2ludCcsICdsYWJlbFpvb21FbmQnLCAnbGFiZWxab29tU3RhcnQnLCAnbGVnZW5kJywgJ2xpbmVXaWR0aCcsICdsb2FkaW5nJywgJ2xvYWRpbmdMYWJlbCcsICdsb2NhbGUnLCAnbWFya0xpbmVzJywgJ21hcmtTaXplJywgJ25vQW5pbWF0aW9uJywgJ3NlcmllcycsICdzZXJpZXNMYWJlbHMnLCAnc2hvd0xhYmVscycsICdzaG93TGluZScsICdzaG93TWFya3MnLCAnc3RhY2snLCAnc3VidGl0bGUnLCAnc3VtbWFyeScsICd0YWJsZUxhYmVscycsICd0aXRsZUFsaWduJywgJ3Rvb2x0aXAnLCAndG9vbHRpcFJlbmRlcmVyJywgJ3ZhbHVlRm9ybWF0dGVyJywgJ3hBeGlzJywgJ3lBeGVzJywgJ3lBeGlzJywgJ3pvb20nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZExpbmVDaGFydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kTWFya2VyQ2xpY2snLCAnbWRMaW5lQ2xpY2snLCAnbWRBcmVhQ2xpY2snLCAnbWRBeGlzQ2xpY2snLCAnbWRMZWdlbmRDbGljaycsICdtZEhvdmVyJywgJ21kUmVhZHknLCAnbWRab29tJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZENoYXJ0Q2xpY2tEZXRhaWwgYXMgSU1kTGluZUNoYXJ0TWRDaGFydENsaWNrRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kQ2hhcnRYWVNlcmllcyBhcyBJTWRMaW5lQ2hhcnRNZENoYXJ0WFlTZXJpZXMgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRDaGFydEF4aXNDbGlja0RldGFpbCBhcyBJTWRMaW5lQ2hhcnRNZENoYXJ0QXhpc0NsaWNrRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kQ2hhcnRIb3ZlckRldGFpbCBhcyBJTWRMaW5lQ2hhcnRNZENoYXJ0SG92ZXJEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTGluZUNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5NZExpbmVDaGFydCB7XG4gIC8qKlxuICAgKiBGaXJlcyBvbiBtYXJrZXIgY2xpY2suIGBkYXRhSW5kZXhgIGFkZHJlc3NlcyB0aGUgY2xpY2tlZCBzZXJpZXMnIG93blxuYGRhdGFgIGFycmF5IChpdHMgcG9pbnQgaW5kZXgsIGZvciBzZXJpZXMgdGhhdCBjYXJyeSB0aGVpciBvd24geCkuXG4gICAqL1xuICBtZE1hcmtlckNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kTGluZUNoYXJ0TWRDaGFydENsaWNrRGV0YWlsPElNZExpbmVDaGFydE1kQ2hhcnRYWVNlcmllcz4+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gYSBzZXJpZXMnIGRyYXduIGxpbmUgaXMgY2xpY2tlZCAqYmV0d2VlbiogaXRzIGRhdGEgcG9pbnRzIChhXG5jbGljayBvbiBhIHBvaW50IGVtaXRzIGBtZE1hcmtlckNsaWNrYCBpbnN0ZWFkKS4gYGRhdGFJbmRleGAgaXMgdGhlIHBvaW50XG50aGUgY2xpY2sgaXMgbmVhcmVzdCBhbG9uZyB4LlxuICAgKi9cbiAgbWRMaW5lQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRMaW5lQ2hhcnRNZENoYXJ0Q2xpY2tEZXRhaWw8SU1kTGluZUNoYXJ0TWRDaGFydFhZU2VyaWVzPj4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIHNlcmllcycgZmlsbGVkIGFyZWEgaXMgY2xpY2tlZCAoYGFyZWFgIGNoYXJ0cyBvbmx5KSDigJQgdGhlXG5yZWdpb24gYmV0d2VlbiB0aGF0IHNlcmllcycgbGluZSBhbmQgaXRzIGJhc2VsaW5lLCBleGNsdWRpbmcgaXRzIGxpbmUgYW5kXG5wb2ludHMuIGBkYXRhSW5kZXhgIGlzIHRoZSBwb2ludCB0aGUgY2xpY2sgaXMgbmVhcmVzdCBhbG9uZyB4LlxuICAgKi9cbiAgbWRBcmVhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRMaW5lQ2hhcnRNZENoYXJ0Q2xpY2tEZXRhaWw8SU1kTGluZUNoYXJ0TWRDaGFydFhZU2VyaWVzPj4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgcGxvdCBiYWNrZ3JvdW5kIGlzIGNsaWNrZWQgKGluc2lkZSB0aGUgcGxvdCwgYnV0IG5vdCBvbiBhXG5tYXJrLCBsaW5lIG9yIGFyZWEpOiB0aGUgbmVhcmVzdCB4IHBvc2l0aW9uIHBsdXMgZXZlcnkgdmlzaWJsZSBzZXJpZXMnXG52YWx1ZSB0aGVyZS5cbiAgICovXG4gIG1kQXhpc0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kTGluZUNoYXJ0TWRDaGFydEF4aXNDbGlja0RldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIGxlZ2VuZCBlbnRyeSBpcyBjbGlja2VkLlxuICAgKi9cbiAgbWRMZWdlbmRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VyaWVzSW5kZXg6IG51bWJlcjsgc2VyaWVzSWQ/OiBzdHJpbmc7IHNlbGVjdGVkOiBib29sZWFuIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzICh0aHJvdHRsZWQgdG8gckFGKSBhcyB0aGUgcG9pbnRlciBjcm9zc2VzIHRoZSBwbG90LlxuICAgKi9cbiAgbWRIb3ZlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZExpbmVDaGFydE1kQ2hhcnRIb3ZlckRldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgYWZ0ZXIgdGhlIGNoYXJ0IGZpbmlzaGVzIGl0cyBpbml0aWFsIHJlbmRlci5cbiAgICovXG4gIG1kUmVhZHk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB6b29tIHdpbmRvdyBjaGFuZ2VzIChkcmFnLCBzbGlkZXIgb3IgYHNldFpvb21gL2ByZXNldFpvb21gKS5cbiAgICovXG4gIG1kWm9vbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3RhcnRJbmRleDogbnVtYmVyOyBlbmRJbmRleDogbnVtYmVyOyByZXNldDogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZExpc3QsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2ludGVyYWN0aW9uTW9kZScsICdsYWJlbCcsICdsYWJlbGxlZGJ5JywgJ2xpc3RTdHlsZScsICdyZW9yZGVyYWJsZScsICdyb2xlT3ZlcnJpZGUnLCAnc2VsZWN0aW9uTW9kZSddLFxuICBtZXRob2RzOiBbJ2FjdGl2YXRlTmV4dCcsICdhY3RpdmF0ZVByZXZpb3VzJywgJ3NlbGVjdEl0ZW0nLCAnZ2V0U2VsZWN0ZWRJbmRpY2VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2ludGVyYWN0aW9uTW9kZScsICdsYWJlbCcsICdsYWJlbGxlZGJ5JywgJ2xpc3RTdHlsZScsICdyZW9yZGVyYWJsZScsICdyb2xlT3ZlcnJpZGUnLCAnc2VsZWN0aW9uTW9kZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kU2VsZWN0JywgJ21kQWN0aXZhdGUnLCAnbWRSZW9yZGVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZExpc3RTZWxlY3REZXRhaWwgYXMgSU1kTGlzdE1kTGlzdFNlbGVjdERldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5NZExpc3Qge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHNlbGVjdGlvbiBjaGFuZ2VzIHZpYSB1c2VyIGlucHV0IChjbGljayAvIEVudGVyIC8gU3BhY2UpLlxuICAgKi9cbiAgbWRTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRMaXN0TWRMaXN0U2VsZWN0RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW5ldmVyIHJvdmluZyBmb2N1cyBsYW5kcyBvbiBhIGRpZmZlcmVudCByb3cuXG4gICAqL1xuICBtZEFjdGl2YXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyOyBpdGVtOiBIVE1MTWRMaXN0SXRlbUVsZW1lbnQgfT4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciBhIGRyYWcgKG9yIGtleWJvYXJkKSByZW9yZGVyIGNvbXBsZXRlcy5cblxuLSBgZnJvbWAgLyBgdG9gOiB0aGUgbW92ZWQgcm93J3Mgb2xkIGFuZCBuZXcgcG9zaXRpb25zIChpdGVtIGluZGljZXMsXG4gIGlnbm9yaW5nIG5vbi1pdGVtIGNoaWxkcmVuIGxpa2UgZGl2aWRlcnMpLlxuLSBgb3JkZXJgOiB0aGUgbmV3IG9yZGVyIGV4cHJlc3NlZCBhcyB0aGUgb3JpZ2luYWwgKGFzLWF1dGhvcmVkKSBpbmRpY2VzLFxuICBzbyBgb3JkZXJbbmV3UG9zaXRpb25dID09PSBvcmlnaW5hbFBvc2l0aW9uYC4gVXNlIGl0IHRvIHJlb3JkZXIgYVxuICBiYWNraW5nIGRhdGEgYXJyYXkgaW4gb25lIHBhc3MuXG4gICAqL1xuICBtZFJlb3JkZXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGZyb206IG51bWJlcjsgdG86IG51bWJlcjsgb3JkZXI6IG51bWJlcltdIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTGlzdEl0ZW0sXG4gIGlucHV0czogWydjb250YWluZXJSb2xlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXhwYW5kYWJsZScsICdleHBhbmRlZCcsICdoZWFkbGluZScsICdocmVmJywgJ2ludGVyYWN0aW9uTW9kZScsICdsZWFkaW5nQXZhdGFyJywgJ2xlYWRpbmdBdmF0YXJBbHQnLCAnbGVhZGluZ0F2YXRhckxhYmVsJywgJ2xlYWRpbmdBdmF0YXJOYW1lJywgJ2xlYWRpbmdJY29uJywgJ2xlYWRpbmdJbWFnZScsICdsZWFkaW5nSW1hZ2VBbHQnLCAnbGluZXMnLCAnb3ZlcmxpbmUnLCAncmVvcmRlcmFibGUnLCAncm92aW5nRm9jdXNWaXNpYmxlJywgJ3NlbGVjdGVkJywgJ3NlbGVjdGlvbk1vZGUnLCAnc29mdERpc2FibGVkJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3RhYmJhYmxlJywgJ3RhcmdldCcsICd0cmFpbGluZ0ljb24nLCAndHJhaWxpbmdTdXBwb3J0aW5nVGV4dCcsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnZm9jdXNJdGVtJywgJ3RvZ2dsZScsICdleHBhbmQnLCAnY29sbGFwc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGFpbmVyUm9sZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2V4cGFuZGFibGUnLCAnZXhwYW5kZWQnLCAnaGVhZGxpbmUnLCAnaHJlZicsICdpbnRlcmFjdGlvbk1vZGUnLCAnbGVhZGluZ0F2YXRhcicsICdsZWFkaW5nQXZhdGFyQWx0JywgJ2xlYWRpbmdBdmF0YXJMYWJlbCcsICdsZWFkaW5nQXZhdGFyTmFtZScsICdsZWFkaW5nSWNvbicsICdsZWFkaW5nSW1hZ2UnLCAnbGVhZGluZ0ltYWdlQWx0JywgJ2xpbmVzJywgJ292ZXJsaW5lJywgJ3Jlb3JkZXJhYmxlJywgJ3JvdmluZ0ZvY3VzVmlzaWJsZScsICdzZWxlY3RlZCcsICdzZWxlY3Rpb25Nb2RlJywgJ3NvZnREaXNhYmxlZCcsICdzdXBwb3J0aW5nVGV4dCcsICd0YWJiYWJsZScsICd0YXJnZXQnLCAndHJhaWxpbmdJY29uJywgJ3RyYWlsaW5nU3VwcG9ydGluZ1RleHQnLCAndHlwZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJywgJ21kSXRlbUNsaWNrJywgJ21kSXRlbVNlbGVjdCcsICdtZFJlcXVlc3RBY3RpdmF0aW9uJywgJ21kSXRlbVJlcXVlc3RSZW9yZGVyJywgJ21kRXhwYW5kJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZExpc3RJdGVtRXhwYW5kRGV0YWlsIGFzIElNZExpc3RJdGVtTWRMaXN0SXRlbUV4cGFuZERldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRMaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRMaXN0SXRlbSB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIGFuIGludGVyYWN0aXZlIHJvdyBpcyBhY3RpdmF0ZWQgKGNsaWNrLCBFbnRlciwgb3IgU3BhY2UpLlxuICAgKi9cbiAgbWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaXRlbTogSFRNTEVsZW1lbnQgfT4+O1xuICAvKipcbiAgICogQnViYmxlcyB0byBwYXJlbnQgYG1kLWxpc3RgIHNvIGl0IGNhbiBtYW5hZ2Ugc2VsZWN0aW9uIHN0YXRlLlxuICAgKi9cbiAgbWRJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXI7IHNlbGVjdGVkOiBib29sZWFuIH0+PjtcbiAgLyoqXG4gICAqIEJ1YmJsZXMgdG8gcGFyZW50IGBtZC1saXN0YCB3aGVuIGFuIGBleHBhbmRlZC1jb250ZW50YCBjaGlsZCByb3cgaXNcbnNlbGVjdGVkLiBUaGUgbGlzdCByZS1lbWl0cyBgbWRTZWxlY3RgIHdpdGggdGhlIHBhcmVudCdzIGxpc3QgaW5kZXgsXG5gY2hpbGRJbmRleGAsIGBleHBhbmRlZGAsIGFuZCB0aGUgY2hpbGQgaW4gYGl0ZW1gLlxuICAgKi9cbiAgbWRJdGVtU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyOyB2YWx1ZTogc3RyaW5nOyBzZWxlY3RlZDogYm9vbGVhbjsgaXRlbTogSFRNTE1kTGlzdEl0ZW1FbGVtZW50OyB9Pj47XG4gIC8qKlxuICAgKiBBc2tzIHRoZSBwYXJlbnQgYG1kLWxpc3RgIHRvIGdpdmUgdGhpcyByb3cgcm92aW5nIGZvY3VzLlxuICAgKi9cbiAgbWRSZXF1ZXN0QWN0aXZhdGlvbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEludGVybmFsIGV2ZW50IHRoZSBwYXJlbnQgYG1kLWxpc3RgIGxpc3RlbnMgdG8gZm9yIGtleWJvYXJkIHJlb3JkZXJpbmdcbihgQWx0ICsgQXJyb3dVcCAvIEFycm93RG93bmApLiBCdWJibGVzICsgY29tcG9zZWQgc28gaXQgY3Jvc3NlcyB0aGVcbnNoYWRvdyBib3VuZGFyeSB1cCB0byB0aGUgbGlzdC5cbiAgICovXG4gIG1kSXRlbVJlcXVlc3RSZW9yZGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBkaXJlY3Rpb246ICd1cCcgfCAnZG93bic7IGZyb206IG51bWJlcjsgfT4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbmV2ZXIgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIGFuIGV4cGFuZGFibGUgcm93IGNoYW5nZXMuXG4gICAqL1xuICBtZEV4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZExpc3RJdGVtTWRMaXN0SXRlbUV4cGFuZERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRMb2FkaW5nSW5kaWNhdG9yLFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdsYWJlbCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1sb2FkaW5nLWluZGljYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdsYWJlbCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRMb2FkaW5nSW5kaWNhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRMb2FkaW5nSW5kaWNhdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5NZExvYWRpbmdJbmRpY2F0b3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTWVudSxcbiAgaW5wdXRzOiBbJ2FuY2hvcicsICdhdXRvRm9jdXMnLCAnZGVuc2l0eScsICdlbXB0eVRleHQnLCAnbGF5b3V0JywgJ2xpc3RMYWJlbCcsICdsaXN0Ym94JywgJ21hdGNoQW5jaG9yV2lkdGgnLCAnbWF4SGVpZ2h0JywgJ29wZW4nLCAncGVyc2lzdGVudCcsICdwbGFjZW1lbnQnLCAncXVpY2snLCAncmVzcG9uc2l2ZScsICd1c2VHYXAnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3NldENvbWJvYm94RWxlbWVudCcsICdzZXRWaXJ0dWFsUHJvdmlkZXInLCAnZ2V0U2Nyb2xsVmlld3BvcnQnLCAnc2hvdycsICdyZXBvc2l0aW9uJywgJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmNob3InLCAnYXV0b0ZvY3VzJywgJ2RlbnNpdHknLCAnZW1wdHlUZXh0JywgJ2xheW91dCcsICdsaXN0TGFiZWwnLCAnbGlzdGJveCcsICdtYXRjaEFuY2hvcldpZHRoJywgJ21heEhlaWdodCcsICdvcGVuJywgJ3BlcnNpc3RlbnQnLCAncGxhY2VtZW50JywgJ3F1aWNrJywgJ3Jlc3BvbnNpdmUnLCAndXNlR2FwJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZE1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZE9wZW4nLCAnbWRDbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZE1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLk1kTWVudSB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBtZW51IG9wZW5zLiBTY29wZWQgdG8gdGhlIG1lbnUgZWxlbWVudDogYGJ1YmJsZXM6IGZhbHNlYFxuc3RvcHMgaXQgY2xpbWJpbmcgdGhlIGxpZ2h0LURPTSB0cmVlLCBhbmQgYGNvbXBvc2VkOiBmYWxzZWAgc3RvcHMgaXRcbmVzY2FwaW5nIHRoZSBzaGFkb3cgcm9vdCBvZiBhIGhvc3QgdGhhdCBlbWJlZHMgdGhpcyBtZW51IChtZC1zZWxlY3QsXG5tZC1tdWx0aS1zZWxlY3QsIG1kLWRhdGUtcGlja2VyIOKApikuIFdpdGhvdXQgYGNvbXBvc2VkOiBmYWxzZWAgYVxuYGNvbXBvc2VkYCBldmVudCBzdGlsbCBzdXJmYWNlcyBhdCB0aGUgZW1iZWRkaW5nIGhvc3QgYXMgYW5cbmBBVF9UQVJHRVRgIGV2ZW50IOKAlCBzbyBhIGNvbnN1bWVyJ3MgYG1kT3BlbmAgbGlzdGVuZXIgb24gdGhlIHdyYXBwZXJcbndvdWxkIGZpcmUgZm9yIGJvdGggdGhlIHdyYXBwZXIncyBvd24gZXZlbnQgYW5kIHRoaXMgaW5uZXIgb25lXG4oZHVwbGljYXRlIG9wZW4vY2xvc2UpLiBXcmFwcGVycyBsaXN0ZW4gdmlhIGBvbk1kT3BlbmAgb24gdGhlIG1lbnVcbmVsZW1lbnQgaXRzZWxmLCB3aGljaCBzdGlsbCBmaXJlcyByZWdhcmRsZXNzLlxuICAgKi9cbiAgbWRPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgbWVudSBjbG9zZXMuIFNjb3BlZCBsaWtlIGBtZE9wZW5gIOKAlCBzZWUgaXRzIG5vdGUuXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRNZW51SXRlbSxcbiAgaW5wdXRzOiBbJ2JhZGdlJywgJ2NoZWNrUG9zaXRpb24nLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkaXZpZGVyJywgJ2dhcCcsICdoZWFkbGluZScsICdpbmRldGVybWluYXRlJywgJ2tlZXBPcGVuJywgJ3ByZXNlbnRhdGlvbicsICdyb2xlT3ZlcnJpZGUnLCAnc2VsZWN0ZWQnLCAnc3VwcG9ydGluZ1RleHQnLCAndHJhaWxpbmdUZXh0JywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFkZ2UnLCAnY2hlY2tQb3NpdGlvbicsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2RpdmlkZXInLCAnZ2FwJywgJ2hlYWRsaW5lJywgJ2luZGV0ZXJtaW5hdGUnLCAna2VlcE9wZW4nLCAncHJlc2VudGF0aW9uJywgJ3JvbGVPdmVycmlkZScsICdzZWxlY3RlZCcsICdzdXBwb3J0aW5nVGV4dCcsICd0cmFpbGluZ1RleHQnLCAndHlwZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kTWVudUl0ZW0ge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgaXRlbSBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICBtZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRNZW51SXRlbUdyb3VwLFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbWVudS1pdGVtLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2xhYmVsJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRNZW51SXRlbUdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRNZW51SXRlbUdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5NZE1lbnVJdGVtR3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTWV0ZXIsXG4gIGlucHV0czogWydjb2xvcicsICdkZW5zaXR5JywgJ2Zvcm1hdE9wdGlvbnMnLCAnbGFiZWwnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnc2hvd0xhYmVsJywgJ3Nob3dWYWx1ZScsICdzaXplJywgJ3RoaWNrbmVzcycsICd2YWx1ZScsICd2YWx1ZVRleHQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbWV0ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2RlbnNpdHknLCAnZm9ybWF0T3B0aW9ucycsICdsYWJlbCcsICdsb2NhbGUnLCAnbWF4JywgJ21pbicsICdzaG93TGFiZWwnLCAnc2hvd1ZhbHVlJywgJ3NpemUnLCAndGhpY2tuZXNzJywgJ3ZhbHVlJywgJ3ZhbHVlVGV4dCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRNZXRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTWV0ZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kTWV0ZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTXVsdGlTZWxlY3QsXG4gIGlucHV0czogWydjaGlwT3ZlcmZsb3cnLCAnY2hpcFBvc2l0aW9uJywgJ2NsZWFySWNvbicsICdjbGVhckxhYmVsJywgJ2NsZWFyYWJsZScsICdjb3VudEZvcm1hdHRlcicsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Rpc3BsYXlNb2RlJywgJ2Ryb3Bkb3duSWNvbicsICdlcnJvcicsICdlcnJvclRleHQnLCAnZmlsdGVyTGFiZWwnLCAnZmlsdGVyTW9kZScsICdmaWx0ZXJhYmxlJywgJ2xhYmVsJywgJ2xvYWRpbmcnLCAnbG9hZGluZ1RleHQnLCAnbWF0Y2hUcmlnZ2VyV2lkdGgnLCAnbWF4SGVpZ2h0JywgJ21heFNlbGVjdGVkJywgJ25hbWUnLCAnbm9PcHRpb25zVGV4dCcsICdub1Jlc3VsdHNUZXh0JywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdyb3dIZWlnaHQnLCAnc2VhcmNoUGxhY2Vob2xkZXInLCAnc2VhcmNoaW5nTGFiZWwnLCAnc2VsZWN0QWxsTGFiZWwnLCAnc2hvd1NlbGVjdEFsbCcsICdzb2Z0RGlzYWJsZWQnLCAnc3VwcG9ydGluZ1RleHQnLCAndHJpZ2dlcicsICd0cmlnZ2VySWNvbicsICd0cmlnZ2VyTGFiZWwnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnLCAndmFyaWFudCcsICd2aXJ0dWFsaXplJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZScsICdmb2N1c1RyaWdnZXInLCAncmVzZXQnLCAnbG9hZE9wdGlvbnMnLCAnc2V0UXVlcnknLCAnZ2V0TGFiZWxzJywgJ2dldFZhbGlkaXR5JywgJ2NoZWNrVmFsaWRpdHknLCAncmVwb3J0VmFsaWRpdHknLCAnc2V0Q3VzdG9tVmFsaWRpdHknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW11bHRpLXNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hpcE92ZXJmbG93JywgJ2NoaXBQb3NpdGlvbicsICdjbGVhckljb24nLCAnY2xlYXJMYWJlbCcsICdjbGVhcmFibGUnLCAnY291bnRGb3JtYXR0ZXInLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkaXNwbGF5TW9kZScsICdkcm9wZG93bkljb24nLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2ZpbHRlckxhYmVsJywgJ2ZpbHRlck1vZGUnLCAnZmlsdGVyYWJsZScsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdUZXh0JywgJ21hdGNoVHJpZ2dlcldpZHRoJywgJ21heEhlaWdodCcsICdtYXhTZWxlY3RlZCcsICduYW1lJywgJ25vT3B0aW9uc1RleHQnLCAnbm9SZXN1bHRzVGV4dCcsICdvcGVuJywgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAncm93SGVpZ2h0JywgJ3NlYXJjaFBsYWNlaG9sZGVyJywgJ3NlYXJjaGluZ0xhYmVsJywgJ3NlbGVjdEFsbExhYmVsJywgJ3Nob3dTZWxlY3RBbGwnLCAnc29mdERpc2FibGVkJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3RyaWdnZXInLCAndHJpZ2dlckljb24nLCAndHJpZ2dlckxhYmVsJywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTXVsdGlTZWxlY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENoYW5nZScsICdtZE9wZW4nLCAnbWRDbG9zZScsICdtZFJlbW92ZScsICdtZENsZWFyJywgJ21kVmFsaWRpdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRNdWx0aVNlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuTWRNdWx0aVNlbGVjdCB7XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgZnVsbCBzZWxlY3RlZC12YWx1ZSBhcnJheSB3aGVuZXZlciB0aGUgc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBtZW51IG9wZW5zLlxuICAgKi9cbiAgbWRPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgbWVudSBjbG9zZXMuXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgdGhlIHJlbW92ZWQgdmFsdWUgd2hlbiBhIGNoaXAgaXMgZGlzbWlzc2VkLlxuICAgKi9cbiAgbWRSZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNsZWFyIGJ1dHRvbiBlbXB0aWVzIHRoZSBzZWxlY3Rpb24uXG4gICAqL1xuICBtZENsZWFyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZE5hdmlnYXRpb25CYXIsXG4gIGlucHV0czogWydhY3RpdmVJbmRleCcsICdkZW5zaXR5JywgJ2xhYmVsQmVoYXZpb3InLCAnbWFudWFsQWN0aXZhdGlvbiddLFxuICBtZXRob2RzOiBbJ3NlbGVjdCcsICdmb2N1c1RhYiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbmF2aWdhdGlvbi1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZUluZGV4JywgJ2RlbnNpdHknLCAnbGFiZWxCZWhhdmlvcicsICdtYW51YWxBY3RpdmF0aW9uJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWROYXZpZ2F0aW9uQmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWROYXZpZ2F0aW9uQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5NZE5hdmlnYXRpb25CYXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBzZWxlY3RlZCBkZXN0aW5hdGlvbiBjaGFuZ2VzICh1c2VyIGNsaWNrLFxua2V5Ym9hcmQgYWN0aXZhdGlvbiwgb3IgcHJvZ3JhbW1hdGljIGBzZWxlY3QoKWAgY2FsbCkuXG5EZXRhaWwgaW5jbHVkZXMgYm90aCB0aGUgbmV3IGFuZCBwcmV2aW91cyBpbmRpY2VzIHNvIGxpc3RlbmVyc1xuY2FuIHNob3J0LWNpcmN1aXQgbm8tb3AgcmVzZWxlY3RzLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXI7IHByZXZpb3VzSW5kZXg6IG51bWJlciB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZE5hdmlnYXRpb25SYWlsLFxuICBpbnB1dHM6IFsnYWN0aXZlSW5kZXgnLCAnYWxpZ25tZW50JywgJ2RlbnNpdHknLCAnZGlzYWJsZUZvY3VzTWFuYWdlbWVudCcsICdleHBhbmRhYmxlJywgJ2Z1bGxIZWlnaHQnLCAnbGFiZWwnLCAnbGFiZWxWaXNpYmlsaXR5JywgJ21heFZpc2libGUnLCAnbW9kYWwnLCAnb3JpZW50YXRpb24nLCAnb3ZlcmZsb3dJY29uJywgJ292ZXJmbG93TGFiZWwnLCAndG9nZ2xlTGFiZWwnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ2V4cGFuZCcsICdjb2xsYXBzZScsICd0b2dnbGUnLCAnZm9jdXNUYWInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW5hdmlnYXRpb24tcmFpbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlSW5kZXgnLCAnYWxpZ25tZW50JywgJ2RlbnNpdHknLCAnZGlzYWJsZUZvY3VzTWFuYWdlbWVudCcsICdleHBhbmRhYmxlJywgJ2Z1bGxIZWlnaHQnLCAnbGFiZWwnLCAnbGFiZWxWaXNpYmlsaXR5JywgJ21heFZpc2libGUnLCAnbW9kYWwnLCAnb3JpZW50YXRpb24nLCAnb3ZlcmZsb3dJY29uJywgJ292ZXJmbG93TGFiZWwnLCAndG9nZ2xlTGFiZWwnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTmF2aWdhdGlvblJhaWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFRhYkNoYW5nZScsICdtZEV4cGFuZCcsICdtZENvbGxhcHNlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTmF2aWdhdGlvblJhaWwgZXh0ZW5kcyBDb21wb25lbnRzLk1kTmF2aWdhdGlvblJhaWwge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBkZXN0aW5hdGlvbi5cbiAgICovXG4gIG1kVGFiQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyOyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcmFpbCB0cmFuc2l0aW9ucyBmcm9tIGNvbGxhcHNlZCDihpIgZXhwYW5kZWQuXG4gICAqL1xuICBtZEV4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcmFpbCB0cmFuc2l0aW9ucyBmcm9tIGV4cGFuZGVkIOKGkiBjb2xsYXBzZWQuXG4gICAqL1xuICBtZENvbGxhcHNlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWROYXZpZ2F0aW9uUmFpbFRhYixcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdiYWRnZScsICdiYWRnZVZhbHVlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnaHJlZicsICdpY29uJywgJ2xhYmVsJywgJ2xhYmVsVmlzaWJpbGl0eScsICd0YXJnZXQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydjbGVhclN1Ym1lbnVTZWxlY3Rpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW5hdmlnYXRpb24tcmFpbC10YWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdiYWRnZScsICdiYWRnZVZhbHVlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnaHJlZicsICdpY29uJywgJ2xhYmVsJywgJ2xhYmVsVmlzaWJpbGl0eScsICd0YXJnZXQnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZE5hdmlnYXRpb25SYWlsVGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRUYWJDbGljaycsICdtZFN1Ym1lbnVUb2dnbGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWROYXZpZ2F0aW9uUmFpbFRhYiBleHRlbmRzIENvbXBvbmVudHMuTWROYXZpZ2F0aW9uUmFpbFRhYiB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSB1c2VyIGFjdGl2YXRlcyB0aGUgZGVzdGluYXRpb24gKGNsaWNrIC8gRW50ZXIgLyBTcGFjZSkuXG4gICAqL1xuICBtZFRhYkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhpcyBkZXN0aW5hdGlvbidzIHNsb3R0ZWQgZHJvcGRvd24gb3BlbnMgb3IgY2xvc2VzLiBgbWQtbWVudWAnc1xub3duIGBtZE9wZW5gIC8gYG1kQ2xvc2VgIGFyZSBkZWxpYmVyYXRlbHkgbm9uLWJ1YmJsaW5nIGFuZCBub24tY29tcG9zZWQsIHNvXG50aGUgcmFpbCBoYXMgbm8gd2F5IHRvIGhlYXIgdGhlbSDigJQgdGhpcyBpcyB0aGUgc2lnbmFsIGl0IGxpc3RlbnMgZm9yIChpdFxubGlmdHMgaXRzIHN0YWNraW5nIGNvbnRleHQgc28gdGhlIGZpeGVkLXBvc2l0aW9uIG1lbnUgaXMgbm90IHRyYXBwZWQpLlxuICAgKi9cbiAgbWRTdWJtZW51VG9nZ2xlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBvcGVuOiBib29sZWFuIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTmF2aWdhdGlvblRhYixcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhY3RpdmVJY29uJywgJ2JhZGdlJywgJ2JhZGdlTWF4JywgJ2JhZGdlVmFsdWUnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnbGFiZWwnLCAnbGFiZWxCZWhhdmlvcicsICdzb2Z0RGlzYWJsZWQnLCAndGFyZ2V0J10sXG4gIG1ldGhvZHM6IFsnZm9jdXNFbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbmF2aWdhdGlvbi10YWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhY3RpdmVJY29uJywgJ2JhZGdlJywgJ2JhZGdlTWF4JywgJ2JhZGdlVmFsdWUnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnbGFiZWwnLCAnbGFiZWxCZWhhdmlvcicsICdzb2Z0RGlzYWJsZWQnLCAndGFyZ2V0J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWROYXZpZ2F0aW9uVGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRUYWJDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZE5hdmlnYXRpb25UYWIgZXh0ZW5kcyBDb21wb25lbnRzLk1kTmF2aWdhdGlvblRhYiB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSB0YWIgaXMgYWN0aXZhdGVkIChjbGljaywgRW50ZXIsIG9yIFNwYWNlKSBhbmQgdGhlIHRhYiBpc1xubm90IGRpc2FibGVkLiBUaGUgcGFyZW50IGBtZC1uYXZpZ2F0aW9uLWJhcmAgbGlzdGVucyBmb3IgdGhpcyB0byBkcml2ZVxuc2VsZWN0aW9uOyBleHRlcm5hbCBjb2RlIG1heSBhbHNvIGxpc3RlbiB0byBkZXRlY3QgcGVyLXRhYiBhY3RpdmF0aW9uXG4oaW5jbHVkaW5nIGEgcmUtY2xpY2sgb2YgdGhlIGFscmVhZHktYWN0aXZlIHRhYiwgd2hpY2ggZG9lcyBub3QgZW1pdFxuYG1kQ2hhbmdlYCBvbiB0aGUgYmFyKS5cbiAgICovXG4gIG1kVGFiQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXIgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWROdW1iZXJGaWVsZCxcbiAgaW5wdXRzOiBbJ2FsbG93T3V0T2ZSYW5nZScsICdhbGxvd1doZWVsU2NydWInLCAnZGVjcmVtZW50TGFiZWwnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvclRleHQnLCAnZm9ybWF0T3B0aW9ucycsICdpbmNyZW1lbnRMYWJlbCcsICdsYWJlbCcsICdsYXJnZVN0ZXAnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdyZXNlcnZlU3VwcG9ydGluZ1NwYWNlJywgJ3NtYWxsU3RlcCcsICdzbmFwT25TdGVwJywgJ3N0ZXAnLCAnc3RlcHBlcnMnLCAnc3VwcG9ydGluZ1RleHQnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3NlbGVjdCcsICdzdGVwVXAnLCAnc3RlcERvd24nLCAnZ2V0VmFsaWRpdHknLCAnY2hlY2tWYWxpZGl0eScsICdyZXBvcnRWYWxpZGl0eScsICdzZXRDdXN0b21WYWxpZGl0eSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbnVtYmVyLWZpZWxkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGxvd091dE9mUmFuZ2UnLCAnYWxsb3dXaGVlbFNjcnViJywgJ2RlY3JlbWVudExhYmVsJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2Zvcm1hdE9wdGlvbnMnLCAnaW5jcmVtZW50TGFiZWwnLCAnbGFiZWwnLCAnbGFyZ2VTdGVwJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdzbWFsbFN0ZXAnLCAnc25hcE9uU3RlcCcsICdzdGVwJywgJ3N0ZXBwZXJzJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZE51bWJlckZpZWxkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRJbnB1dCcsICdtZENoYW5nZScsICdtZFZhbGlkaXR5Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZE51bWJlckZpZWxkQ2hhbmdlRGV0YWlsIGFzIElNZE51bWJlckZpZWxkTWROdW1iZXJGaWVsZENoYW5nZURldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWROdW1iZXJGaWVsZCBleHRlbmRzIENvbXBvbmVudHMuTWROdW1iZXJGaWVsZCB7XG4gIC8qKlxuICAgKiBGaXJlcyBvbiBldmVyeSB2YWx1ZSBjaGFuZ2UgKHR5cGluZyBpbmNsdWRlZCkuXG4gICAqL1xuICBtZElucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kTnVtYmVyRmllbGRNZE51bWJlckZpZWxkQ2hhbmdlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyBhdCBjb21taXQgcG9pbnRzOiBibHVyL0VudGVyIHJlZm9ybWF0LCBzdGVwcGluZywgd2hlZWwuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZE51bWJlckZpZWxkTWROdW1iZXJGaWVsZENoYW5nZURldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGVtYmVkZGluZyBhIGZpZWxkIHdvdWxkXG5vdGhlcndpc2UgaGVhciB0d28gZXZlbnRzIGZvciBvbmUgbG9naWNhbCBjb250cm9sOyBgYnViYmxlczogdHJ1ZWAgc3RpbGxcbmxldHMgYSBgPGZvcm0+YCBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZE9yZ2FuaXphdGlvbkNoYXJ0LFxuICBpbnB1dHM6IFsnY29sbGFwc2VMYWJlbCcsICdjb2xsYXBzaWJsZScsICdkZW5zaXR5JywgJ2V4cGFuZExhYmVsJywgJ2xhYmVsJywgJ25vZGVzJywgJ29yaWVudGF0aW9uJywgJ3NlbGVjdGVkSWRzJywgJ3NlbGVjdGlvbk1vZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW9yZ2FuaXphdGlvbi1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sbGFwc2VMYWJlbCcsICdjb2xsYXBzaWJsZScsICdkZW5zaXR5JywgJ2V4cGFuZExhYmVsJywgJ2xhYmVsJywgJ25vZGVzJywgJ29yaWVudGF0aW9uJywgJ3NlbGVjdGVkSWRzJywgJ3NlbGVjdGlvbk1vZGUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZE9yZ2FuaXphdGlvbkNoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRTZWxlY3Rpb25DaGFuZ2UnLCAnbWROb2RlVG9nZ2xlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBPcmdDaGFydFNlbGVjdGlvbkNoYW5nZURldGFpbCBhcyBJTWRPcmdhbml6YXRpb25DaGFydE9yZ0NoYXJ0U2VsZWN0aW9uQ2hhbmdlRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE9yZ0NoYXJ0VG9nZ2xlRGV0YWlsIGFzIElNZE9yZ2FuaXphdGlvbkNoYXJ0T3JnQ2hhcnRUb2dnbGVEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kT3JnYW5pemF0aW9uQ2hhcnQgZXh0ZW5kcyBDb21wb25lbnRzLk1kT3JnYW5pemF0aW9uQ2hhcnQge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBtZFNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZE9yZ2FuaXphdGlvbkNoYXJ0T3JnQ2hhcnRTZWxlY3Rpb25DaGFuZ2VEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYSBub2RlIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZC5cbiAgICovXG4gIG1kTm9kZVRvZ2dsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZE9yZ2FuaXphdGlvbkNoYXJ0T3JnQ2hhcnRUb2dnbGVEZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kT3RwRmllbGQsXG4gIGlucHV0czogWydhdXRvU3VibWl0JywgJ2NlbGxMYWJlbFRlbXBsYXRlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2dyb3VwU2l6ZScsICdpbmNvbXBsZXRlTGFiZWwnLCAnaW5wdXRNb2RlJywgJ2xhYmVsJywgJ2xlbmd0aCcsICdtYXNrJywgJ25hbWUnLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdzdXBwb3J0aW5nVGV4dCcsICd0cmFuc2Zvcm0nLCAndmFsaWRhdGlvblR5cGUnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdjbGVhcicsICdnZXRWYWxpZGl0eScsICdzZXRDdXN0b21WYWxpZGl0eScsICdjaGVja1ZhbGlkaXR5JywgJ3JlcG9ydFZhbGlkaXR5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1vdHAtZmllbGQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9TdWJtaXQnLCAnY2VsbExhYmVsVGVtcGxhdGUnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvclRleHQnLCAnZ3JvdXBTaXplJywgJ2luY29tcGxldGVMYWJlbCcsICdpbnB1dE1vZGUnLCAnbGFiZWwnLCAnbGVuZ3RoJywgJ21hc2snLCAnbmFtZScsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdyZXNlcnZlU3VwcG9ydGluZ1NwYWNlJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3RyYW5zZm9ybScsICd2YWxpZGF0aW9uVHlwZScsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kT3RwRmllbGQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZElucHV0JywgJ21kQ2hhbmdlJywgJ21kQ29tcGxldGUnLCAnbWRJbnZhbGlkSW5wdXQnLCAnbWRWYWxpZGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRPdHBGaWVsZENvbXBsZXRlRGV0YWlsIGFzIElNZE90cEZpZWxkTWRPdHBGaWVsZENvbXBsZXRlRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kT3RwRmllbGRJbnZhbGlkRGV0YWlsIGFzIElNZE90cEZpZWxkTWRPdHBGaWVsZEludmFsaWREZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRPdHBGaWVsZFZhbGlkaXR5RGV0YWlsIGFzIElNZE90cEZpZWxkTWRPdHBGaWVsZFZhbGlkaXR5RGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZE90cEZpZWxkIGV4dGVuZHMgQ29tcG9uZW50cy5NZE90cEZpZWxkIHtcbiAgLyoqXG4gICAqIEZpcmVzIG9uIGV2ZXJ5IHZhbHVlIGNoYW5nZSBmcm9tIHVzZXIgaW5wdXQgKHR5cGluZywgY2xlYXJpbmcsIHBhc3RlLCBhdXRvZmlsbCkuXG4gICAqL1xuICBtZElucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBDb21taXQgZXZlbnQ6IGZpcmVzIHdoZW4gdGhlIGNvZGUgYmVjb21lcyBjb21wbGV0ZSBhbmQgd2hlbiBmb2N1cyBsZWF2ZXMgdGhlIHdob2xlIGdyb3VwLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gZXZlcnkgY2VsbCBpcyBmaWxsZWQuIEEgY29tcGxldGUgcGFzdGUgcmUtZmlyZXMgaXQgZXZlbiBpZiB0aGUgdmFsdWUgaXMgdW5jaGFuZ2VkLlxuICAgKi9cbiAgbWRDb21wbGV0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZE90cEZpZWxkTWRPdHBGaWVsZENvbXBsZXRlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHR5cGVkL3Bhc3RlZCBjaGFyYWN0ZXJzIGFyZSByZWplY3RlZCBieSB0aGUgYHZhbGlkYXRpb25UeXBlYCBjaGFyc2V0LlxuICAgKi9cbiAgbWRJbnZhbGlkSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRPdHBGaWVsZE1kT3RwRmllbGRJbnZhbGlkRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoaXMgY29udHJvbCdzIHZhbGlkaXR5IENIQU5HRVMg4oCUIG5ldmVyIG9uIG1vdW50LCBuZXZlciBmb3IgYVxucmUtcHVibGlzaCBsYW5kaW5nIG9uIHRoZSBzYW1lIHN0YXRlLiBgY29tcG9zZWQ6IGZhbHNlYCBieSB0aGUgbGlicmFyeVxuY29udmVudGlvbjogZWFjaCBjb250cm9sIHJlcG9ydHMgb25seSBmb3IgaXRzZWxmOyBgYnViYmxlczogdHJ1ZWAgc3RpbGxcbnJlYWNoZXMgYDxmb3JtPmAtbGV2ZWwgbGlzdGVuZXJzIGluIHRoZSBzYW1lIERPTSB0cmVlLlxuICAgKi9cbiAgbWRWYWxpZGl0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZE90cEZpZWxkTWRPdHBGaWVsZFZhbGlkaXR5RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFBpZUNoYXJ0LFxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2Nvcm5lclJhZGl1cycsICdkYXRhJywgJ2RlbnNpdHknLCAnZW5kQW5nbGUnLCAnZ3JhZGllbnQnLCAnaGVpZ2h0UHJvcCcsICdoaWdobGlnaHQnLCAnaW5uZXJSYWRpdXMnLCAnbGFiZWwnLCAnbGFiZWxFbXB0eScsICdsYWJlbE1vZGUnLCAnbGFiZWxQbG90JywgJ2xhYmVsUG9pbnQnLCAnbGVnZW5kJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdtb25vY2hyb21lJywgJ25vQW5pbWF0aW9uJywgJ291dGVyUmFkaXVzJywgJ3BhZGRpbmdBbmdsZScsICdyaW5nV2lkdGhzJywgJ3Nob3dMYWJlbHMnLCAnc3RhcnRBbmdsZScsICdzdWJ0aXRsZScsICdzdW1tYXJ5JywgJ3RhYmxlTGFiZWxzJywgJ3RpdGxlQWxpZ24nLCAndG9vbHRpcCcsICd0b29sdGlwUmVuZGVyZXInLCAndmFsdWVGb3JtYXR0ZXInXSxcbiAgbWV0aG9kczogWydyZWZyZXNoVGhlbWUnLCAncmVzaXplJywgJ3JlcGxheScsICdkcmlsbCcsICd0b0RhdGFVUkwnLCAnZ2V0SW5zdGFuY2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXBpZS1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2Nvcm5lclJhZGl1cycsICdkYXRhJywgJ2RlbnNpdHknLCAnZW5kQW5nbGUnLCAnZ3JhZGllbnQnLCAnaGVpZ2h0UHJvcCcsICdoaWdobGlnaHQnLCAnaW5uZXJSYWRpdXMnLCAnbGFiZWwnLCAnbGFiZWxFbXB0eScsICdsYWJlbE1vZGUnLCAnbGFiZWxQbG90JywgJ2xhYmVsUG9pbnQnLCAnbGVnZW5kJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdtb25vY2hyb21lJywgJ25vQW5pbWF0aW9uJywgJ291dGVyUmFkaXVzJywgJ3BhZGRpbmdBbmdsZScsICdyaW5nV2lkdGhzJywgJ3Nob3dMYWJlbHMnLCAnc3RhcnRBbmdsZScsICdzdWJ0aXRsZScsICdzdW1tYXJ5JywgJ3RhYmxlTGFiZWxzJywgJ3RpdGxlQWxpZ24nLCAndG9vbHRpcCcsICd0b29sdGlwUmVuZGVyZXInLCAndmFsdWVGb3JtYXR0ZXInXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFBpZUNoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRTbGljZUNsaWNrJywgJ21kTGVnZW5kQ2xpY2snLCAnbWRSZWFkeSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRDaGFydENsaWNrRGV0YWlsIGFzIElNZFBpZUNoYXJ0TWRDaGFydENsaWNrRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kUGllRGF0dW0gYXMgSU1kUGllQ2hhcnRNZFBpZURhdHVtIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFBpZUNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5NZFBpZUNoYXJ0IHtcblxuICBtZFNsaWNlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRQaWVDaGFydE1kQ2hhcnRDbGlja0RldGFpbDxJTWRQaWVDaGFydE1kUGllRGF0dW0+Pj47XG5cbiAgbWRMZWdlbmRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZGF0YUluZGV4OiBudW1iZXI7IHNlbGVjdGVkOiBib29sZWFuIH0+PjtcblxuICBtZFJlYWR5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRQcm9ncmVzc0luZGljYXRvcixcbiAgaW5wdXRzOiBbJ2NvbXBsZXRlJywgJ2RlbnNpdHknLCAnZm91ckNvbG9yJywgJ2luZGV0ZXJtaW5hdGUnLCAnbGFiZWwnLCAnbWF4JywgJ3NpemUnLCAndGhpY2tuZXNzJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnLCAnd2F2ZScsICd3YXZlQW1wbGl0dWRlJywgJ3dhdmVMZW5ndGgnLCAnd2F2ZVNwZWVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1wcm9ncmVzcy1pbmRpY2F0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbXBsZXRlJywgJ2RlbnNpdHknLCAnZm91ckNvbG9yJywgJ2luZGV0ZXJtaW5hdGUnLCAnbGFiZWwnLCAnbWF4JywgJ3NpemUnLCAndGhpY2tuZXNzJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnLCAnd2F2ZScsICd3YXZlQW1wbGl0dWRlJywgJ3dhdmVMZW5ndGgnLCAnd2F2ZVNwZWVkJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRQcm9ncmVzc0luZGljYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ29tcGxldGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRQcm9ncmVzc0luZGljYXRvciBleHRlbmRzIENvbXBvbmVudHMuTWRQcm9ncmVzc0luZGljYXRvciB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBjb21wbGV0aW9uIGFuaW1hdGlvbiBmaW5pc2hlcyAoYW5kIHRoZSBpbmRpY2F0b3IgaGFzIGhpZGRlblxuaXRzZWxmLCBvciDigJQgZm9yIGZsYXQgY2lyY3VsYXIg4oCUIHNldHRsZWQgb24gaXRzIGVtcHR5IHRyYWNrIHJpbmcpLlxuICAgKi9cbiAgbWRDb21wbGV0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kUmFkaW8sXG4gIGlucHV0czogWydjaGVja2VkJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnbmFtZScsICdyZXF1aXJlZCcsICdzb2Z0RGlzYWJsZWQnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnXSxcbiAgbWV0aG9kczogWydzeW5jVmFsaWRpdHlGcm9tR3JvdXAnLCAnZ2V0VmFsaWRpdHknLCAnY2hlY2tWYWxpZGl0eScsICdyZXBvcnRWYWxpZGl0eScsICdzZXRDdXN0b21WYWxpZGl0eScsICdzZXRGb2N1cycsICdzZXRCbHVyJywgJ3NlbGVjdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtcmFkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NvZnREaXNhYmxlZCcsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kUmFkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENoYW5nZScsICdtZEZvY3VzJywgJ21kQmx1cicsICdtZFZhbGlkaXR5Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kUmFkaW8gZXh0ZW5kcyBDb21wb25lbnRzLk1kUmFkaW8ge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY2hlY2tlZCBzdGF0ZSBjaGFuZ2VzIHZpYSB1c2VyIGludGVyYWN0aW9uXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY2hlY2tlZDogYm9vbGVhbjsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSByYWRpbyByZWNlaXZlcyBmb2N1c1xuICAgKi9cbiAgbWRGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHJhZGlvIGxvc2VzIGZvY3VzXG4gICAqL1xuICBtZEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoaXMgY29udHJvbCdzIHZhbGlkaXR5IENIQU5HRVMg4oCUIG5ldmVyIG9uIGV2ZXJ5IGtleXN0cm9rZSwgYW5kXG5uZXZlciBmb3IgYSByZS1wdWJsaXNoIHRoYXQgbGFuZHMgb24gdGhlIHNhbWUgc3RhdGUuXG5cbmBjb21wb3NlZDogZmFsc2VgIGlzIGRlbGliZXJhdGUuIENvbXBvc2l0ZXMgbGlrZSBtZC1zZWxlY3QgZW1iZWQgYW5cbm1kLXRleHQtZmllbGQsIGFuZCBhIGNvbXBvc2VkIGV2ZW50IGVzY2FwZXMgdGhhdCBpbm5lciBzaGFkb3cgcm9vdCwgc28gYVxubGlzdGVuZXIgb24gbWQtc2VsZWN0IHdvdWxkIHJlY2VpdmUgdGhlIGlubmVyIGZpZWxkJ3MgZXZlbnQgYXMgd2VsbCBhcyB0aGVcbmhvc3QncyDigJQgdHdvIGV2ZW50cywgZGlmZmVyZW50IHBheWxvYWRzLCBmb3Igb25lIGxvZ2ljYWwgY29udHJvbC4gS2VlcGluZ1xuaXQgdW5jb21wb3NlZCBtZWFucyBlYWNoIGNvbXBvbmVudCByZXBvcnRzIG9ubHkgZm9yIGl0c2VsZiwgd2hpbGVcbmBidWJibGVzOiB0cnVlYCBzdGlsbCBsZXRzIGEgPGZvcm0+IG9yIGFwcCByb290IGhlYXIgZXZlcnkgY29udHJvbC5cbiAgICovXG4gIG1kVmFsaWRpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbGlkOiBib29sZWFuOyB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nOyBmbGFnczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kUmF0aW5nLFxuICBpbnB1dHM6IFsnZGVmYXVsdFZhbHVlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZW1wdHlJY29uJywgJ2dldExhYmVsJywgJ2hvdmVyJywgJ2ljb24nLCAnbWF4JywgJ25hbWUnLCAnb3V0bGluZUVtcHR5JywgJ3ByZWNpc2lvbicsICdyYXRpbmdMYWJlbCcsICdyZWFkb25seScsICdzaG93VmFsdWVMYWJlbCcsICdzaXplJywgJ3NvZnREaXNhYmxlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ2ZvY3VzUmF0aW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1yYXRpbmcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlZmF1bHRWYWx1ZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2VtcHR5SWNvbicsICdnZXRMYWJlbCcsICdob3ZlcicsICdpY29uJywgJ21heCcsICduYW1lJywgJ291dGxpbmVFbXB0eScsICdwcmVjaXNpb24nLCAncmF0aW5nTGFiZWwnLCAncmVhZG9ubHknLCAnc2hvd1ZhbHVlTGFiZWwnLCAnc2l6ZScsICdzb2Z0RGlzYWJsZWQnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFJhdGluZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kSG92ZXInLCAnbWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRSYXRpbmcgZXh0ZW5kcyBDb21wb25lbnRzLk1kUmF0aW5nIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoaWxlIHRoZSB1c2VyIGlzIGhvdmVyaW5nIChvciBgbnVsbGAgd2hlbiB0aGUgY3Vyc29yIGxlYXZlcykuXG4gICAqL1xuICBtZEhvdmVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyIHwgbnVsbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbmV2ZXIgdGhlIHZhbHVlIGNoYW5nZXMgdmlhIGludGVyYWN0aW9uLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kUmlwcGxlLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbiAgbWV0aG9kczogWyd3aGVuU2V0dGxlZCcsICd0cmlnZ2VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1yaXBwbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRSaXBwbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFJpcHBsZSBleHRlbmRzIENvbXBvbmVudHMuTWRSaXBwbGUge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU2VhcmNoLFxuICBpbnB1dHM6IFsnYW5ub3VuY2VSZXN1bHRzJywgJ2RlYm91bmNlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZGlzbWlzc09uT3V0c2lkZUNsaWNrJywgJ2VsZXZhdGlvbicsICdlc2NhcGVDbG9zZXMnLCAnZnVsbFdpZHRoJywgJ2luaXRpYWxGb2N1cycsICdpbnB1dEFyaWFMYWJlbCcsICdsYXlvdXQnLCAnbGVhZGluZ0ljb24nLCAnbG9hZGluZycsICdsb2FkaW5nTGFiZWwnLCAnbWF4QmxvY2tTaXplJywgJ25vUmVzdWx0c0xhYmVsJywgJ29wZW4nLCAnb3BlbkxlYWRpbmdJY29uJywgJ3BsYWNlaG9sZGVyJywgJ3Jlc3VsdHNMYWJlbCcsICdzY3JvbGxTaGFkb3cnLCAnc2hvd0NsZWFyQnV0dG9uJywgJ3Rocm90dGxlJywgJ3RyaWdnZXInLCAndHJpZ2dlckVsZW1lbnQnLCAndHJpZ2dlckZvcicsICd0cmlnZ2VySWNvbicsICd2YWx1ZScsICd2YXJpYW50JywgJ3ZvaWNlU2VhcmNoJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZScsICd0b2dnbGUnLCAnZm9jdXNJbnB1dCcsICdzdGFydFZvaWNlJywgJ3N0b3BWb2ljZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc2VhcmNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbm5vdW5jZVJlc3VsdHMnLCAnZGVib3VuY2UnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkaXNtaXNzT25PdXRzaWRlQ2xpY2snLCAnZWxldmF0aW9uJywgJ2VzY2FwZUNsb3NlcycsICdmdWxsV2lkdGgnLCAnaW5pdGlhbEZvY3VzJywgJ2lucHV0QXJpYUxhYmVsJywgJ2xheW91dCcsICdsZWFkaW5nSWNvbicsICdsb2FkaW5nJywgJ2xvYWRpbmdMYWJlbCcsICdtYXhCbG9ja1NpemUnLCAnbm9SZXN1bHRzTGFiZWwnLCAnb3BlbicsICdvcGVuTGVhZGluZ0ljb24nLCAncGxhY2Vob2xkZXInLCAncmVzdWx0c0xhYmVsJywgJ3Njcm9sbFNoYWRvdycsICdzaG93Q2xlYXJCdXR0b24nLCAndGhyb3R0bGUnLCAndHJpZ2dlcicsICd0cmlnZ2VyRWxlbWVudCcsICd0cmlnZ2VyRm9yJywgJ3RyaWdnZXJJY29uJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnLCAndm9pY2VTZWFyY2gnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFNlYXJjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kSW5wdXQnLCAnbWRTZWFyY2gnLCAnbWRTdWJtaXQnLCAnbWRDaGFuZ2UnLCAnbWRPcGVuJywgJ21kQ2xvc2UnLCAnbWRDbGVhcicsICdtZFZvaWNlJywgJ21kTGVhZGluZ0ljb25DbGljaycsICdtZFRyYWlsaW5nSWNvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZFNlYXJjaExlYWRpbmdJY29uQ2xpY2tEZXRhaWwgYXMgSU1kU2VhcmNoTWRTZWFyY2hMZWFkaW5nSWNvbkNsaWNrRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kU2VhcmNoVHJhaWxpbmdJY29uQ2xpY2tEZXRhaWwgYXMgSU1kU2VhcmNoTWRTZWFyY2hUcmFpbGluZ0ljb25DbGlja0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTZWFyY2ggZXh0ZW5kcyBDb21wb25lbnRzLk1kU2VhcmNoIHtcbiAgLyoqXG4gICAqIEZpcmVzIG9uIGV2ZXJ5IGlucHV0IGNoYW5nZSAoaW1tZWRpYXRlLCBldmVyeSBrZXlzdHJva2UpLlxuICAgKi9cbiAgbWRJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBEZWJvdW5jZWQsIGRlLWR1cGxpY2F0ZWQgcXVlcnkgZXZlbnQg4oCUIHRoZSBvbmUgdG8gd2lyZSBhbiBhc3luYyByZXN1bHRzXG5mZXRjaCB0by4gSG9ub3VycyBgZGVib3VuY2VgIC8gYHRocm90dGxlYCBhbmQgYXBwbGllcyBhXG5kaXN0aW5jdC11bnRpbC1jaGFuZ2VkIGd1YXJkIG9uIHRoZSB0cmltbWVkIHF1ZXJ5IChzbyByZS10eXBpbmcgdGhlIHNhbWVcbnRlcm0sIG9yIG9ubHkgYWRkaW5nIHN1cnJvdW5kaW5nIHdoaXRlc3BhY2UsIHdvbid0IHJlLXRyaWdnZXIgYSBmZXRjaCkuXG5QcmVzc2luZyBFbnRlciBvciBjbGVhcmluZyB0aGUgZmllbGQgZmx1c2hlcyBpdCBpbW1lZGlhdGVseS5cbiAgICovXG4gIG1kU2VhcmNoOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyBFbnRlciB0byBzdWJtaXQgYSBxdWVyeS5cbiAgICovXG4gIG1kU3VibWl0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzIHdpdGggYSBkaWZmZXJlbnQgdmFsdWUgdGhhbiBvbiBmb2N1cy5cbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHBhbmVsIG9wZW5zLlxuICAgKi9cbiAgbWRPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgcGFuZWwgY2xvc2VzLlxuICAgKi9cbiAgbWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoZSBjbGVhciAow5cpIGJ1dHRvbi5cbiAgICovXG4gIG1kQ2xlYXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGlsZSB2b2ljZSBzZWFyY2ggaXMgYWN0aXZlIGFzIHRoZSB0cmFuc2NyaXB0IHN0cmVhbXMgaW4uIGB2YWx1ZWBcbmlzIHRoZSBjdXJyZW50IChpbnRlcmltIG9yIGZpbmFsKSB0cmFuc2NyaXB0OyBgZmluYWxgIGlzIGB0cnVlYCBvbiB0aGVcbnJlY29nbmlzZWQgZmluYWwgcmVzdWx0LiBUaGUgY29tcG9uZW50IGFscmVhZHkgbWlycm9ycyB0aGUgdHJhbnNjcmlwdCBpbnRvXG50aGUgaW5wdXQgYW5kIGZpcmVzIGBtZElucHV0YCAvIGBtZFNlYXJjaGAsIHNvIGxpc3RlbiB0byB0aGlzIG9ubHkgaWYgeW91XG5uZWVkIHZvaWNlLXNwZWNpZmljIFVJIChlLmcuIGEgdHJhbnNjcmlwdCBwcmV2aWV3KS5cbiAgICovXG4gIG1kVm9pY2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmc7IGZpbmFsOiBib29sZWFuIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGludGVyYWN0aXZlIGxlYWRpbmcgYWZmb3JkYW5jZSBpcyBjbGlja2VkIOKAlCB0aGUgbW9ycGhpbmdcbmJhY2sgLyBkaXNtaXNzIGJ1dHRvbiB3aGlsZSB0aGUgYmFyIGlzIG9wZW4sIG9yIGEgY3VzdG9tIHNsb3R0ZWQgYGxlYWRpbmdgXG5pY29uLiBUaGUgZGVmYXVsdCBiYWNrIGJ1dHRvbiBzdGlsbCBkaXNtaXNzZXMgdGhlIHBhbmVsIGFzIGJlZm9yZTsgdGhpc1xuZXZlbnQgaXMgYWRkaXRpdmUuIFRoZSBjbG9zZWQgcmVzdGluZyBzZWFyY2ggZ2x5cGggaXMgaW50ZW50aW9uYWxseSBOT1QgYVxuY2xpY2sgdGFyZ2V0IChhIGNsaWNrIHRoZXJlIGZvY3VzZXMgdGhlIGlucHV0KSwgc28gaXQgZG9lcyBub3QgZW1pdC5cbiAgICovXG4gIG1kTGVhZGluZ0ljb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFNlYXJjaE1kU2VhcmNoTGVhZGluZ0ljb25DbGlja0RldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIHNsb3R0ZWQgYHRyYWlsaW5nYCBhZmZvcmRhbmNlIGlzIGNsaWNrZWQuIFRoZSBidWlsdC1pbiBjbGVhclxuKMOXKSBhbmQgdm9pY2UgKG1pYykgYnV0dG9ucyBvd24gdGhlaXIgZGVkaWNhdGVkIGBtZENsZWFyYCAvIGBtZFZvaWNlYFxuZXZlbnRzIGFuZCBkbyBOT1QgdHJpZ2dlciB0aGlzLiBPbmx5IGVtaXR0ZWQgd2hlbiBzbG90dGVkIHRyYWlsaW5nIGNvbnRlbnRcbmlzIGFjdHVhbGx5IHByZXNlbnQgYW5kIHdhcyB0aGUgY2xpY2sgdGFyZ2V0LlxuICAgKi9cbiAgbWRUcmFpbGluZ0ljb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFNlYXJjaE1kU2VhcmNoVHJhaWxpbmdJY29uQ2xpY2tEZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU2VnbWVudGVkQnV0dG9uLFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdpY29uJywgJ2xhYmVsJywgJ25vQ2hlY2ttYXJrJywgJ3JpcHBsZScsICdzZWdtZW50RGVuc2l0eScsICdzZWdtZW50SW5kZXgnLCAnc2VnbWVudE11bHRpc2VsZWN0JywgJ3NlZ21lbnRUb3RhbCcsICdzZWxlY3RlZCcsICdzb2Z0RGlzYWJsZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXNlZ21lbnRlZC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbicsICdsYWJlbCcsICdub0NoZWNrbWFyaycsICdyaXBwbGUnLCAnc2VnbWVudERlbnNpdHknLCAnc2VnbWVudEluZGV4JywgJ3NlZ21lbnRNdWx0aXNlbGVjdCcsICdzZWdtZW50VG90YWwnLCAnc2VsZWN0ZWQnLCAnc29mdERpc2FibGVkJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRTZWdtZW50ZWRCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFNlZ21lbnRDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNlZ21lbnRlZEJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuTWRTZWdtZW50ZWRCdXR0b24ge1xuICAvKipcbiAgICogSW50ZXJuYWwgZXZlbnQg4oCUIGNhdWdodCBieSB0aGUgc2V0XG4gICAqL1xuICBtZFNlZ21lbnRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZzsgc2VsZWN0ZWQ6IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTZWdtZW50ZWRCdXR0b25TZXQsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ211bHRpc2VsZWN0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zZWdtZW50ZWQtYnV0dG9uLXNldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdtdWx0aXNlbGVjdCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU2VnbWVudGVkQnV0dG9uU2V0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTZWdtZW50ZWRCdXR0b25TZXQgZXh0ZW5kcyBDb21wb25lbnRzLk1kU2VnbWVudGVkQnV0dG9uU2V0IHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHNldCBvZiBzZWxlY3RlZCBzZWdtZW50IHZhbHVlcyBjaGFuZ2VzXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZ1tdPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNlbGVjdCxcbiAgaW5wdXRzOiBbJ2NsZWFySWNvbicsICdjbGVhckxhYmVsJywgJ2NsZWFyYWJsZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Ryb3Bkb3duSWNvbicsICdlcnJvcicsICdlcnJvclRleHQnLCAnZmlsdGVyTGFiZWwnLCAnZmlsdGVyTW9kZScsICdmaWx0ZXJhYmxlJywgJ2Z1bGxXaWR0aCcsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdUZXh0JywgJ21hdGNoVHJpZ2dlcldpZHRoJywgJ21heEhlaWdodCcsICduYW1lJywgJ25vT3B0aW9uc1RleHQnLCAnbm9SZXN1bHRzVGV4dCcsICdvcGVuJywgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAncm93SGVpZ2h0JywgJ3NlYXJjaFBsYWNlaG9sZGVyJywgJ3NlYXJjaGluZ0xhYmVsJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnLCAnZm9jdXNUcmlnZ2VyJywgJ3Jlc2V0JywgJ2xvYWRPcHRpb25zJywgJ3NldFF1ZXJ5JywgJ2dldExhYmVscycsICdnZXRWYWxpZGl0eScsICdjaGVja1ZhbGlkaXR5JywgJ3JlcG9ydFZhbGlkaXR5JywgJ3NldEN1c3RvbVZhbGlkaXR5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsZWFySWNvbicsICdjbGVhckxhYmVsJywgJ2NsZWFyYWJsZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Ryb3Bkb3duSWNvbicsICdlcnJvcicsICdlcnJvclRleHQnLCAnZmlsdGVyTGFiZWwnLCAnZmlsdGVyTW9kZScsICdmaWx0ZXJhYmxlJywgJ2Z1bGxXaWR0aCcsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdUZXh0JywgJ21hdGNoVHJpZ2dlcldpZHRoJywgJ21heEhlaWdodCcsICduYW1lJywgJ25vT3B0aW9uc1RleHQnLCAnbm9SZXN1bHRzVGV4dCcsICdvcGVuJywgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAncm93SGVpZ2h0JywgJ3NlYXJjaFBsYWNlaG9sZGVyJywgJ3NlYXJjaGluZ0xhYmVsJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU2VsZWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnLCAnbWRPcGVuJywgJ21kQ2xvc2UnLCAnbWRWYWxpZGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuTWRTZWxlY3Qge1xuICAvKipcbiAgICogRW1pdHMgdGhlIG5ld2x5IHNlbGVjdGVkIHZhbHVlIHdoZW5ldmVyIHRoZSBzZWxlY3Rpb24gY2hhbmdlcy5cbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBkcm9wZG93biBvcGVucy5cbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGRyb3Bkb3duIGNsb3Nlcy5cbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoaXMgY29udHJvbCdzIHZhbGlkaXR5IENIQU5HRVMg4oCUIG5ldmVyIG9uIGV2ZXJ5IGtleXN0cm9rZSwgYW5kXG5uZXZlciBmb3IgYSByZS1wdWJsaXNoIHRoYXQgbGFuZHMgb24gdGhlIHNhbWUgc3RhdGUuXG5cbmBjb21wb3NlZDogZmFsc2VgIGlzIGRlbGliZXJhdGUuIENvbXBvc2l0ZXMgbGlrZSBtZC1zZWxlY3QgZW1iZWQgYW5cbm1kLXRleHQtZmllbGQsIGFuZCBhIGNvbXBvc2VkIGV2ZW50IGVzY2FwZXMgdGhhdCBpbm5lciBzaGFkb3cgcm9vdCwgc28gYVxubGlzdGVuZXIgb24gbWQtc2VsZWN0IHdvdWxkIHJlY2VpdmUgdGhlIGlubmVyIGZpZWxkJ3MgZXZlbnQgYXMgd2VsbCBhcyB0aGVcbmhvc3QncyDigJQgdHdvIGV2ZW50cywgZGlmZmVyZW50IHBheWxvYWRzLCBmb3Igb25lIGxvZ2ljYWwgY29udHJvbC4gS2VlcGluZ1xuaXQgdW5jb21wb3NlZCBtZWFucyBlYWNoIGNvbXBvbmVudCByZXBvcnRzIG9ubHkgZm9yIGl0c2VsZiwgd2hpbGVcbmBidWJibGVzOiB0cnVlYCBzdGlsbCBsZXRzIGEgPGZvcm0+IG9yIGFwcCByb290IGhlYXIgZXZlcnkgY29udHJvbC5cbiAgICovXG4gIG1kVmFsaWRpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbGlkOiBib29sZWFuOyB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nOyBmbGFnczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU2VsZWN0T3B0aW9uLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaWNvbicsICdpY29uQ29sb3InLCAnbGFiZWwnLCAnc2VsZWN0ZWQnLCAnc3VwcG9ydGluZ1RleHQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXNlbGVjdC1vcHRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ2xhYmVsJywgJ3NlbGVjdGVkJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRTZWxlY3RPcHRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFNlbGVjdE9wdGlvbkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNlbGVjdE9wdGlvbiBleHRlbmRzIENvbXBvbmVudHMuTWRTZWxlY3RPcHRpb24ge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgb3B0aW9uIG1vdW50cywgdW5tb3VudHMsIG9yIGl0cyBkYXRhIGNoYW5nZXMgc28gdGhlXG5wYXJlbnQgcGlja2VyIGNhbiByZS1yZWFkIGl0cyBvcHRpb24gc2V0LlxuICAgKi9cbiAgbWRTZWxlY3RPcHRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNpZGVTaGVldCxcbiAgaW5wdXRzOiBbJ2JvdHRvbURpdmlkZXInLCAnY2xvc2VhYmxlJywgJ2RlbnNpdHknLCAnZGV0YWNoZWQnLCAnaGVhZGxpbmUnLCAnb3BlbicsICdzY3JpbURpc21pc3NpYmxlJywgJ3NoZWV0QXJpYUxhYmVsJywgJ3Nob3dCYWNrJywgJ3NpZGUnLCAndG9wRGl2aWRlcicsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc2lkZS1zaGVldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYm90dG9tRGl2aWRlcicsICdjbG9zZWFibGUnLCAnZGVuc2l0eScsICdkZXRhY2hlZCcsICdoZWFkbGluZScsICdvcGVuJywgJ3NjcmltRGlzbWlzc2libGUnLCAnc2hlZXRBcmlhTGFiZWwnLCAnc2hvd0JhY2snLCAnc2lkZScsICd0b3BEaXZpZGVyJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFNpZGVTaGVldCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kT3BlbicsICdtZENsb3NlJywgJ21kQ2FuY2VsJywgJ21kQmFjayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNpZGVTaGVldCBleHRlbmRzIENvbXBvbmVudHMuTWRTaWRlU2hlZXQge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgc2hlZXQgb3BlbnNcbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHNoZWV0IGNsb3Nlc1xuICAgKi9cbiAgbWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gZGlzbWlzc2VkIHZpYSBzY3JpbSBjbGljayBvciBFc2NhcGVcbiAgICovXG4gIG1kQ2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgYmFjayBidXR0b24gaXMgcHJlc3NlZCAobW9kYWwgb25seSlcbiAgICovXG4gIG1kQmFjazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU2tlbGV0b24sXG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5ub3VuY2UnLCAnYXJpYUxhYmVsUHJvcCcsICdkZW5zaXR5JywgJ2Z1bGxIZWlnaHQnLCAnZnVsbFdpZHRoJywgJ2hlaWdodCcsICdsaW5lcycsICd2YXJpYW50JywgJ3dpZHRoJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1za2VsZXRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2Fubm91bmNlJywgJ2FyaWFMYWJlbFByb3AnLCAnZGVuc2l0eScsICdmdWxsSGVpZ2h0JywgJ2Z1bGxXaWR0aCcsICdoZWlnaHQnLCAnbGluZXMnLCAndmFyaWFudCcsICd3aWR0aCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU2tlbGV0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNrZWxldG9uIGV4dGVuZHMgQ29tcG9uZW50cy5NZFNrZWxldG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNsaWRlcixcbiAgaW5wdXRzOiBbJ2FyaWFMYWJlbEVuZCcsICdhcmlhTGFiZWxTdGFydCcsICdjb250cm9sbGVkJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZnVsbEhlaWdodCcsICdpY29uJywgJ2luc2V0SWNvbicsICdsYWJlbGVkJywgJ21heCcsICdtaW4nLCAnbmFtZScsICduYW1lRW5kJywgJ25hbWVTdGFydCcsICdvcmllbnRhdGlvbicsICdyYW5nZScsICdzaXplJywgJ3NsaWRlckFyaWFMYWJlbCcsICdzdGVwJywgJ3N0b3BzJywgJ3ZhbHVlJywgJ3ZhbHVlRW5kJywgJ3ZhbHVlRW5kVGV4dCcsICd2YWx1ZUluZGljYXRvcicsICd2YWx1ZVN0YXJ0JywgJ3ZhbHVlU3RhcnRUZXh0JywgJ3ZhbHVlVGV4dCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zbGlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FyaWFMYWJlbEVuZCcsICdhcmlhTGFiZWxTdGFydCcsICdjb250cm9sbGVkJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZnVsbEhlaWdodCcsICdpY29uJywgJ2luc2V0SWNvbicsICdsYWJlbGVkJywgJ21heCcsICdtaW4nLCAnbmFtZScsICduYW1lRW5kJywgJ25hbWVTdGFydCcsICdvcmllbnRhdGlvbicsICdyYW5nZScsICdzaXplJywgJ3NsaWRlckFyaWFMYWJlbCcsICdzdGVwJywgJ3N0b3BzJywgJ3ZhbHVlJywgJ3ZhbHVlRW5kJywgJ3ZhbHVlRW5kVGV4dCcsICd2YWx1ZUluZGljYXRvcicsICd2YWx1ZVN0YXJ0JywgJ3ZhbHVlU3RhcnRUZXh0JywgJ3ZhbHVlVGV4dCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRTbGlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZElucHV0JywgJ21kQ2hhbmdlJywgJ21kRm9jdXMnLCAnbWRCbHVyJywgJ21kRHJhZ1N0YXJ0JywgJ21kRHJhZ0VuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRTbGlkZXJWYWx1ZURldGFpbCBhcyBJTWRTbGlkZXJNZFNsaWRlclZhbHVlRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kU2xpZGVyVGh1bWJEZXRhaWwgYXMgSU1kU2xpZGVyTWRTbGlkZXJUaHVtYkRldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZFNsaWRlckRyYWdEZXRhaWwgYXMgSU1kU2xpZGVyTWRTbGlkZXJEcmFnRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNsaWRlciBleHRlbmRzIENvbXBvbmVudHMuTWRTbGlkZXIge1xuICAvKipcbiAgICogRmlyZXMgY29udGludW91c2x5IHdoaWxlIHRoZSB1c2VyIGRyYWdzIG9yIHByZXNzZXMgYXJyb3cga2V5cy5cbiAgICovXG4gIG1kSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRTbGlkZXJNZFNsaWRlclZhbHVlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyBvbmNlIHdoZW4gdGhlIHVzZXIgY29tbWl0cyBhIHZhbHVlIChwb2ludGVyIHVwLCBrZXlib2FyZCByZWxlYXNlLCBjaGFuZ2UgZXZlbnQpLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRTbGlkZXJNZFNsaWRlclZhbHVlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIGEgc2xpZGVyIHRodW1iIHJlY2VpdmVzIGZvY3VzLlxuICAgKi9cbiAgbWRGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFNsaWRlck1kU2xpZGVyVGh1bWJEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gYSBzbGlkZXIgdGh1bWIgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBtZEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRTbGlkZXJNZFNsaWRlclRodW1iRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIGEgZHJhZy9rZXlib2FyZCBpbnRlcmFjdGlvbiBiZWdpbnMuXG4gICAqL1xuICBtZERyYWdTdGFydDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFNsaWRlck1kU2xpZGVyRHJhZ0RldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIGRyYWcva2V5Ym9hcmQgaW50ZXJhY3Rpb24gZW5kcy5cbiAgICovXG4gIG1kRHJhZ0VuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFNsaWRlck1kU2xpZGVyRHJhZ0RldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTbmFja2JhcixcbiAgaW5wdXRzOiBbJ2FjdGlvbicsICdhdXRvSGlkZScsICdhdXRvSGlkZUR1cmF0aW9uJywgJ2Nsb3NlYWJsZScsICdkZW5zaXR5JywgJ2Rpc21pc3NMYWJlbCcsICdtZXNzYWdlJywgJ29wZW4nLCAncG9saXRlbmVzcycsICdwb3NpdGlvbicsICdzdGFja2VkJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zbmFja2JhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9uJywgJ2F1dG9IaWRlJywgJ2F1dG9IaWRlRHVyYXRpb24nLCAnY2xvc2VhYmxlJywgJ2RlbnNpdHknLCAnZGlzbWlzc0xhYmVsJywgJ21lc3NhZ2UnLCAnb3BlbicsICdwb2xpdGVuZXNzJywgJ3Bvc2l0aW9uJywgJ3N0YWNrZWQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFNuYWNrYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRPcGVuJywgJ21kQ2xvc2UnLCAnbWRBY3Rpb24nXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTbmFja2JhciBleHRlbmRzIENvbXBvbmVudHMuTWRTbmFja2JhciB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBzbmFja2JhciBiZWNvbWVzIHZpc2libGVcbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHNuYWNrYmFyIGlzIGRpc21pc3NlZCwgd2l0aCByZWFzb25cbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHJlYXNvbjogJ2F1dG8nIHwgJ2FjdGlvbicgfCAnY2xvc2UnIH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGFjdGlvbiBidXR0b24gaXMgY2xpY2tlZFxuICAgKi9cbiAgbWRBY3Rpb246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNwYXJrbGluZSxcbiAgaW5wdXRzOiBbJ2JhcldpZHRoJywgJ2NvbG9yJywgJ2Nvcm5lclJhZGl1cycsICdjdXJ2ZScsICdkYXRhJywgJ2hlaWdodFByb3AnLCAnbGFiZWxzJywgJ2xpbmVXaWR0aCcsICdtYXJrU2l6ZScsICdtYXgnLCAnbWluJywgJ25vQW5pbWF0aW9uJywgJ3JlZmVyZW5jZUFyZWFzJywgJ3Nob3dNYXJrcycsICdzaG93VG9vbHRpcCcsICd2YWx1ZUZvcm1hdHRlcicsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsncmVmcmVzaFRoZW1lJywgJ3Jlc2l6ZScsICdnZXRJbnN0YW5jZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc3BhcmtsaW5lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYXJXaWR0aCcsICdjb2xvcicsICdjb3JuZXJSYWRpdXMnLCAnY3VydmUnLCAnZGF0YScsICdoZWlnaHRQcm9wJywgJ2xhYmVscycsICdsaW5lV2lkdGgnLCAnbWFya1NpemUnLCAnbWF4JywgJ21pbicsICdub0FuaW1hdGlvbicsICdyZWZlcmVuY2VBcmVhcycsICdzaG93TWFya3MnLCAnc2hvd1Rvb2x0aXAnLCAndmFsdWVGb3JtYXR0ZXInLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU3BhcmtsaW5lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRTcGFya0NsaWNrJywgJ21kUmVhZHknXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTcGFya2xpbmUgZXh0ZW5kcyBDb21wb25lbnRzLk1kU3BhcmtsaW5lIHtcblxuICBtZFNwYXJrQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGRhdGFJbmRleDogbnVtYmVyOyB2YWx1ZTogbnVtYmVyIHwgbnVsbCB9Pj47XG5cbiAgbWRSZWFkeTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU3BsaXRCdXR0b24sXG4gIGlucHV0czogWydjb250cm9scycsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Z1bGxXaWR0aCcsICdoYXNwb3B1cCcsICdpY29uJywgJ2xhYmVsJywgJ21lbnVMYWJlbCcsICdyaXBwbGUnLCAnc2l6ZScsICdzb2Z0RGlzYWJsZWQnLCAndHJhaWxpbmdDaGVja2VkJywgJ3RyYWlsaW5nSWNvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zcGxpdC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRyb2xzJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZnVsbFdpZHRoJywgJ2hhc3BvcHVwJywgJ2ljb24nLCAnbGFiZWwnLCAnbWVudUxhYmVsJywgJ3JpcHBsZScsICdzaXplJywgJ3NvZnREaXNhYmxlZCcsICd0cmFpbGluZ0NoZWNrZWQnLCAndHJhaWxpbmdJY29uJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFNwbGl0QnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRMZWFkaW5nQ2xpY2snLCAnbWRUcmFpbGluZ0NsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kU3BsaXRCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLk1kU3BsaXRCdXR0b24ge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgbGVhZGluZyBidXR0b24gaXMgYWN0aXZhdGVkXG4gICAqL1xuICBtZExlYWRpbmdDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIHRyYWlsaW5nIGJ1dHRvbiBpcyB0b2dnbGVkXG4gICAqL1xuICBtZFRyYWlsaW5nQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNoZWNrZWQ6IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTdGF0dXNEb3QsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2lubGluZScsICdsYWJlbCcsICdsaXZlJywgJ3NoYXBlJywgJ3NpemUnLCAnc3RhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXN0YXR1cy1kb3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnaW5saW5lJywgJ2xhYmVsJywgJ2xpdmUnLCAnc2hhcGUnLCAnc2l6ZScsICdzdGF0ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU3RhdHVzRG90IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTdGF0dXNEb3QgZXh0ZW5kcyBDb21wb25lbnRzLk1kU3RhdHVzRG90IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFN0ZXAsXG4gIGlucHV0czogWydhY2Nlc3NpYmxlTmFtZScsICdhY3RpdmUnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZEljb24nLCAnZGVuc2l0eScsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlZGl0YWJsZScsICdlcnJvcicsICdlcnJvckljb24nLCAnZXJyb3JUZXh0JywgJ2hpZGVBY3Rpb25zJywgJ2ljb24nLCAnbGFiZWwnLCAnb3B0aW9uYWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXN0ZXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjY2Vzc2libGVOYW1lJywgJ2FjdGl2ZScsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkSWNvbicsICdkZW5zaXR5JywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2VkaXRhYmxlJywgJ2Vycm9yJywgJ2Vycm9ySWNvbicsICdlcnJvclRleHQnLCAnaGlkZUFjdGlvbnMnLCAnaWNvbicsICdsYWJlbCcsICdvcHRpb25hbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU3RlcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kU3RlcENsaWNrJywgJ21kU3RlcE5leHQnLCAnbWRTdGVwQmFjayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFN0ZXAgZXh0ZW5kcyBDb21wb25lbnRzLk1kU3RlcCB7XG4gIC8qKlxuICAgKiBCdWJibGVkIHRvIHRoZSBwYXJlbnQgc3RlcHBlciwgd2hpY2ggZGVjaWRlcyB3aGV0aGVyIHRoZSBtb3ZlIGlzIGFsbG93ZWQuXG5JbnRlcm5hbCBjb29yZGluYXRpb24gZXZlbnQg4oCUIGNvbnN1bWVkIChhbmQgc3RvcHBlZCkgYnkgYG1kLXN0ZXBwZXJgLlxuICAgKi9cbiAgbWRTdGVwQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXIgfT4+O1xuICAvKipcbiAgICogQ29udGludWUgcHJlc3NlZCBpbiB0aGlzIHN0ZXAncyBjb250ZW50IHBhbmVsLiBDb25zdW1lZCBieSBgbWQtc3RlcHBlcmAuXG4gICAqL1xuICBtZFN0ZXBOZXh0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyIH0+PjtcbiAgLyoqXG4gICAqIEJhY2sgcHJlc3NlZCBpbiB0aGlzIHN0ZXAncyBjb250ZW50IHBhbmVsLiBDb25zdW1lZCBieSBgbWQtc3RlcHBlcmAuXG4gICAqL1xuICBtZFN0ZXBCYWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU3RlcHBlcixcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhdXRvQ29tcGxldGUnLCAnYmFja0xhYmVsJywgJ2NvbXBsZXRlZFdvcmQnLCAnY3VycmVudFdvcmQnLCAnZGVuc2l0eScsICdlcnJvcldvcmQnLCAnZmluaXNoTGFiZWwnLCAnaW5kaWNhdG9yJywgJ2xhYmVsJywgJ2xhenknLCAnbG9hZGluZycsICdtb2RlJywgJ25hdicsICduZXh0RGlzYWJsZWQnLCAnbmV4dExhYmVsJywgJ29mV29yZCcsICdvcHRpb25hbFdvcmQnLCAnb3JpZW50YXRpb24nLCAncmVhZG9ubHknLCAnc3RlcFdvcmQnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ25leHQnLCAncHJldicsICdnb1RvJywgJ3Jlc2V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zdGVwcGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnYXV0b0NvbXBsZXRlJywgJ2JhY2tMYWJlbCcsICdjb21wbGV0ZWRXb3JkJywgJ2N1cnJlbnRXb3JkJywgJ2RlbnNpdHknLCAnZXJyb3JXb3JkJywgJ2ZpbmlzaExhYmVsJywgJ2luZGljYXRvcicsICdsYWJlbCcsICdsYXp5JywgJ2xvYWRpbmcnLCAnbW9kZScsICduYXYnLCAnbmV4dERpc2FibGVkJywgJ25leHRMYWJlbCcsICdvZldvcmQnLCAnb3B0aW9uYWxXb3JkJywgJ29yaWVudGF0aW9uJywgJ3JlYWRvbmx5JywgJ3N0ZXBXb3JkJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFN0ZXBwZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZEJlZm9yZUNoYW5nZScsICdtZFN0ZXBDaGFuZ2UnLCAnbWRDb21wbGV0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFN0ZXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kU3RlcHBlciB7XG4gIC8qKlxuICAgKiBGaXJlcyBCRUZPUkUgYSB1c2VyLWRyaXZlbiBzdGVwIGNoYW5nZSBjb21taXRzIChzdGVwIGNsaWNrLCBidWlsdC1pbiBuYXYsIG9yXG5gbmV4dCgpYC9gcHJldigpYC9gZ29UbygpYCkuIENhbmNlbGFibGU6IGNhbGwgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHRvXG52ZXRvIHRoZSB0cmFuc2l0aW9uIChlLmcuIGJsb2NrIENvbnRpbnVlIHVudGlsIHRoZSBjdXJyZW50IHN0ZXAgdmFsaWRhdGVzKS5cbmBkZXRhaWwuaW5kZXhgIGlzIHRoZSByZXF1ZXN0ZWQgc3RlcCwgYGRldGFpbC5wcmV2aW91c2AgdGhlIGN1cnJlbnQgb25lLlxuRG9lcyBub3QgZmlyZSBmb3IgYSBkaXJlY3QgYGFjdGl2ZWAgcHJvcGVydHkgYXNzaWdubWVudCDigJQgc2V0IGBhY3RpdmVgXG55b3Vyc2VsZiB0byBjb21taXQgYXV0aG9yaXRhdGl2ZWx5IChlLmcuIGFmdGVyIGFzeW5jIHZhbGlkYXRpb24pLlxuICAgKi9cbiAgbWRCZWZvcmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXI7IHByZXZpb3VzOiBudW1iZXIgfT4+O1xuICAvKipcbiAgICogQWN0aXZlIHN0ZXAgY2hhbmdlZCAoYWZ0ZXIgaXQgY29tbWl0cykuXG4gICAqL1xuICBtZFN0ZXBDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXI7IHByZXZpb3VzOiBudW1iZXIgfT4+O1xuICAvKipcbiAgICogQ29udGludWUgcHJlc3NlZCBvbiB0aGUgbGFzdCBzdGVwICh0aGUgZmxvdyBpcyBmaW5pc2hlZCkuXG4gICAqL1xuICBtZENvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTdWJNZW51SXRlbSxcbiAgaW5wdXRzOiBbJ2JhZGdlJywgJ2Nsb3NlRGVsYXknLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkaXZpZGVyJywgJ2dhcCcsICdoZWFkbGluZScsICdvcGVuRGVsYXknLCAnc3VwcG9ydGluZ1RleHQnXSxcbiAgbWV0aG9kczogWydjb2xsYXBzZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc3ViLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFkZ2UnLCAnY2xvc2VEZWxheScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2RpdmlkZXInLCAnZ2FwJywgJ2hlYWRsaW5lJywgJ29wZW5EZWxheScsICdzdXBwb3J0aW5nVGV4dCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU3ViTWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kU3ViTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kU3ViTWVudUl0ZW0ge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgaXRlbSByb3cgaXRzZWxmIGlzIGNsaWNrZWQgKG5vdCB0aGUgc3VibWVudSkuXG4gICAqL1xuICBtZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTd2l0Y2gsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2ljb25zJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc2VsZWN0ZWQnLCAnc2VsZWN0ZWRJY29uJywgJ3Nob3dPbmx5U2VsZWN0ZWRJY29uJywgJ3NvZnREaXNhYmxlZCcsICd1bnNlbGVjdGVkSWNvbicsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ2dldFZhbGlkaXR5JywgJ2NoZWNrVmFsaWRpdHknLCAncmVwb3J0VmFsaWRpdHknLCAnc2V0Q3VzdG9tVmFsaWRpdHknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXN3aXRjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdpY29ucycsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NlbGVjdGVkJywgJ3NlbGVjdGVkSWNvbicsICdzaG93T25seVNlbGVjdGVkSWNvbicsICdzb2Z0RGlzYWJsZWQnLCAndW5zZWxlY3RlZEljb24nLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFN3aXRjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kSW5wdXQnLCAnbWRDaGFuZ2UnLCAnbWRWYWxpZGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFN3aXRjaCBleHRlbmRzIENvbXBvbmVudHMuTWRTd2l0Y2gge1xuICAvKipcbiAgICogRmlyZXMgKipiZWZvcmUqKiB0aGUgc3RhdGUgY2hhbmdlcy4gQ2FsbCBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgdG9cbmJsb2NrIHRoZSBpbnRlcm5hbCB0b2dnbGUgYW5kIG1hbmFnZSBzdGF0ZSBleHRlcm5hbGx5IChjb250cm9sbGVkIG1vZGUpLlxuXG5gYGB0c1xuc3dpdGNoLmFkZEV2ZW50TGlzdGVuZXIoJ21kSW5wdXQnLCAoZSkgPT4ge1xuICBlLnByZXZlbnREZWZhdWx0KCk7ICAgICAgICAgIC8vIHByZXZlbnQgaW50ZXJuYWwgdG9nZ2xlXG4gIG15U3RhdGUudmFsdWUgPSBlLmRldGFpbC5zZWxlY3RlZDsgLy8gdXBkYXRlIHlvdXIgb3duIHN0YXRlXG59KTtcbmBgYFxuICAgKi9cbiAgbWRJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWQ6IGJvb2xlYW4gfT4+O1xuICAvKipcbiAgICogRmlyZXMgKiphZnRlcioqIHRoZSBpbnRlcm5hbCBzdGF0ZSBoYXMgY29tbWl0dGVkLiBVc2UgZm9yIHNpZGUgZWZmZWN0c1xubGlrZSBzYXZpbmcgcHJlZmVyZW5jZXMsIGFuYWx5dGljcywgb3Igc3luY2luZyB3aXRoIG90aGVyIGNvbXBvbmVudHMuXG5Ob3QgY2FuY2VsYWJsZSDigJQgdGhlIHRvZ2dsZSBoYXMgYWxyZWFkeSBoYXBwZW5lZC5cblxuYGBgdHNcbnN3aXRjaC5hZGRFdmVudExpc3RlbmVyKCdtZENoYW5nZScsIChlKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdTd2l0Y2ggaXMgbm93JywgZS5kZXRhaWwuc2VsZWN0ZWQgPyAnT04nIDogJ09GRicpO1xufSk7XG5gYGBcbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZDogYm9vbGVhbiB9Pj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoaXMgY29udHJvbCdzIHZhbGlkaXR5IENIQU5HRVMg4oCUIG5ldmVyIG9uIGV2ZXJ5IGtleXN0cm9rZSwgYW5kXG5uZXZlciBmb3IgYSByZS1wdWJsaXNoIHRoYXQgbGFuZHMgb24gdGhlIHNhbWUgc3RhdGUuXG5cbmBjb21wb3NlZDogZmFsc2VgIGlzIGRlbGliZXJhdGUuIENvbXBvc2l0ZXMgbGlrZSBtZC1zZWxlY3QgZW1iZWQgYW5cbm1kLXRleHQtZmllbGQsIGFuZCBhIGNvbXBvc2VkIGV2ZW50IGVzY2FwZXMgdGhhdCBpbm5lciBzaGFkb3cgcm9vdCwgc28gYVxubGlzdGVuZXIgb24gbWQtc2VsZWN0IHdvdWxkIHJlY2VpdmUgdGhlIGlubmVyIGZpZWxkJ3MgZXZlbnQgYXMgd2VsbCBhcyB0aGVcbmhvc3QncyDigJQgdHdvIGV2ZW50cywgZGlmZmVyZW50IHBheWxvYWRzLCBmb3Igb25lIGxvZ2ljYWwgY29udHJvbC4gS2VlcGluZ1xuaXQgdW5jb21wb3NlZCBtZWFucyBlYWNoIGNvbXBvbmVudCByZXBvcnRzIG9ubHkgZm9yIGl0c2VsZiwgd2hpbGVcbmBidWJibGVzOiB0cnVlYCBzdGlsbCBsZXRzIGEgPGZvcm0+IG9yIGFwcCByb290IGhlYXIgZXZlcnkgY29udHJvbC5cbiAgICovXG4gIG1kVmFsaWRpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbGlkOiBib29sZWFuOyB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nOyBmbGFnczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFiLFxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2JhZGdlJywgJ2NvbnRyb2xzJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbicsICdpbmxpbmVJY29uJywgJ2xhYmVsJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2JhZGdlJywgJ2NvbnRyb2xzJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbicsICdpbmxpbmVJY29uJywgJ2xhYmVsJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kVGFiQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWIgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGFiIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHRhYiBpcyBhY3RpdmF0ZWQgYnkgY2xpY2sgb3Iga2V5Ym9hcmRcbiAgICovXG4gIG1kVGFiQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRhYlBhbmVsLFxuICBpbnB1dHM6IFsnYWN0aXZlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWItcGFuZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGFiUGFuZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRhYlBhbmVsIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYlBhbmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRhYlBhbmVscyxcbiAgaW5wdXRzOiBbJ2ZvcicsICdzaXppbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYi1wYW5lbHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZvcicsICdzaXppbmcnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYlBhbmVscyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFiUGFuZWxzIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYlBhbmVscyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZSxcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY29sdW1uVGVtcGxhdGUnLCAnY29sdW1ucycsICdkZW5zaXR5JywgJ2VtcHR5JywgJ2Zyb3plbkhlYWRlcicsICdob3ZlcmFibGUnLCAna2VlcEhlaWdodCcsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdNb2RlJywgJ2xvYWRpbmdSb3dzJywgJ21pbldpZHRoJywgJ21vdGlvbicsICdub0RpdmlkZXJzJywgJ3Bpbkljb24nLCAncGluTW9kZScsICdyb3dDb3VudCcsICdyb3dPZmZzZXQnLCAnc2Nyb2xsYmFyJywgJ3NlbGVjdGlvbicsICdzb3J0QnknLCAnc29ydE9yZGVyJywgJ3N0aWNreUZvb3RlcicsICdzdGlja3lIZWFkZXInLCAnc3RyaXBlZCcsICdzdW1tYXJ5J10sXG4gIG1ldGhvZHM6IFsnZ2V0U2VsZWN0aW9uJywgJ3NlbGVjdEFsbCcsICdkZXNlbGVjdEFsbCcsICd0b2dnbGVTZWxlY3RBbGwnLCAnc2V0U29ydCcsICdwaW5Db2x1bW4nLCAnc2V0Q29sdW1uVmlzaWJpbGl0eScsICdhbmltYXRlTmV4dENoYW5nZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY29sdW1uVGVtcGxhdGUnLCAnY29sdW1ucycsICdkZW5zaXR5JywgJ2VtcHR5JywgJ2Zyb3plbkhlYWRlcicsICdob3ZlcmFibGUnLCAna2VlcEhlaWdodCcsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdNb2RlJywgJ2xvYWRpbmdSb3dzJywgJ21pbldpZHRoJywgJ21vdGlvbicsICdub0RpdmlkZXJzJywgJ3Bpbkljb24nLCAncGluTW9kZScsICdyb3dDb3VudCcsICdyb3dPZmZzZXQnLCAnc2Nyb2xsYmFyJywgJ3NlbGVjdGlvbicsICdzb3J0QnknLCAnc29ydE9yZGVyJywgJ3N0aWNreUZvb3RlcicsICdzdGlja3lIZWFkZXInLCAnc3RyaXBlZCcsICdzdW1tYXJ5J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kU29ydENoYW5nZScsICdtZFNlbGVjdGlvbkNoYW5nZScsICdtZFBpbkNoYW5nZScsICdtZENvbHVtblZpc2liaWxpdHlDaGFuZ2UnLCAnbWRTY3JvbGwnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kVGFibGVTb3J0U3RhdGUgYXMgSU1kVGFibGVNZFRhYmxlU29ydFN0YXRlIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kVGFibGVTZWxlY3Rpb25TdGF0ZSBhcyBJTWRUYWJsZU1kVGFibGVTZWxlY3Rpb25TdGF0ZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJsZSBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJsZSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gc29ydCBjaGFuZ2VzIChhZnRlciBhIGBtZC10YWJsZS1zb3J0LWxhYmVsYCBpcyBjbGlja2VkKS5cbiAgICovXG4gIG1kU29ydENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFRhYmxlTWRUYWJsZVNvcnRTdGF0ZT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuZXZlciB0aGUgcm93IHNlbGVjdGlvbiBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgbWRTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRUYWJsZU1kVGFibGVTZWxlY3Rpb25TdGF0ZT4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBhIGNvbHVtbiBpcyBwaW5uZWQvdW5waW5uZWQgdmlhIGBwaW5Db2x1bW5gLlxuICAgKi9cbiAgbWRQaW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNvbHVtbjogbnVtYmVyOyBzaWRlOiAnc3RhcnQnIHwgJ2VuZCcgfCBudWxsIH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSBjb2x1bW4gaXMgaGlkZGVuL3Nob3duIHZpYSBgc2V0Q29sdW1uVmlzaWJpbGl0eWAuXG4gICAqL1xuICBtZENvbHVtblZpc2liaWxpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNvbHVtbjogbnVtYmVyOyB2aXNpYmxlOiBib29sZWFuOyBoaWRkZW46IG51bWJlcltdIH0+PjtcbiAgLyoqXG4gICAqIHJBRi10aHJvdHRsZWQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBmcm96ZW4gYm9keSBzY3JvbGxlci5cbiAgICovXG4gIG1kU2Nyb2xsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzY3JvbGxMZWZ0OiBudW1iZXI7IHNjcm9sbFRvcDogbnVtYmVyIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFibGVCb2R5XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUtYm9keScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGFibGVCb2R5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJsZUJvZHkgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGFibGVCb2R5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRhYmxlQ2VsbCxcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2NvbFNwYW4nLCAnZGVuc2l0eScsICdlbGxpcHNpcycsICdoZWFkJywgJ25vUGluSW5kaWNhdG9yJywgJ251bWVyaWMnLCAncGFkZGluZycsICdwaW5JY29uJywgJ3Jvd1NwYW4nLCAnc2NvcGUnLCAnc3RpY2t5JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYmxlLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2NvbFNwYW4nLCAnZGVuc2l0eScsICdlbGxpcHNpcycsICdoZWFkJywgJ25vUGluSW5kaWNhdG9yJywgJ251bWVyaWMnLCAncGFkZGluZycsICdwaW5JY29uJywgJ3Jvd1NwYW4nLCAnc2NvcGUnLCAnc3RpY2t5JywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlQ2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGVDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYmxlQ2VsbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZUNvbnRhaW5lcixcbiAgaW5wdXRzOiBbJ2VsZXZhdGlvbicsICdtYXhIZWlnaHQnLCAnbWluSGVpZ2h0JywgJ3NoYXBlJywgJ3ZhcmlhbnQnLCAndmlicmFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUtY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydlbGV2YXRpb24nLCAnbWF4SGVpZ2h0JywgJ21pbkhlaWdodCcsICdzaGFwZScsICd2YXJpYW50JywgJ3ZpYnJhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlQ29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJsZUNvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJsZUNvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZUV4cGFuZFRvZ2dsZSxcbiAgaW5wdXRzOiBbJ2J1dHRvbkxhYmVsJywgJ2ljb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYmxlLWV4cGFuZC10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2J1dHRvbkxhYmVsJywgJ2ljb24nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlRXhwYW5kVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJsZUV4cGFuZFRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJsZUV4cGFuZFRvZ2dsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZUZvb3Rcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWJsZS1mb290JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJsZUZvb3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRhYmxlRm9vdCBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJsZUZvb3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFibGVIZWFkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUtaGVhZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGFibGVIZWFkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJsZUhlYWQgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGFibGVIZWFkIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRhYmxlUGFnaW5hdGlvbixcbiAgaW5wdXRzOiBbJ2NvbXBhY3QnLCAnY291bnQnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdsYWJlbEFsbCcsICdsYWJlbERpc3BsYXllZFJvd3MnLCAnbGFiZWxGaXJzdFBhZ2UnLCAnbGFiZWxMYXN0UGFnZScsICdsYWJlbE5leHRQYWdlJywgJ2xhYmVsUHJldmlvdXNQYWdlJywgJ2xhYmVsUm93c1BlclBhZ2UnLCAncGFnZScsICdyb3dzUGVyUGFnZScsICdyb3dzUGVyUGFnZU9wdGlvbnMnLCAnc2hvd0ZpcnN0TGFzdCddLFxuICBtZXRob2RzOiBbJ2dvVG9QYWdlJywgJ3NldFJvd3NQZXJQYWdlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWJsZS1wYWdpbmF0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb21wYWN0JywgJ2NvdW50JywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnbGFiZWxBbGwnLCAnbGFiZWxEaXNwbGF5ZWRSb3dzJywgJ2xhYmVsRmlyc3RQYWdlJywgJ2xhYmVsTGFzdFBhZ2UnLCAnbGFiZWxOZXh0UGFnZScsICdsYWJlbFByZXZpb3VzUGFnZScsICdsYWJlbFJvd3NQZXJQYWdlJywgJ3BhZ2UnLCAncm93c1BlclBhZ2UnLCAncm93c1BlclBhZ2VPcHRpb25zJywgJ3Nob3dGaXJzdExhc3QnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlUGFnaW5hdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kUGFnZUNoYW5nZScsICdtZFJvd3NQZXJQYWdlQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGVQYWdpbmF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYmxlUGFnaW5hdGlvbiB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgdGhlIHBhZ2UuXG4gICAqL1xuICBtZFBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHBhZ2U6IG51bWJlciB9Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgcm93cy1wZXItcGFnZS5cbiAgICovXG4gIG1kUm93c1BlclBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHJvd3NQZXJQYWdlOiBudW1iZXIgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZVJvdyxcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdkaXNhYmxlZCcsICdleHBhbmRhYmxlJywgJ2V4cGFuZGVkJywgJ2hpZ2hsaWdodCcsICdyb3dncm91cCcsICdzZWxlY3RhYmxlJywgJ3NlbGVjdGVkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWJsZS1yb3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdkaXNhYmxlZCcsICdleHBhbmRhYmxlJywgJ2V4cGFuZGVkJywgJ2hpZ2hsaWdodCcsICdyb3dncm91cCcsICdzZWxlY3RhYmxlJywgJ3NlbGVjdGVkJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJsZVJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kUm93Q2xpY2snLCAnbWRSb3dTZWxlY3Rpb25DaGFuZ2UnLCAnbWRSb3dFeHBhbmRlZENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRhYmxlUm93IGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYmxlUm93IHtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIChvciBFbnRlci9TcGFjZS1hY3RpdmF0ZXMpIHRoZSByb3cuXG4gICAqL1xuICBtZFJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nOyByb3c6IEhUTUxFbGVtZW50IH0+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIGBzZWxlY3RlZGAgc3RhdGUgY2hhbmdlcyAodXNlZCBieSBgPG1kLXRhYmxlPmAgZm9yXG5zZWxlY3Rpb24gY29vcmRpbmF0aW9uKS5cbiAgICovXG4gIG1kUm93U2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZDogYm9vbGVhbjsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSByb3cncyBleHBhbmRlZCBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgbWRSb3dFeHBhbmRlZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZXhwYW5kZWQ6IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZVNvcnRMYWJlbCxcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdjb2x1bW4nLCAnZGVmYXVsdE9yZGVyJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbicsICdpY29uUG9zaXRpb24nLCAnaW5hY3RpdmVJY29uJywgJ29yZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWJsZS1zb3J0LWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnY29sdW1uJywgJ2RlZmF1bHRPcmRlcicsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvblBvc2l0aW9uJywgJ2luYWN0aXZlSWNvbicsICdvcmRlciddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGFibGVTb3J0TGFiZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFNvcnRSZXF1ZXN0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGVTb3J0TGFiZWwgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGFibGVTb3J0TGFiZWwge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgdXNlciByZXF1ZXN0cyB0byBzb3J0IGJ5IHRoaXMgY29sdW1uLlxuICAgKi9cbiAgbWRTb3J0UmVxdWVzdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY29sdW1uOiBzdHJpbmc7IGRlZmF1bHRPcmRlcjogJ2FzYycgfCAnZGVzYycgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZVRvb2xiYXIsXG4gIGlucHV0czogWydhdXRvQmluZCcsICdjb21wYWN0JywgJ2RlbnNpdHknLCAnaGVhZGxpbmUnLCAnbGFiZWxTZWxlY3RlZCcsICdudW1TZWxlY3RlZCcsICdzdXBwb3J0aW5nVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUtdG9vbGJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b0JpbmQnLCAnY29tcGFjdCcsICdkZW5zaXR5JywgJ2hlYWRsaW5lJywgJ2xhYmVsU2VsZWN0ZWQnLCAnbnVtU2VsZWN0ZWQnLCAnc3VwcG9ydGluZ1RleHQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlVG9vbGJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGVUb29sYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYmxlVG9vbGJhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJzLFxuICBpbnB1dHM6IFsnYWN0aXZlVGFiSW5kZXgnLCAnYXJpYUxhYmVsUHJvcCcsICdkaXZpZGVyJywgJ3RhYldpZHRoJywgJ3ZhcmlhbnQnLCAnd2lkdGgnXSxcbiAgbWV0aG9kczogWydzZWxlY3RUYWInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZVRhYkluZGV4JywgJ2FyaWFMYWJlbFByb3AnLCAnZGl2aWRlcicsICd0YWJXaWR0aCcsICd2YXJpYW50JywgJ3dpZHRoJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRUYWJDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJzIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYnMge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgYWN0aXZlIHRhYiBjaGFuZ2VzXG4gICAqL1xuICBtZFRhYkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaW5kZXg6IG51bWJlcjsgcHJldmlvdXNJbmRleDogbnVtYmVyIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGV4dEZpZWxkLFxuICBpbnB1dHM6IFsnYXBwZWFyRm9jdXNlZCcsICdhdXRvQ2FwaXRhbGl6ZScsICdhdXRvY29tcGxldGUnLCAnY2hpcHNXcmFwJywgJ2NsZWFyYWJsZScsICdkZWJvdW5jZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2VudGVyS2V5SGludCcsICdlcnJvcicsICdlcnJvclRleHQnLCAnZm9jdXNCb3JkZXJXaWR0aCcsICdmb3JtYXRPbicsICdmb3JtYXR0ZXInLCAnaW5wdXRBcmlhQXV0b2NvbXBsZXRlJywgJ2lucHV0RXhwYW5kZWQnLCAnaW5wdXRNb2RlJywgJ2lucHV0Um9sZScsICdsYWJlbCcsICdtYXgnLCAnbWF4TGVuZ3RoJywgJ21pbicsICdtaW5MZW5ndGgnLCAnbXVsdGlsaW5lJywgJ25hbWUnLCAncGFyc2VyJywgJ3Bhc3N3b3JkVG9nZ2xlJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncHJlZml4VGV4dCcsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdyZXNlcnZlU3VwcG9ydGluZ1NwYWNlJywgJ3Jlc3RyaWN0JywgJ3Jvd3MnLCAnc3BlZWNoTGFuZycsICdzcGVlY2hUb1RleHQnLCAnc3BlbGxjaGVjaycsICdzdGVwJywgJ3N1ZmZpeFRleHQnLCAnc3VwcG9ydGluZ1RleHQnLCAndGhyb3R0bGUnLCAndHlwZScsICd2YWx1ZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnc2VsZWN0JywgJ2dldElucHV0RWxlbWVudCcsICdnZXRWYWxpZGl0eScsICdzZXRDdXN0b21WYWxpZGl0eScsICdjaGVja1ZhbGlkaXR5JywgJ3JlcG9ydFZhbGlkaXR5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10ZXh0LWZpZWxkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBlYXJGb2N1c2VkJywgJ2F1dG9DYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdjaGlwc1dyYXAnLCAnY2xlYXJhYmxlJywgJ2RlYm91bmNlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZW50ZXJLZXlIaW50JywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmb2N1c0JvcmRlcldpZHRoJywgJ2Zvcm1hdE9uJywgJ2Zvcm1hdHRlcicsICdpbnB1dEFyaWFBdXRvY29tcGxldGUnLCAnaW5wdXRFeHBhbmRlZCcsICdpbnB1dE1vZGUnLCAnaW5wdXRSb2xlJywgJ2xhYmVsJywgJ21heCcsICdtYXhMZW5ndGgnLCAnbWluJywgJ21pbkxlbmd0aCcsICdtdWx0aWxpbmUnLCAnbmFtZScsICdwYXJzZXInLCAncGFzc3dvcmRUb2dnbGUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdwcmVmaXhUZXh0JywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAncmVzdHJpY3QnLCAncm93cycsICdzcGVlY2hMYW5nJywgJ3NwZWVjaFRvVGV4dCcsICdzcGVsbGNoZWNrJywgJ3N0ZXAnLCAnc3VmZml4VGV4dCcsICdzdXBwb3J0aW5nVGV4dCcsICd0aHJvdHRsZScsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRleHRGaWVsZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kSW5wdXQnLCAnbWRDaGFuZ2UnLCAnbWRTZWFyY2gnLCAnbWRDbGVhcicsICdtZFBhc3N3b3JkVG9nZ2xlJywgJ21kU3BlZWNoUmVzdWx0JywgJ21kVmFsaWRpdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUZXh0RmllbGQgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGV4dEZpZWxkIHtcblxuICBtZElucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2l0aCBkZWJvdW5jZS90aHJvdHRsZSBjb250cm9sLiBVc2VmdWwgZm9yIHNlYXJjaC1hcy15b3UtdHlwZSwgQVBJIGNhbGxzLCBvciBmaWx0ZXJpbmcuXG4gICAqL1xuICBtZFNlYXJjaDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG4gIG1kQ2xlYXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgbWRQYXNzd29yZFRvZ2dsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmlzaWJsZTogYm9vbGVhbiB9Pj47XG5cbiAgbWRTcGVlY2hSZXN1bHQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRyYW5zY3JpcHQ6IHN0cmluZzsgbGlzdGVuaW5nOiBib29sZWFuIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhpcyBjb250cm9sJ3MgdmFsaWRpdHkgQ0hBTkdFUyDigJQgbmV2ZXIgb24gZXZlcnkga2V5c3Ryb2tlLCBhbmRcbm5ldmVyIGZvciBhIHJlLXB1Ymxpc2ggdGhhdCBsYW5kcyBvbiB0aGUgc2FtZSBzdGF0ZS5cblxuYGNvbXBvc2VkOiBmYWxzZWAgaXMgZGVsaWJlcmF0ZS4gQ29tcG9zaXRlcyBsaWtlIG1kLXNlbGVjdCBlbWJlZCBhblxubWQtdGV4dC1maWVsZCwgYW5kIGEgY29tcG9zZWQgZXZlbnQgZXNjYXBlcyB0aGF0IGlubmVyIHNoYWRvdyByb290LCBzbyBhXG5saXN0ZW5lciBvbiBtZC1zZWxlY3Qgd291bGQgcmVjZWl2ZSB0aGUgaW5uZXIgZmllbGQncyBldmVudCBhcyB3ZWxsIGFzIHRoZVxuaG9zdCdzIOKAlCB0d28gZXZlbnRzLCBkaWZmZXJlbnQgcGF5bG9hZHMsIGZvciBvbmUgbG9naWNhbCBjb250cm9sLiBLZWVwaW5nXG5pdCB1bmNvbXBvc2VkIG1lYW5zIGVhY2ggY29tcG9uZW50IHJlcG9ydHMgb25seSBmb3IgaXRzZWxmLCB3aGlsZVxuYGJ1YmJsZXM6IHRydWVgIHN0aWxsIGxldHMgYSA8Zm9ybT4gb3IgYXBwIHJvb3QgaGVhciBldmVyeSBjb250cm9sLlxuICAgKi9cbiAgbWRWYWxpZGl0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsaWQ6IGJvb2xlYW47IHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmc7IGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUaW1lUGlja2VyLFxuICBpbnB1dHM6IFsnYW1MYWJlbCcsICdjYW5jZWxMYWJlbCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmb3JtYXQnLCAnaGVhZGxpbmUnLCAnaGVhZGxpbmVEaWFsTGFiZWwnLCAnaGVhZGxpbmVJbnB1dExhYmVsJywgJ2hpZGVUcmlnZ2VyJywgJ2hvdXJMYWJlbCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ21pbnV0ZUxhYmVsJywgJ21pbnV0ZVN0ZXAnLCAnbmFtZScsICdva0xhYmVsJywgJ29wZW4nLCAnb3JpZW50YXRpb24nLCAncGVyaW9kTGFiZWwnLCAncGVyaW9kTGF5b3V0JywgJ3BtTGFiZWwnLCAncmFuZ2VPdXRzaWRlTGFiZWwnLCAncmFuZ2VPdmVyZmxvd0xhYmVsJywgJ3JhbmdlVW5kZXJmbG93TGFiZWwnLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdyZXNwb25zaXZlJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3RvZ2dsZURpYWxMYWJlbCcsICd0b2dnbGVJbnB1dExhYmVsJywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAnY2hlY2tWYWxpZGl0eScsICdyZXBvcnRWYWxpZGl0eScsICdnZXRWYWxpZGl0eSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGltZS1waWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FtTGFiZWwnLCAnY2FuY2VsTGFiZWwnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvclRleHQnLCAnZm9ybWF0JywgJ2hlYWRsaW5lJywgJ2hlYWRsaW5lRGlhbExhYmVsJywgJ2hlYWRsaW5lSW5wdXRMYWJlbCcsICdoaWRlVHJpZ2dlcicsICdob3VyTGFiZWwnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICdtaW51dGVMYWJlbCcsICdtaW51dGVTdGVwJywgJ25hbWUnLCAnb2tMYWJlbCcsICdvcGVuJywgJ29yaWVudGF0aW9uJywgJ3BlcmlvZExhYmVsJywgJ3BlcmlvZExheW91dCcsICdwbUxhYmVsJywgJ3JhbmdlT3V0c2lkZUxhYmVsJywgJ3JhbmdlT3ZlcmZsb3dMYWJlbCcsICdyYW5nZVVuZGVyZmxvd0xhYmVsJywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAncmVzcG9uc2l2ZScsICdzdXBwb3J0aW5nVGV4dCcsICd0b2dnbGVEaWFsTGFiZWwnLCAndG9nZ2xlSW5wdXRMYWJlbCcsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUaW1lUGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnLCAnbWRJbnB1dCcsICdtZE9wZW4nLCAnbWRDbG9zZScsICdtZENhbmNlbCcsICdtZE1vZGVDaGFuZ2UnLCAnbWRWYWxpZGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRUaW1lUGlja2VyQ2hhbmdlRGV0YWlsIGFzIElNZFRpbWVQaWNrZXJNZFRpbWVQaWNrZXJDaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRUaW1lUGlja2VyTW9kZUNoYW5nZURldGFpbCBhcyBJTWRUaW1lUGlja2VyTWRUaW1lUGlja2VyTW9kZUNoYW5nZURldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUaW1lUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRpbWVQaWNrZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNvbmZpcm1zIHRoZSBjaG9zZW4gdGltZSAoT0sgYnV0dG9uLCBvclxuRW50ZXIgaW5zaWRlIHRoZSBISC9NTSBmaWVsZHMgd2hpbGUgdGhlIGJ1ZmZlcnMgYXJlIHZhbGlkKS5cblRoaXMgaXMgdGhlIGNhbm9uaWNhbCBcInRoZSB1c2VyIGhhcyBjb21taXR0ZWQgYSB2YWx1ZVwiIGV2ZW50IOKAlFxudXNlIGl0IGZvciBmb3JtIGludGVncmF0aW9uLCBwZXJzaXN0ZW5jZSwgYW5kIGFuYWx5dGljcy5cblxuVGhlIGRldGFpbCBidW5kbGUgaW5jbHVkZXMgYm90aCB0aGUgaHVtYW4tZnJpZW5kbHkgYHZhbHVlYCBhbmRcbnRocmVlIGluZHVzdHJ5LXN0YW5kYXJkIElTTyAvIERhdGUgcmVwcmVzZW50YXRpb25zIHNvXG5kb3duc3RyZWFtIGNvZGUgbmV2ZXIgaGFzIHRvIHJlLWZvcm1hdCB0aGUgdGltZSBpdHNlbGYuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFRpbWVQaWNrZXJNZFRpbWVQaWNrZXJDaGFuZ2VEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgb24gZXZlcnkgaW50ZXJtZWRpYXRlIGNoYW5nZSB3aGlsZSB0aGUgZGlhbG9nIGlzXG5vcGVuIOKAlCBkaWFsIGRyYWcsIGRpYWwtbW9kZSBrZXlib2FyZCB0eXBpbmcsIEFNL1BNIHRvZ2dsZSxcbmFuZCBpbnB1dC12YXJpYW50IGtleXN0cm9rZXMgdGhhdCBwcm9kdWNlIGEgdmFsaWQgSEg6TU0uXG5cbk1pcnJvcnMgdGhlIEhUTUwgYGlucHV0YCBldmVudCBzZW1hbnRpY3MgKFwiZmlyZXMgZm9yIGV2ZXJ5XG51c2VyLWRyaXZlbiBtdXRhdGlvblwiKSBhbmQgbWF0Y2hlcyB0aGUgcGF0dGVybiB1c2VkIGJ5XG5gbWQtZGF0ZS1waWNrZXJgIC8gYG1kLXRleHQtZmllbGRgLiBVc2UgYG1kSW5wdXRgIGZvciBsaXZlXG5wcmV2aWV3cyBhbmQgYG1kQ2hhbmdlYCBmb3IgdGhlIGZpbmFsIGNvbW1pdC4gVGhlIGRldGFpbFxuc2hhcGUgaXMgaWRlbnRpY2FsIHRvIGBtZENoYW5nZWAgc28gYSBwcmV2aWV3ZXIgY2FuIHJlYWQgdGhlXG5zYW1lIGZpZWxkcyByZWdhcmRsZXNzIG9mIHdoaWNoIGV2ZW50IGFycml2ZWQuXG4gICAqL1xuICBtZElucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kVGltZVBpY2tlck1kVGltZVBpY2tlckNoYW5nZURldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBwaWNrZXIgb3BlbnMuXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHBpY2tlciBjbG9zZXMgKHdoZXRoZXIgY29uZmlybWVkLCBjYW5jZWxsZWQsIG9yIGRpc21pc3NlZCkuXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBwaWNrZXIgaXMgY2FuY2VsbGVkIG9yIGRpc21pc3NlZCB3aXRob3V0IGNvbW1pdHRpbmcuXG4gICAqL1xuICBtZENhbmNlbDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzd2l0Y2hlcyBiZXR3ZWVuIHRoZSBkaWFsIGFuZCBpbnB1dFxudmFyaWFudHMgdmlhIHRoZSBkaWFsb2cncyBrZXlib2FyZCAvIGNsb2NrIHRvZ2dsZS4gTGV0c1xuYW5hbHl0aWNzIG9yIHNpYmxpbmcgVUkgcmVhY3QgdG8gdGhlIHZhcmlhbnQgY2hhbmdlIChlLmcuXG5hbm5vdW5jZSB0aGUgbmV3IG1vZGUgdG8gc2NyZWVuIHJlYWRlcnMsIG9yIHJlc2l6ZSBhIGhvc3RpbmdcbmRpYWxvZyB3cmFwcGVyKS5cbiAgICovXG4gIG1kTW9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFRpbWVQaWNrZXJNZFRpbWVQaWNrZXJNb2RlQ2hhbmdlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoaXMgY29udHJvbCdzIHZhbGlkaXR5IENIQU5HRVMg4oCUIG5ldmVyIG9uIGV2ZXJ5IGtleXN0cm9rZSwgYW5kXG5uZXZlciBmb3IgYSByZS1wdWJsaXNoIHRoYXQgbGFuZHMgb24gdGhlIHNhbWUgc3RhdGUuXG5cbmBjb21wb3NlZDogZmFsc2VgIGlzIGRlbGliZXJhdGUuIENvbXBvc2l0ZXMgbGlrZSBtZC1zZWxlY3QgZW1iZWQgYW5cbm1kLXRleHQtZmllbGQsIGFuZCBhIGNvbXBvc2VkIGV2ZW50IGVzY2FwZXMgdGhhdCBpbm5lciBzaGFkb3cgcm9vdCwgc28gYVxubGlzdGVuZXIgb24gbWQtc2VsZWN0IHdvdWxkIHJlY2VpdmUgdGhlIGlubmVyIGZpZWxkJ3MgZXZlbnQgYXMgd2VsbCBhcyB0aGVcbmhvc3QncyDigJQgdHdvIGV2ZW50cywgZGlmZmVyZW50IHBheWxvYWRzLCBmb3Igb25lIGxvZ2ljYWwgY29udHJvbC4gS2VlcGluZ1xuaXQgdW5jb21wb3NlZCBtZWFucyBlYWNoIGNvbXBvbmVudCByZXBvcnRzIG9ubHkgZm9yIGl0c2VsZiwgd2hpbGVcbmBidWJibGVzOiB0cnVlYCBzdGlsbCBsZXRzIGEgPGZvcm0+IG9yIGFwcCByb290IGhlYXIgZXZlcnkgY29udHJvbC5cbiAgICovXG4gIG1kVmFsaWRpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbGlkOiBib29sZWFuOyB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nOyBmbGFnczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVG9vbGJhcixcbiAgaW5wdXRzOiBbJ2FsaWdubWVudCcsICdhcmlhTGFiZWxQcm9wJywgJ2FyaWFMYWJlbGxlZGJ5JywgJ2NvbG9yJywgJ2NvbnRhaW5lclNlbWFudGljcycsICdkZW5zaXR5JywgJ2xheW91dCcsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRvb2xiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsaWdubWVudCcsICdhcmlhTGFiZWxQcm9wJywgJ2FyaWFMYWJlbGxlZGJ5JywgJ2NvbG9yJywgJ2NvbnRhaW5lclNlbWFudGljcycsICdkZW5zaXR5JywgJ2xheW91dCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUb29sYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUb29sYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRvb2xiYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVG9vbHRpcCxcbiAgaW5wdXRzOiBbJ2F1dG9Qb3NpdGlvbicsICdjcm9zc09mZnNldCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2hpZGVEZWxheScsICdvZmZzZXQnLCAnb3BlbicsICdwb3NpdGlvbicsICdzaG93RGVsYXknLCAnc3ViaGVhZCcsICd0ZXh0JywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRvb2x0aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9Qb3NpdGlvbicsICdjcm9zc09mZnNldCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2hpZGVEZWxheScsICdvZmZzZXQnLCAnb3BlbicsICdwb3NpdGlvbicsICdzaG93RGVsYXknLCAnc3ViaGVhZCcsICd0ZXh0JywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZE9wZW4nLCAnbWRDbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRvb2x0aXAgZXh0ZW5kcyBDb21wb25lbnRzLk1kVG9vbHRpcCB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSB0b29sdGlwIGJlY29tZXMgdmlzaWJsZS4gYGJ1YmJsZXM6ZmFsc2VgICsgYGNvbXBvc2VkOmZhbHNlYCBrZWVwIGl0XG5mcm9tIGNyb3NzaW5nIHRoZSBzaGFkb3cgYm91bmRhcnkgYW5kIHJldGFyZ2V0aW5nIG9udG8gYW4gZW1iZWRkaW5nIGhvc3QgKHRoZSByZXBvJ3NcbmRvY3VtZW50ZWQgY29tcG9zZWQtZXZlbnQtbGVhayBjbGFzcyDigJQgc2VlIG1kLWRhdGUtcGlja2VyJ3Mgc3dhbGxvdyBndWFyZHMpLlxuICAgKi9cbiAgbWRPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgdG9vbHRpcCBpcyBkaXNtaXNzZWQgKGRvZXMgbm90IGJ1YmJsZSBvciBjcm9zcyBzaGFkb3cgYm91bmRhcmllcykuXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUcmFuc2Zlckxpc3QsXG4gIGlucHV0czogWydjb3VudFRlbXBsYXRlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZW1wdHlJY29uJywgJ2VtcHR5VGV4dCcsICdpdGVtcycsICdtb3ZlQWxsTGVmdEljb24nLCAnbW92ZUFsbExlZnRMYWJlbCcsICdtb3ZlQWxsUmlnaHRJY29uJywgJ21vdmVBbGxSaWdodExhYmVsJywgJ21vdmVMZWZ0SWNvbicsICdtb3ZlTGVmdExhYmVsJywgJ21vdmVSaWdodEljb24nLCAnbW92ZVJpZ2h0TGFiZWwnLCAnc2VhcmNoSWNvbicsICdzZWFyY2hhYmxlJywgJ3Nob3dTZWxlY3RBbGwnLCAnc2luZ2xlU3RlcE9ubHknLCAnc291cmNlU2VhcmNoUGxhY2Vob2xkZXInLCAnc291cmNlVGl0bGUnLCAndGFyZ2V0U2VhcmNoUGxhY2Vob2xkZXInLCAndGFyZ2V0VGl0bGUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydtb3ZlU2VsZWN0ZWRSaWdodCcsICdtb3ZlU2VsZWN0ZWRMZWZ0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10cmFuc2Zlci1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb3VudFRlbXBsYXRlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZW1wdHlJY29uJywgJ2VtcHR5VGV4dCcsICdpdGVtcycsICdtb3ZlQWxsTGVmdEljb24nLCAnbW92ZUFsbExlZnRMYWJlbCcsICdtb3ZlQWxsUmlnaHRJY29uJywgJ21vdmVBbGxSaWdodExhYmVsJywgJ21vdmVMZWZ0SWNvbicsICdtb3ZlTGVmdExhYmVsJywgJ21vdmVSaWdodEljb24nLCAnbW92ZVJpZ2h0TGFiZWwnLCAnc2VhcmNoSWNvbicsICdzZWFyY2hhYmxlJywgJ3Nob3dTZWxlY3RBbGwnLCAnc2luZ2xlU3RlcE9ubHknLCAnc291cmNlU2VhcmNoUGxhY2Vob2xkZXInLCAnc291cmNlVGl0bGUnLCAndGFyZ2V0U2VhcmNoUGxhY2Vob2xkZXInLCAndGFyZ2V0VGl0bGUnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRyYW5zZmVyTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2hhbmdlJywgJ21kTW92ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRyYW5zZmVyTGlzdCBleHRlbmRzIENvbXBvbmVudHMuTWRUcmFuc2Zlckxpc3Qge1xuICAvKipcbiAgICogRmlyZXMgb24gZXZlcnkgY2hhbmdlIHRvIHRoZSB0YXJnZXQgdmFsdWUuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBGaXJlcyBhZnRlciBpdGVtcyBhcmUgbW92ZWQuIGRldGFpbCBkZXNjcmliZXMgdGhlIG9wZXJhdGlvbi5cbiAgICovXG4gIG1kTW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnOyBtb3ZlZDogc3RyaW5nW107IHRhcmdldDogc3RyaW5nW107IH0+Pjtcbn1cblxuXG4iXX0=
|