@huntsman-cancer-institute/reporting-framework 15.0.3 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/datepicker/report-datepicker.component.d.ts +1 -1
  2. package/{esm2020 → esm2022}/datepicker/report-datepicker.component.mjs +8 -8
  3. package/{esm2020 → esm2022}/format/format.component.mjs +6 -6
  4. package/{esm2020 → esm2022}/parameter/parameter.component.mjs +6 -6
  5. package/{esm2020 → esm2022}/report.module.mjs +29 -29
  6. package/{esm2020 → esm2022}/reporting-framework.component.mjs +6 -6
  7. package/{esm2020 → esm2022}/resizable-divider/resizable-section-divider.component.mjs +6 -6
  8. package/{esm2020 → esm2022}/spinner/dialogs.service.mjs +4 -4
  9. package/{esm2020 → esm2022}/spinner/spinner-dialog.component.mjs +6 -6
  10. package/{fesm2020 → fesm2022}/huntsman-cancer-institute-reporting-framework.mjs +63 -63
  11. package/{fesm2020 → fesm2022}/huntsman-cancer-institute-reporting-framework.mjs.map +1 -1
  12. package/format/format.component.d.ts +1 -1
  13. package/package.json +14 -18
  14. package/reporting-framework.component.d.ts +1 -1
  15. package/resizable-divider/resizable-section-divider.component.d.ts +1 -1
  16. package/spinner/spinner-dialog.component.d.ts +1 -1
  17. package/fesm2015/huntsman-cancer-institute-reporting-framework.mjs +0 -1430
  18. package/fesm2015/huntsman-cancer-institute-reporting-framework.mjs.map +0 -1
  19. /package/{esm2020 → esm2022}/huntsman-cancer-institute-reporting-framework.mjs +0 -0
  20. /package/{esm2020 → esm2022}/index.mjs +0 -0
  21. /package/{esm2020 → esm2022}/model/format.model.mjs +0 -0
  22. /package/{esm2020 → esm2022}/model/option.model.mjs +0 -0
  23. /package/{esm2020 → esm2022}/model/param.model.mjs +0 -0
  24. /package/{esm2020 → esm2022}/model/report-tab.model.mjs +0 -0
  25. /package/{esm2020 → esm2022}/model/report.model.mjs +0 -0
@@ -399,9 +399,8 @@ export class ReportingFrameworkComponent {
399
399
  ngOnDestroy() {
400
400
  this.destroyComponentRefs();
401
401
  }
402
- }
403
- ReportingFrameworkComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ReportingFrameworkComponent, deps: [{ token: i1.HttpClient }, { token: i0.ComponentFactoryResolver }, { token: i2.DatePipe }, { token: i3.DialogsService }, { token: i4.NgbModal }], target: i0.ɵɵFactoryTarget.Component });
404
- ReportingFrameworkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ReportingFrameworkComponent, selector: "hci-reporting-framework", inputs: { manageReportUrl: "manageReportUrl", commandPrefix: "commandPrefix", dictAPILeadIn: "dictAPILeadIn", reportsByType: "reportsByType" }, viewQueries: [{ propertyName: "paramContainer", first: true, predicate: ["paramContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "formatContainer", first: true, predicate: ["formatContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: `
402
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReportingFrameworkComponent, deps: [{ token: i1.HttpClient }, { token: i0.ComponentFactoryResolver }, { token: i2.DatePipe }, { token: i3.DialogsService }, { token: i4.NgbModal }], target: i0.ɵɵFactoryTarget.Component }); }
403
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ReportingFrameworkComponent, selector: "hci-reporting-framework", inputs: { manageReportUrl: "manageReportUrl", commandPrefix: "commandPrefix", dictAPILeadIn: "dictAPILeadIn", reportsByType: "reportsByType" }, viewQueries: [{ propertyName: "paramContainer", first: true, predicate: ["paramContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "formatContainer", first: true, predicate: ["formatContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: `
405
404
  <div style="height: 100vh">
406
405
  <resizable-section-divider class="flex-grow-1" [isVerticalLayout]="true">
407
406
  <div topSection class="d-flex flex-column" style="height: 100%; width: 100%; overflow: auto;">
@@ -503,8 +502,9 @@ ReportingFrameworkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
503
502
  </div>
504
503
  </ng-template>
505
504
 
506
- `, isInline: true, styles: [":host ::ng-deep .mat-tab-body-wrapper{flex-grow:1}:host ::ng-deep .mat-tab-label{background-color:#98c7e0}:host ::ng-deep .mat-tab-label-active{background-color:#def4ff}.report-details{height:100%;width:100%;position:absolute}.center-row{margin-top:10px;margin-left:60vw}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "component", type: i5.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "directive", type: i5.MatLegacyTabContent, selector: "[matTabContent]" }, { kind: "component", type: i6.AgGridAngular, selector: "ag-grid-angular", inputs: ["statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "maintainColumnOrder", "suppressFieldDotNotation", "deltaColumnMode", "applyColumnDefOrder", "immutableColumns", "suppressSetColumnStateEvents", "suppressColumnStateEvents", "colWidth", "minColWidth", "maxColWidth", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "components", "frameworkComponents", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "undoRedoCellEditing", "undoRedoCellEditingLimit", "stopEditingWhenGridLosesFocus", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "defaultExportParams", "quickFilterText", "cacheQuickFilter", "excludeChildrenWhenTreeDataFiltering", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "loadingCellRenderer", "loadingCellRendererFramework", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererFramework", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentFramework", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentFramework", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "fullWidthCellRenderer", "fullWidthCellRendererFramework", "fullWidthCellRendererParams", "embedFullWidthRows", "deprecatedEmbedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererFramework", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "groupRowInnerRenderer", "groupRowInnerRendererFramework", "groupMultiAutoColumn", "groupUseEntireRow", "groupSuppressAutoColumn", "rememberGroupStateWhenNewData", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "immutableData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "deltaRowDataMode", "batchUpdateWaitMillis", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideStoreType", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortingAlwaysResets", "serverSideFilteringAlwaysResets", "suppressEnterpriseResetOnNewColumns", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "deltaSort", "treeDataDisplayType", "angularCompileRows", "angularCompileFilters", "functionsPassive", "enableGroupEdit", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "suppressKeyboardEvent", "localeTextFunc", "getLocaleText", "getDocument", "paginationNumberFormatter", "groupRowAggNodes", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "defaultGroupOrderComparator", "processSecondaryColDef", "processSecondaryColGroupDef", "getDataPath", "defaultGroupSortComparator", "getChildCount", "getServerSideStoreParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowNodeId", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSort", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthCell", "isFullWidthRow", "gridOptions", "modules"], outputs: ["toolPanelVisibleChanged", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "filterOpened", "filterChanged", "filterModified", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "cellKeyPress", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "component", type: i7.ResizableSectionDividerComponent, selector: "resizable-section-divider", inputs: ["initialPercentage", "isVerticalLayout", "maxPercentage", "minPercentage"] }] });
507
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ReportingFrameworkComponent, decorators: [{
505
+ `, isInline: true, styles: [":host ::ng-deep .mat-tab-body-wrapper{flex-grow:1}:host ::ng-deep .mat-tab-label{background-color:#98c7e0}:host ::ng-deep .mat-tab-label-active{background-color:#def4ff}.report-details{height:100%;width:100%;position:absolute}.center-row{margin-top:10px;margin-left:60vw}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "component", type: i5.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "directive", type: i5.MatLegacyTabContent, selector: "[matTabContent]" }, { kind: "component", type: i6.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "maintainColumnOrder", "suppressFieldDotNotation", "deltaColumnMode", "applyColumnDefOrder", "immutableColumns", "suppressSetColumnStateEvents", "suppressColumnStateEvents", "colWidth", "minColWidth", "maxColWidth", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "components", "frameworkComponents", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "stopEditingWhenGridLosesFocus", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "defaultExportParams", "quickFilterText", "cacheQuickFilter", "excludeChildrenWhenTreeDataFiltering", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererFramework", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererFramework", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentFramework", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentFramework", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererFramework", "fullWidthCellRendererParams", "embedFullWidthRows", "deprecatedEmbedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererFramework", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "groupRowsSticky", "groupRowInnerRenderer", "groupRowInnerRendererFramework", "groupMultiAutoColumn", "groupUseEntireRow", "groupSuppressAutoColumn", "rememberGroupStateWhenNewData", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "immutableData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "deltaRowDataMode", "batchUpdateWaitMillis", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "serverSideStoreType", "serverSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSideSortingAlwaysResets", "serverSideFilteringAlwaysResets", "suppressEnterpriseResetOnNewColumns", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "deltaSort", "treeDataDisplayType", "angularCompileRows", "angularCompileFilters", "functionsPassive", "enableGroupEdit", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "suppressKeyboardEvent", "localeTextFunc", "getLocaleText", "getDocument", "paginationNumberFormatter", "groupRowAggNodes", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "defaultGroupOrderComparator", "processSecondaryColDef", "processSecondaryColGroupDef", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "defaultGroupSortComparator", "getChildCount", "getServerSideGroupLevelParams", "getServerSideStoreParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowNodeId", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSort", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthCell", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "filterOpened", "filterChanged", "filterModified", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "cellKeyPress", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "component", type: i7.ResizableSectionDividerComponent, selector: "resizable-section-divider", inputs: ["initialPercentage", "isVerticalLayout", "maxPercentage", "minPercentage"] }] }); }
506
+ }
507
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReportingFrameworkComponent, decorators: [{
508
508
  type: Component,
509
509
  args: [{ selector: "hci-reporting-framework", template: `
510
510
  <div style="height: 100vh">
@@ -624,4 +624,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
624
624
  type: ViewChild,
625
625
  args: ["formatContainer", { read: ViewContainerRef, static: false }]
626
626
  }] } });
627
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0aW5nLWZyYW1ld29yay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRpbmctZnJhbWV3b3JrL3NyYy9yZXBvcnRpbmctZnJhbWV3b3JrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHdCQUF3QixFQUN4QixLQUFLLEVBRUwsU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDekUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7QUFxSXpELE1BQU0sT0FBTywyQkFBMkI7SUFvQ3BDLFlBQW9CLElBQWdCLEVBQ2hCLFFBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLFlBQXNC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Q0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVnRSxjQUFjO3NCQUFuRixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ0csZUFBZTtzQkFBckYsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeSxcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLFxyXG4gICAgSW5wdXQsIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBQYXJhbXN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge1JlcG9ydH0gZnJvbSBcIi4vbW9kZWwvcmVwb3J0Lm1vZGVsXCI7XHJcbmltcG9ydCB7UGFyYW19IGZyb20gXCIuL21vZGVsL3BhcmFtLm1vZGVsXCI7XHJcbmltcG9ydCB7UGFyYW1ldGVyQ29tcG9uZW50fSBmcm9tIFwiLi9wYXJhbWV0ZXIvcGFyYW1ldGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge09wdGlvbn0gZnJvbSBcIi4vbW9kZWwvb3B0aW9uLm1vZGVsXCI7XHJcbmltcG9ydCB7UmVwb3J0VGFifSBmcm9tIFwiLi9tb2RlbC9yZXBvcnQtdGFiLm1vZGVsXCI7XHJcbmltcG9ydCB7Rm9ybWF0fSBmcm9tIFwiLi9tb2RlbC9mb3JtYXQubW9kZWxcIjtcclxuaW1wb3J0IHtGb3JtYXRDb21wb25lbnR9IGZyb20gXCIuL2Zvcm1hdC9mb3JtYXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtNb2RhbERpc21pc3NSZWFzb25zLCBOZ2JNb2RhbH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7RGlhbG9nc1NlcnZpY2V9IGZyb20gXCIuL3NwaW5uZXIvZGlhbG9ncy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiaGNpLXJlcG9ydGluZy1mcmFtZXdvcmtcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwMHZoXCI+XHJcbiAgICAgICAgPHJlc2l6YWJsZS1zZWN0aW9uLWRpdmlkZXIgY2xhc3M9XCJmbGV4LWdyb3ctMVwiIFtpc1ZlcnRpY2FsTGF5b3V0XT1cInRydWVcIj5cclxuICAgICAgICAgIDxkaXYgdG9wU2VjdGlvbiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGF1dG87XCI+XHJcbiAgICAgICAgICAgIDwhLS1jYW4gd3JhcCBqdXN0IHRoZSBncmlkIHdpdGggdGhlIHRhYnMtLT5cclxuICAgICAgICAgICAgPG1hdC10YWItZ3JvdXAgKm5nSWY9XCJ0YWJMaXN0Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cInt7dGFiLnRpdGxlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uVGFiYmVkR3JpZFJlYWR5KCRldmVudCwgdGFiLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cInRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XHJcblxyXG4gICAgICAgICAgICA8IS0tbmdiLXRhYnNldCAqbmdJZj1cInRhYkxpc3QubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Ryb3lPbkhpZGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0YWJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICNyZXBvcnRUYWJTZXQ9XCJuZ2JUYWJzZXRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG5nYi10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBpZD1cInt7dGFiLm5hbWV9fVwiIHRpdGxlPVwie3t0YWIudGl0bGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJib3JkZXI6IDVweCBzb2xpZDtcIiA+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiVGFiQ29udGVudCA+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uVGFiYmVkR3JpZFJlYWR5KCRldmVudCwgdGFiLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cInRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9uZ2ItdGFiPlxyXG5cclxuICAgICAgICAgICAgPC9uZ2ItdGFic2V0LS0+XHJcblxyXG4gICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyICpuZ0lmPVwidGFiTGlzdC5sZW5ndGggPD0gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uTWFpbkdyaWRSZWFkeSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cImZ1bGxHcmlkTGlzdFwiPlxyXG4gICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBib3R0b21TZWN0aW9uIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCIgc3R5bGU9XCJoZWlnaHQ6IDgwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDI1cHg7IGZvbnQtd2VpZ2h0OiBib2xkXCI+e3tzZWxlY3RlZFJlcG9ydC50aXRsZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiAqbmdJZj1cInNlbGVjdGVkUmVwb3J0LmhlbHAgJiYgc2VsZWN0ZWRSZXBvcnQuaGVscCAhPSAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSGVscChjb250ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1xdWVzdGlvbi1jaXJjbGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDx0ZW1wbGF0ZSAjcGFyYW1Db250YWluZXI+PC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY2VudGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPHRlbXBsYXRlICNmb3JtYXRDb250YWluZXI+PC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWxlY3RlZFJlcG9ydC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUnVuUmVwb3J0KClcIlxyXG4gICAgICAgICAgICAgICAgPlJ1biBSZXBvcnQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3Jlc2l6YWJsZS1zZWN0aW9uLWRpdmlkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQgbGV0LW1vZGFsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJoZWxwLW1vZGVsLXRpdGxlXCI+UmVwb3J0IEhlbHA8L2g0PlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKCdDcm9zcyBjbGljaycpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBbaW5uZXJIVE1MXT1cInNlbGVjdGVkUmVwb3J0LmhlbHBcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoJ09rIGNsaWNrJylcIj5PSzwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgXHJcbiAgICAgIDpob3N0IDo6bmctZGVlcCAubWF0LXRhYi1ib2R5LXdyYXBwZXJ7XHJcbiAgICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICA6aG9zdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWx7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk4YzdlMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgOmhvc3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZXtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVmNGZmO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucmVwb3J0LWRldGFpbHN7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2VudGVyLXJvd3tcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2MHZ3O1xyXG4gICAgICB9XHJcbiAgICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0aW5nRnJhbWV3b3JrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIEBJbnB1dCgpIG1hbmFnZVJlcG9ydFVybDogc3RyaW5nOyAvLyAvYXJ0YWRtaW4vbGVnYWN5L2FwaS9oY2kuYXJ0YWRtaW4uY29udHJvbGxlci5NYW5hZ2VSZXBvcnRzXHJcbiAgICBASW5wdXQoKSBjb21tYW5kUHJlZml4OiBzdHJpbmc7IC8vICAvYXJ0YWRtaW4vbGVnYWN5L2FwaS9qc3BcclxuICAgIEBJbnB1dCgpIGRpY3RBUElMZWFkSW46IHN0cmluZzsgLy8gL2FydGFkbWluL2FwaS9kaWN0aW9uYXJpZXNcclxuICAgIEBJbnB1dCgpIHJlcG9ydHNCeVR5cGU6IHN0cmluZzsgLy9vcHRpb25hbC4gdXN1YWxseSBcImdsb2JhbFwiIG9yIFwicGF0aWVudFwiXHJcblxyXG4gICAgQFZpZXdDaGlsZChcInBhcmFtQ29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlfSkgcGFyYW1Db250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgICBAVmlld0NoaWxkKFwiZm9ybWF0Q29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlfSkgZm9ybWF0Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICAgIGZ1bGxHcmlkTGlzdDogYW55W10gPSBbXTtcclxuICAgIHRhYmJlZEdyaWRMaXN0OiBhbnkgPSB7fTtcclxuXHJcblxyXG4gICAgZ3JpZE9wdGlvbnMgPSB7XHJcbiAgICAgIHJvd1N0eWxlOiB7XHJcbiAgICAgICAgXCJmb250LWZhbWlseVwiOiBcIlByb21wdCwgc2Fucy1zZXJpZlwiXHJcbiAgICAgIH0sXHJcbiAgICAgIHJvd0hlaWdodDogMjAsXHJcbiAgICAgIGVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uOiB0cnVlLFxyXG4gICAgICBlbnN1cmVEb21PcmRlcjogdHJ1ZVxyXG4gICAgfTsgLy9lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiBzaG91bGQgYmUgY29tYmluZWQgd2l0aCBlbnN1cmVEb21PcmRlclxyXG4gICAgZnJhbWV3b3JrQ29tcG9uZW50czogYW55O1xyXG5cclxuICAgIG1haW5HcmlkQXBpOiBHcmlkQXBpO1xyXG4gICAgdGFiYmVkR3JpZEFwaUxpc3Q6IGFueSA9IHt9OyAvL2EgbWFwIG9mIEdyaWRBUElzIHRvIHRhYiBuYW1lc1xyXG5cclxuICAgIHJlcG9ydExpc3Q6IFJlcG9ydFtdID0gW107XHJcbiAgICB0YWJMaXN0OiBSZXBvcnRUYWJbXSA9IFtdO1xyXG4gICAgdGFiVHlwZU5hbWVMb29rdXA6IGFueSA9IHt9OyAvL2Ega2luZCBvZiBkaWN0IHRoYXQgbWFwcyB0aGUgdGFiIG9yIHR5cGUgdG8gdGhlIHRhYi1uYW1lXHJcblxyXG4gICAgc2VsZWN0ZWRSZXBvcnQ6IFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgIHNlbGVjdGVkRm9ybWF0OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5ZWRQYXJhbUNvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcclxuICAgIGRpc3BsYXllZEZvcm1hdENvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGlhbG9nc1NlcnZpY2U6IERpYWxvZ3NTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5tYW5hZ2VSZXBvcnRVcmwgIT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLm1hbmFnZVJlcG9ydFVybCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiYWN0aW9uXCIsIFwibG9hZFdpdGhQYXJhbXNcIilcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wbGlzdCA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wVGFiYmVkR3JpZExpc3QgPSB7fTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhYmxpc3QgPSByZXNwW1wicmVwb3J0VGFic1wiXTtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCByb3cgb2YgdGFibGlzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFiOiBSZXBvcnRUYWIgPSBuZXcgUmVwb3J0VGFiKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5uYW1lID0gcm93Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi50aXRsZSA9IHJvdy50aXRsZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnR5cGUgPSByb3cudHlwZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnRhYiA9IHJvdy50YWI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5kYXRha2V5ID0gcm93LmRhdGFrZXk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMucmVwb3J0c0J5VHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJMaXN0LnB1c2godGFiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWIudGFiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudGFiXSA9IHRhYi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhYi50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudHlwZV0gPSB0YWIubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVwb3J0c0J5VHlwZSA9PSB0YWIudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiTGlzdC5wdXNoKHRhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudGFiXSA9IHRhYi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFiR3JpZExpc3Q6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiYmVkR3JpZExpc3RbdGFiLm5hbWVdID0gdGFiR3JpZExpc3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUYWJiZWRHcmlkTGlzdFt0YWIubmFtZV0gPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IHJlc3BbXCJyZXBvcnRMaXN0XCJdO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGxpc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHJvdyBvZiBsaXN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXBvcnQ6IFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0Lm5hbWUgPSByb3cubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LnRpdGxlID0gcm93LnRpdGxlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZGVzY3JpcHRpb24gPSByb3cuZGVzY3JpcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5jbGFzc05hbWUgPSByb3cuY2xhc3NOYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZmlsZU5hbWUgPSByb3cuZmlsZU5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC50eXBlID0gcm93LnR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC50YWIgPSByb3cudGFiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZGF0YWtleSA9IHJvdy5kYXRha2V5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuaGVscCA9IHJvdy5oZWxwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JqZWN0ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcmVwb3J0Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcmVwb3J0LnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHJlcG9ydC5kZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0YWJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0LnRhYikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibmFtZSA9IHRoaXMudGFiVHlwZU5hbWVMb29rdXBbcmVwb3J0LnRhYl07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucmVwb3J0c0J5VHlwZSAmJiByZXBvcnQudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibmFtZSA9IHRoaXMudGFiVHlwZU5hbWVMb29rdXBbcmVwb3J0LnR5cGVdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFibmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyaWRsaXN0OiBhbnlbXSA9IHRlbXBUYWJiZWRHcmlkTGlzdFt0YWJuYW1lXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0LnR5cGUgPT09IHRoaXMucmVwb3J0c0J5VHlwZSApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZGxpc3QucHVzaChvYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJhbXMgPSByb3cucGFyYW1zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcCBvZiBwYXJhbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3UGFyYW06IFBhcmFtID0gbmV3IFBhcmFtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uZGljdEFQSUxlYWRJbiA9IHRoaXMuZGljdEFQSUxlYWRJbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uY2FwdGlvbiA9IHAuY2FwdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5uYW1lID0gcC5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLnR5cGUgPSBwLnR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uY2xhc3NOYW1lID0gcC5jbGFzc05hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0udmFsdWVYUGF0aCA9IHAudmFsdWVYUGF0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5WFBhdGggPSBwLmRpc3BsYXlYUGF0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5T3JkZXIgPSBwLmRpc3BsYXlPcmRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5hY3RpdmVPbmx5ID0gcC5hY3RpdmVPbmx5O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3UGFyYW0udmFsdWVYUGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS52YWx1ZVhQYXRoID0gbmV3UGFyYW0udmFsdWVYUGF0aC5yZXBsYWNlKFwiQFwiLCBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1BhcmFtLmRpc3BsYXlYUGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5WFBhdGggPSBuZXdQYXJhbS5kaXNwbGF5WFBhdGgucmVwbGFjZShcIkBcIiwgXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9ucyA9IHAub3B0aW9ucztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbyBvZiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3T3B0aW9uOiBPcHRpb24gPSBuZXcgT3B0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb24udmFsdWUgPSBvLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3T3B0aW9uLmRpc3BsYXkgPSBvLmRpc3BsYXk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb24uZGlzcGxheU9yZGVyID0gby5kaXNwbGF5T3JkZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0ub3B0aW9ucy5wdXNoKG5ld09wdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXJhbXMucHVzaChuZXdQYXJhbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmb3JtYXRzID0gcm93LmZvcm1hdHM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtYXRzKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgZiBvZiBmb3JtYXRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld0Zvcm1hdDogRm9ybWF0ID0gbmV3IEZvcm1hdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5uYW1lID0gZi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5jYXB0aW9uID0gZi5jYXB0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5kaXNwbGF5T3JkZXIgPSBmLmRpc3BsYXlPcmRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmZvcm1hdHMucHVzaChuZXdGb3JtYXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXBvcnRMaXN0LnB1c2gocmVwb3J0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlcG9ydC50eXBlID09PSB0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnVsbEdyaWRMaXN0ID0gdGVtcGxpc3Quc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImdyaWRsaXN0OiBcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5mdWxsR3JpZExpc3QpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IobGV0IHRhYiBvZiB0aGlzLnRhYkxpc3Qpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXSA9IHRlbXBUYWJiZWRHcmlkTGlzdFt0YWIubmFtZV0uc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29sdW1uRGVmKCkgOiBhbnlbXSB7XHJcbiAgICAgIHJldHVybiBbXHJcblxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkOiBcInRpdGxlXCIsXHJcbiAgICAgICAgICBoZWFkZXJOYW1lOiBcIlRpdGxlXCIsXHJcbiAgICAgICAgICB3aWR0aDogMzAwLFxyXG4gICAgICAgICAgc29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgICBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkOiBcImRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICBoZWFkZXJOYW1lOiBcIkRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZX1cclxuICAgICAgXTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgb25NYWluR3JpZFJlYWR5KHBhcmFtcyA6IGFueSkge1xyXG5cclxuICAgICAgdGhpcy5tYWluR3JpZEFwaSA9IHBhcmFtcy5hcGk7XHJcbiAgICAgIHRoaXMubWFpbkdyaWRBcGkuc2V0Q29sdW1uRGVmcyh0aGlzLmNvbHVtbkRlZigpKTtcclxuICAgICAgdGhpcy5tYWluR3JpZEFwaS5zZXRSb3dEYXRhKHRoaXMuZnVsbEdyaWRMaXN0KTtcclxuICAgICAgdGhpcy5tYWluR3JpZEFwaS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25UYWJiZWRHcmlkUmVhZHkocGFyYW1zIDogYW55LCB0YWJuYW1lOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgIHRoaXMudGFiYmVkR3JpZEFwaUxpc3RbdGFibmFtZV0gPSBwYXJhbXMuYXBpO1xyXG4gICAgICB0aGlzLnRhYmJlZEdyaWRBcGlMaXN0W3RhYm5hbWVdLnNldENvbHVtbkRlZnModGhpcy5jb2x1bW5EZWYoKSk7XHJcbiAgICAgIHRoaXMudGFiYmVkR3JpZEFwaUxpc3RbdGFibmFtZV0uc2V0Um93RGF0YSh0aGlzLnRhYmJlZEdyaWRMaXN0W3RhYm5hbWVdKTtcclxuICAgICAgdGhpcy50YWJiZWRHcmlkQXBpTGlzdFt0YWJuYW1lXS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2VsZWN0ZWRSb3coZXZlbnQpIHtcclxuXHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhldmVudCk7XHJcbiAgICAgICAgaWYoZXZlbnQubm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgbGV0IHJlcG9ydE5hbWUgPSBldmVudC5ub2RlLmRhdGEubmFtZTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGV2ZW50Lm5vZGUuZGF0YS5uYW1lKTtcclxuXHJcbiAgICAgICAgICB2YXIgbWF0Y2hlZFJlcG9ydDogUmVwb3J0O1xyXG4gICAgICAgICAgZm9yIChsZXQgciBvZiB0aGlzLnJlcG9ydExpc3QpIHtcclxuICAgICAgICAgICAgaWYgKHIubmFtZSA9PSByZXBvcnROYW1lKSB7XHJcbiAgICAgICAgICAgICAgbWF0Y2hlZFJlcG9ydCA9IHI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAobWF0Y2hlZFJlcG9ydCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZXBvcnQgPSBtYXRjaGVkUmVwb3J0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZVBhcmFtQ29tcG9uZW50cygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVQYXJhbUNvbXBvbmVudHMoKSB7XHJcbiAgICAgICAgaWYodGhpcy5wYXJhbUNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLnBhcmFtQ29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMuZm9ybWF0Q29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL2Rlc3Ryb3kgcHJldmlvdXMgY29tcG9uZW50cyBhbmQgY2xlYXIgdGhlIGRpc3BsYXllZFJlZiBsaXN0cy4uP1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudFJlZnMoKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXllZFBhcmFtQ29tcG9uZW50UmVmcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheWVkRm9ybWF0Q29tcG9uZW50UmVmcyA9IFtdO1xyXG5cclxuICAgICAgICBmb3IobGV0IHAgb2YgdGhpcy5zZWxlY3RlZFJlcG9ydC5wYXJhbXMpe1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxQYXJhbWV0ZXJDb21wb25lbnQ+ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQYXJhbWV0ZXJDb21wb25lbnQpO1xyXG4gICAgICAgICAgICB2YXIgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8UGFyYW1ldGVyQ29tcG9uZW50PiA9IHRoaXMucGFyYW1Db250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZFBhcmFtQ29tcG9uZW50UmVmcy5wdXNoKGNvbXBvbmVudFJlZik7XHJcblxyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2V0UGFyYW0ocCk7XHJcblxyXG4gICAgICAgICAgICBpZihwLm9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJpZXM6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IG8gb2YgcC5vcHRpb25zKXtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IHtpZDogby52YWx1ZSwgZGlzcGxheTogby5kaXNwbGF5fTtcclxuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzLnB1c2goZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZW50cmllcyA9IGVudHJpZXM7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgZmlyc3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgICAgIGZvcihsZXQgZiBvZiB0aGlzLnNlbGVjdGVkUmVwb3J0LmZvcm1hdHMpe1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmFjdG9yeTI6IENvbXBvbmVudEZhY3Rvcnk8Rm9ybWF0Q29tcG9uZW50PiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRm9ybWF0Q29tcG9uZW50KTtcclxuICAgICAgICAgICAgdmFyIGNvbXBvbmVudFJlZjI6IENvbXBvbmVudFJlZjxGb3JtYXRDb21wb25lbnQ+ID0gdGhpcy5mb3JtYXRDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkyKTtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRGb3JtYXRDb21wb25lbnRSZWZzLnB1c2goY29tcG9uZW50UmVmMik7XHJcblxyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYyLmluc3RhbmNlLmZvcm1hdCA9IGY7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZjIuaW5zdGFuY2Uuc2VsZWN0ZWRWYWx1ZUNoYW5nZS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtYXQgPSBzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpZihmaXJzdCkgey8vc2VsZWN0IHRoZSBmaXJzdCBmb3JtYXQgaW4gdGhlIGdyb3VwaW5nXHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYyLmluc3RhbmNlLnNlbGVjdGVkVmFsdWUgPSBmLm5hbWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRm9ybWF0ID0gZi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG9wZW5IZWxwKGNvbnRlbnQpIHtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbihjb250ZW50LCB7YXJpYUxhYmVsbGVkQnk6IFwiaGVscC1tb2RhbC10aXRsZVwifSlcclxuICAgICAgICAgICAgLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgLy8gdGhpcy5jbG9zZVJlc3VsdCA9IGBDbG9zZWQgd2l0aDogJHtyZXN1bHR9YDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcclxuXHJcbiAgICAgICAgfSwgKHJlYXNvbikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgY2xvc2VSZXN1bHQgPSBgRGlzbWlzc2VkICR7dGhpcy5nZXREaXNtaXNzUmVhc29uKHJlYXNvbil9YDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coY2xvc2VSZXN1bHQpO1xyXG5cclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXREaXNtaXNzUmVhc29uKHJlYXNvbjogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAocmVhc29uID09PSBNb2RhbERpc21pc3NSZWFzb25zLkVTQykge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJieSBwcmVzc2luZyBFU0NcIjtcclxuICAgICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9PT0gTW9kYWxEaXNtaXNzUmVhc29ucy5CQUNLRFJPUF9DTElDSykge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJieSBjbGlja2luZyBvbiBhIGJhY2tkcm9wXCI7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuICBgd2l0aDogJHtyZWFzb259YDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25SdW5SZXBvcnQoKSB7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRSZXBvcnQpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nc1NlcnZpY2Uuc3RhcnREZWZhdWx0U3Bpbm5lckRpYWxvZygpO1xyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmb3JtYXQ6XCIgKyB0aGlzLnNlbGVjdGVkRm9ybWF0KTtcclxuICAgICAgICAgICAgaWYoIXRoaXMuc2VsZWN0ZWRGb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtYXQgPSBcImh0bWxcIjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IHJ1blBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgICAgIHJ1blBhcmFtcyA9IHJ1blBhcmFtcy5hcHBlbmQoXCJmb3JtYXRcIiwgdGhpcy5zZWxlY3RlZEZvcm1hdCk7XHJcbiAgICAgICAgICAgIHJ1blBhcmFtcyA9IHJ1blBhcmFtcy5hcHBlbmQoXCJhY3Rpb25cIiwgXCJzaG93XCIpO1xyXG4gICAgICAgICAgICBydW5QYXJhbXMgPSBydW5QYXJhbXMuYXBwZW5kKFwicmVwb3J0TmFtZVwiLCB0aGlzLnNlbGVjdGVkUmVwb3J0Lm5hbWUpO1xyXG5cclxuICAgICAgICAgICAgcnVuUGFyYW1zID0gdGhpcy5nZXRSdW5QYXJhbWV0ZXJzKHJ1blBhcmFtcyk7XHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhydW5QYXJhbXMpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLmNvbW1hbmRQcmVmaXggKyB0aGlzLnNlbGVjdGVkUmVwb3J0LmNsYXNzTmFtZSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHJ1blBhcmFtcyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiBcInJlc3BvbnNlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiBcImJsb2JcIlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgZmlsZW5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5zZWxlY3RlZEZvcm1hdCAhPSBcImh0bWxcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IHJlcy5oZWFkZXJzLmdldChcImNvbnRlbnQtZGlzcG9zaXRpb25cIikuc3BsaXQoXCI7XCIpWzFdLnNwbGl0KFwiPVwiKVsxXS5yZXBsYWNlKC9cXFwiL2csIFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtyZXMuYm9keV0sIHt0eXBlOiByZXMuYm9keS50eXBlfSApOyAvLywge3R5cGU6IFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZpbGVVUkwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhmaWxlVVJMKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYTogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuICAgICAgICAgICAgICAgICAgICBhLmhyZWYgPSBmaWxlVVJMO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRGb3JtYXQgPT0gXCJodG1sXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYS50YXJnZXQgPSBcIl9ibGFua1wiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcclxuICAgICAgICAgICAgICAgICAgICBhLmNsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChmaWxlVVJMKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dzU2VydmljZS5zdG9wQWxsU3Bpbm5lckRpYWxvZ3MoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UnVuUGFyYW1ldGVycyhydW5QYXJhbXM6IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcclxuICAgICAgICB2YXIgbmV3UGFyYW1zID0gcnVuUGFyYW1zO1xyXG5cclxuICAgICAgICBmb3IobGV0IG8gb2YgdGhpcy5kaXNwbGF5ZWRQYXJhbUNvbXBvbmVudFJlZnMpe1xyXG4gICAgICAgICAgICB2YXIgcGFyYW0gPSBvLmluc3RhbmNlLnBhcmFtO1xyXG5cclxuICAgICAgICAgICAgaWYocGFyYW0udHlwZSA9PSBcIm11bHRpc2VsZWN0XCIpIHtcclxuICAgICAgICAgICAgICAgIHZhciByZXNMaXN0ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgdiBvZiBwYXJhbS5zZWxlY3RlZFZhbHVlTGlzdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYocmVzTGlzdCAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc0xpc3QgKz0gXCIsXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc0xpc3QgKz0gdjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG5ld1BhcmFtcyA9IG5ld1BhcmFtcy5hcHBlbmQocGFyYW0ubmFtZSwgcmVzTGlzdCk7XHJcbiAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIGlmKHBhcmFtLnNlbGVjdGVkVmFsdWUpIHsgLy9zbyB3ZSBkb24ndCBnZXQgXCJ1bmRlZmluZWRcIiBzZW50IGJhY2tcclxuICAgICAgICAgICAgICAgICAgICBpZihwYXJhbS50eXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXREYXRlU3RyaW5nKHBhcmFtLnNlbGVjdGVkVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJhbS5zZWxlY3RlZFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBuZXdQYXJhbXMgPSBuZXdQYXJhbXMuYXBwZW5kKHBhcmFtLm5hbWUsIHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERhdGVTdHJpbmcoZGF0ZTogYW55KTogc3RyaW5nIHtcclxuXHJcbiAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgXCJNTS9kZC95eXl5XCIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZSBpZihtb21lbnQuaXNNb21lbnQoZGF0ZSkgKSB7XHJcbiAgICAgICAgICAgIGlmKGRhdGUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUuZm9ybWF0KFwiTS9EL1lZWVlcIik7XHJcbiAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2UgaWYodHlwZW9mIGRhdGUgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95Q29tcG9uZW50UmVmcygpIHtcclxuICAgICAgZm9yKGxldCBvIG9mIHRoaXMuZGlzcGxheWVkUGFyYW1Db21wb25lbnRSZWZzKXtcclxuICAgICAgICBvLmRlc3Ryb3koKTtcclxuICAgICAgfVxyXG4gICAgICBmb3IobGV0IG8gb2YgdGhpcy5kaXNwbGF5ZWRGb3JtYXRDb21wb25lbnRSZWZzKXtcclxuICAgICAgICBvLmRlc3Ryb3koKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudFJlZnMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgc3R5bGVzOiBbYFxyXG4gICAgICAucmVwb3J0LWRldGFpbHN7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2VudGVyLXJvd3tcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2MHZ3O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubWF0LXRhYi1ib2R5LXdyYXBwZXJ7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgfVxyXG5cclxuLnRhYi1wYW5le1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5gXSovXHJcbn1cclxuIl19
627
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0aW5nLWZyYW1ld29yay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRpbmctZnJhbWV3b3JrL3NyYy9yZXBvcnRpbmctZnJhbWV3b3JrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHdCQUF3QixFQUN4QixLQUFLLEVBRUwsU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDekUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7QUFxSXpELE1BQU0sT0FBTywyQkFBMkI7SUFvQ3BDLFlBQW9CLElBQWdCLEVBQ2hCLFFBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLFlBQXNC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Q0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVnRSxjQUFjO3NCQUFuRixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ0csZUFBZTtzQkFBckYsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeSxcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLFxyXG4gICAgSW5wdXQsIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBQYXJhbXN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge1JlcG9ydH0gZnJvbSBcIi4vbW9kZWwvcmVwb3J0Lm1vZGVsXCI7XHJcbmltcG9ydCB7UGFyYW19IGZyb20gXCIuL21vZGVsL3BhcmFtLm1vZGVsXCI7XHJcbmltcG9ydCB7UGFyYW1ldGVyQ29tcG9uZW50fSBmcm9tIFwiLi9wYXJhbWV0ZXIvcGFyYW1ldGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge09wdGlvbn0gZnJvbSBcIi4vbW9kZWwvb3B0aW9uLm1vZGVsXCI7XHJcbmltcG9ydCB7UmVwb3J0VGFifSBmcm9tIFwiLi9tb2RlbC9yZXBvcnQtdGFiLm1vZGVsXCI7XHJcbmltcG9ydCB7Rm9ybWF0fSBmcm9tIFwiLi9tb2RlbC9mb3JtYXQubW9kZWxcIjtcclxuaW1wb3J0IHtGb3JtYXRDb21wb25lbnR9IGZyb20gXCIuL2Zvcm1hdC9mb3JtYXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtNb2RhbERpc21pc3NSZWFzb25zLCBOZ2JNb2RhbH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7RGlhbG9nc1NlcnZpY2V9IGZyb20gXCIuL3NwaW5uZXIvZGlhbG9ncy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiaGNpLXJlcG9ydGluZy1mcmFtZXdvcmtcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwMHZoXCI+XHJcbiAgICAgICAgPHJlc2l6YWJsZS1zZWN0aW9uLWRpdmlkZXIgY2xhc3M9XCJmbGV4LWdyb3ctMVwiIFtpc1ZlcnRpY2FsTGF5b3V0XT1cInRydWVcIj5cclxuICAgICAgICAgIDxkaXYgdG9wU2VjdGlvbiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGF1dG87XCI+XHJcbiAgICAgICAgICAgIDwhLS1jYW4gd3JhcCBqdXN0IHRoZSBncmlkIHdpdGggdGhlIHRhYnMtLT5cclxuICAgICAgICAgICAgPG1hdC10YWItZ3JvdXAgKm5nSWY9XCJ0YWJMaXN0Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cInt7dGFiLnRpdGxlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uVGFiYmVkR3JpZFJlYWR5KCRldmVudCwgdGFiLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cInRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XHJcblxyXG4gICAgICAgICAgICA8IS0tbmdiLXRhYnNldCAqbmdJZj1cInRhYkxpc3QubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Ryb3lPbkhpZGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0YWJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICNyZXBvcnRUYWJTZXQ9XCJuZ2JUYWJzZXRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG5nYi10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBpZD1cInt7dGFiLm5hbWV9fVwiIHRpdGxlPVwie3t0YWIudGl0bGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJib3JkZXI6IDVweCBzb2xpZDtcIiA+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiVGFiQ29udGVudCA+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uVGFiYmVkR3JpZFJlYWR5KCRldmVudCwgdGFiLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cInRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9uZ2ItdGFiPlxyXG5cclxuICAgICAgICAgICAgPC9uZ2ItdGFic2V0LS0+XHJcblxyXG4gICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyICpuZ0lmPVwidGFiTGlzdC5sZW5ndGggPD0gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uTWFpbkdyaWRSZWFkeSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cImZ1bGxHcmlkTGlzdFwiPlxyXG4gICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBib3R0b21TZWN0aW9uIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCIgc3R5bGU9XCJoZWlnaHQ6IDgwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDI1cHg7IGZvbnQtd2VpZ2h0OiBib2xkXCI+e3tzZWxlY3RlZFJlcG9ydC50aXRsZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiAqbmdJZj1cInNlbGVjdGVkUmVwb3J0LmhlbHAgJiYgc2VsZWN0ZWRSZXBvcnQuaGVscCAhPSAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSGVscChjb250ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1xdWVzdGlvbi1jaXJjbGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDx0ZW1wbGF0ZSAjcGFyYW1Db250YWluZXI+PC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY2VudGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPHRlbXBsYXRlICNmb3JtYXRDb250YWluZXI+PC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWxlY3RlZFJlcG9ydC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUnVuUmVwb3J0KClcIlxyXG4gICAgICAgICAgICAgICAgPlJ1biBSZXBvcnQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3Jlc2l6YWJsZS1zZWN0aW9uLWRpdmlkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQgbGV0LW1vZGFsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJoZWxwLW1vZGVsLXRpdGxlXCI+UmVwb3J0IEhlbHA8L2g0PlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKCdDcm9zcyBjbGljaycpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBbaW5uZXJIVE1MXT1cInNlbGVjdGVkUmVwb3J0LmhlbHBcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoJ09rIGNsaWNrJylcIj5PSzwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgXHJcbiAgICAgIDpob3N0IDo6bmctZGVlcCAubWF0LXRhYi1ib2R5LXdyYXBwZXJ7XHJcbiAgICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICA6aG9zdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWx7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk4YzdlMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgOmhvc3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZXtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVmNGZmO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucmVwb3J0LWRldGFpbHN7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2VudGVyLXJvd3tcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2MHZ3O1xyXG4gICAgICB9XHJcbiAgICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0aW5nRnJhbWV3b3JrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIEBJbnB1dCgpIG1hbmFnZVJlcG9ydFVybDogc3RyaW5nOyAvLyAvYXJ0YWRtaW4vbGVnYWN5L2FwaS9oY2kuYXJ0YWRtaW4uY29udHJvbGxlci5NYW5hZ2VSZXBvcnRzXHJcbiAgICBASW5wdXQoKSBjb21tYW5kUHJlZml4OiBzdHJpbmc7IC8vICAvYXJ0YWRtaW4vbGVnYWN5L2FwaS9qc3BcclxuICAgIEBJbnB1dCgpIGRpY3RBUElMZWFkSW46IHN0cmluZzsgLy8gL2FydGFkbWluL2FwaS9kaWN0aW9uYXJpZXNcclxuICAgIEBJbnB1dCgpIHJlcG9ydHNCeVR5cGU6IHN0cmluZzsgLy9vcHRpb25hbC4gdXN1YWxseSBcImdsb2JhbFwiIG9yIFwicGF0aWVudFwiXHJcblxyXG4gICAgQFZpZXdDaGlsZChcInBhcmFtQ29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlfSkgcGFyYW1Db250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgICBAVmlld0NoaWxkKFwiZm9ybWF0Q29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlfSkgZm9ybWF0Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICAgIGZ1bGxHcmlkTGlzdDogYW55W10gPSBbXTtcclxuICAgIHRhYmJlZEdyaWRMaXN0OiBhbnkgPSB7fTtcclxuXHJcblxyXG4gICAgZ3JpZE9wdGlvbnMgPSB7XHJcbiAgICAgIHJvd1N0eWxlOiB7XHJcbiAgICAgICAgXCJmb250LWZhbWlseVwiOiBcIlByb21wdCwgc2Fucy1zZXJpZlwiXHJcbiAgICAgIH0sXHJcbiAgICAgIHJvd0hlaWdodDogMjAsXHJcbiAgICAgIGVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uOiB0cnVlLFxyXG4gICAgICBlbnN1cmVEb21PcmRlcjogdHJ1ZVxyXG4gICAgfTsgLy9lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiBzaG91bGQgYmUgY29tYmluZWQgd2l0aCBlbnN1cmVEb21PcmRlclxyXG4gICAgZnJhbWV3b3JrQ29tcG9uZW50czogYW55O1xyXG5cclxuICAgIG1haW5HcmlkQXBpOiBHcmlkQXBpO1xyXG4gICAgdGFiYmVkR3JpZEFwaUxpc3Q6IGFueSA9IHt9OyAvL2EgbWFwIG9mIEdyaWRBUElzIHRvIHRhYiBuYW1lc1xyXG5cclxuICAgIHJlcG9ydExpc3Q6IFJlcG9ydFtdID0gW107XHJcbiAgICB0YWJMaXN0OiBSZXBvcnRUYWJbXSA9IFtdO1xyXG4gICAgdGFiVHlwZU5hbWVMb29rdXA6IGFueSA9IHt9OyAvL2Ega2luZCBvZiBkaWN0IHRoYXQgbWFwcyB0aGUgdGFiIG9yIHR5cGUgdG8gdGhlIHRhYi1uYW1lXHJcblxyXG4gICAgc2VsZWN0ZWRSZXBvcnQ6IFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgIHNlbGVjdGVkRm9ybWF0OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5ZWRQYXJhbUNvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcclxuICAgIGRpc3BsYXllZEZvcm1hdENvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGlhbG9nc1NlcnZpY2U6IERpYWxvZ3NTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5tYW5hZ2VSZXBvcnRVcmwgIT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLm1hbmFnZVJlcG9ydFVybCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiYWN0aW9uXCIsIFwibG9hZFdpdGhQYXJhbXNcIilcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wbGlzdCA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wVGFiYmVkR3JpZExpc3QgPSB7fTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhYmxpc3QgPSByZXNwW1wicmVwb3J0VGFic1wiXTtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCByb3cgb2YgdGFibGlzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFiOiBSZXBvcnRUYWIgPSBuZXcgUmVwb3J0VGFiKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5uYW1lID0gcm93Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi50aXRsZSA9IHJvdy50aXRsZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnR5cGUgPSByb3cudHlwZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnRhYiA9IHJvdy50YWI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5kYXRha2V5ID0gcm93LmRhdGFrZXk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMucmVwb3J0c0J5VHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJMaXN0LnB1c2godGFiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWIudGFiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudGFiXSA9IHRhYi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhYi50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudHlwZV0gPSB0YWIubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVwb3J0c0J5VHlwZSA9PSB0YWIudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiTGlzdC5wdXNoKHRhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudGFiXSA9IHRhYi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFiR3JpZExpc3Q6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiYmVkR3JpZExpc3RbdGFiLm5hbWVdID0gdGFiR3JpZExpc3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUYWJiZWRHcmlkTGlzdFt0YWIubmFtZV0gPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IHJlc3BbXCJyZXBvcnRMaXN0XCJdO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGxpc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHJvdyBvZiBsaXN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXBvcnQ6IFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0Lm5hbWUgPSByb3cubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LnRpdGxlID0gcm93LnRpdGxlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZGVzY3JpcHRpb24gPSByb3cuZGVzY3JpcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5jbGFzc05hbWUgPSByb3cuY2xhc3NOYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZmlsZU5hbWUgPSByb3cuZmlsZU5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC50eXBlID0gcm93LnR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC50YWIgPSByb3cudGFiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZGF0YWtleSA9IHJvdy5kYXRha2V5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuaGVscCA9IHJvdy5oZWxwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JqZWN0ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcmVwb3J0Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcmVwb3J0LnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHJlcG9ydC5kZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0YWJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0LnRhYikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibmFtZSA9IHRoaXMudGFiVHlwZU5hbWVMb29rdXBbcmVwb3J0LnRhYl07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucmVwb3J0c0J5VHlwZSAmJiByZXBvcnQudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibmFtZSA9IHRoaXMudGFiVHlwZU5hbWVMb29rdXBbcmVwb3J0LnR5cGVdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFibmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyaWRsaXN0OiBhbnlbXSA9IHRlbXBUYWJiZWRHcmlkTGlzdFt0YWJuYW1lXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0LnR5cGUgPT09IHRoaXMucmVwb3J0c0J5VHlwZSApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZGxpc3QucHVzaChvYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJhbXMgPSByb3cucGFyYW1zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcCBvZiBwYXJhbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3UGFyYW06IFBhcmFtID0gbmV3IFBhcmFtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uZGljdEFQSUxlYWRJbiA9IHRoaXMuZGljdEFQSUxlYWRJbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uY2FwdGlvbiA9IHAuY2FwdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5uYW1lID0gcC5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLnR5cGUgPSBwLnR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uY2xhc3NOYW1lID0gcC5jbGFzc05hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0udmFsdWVYUGF0aCA9IHAudmFsdWVYUGF0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5WFBhdGggPSBwLmRpc3BsYXlYUGF0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5T3JkZXIgPSBwLmRpc3BsYXlPcmRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5hY3RpdmVPbmx5ID0gcC5hY3RpdmVPbmx5O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3UGFyYW0udmFsdWVYUGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS52YWx1ZVhQYXRoID0gbmV3UGFyYW0udmFsdWVYUGF0aC5yZXBsYWNlKFwiQFwiLCBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1BhcmFtLmRpc3BsYXlYUGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5WFBhdGggPSBuZXdQYXJhbS5kaXNwbGF5WFBhdGgucmVwbGFjZShcIkBcIiwgXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9ucyA9IHAub3B0aW9ucztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbyBvZiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3T3B0aW9uOiBPcHRpb24gPSBuZXcgT3B0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb24udmFsdWUgPSBvLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3T3B0aW9uLmRpc3BsYXkgPSBvLmRpc3BsYXk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb24uZGlzcGxheU9yZGVyID0gby5kaXNwbGF5T3JkZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0ub3B0aW9ucy5wdXNoKG5ld09wdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXJhbXMucHVzaChuZXdQYXJhbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmb3JtYXRzID0gcm93LmZvcm1hdHM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtYXRzKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgZiBvZiBmb3JtYXRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld0Zvcm1hdDogRm9ybWF0ID0gbmV3IEZvcm1hdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5uYW1lID0gZi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5jYXB0aW9uID0gZi5jYXB0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5kaXNwbGF5T3JkZXIgPSBmLmRpc3BsYXlPcmRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmZvcm1hdHMucHVzaChuZXdGb3JtYXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXBvcnRMaXN0LnB1c2gocmVwb3J0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlcG9ydC50eXBlID09PSB0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnVsbEdyaWRMaXN0ID0gdGVtcGxpc3Quc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImdyaWRsaXN0OiBcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5mdWxsR3JpZExpc3QpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IobGV0IHRhYiBvZiB0aGlzLnRhYkxpc3Qpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXSA9IHRlbXBUYWJiZWRHcmlkTGlzdFt0YWIubmFtZV0uc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29sdW1uRGVmKCkgOiBhbnlbXSB7XHJcbiAgICAgIHJldHVybiBbXHJcblxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkOiBcInRpdGxlXCIsXHJcbiAgICAgICAgICBoZWFkZXJOYW1lOiBcIlRpdGxlXCIsXHJcbiAgICAgICAgICB3aWR0aDogMzAwLFxyXG4gICAgICAgICAgc29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgICBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkOiBcImRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICBoZWFkZXJOYW1lOiBcIkRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZX1cclxuICAgICAgXTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgb25NYWluR3JpZFJlYWR5KHBhcmFtcyA6IGFueSkge1xyXG5cclxuICAgICAgdGhpcy5tYWluR3JpZEFwaSA9IHBhcmFtcy5hcGk7XHJcbiAgICAgIHRoaXMubWFpbkdyaWRBcGkuc2V0Q29sdW1uRGVmcyh0aGlzLmNvbHVtbkRlZigpKTtcclxuICAgICAgdGhpcy5tYWluR3JpZEFwaS5zZXRSb3dEYXRhKHRoaXMuZnVsbEdyaWRMaXN0KTtcclxuICAgICAgdGhpcy5tYWluR3JpZEFwaS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25UYWJiZWRHcmlkUmVhZHkocGFyYW1zIDogYW55LCB0YWJuYW1lOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgIHRoaXMudGFiYmVkR3JpZEFwaUxpc3RbdGFibmFtZV0gPSBwYXJhbXMuYXBpO1xyXG4gICAgICB0aGlzLnRhYmJlZEdyaWRBcGlMaXN0W3RhYm5hbWVdLnNldENvbHVtbkRlZnModGhpcy5jb2x1bW5EZWYoKSk7XHJcbiAgICAgIHRoaXMudGFiYmVkR3JpZEFwaUxpc3RbdGFibmFtZV0uc2V0Um93RGF0YSh0aGlzLnRhYmJlZEdyaWRMaXN0W3RhYm5hbWVdKTtcclxuICAgICAgdGhpcy50YWJiZWRHcmlkQXBpTGlzdFt0YWJuYW1lXS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2VsZWN0ZWRSb3coZXZlbnQpIHtcclxuXHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhldmVudCk7XHJcbiAgICAgICAgaWYoZXZlbnQubm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgbGV0IHJlcG9ydE5hbWUgPSBldmVudC5ub2RlLmRhdGEubmFtZTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGV2ZW50Lm5vZGUuZGF0YS5uYW1lKTtcclxuXHJcbiAgICAgICAgICB2YXIgbWF0Y2hlZFJlcG9ydDogUmVwb3J0O1xyXG4gICAgICAgICAgZm9yIChsZXQgciBvZiB0aGlzLnJlcG9ydExpc3QpIHtcclxuICAgICAgICAgICAgaWYgKHIubmFtZSA9PSByZXBvcnROYW1lKSB7XHJcbiAgICAgICAgICAgICAgbWF0Y2hlZFJlcG9ydCA9IHI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAobWF0Y2hlZFJlcG9ydCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZXBvcnQgPSBtYXRjaGVkUmVwb3J0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZVBhcmFtQ29tcG9uZW50cygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVQYXJhbUNvbXBvbmVudHMoKSB7XHJcbiAgICAgICAgaWYodGhpcy5wYXJhbUNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLnBhcmFtQ29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMuZm9ybWF0Q29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL2Rlc3Ryb3kgcHJldmlvdXMgY29tcG9uZW50cyBhbmQgY2xlYXIgdGhlIGRpc3BsYXllZFJlZiBsaXN0cy4uP1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudFJlZnMoKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXllZFBhcmFtQ29tcG9uZW50UmVmcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheWVkRm9ybWF0Q29tcG9uZW50UmVmcyA9IFtdO1xyXG5cclxuICAgICAgICBmb3IobGV0IHAgb2YgdGhpcy5zZWxlY3RlZFJlcG9ydC5wYXJhbXMpe1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxQYXJhbWV0ZXJDb21wb25lbnQ+ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQYXJhbWV0ZXJDb21wb25lbnQpO1xyXG4gICAgICAgICAgICB2YXIgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8UGFyYW1ldGVyQ29tcG9uZW50PiA9IHRoaXMucGFyYW1Db250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZFBhcmFtQ29tcG9uZW50UmVmcy5wdXNoKGNvbXBvbmVudFJlZik7XHJcblxyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2V0UGFyYW0ocCk7XHJcblxyXG4gICAgICAgICAgICBpZihwLm9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJpZXM6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IG8gb2YgcC5vcHRpb25zKXtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IHtpZDogby52YWx1ZSwgZGlzcGxheTogby5kaXNwbGF5fTtcclxuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzLnB1c2goZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZW50cmllcyA9IGVudHJpZXM7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgZmlyc3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgICAgIGZvcihsZXQgZiBvZiB0aGlzLnNlbGVjdGVkUmVwb3J0LmZvcm1hdHMpe1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmFjdG9yeTI6IENvbXBvbmVudEZhY3Rvcnk8Rm9ybWF0Q29tcG9uZW50PiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRm9ybWF0Q29tcG9uZW50KTtcclxuICAgICAgICAgICAgdmFyIGNvbXBvbmVudFJlZjI6IENvbXBvbmVudFJlZjxGb3JtYXRDb21wb25lbnQ+ID0gdGhpcy5mb3JtYXRDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkyKTtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRGb3JtYXRDb21wb25lbnRSZWZzLnB1c2goY29tcG9uZW50UmVmMik7XHJcblxyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYyLmluc3RhbmNlLmZvcm1hdCA9IGY7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZjIuaW5zdGFuY2Uuc2VsZWN0ZWRWYWx1ZUNoYW5nZS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtYXQgPSBzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpZihmaXJzdCkgey8vc2VsZWN0IHRoZSBmaXJzdCBmb3JtYXQgaW4gdGhlIGdyb3VwaW5nXHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYyLmluc3RhbmNlLnNlbGVjdGVkVmFsdWUgPSBmLm5hbWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRm9ybWF0ID0gZi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG9wZW5IZWxwKGNvbnRlbnQpIHtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbihjb250ZW50LCB7YXJpYUxhYmVsbGVkQnk6IFwiaGVscC1tb2RhbC10aXRsZVwifSlcclxuICAgICAgICAgICAgLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgLy8gdGhpcy5jbG9zZVJlc3VsdCA9IGBDbG9zZWQgd2l0aDogJHtyZXN1bHR9YDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcclxuXHJcbiAgICAgICAgfSwgKHJlYXNvbikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgY2xvc2VSZXN1bHQgPSBgRGlzbWlzc2VkICR7dGhpcy5nZXREaXNtaXNzUmVhc29uKHJlYXNvbil9YDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coY2xvc2VSZXN1bHQpO1xyXG5cclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXREaXNtaXNzUmVhc29uKHJlYXNvbjogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAocmVhc29uID09PSBNb2RhbERpc21pc3NSZWFzb25zLkVTQykge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJieSBwcmVzc2luZyBFU0NcIjtcclxuICAgICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9PT0gTW9kYWxEaXNtaXNzUmVhc29ucy5CQUNLRFJPUF9DTElDSykge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJieSBjbGlja2luZyBvbiBhIGJhY2tkcm9wXCI7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuICBgd2l0aDogJHtyZWFzb259YDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25SdW5SZXBvcnQoKSB7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRSZXBvcnQpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nc1NlcnZpY2Uuc3RhcnREZWZhdWx0U3Bpbm5lckRpYWxvZygpO1xyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmb3JtYXQ6XCIgKyB0aGlzLnNlbGVjdGVkRm9ybWF0KTtcclxuICAgICAgICAgICAgaWYoIXRoaXMuc2VsZWN0ZWRGb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtYXQgPSBcImh0bWxcIjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IHJ1blBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgICAgIHJ1blBhcmFtcyA9IHJ1blBhcmFtcy5hcHBlbmQoXCJmb3JtYXRcIiwgdGhpcy5zZWxlY3RlZEZvcm1hdCk7XHJcbiAgICAgICAgICAgIHJ1blBhcmFtcyA9IHJ1blBhcmFtcy5hcHBlbmQoXCJhY3Rpb25cIiwgXCJzaG93XCIpO1xyXG4gICAgICAgICAgICBydW5QYXJhbXMgPSBydW5QYXJhbXMuYXBwZW5kKFwicmVwb3J0TmFtZVwiLCB0aGlzLnNlbGVjdGVkUmVwb3J0Lm5hbWUpO1xyXG5cclxuICAgICAgICAgICAgcnVuUGFyYW1zID0gdGhpcy5nZXRSdW5QYXJhbWV0ZXJzKHJ1blBhcmFtcyk7XHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhydW5QYXJhbXMpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLmNvbW1hbmRQcmVmaXggKyB0aGlzLnNlbGVjdGVkUmVwb3J0LmNsYXNzTmFtZSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHJ1blBhcmFtcyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiBcInJlc3BvbnNlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiBcImJsb2JcIlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgZmlsZW5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5zZWxlY3RlZEZvcm1hdCAhPSBcImh0bWxcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IHJlcy5oZWFkZXJzLmdldChcImNvbnRlbnQtZGlzcG9zaXRpb25cIikuc3BsaXQoXCI7XCIpWzFdLnNwbGl0KFwiPVwiKVsxXS5yZXBsYWNlKC9cXFwiL2csIFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtyZXMuYm9keV0sIHt0eXBlOiByZXMuYm9keS50eXBlfSApOyAvLywge3R5cGU6IFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZpbGVVUkwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhmaWxlVVJMKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYTogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuICAgICAgICAgICAgICAgICAgICBhLmhyZWYgPSBmaWxlVVJMO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRGb3JtYXQgPT0gXCJodG1sXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYS50YXJnZXQgPSBcIl9ibGFua1wiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcclxuICAgICAgICAgICAgICAgICAgICBhLmNsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChmaWxlVVJMKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dzU2VydmljZS5zdG9wQWxsU3Bpbm5lckRpYWxvZ3MoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UnVuUGFyYW1ldGVycyhydW5QYXJhbXM6IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcclxuICAgICAgICB2YXIgbmV3UGFyYW1zID0gcnVuUGFyYW1zO1xyXG5cclxuICAgICAgICBmb3IobGV0IG8gb2YgdGhpcy5kaXNwbGF5ZWRQYXJhbUNvbXBvbmVudFJlZnMpe1xyXG4gICAgICAgICAgICB2YXIgcGFyYW0gPSBvLmluc3RhbmNlLnBhcmFtO1xyXG5cclxuICAgICAgICAgICAgaWYocGFyYW0udHlwZSA9PSBcIm11bHRpc2VsZWN0XCIpIHtcclxuICAgICAgICAgICAgICAgIHZhciByZXNMaXN0ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgdiBvZiBwYXJhbS5zZWxlY3RlZFZhbHVlTGlzdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYocmVzTGlzdCAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc0xpc3QgKz0gXCIsXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc0xpc3QgKz0gdjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG5ld1BhcmFtcyA9IG5ld1BhcmFtcy5hcHBlbmQocGFyYW0ubmFtZSwgcmVzTGlzdCk7XHJcbiAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIGlmKHBhcmFtLnNlbGVjdGVkVmFsdWUpIHsgLy9zbyB3ZSBkb24ndCBnZXQgXCJ1bmRlZmluZWRcIiBzZW50IGJhY2tcclxuICAgICAgICAgICAgICAgICAgICBpZihwYXJhbS50eXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXREYXRlU3RyaW5nKHBhcmFtLnNlbGVjdGVkVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJhbS5zZWxlY3RlZFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBuZXdQYXJhbXMgPSBuZXdQYXJhbXMuYXBwZW5kKHBhcmFtLm5hbWUsIHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERhdGVTdHJpbmcoZGF0ZTogYW55KTogc3RyaW5nIHtcclxuXHJcbiAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgXCJNTS9kZC95eXl5XCIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZSBpZihtb21lbnQuaXNNb21lbnQoZGF0ZSkgKSB7XHJcbiAgICAgICAgICAgIGlmKGRhdGUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUuZm9ybWF0KFwiTS9EL1lZWVlcIik7XHJcbiAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2UgaWYodHlwZW9mIGRhdGUgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95Q29tcG9uZW50UmVmcygpIHtcclxuICAgICAgZm9yKGxldCBvIG9mIHRoaXMuZGlzcGxheWVkUGFyYW1Db21wb25lbnRSZWZzKXtcclxuICAgICAgICBvLmRlc3Ryb3koKTtcclxuICAgICAgfVxyXG4gICAgICBmb3IobGV0IG8gb2YgdGhpcy5kaXNwbGF5ZWRGb3JtYXRDb21wb25lbnRSZWZzKXtcclxuICAgICAgICBvLmRlc3Ryb3koKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudFJlZnMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgc3R5bGVzOiBbYFxyXG4gICAgICAucmVwb3J0LWRldGFpbHN7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2VudGVyLXJvd3tcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2MHZ3O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubWF0LXRhYi1ib2R5LXdyYXBwZXJ7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgfVxyXG5cclxuLnRhYi1wYW5le1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5gXSovXHJcbn1cclxuIl19
@@ -88,9 +88,8 @@ export class ResizableSectionDividerComponent {
88
88
  window.removeEventListener("touchmove", this.horizontalTouchFunction);
89
89
  }
90
90
  }
91
- }
92
- ResizableSectionDividerComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResizableSectionDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
93
- ResizableSectionDividerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ResizableSectionDividerComponent, selector: "resizable-section-divider", inputs: { initialPercentage: "initialPercentage", isVerticalLayout: "isVerticalLayout", maxPercentage: "maxPercentage", minPercentage: "minPercentage" }, host: { listeners: { "document:mousemove": "mouseMove($event)", "document:mouseup": "mouseUp($event)", "document:touchend": "mouseUp($event)" } }, viewQueries: [{ propertyName: "verticalContainer", first: true, predicate: ["verticalContainer"], descendants: true }, { propertyName: "horizontalContainer", first: true, predicate: ["horizontalContainer"], descendants: true }], ngImport: i0, template: `
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResizableSectionDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
92
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResizableSectionDividerComponent, selector: "resizable-section-divider", inputs: { initialPercentage: "initialPercentage", isVerticalLayout: "isVerticalLayout", maxPercentage: "maxPercentage", minPercentage: "minPercentage" }, host: { listeners: { "document:mousemove": "mouseMove($event)", "document:mouseup": "mouseUp($event)", "document:touchend": "mouseUp($event)" } }, viewQueries: [{ propertyName: "verticalContainer", first: true, predicate: ["verticalContainer"], descendants: true }, { propertyName: "horizontalContainer", first: true, predicate: ["horizontalContainer"], descendants: true }], ngImport: i0, template: `
94
93
  <div *ngIf="isVerticalLayout" style="height: 100%; width: 100%;" #verticalContainer>
95
94
  <div class="p-1" style="width: 100%;" [style.min-height.%]="minPercentage" [style.max-height.%]="maxPercentage" [style.height.%]="(100 - sectionSize - grabberOffset)">
96
95
  <ng-content select="[topSection]"></ng-content>
@@ -118,8 +117,9 @@ ResizableSectionDividerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
118
117
  <ng-content select="[rightSection]"></ng-content>
119
118
  </div>
120
119
  </div>
121
- `, isInline: true, styles: [".rad-grabber{cursor:ew-resize}.rad-grabber-vertical{cursor:ns-resize}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResizableSectionDividerComponent, decorators: [{
120
+ `, isInline: true, styles: [".rad-grabber{cursor:ew-resize}.rad-grabber-vertical{cursor:ns-resize}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
121
+ }
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResizableSectionDividerComponent, decorators: [{
123
123
  type: Component,
124
124
  args: [{ selector: "resizable-section-divider", template: `
125
125
  <div *ngIf="isVerticalLayout" style="height: 100%; width: 100%;" #verticalContainer>
@@ -174,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
174
174
  type: HostListener,
175
175
  args: ["document:touchend", ["$event"]]
176
176
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXNlY3Rpb24tZGl2aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRpbmctZnJhbWV3b3JrL3NyYy9yZXNpemFibGUtZGl2aWRlci9yZXNpemFibGUtc2VjdGlvbi1kaXZpZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQTJDOUcsTUFBTSxPQUFPLGdDQUFnQztJQXpDN0M7UUEwQ0ksNEVBQTRFO1FBQ25FLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUMvQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0Isa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFNN0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLENBQUMsQ0FBQztLQXdGNUI7SUFsRkcsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBRTVDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDOUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtB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IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJyZXNpemFibGUtc2VjdGlvbi1kaXZpZGVyXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc1ZlcnRpY2FsTGF5b3V0XCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlO1wiICN2ZXJ0aWNhbENvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLm1pbi1oZWlnaHQuJV09XCJtaW5QZXJjZW50YWdlXCIgW3N0eWxlLm1heC1oZWlnaHQuJV09XCJtYXhQZXJjZW50YWdlXCIgW3N0eWxlLmhlaWdodC4lXT1cIigxMDAgLSBzZWN0aW9uU2l6ZSAtIGdyYWJiZXJPZmZzZXQpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdG9wU2VjdGlvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDIwcHg7IHdpZHRoOiAxMDAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZC1ncmFiYmVyLXZlcnRpY2FsXCIgKG1vdXNlZG93bik9XCJkcmFnZ2luZyA9IHRydWU7XCIgKHRvdWNoc3RhcnQpPVwiZHJhZ2dpbmcgPSB0cnVlO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZ3JpcC1saW5lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLm1pbi1oZWlnaHQuJV09XCJtaW5QZXJjZW50YWdlXCIgW3N0eWxlLm1heC1oZWlnaHQuJV09XCJtYXhQZXJjZW50YWdlXCIgW3N0eWxlLmhlaWdodC4lXT1cIihzZWN0aW9uU2l6ZSAtIGdyYWJiZXJPZmZzZXQpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYm90dG9tU2VjdGlvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzVmVydGljYWxMYXlvdXRcIiBjbGFzcz1cImQtZmxleFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTtcIiAjaG9yaXpvbnRhbENvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMVwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlO1wiIFtzdHlsZS5taW4td2lkdGguJV09XCJtaW5QZXJjZW50YWdlXCIgW3N0eWxlLm1heC13aWR0aC4lXT1cIm1heFBlcmNlbnRhZ2VcIiBbc3R5bGUud2lkdGguJV09XCIoMTAwIC0gc2VjdGlvblNpemUgLSBncmFiYmVyT2Zmc2V0KVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xlZnRTZWN0aW9uXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBzdHlsZT1cIndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkLWdyYWJiZXJcIiAobW91c2Vkb3duKT1cImRyYWdnaW5nID0gdHJ1ZTtcIiAodG91Y2hzdGFydCk9XCJkcmFnZ2luZyA9IHRydWU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1ncmlwLWxpbmVzLXZlcnRpY2FsXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0xXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCIgW3N0eWxlLm1pbi13aWR0aC4lXT1cIm1pblBlcmNlbnRhZ2VcIiBbc3R5bGUubWF4LXdpZHRoLiVdPVwibWF4UGVyY2VudGFnZVwiIFtzdHlsZS53aWR0aC4lXT1cInNlY3Rpb25TaXplIC0gZ3JhYmJlck9mZnNldFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3JpZ2h0U2VjdGlvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgICAucmFkLWdyYWJiZXIge1xyXG4gICAgICBjdXJzb3I6IGV3LXJlc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICAucmFkLWdyYWJiZXItdmVydGljYWwge1xyXG4gICAgICBjdXJzb3I6IG5zLXJlc2l6ZTtcclxuICAgIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlU2VjdGlvbkRpdmlkZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgLy8gU3RhcnRpbmcgd2lkdGggb3IgaGVpZ2h0ICUgZm9yIHRoZSByaWdodCAvIGJvdHRvbSBjb250YWluZXJzIHJlc3BlY3RpdmVseVxyXG4gICAgQElucHV0KCkgaW5pdGlhbFBlcmNlbnRhZ2U6IG51bWJlciA9IDUwO1xyXG4gICAgQElucHV0KCkgaXNWZXJ0aWNhbExheW91dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbWF4UGVyY2VudGFnZTogbnVtYmVyID0gOTA7XHJcbiAgICBASW5wdXQoKSBtaW5QZXJjZW50YWdlOiBudW1iZXIgPSAxMDtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwidmVydGljYWxDb250YWluZXJcIiwge3N0YXRpYzogZmFsc2V9KSB2ZXJ0aWNhbENvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuICAgIEBWaWV3Q2hpbGQoXCJob3Jpem9udGFsQ29udGFpbmVyXCIsIHtzdGF0aWM6IGZhbHNlfSkgaG9yaXpvbnRhbENvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuXHJcbiAgICBwdWJsaWMgc2VjdGlvblNpemU6IG51bWJlcjtcclxuICAgIHB1YmxpYyBkcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGdyYWJiZXJPZmZzZXQgPSAwO1xyXG5cclxuICBwcml2YXRlIHZlcnRpY2FsVG91Y2hGdW5jdGlvbjogYW55O1xyXG4gIHByaXZhdGUgaG9yaXpvbnRhbFRvdWNoRnVuY3Rpb246IGFueTtcclxuICBwcml2YXRlIGVsZW1lbnRPYnNlcnZlcjogYW55O1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc2VjdGlvblNpemUgPSB0aGlzLmluaXRpYWxQZXJjZW50YWdlO1xyXG5cclxuICAgICAgdGhpcy52ZXJ0aWNhbFRvdWNoRnVuY3Rpb24gPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5kcmFnZ2luZykge1xyXG4gICAgICAgICAgdGhpcy5ncmFiYmVyT2Zmc2V0ID0gKCgoIDIwIC8gdGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCkgKiAxMDAgKSAvIDIpO1xyXG4gICAgICAgICAgdGhpcy5zZWN0aW9uU2l6ZSA9ICgodGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIChldmVudC50b3VjaGVzWzBdLnBhZ2VZIC0gdGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkpXHJcbiAgICAgICAgICAgIC8gKHRoaXMudmVydGljYWxDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHR0KSAqIDEwMCk7XHJcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy5ob3Jpem9udGFsVG91Y2hGdW5jdGlvbiA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmRyYWdnaW5nKSB7XHJcbiAgICAgICAgICB0aGlzLmdyYWJiZXJPZmZzZXQgPSAoKCggMTAgLyB0aGlzLmhvcml6b250YWxDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkgKiAxMDAgKSAvIDIpO1xyXG4gICAgICAgICAgdGhpcy5zZWN0aW9uU2l6ZSA9ICgodGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSBldmVudC50b3VjaGVzWzBdLnBhZ2VYIC0gdGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdClcclxuICAgICAgICAgICAgLyAodGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpICogMTAwKTtcclxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgLy8gSGFuZGxlIGluaXRpYWxpemluZyBncmFiYmVyIHNpemUgZm9yIHdoZW4gZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIGFzIGhpZGRlblxyXG4gICAgICAgIHRoaXMuZWxlbWVudE9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzLCBvYnNlcnZhYmxlKSA9PiB7XHJcbiAgICAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyBzdWJ0cmFjdCBoYWxmIHRoZSBncmFiYmVyIGhlaWdodC93aWR0aCAlIGZyb20gZWFjaCBzZWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmlzVmVydGljYWxMYXlvdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYWJiZXJPZmZzZXQgPSAoKCggMjAgLyB0aGlzLnZlcnRpY2FsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KSAqIDEwMCApIC8gMik7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JhYmJlck9mZnNldCA9ICgoKCAxMCAvIHRoaXMuaG9yaXpvbnRhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSAqIDEwMCApIC8gMik7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhYmxlLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5pc1ZlcnRpY2FsTGF5b3V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudE9ic2VydmVyLm9ic2VydmUodGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdGhpcy52ZXJ0aWNhbFRvdWNoRnVuY3Rpb24sIHsgcGFzc2l2ZTogZmFsc2UgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvcml6b250YWxDb250YWluZXIubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIHRoaXMuaG9yaXpvbnRhbFRvdWNoRnVuY3Rpb24sIHsgcGFzc2l2ZTogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDptb3VzZW1vdmVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgbW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2dpbmcpIHtcclxuICAgICAgICAgICAgaWYodGhpcy5pc1ZlcnRpY2FsTGF5b3V0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyYWJiZXJPZmZzZXQgPSAoKCggMjAgLyB0aGlzLnZlcnRpY2FsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KSAqIDEwMCApIC8gMik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25TaXplID0gKCh0aGlzLnZlcnRpY2FsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gKGV2ZW50LnBhZ2VZIC0gdGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkpXHJcbiAgICAgICAgICAgICAgICAgICAgLyAodGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCkgKiAxMDApO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmFiYmVyT2Zmc2V0ID0gKCgoIDEwIC8gdGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpICogMTAwICkgLyAyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VjdGlvblNpemUgPSAoKHRoaXMuaG9yaXpvbnRhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gZXZlbnQucGFnZVggIC0gdGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdClcclxuICAgICAgICAgICAgICAgICAgICAvICh0aGlzLmhvcml6b250YWxDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkgKiAxMDApO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50Om1vdXNldXBcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OnRvdWNoZW5kXCIsIFtcIiRldmVudFwiXSlcclxuICAgIG1vdXNlVXAoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5kcmFnZ2luZykge1xyXG4gICAgICAgICAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICBpZih0aGlzLmlzVmVydGljYWxMYXlvdXQpIHtcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0aGlzLnZlcnRpY2FsVG91Y2hGdW5jdGlvbik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdGhpcy5ob3Jpem9udGFsVG91Y2hGdW5jdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIl19
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXNlY3Rpb24tZGl2aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRpbmctZnJhbWV3b3JrL3NyYy9yZXNpemFibGUtZGl2aWRlci9yZXNpemFibGUtc2VjdGlvbi1kaXZpZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQTJDOUcsTUFBTSxPQUFPLGdDQUFnQztJQXpDN0M7UUEwQ0ksNEVBQTRFO1FBQ25FLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUMvQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0Isa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFNN0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLENBQUMsQ0FBQztLQXdGNUI7SUFsRkcsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBRTVDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDOUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtB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IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJyZXNpemFibGUtc2VjdGlvbi1kaXZpZGVyXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc1ZlcnRpY2FsTGF5b3V0XCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlO1wiICN2ZXJ0aWNhbENvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLm1pbi1oZWlnaHQuJV09XCJtaW5QZXJjZW50YWdlXCIgW3N0eWxlLm1heC1oZWlnaHQuJV09XCJtYXhQZXJjZW50YWdlXCIgW3N0eWxlLmhlaWdodC4lXT1cIigxMDAgLSBzZWN0aW9uU2l6ZSAtIGdyYWJiZXJPZmZzZXQpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdG9wU2VjdGlvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDIwcHg7IHdpZHRoOiAxMDAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZC1ncmFiYmVyLXZlcnRpY2FsXCIgKG1vdXNlZG93bik9XCJkcmFnZ2luZyA9IHRydWU7XCIgKHRvdWNoc3RhcnQpPVwiZHJhZ2dpbmcgPSB0cnVlO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZ3JpcC1saW5lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLm1pbi1oZWlnaHQuJV09XCJtaW5QZXJjZW50YWdlXCIgW3N0eWxlLm1heC1oZWlnaHQuJV09XCJtYXhQZXJjZW50YWdlXCIgW3N0eWxlLmhlaWdodC4lXT1cIihzZWN0aW9uU2l6ZSAtIGdyYWJiZXJPZmZzZXQpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYm90dG9tU2VjdGlvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzVmVydGljYWxMYXlvdXRcIiBjbGFzcz1cImQtZmxleFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTtcIiAjaG9yaXpvbnRhbENvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMVwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlO1wiIFtzdHlsZS5taW4td2lkdGguJV09XCJtaW5QZXJjZW50YWdlXCIgW3N0eWxlLm1heC13aWR0aC4lXT1cIm1heFBlcmNlbnRhZ2VcIiBbc3R5bGUud2lkdGguJV09XCIoMTAwIC0gc2VjdGlvblNpemUgLSBncmFiYmVyT2Zmc2V0KVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xlZnRTZWN0aW9uXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBzdHlsZT1cIndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkLWdyYWJiZXJcIiAobW91c2Vkb3duKT1cImRyYWdnaW5nID0gdHJ1ZTtcIiAodG91Y2hzdGFydCk9XCJkcmFnZ2luZyA9IHRydWU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1ncmlwLWxpbmVzLXZlcnRpY2FsXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0xXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCIgW3N0eWxlLm1pbi13aWR0aC4lXT1cIm1pblBlcmNlbnRhZ2VcIiBbc3R5bGUubWF4LXdpZHRoLiVdPVwibWF4UGVyY2VudGFnZVwiIFtzdHlsZS53aWR0aC4lXT1cInNlY3Rpb25TaXplIC0gZ3JhYmJlck9mZnNldFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3JpZ2h0U2VjdGlvbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgICAucmFkLWdyYWJiZXIge1xyXG4gICAgICBjdXJzb3I6IGV3LXJlc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICAucmFkLWdyYWJiZXItdmVydGljYWwge1xyXG4gICAgICBjdXJzb3I6IG5zLXJlc2l6ZTtcclxuICAgIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlU2VjdGlvbkRpdmlkZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgLy8gU3RhcnRpbmcgd2lkdGggb3IgaGVpZ2h0ICUgZm9yIHRoZSByaWdodCAvIGJvdHRvbSBjb250YWluZXJzIHJlc3BlY3RpdmVseVxyXG4gICAgQElucHV0KCkgaW5pdGlhbFBlcmNlbnRhZ2U6IG51bWJlciA9IDUwO1xyXG4gICAgQElucHV0KCkgaXNWZXJ0aWNhbExheW91dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbWF4UGVyY2VudGFnZTogbnVtYmVyID0gOTA7XHJcbiAgICBASW5wdXQoKSBtaW5QZXJjZW50YWdlOiBudW1iZXIgPSAxMDtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwidmVydGljYWxDb250YWluZXJcIiwge3N0YXRpYzogZmFsc2V9KSB2ZXJ0aWNhbENvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuICAgIEBWaWV3Q2hpbGQoXCJob3Jpem9udGFsQ29udGFpbmVyXCIsIHtzdGF0aWM6IGZhbHNlfSkgaG9yaXpvbnRhbENvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuXHJcbiAgICBwdWJsaWMgc2VjdGlvblNpemU6IG51bWJlcjtcclxuICAgIHB1YmxpYyBkcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGdyYWJiZXJPZmZzZXQgPSAwO1xyXG5cclxuICBwcml2YXRlIHZlcnRpY2FsVG91Y2hGdW5jdGlvbjogYW55O1xyXG4gIHByaXZhdGUgaG9yaXpvbnRhbFRvdWNoRnVuY3Rpb246IGFueTtcclxuICBwcml2YXRlIGVsZW1lbnRPYnNlcnZlcjogYW55O1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc2VjdGlvblNpemUgPSB0aGlzLmluaXRpYWxQZXJjZW50YWdlO1xyXG5cclxuICAgICAgdGhpcy52ZXJ0aWNhbFRvdWNoRnVuY3Rpb24gPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5kcmFnZ2luZykge1xyXG4gICAgICAgICAgdGhpcy5ncmFiYmVyT2Zmc2V0ID0gKCgoIDIwIC8gdGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCkgKiAxMDAgKSAvIDIpO1xyXG4gICAgICAgICAgdGhpcy5zZWN0aW9uU2l6ZSA9ICgodGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIChldmVudC50b3VjaGVzWzBdLnBhZ2VZIC0gdGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkpXHJcbiAgICAgICAgICAgIC8gKHRoaXMudmVydGljYWxDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHR0KSAqIDEwMCk7XHJcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy5ob3Jpem9udGFsVG91Y2hGdW5jdGlvbiA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmRyYWdnaW5nKSB7XHJcbiAgICAgICAgICB0aGlzLmdyYWJiZXJPZmZzZXQgPSAoKCggMTAgLyB0aGlzLmhvcml6b250YWxDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkgKiAxMDAgKSAvIDIpO1xyXG4gICAgICAgICAgdGhpcy5zZWN0aW9uU2l6ZSA9ICgodGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSBldmVudC50b3VjaGVzWzBdLnBhZ2VYIC0gdGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdClcclxuICAgICAgICAgICAgLyAodGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpICogMTAwKTtcclxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgLy8gSGFuZGxlIGluaXRpYWxpemluZyBncmFiYmVyIHNpemUgZm9yIHdoZW4gZWxlbWVudHMgYXJlIGluaXRpYWxpemVkIGFzIGhpZGRlblxyXG4gICAgICAgIHRoaXMuZWxlbWVudE9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzLCBvYnNlcnZhYmxlKSA9PiB7XHJcbiAgICAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyBzdWJ0cmFjdCBoYWxmIHRoZSBncmFiYmVyIGhlaWdodC93aWR0aCAlIGZyb20gZWFjaCBzZWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmlzVmVydGljYWxMYXlvdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYWJiZXJPZmZzZXQgPSAoKCggMjAgLyB0aGlzLnZlcnRpY2FsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KSAqIDEwMCApIC8gMik7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JhYmJlck9mZnNldCA9ICgoKCAxMCAvIHRoaXMuaG9yaXpvbnRhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSAqIDEwMCApIC8gMik7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhYmxlLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5pc1ZlcnRpY2FsTGF5b3V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudE9ic2VydmVyLm9ic2VydmUodGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdGhpcy52ZXJ0aWNhbFRvdWNoRnVuY3Rpb24sIHsgcGFzc2l2ZTogZmFsc2UgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvcml6b250YWxDb250YWluZXIubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIHRoaXMuaG9yaXpvbnRhbFRvdWNoRnVuY3Rpb24sIHsgcGFzc2l2ZTogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDptb3VzZW1vdmVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgbW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2dpbmcpIHtcclxuICAgICAgICAgICAgaWYodGhpcy5pc1ZlcnRpY2FsTGF5b3V0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyYWJiZXJPZmZzZXQgPSAoKCggMjAgLyB0aGlzLnZlcnRpY2FsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KSAqIDEwMCApIC8gMik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25TaXplID0gKCh0aGlzLnZlcnRpY2FsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gKGV2ZW50LnBhZ2VZIC0gdGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkpXHJcbiAgICAgICAgICAgICAgICAgICAgLyAodGhpcy52ZXJ0aWNhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCkgKiAxMDApO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmFiYmVyT2Zmc2V0ID0gKCgoIDEwIC8gdGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpICogMTAwICkgLyAyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VjdGlvblNpemUgPSAoKHRoaXMuaG9yaXpvbnRhbENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gZXZlbnQucGFnZVggIC0gdGhpcy5ob3Jpem9udGFsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdClcclxuICAgICAgICAgICAgICAgICAgICAvICh0aGlzLmhvcml6b250YWxDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkgKiAxMDApO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50Om1vdXNldXBcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OnRvdWNoZW5kXCIsIFtcIiRldmVudFwiXSlcclxuICAgIG1vdXNlVXAoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5kcmFnZ2luZykge1xyXG4gICAgICAgICAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICBpZih0aGlzLmlzVmVydGljYWxMYXlvdXQpIHtcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0aGlzLnZlcnRpY2FsVG91Y2hGdW5jdGlvbik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdGhpcy5ob3Jpem9udGFsVG91Y2hGdW5jdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIl19
@@ -90,10 +90,10 @@ export class DialogsService {
90
90
  this.stopAllSpinnerDialogs();
91
91
  }
92
92
  }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogsService, deps: [{ token: i1.MatLegacyDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
94
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogsService }); }
93
95
  }
94
- DialogsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialogsService, deps: [{ token: i1.MatLegacyDialog }], target: i0.ɵɵFactoryTarget.Injectable });
95
- DialogsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialogsService });
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialogsService, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogsService, decorators: [{
97
97
  type: Injectable
98
98
  }], ctorParameters: function () { return [{ type: i1.MatLegacyDialog }]; } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0aW5nLWZyYW1ld29yay9zcmMvc3Bpbm5lci9kaWFsb2dzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQXNDLGVBQWUsSUFBSSxTQUFTLEVBQUUscUJBQXFCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFN0osT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVwRSxNQUFNLENBQU4sSUFBWSxVQVNYO0FBVEQsV0FBWSxVQUFVO0lBQ2xCLDZCQUFlLENBQUE7SUFDZixpQ0FBbUIsQ0FBQTtJQUNuQiw2QkFBZSxDQUFBO0lBQ2YsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7SUFDakIsaUNBQW1CLENBQUE7SUFDbkIsMkJBQWEsQ0FBQTtJQUNiLDZDQUErQixDQUFBO0FBQ25DLENBQUMsRUFUVyxVQUFVLEtBQVYsVUFBVSxRQVNyQjtBQUdELE1BQU0sT0FBTyxjQUFjO0lBUXZCLElBQVcsbUJBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBVjdCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0Qyx5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDakMsNkJBQXdCLEdBQVksS0FBSyxDQUFDO1FBRTNDLHNCQUFpQixHQUEyQyxFQUFFLENBQUM7SUFPdEUsQ0FBQztJQUVNLHlCQUF5QjtRQUM1QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLGtCQUFrQixDQUFDLE9BQWUsRUFBRSxXQUFtQixFQUFFLFFBQWdCO1FBQzVFLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBRWpDLElBQUksYUFBYSxHQUFvQixJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzNELGFBQWEsQ0FBQyxJQUFJLEdBQUc7WUFDakIsT0FBTyxFQUFFLE9BQU87WUFDaEIsV0FBVyxFQUFFLFdBQVc7WUFDeEIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQztRQUNGLGFBQWEsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQzdCLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRWxDLElBQUksU0FBUyxHQUF5QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUU5RyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNuQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV2QyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsOEVBQThFO0lBQ3ZFLHFCQUFxQjtRQUN4QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLEtBQUssSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNoQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO1lBQ3JDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFTSxxQkFBcUI7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7U0FDakM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ2hDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7WUFDckMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVPLHFCQUFxQjtRQUN6QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2FBQ3BDO1NBQ0o7YUFBTSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUNsQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUNoQztJQUNMLENBQUM7OzRHQXpGUSxjQUFjO2dIQUFkLGNBQWM7NEZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgVGVtcGxhdGVSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYsIE1hdExlZ2FjeURpYWxvZyBhcyBNYXREaWFsb2csIE1hdExlZ2FjeURpYWxvZ0NvbmZpZyBhcyBNYXREaWFsb2dDb25maWcgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZ1wiO1xyXG5cclxuaW1wb3J0IHsgU3Bpbm5lckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gXCIuL3NwaW5uZXItZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IGVudW0gRGlhbG9nVHlwZSB7XHJcbiAgICBFUlJPUiA9IFwiRXJyb3JcIixcclxuICAgIFdBUk5JTkcgPSBcIldhcm5pbmdcIixcclxuICAgIEFMRVJUID0gXCJBbGVydFwiLFxyXG4gICAgU1VDQ0VTUyA9IFwiU3VjY2VlZFwiLFxyXG4gICAgRkFJTEVEID0gXCJGYWlsZWRcIixcclxuICAgIENPTkZJUk0gPSBcIkNvbmZpcm1cIixcclxuICAgIElORk8gPSBcIkluZm9cIixcclxuICAgIFZBTElEQVRJT04gPSBcIlZhbGlkYXRpb24gRXJyb3JcIixcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nc1NlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgX3NwaW5uZXJEaWFsb2dJc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgc3Bpbm5lcldvcmtJdGVtQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgICBwcml2YXRlIGNoZWNraW5nU3Bpbm5lcldvcmtJdGVtczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBzcGlubmVyRGlhbG9nUmVmczogTWF0RGlhbG9nUmVmPFNwaW5uZXJEaWFsb2dDb21wb25lbnQ+W10gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNwaW5uZXJEaWFsb2dJc09wZW4oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NwaW5uZXJEaWFsb2dJc09wZW47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGFydERlZmF1bHRTcGlubmVyRGlhbG9nKCk6IE1hdERpYWxvZ1JlZjxTcGlubmVyRGlhbG9nQ29tcG9uZW50PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRTcGlubmVyRGlhbG9nKFwiUGxlYXNlIHdhaXQuLi5cIiwgMywgMzApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGFydFNwaW5uZXJEaWFsb2cobWVzc2FnZTogc3RyaW5nLCBzdHJva2VXaWR0aDogbnVtYmVyLCBkaWFtZXRlcjogbnVtYmVyKTogTWF0RGlhbG9nUmVmPFNwaW5uZXJEaWFsb2dDb21wb25lbnQ+IHtcclxuICAgICAgICBpZiAodGhpcy5fc3Bpbm5lckRpYWxvZ0lzT3Blbikge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3NwaW5uZXJEaWFsb2dJc09wZW4gPSB0cnVlO1xyXG5cclxuICAgICAgICBsZXQgY29uZmlndXJhdGlvbjogTWF0RGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGF0YSA9IHtcclxuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IHN0cm9rZVdpZHRoLFxyXG4gICAgICAgICAgICBkaWFtZXRlcjogZGlhbWV0ZXJcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24ud2lkdGggPSBcIjEzZW1cIjtcclxuICAgICAgICBjb25maWd1cmF0aW9uLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcblxyXG4gICAgICAgIGxldCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTcGlubmVyRGlhbG9nQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oU3Bpbm5lckRpYWxvZ0NvbXBvbmVudCwgY29uZmlndXJhdGlvbik7XHJcblxyXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NwaW5uZXJEaWFsb2dJc09wZW4gPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zcGlubmVyRGlhbG9nUmVmcy5wdXNoKGRpYWxvZ1JlZik7XHJcblxyXG4gICAgICAgIHJldHVybiBkaWFsb2dSZWY7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTGV0IHRoZXJlIGJlIGFuIGFsdGVybmF0aXZlLCBnbG9iYWwgd2F5IHRvIHN0b3AgYWxsIGFjdGl2ZSBzcGlubmVyIGRpYWxvZ3MuXHJcbiAgICBwdWJsaWMgc3RvcEFsbFNwaW5uZXJEaWFsb2dzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lcldvcmtJdGVtQ291bnQgPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGRpYWxvZ1JlZiBvZiB0aGlzLnNwaW5uZXJEaWFsb2dSZWZzKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNwaW5uZXJEaWFsb2dSZWZzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZFNwaW5uZXJXb3JrSXRlbSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJXb3JrSXRlbUNvdW50Kys7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNraW5nU3Bpbm5lcldvcmtJdGVtcykge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNraW5nU3Bpbm5lcldvcmtJdGVtcyA9IHRydWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja1NwaW5uZXJXb3JrSXRlbXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVTcGlubmVyV29ya0l0ZW0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyV29ya0l0ZW1Db3VudC0tO1xyXG4gICAgICAgIGlmICh0aGlzLnNwaW5uZXJXb3JrSXRlbUNvdW50IDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJXb3JrSXRlbUNvdW50ID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNraW5nU3Bpbm5lcldvcmtJdGVtcykge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNraW5nU3Bpbm5lcldvcmtJdGVtcyA9IHRydWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja1NwaW5uZXJXb3JrSXRlbXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hlY2tTcGlubmVyV29ya0l0ZW1zKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hlY2tpbmdTcGlubmVyV29ya0l0ZW1zID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Bpbm5lcldvcmtJdGVtQ291bnQpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9zcGlubmVyRGlhbG9nSXNPcGVuKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0RGVmYXVsdFNwaW5uZXJEaWFsb2coKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fc3Bpbm5lckRpYWxvZ0lzT3Blbikge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3BBbGxTcGlubmVyRGlhbG9ncygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIl19
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0aW5nLWZyYW1ld29yay9zcmMvc3Bpbm5lci9kaWFsb2dzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQXNDLGVBQWUsSUFBSSxTQUFTLEVBQUUscUJBQXFCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFN0osT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVwRSxNQUFNLENBQU4sSUFBWSxVQVNYO0FBVEQsV0FBWSxVQUFVO0lBQ2xCLDZCQUFlLENBQUE7SUFDZixpQ0FBbUIsQ0FBQTtJQUNuQiw2QkFBZSxDQUFBO0lBQ2YsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7SUFDakIsaUNBQW1CLENBQUE7SUFDbkIsMkJBQWEsQ0FBQTtJQUNiLDZDQUErQixDQUFBO0FBQ25DLENBQUMsRUFUVyxVQUFVLEtBQVYsVUFBVSxRQVNyQjtBQUdELE1BQU0sT0FBTyxjQUFjO0lBUXZCLElBQVcsbUJBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBVjdCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0Qyx5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDakMsNkJBQXdCLEdBQVksS0FBSyxDQUFDO1FBRTNDLHNCQUFpQixHQUEyQyxFQUFFLENBQUM7SUFPdEUsQ0FBQztJQUVNLHlCQUF5QjtRQUM1QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLGtCQUFrQixDQUFDLE9BQWUsRUFBRSxXQUFtQixFQUFFLFFBQWdCO1FBQzVFLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBRWpDLElBQUksYUFBYSxHQUFvQixJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzNELGFBQWEsQ0FBQyxJQUFJLEdBQUc7WUFDakIsT0FBTyxFQUFFLE9BQU87WUFDaEIsV0FBVyxFQUFFLFdBQVc7WUFDeEIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQztRQUNGLGFBQWEsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQzdCLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRWxDLElBQUksU0FBUyxHQUF5QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUU5RyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNuQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV2QyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsOEVBQThFO0lBQ3ZFLHFCQUFxQjtRQUN4QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLEtBQUssSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNoQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO1lBQ3JDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFTSxxQkFBcUI7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7U0FDakM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ2hDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7WUFDckMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVPLHFCQUFxQjtRQUN6QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2FBQ3BDO1NBQ0o7YUFBTSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUNsQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUNoQztJQUNMLENBQUM7K0dBekZRLGNBQWM7bUhBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgVGVtcGxhdGVSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYsIE1hdExlZ2FjeURpYWxvZyBhcyBNYXREaWFsb2csIE1hdExlZ2FjeURpYWxvZ0NvbmZpZyBhcyBNYXREaWFsb2dDb25maWcgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZ1wiO1xyXG5cclxuaW1wb3J0IHsgU3Bpbm5lckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gXCIuL3NwaW5uZXItZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IGVudW0gRGlhbG9nVHlwZSB7XHJcbiAgICBFUlJPUiA9IFwiRXJyb3JcIixcclxuICAgIFdBUk5JTkcgPSBcIldhcm5pbmdcIixcclxuICAgIEFMRVJUID0gXCJBbGVydFwiLFxyXG4gICAgU1VDQ0VTUyA9IFwiU3VjY2VlZFwiLFxyXG4gICAgRkFJTEVEID0gXCJGYWlsZWRcIixcclxuICAgIENPTkZJUk0gPSBcIkNvbmZpcm1cIixcclxuICAgIElORk8gPSBcIkluZm9cIixcclxuICAgIFZBTElEQVRJT04gPSBcIlZhbGlkYXRpb24gRXJyb3JcIixcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nc1NlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgX3NwaW5uZXJEaWFsb2dJc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgc3Bpbm5lcldvcmtJdGVtQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgICBwcml2YXRlIGNoZWNraW5nU3Bpbm5lcldvcmtJdGVtczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBzcGlubmVyRGlhbG9nUmVmczogTWF0RGlhbG9nUmVmPFNwaW5uZXJEaWFsb2dDb21wb25lbnQ+W10gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNwaW5uZXJEaWFsb2dJc09wZW4oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NwaW5uZXJEaWFsb2dJc09wZW47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGFydERlZmF1bHRTcGlubmVyRGlhbG9nKCk6IE1hdERpYWxvZ1JlZjxTcGlubmVyRGlhbG9nQ29tcG9uZW50PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRTcGlubmVyRGlhbG9nKFwiUGxlYXNlIHdhaXQuLi5cIiwgMywgMzApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGFydFNwaW5uZXJEaWFsb2cobWVzc2FnZTogc3RyaW5nLCBzdHJva2VXaWR0aDogbnVtYmVyLCBkaWFtZXRlcjogbnVtYmVyKTogTWF0RGlhbG9nUmVmPFNwaW5uZXJEaWFsb2dDb21wb25lbnQ+IHtcclxuICAgICAgICBpZiAodGhpcy5fc3Bpbm5lckRpYWxvZ0lzT3Blbikge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3NwaW5uZXJEaWFsb2dJc09wZW4gPSB0cnVlO1xyXG5cclxuICAgICAgICBsZXQgY29uZmlndXJhdGlvbjogTWF0RGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGF0YSA9IHtcclxuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IHN0cm9rZVdpZHRoLFxyXG4gICAgICAgICAgICBkaWFtZXRlcjogZGlhbWV0ZXJcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24ud2lkdGggPSBcIjEzZW1cIjtcclxuICAgICAgICBjb25maWd1cmF0aW9uLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcblxyXG4gICAgICAgIGxldCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTcGlubmVyRGlhbG9nQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oU3Bpbm5lckRpYWxvZ0NvbXBvbmVudCwgY29uZmlndXJhdGlvbik7XHJcblxyXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NwaW5uZXJEaWFsb2dJc09wZW4gPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zcGlubmVyRGlhbG9nUmVmcy5wdXNoKGRpYWxvZ1JlZik7XHJcblxyXG4gICAgICAgIHJldHVybiBkaWFsb2dSZWY7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTGV0IHRoZXJlIGJlIGFuIGFsdGVybmF0aXZlLCBnbG9iYWwgd2F5IHRvIHN0b3AgYWxsIGFjdGl2ZSBzcGlubmVyIGRpYWxvZ3MuXHJcbiAgICBwdWJsaWMgc3RvcEFsbFNwaW5uZXJEaWFsb2dzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lcldvcmtJdGVtQ291bnQgPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGRpYWxvZ1JlZiBvZiB0aGlzLnNwaW5uZXJEaWFsb2dSZWZzKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNwaW5uZXJEaWFsb2dSZWZzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZFNwaW5uZXJXb3JrSXRlbSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJXb3JrSXRlbUNvdW50Kys7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNraW5nU3Bpbm5lcldvcmtJdGVtcykge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNraW5nU3Bpbm5lcldvcmtJdGVtcyA9IHRydWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja1NwaW5uZXJXb3JrSXRlbXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVTcGlubmVyV29ya0l0ZW0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyV29ya0l0ZW1Db3VudC0tO1xyXG4gICAgICAgIGlmICh0aGlzLnNwaW5uZXJXb3JrSXRlbUNvdW50IDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJXb3JrSXRlbUNvdW50ID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNraW5nU3Bpbm5lcldvcmtJdGVtcykge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNraW5nU3Bpbm5lcldvcmtJdGVtcyA9IHRydWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja1NwaW5uZXJXb3JrSXRlbXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hlY2tTcGlubmVyV29ya0l0ZW1zKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hlY2tpbmdTcGlubmVyV29ya0l0ZW1zID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Bpbm5lcldvcmtJdGVtQ291bnQpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9zcGlubmVyRGlhbG9nSXNPcGVuKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0RGVmYXVsdFNwaW5uZXJEaWFsb2coKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fc3Bpbm5lckRpYWxvZ0lzT3Blbikge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3BBbGxTcGlubmVyRGlhbG9ncygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIl19
@@ -22,9 +22,8 @@ export class SpinnerDialogComponent {
22
22
  }
23
23
  }
24
24
  }
25
- }
26
- SpinnerDialogComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpinnerDialogComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
27
- SpinnerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SpinnerDialogComponent, selector: "spinner-dialog", inputs: { strokeWidth: "strokeWidth", diameter: "diameter", message: "message" }, ngImport: i0, template: `
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpinnerDialogComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SpinnerDialogComponent, selector: "spinner-dialog", inputs: { strokeWidth: "strokeWidth", diameter: "diameter", message: "message" }, ngImport: i0, template: `
28
27
  <div mat-dialog-content class="full-height padded">
29
28
  <div class="full-width full-height t">
30
29
  <div class="tr">
@@ -39,8 +38,9 @@ SpinnerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
39
38
  </div>
40
39
  <div mat-dialog-actions class="not-rendered">
41
40
  </div>
42
- `, isInline: true, styles: [".t{display:table}.tr{display:table-row}.td{display:table-cell}.full-height{height:100%}.full-width{width:100%}.vertical-center{vertical-align:middle}.padded{padding-top:.4em;padding-bottom:.4em}.not-rendered{padding:0;margin:0;min-height:0;max-height:0;height:0}\n"], dependencies: [{ kind: "directive", type: i1.MatLegacyDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatLegacyDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i2.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }] });
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpinnerDialogComponent, decorators: [{
41
+ `, isInline: true, styles: [".t{display:table}.tr{display:table-row}.td{display:table-cell}.full-height{height:100%}.full-width{width:100%}.vertical-center{vertical-align:middle}.padded{padding-top:.4em;padding-bottom:.4em}.not-rendered{padding:0;margin:0;min-height:0;max-height:0;height:0}\n"], dependencies: [{ kind: "directive", type: i1.MatLegacyDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatLegacyDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i2.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }] }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpinnerDialogComponent, decorators: [{
44
44
  type: Component,
45
45
  args: [{ selector: "spinner-dialog", template: `
46
46
  <div mat-dialog-content class="full-height padded">
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
71
71
  type: Input,
72
72
  args: ["message"]
73
73
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0aW5nLWZyYW1ld29yay9zcmMvc3Bpbm5lci9zcGlubmVyLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxlQUFlLEVBQUUsa0JBQWtCLElBQUksWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7QUE4QzlILE1BQU0sT0FBTyxzQkFBc0I7SUFNL0IsWUFBb0IsU0FBK0MsRUFDdEIsSUFBSTtRQUQ3QixjQUFTLEdBQVQsU0FBUyxDQUFzQztRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFBO1FBTjNCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFFdkIsWUFBTyxHQUFXLFlBQVksQ0FBQztRQUk3QyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUNwQztZQUNELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3RDO1lBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDNUM7U0FDSjtJQUNMLENBQUM7O29IQW5CUSxzQkFBc0Isb0RBT1gsZUFBZTt3R0FQMUIsc0JBQXNCLHdJQTFDckI7Ozs7Ozs7Ozs7Ozs7OztLQWVUOzRGQTJCUSxzQkFBc0I7a0JBNUNsQyxTQUFTOytCQUNJLGdCQUFnQixZQUNoQjs7Ozs7Ozs7Ozs7Ozs7O0tBZVQ7OzBCQWtDWSxNQUFNOzJCQUFDLGVBQWU7NENBTmIsV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQUNELFFBQVE7c0JBQTFCLEtBQUs7dUJBQUMsVUFBVTtnQkFFQyxPQUFPO3NCQUF4QixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtNQVRfTEVHQUNZX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSwgTWF0TGVnYWN5RGlhbG9nUmVmIGFzIE1hdERpYWxvZ1JlZn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2dcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwic3Bpbm5lci1kaWFsb2dcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiZnVsbC1oZWlnaHQgcGFkZGVkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZ1bGwtd2lkdGggZnVsbC1oZWlnaHQgdFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZCB2ZXJ0aWNhbC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bWF0LXNwaW5uZXIgW2hpZGRlbl09XCJmYWxzZVwiIHN0cm9rZVdpZHRoPVwie3tzdHJva2VXaWR0aH19XCIgW2RpYW1ldGVyXT1cImRpYW1ldGVyXCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZCB2ZXJ0aWNhbC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICB7e21lc3NhZ2V9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJub3QtcmVuZGVyZWRcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgc3R5bGVzOiBbYFxyXG4gICAgICAgIC50ICB7IGRpc3BsYXk6IHRhYmxlOyB9XHJcbiAgICAgICAgLnRyIHsgZGlzcGxheTogdGFibGUtcm93OyB9XHJcbiAgICAgICAgLnRkIHsgZGlzcGxheTogdGFibGUtY2VsbDsgfVxyXG5cclxuICAgICAgICAuZnVsbC1oZWlnaHQgeyBoZWlnaHQ6IDEwMCU7IH1cclxuICAgICAgICAuZnVsbC13aWR0aCAgeyB3aWR0aDogIDEwMCU7IH1cclxuXHJcbiAgICAgICAgLnZlcnRpY2FsLWNlbnRlciB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cclxuXHJcbiAgICAgICAgLnBhZGRlZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjRlbTtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNGVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm5vdC1yZW5kZXJlZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIG1hcmdpbjogIDA7XHJcblxyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICBoZWlnaHQ6ICAgICAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3Bpbm5lckRpYWxvZ0NvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoXCJzdHJva2VXaWR0aFwiKSBzdHJva2VXaWR0aDogbnVtYmVyID0gMztcclxuICAgIEBJbnB1dChcImRpYW1ldGVyXCIpIGRpYW1ldGVyOiBudW1iZXIgPSAzMDtcclxuXHJcbiAgICBASW5wdXQoXCJtZXNzYWdlXCIpIG1lc3NhZ2U6IHN0cmluZyA9IFwiTG9hZGluZy4uLlwiO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U3Bpbm5lckRpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkYXRhKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICAgICAgICBpZiAoISF0aGlzLmRhdGEubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gdGhpcy5kYXRhLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCEhdGhpcy5kYXRhLmRpYW1ldGVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpYW1ldGVyID0gdGhpcy5kYXRhLmRpYW1ldGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghIXRoaXMuZGF0YS5zdHJva2VXaWR0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdHJva2VXaWR0aCA9IHRoaXMuZGF0YS5zdHJva2VXaWR0aDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0aW5nLWZyYW1ld29yay9zcmMvc3Bpbm5lci9zcGlubmVyLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxlQUFlLEVBQUUsa0JBQWtCLElBQUksWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7QUE4QzlILE1BQU0sT0FBTyxzQkFBc0I7SUFNL0IsWUFBb0IsU0FBK0MsRUFDdEIsSUFBSTtRQUQ3QixjQUFTLEdBQVQsU0FBUyxDQUFzQztRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFBO1FBTjNCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFFdkIsWUFBTyxHQUFXLFlBQVksQ0FBQztRQUk3QyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUNwQztZQUNELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3RDO1lBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDNUM7U0FDSjtJQUNMLENBQUM7K0dBbkJRLHNCQUFzQixvREFPWCxlQUFlO21HQVAxQixzQkFBc0Isd0lBMUNyQjs7Ozs7Ozs7Ozs7Ozs7O0tBZVQ7OzRGQTJCUSxzQkFBc0I7a0JBNUNsQyxTQUFTOytCQUNJLGdCQUFnQixZQUNoQjs7Ozs7Ozs7Ozs7Ozs7O0tBZVQ7OzBCQWtDWSxNQUFNOzJCQUFDLGVBQWU7NENBTmIsV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQUNELFFBQVE7c0JBQTFCLEtBQUs7dUJBQUMsVUFBVTtnQkFFQyxPQUFPO3NCQUF4QixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtNQVRfTEVHQUNZX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSwgTWF0TGVnYWN5RGlhbG9nUmVmIGFzIE1hdERpYWxvZ1JlZn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2dcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwic3Bpbm5lci1kaWFsb2dcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiZnVsbC1oZWlnaHQgcGFkZGVkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZ1bGwtd2lkdGggZnVsbC1oZWlnaHQgdFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZCB2ZXJ0aWNhbC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bWF0LXNwaW5uZXIgW2hpZGRlbl09XCJmYWxzZVwiIHN0cm9rZVdpZHRoPVwie3tzdHJva2VXaWR0aH19XCIgW2RpYW1ldGVyXT1cImRpYW1ldGVyXCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZCB2ZXJ0aWNhbC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICB7e21lc3NhZ2V9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJub3QtcmVuZGVyZWRcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgc3R5bGVzOiBbYFxyXG4gICAgICAgIC50ICB7IGRpc3BsYXk6IHRhYmxlOyB9XHJcbiAgICAgICAgLnRyIHsgZGlzcGxheTogdGFibGUtcm93OyB9XHJcbiAgICAgICAgLnRkIHsgZGlzcGxheTogdGFibGUtY2VsbDsgfVxyXG5cclxuICAgICAgICAuZnVsbC1oZWlnaHQgeyBoZWlnaHQ6IDEwMCU7IH1cclxuICAgICAgICAuZnVsbC13aWR0aCAgeyB3aWR0aDogIDEwMCU7IH1cclxuXHJcbiAgICAgICAgLnZlcnRpY2FsLWNlbnRlciB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cclxuXHJcbiAgICAgICAgLnBhZGRlZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjRlbTtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNGVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm5vdC1yZW5kZXJlZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIG1hcmdpbjogIDA7XHJcblxyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICBoZWlnaHQ6ICAgICAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3Bpbm5lckRpYWxvZ0NvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoXCJzdHJva2VXaWR0aFwiKSBzdHJva2VXaWR0aDogbnVtYmVyID0gMztcclxuICAgIEBJbnB1dChcImRpYW1ldGVyXCIpIGRpYW1ldGVyOiBudW1iZXIgPSAzMDtcclxuXHJcbiAgICBASW5wdXQoXCJtZXNzYWdlXCIpIG1lc3NhZ2U6IHN0cmluZyA9IFwiTG9hZGluZy4uLlwiO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U3Bpbm5lckRpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkYXRhKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICAgICAgICBpZiAoISF0aGlzLmRhdGEubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gdGhpcy5kYXRhLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCEhdGhpcy5kYXRhLmRpYW1ldGVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpYW1ldGVyID0gdGhpcy5kYXRhLmRpYW1ldGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghIXRoaXMuZGF0YS5zdHJva2VXaWR0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdHJva2VXaWR0aCA9IHRoaXMuZGF0YS5zdHJva2VXaWR0aDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG59XHJcbiJdfQ==