barsa-sap-ui 1.0.445 → 1.0.447
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-asp-viewer/barsa-asp-viewer.component.mjs +1 -1
- package/esm2020/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +3 -3
- package/esm2020/lib/barsa-custom-inline-edit/barsa-custom-inline-edit.component.mjs +3 -3
- package/esm2020/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +3 -3
- package/esm2020/lib/barsa-grid-layout-panel/barsa-grid-layout-panel.component.mjs +3 -3
- package/esm2020/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +3 -3
- package/esm2020/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +98 -0
- package/esm2020/lib/barsa-sap-ui.module.mjs +23 -22
- package/esm2020/lib/barsa-table-column/barsa-table-column.component.mjs +7 -5
- package/esm2020/lib/barsa-table-header/barsa-table-header.component.mjs +5 -3
- package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +5 -3
- package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +3 -3
- package/esm2020/lib/card-item/card-item.component.mjs +3 -3
- package/esm2020/lib/column-renderer/column-renderer.component.mjs +3 -3
- package/esm2020/lib/file-viewer-popover/file-viewer-popover.component.mjs +3 -3
- package/esm2020/lib/form-dialog/form-dialog.component.mjs +1 -1
- package/esm2020/lib/fullscreen-files.directive.mjs +1 -1
- package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +3 -3
- package/esm2020/lib/index.mjs +12 -10
- package/esm2020/lib/layout-control/layout-control.component.mjs +3 -3
- package/esm2020/lib/ly-layout-panel/ly-layout-panel.component.mjs +1 -1
- package/esm2020/lib/models/grid-view.mjs +1 -1
- package/esm2020/lib/report-view-renderer.directive.mjs +11 -2
- package/esm2020/lib/sap-ui-report-base.component.mjs +3 -3
- package/esm2020/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +3 -3
- package/esm2020/lib/ui-check-box/ui-check-box.component.mjs +3 -3
- package/esm2020/lib/ui-color-ui/ui-color-ui.component.mjs +3 -3
- package/esm2020/lib/ui-date-time/ui-date-time.component.mjs +3 -3
- package/esm2020/lib/ui-grid/ui-grid.component.mjs +3 -3
- package/esm2020/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +1 -1
- package/esm2020/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +3 -3
- package/esm2020/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +4 -4
- package/esm2020/lib/ui-picture-file/ui-picture-file.component.mjs +3 -3
- package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +3 -3
- package/esm2020/lib/ui-simple-combo/ui-simple-combo.component.mjs +3 -3
- package/esm2020/lib/ui-switch-button/ui-switch-button.component.mjs +3 -3
- package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +3 -6
- package/esm2020/lib/ui-text-area/ui-text-area.component.mjs +1 -1
- package/esm2020/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +3 -3
- package/esm2020/lib/ulv-column-settings/ulv-column-settings.component.mjs +1 -1
- package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +3 -3
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/barsa-sap-ui.mjs +172 -77
- package/fesm2015/barsa-sap-ui.mjs.map +1 -1
- package/fesm2020/barsa-sap-ui.mjs +172 -77
- package/fesm2020/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.d.ts +31 -0
- package/lib/barsa-sap-ui.module.d.ts +32 -31
- package/lib/barsa-table-column/barsa-table-column.component.d.ts +2 -1
- package/lib/barsa-table-header/barsa-table-header.component.d.ts +2 -1
- package/lib/barsa-table-row/barsa-table-row.component.d.ts +2 -1
- package/lib/report-view-renderer.directive.d.ts +4 -1
- package/lib/ui-table-view/ui-table-view.component.d.ts +0 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -60,10 +60,10 @@ export class CardItemComponent extends BaseViewItemPropsComponent {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
CardItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CardItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
-
CardItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CardItemComponent, selector: "bsu-card-item", inputs: { setting: "setting" }, providers: [FormPanelService], viewQueries: [{ propertyName: "_quickViewTemplate", first: true, predicate: ["quickViewTemplate"], descendants: true, static: true }, { propertyName: "_contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<fd-card\n [cardType]=\"setting.CardType$Caption\"\n class=\"docs-flex-item-margin\"\n [class.openOnClick]=\"setting.openOnClick\"\n [style.width]=\"cardWidth\"\n [style.min-width]=\"minWidth\"\n [style.max-width]=\"maxWidth\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n setting.HeaderComponent ? renderHeaderComponent : renderHeader;\n context: {\n $implicit: mo,\n index: this.index\n }\n \"\n ></ng-container>\n\n <fd-card-content (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\" ellipsify *ngIf=\"!noContent || contextMenuItems\">\n <div #divEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"divEl\">\n <ng-container\n *ngTemplateOutlet=\"\n setting.ContentComponent ? contentTemplateComponent : contentTemplateRef;\n context: {\n $implicit: mo,\n index: this.index\n }\n \"\n ></ng-container>\n </div>\n <ng-container *ngIf=\"contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0\">\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [footerMode]=\"true\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"styleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></div>\n </ng-container>\n </fd-card-content>\n</fd-card>\n\n<ng-template #columnTemplate let-column let-mo=\"mo\" let-index=\"index\" let-layout94=\"layout94\"\n ><div\n *ngIf=\"column\"\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [isChecked]=\"isChecked\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n</ng-template>\n<ng-template #quickViewTemplate let-mo let-index=\"index\">\n <fd-quick-view [id]=\"'id'\" *ngIf=\"!noContent\">\n <fd-quick-view-group>\n <fd-quick-view-subheader\n *ngIf=\"setting.Avatar || setting.AvatarField || setting.TitleField || setting.SubtitleField\"\n >\n <fd-avatar\n *ngIf=\"setting.AvatarField || setting.Avatar\"\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"setting.CircleAvatar\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"avatarSize ? avatarSize : deviceSize === 's' ? 's' : 'm'\"\n [glyph]=\"\n setting.Avatar ||\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n <fd-quick-view-subheader-title *ngIf=\"setting.TitleField\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </fd-quick-view-subheader-title>\n <fd-quick-view-subheader-subtitle *ngIf=\"setting.SubtitleField\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </fd-quick-view-subheader-subtitle>\n </fd-quick-view-subheader>\n <fd-quick-view-group-item *ngFor=\"let column of setting.FieldListMapped\">\n <ng-container *ngIf=\"column\">\n <fd-quick-view-group-item-label>\n {{ column.Caption | bbbTranslate }}\n </fd-quick-view-group-item-label>\n <fd-quick-view-group-item-content>\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </fd-quick-view-group-item-content>\n </ng-container>\n </fd-quick-view-group-item>\n <fd-quick-view-group-item *ngIf=\"setting.DescriptionField\">\n <fd-quick-view-group-item-content>\n <fd-quick-view-group-item-label *ngIf=\"inlineEditMode && allowInlineEdit\">\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\n </fd-quick-view-group-item-label>\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.DescriptionField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </fd-quick-view-group-item-content>\n <fd-quick-view-group-item-content\n class=\"action\"\n *ngIf=\"setting.ActionFieldNameField\"\n (click)=\"onAction(setting.ActionFieldCommandField || '')\"\n >\n <a fd-link>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.ActionFieldNameField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </a>\n </fd-quick-view-group-item-content>\n </fd-quick-view-group-item>\n </fd-quick-view-group>\n </fd-quick-view>\n</ng-template>\n<ng-template #contentTemplate let-mo let-index=\"index\">\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <div [fdLayoutGridCol]=\"2\">\n <ng-container\n *ngTemplateOutlet=\"\n avatar;\n context: {\n $implicit: setting.Avatar,\n visible: setting.AvatarField || setting.Avatar,\n circle: setting.CircleAvatar,\n avatarField: setting.AvatarField\n }\n \"\n ></ng-container>\n </div>\n\n <div [fdLayoutGridCol]=\"10\">\n <span *ngIf=\"setting.TitleField\" style=\"font-weight: bold\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </span>\n <span *ngIf=\"setting.SubtitleField\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </span>\n </div>\n\n <div [fdLayoutGridCol]=\"12\">\n <ng-container *ngFor=\"let column of setting.FieldListMapped\">\n <div style=\"display: flex\">\n <label fd-form-label [colon]=\"true\" for=\"form-value-11\">{{\n column.Caption | bbbTranslate\n }}</label>\n\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n <div [fdLayoutGridCol]=\"12\" *ngIf=\"setting.DescriptionField\">\n <label *ngIf=\"inlineEditMode && allowInlineEdit\">\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\n </label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.DescriptionField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </div>\n </fd-layout-grid>\n</ng-template>\n<ng-template #avatar let-avatar let-visible=\"visible\" let-circle=\"circle\" let-avatarField=\"avatarField\">\n <fd-avatar\n *ngIf=\"visible\"\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"circle\"\n [image]=\"avatarField ? (mo[avatarField.Name]?.FileId | picFieldSrc: 'ID':avatarField.FieldDefId) : ''\"\n [size]=\"avatarSize ? avatarSize : deviceSize === 's' ? 's' : 'm'\"\n [glyph]=\"avatar || (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\"\n >\n </fd-avatar>\n</ng-template>\n\n<ng-template #contentTemplateComponent let-mo let-index=\"index\">\n <bnrc-dynamic-item-component\n [component]=\"setting.ContentComponent\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isChecked]=\"isChecked\"\n [setting]=\"setting\"\n [parameters]=\"setting.ContentComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n ></bnrc-dynamic-item-component>\n</ng-template>\n\n<ng-template #renderHeader let-mo let-index=\"index\">\n <fd-card-header\n *ngIf=\"\n isCheckList ||\n deviceName !== 'desktop' ||\n (contextMenuItems && contextMenuItems.length > 0 && !contextMenuInFooter)\n \"\n >\n <div\n fd-card-title\n [style.justify-content]=\"!isCheckList && canView && deviceName !== 'desktop' ? 'left' : 'space-between'\"\n >\n <div style=\"display: flex; justify-content: start; flex-grow: 1\">\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (ngModelChange)=\"onRowCheck()\"\n ></fd-checkbox>\n <div\n *ngIf=\"!contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0\"\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"styleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></div>\n </div>\n <ng-container *ngIf=\"canView\">\n <button\n fd-button\n class=\"view-btn\"\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n </ng-container>\n </div>\n </fd-card-header>\n</ng-template>\n<ng-template #renderHeaderComponent let-mo let-index=\"index\">\n <bnrc-dynamic-item-component\n [component]=\"setting.HeaderComponent\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isChecked]=\"isChecked\"\n [setting]=\"setting\"\n [parameters]=\"setting.HeaderComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-item-component>\n</ng-template>\n", styles: ["fd-card:hover{box-shadow:0 0 0 .0625rem #2235487a,0 .625rem 1.875rem #22354840}fd-card fd-card-content{padding:0!important}fd-card fd-card-header{padding:.5rem}fd-card fd-card-header:hover{background:var(--fdCard_Background_Color)}fd-card fd-card-header .fd-card__title{display:flex;justify-content:space-between;align-items:center;width:100%}fd-card fd-card-header button,fd-card fd-card-header div[ulvcontextmenu]{z-index:6}fd-card fd-card-header:hover{background:inherit}fd-quick-view-subheader ::ng-deep div{background:inherit}.action{cursor:pointer;margin-top:6px;flex:1;display:flex;justify-content:end;flex-direction:column}.openOnClick{cursor:pointer}\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: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i3.EllipsifyDirective, selector: "[ellipsify]", inputs: ["limitLine"] }, { kind: "component", type: i4.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: i5.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.CardComponent, selector: "fd-card", inputs: ["badge", "isLoading", "cardType", "id", "role"] }, { kind: "component", type: i7.CardHeaderComponent, selector: "fd-card-header", inputs: ["interactive", "tabindex"] }, { kind: "component", type: i7.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i7.CardTitleDirective, selector: "[fd-card-title]" }, { kind: "component", type: i8.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i9.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i10.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i10.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i10.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: i11.QuickViewComponent, selector: "fd-quick-view", inputs: ["id"] }, { kind: "component", type: i11.QuickViewSubheaderComponent, selector: "fd-quick-view-subheader" }, { kind: "component", type: i11.QuickViewSubheaderTitleComponent, selector: "fd-quick-view-subheader-title" }, { kind: "component", type: i11.QuickViewSubheaderSubtitleComponent, selector: "fd-quick-view-subheader-subtitle" }, { kind: "component", type: i11.QuickViewGroupComponent, selector: "fd-quick-view-group" }, { kind: "component", type: i11.QuickViewGroupItemComponent, selector: "fd-quick-view-group-item", inputs: ["id"] }, { kind: "component", type: i11.QuickViewGroupItemLabelComponent, selector: "fd-quick-view-group-item-label" }, { kind: "component", type: i11.QuickViewGroupItemContentComponent, selector: "fd-quick-view-group-item-content" }, { kind: "directive", type: i11.QuickViewGroupItemContentElementDirective, selector: "[fd-quick-view-group-item-content-element]" }, { kind: "component", type: i12.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i13.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i14.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i3.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i3.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
63
|
+
CardItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CardItemComponent, selector: "bsu-card-item", inputs: { setting: "setting" }, providers: [FormPanelService], viewQueries: [{ propertyName: "_quickViewTemplate", first: true, predicate: ["quickViewTemplate"], descendants: true, static: true }, { propertyName: "_contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<fd-card\r\n [cardType]=\"setting.CardType$Caption\"\r\n class=\"docs-flex-item-margin\"\r\n [class.openOnClick]=\"setting.openOnClick\"\r\n [style.width]=\"cardWidth\"\r\n [style.min-width]=\"minWidth\"\r\n [style.max-width]=\"maxWidth\"\r\n>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n setting.HeaderComponent ? renderHeaderComponent : renderHeader;\r\n context: {\r\n $implicit: mo,\r\n index: this.index\r\n }\r\n \"\r\n ></ng-container>\r\n\r\n <fd-card-content (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\" ellipsify *ngIf=\"!noContent || contextMenuItems\">\r\n <div #divEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"divEl\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n setting.ContentComponent ? contentTemplateComponent : contentTemplateRef;\r\n context: {\r\n $implicit: mo,\r\n index: this.index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <ng-container *ngIf=\"contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0\">\r\n <div\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"true\"\r\n [menuItems]=\"contextMenuItems\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></div>\r\n </ng-container>\r\n </fd-card-content>\r\n</fd-card>\r\n\r\n<ng-template #columnTemplate let-column let-mo=\"mo\" let-index=\"index\" let-layout94=\"layout94\"\r\n ><div\r\n *ngIf=\"column\"\r\n #divEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"divEl\"\r\n [dbName]=\"column.Name\"\r\n >\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [column]=\"column\"\r\n [value]=\"column | columnValue: mo | bbbTranslate\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [isChecked]=\"isChecked\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [controlUi]=\"column.Caption | controlUi: layout94\"\r\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\r\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\r\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\r\n [formLayoutShowLabel]=\"true\"\r\n ></bsu-column-renderer>\r\n </div>\r\n</ng-template>\r\n<ng-template #quickViewTemplate let-mo let-index=\"index\">\r\n <fd-quick-view [id]=\"'id'\" *ngIf=\"!noContent\">\r\n <fd-quick-view-group>\r\n <fd-quick-view-subheader\r\n *ngIf=\"setting.Avatar || setting.AvatarField || setting.TitleField || setting.SubtitleField\"\r\n >\r\n <fd-avatar\r\n *ngIf=\"setting.AvatarField || setting.Avatar\"\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"setting.CircleAvatar\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"avatarSize ? avatarSize : deviceSize === 's' ? 's' : 'm'\"\r\n [glyph]=\"\r\n setting.Avatar ||\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n >\r\n </fd-avatar>\r\n <fd-quick-view-subheader-title *ngIf=\"setting.TitleField\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </fd-quick-view-subheader-title>\r\n <fd-quick-view-subheader-subtitle *ngIf=\"setting.SubtitleField\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </fd-quick-view-subheader-subtitle>\r\n </fd-quick-view-subheader>\r\n <fd-quick-view-group-item *ngFor=\"let column of setting.FieldListMapped\">\r\n <ng-container *ngIf=\"column\">\r\n <fd-quick-view-group-item-label>\r\n {{ column.Caption | bbbTranslate }}\r\n </fd-quick-view-group-item-label>\r\n <fd-quick-view-group-item-content>\r\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-quick-view-group-item-content>\r\n </ng-container>\r\n </fd-quick-view-group-item>\r\n <fd-quick-view-group-item *ngIf=\"setting.DescriptionField\">\r\n <fd-quick-view-group-item-content>\r\n <fd-quick-view-group-item-label *ngIf=\"inlineEditMode && allowInlineEdit\">\r\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\r\n </fd-quick-view-group-item-label>\r\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.DescriptionField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-quick-view-group-item-content>\r\n <fd-quick-view-group-item-content\r\n class=\"action\"\r\n *ngIf=\"setting.ActionFieldNameField\"\r\n (click)=\"onAction(setting.ActionFieldCommandField || '')\"\r\n >\r\n <a fd-link>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.ActionFieldNameField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </a>\r\n </fd-quick-view-group-item-content>\r\n </fd-quick-view-group-item>\r\n </fd-quick-view-group>\r\n </fd-quick-view>\r\n</ng-template>\r\n<ng-template #contentTemplate let-mo let-index=\"index\">\r\n <fd-layout-grid>\r\n <div fdLayoutGridRow>\r\n <div [fdLayoutGridCol]=\"2\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n avatar;\r\n context: {\r\n $implicit: setting.Avatar,\r\n visible: setting.AvatarField || setting.Avatar,\r\n circle: setting.CircleAvatar,\r\n avatarField: setting.AvatarField\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n\r\n <div [fdLayoutGridCol]=\"10\">\r\n <span *ngIf=\"setting.TitleField\" style=\"font-weight: bold\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </span>\r\n <span *ngIf=\"setting.SubtitleField\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </span>\r\n </div>\r\n\r\n <div [fdLayoutGridCol]=\"12\">\r\n <ng-container *ngFor=\"let column of setting.FieldListMapped\">\r\n <div style=\"display: flex\">\r\n <label fd-form-label [colon]=\"true\" for=\"form-value-11\">{{\r\n column.Caption | bbbTranslate\r\n }}</label>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div [fdLayoutGridCol]=\"12\" *ngIf=\"setting.DescriptionField\">\r\n <label *ngIf=\"inlineEditMode && allowInlineEdit\">\r\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\r\n </label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.DescriptionField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </fd-layout-grid>\r\n</ng-template>\r\n<ng-template #avatar let-avatar let-visible=\"visible\" let-circle=\"circle\" let-avatarField=\"avatarField\">\r\n <fd-avatar\r\n *ngIf=\"visible\"\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"circle\"\r\n [image]=\"avatarField ? (mo[avatarField.Name]?.FileId | picFieldSrc: 'ID':avatarField.FieldDefId) : ''\"\r\n [size]=\"avatarSize ? avatarSize : deviceSize === 's' ? 's' : 'm'\"\r\n [glyph]=\"avatar || (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\"\r\n >\r\n </fd-avatar>\r\n</ng-template>\r\n\r\n<ng-template #contentTemplateComponent let-mo let-index=\"index\">\r\n <bnrc-dynamic-item-component\r\n [component]=\"setting.ContentComponent\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"setting.ContentComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n ></bnrc-dynamic-item-component>\r\n</ng-template>\r\n\r\n<ng-template #renderHeader let-mo let-index=\"index\">\r\n <fd-card-header\r\n *ngIf=\"\r\n isCheckList ||\r\n deviceName !== 'desktop' ||\r\n (contextMenuItems && contextMenuItems.length > 0 && !contextMenuInFooter)\r\n \"\r\n >\r\n <div\r\n fd-card-title\r\n [style.justify-content]=\"!isCheckList && canView && deviceName !== 'desktop' ? 'left' : 'space-between'\"\r\n >\r\n <div style=\"display: flex; justify-content: start; flex-grow: 1\">\r\n <fd-checkbox\r\n *ngIf=\"isCheckList\"\r\n [name]=\"mo.$Caption\"\r\n [ngModel]=\"isChecked\"\r\n (ngModelChange)=\"onRowCheck()\"\r\n ></fd-checkbox>\r\n <div\r\n *ngIf=\"!contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0\"\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [menuItems]=\"contextMenuItems\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></div>\r\n </div>\r\n <ng-container *ngIf=\"canView\">\r\n <button\r\n fd-button\r\n class=\"view-btn\"\r\n (click)=\"onRowClick()\"\r\n [glyph]=\"navigationArrow\"\r\n fdType=\"transparent\"\r\n ></button>\r\n </ng-container>\r\n </div>\r\n </fd-card-header>\r\n</ng-template>\r\n<ng-template #renderHeaderComponent let-mo let-index=\"index\">\r\n <bnrc-dynamic-item-component\r\n [component]=\"setting.HeaderComponent\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"setting.HeaderComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-item-component>\r\n</ng-template>\r\n", styles: ["fd-card:hover{box-shadow:0 0 0 .0625rem #2235487a,0 .625rem 1.875rem #22354840}fd-card fd-card-content{padding:0!important}fd-card fd-card-header{padding:.5rem}fd-card fd-card-header:hover{background:var(--fdCard_Background_Color)}fd-card fd-card-header .fd-card__title{display:flex;justify-content:space-between;align-items:center;width:100%}fd-card fd-card-header button,fd-card fd-card-header div[ulvcontextmenu]{z-index:6}fd-card fd-card-header:hover{background:inherit}fd-quick-view-subheader ::ng-deep div{background:inherit}.action{cursor:pointer;margin-top:6px;flex:1;display:flex;justify-content:end;flex-direction:column}.openOnClick{cursor:pointer}\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: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i3.EllipsifyDirective, selector: "[ellipsify]", inputs: ["limitLine"] }, { kind: "component", type: i4.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: i5.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.CardComponent, selector: "fd-card", inputs: ["badge", "isLoading", "cardType", "id", "role"] }, { kind: "component", type: i7.CardHeaderComponent, selector: "fd-card-header", inputs: ["interactive", "tabindex"] }, { kind: "component", type: i7.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i7.CardTitleDirective, selector: "[fd-card-title]" }, { kind: "component", type: i8.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i9.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i10.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i10.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i10.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: i11.QuickViewComponent, selector: "fd-quick-view", inputs: ["id"] }, { kind: "component", type: i11.QuickViewSubheaderComponent, selector: "fd-quick-view-subheader" }, { kind: "component", type: i11.QuickViewSubheaderTitleComponent, selector: "fd-quick-view-subheader-title" }, { kind: "component", type: i11.QuickViewSubheaderSubtitleComponent, selector: "fd-quick-view-subheader-subtitle" }, { kind: "component", type: i11.QuickViewGroupComponent, selector: "fd-quick-view-group" }, { kind: "component", type: i11.QuickViewGroupItemComponent, selector: "fd-quick-view-group-item", inputs: ["id"] }, { kind: "component", type: i11.QuickViewGroupItemLabelComponent, selector: "fd-quick-view-group-item-label" }, { kind: "component", type: i11.QuickViewGroupItemContentComponent, selector: "fd-quick-view-group-item-content" }, { kind: "directive", type: i11.QuickViewGroupItemContentElementDirective, selector: "[fd-quick-view-group-item-content-element]" }, { kind: "component", type: i12.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i13.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i14.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i3.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i3.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
64
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CardItemComponent, decorators: [{
|
|
65
65
|
type: Component,
|
|
66
|
-
args: [{ selector: 'bsu-card-item', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-card\n [cardType]=\"setting.CardType$Caption\"\n class=\"docs-flex-item-margin\"\n [class.openOnClick]=\"setting.openOnClick\"\n [style.width]=\"cardWidth\"\n [style.min-width]=\"minWidth\"\n [style.max-width]=\"maxWidth\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n setting.HeaderComponent ? renderHeaderComponent : renderHeader;\n context: {\n $implicit: mo,\n index: this.index\n }\n \"\n ></ng-container>\n\n <fd-card-content (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\" ellipsify *ngIf=\"!noContent || contextMenuItems\">\n <div #divEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"divEl\">\n <ng-container\n *ngTemplateOutlet=\"\n setting.ContentComponent ? contentTemplateComponent : contentTemplateRef;\n context: {\n $implicit: mo,\n index: this.index\n }\n \"\n ></ng-container>\n </div>\n <ng-container *ngIf=\"contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0\">\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [footerMode]=\"true\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"styleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></div>\n </ng-container>\n </fd-card-content>\n</fd-card>\n\n<ng-template #columnTemplate let-column let-mo=\"mo\" let-index=\"index\" let-layout94=\"layout94\"\n ><div\n *ngIf=\"column\"\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [isChecked]=\"isChecked\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n</ng-template>\n<ng-template #quickViewTemplate let-mo let-index=\"index\">\n <fd-quick-view [id]=\"'id'\" *ngIf=\"!noContent\">\n <fd-quick-view-group>\n <fd-quick-view-subheader\n *ngIf=\"setting.Avatar || setting.AvatarField || setting.TitleField || setting.SubtitleField\"\n >\n <fd-avatar\n *ngIf=\"setting.AvatarField || setting.Avatar\"\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"setting.CircleAvatar\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"avatarSize ? avatarSize : deviceSize === 's' ? 's' : 'm'\"\n [glyph]=\"\n setting.Avatar ||\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n <fd-quick-view-subheader-title *ngIf=\"setting.TitleField\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </fd-quick-view-subheader-title>\n <fd-quick-view-subheader-subtitle *ngIf=\"setting.SubtitleField\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </fd-quick-view-subheader-subtitle>\n </fd-quick-view-subheader>\n <fd-quick-view-group-item *ngFor=\"let column of setting.FieldListMapped\">\n <ng-container *ngIf=\"column\">\n <fd-quick-view-group-item-label>\n {{ column.Caption | bbbTranslate }}\n </fd-quick-view-group-item-label>\n <fd-quick-view-group-item-content>\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </fd-quick-view-group-item-content>\n </ng-container>\n </fd-quick-view-group-item>\n <fd-quick-view-group-item *ngIf=\"setting.DescriptionField\">\n <fd-quick-view-group-item-content>\n <fd-quick-view-group-item-label *ngIf=\"inlineEditMode && allowInlineEdit\">\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\n </fd-quick-view-group-item-label>\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.DescriptionField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </fd-quick-view-group-item-content>\n <fd-quick-view-group-item-content\n class=\"action\"\n *ngIf=\"setting.ActionFieldNameField\"\n (click)=\"onAction(setting.ActionFieldCommandField || '')\"\n >\n <a fd-link>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.ActionFieldNameField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </a>\n </fd-quick-view-group-item-content>\n </fd-quick-view-group-item>\n </fd-quick-view-group>\n </fd-quick-view>\n</ng-template>\n<ng-template #contentTemplate let-mo let-index=\"index\">\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <div [fdLayoutGridCol]=\"2\">\n <ng-container\n *ngTemplateOutlet=\"\n avatar;\n context: {\n $implicit: setting.Avatar,\n visible: setting.AvatarField || setting.Avatar,\n circle: setting.CircleAvatar,\n avatarField: setting.AvatarField\n }\n \"\n ></ng-container>\n </div>\n\n <div [fdLayoutGridCol]=\"10\">\n <span *ngIf=\"setting.TitleField\" style=\"font-weight: bold\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </span>\n <span *ngIf=\"setting.SubtitleField\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </span>\n </div>\n\n <div [fdLayoutGridCol]=\"12\">\n <ng-container *ngFor=\"let column of setting.FieldListMapped\">\n <div style=\"display: flex\">\n <label fd-form-label [colon]=\"true\" for=\"form-value-11\">{{\n column.Caption | bbbTranslate\n }}</label>\n\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n <div [fdLayoutGridCol]=\"12\" *ngIf=\"setting.DescriptionField\">\n <label *ngIf=\"inlineEditMode && allowInlineEdit\">\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\n </label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.DescriptionField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </div>\n </fd-layout-grid>\n</ng-template>\n<ng-template #avatar let-avatar let-visible=\"visible\" let-circle=\"circle\" let-avatarField=\"avatarField\">\n <fd-avatar\n *ngIf=\"visible\"\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"circle\"\n [image]=\"avatarField ? (mo[avatarField.Name]?.FileId | picFieldSrc: 'ID':avatarField.FieldDefId) : ''\"\n [size]=\"avatarSize ? avatarSize : deviceSize === 's' ? 's' : 'm'\"\n [glyph]=\"avatar || (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\"\n >\n </fd-avatar>\n</ng-template>\n\n<ng-template #contentTemplateComponent let-mo let-index=\"index\">\n <bnrc-dynamic-item-component\n [component]=\"setting.ContentComponent\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isChecked]=\"isChecked\"\n [setting]=\"setting\"\n [parameters]=\"setting.ContentComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n ></bnrc-dynamic-item-component>\n</ng-template>\n\n<ng-template #renderHeader let-mo let-index=\"index\">\n <fd-card-header\n *ngIf=\"\n isCheckList ||\n deviceName !== 'desktop' ||\n (contextMenuItems && contextMenuItems.length > 0 && !contextMenuInFooter)\n \"\n >\n <div\n fd-card-title\n [style.justify-content]=\"!isCheckList && canView && deviceName !== 'desktop' ? 'left' : 'space-between'\"\n >\n <div style=\"display: flex; justify-content: start; flex-grow: 1\">\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (ngModelChange)=\"onRowCheck()\"\n ></fd-checkbox>\n <div\n *ngIf=\"!contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0\"\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"styleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></div>\n </div>\n <ng-container *ngIf=\"canView\">\n <button\n fd-button\n class=\"view-btn\"\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n </ng-container>\n </div>\n </fd-card-header>\n</ng-template>\n<ng-template #renderHeaderComponent let-mo let-index=\"index\">\n <bnrc-dynamic-item-component\n [component]=\"setting.HeaderComponent\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isChecked]=\"isChecked\"\n [setting]=\"setting\"\n [parameters]=\"setting.HeaderComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-item-component>\n</ng-template>\n", styles: ["fd-card:hover{box-shadow:0 0 0 .0625rem #2235487a,0 .625rem 1.875rem #22354840}fd-card fd-card-content{padding:0!important}fd-card fd-card-header{padding:.5rem}fd-card fd-card-header:hover{background:var(--fdCard_Background_Color)}fd-card fd-card-header .fd-card__title{display:flex;justify-content:space-between;align-items:center;width:100%}fd-card fd-card-header button,fd-card fd-card-header div[ulvcontextmenu]{z-index:6}fd-card fd-card-header:hover{background:inherit}fd-quick-view-subheader ::ng-deep div{background:inherit}.action{cursor:pointer;margin-top:6px;flex:1;display:flex;justify-content:end;flex-direction:column}.openOnClick{cursor:pointer}\n"] }]
|
|
66
|
+
args: [{ selector: 'bsu-card-item', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-card\r\n [cardType]=\"setting.CardType$Caption\"\r\n class=\"docs-flex-item-margin\"\r\n [class.openOnClick]=\"setting.openOnClick\"\r\n [style.width]=\"cardWidth\"\r\n [style.min-width]=\"minWidth\"\r\n [style.max-width]=\"maxWidth\"\r\n>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n setting.HeaderComponent ? renderHeaderComponent : renderHeader;\r\n context: {\r\n $implicit: mo,\r\n index: this.index\r\n }\r\n \"\r\n ></ng-container>\r\n\r\n <fd-card-content (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\" ellipsify *ngIf=\"!noContent || contextMenuItems\">\r\n <div #divEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"divEl\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n setting.ContentComponent ? contentTemplateComponent : contentTemplateRef;\r\n context: {\r\n $implicit: mo,\r\n index: this.index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <ng-container *ngIf=\"contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0\">\r\n <div\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"true\"\r\n [menuItems]=\"contextMenuItems\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></div>\r\n </ng-container>\r\n </fd-card-content>\r\n</fd-card>\r\n\r\n<ng-template #columnTemplate let-column let-mo=\"mo\" let-index=\"index\" let-layout94=\"layout94\"\r\n ><div\r\n *ngIf=\"column\"\r\n #divEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"divEl\"\r\n [dbName]=\"column.Name\"\r\n >\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [column]=\"column\"\r\n [value]=\"column | columnValue: mo | bbbTranslate\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [isChecked]=\"isChecked\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [controlUi]=\"column.Caption | controlUi: layout94\"\r\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\r\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\r\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\r\n [formLayoutShowLabel]=\"true\"\r\n ></bsu-column-renderer>\r\n </div>\r\n</ng-template>\r\n<ng-template #quickViewTemplate let-mo let-index=\"index\">\r\n <fd-quick-view [id]=\"'id'\" *ngIf=\"!noContent\">\r\n <fd-quick-view-group>\r\n <fd-quick-view-subheader\r\n *ngIf=\"setting.Avatar || setting.AvatarField || setting.TitleField || setting.SubtitleField\"\r\n >\r\n <fd-avatar\r\n *ngIf=\"setting.AvatarField || setting.Avatar\"\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"setting.CircleAvatar\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"avatarSize ? avatarSize : deviceSize === 's' ? 's' : 'm'\"\r\n [glyph]=\"\r\n setting.Avatar ||\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n >\r\n </fd-avatar>\r\n <fd-quick-view-subheader-title *ngIf=\"setting.TitleField\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </fd-quick-view-subheader-title>\r\n <fd-quick-view-subheader-subtitle *ngIf=\"setting.SubtitleField\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </fd-quick-view-subheader-subtitle>\r\n </fd-quick-view-subheader>\r\n <fd-quick-view-group-item *ngFor=\"let column of setting.FieldListMapped\">\r\n <ng-container *ngIf=\"column\">\r\n <fd-quick-view-group-item-label>\r\n {{ column.Caption | bbbTranslate }}\r\n </fd-quick-view-group-item-label>\r\n <fd-quick-view-group-item-content>\r\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-quick-view-group-item-content>\r\n </ng-container>\r\n </fd-quick-view-group-item>\r\n <fd-quick-view-group-item *ngIf=\"setting.DescriptionField\">\r\n <fd-quick-view-group-item-content>\r\n <fd-quick-view-group-item-label *ngIf=\"inlineEditMode && allowInlineEdit\">\r\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\r\n </fd-quick-view-group-item-label>\r\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.DescriptionField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-quick-view-group-item-content>\r\n <fd-quick-view-group-item-content\r\n class=\"action\"\r\n *ngIf=\"setting.ActionFieldNameField\"\r\n (click)=\"onAction(setting.ActionFieldCommandField || '')\"\r\n >\r\n <a fd-link>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.ActionFieldNameField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </a>\r\n </fd-quick-view-group-item-content>\r\n </fd-quick-view-group-item>\r\n </fd-quick-view-group>\r\n </fd-quick-view>\r\n</ng-template>\r\n<ng-template #contentTemplate let-mo let-index=\"index\">\r\n <fd-layout-grid>\r\n <div fdLayoutGridRow>\r\n <div [fdLayoutGridCol]=\"2\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n avatar;\r\n context: {\r\n $implicit: setting.Avatar,\r\n visible: setting.AvatarField || setting.Avatar,\r\n circle: setting.CircleAvatar,\r\n avatarField: setting.AvatarField\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n\r\n <div [fdLayoutGridCol]=\"10\">\r\n <span *ngIf=\"setting.TitleField\" style=\"font-weight: bold\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </span>\r\n <span *ngIf=\"setting.SubtitleField\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </span>\r\n </div>\r\n\r\n <div [fdLayoutGridCol]=\"12\">\r\n <ng-container *ngFor=\"let column of setting.FieldListMapped\">\r\n <div style=\"display: flex\">\r\n <label fd-form-label [colon]=\"true\" for=\"form-value-11\">{{\r\n column.Caption | bbbTranslate\r\n }}</label>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div [fdLayoutGridCol]=\"12\" *ngIf=\"setting.DescriptionField\">\r\n <label *ngIf=\"inlineEditMode && allowInlineEdit\">\r\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\r\n </label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.DescriptionField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </fd-layout-grid>\r\n</ng-template>\r\n<ng-template #avatar let-avatar let-visible=\"visible\" let-circle=\"circle\" let-avatarField=\"avatarField\">\r\n <fd-avatar\r\n *ngIf=\"visible\"\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"circle\"\r\n [image]=\"avatarField ? (mo[avatarField.Name]?.FileId | picFieldSrc: 'ID':avatarField.FieldDefId) : ''\"\r\n [size]=\"avatarSize ? avatarSize : deviceSize === 's' ? 's' : 'm'\"\r\n [glyph]=\"avatar || (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\"\r\n >\r\n </fd-avatar>\r\n</ng-template>\r\n\r\n<ng-template #contentTemplateComponent let-mo let-index=\"index\">\r\n <bnrc-dynamic-item-component\r\n [component]=\"setting.ContentComponent\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"setting.ContentComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n ></bnrc-dynamic-item-component>\r\n</ng-template>\r\n\r\n<ng-template #renderHeader let-mo let-index=\"index\">\r\n <fd-card-header\r\n *ngIf=\"\r\n isCheckList ||\r\n deviceName !== 'desktop' ||\r\n (contextMenuItems && contextMenuItems.length > 0 && !contextMenuInFooter)\r\n \"\r\n >\r\n <div\r\n fd-card-title\r\n [style.justify-content]=\"!isCheckList && canView && deviceName !== 'desktop' ? 'left' : 'space-between'\"\r\n >\r\n <div style=\"display: flex; justify-content: start; flex-grow: 1\">\r\n <fd-checkbox\r\n *ngIf=\"isCheckList\"\r\n [name]=\"mo.$Caption\"\r\n [ngModel]=\"isChecked\"\r\n (ngModelChange)=\"onRowCheck()\"\r\n ></fd-checkbox>\r\n <div\r\n *ngIf=\"!contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0\"\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [menuItems]=\"contextMenuItems\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></div>\r\n </div>\r\n <ng-container *ngIf=\"canView\">\r\n <button\r\n fd-button\r\n class=\"view-btn\"\r\n (click)=\"onRowClick()\"\r\n [glyph]=\"navigationArrow\"\r\n fdType=\"transparent\"\r\n ></button>\r\n </ng-container>\r\n </div>\r\n </fd-card-header>\r\n</ng-template>\r\n<ng-template #renderHeaderComponent let-mo let-index=\"index\">\r\n <bnrc-dynamic-item-component\r\n [component]=\"setting.HeaderComponent\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"setting.HeaderComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-item-component>\r\n</ng-template>\r\n", styles: ["fd-card:hover{box-shadow:0 0 0 .0625rem #2235487a,0 .625rem 1.875rem #22354840}fd-card fd-card-content{padding:0!important}fd-card fd-card-header{padding:.5rem}fd-card fd-card-header:hover{background:var(--fdCard_Background_Color)}fd-card fd-card-header .fd-card__title{display:flex;justify-content:space-between;align-items:center;width:100%}fd-card fd-card-header button,fd-card fd-card-header div[ulvcontextmenu]{z-index:6}fd-card fd-card-header:hover{background:inherit}fd-quick-view-subheader ::ng-deep div{background:inherit}.action{cursor:pointer;margin-top:6px;flex:1;display:flex;justify-content:end;flex-direction:column}.openOnClick{cursor:pointer}\n"] }]
|
|
67
67
|
}], propDecorators: { setting: [{
|
|
68
68
|
type: Input
|
|
69
69
|
}], _quickViewTemplate: [{
|
|
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
73
73
|
type: ViewChild,
|
|
74
74
|
args: ['contentTemplate', { static: true }]
|
|
75
75
|
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NhcmQtaXRlbS9jYXJkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY2FyZC1pdGVtL2NhcmQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLEtBQUssRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVcEYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDBCQUEwQjtJQVc3RCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBdUIsRUFBRTtZQUMxQyxLQUFLLGVBQWU7Z0JBQ2hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2hELE1BQU07WUFDVjtnQkFDSSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUNsRCxNQUFNO1NBQ2I7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksT0FBTyxDQUFDLG1CQUFtQixFQUFFO1lBQzdCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDbkM7UUFDRCxJQUNJLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDcEIsQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUNuQixDQUFDLE9BQU8sQ0FBQyxhQUFhO1lBQ3RCLENBQUMsT0FBTyxDQUFDLFNBQVM7WUFDbEIsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQzNCO1lBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDekI7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUN0RTtRQUNELElBQUksVUFBVSxDQUFDO1FBQ2YsUUFBUSxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3hCLEtBQUssR0FBRztnQkFDSixVQUFVLEdBQUcsR0FBRyxDQUFDO2dCQUNqQixNQUFNO1lBQ1YsS0FBSyxHQUFHO2dCQUNKLFVBQVUsR0FBRyxHQUFHLENBQUM7Z0JBQ2pCLE1BQU07WUFDVixLQUFLLEdBQUc7Z0JBQ0osVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDbEIsTUFBTTtZQUNWLEtBQUssR0FBRyxDQUFDO1lBQ1Q7Z0JBQ0ksVUFBVSxHQUFHLEdBQUcsQ0FBQztnQkFDakIsTUFBTTtTQUNiO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDakMsQ0FBQzs7OEdBdERRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdFQUhmLENBQUMsZ0JBQWdCLENBQUMsNFNDVGpDLDJtZkFnWEE7MkZEcFdhLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDSSxlQUFlLGFBR2QsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFDWix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQzRDLGtCQUFrQjtzQkFBbkUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0EsZ0JBQWdCO3NCQUEvRCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNpemUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHsgQmFzZVZpZXdJdGVtUHJvcHNDb21wb25lbnQsIEZvcm1QYW5lbFNlcnZpY2UgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBVaUNhcmRMaXN0Vmlld1NldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC12aWV3JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtY2FyZC1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYXJkLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtGb3JtUGFuZWxTZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkSXRlbUNvbXBvbmVudCBleHRlbmRzIEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBzZXR0aW5nOiBVaUNhcmRMaXN0Vmlld1NldHRpbmc7XG4gICAgQFZpZXdDaGlsZCgncXVpY2tWaWV3VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfcXVpY2tWaWV3VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnY29udGVudFRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSkgX2NvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBub0NvbnRlbnQ6IGJvb2xlYW47XG4gICAgY2FyZFdpZHRoOiBzdHJpbmc7XG4gICAgbWF4V2lkdGg6IHN0cmluZztcbiAgICBtaW5XaWR0aDogc3RyaW5nO1xuICAgIGNvbnRleHRNZW51SW5Gb290ZXI6IGJvb2xlYW47XG4gICAgYXZhdGFyU2l6ZTogU2l6ZTtcbiAgICBjb250ZW50VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zZXR0aW5nLkNhcmRUeXBlJENhcHRpb24gYXMgYW55KSB7XG4gICAgICAgICAgICBjYXNlICdpbmxpbmUtZmllbGRzJzpcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZVJlZiA9IHRoaXMuX2NvbnRlbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGVSZWYgPSB0aGlzLl9xdWlja1ZpZXdUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXR0aW5nID0gdGhpcy5zZXR0aW5nO1xuICAgICAgICBpZiAoc2V0dGluZy5Db250ZXh0TWVudUluRm9vdGVyKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRNZW51SW5Gb290ZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFzZXR0aW5nLkF2YXRhckZpZWxkICYmXG4gICAgICAgICAgICAhc2V0dGluZy5UaXRsZUZpZWxkICYmXG4gICAgICAgICAgICAhc2V0dGluZy5TdWJ0aXRsZUZpZWxkICYmXG4gICAgICAgICAgICAhc2V0dGluZy5GaWVsZExpc3QgJiZcbiAgICAgICAgICAgICFzZXR0aW5nLkNvbnRlbnRDb21wb25lbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLm5vQ29udGVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNldHRpbmcuQ2FyZFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLm1pbldpZHRoID0gdGhpcy5tYXhXaWR0aCA9IHRoaXMuY2FyZFdpZHRoID0gc2V0dGluZy5DYXJkV2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGF2YXRhclNpemU7XG4gICAgICAgIHN3aXRjaCAoc2V0dGluZy5BdmF0YXJTaXplKSB7XG4gICAgICAgICAgICBjYXNlICcyJzpcbiAgICAgICAgICAgICAgICBhdmF0YXJTaXplID0gJ20nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnMyc6XG4gICAgICAgICAgICAgICAgYXZhdGFyU2l6ZSA9ICdsJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJzQnOlxuICAgICAgICAgICAgICAgIGF2YXRhclNpemUgPSAneGwnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnMSc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGF2YXRhclNpemUgPSAncyc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdmF0YXJTaXplID0gYXZhdGFyU2l6ZTtcbiAgICB9XG59XG4iLCI8ZmQtY2FyZFxuICAgIFtjYXJkVHlwZV09XCJzZXR0aW5nLkNhcmRUeXBlJENhcHRpb25cIlxuICAgIGNsYXNzPVwiZG9jcy1mbGV4LWl0ZW0tbWFyZ2luXCJcbiAgICBbY2xhc3Mub3Blbk9uQ2xpY2tdPVwic2V0dGluZy5vcGVuT25DbGlja1wiXG4gICAgW3N0eWxlLndpZHRoXT1cImNhcmRXaWR0aFwiXG4gICAgW3N0eWxlLm1pbi13aWR0aF09XCJtaW5XaWR0aFwiXG4gICAgW3N0eWxlLm1heC13aWR0aF09XCJtYXhXaWR0aFwiXG4+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgc2V0dGluZy5IZWFkZXJDb21wb25lbnQgPyByZW5kZXJIZWFkZXJDb21wb25lbnQgOiByZW5kZXJIZWFkZXI7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBtbyxcbiAgICAgICAgICAgICAgICBpbmRleDogdGhpcy5pbmRleFxuICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDxmZC1jYXJkLWNvbnRlbnQgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiIChkYmxjbGljayk9XCJvblJvd0NsaWNrKClcIiBlbGxpcHNpZnkgKm5nSWY9XCIhbm9Db250ZW50IHx8IGNvbnRleHRNZW51SXRlbXNcIj5cbiAgICAgICAgPGRpdiAjZGl2RWwgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIiBbaG9zdEVsXT1cImRpdkVsXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZy5Db250ZW50Q29tcG9uZW50ID8gY29udGVudFRlbXBsYXRlQ29tcG9uZW50IDogY29udGVudFRlbXBsYXRlUmVmO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IHRoaXMuaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGV4dE1lbnVJbkZvb3RlciAmJiBjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHVsdkNvbnRleHRNZW51XG4gICAgICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgICAgICAgICAgW2Zvb3Rlck1vZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIChjb21tYW5kQ2xpY2spPVwib25VbHZDb21tYW5kKClcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2ZkLWNhcmQtY29udGVudD5cbjwvZmQtY2FyZD5cblxuPG5nLXRlbXBsYXRlICNjb2x1bW5UZW1wbGF0ZSBsZXQtY29sdW1uIGxldC1tbz1cIm1vXCIgbGV0LWluZGV4PVwiaW5kZXhcIiBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiXG4gICAgPjxkaXZcbiAgICAgICAgKm5nSWY9XCJjb2x1bW5cIlxuICAgICAgICAjZGl2RWxcbiAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICBbaG9zdEVsXT1cImRpdkVsXCJcbiAgICAgICAgW2RiTmFtZV09XCJjb2x1bW4uTmFtZVwiXG4gICAgPlxuICAgICAgICA8YnN1LWNvbHVtbi1yZW5kZXJlclxuICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJjb2x1bW4gfCBjb2x1bW5WYWx1ZTogbW8gfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW2ljb25dPVwiY29sdW1uIHwgY29sdW1uSWNvbjogbW9cIlxuICAgICAgICAgICAgW2VkaXRNb2RlXT1cImlzQ2hlY2tlZCAmJiBpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXRcIlxuICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICBbY29udHJvbFVpXT1cImNvbHVtbi5DYXB0aW9uIHwgY29udHJvbFVpOiBsYXlvdXQ5NFwiXG4gICAgICAgICAgICAoa2V5dXAuY29udHJvbC5lbnRlcik9XCJvbkVkaXRGb3JtUGFuZWxTYXZlKCRldmVudClcIlxuICAgICAgICAgICAgKGtleXVwLmVzYyk9XCJvbkVkaXRGb3JtUGFuZWxDYW5jZWwoJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5UYWIpPVwib25UYWJLZXlEb3duKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgICAgIFtmb3JtTGF5b3V0U2hvd0xhYmVsXT1cInRydWVcIlxuICAgICAgICA+PC9ic3UtY29sdW1uLXJlbmRlcmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcXVpY2tWaWV3VGVtcGxhdGUgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgPGZkLXF1aWNrLXZpZXcgW2lkXT1cIidpZCdcIiAqbmdJZj1cIiFub0NvbnRlbnRcIj5cbiAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXA+XG4gICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1zdWJoZWFkZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNldHRpbmcuQXZhdGFyIHx8IHNldHRpbmcuQXZhdGFyRmllbGQgfHwgc2V0dGluZy5UaXRsZUZpZWxkIHx8IHNldHRpbmcuU3VidGl0bGVGaWVsZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNldHRpbmcuQXZhdGFyRmllbGQgfHwgc2V0dGluZy5BdmF0YXJcIlxuICAgICAgICAgICAgICAgICAgICBhbHRlckljb249XCJhbHR8Y29udGVudHxiYWNrdXB8ZGVmYXVsdC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2NpcmNsZV09XCJzZXR0aW5nLkNpcmNsZUF2YXRhclwiXG4gICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcuQXZhdGFyRmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChtb1tzZXR0aW5nLkF2YXRhckZpZWxkLk5hbWVdPy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpzZXR0aW5nLkF2YXRhckZpZWxkLkZpZWxkRGVmSWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCJhdmF0YXJTaXplID8gYXZhdGFyU2l6ZSA6IGRldmljZVNpemUgPT09ICdzJyA/ICdzJyA6ICdtJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcuQXZhdGFyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAobW8uJFN0YXRlID09PSAnTmV3JyAmJiAhaXNDaGVja2VkID8gJ2Zhdm9yaXRlJyA6IGlubGluZUVkaXRNb2RlICYmIGlzQ2hlY2tlZCA/ICdlZGl0JyA6ICcnKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2ZkLWF2YXRhcj5cbiAgICAgICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1zdWJoZWFkZXItdGl0bGUgKm5nSWY9XCJzZXR0aW5nLlRpdGxlRmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5UaXRsZUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctc3ViaGVhZGVyLXRpdGxlPlxuICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LXN1YmhlYWRlci1zdWJ0aXRsZSAqbmdJZj1cInNldHRpbmcuU3VidGl0bGVGaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlN1YnRpdGxlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1zdWJoZWFkZXItc3VidGl0bGU+XG4gICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctc3ViaGVhZGVyPlxuICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbSAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHNldHRpbmcuRmllbGRMaXN0TWFwcGVkXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgY29sdW1uLkNhcHRpb24gfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWNvbnRlbnQtZWxlbWVudCBjbGFzcz1cImdyb3VwLWl0ZW0tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0+XG4gICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtICpuZ0lmPVwic2V0dGluZy5EZXNjcmlwdGlvbkZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWxhYmVsICpuZ0lmPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBzZXR0aW5nLkRlc2NyaXB0aW9uRmllbGQ/LkFsaWFzIHwgYmJiVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50LWVsZW1lbnQgY2xhc3M9XCJncm91cC1pdGVtLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLkRlc2NyaXB0aW9uRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5BY3Rpb25GaWVsZE5hbWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbihzZXR0aW5nLkFjdGlvbkZpZWxkQ29tbWFuZEZpZWxkIHx8ICcnKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YSBmZC1saW5rPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuQWN0aW9uRmllbGROYW1lRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudD5cbiAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1ncm91cC1pdGVtPlxuICAgICAgICA8L2ZkLXF1aWNrLXZpZXctZ3JvdXA+XG4gICAgPC9mZC1xdWljay12aWV3PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlIGxldC1tbyBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxmZC1sYXlvdXQtZ3JpZD5cbiAgICAgICAgPGRpdiBmZExheW91dEdyaWRSb3c+XG4gICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiMlwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuQXZhdGFyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGU6IHNldHRpbmcuQXZhdGFyRmllbGQgfHwgc2V0dGluZy5BdmF0YXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2lyY2xlOiBzZXR0aW5nLkNpcmNsZUF2YXRhcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmF0YXJGaWVsZDogc2V0dGluZy5BdmF0YXJGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiMTBcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNldHRpbmcuVGl0bGVGaWVsZFwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IGJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5UaXRsZUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZXR0aW5nLlN1YnRpdGxlRmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5TdWJ0aXRsZUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cIjEyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHNldHRpbmcuRmllbGRMaXN0TWFwcGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBbY29sb25dPVwidHJ1ZVwiIGZvcj1cImZvcm0tdmFsdWUtMTFcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5DYXB0aW9uIHwgYmJiVHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cIjEyXCIgKm5nSWY9XCJzZXR0aW5nLkRlc2NyaXB0aW9uRmllbGRcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXRcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgc2V0dGluZy5EZXNjcmlwdGlvbkZpZWxkPy5BbGlhcyB8IGJiYlRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLkRlc2NyaXB0aW9uRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZmQtbGF5b3V0LWdyaWQ+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNhdmF0YXIgbGV0LWF2YXRhciBsZXQtdmlzaWJsZT1cInZpc2libGVcIiBsZXQtY2lyY2xlPVwiY2lyY2xlXCIgbGV0LWF2YXRhckZpZWxkPVwiYXZhdGFyRmllbGRcIj5cbiAgICA8ZmQtYXZhdGFyXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZVwiXG4gICAgICAgIGFsdGVySWNvbj1cImFsdHxjb250ZW50fGJhY2t1cHxkZWZhdWx0LWljb25cIlxuICAgICAgICBbY2lyY2xlXT1cImNpcmNsZVwiXG4gICAgICAgIFtpbWFnZV09XCJhdmF0YXJGaWVsZCA/IChtb1thdmF0YXJGaWVsZC5OYW1lXT8uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6YXZhdGFyRmllbGQuRmllbGREZWZJZCkgOiAnJ1wiXG4gICAgICAgIFtzaXplXT1cImF2YXRhclNpemUgPyBhdmF0YXJTaXplIDogZGV2aWNlU2l6ZSA9PT0gJ3MnID8gJ3MnIDogJ20nXCJcbiAgICAgICAgW2dseXBoXT1cImF2YXRhciB8fCAobW8uJFN0YXRlID09PSAnTmV3JyAmJiAhaXNDaGVja2VkID8gJ2Zhdm9yaXRlJyA6IGlubGluZUVkaXRNb2RlICYmIGlzQ2hlY2tlZCA/ICdlZGl0JyA6ICcnKVwiXG4gICAgPlxuICAgIDwvZmQtYXZhdGFyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGVDb21wb25lbnQgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxuICAgICAgICBbY29tcG9uZW50XT1cInNldHRpbmcuQ29udGVudENvbXBvbmVudFwiXG4gICAgICAgIFttb109XCJtb1wiXG4gICAgICAgIFtzdHlsZUluZGV4XT1cIm1vLiRTdHlsZUluZGV4XCJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICBbc2V0dGluZ109XCJzZXR0aW5nXCJcbiAgICAgICAgW3BhcmFtZXRlcnNdPVwic2V0dGluZy5Db250ZW50Q29tcG9uZW50LlNldHRpbmdzXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgID48L2JucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcmVuZGVySGVhZGVyIGxldC1tbyBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxmZC1jYXJkLWhlYWRlclxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgaXNDaGVja0xpc3QgfHxcbiAgICAgICAgICAgIGRldmljZU5hbWUgIT09ICdkZXNrdG9wJyB8fFxuICAgICAgICAgICAgKGNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwICYmICFjb250ZXh0TWVudUluRm9vdGVyKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgZmQtY2FyZC10aXRsZVxuICAgICAgICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCIhaXNDaGVja0xpc3QgJiYgY2FuVmlldyAmJiBkZXZpY2VOYW1lICE9PSAnZGVza3RvcCcgPyAnbGVmdCcgOiAnc3BhY2UtYmV0d2VlbidcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzdGFydDsgZmxleC1ncm93OiAxXCI+XG4gICAgICAgICAgICAgICAgPGZkLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJtby4kQ2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUm93Q2hlY2soKVwiXG4gICAgICAgICAgICAgICAgPjwvZmQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb250ZXh0TWVudUluRm9vdGVyICYmIGNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgdWx2Q29udGV4dE1lbnVcbiAgICAgICAgICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgIFttZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgICAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICAgICAgICAgIChjb21tYW5kQ2xpY2spPVwib25VbHZDb21tYW5kKClcIlxuICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhblZpZXdcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZpZXctYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2soKVwiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZmQtY2FyZC1oZWFkZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNyZW5kZXJIZWFkZXJDb21wb25lbnQgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxuICAgICAgICBbY29tcG9uZW50XT1cInNldHRpbmcuSGVhZGVyQ29tcG9uZW50XCJcbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwibW8uJFN0eWxlSW5kZXhcIlxuICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIFtzZXR0aW5nXT1cInNldHRpbmdcIlxuICAgICAgICBbcGFyYW1ldGVyc109XCJzZXR0aW5nLkhlYWRlckNvbXBvbmVudC5TZXR0aW5nc1wiXG4gICAgICAgIFtlZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgIFtjYW5WaWV3XT1cImNhblZpZXdcIlxuICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgIFtuYXZpZ2F0aW9uQXJyb3ddPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgKGV2ZW50cyk9XCJvbkR5bmFtaWNDb21wb25lbnRFdmVudHMoJGV2ZW50KVwiXG4gICAgPjwvYm5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NhcmQtaXRlbS9jYXJkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY2FyZC1pdGVtL2NhcmQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLEtBQUssRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVcEYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDBCQUEwQjtJQVc3RCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBdUIsRUFBRTtZQUMxQyxLQUFLLGVBQWU7Z0JBQ2hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2hELE1BQU07WUFDVjtnQkFDSSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUNsRCxNQUFNO1NBQ2I7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksT0FBTyxDQUFDLG1CQUFtQixFQUFFO1lBQzdCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDbkM7UUFDRCxJQUNJLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDcEIsQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUNuQixDQUFDLE9BQU8sQ0FBQyxhQUFhO1lBQ3RCLENBQUMsT0FBTyxDQUFDLFNBQVM7WUFDbEIsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQzNCO1lBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDekI7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUN0RTtRQUNELElBQUksVUFBVSxDQUFDO1FBQ2YsUUFBUSxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3hCLEtBQUssR0FBRztnQkFDSixVQUFVLEdBQUcsR0FBRyxDQUFDO2dCQUNqQixNQUFNO1lBQ1YsS0FBSyxHQUFHO2dCQUNKLFVBQVUsR0FBRyxHQUFHLENBQUM7Z0JBQ2pCLE1BQU07WUFDVixLQUFLLEdBQUc7Z0JBQ0osVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDbEIsTUFBTTtZQUNWLEtBQUssR0FBRyxDQUFDO1lBQ1Q7Z0JBQ0ksVUFBVSxHQUFHLEdBQUcsQ0FBQztnQkFDakIsTUFBTTtTQUNiO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDakMsQ0FBQzs7OEdBdERRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdFQUhmLENBQUMsZ0JBQWdCLENBQUMsNFNDVGpDLDIwZ0JBZ1hBOzJGRHBXYSxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0ksZUFBZSxhQUdkLENBQUMsZ0JBQWdCLENBQUMsbUJBQ1osdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsT0FBTztzQkFBZixLQUFLO2dCQUM0QyxrQkFBa0I7c0JBQW5FLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNBLGdCQUFnQjtzQkFBL0QsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNpemUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCwgRm9ybVBhbmVsU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgVWlDYXJkTGlzdFZpZXdTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtdmlldyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWNhcmQtaXRlbScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NhcmQtaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbRm9ybVBhbmVsU2VydmljZV0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FyZEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBzZXR0aW5nOiBVaUNhcmRMaXN0Vmlld1NldHRpbmc7XHJcbiAgICBAVmlld0NoaWxkKCdxdWlja1ZpZXdUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pIF9xdWlja1ZpZXdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnRUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pIF9jb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBub0NvbnRlbnQ6IGJvb2xlYW47XHJcbiAgICBjYXJkV2lkdGg6IHN0cmluZztcclxuICAgIG1heFdpZHRoOiBzdHJpbmc7XHJcbiAgICBtaW5XaWR0aDogc3RyaW5nO1xyXG4gICAgY29udGV4dE1lbnVJbkZvb3RlcjogYm9vbGVhbjtcclxuICAgIGF2YXRhclNpemU6IFNpemU7XHJcbiAgICBjb250ZW50VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zZXR0aW5nLkNhcmRUeXBlJENhcHRpb24gYXMgYW55KSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2lubGluZS1maWVsZHMnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGVSZWYgPSB0aGlzLl9jb250ZW50VGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFRlbXBsYXRlUmVmID0gdGhpcy5fcXVpY2tWaWV3VGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgc2V0dGluZyA9IHRoaXMuc2V0dGluZztcclxuICAgICAgICBpZiAoc2V0dGluZy5Db250ZXh0TWVudUluRm9vdGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dE1lbnVJbkZvb3RlciA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgIXNldHRpbmcuQXZhdGFyRmllbGQgJiZcclxuICAgICAgICAgICAgIXNldHRpbmcuVGl0bGVGaWVsZCAmJlxyXG4gICAgICAgICAgICAhc2V0dGluZy5TdWJ0aXRsZUZpZWxkICYmXHJcbiAgICAgICAgICAgICFzZXR0aW5nLkZpZWxkTGlzdCAmJlxyXG4gICAgICAgICAgICAhc2V0dGluZy5Db250ZW50Q29tcG9uZW50XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9Db250ZW50ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNldHRpbmcuQ2FyZFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWluV2lkdGggPSB0aGlzLm1heFdpZHRoID0gdGhpcy5jYXJkV2lkdGggPSBzZXR0aW5nLkNhcmRXaWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGF2YXRhclNpemU7XHJcbiAgICAgICAgc3dpdGNoIChzZXR0aW5nLkF2YXRhclNpemUpIHtcclxuICAgICAgICAgICAgY2FzZSAnMic6XHJcbiAgICAgICAgICAgICAgICBhdmF0YXJTaXplID0gJ20nO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJzMnOlxyXG4gICAgICAgICAgICAgICAgYXZhdGFyU2l6ZSA9ICdsJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICc0JzpcclxuICAgICAgICAgICAgICAgIGF2YXRhclNpemUgPSAneGwnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJzEnOlxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYXZhdGFyU2l6ZSA9ICdzJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmF2YXRhclNpemUgPSBhdmF0YXJTaXplO1xyXG4gICAgfVxyXG59XHJcbiIsIjxmZC1jYXJkXHJcbiAgICBbY2FyZFR5cGVdPVwic2V0dGluZy5DYXJkVHlwZSRDYXB0aW9uXCJcclxuICAgIGNsYXNzPVwiZG9jcy1mbGV4LWl0ZW0tbWFyZ2luXCJcclxuICAgIFtjbGFzcy5vcGVuT25DbGlja109XCJzZXR0aW5nLm9wZW5PbkNsaWNrXCJcclxuICAgIFtzdHlsZS53aWR0aF09XCJjYXJkV2lkdGhcIlxyXG4gICAgW3N0eWxlLm1pbi13aWR0aF09XCJtaW5XaWR0aFwiXHJcbiAgICBbc3R5bGUubWF4LXdpZHRoXT1cIm1heFdpZHRoXCJcclxuPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIHNldHRpbmcuSGVhZGVyQ29tcG9uZW50ID8gcmVuZGVySGVhZGVyQ29tcG9uZW50IDogcmVuZGVySGVhZGVyO1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IG1vLFxyXG4gICAgICAgICAgICAgICAgaW5kZXg6IHRoaXMuaW5kZXhcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPGZkLWNhcmQtY29udGVudCAoY2xpY2spPVwib25Sb3dDaGVjaygpXCIgKGRibGNsaWNrKT1cIm9uUm93Q2xpY2soKVwiIGVsbGlwc2lmeSAqbmdJZj1cIiFub0NvbnRlbnQgfHwgY29udGV4dE1lbnVJdGVtc1wiPlxyXG4gICAgICAgIDxkaXYgI2RpdkVsIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIiBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCIgW2hvc3RFbF09XCJkaXZFbFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmcuQ29udGVudENvbXBvbmVudCA/IGNvbnRlbnRUZW1wbGF0ZUNvbXBvbmVudCA6IGNvbnRlbnRUZW1wbGF0ZVJlZjtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogbW8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiB0aGlzLmluZGV4XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZXh0TWVudUluRm9vdGVyICYmIGNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIHVsdkNvbnRleHRNZW51XHJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgIFtmb290ZXJNb2RlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcclxuICAgICAgICAgICAgICAgIFttb109XCJtb1wiXHJcbiAgICAgICAgICAgICAgICAoY29tbWFuZENsaWNrKT1cIm9uVWx2Q29tbWFuZCgpXCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9mZC1jYXJkLWNvbnRlbnQ+XHJcbjwvZmQtY2FyZD5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29sdW1uVGVtcGxhdGUgbGV0LWNvbHVtbiBsZXQtbW89XCJtb1wiIGxldC1pbmRleD1cImluZGV4XCIgbGV0LWxheW91dDk0PVwibGF5b3V0OTRcIlxyXG4gICAgPjxkaXZcclxuICAgICAgICAqbmdJZj1cImNvbHVtblwiXHJcbiAgICAgICAgI2RpdkVsXHJcbiAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXHJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXHJcbiAgICAgICAgW2hvc3RFbF09XCJkaXZFbFwiXHJcbiAgICAgICAgW2RiTmFtZV09XCJjb2x1bW4uTmFtZVwiXHJcbiAgICA+XHJcbiAgICAgICAgPGJzdS1jb2x1bW4tcmVuZGVyZXJcclxuICAgICAgICAgICAgW21vXT1cIm1vXCJcclxuICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICBbdmFsdWVdPVwiY29sdW1uIHwgY29sdW1uVmFsdWU6IG1vIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgW2ljb25dPVwiY29sdW1uIHwgY29sdW1uSWNvbjogbW9cIlxyXG4gICAgICAgICAgICBbZWRpdE1vZGVdPVwiaXNDaGVja2VkICYmIGlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiXHJcbiAgICAgICAgICAgIFtydGxdPVwicnRsXCJcclxuICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxyXG4gICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcclxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXHJcbiAgICAgICAgICAgIFtjb250cm9sVWldPVwiY29sdW1uLkNhcHRpb24gfCBjb250cm9sVWk6IGxheW91dDk0XCJcclxuICAgICAgICAgICAgKGtleXVwLmNvbnRyb2wuZW50ZXIpPVwib25FZGl0Rm9ybVBhbmVsU2F2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGtleXVwLmVzYyk9XCJvbkVkaXRGb3JtUGFuZWxDYW5jZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChrZXlkb3duLlRhYik9XCJvblRhYktleURvd24oJGV2ZW50LCBpbmRleClcIlxyXG4gICAgICAgICAgICBbZm9ybUxheW91dFNob3dMYWJlbF09XCJ0cnVlXCJcclxuICAgICAgICA+PC9ic3UtY29sdW1uLXJlbmRlcmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcXVpY2tWaWV3VGVtcGxhdGUgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICA8ZmQtcXVpY2stdmlldyBbaWRdPVwiJ2lkJ1wiICpuZ0lmPVwiIW5vQ29udGVudFwiPlxyXG4gICAgICAgIDxmZC1xdWljay12aWV3LWdyb3VwPlxyXG4gICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1zdWJoZWFkZXJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5BdmF0YXIgfHwgc2V0dGluZy5BdmF0YXJGaWVsZCB8fCBzZXR0aW5nLlRpdGxlRmllbGQgfHwgc2V0dGluZy5TdWJ0aXRsZUZpZWxkXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGZkLWF2YXRhclxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5BdmF0YXJGaWVsZCB8fCBzZXR0aW5nLkF2YXRhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgYWx0ZXJJY29uPVwiYWx0fGNvbnRlbnR8YmFja3VwfGRlZmF1bHQtaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NpcmNsZV09XCJzZXR0aW5nLkNpcmNsZUF2YXRhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ltYWdlXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nLkF2YXRhckZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChtb1tzZXR0aW5nLkF2YXRhckZpZWxkLk5hbWVdPy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpzZXR0aW5nLkF2YXRhckZpZWxkLkZpZWxkRGVmSWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCJhdmF0YXJTaXplID8gYXZhdGFyU2l6ZSA6IGRldmljZVNpemUgPT09ICdzJyA/ICdzJyA6ICdtJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nLkF2YXRhciB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAobW8uJFN0YXRlID09PSAnTmV3JyAmJiAhaXNDaGVja2VkID8gJ2Zhdm9yaXRlJyA6IGlubGluZUVkaXRNb2RlICYmIGlzQ2hlY2tlZCA/ICdlZGl0JyA6ICcnKVxyXG4gICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L2ZkLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LXN1YmhlYWRlci10aXRsZSAqbmdJZj1cInNldHRpbmcuVGl0bGVGaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5UaXRsZUZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1zdWJoZWFkZXItdGl0bGU+XHJcbiAgICAgICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1zdWJoZWFkZXItc3VidGl0bGUgKm5nSWY9XCJzZXR0aW5nLlN1YnRpdGxlRmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuU3VidGl0bGVGaWVsZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctc3ViaGVhZGVyLXN1YnRpdGxlPlxyXG4gICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctc3ViaGVhZGVyPlxyXG4gICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygc2V0dGluZy5GaWVsZExpc3RNYXBwZWRcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBjb2x1bW4uQ2FwdGlvbiB8IGJiYlRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudC1lbGVtZW50IGNsYXNzPVwiZ3JvdXAtaXRlbS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sdW1uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbT5cclxuICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbSAqbmdJZj1cInNldHRpbmcuRGVzY3JpcHRpb25GaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tbGFiZWwgKm5nSWY9XCJpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc2V0dGluZy5EZXNjcmlwdGlvbkZpZWxkPy5BbGlhcyB8IGJiYlRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWNvbnRlbnQtZWxlbWVudCBjbGFzcz1cImdyb3VwLWl0ZW0tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLkRlc2NyaXB0aW9uRmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudFxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNldHRpbmcuQWN0aW9uRmllbGROYW1lRmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbihzZXR0aW5nLkFjdGlvbkZpZWxkQ29tbWFuZEZpZWxkIHx8ICcnKVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5BY3Rpb25GaWVsZE5hbWVGaWVsZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudD5cclxuICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0+XHJcbiAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwPlxyXG4gICAgPC9mZC1xdWljay12aWV3PlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZSBsZXQtbW8gbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgIDxmZC1sYXlvdXQtZ3JpZD5cclxuICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdz5cclxuICAgICAgICAgICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cIjJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdmF0YXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5BdmF0YXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiBzZXR0aW5nLkF2YXRhckZpZWxkIHx8IHNldHRpbmcuQXZhdGFyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2lyY2xlOiBzZXR0aW5nLkNpcmNsZUF2YXRhcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhckZpZWxkOiBzZXR0aW5nLkF2YXRhckZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgW2ZkTGF5b3V0R3JpZENvbF09XCIxMFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZXR0aW5nLlRpdGxlRmllbGRcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlRpdGxlRmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZXR0aW5nLlN1YnRpdGxlRmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuU3VidGl0bGVGaWVsZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cIjEyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygc2V0dGluZy5GaWVsZExpc3RNYXBwZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBbY29sb25dPVwidHJ1ZVwiIGZvcj1cImZvcm0tdmFsdWUtMTFcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLkNhcHRpb24gfCBiYmJUcmFuc2xhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sdW1uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cIjEyXCIgKm5nSWY9XCJzZXR0aW5nLkRlc2NyaXB0aW9uRmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cImlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHNldHRpbmcuRGVzY3JpcHRpb25GaWVsZD8uQWxpYXMgfCBiYmJUcmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5EZXNjcmlwdGlvbkZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2ZkLWxheW91dC1ncmlkPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI2F2YXRhciBsZXQtYXZhdGFyIGxldC12aXNpYmxlPVwidmlzaWJsZVwiIGxldC1jaXJjbGU9XCJjaXJjbGVcIiBsZXQtYXZhdGFyRmllbGQ9XCJhdmF0YXJGaWVsZFwiPlxyXG4gICAgPGZkLWF2YXRhclxyXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZVwiXHJcbiAgICAgICAgYWx0ZXJJY29uPVwiYWx0fGNvbnRlbnR8YmFja3VwfGRlZmF1bHQtaWNvblwiXHJcbiAgICAgICAgW2NpcmNsZV09XCJjaXJjbGVcIlxyXG4gICAgICAgIFtpbWFnZV09XCJhdmF0YXJGaWVsZCA/IChtb1thdmF0YXJGaWVsZC5OYW1lXT8uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6YXZhdGFyRmllbGQuRmllbGREZWZJZCkgOiAnJ1wiXHJcbiAgICAgICAgW3NpemVdPVwiYXZhdGFyU2l6ZSA/IGF2YXRhclNpemUgOiBkZXZpY2VTaXplID09PSAncycgPyAncycgOiAnbSdcIlxyXG4gICAgICAgIFtnbHlwaF09XCJhdmF0YXIgfHwgKG1vLiRTdGF0ZSA9PT0gJ05ldycgJiYgIWlzQ2hlY2tlZCA/ICdmYXZvcml0ZScgOiBpbmxpbmVFZGl0TW9kZSAmJiBpc0NoZWNrZWQgPyAnZWRpdCcgOiAnJylcIlxyXG4gICAgPlxyXG4gICAgPC9mZC1hdmF0YXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZUNvbXBvbmVudCBsZXQtbW8gbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcclxuICAgICAgICBbY29tcG9uZW50XT1cInNldHRpbmcuQ29udGVudENvbXBvbmVudFwiXHJcbiAgICAgICAgW21vXT1cIm1vXCJcclxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXHJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxyXG4gICAgICAgIFtzZXR0aW5nXT1cInNldHRpbmdcIlxyXG4gICAgICAgIFtwYXJhbWV0ZXJzXT1cInNldHRpbmcuQ29udGVudENvbXBvbmVudC5TZXR0aW5nc1wiXHJcbiAgICAgICAgW2VkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcclxuICAgICAgICBbcnRsXT1cInJ0bFwiXHJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXHJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcclxuICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcclxuICAgID48L2JucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVySGVhZGVyIGxldC1tbyBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgPGZkLWNhcmQtaGVhZGVyXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgaXNDaGVja0xpc3QgfHxcclxuICAgICAgICAgICAgZGV2aWNlTmFtZSAhPT0gJ2Rlc2t0b3AnIHx8XHJcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhY29udGV4dE1lbnVJbkZvb3RlcilcclxuICAgICAgICBcIlxyXG4gICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgZmQtY2FyZC10aXRsZVxyXG4gICAgICAgICAgICBbc3R5bGUuanVzdGlmeS1jb250ZW50XT1cIiFpc0NoZWNrTGlzdCAmJiBjYW5WaWV3ICYmIGRldmljZU5hbWUgIT09ICdkZXNrdG9wJyA/ICdsZWZ0JyA6ICdzcGFjZS1iZXR3ZWVuJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzdGFydDsgZmxleC1ncm93OiAxXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzQ2hlY2tMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJtby4kQ2FwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiaXNDaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblJvd0NoZWNrKClcIlxyXG4gICAgICAgICAgICAgICAgPjwvZmQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhY29udGV4dE1lbnVJbkZvb3RlciAmJiBjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdWx2Q29udGV4dE1lbnVcclxuICAgICAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttb109XCJtb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FuVmlld1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlldy1idG5cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJuYXZpZ2F0aW9uQXJyb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2ZkLWNhcmQtaGVhZGVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckhlYWRlckNvbXBvbmVudCBsZXQtbW8gbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcclxuICAgICAgICBbY29tcG9uZW50XT1cInNldHRpbmcuSGVhZGVyQ29tcG9uZW50XCJcclxuICAgICAgICBbbW9dPVwibW9cIlxyXG4gICAgICAgIFtzdHlsZUluZGV4XT1cIm1vLiRTdHlsZUluZGV4XCJcclxuICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXHJcbiAgICAgICAgW3NldHRpbmddPVwic2V0dGluZ1wiXHJcbiAgICAgICAgW3BhcmFtZXRlcnNdPVwic2V0dGluZy5IZWFkZXJDb21wb25lbnQuU2V0dGluZ3NcIlxyXG4gICAgICAgIFtlZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXHJcbiAgICAgICAgW3J0bF09XCJydGxcIlxyXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxyXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXHJcbiAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXHJcbiAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXHJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXHJcbiAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXHJcbiAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxyXG4gICAgICAgIFtpc0NoZWNrTGlzdF09XCJpc0NoZWNrTGlzdFwiXHJcbiAgICAgICAgKGV2ZW50cyk9XCJvbkR5bmFtaWNDb21wb25lbnRFdmVudHMoJGV2ZW50KVwiXHJcbiAgICA+PC9ibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -42,10 +42,10 @@ export class ColumnRendererComponent extends BaseComponent {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
ColumnRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ColumnRendererComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
ColumnRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: { column: "column", mo: "mo", index: "index", editMode: "editMode", customRowHeight: "customRowHeight", controlUi: "controlUi", formLayoutShowLabel: "formLayoutShowLabel", isChecked: "isChecked", isNewInlineMo: "isNewInlineMo", containerDom: "containerDom", disableEllapsis: "disableEllapsis", rtl: "rtl", deviceName: "deviceName", deviceSize: "deviceSize", value: "value", icon: "icon" }, host: { properties: { "class.isMobile": "this._isSmall" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"column\">\n <ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\n</ng-container>\n<ng-template #renderCellTemplate>\n <ng-container [ngSwitch]=\"column.FieldTypeId\">\n <ng-container *ngSwitchCase=\"'42'\">\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'33'\">\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'31'\">\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'11'\">\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'5'\">\n <ng-container\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\n ></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n<ng-template #renderGeneral>\n <div style=\"display: flex; width: 100%; height: 100%; align-items: center; justify-content: start\">\n <img [attr.rtl]=\"rtl\" *ngIf=\"icon\" [src]=\"icon\" />\n <!-- <fd-text\n #fdText\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\n [maxLines]=\"1\"\n [text]=\"value\"\n [fd-inline-help]=\"value\"\n [disabled]=\"!fdText._hasMore\"\n ></fd-text> -->\n\n <!-- <bsu-barsa-text-ellipsis\n [style.width]=\"column.$Width\"\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\n [text]=\"value\"\n ></bsu-barsa-text-ellipsis> -->\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\n {{ value }}\n </div> -->\n <div\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\n [ellapsisText]=\"value\"\n [class.ellapsis]=\"!disableEllapsis\"\n (ellapsised)=\"onElapsised($event)\"\n (click)=\"showMore && helpPopover.open()\"\n >\n {{ value }}\n </div>\n <fd-popover #helpPopover>\n <fd-popover-control> </fd-popover-control>\n <fd-popover-body class=\"help-popover-body\">\n <div fd-popover-body-header>\n <div fd-bar>\n <div fd-bar-left>\n <fd-bar-element style=\"white-space: break-spaces\"\n >{{ column.Alias | bbbTranslate }}:</fd-bar-element\n >\n </div>\n <div fd-bar-right>\n <fd-bar-element\n ><button\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"helpPopover.close()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </div>\n <div class=\"help-content\">{{ value }}</div>\n </fd-popover-body>\n </fd-popover>\n </div>\n</ng-template>\n<ng-template #formControlTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\n ? renderCellTemplate\n : layoutControlTemplate\n \"\n ></ng-container>\n</ng-template>\n<ng-template #layoutControlTemplate>\n <bsu-layout-control\n *ngIf=\"controlUi\"\n [inlineEdit]=\"true\"\n [caption]=\"column.Caption\"\n [config]=\"controlUi\"\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\n [showLabel]=\"formLayoutShowLabel\"\n ></bsu-layout-control>\n</ng-template>\n<ng-template #renderCellListTasavir>\n <div *ngIf=\"mo[column.Name] && mo[column.Name].Images\" style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\n <ng-container *ngFor=\"let pic of mo[column.Name].Images\">\n <img\n fullscreen\n fullscreenFiles\n [files]=\"mo[column.Name].Images\"\n [isImageGallery]=\"true\"\n [deviceSize]=\"deviceSize\"\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\n style=\"width: 3rem; height: 3rem\"\n />\n </ng-container>\n </div>\n</ng-template>\n<ng-template #renderCellFileListKhati>\n <ng-container *ngIf=\"mo[column.Name]\">\n <div class=\"file-viewer-attachments\">\n <ng-container *ngFor=\"let file of mo[column.Name].Files\">\n <bsu-file-viewer-popover\n [style.width.px]=\"containerDom ? containerDom.offsetWidth : null\"\n *ngIf=\"!file.IsDeleted\"\n [file]=\"file\"\n [files]=\"mo[column.Name].Files\"\n [deviceSize]=\"deviceSize\"\n [canDownload]=\"true\"\n [disableRemove]=\"true\"\n [fdType]=\"'transparent'\"\n ></bsu-file-viewer-popover>\n\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\n </ng-container>\n </div>\n </ng-container>\n</ng-template>\n<ng-template #renderCellFileInfo>\n <fd-avatar\n *ngIf=\"mo[column.Name]\"\n [transparent]=\"true\"\n [size]=\"deviceSize === 's' ? 's' : 'm'\"\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\n ></fd-avatar>\n</ng-template>\n<ng-template #renderCellChecbox>\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\n</ng-template>\n<ng-template #renderChecboxImage>\n <ng-container *ngIf=\"column.Extra?.TrueImage === ''\">{{ value }}</ng-container>\n <img\n *ngIf=\"column.Extra?.TrueImage !== ''\"\n [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\"\n aling=\"middle\"\n />\n</ng-template>\n<ng-template #renderCellImage>\n <fd-avatar\n *ngIf=\"mo[column.Name] && mo[column.Name]['Url']\"\n [size]=\"column.FieldTypeId === '42' ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\n [transparent]=\"true\"\n [image]=\"mo[column.Name]['Url']\"\n ></fd-avatar>\n</ng-template>\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}\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: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.EllapsisTextDirective, selector: "[ellapsisText]", inputs: ["ellapsisText", "fontSize"], outputs: ["ellapsised"] }, { 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.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "directive", type: i7.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i8.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"] }, { kind: "component", type: i9.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType"], outputs: ["remove"] }, { kind: "directive", type: i10.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
45
|
+
ColumnRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: { column: "column", mo: "mo", index: "index", editMode: "editMode", customRowHeight: "customRowHeight", controlUi: "controlUi", formLayoutShowLabel: "formLayoutShowLabel", isChecked: "isChecked", isNewInlineMo: "isNewInlineMo", containerDom: "containerDom", disableEllapsis: "disableEllapsis", rtl: "rtl", deviceName: "deviceName", deviceSize: "deviceSize", value: "value", icon: "icon" }, host: { properties: { "class.isMobile": "this._isSmall" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"column\">\r\n <ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n</ng-container>\r\n<ng-template #renderCellTemplate>\r\n <ng-container [ngSwitch]=\"column.FieldTypeId\">\r\n <ng-container *ngSwitchCase=\"'42'\">\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'33'\">\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'31'\">\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'11'\">\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'5'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div style=\"display: flex; width: 100%; height: 100%; align-items: center; justify-content: start\" [style.width]=\"\">\r\n <img [attr.rtl]=\"rtl\" *ngIf=\"icon\" [src]=\"icon\" />\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n ></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n {{ value }}\r\n </div> -->\r\n <div\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [ellapsisText]=\"value\"\r\n [class.ellapsis]=\"!disableEllapsis\"\r\n (ellapsised)=\"onElapsised($event)\"\r\n (click)=\"showMore && helpPopover.open()\"\r\n >\r\n {{ value }}\r\n </div>\r\n <fd-popover #helpPopover>\r\n <fd-popover-control> </fd-popover-control>\r\n <fd-popover-body class=\"help-popover-body\">\r\n <div fd-popover-body-header>\r\n <div fd-bar>\r\n <div fd-bar-left>\r\n <fd-bar-element style=\"white-space: break-spaces\"\r\n >{{ column.Alias | bbbTranslate }}:</fd-bar-element\r\n >\r\n </div>\r\n <div fd-bar-right>\r\n <fd-bar-element\r\n ><button\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n (click)=\"helpPopover.close()\"\r\n ></button>\r\n </fd-bar-element>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"help-content\">{{ value }}</div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n <bsu-layout-control\r\n *ngIf=\"controlUi\"\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n <div *ngIf=\"mo[column.Name] && mo[column.Name].Images\" style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n <ng-container *ngFor=\"let pic of mo[column.Name].Images\">\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n />\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n <ng-container *ngIf=\"mo[column.Name]\">\r\n <div class=\"file-viewer-attachments\">\r\n <ng-container *ngFor=\"let file of mo[column.Name].Files\">\r\n <bsu-file-viewer-popover\r\n [style.width.px]=\"containerDom ? containerDom.offsetWidth : null\"\r\n *ngIf=\"!file.IsDeleted\"\r\n [file]=\"file\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n ></bsu-file-viewer-popover>\r\n\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n <fd-avatar\r\n *ngIf=\"mo[column.Name]\"\r\n [transparent]=\"true\"\r\n [size]=\"deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n <ng-container *ngIf=\"column.Extra?.TrueImage === ''\">{{ value }}</ng-container>\r\n <img\r\n *ngIf=\"column.Extra?.TrueImage !== ''\"\r\n [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\"\r\n aling=\"middle\"\r\n />\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n <fd-avatar\r\n *ngIf=\"mo[column.Name] && mo[column.Name]['Url']\"\r\n [size]=\"column.FieldTypeId === '42' ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n</ng-template>\r\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}\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: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.EllapsisTextDirective, selector: "[ellapsisText]", inputs: ["ellapsisText", "fontSize"], outputs: ["ellapsised"] }, { 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.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "directive", type: i7.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i8.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"] }, { kind: "component", type: i9.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType"], outputs: ["remove"] }, { kind: "directive", type: i10.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
46
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ColumnRendererComponent, decorators: [{
|
|
47
47
|
type: Component,
|
|
48
|
-
args: [{ selector: 'bsu-column-renderer,[colRenderer]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"column\">\n <ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\n</ng-container>\n<ng-template #renderCellTemplate>\n <ng-container [ngSwitch]=\"column.FieldTypeId\">\n <ng-container *ngSwitchCase=\"'42'\">\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'33'\">\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'31'\">\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'11'\">\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'5'\">\n <ng-container\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\n ></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n<ng-template #renderGeneral>\n <div style=\"display: flex; width: 100%; height: 100%; align-items: center; justify-content: start\">\n <img [attr.rtl]=\"rtl\" *ngIf=\"icon\" [src]=\"icon\" />\n <!-- <fd-text\n #fdText\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\n [maxLines]=\"1\"\n [text]=\"value\"\n [fd-inline-help]=\"value\"\n [disabled]=\"!fdText._hasMore\"\n ></fd-text> -->\n\n <!-- <bsu-barsa-text-ellipsis\n [style.width]=\"column.$Width\"\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\n [text]=\"value\"\n ></bsu-barsa-text-ellipsis> -->\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\n {{ value }}\n </div> -->\n <div\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\n [ellapsisText]=\"value\"\n [class.ellapsis]=\"!disableEllapsis\"\n (ellapsised)=\"onElapsised($event)\"\n (click)=\"showMore && helpPopover.open()\"\n >\n {{ value }}\n </div>\n <fd-popover #helpPopover>\n <fd-popover-control> </fd-popover-control>\n <fd-popover-body class=\"help-popover-body\">\n <div fd-popover-body-header>\n <div fd-bar>\n <div fd-bar-left>\n <fd-bar-element style=\"white-space: break-spaces\"\n >{{ column.Alias | bbbTranslate }}:</fd-bar-element\n >\n </div>\n <div fd-bar-right>\n <fd-bar-element\n ><button\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"helpPopover.close()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </div>\n <div class=\"help-content\">{{ value }}</div>\n </fd-popover-body>\n </fd-popover>\n </div>\n</ng-template>\n<ng-template #formControlTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\n ? renderCellTemplate\n : layoutControlTemplate\n \"\n ></ng-container>\n</ng-template>\n<ng-template #layoutControlTemplate>\n <bsu-layout-control\n *ngIf=\"controlUi\"\n [inlineEdit]=\"true\"\n [caption]=\"column.Caption\"\n [config]=\"controlUi\"\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\n [showLabel]=\"formLayoutShowLabel\"\n ></bsu-layout-control>\n</ng-template>\n<ng-template #renderCellListTasavir>\n <div *ngIf=\"mo[column.Name] && mo[column.Name].Images\" style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\n <ng-container *ngFor=\"let pic of mo[column.Name].Images\">\n <img\n fullscreen\n fullscreenFiles\n [files]=\"mo[column.Name].Images\"\n [isImageGallery]=\"true\"\n [deviceSize]=\"deviceSize\"\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\n style=\"width: 3rem; height: 3rem\"\n />\n </ng-container>\n </div>\n</ng-template>\n<ng-template #renderCellFileListKhati>\n <ng-container *ngIf=\"mo[column.Name]\">\n <div class=\"file-viewer-attachments\">\n <ng-container *ngFor=\"let file of mo[column.Name].Files\">\n <bsu-file-viewer-popover\n [style.width.px]=\"containerDom ? containerDom.offsetWidth : null\"\n *ngIf=\"!file.IsDeleted\"\n [file]=\"file\"\n [files]=\"mo[column.Name].Files\"\n [deviceSize]=\"deviceSize\"\n [canDownload]=\"true\"\n [disableRemove]=\"true\"\n [fdType]=\"'transparent'\"\n ></bsu-file-viewer-popover>\n\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\n </ng-container>\n </div>\n </ng-container>\n</ng-template>\n<ng-template #renderCellFileInfo>\n <fd-avatar\n *ngIf=\"mo[column.Name]\"\n [transparent]=\"true\"\n [size]=\"deviceSize === 's' ? 's' : 'm'\"\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\n ></fd-avatar>\n</ng-template>\n<ng-template #renderCellChecbox>\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\n</ng-template>\n<ng-template #renderChecboxImage>\n <ng-container *ngIf=\"column.Extra?.TrueImage === ''\">{{ value }}</ng-container>\n <img\n *ngIf=\"column.Extra?.TrueImage !== ''\"\n [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\"\n aling=\"middle\"\n />\n</ng-template>\n<ng-template #renderCellImage>\n <fd-avatar\n *ngIf=\"mo[column.Name] && mo[column.Name]['Url']\"\n [size]=\"column.FieldTypeId === '42' ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\n [transparent]=\"true\"\n [image]=\"mo[column.Name]['Url']\"\n ></fd-avatar>\n</ng-template>\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}\n"] }]
|
|
48
|
+
args: [{ selector: 'bsu-column-renderer,[colRenderer]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"column\">\r\n <ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n</ng-container>\r\n<ng-template #renderCellTemplate>\r\n <ng-container [ngSwitch]=\"column.FieldTypeId\">\r\n <ng-container *ngSwitchCase=\"'42'\">\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'33'\">\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'31'\">\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'11'\">\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'5'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div style=\"display: flex; width: 100%; height: 100%; align-items: center; justify-content: start\" [style.width]=\"\">\r\n <img [attr.rtl]=\"rtl\" *ngIf=\"icon\" [src]=\"icon\" />\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n ></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n {{ value }}\r\n </div> -->\r\n <div\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [ellapsisText]=\"value\"\r\n [class.ellapsis]=\"!disableEllapsis\"\r\n (ellapsised)=\"onElapsised($event)\"\r\n (click)=\"showMore && helpPopover.open()\"\r\n >\r\n {{ value }}\r\n </div>\r\n <fd-popover #helpPopover>\r\n <fd-popover-control> </fd-popover-control>\r\n <fd-popover-body class=\"help-popover-body\">\r\n <div fd-popover-body-header>\r\n <div fd-bar>\r\n <div fd-bar-left>\r\n <fd-bar-element style=\"white-space: break-spaces\"\r\n >{{ column.Alias | bbbTranslate }}:</fd-bar-element\r\n >\r\n </div>\r\n <div fd-bar-right>\r\n <fd-bar-element\r\n ><button\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n (click)=\"helpPopover.close()\"\r\n ></button>\r\n </fd-bar-element>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"help-content\">{{ value }}</div>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n <bsu-layout-control\r\n *ngIf=\"controlUi\"\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n <div *ngIf=\"mo[column.Name] && mo[column.Name].Images\" style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n <ng-container *ngFor=\"let pic of mo[column.Name].Images\">\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n />\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n <ng-container *ngIf=\"mo[column.Name]\">\r\n <div class=\"file-viewer-attachments\">\r\n <ng-container *ngFor=\"let file of mo[column.Name].Files\">\r\n <bsu-file-viewer-popover\r\n [style.width.px]=\"containerDom ? containerDom.offsetWidth : null\"\r\n *ngIf=\"!file.IsDeleted\"\r\n [file]=\"file\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n ></bsu-file-viewer-popover>\r\n\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n <fd-avatar\r\n *ngIf=\"mo[column.Name]\"\r\n [transparent]=\"true\"\r\n [size]=\"deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n <ng-container *ngIf=\"column.Extra?.TrueImage === ''\">{{ value }}</ng-container>\r\n <img\r\n *ngIf=\"column.Extra?.TrueImage !== ''\"\r\n [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\"\r\n aling=\"middle\"\r\n />\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n <fd-avatar\r\n *ngIf=\"mo[column.Name] && mo[column.Name]['Url']\"\r\n [size]=\"column.FieldTypeId === '42' ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n</ng-template>\r\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}\n"] }]
|
|
49
49
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { _isSmall: [{
|
|
50
50
|
type: HostBinding,
|
|
51
51
|
args: ['class.isMobile']
|
|
@@ -82,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
82
82
|
}], icon: [{
|
|
83
83
|
type: Input
|
|
84
84
|
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NvbHVtbi1yZW5kZXJlci9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY29sdW1uLXJlbmRlcmVyL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUdSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBeUIsYUFBYSxFQUFzQyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7QUFRaEgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQWE7SUFvQnREOztPQUVHO0lBQ0gsWUFBc0IsSUFBdUI7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQXRCZCxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBd0JoRCxDQUFDO0lBQ0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUNELGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3QyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1Q7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEdBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7b0hBN0NRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDJpQkNqQnBDLHd5TkFvS0E7MkZEbkphLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxtQ0FBbUMsbUJBRzVCLHVCQUF1QixDQUFDLE1BQU07d0dBR2hCLFFBQVE7c0JBQXRDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNwQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFiYnJldmF0aW9uRGV2aWNlU2l6ZSwgQmFzZUNvbXBvbmVudCwgTGF5b3V0U2V0dGluZywgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtY29sdW1uLXJlbmRlcmVyLFtjb2xSZW5kZXJlcl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtblJlbmRlcmVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pc01vYmlsZScpIF9pc1NtYWxsID0gZmFsc2U7XG4gICAgQElucHV0KCkgY29sdW1uOiBhbnk7XG4gICAgQElucHV0KCkgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgQElucHV0KCkgaW5kZXg6IGFueTtcbiAgICBASW5wdXQoKSBlZGl0TW9kZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjdXN0b21Sb3dIZWlnaHQ6IGFueTtcbiAgICBASW5wdXQoKSBjb250cm9sVWk6IExheW91dFNldHRpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpIGZvcm1MYXlvdXRTaG93TGFiZWw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNDaGVja2VkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzTmV3SW5saW5lTW86IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29udGFpbmVyRG9tOiBIVE1MRWxlbWVudDtcblxuICAgIEBJbnB1dCgpIGRpc2FibGVFbGxhcHNpczogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBydGw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGV2aWNlTmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSB2YWx1ZTogYW55O1xuICAgIEBJbnB1dCgpIGljb246IGFueTtcbiAgICBzaG93TW9yZTogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3MnKSB7XG4gICAgICAgICAgICB0aGlzLl9pc1NtYWxsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5GaWVsZFR5cGVJZC50b1N0cmluZygpID09PSAnMzEnKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25FbGFwc2lzZWQodmFsOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVFbGxhcHNpcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hvd01vcmUgPSB2YWw7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlZGl0TW9kZSA/IGZvcm1Db250cm9sVGVtcGxhdGUgOiByZW5kZXJDZWxsVGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbFRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbHVtbi5GaWVsZFR5cGVJZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInNDInXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbEltYWdlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInMzMnXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbEZpbGVJbmZvXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInMzEnXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbEZpbGVMaXN0S2hhdGlcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIicxMSdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJDZWxsTGlzdFRhc2F2aXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIic1J1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLkV4dHJhPy5TaG93Q2hlY2tJbkdyaWQgPyByZW5kZXJDZWxsQ2hlY2JveCA6IHJlbmRlckNoZWNib3hJbWFnZVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyR2VuZXJhbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3JlbmRlckdlbmVyYWw+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3RhcnRcIj5cbiAgICAgICAgPGltZyBbYXR0ci5ydGxdPVwicnRsXCIgKm5nSWY9XCJpY29uXCIgW3NyY109XCJpY29uXCIgLz5cbiAgICAgICAgPCEtLSA8ZmQtdGV4dFxuICAgICAgICAgICAgI2ZkVGV4dFxuICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gIT09ICdJbWFnZSdcIlxuICAgICAgICAgICAgW21heExpbmVzXT1cIjFcIlxuICAgICAgICAgICAgW3RleHRdPVwidmFsdWVcIlxuICAgICAgICAgICAgW2ZkLWlubGluZS1oZWxwXT1cInZhbHVlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZmRUZXh0Ll9oYXNNb3JlXCJcbiAgICAgICAgPjwvZmQtdGV4dD4gLS0+XG5cbiAgICAgICAgPCEtLSA8YnN1LWJhcnNhLXRleHQtZWxsaXBzaXNcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4uJFdpZHRoXCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLkV4dHJhPy5JY29uRGlzcGxheVR5cGVFbnVtICE9PSAnSW1hZ2UnXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cInZhbHVlXCJcbiAgICAgICAgPjwvYnN1LWJhcnNhLXRleHQtZWxsaXBzaXM+IC0tPlxuICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gIT09ICdJbWFnZSdcIiBzdHlsZT1cIndvcmQtYnJlYWs6YnJlYWstd29yZFwiPlxuICAgICAgICAgICAge3sgdmFsdWUgfX1cbiAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJ1wiXG4gICAgICAgICAgICBbZWxsYXBzaXNUZXh0XT1cInZhbHVlXCJcbiAgICAgICAgICAgIFtjbGFzcy5lbGxhcHNpc109XCIhZGlzYWJsZUVsbGFwc2lzXCJcbiAgICAgICAgICAgIChlbGxhcHNpc2VkKT1cIm9uRWxhcHNpc2VkKCRldmVudClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNob3dNb3JlICYmIGhlbHBQb3BvdmVyLm9wZW4oKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHZhbHVlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZmQtcG9wb3ZlciAjaGVscFBvcG92ZXI+XG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPiA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgY2xhc3M9XCJoZWxwLXBvcG92ZXItYm9keVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudCBzdHlsZT1cIndoaXRlLXNwYWNlOiBicmVhay1zcGFjZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgY29sdW1uLkFsaWFzIHwgYmJiVHJhbnNsYXRlIH19OjwvZmQtYmFyLWVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImRlY2xpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhlbHBQb3BvdmVyLmNsb3NlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1jb250ZW50XCI+e3sgdmFsdWUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNmb3JtQ29udHJvbFRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICFjb250cm9sVWkgfHwgY29udHJvbFVpLkZpZWxkVWkub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLlJlYWRPbmx5RmllbGQnXG4gICAgICAgICAgICAgICAgPyByZW5kZXJDZWxsVGVtcGxhdGVcbiAgICAgICAgICAgICAgICA6IGxheW91dENvbnRyb2xUZW1wbGF0ZVxuICAgICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2xheW91dENvbnRyb2xUZW1wbGF0ZT5cbiAgICA8YnN1LWxheW91dC1jb250cm9sXG4gICAgICAgICpuZ0lmPVwiY29udHJvbFVpXCJcbiAgICAgICAgW2lubGluZUVkaXRdPVwidHJ1ZVwiXG4gICAgICAgIFtjYXB0aW9uXT1cImNvbHVtbi5DYXB0aW9uXCJcbiAgICAgICAgW2NvbmZpZ109XCJjb250cm9sVWlcIlxuICAgICAgICBbZm9jdXNDb250cm9sXT1cImluZGV4ID09PSAwICYmIChpc0NoZWNrZWQgfHwgaXNOZXdJbmxpbmVNbylcIlxuICAgICAgICBbc2hvd0xhYmVsXT1cImZvcm1MYXlvdXRTaG93TGFiZWxcIlxuICAgID48L2JzdS1sYXlvdXQtY29udHJvbD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3JlbmRlckNlbGxMaXN0VGFzYXZpcj5cbiAgICA8ZGl2ICpuZ0lmPVwibW9bY29sdW1uLk5hbWVdICYmIG1vW2NvbHVtbi5OYW1lXS5JbWFnZXNcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAwLjE1cmVtXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBpYyBvZiBtb1tjb2x1bW4uTmFtZV0uSW1hZ2VzXCI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgZnVsbHNjcmVlblxuICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5GaWxlc1xuICAgICAgICAgICAgICAgIFtmaWxlc109XCJtb1tjb2x1bW4uTmFtZV0uSW1hZ2VzXCJcbiAgICAgICAgICAgICAgICBbaXNJbWFnZUdhbGxlcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJwaWMuRmlsZUlkIHwgcGljRmllbGRTcmM6ICdCYXJzYVBpY3R1cmUuVGh1bWJuYWlsJzpudWxsOicnOjMyOjMyXCJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzcmVtOyBoZWlnaHQ6IDNyZW1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNyZW5kZXJDZWxsRmlsZUxpc3RLaGF0aT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9bY29sdW1uLk5hbWVdXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXZpZXdlci1hdHRhY2htZW50c1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmlsZSBvZiBtb1tjb2x1bW4uTmFtZV0uRmlsZXNcIj5cbiAgICAgICAgICAgICAgICA8YnN1LWZpbGUtdmlld2VyLXBvcG92ZXJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImNvbnRhaW5lckRvbSA/IGNvbnRhaW5lckRvbS5vZmZzZXRXaWR0aCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFmaWxlLklzRGVsZXRlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtmaWxlXT1cImZpbGVcIlxuICAgICAgICAgICAgICAgICAgICBbZmlsZXNdPVwibW9bY29sdW1uLk5hbWVdLkZpbGVzXCJcbiAgICAgICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjYW5Eb3dubG9hZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVSZW1vdmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLXBvcG92ZXI+XG5cbiAgICAgICAgICAgICAgICA8IS0tIDxmZC10b2tlbiAqbmdJZj1cIiFmaWxlLklzRGVsZXRlZFwiIFtyZWFkT25seV09XCJ0cnVlXCI+e3sgZmlsZS5GaWxlTmFtZSB9fTwvZmQtdG9rZW4+IC0tPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEZpbGVJbmZvPlxuICAgIDxmZC1hdmF0YXJcbiAgICAgICAgKm5nSWY9XCJtb1tjb2x1bW4uTmFtZV1cIlxuICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG4gICAgICAgIFtzaXplXT1cImRldmljZVNpemUgPT09ICdzJyA/ICdzJyA6ICdtJ1wiXG4gICAgICAgIFtpbWFnZV09XCJtb1tjb2x1bW4uTmFtZV0gfCBwaWNGaWVsZFNyYzogJ1BpY3R1cmVGaWxlSW5mbyc6bnVsbDpjb2x1bW4uRmllbGREZWZJZFwiXG4gICAgPjwvZmQtYXZhdGFyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbENoZWNib3g+XG4gICAgPGZkLWljb24gW2dseXBoXT1cIm1vW2NvbHVtbi5OYW1lXSA9PT0gdHJ1ZSA/ICdhY2NlcHQnIDogJ2xlc3MnXCI+PC9mZC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2hlY2JveEltYWdlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uRXh0cmE/LlRydWVJbWFnZSA9PT0gJydcIj57eyB2YWx1ZSB9fTwvbmctY29udGFpbmVyPlxuICAgIDxpbWdcbiAgICAgICAgKm5nSWY9XCJjb2x1bW4uRXh0cmE/LlRydWVJbWFnZSAhPT0gJydcIlxuICAgICAgICBbc3JjXT1cIm1vW2NvbHVtbi5OYW1lXSA/IGNvbHVtbi5FeHRyYT8uVHJ1ZUltYWdlIDogY29sdW1uLkV4dHJhPy5GYWxzZUltYWdlXCJcbiAgICAgICAgYWxpbmc9XCJtaWRkbGVcIlxuICAgIC8+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNyZW5kZXJDZWxsSW1hZ2U+XG4gICAgPGZkLWF2YXRhclxuICAgICAgICAqbmdJZj1cIm1vW2NvbHVtbi5OYW1lXSAmJiBtb1tjb2x1bW4uTmFtZV1bJ1VybCddXCJcbiAgICAgICAgW3NpemVdPVwiY29sdW1uLkZpZWxkVHlwZUlkID09PSAnNDInID8gJ3hzJyA6IGRldmljZVNpemUgPT09ICdzJyA/ICdzJyA6ICdtJ1wiXG4gICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcbiAgICAgICAgW2ltYWdlXT1cIm1vW2NvbHVtbi5OYW1lXVsnVXJsJ11cIlxuICAgID48L2ZkLWF2YXRhcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NvbHVtbi1yZW5kZXJlci9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY29sdW1uLXJlbmRlcmVyL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUdSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBeUIsYUFBYSxFQUFzQyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7QUFRaEgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQWE7SUFvQnREOztPQUVHO0lBQ0gsWUFBc0IsSUFBdUI7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQXRCZCxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBd0JoRCxDQUFDO0lBQ0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUNELGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3QyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1Q7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEdBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7b0hBN0NRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDJpQkNqQnBDLG1vT0FvS0E7MkZEbkphLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxtQ0FBbUMsbUJBRzVCLHVCQUF1QixDQUFDLE1BQU07d0dBR2hCLFFBQVE7c0JBQXRDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNwQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFiYnJldmF0aW9uRGV2aWNlU2l6ZSwgQmFzZUNvbXBvbmVudCwgTGF5b3V0U2V0dGluZywgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtY29sdW1uLXJlbmRlcmVyLFtjb2xSZW5kZXJlcl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtblJlbmRlcmVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pc01vYmlsZScpIF9pc1NtYWxsID0gZmFsc2U7XG4gICAgQElucHV0KCkgY29sdW1uOiBhbnk7XG4gICAgQElucHV0KCkgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgQElucHV0KCkgaW5kZXg6IGFueTtcbiAgICBASW5wdXQoKSBlZGl0TW9kZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjdXN0b21Sb3dIZWlnaHQ6IGFueTtcbiAgICBASW5wdXQoKSBjb250cm9sVWk6IExheW91dFNldHRpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpIGZvcm1MYXlvdXRTaG93TGFiZWw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNDaGVja2VkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzTmV3SW5saW5lTW86IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29udGFpbmVyRG9tOiBIVE1MRWxlbWVudDtcblxuICAgIEBJbnB1dCgpIGRpc2FibGVFbGxhcHNpczogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBydGw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGV2aWNlTmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSB2YWx1ZTogYW55O1xuICAgIEBJbnB1dCgpIGljb246IGFueTtcbiAgICBzaG93TW9yZTogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3MnKSB7XG4gICAgICAgICAgICB0aGlzLl9pc1NtYWxsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5GaWVsZFR5cGVJZC50b1N0cmluZygpID09PSAnMzEnKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25FbGFwc2lzZWQodmFsOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVFbGxhcHNpcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hvd01vcmUgPSB2YWw7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtblwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVkaXRNb2RlID8gZm9ybUNvbnRyb2xUZW1wbGF0ZSA6IHJlbmRlckNlbGxUZW1wbGF0ZVwiPiA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbFRlbXBsYXRlPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29sdW1uLkZpZWxkVHlwZUlkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJzQyJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbEltYWdlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJzMzJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbEZpbGVJbmZvXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJzMxJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbEZpbGVMaXN0S2hhdGlcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInMTEnXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJDZWxsTGlzdFRhc2F2aXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInNSdcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uRXh0cmE/LlNob3dDaGVja0luR3JpZCA/IHJlbmRlckNlbGxDaGVjYm94IDogcmVuZGVyQ2hlY2JveEltYWdlXCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlckdlbmVyYWxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckdlbmVyYWw+XHJcbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzdGFydFwiIFtzdHlsZS53aWR0aF09XCJcIj5cclxuICAgICAgICA8aW1nIFthdHRyLnJ0bF09XCJydGxcIiAqbmdJZj1cImljb25cIiBbc3JjXT1cImljb25cIiAvPlxyXG4gICAgICAgIDwhLS0gPGZkLXRleHRcclxuICAgICAgICAgICAgI2ZkVGV4dFxyXG4gICAgICAgICAgICAqbmdJZj1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJ1wiXHJcbiAgICAgICAgICAgIFttYXhMaW5lc109XCIxXCJcclxuICAgICAgICAgICAgW3RleHRdPVwidmFsdWVcIlxyXG4gICAgICAgICAgICBbZmQtaW5saW5lLWhlbHBdPVwidmFsdWVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWZkVGV4dC5faGFzTW9yZVwiXHJcbiAgICAgICAgPjwvZmQtdGV4dD4gLS0+XHJcblxyXG4gICAgICAgIDwhLS0gPGJzdS1iYXJzYS10ZXh0LWVsbGlwc2lzXHJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4uJFdpZHRoXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gIT09ICdJbWFnZSdcIlxyXG4gICAgICAgICAgICBbdGV4dF09XCJ2YWx1ZVwiXHJcbiAgICAgICAgPjwvYnN1LWJhcnNhLXRleHQtZWxsaXBzaXM+IC0tPlxyXG4gICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJ1wiIHN0eWxlPVwid29yZC1icmVhazpicmVhay13b3JkXCI+XHJcbiAgICAgICAgICAgIHt7IHZhbHVlIH19XHJcbiAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gIT09ICdJbWFnZSdcIlxyXG4gICAgICAgICAgICBbZWxsYXBzaXNUZXh0XT1cInZhbHVlXCJcclxuICAgICAgICAgICAgW2NsYXNzLmVsbGFwc2lzXT1cIiFkaXNhYmxlRWxsYXBzaXNcIlxyXG4gICAgICAgICAgICAoZWxsYXBzaXNlZCk9XCJvbkVsYXBzaXNlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNob3dNb3JlICYmIGhlbHBQb3BvdmVyLm9wZW4oKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyB2YWx1ZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxmZC1wb3BvdmVyICNoZWxwUG9wb3Zlcj5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD4gPC9mZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgY2xhc3M9XCJoZWxwLXBvcG92ZXItYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1wb3BvdmVyLWJvZHktaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50IHN0eWxlPVwid2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGNvbHVtbi5BbGlhcyB8IGJiYlRyYW5zbGF0ZSB9fTo8L2ZkLWJhci1lbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoZWxwUG9wb3Zlci5jbG9zZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtY29udGVudFwiPnt7IHZhbHVlIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI2Zvcm1Db250cm9sVGVtcGxhdGU+XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgIWNvbnRyb2xVaSB8fCBjb250cm9sVWkuRmllbGRVaS5vcmlnaW5hbFh0eXBlID09PSAnVWkuUmVhZE9ubHlGaWVsZCdcclxuICAgICAgICAgICAgICAgID8gcmVuZGVyQ2VsbFRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICA6IGxheW91dENvbnRyb2xUZW1wbGF0ZVxyXG4gICAgICAgIFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjbGF5b3V0Q29udHJvbFRlbXBsYXRlPlxyXG4gICAgPGJzdS1sYXlvdXQtY29udHJvbFxyXG4gICAgICAgICpuZ0lmPVwiY29udHJvbFVpXCJcclxuICAgICAgICBbaW5saW5lRWRpdF09XCJ0cnVlXCJcclxuICAgICAgICBbY2FwdGlvbl09XCJjb2x1bW4uQ2FwdGlvblwiXHJcbiAgICAgICAgW2NvbmZpZ109XCJjb250cm9sVWlcIlxyXG4gICAgICAgIFtmb2N1c0NvbnRyb2xdPVwiaW5kZXggPT09IDAgJiYgKGlzQ2hlY2tlZCB8fCBpc05ld0lubGluZU1vKVwiXHJcbiAgICAgICAgW3Nob3dMYWJlbF09XCJmb3JtTGF5b3V0U2hvd0xhYmVsXCJcclxuICAgID48L2JzdS1sYXlvdXQtY29udHJvbD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNyZW5kZXJDZWxsTGlzdFRhc2F2aXI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwibW9bY29sdW1uLk5hbWVdICYmIG1vW2NvbHVtbi5OYW1lXS5JbWFnZXNcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAwLjE1cmVtXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGljIG9mIG1vW2NvbHVtbi5OYW1lXS5JbWFnZXNcIj5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgZnVsbHNjcmVlblxyXG4gICAgICAgICAgICAgICAgZnVsbHNjcmVlbkZpbGVzXHJcbiAgICAgICAgICAgICAgICBbZmlsZXNdPVwibW9bY29sdW1uLk5hbWVdLkltYWdlc1wiXHJcbiAgICAgICAgICAgICAgICBbaXNJbWFnZUdhbGxlcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgICAgIFtzcmNdPVwicGljLkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnQmFyc2FQaWN0dXJlLlRodW1ibmFpbCc6bnVsbDonJzozMjozMlwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzcmVtOyBoZWlnaHQ6IDNyZW1cIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEZpbGVMaXN0S2hhdGk+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9bY29sdW1uLk5hbWVdXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtdmlld2VyLWF0dGFjaG1lbnRzXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbGUgb2YgbW9bY29sdW1uLk5hbWVdLkZpbGVzXCI+XHJcbiAgICAgICAgICAgICAgICA8YnN1LWZpbGUtdmlld2VyLXBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiY29udGFpbmVyRG9tID8gY29udGFpbmVyRG9tLm9mZnNldFdpZHRoIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZmlsZS5Jc0RlbGV0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWxlXT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWxlc109XCJtb1tjb2x1bW4uTmFtZV0uRmlsZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjYW5Eb3dubG9hZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZVJlbW92ZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxyXG4gICAgICAgICAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLXBvcG92ZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZmQtdG9rZW4gKm5nSWY9XCIhZmlsZS5Jc0RlbGV0ZWRcIiBbcmVhZE9ubHldPVwidHJ1ZVwiPnt7IGZpbGUuRmlsZU5hbWUgfX08L2ZkLXRva2VuPiAtLT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNyZW5kZXJDZWxsRmlsZUluZm8+XHJcbiAgICA8ZmQtYXZhdGFyXHJcbiAgICAgICAgKm5nSWY9XCJtb1tjb2x1bW4uTmFtZV1cIlxyXG4gICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcclxuICAgICAgICBbc2l6ZV09XCJkZXZpY2VTaXplID09PSAncycgPyAncycgOiAnbSdcIlxyXG4gICAgICAgIFtpbWFnZV09XCJtb1tjb2x1bW4uTmFtZV0gfCBwaWNGaWVsZFNyYzogJ1BpY3R1cmVGaWxlSW5mbyc6bnVsbDpjb2x1bW4uRmllbGREZWZJZFwiXHJcbiAgICA+PC9mZC1hdmF0YXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbENoZWNib3g+XHJcbiAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwibW9bY29sdW1uLk5hbWVdID09PSB0cnVlID8gJ2FjY2VwdCcgOiAnbGVzcydcIj48L2ZkLWljb24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2hlY2JveEltYWdlPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5FeHRyYT8uVHJ1ZUltYWdlID09PSAnJ1wiPnt7IHZhbHVlIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8aW1nXHJcbiAgICAgICAgKm5nSWY9XCJjb2x1bW4uRXh0cmE/LlRydWVJbWFnZSAhPT0gJydcIlxyXG4gICAgICAgIFtzcmNdPVwibW9bY29sdW1uLk5hbWVdID8gY29sdW1uLkV4dHJhPy5UcnVlSW1hZ2UgOiBjb2x1bW4uRXh0cmE/LkZhbHNlSW1hZ2VcIlxyXG4gICAgICAgIGFsaW5nPVwibWlkZGxlXCJcclxuICAgIC8+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEltYWdlPlxyXG4gICAgPGZkLWF2YXRhclxyXG4gICAgICAgICpuZ0lmPVwibW9bY29sdW1uLk5hbWVdICYmIG1vW2NvbHVtbi5OYW1lXVsnVXJsJ11cIlxyXG4gICAgICAgIFtzaXplXT1cImNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gJzQyJyA/ICd4cycgOiBkZXZpY2VTaXplID09PSAncycgPyAncycgOiAnbSdcIlxyXG4gICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcclxuICAgICAgICBbaW1hZ2VdPVwibW9bY29sdW1uLk5hbWVdWydVcmwnXVwiXHJcbiAgICA+PC9mZC1hdmF0YXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|