barsa-sap-ui 2.0.10 → 2.0.12
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/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +1 -1
- package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +3 -3
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +1 -1
- package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +5 -3
- package/esm2022/lib/form-dialog/form-dialog.component.mjs +17 -5
- package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +1 -1
- package/esm2022/lib/report-tree-base.mjs +5 -33
- package/esm2022/lib/search-panel/search-panel.component.mjs +1 -1
- package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +20 -19
- package/esm2022/lib/ui-grid/ui-grid.component.mjs +1 -1
- package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +1 -1
- package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +1 -1
- package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +2 -2
- package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +3 -3
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +5 -3
- package/esm2022/lib/ui-tree/ui-tree.component.mjs +6 -3
- package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +5 -3
- package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +11 -12
- package/fesm2022/barsa-sap-ui.mjs +85 -92
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-tree-item/barsa-tree-item.component.d.ts +2 -1
- package/lib/form-dialog/form-dialog.component.d.ts +10 -1
- package/lib/report-tree-base.d.ts +0 -2
- package/lib/ui-form-panel/ui-form-panel.component.d.ts +0 -4
- package/lib/ui-table-view/ui-table-view.component.d.ts +2 -1
- package/lib/ui-tree-view/ui-tree-view.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -28,11 +28,11 @@ export class UiReportContainerComponent extends SapUiReportBaseComponent {
|
|
|
28
28
|
this.selectedView = uiComponent;
|
|
29
29
|
}
|
|
30
30
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiReportContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiReportContainerComponent, selector: "bsu-ui-report-container", viewQueries: [{ propertyName: "tableView", first: true, predicate: ["renderTable"], descendants: true, static: true }, { propertyName: "cardListView", first: true, predicate: ["renderCardList"], descendants: true, static: true }, { propertyName: "listView", first: true, predicate: ["renderList"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!--render container-->\n<ng-container\n *ngTemplateOutlet=\"\n renderContainer;\n context: {\n $implicit: gridDataSource.data$ | async,\n allChecked: allChecked$ | async,\n groupby: groupby$ | async,\n isCheckList: context.Setting.View?.IsCheckList,\n columns: columns$ | async,\n columnsCount: columnsCount$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n inlineEditMode: inlineEditMode$ | async,\n onlyInlineEdit: onlyInlineEdit$ | async,\n secondaryColumns: secondaryColumns$ | async,\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\n popin: (mobileOrTablet$ | async) || (secondaryColumnsCount$ | async) ? true : false,\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\n conditionalFormats: conditionalFormats$ | async,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n mobileOrTablet: mobileOrTablet$ | async,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n title: title$ | async,\n rtl: rtl$ | async,\n hideToolbar: (hideToolbar$ | async) === true || viewSetting.HideToolbar,\n selectedView: selectedView,\n viewCollection: viewCollection,\n allColumns: allColumns,\n gridSetting: gridSetting$ | async,\n hasSummary: context.Setting.View?.HasSummaryRow,\n contentDensity: contentDensity$ | async,\n formLayout: layout$ | async,\n hasSelected: hasSelected$ | async,\n disableOverflowContextMenu: viewSetting.DisableOverflowContextMenu,\n showCreateForm: viewSetting.ShowCreateForm,\n hideOpenIcon: viewSetting.HideOpenIcon,\n openOnClick: viewSetting.OpenOnClick,\n navigationArrow: navigationArrow$ | async,\n containerWidth: containerWidth$ | async,\n typeDefId: context.Setting.Extra.Report.TypeDefId,\n reportId: context.Setting.Extra.Report.Id,\n listEditViewId: context.Setting.Extra.Report.ListEditViewId,\n typeViewId: context.Setting.Extra.Report.TypeViewId,\n formSetting: context.Setting.FormTemplate,\n extraRelation: context.Setting.Extra?.Relation,\n contextView: context.Setting.View,\n cartableTemplates: cartableTemplates$ | async,\n cartableChildsMo: cartableChildsMo$ | async,\n disableResponsive: viewSetting.DisableResponsive,\n inDialog: inDialog$ | async,\n isMultiSelect: isMultiSelect$ | async,\n contextSetting: context.Setting,\n customFieldInfo: context.Setting.CustomFieldInfo,\n selectedMo: selectedMo$ | async,\n hideSearchpanel: hideSearchpanel$ | async,\n selectedCount: selectedCount$ | async,\n gridFreeColumnSizing: gridFreeColumnSizing$ | async,\n UlvMainCtrlr: context.Adapter?.UlvMainCtrlr,\n allowGridColumnSort: context.ViewSetting.AllowGridColumnSort,\n hasInlineEditButton: viewSetting.HasInlineEditButton,\n hasInlineDeleteButton: viewSetting.HasInlineDeleteButton,\n pagingSetting: pagingSetting$ | async\n }\n \"\n></ng-container>\n<!--render container -->\n<ng-template\n #renderContainer\n let-moDataList\n let-allChecked=\"allChecked\"\n let-isCheckList=\"isCheckList\"\n let-columns=\"columns\"\n let-columnsCount=\"columnsCount\"\n let-groupby=\"groupby\"\n let-secondaryColumns=\"secondaryColumns\"\n let-contextMenuItems=\"contextMenuItems\"\n let-conditionalFormats=\"conditionalFormats\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-access=\"access\"\n let-toolbarButtons=\"toolbarButtons\"\n let-popin=\"popin\"\n let-mobileOrTablet=\"mobileOrTablet\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-onlyInlineEdit=\"onlyInlineEdit\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-rtl=\"rtl\"\n let-allColumns=\"allColumns\"\n let-selectedView=\"selectedView\"\n let-viewCollection=\"viewCollection\"\n let-hideToolbar=\"hideToolbar\"\n let-gridSetting=\"gridSetting\"\n let-contentDensity=\"contentDensity\"\n let-formLayout=\"formLayout\"\n let-hasSelected=\"hasSelected\"\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\n let-navigationArrow=\"navigationArrow\"\n let-containerWidth=\"containerWidth\"\n let-hasSummary=\"hasSummary\"\n let-typeDefId=\"typeDefId\"\n let-formSetting=\"formSetting\"\n let-extraRelation=\"extraRelation\"\n let-contextView=\"contextView\"\n let-showCreateForm=\"showCreateForm\"\n let-hideOpenIcon=\"hideOpenIcon\"\n let-cartableTemplates=\"cartableTemplates\"\n let-cartableChildsMo=\"cartableChildsMo\"\n let-openOnClick=\"openOnClick\"\n let-disableResponsive=\"disableResponsive\"\n let-inDialog=\"inDialog\"\n let-isMultiSelect=\"isMultiSelect\"\n let-customFieldInfo=\"customFieldInfo\"\n let-selectedMo=\"selectedMo\"\n let-selectedCount=\"selectedCount\"\n let-hideSearchpanel=\"hideSearchpanel\"\n let-gridFreeColumnSizing=\"gridFreeColumnSizing\"\n let-reportId=\"reportId\"\n let-listEditViewId=\"listEditViewId\"\n let-typeViewId=\"typeViewId\"\n let-UlvMainCtrlr=\"UlvMainCtrlr\"\n let-allowGridColumnSort=\"allowGridColumnSort\"\n let-pagingSetting=\"pagingSetting\"\n let-hasInlineDeleteButton=\"hasInlineDeleteButton\"\n let-hasInlineEditButton=\"hasInlineEditButton\"\n let-contextSetting=\"contextSetting\"\n>\n @if (showCreateForm) {\n <div>\n <bsu-report-new-top-form\n [extraRelation]=\"extraRelation\"\n [moDataListCount]=\"moDataList.length\"\n [selectedMo]=\"selectedMo\"\n [formSetting]=\"formSetting\"\n [typeDefId]=\"typeDefId\"\n [inlineEditMode]=\"true\"\n [isChecked]=\"true\"\n (add)=\"onNewTopFormAdd($event)\"\n (save)=\"onSaveTopForm($event)\"\n ></bsu-report-new-top-form>\n </div>\n }\n <bsu-ulv-toolbar\n [allowGridColumnSort]=\"allowGridColumnSort\"\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"toolbarButtons\"\n [gridSetting]=\"gridSetting\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [title]=\"title\"\n [access]=\"access\"\n [isMultiSelect]=\"isMultiSelect\"\n [inDialog]=\"inDialog\"\n [hasSelected]=\"hasSelected\"\n [contentDensity]=\"contentDensity\"\n [viewCollection]=\"viewCollection\"\n [reportView]=\"selectedView\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [moDataListCount]=\"moDataList.length\"\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n (sortClick)=\"onSortSettings($event)\"\n (groupbyClick)=\"onGroupbySettings($event)\"\n (columnClick)=\"onColumnSettings($event)\"\n (editModeClick)=\"onEditMode()\"\n (viewClick)=\"onChangeView($event)\"\n (createNewInlineMo)=\"onToolbarCreateNewInlineMo()\"\n ></bsu-ulv-toolbar>\n\n <div\n class=\"report-view\"\n [attr.reportCaption]=\"context.Setting.Extra.Report.Caption\"\n reportViewRenderer\n [toolbarButtons]=\"toolbarButtons\"\n [hideToolbar]=\"hideToolbar\"\n [hasInlineDeleteButton]=\"hasInlineDeleteButton\"\n [hasInlineEditButton]=\"hasInlineEditButton\"\n [contextSetting]=\"contextSetting\"\n [listEditViewId]=\"listEditViewId\"\n [typeViewId]=\"typeViewId\"\n [toolbarButtons]=\"toolbarButtons\"\n [pagingSetting]=\"pagingSetting\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [reportId]=\"reportId\"\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n [hideSearchpanel]=\"hideSearchpanel\"\n [selectedMo]=\"selectedMo\"\n [selectedCount]=\"selectedCount\"\n [hasSelected]=\"hasSelected\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [customFieldInfo]=\"customFieldInfo\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [openOnClick]=\"openOnClick\"\n [contextView]=\"contextView\"\n [containerWidth]=\"containerWidth\"\n [extraRelation]=\"extraRelation\"\n [typeDefId]=\"typeDefId\"\n [cartableTemplates]=\"cartableTemplates\"\n [cartableChildsMo]=\"cartableChildsMo\"\n [view]=\"selectedView\"\n [isCheckList]=\"isCheckList\"\n [allChecked]=\"allChecked\"\n [moDataList]=\"moDataList\"\n [access]=\"access\"\n [groupby]=\"groupby\"\n [contentDensity]=\"contentDensity\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [formSetting]=\"formSetting\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [navigationArrow]=\"navigationArrow\"\n [title]=\"title\"\n [mobileOrTablet]=\"mobileOrTablet\"\n [popin]=\"popin\"\n [secondaryColumns]=\"secondaryColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [inlineEditMode]=\"inlineEditMode && allowInlineEdit\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [columns]=\"columns\"\n [rtl]=\"rtl\"\n [allColumns]=\"allColumns\"\n [hasSummary]=\"hasSummary\"\n [columnsCount]=\"columnsCount\"\n [formLayout]=\"formLayout\"\n [disableResponsive]=\"disableResponsive\"\n (escapeKey)=\"onEscapeKey($event)\"\n (resetWorkflowState)=\"onResetWorkflowState($event)\"\n (hasDetailsInRow)=\"onHasDetailsInRow($event, deviceSize)\"\n (executeToolbarButton)=\"onExecuteToolbarButton($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (ulvCommandClick)=\"onUlvCommand($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (columnResized)=\"onColumnResized($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n (createNewMo)=\"onCreateNewMo()\"\n (updateMo)=\"onUpdateMo($event)\"\n (mandatory)=\"onMandatory($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n ></div>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}.view-row{cursor:pointer}.header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:.5rem;background-color:var(--sapBaseColor)}.header span{font-size:1.7rem;font-weight:300}.btn-margin{margin:0 8px 0 0}.table-header-btn-group{display:flex;justify-content:flex-end;flex-grow:1}.context-command{margin:0 2px}.body-wrapper,.body-wrapper table{width:100%}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.root-grouped{color:green}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.single-select{min-width:2rem;max-width:2rem;width:2rem;text-align:center}.grid-editable-btn-group{display:flex;justify-content:space-evenly;align-items:center}.table-fixed{table-layout:fixed}.table-fixed td{overflow:hidden}::ng-deep span.fd-toolbar__spacer{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: ["allowGridColumnSort", "useLayoutItemTextForControl", "enableSearch", "hideTitle", "title", "deviceName", "deviceSize", "access", "hideToolbar", "toolbarButtons", "contentDensity", "inlineEditMode", "allowInlineEdit", "gridSetting", "viewCollection", "reportView", "inDialog", "isMultiSelect", "hasSelected", "config", "hidden", "buttons", "moDataListCount"], outputs: ["search", "groupbyClick", "sortClick", "columnClick", "editModeClick", "viewClick", "createNewInlineMo"] }, { kind: "component", type: i3.ReportNewTopFormComponent, selector: "bsu-report-new-top-form", inputs: ["selectedMo"], outputs: ["add", "save"] }, { kind: "directive", type: i4.ReportViewRendererDirective, selector: "[reportViewRenderer]", inputs: ["view", "moDataList", "allChecked", "contextSetting", "groupby", "isCheckList", "hasInlineDeleteButton", "hasInlineEditButton", "selectedCount", "hideToolbar", "toolbarButtons", "pagingSetting", "UlvMainCtrlr", "hasSummary", "relationList", "columns", "columnsCount", "secondaryColumns", "contextMenuItems", "conditionalFormats", "deviceName", "deviceSize", "mobileOrTablet", "access", "title", "customFieldInfo", "selectedMo", "allColumns", "viewSetting", "inlineEditMode", "onlyInlineEdit", "allowInlineEdit", "popin", "hasSelected", "formSetting", "disableOverflowContextMenu", "navigationArrow", "typeDefId", "reportId", "listEditViewId", "typeViewId", "containerWidth", "extraRelation", "contextView", "contentDensity", "hideOpenIcon", "openOnClick", "inDialog", "isMultiSelect", "rtl", "disableResponsive", "hideSearchpanel", "gridFreeColumnSizing", "cartableTemplates", "cartableChildsMo"], outputs: ["editFormPanelCancel", "editFormPanelValueChange", "resetWorkflowState", "ulvCommandClick", "sortAscending", "sortDescending", "filter", "deselectAll", "rowCheck", "rowClick", "executeToolbarButton", "expandClick", "trackBySelectedFn", "cartableFormClosed", "createNewMo", "updateMo", "hasDetailsInRow", "allCheckbox", "mandatory", "editFormPanelSave", "columnResized", "selectNextInlineRecord", "workflowShareButtons", "escapeKey"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.SeperatorFixPipe, name: "seperatorFix" }, { kind: "pipe", type: i5.ContextMenuPipe, name: "contextMenu" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiReportContainerComponent, selector: "bsu-ui-report-container", viewQueries: [{ propertyName: "tableView", first: true, predicate: ["renderTable"], descendants: true, static: true }, { propertyName: "cardListView", first: true, predicate: ["renderCardList"], descendants: true, static: true }, { propertyName: "listView", first: true, predicate: ["renderList"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!--render container-->\n<ng-container\n *ngTemplateOutlet=\"\n renderContainer;\n context: {\n $implicit: gridDataSource.data$ | async,\n allChecked: allChecked$ | async,\n groupby: groupby$ | async,\n isCheckList: context.Setting.View?.IsCheckList,\n columns: columns$ | async,\n columnsCount: columnsCount$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n inlineEditMode: inlineEditMode$ | async,\n onlyInlineEdit: onlyInlineEdit$ | async,\n secondaryColumns: secondaryColumns$ | async,\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\n popin: (mobileOrTablet$ | async) || (secondaryColumnsCount$ | async) ? true : false,\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\n conditionalFormats: conditionalFormats$ | async,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n mobileOrTablet: mobileOrTablet$ | async,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n title: title$ | async,\n rtl: rtl$ | async,\n hideToolbar: (hideToolbar$ | async) === true || viewSetting.HideToolbar,\n selectedView: selectedView,\n viewCollection: viewCollection,\n allColumns: allColumns,\n gridSetting: gridSetting$ | async,\n hasSummary: context.Setting.View?.HasSummaryRow,\n contentDensity: contentDensity$ | async,\n formLayout: layout$ | async,\n hasSelected: hasSelected$ | async,\n disableOverflowContextMenu: viewSetting.DisableOverflowContextMenu,\n showCreateForm: viewSetting.ShowCreateForm,\n hideOpenIcon: viewSetting.HideOpenIcon,\n openOnClick: viewSetting.OpenOnClick,\n navigationArrow: navigationArrow$ | async,\n containerWidth: containerWidth$ | async,\n typeDefId: context.Setting.Extra.Report.TypeDefId,\n reportId: context.Setting.Extra.Report.Id,\n listEditViewId: context.Setting.Extra.Report.ListEditViewId,\n typeViewId: context.Setting.Extra.Report.TypeViewId,\n formSetting: context.Setting.FormTemplate,\n extraRelation: context.Setting.Extra?.Relation,\n contextView: context.Setting.View,\n cartableTemplates: cartableTemplates$ | async,\n cartableChildsMo: cartableChildsMo$ | async,\n disableResponsive: viewSetting.DisableResponsive,\n inDialog: inDialog$ | async,\n isMultiSelect: isMultiSelect$ | async,\n contextSetting: context.Setting,\n customFieldInfo: context.Setting.CustomFieldInfo,\n selectedMo: selectedMo$ | async,\n hideSearchpanel: hideSearchpanel$ | async,\n selectedCount: selectedCount$ | async,\n gridFreeColumnSizing: gridFreeColumnSizing$ | async,\n UlvMainCtrlr: context.Adapter?.UlvMainCtrlr,\n allowGridColumnSort: context.ViewSetting?.AllowGridColumnSort,\n hasInlineEditButton: viewSetting.HasInlineEditButton,\n hasInlineDeleteButton: viewSetting.HasInlineDeleteButton,\n pagingSetting: pagingSetting$ | async\n }\n \"\n></ng-container>\n<!--render container -->\n<ng-template\n #renderContainer\n let-moDataList\n let-allChecked=\"allChecked\"\n let-isCheckList=\"isCheckList\"\n let-columns=\"columns\"\n let-columnsCount=\"columnsCount\"\n let-groupby=\"groupby\"\n let-secondaryColumns=\"secondaryColumns\"\n let-contextMenuItems=\"contextMenuItems\"\n let-conditionalFormats=\"conditionalFormats\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-access=\"access\"\n let-toolbarButtons=\"toolbarButtons\"\n let-popin=\"popin\"\n let-mobileOrTablet=\"mobileOrTablet\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-onlyInlineEdit=\"onlyInlineEdit\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-rtl=\"rtl\"\n let-allColumns=\"allColumns\"\n let-selectedView=\"selectedView\"\n let-viewCollection=\"viewCollection\"\n let-hideToolbar=\"hideToolbar\"\n let-gridSetting=\"gridSetting\"\n let-contentDensity=\"contentDensity\"\n let-formLayout=\"formLayout\"\n let-hasSelected=\"hasSelected\"\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\n let-navigationArrow=\"navigationArrow\"\n let-containerWidth=\"containerWidth\"\n let-hasSummary=\"hasSummary\"\n let-typeDefId=\"typeDefId\"\n let-formSetting=\"formSetting\"\n let-extraRelation=\"extraRelation\"\n let-contextView=\"contextView\"\n let-showCreateForm=\"showCreateForm\"\n let-hideOpenIcon=\"hideOpenIcon\"\n let-cartableTemplates=\"cartableTemplates\"\n let-cartableChildsMo=\"cartableChildsMo\"\n let-openOnClick=\"openOnClick\"\n let-disableResponsive=\"disableResponsive\"\n let-inDialog=\"inDialog\"\n let-isMultiSelect=\"isMultiSelect\"\n let-customFieldInfo=\"customFieldInfo\"\n let-selectedMo=\"selectedMo\"\n let-selectedCount=\"selectedCount\"\n let-hideSearchpanel=\"hideSearchpanel\"\n let-gridFreeColumnSizing=\"gridFreeColumnSizing\"\n let-reportId=\"reportId\"\n let-listEditViewId=\"listEditViewId\"\n let-typeViewId=\"typeViewId\"\n let-UlvMainCtrlr=\"UlvMainCtrlr\"\n let-allowGridColumnSort=\"allowGridColumnSort\"\n let-pagingSetting=\"pagingSetting\"\n let-hasInlineDeleteButton=\"hasInlineDeleteButton\"\n let-hasInlineEditButton=\"hasInlineEditButton\"\n let-contextSetting=\"contextSetting\"\n>\n @if (showCreateForm) {\n <div>\n <bsu-report-new-top-form\n [extraRelation]=\"extraRelation\"\n [moDataListCount]=\"moDataList.length\"\n [selectedMo]=\"selectedMo\"\n [formSetting]=\"formSetting\"\n [typeDefId]=\"typeDefId\"\n [inlineEditMode]=\"true\"\n [isChecked]=\"true\"\n (add)=\"onNewTopFormAdd($event)\"\n (save)=\"onSaveTopForm($event)\"\n ></bsu-report-new-top-form>\n </div>\n }\n <bsu-ulv-toolbar\n [allowGridColumnSort]=\"allowGridColumnSort\"\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"toolbarButtons\"\n [gridSetting]=\"gridSetting\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [title]=\"title\"\n [access]=\"access\"\n [isMultiSelect]=\"isMultiSelect\"\n [inDialog]=\"inDialog\"\n [hasSelected]=\"hasSelected\"\n [contentDensity]=\"contentDensity\"\n [viewCollection]=\"viewCollection\"\n [reportView]=\"selectedView\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [moDataListCount]=\"moDataList.length\"\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n (sortClick)=\"onSortSettings($event)\"\n (groupbyClick)=\"onGroupbySettings($event)\"\n (columnClick)=\"onColumnSettings($event)\"\n (editModeClick)=\"onEditMode()\"\n (viewClick)=\"onChangeView($event)\"\n (createNewInlineMo)=\"onToolbarCreateNewInlineMo()\"\n ></bsu-ulv-toolbar>\n\n <div\n class=\"report-view\"\n [attr.reportCaption]=\"context.Setting.Extra.Report.Caption\"\n reportViewRenderer\n [toolbarButtons]=\"toolbarButtons\"\n [hideToolbar]=\"hideToolbar\"\n [hasInlineDeleteButton]=\"hasInlineDeleteButton\"\n [hasInlineEditButton]=\"hasInlineEditButton\"\n [contextSetting]=\"contextSetting\"\n [listEditViewId]=\"listEditViewId\"\n [typeViewId]=\"typeViewId\"\n [toolbarButtons]=\"toolbarButtons\"\n [pagingSetting]=\"pagingSetting\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [reportId]=\"reportId\"\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n [hideSearchpanel]=\"hideSearchpanel\"\n [selectedMo]=\"selectedMo\"\n [selectedCount]=\"selectedCount\"\n [hasSelected]=\"hasSelected\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [customFieldInfo]=\"customFieldInfo\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [openOnClick]=\"openOnClick\"\n [contextView]=\"contextView\"\n [containerWidth]=\"containerWidth\"\n [extraRelation]=\"extraRelation\"\n [typeDefId]=\"typeDefId\"\n [cartableTemplates]=\"cartableTemplates\"\n [cartableChildsMo]=\"cartableChildsMo\"\n [view]=\"selectedView\"\n [isCheckList]=\"isCheckList\"\n [allChecked]=\"allChecked\"\n [moDataList]=\"moDataList\"\n [access]=\"access\"\n [groupby]=\"groupby\"\n [contentDensity]=\"contentDensity\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [formSetting]=\"formSetting\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [navigationArrow]=\"navigationArrow\"\n [title]=\"title\"\n [mobileOrTablet]=\"mobileOrTablet\"\n [popin]=\"popin\"\n [secondaryColumns]=\"secondaryColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [inlineEditMode]=\"inlineEditMode && allowInlineEdit\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [columns]=\"columns\"\n [rtl]=\"rtl\"\n [allColumns]=\"allColumns\"\n [hasSummary]=\"hasSummary\"\n [columnsCount]=\"columnsCount\"\n [formLayout]=\"formLayout\"\n [disableResponsive]=\"disableResponsive\"\n (escapeKey)=\"onEscapeKey($event)\"\n (resetWorkflowState)=\"onResetWorkflowState($event)\"\n (hasDetailsInRow)=\"onHasDetailsInRow($event, deviceSize)\"\n (executeToolbarButton)=\"onExecuteToolbarButton($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (ulvCommandClick)=\"onUlvCommand($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (columnResized)=\"onColumnResized($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n (createNewMo)=\"onCreateNewMo()\"\n (updateMo)=\"onUpdateMo($event)\"\n (mandatory)=\"onMandatory($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n ></div>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}.view-row{cursor:pointer}.header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:.5rem;background-color:var(--sapBaseColor)}.header span{font-size:1.7rem;font-weight:300}.btn-margin{margin:0 8px 0 0}.table-header-btn-group{display:flex;justify-content:flex-end;flex-grow:1}.context-command{margin:0 2px}.body-wrapper,.body-wrapper table{width:100%}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.root-grouped{color:green}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.single-select{min-width:2rem;max-width:2rem;width:2rem;text-align:center}.grid-editable-btn-group{display:flex;justify-content:space-evenly;align-items:center}.table-fixed{table-layout:fixed}.table-fixed td{overflow:hidden}::ng-deep span.fd-toolbar__spacer{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: ["allowGridColumnSort", "useLayoutItemTextForControl", "enableSearch", "hideTitle", "title", "deviceName", "deviceSize", "access", "hideToolbar", "toolbarButtons", "contentDensity", "inlineEditMode", "allowInlineEdit", "gridSetting", "viewCollection", "reportView", "inDialog", "isMultiSelect", "hasSelected", "config", "hidden", "buttons", "moDataListCount"], outputs: ["search", "groupbyClick", "sortClick", "columnClick", "editModeClick", "viewClick", "createNewInlineMo"] }, { kind: "component", type: i3.ReportNewTopFormComponent, selector: "bsu-report-new-top-form", inputs: ["selectedMo"], outputs: ["add", "save"] }, { kind: "directive", type: i4.ReportViewRendererDirective, selector: "[reportViewRenderer]", inputs: ["view", "moDataList", "allChecked", "contextSetting", "groupby", "isCheckList", "hasInlineDeleteButton", "hasInlineEditButton", "selectedCount", "hideToolbar", "toolbarButtons", "pagingSetting", "UlvMainCtrlr", "hasSummary", "relationList", "columns", "columnsCount", "secondaryColumns", "contextMenuItems", "conditionalFormats", "deviceName", "deviceSize", "mobileOrTablet", "access", "title", "customFieldInfo", "selectedMo", "allColumns", "viewSetting", "inlineEditMode", "onlyInlineEdit", "allowInlineEdit", "popin", "hasSelected", "formSetting", "disableOverflowContextMenu", "navigationArrow", "typeDefId", "reportId", "listEditViewId", "typeViewId", "containerWidth", "extraRelation", "contextView", "contentDensity", "hideOpenIcon", "openOnClick", "inDialog", "isMultiSelect", "rtl", "disableResponsive", "hideSearchpanel", "gridFreeColumnSizing", "cartableTemplates", "cartableChildsMo"], outputs: ["editFormPanelCancel", "editFormPanelValueChange", "resetWorkflowState", "ulvCommandClick", "sortAscending", "sortDescending", "filter", "deselectAll", "rowCheck", "rowClick", "executeToolbarButton", "expandClick", "trackBySelectedFn", "cartableFormClosed", "createNewMo", "updateMo", "hasDetailsInRow", "allCheckbox", "mandatory", "editFormPanelSave", "columnResized", "selectNextInlineRecord", "workflowShareButtons", "escapeKey"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.SeperatorFixPipe, name: "seperatorFix" }, { kind: "pipe", type: i5.ContextMenuPipe, name: "contextMenu" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32
32
|
}
|
|
33
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiReportContainerComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
|
-
args: [{ selector: 'bsu-ui-report-container', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--render container-->\n<ng-container\n *ngTemplateOutlet=\"\n renderContainer;\n context: {\n $implicit: gridDataSource.data$ | async,\n allChecked: allChecked$ | async,\n groupby: groupby$ | async,\n isCheckList: context.Setting.View?.IsCheckList,\n columns: columns$ | async,\n columnsCount: columnsCount$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n inlineEditMode: inlineEditMode$ | async,\n onlyInlineEdit: onlyInlineEdit$ | async,\n secondaryColumns: secondaryColumns$ | async,\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\n popin: (mobileOrTablet$ | async) || (secondaryColumnsCount$ | async) ? true : false,\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\n conditionalFormats: conditionalFormats$ | async,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n mobileOrTablet: mobileOrTablet$ | async,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n title: title$ | async,\n rtl: rtl$ | async,\n hideToolbar: (hideToolbar$ | async) === true || viewSetting.HideToolbar,\n selectedView: selectedView,\n viewCollection: viewCollection,\n allColumns: allColumns,\n gridSetting: gridSetting$ | async,\n hasSummary: context.Setting.View?.HasSummaryRow,\n contentDensity: contentDensity$ | async,\n formLayout: layout$ | async,\n hasSelected: hasSelected$ | async,\n disableOverflowContextMenu: viewSetting.DisableOverflowContextMenu,\n showCreateForm: viewSetting.ShowCreateForm,\n hideOpenIcon: viewSetting.HideOpenIcon,\n openOnClick: viewSetting.OpenOnClick,\n navigationArrow: navigationArrow$ | async,\n containerWidth: containerWidth$ | async,\n typeDefId: context.Setting.Extra.Report.TypeDefId,\n reportId: context.Setting.Extra.Report.Id,\n listEditViewId: context.Setting.Extra.Report.ListEditViewId,\n typeViewId: context.Setting.Extra.Report.TypeViewId,\n formSetting: context.Setting.FormTemplate,\n extraRelation: context.Setting.Extra?.Relation,\n contextView: context.Setting.View,\n cartableTemplates: cartableTemplates$ | async,\n cartableChildsMo: cartableChildsMo$ | async,\n disableResponsive: viewSetting.DisableResponsive,\n inDialog: inDialog$ | async,\n isMultiSelect: isMultiSelect$ | async,\n contextSetting: context.Setting,\n customFieldInfo: context.Setting.CustomFieldInfo,\n selectedMo: selectedMo$ | async,\n hideSearchpanel: hideSearchpanel$ | async,\n selectedCount: selectedCount$ | async,\n gridFreeColumnSizing: gridFreeColumnSizing$ | async,\n UlvMainCtrlr: context.Adapter?.UlvMainCtrlr,\n allowGridColumnSort: context.ViewSetting.AllowGridColumnSort,\n hasInlineEditButton: viewSetting.HasInlineEditButton,\n hasInlineDeleteButton: viewSetting.HasInlineDeleteButton,\n pagingSetting: pagingSetting$ | async\n }\n \"\n></ng-container>\n<!--render container -->\n<ng-template\n #renderContainer\n let-moDataList\n let-allChecked=\"allChecked\"\n let-isCheckList=\"isCheckList\"\n let-columns=\"columns\"\n let-columnsCount=\"columnsCount\"\n let-groupby=\"groupby\"\n let-secondaryColumns=\"secondaryColumns\"\n let-contextMenuItems=\"contextMenuItems\"\n let-conditionalFormats=\"conditionalFormats\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-access=\"access\"\n let-toolbarButtons=\"toolbarButtons\"\n let-popin=\"popin\"\n let-mobileOrTablet=\"mobileOrTablet\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-onlyInlineEdit=\"onlyInlineEdit\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-rtl=\"rtl\"\n let-allColumns=\"allColumns\"\n let-selectedView=\"selectedView\"\n let-viewCollection=\"viewCollection\"\n let-hideToolbar=\"hideToolbar\"\n let-gridSetting=\"gridSetting\"\n let-contentDensity=\"contentDensity\"\n let-formLayout=\"formLayout\"\n let-hasSelected=\"hasSelected\"\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\n let-navigationArrow=\"navigationArrow\"\n let-containerWidth=\"containerWidth\"\n let-hasSummary=\"hasSummary\"\n let-typeDefId=\"typeDefId\"\n let-formSetting=\"formSetting\"\n let-extraRelation=\"extraRelation\"\n let-contextView=\"contextView\"\n let-showCreateForm=\"showCreateForm\"\n let-hideOpenIcon=\"hideOpenIcon\"\n let-cartableTemplates=\"cartableTemplates\"\n let-cartableChildsMo=\"cartableChildsMo\"\n let-openOnClick=\"openOnClick\"\n let-disableResponsive=\"disableResponsive\"\n let-inDialog=\"inDialog\"\n let-isMultiSelect=\"isMultiSelect\"\n let-customFieldInfo=\"customFieldInfo\"\n let-selectedMo=\"selectedMo\"\n let-selectedCount=\"selectedCount\"\n let-hideSearchpanel=\"hideSearchpanel\"\n let-gridFreeColumnSizing=\"gridFreeColumnSizing\"\n let-reportId=\"reportId\"\n let-listEditViewId=\"listEditViewId\"\n let-typeViewId=\"typeViewId\"\n let-UlvMainCtrlr=\"UlvMainCtrlr\"\n let-allowGridColumnSort=\"allowGridColumnSort\"\n let-pagingSetting=\"pagingSetting\"\n let-hasInlineDeleteButton=\"hasInlineDeleteButton\"\n let-hasInlineEditButton=\"hasInlineEditButton\"\n let-contextSetting=\"contextSetting\"\n>\n @if (showCreateForm) {\n <div>\n <bsu-report-new-top-form\n [extraRelation]=\"extraRelation\"\n [moDataListCount]=\"moDataList.length\"\n [selectedMo]=\"selectedMo\"\n [formSetting]=\"formSetting\"\n [typeDefId]=\"typeDefId\"\n [inlineEditMode]=\"true\"\n [isChecked]=\"true\"\n (add)=\"onNewTopFormAdd($event)\"\n (save)=\"onSaveTopForm($event)\"\n ></bsu-report-new-top-form>\n </div>\n }\n <bsu-ulv-toolbar\n [allowGridColumnSort]=\"allowGridColumnSort\"\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"toolbarButtons\"\n [gridSetting]=\"gridSetting\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [title]=\"title\"\n [access]=\"access\"\n [isMultiSelect]=\"isMultiSelect\"\n [inDialog]=\"inDialog\"\n [hasSelected]=\"hasSelected\"\n [contentDensity]=\"contentDensity\"\n [viewCollection]=\"viewCollection\"\n [reportView]=\"selectedView\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [moDataListCount]=\"moDataList.length\"\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n (sortClick)=\"onSortSettings($event)\"\n (groupbyClick)=\"onGroupbySettings($event)\"\n (columnClick)=\"onColumnSettings($event)\"\n (editModeClick)=\"onEditMode()\"\n (viewClick)=\"onChangeView($event)\"\n (createNewInlineMo)=\"onToolbarCreateNewInlineMo()\"\n ></bsu-ulv-toolbar>\n\n <div\n class=\"report-view\"\n [attr.reportCaption]=\"context.Setting.Extra.Report.Caption\"\n reportViewRenderer\n [toolbarButtons]=\"toolbarButtons\"\n [hideToolbar]=\"hideToolbar\"\n [hasInlineDeleteButton]=\"hasInlineDeleteButton\"\n [hasInlineEditButton]=\"hasInlineEditButton\"\n [contextSetting]=\"contextSetting\"\n [listEditViewId]=\"listEditViewId\"\n [typeViewId]=\"typeViewId\"\n [toolbarButtons]=\"toolbarButtons\"\n [pagingSetting]=\"pagingSetting\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [reportId]=\"reportId\"\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n [hideSearchpanel]=\"hideSearchpanel\"\n [selectedMo]=\"selectedMo\"\n [selectedCount]=\"selectedCount\"\n [hasSelected]=\"hasSelected\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [customFieldInfo]=\"customFieldInfo\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [openOnClick]=\"openOnClick\"\n [contextView]=\"contextView\"\n [containerWidth]=\"containerWidth\"\n [extraRelation]=\"extraRelation\"\n [typeDefId]=\"typeDefId\"\n [cartableTemplates]=\"cartableTemplates\"\n [cartableChildsMo]=\"cartableChildsMo\"\n [view]=\"selectedView\"\n [isCheckList]=\"isCheckList\"\n [allChecked]=\"allChecked\"\n [moDataList]=\"moDataList\"\n [access]=\"access\"\n [groupby]=\"groupby\"\n [contentDensity]=\"contentDensity\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [formSetting]=\"formSetting\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [navigationArrow]=\"navigationArrow\"\n [title]=\"title\"\n [mobileOrTablet]=\"mobileOrTablet\"\n [popin]=\"popin\"\n [secondaryColumns]=\"secondaryColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [inlineEditMode]=\"inlineEditMode && allowInlineEdit\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [columns]=\"columns\"\n [rtl]=\"rtl\"\n [allColumns]=\"allColumns\"\n [hasSummary]=\"hasSummary\"\n [columnsCount]=\"columnsCount\"\n [formLayout]=\"formLayout\"\n [disableResponsive]=\"disableResponsive\"\n (escapeKey)=\"onEscapeKey($event)\"\n (resetWorkflowState)=\"onResetWorkflowState($event)\"\n (hasDetailsInRow)=\"onHasDetailsInRow($event, deviceSize)\"\n (executeToolbarButton)=\"onExecuteToolbarButton($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (ulvCommandClick)=\"onUlvCommand($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (columnResized)=\"onColumnResized($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n (createNewMo)=\"onCreateNewMo()\"\n (updateMo)=\"onUpdateMo($event)\"\n (mandatory)=\"onMandatory($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n ></div>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}.view-row{cursor:pointer}.header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:.5rem;background-color:var(--sapBaseColor)}.header span{font-size:1.7rem;font-weight:300}.btn-margin{margin:0 8px 0 0}.table-header-btn-group{display:flex;justify-content:flex-end;flex-grow:1}.context-command{margin:0 2px}.body-wrapper,.body-wrapper table{width:100%}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.root-grouped{color:green}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.single-select{min-width:2rem;max-width:2rem;width:2rem;text-align:center}.grid-editable-btn-group{display:flex;justify-content:space-evenly;align-items:center}.table-fixed{table-layout:fixed}.table-fixed td{overflow:hidden}::ng-deep span.fd-toolbar__spacer{display:none}\n"] }]
|
|
35
|
+
args: [{ selector: 'bsu-ui-report-container', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--render container-->\n<ng-container\n *ngTemplateOutlet=\"\n renderContainer;\n context: {\n $implicit: gridDataSource.data$ | async,\n allChecked: allChecked$ | async,\n groupby: groupby$ | async,\n isCheckList: context.Setting.View?.IsCheckList,\n columns: columns$ | async,\n columnsCount: columnsCount$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n inlineEditMode: inlineEditMode$ | async,\n onlyInlineEdit: onlyInlineEdit$ | async,\n secondaryColumns: secondaryColumns$ | async,\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\n popin: (mobileOrTablet$ | async) || (secondaryColumnsCount$ | async) ? true : false,\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\n conditionalFormats: conditionalFormats$ | async,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n mobileOrTablet: mobileOrTablet$ | async,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n title: title$ | async,\n rtl: rtl$ | async,\n hideToolbar: (hideToolbar$ | async) === true || viewSetting.HideToolbar,\n selectedView: selectedView,\n viewCollection: viewCollection,\n allColumns: allColumns,\n gridSetting: gridSetting$ | async,\n hasSummary: context.Setting.View?.HasSummaryRow,\n contentDensity: contentDensity$ | async,\n formLayout: layout$ | async,\n hasSelected: hasSelected$ | async,\n disableOverflowContextMenu: viewSetting.DisableOverflowContextMenu,\n showCreateForm: viewSetting.ShowCreateForm,\n hideOpenIcon: viewSetting.HideOpenIcon,\n openOnClick: viewSetting.OpenOnClick,\n navigationArrow: navigationArrow$ | async,\n containerWidth: containerWidth$ | async,\n typeDefId: context.Setting.Extra.Report.TypeDefId,\n reportId: context.Setting.Extra.Report.Id,\n listEditViewId: context.Setting.Extra.Report.ListEditViewId,\n typeViewId: context.Setting.Extra.Report.TypeViewId,\n formSetting: context.Setting.FormTemplate,\n extraRelation: context.Setting.Extra?.Relation,\n contextView: context.Setting.View,\n cartableTemplates: cartableTemplates$ | async,\n cartableChildsMo: cartableChildsMo$ | async,\n disableResponsive: viewSetting.DisableResponsive,\n inDialog: inDialog$ | async,\n isMultiSelect: isMultiSelect$ | async,\n contextSetting: context.Setting,\n customFieldInfo: context.Setting.CustomFieldInfo,\n selectedMo: selectedMo$ | async,\n hideSearchpanel: hideSearchpanel$ | async,\n selectedCount: selectedCount$ | async,\n gridFreeColumnSizing: gridFreeColumnSizing$ | async,\n UlvMainCtrlr: context.Adapter?.UlvMainCtrlr,\n allowGridColumnSort: context.ViewSetting?.AllowGridColumnSort,\n hasInlineEditButton: viewSetting.HasInlineEditButton,\n hasInlineDeleteButton: viewSetting.HasInlineDeleteButton,\n pagingSetting: pagingSetting$ | async\n }\n \"\n></ng-container>\n<!--render container -->\n<ng-template\n #renderContainer\n let-moDataList\n let-allChecked=\"allChecked\"\n let-isCheckList=\"isCheckList\"\n let-columns=\"columns\"\n let-columnsCount=\"columnsCount\"\n let-groupby=\"groupby\"\n let-secondaryColumns=\"secondaryColumns\"\n let-contextMenuItems=\"contextMenuItems\"\n let-conditionalFormats=\"conditionalFormats\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-access=\"access\"\n let-toolbarButtons=\"toolbarButtons\"\n let-popin=\"popin\"\n let-mobileOrTablet=\"mobileOrTablet\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-onlyInlineEdit=\"onlyInlineEdit\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-rtl=\"rtl\"\n let-allColumns=\"allColumns\"\n let-selectedView=\"selectedView\"\n let-viewCollection=\"viewCollection\"\n let-hideToolbar=\"hideToolbar\"\n let-gridSetting=\"gridSetting\"\n let-contentDensity=\"contentDensity\"\n let-formLayout=\"formLayout\"\n let-hasSelected=\"hasSelected\"\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\n let-navigationArrow=\"navigationArrow\"\n let-containerWidth=\"containerWidth\"\n let-hasSummary=\"hasSummary\"\n let-typeDefId=\"typeDefId\"\n let-formSetting=\"formSetting\"\n let-extraRelation=\"extraRelation\"\n let-contextView=\"contextView\"\n let-showCreateForm=\"showCreateForm\"\n let-hideOpenIcon=\"hideOpenIcon\"\n let-cartableTemplates=\"cartableTemplates\"\n let-cartableChildsMo=\"cartableChildsMo\"\n let-openOnClick=\"openOnClick\"\n let-disableResponsive=\"disableResponsive\"\n let-inDialog=\"inDialog\"\n let-isMultiSelect=\"isMultiSelect\"\n let-customFieldInfo=\"customFieldInfo\"\n let-selectedMo=\"selectedMo\"\n let-selectedCount=\"selectedCount\"\n let-hideSearchpanel=\"hideSearchpanel\"\n let-gridFreeColumnSizing=\"gridFreeColumnSizing\"\n let-reportId=\"reportId\"\n let-listEditViewId=\"listEditViewId\"\n let-typeViewId=\"typeViewId\"\n let-UlvMainCtrlr=\"UlvMainCtrlr\"\n let-allowGridColumnSort=\"allowGridColumnSort\"\n let-pagingSetting=\"pagingSetting\"\n let-hasInlineDeleteButton=\"hasInlineDeleteButton\"\n let-hasInlineEditButton=\"hasInlineEditButton\"\n let-contextSetting=\"contextSetting\"\n>\n @if (showCreateForm) {\n <div>\n <bsu-report-new-top-form\n [extraRelation]=\"extraRelation\"\n [moDataListCount]=\"moDataList.length\"\n [selectedMo]=\"selectedMo\"\n [formSetting]=\"formSetting\"\n [typeDefId]=\"typeDefId\"\n [inlineEditMode]=\"true\"\n [isChecked]=\"true\"\n (add)=\"onNewTopFormAdd($event)\"\n (save)=\"onSaveTopForm($event)\"\n ></bsu-report-new-top-form>\n </div>\n }\n <bsu-ulv-toolbar\n [allowGridColumnSort]=\"allowGridColumnSort\"\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"toolbarButtons\"\n [gridSetting]=\"gridSetting\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [title]=\"title\"\n [access]=\"access\"\n [isMultiSelect]=\"isMultiSelect\"\n [inDialog]=\"inDialog\"\n [hasSelected]=\"hasSelected\"\n [contentDensity]=\"contentDensity\"\n [viewCollection]=\"viewCollection\"\n [reportView]=\"selectedView\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [moDataListCount]=\"moDataList.length\"\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n (sortClick)=\"onSortSettings($event)\"\n (groupbyClick)=\"onGroupbySettings($event)\"\n (columnClick)=\"onColumnSettings($event)\"\n (editModeClick)=\"onEditMode()\"\n (viewClick)=\"onChangeView($event)\"\n (createNewInlineMo)=\"onToolbarCreateNewInlineMo()\"\n ></bsu-ulv-toolbar>\n\n <div\n class=\"report-view\"\n [attr.reportCaption]=\"context.Setting.Extra.Report.Caption\"\n reportViewRenderer\n [toolbarButtons]=\"toolbarButtons\"\n [hideToolbar]=\"hideToolbar\"\n [hasInlineDeleteButton]=\"hasInlineDeleteButton\"\n [hasInlineEditButton]=\"hasInlineEditButton\"\n [contextSetting]=\"contextSetting\"\n [listEditViewId]=\"listEditViewId\"\n [typeViewId]=\"typeViewId\"\n [toolbarButtons]=\"toolbarButtons\"\n [pagingSetting]=\"pagingSetting\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [reportId]=\"reportId\"\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n [hideSearchpanel]=\"hideSearchpanel\"\n [selectedMo]=\"selectedMo\"\n [selectedCount]=\"selectedCount\"\n [hasSelected]=\"hasSelected\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [customFieldInfo]=\"customFieldInfo\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [openOnClick]=\"openOnClick\"\n [contextView]=\"contextView\"\n [containerWidth]=\"containerWidth\"\n [extraRelation]=\"extraRelation\"\n [typeDefId]=\"typeDefId\"\n [cartableTemplates]=\"cartableTemplates\"\n [cartableChildsMo]=\"cartableChildsMo\"\n [view]=\"selectedView\"\n [isCheckList]=\"isCheckList\"\n [allChecked]=\"allChecked\"\n [moDataList]=\"moDataList\"\n [access]=\"access\"\n [groupby]=\"groupby\"\n [contentDensity]=\"contentDensity\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [formSetting]=\"formSetting\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [navigationArrow]=\"navigationArrow\"\n [title]=\"title\"\n [mobileOrTablet]=\"mobileOrTablet\"\n [popin]=\"popin\"\n [secondaryColumns]=\"secondaryColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [inlineEditMode]=\"inlineEditMode && allowInlineEdit\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [columns]=\"columns\"\n [rtl]=\"rtl\"\n [allColumns]=\"allColumns\"\n [hasSummary]=\"hasSummary\"\n [columnsCount]=\"columnsCount\"\n [formLayout]=\"formLayout\"\n [disableResponsive]=\"disableResponsive\"\n (escapeKey)=\"onEscapeKey($event)\"\n (resetWorkflowState)=\"onResetWorkflowState($event)\"\n (hasDetailsInRow)=\"onHasDetailsInRow($event, deviceSize)\"\n (executeToolbarButton)=\"onExecuteToolbarButton($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (ulvCommandClick)=\"onUlvCommand($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (columnResized)=\"onColumnResized($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n (createNewMo)=\"onCreateNewMo()\"\n (updateMo)=\"onUpdateMo($event)\"\n (mandatory)=\"onMandatory($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n ></div>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}.view-row{cursor:pointer}.header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:.5rem;background-color:var(--sapBaseColor)}.header span{font-size:1.7rem;font-weight:300}.btn-margin{margin:0 8px 0 0}.table-header-btn-group{display:flex;justify-content:flex-end;flex-grow:1}.context-command{margin:0 2px}.body-wrapper,.body-wrapper table{width:100%}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.root-grouped{color:green}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.single-select{min-width:2rem;max-width:2rem;width:2rem;text-align:center}.grid-editable-btn-group{display:flex;justify-content:space-evenly;align-items:center}.table-fixed{table-layout:fixed}.table-fixed td{overflow:hidden}::ng-deep span.fd-toolbar__spacer{display:none}\n"] }]
|
|
36
36
|
}], propDecorators: { tableView: [{
|
|
37
37
|
type: ViewChild,
|
|
38
38
|
args: ['renderTable', { static: true }]
|
|
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
43
43
|
type: ViewChild,
|
|
44
44
|
args: ['renderList', { static: true }]
|
|
45
45
|
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktcmVwb3J0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1yZXBvcnQtY29udGFpbmVyL3VpLXJlcG9ydC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktcmVwb3J0LWNvbnRhaW5lci91aS1yZXBvcnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXVCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7OztBQVMzRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsd0JBQWlEO0lBTmpHOztRQVdJLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztLQXFCM0M7SUFuQkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVksQ0FBQyxXQUE2QjtRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDTyxTQUFTO1FBQ2IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQ3ZHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FDL0MsQ0FBQztRQUNGLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDTyxXQUFXLENBQUMsV0FBNkI7UUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDcEMsQ0FBQzs4R0F6QlEsMEJBQTBCO2tHQUExQiwwQkFBMEIsb2FDVnZDLHUvVkErUEE7OzJGRHJQYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0kseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdILFNBQVM7c0JBQXBELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDSyxZQUFZO3NCQUExRCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRixRQUFRO3NCQUFsRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2FwVWlSZXBvcnRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vc2FwLXVpLXJlcG9ydC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpUmVwb3J0Vmlld0Jhc2UsIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1yZXBvcnQtY29udGFpbmVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1yZXBvcnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLXJlcG9ydC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaVJlcG9ydENvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIFNhcFVpUmVwb3J0QmFzZUNvbXBvbmVudDxVaVJlcG9ydFZpZXdCYXNlU2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZCgncmVuZGVyVGFibGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJsZVZpZXc6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCdyZW5kZXJDYXJkTGlzdCcsIHsgc3RhdGljOiB0cnVlIH0pIGNhcmRMaXN0VmlldzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoJ3JlbmRlckxpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBsaXN0VmlldzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIHNlbGVjdGVkVmlldzogVWlSZXBvcnRWaWV3QmFzZTtcclxuICAgIHZpZXdDb2xsZWN0aW9uOiBVaVJlcG9ydFZpZXdCYXNlW10gPSBbXTtcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuX2luaXRWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2VWaWV3KHZpZXdTZXR0aW5nOiBVaVJlcG9ydFZpZXdCYXNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlVmlldyh2aWV3U2V0dGluZyk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9pbml0VmlldygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB2aWV3Q29sbGVjdGlvbiA9IHRoaXMuY29udGV4dC5TZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycy5WaWV3Q29sbGVjdGlvbi5Nb0RhdGFMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgKHZpZXcpID0+ICF2aWV3LlVpQ29tcG9uZW50LlNldHRpbmdzPy5IaWRkZW5cclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRWaWV3ID0gdmlld0NvbGxlY3Rpb24uZmluZCgodmlldykgPT4gdmlldy5VaUNvbXBvbmVudC5TZXR0aW5ncz8uSXNEZWZhdWx0KSA/PyB2aWV3Q29sbGVjdGlvblswXTtcclxuICAgICAgICB0aGlzLnZpZXdDb2xsZWN0aW9uID0gdmlld0NvbGxlY3Rpb247XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlVmlldyhkZWZhdWx0Vmlldyk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9jaGFuZ2VWaWV3KHVpQ29tcG9uZW50OiBVaVJlcG9ydFZpZXdCYXNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZpZXcgPSB1aUNvbXBvbmVudDtcclxuICAgIH1cclxufVxyXG4iLCI8IS0tcmVuZGVyIGNvbnRhaW5lci0tPlxuPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHJlbmRlckNvbnRhaW5lcjtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgJGltcGxpY2l0OiBncmlkRGF0YVNvdXJjZS5kYXRhJCB8IGFzeW5jLFxuICAgICAgICAgICAgYWxsQ2hlY2tlZDogYWxsQ2hlY2tlZCQgfCBhc3luYyxcbiAgICAgICAgICAgIGdyb3VwYnk6IGdyb3VwYnkkIHwgYXN5bmMsXG4gICAgICAgICAgICBpc0NoZWNrTGlzdDogY29udGV4dC5TZXR0aW5nLlZpZXc/LklzQ2hlY2tMaXN0LFxuICAgICAgICAgICAgY29sdW1uczogY29sdW1ucyQgfCBhc3luYyxcbiAgICAgICAgICAgIGNvbHVtbnNDb3VudDogY29sdW1uc0NvdW50JCB8IGFzeW5jLFxuICAgICAgICAgICAgYWxsb3dJbmxpbmVFZGl0OiBhbGxvd0lubGluZUVkaXQkIHwgYXN5bmMsXG4gICAgICAgICAgICBpbmxpbmVFZGl0TW9kZTogaW5saW5lRWRpdE1vZGUkIHwgYXN5bmMsXG4gICAgICAgICAgICBvbmx5SW5saW5lRWRpdDogb25seUlubGluZUVkaXQkIHwgYXN5bmMsXG4gICAgICAgICAgICBzZWNvbmRhcnlDb2x1bW5zOiBzZWNvbmRhcnlDb2x1bW5zJCB8IGFzeW5jLFxuICAgICAgICAgICAgdG9vbGJhckJ1dHRvbnM6ICh0b29sYmFyQnV0dG9ucyQgfCBhc3luYykhISB8IHNlcGVyYXRvckZpeCxcbiAgICAgICAgICAgIHBvcGluOiAobW9iaWxlT3JUYWJsZXQkIHwgYXN5bmMpIHx8IChzZWNvbmRhcnlDb2x1bW5zQ291bnQkIHwgYXN5bmMpID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgICAgY29udGV4dE1lbnVJdGVtczogbWVudUl0ZW1zJCB8IGFzeW5jIHwgY29udGV4dE1lbnU6IGNvbnRleHQuU2V0dGluZy5WaWV3Py5Jc0NoZWNrTGlzdCxcbiAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0czogY29uZGl0aW9uYWxGb3JtYXRzJCB8IGFzeW5jLFxuICAgICAgICAgICAgZGV2aWNlTmFtZTogZGV2aWNlTmFtZSQgfCBhc3luYyxcbiAgICAgICAgICAgIGRldmljZVNpemU6IGRldmljZVNpemUkIHwgYXN5bmMsXG4gICAgICAgICAgICBtb2JpbGVPclRhYmxldDogbW9iaWxlT3JUYWJsZXQkIHwgYXN5bmMsXG4gICAgICAgICAgICBhY2Nlc3M6IGNvbnRleHQuU2V0dGluZy5FeHRyYT8uRGVmYXVsdENvbW1hbmRzQWNjZXNzLFxuICAgICAgICAgICAgdGl0bGU6IHRpdGxlJCB8IGFzeW5jLFxuICAgICAgICAgICAgcnRsOiBydGwkIHwgYXN5bmMsXG4gICAgICAgICAgICBoaWRlVG9vbGJhcjogKGhpZGVUb29sYmFyJCB8IGFzeW5jKSA9PT0gdHJ1ZSB8fCB2aWV3U2V0dGluZy5IaWRlVG9vbGJhcixcbiAgICAgICAgICAgIHNlbGVjdGVkVmlldzogc2VsZWN0ZWRWaWV3LFxuICAgICAgICAgICAgdmlld0NvbGxlY3Rpb246IHZpZXdDb2xsZWN0aW9uLFxuICAgICAgICAgICAgYWxsQ29sdW1uczogYWxsQ29sdW1ucyxcbiAgICAgICAgICAgIGdyaWRTZXR0aW5nOiBncmlkU2V0dGluZyQgfCBhc3luYyxcbiAgICAgICAgICAgIGhhc1N1bW1hcnk6IGNvbnRleHQuU2V0dGluZy5WaWV3Py5IYXNTdW1tYXJ5Um93LFxuICAgICAgICAgICAgY29udGVudERlbnNpdHk6IGNvbnRlbnREZW5zaXR5JCB8IGFzeW5jLFxuICAgICAgICAgICAgZm9ybUxheW91dDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgaGFzU2VsZWN0ZWQ6IGhhc1NlbGVjdGVkJCB8IGFzeW5jLFxuICAgICAgICAgICAgZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnU6IHZpZXdTZXR0aW5nLkRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51LFxuICAgICAgICAgICAgc2hvd0NyZWF0ZUZvcm06IHZpZXdTZXR0aW5nLlNob3dDcmVhdGVGb3JtLFxuICAgICAgICAgICAgaGlkZU9wZW5JY29uOiB2aWV3U2V0dGluZy5IaWRlT3Blbkljb24sXG4gICAgICAgICAgICBvcGVuT25DbGljazogdmlld1NldHRpbmcuT3Blbk9uQ2xpY2ssXG4gICAgICAgICAgICBuYXZpZ2F0aW9uQXJyb3c6IG5hdmlnYXRpb25BcnJvdyQgfCBhc3luYyxcbiAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBjb250YWluZXJXaWR0aCQgfCBhc3luYyxcbiAgICAgICAgICAgIHR5cGVEZWZJZDogY29udGV4dC5TZXR0aW5nLkV4dHJhLlJlcG9ydC5UeXBlRGVmSWQsXG4gICAgICAgICAgICByZXBvcnRJZDogY29udGV4dC5TZXR0aW5nLkV4dHJhLlJlcG9ydC5JZCxcbiAgICAgICAgICAgIGxpc3RFZGl0Vmlld0lkOiBjb250ZXh0LlNldHRpbmcuRXh0cmEuUmVwb3J0Lkxpc3RFZGl0Vmlld0lkLFxuICAgICAgICAgICAgdHlwZVZpZXdJZDogY29udGV4dC5TZXR0aW5nLkV4dHJhLlJlcG9ydC5UeXBlVmlld0lkLFxuICAgICAgICAgICAgZm9ybVNldHRpbmc6IGNvbnRleHQuU2V0dGluZy5Gb3JtVGVtcGxhdGUsXG4gICAgICAgICAgICBleHRyYVJlbGF0aW9uOiBjb250ZXh0LlNldHRpbmcuRXh0cmE/LlJlbGF0aW9uLFxuICAgICAgICAgICAgY29udGV4dFZpZXc6IGNvbnRleHQuU2V0dGluZy5WaWV3LFxuICAgICAgICAgICAgY2FydGFibGVUZW1wbGF0ZXM6IGNhcnRhYmxlVGVtcGxhdGVzJCB8IGFzeW5jLFxuICAgICAgICAgICAgY2FydGFibGVDaGlsZHNNbzogY2FydGFibGVDaGlsZHNNbyQgfCBhc3luYyxcbiAgICAgICAgICAgIGRpc2FibGVSZXNwb25zaXZlOiB2aWV3U2V0dGluZy5EaXNhYmxlUmVzcG9uc2l2ZSxcbiAgICAgICAgICAgIGluRGlhbG9nOiBpbkRpYWxvZyQgfCBhc3luYyxcbiAgICAgICAgICAgIGlzTXVsdGlTZWxlY3Q6IGlzTXVsdGlTZWxlY3QkIHwgYXN5bmMsXG4gICAgICAgICAgICBjb250ZXh0U2V0dGluZzogY29udGV4dC5TZXR0aW5nLFxuICAgICAgICAgICAgY3VzdG9tRmllbGRJbmZvOiBjb250ZXh0LlNldHRpbmcuQ3VzdG9tRmllbGRJbmZvLFxuICAgICAgICAgICAgc2VsZWN0ZWRNbzogc2VsZWN0ZWRNbyQgfCBhc3luYyxcbiAgICAgICAgICAgIGhpZGVTZWFyY2hwYW5lbDogaGlkZVNlYXJjaHBhbmVsJCB8IGFzeW5jLFxuICAgICAgICAgICAgc2VsZWN0ZWRDb3VudDogc2VsZWN0ZWRDb3VudCQgfCBhc3luYyxcbiAgICAgICAgICAgIGdyaWRGcmVlQ29sdW1uU2l6aW5nOiBncmlkRnJlZUNvbHVtblNpemluZyQgfCBhc3luYyxcbiAgICAgICAgICAgIFVsdk1haW5DdHJscjogY29udGV4dC5BZGFwdGVyPy5VbHZNYWluQ3RybHIsXG4gICAgICAgICAgICBhbGxvd0dyaWRDb2x1bW5Tb3J0OiBjb250ZXh0LlZpZXdTZXR0aW5nLkFsbG93R3JpZENvbHVtblNvcnQsXG4gICAgICAgICAgICBoYXNJbmxpbmVFZGl0QnV0dG9uOiB2aWV3U2V0dGluZy5IYXNJbmxpbmVFZGl0QnV0dG9uLFxuICAgICAgICAgICAgaGFzSW5saW5lRGVsZXRlQnV0dG9uOiB2aWV3U2V0dGluZy5IYXNJbmxpbmVEZWxldGVCdXR0b24sXG4gICAgICAgICAgICBwYWdpbmdTZXR0aW5nOiBwYWdpbmdTZXR0aW5nJCB8IGFzeW5jXG4gICAgICAgIH1cbiAgICBcIlxuPjwvbmctY29udGFpbmVyPlxuPCEtLXJlbmRlciBjb250YWluZXIgLS0+XG48bmctdGVtcGxhdGVcbiAgICAjcmVuZGVyQ29udGFpbmVyXG4gICAgbGV0LW1vRGF0YUxpc3RcbiAgICBsZXQtYWxsQ2hlY2tlZD1cImFsbENoZWNrZWRcIlxuICAgIGxldC1pc0NoZWNrTGlzdD1cImlzQ2hlY2tMaXN0XCJcbiAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxuICAgIGxldC1jb2x1bW5zQ291bnQ9XCJjb2x1bW5zQ291bnRcIlxuICAgIGxldC1ncm91cGJ5PVwiZ3JvdXBieVwiXG4gICAgbGV0LXNlY29uZGFyeUNvbHVtbnM9XCJzZWNvbmRhcnlDb2x1bW5zXCJcbiAgICBsZXQtY29udGV4dE1lbnVJdGVtcz1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgIGxldC1jb25kaXRpb25hbEZvcm1hdHM9XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgIGxldC1kZXZpY2VOYW1lPVwiZGV2aWNlTmFtZVwiXG4gICAgbGV0LWRldmljZVNpemU9XCJkZXZpY2VTaXplXCJcbiAgICBsZXQtYWNjZXNzPVwiYWNjZXNzXCJcbiAgICBsZXQtdG9vbGJhckJ1dHRvbnM9XCJ0b29sYmFyQnV0dG9uc1wiXG4gICAgbGV0LXBvcGluPVwicG9waW5cIlxuICAgIGxldC1tb2JpbGVPclRhYmxldD1cIm1vYmlsZU9yVGFibGV0XCJcbiAgICBsZXQtdGl0bGU9XCJ0aXRsZVwiXG4gICAgbGV0LWlubGluZUVkaXRNb2RlPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgIGxldC1vbmx5SW5saW5lRWRpdD1cIm9ubHlJbmxpbmVFZGl0XCJcbiAgICBsZXQtYWxsb3dJbmxpbmVFZGl0PVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICBsZXQtcnRsPVwicnRsXCJcbiAgICBsZXQtYWxsQ29sdW1ucz1cImFsbENvbHVtbnNcIlxuICAgIGxldC1zZWxlY3RlZFZpZXc9XCJzZWxlY3RlZFZpZXdcIlxuICAgIGxldC12aWV3Q29sbGVjdGlvbj1cInZpZXdDb2xsZWN0aW9uXCJcbiAgICBsZXQtaGlkZVRvb2xiYXI9XCJoaWRlVG9vbGJhclwiXG4gICAgbGV0LWdyaWRTZXR0aW5nPVwiZ3JpZFNldHRpbmdcIlxuICAgIGxldC1jb250ZW50RGVuc2l0eT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICBsZXQtZm9ybUxheW91dD1cImZvcm1MYXlvdXRcIlxuICAgIGxldC1oYXNTZWxlY3RlZD1cImhhc1NlbGVjdGVkXCJcbiAgICBsZXQtZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnU9XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgbGV0LW5hdmlnYXRpb25BcnJvdz1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgbGV0LWNvbnRhaW5lcldpZHRoPVwiY29udGFpbmVyV2lkdGhcIlxuICAgIGxldC1oYXNTdW1tYXJ5PVwiaGFzU3VtbWFyeVwiXG4gICAgbGV0LXR5cGVEZWZJZD1cInR5cGVEZWZJZFwiXG4gICAgbGV0LWZvcm1TZXR0aW5nPVwiZm9ybVNldHRpbmdcIlxuICAgIGxldC1leHRyYVJlbGF0aW9uPVwiZXh0cmFSZWxhdGlvblwiXG4gICAgbGV0LWNvbnRleHRWaWV3PVwiY29udGV4dFZpZXdcIlxuICAgIGxldC1zaG93Q3JlYXRlRm9ybT1cInNob3dDcmVhdGVGb3JtXCJcbiAgICBsZXQtaGlkZU9wZW5JY29uPVwiaGlkZU9wZW5JY29uXCJcbiAgICBsZXQtY2FydGFibGVUZW1wbGF0ZXM9XCJjYXJ0YWJsZVRlbXBsYXRlc1wiXG4gICAgbGV0LWNhcnRhYmxlQ2hpbGRzTW89XCJjYXJ0YWJsZUNoaWxkc01vXCJcbiAgICBsZXQtb3Blbk9uQ2xpY2s9XCJvcGVuT25DbGlja1wiXG4gICAgbGV0LWRpc2FibGVSZXNwb25zaXZlPVwiZGlzYWJsZVJlc3BvbnNpdmVcIlxuICAgIGxldC1pbkRpYWxvZz1cImluRGlhbG9nXCJcbiAgICBsZXQtaXNNdWx0aVNlbGVjdD1cImlzTXVsdGlTZWxlY3RcIlxuICAgIGxldC1jdXN0b21GaWVsZEluZm89XCJjdXN0b21GaWVsZEluZm9cIlxuICAgIGxldC1zZWxlY3RlZE1vPVwic2VsZWN0ZWRNb1wiXG4gICAgbGV0LXNlbGVjdGVkQ291bnQ9XCJzZWxlY3RlZENvdW50XCJcbiAgICBsZXQtaGlkZVNlYXJjaHBhbmVsPVwiaGlkZVNlYXJjaHBhbmVsXCJcbiAgICBsZXQtZ3JpZEZyZWVDb2x1bW5TaXppbmc9XCJncmlkRnJlZUNvbHVtblNpemluZ1wiXG4gICAgbGV0LXJlcG9ydElkPVwicmVwb3J0SWRcIlxuICAgIGxldC1saXN0RWRpdFZpZXdJZD1cImxpc3RFZGl0Vmlld0lkXCJcbiAgICBsZXQtdHlwZVZpZXdJZD1cInR5cGVWaWV3SWRcIlxuICAgIGxldC1VbHZNYWluQ3RybHI9XCJVbHZNYWluQ3RybHJcIlxuICAgIGxldC1hbGxvd0dyaWRDb2x1bW5Tb3J0PVwiYWxsb3dHcmlkQ29sdW1uU29ydFwiXG4gICAgbGV0LXBhZ2luZ1NldHRpbmc9XCJwYWdpbmdTZXR0aW5nXCJcbiAgICBsZXQtaGFzSW5saW5lRGVsZXRlQnV0dG9uPVwiaGFzSW5saW5lRGVsZXRlQnV0dG9uXCJcbiAgICBsZXQtaGFzSW5saW5lRWRpdEJ1dHRvbj1cImhhc0lubGluZUVkaXRCdXR0b25cIlxuICAgIGxldC1jb250ZXh0U2V0dGluZz1cImNvbnRleHRTZXR0aW5nXCJcbj5cbiAgICBAaWYgKHNob3dDcmVhdGVGb3JtKSB7XG4gICAgPGRpdj5cbiAgICAgICAgPGJzdS1yZXBvcnQtbmV3LXRvcC1mb3JtXG4gICAgICAgICAgICBbZXh0cmFSZWxhdGlvbl09XCJleHRyYVJlbGF0aW9uXCJcbiAgICAgICAgICAgIFttb0RhdGFMaXN0Q291bnRdPVwibW9EYXRhTGlzdC5sZW5ndGhcIlxuICAgICAgICAgICAgW3NlbGVjdGVkTW9dPVwic2VsZWN0ZWRNb1wiXG4gICAgICAgICAgICBbZm9ybVNldHRpbmddPVwiZm9ybVNldHRpbmdcIlxuICAgICAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICAgICAgW2lubGluZUVkaXRNb2RlXT1cInRydWVcIlxuICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIChhZGQpPVwib25OZXdUb3BGb3JtQWRkKCRldmVudClcIlxuICAgICAgICAgICAgKHNhdmUpPVwib25TYXZlVG9wRm9ybSgkZXZlbnQpXCJcbiAgICAgICAgPjwvYnN1LXJlcG9ydC1uZXctdG9wLWZvcm0+XG4gICAgPC9kaXY+XG4gICAgfVxuICAgIDxic3UtdWx2LXRvb2xiYXJcbiAgICAgICAgW2FsbG93R3JpZENvbHVtblNvcnRdPVwiYWxsb3dHcmlkQ29sdW1uU29ydFwiXG4gICAgICAgIFtoaWRlVG9vbGJhcl09XCJoaWRlVG9vbGJhclwiXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW3Rvb2xiYXJCdXR0b25zXT1cInRvb2xiYXJCdXR0b25zXCJcbiAgICAgICAgW2dyaWRTZXR0aW5nXT1cImdyaWRTZXR0aW5nXCJcbiAgICAgICAgW1Vsdk1haW5DdHJscl09XCJVbHZNYWluQ3RybHJcIlxuICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtpc011bHRpU2VsZWN0XT1cImlzTXVsdGlTZWxlY3RcIlxuICAgICAgICBbaW5EaWFsb2ddPVwiaW5EaWFsb2dcIlxuICAgICAgICBbaGFzU2VsZWN0ZWRdPVwiaGFzU2VsZWN0ZWRcIlxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICBbdmlld0NvbGxlY3Rpb25dPVwidmlld0NvbGxlY3Rpb25cIlxuICAgICAgICBbcmVwb3J0Vmlld109XCJzZWxlY3RlZFZpZXdcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFttb0RhdGFMaXN0Q291bnRdPVwibW9EYXRhTGlzdC5sZW5ndGhcIlxuICAgICAgICBbZ3JpZEZyZWVDb2x1bW5TaXppbmddPVwiZ3JpZEZyZWVDb2x1bW5TaXppbmdcIlxuICAgICAgICAoc29ydENsaWNrKT1cIm9uU29ydFNldHRpbmdzKCRldmVudClcIlxuICAgICAgICAoZ3JvdXBieUNsaWNrKT1cIm9uR3JvdXBieVNldHRpbmdzKCRldmVudClcIlxuICAgICAgICAoY29sdW1uQ2xpY2spPVwib25Db2x1bW5TZXR0aW5ncygkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRNb2RlQ2xpY2spPVwib25FZGl0TW9kZSgpXCJcbiAgICAgICAgKHZpZXdDbGljayk9XCJvbkNoYW5nZVZpZXcoJGV2ZW50KVwiXG4gICAgICAgIChjcmVhdGVOZXdJbmxpbmVNbyk9XCJvblRvb2xiYXJDcmVhdGVOZXdJbmxpbmVNbygpXCJcbiAgICA+PC9ic3UtdWx2LXRvb2xiYXI+XG5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicmVwb3J0LXZpZXdcIlxuICAgICAgICBbYXR0ci5yZXBvcnRDYXB0aW9uXT1cImNvbnRleHQuU2V0dGluZy5FeHRyYS5SZXBvcnQuQ2FwdGlvblwiXG4gICAgICAgIHJlcG9ydFZpZXdSZW5kZXJlclxuICAgICAgICBbdG9vbGJhckJ1dHRvbnNdPVwidG9vbGJhckJ1dHRvbnNcIlxuICAgICAgICBbaGlkZVRvb2xiYXJdPVwiaGlkZVRvb2xiYXJcIlxuICAgICAgICBbaGFzSW5saW5lRGVsZXRlQnV0dG9uXT1cImhhc0lubGluZURlbGV0ZUJ1dHRvblwiXG4gICAgICAgIFtoYXNJbmxpbmVFZGl0QnV0dG9uXT1cImhhc0lubGluZUVkaXRCdXR0b25cIlxuICAgICAgICBbY29udGV4dFNldHRpbmddPVwiY29udGV4dFNldHRpbmdcIlxuICAgICAgICBbbGlzdEVkaXRWaWV3SWRdPVwibGlzdEVkaXRWaWV3SWRcIlxuICAgICAgICBbdHlwZVZpZXdJZF09XCJ0eXBlVmlld0lkXCJcbiAgICAgICAgW3Rvb2xiYXJCdXR0b25zXT1cInRvb2xiYXJCdXR0b25zXCJcbiAgICAgICAgW3BhZ2luZ1NldHRpbmddPVwicGFnaW5nU2V0dGluZ1wiXG4gICAgICAgIFtVbHZNYWluQ3RybHJdPVwiVWx2TWFpbkN0cmxyXCJcbiAgICAgICAgW3JlcG9ydElkXT1cInJlcG9ydElkXCJcbiAgICAgICAgW2dyaWRGcmVlQ29sdW1uU2l6aW5nXT1cImdyaWRGcmVlQ29sdW1uU2l6aW5nXCJcbiAgICAgICAgW2hpZGVTZWFyY2hwYW5lbF09XCJoaWRlU2VhcmNocGFuZWxcIlxuICAgICAgICBbc2VsZWN0ZWRNb109XCJzZWxlY3RlZE1vXCJcbiAgICAgICAgW3NlbGVjdGVkQ291bnRdPVwic2VsZWN0ZWRDb3VudFwiXG4gICAgICAgIFtoYXNTZWxlY3RlZF09XCJoYXNTZWxlY3RlZFwiXG4gICAgICAgIFtoaWRlT3Blbkljb25dPVwiaGlkZU9wZW5JY29uXCJcbiAgICAgICAgW2N1c3RvbUZpZWxkSW5mb109XCJjdXN0b21GaWVsZEluZm9cIlxuICAgICAgICBbaW5EaWFsb2ddPVwiaW5EaWFsb2dcIlxuICAgICAgICBbaXNNdWx0aVNlbGVjdF09XCJpc011bHRpU2VsZWN0XCJcbiAgICAgICAgW29wZW5PbkNsaWNrXT1cIm9wZW5PbkNsaWNrXCJcbiAgICAgICAgW2NvbnRleHRWaWV3XT1cImNvbnRleHRWaWV3XCJcbiAgICAgICAgW2NvbnRhaW5lcldpZHRoXT1cImNvbnRhaW5lcldpZHRoXCJcbiAgICAgICAgW2V4dHJhUmVsYXRpb25dPVwiZXh0cmFSZWxhdGlvblwiXG4gICAgICAgIFt0eXBlRGVmSWRdPVwidHlwZURlZklkXCJcbiAgICAgICAgW2NhcnRhYmxlVGVtcGxhdGVzXT1cImNhcnRhYmxlVGVtcGxhdGVzXCJcbiAgICAgICAgW2NhcnRhYmxlQ2hpbGRzTW9dPVwiY2FydGFibGVDaGlsZHNNb1wiXG4gICAgICAgIFt2aWV3XT1cInNlbGVjdGVkVmlld1wiXG4gICAgICAgIFtpc0NoZWNrTGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgIFthbGxDaGVja2VkXT1cImFsbENoZWNrZWRcIlxuICAgICAgICBbbW9EYXRhTGlzdF09XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxuICAgICAgICBbZ3JvdXBieV09XCJncm91cGJ5XCJcbiAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICBbZm9ybVNldHRpbmddPVwiZm9ybVNldHRpbmdcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtuYXZpZ2F0aW9uQXJyb3ddPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgICAgW21vYmlsZU9yVGFibGV0XT1cIm1vYmlsZU9yVGFibGV0XCJcbiAgICAgICAgW3BvcGluXT1cInBvcGluXCJcbiAgICAgICAgW3NlY29uZGFyeUNvbHVtbnNdPVwic2Vjb25kYXJ5Q29sdW1uc1wiXG4gICAgICAgIFtjb250ZXh0TWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW2FsbG93SW5saW5lRWRpdF09XCJhbGxvd0lubGluZUVkaXRcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgW2hhc1N1bW1hcnldPVwiaGFzU3VtbWFyeVwiXG4gICAgICAgIFtjb2x1bW5zQ291bnRdPVwiY29sdW1uc0NvdW50XCJcbiAgICAgICAgW2Zvcm1MYXlvdXRdPVwiZm9ybUxheW91dFwiXG4gICAgICAgIFtkaXNhYmxlUmVzcG9uc2l2ZV09XCJkaXNhYmxlUmVzcG9uc2l2ZVwiXG4gICAgICAgIChlc2NhcGVLZXkpPVwib25Fc2NhcGVLZXkoJGV2ZW50KVwiXG4gICAgICAgIChyZXNldFdvcmtmbG93U3RhdGUpPVwib25SZXNldFdvcmtmbG93U3RhdGUoJGV2ZW50KVwiXG4gICAgICAgIChoYXNEZXRhaWxzSW5Sb3cpPVwib25IYXNEZXRhaWxzSW5Sb3coJGV2ZW50LCBkZXZpY2VTaXplKVwiXG4gICAgICAgIChleGVjdXRlVG9vbGJhckJ1dHRvbik9XCJvbkV4ZWN1dGVUb29sYmFyQnV0dG9uKCRldmVudClcIlxuICAgICAgICAoc2VsZWN0TmV4dElubGluZVJlY29yZCk9XCJvblNlbGVjdE5leHRJbmxpbmVSZWNvcmQoJGV2ZW50KVwiXG4gICAgICAgIChzZWxlY3ROZXh0SW5saW5lUmVjb3JkKT1cIm9uU2VsZWN0TmV4dElubGluZVJlY29yZCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxDYW5jZWwpPVwib25FZGl0Rm9ybVBhbmVsQ2FuY2VsKCRldmVudClcIlxuICAgICAgICAoZWRpdEZvcm1QYW5lbFNhdmUpPVwib25FZGl0Rm9ybVBhbmVsU2F2ZSgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZSk9XCJvbkVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKHVsdkNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoJGV2ZW50KVwiXG4gICAgICAgIChzb3J0QXNjZW5kaW5nKT1cIm9uU29ydEFzY2VuZGluZygkZXZlbnQpXCJcbiAgICAgICAgKHNvcnREZXNjZW5kaW5nKT1cIm9uU29ydERlc2NlbmRpbmcoJGV2ZW50KVwiXG4gICAgICAgIChmaWx0ZXIpPVwib25GaWx0ZXIoJGV2ZW50KVwiXG4gICAgICAgIChkZXNlbGVjdEFsbCk9XCJvbkRlc2VsZWN0QWxsKClcIlxuICAgICAgICAocm93Q2hlY2spPVwib25Sb3dDaGVjaygkZXZlbnQpXCJcbiAgICAgICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChhbGxDaGVja2JveCk9XCJvbkFsbENoZWNrYm94KCRldmVudClcIlxuICAgICAgICAoZXhwYW5kQ2xpY2spPVwib25FeHBhbmRDbGljaygkZXZlbnQpXCJcbiAgICAgICAgKGNvbHVtblJlc2l6ZWQpPVwib25Db2x1bW5SZXNpemVkKCRldmVudClcIlxuICAgICAgICAoY2FydGFibGVGb3JtQ2xvc2VkKT1cIm9uQ2FydGFibGVGb3JtQ2xvc2VkKCRldmVudClcIlxuICAgICAgICAoY3JlYXRlTmV3TW8pPVwib25DcmVhdGVOZXdNbygpXCJcbiAgICAgICAgKHVwZGF0ZU1vKT1cIm9uVXBkYXRlTW8oJGV2ZW50KVwiXG4gICAgICAgIChtYW5kYXRvcnkpPVwib25NYW5kYXRvcnkoJGV2ZW50KVwiXG4gICAgICAgICh3b3JrZmxvd1NoYXJlQnV0dG9ucyk9XCJvbldvcmtmbG93U2hhcmVCdXR0b25zKCRldmVudClcIlxuICAgID48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktcmVwb3J0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1yZXBvcnQtY29udGFpbmVyL3VpLXJlcG9ydC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktcmVwb3J0LWNvbnRhaW5lci91aS1yZXBvcnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXVCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7OztBQVMzRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsd0JBQWlEO0lBTmpHOztRQVdJLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztLQXFCM0M7SUFuQkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVksQ0FBQyxXQUE2QjtRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDTyxTQUFTO1FBQ2IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQ3ZHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FDL0MsQ0FBQztRQUNGLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDTyxXQUFXLENBQUMsV0FBNkI7UUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDcEMsQ0FBQzs4R0F6QlEsMEJBQTBCO2tHQUExQiwwQkFBMEIsb2FDVnZDLHcvVkErUEE7OzJGRHJQYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0kseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdILFNBQVM7c0JBQXBELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDSyxZQUFZO3NCQUExRCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRixRQUFRO3NCQUFsRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2FwVWlSZXBvcnRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vc2FwLXVpLXJlcG9ydC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpUmVwb3J0Vmlld0Jhc2UsIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1yZXBvcnQtY29udGFpbmVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1yZXBvcnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLXJlcG9ydC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaVJlcG9ydENvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIFNhcFVpUmVwb3J0QmFzZUNvbXBvbmVudDxVaVJlcG9ydFZpZXdCYXNlU2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZCgncmVuZGVyVGFibGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJsZVZpZXc6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCdyZW5kZXJDYXJkTGlzdCcsIHsgc3RhdGljOiB0cnVlIH0pIGNhcmRMaXN0VmlldzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoJ3JlbmRlckxpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBsaXN0VmlldzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIHNlbGVjdGVkVmlldzogVWlSZXBvcnRWaWV3QmFzZTtcclxuICAgIHZpZXdDb2xsZWN0aW9uOiBVaVJlcG9ydFZpZXdCYXNlW10gPSBbXTtcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuX2luaXRWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2VWaWV3KHZpZXdTZXR0aW5nOiBVaVJlcG9ydFZpZXdCYXNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlVmlldyh2aWV3U2V0dGluZyk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9pbml0VmlldygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB2aWV3Q29sbGVjdGlvbiA9IHRoaXMuY29udGV4dC5TZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycy5WaWV3Q29sbGVjdGlvbi5Nb0RhdGFMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgKHZpZXcpID0+ICF2aWV3LlVpQ29tcG9uZW50LlNldHRpbmdzPy5IaWRkZW5cclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRWaWV3ID0gdmlld0NvbGxlY3Rpb24uZmluZCgodmlldykgPT4gdmlldy5VaUNvbXBvbmVudC5TZXR0aW5ncz8uSXNEZWZhdWx0KSA/PyB2aWV3Q29sbGVjdGlvblswXTtcclxuICAgICAgICB0aGlzLnZpZXdDb2xsZWN0aW9uID0gdmlld0NvbGxlY3Rpb247XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlVmlldyhkZWZhdWx0Vmlldyk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9jaGFuZ2VWaWV3KHVpQ29tcG9uZW50OiBVaVJlcG9ydFZpZXdCYXNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZpZXcgPSB1aUNvbXBvbmVudDtcclxuICAgIH1cclxufVxyXG4iLCI8IS0tcmVuZGVyIGNvbnRhaW5lci0tPlxuPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHJlbmRlckNvbnRhaW5lcjtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgJGltcGxpY2l0OiBncmlkRGF0YVNvdXJjZS5kYXRhJCB8IGFzeW5jLFxuICAgICAgICAgICAgYWxsQ2hlY2tlZDogYWxsQ2hlY2tlZCQgfCBhc3luYyxcbiAgICAgICAgICAgIGdyb3VwYnk6IGdyb3VwYnkkIHwgYXN5bmMsXG4gICAgICAgICAgICBpc0NoZWNrTGlzdDogY29udGV4dC5TZXR0aW5nLlZpZXc/LklzQ2hlY2tMaXN0LFxuICAgICAgICAgICAgY29sdW1uczogY29sdW1ucyQgfCBhc3luYyxcbiAgICAgICAgICAgIGNvbHVtbnNDb3VudDogY29sdW1uc0NvdW50JCB8IGFzeW5jLFxuICAgICAgICAgICAgYWxsb3dJbmxpbmVFZGl0OiBhbGxvd0lubGluZUVkaXQkIHwgYXN5bmMsXG4gICAgICAgICAgICBpbmxpbmVFZGl0TW9kZTogaW5saW5lRWRpdE1vZGUkIHwgYXN5bmMsXG4gICAgICAgICAgICBvbmx5SW5saW5lRWRpdDogb25seUlubGluZUVkaXQkIHwgYXN5bmMsXG4gICAgICAgICAgICBzZWNvbmRhcnlDb2x1bW5zOiBzZWNvbmRhcnlDb2x1bW5zJCB8IGFzeW5jLFxuICAgICAgICAgICAgdG9vbGJhckJ1dHRvbnM6ICh0b29sYmFyQnV0dG9ucyQgfCBhc3luYykhISB8IHNlcGVyYXRvckZpeCxcbiAgICAgICAgICAgIHBvcGluOiAobW9iaWxlT3JUYWJsZXQkIHwgYXN5bmMpIHx8IChzZWNvbmRhcnlDb2x1bW5zQ291bnQkIHwgYXN5bmMpID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgICAgY29udGV4dE1lbnVJdGVtczogbWVudUl0ZW1zJCB8IGFzeW5jIHwgY29udGV4dE1lbnU6IGNvbnRleHQuU2V0dGluZy5WaWV3Py5Jc0NoZWNrTGlzdCxcbiAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0czogY29uZGl0aW9uYWxGb3JtYXRzJCB8IGFzeW5jLFxuICAgICAgICAgICAgZGV2aWNlTmFtZTogZGV2aWNlTmFtZSQgfCBhc3luYyxcbiAgICAgICAgICAgIGRldmljZVNpemU6IGRldmljZVNpemUkIHwgYXN5bmMsXG4gICAgICAgICAgICBtb2JpbGVPclRhYmxldDogbW9iaWxlT3JUYWJsZXQkIHwgYXN5bmMsXG4gICAgICAgICAgICBhY2Nlc3M6IGNvbnRleHQuU2V0dGluZy5FeHRyYT8uRGVmYXVsdENvbW1hbmRzQWNjZXNzLFxuICAgICAgICAgICAgdGl0bGU6IHRpdGxlJCB8IGFzeW5jLFxuICAgICAgICAgICAgcnRsOiBydGwkIHwgYXN5bmMsXG4gICAgICAgICAgICBoaWRlVG9vbGJhcjogKGhpZGVUb29sYmFyJCB8IGFzeW5jKSA9PT0gdHJ1ZSB8fCB2aWV3U2V0dGluZy5IaWRlVG9vbGJhcixcbiAgICAgICAgICAgIHNlbGVjdGVkVmlldzogc2VsZWN0ZWRWaWV3LFxuICAgICAgICAgICAgdmlld0NvbGxlY3Rpb246IHZpZXdDb2xsZWN0aW9uLFxuICAgICAgICAgICAgYWxsQ29sdW1uczogYWxsQ29sdW1ucyxcbiAgICAgICAgICAgIGdyaWRTZXR0aW5nOiBncmlkU2V0dGluZyQgfCBhc3luYyxcbiAgICAgICAgICAgIGhhc1N1bW1hcnk6IGNvbnRleHQuU2V0dGluZy5WaWV3Py5IYXNTdW1tYXJ5Um93LFxuICAgICAgICAgICAgY29udGVudERlbnNpdHk6IGNvbnRlbnREZW5zaXR5JCB8IGFzeW5jLFxuICAgICAgICAgICAgZm9ybUxheW91dDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgaGFzU2VsZWN0ZWQ6IGhhc1NlbGVjdGVkJCB8IGFzeW5jLFxuICAgICAgICAgICAgZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnU6IHZpZXdTZXR0aW5nLkRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51LFxuICAgICAgICAgICAgc2hvd0NyZWF0ZUZvcm06IHZpZXdTZXR0aW5nLlNob3dDcmVhdGVGb3JtLFxuICAgICAgICAgICAgaGlkZU9wZW5JY29uOiB2aWV3U2V0dGluZy5IaWRlT3Blbkljb24sXG4gICAgICAgICAgICBvcGVuT25DbGljazogdmlld1NldHRpbmcuT3Blbk9uQ2xpY2ssXG4gICAgICAgICAgICBuYXZpZ2F0aW9uQXJyb3c6IG5hdmlnYXRpb25BcnJvdyQgfCBhc3luYyxcbiAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBjb250YWluZXJXaWR0aCQgfCBhc3luYyxcbiAgICAgICAgICAgIHR5cGVEZWZJZDogY29udGV4dC5TZXR0aW5nLkV4dHJhLlJlcG9ydC5UeXBlRGVmSWQsXG4gICAgICAgICAgICByZXBvcnRJZDogY29udGV4dC5TZXR0aW5nLkV4dHJhLlJlcG9ydC5JZCxcbiAgICAgICAgICAgIGxpc3RFZGl0Vmlld0lkOiBjb250ZXh0LlNldHRpbmcuRXh0cmEuUmVwb3J0Lkxpc3RFZGl0Vmlld0lkLFxuICAgICAgICAgICAgdHlwZVZpZXdJZDogY29udGV4dC5TZXR0aW5nLkV4dHJhLlJlcG9ydC5UeXBlVmlld0lkLFxuICAgICAgICAgICAgZm9ybVNldHRpbmc6IGNvbnRleHQuU2V0dGluZy5Gb3JtVGVtcGxhdGUsXG4gICAgICAgICAgICBleHRyYVJlbGF0aW9uOiBjb250ZXh0LlNldHRpbmcuRXh0cmE/LlJlbGF0aW9uLFxuICAgICAgICAgICAgY29udGV4dFZpZXc6IGNvbnRleHQuU2V0dGluZy5WaWV3LFxuICAgICAgICAgICAgY2FydGFibGVUZW1wbGF0ZXM6IGNhcnRhYmxlVGVtcGxhdGVzJCB8IGFzeW5jLFxuICAgICAgICAgICAgY2FydGFibGVDaGlsZHNNbzogY2FydGFibGVDaGlsZHNNbyQgfCBhc3luYyxcbiAgICAgICAgICAgIGRpc2FibGVSZXNwb25zaXZlOiB2aWV3U2V0dGluZy5EaXNhYmxlUmVzcG9uc2l2ZSxcbiAgICAgICAgICAgIGluRGlhbG9nOiBpbkRpYWxvZyQgfCBhc3luYyxcbiAgICAgICAgICAgIGlzTXVsdGlTZWxlY3Q6IGlzTXVsdGlTZWxlY3QkIHwgYXN5bmMsXG4gICAgICAgICAgICBjb250ZXh0U2V0dGluZzogY29udGV4dC5TZXR0aW5nLFxuICAgICAgICAgICAgY3VzdG9tRmllbGRJbmZvOiBjb250ZXh0LlNldHRpbmcuQ3VzdG9tRmllbGRJbmZvLFxuICAgICAgICAgICAgc2VsZWN0ZWRNbzogc2VsZWN0ZWRNbyQgfCBhc3luYyxcbiAgICAgICAgICAgIGhpZGVTZWFyY2hwYW5lbDogaGlkZVNlYXJjaHBhbmVsJCB8IGFzeW5jLFxuICAgICAgICAgICAgc2VsZWN0ZWRDb3VudDogc2VsZWN0ZWRDb3VudCQgfCBhc3luYyxcbiAgICAgICAgICAgIGdyaWRGcmVlQ29sdW1uU2l6aW5nOiBncmlkRnJlZUNvbHVtblNpemluZyQgfCBhc3luYyxcbiAgICAgICAgICAgIFVsdk1haW5DdHJscjogY29udGV4dC5BZGFwdGVyPy5VbHZNYWluQ3RybHIsXG4gICAgICAgICAgICBhbGxvd0dyaWRDb2x1bW5Tb3J0OiBjb250ZXh0LlZpZXdTZXR0aW5nPy5BbGxvd0dyaWRDb2x1bW5Tb3J0LFxuICAgICAgICAgICAgaGFzSW5saW5lRWRpdEJ1dHRvbjogdmlld1NldHRpbmcuSGFzSW5saW5lRWRpdEJ1dHRvbixcbiAgICAgICAgICAgIGhhc0lubGluZURlbGV0ZUJ1dHRvbjogdmlld1NldHRpbmcuSGFzSW5saW5lRGVsZXRlQnV0dG9uLFxuICAgICAgICAgICAgcGFnaW5nU2V0dGluZzogcGFnaW5nU2V0dGluZyQgfCBhc3luY1xuICAgICAgICB9XG4gICAgXCJcbj48L25nLWNvbnRhaW5lcj5cbjwhLS1yZW5kZXIgY29udGFpbmVyIC0tPlxuPG5nLXRlbXBsYXRlXG4gICAgI3JlbmRlckNvbnRhaW5lclxuICAgIGxldC1tb0RhdGFMaXN0XG4gICAgbGV0LWFsbENoZWNrZWQ9XCJhbGxDaGVja2VkXCJcbiAgICBsZXQtaXNDaGVja0xpc3Q9XCJpc0NoZWNrTGlzdFwiXG4gICAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcbiAgICBsZXQtY29sdW1uc0NvdW50PVwiY29sdW1uc0NvdW50XCJcbiAgICBsZXQtZ3JvdXBieT1cImdyb3VwYnlcIlxuICAgIGxldC1zZWNvbmRhcnlDb2x1bW5zPVwic2Vjb25kYXJ5Q29sdW1uc1wiXG4gICAgbGV0LWNvbnRleHRNZW51SXRlbXM9XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICBsZXQtY29uZGl0aW9uYWxGb3JtYXRzPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBsZXQtZGV2aWNlTmFtZT1cImRldmljZU5hbWVcIlxuICAgIGxldC1kZXZpY2VTaXplPVwiZGV2aWNlU2l6ZVwiXG4gICAgbGV0LWFjY2Vzcz1cImFjY2Vzc1wiXG4gICAgbGV0LXRvb2xiYXJCdXR0b25zPVwidG9vbGJhckJ1dHRvbnNcIlxuICAgIGxldC1wb3Bpbj1cInBvcGluXCJcbiAgICBsZXQtbW9iaWxlT3JUYWJsZXQ9XCJtb2JpbGVPclRhYmxldFwiXG4gICAgbGV0LXRpdGxlPVwidGl0bGVcIlxuICAgIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCJcbiAgICBsZXQtb25seUlubGluZUVkaXQ9XCJvbmx5SW5saW5lRWRpdFwiXG4gICAgbGV0LWFsbG93SW5saW5lRWRpdD1cImFsbG93SW5saW5lRWRpdFwiXG4gICAgbGV0LXJ0bD1cInJ0bFwiXG4gICAgbGV0LWFsbENvbHVtbnM9XCJhbGxDb2x1bW5zXCJcbiAgICBsZXQtc2VsZWN0ZWRWaWV3PVwic2VsZWN0ZWRWaWV3XCJcbiAgICBsZXQtdmlld0NvbGxlY3Rpb249XCJ2aWV3Q29sbGVjdGlvblwiXG4gICAgbGV0LWhpZGVUb29sYmFyPVwiaGlkZVRvb2xiYXJcIlxuICAgIGxldC1ncmlkU2V0dGluZz1cImdyaWRTZXR0aW5nXCJcbiAgICBsZXQtY29udGVudERlbnNpdHk9XCJjb250ZW50RGVuc2l0eVwiXG4gICAgbGV0LWZvcm1MYXlvdXQ9XCJmb3JtTGF5b3V0XCJcbiAgICBsZXQtaGFzU2VsZWN0ZWQ9XCJoYXNTZWxlY3RlZFwiXG4gICAgbGV0LWRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51PVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgIGxldC1uYXZpZ2F0aW9uQXJyb3c9XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgIGxldC1jb250YWluZXJXaWR0aD1cImNvbnRhaW5lcldpZHRoXCJcbiAgICBsZXQtaGFzU3VtbWFyeT1cImhhc1N1bW1hcnlcIlxuICAgIGxldC10eXBlRGVmSWQ9XCJ0eXBlRGVmSWRcIlxuICAgIGxldC1mb3JtU2V0dGluZz1cImZvcm1TZXR0aW5nXCJcbiAgICBsZXQtZXh0cmFSZWxhdGlvbj1cImV4dHJhUmVsYXRpb25cIlxuICAgIGxldC1jb250ZXh0Vmlldz1cImNvbnRleHRWaWV3XCJcbiAgICBsZXQtc2hvd0NyZWF0ZUZvcm09XCJzaG93Q3JlYXRlRm9ybVwiXG4gICAgbGV0LWhpZGVPcGVuSWNvbj1cImhpZGVPcGVuSWNvblwiXG4gICAgbGV0LWNhcnRhYmxlVGVtcGxhdGVzPVwiY2FydGFibGVUZW1wbGF0ZXNcIlxuICAgIGxldC1jYXJ0YWJsZUNoaWxkc01vPVwiY2FydGFibGVDaGlsZHNNb1wiXG4gICAgbGV0LW9wZW5PbkNsaWNrPVwib3Blbk9uQ2xpY2tcIlxuICAgIGxldC1kaXNhYmxlUmVzcG9uc2l2ZT1cImRpc2FibGVSZXNwb25zaXZlXCJcbiAgICBsZXQtaW5EaWFsb2c9XCJpbkRpYWxvZ1wiXG4gICAgbGV0LWlzTXVsdGlTZWxlY3Q9XCJpc011bHRpU2VsZWN0XCJcbiAgICBsZXQtY3VzdG9tRmllbGRJbmZvPVwiY3VzdG9tRmllbGRJbmZvXCJcbiAgICBsZXQtc2VsZWN0ZWRNbz1cInNlbGVjdGVkTW9cIlxuICAgIGxldC1zZWxlY3RlZENvdW50PVwic2VsZWN0ZWRDb3VudFwiXG4gICAgbGV0LWhpZGVTZWFyY2hwYW5lbD1cImhpZGVTZWFyY2hwYW5lbFwiXG4gICAgbGV0LWdyaWRGcmVlQ29sdW1uU2l6aW5nPVwiZ3JpZEZyZWVDb2x1bW5TaXppbmdcIlxuICAgIGxldC1yZXBvcnRJZD1cInJlcG9ydElkXCJcbiAgICBsZXQtbGlzdEVkaXRWaWV3SWQ9XCJsaXN0RWRpdFZpZXdJZFwiXG4gICAgbGV0LXR5cGVWaWV3SWQ9XCJ0eXBlVmlld0lkXCJcbiAgICBsZXQtVWx2TWFpbkN0cmxyPVwiVWx2TWFpbkN0cmxyXCJcbiAgICBsZXQtYWxsb3dHcmlkQ29sdW1uU29ydD1cImFsbG93R3JpZENvbHVtblNvcnRcIlxuICAgIGxldC1wYWdpbmdTZXR0aW5nPVwicGFnaW5nU2V0dGluZ1wiXG4gICAgbGV0LWhhc0lubGluZURlbGV0ZUJ1dHRvbj1cImhhc0lubGluZURlbGV0ZUJ1dHRvblwiXG4gICAgbGV0LWhhc0lubGluZUVkaXRCdXR0b249XCJoYXNJbmxpbmVFZGl0QnV0dG9uXCJcbiAgICBsZXQtY29udGV4dFNldHRpbmc9XCJjb250ZXh0U2V0dGluZ1wiXG4+XG4gICAgQGlmIChzaG93Q3JlYXRlRm9ybSkge1xuICAgIDxkaXY+XG4gICAgICAgIDxic3UtcmVwb3J0LW5ldy10b3AtZm9ybVxuICAgICAgICAgICAgW2V4dHJhUmVsYXRpb25dPVwiZXh0cmFSZWxhdGlvblwiXG4gICAgICAgICAgICBbbW9EYXRhTGlzdENvdW50XT1cIm1vRGF0YUxpc3QubGVuZ3RoXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZE1vXT1cInNlbGVjdGVkTW9cIlxuICAgICAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgICAgIFt0eXBlRGVmSWRdPVwidHlwZURlZklkXCJcbiAgICAgICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoYWRkKT1cIm9uTmV3VG9wRm9ybUFkZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzYXZlKT1cIm9uU2F2ZVRvcEZvcm0oJGV2ZW50KVwiXG4gICAgICAgID48L2JzdS1yZXBvcnQtbmV3LXRvcC1mb3JtPlxuICAgIDwvZGl2PlxuICAgIH1cbiAgICA8YnN1LXVsdi10b29sYmFyXG4gICAgICAgIFthbGxvd0dyaWRDb2x1bW5Tb3J0XT1cImFsbG93R3JpZENvbHVtblNvcnRcIlxuICAgICAgICBbaGlkZVRvb2xiYXJdPVwiaGlkZVRvb2xiYXJcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFt0b29sYmFyQnV0dG9uc109XCJ0b29sYmFyQnV0dG9uc1wiXG4gICAgICAgIFtncmlkU2V0dGluZ109XCJncmlkU2V0dGluZ1wiXG4gICAgICAgIFtVbHZNYWluQ3RybHJdPVwiVWx2TWFpbkN0cmxyXCJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxuICAgICAgICBbaXNNdWx0aVNlbGVjdF09XCJpc011bHRpU2VsZWN0XCJcbiAgICAgICAgW2luRGlhbG9nXT1cImluRGlhbG9nXCJcbiAgICAgICAgW2hhc1NlbGVjdGVkXT1cImhhc1NlbGVjdGVkXCJcbiAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgW3ZpZXdDb2xsZWN0aW9uXT1cInZpZXdDb2xsZWN0aW9uXCJcbiAgICAgICAgW3JlcG9ydFZpZXddPVwic2VsZWN0ZWRWaWV3XCJcbiAgICAgICAgW2lubGluZUVkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgW2FsbG93SW5saW5lRWRpdF09XCJhbGxvd0lubGluZUVkaXRcIlxuICAgICAgICBbbW9EYXRhTGlzdENvdW50XT1cIm1vRGF0YUxpc3QubGVuZ3RoXCJcbiAgICAgICAgW2dyaWRGcmVlQ29sdW1uU2l6aW5nXT1cImdyaWRGcmVlQ29sdW1uU2l6aW5nXCJcbiAgICAgICAgKHNvcnRDbGljayk9XCJvblNvcnRTZXR0aW5ncygkZXZlbnQpXCJcbiAgICAgICAgKGdyb3VwYnlDbGljayk9XCJvbkdyb3VwYnlTZXR0aW5ncygkZXZlbnQpXCJcbiAgICAgICAgKGNvbHVtbkNsaWNrKT1cIm9uQ29sdW1uU2V0dGluZ3MoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0TW9kZUNsaWNrKT1cIm9uRWRpdE1vZGUoKVwiXG4gICAgICAgICh2aWV3Q2xpY2spPVwib25DaGFuZ2VWaWV3KCRldmVudClcIlxuICAgICAgICAoY3JlYXRlTmV3SW5saW5lTW8pPVwib25Ub29sYmFyQ3JlYXRlTmV3SW5saW5lTW8oKVwiXG4gICAgPjwvYnN1LXVsdi10b29sYmFyPlxuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInJlcG9ydC12aWV3XCJcbiAgICAgICAgW2F0dHIucmVwb3J0Q2FwdGlvbl09XCJjb250ZXh0LlNldHRpbmcuRXh0cmEuUmVwb3J0LkNhcHRpb25cIlxuICAgICAgICByZXBvcnRWaWV3UmVuZGVyZXJcbiAgICAgICAgW3Rvb2xiYXJCdXR0b25zXT1cInRvb2xiYXJCdXR0b25zXCJcbiAgICAgICAgW2hpZGVUb29sYmFyXT1cImhpZGVUb29sYmFyXCJcbiAgICAgICAgW2hhc0lubGluZURlbGV0ZUJ1dHRvbl09XCJoYXNJbmxpbmVEZWxldGVCdXR0b25cIlxuICAgICAgICBbaGFzSW5saW5lRWRpdEJ1dHRvbl09XCJoYXNJbmxpbmVFZGl0QnV0dG9uXCJcbiAgICAgICAgW2NvbnRleHRTZXR0aW5nXT1cImNvbnRleHRTZXR0aW5nXCJcbiAgICAgICAgW2xpc3RFZGl0Vmlld0lkXT1cImxpc3RFZGl0Vmlld0lkXCJcbiAgICAgICAgW3R5cGVWaWV3SWRdPVwidHlwZVZpZXdJZFwiXG4gICAgICAgIFt0b29sYmFyQnV0dG9uc109XCJ0b29sYmFyQnV0dG9uc1wiXG4gICAgICAgIFtwYWdpbmdTZXR0aW5nXT1cInBhZ2luZ1NldHRpbmdcIlxuICAgICAgICBbVWx2TWFpbkN0cmxyXT1cIlVsdk1haW5DdHJsclwiXG4gICAgICAgIFtyZXBvcnRJZF09XCJyZXBvcnRJZFwiXG4gICAgICAgIFtncmlkRnJlZUNvbHVtblNpemluZ109XCJncmlkRnJlZUNvbHVtblNpemluZ1wiXG4gICAgICAgIFtoaWRlU2VhcmNocGFuZWxdPVwiaGlkZVNlYXJjaHBhbmVsXCJcbiAgICAgICAgW3NlbGVjdGVkTW9dPVwic2VsZWN0ZWRNb1wiXG4gICAgICAgIFtzZWxlY3RlZENvdW50XT1cInNlbGVjdGVkQ291bnRcIlxuICAgICAgICBbaGFzU2VsZWN0ZWRdPVwiaGFzU2VsZWN0ZWRcIlxuICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXG4gICAgICAgIFtjdXN0b21GaWVsZEluZm9dPVwiY3VzdG9tRmllbGRJbmZvXCJcbiAgICAgICAgW2luRGlhbG9nXT1cImluRGlhbG9nXCJcbiAgICAgICAgW2lzTXVsdGlTZWxlY3RdPVwiaXNNdWx0aVNlbGVjdFwiXG4gICAgICAgIFtvcGVuT25DbGlja109XCJvcGVuT25DbGlja1wiXG4gICAgICAgIFtjb250ZXh0Vmlld109XCJjb250ZXh0Vmlld1wiXG4gICAgICAgIFtjb250YWluZXJXaWR0aF09XCJjb250YWluZXJXaWR0aFwiXG4gICAgICAgIFtleHRyYVJlbGF0aW9uXT1cImV4dHJhUmVsYXRpb25cIlxuICAgICAgICBbdHlwZURlZklkXT1cInR5cGVEZWZJZFwiXG4gICAgICAgIFtjYXJ0YWJsZVRlbXBsYXRlc109XCJjYXJ0YWJsZVRlbXBsYXRlc1wiXG4gICAgICAgIFtjYXJ0YWJsZUNoaWxkc01vXT1cImNhcnRhYmxlQ2hpbGRzTW9cIlxuICAgICAgICBbdmlld109XCJzZWxlY3RlZFZpZXdcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbYWxsQ2hlY2tlZF09XCJhbGxDaGVja2VkXCJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgIFthY2Nlc3NdPVwiYWNjZXNzXCJcbiAgICAgICAgW2dyb3VwYnldPVwiZ3JvdXBieVwiXG4gICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbbmF2aWdhdGlvbkFycm93XT1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgICAgIFttb2JpbGVPclRhYmxldF09XCJtb2JpbGVPclRhYmxldFwiXG4gICAgICAgIFtwb3Bpbl09XCJwb3BpblwiXG4gICAgICAgIFtzZWNvbmRhcnlDb2x1bW5zXT1cInNlY29uZGFyeUNvbHVtbnNcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2lubGluZUVkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFthbGxvd0lubGluZUVkaXRdPVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgIFtoYXNTdW1tYXJ5XT1cImhhc1N1bW1hcnlcIlxuICAgICAgICBbY29sdW1uc0NvdW50XT1cImNvbHVtbnNDb3VudFwiXG4gICAgICAgIFtmb3JtTGF5b3V0XT1cImZvcm1MYXlvdXRcIlxuICAgICAgICBbZGlzYWJsZVJlc3BvbnNpdmVdPVwiZGlzYWJsZVJlc3BvbnNpdmVcIlxuICAgICAgICAoZXNjYXBlS2V5KT1cIm9uRXNjYXBlS2V5KCRldmVudClcIlxuICAgICAgICAocmVzZXRXb3JrZmxvd1N0YXRlKT1cIm9uUmVzZXRXb3JrZmxvd1N0YXRlKCRldmVudClcIlxuICAgICAgICAoaGFzRGV0YWlsc0luUm93KT1cIm9uSGFzRGV0YWlsc0luUm93KCRldmVudCwgZGV2aWNlU2l6ZSlcIlxuICAgICAgICAoZXhlY3V0ZVRvb2xiYXJCdXR0b24pPVwib25FeGVjdXRlVG9vbGJhckJ1dHRvbigkZXZlbnQpXCJcbiAgICAgICAgKHNlbGVjdE5leHRJbmxpbmVSZWNvcmQpPVwib25TZWxlY3ROZXh0SW5saW5lUmVjb3JkKCRldmVudClcIlxuICAgICAgICAoc2VsZWN0TmV4dElubGluZVJlY29yZCk9XCJvblNlbGVjdE5leHRJbmxpbmVSZWNvcmQoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsQ2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxTYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UpPVwib25FZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICh1bHZDb21tYW5kQ2xpY2spPVwib25VbHZDb21tYW5kKCRldmVudClcIlxuICAgICAgICAoc29ydEFzY2VuZGluZyk9XCJvblNvcnRBc2NlbmRpbmcoJGV2ZW50KVwiXG4gICAgICAgIChzb3J0RGVzY2VuZGluZyk9XCJvblNvcnREZXNjZW5kaW5nKCRldmVudClcIlxuICAgICAgICAoZmlsdGVyKT1cIm9uRmlsdGVyKCRldmVudClcIlxuICAgICAgICAoZGVzZWxlY3RBbGwpPVwib25EZXNlbGVjdEFsbCgpXCJcbiAgICAgICAgKHJvd0NoZWNrKT1cIm9uUm93Q2hlY2soJGV2ZW50KVwiXG4gICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxuICAgICAgICAoYWxsQ2hlY2tib3gpPVwib25BbGxDaGVja2JveCgkZXZlbnQpXCJcbiAgICAgICAgKGV4cGFuZENsaWNrKT1cIm9uRXhwYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChjb2x1bW5SZXNpemVkKT1cIm9uQ29sdW1uUmVzaXplZCgkZXZlbnQpXCJcbiAgICAgICAgKGNhcnRhYmxlRm9ybUNsb3NlZCk9XCJvbkNhcnRhYmxlRm9ybUNsb3NlZCgkZXZlbnQpXCJcbiAgICAgICAgKGNyZWF0ZU5ld01vKT1cIm9uQ3JlYXRlTmV3TW8oKVwiXG4gICAgICAgICh1cGRhdGVNbyk9XCJvblVwZGF0ZU1vKCRldmVudClcIlxuICAgICAgICAobWFuZGF0b3J5KT1cIm9uTWFuZGF0b3J5KCRldmVudClcIlxuICAgICAgICAod29ya2Zsb3dTaGFyZUJ1dHRvbnMpPVwib25Xb3JrZmxvd1NoYXJlQnV0dG9ucygkZXZlbnQpXCJcbiAgICA+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -130,11 +130,11 @@ export class UiTableViewComponent extends ReportViewBaseComponent {
|
|
|
130
130
|
this._renderer2.setStyle(this._el.nativeElement, 'width', this._width);
|
|
131
131
|
}
|
|
132
132
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiTableViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
133
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiTableViewComponent, selector: "bsu-ui-table-view", inputs: { columnWidth: "columnWidth", minWidth: "minWidth", minHeight: "minHeight", rowResizer: "rowResizer", enableResizing: "enableResizing" }, host: { properties: { "style.height.px": "this.height", "style.max-height": "this.maxHeight" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\n fd-table\n [popIn]=\"popin\"\n [class.table-fixed]=\"!contextView?.Grid_HideHeader && (!popin || secondaryColumns.length === 0)\"\n [noBorderX]=\"viewSetting?.NoHoriztonalBorders === true || (popin && secondaryColumns.length > 0)\"\n [noBorderY]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\n>\n @if (columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList; as mergeFieldsToColumns) {\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate;\n context: { $implicit: mergeFieldsToColumns, moDataListCount: moDataList?.length }\n \"\n ></ng-container>\n @if (moDataList?.length) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n } }\n</table>\n<!--renderColumn-->\n\n@if (!moDataList?.length) {\n<bsu-no-data\n [class.no-topborder]=\"!hideToolbar\"\n [class.noborder]=\"contextView.Grid_HideHeader && hideToolbar\"\n [simple]=\"true\"\n>\n</bsu-no-data>\n}\n\n<ng-template #headerTemplate let-columns let-moDataListCount>\n <bsu-barsa-table-header\n [class.has-toolbar]=\"!hideToolbar\"\n [style.pointer-events]=\"moDataListCount ? 'auto' : 'none'\"\n [tableWidth]=\"elWidth\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [resizedByUser]=\"resizedByUser\"\n [tableHeaderMode]=\"tableHeaderMode\"\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\n [allChecked]=\"allChecked\"\n [rtl]=\"rtl\"\n [actionList]=\"actionList\"\n [disableResponsive]=\"disableResponsive\"\n [isCheckList]=\"isCheckList\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [fitWidth]=\"fitWidth\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [inlineEditMode]=\"inlineEditMode\"\n [contextMenuItems]=\"contextMenuItems\"\n [contextMenuWidth]=\"contextMenuWidth\"\n [showViewButton]=\"showViewButton\"\n [deviceSize]=\"deviceSize\"\n [viewSetting]=\"viewSetting\"\n [hideHeader]=\"contextView.Grid_HideHeader\"\n [rowIndicator]=\"rowIndicator\"\n (columnResize)=\"onColumnResized($event)\"\n (fitToContent)=\"onFitToContent($event)\"\n (fitToContainer)=\"onFitToContainer()\"\n (fitToColumn)=\"onFitToColumn()\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n ></bsu-barsa-table-header>\n</ng-template>\n<ng-template #bodyTemplate let-columns>\n <tbody\n fd-table-body\n [class.noborder]=\"viewSetting?.NoBodyBorders === true\"\n [noBorderX]=\"(popin && secondaryColumns.length > 0) || viewSetting?.NoVerticalBorders !== false\"\n [noBorderY]=\"popin && secondaryColumns.length > 0\"\n >\n <ng-container>\n @for (mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index) {\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\n context: {\n $implicit: mo,\n index: index,\n rowNumber: mo.Id | rowNumber: pagingSetting:moDataList,\n rowIndicatorColor: !columns.length ? '' : (columns[0].Caption | rval: mo:columns),\n columns: columns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n secondaryColumns:\n secondaryColumns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n moDataList: moDataList,\n moDataListCount: moDataList.length,\n cartableTemplate: cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id]\n }\n \"\n ></ng-container>\n }\n </ng-container>\n </tbody>\n</ng-template>\n<ng-template #footerTemplate let-columns>\n @if (hasSummary) {\n <tfoot fd-table-footer>\n <tr fd-table-row class=\"row-summary\">\n @if (isCheckList) {\n <td fd-table-cell columnResizer>\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n } @if (!isCheckList) {\n <td fd-table-cell class=\"single-select\">\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n } @for (column of columns; track column; let i = $index) {\n <td>\n @if (column.HasSummary) {\n <strong style=\"direction: ltr; display: block\">\n {{ moDataList | totalSummary: column.Name | number }}</strong\n >\n }\n </td>\n } @if (contextMenuItems && contextMenuItems.length > 0) {\n <td fd-table-cell style=\"width: 100px\"></td>\n } @if (!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)) {\n <td fd-table-cell></td>\n }\n </tr>\n </tfoot>\n }\n</ng-template>\n<ng-template\n #rowOlgoTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n let-rowNumber=\"rowNumber\"\n>\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [showViewButton]=\"showViewButton\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\n [rowNumber]=\"rowNumber\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [coloringRow]=\"viewSetting?.ColoringRow\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n</ng-template>\n<ng-template\n #rowTemplate\n let-mo\n let-index=\"index\"\n let-rowNumber=\"rowNumber\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n>\n <bsu-barsa-table-row\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\n [rowNumber]=\"rowNumber\"\n [coloringRow]=\"viewSetting?.ColoringRow\"\n [showViewButton]=\"showViewButton\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [checkboxComponent]=\"viewSetting?.CheckboxComponent\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [actionList]=\"actionList\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\n (escapeKey)=\"onEscapeKey($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n >\n </bsu-barsa-table-row>\n</ng-template>\n", styles: [":host{display:block;width:100%;position:relative;padding-bottom:.2rem;overflow-x:auto;max-width:100vw}.table-fixed{table-layout:fixed}.table-fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary .col-total-text{position:absolute;top:25%}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.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: i2.ColumnResizerDirective, selector: "[columnResizer]", inputs: ["disableResizer"] }, { kind: "component", type: i3.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3.TableFooterDirective, selector: "[fdTableFooter], [fd-table-footer]" }, { kind: "directive", type: i3.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "component", type: i4.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "component", type: i5.BarsaTableHeaderComponent, selector: "bsu-barsa-table-header", inputs: ["allChecked", "isCheckList", "columns", "fitWidth", "contextMenuItems", "contextMenuWidth", "showViewButton", "hasSelected", "hideOpenIcon", "disableOverflowContextMenu", "inlineEditMode", "hideHeader", "showDetailsInRow", "viewSetting", "tableWidth", "resizedByUser", "disableResponsive", "actionList", "rowIndicator", "rtl", "showRowNumber", "deviceSize", "tableHeaderMode"], outputs: ["allCheckbox", "columnResize", "fitToContent", "fitToContainer", "fitToColumn", "sortAscending", "sortDescending", "filter"] }, { kind: "component", type: i6.BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: ["showDetailsInRow", "detailsComponent", "detailsColumns", "detailsText", "columnComponents", "actionList"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.TotalSummaryPipe, name: "totalSummary" }, { kind: "pipe", type: i2.MergeFieldsToColumnsPipe, name: "mergeFieldsToColumns" }, { kind: "pipe", type: i2.FilterColumnsByDetailsPipe, name: "filterColumnsByDetails" }, { kind: "pipe", type: i2.ColumnCustomComponentPipe, name: "columnCustomComponent" }, { kind: "pipe", type: i2.RowNumberPipe, name: "rowNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
133
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiTableViewComponent, selector: "bsu-ui-table-view", inputs: { columnWidth: "columnWidth", minWidth: "minWidth", minHeight: "minHeight", rowResizer: "rowResizer", enableResizing: "enableResizing", disableFixedTableLayout: "disableFixedTableLayout" }, host: { properties: { "style.height.px": "this.height", "style.max-height": "this.maxHeight" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\n fd-table\n [popIn]=\"popin\"\n [class.table-fixed]=\"\n !contextView?.Grid_HideHeader && (!popin || secondaryColumns.length === 0) && !disableFixedTableLayout\n \"\n [noBorderX]=\"viewSetting?.NoHoriztonalBorders === true || (popin && secondaryColumns.length > 0)\"\n [noBorderY]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\n>\n @if (columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList; as mergeFieldsToColumns) {\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate;\n context: { $implicit: mergeFieldsToColumns, moDataListCount: moDataList?.length }\n \"\n ></ng-container>\n @if (moDataList?.length) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n } }\n</table>\n<!--renderColumn-->\n\n@if (!moDataList?.length) {\n<bsu-no-data\n [class.no-topborder]=\"!hideToolbar\"\n [class.noborder]=\"contextView.Grid_HideHeader && hideToolbar\"\n [simple]=\"true\"\n>\n</bsu-no-data>\n}\n\n<ng-template #headerTemplate let-columns let-moDataListCount>\n <bsu-barsa-table-header\n [class.has-toolbar]=\"!hideToolbar\"\n [style.pointer-events]=\"moDataListCount ? 'auto' : 'none'\"\n [tableWidth]=\"elWidth\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [resizedByUser]=\"resizedByUser\"\n [tableHeaderMode]=\"tableHeaderMode\"\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\n [allChecked]=\"allChecked\"\n [rtl]=\"rtl\"\n [actionList]=\"actionList\"\n [disableResponsive]=\"disableResponsive\"\n [isCheckList]=\"isCheckList\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [fitWidth]=\"fitWidth\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [inlineEditMode]=\"inlineEditMode\"\n [contextMenuItems]=\"contextMenuItems\"\n [contextMenuWidth]=\"contextMenuWidth\"\n [showViewButton]=\"showViewButton\"\n [deviceSize]=\"deviceSize\"\n [viewSetting]=\"viewSetting\"\n [hideHeader]=\"contextView.Grid_HideHeader\"\n [rowIndicator]=\"rowIndicator\"\n (columnResize)=\"onColumnResized($event)\"\n (fitToContent)=\"onFitToContent($event)\"\n (fitToContainer)=\"onFitToContainer()\"\n (fitToColumn)=\"onFitToColumn()\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n ></bsu-barsa-table-header>\n</ng-template>\n<ng-template #bodyTemplate let-columns>\n <tbody\n fd-table-body\n [class.noborder]=\"viewSetting?.NoBodyBorders === true\"\n [noBorderX]=\"(popin && secondaryColumns.length > 0) || viewSetting?.NoVerticalBorders !== false\"\n [noBorderY]=\"popin && secondaryColumns.length > 0\"\n >\n <ng-container>\n @for (mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index) {\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\n context: {\n $implicit: mo,\n index: index,\n rowNumber: mo.Id | rowNumber: pagingSetting:moDataList,\n rowIndicatorColor: !columns.length ? '' : (columns[0].Caption | rval: mo:columns),\n columns: columns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n secondaryColumns:\n secondaryColumns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n moDataList: moDataList,\n moDataListCount: moDataList.length,\n cartableTemplate: cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id]\n }\n \"\n ></ng-container>\n }\n </ng-container>\n </tbody>\n</ng-template>\n<ng-template #footerTemplate let-columns>\n @if (hasSummary) {\n <tfoot fd-table-footer>\n <tr fd-table-row class=\"row-summary\">\n @if (isCheckList) {\n <td fd-table-cell columnResizer>\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n } @if (!isCheckList) {\n <td fd-table-cell class=\"single-select\">\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n } @for (column of columns; track column; let i = $index) {\n <td>\n @if (column.HasSummary) {\n <strong style=\"direction: ltr; display: block\">\n {{ moDataList | totalSummary: column.Name | number }}</strong\n >\n }\n </td>\n } @if (contextMenuItems && contextMenuItems.length > 0) {\n <td fd-table-cell style=\"width: 100px\"></td>\n } @if (!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)) {\n <td fd-table-cell></td>\n }\n </tr>\n </tfoot>\n }\n</ng-template>\n<ng-template\n #rowOlgoTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n let-rowNumber=\"rowNumber\"\n>\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [showViewButton]=\"showViewButton\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\n [rowNumber]=\"rowNumber\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [coloringRow]=\"viewSetting?.ColoringRow\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n</ng-template>\n<ng-template\n #rowTemplate\n let-mo\n let-index=\"index\"\n let-rowNumber=\"rowNumber\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n>\n <bsu-barsa-table-row\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\n [rowNumber]=\"rowNumber\"\n [coloringRow]=\"viewSetting?.ColoringRow\"\n [showViewButton]=\"showViewButton\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [checkboxComponent]=\"viewSetting?.CheckboxComponent\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [actionList]=\"actionList\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\n (escapeKey)=\"onEscapeKey($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n >\n </bsu-barsa-table-row>\n</ng-template>\n", styles: [":host{display:block;width:100%;position:relative;padding-bottom:.2rem;overflow-x:auto;max-width:100vw}table tbody bsu-barsa-table-row:last-child ::ng-deep>tr>td{border-bottom:none!important}.table-fixed{table-layout:fixed}.table-fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary .col-total-text{position:absolute;top:25%}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.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: i2.ColumnResizerDirective, selector: "[columnResizer]", inputs: ["disableResizer"] }, { kind: "component", type: i3.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3.TableFooterDirective, selector: "[fdTableFooter], [fd-table-footer]" }, { kind: "directive", type: i3.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "component", type: i4.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "component", type: i5.BarsaTableHeaderComponent, selector: "bsu-barsa-table-header", inputs: ["allChecked", "isCheckList", "columns", "fitWidth", "contextMenuItems", "contextMenuWidth", "showViewButton", "hasSelected", "hideOpenIcon", "disableOverflowContextMenu", "inlineEditMode", "hideHeader", "showDetailsInRow", "viewSetting", "tableWidth", "resizedByUser", "disableResponsive", "actionList", "rowIndicator", "rtl", "showRowNumber", "deviceSize", "tableHeaderMode"], outputs: ["allCheckbox", "columnResize", "fitToContent", "fitToContainer", "fitToColumn", "sortAscending", "sortDescending", "filter"] }, { kind: "component", type: i6.BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: ["showDetailsInRow", "detailsComponent", "detailsColumns", "detailsText", "columnComponents", "actionList"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.TotalSummaryPipe, name: "totalSummary" }, { kind: "pipe", type: i2.MergeFieldsToColumnsPipe, name: "mergeFieldsToColumns" }, { kind: "pipe", type: i2.FilterColumnsByDetailsPipe, name: "filterColumnsByDetails" }, { kind: "pipe", type: i2.ColumnCustomComponentPipe, name: "columnCustomComponent" }, { kind: "pipe", type: i2.RowNumberPipe, name: "rowNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
134
134
|
}
|
|
135
135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiTableViewComponent, decorators: [{
|
|
136
136
|
type: Component,
|
|
137
|
-
args: [{ selector: 'bsu-ui-table-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\n fd-table\n [popIn]=\"popin\"\n [class.table-fixed]=\"!contextView?.Grid_HideHeader && (!popin || secondaryColumns.length === 0)\"\n [noBorderX]=\"viewSetting?.NoHoriztonalBorders === true || (popin && secondaryColumns.length > 0)\"\n [noBorderY]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\n>\n @if (columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList; as mergeFieldsToColumns) {\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate;\n context: { $implicit: mergeFieldsToColumns, moDataListCount: moDataList?.length }\n \"\n ></ng-container>\n @if (moDataList?.length) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n } }\n</table>\n<!--renderColumn-->\n\n@if (!moDataList?.length) {\n<bsu-no-data\n [class.no-topborder]=\"!hideToolbar\"\n [class.noborder]=\"contextView.Grid_HideHeader && hideToolbar\"\n [simple]=\"true\"\n>\n</bsu-no-data>\n}\n\n<ng-template #headerTemplate let-columns let-moDataListCount>\n <bsu-barsa-table-header\n [class.has-toolbar]=\"!hideToolbar\"\n [style.pointer-events]=\"moDataListCount ? 'auto' : 'none'\"\n [tableWidth]=\"elWidth\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [resizedByUser]=\"resizedByUser\"\n [tableHeaderMode]=\"tableHeaderMode\"\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\n [allChecked]=\"allChecked\"\n [rtl]=\"rtl\"\n [actionList]=\"actionList\"\n [disableResponsive]=\"disableResponsive\"\n [isCheckList]=\"isCheckList\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [fitWidth]=\"fitWidth\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [inlineEditMode]=\"inlineEditMode\"\n [contextMenuItems]=\"contextMenuItems\"\n [contextMenuWidth]=\"contextMenuWidth\"\n [showViewButton]=\"showViewButton\"\n [deviceSize]=\"deviceSize\"\n [viewSetting]=\"viewSetting\"\n [hideHeader]=\"contextView.Grid_HideHeader\"\n [rowIndicator]=\"rowIndicator\"\n (columnResize)=\"onColumnResized($event)\"\n (fitToContent)=\"onFitToContent($event)\"\n (fitToContainer)=\"onFitToContainer()\"\n (fitToColumn)=\"onFitToColumn()\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n ></bsu-barsa-table-header>\n</ng-template>\n<ng-template #bodyTemplate let-columns>\n <tbody\n fd-table-body\n [class.noborder]=\"viewSetting?.NoBodyBorders === true\"\n [noBorderX]=\"(popin && secondaryColumns.length > 0) || viewSetting?.NoVerticalBorders !== false\"\n [noBorderY]=\"popin && secondaryColumns.length > 0\"\n >\n <ng-container>\n @for (mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index) {\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\n context: {\n $implicit: mo,\n index: index,\n rowNumber: mo.Id | rowNumber: pagingSetting:moDataList,\n rowIndicatorColor: !columns.length ? '' : (columns[0].Caption | rval: mo:columns),\n columns: columns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n secondaryColumns:\n secondaryColumns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n moDataList: moDataList,\n moDataListCount: moDataList.length,\n cartableTemplate: cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id]\n }\n \"\n ></ng-container>\n }\n </ng-container>\n </tbody>\n</ng-template>\n<ng-template #footerTemplate let-columns>\n @if (hasSummary) {\n <tfoot fd-table-footer>\n <tr fd-table-row class=\"row-summary\">\n @if (isCheckList) {\n <td fd-table-cell columnResizer>\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n } @if (!isCheckList) {\n <td fd-table-cell class=\"single-select\">\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n } @for (column of columns; track column; let i = $index) {\n <td>\n @if (column.HasSummary) {\n <strong style=\"direction: ltr; display: block\">\n {{ moDataList | totalSummary: column.Name | number }}</strong\n >\n }\n </td>\n } @if (contextMenuItems && contextMenuItems.length > 0) {\n <td fd-table-cell style=\"width: 100px\"></td>\n } @if (!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)) {\n <td fd-table-cell></td>\n }\n </tr>\n </tfoot>\n }\n</ng-template>\n<ng-template\n #rowOlgoTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n let-rowNumber=\"rowNumber\"\n>\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [showViewButton]=\"showViewButton\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\n [rowNumber]=\"rowNumber\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [coloringRow]=\"viewSetting?.ColoringRow\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n</ng-template>\n<ng-template\n #rowTemplate\n let-mo\n let-index=\"index\"\n let-rowNumber=\"rowNumber\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n>\n <bsu-barsa-table-row\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\n [rowNumber]=\"rowNumber\"\n [coloringRow]=\"viewSetting?.ColoringRow\"\n [showViewButton]=\"showViewButton\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [checkboxComponent]=\"viewSetting?.CheckboxComponent\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [actionList]=\"actionList\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\n (escapeKey)=\"onEscapeKey($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n >\n </bsu-barsa-table-row>\n</ng-template>\n", styles: [":host{display:block;width:100%;position:relative;padding-bottom:.2rem;overflow-x:auto;max-width:100vw}.table-fixed{table-layout:fixed}.table-fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary .col-total-text{position:absolute;top:25%}\n"] }]
|
|
137
|
+
args: [{ selector: 'bsu-ui-table-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\n fd-table\n [popIn]=\"popin\"\n [class.table-fixed]=\"\n !contextView?.Grid_HideHeader && (!popin || secondaryColumns.length === 0) && !disableFixedTableLayout\n \"\n [noBorderX]=\"viewSetting?.NoHoriztonalBorders === true || (popin && secondaryColumns.length > 0)\"\n [noBorderY]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\n>\n @if (columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList; as mergeFieldsToColumns) {\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate;\n context: { $implicit: mergeFieldsToColumns, moDataListCount: moDataList?.length }\n \"\n ></ng-container>\n @if (moDataList?.length) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n } }\n</table>\n<!--renderColumn-->\n\n@if (!moDataList?.length) {\n<bsu-no-data\n [class.no-topborder]=\"!hideToolbar\"\n [class.noborder]=\"contextView.Grid_HideHeader && hideToolbar\"\n [simple]=\"true\"\n>\n</bsu-no-data>\n}\n\n<ng-template #headerTemplate let-columns let-moDataListCount>\n <bsu-barsa-table-header\n [class.has-toolbar]=\"!hideToolbar\"\n [style.pointer-events]=\"moDataListCount ? 'auto' : 'none'\"\n [tableWidth]=\"elWidth\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [resizedByUser]=\"resizedByUser\"\n [tableHeaderMode]=\"tableHeaderMode\"\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\n [allChecked]=\"allChecked\"\n [rtl]=\"rtl\"\n [actionList]=\"actionList\"\n [disableResponsive]=\"disableResponsive\"\n [isCheckList]=\"isCheckList\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [fitWidth]=\"fitWidth\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [inlineEditMode]=\"inlineEditMode\"\n [contextMenuItems]=\"contextMenuItems\"\n [contextMenuWidth]=\"contextMenuWidth\"\n [showViewButton]=\"showViewButton\"\n [deviceSize]=\"deviceSize\"\n [viewSetting]=\"viewSetting\"\n [hideHeader]=\"contextView.Grid_HideHeader\"\n [rowIndicator]=\"rowIndicator\"\n (columnResize)=\"onColumnResized($event)\"\n (fitToContent)=\"onFitToContent($event)\"\n (fitToContainer)=\"onFitToContainer()\"\n (fitToColumn)=\"onFitToColumn()\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n ></bsu-barsa-table-header>\n</ng-template>\n<ng-template #bodyTemplate let-columns>\n <tbody\n fd-table-body\n [class.noborder]=\"viewSetting?.NoBodyBorders === true\"\n [noBorderX]=\"(popin && secondaryColumns.length > 0) || viewSetting?.NoVerticalBorders !== false\"\n [noBorderY]=\"popin && secondaryColumns.length > 0\"\n >\n <ng-container>\n @for (mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index) {\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\n context: {\n $implicit: mo,\n index: index,\n rowNumber: mo.Id | rowNumber: pagingSetting:moDataList,\n rowIndicatorColor: !columns.length ? '' : (columns[0].Caption | rval: mo:columns),\n columns: columns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n secondaryColumns:\n secondaryColumns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n moDataList: moDataList,\n moDataListCount: moDataList.length,\n cartableTemplate: cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id]\n }\n \"\n ></ng-container>\n }\n </ng-container>\n </tbody>\n</ng-template>\n<ng-template #footerTemplate let-columns>\n @if (hasSummary) {\n <tfoot fd-table-footer>\n <tr fd-table-row class=\"row-summary\">\n @if (isCheckList) {\n <td fd-table-cell columnResizer>\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n } @if (!isCheckList) {\n <td fd-table-cell class=\"single-select\">\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n } @for (column of columns; track column; let i = $index) {\n <td>\n @if (column.HasSummary) {\n <strong style=\"direction: ltr; display: block\">\n {{ moDataList | totalSummary: column.Name | number }}</strong\n >\n }\n </td>\n } @if (contextMenuItems && contextMenuItems.length > 0) {\n <td fd-table-cell style=\"width: 100px\"></td>\n } @if (!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)) {\n <td fd-table-cell></td>\n }\n </tr>\n </tfoot>\n }\n</ng-template>\n<ng-template\n #rowOlgoTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n let-rowNumber=\"rowNumber\"\n>\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [showViewButton]=\"showViewButton\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\n [rowNumber]=\"rowNumber\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [coloringRow]=\"viewSetting?.ColoringRow\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n</ng-template>\n<ng-template\n #rowTemplate\n let-mo\n let-index=\"index\"\n let-rowNumber=\"rowNumber\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n let-rowIndicatorColor=\"rowIndicatorColor\"\n>\n <bsu-barsa-table-row\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\n [rowNumber]=\"rowNumber\"\n [coloringRow]=\"viewSetting?.ColoringRow\"\n [showViewButton]=\"showViewButton\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [checkboxComponent]=\"viewSetting?.CheckboxComponent\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [actionList]=\"actionList\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"rowIndicatorColor\"\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\n (escapeKey)=\"onEscapeKey($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n >\n </bsu-barsa-table-row>\n</ng-template>\n", styles: [":host{display:block;width:100%;position:relative;padding-bottom:.2rem;overflow-x:auto;max-width:100vw}table tbody bsu-barsa-table-row:last-child ::ng-deep>tr>td{border-bottom:none!important}.table-fixed{table-layout:fixed}.table-fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary .col-total-text{position:absolute;top:25%}\n"] }]
|
|
138
138
|
}], propDecorators: { columnWidth: [{
|
|
139
139
|
type: Input
|
|
140
140
|
}], minWidth: [{
|
|
@@ -145,6 +145,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
145
145
|
type: Input
|
|
146
146
|
}], enableResizing: [{
|
|
147
147
|
type: Input
|
|
148
|
+
}], disableFixedTableLayout: [{
|
|
149
|
+
type: Input
|
|
148
150
|
}], height: [{
|
|
149
151
|
type: HostBinding,
|
|
150
152
|
args: ['style.height.px']
|
|
@@ -152,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
152
154
|
type: HostBinding,
|
|
153
155
|
args: ['style.max-height']
|
|
154
156
|
}] } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdGFibGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS10YWJsZS12aWV3L3VpLXRhYmxlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdGFibGUtdmlldy91aS10YWJsZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBSVIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdILHVCQUF1QixFQUV2QixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLGlDQUFpQyxFQUVqQyxvQkFBb0IsRUFDdkIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUFTOUIsTUFBTSxPQUFPLG9CQUNULFNBQVEsdUJBQTJDO0lBUHZEOztRQWVvQyxXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM1QixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNqRSxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUl4QyxxQkFBZ0IsR0FBbUUsRUFBRSxDQUFDO1FBRXRGLG9CQUFlLEdBQUcsb0JBQW9CLENBQUMsY0FBYyxDQUFDO0tBNEh6RDtJQTNIRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDO1FBQ3hELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG9CQUFvQjtZQUM1QyxDQUFDLENBQUMsb0JBQW9CLENBQUMsV0FBVztZQUNsQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDO1FBQzFDLElBQUksQ0FB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QUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0wsQ0FBQztJQUNTLHNCQUFzQixDQUFDLEdBQVc7UUFDeEMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN6QixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDNUMsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0UsQ0FBQzs4R0E3SVEsb0JBQW9CO2tHQUFwQixvQkFBb0IseVZDN0JqQyxnL1dBOFFBOzsyRkRqUGEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNJLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNOzhCQU10QyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQzBCLE1BQU07c0JBQXJDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUNHLFNBQVM7c0JBQXpDLFdBQVc7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEVqcmF5T2xnbyxcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50LFxuICAgIFJlcG9ydFZpZXdDb2x1bW4sXG4gICAgVGFibGVIZWFkZXJXaWR0aE1vZGUsXG4gICAgY2FsY3VsYXRlV2lkdGhPZkxpc3RDb2x1bW4sXG4gICAgc2V0Q29sdW1uV2lkdGhCeU1heE1vQ29udGVudFdpZHRoLFxuICAgIENvbHVtblJlc2l6ZWRBcmdzLFxuICAgIGNhbGNDb250ZXh0TWVudVdpZHRoXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVpVGFibGVWaWV3U2V0dGluZyB9IGZyb20gJy4uL21vZGVscy9ncmlkLXZpZXcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS10YWJsZS12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktdGFibGUtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktdGFibGUtdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVpVGFibGVWaWV3Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudDxVaVRhYmxlVmlld1NldHRpbmc+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlc1xue1xuICAgIEBJbnB1dCgpIGNvbHVtbldpZHRoOiBudW1iZXI7XG4gICAgQElucHV0KCkgbWluV2lkdGg7XG4gICAgQElucHV0KCkgbWluSGVpZ2h0O1xuICAgIEBJbnB1dCgpIHJvd1Jlc2l6ZXI7XG4gICAgQElucHV0KCkgZW5hYmxlUmVzaXppbmc7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKSBoZWlnaHQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWF4LWhlaWdodCcpIG1heEhlaWdodDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgX3dpZHRoID0gJzEwMCUnO1xuICAgIGRldGFpbHNDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW10gPSBbXTtcbiAgICBkZXRhaWxzQ29tcG9uZW50OiBFanJheU9sZ287XG4gICAgc2hvd0RldGFpbHNJblJvdzogYm9vbGVhbjtcbiAgICBoYXNSb3dPbGdvOiBib29sZWFuO1xuICAgIGNvbHVtbkNvbXBvbmVudHM6IHsgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uOyBjb21wb25lbnQ6IE1ldGFvYmplY3REYXRhTW9kZWwgfVtdID0gW107XG4gICAgcm93SW5kaWNhdG9yOiBib29sZWFuO1xuICAgIHRhYmxlSGVhZGVyTW9kZSA9IFRhYmxlSGVhZGVyV2lkdGhNb2RlLkZpdFRvQ29udGFpbmVyO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBjb25zdCBkZXRhaWxzU2V0dGluZyA9IHRoaXMudmlld1NldHRpbmc/LkRldGFpbHNTZXR0aW5nO1xuICAgICAgICB0aGlzLnRhYmxlSGVhZGVyTW9kZSA9IHRoaXMuZ3JpZEZyZWVDb2x1bW5TaXppbmdcbiAgICAgICAgICAgID8gVGFibGVIZWFkZXJXaWR0aE1vZGUuRml0VG9Db2x1bW5cbiAgICAgICAgICAgIDogVGFibGVIZWFkZXJXaWR0aE1vZGUuRml0VG9Db250YWluZXI7XG4gICAgICAgIHRoaXMuaGFzUm93T2xnbyA9IHRoaXMudmlld1NldHRpbmc/LlJvd09sZ28/LlNlbGVjdG9yO1xuICAgICAgICB0aGlzLm1heEhlaWdodCA9IHRoaXMudmlld1NldHRpbmc/LkJvZHlIZWlnaHQ7XG4gICAgICAgIGlmIChkZXRhaWxzU2V0dGluZykge1xuICAgICAgICAgICAgdGhpcy5kZXRhaWxzQ29tcG9uZW50ID0gZGV0YWlsc1NldHRpbmcuQ29tcG9uZW50O1xuICAgICAgICAgICAgZGV0YWlsc1NldHRpbmcuQ29sdW1ucy5zcGxpdCgnLCcpLmZvckVhY2goKGNvbHVtbk5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuX2ZpbmRDb2x1bW5CeURiTmFtZS50cmFuc2Zvcm0odGhpcy5hbGxDb2x1bW5zLCBjb2x1bW5OYW1lLCB0aGlzLnNlY29uZGFyeUNvbHVtbnMpO1xuICAgICAgICAgICAgICAgIGlmIChjb2x1bW4pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXRhaWxzQ29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0SGFzU3VtbWVyeSh0aGlzLmNhcnRhYmxlQ2hpbGRzTW8pO1xuICAgICAgICB0aGlzLl9zZXRIZWlnaHQodGhpcy5wYXJlbnRIZWlnaHQpO1xuICAgICAgICB0aGlzLl9zZXRSb3dJbmRpY2F0b3IodGhpcy5jb2x1bW5zKTtcbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlQ29sdW1uc1dpZHRoKHRoaXMubW9EYXRhTGlzdCk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHRoaXMuX2NhbGN1bGF0ZUNvbHVtbnNXaWR0aCh0aGlzLm1vRGF0YUxpc3QpO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgY2FydGFibGVUZW1wbGF0ZXMsIHBhcmVudEhlaWdodCwgbW9EYXRhTGlzdCwgY29udGV4dE1lbnVJdGVtcyB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKGNvbHVtbnMgJiYgIWNvbHVtbnMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGN1bGF0ZUNvbHVtbnNXaWR0aCh0aGlzLm1vRGF0YUxpc3QsIGNvbHVtbnMuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX3NldFJvd0luZGljYXRvcihjb2x1bW5zLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnRleHRNZW51SXRlbXMgJiYgIWNvbnRleHRNZW51SXRlbXMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dE1lbnVXaWR0aCA9IGNhbGNDb250ZXh0TWVudVdpZHRoKFxuICAgICAgICAgICAgICAgIGNvbnRleHRNZW51SXRlbXMuY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYXJ0YWJsZVRlbXBsYXRlcyAmJiAhY2FydGFibGVUZW1wbGF0ZXMuZmlyc3RDaGFuZ2UgJiYgIXRoaXMuaGFzU3VtbWFyeSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0SGFzU3VtbWVyeShjYXJ0YWJsZVRlbXBsYXRlcy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyZW50SGVpZ2h0ICYmICFwYXJlbnRIZWlnaHQuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEhlaWdodChwYXJlbnRIZWlnaHQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobW9EYXRhTGlzdCAmJiBtb0RhdGFMaXN0LmN1cnJlbnRWYWx1ZS5sZW5ndGggPiAwICYmICFtb0RhdGFMaXN0LmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAvLyB0aGlzLl9jYWxjdWxhdGVDb2x1bW5zV2lkdGgobW9EYXRhTGlzdC5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgIH1cbiAgICBvbkNvbHVtblJlc2l6ZWQoZTogQXJyYXk8Q29sdW1uUmVzaXplZEFyZ3M+KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlY29uZGFyeUNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNpemVkQnlVc2VyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50YWJsZUhlYWRlck1vZGUgPSBUYWJsZUhlYWRlcldpZHRoTW9kZS5GcmVlQ29sdW1uU2l6ZTtcbiAgICAgICAgdGhpcy5jb2x1bW5SZXNpemVkLmVtaXQoeyBjb2x1bW5zOiB0aGlzLmNvbHVtbnMsIHJlc2l6ZWQ6IGUgfSk7XG4gICAgfVxuICAgIG9uRml0VG9Db250YWluZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFibGVIZWFkZXJNb2RlID0gVGFibGVIZWFkZXJXaWR0aE1vZGUuRml0VG9Db250YWluZXI7XG4gICAgICAgIHRoaXMuX2NhbGN1bGF0ZUNvbHVtbnNXaWR0aCh0aGlzLm1vRGF0YUxpc3QpO1xuICAgICAgICB0aGlzLl9maXJlUmVzaXplQ2hhbmdlZCgpO1xuICAgIH1cbiAgICBvbkZpdFRvQ29sdW1uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhYmxlSGVhZGVyTW9kZSA9IFRhYmxlSGVhZGVyV2lkdGhNb2RlLkZpdFRvQ29sdW1uO1xuICAgICAgICB0aGlzLl9jYWxjdWxhdGVDb2x1bW5zV2lkdGgodGhpcy5tb0RhdGFMaXN0KTtcbiAgICAgICAgdGhpcy5fZmlyZVJlc2l6ZUNoYW5nZWQoKTtcbiAgICB9XG4gICAgb25GaXRUb0NvbnRlbnQoY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uKTogdm9pZCB7XG4gICAgICAgIHNldENvbHVtbldpZHRoQnlNYXhNb0NvbnRlbnRXaWR0aCh0aGlzLm1vRGF0YUxpc3QsIGNvbHVtbik7XG4gICAgICAgIHRoaXMuX2ZpcmVSZXNpemVDaGFuZ2VkKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZmlyZVJlc2l6ZUNoYW5nZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sdW1uUmVzaXplZC5lbWl0KHtcbiAgICAgICAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucyxcbiAgICAgICAgICAgIHJlc2l6ZWQ6IHRoaXMuY29sdW1ucy5tYXAoKGMpID0+ICh7IG5hbWU6IGMuTmFtZSwgd2lkdGg6IGMuV2lkdGggfSkpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2NhbGN1bGF0ZUNvbHVtbnNXaWR0aChtb0RhdGFMaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10sIGNvbHVtbnM/OiBSZXBvcnRWaWV3Q29sdW1uW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxEb20gPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBjYWxjUmVzdWx0ID0gY2FsY3VsYXRlV2lkdGhPZkxpc3RDb2x1bW4oXG4gICAgICAgICAgICBlbERvbSxcbiAgICAgICAgICAgIHRoaXMuc2hvd1ZpZXdCdXR0b24sXG4gICAgICAgICAgICB0aGlzLmNvbnRleHRNZW51SXRlbXMsXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51LFxuICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlck1vZGUsXG4gICAgICAgICAgICBtb0RhdGFMaXN0LFxuICAgICAgICAgICAgY29sdW1ucyB8fCB0aGlzLmNvbHVtbnNcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb250ZXh0TWVudVdpZHRoID0gY2FsY1Jlc3VsdC5jb250ZXh0TWVudVdpZHRoO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldFJvd0luZGljYXRvcihjb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjb2x1bW5zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvd0luZGljYXRvciA9IE51bWJlcihjb2x1bW5zWzBdLk1ldGFGaWVsZFR5cGVJZCkgPT09IDQxO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldEhlaWdodChwYXJlbnRIZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbkRpYWxvZykge1xuICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSBwYXJlbnRIZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRIYXNTdW1tZXJ5KGNhcnRhYmxlVGVtcGxhdGVzKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsc0NvbHVtbnM/Lmxlbmd0aCA+IDAgfHxcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsc0NvbXBvbmVudD8uU2VsZWN0b3IgfHxcbiAgICAgICAgICAgIChjYXJ0YWJsZVRlbXBsYXRlcyAmJiBPYmplY3Qua2V5cyhjYXJ0YWJsZVRlbXBsYXRlcykubGVuZ3RoID4gMClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dEZXRhaWxzSW5Sb3cgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5oYXNEZXRhaWxzSW5Sb3cuZW1pdCh0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGFzRGV0YWlsc0luUm93LmVtaXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfY29udGFpbmVyV2lkdGhDaGFuZ2VkKHZhbDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWwgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX3dpZHRoID0gJzEwMCUnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fd2lkdGggPSB2YWwgPyB2YWwgKyAncHgnIDogJzEwMCUnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCB0aGlzLl93aWR0aCk7XG4gICAgfVxufVxuIiwiPHRhYmxlXG4gICAgZmQtdGFibGVcbiAgICBbcG9wSW5dPVwicG9waW5cIlxuICAgIFtjbGFzcy50YWJsZS1maXhlZF09XCIhY29udGV4dFZpZXc/LkdyaWRfSGlkZUhlYWRlciAmJiAoIXBvcGluIHx8IHNlY29uZGFyeUNvbHVtbnMubGVuZ3RoID09PSAwKVwiXG4gICAgW25vQm9yZGVyWF09XCJ2aWV3U2V0dGluZz8uTm9Ib3JpenRvbmFsQm9yZGVycyA9PT0gdHJ1ZSB8fCAocG9waW4gJiYgc2Vjb25kYXJ5Q29sdW1ucy5sZW5ndGggPiAwKVwiXG4gICAgW25vQm9yZGVyWV09XCJ2aWV3U2V0dGluZz8uTm9WZXJ0aWNhbEJvcmRlcnMgPT09IHRydWUgfHwgKHBvcGluICYmIHNlY29uZGFyeUNvbHVtbnMubGVuZ3RoID4gMClcIlxuPlxuICAgIEBpZiAoY29sdW1ucyB8IG1lcmdlRmllbGRzVG9Db2x1bW5zOiB2aWV3U2V0dGluZz8uTWVyZ2VGaWVsZHNUb0NvbHVtbnM/Lk1vRGF0YUxpc3Q7IGFzIG1lcmdlRmllbGRzVG9Db2x1bW5zKSB7XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgaGVhZGVyVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogbWVyZ2VGaWVsZHNUb0NvbHVtbnMsIG1vRGF0YUxpc3RDb3VudDogbW9EYXRhTGlzdD8ubGVuZ3RoIH1cbiAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgQGlmIChtb0RhdGFMaXN0Py5sZW5ndGgpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYm9keVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbWVyZ2VGaWVsZHNUb0NvbHVtbnMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IG1lcmdlRmllbGRzVG9Db2x1bW5zIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9IH1cbjwvdGFibGU+XG48IS0tcmVuZGVyQ29sdW1uLS0+XG5cbkBpZiAoIW1vRGF0YUxpc3Q/Lmxlbmd0aCkge1xuPGJzdS1uby1kYXRhXG4gICAgW2NsYXNzLm5vLXRvcGJvcmRlcl09XCIhaGlkZVRvb2xiYXJcIlxuICAgIFtjbGFzcy5ub2JvcmRlcl09XCJjb250ZXh0Vmlldy5HcmlkX0hpZGVIZWFkZXIgJiYgaGlkZVRvb2xiYXJcIlxuICAgIFtzaW1wbGVdPVwidHJ1ZVwiXG4+XG48L2JzdS1uby1kYXRhPlxufVxuXG48bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlIGxldC1jb2x1bW5zIGxldC1tb0RhdGFMaXN0Q291bnQ+XG4gICAgPGJzdS1iYXJzYS10YWJsZS1oZWFkZXJcbiAgICAgICAgW2NsYXNzLmhhcy10b29sYmFyXT1cIiFoaWRlVG9vbGJhclwiXG4gICAgICAgIFtzdHlsZS5wb2ludGVyLWV2ZW50c109XCJtb0RhdGFMaXN0Q291bnQgPyAnYXV0bycgOiAnbm9uZSdcIlxuICAgICAgICBbdGFibGVXaWR0aF09XCJlbFdpZHRoXCJcbiAgICAgICAgW3Nob3dEZXRhaWxzSW5Sb3ddPVwic2hvd0RldGFpbHNJblJvd1wiXG4gICAgICAgIFtoaWRlT3Blbkljb25dPVwiaGlkZU9wZW5JY29uXCJcbiAgICAgICAgW3Jlc2l6ZWRCeVVzZXJdPVwicmVzaXplZEJ5VXNlclwiXG4gICAgICAgIFt0YWJsZUhlYWRlck1vZGVdPVwidGFibGVIZWFkZXJNb2RlXCJcbiAgICAgICAgW3Nob3dSb3dOdW1iZXJdPVwiY29udGV4dFZpZXc/LkdyaWRfU2hvd1Jvd051bWJlclwiXG4gICAgICAgIFthbGxDaGVja2VkXT1cImFsbENoZWNrZWRcIlxuICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgIFthY3Rpb25MaXN0XT1cImFjdGlvbkxpc3RcIlxuICAgICAgICBbZGlzYWJsZVJlc3BvbnNpdmVdPVwiZGlzYWJsZVJlc3BvbnNpdmVcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbZml0V2lkdGhdPVwiZml0V2lkdGhcIlxuICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2NvbnRleHRNZW51V2lkdGhdPVwiY29udGV4dE1lbnVXaWR0aFwiXG4gICAgICAgIFtzaG93Vmlld0J1dHRvbl09XCJzaG93Vmlld0J1dHRvblwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbdmlld1NldHRpbmddPVwidmlld1NldHRpbmdcIlxuICAgICAgICBbaGlkZUhlYWRlcl09XCJjb250ZXh0Vmlldy5HcmlkX0hpZGVIZWFkZXJcIlxuICAgICAgICBbcm93SW5kaWNhdG9yXT1cInJvd0luZGljYXRvclwiXG4gICAgICAgIChjb2x1bW5SZXNpemUpPVwib25Db2x1bW5SZXNpemVkKCRldmVudClcIlxuICAgICAgICAoZml0VG9Db250ZW50KT1cIm9uRml0VG9Db250ZW50KCRldmVudClcIlxuICAgICAgICAoZml0VG9Db250YWluZXIpPVwib25GaXRUb0NvbnRhaW5lcigpXCJcbiAgICAgICAgKGZpdFRvQ29sdW1uKT1cIm9uRml0VG9Db2x1bW4oKVwiXG4gICAgICAgIChhbGxDaGVja2JveCk9XCJvbkFsbENoZWNrYm94KCRldmVudClcIlxuICAgICAgICAoc29ydEFzY2VuZGluZyk9XCJvblNvcnRBc2NlbmRpbmcoJGV2ZW50KVwiXG4gICAgICAgIChzb3J0RGVzY2VuZGluZyk9XCJvblNvcnREZXNjZW5kaW5nKCRldmVudClcIlxuICAgICAgICAoZmlsdGVyKT1cIm9uRmlsdGVyKCRldmVudClcIlxuICAgID48L2JzdS1iYXJzYS10YWJsZS1oZWFkZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNib2R5VGVtcGxhdGUgbGV0LWNvbHVtbnM+XG4gICAgPHRib2R5XG4gICAgICAgIGZkLXRhYmxlLWJvZHlcbiAgICAgICAgW2NsYXNzLm5vYm9yZGVyXT1cInZpZXdTZXR0aW5nPy5Ob0JvZHlCb3JkZXJzID09PSB0cnVlXCJcbiAgICAgICAgW25vQm9yZGVyWF09XCIocG9waW4gJiYgc2Vjb25kYXJ5Q29sdW1ucy5sZW5ndGggPiAwKSB8fCB2aWV3U2V0dGluZz8uTm9WZXJ0aWNhbEJvcmRlcnMgIT09IGZhbHNlXCJcbiAgICAgICAgW25vQm9yZGVyWV09XCJwb3BpbiAmJiBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA+IDBcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIEBmb3IgKG1vIG9mIG1vRGF0YUxpc3QgfCBtdWx0aXBsZUdyb3VwQnk6IGdyb3VwYnk7IHRyYWNrIF90cmFja0J5Um93KGluZGV4LCBtbyk7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGhhc1Jvd09sZ28gPyByb3dPbGdvVGVtcGxhdGUgOiByb3dUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd051bWJlcjogbW8uSWQgfCByb3dOdW1iZXI6IHBhZ2luZ1NldHRpbmc6bW9EYXRhTGlzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0luZGljYXRvckNvbG9yOiAhY29sdW1ucy5sZW5ndGggPyAnJyA6IChjb2x1bW5zWzBdLkNhcHRpb24gfCBydmFsOiBtbzpjb2x1bW5zKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnMgfCBjb2x1bW5DdXN0b21Db21wb25lbnQ6IHZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzPy5Nb0RhdGFMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5Q29sdW1uczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlDb2x1bW5zIHwgY29sdW1uQ3VzdG9tQ29tcG9uZW50OiB2aWV3U2V0dGluZz8uQ29sdW1uQ29tcG9uZW50cz8uTW9EYXRhTGlzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vRGF0YUxpc3Q6IG1vRGF0YUxpc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0Q291bnQ6IG1vRGF0YUxpc3QubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FydGFibGVUZW1wbGF0ZTogY2FydGFibGVUZW1wbGF0ZXNbbW8uUmVsYXRlZE1vPy4kVHlwZURlZklkICsgJ0AnICsgbW8uQ2FydGFibGVTZXR0aW5ncz8uSWRdXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3Rib2R5PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGUgbGV0LWNvbHVtbnM+XG4gICAgQGlmIChoYXNTdW1tYXJ5KSB7XG4gICAgPHRmb290IGZkLXRhYmxlLWZvb3Rlcj5cbiAgICAgICAgPHRyIGZkLXRhYmxlLXJvdyBjbGFzcz1cInJvdy1zdW1tYXJ5XCI+XG4gICAgICAgICAgICBAaWYgKGlzQ2hlY2tMaXN0KSB7XG4gICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbCBjb2x1bW5SZXNpemVyPlxuICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJjb2wtdG90YWwtdGV4dFwiPnt7ICdUb3RhbCcgfCBiYmJUcmFuc2xhdGUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICB9IEBpZiAoIWlzQ2hlY2tMaXN0KSB7XG4gICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbCBjbGFzcz1cInNpbmdsZS1zZWxlY3RcIj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiY29sLXRvdGFsLXRleHRcIj57eyAnVG90YWwnIHwgYmJiVHJhbnNsYXRlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgfSBAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgY29sdW1uOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgIEBpZiAoY29sdW1uLkhhc1N1bW1hcnkpIHtcbiAgICAgICAgICAgICAgICA8c3Ryb25nIHN0eWxlPVwiZGlyZWN0aW9uOiBsdHI7IGRpc3BsYXk6IGJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG1vRGF0YUxpc3QgfCB0b3RhbFN1bW1hcnk6IGNvbHVtbi5OYW1lIHwgbnVtYmVyIH19PC9zdHJvbmdcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIH0gQGlmIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgc3R5bGU9XCJ3aWR0aDogMTAwcHhcIj48L3RkPlxuICAgICAgICAgICAgfSBAaWYgKCFoaWRlT3Blbkljb24gJiYgY2FuVmlldyAmJiAoIWlubGluZUVkaXRNb2RlIHx8ICFhbGxvd0lubGluZUVkaXQpKSB7XG4gICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbD48L3RkPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgIDwvdGZvb3Q+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZVxuICAgICNyb3dPbGdvVGVtcGxhdGVcbiAgICBsZXQtbW9cbiAgICBsZXQtaW5kZXg9XCJpbmRleFwiXG4gICAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcbiAgICBsZXQtbW9EYXRhTGlzdENvdW50PVwibW9EYXRhTGlzdENvdW50XCJcbiAgICBsZXQtbW9EYXRhTGlzdD1cIm1vRGF0YUxpc3RcIlxuICAgIGxldC1jYXJ0YWJsZVRlbXBsYXRlPVwiY2FydGFibGVUZW1wbGF0ZVwiXG4gICAgbGV0LXNlY29uZGFyeUNvbHVtbnM9XCJzZWNvbmRhcnlDb2x1bW5zXCJcbiAgICBsZXQtcm93SW5kaWNhdG9yQ29sb3I9XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4gICAgbGV0LXJvd051bWJlcj1cInJvd051bWJlclwiXG4+XG4gICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxuICAgICAgICBbY29tcG9uZW50XT1cInZpZXdTZXR0aW5nLlJvd09sZ29cIlxuICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICBbc2hvd1ZpZXdCdXR0b25dPVwic2hvd1ZpZXdCdXR0b25cIlxuICAgICAgICBbVWx2TWFpbkN0cmxyXT1cIlVsdk1haW5DdHJsclwiXG4gICAgICAgIFttb0RhdGFMaXN0XT1cIm1vRGF0YUxpc3RcIlxuICAgICAgICBbc2hvd0RldGFpbHNJblJvd109XCJzaG93RGV0YWlsc0luUm93XCJcbiAgICAgICAgW2hpZGVPcGVuSWNvbl09XCJoaWRlT3Blbkljb25cIlxuICAgICAgICBbZGV0YWlsc0NvbHVtbnNdPVwiZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbc2hvd1Jvd051bWJlcl09XCJjb250ZXh0Vmlldz8uR3JpZF9TaG93Um93TnVtYmVyXCJcbiAgICAgICAgW3Jvd051bWJlcl09XCJyb3dOdW1iZXJcIlxuICAgICAgICBbY29sdW1uQ29tcG9uZW50c109XCJ2aWV3U2V0dGluZz8uQ29sdW1uQ29tcG9uZW50cyB8fCBudWxsXCJcbiAgICAgICAgW2NhcnRhYmxlVGVtcGxhdGVdPVwiY2FydGFibGVUZW1wbGF0ZVwiXG4gICAgICAgIFtjYXJ0YWJsZU1vXT1cIm1vLlJlbGF0ZWRNb1wiXG4gICAgICAgIFtjYXJ0YWJsZVdvcmtmbG93RGF0YV09XCJtby5TZXJpYWxpemVkV29ya2Zsb3dEYXRhXCJcbiAgICAgICAgW3NlcmlhbGl6ZWRSZWxhdGVkTW9dPVwibW8uU2VyaWFsaXplZFJlbGF0ZWRNb1wiXG4gICAgICAgIFtkZXRhaWxzVGV4dF09XCJ2aWV3U2V0dGluZz8uRGV0YWlsc1NldHRpbmc/LkJ1dHRvblRleHRcIlxuICAgICAgICBbY29sb3JpbmdSb3ddPVwidmlld1NldHRpbmc/LkNvbG9yaW5nUm93XCJcbiAgICAgICAgW2RldGFpbHNDb21wb25lbnRdPVwiZGV0YWlsc0NvbXBvbmVudFwiXG4gICAgICAgIFtpc0NoZWNrZWRdPVwibW8uJElzQ2hlY2tlZFwiXG4gICAgICAgIFt2aXNpYmlsaXR5XT1cIm1vLiRWaXNpYmlsaXR5XCJcbiAgICAgICAgW2V4cGFuZGVkXT1cIm1vLiRFeHBhbmRlZFwiXG4gICAgICAgIFtzdHlsZUluZGV4XT1cIm1vLiRTdHlsZUluZGV4XCJcbiAgICAgICAgW2xldmVsXT1cIm1vLiRMZXZlbFwiXG4gICAgICAgIFtwYXJlbnRFeHBhbmRlZF09XCJtby4kUGFyZW50Py4kRXhwYW5kZWRcIlxuICAgICAgICBbbW9EYXRhTGlzdENvdW50XT1cIm1vRGF0YUxpc3RDb3VudFwiXG4gICAgICAgIFtjb2x1bW5zQ291bnRdPVwiY29sdW1uc0NvdW50IC0gZGV0YWlsc0NvbHVtbnMubGVuZ3RoXCJcbiAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICBbZXh0cmFSZWxhdGlvbl09XCJleHRyYVJlbGF0aW9uXCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW3NldHRpbmddPVwidmlld1NldHRpbmdcIlxuICAgICAgICBbc2Vjb25kYXJ5Q29sdW1uc109XCJzZWNvbmRhcnlDb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbaXNOZXdJbmxpbmVNb109XCJtby4kTmV3SW5saW5lTW9cIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFthbGxvd0lubGluZUVkaXRdPVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbcm93SW5kaWNhdG9yXT1cInJvd0luZGljYXRvclwiXG4gICAgICAgIFtyb3dJbmRpY2F0b3JDb2xvcl09XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4gICAgICAgIChldmVudHMpPVwib25PbGdvRXZlbnRzKCRldmVudClcIlxuICAgID5cbiAgICA8L2JucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGVcbiAgICAjcm93VGVtcGxhdGVcbiAgICBsZXQtbW9cbiAgICBsZXQtaW5kZXg9XCJpbmRleFwiXG4gICAgbGV0LXJvd051bWJlcj1cInJvd051bWJlclwiXG4gICAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcbiAgICBsZXQtbW9EYXRhTGlzdENvdW50PVwibW9EYXRhTGlzdENvdW50XCJcbiAgICBsZXQtbW9EYXRhTGlzdD1cIm1vRGF0YUxpc3RcIlxuICAgIGxldC1jYXJ0YWJsZVRlbXBsYXRlPVwiY2FydGFibGVUZW1wbGF0ZVwiXG4gICAgbGV0LXNlY29uZGFyeUNvbHVtbnM9XCJzZWNvbmRhcnlDb2x1bW5zXCJcbiAgICBsZXQtcm93SW5kaWNhdG9yQ29sb3I9XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4+XG4gICAgPGJzdS1iYXJzYS10YWJsZS1yb3dcbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgIFtVbHZNYWluQ3RybHJdPVwiVWx2TWFpbkN0cmxyXCJcbiAgICAgICAgW3Nob3dEZXRhaWxzSW5Sb3ddPVwic2hvd0RldGFpbHNJblJvd1wiXG4gICAgICAgIFtoaWRlT3Blbkljb25dPVwiaGlkZU9wZW5JY29uXCJcbiAgICAgICAgW3Nob3dSb3dOdW1iZXJdPVwiY29udGV4dFZpZXc/LkdyaWRfU2hvd1Jvd051bWJlclwiXG4gICAgICAgIFtyb3dOdW1iZXJdPVwicm93TnVtYmVyXCJcbiAgICAgICAgW2NvbG9yaW5nUm93XT1cInZpZXdTZXR0aW5nPy5Db2xvcmluZ1Jvd1wiXG4gICAgICAgIFtzaG93Vmlld0J1dHRvbl09XCJzaG93Vmlld0J1dHRvblwiXG4gICAgICAgIFtkZXRhaWxzQ29sdW1uc109XCJkZXRhaWxzQ29sdW1uc1wiXG4gICAgICAgIFtjb2x1bW5Db21wb25lbnRzXT1cInZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzIHx8IG51bGxcIlxuICAgICAgICBbY2FydGFibGVUZW1wbGF0ZV09XCJjYXJ0YWJsZVRlbXBsYXRlXCJcbiAgICAgICAgW2NhcnRhYmxlTW9dPVwibW8uUmVsYXRlZE1vXCJcbiAgICAgICAgW2NhcnRhYmxlV29ya2Zsb3dEYXRhXT1cIm1vLlNlcmlhbGl6ZWRXb3JrZmxvd0RhdGFcIlxuICAgICAgICBbc2VyaWFsaXplZFJlbGF0ZWRNb109XCJtby5TZXJpYWxpemVkUmVsYXRlZE1vXCJcbiAgICAgICAgW2RldGFpbHNUZXh0XT1cInZpZXdTZXR0aW5nPy5EZXRhaWxzU2V0dGluZz8uQnV0dG9uVGV4dFwiXG4gICAgICAgIFtkZXRhaWxzQ29tcG9uZW50XT1cImRldGFpbHNDb21wb25lbnRcIlxuICAgICAgICBbaXNDaGVja2VkXT1cIm1vLiRJc0NoZWNrZWRcIlxuICAgICAgICBbdmlzaWJpbGl0eV09XCJtby4kVmlzaWJpbGl0eVwiXG4gICAgICAgIFtleHBhbmRlZF09XCJtby4kRXhwYW5kZWRcIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXG4gICAgICAgIFtsZXZlbF09XCJtby4kTGV2ZWxcIlxuICAgICAgICBbcGFyZW50RXhwYW5kZWRdPVwibW8uJFBhcmVudD8uJEV4cGFuZGVkXCJcbiAgICAgICAgW21vRGF0YUxpc3RDb3VudF09XCJtb0RhdGFMaXN0Q291bnRcIlxuICAgICAgICBbY29sdW1uc0NvdW50XT1cImNvbHVtbnNDb3VudCAtIGRldGFpbHNDb2x1bW5zLmxlbmd0aFwiXG4gICAgICAgIFt0eXBlRGVmSWRdPVwidHlwZURlZklkXCJcbiAgICAgICAgW2V4dHJhUmVsYXRpb25dPVwiZXh0cmFSZWxhdGlvblwiXG4gICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFtzZXR0aW5nXT1cInZpZXdTZXR0aW5nXCJcbiAgICAgICAgW2NoZWNrYm94Q29tcG9uZW50XT1cInZpZXdTZXR0aW5nPy5DaGVja2JveENvbXBvbmVudFwiXG4gICAgICAgIFtzZWNvbmRhcnlDb2x1bW5zXT1cInNlY29uZGFyeUNvbHVtbnMgfCBmaWx0ZXJDb2x1bW5zQnlEZXRhaWxzOiBkZXRhaWxzQ29sdW1uc1wiXG4gICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBmaWx0ZXJDb2x1bW5zQnlEZXRhaWxzOiBkZXRhaWxzQ29sdW1uc1wiXG4gICAgICAgIFtpc05ld0lubGluZU1vXT1cIm1vLiROZXdJbmxpbmVNb1wiXG4gICAgICAgIFthY2Nlc3NdPVwiYWNjZXNzXCJcbiAgICAgICAgW2FjdGlvbkxpc3RdPVwiYWN0aW9uTGlzdFwiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFthbGxvd0lubGluZUVkaXRdPVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbcm93SW5kaWNhdG9yXT1cInJvd0luZGljYXRvclwiXG4gICAgICAgIFtyb3dJbmRpY2F0b3JDb2xvcl09XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4gICAgICAgIChyZXNldFdvcmtmbG93U3RhdGUpPVwicmVzZXRXb3JrZmxvd1N0YXRlLmVtaXQobW8pXCJcbiAgICAgICAgKGVzY2FwZUtleSk9XCJvbkVzY2FwZUtleSgkZXZlbnQpXCJcbiAgICAgICAgKGV4cGFuZENsaWNrKT1cIm9uRXhwYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChyb3dDaGVjayk9XCJvblJvd0NoZWNrKCRldmVudClcIlxuICAgICAgICAod29ya2Zsb3dTaGFyZUJ1dHRvbnMpPVwib25Xb3JrZmxvd1NoYXJlQnV0dG9ucygkZXZlbnQpXCJcbiAgICAgICAgKGRlc2VsZWN0QWxsKT1cIm9uRGVzZWxlY3RBbGwoKVwiXG4gICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxuICAgICAgICAodWx2Q29tbWFuZCk9XCJvblVsdkNvbW1hbmQoJGV2ZW50KVwiXG4gICAgICAgIChzZWxlY3ROZXh0SW5saW5lUmVjb3JkKT1cIm9uU2VsZWN0TmV4dElubGluZVJlY29yZCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxTYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsQ2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZSk9XCJvbkVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGNhcnRhYmxlRm9ybUNsb3NlZCk9XCJvbkNhcnRhYmxlRm9ybUNsb3NlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9ic3UtYmFyc2EtdGFibGUtcm93PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdGFibGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS10YWJsZS12aWV3L3VpLXRhYmxlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdGFibGUtdmlldy91aS10YWJsZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBSVIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdILHVCQUF1QixFQUV2QixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLGlDQUFpQyxFQUVqQyxvQkFBb0IsRUFDdkIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUFTOUIsTUFBTSxPQUFPLG9CQUNULFNBQVEsdUJBQTJDO0lBUHZEOztRQWdCb0MsV0FBTSxHQUFrQixJQUFJLENBQUM7UUFDNUIsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFDakUsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixtQkFBYyxHQUF1QixFQUFFLENBQUM7UUFJeEMscUJBQWdCLEdBQW1FLEVBQUUsQ0FBQztRQUV0RixvQkFBZSxHQUFHLG9CQUFvQixDQUFDLGNBQWMsQ0FBQztLQTRIekQ7SUEzSEcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0I7WUFDNUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFdBQVc7WUFDbEMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQztRQUMxQyxJQUFJLENB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Q0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7SUFDUyxzQkFBc0IsQ0FBQyxHQUFXO1FBQ3hDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDekIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzVDLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7OEdBOUlRLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDZZQzdCakMsNGhYQWdSQTs7MkZEblBhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTs4QkFNdEMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDMEIsTUFBTTtzQkFBckMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ0csU0FBUztzQkFBekMsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRWpyYXlPbGdvLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQsXG4gICAgUmVwb3J0Vmlld0NvbHVtbixcbiAgICBUYWJsZUhlYWRlcldpZHRoTW9kZSxcbiAgICBjYWxjdWxhdGVXaWR0aE9mTGlzdENvbHVtbixcbiAgICBzZXRDb2x1bW5XaWR0aEJ5TWF4TW9Db250ZW50V2lkdGgsXG4gICAgQ29sdW1uUmVzaXplZEFyZ3MsXG4gICAgY2FsY0NvbnRleHRNZW51V2lkdGhcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgVWlUYWJsZVZpZXdTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtdmlldyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVpLXRhYmxlLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS10YWJsZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91aS10YWJsZS12aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWlUYWJsZVZpZXdDb21wb25lbnRcbiAgICBleHRlbmRzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PFVpVGFibGVWaWV3U2V0dGluZz5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzXG57XG4gICAgQElucHV0KCkgY29sdW1uV2lkdGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSBtaW5XaWR0aDtcbiAgICBASW5wdXQoKSBtaW5IZWlnaHQ7XG4gICAgQElucHV0KCkgcm93UmVzaXplcjtcbiAgICBASW5wdXQoKSBlbmFibGVSZXNpemluZztcbiAgICBASW5wdXQoKSBkaXNhYmxlRml4ZWRUYWJsZUxheW91dDtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodC5weCcpIGhlaWdodDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtaGVpZ2h0JykgbWF4SGVpZ2h0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBfd2lkdGggPSAnMTAwJSc7XG4gICAgZGV0YWlsc0NvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXSA9IFtdO1xuICAgIGRldGFpbHNDb21wb25lbnQ6IEVqcmF5T2xnbztcbiAgICBzaG93RGV0YWlsc0luUm93OiBib29sZWFuO1xuICAgIGhhc1Jvd09sZ286IGJvb2xlYW47XG4gICAgY29sdW1uQ29tcG9uZW50czogeyBjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW47IGNvbXBvbmVudDogTWV0YW9iamVjdERhdGFNb2RlbCB9W10gPSBbXTtcbiAgICByb3dJbmRpY2F0b3I6IGJvb2xlYW47XG4gICAgdGFibGVIZWFkZXJNb2RlID0gVGFibGVIZWFkZXJXaWR0aE1vZGUuRml0VG9Db250YWluZXI7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGNvbnN0IGRldGFpbHNTZXR0aW5nID0gdGhpcy52aWV3U2V0dGluZz8uRGV0YWlsc1NldHRpbmc7XG4gICAgICAgIHRoaXMudGFibGVIZWFkZXJNb2RlID0gdGhpcy5ncmlkRnJlZUNvbHVtblNpemluZ1xuICAgICAgICAgICAgPyBUYWJsZUhlYWRlcldpZHRoTW9kZS5GaXRUb0NvbHVtblxuICAgICAgICAgICAgOiBUYWJsZUhlYWRlcldpZHRoTW9kZS5GaXRUb0NvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5oYXNSb3dPbGdvID0gdGhpcy52aWV3U2V0dGluZz8uUm93T2xnbz8uU2VsZWN0b3I7XG4gICAgICAgIHRoaXMubWF4SGVpZ2h0ID0gdGhpcy52aWV3U2V0dGluZz8uQm9keUhlaWdodDtcbiAgICAgICAgaWYgKGRldGFpbHNTZXR0aW5nKSB7XG4gICAgICAgICAgICB0aGlzLmRldGFpbHNDb21wb25lbnQgPSBkZXRhaWxzU2V0dGluZy5Db21wb25lbnQ7XG4gICAgICAgICAgICBkZXRhaWxzU2V0dGluZy5Db2x1bW5zLnNwbGl0KCcsJykuZm9yRWFjaCgoY29sdW1uTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5fZmluZENvbHVtbkJ5RGJOYW1lLnRyYW5zZm9ybSh0aGlzLmFsbENvbHVtbnMsIGNvbHVtbk5hbWUsIHRoaXMuc2Vjb25kYXJ5Q29sdW1ucyk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRldGFpbHNDb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXRIYXNTdW1tZXJ5KHRoaXMuY2FydGFibGVDaGlsZHNNbyk7XG4gICAgICAgIHRoaXMuX3NldEhlaWdodCh0aGlzLnBhcmVudEhlaWdodCk7XG4gICAgICAgIHRoaXMuX3NldFJvd0luZGljYXRvcih0aGlzLmNvbHVtbnMpO1xuICAgICAgICB0aGlzLl9jYWxjdWxhdGVDb2x1bW5zV2lkdGgodGhpcy5tb0RhdGFMaXN0KTtcbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlQ29sdW1uc1dpZHRoKHRoaXMubW9EYXRhTGlzdCk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBjb2x1bW5zLCBjYXJ0YWJsZVRlbXBsYXRlcywgcGFyZW50SGVpZ2h0LCBtb0RhdGFMaXN0LCBjb250ZXh0TWVudUl0ZW1zIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAoY29sdW1ucyAmJiAhY29sdW1ucy5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRlQ29sdW1uc1dpZHRoKHRoaXMubW9EYXRhTGlzdCwgY29sdW1ucy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fc2V0Um93SW5kaWNhdG9yKGNvbHVtbnMuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29udGV4dE1lbnVJdGVtcyAmJiAhY29udGV4dE1lbnVJdGVtcy5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0TWVudVdpZHRoID0gY2FsY0NvbnRleHRNZW51V2lkdGgoXG4gICAgICAgICAgICAgICAgY29udGV4dE1lbnVJdGVtcy5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhcnRhYmxlVGVtcGxhdGVzICYmICFjYXJ0YWJsZVRlbXBsYXRlcy5maXJzdENoYW5nZSAmJiAhdGhpcy5oYXNTdW1tYXJ5KSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRIYXNTdW1tZXJ5KGNhcnRhYmxlVGVtcGxhdGVzLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJlbnRIZWlnaHQgJiYgIXBhcmVudEhlaWdodC5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0SGVpZ2h0KHBhcmVudEhlaWdodC5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtb0RhdGFMaXN0ICYmIG1vRGF0YUxpc3QuY3VycmVudFZhbHVlLmxlbmd0aCA+IDAgJiYgIW1vRGF0YUxpc3QuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIC8vIHRoaXMuX2NhbGN1bGF0ZUNvbHVtbnNXaWR0aChtb0RhdGFMaXN0LmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgfVxuICAgIG9uQ29sdW1uUmVzaXplZChlOiBBcnJheTxDb2x1bW5SZXNpemVkQXJncz4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2Vjb25kYXJ5Q29sdW1ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc2l6ZWRCeVVzZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnRhYmxlSGVhZGVyTW9kZSA9IFRhYmxlSGVhZGVyV2lkdGhNb2RlLkZyZWVDb2x1bW5TaXplO1xuICAgICAgICB0aGlzLmNvbHVtblJlc2l6ZWQuZW1pdCh7IGNvbHVtbnM6IHRoaXMuY29sdW1ucywgcmVzaXplZDogZSB9KTtcbiAgICB9XG4gICAgb25GaXRUb0NvbnRhaW5lcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJsZUhlYWRlck1vZGUgPSBUYWJsZUhlYWRlcldpZHRoTW9kZS5GaXRUb0NvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlQ29sdW1uc1dpZHRoKHRoaXMubW9EYXRhTGlzdCk7XG4gICAgICAgIHRoaXMuX2ZpcmVSZXNpemVDaGFuZ2VkKCk7XG4gICAgfVxuICAgIG9uRml0VG9Db2x1bW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFibGVIZWFkZXJNb2RlID0gVGFibGVIZWFkZXJXaWR0aE1vZGUuRml0VG9Db2x1bW47XG4gICAgICAgIHRoaXMuX2NhbGN1bGF0ZUNvbHVtbnNXaWR0aCh0aGlzLm1vRGF0YUxpc3QpO1xuICAgICAgICB0aGlzLl9maXJlUmVzaXplQ2hhbmdlZCgpO1xuICAgIH1cbiAgICBvbkZpdFRvQ29udGVudChjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW4pOiB2b2lkIHtcbiAgICAgICAgc2V0Q29sdW1uV2lkdGhCeU1heE1vQ29udGVudFdpZHRoKHRoaXMubW9EYXRhTGlzdCwgY29sdW1uKTtcbiAgICAgICAgdGhpcy5fZmlyZVJlc2l6ZUNoYW5nZWQoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9maXJlUmVzaXplQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2x1bW5SZXNpemVkLmVtaXQoe1xuICAgICAgICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLFxuICAgICAgICAgICAgcmVzaXplZDogdGhpcy5jb2x1bW5zLm1hcCgoYykgPT4gKHsgbmFtZTogYy5OYW1lLCB3aWR0aDogYy5XaWR0aCB9KSlcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfY2FsY3VsYXRlQ29sdW1uc1dpZHRoKG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSwgY29sdW1ucz86IFJlcG9ydFZpZXdDb2x1bW5bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbERvbSA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNhbGNSZXN1bHQgPSBjYWxjdWxhdGVXaWR0aE9mTGlzdENvbHVtbihcbiAgICAgICAgICAgIGVsRG9tLFxuICAgICAgICAgICAgdGhpcy5zaG93Vmlld0J1dHRvbixcbiAgICAgICAgICAgIHRoaXMuY29udGV4dE1lbnVJdGVtcyxcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnUsXG4gICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyTW9kZSxcbiAgICAgICAgICAgIG1vRGF0YUxpc3QsXG4gICAgICAgICAgICBjb2x1bW5zIHx8IHRoaXMuY29sdW1uc1xuICAgICAgICApO1xuICAgICAgICB0aGlzLmNvbnRleHRNZW51V2lkdGggPSBjYWxjUmVzdWx0LmNvbnRleHRNZW51V2lkdGg7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0Um93SW5kaWNhdG9yKGNvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXSk6IHZvaWQge1xuICAgICAgICBpZiAoIWNvbHVtbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucm93SW5kaWNhdG9yID0gTnVtYmVyKGNvbHVtbnNbMF0uTWV0YUZpZWxkVHlwZUlkKSA9PT0gNDE7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0SGVpZ2h0KHBhcmVudEhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluRGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmhlaWdodCA9IHBhcmVudEhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldEhhc1N1bW1lcnkoY2FydGFibGVUZW1wbGF0ZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5kZXRhaWxzQ29sdW1ucz8ubGVuZ3RoID4gMCB8fFxuICAgICAgICAgICAgdGhpcy5kZXRhaWxzQ29tcG9uZW50Py5TZWxlY3RvciB8fFxuICAgICAgICAgICAgKGNhcnRhYmxlVGVtcGxhdGVzICYmIE9iamVjdC5rZXlzKGNhcnRhYmxlVGVtcGxhdGVzKS5sZW5ndGggPiAwKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0RldGFpbHNJblJvdyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmhhc0RldGFpbHNJblJvdy5lbWl0KHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oYXNEZXRhaWxzSW5Sb3cuZW1pdChmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9jb250YWluZXJXaWR0aENoYW5nZWQodmFsOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fd2lkdGggPSAnMTAwJSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl93aWR0aCA9IHZhbCA/IHZhbCArICdweCcgOiAnMTAwJSc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIHRoaXMuX3dpZHRoKTtcbiAgICB9XG59XG4iLCI8dGFibGVcbiAgICBmZC10YWJsZVxuICAgIFtwb3BJbl09XCJwb3BpblwiXG4gICAgW2NsYXNzLnRhYmxlLWZpeGVkXT1cIlxuICAgICAgICAhY29udGV4dFZpZXc/LkdyaWRfSGlkZUhlYWRlciAmJiAoIXBvcGluIHx8IHNlY29uZGFyeUNvbHVtbnMubGVuZ3RoID09PSAwKSAmJiAhZGlzYWJsZUZpeGVkVGFibGVMYXlvdXRcbiAgICBcIlxuICAgIFtub0JvcmRlclhdPVwidmlld1NldHRpbmc/Lk5vSG9yaXp0b25hbEJvcmRlcnMgPT09IHRydWUgfHwgKHBvcGluICYmIHNlY29uZGFyeUNvbHVtbnMubGVuZ3RoID4gMClcIlxuICAgIFtub0JvcmRlclldPVwidmlld1NldHRpbmc/Lk5vVmVydGljYWxCb3JkZXJzID09PSB0cnVlIHx8IChwb3BpbiAmJiBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA+IDApXCJcbj5cbiAgICBAaWYgKGNvbHVtbnMgfCBtZXJnZUZpZWxkc1RvQ29sdW1uczogdmlld1NldHRpbmc/Lk1lcmdlRmllbGRzVG9Db2x1bW5zPy5Nb0RhdGFMaXN0OyBhcyBtZXJnZUZpZWxkc1RvQ29sdW1ucykge1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGhlYWRlclRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IG1lcmdlRmllbGRzVG9Db2x1bW5zLCBtb0RhdGFMaXN0Q291bnQ6IG1vRGF0YUxpc3Q/Lmxlbmd0aCB9XG4gICAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIEBpZiAobW9EYXRhTGlzdD8ubGVuZ3RoKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvZHlUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IG1lcmdlRmllbGRzVG9Db2x1bW5zIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBtZXJnZUZpZWxkc1RvQ29sdW1ucyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfSB9XG48L3RhYmxlPlxuPCEtLXJlbmRlckNvbHVtbi0tPlxuXG5AaWYgKCFtb0RhdGFMaXN0Py5sZW5ndGgpIHtcbjxic3Utbm8tZGF0YVxuICAgIFtjbGFzcy5uby10b3Bib3JkZXJdPVwiIWhpZGVUb29sYmFyXCJcbiAgICBbY2xhc3Mubm9ib3JkZXJdPVwiY29udGV4dFZpZXcuR3JpZF9IaWRlSGVhZGVyICYmIGhpZGVUb29sYmFyXCJcbiAgICBbc2ltcGxlXT1cInRydWVcIlxuPlxuPC9ic3Utbm8tZGF0YT5cbn1cblxuPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZSBsZXQtY29sdW1ucyBsZXQtbW9EYXRhTGlzdENvdW50PlxuICAgIDxic3UtYmFyc2EtdGFibGUtaGVhZGVyXG4gICAgICAgIFtjbGFzcy5oYXMtdG9vbGJhcl09XCIhaGlkZVRvb2xiYXJcIlxuICAgICAgICBbc3R5bGUucG9pbnRlci1ldmVudHNdPVwibW9EYXRhTGlzdENvdW50ID8gJ2F1dG8nIDogJ25vbmUnXCJcbiAgICAgICAgW3RhYmxlV2lkdGhdPVwiZWxXaWR0aFwiXG4gICAgICAgIFtzaG93RGV0YWlsc0luUm93XT1cInNob3dEZXRhaWxzSW5Sb3dcIlxuICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXG4gICAgICAgIFtyZXNpemVkQnlVc2VyXT1cInJlc2l6ZWRCeVVzZXJcIlxuICAgICAgICBbdGFibGVIZWFkZXJNb2RlXT1cInRhYmxlSGVhZGVyTW9kZVwiXG4gICAgICAgIFtzaG93Um93TnVtYmVyXT1cImNvbnRleHRWaWV3Py5HcmlkX1Nob3dSb3dOdW1iZXJcIlxuICAgICAgICBbYWxsQ2hlY2tlZF09XCJhbGxDaGVja2VkXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbYWN0aW9uTGlzdF09XCJhY3Rpb25MaXN0XCJcbiAgICAgICAgW2Rpc2FibGVSZXNwb25zaXZlXT1cImRpc2FibGVSZXNwb25zaXZlXCJcbiAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1ucyB8IGZpbHRlckNvbHVtbnNCeURldGFpbHM6IGRldGFpbHNDb2x1bW5zXCJcbiAgICAgICAgW2ZpdFdpZHRoXT1cImZpdFdpZHRoXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW2lubGluZUVkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgIFtjb250ZXh0TWVudVdpZHRoXT1cImNvbnRleHRNZW51V2lkdGhcIlxuICAgICAgICBbc2hvd1ZpZXdCdXR0b25dPVwic2hvd1ZpZXdCdXR0b25cIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW3ZpZXdTZXR0aW5nXT1cInZpZXdTZXR0aW5nXCJcbiAgICAgICAgW2hpZGVIZWFkZXJdPVwiY29udGV4dFZpZXcuR3JpZF9IaWRlSGVhZGVyXCJcbiAgICAgICAgW3Jvd0luZGljYXRvcl09XCJyb3dJbmRpY2F0b3JcIlxuICAgICAgICAoY29sdW1uUmVzaXplKT1cIm9uQ29sdW1uUmVzaXplZCgkZXZlbnQpXCJcbiAgICAgICAgKGZpdFRvQ29udGVudCk9XCJvbkZpdFRvQ29udGVudCgkZXZlbnQpXCJcbiAgICAgICAgKGZpdFRvQ29udGFpbmVyKT1cIm9uRml0VG9Db250YWluZXIoKVwiXG4gICAgICAgIChmaXRUb0NvbHVtbik9XCJvbkZpdFRvQ29sdW1uKClcIlxuICAgICAgICAoYWxsQ2hlY2tib3gpPVwib25BbGxDaGVja2JveCgkZXZlbnQpXCJcbiAgICAgICAgKHNvcnRBc2NlbmRpbmcpPVwib25Tb3J0QXNjZW5kaW5nKCRldmVudClcIlxuICAgICAgICAoc29ydERlc2NlbmRpbmcpPVwib25Tb3J0RGVzY2VuZGluZygkZXZlbnQpXCJcbiAgICAgICAgKGZpbHRlcik9XCJvbkZpbHRlcigkZXZlbnQpXCJcbiAgICA+PC9ic3UtYmFyc2EtdGFibGUtaGVhZGVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjYm9keVRlbXBsYXRlIGxldC1jb2x1bW5zPlxuICAgIDx0Ym9keVxuICAgICAgICBmZC10YWJsZS1ib2R5XG4gICAgICAgIFtjbGFzcy5ub2JvcmRlcl09XCJ2aWV3U2V0dGluZz8uTm9Cb2R5Qm9yZGVycyA9PT0gdHJ1ZVwiXG4gICAgICAgIFtub0JvcmRlclhdPVwiKHBvcGluICYmIHNlY29uZGFyeUNvbHVtbnMubGVuZ3RoID4gMCkgfHwgdmlld1NldHRpbmc/Lk5vVmVydGljYWxCb3JkZXJzICE9PSBmYWxzZVwiXG4gICAgICAgIFtub0JvcmRlclldPVwicG9waW4gJiYgc2Vjb25kYXJ5Q29sdW1ucy5sZW5ndGggPiAwXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICBAZm9yIChtbyBvZiBtb0RhdGFMaXN0IHwgbXVsdGlwbGVHcm91cEJ5OiBncm91cGJ5OyB0cmFjayBfdHJhY2tCeVJvdyhpbmRleCwgbW8pOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBoYXNSb3dPbGdvID8gcm93T2xnb1RlbXBsYXRlIDogcm93VGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dOdW1iZXI6IG1vLklkIHwgcm93TnVtYmVyOiBwYWdpbmdTZXR0aW5nOm1vRGF0YUxpc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dJbmRpY2F0b3JDb2xvcjogIWNvbHVtbnMubGVuZ3RoID8gJycgOiAoY29sdW1uc1swXS5DYXB0aW9uIHwgcnZhbDogbW86Y29sdW1ucyksXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zOiBjb2x1bW5zIHwgY29sdW1uQ3VzdG9tQ29tcG9uZW50OiB2aWV3U2V0dGluZz8uQ29sdW1uQ29tcG9uZW50cz8uTW9EYXRhTGlzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUNvbHVtbnM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5Q29sdW1ucyB8IGNvbHVtbkN1c3RvbUNvbXBvbmVudDogdmlld1NldHRpbmc/LkNvbHVtbkNvbXBvbmVudHM/Lk1vRGF0YUxpc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0OiBtb0RhdGFMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdENvdW50OiBtb0RhdGFMaXN0Lmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcnRhYmxlVGVtcGxhdGU6IGNhcnRhYmxlVGVtcGxhdGVzW21vLlJlbGF0ZWRNbz8uJFR5cGVEZWZJZCArICdAJyArIG1vLkNhcnRhYmxlU2V0dGluZ3M/LklkXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90Ym9keT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlIGxldC1jb2x1bW5zPlxuICAgIEBpZiAoaGFzU3VtbWFyeSkge1xuICAgIDx0Zm9vdCBmZC10YWJsZS1mb290ZXI+XG4gICAgICAgIDx0ciBmZC10YWJsZS1yb3cgY2xhc3M9XCJyb3ctc3VtbWFyeVwiPlxuICAgICAgICAgICAgQGlmIChpc0NoZWNrTGlzdCkge1xuICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgY29sdW1uUmVzaXplcj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiY29sLXRvdGFsLXRleHRcIj57eyAnVG90YWwnIHwgYmJiVHJhbnNsYXRlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgfSBAaWYgKCFpc0NoZWNrTGlzdCkge1xuICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImNvbC10b3RhbC10ZXh0XCI+e3sgJ1RvdGFsJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIH0gQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrIGNvbHVtbjsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICBAaWYgKGNvbHVtbi5IYXNTdW1tYXJ5KSB7XG4gICAgICAgICAgICAgICAgPHN0cm9uZyBzdHlsZT1cImRpcmVjdGlvbjogbHRyOyBkaXNwbGF5OiBibG9ja1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyBtb0RhdGFMaXN0IHwgdG90YWxTdW1tYXJ5OiBjb2x1bW4uTmFtZSB8IG51bWJlciB9fTwvc3Ryb25nXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICB9IEBpZiAoY29udGV4dE1lbnVJdGVtcyAmJiBjb250ZXh0TWVudUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsIHN0eWxlPVwid2lkdGg6IDEwMHB4XCI+PC90ZD5cbiAgICAgICAgICAgIH0gQGlmICghaGlkZU9wZW5JY29uICYmIGNhblZpZXcgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KSkge1xuICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGw+PC90ZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC90cj5cbiAgICA8L3Rmb290PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGVcbiAgICAjcm93T2xnb1RlbXBsYXRlXG4gICAgbGV0LW1vXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiXG4gICAgbGV0LW1vRGF0YUxpc3RDb3VudD1cIm1vRGF0YUxpc3RDb3VudFwiXG4gICAgbGV0LW1vRGF0YUxpc3Q9XCJtb0RhdGFMaXN0XCJcbiAgICBsZXQtY2FydGFibGVUZW1wbGF0ZT1cImNhcnRhYmxlVGVtcGxhdGVcIlxuICAgIGxldC1zZWNvbmRhcnlDb2x1bW5zPVwic2Vjb25kYXJ5Q29sdW1uc1wiXG4gICAgbGV0LXJvd0luZGljYXRvckNvbG9yPVwicm93SW5kaWNhdG9yQ29sb3JcIlxuICAgIGxldC1yb3dOdW1iZXI9XCJyb3dOdW1iZXJcIlxuPlxuICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcbiAgICAgICAgW2NvbXBvbmVudF09XCJ2aWV3U2V0dGluZy5Sb3dPbGdvXCJcbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW3Nob3dWaWV3QnV0dG9uXT1cInNob3dWaWV3QnV0dG9uXCJcbiAgICAgICAgW1Vsdk1haW5DdHJscl09XCJVbHZNYWluQ3RybHJcIlxuICAgICAgICBbbW9EYXRhTGlzdF09XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgW3Nob3dEZXRhaWxzSW5Sb3ddPVwic2hvd0RldGFpbHNJblJvd1wiXG4gICAgICAgIFtoaWRlT3Blbkljb25dPVwiaGlkZU9wZW5JY29uXCJcbiAgICAgICAgW2RldGFpbHNDb2x1bW5zXT1cImRldGFpbHNDb2x1bW5zXCJcbiAgICAgICAgW3Nob3dSb3dOdW1iZXJdPVwiY29udGV4dFZpZXc/LkdyaWRfU2hvd1Jvd051bWJlclwiXG4gICAgICAgIFtyb3dOdW1iZXJdPVwicm93TnVtYmVyXCJcbiAgICAgICAgW2NvbHVtbkNvbXBvbmVudHNdPVwidmlld1NldHRpbmc/LkNvbHVtbkNvbXBvbmVudHMgfHwgbnVsbFwiXG4gICAgICAgIFtjYXJ0YWJsZVRlbXBsYXRlXT1cImNhcnRhYmxlVGVtcGxhdGVcIlxuICAgICAgICBbY2FydGFibGVNb109XCJtby5SZWxhdGVkTW9cIlxuICAgICAgICBbY2FydGFibGVXb3JrZmxvd0RhdGFdPVwibW8uU2VyaWFsaXplZFdvcmtmbG93RGF0YVwiXG4gICAgICAgIFtzZXJpYWxpemVkUmVsYXRlZE1vXT1cIm1vLlNlcmlhbGl6ZWRSZWxhdGVkTW9cIlxuICAgICAgICBbZGV0YWlsc1RleHRdPVwidmlld1NldHRpbmc/LkRldGFpbHNTZXR0aW5nPy5CdXR0b25UZXh0XCJcbiAgICAgICAgW2NvbG9yaW5nUm93XT1cInZpZXdTZXR0aW5nPy5Db2xvcmluZ1Jvd1wiXG4gICAgICAgIFtkZXRhaWxzQ29tcG9uZW50XT1cImRldGFpbHNDb21wb25lbnRcIlxuICAgICAgICBbaXNDaGVja2VkXT1cIm1vLiRJc0NoZWNrZWRcIlxuICAgICAgICBbdmlzaWJpbGl0eV09XCJtby4kVmlzaWJpbGl0eVwiXG4gICAgICAgIFtleHBhbmRlZF09XCJtby4kRXhwYW5kZWRcIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXG4gICAgICAgIFtsZXZlbF09XCJtby4kTGV2ZWxcIlxuICAgICAgICBbcGFyZW50RXhwYW5kZWRdPVwibW8uJFBhcmVudD8uJEV4cGFuZGVkXCJcbiAgICAgICAgW21vRGF0YUxpc3RDb3VudF09XCJtb0RhdGFMaXN0Q291bnRcIlxuICAgICAgICBbY29sdW1uc0NvdW50XT1cImNvbHVtbnNDb3VudCAtIGRldGFpbHNDb2x1bW5zLmxlbmd0aFwiXG4gICAgICAgIFt0eXBlRGVmSWRdPVwidHlwZURlZklkXCJcbiAgICAgICAgW2V4dHJhUmVsYXRpb25dPVwiZXh0cmFSZWxhdGlvblwiXG4gICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFtzZXR0aW5nXT1cInZpZXdTZXR0aW5nXCJcbiAgICAgICAgW3NlY29uZGFyeUNvbHVtbnNdPVwic2Vjb25kYXJ5Q29sdW1ucyB8IGZpbHRlckNvbHVtbnNCeURldGFpbHM6IGRldGFpbHNDb2x1bW5zXCJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1ucyB8IGZpbHRlckNvbHVtbnNCeURldGFpbHM6IGRldGFpbHNDb2x1bW5zXCJcbiAgICAgICAgW2lzTmV3SW5saW5lTW9dPVwibW8uJE5ld0lubGluZU1vXCJcbiAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgIFtjYW5WaWV3XT1cImNhblZpZXdcIlxuICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgIFtuYXZpZ2F0aW9uQXJyb3ddPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgW3Jvd0luZGljYXRvcl09XCJyb3dJbmRpY2F0b3JcIlxuICAgICAgICBbcm93SW5kaWNhdG9yQ29sb3JdPVwicm93SW5kaWNhdG9yQ29sb3JcIlxuICAgICAgICAoZXZlbnRzKT1cIm9uT2xnb0V2ZW50cygkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9ibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnQ+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlXG4gICAgI3Jvd1RlbXBsYXRlXG4gICAgbGV0LW1vXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1yb3dOdW1iZXI9XCJyb3dOdW1iZXJcIlxuICAgIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiXG4gICAgbGV0LW1vRGF0YUxpc3RDb3VudD1cIm1vRGF0YUxpc3RDb3VudFwiXG4gICAgbGV0LW1vRGF0YUxpc3Q9XCJtb0RhdGFMaXN0XCJcbiAgICBsZXQtY2FydGFibGVUZW1wbGF0ZT1cImNhcnRhYmxlVGVtcGxhdGVcIlxuICAgIGxldC1zZWNvbmRhcnlDb2x1bW5zPVwic2Vjb25kYXJ5Q29sdW1uc1wiXG4gICAgbGV0LXJvd0luZGljYXRvckNvbG9yPVwicm93SW5kaWNhdG9yQ29sb3JcIlxuPlxuICAgIDxic3UtYmFyc2EtdGFibGUtcm93XG4gICAgICAgIFttb109XCJtb1wiXG4gICAgICAgIFttb0RhdGFMaXN0XT1cIm1vRGF0YUxpc3RcIlxuICAgICAgICBbVWx2TWFpbkN0cmxyXT1cIlVsdk1haW5DdHJsclwiXG4gICAgICAgIFtzaG93RGV0YWlsc0luUm93XT1cInNob3dEZXRhaWxzSW5Sb3dcIlxuICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXG4gICAgICAgIFtzaG93Um93TnVtYmVyXT1cImNvbnRleHRWaWV3Py5HcmlkX1Nob3dSb3dOdW1iZXJcIlxuICAgICAgICBbcm93TnVtYmVyXT1cInJvd051bWJlclwiXG4gICAgICAgIFtjb2xvcmluZ1Jvd109XCJ2aWV3U2V0dGluZz8uQ29sb3JpbmdSb3dcIlxuICAgICAgICBbc2hvd1ZpZXdCdXR0b25dPVwic2hvd1ZpZXdCdXR0b25cIlxuICAgICAgICBbZGV0YWlsc0NvbHVtbnNdPVwiZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbY29sdW1uQ29tcG9uZW50c109XCJ2aWV3U2V0dGluZz8uQ29sdW1uQ29tcG9uZW50cyB8fCBudWxsXCJcbiAgICAgICAgW2NhcnRhYmxlVGVtcGxhdGVdPVwiY2FydGFibGVUZW1wbGF0ZVwiXG4gICAgICAgIFtjYXJ0YWJsZU1vXT1cIm1vLlJlbGF0ZWRNb1wiXG4gICAgICAgIFtjYXJ0YWJsZVdvcmtmbG93RGF0YV09XCJtby5TZXJpYWxpemVkV29ya2Zsb3dEYXRhXCJcbiAgICAgICAgW3NlcmlhbGl6ZWRSZWxhdGVkTW9dPVwibW8uU2VyaWFsaXplZFJlbGF0ZWRNb1wiXG4gICAgICAgIFtkZXRhaWxzVGV4dF09XCJ2aWV3U2V0dGluZz8uRGV0YWlsc1NldHRpbmc/LkJ1dHRvblRleHRcIlxuICAgICAgICBbZGV0YWlsc0NvbXBvbmVudF09XCJkZXRhaWxzQ29tcG9uZW50XCJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJtby4kSXNDaGVja2VkXCJcbiAgICAgICAgW3Zpc2liaWxpdHldPVwibW8uJFZpc2liaWxpdHlcIlxuICAgICAgICBbZXhwYW5kZWRdPVwibW8uJEV4cGFuZGVkXCJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwibW8uJFN0eWxlSW5kZXhcIlxuICAgICAgICBbbGV2ZWxdPVwibW8uJExldmVsXCJcbiAgICAgICAgW3BhcmVudEV4cGFuZGVkXT1cIm1vLiRQYXJlbnQ/LiRFeHBhbmRlZFwiXG4gICAgICAgIFttb0RhdGFMaXN0Q291bnRdPVwibW9EYXRhTGlzdENvdW50XCJcbiAgICAgICAgW2NvbHVtbnNDb3VudF09XCJjb2x1bW5zQ291bnQgLSBkZXRhaWxzQ29sdW1ucy5sZW5ndGhcIlxuICAgICAgICBbdHlwZURlZklkXT1cInR5cGVEZWZJZFwiXG4gICAgICAgIFtleHRyYVJlbGF0aW9uXT1cImV4dHJhUmVsYXRpb25cIlxuICAgICAgICBbZm9ybVNldHRpbmddPVwiZm9ybVNldHRpbmdcIlxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbc2V0dGluZ109XCJ2aWV3U2V0dGluZ1wiXG4gICAgICAgIFtjaGVja2JveENvbXBvbmVudF09XCJ2aWV3U2V0dGluZz8uQ2hlY2tib3hDb21wb25lbnRcIlxuICAgICAgICBbc2Vjb25kYXJ5Q29sdW1uc109XCJzZWNvbmRhcnlDb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbaXNOZXdJbmxpbmVNb109XCJtby4kTmV3SW5saW5lTW9cIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFthY3Rpb25MaXN0XT1cImFjdGlvbkxpc3RcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgIFtjYW5WaWV3XT1cImNhblZpZXdcIlxuICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgIFtuYXZpZ2F0aW9uQXJyb3ddPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgW3Jvd0luZGljYXRvcl09XCJyb3dJbmRpY2F0b3JcIlxuICAgICAgICBbcm93SW5kaWNhdG9yQ29sb3JdPVwicm93SW5kaWNhdG9yQ29sb3JcIlxuICAgICAgICAocmVzZXRXb3JrZmxvd1N0YXRlKT1cInJlc2V0V29ya2Zsb3dTdGF0ZS5lbWl0KG1vKVwiXG4gICAgICAgIChlc2NhcGVLZXkpPVwib25Fc2NhcGVLZXkoJGV2ZW50KVwiXG4gICAgICAgIChleHBhbmRDbGljayk9XCJvbkV4cGFuZENsaWNrKCRldmVudClcIlxuICAgICAgICAocm93Q2hlY2spPVwib25Sb3dDaGVjaygkZXZlbnQpXCJcbiAgICAgICAgKHdvcmtmbG93U2hhcmVCdXR0b25zKT1cIm9uV29ya2Zsb3dTaGFyZUJ1dHRvbnMoJGV2ZW50KVwiXG4gICAgICAgIChkZXNlbGVjdEFsbCk9XCJvbkRlc2VsZWN0QWxsKClcIlxuICAgICAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcbiAgICAgICAgKHVsdkNvbW1hbmQpPVwib25VbHZDb21tYW5kKCRldmVudClcIlxuICAgICAgICAoc2VsZWN0TmV4dElubGluZVJlY29yZCk9XCJvblNlbGVjdE5leHRJbmxpbmVSZWNvcmQoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsU2F2ZSk9XCJvbkVkaXRGb3JtUGFuZWxTYXZlKCRldmVudClcIlxuICAgICAgICAoZWRpdEZvcm1QYW5lbENhbmNlbCk9XCJvbkVkaXRGb3JtUGFuZWxDYW5jZWwoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UpPVwib25FZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChjYXJ0YWJsZUZvcm1DbG9zZWQpPVwib25DYXJ0YWJsZUZvcm1DbG9zZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYnN1LWJhcnNhLXRhYmxlLXJvdz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|