barsa-sap-ui 2.0.67 → 2.0.69

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.
Files changed (40) hide show
  1. package/esm2022/lib/barsa-card-layout-panel/barsa-card-layout-panel.component.mjs +3 -3
  2. package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +3 -3
  3. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +3 -3
  4. package/esm2022/lib/barsa-pishnamayesh-payam/barsa-pishnamayesh-payam.component.mjs +3 -3
  5. package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +1 -1
  6. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +1 -1
  7. package/esm2022/lib/barsa-simple-form/barsa-simple-form.component.mjs +4 -2
  8. package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +6 -3
  9. package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +5 -3
  10. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +7 -4
  11. package/esm2022/lib/card-item/card-item.component.mjs +3 -3
  12. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +5 -3
  13. package/esm2022/lib/report-view-renderer.directive.mjs +1 -1
  14. package/esm2022/lib/search-panel/search-panel.component.mjs +4 -4
  15. package/esm2022/lib/table-th.directive.mjs +4 -1
  16. package/esm2022/lib/ui-calendar/ui-calendar.component.mjs +1 -1
  17. package/esm2022/lib/ui-editable-grid/ui-editable-grid.component.mjs +1 -1
  18. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +4 -3
  19. package/esm2022/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +1 -1
  20. package/esm2022/lib/ui-grid/ui-grid.component.mjs +3 -3
  21. package/esm2022/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +3 -3
  22. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +3 -3
  23. package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +13 -6
  24. package/esm2022/lib/ui-tree/ui-tree.component.mjs +1 -1
  25. package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +4 -3
  26. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +5 -3
  27. package/fesm2022/barsa-sap-ui.mjs +70 -45
  28. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  29. package/lib/barsa-sap-ui.module.d.ts +1 -1
  30. package/lib/barsa-simple-form/barsa-simple-form.component.d.ts +2 -1
  31. package/lib/barsa-table-header/barsa-table-header.component.d.ts +1 -0
  32. package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +2 -1
  33. package/lib/breadcrumb/breadcrumb.component.d.ts +4 -1
  34. package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +2 -1
  35. package/lib/index.d.ts +1 -1
  36. package/lib/ui-form-panel/ui-form-panel.component.d.ts +1 -0
  37. package/lib/ui-table-view/ui-table-view.component.d.ts +2 -0
  38. package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +1 -0
  39. package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +2 -1
  40. package/package.json +1 -1
@@ -121,11 +121,11 @@ export class BarsaUlvMainComponent extends BaseComponent {
121
121
  this.selectSearchPanelSettings.emit(selectedSearchPanelSettingsId);
122
122
  }
123
123
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaUlvMainComponent, deps: [{ token: i0.ElementRef }, { token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
124
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaUlvMainComponent, selector: "bsu-barsa-ulv-main", inputs: { viewerControl: "viewerControl", loading: "loading", viewerLoading: "viewerLoading", isReportPage: "isReportPage", deviceSize: "deviceSize", title: "title", searchPanelUi: "searchPanelUi", breadCrumbs: "breadCrumbs", allSearchPanelSettings: "allSearchPanelSettings", isAnonymous: "isAnonymous", canSaveGridSetting: "canSaveGridSetting", rtl: "rtl", selectedSearchPanelSettings: "selectedSearchPanelSettings", searchPanelMoChanged: "searchPanelMoChanged", selectedSearchPanelSettingsId: "selectedSearchPanelSettingsId", hideSearchPanel: "hideSearchPanel", pagingSetting: "pagingSetting", contentDensity: "contentDensity", context: "context", isMobile: "isMobile", standalone: "standalone", landscape: "landscape", layoutInfo: "layoutInfo" }, outputs: { closeEvent: "closeEvent", searchPanelMoChange: "searchPanelMoChange", openManageFilters: "openManageFilters", collapsedChange: "collapsedChange", hideSearchPanelClick: "hideSearchPanelClick", filterSave: "filterSave", filterSaveAs: "filterSaveAs", pageChange: "pageChange", showFilterFieldsSetting: "showFilterFieldsSetting", manageFilters: "manageFilters", clearSearch: "clearSearch", search: "search", selectSearchPanelSettings: "selectSearchPanelSettings" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true }, { propertyName: "dialogTemplate", first: true, predicate: ["searchpanelDialog"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"\n isReportPage ? reportPageTemplate : reportTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl?.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n>\n</ng-container>\n@if (loading) {\n<bsu-mask size=\"m\"></bsu-mask>\n}\n<ng-template #reportPageTemplate let-viewerControl let-tabMode=\"tabMode\">\n <fd-dynamic-page\n formClose\n mobile\n [attr.isMobile]=\"isMobile ? true : null\"\n [isMobile]=\"isMobile\"\n [size]=\"deviceSize | dynamicPageSize\"\n [attr.tabMode]=\"tabMode\"\n [autoResponsive]=\"false\"\n [class.notitle]=\"\n (!title && !searchPanelUi && !hideSearchPanel && !sideContentMode) ||\n (sideContentMode && !hideSearchPanel && !title)\n \"\n >\n <fd-dynamic-page-header\n [title]=\"\n (title | bbbTranslate)\n ? (title | bbbTranslate)\n : isMobile && breadCrumbs.length\n ? breadCrumbs[breadCrumbs.length - 1].label\n : ''\n \"\n class=\"p-b0\"\n >\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\n <fd-breadcrumb>\n @for ( breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; track breadCrumb.url; let i =\n $index; let last = $last) {\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n }\n </fd-breadcrumb>\n </fd-dynamic-page-breadcrumb>\n <!-- <fd-dynamic-page-title-content>\u06AF\u0632\u0627\u0631\u0634 </fd-dynamic-page-title-content> -->\n\n <fd-dynamic-page-global-actions *untilInView=\"el\" style=\"min-width: auto\">\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\n <!-- added this because in mobile landscape toolbar disapper -->\n @if (!hideSearchPanel ||( searchPanelUi && !sideContentMode)) {\n <fd-toolbar\n class=\"global-actions\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n >\n @if (isAnonymous === false && canSaveGridSetting) {\n <fd-popover fd-toolbar-item #popover fdOverflowPriority=\"never\">\n <fd-popover-control>\n <div style=\"display: flex; align-items: center\">\n <h3 class=\"header-search\" [attr.rtl]=\"rtl\" fd-title>\n {{\n selectedSearchPanelSettings?.IsStandard\n ? ''\n : selectedSearchPanelSettings?.Title\n }}\n @if (searchPanelMoChanged) {\n <strong>*</strong>\n }\n </h3>\n <button\n fd-button\n glyph=\"slim-arrow-down\"\n fdType=\"transparent\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n </div>\n </fd-popover-control>\n <fd-popover-body mobile>\n <div fd-popover-body-header>\n <div fd-bar [fdCozy]>\n <div fd-bar-left>\n <fd-bar-element>{{ 'Filters' | bbbTranslate }}</fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list style=\"min-height: 200px; background-color: var(--sapBackgroundColor, #f7f7f7)\">\n @for (option of allSearchPanelSettings; track option) {\n <li\n fd-list-item\n [selected]=\"option.Id === selectedSearchPanelSettingsId\"\n (click)=\"onSelectSearchPanelSettings(option.Id, popover)\"\n >\n <span fd-list-title>{{ option.Title }}</span>\n </li>\n }\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar [barDesign]=\"'footer'\" [fdCozy]>\n @if (selectedSearchPanelSettings) {\n <div fd-bar-right>\n @if (!selectedSearchPanelSettings.IsPrimary && searchPanelMoChanged) {\n <fd-button-bar\n [label]=\"'Save' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onFilterSave(popover)\"\n >\n </fd-button-bar>\n } @if (searchPanelMoChanged) {\n <fd-button-bar\n [label]=\"'SaveAs' | bbbTranslate\"\n [fdType]=\"\n selectedSearchPanelSettings.IsDefault ? 'emphasized' : 'transparent'\n \"\n (click)=\"onFilterSaveAs(popover)\"\n >\n </fd-button-bar>\n }\n <fd-button-bar\n [label]=\"'Manage' | bbbTranslate\"\n fdkInitialFocus\n fdType=\"transparent\"\n (click)=\"onManageFilters(popover)\"\n >\n </fd-button-bar>\n </div>\n }\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n } @if (deviceSize !== 's') {\n <fd-toolbar-spacer></fd-toolbar-spacer>\n } @if (isMobile) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n (click)=\"onShowSearchpanelDialog()\"\n [glyph]=\"'filter'\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n fdType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Filters' | bbbTranslate\"\n (click)=\"onShowFilterFieldsSetting()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdType=\"transparent\"\n [label]=\"hideSearchPanel ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onHideSearchPanelClick()\"\n fdOverflowPriority=\"low\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n }\n </fd-toolbar>\n }\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"closeEvent.emit()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n @if (!hideSearchPanel && searchPanelUi && !sideContentMode) {\n <fd-dynamic-page-subheader [pinnable]=\"true\" [collapsible]=\"false\">\n @if (!isMobile) {\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n }\n </fd-dynamic-page-subheader>\n } @if (!tabMode) {\n\n <fd-dynamic-page-content>\n <ng-container\n *ngTemplateOutlet=\"\n sideContentMode ? sideContentTemplate : viewerTemplate;\n context: { noRenderPageing: true }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n\n } @if (pagingSetting?.TotalPages) {\n <fd-dynamic-page-footer>\n <!-- page footer content goes here -->\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-middle>\n <ng-container\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n </div>\n </div>\n </fd-dynamic-page-footer>\n }\n </fd-dynamic-page>\n @if (tabMode) {\n <ng-container\n *ngTemplateOutlet=\"sideContentMode ? sideContentTemplate : viewerTemplate; context: { noRenderPageing: true }\"\n ></ng-container>\n }\n</ng-template>\n<ng-template #reportTemplate>\n @if (loading) {\n <bsu-mask size=\"s\"></bsu-mask>\n } @if (!hideSearchPanel && searchPanelUi && !sideContentMode) {\n <ng-container *ngTemplateOutlet=\"searchpanelTemplate; context: { hideButtons: false }\"></ng-container>\n }\n <ng-container\n *ngTemplateOutlet=\"\n sideContentMode ? sideContentTemplate : viewerTemplate;\n context: { simpleReport: 'simpleReport' }\n \"\n >\n </ng-container>\n</ng-template>\n<ng-template #sideContentTemplate let-simpleReport=\"simpleReport\">\n <fd-dynamic-side-content\n [class.rtl]=\"rtl\"\n [size]=\"deviceSize | sapSize\"\n fillEmptySpace\n [disable]=\"true\"\n [setMinHeight]=\"true\"\n >\n <fd-dynamic-side-content-side>\n <ng-container\n *ngTemplateOutlet=\"searchpanelTemplate; context: { isSearcPanelInSideContent: true }\"\n ></ng-container>\n </fd-dynamic-side-content-side>\n <fd-dynamic-side-content-main [style.width]=\"deviceSize !== 's' ? mainContentWidth : null\">\n <ng-container\n *ngTemplateOutlet=\"viewerTemplate; context: { noRenderPageing: isReportPage ? true : false }\"\n ></ng-container>\n </fd-dynamic-side-content-main>\n </fd-dynamic-side-content>\n</ng-template>\n<ng-template\n #searchpanelTemplate\n let-isSearcPanelInSideContent=\"isSearcPanelInSideContent\"\n let-hideButtons=\"hideButtons\"\n>\n @if (!isSearcPanelInSideContent) { @if (!hideSearchPanel && searchPanelUi) {\n <bsu-search-panel\n [searchPanelUi]=\"searchPanelUi\"\n [isSearcPanelInSideContent]=\"isSearcPanelInSideContent\"\n [hideButtons]=\"hideButtons\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n } } @else {\n <fd-card class=\"searchpanel-card\">\n <fd-card-header>\n <h2 fd-card-title>\n <fd-icon glyph=\"filter\"></fd-icon><span>{{ 'Filter' | bbbTranslate }}</span>\n </h2>\n </fd-card-header>\n <fd-card-content style=\"flex-grow: 0\">\n @if (!hideSearchPanel && searchPanelUi) {\n <bsu-search-panel\n [searchPanelUi]=\"searchPanelUi\"\n [hideButtons]=\"true\"\n [isSearcPanelInSideContent]=\"isSearcPanelInSideContent\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n }\n </fd-card-content>\n <fd-card-footer style=\"border-bottom: none\">\n <button\n *fdCardFooterActionItem\n fd-button\n fdType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n <button\n *fdCardFooterActionItem\n fd-button\n fdType=\"transparent\"\n [label]=\"('Delete' | bbbTranslate) + ' ' + ('Filters' | bbbTranslate)\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n </fd-card-footer>\n </fd-card>\n }\n</ng-template>\n<ng-template #viewerTemplate let-noRenderPageing=\"noRenderPageing\">\n <div\n class=\"viewer-container\"\n fillEmptySpace\n [disable]=\"isReportPage || !fillPage\"\n [decrement]=\"deviceSize !== 's' ? '100px' : '75px'\"\n [style.height]=\"viewerLoading ? '100%' : 'auto'\"\n [style.min-height]=\"isReportPage ? '100%' : null\"\n [style.position]=\"viewerLoading ? 'relative' : null\"\n >\n @if (viewerLoading) {\n <bsu-mask size=\"m\"></bsu-mask>\n } @if (viewerControl) {\n <ng-container\n [renderUlvViewer]=\"viewerControl\"\n [layoutInfo]=\"layoutInfo\"\n [isReportPage]=\"isReportPage\"\n ></ng-container>\n }\n </div>\n @if (!noRenderPageing && pagingSetting?.TotalPages && !hidePageing) {\n <ng-container\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n }\n</ng-template>\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #searchpanelDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-10\" fd-title>{{ 'Filters' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss('Close button')\"></button>\n </fd-dialog-header>\n <fd-dialog-body>\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdkInitialFocus\n fdType=\"emphasized\"\n (click)=\"dialog.dismiss(); onSearch()\"\n [label]=\"'Search' | bbbTranslate\"\n ></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button fd-button [label]=\"'Clear' | bbbTranslate\" (click)=\"onClearSearch()\"></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"transparent\"\n (click)=\"dialog.dismiss('Close button')\"\n [label]=\"'Cancel' | bbbTranslate\"\n ></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:block;height:100%;flex-grow:1}:host .searchpanel-card fd-card-header{pointer-events:none;cursor:default;padding:.5rem}:host .searchpanel-card h2[fd-card-title]{font-size:1rem;display:flex;align-items:center;gap:.5rem}:host .searchpanel-card h2[fd-card-title] fd-icon{font-size:1.2rem}fd-dynamic-page:not(.mobile).notitle ::ng-deep>article>header .fd-dynamic-page__title-container{display:none}fd-dynamic-page:not(.mobile) ::ng-deep>article>div{display:flex;flex:1}fd-dynamic-page:not(.mobile) ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded{min-height:100%;display:flex}fd-dynamic-page:not(.mobile) ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded>fd-dynamic-page-content{min-height:100%}fd-dynamic-page[tabmode=true] ::ng-deep>article{height:auto!important}fd-dynamic-side-content{background-color:var(--sapBackgroundColor, #f7f7f7);min-height:100%;height:auto}fd-dynamic-side-content-main{border:.0625rem solid var(--sapTile_SeparatorColor, #ccc)!important}fd-dynamic-side-content-side fd-card-content{padding:.5rem}fd-dynamic-page-global-actions{flex:1;width:100%}h3[rtl=true]{margin-left:5px}h3[rtl=false]{margin-right:5px}.header-search{color:var(--sapButton_TextColor, #0854a0)!important}.filter-wrapper{border-bottom:1px solid var(--sapObjectHeader_BorderColor, #d9d9d9)}.report-toolbar-container{display:flex}.report-toolbar-container .global-actions{flex-grow:1}fd-popover-body{min-width:380px}fd-popover-body.mobile{min-width:80vw}@media (max-width: 599px){.fd-dynamic-page,fd-dynamic-page-content{padding:1rem 0!important}.report-toolbar-container{flex-direction:column-reverse}.report-toolbar-container .layout-actions{flex-grow:1}}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RenderUlvViewerDirective, selector: "[renderUlvViewer]", inputs: ["mask", "isReportPage", "layoutInfo", "renderUlvViewer"] }, { kind: "directive", type: i3.RenderUlvPaginDirective, selector: "[renderUlvPaging]", inputs: ["mask", "pagingSetting", "renderUlvPaging"], outputs: ["pageChange"] }, { kind: "directive", type: i3.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "directive", type: i3.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], exportAs: ["fillEmptySpace"] }, { kind: "directive", type: i3.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i3.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i4.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i5.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i5.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "directive", type: i6.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i8.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange"] }, { kind: "component", type: i8.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i8.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i8.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "component", type: i8.CardFooterComponent, selector: "fd-card-footer" }, { kind: "directive", type: i8.CardFooterActionItemDirective, selector: "[fdCardFooterActionItem]" }, { kind: "component", type: i9.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["disableSnapOnScroll", "ariaLabel", "ariaRoledescription", "background", "autoResponsive", "size", "offset", "expandContent", "positionRelative"] }, { kind: "component", type: i9.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "titleWrap", "subtitle", "subtitleWrap", "headingLevel", "titleId"] }, { kind: "component", type: i9.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i9.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i9.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i9.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i9.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i9.DynamicPageBreadcrumbComponent, selector: "fd-dynamic-page-breadcrumb" }, { kind: "component", type: i10.DynamicSideContentComponent, selector: "fd-dynamic-side-content", inputs: ["position", "size", "id"] }, { kind: "component", type: i10.DynamicSideContentSideComponent, selector: "fd-dynamic-side-content-side", inputs: ["id"] }, { kind: "component", type: i10.DynamicSideContentMainComponent, selector: "fd-dynamic-side-content-main", inputs: ["id"] }, { kind: "component", type: i11.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i12.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i12.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i12.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i13.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i13.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i13.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i13.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i13.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "component", type: i14.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i15.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "component", type: i16.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i16.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i16.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i16.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i16.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i17.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i17.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i17.ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i18.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i19.SearchPanelComponent, selector: "bsu-search-panel", inputs: ["searchPanelUi", "hideButtons", "isSearcPanelInSideContent"], outputs: ["moChanged"] }, { kind: "component", type: i20.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i21.DynamicPageSizePipe, name: "dynamicPageSize" }, { kind: "pipe", type: i22.SapSizePipe, name: "sapSize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
124
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaUlvMainComponent, selector: "bsu-barsa-ulv-main", inputs: { viewerControl: "viewerControl", loading: "loading", viewerLoading: "viewerLoading", isReportPage: "isReportPage", deviceSize: "deviceSize", title: "title", searchPanelUi: "searchPanelUi", breadCrumbs: "breadCrumbs", allSearchPanelSettings: "allSearchPanelSettings", isAnonymous: "isAnonymous", canSaveGridSetting: "canSaveGridSetting", rtl: "rtl", selectedSearchPanelSettings: "selectedSearchPanelSettings", searchPanelMoChanged: "searchPanelMoChanged", selectedSearchPanelSettingsId: "selectedSearchPanelSettingsId", hideSearchPanel: "hideSearchPanel", pagingSetting: "pagingSetting", contentDensity: "contentDensity", context: "context", isMobile: "isMobile", standalone: "standalone", landscape: "landscape", simpleSearchPanel: "simpleSearchPanel", layoutInfo: "layoutInfo" }, outputs: { closeEvent: "closeEvent", searchPanelMoChange: "searchPanelMoChange", openManageFilters: "openManageFilters", collapsedChange: "collapsedChange", hideSearchPanelClick: "hideSearchPanelClick", filterSave: "filterSave", filterSaveAs: "filterSaveAs", pageChange: "pageChange", showFilterFieldsSetting: "showFilterFieldsSetting", manageFilters: "manageFilters", clearSearch: "clearSearch", search: "search", selectSearchPanelSettings: "selectSearchPanelSettings" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true }, { propertyName: "dialogTemplate", first: true, predicate: ["searchpanelDialog"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"\n isReportPage ? reportPageTemplate : reportTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl?.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n>\n</ng-container>\n@if (loading) {\n<bsu-mask size=\"m\"></bsu-mask>\n}\n<ng-template #reportPageTemplate let-viewerControl let-tabMode=\"tabMode\">\n <fd-dynamic-page\n formClose\n mobile\n [attr.isMobile]=\"isMobile ? true : null\"\n [isMobile]=\"isMobile\"\n [size]=\"deviceSize | dynamicPageSize\"\n [attr.tabMode]=\"tabMode\"\n [autoResponsive]=\"false\"\n [class.notitle]=\"\n (!title && !searchPanelUi && !hideSearchPanel && !sideContentMode) ||\n (sideContentMode && !hideSearchPanel && !title)\n \"\n >\n <fd-dynamic-page-header\n [title]=\"\n (title | bbbTranslate)\n ? (title | bbbTranslate)\n : isMobile && breadCrumbs.length\n ? breadCrumbs[breadCrumbs.length - 1].label\n : ''\n \"\n class=\"p-b0\"\n >\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\n <fd-breadcrumb>\n @for ( breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; track breadCrumb.url; let i =\n $index; let last = $last) {\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n }\n </fd-breadcrumb>\n </fd-dynamic-page-breadcrumb>\n <!-- <fd-dynamic-page-title-content>\u06AF\u0632\u0627\u0631\u0634 </fd-dynamic-page-title-content> -->\n\n <fd-dynamic-page-global-actions *untilInView=\"el\" style=\"min-width: auto\">\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\n <!-- added this because in mobile landscape toolbar disapper -->\n @if (!hideSearchPanel ||( searchPanelUi && !sideContentMode)) {\n <fd-toolbar\n class=\"global-actions\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n >\n @if (isAnonymous === false && canSaveGridSetting) {\n <fd-popover fd-toolbar-item #popover fdOverflowPriority=\"never\">\n <fd-popover-control>\n <div style=\"display: flex; align-items: center\">\n <h3 class=\"header-search\" [attr.rtl]=\"rtl\" fd-title>\n {{\n selectedSearchPanelSettings?.IsStandard\n ? ''\n : selectedSearchPanelSettings?.Title\n }}\n @if (searchPanelMoChanged) {\n <strong>*</strong>\n }\n </h3>\n <button\n fd-button\n glyph=\"slim-arrow-down\"\n fdType=\"transparent\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n </div>\n </fd-popover-control>\n <fd-popover-body mobile>\n <div fd-popover-body-header>\n <div fd-bar [fdCozy]>\n <div fd-bar-left>\n <fd-bar-element>{{ 'Filters' | bbbTranslate }}</fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list style=\"min-height: 200px; background-color: var(--sapBackgroundColor, #f7f7f7)\">\n @for (option of allSearchPanelSettings; track option) {\n <li\n fd-list-item\n [selected]=\"option.Id === selectedSearchPanelSettingsId\"\n (click)=\"onSelectSearchPanelSettings(option.Id, popover)\"\n >\n <span fd-list-title>{{ option.Title }}</span>\n </li>\n }\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar [barDesign]=\"'footer'\" [fdCozy]>\n @if (selectedSearchPanelSettings) {\n <div fd-bar-right>\n @if (!selectedSearchPanelSettings.IsPrimary && searchPanelMoChanged) {\n <fd-button-bar\n [label]=\"'Save' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onFilterSave(popover)\"\n >\n </fd-button-bar>\n } @if (searchPanelMoChanged) {\n <fd-button-bar\n [label]=\"'SaveAs' | bbbTranslate\"\n [fdType]=\"\n selectedSearchPanelSettings.IsDefault ? 'emphasized' : 'transparent'\n \"\n (click)=\"onFilterSaveAs(popover)\"\n >\n </fd-button-bar>\n }\n <fd-button-bar\n [label]=\"'Manage' | bbbTranslate\"\n fdkInitialFocus\n fdType=\"transparent\"\n (click)=\"onManageFilters(popover)\"\n >\n </fd-button-bar>\n </div>\n }\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n } @if (deviceSize !== 's') {\n <fd-toolbar-spacer></fd-toolbar-spacer>\n } @if (isMobile) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n (click)=\"onShowSearchpanelDialog()\"\n [glyph]=\"'filter'\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode && !simpleSearchPanel) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n fdType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Filters' | bbbTranslate\"\n (click)=\"onShowFilterFieldsSetting()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdType=\"transparent\"\n [label]=\"hideSearchPanel ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onHideSearchPanelClick()\"\n fdOverflowPriority=\"low\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n }\n </fd-toolbar>\n }\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"closeEvent.emit()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n @if (!hideSearchPanel && searchPanelUi && !sideContentMode) {\n <fd-dynamic-page-subheader [pinnable]=\"true\" [collapsible]=\"false\">\n @if (!isMobile) {\n <bsu-search-panel\n [hideButtons]=\"!simpleSearchPanel\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n }\n </fd-dynamic-page-subheader>\n } @if (!tabMode) {\n\n <fd-dynamic-page-content>\n <ng-container\n *ngTemplateOutlet=\"\n sideContentMode ? sideContentTemplate : viewerTemplate;\n context: { noRenderPageing: true }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n\n } @if (pagingSetting?.TotalPages) {\n <fd-dynamic-page-footer>\n <!-- page footer content goes here -->\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-middle>\n <ng-container\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n </div>\n </div>\n </fd-dynamic-page-footer>\n }\n </fd-dynamic-page>\n @if (tabMode) {\n <ng-container\n *ngTemplateOutlet=\"sideContentMode ? sideContentTemplate : viewerTemplate; context: { noRenderPageing: true }\"\n ></ng-container>\n }\n</ng-template>\n<ng-template #reportTemplate>\n @if (loading) {\n <bsu-mask size=\"s\"></bsu-mask>\n } @if (!hideSearchPanel && searchPanelUi && !sideContentMode) {\n <ng-container *ngTemplateOutlet=\"searchpanelTemplate; context: { hideButtons: false }\"></ng-container>\n }\n <ng-container\n *ngTemplateOutlet=\"\n sideContentMode ? sideContentTemplate : viewerTemplate;\n context: { simpleReport: 'simpleReport' }\n \"\n >\n </ng-container>\n</ng-template>\n<ng-template #sideContentTemplate let-simpleReport=\"simpleReport\">\n <fd-dynamic-side-content\n [class.rtl]=\"rtl\"\n [size]=\"deviceSize | sapSize\"\n fillEmptySpace\n [disable]=\"true\"\n [setMinHeight]=\"true\"\n >\n <fd-dynamic-side-content-side>\n <ng-container\n *ngTemplateOutlet=\"searchpanelTemplate; context: { isSearcPanelInSideContent: true }\"\n ></ng-container>\n </fd-dynamic-side-content-side>\n <fd-dynamic-side-content-main [style.width]=\"deviceSize !== 's' ? mainContentWidth : null\">\n <ng-container\n *ngTemplateOutlet=\"viewerTemplate; context: { noRenderPageing: isReportPage ? true : false }\"\n ></ng-container>\n </fd-dynamic-side-content-main>\n </fd-dynamic-side-content>\n</ng-template>\n<ng-template\n #searchpanelTemplate\n let-isSearcPanelInSideContent=\"isSearcPanelInSideContent\"\n let-hideButtons=\"hideButtons\"\n>\n @if (!isSearcPanelInSideContent) { @if (!hideSearchPanel && searchPanelUi) {\n <bsu-search-panel\n [searchPanelUi]=\"searchPanelUi\"\n [isSearcPanelInSideContent]=\"isSearcPanelInSideContent\"\n [hideButtons]=\"hideButtons\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n } } @else {\n <fd-card class=\"searchpanel-card\">\n <fd-card-header>\n <fd-card-main-header>\n <h2 fd-card-title>\n <fd-icon glyph=\"filter\"></fd-icon><span>{{ 'Filter' | bbbTranslate }}</span>\n </h2>\n </fd-card-main-header>\n </fd-card-header>\n <fd-card-content style=\"flex-grow: 0\">\n @if (!hideSearchPanel && searchPanelUi) {\n <bsu-search-panel\n [searchPanelUi]=\"searchPanelUi\"\n [hideButtons]=\"true\"\n [isSearcPanelInSideContent]=\"isSearcPanelInSideContent\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n }\n </fd-card-content>\n <fd-card-footer style=\"border-bottom: none\">\n <button\n *fdCardFooterActionItem\n fd-button\n fdType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n <button\n *fdCardFooterActionItem\n fd-button\n fdType=\"transparent\"\n [label]=\"('Delete' | bbbTranslate) + ' ' + ('Filters' | bbbTranslate)\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n </fd-card-footer>\n </fd-card>\n }\n</ng-template>\n<ng-template #viewerTemplate let-noRenderPageing=\"noRenderPageing\">\n <div\n class=\"viewer-container\"\n fillEmptySpace\n [disable]=\"isReportPage || !fillPage\"\n [decrement]=\"deviceSize !== 's' ? '100px' : '75px'\"\n [style.height]=\"viewerLoading ? '100%' : 'auto'\"\n [style.min-height]=\"isReportPage ? '100%' : null\"\n [style.position]=\"viewerLoading ? 'relative' : null\"\n >\n @if (viewerLoading) {\n <bsu-mask size=\"m\"></bsu-mask>\n } @if (viewerControl) {\n <ng-container\n [renderUlvViewer]=\"viewerControl\"\n [layoutInfo]=\"layoutInfo\"\n [isReportPage]=\"isReportPage\"\n ></ng-container>\n }\n </div>\n @if (!noRenderPageing && pagingSetting?.TotalPages && !hidePageing) {\n <ng-container\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n }\n</ng-template>\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #searchpanelDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-10\" fd-title>{{ 'Filters' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss('Close button')\"></button>\n </fd-dialog-header>\n <fd-dialog-body>\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdkInitialFocus\n fdType=\"emphasized\"\n (click)=\"dialog.dismiss(); onSearch()\"\n [label]=\"'Search' | bbbTranslate\"\n ></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button fd-button [label]=\"'Clear' | bbbTranslate\" (click)=\"onClearSearch()\"></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"transparent\"\n (click)=\"dialog.dismiss('Close button')\"\n [label]=\"'Cancel' | bbbTranslate\"\n ></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:block;height:100%;flex-grow:1}:host .searchpanel-card fd-card-header{pointer-events:none;cursor:default;padding:.5rem}:host .searchpanel-card h2[fd-card-title]{font-size:1rem;display:flex;align-items:center;gap:.5rem}:host .searchpanel-card h2[fd-card-title] fd-icon{font-size:1.2rem}fd-dynamic-page:not(.mobile).notitle ::ng-deep>article>header .fd-dynamic-page__title-container{display:none}fd-dynamic-page:not(.mobile) ::ng-deep>article>div{display:flex;flex:1}fd-dynamic-page:not(.mobile) ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded{min-height:100%;display:flex}fd-dynamic-page:not(.mobile) ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded>fd-dynamic-page-content{min-height:100%}fd-dynamic-page[tabmode=true] ::ng-deep>article{height:auto!important}fd-dynamic-side-content{background-color:var(--sapBackgroundColor, #f7f7f7);min-height:100%;height:auto}fd-dynamic-side-content-main{border:.0625rem solid var(--sapTile_SeparatorColor, #ccc)!important}fd-dynamic-side-content-side fd-card-content{padding:.5rem}fd-dynamic-page-global-actions{flex:1;width:100%}h3[rtl=true]{margin-left:5px}h3[rtl=false]{margin-right:5px}.header-search{color:var(--sapButton_TextColor, #0854a0)!important}.filter-wrapper{border-bottom:1px solid var(--sapObjectHeader_BorderColor, #d9d9d9)}.report-toolbar-container{display:flex}.report-toolbar-container .global-actions{flex-grow:1}fd-popover-body{min-width:380px}fd-popover-body.mobile{min-width:80vw}@media (max-width: 599px){.fd-dynamic-page,fd-dynamic-page-content{padding:1rem 0!important}.report-toolbar-container{flex-direction:column-reverse}.report-toolbar-container .layout-actions{flex-grow:1}}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RenderUlvViewerDirective, selector: "[renderUlvViewer]", inputs: ["mask", "isReportPage", "layoutInfo", "renderUlvViewer"] }, { kind: "directive", type: i3.RenderUlvPaginDirective, selector: "[renderUlvPaging]", inputs: ["mask", "pagingSetting", "renderUlvPaging"], outputs: ["pageChange"] }, { kind: "directive", type: i3.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "directive", type: i3.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], exportAs: ["fillEmptySpace"] }, { kind: "directive", type: i3.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i3.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i4.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i5.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i5.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "directive", type: i6.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i8.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange"] }, { kind: "component", type: i8.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i8.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i8.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i8.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "component", type: i8.CardFooterComponent, selector: "fd-card-footer" }, { kind: "directive", type: i8.CardFooterActionItemDirective, selector: "[fdCardFooterActionItem]" }, { kind: "component", type: i9.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["disableSnapOnScroll", "ariaLabel", "ariaRoledescription", "background", "autoResponsive", "size", "offset", "expandContent", "positionRelative"] }, { kind: "component", type: i9.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "titleWrap", "subtitle", "subtitleWrap", "headingLevel", "titleId"] }, { kind: "component", type: i9.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i9.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i9.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i9.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i9.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i9.DynamicPageBreadcrumbComponent, selector: "fd-dynamic-page-breadcrumb" }, { kind: "component", type: i10.DynamicSideContentComponent, selector: "fd-dynamic-side-content", inputs: ["position", "size", "id"] }, { kind: "component", type: i10.DynamicSideContentSideComponent, selector: "fd-dynamic-side-content-side", inputs: ["id"] }, { kind: "component", type: i10.DynamicSideContentMainComponent, selector: "fd-dynamic-side-content-main", inputs: ["id"] }, { kind: "component", type: i11.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i12.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i12.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i12.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i13.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i13.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i13.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i13.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i13.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "component", type: i14.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i15.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "component", type: i16.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i16.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i16.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i16.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i16.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i17.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i17.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i17.ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i18.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i19.SearchPanelComponent, selector: "bsu-search-panel", inputs: ["searchPanelUi", "hideButtons", "isSearcPanelInSideContent"], outputs: ["moChanged"] }, { kind: "component", type: i20.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i21.DynamicPageSizePipe, name: "dynamicPageSize" }, { kind: "pipe", type: i22.SapSizePipe, name: "sapSize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
125
125
  }
126
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaUlvMainComponent, decorators: [{
127
127
  type: Component,
128
- args: [{ selector: 'bsu-barsa-ulv-main', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"\n isReportPage ? reportPageTemplate : reportTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl?.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n>\n</ng-container>\n@if (loading) {\n<bsu-mask size=\"m\"></bsu-mask>\n}\n<ng-template #reportPageTemplate let-viewerControl let-tabMode=\"tabMode\">\n <fd-dynamic-page\n formClose\n mobile\n [attr.isMobile]=\"isMobile ? true : null\"\n [isMobile]=\"isMobile\"\n [size]=\"deviceSize | dynamicPageSize\"\n [attr.tabMode]=\"tabMode\"\n [autoResponsive]=\"false\"\n [class.notitle]=\"\n (!title && !searchPanelUi && !hideSearchPanel && !sideContentMode) ||\n (sideContentMode && !hideSearchPanel && !title)\n \"\n >\n <fd-dynamic-page-header\n [title]=\"\n (title | bbbTranslate)\n ? (title | bbbTranslate)\n : isMobile && breadCrumbs.length\n ? breadCrumbs[breadCrumbs.length - 1].label\n : ''\n \"\n class=\"p-b0\"\n >\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\n <fd-breadcrumb>\n @for ( breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; track breadCrumb.url; let i =\n $index; let last = $last) {\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n }\n </fd-breadcrumb>\n </fd-dynamic-page-breadcrumb>\n <!-- <fd-dynamic-page-title-content>\u06AF\u0632\u0627\u0631\u0634 </fd-dynamic-page-title-content> -->\n\n <fd-dynamic-page-global-actions *untilInView=\"el\" style=\"min-width: auto\">\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\n <!-- added this because in mobile landscape toolbar disapper -->\n @if (!hideSearchPanel ||( searchPanelUi && !sideContentMode)) {\n <fd-toolbar\n class=\"global-actions\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n >\n @if (isAnonymous === false && canSaveGridSetting) {\n <fd-popover fd-toolbar-item #popover fdOverflowPriority=\"never\">\n <fd-popover-control>\n <div style=\"display: flex; align-items: center\">\n <h3 class=\"header-search\" [attr.rtl]=\"rtl\" fd-title>\n {{\n selectedSearchPanelSettings?.IsStandard\n ? ''\n : selectedSearchPanelSettings?.Title\n }}\n @if (searchPanelMoChanged) {\n <strong>*</strong>\n }\n </h3>\n <button\n fd-button\n glyph=\"slim-arrow-down\"\n fdType=\"transparent\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n </div>\n </fd-popover-control>\n <fd-popover-body mobile>\n <div fd-popover-body-header>\n <div fd-bar [fdCozy]>\n <div fd-bar-left>\n <fd-bar-element>{{ 'Filters' | bbbTranslate }}</fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list style=\"min-height: 200px; background-color: var(--sapBackgroundColor, #f7f7f7)\">\n @for (option of allSearchPanelSettings; track option) {\n <li\n fd-list-item\n [selected]=\"option.Id === selectedSearchPanelSettingsId\"\n (click)=\"onSelectSearchPanelSettings(option.Id, popover)\"\n >\n <span fd-list-title>{{ option.Title }}</span>\n </li>\n }\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar [barDesign]=\"'footer'\" [fdCozy]>\n @if (selectedSearchPanelSettings) {\n <div fd-bar-right>\n @if (!selectedSearchPanelSettings.IsPrimary && searchPanelMoChanged) {\n <fd-button-bar\n [label]=\"'Save' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onFilterSave(popover)\"\n >\n </fd-button-bar>\n } @if (searchPanelMoChanged) {\n <fd-button-bar\n [label]=\"'SaveAs' | bbbTranslate\"\n [fdType]=\"\n selectedSearchPanelSettings.IsDefault ? 'emphasized' : 'transparent'\n \"\n (click)=\"onFilterSaveAs(popover)\"\n >\n </fd-button-bar>\n }\n <fd-button-bar\n [label]=\"'Manage' | bbbTranslate\"\n fdkInitialFocus\n fdType=\"transparent\"\n (click)=\"onManageFilters(popover)\"\n >\n </fd-button-bar>\n </div>\n }\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n } @if (deviceSize !== 's') {\n <fd-toolbar-spacer></fd-toolbar-spacer>\n } @if (isMobile) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n (click)=\"onShowSearchpanelDialog()\"\n [glyph]=\"'filter'\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n fdType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Filters' | bbbTranslate\"\n (click)=\"onShowFilterFieldsSetting()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdType=\"transparent\"\n [label]=\"hideSearchPanel ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onHideSearchPanelClick()\"\n fdOverflowPriority=\"low\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n }\n </fd-toolbar>\n }\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"closeEvent.emit()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n @if (!hideSearchPanel && searchPanelUi && !sideContentMode) {\n <fd-dynamic-page-subheader [pinnable]=\"true\" [collapsible]=\"false\">\n @if (!isMobile) {\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n }\n </fd-dynamic-page-subheader>\n } @if (!tabMode) {\n\n <fd-dynamic-page-content>\n <ng-container\n *ngTemplateOutlet=\"\n sideContentMode ? sideContentTemplate : viewerTemplate;\n context: { noRenderPageing: true }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n\n } @if (pagingSetting?.TotalPages) {\n <fd-dynamic-page-footer>\n <!-- page footer content goes here -->\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-middle>\n <ng-container\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n </div>\n </div>\n </fd-dynamic-page-footer>\n }\n </fd-dynamic-page>\n @if (tabMode) {\n <ng-container\n *ngTemplateOutlet=\"sideContentMode ? sideContentTemplate : viewerTemplate; context: { noRenderPageing: true }\"\n ></ng-container>\n }\n</ng-template>\n<ng-template #reportTemplate>\n @if (loading) {\n <bsu-mask size=\"s\"></bsu-mask>\n } @if (!hideSearchPanel && searchPanelUi && !sideContentMode) {\n <ng-container *ngTemplateOutlet=\"searchpanelTemplate; context: { hideButtons: false }\"></ng-container>\n }\n <ng-container\n *ngTemplateOutlet=\"\n sideContentMode ? sideContentTemplate : viewerTemplate;\n context: { simpleReport: 'simpleReport' }\n \"\n >\n </ng-container>\n</ng-template>\n<ng-template #sideContentTemplate let-simpleReport=\"simpleReport\">\n <fd-dynamic-side-content\n [class.rtl]=\"rtl\"\n [size]=\"deviceSize | sapSize\"\n fillEmptySpace\n [disable]=\"true\"\n [setMinHeight]=\"true\"\n >\n <fd-dynamic-side-content-side>\n <ng-container\n *ngTemplateOutlet=\"searchpanelTemplate; context: { isSearcPanelInSideContent: true }\"\n ></ng-container>\n </fd-dynamic-side-content-side>\n <fd-dynamic-side-content-main [style.width]=\"deviceSize !== 's' ? mainContentWidth : null\">\n <ng-container\n *ngTemplateOutlet=\"viewerTemplate; context: { noRenderPageing: isReportPage ? true : false }\"\n ></ng-container>\n </fd-dynamic-side-content-main>\n </fd-dynamic-side-content>\n</ng-template>\n<ng-template\n #searchpanelTemplate\n let-isSearcPanelInSideContent=\"isSearcPanelInSideContent\"\n let-hideButtons=\"hideButtons\"\n>\n @if (!isSearcPanelInSideContent) { @if (!hideSearchPanel && searchPanelUi) {\n <bsu-search-panel\n [searchPanelUi]=\"searchPanelUi\"\n [isSearcPanelInSideContent]=\"isSearcPanelInSideContent\"\n [hideButtons]=\"hideButtons\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n } } @else {\n <fd-card class=\"searchpanel-card\">\n <fd-card-header>\n <h2 fd-card-title>\n <fd-icon glyph=\"filter\"></fd-icon><span>{{ 'Filter' | bbbTranslate }}</span>\n </h2>\n </fd-card-header>\n <fd-card-content style=\"flex-grow: 0\">\n @if (!hideSearchPanel && searchPanelUi) {\n <bsu-search-panel\n [searchPanelUi]=\"searchPanelUi\"\n [hideButtons]=\"true\"\n [isSearcPanelInSideContent]=\"isSearcPanelInSideContent\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n }\n </fd-card-content>\n <fd-card-footer style=\"border-bottom: none\">\n <button\n *fdCardFooterActionItem\n fd-button\n fdType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n <button\n *fdCardFooterActionItem\n fd-button\n fdType=\"transparent\"\n [label]=\"('Delete' | bbbTranslate) + ' ' + ('Filters' | bbbTranslate)\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n </fd-card-footer>\n </fd-card>\n }\n</ng-template>\n<ng-template #viewerTemplate let-noRenderPageing=\"noRenderPageing\">\n <div\n class=\"viewer-container\"\n fillEmptySpace\n [disable]=\"isReportPage || !fillPage\"\n [decrement]=\"deviceSize !== 's' ? '100px' : '75px'\"\n [style.height]=\"viewerLoading ? '100%' : 'auto'\"\n [style.min-height]=\"isReportPage ? '100%' : null\"\n [style.position]=\"viewerLoading ? 'relative' : null\"\n >\n @if (viewerLoading) {\n <bsu-mask size=\"m\"></bsu-mask>\n } @if (viewerControl) {\n <ng-container\n [renderUlvViewer]=\"viewerControl\"\n [layoutInfo]=\"layoutInfo\"\n [isReportPage]=\"isReportPage\"\n ></ng-container>\n }\n </div>\n @if (!noRenderPageing && pagingSetting?.TotalPages && !hidePageing) {\n <ng-container\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n }\n</ng-template>\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #searchpanelDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-10\" fd-title>{{ 'Filters' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss('Close button')\"></button>\n </fd-dialog-header>\n <fd-dialog-body>\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdkInitialFocus\n fdType=\"emphasized\"\n (click)=\"dialog.dismiss(); onSearch()\"\n [label]=\"'Search' | bbbTranslate\"\n ></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button fd-button [label]=\"'Clear' | bbbTranslate\" (click)=\"onClearSearch()\"></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"transparent\"\n (click)=\"dialog.dismiss('Close button')\"\n [label]=\"'Cancel' | bbbTranslate\"\n ></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:block;height:100%;flex-grow:1}:host .searchpanel-card fd-card-header{pointer-events:none;cursor:default;padding:.5rem}:host .searchpanel-card h2[fd-card-title]{font-size:1rem;display:flex;align-items:center;gap:.5rem}:host .searchpanel-card h2[fd-card-title] fd-icon{font-size:1.2rem}fd-dynamic-page:not(.mobile).notitle ::ng-deep>article>header .fd-dynamic-page__title-container{display:none}fd-dynamic-page:not(.mobile) ::ng-deep>article>div{display:flex;flex:1}fd-dynamic-page:not(.mobile) ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded{min-height:100%;display:flex}fd-dynamic-page:not(.mobile) ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded>fd-dynamic-page-content{min-height:100%}fd-dynamic-page[tabmode=true] ::ng-deep>article{height:auto!important}fd-dynamic-side-content{background-color:var(--sapBackgroundColor, #f7f7f7);min-height:100%;height:auto}fd-dynamic-side-content-main{border:.0625rem solid var(--sapTile_SeparatorColor, #ccc)!important}fd-dynamic-side-content-side fd-card-content{padding:.5rem}fd-dynamic-page-global-actions{flex:1;width:100%}h3[rtl=true]{margin-left:5px}h3[rtl=false]{margin-right:5px}.header-search{color:var(--sapButton_TextColor, #0854a0)!important}.filter-wrapper{border-bottom:1px solid var(--sapObjectHeader_BorderColor, #d9d9d9)}.report-toolbar-container{display:flex}.report-toolbar-container .global-actions{flex-grow:1}fd-popover-body{min-width:380px}fd-popover-body.mobile{min-width:80vw}@media (max-width: 599px){.fd-dynamic-page,fd-dynamic-page-content{padding:1rem 0!important}.report-toolbar-container{flex-direction:column-reverse}.report-toolbar-container .layout-actions{flex-grow:1}}\n"] }]
128
+ args: [{ selector: 'bsu-barsa-ulv-main', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"\n isReportPage ? reportPageTemplate : reportTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl?.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n>\n</ng-container>\n@if (loading) {\n<bsu-mask size=\"m\"></bsu-mask>\n}\n<ng-template #reportPageTemplate let-viewerControl let-tabMode=\"tabMode\">\n <fd-dynamic-page\n formClose\n mobile\n [attr.isMobile]=\"isMobile ? true : null\"\n [isMobile]=\"isMobile\"\n [size]=\"deviceSize | dynamicPageSize\"\n [attr.tabMode]=\"tabMode\"\n [autoResponsive]=\"false\"\n [class.notitle]=\"\n (!title && !searchPanelUi && !hideSearchPanel && !sideContentMode) ||\n (sideContentMode && !hideSearchPanel && !title)\n \"\n >\n <fd-dynamic-page-header\n [title]=\"\n (title | bbbTranslate)\n ? (title | bbbTranslate)\n : isMobile && breadCrumbs.length\n ? breadCrumbs[breadCrumbs.length - 1].label\n : ''\n \"\n class=\"p-b0\"\n >\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\n <fd-breadcrumb>\n @for ( breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; track breadCrumb.url; let i =\n $index; let last = $last) {\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n }\n </fd-breadcrumb>\n </fd-dynamic-page-breadcrumb>\n <!-- <fd-dynamic-page-title-content>\u06AF\u0632\u0627\u0631\u0634 </fd-dynamic-page-title-content> -->\n\n <fd-dynamic-page-global-actions *untilInView=\"el\" style=\"min-width: auto\">\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\n <!-- added this because in mobile landscape toolbar disapper -->\n @if (!hideSearchPanel ||( searchPanelUi && !sideContentMode)) {\n <fd-toolbar\n class=\"global-actions\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n >\n @if (isAnonymous === false && canSaveGridSetting) {\n <fd-popover fd-toolbar-item #popover fdOverflowPriority=\"never\">\n <fd-popover-control>\n <div style=\"display: flex; align-items: center\">\n <h3 class=\"header-search\" [attr.rtl]=\"rtl\" fd-title>\n {{\n selectedSearchPanelSettings?.IsStandard\n ? ''\n : selectedSearchPanelSettings?.Title\n }}\n @if (searchPanelMoChanged) {\n <strong>*</strong>\n }\n </h3>\n <button\n fd-button\n glyph=\"slim-arrow-down\"\n fdType=\"transparent\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n </div>\n </fd-popover-control>\n <fd-popover-body mobile>\n <div fd-popover-body-header>\n <div fd-bar [fdCozy]>\n <div fd-bar-left>\n <fd-bar-element>{{ 'Filters' | bbbTranslate }}</fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list style=\"min-height: 200px; background-color: var(--sapBackgroundColor, #f7f7f7)\">\n @for (option of allSearchPanelSettings; track option) {\n <li\n fd-list-item\n [selected]=\"option.Id === selectedSearchPanelSettingsId\"\n (click)=\"onSelectSearchPanelSettings(option.Id, popover)\"\n >\n <span fd-list-title>{{ option.Title }}</span>\n </li>\n }\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar [barDesign]=\"'footer'\" [fdCozy]>\n @if (selectedSearchPanelSettings) {\n <div fd-bar-right>\n @if (!selectedSearchPanelSettings.IsPrimary && searchPanelMoChanged) {\n <fd-button-bar\n [label]=\"'Save' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onFilterSave(popover)\"\n >\n </fd-button-bar>\n } @if (searchPanelMoChanged) {\n <fd-button-bar\n [label]=\"'SaveAs' | bbbTranslate\"\n [fdType]=\"\n selectedSearchPanelSettings.IsDefault ? 'emphasized' : 'transparent'\n \"\n (click)=\"onFilterSaveAs(popover)\"\n >\n </fd-button-bar>\n }\n <fd-button-bar\n [label]=\"'Manage' | bbbTranslate\"\n fdkInitialFocus\n fdType=\"transparent\"\n (click)=\"onManageFilters(popover)\"\n >\n </fd-button-bar>\n </div>\n }\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n } @if (deviceSize !== 's') {\n <fd-toolbar-spacer></fd-toolbar-spacer>\n } @if (isMobile) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n (click)=\"onShowSearchpanelDialog()\"\n [glyph]=\"'filter'\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode && !simpleSearchPanel) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n fdType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Filters' | bbbTranslate\"\n (click)=\"onShowFilterFieldsSetting()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n } @if (!isMobile && !sideContentMode) {\n <button\n fd-button\n fd-toolbar-item\n fdType=\"transparent\"\n [label]=\"hideSearchPanel ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onHideSearchPanelClick()\"\n fdOverflowPriority=\"low\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n }\n </fd-toolbar>\n }\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"closeEvent.emit()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n @if (!hideSearchPanel && searchPanelUi && !sideContentMode) {\n <fd-dynamic-page-subheader [pinnable]=\"true\" [collapsible]=\"false\">\n @if (!isMobile) {\n <bsu-search-panel\n [hideButtons]=\"!simpleSearchPanel\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n }\n </fd-dynamic-page-subheader>\n } @if (!tabMode) {\n\n <fd-dynamic-page-content>\n <ng-container\n *ngTemplateOutlet=\"\n sideContentMode ? sideContentTemplate : viewerTemplate;\n context: { noRenderPageing: true }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n\n } @if (pagingSetting?.TotalPages) {\n <fd-dynamic-page-footer>\n <!-- page footer content goes here -->\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-middle>\n <ng-container\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n </div>\n </div>\n </fd-dynamic-page-footer>\n }\n </fd-dynamic-page>\n @if (tabMode) {\n <ng-container\n *ngTemplateOutlet=\"sideContentMode ? sideContentTemplate : viewerTemplate; context: { noRenderPageing: true }\"\n ></ng-container>\n }\n</ng-template>\n<ng-template #reportTemplate>\n @if (loading) {\n <bsu-mask size=\"s\"></bsu-mask>\n } @if (!hideSearchPanel && searchPanelUi && !sideContentMode) {\n <ng-container *ngTemplateOutlet=\"searchpanelTemplate; context: { hideButtons: false }\"></ng-container>\n }\n <ng-container\n *ngTemplateOutlet=\"\n sideContentMode ? sideContentTemplate : viewerTemplate;\n context: { simpleReport: 'simpleReport' }\n \"\n >\n </ng-container>\n</ng-template>\n<ng-template #sideContentTemplate let-simpleReport=\"simpleReport\">\n <fd-dynamic-side-content\n [class.rtl]=\"rtl\"\n [size]=\"deviceSize | sapSize\"\n fillEmptySpace\n [disable]=\"true\"\n [setMinHeight]=\"true\"\n >\n <fd-dynamic-side-content-side>\n <ng-container\n *ngTemplateOutlet=\"searchpanelTemplate; context: { isSearcPanelInSideContent: true }\"\n ></ng-container>\n </fd-dynamic-side-content-side>\n <fd-dynamic-side-content-main [style.width]=\"deviceSize !== 's' ? mainContentWidth : null\">\n <ng-container\n *ngTemplateOutlet=\"viewerTemplate; context: { noRenderPageing: isReportPage ? true : false }\"\n ></ng-container>\n </fd-dynamic-side-content-main>\n </fd-dynamic-side-content>\n</ng-template>\n<ng-template\n #searchpanelTemplate\n let-isSearcPanelInSideContent=\"isSearcPanelInSideContent\"\n let-hideButtons=\"hideButtons\"\n>\n @if (!isSearcPanelInSideContent) { @if (!hideSearchPanel && searchPanelUi) {\n <bsu-search-panel\n [searchPanelUi]=\"searchPanelUi\"\n [isSearcPanelInSideContent]=\"isSearcPanelInSideContent\"\n [hideButtons]=\"hideButtons\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n } } @else {\n <fd-card class=\"searchpanel-card\">\n <fd-card-header>\n <fd-card-main-header>\n <h2 fd-card-title>\n <fd-icon glyph=\"filter\"></fd-icon><span>{{ 'Filter' | bbbTranslate }}</span>\n </h2>\n </fd-card-main-header>\n </fd-card-header>\n <fd-card-content style=\"flex-grow: 0\">\n @if (!hideSearchPanel && searchPanelUi) {\n <bsu-search-panel\n [searchPanelUi]=\"searchPanelUi\"\n [hideButtons]=\"true\"\n [isSearcPanelInSideContent]=\"isSearcPanelInSideContent\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n }\n </fd-card-content>\n <fd-card-footer style=\"border-bottom: none\">\n <button\n *fdCardFooterActionItem\n fd-button\n fdType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n <button\n *fdCardFooterActionItem\n fd-button\n fdType=\"transparent\"\n [label]=\"('Delete' | bbbTranslate) + ' ' + ('Filters' | bbbTranslate)\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></button>\n </fd-card-footer>\n </fd-card>\n }\n</ng-template>\n<ng-template #viewerTemplate let-noRenderPageing=\"noRenderPageing\">\n <div\n class=\"viewer-container\"\n fillEmptySpace\n [disable]=\"isReportPage || !fillPage\"\n [decrement]=\"deviceSize !== 's' ? '100px' : '75px'\"\n [style.height]=\"viewerLoading ? '100%' : 'auto'\"\n [style.min-height]=\"isReportPage ? '100%' : null\"\n [style.position]=\"viewerLoading ? 'relative' : null\"\n >\n @if (viewerLoading) {\n <bsu-mask size=\"m\"></bsu-mask>\n } @if (viewerControl) {\n <ng-container\n [renderUlvViewer]=\"viewerControl\"\n [layoutInfo]=\"layoutInfo\"\n [isReportPage]=\"isReportPage\"\n ></ng-container>\n }\n </div>\n @if (!noRenderPageing && pagingSetting?.TotalPages && !hidePageing) {\n <ng-container\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n }\n</ng-template>\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #searchpanelDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-10\" fd-title>{{ 'Filters' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss('Close button')\"></button>\n </fd-dialog-header>\n <fd-dialog-body>\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdkInitialFocus\n fdType=\"emphasized\"\n (click)=\"dialog.dismiss(); onSearch()\"\n [label]=\"'Search' | bbbTranslate\"\n ></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button fd-button [label]=\"'Clear' | bbbTranslate\" (click)=\"onClearSearch()\"></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"transparent\"\n (click)=\"dialog.dismiss('Close button')\"\n [label]=\"'Cancel' | bbbTranslate\"\n ></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:block;height:100%;flex-grow:1}:host .searchpanel-card fd-card-header{pointer-events:none;cursor:default;padding:.5rem}:host .searchpanel-card h2[fd-card-title]{font-size:1rem;display:flex;align-items:center;gap:.5rem}:host .searchpanel-card h2[fd-card-title] fd-icon{font-size:1.2rem}fd-dynamic-page:not(.mobile).notitle ::ng-deep>article>header .fd-dynamic-page__title-container{display:none}fd-dynamic-page:not(.mobile) ::ng-deep>article>div{display:flex;flex:1}fd-dynamic-page:not(.mobile) ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded{min-height:100%;display:flex}fd-dynamic-page:not(.mobile) ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded>fd-dynamic-page-content{min-height:100%}fd-dynamic-page[tabmode=true] ::ng-deep>article{height:auto!important}fd-dynamic-side-content{background-color:var(--sapBackgroundColor, #f7f7f7);min-height:100%;height:auto}fd-dynamic-side-content-main{border:.0625rem solid var(--sapTile_SeparatorColor, #ccc)!important}fd-dynamic-side-content-side fd-card-content{padding:.5rem}fd-dynamic-page-global-actions{flex:1;width:100%}h3[rtl=true]{margin-left:5px}h3[rtl=false]{margin-right:5px}.header-search{color:var(--sapButton_TextColor, #0854a0)!important}.filter-wrapper{border-bottom:1px solid var(--sapObjectHeader_BorderColor, #d9d9d9)}.report-toolbar-container{display:flex}.report-toolbar-container .global-actions{flex-grow:1}fd-popover-body{min-width:380px}fd-popover-body.mobile{min-width:80vw}@media (max-width: 599px){.fd-dynamic-page,fd-dynamic-page-content{padding:1rem 0!important}.report-toolbar-container{flex-direction:column-reverse}.report-toolbar-container .layout-actions{flex-grow:1}}\n"] }]
129
129
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DialogService }], propDecorators: { _dynamicPageComponent: [{
130
130
  type: ViewChild,
131
131
  args: [DynamicPageComponent]
@@ -176,6 +176,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
176
176
  type: Input
177
177
  }], landscape: [{
178
178
  type: Input
179
+ }], simpleSearchPanel: [{
180
+ type: Input
179
181
  }], layoutInfo: [{
180
182
  type: Input
181
183
  }], closeEvent: [{
@@ -205,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
205
207
  }], selectSearchPanelSettings: [{
206
208
  type: Output
207
209
  }] } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosU0FBUyxFQUlaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBaUIsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBRUgsYUFBYSxFQUNiLGlCQUFpQixFQUVqQixRQUFRLEVBR1gsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTlCLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBNkNwRCxZQUFtQixFQUFjLEVBQVksY0FBNkI7UUFDdEUsS0FBSyxFQUFFLENBQUM7UUFETyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVksbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFuQmhFLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDOUMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFF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TUFBTTtzQkFBZixNQUFNO2dCQUNHLHlCQUF5QjtzQkFBbEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIElucHV0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBPbkluaXQsXHJcbiAgICBUZW1wbGF0ZVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBEeW5hbWljUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXHJcbiAgICBCYXNlQ29tcG9uZW50LFxyXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGUsXHJcbiAgICBCcmVhZENydW1iSW5mbyxcclxuICAgIEJhcnNhQXBpLFxyXG4gICAgUGFnaW5nU2V0dGluZyxcclxuICAgIExheW91dFNldHRpbmdcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLXVsdi1tYWluJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS11bHYtbWFpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS11bHYtbWFpbi5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhVWx2TWFpbkNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gICAgQFZpZXdDaGlsZChEeW5hbWljUGFnZUNvbXBvbmVudCkgX2R5bmFtaWNQYWdlQ29tcG9uZW50OiBEeW5hbWljUGFnZUNvbXBvbmVudDtcclxuICAgIEBWaWV3Q2hpbGQoJ3NlYXJjaHBhbmVsRGlhbG9nJykgZGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBASW5wdXQoKSB2aWV3ZXJDb250cm9sOiBhbnk7XHJcbiAgICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgdmlld2VyTG9hZGluZzogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzUmVwb3J0UGFnZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBzZWFyY2hQYW5lbFVpOiBhbnk7XHJcbiAgICBASW5wdXQoKSBicmVhZENydW1iczogQnJlYWRDcnVtYkluZm9bXTtcclxuICAgIEBJbnB1dCgpIGFsbFNlYXJjaFBhbmVsU2V0dGluZ3M6IGFueVtdO1xyXG4gICAgQElucHV0KCkgaXNBbm9ueW1vdXM6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjYW5TYXZlR3JpZFNldHRpbmc6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBydGw6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M6IGFueTtcclxuICAgIEBJbnB1dCgpIHNlYXJjaFBhbmVsTW9DaGFuZ2VkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGhpZGVTZWFyY2hQYW5lbDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHBhZ2luZ1NldHRpbmc6IFBhZ2luZ1NldHRpbmc7XHJcbiAgICBASW5wdXQoKSBjb250ZW50RGVuc2l0eTogYW55O1xyXG4gICAgQElucHV0KCkgY29udGV4dDogYW55O1xyXG4gICAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzdGFuZGFsb25lOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbGFuZHNjYXBlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbGF5b3V0SW5mbzogTGF5b3V0U2V0dGluZztcclxuICAgIEBPdXRwdXQoKSBjbG9zZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIHNlYXJjaFBhbmVsTW9DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgb3Blbk1hbmFnZUZpbHRlcnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY29sbGFwc2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gICAgQE91dHB1dCgpIGhpZGVTZWFyY2hQYW5lbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGZpbHRlclNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgZmlsdGVyU2F2ZUFzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAgIEBPdXRwdXQoKSBzaG93RmlsdGVyRmllbGRzU2V0dGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBtYW5hZ2VGaWx0ZXJzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGNsZWFyU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBzZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgICBpc1NlcnZpY2VEZXNrID0gZmFsc2U7XHJcbiAgICBmaWxsUGFnZSA9IGZhbHNlO1xyXG4gICAgc2lkZUNvbnRlbnRNb2RlID0gZmFsc2U7XHJcbiAgICBtb2JpbGVCb3R0b21CYXI6IGJvb2xlYW47XHJcbiAgICBoaWRlUGFnZWluZzogYm9vbGVhbjtcclxuICAgIG1haW5Db250ZW50V2lkdGg6IHN0cmluZztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZiwgcHJvdGVjdGVkIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmlzU2VydmljZURlc2sgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzU2VydmljZURlc2s7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5oaWRlUGFnZWluZyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQsXHJcbiAgICAgICAgICAgICdTZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycy5IaWRlUGFnZWluZycsXHJcbiAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZpbGxQYWdlID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCxcclxuICAgICAgICAgICAgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzLkZpbGxQYWdlJyxcclxuICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuc2lkZUNvbnRlbnRNb2RlID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCxcclxuICAgICAgICAgICAgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzLlNlYXJjaHBhbmVsSW5TaWRlQ29udGVudCcsXHJcbiAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLm1haW5Db250ZW50V2lkdGggPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxyXG4gICAgICAgICAgICAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpLlBhcmFtZXRlcnMuTWFpbkNvbnRlbnRXaWR0aCcsXHJcbiAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IGdldERldmljZUlzTW9iaWxlKCk7XHJcbiAgICAgICAgdGhpcy5tb2JpbGVCb3R0b21CYXIgPSB0aGlzLmlzTW9iaWxlICYmICF0aGlzLnN0YW5kYWxvbmU7XHJcbiAgICB9XHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuX2R5bmFtaWNQYWdlQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRldmljZVNpemUgPT09ICd4bCcgJiYgdGhpcy5fZHluYW1pY1BhZ2VDb21wb25lbnQuc2l6ZSAhPT0gJ2V4dHJhLWxhcmdlJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZHluYW1pY1BhZ2VDb21wb25lbnQucmVmcmVzaFNpemUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uQ2xvc2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoKTtcclxuICAgIH1cclxuICAgIG9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hQYW5lbE1vQ2hhbmdlLmVtaXQoKTtcclxuICAgIH1cclxuICAgIG9uU2hvd1NlYXJjaHBhbmVsRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub3BlbkRpYWxvZyh0aGlzLmRpYWxvZ1RlbXBsYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuRGlhbG9nKGRpYWxvZzogVGVtcGxhdGVSZWY8YW55Pik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihkaWFsb2csIHtcclxuICAgICAgICAgICAgcmVzcG9uc2l2ZVBhZGRpbmc6IHRydWUsICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcclxuICAgICAgICAgICAgYXJpYUxhYmVsbGVkQnk6ICdGaXRsZXJzJyxcclxuICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5OiAnRml0bGVycycsXHJcbiAgICAgICAgICAgIGZvY3VzVHJhcHBlZDogdHJ1ZSxcclxuICAgICAgICAgICAgY2xvc2VPbk5hdmlnYXRpb246IHRydWVcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIG9uT3Blbk1hbmFnZUZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vcGVuTWFuYWdlRmlsdGVycy5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Db2xsYXBzZWRDaGFuZ2UoY29sbGFwc2VkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb2xsYXBzZWRDaGFuZ2UuZW1pdChjb2xsYXBzZWQpO1xyXG4gICAgfVxyXG4gICAgb25IaWRlU2VhcmNoUGFuZWxDbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmhpZGVTZWFyY2hQYW5lbENsaWNrLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZpbHRlclNhdmUocG9wb3Zlcik6IHZvaWQge1xyXG4gICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLmZpbHRlclNhdmUuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRmlsdGVyU2F2ZUFzKHBvcG92ZXIpOiB2b2lkIHtcclxuICAgICAgICBwb3BvdmVyLmNsb3NlKCk7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJTYXZlQXMuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2hvd0ZpbHRlckZpZWxkc1NldHRpbmcoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93RmlsdGVyRmllbGRzU2V0dGluZy5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25NYW5hZ2VGaWx0ZXJzKHBvcG92ZXIpOiB2b2lkIHtcclxuICAgICAgICBwb3BvdmVyLmNsb3NlKCk7XHJcbiAgICAgICAgdGhpcy5tYW5hZ2VGaWx0ZXJzLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsZWFyU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2xlYXJTZWFyY2guZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoLmVtaXQoKTtcclxuICAgIH1cclxuICAgIG9uUGFnZUNoYW5nZShlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChlKTtcclxuICAgIH1cclxuICAgIG9uU2VsZWN0U2VhcmNoUGFuZWxTZXR0aW5ncyhzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZDogc3RyaW5nLCBwb3BvdmVyKTogdm9pZCB7XHJcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0U2VhcmNoUGFuZWxTZXR0aW5ncy5lbWl0KHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgaXNSZXBvcnRQYWdlID8gcmVwb3J0UGFnZVRlbXBsYXRlIDogcmVwb3J0VGVtcGxhdGU7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogdmlld2VyQ29udHJvbCxcbiAgICAgICAgICAgIHRhYk1vZGU6IHZpZXdlckNvbnRyb2w/LlNldHRpbmc/LkNsYXNzTmFtZXM/LkN1c3RvbVVpPy5QYXJhbWV0ZXJzPy5UYWJNb2RlXG4gICAgICAgIH1cbiAgICBcIlxuPlxuPC9uZy1jb250YWluZXI+XG5AaWYgKGxvYWRpbmcpIHtcbjxic3UtbWFzayBzaXplPVwibVwiPjwvYnN1LW1hc2s+XG59XG48bmctdGVtcGxhdGUgI3JlcG9ydFBhZ2VUZW1wbGF0ZSBsZXQtdmlld2VyQ29udHJvbCBsZXQtdGFiTW9kZT1cInRhYk1vZGVcIj5cbiAgICA8ZmQtZHluYW1pYy1wYWdlXG4gICAgICAgIGZvcm1DbG9zZVxuICAgICAgICBtb2JpbGVcbiAgICAgICAgW2F0dHIuaXNNb2JpbGVdPVwiaXNNb2JpbGUgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXG4gICAgICAgIFtzaXplXT1cImRldmljZVNpemUgfCBkeW5hbWljUGFnZVNpemVcIlxuICAgICAgICBbYXR0ci50YWJNb2RlXT1cInRhYk1vZGVcIlxuICAgICAgICBbYXV0b1Jlc3BvbnNpdmVdPVwiZmFsc2VcIlxuICAgICAgICBbY2xhc3Mubm90aXRsZV09XCJcbiAgICAgICAgICAgICghdGl0bGUgJiYgIXNlYXJjaFBhbmVsVWkgJiYgIWhpZGVTZWFyY2hQYW5lbCAmJiAhc2lkZUNvbnRlbnRNb2RlKSB8fFxuICAgICAgICAgICAgKHNpZGVDb250ZW50TW9kZSAmJiAhaGlkZVNlYXJjaFBhbmVsICYmICF0aXRsZSlcbiAgICAgICAgXCJcbiAgICA+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtaGVhZGVyXG4gICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgKHRpdGxlIHwgYmJiVHJhbnNsYXRlKVxuICAgICAgICAgICAgICAgICAgICA/ICh0aXRsZSB8IGJiYlRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgOiBpc01vYmlsZSAmJiBicmVhZENydW1icy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgPyBicmVhZENydW1ic1ticmVhZENydW1icy5sZW5ndGggLSAxXS5sYWJlbFxuICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgY2xhc3M9XCJwLWIwXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1icmVhZGNydW1iIFtjbGFzcy5oaWRlXT1cImlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPGZkLWJyZWFkY3J1bWI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKCBicmVhZENydW1iIG9mIGJyZWFkQ3J1bWJzIHwgc2xpY2U6IDA6YnJlYWRDcnVtYnMubGVuZ3RoOyB0cmFjayBicmVhZENydW1iLnVybDsgbGV0IGkgPVxuICAgICAgICAgICAgICAgICAgICAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJyZWFkY3J1bWItaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxic3UtYnJlYWRjcnVtYlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNMYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFticmVhZENydW1iXT1cImJyZWFkQ3J1bWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbGxCcmVhZENydW1iXT1cImJyZWFkQ3J1bWJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2JzdS1icmVhZGNydW1iPlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLWJyZWFkY3J1bWItaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZmQtYnJlYWRjcnVtYj5cbiAgICAgICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWJyZWFkY3J1bWI+XG4gICAgICAgICAgICA8IS0tIDxmZC1keW5hbWljLXBhZ2UtdGl0bGUtY29udGVudD7ar9iy2KfYsdi0IDwvZmQtZHluYW1pYy1wYWdlLXRpdGxlLWNvbnRlbnQ+IC0tPlxuXG4gICAgICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWdsb2JhbC1hY3Rpb25zICp1bnRpbEluVmlldz1cImVsXCIgc3R5bGU9XCJtaW4td2lkdGg6IGF1dG9cIj5cbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhciBbc2hvdWxkT3ZlcmZsb3ddPVwidHJ1ZVwiIFN0eWxlPVwiZGlzcGxheTpub25lXCI+IDwvZmQtdG9vbGJhcj5cbiAgICAgICAgICAgICAgICA8IS0tIGFkZGVkIHRoaXMgYmVjYXVzZSBpbiBtb2JpbGUgbGFuZHNjYXBlIHRvb2xiYXIgZGlzYXBwZXIgLS0+XG4gICAgICAgICAgICAgICAgQGlmICghaGlkZVNlYXJjaFBhbmVsIHx8KCBzZWFyY2hQYW5lbFVpICYmICFzaWRlQ29udGVudE1vZGUpKSB7XG4gICAgICAgICAgICAgICAgPGZkLXRvb2xiYXJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnbG9iYWwtYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsZWFyQm9yZGVyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvdWxkT3ZlcmZsb3ddPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaXNBbm9ueW1vdXMgPT09IGZhbHNlICYmIGNhblNhdmVHcmlkU2V0dGluZykge1xuICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3ZlciBmZC10b29sYmFyLWl0ZW0gI3BvcG92ZXIgZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGVhZGVyLXNlYXJjaFwiIFthdHRyLnJ0bF09XCJydGxcIiBmZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzPy5Jc1N0YW5kYXJkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M/LlRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzZWFyY2hQYW5lbE1vQ2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz4qPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJzbGltLWFycm93LWRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgbW9iaWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgW2ZkQ296eV0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD57eyAnRmlsdGVycycgfCBiYmJUcmFuc2xhdGUgfX08L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBmZC1saXN0IHN0eWxlPVwibWluLWhlaWdodDogMjAwcHg7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNhcEJhY2tncm91bmRDb2xvciwgI2Y3ZjdmNylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIGFsbFNlYXJjaFBhbmVsU2V0dGluZ3M7IHRyYWNrIG9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWxpc3QtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cIm9wdGlvbi5JZCA9PT0gc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0U2VhcmNoUGFuZWxTZXR0aW5ncyhvcHRpb24uSWQsIHBvcG92ZXIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyBvcHRpb24uVGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgW2JhckRlc2lnbl09XCInZm9vdGVyJ1wiIFtmZENvenldPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIXNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncy5Jc1ByaW1hcnkgJiYgc2VhcmNoUGFuZWxNb0NoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1NhdmUnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkZpbHRlclNhdmUocG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAaWYgKHNlYXJjaFBhbmVsTW9DaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTYXZlQXMnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncy5Jc0RlZmF1bHQgPyAnZW1waGFzaXplZCcgOiAndHJhbnNwYXJlbnQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkZpbHRlclNhdmVBcyhwb3BvdmVyKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidNYW5hZ2UnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRrSW5pdGlhbEZvY3VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWFuYWdlRmlsdGVycyhwb3BvdmVyKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgIH0gQGlmIChkZXZpY2VTaXplICE9PSAncycpIHtcbiAgICAgICAgICAgICAgICAgICAgPGZkLXRvb2xiYXItc3BhY2VyPjwvZmQtdG9vbGJhci1zcGFjZXI+XG4gICAgICAgICAgICAgICAgICAgIH0gQGlmIChpc01vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd1NlYXJjaHBhbmVsRGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cIidmaWx0ZXInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAoIWlzTW9iaWxlICYmICFzaWRlQ29udGVudE1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTZWFyY2gnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAoIWlzTW9iaWxlICYmICFzaWRlQ29udGVudE1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cImxvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0ZpbHRlcnMnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNob3dGaWx0ZXJGaWVsZHNTZXR0aW5nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkT3ZlcmZsb3dHcm91cF09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAoIWlzTW9iaWxlICYmICFzaWRlQ29udGVudE1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cImxvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NsZWFyJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGVhclNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZE92ZXJmbG93R3JvdXBdPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgfSBAaWYgKCFpc01vYmlsZSAmJiAhc2lkZUNvbnRlbnRNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaGlkZVNlYXJjaFBhbmVsID8gKCdTaG93JyB8IGJiYlRyYW5zbGF0ZSkgOiAoJ0hpZGUnIHwgYmJiVHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25IaWRlU2VhcmNoUGFuZWxDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cImxvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRPdmVyZmxvd0dyb3VwXT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtZ2xvYmFsLWFjdGlvbnM+XG4gICAgICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxuICAgICAgICAgICAgICAgIDxmZC10b29sYmFyIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgW2NsZWFyQm9yZGVyXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwiY2xvc2VFdmVudC5lbWl0KClcIiB0aXRsZT1cIkNsb3NlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ3NhcC1pY29uLS0nICsgKGlzTW9iaWxlID8gKHJ0bCA/ICdhcnJvdy1yaWdodCcgOiAnYXJyb3ctbGVmdCcpIDogJ2RlY2xpbmUnKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9mZC10b29sYmFyPlxuICAgICAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWhlYWRlcj5cbiAgICAgICAgQGlmICghaGlkZVNlYXJjaFBhbmVsICYmIHNlYXJjaFBhbmVsVWkgJiYgIXNpZGVDb250ZW50TW9kZSkge1xuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLXN1YmhlYWRlciBbcGlubmFibGVdPVwidHJ1ZVwiIFtjb2xsYXBzaWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgQGlmICghaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIDxic3Utc2VhcmNoLXBhbmVsXG4gICAgICAgICAgICAgICAgW2hpZGVCdXR0b25zXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzZWFyY2hQYW5lbFVpXT1cInNlYXJjaFBhbmVsVWlcIlxuICAgICAgICAgICAgICAgIChtb0NoYW5nZWQpPVwib25TZWFyY2hQYW5lbE1vQ2hhbmdlZCgpXCJcbiAgICAgICAgICAgID48L2JzdS1zZWFyY2gtcGFuZWw+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLXN1YmhlYWRlcj5cbiAgICAgICAgfSBAaWYgKCF0YWJNb2RlKSB7XG5cbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIHNpZGVDb250ZW50TW9kZSA/IHNpZGVDb250ZW50VGVtcGxhdGUgOiB2aWV3ZXJUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyBub1JlbmRlclBhZ2Vpbmc6IHRydWUgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWNvbnRlbnQ+XG5cbiAgICAgICAgfSBAaWYgKHBhZ2luZ1NldHRpbmc/LlRvdGFsUGFnZXMpIHtcbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1mb290ZXI+XG4gICAgICAgICAgICA8IS0tIHBhZ2UgZm9vdGVyIGNvbnRlbnQgZ29lcyBoZXJlIC0tPlxuICAgICAgICAgICAgPGRpdiBmZC1iYXIgW2JhckRlc2lnbl09XCInZm9vdGVyJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLW1pZGRsZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlbmRlclVsdlBhZ2luZ109XCJjb250ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdpbmdTZXR0aW5nXT1cInBhZ2luZ1NldHRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtZm9vdGVyPlxuICAgICAgICB9XG4gICAgPC9mZC1keW5hbWljLXBhZ2U+XG4gICAgQGlmICh0YWJNb2RlKSB7XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInNpZGVDb250ZW50TW9kZSA/IHNpZGVDb250ZW50VGVtcGxhdGUgOiB2aWV3ZXJUZW1wbGF0ZTsgY29udGV4dDogeyBub1JlbmRlclBhZ2Vpbmc6IHRydWUgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3JlcG9ydFRlbXBsYXRlPlxuICAgIEBpZiAobG9hZGluZykge1xuICAgIDxic3UtbWFzayBzaXplPVwic1wiPjwvYnN1LW1hc2s+XG4gICAgfSBAaWYgKCFoaWRlU2VhcmNoUGFuZWwgJiYgc2VhcmNoUGFuZWxVaSAmJiAhc2lkZUNvbnRlbnRNb2RlKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaHBhbmVsVGVtcGxhdGU7IGNvbnRleHQ6IHsgaGlkZUJ1dHRvbnM6IGZhbHNlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgc2lkZUNvbnRlbnRNb2RlID8gc2lkZUNvbnRlbnRUZW1wbGF0ZSA6IHZpZXdlclRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDogeyBzaW1wbGVSZXBvcnQ6ICdzaW1wbGVSZXBvcnQnIH1cbiAgICAgICAgXCJcbiAgICA+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzaWRlQ29udGVudFRlbXBsYXRlIGxldC1zaW1wbGVSZXBvcnQ9XCJzaW1wbGVSZXBvcnRcIj5cbiAgICA8ZmQtZHluYW1pYy1zaWRlLWNvbnRlbnRcbiAgICAgICAgW2NsYXNzLnJ0bF09XCJydGxcIlxuICAgICAgICBbc2l6ZV09XCJkZXZpY2VTaXplIHwgc2FwU2l6ZVwiXG4gICAgICAgIGZpbGxFbXB0eVNwYWNlXG4gICAgICAgIFtkaXNhYmxlXT1cInRydWVcIlxuICAgICAgICBbc2V0TWluSGVpZ2h0XT1cInRydWVcIlxuICAgID5cbiAgICAgICAgPGZkLWR5bmFtaWMtc2lkZS1jb250ZW50LXNpZGU+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hwYW5lbFRlbXBsYXRlOyBjb250ZXh0OiB7IGlzU2VhcmNQYW5lbEluU2lkZUNvbnRlbnQ6IHRydWUgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZHluYW1pYy1zaWRlLWNvbnRlbnQtc2lkZT5cbiAgICAgICAgPGZkLWR5bmFtaWMtc2lkZS1jb250ZW50LW1haW4gW3N0eWxlLndpZHRoXT1cImRldmljZVNpemUgIT09ICdzJyA/IG1haW5Db250ZW50V2lkdGggOiBudWxsXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2aWV3ZXJUZW1wbGF0ZTsgY29udGV4dDogeyBub1JlbmRlclBhZ2Vpbmc6IGlzUmVwb3J0UGFnZSA/IHRydWUgOiBmYWxzZSB9XCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1keW5hbWljLXNpZGUtY29udGVudC1tYWluPlxuICAgIDwvZmQtZHluYW1pYy1zaWRlLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlXG4gICAgI3NlYXJjaHBhbmVsVGVtcGxhdGVcbiAgICBsZXQtaXNTZWFyY1BhbmVsSW5TaWRlQ29udGVudD1cImlzU2VhcmNQYW5lbEluU2lkZUNvbnRlbnRcIlxuICAgIGxldC1oaWRlQnV0dG9ucz1cImhpZGVCdXR0b25zXCJcbj5cbiAgICBAaWYgKCFpc1NlYXJjUGFuZWxJblNpZGVDb250ZW50KSB7IEBpZiAoIWhpZGVTZWFyY2hQYW5lbCAmJiBzZWFyY2hQYW5lbFVpKSB7XG4gICAgPGJzdS1zZWFyY2gtcGFuZWxcbiAgICAgICAgW3NlYXJjaFBhbmVsVWldPVwic2VhcmNoUGFuZWxVaVwiXG4gICAgICAgIFtpc1NlYXJjUGFuZWxJblNpZGVDb250ZW50XT1cImlzU2VhcmNQYW5lbEluU2lkZUNvbnRlbnRcIlxuICAgICAgICBbaGlkZUJ1dHRvbnNdPVwiaGlkZUJ1dHRvbnNcIlxuICAgICAgICAobW9DaGFuZ2VkKT1cIm9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKVwiXG4gICAgPjwvYnN1LXNlYXJjaC1wYW5lbD5cbiAgICB9IH0gQGVsc2Uge1xuICAgIDxmZC1jYXJkIGNsYXNzPVwic2VhcmNocGFuZWwtY2FyZFwiPlxuICAgICAgICA8ZmQtY2FyZC1oZWFkZXI+XG4gICAgICAgICAgICA8aDIgZmQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiBnbHlwaD1cImZpbHRlclwiPjwvZmQtaWNvbj48c3Bhbj57eyAnRmlsdGVyJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvaDI+XG4gICAgICAgIDwvZmQtY2FyZC1oZWFkZXI+XG4gICAgICAgIDxmZC1jYXJkLWNvbnRlbnQgc3R5bGU9XCJmbGV4LWdyb3c6IDBcIj5cbiAgICAgICAgICAgIEBpZiAoIWhpZGVTZWFyY2hQYW5lbCAmJiBzZWFyY2hQYW5lbFVpKSB7XG4gICAgICAgICAgICA8YnN1LXNlYXJjaC1wYW5lbFxuICAgICAgICAgICAgICAgIFtzZWFyY2hQYW5lbFVpXT1cInNlYXJjaFBhbmVsVWlcIlxuICAgICAgICAgICAgICAgIFtoaWRlQnV0dG9uc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbaXNTZWFyY1BhbmVsSW5TaWRlQ29udGVudF09XCJpc1NlYXJjUGFuZWxJblNpZGVDb250ZW50XCJcbiAgICAgICAgICAgICAgICAobW9DaGFuZ2VkKT1cIm9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKVwiXG4gICAgICAgICAgICA+PC9ic3Utc2VhcmNoLXBhbmVsPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLWNhcmQtY29udGVudD5cbiAgICAgICAgPGZkLWNhcmQtZm9vdGVyIHN0eWxlPVwiYm9yZGVyLWJvdHRvbTogbm9uZVwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpmZENhcmRGb290ZXJBY3Rpb25JdGVtXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTZWFyY2gnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpmZENhcmRGb290ZXJBY3Rpb25JdGVtXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCIoJ0RlbGV0ZScgfCBiYmJUcmFuc2xhdGUpICsgJyAnICsgKCdGaWx0ZXJzJyB8IGJiYlRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgIFtmZE92ZXJmbG93R3JvdXBdPVwiMVwiXG4gICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2ZkLWNhcmQtZm9vdGVyPlxuICAgIDwvZmQtY2FyZD5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN2aWV3ZXJUZW1wbGF0ZSBsZXQtbm9SZW5kZXJQYWdlaW5nPVwibm9SZW5kZXJQYWdlaW5nXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInZpZXdlci1jb250YWluZXJcIlxuICAgICAgICBmaWxsRW1wdHlTcGFjZVxuICAgICAgICBbZGlzYWJsZV09XCJpc1JlcG9ydFBhZ2UgfHwgIWZpbGxQYWdlXCJcbiAgICAgICAgW2RlY3JlbWVudF09XCJkZXZpY2VTaXplICE9PSAncycgPyAnMTAwcHgnIDogJzc1cHgnXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodF09XCJ2aWV3ZXJMb2FkaW5nID8gJzEwMCUnIDogJ2F1dG8nXCJcbiAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHRdPVwiaXNSZXBvcnRQYWdlID8gJzEwMCUnIDogbnVsbFwiXG4gICAgICAgIFtzdHlsZS5wb3NpdGlvbl09XCJ2aWV3ZXJMb2FkaW5nID8gJ3JlbGF0aXZlJyA6IG51bGxcIlxuICAgID5cbiAgICAgICAgQGlmICh2aWV3ZXJMb2FkaW5nKSB7XG4gICAgICAgIDxic3UtbWFzayBzaXplPVwibVwiPjwvYnN1LW1hc2s+XG4gICAgICAgIH0gQGlmICh2aWV3ZXJDb250cm9sKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtyZW5kZXJVbHZWaWV3ZXJdPVwidmlld2VyQ29udHJvbFwiXG4gICAgICAgICAgICBbbGF5b3V0SW5mb109XCJsYXlvdXRJbmZvXCJcbiAgICAgICAgICAgIFtpc1JlcG9ydFBhZ2VdPVwiaXNSZXBvcnRQYWdlXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmICghbm9SZW5kZXJQYWdlaW5nICYmIHBhZ2luZ1NldHRpbmc/LlRvdGFsUGFnZXMgJiYgIWhpZGVQYWdlaW5nKSB7XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbcmVuZGVyVWx2UGFnaW5nXT1cImNvbnRleHRcIlxuICAgICAgICBbcGFnaW5nU2V0dGluZ109XCJwYWdpbmdTZXR0aW5nXCJcbiAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNzZWFyY2hwYW5lbERpYWxvZz5cbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIj5cbiAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgICAgICA8aDEgaWQ9XCJmZC1kaWFsb2ctaGVhZGVyLTEwXCIgZmQtdGl0bGU+e3sgJ0ZpbHRlcnMnIHwgYmJiVHJhbnNsYXRlIH19PC9oMT5cbiAgICAgICAgICAgIDxidXR0b24gZmQtZGlhbG9nLWNsb3NlLWJ1dHRvbiAoY2xpY2spPVwiZGlhbG9nLmRpc21pc3MoJ0Nsb3NlIGJ1dHRvbicpXCI+PC9idXR0b24+XG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICAgICAgPGJzdS1zZWFyY2gtcGFuZWxcbiAgICAgICAgICAgICAgICBbaGlkZUJ1dHRvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3NlYXJjaFBhbmVsVWldPVwic2VhcmNoUGFuZWxVaVwiXG4gICAgICAgICAgICAgICAgKG1vQ2hhbmdlZCk9XCJvblNlYXJjaFBhbmVsTW9DaGFuZ2VkKClcIlxuICAgICAgICAgICAgPjwvYnN1LXNlYXJjaC1wYW5lbD5cbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZGtJbml0aWFsRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkaWFsb2cuZGlzbWlzcygpOyBvblNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTZWFyY2gnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgPGZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtsYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCIgKGNsaWNrKT1cIm9uQ2xlYXJTZWFyY2goKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkaWFsb2cuZGlzbWlzcygnQ2xvc2UgYnV0dG9uJylcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosU0FBUyxFQUlaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBaUIsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBRUgsYUFBYSxFQUNiLGlCQUFpQixFQUVqQixRQUFRLEVBR1gsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTlCLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBOENwRCxZQUFtQixFQUFjLEVBQVksY0FBNkI7UUFDdEUsS0FBSyxFQUFFLENBQUM7UUFETyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVksbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFuQmhFLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDOUMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDeEMsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVCLDhCQUF5QixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDakUsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQU1wQixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsc0JBQXNCO0lBQ3JGLENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUMvQyxJQUFJLENBQUMsT0FBTyxFQUNaLG9EQUFvRCxFQUNwRCxLQUFLLENBQ1IsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUM1QyxJQUFJLENBQUMsT0FBTyxFQUNaLGlEQUFpRCxFQUNqRCxLQUFLLENBQ1IsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUNuRCxJQUFJLENBQUMsT0FBTyxFQUNaLGlFQUFpRSxFQUNqRSxLQUFLLENBQ1IsQ0FBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQ3BELElBQUksQ0FBQyxPQUFPLEVBQ1oseURBQXlELEVBQ3pELEtBQUssQ0FDUixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDN0QsQ0FBQztJQUNELGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEtBQUssYUFBYSxFQUFFLENBQUM7Z0JBQ2hGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM3QyxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0Qsc0JBQXNCO1FBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsdUJBQXVCO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBd0I7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzdCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsTUFBTSxFQUFFLElBQUk7WUFDWixjQUFjLEVBQUUsU0FBUztZQUN6QixlQUFlLEVBQUUsU0FBUztZQUMxQixZQUFZLEVBQUUsSUFBSTtZQUNsQixpQkFBaUIsRUFBRSxJQUFJO1NBQzFCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQWtCO1FBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxzQkFBc0I7UUFDbEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBTztRQUNoQixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQU87UUFDbEIsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELHlCQUF5QjtRQUNyQixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFPO1FBQ25CLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELFlBQVksQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCwyQkFBMkIsQ0FBQyw2QkFBcUMsRUFBRSxPQUFPO1FBQ3RFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDdkUsQ0FBQzs4R0FuSlEscUJBQXFCO2tHQUFyQixxQkFBcUIsZzJDQUNuQixvQkFBb0IsNktDOUJuQyxzeGpCQWdaQTs7MkZEblhhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDSSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTsyR0FHZCxxQkFBcUI7c0JBQXJELFNBQVM7dUJBQUMsb0JBQW9CO2dCQUNDLGNBQWM7c0JBQTdDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUNyQixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyx5QkFBeUI7c0JBQWxDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25Jbml0LFxuICAgIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRHluYW1pY1BhZ2VDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBnZXREZXZpY2VJc01vYmlsZSxcbiAgICBCcmVhZENydW1iSW5mbyxcbiAgICBCYXJzYUFwaSxcbiAgICBQYWdpbmdTZXR0aW5nLFxuICAgIExheW91dFNldHRpbmdcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS11bHYtbWFpbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLXVsdi1tYWluLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS11bHYtbWFpbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVWx2TWFpbkNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoRHluYW1pY1BhZ2VDb21wb25lbnQpIF9keW5hbWljUGFnZUNvbXBvbmVudDogRHluYW1pY1BhZ2VDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnc2VhcmNocGFuZWxEaWFsb2cnKSBkaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASW5wdXQoKSB2aWV3ZXJDb250cm9sOiBhbnk7XG4gICAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB2aWV3ZXJMb2FkaW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzUmVwb3J0UGFnZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBzZWFyY2hQYW5lbFVpOiBhbnk7XG4gICAgQElucHV0KCkgYnJlYWRDcnVtYnM6IEJyZWFkQ3J1bWJJbmZvW107XG4gICAgQElucHV0KCkgYWxsU2VhcmNoUGFuZWxTZXR0aW5nczogYW55W107XG4gICAgQElucHV0KCkgaXNBbm9ueW1vdXM6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY2FuU2F2ZUdyaWRTZXR0aW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M6IGFueTtcbiAgICBASW5wdXQoKSBzZWFyY2hQYW5lbE1vQ2hhbmdlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGhpZGVTZWFyY2hQYW5lbDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwYWdpbmdTZXR0aW5nOiBQYWdpbmdTZXR0aW5nO1xuICAgIEBJbnB1dCgpIGNvbnRlbnREZW5zaXR5OiBhbnk7XG4gICAgQElucHV0KCkgY29udGV4dDogYW55O1xuICAgIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHN0YW5kYWxvbmU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbGFuZHNjYXBlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNpbXBsZVNlYXJjaFBhbmVsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGxheW91dEluZm86IExheW91dFNldHRpbmc7XG4gICAgQE91dHB1dCgpIGNsb3NlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNlYXJjaFBhbmVsTW9DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9wZW5NYW5hZ2VGaWx0ZXJzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBjb2xsYXBzZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIGhpZGVTZWFyY2hQYW5lbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBmaWx0ZXJTYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBmaWx0ZXJTYXZlQXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgc2hvd0ZpbHRlckZpZWxkc1NldHRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG1hbmFnZUZpbHRlcnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNsZWFyU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3MgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBpc1NlcnZpY2VEZXNrID0gZmFsc2U7XG4gICAgZmlsbFBhZ2UgPSBmYWxzZTtcbiAgICBzaWRlQ29udGVudE1vZGUgPSBmYWxzZTtcbiAgICBtb2JpbGVCb3R0b21CYXI6IGJvb2xlYW47XG4gICAgaGlkZVBhZ2Vpbmc6IGJvb2xlYW47XG4gICAgbWFpbkNvbnRlbnRXaWR0aDogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZiwgcHJvdGVjdGVkIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaXNTZXJ2aWNlRGVzayA9IEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNTZXJ2aWNlRGVzazsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5oaWRlUGFnZWluZyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxuICAgICAgICAgICAgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzLkhpZGVQYWdlaW5nJyxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZmlsbFBhZ2UgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgICAgICAgICdTZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycy5GaWxsUGFnZScsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNpZGVDb250ZW50TW9kZSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxuICAgICAgICAgICAgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzLlNlYXJjaHBhbmVsSW5TaWRlQ29udGVudCcsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLm1haW5Db250ZW50V2lkdGggPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgICAgICAgICdTZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycy5NYWluQ29udGVudFdpZHRoJyxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IGdldERldmljZUlzTW9iaWxlKCk7XG4gICAgICAgIHRoaXMubW9iaWxlQm90dG9tQmFyID0gdGhpcy5pc01vYmlsZSAmJiAhdGhpcy5zdGFuZGFsb25lO1xuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5fZHluYW1pY1BhZ2VDb21wb25lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRldmljZVNpemUgPT09ICd4bCcgJiYgdGhpcy5fZHluYW1pY1BhZ2VDb21wb25lbnQuc2l6ZSAhPT0gJ2V4dHJhLWxhcmdlJykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2R5bmFtaWNQYWdlQ29tcG9uZW50LnJlZnJlc2hTaXplKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25DbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoKTtcbiAgICB9XG4gICAgb25TZWFyY2hQYW5lbE1vQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2hQYW5lbE1vQ2hhbmdlLmVtaXQoKTtcbiAgICB9XG4gICAgb25TaG93U2VhcmNocGFuZWxEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbkRpYWxvZyh0aGlzLmRpYWxvZ1RlbXBsYXRlKTtcbiAgICB9XG5cbiAgICBvcGVuRGlhbG9nKGRpYWxvZzogVGVtcGxhdGVSZWY8YW55Pik6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oZGlhbG9nLCB7XG4gICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSxcbiAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcbiAgICAgICAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnRml0bGVycycsXG4gICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnk6ICdGaXRsZXJzJyxcbiAgICAgICAgICAgIGZvY3VzVHJhcHBlZDogdHJ1ZSxcbiAgICAgICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvbk9wZW5NYW5hZ2VGaWx0ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5NYW5hZ2VGaWx0ZXJzLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbkNvbGxhcHNlZENoYW5nZShjb2xsYXBzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWRDaGFuZ2UuZW1pdChjb2xsYXBzZWQpO1xuICAgIH1cbiAgICBvbkhpZGVTZWFyY2hQYW5lbENsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGVTZWFyY2hQYW5lbENsaWNrLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbkZpbHRlclNhdmUocG9wb3Zlcik6IHZvaWQge1xuICAgICAgICBwb3BvdmVyLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuZmlsdGVyU2F2ZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25GaWx0ZXJTYXZlQXMocG9wb3Zlcik6IHZvaWQge1xuICAgICAgICBwb3BvdmVyLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuZmlsdGVyU2F2ZUFzLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvblNob3dGaWx0ZXJGaWVsZHNTZXR0aW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNob3dGaWx0ZXJGaWVsZHNTZXR0aW5nLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbk1hbmFnZUZpbHRlcnMocG9wb3Zlcik6IHZvaWQge1xuICAgICAgICBwb3BvdmVyLmNsb3NlKCk7XG4gICAgICAgIHRoaXMubWFuYWdlRmlsdGVycy5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25DbGVhclNlYXJjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhclNlYXJjaC5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25TZWFyY2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoLmVtaXQoKTtcbiAgICB9XG4gICAgb25QYWdlQ2hhbmdlKGU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChlKTtcbiAgICB9XG4gICAgb25TZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkOiBzdHJpbmcsIHBvcG92ZXIpOiB2b2lkIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB0aGlzLnNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3MuZW1pdChzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIGlzUmVwb3J0UGFnZSA/IHJlcG9ydFBhZ2VUZW1wbGF0ZSA6IHJlcG9ydFRlbXBsYXRlO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IHZpZXdlckNvbnRyb2wsXG4gICAgICAgICAgICB0YWJNb2RlOiB2aWV3ZXJDb250cm9sPy5TZXR0aW5nPy5DbGFzc05hbWVzPy5DdXN0b21VaT8uUGFyYW1ldGVycz8uVGFiTW9kZVxuICAgICAgICB9XG4gICAgXCJcbj5cbjwvbmctY29udGFpbmVyPlxuQGlmIChsb2FkaW5nKSB7XG48YnN1LW1hc2sgc2l6ZT1cIm1cIj48L2JzdS1tYXNrPlxufVxuPG5nLXRlbXBsYXRlICNyZXBvcnRQYWdlVGVtcGxhdGUgbGV0LXZpZXdlckNvbnRyb2wgbGV0LXRhYk1vZGU9XCJ0YWJNb2RlXCI+XG4gICAgPGZkLWR5bmFtaWMtcGFnZVxuICAgICAgICBmb3JtQ2xvc2VcbiAgICAgICAgbW9iaWxlXG4gICAgICAgIFthdHRyLmlzTW9iaWxlXT1cImlzTW9iaWxlID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxuICAgICAgICBbc2l6ZV09XCJkZXZpY2VTaXplIHwgZHluYW1pY1BhZ2VTaXplXCJcbiAgICAgICAgW2F0dHIudGFiTW9kZV09XCJ0YWJNb2RlXCJcbiAgICAgICAgW2F1dG9SZXNwb25zaXZlXT1cImZhbHNlXCJcbiAgICAgICAgW2NsYXNzLm5vdGl0bGVdPVwiXG4gICAgICAgICAgICAoIXRpdGxlICYmICFzZWFyY2hQYW5lbFVpICYmICFoaWRlU2VhcmNoUGFuZWwgJiYgIXNpZGVDb250ZW50TW9kZSkgfHxcbiAgICAgICAgICAgIChzaWRlQ29udGVudE1vZGUgJiYgIWhpZGVTZWFyY2hQYW5lbCAmJiAhdGl0bGUpXG4gICAgICAgIFwiXG4gICAgPlxuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWhlYWRlclxuICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICh0aXRsZSB8IGJiYlRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgPyAodGl0bGUgfCBiYmJUcmFuc2xhdGUpXG4gICAgICAgICAgICAgICAgICAgIDogaXNNb2JpbGUgJiYgYnJlYWRDcnVtYnMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgID8gYnJlYWRDcnVtYnNbYnJlYWRDcnVtYnMubGVuZ3RoIC0gMV0ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGNsYXNzPVwicC1iMFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmZC1keW5hbWljLXBhZ2UtYnJlYWRjcnVtYiBbY2xhc3MuaGlkZV09XCJpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgIDxmZC1icmVhZGNydW1iPlxuICAgICAgICAgICAgICAgICAgICBAZm9yICggYnJlYWRDcnVtYiBvZiBicmVhZENydW1icyB8IHNsaWNlOiAwOmJyZWFkQ3J1bWJzLmxlbmd0aDsgdHJhY2sgYnJlYWRDcnVtYi51cmw7IGxldCBpID1cbiAgICAgICAgICAgICAgICAgICAgJGluZGV4OyBsZXQgbGFzdCA9ICRsYXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC1icmVhZGNydW1iLWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnN1LWJyZWFkY3J1bWJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzTGFzdF09XCJsYXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnJlYWRDcnVtYl09XCJicmVhZENydW1iXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxsQnJlYWRDcnVtYl09XCJicmVhZENydW1ic1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9ic3UtYnJlYWRjcnVtYj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1icmVhZGNydW1iLWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2ZkLWJyZWFkY3J1bWI+XG4gICAgICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1icmVhZGNydW1iPlxuICAgICAgICAgICAgPCEtLSA8ZmQtZHluYW1pYy1wYWdlLXRpdGxlLWNvbnRlbnQ+2q/Ystin2LHYtCA8L2ZkLWR5bmFtaWMtcGFnZS10aXRsZS1jb250ZW50PiAtLT5cblxuICAgICAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1nbG9iYWwtYWN0aW9ucyAqdW50aWxJblZpZXc9XCJlbFwiIHN0eWxlPVwibWluLXdpZHRoOiBhdXRvXCI+XG4gICAgICAgICAgICAgICAgPGZkLXRvb2xiYXIgW3Nob3VsZE92ZXJmbG93XT1cInRydWVcIiBTdHlsZT1cImRpc3BsYXk6bm9uZVwiPiA8L2ZkLXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgPCEtLSBhZGRlZCB0aGlzIGJlY2F1c2UgaW4gbW9iaWxlIGxhbmRzY2FwZSB0b29sYmFyIGRpc2FwcGVyIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAoIWhpZGVTZWFyY2hQYW5lbCB8fCggc2VhcmNoUGFuZWxVaSAmJiAhc2lkZUNvbnRlbnRNb2RlKSkge1xuICAgICAgICAgICAgICAgIDxmZC10b29sYmFyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ2xvYmFsLWFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGVhckJvcmRlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3VsZE92ZXJmbG93XT1cImRldmljZVNpemUgPT09ICdzJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGlzQW5vbnltb3VzID09PSBmYWxzZSAmJiBjYW5TYXZlR3JpZFNldHRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXIgZmQtdG9vbGJhci1pdGVtICNwb3BvdmVyIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhlYWRlci1zZWFyY2hcIiBbYXR0ci5ydGxdPVwicnRsXCIgZmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncz8uSXNTdGFuZGFyZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzPy5UaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc2VhcmNoUGFuZWxNb0NoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+Kjwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwic2xpbS1hcnJvdy1kb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5IG1vYmlsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1oZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyIFtmZENvenldPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+e3sgJ0ZpbHRlcnMnIHwgYmJiVHJhbnNsYXRlIH19PC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgZmQtbGlzdCBzdHlsZT1cIm1pbi1oZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYXBCYWNrZ3JvdW5kQ29sb3IsICNmN2Y3ZjcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBhbGxTZWFyY2hQYW5lbFNldHRpbmdzOyB0cmFjayBvcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJvcHRpb24uSWQgPT09IHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3Mob3B0aW9uLklkLCBwb3BvdmVyKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgb3B0aW9uLlRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1mb290ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyIFtiYXJEZXNpZ25dPVwiJ2Zvb3RlcidcIiBbZmRDb3p5XT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MuSXNQcmltYXJ5ICYmIHNlYXJjaFBhbmVsTW9DaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTYXZlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWx0ZXJTYXZlKHBvcG92ZXIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGlmIChzZWFyY2hQYW5lbE1vQ2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU2F2ZUFzJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MuSXNEZWZhdWx0ID8gJ2VtcGhhc2l6ZWQnIDogJ3RyYW5zcGFyZW50J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWx0ZXJTYXZlQXMocG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInTWFuYWdlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZka0luaXRpYWxGb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1hbmFnZUZpbHRlcnMocG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAoZGV2aWNlU2l6ZSAhPT0gJ3MnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC10b29sYmFyLXNwYWNlcj48L2ZkLXRvb2xiYXItc3BhY2VyPlxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAoaXNNb2JpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNob3dTZWFyY2hwYW5lbERpYWxvZygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCInZmlsdGVyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgfSBAaWYgKCFpc01vYmlsZSAmJiAhc2lkZUNvbnRlbnRNb2RlICYmICFzaW1wbGVTZWFyY2hQYW5lbCkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1NlYXJjaCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIH0gQGlmICghaXNNb2JpbGUgJiYgIXNpZGVDb250ZW50TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibG93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInRmlsdGVycycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd0ZpbHRlckZpZWxkc1NldHRpbmcoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRPdmVyZmxvd0dyb3VwXT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIH0gQGlmICghaXNNb2JpbGUgJiYgIXNpZGVDb250ZW50TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibG93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkT3ZlcmZsb3dHcm91cF09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAoIWlzTW9iaWxlICYmICFzaWRlQ29udGVudE1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJoaWRlU2VhcmNoUGFuZWwgPyAoJ1Nob3cnIHwgYmJiVHJhbnNsYXRlKSA6ICgnSGlkZScgfCBiYmJUcmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkhpZGVTZWFyY2hQYW5lbENsaWNrKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibG93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZE92ZXJmbG93R3JvdXBdPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1nbG9iYWwtYWN0aW9ucz5cbiAgICAgICAgICAgIDxmZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgPGZkLXRvb2xiYXIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjbG9zZUV2ZW50LmVtaXQoKVwiIHRpdGxlPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCInc2FwLWljb24tLScgKyAoaXNNb2JpbGUgPyAocnRsID8gJ2Fycm93LXJpZ2h0JyA6ICdhcnJvdy1sZWZ0JykgOiAnZGVjbGluZScpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9ucz5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtaGVhZGVyPlxuICAgICAgICBAaWYgKCFoaWRlU2VhcmNoUGFuZWwgJiYgc2VhcmNoUGFuZWxVaSAmJiAhc2lkZUNvbnRlbnRNb2RlKSB7XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2Utc3ViaGVhZGVyIFtwaW5uYWJsZV09XCJ0cnVlXCIgW2NvbGxhcHNpYmxlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICBAaWYgKCFpc01vYmlsZSkge1xuICAgICAgICAgICAgPGJzdS1zZWFyY2gtcGFuZWxcbiAgICAgICAgICAgICAgICBbaGlkZUJ1dHRvbnNdPVwiIXNpbXBsZVNlYXJjaFBhbmVsXCJcbiAgICAgICAgICAgICAgICBbc2VhcmNoUGFuZWxVaV09XCJzZWFyY2hQYW5lbFVpXCJcbiAgICAgICAgICAgICAgICAobW9DaGFuZ2VkKT1cIm9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKVwiXG4gICAgICAgICAgICA+PC9ic3Utc2VhcmNoLXBhbmVsPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1zdWJoZWFkZXI+XG4gICAgICAgIH0gQGlmICghdGFiTW9kZSkge1xuXG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtY29udGVudD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBzaWRlQ29udGVudE1vZGUgPyBzaWRlQ29udGVudFRlbXBsYXRlIDogdmlld2VyVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgbm9SZW5kZXJQYWdlaW5nOiB0cnVlIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1jb250ZW50PlxuXG4gICAgICAgIH0gQGlmIChwYWdpbmdTZXR0aW5nPy5Ub3RhbFBhZ2VzKSB7XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtZm9vdGVyPlxuICAgICAgICAgICAgPCEtLSBwYWdlIGZvb3RlciBjb250ZW50IGdvZXMgaGVyZSAtLT5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyIFtiYXJEZXNpZ25dPVwiJ2Zvb3RlcidcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1taWRkbGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZW5kZXJVbHZQYWdpbmddPVwiY29udGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGFnaW5nU2V0dGluZ109XCJwYWdpbmdTZXR0aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWZvb3Rlcj5cbiAgICAgICAgfVxuICAgIDwvZmQtZHluYW1pYy1wYWdlPlxuICAgIEBpZiAodGFiTW9kZSkge1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaWRlQ29udGVudE1vZGUgPyBzaWRlQ29udGVudFRlbXBsYXRlIDogdmlld2VyVGVtcGxhdGU7IGNvbnRleHQ6IHsgbm9SZW5kZXJQYWdlaW5nOiB0cnVlIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNyZXBvcnRUZW1wbGF0ZT5cbiAgICBAaWYgKGxvYWRpbmcpIHtcbiAgICA8YnN1LW1hc2sgc2l6ZT1cInNcIj48L2JzdS1tYXNrPlxuICAgIH0gQGlmICghaGlkZVNlYXJjaFBhbmVsICYmIHNlYXJjaFBhbmVsVWkgJiYgIXNpZGVDb250ZW50TW9kZSkge1xuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hwYW5lbFRlbXBsYXRlOyBjb250ZXh0OiB7IGhpZGVCdXR0b25zOiBmYWxzZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHNpZGVDb250ZW50TW9kZSA/IHNpZGVDb250ZW50VGVtcGxhdGUgOiB2aWV3ZXJUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgc2ltcGxlUmVwb3J0OiAnc2ltcGxlUmVwb3J0JyB9XG4gICAgICAgIFwiXG4gICAgPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjc2lkZUNvbnRlbnRUZW1wbGF0ZSBsZXQtc2ltcGxlUmVwb3J0PVwic2ltcGxlUmVwb3J0XCI+XG4gICAgPGZkLWR5bmFtaWMtc2lkZS1jb250ZW50XG4gICAgICAgIFtjbGFzcy5ydGxdPVwicnRsXCJcbiAgICAgICAgW3NpemVdPVwiZGV2aWNlU2l6ZSB8IHNhcFNpemVcIlxuICAgICAgICBmaWxsRW1wdHlTcGFjZVxuICAgICAgICBbZGlzYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgW3NldE1pbkhlaWdodF09XCJ0cnVlXCJcbiAgICA+XG4gICAgICAgIDxmZC1keW5hbWljLXNpZGUtY29udGVudC1zaWRlPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VhcmNocGFuZWxUZW1wbGF0ZTsgY29udGV4dDogeyBpc1NlYXJjUGFuZWxJblNpZGVDb250ZW50OiB0cnVlIH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWR5bmFtaWMtc2lkZS1jb250ZW50LXNpZGU+XG4gICAgICAgIDxmZC1keW5hbWljLXNpZGUtY29udGVudC1tYWluIFtzdHlsZS53aWR0aF09XCJkZXZpY2VTaXplICE9PSAncycgPyBtYWluQ29udGVudFdpZHRoIDogbnVsbFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidmlld2VyVGVtcGxhdGU7IGNvbnRleHQ6IHsgbm9SZW5kZXJQYWdlaW5nOiBpc1JlcG9ydFBhZ2UgPyB0cnVlIDogZmFsc2UgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZHluYW1pYy1zaWRlLWNvbnRlbnQtbWFpbj5cbiAgICA8L2ZkLWR5bmFtaWMtc2lkZS1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZVxuICAgICNzZWFyY2hwYW5lbFRlbXBsYXRlXG4gICAgbGV0LWlzU2VhcmNQYW5lbEluU2lkZUNvbnRlbnQ9XCJpc1NlYXJjUGFuZWxJblNpZGVDb250ZW50XCJcbiAgICBsZXQtaGlkZUJ1dHRvbnM9XCJoaWRlQnV0dG9uc1wiXG4+XG4gICAgQGlmICghaXNTZWFyY1BhbmVsSW5TaWRlQ29udGVudCkgeyBAaWYgKCFoaWRlU2VhcmNoUGFuZWwgJiYgc2VhcmNoUGFuZWxVaSkge1xuICAgIDxic3Utc2VhcmNoLXBhbmVsXG4gICAgICAgIFtzZWFyY2hQYW5lbFVpXT1cInNlYXJjaFBhbmVsVWlcIlxuICAgICAgICBbaXNTZWFyY1BhbmVsSW5TaWRlQ29udGVudF09XCJpc1NlYXJjUGFuZWxJblNpZGVDb250ZW50XCJcbiAgICAgICAgW2hpZGVCdXR0b25zXT1cImhpZGVCdXR0b25zXCJcbiAgICAgICAgKG1vQ2hhbmdlZCk9XCJvblNlYXJjaFBhbmVsTW9DaGFuZ2VkKClcIlxuICAgID48L2JzdS1zZWFyY2gtcGFuZWw+XG4gICAgfSB9IEBlbHNlIHtcbiAgICA8ZmQtY2FyZCBjbGFzcz1cInNlYXJjaHBhbmVsLWNhcmRcIj5cbiAgICAgICAgPGZkLWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgPGZkLWNhcmQtbWFpbi1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPGgyIGZkLWNhcmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwiZmlsdGVyXCI+PC9mZC1pY29uPjxzcGFuPnt7ICdGaWx0ZXInIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICA8L2ZkLWNhcmQtbWFpbi1oZWFkZXI+XG4gICAgICAgIDwvZmQtY2FyZC1oZWFkZXI+XG4gICAgICAgIDxmZC1jYXJkLWNvbnRlbnQgc3R5bGU9XCJmbGV4LWdyb3c6IDBcIj5cbiAgICAgICAgICAgIEBpZiAoIWhpZGVTZWFyY2hQYW5lbCAmJiBzZWFyY2hQYW5lbFVpKSB7XG4gICAgICAgICAgICA8YnN1LXNlYXJjaC1wYW5lbFxuICAgICAgICAgICAgICAgIFtzZWFyY2hQYW5lbFVpXT1cInNlYXJjaFBhbmVsVWlcIlxuICAgICAgICAgICAgICAgIFtoaWRlQnV0dG9uc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbaXNTZWFyY1BhbmVsSW5TaWRlQ29udGVudF09XCJpc1NlYXJjUGFuZWxJblNpZGVDb250ZW50XCJcbiAgICAgICAgICAgICAgICAobW9DaGFuZ2VkKT1cIm9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKVwiXG4gICAgICAgICAgICA+PC9ic3Utc2VhcmNoLXBhbmVsPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLWNhcmQtY29udGVudD5cbiAgICAgICAgPGZkLWNhcmQtZm9vdGVyIHN0eWxlPVwiYm9yZGVyLWJvdHRvbTogbm9uZVwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpmZENhcmRGb290ZXJBY3Rpb25JdGVtXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTZWFyY2gnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpmZENhcmRGb290ZXJBY3Rpb25JdGVtXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCIoJ0RlbGV0ZScgfCBiYmJUcmFuc2xhdGUpICsgJyAnICsgKCdGaWx0ZXJzJyB8IGJiYlRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgIFtmZE92ZXJmbG93R3JvdXBdPVwiMVwiXG4gICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2ZkLWNhcmQtZm9vdGVyPlxuICAgIDwvZmQtY2FyZD5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN2aWV3ZXJUZW1wbGF0ZSBsZXQtbm9SZW5kZXJQYWdlaW5nPVwibm9SZW5kZXJQYWdlaW5nXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInZpZXdlci1jb250YWluZXJcIlxuICAgICAgICBmaWxsRW1wdHlTcGFjZVxuICAgICAgICBbZGlzYWJsZV09XCJpc1JlcG9ydFBhZ2UgfHwgIWZpbGxQYWdlXCJcbiAgICAgICAgW2RlY3JlbWVudF09XCJkZXZpY2VTaXplICE9PSAncycgPyAnMTAwcHgnIDogJzc1cHgnXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodF09XCJ2aWV3ZXJMb2FkaW5nID8gJzEwMCUnIDogJ2F1dG8nXCJcbiAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHRdPVwiaXNSZXBvcnRQYWdlID8gJzEwMCUnIDogbnVsbFwiXG4gICAgICAgIFtzdHlsZS5wb3NpdGlvbl09XCJ2aWV3ZXJMb2FkaW5nID8gJ3JlbGF0aXZlJyA6IG51bGxcIlxuICAgID5cbiAgICAgICAgQGlmICh2aWV3ZXJMb2FkaW5nKSB7XG4gICAgICAgIDxic3UtbWFzayBzaXplPVwibVwiPjwvYnN1LW1hc2s+XG4gICAgICAgIH0gQGlmICh2aWV3ZXJDb250cm9sKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtyZW5kZXJVbHZWaWV3ZXJdPVwidmlld2VyQ29udHJvbFwiXG4gICAgICAgICAgICBbbGF5b3V0SW5mb109XCJsYXlvdXRJbmZvXCJcbiAgICAgICAgICAgIFtpc1JlcG9ydFBhZ2VdPVwiaXNSZXBvcnRQYWdlXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmICghbm9SZW5kZXJQYWdlaW5nICYmIHBhZ2luZ1NldHRpbmc/LlRvdGFsUGFnZXMgJiYgIWhpZGVQYWdlaW5nKSB7XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbcmVuZGVyVWx2UGFnaW5nXT1cImNvbnRleHRcIlxuICAgICAgICBbcGFnaW5nU2V0dGluZ109XCJwYWdpbmdTZXR0aW5nXCJcbiAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNzZWFyY2hwYW5lbERpYWxvZz5cbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIj5cbiAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgICAgICA8aDEgaWQ9XCJmZC1kaWFsb2ctaGVhZGVyLTEwXCIgZmQtdGl0bGU+e3sgJ0ZpbHRlcnMnIHwgYmJiVHJhbnNsYXRlIH19PC9oMT5cbiAgICAgICAgICAgIDxidXR0b24gZmQtZGlhbG9nLWNsb3NlLWJ1dHRvbiAoY2xpY2spPVwiZGlhbG9nLmRpc21pc3MoJ0Nsb3NlIGJ1dHRvbicpXCI+PC9idXR0b24+XG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICAgICAgPGJzdS1zZWFyY2gtcGFuZWxcbiAgICAgICAgICAgICAgICBbaGlkZUJ1dHRvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3NlYXJjaFBhbmVsVWldPVwic2VhcmNoUGFuZWxVaVwiXG4gICAgICAgICAgICAgICAgKG1vQ2hhbmdlZCk9XCJvblNlYXJjaFBhbmVsTW9DaGFuZ2VkKClcIlxuICAgICAgICAgICAgPjwvYnN1LXNlYXJjaC1wYW5lbD5cbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZGtJbml0aWFsRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkaWFsb2cuZGlzbWlzcygpOyBvblNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTZWFyY2gnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgPGZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtsYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCIgKGNsaWNrKT1cIm9uQ2xlYXJTZWFyY2goKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkaWFsb2cuZGlzbWlzcygnQ2xvc2UgYnV0dG9uJylcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -8,9 +8,12 @@ export class BreadcrumbComponent extends BaseComponent {
8
8
  /**
9
9
  *
10
10
  */
11
- constructor(_router) {
11
+ constructor(_router, _el, _renderer2) {
12
12
  super();
13
13
  this._router = _router;
14
+ this._el = _el;
15
+ this._renderer2 = _renderer2;
16
+ _renderer2.setAttribute(this._el.nativeElement, 'dir', 'ltr');
14
17
  }
15
18
  onBreadcrumb() {
16
19
  const index = this.index;
@@ -29,13 +32,13 @@ export class BreadcrumbComponent extends BaseComponent {
29
32
  }
30
33
  this._router.navigateByUrl(url);
31
34
  }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i1.Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
33
36
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: { breadCrumb: "breadCrumb", allBreadCrumb: "allBreadCrumb", isLast: "isLast", index: "index" }, usesInheritance: true, ngImport: i0, template: "@if (!isLast) {\n<a fd-link (click)=\"onBreadcrumb()\">{{ breadCrumb.label | bbbTranslate }}</a>\n} @if (isLast) {\n<span>{{ breadCrumb.label | bbbTranslate }}</span>\n}\n", styles: [""], dependencies: [{ kind: "component", type: i2.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
37
  }
35
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BreadcrumbComponent, decorators: [{
36
39
  type: Component,
37
40
  args: [{ selector: 'bsu-breadcrumb', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!isLast) {\n<a fd-link (click)=\"onBreadcrumb()\">{{ breadCrumb.label | bbbTranslate }}</a>\n} @if (isLast) {\n<span>{{ breadCrumb.label | bbbTranslate }}</span>\n}\n" }]
38
- }], ctorParameters: () => [{ type: i1.Router }], propDecorators: { breadCrumb: [{
41
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { breadCrumb: [{
39
42
  type: Input
40
43
  }], allBreadCrumb: [{
41
44
  type: Input
@@ -44,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
44
47
  }], index: [{
45
48
  type: Input
46
49
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQWtCLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBUXJFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBTWxEOztPQUVHO0lBQ0gsWUFBb0IsT0FBZTtRQUMvQixLQUFLLEVBQUUsQ0FBQztRQURRLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFFbkMsQ0FBQztJQUNELFlBQVk7UUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QixPQUFPO1FBQ1gsQ0FBQztRQUNELDREQUE0RDtRQUM1RCxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDOUIsR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2pDLCtFQUErRTtRQUNuRixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0E1QlEsbUJBQW1CO2tHQUFuQixtQkFBbUIscUxDVmhDLDZLQUtBOzsyRkRLYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0ksZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU07MkVBR3RDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBCcmVhZENydW1iSW5mbyB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtYnJlYWRjcnVtYicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JyZWFkY3J1bWIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgYnJlYWRDcnVtYjogQnJlYWRDcnVtYkluZm87XG4gICAgQElucHV0KCkgYWxsQnJlYWRDcnVtYjogQnJlYWRDcnVtYkluZm9bXTtcbiAgICBASW5wdXQoKSBpc0xhc3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaW5kZXg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgb25CcmVhZGNydW1iKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuaW5kZXg7XG4gICAgICAgIGlmICghdGhpcy5hbGxCcmVhZENydW1iKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnN0IGxlbmd0aE9mQnJlYWRDcnVtYiA9IHRoaXMuYWxsQnJlYWRDcnVtYi5sZW5ndGggLSAxO1xuICAgICAgICBsZXQgdXJsID0gJyc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGluZGV4OyBpKyspIHtcbiAgICAgICAgICAgIHVybCArPSB0aGlzLmFsbEJyZWFkQ3J1bWJbaV0udXJsO1xuICAgICAgICAgICAgLy8gdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnLi4vJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5hbGxCcmVhZENydW1iW2ldLnJvdXRlIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XG4gICAgfVxufVxuIiwiQGlmICghaXNMYXN0KSB7XG48YSBmZC1saW5rIChjbGljayk9XCJvbkJyZWFkY3J1bWIoKVwiPnt7IGJyZWFkQ3J1bWIubGFiZWwgfCBiYmJUcmFuc2xhdGUgfX08L2E+XG59IEBpZiAoaXNMYXN0KSB7XG48c3Bhbj57eyBicmVhZENydW1iLmxhYmVsIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxufVxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsYUFBYSxFQUFrQixNQUFNLHNCQUFzQixDQUFDOzs7OztBQVFyRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQU1sRDs7T0FFRztJQUNILFlBQW9CLE9BQWUsRUFBWSxHQUFlLEVBQVksVUFBcUI7UUFDM0YsS0FBSyxFQUFFLENBQUM7UUFEUSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVksUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUFZLGVBQVUsR0FBVixVQUFVLENBQVc7UUFFM0YsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELFlBQVk7UUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QixPQUFPO1FBQ1gsQ0FBQztRQUNELDREQUE0RDtRQUM1RCxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDOUIsR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2pDLCtFQUErRTtRQUNuRixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0E3QlEsbUJBQW1CO2tHQUFuQixtQkFBbUIscUxDVmhDLDZLQUtBOzsyRkRLYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0ksZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU07NEhBR3RDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJyZWFkQ3J1bWJJbmZvIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1icmVhZGNydW1iJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBicmVhZENydW1iOiBCcmVhZENydW1iSW5mbztcbiAgICBASW5wdXQoKSBhbGxCcmVhZENydW1iOiBCcmVhZENydW1iSW5mb1tdO1xuICAgIEBJbnB1dCgpIGlzTGFzdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpbmRleDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciwgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZiwgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBfcmVuZGVyZXIyLnNldEF0dHJpYnV0ZSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAnZGlyJywgJ2x0cicpO1xuICAgIH1cbiAgICBvbkJyZWFkY3J1bWIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbmRleDtcbiAgICAgICAgaWYgKCF0aGlzLmFsbEJyZWFkQ3J1bWIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc3QgbGVuZ3RoT2ZCcmVhZENydW1iID0gdGhpcy5hbGxCcmVhZENydW1iLmxlbmd0aCAtIDE7XG4gICAgICAgIGxldCB1cmwgPSAnJztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gaW5kZXg7IGkrKykge1xuICAgICAgICAgICAgdXJsICs9IHRoaXMuYWxsQnJlYWRDcnVtYltpXS51cmw7XG4gICAgICAgICAgICAvLyB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWycuLi8nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLmFsbEJyZWFkQ3J1bWJbaV0ucm91dGUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgICB9XG59XG4iLCJAaWYgKCFpc0xhc3QpIHtcbjxhIGZkLWxpbmsgKGNsaWNrKT1cIm9uQnJlYWRjcnVtYigpXCI+e3sgYnJlYWRDcnVtYi5sYWJlbCB8IGJiYlRyYW5zbGF0ZSB9fTwvYT5cbn0gQGlmIChpc0xhc3QpIHtcbjxzcGFuPnt7IGJyZWFkQ3J1bWIubGFiZWwgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG59XG4iXX0=