barsa-sap-ui 1.0.270 → 1.0.272
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/barsa-search-form/barsa-search-form.component.mjs +1 -1
- package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +5 -3
- package/esm2020/lib/layout-actions/layout-actions.component.mjs +3 -3
- package/esm2020/lib/ui-form-panel/ui-form-panel.component.mjs +4 -3
- package/fesm2015/barsa-sap-ui.mjs +10 -7
- package/fesm2015/barsa-sap-ui.mjs.map +1 -1
- package/fesm2020/barsa-sap-ui.mjs +10 -7
- package/fesm2020/barsa-sap-ui.mjs.map +1 -1
- package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +2 -1
- package/lib/ui-form-panel/ui-form-panel.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -21,7 +21,7 @@ export class BarsaSearchFormComponent extends UiFormPanelComponent {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
BarsaSearchFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaSearchFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
BarsaSearchFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaSearchFormComponent, selector: "bsu-barsa-search-form", providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<bsu-fundamental-dynamic-form\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"toolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"toolbarItems$ | async | tlbButtons: 'inFooter':true\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [parameters]=\"parameters\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"layout94$ | async\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n (close)=\"onClose2()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-fundamental-dynamic-form>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "rtl", "hideTitle", "hideClose", "hidePin", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "modernTabs"], outputs: ["toolbarClick", "workflowChoiceClick", "close"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TlbButtonsPipe, name: "tlbButtons" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
24
|
+
BarsaSearchFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaSearchFormComponent, selector: "bsu-barsa-search-form", providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<bsu-fundamental-dynamic-form\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"toolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"toolbarItems$ | async | tlbButtons: 'inFooter':true\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [parameters]=\"parameters\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"layout94$ | async\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n (close)=\"onClose2()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-fundamental-dynamic-form>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "rtl", "hideTitle", "hideClose", "hidePin", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "portrait", "modernTabs"], outputs: ["toolbarClick", "workflowChoiceClick", "close"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TlbButtonsPipe, name: "tlbButtons" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaSearchFormComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
27
|
args: [{ selector: 'bsu-barsa-search-form', changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormPanelService], template: "<bsu-fundamental-dynamic-form\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"toolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"toolbarItems$ | async | tlbButtons: 'inFooter':true\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [parameters]=\"parameters\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"layout94$ | async\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n (close)=\"onClose2()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-fundamental-dynamic-form>\r\n" }]
|
|
@@ -72,10 +72,10 @@ export class FundamentalDynamicFormComponent extends BaseComponent {
|
|
|
72
72
|
onDynamicComponentEvents(e) { }
|
|
73
73
|
}
|
|
74
74
|
FundamentalDynamicFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FundamentalDynamicFormComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
75
|
-
FundamentalDynamicFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: { breadCrumbs: "breadCrumbs", toolbarVisible: "toolbarVisible", toolbarItems: "toolbarItems", layoutActions: "layoutActions", layout94: "layout94", parameters: "parameters", workflowPanelUi: "workflowPanelUi", context: "context", title: "title", subtitle: "subtitle", description: "description", facetList: "facetList", fieldDict: "fieldDict", removeHeaderBorder: "removeHeaderBorder", removeContentPadding: "removeContentPadding", isMobile: "isMobile", mo: "mo", avatar: "avatar", rtl: "rtl", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", modernTabs: "modernTabs" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true }, { propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, read: ViewContainerRef }, { propertyName: "headerAvatarRef", first: true, predicate: ["headerAvatar"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"mask\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\">\n <bsu-mask size=\"m\"></bsu-mask>\n</div>\n\n<fd-dynamic-page\n [size]=\"isMobile ? 'small' : 'large'\"\n [class.header-border]=\"!removeHeaderBorder\"\n [attr.isMobile]=\"isMobile\"\n [attr.contentIsPage]=\"contentIsPage\"\n>\n <fd-dynamic-page-header\n [class.simple-title]=\"!description\"\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\n [subtitle]=\"subtitle | bbbTranslate\"\n [class.p-b0]=\"removeContentPadding\"\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\n #titleRef\n >\n <fd-breadcrumb>\n <ng-container *ngIf=\"breadCrumbs\">\n <ng-container\n *ngFor=\"let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; let i = index; let last = last\"\n >\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 </ng-container>\n </ng-container>\n </fd-breadcrumb>\n <fd-dynamic-page-global-actions>\n <!-- global actions -->\n <fd-toolbar\n *ngIf=\"toolbarVisible\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n [class.firefox]=\"isFirefox\"\n >\n <ng-container *ngFor=\"let btn of toolbarItems; let i = index; let last = last; let first = first\">\n <fd-toolbar-separator\n [attr.i]=\"i\"\n [attr.last]=\"last\"\n [attr.first]=\"first\"\n *ngIf=\"(btn === '-' || btn.text === '-') && !last && !first\"\n ></fd-toolbar-separator>\n <ng-container *ngIf=\"btn.IAmMenu; else simpleButton\">\n <fd-split-button\n [dir]=\"dirValue\"\n [compact]=\"contentDensity === 'compact' ? true : false\"\n fd-toolbar-item\n [mainAction]=\"{ mainActionTitle: btn.text, keepMainAction: true }\"\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n [glyph]=\"(btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon) || 'slim-arrow-down'\"\n (click)=\"menu.open()\"\n >\n <fd-menu #menu>\n <li\n fd-menu-item\n *ngFor=\"let menuItem of btn.menu.items\"\n [disabled]=\"menuItem.disabled\"\n (click)=\"onToolbarClick(menuItem, menu)\"\n >\n <div fd-menu-interactive>\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"\n menuItem.newIcon ? menuItem.newIcon : menuItem.Data?.JsonExtraProp?.Icon\n \"\n >\n </fd-menu-addon>\n <img class=\"mr8\" *ngIf=\"menuItem.icon\" [src]=\"menuItem.icon\" />\n <span fd-menu-title>{{ menuItem.text }}</span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n </ng-container>\n <ng-template #simpleButton>\n <ng-container *ngIf=\"!(btn === '-' || btn.text === '-')\">\n <ng-container\n *ngTemplateOutlet=\"\n btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate;\n context: { $implicit: btn }\n \"\n ></ng-container>\n <ng-template #btnTemplate let-btn>\n <button\n fd-toolbar-item\n fd-button\n [disabled]=\"btn.disabled\"\n [fdType]=\"\n btn.isWorkflow\n ? 'positive'\n : btn.design\n ? btn.design\n : btn.Data?.JsonExtraProp?.Design\n \"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolbarClick(btn)\"\n >\n <img\n *ngIf=\"!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span>{{ btn.text }}</span>\n </button>\n </ng-template>\n <ng-template #dynamicBtnTemplate let-btn>\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [component]=\"btn.Data.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n (btnClick)=\"onToolbarClick(btn)\"\n ></bnrc-dynamic-form-toolbaritem>\n </ng-template>\n </ng-container>\n <!-- <button\n *ngIf=\"!(btn === '-' || btn.text === '-')\"\n fd-toolbar-item\n fd-button\n [buttonType]=\"\n btn.isWorkflow ? 'positive' : btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\n \"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolbarClick(btn)\"\n >\n <img\n *ngIf=\"!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span>{{ btn.text }}</span>\n </button> -->\n </ng-template>\n </ng-container>\n </fd-toolbar>\n <!-- <bsu-ui-form-panel-toolbar\n [buttons]=\"toolbarItems | tlbButtons: 'inFooter':false\"\n [size]=\"size\"\n [deviceSize]=\"deviceSize$ | async\"\n [visible]=\"toolbarVisible\"\n (toolClick)=\"onToolbarClick($event)\"\n ></bsu-ui-form-panel-toolbar> -->\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <!-- layout actions -->\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\n <fd-toolbar *ngIf=\"!hideClose\" fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\n <i class=\"sap-icon--decline\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-subheader\n *ngIf=\"description || facetList.length > 0 || workflowInfoText || avatar\"\n [class.header-no-description]=\"!(description || workflowInfoText)\"\n [class.no-pin]=\"hidePin\"\n [collapsible]=\"!!workflowInfoText || (facetList && facetList.length > 0)\"\n [pinnable]=\"true\"\n [collapsed]=\"(!facetList || facetList.length === 0) && !workflowInfoText\"\n >\n <fd-message-strip [type]=\"'warning'\" *ngIf=\"workflowInfoText\" [dismissible]=\"false\">\n {{ workflowInfoText | bbbTranslate }}\n </fd-message-strip>\n <fd-facet-group ariaLabel=\"Facet Group\">\n <fd-facet *ngIf=\"avatar\" type=\"image\">\n <fd-avatar\n title=\"avatar\"\n [glyph]=\"avatar\"\n [image]=\"!avatar?.FileId ? null : (avatar?.FileId | picFieldSrc: 'ID':null)\"\n [size]=\"deviceSize === 'xl' ? 'l' : deviceSize\"\n [transparent]=\"true\"\n ></fd-avatar>\n <!-- <div\n class=\"fd-avatar fd-avatar--circle\"\n [class]=\"'fd-avatar--' + (deviceSize === 'xl' ? 'l' : deviceSize)\"\n >\n <i *ngIf=\"avatar\" class=\"fd-avatar__icon\" [class]=\"avatar | sapFontClass\" role=\"presentation\"> </i>\n </div> -->\n </fd-facet>\n <fd-facet\n *ngFor=\"let facet of facetList\"\n [type]=\"facet.type\"\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\n >\n <fd-facet-content *ngFor=\"let item of facet.mo.ItemList?.MoDataList\">\n <label fd-form-label [colon]=\"true\" for=\"form-value-10\">{{ item.Title }}</label>\n <fd-text [text]=\"item.Value | facetValue\" id=\"form-value-10\"></fd-text>\n </fd-facet-content>\n <span\n *ngIf=\"\n !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector;\n else dynamicComponentTpl\n \"\n fd-object-status\n [status]=\"facet.mo.Status | facetValue\"\n [label]=\"facet.mo.Component?.Selector ? '' : (facet.mo.Text | facetValue)\"\n [large]=\"facet.mo.IsLarge\"\n [title]=\"facet.mo.Text | facetValue\"\n [aria-label]=\"facet.mo.Text | facetValue\"\n [glyph]=\"facet.mo.Icon\"\n >\n </span>\n <ng-template #dynamicComponentTpl>\n <bnrc-dynamic-component\n [class]=\"'fd-object-status--' + facet.mo.Status | facetValue\"\n [class.fd-object-status--large]=\"facet.mo.IsLarge\"\n [component]=\"facet.mo.Component\"\n [value]=\"facet.mo.Text\"\n ></bnrc-dynamic-component>\n </ng-template>\n <fd-object-number\n *ngIf=\"facet.mo.IsNumber && facet.type === 'key-value'\"\n [number]=\"facet.mo.Text | facetValue\"\n [large]=\"facet.mo.IsLarge\"\n [unit]=\"facet.mo.Unit | facetValue\"\n [status]=\"facet.mo.Status | facetValue\"\n [decimal]=\"facet.mo.Decimal | facetValue\"\n ></fd-object-number>\n\n <div *ngIf=\"facet.type === 'plain-text'\" [style.width.px]=\"facet.mo.Width\" style=\"white-space: normal\">\n <fd-text [text]=\"facet.mo.Text | facetValue\" hyphenation=\"auto\"></fd-text>\n </div>\n\n <fd-facet-content *ngIf=\"facet.type === 'rating-indicator'\">\n <fd-rating-indicator\n style=\"pointer-events: none\"\n size=\"md\"\n [dynamicTextIndicator]=\"facet.mo.Footer\"\n [displayMode]=\"true\"\n [value]=\"facet.mo | facetValue: facet.type\"\n ></fd-rating-indicator>\n </fd-facet-content>\n <div *ngIf=\"facet.type === 'progress'\" [style.width]=\"'10rem'\">\n <!-- <span fd-form-label>{{ facet.mo.Subtitle | facetValue }}</span> -->\n <fd-progress-indicator\n style=\"width: 10r em\"\n [state]=\"facet.mo.State\"\n [valueText]=\"(facet.mo | facetValue: facet.type) + ' \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647'\"\n [valueNow]=\"facet.mo | facetValue: facet.type\"\n [valueMax]=\"10\"\n [unit]=\"'\u0645\u0631\u062D\u0644\u0647'\"\n ></fd-progress-indicator>\n <!-- <ui5-progress-indicator\n style=\"width: 10rem\"\n [valueState]=\"facet.mo.State\"\n [value]=\"getNumber(facet.mo.Value)\"\n ></ui5-progress-indicator> -->\n </div>\n <div *ngIf=\"facet.type === 'microcharts'\">\n <label wrap>in progress ...</label>\n </div>\n </fd-facet>\n </fd-facet-group>\n <span *ngIf=\"description\">{{ description }}</span>\n </fd-dynamic-page-subheader>\n\n <fd-tab-list\n (selectedTabChange)=\"onTabChanged($event)\"\n *ngIf=\"!contentIsPage && modernTabs && modernTabs.length > 0 && !parameters?.LayoutComponent; else renderLayout\"\n [collapseOverflow]=\"true\"\n [stackContent]=\"false\"\n maxContentHeight=\"auto\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n #tablist\n >\n <fd-tab *ngFor=\"let tab of modernTabs; let i = index\" [title]=\"tab.Title!! | bbbTranslate\">\n <fd-dynamic-page-content [id]=\"tab.id\">\n <bsu-ly-tab-page [config]=\"tab\" [tablist]=\"tablist\"></bsu-ly-tab-page>\n </fd-dynamic-page-content>\n </fd-tab>\n </fd-tab-list>\n <ng-template #renderLayout>\n <fd-dynamic-page-content [class.no-padding]=\"removeContentPadding\" *ngIf=\"!contentIsPage\">\n <!-- <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root> -->\n <ng-container\n *ngTemplateOutlet=\"\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n </ng-template>\n <fd-dynamic-page-footer>\n <bsu-layout-actions\n [canSend]=\"canSend\"\n [buttons]=\"layoutActions\"\n [isMobile]=\"isMobile\"\n [workflowButtons]=\"workflowButtons\"\n [workflowButtonsComboMode]=\"workflowButtonsComboMode\"\n [deviceSize]=\"deviceSize\"\n [rtl]=\"rtl\"\n (toolClick)=\"onToolbarClick($event)\"\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\n >\n </bsu-layout-actions>\n </fd-dynamic-page-footer>\n</fd-dynamic-page>\n<ng-container *ngIf=\"contentIsPage\">\n <ng-container\n *ngTemplateOutlet=\"\n renderLayoutComponent;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n ></ng-container>\n</ng-container>\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n</ng-template>\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\n <bnrc-dynamic-form-component\n [component]=\"component\"\n [removeContentPadding]=\"removeContentPadding\"\n [breadCrumbs]=\"breadCrumbs\"\n [description]=\"description\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [toolbarItems]=\"toolbarItems\"\n [layoutActions]=\"layoutActions\"\n [facetList]=\"facetList\"\n [settings]=\"component.Settings\"\n [workflowPanelUi]=\"workflowPanelUi\"\n [isMobile]=\"isMobile\"\n [mo]=\"mo\"\n [layout94]=\"layout94\"\n [context]=\"context\"\n [rtl]=\"rtl\"\n [fieldDict]=\"fieldDict\"\n [mask]=\"mask\"\n [dirValue]=\"dirValue\"\n [deviceSize]=\"deviceSize\"\n [contentDensity]=\"contentDensity\"\n [modernTabs]=\"modernTabs\"\n [avatar]=\"avatar\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-form-component>\n</ng-template>\n", styles: [":host{display:block;height:auto;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormComponent, selector: "bnrc-dynamic-form-component", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "settings", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "component", type: i2.BaseDynamicComponent, selector: "bnrc-dynamic-component", inputs: ["component", "value"], outputs: ["events"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["containerElement", "reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i4.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["role", "ariaLabel", "background", "autoResponsive", "size", "offset", "expandContent"] }, { kind: "component", type: i6.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "subtitle"] }, { kind: "component", type: i6.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i6.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i6.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "role", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i6.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i6.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i7.FacetComponent, selector: "fd-facet", inputs: ["type", "facetTitle", "subtitle", "id", "alignEnd"] }, { kind: "component", type: i7.FacetGroupComponent, selector: "fd-facet-group", inputs: ["ariaLabel"] }, { kind: "component", type: i7.FacetContentComponent, selector: "fd-facet-content" }, { kind: "component", type: i8.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i9.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i9.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i9.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i9.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i9.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "glyph", "submenuIndicator", "ariaHidden"] }, { kind: "component", type: i10.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "dismissLabel", "width", "minWidth", "marginBottom"], outputs: ["onDismiss"] }, { kind: "component", type: i11.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "class", "ariaLabelledBy", "ariaLabel"] }, { kind: "component", type: i12.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { kind: "component", type: i13.RatingIndicatorComponent, selector: "fd-rating-indicator", inputs: ["class", "name", "ariaLabel", "ariaLabelledBy", "disabled", "displayMode", "indicatorCapacity", "allowHalves", "value", "totalRatings", "ratingAverage", "ratings", "displayAllRatings", "ratedIcon", "unratedIcon", "size", "dynamicTextIndicator"], outputs: ["ratingChanged"] }, { kind: "component", type: i14.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "directive", type: i14.DeprecatedSplitButtonCompactDirective, selector: "fd-split-button[compact]" }, { kind: "component", type: i15.TabListComponent, selector: "fd-tab-list", inputs: ["size", "mode", "collapseOverflow", "maxVisibleTabs", "stackContent", "maxContentHeight", "collapsibleTabs", "expandOverflowText", "defaultTab", "selectDefaultOnTabsChange"], outputs: ["selectedTabChange", "visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i15.TabPanelComponent, selector: "fd-tab", inputs: ["id", "ariaLabel", "ariaLabelledBy", "title", "count", "glyph", "header", "disabled", "tabState"], outputs: ["opened", "closed"] }, { kind: "component", type: i16.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "moreLabel", "lessLabel", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i17.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i17.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i17.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "component", type: i18.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "component", type: i19.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i20.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "component", type: i21.LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: ["renderItems", "tablist"] }, { kind: "component", type: i22.LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple"], outputs: ["workflowChoiceSelect"] }, { kind: "component", type: i23.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i2.HeaderFacetValuePipe, name: "facetValue" }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
75
|
+
FundamentalDynamicFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: { breadCrumbs: "breadCrumbs", toolbarVisible: "toolbarVisible", toolbarItems: "toolbarItems", layoutActions: "layoutActions", layout94: "layout94", parameters: "parameters", workflowPanelUi: "workflowPanelUi", context: "context", title: "title", subtitle: "subtitle", description: "description", facetList: "facetList", fieldDict: "fieldDict", removeHeaderBorder: "removeHeaderBorder", removeContentPadding: "removeContentPadding", isMobile: "isMobile", mo: "mo", avatar: "avatar", rtl: "rtl", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", portrait: "portrait", modernTabs: "modernTabs" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true }, { propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, read: ViewContainerRef }, { propertyName: "headerAvatarRef", first: true, predicate: ["headerAvatar"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"mask\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\">\n <bsu-mask size=\"m\"></bsu-mask>\n</div>\n\n<fd-dynamic-page\n [size]=\"isMobile ? 'small' : 'large'\"\n [class.header-border]=\"!removeHeaderBorder\"\n [attr.isMobile]=\"isMobile\"\n [attr.contentIsPage]=\"contentIsPage\"\n>\n <fd-dynamic-page-header\n [class.simple-title]=\"!description\"\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\n [subtitle]=\"subtitle | bbbTranslate\"\n [class.p-b0]=\"removeContentPadding\"\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\n #titleRef\n >\n <fd-breadcrumb>\n <ng-container *ngIf=\"breadCrumbs\">\n <ng-container\n *ngFor=\"let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; let i = index; let last = last\"\n >\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 </ng-container>\n </ng-container>\n </fd-breadcrumb>\n <fd-dynamic-page-global-actions>\n <!-- global actions -->\n <fd-toolbar\n *ngIf=\"toolbarVisible\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n [class.firefox]=\"isFirefox\"\n >\n <ng-container *ngFor=\"let btn of toolbarItems; let i = index; let last = last; let first = first\">\n <fd-toolbar-separator\n [attr.i]=\"i\"\n [attr.last]=\"last\"\n [attr.first]=\"first\"\n *ngIf=\"(btn === '-' || btn.text === '-') && !last && !first\"\n ></fd-toolbar-separator>\n <ng-container *ngIf=\"btn.IAmMenu; else simpleButton\">\n <fd-split-button\n [dir]=\"dirValue\"\n [compact]=\"contentDensity === 'compact' ? true : false\"\n fd-toolbar-item\n [mainAction]=\"{ mainActionTitle: btn.text, keepMainAction: true }\"\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n [glyph]=\"(btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon) || 'slim-arrow-down'\"\n (click)=\"menu.open()\"\n >\n <fd-menu #menu>\n <li\n fd-menu-item\n *ngFor=\"let menuItem of btn.menu.items\"\n [disabled]=\"menuItem.disabled\"\n (click)=\"onToolbarClick(menuItem, menu)\"\n >\n <div fd-menu-interactive>\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"\n menuItem.newIcon ? menuItem.newIcon : menuItem.Data?.JsonExtraProp?.Icon\n \"\n >\n </fd-menu-addon>\n <img class=\"mr8\" *ngIf=\"menuItem.icon\" [src]=\"menuItem.icon\" />\n <span fd-menu-title>{{ menuItem.text }}</span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n </ng-container>\n <ng-template #simpleButton>\n <ng-container *ngIf=\"!(btn === '-' || btn.text === '-')\">\n <ng-container\n *ngTemplateOutlet=\"\n btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate;\n context: { $implicit: btn }\n \"\n ></ng-container>\n <ng-template #btnTemplate let-btn>\n <button\n fd-toolbar-item\n fd-button\n [disabled]=\"btn.disabled\"\n [fdType]=\"\n btn.isWorkflow\n ? 'positive'\n : btn.design\n ? btn.design\n : btn.Data?.JsonExtraProp?.Design\n \"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolbarClick(btn)\"\n >\n <img\n *ngIf=\"!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span>{{ btn.text }}</span>\n </button>\n </ng-template>\n <ng-template #dynamicBtnTemplate let-btn>\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [component]=\"btn.Data.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n (btnClick)=\"onToolbarClick(btn)\"\n ></bnrc-dynamic-form-toolbaritem>\n </ng-template>\n </ng-container>\n <!-- <button\n *ngIf=\"!(btn === '-' || btn.text === '-')\"\n fd-toolbar-item\n fd-button\n [buttonType]=\"\n btn.isWorkflow ? 'positive' : btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\n \"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolbarClick(btn)\"\n >\n <img\n *ngIf=\"!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span>{{ btn.text }}</span>\n </button> -->\n </ng-template>\n </ng-container>\n </fd-toolbar>\n <!-- <bsu-ui-form-panel-toolbar\n [buttons]=\"toolbarItems | tlbButtons: 'inFooter':false\"\n [size]=\"size\"\n [deviceSize]=\"deviceSize$ | async\"\n [visible]=\"toolbarVisible\"\n (toolClick)=\"onToolbarClick($event)\"\n ></bsu-ui-form-panel-toolbar> -->\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <!-- layout actions -->\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\n <fd-toolbar *ngIf=\"!hideClose\" fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\n <i class=\"sap-icon--decline\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-subheader\n *ngIf=\"description || facetList.length > 0 || workflowInfoText || avatar\"\n [class.header-no-description]=\"!(description || workflowInfoText)\"\n [class.no-pin]=\"hidePin\"\n [collapsible]=\"!!workflowInfoText || (facetList && facetList.length > 0)\"\n [pinnable]=\"true\"\n [collapsed]=\"(!facetList || facetList.length === 0) && !workflowInfoText\"\n >\n <fd-message-strip [type]=\"'warning'\" *ngIf=\"workflowInfoText\" [dismissible]=\"false\">\n {{ workflowInfoText | bbbTranslate }}\n </fd-message-strip>\n <fd-facet-group ariaLabel=\"Facet Group\">\n <fd-facet *ngIf=\"avatar\" type=\"image\">\n <fd-avatar\n title=\"avatar\"\n [glyph]=\"avatar\"\n [image]=\"!avatar?.FileId ? null : (avatar?.FileId | picFieldSrc: 'ID':null)\"\n [size]=\"deviceSize === 'xl' ? 'l' : deviceSize\"\n [transparent]=\"true\"\n ></fd-avatar>\n <!-- <div\n class=\"fd-avatar fd-avatar--circle\"\n [class]=\"'fd-avatar--' + (deviceSize === 'xl' ? 'l' : deviceSize)\"\n >\n <i *ngIf=\"avatar\" class=\"fd-avatar__icon\" [class]=\"avatar | sapFontClass\" role=\"presentation\"> </i>\n </div> -->\n </fd-facet>\n <fd-facet\n *ngFor=\"let facet of facetList\"\n [type]=\"facet.type\"\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\n >\n <fd-facet-content *ngFor=\"let item of facet.mo.ItemList?.MoDataList\">\n <label fd-form-label [colon]=\"true\" for=\"form-value-10\">{{ item.Title }}</label>\n <fd-text [text]=\"item.Value | facetValue\" id=\"form-value-10\"></fd-text>\n </fd-facet-content>\n <span\n *ngIf=\"\n !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector;\n else dynamicComponentTpl\n \"\n fd-object-status\n [status]=\"facet.mo.Status | facetValue\"\n [label]=\"facet.mo.Component?.Selector ? '' : (facet.mo.Text | facetValue)\"\n [large]=\"facet.mo.IsLarge\"\n [title]=\"facet.mo.Text | facetValue\"\n [aria-label]=\"facet.mo.Text | facetValue\"\n [glyph]=\"facet.mo.Icon\"\n >\n </span>\n <ng-template #dynamicComponentTpl>\n <bnrc-dynamic-component\n [class]=\"'fd-object-status--' + facet.mo.Status | facetValue\"\n [class.fd-object-status--large]=\"facet.mo.IsLarge\"\n [component]=\"facet.mo.Component\"\n [value]=\"facet.mo.Text\"\n ></bnrc-dynamic-component>\n </ng-template>\n <fd-object-number\n *ngIf=\"facet.mo.IsNumber && facet.type === 'key-value'\"\n [number]=\"facet.mo.Text | facetValue\"\n [large]=\"facet.mo.IsLarge\"\n [unit]=\"facet.mo.Unit | facetValue\"\n [status]=\"facet.mo.Status | facetValue\"\n [decimal]=\"facet.mo.Decimal | facetValue\"\n ></fd-object-number>\n\n <div *ngIf=\"facet.type === 'plain-text'\" [style.width.px]=\"facet.mo.Width\" style=\"white-space: normal\">\n <fd-text [text]=\"facet.mo.Text | facetValue\" hyphenation=\"auto\"></fd-text>\n </div>\n\n <fd-facet-content *ngIf=\"facet.type === 'rating-indicator'\">\n <fd-rating-indicator\n style=\"pointer-events: none\"\n size=\"md\"\n [dynamicTextIndicator]=\"facet.mo.Footer\"\n [displayMode]=\"true\"\n [value]=\"facet.mo | facetValue: facet.type\"\n ></fd-rating-indicator>\n </fd-facet-content>\n <div *ngIf=\"facet.type === 'progress'\" [style.width]=\"'10rem'\">\n <!-- <span fd-form-label>{{ facet.mo.Subtitle | facetValue }}</span> -->\n <fd-progress-indicator\n style=\"width: 10r em\"\n [state]=\"facet.mo.State\"\n [valueText]=\"(facet.mo | facetValue: facet.type) + ' \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647'\"\n [valueNow]=\"facet.mo | facetValue: facet.type\"\n [valueMax]=\"10\"\n [unit]=\"'\u0645\u0631\u062D\u0644\u0647'\"\n ></fd-progress-indicator>\n <!-- <ui5-progress-indicator\n style=\"width: 10rem\"\n [valueState]=\"facet.mo.State\"\n [value]=\"getNumber(facet.mo.Value)\"\n ></ui5-progress-indicator> -->\n </div>\n <div *ngIf=\"facet.type === 'microcharts'\">\n <label wrap>in progress ...</label>\n </div>\n </fd-facet>\n </fd-facet-group>\n <span *ngIf=\"description\">{{ description }}</span>\n </fd-dynamic-page-subheader>\n\n <fd-tab-list\n (selectedTabChange)=\"onTabChanged($event)\"\n *ngIf=\"!contentIsPage && modernTabs && modernTabs.length > 0 && !parameters?.LayoutComponent; else renderLayout\"\n [collapseOverflow]=\"true\"\n [stackContent]=\"false\"\n maxContentHeight=\"auto\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n #tablist\n >\n <fd-tab *ngFor=\"let tab of modernTabs; let i = index\" [title]=\"tab.Title!! | bbbTranslate\">\n <fd-dynamic-page-content [id]=\"tab.id\">\n <bsu-ly-tab-page [config]=\"tab\" [tablist]=\"tablist\"></bsu-ly-tab-page>\n </fd-dynamic-page-content>\n </fd-tab>\n </fd-tab-list>\n <ng-template #renderLayout>\n <fd-dynamic-page-content [class.no-padding]=\"removeContentPadding\" *ngIf=\"!contentIsPage\">\n <!-- <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root> -->\n <ng-container\n *ngTemplateOutlet=\"\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n </ng-template>\n <fd-dynamic-page-footer>\n <bsu-layout-actions\n [canSend]=\"canSend\"\n [buttons]=\"layoutActions\"\n [isMobile]=\"isMobile\"\n [portrait]=\"portrait\"\n [workflowButtons]=\"workflowButtons\"\n [workflowButtonsComboMode]=\"workflowButtonsComboMode\"\n [deviceSize]=\"deviceSize\"\n [rtl]=\"rtl\"\n (toolClick)=\"onToolbarClick($event)\"\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\n >\n </bsu-layout-actions>\n </fd-dynamic-page-footer>\n</fd-dynamic-page>\n<ng-container *ngIf=\"contentIsPage\">\n <ng-container\n *ngTemplateOutlet=\"\n renderLayoutComponent;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n ></ng-container>\n</ng-container>\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n</ng-template>\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\n <bnrc-dynamic-form-component\n [component]=\"component\"\n [removeContentPadding]=\"removeContentPadding\"\n [breadCrumbs]=\"breadCrumbs\"\n [description]=\"description\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [toolbarItems]=\"toolbarItems\"\n [layoutActions]=\"layoutActions\"\n [facetList]=\"facetList\"\n [settings]=\"component.Settings\"\n [workflowPanelUi]=\"workflowPanelUi\"\n [isMobile]=\"isMobile\"\n [mo]=\"mo\"\n [layout94]=\"layout94\"\n [context]=\"context\"\n [rtl]=\"rtl\"\n [fieldDict]=\"fieldDict\"\n [mask]=\"mask\"\n [dirValue]=\"dirValue\"\n [deviceSize]=\"deviceSize\"\n [contentDensity]=\"contentDensity\"\n [modernTabs]=\"modernTabs\"\n [avatar]=\"avatar\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-form-component>\n</ng-template>\n", styles: [":host{display:block;height:auto;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormComponent, selector: "bnrc-dynamic-form-component", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "settings", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "component", type: i2.BaseDynamicComponent, selector: "bnrc-dynamic-component", inputs: ["component", "value"], outputs: ["events"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["containerElement", "reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i4.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["role", "ariaLabel", "background", "autoResponsive", "size", "offset", "expandContent"] }, { kind: "component", type: i6.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "subtitle"] }, { kind: "component", type: i6.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i6.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i6.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "role", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i6.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i6.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i7.FacetComponent, selector: "fd-facet", inputs: ["type", "facetTitle", "subtitle", "id", "alignEnd"] }, { kind: "component", type: i7.FacetGroupComponent, selector: "fd-facet-group", inputs: ["ariaLabel"] }, { kind: "component", type: i7.FacetContentComponent, selector: "fd-facet-content" }, { kind: "component", type: i8.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i9.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i9.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i9.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i9.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i9.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "glyph", "submenuIndicator", "ariaHidden"] }, { kind: "component", type: i10.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "dismissLabel", "width", "minWidth", "marginBottom"], outputs: ["onDismiss"] }, { kind: "component", type: i11.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "class", "ariaLabelledBy", "ariaLabel"] }, { kind: "component", type: i12.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { kind: "component", type: i13.RatingIndicatorComponent, selector: "fd-rating-indicator", inputs: ["class", "name", "ariaLabel", "ariaLabelledBy", "disabled", "displayMode", "indicatorCapacity", "allowHalves", "value", "totalRatings", "ratingAverage", "ratings", "displayAllRatings", "ratedIcon", "unratedIcon", "size", "dynamicTextIndicator"], outputs: ["ratingChanged"] }, { kind: "component", type: i14.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "directive", type: i14.DeprecatedSplitButtonCompactDirective, selector: "fd-split-button[compact]" }, { kind: "component", type: i15.TabListComponent, selector: "fd-tab-list", inputs: ["size", "mode", "collapseOverflow", "maxVisibleTabs", "stackContent", "maxContentHeight", "collapsibleTabs", "expandOverflowText", "defaultTab", "selectDefaultOnTabsChange"], outputs: ["selectedTabChange", "visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i15.TabPanelComponent, selector: "fd-tab", inputs: ["id", "ariaLabel", "ariaLabelledBy", "title", "count", "glyph", "header", "disabled", "tabState"], outputs: ["opened", "closed"] }, { kind: "component", type: i16.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "moreLabel", "lessLabel", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i17.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i17.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i17.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "component", type: i18.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "component", type: i19.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i20.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "component", type: i21.LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: ["renderItems", "tablist"] }, { kind: "component", type: i22.LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple"], outputs: ["workflowChoiceSelect"] }, { kind: "component", type: i23.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i2.HeaderFacetValuePipe, name: "facetValue" }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
76
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FundamentalDynamicFormComponent, decorators: [{
|
|
77
77
|
type: Component,
|
|
78
|
-
args: [{ selector: 'bsu-fundamental-dynamic-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"mask\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\">\n <bsu-mask size=\"m\"></bsu-mask>\n</div>\n\n<fd-dynamic-page\n [size]=\"isMobile ? 'small' : 'large'\"\n [class.header-border]=\"!removeHeaderBorder\"\n [attr.isMobile]=\"isMobile\"\n [attr.contentIsPage]=\"contentIsPage\"\n>\n <fd-dynamic-page-header\n [class.simple-title]=\"!description\"\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\n [subtitle]=\"subtitle | bbbTranslate\"\n [class.p-b0]=\"removeContentPadding\"\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\n #titleRef\n >\n <fd-breadcrumb>\n <ng-container *ngIf=\"breadCrumbs\">\n <ng-container\n *ngFor=\"let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; let i = index; let last = last\"\n >\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 </ng-container>\n </ng-container>\n </fd-breadcrumb>\n <fd-dynamic-page-global-actions>\n <!-- global actions -->\n <fd-toolbar\n *ngIf=\"toolbarVisible\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n [class.firefox]=\"isFirefox\"\n >\n <ng-container *ngFor=\"let btn of toolbarItems; let i = index; let last = last; let first = first\">\n <fd-toolbar-separator\n [attr.i]=\"i\"\n [attr.last]=\"last\"\n [attr.first]=\"first\"\n *ngIf=\"(btn === '-' || btn.text === '-') && !last && !first\"\n ></fd-toolbar-separator>\n <ng-container *ngIf=\"btn.IAmMenu; else simpleButton\">\n <fd-split-button\n [dir]=\"dirValue\"\n [compact]=\"contentDensity === 'compact' ? true : false\"\n fd-toolbar-item\n [mainAction]=\"{ mainActionTitle: btn.text, keepMainAction: true }\"\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n [glyph]=\"(btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon) || 'slim-arrow-down'\"\n (click)=\"menu.open()\"\n >\n <fd-menu #menu>\n <li\n fd-menu-item\n *ngFor=\"let menuItem of btn.menu.items\"\n [disabled]=\"menuItem.disabled\"\n (click)=\"onToolbarClick(menuItem, menu)\"\n >\n <div fd-menu-interactive>\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"\n menuItem.newIcon ? menuItem.newIcon : menuItem.Data?.JsonExtraProp?.Icon\n \"\n >\n </fd-menu-addon>\n <img class=\"mr8\" *ngIf=\"menuItem.icon\" [src]=\"menuItem.icon\" />\n <span fd-menu-title>{{ menuItem.text }}</span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n </ng-container>\n <ng-template #simpleButton>\n <ng-container *ngIf=\"!(btn === '-' || btn.text === '-')\">\n <ng-container\n *ngTemplateOutlet=\"\n btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate;\n context: { $implicit: btn }\n \"\n ></ng-container>\n <ng-template #btnTemplate let-btn>\n <button\n fd-toolbar-item\n fd-button\n [disabled]=\"btn.disabled\"\n [fdType]=\"\n btn.isWorkflow\n ? 'positive'\n : btn.design\n ? btn.design\n : btn.Data?.JsonExtraProp?.Design\n \"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolbarClick(btn)\"\n >\n <img\n *ngIf=\"!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span>{{ btn.text }}</span>\n </button>\n </ng-template>\n <ng-template #dynamicBtnTemplate let-btn>\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [component]=\"btn.Data.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n (btnClick)=\"onToolbarClick(btn)\"\n ></bnrc-dynamic-form-toolbaritem>\n </ng-template>\n </ng-container>\n <!-- <button\n *ngIf=\"!(btn === '-' || btn.text === '-')\"\n fd-toolbar-item\n fd-button\n [buttonType]=\"\n btn.isWorkflow ? 'positive' : btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\n \"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolbarClick(btn)\"\n >\n <img\n *ngIf=\"!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span>{{ btn.text }}</span>\n </button> -->\n </ng-template>\n </ng-container>\n </fd-toolbar>\n <!-- <bsu-ui-form-panel-toolbar\n [buttons]=\"toolbarItems | tlbButtons: 'inFooter':false\"\n [size]=\"size\"\n [deviceSize]=\"deviceSize$ | async\"\n [visible]=\"toolbarVisible\"\n (toolClick)=\"onToolbarClick($event)\"\n ></bsu-ui-form-panel-toolbar> -->\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <!-- layout actions -->\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\n <fd-toolbar *ngIf=\"!hideClose\" fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\n <i class=\"sap-icon--decline\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-subheader\n *ngIf=\"description || facetList.length > 0 || workflowInfoText || avatar\"\n [class.header-no-description]=\"!(description || workflowInfoText)\"\n [class.no-pin]=\"hidePin\"\n [collapsible]=\"!!workflowInfoText || (facetList && facetList.length > 0)\"\n [pinnable]=\"true\"\n [collapsed]=\"(!facetList || facetList.length === 0) && !workflowInfoText\"\n >\n <fd-message-strip [type]=\"'warning'\" *ngIf=\"workflowInfoText\" [dismissible]=\"false\">\n {{ workflowInfoText | bbbTranslate }}\n </fd-message-strip>\n <fd-facet-group ariaLabel=\"Facet Group\">\n <fd-facet *ngIf=\"avatar\" type=\"image\">\n <fd-avatar\n title=\"avatar\"\n [glyph]=\"avatar\"\n [image]=\"!avatar?.FileId ? null : (avatar?.FileId | picFieldSrc: 'ID':null)\"\n [size]=\"deviceSize === 'xl' ? 'l' : deviceSize\"\n [transparent]=\"true\"\n ></fd-avatar>\n <!-- <div\n class=\"fd-avatar fd-avatar--circle\"\n [class]=\"'fd-avatar--' + (deviceSize === 'xl' ? 'l' : deviceSize)\"\n >\n <i *ngIf=\"avatar\" class=\"fd-avatar__icon\" [class]=\"avatar | sapFontClass\" role=\"presentation\"> </i>\n </div> -->\n </fd-facet>\n <fd-facet\n *ngFor=\"let facet of facetList\"\n [type]=\"facet.type\"\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\n >\n <fd-facet-content *ngFor=\"let item of facet.mo.ItemList?.MoDataList\">\n <label fd-form-label [colon]=\"true\" for=\"form-value-10\">{{ item.Title }}</label>\n <fd-text [text]=\"item.Value | facetValue\" id=\"form-value-10\"></fd-text>\n </fd-facet-content>\n <span\n *ngIf=\"\n !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector;\n else dynamicComponentTpl\n \"\n fd-object-status\n [status]=\"facet.mo.Status | facetValue\"\n [label]=\"facet.mo.Component?.Selector ? '' : (facet.mo.Text | facetValue)\"\n [large]=\"facet.mo.IsLarge\"\n [title]=\"facet.mo.Text | facetValue\"\n [aria-label]=\"facet.mo.Text | facetValue\"\n [glyph]=\"facet.mo.Icon\"\n >\n </span>\n <ng-template #dynamicComponentTpl>\n <bnrc-dynamic-component\n [class]=\"'fd-object-status--' + facet.mo.Status | facetValue\"\n [class.fd-object-status--large]=\"facet.mo.IsLarge\"\n [component]=\"facet.mo.Component\"\n [value]=\"facet.mo.Text\"\n ></bnrc-dynamic-component>\n </ng-template>\n <fd-object-number\n *ngIf=\"facet.mo.IsNumber && facet.type === 'key-value'\"\n [number]=\"facet.mo.Text | facetValue\"\n [large]=\"facet.mo.IsLarge\"\n [unit]=\"facet.mo.Unit | facetValue\"\n [status]=\"facet.mo.Status | facetValue\"\n [decimal]=\"facet.mo.Decimal | facetValue\"\n ></fd-object-number>\n\n <div *ngIf=\"facet.type === 'plain-text'\" [style.width.px]=\"facet.mo.Width\" style=\"white-space: normal\">\n <fd-text [text]=\"facet.mo.Text | facetValue\" hyphenation=\"auto\"></fd-text>\n </div>\n\n <fd-facet-content *ngIf=\"facet.type === 'rating-indicator'\">\n <fd-rating-indicator\n style=\"pointer-events: none\"\n size=\"md\"\n [dynamicTextIndicator]=\"facet.mo.Footer\"\n [displayMode]=\"true\"\n [value]=\"facet.mo | facetValue: facet.type\"\n ></fd-rating-indicator>\n </fd-facet-content>\n <div *ngIf=\"facet.type === 'progress'\" [style.width]=\"'10rem'\">\n <!-- <span fd-form-label>{{ facet.mo.Subtitle | facetValue }}</span> -->\n <fd-progress-indicator\n style=\"width: 10r em\"\n [state]=\"facet.mo.State\"\n [valueText]=\"(facet.mo | facetValue: facet.type) + ' \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647'\"\n [valueNow]=\"facet.mo | facetValue: facet.type\"\n [valueMax]=\"10\"\n [unit]=\"'\u0645\u0631\u062D\u0644\u0647'\"\n ></fd-progress-indicator>\n <!-- <ui5-progress-indicator\n style=\"width: 10rem\"\n [valueState]=\"facet.mo.State\"\n [value]=\"getNumber(facet.mo.Value)\"\n ></ui5-progress-indicator> -->\n </div>\n <div *ngIf=\"facet.type === 'microcharts'\">\n <label wrap>in progress ...</label>\n </div>\n </fd-facet>\n </fd-facet-group>\n <span *ngIf=\"description\">{{ description }}</span>\n </fd-dynamic-page-subheader>\n\n <fd-tab-list\n (selectedTabChange)=\"onTabChanged($event)\"\n *ngIf=\"!contentIsPage && modernTabs && modernTabs.length > 0 && !parameters?.LayoutComponent; else renderLayout\"\n [collapseOverflow]=\"true\"\n [stackContent]=\"false\"\n maxContentHeight=\"auto\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n #tablist\n >\n <fd-tab *ngFor=\"let tab of modernTabs; let i = index\" [title]=\"tab.Title!! | bbbTranslate\">\n <fd-dynamic-page-content [id]=\"tab.id\">\n <bsu-ly-tab-page [config]=\"tab\" [tablist]=\"tablist\"></bsu-ly-tab-page>\n </fd-dynamic-page-content>\n </fd-tab>\n </fd-tab-list>\n <ng-template #renderLayout>\n <fd-dynamic-page-content [class.no-padding]=\"removeContentPadding\" *ngIf=\"!contentIsPage\">\n <!-- <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root> -->\n <ng-container\n *ngTemplateOutlet=\"\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n </ng-template>\n <fd-dynamic-page-footer>\n <bsu-layout-actions\n [canSend]=\"canSend\"\n [buttons]=\"layoutActions\"\n [isMobile]=\"isMobile\"\n [workflowButtons]=\"workflowButtons\"\n [workflowButtonsComboMode]=\"workflowButtonsComboMode\"\n [deviceSize]=\"deviceSize\"\n [rtl]=\"rtl\"\n (toolClick)=\"onToolbarClick($event)\"\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\n >\n </bsu-layout-actions>\n </fd-dynamic-page-footer>\n</fd-dynamic-page>\n<ng-container *ngIf=\"contentIsPage\">\n <ng-container\n *ngTemplateOutlet=\"\n renderLayoutComponent;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n ></ng-container>\n</ng-container>\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n</ng-template>\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\n <bnrc-dynamic-form-component\n [component]=\"component\"\n [removeContentPadding]=\"removeContentPadding\"\n [breadCrumbs]=\"breadCrumbs\"\n [description]=\"description\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [toolbarItems]=\"toolbarItems\"\n [layoutActions]=\"layoutActions\"\n [facetList]=\"facetList\"\n [settings]=\"component.Settings\"\n [workflowPanelUi]=\"workflowPanelUi\"\n [isMobile]=\"isMobile\"\n [mo]=\"mo\"\n [layout94]=\"layout94\"\n [context]=\"context\"\n [rtl]=\"rtl\"\n [fieldDict]=\"fieldDict\"\n [mask]=\"mask\"\n [dirValue]=\"dirValue\"\n [deviceSize]=\"deviceSize\"\n [contentDensity]=\"contentDensity\"\n [modernTabs]=\"modernTabs\"\n [avatar]=\"avatar\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-form-component>\n</ng-template>\n", styles: [":host{display:block;height:auto;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"] }]
|
|
78
|
+
args: [{ selector: 'bsu-fundamental-dynamic-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"mask\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\">\n <bsu-mask size=\"m\"></bsu-mask>\n</div>\n\n<fd-dynamic-page\n [size]=\"isMobile ? 'small' : 'large'\"\n [class.header-border]=\"!removeHeaderBorder\"\n [attr.isMobile]=\"isMobile\"\n [attr.contentIsPage]=\"contentIsPage\"\n>\n <fd-dynamic-page-header\n [class.simple-title]=\"!description\"\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\n [subtitle]=\"subtitle | bbbTranslate\"\n [class.p-b0]=\"removeContentPadding\"\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\n #titleRef\n >\n <fd-breadcrumb>\n <ng-container *ngIf=\"breadCrumbs\">\n <ng-container\n *ngFor=\"let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; let i = index; let last = last\"\n >\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 </ng-container>\n </ng-container>\n </fd-breadcrumb>\n <fd-dynamic-page-global-actions>\n <!-- global actions -->\n <fd-toolbar\n *ngIf=\"toolbarVisible\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n [class.firefox]=\"isFirefox\"\n >\n <ng-container *ngFor=\"let btn of toolbarItems; let i = index; let last = last; let first = first\">\n <fd-toolbar-separator\n [attr.i]=\"i\"\n [attr.last]=\"last\"\n [attr.first]=\"first\"\n *ngIf=\"(btn === '-' || btn.text === '-') && !last && !first\"\n ></fd-toolbar-separator>\n <ng-container *ngIf=\"btn.IAmMenu; else simpleButton\">\n <fd-split-button\n [dir]=\"dirValue\"\n [compact]=\"contentDensity === 'compact' ? true : false\"\n fd-toolbar-item\n [mainAction]=\"{ mainActionTitle: btn.text, keepMainAction: true }\"\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\n [glyph]=\"(btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon) || 'slim-arrow-down'\"\n (click)=\"menu.open()\"\n >\n <fd-menu #menu>\n <li\n fd-menu-item\n *ngFor=\"let menuItem of btn.menu.items\"\n [disabled]=\"menuItem.disabled\"\n (click)=\"onToolbarClick(menuItem, menu)\"\n >\n <div fd-menu-interactive>\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"\n menuItem.newIcon ? menuItem.newIcon : menuItem.Data?.JsonExtraProp?.Icon\n \"\n >\n </fd-menu-addon>\n <img class=\"mr8\" *ngIf=\"menuItem.icon\" [src]=\"menuItem.icon\" />\n <span fd-menu-title>{{ menuItem.text }}</span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n </ng-container>\n <ng-template #simpleButton>\n <ng-container *ngIf=\"!(btn === '-' || btn.text === '-')\">\n <ng-container\n *ngTemplateOutlet=\"\n btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate;\n context: { $implicit: btn }\n \"\n ></ng-container>\n <ng-template #btnTemplate let-btn>\n <button\n fd-toolbar-item\n fd-button\n [disabled]=\"btn.disabled\"\n [fdType]=\"\n btn.isWorkflow\n ? 'positive'\n : btn.design\n ? btn.design\n : btn.Data?.JsonExtraProp?.Design\n \"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolbarClick(btn)\"\n >\n <img\n *ngIf=\"!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span>{{ btn.text }}</span>\n </button>\n </ng-template>\n <ng-template #dynamicBtnTemplate let-btn>\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [component]=\"btn.Data.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n (btnClick)=\"onToolbarClick(btn)\"\n ></bnrc-dynamic-form-toolbaritem>\n </ng-template>\n </ng-container>\n <!-- <button\n *ngIf=\"!(btn === '-' || btn.text === '-')\"\n fd-toolbar-item\n fd-button\n [buttonType]=\"\n btn.isWorkflow ? 'positive' : btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\n \"\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\n (click)=\"onToolbarClick(btn)\"\n >\n <img\n *ngIf=\"!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span>{{ btn.text }}</span>\n </button> -->\n </ng-template>\n </ng-container>\n </fd-toolbar>\n <!-- <bsu-ui-form-panel-toolbar\n [buttons]=\"toolbarItems | tlbButtons: 'inFooter':false\"\n [size]=\"size\"\n [deviceSize]=\"deviceSize$ | async\"\n [visible]=\"toolbarVisible\"\n (toolClick)=\"onToolbarClick($event)\"\n ></bsu-ui-form-panel-toolbar> -->\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <!-- layout actions -->\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\n <fd-toolbar *ngIf=\"!hideClose\" fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\n <i class=\"sap-icon--decline\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-subheader\n *ngIf=\"description || facetList.length > 0 || workflowInfoText || avatar\"\n [class.header-no-description]=\"!(description || workflowInfoText)\"\n [class.no-pin]=\"hidePin\"\n [collapsible]=\"!!workflowInfoText || (facetList && facetList.length > 0)\"\n [pinnable]=\"true\"\n [collapsed]=\"(!facetList || facetList.length === 0) && !workflowInfoText\"\n >\n <fd-message-strip [type]=\"'warning'\" *ngIf=\"workflowInfoText\" [dismissible]=\"false\">\n {{ workflowInfoText | bbbTranslate }}\n </fd-message-strip>\n <fd-facet-group ariaLabel=\"Facet Group\">\n <fd-facet *ngIf=\"avatar\" type=\"image\">\n <fd-avatar\n title=\"avatar\"\n [glyph]=\"avatar\"\n [image]=\"!avatar?.FileId ? null : (avatar?.FileId | picFieldSrc: 'ID':null)\"\n [size]=\"deviceSize === 'xl' ? 'l' : deviceSize\"\n [transparent]=\"true\"\n ></fd-avatar>\n <!-- <div\n class=\"fd-avatar fd-avatar--circle\"\n [class]=\"'fd-avatar--' + (deviceSize === 'xl' ? 'l' : deviceSize)\"\n >\n <i *ngIf=\"avatar\" class=\"fd-avatar__icon\" [class]=\"avatar | sapFontClass\" role=\"presentation\"> </i>\n </div> -->\n </fd-facet>\n <fd-facet\n *ngFor=\"let facet of facetList\"\n [type]=\"facet.type\"\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\n >\n <fd-facet-content *ngFor=\"let item of facet.mo.ItemList?.MoDataList\">\n <label fd-form-label [colon]=\"true\" for=\"form-value-10\">{{ item.Title }}</label>\n <fd-text [text]=\"item.Value | facetValue\" id=\"form-value-10\"></fd-text>\n </fd-facet-content>\n <span\n *ngIf=\"\n !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector;\n else dynamicComponentTpl\n \"\n fd-object-status\n [status]=\"facet.mo.Status | facetValue\"\n [label]=\"facet.mo.Component?.Selector ? '' : (facet.mo.Text | facetValue)\"\n [large]=\"facet.mo.IsLarge\"\n [title]=\"facet.mo.Text | facetValue\"\n [aria-label]=\"facet.mo.Text | facetValue\"\n [glyph]=\"facet.mo.Icon\"\n >\n </span>\n <ng-template #dynamicComponentTpl>\n <bnrc-dynamic-component\n [class]=\"'fd-object-status--' + facet.mo.Status | facetValue\"\n [class.fd-object-status--large]=\"facet.mo.IsLarge\"\n [component]=\"facet.mo.Component\"\n [value]=\"facet.mo.Text\"\n ></bnrc-dynamic-component>\n </ng-template>\n <fd-object-number\n *ngIf=\"facet.mo.IsNumber && facet.type === 'key-value'\"\n [number]=\"facet.mo.Text | facetValue\"\n [large]=\"facet.mo.IsLarge\"\n [unit]=\"facet.mo.Unit | facetValue\"\n [status]=\"facet.mo.Status | facetValue\"\n [decimal]=\"facet.mo.Decimal | facetValue\"\n ></fd-object-number>\n\n <div *ngIf=\"facet.type === 'plain-text'\" [style.width.px]=\"facet.mo.Width\" style=\"white-space: normal\">\n <fd-text [text]=\"facet.mo.Text | facetValue\" hyphenation=\"auto\"></fd-text>\n </div>\n\n <fd-facet-content *ngIf=\"facet.type === 'rating-indicator'\">\n <fd-rating-indicator\n style=\"pointer-events: none\"\n size=\"md\"\n [dynamicTextIndicator]=\"facet.mo.Footer\"\n [displayMode]=\"true\"\n [value]=\"facet.mo | facetValue: facet.type\"\n ></fd-rating-indicator>\n </fd-facet-content>\n <div *ngIf=\"facet.type === 'progress'\" [style.width]=\"'10rem'\">\n <!-- <span fd-form-label>{{ facet.mo.Subtitle | facetValue }}</span> -->\n <fd-progress-indicator\n style=\"width: 10r em\"\n [state]=\"facet.mo.State\"\n [valueText]=\"(facet.mo | facetValue: facet.type) + ' \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647'\"\n [valueNow]=\"facet.mo | facetValue: facet.type\"\n [valueMax]=\"10\"\n [unit]=\"'\u0645\u0631\u062D\u0644\u0647'\"\n ></fd-progress-indicator>\n <!-- <ui5-progress-indicator\n style=\"width: 10rem\"\n [valueState]=\"facet.mo.State\"\n [value]=\"getNumber(facet.mo.Value)\"\n ></ui5-progress-indicator> -->\n </div>\n <div *ngIf=\"facet.type === 'microcharts'\">\n <label wrap>in progress ...</label>\n </div>\n </fd-facet>\n </fd-facet-group>\n <span *ngIf=\"description\">{{ description }}</span>\n </fd-dynamic-page-subheader>\n\n <fd-tab-list\n (selectedTabChange)=\"onTabChanged($event)\"\n *ngIf=\"!contentIsPage && modernTabs && modernTabs.length > 0 && !parameters?.LayoutComponent; else renderLayout\"\n [collapseOverflow]=\"true\"\n [stackContent]=\"false\"\n maxContentHeight=\"auto\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n #tablist\n >\n <fd-tab *ngFor=\"let tab of modernTabs; let i = index\" [title]=\"tab.Title!! | bbbTranslate\">\n <fd-dynamic-page-content [id]=\"tab.id\">\n <bsu-ly-tab-page [config]=\"tab\" [tablist]=\"tablist\"></bsu-ly-tab-page>\n </fd-dynamic-page-content>\n </fd-tab>\n </fd-tab-list>\n <ng-template #renderLayout>\n <fd-dynamic-page-content [class.no-padding]=\"removeContentPadding\" *ngIf=\"!contentIsPage\">\n <!-- <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root> -->\n <ng-container\n *ngTemplateOutlet=\"\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n </ng-template>\n <fd-dynamic-page-footer>\n <bsu-layout-actions\n [canSend]=\"canSend\"\n [buttons]=\"layoutActions\"\n [isMobile]=\"isMobile\"\n [portrait]=\"portrait\"\n [workflowButtons]=\"workflowButtons\"\n [workflowButtonsComboMode]=\"workflowButtonsComboMode\"\n [deviceSize]=\"deviceSize\"\n [rtl]=\"rtl\"\n (toolClick)=\"onToolbarClick($event)\"\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\n >\n </bsu-layout-actions>\n </fd-dynamic-page-footer>\n</fd-dynamic-page>\n<ng-container *ngIf=\"contentIsPage\">\n <ng-container\n *ngTemplateOutlet=\"\n renderLayoutComponent;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n ></ng-container>\n</ng-container>\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n</ng-template>\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\n <bnrc-dynamic-form-component\n [component]=\"component\"\n [removeContentPadding]=\"removeContentPadding\"\n [breadCrumbs]=\"breadCrumbs\"\n [description]=\"description\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [toolbarItems]=\"toolbarItems\"\n [layoutActions]=\"layoutActions\"\n [facetList]=\"facetList\"\n [settings]=\"component.Settings\"\n [workflowPanelUi]=\"workflowPanelUi\"\n [isMobile]=\"isMobile\"\n [mo]=\"mo\"\n [layout94]=\"layout94\"\n [context]=\"context\"\n [rtl]=\"rtl\"\n [fieldDict]=\"fieldDict\"\n [mask]=\"mask\"\n [dirValue]=\"dirValue\"\n [deviceSize]=\"deviceSize\"\n [contentDensity]=\"contentDensity\"\n [modernTabs]=\"modernTabs\"\n [avatar]=\"avatar\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-form-component>\n</ng-template>\n", styles: [":host{display:block;height:auto;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"] }]
|
|
79
79
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _dynamicPageComponent: [{
|
|
80
80
|
type: ViewChild,
|
|
81
81
|
args: [DynamicPageComponent]
|
|
@@ -141,6 +141,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
141
141
|
type: Input
|
|
142
142
|
}], dirValue: [{
|
|
143
143
|
type: Input
|
|
144
|
+
}], portrait: [{
|
|
145
|
+
type: Input
|
|
144
146
|
}], modernTabs: [{
|
|
145
147
|
type: Input
|
|
146
148
|
}], titleRef: [{
|
|
@@ -150,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
150
152
|
type: ViewChild,
|
|
151
153
|
args: ['headerAvatar']
|
|
152
154
|
}] } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS9mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0Isb0JBQW9CLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7QUFFaEcsT0FBTyxFQUFFLGFBQWEsRUFBc0QsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRcEgsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGFBQWE7SUE0QzlELFlBQW1CLEVBQWM7UUFDN0IsS0FBSyxFQUFFLENBQUM7UUFETyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBMUN2QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdkMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN4RCxvQkFBb0I7UUFDVixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQW9CNUIsY0FBUyxHQUFHLElBQUksQ0FBQztRQWUxQiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFNOUIsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxLQUFkLElBQUksQ0FBQyxTQUFTLEdBQUssRUFBRSxFQUFDO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDO1FBQzFFLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDO1FBQzFGLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBRXZDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1RyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxJQUFJLG1CQUFtQixHQUFHLENBQUMsRUFBRTtZQUNwRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1NBQ3JDO2FBQU07WUFDSCxJQUFJLG1CQUFtQixHQUFHLENBQUMsRUFBRTtnQkFDekIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQzthQUNyQztTQUNKO0lBQ0wsQ0FBQztJQUNELGNBQWMsQ0FBQyxHQUFHLEVBQUUsT0FBWSxJQUFJO1FBQ2hDLElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELGdCQUFnQixDQUFDLFFBQVE7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsWUFBWSxDQUFDLEdBQXNCO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBQ0QsU0FBUyxDQUFDLEdBQUc7UUFDVCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsQ0FBQyxJQUFHLENBQUM7OzRIQWpGckIsK0JBQStCO2dIQUEvQiwrQkFBK0IsNDhCQUM3QixvQkFBb0Isa0hBa0NBLGdCQUFnQixzSkN6RG5ELGk4aUJBd1dBOzJGRGxWYSwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0ksOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNO2lHQUdkLHFCQUFxQjtzQkFBckQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ3JCLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUVHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDNkMsUUFBUTtzQkFBMUQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ3RCLGVBQWU7c0JBQXpDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgRHluYW1pY1BhZ2VDb21wb25lbnQsIFRhYlBhbmVsQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgQnJlYWRDcnVtYkluZm8sIE1ldGFvYmplY3REYXRhTW9kZWwsIExheW91dFNldHRpbmcsIGlzRmlyZWZveCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGdW5kYW1lbnRhbER5bmFtaWNGb3JtQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZChEeW5hbWljUGFnZUNvbXBvbmVudCkgX2R5bmFtaWNQYWdlQ29tcG9uZW50OiBEeW5hbWljUGFnZUNvbXBvbmVudDtcbiAgICBAT3V0cHV0KCkgdG9vbGJhckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHdvcmtmbG93Q2hvaWNlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBASW5wdXQoKSBicmVhZENydW1iczogQnJlYWRDcnVtYkluZm9bXSB8IG51bGw7XG4gICAgQElucHV0KCkgdG9vbGJhclZpc2libGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgdG9vbGJhckl0ZW1zOiBhbnlbXTtcbiAgICBASW5wdXQoKSBsYXlvdXRBY3Rpb25zOiBhbnlbXTtcbiAgICBASW5wdXQoKSBsYXlvdXQ5NDtcbiAgICBASW5wdXQoKSBwYXJhbWV0ZXJzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIEBJbnB1dCgpIHdvcmtmbG93UGFuZWxVaTogYW55O1xuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YnRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBASW5wdXQoKSBmYWNldExpc3Q6IGFueVtdO1xuICAgIEBJbnB1dCgpIGZpZWxkRGljdDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSByZW1vdmVIZWFkZXJCb3JkZXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcmVtb3ZlQ29udGVudFBhZGRpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgQElucHV0KCkgYXZhdGFyOiBhbnk7XG4gICAgQElucHV0KCkgcnRsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgaGlkZUNsb3NlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVQaW46IGJvb2xlYW47XG4gICAgQElucHV0KCkgbWFzazogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjYW5TZW5kOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNvbnRlbnRJc1BhZ2U6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5O1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6ICdzJyB8ICdtJyB8ICdsJyB8ICd4bCc7XG4gICAgQElucHV0KCkgZGlyVmFsdWU6ICdydGwnIHwgJ2x0cic7XG4gICAgQElucHV0KCkgbW9kZXJuVGFiczogTGF5b3V0U2V0dGluZ1tdO1xuICAgIEBWaWV3Q2hpbGQoJ3RpdGxlUmVmJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHRpdGxlUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlckF2YXRhcicpIGhlYWRlckF2YXRhclJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgICB3b3JrZmxvd0J1dHRvbnM6IGFueVtdO1xuICAgIHNlbGVjdGVkVGFiOiBhbnk7XG5cbiAgICB0b29sYmFyU2hvdWxkT3ZlcmZsb3cgPSBmYWxzZTtcbiAgICB3b3JrZmxvd0luZm9UZXh0OiBzdHJpbmc7XG4gICAgd29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlOiBib29sZWFuO1xuICAgIGlzRmlyZWZveDogYm9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5pc0ZpcmVmb3ggPSBpc0ZpcmVmb3goKTtcbiAgICAgICAgdGhpcy5mYWNldExpc3QgfHw9IFtdO1xuICAgICAgICB0aGlzLndvcmtmbG93SW5mb1RleHQgPSB0aGlzLndvcmtmbG93UGFuZWxVaT8uU2V0dGluZz8uV29ya2Zsb3c/LkluZm9UZXh0O1xuICAgICAgICBjb25zdCB3b3JrZmxvd0J1dHRvbnMgPSB0aGlzLndvcmtmbG93UGFuZWxVaT8uYnV0dG9uTGlzdCA/PyBbXTtcbiAgICAgICAgdGhpcy53b3JrZmxvd0J1dHRvbnNDb21ib01vZGUgPSB0aGlzLndvcmtmbG93UGFuZWxVaT8uU2V0dGluZz8uV29ya2Zsb3c/LkJ1dHRvbnNDb21ib01vZGU7XG4gICAgICAgIHRoaXMud29ya2Zsb3dCdXR0b25zID0gd29ya2Zsb3dCdXR0b25zO1xuXG4gICAgICAgIGNvbnN0IHRvb2xiYXJCdXR0b25zQ291bnQgPSB0aGlzLnRvb2xiYXJJdGVtcy5maWx0ZXIoKGMpID0+IHR5cGVvZiBjICE9PSAnc3RyaW5nJyAmJiBjLnRleHQgIT09ICctJykubGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5kZXZpY2VTaXplID09PSAncycgJiYgdG9vbGJhckJ1dHRvbnNDb3VudCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMudG9vbGJhclNob3VsZE92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0b29sYmFyQnV0dG9uc0NvdW50ID4gNSkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhclNob3VsZE92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBvblRvb2xiYXJDbGljayhidG4sIG1lbnU6IGFueSA9IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKG1lbnUpIHtcbiAgICAgICAgICAgIG1lbnUuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvb2xiYXJDbGljay5lbWl0KGJ0bik7XG4gICAgfVxuICAgIG9uV2ZDaG9pY2VTZWxlY3Qod2ZDaG9pY2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53b3JrZmxvd0Nob2ljZUNsaWNrLmVtaXQod2ZDaG9pY2UpO1xuICAgIH1cbiAgICBvblRhYkNoYW5nZWQodGFiOiBUYWJQYW5lbENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGFiLnRpdGxlO1xuICAgIH1cbiAgICBnZXROdW1iZXIodmFsKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih2YWwpO1xuICAgIH1cbiAgICBvbkR5bmFtaWNDb21wb25lbnRFdmVudHMoZSkge31cbn1cbiIsIjxkaXYgKm5nSWY9XCJtYXNrXCIgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJVwiPlxuICAgIDxic3UtbWFzayBzaXplPVwibVwiPjwvYnN1LW1hc2s+XG48L2Rpdj5cblxuPGZkLWR5bmFtaWMtcGFnZVxuICAgIFtzaXplXT1cImlzTW9iaWxlID8gJ3NtYWxsJyA6ICdsYXJnZSdcIlxuICAgIFtjbGFzcy5oZWFkZXItYm9yZGVyXT1cIiFyZW1vdmVIZWFkZXJCb3JkZXJcIlxuICAgIFthdHRyLmlzTW9iaWxlXT1cImlzTW9iaWxlXCJcbiAgICBbYXR0ci5jb250ZW50SXNQYWdlXT1cImNvbnRlbnRJc1BhZ2VcIlxuPlxuICAgIDxmZC1keW5hbWljLXBhZ2UtaGVhZGVyXG4gICAgICAgIFtjbGFzcy5zaW1wbGUtdGl0bGVdPVwiIWRlc2NyaXB0aW9uXCJcbiAgICAgICAgW3RpdGxlXT1cIihoaWRlVGl0bGUgPT09IHRydWUgPyAnJyA6IHRpdGxlKSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIFtzdWJ0aXRsZV09XCJzdWJ0aXRsZSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIFtjbGFzcy5wLWIwXT1cInJlbW92ZUNvbnRlbnRQYWRkaW5nXCJcbiAgICAgICAgW2NsYXNzLmhpZGUtdGl0bGVdPVwiaGlkZVRpdGxlID09PSB0cnVlICYmIGhpZGVDbG9zZSA9PT0gdHJ1ZVwiXG4gICAgICAgICN0aXRsZVJlZlxuICAgID5cbiAgICAgICAgPGZkLWJyZWFkY3J1bWI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnJlYWRDcnVtYnNcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBicmVhZENydW1iIG9mIGJyZWFkQ3J1bWJzIHwgc2xpY2U6IDA6YnJlYWRDcnVtYnMubGVuZ3RoOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJyZWFkY3J1bWItaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxic3UtYnJlYWRjcnVtYlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNMYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFticmVhZENydW1iXT1cImJyZWFkQ3J1bWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbGxCcmVhZENydW1iXT1cImJyZWFkQ3J1bWJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2JzdS1icmVhZGNydW1iPlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLWJyZWFkY3J1bWItaXRlbT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWJyZWFkY3J1bWI+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtZ2xvYmFsLWFjdGlvbnM+XG4gICAgICAgICAgICA8IS0tIGdsb2JhbCBhY3Rpb25zIC0tPlxuICAgICAgICAgICAgPGZkLXRvb2xiYXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJWaXNpYmxlXCJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgW2NsZWFyQm9yZGVyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzaG91bGRPdmVyZmxvd109XCJkZXZpY2VTaXplID09PSAncydcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5maXJlZm94XT1cImlzRmlyZWZveFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIHRvb2xiYXJJdGVtczsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0OyBsZXQgZmlyc3QgPSBmaXJzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhci1zZXBhcmF0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmldPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5sYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZmlyc3RdPVwiZmlyc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIoYnRuID09PSAnLScgfHwgYnRuLnRleHQgPT09ICctJykgJiYgIWxhc3QgJiYgIWZpcnN0XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtdG9vbGJhci1zZXBhcmF0b3I+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJidG4uSUFtTWVudTsgZWxzZSBzaW1wbGVCdXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1zcGxpdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlyXT1cImRpclZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcGFjdF09XCJjb250ZW50RGVuc2l0eSA9PT0gJ2NvbXBhY3QnID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpbkFjdGlvbl09XCJ7IG1haW5BY3Rpb25UaXRsZTogYnRuLnRleHQsIGtlZXBNYWluQWN0aW9uOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiYnRuLmRlc2lnbiA/IGJ0bi5kZXNpZ24gOiBidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uRGVzaWduXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiKGJ0bi5uZXdJY29uID8gYnRuLm5ld0ljb24gOiBidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uSWNvbikgfHwgJ3NsaW0tYXJyb3ctZG93bidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtZW51Lm9wZW4oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUgI21lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbWVudUl0ZW0gb2YgYnRuLm1lbnUuaXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm1lbnVJdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvb2xiYXJDbGljayhtZW51SXRlbSwgbWVudSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249XCJiZWZvcmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51SXRlbS5uZXdJY29uID8gbWVudUl0ZW0ubmV3SWNvbiA6IG1lbnVJdGVtLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtcjhcIiAqbmdJZj1cIm1lbnVJdGVtLmljb25cIiBbc3JjXT1cIm1lbnVJdGVtLmljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgbWVudUl0ZW0udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtbWVudT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtc3BsaXQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShidG4gPT09ICctJyB8fCBidG4udGV4dCA9PT0gJy0nKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ0bi5EYXRhPy5DdXN0b21VaT8uU2VsZWN0b3IgPyBkeW5hbWljQnRuVGVtcGxhdGUgOiBidG5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBidG4gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2J0blRlbXBsYXRlIGxldC1idG4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnRuLmlzV29ya2Zsb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAncG9zaXRpdmUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYnRuLmRlc2lnblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGJ0bi5kZXNpZ25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uRGVzaWduXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImJ0bi5uZXdJY29uID8gYnRuLm5ld0ljb24gOiBidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ub29sYmFyQ2xpY2soYnRuKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uSWNvbiAmJiAhYnRuLm5ld0ljb24gJiYgYnRuLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiYnRuLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ0bi50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZHluYW1pY0J0blRlbXBsYXRlIGxldC1idG4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxibnJjLWR5bmFtaWMtZm9ybS10b29sYmFyaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50XT1cImJ0bi5EYXRhLkN1c3RvbVVpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cImJ0blwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNFbmFibGVdPVwiYnRuLkNvbW1hbmQ/Ll9pc0VuYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnRuQ2xpY2spPVwib25Ub29sYmFyQ2xpY2soYnRuKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2JucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIShidG4gPT09ICctJyB8fCBidG4udGV4dCA9PT0gJy0nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvblR5cGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ0bi5pc1dvcmtmbG93ID8gJ3Bvc2l0aXZlJyA6IGJ0bi5kZXNpZ24gPyBidG4uZGVzaWduIDogYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/LkRlc2lnblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImJ0bi5uZXdJY29uID8gYnRuLm5ld0ljb24gOiBidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9vbGJhckNsaWNrKGJ0bilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb24gJiYgIWJ0bi5uZXdJY29uICYmIGJ0bi5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiYnRuLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgICAgICA8IS0tIDxic3UtdWktZm9ybS1wYW5lbC10b29sYmFyXG4gICAgICAgIFtidXR0b25zXT1cInRvb2xiYXJJdGVtcyB8IHRsYkJ1dHRvbnM6ICdpbkZvb3Rlcic6ZmFsc2VcIlxuICAgICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZSQgfCBhc3luY1wiXG4gICAgICAgIFt2aXNpYmxlXT1cInRvb2xiYXJWaXNpYmxlXCJcbiAgICAgICAgKHRvb2xDbGljayk9XCJvblRvb2xiYXJDbGljaygkZXZlbnQpXCJcbiAgICAgID48L2JzdS11aS1mb3JtLXBhbmVsLXRvb2xiYXI+IC0tPlxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1nbG9iYWwtYWN0aW9ucz5cbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9ucz5cbiAgICAgICAgICAgIDwhLS0gbGF5b3V0IGFjdGlvbnMgLS0+XG4gICAgICAgICAgICA8IS0tIDxkaXYgW2Zvcm1BY3Rpb25zXT1cInRoaXMudG9vbGJhclwiPjwvZGl2PiAtLT5cbiAgICAgICAgICAgIDxmZC10b29sYmFyICpuZ0lmPVwiIWhpZGVDbG9zZVwiIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgW2NsZWFyQm9yZGVyXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjbG9zZS5lbWl0KClcIiB0aXRsZT1cIkNsb3NlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwic2FwLWljb24tLWRlY2xpbmVcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxuICAgIDwvZmQtZHluYW1pYy1wYWdlLWhlYWRlcj5cbiAgICA8ZmQtZHluYW1pYy1wYWdlLXN1YmhlYWRlclxuICAgICAgICAqbmdJZj1cImRlc2NyaXB0aW9uIHx8IGZhY2V0TGlzdC5sZW5ndGggPiAwIHx8IHdvcmtmbG93SW5mb1RleHQgfHwgYXZhdGFyXCJcbiAgICAgICAgW2NsYXNzLmhlYWRlci1uby1kZXNjcmlwdGlvbl09XCIhKGRlc2NyaXB0aW9uIHx8IHdvcmtmbG93SW5mb1RleHQpXCJcbiAgICAgICAgW2NsYXNzLm5vLXBpbl09XCJoaWRlUGluXCJcbiAgICAgICAgW2NvbGxhcHNpYmxlXT1cIiEhd29ya2Zsb3dJbmZvVGV4dCB8fCAoZmFjZXRMaXN0ICYmIGZhY2V0TGlzdC5sZW5ndGggPiAwKVwiXG4gICAgICAgIFtwaW5uYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgW2NvbGxhcHNlZF09XCIoIWZhY2V0TGlzdCB8fCBmYWNldExpc3QubGVuZ3RoID09PSAwKSAmJiAhd29ya2Zsb3dJbmZvVGV4dFwiXG4gICAgPlxuICAgICAgICA8ZmQtbWVzc2FnZS1zdHJpcCBbdHlwZV09XCInd2FybmluZydcIiAqbmdJZj1cIndvcmtmbG93SW5mb1RleHRcIiBbZGlzbWlzc2libGVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgIHt7IHdvcmtmbG93SW5mb1RleHQgfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9mZC1tZXNzYWdlLXN0cmlwPlxuICAgICAgICA8ZmQtZmFjZXQtZ3JvdXAgYXJpYUxhYmVsPVwiRmFjZXQgR3JvdXBcIj5cbiAgICAgICAgICAgIDxmZC1mYWNldCAqbmdJZj1cImF2YXRhclwiIHR5cGU9XCJpbWFnZVwiPlxuICAgICAgICAgICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJhdmF0YXJcIlxuICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiYXZhdGFyXCJcbiAgICAgICAgICAgICAgICAgICAgW2ltYWdlXT1cIiFhdmF0YXI/LkZpbGVJZCA/IG51bGwgOiAoYXZhdGFyPy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpudWxsKVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cImRldmljZVNpemUgPT09ICd4bCcgPyAnbCcgOiBkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxuICAgICAgICAgICAgICAgID48L2ZkLWF2YXRhcj5cbiAgICAgICAgICAgICAgICA8IS0tIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1hdmF0YXIgZmQtYXZhdGFyLS1jaXJjbGVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2ZkLWF2YXRhci0tJyArIChkZXZpY2VTaXplID09PSAneGwnID8gJ2wnIDogZGV2aWNlU2l6ZSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJhdmF0YXJcIiBjbGFzcz1cImZkLWF2YXRhcl9faWNvblwiIFtjbGFzc109XCJhdmF0YXIgfCBzYXBGb250Q2xhc3NcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+IDwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICA8L2ZkLWZhY2V0PlxuICAgICAgICAgICAgPGZkLWZhY2V0XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZhY2V0IG9mIGZhY2V0TGlzdFwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwiZmFjZXQudHlwZVwiXG4gICAgICAgICAgICAgICAgW2ZhY2V0VGl0bGVdPVwiZmFjZXQubW8uVGl0bGUgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCJmYWNldC5tby5TdWJUaXRsZSB8IGZhY2V0VmFsdWUgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1mYWNldC1jb250ZW50ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZhY2V0Lm1vLkl0ZW1MaXN0Py5Nb0RhdGFMaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmZC1mb3JtLWxhYmVsIFtjb2xvbl09XCJ0cnVlXCIgZm9yPVwiZm9ybS12YWx1ZS0xMFwiPnt7IGl0ZW0uVGl0bGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtdGV4dCBbdGV4dF09XCJpdGVtLlZhbHVlIHwgZmFjZXRWYWx1ZVwiIGlkPVwiZm9ybS12YWx1ZS0xMFwiPjwvZmQtdGV4dD5cbiAgICAgICAgICAgICAgICA8L2ZkLWZhY2V0LWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICFmYWNldC5tby5Jc051bWJlciAmJiBmYWNldC50eXBlID09PSAna2V5LXZhbHVlJyAmJiAhZmFjZXQubW8uQ29tcG9uZW50Py5TZWxlY3RvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZHluYW1pY0NvbXBvbmVudFRwbFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiZmFjZXQubW8uU3RhdHVzIHwgZmFjZXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJmYWNldC5tby5Db21wb25lbnQ/LlNlbGVjdG9yID8gJycgOiAoZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhcmdlXT1cImZhY2V0Lm1vLklzTGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCJmYWNldC5tby5UZXh0IHwgZmFjZXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJmYWNldC5tby5JY29uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZHluYW1pY0NvbXBvbmVudFRwbD5cbiAgICAgICAgICAgICAgICAgICAgPGJucmMtZHluYW1pYy1jb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInZmQtb2JqZWN0LXN0YXR1cy0tJyArIGZhY2V0Lm1vLlN0YXR1cyB8IGZhY2V0VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZkLW9iamVjdC1zdGF0dXMtLWxhcmdlXT1cImZhY2V0Lm1vLklzTGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJmYWNldC5tby5Db21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhY2V0Lm1vLlRleHRcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ibnJjLWR5bmFtaWMtY29tcG9uZW50PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGZkLW9iamVjdC1udW1iZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmYWNldC5tby5Jc051bWJlciAmJiBmYWNldC50eXBlID09PSAna2V5LXZhbHVlJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtudW1iZXJdPVwiZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbbGFyZ2VdPVwiZmFjZXQubW8uSXNMYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgIFt1bml0XT1cImZhY2V0Lm1vLlVuaXQgfCBmYWNldFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJmYWNldC5tby5TdGF0dXMgfCBmYWNldFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2RlY2ltYWxdPVwiZmFjZXQubW8uRGVjaW1hbCB8IGZhY2V0VmFsdWVcIlxuICAgICAgICAgICAgICAgID48L2ZkLW9iamVjdC1udW1iZXI+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmFjZXQudHlwZSA9PT0gJ3BsYWluLXRleHQnXCIgW3N0eWxlLndpZHRoLnB4XT1cImZhY2V0Lm1vLldpZHRoXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm9ybWFsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC10ZXh0IFt0ZXh0XT1cImZhY2V0Lm1vLlRleHQgfCBmYWNldFZhbHVlXCIgaHlwaGVuYXRpb249XCJhdXRvXCI+PC9mZC10ZXh0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGZkLWZhY2V0LWNvbnRlbnQgKm5nSWY9XCJmYWNldC50eXBlID09PSAncmF0aW5nLWluZGljYXRvcidcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZkLXJhdGluZy1pbmRpY2F0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicG9pbnRlci1ldmVudHM6IG5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkeW5hbWljVGV4dEluZGljYXRvcl09XCJmYWNldC5tby5Gb290ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlNb2RlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhY2V0Lm1vIHwgZmFjZXRWYWx1ZTogZmFjZXQudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLXJhdGluZy1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgPC9mZC1mYWNldC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmYWNldC50eXBlID09PSAncHJvZ3Jlc3MnXCIgW3N0eWxlLndpZHRoXT1cIicxMHJlbSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBmZC1mb3JtLWxhYmVsPnt7IGZhY2V0Lm1vLlN1YnRpdGxlIHwgZmFjZXRWYWx1ZSB9fTwvc3Bhbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1wcm9ncmVzcy1pbmRpY2F0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwciBlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwiZmFjZXQubW8uU3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlVGV4dF09XCIoZmFjZXQubW8gfCBmYWNldFZhbHVlOiBmYWNldC50eXBlKSArICcg2KfYsiAxMCDZhdix2K3ZhNmHJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVOb3ddPVwiZmFjZXQubW8gfCBmYWNldFZhbHVlOiBmYWNldC50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZU1heF09XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdW5pdF09XCIn2YXYsdit2YTZhydcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1wcm9ncmVzcy1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHVpNS1wcm9ncmVzcy1pbmRpY2F0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwcmVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZVN0YXRlXT1cImZhY2V0Lm1vLlN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJnZXROdW1iZXIoZmFjZXQubW8uVmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdWk1LXByb2dyZXNzLWluZGljYXRvcj4gLS0+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZhY2V0LnR5cGUgPT09ICdtaWNyb2NoYXJ0cydcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHdyYXA+aW4gcHJvZ3Jlc3MgLi4uPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZmQtZmFjZXQ+XG4gICAgICAgIDwvZmQtZmFjZXQtZ3JvdXA+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZGVzY3JpcHRpb25cIj57eyBkZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICA8L2ZkLWR5bmFtaWMtcGFnZS1zdWJoZWFkZXI+XG5cbiAgICA8ZmQtdGFiLWxpc3RcbiAgICAgICAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKm5nSWY9XCIhY29udGVudElzUGFnZSAmJiBtb2Rlcm5UYWJzICYmIG1vZGVyblRhYnMubGVuZ3RoID4gMCAmJiAhcGFyYW1ldGVycz8uTGF5b3V0Q29tcG9uZW50OyBlbHNlIHJlbmRlckxheW91dFwiXG4gICAgICAgIFtjb2xsYXBzZU92ZXJmbG93XT1cInRydWVcIlxuICAgICAgICBbc3RhY2tDb250ZW50XT1cImZhbHNlXCJcbiAgICAgICAgbWF4Q29udGVudEhlaWdodD1cImF1dG9cIlxuICAgICAgICBbZXhwYW5kT3ZlcmZsb3dUZXh0XT1cIidNb3JlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICN0YWJsaXN0XG4gICAgPlxuICAgICAgICA8ZmQtdGFiICpuZ0Zvcj1cImxldCB0YWIgb2YgbW9kZXJuVGFiczsgbGV0IGkgPSBpbmRleFwiIFt0aXRsZV09XCJ0YWIuVGl0bGUhISB8IGJiYlRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50IFtpZF09XCJ0YWIuaWRcIj5cbiAgICAgICAgICAgICAgICA8YnN1LWx5LXRhYi1wYWdlIFtjb25maWddPVwidGFiXCIgW3RhYmxpc3RdPVwidGFibGlzdFwiPjwvYnN1LWx5LXRhYi1wYWdlPlxuICAgICAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtY29udGVudD5cbiAgICAgICAgPC9mZC10YWI+XG4gICAgPC9mZC10YWItbGlzdD5cbiAgICA8bmctdGVtcGxhdGUgI3JlbmRlckxheW91dD5cbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50IFtjbGFzcy5uby1wYWRkaW5nXT1cInJlbW92ZUNvbnRlbnRQYWRkaW5nXCIgKm5nSWY9XCIhY29udGVudElzUGFnZVwiPlxuICAgICAgICAgICAgPCEtLSA8YnN1LWx5LWxheW91dC1jb250YWluZXItb2Ytcm9vdFxuICAgICAgICAgICAgW2NvbmZpZ109XCJsYXlvdXQ5NFwiXG4gICAgICAgICAgICBbaXNQYW5lbF09XCJmYWxzZVwiXG4gICAgICAgICAgICBbaXNSb290XT1cInRydWVcIlxuICAgICAgICA+PC9ic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290PiAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzPy5MYXlvdXRDb21wb25lbnQgPyByZW5kZXJMYXlvdXRDb21wb25lbnQgOiByZW5kZXJEZWZhdWx0TGF5b3V0O1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHBhcmFtZXRlcnM/LkxheW91dENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQ5NFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxmZC1keW5hbWljLXBhZ2UtZm9vdGVyPlxuICAgICAgICA8YnN1LWxheW91dC1hY3Rpb25zXG4gICAgICAgICAgICBbY2FuU2VuZF09XCJjYW5TZW5kXCJcbiAgICAgICAgICAgIFtidXR0b25zXT1cImxheW91dEFjdGlvbnNcIlxuICAgICAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcbiAgICAgICAgICAgIFt3b3JrZmxvd0J1dHRvbnNdPVwid29ya2Zsb3dCdXR0b25zXCJcbiAgICAgICAgICAgIFt3b3JrZmxvd0J1dHRvbnNDb21ib01vZGVdPVwid29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlXCJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgKHRvb2xDbGljayk9XCJvblRvb2xiYXJDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICh3b3JrZmxvd0Nob2ljZVNlbGVjdCk9XCJvbldmQ2hvaWNlU2VsZWN0KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYnN1LWxheW91dC1hY3Rpb25zPlxuICAgIDwvZmQtZHluYW1pYy1wYWdlLWZvb3Rlcj5cbjwvZmQtZHluYW1pYy1wYWdlPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRJc1BhZ2VcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICByZW5kZXJMYXlvdXRDb21wb25lbnQ7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBwYXJhbWV0ZXJzPy5MYXlvdXRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dDk0XG4gICAgICAgICAgICB9XG4gICAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI3JlbmRlckRlZmF1bHRMYXlvdXQgbGV0LWxheW91dDk0PVwibGF5b3V0OTRcIj5cbiAgICA8YnN1LWx5LWxheW91dC1jb250YWluZXItb2Ytcm9vdFxuICAgICAgICBbY29uZmlnXT1cImxheW91dDk0XCJcbiAgICAgICAgW2lzUGFuZWxdPVwiZmFsc2VcIlxuICAgICAgICBbaXNSb290XT1cInRydWVcIlxuICAgID48L2JzdS1seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3Q+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNyZW5kZXJMYXlvdXRDb21wb25lbnQgbGV0LWNvbXBvbmVudCBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiPlxuICAgIDxibnJjLWR5bmFtaWMtZm9ybS1jb21wb25lbnRcbiAgICAgICAgW2NvbXBvbmVudF09XCJjb21wb25lbnRcIlxuICAgICAgICBbcmVtb3ZlQ29udGVudFBhZGRpbmddPVwicmVtb3ZlQ29udGVudFBhZGRpbmdcIlxuICAgICAgICBbYnJlYWRDcnVtYnNdPVwiYnJlYWRDcnVtYnNcIlxuICAgICAgICBbZGVzY3JpcHRpb25dPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgICBbc3VidGl0bGVdPVwic3VidGl0bGVcIlxuICAgICAgICBbdG9vbGJhckl0ZW1zXT1cInRvb2xiYXJJdGVtc1wiXG4gICAgICAgIFtsYXlvdXRBY3Rpb25zXT1cImxheW91dEFjdGlvbnNcIlxuICAgICAgICBbZmFjZXRMaXN0XT1cImZhY2V0TGlzdFwiXG4gICAgICAgIFtzZXR0aW5nc109XCJjb21wb25lbnQuU2V0dGluZ3NcIlxuICAgICAgICBbd29ya2Zsb3dQYW5lbFVpXT1cIndvcmtmbG93UGFuZWxVaVwiXG4gICAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXG4gICAgICAgIFttb109XCJtb1wiXG4gICAgICAgIFtsYXlvdXQ5NF09XCJsYXlvdXQ5NFwiXG4gICAgICAgIFtjb250ZXh0XT1cImNvbnRleHRcIlxuICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgIFtmaWVsZERpY3RdPVwiZmllbGREaWN0XCJcbiAgICAgICAgW21hc2tdPVwibWFza1wiXG4gICAgICAgIFtkaXJWYWx1ZV09XCJkaXJWYWx1ZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICBbbW9kZXJuVGFic109XCJtb2Rlcm5UYWJzXCJcbiAgICAgICAgW2F2YXRhcl09XCJhdmF0YXJcIlxuICAgICAgICAoZXZlbnRzKT1cIm9uRHluYW1pY0NvbXBvbmVudEV2ZW50cygkZXZlbnQpXCJcbiAgICA+PC9ibnJjLWR5bmFtaWMtZm9ybS1jb21wb25lbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS9mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0Isb0JBQW9CLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7QUFFaEcsT0FBTyxFQUFFLGFBQWEsRUFBc0QsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRcEgsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGFBQWE7SUE2QzlELFlBQW1CLEVBQWM7UUFDN0IsS0FBSyxFQUFFLENBQUM7UUFETyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBM0N2QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdkMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN4RCxvQkFBb0I7UUFDVixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQW9CNUIsY0FBUyxHQUFHLElBQUksQ0FBQztRQWdCMUIsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBTTlCLENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsS0FBZCxJQUFJLENBQUMsU0FBUyxHQUFLLEVBQUUsRUFBQztRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQztRQUMxRSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQztRQUMxRixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUV2QyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDNUcsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLEVBQUU7WUFDcEQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztTQUNyQzthQUFNO1lBQ0gsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7YUFDckM7U0FDSjtJQUNMLENBQUM7SUFDRCxjQUFjLENBQUMsR0FBRyxFQUFFLE9BQVksSUFBSTtRQUNoQyxJQUFJLElBQUksRUFBRTtZQUNOLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNoQjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxRQUFRO1FBQ3JCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELFlBQVksQ0FBQyxHQUFzQjtRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFHO1FBQ1QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUNELHdCQUF3QixDQUFDLENBQUMsSUFBRyxDQUFDOzs0SEFsRnJCLCtCQUErQjtnSEFBL0IsK0JBQStCLGsrQkFDN0Isb0JBQW9CLGtIQW1DQSxnQkFBZ0Isc0pDMURuRCxzK2lCQXlXQTsyRkRuVmEsK0JBQStCO2tCQU4zQyxTQUFTOytCQUNJLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTTtpR0FHZCxxQkFBcUI7c0JBQXJELFNBQVM7dUJBQUMsb0JBQW9CO2dCQUNyQixZQUFZO3NCQUFyQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFFRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDNkMsUUFBUTtzQkFBMUQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ3RCLGVBQWU7c0JBQXpDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgRHluYW1pY1BhZ2VDb21wb25lbnQsIFRhYlBhbmVsQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgQnJlYWRDcnVtYkluZm8sIE1ldGFvYmplY3REYXRhTW9kZWwsIExheW91dFNldHRpbmcsIGlzRmlyZWZveCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGdW5kYW1lbnRhbER5bmFtaWNGb3JtQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZChEeW5hbWljUGFnZUNvbXBvbmVudCkgX2R5bmFtaWNQYWdlQ29tcG9uZW50OiBEeW5hbWljUGFnZUNvbXBvbmVudDtcbiAgICBAT3V0cHV0KCkgdG9vbGJhckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHdvcmtmbG93Q2hvaWNlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBASW5wdXQoKSBicmVhZENydW1iczogQnJlYWRDcnVtYkluZm9bXSB8IG51bGw7XG4gICAgQElucHV0KCkgdG9vbGJhclZpc2libGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgdG9vbGJhckl0ZW1zOiBhbnlbXTtcbiAgICBASW5wdXQoKSBsYXlvdXRBY3Rpb25zOiBhbnlbXTtcbiAgICBASW5wdXQoKSBsYXlvdXQ5NDtcbiAgICBASW5wdXQoKSBwYXJhbWV0ZXJzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIEBJbnB1dCgpIHdvcmtmbG93UGFuZWxVaTogYW55O1xuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YnRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBASW5wdXQoKSBmYWNldExpc3Q6IGFueVtdO1xuICAgIEBJbnB1dCgpIGZpZWxkRGljdDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSByZW1vdmVIZWFkZXJCb3JkZXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcmVtb3ZlQ29udGVudFBhZGRpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgQElucHV0KCkgYXZhdGFyOiBhbnk7XG4gICAgQElucHV0KCkgcnRsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgaGlkZUNsb3NlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVQaW46IGJvb2xlYW47XG4gICAgQElucHV0KCkgbWFzazogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjYW5TZW5kOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNvbnRlbnRJc1BhZ2U6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5O1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6ICdzJyB8ICdtJyB8ICdsJyB8ICd4bCc7XG4gICAgQElucHV0KCkgZGlyVmFsdWU6ICdydGwnIHwgJ2x0cic7XG4gICAgQElucHV0KCkgcG9ydHJhaXQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbW9kZXJuVGFiczogTGF5b3V0U2V0dGluZ1tdO1xuICAgIEBWaWV3Q2hpbGQoJ3RpdGxlUmVmJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHRpdGxlUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlckF2YXRhcicpIGhlYWRlckF2YXRhclJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgICB3b3JrZmxvd0J1dHRvbnM6IGFueVtdO1xuICAgIHNlbGVjdGVkVGFiOiBhbnk7XG5cbiAgICB0b29sYmFyU2hvdWxkT3ZlcmZsb3cgPSBmYWxzZTtcbiAgICB3b3JrZmxvd0luZm9UZXh0OiBzdHJpbmc7XG4gICAgd29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlOiBib29sZWFuO1xuICAgIGlzRmlyZWZveDogYm9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5pc0ZpcmVmb3ggPSBpc0ZpcmVmb3goKTtcbiAgICAgICAgdGhpcy5mYWNldExpc3QgfHw9IFtdO1xuICAgICAgICB0aGlzLndvcmtmbG93SW5mb1RleHQgPSB0aGlzLndvcmtmbG93UGFuZWxVaT8uU2V0dGluZz8uV29ya2Zsb3c/LkluZm9UZXh0O1xuICAgICAgICBjb25zdCB3b3JrZmxvd0J1dHRvbnMgPSB0aGlzLndvcmtmbG93UGFuZWxVaT8uYnV0dG9uTGlzdCA/PyBbXTtcbiAgICAgICAgdGhpcy53b3JrZmxvd0J1dHRvbnNDb21ib01vZGUgPSB0aGlzLndvcmtmbG93UGFuZWxVaT8uU2V0dGluZz8uV29ya2Zsb3c/LkJ1dHRvbnNDb21ib01vZGU7XG4gICAgICAgIHRoaXMud29ya2Zsb3dCdXR0b25zID0gd29ya2Zsb3dCdXR0b25zO1xuXG4gICAgICAgIGNvbnN0IHRvb2xiYXJCdXR0b25zQ291bnQgPSB0aGlzLnRvb2xiYXJJdGVtcy5maWx0ZXIoKGMpID0+IHR5cGVvZiBjICE9PSAnc3RyaW5nJyAmJiBjLnRleHQgIT09ICctJykubGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5kZXZpY2VTaXplID09PSAncycgJiYgdG9vbGJhckJ1dHRvbnNDb3VudCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMudG9vbGJhclNob3VsZE92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0b29sYmFyQnV0dG9uc0NvdW50ID4gNSkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhclNob3VsZE92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBvblRvb2xiYXJDbGljayhidG4sIG1lbnU6IGFueSA9IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKG1lbnUpIHtcbiAgICAgICAgICAgIG1lbnUuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvb2xiYXJDbGljay5lbWl0KGJ0bik7XG4gICAgfVxuICAgIG9uV2ZDaG9pY2VTZWxlY3Qod2ZDaG9pY2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53b3JrZmxvd0Nob2ljZUNsaWNrLmVtaXQod2ZDaG9pY2UpO1xuICAgIH1cbiAgICBvblRhYkNoYW5nZWQodGFiOiBUYWJQYW5lbENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGFiLnRpdGxlO1xuICAgIH1cbiAgICBnZXROdW1iZXIodmFsKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih2YWwpO1xuICAgIH1cbiAgICBvbkR5bmFtaWNDb21wb25lbnRFdmVudHMoZSkge31cbn1cbiIsIjxkaXYgKm5nSWY9XCJtYXNrXCIgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJVwiPlxuICAgIDxic3UtbWFzayBzaXplPVwibVwiPjwvYnN1LW1hc2s+XG48L2Rpdj5cblxuPGZkLWR5bmFtaWMtcGFnZVxuICAgIFtzaXplXT1cImlzTW9iaWxlID8gJ3NtYWxsJyA6ICdsYXJnZSdcIlxuICAgIFtjbGFzcy5oZWFkZXItYm9yZGVyXT1cIiFyZW1vdmVIZWFkZXJCb3JkZXJcIlxuICAgIFthdHRyLmlzTW9iaWxlXT1cImlzTW9iaWxlXCJcbiAgICBbYXR0ci5jb250ZW50SXNQYWdlXT1cImNvbnRlbnRJc1BhZ2VcIlxuPlxuICAgIDxmZC1keW5hbWljLXBhZ2UtaGVhZGVyXG4gICAgICAgIFtjbGFzcy5zaW1wbGUtdGl0bGVdPVwiIWRlc2NyaXB0aW9uXCJcbiAgICAgICAgW3RpdGxlXT1cIihoaWRlVGl0bGUgPT09IHRydWUgPyAnJyA6IHRpdGxlKSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIFtzdWJ0aXRsZV09XCJzdWJ0aXRsZSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIFtjbGFzcy5wLWIwXT1cInJlbW92ZUNvbnRlbnRQYWRkaW5nXCJcbiAgICAgICAgW2NsYXNzLmhpZGUtdGl0bGVdPVwiaGlkZVRpdGxlID09PSB0cnVlICYmIGhpZGVDbG9zZSA9PT0gdHJ1ZVwiXG4gICAgICAgICN0aXRsZVJlZlxuICAgID5cbiAgICAgICAgPGZkLWJyZWFkY3J1bWI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnJlYWRDcnVtYnNcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBicmVhZENydW1iIG9mIGJyZWFkQ3J1bWJzIHwgc2xpY2U6IDA6YnJlYWRDcnVtYnMubGVuZ3RoOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJyZWFkY3J1bWItaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxic3UtYnJlYWRjcnVtYlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNMYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFticmVhZENydW1iXT1cImJyZWFkQ3J1bWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbGxCcmVhZENydW1iXT1cImJyZWFkQ3J1bWJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2JzdS1icmVhZGNydW1iPlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLWJyZWFkY3J1bWItaXRlbT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWJyZWFkY3J1bWI+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtZ2xvYmFsLWFjdGlvbnM+XG4gICAgICAgICAgICA8IS0tIGdsb2JhbCBhY3Rpb25zIC0tPlxuICAgICAgICAgICAgPGZkLXRvb2xiYXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJWaXNpYmxlXCJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgW2NsZWFyQm9yZGVyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzaG91bGRPdmVyZmxvd109XCJkZXZpY2VTaXplID09PSAncydcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5maXJlZm94XT1cImlzRmlyZWZveFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIHRvb2xiYXJJdGVtczsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0OyBsZXQgZmlyc3QgPSBmaXJzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhci1zZXBhcmF0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmldPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5sYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZmlyc3RdPVwiZmlyc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIoYnRuID09PSAnLScgfHwgYnRuLnRleHQgPT09ICctJykgJiYgIWxhc3QgJiYgIWZpcnN0XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtdG9vbGJhci1zZXBhcmF0b3I+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJidG4uSUFtTWVudTsgZWxzZSBzaW1wbGVCdXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1zcGxpdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlyXT1cImRpclZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcGFjdF09XCJjb250ZW50RGVuc2l0eSA9PT0gJ2NvbXBhY3QnID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpbkFjdGlvbl09XCJ7IG1haW5BY3Rpb25UaXRsZTogYnRuLnRleHQsIGtlZXBNYWluQWN0aW9uOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiYnRuLmRlc2lnbiA/IGJ0bi5kZXNpZ24gOiBidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uRGVzaWduXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiKGJ0bi5uZXdJY29uID8gYnRuLm5ld0ljb24gOiBidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uSWNvbikgfHwgJ3NsaW0tYXJyb3ctZG93bidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtZW51Lm9wZW4oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUgI21lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbWVudUl0ZW0gb2YgYnRuLm1lbnUuaXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm1lbnVJdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvb2xiYXJDbGljayhtZW51SXRlbSwgbWVudSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249XCJiZWZvcmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51SXRlbS5uZXdJY29uID8gbWVudUl0ZW0ubmV3SWNvbiA6IG1lbnVJdGVtLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtcjhcIiAqbmdJZj1cIm1lbnVJdGVtLmljb25cIiBbc3JjXT1cIm1lbnVJdGVtLmljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgbWVudUl0ZW0udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtbWVudT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtc3BsaXQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShidG4gPT09ICctJyB8fCBidG4udGV4dCA9PT0gJy0nKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ0bi5EYXRhPy5DdXN0b21VaT8uU2VsZWN0b3IgPyBkeW5hbWljQnRuVGVtcGxhdGUgOiBidG5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBidG4gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2J0blRlbXBsYXRlIGxldC1idG4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnRuLmlzV29ya2Zsb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAncG9zaXRpdmUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYnRuLmRlc2lnblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGJ0bi5kZXNpZ25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uRGVzaWduXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImJ0bi5uZXdJY29uID8gYnRuLm5ld0ljb24gOiBidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ub29sYmFyQ2xpY2soYnRuKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uSWNvbiAmJiAhYnRuLm5ld0ljb24gJiYgYnRuLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiYnRuLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ0bi50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZHluYW1pY0J0blRlbXBsYXRlIGxldC1idG4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxibnJjLWR5bmFtaWMtZm9ybS10b29sYmFyaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50XT1cImJ0bi5EYXRhLkN1c3RvbVVpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cImJ0blwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNFbmFibGVdPVwiYnRuLkNvbW1hbmQ/Ll9pc0VuYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnRuQ2xpY2spPVwib25Ub29sYmFyQ2xpY2soYnRuKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2JucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIShidG4gPT09ICctJyB8fCBidG4udGV4dCA9PT0gJy0nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvblR5cGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ0bi5pc1dvcmtmbG93ID8gJ3Bvc2l0aXZlJyA6IGJ0bi5kZXNpZ24gPyBidG4uZGVzaWduIDogYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/LkRlc2lnblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImJ0bi5uZXdJY29uID8gYnRuLm5ld0ljb24gOiBidG4uRGF0YT8uSnNvbkV4dHJhUHJvcD8uSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9vbGJhckNsaWNrKGJ0bilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYnRuLkRhdGE/Lkpzb25FeHRyYVByb3A/Lkljb24gJiYgIWJ0bi5uZXdJY29uICYmIGJ0bi5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiYnRuLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgICAgICA8IS0tIDxic3UtdWktZm9ybS1wYW5lbC10b29sYmFyXG4gICAgICAgIFtidXR0b25zXT1cInRvb2xiYXJJdGVtcyB8IHRsYkJ1dHRvbnM6ICdpbkZvb3Rlcic6ZmFsc2VcIlxuICAgICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZSQgfCBhc3luY1wiXG4gICAgICAgIFt2aXNpYmxlXT1cInRvb2xiYXJWaXNpYmxlXCJcbiAgICAgICAgKHRvb2xDbGljayk9XCJvblRvb2xiYXJDbGljaygkZXZlbnQpXCJcbiAgICAgID48L2JzdS11aS1mb3JtLXBhbmVsLXRvb2xiYXI+IC0tPlxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1nbG9iYWwtYWN0aW9ucz5cbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9ucz5cbiAgICAgICAgICAgIDwhLS0gbGF5b3V0IGFjdGlvbnMgLS0+XG4gICAgICAgICAgICA8IS0tIDxkaXYgW2Zvcm1BY3Rpb25zXT1cInRoaXMudG9vbGJhclwiPjwvZGl2PiAtLT5cbiAgICAgICAgICAgIDxmZC10b29sYmFyICpuZ0lmPVwiIWhpZGVDbG9zZVwiIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgW2NsZWFyQm9yZGVyXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjbG9zZS5lbWl0KClcIiB0aXRsZT1cIkNsb3NlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwic2FwLWljb24tLWRlY2xpbmVcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxuICAgIDwvZmQtZHluYW1pYy1wYWdlLWhlYWRlcj5cbiAgICA8ZmQtZHluYW1pYy1wYWdlLXN1YmhlYWRlclxuICAgICAgICAqbmdJZj1cImRlc2NyaXB0aW9uIHx8IGZhY2V0TGlzdC5sZW5ndGggPiAwIHx8IHdvcmtmbG93SW5mb1RleHQgfHwgYXZhdGFyXCJcbiAgICAgICAgW2NsYXNzLmhlYWRlci1uby1kZXNjcmlwdGlvbl09XCIhKGRlc2NyaXB0aW9uIHx8IHdvcmtmbG93SW5mb1RleHQpXCJcbiAgICAgICAgW2NsYXNzLm5vLXBpbl09XCJoaWRlUGluXCJcbiAgICAgICAgW2NvbGxhcHNpYmxlXT1cIiEhd29ya2Zsb3dJbmZvVGV4dCB8fCAoZmFjZXRMaXN0ICYmIGZhY2V0TGlzdC5sZW5ndGggPiAwKVwiXG4gICAgICAgIFtwaW5uYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgW2NvbGxhcHNlZF09XCIoIWZhY2V0TGlzdCB8fCBmYWNldExpc3QubGVuZ3RoID09PSAwKSAmJiAhd29ya2Zsb3dJbmZvVGV4dFwiXG4gICAgPlxuICAgICAgICA8ZmQtbWVzc2FnZS1zdHJpcCBbdHlwZV09XCInd2FybmluZydcIiAqbmdJZj1cIndvcmtmbG93SW5mb1RleHRcIiBbZGlzbWlzc2libGVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgIHt7IHdvcmtmbG93SW5mb1RleHQgfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9mZC1tZXNzYWdlLXN0cmlwPlxuICAgICAgICA8ZmQtZmFjZXQtZ3JvdXAgYXJpYUxhYmVsPVwiRmFjZXQgR3JvdXBcIj5cbiAgICAgICAgICAgIDxmZC1mYWNldCAqbmdJZj1cImF2YXRhclwiIHR5cGU9XCJpbWFnZVwiPlxuICAgICAgICAgICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJhdmF0YXJcIlxuICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiYXZhdGFyXCJcbiAgICAgICAgICAgICAgICAgICAgW2ltYWdlXT1cIiFhdmF0YXI/LkZpbGVJZCA/IG51bGwgOiAoYXZhdGFyPy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpudWxsKVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cImRldmljZVNpemUgPT09ICd4bCcgPyAnbCcgOiBkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxuICAgICAgICAgICAgICAgID48L2ZkLWF2YXRhcj5cbiAgICAgICAgICAgICAgICA8IS0tIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1hdmF0YXIgZmQtYXZhdGFyLS1jaXJjbGVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2ZkLWF2YXRhci0tJyArIChkZXZpY2VTaXplID09PSAneGwnID8gJ2wnIDogZGV2aWNlU2l6ZSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJhdmF0YXJcIiBjbGFzcz1cImZkLWF2YXRhcl9faWNvblwiIFtjbGFzc109XCJhdmF0YXIgfCBzYXBGb250Q2xhc3NcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+IDwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICA8L2ZkLWZhY2V0PlxuICAgICAgICAgICAgPGZkLWZhY2V0XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZhY2V0IG9mIGZhY2V0TGlzdFwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwiZmFjZXQudHlwZVwiXG4gICAgICAgICAgICAgICAgW2ZhY2V0VGl0bGVdPVwiZmFjZXQubW8uVGl0bGUgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCJmYWNldC5tby5TdWJUaXRsZSB8IGZhY2V0VmFsdWUgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1mYWNldC1jb250ZW50ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZhY2V0Lm1vLkl0ZW1MaXN0Py5Nb0RhdGFMaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmZC1mb3JtLWxhYmVsIFtjb2xvbl09XCJ0cnVlXCIgZm9yPVwiZm9ybS12YWx1ZS0xMFwiPnt7IGl0ZW0uVGl0bGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtdGV4dCBbdGV4dF09XCJpdGVtLlZhbHVlIHwgZmFjZXRWYWx1ZVwiIGlkPVwiZm9ybS12YWx1ZS0xMFwiPjwvZmQtdGV4dD5cbiAgICAgICAgICAgICAgICA8L2ZkLWZhY2V0LWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICFmYWNldC5tby5Jc051bWJlciAmJiBmYWNldC50eXBlID09PSAna2V5LXZhbHVlJyAmJiAhZmFjZXQubW8uQ29tcG9uZW50Py5TZWxlY3RvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZHluYW1pY0NvbXBvbmVudFRwbFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiZmFjZXQubW8uU3RhdHVzIHwgZmFjZXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJmYWNldC5tby5Db21wb25lbnQ/LlNlbGVjdG9yID8gJycgOiAoZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhcmdlXT1cImZhY2V0Lm1vLklzTGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCJmYWNldC5tby5UZXh0IHwgZmFjZXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJmYWNldC5tby5JY29uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZHluYW1pY0NvbXBvbmVudFRwbD5cbiAgICAgICAgICAgICAgICAgICAgPGJucmMtZHluYW1pYy1jb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInZmQtb2JqZWN0LXN0YXR1cy0tJyArIGZhY2V0Lm1vLlN0YXR1cyB8IGZhY2V0VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZkLW9iamVjdC1zdGF0dXMtLWxhcmdlXT1cImZhY2V0Lm1vLklzTGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJmYWNldC5tby5Db21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhY2V0Lm1vLlRleHRcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ibnJjLWR5bmFtaWMtY29tcG9uZW50PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGZkLW9iamVjdC1udW1iZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmYWNldC5tby5Jc051bWJlciAmJiBmYWNldC50eXBlID09PSAna2V5LXZhbHVlJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtudW1iZXJdPVwiZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbbGFyZ2VdPVwiZmFjZXQubW8uSXNMYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgIFt1bml0XT1cImZhY2V0Lm1vLlVuaXQgfCBmYWNldFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJmYWNldC5tby5TdGF0dXMgfCBmYWNldFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2RlY2ltYWxdPVwiZmFjZXQubW8uRGVjaW1hbCB8IGZhY2V0VmFsdWVcIlxuICAgICAgICAgICAgICAgID48L2ZkLW9iamVjdC1udW1iZXI+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmFjZXQudHlwZSA9PT0gJ3BsYWluLXRleHQnXCIgW3N0eWxlLndpZHRoLnB4XT1cImZhY2V0Lm1vLldpZHRoXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm9ybWFsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC10ZXh0IFt0ZXh0XT1cImZhY2V0Lm1vLlRleHQgfCBmYWNldFZhbHVlXCIgaHlwaGVuYXRpb249XCJhdXRvXCI+PC9mZC10ZXh0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGZkLWZhY2V0LWNvbnRlbnQgKm5nSWY9XCJmYWNldC50eXBlID09PSAncmF0aW5nLWluZGljYXRvcidcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZkLXJhdGluZy1pbmRpY2F0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicG9pbnRlci1ldmVudHM6IG5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkeW5hbWljVGV4dEluZGljYXRvcl09XCJmYWNldC5tby5Gb290ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlNb2RlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhY2V0Lm1vIHwgZmFjZXRWYWx1ZTogZmFjZXQudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLXJhdGluZy1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgPC9mZC1mYWNldC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmYWNldC50eXBlID09PSAncHJvZ3Jlc3MnXCIgW3N0eWxlLndpZHRoXT1cIicxMHJlbSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBmZC1mb3JtLWxhYmVsPnt7IGZhY2V0Lm1vLlN1YnRpdGxlIHwgZmFjZXRWYWx1ZSB9fTwvc3Bhbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1wcm9ncmVzcy1pbmRpY2F0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwciBlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwiZmFjZXQubW8uU3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlVGV4dF09XCIoZmFjZXQubW8gfCBmYWNldFZhbHVlOiBmYWNldC50eXBlKSArICcg2KfYsiAxMCDZhdix2K3ZhNmHJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVOb3ddPVwiZmFjZXQubW8gfCBmYWNldFZhbHVlOiBmYWNldC50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZU1heF09XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdW5pdF09XCIn2YXYsdit2YTZhydcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1wcm9ncmVzcy1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHVpNS1wcm9ncmVzcy1pbmRpY2F0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwcmVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZVN0YXRlXT1cImZhY2V0Lm1vLlN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJnZXROdW1iZXIoZmFjZXQubW8uVmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdWk1LXByb2dyZXNzLWluZGljYXRvcj4gLS0+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZhY2V0LnR5cGUgPT09ICdtaWNyb2NoYXJ0cydcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHdyYXA+aW4gcHJvZ3Jlc3MgLi4uPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZmQtZmFjZXQ+XG4gICAgICAgIDwvZmQtZmFjZXQtZ3JvdXA+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZGVzY3JpcHRpb25cIj57eyBkZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICA8L2ZkLWR5bmFtaWMtcGFnZS1zdWJoZWFkZXI+XG5cbiAgICA8ZmQtdGFiLWxpc3RcbiAgICAgICAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKm5nSWY9XCIhY29udGVudElzUGFnZSAmJiBtb2Rlcm5UYWJzICYmIG1vZGVyblRhYnMubGVuZ3RoID4gMCAmJiAhcGFyYW1ldGVycz8uTGF5b3V0Q29tcG9uZW50OyBlbHNlIHJlbmRlckxheW91dFwiXG4gICAgICAgIFtjb2xsYXBzZU92ZXJmbG93XT1cInRydWVcIlxuICAgICAgICBbc3RhY2tDb250ZW50XT1cImZhbHNlXCJcbiAgICAgICAgbWF4Q29udGVudEhlaWdodD1cImF1dG9cIlxuICAgICAgICBbZXhwYW5kT3ZlcmZsb3dUZXh0XT1cIidNb3JlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICN0YWJsaXN0XG4gICAgPlxuICAgICAgICA8ZmQtdGFiICpuZ0Zvcj1cImxldCB0YWIgb2YgbW9kZXJuVGFiczsgbGV0IGkgPSBpbmRleFwiIFt0aXRsZV09XCJ0YWIuVGl0bGUhISB8IGJiYlRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50IFtpZF09XCJ0YWIuaWRcIj5cbiAgICAgICAgICAgICAgICA8YnN1LWx5LXRhYi1wYWdlIFtjb25maWddPVwidGFiXCIgW3RhYmxpc3RdPVwidGFibGlzdFwiPjwvYnN1LWx5LXRhYi1wYWdlPlxuICAgICAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtY29udGVudD5cbiAgICAgICAgPC9mZC10YWI+XG4gICAgPC9mZC10YWItbGlzdD5cbiAgICA8bmctdGVtcGxhdGUgI3JlbmRlckxheW91dD5cbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50IFtjbGFzcy5uby1wYWRkaW5nXT1cInJlbW92ZUNvbnRlbnRQYWRkaW5nXCIgKm5nSWY9XCIhY29udGVudElzUGFnZVwiPlxuICAgICAgICAgICAgPCEtLSA8YnN1LWx5LWxheW91dC1jb250YWluZXItb2Ytcm9vdFxuICAgICAgICAgICAgW2NvbmZpZ109XCJsYXlvdXQ5NFwiXG4gICAgICAgICAgICBbaXNQYW5lbF09XCJmYWxzZVwiXG4gICAgICAgICAgICBbaXNSb290XT1cInRydWVcIlxuICAgICAgICA+PC9ic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290PiAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzPy5MYXlvdXRDb21wb25lbnQgPyByZW5kZXJMYXlvdXRDb21wb25lbnQgOiByZW5kZXJEZWZhdWx0TGF5b3V0O1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHBhcmFtZXRlcnM/LkxheW91dENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQ5NFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxmZC1keW5hbWljLXBhZ2UtZm9vdGVyPlxuICAgICAgICA8YnN1LWxheW91dC1hY3Rpb25zXG4gICAgICAgICAgICBbY2FuU2VuZF09XCJjYW5TZW5kXCJcbiAgICAgICAgICAgIFtidXR0b25zXT1cImxheW91dEFjdGlvbnNcIlxuICAgICAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcbiAgICAgICAgICAgIFtwb3J0cmFpdF09XCJwb3J0cmFpdFwiXG4gICAgICAgICAgICBbd29ya2Zsb3dCdXR0b25zXT1cIndvcmtmbG93QnV0dG9uc1wiXG4gICAgICAgICAgICBbd29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlXT1cIndvcmtmbG93QnV0dG9uc0NvbWJvTW9kZVwiXG4gICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgICh0b29sQ2xpY2spPVwib25Ub29sYmFyQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAod29ya2Zsb3dDaG9pY2VTZWxlY3QpPVwib25XZkNob2ljZVNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2JzdS1sYXlvdXQtYWN0aW9ucz5cbiAgICA8L2ZkLWR5bmFtaWMtcGFnZS1mb290ZXI+XG48L2ZkLWR5bmFtaWMtcGFnZT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50SXNQYWdlXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgcmVuZGVyTGF5b3V0Q29tcG9uZW50O1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogcGFyYW1ldGVycz8uTGF5b3V0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQ5NFxuICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNyZW5kZXJEZWZhdWx0TGF5b3V0IGxldC1sYXlvdXQ5ND1cImxheW91dDk0XCI+XG4gICAgPGJzdS1seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3RcbiAgICAgICAgW2NvbmZpZ109XCJsYXlvdXQ5NFwiXG4gICAgICAgIFtpc1BhbmVsXT1cImZhbHNlXCJcbiAgICAgICAgW2lzUm9vdF09XCJ0cnVlXCJcbiAgICA+PC9ic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmVuZGVyTGF5b3V0Q29tcG9uZW50IGxldC1jb21wb25lbnQgbGV0LWxheW91dDk0PVwibGF5b3V0OTRcIj5cbiAgICA8Ym5yYy1keW5hbWljLWZvcm0tY29tcG9uZW50XG4gICAgICAgIFtjb21wb25lbnRdPVwiY29tcG9uZW50XCJcbiAgICAgICAgW3JlbW92ZUNvbnRlbnRQYWRkaW5nXT1cInJlbW92ZUNvbnRlbnRQYWRkaW5nXCJcbiAgICAgICAgW2JyZWFkQ3J1bWJzXT1cImJyZWFkQ3J1bWJzXCJcbiAgICAgICAgW2Rlc2NyaXB0aW9uXT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgICAgW3N1YnRpdGxlXT1cInN1YnRpdGxlXCJcbiAgICAgICAgW3Rvb2xiYXJJdGVtc109XCJ0b29sYmFySXRlbXNcIlxuICAgICAgICBbbGF5b3V0QWN0aW9uc109XCJsYXlvdXRBY3Rpb25zXCJcbiAgICAgICAgW2ZhY2V0TGlzdF09XCJmYWNldExpc3RcIlxuICAgICAgICBbc2V0dGluZ3NdPVwiY29tcG9uZW50LlNldHRpbmdzXCJcbiAgICAgICAgW3dvcmtmbG93UGFuZWxVaV09XCJ3b3JrZmxvd1BhbmVsVWlcIlxuICAgICAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxuICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICBbbGF5b3V0OTRdPVwibGF5b3V0OTRcIlxuICAgICAgICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZmllbGREaWN0XT1cImZpZWxkRGljdFwiXG4gICAgICAgIFttYXNrXT1cIm1hc2tcIlxuICAgICAgICBbZGlyVmFsdWVdPVwiZGlyVmFsdWVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgW21vZGVyblRhYnNdPVwibW9kZXJuVGFic1wiXG4gICAgICAgIFthdmF0YXJdPVwiYXZhdGFyXCJcbiAgICAgICAgKGV2ZW50cyk9XCJvbkR5bmFtaWNDb21wb25lbnRFdmVudHMoJGV2ZW50KVwiXG4gICAgPjwvYm5yYy1keW5hbWljLWZvcm0tY29tcG9uZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|