@alauda-fe/common 1.4.9 → 1.4.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/pipes/parse-json-translate.pipe.d.ts +1 -1
- package/core/services/plugin-util.service.d.ts +31 -0
- package/core/services/public-api.d.ts +1 -0
- package/core/types/k8s/crd.d.ts +3 -2
- package/core/types/resource-definitions.d.ts +21 -1
- package/esm2022/api/project-api.service.mjs +7 -2
- package/esm2022/chart/common/axis/x-axis-ticks.component.mjs +8 -13
- package/esm2022/chart/common/legend/legend.component.mjs +5 -6
- package/esm2022/chart/common/tooltip/tooltip.component.mjs +6 -7
- package/esm2022/code/code-display-dialog/component.mjs +3 -3
- package/esm2022/core/pipes/parse-json-translate.pipe.mjs +3 -4
- package/esm2022/core/services/plugin-util.service.mjs +60 -0
- package/esm2022/core/services/public-api.mjs +2 -1
- package/esm2022/core/types/k8s/crd.mjs +1 -1
- package/esm2022/core/types/resource-definitions.mjs +11 -1
- package/esm2022/core/utils/resources.mjs +2 -2
- package/esm2022/editable/editable.component.mjs +5 -17
- package/esm2022/k8s-resource-list/footer/component.mjs +2 -2
- package/esm2022/multi-search/action-input/component.mjs +83 -51
- package/esm2022/multi-search/form/component.mjs +33 -16
- package/esm2022/multi-search/multi-search-tags/component.mjs +7 -5
- package/esm2022/page-scaffold/navigation/lottie-icons/animation-data.mjs +3 -1
- package/esm2022/page-scaffold/navigation/lottie-icons/animations/observe.json +1 -0
- package/esm2022/page-scaffold/page-header/common-layout/context.service.mjs +6 -11
- package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +12 -13
- package/esm2022/table/component.mjs +6 -6
- package/esm2022/translate/i18n-assets-loader.mjs +4 -4
- package/esm2022/translate/i18n-config.mjs +4 -1
- package/esm2022/translate/translate.pipe.mjs +17 -23
- package/esm2022/translate/translate.service.mjs +14 -24
- package/esm2022/view-chart/legend/legend.component.mjs +5 -6
- package/esm2022/view-chart/view-chart.component.mjs +7 -9
- package/esm2022/view-zchart/legend/legend.component.mjs +5 -6
- package/esm2022/view-zchart/view-zchart.component.mjs +8 -15
- package/esm2022/widget/field-set/item/component.mjs +2 -2
- package/multi-search/action-input/component.d.ts +4 -1
- package/multi-search/form/component.d.ts +4 -1
- package/multi-search/multi-search-tags/component.d.ts +2 -1
- package/package.json +1 -1
- package/page-scaffold/page-header/common-layout/context.service.d.ts +1 -2
- package/styles/markdown-body.scss +4 -2
- package/translate/i18n-config.d.ts +1 -0
- package/translate/translate.pipe.d.ts +1 -2
- package/translate/translate.service.d.ts +8 -10
|
@@ -11,7 +11,6 @@ import * as i1 from "../../chart.service";
|
|
|
11
11
|
const _c0 = ["tooltip"];
|
|
12
12
|
const _c1 = ["aclTooltip", ""];
|
|
13
13
|
const _c2 = a0 => ({ context: a0 });
|
|
14
|
-
const _c3 = () => ({});
|
|
15
14
|
function ChartTooltipComponent__svg_g_0__svg_circle_1_Template(rf, ctx) { if (rf & 1) {
|
|
16
15
|
i0.ɵɵnamespaceSVG();
|
|
17
16
|
i0.ɵɵelement(0, "circle", 8);
|
|
@@ -58,7 +57,7 @@ function ChartTooltipComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
|
|
|
58
57
|
} if (rf & 2) {
|
|
59
58
|
const context_r6 = ctx.context;
|
|
60
59
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
61
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.titleTranslation ? i0.ɵɵ
|
|
60
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.titleTranslation ? i0.ɵɵpipeBind1(1, 1, context_r6 == null ? null : context_r6.title) : i0.ɵɵpipeBind3(2, 3, context_r6 == null ? null : context_r6.title, ctx_r1.handleDateFormat, ctx_r1.dateFormat), "\n");
|
|
62
61
|
} }
|
|
63
62
|
function ChartTooltipComponent_ng_template_7_li_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
64
63
|
i0.ɵɵelementContainerStart(0);
|
|
@@ -76,7 +75,7 @@ function ChartTooltipComponent_ng_template_7_li_1_ng_template_5_Template(rf, ctx
|
|
|
76
75
|
} if (rf & 2) {
|
|
77
76
|
const item_r7 = i0.ɵɵnextContext().$implicit;
|
|
78
77
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
79
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.translation ? i0.ɵɵ
|
|
78
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.translation ? i0.ɵɵpipeBind1(1, 1, item_r7.name) : item_r7.name, " ");
|
|
80
79
|
} }
|
|
81
80
|
function ChartTooltipComponent_ng_template_7_li_1_ng_container_8_Template(rf, ctx) { if (rf & 1) {
|
|
82
81
|
i0.ɵɵelementContainerStart(0);
|
|
@@ -106,7 +105,7 @@ function ChartTooltipComponent_ng_template_7_li_1_Template(rf, ctx) { if (rf & 1
|
|
|
106
105
|
i0.ɵɵelementStart(0, "li", 16)(1, "div", 17);
|
|
107
106
|
i0.ɵɵelement(2, "span", 18);
|
|
108
107
|
i0.ɵɵelementStart(3, "span", 19);
|
|
109
|
-
i0.ɵɵtemplate(4, ChartTooltipComponent_ng_template_7_li_1_ng_container_4_Template, 2, 4, "ng-container", 20)(5, ChartTooltipComponent_ng_template_7_li_1_ng_template_5_Template, 2,
|
|
108
|
+
i0.ɵɵtemplate(4, ChartTooltipComponent_ng_template_7_li_1_ng_container_4_Template, 2, 4, "ng-container", 20)(5, ChartTooltipComponent_ng_template_7_li_1_ng_template_5_Template, 2, 3, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
|
|
110
109
|
i0.ɵɵelementEnd()();
|
|
111
110
|
i0.ɵɵelementStart(7, "div", 21);
|
|
112
111
|
i0.ɵɵtemplate(8, ChartTooltipComponent_ng_template_7_li_1_ng_container_8_Template, 2, 0, "ng-container", 5)(9, ChartTooltipComponent_ng_template_7_li_1_span_9_Template, 2, 1, "span", 22);
|
|
@@ -469,7 +468,7 @@ export class ChartTooltipComponent {
|
|
|
469
468
|
i0.ɵɵtemplate(0, ChartTooltipComponent__svg_g_0_Template, 2, 2, "g", 5);
|
|
470
469
|
i0.ɵɵnamespaceSVG();
|
|
471
470
|
i0.ɵɵelement(1, "rect", 6, 0);
|
|
472
|
-
i0.ɵɵtemplate(3, ChartTooltipComponent_ng_template_3_Template, 7, 9, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(5, ChartTooltipComponent_ng_template_5_Template, 3,
|
|
471
|
+
i0.ɵɵtemplate(3, ChartTooltipComponent_ng_template_3_Template, 7, 9, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(5, ChartTooltipComponent_ng_template_5_Template, 3, 7, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(7, ChartTooltipComponent_ng_template_7_Template, 2, 4, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
|
|
473
472
|
} if (rf & 2) {
|
|
474
473
|
const defaultTooltipTemplate_r10 = i0.ɵɵreference(4);
|
|
475
474
|
i0.ɵɵproperty("ngIf", !ctx.isBand);
|
|
@@ -480,7 +479,7 @@ export class ChartTooltipComponent {
|
|
|
480
479
|
}
|
|
481
480
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChartTooltipComponent, [{
|
|
482
481
|
type: Component,
|
|
483
|
-
args: [{ selector: 'g[aclTooltip]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg:g\n [attr.opacity]=\"anchorOpacity\"\n *ngIf=\"!isBand\"\n>\n <svg:circle\n [attr.visibility]=\"\n contextService.disabledLegend.has(item.name) ? 'hidden' : ''\n \"\n *ngFor=\"let item of tooltipContext?.values\"\n r=\"2.5\"\n [attr.stroke]=\"item.color\"\n stroke-width=\"1\"\n fill=\"#fff\"\n [attr.cx]=\"anchorPos\"\n [attr.cy]=\"item.y ? (item.y | pure: contextService.y) || 0 : 1000\"\n ></svg:circle>\n</svg:g>\n\n<svg:rect\n stroke=\"#999\"\n [attr.x]=\"anchorPos\"\n [attr.visibility]=\"anchorVisibility\"\n [attr.y]=\"anchorY\"\n [attr.width]=\"0.5\"\n [attr.height]=\"anchorHeight\"\n #tooltip=\"auiTooltip\"\n [attr.opacity]=\"anchorOpacity\"\n [auiTooltip]=\"tooltipTemplate || defaultTooltipTemplate\"\n [auiTooltipContext]=\"{ context: tooltipContext }\"\n [auiTooltipDisabled]=\"anchorVisibility\"\n auiTooltipTrigger=\"manual\"\n [auiTooltipPosition]=\"typeStandard && isBand ? 'top' : 'start'\"\n auiTooltipClass=\"tooltipClass\"\n/>\n\n<ng-template\n #defaultTooltipTemplate\n let-context=\"context\"\n>\n <div class=\"tooltip-content\">\n <div class=\"title\">\n <ng-container\n [ngTemplateOutlet]=\"titleTemplate || defaultTitleTemplate\"\n [ngTemplateOutletContext]=\"{ context: context }\"\n ></ng-container>\n </div>\n <div class=\"context\">\n <ng-container\n [ngTemplateOutlet]=\"pointTemplate || defaultPointTemplate\"\n [ngTemplateOutletContext]=\"context | pure: mergePointContext\"\n ></ng-container>\n </div>\n </div>\n <div\n style=\"position: absolute; pointer-events: none; width: 100%; height: 100%\"\n ></div>\n</ng-template>\n\n<ng-template\n #defaultTitleTemplate\n let-context=\"context\"\n>\n {{\n titleTranslation\n ? (context?.title | translate
|
|
482
|
+
args: [{ selector: 'g[aclTooltip]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg:g\n [attr.opacity]=\"anchorOpacity\"\n *ngIf=\"!isBand\"\n>\n <svg:circle\n [attr.visibility]=\"\n contextService.disabledLegend.has(item.name) ? 'hidden' : ''\n \"\n *ngFor=\"let item of tooltipContext?.values\"\n r=\"2.5\"\n [attr.stroke]=\"item.color\"\n stroke-width=\"1\"\n fill=\"#fff\"\n [attr.cx]=\"anchorPos\"\n [attr.cy]=\"item.y ? (item.y | pure: contextService.y) || 0 : 1000\"\n ></svg:circle>\n</svg:g>\n\n<svg:rect\n stroke=\"#999\"\n [attr.x]=\"anchorPos\"\n [attr.visibility]=\"anchorVisibility\"\n [attr.y]=\"anchorY\"\n [attr.width]=\"0.5\"\n [attr.height]=\"anchorHeight\"\n #tooltip=\"auiTooltip\"\n [attr.opacity]=\"anchorOpacity\"\n [auiTooltip]=\"tooltipTemplate || defaultTooltipTemplate\"\n [auiTooltipContext]=\"{ context: tooltipContext }\"\n [auiTooltipDisabled]=\"anchorVisibility\"\n auiTooltipTrigger=\"manual\"\n [auiTooltipPosition]=\"typeStandard && isBand ? 'top' : 'start'\"\n auiTooltipClass=\"tooltipClass\"\n/>\n\n<ng-template\n #defaultTooltipTemplate\n let-context=\"context\"\n>\n <div class=\"tooltip-content\">\n <div class=\"title\">\n <ng-container\n [ngTemplateOutlet]=\"titleTemplate || defaultTitleTemplate\"\n [ngTemplateOutletContext]=\"{ context: context }\"\n ></ng-container>\n </div>\n <div class=\"context\">\n <ng-container\n [ngTemplateOutlet]=\"pointTemplate || defaultPointTemplate\"\n [ngTemplateOutletContext]=\"context | pure: mergePointContext\"\n ></ng-container>\n </div>\n </div>\n <div\n style=\"position: absolute; pointer-events: none; width: 100%; height: 100%\"\n ></div>\n</ng-template>\n\n<ng-template\n #defaultTitleTemplate\n let-context=\"context\"\n>\n {{\n titleTranslation\n ? (context?.title | translate)\n : (context?.title | pure: handleDateFormat : dateFormat)\n }}\n</ng-template>\n\n<ng-template\n #defaultPointTemplate\n let-context=\"context\"\n let-source=\"source\"\n>\n <ul\n class=\"context-list\"\n [class.column-layout]=\"columnLayout\"\n >\n <li\n class=\"context-item\"\n *ngFor=\"let item of context; trackBy: itemTrackBy\"\n [class.active]=\"item?.active\"\n >\n <div class=\"left\">\n <span\n class=\"item-icon\"\n [style.background]=\"item.color\"\n ></span>\n <span class=\"item-name\">\n <ng-container *ngIf=\"pointNameTemplate; else elseTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"pointNameTemplate\"\n [ngTemplateOutletContext]=\"{ context: item }\"\n ></ng-container>\n </ng-container>\n <ng-template #elseTemplate>\n {{ translation ? (item.name | translate) : item.name }}\n </ng-template>\n </span>\n </div>\n\n <div class=\"right\">\n <ng-container *ngIf=\"!columnLayout\">: </ng-container>\n <span\n class=\"item-prefix\"\n *ngIf=\"valuePrefix\"\n >{{ valuePrefix }}</span\n >\n <span class=\"item-value\">{{ item | pure: pointFormat }}</span>\n <span\n class=\"item-suffix\"\n *ngIf=\"valueSuffix\"\n >{{ valueSuffix | pure: tooltipSuffixFormat }}</span\n >\n </div>\n </li>\n </ul>\n</ng-template>\n", styles: ["::ng-deep .tooltipClass{pointer-events:none;max-width:800px!important}.tooltip-content{color:rgb(var(--aui-color-n-6))}.tooltip-content .title{margin-bottom:8px}.tooltip-content .context ul,.tooltip-content .context li{padding:0;margin:0;list-style:none}.tooltip-content .context ul:not(:last-child),.tooltip-content .context li:not(:last-child){margin-bottom:6px}.tooltip-content .context-list{display:flex;flex-direction:column}.tooltip-content .context-list .active{color:rgb(var(--aui-color-n-10))}.tooltip-content .context-item{display:flex}.tooltip-content .context .left{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tooltip-content .context .right{text-align:right;white-space:nowrap}.tooltip-content .context .column-layout .right{flex:1 1 auto;text-align:right}.tooltip-content .context .column-layout .left{margin-right:8px}.tooltip-content .context .item-icon{margin-right:4px;width:6px;border-radius:50%;height:6px;background-color:rgb(var(--aui-color-n-10));display:inline-block;font-size:6px}\n"] }]
|
|
484
483
|
}], () => [{ type: i1.ContextChartService }, { type: i0.ChangeDetectorRef }], { dateFormat: [{
|
|
485
484
|
type: Input
|
|
486
485
|
}], valuePrefix: [{
|
|
@@ -512,4 +511,4 @@ export class ChartTooltipComponent {
|
|
|
512
511
|
args: ['tooltip']
|
|
513
512
|
}] }); })();
|
|
514
513
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ChartTooltipComponent, { className: "ChartTooltipComponent", filePath: "chart/common/tooltip/tooltip.component.ts", lineNumber: 61 }); })();
|
|
515
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY2hhcnQvY29tbW9uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY2hhcnQvY29tbW9uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBR0wsV0FBVyxFQUVYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQXFCLE1BQU0sT0FBTyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFhLE1BQU0sMEJBQTBCLENBQUM7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixPQUFPLEVBQ1AsbUJBQW1CLEdBQ3BCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7SUNwQm5CLDRCQVdjOzs7Ozs7Ozs7SUFmaEIseUJBR0M7SUFDQywwRkFXQztJQUNILGlCQUFROzs7O0lBUmEsY0FBeUI7SUFBekIsNkZBQXlCOzs7SUFnQzFDLEFBREYsOEJBQTZCLGNBQ1I7SUFDakIsNEJBR2dCO0lBQ2xCLGlCQUFNO0lBQ04sK0JBQXFCO0lBQ25CLDRCQUdnQjs7SUFFcEIsQUFERSxpQkFBTSxFQUNGO0lBQ04sMEJBRU87Ozs7OztJQWJELGVBQTBEO0lBQzFELEFB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LFFBQVE7a0JBQWhCLEtBQUs7WUFFRyxXQUFXO2tCQUFuQixLQUFLO1lBRUcsZ0JBQWdCO2tCQUF4QixLQUFLO1lBRUcsV0FBVztrQkFBbkIsS0FBSztZQUVnQixhQUFhO2tCQUFsQyxTQUFTO21CQUFDLFNBQVM7O2tGQTNCVCxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVG9vbHRpcCB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFRyYWNrQnlGdW5jdGlvbixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjYWxlQmFuZCB9IGZyb20gJ2QzJztcbmltcG9ydCBkYXlqcywgeyBDb25maWdUeXBlIH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEQVRFX1RJTUVfRk9STUFULCBTdHJpbmdNYXAgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQ2hhcnREYXRhLCBDaGFydERhdGFJdGVtIH0gZnJvbSAnLi4vLi4vLi4vdmlldy1jaGFydC9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENvbnRleHRDaGFydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGZpbmRDbG9zZXN0UG9pbnRJbmRleCxcbiAgZ2V0WFBvcyxcbiAgdG9vbHRpcFN1ZmZpeEZvcm1hdCxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG50eXBlIFhWYWx1ZSA9IHN0cmluZyB8IG51bWJlciB8IERhdGU7XG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRJdGVtIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICB4OiBYVmFsdWU7XG4gIHk6IG51bWJlcjtcbiAgdW5pdD86IHN0cmluZztcbiAgYWN0aXZlPzogYm9vbGVhbjtcbn1cbmludGVyZmFjZSBDdXJyZW50UG9zaXRpb25JdGVtIHtcbiAgeDE6IG51bWJlcjtcbiAgeDI6IG51bWJlcjtcbiAgbmFtZT86IHN0cmluZztcbiAgZ3JvdXBOYW1lOiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBUb29sdGlwQ29udGV4dCB7XG4gIHRpdGxlOiBYVmFsdWU7XG4gIHNvdXJjZTogQ2hhcnREYXRhW107XG4gIHZhbHVlczogQ29udGV4dEl0ZW1bXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZURhdGVGb3JtYXQoZGF0ZTogQ29uZmlnVHlwZSwgZm9ybWF0ID0gREFURV9USU1FX0ZPUk1BVCkge1xuICByZXR1cm4gU3RyaW5nKGRheWpzKGRhdGUpLmlzVmFsaWQoKSA/IGRheWpzKGRhdGUpLmZvcm1hdChmb3JtYXQpIDogZGF0ZSk7XG59XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2dbYWNsVG9vbHRpcF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Rvb2x0aXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0VG9vbHRpcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZGF0ZUZvcm1hdCA9IERBVEVfVElNRV9GT1JNQVQ7XG5cbiAgQElucHV0KCkgdmFsdWVQcmVmaXg6IHN0cmluZztcblxuICBASW5wdXQoKSB2YWx1ZVN1ZmZpeDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGNvbHVtbkxheW91dCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgcG9pbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgcG9pbnROYW1lVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIHBvaW50VGVtcGxhdGVDb250ZXh0OiB1bmtub3duO1xuXG4gIEBJbnB1dCgpIHRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIGF1dG9Tb3J0ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdHJhbnNsYXRpb24gPSB0cnVlO1xuXG4gIEBJbnB1dCgpIHRpdGxlVHJhbnNsYXRpb246IGJvb2xlYW47XG5cbiAgQElucHV0KCkgcG9pbnRGb3JtYXQ6IChkOiBDb250ZXh0SXRlbSkgPT4gc3RyaW5nIHwgbnVtYmVyID0gZCA9PiBkLnk7XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcCcpIGF1aVRvb2x0aXBSZWY6IEJhc2VUb29sdGlwO1xuXG4gIHZpZXc6IHtcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xuICB9O1xuXG4gIGRlc3Ryb3kkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgYW5jaG9yUG9zID0gMDtcbiAgYW5jaG9yT3BhY2l0eSA9IDA7XG4gIGFuY2hvckhlaWdodCA9IDA7XG4gIGFuY2hvclkgPSAwO1xuICBsYXN0QW5jaG9yUG9zOiBudW1iZXI7XG4gIHRvb2x0aXBDb250ZXh0OiBUb29sdGlwQ29udGV4dDtcblxuICBoYWNrZWQgPSBmYWxzZTtcblxuICBoYW5kbGVEYXRlRm9ybWF0ID0gaGFuZGxlRGF0ZUZvcm1hdDtcblxuICB0b29sdGlwU3VmZml4Rm9ybWF0ID0gdG9vbHRpcFN1ZmZpeEZvcm1hdDtcblxuICBhY3RpdmVMZWdlbmQ6IHN0cmluZztcblxuICBnZXQgdHlwZVN0YW5kYXJkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLmJhck9wdGlvbnMudHlwZSA9PT0gJ3N0YW5kYXJkJztcbiAgfVxuXG4gIGdldCBpc0JhbmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UuYmFyT3B0aW9ucy5pc0JhbmQ7XG4gIH1cblxuICBnZXQgYW5jaG9yVmlzaWJpbGl0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5kaXNhYmxlZExlZ2VuZC5zaXplID09PVxuICAgICAgKHRoaXMudHlwZVN0YW5kYXJkXG4gICAgICAgID8gdGhpcy5jb250ZXh0U2VydmljZS5pbm5lckRvbWFpbi5sZW5ndGhcbiAgICAgICAgOiB0aGlzLmNvbnRleHRTZXJ2aWNlLmNoYXJ0RGF0YT8ubGVuZ3RoKVxuICAgICAgPyAnaGlkZGVuJ1xuICAgICAgOiAnJztcbiAgfVxuXG4gIGdldCBncm91cFBvc2l0aW9uKCkge1xuICAgIC8vIOiuoeeulyBncm91cCDlvIDlp4vnu5PmnZ/kvY3nva5cbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS54U2VyaWVzVmFsdWUubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgeCA9IDxTY2FsZUJhbmQ8c3RyaW5nPj50aGlzLmNvbnRleHRTZXJ2aWNlLng7XG4gICAgICBjb25zdCB4MSA9IHgoaXRlbSBhcyBzdHJpbmcpO1xuICAgICAgcmV0dXJuIHsgeDEsIHgyOiB4MSArIHguYmFuZHdpZHRoKCksIGluZGV4LCBncm91cE5hbWU6IGl0ZW0gYXMgc3RyaW5nIH07XG4gICAgfSk7XG4gIH1cblxuICBnZXQgY2FsY3VsYXRpb25JdGVtUG9zaXRpb24oKSB7XG4gICAgLy8g5qC55o2uIGdyb3VwIOiuoeeulyBpdGVtIOW8gOWni+e7k+adn+S9jee9rlxuICAgIHJldHVybiB0aGlzLmdyb3VwUG9zaXRpb24ucmVkdWNlKFxuICAgICAgKGFjYywgcG9zaXRpb24sIGluZGV4KSA9PiBbXG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgLi4udGhpcy5jb250ZXh0U2VydmljZS5pbm5lckRvbWFpbi5tYXAoKGlubmVyLCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgYmFySW5uZXJTY2FsZSA9IHRoaXMuY29udGV4dFNlcnZpY2UuYmFySW5uZXJTY2FsZSgpO1xuICAgICAgICAgIGNvbnN0IHgxID0gYmFySW5uZXJTY2FsZShpbm5lcik7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHgxOiB4MSArIHBvc2l0aW9uLngxLFxuICAgICAgICAgICAgeDI6IHgxICsgcG9zaXRpb24ueDEgKyBiYXJJbm5lclNjYWxlLmJhbmR3aWR0aCgpLFxuICAgICAgICAgICAgbmFtZTogaW5uZXIsXG4gICAgICAgICAgICBncm91cE5hbWU6IHRoaXMuY29udGV4dFNlcnZpY2UueFNlcmllc1ZhbHVlW2luZGV4XSxcbiAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICAgIFtdLFxuICAgICk7XG4gIH1cblxuICBjYWxjdWxhdGVZID0gKF86IG51bWJlcikgPT4gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29udGV4dFNlcnZpY2U6IENvbnRleHRDaGFydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0U2VydmljZS51cGRhdGUkJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmFuY2hvckhlaWdodCA9IHRoaXMuY29udGV4dFNlcnZpY2UuY2hhcnRWaWV3LmhlaWdodDtcbiAgICAgICAgdGhpcy52aWV3ID0gdGhpcy5jb250ZXh0U2VydmljZS5jaGFydFZpZXc7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuY29udGV4dFNlcnZpY2UubGVnZW5kQWN0aXZhdGUkJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUobGVnZW5kID0+IHtcbiAgICAgICAgdGhpcy5hY3RpdmVMZWdlbmQgPSBsZWdlbmQ7XG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBDb250ZXh0Py52YWx1ZXMpIHtcbiAgICAgICAgICB0aGlzLnRvb2x0aXBDb250ZXh0ID0ge1xuICAgICAgICAgICAgLi4udGhpcy50b29sdGlwQ29udGV4dCxcbiAgICAgICAgICAgIHZhbHVlczogdGhpcy50b29sdGlwQ29udGV4dC52YWx1ZXMubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgYWN0aXZlOiBpdGVtLm5hbWUgPT09IGxlZ2VuZCxcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbW91c2VNb3ZlKGU6IE1vdXNlRXZlbnQsIHJlY3REb20/OiBIVE1MRWxlbWVudCkge1xuICAgIGNvbnN0IHhQb3MgPSBnZXRYUG9zKGUsIHRoaXMuY29udGV4dFNlcnZpY2UsIHJlY3REb20pO1xuICAgIGNvbnN0IGNsb3Nlc3RJbmRleCA9IGZpbmRDbG9zZXN0UG9pbnRJbmRleCh4UG9zLCB0aGlzLmNvbnRleHRTZXJ2aWNlKTtcbiAgICBjb25zdCBjbG9zZXN0UG9pbnQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnhTZXJpZXNWYWx1ZVtjbG9zZXN0SW5kZXhdO1xuICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLmJhck9wdGlvbnMuaXNCYW5kKSB7XG4gICAgICB0aGlzLmJhck1vdXNlTW92ZShlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hbmNob3JQb3MgPSB4UG9zO1xuICAgIGlmICh0aGlzLmFuY2hvclBvcyAhPT0gdGhpcy5sYXN0QW5jaG9yUG9zICYmIGNsb3Nlc3RQb2ludCkge1xuICAgICAgdGhpcy50b29sdGlwQ29udGV4dCA9IHRoaXMuZ2V0VG9vbHRpcENvbnRleHQoY2xvc2VzdEluZGV4LCBjbG9zZXN0UG9pbnQpO1xuICAgICAgLy8g5YC85Li6IG51bGwg5LiN5bGV56S6IHRvb2x0aXBcbiAgICAgIGNvbnN0IG5vRGF0YSA9ICF0aGlzLnRvb2x0aXBDb250ZXh0Py52YWx1ZXM/LnNvbWUoZCA9PiBkLnkgIT09IG51bGwpO1xuICAgICAgaWYgKG5vRGF0YSkge1xuICAgICAgICB0aGlzLmFuY2hvck9wYWNpdHkgPSAwO1xuICAgICAgICB0aGlzLmxhc3RBbmNob3JQb3MgPSAtMTtcbiAgICAgICAgdGhpcy5oaWRlVG9vbHRpcCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sYXN0QW5jaG9yUG9zID0gdGhpcy5hbmNob3JQb3M7XG4gICAgICAgIHRoaXMuYW5jaG9yT3BhY2l0eSA9IDAuNztcbiAgICAgICAgdGhpcy5zaG93VG9vbHRpcCgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBtb3VzZUxlYXZlKCkge1xuICAgIHRoaXMuYW5jaG9yT3BhY2l0eSA9IDA7XG4gICAgdGhpcy5sYXN0QW5jaG9yUG9zID0gLTE7XG4gICAgdGhpcy5oaWRlVG9vbHRpcCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG1lcmdlUG9pbnRDb250ZXh0ID0gKGNvbnRleHQ6IFRvb2x0aXBDb250ZXh0KSA9PiAoe1xuICAgIGNvbnRleHQ6IHRoaXMubGltaXRNYXhDb250ZXh0KGNvbnRleHQudmFsdWVzKSxcbiAgICBzb3VyY2U6IGNvbnRleHQuc291cmNlLFxuICAgIC4uLih0aGlzLnBvaW50VGVtcGxhdGVDb250ZXh0IGFzIFN0cmluZ01hcCksXG4gIH0pO1xuXG4gIGl0ZW1UcmFja0J5OiBUcmFja0J5RnVuY3Rpb248Q29udGV4dEl0ZW0+ID0gKF86IG51bWJlciwgdmFsdWU6IENvbnRleHRJdGVtKSA9PlxuICAgIHZhbHVlLm5hbWU7XG5cbiAgLy8gYmFyIG1vdXNlTW92ZSDlpITnkIZcbiAgcHJpdmF0ZSBiYXJNb3VzZU1vdmUoZTogTW91c2VFdmVudCkge1xuICAgIGNvbnN0IHhQb3MgPSBnZXRYUG9zKGUsIHRoaXMuY29udGV4dFNlcnZpY2UpO1xuICAgIGNvbnN0IGN1cnJQb3NpdGlvbiA9IHRoaXMuZ2V0Q3VycmVudE1vdXNlTW92ZVBvc2l0aW9uVmFsdWUoXG4gICAgICB0aGlzLnR5cGVTdGFuZGFyZCA/IHRoaXMuY2FsY3VsYXRpb25JdGVtUG9zaXRpb24gOiB0aGlzLmdyb3VwUG9zaXRpb24sXG4gICAgICB4UG9zLFxuICAgICk7XG4gICAgaWYgKGN1cnJQb3NpdGlvbikge1xuICAgICAgdGhpcy5nZXRCYXJYQW5jaG9yUG9zKGN1cnJQb3NpdGlvbik7XG4gICAgICB0aGlzLmdldEJhckhpZ2h0KFxuICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnhTZXJpZXNWYWx1ZVtjdXJyUG9zaXRpb24uaW5kZXhdIGFzIHN0cmluZyxcbiAgICAgICAgY3VyclBvc2l0aW9uLFxuICAgICAgKTtcbiAgICAgIHRoaXMuZ2V0QmFyWUFuY2hvclBvcyhjdXJyUG9zaXRpb24pO1xuICAgICAgdGhpcy50b29sdGlwQ29udGV4dCA9IHRoaXMuZ2V0QmFyVG9vbHRpcENvbnRleHQoY3VyclBvc2l0aW9uKTtcbiAgICAgIHRoaXMuc2hvd1Rvb2x0aXAoKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEJhckhpZ2h0KGdyb3VwTmFtZTogc3RyaW5nLCB2YWx1ZT86IEN1cnJlbnRQb3NpdGlvbkl0ZW0pIHtcbiAgICB0aGlzLmFuY2hvckhlaWdodCA9IHRoaXMuY29udGV4dFNlcnZpY2UuaG9yaXpvbnRhbFxuICAgICAgPyB0aGlzLnR5cGVTdGFuZGFyZFxuICAgICAgICA/IHRoaXMuY29udGV4dFNlcnZpY2UuYmFySW5uZXJTY2FsZSgpLmJhbmR3aWR0aCgpXG4gICAgICAgIDogKDxTY2FsZUJhbmQ8c3RyaW5nPj50aGlzLmNvbnRleHRTZXJ2aWNlLngpLmJhbmR3aWR0aCgpXG4gICAgICA6IHRoaXMuZ2V0VmVydGljYWxCYXJIZWlnaHQoZ3JvdXBOYW1lLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICog6K6h566XIGJhciDlnoLnm7Qg57G75Z6L5LiLIOmrmOW6plxuICAgKiDmoIflh4bvvJpcYlxi55u05o6l5qC55o2uIHkoMCkgLSB5KHZhbHVlKSDorqHnrpcgYmFyIGl0ZW0g55qE6auY5bqmXG4gICAqIOWghuWPoO+8muiuoeeulyBncm91cCDkuIvmiYDmnIlpdGVtIOeahOmrmOW6puebuOWKoCDlvpfliLDloIblj6DnmoQgYmFyIOmrmOW6plxuICAgKi9cbiAgcHJpdmF0ZSBnZXRWZXJ0aWNhbEJhckhlaWdodChncm91cE5hbWU6IHN0cmluZywgdmFsdWU/OiBDdXJyZW50UG9zaXRpb25JdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZVN0YW5kYXJkXG4gICAgICA/IHRoaXMuY29udGV4dFNlcnZpY2UueSgwKSAtXG4gICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS55KHRoaXMuZ2V0QmFyWVZhbHVlKHZhbHVlLmdyb3VwTmFtZSwgdmFsdWUubmFtZSkpXG4gICAgICA6IHRoaXMuY29udGV4dFNlcnZpY2UuY2hhcnREYXRhLnJlZHVjZSgocHJldiwgY3VycikgPT4ge1xuICAgICAgICAgIGlmIChjdXJyLm5hbWUgPT09IGdyb3VwTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgY3Vyci52YWx1ZXMucmVkdWNlKChhY2MsIHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb250ZXh0U2VydmljZS5kaXNhYmxlZExlZ2VuZC5oYXModmFsLnggYXMgc3RyaW5nKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS55KDApIC1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS55KHZhbC55KSArXG4gICAgICAgICAgICAgICAgICAgIGFjY1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgfSwgMCkgKyBwcmV2XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgfSwgMCk7XG4gIH1cblxuICAvLyDojrflj5blvZPliY3pvKDmoIfnp7vlhaUgYmFyIHkg5YC8XG4gIHByaXZhdGUgZ2V0QmFyWVZhbHVlKGdyb3VwTmFtZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICBmb3IgKGNvbnN0IFssIGl0ZW1dIG9mIHRoaXMuY29udGV4dFNlcnZpY2UuY2hhcnREYXRhLmVudHJpZXMoKSkge1xuICAgICAgaWYgKGl0ZW0ubmFtZSA9PT0gZ3JvdXBOYW1lKSB7XG4gICAgICAgIGZvciAoY29uc3QgWywgdmFsXSBvZiBpdGVtLnZhbHVlcy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICBpZiAodmFsLnggPT09IG5hbWUpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHZhbC55O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gbGluZSBhcmVhIGNoYXJ0IOiOt+WPliB0b29sdGlwIOWxleekuuaVsOaNrlxuICBwcml2YXRlIGdldFRvb2x0aXBDb250ZXh0KGluZGV4OiBudW1iZXIsIHhWYWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSkge1xuICAgIGNvbnN0IHZhbHVlczogQ29udGV4dEl0ZW1bXSA9IHRoaXMuY29udGV4dFNlcnZpY2UuY2hhcnREYXRhLnJlZHVjZShcbiAgICAgIChhY2MsIGdyb3VwKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jb250ZXh0U2VydmljZS5kaXNhYmxlZExlZ2VuZC5oYXMoZ3JvdXAubmFtZSkpIHtcbiAgICAgICAgICBjb25zdCBpdGVtID0gZ3JvdXAudmFsdWVzW2luZGV4XTtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICBuYW1lOiBncm91cC5uYW1lLFxuICAgICAgICAgICAgICBjb2xvcjogZ3JvdXAuY29sb3IsXG4gICAgICAgICAgICAgIHVuaXQ6IGdyb3VwLnVuaXQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICBbXSxcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogeFZhbHVlLFxuICAgICAgc291cmNlOiB0aGlzLmNvbnRleHRTZXJ2aWNlLmNoYXJ0RGF0YSxcbiAgICAgIHZhbHVlczogdGhpcy5hdXRvU29ydCA/IHZhbHVlcy5zb3J0KChhLCBiKSA9PiBiLnkgLSBhLnkpIDogdmFsdWVzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICog6I635Y+WIGJhciB0b29sdGlwIOWxleekuuaVsOaNrlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRCYXJUb29sdGlwQ29udGV4dCh2YWx1ZTogQ3VycmVudFBvc2l0aW9uSXRlbSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuY29udGV4dFNlcnZpY2UuY2hhcnREYXRhLnJlZHVjZSgoYWNjLCBncm91cCkgPT4ge1xuICAgICAgaWYgKGdyb3VwLm5hbWUgPT09IHZhbHVlLmdyb3VwTmFtZSkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAuLi5ncm91cC52YWx1ZXMucmVkdWNlKFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICBwcmV2LFxuICAgICAgICAgICAgICBjdXJyOiBDaGFydERhdGFJdGVtPHsgeDogc3RyaW5nOyB5OiBudW1iZXI7IGNvbG9yPzogc3RyaW5nIH0+LFxuICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgIXRoaXMuY29udGV4dFNlcnZpY2UuZGlzYWJsZWRMZWdlbmQuaGFzKGN1cnIueCBhcyBzdHJpbmcpICYmXG4gICAgICAgICAgICAgICAgKHZhbHVlLm5hbWUgPyBjdXJyLnggPT09IHZhbHVlLm5hbWUgOiB0cnVlKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY3VycixcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogY3Vyci54LFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyLmNvbG9yIHx8XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5nZXRDaGFydERlZmF1bHRDb2xvcihpbmRleCksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW10sXG4gICAgICAgICAgKSxcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogdmFsdWUuZ3JvdXBOYW1lLFxuICAgICAgc291cmNlOiB0aGlzLmNvbnRleHRTZXJ2aWNlLmNoYXJ0RGF0YSxcbiAgICAgIHZhbHVlcyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIOaaguaXtuWFiCDpgJrov4cgaGFjayDmlrnlvI8g5L+u5pS5IHBvaW50ZXIgZXZlbnQg6KGM5Li6XG4gICAqIFRPRE86IOWQjue7reWGhemDqOWunueOsCB0b29sdGlwIOS4jeS9v+eUqCBhdWkgdG9vbHRpcFxuICAgKi9cbiAgaGFja092ZXJsYXlQYW5lU3R5bGUoc3R5bGU6IHN0cmluZykge1xuICAgIGNvbnN0IHRvb2x0aXBQYW5lRG9tID0gZ2V0KFxuICAgICAgdGhpcy5hdWlUb29sdGlwUmVmLm92ZXJsYXlSZWYsXG4gICAgICAnX3BhbmUnLFxuICAgICkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKHRvb2x0aXBQYW5lRG9tKSB7XG4gICAgICB0b29sdGlwUGFuZURvbS5zdHlsZS5wb2ludGVyRXZlbnRzID0gc3R5bGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPlum8oOagh+enu+WKqOeahOS9jee9ruaJgOWcqOeahCBiYXIgdmFsdWVcbiAgICogQHBhcmFtIGRhdGEg5b2T5YmNXGIgYmFyIOW8gOWni+e7k+adnyB4IOS9jee9rlxuICAgKiBAcGFyYW0geFBvcyDlvZPliY3pvKDmoIfkvY3nva5cbiAgICovXG4gIHByaXZhdGUgZ2V0Q3VycmVudE1vdXNlTW92ZVBvc2l0aW9uVmFsdWUoXG4gICAgZGF0YTogQ3VycmVudFBvc2l0aW9uSXRlbVtdLFxuICAgIHhQb3M6IG51bWJlcixcbiAgKSB7XG4gICAgbGV0IHJlc3VsdDogQ3VycmVudFBvc2l0aW9uSXRlbTtcbiAgICBmb3IgKGNvbnN0IFssIHBvc2l0aW9uXSBvZiBkYXRhLmVudHJpZXMoKSkge1xuICAgICAgaWYgKHhQb3MgPj0gcG9zaXRpb24ueDEgJiYgeFBvcyA8PSBwb3NpdGlvbi54Mikge1xuICAgICAgICByZXN1bHQgPSBwb3NpdGlvbjtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICog6K6h566X6ZSa54K5IHgg5L2N572uXG4gICAqIOW9k+WJjSBiYXIg5pWw5o2uIHgg5L2N572uICsg5b2T5YmNIGJhciDlrr3luqbnmoTkuIDoiKxcbiAgICogQHBhcmFtIGN1cnJQb3NpdGlvbiDlvZPliY3pvKDmoIfnp7vlhaXnmoRiYXIg5pWw5o2uXG4gICAqL1xuICBwcml2YXRlIGdldEJhclhBbmNob3JQb3MoY3VyclBvc2l0aW9uOiBDdXJyZW50UG9zaXRpb25JdGVtKSB7XG4gICAgY29uc3QgYmFuZHdpZHRoID0gdGhpcy50eXBlU3RhbmRhcmRcbiAgICAgID8gdGhpcy5jb250ZXh0U2VydmljZS5iYXJJbm5lclNjYWxlKCkuYmFuZHdpZHRoKCkgLyAyXG4gICAgICA6ICg8U2NhbGVCYW5kPHN0cmluZz4+dGhpcy5jb250ZXh0U2VydmljZS54KS5iYW5kd2lkdGgoKSAvIDI7XG4gICAgdGhpcy5hbmNob3JQb3MgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmhvcml6b250YWxcbiAgICAgID8gTWF0aC5hYnMoXG4gICAgICAgICAgdGhpcy5nZXRWZXJ0aWNhbEJhckhlaWdodChcbiAgICAgICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UueFNlcmllc1ZhbHVlW2N1cnJQb3NpdGlvbi5pbmRleF0gYXMgc3RyaW5nLFxuICAgICAgICAgICAgY3VyclBvc2l0aW9uLFxuICAgICAgICAgICkgLyAyLFxuICAgICAgICApXG4gICAgICA6IGN1cnJQb3NpdGlvbi54MSArIGJhbmR3aWR0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiDorqHnrpfplJrngrkgeSDkvY3nva5cbiAgICog5rC05bmz77ya5b2T5YmNIGJhciDmlbDmja4geCDkvY3nva5cbiAgICog5Z6C55u077ya5oC76auY5bqmIC0gYmFyIOmrmOW6piDvvIjpnIDopoHlhYjorqHnrpflh7ogYmFy6auY5bqm77yJXG4gICAqL1xuICBwcml2YXRlIGdldEJhcllBbmNob3JQb3MoY3VyclBvc2l0aW9uOiBDdXJyZW50UG9zaXRpb25JdGVtKSB7XG4gICAgdGhpcy5hbmNob3JZID0gdGhpcy5jb250ZXh0U2VydmljZS5ob3Jpem9udGFsXG4gICAgICA/IGN1cnJQb3NpdGlvbi54MVxuICAgICAgOiB0aGlzLnZpZXcuaGVpZ2h0IC0gdGhpcy5hbmNob3JIZWlnaHQ7XG4gIH1cblxuICBwcml2YXRlIHNob3dUb29sdGlwKCkge1xuICAgIGlmICghdGhpcy5hdWlUb29sdGlwUmVmPy5pc0NyZWF0ZWQpIHtcbiAgICAgIHRoaXMuYXVpVG9vbHRpcFJlZj8uc2hvdygpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaGFja2VkKSB7XG4gICAgICB0aGlzLmhhY2tPdmVybGF5UGFuZVN0eWxlKCdub25lJyk7XG4gICAgfVxuICAgIHRoaXMuaGFja2VkID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZVRvb2x0aXAoKSB7XG4gICAgdGhpcy5oYWNrZWQgPSBmYWxzZTtcbiAgICB0aGlzLmhhY2tPdmVybGF5UGFuZVN0eWxlKCdhdXRvJyk7XG4gICAgdGhpcy5hdWlUb29sdGlwUmVmPy5oaWRlKCk7XG4gIH1cblxuICBwcml2YXRlIGxpbWl0TWF4Q29udGV4dChjb250ZXh0OiBDb250ZXh0SXRlbVtdLCBsaW1pdCA9IDE1KSB7XG4gICAgY29uc3QgdmFsdWVzID0gY29udGV4dC5zbGljZSgwLCBsaW1pdCk7XG4gICAgY29uc3QgZXhpc3RBY3RpdmUgPSB2YWx1ZXMuc29tZShpdGVtID0+IGl0ZW0ubmFtZSA9PT0gdGhpcy5hY3RpdmVMZWdlbmQpO1xuICAgIGlmICghZXhpc3RBY3RpdmUgJiYgdGhpcy5hY3RpdmVMZWdlbmQpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBjb250ZXh0LmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT09IHRoaXMuYWN0aXZlTGVnZW5kKTtcbiAgICAgIHRoaXMuYWN0aXZlTGVnZW5kID0gJyc7XG4gICAgICByZXR1cm4gZGF0YSA/IFsuLi52YWx1ZXMuc2xpY2UoMCwgbGltaXQgLSAxKSwgZGF0YV0gOiB2YWx1ZXM7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZXM7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPHN2ZzpnXG4gIFthdHRyLm9wYWNpdHldPVwiYW5jaG9yT3BhY2l0eVwiXG4gICpuZ0lmPVwiIWlzQmFuZFwiXG4+XG4gIDxzdmc6Y2lyY2xlXG4gICAgW2F0dHIudmlzaWJpbGl0eV09XCJcbiAgICAgIGNvbnRleHRTZXJ2aWNlLmRpc2FibGVkTGVnZW5kLmhhcyhpdGVtLm5hbWUpID8gJ2hpZGRlbicgOiAnJ1xuICAgIFwiXG4gICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdG9vbHRpcENvbnRleHQ/LnZhbHVlc1wiXG4gICAgcj1cIjIuNVwiXG4gICAgW2F0dHIuc3Ryb2tlXT1cIml0ZW0uY29sb3JcIlxuICAgIHN0cm9rZS13aWR0aD1cIjFcIlxuICAgIGZpbGw9XCIjZmZmXCJcbiAgICBbYXR0ci5jeF09XCJhbmNob3JQb3NcIlxuICAgIFthdHRyLmN5XT1cIml0ZW0ueSA/IChpdGVtLnkgfCBwdXJlOiBjb250ZXh0U2VydmljZS55KSB8fCAwIDogMTAwMFwiXG4gID48L3N2ZzpjaXJjbGU+XG48L3N2ZzpnPlxuXG48c3ZnOnJlY3RcbiAgc3Ryb2tlPVwiIzk5OVwiXG4gIFthdHRyLnhdPVwiYW5jaG9yUG9zXCJcbiAgW2F0dHIudmlzaWJpbGl0eV09XCJhbmNob3JWaXNpYmlsaXR5XCJcbiAgW2F0dHIueV09XCJhbmNob3JZXCJcbiAgW2F0dHIud2lkdGhdPVwiMC41XCJcbiAgW2F0dHIuaGVpZ2h0XT1cImFuY2hvckhlaWdodFwiXG4gICN0b29sdGlwPVwiYXVpVG9vbHRpcFwiXG4gIFthdHRyLm9wYWNpdHldPVwiYW5jaG9yT3BhY2l0eVwiXG4gIFthdWlUb29sdGlwXT1cInRvb2x0aXBUZW1wbGF0ZSB8fCBkZWZhdWx0VG9vbHRpcFRlbXBsYXRlXCJcbiAgW2F1aVRvb2x0aXBDb250ZXh0XT1cInsgY29udGV4dDogdG9vbHRpcENvbnRleHQgfVwiXG4gIFthdWlUb29sdGlwRGlzYWJsZWRdPVwiYW5jaG9yVmlzaWJpbGl0eVwiXG4gIGF1aVRvb2x0aXBUcmlnZ2VyPVwibWFudWFsXCJcbiAgW2F1aVRvb2x0aXBQb3NpdGlvbl09XCJ0eXBlU3RhbmRhcmQgJiYgaXNCYW5kID8gJ3RvcCcgOiAnc3RhcnQnXCJcbiAgYXVpVG9vbHRpcENsYXNzPVwidG9vbHRpcENsYXNzXCJcbi8+XG5cbjxuZy10ZW1wbGF0ZVxuICAjZGVmYXVsdFRvb2x0aXBUZW1wbGF0ZVxuICBsZXQtY29udGV4dD1cImNvbnRleHRcIlxuPlxuICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlVGVtcGxhdGUgfHwgZGVmYXVsdFRpdGxlVGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBjb250ZXh0OiBjb250ZXh0IH1cIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZXh0XCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvaW50VGVtcGxhdGUgfHwgZGVmYXVsdFBvaW50VGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiY29udGV4dCB8IHB1cmU6IG1lcmdlUG9pbnRDb250ZXh0XCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCVcIlxuICA+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI2RlZmF1bHRUaXRsZVRlbXBsYXRlXG4gIGxldC1jb250ZXh0PVwiY29udGV4dFwiXG4+XG4gIHt7XG4gICAgdGl0bGVUcmFuc2xhdGlvblxuICAgICAgPyAoY29udGV4dD8udGl0bGUgfCB0cmFuc2xhdGU6IG51bGw6dHJ1ZSlcbiAgICAgIDogKGNvbnRleHQ/LnRpdGxlIHwgcHVyZTogaGFuZGxlRGF0ZUZvcm1hdDpkYXRlRm9ybWF0KVxuICB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNkZWZhdWx0UG9pbnRUZW1wbGF0ZVxuICBsZXQtY29udGV4dD1cImNvbnRleHRcIlxuICBsZXQtc291cmNlPVwic291cmNlXCJcbj5cbiAgPHVsXG4gICAgY2xhc3M9XCJjb250ZXh0LWxpc3RcIlxuICAgIFtjbGFzcy5jb2x1bW4tbGF5b3V0XT1cImNvbHVtbkxheW91dFwiXG4gID5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwiY29udGV4dC1pdGVtXCJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRleHQ7IHRyYWNrQnk6IGl0ZW1UcmFja0J5XCJcbiAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaXRlbT8uYWN0aXZlXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiaXRlbS1pY29uXCJcbiAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJpdGVtLmNvbG9yXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLW5hbWVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicG9pbnROYW1lVGVtcGxhdGU7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvaW50TmFtZVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgY29udGV4dDogaXRlbSB9XCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cbiAgICAgICAgICAgIHt7IHRyYW5zbGF0aW9uID8gKGl0ZW0ubmFtZSB8IHRyYW5zbGF0ZToge306dHJ1ZSkgOiBpdGVtLm5hbWUgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sdW1uTGF5b3V0XCI+OiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cIml0ZW0tcHJlZml4XCJcbiAgICAgICAgICAqbmdJZj1cInZhbHVlUHJlZml4XCJcbiAgICAgICAgICA+e3sgdmFsdWVQcmVmaXggfX08L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tdmFsdWVcIj57eyBpdGVtIHwgcHVyZTogcG9pbnRGb3JtYXQgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJpdGVtLXN1ZmZpeFwiXG4gICAgICAgICAgKm5nSWY9XCJ2YWx1ZVN1ZmZpeFwiXG4gICAgICAgICAgPnt7IHZhbHVlU3VmZml4IHwgcHVyZTogdG9vbHRpcFN1ZmZpeEZvcm1hdCB9fTwvc3BhblxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
514
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY2hhcnQvY29tbW9uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY2hhcnQvY29tbW9uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBR0wsV0FBVyxFQUVYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQXFCLE1BQU0sT0FBTyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFhLE1BQU0sMEJBQTBCLENBQUM7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixPQUFPLEVBQ1AsbUJBQW1CLEdBQ3BCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7OztJQ3BCbkIsNEJBV2M7Ozs7Ozs7OztJQWZoQix5QkFHQztJQUNDLDBGQVdDO0lBQ0gsaUJBQVE7Ozs7SUFSYSxjQUF5QjtJQUF6Qiw2RkFBeUI7OztJQWdDMUMsQUFERiw4QkFBNkIsY0FDUjtJQUNqQiw0QkFHZ0I7SUFDbEIsaUJBQU07SUFDTiwrQkFBcUI7SUFDbkIsNEJBR2dCOztJQUVwQixBQURFLGlCQUFNLEVBQ0Y7SUFDTiwwQkFFTzs7Ozs7O0lBYkQsZUFBMEQ7SUFDMUQsQUFEQSxrRkFBMEQsbUVBQ1Y7SUFLaEQsZUFBMEQ7SUFDMUQsQUFEQSxrRkFBMEQsdUZBQ0c7OztJQWFuRSxZQUtGOzs7Ozs7SUFMRSwrT0FLRjs7O0lBc0JVLDZCQUEyRDtJQUN6RCw0QkFHZ0I7Ozs7O0lBRmQsY0FBc0M7SUFDdEMsQUFEQSwyREFBc0MsZ0VBQ087OztJQUkvQyxZQUNGOzs7OztJQURFLHVHQUNGOzs7SUFLRiw2QkFBb0M7SUFBQSxrQkFBRTs7OztJQUN0QyxnQ0FHRztJQUFBLFlBQWlCO0lBQUEsaUJBQ25COzs7SUFERSxjQUFpQjtJQUFqQix3Q0FBaUI7OztJQUdwQixnQ0FHRztJQUFBLFlBQTZDOztJQUFBLGlCQUMvQzs7O0lBREUsY0FBNkM7SUFBN0MsMEZBQTZDOzs7SUE3QmxELEFBTEYsOEJBSUMsY0FDbUI7SUFDaEIsMkJBR1E7SUFDUixnQ0FBd0I7SUFPdEIsQUFOQSw0R0FBMkQsNkhBTWhDO0lBSS9CLEFBREUsaUJBQU8sRUFDSDtJQUVOLCtCQUFtQjtJQUVqQixBQURBLDJHQUFvQywrRUFJakM7SUFFSCxpQ0FBeUI7SUFBQSxhQUE4Qjs7SUFBQSxpQkFBTztJQUM5RCw4RkFHRztJQUdQLEFBREUsaUJBQU0sRUFDSDs7Ozs7SUFsQ0gsaUVBQTZCO0lBS3pCLGVBQStCO0lBQS9CLDJDQUErQjtJQUdoQixlQUF5QjtJQUFBLEFBQXpCLCtDQUF5Qiw2QkFBaUI7SUFhNUMsZUFBbUI7SUFBbkIsMkNBQW1CO0lBRy9CLGNBQWlCO0lBQWpCLHlDQUFpQjtJQUdLLGVBQThCO0lBQTlCLHlFQUE4QjtJQUdwRCxlQUFpQjtJQUFqQix5Q0FBaUI7OztJQXJDMUIsOEJBR0M7SUFDQyxxRkFJQztJQWtDSCxpQkFBSzs7OztJQXhDSCxvREFBb0M7SUFJakIsY0FBWTtJQUFBLEFBQVosb0NBQVksb0NBQW9COztBRC9CdkQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQWdCLEVBQUUsTUFBTSxHQUFHLGdCQUFnQjtJQUMxRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFTRCxNQUFNLE9BQU8scUJBQXFCO0lBbURoQyxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUk7WUFDNUMsQ0FBQyxJQUFJLENBQUMsWUFBWTtnQkFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU07Z0JBQ3hDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7WUFDMUMsQ0FBQyxDQUFDLFFBQVE7WUFDVixDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1QsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMxRCxNQUFNLENBQUMsR0FBc0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQWMsQ0FBQyxDQUFDO1lBQzdCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFjLEVBQUUsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLHVCQUF1QjtRQUN6QiwwQkFBMEI7UUFDMUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FDOUIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsR0FBRyxHQUFHO1lBQ04sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzFELE1BQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEMsT0FBTztvQkFDTCxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxFQUFFO29CQUNwQixFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxFQUFFLEdBQUcsYUFBYSxDQUFDLFNBQVMsRUFBRTtvQkFDaEQsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztvQkFDbEQsS0FBSyxFQUFFLENBQUM7aUJBQ1QsQ0FBQztZQUNKLENBQUMsQ0FBQztTQUNILEVBQ0QsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDO0lBSUQsWUFDa0IsY0FBbUMsRUFDbEMsR0FBc0I7UUFEdkIsbUJBQWMsR0FBZCxjQUFjLENBQXFCO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBckdoQyxlQUFVLEdBQUcsZ0JBQWdCLENBQUM7UUFNOUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFZckIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUluQixnQkFBVyxHQUF3QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFTckUsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFaEMsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFJWixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFFcEMsd0JBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFtRDFDLGVBQVUsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBaUU5QixzQkFBaUIsR0FBRyxDQUFDLE9BQXVCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEQsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUM3QyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsR0FBSSxJQUFJLENBQUMsb0JBQWtDO1NBQzVDLENBQUMsQ0FBQztRQUVILGdCQUFXLEdBQWlDLENBQUMsQ0FBUyxFQUFFLEtBQWtCLEVBQUUsRUFBRSxDQUM1RSxLQUFLLENBQUMsSUFBSSxDQUFDO0lBbkVWLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRO2FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN6RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQjthQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHO29CQUNwQixHQUFHLElBQUksQ0FBQyxjQUFjO29CQUN0QixNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDOUMsR0FBRyxJQUFJO3dCQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU07cUJBQzdCLENBQUMsQ0FBQztpQkFDSixDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUyxDQUFDLENBQWEsRUFBRSxPQUFxQjtRQUM1QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEQsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLGFBQWEsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDekUsc0JBQXNCO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztZQUNyRSxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFXRCxtQkFBbUI7SUFDWCxZQUFZLENBQUMsQ0FBYTtRQUNoQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0NBQWdDLENBQ3hELElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFDckUsSUFBSSxDQUNMLENBQUM7UUFDRixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQVcsRUFDOUQsWUFBWSxDQUNiLENBQUM7WUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsU0FBaUIsRUFBRSxLQUEyQjtRQUNoRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVTtZQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVk7Z0JBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsRUFBRTtnQkFDakQsQ0FBQyxDQUFxQixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUUsQ0FBQyxTQUFTLEVBQUU7WUFDMUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxvQkFBb0IsQ0FBQyxTQUFpQixFQUFFLEtBQTJCO1FBQ3pFLE9BQU8sSUFBSSxDQUFDLFlBQVk7WUFDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6RSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNsRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQzVCLE9BQU8sQ0FDTCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTt3QkFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBVyxDQUFDLEVBQUUsQ0FBQzs0QkFDN0QsT0FBTyxDQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQ0FDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQ0FDNUIsR0FBRyxDQUNKLENBQUM7d0JBQ0osQ0FBQzt3QkFDRCxPQUFPLEdBQUcsQ0FBQztvQkFDYixDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUNiLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCxtQkFBbUI7SUFDWCxZQUFZLENBQUMsU0FBaUIsRUFBRSxJQUFZO1FBQ2xELElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLEtBQUssTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUMvRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzVCLEtBQUssTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO29CQUM1QyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7d0JBQ25CLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztnQkFDSCxDQUFDO2dCQUNELE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQ0FBa0M7SUFDMUIsaUJBQWlCLENBQUMsS0FBYSxFQUFFLE1BQThCO1FBQ3JFLE1BQU0sTUFBTSxHQUFrQixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQ2hFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakMsT0FBTztvQkFDTCxHQUFHLEdBQUc7b0JBQ047d0JBQ0UsR0FBRyxJQUFJO3dCQUNQLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTt3QkFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO3dCQUNsQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7cUJBQ2pCO2lCQUNGLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQ0QsRUFBRSxDQUNILENBQUM7UUFDRixPQUFPO1lBQ0wsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTO1lBQ3JDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07U0FDbEUsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLG9CQUFvQixDQUFDLEtBQTBCO1FBQ3JELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQyxPQUFPO29CQUNMLEdBQUcsR0FBRztvQkFDTixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNwQixDQUNFLElBQUksRUFDSixJQUE2RCxFQUM3RCxLQUFLLEVBQ0wsRUFBRTt3QkFDRixJQUNFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFXLENBQUM7NEJBQ3pELENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDM0MsQ0FBQzs0QkFDRCxPQUFPO2dDQUNMLEdBQUcsSUFBSTtnQ0FDUDtvQ0FDRSxHQUFHLElBQUk7b0NBQ1AsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO29DQUNaLEtBQUssRUFDSCxJQUFJLENBQUMsS0FBSzt3Q0FDVixJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQztpQ0FDbEQ7NkJBQ0YsQ0FBQzt3QkFDSixDQUFDO3dCQUNELE9BQU8sSUFBSSxDQUFDO29CQUNkLENBQUMsRUFDRCxFQUFFLENBQ0g7aUJBQ0YsQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNQLE9BQU87WUFDTCxLQUFLLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUztZQUNyQyxNQUFNO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0IsQ0FBQyxLQUFhO1FBQ2hDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQzdCLE9BQU8sQ0FDTyxDQUFDO1FBQ2pCLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsY0FBYyxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdDQUFnQyxDQUN0QyxJQUEyQixFQUMzQixJQUFZO1FBRVosSUFBSSxNQUEyQixDQUFDO1FBQ2hDLEtBQUssTUFBTSxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDMUMsSUFBSSxJQUFJLElBQUksUUFBUSxDQUFDLEVBQUUsSUFBSSxJQUFJLElBQUksUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUMvQyxNQUFNLEdBQUcsUUFBUSxDQUFDO2dCQUNsQixNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdCQUFnQixDQUFDLFlBQWlDO1FBQ3hELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZO1lBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7WUFDckQsQ0FBQyxDQUFxQixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVU7WUFDN0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ04sSUFBSSxDQUFDLG9CQUFvQixDQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFXLEVBQzlELFlBQVksQ0FDYixHQUFHLENBQUMsQ0FDTjtZQUNILENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdCQUFnQixDQUFDLFlBQWlDO1FBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVO1lBQzNDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNqQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQyxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUFzQixFQUFFLEtBQUssR0FBRyxFQUFFO1FBQ3hELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMvRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztzRkF6WlUscUJBQXFCO29FQUFyQixxQkFBcUI7Ozs7OztZQzVEbEMsdUVBR0M7O1lBZUQsNkJBZUU7WUFvQ0YsQUFYQSxBQXZCQSx1SEFHQywwR0F1QkEsMEdBWUE7OztZQXZFRSxrQ0FBYTtZQXlCZCxjQUF3RDtZQUl4RCxBQUZBLEFBREEsQUFEQSw4RUFBd0Qsc0VBQ1AsNENBQ1Ysd0VBRXdCOzs7O2lGRDZCcEQscUJBQXFCO2NBUGpDLFNBQVM7MkJBRUUsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNO29GQUd0QyxVQUFVO2tCQUFsQixLQUFLO1lBRUcsV0FBVztrQkFBbkIsS0FBSztZQUVHLFdBQVc7a0JBQW5CLEtBQUs7WUFFRyxZQUFZO2tCQUFwQixLQUFLO1lBRUcsZUFBZTtrQkFBdkIsS0FBSztZQUVHLGFBQWE7a0JBQXJCLEtBQUs7WUFFRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFFRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFFRyxhQUFhO2tCQUFyQixLQUFLO1lBRUcsUUFBUTtrQkFBaEIsS0FBSztZQUVHLFdBQVc7a0JBQW5CLEtBQUs7WUFFRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFFRyxXQUFXO2tCQUFuQixLQUFLO1lBRWdCLGFBQWE7a0JBQWxDLFNBQVM7bUJBQUMsU0FBUzs7a0ZBM0JULHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUb29sdGlwIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2NhbGVCYW5kIH0gZnJvbSAnZDMnO1xuaW1wb3J0IGRheWpzLCB7IENvbmZpZ1R5cGUgfSBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVQsIFN0cmluZ01hcCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDaGFydERhdGEsIENoYXJ0RGF0YUl0ZW0gfSBmcm9tICcuLi8uLi8uLi92aWV3LWNoYXJ0L3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQ29udGV4dENoYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2NoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgZmluZENsb3Nlc3RQb2ludEluZGV4LFxuICBnZXRYUG9zLFxuICB0b29sdGlwU3VmZml4Rm9ybWF0LFxufSBmcm9tICcuLi8uLi91dGlscyc7XG5cbnR5cGUgWFZhbHVlID0gc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZTtcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dEl0ZW0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIHg6IFhWYWx1ZTtcbiAgeTogbnVtYmVyO1xuICB1bml0Pzogc3RyaW5nO1xuICBhY3RpdmU/OiBib29sZWFuO1xufVxuaW50ZXJmYWNlIEN1cnJlbnRQb3NpdGlvbkl0ZW0ge1xuICB4MTogbnVtYmVyO1xuICB4MjogbnVtYmVyO1xuICBuYW1lPzogc3RyaW5nO1xuICBncm91cE5hbWU6IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFRvb2x0aXBDb250ZXh0IHtcbiAgdGl0bGU6IFhWYWx1ZTtcbiAgc291cmNlOiBDaGFydERhdGFbXTtcbiAgdmFsdWVzOiBDb250ZXh0SXRlbVtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlRGF0ZUZvcm1hdChkYXRlOiBDb25maWdUeXBlLCBmb3JtYXQgPSBEQVRFX1RJTUVfRk9STUFUKSB7XG4gIHJldHVybiBTdHJpbmcoZGF5anMoZGF0ZSkuaXNWYWxpZCgpID8gZGF5anMoZGF0ZSkuZm9ybWF0KGZvcm1hdCkgOiBkYXRlKTtcbn1cblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZ1thY2xUb29sdGlwXScsXG4gIHRlbXBsYXRlVXJsOiAnLi90b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9vbHRpcC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRUb29sdGlwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBkYXRlRm9ybWF0ID0gREFURV9USU1FX0ZPUk1BVDtcblxuICBASW5wdXQoKSB2YWx1ZVByZWZpeDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHZhbHVlU3VmZml4OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgY29sdW1uTGF5b3V0ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdG9vbHRpcFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBwb2ludFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBwb2ludE5hbWVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgcG9pbnRUZW1wbGF0ZUNvbnRleHQ6IHVua25vd247XG5cbiAgQElucHV0KCkgdGl0bGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgYXV0b1NvcnQgPSBmYWxzZTtcblxuICBASW5wdXQoKSB0cmFuc2xhdGlvbiA9IHRydWU7XG5cbiAgQElucHV0KCkgdGl0bGVUcmFuc2xhdGlvbjogYm9vbGVhbjtcblxuICBASW5wdXQoKSBwb2ludEZvcm1hdDogKGQ6IENvbnRleHRJdGVtKSA9PiBzdHJpbmcgfCBudW1iZXIgPSBkID0+IGQueTtcblxuICBAVmlld0NoaWxkKCd0b29sdGlwJykgYXVpVG9vbHRpcFJlZjogQmFzZVRvb2x0aXA7XG5cbiAgdmlldzoge1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG4gIH07XG5cbiAgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBhbmNob3JQb3MgPSAwO1xuICBhbmNob3JPcGFjaXR5ID0gMDtcbiAgYW5jaG9ySGVpZ2h0ID0gMDtcbiAgYW5jaG9yWSA9IDA7XG4gIGxhc3RBbmNob3JQb3M6IG51bWJlcjtcbiAgdG9vbHRpcENvbnRleHQ6IFRvb2x0aXBDb250ZXh0O1xuXG4gIGhhY2tlZCA9IGZhbHNlO1xuXG4gIGhhbmRsZURhdGVGb3JtYXQgPSBoYW5kbGVEYXRlRm9ybWF0O1xuXG4gIHRvb2x0aXBTdWZmaXhGb3JtYXQgPSB0b29sdGlwU3VmZml4Rm9ybWF0O1xuXG4gIGFjdGl2ZUxlZ2VuZDogc3RyaW5nO1xuXG4gIGdldCB0eXBlU3RhbmRhcmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UuYmFyT3B0aW9ucy50eXBlID09PSAnc3RhbmRhcmQnO1xuICB9XG5cbiAgZ2V0IGlzQmFuZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5iYXJPcHRpb25zLmlzQmFuZDtcbiAgfVxuXG4gIGdldCBhbmNob3JWaXNpYmlsaXR5KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLmRpc2FibGVkTGVnZW5kLnNpemUgPT09XG4gICAgICAodGhpcy50eXBlU3RhbmRhcmRcbiAgICAgICAgPyB0aGlzLmNvbnRleHRTZXJ2aWNlLmlubmVyRG9tYWluLmxlbmd0aFxuICAgICAgICA6IHRoaXMuY29udGV4dFNlcnZpY2UuY2hhcnREYXRhPy5sZW5ndGgpXG4gICAgICA/ICdoaWRkZW4nXG4gICAgICA6ICcnO1xuICB9XG5cbiAgZ2V0IGdyb3VwUG9zaXRpb24oKSB7XG4gICAgLy8g6K6h566XIGdyb3VwIOW8gOWni+e7k+adn+S9jee9rlxuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnhTZXJpZXNWYWx1ZS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCB4ID0gPFNjYWxlQmFuZDxzdHJpbmc+PnRoaXMuY29udGV4dFNlcnZpY2UueDtcbiAgICAgIGNvbnN0IHgxID0geChpdGVtIGFzIHN0cmluZyk7XG4gICAgICByZXR1cm4geyB4MSwgeDI6IHgxICsgeC5iYW5kd2lkdGgoKSwgaW5kZXgsIGdyb3VwTmFtZTogaXRlbSBhcyBzdHJpbmcgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBjYWxjdWxhdGlvbkl0ZW1Qb3NpdGlvbigpIHtcbiAgICAvLyDmoLnmja4gZ3JvdXAg6K6h566XIGl0ZW0g5byA5aeL57uT5p2f5L2N572uXG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBQb3NpdGlvbi5yZWR1Y2UoXG4gICAgICAoYWNjLCBwb3NpdGlvbiwgaW5kZXgpID0+IFtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICAuLi50aGlzLmNvbnRleHRTZXJ2aWNlLmlubmVyRG9tYWluLm1hcCgoaW5uZXIsIGkpID0+IHtcbiAgICAgICAgICBjb25zdCBiYXJJbm5lclNjYWxlID0gdGhpcy5jb250ZXh0U2VydmljZS5iYXJJbm5lclNjYWxlKCk7XG4gICAgICAgICAgY29uc3QgeDEgPSBiYXJJbm5lclNjYWxlKGlubmVyKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDE6IHgxICsgcG9zaXRpb24ueDEsXG4gICAgICAgICAgICB4MjogeDEgKyBwb3NpdGlvbi54MSArIGJhcklubmVyU2NhbGUuYmFuZHdpZHRoKCksXG4gICAgICAgICAgICBuYW1lOiBpbm5lcixcbiAgICAgICAgICAgIGdyb3VwTmFtZTogdGhpcy5jb250ZXh0U2VydmljZS54U2VyaWVzVmFsdWVbaW5kZXhdLFxuICAgICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgW10sXG4gICAgKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZVkgPSAoXzogbnVtYmVyKSA9PiAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBjb250ZXh0U2VydmljZTogQ29udGV4dENoYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnVwZGF0ZSQkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYW5jaG9ySGVpZ2h0ID0gdGhpcy5jb250ZXh0U2VydmljZS5jaGFydFZpZXcuaGVpZ2h0O1xuICAgICAgICB0aGlzLnZpZXcgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmNoYXJ0VmlldztcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gICAgdGhpcy5jb250ZXh0U2VydmljZS5sZWdlbmRBY3RpdmF0ZSQkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKVxuICAgICAgLnN1YnNjcmliZShsZWdlbmQgPT4ge1xuICAgICAgICB0aGlzLmFjdGl2ZUxlZ2VuZCA9IGxlZ2VuZDtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcENvbnRleHQ/LnZhbHVlcykge1xuICAgICAgICAgIHRoaXMudG9vbHRpcENvbnRleHQgPSB7XG4gICAgICAgICAgICAuLi50aGlzLnRvb2x0aXBDb250ZXh0LFxuICAgICAgICAgICAgdmFsdWVzOiB0aGlzLnRvb2x0aXBDb250ZXh0LnZhbHVlcy5tYXAoaXRlbSA9PiAoe1xuICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICBhY3RpdmU6IGl0ZW0ubmFtZSA9PT0gbGVnZW5kLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBtb3VzZU1vdmUoZTogTW91c2VFdmVudCwgcmVjdERvbT86IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgeFBvcyA9IGdldFhQb3MoZSwgdGhpcy5jb250ZXh0U2VydmljZSwgcmVjdERvbSk7XG4gICAgY29uc3QgY2xvc2VzdEluZGV4ID0gZmluZENsb3Nlc3RQb2ludEluZGV4KHhQb3MsIHRoaXMuY29udGV4dFNlcnZpY2UpO1xuICAgIGNvbnN0IGNsb3Nlc3RQb2ludCA9IHRoaXMuY29udGV4dFNlcnZpY2UueFNlcmllc1ZhbHVlW2Nsb3Nlc3RJbmRleF07XG4gICAgaWYgKHRoaXMuY29udGV4dFNlcnZpY2UuYmFyT3B0aW9ucy5pc0JhbmQpIHtcbiAgICAgIHRoaXMuYmFyTW91c2VNb3ZlKGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFuY2hvclBvcyA9IHhQb3M7XG4gICAgaWYgKHRoaXMuYW5jaG9yUG9zICE9PSB0aGlzLmxhc3RBbmNob3JQb3MgJiYgY2xvc2VzdFBvaW50KSB7XG4gICAgICB0aGlzLnRvb2x0aXBDb250ZXh0ID0gdGhpcy5nZXRUb29sdGlwQ29udGV4dChjbG9zZXN0SW5kZXgsIGNsb3Nlc3RQb2ludCk7XG4gICAgICAvLyDlgLzkuLogbnVsbCDkuI3lsZXnpLogdG9vbHRpcFxuICAgICAgY29uc3Qgbm9EYXRhID0gIXRoaXMudG9vbHRpcENvbnRleHQ/LnZhbHVlcz8uc29tZShkID0+IGQueSAhPT0gbnVsbCk7XG4gICAgICBpZiAobm9EYXRhKSB7XG4gICAgICAgIHRoaXMuYW5jaG9yT3BhY2l0eSA9IDA7XG4gICAgICAgIHRoaXMubGFzdEFuY2hvclBvcyA9IC0xO1xuICAgICAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxhc3RBbmNob3JQb3MgPSB0aGlzLmFuY2hvclBvcztcbiAgICAgICAgdGhpcy5hbmNob3JPcGFjaXR5ID0gMC43O1xuICAgICAgICB0aGlzLnNob3dUb29sdGlwKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy5hbmNob3JPcGFjaXR5ID0gMDtcbiAgICB0aGlzLmxhc3RBbmNob3JQb3MgPSAtMTtcbiAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbWVyZ2VQb2ludENvbnRleHQgPSAoY29udGV4dDogVG9vbHRpcENvbnRleHQpID0+ICh7XG4gICAgY29udGV4dDogdGhpcy5saW1pdE1heENvbnRleHQoY29udGV4dC52YWx1ZXMpLFxuICAgIHNvdXJjZTogY29udGV4dC5zb3VyY2UsXG4gICAgLi4uKHRoaXMucG9pbnRUZW1wbGF0ZUNvbnRleHQgYXMgU3RyaW5nTWFwKSxcbiAgfSk7XG5cbiAgaXRlbVRyYWNrQnk6IFRyYWNrQnlGdW5jdGlvbjxDb250ZXh0SXRlbT4gPSAoXzogbnVtYmVyLCB2YWx1ZTogQ29udGV4dEl0ZW0pID0+XG4gICAgdmFsdWUubmFtZTtcblxuICAvLyBiYXIgbW91c2VNb3ZlIOWkhOeQhlxuICBwcml2YXRlIGJhck1vdXNlTW92ZShlOiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgeFBvcyA9IGdldFhQb3MoZSwgdGhpcy5jb250ZXh0U2VydmljZSk7XG4gICAgY29uc3QgY3VyclBvc2l0aW9uID0gdGhpcy5nZXRDdXJyZW50TW91c2VNb3ZlUG9zaXRpb25WYWx1ZShcbiAgICAgIHRoaXMudHlwZVN0YW5kYXJkID8gdGhpcy5jYWxjdWxhdGlvbkl0ZW1Qb3NpdGlvbiA6IHRoaXMuZ3JvdXBQb3NpdGlvbixcbiAgICAgIHhQb3MsXG4gICAgKTtcbiAgICBpZiAoY3VyclBvc2l0aW9uKSB7XG4gICAgICB0aGlzLmdldEJhclhBbmNob3JQb3MoY3VyclBvc2l0aW9uKTtcbiAgICAgIHRoaXMuZ2V0QmFySGlnaHQoXG4gICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UueFNlcmllc1ZhbHVlW2N1cnJQb3NpdGlvbi5pbmRleF0gYXMgc3RyaW5nLFxuICAgICAgICBjdXJyUG9zaXRpb24sXG4gICAgICApO1xuICAgICAgdGhpcy5nZXRCYXJZQW5jaG9yUG9zKGN1cnJQb3NpdGlvbik7XG4gICAgICB0aGlzLnRvb2x0aXBDb250ZXh0ID0gdGhpcy5nZXRCYXJUb29sdGlwQ29udGV4dChjdXJyUG9zaXRpb24pO1xuICAgICAgdGhpcy5zaG93VG9vbHRpcCgpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QmFySGlnaHQoZ3JvdXBOYW1lOiBzdHJpbmcsIHZhbHVlPzogQ3VycmVudFBvc2l0aW9uSXRlbSkge1xuICAgIHRoaXMuYW5jaG9ySGVpZ2h0ID0gdGhpcy5jb250ZXh0U2VydmljZS5ob3Jpem9udGFsXG4gICAgICA/IHRoaXMudHlwZVN0YW5kYXJkXG4gICAgICAgID8gdGhpcy5jb250ZXh0U2VydmljZS5iYXJJbm5lclNjYWxlKCkuYmFuZHdpZHRoKClcbiAgICAgICAgOiAoPFNjYWxlQmFuZDxzdHJpbmc+PnRoaXMuY29udGV4dFNlcnZpY2UueCkuYmFuZHdpZHRoKClcbiAgICAgIDogdGhpcy5nZXRWZXJ0aWNhbEJhckhlaWdodChncm91cE5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDorqHnrpcgYmFyIOWeguebtCDnsbvlnovkuIsg6auY5bqmXG4gICAqIOagh+WHhu+8mlxiXGLnm7TmjqXmoLnmja4geSgwKSAtIHkodmFsdWUpIOiuoeeulyBiYXIgaXRlbSDnmoTpq5jluqZcbiAgICog5aCG5Y+g77ya6K6h566XIGdyb3VwIOS4i+aJgOaciWl0ZW0g55qE6auY5bqm55u45YqgIOW+l+WIsOWghuWPoOeahCBiYXIg6auY5bqmXG4gICAqL1xuICBwcml2YXRlIGdldFZlcnRpY2FsQmFySGVpZ2h0KGdyb3VwTmFtZTogc3RyaW5nLCB2YWx1ZT86IEN1cnJlbnRQb3NpdGlvbkl0ZW0pIHtcbiAgICByZXR1cm4gdGhpcy50eXBlU3RhbmRhcmRcbiAgICAgID8gdGhpcy5jb250ZXh0U2VydmljZS55KDApIC1cbiAgICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnkodGhpcy5nZXRCYXJZVmFsdWUodmFsdWUuZ3JvdXBOYW1lLCB2YWx1ZS5uYW1lKSlcbiAgICAgIDogdGhpcy5jb250ZXh0U2VydmljZS5jaGFydERhdGEucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgICAgaWYgKGN1cnIubmFtZSA9PT0gZ3JvdXBOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBjdXJyLnZhbHVlcy5yZWR1Y2UoKGFjYywgdmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbnRleHRTZXJ2aWNlLmRpc2FibGVkTGVnZW5kLmhhcyh2YWwueCBhcyBzdHJpbmcpKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnkoMCkgLVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnkodmFsLnkpICtcbiAgICAgICAgICAgICAgICAgICAgYWNjXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICB9LCAwKSArIHByZXZcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICB9LCAwKTtcbiAgfVxuXG4gIC8vIOiOt+WPluW9k+WJjem8oOagh+enu+WFpSBiYXIgeSDlgLxcbiAgcHJpdmF0ZSBnZXRCYXJZVmFsdWUoZ3JvdXBOYW1lOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIGxldCByZXN1bHQgPSAwO1xuICAgIGZvciAoY29uc3QgWywgaXRlbV0gb2YgdGhpcy5jb250ZXh0U2VydmljZS5jaGFydERhdGEuZW50cmllcygpKSB7XG4gICAgICBpZiAoaXRlbS5uYW1lID09PSBncm91cE5hbWUpIHtcbiAgICAgICAgZm9yIChjb25zdCBbLCB2YWxdIG9mIGl0ZW0udmFsdWVzLmVudHJpZXMoKSkge1xuICAgICAgICAgIGlmICh2YWwueCA9PT0gbmFtZSkge1xuICAgICAgICAgICAgcmVzdWx0ID0gdmFsLnk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvLyBsaW5lIGFyZWEgY2hhcnQg6I635Y+WIHRvb2x0aXAg5bGV56S65pWw5o2uXG4gIHByaXZhdGUgZ2V0VG9vbHRpcENvbnRleHQoaW5kZXg6IG51bWJlciwgeFZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCBEYXRlKSB7XG4gICAgY29uc3QgdmFsdWVzOiBDb250ZXh0SXRlbVtdID0gdGhpcy5jb250ZXh0U2VydmljZS5jaGFydERhdGEucmVkdWNlKFxuICAgICAgKGFjYywgZ3JvdXApID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRleHRTZXJ2aWNlLmRpc2FibGVkTGVnZW5kLmhhcyhncm91cC5uYW1lKSkge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBncm91cC52YWx1ZXNbaW5kZXhdO1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgIG5hbWU6IGdyb3VwLm5hbWUsXG4gICAgICAgICAgICAgIGNvbG9yOiBncm91cC5jb2xvcixcbiAgICAgICAgICAgICAgdW5pdDogZ3JvdXAudW5pdCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIFtdLFxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB4VmFsdWUsXG4gICAgICBzb3VyY2U6IHRoaXMuY29udGV4dFNlcnZpY2UuY2hhcnREYXRhLFxuICAgICAgdmFsdWVzOiB0aGlzLmF1dG9Tb3J0ID8gdmFsdWVzLnNvcnQoKGEsIGIpID0+IGIueSAtIGEueSkgOiB2YWx1ZXMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5YgYmFyIHRvb2x0aXAg5bGV56S65pWw5o2uXG4gICAqL1xuICBwcml2YXRlIGdldEJhclRvb2x0aXBDb250ZXh0KHZhbHVlOiBDdXJyZW50UG9zaXRpb25JdGVtKSB7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5jb250ZXh0U2VydmljZS5jaGFydERhdGEucmVkdWNlKChhY2MsIGdyb3VwKSA9PiB7XG4gICAgICBpZiAoZ3JvdXAubmFtZSA9PT0gdmFsdWUuZ3JvdXBOYW1lKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgIC4uLmdyb3VwLnZhbHVlcy5yZWR1Y2UoXG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgIHByZXYsXG4gICAgICAgICAgICAgIGN1cnI6IENoYXJ0RGF0YUl0ZW08eyB4OiBzdHJpbmc7IHk6IG51bWJlcjsgY29sb3I/OiBzdHJpbmcgfT4sXG4gICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhdGhpcy5jb250ZXh0U2VydmljZS5kaXNhYmxlZExlZ2VuZC5oYXMoY3Vyci54IGFzIHN0cmluZykgJiZcbiAgICAgICAgICAgICAgICAodmFsdWUubmFtZSA/IGN1cnIueCA9PT0gdmFsdWUubmFtZSA6IHRydWUpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAuLi5jdXJyLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBjdXJyLngsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICAgICAgICAgIGN1cnIuY29sb3IgfHxcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldENoYXJ0RGVmYXVsdENvbG9yKGluZGV4KSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbXSxcbiAgICAgICAgICApLFxuICAgICAgICBdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB2YWx1ZS5ncm91cE5hbWUsXG4gICAgICBzb3VyY2U6IHRoaXMuY29udGV4dFNlcnZpY2UuY2hhcnREYXRhLFxuICAgICAgdmFsdWVzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICog5pqC5pe25YWIIOmAmui/hyBoYWNrIOaWueW8jyDkv67mlLkgcG9pbnRlciBldmVudCDooYzkuLpcbiAgICogVE9ETzog5ZCO57ut5YaF6YOo5a6e546wIHRvb2x0aXAg5LiN5L2/55SoIGF1aSB0b29sdGlwXG4gICAqL1xuICBoYWNrT3ZlcmxheVBhbmVTdHlsZShzdHlsZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdG9vbHRpcFBhbmVEb20gPSBnZXQoXG4gICAgICB0aGlzLmF1aVRvb2x0aXBSZWYub3ZlcmxheVJlZixcbiAgICAgICdfcGFuZScsXG4gICAgKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAodG9vbHRpcFBhbmVEb20pIHtcbiAgICAgIHRvb2x0aXBQYW5lRG9tLnN0eWxlLnBvaW50ZXJFdmVudHMgPSBzdHlsZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog6I635Y+W6byg5qCH56e75Yqo55qE5L2N572u5omA5Zyo55qEIGJhciB2YWx1ZVxuICAgKiBAcGFyYW0gZGF0YSDlvZPliY1cYiBiYXIg5byA5aeL57uT5p2fIHgg5L2N572uXG4gICAqIEBwYXJhbSB4UG9zIOW9k+WJjem8oOagh+S9jee9rlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRDdXJyZW50TW91c2VNb3ZlUG9zaXRpb25WYWx1ZShcbiAgICBkYXRhOiBDdXJyZW50UG9zaXRpb25JdGVtW10sXG4gICAgeFBvczogbnVtYmVyLFxuICApIHtcbiAgICBsZXQgcmVzdWx0OiBDdXJyZW50UG9zaXRpb25JdGVtO1xuICAgIGZvciAoY29uc3QgWywgcG9zaXRpb25dIG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICBpZiAoeFBvcyA+PSBwb3NpdGlvbi54MSAmJiB4UG9zIDw9IHBvc2l0aW9uLngyKSB7XG4gICAgICAgIHJlc3VsdCA9IHBvc2l0aW9uO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiDorqHnrpfplJrngrkgeCDkvY3nva5cbiAgICog5b2T5YmNIGJhciDmlbDmja4geCDkvY3nva4gKyDlvZPliY0gYmFyIOWuveW6pueahOS4gOiIrFxuICAgKiBAcGFyYW0gY3VyclBvc2l0aW9uIOW9k+WJjem8oOagh+enu+WFpeeahGJhciDmlbDmja5cbiAgICovXG4gIHByaXZhdGUgZ2V0QmFyWEFuY2hvclBvcyhjdXJyUG9zaXRpb246IEN1cnJlbnRQb3NpdGlvbkl0ZW0pIHtcbiAgICBjb25zdCBiYW5kd2lkdGggPSB0aGlzLnR5cGVTdGFuZGFyZFxuICAgICAgPyB0aGlzLmNvbnRleHRTZXJ2aWNlLmJhcklubmVyU2NhbGUoKS5iYW5kd2lkdGgoKSAvIDJcbiAgICAgIDogKDxTY2FsZUJhbmQ8c3RyaW5nPj50aGlzLmNvbnRleHRTZXJ2aWNlLngpLmJhbmR3aWR0aCgpIC8gMjtcbiAgICB0aGlzLmFuY2hvclBvcyA9IHRoaXMuY29udGV4dFNlcnZpY2UuaG9yaXpvbnRhbFxuICAgICAgPyBNYXRoLmFicyhcbiAgICAgICAgICB0aGlzLmdldFZlcnRpY2FsQmFySGVpZ2h0KFxuICAgICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS54U2VyaWVzVmFsdWVbY3VyclBvc2l0aW9uLmluZGV4XSBhcyBzdHJpbmcsXG4gICAgICAgICAgICBjdXJyUG9zaXRpb24sXG4gICAgICAgICAgKSAvIDIsXG4gICAgICAgIClcbiAgICAgIDogY3VyclBvc2l0aW9uLngxICsgYmFuZHdpZHRoO1xuICB9XG5cbiAgLyoqXG4gICAqIOiuoeeul+mUmueCuSB5IOS9jee9rlxuICAgKiDmsLTlubPvvJrlvZPliY0gYmFyIOaVsOaNriB4IOS9jee9rlxuICAgKiDlnoLnm7TvvJrmgLvpq5jluqYgLSBiYXIg6auY5bqmIO+8iOmcgOimgeWFiOiuoeeul+WHuiBiYXLpq5jluqbvvIlcbiAgICovXG4gIHByaXZhdGUgZ2V0QmFyWUFuY2hvclBvcyhjdXJyUG9zaXRpb246IEN1cnJlbnRQb3NpdGlvbkl0ZW0pIHtcbiAgICB0aGlzLmFuY2hvclkgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmhvcml6b250YWxcbiAgICAgID8gY3VyclBvc2l0aW9uLngxXG4gICAgICA6IHRoaXMudmlldy5oZWlnaHQgLSB0aGlzLmFuY2hvckhlaWdodDtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd1Rvb2x0aXAoKSB7XG4gICAgaWYgKCF0aGlzLmF1aVRvb2x0aXBSZWY/LmlzQ3JlYXRlZCkge1xuICAgICAgdGhpcy5hdWlUb29sdGlwUmVmPy5zaG93KCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5oYWNrZWQpIHtcbiAgICAgIHRoaXMuaGFja092ZXJsYXlQYW5lU3R5bGUoJ25vbmUnKTtcbiAgICB9XG4gICAgdGhpcy5oYWNrZWQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRlVG9vbHRpcCgpIHtcbiAgICB0aGlzLmhhY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuaGFja092ZXJsYXlQYW5lU3R5bGUoJ2F1dG8nKTtcbiAgICB0aGlzLmF1aVRvb2x0aXBSZWY/LmhpZGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgbGltaXRNYXhDb250ZXh0KGNvbnRleHQ6IENvbnRleHRJdGVtW10sIGxpbWl0ID0gMTUpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBjb250ZXh0LnNsaWNlKDAsIGxpbWl0KTtcbiAgICBjb25zdCBleGlzdEFjdGl2ZSA9IHZhbHVlcy5zb21lKGl0ZW0gPT4gaXRlbS5uYW1lID09PSB0aGlzLmFjdGl2ZUxlZ2VuZCk7XG4gICAgaWYgKCFleGlzdEFjdGl2ZSAmJiB0aGlzLmFjdGl2ZUxlZ2VuZCkge1xuICAgICAgY29uc3QgZGF0YSA9IGNvbnRleHQuZmluZChpdGVtID0+IGl0ZW0ubmFtZSA9PT0gdGhpcy5hY3RpdmVMZWdlbmQpO1xuICAgICAgdGhpcy5hY3RpdmVMZWdlbmQgPSAnJztcbiAgICAgIHJldHVybiBkYXRhID8gWy4uLnZhbHVlcy5zbGljZSgwLCBsaW1pdCAtIDEpLCBkYXRhXSA6IHZhbHVlcztcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8c3ZnOmdcbiAgW2F0dHIub3BhY2l0eV09XCJhbmNob3JPcGFjaXR5XCJcbiAgKm5nSWY9XCIhaXNCYW5kXCJcbj5cbiAgPHN2ZzpjaXJjbGVcbiAgICBbYXR0ci52aXNpYmlsaXR5XT1cIlxuICAgICAgY29udGV4dFNlcnZpY2UuZGlzYWJsZWRMZWdlbmQuaGFzKGl0ZW0ubmFtZSkgPyAnaGlkZGVuJyA6ICcnXG4gICAgXCJcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0b29sdGlwQ29udGV4dD8udmFsdWVzXCJcbiAgICByPVwiMi41XCJcbiAgICBbYXR0ci5zdHJva2VdPVwiaXRlbS5jb2xvclwiXG4gICAgc3Ryb2tlLXdpZHRoPVwiMVwiXG4gICAgZmlsbD1cIiNmZmZcIlxuICAgIFthdHRyLmN4XT1cImFuY2hvclBvc1wiXG4gICAgW2F0dHIuY3ldPVwiaXRlbS55ID8gKGl0ZW0ueSB8IHB1cmU6IGNvbnRleHRTZXJ2aWNlLnkpIHx8IDAgOiAxMDAwXCJcbiAgPjwvc3ZnOmNpcmNsZT5cbjwvc3ZnOmc+XG5cbjxzdmc6cmVjdFxuICBzdHJva2U9XCIjOTk5XCJcbiAgW2F0dHIueF09XCJhbmNob3JQb3NcIlxuICBbYXR0ci52aXNpYmlsaXR5XT1cImFuY2hvclZpc2liaWxpdHlcIlxuICBbYXR0ci55XT1cImFuY2hvcllcIlxuICBbYXR0ci53aWR0aF09XCIwLjVcIlxuICBbYXR0ci5oZWlnaHRdPVwiYW5jaG9ySGVpZ2h0XCJcbiAgI3Rvb2x0aXA9XCJhdWlUb29sdGlwXCJcbiAgW2F0dHIub3BhY2l0eV09XCJhbmNob3JPcGFjaXR5XCJcbiAgW2F1aVRvb2x0aXBdPVwidG9vbHRpcFRlbXBsYXRlIHx8IGRlZmF1bHRUb29sdGlwVGVtcGxhdGVcIlxuICBbYXVpVG9vbHRpcENvbnRleHRdPVwieyBjb250ZXh0OiB0b29sdGlwQ29udGV4dCB9XCJcbiAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJhbmNob3JWaXNpYmlsaXR5XCJcbiAgYXVpVG9vbHRpcFRyaWdnZXI9XCJtYW51YWxcIlxuICBbYXVpVG9vbHRpcFBvc2l0aW9uXT1cInR5cGVTdGFuZGFyZCAmJiBpc0JhbmQgPyAndG9wJyA6ICdzdGFydCdcIlxuICBhdWlUb29sdGlwQ2xhc3M9XCJ0b29sdGlwQ2xhc3NcIlxuLz5cblxuPG5nLXRlbXBsYXRlXG4gICNkZWZhdWx0VG9vbHRpcFRlbXBsYXRlXG4gIGxldC1jb250ZXh0PVwiY29udGV4dFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVUZW1wbGF0ZSB8fCBkZWZhdWx0VGl0bGVUZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGNvbnRleHQ6IGNvbnRleHQgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRleHRcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9pbnRUZW1wbGF0ZSB8fCBkZWZhdWx0UG9pbnRUZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJjb250ZXh0IHwgcHVyZTogbWVyZ2VQb2ludENvbnRleHRcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBwb2ludGVyLWV2ZW50czogbm9uZTsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJVwiXG4gID48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAjZGVmYXVsdFRpdGxlVGVtcGxhdGVcbiAgbGV0LWNvbnRleHQ9XCJjb250ZXh0XCJcbj5cbiAge3tcbiAgICB0aXRsZVRyYW5zbGF0aW9uXG4gICAgICA/IChjb250ZXh0Py50aXRsZSB8IHRyYW5zbGF0ZSlcbiAgICAgIDogKGNvbnRleHQ/LnRpdGxlIHwgcHVyZTogaGFuZGxlRGF0ZUZvcm1hdCA6IGRhdGVGb3JtYXQpXG4gIH19XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI2RlZmF1bHRQb2ludFRlbXBsYXRlXG4gIGxldC1jb250ZXh0PVwiY29udGV4dFwiXG4gIGxldC1zb3VyY2U9XCJzb3VyY2VcIlxuPlxuICA8dWxcbiAgICBjbGFzcz1cImNvbnRleHQtbGlzdFwiXG4gICAgW2NsYXNzLmNvbHVtbi1sYXlvdXRdPVwiY29sdW1uTGF5b3V0XCJcbiAgPlxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJjb250ZXh0LWl0ZW1cIlxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udGV4dDsgdHJhY2tCeTogaXRlbVRyYWNrQnlcIlxuICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtPy5hY3RpdmVcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJpdGVtLWljb25cIlxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIml0ZW0uY29sb3JcIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tbmFtZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwb2ludE5hbWVUZW1wbGF0ZTsgZWxzZSBlbHNlVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9pbnROYW1lVGVtcGxhdGVcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBjb250ZXh0OiBpdGVtIH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxuICAgICAgICAgICAge3sgdHJhbnNsYXRpb24gPyAoaXRlbS5uYW1lIHwgdHJhbnNsYXRlKSA6IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW5MYXlvdXRcIj46IDwvbmctY29udGFpbmVyPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiaXRlbS1wcmVmaXhcIlxuICAgICAgICAgICpuZ0lmPVwidmFsdWVQcmVmaXhcIlxuICAgICAgICAgID57eyB2YWx1ZVByZWZpeCB9fTwvc3BhblxuICAgICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbS12YWx1ZVwiPnt7IGl0ZW0gfCBwdXJlOiBwb2ludEZvcm1hdCB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cIml0ZW0tc3VmZml4XCJcbiAgICAgICAgICAqbmdJZj1cInZhbHVlU3VmZml4XCJcbiAgICAgICAgICA+e3sgdmFsdWVTdWZmaXggfCBwdXJlOiB0b29sdGlwU3VmZml4Rm9ybWF0IH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -25,7 +25,7 @@ export class CodeDisplayDialogComponent {
|
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
static { this.ɵfac = function CodeDisplayDialogComponent_Factory(t) { return new (t || CodeDisplayDialogComponent)(i0.ɵɵdirectiveInject(DIALOG_DATA)); }; }
|
|
28
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CodeDisplayDialogComponent, selectors: [["ng-component"]], decls: 8, vars: 12, consts: [[3, "divider"], ["class", "extra", 4, "ngIf"], [3, "ngModel", "options", "actionsConfig"], [1, "extra"]], template: function CodeDisplayDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
28
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CodeDisplayDialogComponent, selectors: [["ng-component"]], decls: 8, vars: 12, consts: [[3, "divider"], ["class", "extra", 4, "ngIf"], [2, "display", "block", "height", "65vh", 3, "ngModel", "options", "actionsConfig"], [1, "extra"]], template: function CodeDisplayDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
29
29
|
i0.ɵɵelementStart(0, "aui-dialog-header", 0)(1, "div")(2, "span");
|
|
30
30
|
i0.ɵɵtext(3);
|
|
31
31
|
i0.ɵɵpipe(4, "translate");
|
|
@@ -51,10 +51,10 @@ export class CodeDisplayDialogComponent {
|
|
|
51
51
|
}
|
|
52
52
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CodeDisplayDialogComponent, [{
|
|
53
53
|
type: Component,
|
|
54
|
-
args: [{ preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<aui-dialog-header [divider]=\"false\">\n <div [class.ellipsis-dialog-header]=\"data.ellipsis\">\n <span [class.text-ellipsis]=\"data.ellipsis\">\n {{ data.title || ('view_yaml' | translate) }}\n </span>\n <span\n *ngIf=\"data.extra\"\n class=\"extra\"\n >{{ data.extra }}</span\n >\n </div>\n</aui-dialog-header>\n<aui-dialog-content>\n <aui-code-editor\n [ngModel]=\"data.code || ''\"\n [options]=\"codeEditorOptions\"\n [actionsConfig]=\"editorActions\"\n ></aui-code-editor>\n</aui-dialog-content>\n" }]
|
|
54
|
+
args: [{ preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<aui-dialog-header [divider]=\"false\">\n <div [class.ellipsis-dialog-header]=\"data.ellipsis\">\n <span [class.text-ellipsis]=\"data.ellipsis\">\n {{ data.title || ('view_yaml' | translate) }}\n </span>\n <span\n *ngIf=\"data.extra\"\n class=\"extra\"\n >{{ data.extra }}</span\n >\n </div>\n</aui-dialog-header>\n<aui-dialog-content>\n <aui-code-editor\n style=\"display: block; height: 65vh\"\n [ngModel]=\"data.code || ''\"\n [options]=\"codeEditorOptions\"\n [actionsConfig]=\"editorActions\"\n ></aui-code-editor>\n</aui-dialog-content>\n" }]
|
|
55
55
|
}], () => [{ type: undefined, decorators: [{
|
|
56
56
|
type: Inject,
|
|
57
57
|
args: [DIALOG_DATA]
|
|
58
58
|
}] }], null); })();
|
|
59
59
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CodeDisplayDialogComponent, { className: "CodeDisplayDialogComponent", filePath: "code/code-display-dialog/component.ts", lineNumber: 28 }); })();
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvZGUvY29kZS1kaXNwbGF5LWRpYWxvZy9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY29kZS9jb2RlLWRpc3BsYXktZGlhbG9nL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRSxPQUFPLEVBRUwsZUFBZSxFQUNmLFdBQVcsR0FDWixNQUFNLHdCQUF3QixDQUFDOzs7SUNQNUIsK0JBR0c7SUFBQSxZQUFnQjtJQUFBLGlCQUNsQjs7O0lBREUsY0FBZ0I7SUFBaEIsdUNBQWdCOztBRG1CdkIsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQyxZQUVTLElBQTJCO1FBQTNCLFNBQUksR0FBSixJQUFJLENBQXVCO1FBSnBDLGtCQUFhLEdBQUcsV0FBVyxDQUFDO1FBTTFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRztZQUN2QixHQUFHLGVBQWU7WUFDbEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTTtTQUNsQyxDQUFDO0lBQ0osQ0FBQzsyRkFiVSwwQkFBMEIsdUJBTTNCLFdBQVc7b0VBTlYsMEJBQTBCO1lDekJuQyxBQURGLEFBREYsNENBQXFDLFVBQ2lCLFdBQ047WUFDMUMsWUFDRjs7WUFBQSxpQkFBTztZQUNQLDZFQUdHO1lBR1AsQUFERSxpQkFBTSxFQUNZO1lBQ3BCLDBDQUFvQjtZQUNsQixxQ0FLbUI7WUFDckIsaUJBQXFCOztZQW5CRiwrQkFBaUI7WUFDN0IsY0FBOEM7WUFBOUMsMkRBQThDO1lBQzNDLGNBQXFDO1lBQXJDLGtEQUFxQztZQUN6QyxjQUNGO1lBREUscUZBQ0Y7WUFFRyxlQUFnQjtZQUFoQixxQ0FBZ0I7WUFTbkIsZUFBMkI7WUFFM0IsQUFEQSxBQURBLDZDQUEyQixrQ0FDRSxvQ0FDRTs7O2lGRFV0QiwwQkFBMEI7Y0FMdEMsU0FBUztzQ0FFYSxLQUFLLG1CQUNULHVCQUF1QixDQUFDLE1BQU07O3NCQVE1QyxNQUFNO3VCQUFDLFdBQVc7O2tGQU5WLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIGNvZGVcbiAqL1xuXG5pbXBvcnQgeyBESUFMT0dfREFUQSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIElFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zLFxuICByZWFkb25seU9wdGlvbnMsXG4gIHZpZXdBY3Rpb25zLFxufSBmcm9tICcuLi9jb2RlLWVkaXRvci1jb25maWdzJztcblxuZXhwb3J0IGludGVyZmFjZSBDb2RlRGlzcGxheURpYWxvZ0RhdGEge1xuICBsYW5ndWFnZT86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGVsbGlwc2lzPzogYm9vbGVhbjtcbiAgZXh0cmE/OiBzdHJpbmc7XG4gIGNvZGU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ29kZURpc3BsYXlEaWFsb2dDb21wb25lbnQge1xuICBjb2RlRWRpdG9yT3B0aW9uczogSUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnM7XG5cbiAgZWRpdG9yQWN0aW9ucyA9IHZpZXdBY3Rpb25zO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRElBTE9HX0RBVEEpXG4gICAgcHVibGljIGRhdGE6IENvZGVEaXNwbGF5RGlhbG9nRGF0YSxcbiAgKSB7XG4gICAgdGhpcy5jb2RlRWRpdG9yT3B0aW9ucyA9IHtcbiAgICAgIC4uLnJlYWRvbmx5T3B0aW9ucyxcbiAgICAgIGxhbmd1YWdlOiBkYXRhLmxhbmd1YWdlIHx8ICd5YW1sJyxcbiAgICB9O1xuICB9XG59XG4iLCI8YXVpLWRpYWxvZy1oZWFkZXIgW2RpdmlkZXJdPVwiZmFsc2VcIj5cbiAgPGRpdiBbY2xhc3MuZWxsaXBzaXMtZGlhbG9nLWhlYWRlcl09XCJkYXRhLmVsbGlwc2lzXCI+XG4gICAgPHNwYW4gW2NsYXNzLnRleHQtZWxsaXBzaXNdPVwiZGF0YS5lbGxpcHNpc1wiPlxuICAgICAge3sgZGF0YS50aXRsZSB8fCAoJ3ZpZXdfeWFtbCcgfCB0cmFuc2xhdGUpIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cImRhdGEuZXh0cmFcIlxuICAgICAgY2xhc3M9XCJleHRyYVwiXG4gICAgICA+e3sgZGF0YS5leHRyYSB9fTwvc3BhblxuICAgID5cbiAgPC9kaXY+XG48L2F1aS1kaWFsb2ctaGVhZGVyPlxuPGF1aS1kaWFsb2ctY29udGVudD5cbiAgPGF1aS1jb2RlLWVkaXRvclxuICAgIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IGhlaWdodDogNjV2aFwiXG4gICAgW25nTW9kZWxdPVwiZGF0YS5jb2RlIHx8ICcnXCJcbiAgICBbb3B0aW9uc109XCJjb2RlRWRpdG9yT3B0aW9uc1wiXG4gICAgW2FjdGlvbnNDb25maWddPVwiZWRpdG9yQWN0aW9uc1wiXG4gID48L2F1aS1jb2RlLWVkaXRvcj5cbjwvYXVpLWRpYWxvZy1jb250ZW50PlxuIl19
|
|
@@ -3,11 +3,10 @@ import { trim } from 'lodash-es';
|
|
|
3
3
|
import { TranslatePipe } from '../../translate/translate.pipe';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class ParseJsonTranslatePipe extends TranslatePipe {
|
|
6
|
-
transform(key, data
|
|
7
|
-
// eslint-disable-next-line regexp/match-any, regexp/strict
|
|
6
|
+
transform(key, data) {
|
|
8
7
|
if (typeof key !== 'string' || /^{[\S\s]*}$/.test(trim(key))) {
|
|
9
8
|
try {
|
|
10
|
-
return super.transform(typeof key === 'string' ? JSON.parse(trim(key)) : key, data
|
|
9
|
+
return super.transform(typeof key === 'string' ? JSON.parse(trim(key)) : key, data);
|
|
11
10
|
}
|
|
12
11
|
catch {
|
|
13
12
|
return key;
|
|
@@ -26,4 +25,4 @@ export class ParseJsonTranslatePipe extends TranslatePipe {
|
|
|
26
25
|
standalone: true,
|
|
27
26
|
}]
|
|
28
27
|
}], null, null); })();
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtanNvbi10cmFuc2xhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3BpcGVzL3BhcnNlLWpzb24tdHJhbnNsYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBUS9ELE1BQU0sT0FBTyxzQkFDWCxTQUFRLGFBQWE7SUFHWixTQUFTLENBQUMsR0FBaUIsRUFBRSxJQUFjO1FBQ2xELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUNwQixPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFDckQsSUFBSSxDQUNMLENBQUM7WUFDSixDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE9BQU8sR0FBYSxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOzRQQWpCVSxzQkFBc0IsU0FBdEIsc0JBQXNCOytGQUF0QixzQkFBc0I7O2lGQUF0QixzQkFBc0I7Y0FMbEMsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLElBQUksRUFBRSxLQUFLO2dCQUNYLFVBQVUsRUFBRSxJQUFJO2FBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHJpbSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi90cmFuc2xhdGUvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlS2V5IH0gZnJvbSAnLi4vLi4vdHJhbnNsYXRlL3R5cGVzJztcblxuQFBpcGUoe1xuICBuYW1lOiAnYWNsUGFyc2VKc29uVHJhbnNsYXRlJyxcbiAgcHVyZTogZmFsc2UsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFBhcnNlSnNvblRyYW5zbGF0ZVBpcGVcbiAgZXh0ZW5kcyBUcmFuc2xhdGVQaXBlXG4gIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybVxue1xuICBvdmVycmlkZSB0cmFuc2Zvcm0oa2V5OiBUcmFuc2xhdGVLZXksIGRhdGE/OiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBpZiAodHlwZW9mIGtleSAhPT0gJ3N0cmluZycgfHwgL157W1xcU1xcc10qfSQvLnRlc3QodHJpbShrZXkpKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnRyYW5zZm9ybShcbiAgICAgICAgICB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UodHJpbShrZXkpKSA6IGtleSxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBrZXkgYXMgc3RyaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBrZXk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @module utils
|
|
4
|
+
*/
|
|
5
|
+
import { HttpClient } from '@angular/common/http';
|
|
6
|
+
import { Injectable } from '@angular/core';
|
|
7
|
+
import { map } from 'rxjs';
|
|
8
|
+
import { API_GATEWAY } from '../constants/constants';
|
|
9
|
+
import { skipError } from '../utils/operators';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common/http";
|
|
12
|
+
export const modulePluginIsRunning = (pluginView, cluster) => {
|
|
13
|
+
if (!pluginView?.status?.installed ||
|
|
14
|
+
pluginView?.status?.installed?.length === 0) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const clusterStatus = pluginView?.status?.installed?.find(item => item.cluster === cluster);
|
|
18
|
+
if (!clusterStatus) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return clusterStatus.phase === 'Running';
|
|
22
|
+
};
|
|
23
|
+
export class PluginUtilService {
|
|
24
|
+
constructor(httpClient) {
|
|
25
|
+
this.httpClient = httpClient;
|
|
26
|
+
}
|
|
27
|
+
isOperatorEnabled(operator, cluster) {
|
|
28
|
+
return this.httpClient
|
|
29
|
+
.get(`${API_GATEWAY}/apis/app.alauda.io/v1alpha2/namespaces/${cluster}/operatorviews/${operator}`)
|
|
30
|
+
.pipe(map(res => {
|
|
31
|
+
return res?.status?.operatorStatus?.installation?.installed;
|
|
32
|
+
}), skipError(false));
|
|
33
|
+
}
|
|
34
|
+
isModulePluginEnabled(plugin, cluster) {
|
|
35
|
+
return this.httpClient
|
|
36
|
+
.get(`${API_GATEWAY}/apis/app.alauda.io/v1alpha2/modulepluginviews/${plugin}`)
|
|
37
|
+
.pipe(map(res => {
|
|
38
|
+
if (!res.status.installed || res.status.installed.length === 0) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
const clusterStatus = res.status.installed.find(item => item.cluster === cluster);
|
|
42
|
+
if (!clusterStatus) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return clusterStatus.phase === 'Running';
|
|
46
|
+
}), skipError(false));
|
|
47
|
+
}
|
|
48
|
+
getModulePluginsViews() {
|
|
49
|
+
return this.httpClient
|
|
50
|
+
.get(`${API_GATEWAY}/apis/app.alauda.io/v1alpha2/modulepluginviews`)
|
|
51
|
+
.pipe(map(res => res.items), skipError([]));
|
|
52
|
+
}
|
|
53
|
+
static { this.ɵfac = function PluginUtilService_Factory(t) { return new (t || PluginUtilService)(i0.ɵɵinject(i1.HttpClient)); }; }
|
|
54
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PluginUtilService, factory: PluginUtilService.ɵfac, providedIn: 'root' }); }
|
|
55
|
+
}
|
|
56
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PluginUtilService, [{
|
|
57
|
+
type: Injectable,
|
|
58
|
+
args: [{ providedIn: 'root' }]
|
|
59
|
+
}], () => [{ type: i1.HttpClient }], null); })();
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXV0aWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3NlcnZpY2VzL3BsdWdpbi11dGlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFrQy9DLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQ25DLFVBQTRCLEVBQzVCLE9BQWUsRUFDZixFQUFFO0lBQ0YsSUFDRSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUztRQUM5QixVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUMzQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUN2RCxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUNqQyxDQUFDO0lBRUYsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sYUFBYSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUE2QixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQztJQUV2RCxpQkFBaUIsQ0FBQyxRQUFnQixFQUFFLE9BQWU7UUFDakQsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixHQUFHLENBQ0YsR0FBRyxXQUFXLDJDQUEyQyxPQUFPLGtCQUFrQixRQUFRLEVBQUUsQ0FDN0Y7YUFDQSxJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1IsT0FBTyxHQUFHLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDO1FBQzlELENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FDakIsQ0FBQztJQUNOLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxNQUFjLEVBQUUsT0FBZTtRQUNuRCxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLEdBQUcsQ0FDRixHQUFHLFdBQVcsa0RBQWtELE1BQU0sRUFBRSxDQUN6RTthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMvRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzdDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQ2pDLENBQUM7WUFFRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUVELE9BQU8sYUFBYSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7UUFDM0MsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUNqQixDQUFDO0lBQ04sQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLEdBQUcsQ0FFRixHQUFHLFdBQVcsZ0RBQWdELENBQUM7YUFDaEUsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFDckIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUNkLENBQUM7SUFDTixDQUFDO2tGQWxEVSxpQkFBaUI7dUVBQWpCLGlCQUFpQixXQUFqQixpQkFBaUIsbUJBREosTUFBTTs7aUZBQ25CLGlCQUFpQjtjQUQ3QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdXRpbHNcbiAqL1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyIGFzIF9maWx0ZXIgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFQSV9HQVRFV0FZIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBLdWJlcm5ldGVzUmVzb3VyY2UsIEt1YmVybmV0ZXNSZXNvdXJjZUxpc3QgfSBmcm9tICcuLi90eXBlcy9rOHMvY29yZSc7XG5pbXBvcnQgeyBza2lwRXJyb3IgfSBmcm9tICcuLi91dGlscy9vcGVyYXRvcnMnO1xuXG5pbnRlcmZhY2UgT3BlcmF0b3JWaWV3IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3RhdHVzOiB7XG4gICAgb3BlcmF0b3JTdGF0dXM6IHtcbiAgICAgIGluc3RhbGxhdGlvbjoge1xuICAgICAgICBpbnN0YWxsZWQ6IGJvb2xlYW47XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIE1vZHVsZVBsdWdpblBoYXNlID1cbiAgfCAnUnVubmluZydcbiAgfCAnUHJvY2Vzc2luZydcbiAgfCAnRGVsZXRpbmcnXG4gIHwgJ0ZhaWxlZCdcbiAgfCAnVXBncmFkaW5nJ1xuICB8ICdVbmtub3duJztcblxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVQbHVnaW5JbnN0YWxsU3RhdHVzIHtcbiAgY2x1c3Rlcjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBoYXNlOiBNb2R1bGVQbHVnaW5QaGFzZTtcbiAgdmVyc2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZVBsdWdpblZpZXcgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzdGF0dXM6IHtcbiAgICBtb2R1bGVQbHVnaW5FeGlzdDogYm9vbGVhbjtcbiAgICBpbnN0YWxsZWQ6IE1vZHVsZVBsdWdpbkluc3RhbGxTdGF0dXNbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IG1vZHVsZVBsdWdpbklzUnVubmluZyA9IChcbiAgcGx1Z2luVmlldzogTW9kdWxlUGx1Z2luVmlldyxcbiAgY2x1c3Rlcjogc3RyaW5nLFxuKSA9PiB7XG4gIGlmIChcbiAgICAhcGx1Z2luVmlldz8uc3RhdHVzPy5pbnN0YWxsZWQgfHxcbiAgICBwbHVnaW5WaWV3Py5zdGF0dXM/Lmluc3RhbGxlZD8ubGVuZ3RoID09PSAwXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGNsdXN0ZXJTdGF0dXMgPSBwbHVnaW5WaWV3Py5zdGF0dXM/Lmluc3RhbGxlZD8uZmluZChcbiAgICBpdGVtID0+IGl0ZW0uY2x1c3RlciA9PT0gY2x1c3RlcixcbiAgKTtcblxuICBpZiAoIWNsdXN0ZXJTdGF0dXMpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gY2x1c3RlclN0YXR1cy5waGFzZSA9PT0gJ1J1bm5pbmcnO1xufTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQbHVnaW5VdGlsU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCkge31cblxuICBpc09wZXJhdG9yRW5hYmxlZChvcGVyYXRvcjogc3RyaW5nLCBjbHVzdGVyOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0PE9wZXJhdG9yVmlldz4oXG4gICAgICAgIGAke0FQSV9HQVRFV0FZfS9hcGlzL2FwcC5hbGF1ZGEuaW8vdjFhbHBoYTIvbmFtZXNwYWNlcy8ke2NsdXN0ZXJ9L29wZXJhdG9ydmlld3MvJHtvcGVyYXRvcn1gLFxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXMgPT4ge1xuICAgICAgICAgIHJldHVybiByZXM/LnN0YXR1cz8ub3BlcmF0b3JTdGF0dXM/Lmluc3RhbGxhdGlvbj8uaW5zdGFsbGVkO1xuICAgICAgICB9KSxcbiAgICAgICAgc2tpcEVycm9yKGZhbHNlKSxcbiAgICAgICk7XG4gIH1cblxuICBpc01vZHVsZVBsdWdpbkVuYWJsZWQocGx1Z2luOiBzdHJpbmcsIGNsdXN0ZXI6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5nZXQ8TW9kdWxlUGx1Z2luVmlldz4oXG4gICAgICAgIGAke0FQSV9HQVRFV0FZfS9hcGlzL2FwcC5hbGF1ZGEuaW8vdjFhbHBoYTIvbW9kdWxlcGx1Z2ludmlld3MvJHtwbHVnaW59YCxcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICBpZiAoIXJlcy5zdGF0dXMuaW5zdGFsbGVkIHx8IHJlcy5zdGF0dXMuaW5zdGFsbGVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGNsdXN0ZXJTdGF0dXMgPSByZXMuc3RhdHVzLmluc3RhbGxlZC5maW5kKFxuICAgICAgICAgICAgaXRlbSA9PiBpdGVtLmNsdXN0ZXIgPT09IGNsdXN0ZXIsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmICghY2x1c3RlclN0YXR1cykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjbHVzdGVyU3RhdHVzLnBoYXNlID09PSAnUnVubmluZyc7XG4gICAgICAgIH0pLFxuICAgICAgICBza2lwRXJyb3IoZmFsc2UpLFxuICAgICAgKTtcbiAgfVxuXG4gIGdldE1vZHVsZVBsdWdpbnNWaWV3cygpOiBPYnNlcnZhYmxlPE1vZHVsZVBsdWdpblZpZXdbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5nZXQ8XG4gICAgICAgIEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8TW9kdWxlUGx1Z2luVmlldz5cbiAgICAgID4oYCR7QVBJX0dBVEVXQVl9L2FwaXMvYXBwLmFsYXVkYS5pby92MWFscGhhMi9tb2R1bGVwbHVnaW52aWV3c2ApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiByZXMuaXRlbXMpLFxuICAgICAgICBza2lwRXJyb3IoW10pLFxuICAgICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -13,5 +13,6 @@ export * from './yaml-util.service';
|
|
|
13
13
|
export * from './form-row-duplicate/form-row-duplicate.service';
|
|
14
14
|
export * from './context.service';
|
|
15
15
|
export * from './disaster-recovery.service';
|
|
16
|
+
export * from './plugin-util.service';
|
|
16
17
|
export { EncodeUrlParamsSafelyInterceptor } from './encode-url-param.interceptor';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3NlcnZpY2VzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXVpLXBhZ2luYXRvci1pbnRsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hdWktdG9vbHRpcC1jb3B5LWludGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1jb2RlLWVkaXRvci1pbnRsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLWdhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyY2VwdC1kZWFjdGl2YXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9rOHMtdXRpbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2lsZW50bHktbmF2aWdhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RpbWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3VpLXN0YXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi93b3Jrc3BhY2UtaGVscGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vbi1yZXNpemUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3lhbWwtdXRpbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1yb3ctZHVwbGljYXRlL2Zvcm0tcm93LWR1cGxpY2F0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlzYXN0ZXItcmVjb3Zlcnkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbi11dGlsLnNlcnZpY2UnO1xuZXhwb3J0IHsgRW5jb2RlVXJsUGFyYW1zU2FmZWx5SW50ZXJjZXB0b3IgfSBmcm9tICcuL2VuY29kZS11cmwtcGFyYW0uaW50ZXJjZXB0b3InO1xuIl19
|
|
@@ -72,4 +72,4 @@ export var ChartUploadStatusEnum;
|
|
|
72
72
|
ChartUploadStatusEnum["UPLOAD_FAILED"] = "upload_failed";
|
|
73
73
|
ChartUploadStatusEnum["UPLOADING"] = "uploading";
|
|
74
74
|
})(ChartUploadStatusEnum || (ChartUploadStatusEnum = {}));
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvdHlwZXMvazhzL2NyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrRkEsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUM3QixpREFBMEIsQ0FBQTtJQUMxQiwwQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQVVYO0FBVkQsV0FBWSxrQkFBa0I7SUFDNUIsa0RBQTRCLENBQUE7SUFDNUIseUNBQW1CLENBQUE7SUFDbkIsMkNBQXFCLENBQUE7SUFDckIsNkNBQXVCLENBQUE7SUFDdkIsb0RBQThCLENBQUE7SUFDOUIsNkNBQXVCLENBQUE7SUFDdkIsc0RBQWdDLENBQUE7SUFDaEMsNkNBQXVCLENBQUE7SUFDdkIseUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVZXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFVN0I7QUErQ0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxNQUFNO0lBQ1osa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxhQUFhO0lBQzNCLGFBQWEsRUFBRSxjQUFjO0NBQ3JCLENBQUM7QUFtYlgsTUFBTSxDQUFOLElBQVkseUJBTVg7QUFORCxXQUFZLHlCQUF5QjtJQUNuQyxnREFBbUIsQ0FBQTtJQUNuQixnREFBbUIsQ0FBQTtJQUNuQixnREFBbUIsQ0FBQTtJQUNuQiw4Q0FBaUIsQ0FBQTtJQUNqQiw0Q0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFOVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBTXBDO0FBV0QsTUFBTSxDQUFOLElBQVksb0JBS1g7QUFMRCxXQUFZLG9CQUFvQjtJQUM5Qix5Q0FBaUIsQ0FBQTtJQUNqQix5Q0FBaUIsQ0FBQTtJQUNqQiwyQ0FBbUIsQ0FBQTtJQUNuQixxREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBTFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUsvQjtBQWdFRCxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLDhCQUFpQixDQUFBO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLGdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxTQUFTLEtBQVQsU0FBUyxRQUtwQjtBQTRFRCxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQ2hDLDJEQUFpQyxDQUFBO0lBQ2pDLHVEQUE2QixDQUFBO0lBQzdCLDREQUFrQyxDQUFBO0lBQ2xDLDZEQUFtQyxDQUFBO0lBQ25DLCtEQUFxQyxDQUFBO0lBQ3JDLGlFQUF1QyxDQUFBO0FBQ3pDLENBQUMsRUFQVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBT2pDO0FBdUZELE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDdkIsZ0NBQWUsQ0FBQTtJQUNmLDRCQUFXLENBQUE7SUFDWCx1Q0FBc0IsQ0FBQTtBQUN4QixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEI7QUFrQkQsTUFBTSxDQUFOLElBQVksa0JBSVg7QUFKRCxXQUFZLGtCQUFrQjtJQUM1Qix1Q0FBaUIsQ0FBQTtJQUNqQix1Q0FBaUIsQ0FBQTtJQUNqQix5Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSlcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUk3QjtBQWtCRCxNQUFNLENBQU4sSUFBWSxxQkFJWDtBQUpELFdBQVkscUJBQXFCO0lBQy9CLDhEQUFxQyxDQUFBO0lBQ3JDLHdEQUErQixDQUFBO0lBQy9CLGdEQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFKVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBSWhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsdWVPZiB9IGZyb20gJ3RzLWVzc2VudGlhbHMnO1xuXG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi9jb21tb25zJztcblxuaW1wb3J0IHtcbiAgQ29uZGl0aW9uLFxuICBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIEt1YmVybmV0ZXNSZXNvdXJjZUxpc3QsXG4gIE9iamVjdE1ldGEsXG59IGZyb20gJy4vY29yZSc7XG5pbXBvcnQge1xuICBDb25maWdNYXBLZXlSZWYsXG4gIE5vZGUsXG4gIE5vZGVTdGF0dXMsXG4gIE5vZGVUYWludCxcbiAgU2VjcmV0LFxuICBTZWNyZXRLZXlSZWYsXG59IGZyb20gJy4vcmF3JztcblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyU3BlYyB7XG4gIGF1dGhJbmZvPzoge1xuICAgIGNvbnRyb2xsZXI6IHtcbiAgICAgIGtpbmQ6IHN0cmluZztcbiAgICAgIG5hbWVzcGFjZTogc3RyaW5nO1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGt1YmVybmV0ZXNBcGlFbmRwb2ludHM/OiB7XG4gICAgY2FCdW5kbGU/OiBzdHJpbmc7XG4gICAgc2VydmVyRW5kcG9pbnRzOiBBcnJheTx7XG4gICAgICBjbGllbnRDSURSOiBzdHJpbmc7XG4gICAgICBzZXJ2ZXJBZGRyZXNzOiBzdHJpbmc7XG4gICAgfT47XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIENsdXN0ZXJTdGF0dXNSZWFzb24gPVxuICB8ICdUaW1lb3V0J1xuICB8ICdGb3JiaWRkZW4nXG4gIHwgJ1VuYXV0aG9yaXplZCdcbiAgfCAnU29tZUNvbXBvbmVudHNVbmhlYWx0aHknXG4gIHwgJ1NvbWVOb2Rlc05vdFJlYWR5JztcblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyU3RhdHVzQ29uZGl0aW9uIGV4dGVuZHMgQ29uZGl0aW9uIHtcbiAgbGFzdFRyYW5zaXRpb25UaW1lOiBzdHJpbmc7XG4gIHR5cGU6XG4gICAgfCAnTm90UmVhY2hhYmxlJ1xuICAgIHwgJ05vdEFjY2Vzc2libGUnXG4gICAgfCAnQ29tcG9uZW50Tm90SGVhbHRoeSdcbiAgICB8ICdOb2RlTm90UmVhZHknO1xuICBzdGF0dXM6ICdUcnVlJyB8ICdGYWxzZSc7XG4gIHJlYXNvbjogQ2x1c3RlclN0YXR1c1JlYXNvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyU3RhdHVzIHtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBjb25kaXRpb25zOiBDbHVzdGVyU3RhdHVzQ29uZGl0aW9uW107XG59XG5cbi8vIGNsdXN0ZXJzLmNsdXN0ZXJyZWdpc3RyeS5rOHMuaW8g55qE57G75Z6L5a6a5LmJXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXIgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBtZXRhZGF0YT86IE9iamVjdE1ldGEgJiB7XG4gICAgZmluYWxpemVycz86IHN0cmluZ1tdO1xuICB9O1xuICBzcGVjPzogQ2x1c3RlclNwZWM7XG4gIHN0YXR1cz86IENsdXN0ZXJTdGF0dXM7XG4gIGRldGFpbHM/OiB7XG4gICAgZ3JvdXA6IHN0cmluZztcbiAgICBraW5kOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHVpZDogc3RyaW5nO1xuICB9O1xufVxuXG4vLyBBbGF1ZGEgUHJvZHVjdFxuZXhwb3J0IGludGVyZmFjZSBBbGF1ZGFQcm9kdWN0U3RhdHVzIGV4dGVuZHMgQ29uZGl0aW9uIHtcbiAgZGVwbG95U3RhdHVzPzogQWxhdWRhRGVwbG95U3RhdHVzO1xuICBydW5uaW5nU3RhdHVzPzogQWxhdWRhUnVubmluZ1N0YXR1cztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkZXBsb3lUaW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBBbGF1ZGFSdW5uaW5nU3RhdHVzIHtcbiAgTk9UX1JVTk5JTkcgPSAnTm90UnVubmluZycsXG4gIEhFQUxUSFkgPSAnSGVhbHRoeScsXG4gIEFCTk9STUFMID0gJ0Fibm9ybWFsJyxcbn1cblxuZXhwb3J0IGVudW0gQWxhdWRhRGVwbG95U3RhdHVzIHtcbiAgTk9UX0RFUExPWUVEID0gJ05vdERlcGxveWVkJyxcbiAgU1VDQ0VTUyA9ICdzdWNjZXNzJyxcbiAgQUJOT1JNQUwgPSAnQWJub3JtYWwnLFxuICBERVBMT1lJTkcgPSAnRGVwbG95aW5nJyxcbiAgREVQTE9ZX0ZBSUxFRCA9ICdEZXBsb3lGYWlsZWQnLFxuICBVUEdSQURJTkcgPSAnVXBncmFkaW5nJyxcbiAgVVBHUkFERV9GQUlMRUQgPSAnVXBncmFkZUZhaWxlZCcsXG4gIENPTVBMRVRFRCA9ICdDb21wbGV0ZWQnLFxuICBQRU5ESU5HID0gJ1BlbmRpbmcnLFxufVxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0QmFzZSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IFByb2R1Y3RCYXNlU3BlYztcbiAgc3RhdHVzPzogUHJvZHVjdEJhc2VTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdFN0YXR1c0NvbmRpdGlvbiB7XG4gIHN0YXR1cz86ICdUcnVlJyB8ICdGYWxzZScgfCAnVW5rbm93bic7XG4gIHJlYXNvbj86IHN0cmluZztcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgdHlwZTogJ1JlYWR5JyB8ICdJbml0aWFsaXplZCcgfCAnUmVjbGFpbWVkJyB8ICdTdWNjZWVkJztcbiAgbGFzdFRyYW5zaXRpb25UaW1lPzogc3RyaW5nO1xuICBsYXN0SGVhcnRiZWF0VGltZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0QmFzZVN0YXR1cyB7XG4gIGdsb2JhbElEOiBzdHJpbmc7XG4gIGNsb3VkOiB7XG4gICAgcGhhc2U6ICdPTkxpbmUnIHwgJ0Nvbm5lY3RGYWlsZWQnIHwgJ0Nvbm5lY3RpbmcnIHwgJ09GRkxpbmUnO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBjb25uZWN0VVJMOiBzdHJpbmc7XG4gIH07XG4gIHZlcnNpb246IHN0cmluZztcbiAgcGhhc2U/OlxuICAgIHwgJ1BlbmRpbmcnXG4gICAgfCAnUHJvdmlzaW9uaW5nJ1xuICAgIHwgJ1Byb3Zpc2lvbmVkJ1xuICAgIHwgJ0RlbGV0aW5nJ1xuICAgIHwgJ0ZhaWxlZCdcbiAgICB8ICdSdW5uaW5nJ1xuICAgIHwgJ0luc3RhbGxpbmcnIC8vIHRkc3FsXG4gICAgfCAnVXBncmFkaW5nJztcbiAgcHJvZHVjdEVudHJ5cG9pbnQ/OiBzdHJpbmc7XG4gIGRlbGV0YWJsZT86IGJvb2xlYW47XG4gIGNvbmRpdGlvbnM/OiBQcm9kdWN0U3RhdHVzQ29uZGl0aW9uW107XG4gIHByb21ldGhldXNBZGRyZXNzPzogc3RyaW5nO1xuICBlbGFzdGljU2VhcmNoQWRkcmVzcz86IHN0cmluZztcbiAga2Fma2FBZGRyZXNzPzogc3RyaW5nO1xuICBjb250YWluZXJQbGF0Zm9ybT86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIGRldm9wcz86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIHNlcnZpY2VNZXNoPzogQWxhdWRhUHJvZHVjdFN0YXR1cztcbiAgZGF0YVNlcnZpY2VzPzogQWxhdWRhUHJvZHVjdFN0YXR1cztcbiAgYmFzZT86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIHByb2dyZXNzPzogbnVtYmVyO1xuICByZXBsaWNhcz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFByb2R1Y3RLZXkgPSB7XG4gIEJBU0U6ICdiYXNlJyxcbiAgQ09OVEFJTkVSX1BMQVRGT1JNOiAnY29udGFpbmVyUGxhdGZvcm0nLFxuICBERVZPUFM6ICdkZXZvcHMnLFxuICBTRVJWSUNFX01FU0g6ICdzZXJ2aWNlTWVzaCcsXG4gIERBVEFfU0VSVklDRVM6ICdkYXRhU2VydmljZXMnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUHJvZHVjdEtleSA9IFZhbHVlT2Y8dHlwZW9mIFByb2R1Y3RLZXk+O1xuXG50eXBlIEdlblByb2R1Y3Q8VCBleHRlbmRzIFByb2R1Y3RLZXk+ID0gUmVjb3JkPFQsIHsgaW5zdGFsbDogYm9vbGVhbiB9PjtcblxuZXhwb3J0IGludGVyZmFjZSBUbHMge1xuICBjZXJ0OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RCYXNlU3BlYyBleHRlbmRzIEdlblByb2R1Y3Q8UHJvZHVjdEtleT4ge1xuICBhbHRlcm5hdGl2ZVVSTHM6IHN0cmluZ1tdO1xuICBjaGFydE11c2V1bToge1xuICAgIHVybDogc3RyaW5nO1xuICB9O1xuICBwYWNrYWdlRWRpdGlvbjogc3RyaW5nO1xuICB2YWx1ZXNPdmVycmlkZT86IHtcbiAgICBkZXg6IFN0cmluZ01hcDtcbiAgfTtcbiAgY2hhcnRWZXJzaW9uczogW3sgbmFtZTogc3RyaW5nOyB2ZXJzaW9uOiBzdHJpbmcgfV07XG4gIGRlZmF1bHRBZG1pbjoge1xuICAgIGFjY291bnQ6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gIH07XG4gIGRlZmF1bHRSZWRpcmVjdFBhdGg6IHN0cmluZztcbiAgZGVwbG95VHlwZTogc3RyaW5nO1xuICBlbGFzdGljc2VhcmNoOiB7XG4gICAgaW5zdGFsbDogYm9vbGVhbjtcbiAgICBub2Rlczogc3RyaW5nW107XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgfTtcbiAgaHR0cDoge1xuICAgIGZvcmNlUmVkaXJlY3RIdHRwcz86IGJvb2xlYW47XG4gICAgaHR0cFBvcnQ/OiBudW1iZXI7XG4gICAgaHR0cHNQb3J0PzogbnVtYmVyO1xuICAgIHRscz86IFRscztcbiAgfTtcbiAgaW5ncmVzczoge1xuICAgIGNvbnRyb2xsZXI6IHsgaW5zdGFsbDogYm9vbGVhbjsgbm9kZXM6IHN0cmluZ1tdIH07XG4gICAgaG9zdDogc3RyaW5nO1xuICAgIGluZ3Jlc3NDbGFzc05hbWU6IHN0cmluZztcbiAgfTtcbiAga2Fma2E6IHtcbiAgICBhdXRoOiBib29sZWFuO1xuICAgIGluc3RhbGw6IGJvb2xlYW47XG4gICAgbm9kZXM6IHN0cmluZ1tdO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gIH07XG4gIGxvZ0FnZW50OiB7XG4gICAgZW5hYmxlOiBib29sZWFuO1xuICB9O1xuICBsb2dDZW50ZXI6IHtcbiAgICBlbmFibGU6IGJvb2xlYW47XG4gIH07XG4gIHBsYXRmb3JtVVJMOiBzdHJpbmc7XG4gIHByb21ldGhldXM6IHtcbiAgICBpbnN0YWxsOiBib29sZWFuO1xuICAgIHJlcGxpY2FzOiBudW1iZXI7XG4gICAgc3RvcmFnZTogeyBjYXBhY2l0eTogbnVtYmVyOyBub2Rlczogc3RyaW5nW107IHBhdGg6IHN0cmluZzsgdHlwZTogc3RyaW5nIH07XG4gIH07XG4gIHJlZ2lzdHJ5OiB7XG4gICAgZXh0ZXJuYWw/OiBzdHJpbmc7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgc2VjcmV0UmVmPzogc3RyaW5nO1xuICB9O1xuICByZXBsaWNhczogbnVtYmVyO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGNsb3VkOiB7XG4gICAgY29ubmVjdDogYm9vbGVhbjtcbiAgICBjb25uZWN0VHlwZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3RTcGVjIHtcbiAgY2x1c3RlcnM6IFByb2plY3RDbHVzdGVyW107XG4gIHN0YXR1cz86IHtcbiAgICBwaGFzZTogc3RyaW5nO1xuICB9O1xuICBjbHVzdGVyRGVsZXRlUG9saWN5PzogJ0RlbGV0ZScgfCAnUmV0YWluJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0Q2x1c3RlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgcXVvdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHR5cGU/OiAnJyB8ICdGZWRNZW1iZXInO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3QgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiBQcm9qZWN0U3BlYztcbiAgc3RhdHVzPzoge1xuICAgIHBoYXNlOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZU1lc2hHcm91cCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IHtcbiAgICBrOHNWZXJzaW9uOiBzdHJpbmc7XG4gICAgd2l0aG91dElzdGlvPzogYm9vbGVhbjtcbiAgICBpc3Rpb1ZlcnNpb246IHN0cmluZztcbiAgICBwcmltYXJ5OiBzdHJpbmc7XG4gICAgc2VsZWN0b3I6IHtcbiAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICB9O1xuICAgIGNsdXN0ZXJzOiBzdHJpbmdbXTtcbiAgICBtZXNoQ29tbW9uQ29uZmlnPzogTWVzaENvbW1vbkNvbmZpZztcbiAgICBjbHVzdGVyQ29uZmlncz86IHtcbiAgICAgIFtjbHVzdGVyTmFtZTogc3RyaW5nXTogQ2x1c3RlckNvbmZpZztcbiAgICB9O1xuICB9O1xuICBzdGF0dXM6IHtcbiAgICBzdGF0dXM6IHN0cmluZztcbiAgICBNZXNzYWdlOiBzdHJpbmc7XG4gICAgY2x1c3RlckNvdW50OiBudW1iZXI7XG4gICAgbGF0ZXN0VXBkYXRlVGltZTogc3RyaW5nO1xuICAgIE5vblJlYWR5Q2x1c3RlckNvdW50OiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzaENvbW1vbkNvbmZpZyB7XG4gIGVsYXN0aWNzZWFyY2g6IHtcbiAgICBpc0RlZmF1bHQ6IGJvb2xlYW47XG4gICAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIH07XG4gIG1vbml0b3JUeXBlOiBzdHJpbmc7XG4gIHByb21ldGhldXNCYXNpY0F1dGg6IHtcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gIH07XG4gIGlzRGVmYXVsdE1vbml0b3I6IGJvb2xlYW47XG4gIHByb21ldGhldXNVUkw6IHN0cmluZztcbiAgdHJhY2VTYW1wbGluZzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJDb25maWcge1xuICBpc3Rpb1NpZGVjYXI6IHtcbiAgICBjcHVWYWx1ZTogc3RyaW5nO1xuICAgIG1lbW9yeVZhbHVlOiBzdHJpbmc7XG4gIH07XG4gIGthZmthPzoge1xuICAgIGF1dGhlbnRpY2F0aW9uOiBzdHJpbmc7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gIH07XG4gIHJlZGlzPzogUmVkaXNDb25maWc7XG4gIHRyYWNlU2FtcGxpbmc6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWRpc0NvbmZpZyB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGtpbmQ6ICdzaW5nbGUnIHwgJ2NsdXN0ZXInIHwgJ3NlbnRpbmVsJztcbiAgYWRkcmVzczogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICBtYXN0ZXJOYW1lPzogc3RyaW5nO1xufVxuXG4vLyBUS0VcbmV4cG9ydCBpbnRlcmZhY2UgVEtFQ2x1c3RlclNwZWMge1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBzZXJ2aWNlQ0lEUj86IHN0cmluZztcbiAgZG9ja2VyRXh0cmFBcmdzPzogU3RyaW5nTWFwO1xuICBrdWJlbGV0RXh0cmFBcmdzPzogU3RyaW5nTWFwO1xuICBjb250cm9sbGVyTWFuYWdlckV4dHJhQXJncz86IFN0cmluZ01hcDtcbiAgc2NoZWR1bGVyRXh0cmFBcmdzPzogU3RyaW5nTWFwO1xuICBwdWJsaWNBbHRlcm5hdGl2ZU5hbWVzPzogc3RyaW5nW107XG4gIGNsdXN0ZXJDSURSPzogc3RyaW5nO1xuICBuZXR3b3JrRGV2aWNlPzogc3RyaW5nO1xuICBwcm9wZXJ0aWVzPzoge1xuICAgIG1heENsdXN0ZXJTZXJ2aWNlTnVtPzogbnVtYmVyO1xuICAgIG1heE5vZGVQb2ROdW0/OiBudW1iZXI7XG4gICAgb3ZlcnNvbGRSYXRpbz86IHtcbiAgICAgIGNwdTogc3RyaW5nO1xuICAgICAgbWVtb3J5OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgZmVhdHVyZXM/OiB7XG4gICAgZW5hYmxlTWFzdGVyU2NoZWR1bGU/OiBib29sZWFuO1xuICAgIGlwdjZEdWFsU3RhY2s/OiBib29sZWFuO1xuICAgIGZpbGVzPzogQXJyYXk8e1xuICAgICAgc3JjPzogc3RyaW5nO1xuICAgICAgZHN0Pzogc3RyaW5nO1xuICAgIH0+O1xuICAgIGhhPzoge1xuICAgICAgdGhpcmRQYXJ0eT86IHtcbiAgICAgICAgdmlwPzogc3RyaW5nO1xuICAgICAgICB2cG9ydD86IG51bWJlcjtcbiAgICAgIH07XG4gICAgICB0a2U/OiB7XG4gICAgICAgIHZyaWQ/OiB1bmtub3duO1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICB0eXBlOiAnQmFyZW1ldGFsJyB8ICdJbXBvcnRlZCc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIG1hY2hpbmVzPzogVEtFTWFjaGluZVNwZWNbXTtcbiAgZG5zRG9tYWluPzogc3RyaW5nO1xuICBhcGlTZXJ2ZXJFeHRyYUFyZ3M/OiBTdHJpbmdNYXA7XG4gIGNsdXN0ZXJDcmVkZW50aWFsUmVmPzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS0VDbHVzdGVyIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFRLRUNsdXN0ZXJTcGVjO1xuICBzdGF0dXM/OiB7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICBwaGFzZT86IHN0cmluZztcbiAgICBjb25kaXRpb25zPzogQ29uZGl0aW9uW107XG4gICAgYWRkcmVzc2VzPzogQXJyYXk8e1xuICAgICAgaG9zdDogc3RyaW5nO1xuICAgICAgcGF0aD86ICcnO1xuICAgICAgdHlwZTogJ0FkdmVydGlzZScgfCAnUHVibGljJztcbiAgICAgIHBvcnQ6IG51bWJlcjtcbiAgICB9PjtcbiAgICBzZXJ2aWNlQ0lEUj86IHN0cmluZztcbiAgICBub2RlQ0lEUk1hc2tTaXplPzogbnVtYmVyO1xuICAgIGRuc0lQPzogc3RyaW5nO1xuICB9O1xuICBnYXRld2F5Tm9kZT86IE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEtFTWFjaGluZVNwZWMge1xuICBjbHVzdGVyTmFtZT86IHN0cmluZztcbiAgcm9sZT86ICdub2RlJyB8ICdtYXN0ZXInO1xuICBpcD86IHN0cmluZztcbiAgaXB2Nj86IHN0cmluZztcbiAgcHVibGljSVA/OiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuICBuZXR3b3JrRGV2aWNlPzogc3RyaW5nO1xuICBwb3J0OiBudW1iZXI7XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBwcml2YXRlS2V5Pzogc3RyaW5nO1xuICBwYXNzUGhyYXNlPzogc3RyaW5nO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBsYWJlbHM/OiB7XG4gICAgWydudmlkaWEtZGV2aWNlLWVuYWJsZSddPzogc3RyaW5nO1xuICAgIFsnbm9kZS1yb2xlLmt1YmVybmV0ZXMuaW8vY3BhYXMtc3lzdGVtJ10/OiBzdHJpbmc7XG4gIH07XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHByb3h5Pzoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICB9O1xuICBhbm5vdGF0aW9ucz86IFN0cmluZ01hcDtcbiAgdGFpbnRzPzogTm9kZVRhaW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckNyZWRlbnRpYWwgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBjbHVzdGVyTmFtZTogc3RyaW5nO1xuICBjYUNlcnQ6IHN0cmluZztcbiAgdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS0VNYWNoaW5lIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFRLRU1hY2hpbmVTcGVjO1xuICBzdGF0dXM/OiBOb2RlU3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hY2hpbmUgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogTWFjaGluZVNwZWM7XG4gIHN0YXR1cz86IE1hY2hpbmVTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFjaGluZVNwZWMge1xuICBjbHVzdGVyOiBzdHJpbmc7XG4gIHByb3ZpZGVyOiBzdHJpbmc7XG4gIHByb3ZpZGVyU3BlYzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYWNoaW5lU3RhdHVzIHtcbiAgdXNlckRhdGFTZWNyZXQ/OiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgfTtcbiAgbm9kZVJlZj86IHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICB9O1xuICBsYXN0VXBkYXRlOiBzdHJpbmc7XG4gIGVyclJlYXNvbjogc3RyaW5nO1xuICBlcnJNZXNzYWdlOiBzdHJpbmc7XG4gIHBoYXNlOiBzdHJpbmc7XG4gIGNvbmRpdGlvbnM6IENvbmRpdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJWaWV3IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IHZvaWQ7XG4gIHN0YXR1cz86IENsdXN0ZXJWaWV3U3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJWaWV3U3RhdHVzIHtcbiAgcHJvdmlzaW9uVHlwZTogJ1NlbGZIb3N0ZWQnIHwgJ1Byb3ZpZGVySG9zdGVkJyB8ICdJbXBvcnRlZCcgfCAnUmVnaXN0ZXJlZCc7XG4gIGNsdXN0ZXJUeXBlOiBzdHJpbmc7XG4gIHN1cHBvcnRXaW5kb3dzOiBib29sZWFuO1xuICByZWdpc3RyeUFkZHJlc3M6IHN0cmluZztcbiAgY29uZGl0aW9uczogQ29uZGl0aW9uW107XG4gIHByb2plY3RzOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgZGlzcGxheU5hbWU6IHN0cmluZyB9PjtcbiAgY29udHJvbFBsYW5lRW5kcG9pbnRzOiB7XG4gICAgZGVmYXVsdDogc3RyaW5nO1xuICAgIGFkdmVydGlzZTogc3RyaW5nO1xuICAgIHB1YmxpYz86IHN0cmluZztcbiAgfTtcbiAgbm9kZXNJbmZvOiB7XG4gICAgcmVhZHlOb2RlczogbnVtYmVyO1xuICAgIG5vdFJlYWR5Tm9kZXM6IG51bWJlcjtcbiAgICBhcmNoaXRlY3R1cmVzOiBzdHJpbmdbXTtcbiAgICB0b3RhbENQVUNvcmVzOiBudW1iZXI7XG4gICAgdG90YWxNZW1vcmllczogbnVtYmVyO1xuICAgIGNyaVZlcnNpb25zOiBzdHJpbmdbXTtcbiAgICBleHRyYVJlc291cmNlcz86IHsgW2tleTogc3RyaW5nXTogQ2x1c3RlckRldmljZVJlc291cmNlIH07XG4gIH07XG4gIGNsdXN0ZXJOZXR3b3JrOiB7XG4gICAgaGFMb2FkQmFsYW5jZXJUeXBlPzogJ0FsaXZlJyB8ICdUaGlyZFBhcnR5JztcbiAgICBjbmlUeXBlOiBzdHJpbmc7XG4gICAgcHJvdG9jb2xTdGFjazogJ0lQdjQnIHwgJ0lQdjYnIHwgJ0R1YWwtU3RhY2snO1xuICAgIHNlcnZpY2VDSURSczogc3RyaW5nW107XG4gICAgcG9kQ0lEUnM6IHN0cmluZ1tdO1xuICAgIGV4dHJhSW5mbzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICB2cmlkPzogbnVtYmVyO1xuICAgIG1heE5vZGVzPzogbnVtYmVyO1xuICB9O1xuICBtYW5hZ2VkQnk/OiB7XG4gICAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICAgIGVudHJ5cG9pbnQ6IHN0cmluZztcbiAgfTtcbiAgZ3B1UGx1Z2luVHlwZT86ICdWaXJ0dWFsJyB8ICdQaHlzaWNhbCc7XG4gIGhpZ2hBdmFpbGFibGU6IGJvb2xlYW47XG4gIG5lZWRVcGdyYWRlOiBib29sZWFuO1xuICB1cGdyYWRhYmxlOiBib29sZWFuO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIHBoYXNlOiBzdHJpbmc7XG4gIGV4dHJhQXJnczogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG4gIHB1YmxpY0FsdGVybmF0aXZlTmFtZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJEZXZpY2VSZXNvdXJjZSB7XG4gIHZhbHVlOiBudW1iZXI7XG4gIHVuaXQ/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uRW4/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uWmg/OiBzdHJpbmc7XG4gIGxhYmVsRW4/OiBzdHJpbmc7XG4gIGxhYmVsWmg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJOZXR3b3JrU3BlYyB7XG4gIGRlZmF1bHRJbnRlcmZhY2U6IHN0cmluZztcbiAgY3VzdG9tSW50ZXJmYWNlczogQXJyYXk8e1xuICAgIGludGVyZmFjZTogc3RyaW5nO1xuICAgIG5vZGVzOiBzdHJpbmdbXTtcbiAgfT47XG4gIGV4Y2x1ZGVOb2Rlczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJOZXR3b3JrIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYzogUHJvdmlkZXJOZXR3b3JrU3BlYztcbiAgc3RhdHVzPzoge1xuICAgIHJlYWR5OiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBMb2NhbGVEaXNwbGF5ID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RW50cnlTcGVjIHtcbiAgbG9nbz86IHN0cmluZztcbiAgZGlzcGxheU5hbWU/OiBMb2NhbGVEaXNwbGF5O1xuICBkZXNjcmlwdGlvbj86IExvY2FsZURpc3BsYXk7XG4gIGNhdGFsb2c/OiBMb2NhbGVEaXNwbGF5O1xuICBlbnRyeXBvaW50Pzogc3RyaW5nO1xuICBzc29FbmFibGVkPzogYm9vbGVhbjtcbiAgcGFja1R5cGU/OiAnSW50ZWdyYXRlZCcgfCAnQnVpbGRJbicgfCAnQWRtaW5QYWdlJztcbiAgdmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RW50cnlTdGF0dXMge1xuICBoaWRkZW5PblBvcnRhbD86IGJvb2xlYW47XG4gIGhpZGRlbk9uTWVudT86IGJvb2xlYW47XG4gIG9yZGVyT25Qb3J0YWw/OiBudW1iZXI7XG4gIG9yZGVyT25NZW51PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RFbnRyeSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBQcm9kdWN0RW50cnlTcGVjO1xuICBzdGF0dXM/OiBQcm9kdWN0RW50cnlTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdFN0YXR1cyB7XG4gIHR5cGU6XG4gICAgfCAnTm90RGVwbG95ZWQnXG4gICAgfCAnSW5EZXBsb3ltZW50J1xuICAgIHwgJ1J1bm5pbmcnXG4gICAgfCAnRGVwbG95bWVudEZhaWx1cmUnXG4gICAgfCAnUnVubmluZ0Fibm9ybWFsJ1xuICAgIHwgJ0RlbGV0aW5nJ1xuICAgIHwgJ0RlbGV0ZUZhaWx1cmUnXG4gICAgfCAnRGVwbG95bWVudFN1Y2NlZWQnXG4gICAgfCAnU3lzdGVtRXJyb3InXG4gICAgfCAnVXBncmFkaW5nJztcbiAgaWNvbjogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3RDb25kaXRpb24ge1xuICBsYXN0UHJvYmVUaW1lPzogc3RyaW5nO1xuICBsYXN0VHJhbnNpdGlvblRpbWU/OiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgcmVhc29uOiBzdHJpbmc7IC8vIFBlcm1pc3Npb25DaGVja0ZhaWxlZFxuICBzdGF0dXM6ICdUcnVlJyB8ICdGYWxzZSc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAbGluayBodHRwczovL2dpdGxhYi1jZS5hbGF1ZGEuY24vY29udGFpbmVyLXBsYXRmb3JtL2NhcHRhaW4vLS9ibG9iL21hc3Rlci9kb2NzL2NyZC5tZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IEhlbG1SZXF1ZXN0U3BlYztcbiAgc3RhdHVzPzoge1xuICAgIHBoYXNlOiBIZWxtUmVxdWVzdFBoYXNlRW51bTtcbiAgICBub3Rlcz86IHN0cmluZztcbiAgICBsYXN0U3BlY0hhc2g/OiBzdHJpbmc7XG4gICAgcmVhc29uPzogc3RyaW5nO1xuICAgIGNvbmRpdGlvbnM/OiBIZWxtUmVxdWVzdENvbmRpdGlvbltdO1xuICAgIHRhcmdldENsdXN0ZXJTeW5jUmVzdWx0cz86IEhlbG1SZXF1ZXN0Q2x1c3RlclN5bmNSZXN1bHRzO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0Q2x1c3RlclN5bmNSZXN1bHRzIHtcbiAgW2NsdXN0ZXI6IHN0cmluZ106IEhlbG1SZXF1ZXN0Q2x1c3RlclN5bmNSZXN1bHQ7XG59XG5cbmV4cG9ydCBlbnVtIENsb3VkSGVsbVJlcXVlc3RTdGF0ZUVudW0ge1xuICBQZW5kaW5nID0gJ1BlbmRpbmcnLFxuICBSdW5uaW5nID0gJ1J1bm5pbmcnLFxuICBTdG9wcGVkID0gJ1N0b3BwZWQnLFxuICBGYWlsZWQgPSAnRmFpbGVkJyxcbiAgRW1wdHkgPSAnRW1wdHknLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0Q2x1c3RlclN5bmNSZXN1bHQge1xuICBhcHBTdGF0dXM6IENsb3VkSGVsbVJlcXVlc3RTdGF0ZUVudW07XG4gIGVuZHBvaW50OiBzdHJpbmc7XG4gIGxhc3RVcGRhdGVBdDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBoYXNlOiBIZWxtUmVxdWVzdFBoYXNlRW51bTtcbiAgcmVhc29uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIEhlbG1SZXF1ZXN0UGhhc2VFbnVtIHtcbiAgU3luY2VkID0gJ1N5bmNlZCcsXG4gIEZhaWxlZCA9ICdGYWlsZWQnLFxuICBQZW5kaW5nID0gJ1BlbmRpbmcnLFxuICBVbmluc3RhbGxpbmcgPSAnVW5pbnN0YWxsaW5nJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdFNwZWMge1xuICBjaGFydD86IHN0cmluZztcbiAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdmFsdWVzRnJvbT86IEFycmF5PHtcbiAgICBjb25maWdNYXBLZXlSZWY/OiBDb25maWdNYXBLZXlSZWY7XG4gICAgc2VjcmV0S2V5UmVmPzogU2VjcmV0S2V5UmVmO1xuICB9PjtcbiAgY2x1c3Rlck5hbWU/OiBzdHJpbmc7XG4gIG5hbWVzcGFjZT86IHN0cmluZztcbiAgcmVsZWFzZU5hbWU/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHByb2plY3ROYW1lPzogc3RyaW5nO1xuICBzb3VyY2U/OiB7XG4gICAgb2NpPzogSGVsbVJlcXVlc3RPY2k7XG4gICAgaHR0cD86IEhlbG1SZXF1ZXN0SHR0cDtcbiAgfTtcbiAgdGFyZ2V0Q2x1c3RlcnM/OiB7XG4gICAgY2x1c3Rlck5hbWVzOiB7XG4gICAgICBuYW1lczogc3RyaW5nW107XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdE9jaSB7XG4gIHJlcG86IHN0cmluZztcbiAgc2VjcmV0UmVmOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0SHR0cCB7XG4gIHVybDogc3RyaW5nO1xuICBzZWNyZXRSZWY6IHN0cmluZztcbn1cblxuLy8gaHR0cDovL2NvbmZsdWVuY2UuYWxhdWRhdGVjaC5jb20vcGFnZXMvdmlld3BhZ2UuYWN0aW9uP3BhZ2VJZD0zOTMzODM2NiMxLSVFOCU4RSVCNyVFNSU4RiU5NiVFNyU5NCVBOCVFNiU4OCVCNyVFNCVCRiVBMSVFNiU4MSVBRlxuZXhwb3J0IGludGVyZmFjZSBVc2VyIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFVzZXJTcGVjO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJTcGVjIHtcbiAgY29ubmVjdG9yX25hbWU/OiBzdHJpbmc7XG4gIGNvbm5lY3Rvcl90eXBlPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgbWFpbD86IHN0cmluZztcbiAgZ3JvdXBzPzogc3RyaW5nW107XG4gIGlzX2FkbWluPzogYm9vbGVhbjtcbiAgdmFsaWQ/OiBib29sZWFuO1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgb2xkX3Bhc3N3b3JkPzogc3RyaW5nO1xuICBwYXNzd29yZD86IHN0cmluZztcbiAgbGFzdF9sb2dpbl90aW1lPzogc3RyaW5nO1xuICBsb2dpbl9mYWlsdXJlX3RpbWVzPzogbnVtYmVyO1xuICBzdGF0ZT86IFVzZXJTdGF0ZTtcbiAgaXNfZGlzYWJsZWQ/OiBib29sZWFuO1xuICBleHBpcmVkPzoge1xuICAgIGJlZ2luOiBzdHJpbmc7XG4gICAgZW5kOiBzdHJpbmc7XG4gIH07XG4gIG1vYmlsZT86IHN0cmluZztcbiAgd2ViaG9va1R5cGU/OiBXZWJob29rVHlwZTtcbiAgd2ViaG9va1VybD86IHN0cmluZztcbiAgaWRzPzogQXJyYXk8eyB0eXBlOiBzdHJpbmc7IGlkOiBzdHJpbmcgfT47XG59XG5cbmV4cG9ydCBlbnVtIFVzZXJTdGF0ZSB7XG4gIEFDVElWRSA9ICdhY3RpdmUnLFxuICBMT0NLRUQgPSAnbG9ja2VkJyxcbiAgSU5WQUxJRCA9ICdpbnZhbGlkJyxcbiAgREVMRVRFRCA9ICdkZWxldGVkJyxcbn1cblxuZXhwb3J0IHR5cGUgV2ViaG9va1R5cGUgPSAnV2ViaG9vaycgfCAnRGluZ1RhbGsnIHwgJ1dlQ2hhdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckxpc3QgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PFVzZXI+IHtcbiAgdG90YWw6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBodHRwczovL2NvbmZsdWVuY2UuYWxhdWRhLmNuL3BhZ2VzL3ZpZXdwYWdlLmFjdGlvbj9wYWdlSWQ9MTc2ODgzNDcwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckJpbmRpbmcgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogVXNlckJpbmRpbmdTcGVjO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJCaW5kaW5nU3BlYyB7XG4gIHN1YmplY3RzOiBBcnJheTx7XG4gICAga2luZDogJ1VzZXInIHwgJ0dyb3VwJyB8ICdTZXJ2aWNlQWNjb3VudCc7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9PjtcbiAgcm9sZVJlZjogc3RyaW5nO1xuICBzY29wZTogc3RyaW5nOyAvLyDmlK/mjIHnsbvlnotwbGF0Zm9ybSwgY2x1c3RlciwgcHJvamVjdCwgbmFtZXNwYWNlXG4gIGNvbnN0cmFpbnQ6IEFycmF5PHtcbiAgICBwcm9qZWN0Pzogc3RyaW5nO1xuICAgIGNsdXN0ZXI/OiBzdHJpbmc7XG4gICAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyR3JvdXAgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiBVc2VyR3JvdXBTcGVjO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJHcm91cFNwZWMge1xuICByZWZDb25uZWN0b3I/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gIH07XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB1c2Vycz86IEFycmF5PHsgbmFtZTogc3RyaW5nOyBpbXBvcnRUaW1lOiBzdHJpbmcgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm9sZVJ1bGUge1xuICBtb2R1bGU6IHN0cmluZztcbiAgZnVuY3Rpb25SZXNvdXJjZVJlZjogc3RyaW5nO1xuICBmdW5jdGlvbk1ldGFkYXRhTmFtZT86IHN0cmluZztcbiAgdmVyYnM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvbGVDdXN0b21SdWxlIHtcbiAgYXBpR3JvdXA6IHN0cmluZztcbiAgcmVzb3VyY2VzOiBzdHJpbmdbXTtcbiAgdmVyYnM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvbGVUZW1wbGF0ZVNwZWMge1xuICBydWxlcz86IFJvbGVSdWxlW107XG4gIGN1c3RvbVJ1bGVzPzogUm9sZUN1c3RvbVJ1bGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb2xlVGVtcGxhdGUgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogUm9sZVRlbXBsYXRlU3BlYztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUm9sZU5hbWVzcGFjZSB7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBjbHVzdGVyOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJvbGUgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBuYW1lPzogc3RyaW5nO1xuICByb2xlcz86IHN0cmluZ1tdO1xuICBuYW1lc3BhY2VzPzogUmVjb3JkPHN0cmluZywgVXNlclJvbGVOYW1lc3BhY2VbXT47XG59XG5cbmV4cG9ydCBlbnVtIFVzZXJTZWN1cml0eVBvbGljeVJ1bGUge1xuICBQYXNzd29yZFBvbGljeSA9ICdQYXNzd29yZFBvbGljeScsXG4gIFVzZXJMb2NrID0gJ1VzZXJMb2NrZWRQb2xpY3knLFxuICBVc2VyRGlzYWJsZSA9ICdVc2VyRGlzYWJsZWRQb2xpY3knLFxuICBOb3RpZmljYXRpb24gPSAnTm90aWZpY2F0aW9uUG9saWN5JyxcbiAgQWNjZXNzQ29udHJvbCA9ICdBY2Nlc3NDb250cm9sUG9saWN5JyxcbiAgVHdvRkEgPSAnVHdvRmFjdG9yQXV0aGVudGljYXRpb25Qb2xpY3knLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQb2xpY3lSdWxlIHtcbiAgbmFtZTogVXNlclNlY3VyaXR5UG9saWN5UnVsZTtcbiAgaXRlbXM6IEFycmF5PHtcbiAgICBlbmFibGU6IGJvb2xlYW47XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU/OiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQb2xpY3kgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBydWxlczogVXNlclBvbGljeVJ1bGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZHAgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogeyBjb25maWc/OiBMZGFwQ29uZmlnIHwgT2lkY0NvbmZpZyB9O1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICBjb25maWc/OiBzdHJpbmc7XG4gIGxkYXBTeW5jPzoge1xuICAgIHN5bmM6IGJvb2xlYW47XG4gICAgcm9sZXM6IHN0cmluZztcbiAgfTtcbiAgaWRwVmFsaWRhdGlvbj86IHtcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gIH07XG59XG5cbi8vIGh0dHBzOi8vZ29kb2Mub3JnL2dpdGh1Yi5jb20vY29yZW9zL2RleC9jb25uZWN0b3IvbGRhcFxuZXhwb3J0IGludGVyZmFjZSBMZGFwQ29uZmlnIHtcbiAgaG9zdD86IHN0cmluZztcbiAgaW5zZWN1cmVOb1NTTD86IGJvb2xlYW47XG4gIGluc2VjdXJlU2tpcFZlcmlmeT86IGJvb2xlYW47XG4gIHN0YXJ0VExTPzogYm9vbGVhbjtcbiAgcm9vdENBPzogc3RyaW5nO1xuICByb290Q0FEYXRhPzogc3RyaW5nO1xuICBiaW5kRE4/OiBzdHJpbmc7XG4gIGJpbmRQVz86IHN0cmluZztcbiAgY2xpZW50U2VjcmV0UmVmPzogc3RyaW5nO1xuICBsZGFwVHlwZT86IHN0cmluZztcbiAgdXNlcm5hbWVQcm9tcHQ/OiBzdHJpbmc7XG4gIHVzZXJTZWFyY2g/OiBMZGFwVXNlclNlYXJjaDtcbiAgZ3JvdXBTZWFyY2g/OiBMZGFwR3JvdXBTZWFyY2g7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGRhcFVzZXJTZWFyY2gge1xuICBiYXNlRE4/OiBzdHJpbmc7XG4gIGZpbHRlcj86IHN0cmluZztcbiAgc2NvcGU/OiBzdHJpbmc7XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xuICBpZEF0dHI/OiBzdHJpbmc7XG4gIGVtYWlsQXR0cj86IHN0cmluZztcbiAgbmFtZUF0dHI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGRhcEdyb3VwU2VhcmNoIHtcbiAgYmFzZUROPzogc3RyaW5nO1xuICBmaWx0ZXI/OiBzdHJpbmc7XG4gIHNjb3BlPzogc3RyaW5nO1xuICB1c2VyQXR0cj86IHN0cmluZztcbiAgZ3JvdXBBdHRyPzogc3RyaW5nO1xuICBuYW1lQXR0cj86IHN0cmluZztcbn1cblxuLy8gaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9jb3Jlb3MvZGV4L2Nvbm5lY3Rvci9vaWRjXG5leHBvcnQgaW50ZXJmYWNlIE9pZGNDb25maWcge1xuICBpc3N1ZXI/OiBzdHJpbmc7XG4gIGNsaWVudElEPzogc3RyaW5nO1xuICBjbGllbnRTZWNyZXQ/OiBzdHJpbmc7XG4gIGNsaWVudFNlY3JldFJlZj86IHN0cmluZztcbiAgcmVkaXJlY3RVUkk/OiBzdHJpbmc7XG4gIGxvZ291dFVSTD86IHN0cmluZztcbiAgc2NvcGVzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzVG9rZW5JbmZvIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYzoge1xuICAgIHRpbWVzdGFtcDogbnVtYmVyO1xuICAgIGV4cGlyYXRpb246IG51bWJlcjtcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgZW51bSBDaGFydFJlcG9UeXBlIHtcbiAgQ2hhcnQgPSAnQ2hhcnQnLFxuICBHaXQgPSAnR2l0JyxcbiAgT0NJQ2hhcnQgPSAnT0NJIENoYXJ0Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFydFJlcG9TcGVjIHtcbiAgc2VjcmV0Pzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcbiAgdXJsOiBzdHJpbmc7XG4gIHR5cGU/OiBDaGFydFJlcG9UeXBlO1xuICBzb3VyY2U/OiB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgcGF0aDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0UmVwb1N0YXR1cyB7XG4gIHBoYXNlOiBDaGFydFJlcG9QaGFzZUVudW07XG59XG5cbmV4cG9ydCBlbnVtIENoYXJ0UmVwb1BoYXNlRW51bSB7XG4gIFN5bmNlZCA9ICdTeW5jZWQnLFxuICBGYWlsZWQgPSAnRmFpbGVkJyxcbiAgUGVuZGluZyA9ICdQZW5kaW5nJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFydFJlcG9DcmVhdGUgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiBDaGFydFJlcG9DcmVhdGVTcGVjO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0UmVwb0NyZWF0ZVNwZWMge1xuICBzZWNyZXQ/OiBTZWNyZXQ7XG4gIGNoYXJ0UmVwbzogQ2hhcnRSZXBvO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYzoge1xuICAgIGFwcE5hbWU/OiBzdHJpbmc7IC8vIHJlZmVycyB0bzogaHR0cDovL2NvbmZsdWVuY2UuYWxhdWRhLmNuL3BhZ2VzL3ZpZXdwYWdlLmFjdGlvbj9wYWdlSWQ9NTA4MzY3NjMjaWQtW1dJUF1BUEklRTglQUUlQkUlRTglQUUlQTEtQ2hhcnQlRTUlODglOTclRTglQTElQThcbiAgICB2ZXJzaW9ucz86IENoYXJ0VmVyc2lvbltdO1xuICB9O1xufVxuXG5leHBvcnQgZW51bSBDaGFydFVwbG9hZFN0YXR1c0VudW0ge1xuICBVUExPQURfU1VDQ0VFREVEID0gJ3VwbG9hZF9zdWNjZWVkZWQnLFxuICBVUExPQURfRkFJTEVEID0gJ3VwbG9hZF9mYWlsZWQnLFxuICBVUExPQURJTkcgPSAndXBsb2FkaW5nJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFydFZlcnNpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFwaVZlcnNpb246IHN0cmluZztcbiAgYXBwVmVyc2lvbjogc3RyaW5nO1xuICBkZXByZWNhdGVkOiBib29sZWFuO1xuICBjcmVhdGVkOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGRpZ2VzdDogc3RyaW5nO1xuICB1cmxzOiBzdHJpbmdbXTtcbiAgc291cmNlczogc3RyaW5nW107XG4gIHZlcnNpb246IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBob21lOiBzdHJpbmc7XG4gIG1haW50YWluZXJzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gIH0+O1xuICBzdGF0dXM6IENoYXJ0VXBsb2FkU3RhdHVzRW51bTtcbiAgYW5ub3RhdGlvbnM6IFN0cmluZ01hcDtcbn1cblxuLy8gQ2hhcnRSZXBvICYgQ2hhcnQgJiBIZWxtUmVxdWVzdFxuLy8gaHR0cDovL2NvbmZsdWVuY2UuYWxhdWRhdGVjaC5jb20vcGFnZXMvdmlld3BhZ2UuYWN0aW9uP3BhZ2VJZD01MDgzNjc2M1xuZXhwb3J0IGludGVyZmFjZSBDaGFydFJlcG8gZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiBDaGFydFJlcG9TcGVjO1xuICBzdGF0dXM/OiBDaGFydFJlcG9TdGF0dXM7XG59XG4iXX0=
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvdHlwZXMvazhzL2NyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrRkEsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUM3QixpREFBMEIsQ0FBQTtJQUMxQiwwQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQVVYO0FBVkQsV0FBWSxrQkFBa0I7SUFDNUIsa0RBQTRCLENBQUE7SUFDNUIseUNBQW1CLENBQUE7SUFDbkIsMkNBQXFCLENBQUE7SUFDckIsNkNBQXVCLENBQUE7SUFDdkIsb0RBQThCLENBQUE7SUFDOUIsNkNBQXVCLENBQUE7SUFDdkIsc0RBQWdDLENBQUE7SUFDaEMsNkNBQXVCLENBQUE7SUFDdkIseUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVZXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFVN0I7QUErQ0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxNQUFNO0lBQ1osa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxhQUFhO0lBQzNCLGFBQWEsRUFBRSxjQUFjO0NBQ3JCLENBQUM7QUFvYlgsTUFBTSxDQUFOLElBQVkseUJBTVg7QUFORCxXQUFZLHlCQUF5QjtJQUNuQyxnREFBbUIsQ0FBQTtJQUNuQixnREFBbUIsQ0FBQTtJQUNuQixnREFBbUIsQ0FBQTtJQUNuQiw4Q0FBaUIsQ0FBQTtJQUNqQiw0Q0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFOVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBTXBDO0FBV0QsTUFBTSxDQUFOLElBQVksb0JBS1g7QUFMRCxXQUFZLG9CQUFvQjtJQUM5Qix5Q0FBaUIsQ0FBQTtJQUNqQix5Q0FBaUIsQ0FBQTtJQUNqQiwyQ0FBbUIsQ0FBQTtJQUNuQixxREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBTFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUsvQjtBQWdFRCxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLDhCQUFpQixDQUFBO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLGdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxTQUFTLEtBQVQsU0FBUyxRQUtwQjtBQTRFRCxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQ2hDLDJEQUFpQyxDQUFBO0lBQ2pDLHVEQUE2QixDQUFBO0lBQzdCLDREQUFrQyxDQUFBO0lBQ2xDLDZEQUFtQyxDQUFBO0lBQ25DLCtEQUFxQyxDQUFBO0lBQ3JDLGlFQUF1QyxDQUFBO0FBQ3pDLENBQUMsRUFQVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBT2pDO0FBdUZELE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDdkIsZ0NBQWUsQ0FBQTtJQUNmLDRCQUFXLENBQUE7SUFDWCx1Q0FBc0IsQ0FBQTtBQUN4QixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEI7QUFrQkQsTUFBTSxDQUFOLElBQVksa0JBSVg7QUFKRCxXQUFZLGtCQUFrQjtJQUM1Qix1Q0FBaUIsQ0FBQTtJQUNqQix1Q0FBaUIsQ0FBQTtJQUNqQix5Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSlcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUk3QjtBQWtCRCxNQUFNLENBQU4sSUFBWSxxQkFJWDtBQUpELFdBQVkscUJBQXFCO0lBQy9CLDhEQUFxQyxDQUFBO0lBQ3JDLHdEQUErQixDQUFBO0lBQy9CLGdEQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFKVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBSWhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsdWVPZiB9IGZyb20gJ3RzLWVzc2VudGlhbHMnO1xuXG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi9jb21tb25zJztcblxuaW1wb3J0IHtcbiAgQ29uZGl0aW9uLFxuICBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIEt1YmVybmV0ZXNSZXNvdXJjZUxpc3QsXG4gIE9iamVjdE1ldGEsXG59IGZyb20gJy4vY29yZSc7XG5pbXBvcnQge1xuICBDb25maWdNYXBLZXlSZWYsXG4gIE5vZGUsXG4gIE5vZGVTdGF0dXMsXG4gIE5vZGVUYWludCxcbiAgU2VjcmV0LFxuICBTZWNyZXRLZXlSZWYsXG59IGZyb20gJy4vcmF3JztcblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyU3BlYyB7XG4gIGF1dGhJbmZvPzoge1xuICAgIGNvbnRyb2xsZXI6IHtcbiAgICAgIGtpbmQ6IHN0cmluZztcbiAgICAgIG5hbWVzcGFjZTogc3RyaW5nO1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGt1YmVybmV0ZXNBcGlFbmRwb2ludHM/OiB7XG4gICAgY2FCdW5kbGU/OiBzdHJpbmc7XG4gICAgc2VydmVyRW5kcG9pbnRzOiBBcnJheTx7XG4gICAgICBjbGllbnRDSURSOiBzdHJpbmc7XG4gICAgICBzZXJ2ZXJBZGRyZXNzOiBzdHJpbmc7XG4gICAgfT47XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIENsdXN0ZXJTdGF0dXNSZWFzb24gPVxuICB8ICdUaW1lb3V0J1xuICB8ICdGb3JiaWRkZW4nXG4gIHwgJ1VuYXV0aG9yaXplZCdcbiAgfCAnU29tZUNvbXBvbmVudHNVbmhlYWx0aHknXG4gIHwgJ1NvbWVOb2Rlc05vdFJlYWR5JztcblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyU3RhdHVzQ29uZGl0aW9uIGV4dGVuZHMgQ29uZGl0aW9uIHtcbiAgbGFzdFRyYW5zaXRpb25UaW1lOiBzdHJpbmc7XG4gIHR5cGU6XG4gICAgfCAnTm90UmVhY2hhYmxlJ1xuICAgIHwgJ05vdEFjY2Vzc2libGUnXG4gICAgfCAnQ29tcG9uZW50Tm90SGVhbHRoeSdcbiAgICB8ICdOb2RlTm90UmVhZHknO1xuICBzdGF0dXM6ICdUcnVlJyB8ICdGYWxzZSc7XG4gIHJlYXNvbjogQ2x1c3RlclN0YXR1c1JlYXNvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyU3RhdHVzIHtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBjb25kaXRpb25zOiBDbHVzdGVyU3RhdHVzQ29uZGl0aW9uW107XG59XG5cbi8vIGNsdXN0ZXJzLmNsdXN0ZXJyZWdpc3RyeS5rOHMuaW8g55qE57G75Z6L5a6a5LmJXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXIgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBtZXRhZGF0YT86IE9iamVjdE1ldGEgJiB7XG4gICAgZmluYWxpemVycz86IHN0cmluZ1tdO1xuICB9O1xuICBzcGVjPzogQ2x1c3RlclNwZWM7XG4gIHN0YXR1cz86IENsdXN0ZXJTdGF0dXM7XG4gIGRldGFpbHM/OiB7XG4gICAgZ3JvdXA6IHN0cmluZztcbiAgICBraW5kOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHVpZDogc3RyaW5nO1xuICB9O1xufVxuXG4vLyBBbGF1ZGEgUHJvZHVjdFxuZXhwb3J0IGludGVyZmFjZSBBbGF1ZGFQcm9kdWN0U3RhdHVzIGV4dGVuZHMgQ29uZGl0aW9uIHtcbiAgZGVwbG95U3RhdHVzPzogQWxhdWRhRGVwbG95U3RhdHVzO1xuICBydW5uaW5nU3RhdHVzPzogQWxhdWRhUnVubmluZ1N0YXR1cztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkZXBsb3lUaW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBBbGF1ZGFSdW5uaW5nU3RhdHVzIHtcbiAgTk9UX1JVTk5JTkcgPSAnTm90UnVubmluZycsXG4gIEhFQUxUSFkgPSAnSGVhbHRoeScsXG4gIEFCTk9STUFMID0gJ0Fibm9ybWFsJyxcbn1cblxuZXhwb3J0IGVudW0gQWxhdWRhRGVwbG95U3RhdHVzIHtcbiAgTk9UX0RFUExPWUVEID0gJ05vdERlcGxveWVkJyxcbiAgU1VDQ0VTUyA9ICdzdWNjZXNzJyxcbiAgQUJOT1JNQUwgPSAnQWJub3JtYWwnLFxuICBERVBMT1lJTkcgPSAnRGVwbG95aW5nJyxcbiAgREVQTE9ZX0ZBSUxFRCA9ICdEZXBsb3lGYWlsZWQnLFxuICBVUEdSQURJTkcgPSAnVXBncmFkaW5nJyxcbiAgVVBHUkFERV9GQUlMRUQgPSAnVXBncmFkZUZhaWxlZCcsXG4gIENPTVBMRVRFRCA9ICdDb21wbGV0ZWQnLFxuICBQRU5ESU5HID0gJ1BlbmRpbmcnLFxufVxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0QmFzZSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IFByb2R1Y3RCYXNlU3BlYztcbiAgc3RhdHVzPzogUHJvZHVjdEJhc2VTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdFN0YXR1c0NvbmRpdGlvbiB7XG4gIHN0YXR1cz86ICdUcnVlJyB8ICdGYWxzZScgfCAnVW5rbm93bic7XG4gIHJlYXNvbj86IHN0cmluZztcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgdHlwZTogJ1JlYWR5JyB8ICdJbml0aWFsaXplZCcgfCAnUmVjbGFpbWVkJyB8ICdTdWNjZWVkJztcbiAgbGFzdFRyYW5zaXRpb25UaW1lPzogc3RyaW5nO1xuICBsYXN0SGVhcnRiZWF0VGltZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0QmFzZVN0YXR1cyB7XG4gIGdsb2JhbElEOiBzdHJpbmc7XG4gIGNsb3VkOiB7XG4gICAgcGhhc2U6ICdPTkxpbmUnIHwgJ0Nvbm5lY3RGYWlsZWQnIHwgJ0Nvbm5lY3RpbmcnIHwgJ09GRkxpbmUnO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBjb25uZWN0VVJMOiBzdHJpbmc7XG4gIH07XG4gIHZlcnNpb246IHN0cmluZztcbiAgcGhhc2U/OlxuICAgIHwgJ1BlbmRpbmcnXG4gICAgfCAnUHJvdmlzaW9uaW5nJ1xuICAgIHwgJ1Byb3Zpc2lvbmVkJ1xuICAgIHwgJ0RlbGV0aW5nJ1xuICAgIHwgJ0ZhaWxlZCdcbiAgICB8ICdSdW5uaW5nJ1xuICAgIHwgJ0luc3RhbGxpbmcnIC8vIHRkc3FsXG4gICAgfCAnVXBncmFkaW5nJztcbiAgcHJvZHVjdEVudHJ5cG9pbnQ/OiBzdHJpbmc7XG4gIGRlbGV0YWJsZT86IGJvb2xlYW47XG4gIGNvbmRpdGlvbnM/OiBQcm9kdWN0U3RhdHVzQ29uZGl0aW9uW107XG4gIHByb21ldGhldXNBZGRyZXNzPzogc3RyaW5nO1xuICBlbGFzdGljU2VhcmNoQWRkcmVzcz86IHN0cmluZztcbiAga2Fma2FBZGRyZXNzPzogc3RyaW5nO1xuICBjb250YWluZXJQbGF0Zm9ybT86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIGRldm9wcz86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIHNlcnZpY2VNZXNoPzogQWxhdWRhUHJvZHVjdFN0YXR1cztcbiAgZGF0YVNlcnZpY2VzPzogQWxhdWRhUHJvZHVjdFN0YXR1cztcbiAgYmFzZT86IEFsYXVkYVByb2R1Y3RTdGF0dXM7XG4gIHByb2dyZXNzPzogbnVtYmVyO1xuICByZXBsaWNhcz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFByb2R1Y3RLZXkgPSB7XG4gIEJBU0U6ICdiYXNlJyxcbiAgQ09OVEFJTkVSX1BMQVRGT1JNOiAnY29udGFpbmVyUGxhdGZvcm0nLFxuICBERVZPUFM6ICdkZXZvcHMnLFxuICBTRVJWSUNFX01FU0g6ICdzZXJ2aWNlTWVzaCcsXG4gIERBVEFfU0VSVklDRVM6ICdkYXRhU2VydmljZXMnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUHJvZHVjdEtleSA9IFZhbHVlT2Y8dHlwZW9mIFByb2R1Y3RLZXk+O1xuXG50eXBlIEdlblByb2R1Y3Q8VCBleHRlbmRzIFByb2R1Y3RLZXk+ID0gUmVjb3JkPFQsIHsgaW5zdGFsbDogYm9vbGVhbiB9PjtcblxuZXhwb3J0IGludGVyZmFjZSBUbHMge1xuICBzZWNyZXRSZWY6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEJhc2VTcGVjIGV4dGVuZHMgR2VuUHJvZHVjdDxQcm9kdWN0S2V5PiB7XG4gIGFsdGVybmF0aXZlVVJMczogc3RyaW5nW107XG4gIGNoYXJ0TXVzZXVtOiB7XG4gICAgdXJsOiBzdHJpbmc7XG4gIH07XG4gIHBhY2thZ2VFZGl0aW9uOiBzdHJpbmc7XG4gIHZhbHVlc092ZXJyaWRlPzoge1xuICAgIGRleDogU3RyaW5nTWFwO1xuICB9O1xuICBjaGFydFZlcnNpb25zOiBbeyBuYW1lOiBzdHJpbmc7IHZlcnNpb246IHN0cmluZyB9XTtcbiAgZGVmYXVsdEFkbWluOiB7XG4gICAgYWNjb3VudDogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgfTtcbiAgZGVmYXVsdFJlZGlyZWN0UGF0aDogc3RyaW5nO1xuICBkZXBsb3lUeXBlOiBzdHJpbmc7XG4gIGVsYXN0aWNzZWFyY2g6IHtcbiAgICBpbnN0YWxsOiBib29sZWFuO1xuICAgIG5vZGVzOiBzdHJpbmdbXTtcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICB9O1xuICBodHRwOiB7XG4gICAgZm9yY2VSZWRpcmVjdEh0dHBzPzogYm9vbGVhbjtcbiAgICBodHRwUG9ydD86IG51bWJlcjtcbiAgICBodHRwc1BvcnQ/OiBudW1iZXI7XG4gICAgdGxzPzogVGxzO1xuICB9O1xuICBpbmdyZXNzOiB7XG4gICAgY29udHJvbGxlcjogeyBpbnN0YWxsOiBib29sZWFuOyBub2Rlczogc3RyaW5nW10gfTtcbiAgICBob3N0OiBzdHJpbmc7XG4gICAgaW5ncmVzc0NsYXNzTmFtZTogc3RyaW5nO1xuICB9O1xuICBrYWZrYToge1xuICAgIGF1dGg6IGJvb2xlYW47XG4gICAgaW5zdGFsbDogYm9vbGVhbjtcbiAgICBub2Rlczogc3RyaW5nW107XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgfTtcbiAgbG9nQWdlbnQ6IHtcbiAgICBlbmFibGU6IGJvb2xlYW47XG4gIH07XG4gIGxvZ0NlbnRlcjoge1xuICAgIGVuYWJsZTogYm9vbGVhbjtcbiAgfTtcbiAgcGxhdGZvcm1VUkw6IHN0cmluZztcbiAgcHJvbWV0aGV1czoge1xuICAgIGluc3RhbGw6IGJvb2xlYW47XG4gICAgcmVwbGljYXM6IG51bWJlcjtcbiAgICBzdG9yYWdlOiB7IGNhcGFjaXR5OiBudW1iZXI7IG5vZGVzOiBzdHJpbmdbXTsgcGF0aDogc3RyaW5nOyB0eXBlOiBzdHJpbmcgfTtcbiAgfTtcbiAgcmVnaXN0cnk6IHtcbiAgICBleHRlcm5hbD86IHN0cmluZztcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICBzZWNyZXRSZWY/OiBzdHJpbmc7XG4gIH07XG4gIHJlcGxpY2FzOiBudW1iZXI7XG4gIHZlcnNpb246IHN0cmluZztcbiAgY2xvdWQ6IHtcbiAgICBjb25uZWN0OiBib29sZWFuO1xuICAgIGNvbm5lY3RUeXBlOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdFNwZWMge1xuICBjbHVzdGVyczogUHJvamVjdENsdXN0ZXJbXTtcbiAgc3RhdHVzPzoge1xuICAgIHBoYXNlOiBzdHJpbmc7XG4gIH07XG4gIGNsdXN0ZXJEZWxldGVQb2xpY3k/OiAnRGVsZXRlJyB8ICdSZXRhaW4nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3RDbHVzdGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICBxdW90YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgdHlwZT86ICcnIHwgJ0ZlZE1lbWJlcic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IFByb2plY3RTcGVjO1xuICBzdGF0dXM/OiB7XG4gICAgcGhhc2U6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlTWVzaEdyb3VwIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYzoge1xuICAgIGs4c1ZlcnNpb246IHN0cmluZztcbiAgICB3aXRob3V0SXN0aW8/OiBib29sZWFuO1xuICAgIGlzdGlvVmVyc2lvbjogc3RyaW5nO1xuICAgIHByaW1hcnk6IHN0cmluZztcbiAgICBzZWxlY3Rvcjoge1xuICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgIH07XG4gICAgY2x1c3RlcnM6IHN0cmluZ1tdO1xuICAgIG1lc2hDb21tb25Db25maWc/OiBNZXNoQ29tbW9uQ29uZmlnO1xuICAgIGNsdXN0ZXJDb25maWdzPzoge1xuICAgICAgW2NsdXN0ZXJOYW1lOiBzdHJpbmddOiBDbHVzdGVyQ29uZmlnO1xuICAgIH07XG4gIH07XG4gIHN0YXR1czoge1xuICAgIHN0YXR1czogc3RyaW5nO1xuICAgIE1lc3NhZ2U6IHN0cmluZztcbiAgICBjbHVzdGVyQ291bnQ6IG51bWJlcjtcbiAgICBsYXRlc3RVcGRhdGVUaW1lOiBzdHJpbmc7XG4gICAgTm9uUmVhZHlDbHVzdGVyQ291bnQ6IG51bWJlcjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNoQ29tbW9uQ29uZmlnIHtcbiAgZWxhc3RpY3NlYXJjaDoge1xuICAgIGlzRGVmYXVsdDogYm9vbGVhbjtcbiAgICBwYXNzd29yZD86IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgICB1c2VybmFtZT86IHN0cmluZztcbiAgfTtcbiAgbW9uaXRvclR5cGU6IHN0cmluZztcbiAgcHJvbWV0aGV1c0Jhc2ljQXV0aDoge1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgfTtcbiAgaXNEZWZhdWx0TW9uaXRvcjogYm9vbGVhbjtcbiAgcHJvbWV0aGV1c1VSTDogc3RyaW5nO1xuICB0cmFjZVNhbXBsaW5nOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckNvbmZpZyB7XG4gIGlzdGlvU2lkZWNhcjoge1xuICAgIGNwdVZhbHVlOiBzdHJpbmc7XG4gICAgbWVtb3J5VmFsdWU6IHN0cmluZztcbiAgfTtcbiAga2Fma2E/OiB7XG4gICAgYXV0aGVudGljYXRpb246IHN0cmluZztcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgfTtcbiAgcmVkaXM/OiBSZWRpc0NvbmZpZztcbiAgdHJhY2VTYW1wbGluZzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZGlzQ29uZmlnIHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAga2luZDogJ3NpbmdsZScgfCAnY2x1c3RlcicgfCAnc2VudGluZWwnO1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG4gIG1hc3Rlck5hbWU/OiBzdHJpbmc7XG59XG5cbi8vIFRLRVxuZXhwb3J0IGludGVyZmFjZSBUS0VDbHVzdGVyU3BlYyB7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIHNlcnZpY2VDSURSPzogc3RyaW5nO1xuICBkb2NrZXJFeHRyYUFyZ3M/OiBTdHJpbmdNYXA7XG4gIGt1YmVsZXRFeHRyYUFyZ3M/OiBTdHJpbmdNYXA7XG4gIGNvbnRyb2xsZXJNYW5hZ2VyRXh0cmFBcmdzPzogU3RyaW5nTWFwO1xuICBzY2hlZHVsZXJFeHRyYUFyZ3M/OiBTdHJpbmdNYXA7XG4gIHB1YmxpY0FsdGVybmF0aXZlTmFtZXM/OiBzdHJpbmdbXTtcbiAgY2x1c3RlckNJRFI/OiBzdHJpbmc7XG4gIG5ldHdvcmtEZXZpY2U/OiBzdHJpbmc7XG4gIHByb3BlcnRpZXM/OiB7XG4gICAgbWF4Q2x1c3RlclNlcnZpY2VOdW0/OiBudW1iZXI7XG4gICAgbWF4Tm9kZVBvZE51bT86IG51bWJlcjtcbiAgICBvdmVyc29sZFJhdGlvPzoge1xuICAgICAgY3B1OiBzdHJpbmc7XG4gICAgICBtZW1vcnk6IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBmZWF0dXJlcz86IHtcbiAgICBlbmFibGVNYXN0ZXJTY2hlZHVsZT86IGJvb2xlYW47XG4gICAgaXB2NkR1YWxTdGFjaz86IGJvb2xlYW47XG4gICAgZmlsZXM/OiBBcnJheTx7XG4gICAgICBzcmM/OiBzdHJpbmc7XG4gICAgICBkc3Q/OiBzdHJpbmc7XG4gICAgfT47XG4gICAgaGE/OiB7XG4gICAgICB0aGlyZFBhcnR5Pzoge1xuICAgICAgICB2aXA/OiBzdHJpbmc7XG4gICAgICAgIHZwb3J0PzogbnVtYmVyO1xuICAgICAgfTtcbiAgICAgIHRrZT86IHtcbiAgICAgICAgdnJpZD86IHVua25vd247XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIHR5cGU6ICdCYXJlbWV0YWwnIHwgJ0ltcG9ydGVkJztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgbWFjaGluZXM/OiBUS0VNYWNoaW5lU3BlY1tdO1xuICBkbnNEb21haW4/OiBzdHJpbmc7XG4gIGFwaVNlcnZlckV4dHJhQXJncz86IFN0cmluZ01hcDtcbiAgY2x1c3RlckNyZWRlbnRpYWxSZWY/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLRUNsdXN0ZXIgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogVEtFQ2x1c3RlclNwZWM7XG4gIHN0YXR1cz86IHtcbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICAgIHBoYXNlPzogc3RyaW5nO1xuICAgIGNvbmRpdGlvbnM/OiBDb25kaXRpb25bXTtcbiAgICBhZGRyZXNzZXM/OiBBcnJheTx7XG4gICAgICBob3N0OiBzdHJpbmc7XG4gICAgICBwYXRoPzogJyc7XG4gICAgICB0eXBlOiAnQWR2ZXJ0aXNlJyB8ICdQdWJsaWMnO1xuICAgICAgcG9ydDogbnVtYmVyO1xuICAgIH0+O1xuICAgIHNlcnZpY2VDSURSPzogc3RyaW5nO1xuICAgIG5vZGVDSURSTWFza1NpemU/OiBudW1iZXI7XG4gICAgZG5zSVA/OiBzdHJpbmc7XG4gIH07XG4gIGdhdGV3YXlOb2RlPzogTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUS0VNYWNoaW5lU3BlYyB7XG4gIGNsdXN0ZXJOYW1lPzogc3RyaW5nO1xuICByb2xlPzogJ25vZGUnIHwgJ21hc3Rlcic7XG4gIGlwPzogc3RyaW5nO1xuICBpcHY2Pzogc3RyaW5nO1xuICBwdWJsaWNJUD86IHN0cmluZztcbiAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gIG5ldHdvcmtEZXZpY2U/OiBzdHJpbmc7XG4gIHBvcnQ6IG51bWJlcjtcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHByaXZhdGVLZXk/OiBzdHJpbmc7XG4gIHBhc3NQaHJhc2U/OiBzdHJpbmc7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIGxhYmVscz86IHtcbiAgICBbJ252aWRpYS1kZXZpY2UtZW5hYmxlJ10/OiBzdHJpbmc7XG4gICAgWydub2RlLXJvbGUua3ViZXJuZXRlcy5pby9jcGFhcy1zeXN0ZW0nXT86IHN0cmluZztcbiAgfTtcbiAgdHlwZT86IHN0cmluZztcbiAgcHJveHk/OiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gIH07XG4gIGFubm90YXRpb25zPzogU3RyaW5nTWFwO1xuICB0YWludHM/OiBOb2RlVGFpbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyQ3JlZGVudGlhbCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG4gIGNhQ2VydDogc3RyaW5nO1xuICB0b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRLRU1hY2hpbmUgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogVEtFTWFjaGluZVNwZWM7XG4gIHN0YXR1cz86IE5vZGVTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFjaGluZSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBNYWNoaW5lU3BlYztcbiAgc3RhdHVzPzogTWFjaGluZVN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYWNoaW5lU3BlYyB7XG4gIGNsdXN0ZXI6IHN0cmluZztcbiAgcHJvdmlkZXI6IHN0cmluZztcbiAgcHJvdmlkZXJTcGVjOiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hY2hpbmVTdGF0dXMge1xuICB1c2VyRGF0YVNlY3JldD86IHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICB9O1xuICBub2RlUmVmPzoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gIH07XG4gIGxhc3RVcGRhdGU6IHN0cmluZztcbiAgZXJyUmVhc29uOiBzdHJpbmc7XG4gIGVyck1lc3NhZ2U6IHN0cmluZztcbiAgcGhhc2U6IHN0cmluZztcbiAgY29uZGl0aW9uczogQ29uZGl0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclZpZXcgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogdm9pZDtcbiAgc3RhdHVzPzogQ2x1c3RlclZpZXdTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclZpZXdTdGF0dXMge1xuICBwcm92aXNpb25UeXBlOiAnU2VsZkhvc3RlZCcgfCAnUHJvdmlkZXJIb3N0ZWQnIHwgJ0ltcG9ydGVkJyB8ICdSZWdpc3RlcmVkJztcbiAgY2x1c3RlclR5cGU6IHN0cmluZztcbiAgc3VwcG9ydFdpbmRvd3M6IGJvb2xlYW47XG4gIHJlZ2lzdHJ5QWRkcmVzczogc3RyaW5nO1xuICBjb25kaXRpb25zOiBDb25kaXRpb25bXTtcbiAgcHJvamVjdHM6IEFycmF5PHsgbmFtZTogc3RyaW5nOyBkaXNwbGF5TmFtZTogc3RyaW5nIH0+O1xuICBjb250cm9sUGxhbmVFbmRwb2ludHM6IHtcbiAgICBkZWZhdWx0OiBzdHJpbmc7XG4gICAgYWR2ZXJ0aXNlOiBzdHJpbmc7XG4gICAgcHVibGljPzogc3RyaW5nO1xuICB9O1xuICBub2Rlc0luZm86IHtcbiAgICByZWFkeU5vZGVzOiBudW1iZXI7XG4gICAgbm90UmVhZHlOb2RlczogbnVtYmVyO1xuICAgIGFyY2hpdGVjdHVyZXM6IHN0cmluZ1tdO1xuICAgIHRvdGFsQ1BVQ29yZXM6IG51bWJlcjtcbiAgICB0b3RhbE1lbW9yaWVzOiBudW1iZXI7XG4gICAgY3JpVmVyc2lvbnM6IHN0cmluZ1tdO1xuICAgIGV4dHJhUmVzb3VyY2VzPzogeyBba2V5OiBzdHJpbmddOiBDbHVzdGVyRGV2aWNlUmVzb3VyY2UgfTtcbiAgfTtcbiAgY2x1c3Rlck5ldHdvcms6IHtcbiAgICBoYUxvYWRCYWxhbmNlclR5cGU/OiAnQWxpdmUnIHwgJ1RoaXJkUGFydHknO1xuICAgIGNuaVR5cGU6IHN0cmluZztcbiAgICBwcm90b2NvbFN0YWNrOiAnSVB2NCcgfCAnSVB2NicgfCAnRHVhbC1TdGFjayc7XG4gICAgc2VydmljZUNJRFJzOiBzdHJpbmdbXTtcbiAgICBwb2RDSURSczogc3RyaW5nW107XG4gICAgZXh0cmFJbmZvOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHZyaWQ/OiBudW1iZXI7XG4gICAgbWF4Tm9kZXM/OiBudW1iZXI7XG4gIH07XG4gIG1hbmFnZWRCeT86IHtcbiAgICBwbHVnaW5OYW1lOiBzdHJpbmc7XG4gICAgZW50cnlwb2ludDogc3RyaW5nO1xuICB9O1xuICBncHVQbHVnaW5UeXBlPzogJ1ZpcnR1YWwnIHwgJ1BoeXNpY2FsJztcbiAgaGlnaEF2YWlsYWJsZTogYm9vbGVhbjtcbiAgbmVlZFVwZ3JhZGU6IGJvb2xlYW47XG4gIHVwZ3JhZGFibGU6IGJvb2xlYW47XG4gIHZlcnNpb246IHN0cmluZztcbiAgcGhhc2U6IHN0cmluZztcbiAgZXh0cmFBcmdzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcbiAgcHVibGljQWx0ZXJuYXRpdmVOYW1lczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckRldmljZVJlc291cmNlIHtcbiAgdmFsdWU6IG51bWJlcjtcbiAgdW5pdD86IHN0cmluZztcbiAgZGVzY3JpcHRpb25Fbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb25aaD86IHN0cmluZztcbiAgbGFiZWxFbj86IHN0cmluZztcbiAgbGFiZWxaaD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlck5ldHdvcmtTcGVjIHtcbiAgZGVmYXVsdEludGVyZmFjZTogc3RyaW5nO1xuICBjdXN0b21JbnRlcmZhY2VzOiBBcnJheTx7XG4gICAgaW50ZXJmYWNlOiBzdHJpbmc7XG4gICAgbm9kZXM6IHN0cmluZ1tdO1xuICB9PjtcbiAgZXhjbHVkZU5vZGVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlck5ldHdvcmsgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiBQcm92aWRlck5ldHdvcmtTcGVjO1xuICBzdGF0dXM/OiB7XG4gICAgcmVhZHk6IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIExvY2FsZURpc3BsYXkgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RFbnRyeVNwZWMge1xuICBsb2dvPzogc3RyaW5nO1xuICBkaXNwbGF5TmFtZT86IExvY2FsZURpc3BsYXk7XG4gIGRlc2NyaXB0aW9uPzogTG9jYWxlRGlzcGxheTtcbiAgY2F0YWxvZz86IExvY2FsZURpc3BsYXk7XG4gIGVudHJ5cG9pbnQ/OiBzdHJpbmc7XG4gIHNzb0VuYWJsZWQ/OiBib29sZWFuO1xuICBwYWNrVHlwZT86ICdJbnRlZ3JhdGVkJyB8ICdCdWlsZEluJyB8ICdBZG1pblBhZ2UnO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RFbnRyeVN0YXR1cyB7XG4gIGhpZGRlbk9uUG9ydGFsPzogYm9vbGVhbjtcbiAgaGlkZGVuT25NZW51PzogYm9vbGVhbjtcbiAgb3JkZXJPblBvcnRhbD86IG51bWJlcjtcbiAgb3JkZXJPbk1lbnU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEVudHJ5IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFByb2R1Y3RFbnRyeVNwZWM7XG4gIHN0YXR1cz86IFByb2R1Y3RFbnRyeVN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0U3RhdHVzIHtcbiAgdHlwZTpcbiAgICB8ICdOb3REZXBsb3llZCdcbiAgICB8ICdJbkRlcGxveW1lbnQnXG4gICAgfCAnUnVubmluZydcbiAgICB8ICdEZXBsb3ltZW50RmFpbHVyZSdcbiAgICB8ICdSdW5uaW5nQWJub3JtYWwnXG4gICAgfCAnRGVsZXRpbmcnXG4gICAgfCAnRGVsZXRlRmFpbHVyZSdcbiAgICB8ICdEZXBsb3ltZW50U3VjY2VlZCdcbiAgICB8ICdTeXN0ZW1FcnJvcidcbiAgICB8ICdVcGdyYWRpbmcnO1xuICBpY29uOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZWxtUmVxdWVzdENvbmRpdGlvbiB7XG4gIGxhc3RQcm9iZVRpbWU/OiBzdHJpbmc7XG4gIGxhc3RUcmFuc2l0aW9uVGltZT86IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICByZWFzb246IHN0cmluZzsgLy8gUGVybWlzc2lvbkNoZWNrRmFpbGVkXG4gIHN0YXR1czogJ1RydWUnIHwgJ0ZhbHNlJztcbiAgdHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0bGFiLWNlLmFsYXVkYS5jbi9jb250YWluZXItcGxhdGZvcm0vY2FwdGFpbi8tL2Jsb2IvbWFzdGVyL2RvY3MvY3JkLm1kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3QgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogSGVsbVJlcXVlc3RTcGVjO1xuICBzdGF0dXM/OiB7XG4gICAgcGhhc2U6IEhlbG1SZXF1ZXN0UGhhc2VFbnVtO1xuICAgIG5vdGVzPzogc3RyaW5nO1xuICAgIGxhc3RTcGVjSGFzaD86IHN0cmluZztcbiAgICByZWFzb24/OiBzdHJpbmc7XG4gICAgY29uZGl0aW9ucz86IEhlbG1SZXF1ZXN0Q29uZGl0aW9uW107XG4gICAgdGFyZ2V0Q2x1c3RlclN5bmNSZXN1bHRzPzogSGVsbVJlcXVlc3RDbHVzdGVyU3luY1Jlc3VsdHM7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3RDbHVzdGVyU3luY1Jlc3VsdHMge1xuICBbY2x1c3Rlcjogc3RyaW5nXTogSGVsbVJlcXVlc3RDbHVzdGVyU3luY1Jlc3VsdDtcbn1cblxuZXhwb3J0IGVudW0gQ2xvdWRIZWxtUmVxdWVzdFN0YXRlRW51bSB7XG4gIFBlbmRpbmcgPSAnUGVuZGluZycsXG4gIFJ1bm5pbmcgPSAnUnVubmluZycsXG4gIFN0b3BwZWQgPSAnU3RvcHBlZCcsXG4gIEZhaWxlZCA9ICdGYWlsZWQnLFxuICBFbXB0eSA9ICdFbXB0eScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3RDbHVzdGVyU3luY1Jlc3VsdCB7XG4gIGFwcFN0YXR1czogQ2xvdWRIZWxtUmVxdWVzdFN0YXRlRW51bTtcbiAgZW5kcG9pbnQ6IHN0cmluZztcbiAgbGFzdFVwZGF0ZUF0OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgcGhhc2U6IEhlbG1SZXF1ZXN0UGhhc2VFbnVtO1xuICByZWFzb246IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gSGVsbVJlcXVlc3RQaGFzZUVudW0ge1xuICBTeW5jZWQgPSAnU3luY2VkJyxcbiAgRmFpbGVkID0gJ0ZhaWxlZCcsXG4gIFBlbmRpbmcgPSAnUGVuZGluZycsXG4gIFVuaW5zdGFsbGluZyA9ICdVbmluc3RhbGxpbmcnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0U3BlYyB7XG4gIGNoYXJ0Pzogc3RyaW5nO1xuICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB2YWx1ZXNGcm9tPzogQXJyYXk8e1xuICAgIGNvbmZpZ01hcEtleVJlZj86IENvbmZpZ01hcEtleVJlZjtcbiAgICBzZWNyZXRLZXlSZWY/OiBTZWNyZXRLZXlSZWY7XG4gIH0+O1xuICBjbHVzdGVyTmFtZT86IHN0cmluZztcbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICByZWxlYXNlTmFtZT86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgcHJvamVjdE5hbWU/OiBzdHJpbmc7XG4gIHNvdXJjZT86IHtcbiAgICBvY2k/OiBIZWxtUmVxdWVzdE9jaTtcbiAgICBodHRwPzogSGVsbVJlcXVlc3RIdHRwO1xuICB9O1xuICB0YXJnZXRDbHVzdGVycz86IHtcbiAgICBjbHVzdGVyTmFtZXM6IHtcbiAgICAgIG5hbWVzOiBzdHJpbmdbXTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlbG1SZXF1ZXN0T2NpIHtcbiAgcmVwbzogc3RyaW5nO1xuICBzZWNyZXRSZWY6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbVJlcXVlc3RIdHRwIHtcbiAgdXJsOiBzdHJpbmc7XG4gIHNlY3JldFJlZjogc3RyaW5nO1xufVxuXG4vLyBodHRwOi8vY29uZmx1ZW5jZS5hbGF1ZGF0ZWNoLmNvbS9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTM5MzM4MzY2IzEtJUU4JThFJUI3JUU1JThGJTk2JUU3JTk0JUE4JUU2JTg4JUI3JUU0JUJGJUExJUU2JTgxJUFGXG5leHBvcnQgaW50ZXJmYWNlIFVzZXIgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogVXNlclNwZWM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclNwZWMge1xuICBjb25uZWN0b3JfbmFtZT86IHN0cmluZztcbiAgY29ubmVjdG9yX3R5cGU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBtYWlsPzogc3RyaW5nO1xuICBncm91cHM/OiBzdHJpbmdbXTtcbiAgaXNfYWRtaW4/OiBib29sZWFuO1xuICB2YWxpZD86IGJvb2xlYW47XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xuICBvbGRfcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBsYXN0X2xvZ2luX3RpbWU/OiBzdHJpbmc7XG4gIGxvZ2luX2ZhaWx1cmVfdGltZXM/OiBudW1iZXI7XG4gIHN0YXRlPzogVXNlclN0YXRlO1xuICBpc19kaXNhYmxlZD86IGJvb2xlYW47XG4gIGV4cGlyZWQ/OiB7XG4gICAgYmVnaW46IHN0cmluZztcbiAgICBlbmQ6IHN0cmluZztcbiAgfTtcbiAgbW9iaWxlPzogc3RyaW5nO1xuICB3ZWJob29rVHlwZT86IFdlYmhvb2tUeXBlO1xuICB3ZWJob29rVXJsPzogc3RyaW5nO1xuICBpZHM/OiBBcnJheTx7IHR5cGU6IHN0cmluZzsgaWQ6IHN0cmluZyB9Pjtcbn1cblxuZXhwb3J0IGVudW0gVXNlclN0YXRlIHtcbiAgQUNUSVZFID0gJ2FjdGl2ZScsXG4gIExPQ0tFRCA9ICdsb2NrZWQnLFxuICBJTlZBTElEID0gJ2ludmFsaWQnLFxuICBERUxFVEVEID0gJ2RlbGV0ZWQnLFxufVxuXG5leHBvcnQgdHlwZSBXZWJob29rVHlwZSA9ICdXZWJob29rJyB8ICdEaW5nVGFsaycgfCAnV2VDaGF0JztcblxuZXhwb3J0IGludGVyZmFjZSBVc2VyTGlzdCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8VXNlcj4ge1xuICB0b3RhbDogbnVtYmVyO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vY29uZmx1ZW5jZS5hbGF1ZGEuY24vcGFnZXMvdmlld3BhZ2UuYWN0aW9uP3BhZ2VJZD0xNzY4ODM0NzBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VyQmluZGluZyBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBVc2VyQmluZGluZ1NwZWM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckJpbmRpbmdTcGVjIHtcbiAgc3ViamVjdHM6IEFycmF5PHtcbiAgICBraW5kOiAnVXNlcicgfCAnR3JvdXAnIHwgJ1NlcnZpY2VBY2NvdW50JztcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH0+O1xuICByb2xlUmVmOiBzdHJpbmc7XG4gIHNjb3BlOiBzdHJpbmc7IC8vIOaUr+aMgeexu+Wei3BsYXRmb3JtLCBjbHVzdGVyLCBwcm9qZWN0LCBuYW1lc3BhY2VcbiAgY29uc3RyYWludDogQXJyYXk8e1xuICAgIHByb2plY3Q/OiBzdHJpbmc7XG4gICAgY2x1c3Rlcj86IHN0cmluZztcbiAgICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJHcm91cCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IFVzZXJHcm91cFNwZWM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckdyb3VwU3BlYyB7XG4gIHJlZkNvbm5lY3Rvcj86IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgfTtcbiAgbmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHVzZXJzPzogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IGltcG9ydFRpbWU6IHN0cmluZyB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb2xlUnVsZSB7XG4gIG1vZHVsZTogc3RyaW5nO1xuICBmdW5jdGlvblJlc291cmNlUmVmOiBzdHJpbmc7XG4gIGZ1bmN0aW9uTWV0YWRhdGFOYW1lPzogc3RyaW5nO1xuICB2ZXJiczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm9sZUN1c3RvbVJ1bGUge1xuICBhcGlHcm91cDogc3RyaW5nO1xuICByZXNvdXJjZXM6IHN0cmluZ1tdO1xuICB2ZXJiczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm9sZVRlbXBsYXRlU3BlYyB7XG4gIHJ1bGVzPzogUm9sZVJ1bGVbXTtcbiAgY3VzdG9tUnVsZXM/OiBSb2xlQ3VzdG9tUnVsZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvbGVUZW1wbGF0ZSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBSb2xlVGVtcGxhdGVTcGVjO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJSb2xlTmFtZXNwYWNlIHtcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGNsdXN0ZXI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUm9sZSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHJvbGVzPzogc3RyaW5nW107XG4gIG5hbWVzcGFjZXM/OiBSZWNvcmQ8c3RyaW5nLCBVc2VyUm9sZU5hbWVzcGFjZVtdPjtcbn1cblxuZXhwb3J0IGVudW0gVXNlclNlY3VyaXR5UG9saWN5UnVsZSB7XG4gIFBhc3N3b3JkUG9saWN5ID0gJ1Bhc3N3b3JkUG9saWN5JyxcbiAgVXNlckxvY2sgPSAnVXNlckxvY2tlZFBvbGljeScsXG4gIFVzZXJEaXNhYmxlID0gJ1VzZXJEaXNhYmxlZFBvbGljeScsXG4gIE5vdGlmaWNhdGlvbiA9ICdOb3RpZmljYXRpb25Qb2xpY3knLFxuICBBY2Nlc3NDb250cm9sID0gJ0FjY2Vzc0NvbnRyb2xQb2xpY3knLFxuICBUd29GQSA9ICdUd29GYWN0b3JBdXRoZW50aWNhdGlvblBvbGljeScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclBvbGljeVJ1bGUge1xuICBuYW1lOiBVc2VyU2VjdXJpdHlQb2xpY3lSdWxlO1xuICBpdGVtczogQXJyYXk8e1xuICAgIGVuYWJsZTogYm9vbGVhbjtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclBvbGljeSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHJ1bGVzOiBVc2VyUG9saWN5UnVsZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElkcCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiB7IGNvbmZpZz86IExkYXBDb25maWcgfCBPaWRjQ29uZmlnIH07XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gIGNvbmZpZz86IHN0cmluZztcbiAgbGRhcFN5bmM/OiB7XG4gICAgc3luYzogYm9vbGVhbjtcbiAgICByb2xlczogc3RyaW5nO1xuICB9O1xuICBpZHBWYWxpZGF0aW9uPzoge1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgfTtcbn1cblxuLy8gaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9jb3Jlb3MvZGV4L2Nvbm5lY3Rvci9sZGFwXG5leHBvcnQgaW50ZXJmYWNlIExkYXBDb25maWcge1xuICBob3N0Pzogc3RyaW5nO1xuICBpbnNlY3VyZU5vU1NMPzogYm9vbGVhbjtcbiAgaW5zZWN1cmVTa2lwVmVyaWZ5PzogYm9vbGVhbjtcbiAgc3RhcnRUTFM/OiBib29sZWFuO1xuICByb290Q0E/OiBzdHJpbmc7XG4gIHJvb3RDQURhdGE/OiBzdHJpbmc7XG4gIGJpbmRETj86IHN0cmluZztcbiAgYmluZFBXPzogc3RyaW5nO1xuICBjbGllbnRTZWNyZXRSZWY/OiBzdHJpbmc7XG4gIGxkYXBUeXBlPzogc3RyaW5nO1xuICB1c2VybmFtZVByb21wdD86IHN0cmluZztcbiAgdXNlclNlYXJjaD86IExkYXBVc2VyU2VhcmNoO1xuICBncm91cFNlYXJjaD86IExkYXBHcm91cFNlYXJjaDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZGFwVXNlclNlYXJjaCB7XG4gIGJhc2VETj86IHN0cmluZztcbiAgZmlsdGVyPzogc3RyaW5nO1xuICBzY29wZT86IHN0cmluZztcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIGlkQXR0cj86IHN0cmluZztcbiAgZW1haWxBdHRyPzogc3RyaW5nO1xuICBuYW1lQXR0cj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZGFwR3JvdXBTZWFyY2gge1xuICBiYXNlRE4/OiBzdHJpbmc7XG4gIGZpbHRlcj86IHN0cmluZztcbiAgc2NvcGU/OiBzdHJpbmc7XG4gIHVzZXJBdHRyPzogc3RyaW5nO1xuICBncm91cEF0dHI/OiBzdHJpbmc7XG4gIG5hbWVBdHRyPzogc3RyaW5nO1xufVxuXG4vLyBodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2NvcmVvcy9kZXgvY29ubmVjdG9yL29pZGNcbmV4cG9ydCBpbnRlcmZhY2UgT2lkY0NvbmZpZyB7XG4gIGlzc3Vlcj86IHN0cmluZztcbiAgY2xpZW50SUQ/OiBzdHJpbmc7XG4gIGNsaWVudFNlY3JldD86IHN0cmluZztcbiAgY2xpZW50U2VjcmV0UmVmPzogc3RyaW5nO1xuICByZWRpcmVjdFVSST86IHN0cmluZztcbiAgbG9nb3V0VVJMPzogc3RyaW5nO1xuICBzY29wZXM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NUb2tlbkluZm8gZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiB7XG4gICAgdGltZXN0YW1wOiBudW1iZXI7XG4gICAgZXhwaXJhdGlvbjogbnVtYmVyO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBlbnVtIENoYXJ0UmVwb1R5cGUge1xuICBDaGFydCA9ICdDaGFydCcsXG4gIEdpdCA9ICdHaXQnLFxuICBPQ0lDaGFydCA9ICdPQ0kgQ2hhcnQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0UmVwb1NwZWMge1xuICBzZWNyZXQ/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xuICB1cmw6IHN0cmluZztcbiAgdHlwZT86IENoYXJ0UmVwb1R5cGU7XG4gIHNvdXJjZT86IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBwYXRoOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRSZXBvU3RhdHVzIHtcbiAgcGhhc2U6IENoYXJ0UmVwb1BoYXNlRW51bTtcbn1cblxuZXhwb3J0IGVudW0gQ2hhcnRSZXBvUGhhc2VFbnVtIHtcbiAgU3luY2VkID0gJ1N5bmNlZCcsXG4gIEZhaWxlZCA9ICdGYWlsZWQnLFxuICBQZW5kaW5nID0gJ1BlbmRpbmcnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0UmVwb0NyZWF0ZSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IENoYXJ0UmVwb0NyZWF0ZVNwZWM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRSZXBvQ3JlYXRlU3BlYyB7XG4gIHNlY3JldD86IFNlY3JldDtcbiAgY2hhcnRSZXBvOiBDaGFydFJlcG87XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnQgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiB7XG4gICAgYXBwTmFtZT86IHN0cmluZzsgLy8gcmVmZXJzIHRvOiBodHRwOi8vY29uZmx1ZW5jZS5hbGF1ZGEuY24vcGFnZXMvdmlld3BhZ2UuYWN0aW9uP3BhZ2VJZD01MDgzNjc2MyNpZC1bV0lQXUFQSSVFOCVBRSVCRSVFOCVBRSVBMS1DaGFydCVFNSU4OCU5NyVFOCVBMSVBOFxuICAgIHZlcnNpb25zPzogQ2hhcnRWZXJzaW9uW107XG4gIH07XG59XG5cbmV4cG9ydCBlbnVtIENoYXJ0VXBsb2FkU3RhdHVzRW51bSB7XG4gIFVQTE9BRF9TVUNDRUVERUQgPSAndXBsb2FkX3N1Y2NlZWRlZCcsXG4gIFVQTE9BRF9GQUlMRUQgPSAndXBsb2FkX2ZhaWxlZCcsXG4gIFVQTE9BRElORyA9ICd1cGxvYWRpbmcnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0VmVyc2lvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgYXBpVmVyc2lvbjogc3RyaW5nO1xuICBhcHBWZXJzaW9uOiBzdHJpbmc7XG4gIGRlcHJlY2F0ZWQ6IGJvb2xlYW47XG4gIGNyZWF0ZWQ6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgZGlnZXN0OiBzdHJpbmc7XG4gIHVybHM6IHN0cmluZ1tdO1xuICBzb3VyY2VzOiBzdHJpbmdbXTtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGhvbWU6IHN0cmluZztcbiAgbWFpbnRhaW5lcnM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgfT47XG4gIHN0YXR1czogQ2hhcnRVcGxvYWRTdGF0dXNFbnVtO1xuICBhbm5vdGF0aW9uczogU3RyaW5nTWFwO1xufVxuXG4vLyBDaGFydFJlcG8gJiBDaGFydCAmIEhlbG1SZXF1ZXN0XG4vLyBodHRwOi8vY29uZmx1ZW5jZS5hbGF1ZGF0ZWNoLmNvbS9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTUwODM2NzYzXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0UmVwbyBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IENoYXJ0UmVwb1NwZWM7XG4gIHN0YXR1cz86IENoYXJ0UmVwb1N0YXR1cztcbn1cbiJdfQ==
|