ngx-sumax-erp-components 1.0.38 → 1.0.40
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.
|
@@ -210,7 +210,7 @@ export class DialogAgGridSearchComponent {
|
|
|
210
210
|
get ngStyleContainer() {
|
|
211
211
|
return {
|
|
212
212
|
width: "100%",
|
|
213
|
-
height: "
|
|
213
|
+
height: "25em",
|
|
214
214
|
};
|
|
215
215
|
}
|
|
216
216
|
get ngStyleAgGrid() {
|
|
@@ -235,11 +235,11 @@ export class DialogAgGridSearchComponent {
|
|
|
235
235
|
this.gridApi?.setGridOption("quickFilterText", value);
|
|
236
236
|
}
|
|
237
237
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DialogAgGridSearchComponent, deps: [{ token: i1.MatDialogRef }, { token: i0.ChangeDetectorRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
238
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: DialogAgGridSearchComponent, selector: "lib-dialog-ag-grid-search", inputs: { rowData: "rowData", columnDefs: "columnDefs", tittle: "tittle", rowSelection: "rowSelection", pagination: "pagination" }, outputs: { onSelectRow: "onSelectRow" }, viewQueries: [{ propertyName: "btnAceptar", first: true, predicate: ["btnAceptar"], descendants: true }, { propertyName: "btnCancelar", first: true, predicate: ["btnCancelar"], descendants: true }, { propertyName: "elTxtBuscar", first: true, predicate: ["elTxtBuscar"], descendants: true }, { propertyName: "agGrid", first: true, predicate: ["agGrid"], descendants: true }, { propertyName: "elbPageSize", first: true, predicate: ["lbPageSize"], descendants: true }, { propertyName: "elbCurrentPage", first: true, predicate: ["lbCurrentPage"], descendants: true }, { propertyName: "elbTotalPages", first: true, predicate: ["lbTotalPages"], descendants: true }, { propertyName: "_scAgGridPagination", first: true, predicate: ["agGridPagination"], descendants: true }], ngImport: i0, template: "<div class=\"row w-100 m-0\">\r\n <div class=\"col-12\">\r\n <div class=\"sumax-dialog-head\">\r\n <div style=\"display: flex; align-items: center; gap: 0.5rem\">\r\n <div class=\"mr-3\"><i class=\"fa fa-list\" style=\"font-size: 1.25em !important; color: #646c9a\"></i></div>\r\n <h3\r\n class=\"sumax-dialog-head-title py-1 mr-1\"\r\n style=\"line-height: 1.2; font-family: Soho Gothic Pro; -ms-text-size-adjust: 100%; -webkit-font-smoothing: antialiased\">\r\n <strong>{{ tittle }}</strong>\r\n </h3>\r\n </div>\r\n </div>\r\n <mat-dialog-content class=\"p-3\">\r\n <div class=\"modal-body px-3 py-0\">\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-5 my-2\">\r\n <input-search (onChange)=\"changeFilter($event)\"></input-search>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12\" [ngStyle]=\"ngStyleContainer\">\r\n <ag-grid-angular\r\n #agGrid\r\n class=\"ag-theme-balham\"\r\n [ngStyle]=\"ngStyleAgGrid\"\r\n [columnDefs]=\"columnDefs\"\r\n [context]=\"_context\"\r\n [rowSelection]=\"'single'\"\r\n [isRowSelectable]=\"isRowSelectable\"\r\n [rowDragManaged]=\"false\"\r\n [domLayout]=\"'normal'\"\r\n [overlayNoRowsTemplate]=\"overlayNoRowsTemplate\"\r\n [overlayLoadingTemplate]=\"overlayLoadingTemplate\"\r\n [suppressPropertyNamesCheck]=\"true\"\r\n [paginationPageSize]=\"pagination ? paginationPageSize : undefined\"\r\n [pagination]=\"pagination\"\r\n [suppressPaginationPanel]=\"true\"\r\n (gridReady)=\"onGridReady($event.api)\"\r\n (selectionChanged)=\"onSelectedChange()\"\r\n (paginationChanged)=\"paginationChanged()\"\r\n [enableCellTextSelection]=\"true\"\r\n oncontextmenu=\"return false;\">\r\n </ag-grid-angular>\r\n </div>\r\n </div>\r\n <div class=\"col-12 pt-2\">\r\n <sc-ag-grid-pagination\r\n #agGridPagination\r\n [gridApi]=\"gridApi\"\r\n [paginationPageSize]=\"paginationPageSize\"\r\n [pageSizeOptions]=\"[5, 10, 15, 20, 25]\"></sc-ag-grid-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"pl-3\">\r\n <div\r\n class=\"row pt-3 pb-3 w-100\"\r\n style=\"border-top: 1px solid #ebedf2; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px\">\r\n <div class=\"col-lg-12 d-flex justify-content-end my-auto gap-1\">\r\n <button\r\n style=\"width: 110px\"\r\n #btnAceptar\r\n (click)=\"guardar()\"\r\n [disabled]=\"disableAceptar\"\r\n (keyup.ArrowUp)=\"focusLastRow()\"\r\n (keyup.ArrowRight)=\"btnCancelar.focus()\"\r\n type=\"button\"\r\n class=\"btn btn-sm btn-success mr-3\">\r\n Aceptar\r\n </button>\r\n <button\r\n style=\"width: 110px\"\r\n #btnCancelar\r\n (click)=\"closeDialog()\"\r\n (keyup.ArrowUp)=\"focusLastRow()\"\r\n (keyup.ArrowLeft)=\"btnAceptar.focus()\"\r\n type=\"button\"\r\n class=\"btn btn-sm btn-danger\">\r\n Cancelar\r\n </button>\r\n </div>\r\n </div>\r\n </mat-dialog-actions>\r\n </div>\r\n</div>\r\n", styles: ["#paginacion{margin:0;padding:0}#paginacion>nav>ul>li>a>i{margin:0;padding:0}#paginacion>nav>ul>li>a{cursor:pointer}#paginacion>nav>ul>li>a,#paginacion>nav>ul>li>span,.totalRegistros{font-size:1rem}.totalRegistros>span{padding-left:4px;font-size:1rem}button[disabled]{pointer-events:none}.sumax-dialog{display:-webkit-box;display:flex;-webkit-box-flex:1;flex-grow:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;box-shadow:0 0 13px #523f690d;background-color:#fff;border-radius:4px;margin-bottom:0!important}.sumax-dialog-head{padding:0 15px;min-height:50px;display:flex;align-items:stretch;justify-content:space-between;position:relative;border-bottom:1px solid #ebedf2;border-top-left-radius:4px;border-top-right-radius:4px}.sumax-dialog-head-title{margin:0;padding:0;font-size:1.2rem;font-weight:500;color:#48465b}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "suppressAdvancedFilterEval", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDuration", "cellFlashDelay", "cellFadeDuration", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4.ScAgGridPaginationComponent, selector: "sc-ag-grid-pagination", inputs: ["paginationPageSize", "gridApi", "pageSizeOptions"] }, { kind: "component", type: i5.InputSearchComponent, selector: "input-search", outputs: ["onChange"] }] }); }
|
|
238
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: DialogAgGridSearchComponent, selector: "lib-dialog-ag-grid-search", inputs: { rowData: "rowData", columnDefs: "columnDefs", tittle: "tittle", rowSelection: "rowSelection", pagination: "pagination" }, outputs: { onSelectRow: "onSelectRow" }, viewQueries: [{ propertyName: "btnAceptar", first: true, predicate: ["btnAceptar"], descendants: true }, { propertyName: "btnCancelar", first: true, predicate: ["btnCancelar"], descendants: true }, { propertyName: "elTxtBuscar", first: true, predicate: ["elTxtBuscar"], descendants: true }, { propertyName: "agGrid", first: true, predicate: ["agGrid"], descendants: true }, { propertyName: "elbPageSize", first: true, predicate: ["lbPageSize"], descendants: true }, { propertyName: "elbCurrentPage", first: true, predicate: ["lbCurrentPage"], descendants: true }, { propertyName: "elbTotalPages", first: true, predicate: ["lbTotalPages"], descendants: true }, { propertyName: "_scAgGridPagination", first: true, predicate: ["agGridPagination"], descendants: true }], ngImport: i0, template: "<div class=\"container w-100\">\r\n <div class=\"row\">\r\n <div class=\"sumax-dialog-head\">\r\n <div style=\"display: flex; align-items: center; gap: 0.5rem\">\r\n <div class=\"mr-3\"><i class=\"fa fa-list\" style=\"font-size: 1.25em !important; color: #646c9a\"></i></div>\r\n <h3\r\n class=\"sumax-dialog-head-title py-1 mr-1\"\r\n style=\"line-height: 1.2; font-family: Soho Gothic Pro; -ms-text-size-adjust: 100%; -webkit-font-smoothing: antialiased\">\r\n <strong>{{ tittle }}</strong>\r\n </h3>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row mx-1\">\r\n <div class=\"col-12\">\r\n <div class=\"row\">\r\n <div class=\"col-5 my-2\">\r\n <input-search (onChange)=\"changeFilter($event)\"></input-search>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12\" [ngStyle]=\"ngStyleContainer\">\r\n <ag-grid-angular\r\n #agGrid\r\n class=\"ag-theme-balham\"\r\n [ngStyle]=\"ngStyleAgGrid\"\r\n [columnDefs]=\"columnDefs\"\r\n [context]=\"_context\"\r\n [rowSelection]=\"'single'\"\r\n [isRowSelectable]=\"isRowSelectable\"\r\n [rowDragManaged]=\"false\"\r\n [domLayout]=\"'normal'\"\r\n [overlayNoRowsTemplate]=\"overlayNoRowsTemplate\"\r\n [overlayLoadingTemplate]=\"overlayLoadingTemplate\"\r\n [suppressPropertyNamesCheck]=\"true\"\r\n [paginationPageSize]=\"pagination ? paginationPageSize : undefined\"\r\n [pagination]=\"pagination\"\r\n [suppressPaginationPanel]=\"true\"\r\n (gridReady)=\"onGridReady($event.api)\"\r\n (selectionChanged)=\"onSelectedChange()\"\r\n (paginationChanged)=\"paginationChanged()\"\r\n [enableCellTextSelection]=\"true\"\r\n oncontextmenu=\"return false;\">\r\n </ag-grid-angular>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12 py-2\">\r\n <sc-ag-grid-pagination\r\n #agGridPagination\r\n [gridApi]=\"gridApi\"\r\n [paginationPageSize]=\"paginationPageSize\"\r\n [pageSizeOptions]=\"[5, 10, 15, 20, 25]\"></sc-ag-grid-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div\r\n class=\"row pt-3 pb-3 w-100\"\r\n style=\"border-top: 1px solid #ebedf2; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px\">\r\n <div class=\"col-lg-12 d-flex justify-content-end my-auto gap-1\">\r\n <button\r\n style=\"width: 110px\"\r\n #btnAceptar\r\n (click)=\"guardar()\"\r\n [disabled]=\"disableAceptar\"\r\n (keyup.ArrowUp)=\"focusLastRow()\"\r\n (keyup.ArrowRight)=\"btnCancelar.focus()\"\r\n type=\"button\"\r\n class=\"btn btn-sm btn-success mr-3\">\r\n Aceptar\r\n </button>\r\n <button\r\n style=\"width: 110px\"\r\n #btnCancelar\r\n (click)=\"closeDialog()\"\r\n (keyup.ArrowUp)=\"focusLastRow()\"\r\n (keyup.ArrowLeft)=\"btnAceptar.focus()\"\r\n type=\"button\"\r\n class=\"btn btn-sm btn-danger\">\r\n Cancelar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["#paginacion{margin:0;padding:0}#paginacion>nav>ul>li>a>i{margin:0;padding:0}#paginacion>nav>ul>li>a{cursor:pointer}#paginacion>nav>ul>li>a,#paginacion>nav>ul>li>span,.totalRegistros{font-size:1rem}.totalRegistros>span{padding-left:4px;font-size:1rem}button[disabled]{pointer-events:none}.sumax-dialog{display:-webkit-box;display:flex;-webkit-box-flex:1;flex-grow:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;box-shadow:0 0 13px #523f690d;background-color:#fff;border-radius:4px;margin-bottom:0!important}.sumax-dialog-head{padding:0 15px;min-height:50px;display:flex;align-items:stretch;justify-content:space-between;position:relative;border-bottom:1px solid #ebedf2;border-top-left-radius:4px;border-top-right-radius:4px}.sumax-dialog-head-title{margin:0;padding:0;font-size:1.2rem;font-weight:500;color:#48465b}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "suppressAdvancedFilterEval", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDuration", "cellFlashDelay", "cellFadeDuration", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "component", type: i4.ScAgGridPaginationComponent, selector: "sc-ag-grid-pagination", inputs: ["paginationPageSize", "gridApi", "pageSizeOptions"] }, { kind: "component", type: i5.InputSearchComponent, selector: "input-search", outputs: ["onChange"] }] }); }
|
|
239
239
|
}
|
|
240
240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DialogAgGridSearchComponent, decorators: [{
|
|
241
241
|
type: Component,
|
|
242
|
-
args: [{ selector: 'lib-dialog-ag-grid-search', template: "<div class=\"
|
|
242
|
+
args: [{ selector: 'lib-dialog-ag-grid-search', template: "<div class=\"container w-100\">\r\n <div class=\"row\">\r\n <div class=\"sumax-dialog-head\">\r\n <div style=\"display: flex; align-items: center; gap: 0.5rem\">\r\n <div class=\"mr-3\"><i class=\"fa fa-list\" style=\"font-size: 1.25em !important; color: #646c9a\"></i></div>\r\n <h3\r\n class=\"sumax-dialog-head-title py-1 mr-1\"\r\n style=\"line-height: 1.2; font-family: Soho Gothic Pro; -ms-text-size-adjust: 100%; -webkit-font-smoothing: antialiased\">\r\n <strong>{{ tittle }}</strong>\r\n </h3>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row mx-1\">\r\n <div class=\"col-12\">\r\n <div class=\"row\">\r\n <div class=\"col-5 my-2\">\r\n <input-search (onChange)=\"changeFilter($event)\"></input-search>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12\" [ngStyle]=\"ngStyleContainer\">\r\n <ag-grid-angular\r\n #agGrid\r\n class=\"ag-theme-balham\"\r\n [ngStyle]=\"ngStyleAgGrid\"\r\n [columnDefs]=\"columnDefs\"\r\n [context]=\"_context\"\r\n [rowSelection]=\"'single'\"\r\n [isRowSelectable]=\"isRowSelectable\"\r\n [rowDragManaged]=\"false\"\r\n [domLayout]=\"'normal'\"\r\n [overlayNoRowsTemplate]=\"overlayNoRowsTemplate\"\r\n [overlayLoadingTemplate]=\"overlayLoadingTemplate\"\r\n [suppressPropertyNamesCheck]=\"true\"\r\n [paginationPageSize]=\"pagination ? paginationPageSize : undefined\"\r\n [pagination]=\"pagination\"\r\n [suppressPaginationPanel]=\"true\"\r\n (gridReady)=\"onGridReady($event.api)\"\r\n (selectionChanged)=\"onSelectedChange()\"\r\n (paginationChanged)=\"paginationChanged()\"\r\n [enableCellTextSelection]=\"true\"\r\n oncontextmenu=\"return false;\">\r\n </ag-grid-angular>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12 py-2\">\r\n <sc-ag-grid-pagination\r\n #agGridPagination\r\n [gridApi]=\"gridApi\"\r\n [paginationPageSize]=\"paginationPageSize\"\r\n [pageSizeOptions]=\"[5, 10, 15, 20, 25]\"></sc-ag-grid-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div\r\n class=\"row pt-3 pb-3 w-100\"\r\n style=\"border-top: 1px solid #ebedf2; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px\">\r\n <div class=\"col-lg-12 d-flex justify-content-end my-auto gap-1\">\r\n <button\r\n style=\"width: 110px\"\r\n #btnAceptar\r\n (click)=\"guardar()\"\r\n [disabled]=\"disableAceptar\"\r\n (keyup.ArrowUp)=\"focusLastRow()\"\r\n (keyup.ArrowRight)=\"btnCancelar.focus()\"\r\n type=\"button\"\r\n class=\"btn btn-sm btn-success mr-3\">\r\n Aceptar\r\n </button>\r\n <button\r\n style=\"width: 110px\"\r\n #btnCancelar\r\n (click)=\"closeDialog()\"\r\n (keyup.ArrowUp)=\"focusLastRow()\"\r\n (keyup.ArrowLeft)=\"btnAceptar.focus()\"\r\n type=\"button\"\r\n class=\"btn btn-sm btn-danger\">\r\n Cancelar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["#paginacion{margin:0;padding:0}#paginacion>nav>ul>li>a>i{margin:0;padding:0}#paginacion>nav>ul>li>a{cursor:pointer}#paginacion>nav>ul>li>a,#paginacion>nav>ul>li>span,.totalRegistros{font-size:1rem}.totalRegistros>span{padding-left:4px;font-size:1rem}button[disabled]{pointer-events:none}.sumax-dialog{display:-webkit-box;display:flex;-webkit-box-flex:1;flex-grow:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;box-shadow:0 0 13px #523f690d;background-color:#fff;border-radius:4px;margin-bottom:0!important}.sumax-dialog-head{padding:0 15px;min-height:50px;display:flex;align-items:stretch;justify-content:space-between;position:relative;border-bottom:1px solid #ebedf2;border-top-left-radius:4px;border-top-right-radius:4px}.sumax-dialog-head-title{margin:0;padding:0;font-size:1.2rem;font-weight:500;color:#48465b}\n"] }]
|
|
243
243
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
244
244
|
type: Inject,
|
|
245
245
|
args: [MAT_DIALOG_DATA]
|
|
@@ -280,4 +280,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
280
280
|
}], pagination: [{
|
|
281
281
|
type: Input
|
|
282
282
|
}] } });
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWFnLWdyaWQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvZGlhbG9nLWFnLWdyaWQtc2VhcmNoL2RpYWxvZy1hZy1ncmlkLXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2RpYWxvZy1hZy1ncmlkLXNlYXJjaC9kaWFsb2ctYWctZ3JpZC1zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUd6RSxPQUFPLEVBQTRCLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFRbEUsTUFBTSxPQUFPLDJCQUEyQjtJQXVEdEMsc0JBQXNCO0lBQ3RCLFlBQ1UsU0FBb0QsRUFDcEQsSUFBdUIsRUFDTixJQUFTO1FBRjFCLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQ3BELFNBQUksR0FBSixJQUFJLENBQW1CO1FBakR2QixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXJELFlBQU8sR0FBc0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDaEMsc0JBQWlCLEdBQVUsRUFBRSxDQUFDO1FBQ3JCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFckIsY0FBUyxHQUFHLElBQUksV0FBVyxDQUFDLEVB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K0RsQyxNQUFNOzJCQUFDLGVBQWU7eUNBekRBLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDRyxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0UsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNILE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFJVCxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFRRyxZQUFZO3NCQUFwQixLQUFLO2dCQW9CbUIsV0FBVztzQkFBbkMsU0FBUzt1QkFBQyxZQUFZO2dCQUNLLGNBQWM7c0JBQXpDLFNBQVM7dUJBQUMsZUFBZTtnQkFDQyxhQUFhO3NCQUF2QyxTQUFTO3VCQUFDLGNBQWM7Z0JBRWpCLG1CQUFtQjtzQkFEMUIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBR3BCLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7IEdyaWRBcGksIElzUm93U2VsZWN0YWJsZSB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBkZWJvdW5jZVRpbWUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNjQWdHcmlkUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NjLWFnLWdyaWQvc2MtYWctZ3JpZC1wYWdpbmF0aW9uL3NjLWFnLWdyaWQtcGFnaW5hdGlvbi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGlhbG9nLWFnLWdyaWQtc2VhcmNoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLWFnLWdyaWQtc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGlhbG9nLWFnLWdyaWQtc2VhcmNoLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nQWdHcmlkU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYnRuQWNlcHRhcicpIGJ0bkFjZXB0YXIhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2J0bkNhbmNlbGFyJykgYnRuQ2FuY2VsYXIhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2VsVHh0QnVzY2FyJykgZWxUeHRCdXNjYXIhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2FnR3JpZCcpIGFnR3JpZD86IEFnR3JpZEFuZ3VsYXI7XHJcblxyXG5cclxuXHJcbiAgQE91dHB1dCgpIG9uU2VsZWN0Um93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KCkgcm93RGF0YTogT2JzZXJ2YWJsZTxhbnlbXT4gPSBvZihbXSk7XHJcbiAgQElucHV0KCkgY29sdW1uRGVmczogYW55W10gPSBbXTtcclxuICBjb2x1bW5EZWZzQWN0aW9uczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSB0aXR0bGUgPSAnJztcclxuXHJcbiAgdHh0QnVzY2FyID0gbmV3IEZvcm1Db250cm9sKCcnKTtcclxuICAkc3Vic2NyaXB0aW9udHh0QnVzY2FyOiBTdWJzY3JpcHRpb247XHJcblxyXG5cclxuXHJcbiAgLyoqIEJFR0lOOiBDb25maWcgQWctR3JpZCAqL1xyXG4gIEBJbnB1dCgpIHJvd1NlbGVjdGlvbiA9ICdzaW5nbGUnO1xyXG5cclxuICBfY29udGV4dCA9IHsgY29tcG9uZW50UGFyZW50OiB0aGlzIGFzIGFueSB9O1xyXG4gIGlzUm93U2VsZWN0YWJsZTogSXNSb3dTZWxlY3RhYmxlID0gKCkgPT4gdHJ1ZTtcclxuICBncmlkQXBpITogR3JpZEFwaTtcclxuICByb3dEYXRhU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG4gIGRpc2FibGVBY2VwdGFyID0gdHJ1ZTtcclxuXHJcbiAgb3ZlcmxheU5vUm93c1RlbXBsYXRlID1cclxuICAgIGA8c3BhbiBjbGFzcz1cImFnLW92ZXJsYXktbG9hZGluZy1jZW50ZXIgYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgc2hhZG93LW5vbmVcIj5cclxuXHRcdE5vIHNlIGVuY29udHJhcm9uIHJlZ2lzdHJvcy4uLlxyXG5cdFx0PC9zcGFuPmA7XHJcbiAgb3ZlcmxheUxvYWRpbmdUZW1wbGF0ZSA9XHJcbiAgICBgPHNwYW4gY2xhc3M9XCJhZy1vdmVybGF5LWxvYWRpbmctdG9wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgYm9yZGVyLTAgYmctd2hpdGUgc2hhZG93IHAtNCB0ZXh0LWluZm9cIiBzdHlsZT1cImhlaWdodDogMjBweDtcIj5cclxuXHRcdDxpbWcgc3JjPVwiYXNzZXRzL21lZGlhLWRlbW8vbG9hZGluZy5naWZcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjVcIiBjbGFzcz1cIm1yLTJcIj5cclxuXHRcdDxzdHJvbmc+Q2FyZ2FuZG8gcmVnaXN0cm9zPC9zdHJvbmc+XHJcblx0XHQ8L3NwYW4+YDtcclxuICAvKiogRU5EOiBDb25maWcgQWctR3JpZCAqL1xyXG4gIC8qKiBCRUdJTjogUGFnaW5hdGlvbiAqL1xyXG5cclxuICBAVmlld0NoaWxkKCdsYlBhZ2VTaXplJykgZWxiUGFnZVNpemUhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2xiQ3VycmVudFBhZ2UnKSBlbGJDdXJyZW50UGFnZSE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnbGJUb3RhbFBhZ2VzJykgZWxiVG90YWxQYWdlcyE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnYWdHcmlkUGFnaW5hdGlvbicpIFxyXG4gIHByaXZhdGUgX3NjQWdHcmlkUGFnaW5hdGlvbj86IFNjQWdHcmlkUGFnaW5hdGlvbkNvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KCkgcGFnaW5hdGlvbiA9IHRydWU7XHJcbiAgcGFnaW5hdGlvblBhZ2VTaXplID0gMTA7XHJcblxyXG4gIHBhZ2VGb3VuZCE6IGJvb2xlYW47XHJcbiAgcGFnaW5hczogbnVtYmVyW10gPSBbXTtcclxuICBkZXNkZSE6IG51bWJlcjtcclxuICBoYXN0YSE6IG51bWJlcjtcclxuICAvKiogRU5EOiBQYWdpbmF0aW9uICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ0FnR3JpZFNlYXJjaENvbXBvbmVudD4sXHJcbiAgICBwcml2YXRlIGNkcmY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGRhdGE6IGFueVxyXG4gICkge1xyXG5cclxuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnR4dEJ1c2NhciA9IHRoaXMudHh0QnVzY2FyLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMzUwKVxyXG4gICAgKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5mb3JFYWNoTm9kZUFmdGVyRmlsdGVyKChub2RlOiBhbnkpID0+IG5vZGUuc2V0U2VsZWN0ZWQoZmFsc2UpKVxyXG4gICAgICBpZiAoZGF0YSkgdGhpcy5ncmlkQXBpLnNldFF1aWNrRmlsdGVyKGRhdGEpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCAoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBzZWxlY3RGaXJzdFNlYXJjaCAoKSB7XHJcbiAgICBpZiAoIXRoaXMuZ3JpZEFwaSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb2x1bW5EZWZzQWN0aW9ucy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHJvd0RhdGEgPSBbXTtcclxuICAgIHRoaXMuZ3JpZEFwaS5mb3JFYWNoTm9kZSgobm9kZTogYW55KSA9PiByb3dEYXRhLnB1c2gobm9kZS5kYXRhKSk7XHJcbiAgICBpZiAocm93RGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5idG5BY2VwdGFyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIC8vIHJldHVybiByb3dEYXRhO1xyXG4gICAgdGhpcy5ncmlkQXBpLmZvckVhY2hOb2RlQWZ0ZXJGaWx0ZXIoKG5vZGU6IGFueSkgPT4gbm9kZS5yb3dJbmRleCA/IDAgOiBub2RlLnNldFNlbGVjdGVkKHRydWUpKVxyXG4gICAgdGhpcy5ncmlkQXBpLnNldEZvY3VzZWRDZWxsKDAsIHRoaXMuY29sdW1uRGVmc0FjdGlvbnNbMV0uZmllbGQpO1xyXG5cclxuICB9XHJcblxyXG4gIGZvY3VzTGFzdFJvdyAoKSB7XHJcbiAgICBsZXQgbGFzdEluZGV4ID0gLTE7XHJcbiAgICB0aGlzLmdyaWRBcGkuZm9yRWFjaE5vZGVBZnRlckZpbHRlcigobm9kZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChub2RlLnJvd0luZGV4ID4gbGFzdEluZGV4KSB7XHJcbiAgICAgICAgbGFzdEluZGV4ID0gbm9kZS5yb3dJbmRleDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAobGFzdEluZGV4ID09PSAtMSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyaWRBcGkuc2V0Rm9jdXNlZENlbGwobGFzdEluZGV4LCB0aGlzLmNvbHVtbkRlZnNBY3Rpb25zWzFdLmZpZWxkKTtcclxuICB9XHJcbiAgb25DZWxsS2V5UHJlc3MgKGU6IGFueSkge1xyXG4gICAgbGV0IGtleVByZXNzZWQgPSBlLmV2ZW50LmtleTtcclxuICAgIGlmIChrZXlQcmVzc2VkID09PSAnRW50ZXInKSB7XHJcbiAgICAgIGxldCByb3dOb2RlID0gZS5ub2RlO1xyXG4gICAgICBpZiAocm93Tm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICAgIHRoaXMuYnRuQWNlcHRhci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcm93Tm9kZS5zZXRTZWxlY3RlZCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBndWFyZGFyICgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZ3JpZEFwaS5nZXRTZWxlY3RlZFJvd3MoKSk7XHJcbiAgfVxyXG4gIGNsb3NlRGlhbG9nICgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKFtdKTtcclxuICB9XHJcbiAgLyoqIEJFR0lOOiBFdmVudHMgQ29uZmlnIEFnLUdyaWQgKi9cclxuICBvbkdyaWRSZWFkeSAoZ3JpZEFwaTogR3JpZEFwaSkge1xyXG4gICAgdGhpcy5jb2x1bW5EZWZzQWN0aW9ucyA9IHRoaXMuY29sdW1uRGVmcy5jb25jYXQoW1xyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyTmFtZTogJycsXHJcbiAgICAgICAgZmllbGQ6ICcnLFxyXG4gICAgICAgIHdpZHRoOiA0MCxcclxuICAgICAgICBtaW5XaWR0aDogNDAsXHJcbiAgICAgICAgbWF4V2lkdGg6IDQwLFxyXG4gICAgICAgIGNoZWNrYm94U2VsZWN0aW9uIChwYXJhbXM6IGFueSkge1xyXG4gICAgICAgICAgcmV0dXJuIHBhcmFtcy5jb2x1bW5BcGkuZ2V0Um93R3JvdXBDb2x1bW5zKCkubGVuZ3RoID09PSAwO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcGlubmVkOiAnbGVmdCcsXHJcbiAgICAgICAgc29ydGFibGU6IGZhbHNlLFxyXG4gICAgICAgIGxvY2tQb3NpdGlvbjogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICBdKTtcclxuXHJcbiAgICB0aGlzLmdyaWRBcGkgPSBncmlkQXBpO1xyXG4gICAgdGhpcy5pbml0Um93RGF0YSgpO1xyXG4gIH1cclxuICAvKiogRU5EOiBFdmVudHMgQ29uZmlnIEFnLUdyaWQgKi9cclxuICAvKiogQkVHSU46IEV2ZW50cyBkZSBkZXNwbGF6YW1pZW50byBlbiBhZy1ncmlkICovXHJcbiAgb25QYWdpbmF0aW9uQ2hhbmdlZCAoKSB7XHJcbiAgICBpZiAoIXRoaXMuZ3JpZEFwaSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wYWdpbmF0aW9uICYmIHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0Um93Q291bnQoKSA+IC0xKSB7XHJcbiAgICAgIHRoaXMuZWxiUGFnZVNpemUubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFJvd0NvdW50KCk7XHJcbiAgICAgIHRoaXMuZWxiQ3VycmVudFBhZ2UubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCkgKyAxO1xyXG4gICAgICB0aGlzLmVsYlRvdGFsUGFnZXMubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKTtcclxuICAgICAgLy8gdGhpcy5lbGJ0TGFzdC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCAhdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25Jc0xhc3RQYWdlRm91bmQoKSk7XHJcbiAgICAgIHRoaXMucGFnZUZvdW5kID0gdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRUb3RhbFBhZ2VzKCkgPCAxO1xyXG4gICAgICB0aGlzLmRlc2RlID0gTWF0aC5taW4oTWF0aC5tYXgoMSwgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRDdXJyZW50UGFnZSgpIC0gMiksIHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0VG90YWxQYWdlcygpIC0gMik7XHJcbiAgICAgIHRoaXMuaGFzdGEgPSBNYXRoLm1heChNYXRoLm1pbih0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKSwgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRDdXJyZW50UGFnZSgpICsgMiksIDUpO1xyXG4gICAgICBpZiAodGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRUb3RhbFBhZ2VzKCkgPiA1KSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmFzID0gbmV3IEFycmF5KHRoaXMuaGFzdGEgLSB0aGlzLmRlc2RlICsgMSkuZmlsbCgwKS5tYXAoKHZhbG9yLCBpbmRpY2UpID0+IGluZGljZSArIHRoaXMuZGVzZGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucGFnaW5hcyA9IG5ldyBBcnJheSh0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKSkuZmlsbCgwKS5tYXAoKHZhbG9yLCBpbmRpY2UpID0+IGluZGljZSArIDEpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuICBvbkJ0Rmlyc3QgKCkge1xyXG4gICAgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25Hb1RvRmlyc3RQYWdlKCk7XHJcbiAgICB0aGlzLmF1dG9TaXplQ29sdW1ucygpO1xyXG4gIH1cclxuICBvbkJ0UHJldmlvdXMgKCkge1xyXG4gICAgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25Hb1RvUHJldmlvdXNQYWdlKCk7XHJcbiAgICB0aGlzLmF1dG9TaXplQ29sdW1ucygpO1xyXG4gIH1cclxuICBvbkJ0TmV4dCAoKSB7XHJcbiAgICB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdvVG9OZXh0UGFnZSgpO1xyXG4gICAgdGhpcy5hdXRvU2l6ZUNvbHVtbnMoKTtcclxuICB9XHJcbiAgb25CdExhc3QgKCkge1xyXG4gICAgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25Hb1RvTGFzdFBhZ2UoKTtcclxuICAgIHRoaXMuYXV0b1NpemVDb2x1bW5zKCk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VTaXplQ2hhbmdlZCAoZXZ0OiBhbnkpIHtcclxuICAgIHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uU2V0UGFnZVNpemUoTnVtYmVyKGV2dC50YXJnZXQudmFsdWUpKTtcclxuICB9XHJcbiAgb25Hb1RvUGFnZSAocGFnZTogYW55KSB7XHJcbiAgICB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdvVG9QYWdlKHBhZ2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEVORDogRXZlbnRzIGRlIGRlc3BsYXphbWllbnRvIGVuIGFnLWdyaWQgKi9cclxuICAvKiogQkVHSU46IFVUSUxTICAqL1xyXG4gIGluaXRSb3dEYXRhICgpIHtcclxuICAgIGlmICh0aGlzLnJvd0RhdGFTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5yb3dEYXRhU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5zZXRHcmlkT3B0aW9uKFwicm93RGF0YVwiLCBbXSk7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5zaG93TG9hZGluZ092ZXJsYXkoKTtcclxuICAgIH1cclxuICAgIHRoaXMucm93RGF0YVN1YnNjcmlwdGlvbiA9IHRoaXMucm93RGF0YS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgdGhpcy5ncmlkQXBpLnNldEdyaWRPcHRpb24oXCJyb3dEYXRhXCIsIGRhdGEpO1xyXG4gICAgICBpZiAodGhpcy5jb2x1bW5EZWZzLmxlbmd0aCA9PT0gMCAmJiBkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBsZXQgY29sdW1uRGVmczogYW55ID0gW107XHJcbiAgICAgICAgbGV0IGtleXMgPSBPYmplY3Qua2V5cyhkYXRhWzBdKTtcclxuICAgICAgICBrZXlzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIGRhdGFbMF1bZWxlbWVudF0gIT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbkRlZnMucHVzaCh7IGZpZWxkOiBlbGVtZW50LCBoZWFkZXJOYW1lOiBlbGVtZW50LnRvVXBwZXJDYXNlKCkgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5EZWZzQWN0aW9ucyA9IGNvbHVtbkRlZnMuY29uY2F0KFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgaGVhZGVyTmFtZTogJycsXHJcbiAgICAgICAgICAgIGZpZWxkOiAnJyxcclxuICAgICAgICAgICAgd2lkdGg6IDQwLFxyXG4gICAgICAgICAgICBtaW5XaWR0aDogNDAsXHJcbiAgICAgICAgICAgIG1heFdpZHRoOiA0MCxcclxuICAgICAgICAgICAgY2hlY2tib3hTZWxlY3Rpb24gKHBhcmFtczogYW55KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHBhcmFtcy5jb2x1bW5BcGkuZ2V0Um93R3JvdXBDb2x1bW5zKCkubGVuZ3RoID09PSAwO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBwaW5uZWQ6ICdsZWZ0JyxcclxuICAgICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBsb2NrUG9zaXRpb246IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICBdKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5ncmlkQXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcclxuICAgICAgY29uc3QgY29sSWRzID0gdGhpcy5ncmlkQXBpXHJcbiAgICAgICAgLmdldEFsbERpc3BsYXllZENvbHVtbnMoKVxyXG4gICAgICAgIC5tYXAoKGNvbDogYW55KSA9PiBjb2wuZ2V0Q29sSWQoKSk7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5hdXRvU2l6ZUNvbHVtbnMoY29sSWRzKTtcclxuICAgICAgdGhpcy5jZHJmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBhdXRvU2l6ZUNvbHVtbnMgKCkge1xyXG4gICAgY29uc3QgY29sSWRzID0gdGhpcy5ncmlkQXBpXHJcbiAgICAgIC5nZXRBbGxEaXNwbGF5ZWRDb2x1bW5zKClcclxuICAgICAgLm1hcCgoY29sOiBhbnkpID0+IGNvbC5nZXRDb2xJZCgpKTtcclxuICAgIHRoaXMuZ3JpZEFwaS5hdXRvU2l6ZUNvbHVtbnMoY29sSWRzKTtcclxuICB9XHJcbiAgLyoqIEVORDogVVRJTFMgICovXHJcbiAgZ2V0IG5nU3R5bGVDb250YWluZXIgKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgICBoZWlnaHQ6IFwiMjBlbVwiLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldCBuZ1N0eWxlQWdHcmlkICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcclxuICAgICAgaGVpZ2h0OiBcIjEwMyVcIixcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGVkQ2hhbmdlICgpIHtcclxuICAgIGlmICh0aGlzLmdyaWRBcGkgIT0gbnVsbCAmJiB0aGlzLmdyaWRBcGkuZ2V0U2VsZWN0ZWRSb3dzKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmRpc2FibGVBY2VwdGFyID0gZmFsc2VcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZUFjZXB0YXIgPSB0cnVlXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwYWdpbmF0aW9uQ2hhbmdlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9zY0FnR3JpZFBhZ2luYXRpb24pIHRoaXMuX3NjQWdHcmlkUGFnaW5hdGlvbi5vblBhZ2luYXRpb25DaGFuZ2VkKCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VGaWx0ZXIodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5ncmlkQXBpPy5zZXRHcmlkT3B0aW9uKFwicXVpY2tGaWx0ZXJUZXh0XCIsIHZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyB3LTEwMCBtLTBcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3VtYXgtZGlhbG9nLWhlYWRcIj5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC41cmVtXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yLTNcIj48aSBjbGFzcz1cImZhIGZhLWxpc3RcIiBzdHlsZT1cImZvbnQtc2l6ZTogMS4yNWVtICFpbXBvcnRhbnQ7IGNvbG9yOiAjNjQ2YzlhXCI+PC9pPjwvZGl2PlxyXG4gICAgICAgIDxoM1xyXG4gICAgICAgICAgY2xhc3M9XCJzdW1heC1kaWFsb2ctaGVhZC10aXRsZSBweS0xIG1yLTFcIlxyXG4gICAgICAgICAgc3R5bGU9XCJsaW5lLWhlaWdodDogMS4yOyBmb250LWZhbWlseTogU29obyBHb3RoaWMgUHJvOyAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWRcIj5cclxuICAgICAgICAgIDxzdHJvbmc+e3sgdGl0dGxlIH19PC9zdHJvbmc+XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJwLTNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgcHgtMyBweS0wXCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC01IG15LTJcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQtc2VhcmNoIChvbkNoYW5nZSk9XCJjaGFuZ2VGaWx0ZXIoJGV2ZW50KVwiPjwvaW5wdXQtc2VhcmNoPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCIgW25nU3R5bGVdPVwibmdTdHlsZUNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxhZy1ncmlkLWFuZ3VsYXJcclxuICAgICAgICAgICAgICAgICNhZ0dyaWRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWctdGhlbWUtYmFsaGFtXCJcclxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIm5nU3R5bGVBZ0dyaWRcIlxyXG4gICAgICAgICAgICAgICAgW2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc1wiXHJcbiAgICAgICAgICAgICAgICBbY29udGV4dF09XCJfY29udGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbcm93U2VsZWN0aW9uXT1cIidzaW5nbGUnXCJcclxuICAgICAgICAgICAgICAgIFtpc1Jvd1NlbGVjdGFibGVdPVwiaXNSb3dTZWxlY3RhYmxlXCJcclxuICAgICAgICAgICAgICAgIFtyb3dEcmFnTWFuYWdlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbZG9tTGF5b3V0XT1cIidub3JtYWwnXCJcclxuICAgICAgICAgICAgICAgIFtvdmVybGF5Tm9Sb3dzVGVtcGxhdGVdPVwib3ZlcmxheU5vUm93c1RlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtvdmVybGF5TG9hZGluZ1RlbXBsYXRlXT1cIm92ZXJsYXlMb2FkaW5nVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgW3N1cHByZXNzUHJvcGVydHlOYW1lc0NoZWNrXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJwYWdpbmF0aW9uID8gcGFnaW5hdGlvblBhZ2VTaXplIDogdW5kZWZpbmVkXCJcclxuICAgICAgICAgICAgICAgIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgW3N1cHByZXNzUGFnaW5hdGlvblBhbmVsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJvbkdyaWRSZWFkeSgkZXZlbnQuYXBpKVwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGVkQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgKHBhZ2luYXRpb25DaGFuZ2VkKT1cInBhZ2luYXRpb25DaGFuZ2VkKClcIlxyXG4gICAgICAgICAgICAgICAgW2VuYWJsZUNlbGxUZXh0U2VsZWN0aW9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgb25jb250ZXh0bWVudT1cInJldHVybiBmYWxzZTtcIj5cclxuICAgICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgcHQtMlwiPlxyXG4gICAgICAgICAgICA8c2MtYWctZ3JpZC1wYWdpbmF0aW9uXHJcbiAgICAgICAgICAgICAgI2FnR3JpZFBhZ2luYXRpb25cclxuICAgICAgICAgICAgICBbZ3JpZEFwaV09XCJncmlkQXBpXCJcclxuICAgICAgICAgICAgICBbcGFnaW5hdGlvblBhZ2VTaXplXT1cInBhZ2luYXRpb25QYWdlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJbNSwgMTAsIDE1LCAyMCwgMjVdXCI+PC9zYy1hZy1ncmlkLXBhZ2luYXRpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1kaWFsb2ctY29udGVudD5cclxuICAgIDxtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJwbC0zXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInJvdyBwdC0zIHBiLTMgdy0xMDBcIlxyXG4gICAgICAgIHN0eWxlPVwiYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlYmVkZjI7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXktYXV0byBnYXAtMVwiPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMTBweFwiXHJcbiAgICAgICAgICAgICNidG5BY2VwdGFyXHJcbiAgICAgICAgICAgIChjbGljayk9XCJndWFyZGFyKClcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUFjZXB0YXJcIlxyXG4gICAgICAgICAgICAoa2V5dXAuQXJyb3dVcCk9XCJmb2N1c0xhc3RSb3coKVwiXHJcbiAgICAgICAgICAgIChrZXl1cC5BcnJvd1JpZ2h0KT1cImJ0bkNhbmNlbGFyLmZvY3VzKClcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1zdWNjZXNzIG1yLTNcIj5cclxuICAgICAgICAgICAgQWNlcHRhclxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDExMHB4XCJcclxuICAgICAgICAgICAgI2J0bkNhbmNlbGFyXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZURpYWxvZygpXCJcclxuICAgICAgICAgICAgKGtleXVwLkFycm93VXApPVwiZm9jdXNMYXN0Um93KClcIlxyXG4gICAgICAgICAgICAoa2V5dXAuQXJyb3dMZWZ0KT1cImJ0bkFjZXB0YXIuZm9jdXMoKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLWRhbmdlclwiPlxyXG4gICAgICAgICAgICBDYW5jZWxhclxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
283
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWFnLWdyaWQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvZGlhbG9nLWFnLWdyaWQtc2VhcmNoL2RpYWxvZy1hZy1ncmlkLXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2RpYWxvZy1hZy1ncmlkLXNlYXJjaC9kaWFsb2ctYWctZ3JpZC1zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUd6RSxPQUFPLEVBQTRCLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFRbEUsTUFBTSxPQUFPLDJCQUEyQjtJQXVEdEMsc0JBQXNCO0lBQ3RCLFlBQ1UsU0FBb0QsRUFDcEQsSUFBdUIsRUFDTixJQUFTO1FBRjFCLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQ3BELFNBQUksR0FBSixJQUFJLENBQW1CO1FBakR2QixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXJELFlBQU8sR0FBc0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDaEMsc0JBQWlCLEdBQVUsRUFBRSxDQUFDO1FBQ3JCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFckIsY0FBUyxHQUFHLElBQUksV0FBVyxDQUFDLEVB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K0RsQyxNQUFNOzJCQUFDLGVBQWU7eUNBekRBLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDRyxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0UsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNILE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFJVCxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFRRyxZQUFZO3NCQUFwQixLQUFLO2dCQW9CbUIsV0FBVztzQkFBbkMsU0FBUzt1QkFBQyxZQUFZO2dCQUNLLGNBQWM7c0JBQXpDLFNBQVM7dUJBQUMsZUFBZTtnQkFDQyxhQUFhO3NCQUF2QyxTQUFTO3VCQUFDLGNBQWM7Z0JBRWpCLG1CQUFtQjtzQkFEMUIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBR3BCLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7IEdyaWRBcGksIElzUm93U2VsZWN0YWJsZSB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBkZWJvdW5jZVRpbWUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNjQWdHcmlkUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NjLWFnLWdyaWQvc2MtYWctZ3JpZC1wYWdpbmF0aW9uL3NjLWFnLWdyaWQtcGFnaW5hdGlvbi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGlhbG9nLWFnLWdyaWQtc2VhcmNoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLWFnLWdyaWQtc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGlhbG9nLWFnLWdyaWQtc2VhcmNoLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nQWdHcmlkU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYnRuQWNlcHRhcicpIGJ0bkFjZXB0YXIhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2J0bkNhbmNlbGFyJykgYnRuQ2FuY2VsYXIhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2VsVHh0QnVzY2FyJykgZWxUeHRCdXNjYXIhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2FnR3JpZCcpIGFnR3JpZD86IEFnR3JpZEFuZ3VsYXI7XHJcblxyXG5cclxuXHJcbiAgQE91dHB1dCgpIG9uU2VsZWN0Um93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KCkgcm93RGF0YTogT2JzZXJ2YWJsZTxhbnlbXT4gPSBvZihbXSk7XHJcbiAgQElucHV0KCkgY29sdW1uRGVmczogYW55W10gPSBbXTtcclxuICBjb2x1bW5EZWZzQWN0aW9uczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSB0aXR0bGUgPSAnJztcclxuXHJcbiAgdHh0QnVzY2FyID0gbmV3IEZvcm1Db250cm9sKCcnKTtcclxuICAkc3Vic2NyaXB0aW9udHh0QnVzY2FyOiBTdWJzY3JpcHRpb247XHJcblxyXG5cclxuXHJcbiAgLyoqIEJFR0lOOiBDb25maWcgQWctR3JpZCAqL1xyXG4gIEBJbnB1dCgpIHJvd1NlbGVjdGlvbiA9ICdzaW5nbGUnO1xyXG5cclxuICBfY29udGV4dCA9IHsgY29tcG9uZW50UGFyZW50OiB0aGlzIGFzIGFueSB9O1xyXG4gIGlzUm93U2VsZWN0YWJsZTogSXNSb3dTZWxlY3RhYmxlID0gKCkgPT4gdHJ1ZTtcclxuICBncmlkQXBpITogR3JpZEFwaTtcclxuICByb3dEYXRhU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG4gIGRpc2FibGVBY2VwdGFyID0gdHJ1ZTtcclxuXHJcbiAgb3ZlcmxheU5vUm93c1RlbXBsYXRlID1cclxuICAgIGA8c3BhbiBjbGFzcz1cImFnLW92ZXJsYXktbG9hZGluZy1jZW50ZXIgYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgc2hhZG93LW5vbmVcIj5cclxuXHRcdE5vIHNlIGVuY29udHJhcm9uIHJlZ2lzdHJvcy4uLlxyXG5cdFx0PC9zcGFuPmA7XHJcbiAgb3ZlcmxheUxvYWRpbmdUZW1wbGF0ZSA9XHJcbiAgICBgPHNwYW4gY2xhc3M9XCJhZy1vdmVybGF5LWxvYWRpbmctdG9wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgYm9yZGVyLTAgYmctd2hpdGUgc2hhZG93IHAtNCB0ZXh0LWluZm9cIiBzdHlsZT1cImhlaWdodDogMjBweDtcIj5cclxuXHRcdDxpbWcgc3JjPVwiYXNzZXRzL21lZGlhLWRlbW8vbG9hZGluZy5naWZcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjVcIiBjbGFzcz1cIm1yLTJcIj5cclxuXHRcdDxzdHJvbmc+Q2FyZ2FuZG8gcmVnaXN0cm9zPC9zdHJvbmc+XHJcblx0XHQ8L3NwYW4+YDtcclxuICAvKiogRU5EOiBDb25maWcgQWctR3JpZCAqL1xyXG4gIC8qKiBCRUdJTjogUGFnaW5hdGlvbiAqL1xyXG5cclxuICBAVmlld0NoaWxkKCdsYlBhZ2VTaXplJykgZWxiUGFnZVNpemUhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2xiQ3VycmVudFBhZ2UnKSBlbGJDdXJyZW50UGFnZSE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnbGJUb3RhbFBhZ2VzJykgZWxiVG90YWxQYWdlcyE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnYWdHcmlkUGFnaW5hdGlvbicpIFxyXG4gIHByaXZhdGUgX3NjQWdHcmlkUGFnaW5hdGlvbj86IFNjQWdHcmlkUGFnaW5hdGlvbkNvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KCkgcGFnaW5hdGlvbiA9IHRydWU7XHJcbiAgcGFnaW5hdGlvblBhZ2VTaXplID0gMTA7XHJcblxyXG4gIHBhZ2VGb3VuZCE6IGJvb2xlYW47XHJcbiAgcGFnaW5hczogbnVtYmVyW10gPSBbXTtcclxuICBkZXNkZSE6IG51bWJlcjtcclxuICBoYXN0YSE6IG51bWJlcjtcclxuICAvKiogRU5EOiBQYWdpbmF0aW9uICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ0FnR3JpZFNlYXJjaENvbXBvbmVudD4sXHJcbiAgICBwcml2YXRlIGNkcmY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGRhdGE6IGFueVxyXG4gICkge1xyXG5cclxuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnR4dEJ1c2NhciA9IHRoaXMudHh0QnVzY2FyLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMzUwKVxyXG4gICAgKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5mb3JFYWNoTm9kZUFmdGVyRmlsdGVyKChub2RlOiBhbnkpID0+IG5vZGUuc2V0U2VsZWN0ZWQoZmFsc2UpKVxyXG4gICAgICBpZiAoZGF0YSkgdGhpcy5ncmlkQXBpLnNldFF1aWNrRmlsdGVyKGRhdGEpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCAoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBzZWxlY3RGaXJzdFNlYXJjaCAoKSB7XHJcbiAgICBpZiAoIXRoaXMuZ3JpZEFwaSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb2x1bW5EZWZzQWN0aW9ucy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHJvd0RhdGEgPSBbXTtcclxuICAgIHRoaXMuZ3JpZEFwaS5mb3JFYWNoTm9kZSgobm9kZTogYW55KSA9PiByb3dEYXRhLnB1c2gobm9kZS5kYXRhKSk7XHJcbiAgICBpZiAocm93RGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5idG5BY2VwdGFyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIC8vIHJldHVybiByb3dEYXRhO1xyXG4gICAgdGhpcy5ncmlkQXBpLmZvckVhY2hOb2RlQWZ0ZXJGaWx0ZXIoKG5vZGU6IGFueSkgPT4gbm9kZS5yb3dJbmRleCA/IDAgOiBub2RlLnNldFNlbGVjdGVkKHRydWUpKVxyXG4gICAgdGhpcy5ncmlkQXBpLnNldEZvY3VzZWRDZWxsKDAsIHRoaXMuY29sdW1uRGVmc0FjdGlvbnNbMV0uZmllbGQpO1xyXG5cclxuICB9XHJcblxyXG4gIGZvY3VzTGFzdFJvdyAoKSB7XHJcbiAgICBsZXQgbGFzdEluZGV4ID0gLTE7XHJcbiAgICB0aGlzLmdyaWRBcGkuZm9yRWFjaE5vZGVBZnRlckZpbHRlcigobm9kZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChub2RlLnJvd0luZGV4ID4gbGFzdEluZGV4KSB7XHJcbiAgICAgICAgbGFzdEluZGV4ID0gbm9kZS5yb3dJbmRleDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAobGFzdEluZGV4ID09PSAtMSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyaWRBcGkuc2V0Rm9jdXNlZENlbGwobGFzdEluZGV4LCB0aGlzLmNvbHVtbkRlZnNBY3Rpb25zWzFdLmZpZWxkKTtcclxuICB9XHJcbiAgb25DZWxsS2V5UHJlc3MgKGU6IGFueSkge1xyXG4gICAgbGV0IGtleVByZXNzZWQgPSBlLmV2ZW50LmtleTtcclxuICAgIGlmIChrZXlQcmVzc2VkID09PSAnRW50ZXInKSB7XHJcbiAgICAgIGxldCByb3dOb2RlID0gZS5ub2RlO1xyXG4gICAgICBpZiAocm93Tm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICAgIHRoaXMuYnRuQWNlcHRhci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcm93Tm9kZS5zZXRTZWxlY3RlZCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBndWFyZGFyICgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZ3JpZEFwaS5nZXRTZWxlY3RlZFJvd3MoKSk7XHJcbiAgfVxyXG4gIGNsb3NlRGlhbG9nICgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKFtdKTtcclxuICB9XHJcbiAgLyoqIEJFR0lOOiBFdmVudHMgQ29uZmlnIEFnLUdyaWQgKi9cclxuICBvbkdyaWRSZWFkeSAoZ3JpZEFwaTogR3JpZEFwaSkge1xyXG4gICAgdGhpcy5jb2x1bW5EZWZzQWN0aW9ucyA9IHRoaXMuY29sdW1uRGVmcy5jb25jYXQoW1xyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyTmFtZTogJycsXHJcbiAgICAgICAgZmllbGQ6ICcnLFxyXG4gICAgICAgIHdpZHRoOiA0MCxcclxuICAgICAgICBtaW5XaWR0aDogNDAsXHJcbiAgICAgICAgbWF4V2lkdGg6IDQwLFxyXG4gICAgICAgIGNoZWNrYm94U2VsZWN0aW9uIChwYXJhbXM6IGFueSkge1xyXG4gICAgICAgICAgcmV0dXJuIHBhcmFtcy5jb2x1bW5BcGkuZ2V0Um93R3JvdXBDb2x1bW5zKCkubGVuZ3RoID09PSAwO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcGlubmVkOiAnbGVmdCcsXHJcbiAgICAgICAgc29ydGFibGU6IGZhbHNlLFxyXG4gICAgICAgIGxvY2tQb3NpdGlvbjogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICBdKTtcclxuXHJcbiAgICB0aGlzLmdyaWRBcGkgPSBncmlkQXBpO1xyXG4gICAgdGhpcy5pbml0Um93RGF0YSgpO1xyXG4gIH1cclxuICAvKiogRU5EOiBFdmVudHMgQ29uZmlnIEFnLUdyaWQgKi9cclxuICAvKiogQkVHSU46IEV2ZW50cyBkZSBkZXNwbGF6YW1pZW50byBlbiBhZy1ncmlkICovXHJcbiAgb25QYWdpbmF0aW9uQ2hhbmdlZCAoKSB7XHJcbiAgICBpZiAoIXRoaXMuZ3JpZEFwaSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wYWdpbmF0aW9uICYmIHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0Um93Q291bnQoKSA+IC0xKSB7XHJcbiAgICAgIHRoaXMuZWxiUGFnZVNpemUubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFJvd0NvdW50KCk7XHJcbiAgICAgIHRoaXMuZWxiQ3VycmVudFBhZ2UubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCkgKyAxO1xyXG4gICAgICB0aGlzLmVsYlRvdGFsUGFnZXMubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKTtcclxuICAgICAgLy8gdGhpcy5lbGJ0TGFzdC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCAhdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25Jc0xhc3RQYWdlRm91bmQoKSk7XHJcbiAgICAgIHRoaXMucGFnZUZvdW5kID0gdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRUb3RhbFBhZ2VzKCkgPCAxO1xyXG4gICAgICB0aGlzLmRlc2RlID0gTWF0aC5taW4oTWF0aC5tYXgoMSwgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRDdXJyZW50UGFnZSgpIC0gMiksIHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0VG90YWxQYWdlcygpIC0gMik7XHJcbiAgICAgIHRoaXMuaGFzdGEgPSBNYXRoLm1heChNYXRoLm1pbih0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKSwgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRDdXJyZW50UGFnZSgpICsgMiksIDUpO1xyXG4gICAgICBpZiAodGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRUb3RhbFBhZ2VzKCkgPiA1KSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmFzID0gbmV3IEFycmF5KHRoaXMuaGFzdGEgLSB0aGlzLmRlc2RlICsgMSkuZmlsbCgwKS5tYXAoKHZhbG9yLCBpbmRpY2UpID0+IGluZGljZSArIHRoaXMuZGVzZGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucGFnaW5hcyA9IG5ldyBBcnJheSh0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKSkuZmlsbCgwKS5tYXAoKHZhbG9yLCBpbmRpY2UpID0+IGluZGljZSArIDEpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuICBvbkJ0Rmlyc3QgKCkge1xyXG4gICAgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25Hb1RvRmlyc3RQYWdlKCk7XHJcbiAgICB0aGlzLmF1dG9TaXplQ29sdW1ucygpO1xyXG4gIH1cclxuICBvbkJ0UHJldmlvdXMgKCkge1xyXG4gICAgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25Hb1RvUHJldmlvdXNQYWdlKCk7XHJcbiAgICB0aGlzLmF1dG9TaXplQ29sdW1ucygpO1xyXG4gIH1cclxuICBvbkJ0TmV4dCAoKSB7XHJcbiAgICB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdvVG9OZXh0UGFnZSgpO1xyXG4gICAgdGhpcy5hdXRvU2l6ZUNvbHVtbnMoKTtcclxuICB9XHJcbiAgb25CdExhc3QgKCkge1xyXG4gICAgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25Hb1RvTGFzdFBhZ2UoKTtcclxuICAgIHRoaXMuYXV0b1NpemVDb2x1bW5zKCk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VTaXplQ2hhbmdlZCAoZXZ0OiBhbnkpIHtcclxuICAgIHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uU2V0UGFnZVNpemUoTnVtYmVyKGV2dC50YXJnZXQudmFsdWUpKTtcclxuICB9XHJcbiAgb25Hb1RvUGFnZSAocGFnZTogYW55KSB7XHJcbiAgICB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdvVG9QYWdlKHBhZ2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEVORDogRXZlbnRzIGRlIGRlc3BsYXphbWllbnRvIGVuIGFnLWdyaWQgKi9cclxuICAvKiogQkVHSU46IFVUSUxTICAqL1xyXG4gIGluaXRSb3dEYXRhICgpIHtcclxuICAgIGlmICh0aGlzLnJvd0RhdGFTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5yb3dEYXRhU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5zZXRHcmlkT3B0aW9uKFwicm93RGF0YVwiLCBbXSk7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5zaG93TG9hZGluZ092ZXJsYXkoKTtcclxuICAgIH1cclxuICAgIHRoaXMucm93RGF0YVN1YnNjcmlwdGlvbiA9IHRoaXMucm93RGF0YS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgdGhpcy5ncmlkQXBpLnNldEdyaWRPcHRpb24oXCJyb3dEYXRhXCIsIGRhdGEpO1xyXG4gICAgICBpZiAodGhpcy5jb2x1bW5EZWZzLmxlbmd0aCA9PT0gMCAmJiBkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBsZXQgY29sdW1uRGVmczogYW55ID0gW107XHJcbiAgICAgICAgbGV0IGtleXMgPSBPYmplY3Qua2V5cyhkYXRhWzBdKTtcclxuICAgICAgICBrZXlzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIGRhdGFbMF1bZWxlbWVudF0gIT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbkRlZnMucHVzaCh7IGZpZWxkOiBlbGVtZW50LCBoZWFkZXJOYW1lOiBlbGVtZW50LnRvVXBwZXJDYXNlKCkgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5EZWZzQWN0aW9ucyA9IGNvbHVtbkRlZnMuY29uY2F0KFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgaGVhZGVyTmFtZTogJycsXHJcbiAgICAgICAgICAgIGZpZWxkOiAnJyxcclxuICAgICAgICAgICAgd2lkdGg6IDQwLFxyXG4gICAgICAgICAgICBtaW5XaWR0aDogNDAsXHJcbiAgICAgICAgICAgIG1heFdpZHRoOiA0MCxcclxuICAgICAgICAgICAgY2hlY2tib3hTZWxlY3Rpb24gKHBhcmFtczogYW55KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHBhcmFtcy5jb2x1bW5BcGkuZ2V0Um93R3JvdXBDb2x1bW5zKCkubGVuZ3RoID09PSAwO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBwaW5uZWQ6ICdsZWZ0JyxcclxuICAgICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBsb2NrUG9zaXRpb246IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICBdKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5ncmlkQXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcclxuICAgICAgY29uc3QgY29sSWRzID0gdGhpcy5ncmlkQXBpXHJcbiAgICAgICAgLmdldEFsbERpc3BsYXllZENvbHVtbnMoKVxyXG4gICAgICAgIC5tYXAoKGNvbDogYW55KSA9PiBjb2wuZ2V0Q29sSWQoKSk7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5hdXRvU2l6ZUNvbHVtbnMoY29sSWRzKTtcclxuICAgICAgdGhpcy5jZHJmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBhdXRvU2l6ZUNvbHVtbnMgKCkge1xyXG4gICAgY29uc3QgY29sSWRzID0gdGhpcy5ncmlkQXBpXHJcbiAgICAgIC5nZXRBbGxEaXNwbGF5ZWRDb2x1bW5zKClcclxuICAgICAgLm1hcCgoY29sOiBhbnkpID0+IGNvbC5nZXRDb2xJZCgpKTtcclxuICAgIHRoaXMuZ3JpZEFwaS5hdXRvU2l6ZUNvbHVtbnMoY29sSWRzKTtcclxuICB9XHJcbiAgLyoqIEVORDogVVRJTFMgICovXHJcbiAgZ2V0IG5nU3R5bGVDb250YWluZXIgKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgICBoZWlnaHQ6IFwiMjVlbVwiLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldCBuZ1N0eWxlQWdHcmlkICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcclxuICAgICAgaGVpZ2h0OiBcIjEwMyVcIixcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGVkQ2hhbmdlICgpIHtcclxuICAgIGlmICh0aGlzLmdyaWRBcGkgIT0gbnVsbCAmJiB0aGlzLmdyaWRBcGkuZ2V0U2VsZWN0ZWRSb3dzKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmRpc2FibGVBY2VwdGFyID0gZmFsc2VcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZUFjZXB0YXIgPSB0cnVlXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwYWdpbmF0aW9uQ2hhbmdlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9zY0FnR3JpZFBhZ2luYXRpb24pIHRoaXMuX3NjQWdHcmlkUGFnaW5hdGlvbi5vblBhZ2luYXRpb25DaGFuZ2VkKCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VGaWx0ZXIodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5ncmlkQXBpPy5zZXRHcmlkT3B0aW9uKFwicXVpY2tGaWx0ZXJUZXh0XCIsIHZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lciB3LTEwMFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzdW1heC1kaWFsb2ctaGVhZFwiPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAwLjVyZW1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXItM1wiPjxpIGNsYXNzPVwiZmEgZmEtbGlzdFwiIHN0eWxlPVwiZm9udC1zaXplOiAxLjI1ZW0gIWltcG9ydGFudDsgY29sb3I6ICM2NDZjOWFcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPGgzXHJcbiAgICAgICAgICBjbGFzcz1cInN1bWF4LWRpYWxvZy1oZWFkLXRpdGxlIHB5LTEgbXItMVwiXHJcbiAgICAgICAgICBzdHlsZT1cImxpbmUtaGVpZ2h0OiAxLjI7IGZvbnQtZmFtaWx5OiBTb2hvIEdvdGhpYyBQcm87IC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZFwiPlxyXG4gICAgICAgICAgPHN0cm9uZz57eyB0aXR0bGUgfX08L3N0cm9uZz5cclxuICAgICAgICA8L2gzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cgbXgtMVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC01IG15LTJcIj5cclxuICAgICAgICAgIDxpbnB1dC1zZWFyY2ggKG9uQ2hhbmdlKT1cImNoYW5nZUZpbHRlcigkZXZlbnQpXCI+PC9pbnB1dC1zZWFyY2g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiIFtuZ1N0eWxlXT1cIm5nU3R5bGVDb250YWluZXJcIj5cclxuICAgICAgICAgIDxhZy1ncmlkLWFuZ3VsYXJcclxuICAgICAgICAgICAgI2FnR3JpZFxyXG4gICAgICAgICAgICBjbGFzcz1cImFnLXRoZW1lLWJhbGhhbVwiXHJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIm5nU3R5bGVBZ0dyaWRcIlxyXG4gICAgICAgICAgICBbY29sdW1uRGVmc109XCJjb2x1bW5EZWZzXCJcclxuICAgICAgICAgICAgW2NvbnRleHRdPVwiX2NvbnRleHRcIlxyXG4gICAgICAgICAgICBbcm93U2VsZWN0aW9uXT1cIidzaW5nbGUnXCJcclxuICAgICAgICAgICAgW2lzUm93U2VsZWN0YWJsZV09XCJpc1Jvd1NlbGVjdGFibGVcIlxyXG4gICAgICAgICAgICBbcm93RHJhZ01hbmFnZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbZG9tTGF5b3V0XT1cIidub3JtYWwnXCJcclxuICAgICAgICAgICAgW292ZXJsYXlOb1Jvd3NUZW1wbGF0ZV09XCJvdmVybGF5Tm9Sb3dzVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbb3ZlcmxheUxvYWRpbmdUZW1wbGF0ZV09XCJvdmVybGF5TG9hZGluZ1RlbXBsYXRlXCJcclxuICAgICAgICAgICAgW3N1cHByZXNzUHJvcGVydHlOYW1lc0NoZWNrXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbcGFnaW5hdGlvblBhZ2VTaXplXT1cInBhZ2luYXRpb24gPyBwYWdpbmF0aW9uUGFnZVNpemUgOiB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcclxuICAgICAgICAgICAgW3N1cHByZXNzUGFnaW5hdGlvblBhbmVsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAoZ3JpZFJlYWR5KT1cIm9uR3JpZFJlYWR5KCRldmVudC5hcGkpXCJcclxuICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZWQpPVwib25TZWxlY3RlZENoYW5nZSgpXCJcclxuICAgICAgICAgICAgKHBhZ2luYXRpb25DaGFuZ2VkKT1cInBhZ2luYXRpb25DaGFuZ2VkKClcIlxyXG4gICAgICAgICAgICBbZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIG9uY29udGV4dG1lbnU9XCJyZXR1cm4gZmFsc2U7XCI+XHJcbiAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHB5LTJcIj5cclxuICAgICAgICAgIDxzYy1hZy1ncmlkLXBhZ2luYXRpb25cclxuICAgICAgICAgICAgI2FnR3JpZFBhZ2luYXRpb25cclxuICAgICAgICAgICAgW2dyaWRBcGldPVwiZ3JpZEFwaVwiXHJcbiAgICAgICAgICAgIFtwYWdpbmF0aW9uUGFnZVNpemVdPVwicGFnaW5hdGlvblBhZ2VTaXplXCJcclxuICAgICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJbNSwgMTAsIDE1LCAyMCwgMjVdXCI+PC9zYy1hZy1ncmlkLXBhZ2luYXRpb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwicm93IHB0LTMgcGItMyB3LTEwMFwiXHJcbiAgICAgICAgc3R5bGU9XCJib3JkZXItdG9wOiAxcHggc29saWQgI2ViZWRmMjsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBteS1hdXRvIGdhcC0xXCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDExMHB4XCJcclxuICAgICAgICAgICAgI2J0bkFjZXB0YXJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImd1YXJkYXIoKVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQWNlcHRhclwiXHJcbiAgICAgICAgICAgIChrZXl1cC5BcnJvd1VwKT1cImZvY3VzTGFzdFJvdygpXCJcclxuICAgICAgICAgICAgKGtleXVwLkFycm93UmlnaHQpPVwiYnRuQ2FuY2VsYXIuZm9jdXMoKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLXN1Y2Nlc3MgbXItM1wiPlxyXG4gICAgICAgICAgICBBY2VwdGFyXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTEwcHhcIlxyXG4gICAgICAgICAgICAjYnRuQ2FuY2VsYXJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIlxyXG4gICAgICAgICAgICAoa2V5dXAuQXJyb3dVcCk9XCJmb2N1c0xhc3RSb3coKVwiXHJcbiAgICAgICAgICAgIChrZXl1cC5BcnJvd0xlZnQpPVwiYnRuQWNlcHRhci5mb2N1cygpXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgIENhbmNlbGFyXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -298,7 +298,6 @@ export class NgSelectSimpleComponent {
|
|
|
298
298
|
async onSearch() {
|
|
299
299
|
const dialogRef = this.dialog.open(DialogAgGridSearchComponent, {
|
|
300
300
|
width: this.searchParams.width,
|
|
301
|
-
height: '584px',
|
|
302
301
|
disableClose: true,
|
|
303
302
|
});
|
|
304
303
|
let rowdata = await this.searchParams.rowData.toPromise();
|
|
@@ -459,4 +458,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
459
458
|
}], onsearch: [{
|
|
460
459
|
type: Output
|
|
461
460
|
}] } });
|
|
462
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL25nLXNlbGVjdC1zaW1wbGUvbmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL25nLXNlbGVjdC1zaW1wbGUvbmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsYUFBYSxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBR3JHLE9BQU8sRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUV2RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBSXJELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQ1MsYUFBMkIsRUFBRSxFQUM3QixRQUFnQixFQUFFLEVBQ2xCLFFBQWdCLE9BQU8sRUFDdkIsVUFBNkIsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUhuQyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFlB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QUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgTmdTZWxlY3RDb21wb25lbnQgfSBmcm9tIFwiQG5nLXNlbGVjdC9uZy1zZWxlY3RcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHNoYXJlUmVwbGF5IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IERpYWxvZ0FnR3JpZFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL2RpYWxvZy1hZy1ncmlkLXNlYXJjaC9kaWFsb2ctYWctZ3JpZC1zZWFyY2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVzc2FnZVV0aWxTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL21lc3NhZ2UtdXRpbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNoYXJlZENvbXBvbmVudHNVdGlsIH0gZnJvbSBcIi4uL3V0aWxzL1NoYXJlZENvbXBvbmVudHNVdGlsXCI7XHJcbmltcG9ydCB7IFZhbGlkYXRlVXRpbCB9IGZyb20gXCIuLi91dGlscy9WYWxpZGF0ZVV0aWxcIjtcclxuaW1wb3J0IHsgTmdTZWxlY3RTaW1wbGVTZXJ2aWNlIH0gZnJvbSBcIi4vbmctc2VsZWN0LXNpbXBsZS5zZXJ2aWNlXCI7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFNlYXJjaFBhcmFtcyB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29sdW1uRGVmczogQ29sdW1uRGVmc1tdID0gW10sXHJcbiAgICBwdWJsaWMgdGl0bGU6IHN0cmluZyA9IFwiXCIsXHJcbiAgICBwdWJsaWMgd2lkdGg6IHN0cmluZyA9IFwiOTkwcHhcIixcclxuICAgIHB1YmxpYyByb3dEYXRhOiBPYnNlcnZhYmxlPGFueVtdPiA9IG9mKFtdKVxyXG4gICkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5EZWZzIHtcclxuICBoZWFkZXJOYW1lPzogc3RyaW5nO1xyXG4gIGZpZWxkPzogc3RyaW5nO1xyXG4gIHdpZHRoPzogc3RyaW5nO1xyXG4gIGNlbGxSZW5kZXJlcj86IGFueTtcclxuICB2YWx1ZUdldHRlcj86IChmaWVsZDogYW55KSA9PiBzdHJpbmcgfCBzdHJpbmc7XHJcbiAgc29ydGFibGU/OiBib29sZWFuO1xyXG4gIHJlc2l6YWJsZT86IGJvb2xlYW47XHJcbiAgY2VsbENsYXNzPzogc3RyaW5nW107XHJcbiAgY2VsbFN0eWxlPzoge307XHJcbiAgdmFsdWVGb3JtYXR0ZXI/OiBhbnk7XHJcbiAgcGlubmVkPzogc3RyaW5nO1xyXG4gIHNvcnQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmctc2VsZWN0LXNpbXBsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25nLXNlbGVjdC1zaW1wbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25nLXNlbGVjdC1zaW1wbGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5nU2VsZWN0U2ltcGxlQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ1NlbGVjdFNpbXBsZUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ1NlbGVjdFNpbXBsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoXCJuZ1NlbGVjdFNpbXBsZVwiKSBuZ1NlbGVjdFNpbXBsZSE6IE5nU2VsZWN0Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoXCJidG5TZWFyY2hcIikgYnRuU2VhcmNoITogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KCkgc2hvd0xhYmVsOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsYWJlbDogYW55ID0gbnVsbDtcclxuICBASW5wdXQoKSBhdXRvY29tcGxldGU6IHN0cmluZyA9IFwiY2MtY3NjXCI7XHJcbiAgQElucHV0KCkgbmV4dDogYW55O1xyXG4gIEBJbnB1dCgpIG5leHRJc0Rpc2FibGU6IGFueTtcclxuICBASW5wdXQoKSBiYWNrOiBhbnk7XHJcbiAgQElucHV0KCkgYmFja0lzRGlzYWJsZTogYW55O1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRvck1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0b29sdGlwTWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgb3BlbldoZW5Gb2N1czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlYXJjaEJ5OiBzdHJpbmcgPSBcInZhbHVlXCI7XHJcbiAgQElucHV0KCkgbWFya0ZpcnN0SXRlbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1hcmtXaGVuSGF2ZU9uZUl0ZW06IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNldE5nQ2xhc3M6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgc2VhcmNoYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdmFsaWRhdG9yQWxlcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB1cHBlckNhc2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0ZW1wbGF0ZUxhYmVsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYXBwZW5kVG86IHN0cmluZyA9IFwiYm9keVwiO1xyXG4gIEBJbnB1dCgpIGl0ZW1zITogT2JzZXJ2YWJsZTxhbnlbXT47XHJcblxyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmdUZXh0OiBzdHJpbmcgPSBcIkNhcmdhbmRvLi4uXCI7XHJcbiAgQElucHV0KCkgY2xlYXJBbGxUZXh0OiBzdHJpbmcgPSBcIkxpbXBpYXJcIjtcclxuICBASW5wdXQoKSBub3RGb3VuZFRleHQ6IHN0cmluZyA9IFwiTm8gc2UgZW5jb250cmFyb24gcmVzdWx0YWRvc1wiO1xyXG5cclxuICBASW5wdXQoKSBtYXJrRmlyc3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNsZWFyYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY2xlYXJPbkJhY2tzcGFjZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHZpcnR1YWxTY3JvbGw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG9wZW5PbkVudGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcmVmcmVzaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzUmVmcmVzaERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcmVkaXJlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2VhcmNoUGFyYW1zOiBTZWFyY2hQYXJhbXMgPSBuZXcgU2VhcmNoUGFyYW1zKCk7XHJcbiAgQElucHV0KCkgbGFiZWxJbmZvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGV4dExhYmVsSW5mbzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQElucHV0KCkgdXJsUmVkaXJlY3Q6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgdGl0bGVSZWRpcmVjdDogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBpc1JlZGlyZWN0RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIG9uTmV4dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQmFjazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbmZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25yZWZyZXNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25zZWFyY2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHZhbGlkYXRlVXRpbCA9IG5ldyBWYWxpZGF0ZVV0aWwoKTtcclxuICBzaGFyZWRDb21wb25lbnRzVXRpbCA9IG5ldyBTaGFyZWRDb21wb25lbnRzVXRpbCgpO1xyXG5cclxuICBhbGxJdGVtcyA9IFtdO1xyXG4gIF92YWx1ZTogYW55O1xyXG4gIGNvbnRyb2xzOiBhbnk7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcblxyXG4gIG9uVmFsaWRhdGlvbkNoYW5nZSA9ICgpID0+IHsgfTtcclxuXHJcbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG5cclxuICBmb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMubmdTZWxlY3RTaW1wbGUuZm9jdXMoKTtcclxuICAgIGlmICh0aGlzLm9wZW5XaGVuRm9jdXMpIHtcclxuICAgICAgdGhpcy5uZ1NlbGVjdFNpbXBsZS5vcGVuKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY2xvc2UgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5nU2VsZWN0U2ltcGxlLmNsb3NlKCk7XHJcbiAgfTtcclxuXHJcbiAgb3BlbkVubGFjZSAoKTogdm9pZCB7XHJcbiAgICB3aW5kb3cub3Blbih0aGlzLnVybFJlZGlyZWN0KTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlVXRpbFNlcnZpY2U6IE1lc3NhZ2VVdGlsU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgbmdTZWxlY3RTaW1wbGVTZXJ2aWNlOiBOZ1NlbGVjdFNpbXBsZVNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMudmFsaWRhdG9yTWVzc2FnZSA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFZhbGlkYXRvck1lc3NhZ2UoKTtcclxuICAgIHRoaXMudG9vbHRpcE1lc3NhZ2UgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRUb29sdGlwTWVzc2FnZSgpO1xyXG4gICAgdGhpcy5vcGVuV2hlbkZvY3VzID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0T3BlbldoZW5Gb2N1cygpO1xyXG4gICAgdGhpcy5zZWFyY2hCeSA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFNlYXJjaEJ5KCk7XHJcbiAgICB0aGlzLm1hcmtGaXJzdEl0ZW0gPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRNYXJrRmlyc3RJdGVtKCk7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFN1Ym1pdHRlZCgpO1xyXG4gICAgdGhpcy5zZWFyY2hhYmxlID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0U2VhcmNoYWJsZSgpO1xyXG4gICAgdGhpcy52YWxpZGF0b3JBbGVydCA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFZhbGlkYXRvckFsZXJ0KCk7XHJcbiAgICB0aGlzLnVwcGVyQ2FzZSA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFVwcGVyQ2FzZSgpO1xyXG4gICAgdGhpcy5hcHBlbmRUbyA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldEFwcGVuZFRvKCk7XHJcbiAgICB0aGlzLmxvYWRpbmdUZXh0ID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0TG9hZGluZ1RleHQoKTtcclxuICAgIHRoaXMuY2xlYXJBbGxUZXh0ID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0Q2xlYXJBbGxUZXh0KCk7XHJcbiAgICB0aGlzLm1hcmtGaXJzdCA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldE1hcmtGaXJzdCgpO1xyXG4gICAgdGhpcy5jbGVhcmFibGUgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRDbGVhcmFibGUoKTtcclxuICAgIHRoaXMuY2xlYXJPbkJhY2tzcGFjZSA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldENsZWFyT25CYWNrc3BhY2UoKTtcclxuICAgIHRoaXMudmlydHVhbFNjcm9sbCA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFZpcnR1YWxTY3JvbGwoKTtcclxuICAgIHRoaXMub3Blbk9uRW50ZXIgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRPcGVuT25FbnRlcigpO1xyXG4gICAgdGhpcy5ub3RGb3VuZFRleHQgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXROb3RGb3VuZFRleHQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95ICgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzW1wiaXRlbXNcIl0pIHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jYXJnYSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbXCJzdWJtaXR0ZWRcIl0pIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbHMgIT09IHVuZGVmaW5lZCAmJiBjaGFuZ2VzW1wic3VibWl0dGVkXCJdLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMubWFya0FzRGlydHkoKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgY2FyZ2EgKCkge1xyXG4gICAgdGhpcy5hbGxJdGVtcyA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMucGlwZShzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pKTtcclxuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5pdGVtcy5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShyZXMpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5fdmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAhdGhpcy52YWxpZGF0ZVV0aWwuaXNVbmRlZmluZWRPck51bGwodGhpcy5nZXRPYmplY3QoZWxlbWVudCwgdGhpcy5zZWFyY2hCeSkpICYmXHJcbiAgICAgICAgICB0aGlzLmdldE9iamVjdChlbGVtZW50LCB0aGlzLnNlYXJjaEJ5KSA9PT0gdGhpcy5fdmFsdWVcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZWxlbWVudDtcclxuICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5tYXJrRmlyc3RJdGVtICYmIHRoaXMuYWxsSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5hbGxJdGVtc1swXTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1hcmtXaGVuSGF2ZU9uZUl0ZW0gJiYgdGhpcy5hbGxJdGVtcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuYWxsSXRlbXNbMF07XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQgKCkgeyB9XHJcblxyXG4gIGdldE9iamVjdCAob2JqOiBhbnksIGtleTogYW55KSB7XHJcbiAgICByZXR1cm4ga2V5LnNwbGl0KFwiLlwiKS5yZWR1Y2UoZnVuY3Rpb24gKG86IGFueSwgeDogYW55KSB7XHJcbiAgICAgIHJldHVybiB0eXBlb2YgbyA9PSBcInVuZGVmaW5lZFwiIHx8IG8gPT09IG51bGwgPyBvIDogb1t4XTtcclxuICAgIH0sIG9iaik7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlICh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5sb2FkaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuYWxsSXRlbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAhdGhpcy52YWxpZGF0ZVV0aWwuaXNVbmRlZmluZWRPck51bGwodGhpcy5nZXRPYmplY3QoZWxlbWVudCwgdGhpcy5zZWFyY2hCeSkpICYmXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0T2JqZWN0KGVsZW1lbnQsIHRoaXMuc2VhcmNoQnkpID09PSB0aGlzLl92YWx1ZVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZWxlbWVudDtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvL3RoaXMuc2VhcmNoRWxlbWVudCh2YWx1ZSk7XHJcbiAgICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UgKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQgKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGUgKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBhbnkge1xyXG4gICAgdGhpcy5jb250cm9scyA9IGNvbnRyb2w7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2U/KGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgZXZlbnRDaGFuZ2UgKGU6IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZShlKTtcclxuICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgZXZlbnRCbHVyIChlOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgdGhpcy5ibHVyLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBldmVudEZvY3VzIChlOiBhbnkpIHtcclxuICAgIC8vIHRoaXMubmdTZWxlY3RTaW1wbGUuZm9jdXMoKTtcclxuICAgIGlmICh0aGlzLm9wZW5XaGVuRm9jdXMpIHtcclxuICAgICAgdGhpcy5uZ1NlbGVjdFNpbXBsZS5vcGVuKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uZm9jdXMuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIGV2ZW50U2VhcmNoIChlOiBhbnkpIHtcclxuICAgIHRoaXMub25zZWFyY2guZW1pdChlKTtcclxuICB9XHJcblxyXG4gIGVudGVyS2V5VXAgKCkge1xyXG4gICAgdGhpcy5uZ1NlbGVjdFNpbXBsZS5jbG9zZSgpO1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3IgPSB0aGlzLnNoYXJlZENvbXBvbmVudHNVdGlsLnN0b3BCeVZhbGlkYXRvcih0aGlzLmNvbnRyb2xzLCB0aGlzLnZhbGlkYXRvckFsZXJ0LCB0aGlzLmxhYmVsKTtcclxuICAgICAgaWYgKHZhbGlkYXRvci5lcnJvcikge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVV0aWxTZXJ2aWNlLmdldE1lc3NhZ2VFcnJvcihcIjAwMDA0NlwiLCBcIkVycm9yXCIsIHZhbGlkYXRvci5tZXNzYWdlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5leHQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLm5leHQuZGlzYWJsZWQgfHwgdGhpcy5uZXh0LnJlYWRvbmx5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMubmV4dElzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMubmV4dElzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5leHQuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubmV4dElzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLm5leHRJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uTmV4dC5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxlZnRLZXlVcCAoKSB7XHJcbiAgICB0aGlzLm5nU2VsZWN0U2ltcGxlLmNsb3NlKCk7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgbGV0IHZhbGlkYXRvciA9IHRoaXMuc2hhcmVkQ29tcG9uZW50c1V0aWwuc3RvcEJ5VmFsaWRhdG9yKHRoaXMuY29udHJvbHMsIHRoaXMudmFsaWRhdG9yQWxlcnQsIHRoaXMubGFiZWwpO1xyXG4gICAgICBpZiAodmFsaWRhdG9yLmVycm9yKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlVXRpbFNlcnZpY2UuZ2V0TWVzc2FnZUVycm9yKFwiMDAwMDQ2XCIsIFwiRXJyb3JcIiwgdmFsaWRhdG9yLm1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYmFjayAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMuYmFjay5kaXNhYmxlZCB8fCB0aGlzLmJhY2sucmVhZG9ubHkpIHtcclxuICAgICAgICBpZiAodGhpcy5iYWNrSXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5iYWNrSXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYmFjay5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5iYWNrSXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuYmFja0lzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25CYWNrLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXIgKCkge1xyXG4gICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvblJlZnJlc2ggKCkge1xyXG4gICAgdGhpcy5vbnJlZnJlc2guZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25TZWFyY2ggKCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihEaWFsb2dBZ0dyaWRTZWFyY2hDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IHRoaXMuc2VhcmNoUGFyYW1zLndpZHRoLFxyXG4gICAgICBoZWlnaHQ6ICc1ODRweCcsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgbGV0IHJvd2RhdGEgPSBhd2FpdCB0aGlzLnNlYXJjaFBhcmFtcy5yb3dEYXRhLnRvUHJvbWlzZSgpO1xyXG4gICAgbGV0IGluc3RhbmNlID0gZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlO1xyXG4gICAgaW5zdGFuY2UudGl0dGxlID0gdGhpcy5zZWFyY2hQYXJhbXMudGl0bGUgPT09IFwiXCIgPyB0aGlzLmxhYmVsIDogdGhpcy5zZWFyY2hQYXJhbXMudGl0bGU7XHJcbiAgICBpbnN0YW5jZS5yb3dEYXRhID0gcm93ZGF0YSAmJiByb3dkYXRhLmxlbmd0aCA8IDEgPyB0aGlzLml0ZW1zIDogdGhpcy5zZWFyY2hQYXJhbXMucm93RGF0YTtcclxuICAgIGluc3RhbmNlLmNvbHVtbkRlZnMgPSB0aGlzLnNlYXJjaFBhcmFtcy5jb2x1bW5EZWZzO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXNwOiBhbnlbXSkgPT4ge1xyXG4gICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICAgIGlmIChyZXNwLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHJlc3BbMF07XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmMUtleVVwICgpIHtcclxuICAgIGlmICghdGhpcy5idG5TZWFyY2gpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5uZ1NlbGVjdFNpbXBsZS5jbG9zZSgpO1xyXG4gICAgLy90aGlzLmJ0blNlYXJjaC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB0aGlzLm9uU2VhcmNoKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxsYWJlbCAqbmdJZj1cImxhYmVsICE9IG51bGwgJiYgbGFiZWwgIT0gJycgJiYgc2hvd0xhYmVsXCIgY2xhc3M9XCJkLWZsZXggc3VtYXgtbGFiZWwgbWItMCBwLTBcIj5cclxuICA8c3BhbiAqbmdJZj1cIiF0ZW1wbGF0ZUxhYmVsOyBlbHNlIHRlbXBsYXRlTGFiZWxcIiBbdGl0bGVdPVwibGFiZWxcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzXCI+XHJcbiAgICB7eyBsYWJlbCB9fVxyXG4gIDwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgW2NsYXNzLnRleHQtZGFuZ2VyXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbFwiPiAqPC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwibGFiZWxJbmZvXCI+XHJcbiAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZSB0ZXh0LWluZm8gbWwtMlwiIFttYXRUb29sdGlwXT1cInRleHRMYWJlbEluZm9cIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1pbmZvXCI+PC9pPlxyXG4gIDwvc3Bhbj5cclxuPC9sYWJlbD5cclxuXHJcbjxkaXZcclxuICBbY2xhc3MuaW5wdXQtaWNvbl09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuICBbY2xhc3MucmlnaHRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiXHJcbiAgW2NsYXNzLnJlZnJlc2hdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZCAmJiByZWZyZXNoXCJcclxuICBbY2xhc3Muc2VhcmNoXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJiAoY29udHJvbHM/LmRpcnR5IHx8IGNvbnRyb2xzPy50b3VjaGVkKSAmJiBzdWJtaXR0ZWQgJiYgc2VhcmNoXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCJcclxuICAgICAgW2NsYXNzLm5nLXNlbGVjdC1jb250YWluZXItZnVsbGJ1dHRvbnNdPVwic2VhcmNoICYmIHJlZnJlc2ggJiYgcmVkaXJlY3RcIlxyXG4gICAgICBbY2xhc3MuYXBwLW5nLXNlbGVjLWNvbnRhaW5lcl09XCJzZWFyY2ggfHwgcmVmcmVzaFwiXHJcbiAgICAgIFtjbGFzcy53LTEwMF09XCIhc2VhcmNoICYmICFyZWZyZXNoXCI+XHJcbiAgICAgIDxuZy1zZWxlY3RcclxuICAgICAgICAjbmdTZWxlY3RTaW1wbGVcclxuICAgICAgICBbY2xhc3NdPVwic2VhcmNoIHx8IHJlZnJlc2ggPyAnYXBwLW5nLXNlbGVjdCcgOiAndy0xMDAnXCJcclxuICAgICAgICBbY2xhc3MuYWN0aW9uXT1cInNlYXJjaCAmJiByZWZyZXNoXCJcclxuICAgICAgICBbaXRlbXNdPVwiaXRlbXMgfCBhc3luY1wiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJfdmFsdWVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAoY2hhbmdlKT1cImV2ZW50Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChibHVyKT1cImV2ZW50Qmx1cigkZXZlbnQpXCJcclxuICAgICAgICAoZm9jdXMpPVwiZXZlbnRGb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAoc2VhcmNoKT1cImV2ZW50U2VhcmNoKCRldmVudClcIlxyXG4gICAgICAgIFttYXJrRmlyc3RdPVwibWFya0ZpcnN0XCJcclxuICAgICAgICBbY2xlYXJhYmxlXT1cIiFyZXF1aXJlZCAmJiBjbGVhcmFibGVcIlxyXG4gICAgICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInZpcnR1YWxTY3JvbGxcIlxyXG4gICAgICAgIFtpbnB1dEF0dHJzXT1cInsgYXV0b2NvbXBsZXRlOiBhdXRvY29tcGxldGUgfVwiXHJcbiAgICAgICAgW2NsZWFyT25CYWNrc3BhY2VdPVwiY2xlYXJPbkJhY2tzcGFjZVwiXHJcbiAgICAgICAgW29wZW5PbkVudGVyXT1cIm9wZW5PbkVudGVyXCJcclxuICAgICAgICAoa2V5ZG93bi5kZWxldGUpPVwiIXJlcXVpcmVkICYmIGNsZWFyYWJsZSA/IGNsZWFyKCkgOiAnJ1wiXHJcbiAgICAgICAgKGNsZWFyKT1cImNsZWFyKClcIlxyXG4gICAgICAgIChrZXl1cC5GMSk9XCJmMUtleVVwKClcIlxyXG4gICAgICAgIFtub3RGb3VuZFRleHRdPVwibm90Rm91bmRUZXh0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjY2lvbmFyXCJcclxuICAgICAgICAoa2V5dXAuZW50ZXIpPVwiZW50ZXJLZXlVcCgpXCJcclxuICAgICAgICBbY2xlYXJBbGxUZXh0XT1cImNsZWFyQWxsVGV4dFwiXHJcbiAgICAgICAgW3NlYXJjaGFibGVdPVwic2VhcmNoYWJsZVwiXHJcbiAgICAgICAgKGtleXVwLkFycm93TGVmdCk9XCJsZWZ0S2V5VXAoKVwiXHJcbiAgICAgICAgW2FwcGVuZFRvXT1cImFwcGVuZFRvXCJcclxuICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgICBbbG9hZGluZ1RleHRdPVwibG9hZGluZ1RleHRcIlxyXG4gICAgICAgIFtjbGFzcy5uZy1zZWxlY3QtaW52YWxpZF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuICAgICAgICBbY2xhc3Mubmctc2VsZWN0LXRvdWNoZWRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiXHJcbiAgICAgICAgW2NsYXNzLnVwcGVyQ2FzZV09XCJ1cHBlckNhc2VcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInNldE5nQ2xhc3NcIj5cclxuICAgICAgICA8IS0tIE9QQ0lPTkVTIERFIExJU1RBRE8gLS0+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nLW9wdGlvbi10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgICAgICAgIDxzcGFuIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIHRpdGxlPVwie3sgaXRlbS5sYWJlbCB9fVwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy1zZWxlY3Q+XHJcblxyXG4gICAgICA8IS0tIHRvb2x0aXAtbWVzc2FnZSBlcyBlbCBpY29ubyBkZSBlcnJvciAtLT5cclxuICAgICAgPHRvb2x0aXAtbWVzc2FnZVxyXG4gICAgICAgIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICAgICAgW2NvbnRyb2xzXT1cImNvbnRyb2xzXCJcclxuICAgICAgICBbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuICAgICAgICBbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiXHJcbiAgICAgICAgW3Rvb2x0aXBNZXNzYWdlXT1cInRvb2x0aXBNZXNzYWdlXCI+PC90b29sdGlwLW1lc3NhZ2U+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2ggJiYgcmVmcmVzaCAmJiByZWRpcmVjdDsgZWxzZSB0ZW1wbGF0ZUFjdGlvblwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXBwLW5nLXNlbGVjdC1hY3Rpb24gYmQtaGlnaGxpZ2hcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAjYnRuU2VhcmNoXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBwLTAgcm91bmRlZC0wIGgtMTAwXCJcclxuICAgICAgICAgIChrZXl1cC5BcnJvd0xlZnQpPVwibmdTZWxlY3RTaW1wbGUuZm9jdXMoKVwiXHJcbiAgICAgICAgICBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsgYm9yZGVyLWNvbG9yOiBvcmFuZ2VcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2VhcmNoKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoIHRleHQtd2hpdGUgcHgtMVwiIFttYXRUb29sdGlwXT1cIidCdXNjYXInXCIgbWF0VG9vbHRpcENsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIj48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJyZWZyZXNoXCJcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5IHx8IGlzUmVmcmVzaERpc2FibGVkXCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1pbmZvIHAtMCByb3VuZGVkLTAgaC0xMDBcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uUmVmcmVzaCgpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXJlZnJlc2ggdGV4dC13aGl0ZSBweC0xXCIgW21hdFRvb2x0aXBdPVwiJ1JlZnJlc2NhcidcIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1pbmZvXCI+PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgcC0wIHJvdW5kZWQtMCBoLTEwMFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib3BlbkVubGFjZSgpXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seSB8fCBpc1JlZGlyZWN0RGlzYWJsZWRcIj5cclxuICAgICAgICAgIDxlbSBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtcmVjdGFuZ2xlLWxpc3QgdGV4dC13aGl0ZSBweC0xXCIgW21hdFRvb2x0aXBdPVwidGl0bGVSZWRpcmVjdCFcIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1zdWNjZXNzXCI+IDwvZW0+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZUFjdGlvbj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcC1uZy1zZWxlY3QtYnV0dG9uIGJkLWhpZ2hsaWdodFwiICpuZ0lmPVwic2VhcmNoXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgI2J0blNlYXJjaFxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgcC0wIHJvdW5kZWQtMCBoLTEwMFwiXHJcbiAgICAgICAgICAoa2V5dXAuQXJyb3dMZWZ0KT1cIm5nU2VsZWN0U2ltcGxlLmZvY3VzKClcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2VhcmNoKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoIHRleHQtd2hpdGUgcHgtMVwiIFttYXRUb29sdGlwXT1cIidCdXNjYXInXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctc3VjY2Vzc1wiPjwvaT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcHAtbmctc2VsZWN0LWJ1dHRvbiBiZC1oaWdobGlnaHRcIiAqbmdJZj1cInJlZnJlc2hcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInJlZnJlc2hcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHkgfHwgaXNSZWZyZXNoRGlzYWJsZWRcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWluZm8gcC0wIHJvdW5kZWQtMCBoLTEwMFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25SZWZyZXNoKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaCB0ZXh0LXdoaXRlIHB4LTFcIiBbbWF0VG9vbHRpcF09XCInUmVmcmVzY2FyJ1wiIG1hdFRvb2x0aXBDbGFzcz1cImJnLWluZm9cIj48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXBwLW5nLXNlbGVjdC1idXR0b24gYmQtaGlnaGxpZ2h0XCIgKm5nSWY9XCJyZWRpcmVjdFwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgcC0wIHJvdW5kZWQtMCBoLTEwMFwiXHJcbiAgICAgICAgICBzdHlsZT1cInBhZGRpbmctdG9wOiAzcHg7IHBhZGRpbmctYm90dG9tOiA3cHg7IGJvcmRlci1yYWRpdXM6IDBweFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib3BlbkVubGFjZSgpXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seSB8fCBpc1JlZGlyZWN0RGlzYWJsZWRcIj5cclxuICAgICAgICAgIDxlbSBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtcmVjdGFuZ2xlLWxpc3QgdGV4dC13aGl0ZSBweC0xXCIgW21hdFRvb2x0aXBdPVwidGl0bGVSZWRpcmVjdCFcIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1zdWNjZXNzXCI+IDwvZW0+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbW9yZS1idXR0b25zXVwiPjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIGVycm9yLW1lc3NhZ2UgZXMgZWwgbWFuc2FqZSBxdWUgYXBhcmVjZSBhYmFqbyBkZWwgY29tcG9uZW50ZSAtLT5cclxuPGVycm9yLW1lc3NhZ2VcclxuICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gIFtjb250cm9sc109XCJjb250cm9sc1wiXHJcbiAgW3ZhbGlkYXRvck1lc3NhZ2VdPVwidmFsaWRhdG9yTWVzc2FnZVwiXHJcbiAgW3N1Ym1pdHRlZF09XCJzdWJtaXR0ZWRcIlxyXG4gIFt0b29sdGlwTWVzc2FnZV09XCJ0b29sdGlwTWVzc2FnZVwiPjwvZXJyb3ItbWVzc2FnZT5cclxuIl19
|
|
461
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL25nLXNlbGVjdC1zaW1wbGUvbmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL25nLXNlbGVjdC1zaW1wbGUvbmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsYUFBYSxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBR3JHLE9BQU8sRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUV2RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBSXJELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQ1MsYUFBMkIsRUFBRSxFQUM3QixRQUFnQixFQUFFLEVBQ2xCLFFBQWdCLE9BQU8sRUFDdkIsVUFBNkIsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUhuQyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFlB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LEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IE5nU2VsZWN0Q29tcG9uZW50IH0gZnJvbSBcIkBuZy1zZWxlY3Qvbmctc2VsZWN0XCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBzaGFyZVJlcGxheSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBEaWFsb2dBZ0dyaWRTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi9kaWFsb2ctYWctZ3JpZC1zZWFyY2gvZGlhbG9nLWFnLWdyaWQtc2VhcmNoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VVdGlsU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9tZXNzYWdlLXV0aWwuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTaGFyZWRDb21wb25lbnRzVXRpbCB9IGZyb20gXCIuLi91dGlscy9TaGFyZWRDb21wb25lbnRzVXRpbFwiO1xyXG5pbXBvcnQgeyBWYWxpZGF0ZVV0aWwgfSBmcm9tIFwiLi4vdXRpbHMvVmFsaWRhdGVVdGlsXCI7XHJcbmltcG9ydCB7IE5nU2VsZWN0U2ltcGxlU2VydmljZSB9IGZyb20gXCIuL25nLXNlbGVjdC1zaW1wbGUuc2VydmljZVwiO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hQYXJhbXMge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbHVtbkRlZnM6IENvbHVtbkRlZnNbXSA9IFtdLFxyXG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmcgPSBcIlwiLFxyXG4gICAgcHVibGljIHdpZHRoOiBzdHJpbmcgPSBcIjk5MHB4XCIsXHJcbiAgICBwdWJsaWMgcm93RGF0YTogT2JzZXJ2YWJsZTxhbnlbXT4gPSBvZihbXSlcclxuICApIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sdW1uRGVmcyB7XHJcbiAgaGVhZGVyTmFtZT86IHN0cmluZztcclxuICBmaWVsZD86IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxuICBjZWxsUmVuZGVyZXI/OiBhbnk7XHJcbiAgdmFsdWVHZXR0ZXI/OiAoZmllbGQ6IGFueSkgPT4gc3RyaW5nIHwgc3RyaW5nO1xyXG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcclxuICByZXNpemFibGU/OiBib29sZWFuO1xyXG4gIGNlbGxDbGFzcz86IHN0cmluZ1tdO1xyXG4gIGNlbGxTdHlsZT86IHt9O1xyXG4gIHZhbHVlRm9ybWF0dGVyPzogYW55O1xyXG4gIHBpbm5lZD86IHN0cmluZztcclxuICBzb3J0Pzogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25nLXNlbGVjdC1zaW1wbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uZy1zZWxlY3Qtc2ltcGxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uZy1zZWxlY3Qtc2ltcGxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ1NlbGVjdFNpbXBsZUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmdTZWxlY3RTaW1wbGVDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdTZWxlY3RTaW1wbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKFwibmdTZWxlY3RTaW1wbGVcIikgbmdTZWxlY3RTaW1wbGUhOiBOZ1NlbGVjdENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKFwiYnRuU2VhcmNoXCIpIGJ0blNlYXJjaCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dMYWJlbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgbGFiZWw6IGFueSA9IG51bGw7XHJcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiBzdHJpbmcgPSBcImNjLWNzY1wiO1xyXG4gIEBJbnB1dCgpIG5leHQ6IGFueTtcclxuICBASW5wdXQoKSBuZXh0SXNEaXNhYmxlOiBhbnk7XHJcbiAgQElucHV0KCkgYmFjazogYW55O1xyXG4gIEBJbnB1dCgpIGJhY2tJc0Rpc2FibGU6IGFueTtcclxuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB2YWxpZGF0b3JNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdG9vbHRpcE1lc3NhZ2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG9wZW5XaGVuRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWFyY2hCeTogc3RyaW5nID0gXCJ2YWx1ZVwiO1xyXG4gIEBJbnB1dCgpIG1hcmtGaXJzdEl0ZW06IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBtYXJrV2hlbkhhdmVPbmVJdGVtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3VibWl0dGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzZXROZ0NsYXNzOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHNlYXJjaGFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRvckFsZXJ0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdXBwZXJDYXNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGVtcGxhdGVMYWJlbDogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGFwcGVuZFRvOiBzdHJpbmcgPSBcImJvZHlcIjtcclxuICBASW5wdXQoKSBpdGVtcyE6IE9ic2VydmFibGU8YW55W10+O1xyXG5cclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsb2FkaW5nVGV4dDogc3RyaW5nID0gXCJDYXJnYW5kby4uLlwiO1xyXG4gIEBJbnB1dCgpIGNsZWFyQWxsVGV4dDogc3RyaW5nID0gXCJMaW1waWFyXCI7XHJcbiAgQElucHV0KCkgbm90Rm91bmRUZXh0OiBzdHJpbmcgPSBcIk5vIHNlIGVuY29udHJhcm9uIHJlc3VsdGFkb3NcIjtcclxuXHJcbiAgQElucHV0KCkgbWFya0ZpcnN0OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjbGVhcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNsZWFyT25CYWNrc3BhY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB2aXJ0dWFsU2Nyb2xsOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBvcGVuT25FbnRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlZnJlc2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1JlZnJlc2hEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlZGlyZWN0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHNlYXJjaFBhcmFtczogU2VhcmNoUGFyYW1zID0gbmV3IFNlYXJjaFBhcmFtcygpO1xyXG4gIEBJbnB1dCgpIGxhYmVsSW5mbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRleHRMYWJlbEluZm86IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIEBJbnB1dCgpIHVybFJlZGlyZWN0OiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHRpdGxlUmVkaXJlY3Q6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgaXNSZWRpcmVjdERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBvbk5leHQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkJhY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25mb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9ucmVmcmVzaDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uc2VhcmNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICB2YWxpZGF0ZVV0aWwgPSBuZXcgVmFsaWRhdGVVdGlsKCk7XHJcbiAgc2hhcmVkQ29tcG9uZW50c1V0aWwgPSBuZXcgU2hhcmVkQ29tcG9uZW50c1V0aWwoKTtcclxuXHJcbiAgYWxsSXRlbXMgPSBbXTtcclxuICBfdmFsdWU6IGFueTtcclxuICBjb250cm9sczogYW55O1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIG9uQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG5cclxuICBvblZhbGlkYXRpb25DaGFuZ2UgPSAoKSA9PiB7IH07XHJcblxyXG4gIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcclxuXHJcbiAgZm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5nU2VsZWN0U2ltcGxlLmZvY3VzKCk7XHJcbiAgICBpZiAodGhpcy5vcGVuV2hlbkZvY3VzKSB7XHJcbiAgICAgIHRoaXMubmdTZWxlY3RTaW1wbGUub3BlbigpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNsb3NlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uZ1NlbGVjdFNpbXBsZS5jbG9zZSgpO1xyXG4gIH07XHJcblxyXG4gIG9wZW5FbmxhY2UgKCk6IHZvaWQge1xyXG4gICAgd2luZG93Lm9wZW4odGhpcy51cmxSZWRpcmVjdCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbWVzc2FnZVV0aWxTZXJ2aWNlOiBNZXNzYWdlVXRpbFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIG5nU2VsZWN0U2ltcGxlU2VydmljZTogTmdTZWxlY3RTaW1wbGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRvck1lc3NhZ2UgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRWYWxpZGF0b3JNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnRvb2x0aXBNZXNzYWdlID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0VG9vbHRpcE1lc3NhZ2UoKTtcclxuICAgIHRoaXMub3BlbldoZW5Gb2N1cyA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldE9wZW5XaGVuRm9jdXMoKTtcclxuICAgIHRoaXMuc2VhcmNoQnkgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRTZWFyY2hCeSgpO1xyXG4gICAgdGhpcy5tYXJrRmlyc3RJdGVtID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0TWFya0ZpcnN0SXRlbSgpO1xyXG4gICAgdGhpcy5zdWJtaXR0ZWQgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRTdWJtaXR0ZWQoKTtcclxuICAgIHRoaXMuc2VhcmNoYWJsZSA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldFNlYXJjaGFibGUoKTtcclxuICAgIHRoaXMudmFsaWRhdG9yQWxlcnQgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRWYWxpZGF0b3JBbGVydCgpO1xyXG4gICAgdGhpcy51cHBlckNhc2UgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRVcHBlckNhc2UoKTtcclxuICAgIHRoaXMuYXBwZW5kVG8gPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRBcHBlbmRUbygpO1xyXG4gICAgdGhpcy5sb2FkaW5nVGV4dCA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldExvYWRpbmdUZXh0KCk7XHJcbiAgICB0aGlzLmNsZWFyQWxsVGV4dCA9IHRoaXMubmdTZWxlY3RTaW1wbGVTZXJ2aWNlLmdldENsZWFyQWxsVGV4dCgpO1xyXG4gICAgdGhpcy5tYXJrRmlyc3QgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRNYXJrRmlyc3QoKTtcclxuICAgIHRoaXMuY2xlYXJhYmxlID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0Q2xlYXJhYmxlKCk7XHJcbiAgICB0aGlzLmNsZWFyT25CYWNrc3BhY2UgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRDbGVhck9uQmFja3NwYWNlKCk7XHJcbiAgICB0aGlzLnZpcnR1YWxTY3JvbGwgPSB0aGlzLm5nU2VsZWN0U2ltcGxlU2VydmljZS5nZXRWaXJ0dWFsU2Nyb2xsKCk7XHJcbiAgICB0aGlzLm9wZW5PbkVudGVyID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0T3Blbk9uRW50ZXIoKTtcclxuICAgIHRoaXMubm90Rm91bmRUZXh0ID0gdGhpcy5uZ1NlbGVjdFNpbXBsZVNlcnZpY2UuZ2V0Tm90Rm91bmRUZXh0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSAoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSlcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1tcIml0ZW1zXCJdKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2FyZ2EoKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzW1wic3VibWl0dGVkXCJdKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2xzICE9PSB1bmRlZmluZWQgJiYgY2hhbmdlc1tcInN1Ym1pdHRlZFwiXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIGNhcmdhICgpIHtcclxuICAgIHRoaXMuYWxsSXRlbXMgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLnBpcGUoc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KSk7XHJcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuaXRlbXMuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHJlc29sdmUocmVzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuX3ZhbHVlICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgIXRoaXMudmFsaWRhdGVVdGlsLmlzVW5kZWZpbmVkT3JOdWxsKHRoaXMuZ2V0T2JqZWN0KGVsZW1lbnQsIHRoaXMuc2VhcmNoQnkpKSAmJlxyXG4gICAgICAgICAgdGhpcy5nZXRPYmplY3QoZWxlbWVudCwgdGhpcy5zZWFyY2hCeSkgPT09IHRoaXMuX3ZhbHVlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLl92YWx1ZSA9IGVsZW1lbnQ7XHJcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubWFya0ZpcnN0SXRlbSAmJiB0aGlzLmFsbEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuYWxsSXRlbXNbMF07XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5tYXJrV2hlbkhhdmVPbmVJdGVtICYmIHRoaXMuYWxsSXRlbXMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmFsbEl0ZW1zWzBdO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0ICgpIHsgfVxyXG5cclxuICBnZXRPYmplY3QgKG9iajogYW55LCBrZXk6IGFueSkge1xyXG4gICAgcmV0dXJuIGtleS5zcGxpdChcIi5cIikucmVkdWNlKGZ1bmN0aW9uIChvOiBhbnksIHg6IGFueSkge1xyXG4gICAgICByZXR1cm4gdHlwZW9mIG8gPT0gXCJ1bmRlZmluZWRcIiB8fCBvID09PSBudWxsID8gbyA6IG9beF07XHJcbiAgICB9LCBvYmopO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSAodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMubG9hZGluZykge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgIXRoaXMudmFsaWRhdGVVdGlsLmlzVW5kZWZpbmVkT3JOdWxsKHRoaXMuZ2V0T2JqZWN0KGVsZW1lbnQsIHRoaXMuc2VhcmNoQnkpKSAmJlxyXG4gICAgICAgICAgICB0aGlzLmdldE9iamVjdChlbGVtZW50LCB0aGlzLnNlYXJjaEJ5KSA9PT0gdGhpcy5fdmFsdWVcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IGVsZW1lbnQ7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy90aGlzLnNlYXJjaEVsZW1lbnQodmFsdWUpO1xyXG4gICAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlIChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkIChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlIChpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgYW55IHtcclxuICAgIHRoaXMuY29udHJvbHMgPSBjb250cm9sO1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlPyhmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIGV2ZW50Q2hhbmdlIChlOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UoZSk7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIGV2ZW50Qmx1ciAoZTogYW55KSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgIHRoaXMuYmx1ci5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgZXZlbnRGb2N1cyAoZTogYW55KSB7XHJcbiAgICAvLyB0aGlzLm5nU2VsZWN0U2ltcGxlLmZvY3VzKCk7XHJcbiAgICBpZiAodGhpcy5vcGVuV2hlbkZvY3VzKSB7XHJcbiAgICAgIHRoaXMubmdTZWxlY3RTaW1wbGUub3BlbigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbmZvY3VzLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBldmVudFNlYXJjaCAoZTogYW55KSB7XHJcbiAgICB0aGlzLm9uc2VhcmNoLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBlbnRlcktleVVwICgpIHtcclxuICAgIHRoaXMubmdTZWxlY3RTaW1wbGUuY2xvc2UoKTtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBsZXQgdmFsaWRhdG9yID0gdGhpcy5zaGFyZWRDb21wb25lbnRzVXRpbC5zdG9wQnlWYWxpZGF0b3IodGhpcy5jb250cm9scywgdGhpcy52YWxpZGF0b3JBbGVydCwgdGhpcy5sYWJlbCk7XHJcbiAgICAgIGlmICh2YWxpZGF0b3IuZXJyb3IpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VVdGlsU2VydmljZS5nZXRNZXNzYWdlRXJyb3IoXCIwMDAwNDZcIiwgXCJFcnJvclwiLCB2YWxpZGF0b3IubWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5uZXh0ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodGhpcy5uZXh0LmRpc2FibGVkIHx8IHRoaXMubmV4dC5yZWFkb25seSkge1xyXG4gICAgICAgIGlmICh0aGlzLm5leHRJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLm5leHRJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5uZXh0LmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLm5leHRJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5uZXh0SXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vbk5leHQuZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZWZ0S2V5VXAgKCkge1xyXG4gICAgdGhpcy5uZ1NlbGVjdFNpbXBsZS5jbG9zZSgpO1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3IgPSB0aGlzLnNoYXJlZENvbXBvbmVudHNVdGlsLnN0b3BCeVZhbGlkYXRvcih0aGlzLmNvbnRyb2xzLCB0aGlzLnZhbGlkYXRvckFsZXJ0LCB0aGlzLmxhYmVsKTtcclxuICAgICAgaWYgKHZhbGlkYXRvci5lcnJvcikge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVV0aWxTZXJ2aWNlLmdldE1lc3NhZ2VFcnJvcihcIjAwMDA0NlwiLCBcIkVycm9yXCIsIHZhbGlkYXRvci5tZXNzYWdlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmJhY2sgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmJhY2suZGlzYWJsZWQgfHwgdGhpcy5iYWNrLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYmFja0lzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMuYmFja0lzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJhY2suZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuYmFja0lzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmJhY2tJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uQmFjay5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyICgpIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25SZWZyZXNoICgpIHtcclxuICAgIHRoaXMub25yZWZyZXNoLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9uU2VhcmNoICgpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oRGlhbG9nQWdHcmlkU2VhcmNoQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiB0aGlzLnNlYXJjaFBhcmFtcy53aWR0aCxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBsZXQgcm93ZGF0YSA9IGF3YWl0IHRoaXMuc2VhcmNoUGFyYW1zLnJvd0RhdGEudG9Qcm9taXNlKCk7XHJcbiAgICBsZXQgaW5zdGFuY2UgPSBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2U7XHJcbiAgICBpbnN0YW5jZS50aXR0bGUgPSB0aGlzLnNlYXJjaFBhcmFtcy50aXRsZSA9PT0gXCJcIiA/IHRoaXMubGFiZWwgOiB0aGlzLnNlYXJjaFBhcmFtcy50aXRsZTtcclxuICAgIGluc3RhbmNlLnJvd0RhdGEgPSByb3dkYXRhICYmIHJvd2RhdGEubGVuZ3RoIDwgMSA/IHRoaXMuaXRlbXMgOiB0aGlzLnNlYXJjaFBhcmFtcy5yb3dEYXRhO1xyXG4gICAgaW5zdGFuY2UuY29sdW1uRGVmcyA9IHRoaXMuc2VhcmNoUGFyYW1zLmNvbHVtbkRlZnM7XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3A6IGFueVtdKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgaWYgKHJlc3AubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gcmVzcFswXTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGYxS2V5VXAgKCkge1xyXG4gICAgaWYgKCF0aGlzLmJ0blNlYXJjaCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm5nU2VsZWN0U2ltcGxlLmNsb3NlKCk7XHJcbiAgICAvL3RoaXMuYnRuU2VhcmNoLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHRoaXMub25TZWFyY2goKTtcclxuICB9XHJcbn1cclxuIiwiPGxhYmVsICpuZ0lmPVwibGFiZWwgIT0gbnVsbCAmJiBsYWJlbCAhPSAnJyAmJiBzaG93TGFiZWxcIiBjbGFzcz1cImQtZmxleCBzdW1heC1sYWJlbCBtYi0wIHAtMFwiPlxyXG4gIDxzcGFuICpuZ0lmPVwiIXRlbXBsYXRlTGFiZWw7IGVsc2UgdGVtcGxhdGVMYWJlbFwiIFt0aXRsZV09XCJsYWJlbFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXNcIj5cclxuICAgIHt7IGxhYmVsIH19XHJcbiAgPC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBbY2xhc3MudGV4dC1kYW5nZXJdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsXCI+ICo8L3NwYW4+XHJcbiAgPHNwYW4gKm5nSWY9XCJsYWJlbEluZm9cIj5cclxuICAgIDxpIGNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tY2lyY2xlIHRleHQtaW5mbyBtbC0yXCIgW21hdFRvb2x0aXBdPVwidGV4dExhYmVsSW5mb1wiIG1hdFRvb2x0aXBDbGFzcz1cImJnLWluZm9cIj48L2k+XHJcbiAgPC9zcGFuPlxyXG48L2xhYmVsPlxyXG5cclxuPGRpdlxyXG4gIFtjbGFzcy5pbnB1dC1pY29uXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJiAoY29udHJvbHM/LmRpcnR5IHx8IGNvbnRyb2xzPy50b3VjaGVkKSAmJiBzdWJtaXR0ZWRcIlxyXG4gIFtjbGFzcy5yaWdodF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuICBbY2xhc3MucmVmcmVzaF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkICYmIHJlZnJlc2hcIlxyXG4gIFtjbGFzcy5zZWFyY2hdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZCAmJiBzZWFyY2hcIj5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIlxyXG4gICAgICBbY2xhc3Mubmctc2VsZWN0LWNvbnRhaW5lci1mdWxsYnV0dG9uc109XCJzZWFyY2ggJiYgcmVmcmVzaCAmJiByZWRpcmVjdFwiXHJcbiAgICAgIFtjbGFzcy5hcHAtbmctc2VsZWMtY29udGFpbmVyXT1cInNlYXJjaCB8fCByZWZyZXNoXCJcclxuICAgICAgW2NsYXNzLnctMTAwXT1cIiFzZWFyY2ggJiYgIXJlZnJlc2hcIj5cclxuICAgICAgPG5nLXNlbGVjdFxyXG4gICAgICAgICNuZ1NlbGVjdFNpbXBsZVxyXG4gICAgICAgIFtjbGFzc109XCJzZWFyY2ggfHwgcmVmcmVzaCA/ICdhcHAtbmctc2VsZWN0JyA6ICd3LTEwMCdcIlxyXG4gICAgICAgIFtjbGFzcy5hY3Rpb25dPVwic2VhcmNoICYmIHJlZnJlc2hcIlxyXG4gICAgICAgIFtpdGVtc109XCJpdGVtcyB8IGFzeW5jXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cIl92YWx1ZVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwiZXZlbnRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKGJsdXIpPVwiZXZlbnRCbHVyKCRldmVudClcIlxyXG4gICAgICAgIChmb2N1cyk9XCJldmVudEZvY3VzKCRldmVudClcIlxyXG4gICAgICAgIChzZWFyY2gpPVwiZXZlbnRTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgW21hcmtGaXJzdF09XCJtYXJrRmlyc3RcIlxyXG4gICAgICAgIFtjbGVhcmFibGVdPVwiIXJlcXVpcmVkICYmIGNsZWFyYWJsZVwiXHJcbiAgICAgICAgW3ZpcnR1YWxTY3JvbGxdPVwidmlydHVhbFNjcm9sbFwiXHJcbiAgICAgICAgW2lucHV0QXR0cnNdPVwieyBhdXRvY29tcGxldGU6IGF1dG9jb21wbGV0ZSB9XCJcclxuICAgICAgICBbY2xlYXJPbkJhY2tzcGFjZV09XCJjbGVhck9uQmFja3NwYWNlXCJcclxuICAgICAgICBbb3Blbk9uRW50ZXJdPVwib3Blbk9uRW50ZXJcIlxyXG4gICAgICAgIChrZXlkb3duLmRlbGV0ZSk9XCIhcmVxdWlyZWQgJiYgY2xlYXJhYmxlID8gY2xlYXIoKSA6ICcnXCJcclxuICAgICAgICAoY2xlYXIpPVwiY2xlYXIoKVwiXHJcbiAgICAgICAgKGtleXVwLkYxKT1cImYxS2V5VXAoKVwiXHJcbiAgICAgICAgW25vdEZvdW5kVGV4dF09XCJub3RGb3VuZFRleHRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWNjaW9uYXJcIlxyXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJlbnRlcktleVVwKClcIlxyXG4gICAgICAgIFtjbGVhckFsbFRleHRdPVwiY2xlYXJBbGxUZXh0XCJcclxuICAgICAgICBbc2VhcmNoYWJsZV09XCJzZWFyY2hhYmxlXCJcclxuICAgICAgICAoa2V5dXAuQXJyb3dMZWZ0KT1cImxlZnRLZXlVcCgpXCJcclxuICAgICAgICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIlxyXG4gICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICAgIFtsb2FkaW5nVGV4dF09XCJsb2FkaW5nVGV4dFwiXHJcbiAgICAgICAgW2NsYXNzLm5nLXNlbGVjdC1pbnZhbGlkXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJiAoY29udHJvbHM/LmRpcnR5IHx8IGNvbnRyb2xzPy50b3VjaGVkKSAmJiBzdWJtaXR0ZWRcIlxyXG4gICAgICAgIFtjbGFzcy5uZy1zZWxlY3QtdG91Y2hlZF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuICAgICAgICBbY2xhc3MudXBwZXJDYXNlXT1cInVwcGVyQ2FzZVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwic2V0TmdDbGFzc1wiPlxyXG4gICAgICAgIDwhLS0gT1BDSU9ORVMgREUgTElTVEFETyAtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbmctb3B0aW9uLXRtcCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgICAgICAgPHNwYW4gZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgdGl0bGU9XCJ7eyBpdGVtLmxhYmVsIH19XCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXNlbGVjdD5cclxuXHJcbiAgICAgIDwhLS0gdG9vbHRpcC1tZXNzYWdlIGVzIGVsIGljb25vIGRlIGVycm9yIC0tPlxyXG4gICAgICA8dG9vbHRpcC1tZXNzYWdlXHJcbiAgICAgICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgICBbY29udHJvbHNdPVwiY29udHJvbHNcIlxyXG4gICAgICAgIFt2YWxpZGF0b3JNZXNzYWdlXT1cInZhbGlkYXRvck1lc3NhZ2VcIlxyXG4gICAgICAgIFtzdWJtaXR0ZWRdPVwic3VibWl0dGVkXCJcclxuICAgICAgICBbdG9vbHRpcE1lc3NhZ2VdPVwidG9vbHRpcE1lc3NhZ2VcIj48L3Rvb2x0aXAtbWVzc2FnZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlYXJjaCAmJiByZWZyZXNoICYmIHJlZGlyZWN0OyBlbHNlIHRlbXBsYXRlQWN0aW9uXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcHAtbmctc2VsZWN0LWFjdGlvbiBiZC1oaWdobGlnaFwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICNidG5TZWFyY2hcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIHAtMCByb3VuZGVkLTAgaC0xMDBcIlxyXG4gICAgICAgICAgKGtleXVwLkFycm93TGVmdCk9XCJuZ1NlbGVjdFNpbXBsZS5mb2N1cygpXCJcclxuICAgICAgICAgIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOyBib3JkZXItY29sb3I6IG9yYW5nZVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25TZWFyY2goKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2ggdGV4dC13aGl0ZSBweC0xXCIgW21hdFRvb2x0aXBdPVwiJ0J1c2NhcidcIiBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdG9vbHRpcFwiPjwvaT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInJlZnJlc2hcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHkgfHwgaXNSZWZyZXNoRGlzYWJsZWRcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWluZm8gcC0wIHJvdW5kZWQtMCBoLTEwMFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25SZWZyZXNoKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaCB0ZXh0LXdoaXRlIHB4LTFcIiBbbWF0VG9vbHRpcF09XCInUmVmcmVzY2FyJ1wiIG1hdFRvb2x0aXBDbGFzcz1cImJnLWluZm9cIj48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBwLTAgcm91bmRlZC0wIGgtMTAwXCJcclxuICAgICAgICAgIChjbGljayk9XCJvcGVuRW5sYWNlKClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5IHx8IGlzUmVkaXJlY3REaXNhYmxlZFwiPlxyXG4gICAgICAgICAgPGVtIGNsYXNzPVwiZmEtcmVndWxhciBmYS1yZWN0YW5nbGUtbGlzdCB0ZXh0LXdoaXRlIHB4LTFcIiBbbWF0VG9vbHRpcF09XCJ0aXRsZVJlZGlyZWN0IVwiIG1hdFRvb2x0aXBDbGFzcz1cImJnLXN1Y2Nlc3NcIj4gPC9lbT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlQWN0aW9uPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXBwLW5nLXNlbGVjdC1idXR0b24gYmQtaGlnaGxpZ2h0XCIgKm5nSWY9XCJzZWFyY2hcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAjYnRuU2VhcmNoXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBwLTAgcm91bmRlZC0wIGgtMTAwXCJcclxuICAgICAgICAgIChrZXl1cC5BcnJvd0xlZnQpPVwibmdTZWxlY3RTaW1wbGUuZm9jdXMoKVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25TZWFyY2goKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2ggdGV4dC13aGl0ZSBweC0xXCIgW21hdFRvb2x0aXBdPVwiJ0J1c2NhcidcIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1zdWNjZXNzXCI+PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcC1uZy1zZWxlY3QtYnV0dG9uIGJkLWhpZ2hsaWdodFwiICpuZ0lmPVwicmVmcmVzaFwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICpuZ0lmPVwicmVmcmVzaFwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seSB8fCBpc1JlZnJlc2hEaXNhYmxlZFwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4taW5mbyBwLTAgcm91bmRlZC0wIGgtMTAwXCJcclxuICAgICAgICAgIChjbGljayk9XCJvblJlZnJlc2goKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1yZWZyZXNoIHRleHQtd2hpdGUgcHgtMVwiIFttYXRUb29sdGlwXT1cIidSZWZyZXNjYXInXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctaW5mb1wiPjwvaT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcHAtbmctc2VsZWN0LWJ1dHRvbiBiZC1oaWdobGlnaHRcIiAqbmdJZj1cInJlZGlyZWN0XCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBwLTAgcm91bmRlZC0wIGgtMTAwXCJcclxuICAgICAgICAgIHN0eWxlPVwicGFkZGluZy10b3A6IDNweDsgcGFkZGluZy1ib3R0b206IDdweDsgYm9yZGVyLXJhZGl1czogMHB4XCJcclxuICAgICAgICAgIChjbGljayk9XCJvcGVuRW5sYWNlKClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5IHx8IGlzUmVkaXJlY3REaXNhYmxlZFwiPlxyXG4gICAgICAgICAgPGVtIGNsYXNzPVwiZmEtcmVndWxhciBmYS1yZWN0YW5nbGUtbGlzdCB0ZXh0LXdoaXRlIHB4LTFcIiBbbWF0VG9vbHRpcF09XCJ0aXRsZVJlZGlyZWN0IVwiIG1hdFRvb2x0aXBDbGFzcz1cImJnLXN1Y2Nlc3NcIj4gPC9lbT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttb3JlLWJ1dHRvbnNdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gZXJyb3ItbWVzc2FnZSBlcyBlbCBtYW5zYWplIHF1ZSBhcGFyZWNlIGFiYWpvIGRlbCBjb21wb25lbnRlIC0tPlxyXG48ZXJyb3ItbWVzc2FnZVxyXG4gIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgW2NvbnRyb2xzXT1cImNvbnRyb2xzXCJcclxuICBbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuICBbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiXHJcbiAgW3Rvb2x0aXBNZXNzYWdlXT1cInRvb2x0aXBNZXNzYWdlXCI+PC9lcnJvci1tZXNzYWdlPlxyXG4iXX0=
|