@eui/showcase 17.0.0-next.25 → 17.0.0-next.27
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.
|
@@ -232,11 +232,11 @@ export class DocPageComponent {
|
|
|
232
232
|
return result;
|
|
233
233
|
}
|
|
234
234
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DocPageComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.EuiAppShellService }, { token: i3.DomSanitizer }, { token: i4.Location }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
235
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: DocPageComponent, selector: "eui-showcase-doc-page", inputs: { id: "id", label: "label", subLabel: "subLabel", isNotReady: "isNotReady", isDeprecated: "isDeprecated", isLegacy: "isLegacy", codeFolder: "codeFolder", showcase: "showcase", isNavigationVisible: "isNavigationVisible", hasApi: "hasApi", hasA11y: "hasA11y" }, queries: [{ propertyName: "samples", predicate: DocSampleComponent, descendants: true }, { propertyName: "sections", predicate: DocSectionComponent, descendants: true }, { propertyName: "pageOverviewContent", predicate: i0.forwardRef(() => DocPageOverviewContentDirective) }, { propertyName: "pageSamplesContent", predicate: i0.forwardRef(() => DocPageSamplesContentDirective) }, { propertyName: "pageSectionsContent", predicate: i0.forwardRef(() => DocPageSectionsContentDirective) }, { propertyName: "pageInteractiveContent", predicate: i0.forwardRef(() => DocPageInteractiveContentDirective) }, { propertyName: "pageAccessibilityContent", predicate: i0.forwardRef(() => DocPageAccessibilityContentDirective) }, { propertyName: "pageApiContent", predicate: i0.forwardRef(() => DocPageApiContentDirective) }, { propertyName: "pageThemingContent", predicate: i0.forwardRef(() => DocPageThemingContentDirective) }], viewQueries: [{ propertyName: "tabsContent", first: true, predicate: ["tabsContent"], descendants: true }], ngImport: i0, template: "<div class=\"doc-page-navigation-wrapper\" [class.eui-u-hidden]=\"isLoading\">\n <div class=\"doc-page-main-column\">\n <eui-page>\n <eui-page-header label=\"{{ label }}\" subLabel=\"{{ subLabel }}\">\n <eui-page-header-action-items>\n <eui-showcase-doc-page-code\n *ngIf=\"codeFolder\"\n codeFolder=\"{{ codeFolder }}\"\n showcase=\"{{ showcase }}\"></eui-showcase-doc-page-code>\n <eui-chip\n *ngIf=\"stateLabel\"\n [euiSuccess]=\"stateLabel === 'ACTIVE'\"\n [euiWarning]=\"stateLabel === 'DEPRECATED - will be removed in eUI 18'\"\n [euiDanger]=\"isLegacy\">\n <span euiLabel>\n <strong>{{ stateLabel }}</strong>\n </span>\n </eui-chip>\n </eui-page-header-action-items>\n </eui-page-header>\n\n <eui-page-content>\n <eui-alert *ngIf=\"stateLabel === 'LEGACY' || isLegacy\" euiDanger class=\"eui-u-mb-xl\">\n <eui-alert-title>LEGACY component</eui-alert-title>\n <strong class=\"eui-u-color-danger\">This component will be removed in eUI 18 release (end of 2023)</strong>\n <div *ngIf=\"cmp\">\n <div *ngIf=\"cmp.cmpReplacement !== 'NONE'\">\n It has been replaced by :\n <strong class=\"eui-u-color-success-darkest\">{{ cmp.cmpReplacement }}</strong>\n <!-- <div *ngIf=\"cmp.cmpReplacementUrl\">\n <br><br>\n You can find more information on the new component here : <a [routerLink]=\"cmp.cmpReplacementUrl\">{{cmp.cmpReplacementUrl}}</a>\n </div> -->\n </div>\n <div *ngIf=\"cmp.cmpReplacement === 'NONE'\">\n <strong class=\"eui-u-color-danger\"> This component will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n <div *ngIf=\"cmp.cmpReplacementNote\">\n <strong class=\"eui-u-color-warning\">{{ cmp.cmpReplacementNote }}</strong>\n </div>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'DEPRECATED' || isDeprecated\" euiWarning class=\"eui-u-mb-xl\">\n <eui-alert-title>DEPRECATED component</eui-alert-title>\n This component has been <strong class=\"eui-u-color-danger\">deprecated</strong>\n <div *ngIf=\"cmp\">\n This component has no replacement in current version AND won't have replacement in next version of eUI,\n <strong class=\"eui-u-color-danger\">it will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'NOT_READY' || isNotReady\" euiInfo class=\"eui-u-mb-xl\">\n <eui-alert-title>NOT READY for production usage</eui-alert-title>\n <div *ngIf=\"cmp\">\n This component is under development / some features might be missing, it'll be available in a future release once\n validated.\n </div>\n </eui-alert>\n\n <div *ngIf=\"(stateLabel || isNotReady || isDeprecated) && stateLabel !== 'ACTIVE'\" class=\"mb-5\"></div>\n\n <eui-tabs #tabsContent *ngIf=\"pageSectionsContent.length === 0\" (tabSelect)=\"onTabSelected($event)\">\n <eui-tab>\n <euiTabLabel> OPTIONS & SAMPLES </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"cmp && cmp.metadata\">\n <h3 class=\"eui-u-font-bold eui-u-color-info mt-3 mb-3 eui-u-text-h3\">Module import</h3>\n <pre><code class=\"language-javascript eui-u-bg-color-grey-5\" euiCode>{{ cmpModuleImport }}</code></pre>\n <br />\n </ng-container>\n\n <h3 id=\"overview\" class=\"eui-u-font-bold eui-u-color-info mt-3 mb-3 eui-u-text-h3\">Overview & setup</h3>\n <div *ngIf=\"pageOverviewContent.length > 0; else noOverview\">\n <ng-content select=\"docPageOverview\"></ng-content>\n </div>\n <ng-template #noOverview> Coming soon... </ng-template>\n <br />\n\n <h3 id=\"samples\" class=\"eui-u-font-bold eui-u-color-info mt-8 mb-2 eui-u-text-h3\">Options & samples</h3>\n <ng-content select=\"docPageSamples\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasApi\">\n <euiTabLabel> API </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"apiUrlSafe\">\n <div class=\"flex-container\">\n <a href=\"{{ apiUrl }}\" target=\"_blank\" class=\"ms-auto pb-2 eui-u-text-link-external\">Open API page</a>\n </div>\n <div class=\"doc-page-api-iframe-wrapper\">\n <iframe id=\"iframe_api\" [width]=\"'100%'\" height=\"700px\" frameBorder=\"0\" [src]=\"apiUrlSafe\"></iframe>\n </div>\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasA11y\">\n <euiTabLabel> A11Y </euiTabLabel>\n <euiTabContent>\n <h3 id=\"accessibility\" class=\"eui-u-font-bold eui-u-color-info mt-3 mb-2 eui-u-text-h3\">Accessibility</h3>\n <ng-container *ngIf=\"pageAccessibilityContent.length !== 0\">\n <ng-content select=\"docPageAccessibility\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"pageAccessibilityContent.length === 0\">\n No accessibility rules applicable\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageThemingContent.length > 0\">\n <euiTabLabel> THEMING </euiTabLabel>\n <euiTabContent>\n <h3 id=\"theming\" class=\"eui-u-font-bold eui-u-color-info mt-3 mb-2 eui-u-text-h3\">Theming</h3>\n <ng-content select=\"docPageTheming\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageInteractiveContent.length > 0\">\n <euiTabLabel>\n {{ pageInteractiveContent.first.title }}\n </euiTabLabel>\n <euiTabContent>\n <h3 id=\"interactive\" class=\"eui-u-font-bold eui-u-color-info mt-3 mb-2 eui-u-text-h3\">\n {{ pageInteractiveContent.first.subTitle }}\n </h3>\n <ng-content select=\"docPageInteractive\"></ng-content>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <h3 id=\"demo\" *ngIf=\"sections.length === 0\" class=\"eui-u-font-bold eui-u-color-info mt-3 mb-2 eui-u-text-h3\">Demo</h3>\n <ng-content select=\"docPageSections\"></ng-content>\n </ng-container>\n </eui-page-content>\n </eui-page>\n </div>\n\n <div *ngIf=\"isNavigationVisible\" class=\"doc-page-navigation-column eui-u-hidden-desktop-down\">\n <div id=\"doc-page-nav\">\n <div class=\"doc-page-navigation-title\">In this page</div>\n <div class=\"doc-page-navigation-content\" tabindex=\"0\">\n <ul class=\"doc-page-navigation\">\n <ng-container *ngIf=\"pageSectionsContent.length === 0\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'samples'\"\n (click)=\"onNavClick('samples', 0)\">\n <span>OPTIONS & SAMPLES</span>\n </li>\n <li\n *ngIf=\"hasApi\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'api'\"\n (click)=\"onNavClick('api', 1)\">\n <span>API</span>\n </li>\n <li\n *ngIf=\"hasA11y\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'a11y'\"\n (click)=\"onNavClick('a11y', 2)\">\n <span>A11Y</span>\n </li>\n <li class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ul *ngFor=\"let sample of samples\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </li>\n\n <!-- OPTIONAL TABS-->\n <ng-container *ngIf=\"pageThemingContent.length > 0\">\n <li\n *ngIf=\"pageThemingContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'theming'\"\n (click)=\"onNavClick('theming', 3)\">\n <span>THEMING</span>\n </li>\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 4)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n <ng-container *ngIf=\"pageThemingContent.length === 0\">\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 3)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'sections'\"\n (click)=\"onNavClick('sections', null)\">\n <span>Sections</span>\n </li>\n <li\n *ngIf=\"sections.length === 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'demo'\"\n (click)=\"onNavClick('demo', null)\">\n <span>Demo</span>\n </li>\n <li *ngIf=\"sections.length > 0\" class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ul *ngFor=\"let section of sections\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === section.id\"\n (click)=\"onNavClick(section.id, null)\">\n <span>{{ section.label }}</span>\n </li>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".doc-page-navigation-wrapper{display:flex;flex-wrap:wrap;width:100%}.doc-page-navigation-wrapper .doc-page-main-column{padding-right:var(--eui-base-spacing-m);width:calc(100% - 400px)}.doc-page-navigation-wrapper .doc-page-navigation-column{background:var(--eui-base-color-white);box-shadow:0 8px 10px #b7c0ce33;position:fixed;right:0;transition:all ease-in-out .25s;width:400px;z-index:auto;box-shadow:var(--eui-base-shadow-1)}.doc-page-navigation-wrapper .doc-page-navigation-column:hover{width:400px}.doc-page-navigation-wrapper .language-javascript:active:not([readonly]),.doc-page-navigation-wrapper .language-javascript:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;transition:none}.doc-page-navigation-wrapper .language-javascript [tabindex=\"0\"]:active:not([readonly]),.doc-page-navigation-wrapper .language-javascript [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;transition:none}.doc-page-navigation-title{font-weight:700;padding:var(--eui-base-spacing-s)}.doc-page-navigation-content{display:block;height:100vh;max-height:calc(100vh - 6rem);overflow-y:auto;width:100%}.doc-page-navigation-content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-base-color-grey-5)}.doc-page-navigation-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.doc-page-navigation-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.doc-page-navigation-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.doc-page-navigation{background-color:transparent;border-left:2px solid transparent;padding-top:var(--eui-base-spacing-xs);margin:0;padding:0}.doc-page-navigation .doc-page-navigation-list{margin:0;padding:0}.doc-page-navigation .doc-page-navigation-item{color:var(--eui-base-color-primary-100);cursor:pointer;line-height:1.5;overflow:hidden;padding:var(--eui-base-spacing-2xs);text-overflow:ellipsis;transition:background-color ease-in .2s;white-space:nowrap;list-style:none}.doc-page-navigation .doc-page-navigation-item span{font-weight:700;color:var(--eui-base-color-primary-100);padding-left:var(--eui-base-spacing-xs)}.doc-page-navigation .doc-page-navigation-item:not(.doc-page-navigation-sub):hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item span{font-weight:400;padding-left:var(--eui-base-spacing-m)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item:hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-grey-15)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-item--selected{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-api-iframe-wrapper{display:flex;justify-content:space-around;margin:0}@media screen and (max-width: 767px){.doc-page-navigation-wrapper .doc-page-main-column{padding-right:0;width:100%}.doc-page-navigation-wrapper .doc-page-navigation-column{display:none;width:0}}@media screen and (min-width: 768px) and (max-width: 995px){.doc-page-navigation-wrapper .doc-page-main-column{width:80%}.doc-page-navigation-wrapper .doc-page-navigation-column{width:20%}}@media screen and (max-width: 1550px){.doc-page-api-iframe-wrapper{display:none}}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.EuiTabsComponent, selector: "eui-tabs", inputs: ["styleClass", "tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i5.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i5.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "component", type: i5.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i6.EuiPageComponent, selector: "eui-page" }, { kind: "component", type: i6.EuiPageContentComponent, selector: "eui-page-content" }, { kind: "component", type: i6.EuiPageHeaderComponent, selector: "eui-page-header", inputs: ["label", "subLabel", "labelTooltip", "subLabelTooltip", "isCollapsible", "isCollapsed", "collapsedLabel", "expandedLabel"], outputs: ["collapse"] }, { kind: "directive", type: i6.EuiPageHeaderActionItemsContentDirective, selector: "eui-page-header-action-items" }, { kind: "component", type: i7.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i8.EuiAlertComponent, selector: "div[euiAlert], eui-alert", inputs: ["e2eAttr", "isMuted", "isCloseable", "isFocusable"], outputs: ["closeAlert"] }, { kind: "directive", type: i8.EuiAlertTitleDirective, selector: "eui-alert-title" }, { kind: "component", type: i9.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: i10.EuiCodeHighlighterDirective, selector: "[euiCode]" }, { kind: "component", type: i11.DocPageCodeComponent, selector: "eui-showcase-doc-page-code", inputs: ["codeFolder", "showcase"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
235
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: DocPageComponent, selector: "eui-showcase-doc-page", inputs: { id: "id", label: "label", subLabel: "subLabel", isNotReady: "isNotReady", isDeprecated: "isDeprecated", isLegacy: "isLegacy", codeFolder: "codeFolder", showcase: "showcase", isNavigationVisible: "isNavigationVisible", hasApi: "hasApi", hasA11y: "hasA11y" }, queries: [{ propertyName: "samples", predicate: DocSampleComponent, descendants: true }, { propertyName: "sections", predicate: DocSectionComponent, descendants: true }, { propertyName: "pageOverviewContent", predicate: i0.forwardRef(() => DocPageOverviewContentDirective) }, { propertyName: "pageSamplesContent", predicate: i0.forwardRef(() => DocPageSamplesContentDirective) }, { propertyName: "pageSectionsContent", predicate: i0.forwardRef(() => DocPageSectionsContentDirective) }, { propertyName: "pageInteractiveContent", predicate: i0.forwardRef(() => DocPageInteractiveContentDirective) }, { propertyName: "pageAccessibilityContent", predicate: i0.forwardRef(() => DocPageAccessibilityContentDirective) }, { propertyName: "pageApiContent", predicate: i0.forwardRef(() => DocPageApiContentDirective) }, { propertyName: "pageThemingContent", predicate: i0.forwardRef(() => DocPageThemingContentDirective) }], viewQueries: [{ propertyName: "tabsContent", first: true, predicate: ["tabsContent"], descendants: true }], ngImport: i0, template: "<div class=\"doc-page-navigation-wrapper\" [class.eui-u-hidden]=\"isLoading\">\n <div class=\"doc-page-main-column\">\n <eui-page>\n <eui-page-header label=\"{{ label }}\" subLabel=\"{{ subLabel }}\">\n <eui-page-header-action-items>\n <eui-showcase-doc-page-code\n *ngIf=\"codeFolder\"\n codeFolder=\"{{ codeFolder }}\"\n showcase=\"{{ showcase }}\"></eui-showcase-doc-page-code>\n <eui-chip\n *ngIf=\"stateLabel\"\n [euiSuccess]=\"stateLabel === 'ACTIVE'\"\n [euiWarning]=\"stateLabel === 'DEPRECATED - will be removed in eUI 18'\"\n [euiDanger]=\"isLegacy\">\n <span euiLabel>\n <strong>{{ stateLabel }}</strong>\n </span>\n </eui-chip>\n </eui-page-header-action-items>\n </eui-page-header>\n\n <eui-page-content>\n <eui-alert *ngIf=\"stateLabel === 'LEGACY' || isLegacy\" euiDanger class=\"eui-u-mb-xl\">\n <eui-alert-title>LEGACY component</eui-alert-title>\n <strong class=\"eui-u-color-danger\">This component will be removed in eUI 18 release (end of 2023)</strong>\n <div *ngIf=\"cmp\">\n <div *ngIf=\"cmp.cmpReplacement !== 'NONE'\">\n It has been replaced by :\n <strong class=\"eui-u-color-success-darkest\">{{ cmp.cmpReplacement }}</strong>\n <!-- <div *ngIf=\"cmp.cmpReplacementUrl\">\n <br><br>\n You can find more information on the new component here : <a [routerLink]=\"cmp.cmpReplacementUrl\">{{cmp.cmpReplacementUrl}}</a>\n </div> -->\n </div>\n <div *ngIf=\"cmp.cmpReplacement === 'NONE'\">\n <strong class=\"eui-u-color-danger\"> This component will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n <div *ngIf=\"cmp.cmpReplacementNote\">\n <strong class=\"eui-u-color-warning\">{{ cmp.cmpReplacementNote }}</strong>\n </div>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'DEPRECATED' || isDeprecated\" euiWarning class=\"eui-u-mb-xl\">\n <eui-alert-title>DEPRECATED component</eui-alert-title>\n This component has been <strong class=\"eui-u-color-danger\">deprecated</strong>\n <div *ngIf=\"cmp\">\n This component has no replacement in current version AND won't have replacement in next version of eUI,\n <strong class=\"eui-u-color-danger\">it will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'NOT_READY' || isNotReady\" euiInfo class=\"eui-u-mb-xl\">\n <eui-alert-title>NOT READY for production usage</eui-alert-title>\n <div *ngIf=\"cmp\">\n This component is under development / some features might be missing, it'll be available in a future release once\n validated.\n </div>\n </eui-alert>\n\n <div *ngIf=\"(stateLabel || isNotReady || isDeprecated) && stateLabel !== 'ACTIVE'\" class=\"mb-5\"></div>\n\n <eui-tabs #tabsContent *ngIf=\"pageSectionsContent.length === 0\" (tabSelect)=\"onTabSelected($event)\">\n <eui-tab>\n <euiTabLabel> OPTIONS & SAMPLES </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"cmp && cmp.metadata\">\n <div class=\"doc-page-section-title\">Module import</div>\n <pre><code class=\"language-javascript eui-u-bg-color-grey-5\" euiCode>{{ cmpModuleImport }}</code></pre>\n <br />\n </ng-container>\n\n <div id=\"overview\" class=\"doc-page-section-title\">Overview & setup</div>\n <div *ngIf=\"pageOverviewContent.length > 0; else noOverview\">\n <ng-content select=\"docPageOverview\"></ng-content>\n </div>\n <ng-template #noOverview> Coming soon... </ng-template>\n <br />\n\n <div id=\"samples\" class=\"doc-page-section-title\">Options & samples</div>\n <ng-content select=\"docPageSamples\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasApi\">\n <euiTabLabel> API </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"apiUrlSafe\">\n <div class=\"flex-container\">\n <a href=\"{{ apiUrl }}\" target=\"_blank\" class=\"ms-auto pb-2 eui-u-text-link-external\">Open API page</a>\n </div>\n <div class=\"doc-page-api-iframe-wrapper\">\n <iframe id=\"iframe_api\" [width]=\"'100%'\" height=\"700px\" frameBorder=\"0\" [src]=\"apiUrlSafe\"></iframe>\n </div>\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasA11y\">\n <euiTabLabel> A11Y </euiTabLabel>\n <euiTabContent>\n <div id=\"accessibility\" class=\"doc-page-section-title\">Accessibility</div>\n <ng-container *ngIf=\"pageAccessibilityContent.length !== 0\">\n <ng-content select=\"docPageAccessibility\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"pageAccessibilityContent.length === 0\">\n No accessibility rules applicable\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageThemingContent.length > 0\">\n <euiTabLabel> THEMING </euiTabLabel>\n <euiTabContent>\n <div id=\"theming\" class=\"doc-page-section-title\">Theming</div>\n <ng-content select=\"docPageTheming\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageInteractiveContent.length > 0\">\n <euiTabLabel>\n {{ pageInteractiveContent.first.title }}\n </euiTabLabel>\n <euiTabContent>\n <div id=\"interactive\" class=\"doc-page-section-title\">\n {{ pageInteractiveContent.first.subTitle }}\n </div>\n <ng-content select=\"docPageInteractive\"></ng-content>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <div id=\"demo\" *ngIf=\"sections.length === 0\" class=\"doc-page-section-title\">Demo</div>\n <ng-content select=\"docPageSections\"></ng-content>\n </ng-container>\n </eui-page-content>\n </eui-page>\n </div>\n\n <div *ngIf=\"isNavigationVisible\" class=\"doc-page-navigation-column eui-u-hidden-desktop-down\">\n <div id=\"doc-page-nav\">\n <div class=\"doc-page-navigation-title\">In this page</div>\n <div class=\"doc-page-navigation-content\" tabindex=\"0\">\n <ul class=\"doc-page-navigation\">\n <ng-container *ngIf=\"pageSectionsContent.length === 0\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'samples'\"\n (click)=\"onNavClick('samples', 0)\">\n <span>OPTIONS & SAMPLES</span>\n </li>\n <li\n *ngIf=\"hasApi\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'api'\"\n (click)=\"onNavClick('api', 1)\">\n <span>API</span>\n </li>\n <li\n *ngIf=\"hasA11y\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'a11y'\"\n (click)=\"onNavClick('a11y', 2)\">\n <span>A11Y</span>\n </li>\n <li class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ul *ngFor=\"let sample of samples\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </li>\n\n <!-- OPTIONAL TABS-->\n <ng-container *ngIf=\"pageThemingContent.length > 0\">\n <li\n *ngIf=\"pageThemingContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'theming'\"\n (click)=\"onNavClick('theming', 3)\">\n <span>THEMING</span>\n </li>\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 4)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n <ng-container *ngIf=\"pageThemingContent.length === 0\">\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 3)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'sections'\"\n (click)=\"onNavClick('sections', null)\">\n <span>Sections</span>\n </li>\n <li\n *ngIf=\"sections.length === 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'demo'\"\n (click)=\"onNavClick('demo', null)\">\n <span>Demo</span>\n </li>\n <li *ngIf=\"sections.length > 0\" class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ul *ngFor=\"let section of sections\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === section.id\"\n (click)=\"onNavClick(section.id, null)\">\n <span>{{ section.label }}</span>\n </li>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".doc-page-navigation-wrapper{display:flex;flex-wrap:wrap;width:100%}.doc-page-navigation-wrapper .doc-page-main-column{padding-right:var(--eui-base-spacing-m);width:calc(100% - 400px)}.doc-page-navigation-wrapper .doc-page-navigation-column{background:var(--eui-base-color-white);box-shadow:0 8px 10px #b7c0ce33;position:fixed;right:0;transition:all ease-in-out .25s;width:400px;z-index:auto;box-shadow:var(--eui-base-shadow-1)}.doc-page-navigation-wrapper .doc-page-navigation-column:hover{width:400px}.doc-page-navigation-wrapper .language-javascript:active:not([readonly]),.doc-page-navigation-wrapper .language-javascript:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;transition:none}.doc-page-navigation-wrapper .language-javascript [tabindex=\"0\"]:active:not([readonly]),.doc-page-navigation-wrapper .language-javascript [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;transition:none}.doc-page-navigation-title{font-weight:700;padding:var(--eui-base-spacing-s)}.doc-page-navigation-content{display:block;height:100vh;max-height:calc(100vh - 6rem);overflow-y:auto;width:100%}.doc-page-navigation-content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-base-color-grey-5)}.doc-page-navigation-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.doc-page-navigation-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.doc-page-navigation-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.doc-page-navigation{background-color:transparent;border-left:2px solid transparent;padding-top:var(--eui-base-spacing-xs);margin:0;padding:0}.doc-page-navigation .doc-page-navigation-list{margin:0;padding:0}.doc-page-navigation .doc-page-navigation-item{color:var(--eui-base-color-primary-100);cursor:pointer;line-height:1.5;overflow:hidden;padding:var(--eui-base-spacing-2xs);text-overflow:ellipsis;transition:background-color ease-in .2s;white-space:nowrap;list-style:none}.doc-page-navigation .doc-page-navigation-item span{font-weight:700;color:var(--eui-base-color-primary-100);padding-left:var(--eui-base-spacing-xs)}.doc-page-navigation .doc-page-navigation-item:not(.doc-page-navigation-sub):hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item span{font-weight:400;padding-left:var(--eui-base-spacing-m)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item:hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-grey-15)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-item--selected{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-api-iframe-wrapper{display:flex;justify-content:space-around;margin:0}.doc-page-section-title{margin-top:var(--eui-base-spacing-2xl);margin-bottom:var(--eui-base-spacing-xl);color:var(--eui-base-color-info-120);font:normal normal 400 1.75rem/2rem var(--eui-base-font-family);font-weight:700}@media screen and (max-width: 767px){.doc-page-navigation-wrapper .doc-page-main-column{padding-right:0;width:100%}.doc-page-navigation-wrapper .doc-page-navigation-column{display:none;width:0}}@media screen and (min-width: 768px) and (max-width: 995px){.doc-page-navigation-wrapper .doc-page-main-column{width:80%}.doc-page-navigation-wrapper .doc-page-navigation-column{width:20%}}@media screen and (max-width: 1550px){.doc-page-api-iframe-wrapper{display:none}}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.EuiTabsComponent, selector: "eui-tabs", inputs: ["styleClass", "tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i5.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i5.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "component", type: i5.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i6.EuiPageComponent, selector: "eui-page" }, { kind: "component", type: i6.EuiPageContentComponent, selector: "eui-page-content" }, { kind: "component", type: i6.EuiPageHeaderComponent, selector: "eui-page-header", inputs: ["label", "subLabel", "labelTooltip", "subLabelTooltip", "isCollapsible", "isCollapsed", "collapsedLabel", "expandedLabel"], outputs: ["collapse"] }, { kind: "directive", type: i6.EuiPageHeaderActionItemsContentDirective, selector: "eui-page-header-action-items" }, { kind: "component", type: i7.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i8.EuiAlertComponent, selector: "div[euiAlert], eui-alert", inputs: ["e2eAttr", "isMuted", "isCloseable", "isFocusable"], outputs: ["closeAlert"] }, { kind: "directive", type: i8.EuiAlertTitleDirective, selector: "eui-alert-title" }, { kind: "component", type: i9.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: i10.EuiCodeHighlighterDirective, selector: "[euiCode]" }, { kind: "component", type: i11.DocPageCodeComponent, selector: "eui-showcase-doc-page-code", inputs: ["codeFolder", "showcase"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
236
236
|
}
|
|
237
237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DocPageComponent, decorators: [{
|
|
238
238
|
type: Component,
|
|
239
|
-
args: [{ selector: 'eui-showcase-doc-page', encapsulation: ViewEncapsulation.None, template: "<div class=\"doc-page-navigation-wrapper\" [class.eui-u-hidden]=\"isLoading\">\n <div class=\"doc-page-main-column\">\n <eui-page>\n <eui-page-header label=\"{{ label }}\" subLabel=\"{{ subLabel }}\">\n <eui-page-header-action-items>\n <eui-showcase-doc-page-code\n *ngIf=\"codeFolder\"\n codeFolder=\"{{ codeFolder }}\"\n showcase=\"{{ showcase }}\"></eui-showcase-doc-page-code>\n <eui-chip\n *ngIf=\"stateLabel\"\n [euiSuccess]=\"stateLabel === 'ACTIVE'\"\n [euiWarning]=\"stateLabel === 'DEPRECATED - will be removed in eUI 18'\"\n [euiDanger]=\"isLegacy\">\n <span euiLabel>\n <strong>{{ stateLabel }}</strong>\n </span>\n </eui-chip>\n </eui-page-header-action-items>\n </eui-page-header>\n\n <eui-page-content>\n <eui-alert *ngIf=\"stateLabel === 'LEGACY' || isLegacy\" euiDanger class=\"eui-u-mb-xl\">\n <eui-alert-title>LEGACY component</eui-alert-title>\n <strong class=\"eui-u-color-danger\">This component will be removed in eUI 18 release (end of 2023)</strong>\n <div *ngIf=\"cmp\">\n <div *ngIf=\"cmp.cmpReplacement !== 'NONE'\">\n It has been replaced by :\n <strong class=\"eui-u-color-success-darkest\">{{ cmp.cmpReplacement }}</strong>\n <!-- <div *ngIf=\"cmp.cmpReplacementUrl\">\n <br><br>\n You can find more information on the new component here : <a [routerLink]=\"cmp.cmpReplacementUrl\">{{cmp.cmpReplacementUrl}}</a>\n </div> -->\n </div>\n <div *ngIf=\"cmp.cmpReplacement === 'NONE'\">\n <strong class=\"eui-u-color-danger\"> This component will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n <div *ngIf=\"cmp.cmpReplacementNote\">\n <strong class=\"eui-u-color-warning\">{{ cmp.cmpReplacementNote }}</strong>\n </div>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'DEPRECATED' || isDeprecated\" euiWarning class=\"eui-u-mb-xl\">\n <eui-alert-title>DEPRECATED component</eui-alert-title>\n This component has been <strong class=\"eui-u-color-danger\">deprecated</strong>\n <div *ngIf=\"cmp\">\n This component has no replacement in current version AND won't have replacement in next version of eUI,\n <strong class=\"eui-u-color-danger\">it will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'NOT_READY' || isNotReady\" euiInfo class=\"eui-u-mb-xl\">\n <eui-alert-title>NOT READY for production usage</eui-alert-title>\n <div *ngIf=\"cmp\">\n This component is under development / some features might be missing, it'll be available in a future release once\n validated.\n </div>\n </eui-alert>\n\n <div *ngIf=\"(stateLabel || isNotReady || isDeprecated) && stateLabel !== 'ACTIVE'\" class=\"mb-5\"></div>\n\n <eui-tabs #tabsContent *ngIf=\"pageSectionsContent.length === 0\" (tabSelect)=\"onTabSelected($event)\">\n <eui-tab>\n <euiTabLabel> OPTIONS & SAMPLES </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"cmp && cmp.metadata\">\n <h3 class=\"eui-u-font-bold eui-u-color-info mt-3 mb-3 eui-u-text-h3\">Module import</h3>\n <pre><code class=\"language-javascript eui-u-bg-color-grey-5\" euiCode>{{ cmpModuleImport }}</code></pre>\n <br />\n </ng-container>\n\n <h3 id=\"overview\" class=\"eui-u-font-bold eui-u-color-info mt-3 mb-3 eui-u-text-h3\">Overview & setup</h3>\n <div *ngIf=\"pageOverviewContent.length > 0; else noOverview\">\n <ng-content select=\"docPageOverview\"></ng-content>\n </div>\n <ng-template #noOverview> Coming soon... </ng-template>\n <br />\n\n <h3 id=\"samples\" class=\"eui-u-font-bold eui-u-color-info mt-8 mb-2 eui-u-text-h3\">Options & samples</h3>\n <ng-content select=\"docPageSamples\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasApi\">\n <euiTabLabel> API </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"apiUrlSafe\">\n <div class=\"flex-container\">\n <a href=\"{{ apiUrl }}\" target=\"_blank\" class=\"ms-auto pb-2 eui-u-text-link-external\">Open API page</a>\n </div>\n <div class=\"doc-page-api-iframe-wrapper\">\n <iframe id=\"iframe_api\" [width]=\"'100%'\" height=\"700px\" frameBorder=\"0\" [src]=\"apiUrlSafe\"></iframe>\n </div>\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasA11y\">\n <euiTabLabel> A11Y </euiTabLabel>\n <euiTabContent>\n <h3 id=\"accessibility\" class=\"eui-u-font-bold eui-u-color-info mt-3 mb-2 eui-u-text-h3\">Accessibility</h3>\n <ng-container *ngIf=\"pageAccessibilityContent.length !== 0\">\n <ng-content select=\"docPageAccessibility\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"pageAccessibilityContent.length === 0\">\n No accessibility rules applicable\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageThemingContent.length > 0\">\n <euiTabLabel> THEMING </euiTabLabel>\n <euiTabContent>\n <h3 id=\"theming\" class=\"eui-u-font-bold eui-u-color-info mt-3 mb-2 eui-u-text-h3\">Theming</h3>\n <ng-content select=\"docPageTheming\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageInteractiveContent.length > 0\">\n <euiTabLabel>\n {{ pageInteractiveContent.first.title }}\n </euiTabLabel>\n <euiTabContent>\n <h3 id=\"interactive\" class=\"eui-u-font-bold eui-u-color-info mt-3 mb-2 eui-u-text-h3\">\n {{ pageInteractiveContent.first.subTitle }}\n </h3>\n <ng-content select=\"docPageInteractive\"></ng-content>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <h3 id=\"demo\" *ngIf=\"sections.length === 0\" class=\"eui-u-font-bold eui-u-color-info mt-3 mb-2 eui-u-text-h3\">Demo</h3>\n <ng-content select=\"docPageSections\"></ng-content>\n </ng-container>\n </eui-page-content>\n </eui-page>\n </div>\n\n <div *ngIf=\"isNavigationVisible\" class=\"doc-page-navigation-column eui-u-hidden-desktop-down\">\n <div id=\"doc-page-nav\">\n <div class=\"doc-page-navigation-title\">In this page</div>\n <div class=\"doc-page-navigation-content\" tabindex=\"0\">\n <ul class=\"doc-page-navigation\">\n <ng-container *ngIf=\"pageSectionsContent.length === 0\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'samples'\"\n (click)=\"onNavClick('samples', 0)\">\n <span>OPTIONS & SAMPLES</span>\n </li>\n <li\n *ngIf=\"hasApi\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'api'\"\n (click)=\"onNavClick('api', 1)\">\n <span>API</span>\n </li>\n <li\n *ngIf=\"hasA11y\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'a11y'\"\n (click)=\"onNavClick('a11y', 2)\">\n <span>A11Y</span>\n </li>\n <li class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ul *ngFor=\"let sample of samples\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </li>\n\n <!-- OPTIONAL TABS-->\n <ng-container *ngIf=\"pageThemingContent.length > 0\">\n <li\n *ngIf=\"pageThemingContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'theming'\"\n (click)=\"onNavClick('theming', 3)\">\n <span>THEMING</span>\n </li>\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 4)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n <ng-container *ngIf=\"pageThemingContent.length === 0\">\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 3)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'sections'\"\n (click)=\"onNavClick('sections', null)\">\n <span>Sections</span>\n </li>\n <li\n *ngIf=\"sections.length === 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'demo'\"\n (click)=\"onNavClick('demo', null)\">\n <span>Demo</span>\n </li>\n <li *ngIf=\"sections.length > 0\" class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ul *ngFor=\"let section of sections\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === section.id\"\n (click)=\"onNavClick(section.id, null)\">\n <span>{{ section.label }}</span>\n </li>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".doc-page-navigation-wrapper{display:flex;flex-wrap:wrap;width:100%}.doc-page-navigation-wrapper .doc-page-main-column{padding-right:var(--eui-base-spacing-m);width:calc(100% - 400px)}.doc-page-navigation-wrapper .doc-page-navigation-column{background:var(--eui-base-color-white);box-shadow:0 8px 10px #b7c0ce33;position:fixed;right:0;transition:all ease-in-out .25s;width:400px;z-index:auto;box-shadow:var(--eui-base-shadow-1)}.doc-page-navigation-wrapper .doc-page-navigation-column:hover{width:400px}.doc-page-navigation-wrapper .language-javascript:active:not([readonly]),.doc-page-navigation-wrapper .language-javascript:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;transition:none}.doc-page-navigation-wrapper .language-javascript [tabindex=\"0\"]:active:not([readonly]),.doc-page-navigation-wrapper .language-javascript [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;transition:none}.doc-page-navigation-title{font-weight:700;padding:var(--eui-base-spacing-s)}.doc-page-navigation-content{display:block;height:100vh;max-height:calc(100vh - 6rem);overflow-y:auto;width:100%}.doc-page-navigation-content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-base-color-grey-5)}.doc-page-navigation-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.doc-page-navigation-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.doc-page-navigation-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.doc-page-navigation{background-color:transparent;border-left:2px solid transparent;padding-top:var(--eui-base-spacing-xs);margin:0;padding:0}.doc-page-navigation .doc-page-navigation-list{margin:0;padding:0}.doc-page-navigation .doc-page-navigation-item{color:var(--eui-base-color-primary-100);cursor:pointer;line-height:1.5;overflow:hidden;padding:var(--eui-base-spacing-2xs);text-overflow:ellipsis;transition:background-color ease-in .2s;white-space:nowrap;list-style:none}.doc-page-navigation .doc-page-navigation-item span{font-weight:700;color:var(--eui-base-color-primary-100);padding-left:var(--eui-base-spacing-xs)}.doc-page-navigation .doc-page-navigation-item:not(.doc-page-navigation-sub):hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item span{font-weight:400;padding-left:var(--eui-base-spacing-m)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item:hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-grey-15)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-item--selected{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-api-iframe-wrapper{display:flex;justify-content:space-around;margin:0}@media screen and (max-width: 767px){.doc-page-navigation-wrapper .doc-page-main-column{padding-right:0;width:100%}.doc-page-navigation-wrapper .doc-page-navigation-column{display:none;width:0}}@media screen and (min-width: 768px) and (max-width: 995px){.doc-page-navigation-wrapper .doc-page-main-column{width:80%}.doc-page-navigation-wrapper .doc-page-navigation-column{width:20%}}@media screen and (max-width: 1550px){.doc-page-api-iframe-wrapper{display:none}}\n"] }]
|
|
239
|
+
args: [{ selector: 'eui-showcase-doc-page', encapsulation: ViewEncapsulation.None, template: "<div class=\"doc-page-navigation-wrapper\" [class.eui-u-hidden]=\"isLoading\">\n <div class=\"doc-page-main-column\">\n <eui-page>\n <eui-page-header label=\"{{ label }}\" subLabel=\"{{ subLabel }}\">\n <eui-page-header-action-items>\n <eui-showcase-doc-page-code\n *ngIf=\"codeFolder\"\n codeFolder=\"{{ codeFolder }}\"\n showcase=\"{{ showcase }}\"></eui-showcase-doc-page-code>\n <eui-chip\n *ngIf=\"stateLabel\"\n [euiSuccess]=\"stateLabel === 'ACTIVE'\"\n [euiWarning]=\"stateLabel === 'DEPRECATED - will be removed in eUI 18'\"\n [euiDanger]=\"isLegacy\">\n <span euiLabel>\n <strong>{{ stateLabel }}</strong>\n </span>\n </eui-chip>\n </eui-page-header-action-items>\n </eui-page-header>\n\n <eui-page-content>\n <eui-alert *ngIf=\"stateLabel === 'LEGACY' || isLegacy\" euiDanger class=\"eui-u-mb-xl\">\n <eui-alert-title>LEGACY component</eui-alert-title>\n <strong class=\"eui-u-color-danger\">This component will be removed in eUI 18 release (end of 2023)</strong>\n <div *ngIf=\"cmp\">\n <div *ngIf=\"cmp.cmpReplacement !== 'NONE'\">\n It has been replaced by :\n <strong class=\"eui-u-color-success-darkest\">{{ cmp.cmpReplacement }}</strong>\n <!-- <div *ngIf=\"cmp.cmpReplacementUrl\">\n <br><br>\n You can find more information on the new component here : <a [routerLink]=\"cmp.cmpReplacementUrl\">{{cmp.cmpReplacementUrl}}</a>\n </div> -->\n </div>\n <div *ngIf=\"cmp.cmpReplacement === 'NONE'\">\n <strong class=\"eui-u-color-danger\"> This component will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n <div *ngIf=\"cmp.cmpReplacementNote\">\n <strong class=\"eui-u-color-warning\">{{ cmp.cmpReplacementNote }}</strong>\n </div>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'DEPRECATED' || isDeprecated\" euiWarning class=\"eui-u-mb-xl\">\n <eui-alert-title>DEPRECATED component</eui-alert-title>\n This component has been <strong class=\"eui-u-color-danger\">deprecated</strong>\n <div *ngIf=\"cmp\">\n This component has no replacement in current version AND won't have replacement in next version of eUI,\n <strong class=\"eui-u-color-danger\">it will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'NOT_READY' || isNotReady\" euiInfo class=\"eui-u-mb-xl\">\n <eui-alert-title>NOT READY for production usage</eui-alert-title>\n <div *ngIf=\"cmp\">\n This component is under development / some features might be missing, it'll be available in a future release once\n validated.\n </div>\n </eui-alert>\n\n <div *ngIf=\"(stateLabel || isNotReady || isDeprecated) && stateLabel !== 'ACTIVE'\" class=\"mb-5\"></div>\n\n <eui-tabs #tabsContent *ngIf=\"pageSectionsContent.length === 0\" (tabSelect)=\"onTabSelected($event)\">\n <eui-tab>\n <euiTabLabel> OPTIONS & SAMPLES </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"cmp && cmp.metadata\">\n <div class=\"doc-page-section-title\">Module import</div>\n <pre><code class=\"language-javascript eui-u-bg-color-grey-5\" euiCode>{{ cmpModuleImport }}</code></pre>\n <br />\n </ng-container>\n\n <div id=\"overview\" class=\"doc-page-section-title\">Overview & setup</div>\n <div *ngIf=\"pageOverviewContent.length > 0; else noOverview\">\n <ng-content select=\"docPageOverview\"></ng-content>\n </div>\n <ng-template #noOverview> Coming soon... </ng-template>\n <br />\n\n <div id=\"samples\" class=\"doc-page-section-title\">Options & samples</div>\n <ng-content select=\"docPageSamples\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasApi\">\n <euiTabLabel> API </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"apiUrlSafe\">\n <div class=\"flex-container\">\n <a href=\"{{ apiUrl }}\" target=\"_blank\" class=\"ms-auto pb-2 eui-u-text-link-external\">Open API page</a>\n </div>\n <div class=\"doc-page-api-iframe-wrapper\">\n <iframe id=\"iframe_api\" [width]=\"'100%'\" height=\"700px\" frameBorder=\"0\" [src]=\"apiUrlSafe\"></iframe>\n </div>\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasA11y\">\n <euiTabLabel> A11Y </euiTabLabel>\n <euiTabContent>\n <div id=\"accessibility\" class=\"doc-page-section-title\">Accessibility</div>\n <ng-container *ngIf=\"pageAccessibilityContent.length !== 0\">\n <ng-content select=\"docPageAccessibility\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"pageAccessibilityContent.length === 0\">\n No accessibility rules applicable\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageThemingContent.length > 0\">\n <euiTabLabel> THEMING </euiTabLabel>\n <euiTabContent>\n <div id=\"theming\" class=\"doc-page-section-title\">Theming</div>\n <ng-content select=\"docPageTheming\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageInteractiveContent.length > 0\">\n <euiTabLabel>\n {{ pageInteractiveContent.first.title }}\n </euiTabLabel>\n <euiTabContent>\n <div id=\"interactive\" class=\"doc-page-section-title\">\n {{ pageInteractiveContent.first.subTitle }}\n </div>\n <ng-content select=\"docPageInteractive\"></ng-content>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <div id=\"demo\" *ngIf=\"sections.length === 0\" class=\"doc-page-section-title\">Demo</div>\n <ng-content select=\"docPageSections\"></ng-content>\n </ng-container>\n </eui-page-content>\n </eui-page>\n </div>\n\n <div *ngIf=\"isNavigationVisible\" class=\"doc-page-navigation-column eui-u-hidden-desktop-down\">\n <div id=\"doc-page-nav\">\n <div class=\"doc-page-navigation-title\">In this page</div>\n <div class=\"doc-page-navigation-content\" tabindex=\"0\">\n <ul class=\"doc-page-navigation\">\n <ng-container *ngIf=\"pageSectionsContent.length === 0\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'samples'\"\n (click)=\"onNavClick('samples', 0)\">\n <span>OPTIONS & SAMPLES</span>\n </li>\n <li\n *ngIf=\"hasApi\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'api'\"\n (click)=\"onNavClick('api', 1)\">\n <span>API</span>\n </li>\n <li\n *ngIf=\"hasA11y\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'a11y'\"\n (click)=\"onNavClick('a11y', 2)\">\n <span>A11Y</span>\n </li>\n <li class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ul *ngFor=\"let sample of samples\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </li>\n\n <!-- OPTIONAL TABS-->\n <ng-container *ngIf=\"pageThemingContent.length > 0\">\n <li\n *ngIf=\"pageThemingContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'theming'\"\n (click)=\"onNavClick('theming', 3)\">\n <span>THEMING</span>\n </li>\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 4)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n <ng-container *ngIf=\"pageThemingContent.length === 0\">\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 3)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'sections'\"\n (click)=\"onNavClick('sections', null)\">\n <span>Sections</span>\n </li>\n <li\n *ngIf=\"sections.length === 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'demo'\"\n (click)=\"onNavClick('demo', null)\">\n <span>Demo</span>\n </li>\n <li *ngIf=\"sections.length > 0\" class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ul *ngFor=\"let section of sections\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === section.id\"\n (click)=\"onNavClick(section.id, null)\">\n <span>{{ section.label }}</span>\n </li>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".doc-page-navigation-wrapper{display:flex;flex-wrap:wrap;width:100%}.doc-page-navigation-wrapper .doc-page-main-column{padding-right:var(--eui-base-spacing-m);width:calc(100% - 400px)}.doc-page-navigation-wrapper .doc-page-navigation-column{background:var(--eui-base-color-white);box-shadow:0 8px 10px #b7c0ce33;position:fixed;right:0;transition:all ease-in-out .25s;width:400px;z-index:auto;box-shadow:var(--eui-base-shadow-1)}.doc-page-navigation-wrapper .doc-page-navigation-column:hover{width:400px}.doc-page-navigation-wrapper .language-javascript:active:not([readonly]),.doc-page-navigation-wrapper .language-javascript:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;transition:none}.doc-page-navigation-wrapper .language-javascript [tabindex=\"0\"]:active:not([readonly]),.doc-page-navigation-wrapper .language-javascript [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;transition:none}.doc-page-navigation-title{font-weight:700;padding:var(--eui-base-spacing-s)}.doc-page-navigation-content{display:block;height:100vh;max-height:calc(100vh - 6rem);overflow-y:auto;width:100%}.doc-page-navigation-content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-base-color-grey-5)}.doc-page-navigation-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.doc-page-navigation-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.doc-page-navigation-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.doc-page-navigation{background-color:transparent;border-left:2px solid transparent;padding-top:var(--eui-base-spacing-xs);margin:0;padding:0}.doc-page-navigation .doc-page-navigation-list{margin:0;padding:0}.doc-page-navigation .doc-page-navigation-item{color:var(--eui-base-color-primary-100);cursor:pointer;line-height:1.5;overflow:hidden;padding:var(--eui-base-spacing-2xs);text-overflow:ellipsis;transition:background-color ease-in .2s;white-space:nowrap;list-style:none}.doc-page-navigation .doc-page-navigation-item span{font-weight:700;color:var(--eui-base-color-primary-100);padding-left:var(--eui-base-spacing-xs)}.doc-page-navigation .doc-page-navigation-item:not(.doc-page-navigation-sub):hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item span{font-weight:400;padding-left:var(--eui-base-spacing-m)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item:hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-grey-15)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-item--selected{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-api-iframe-wrapper{display:flex;justify-content:space-around;margin:0}.doc-page-section-title{margin-top:var(--eui-base-spacing-2xl);margin-bottom:var(--eui-base-spacing-xl);color:var(--eui-base-color-info-120);font:normal normal 400 1.75rem/2rem var(--eui-base-font-family);font-weight:700}@media screen and (max-width: 767px){.doc-page-navigation-wrapper .doc-page-main-column{padding-right:0;width:100%}.doc-page-navigation-wrapper .doc-page-navigation-column{display:none;width:0}}@media screen and (min-width: 768px) and (max-width: 995px){.doc-page-navigation-wrapper .doc-page-main-column{width:80%}.doc-page-navigation-wrapper .doc-page-navigation-column{width:20%}}@media screen and (max-width: 1550px){.doc-page-api-iframe-wrapper{display:none}}\n"] }]
|
|
240
240
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.EuiAppShellService }, { type: i3.DomSanitizer }, { type: i4.Location }], propDecorators: { id: [{
|
|
241
241
|
type: Input
|
|
242
242
|
}], label: [{
|
|
@@ -355,4 +355,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
355
355
|
type: Directive,
|
|
356
356
|
args: [{ selector: 'docPageTheming' }]
|
|
357
357
|
}] });
|
|
358
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RvYy1wYWdlL2RvYy1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kb2MtcGFnZS9kb2MtcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBRVQsZUFBZSxFQUNmLFVBQVUsRUFHVixpQkFBaUIsRUFDakIsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBbUIzRSxNQUFNLE9BQU8sZ0JBQWdCO0lBK0R6QixZQUNZLE1BQWMsRUFDZCxLQUFxQixFQUNyQixTQUE2QixFQUM5QixTQUF1QixFQUN0QixRQUFrQjtRQUpsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBaEVyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDM0IsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFheEIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQThCWixh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QkFEMUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBmb3J3YXJkUmVmLFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNhZmVSZXNvdXJjZVVybCwgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERvY1NhbXBsZUNvbXBvbmVudCB9IGZyb20gJy4uL2RvYy1zYW1wbGUvZG9jLXNhbXBsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2RvYy1zZWN0aW9uL2RvYy1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UsIEV1aU1lbnVJdGVtLCBVeExpbmtMZWdhY3kgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgRXVpVGFiQ29tcG9uZW50LCBFdWlUYWJzQ29tcG9uZW50IH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS10YWJzJztcblxudHlwZSBDb21wb25lbnRTdGF0dXMgPSBVeExpbmtMZWdhY3kgJiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNtcFJlcGxhY2VtZW50OiBzdHJpbmc7XG4gICAgY21wUmVwbGFjZW1lbnRVcmw6IHN0cmluZztcbiAgICBjbXBSZXBsYWNlbWVudE5vdGU6IHN0cmluZztcbiAgICBhbHRlcm5hdGVBcGlDYXRlZ29yeTogc3RyaW5nO1xuICAgIGFsdGVybmF0ZUlkOiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1zaG93Y2FzZS1kb2MtcGFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICdkb2MtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZG9jLXBhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSBpZDtcbiAgICBASW5wdXQoKSBsYWJlbDtcbiAgICBASW5wdXQoKSBzdWJMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGlzTm90UmVhZHkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0RlcHJlY2F0ZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0xlZ2FjeSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGNvZGVGb2xkZXI6IHN0cmluZztcbiAgICBASW5wdXQoKSBzaG93Y2FzZSA9ICd1eCc7XG4gICAgQElucHV0KCkgaXNOYXZpZ2F0aW9uVmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KCkgaGFzQXBpID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBoYXNBMTF5ID0gdHJ1ZTtcblxuICAgIHN0YXRlVHlwZUNsYXNzO1xuICAgIHN0YXRlTGFiZWw7XG4gICAgY21wO1xuICAgIGZyYWdtZW50SWQ7XG4gICAgY21wTW9kdWxlSW1wb3J0O1xuICAgIGFwcE1ldGFkYXRhO1xuXG4gICAgYXBpVXJsU2FmZTogU2FmZVJlc291cmNlVXJsO1xuICAgIGFwaVVybDogc3RyaW5nO1xuICAgIGlGcmFtZUNvbnRlbnQ7XG5cbiAgICBpc0xvYWRpbmcgPSB0cnVlO1xuICAgIGlzTmF2Q2xpY2tlZCA9IHRydWU7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKERvY1NhbXBsZUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHNhbXBsZXM6IFF1ZXJ5TGlzdDxEb2NTYW1wbGVDb21wb25lbnQ+O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRG9jU2VjdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHNlY3Rpb25zOiBRdWVyeUxpc3Q8RG9jU2VjdGlvbkNvbXBvbmVudD47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZU92ZXJ2aWV3Q29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZU92ZXJ2aWV3Q29udGVudDogUXVlcnlMaXN0PERvY1BhZ2VPdmVydmlld0NvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VTYW1wbGVzQ29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZVNhbXBsZXNDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZVNhbXBsZXNDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlU2VjdGlvbnNDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlU2VjdGlvbnNDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZVNlY3Rpb25zQ29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZUludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZUludGVyYWN0aXZlQ29udGVudDogUXVlcnlMaXN0PERvY1BhZ2VJbnRlcmFjdGl2ZUNvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VBY2Nlc3NpYmlsaXR5Q29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZUFjY2Vzc2liaWxpdHlDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZUFjY2Vzc2liaWxpdHlDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlQXBpQ29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZUFwaUNvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlQXBpQ29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZVRoZW1pbmdDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlVGhlbWluZ0NvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlVGhlbWluZ0NvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQFZpZXdDaGlsZCgndGFic0NvbnRlbnQnKSB0YWJzQ29udGVudDogRXVpVGFic0NvbXBvbmVudDtcblxuICAgIHByaXZhdGUgVEFCU19ERUYgPSBbXG4gICAgICAgIHsgaW5kZXg6IDAsIGlkOiAnc2FtcGxlcycgfSxcbiAgICAgICAgeyBpbmRleDogMSwgaWQ6ICdhcGknIH0sXG4gICAgICAgIHsgaW5kZXg6IDIsIGlkOiAnYTExeScgfSxcbiAgICAgICAgeyBpbmRleDogMywgaWQ6ICd0aGVtaW5nJyB9LFxuICAgICAgICB7IGluZGV4OiA0LCBpZDogJ2FkdmFuY2VkJyB9LFxuICAgIF07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgYXNTZXJ2aWNlOiBFdWlBcHBTaGVsbFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5hc1NlcnZpY2UuaXNCbG9ja0RvY3VtZW50QWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hcHBNZXRhZGF0YSA9IHRoaXMuYXNTZXJ2aWNlLnN0YXRlLmFwcE1ldGFkYXRhO1xuXG4gICAgICAgIGlmICh0aGlzLmlkICYmICF0aGlzLmxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLmxhYmVsID0gdGhpcy5pZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmNtcCA9IHRoaXMuX2dldENvbXBvbmVudFN0YXR1cyh0aGlzLmlkKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY21wKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNtcC5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlTGFiZWwgPSAnQUNUSVZFJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVUeXBlQ2xhc3MgPSAnc3VjY2Vzcyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVMYWJlbCA9ICdERVBSRUNBVEVEIC0gd2lsbCBiZSByZW1vdmVkIGluIGVVSSAxOCc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlVHlwZUNsYXNzID0gJ3dhcm5pbmcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0RlcHJlY2F0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVMYWJlbCA9ICdMRUdBQ1kgLSB3aWxsIGJlIHJlbW92ZWQgaW4gZVVJIDE4JztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVUeXBlQ2xhc3MgPSAnZGFuZ2VyJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMZWdhY3kgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaW5mbyc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlTGFiZWwgPSAnTk9UIFJFQURZJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVUeXBlQ2xhc3MgPSAnYWNjZW50JztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNOb3RSZWFkeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBjb25zdHJ1Y3QgY21wIG1vZHVsZSBpbXBvcnQgc3RyaW5nXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICAgICAgdGhpcy5jbXBNb2R1bGVJbXBvcnQgPSBgaW1wb3J0IHsgJHt0aGlzLmNtcC5tZXRhZGF0YT8ubW9kdWxlTmFtZX0gfSBmcm9tICdAZXVpLyR7dGhpcy5jbXAubWV0YWRhdGE/LnN1YkVudHJ5TmFtZX0nO2A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdXYXJuaW5nLCBlcnJvcnMgZGV0ZWN0ZWQgd2hpbGUgZ2V0dGluZyBwYWdlIHN0YXRlJyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZyYWdtZW50SWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmZyYWdtZW50O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gZ2V0dGluZyBBUEkgdXJsXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmFwaVVybCA9IHRoaXMuX2dldEFwaVVybCgpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coYEZldGNoaW5nIEFQSSB1cmwgZnJvbSA6ICR7dGhpcy5hcGlVcmx9YCk7XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBpVXJsU2FmZSA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLmFwaVVybCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLyoqIGVtcHR5ICovXG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhYiA9IHRoaXMuVEFCU19ERUYuZmlsdGVyKCh0KSA9PiB0LmlkID09PSB0aGlzLmZyYWdtZW50SWQpWzBdO1xuICAgICAgICAgICAgY29uc3Qgc2FtcGxlVGFiSW5kZXggPSAwO1xuXG4gICAgICAgICAgICBsZXQgdGFiSW5kZXg7XG5cbiAgICAgICAgICAgIGlmICghdGFiKSB7XG4gICAgICAgICAgICAgICAgdGFiSW5kZXggPSBzYW1wbGVUYWJJbmRleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGFiSW5kZXggPSB0YWIuaW5kZXg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvRnJhZ21lbnQodGhpcy5mcmFnbWVudElkLCB0YWJJbmRleCwgdHJ1ZSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXNTZXJ2aWNlLmlzQmxvY2tEb2N1bWVudEFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25OYXZDbGljayhmcmFnbWVudElkOiBzdHJpbmcsIHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mcmFnbWVudElkID0gZnJhZ21lbnRJZDtcbiAgICAgICAgdGhpcy5pc05hdkNsaWNrZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9zY3JvbGxUb0ZyYWdtZW50KHRoaXMuZnJhZ21lbnRJZCwgdGFiSW5kZXgsIGZhbHNlLCB0cnVlKTtcbiAgICB9XG5cbiAgICBvblRhYlNlbGVjdGVkKGV2ZW50OiB7IHRhYjogRXVpVGFiQ29tcG9uZW50OyBpbmRleDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTG9hZGluZyAmJiAhdGhpcy5pc05hdkNsaWNrZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYklkID0gdGhpcy5UQUJTX0RFRi5maWx0ZXIoKHQpID0+IHQuaW5kZXggPT09IGV2ZW50LmluZGV4KVswXS5pZDtcbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvRnJhZ21lbnQodGFiSWQsIGV2ZW50LmluZGV4LCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNOYXZDbGlja2VkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2Nyb2xsVG9GcmFnbWVudChmcmFnbWVudElkOiBzdHJpbmcsIHRhYkluZGV4OiBudW1iZXIsIGluaXQ6IGJvb2xlYW4sIGNoYW5nZVRhYjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoaW5pdCkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFic0NvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYnNDb250ZW50LmNoYW5nZVRhYih0YWJJbmRleCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZnJhZ21lbnRJZCkge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZnbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGZyYWdtZW50SWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeU9mZnNldCA9IC04MDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmZ20pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB5ID0gZmdtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5wYWdlWU9mZnNldCArIHlPZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiB5IH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlVGFiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIub25TYW1lVXJsTmF2aWdhdGlvbiA9ICdyZWxvYWQnO1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLiddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUsIGZyYWdtZW50OiBmcmFnbWVudElkIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50YWJzQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJzQ29udGVudC5jaGFuZ2VUYWIodGFiSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlUm9vdCA9IHRoaXMucm91dGVyLnVybC5zcGxpdCgnIycpWzBdO1xuICAgICAgICAgICAgICAgIHRoaXMubG9jYXRpb24uZ28oYCR7cm91dGVSb290fSMke2ZyYWdtZW50SWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRDb21wb25lbnRTdGF0dXMoaWQpOiBDb21wb25lbnRTdGF0dXMge1xuXG4gICAgICAgIGNvbnN0IGZsYXR0ZW4gPSAobGlua3M6IEV1aU1lbnVJdGVtW10pOiBDb21wb25lbnRTdGF0dXNbXSA9PlxuICAgICAgICAgICAgbGlua3NcbiAgICAgICAgICAgICAgICA/IGxpbmtzLnJlZHVjZShcbiAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0LCBpdGVtOiBDb21wb25lbnRTdGF0dXMpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZUlkOiBpdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGl0ZW0ubWFya2VyVHlwZUNsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21wUmVwbGFjZW1lbnQ6IGl0ZW0uY21wUmVwbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbXBSZXBsYWNlbWVudFVybDogaXRlbS5jbXBSZXBsYWNlbWVudFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtcFJlcGxhY2VtZW50Tm90ZTogaXRlbS5jbXBSZXBsYWNlbWVudE5vdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVBcGlDYXRlZ29yeTogaXRlbS5hbHRlcm5hdGVBcGlDYXRlZ29yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiBpdGVtLm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5mbGF0dGVuKGl0ZW0uY2hpbGRyZW4pLFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBbXTtcblxuICAgICAgICBjb25zdCBmbGF0TGlua3MgPSBmbGF0dGVuKHRoaXMuYXNTZXJ2aWNlLnN0YXRlLnNpZGViYXJMaW5rcyk7XG4gICAgICAgIGNvbnN0IGlkQmFzZWRDbXAgPSBmbGF0TGlua3MuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmlkID09PSBpZClbMF07XG4gICAgICAgIGlmIChpZEJhc2VkQ21wKSB7XG4gICAgICAgICAgICByZXR1cm4gaWRCYXNlZENtcDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFsdGVybmF0ZUlkQmFzZWRDbXAgPSBmbGF0TGlua3MuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmFsdGVybmF0ZUlkID09PSBpZClbMF07XG4gICAgICAgICAgICByZXR1cm4gYWx0ZXJuYXRlSWRCYXNlZENtcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEFwaVVybCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb247XG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gdXJsLnByb3RvY29sO1xuICAgICAgICBjb25zdCBob3N0ID0gdXJsLmhvc3Q7XG4gICAgICAgIGNvbnN0IHBhdGhOYW1lID0gdXJsLnBhdGhuYW1lO1xuICAgICAgICBjb25zdCBwYXRoTmFtZUFycmF5ID0gcGF0aE5hbWUuc3BsaXQoJy8nKTtcbiAgICAgICAgY29uc3QgbmFtZSA9IHBhdGhOYW1lQXJyYXlbcGF0aE5hbWVBcnJheS5sZW5ndGggLSAxXTtcbiAgICAgICAgbGV0IGNhdGVnb3J5ID0gcGF0aE5hbWVBcnJheVtwYXRoTmFtZUFycmF5Lmxlbmd0aCAtIDJdO1xuICAgICAgICBjb25zdCBzaG93Y2FzZVR5cGUgPSBwYXRoTmFtZUFycmF5W3BhdGhOYW1lQXJyYXkubGVuZ3RoIC0gM107XG5cbiAgICAgICAgbGV0IHByb3RvY29sR2VuID0gcHJvdG9jb2w7XG4gICAgICAgIGxldCBob3N0R2VuID0gaG9zdDtcblxuICAgICAgICBpZiAoaG9zdC5pbmRleE9mKCdsb2NhbGhvc3QnKSA+IC0xKSB7XG4gICAgICAgICAgICBwcm90b2NvbEdlbiA9ICdodHRwczonO1xuICAgICAgICAgICAgaG9zdEdlbiA9ICdldWlkZXYuZWNkZXZvcHMuZXUnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXBwVmVyc2lvbk51bWJlciA9IHRoaXMuYXBwTWV0YWRhdGEuYXBwVmVyc2lvbi5zcGxpdCgnLicpWzBdO1xuXG4gICAgICAgIGxldCBkb2NUeXBlUm9vdCA9IGBldWktZG9jcy1ldWktJHthcHBWZXJzaW9uTnVtYmVyfS54YDtcbiAgICAgICAgaWYgKHNob3djYXNlVHlwZS5pbmRleE9mKCctZWNsJykgPiAtMSkge1xuICAgICAgICAgICAgZG9jVHlwZVJvb3QgPSBgZXVpLWRvY3MtZWNsLSR7YXBwVmVyc2lvbk51bWJlcn0ueGA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2F0ZWdvcnkgPT09ICdsYXlvdXQtY29tcG9uZW50cycgfHwgY2F0ZWdvcnkgPT09ICdleHRlcm5hbHMnKSB7XG4gICAgICAgICAgICBjYXRlZ29yeSA9ICdjb21wb25lbnRzJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNtcCA9IHRoaXMuX2dldENvbXBvbmVudFN0YXR1cyhuYW1lKTtcblxuICAgICAgICBpZiAoY21wLmFsdGVybmF0ZUFwaUNhdGVnb3J5KSB7XG4gICAgICAgICAgICBjYXRlZ29yeSA9IGNtcC5hbHRlcm5hdGVBcGlDYXRlZ29yeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE5hbWUgPSB0aGlzLl9jYW1lbENhc2VTdHJpbmcobmFtZSArICctJyArIGNhdGVnb3J5LnNsaWNlKDAsIC0xKSwgJy0nLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZG9jUGF0aCA9IGAke3Byb3RvY29sR2VufS8vJHtob3N0R2VufS8ke2RvY1R5cGVSb290fS8ke2NhdGVnb3J5fS8ke2Zvcm1hdHRlZE5hbWV9Lmh0bWxgO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKGBmZXRjaGluZyBBUEkgZnJvbTogJHtkb2NQYXRofWApO1xuXG4gICAgICAgIHJldHVybiBkb2NQYXRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NhbWVsQ2FzZVN0cmluZyhzdHJpbmcsIHNlcGFyYXRvciwgZmlyc3QpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzdHJpbmdBcnJheSA9IHN0cmluZy5zcGxpdChzZXBhcmF0b3IpO1xuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICAgIGxldCBzO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBzdHJpbmdBcnJheVtpXTtcbiAgICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzLnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpICsgcy5zdWJzdHIoMSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gcy5zdWJzdHJpbmcoMCwgMSkudG9VcHBlckNhc2UoKSArIHMuc3Vic3RyKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3IgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VPdmVydmlldycgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlT3ZlcnZpZXdDb250ZW50RGlyZWN0aXZlIHt9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdkb2NQYWdlSW50ZXJhY3RpdmUnIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZSB7XG4gICAgQElucHV0KCkgdGl0bGUgPSAnQURWQU5DRUQgRVhBTVBMRVMnO1xuICAgIEBJbnB1dCgpIHN1YlRpdGxlID0gJ0FkdmFuY2VkIHVzZSBjYXNlcyc7XG59XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdkb2NQYWdlU2FtcGxlcycgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlU2FtcGxlc0NvbnRlbnREaXJlY3RpdmUge31cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VTZWN0aW9ucycgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlU2VjdGlvbnNDb250ZW50RGlyZWN0aXZlIHt9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdkb2NQYWdlQWNjZXNzaWJpbGl0eScgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlQWNjZXNzaWJpbGl0eUNvbnRlbnREaXJlY3RpdmUge31cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VBcGknIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUFwaUNvbnRlbnREaXJlY3RpdmUge31cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZVRoZW1pbmcnIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZVRoZW1pbmdDb250ZW50RGlyZWN0aXZlIHt9XG4vKiBlc2xpbnQtZW5hYmxlIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3IgKi9cbiIsIjxkaXYgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLXdyYXBwZXJcIiBbY2xhc3MuZXVpLXUtaGlkZGVuXT1cImlzTG9hZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkb2MtcGFnZS1tYWluLWNvbHVtblwiPlxuICAgICAgICA8ZXVpLXBhZ2U+XG4gICAgICAgICAgICA8ZXVpLXBhZ2UtaGVhZGVyIGxhYmVsPVwie3sgbGFiZWwgfX1cIiBzdWJMYWJlbD1cInt7IHN1YkxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPGV1aS1wYWdlLWhlYWRlci1hY3Rpb24taXRlbXM+XG4gICAgICAgICAgICAgICAgICAgIDxldWktc2hvd2Nhc2UtZG9jLXBhZ2UtY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2RlRm9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVGb2xkZXI9XCJ7eyBjb2RlRm9sZGVyIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3djYXNlPVwie3sgc2hvd2Nhc2UgfX1cIj48L2V1aS1zaG93Y2FzZS1kb2MtcGFnZS1jb2RlPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWNoaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3RhdGVMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpU3VjY2Vzc109XCJzdGF0ZUxhYmVsID09PSAnQUNUSVZFJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpV2FybmluZ109XCJzdGF0ZUxhYmVsID09PSAnREVQUkVDQVRFRCAtIHdpbGwgYmUgcmVtb3ZlZCBpbiBlVUkgMTgnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtldWlEYW5nZXJdPVwiaXNMZWdhY3lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGV1aUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgc3RhdGVMYWJlbCB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS1jaGlwPlxuICAgICAgICAgICAgICAgIDwvZXVpLXBhZ2UtaGVhZGVyLWFjdGlvbi1pdGVtcz5cbiAgICAgICAgICAgIDwvZXVpLXBhZ2UtaGVhZGVyPlxuXG4gICAgICAgICAgICA8ZXVpLXBhZ2UtY29udGVudD5cbiAgICAgICAgICAgICAgICA8ZXVpLWFsZXJ0ICpuZ0lmPVwic3RhdGVMYWJlbCA9PT0gJ0xFR0FDWScgfHwgaXNMZWdhY3lcIiBldWlEYW5nZXIgY2xhc3M9XCJldWktdS1tYi14bFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWFsZXJ0LXRpdGxlPkxFR0FDWSBjb21wb25lbnQ8L2V1aS1hbGVydC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLWRhbmdlclwiPlRoaXMgY29tcG9uZW50IHdpbGwgYmUgcmVtb3ZlZCBpbiBlVUkgMTggcmVsZWFzZSAoZW5kIG9mIDIwMjMpPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjbXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjbXAuY21wUmVwbGFjZW1lbnQgIT09ICdOT05FJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiZXVpLXUtY29sb3Itc3VjY2Vzcy1kYXJrZXN0XCI+e3sgY21wLmNtcFJlcGxhY2VtZW50IH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiY21wLmNtcFJlcGxhY2VtZW50VXJsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj48YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBjYW4gZmluZCBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBuZXcgY29tcG9uZW50IGhlcmUgOiA8YSBbcm91dGVyTGlua109XCJjbXAuY21wUmVwbGFjZW1lbnRVcmxcIj57e2NtcC5jbXBSZXBsYWNlbWVudFVybH19PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcC5jbXBSZXBsYWNlbWVudCA9PT0gJ05PTkUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLWRhbmdlclwiPiBUaGlzIGNvbXBvbmVudCB3aWxsIGJlIHJlbW92ZWQgaW4gZVVJIDE4IHJlbGVhc2UgKGVuZCBvZiAyMDIzKTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21wLmNtcFJlcGxhY2VtZW50Tm90ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJldWktdS1jb2xvci13YXJuaW5nXCI+e3sgY21wLmNtcFJlcGxhY2VtZW50Tm90ZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZXVpLWFsZXJ0PlxuXG4gICAgICAgICAgICAgICAgPGV1aS1hbGVydCAqbmdJZj1cInN0YXRlTGFiZWwgPT09ICdERVBSRUNBVEVEJyB8fCBpc0RlcHJlY2F0ZWRcIiBldWlXYXJuaW5nIGNsYXNzPVwiZXVpLXUtbWIteGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1hbGVydC10aXRsZT5ERVBSRUNBVEVEIGNvbXBvbmVudDwvZXVpLWFsZXJ0LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICBUaGlzIGNvbXBvbmVudCBoYXMgYmVlbiA8c3Ryb25nIGNsYXNzPVwiZXVpLXUtY29sb3ItZGFuZ2VyXCI+ZGVwcmVjYXRlZDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNvbXBvbmVudCBoYXMgbm8gcmVwbGFjZW1lbnQgaW4gY3VycmVudCB2ZXJzaW9uIEFORCB3b24ndCBoYXZlIHJlcGxhY2VtZW50IGluIG5leHQgdmVyc2lvbiBvZiBlVUksXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiZXVpLXUtY29sb3ItZGFuZ2VyXCI+aXQgd2lsbCBiZSByZW1vdmVkIGluIGVVSSAxOCByZWxlYXNlIChlbmQgb2YgMjAyMyk8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9ldWktYWxlcnQ+XG5cbiAgICAgICAgICAgICAgICA8ZXVpLWFsZXJ0ICpuZ0lmPVwic3RhdGVMYWJlbCA9PT0gJ05PVF9SRUFEWScgfHwgaXNOb3RSZWFkeVwiIGV1aUluZm8gY2xhc3M9XCJldWktdS1tYi14bFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWFsZXJ0LXRpdGxlPk5PVCBSRUFEWSBmb3IgcHJvZHVjdGlvbiB1c2FnZTwvZXVpLWFsZXJ0LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNvbXBvbmVudCBpcyB1bmRlciBkZXZlbG9wbWVudCAvIHNvbWUgZmVhdHVyZXMgbWlnaHQgYmUgbWlzc2luZywgaXQnbGwgYmUgYXZhaWxhYmxlIGluIGEgZnV0dXJlIHJlbGVhc2Ugb25jZVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVkLlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2V1aS1hbGVydD5cblxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoc3RhdGVMYWJlbCB8fCBpc05vdFJlYWR5IHx8IGlzRGVwcmVjYXRlZCkgJiYgc3RhdGVMYWJlbCAhPT0gJ0FDVElWRSdcIiBjbGFzcz1cIm1iLTVcIj48L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxldWktdGFicyAjdGFic0NvbnRlbnQgKm5nSWY9XCJwYWdlU2VjdGlvbnNDb250ZW50Lmxlbmd0aCA9PT0gMFwiICh0YWJTZWxlY3QpPVwib25UYWJTZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkxhYmVsPiBPUFRJT05TICYgU0FNUExFUyA8L2V1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNtcCAmJiBjbXAubWV0YWRhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiZXVpLXUtZm9udC1ib2xkIGV1aS11LWNvbG9yLWluZm8gbXQtMyBtYi0zIGV1aS11LXRleHQtaDNcIj5Nb2R1bGUgaW1wb3J0PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByZT48Y29kZSBjbGFzcz1cImxhbmd1YWdlLWphdmFzY3JpcHQgZXVpLXUtYmctY29sb3ItZ3JleS01XCIgZXVpQ29kZT57eyBjbXBNb2R1bGVJbXBvcnQgfX08L2NvZGU+PC9wcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGlkPVwib3ZlcnZpZXdcIiBjbGFzcz1cImV1aS11LWZvbnQtYm9sZCBldWktdS1jb2xvci1pbmZvIG10LTMgbWItMyBldWktdS10ZXh0LWgzXCI+T3ZlcnZpZXcgJiBzZXR1cDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInBhZ2VPdmVydmlld0NvbnRlbnQubGVuZ3RoID4gMDsgZWxzZSBub092ZXJ2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRvY1BhZ2VPdmVydmlld1wiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vT3ZlcnZpZXc+IENvbWluZyBzb29uLi4uIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgaWQ9XCJzYW1wbGVzXCIgY2xhc3M9XCJldWktdS1mb250LWJvbGQgZXVpLXUtY29sb3ItaW5mbyBtdC04IG1iLTIgZXVpLXUtdGV4dC1oM1wiPk9wdGlvbnMgJiBzYW1wbGVzPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlU2FtcGxlc1wiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9ldWktdGFiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxldWktdGFiICpuZ0lmPVwiaGFzQXBpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+IEFQSSA8L2V1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwaVVybFNhZmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwie3sgYXBpVXJsIH19XCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJtcy1hdXRvIHBiLTIgZXVpLXUtdGV4dC1saW5rLWV4dGVybmFsXCI+T3BlbiBBUEkgcGFnZTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb2MtcGFnZS1hcGktaWZyYW1lLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgaWQ9XCJpZnJhbWVfYXBpXCIgW3dpZHRoXT1cIicxMDAlJ1wiIGhlaWdodD1cIjcwMHB4XCIgZnJhbWVCb3JkZXI9XCIwXCIgW3NyY109XCJhcGlVcmxTYWZlXCI+PC9pZnJhbWU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS10YWIgKm5nSWY9XCJoYXNBMTF5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+IEExMVkgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBpZD1cImFjY2Vzc2liaWxpdHlcIiBjbGFzcz1cImV1aS11LWZvbnQtYm9sZCBldWktdS1jb2xvci1pbmZvIG10LTMgbWItMiBldWktdS10ZXh0LWgzXCI+QWNjZXNzaWJpbGl0eTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VBY2Nlc3NpYmlsaXR5Q29udGVudC5sZW5ndGggIT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZG9jUGFnZUFjY2Vzc2liaWxpdHlcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VBY2Nlc3NpYmlsaXR5Q29udGVudC5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8gYWNjZXNzaWJpbGl0eSBydWxlcyBhcHBsaWNhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cblxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXRhYiAqbmdJZj1cInBhZ2VUaGVtaW5nQ29udGVudC5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+IFRIRU1JTkcgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBpZD1cInRoZW1pbmdcIiBjbGFzcz1cImV1aS11LWZvbnQtYm9sZCBldWktdS1jb2xvci1pbmZvIG10LTMgbWItMiBldWktdS10ZXh0LWgzXCI+VGhlbWluZzwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZG9jUGFnZVRoZW1pbmdcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cblxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXRhYiAqbmdJZj1cInBhZ2VJbnRlcmFjdGl2ZUNvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBhZ2VJbnRlcmFjdGl2ZUNvbnRlbnQuZmlyc3QudGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgaWQ9XCJpbnRlcmFjdGl2ZVwiIGNsYXNzPVwiZXVpLXUtZm9udC1ib2xkIGV1aS11LWNvbG9yLWluZm8gbXQtMyBtYi0yIGV1aS11LXRleHQtaDNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcGFnZUludGVyYWN0aXZlQ29udGVudC5maXJzdC5zdWJUaXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZG9jUGFnZUludGVyYWN0aXZlXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG4gICAgICAgICAgICAgICAgPC9ldWktdGFicz5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlU2VjdGlvbnNDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGgzIGlkPVwiZGVtb1wiICpuZ0lmPVwic2VjdGlvbnMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJldWktdS1mb250LWJvbGQgZXVpLXUtY29sb3ItaW5mbyBtdC0zIG1iLTIgZXVpLXUtdGV4dC1oM1wiPkRlbW88L2gzPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlU2VjdGlvbnNcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2V1aS1wYWdlLWNvbnRlbnQ+XG4gICAgICAgIDwvZXVpLXBhZ2U+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNOYXZpZ2F0aW9uVmlzaWJsZVwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1jb2x1bW4gZXVpLXUtaGlkZGVuLWRlc2t0b3AtZG93blwiPlxuICAgICAgICA8ZGl2IGlkPVwiZG9jLXBhZ2UtbmF2XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi10aXRsZVwiPkluIHRoaXMgcGFnZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24tY29udGVudFwiIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VTZWN0aW9uc0NvbnRlbnQubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ3NhbXBsZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnc2FtcGxlcycsIDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+T1BUSU9OUyAmIFNBTVBMRVM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNBcGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAnYXBpJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ2FwaScsIDEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QVBJPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzQTExeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdhMTF5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ2ExMXknLCAyKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkExMVk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtIGRvYy1wYWdlLW5hdmlnYXRpb24tc3ViXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBzYW1wbGUgb2Ygc2FtcGxlc1wiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gc2FtcGxlLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKHNhbXBsZS5pZCwgMClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHNhbXBsZS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBPUFRJT05BTCBUQUJTLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnZVRoZW1pbmdDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwYWdlVGhlbWluZ0NvbnRlbnQubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ3RoZW1pbmcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ3RoZW1pbmcnLCAzKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5USEVNSU5HPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGFnZUludGVyYWN0aXZlQ29udGVudC5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAnYWR2YW5jZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ2FkdmFuY2VkJywgNClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcGFnZUludGVyYWN0aXZlQ29udGVudC5maXJzdC50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnZVRoZW1pbmdDb250ZW50Lmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBhZ2VJbnRlcmFjdGl2ZUNvbnRlbnQubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ2FkdmFuY2VkJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKCdhZHZhbmNlZCcsIDMpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHBhZ2VJbnRlcmFjdGl2ZUNvbnRlbnQuZmlyc3QudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnZVNlY3Rpb25zQ29udGVudC5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ3NlY3Rpb25zJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ3NlY3Rpb25zJywgbnVsbClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TZWN0aW9uczwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlY3Rpb25zLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdkZW1vJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ2RlbW8nLCBudWxsKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkRlbW88L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwic2VjdGlvbnMubGVuZ3RoID4gMFwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtIGRvYy1wYWdlLW5hdmlnYXRpb24tc3ViXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHNlY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gc2VjdGlvbi5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljayhzZWN0aW9uLmlkLCBudWxsKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2VjdGlvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
358
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RvYy1wYWdlL2RvYy1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kb2MtcGFnZS9kb2MtcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBRVQsZUFBZSxFQUNmLFVBQVUsRUFHVixpQkFBaUIsRUFDakIsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBbUIzRSxNQUFNLE9BQU8sZ0JBQWdCO0lBK0R6QixZQUNZLE1BQWMsRUFDZCxLQUFxQixFQUNyQixTQUE2QixFQUM5QixTQUF1QixFQUN0QixRQUFrQjtRQUpsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBaEVyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDM0IsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFheEIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQThCWixh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QkFEMUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBmb3J3YXJkUmVmLFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNhZmVSZXNvdXJjZVVybCwgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERvY1NhbXBsZUNvbXBvbmVudCB9IGZyb20gJy4uL2RvYy1zYW1wbGUvZG9jLXNhbXBsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2RvYy1zZWN0aW9uL2RvYy1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UsIEV1aU1lbnVJdGVtLCBVeExpbmtMZWdhY3kgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgRXVpVGFiQ29tcG9uZW50LCBFdWlUYWJzQ29tcG9uZW50IH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS10YWJzJztcblxudHlwZSBDb21wb25lbnRTdGF0dXMgPSBVeExpbmtMZWdhY3kgJiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNtcFJlcGxhY2VtZW50OiBzdHJpbmc7XG4gICAgY21wUmVwbGFjZW1lbnRVcmw6IHN0cmluZztcbiAgICBjbXBSZXBsYWNlbWVudE5vdGU6IHN0cmluZztcbiAgICBhbHRlcm5hdGVBcGlDYXRlZ29yeTogc3RyaW5nO1xuICAgIGFsdGVybmF0ZUlkOiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1zaG93Y2FzZS1kb2MtcGFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICdkb2MtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZG9jLXBhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSBpZDtcbiAgICBASW5wdXQoKSBsYWJlbDtcbiAgICBASW5wdXQoKSBzdWJMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGlzTm90UmVhZHkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0RlcHJlY2F0ZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0xlZ2FjeSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGNvZGVGb2xkZXI6IHN0cmluZztcbiAgICBASW5wdXQoKSBzaG93Y2FzZSA9ICd1eCc7XG4gICAgQElucHV0KCkgaXNOYXZpZ2F0aW9uVmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KCkgaGFzQXBpID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBoYXNBMTF5ID0gdHJ1ZTtcblxuICAgIHN0YXRlVHlwZUNsYXNzO1xuICAgIHN0YXRlTGFiZWw7XG4gICAgY21wO1xuICAgIGZyYWdtZW50SWQ7XG4gICAgY21wTW9kdWxlSW1wb3J0O1xuICAgIGFwcE1ldGFkYXRhO1xuXG4gICAgYXBpVXJsU2FmZTogU2FmZVJlc291cmNlVXJsO1xuICAgIGFwaVVybDogc3RyaW5nO1xuICAgIGlGcmFtZUNvbnRlbnQ7XG5cbiAgICBpc0xvYWRpbmcgPSB0cnVlO1xuICAgIGlzTmF2Q2xpY2tlZCA9IHRydWU7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKERvY1NhbXBsZUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHNhbXBsZXM6IFF1ZXJ5TGlzdDxEb2NTYW1wbGVDb21wb25lbnQ+O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRG9jU2VjdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHNlY3Rpb25zOiBRdWVyeUxpc3Q8RG9jU2VjdGlvbkNvbXBvbmVudD47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZU92ZXJ2aWV3Q29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZU92ZXJ2aWV3Q29udGVudDogUXVlcnlMaXN0PERvY1BhZ2VPdmVydmlld0NvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VTYW1wbGVzQ29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZVNhbXBsZXNDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZVNhbXBsZXNDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlU2VjdGlvbnNDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlU2VjdGlvbnNDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZVNlY3Rpb25zQ29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZUludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZUludGVyYWN0aXZlQ29udGVudDogUXVlcnlMaXN0PERvY1BhZ2VJbnRlcmFjdGl2ZUNvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VBY2Nlc3NpYmlsaXR5Q29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZUFjY2Vzc2liaWxpdHlDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZUFjY2Vzc2liaWxpdHlDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlQXBpQ29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZUFwaUNvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlQXBpQ29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZVRoZW1pbmdDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlVGhlbWluZ0NvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlVGhlbWluZ0NvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQFZpZXdDaGlsZCgndGFic0NvbnRlbnQnKSB0YWJzQ29udGVudDogRXVpVGFic0NvbXBvbmVudDtcblxuICAgIHByaXZhdGUgVEFCU19ERUYgPSBbXG4gICAgICAgIHsgaW5kZXg6IDAsIGlkOiAnc2FtcGxlcycgfSxcbiAgICAgICAgeyBpbmRleDogMSwgaWQ6ICdhcGknIH0sXG4gICAgICAgIHsgaW5kZXg6IDIsIGlkOiAnYTExeScgfSxcbiAgICAgICAgeyBpbmRleDogMywgaWQ6ICd0aGVtaW5nJyB9LFxuICAgICAgICB7IGluZGV4OiA0LCBpZDogJ2FkdmFuY2VkJyB9LFxuICAgIF07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgYXNTZXJ2aWNlOiBFdWlBcHBTaGVsbFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5hc1NlcnZpY2UuaXNCbG9ja0RvY3VtZW50QWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hcHBNZXRhZGF0YSA9IHRoaXMuYXNTZXJ2aWNlLnN0YXRlLmFwcE1ldGFkYXRhO1xuXG4gICAgICAgIGlmICh0aGlzLmlkICYmICF0aGlzLmxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLmxhYmVsID0gdGhpcy5pZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmNtcCA9IHRoaXMuX2dldENvbXBvbmVudFN0YXR1cyh0aGlzLmlkKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY21wKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNtcC5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlTGFiZWwgPSAnQUNUSVZFJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVUeXBlQ2xhc3MgPSAnc3VjY2Vzcyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVMYWJlbCA9ICdERVBSRUNBVEVEIC0gd2lsbCBiZSByZW1vdmVkIGluIGVVSSAxOCc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlVHlwZUNsYXNzID0gJ3dhcm5pbmcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0RlcHJlY2F0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVMYWJlbCA9ICdMRUdBQ1kgLSB3aWxsIGJlIHJlbW92ZWQgaW4gZVVJIDE4JztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVUeXBlQ2xhc3MgPSAnZGFuZ2VyJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMZWdhY3kgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaW5mbyc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlTGFiZWwgPSAnTk9UIFJFQURZJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVUeXBlQ2xhc3MgPSAnYWNjZW50JztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNOb3RSZWFkeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBjb25zdHJ1Y3QgY21wIG1vZHVsZSBpbXBvcnQgc3RyaW5nXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICAgICAgdGhpcy5jbXBNb2R1bGVJbXBvcnQgPSBgaW1wb3J0IHsgJHt0aGlzLmNtcC5tZXRhZGF0YT8ubW9kdWxlTmFtZX0gfSBmcm9tICdAZXVpLyR7dGhpcy5jbXAubWV0YWRhdGE/LnN1YkVudHJ5TmFtZX0nO2A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdXYXJuaW5nLCBlcnJvcnMgZGV0ZWN0ZWQgd2hpbGUgZ2V0dGluZyBwYWdlIHN0YXRlJyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZyYWdtZW50SWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmZyYWdtZW50O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gZ2V0dGluZyBBUEkgdXJsXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmFwaVVybCA9IHRoaXMuX2dldEFwaVVybCgpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coYEZldGNoaW5nIEFQSSB1cmwgZnJvbSA6ICR7dGhpcy5hcGlVcmx9YCk7XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBpVXJsU2FmZSA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLmFwaVVybCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLyoqIGVtcHR5ICovXG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhYiA9IHRoaXMuVEFCU19ERUYuZmlsdGVyKCh0KSA9PiB0LmlkID09PSB0aGlzLmZyYWdtZW50SWQpWzBdO1xuICAgICAgICAgICAgY29uc3Qgc2FtcGxlVGFiSW5kZXggPSAwO1xuXG4gICAgICAgICAgICBsZXQgdGFiSW5kZXg7XG5cbiAgICAgICAgICAgIGlmICghdGFiKSB7XG4gICAgICAgICAgICAgICAgdGFiSW5kZXggPSBzYW1wbGVUYWJJbmRleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGFiSW5kZXggPSB0YWIuaW5kZXg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvRnJhZ21lbnQodGhpcy5mcmFnbWVudElkLCB0YWJJbmRleCwgdHJ1ZSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXNTZXJ2aWNlLmlzQmxvY2tEb2N1bWVudEFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25OYXZDbGljayhmcmFnbWVudElkOiBzdHJpbmcsIHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mcmFnbWVudElkID0gZnJhZ21lbnRJZDtcbiAgICAgICAgdGhpcy5pc05hdkNsaWNrZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9zY3JvbGxUb0ZyYWdtZW50KHRoaXMuZnJhZ21lbnRJZCwgdGFiSW5kZXgsIGZhbHNlLCB0cnVlKTtcbiAgICB9XG5cbiAgICBvblRhYlNlbGVjdGVkKGV2ZW50OiB7IHRhYjogRXVpVGFiQ29tcG9uZW50OyBpbmRleDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTG9hZGluZyAmJiAhdGhpcy5pc05hdkNsaWNrZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYklkID0gdGhpcy5UQUJTX0RFRi5maWx0ZXIoKHQpID0+IHQuaW5kZXggPT09IGV2ZW50LmluZGV4KVswXS5pZDtcbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvRnJhZ21lbnQodGFiSWQsIGV2ZW50LmluZGV4LCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNOYXZDbGlja2VkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2Nyb2xsVG9GcmFnbWVudChmcmFnbWVudElkOiBzdHJpbmcsIHRhYkluZGV4OiBudW1iZXIsIGluaXQ6IGJvb2xlYW4sIGNoYW5nZVRhYjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoaW5pdCkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFic0NvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYnNDb250ZW50LmNoYW5nZVRhYih0YWJJbmRleCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZnJhZ21lbnRJZCkge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZnbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGZyYWdtZW50SWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeU9mZnNldCA9IC04MDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmZ20pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB5ID0gZmdtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5wYWdlWU9mZnNldCArIHlPZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiB5IH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlVGFiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIub25TYW1lVXJsTmF2aWdhdGlvbiA9ICdyZWxvYWQnO1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLiddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUsIGZyYWdtZW50OiBmcmFnbWVudElkIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50YWJzQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJzQ29udGVudC5jaGFuZ2VUYWIodGFiSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlUm9vdCA9IHRoaXMucm91dGVyLnVybC5zcGxpdCgnIycpWzBdO1xuICAgICAgICAgICAgICAgIHRoaXMubG9jYXRpb24uZ28oYCR7cm91dGVSb290fSMke2ZyYWdtZW50SWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRDb21wb25lbnRTdGF0dXMoaWQpOiBDb21wb25lbnRTdGF0dXMge1xuXG4gICAgICAgIGNvbnN0IGZsYXR0ZW4gPSAobGlua3M6IEV1aU1lbnVJdGVtW10pOiBDb21wb25lbnRTdGF0dXNbXSA9PlxuICAgICAgICAgICAgbGlua3NcbiAgICAgICAgICAgICAgICA/IGxpbmtzLnJlZHVjZShcbiAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0LCBpdGVtOiBDb21wb25lbnRTdGF0dXMpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZUlkOiBpdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGl0ZW0ubWFya2VyVHlwZUNsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21wUmVwbGFjZW1lbnQ6IGl0ZW0uY21wUmVwbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbXBSZXBsYWNlbWVudFVybDogaXRlbS5jbXBSZXBsYWNlbWVudFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtcFJlcGxhY2VtZW50Tm90ZTogaXRlbS5jbXBSZXBsYWNlbWVudE5vdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVBcGlDYXRlZ29yeTogaXRlbS5hbHRlcm5hdGVBcGlDYXRlZ29yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiBpdGVtLm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5mbGF0dGVuKGl0ZW0uY2hpbGRyZW4pLFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBbXTtcblxuICAgICAgICBjb25zdCBmbGF0TGlua3MgPSBmbGF0dGVuKHRoaXMuYXNTZXJ2aWNlLnN0YXRlLnNpZGViYXJMaW5rcyk7XG4gICAgICAgIGNvbnN0IGlkQmFzZWRDbXAgPSBmbGF0TGlua3MuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmlkID09PSBpZClbMF07XG4gICAgICAgIGlmIChpZEJhc2VkQ21wKSB7XG4gICAgICAgICAgICByZXR1cm4gaWRCYXNlZENtcDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFsdGVybmF0ZUlkQmFzZWRDbXAgPSBmbGF0TGlua3MuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmFsdGVybmF0ZUlkID09PSBpZClbMF07XG4gICAgICAgICAgICByZXR1cm4gYWx0ZXJuYXRlSWRCYXNlZENtcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEFwaVVybCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb247XG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gdXJsLnByb3RvY29sO1xuICAgICAgICBjb25zdCBob3N0ID0gdXJsLmhvc3Q7XG4gICAgICAgIGNvbnN0IHBhdGhOYW1lID0gdXJsLnBhdGhuYW1lO1xuICAgICAgICBjb25zdCBwYXRoTmFtZUFycmF5ID0gcGF0aE5hbWUuc3BsaXQoJy8nKTtcbiAgICAgICAgY29uc3QgbmFtZSA9IHBhdGhOYW1lQXJyYXlbcGF0aE5hbWVBcnJheS5sZW5ndGggLSAxXTtcbiAgICAgICAgbGV0IGNhdGVnb3J5ID0gcGF0aE5hbWVBcnJheVtwYXRoTmFtZUFycmF5Lmxlbmd0aCAtIDJdO1xuICAgICAgICBjb25zdCBzaG93Y2FzZVR5cGUgPSBwYXRoTmFtZUFycmF5W3BhdGhOYW1lQXJyYXkubGVuZ3RoIC0gM107XG5cbiAgICAgICAgbGV0IHByb3RvY29sR2VuID0gcHJvdG9jb2w7XG4gICAgICAgIGxldCBob3N0R2VuID0gaG9zdDtcblxuICAgICAgICBpZiAoaG9zdC5pbmRleE9mKCdsb2NhbGhvc3QnKSA+IC0xKSB7XG4gICAgICAgICAgICBwcm90b2NvbEdlbiA9ICdodHRwczonO1xuICAgICAgICAgICAgaG9zdEdlbiA9ICdldWlkZXYuZWNkZXZvcHMuZXUnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXBwVmVyc2lvbk51bWJlciA9IHRoaXMuYXBwTWV0YWRhdGEuYXBwVmVyc2lvbi5zcGxpdCgnLicpWzBdO1xuXG4gICAgICAgIGxldCBkb2NUeXBlUm9vdCA9IGBldWktZG9jcy1ldWktJHthcHBWZXJzaW9uTnVtYmVyfS54YDtcbiAgICAgICAgaWYgKHNob3djYXNlVHlwZS5pbmRleE9mKCctZWNsJykgPiAtMSkge1xuICAgICAgICAgICAgZG9jVHlwZVJvb3QgPSBgZXVpLWRvY3MtZWNsLSR7YXBwVmVyc2lvbk51bWJlcn0ueGA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2F0ZWdvcnkgPT09ICdsYXlvdXQtY29tcG9uZW50cycgfHwgY2F0ZWdvcnkgPT09ICdleHRlcm5hbHMnKSB7XG4gICAgICAgICAgICBjYXRlZ29yeSA9ICdjb21wb25lbnRzJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNtcCA9IHRoaXMuX2dldENvbXBvbmVudFN0YXR1cyhuYW1lKTtcblxuICAgICAgICBpZiAoY21wLmFsdGVybmF0ZUFwaUNhdGVnb3J5KSB7XG4gICAgICAgICAgICBjYXRlZ29yeSA9IGNtcC5hbHRlcm5hdGVBcGlDYXRlZ29yeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE5hbWUgPSB0aGlzLl9jYW1lbENhc2VTdHJpbmcobmFtZSArICctJyArIGNhdGVnb3J5LnNsaWNlKDAsIC0xKSwgJy0nLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZG9jUGF0aCA9IGAke3Byb3RvY29sR2VufS8vJHtob3N0R2VufS8ke2RvY1R5cGVSb290fS8ke2NhdGVnb3J5fS8ke2Zvcm1hdHRlZE5hbWV9Lmh0bWxgO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKGBmZXRjaGluZyBBUEkgZnJvbTogJHtkb2NQYXRofWApO1xuXG4gICAgICAgIHJldHVybiBkb2NQYXRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NhbWVsQ2FzZVN0cmluZyhzdHJpbmcsIHNlcGFyYXRvciwgZmlyc3QpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzdHJpbmdBcnJheSA9IHN0cmluZy5zcGxpdChzZXBhcmF0b3IpO1xuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICAgIGxldCBzO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBzdHJpbmdBcnJheVtpXTtcbiAgICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzLnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpICsgcy5zdWJzdHIoMSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gcy5zdWJzdHJpbmcoMCwgMSkudG9VcHBlckNhc2UoKSArIHMuc3Vic3RyKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3IgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VPdmVydmlldycgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlT3ZlcnZpZXdDb250ZW50RGlyZWN0aXZlIHt9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdkb2NQYWdlSW50ZXJhY3RpdmUnIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZSB7XG4gICAgQElucHV0KCkgdGl0bGUgPSAnQURWQU5DRUQgRVhBTVBMRVMnO1xuICAgIEBJbnB1dCgpIHN1YlRpdGxlID0gJ0FkdmFuY2VkIHVzZSBjYXNlcyc7XG59XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdkb2NQYWdlU2FtcGxlcycgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlU2FtcGxlc0NvbnRlbnREaXJlY3RpdmUge31cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VTZWN0aW9ucycgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlU2VjdGlvbnNDb250ZW50RGlyZWN0aXZlIHt9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdkb2NQYWdlQWNjZXNzaWJpbGl0eScgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlQWNjZXNzaWJpbGl0eUNvbnRlbnREaXJlY3RpdmUge31cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VBcGknIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUFwaUNvbnRlbnREaXJlY3RpdmUge31cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZVRoZW1pbmcnIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZVRoZW1pbmdDb250ZW50RGlyZWN0aXZlIHt9XG4vKiBlc2xpbnQtZW5hYmxlIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3IgKi9cbiIsIjxkaXYgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLXdyYXBwZXJcIiBbY2xhc3MuZXVpLXUtaGlkZGVuXT1cImlzTG9hZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkb2MtcGFnZS1tYWluLWNvbHVtblwiPlxuICAgICAgICA8ZXVpLXBhZ2U+XG4gICAgICAgICAgICA8ZXVpLXBhZ2UtaGVhZGVyIGxhYmVsPVwie3sgbGFiZWwgfX1cIiBzdWJMYWJlbD1cInt7IHN1YkxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPGV1aS1wYWdlLWhlYWRlci1hY3Rpb24taXRlbXM+XG4gICAgICAgICAgICAgICAgICAgIDxldWktc2hvd2Nhc2UtZG9jLXBhZ2UtY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2RlRm9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVGb2xkZXI9XCJ7eyBjb2RlRm9sZGVyIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3djYXNlPVwie3sgc2hvd2Nhc2UgfX1cIj48L2V1aS1zaG93Y2FzZS1kb2MtcGFnZS1jb2RlPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWNoaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3RhdGVMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpU3VjY2Vzc109XCJzdGF0ZUxhYmVsID09PSAnQUNUSVZFJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpV2FybmluZ109XCJzdGF0ZUxhYmVsID09PSAnREVQUkVDQVRFRCAtIHdpbGwgYmUgcmVtb3ZlZCBpbiBlVUkgMTgnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtldWlEYW5nZXJdPVwiaXNMZWdhY3lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGV1aUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgc3RhdGVMYWJlbCB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS1jaGlwPlxuICAgICAgICAgICAgICAgIDwvZXVpLXBhZ2UtaGVhZGVyLWFjdGlvbi1pdGVtcz5cbiAgICAgICAgICAgIDwvZXVpLXBhZ2UtaGVhZGVyPlxuXG4gICAgICAgICAgICA8ZXVpLXBhZ2UtY29udGVudD5cbiAgICAgICAgICAgICAgICA8ZXVpLWFsZXJ0ICpuZ0lmPVwic3RhdGVMYWJlbCA9PT0gJ0xFR0FDWScgfHwgaXNMZWdhY3lcIiBldWlEYW5nZXIgY2xhc3M9XCJldWktdS1tYi14bFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWFsZXJ0LXRpdGxlPkxFR0FDWSBjb21wb25lbnQ8L2V1aS1hbGVydC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLWRhbmdlclwiPlRoaXMgY29tcG9uZW50IHdpbGwgYmUgcmVtb3ZlZCBpbiBlVUkgMTggcmVsZWFzZSAoZW5kIG9mIDIwMjMpPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjbXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjbXAuY21wUmVwbGFjZW1lbnQgIT09ICdOT05FJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiZXVpLXUtY29sb3Itc3VjY2Vzcy1kYXJrZXN0XCI+e3sgY21wLmNtcFJlcGxhY2VtZW50IH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiY21wLmNtcFJlcGxhY2VtZW50VXJsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj48YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBjYW4gZmluZCBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBuZXcgY29tcG9uZW50IGhlcmUgOiA8YSBbcm91dGVyTGlua109XCJjbXAuY21wUmVwbGFjZW1lbnRVcmxcIj57e2NtcC5jbXBSZXBsYWNlbWVudFVybH19PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcC5jbXBSZXBsYWNlbWVudCA9PT0gJ05PTkUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLWRhbmdlclwiPiBUaGlzIGNvbXBvbmVudCB3aWxsIGJlIHJlbW92ZWQgaW4gZVVJIDE4IHJlbGVhc2UgKGVuZCBvZiAyMDIzKTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21wLmNtcFJlcGxhY2VtZW50Tm90ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJldWktdS1jb2xvci13YXJuaW5nXCI+e3sgY21wLmNtcFJlcGxhY2VtZW50Tm90ZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZXVpLWFsZXJ0PlxuXG4gICAgICAgICAgICAgICAgPGV1aS1hbGVydCAqbmdJZj1cInN0YXRlTGFiZWwgPT09ICdERVBSRUNBVEVEJyB8fCBpc0RlcHJlY2F0ZWRcIiBldWlXYXJuaW5nIGNsYXNzPVwiZXVpLXUtbWIteGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1hbGVydC10aXRsZT5ERVBSRUNBVEVEIGNvbXBvbmVudDwvZXVpLWFsZXJ0LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICBUaGlzIGNvbXBvbmVudCBoYXMgYmVlbiA8c3Ryb25nIGNsYXNzPVwiZXVpLXUtY29sb3ItZGFuZ2VyXCI+ZGVwcmVjYXRlZDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNvbXBvbmVudCBoYXMgbm8gcmVwbGFjZW1lbnQgaW4gY3VycmVudCB2ZXJzaW9uIEFORCB3b24ndCBoYXZlIHJlcGxhY2VtZW50IGluIG5leHQgdmVyc2lvbiBvZiBlVUksXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiZXVpLXUtY29sb3ItZGFuZ2VyXCI+aXQgd2lsbCBiZSByZW1vdmVkIGluIGVVSSAxOCByZWxlYXNlIChlbmQgb2YgMjAyMyk8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9ldWktYWxlcnQ+XG5cbiAgICAgICAgICAgICAgICA8ZXVpLWFsZXJ0ICpuZ0lmPVwic3RhdGVMYWJlbCA9PT0gJ05PVF9SRUFEWScgfHwgaXNOb3RSZWFkeVwiIGV1aUluZm8gY2xhc3M9XCJldWktdS1tYi14bFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWFsZXJ0LXRpdGxlPk5PVCBSRUFEWSBmb3IgcHJvZHVjdGlvbiB1c2FnZTwvZXVpLWFsZXJ0LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNvbXBvbmVudCBpcyB1bmRlciBkZXZlbG9wbWVudCAvIHNvbWUgZmVhdHVyZXMgbWlnaHQgYmUgbWlzc2luZywgaXQnbGwgYmUgYXZhaWxhYmxlIGluIGEgZnV0dXJlIHJlbGVhc2Ugb25jZVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVkLlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2V1aS1hbGVydD5cblxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoc3RhdGVMYWJlbCB8fCBpc05vdFJlYWR5IHx8IGlzRGVwcmVjYXRlZCkgJiYgc3RhdGVMYWJlbCAhPT0gJ0FDVElWRSdcIiBjbGFzcz1cIm1iLTVcIj48L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxldWktdGFicyAjdGFic0NvbnRlbnQgKm5nSWY9XCJwYWdlU2VjdGlvbnNDb250ZW50Lmxlbmd0aCA9PT0gMFwiICh0YWJTZWxlY3QpPVwib25UYWJTZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkxhYmVsPiBPUFRJT05TICYgU0FNUExFUyA8L2V1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNtcCAmJiBjbXAubWV0YWRhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLXNlY3Rpb24tdGl0bGVcIj5Nb2R1bGUgaW1wb3J0PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcmU+PGNvZGUgY2xhc3M9XCJsYW5ndWFnZS1qYXZhc2NyaXB0IGV1aS11LWJnLWNvbG9yLWdyZXktNVwiIGV1aUNvZGU+e3sgY21wTW9kdWxlSW1wb3J0IH19PC9jb2RlPjwvcHJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJvdmVydmlld1wiIGNsYXNzPVwiZG9jLXBhZ2Utc2VjdGlvbi10aXRsZVwiPk92ZXJ2aWV3ICYgc2V0dXA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicGFnZU92ZXJ2aWV3Q29udGVudC5sZW5ndGggPiAwOyBlbHNlIG5vT3ZlcnZpZXdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZG9jUGFnZU92ZXJ2aWV3XCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9PdmVydmlldz4gQ29taW5nIHNvb24uLi4gPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJzYW1wbGVzXCIgY2xhc3M9XCJkb2MtcGFnZS1zZWN0aW9uLXRpdGxlXCI+T3B0aW9ucyAmIHNhbXBsZXM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlU2FtcGxlc1wiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9ldWktdGFiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxldWktdGFiICpuZ0lmPVwiaGFzQXBpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+IEFQSSA8L2V1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwaVVybFNhZmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwie3sgYXBpVXJsIH19XCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJtcy1hdXRvIHBiLTIgZXVpLXUtdGV4dC1saW5rLWV4dGVybmFsXCI+T3BlbiBBUEkgcGFnZTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb2MtcGFnZS1hcGktaWZyYW1lLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgaWQ9XCJpZnJhbWVfYXBpXCIgW3dpZHRoXT1cIicxMDAlJ1wiIGhlaWdodD1cIjcwMHB4XCIgZnJhbWVCb3JkZXI9XCIwXCIgW3NyY109XCJhcGlVcmxTYWZlXCI+PC9pZnJhbWU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS10YWIgKm5nSWY9XCJoYXNBMTF5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+IEExMVkgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhY2Nlc3NpYmlsaXR5XCIgY2xhc3M9XCJkb2MtcGFnZS1zZWN0aW9uLXRpdGxlXCI+QWNjZXNzaWJpbGl0eTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlQWNjZXNzaWJpbGl0eUNvbnRlbnQubGVuZ3RoICE9PSAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRvY1BhZ2VBY2Nlc3NpYmlsaXR5XCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlQWNjZXNzaWJpbGl0eUNvbnRlbnQubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vIGFjY2Vzc2liaWxpdHkgcnVsZXMgYXBwbGljYWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS10YWIgKm5nSWY9XCJwYWdlVGhlbWluZ0NvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkxhYmVsPiBUSEVNSU5HIDwvZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwidGhlbWluZ1wiIGNsYXNzPVwiZG9jLXBhZ2Utc2VjdGlvbi10aXRsZVwiPlRoZW1pbmc8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlVGhlbWluZ1wiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9ldWktdGFiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxldWktdGFiICpuZ0lmPVwicGFnZUludGVyYWN0aXZlQ29udGVudC5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcGFnZUludGVyYWN0aXZlQ29udGVudC5maXJzdC50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJpbnRlcmFjdGl2ZVwiIGNsYXNzPVwiZG9jLXBhZ2Utc2VjdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwYWdlSW50ZXJhY3RpdmVDb250ZW50LmZpcnN0LnN1YlRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZG9jUGFnZUludGVyYWN0aXZlXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG4gICAgICAgICAgICAgICAgPC9ldWktdGFicz5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlU2VjdGlvbnNDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImRlbW9cIiAqbmdJZj1cInNlY3Rpb25zLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwiZG9jLXBhZ2Utc2VjdGlvbi10aXRsZVwiPkRlbW88L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZG9jUGFnZVNlY3Rpb25zXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9ldWktcGFnZS1jb250ZW50PlxuICAgICAgICA8L2V1aS1wYWdlPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cImlzTmF2aWdhdGlvblZpc2libGVcIiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24tY29sdW1uIGV1aS11LWhpZGRlbi1kZXNrdG9wLWRvd25cIj5cbiAgICAgICAgPGRpdiBpZD1cImRvYy1wYWdlLW5hdlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24tdGl0bGVcIj5JbiB0aGlzIHBhZ2U8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWNvbnRlbnRcIiB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlU2VjdGlvbnNDb250ZW50Lmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdzYW1wbGVzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ3NhbXBsZXMnLCAwKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPk9QVElPTlMgJiBTQU1QTEVTPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzQXBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ2FwaSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKCdhcGknLCAxKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFQSTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0ExMXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAnYTExeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKCdhMTF5JywgMilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BMTFZPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbSBkb2MtcGFnZS1uYXZpZ2F0aW9uLXN1YlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgc2FtcGxlIG9mIHNhbXBsZXNcIiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09IHNhbXBsZS5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljayhzYW1wbGUuaWQsIDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBzYW1wbGUubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gT1BUSU9OQUwgVEFCUy0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VUaGVtaW5nQ29udGVudC5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGFnZVRoZW1pbmdDb250ZW50Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICd0aGVtaW5nJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKCd0aGVtaW5nJywgMylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+VEhFTUlORzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBhZ2VJbnRlcmFjdGl2ZUNvbnRlbnQubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ2FkdmFuY2VkJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKCdhZHZhbmNlZCcsIDQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHBhZ2VJbnRlcmFjdGl2ZUNvbnRlbnQuZmlyc3QudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VUaGVtaW5nQ29udGVudC5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwYWdlSW50ZXJhY3RpdmVDb250ZW50Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdhZHZhbmNlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnYWR2YW5jZWQnLCAzKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwYWdlSW50ZXJhY3RpdmVDb250ZW50LmZpcnN0LnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VTZWN0aW9uc0NvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdzZWN0aW9ucydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKCdzZWN0aW9ucycsIG51bGwpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+U2VjdGlvbnM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWN0aW9ucy5sZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAnZGVtbydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKCdkZW1vJywgbnVsbClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5EZW1vPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cInNlY3Rpb25zLmxlbmd0aCA+IDBcIiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbSBkb2MtcGFnZS1uYXZpZ2F0aW9uLXN1YlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09IHNlY3Rpb24uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2Q2xpY2soc2VjdGlvbi5pZCwgbnVsbClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHNlY3Rpb24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -167,11 +167,11 @@ export class DocSampleComponent {
|
|
|
167
167
|
: [];
|
|
168
168
|
}
|
|
169
169
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DocSampleComponent, deps: [{ token: i1.HttpClient }, { token: i2.EuiAppShellService }, { token: i0.ChangeDetectorRef }, { token: i2.EuiGrowlService }, { token: i3.Clipboard }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
170
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: DocSampleComponent, selector: "eui-showcase-doc-sample", inputs: { id: "id", label: "label", styleClass: "styleClass", renderPlayground: "renderPlayground" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "<div class=\"doc-sample-title\">\n <div class=\"doc-sample-title__label\">\n <strong>{{ label }}</strong>\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n euiSizeS\n (click)=\"copyCurrentUrlToClipboard(id)\"\n class=\"doc-sample-title__link\"\n tabindex=\"-1\">\n <eui-icon-svg icon=\"link\" set=\"outline\" size=\"l\" fillColor=\"grey-75\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"doc-sample-title__items\">\n <button\n type=\"button\"\n euiButton\n [euiOutline]=\"!isCodeExpanded\"\n euiPrimary\n euiSizeS\n (click)=\"onToggleCode()\"\n [isLoading]=\"isCodeLoading\"\n [euiDisabled]=\"isCodeLoading\">\n <span *ngIf=\"!isCodeExpanded\" euiLabel>Code</span>\n <span *ngIf=\"isCodeExpanded\" euiLabel>Hide Code</span>\n <span euiIcon iconClass=\"eui-icon-code\"></span>\n </button>\n </div>\n</div>\n\n<ng-template [ngIf]=\"isCodeExpanded\">\n <eui-card euiNoContentPadding>\n <eui-card-content>\n <eui-tabs (tabSelect)=\"onSelectedTab($event)\">\n <eui-tab [isVisible]=\"htmlContent\">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-markup\" euiCode>{{htmlContent}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"tsContent\">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode>{{filterOutModuleAndImports(tsContent)}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab euiWarning [isVisible]=\"htmlContent && tsContent && renderPlayground\">\n <euiTabLabel>\n Playground\n <euiTabSubLabel>Stackblitz <eui-chip euiSizeS euiWarning>Experimental</eui-chip></euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <eui-playground\n [typescriptContent]=\"tsContent\"\n [htmlContent]=\"htmlContent\"\n [activated]=\"playground_activated\"></eui-playground>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n </eui-card-content>\n </eui-card>\n</ng-template>\n\n<ng-content></ng-content>\n", styles: [".eui-showcase-doc-sample{display:block;margin-bottom:var(--eui-base-spacing-2xl);width:100%}.eui-showcase-doc-sample .doc-sample-title{align-items:flex-end;display:flex;width:100%;margin-bottom:var(--eui-base-spacing-m);padding-bottom:var(--eui-base-spacing-s);border-bottom:1px solid var(--eui-base-color-grey-
|
|
170
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: DocSampleComponent, selector: "eui-showcase-doc-sample", inputs: { id: "id", label: "label", styleClass: "styleClass", renderPlayground: "renderPlayground" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "<div class=\"doc-sample-title\">\n <div class=\"doc-sample-title__label\">\n <strong>{{ label }}</strong>\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n euiSizeS\n (click)=\"copyCurrentUrlToClipboard(id)\"\n class=\"doc-sample-title__link\"\n tabindex=\"-1\">\n <eui-icon-svg icon=\"link\" set=\"outline\" size=\"l\" fillColor=\"grey-75\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"doc-sample-title__items\">\n <button\n type=\"button\"\n euiButton\n [euiOutline]=\"!isCodeExpanded\"\n euiPrimary\n euiSizeS\n (click)=\"onToggleCode()\"\n [isLoading]=\"isCodeLoading\"\n [euiDisabled]=\"isCodeLoading\">\n <span *ngIf=\"!isCodeExpanded\" euiLabel>Code</span>\n <span *ngIf=\"isCodeExpanded\" euiLabel>Hide Code</span>\n <span euiIcon iconClass=\"eui-icon-code\"></span>\n </button>\n </div>\n</div>\n\n<ng-template [ngIf]=\"isCodeExpanded\">\n <eui-card euiNoContentPadding>\n <eui-card-content>\n <eui-tabs (tabSelect)=\"onSelectedTab($event)\">\n <eui-tab [isVisible]=\"htmlContent\">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-markup\" euiCode>{{htmlContent}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"tsContent\">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode>{{filterOutModuleAndImports(tsContent)}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab euiWarning [isVisible]=\"htmlContent && tsContent && renderPlayground\">\n <euiTabLabel>\n Playground\n <euiTabSubLabel>Stackblitz <eui-chip euiSizeS euiWarning>Experimental</eui-chip></euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <eui-playground\n [typescriptContent]=\"tsContent\"\n [htmlContent]=\"htmlContent\"\n [activated]=\"playground_activated\"></eui-playground>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n </eui-card-content>\n </eui-card>\n</ng-template>\n\n<ng-content></ng-content>\n", styles: [".eui-showcase-doc-sample{display:block;margin-bottom:var(--eui-base-spacing-2xl);width:100%}.eui-showcase-doc-sample .doc-sample-title{align-items:flex-end;display:flex;width:100%;margin-bottom:var(--eui-base-spacing-m);padding-bottom:var(--eui-base-spacing-s);border-bottom:1px solid var(--eui-base-color-grey-25)}.eui-showcase-doc-sample .doc-sample-title__label{align-items:center;display:flex;min-height:var(--eui-base-spacing-xl);margin-top:var(--eui-base-spacing-xl);width:100%;font:normal normal 400 1.5rem/1.75rem var(--eui-base-font-family)}.eui-showcase-doc-sample .doc-sample-title__label:first-child{margin-top:var(--eui-base-spacing-m)}.eui-showcase-doc-sample .doc-sample-title__label:hover .doc-sample-title__link{opacity:1;transition:all .25s ease-in-out}.eui-showcase-doc-sample .doc-sample-title__items{display:flex;margin-left:auto}.eui-showcase-doc-sample .doc-sample-title__link{opacity:0;margin-left:var(--eui-base-spacing-m)}.eui-showcase-doc-sample .doc-sample-section-title{border-bottom:1px solid var(--eui-base-color-grey-25);font-size:var(--eui-base-font-size-l);font-weight:500;letter-spacing:-.25px;margin:var(--eui-base-spacing-3xl) 0 var(--eui-base-spacing-s);padding-bottom:var(--eui-base-spacing-2xs);width:auto;display:table;color:var(--eui-base-color-info-110)}.eui-showcase-doc-sample .doc-sample-section-title:first-child{margin-top:var(--eui-base-spacing-m)}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.EuiCardComponent, selector: "eui-card", inputs: ["e2eAttr", "euiSelected", "euiCollapsible", "euiCollapsed", "euiUrgent", "euiNoShadow", "euiNoContentPadding", "euiHoverable"], outputs: ["collapse"] }, { kind: "component", type: i6.EuiCardContentComponent, selector: "eui-card-content" }, { kind: "component", type: i7.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i8.EuiTabsComponent, selector: "eui-tabs", inputs: ["styleClass", "tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i8.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i8.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "directive", type: i8.EuiTabSubLabelDirective, selector: "euiTabSubLabel" }, { kind: "component", type: i8.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i9.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i10.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i10.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i11.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: i12.EuiCodeHighlighterDirective, selector: "[euiCode]" }, { kind: "component", type: i13.PlaygroundComponent, selector: "eui-playground", inputs: ["title", "htmlContent", "typescriptContent", "activated", "modules"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
171
171
|
}
|
|
172
172
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DocSampleComponent, decorators: [{
|
|
173
173
|
type: Component,
|
|
174
|
-
args: [{ selector: 'eui-showcase-doc-sample', encapsulation: ViewEncapsulation.None, template: "<div class=\"doc-sample-title\">\n <div class=\"doc-sample-title__label\">\n <strong>{{ label }}</strong>\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n euiSizeS\n (click)=\"copyCurrentUrlToClipboard(id)\"\n class=\"doc-sample-title__link\"\n tabindex=\"-1\">\n <eui-icon-svg icon=\"link\" set=\"outline\" size=\"l\" fillColor=\"grey-75\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"doc-sample-title__items\">\n <button\n type=\"button\"\n euiButton\n [euiOutline]=\"!isCodeExpanded\"\n euiPrimary\n euiSizeS\n (click)=\"onToggleCode()\"\n [isLoading]=\"isCodeLoading\"\n [euiDisabled]=\"isCodeLoading\">\n <span *ngIf=\"!isCodeExpanded\" euiLabel>Code</span>\n <span *ngIf=\"isCodeExpanded\" euiLabel>Hide Code</span>\n <span euiIcon iconClass=\"eui-icon-code\"></span>\n </button>\n </div>\n</div>\n\n<ng-template [ngIf]=\"isCodeExpanded\">\n <eui-card euiNoContentPadding>\n <eui-card-content>\n <eui-tabs (tabSelect)=\"onSelectedTab($event)\">\n <eui-tab [isVisible]=\"htmlContent\">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-markup\" euiCode>{{htmlContent}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"tsContent\">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode>{{filterOutModuleAndImports(tsContent)}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab euiWarning [isVisible]=\"htmlContent && tsContent && renderPlayground\">\n <euiTabLabel>\n Playground\n <euiTabSubLabel>Stackblitz <eui-chip euiSizeS euiWarning>Experimental</eui-chip></euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <eui-playground\n [typescriptContent]=\"tsContent\"\n [htmlContent]=\"htmlContent\"\n [activated]=\"playground_activated\"></eui-playground>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n </eui-card-content>\n </eui-card>\n</ng-template>\n\n<ng-content></ng-content>\n", styles: [".eui-showcase-doc-sample{display:block;margin-bottom:var(--eui-base-spacing-2xl);width:100%}.eui-showcase-doc-sample .doc-sample-title{align-items:flex-end;display:flex;width:100%;margin-bottom:var(--eui-base-spacing-m);padding-bottom:var(--eui-base-spacing-s);border-bottom:1px solid var(--eui-base-color-grey-
|
|
174
|
+
args: [{ selector: 'eui-showcase-doc-sample', encapsulation: ViewEncapsulation.None, template: "<div class=\"doc-sample-title\">\n <div class=\"doc-sample-title__label\">\n <strong>{{ label }}</strong>\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n euiSizeS\n (click)=\"copyCurrentUrlToClipboard(id)\"\n class=\"doc-sample-title__link\"\n tabindex=\"-1\">\n <eui-icon-svg icon=\"link\" set=\"outline\" size=\"l\" fillColor=\"grey-75\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"doc-sample-title__items\">\n <button\n type=\"button\"\n euiButton\n [euiOutline]=\"!isCodeExpanded\"\n euiPrimary\n euiSizeS\n (click)=\"onToggleCode()\"\n [isLoading]=\"isCodeLoading\"\n [euiDisabled]=\"isCodeLoading\">\n <span *ngIf=\"!isCodeExpanded\" euiLabel>Code</span>\n <span *ngIf=\"isCodeExpanded\" euiLabel>Hide Code</span>\n <span euiIcon iconClass=\"eui-icon-code\"></span>\n </button>\n </div>\n</div>\n\n<ng-template [ngIf]=\"isCodeExpanded\">\n <eui-card euiNoContentPadding>\n <eui-card-content>\n <eui-tabs (tabSelect)=\"onSelectedTab($event)\">\n <eui-tab [isVisible]=\"htmlContent\">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-markup\" euiCode>{{htmlContent}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"tsContent\">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode>{{filterOutModuleAndImports(tsContent)}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab euiWarning [isVisible]=\"htmlContent && tsContent && renderPlayground\">\n <euiTabLabel>\n Playground\n <euiTabSubLabel>Stackblitz <eui-chip euiSizeS euiWarning>Experimental</eui-chip></euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <eui-playground\n [typescriptContent]=\"tsContent\"\n [htmlContent]=\"htmlContent\"\n [activated]=\"playground_activated\"></eui-playground>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n </eui-card-content>\n </eui-card>\n</ng-template>\n\n<ng-content></ng-content>\n", styles: [".eui-showcase-doc-sample{display:block;margin-bottom:var(--eui-base-spacing-2xl);width:100%}.eui-showcase-doc-sample .doc-sample-title{align-items:flex-end;display:flex;width:100%;margin-bottom:var(--eui-base-spacing-m);padding-bottom:var(--eui-base-spacing-s);border-bottom:1px solid var(--eui-base-color-grey-25)}.eui-showcase-doc-sample .doc-sample-title__label{align-items:center;display:flex;min-height:var(--eui-base-spacing-xl);margin-top:var(--eui-base-spacing-xl);width:100%;font:normal normal 400 1.5rem/1.75rem var(--eui-base-font-family)}.eui-showcase-doc-sample .doc-sample-title__label:first-child{margin-top:var(--eui-base-spacing-m)}.eui-showcase-doc-sample .doc-sample-title__label:hover .doc-sample-title__link{opacity:1;transition:all .25s ease-in-out}.eui-showcase-doc-sample .doc-sample-title__items{display:flex;margin-left:auto}.eui-showcase-doc-sample .doc-sample-title__link{opacity:0;margin-left:var(--eui-base-spacing-m)}.eui-showcase-doc-sample .doc-sample-section-title{border-bottom:1px solid var(--eui-base-color-grey-25);font-size:var(--eui-base-font-size-l);font-weight:500;letter-spacing:-.25px;margin:var(--eui-base-spacing-3xl) 0 var(--eui-base-spacing-s);padding-bottom:var(--eui-base-spacing-2xs);width:auto;display:table;color:var(--eui-base-color-info-110)}.eui-showcase-doc-sample .doc-sample-section-title:first-child{margin-top:var(--eui-base-spacing-m)}\n"] }]
|
|
175
175
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.EuiAppShellService }, { type: i0.ChangeDetectorRef }, { type: i2.EuiGrowlService }, { type: i3.Clipboard }, { type: i4.Router }], propDecorators: { id: [{
|
|
176
176
|
type: Input
|
|
177
177
|
}], label: [{
|