@gravitee/ui-policy-studio-angular 13.7.0 → 13.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -142,7 +142,7 @@ export class GioPolicyStudioDetailsComponent {
142
142
  });
143
143
  }
144
144
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GioPolicyStudioDetailsComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
145
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GioPolicyStudioDetailsComponent, isStandalone: true, selector: "gio-ps-flow-details", inputs: { readOnly: "readOnly", loading: "loading", apiType: "apiType", flow: "flow", entrypointsInfo: "entrypointsInfo", endpointsInfo: "endpointsInfo", policies: "policies", genericPolicies: "genericPolicies", trialUrl: "trialUrl" }, outputs: { flowChange: "flowChange", deleteFlow: "deleteFlow" }, usesOnChanges: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n<ng-container *ngIf=\"!loading; then flowDetailsTpl; else loadingTpl\"></ng-container>\n\n<ng-template #flowDetailsTpl>\n <ng-container *ngIf=\"flow; else emptyFlows\">\n <div class=\"header\">\n <div class=\"header__label\">\n Flow details\n <div *ngIf=\"!flow.enabled\" class=\"gio-badge gio-badge-neutral\">Disabled</div>\n </div>\n <div class=\"header__configBtn\">\n <button\n [disabled]=\"readOnly\"\n class=\"header__configBtn__enableDisable\"\n mat-stroked-button\n [matTooltip]=\"flow.enabled ? 'Disable' : 'Enable'\"\n (click)=\"onEnableDisableFlow()\"\n >\n <mat-icon [svgIcon]=\"flow.enabled ? 'gio:prohibition' : 'gio:check-circled-outline'\"></mat-icon>\n </button>\n <button [disabled]=\"readOnly\" class=\"header__configBtn__edit\" mat-stroked-button (click)=\"onEditFlow()\" matTooltip=\"Edit\">\n <mat-icon svgIcon=\"gio:edit-pencil\"></mat-icon>\n </button>\n <button [disabled]=\"readOnly\" class=\"header__configBtn__delete\" mat-stroked-button (click)=\"onDeleteFlow()\" matTooltip=\"Delete\">\n <mat-icon svgIcon=\"gio:trash\"></mat-icon>\n </button>\n </div>\n </div>\n <gio-ps-flow-details-info-bar class=\"infoBar\" [flow]=\"flow\" [entrypointsInfo]=\"entrypointsInfo\"></gio-ps-flow-details-info-bar>\n\n <div class=\"content\">\n <mat-tab-group *ngIf=\"apiType === 'MESSAGE'\" class=\"content__tabs\" dynamicHeight>\n <mat-tab label=\"Initial connection\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Request phase\"\n description=\"Policies will be applied during the connection establishment\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"messageFlowEntrypointsInfo\"\n [endConnector]=\"endpointsInfo\"\n [steps]=\"flow.request ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"REQUEST\"\n (stepsChange)=\"onStepsChange('request', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Response phase\"\n description=\"Policies will be applied to the response from the initial connection\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo\"\n [endConnector]=\"messageFlowEntrypointsInfo\"\n [steps]=\"flow.response ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"RESPONSE\"\n (stepsChange)=\"onStepsChange('response', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n <mat-tab label=\"Event messages\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Publish phase\"\n description=\"Policies will be applied on messages sent to the endpoint\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"messageFlowEntrypointsInfo | gioFilterConnectorsByMode: 'PUBLISH' : operations\"\n [endConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'PUBLISH' : operations\"\n [steps]=\"flow.publish ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"PUBLISH\"\n (stepsChange)=\"onStepsChange('publish', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Subscribe phase\"\n description=\"Policies will be applied on messages received by the entrypoint\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE' : operations\"\n [endConnector]=\"messageFlowEntrypointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE' : operations\"\n [steps]=\"flow.subscribe ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"SUBSCRIBE\"\n (stepsChange)=\"onStepsChange('subscribe', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n </mat-tab-group>\n\n <ng-container *ngIf=\"apiType === 'PROXY'\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Request phase\"\n description=\"Policies will be applied during the connection establishment\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [endConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [steps]=\"flow.request ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"REQUEST\"\n (stepsChange)=\"onStepsChange('request', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Response phase\"\n description=\"Policies will be applied during the connection termination\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [steps]=\"flow.response ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"RESPONSE\"\n (stepsChange)=\"onStepsChange('response', $event)\"\n ></gio-ps-flow-details-phase>\n </ng-container>\n\n <mat-tab-group *ngIf=\"apiType === 'NATIVE'\" class=\"content__tabs\" dynamicHeight>\n <mat-tab label=\"Global\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Connect phase\"\n description=\"Policies will be applied when the client connects to the Gateway\"\n [disabledNotYetAvailable]=\"true\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'CONNECT'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'CONNECT'\"\n [steps]=\"flow.connect ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"CONNECT\"\n (stepsChange)=\"onStepsChange('connect', $event)\"\n >\n </gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Interact phase\"\n description=\"Policies will be applied on all interactions between the client and the Gateway\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'INTERACT'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'INTERACT'\"\n [steps]=\"flow.interact ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"INTERACT\"\n (stepsChange)=\"onStepsChange('interact', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n <mat-tab label=\"Event messages\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Publish phase\"\n description=\"Policies will be applied when publishing messages\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'PUBLISH'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'PUBLISH'\"\n [steps]=\"flow.publish ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"PUBLISH\"\n (stepsChange)=\"onStepsChange('publish', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Subscribe phase\"\n description=\"Policies will be applied when fetching messages\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE'\"\n [steps]=\"flow.subscribe ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"SUBSCRIBE\"\n (stepsChange)=\"onStepsChange('subscribe', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n </mat-tab-group>\n </div>\n </ng-container>\n\n <ng-template #emptyFlows>\n <div class=\"emptyFlows\">\n <h2>No flows yet</h2>\n <p class=\"mat-body-1\">Flows allow you to customize the behavior of your API event phases through configurable policies</p>\n </div>\n </ng-template>\n</ng-template>\n\n<ng-template #loadingTpl>\n <div class=\"header loading\">\n <div class=\"header__label\">Flow details</div>\n <div class=\"header__configBtn\">\n <button class=\"header__configBtn__edit\" mat-stroked-button disabled>\n <mat-icon svgIcon=\"gio:edit-pencil\"></mat-icon>\n </button>\n <button class=\"header__configBtn__delete\" mat-stroked-button disabled>\n <mat-icon svgIcon=\"gio:trash\"></mat-icon>\n </button>\n </div>\n </div>\n <gio-ps-flow-details-info-bar class=\"infoBar loading\"></gio-ps-flow-details-info-bar>\n <div class=\"content loading\">\n <gio-loader></gio-loader>\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}:host{display:flex;height:100%;flex-direction:column}.emptyFlows{display:flex;max-width:500px;height:100%;flex-direction:column;justify-content:center;margin:auto;text-align:center}.header{display:flex;align-items:center;padding:16px;border-bottom:1px solid #d3d5dc}.header__label{font-size:16px;font-weight:500;letter-spacing:.4px;line-height:24px;display:flex;flex:1 1 auto;align-items:center;margin-bottom:0;gap:8px}.header__configBtn{display:flex;align-items:center;margin-left:8px;gap:8px}.infoBar{border-bottom:1px solid #d3d5dc}.infoBar.loading{min-height:52px}.content{overflow:auto;flex:1 1 auto;background-color:#f7f8fd}.content__tabs{min-height:100%;min-height:calc(100% - 64px)}.content__phase{margin:16px 16px 0}.content.loading{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i3.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: GioIconsModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: GioPolicyStudioDetailsPhaseComponent, selector: "gio-ps-flow-details-phase", inputs: ["readOnly", "steps", "name", "description", "startConnector", "endConnector", "apiType", "genericPolicies", "policyFlowPhase", "trialUrl", "disabledNotYetAvailable"], outputs: ["stepsChange"] }, { kind: "pipe", type: GioFilterConnectorsByModePipe, name: "gioFilterConnectorsByMode" }, { kind: "ngmodule", type: GioLoaderModule }, { kind: "component", type: i6.GioLoaderComponent, selector: "gio-loader" }, { kind: "component", type: GioPolicyStudioDetailsInfoBarComponent, selector: "gio-ps-flow-details-info-bar", inputs: ["flow", "entrypointsInfo"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: GioBannerModule }] }); }
145
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GioPolicyStudioDetailsComponent, isStandalone: true, selector: "gio-ps-flow-details", inputs: { readOnly: "readOnly", loading: "loading", apiType: "apiType", flow: "flow", entrypointsInfo: "entrypointsInfo", endpointsInfo: "endpointsInfo", policies: "policies", genericPolicies: "genericPolicies", trialUrl: "trialUrl" }, outputs: { flowChange: "flowChange", deleteFlow: "deleteFlow" }, usesOnChanges: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n<ng-container *ngIf=\"!loading; then flowDetailsTpl; else loadingTpl\"></ng-container>\n\n<ng-template #flowDetailsTpl>\n <ng-container *ngIf=\"flow; else emptyFlows\">\n <div class=\"header\">\n <div class=\"header__label\">\n Flow details\n <div *ngIf=\"!flow.enabled\" class=\"gio-badge gio-badge-neutral\">Disabled</div>\n </div>\n <div class=\"header__configBtn\">\n <button\n [disabled]=\"readOnly\"\n class=\"header__configBtn__enableDisable\"\n mat-stroked-button\n [matTooltip]=\"flow.enabled ? 'Disable' : 'Enable'\"\n (click)=\"onEnableDisableFlow()\"\n >\n <mat-icon [svgIcon]=\"flow.enabled ? 'gio:prohibition' : 'gio:check-circled-outline'\"></mat-icon>\n </button>\n <button [disabled]=\"readOnly\" class=\"header__configBtn__edit\" mat-stroked-button (click)=\"onEditFlow()\" matTooltip=\"Edit\">\n <mat-icon svgIcon=\"gio:edit-pencil\"></mat-icon>\n </button>\n <button [disabled]=\"readOnly\" class=\"header__configBtn__delete\" mat-stroked-button (click)=\"onDeleteFlow()\" matTooltip=\"Delete\">\n <mat-icon svgIcon=\"gio:trash\"></mat-icon>\n </button>\n </div>\n </div>\n <gio-ps-flow-details-info-bar class=\"infoBar\" [flow]=\"flow\" [entrypointsInfo]=\"entrypointsInfo\"></gio-ps-flow-details-info-bar>\n\n <div class=\"content\">\n <mat-tab-group *ngIf=\"apiType === 'MESSAGE'\" class=\"content__tabs\" dynamicHeight>\n <mat-tab label=\"Initial connection\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Request phase\"\n description=\"Policies will be applied during the connection establishment\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"messageFlowEntrypointsInfo\"\n [endConnector]=\"endpointsInfo\"\n [steps]=\"flow.request ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"REQUEST\"\n (stepsChange)=\"onStepsChange('request', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Response phase\"\n description=\"Policies will be applied to the response from the initial connection\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo\"\n [endConnector]=\"messageFlowEntrypointsInfo\"\n [steps]=\"flow.response ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"RESPONSE\"\n (stepsChange)=\"onStepsChange('response', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n <mat-tab label=\"Event messages\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Publish phase\"\n description=\"Policies will be applied on messages sent to the endpoint\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"messageFlowEntrypointsInfo | gioFilterConnectorsByMode: 'PUBLISH' : operations\"\n [endConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'PUBLISH' : operations\"\n [steps]=\"flow.publish ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"PUBLISH\"\n (stepsChange)=\"onStepsChange('publish', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Subscribe phase\"\n description=\"Policies will be applied on messages received by the entrypoint\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE' : operations\"\n [endConnector]=\"messageFlowEntrypointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE' : operations\"\n [steps]=\"flow.subscribe ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"SUBSCRIBE\"\n (stepsChange)=\"onStepsChange('subscribe', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n </mat-tab-group>\n\n <ng-container *ngIf=\"apiType === 'PROXY'\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Request phase\"\n description=\"Policies will be applied during the connection establishment\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [endConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [steps]=\"flow.request ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"REQUEST\"\n (stepsChange)=\"onStepsChange('request', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Response phase\"\n description=\"Policies will be applied during the connection termination\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [steps]=\"flow.response ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"RESPONSE\"\n (stepsChange)=\"onStepsChange('response', $event)\"\n ></gio-ps-flow-details-phase>\n </ng-container>\n\n <mat-tab-group *ngIf=\"apiType === 'NATIVE'\" class=\"content__tabs\" dynamicHeight>\n <mat-tab label=\"Global\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Connect phase\"\n description=\"Policies will be applied when the client connects to the Gateway\"\n [disabledNotYetAvailable]=\"true\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'CONNECT'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'CONNECT'\"\n [steps]=\"flow.connect ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"CONNECT\"\n (stepsChange)=\"onStepsChange('connect', $event)\"\n >\n </gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Interact phase\"\n description=\"Policies will be applied on all interactions between the client and the Gateway\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'INTERACT'\"\n [endConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'INTERACT'\"\n [steps]=\"flow.interact ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"INTERACT\"\n (stepsChange)=\"onStepsChange('interact', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n <mat-tab label=\"Event messages\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Publish phase\"\n description=\"Policies will be applied when publishing messages\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'PUBLISH'\"\n [endConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'PUBLISH'\"\n [steps]=\"flow.publish ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"PUBLISH\"\n (stepsChange)=\"onStepsChange('publish', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Subscribe phase\"\n description=\"Policies will be applied when fetching messages\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE'\"\n [steps]=\"flow.subscribe ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"SUBSCRIBE\"\n (stepsChange)=\"onStepsChange('subscribe', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n </mat-tab-group>\n </div>\n </ng-container>\n\n <ng-template #emptyFlows>\n <div class=\"emptyFlows\">\n <h2>No flows yet</h2>\n <p class=\"mat-body-1\">Flows allow you to customize the behavior of your API event phases through configurable policies</p>\n </div>\n </ng-template>\n</ng-template>\n\n<ng-template #loadingTpl>\n <div class=\"header loading\">\n <div class=\"header__label\">Flow details</div>\n <div class=\"header__configBtn\">\n <button class=\"header__configBtn__edit\" mat-stroked-button disabled>\n <mat-icon svgIcon=\"gio:edit-pencil\"></mat-icon>\n </button>\n <button class=\"header__configBtn__delete\" mat-stroked-button disabled>\n <mat-icon svgIcon=\"gio:trash\"></mat-icon>\n </button>\n </div>\n </div>\n <gio-ps-flow-details-info-bar class=\"infoBar loading\"></gio-ps-flow-details-info-bar>\n <div class=\"content loading\">\n <gio-loader></gio-loader>\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}:host{display:flex;height:100%;flex-direction:column}.emptyFlows{display:flex;max-width:500px;height:100%;flex-direction:column;justify-content:center;margin:auto;text-align:center}.header{display:flex;align-items:center;padding:16px;border-bottom:1px solid #d3d5dc}.header__label{font-size:16px;font-weight:500;letter-spacing:.4px;line-height:24px;display:flex;flex:1 1 auto;align-items:center;margin-bottom:0;gap:8px}.header__configBtn{display:flex;align-items:center;margin-left:8px;gap:8px}.infoBar{border-bottom:1px solid #d3d5dc}.infoBar.loading{min-height:52px}.content{overflow:auto;flex:1 1 auto;background-color:#f7f8fd}.content__tabs{min-height:100%;min-height:calc(100% - 64px)}.content__phase{margin:16px 16px 0}.content.loading{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i3.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: GioIconsModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: GioPolicyStudioDetailsPhaseComponent, selector: "gio-ps-flow-details-phase", inputs: ["readOnly", "steps", "name", "description", "startConnector", "endConnector", "apiType", "genericPolicies", "policyFlowPhase", "trialUrl", "disabledNotYetAvailable"], outputs: ["stepsChange"] }, { kind: "pipe", type: GioFilterConnectorsByModePipe, name: "gioFilterConnectorsByMode" }, { kind: "ngmodule", type: GioLoaderModule }, { kind: "component", type: i6.GioLoaderComponent, selector: "gio-loader" }, { kind: "component", type: GioPolicyStudioDetailsInfoBarComponent, selector: "gio-ps-flow-details-info-bar", inputs: ["flow", "entrypointsInfo"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: GioBannerModule }] }); }
146
146
  }
147
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GioPolicyStudioDetailsComponent, decorators: [{
148
148
  type: Component,
@@ -157,7 +157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
157
157
  GioPolicyStudioDetailsInfoBarComponent,
158
158
  MatTooltipModule,
159
159
  GioBannerModule,
160
- ], selector: 'gio-ps-flow-details', template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n<ng-container *ngIf=\"!loading; then flowDetailsTpl; else loadingTpl\"></ng-container>\n\n<ng-template #flowDetailsTpl>\n <ng-container *ngIf=\"flow; else emptyFlows\">\n <div class=\"header\">\n <div class=\"header__label\">\n Flow details\n <div *ngIf=\"!flow.enabled\" class=\"gio-badge gio-badge-neutral\">Disabled</div>\n </div>\n <div class=\"header__configBtn\">\n <button\n [disabled]=\"readOnly\"\n class=\"header__configBtn__enableDisable\"\n mat-stroked-button\n [matTooltip]=\"flow.enabled ? 'Disable' : 'Enable'\"\n (click)=\"onEnableDisableFlow()\"\n >\n <mat-icon [svgIcon]=\"flow.enabled ? 'gio:prohibition' : 'gio:check-circled-outline'\"></mat-icon>\n </button>\n <button [disabled]=\"readOnly\" class=\"header__configBtn__edit\" mat-stroked-button (click)=\"onEditFlow()\" matTooltip=\"Edit\">\n <mat-icon svgIcon=\"gio:edit-pencil\"></mat-icon>\n </button>\n <button [disabled]=\"readOnly\" class=\"header__configBtn__delete\" mat-stroked-button (click)=\"onDeleteFlow()\" matTooltip=\"Delete\">\n <mat-icon svgIcon=\"gio:trash\"></mat-icon>\n </button>\n </div>\n </div>\n <gio-ps-flow-details-info-bar class=\"infoBar\" [flow]=\"flow\" [entrypointsInfo]=\"entrypointsInfo\"></gio-ps-flow-details-info-bar>\n\n <div class=\"content\">\n <mat-tab-group *ngIf=\"apiType === 'MESSAGE'\" class=\"content__tabs\" dynamicHeight>\n <mat-tab label=\"Initial connection\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Request phase\"\n description=\"Policies will be applied during the connection establishment\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"messageFlowEntrypointsInfo\"\n [endConnector]=\"endpointsInfo\"\n [steps]=\"flow.request ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"REQUEST\"\n (stepsChange)=\"onStepsChange('request', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Response phase\"\n description=\"Policies will be applied to the response from the initial connection\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo\"\n [endConnector]=\"messageFlowEntrypointsInfo\"\n [steps]=\"flow.response ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"RESPONSE\"\n (stepsChange)=\"onStepsChange('response', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n <mat-tab label=\"Event messages\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Publish phase\"\n description=\"Policies will be applied on messages sent to the endpoint\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"messageFlowEntrypointsInfo | gioFilterConnectorsByMode: 'PUBLISH' : operations\"\n [endConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'PUBLISH' : operations\"\n [steps]=\"flow.publish ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"PUBLISH\"\n (stepsChange)=\"onStepsChange('publish', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Subscribe phase\"\n description=\"Policies will be applied on messages received by the entrypoint\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE' : operations\"\n [endConnector]=\"messageFlowEntrypointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE' : operations\"\n [steps]=\"flow.subscribe ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"SUBSCRIBE\"\n (stepsChange)=\"onStepsChange('subscribe', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n </mat-tab-group>\n\n <ng-container *ngIf=\"apiType === 'PROXY'\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Request phase\"\n description=\"Policies will be applied during the connection establishment\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [endConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [steps]=\"flow.request ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"REQUEST\"\n (stepsChange)=\"onStepsChange('request', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Response phase\"\n description=\"Policies will be applied during the connection termination\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [steps]=\"flow.response ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"RESPONSE\"\n (stepsChange)=\"onStepsChange('response', $event)\"\n ></gio-ps-flow-details-phase>\n </ng-container>\n\n <mat-tab-group *ngIf=\"apiType === 'NATIVE'\" class=\"content__tabs\" dynamicHeight>\n <mat-tab label=\"Global\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Connect phase\"\n description=\"Policies will be applied when the client connects to the Gateway\"\n [disabledNotYetAvailable]=\"true\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'CONNECT'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'CONNECT'\"\n [steps]=\"flow.connect ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"CONNECT\"\n (stepsChange)=\"onStepsChange('connect', $event)\"\n >\n </gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Interact phase\"\n description=\"Policies will be applied on all interactions between the client and the Gateway\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'INTERACT'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'INTERACT'\"\n [steps]=\"flow.interact ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"INTERACT\"\n (stepsChange)=\"onStepsChange('interact', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n <mat-tab label=\"Event messages\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Publish phase\"\n description=\"Policies will be applied when publishing messages\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'PUBLISH'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'PUBLISH'\"\n [steps]=\"flow.publish ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"PUBLISH\"\n (stepsChange)=\"onStepsChange('publish', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Subscribe phase\"\n description=\"Policies will be applied when fetching messages\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE'\"\n [steps]=\"flow.subscribe ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"SUBSCRIBE\"\n (stepsChange)=\"onStepsChange('subscribe', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n </mat-tab-group>\n </div>\n </ng-container>\n\n <ng-template #emptyFlows>\n <div class=\"emptyFlows\">\n <h2>No flows yet</h2>\n <p class=\"mat-body-1\">Flows allow you to customize the behavior of your API event phases through configurable policies</p>\n </div>\n </ng-template>\n</ng-template>\n\n<ng-template #loadingTpl>\n <div class=\"header loading\">\n <div class=\"header__label\">Flow details</div>\n <div class=\"header__configBtn\">\n <button class=\"header__configBtn__edit\" mat-stroked-button disabled>\n <mat-icon svgIcon=\"gio:edit-pencil\"></mat-icon>\n </button>\n <button class=\"header__configBtn__delete\" mat-stroked-button disabled>\n <mat-icon svgIcon=\"gio:trash\"></mat-icon>\n </button>\n </div>\n </div>\n <gio-ps-flow-details-info-bar class=\"infoBar loading\"></gio-ps-flow-details-info-bar>\n <div class=\"content loading\">\n <gio-loader></gio-loader>\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}:host{display:flex;height:100%;flex-direction:column}.emptyFlows{display:flex;max-width:500px;height:100%;flex-direction:column;justify-content:center;margin:auto;text-align:center}.header{display:flex;align-items:center;padding:16px;border-bottom:1px solid #d3d5dc}.header__label{font-size:16px;font-weight:500;letter-spacing:.4px;line-height:24px;display:flex;flex:1 1 auto;align-items:center;margin-bottom:0;gap:8px}.header__configBtn{display:flex;align-items:center;margin-left:8px;gap:8px}.infoBar{border-bottom:1px solid #d3d5dc}.infoBar.loading{min-height:52px}.content{overflow:auto;flex:1 1 auto;background-color:#f7f8fd}.content__tabs{min-height:100%;min-height:calc(100% - 64px)}.content__phase{margin:16px 16px 0}.content.loading{display:flex}\n"] }]
160
+ ], selector: 'gio-ps-flow-details', template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n<ng-container *ngIf=\"!loading; then flowDetailsTpl; else loadingTpl\"></ng-container>\n\n<ng-template #flowDetailsTpl>\n <ng-container *ngIf=\"flow; else emptyFlows\">\n <div class=\"header\">\n <div class=\"header__label\">\n Flow details\n <div *ngIf=\"!flow.enabled\" class=\"gio-badge gio-badge-neutral\">Disabled</div>\n </div>\n <div class=\"header__configBtn\">\n <button\n [disabled]=\"readOnly\"\n class=\"header__configBtn__enableDisable\"\n mat-stroked-button\n [matTooltip]=\"flow.enabled ? 'Disable' : 'Enable'\"\n (click)=\"onEnableDisableFlow()\"\n >\n <mat-icon [svgIcon]=\"flow.enabled ? 'gio:prohibition' : 'gio:check-circled-outline'\"></mat-icon>\n </button>\n <button [disabled]=\"readOnly\" class=\"header__configBtn__edit\" mat-stroked-button (click)=\"onEditFlow()\" matTooltip=\"Edit\">\n <mat-icon svgIcon=\"gio:edit-pencil\"></mat-icon>\n </button>\n <button [disabled]=\"readOnly\" class=\"header__configBtn__delete\" mat-stroked-button (click)=\"onDeleteFlow()\" matTooltip=\"Delete\">\n <mat-icon svgIcon=\"gio:trash\"></mat-icon>\n </button>\n </div>\n </div>\n <gio-ps-flow-details-info-bar class=\"infoBar\" [flow]=\"flow\" [entrypointsInfo]=\"entrypointsInfo\"></gio-ps-flow-details-info-bar>\n\n <div class=\"content\">\n <mat-tab-group *ngIf=\"apiType === 'MESSAGE'\" class=\"content__tabs\" dynamicHeight>\n <mat-tab label=\"Initial connection\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Request phase\"\n description=\"Policies will be applied during the connection establishment\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"messageFlowEntrypointsInfo\"\n [endConnector]=\"endpointsInfo\"\n [steps]=\"flow.request ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"REQUEST\"\n (stepsChange)=\"onStepsChange('request', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Response phase\"\n description=\"Policies will be applied to the response from the initial connection\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo\"\n [endConnector]=\"messageFlowEntrypointsInfo\"\n [steps]=\"flow.response ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"RESPONSE\"\n (stepsChange)=\"onStepsChange('response', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n <mat-tab label=\"Event messages\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Publish phase\"\n description=\"Policies will be applied on messages sent to the endpoint\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"messageFlowEntrypointsInfo | gioFilterConnectorsByMode: 'PUBLISH' : operations\"\n [endConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'PUBLISH' : operations\"\n [steps]=\"flow.publish ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"PUBLISH\"\n (stepsChange)=\"onStepsChange('publish', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Subscribe phase\"\n description=\"Policies will be applied on messages received by the entrypoint\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE' : operations\"\n [endConnector]=\"messageFlowEntrypointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE' : operations\"\n [steps]=\"flow.subscribe ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"SUBSCRIBE\"\n (stepsChange)=\"onStepsChange('subscribe', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n </mat-tab-group>\n\n <ng-container *ngIf=\"apiType === 'PROXY'\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Request phase\"\n description=\"Policies will be applied during the connection establishment\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [endConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [steps]=\"flow.request ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"REQUEST\"\n (stepsChange)=\"onStepsChange('request', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Response phase\"\n description=\"Policies will be applied during the connection termination\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'REQUEST_RESPONSE'\"\n [steps]=\"flow.response ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"RESPONSE\"\n (stepsChange)=\"onStepsChange('response', $event)\"\n ></gio-ps-flow-details-phase>\n </ng-container>\n\n <mat-tab-group *ngIf=\"apiType === 'NATIVE'\" class=\"content__tabs\" dynamicHeight>\n <mat-tab label=\"Global\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Connect phase\"\n description=\"Policies will be applied when the client connects to the Gateway\"\n [disabledNotYetAvailable]=\"true\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'CONNECT'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'CONNECT'\"\n [steps]=\"flow.connect ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"CONNECT\"\n (stepsChange)=\"onStepsChange('connect', $event)\"\n >\n </gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Interact phase\"\n description=\"Policies will be applied on all interactions between the client and the Gateway\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'INTERACT'\"\n [endConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'INTERACT'\"\n [steps]=\"flow.interact ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"INTERACT\"\n (stepsChange)=\"onStepsChange('interact', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n <mat-tab label=\"Event messages\" bodyClass=\"content__tabs__body\">\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Publish phase\"\n description=\"Policies will be applied when publishing messages\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'PUBLISH'\"\n [endConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'PUBLISH'\"\n [steps]=\"flow.publish ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"PUBLISH\"\n (stepsChange)=\"onStepsChange('publish', $event)\"\n ></gio-ps-flow-details-phase>\n <gio-ps-flow-details-phase\n class=\"content__phase\"\n name=\"Subscribe phase\"\n description=\"Policies will be applied when fetching messages\"\n [readOnly]=\"readOnly\"\n [startConnector]=\"endpointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE'\"\n [endConnector]=\"entrypointsInfo | gioFilterConnectorsByMode: 'SUBSCRIBE'\"\n [steps]=\"flow.subscribe ?? []\"\n [apiType]=\"apiType\"\n [genericPolicies]=\"genericPolicies\"\n [trialUrl]=\"trialUrl\"\n policyFlowPhase=\"SUBSCRIBE\"\n (stepsChange)=\"onStepsChange('subscribe', $event)\"\n ></gio-ps-flow-details-phase>\n </mat-tab>\n </mat-tab-group>\n </div>\n </ng-container>\n\n <ng-template #emptyFlows>\n <div class=\"emptyFlows\">\n <h2>No flows yet</h2>\n <p class=\"mat-body-1\">Flows allow you to customize the behavior of your API event phases through configurable policies</p>\n </div>\n </ng-template>\n</ng-template>\n\n<ng-template #loadingTpl>\n <div class=\"header loading\">\n <div class=\"header__label\">Flow details</div>\n <div class=\"header__configBtn\">\n <button class=\"header__configBtn__edit\" mat-stroked-button disabled>\n <mat-icon svgIcon=\"gio:edit-pencil\"></mat-icon>\n </button>\n <button class=\"header__configBtn__delete\" mat-stroked-button disabled>\n <mat-icon svgIcon=\"gio:trash\"></mat-icon>\n </button>\n </div>\n </div>\n <gio-ps-flow-details-info-bar class=\"infoBar loading\"></gio-ps-flow-details-info-bar>\n <div class=\"content loading\">\n <gio-loader></gio-loader>\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}:host{display:flex;height:100%;flex-direction:column}.emptyFlows{display:flex;max-width:500px;height:100%;flex-direction:column;justify-content:center;margin:auto;text-align:center}.header{display:flex;align-items:center;padding:16px;border-bottom:1px solid #d3d5dc}.header__label{font-size:16px;font-weight:500;letter-spacing:.4px;line-height:24px;display:flex;flex:1 1 auto;align-items:center;margin-bottom:0;gap:8px}.header__configBtn{display:flex;align-items:center;margin-left:8px;gap:8px}.infoBar{border-bottom:1px solid #d3d5dc}.infoBar.loading{min-height:52px}.content{overflow:auto;flex:1 1 auto;background-color:#f7f8fd}.content__tabs{min-height:100%;min-height:calc(100% - 64px)}.content__phase{margin:16px 16px 0}.content.loading{display:flex}\n"] }]
161
161
  }], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { readOnly: [{
162
162
  type: Input
163
163
  }], loading: [{
@@ -181,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
181
181
  }], deleteFlow: [{
182
182
  type: Output
183
183
  }] } });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Zsb3ctZGV0YWlscy9naW8tcHMtZmxvdy1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvdy1kZXRhaWxzL2dpby1wcy1mbG93LWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc3RCxPQUFPLEVBQ0wsNkNBQTZDLEdBRTlDLE1BQU0sd0ZBQXdGLENBQUM7QUFFaEcsT0FBTyxFQUNMLDJDQUEyQyxHQUU1QyxNQUFNLG9GQUFvRixDQUFDO0FBRTVGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJE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LENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixHQUFHLElBQUksQ0FBQyxJQUFJO1lBQ1osQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLO1lBQ2xCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBMUpVLCtCQUErQjtrR0FBL0IsK0JBQStCLGlaQzlENUMsd3lWQTBPQSxxOUJEM0xJLFlBQVksa0lBQ1osYUFBYSw0b0JBQ2IsZUFBZSwyTkFDZixjQUFjLG9MQUNkLG9DQUFvQywyUUFDcEMsNkJBQTZCLGlFQUM3QixlQUFlLDJHQUNmLHNDQUFzQyw2R0FDdEMsZ0JBQWdCLDRUQUNoQixlQUFlOzsyRkFNTiwrQkFBK0I7a0JBbEIzQyxTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixjQUFjO3dCQUNkLG9DQUFvQzt3QkFDcEMsNkJBQTZCO3dCQUM3QixlQUFlO3dCQUNmLHNDQUFzQzt3QkFDdEMsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQixZQUNTLHFCQUFxQjs4RUFNeEIsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsTUFBTTtnQkFJQSxVQUFVO3NCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMiBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEdJT19ESUFMT0dfV0lEVEgsIEdpb0Jhbm5lck1vZHVsZSwgR2lvSWNvbnNNb2R1bGUsIEdpb0xvYWRlck1vZHVsZSB9IGZyb20gJ0BncmF2aXRlZS91aS1wYXJ0aWNsZXMtYW5ndWxhcic7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgRmxvd1ZNIH0gZnJvbSAnLi4vLi4vcG9saWN5LXN0dWRpby9naW8tcG9saWN5LXN0dWRpby5tb2RlbCc7XG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEFwaVR5cGUsIENoYW5uZWxTZWxlY3RvciwgQ29ubmVjdG9ySW5mbywgT3BlcmF0aW9uLCBQb2xpY3ksIFN0ZXAsIEdlbmVyaWNQb2xpY3kgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1wcm94eS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1wcm94eS1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQgfSBmcm9tICcuLi9mbG93LWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LWZvcm0tZGlhbG9nLXJlc3VsdC5tb2RlbCc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9EZXRhaWxzUGhhc2VDb21wb25lbnQgfSBmcm9tICcuLi9mbG93LWRldGFpbHMtcGhhc2UvZ2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvRmlsdGVyQ29ubmVjdG9yc0J5TW9kZVBpcGUgfSBmcm9tICcuLi9maWx0ZXItcGlwZS9naW8tZmx0ZXItY29ubmVjdG9ycy1ieS1tb2RlLnBpcGUnO1xuaW1wb3J0IHsgR2lvUG9saWN5U3R1ZGlvRGV0YWlsc0luZm9CYXJDb21wb25lbnQgfSBmcm9tICcuLi9mbG93LWRldGFpbHMtaW5mby1iYXIvZ2lvLXBzLWZsb3ctZGV0YWlscy1pbmZvLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd05hdGl2ZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9mbG93LW5hdGl2ZS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1uYXRpdmUtZm9ybS1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0VGFic01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgR2lvSWNvbnNNb2R1bGUsXG4gICAgR2lvUG9saWN5U3R1ZGlvRGV0YWlsc1BoYXNlQ29tcG9uZW50LFxuICAgIEdpb0ZpbHRlckNvbm5lY3RvcnNCeU1vZGVQaXBlLFxuICAgIEdpb0xvYWRlck1vZHVsZSxcbiAgICBHaW9Qb2xpY3lTdHVkaW9EZXRhaWxzSW5mb0JhckNvbXBvbmVudCxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIEdpb0Jhbm5lck1vZHVsZSxcbiAgXSxcbiAgc2VsZWN0b3I6ICdnaW8tcHMtZmxvdy1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1mbG93LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtZmxvdy1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb0RldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVhZE9ubHkgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcGlUeXBlITogQXBpVHlwZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmxvdz86IEZsb3dWTSA9IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZW50cnlwb2ludHNJbmZvOiBDb25uZWN0b3JJbmZvW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZW5kcG9pbnRzSW5mbzogQ29ubmVjdG9ySW5mb1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBvbGljaWVzOiBQb2xpY3lbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZW5lcmljUG9saWNpZXM6IEdlbmVyaWNQb2xpY3lbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cmlhbFVybD86IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGZsb3dDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dWTT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGRlbGV0ZUZsb3cgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dWTT4oKTtcblxuICBwdWJsaWMgbWVzc2FnZUZsb3dFbnRyeXBvaW50c0luZm86IENvbm5lY3RvckluZm9bXSA9IFtdO1xuXG4gIHB1YmxpYyBvcGVyYXRpb25zOiBPcGVyYXRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5lbnRyeXBvaW50c0luZm8gfHwgY2hhbmdlcy5mbG93KSB7XG4gICAgICBjb25zdCBjaGFubmVsU2VsZWN0b3IgPSB0aGlzLmZsb3c/LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0NIQU5ORUwnKSBhcyBDaGFubmVsU2VsZWN0b3I7XG5cbiAgICAgIHRoaXMub3BlcmF0aW9ucyA9IGNoYW5uZWxTZWxlY3Rvcj8ub3BlcmF0aW9ucyA/PyBbXTtcblxuICAgICAgaWYgKCFjaGFubmVsU2VsZWN0b3IpIHtcbiAgICAgICAgLy8gSWYgbm8gY2hhbm5lbCBzZWxlY3RvciBmb3VuZC4gS2VlcCBkZWZhdWx0IHZhbHVlXG4gICAgICAgIHRoaXMubWVzc2FnZUZsb3dFbnRyeXBvaW50c0luZm8gPSBbXTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm1lc3NhZ2VGbG93RW50cnlwb2ludHNJbmZvID1cbiAgICAgICAgdGhpcy5lbnRyeXBvaW50c0luZm8/LmZpbHRlcihcbiAgICAgICAgICBlID0+XG4gICAgICAgICAgICAvLyBJZiBub3QgZW50cnlwb2ludHMgYXJlIGRlZmluZWQsIGFsbCBlbnRyeXBvaW50cyBhcmUgdmFsaWRcbiAgICAgICAgICAgICFjaGFubmVsU2VsZWN0b3IuZW50cnlwb2ludHMgfHwgaXNFbXB0eShjaGFubmVsU2VsZWN0b3IuZW50cnlwb2ludHMpIHx8IGNoYW5uZWxTZWxlY3Rvci5lbnRyeXBvaW50cz8uaW5jbHVkZXMoZS50eXBlKSxcbiAgICAgICAgKSA/PyBbXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25FZGl0RmxvdygpOiB2b2lkIHtcbiAgICBsZXQgZGlhbG9nUmVzdWx0O1xuICAgIHN3aXRjaCAodGhpcy5hcGlUeXBlKSB7XG4gICAgICBjYXNlICdNRVNTQUdFJzpcbiAgICAgICAgZGlhbG9nUmVzdWx0ID0gdGhpcy5tYXREaWFsb2dcbiAgICAgICAgICAub3BlbjxcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0RhdGEsXG4gICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdFxuICAgICAgICAgID4oR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIGZsb3c6IHRoaXMuZmxvdyxcbiAgICAgICAgICAgICAgZW50cnlwb2ludHM6IHRoaXMuZW50cnlwb2ludHNJbmZvID8/IFtdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgICAgICBpZDogJ2dpb1BzRmxvd01lc3NhZ2VGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgIHdpZHRoOiBHSU9fRElBTE9HX1dJRFRILk1FRElVTSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5hZnRlckNsb3NlZCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1BST1hZJzpcbiAgICAgICAgZGlhbG9nUmVzdWx0ID0gdGhpcy5tYXREaWFsb2dcbiAgICAgICAgICAub3BlbjxHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSwgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQ+KFxuICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGZsb3c6IHRoaXMuZmxvdyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dQcm94eUZvcm1EaWFsb2cnLFxuICAgICAgICAgICAgICB3aWR0aDogR0lPX0RJQUxPR19XSURUSC5NRURJVU0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIClcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdOQVRJVkUnOlxuICAgICAgICBkaWFsb2dSZXN1bHQgPSB0aGlzLm1hdERpYWxvZ1xuICAgICAgICAgIC5vcGVuPEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93TmF0aXZlRm9ybURpYWxvZ0RhdGEsIEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0PihcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZmxvdzogdGhpcy5mbG93LFxuICAgICAgICAgICAgICAgIHBhcmVudEdyb3VwTmFtZTogdGhpcy5mbG93IS5fcGFyZW50Rmxvd0dyb3VwTmFtZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dOYXRpdmVGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBBUEkgdHlwZSAke3RoaXMuYXBpVHlwZX1gKTtcbiAgICB9XG5cbiAgICBkaWFsb2dSZXN1bHRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoY3JlYXRlZE9yRWRpdGVkID0+IHtcbiAgICAgICAgICBpZiAoIWNyZWF0ZWRPckVkaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZsb3dDaGFuZ2UuZW1pdChjcmVhdGVkT3JFZGl0ZWQpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlbGV0ZUZsb3coKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGVGbG93LmVtaXQodGhpcy5mbG93KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVuYWJsZURpc2FibGVGbG93KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mbG93KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5mbG93Q2hhbmdlLmVtaXQoe1xuICAgICAgLi4udGhpcy5mbG93LFxuICAgICAgZW5hYmxlZDogIXRoaXMuZmxvdy5lbmFibGVkLFxuICAgICAgX2hhc0NoYW5nZWQ6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25TdGVwc0NoYW5nZShmbG93UGhhc2U6ICdjb25uZWN0JyB8ICdpbnRlcmFjdCcgfCAncmVxdWVzdCcgfCAncmVzcG9uc2UnIHwgJ3B1Ymxpc2gnIHwgJ3N1YnNjcmliZScsIHN0ZXBzOiBTdGVwW10pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZmxvdykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmxvd0NoYW5nZS5lbWl0KHtcbiAgICAgIC4uLnRoaXMuZmxvdyxcbiAgICAgIFtmbG93UGhhc2VdOiBzdGVwcyxcbiAgICAgIF9oYXNDaGFuZ2VkOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAgICBcbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgICBcbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICAgIFxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nOyB0aGVuIGZsb3dEZXRhaWxzVHBsOyBlbHNlIGxvYWRpbmdUcGxcIj48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNmbG93RGV0YWlsc1RwbD5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZsb3c7IGVsc2UgZW1wdHlGbG93c1wiPlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2xhYmVsXCI+XG4gICAgICAgIEZsb3cgZGV0YWlsc1xuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWZsb3cuZW5hYmxlZFwiIGNsYXNzPVwiZ2lvLWJhZGdlIGdpby1iYWRnZS1uZXV0cmFsXCI+RGlzYWJsZWQ8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fY29uZmlnQnRuXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwicmVhZE9ubHlcIlxuICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19jb25maWdCdG5fX2VuYWJsZURpc2FibGVcIlxuICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgIFttYXRUb29sdGlwXT1cImZsb3cuZW5hYmxlZCA/ICdEaXNhYmxlJyA6ICdFbmFibGUnXCJcbiAgICAgICAgICAoY2xpY2spPVwib25FbmFibGVEaXNhYmxlRmxvdygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJmbG93LmVuYWJsZWQgPyAnZ2lvOnByb2hpYml0aW9uJyA6ICdnaW86Y2hlY2stY2lyY2xlZC1vdXRsaW5lJ1wiPjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJyZWFkT25seVwiIGNsYXNzPVwiaGVhZGVyX19jb25maWdCdG5fX2VkaXRcIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIm9uRWRpdEZsb3coKVwiIG1hdFRvb2x0aXA9XCJFZGl0XCI+XG4gICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86ZWRpdC1wZW5jaWxcIj48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicmVhZE9ubHlcIiBjbGFzcz1cImhlYWRlcl9fY29uZmlnQnRuX19kZWxldGVcIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIm9uRGVsZXRlRmxvdygpXCIgbWF0VG9vbHRpcD1cIkRlbGV0ZVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOnRyYXNoXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8Z2lvLXBzLWZsb3ctZGV0YWlscy1pbmZvLWJhciBjbGFzcz1cImluZm9CYXJcIiBbZmxvd109XCJmbG93XCIgW2VudHJ5cG9pbnRzSW5mb109XCJlbnRyeXBvaW50c0luZm9cIj48L2dpby1wcy1mbG93LWRldGFpbHMtaW5mby1iYXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgPG1hdC10YWItZ3JvdXAgKm5nSWY9XCJhcGlUeXBlID09PSAnTUVTU0FHRSdcIiBjbGFzcz1cImNvbnRlbnRfX3RhYnNcIiBkeW5hbWljSGVpZ2h0PlxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkluaXRpYWwgY29ubmVjdGlvblwiIGJvZHlDbGFzcz1cImNvbnRlbnRfX3RhYnNfX2JvZHlcIj5cbiAgICAgICAgICA8Z2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZVxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50X19waGFzZVwiXG4gICAgICAgICAgICBuYW1lPVwiUmVxdWVzdCBwaGFzZVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlBvbGljaWVzIHdpbGwgYmUgYXBwbGllZCBkdXJpbmcgdGhlIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgW3N0YXJ0Q29ubmVjdG9yXT1cIm1lc3NhZ2VGbG93RW50cnlwb2ludHNJbmZvXCJcbiAgICAgICAgICAgIFtlbmRDb25uZWN0b3JdPVwiZW5kcG9pbnRzSW5mb1wiXG4gICAgICAgICAgICBbc3RlcHNdPVwiZmxvdy5yZXF1ZXN0ID8/IFtdXCJcbiAgICAgICAgICAgIFthcGlUeXBlXT1cImFwaVR5cGVcIlxuICAgICAgICAgICAgW2dlbmVyaWNQb2xpY2llc109XCJnZW5lcmljUG9saWNpZXNcIlxuICAgICAgICAgICAgW3RyaWFsVXJsXT1cInRyaWFsVXJsXCJcbiAgICAgICAgICAgIHBvbGljeUZsb3dQaGFzZT1cIlJFUVVFU1RcIlxuICAgICAgICAgICAgKHN0ZXBzQ2hhbmdlKT1cIm9uU3RlcHNDaGFuZ2UoJ3JlcXVlc3QnLCAkZXZlbnQpXCJcbiAgICAgICAgICA+PC9naW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlPlxuICAgICAgICAgIDxnaW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnRfX3BoYXNlXCJcbiAgICAgICAgICAgIG5hbWU9XCJSZXNwb25zZSBwaGFzZVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlBvbGljaWVzIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgaW5pdGlhbCBjb25uZWN0aW9uXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICBbc3RhcnRDb25uZWN0b3JdPVwiZW5kcG9pbnRzSW5mb1wiXG4gICAgICAgICAgICBbZW5kQ29ubmVjdG9yXT1cIm1lc3NhZ2VGbG93RW50cnlwb2ludHNJbmZvXCJcbiAgICAgICAgICAgIFtzdGVwc109XCJmbG93LnJlc3BvbnNlID8/IFtdXCJcbiAgICAgICAgICAgIFthcGlUeXBlXT1cImFwaVR5cGVcIlxuICAgICAgICAgICAgW2dlbmVyaWNQb2xpY2llc109XCJnZW5lcmljUG9saWNpZXNcIlxuICAgICAgICAgICAgW3RyaWFsVXJsXT1cInRyaWFsVXJsXCJcbiAgICAgICAgICAgIHBvbGljeUZsb3dQaGFzZT1cIlJFU1BPTlNFXCJcbiAgICAgICAgICAgIChzdGVwc0NoYW5nZSk9XCJvblN0ZXBzQ2hhbmdlKCdyZXNwb25zZScsICRldmVudClcIlxuICAgICAgICAgID48L2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2U+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJFdmVudCBtZXNzYWdlc1wiIGJvZHlDbGFzcz1cImNvbnRlbnRfX3RhYnNfX2JvZHlcIj5cbiAgICAgICAgICA8Z2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZVxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50X19waGFzZVwiXG4gICAgICAgICAgICBuYW1lPVwiUHVibGlzaCBwaGFzZVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlBvbGljaWVzIHdpbGwgYmUgYXBwbGllZCBvbiBtZXNzYWdlcyBzZW50IHRvIHRoZSBlbmRwb2ludFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgW3N0YXJ0Q29ubmVjdG9yXT1cIm1lc3NhZ2VGbG93RW50cnlwb2ludHNJbmZvIHwgZ2lvRmlsdGVyQ29ubmVjdG9yc0J5TW9kZTogJ1BVQkxJU0gnIDogb3BlcmF0aW9uc1wiXG4gICAgICAgICAgICBbZW5kQ29ubmVjdG9yXT1cImVuZHBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnUFVCTElTSCcgOiBvcGVyYXRpb25zXCJcbiAgICAgICAgICAgIFtzdGVwc109XCJmbG93LnB1Ymxpc2ggPz8gW11cIlxuICAgICAgICAgICAgW2FwaVR5cGVdPVwiYXBpVHlwZVwiXG4gICAgICAgICAgICBbZ2VuZXJpY1BvbGljaWVzXT1cImdlbmVyaWNQb2xpY2llc1wiXG4gICAgICAgICAgICBbdHJpYWxVcmxdPVwidHJpYWxVcmxcIlxuICAgICAgICAgICAgcG9saWN5Rmxvd1BoYXNlPVwiUFVCTElTSFwiXG4gICAgICAgICAgICAoc3RlcHNDaGFuZ2UpPVwib25TdGVwc0NoYW5nZSgncHVibGlzaCcsICRldmVudClcIlxuICAgICAgICAgID48L2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2U+XG4gICAgICAgICAgPGdpby1wcy1mbG93LWRldGFpbHMtcGhhc2VcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudF9fcGhhc2VcIlxuICAgICAgICAgICAgbmFtZT1cIlN1YnNjcmliZSBwaGFzZVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlBvbGljaWVzIHdpbGwgYmUgYXBwbGllZCBvbiBtZXNzYWdlcyByZWNlaXZlZCBieSB0aGUgZW50cnlwb2ludFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgW3N0YXJ0Q29ubmVjdG9yXT1cImVuZHBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnU1VCU0NSSUJFJyA6IG9wZXJhdGlvbnNcIlxuICAgICAgICAgICAgW2VuZENvbm5lY3Rvcl09XCJtZXNzYWdlRmxvd0VudHJ5cG9pbnRzSW5mbyB8IGdpb0ZpbHRlckNvbm5lY3RvcnNCeU1vZGU6ICdTVUJTQ1JJQkUnIDogb3BlcmF0aW9uc1wiXG4gICAgICAgICAgICBbc3RlcHNdPVwiZmxvdy5zdWJzY3JpYmUgPz8gW11cIlxuICAgICAgICAgICAgW2FwaVR5cGVdPVwiYXBpVHlwZVwiXG4gICAgICAgICAgICBbZ2VuZXJpY1BvbGljaWVzXT1cImdlbmVyaWNQb2xpY2llc1wiXG4gICAgICAgICAgICBbdHJpYWxVcmxdPVwidHJpYWxVcmxcIlxuICAgICAgICAgICAgcG9saWN5Rmxvd1BoYXNlPVwiU1VCU0NSSUJFXCJcbiAgICAgICAgICAgIChzdGVwc0NoYW5nZSk9XCJvblN0ZXBzQ2hhbmdlKCdzdWJzY3JpYmUnLCAkZXZlbnQpXCJcbiAgICAgICAgICA+PC9naW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlPlxuICAgICAgICA8L21hdC10YWI+XG4gICAgICA8L21hdC10YWItZ3JvdXA+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcGlUeXBlID09PSAnUFJPWFknXCI+XG4gICAgICAgIDxnaW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlXG4gICAgICAgICAgY2xhc3M9XCJjb250ZW50X19waGFzZVwiXG4gICAgICAgICAgbmFtZT1cIlJlcXVlc3QgcGhhc2VcIlxuICAgICAgICAgIGRlc2NyaXB0aW9uPVwiUG9saWNpZXMgd2lsbCBiZSBhcHBsaWVkIGR1cmluZyB0aGUgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50XCJcbiAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgIFtzdGFydENvbm5lY3Rvcl09XCJlbnRyeXBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnUkVRVUVTVF9SRVNQT05TRSdcIlxuICAgICAgICAgIFtlbmRDb25uZWN0b3JdPVwiZW5kcG9pbnRzSW5mbyB8IGdpb0ZpbHRlckNvbm5lY3RvcnNCeU1vZGU6ICdSRVFVRVNUX1JFU1BPTlNFJ1wiXG4gICAgICAgICAgW3N0ZXBzXT1cImZsb3cucmVxdWVzdCA/PyBbXVwiXG4gICAgICAgICAgW2FwaVR5cGVdPVwiYXBpVHlwZVwiXG4gICAgICAgICAgW2dlbmVyaWNQb2xpY2llc109XCJnZW5lcmljUG9saWNpZXNcIlxuICAgICAgICAgIFt0cmlhbFVybF09XCJ0cmlhbFVybFwiXG4gICAgICAgICAgcG9saWN5Rmxvd1BoYXNlPVwiUkVRVUVTVFwiXG4gICAgICAgICAgKHN0ZXBzQ2hhbmdlKT1cIm9uU3RlcHNDaGFuZ2UoJ3JlcXVlc3QnLCAkZXZlbnQpXCJcbiAgICAgICAgPjwvZ2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZT5cbiAgICAgICAgPGdpby1wcy1mbG93LWRldGFpbHMtcGhhc2VcbiAgICAgICAgICBjbGFzcz1cImNvbnRlbnRfX3BoYXNlXCJcbiAgICAgICAgICBuYW1lPVwiUmVzcG9uc2UgcGhhc2VcIlxuICAgICAgICAgIGRlc2NyaXB0aW9uPVwiUG9saWNpZXMgd2lsbCBiZSBhcHBsaWVkIGR1cmluZyB0aGUgY29ubmVjdGlvbiB0ZXJtaW5hdGlvblwiXG4gICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgICBbc3RhcnRDb25uZWN0b3JdPVwiZW5kcG9pbnRzSW5mbyB8IGdpb0ZpbHRlckNvbm5lY3RvcnNCeU1vZGU6ICdSRVFVRVNUX1JFU1BPTlNFJ1wiXG4gICAgICAgICAgW2VuZENvbm5lY3Rvcl09XCJlbnRyeXBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnUkVRVUVTVF9SRVNQT05TRSdcIlxuICAgICAgICAgIFtzdGVwc109XCJmbG93LnJlc3BvbnNlID8/IFtdXCJcbiAgICAgICAgICBbYXBpVHlwZV09XCJhcGlUeXBlXCJcbiAgICAgICAgICBbZ2VuZXJpY1BvbGljaWVzXT1cImdlbmVyaWNQb2xpY2llc1wiXG4gICAgICAgICAgW3RyaWFsVXJsXT1cInRyaWFsVXJsXCJcbiAgICAgICAgICBwb2xpY3lGbG93UGhhc2U9XCJSRVNQT05TRVwiXG4gICAgICAgICAgKHN0ZXBzQ2hhbmdlKT1cIm9uU3RlcHNDaGFuZ2UoJ3Jlc3BvbnNlJywgJGV2ZW50KVwiXG4gICAgICAgID48L2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2U+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG1hdC10YWItZ3JvdXAgKm5nSWY9XCJhcGlUeXBlID09PSAnTkFUSVZFJ1wiIGNsYXNzPVwiY29udGVudF9fdGFic1wiIGR5bmFtaWNIZWlnaHQ+XG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiR2xvYmFsXCIgYm9keUNsYXNzPVwiY29udGVudF9fdGFic19fYm9keVwiPlxuICAgICAgICAgIDxnaW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnRfX3BoYXNlXCJcbiAgICAgICAgICAgIG5hbWU9XCJDb25uZWN0IHBoYXNlXCJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiUG9saWNpZXMgd2lsbCBiZSBhcHBsaWVkIHdoZW4gdGhlIGNsaWVudCBjb25uZWN0cyB0byB0aGUgR2F0ZXdheVwiXG4gICAgICAgICAgICBbZGlzYWJsZWROb3RZZXRBdmFpbGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgW3N0YXJ0Q29ubmVjdG9yXT1cImVuZHBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnQ09OTkVDVCdcIlxuICAgICAgICAgICAgW2VuZENvbm5lY3Rvcl09XCJlbnRyeXBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnQ09OTkVDVCdcIlxuICAgICAgICAgICAgW3N0ZXBzXT1cImZsb3cuY29ubmVjdCA/PyBbXVwiXG4gICAgICAgICAgICBbYXBpVHlwZV09XCJhcGlUeXBlXCJcbiAgICAgICAgICAgIFtnZW5lcmljUG9saWNpZXNdPVwiZ2VuZXJpY1BvbGljaWVzXCJcbiAgICAgICAgICAgIFt0cmlhbFVybF09XCJ0cmlhbFVybFwiXG4gICAgICAgICAgICBwb2xpY3lGbG93UGhhc2U9XCJDT05ORUNUXCJcbiAgICAgICAgICAgIChzdGVwc0NoYW5nZSk9XCJvblN0ZXBzQ2hhbmdlKCdjb25uZWN0JywgJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvZ2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZT5cbiAgICAgICAgICA8Z2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZVxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50X19waGFzZVwiXG4gICAgICAgICAgICBuYW1lPVwiSW50ZXJhY3QgcGhhc2VcIlxuICAgICAgICAgICAgZGVzY3JpcHRpb249XCJQb2xpY2llcyB3aWxsIGJlIGFwcGxpZWQgb24gYWxsIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHRoZSBHYXRld2F5XCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICBbc3RhcnRDb25uZWN0b3JdPVwiZW5kcG9pbnRzSW5mbyB8IGdpb0ZpbHRlckNvbm5lY3RvcnNCeU1vZGU6ICdJTlRFUkFDVCdcIlxuICAgICAgICAgICAgW2VuZENvbm5lY3Rvcl09XCJlbnRyeXBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnSU5URVJBQ1QnXCJcbiAgICAgICAgICAgIFtzdGVwc109XCJmbG93LmludGVyYWN0ID8/IFtdXCJcbiAgICAgICAgICAgIFthcGlUeXBlXT1cImFwaVR5cGVcIlxuICAgICAgICAgICAgW2dlbmVyaWNQb2xpY2llc109XCJnZW5lcmljUG9saWNpZXNcIlxuICAgICAgICAgICAgW3RyaWFsVXJsXT1cInRyaWFsVXJsXCJcbiAgICAgICAgICAgIHBvbGljeUZsb3dQaGFzZT1cIklOVEVSQUNUXCJcbiAgICAgICAgICAgIChzdGVwc0NoYW5nZSk9XCJvblN0ZXBzQ2hhbmdlKCdpbnRlcmFjdCcsICRldmVudClcIlxuICAgICAgICAgID48L2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2U+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJFdmVudCBtZXNzYWdlc1wiIGJvZHlDbGFzcz1cImNvbnRlbnRfX3RhYnNfX2JvZHlcIj5cbiAgICAgICAgICA8Z2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZVxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50X19waGFzZVwiXG4gICAgICAgICAgICBuYW1lPVwiUHVibGlzaCBwaGFzZVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlBvbGljaWVzIHdpbGwgYmUgYXBwbGllZCB3aGVuIHB1Ymxpc2hpbmcgbWVzc2FnZXNcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgICAgIFtzdGFydENvbm5lY3Rvcl09XCJlbmRwb2ludHNJbmZvIHwgZ2lvRmlsdGVyQ29ubmVjdG9yc0J5TW9kZTogJ1BVQkxJU0gnXCJcbiAgICAgICAgICAgIFtlbmRDb25uZWN0b3JdPVwiZW50cnlwb2ludHNJbmZvIHwgZ2lvRmlsdGVyQ29ubmVjdG9yc0J5TW9kZTogJ1BVQkxJU0gnXCJcbiAgICAgICAgICAgIFtzdGVwc109XCJmbG93LnB1Ymxpc2ggPz8gW11cIlxuICAgICAgICAgICAgW2FwaVR5cGVdPVwiYXBpVHlwZVwiXG4gICAgICAgICAgICBbZ2VuZXJpY1BvbGljaWVzXT1cImdlbmVyaWNQb2xpY2llc1wiXG4gICAgICAgICAgICBbdHJpYWxVcmxdPVwidHJpYWxVcmxcIlxuICAgICAgICAgICAgcG9saWN5Rmxvd1BoYXNlPVwiUFVCTElTSFwiXG4gICAgICAgICAgICAoc3RlcHNDaGFuZ2UpPVwib25TdGVwc0NoYW5nZSgncHVibGlzaCcsICRldmVudClcIlxuICAgICAgICAgID48L2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2U+XG4gICAgICAgICAgPGdpby1wcy1mbG93LWRldGFpbHMtcGhhc2VcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudF9fcGhhc2VcIlxuICAgICAgICAgICAgbmFtZT1cIlN1YnNjcmliZSBwaGFzZVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlBvbGljaWVzIHdpbGwgYmUgYXBwbGllZCB3aGVuIGZldGNoaW5nIG1lc3NhZ2VzXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICBbc3RhcnRDb25uZWN0b3JdPVwiZW5kcG9pbnRzSW5mbyB8IGdpb0ZpbHRlckNvbm5lY3RvcnNCeU1vZGU6ICdTVUJTQ1JJQkUnXCJcbiAgICAgICAgICAgIFtlbmRDb25uZWN0b3JdPVwiZW50cnlwb2ludHNJbmZvIHwgZ2lvRmlsdGVyQ29ubmVjdG9yc0J5TW9kZTogJ1NVQlNDUklCRSdcIlxuICAgICAgICAgICAgW3N0ZXBzXT1cImZsb3cuc3Vic2NyaWJlID8/IFtdXCJcbiAgICAgICAgICAgIFthcGlUeXBlXT1cImFwaVR5cGVcIlxuICAgICAgICAgICAgW2dlbmVyaWNQb2xpY2llc109XCJnZW5lcmljUG9saWNpZXNcIlxuICAgICAgICAgICAgW3RyaWFsVXJsXT1cInRyaWFsVXJsXCJcbiAgICAgICAgICAgIHBvbGljeUZsb3dQaGFzZT1cIlNVQlNDUklCRVwiXG4gICAgICAgICAgICAoc3RlcHNDaGFuZ2UpPVwib25TdGVwc0NoYW5nZSgnc3Vic2NyaWJlJywgJGV2ZW50KVwiXG4gICAgICAgICAgPjwvZ2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZT5cbiAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI2VtcHR5Rmxvd3M+XG4gICAgPGRpdiBjbGFzcz1cImVtcHR5Rmxvd3NcIj5cbiAgICAgIDxoMj5ObyBmbG93cyB5ZXQ8L2gyPlxuICAgICAgPHAgY2xhc3M9XCJtYXQtYm9keS0xXCI+Rmxvd3MgYWxsb3cgeW91IHRvIGN1c3RvbWl6ZSB0aGUgYmVoYXZpb3Igb2YgeW91ciBBUEkgZXZlbnQgcGhhc2VzIHRocm91Z2ggY29uZmlndXJhYmxlIHBvbGljaWVzPC9wPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyIGxvYWRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyX19sYWJlbFwiPkZsb3cgZGV0YWlsczwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2NvbmZpZ0J0blwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImhlYWRlcl9fY29uZmlnQnRuX19lZGl0XCIgbWF0LXN0cm9rZWQtYnV0dG9uIGRpc2FibGVkPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzplZGl0LXBlbmNpbFwiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJoZWFkZXJfX2NvbmZpZ0J0bl9fZGVsZXRlXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGRpc2FibGVkPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzp0cmFzaFwiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxnaW8tcHMtZmxvdy1kZXRhaWxzLWluZm8tYmFyIGNsYXNzPVwiaW5mb0JhciBsb2FkaW5nXCI+PC9naW8tcHMtZmxvdy1kZXRhaWxzLWluZm8tYmFyPlxuICA8ZGl2IGNsYXNzPVwiY29udGVudCBsb2FkaW5nXCI+XG4gICAgPGdpby1sb2FkZXI+PC9naW8tbG9hZGVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Zsb3ctZGV0YWlscy9naW8tcHMtZmxvdy1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvdy1kZXRhaWxzL2dpby1wcy1mbG93LWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc3RCxPQUFPLEVBQ0wsNkNBQTZDLEdBRTlDLE1BQU0sd0ZBQXdGLENBQUM7QUFFaEcsT0FBTyxFQUNMLDJDQUEyQyxHQUU1QyxNQUFNLG9GQUFvRixDQUFDO0FBRTVGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJE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LENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixHQUFHLElBQUksQ0FBQyxJQUFJO1lBQ1osQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLO1lBQ2xCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBMUpVLCtCQUErQjtrR0FBL0IsK0JBQStCLGlaQzlENUMsd3lWQTBPQSxxOUJEM0xJLFlBQVksa0lBQ1osYUFBYSw0b0JBQ2IsZUFBZSwyTkFDZixjQUFjLG9MQUNkLG9DQUFvQywyUUFDcEMsNkJBQTZCLGlFQUM3QixlQUFlLDJHQUNmLHNDQUFzQyw2R0FDdEMsZ0JBQWdCLDRUQUNoQixlQUFlOzsyRkFNTiwrQkFBK0I7a0JBbEIzQyxTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixjQUFjO3dCQUNkLG9DQUFvQzt3QkFDcEMsNkJBQTZCO3dCQUM3QixlQUFlO3dCQUNmLHNDQUFzQzt3QkFDdEMsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQixZQUNTLHFCQUFxQjs4RUFNeEIsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsTUFBTTtnQkFJQSxVQUFVO3NCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMiBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEdJT19ESUFMT0dfV0lEVEgsIEdpb0Jhbm5lck1vZHVsZSwgR2lvSWNvbnNNb2R1bGUsIEdpb0xvYWRlck1vZHVsZSB9IGZyb20gJ0BncmF2aXRlZS91aS1wYXJ0aWNsZXMtYW5ndWxhcic7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgRmxvd1ZNIH0gZnJvbSAnLi4vLi4vcG9saWN5LXN0dWRpby9naW8tcG9saWN5LXN0dWRpby5tb2RlbCc7XG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEFwaVR5cGUsIENoYW5uZWxTZWxlY3RvciwgQ29ubmVjdG9ySW5mbywgT3BlcmF0aW9uLCBQb2xpY3ksIFN0ZXAsIEdlbmVyaWNQb2xpY3kgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1wcm94eS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1wcm94eS1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQgfSBmcm9tICcuLi9mbG93LWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LWZvcm0tZGlhbG9nLXJlc3VsdC5tb2RlbCc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9EZXRhaWxzUGhhc2VDb21wb25lbnQgfSBmcm9tICcuLi9mbG93LWRldGFpbHMtcGhhc2UvZ2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvRmlsdGVyQ29ubmVjdG9yc0J5TW9kZVBpcGUgfSBmcm9tICcuLi9maWx0ZXItcGlwZS9naW8tZmx0ZXItY29ubmVjdG9ycy1ieS1tb2RlLnBpcGUnO1xuaW1wb3J0IHsgR2lvUG9saWN5U3R1ZGlvRGV0YWlsc0luZm9CYXJDb21wb25lbnQgfSBmcm9tICcuLi9mbG93LWRldGFpbHMtaW5mby1iYXIvZ2lvLXBzLWZsb3ctZGV0YWlscy1pbmZvLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd05hdGl2ZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9mbG93LW5hdGl2ZS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1uYXRpdmUtZm9ybS1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0VGFic01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgR2lvSWNvbnNNb2R1bGUsXG4gICAgR2lvUG9saWN5U3R1ZGlvRGV0YWlsc1BoYXNlQ29tcG9uZW50LFxuICAgIEdpb0ZpbHRlckNvbm5lY3RvcnNCeU1vZGVQaXBlLFxuICAgIEdpb0xvYWRlck1vZHVsZSxcbiAgICBHaW9Qb2xpY3lTdHVkaW9EZXRhaWxzSW5mb0JhckNvbXBvbmVudCxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIEdpb0Jhbm5lck1vZHVsZSxcbiAgXSxcbiAgc2VsZWN0b3I6ICdnaW8tcHMtZmxvdy1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1mbG93LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtZmxvdy1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb0RldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVhZE9ubHkgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcGlUeXBlITogQXBpVHlwZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmxvdz86IEZsb3dWTSA9IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZW50cnlwb2ludHNJbmZvOiBDb25uZWN0b3JJbmZvW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZW5kcG9pbnRzSW5mbzogQ29ubmVjdG9ySW5mb1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBvbGljaWVzOiBQb2xpY3lbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZW5lcmljUG9saWNpZXM6IEdlbmVyaWNQb2xpY3lbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cmlhbFVybD86IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGZsb3dDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dWTT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGRlbGV0ZUZsb3cgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dWTT4oKTtcblxuICBwdWJsaWMgbWVzc2FnZUZsb3dFbnRyeXBvaW50c0luZm86IENvbm5lY3RvckluZm9bXSA9IFtdO1xuXG4gIHB1YmxpYyBvcGVyYXRpb25zOiBPcGVyYXRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5lbnRyeXBvaW50c0luZm8gfHwgY2hhbmdlcy5mbG93KSB7XG4gICAgICBjb25zdCBjaGFubmVsU2VsZWN0b3IgPSB0aGlzLmZsb3c/LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0NIQU5ORUwnKSBhcyBDaGFubmVsU2VsZWN0b3I7XG5cbiAgICAgIHRoaXMub3BlcmF0aW9ucyA9IGNoYW5uZWxTZWxlY3Rvcj8ub3BlcmF0aW9ucyA/PyBbXTtcblxuICAgICAgaWYgKCFjaGFubmVsU2VsZWN0b3IpIHtcbiAgICAgICAgLy8gSWYgbm8gY2hhbm5lbCBzZWxlY3RvciBmb3VuZC4gS2VlcCBkZWZhdWx0IHZhbHVlXG4gICAgICAgIHRoaXMubWVzc2FnZUZsb3dFbnRyeXBvaW50c0luZm8gPSBbXTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm1lc3NhZ2VGbG93RW50cnlwb2ludHNJbmZvID1cbiAgICAgICAgdGhpcy5lbnRyeXBvaW50c0luZm8/LmZpbHRlcihcbiAgICAgICAgICBlID0+XG4gICAgICAgICAgICAvLyBJZiBub3QgZW50cnlwb2ludHMgYXJlIGRlZmluZWQsIGFsbCBlbnRyeXBvaW50cyBhcmUgdmFsaWRcbiAgICAgICAgICAgICFjaGFubmVsU2VsZWN0b3IuZW50cnlwb2ludHMgfHwgaXNFbXB0eShjaGFubmVsU2VsZWN0b3IuZW50cnlwb2ludHMpIHx8IGNoYW5uZWxTZWxlY3Rvci5lbnRyeXBvaW50cz8uaW5jbHVkZXMoZS50eXBlKSxcbiAgICAgICAgKSA/PyBbXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25FZGl0RmxvdygpOiB2b2lkIHtcbiAgICBsZXQgZGlhbG9nUmVzdWx0O1xuICAgIHN3aXRjaCAodGhpcy5hcGlUeXBlKSB7XG4gICAgICBjYXNlICdNRVNTQUdFJzpcbiAgICAgICAgZGlhbG9nUmVzdWx0ID0gdGhpcy5tYXREaWFsb2dcbiAgICAgICAgICAub3BlbjxcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0RhdGEsXG4gICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdFxuICAgICAgICAgID4oR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIGZsb3c6IHRoaXMuZmxvdyxcbiAgICAgICAgICAgICAgZW50cnlwb2ludHM6IHRoaXMuZW50cnlwb2ludHNJbmZvID8/IFtdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgICAgICBpZDogJ2dpb1BzRmxvd01lc3NhZ2VGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgIHdpZHRoOiBHSU9fRElBTE9HX1dJRFRILk1FRElVTSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5hZnRlckNsb3NlZCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1BST1hZJzpcbiAgICAgICAgZGlhbG9nUmVzdWx0ID0gdGhpcy5tYXREaWFsb2dcbiAgICAgICAgICAub3BlbjxHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSwgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQ+KFxuICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGZsb3c6IHRoaXMuZmxvdyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dQcm94eUZvcm1EaWFsb2cnLFxuICAgICAgICAgICAgICB3aWR0aDogR0lPX0RJQUxPR19XSURUSC5NRURJVU0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIClcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdOQVRJVkUnOlxuICAgICAgICBkaWFsb2dSZXN1bHQgPSB0aGlzLm1hdERpYWxvZ1xuICAgICAgICAgIC5vcGVuPEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93TmF0aXZlRm9ybURpYWxvZ0RhdGEsIEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0PihcbiAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dOYXRpdmVGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZmxvdzogdGhpcy5mbG93LFxuICAgICAgICAgICAgICAgIHBhcmVudEdyb3VwTmFtZTogdGhpcy5mbG93IS5fcGFyZW50Rmxvd0dyb3VwTmFtZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dOYXRpdmVGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBBUEkgdHlwZSAke3RoaXMuYXBpVHlwZX1gKTtcbiAgICB9XG5cbiAgICBkaWFsb2dSZXN1bHRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoY3JlYXRlZE9yRWRpdGVkID0+IHtcbiAgICAgICAgICBpZiAoIWNyZWF0ZWRPckVkaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZsb3dDaGFuZ2UuZW1pdChjcmVhdGVkT3JFZGl0ZWQpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlbGV0ZUZsb3coKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGVGbG93LmVtaXQodGhpcy5mbG93KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVuYWJsZURpc2FibGVGbG93KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mbG93KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5mbG93Q2hhbmdlLmVtaXQoe1xuICAgICAgLi4udGhpcy5mbG93LFxuICAgICAgZW5hYmxlZDogIXRoaXMuZmxvdy5lbmFibGVkLFxuICAgICAgX2hhc0NoYW5nZWQ6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25TdGVwc0NoYW5nZShmbG93UGhhc2U6ICdjb25uZWN0JyB8ICdpbnRlcmFjdCcgfCAncmVxdWVzdCcgfCAncmVzcG9uc2UnIHwgJ3B1Ymxpc2gnIHwgJ3N1YnNjcmliZScsIHN0ZXBzOiBTdGVwW10pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZmxvdykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmxvd0NoYW5nZS5lbWl0KHtcbiAgICAgIC4uLnRoaXMuZmxvdyxcbiAgICAgIFtmbG93UGhhc2VdOiBzdGVwcyxcbiAgICAgIF9oYXNDaGFuZ2VkOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAgICBcbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgICBcbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICAgIFxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nOyB0aGVuIGZsb3dEZXRhaWxzVHBsOyBlbHNlIGxvYWRpbmdUcGxcIj48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNmbG93RGV0YWlsc1RwbD5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZsb3c7IGVsc2UgZW1wdHlGbG93c1wiPlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2xhYmVsXCI+XG4gICAgICAgIEZsb3cgZGV0YWlsc1xuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWZsb3cuZW5hYmxlZFwiIGNsYXNzPVwiZ2lvLWJhZGdlIGdpby1iYWRnZS1uZXV0cmFsXCI+RGlzYWJsZWQ8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fY29uZmlnQnRuXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwicmVhZE9ubHlcIlxuICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19jb25maWdCdG5fX2VuYWJsZURpc2FibGVcIlxuICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgIFttYXRUb29sdGlwXT1cImZsb3cuZW5hYmxlZCA/ICdEaXNhYmxlJyA6ICdFbmFibGUnXCJcbiAgICAgICAgICAoY2xpY2spPVwib25FbmFibGVEaXNhYmxlRmxvdygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJmbG93LmVuYWJsZWQgPyAnZ2lvOnByb2hpYml0aW9uJyA6ICdnaW86Y2hlY2stY2lyY2xlZC1vdXRsaW5lJ1wiPjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJyZWFkT25seVwiIGNsYXNzPVwiaGVhZGVyX19jb25maWdCdG5fX2VkaXRcIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIm9uRWRpdEZsb3coKVwiIG1hdFRvb2x0aXA9XCJFZGl0XCI+XG4gICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86ZWRpdC1wZW5jaWxcIj48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicmVhZE9ubHlcIiBjbGFzcz1cImhlYWRlcl9fY29uZmlnQnRuX19kZWxldGVcIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIm9uRGVsZXRlRmxvdygpXCIgbWF0VG9vbHRpcD1cIkRlbGV0ZVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOnRyYXNoXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8Z2lvLXBzLWZsb3ctZGV0YWlscy1pbmZvLWJhciBjbGFzcz1cImluZm9CYXJcIiBbZmxvd109XCJmbG93XCIgW2VudHJ5cG9pbnRzSW5mb109XCJlbnRyeXBvaW50c0luZm9cIj48L2dpby1wcy1mbG93LWRldGFpbHMtaW5mby1iYXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgPG1hdC10YWItZ3JvdXAgKm5nSWY9XCJhcGlUeXBlID09PSAnTUVTU0FHRSdcIiBjbGFzcz1cImNvbnRlbnRfX3RhYnNcIiBkeW5hbWljSGVpZ2h0PlxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkluaXRpYWwgY29ubmVjdGlvblwiIGJvZHlDbGFzcz1cImNvbnRlbnRfX3RhYnNfX2JvZHlcIj5cbiAgICAgICAgICA8Z2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZVxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50X19waGFzZVwiXG4gICAgICAgICAgICBuYW1lPVwiUmVxdWVzdCBwaGFzZVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlBvbGljaWVzIHdpbGwgYmUgYXBwbGllZCBkdXJpbmcgdGhlIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgW3N0YXJ0Q29ubmVjdG9yXT1cIm1lc3NhZ2VGbG93RW50cnlwb2ludHNJbmZvXCJcbiAgICAgICAgICAgIFtlbmRDb25uZWN0b3JdPVwiZW5kcG9pbnRzSW5mb1wiXG4gICAgICAgICAgICBbc3RlcHNdPVwiZmxvdy5yZXF1ZXN0ID8/IFtdXCJcbiAgICAgICAgICAgIFthcGlUeXBlXT1cImFwaVR5cGVcIlxuICAgICAgICAgICAgW2dlbmVyaWNQb2xpY2llc109XCJnZW5lcmljUG9saWNpZXNcIlxuICAgICAgICAgICAgW3RyaWFsVXJsXT1cInRyaWFsVXJsXCJcbiAgICAgICAgICAgIHBvbGljeUZsb3dQaGFzZT1cIlJFUVVFU1RcIlxuICAgICAgICAgICAgKHN0ZXBzQ2hhbmdlKT1cIm9uU3RlcHNDaGFuZ2UoJ3JlcXVlc3QnLCAkZXZlbnQpXCJcbiAgICAgICAgICA+PC9naW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlPlxuICAgICAgICAgIDxnaW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnRfX3BoYXNlXCJcbiAgICAgICAgICAgIG5hbWU9XCJSZXNwb25zZSBwaGFzZVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlBvbGljaWVzIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgaW5pdGlhbCBjb25uZWN0aW9uXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICBbc3RhcnRDb25uZWN0b3JdPVwiZW5kcG9pbnRzSW5mb1wiXG4gICAgICAgICAgICBbZW5kQ29ubmVjdG9yXT1cIm1lc3NhZ2VGbG93RW50cnlwb2ludHNJbmZvXCJcbiAgICAgICAgICAgIFtzdGVwc109XCJmbG93LnJlc3BvbnNlID8/IFtdXCJcbiAgICAgICAgICAgIFthcGlUeXBlXT1cImFwaVR5cGVcIlxuICAgICAgICAgICAgW2dlbmVyaWNQb2xpY2llc109XCJnZW5lcmljUG9saWNpZXNcIlxuICAgICAgICAgICAgW3RyaWFsVXJsXT1cInRyaWFsVXJsXCJcbiAgICAgICAgICAgIHBvbGljeUZsb3dQaGFzZT1cIlJFU1BPTlNFXCJcbiAgICAgICAgICAgIChzdGVwc0NoYW5nZSk9XCJvblN0ZXBzQ2hhbmdlKCdyZXNwb25zZScsICRldmVudClcIlxuICAgICAgICAgID48L2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2U+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJFdmVudCBtZXNzYWdlc1wiIGJvZHlDbGFzcz1cImNvbnRlbnRfX3RhYnNfX2JvZHlcIj5cbiAgICAgICAgICA8Z2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZVxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50X19waGFzZVwiXG4gICAgICAgICAgICBuYW1lPVwiUHVibGlzaCBwaGFzZVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlBvbGljaWVzIHdpbGwgYmUgYXBwbGllZCBvbiBtZXNzYWdlcyBzZW50IHRvIHRoZSBlbmRwb2ludFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgW3N0YXJ0Q29ubmVjdG9yXT1cIm1lc3NhZ2VGbG93RW50cnlwb2ludHNJbmZvIHwgZ2lvRmlsdGVyQ29ubmVjdG9yc0J5TW9kZTogJ1BVQkxJU0gnIDogb3BlcmF0aW9uc1wiXG4gICAgICAgICAgICBbZW5kQ29ubmVjdG9yXT1cImVuZHBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnUFVCTElTSCcgOiBvcGVyYXRpb25zXCJcbiAgICAgICAgICAgIFtzdGVwc109XCJmbG93LnB1Ymxpc2ggPz8gW11cIlxuICAgICAgICAgICAgW2FwaVR5cGVdPVwiYXBpVHlwZVwiXG4gICAgICAgICAgICBbZ2VuZXJpY1BvbGljaWVzXT1cImdlbmVyaWNQb2xpY2llc1wiXG4gICAgICAgICAgICBbdHJpYWxVcmxdPVwidHJpYWxVcmxcIlxuICAgICAgICAgICAgcG9saWN5Rmxvd1BoYXNlPVwiUFVCTElTSFwiXG4gICAgICAgICAgICAoc3RlcHNDaGFuZ2UpPVwib25TdGVwc0NoYW5nZSgncHVibGlzaCcsICRldmVudClcIlxuICAgICAgICAgID48L2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2U+XG4gICAgICAgICAgPGdpby1wcy1mbG93LWRldGFpbHMtcGhhc2VcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudF9fcGhhc2VcIlxuICAgICAgICAgICAgbmFtZT1cIlN1YnNjcmliZSBwaGFzZVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlBvbGljaWVzIHdpbGwgYmUgYXBwbGllZCBvbiBtZXNzYWdlcyByZWNlaXZlZCBieSB0aGUgZW50cnlwb2ludFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgW3N0YXJ0Q29ubmVjdG9yXT1cImVuZHBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnU1VCU0NSSUJFJyA6IG9wZXJhdGlvbnNcIlxuICAgICAgICAgICAgW2VuZENvbm5lY3Rvcl09XCJtZXNzYWdlRmxvd0VudHJ5cG9pbnRzSW5mbyB8IGdpb0ZpbHRlckNvbm5lY3RvcnNCeU1vZGU6ICdTVUJTQ1JJQkUnIDogb3BlcmF0aW9uc1wiXG4gICAgICAgICAgICBbc3RlcHNdPVwiZmxvdy5zdWJzY3JpYmUgPz8gW11cIlxuICAgICAgICAgICAgW2FwaVR5cGVdPVwiYXBpVHlwZVwiXG4gICAgICAgICAgICBbZ2VuZXJpY1BvbGljaWVzXT1cImdlbmVyaWNQb2xpY2llc1wiXG4gICAgICAgICAgICBbdHJpYWxVcmxdPVwidHJpYWxVcmxcIlxuICAgICAgICAgICAgcG9saWN5Rmxvd1BoYXNlPVwiU1VCU0NSSUJFXCJcbiAgICAgICAgICAgIChzdGVwc0NoYW5nZSk9XCJvblN0ZXBzQ2hhbmdlKCdzdWJzY3JpYmUnLCAkZXZlbnQpXCJcbiAgICAgICAgICA+PC9naW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlPlxuICAgICAgICA8L21hdC10YWI+XG4gICAgICA8L21hdC10YWItZ3JvdXA+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcGlUeXBlID09PSAnUFJPWFknXCI+XG4gICAgICAgIDxnaW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlXG4gICAgICAgICAgY2xhc3M9XCJjb250ZW50X19waGFzZVwiXG4gICAgICAgICAgbmFtZT1cIlJlcXVlc3QgcGhhc2VcIlxuICAgICAgICAgIGRlc2NyaXB0aW9uPVwiUG9saWNpZXMgd2lsbCBiZSBhcHBsaWVkIGR1cmluZyB0aGUgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50XCJcbiAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgIFtzdGFydENvbm5lY3Rvcl09XCJlbnRyeXBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnUkVRVUVTVF9SRVNQT05TRSdcIlxuICAgICAgICAgIFtlbmRDb25uZWN0b3JdPVwiZW5kcG9pbnRzSW5mbyB8IGdpb0ZpbHRlckNvbm5lY3RvcnNCeU1vZGU6ICdSRVFVRVNUX1JFU1BPTlNFJ1wiXG4gICAgICAgICAgW3N0ZXBzXT1cImZsb3cucmVxdWVzdCA/PyBbXVwiXG4gICAgICAgICAgW2FwaVR5cGVdPVwiYXBpVHlwZVwiXG4gICAgICAgICAgW2dlbmVyaWNQb2xpY2llc109XCJnZW5lcmljUG9saWNpZXNcIlxuICAgICAgICAgIFt0cmlhbFVybF09XCJ0cmlhbFVybFwiXG4gICAgICAgICAgcG9saWN5Rmxvd1BoYXNlPVwiUkVRVUVTVFwiXG4gICAgICAgICAgKHN0ZXBzQ2hhbmdlKT1cIm9uU3RlcHNDaGFuZ2UoJ3JlcXVlc3QnLCAkZXZlbnQpXCJcbiAgICAgICAgPjwvZ2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZT5cbiAgICAgICAgPGdpby1wcy1mbG93LWRldGFpbHMtcGhhc2VcbiAgICAgICAgICBjbGFzcz1cImNvbnRlbnRfX3BoYXNlXCJcbiAgICAgICAgICBuYW1lPVwiUmVzcG9uc2UgcGhhc2VcIlxuICAgICAgICAgIGRlc2NyaXB0aW9uPVwiUG9saWNpZXMgd2lsbCBiZSBhcHBsaWVkIGR1cmluZyB0aGUgY29ubmVjdGlvbiB0ZXJtaW5hdGlvblwiXG4gICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgICBbc3RhcnRDb25uZWN0b3JdPVwiZW5kcG9pbnRzSW5mbyB8IGdpb0ZpbHRlckNvbm5lY3RvcnNCeU1vZGU6ICdSRVFVRVNUX1JFU1BPTlNFJ1wiXG4gICAgICAgICAgW2VuZENvbm5lY3Rvcl09XCJlbnRyeXBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnUkVRVUVTVF9SRVNQT05TRSdcIlxuICAgICAgICAgIFtzdGVwc109XCJmbG93LnJlc3BvbnNlID8/IFtdXCJcbiAgICAgICAgICBbYXBpVHlwZV09XCJhcGlUeXBlXCJcbiAgICAgICAgICBbZ2VuZXJpY1BvbGljaWVzXT1cImdlbmVyaWNQb2xpY2llc1wiXG4gICAgICAgICAgW3RyaWFsVXJsXT1cInRyaWFsVXJsXCJcbiAgICAgICAgICBwb2xpY3lGbG93UGhhc2U9XCJSRVNQT05TRVwiXG4gICAgICAgICAgKHN0ZXBzQ2hhbmdlKT1cIm9uU3RlcHNDaGFuZ2UoJ3Jlc3BvbnNlJywgJGV2ZW50KVwiXG4gICAgICAgID48L2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2U+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG1hdC10YWItZ3JvdXAgKm5nSWY9XCJhcGlUeXBlID09PSAnTkFUSVZFJ1wiIGNsYXNzPVwiY29udGVudF9fdGFic1wiIGR5bmFtaWNIZWlnaHQ+XG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiR2xvYmFsXCIgYm9keUNsYXNzPVwiY29udGVudF9fdGFic19fYm9keVwiPlxuICAgICAgICAgIDxnaW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnRfX3BoYXNlXCJcbiAgICAgICAgICAgIG5hbWU9XCJDb25uZWN0IHBoYXNlXCJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiUG9saWNpZXMgd2lsbCBiZSBhcHBsaWVkIHdoZW4gdGhlIGNsaWVudCBjb25uZWN0cyB0byB0aGUgR2F0ZXdheVwiXG4gICAgICAgICAgICBbZGlzYWJsZWROb3RZZXRBdmFpbGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgW3N0YXJ0Q29ubmVjdG9yXT1cImVuZHBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnQ09OTkVDVCdcIlxuICAgICAgICAgICAgW2VuZENvbm5lY3Rvcl09XCJlbnRyeXBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnQ09OTkVDVCdcIlxuICAgICAgICAgICAgW3N0ZXBzXT1cImZsb3cuY29ubmVjdCA/PyBbXVwiXG4gICAgICAgICAgICBbYXBpVHlwZV09XCJhcGlUeXBlXCJcbiAgICAgICAgICAgIFtnZW5lcmljUG9saWNpZXNdPVwiZ2VuZXJpY1BvbGljaWVzXCJcbiAgICAgICAgICAgIFt0cmlhbFVybF09XCJ0cmlhbFVybFwiXG4gICAgICAgICAgICBwb2xpY3lGbG93UGhhc2U9XCJDT05ORUNUXCJcbiAgICAgICAgICAgIChzdGVwc0NoYW5nZSk9XCJvblN0ZXBzQ2hhbmdlKCdjb25uZWN0JywgJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvZ2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZT5cbiAgICAgICAgICA8Z2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZVxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50X19waGFzZVwiXG4gICAgICAgICAgICBuYW1lPVwiSW50ZXJhY3QgcGhhc2VcIlxuICAgICAgICAgICAgZGVzY3JpcHRpb249XCJQb2xpY2llcyB3aWxsIGJlIGFwcGxpZWQgb24gYWxsIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHRoZSBHYXRld2F5XCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICBbc3RhcnRDb25uZWN0b3JdPVwiZW50cnlwb2ludHNJbmZvIHwgZ2lvRmlsdGVyQ29ubmVjdG9yc0J5TW9kZTogJ0lOVEVSQUNUJ1wiXG4gICAgICAgICAgICBbZW5kQ29ubmVjdG9yXT1cImVuZHBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnSU5URVJBQ1QnXCJcbiAgICAgICAgICAgIFtzdGVwc109XCJmbG93LmludGVyYWN0ID8/IFtdXCJcbiAgICAgICAgICAgIFthcGlUeXBlXT1cImFwaVR5cGVcIlxuICAgICAgICAgICAgW2dlbmVyaWNQb2xpY2llc109XCJnZW5lcmljUG9saWNpZXNcIlxuICAgICAgICAgICAgW3RyaWFsVXJsXT1cInRyaWFsVXJsXCJcbiAgICAgICAgICAgIHBvbGljeUZsb3dQaGFzZT1cIklOVEVSQUNUXCJcbiAgICAgICAgICAgIChzdGVwc0NoYW5nZSk9XCJvblN0ZXBzQ2hhbmdlKCdpbnRlcmFjdCcsICRldmVudClcIlxuICAgICAgICAgID48L2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2U+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJFdmVudCBtZXNzYWdlc1wiIGJvZHlDbGFzcz1cImNvbnRlbnRfX3RhYnNfX2JvZHlcIj5cbiAgICAgICAgICA8Z2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZVxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50X19waGFzZVwiXG4gICAgICAgICAgICBuYW1lPVwiUHVibGlzaCBwaGFzZVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlBvbGljaWVzIHdpbGwgYmUgYXBwbGllZCB3aGVuIHB1Ymxpc2hpbmcgbWVzc2FnZXNcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgICAgIFtzdGFydENvbm5lY3Rvcl09XCJlbnRyeXBvaW50c0luZm8gfCBnaW9GaWx0ZXJDb25uZWN0b3JzQnlNb2RlOiAnUFVCTElTSCdcIlxuICAgICAgICAgICAgW2VuZENvbm5lY3Rvcl09XCJlbmRwb2ludHNJbmZvIHwgZ2lvRmlsdGVyQ29ubmVjdG9yc0J5TW9kZTogJ1BVQkxJU0gnXCJcbiAgICAgICAgICAgIFtzdGVwc109XCJmbG93LnB1Ymxpc2ggPz8gW11cIlxuICAgICAgICAgICAgW2FwaVR5cGVdPVwiYXBpVHlwZVwiXG4gICAgICAgICAgICBbZ2VuZXJpY1BvbGljaWVzXT1cImdlbmVyaWNQb2xpY2llc1wiXG4gICAgICAgICAgICBbdHJpYWxVcmxdPVwidHJpYWxVcmxcIlxuICAgICAgICAgICAgcG9saWN5Rmxvd1BoYXNlPVwiUFVCTElTSFwiXG4gICAgICAgICAgICAoc3RlcHNDaGFuZ2UpPVwib25TdGVwc0NoYW5nZSgncHVibGlzaCcsICRldmVudClcIlxuICAgICAgICAgID48L2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2U+XG4gICAgICAgICAgPGdpby1wcy1mbG93LWRldGFpbHMtcGhhc2VcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudF9fcGhhc2VcIlxuICAgICAgICAgICAgbmFtZT1cIlN1YnNjcmliZSBwaGFzZVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlBvbGljaWVzIHdpbGwgYmUgYXBwbGllZCB3aGVuIGZldGNoaW5nIG1lc3NhZ2VzXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICBbc3RhcnRDb25uZWN0b3JdPVwiZW5kcG9pbnRzSW5mbyB8IGdpb0ZpbHRlckNvbm5lY3RvcnNCeU1vZGU6ICdTVUJTQ1JJQkUnXCJcbiAgICAgICAgICAgIFtlbmRDb25uZWN0b3JdPVwiZW50cnlwb2ludHNJbmZvIHwgZ2lvRmlsdGVyQ29ubmVjdG9yc0J5TW9kZTogJ1NVQlNDUklCRSdcIlxuICAgICAgICAgICAgW3N0ZXBzXT1cImZsb3cuc3Vic2NyaWJlID8/IFtdXCJcbiAgICAgICAgICAgIFthcGlUeXBlXT1cImFwaVR5cGVcIlxuICAgICAgICAgICAgW2dlbmVyaWNQb2xpY2llc109XCJnZW5lcmljUG9saWNpZXNcIlxuICAgICAgICAgICAgW3RyaWFsVXJsXT1cInRyaWFsVXJsXCJcbiAgICAgICAgICAgIHBvbGljeUZsb3dQaGFzZT1cIlNVQlNDUklCRVwiXG4gICAgICAgICAgICAoc3RlcHNDaGFuZ2UpPVwib25TdGVwc0NoYW5nZSgnc3Vic2NyaWJlJywgJGV2ZW50KVwiXG4gICAgICAgICAgPjwvZ2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZT5cbiAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI2VtcHR5Rmxvd3M+XG4gICAgPGRpdiBjbGFzcz1cImVtcHR5Rmxvd3NcIj5cbiAgICAgIDxoMj5ObyBmbG93cyB5ZXQ8L2gyPlxuICAgICAgPHAgY2xhc3M9XCJtYXQtYm9keS0xXCI+Rmxvd3MgYWxsb3cgeW91IHRvIGN1c3RvbWl6ZSB0aGUgYmVoYXZpb3Igb2YgeW91ciBBUEkgZXZlbnQgcGhhc2VzIHRocm91Z2ggY29uZmlndXJhYmxlIHBvbGljaWVzPC9wPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyIGxvYWRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyX19sYWJlbFwiPkZsb3cgZGV0YWlsczwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2NvbmZpZ0J0blwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImhlYWRlcl9fY29uZmlnQnRuX19lZGl0XCIgbWF0LXN0cm9rZWQtYnV0dG9uIGRpc2FibGVkPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzplZGl0LXBlbmNpbFwiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJoZWFkZXJfX2NvbmZpZ0J0bl9fZGVsZXRlXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGRpc2FibGVkPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzp0cmFzaFwiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxnaW8tcHMtZmxvdy1kZXRhaWxzLWluZm8tYmFyIGNsYXNzPVwiaW5mb0JhciBsb2FkaW5nXCI+PC9naW8tcHMtZmxvdy1kZXRhaWxzLWluZm8tYmFyPlxuICA8ZGl2IGNsYXNzPVwiY29udGVudCBsb2FkaW5nXCI+XG4gICAgPGdpby1sb2FkZXI+PC9naW8tbG9hZGVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -152,7 +152,7 @@ export function fakeHTTPProxyEndpoint(modifier) {
152
152
  export function fakeKafkaNativeEntrypoint(modifier) {
153
153
  const base = {
154
154
  type: 'native-kafka',
155
- name: 'Native Kafka',
155
+ name: 'Client',
156
156
  supportedModes: ['INTERACT', 'PUBLISH', 'SUBSCRIBE'],
157
157
  icon: 'gio:kafka',
158
158
  };
@@ -167,7 +167,7 @@ export function fakeKafkaNativeEntrypoint(modifier) {
167
167
  export function fakeKafkaNativeEndpoint(modifier) {
168
168
  const base = {
169
169
  type: 'native-kafka',
170
- name: 'Native Kafka',
170
+ name: 'Broker',
171
171
  supportedModes: ['INTERACT', 'PUBLISH', 'SUBSCRIBE'],
172
172
  icon: 'gio:kafka',
173
173
  };
@@ -179,4 +179,4 @@ export function fakeKafkaNativeEndpoint(modifier) {
179
179
  ...modifier,
180
180
  };
181
181
  }
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29ubmVjdG9yc0luZm8uZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL21vZGVscy9Db25uZWN0b3JzSW5mby5maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUlwQyxNQUFNLFVBQVUsd0JBQXdCLENBQUMsUUFBNEU7SUFDbkgsTUFBTSxJQUFJLEdBQWtCO1FBQzFCLElBQUksRUFBRSxLQUFLO1FBQ1gsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixjQUFjLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDN0IsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQztJQUVGLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU87UUFDTCxHQUFHLElBQUk7UUFDUCxHQUFHLFFBQVE7S0FDWixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSw4QkFBOEIsQ0FDNUMsUUFBNEU7SUFFNUUsTUFBTSxJQUFJLEdBQWtCO1FBQzFCLElBQUksRUFBRSxXQUFXO1FBQ2pCLElBQUksRUFBRSxXQUFXO1FBQ2pCLGNBQWMsRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUM7UUFDeEMsSUFBSSxFQUFFLGVBQWU7S0FDdEIsQ0FBQztJQUVGLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU87UUFDTCxHQUFHLElBQUk7UUFDUCxHQUFHLFFBQVE7S0FDWixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSw2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Q3pCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxJQUFJO1FBQ1AsR0FBRyxRQUFRO0tBQ1osQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDIzIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgQ29ubmVjdG9ySW5mbyB9IGZyb20gJy4vQ29ubmVjdG9yc0luZm8nO1xuXG5leHBvcnQgZnVuY3Rpb24gZmFrZVNTRU1lc3NhZ2VFbnRyeXBvaW50KG1vZGlmaWVyPzogUGFydGlhbDxDb25uZWN0b3JJbmZvPiB8ICgoYmFzZTogQ29ubmVjdG9ySW5mbykgPT4gQ29ubmVjdG9ySW5mbykpOiBDb25uZWN0b3JJbmZvIHtcbiAgY29uc3QgYmFzZTogQ29ubmVjdG9ySW5mbyA9IHtcbiAgICB0eXBlOiAnc3NlJyxcbiAgICBuYW1lOiAnU2VydmVyLVNlbnQgRXZlbnRzJyxcbiAgICBzdXBwb3J0ZWRNb2RlczogWydTVUJTQ1JJQkUnXSxcbiAgICBpY29uOiAnZ2lvOnB1enpsZScsXG4gIH07XG5cbiAgaWYgKGlzRnVuY3Rpb24obW9kaWZpZXIpKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVyKGJhc2UpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5iYXNlLFxuICAgIC4uLm1vZGlmaWVyLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmFrZVdlYnNvY2tldE1lc3NhZ2VFbnRyeXBvaW50KFxuICBtb2RpZmllcj86IFBhcnRpYWw8Q29ubmVjdG9ySW5mbz4gfCAoKGJhc2U6IENvbm5lY3RvckluZm8pID0+IENvbm5lY3RvckluZm8pLFxuKTogQ29ubmVjdG9ySW5mbyB7XG4gIGNvbnN0IGJhc2U6IENvbm5lY3RvckluZm8gPSB7XG4gICAgdHlwZTogJ3dlYnNvY2tldCcsXG4gICAgbmFtZTogJ1dlYnNvY2tldCcsXG4gICAgc3VwcG9ydGVkTW9kZXM6IFsnUFVCTElTSCcsICdTVUJTQ1JJQkUnXSxcbiAgICBpY29uOiAnZ2lvOndlYnNvY2tldCcsXG4gIH07XG5cbiAgaWYgKGlzRnVuY3Rpb24obW9kaWZpZXIpKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVyKGJhc2UpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5iYXNlLFxuICAgIC4uLm1vZGlmaWVyLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmFrZUhUVFBQb3N0TWVzc2FnZUVudHJ5cG9pbnQobW9kaWZpZXI/OiBQYXJ0aWFsPENvbm5lY3RvckluZm8+IHwgKChiYXNlOiBDb25uZWN0b3JJbmZvKSA9PiBDb25uZWN0b3JJbmZvKSk6IENvbm5lY3RvckluZm8ge1xuICBjb25zdCBiYXNlOiBDb25uZWN0b3JJbmZvID0ge1xuICAgIHR5cGU6ICdodHRwLXBvc3QnLFxuICAgIG5hbWU6ICdIVFRQIFBPU1QnLFxuICAgIHN1cHBvcnRlZE1vZGVzOiBbJ1BVQkxJU0gnXSxcbiAgICBpY29uOiAnZ2lvOmxhbmd1YWdlJyxcbiAgfTtcblxuICBpZiAoaXNGdW5jdGlvbihtb2RpZmllcikpIHtcbiAgICByZXR1cm4gbW9kaWZpZXIoYmFzZSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmJhc2UsXG4gICAgLi4ubW9kaWZpZXIsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmYWtlSFRUUEdldE1lc3NhZ2VFbnRyeXBvaW50KG1vZGlmaWVyPzogUGFydGlhbDxDb25uZWN0b3JJbmZvPiB8ICgoYmFzZTogQ29ubmVjdG9ySW5mbykgPT4gQ29ubmVjdG9ySW5mbykpOiBDb25uZWN0b3JJbmZvIHtcbiAgY29uc3QgYmFzZTogQ29ubmVjdG9ySW5mbyA9IHtcbiAgICB0eXBlOiAnaHR0cC1nZXQnLFxuICAgIG5hbWU6ICdIVFRQIEdldCcsXG4gICAgc3VwcG9ydGVkTW9kZXM6IFsnU1VCU0NSSUJFJ10sXG4gICAgaWNvbjogJ2dpbzpsYW5ndWFnZScsXG4gIH07XG5cbiAgaWYgKGlzRnVuY3Rpb24obW9kaWZpZXIpKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVyKGJhc2UpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5iYXNlLFxuICAgIC4uLm1vZGlmaWVyLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmFrZVdlYmhvb2tNZXNzYWdlRW50cnlwb2ludChtb2RpZmllcj86IFBhcnRpYWw8Q29ubmVjdG9ySW5mbz4gfCAoKGJhc2U6IENvbm5lY3RvckluZm8pID0+IENvbm5lY3RvckluZm8pKTogQ29ubmVjdG9ySW5mbyB7XG4gIGNvbnN0IGJhc2U6IENvbm5lY3RvckluZm8gPSB7XG4gICAgdHlwZTogJ3dlYmhvb2snLFxuICAgIG5hbWU6ICdXZWJob29rJyxcbiAgICBzdXBwb3J0ZWRNb2RlczogWydTVUJTQ1JJQkUnXSxcbiAgICBpY29uOiAnZ2lvOndlYmhvb2snLFxuICB9O1xuXG4gIGlmIChpc0Z1bmN0aW9uKG1vZGlmaWVyKSkge1xuICAgIHJldHVybiBtb2RpZmllcihiYXNlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uYmFzZSxcbiAgICAuLi5tb2RpZmllcixcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZha2VIVFRQUHJveHlFbnRyeXBvaW50KG1vZGlmaWVyPzogUGFydGlhbDxDb25uZWN0b3JJbmZvPiB8ICgoYmFzZTogQ29ubmVjdG9ySW5mbykgPT4gQ29ubmVjdG9ySW5mbykpOiBDb25uZWN0b3JJbmZvIHtcbiAgY29uc3QgYmFzZTogQ29ubmVjdG9ySW5mbyA9IHtcbiAgICB0eXBlOiAnaHR0cC1wcm94eScsXG4gICAgbmFtZTogJ0hUVFAgUHJveHknLFxuICAgIHN1cHBvcnRlZE1vZGVzOiBbJ1JFUVVFU1RfUkVTUE9OU0UnXSxcbiAgICBpY29uOiAnZ2lvOmxhbmd1YWdlJyxcbiAgfTtcblxuICBpZiAoaXNGdW5jdGlvbihtb2RpZmllcikpIHtcbiAgICByZXR1cm4gbW9kaWZpZXIoYmFzZSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmJhc2UsXG4gICAgLi4ubW9kaWZpZXIsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmYWtlTW9ja01lc3NhZ2VFbmRwb2ludChtb2RpZmllcj86IFBhcnRpYWw8Q29ubmVjdG9ySW5mbz4gfCAoKGJhc2U6IENvbm5lY3RvckluZm8pID0+IENvbm5lY3RvckluZm8pKTogQ29ubmVjdG9ySW5mbyB7XG4gIGNvbnN0IGJhc2U6IENvbm5lY3RvckluZm8gPSB7XG4gICAgdHlwZTogJ21vY2snLFxuICAgIG5hbWU6ICdNb2NrJyxcbiAgICBzdXBwb3J0ZWRNb2RlczogWydQVUJMSVNIJywgJ1NVQlNDUklCRSddLFxuICAgIGljb246ICdnaW86bGFuZ3VhZ2UnLFxuICB9O1xuXG4gIGlmIChpc0Z1bmN0aW9uKG1vZGlmaWVyKSkge1xuICAgIHJldHVybiBtb2RpZmllcihiYXNlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uYmFzZSxcbiAgICAuLi5tb2RpZmllcixcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZha2VLYWZrYU1lc3NhZ2VFbmRwb2ludChtb2RpZmllcj86IFBhcnRpYWw8Q29ubmVjdG9ySW5mbz4gfCAoKGJhc2U6IENvbm5lY3RvckluZm8pID0+IENvbm5lY3RvckluZm8pKTogQ29ubmVjdG9ySW5mbyB7XG4gIGNvbnN0IGJhc2U6IENvbm5lY3RvckluZm8gPSB7XG4gICAgdHlwZTogJ2thZmthJyxcbiAgICBuYW1lOiAnS2Fma2EnLFxuICAgIHN1cHBvcnRlZE1vZGVzOiBbJ1BVQkxJU0gnLCAnU1VCU0NSSUJFJ10sXG4gICAgaWNvbjogJ2dpbzprYWZrYScsXG4gIH07XG5cbiAgaWYgKGlzRnVuY3Rpb24obW9kaWZpZXIpKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVyKGJhc2UpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5iYXNlLFxuICAgIC4uLm1vZGlmaWVyLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmFrZUhUVFBQcm94eUVuZHBvaW50KG1vZGlmaWVyPzogUGFydGlhbDxDb25uZWN0b3JJbmZvPiB8ICgoYmFzZTogQ29ubmVjdG9ySW5mbykgPT4gQ29ubmVjdG9ySW5mbykpOiBDb25uZWN0b3JJbmZvIHtcbiAgY29uc3QgYmFzZTogQ29ubmVjdG9ySW5mbyA9IHtcbiAgICB0eXBlOiAnaHR0cC1wcm94eScsXG4gICAgbmFtZTogJ0hUVFAgUHJveHknLFxuICAgIHN1cHBvcnRlZE1vZGVzOiBbJ1JFUVVFU1RfUkVTUE9OU0UnXSxcbiAgICBpY29uOiAnZ2lvOmxhbmd1YWdlJyxcbiAgfTtcblxuICBpZiAoaXNGdW5jdGlvbihtb2RpZmllcikpIHtcbiAgICByZXR1cm4gbW9kaWZpZXIoYmFzZSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmJhc2UsXG4gICAgLi4ubW9kaWZpZXIsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmYWtlS2Fma2FOYXRpdmVFbnRyeXBvaW50KG1vZGlmaWVyPzogUGFydGlhbDxDb25uZWN0b3JJbmZvPiB8ICgoYmFzZTogQ29ubmVjdG9ySW5mbykgPT4gQ29ubmVjdG9ySW5mbykpOiBDb25uZWN0b3JJbmZvIHtcbiAgY29uc3QgYmFzZTogQ29ubmVjdG9ySW5mbyA9IHtcbiAgICB0eXBlOiAnbmF0aXZlLWthZmthJyxcbiAgICBuYW1lOiAnTmF0aXZlIEthZmthJyxcbiAgICBzdXBwb3J0ZWRNb2RlczogWydJTlRFUkFDVCcsICdQVUJMSVNIJywgJ1NVQlNDUklCRSddLFxuICAgIGljb246ICdnaW86a2Fma2EnLFxuICB9O1xuXG4gIGlmIChpc0Z1bmN0aW9uKG1vZGlmaWVyKSkge1xuICAgIHJldHVybiBtb2RpZmllcihiYXNlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uYmFzZSxcbiAgICAuLi5tb2RpZmllcixcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZha2VLYWZrYU5hdGl2ZUVuZHBvaW50KG1vZGlmaWVyPzogUGFydGlhbDxDb25uZWN0b3JJbmZvPiB8ICgoYmFzZTogQ29ubmVjdG9ySW5mbykgPT4gQ29ubmVjdG9ySW5mbykpOiBDb25uZWN0b3JJbmZvIHtcbiAgY29uc3QgYmFzZTogQ29ubmVjdG9ySW5mbyA9IHtcbiAgICB0eXBlOiAnbmF0aXZlLWthZmthJyxcbiAgICBuYW1lOiAnTmF0aXZlIEthZmthJyxcbiAgICBzdXBwb3J0ZWRNb2RlczogWydJTlRFUkFDVCcsICdQVUJMSVNIJywgJ1NVQlNDUklCRSddLFxuICAgIGljb246ICdnaW86a2Fma2EnLFxuICB9O1xuXG4gIGlmIChpc0Z1bmN0aW9uKG1vZGlmaWVyKSkge1xuICAgIHJldHVybiBtb2RpZmllcihiYXNlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uYmFzZSxcbiAgICAuLi5tb2RpZmllcixcbiAgfTtcbn1cbiJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29ubmVjdG9yc0luZm8uZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL21vZGVscy9Db25uZWN0b3JzSW5mby5maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUlwQyxNQUFNLFVBQVUsd0JBQXdCLENBQUMsUUFBNEU7SUFDbkgsTUFBTSxJQUFJLEdBQWtCO1FBQzFCLElBQUksRUFBRSxLQUFLO1FBQ1gsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixjQUFjLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDN0IsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQztJQUVGLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU87UUFDTCxHQUFHLElBQUk7UUFDUCxHQUFHLFFBQVE7S0FDWixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSw4QkFBOEIsQ0FDNUMsUUFBNEU7SUFFNUUsTUFBTSxJQUFJLEdBQWtCO1FBQzFCLElBQUksRUFBRSxXQUFXO1FBQ2pCLElBQUksRUFBRSxXQUFXO1FBQ2pCLGNBQWMsRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUM7UUFDeEMsSUFBSSxFQUFFLGVBQWU7S0FDdEIsQ0FBQztJQUVGLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU87UUFDTCxHQUFHLElBQUk7UUFDUCxHQUFHLFFBQVE7S0FDWixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxRQUE0RTtJQUN4SCxNQUFNLElBQUksR0FBa0I7UUFDMUIsSUFBSSxFQUFFLFdBQVc7UUFDakIsSUFBSSxFQUFFLFdBQVc7UUFDakIsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQzNCLElBQUksRUFBRSxjQUFjO0tBQ3JCLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxJQUFJO1FBQ1AsR0FBRyxRQUFRO0tBQ1osQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsUUFBNEU7SUFDdkgsTUFBTSxJQUFJLEdBQWtCO1FBQzFCLElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUksRUFBRSxVQUFVO1FBQ2hCLGNBQWMsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUM3QixJQUFJLEVBQUUsY0FBYztLQUNyQixDQUFDO0lBRUYsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTztRQUNMLEdBQUcsSUFBSTtRQUNQLEdBQUcsUUFBUTtLQUNaLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLFFBQTRFO0lBQ3ZILE1BQU0sSUFBSSxHQUFrQjtRQUMxQixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxTQUFTO1FBQ2YsY0FBYyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQzdCLElBQUksRUFBRSxhQUFhO0tBQ3BCLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxJQUFJO1FBQ1AsR0FBRyxRQUFRO0tBQ1osQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBNEU7SUFDbEgsTUFBTSxJQUFJLEdBQWtCO1FBQzFCLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxZQUFZO1FBQ2xCLGNBQWMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1FBQ3BDLElBQUksRUFBRSxjQUFjO0tBQ3JCLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxJQUFJO1FBQ1AsR0FBRyxRQUFRO0tBQ1osQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBNEU7SUFDbEgsTUFBTSxJQUFJLEdBQWtCO1FBQzFCLElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFLE1BQU07UUFDWixjQUFjLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO1FBQ3hDLElBQUksRUFBRSxjQUFjO0tBQ3JCLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxJQUFJO1FBQ1AsR0FBRyxRQUFRO0tBQ1osQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsUUFBNEU7SUFDbkgsTUFBTSxJQUFJLEdBQWtCO1FBQzFCLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLE9BQU87UUFDYixjQUFjLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO1FBQ3hDLElBQUksRUFBRSxXQUFXO0tBQ2xCLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxJQUFJO1FBQ1AsR0FBRyxRQUFRO0tBQ1osQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsUUFBNEU7SUFDaEgsTUFBTSxJQUFJLEdBQWtCO1FBQzFCLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxZQUFZO1FBQ2xCLGNBQWMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1FBQ3BDLElBQUksRUFBRSxjQUFjO0tBQ3JCLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxJQUFJO1FBQ1AsR0FBRyxRQUFRO0tBQ1osQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsUUFBNEU7SUFDcEgsTUFBTSxJQUFJLEdBQWtCO1FBQzFCLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxRQUFRO1FBQ2QsY0FBYyxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUM7UUFDcEQsSUFBSSxFQUFFLFdBQVc7S0FDbEIsQ0FBQztJQUVGLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU87UUFDTCxHQUFHLElBQUk7UUFDUCxHQUFHLFFBQVE7S0FDWixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUE0RTtJQUNsSCxNQUFNLElBQUksR0FBa0I7UUFDMUIsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLFFBQVE7UUFDZCxjQUFjLEVBQUUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQztRQUNwRCxJQUFJLEVBQUUsV0FBVztLQUNsQixDQUFDO0lBRUYsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTztRQUNMLEdBQUcsSUFBSTtRQUNQLEdBQUcsUUFBUTtLQUNaLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IENvbm5lY3RvckluZm8gfSBmcm9tICcuL0Nvbm5lY3RvcnNJbmZvJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZha2VTU0VNZXNzYWdlRW50cnlwb2ludChtb2RpZmllcj86IFBhcnRpYWw8Q29ubmVjdG9ySW5mbz4gfCAoKGJhc2U6IENvbm5lY3RvckluZm8pID0+IENvbm5lY3RvckluZm8pKTogQ29ubmVjdG9ySW5mbyB7XG4gIGNvbnN0IGJhc2U6IENvbm5lY3RvckluZm8gPSB7XG4gICAgdHlwZTogJ3NzZScsXG4gICAgbmFtZTogJ1NlcnZlci1TZW50IEV2ZW50cycsXG4gICAgc3VwcG9ydGVkTW9kZXM6IFsnU1VCU0NSSUJFJ10sXG4gICAgaWNvbjogJ2dpbzpwdXp6bGUnLFxuICB9O1xuXG4gIGlmIChpc0Z1bmN0aW9uKG1vZGlmaWVyKSkge1xuICAgIHJldHVybiBtb2RpZmllcihiYXNlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uYmFzZSxcbiAgICAuLi5tb2RpZmllcixcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZha2VXZWJzb2NrZXRNZXNzYWdlRW50cnlwb2ludChcbiAgbW9kaWZpZXI/OiBQYXJ0aWFsPENvbm5lY3RvckluZm8+IHwgKChiYXNlOiBDb25uZWN0b3JJbmZvKSA9PiBDb25uZWN0b3JJbmZvKSxcbik6IENvbm5lY3RvckluZm8ge1xuICBjb25zdCBiYXNlOiBDb25uZWN0b3JJbmZvID0ge1xuICAgIHR5cGU6ICd3ZWJzb2NrZXQnLFxuICAgIG5hbWU6ICdXZWJzb2NrZXQnLFxuICAgIHN1cHBvcnRlZE1vZGVzOiBbJ1BVQkxJU0gnLCAnU1VCU0NSSUJFJ10sXG4gICAgaWNvbjogJ2dpbzp3ZWJzb2NrZXQnLFxuICB9O1xuXG4gIGlmIChpc0Z1bmN0aW9uKG1vZGlmaWVyKSkge1xuICAgIHJldHVybiBtb2RpZmllcihiYXNlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uYmFzZSxcbiAgICAuLi5tb2RpZmllcixcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZha2VIVFRQUG9zdE1lc3NhZ2VFbnRyeXBvaW50KG1vZGlmaWVyPzogUGFydGlhbDxDb25uZWN0b3JJbmZvPiB8ICgoYmFzZTogQ29ubmVjdG9ySW5mbykgPT4gQ29ubmVjdG9ySW5mbykpOiBDb25uZWN0b3JJbmZvIHtcbiAgY29uc3QgYmFzZTogQ29ubmVjdG9ySW5mbyA9IHtcbiAgICB0eXBlOiAnaHR0cC1wb3N0JyxcbiAgICBuYW1lOiAnSFRUUCBQT1NUJyxcbiAgICBzdXBwb3J0ZWRNb2RlczogWydQVUJMSVNIJ10sXG4gICAgaWNvbjogJ2dpbzpsYW5ndWFnZScsXG4gIH07XG5cbiAgaWYgKGlzRnVuY3Rpb24obW9kaWZpZXIpKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVyKGJhc2UpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5iYXNlLFxuICAgIC4uLm1vZGlmaWVyLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmFrZUhUVFBHZXRNZXNzYWdlRW50cnlwb2ludChtb2RpZmllcj86IFBhcnRpYWw8Q29ubmVjdG9ySW5mbz4gfCAoKGJhc2U6IENvbm5lY3RvckluZm8pID0+IENvbm5lY3RvckluZm8pKTogQ29ubmVjdG9ySW5mbyB7XG4gIGNvbnN0IGJhc2U6IENvbm5lY3RvckluZm8gPSB7XG4gICAgdHlwZTogJ2h0dHAtZ2V0JyxcbiAgICBuYW1lOiAnSFRUUCBHZXQnLFxuICAgIHN1cHBvcnRlZE1vZGVzOiBbJ1NVQlNDUklCRSddLFxuICAgIGljb246ICdnaW86bGFuZ3VhZ2UnLFxuICB9O1xuXG4gIGlmIChpc0Z1bmN0aW9uKG1vZGlmaWVyKSkge1xuICAgIHJldHVybiBtb2RpZmllcihiYXNlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uYmFzZSxcbiAgICAuLi5tb2RpZmllcixcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZha2VXZWJob29rTWVzc2FnZUVudHJ5cG9pbnQobW9kaWZpZXI/OiBQYXJ0aWFsPENvbm5lY3RvckluZm8+IHwgKChiYXNlOiBDb25uZWN0b3JJbmZvKSA9PiBDb25uZWN0b3JJbmZvKSk6IENvbm5lY3RvckluZm8ge1xuICBjb25zdCBiYXNlOiBDb25uZWN0b3JJbmZvID0ge1xuICAgIHR5cGU6ICd3ZWJob29rJyxcbiAgICBuYW1lOiAnV2ViaG9vaycsXG4gICAgc3VwcG9ydGVkTW9kZXM6IFsnU1VCU0NSSUJFJ10sXG4gICAgaWNvbjogJ2dpbzp3ZWJob29rJyxcbiAgfTtcblxuICBpZiAoaXNGdW5jdGlvbihtb2RpZmllcikpIHtcbiAgICByZXR1cm4gbW9kaWZpZXIoYmFzZSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmJhc2UsXG4gICAgLi4ubW9kaWZpZXIsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmYWtlSFRUUFByb3h5RW50cnlwb2ludChtb2RpZmllcj86IFBhcnRpYWw8Q29ubmVjdG9ySW5mbz4gfCAoKGJhc2U6IENvbm5lY3RvckluZm8pID0+IENvbm5lY3RvckluZm8pKTogQ29ubmVjdG9ySW5mbyB7XG4gIGNvbnN0IGJhc2U6IENvbm5lY3RvckluZm8gPSB7XG4gICAgdHlwZTogJ2h0dHAtcHJveHknLFxuICAgIG5hbWU6ICdIVFRQIFByb3h5JyxcbiAgICBzdXBwb3J0ZWRNb2RlczogWydSRVFVRVNUX1JFU1BPTlNFJ10sXG4gICAgaWNvbjogJ2dpbzpsYW5ndWFnZScsXG4gIH07XG5cbiAgaWYgKGlzRnVuY3Rpb24obW9kaWZpZXIpKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVyKGJhc2UpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5iYXNlLFxuICAgIC4uLm1vZGlmaWVyLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmFrZU1vY2tNZXNzYWdlRW5kcG9pbnQobW9kaWZpZXI/OiBQYXJ0aWFsPENvbm5lY3RvckluZm8+IHwgKChiYXNlOiBDb25uZWN0b3JJbmZvKSA9PiBDb25uZWN0b3JJbmZvKSk6IENvbm5lY3RvckluZm8ge1xuICBjb25zdCBiYXNlOiBDb25uZWN0b3JJbmZvID0ge1xuICAgIHR5cGU6ICdtb2NrJyxcbiAgICBuYW1lOiAnTW9jaycsXG4gICAgc3VwcG9ydGVkTW9kZXM6IFsnUFVCTElTSCcsICdTVUJTQ1JJQkUnXSxcbiAgICBpY29uOiAnZ2lvOmxhbmd1YWdlJyxcbiAgfTtcblxuICBpZiAoaXNGdW5jdGlvbihtb2RpZmllcikpIHtcbiAgICByZXR1cm4gbW9kaWZpZXIoYmFzZSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmJhc2UsXG4gICAgLi4ubW9kaWZpZXIsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmYWtlS2Fma2FNZXNzYWdlRW5kcG9pbnQobW9kaWZpZXI/OiBQYXJ0aWFsPENvbm5lY3RvckluZm8+IHwgKChiYXNlOiBDb25uZWN0b3JJbmZvKSA9PiBDb25uZWN0b3JJbmZvKSk6IENvbm5lY3RvckluZm8ge1xuICBjb25zdCBiYXNlOiBDb25uZWN0b3JJbmZvID0ge1xuICAgIHR5cGU6ICdrYWZrYScsXG4gICAgbmFtZTogJ0thZmthJyxcbiAgICBzdXBwb3J0ZWRNb2RlczogWydQVUJMSVNIJywgJ1NVQlNDUklCRSddLFxuICAgIGljb246ICdnaW86a2Fma2EnLFxuICB9O1xuXG4gIGlmIChpc0Z1bmN0aW9uKG1vZGlmaWVyKSkge1xuICAgIHJldHVybiBtb2RpZmllcihiYXNlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uYmFzZSxcbiAgICAuLi5tb2RpZmllcixcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZha2VIVFRQUHJveHlFbmRwb2ludChtb2RpZmllcj86IFBhcnRpYWw8Q29ubmVjdG9ySW5mbz4gfCAoKGJhc2U6IENvbm5lY3RvckluZm8pID0+IENvbm5lY3RvckluZm8pKTogQ29ubmVjdG9ySW5mbyB7XG4gIGNvbnN0IGJhc2U6IENvbm5lY3RvckluZm8gPSB7XG4gICAgdHlwZTogJ2h0dHAtcHJveHknLFxuICAgIG5hbWU6ICdIVFRQIFByb3h5JyxcbiAgICBzdXBwb3J0ZWRNb2RlczogWydSRVFVRVNUX1JFU1BPTlNFJ10sXG4gICAgaWNvbjogJ2dpbzpsYW5ndWFnZScsXG4gIH07XG5cbiAgaWYgKGlzRnVuY3Rpb24obW9kaWZpZXIpKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVyKGJhc2UpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5iYXNlLFxuICAgIC4uLm1vZGlmaWVyLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmFrZUthZmthTmF0aXZlRW50cnlwb2ludChtb2RpZmllcj86IFBhcnRpYWw8Q29ubmVjdG9ySW5mbz4gfCAoKGJhc2U6IENvbm5lY3RvckluZm8pID0+IENvbm5lY3RvckluZm8pKTogQ29ubmVjdG9ySW5mbyB7XG4gIGNvbnN0IGJhc2U6IENvbm5lY3RvckluZm8gPSB7XG4gICAgdHlwZTogJ25hdGl2ZS1rYWZrYScsXG4gICAgbmFtZTogJ0NsaWVudCcsXG4gICAgc3VwcG9ydGVkTW9kZXM6IFsnSU5URVJBQ1QnLCAnUFVCTElTSCcsICdTVUJTQ1JJQkUnXSxcbiAgICBpY29uOiAnZ2lvOmthZmthJyxcbiAgfTtcblxuICBpZiAoaXNGdW5jdGlvbihtb2RpZmllcikpIHtcbiAgICByZXR1cm4gbW9kaWZpZXIoYmFzZSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmJhc2UsXG4gICAgLi4ubW9kaWZpZXIsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmYWtlS2Fma2FOYXRpdmVFbmRwb2ludChtb2RpZmllcj86IFBhcnRpYWw8Q29ubmVjdG9ySW5mbz4gfCAoKGJhc2U6IENvbm5lY3RvckluZm8pID0+IENvbm5lY3RvckluZm8pKTogQ29ubmVjdG9ySW5mbyB7XG4gIGNvbnN0IGJhc2U6IENvbm5lY3RvckluZm8gPSB7XG4gICAgdHlwZTogJ25hdGl2ZS1rYWZrYScsXG4gICAgbmFtZTogJ0Jyb2tlcicsXG4gICAgc3VwcG9ydGVkTW9kZXM6IFsnSU5URVJBQ1QnLCAnUFVCTElTSCcsICdTVUJTQ1JJQkUnXSxcbiAgICBpY29uOiAnZ2lvOmthZmthJyxcbiAgfTtcblxuICBpZiAoaXNGdW5jdGlvbihtb2RpZmllcikpIHtcbiAgICByZXR1cm4gbW9kaWZpZXIoYmFzZSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmJhc2UsXG4gICAgLi4ubW9kaWZpZXIsXG4gIH07XG59XG4iXX0=
@@ -689,7 +689,7 @@ function fakeHTTPProxyEndpoint(modifier) {
689
689
  function fakeKafkaNativeEntrypoint(modifier) {
690
690
  const base = {
691
691
  type: 'native-kafka',
692
- name: 'Native Kafka',
692
+ name: 'Client',
693
693
  supportedModes: ['INTERACT', 'PUBLISH', 'SUBSCRIBE'],
694
694
  icon: 'gio:kafka',
695
695
  };
@@ -704,7 +704,7 @@ function fakeKafkaNativeEntrypoint(modifier) {
704
704
  function fakeKafkaNativeEndpoint(modifier) {
705
705
  const base = {
706
706
  type: 'native-kafka',
707
- name: 'Native Kafka',
707
+ name: 'Broker',
708
708
  supportedModes: ['INTERACT', 'PUBLISH', 'SUBSCRIBE'],
709
709
  icon: 'gio:kafka',
710
710
  };