@handsontable/angular 9.0.2 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +19 -22
- package/README.md +11 -10
- package/bundles/handsontable-angular.umd.js +34 -28
- package/bundles/handsontable-angular.umd.js.map +1 -1
- package/bundles/handsontable-angular.umd.min.js +21 -24
- package/bundles/handsontable-angular.umd.min.js.map +1 -1
- package/esm2015/lib/hot-column.component.js +1 -1
- package/esm2015/lib/hot-settings-resolver.service.js +2 -2
- package/esm2015/lib/hot-table-registerer.service.js +6 -3
- package/esm2015/lib/hot-table.component.js +8 -2
- package/esm2015/lib/hot-table.module.js +2 -2
- package/esm5/lib/hot-column.component.js +1 -1
- package/esm5/lib/hot-settings-resolver.service.js +2 -2
- package/esm5/lib/hot-table-registerer.service.js +6 -3
- package/esm5/lib/hot-table.component.js +8 -2
- package/esm5/lib/hot-table.module.js +2 -2
- package/fesm2015/handsontable-angular.js +13 -4
- package/fesm2015/handsontable-angular.js.map +1 -1
- package/fesm5/handsontable-angular.js +13 -4
- package/fesm5/handsontable-angular.js.map +1 -1
- package/handsontable-angular.metadata.json +1 -1
- package/handsontable-non-commercial-license.pdf +0 -0
- package/lib/hot-column.component.d.ts +1 -1
- package/lib/hot-settings-resolver.service.d.ts +1 -1
- package/lib/hot-table-registerer.service.d.ts +1 -1
- package/lib/hot-table.component.d.ts +3 -1
- package/package.json +1 -1
- package/handsontable-general-terms.pdf +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ng://@handsontable/angular/lib/hot-table-registerer.service.ts","ng://@handsontable/angular/lib/hot-settings-resolver.service.ts","ng://@handsontable/angular/lib/hot-table.component.ts","ng://@handsontable/angular/lib/hot-column.component.ts","ng://@handsontable/angular/lib/hot-table.module.ts"],"names":["instances","Map","HOT_DESTROYED_WARNING","HotTableRegisterer","prototype","getInstance","id","hotInstance","get","console","warn","isDestroyed","registerInstance","instance","set","removeInstance","delete","Injectable","AVAILABLE_OPTIONS","Object","keys","Handsontable","DefaultSettings","AVAILABLE_HOOKS","hooks","getRegistered","HotSettingsResolver","mergeSettings","component","isSettingsObject","mergedSettings","concat","forEach","key","option","isHook","indexOf","_this","this","args","_i","arguments","length","_ngZone","run","apply","prepareChanges","changes","result","param","hasOwnProperty","currentValue","HotTableComponent","_hotTableRegisterer","_hotSettingsResolver","__hotInstance","columnsComponents","hotId","defineProperty","ngAfterViewInit","options","columns_1","column","push","runOutsideAngular","Core","container","nativeElement","init","ngOnChanges","newOptions","updateHotTable","ngOnDestroy","destroy","newSettings","updateSettings","onAfterColumnsChange","columns_2","columns","onAfterColumnsNumberChange","addColumn","removeColumn","index","splice","Component","selector","template","encapsulation","ViewEncapsulation","None","providers","NgZone","ViewChild","static","Input","HotColumnComponent","parentComponent","firstRun","ngOnInit","HotTableModule","forRoot","ngModule","version","NgModule","declarations","exports"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport Handsontable from 'handsontable';\n\nconst instances = new Map<string, Handsontable>();\n\nexport const HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' +\n ' used properly.';\n\n@Injectable()\nexport class HotTableRegisterer {\n public getInstance(id: string): Handsontable {\n const hotInstance = instances.get(id);\n\n console.warn(HOT_DESTROYED_WARNING);\n\n return hotInstance.isDestroyed ? null : hotInstance;\n }\n\n public registerInstance(id: string, instance: Handsontable): Map<string, Handsontable> {\n return instances.set(id, instance);\n }\n\n public removeInstance(id: string): boolean {\n return instances.delete(id);\n }\n}\n","import { Injectable, SimpleChanges } from '@angular/core';\nimport Handsontable from 'handsontable';\n\nconst AVAILABLE_OPTIONS: string[] = Object.keys(Handsontable.DefaultSettings);\nconst AVAILABLE_HOOKS: string[] = Handsontable.hooks.getRegistered();\n\n@Injectable()\nexport class HotSettingsResolver {\n mergeSettings(component): object {\n const isSettingsObject = typeof component['settings'] === 'object';\n const mergedSettings: Handsontable.GridSettings = isSettingsObject ? component['settings'] : {};\n const options = AVAILABLE_HOOKS.concat(AVAILABLE_OPTIONS);\n\n options.forEach(key => {\n const isHook = AVAILABLE_HOOKS.indexOf(key) > -1;\n let option;\n\n if (isSettingsObject && isHook) {\n option = component['settings'][key];\n }\n\n if (component[key] !== void 0) {\n option = component[key];\n }\n\n if (option === void 0) {\n return;\n\n } else if (typeof option === 'function' && isHook) {\n mergedSettings[key] = function(...args) {\n return component._ngZone.run(() => {\n return option.apply(this, args);\n });\n };\n\n } else {\n mergedSettings[key] = option;\n }\n });\n\n return mergedSettings;\n }\n\n prepareChanges(changes: SimpleChanges): Handsontable.GridSettings {\n const result: Handsontable.GridSettings = {};\n const parameters: string[] = Object.keys(changes);\n\n parameters.forEach((param) => {\n if (changes.hasOwnProperty(param)) {\n result[param] = changes[param].currentValue;\n }\n });\n\n return result;\n }\n}\n","import {\n AfterViewInit,\n Component,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport Handsontable from 'handsontable';\nimport {\n HotTableRegisterer,\n HOT_DESTROYED_WARNING\n} from './hot-table-registerer.service';\nimport { HotSettingsResolver } from './hot-settings-resolver.service';\nimport { HotColumnComponent } from './hot-column.component';\n\n@Component({\n selector: 'hot-table',\n template: '<div #container [id]=\"hotId\"></div>',\n encapsulation: ViewEncapsulation.None,\n providers: [ HotTableRegisterer, HotSettingsResolver ],\n})\nexport class HotTableComponent implements AfterViewInit, OnChanges, OnDestroy {\n @ViewChild('container', { static: false }) public container;\n\n private __hotInstance: Handsontable = null;\n private columnsComponents: HotColumnComponent[] = [];\n // component inputs\n @Input() settings: Handsontable.GridSettings;\n @Input() hotId = '';\n // handsontable options\n @Input() activeHeaderClassName: Handsontable.GridSettings['activeHeaderClassName'];\n @Input() allowEmpty: Handsontable.GridSettings['allowEmpty'];\n @Input() allowHtml: Handsontable.GridSettings['allowHtml'];\n @Input() allowInsertColumn: Handsontable.GridSettings['allowInsertColumn'];\n @Input() allowInsertRow: Handsontable.GridSettings['allowInsertRow'];\n @Input() allowInvalid: Handsontable.GridSettings['allowInvalid'];\n @Input() allowRemoveColumn: Handsontable.GridSettings['allowRemoveColumn'];\n @Input() allowRemoveRow: Handsontable.GridSettings['allowRemoveRow'];\n @Input() autoColumnSize: Handsontable.GridSettings['autoColumnSize'];\n @Input() autoRowSize: Handsontable.GridSettings['autoRowSize'];\n @Input() autoWrapCol: Handsontable.GridSettings['autoWrapCol'];\n @Input() autoWrapRow: Handsontable.GridSettings['autoWrapRow'];\n @Input() bindRowsWithHeaders: Handsontable.GridSettings['bindRowsWithHeaders'];\n @Input() cell: Handsontable.GridSettings['cell'];\n @Input() cells: Handsontable.GridSettings['cells'];\n @Input() checkedTemplate: Handsontable.GridSettings['checkedTemplate'];\n @Input() className: Handsontable.GridSettings['className'];\n @Input() colHeaders: Handsontable.GridSettings['colHeaders'];\n @Input() collapsibleColumns: Handsontable.GridSettings['collapsibleColumns'];\n @Input() columnHeaderHeight: Handsontable.GridSettings['columnHeaderHeight'];\n @Input() columns: Handsontable.GridSettings['columns'];\n @Input() columnSorting: Handsontable.GridSettings['columnSorting'];\n @Input() columnSummary: Handsontable.GridSettings['columnSummary'];\n @Input() colWidths: Handsontable.GridSettings['colWidths'];\n @Input() commentedCellClassName: Handsontable.GridSettings['commentedCellClassName'];\n @Input() comments: Handsontable.GridSettings['comments'];\n @Input() contextMenu: Handsontable.GridSettings['contextMenu'];\n @Input() copyable: Handsontable.GridSettings['copyable'];\n @Input() copyPaste: Handsontable.GridSettings['copyPaste'];\n @Input() correctFormat: Handsontable.GridSettings['correctFormat'];\n @Input() currentColClassName: Handsontable.GridSettings['currentColClassName'];\n @Input() currentHeaderClassName: Handsontable.GridSettings['currentHeaderClassName'];\n @Input() currentRowClassName: Handsontable.GridSettings['currentRowClassName'];\n @Input() customBorders: Handsontable.GridSettings['customBorders'];\n @Input() data: Handsontable.GridSettings['data'];\n @Input() dataSchema: Handsontable.GridSettings['dataSchema'];\n @Input() dateFormat: Handsontable.GridSettings['dateFormat'];\n @Input() defaultDate: Handsontable.GridSettings['defaultDate'];\n @Input() disableVisualSelection: Handsontable.GridSettings['disableVisualSelection'];\n @Input() dragToScroll: Handsontable.GridSettings['dragToScroll'];\n @Input() dropdownMenu: Handsontable.GridSettings['dropdownMenu'];\n @Input() editor: Handsontable.GridSettings['editor'];\n @Input() enterBeginsEditing: Handsontable.GridSettings['enterBeginsEditing'];\n @Input() enterMoves: Handsontable.GridSettings['enterMoves'];\n @Input() fillHandle: Handsontable.GridSettings['fillHandle'];\n @Input() filter: Handsontable.GridSettings['filter'];\n @Input() filteringCaseSensitive: Handsontable.GridSettings['filteringCaseSensitive'];\n @Input() filters: Handsontable.GridSettings['filters'];\n @Input() fixedColumnsLeft: Handsontable.GridSettings['fixedColumnsLeft'];\n @Input() fixedRowsBottom: Handsontable.GridSettings['fixedRowsBottom'];\n @Input() fixedRowsTop: Handsontable.GridSettings['fixedRowsTop'];\n @Input() formulas: Handsontable.GridSettings['formulas'];\n @Input() fragmentSelection: Handsontable.GridSettings['fragmentSelection'];\n @Input() height: Handsontable.GridSettings['height'];\n @Input() hiddenColumns: Handsontable.GridSettings['hiddenColumns'];\n @Input() hiddenRows: Handsontable.GridSettings['hiddenRows'];\n @Input() invalidCellClassName: Handsontable.GridSettings['invalidCellClassName'];\n @Input() label: Handsontable.GridSettings['label'];\n @Input() language: Handsontable.GridSettings['language'];\n @Input() licenseKey: Handsontable.GridSettings['licenseKey'];\n @Input() manualColumnFreeze: Handsontable.GridSettings['manualColumnFreeze'];\n @Input() manualColumnMove: Handsontable.GridSettings['manualColumnMove'];\n @Input() manualColumnResize: Handsontable.GridSettings['manualColumnResize'];\n @Input() manualRowMove: Handsontable.GridSettings['manualRowMove'];\n @Input() manualRowResize: Handsontable.GridSettings['manualRowResize'];\n @Input() maxCols: Handsontable.GridSettings['maxCols'];\n @Input() maxRows: Handsontable.GridSettings['maxRows'];\n @Input() mergeCells: Handsontable.GridSettings['mergeCells'];\n @Input() minCols: Handsontable.GridSettings['minCols'];\n @Input() minRows: Handsontable.GridSettings['minRows'];\n @Input() minSpareCols: Handsontable.GridSettings['minSpareCols'];\n @Input() minSpareRows: Handsontable.GridSettings['minSpareRows'];\n @Input() multiColumnSorting: Handsontable.GridSettings['multiColumnSorting'];\n @Input() nestedHeaders: Handsontable.GridSettings['nestedHeaders'];\n @Input() nestedRows: Handsontable.GridSettings['nestedRows'];\n @Input() noWordWrapClassName: Handsontable.GridSettings['noWordWrapClassName'];\n @Input() numericFormat: Handsontable.GridSettings['numericFormat'];\n @Input() observeDOMVisibility: Handsontable.GridSettings['observeDOMVisibility'];\n @Input() outsideClickDeselects: Handsontable.GridSettings['outsideClickDeselects'];\n @Input() persistentState: Handsontable.GridSettings['persistentState'];\n @Input() placeholder: Handsontable.GridSettings['placeholder'];\n @Input() placeholderCellClassName: Handsontable.GridSettings['placeholderCellClassName'];\n @Input() preventOverflow: Handsontable.GridSettings['preventOverflow'];\n @Input() preventWheel: Handsontable.GridSettings['preventWheel'];\n @Input() readOnly: Handsontable.GridSettings['readOnly'];\n @Input() readOnlyCellClassName: Handsontable.GridSettings['readOnlyCellClassName'];\n @Input() renderAllRows: Handsontable.GridSettings['renderAllRows'];\n @Input() renderer: Handsontable.GridSettings['renderer'];\n @Input() rowHeaders: Handsontable.GridSettings['rowHeaders'];\n @Input() rowHeaderWidth: Handsontable.GridSettings['rowHeaderWidth'];\n @Input() rowHeights: Handsontable.GridSettings['rowHeights'];\n @Input() search: Handsontable.GridSettings['search'];\n @Input() selectionMode: Handsontable.GridSettings['selectionMode'];\n @Input() selectOptions: Handsontable.GridSettings['selectOptions'];\n @Input() skipColumnOnPaste: Handsontable.GridSettings['skipColumnOnPaste'];\n @Input() skipRowOnPaste: any;\n @Input() sortByRelevance: Handsontable.GridSettings['sortByRelevance'];\n @Input() source: Handsontable.GridSettings['source'];\n @Input() startCols: Handsontable.GridSettings['startCols'];\n @Input() startRows: Handsontable.GridSettings['startRows'];\n @Input() stretchH: Handsontable.GridSettings['stretchH'];\n @Input() strict: Handsontable.GridSettings['strict'];\n @Input() tableClassName: Handsontable.GridSettings['tableClassName'];\n @Input() tabMoves: Handsontable.GridSettings['tabMoves'];\n @Input() title: Handsontable.GridSettings['title'];\n @Input() trimDropdown: Handsontable.GridSettings['trimDropdown'];\n @Input() trimRows: Handsontable.GridSettings['nestedRows'];\n @Input() trimWhitespace: Handsontable.GridSettings['trimWhitespace'];\n @Input() type: Handsontable.GridSettings['type'];\n @Input() uncheckedTemplate: Handsontable.GridSettings['uncheckedTemplate'];\n @Input() undo: Handsontable.GridSettings['undo'];\n @Input() validator: Handsontable.GridSettings['validator'];\n @Input() viewportColumnRenderingOffset: Handsontable.GridSettings['viewportColumnRenderingOffset'];\n @Input() viewportRowRenderingOffset: Handsontable.GridSettings['viewportRowRenderingOffset'];\n @Input() visibleRows: Handsontable.GridSettings['visibleRows'];\n @Input() width: Handsontable.GridSettings['width'];\n @Input() wordWrap: Handsontable.GridSettings['wordWrap'];\n\n // handsontable hooks\n @Input() afterAddChild: Handsontable.GridSettings['afterAddChild'];\n @Input() afterAutofill: Handsontable.GridSettings['afterAutofill'];\n @Input() afterBeginEditing: Handsontable.GridSettings['afterBeginEditing'];\n @Input() afterCellMetaReset: Handsontable.GridSettings['afterCellMetaReset'];\n @Input() afterChange: Handsontable.GridSettings['afterChange'];\n @Input() afterChangesObserved: Handsontable.GridSettings['afterChangesObserved'];\n @Input() afterColumnCollapse: Handsontable.GridSettings['afterColumnCollapse'];\n @Input() afterColumnExpand: Handsontable.GridSettings['afterColumnExpand'];\n @Input() afterColumnMove: Handsontable.GridSettings['afterColumnMove'];\n @Input() afterColumnResize: Handsontable.GridSettings['afterColumnResize'];\n @Input() afterColumnSort: Handsontable.GridSettings['afterColumnSort'];\n @Input() afterContextMenuDefaultOptions: Handsontable.GridSettings['afterContextMenuDefaultOptions'];\n @Input() afterContextMenuHide: Handsontable.GridSettings['afterContextMenuHide'];\n @Input() afterContextMenuShow: Handsontable.GridSettings['afterContextMenuShow'];\n @Input() afterCopy: Handsontable.GridSettings['afterCopy'];\n @Input() afterCopyLimit: Handsontable.GridSettings['afterCopyLimit'];\n @Input() afterCreateCol: Handsontable.GridSettings['afterCreateCol'];\n @Input() afterCreateRow: Handsontable.GridSettings['afterCreateRow'];\n @Input() afterCut: Handsontable.GridSettings['afterCut'];\n @Input() afterDeselect: Handsontable.GridSettings['afterDeselect'];\n @Input() afterDestroy: Handsontable.GridSettings['afterDestroy'];\n @Input() afterDetachChild: Handsontable.GridSettings['afterDetachChild'];\n @Input() afterDocumentKeyDown: Handsontable.GridSettings['afterDocumentKeyDown'];\n @Input() afterDrawSelection: Handsontable.GridSettings['afterDrawSelection'];\n @Input() afterDropdownMenuDefaultOptions: Handsontable.GridSettings['afterDropdownMenuDefaultOptions'];\n @Input() afterDropdownMenuHide: Handsontable.GridSettings['afterDropdownMenuHide'];\n @Input() afterDropdownMenuShow: Handsontable.GridSettings['afterDropdownMenuShow'];\n @Input() afterFilter: Handsontable.GridSettings['afterFilter'];\n @Input() afterGetCellMeta: Handsontable.GridSettings['afterGetCellMeta'];\n @Input() afterGetColHeader: Handsontable.GridSettings['afterGetColHeader'];\n @Input() afterGetColumnHeaderRenderers: Handsontable.GridSettings['afterGetColumnHeaderRenderers'];\n @Input() afterGetRowHeader: Handsontable.GridSettings['afterGetRowHeader'];\n @Input() afterGetRowHeaderRenderers: Handsontable.GridSettings['afterGetRowHeaderRenderers'];\n @Input() afterHideColumns: Handsontable.GridSettings['afterHideColumns'];\n @Input() afterHideRows: Handsontable.GridSettings['afterHideRows'];\n @Input() afterInit: Handsontable.GridSettings['afterInit'];\n @Input() afterLanguageChange: Handsontable.GridSettings['afterLanguageChange'];\n @Input() afterListen: Handsontable.GridSettings['afterListen'];\n @Input() afterLoadData: Handsontable.GridSettings['afterLoadData'];\n @Input() afterMergeCells: Handsontable.GridSettings['afterMergeCells'];\n @Input() afterModifyTransformEnd: Handsontable.GridSettings['afterModifyTransformEnd'];\n @Input() afterModifyTransformStart: Handsontable.GridSettings['afterModifyTransformStart'];\n @Input() afterMomentumScroll: Handsontable.GridSettings['afterMomentumScroll'];\n @Input() afterOnCellContextMenu: Handsontable.GridSettings['afterOnCellContextMenu'];\n @Input() afterOnCellCornerDblClick: Handsontable.GridSettings['afterOnCellCornerDblClick'];\n @Input() afterOnCellCornerMouseDown: Handsontable.GridSettings['afterOnCellCornerMouseDown'];\n @Input() afterOnCellMouseDown: Handsontable.GridSettings['afterOnCellMouseDown'];\n @Input() afterOnCellMouseOut: Handsontable.GridSettings['afterOnCellMouseOut'];\n @Input() afterOnCellMouseOver: Handsontable.GridSettings['afterOnCellMouseOver'];\n @Input() afterOnCellMouseUp: Handsontable.GridSettings['afterOnCellMouseUp'];\n @Input() afterPaste: Handsontable.GridSettings['afterPaste'];\n @Input() afterPluginsInitialized: Handsontable.GridSettings['afterPluginsInitialized'];\n @Input() afterRedo: Handsontable.GridSettings['afterRedo'];\n @Input() afterRedoStackChange: Handsontable.GridSettings['afterRedoStackChange'];\n @Input() afterRefreshDimensions: Handsontable.GridSettings['afterRefreshDimensions'];\n @Input() afterRemoveCellMeta: Handsontable.GridSettings['afterRemoveCellMeta'];\n @Input() afterRemoveCol: Handsontable.GridSettings['afterRemoveCol'];\n @Input() afterRemoveRow: Handsontable.GridSettings['afterRemoveRow'];\n @Input() afterRender: Handsontable.GridSettings['afterRender'];\n @Input() afterRenderer: Handsontable.GridSettings['afterRenderer'];\n @Input() afterRowMove: Handsontable.GridSettings['afterRowMove'];\n @Input() afterRowResize: Handsontable.GridSettings['afterRowResize'];\n @Input() afterScrollHorizontally: Handsontable.GridSettings['afterScrollHorizontally'];\n @Input() afterScrollVertically: Handsontable.GridSettings['afterScrollVertically'];\n @Input() afterSelection: Handsontable.GridSettings['afterSelection'];\n @Input() afterSelectionByProp: Handsontable.GridSettings['afterSelectionByProp'];\n @Input() afterSelectionEnd: Handsontable.GridSettings['afterSelectionEnd'];\n @Input() afterSelectionEndByProp: Handsontable.GridSettings['afterSelectionEndByProp'];\n @Input() afterSetCellMeta: Handsontable.GridSettings['afterSetCellMeta'];\n @Input() afterSetDataAtCell: Handsontable.GridSettings['afterSetDataAtCell'];\n @Input() afterSetDataAtRowProp: Handsontable.GridSettings['afterSetDataAtRowProp'];\n @Input() afterSetSourceDataAtCell: Handsontable.GridSettings['afterSetSourceDataAtCell'];\n @Input() afterTrimRow: Handsontable.GridSettings['afterTrimRow'];\n @Input() afterUndo: Handsontable.GridSettings['afterUndo'];\n @Input() afterUndoStackChange: Handsontable.GridSettings['afterUndoStackChange'];\n @Input() afterUnhideColumns: Handsontable.GridSettings['afterUnhideColumns'];\n @Input() afterUnhideRows: Handsontable.GridSettings['afterUnhideRows'];\n @Input() afterUnlisten: Handsontable.GridSettings['afterUnlisten'];\n @Input() afterUnmergeCells: Handsontable.GridSettings['afterUnmergeCells'];\n @Input() afterUntrimRow: Handsontable.GridSettings['afterUntrimRow'];\n @Input() afterUpdateSettings: Handsontable.GridSettings['afterUpdateSettings'];\n @Input() afterValidate: Handsontable.GridSettings['afterValidate'];\n @Input() afterViewportColumnCalculatorOverride: Handsontable.GridSettings['afterViewportColumnCalculatorOverride'];\n @Input() afterViewportRowCalculatorOverride: Handsontable.GridSettings['afterViewportRowCalculatorOverride'];\n @Input() beforeAddChild: Handsontable.GridSettings['beforeAddChild'];\n @Input() beforeAutofill: Handsontable.GridSettings['beforeAutofill'];\n @Input() beforeAutofillInsidePopulate: Handsontable.GridSettings['beforeAutofillInsidePopulate'];\n @Input() beforeCellAlignment: Handsontable.GridSettings['beforeCellAlignment'];\n @Input() beforeChange: Handsontable.GridSettings['beforeChange'];\n @Input() beforeChangeRender: Handsontable.GridSettings['beforeChangeRender'];\n @Input() beforeColumnCollapse: Handsontable.GridSettings['beforeColumnCollapse'];\n @Input() beforeColumnExpand: Handsontable.GridSettings['beforeColumnExpand'];\n @Input() beforeColumnMove: Handsontable.GridSettings['beforeColumnMove'];\n @Input() beforeColumnResize: Handsontable.GridSettings['beforeColumnResize'];\n @Input() beforeColumnSort: Handsontable.GridSettings['beforeColumnSort'];\n @Input() beforeContextMenuSetItems: Handsontable.GridSettings['beforeContextMenuSetItems'];\n @Input() beforeContextMenuShow: Handsontable.GridSettings['beforeContextMenuShow'];\n @Input() beforeCopy: Handsontable.GridSettings['beforeCopy'];\n @Input() beforeCreateCol: Handsontable.GridSettings['beforeCreateCol'];\n @Input() beforeCreateRow: Handsontable.GridSettings['beforeCreateRow'];\n @Input() beforeCut: Handsontable.GridSettings['beforeCut'];\n @Input() beforeDetachChild: Handsontable.GridSettings['beforeDetachChild'];\n @Input() beforeDrawBorders: Handsontable.GridSettings['beforeDrawBorders'];\n @Input() beforeDropdownMenuSetItems: Handsontable.GridSettings['beforeDropdownMenuSetItems'];\n @Input() beforeDropdownMenuShow: Handsontable.GridSettings['beforeDropdownMenuShow'];\n @Input() beforeFilter: Handsontable.GridSettings['beforeFilter'];\n @Input() beforeGetCellMeta: Handsontable.GridSettings['beforeGetCellMeta'];\n @Input() beforeHideColumns: Handsontable.GridSettings['beforeHideColumns'];\n @Input() beforeHideRows: Handsontable.GridSettings['beforeHideRows'];\n @Input() beforeInit: Handsontable.GridSettings['beforeInit'];\n @Input() beforeInitWalkontable: Handsontable.GridSettings['beforeInitWalkontable'];\n @Input() beforeKeyDown: Handsontable.GridSettings['beforeKeyDown'];\n @Input() beforeLanguageChange: Handsontable.GridSettings['beforeLanguageChange'];\n @Input() beforeLoadData: Handsontable.GridSettings['beforeLoadData'];\n @Input() beforeMergeCells: Handsontable.GridSettings['beforeMergeCells'];\n @Input() beforeOnCellContextMenu: Handsontable.GridSettings['beforeOnCellContextMenu'];\n @Input() beforeOnCellMouseDown: Handsontable.GridSettings['beforeOnCellMouseDown'];\n @Input() beforeOnCellMouseOut: Handsontable.GridSettings['beforeOnCellMouseOut'];\n @Input() beforeOnCellMouseOver: Handsontable.GridSettings['beforeOnCellMouseOver'];\n @Input() beforeOnCellMouseUp: Handsontable.GridSettings['beforeOnCellMouseUp'];\n @Input() beforePaste: Handsontable.GridSettings['beforePaste'];\n @Input() beforeRedo: Handsontable.GridSettings['beforeRedo'];\n @Input() beforeRedoStackChange: Handsontable.GridSettings['beforeRedoStackChange'];\n @Input() beforeRefreshDimensions: Handsontable.GridSettings['beforeRefreshDimensions'];\n @Input() beforeRemoveCellClassNames: Handsontable.GridSettings['beforeRemoveCellClassNames'];\n @Input() beforeRemoveCellMeta: Handsontable.GridSettings['beforeRemoveCellMeta'];\n @Input() beforeRemoveCol: Handsontable.GridSettings['beforeRemoveCol'];\n @Input() beforeRemoveRow: Handsontable.GridSettings['beforeRemoveRow'];\n @Input() beforeRender: Handsontable.GridSettings['beforeRender'];\n @Input() beforeRenderer: Handsontable.GridSettings['beforeRenderer'];\n @Input() beforeRowMove: Handsontable.GridSettings['beforeRowMove'];\n @Input() beforeRowResize: Handsontable.GridSettings['beforeRowResize'];\n @Input() beforeSetCellMeta: Handsontable.GridSettings['beforeSetCellMeta'];\n @Input() beforeSetRangeEnd: Handsontable.GridSettings['beforeSetRangeEnd'];\n @Input() beforeSetRangeStart: Handsontable.GridSettings['beforeSetRangeStart'];\n @Input() beforeSetRangeStartOnly: Handsontable.GridSettings['beforeSetRangeStartOnly'];\n @Input() beforeStretchingColumnWidth: Handsontable.GridSettings['beforeStretchingColumnWidth'];\n @Input() beforeTouchScroll: Handsontable.GridSettings['beforeTouchScroll'];\n @Input() beforeTrimRow: Handsontable.GridSettings['beforeTrimRow'];\n @Input() beforeUndo: Handsontable.GridSettings['beforeUndo'];\n @Input() beforeUndoStackChange: Handsontable.GridSettings['beforeUndoStackChange'];\n @Input() beforeUnhideColumns: Handsontable.GridSettings['beforeUnhideColumns'];\n @Input() beforeUnhideRows: Handsontable.GridSettings['beforeUnhideRows'];\n @Input() beforeUnmergeCells: Handsontable.GridSettings['beforeUnmergeCells'];\n @Input() beforeUntrimRow: Handsontable.GridSettings['beforeUntrimRow'];\n @Input() beforeValidate: Handsontable.GridSettings['beforeValidate'];\n @Input() beforeValueRender: Handsontable.GridSettings['beforeValueRender'];\n @Input() construct: Handsontable.GridSettings['construct'];\n @Input() init: Handsontable.GridSettings['init'];\n @Input() modifyAutoColumnSizeSeed: Handsontable.GridSettings['modifyAutoColumnSizeSeed'];\n @Input() modifyAutofillRange: Handsontable.GridSettings['modifyAutofillRange'];\n @Input() modifyColHeader: Handsontable.GridSettings['modifyColHeader'];\n @Input() modifyColumnHeaderHeight: Handsontable.GridSettings['modifyColumnHeaderHeight'];\n @Input() modifyColWidth: Handsontable.GridSettings['modifyColWidth'];\n @Input() modifyCopyableRange: Handsontable.GridSettings['modifyCopyableRange'];\n @Input() modifyData: Handsontable.GridSettings['modifyData'];\n @Input() modifyGetCellCoords: Handsontable.GridSettings['modifyGetCellCoords'];\n @Input() modifyRowData: Handsontable.GridSettings['modifyRowData'];\n @Input() modifyRowHeader: Handsontable.GridSettings['modifyRowHeader'];\n @Input() modifyRowHeaderWidth: Handsontable.GridSettings['modifyRowHeaderWidth'];\n @Input() modifyRowHeight: Handsontable.GridSettings['modifyRowHeight'];\n @Input() modifySourceData: Handsontable.GridSettings['modifySourceData'];\n @Input() modifyTransformEnd: Handsontable.GridSettings['modifyTransformEnd'];\n @Input() modifyTransformStart: Handsontable.GridSettings['modifyTransformStart'];\n @Input() persistentStateLoad: Handsontable.GridSettings['persistentStateLoad'];\n @Input() persistentStateReset: Handsontable.GridSettings['persistentStateReset'];\n @Input() persistentStateSave: Handsontable.GridSettings['persistentStateSave'];\n\n constructor(\n private _ngZone: NgZone,\n private _hotTableRegisterer: HotTableRegisterer,\n private _hotSettingsResolver: HotSettingsResolver,\n ) {}\n\n private get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n this._hotTableRegisterer.removeInstance(this.hotId);\n\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n }\n\n private set hotInstance(hotInstance) {\n this.__hotInstance = hotInstance;\n }\n\n ngAfterViewInit(): void {\n const options: Handsontable.GridSettings = this._hotSettingsResolver.mergeSettings(this);\n\n if (this.columnsComponents.length > 0) {\n const columns = [];\n\n this.columnsComponents.forEach((column) => {\n columns.push(this._hotSettingsResolver.mergeSettings(column));\n });\n\n options['columns'] = columns;\n }\n\n this._ngZone.runOutsideAngular(() => {\n this.hotInstance = new Handsontable.Core(this.container.nativeElement, options);\n\n if (this.hotId) {\n this._hotTableRegisterer.registerInstance(this.hotId, this.hotInstance);\n }\n // @ts-ignore\n this.hotInstance.init();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.hotInstance === null) {\n return;\n }\n\n const newOptions: Handsontable.GridSettings = this._hotSettingsResolver.prepareChanges(changes);\n\n this.updateHotTable(newOptions);\n }\n\n ngOnDestroy(): void {\n this._ngZone.runOutsideAngular(() => {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n });\n\n if (this.hotId) {\n this._hotTableRegisterer.removeInstance(this.hotId);\n }\n }\n\n updateHotTable(newSettings: Handsontable.GridSettings ): void {\n if (!this.hotInstance) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n this.hotInstance.updateSettings(newSettings, false);\n });\n }\n\n onAfterColumnsChange(): void {\n if (this.columnsComponents === void 0) {\n return;\n }\n\n if (this.columnsComponents.length > 0) {\n const columns: Handsontable.ColumnSettings[] = [];\n\n this.columnsComponents.forEach((column) => {\n columns.push(this._hotSettingsResolver.mergeSettings(column));\n });\n\n const newOptions = {\n columns: columns\n };\n\n this.updateHotTable(newOptions);\n }\n }\n\n onAfterColumnsNumberChange(): void {\n const columns: Handsontable.ColumnSettings[] = [];\n\n if (this.columnsComponents.length > 0) {\n this.columnsComponents.forEach((column) => {\n columns.push(this._hotSettingsResolver.mergeSettings(column));\n });\n }\n\n this.updateHotTable({ columns });\n }\n\n addColumn(column: HotColumnComponent): void {\n this.columnsComponents.push(column);\n this.onAfterColumnsNumberChange();\n }\n\n removeColumn(column: HotColumnComponent): void {\n const index: number = this.columnsComponents.indexOf(column);\n\n this.columnsComponents.splice(index, 1);\n this.onAfterColumnsNumberChange();\n }\n\n}\n","import {\n Component,\n OnInit,\n OnChanges,\n OnDestroy,\n Input,\n} from '@angular/core';\nimport { HotTableComponent } from './hot-table.component';\nimport Handsontable from 'handsontable';\n\n@Component({\n selector: 'hot-column',\n template: '',\n})\nexport class HotColumnComponent implements OnInit, OnChanges, OnDestroy {\n private firstRun = true;\n // handsontable column options\n @Input() allowEmpty: Handsontable.ColumnSettings['allowEmpty'];\n @Input() allowHtml: Handsontable.ColumnSettings['allowHtml'];\n @Input() allowInvalid: Handsontable.ColumnSettings['allowInvalid'];\n @Input() checkedTemplate: Handsontable.ColumnSettings['checkedTemplate'];\n @Input() className: Handsontable.ColumnSettings['className'];\n @Input() columnSorting: Handsontable.ColumnSettings['columnSorting'];\n @Input() colWidths: Handsontable.ColumnSettings['colWidths'];\n @Input() commentedCellClassName: Handsontable.ColumnSettings['commentedCellClassName'];\n @Input() copyable: Handsontable.ColumnSettings['copyable'];\n @Input() correctFormat: Handsontable.ColumnSettings['correctFormat'];\n @Input() data: Handsontable.ColumnSettings['data'];\n @Input() dateFormat: Handsontable.ColumnSettings['dateFormat'];\n @Input() defaultDate: Handsontable.ColumnSettings['defaultDate'];\n @Input() editor: Handsontable.ColumnSettings['editor'];\n @Input() filteringCaseSensitive: Handsontable.ColumnSettings['filteringCaseSensitive'];\n @Input() invalidCellClassName: Handsontable.ColumnSettings['invalidCellClassName'];\n @Input() label: Handsontable.ColumnSettings['label'];\n @Input() language: Handsontable.ColumnSettings['language'];\n @Input() noWordWrapClassName: Handsontable.ColumnSettings['noWordWrapClassName'];\n @Input() numericFormat: Handsontable.ColumnSettings['numericFormat'];\n @Input() placeholder: Handsontable.ColumnSettings['placeholder'];\n @Input() placeholderCellClassName: Handsontable.ColumnSettings['placeholderCellClassName'];\n @Input() readOnly: Handsontable.ColumnSettings['readOnly'];\n @Input() readOnlyCellClassName: Handsontable.ColumnSettings['readOnlyCellClassName'];\n @Input() renderer: Handsontable.ColumnSettings['renderer'];\n @Input() selectOptions: Handsontable.ColumnSettings['selectOptions'];\n @Input() skipColumnOnPaste: Handsontable.ColumnSettings['skipColumnOnPaste'];\n @Input() sortByRelevance: Handsontable.ColumnSettings['sortByRelevance'];\n @Input() source: Handsontable.ColumnSettings['source'];\n @Input() strict: Handsontable.ColumnSettings['strict'];\n @Input() title: Handsontable.ColumnSettings['title'];\n @Input() trimDropdown: Handsontable.ColumnSettings['trimDropdown'];\n @Input() type: Handsontable.ColumnSettings['type'];\n @Input() uncheckedTemplate: Handsontable.ColumnSettings['uncheckedTemplate'];\n @Input() validator: Handsontable.ColumnSettings['validator'];\n @Input() visibleRows: Handsontable.ColumnSettings['visibleRows'];\n @Input() width: Handsontable.ColumnSettings['width'];\n @Input() wordWrap: Handsontable.ColumnSettings['wordWrap'];\n\n constructor(private parentComponent: HotTableComponent) {}\n\n ngOnInit(): void {\n this.firstRun = false;\n this.parentComponent.addColumn(this);\n }\n\n ngOnChanges(): void {\n if (this.firstRun) {\n return;\n }\n\n this.parentComponent.onAfterColumnsChange();\n }\n\n ngOnDestroy(): void {\n this.parentComponent.removeColumn(this);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HotTableComponent } from './hot-table.component';\nimport { HotColumnComponent } from './hot-column.component';\nimport { HotTableRegisterer } from './hot-table-registerer.service';\n\n@NgModule({\n declarations: [\n HotTableComponent,\n HotColumnComponent,\n ],\n exports: [\n HotTableComponent,\n HotColumnComponent,\n ]\n})\nexport class HotTableModule {\n static version = '9.0.2';\n\n public static forRoot(): ModuleWithProviders<HotTableModule> {\n return {\n ngModule: HotTableModule,\n providers: [ HotTableRegisterer ],\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["ng://@handsontable/angular/lib/hot-table-registerer.service.ts","ng://@handsontable/angular/lib/hot-settings-resolver.service.ts","ng://@handsontable/angular/lib/hot-table.component.ts","ng://@handsontable/angular/lib/hot-column.component.ts","ng://@handsontable/angular/lib/hot-table.module.ts"],"names":["instances","Map","HOT_DESTROYED_WARNING","HotTableRegisterer","prototype","getInstance","id","hotInstance","get","isDestroyed","console","warn","registerInstance","instance","set","removeInstance","delete","Injectable","AVAILABLE_OPTIONS","Object","keys","Handsontable","DefaultSettings","AVAILABLE_HOOKS","hooks","getRegistered","HotSettingsResolver","mergeSettings","component","isSettingsObject","mergedSettings","concat","forEach","key","option","isHook","indexOf","_this","this","args","_i","arguments","length","_ngZone","run","apply","prepareChanges","changes","result","param","hasOwnProperty","currentValue","HotTableComponent","_hotTableRegisterer","_hotSettingsResolver","__hotInstance","columnsComponents","hotId","defineProperty","ngAfterViewInit","options","columns_1","column","push","runOutsideAngular","Core","container","nativeElement","init","ngOnChanges","newOptions","updateHotTable","ngOnDestroy","destroy","newSettings","updateSettings","onAfterColumnsChange","columns_2","columns","onAfterColumnsNumberChange","addColumn","removeColumn","index","splice","Component","selector","template","encapsulation","ViewEncapsulation","None","providers","NgZone","ViewChild","static","Input","HotColumnComponent","parentComponent","firstRun","ngOnInit","HotTableModule","forRoot","ngModule","version","NgModule","declarations","exports"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport Handsontable from 'handsontable/base';\n\nconst instances = new Map<string, Handsontable>();\n\nexport const HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' +\n ' used properly.';\n\n@Injectable()\nexport class HotTableRegisterer {\n public getInstance(id: string): Handsontable {\n const hotInstance = instances.get(id);\n\n if (hotInstance.isDestroyed) {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n\n return hotInstance;\n }\n\n public registerInstance(id: string, instance: Handsontable): Map<string, Handsontable> {\n return instances.set(id, instance);\n }\n\n public removeInstance(id: string): boolean {\n return instances.delete(id);\n }\n}\n","import { Injectable, SimpleChanges } from '@angular/core';\nimport Handsontable from 'handsontable/base';\n\nconst AVAILABLE_OPTIONS: string[] = Object.keys(Handsontable.DefaultSettings);\nconst AVAILABLE_HOOKS: string[] = Handsontable.hooks.getRegistered();\n\n@Injectable()\nexport class HotSettingsResolver {\n mergeSettings(component): object {\n const isSettingsObject = typeof component['settings'] === 'object';\n const mergedSettings: Handsontable.GridSettings = isSettingsObject ? component['settings'] : {};\n const options = AVAILABLE_HOOKS.concat(AVAILABLE_OPTIONS);\n\n options.forEach(key => {\n const isHook = AVAILABLE_HOOKS.indexOf(key) > -1;\n let option;\n\n if (isSettingsObject && isHook) {\n option = component['settings'][key];\n }\n\n if (component[key] !== void 0) {\n option = component[key];\n }\n\n if (option === void 0) {\n return;\n\n } else if (typeof option === 'function' && isHook) {\n mergedSettings[key] = function(...args) {\n return component._ngZone.run(() => {\n return option.apply(this, args);\n });\n };\n\n } else {\n mergedSettings[key] = option;\n }\n });\n\n return mergedSettings;\n }\n\n prepareChanges(changes: SimpleChanges): Handsontable.GridSettings {\n const result: Handsontable.GridSettings = {};\n const parameters: string[] = Object.keys(changes);\n\n parameters.forEach((param) => {\n if (changes.hasOwnProperty(param)) {\n result[param] = changes[param].currentValue;\n }\n });\n\n return result;\n }\n}\n","import {\n AfterViewInit,\n Component,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport Handsontable from 'handsontable/base';\nimport {\n HotTableRegisterer,\n HOT_DESTROYED_WARNING\n} from './hot-table-registerer.service';\nimport { HotSettingsResolver } from './hot-settings-resolver.service';\nimport { HotColumnComponent } from './hot-column.component';\n\n@Component({\n selector: 'hot-table',\n template: '<div #container [id]=\"hotId\"></div>',\n encapsulation: ViewEncapsulation.None,\n providers: [ HotTableRegisterer, HotSettingsResolver ],\n})\nexport class HotTableComponent implements AfterViewInit, OnChanges, OnDestroy {\n @ViewChild('container', { static: false }) public container;\n\n private __hotInstance: Handsontable = null;\n private columnsComponents: HotColumnComponent[] = [];\n // component inputs\n @Input() settings: Handsontable.GridSettings;\n @Input() hotId = '';\n // handsontable options\n @Input() activeHeaderClassName: Handsontable.GridSettings['activeHeaderClassName'];\n @Input() allowEmpty: Handsontable.GridSettings['allowEmpty'];\n @Input() allowHtml: Handsontable.GridSettings['allowHtml'];\n @Input() allowInsertColumn: Handsontable.GridSettings['allowInsertColumn'];\n @Input() allowInsertRow: Handsontable.GridSettings['allowInsertRow'];\n @Input() allowInvalid: Handsontable.GridSettings['allowInvalid'];\n @Input() allowRemoveColumn: Handsontable.GridSettings['allowRemoveColumn'];\n @Input() allowRemoveRow: Handsontable.GridSettings['allowRemoveRow'];\n @Input() autoColumnSize: Handsontable.GridSettings['autoColumnSize'];\n @Input() autoRowSize: Handsontable.GridSettings['autoRowSize'];\n @Input() autoWrapCol: Handsontable.GridSettings['autoWrapCol'];\n @Input() autoWrapRow: Handsontable.GridSettings['autoWrapRow'];\n @Input() bindRowsWithHeaders: Handsontable.GridSettings['bindRowsWithHeaders'];\n @Input() cell: Handsontable.GridSettings['cell'];\n @Input() cells: Handsontable.GridSettings['cells'];\n @Input() checkedTemplate: Handsontable.GridSettings['checkedTemplate'];\n @Input() className: Handsontable.GridSettings['className'];\n @Input() colHeaders: Handsontable.GridSettings['colHeaders'];\n @Input() collapsibleColumns: Handsontable.GridSettings['collapsibleColumns'];\n @Input() columnHeaderHeight: Handsontable.GridSettings['columnHeaderHeight'];\n @Input() columns: Handsontable.GridSettings['columns'];\n @Input() columnSorting: Handsontable.GridSettings['columnSorting'];\n @Input() columnSummary: Handsontable.GridSettings['columnSummary'];\n @Input() colWidths: Handsontable.GridSettings['colWidths'];\n @Input() commentedCellClassName: Handsontable.GridSettings['commentedCellClassName'];\n @Input() comments: Handsontable.GridSettings['comments'];\n @Input() contextMenu: Handsontable.GridSettings['contextMenu'];\n @Input() copyable: Handsontable.GridSettings['copyable'];\n @Input() copyPaste: Handsontable.GridSettings['copyPaste'];\n @Input() correctFormat: Handsontable.GridSettings['correctFormat'];\n @Input() currentColClassName: Handsontable.GridSettings['currentColClassName'];\n @Input() currentHeaderClassName: Handsontable.GridSettings['currentHeaderClassName'];\n @Input() currentRowClassName: Handsontable.GridSettings['currentRowClassName'];\n @Input() customBorders: Handsontable.GridSettings['customBorders'];\n @Input() data: Handsontable.GridSettings['data'];\n @Input() dataSchema: Handsontable.GridSettings['dataSchema'];\n @Input() dateFormat: Handsontable.GridSettings['dateFormat'];\n @Input() defaultDate: Handsontable.GridSettings['defaultDate'];\n @Input() disableVisualSelection: Handsontable.GridSettings['disableVisualSelection'];\n @Input() dragToScroll: Handsontable.GridSettings['dragToScroll'];\n @Input() dropdownMenu: Handsontable.GridSettings['dropdownMenu'];\n @Input() editor: Handsontable.GridSettings['editor'];\n @Input() enterBeginsEditing: Handsontable.GridSettings['enterBeginsEditing'];\n @Input() enterMoves: Handsontable.GridSettings['enterMoves'];\n @Input() fillHandle: Handsontable.GridSettings['fillHandle'];\n @Input() filter: Handsontable.GridSettings['filter'];\n @Input() filteringCaseSensitive: Handsontable.GridSettings['filteringCaseSensitive'];\n @Input() filters: Handsontable.GridSettings['filters'];\n @Input() fixedColumnsLeft: Handsontable.GridSettings['fixedColumnsLeft'];\n @Input() fixedRowsBottom: Handsontable.GridSettings['fixedRowsBottom'];\n @Input() fixedRowsTop: Handsontable.GridSettings['fixedRowsTop'];\n @Input() formulas: Handsontable.GridSettings['formulas'];\n @Input() fragmentSelection: Handsontable.GridSettings['fragmentSelection'];\n @Input() height: Handsontable.GridSettings['height'];\n @Input() hiddenColumns: Handsontable.GridSettings['hiddenColumns'];\n @Input() hiddenRows: Handsontable.GridSettings['hiddenRows'];\n @Input() invalidCellClassName: Handsontable.GridSettings['invalidCellClassName'];\n @Input() label: Handsontable.GridSettings['label'];\n @Input() language: Handsontable.GridSettings['language'];\n @Input() licenseKey: Handsontable.GridSettings['licenseKey'];\n @Input() manualColumnFreeze: Handsontable.GridSettings['manualColumnFreeze'];\n @Input() manualColumnMove: Handsontable.GridSettings['manualColumnMove'];\n @Input() manualColumnResize: Handsontable.GridSettings['manualColumnResize'];\n @Input() manualRowMove: Handsontable.GridSettings['manualRowMove'];\n @Input() manualRowResize: Handsontable.GridSettings['manualRowResize'];\n @Input() maxCols: Handsontable.GridSettings['maxCols'];\n @Input() maxRows: Handsontable.GridSettings['maxRows'];\n @Input() mergeCells: Handsontable.GridSettings['mergeCells'];\n @Input() minCols: Handsontable.GridSettings['minCols'];\n @Input() minRows: Handsontable.GridSettings['minRows'];\n @Input() minSpareCols: Handsontable.GridSettings['minSpareCols'];\n @Input() minSpareRows: Handsontable.GridSettings['minSpareRows'];\n @Input() multiColumnSorting: Handsontable.GridSettings['multiColumnSorting'];\n @Input() nestedHeaders: Handsontable.GridSettings['nestedHeaders'];\n @Input() nestedRows: Handsontable.GridSettings['nestedRows'];\n @Input() noWordWrapClassName: Handsontable.GridSettings['noWordWrapClassName'];\n @Input() numericFormat: Handsontable.GridSettings['numericFormat'];\n @Input() observeDOMVisibility: Handsontable.GridSettings['observeDOMVisibility'];\n @Input() outsideClickDeselects: Handsontable.GridSettings['outsideClickDeselects'];\n @Input() persistentState: Handsontable.GridSettings['persistentState'];\n @Input() placeholder: Handsontable.GridSettings['placeholder'];\n @Input() placeholderCellClassName: Handsontable.GridSettings['placeholderCellClassName'];\n @Input() preventOverflow: Handsontable.GridSettings['preventOverflow'];\n @Input() preventWheel: Handsontable.GridSettings['preventWheel'];\n @Input() readOnly: Handsontable.GridSettings['readOnly'];\n @Input() readOnlyCellClassName: Handsontable.GridSettings['readOnlyCellClassName'];\n @Input() renderAllRows: Handsontable.GridSettings['renderAllRows'];\n @Input() renderer: Handsontable.GridSettings['renderer'];\n @Input() rowHeaders: Handsontable.GridSettings['rowHeaders'];\n @Input() rowHeaderWidth: Handsontable.GridSettings['rowHeaderWidth'];\n @Input() rowHeights: Handsontable.GridSettings['rowHeights'];\n @Input() search: Handsontable.GridSettings['search'];\n @Input() selectionMode: Handsontable.GridSettings['selectionMode'];\n @Input() selectOptions: Handsontable.GridSettings['selectOptions'];\n @Input() skipColumnOnPaste: Handsontable.GridSettings['skipColumnOnPaste'];\n @Input() skipRowOnPaste: any;\n @Input() sortByRelevance: Handsontable.GridSettings['sortByRelevance'];\n @Input() source: Handsontable.GridSettings['source'];\n @Input() startCols: Handsontable.GridSettings['startCols'];\n @Input() startRows: Handsontable.GridSettings['startRows'];\n @Input() stretchH: Handsontable.GridSettings['stretchH'];\n @Input() strict: Handsontable.GridSettings['strict'];\n @Input() tableClassName: Handsontable.GridSettings['tableClassName'];\n @Input() tabMoves: Handsontable.GridSettings['tabMoves'];\n @Input() title: Handsontable.GridSettings['title'];\n @Input() trimDropdown: Handsontable.GridSettings['trimDropdown'];\n @Input() trimRows: Handsontable.GridSettings['nestedRows'];\n @Input() trimWhitespace: Handsontable.GridSettings['trimWhitespace'];\n @Input() type: Handsontable.GridSettings['type'];\n @Input() uncheckedTemplate: Handsontable.GridSettings['uncheckedTemplate'];\n @Input() undo: Handsontable.GridSettings['undo'];\n @Input() validator: Handsontable.GridSettings['validator'];\n @Input() viewportColumnRenderingOffset: Handsontable.GridSettings['viewportColumnRenderingOffset'];\n @Input() viewportRowRenderingOffset: Handsontable.GridSettings['viewportRowRenderingOffset'];\n @Input() visibleRows: Handsontable.GridSettings['visibleRows'];\n @Input() width: Handsontable.GridSettings['width'];\n @Input() wordWrap: Handsontable.GridSettings['wordWrap'];\n\n // handsontable hooks\n @Input() afterAddChild: Handsontable.GridSettings['afterAddChild'];\n @Input() afterAutofill: Handsontable.GridSettings['afterAutofill'];\n @Input() afterBeginEditing: Handsontable.GridSettings['afterBeginEditing'];\n @Input() afterCellMetaReset: Handsontable.GridSettings['afterCellMetaReset'];\n @Input() afterChange: Handsontable.GridSettings['afterChange'];\n @Input() afterChangesObserved: Handsontable.GridSettings['afterChangesObserved'];\n @Input() afterColumnCollapse: Handsontable.GridSettings['afterColumnCollapse'];\n @Input() afterColumnExpand: Handsontable.GridSettings['afterColumnExpand'];\n @Input() afterColumnMove: Handsontable.GridSettings['afterColumnMove'];\n @Input() afterColumnResize: Handsontable.GridSettings['afterColumnResize'];\n @Input() afterColumnSort: Handsontable.GridSettings['afterColumnSort'];\n @Input() afterContextMenuDefaultOptions: Handsontable.GridSettings['afterContextMenuDefaultOptions'];\n @Input() afterContextMenuHide: Handsontable.GridSettings['afterContextMenuHide'];\n @Input() afterContextMenuShow: Handsontable.GridSettings['afterContextMenuShow'];\n @Input() afterCopy: Handsontable.GridSettings['afterCopy'];\n @Input() afterCopyLimit: Handsontable.GridSettings['afterCopyLimit'];\n @Input() afterCreateCol: Handsontable.GridSettings['afterCreateCol'];\n @Input() afterCreateRow: Handsontable.GridSettings['afterCreateRow'];\n @Input() afterCut: Handsontable.GridSettings['afterCut'];\n @Input() afterDeselect: Handsontable.GridSettings['afterDeselect'];\n @Input() afterDestroy: Handsontable.GridSettings['afterDestroy'];\n @Input() afterDetachChild: Handsontable.GridSettings['afterDetachChild'];\n @Input() afterDocumentKeyDown: Handsontable.GridSettings['afterDocumentKeyDown'];\n @Input() afterDrawSelection: Handsontable.GridSettings['afterDrawSelection'];\n @Input() afterDropdownMenuDefaultOptions: Handsontable.GridSettings['afterDropdownMenuDefaultOptions'];\n @Input() afterDropdownMenuHide: Handsontable.GridSettings['afterDropdownMenuHide'];\n @Input() afterDropdownMenuShow: Handsontable.GridSettings['afterDropdownMenuShow'];\n @Input() afterFilter: Handsontable.GridSettings['afterFilter'];\n @Input() afterGetCellMeta: Handsontable.GridSettings['afterGetCellMeta'];\n @Input() afterGetColHeader: Handsontable.GridSettings['afterGetColHeader'];\n @Input() afterGetColumnHeaderRenderers: Handsontable.GridSettings['afterGetColumnHeaderRenderers'];\n @Input() afterGetRowHeader: Handsontable.GridSettings['afterGetRowHeader'];\n @Input() afterGetRowHeaderRenderers: Handsontable.GridSettings['afterGetRowHeaderRenderers'];\n @Input() afterHideColumns: Handsontable.GridSettings['afterHideColumns'];\n @Input() afterHideRows: Handsontable.GridSettings['afterHideRows'];\n @Input() afterInit: Handsontable.GridSettings['afterInit'];\n @Input() afterLanguageChange: Handsontable.GridSettings['afterLanguageChange'];\n @Input() afterListen: Handsontable.GridSettings['afterListen'];\n @Input() afterLoadData: Handsontable.GridSettings['afterLoadData'];\n @Input() afterMergeCells: Handsontable.GridSettings['afterMergeCells'];\n @Input() afterModifyTransformEnd: Handsontable.GridSettings['afterModifyTransformEnd'];\n @Input() afterModifyTransformStart: Handsontable.GridSettings['afterModifyTransformStart'];\n @Input() afterMomentumScroll: Handsontable.GridSettings['afterMomentumScroll'];\n @Input() afterOnCellContextMenu: Handsontable.GridSettings['afterOnCellContextMenu'];\n @Input() afterOnCellCornerDblClick: Handsontable.GridSettings['afterOnCellCornerDblClick'];\n @Input() afterOnCellCornerMouseDown: Handsontable.GridSettings['afterOnCellCornerMouseDown'];\n @Input() afterOnCellMouseDown: Handsontable.GridSettings['afterOnCellMouseDown'];\n @Input() afterOnCellMouseOut: Handsontable.GridSettings['afterOnCellMouseOut'];\n @Input() afterOnCellMouseOver: Handsontable.GridSettings['afterOnCellMouseOver'];\n @Input() afterOnCellMouseUp: Handsontable.GridSettings['afterOnCellMouseUp'];\n @Input() afterPaste: Handsontable.GridSettings['afterPaste'];\n @Input() afterPluginsInitialized: Handsontable.GridSettings['afterPluginsInitialized'];\n @Input() afterRedo: Handsontable.GridSettings['afterRedo'];\n @Input() afterRedoStackChange: Handsontable.GridSettings['afterRedoStackChange'];\n @Input() afterRefreshDimensions: Handsontable.GridSettings['afterRefreshDimensions'];\n @Input() afterRemoveCellMeta: Handsontable.GridSettings['afterRemoveCellMeta'];\n @Input() afterRemoveCol: Handsontable.GridSettings['afterRemoveCol'];\n @Input() afterRemoveRow: Handsontable.GridSettings['afterRemoveRow'];\n @Input() afterRender: Handsontable.GridSettings['afterRender'];\n @Input() afterRenderer: Handsontable.GridSettings['afterRenderer'];\n @Input() afterRowMove: Handsontable.GridSettings['afterRowMove'];\n @Input() afterRowResize: Handsontable.GridSettings['afterRowResize'];\n @Input() afterScrollHorizontally: Handsontable.GridSettings['afterScrollHorizontally'];\n @Input() afterScrollVertically: Handsontable.GridSettings['afterScrollVertically'];\n @Input() afterSelection: Handsontable.GridSettings['afterSelection'];\n @Input() afterSelectionByProp: Handsontable.GridSettings['afterSelectionByProp'];\n @Input() afterSelectionEnd: Handsontable.GridSettings['afterSelectionEnd'];\n @Input() afterSelectionEndByProp: Handsontable.GridSettings['afterSelectionEndByProp'];\n @Input() afterSetCellMeta: Handsontable.GridSettings['afterSetCellMeta'];\n @Input() afterSetDataAtCell: Handsontable.GridSettings['afterSetDataAtCell'];\n @Input() afterSetDataAtRowProp: Handsontable.GridSettings['afterSetDataAtRowProp'];\n @Input() afterSetSourceDataAtCell: Handsontable.GridSettings['afterSetSourceDataAtCell'];\n @Input() afterTrimRow: Handsontable.GridSettings['afterTrimRow'];\n @Input() afterUndo: Handsontable.GridSettings['afterUndo'];\n @Input() afterUndoStackChange: Handsontable.GridSettings['afterUndoStackChange'];\n @Input() afterUnhideColumns: Handsontable.GridSettings['afterUnhideColumns'];\n @Input() afterUnhideRows: Handsontable.GridSettings['afterUnhideRows'];\n @Input() afterUnlisten: Handsontable.GridSettings['afterUnlisten'];\n @Input() afterUnmergeCells: Handsontable.GridSettings['afterUnmergeCells'];\n @Input() afterUntrimRow: Handsontable.GridSettings['afterUntrimRow'];\n @Input() afterUpdateSettings: Handsontable.GridSettings['afterUpdateSettings'];\n @Input() afterValidate: Handsontable.GridSettings['afterValidate'];\n @Input() afterViewportColumnCalculatorOverride: Handsontable.GridSettings['afterViewportColumnCalculatorOverride'];\n @Input() afterViewportRowCalculatorOverride: Handsontable.GridSettings['afterViewportRowCalculatorOverride'];\n @Input() afterViewRender: Handsontable.GridSettings['afterViewRender'];\n @Input() beforeAddChild: Handsontable.GridSettings['beforeAddChild'];\n @Input() beforeAutofill: Handsontable.GridSettings['beforeAutofill'];\n @Input() beforeAutofillInsidePopulate: Handsontable.GridSettings['beforeAutofillInsidePopulate'];\n @Input() beforeCellAlignment: Handsontable.GridSettings['beforeCellAlignment'];\n @Input() beforeChange: Handsontable.GridSettings['beforeChange'];\n @Input() beforeChangeRender: Handsontable.GridSettings['beforeChangeRender'];\n @Input() beforeColumnCollapse: Handsontable.GridSettings['beforeColumnCollapse'];\n @Input() beforeColumnExpand: Handsontable.GridSettings['beforeColumnExpand'];\n @Input() beforeColumnMove: Handsontable.GridSettings['beforeColumnMove'];\n @Input() beforeColumnResize: Handsontable.GridSettings['beforeColumnResize'];\n @Input() beforeColumnSort: Handsontable.GridSettings['beforeColumnSort'];\n @Input() beforeContextMenuSetItems: Handsontable.GridSettings['beforeContextMenuSetItems'];\n @Input() beforeContextMenuShow: Handsontable.GridSettings['beforeContextMenuShow'];\n @Input() beforeCopy: Handsontable.GridSettings['beforeCopy'];\n @Input() beforeCreateCol: Handsontable.GridSettings['beforeCreateCol'];\n @Input() beforeCreateRow: Handsontable.GridSettings['beforeCreateRow'];\n @Input() beforeCut: Handsontable.GridSettings['beforeCut'];\n @Input() beforeDetachChild: Handsontable.GridSettings['beforeDetachChild'];\n @Input() beforeDrawBorders: Handsontable.GridSettings['beforeDrawBorders'];\n @Input() beforeDropdownMenuSetItems: Handsontable.GridSettings['beforeDropdownMenuSetItems'];\n @Input() beforeDropdownMenuShow: Handsontable.GridSettings['beforeDropdownMenuShow'];\n @Input() beforeFilter: Handsontable.GridSettings['beforeFilter'];\n @Input() beforeGetCellMeta: Handsontable.GridSettings['beforeGetCellMeta'];\n @Input() beforeHideColumns: Handsontable.GridSettings['beforeHideColumns'];\n @Input() beforeHideRows: Handsontable.GridSettings['beforeHideRows'];\n @Input() beforeInit: Handsontable.GridSettings['beforeInit'];\n @Input() beforeInitWalkontable: Handsontable.GridSettings['beforeInitWalkontable'];\n @Input() beforeKeyDown: Handsontable.GridSettings['beforeKeyDown'];\n @Input() beforeLanguageChange: Handsontable.GridSettings['beforeLanguageChange'];\n @Input() beforeLoadData: Handsontable.GridSettings['beforeLoadData'];\n @Input() beforeMergeCells: Handsontable.GridSettings['beforeMergeCells'];\n @Input() beforeOnCellContextMenu: Handsontable.GridSettings['beforeOnCellContextMenu'];\n @Input() beforeOnCellMouseDown: Handsontable.GridSettings['beforeOnCellMouseDown'];\n @Input() beforeOnCellMouseOut: Handsontable.GridSettings['beforeOnCellMouseOut'];\n @Input() beforeOnCellMouseOver: Handsontable.GridSettings['beforeOnCellMouseOver'];\n @Input() beforeOnCellMouseUp: Handsontable.GridSettings['beforeOnCellMouseUp'];\n @Input() beforePaste: Handsontable.GridSettings['beforePaste'];\n @Input() beforeRedo: Handsontable.GridSettings['beforeRedo'];\n @Input() beforeRedoStackChange: Handsontable.GridSettings['beforeRedoStackChange'];\n @Input() beforeRefreshDimensions: Handsontable.GridSettings['beforeRefreshDimensions'];\n @Input() beforeRemoveCellClassNames: Handsontable.GridSettings['beforeRemoveCellClassNames'];\n @Input() beforeRemoveCellMeta: Handsontable.GridSettings['beforeRemoveCellMeta'];\n @Input() beforeRemoveCol: Handsontable.GridSettings['beforeRemoveCol'];\n @Input() beforeRemoveRow: Handsontable.GridSettings['beforeRemoveRow'];\n @Input() beforeRender: Handsontable.GridSettings['beforeRender'];\n @Input() beforeRenderer: Handsontable.GridSettings['beforeRenderer'];\n @Input() beforeRowMove: Handsontable.GridSettings['beforeRowMove'];\n @Input() beforeRowResize: Handsontable.GridSettings['beforeRowResize'];\n @Input() beforeSetCellMeta: Handsontable.GridSettings['beforeSetCellMeta'];\n @Input() beforeSetRangeEnd: Handsontable.GridSettings['beforeSetRangeEnd'];\n @Input() beforeSetRangeStart: Handsontable.GridSettings['beforeSetRangeStart'];\n @Input() beforeSetRangeStartOnly: Handsontable.GridSettings['beforeSetRangeStartOnly'];\n @Input() beforeStretchingColumnWidth: Handsontable.GridSettings['beforeStretchingColumnWidth'];\n @Input() beforeTouchScroll: Handsontable.GridSettings['beforeTouchScroll'];\n @Input() beforeTrimRow: Handsontable.GridSettings['beforeTrimRow'];\n @Input() beforeUndo: Handsontable.GridSettings['beforeUndo'];\n @Input() beforeUndoStackChange: Handsontable.GridSettings['beforeUndoStackChange'];\n @Input() beforeUnhideColumns: Handsontable.GridSettings['beforeUnhideColumns'];\n @Input() beforeUnhideRows: Handsontable.GridSettings['beforeUnhideRows'];\n @Input() beforeUnmergeCells: Handsontable.GridSettings['beforeUnmergeCells'];\n @Input() beforeUntrimRow: Handsontable.GridSettings['beforeUntrimRow'];\n @Input() beforeValidate: Handsontable.GridSettings['beforeValidate'];\n @Input() beforeValueRender: Handsontable.GridSettings['beforeValueRender'];\n @Input() beforeViewRender: Handsontable.GridSettings['beforeViewRender'];\n @Input() construct: Handsontable.GridSettings['construct'];\n @Input() init: Handsontable.GridSettings['init'];\n @Input() modifyAutoColumnSizeSeed: Handsontable.GridSettings['modifyAutoColumnSizeSeed'];\n @Input() modifyAutofillRange: Handsontable.GridSettings['modifyAutofillRange'];\n @Input() modifyColHeader: Handsontable.GridSettings['modifyColHeader'];\n @Input() modifyColumnHeaderHeight: Handsontable.GridSettings['modifyColumnHeaderHeight'];\n @Input() modifyColWidth: Handsontable.GridSettings['modifyColWidth'];\n @Input() modifyCopyableRange: Handsontable.GridSettings['modifyCopyableRange'];\n @Input() modifyData: Handsontable.GridSettings['modifyData'];\n @Input() modifyGetCellCoords: Handsontable.GridSettings['modifyGetCellCoords'];\n @Input() modifyRowData: Handsontable.GridSettings['modifyRowData'];\n @Input() modifyRowHeader: Handsontable.GridSettings['modifyRowHeader'];\n @Input() modifyRowHeaderWidth: Handsontable.GridSettings['modifyRowHeaderWidth'];\n @Input() modifyRowHeight: Handsontable.GridSettings['modifyRowHeight'];\n @Input() modifySourceData: Handsontable.GridSettings['modifySourceData'];\n @Input() modifyTransformEnd: Handsontable.GridSettings['modifyTransformEnd'];\n @Input() modifyTransformStart: Handsontable.GridSettings['modifyTransformStart'];\n @Input() persistentStateLoad: Handsontable.GridSettings['persistentStateLoad'];\n @Input() persistentStateReset: Handsontable.GridSettings['persistentStateReset'];\n @Input() persistentStateSave: Handsontable.GridSettings['persistentStateSave'];\n\n constructor(\n private _ngZone: NgZone,\n private _hotTableRegisterer: HotTableRegisterer,\n private _hotSettingsResolver: HotSettingsResolver,\n ) {}\n\n private get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n this._hotTableRegisterer.removeInstance(this.hotId);\n\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n }\n\n private set hotInstance(hotInstance) {\n this.__hotInstance = hotInstance;\n }\n\n ngAfterViewInit(): void {\n const options: Handsontable.GridSettings = this._hotSettingsResolver.mergeSettings(this);\n\n if (this.columnsComponents.length > 0) {\n const columns = [];\n\n this.columnsComponents.forEach((column) => {\n columns.push(this._hotSettingsResolver.mergeSettings(column));\n });\n\n options['columns'] = columns;\n }\n\n this._ngZone.runOutsideAngular(() => {\n this.hotInstance = new Handsontable.Core(this.container.nativeElement, options);\n\n if (this.hotId) {\n this._hotTableRegisterer.registerInstance(this.hotId, this.hotInstance);\n }\n // @ts-ignore\n this.hotInstance.init();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.hotInstance === null) {\n return;\n }\n\n const newOptions: Handsontable.GridSettings = this._hotSettingsResolver.prepareChanges(changes);\n\n this.updateHotTable(newOptions);\n }\n\n ngOnDestroy(): void {\n this._ngZone.runOutsideAngular(() => {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n });\n\n if (this.hotId) {\n this._hotTableRegisterer.removeInstance(this.hotId);\n }\n }\n\n updateHotTable(newSettings: Handsontable.GridSettings ): void {\n if (!this.hotInstance) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n this.hotInstance.updateSettings(newSettings, false);\n });\n }\n\n onAfterColumnsChange(): void {\n if (this.columnsComponents === void 0) {\n return;\n }\n\n if (this.columnsComponents.length > 0) {\n const columns: Handsontable.ColumnSettings[] = [];\n\n this.columnsComponents.forEach((column) => {\n columns.push(this._hotSettingsResolver.mergeSettings(column));\n });\n\n const newOptions = {\n columns: columns\n };\n\n this.updateHotTable(newOptions);\n }\n }\n\n onAfterColumnsNumberChange(): void {\n const columns: Handsontable.ColumnSettings[] = [];\n\n if (this.columnsComponents.length > 0) {\n this.columnsComponents.forEach((column) => {\n columns.push(this._hotSettingsResolver.mergeSettings(column));\n });\n }\n\n this.updateHotTable({ columns });\n }\n\n addColumn(column: HotColumnComponent): void {\n this.columnsComponents.push(column);\n this.onAfterColumnsNumberChange();\n }\n\n removeColumn(column: HotColumnComponent): void {\n const index: number = this.columnsComponents.indexOf(column);\n\n this.columnsComponents.splice(index, 1);\n this.onAfterColumnsNumberChange();\n }\n\n}\n","import {\n Component,\n OnInit,\n OnChanges,\n OnDestroy,\n Input,\n} from '@angular/core';\nimport { HotTableComponent } from './hot-table.component';\nimport Handsontable from 'handsontable/base';\n\n@Component({\n selector: 'hot-column',\n template: '',\n})\nexport class HotColumnComponent implements OnInit, OnChanges, OnDestroy {\n private firstRun = true;\n // handsontable column options\n @Input() allowEmpty: Handsontable.ColumnSettings['allowEmpty'];\n @Input() allowHtml: Handsontable.ColumnSettings['allowHtml'];\n @Input() allowInvalid: Handsontable.ColumnSettings['allowInvalid'];\n @Input() checkedTemplate: Handsontable.ColumnSettings['checkedTemplate'];\n @Input() className: Handsontable.ColumnSettings['className'];\n @Input() columnSorting: Handsontable.ColumnSettings['columnSorting'];\n @Input() colWidths: Handsontable.ColumnSettings['colWidths'];\n @Input() commentedCellClassName: Handsontable.ColumnSettings['commentedCellClassName'];\n @Input() copyable: Handsontable.ColumnSettings['copyable'];\n @Input() correctFormat: Handsontable.ColumnSettings['correctFormat'];\n @Input() data: Handsontable.ColumnSettings['data'];\n @Input() dateFormat: Handsontable.ColumnSettings['dateFormat'];\n @Input() defaultDate: Handsontable.ColumnSettings['defaultDate'];\n @Input() editor: Handsontable.ColumnSettings['editor'];\n @Input() filteringCaseSensitive: Handsontable.ColumnSettings['filteringCaseSensitive'];\n @Input() invalidCellClassName: Handsontable.ColumnSettings['invalidCellClassName'];\n @Input() label: Handsontable.ColumnSettings['label'];\n @Input() language: Handsontable.ColumnSettings['language'];\n @Input() noWordWrapClassName: Handsontable.ColumnSettings['noWordWrapClassName'];\n @Input() numericFormat: Handsontable.ColumnSettings['numericFormat'];\n @Input() placeholder: Handsontable.ColumnSettings['placeholder'];\n @Input() placeholderCellClassName: Handsontable.ColumnSettings['placeholderCellClassName'];\n @Input() readOnly: Handsontable.ColumnSettings['readOnly'];\n @Input() readOnlyCellClassName: Handsontable.ColumnSettings['readOnlyCellClassName'];\n @Input() renderer: Handsontable.ColumnSettings['renderer'];\n @Input() selectOptions: Handsontable.ColumnSettings['selectOptions'];\n @Input() skipColumnOnPaste: Handsontable.ColumnSettings['skipColumnOnPaste'];\n @Input() sortByRelevance: Handsontable.ColumnSettings['sortByRelevance'];\n @Input() source: Handsontable.ColumnSettings['source'];\n @Input() strict: Handsontable.ColumnSettings['strict'];\n @Input() title: Handsontable.ColumnSettings['title'];\n @Input() trimDropdown: Handsontable.ColumnSettings['trimDropdown'];\n @Input() type: Handsontable.ColumnSettings['type'];\n @Input() uncheckedTemplate: Handsontable.ColumnSettings['uncheckedTemplate'];\n @Input() validator: Handsontable.ColumnSettings['validator'];\n @Input() visibleRows: Handsontable.ColumnSettings['visibleRows'];\n @Input() width: Handsontable.ColumnSettings['width'];\n @Input() wordWrap: Handsontable.ColumnSettings['wordWrap'];\n\n constructor(private parentComponent: HotTableComponent) {}\n\n ngOnInit(): void {\n this.firstRun = false;\n this.parentComponent.addColumn(this);\n }\n\n ngOnChanges(): void {\n if (this.firstRun) {\n return;\n }\n\n this.parentComponent.onAfterColumnsChange();\n }\n\n ngOnDestroy(): void {\n this.parentComponent.removeColumn(this);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HotTableComponent } from './hot-table.component';\nimport { HotColumnComponent } from './hot-column.component';\nimport { HotTableRegisterer } from './hot-table-registerer.service';\n\n@NgModule({\n declarations: [\n HotTableComponent,\n HotColumnComponent,\n ],\n exports: [\n HotTableComponent,\n HotColumnComponent,\n ]\n})\nexport class HotTableModule {\n static version = '11.1.0';\n\n public static forRoot(): ModuleWithProviders<HotTableModule> {\n return {\n ngModule: HotTableModule,\n providers: [ HotTableRegisterer ],\n };\n }\n}\n"]}
|
|
@@ -174,4 +174,4 @@ if (false) {
|
|
|
174
174
|
*/
|
|
175
175
|
HotColumnComponent.prototype.parentComponent;
|
|
176
176
|
}
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaGFuZHNvbnRhYmxlL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvaG90LWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUlULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU8xRCxNQUFNLE9BQU8sa0JBQWtCOzs7O0lBMEM3QixZQUFvQixlQUFrQztRQUFsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUF6QzlDLGFBQVEsR0FBRyxJQUFJLENBQUM7SUF5Q2lDLENBQUM7Ozs7SUFFMUQsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7OztZQS9ERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFFBQVEsRUFBRSxFQUFFO2FBQ2I7Ozs7WUFOUSxpQkFBaUI7Ozt5QkFVdkIsS0FBSzt3QkFDTCxLQUFLOzJCQUNMLEtBQUs7OEJBQ0wsS0FBSzt3QkFDTCxLQUFLOzRCQUNMLEtBQUs7d0JBQ0wsS0FBSztxQ0FDTCxLQUFLO3VCQUNMLEtBQUs7NEJBQ0wsS0FBSzttQkFDTCxLQUFLO3lCQUNMLEtBQUs7MEJBQ0wsS0FBSztxQkFDTCxLQUFLO3FDQUNMLEtBQUs7bUNBQ0wsS0FBSztvQkFDTCxLQUFLO3VCQUNMLEtBQUs7a0NBQ0wsS0FBSzs0QkFDTCxLQUFLOzBCQUNMLEtBQUs7dUNBQ0wsS0FBSzt1QkFDTCxLQUFLO29DQUNMLEtBQUs7dUJBQ0wsS0FBSzs0QkFDTCxLQUFLO2dDQUNMLEtBQUs7OEJBQ0wsS0FBSztxQkFDTCxLQUFLO3FCQUNMLEtBQUs7b0JBQ0wsS0FBSzsyQkFDTCxLQUFLO21CQUNMLEtBQUs7Z0NBQ0wsS0FBSzt3QkFDTCxLQUFLOzBCQUNMLEtBQUs7b0JBQ0wsS0FBSzt1QkFDTCxLQUFLOzs7Ozs7O0lBdkNOLHNDQUF3Qjs7SUFFeEIsd0NBQStEOztJQUMvRCx1Q0FBNkQ7O0lBQzdELDBDQUFtRTs7SUFDbkUsNkNBQXlFOztJQUN6RSx1Q0FBNkQ7O0lBQzdELDJDQUFxRTs7SUFDckUsdUNBQTZEOztJQUM3RCxvREFBdUY7O0lBQ3ZGLHNDQUEyRDs7SUFDM0QsMkNBQXFFOztJQUNyRSxrQ0FBbUQ7O0lBQ25ELHdDQUErRDs7SUFDL0QseUNBQWlFOztJQUNqRSxvQ0FBdUQ7O0lBQ3ZELG9EQUF1Rjs7SUFDdkYsa0RBQW1GOztJQUNuRixtQ0FBcUQ7O0lBQ3JELHNDQUEyRDs7SUFDM0QsaURBQWlGOztJQUNqRiwyQ0FBcUU7O0lBQ3JFLHlDQUFpRTs7SUFDakUsc0RBQTJGOztJQUMzRixzQ0FBMkQ7O0lBQzNELG1EQUFxRjs7SUFDckYsc0NBQTJEOztJQUMzRCwyQ0FBcUU7O0lBQ3JFLCtDQUE2RTs7SUFDN0UsNkNBQXlFOztJQUN6RSxvQ0FBdUQ7O0lBQ3ZELG9DQUF1RDs7SUFDdkQsbUNBQXFEOztJQUNyRCwwQ0FBbUU7O0lBQ25FLGtDQUFtRDs7SUFDbkQsK0NBQTZFOztJQUM3RSx1Q0FBNkQ7O0lBQzdELHlDQUFpRTs7SUFDakUsbUNBQXFEOztJQUNyRCxzQ0FBMkQ7Ozs7O0lBRS9DLDZDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSG90VGFibGVDb21wb25lbnQgfSBmcm9tICcuL2hvdC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IEhhbmRzb250YWJsZSBmcm9tICdoYW5kc29udGFibGUvYmFzZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hvdC1jb2x1bW4nLFxuICB0ZW1wbGF0ZTogJycsXG59KVxuZXhwb3J0IGNsYXNzIEhvdENvbHVtbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGZpcnN0UnVuID0gdHJ1ZTtcbiAgLy8gaGFuZHNvbnRhYmxlIGNvbHVtbiBvcHRpb25zXG4gIEBJbnB1dCgpIGFsbG93RW1wdHk6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1snYWxsb3dFbXB0eSddO1xuICBASW5wdXQoKSBhbGxvd0h0bWw6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1snYWxsb3dIdG1sJ107XG4gIEBJbnB1dCgpIGFsbG93SW52YWxpZDogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWydhbGxvd0ludmFsaWQnXTtcbiAgQElucHV0KCkgY2hlY2tlZFRlbXBsYXRlOiBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbJ2NoZWNrZWRUZW1wbGF0ZSddO1xuICBASW5wdXQoKSBjbGFzc05hbWU6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1snY2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIGNvbHVtblNvcnRpbmc6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1snY29sdW1uU29ydGluZyddO1xuICBASW5wdXQoKSBjb2xXaWR0aHM6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1snY29sV2lkdGhzJ107XG4gIEBJbnB1dCgpIGNvbW1lbnRlZENlbGxDbGFzc05hbWU6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1snY29tbWVudGVkQ2VsbENsYXNzTmFtZSddO1xuICBASW5wdXQoKSBjb3B5YWJsZTogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWydjb3B5YWJsZSddO1xuICBASW5wdXQoKSBjb3JyZWN0Rm9ybWF0OiBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbJ2NvcnJlY3RGb3JtYXQnXTtcbiAgQElucHV0KCkgZGF0YTogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWydkYXRhJ107XG4gIEBJbnB1dCgpIGRhdGVGb3JtYXQ6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1snZGF0ZUZvcm1hdCddO1xuICBASW5wdXQoKSBkZWZhdWx0RGF0ZTogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWydkZWZhdWx0RGF0ZSddO1xuICBASW5wdXQoKSBlZGl0b3I6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1snZWRpdG9yJ107XG4gIEBJbnB1dCgpIGZpbHRlcmluZ0Nhc2VTZW5zaXRpdmU6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1snZmlsdGVyaW5nQ2FzZVNlbnNpdGl2ZSddO1xuICBASW5wdXQoKSBpbnZhbGlkQ2VsbENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWydpbnZhbGlkQ2VsbENsYXNzTmFtZSddO1xuICBASW5wdXQoKSBsYWJlbDogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWydsYWJlbCddO1xuICBASW5wdXQoKSBsYW5ndWFnZTogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWydsYW5ndWFnZSddO1xuICBASW5wdXQoKSBub1dvcmRXcmFwQ2xhc3NOYW1lOiBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbJ25vV29yZFdyYXBDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgbnVtZXJpY0Zvcm1hdDogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWydudW1lcmljRm9ybWF0J107XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbJ3BsYWNlaG9sZGVyJ107XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyQ2VsbENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWydwbGFjZWhvbGRlckNlbGxDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgcmVhZE9ubHk6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1sncmVhZE9ubHknXTtcbiAgQElucHV0KCkgcmVhZE9ubHlDZWxsQ2xhc3NOYW1lOiBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbJ3JlYWRPbmx5Q2VsbENsYXNzTmFtZSddO1xuICBASW5wdXQoKSByZW5kZXJlcjogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWydyZW5kZXJlciddO1xuICBASW5wdXQoKSBzZWxlY3RPcHRpb25zOiBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbJ3NlbGVjdE9wdGlvbnMnXTtcbiAgQElucHV0KCkgc2tpcENvbHVtbk9uUGFzdGU6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1snc2tpcENvbHVtbk9uUGFzdGUnXTtcbiAgQElucHV0KCkgc29ydEJ5UmVsZXZhbmNlOiBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbJ3NvcnRCeVJlbGV2YW5jZSddO1xuICBASW5wdXQoKSBzb3VyY2U6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1snc291cmNlJ107XG4gIEBJbnB1dCgpIHN0cmljdDogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWydzdHJpY3QnXTtcbiAgQElucHV0KCkgdGl0bGU6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1sndGl0bGUnXTtcbiAgQElucHV0KCkgdHJpbURyb3Bkb3duOiBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbJ3RyaW1Ecm9wZG93biddO1xuICBASW5wdXQoKSB0eXBlOiBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbJ3R5cGUnXTtcbiAgQElucHV0KCkgdW5jaGVja2VkVGVtcGxhdGU6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1sndW5jaGVja2VkVGVtcGxhdGUnXTtcbiAgQElucHV0KCkgdmFsaWRhdG9yOiBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbJ3ZhbGlkYXRvciddO1xuICBASW5wdXQoKSB2aXNpYmxlUm93czogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWyd2aXNpYmxlUm93cyddO1xuICBASW5wdXQoKSB3aWR0aDogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWyd3aWR0aCddO1xuICBASW5wdXQoKSB3b3JkV3JhcDogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWyd3b3JkV3JhcCddO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyZW50Q29tcG9uZW50OiBIb3RUYWJsZUNvbXBvbmVudCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpcnN0UnVuID0gZmFsc2U7XG4gICAgdGhpcy5wYXJlbnRDb21wb25lbnQuYWRkQ29sdW1uKHRoaXMpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmlyc3RSdW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnBhcmVudENvbXBvbmVudC5vbkFmdGVyQ29sdW1uc0NoYW5nZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5wYXJlbnRDb21wb25lbnQucmVtb3ZlQ29sdW1uKHRoaXMpO1xuICB9XG59XG4iXX0=
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
5
|
*/
|
|
6
6
|
import { Injectable } from '@angular/core';
|
|
7
|
-
import Handsontable from 'handsontable';
|
|
7
|
+
import Handsontable from 'handsontable/base';
|
|
8
8
|
/** @type {?} */
|
|
9
9
|
const AVAILABLE_OPTIONS = Object.keys(Handsontable.DefaultSettings);
|
|
10
10
|
/** @type {?} */
|
|
@@ -83,4 +83,4 @@ export class HotSettingsResolver {
|
|
|
83
83
|
HotSettingsResolver.decorators = [
|
|
84
84
|
{ type: Injectable }
|
|
85
85
|
];
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXNldHRpbmdzLXJlc29sdmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaGFuZHNvbnRhYmxlL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvaG90LXNldHRpbmdzLXJlc29sdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQzs7TUFFdkMsaUJBQWlCLEdBQWEsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDOztNQUN2RSxlQUFlLEdBQWEsWUFBWSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUU7QUFHcEUsTUFBTSxPQUFPLG1CQUFtQjs7Ozs7SUFDOUIsYUFBYSxDQUFDLFNBQVM7O2NBQ2YsZ0JBQWdCLEdBQUcsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssUUFBUTs7Y0FDNUQsY0FBYyxHQUE4QixnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFOztjQUN6RixPQUFPLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUV6RCxPQUFPLENBQUMsT0FBTzs7OztRQUFDLEdBQUcsQ0FBQyxFQUFFOztrQkFDZCxNQUFNLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7O2dCQUM1QyxNQUFNO1lBRVYsSUFBSSxnQkFBZ0IsSUFBSSxNQUFNLEVBQUU7Z0JBQzlCLE1BQU0sR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDckM7WUFFRCxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRTtnQkFDN0IsTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN6QjtZQUVELElBQUksTUFBTSxLQUFLLEtBQUssQ0FBQyxFQUFFO2dCQUNyQixPQUFPO2FBRVI7aUJBQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLElBQUksTUFBTSxFQUFFO2dCQUNqRCxjQUFjLENBQUMsR0FBRyxDQUFDOzs7O2dCQUFHLFVBQVMsR0FBRyxJQUFJO29CQUNwQyxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRzs7O29CQUFDLEdBQUcsRUFBRTt3QkFDOUIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDcEMsQ0FBQyxFQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFBLENBQUM7YUFFSDtpQkFBTTtnQkFDTCxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFFSCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDOzs7OztJQUVELGNBQWMsQ0FBQyxPQUFzQjs7Y0FDN0IsTUFBTSxHQUE4QixFQUFFOztjQUN0QyxVQUFVLEdBQWEsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFakQsVUFBVSxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDakMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUM7YUFDN0M7UUFDSCxDQUFDLEVBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OztZQWhERixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IEhhbmRzb250YWJsZSBmcm9tICdoYW5kc29udGFibGUvYmFzZSc7XG5cbmNvbnN0IEFWQUlMQUJMRV9PUFRJT05TOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKEhhbmRzb250YWJsZS5EZWZhdWx0U2V0dGluZ3MpO1xuY29uc3QgQVZBSUxBQkxFX0hPT0tTOiBzdHJpbmdbXSA9IEhhbmRzb250YWJsZS5ob29rcy5nZXRSZWdpc3RlcmVkKCk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIb3RTZXR0aW5nc1Jlc29sdmVyIHtcbiAgbWVyZ2VTZXR0aW5ncyhjb21wb25lbnQpOiBvYmplY3Qge1xuICAgIGNvbnN0IGlzU2V0dGluZ3NPYmplY3QgPSB0eXBlb2YgY29tcG9uZW50WydzZXR0aW5ncyddID09PSAnb2JqZWN0JztcbiAgICBjb25zdCBtZXJnZWRTZXR0aW5nczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyA9IGlzU2V0dGluZ3NPYmplY3QgPyBjb21wb25lbnRbJ3NldHRpbmdzJ10gOiB7fTtcbiAgICBjb25zdCBvcHRpb25zID0gQVZBSUxBQkxFX0hPT0tTLmNvbmNhdChBVkFJTEFCTEVfT1BUSU9OUyk7XG5cbiAgICBvcHRpb25zLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IGlzSG9vayA9IEFWQUlMQUJMRV9IT09LUy5pbmRleE9mKGtleSkgPiAtMTtcbiAgICAgIGxldCBvcHRpb247XG5cbiAgICAgIGlmIChpc1NldHRpbmdzT2JqZWN0ICYmIGlzSG9vaykge1xuICAgICAgICBvcHRpb24gPSBjb21wb25lbnRbJ3NldHRpbmdzJ11ba2V5XTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbXBvbmVudFtrZXldICE9PSB2b2lkIDApIHtcbiAgICAgICAgb3B0aW9uID0gY29tcG9uZW50W2tleV07XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb24gPT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm47XG5cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ2Z1bmN0aW9uJyAmJiBpc0hvb2spIHtcbiAgICAgICAgbWVyZ2VkU2V0dGluZ3Nba2V5XSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgICByZXR1cm4gY29tcG9uZW50Ll9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVyZ2VkU2V0dGluZ3Nba2V5XSA9IG9wdGlvbjtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtZXJnZWRTZXR0aW5ncztcbiAgfVxuXG4gIHByZXBhcmVDaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzIHtcbiAgICBjb25zdCByZXN1bHQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3MgPSB7fTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKGNoYW5nZXMpO1xuXG4gICAgcGFyYW1ldGVycy5mb3JFYWNoKChwYXJhbSkgPT4ge1xuICAgICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkocGFyYW0pKSB7XG4gICAgICAgIHJlc3VsdFtwYXJhbV0gPSBjaGFuZ2VzW3BhcmFtXS5jdXJyZW50VmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
|
|
@@ -17,8 +17,11 @@ export class HotTableRegisterer {
|
|
|
17
17
|
getInstance(id) {
|
|
18
18
|
/** @type {?} */
|
|
19
19
|
const hotInstance = instances.get(id);
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
if (hotInstance.isDestroyed) {
|
|
21
|
+
console.warn(HOT_DESTROYED_WARNING);
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return hotInstance;
|
|
22
25
|
}
|
|
23
26
|
/**
|
|
24
27
|
* @param {?} id
|
|
@@ -39,4 +42,4 @@ export class HotTableRegisterer {
|
|
|
39
42
|
HotTableRegisterer.decorators = [
|
|
40
43
|
{ type: Injectable }
|
|
41
44
|
];
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXRhYmxlLXJlZ2lzdGVyZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoYW5kc29udGFibGUvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9ob3QtdGFibGUtcmVnaXN0ZXJlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7TUFHckMsU0FBUyxHQUFHLElBQUksR0FBRyxFQUF3Qjs7QUFFakQsTUFBTSxPQUFPLHFCQUFxQixHQUFHLCtFQUErRTtJQUNsSCxpQkFBaUI7QUFHbkIsTUFBTSxPQUFPLGtCQUFrQjs7Ozs7SUFDdEIsV0FBVyxDQUFDLEVBQVU7O2NBQ3JCLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUVyQyxJQUFJLFdBQVcsQ0FBQyxXQUFXLEVBQUU7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBRXBDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzs7Ozs7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFVLEVBQUUsUUFBc0I7UUFDeEQsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDOzs7OztJQUVNLGNBQWMsQ0FBQyxFQUFVO1FBQzlCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDOzs7WUFwQkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBIYW5kc29udGFibGUgZnJvbSAnaGFuZHNvbnRhYmxlL2Jhc2UnO1xuXG5jb25zdCBpbnN0YW5jZXMgPSBuZXcgTWFwPHN0cmluZywgSGFuZHNvbnRhYmxlPigpO1xuXG5leHBvcnQgY29uc3QgSE9UX0RFU1RST1lFRF9XQVJOSU5HID0gJ1RoZSBIYW5kc29udGFibGUgaW5zdGFuY2UgYm91bmQgdG8gdGhpcyBjb21wb25lbnQgd2FzIGRlc3Ryb3llZCBhbmQgY2Fubm90IGJlJyArXG4gICcgdXNlZCBwcm9wZXJseS4nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSG90VGFibGVSZWdpc3RlcmVyIHtcbiAgcHVibGljIGdldEluc3RhbmNlKGlkOiBzdHJpbmcpOiBIYW5kc29udGFibGUge1xuICAgIGNvbnN0IGhvdEluc3RhbmNlID0gaW5zdGFuY2VzLmdldChpZCk7XG5cbiAgICBpZiAoaG90SW5zdGFuY2UuaXNEZXN0cm95ZWQpIHtcbiAgICAgIGNvbnNvbGUud2FybihIT1RfREVTVFJPWUVEX1dBUk5JTkcpO1xuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gaG90SW5zdGFuY2U7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJJbnN0YW5jZShpZDogc3RyaW5nLCBpbnN0YW5jZTogSGFuZHNvbnRhYmxlKTogTWFwPHN0cmluZywgSGFuZHNvbnRhYmxlPiB7XG4gICAgcmV0dXJuIGluc3RhbmNlcy5zZXQoaWQsIGluc3RhbmNlKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVJbnN0YW5jZShpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGluc3RhbmNlcy5kZWxldGUoaWQpO1xuICB9XG59XG4iXX0=
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
5
|
*/
|
|
6
6
|
import { Component, Input, NgZone, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
7
|
-
import Handsontable from 'handsontable';
|
|
7
|
+
import Handsontable from 'handsontable/base';
|
|
8
8
|
import { HotTableRegisterer, HOT_DESTROYED_WARNING } from './hot-table-registerer.service';
|
|
9
9
|
import { HotSettingsResolver } from './hot-settings-resolver.service';
|
|
10
10
|
export class HotTableComponent {
|
|
@@ -396,6 +396,7 @@ HotTableComponent.propDecorators = {
|
|
|
396
396
|
afterValidate: [{ type: Input }],
|
|
397
397
|
afterViewportColumnCalculatorOverride: [{ type: Input }],
|
|
398
398
|
afterViewportRowCalculatorOverride: [{ type: Input }],
|
|
399
|
+
afterViewRender: [{ type: Input }],
|
|
399
400
|
beforeAddChild: [{ type: Input }],
|
|
400
401
|
beforeAutofill: [{ type: Input }],
|
|
401
402
|
beforeAutofillInsidePopulate: [{ type: Input }],
|
|
@@ -459,6 +460,7 @@ HotTableComponent.propDecorators = {
|
|
|
459
460
|
beforeUntrimRow: [{ type: Input }],
|
|
460
461
|
beforeValidate: [{ type: Input }],
|
|
461
462
|
beforeValueRender: [{ type: Input }],
|
|
463
|
+
beforeViewRender: [{ type: Input }],
|
|
462
464
|
construct: [{ type: Input }],
|
|
463
465
|
init: [{ type: Input }],
|
|
464
466
|
modifyAutoColumnSizeSeed: [{ type: Input }],
|
|
@@ -900,6 +902,8 @@ if (false) {
|
|
|
900
902
|
/** @type {?} */
|
|
901
903
|
HotTableComponent.prototype.afterViewportRowCalculatorOverride;
|
|
902
904
|
/** @type {?} */
|
|
905
|
+
HotTableComponent.prototype.afterViewRender;
|
|
906
|
+
/** @type {?} */
|
|
903
907
|
HotTableComponent.prototype.beforeAddChild;
|
|
904
908
|
/** @type {?} */
|
|
905
909
|
HotTableComponent.prototype.beforeAutofill;
|
|
@@ -1026,6 +1030,8 @@ if (false) {
|
|
|
1026
1030
|
/** @type {?} */
|
|
1027
1031
|
HotTableComponent.prototype.beforeValueRender;
|
|
1028
1032
|
/** @type {?} */
|
|
1033
|
+
HotTableComponent.prototype.beforeViewRender;
|
|
1034
|
+
/** @type {?} */
|
|
1029
1035
|
HotTableComponent.prototype.construct;
|
|
1030
1036
|
/** @type {?} */
|
|
1031
1037
|
HotTableComponent.prototype.init;
|
|
@@ -1081,4 +1087,4 @@ if (false) {
|
|
|
1081
1087
|
*/
|
|
1082
1088
|
HotTableComponent.prototype._hotSettingsResolver;
|
|
1083
1089
|
}
|
|
1084
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoYW5kc29udGFibGUvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9ob3QtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUlOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxZQUFZLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3RCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFTdEUsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7O0lBd1M1QixZQUNVLE9BQWUsRUFDZixtQkFBdUMsRUFDdkMsb0JBQXlDO1FBRnpDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUF4UzNDLGtCQUFhLEdBQWlCLElBQUksQ0FBQztRQUNuQyxzQkFBaUIsR0FBeUIsRUFBRSxDQUFDO1FBRzVDLFVBQUssR0FBRyxFQUFFLENBQUM7SUFxU2pCLENBQUM7Ozs7O0lBRUosSUFBWSxXQUFXO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFFbEYsZ0ZBQWdGO1lBQ2hGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUUzQjthQUFNO1lBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFcEQsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIs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QUNqRiw0Q0FBdUU7O0lBQ3ZFLDZDQUF5RTs7SUFDekUsK0NBQTZFOztJQUM3RSxpREFBaUY7O0lBQ2pGLGdEQUErRTs7SUFDL0UsaURBQWlGOztJQUNqRixnREFBK0U7Ozs7O0lBRzdFLG9DQUF1Qjs7Ozs7SUFDdkIsZ0RBQStDOzs7OztJQUMvQyxpREFBaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBIYW5kc29udGFibGUgZnJvbSAnaGFuZHNvbnRhYmxlJztcbmltcG9ydCB7XG4gIEhvdFRhYmxlUmVnaXN0ZXJlcixcbiAgSE9UX0RFU1RST1lFRF9XQVJOSU5HXG59IGZyb20gJy4vaG90LXRhYmxlLXJlZ2lzdGVyZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIb3RTZXR0aW5nc1Jlc29sdmVyIH0gZnJvbSAnLi9ob3Qtc2V0dGluZ3MtcmVzb2x2ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIb3RDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2hvdC1jb2x1bW4uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaG90LXRhYmxlJyxcbiAgdGVtcGxhdGU6ICc8ZGl2ICNjb250YWluZXIgW2lkXT1cImhvdElkXCI+PC9kaXY+JyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbIEhvdFRhYmxlUmVnaXN0ZXJlciwgSG90U2V0dGluZ3NSZXNvbHZlciBdLFxufSlcbmV4cG9ydCBjbGFzcyBIb3RUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyBjb250YWluZXI7XG5cbiAgcHJpdmF0ZSBfX2hvdEluc3RhbmNlOiBIYW5kc29udGFibGUgPSBudWxsO1xuICBwcml2YXRlIGNvbHVtbnNDb21wb25lbnRzOiBIb3RDb2x1bW5Db21wb25lbnRbXSA9IFtdO1xuICAvLyBjb21wb25lbnQgaW5wdXRzXG4gIEBJbnB1dCgpIHNldHRpbmdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzO1xuICBASW5wdXQoKSBob3RJZCA9ICcnO1xuICAvLyBoYW5kc29udGFibGUgb3B0aW9uc1xuICBASW5wdXQoKSBhY3RpdmVIZWFkZXJDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FjdGl2ZUhlYWRlckNsYXNzTmFtZSddO1xuICBASW5wdXQoKSBhbGxvd0VtcHR5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0VtcHR5J107XG4gIEBJbnB1dCgpIGFsbG93SHRtbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWxsb3dIdG1sJ107XG4gIEBJbnB1dCgpIGFsbG93SW5zZXJ0Q29sdW1uOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0luc2VydENvbHVtbiddO1xuICBASW5wdXQoKSBhbGxvd0luc2VydFJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWxsb3dJbnNlcnRSb3cnXTtcbiAgQElucHV0KCkgYWxsb3dJbnZhbGlkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0ludmFsaWQnXTtcbiAgQElucHV0KCkgYWxsb3dSZW1vdmVDb2x1bW46IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FsbG93UmVtb3ZlQ29sdW1uJ107XG4gIEBJbnB1dCgpIGFsbG93UmVtb3ZlUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd1JlbW92ZVJvdyddO1xuICBASW5wdXQoKSBhdXRvQ29sdW1uU2l6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYXV0b0NvbHVtblNpemUnXTtcbiAgQElucHV0KCkgYXV0b1Jvd1NpemU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2F1dG9Sb3dTaXplJ107XG4gIEBJbnB1dCgpIGF1dG9XcmFwQ29sOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhdXRvV3JhcENvbCddO1xuICBASW5wdXQoKSBhdXRvV3JhcFJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYXV0b1dyYXBSb3cnXTtcbiAgQElucHV0KCkgYmluZFJvd3NXaXRoSGVhZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmluZFJvd3NXaXRoSGVhZGVycyddO1xuICBASW5wdXQoKSBjZWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjZWxsJ107XG4gIEBJbnB1dCgpIGNlbGxzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjZWxscyddO1xuICBASW5wdXQoKSBjaGVja2VkVGVtcGxhdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NoZWNrZWRUZW1wbGF0ZSddO1xuICBASW5wdXQoKSBjbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NsYXNzTmFtZSddO1xuICBASW5wdXQoKSBjb2xIZWFkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb2xIZWFkZXJzJ107XG4gIEBJbnB1dCgpIGNvbGxhcHNpYmxlQ29sdW1uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sbGFwc2libGVDb2x1bW5zJ107XG4gIEBJbnB1dCgpIGNvbHVtbkhlYWRlckhlaWdodDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sdW1uSGVhZGVySGVpZ2h0J107XG4gIEBJbnB1dCgpIGNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbHVtbnMnXTtcbiAgQElucHV0KCkgY29sdW1uU29ydGluZzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sdW1uU29ydGluZyddO1xuICBASW5wdXQoKSBjb2x1bW5TdW1tYXJ5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb2x1bW5TdW1tYXJ5J107XG4gIEBJbnB1dCgpIGNvbFdpZHRoczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sV2lkdGhzJ107XG4gIEBJbnB1dCgpIGNvbW1lbnRlZENlbGxDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbW1lbnRlZENlbGxDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgY29tbWVudHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbW1lbnRzJ107XG4gIEBJbnB1dCgpIGNvbnRleHRNZW51OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb250ZXh0TWVudSddO1xuICBASW5wdXQoKSBjb3B5YWJsZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29weWFibGUnXTtcbiAgQElucHV0KCkgY29weVBhc3RlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb3B5UGFzdGUnXTtcbiAgQElucHV0KCkgY29ycmVjdEZvcm1hdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29ycmVjdEZvcm1hdCddO1xuICBASW5wdXQoKSBjdXJyZW50Q29sQ2xhc3NOYW1lOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjdXJyZW50Q29sQ2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIGN1cnJlbnRIZWFkZXJDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2N1cnJlbnRIZWFkZXJDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgY3VycmVudFJvd0NsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY3VycmVudFJvd0NsYXNzTmFtZSddO1xuICBASW5wdXQoKSBjdXN0b21Cb3JkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjdXN0b21Cb3JkZXJzJ107XG4gIEBJbnB1dCgpIGRhdGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2RhdGEnXTtcbiAgQElucHV0KCkgZGF0YVNjaGVtYTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZGF0YVNjaGVtYSddO1xuICBASW5wdXQoKSBkYXRlRm9ybWF0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkYXRlRm9ybWF0J107XG4gIEBJbnB1dCgpIGRlZmF1bHREYXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkZWZhdWx0RGF0ZSddO1xuICBASW5wdXQoKSBkaXNhYmxlVmlzdWFsU2VsZWN0aW9uOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkaXNhYmxlVmlzdWFsU2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGRyYWdUb1Njcm9sbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZHJhZ1RvU2Nyb2xsJ107XG4gIEBJbnB1dCgpIGRyb3Bkb3duTWVudTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZHJvcGRvd25NZW51J107XG4gIEBJbnB1dCgpIGVkaXRvcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZWRpdG9yJ107XG4gIEBJbnB1dCgpIGVudGVyQmVnaW5zRWRpdGluZzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZW50ZXJCZWdpbnNFZGl0aW5nJ107XG4gIEBJbnB1dCgpIGVudGVyTW92ZXM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2VudGVyTW92ZXMnXTtcbiAgQElucHV0KCkgZmlsbEhhbmRsZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZmlsbEhhbmRsZSddO1xuICBASW5wdXQoKSBmaWx0ZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpbHRlciddO1xuICBASW5wdXQoKSBmaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydmaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlJ107XG4gIEBJbnB1dCgpIGZpbHRlcnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpbHRlcnMnXTtcbiAgQElucHV0KCkgZml4ZWRDb2x1bW5zTGVmdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZml4ZWRDb2x1bW5zTGVmdCddO1xuICBASW5wdXQoKSBmaXhlZFJvd3NCb3R0b206IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpeGVkUm93c0JvdHRvbSddO1xuICBASW5wdXQoKSBmaXhlZFJvd3NUb3A6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpeGVkUm93c1RvcCddO1xuICBASW5wdXQoKSBmb3JtdWxhczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZm9ybXVsYXMnXTtcbiAgQElucHV0KCkgZnJhZ21lbnRTZWxlY3Rpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZyYWdtZW50U2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGhlaWdodDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaGVpZ2h0J107XG4gIEBJbnB1dCgpIGhpZGRlbkNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2hpZGRlbkNvbHVtbnMnXTtcbiAgQElucHV0KCkgaGlkZGVuUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaGlkZGVuUm93cyddO1xuICBASW5wdXQoKSBpbnZhbGlkQ2VsbENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaW52YWxpZENlbGxDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgbGFiZWw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2xhYmVsJ107XG4gIEBJbnB1dCgpIGxhbmd1YWdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydsYW5ndWFnZSddO1xuICBASW5wdXQoKSBsaWNlbnNlS2V5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydsaWNlbnNlS2V5J107XG4gIEBJbnB1dCgpIG1hbnVhbENvbHVtbkZyZWV6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWFudWFsQ29sdW1uRnJlZXplJ107XG4gIEBJbnB1dCgpIG1hbnVhbENvbHVtbk1vdmU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21hbnVhbENvbHVtbk1vdmUnXTtcbiAgQElucHV0KCkgbWFudWFsQ29sdW1uUmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtYW51YWxDb2x1bW5SZXNpemUnXTtcbiAgQElucHV0KCkgbWFudWFsUm93TW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWFudWFsUm93TW92ZSddO1xuICBASW5wdXQoKSBtYW51YWxSb3dSZXNpemU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21hbnVhbFJvd1Jlc2l6ZSddO1xuICBASW5wdXQoKSBtYXhDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtYXhDb2xzJ107XG4gIEBJbnB1dCgpIG1heFJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21heFJvd3MnXTtcbiAgQElucHV0KCkgbWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBtaW5Db2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5Db2xzJ107XG4gIEBJbnB1dCgpIG1pblJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21pblJvd3MnXTtcbiAgQElucHV0KCkgbWluU3BhcmVDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5TcGFyZUNvbHMnXTtcbiAgQElucHV0KCkgbWluU3BhcmVSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5TcGFyZVJvd3MnXTtcbiAgQElucHV0KCkgbXVsdGlDb2x1bW5Tb3J0aW5nOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtdWx0aUNvbHVtblNvcnRpbmcnXTtcbiAgQElucHV0KCkgbmVzdGVkSGVhZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbmVzdGVkSGVhZGVycyddO1xuICBASW5wdXQoKSBuZXN0ZWRSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyduZXN0ZWRSb3dzJ107XG4gIEBJbnB1dCgpIG5vV29yZFdyYXBDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ25vV29yZFdyYXBDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgbnVtZXJpY0Zvcm1hdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbnVtZXJpY0Zvcm1hdCddO1xuICBASW5wdXQoKSBvYnNlcnZlRE9NVmlzaWJpbGl0eTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snb2JzZXJ2ZURPTVZpc2liaWxpdHknXTtcbiAgQElucHV0KCkgb3V0c2lkZUNsaWNrRGVzZWxlY3RzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydvdXRzaWRlQ2xpY2tEZXNlbGVjdHMnXTtcbiAgQElucHV0KCkgcGVyc2lzdGVudFN0YXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGUnXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3BsYWNlaG9sZGVyJ107XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyQ2VsbENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIHByZXZlbnRPdmVyZmxvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncHJldmVudE92ZXJmbG93J107XG4gIEBJbnB1dCgpIHByZXZlbnRXaGVlbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncHJldmVudFdoZWVsJ107XG4gIEBJbnB1dCgpIHJlYWRPbmx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyZWFkT25seSddO1xuICBASW5wdXQoKSByZWFkT25seUNlbGxDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3JlYWRPbmx5Q2VsbENsYXNzTmFtZSddO1xuICBASW5wdXQoKSByZW5kZXJBbGxSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyZW5kZXJBbGxSb3dzJ107XG4gIEBJbnB1dCgpIHJlbmRlcmVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyZW5kZXJlciddO1xuICBASW5wdXQoKSByb3dIZWFkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyb3dIZWFkZXJzJ107XG4gIEBJbnB1dCgpIHJvd0hlYWRlcldpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyb3dIZWFkZXJXaWR0aCddO1xuICBASW5wdXQoKSByb3dIZWlnaHRzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyb3dIZWlnaHRzJ107XG4gIEBJbnB1dCgpIHNlYXJjaDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc2VhcmNoJ107XG4gIEBJbnB1dCgpIHNlbGVjdGlvbk1vZGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3NlbGVjdGlvbk1vZGUnXTtcbiAgQElucHV0KCkgc2VsZWN0T3B0aW9uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc2VsZWN0T3B0aW9ucyddO1xuICBASW5wdXQoKSBza2lwQ29sdW1uT25QYXN0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc2tpcENvbHVtbk9uUGFzdGUnXTtcbiAgQElucHV0KCkgc2tpcFJvd09uUGFzdGU6IGFueTtcbiAgQElucHV0KCkgc29ydEJ5UmVsZXZhbmNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzb3J0QnlSZWxldmFuY2UnXTtcbiAgQElucHV0KCkgc291cmNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzb3VyY2UnXTtcbiAgQElucHV0KCkgc3RhcnRDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzdGFydENvbHMnXTtcbiAgQElucHV0KCkgc3RhcnRSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzdGFydFJvd3MnXTtcbiAgQElucHV0KCkgc3RyZXRjaEg6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3N0cmV0Y2hIJ107XG4gIEBJbnB1dCgpIHN0cmljdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc3RyaWN0J107XG4gIEBJbnB1dCgpIHRhYmxlQ2xhc3NOYW1lOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0YWJsZUNsYXNzTmFtZSddO1xuICBASW5wdXQoKSB0YWJNb3ZlczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndGFiTW92ZXMnXTtcbiAgQElucHV0KCkgdGl0bGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3RpdGxlJ107XG4gIEBJbnB1dCgpIHRyaW1Ecm9wZG93bjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndHJpbURyb3Bkb3duJ107XG4gIEBJbnB1dCgpIHRyaW1Sb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyduZXN0ZWRSb3dzJ107XG4gIEBJbnB1dCgpIHRyaW1XaGl0ZXNwYWNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0cmltV2hpdGVzcGFjZSddO1xuICBASW5wdXQoKSB0eXBlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0eXBlJ107XG4gIEBJbnB1dCgpIHVuY2hlY2tlZFRlbXBsYXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd1bmNoZWNrZWRUZW1wbGF0ZSddO1xuICBASW5wdXQoKSB1bmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd1bmRvJ107XG4gIEBJbnB1dCgpIHZhbGlkYXRvcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndmFsaWRhdG9yJ107XG4gIEBJbnB1dCgpIHZpZXdwb3J0Q29sdW1uUmVuZGVyaW5nT2Zmc2V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd2aWV3cG9ydENvbHVtblJlbmRlcmluZ09mZnNldCddO1xuICBASW5wdXQoKSB2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQnXTtcbiAgQElucHV0KCkgdmlzaWJsZVJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3Zpc2libGVSb3dzJ107XG4gIEBJbnB1dCgpIHdpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd3aWR0aCddO1xuICBASW5wdXQoKSB3b3JkV3JhcDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snd29yZFdyYXAnXTtcblxuICAvLyBoYW5kc29udGFibGUgaG9va3NcbiAgQElucHV0KCkgYWZ0ZXJBZGRDaGlsZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJBZGRDaGlsZCddO1xuICBASW5wdXQoKSBhZnRlckF1dG9maWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckF1dG9maWxsJ107XG4gIEBJbnB1dCgpIGFmdGVyQmVnaW5FZGl0aW5nOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckJlZ2luRWRpdGluZyddO1xuICBASW5wdXQoKSBhZnRlckNlbGxNZXRhUmVzZXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ2VsbE1ldGFSZXNldCddO1xuICBASW5wdXQoKSBhZnRlckNoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDaGFuZ2UnXTtcbiAgQElucHV0KCkgYWZ0ZXJDaGFuZ2VzT2JzZXJ2ZWQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ2hhbmdlc09ic2VydmVkJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uQ29sbGFwc2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uQ29sbGFwc2UnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb2x1bW5FeHBhbmQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uRXhwYW5kJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uTW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb2x1bW5Nb3ZlJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uUmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvbHVtblJlc2l6ZSddO1xuICBASW5wdXQoKSBhZnRlckNvbHVtblNvcnQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uU29ydCddO1xuICBASW5wdXQoKSBhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyddO1xuICBASW5wdXQoKSBhZnRlckNvbnRleHRNZW51SGlkZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb250ZXh0TWVudUhpZGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb250ZXh0TWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29udGV4dE1lbnVTaG93J107XG4gIEBJbnB1dCgpIGFmdGVyQ29weTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb3B5J107XG4gIEBJbnB1dCgpIGFmdGVyQ29weUxpbWl0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvcHlMaW1pdCddO1xuICBASW5wdXQoKSBhZnRlckNyZWF0ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDcmVhdGVDb2wnXTtcbiAgQElucHV0KCkgYWZ0ZXJDcmVhdGVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ3JlYXRlUm93J107XG4gIEBJbnB1dCgpIGFmdGVyQ3V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckN1dCddO1xuICBASW5wdXQoKSBhZnRlckRlc2VsZWN0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRlc2VsZWN0J107XG4gIEBJbnB1dCgpIGFmdGVyRGVzdHJveTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJEZXN0cm95J107XG4gIEBJbnB1dCgpIGFmdGVyRGV0YWNoQ2hpbGQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRGV0YWNoQ2hpbGQnXTtcbiAgQElucHV0KCkgYWZ0ZXJEb2N1bWVudEtleURvd246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRG9jdW1lbnRLZXlEb3duJ107XG4gIEBJbnB1dCgpIGFmdGVyRHJhd1NlbGVjdGlvbjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJEcmF3U2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJEcm9wZG93bk1lbnVIaWRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRyb3Bkb3duTWVudUhpZGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJEcm9wZG93bk1lbnVTaG93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRyb3Bkb3duTWVudVNob3cnXTtcbiAgQElucHV0KCkgYWZ0ZXJGaWx0ZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRmlsdGVyJ107XG4gIEBJbnB1dCgpIGFmdGVyR2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Q2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYWZ0ZXJHZXRDb2xIZWFkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Q29sSGVhZGVyJ107XG4gIEBJbnB1dCgpIGFmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVycyddO1xuICBASW5wdXQoKSBhZnRlckdldFJvd0hlYWRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJHZXRSb3dIZWFkZXInXTtcbiAgQElucHV0KCkgYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Um93SGVhZGVyUmVuZGVyZXJzJ107XG4gIEBJbnB1dCgpIGFmdGVySGlkZUNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVySGlkZUNvbHVtbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJIaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJIaWRlUm93cyddO1xuICBASW5wdXQoKSBhZnRlckluaXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVySW5pdCddO1xuICBASW5wdXQoKSBhZnRlckxhbmd1YWdlQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckxhbmd1YWdlQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyTGlzdGVuOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckxpc3RlbiddO1xuICBASW5wdXQoKSBhZnRlckxvYWREYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckxvYWREYXRhJ107XG4gIEBJbnB1dCgpIGFmdGVyTWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJNZXJnZUNlbGxzJ107XG4gIEBJbnB1dCgpIGFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck1vZGlmeVRyYW5zZm9ybUVuZCddO1xuICBASW5wdXQoKSBhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0J107XG4gIEBJbnB1dCgpIGFmdGVyTW9tZW50dW1TY3JvbGw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyTW9tZW50dW1TY3JvbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxDb250ZXh0TWVudTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxDb250ZXh0TWVudSddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbENvcm5lckRibENsaWNrOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbENvcm5lckRibENsaWNrJ107XG4gIEBJbnB1dCgpIGFmdGVyT25DZWxsQ29ybmVyTW91c2VEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93biddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbE1vdXNlRG93bjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZURvd24nXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxNb3VzZU91dDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZU91dCddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbE1vdXNlT3ZlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZU92ZXInXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxNb3VzZVVwOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbE1vdXNlVXAnXTtcbiAgQElucHV0KCkgYWZ0ZXJQYXN0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJQYXN0ZSddO1xuICBASW5wdXQoKSBhZnRlclBsdWdpbnNJbml0aWFsaXplZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZWRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlZG8nXTtcbiAgQElucHV0KCkgYWZ0ZXJSZWRvU3RhY2tDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVkb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyUmVmcmVzaERpbWVuc2lvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVmcmVzaERpbWVuc2lvbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZW1vdmVDZWxsTWV0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSZW1vdmVDZWxsTWV0YSddO1xuICBASW5wdXQoKSBhZnRlclJlbW92ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSZW1vdmVDb2wnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZW1vdmVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVtb3ZlUm93J107XG4gIEBJbnB1dCgpIGFmdGVyUmVuZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlbmRlciddO1xuICBASW5wdXQoKSBhZnRlclJlbmRlcmVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlbmRlcmVyJ107XG4gIEBJbnB1dCgpIGFmdGVyUm93TW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSb3dNb3ZlJ107XG4gIEBJbnB1dCgpIGFmdGVyUm93UmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJvd1Jlc2l6ZSddO1xuICBASW5wdXQoKSBhZnRlclNjcm9sbEhvcml6b250YWxseTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHknXTtcbiAgQElucHV0KCkgYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNjcm9sbFZlcnRpY2FsbHknXTtcbiAgQElucHV0KCkgYWZ0ZXJTZWxlY3Rpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGFmdGVyU2VsZWN0aW9uQnlQcm9wOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNlbGVjdGlvbkJ5UHJvcCddO1xuICBASW5wdXQoKSBhZnRlclNlbGVjdGlvbkVuZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJTZWxlY3Rpb25FbmQnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3A6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2VsZWN0aW9uRW5kQnlQcm9wJ107XG4gIEBJbnB1dCgpIGFmdGVyU2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2V0Q2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXREYXRhQXRDZWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNldERhdGFBdENlbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXREYXRhQXRSb3dQcm9wOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNldERhdGFBdFJvd1Byb3AnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNldFNvdXJjZURhdGFBdENlbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJUcmltUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclRyaW1Sb3cnXTtcbiAgQElucHV0KCkgYWZ0ZXJVbmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVuZG8nXTtcbiAgQElucHV0KCkgYWZ0ZXJVbmRvU3RhY2tDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5kb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5oaWRlQ29sdW1uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJVbmhpZGVDb2x1bW5zJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5oaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJVbmhpZGVSb3dzJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5saXN0ZW46IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5saXN0ZW4nXTtcbiAgQElucHV0KCkgYWZ0ZXJVbm1lcmdlQ2VsbHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5tZXJnZUNlbGxzJ107XG4gIEBJbnB1dCgpIGFmdGVyVW50cmltUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVudHJpbVJvdyddO1xuICBASW5wdXQoKSBhZnRlclVwZGF0ZVNldHRpbmdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVwZGF0ZVNldHRpbmdzJ107XG4gIEBJbnB1dCgpIGFmdGVyVmFsaWRhdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVmFsaWRhdGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSddO1xuICBASW5wdXQoKSBhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlJ107XG4gIEBJbnB1dCgpIGJlZm9yZUFkZENoaWxkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVBZGRDaGlsZCddO1xuICBASW5wdXQoKSBiZWZvcmVBdXRvZmlsbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQXV0b2ZpbGwnXTtcbiAgQElucHV0KCkgYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZSddO1xuICBASW5wdXQoKSBiZWZvcmVDZWxsQWxpZ25tZW50OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDZWxsQWxpZ25tZW50J107XG4gIEBJbnB1dCgpIGJlZm9yZUNoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNoYW5nZVJlbmRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ2hhbmdlUmVuZGVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtbkNvbGxhcHNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb2x1bW5Db2xsYXBzZSddO1xuICBASW5wdXQoKSBiZWZvcmVDb2x1bW5FeHBhbmQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbHVtbkV4cGFuZCddO1xuICBASW5wdXQoKSBiZWZvcmVDb2x1bW5Nb3ZlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb2x1bW5Nb3ZlJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtblJlc2l6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ29sdW1uUmVzaXplJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtblNvcnQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbHVtblNvcnQnXTtcbiAgQElucHV0KCkgYmVmb3JlQ29udGV4dE1lbnVTZXRJdGVtczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ29udGV4dE1lbnVTZXRJdGVtcyddO1xuICBASW5wdXQoKSBiZWZvcmVDb250ZXh0TWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbnRleHRNZW51U2hvdyddO1xuICBASW5wdXQoKSBiZWZvcmVDb3B5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb3B5J107XG4gIEBJbnB1dCgpIGJlZm9yZUNyZWF0ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ3JlYXRlQ29sJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNyZWF0ZVJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ3JlYXRlUm93J107XG4gIEBJbnB1dCgpIGJlZm9yZUN1dDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ3V0J107XG4gIEBJbnB1dCgpIGJlZm9yZURldGFjaENoaWxkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVEZXRhY2hDaGlsZCddO1xuICBASW5wdXQoKSBiZWZvcmVEcmF3Qm9yZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlRHJhd0JvcmRlcnMnXTtcbiAgQElucHV0KCkgYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zJ107XG4gIEBJbnB1dCgpIGJlZm9yZURyb3Bkb3duTWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZURyb3Bkb3duTWVudVNob3cnXTtcbiAgQElucHV0KCkgYmVmb3JlRmlsdGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVGaWx0ZXInXTtcbiAgQElucHV0KCkgYmVmb3JlR2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUdldENlbGxNZXRhJ107XG4gIEBJbnB1dCgpIGJlZm9yZUhpZGVDb2x1bW5zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVIaWRlQ29sdW1ucyddO1xuICBASW5wdXQoKSBiZWZvcmVIaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlSGlkZVJvd3MnXTtcbiAgQElucHV0KCkgYmVmb3JlSW5pdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlSW5pdCddO1xuICBASW5wdXQoKSBiZWZvcmVJbml0V2Fsa29udGFibGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUluaXRXYWxrb250YWJsZSddO1xuICBASW5wdXQoKSBiZWZvcmVLZXlEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVLZXlEb3duJ107XG4gIEBJbnB1dCgpIGJlZm9yZUxhbmd1YWdlQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVMYW5ndWFnZUNoYW5nZSddO1xuICBASW5wdXQoKSBiZWZvcmVMb2FkRGF0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlTG9hZERhdGEnXTtcbiAgQElucHV0KCkgYmVmb3JlTWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlTWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBiZWZvcmVPbkNlbGxDb250ZXh0TWVudTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlT25DZWxsQ29udGV4dE1lbnUnXTtcbiAgQElucHV0KCkgYmVmb3JlT25DZWxsTW91c2VEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVPbkNlbGxNb3VzZURvd24nXTtcbiAgQElucHV0KCkgYmVmb3JlT25DZWxsTW91c2VPdXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZU9uQ2VsbE1vdXNlT3V0J107XG4gIEBJbnB1dCgpIGJlZm9yZU9uQ2VsbE1vdXNlT3ZlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlT25DZWxsTW91c2VPdmVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZU9uQ2VsbE1vdXNlVXA6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZU9uQ2VsbE1vdXNlVXAnXTtcbiAgQElucHV0KCkgYmVmb3JlUGFzdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVBhc3RlJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJlZG86IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlZG8nXTtcbiAgQElucHV0KCkgYmVmb3JlUmVkb1N0YWNrQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZWRvU3RhY2tDaGFuZ2UnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVmcmVzaERpbWVuc2lvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlZnJlc2hEaW1lbnNpb25zJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyddO1xuICBASW5wdXQoKSBiZWZvcmVSZW1vdmVDZWxsTWV0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlUmVtb3ZlQ2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVtb3ZlQ29sOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVDb2wnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVtb3ZlUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVSb3cnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVuZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW5kZXInXTtcbiAgQElucHV0KCkgYmVmb3JlUmVuZGVyZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlbmRlcmVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJvd01vdmU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJvd01vdmUnXTtcbiAgQElucHV0KCkgYmVmb3JlUm93UmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSb3dSZXNpemUnXTtcbiAgQElucHV0KCkgYmVmb3JlU2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVNldENlbGxNZXRhJ107XG4gIEBJbnB1dCgpIGJlZm9yZVNldFJhbmdlRW5kOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZUVuZCddO1xuICBASW5wdXQoKSBiZWZvcmVTZXRSYW5nZVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZVN0YXJ0J107XG4gIEBJbnB1dCgpIGJlZm9yZVNldFJhbmdlU3RhcnRPbmx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZVN0YXJ0T25seSddO1xuICBASW5wdXQoKSBiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGg6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aCddO1xuICBASW5wdXQoKSBiZWZvcmVUb3VjaFNjcm9sbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVG91Y2hTY3JvbGwnXTtcbiAgQElucHV0KCkgYmVmb3JlVHJpbVJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVHJpbVJvdyddO1xuICBASW5wdXQoKSBiZWZvcmVVbmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVVbmRvJ107XG4gIEBJbnB1dCgpIGJlZm9yZVVuZG9TdGFja0NoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVW5kb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGJlZm9yZVVuaGlkZUNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVuaGlkZUNvbHVtbnMnXTtcbiAgQElucHV0KCkgYmVmb3JlVW5oaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVW5oaWRlUm93cyddO1xuICBASW5wdXQoKSBiZWZvcmVVbm1lcmdlQ2VsbHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVubWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBiZWZvcmVVbnRyaW1Sb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVudHJpbVJvdyddO1xuICBASW5wdXQoKSBiZWZvcmVWYWxpZGF0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVmFsaWRhdGUnXTtcbiAgQElucHV0KCkgYmVmb3JlVmFsdWVSZW5kZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVZhbHVlUmVuZGVyJ107XG4gIEBJbnB1dCgpIGNvbnN0cnVjdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29uc3RydWN0J107XG4gIEBJbnB1dCgpIGluaXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2luaXQnXTtcbiAgQElucHV0KCkgbW9kaWZ5QXV0b0NvbHVtblNpemVTZWVkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQnXTtcbiAgQElucHV0KCkgbW9kaWZ5QXV0b2ZpbGxSYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5QXV0b2ZpbGxSYW5nZSddO1xuICBASW5wdXQoKSBtb2RpZnlDb2xIZWFkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeUNvbEhlYWRlciddO1xuICBASW5wdXQoKSBtb2RpZnlDb2x1bW5IZWFkZXJIZWlnaHQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeUNvbHVtbkhlYWRlckhlaWdodCddO1xuICBASW5wdXQoKSBtb2RpZnlDb2xXaWR0aDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Q29sV2lkdGgnXTtcbiAgQElucHV0KCkgbW9kaWZ5Q29weWFibGVSYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Q29weWFibGVSYW5nZSddO1xuICBASW5wdXQoKSBtb2RpZnlEYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlEYXRhJ107XG4gIEBJbnB1dCgpIG1vZGlmeUdldENlbGxDb29yZHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeUdldENlbGxDb29yZHMnXTtcbiAgQElucHV0KCkgbW9kaWZ5Um93RGF0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Um93RGF0YSddO1xuICBASW5wdXQoKSBtb2RpZnlSb3dIZWFkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeVJvd0hlYWRlciddO1xuICBASW5wdXQoKSBtb2RpZnlSb3dIZWFkZXJXaWR0aDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Um93SGVhZGVyV2lkdGgnXTtcbiAgQElucHV0KCkgbW9kaWZ5Um93SGVpZ2h0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlSb3dIZWlnaHQnXTtcbiAgQElucHV0KCkgbW9kaWZ5U291cmNlRGF0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5U291cmNlRGF0YSddO1xuICBASW5wdXQoKSBtb2RpZnlUcmFuc2Zvcm1FbmQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeVRyYW5zZm9ybUVuZCddO1xuICBASW5wdXQoKSBtb2RpZnlUcmFuc2Zvcm1TdGFydDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5VHJhbnNmb3JtU3RhcnQnXTtcbiAgQElucHV0KCkgcGVyc2lzdGVudFN0YXRlTG9hZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncGVyc2lzdGVudFN0YXRlTG9hZCddO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50U3RhdGVSZXNldDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncGVyc2lzdGVudFN0YXRlUmVzZXQnXTtcbiAgQElucHV0KCkgcGVyc2lzdGVudFN0YXRlU2F2ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncGVyc2lzdGVudFN0YXRlU2F2ZSddO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgX2hvdFRhYmxlUmVnaXN0ZXJlcjogSG90VGFibGVSZWdpc3RlcmVyLFxuICAgIHByaXZhdGUgX2hvdFNldHRpbmdzUmVzb2x2ZXI6IEhvdFNldHRpbmdzUmVzb2x2ZXIsXG4gICkge31cblxuICBwcml2YXRlIGdldCBob3RJbnN0YW5jZSgpOiBIYW5kc29udGFibGUgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuX19ob3RJbnN0YW5jZSB8fCAodGhpcy5fX2hvdEluc3RhbmNlICYmICF0aGlzLl9faG90SW5zdGFuY2UuaXNEZXN0cm95ZWQpKSB7XG5cbiAgICAgIC8vIFdpbGwgcmV0dXJuIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2Ugb3IgYG51bGxgIGlmIGl0J3Mgbm90IHlldCBiZWVuIGNyZWF0ZWQuXG4gICAgICByZXR1cm4gdGhpcy5fX2hvdEluc3RhbmNlO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2hvdFRhYmxlUmVnaXN0ZXJlci5yZW1vdmVJbnN0YW5jZSh0aGlzLmhvdElkKTtcblxuICAgICAgY29uc29sZS53YXJuKEhPVF9ERVNUUk9ZRURfV0FSTklORyk7XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0IGhvdEluc3RhbmNlKGhvdEluc3RhbmNlKSB7XG4gICAgdGhpcy5fX2hvdEluc3RhbmNlID0gaG90SW5zdGFuY2U7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyA9IHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh0aGlzKTtcblxuICAgIGlmICh0aGlzLmNvbHVtbnNDb21wb25lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSBbXTtcblxuICAgICAgdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29sdW1ucy5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyhjb2x1bW4pKTtcbiAgICAgIH0pO1xuXG4gICAgICBvcHRpb25zWydjb2x1bW5zJ10gPSBjb2x1bW5zO1xuICAgIH1cblxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLmhvdEluc3RhbmNlID0gbmV3IEhhbmRzb250YWJsZS5Db3JlKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xuXG4gICAgICBpZiAodGhpcy5ob3RJZCkge1xuICAgICAgICB0aGlzLl9ob3RUYWJsZVJlZ2lzdGVyZXIucmVnaXN0ZXJJbnN0YW5jZSh0aGlzLmhvdElkLCB0aGlzLmhvdEluc3RhbmNlKTtcbiAgICAgIH1cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMuaG90SW5zdGFuY2UuaW5pdCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhvdEluc3RhbmNlID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV3T3B0aW9uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyA9IHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIucHJlcGFyZUNoYW5nZXMoY2hhbmdlcyk7XG5cbiAgICB0aGlzLnVwZGF0ZUhvdFRhYmxlKG5ld09wdGlvbnMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmhvdEluc3RhbmNlKSB7XG4gICAgICAgIHRoaXMuaG90SW5zdGFuY2UuZGVzdHJveSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuaG90SWQpIHtcbiAgICAgIHRoaXMuX2hvdFRhYmxlUmVnaXN0ZXJlci5yZW1vdmVJbnN0YW5jZSh0aGlzLmhvdElkKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVIb3RUYWJsZShuZXdTZXR0aW5nczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaG90SW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5ob3RJbnN0YW5jZS51cGRhdGVTZXR0aW5ncyhuZXdTZXR0aW5ncywgZmFsc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgb25BZnRlckNvbHVtbnNDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29sdW1uc0NvbXBvbmVudHMgPT09IHZvaWQgMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbHVtbnNDb21wb25lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGNvbHVtbnM6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1tdID0gW107XG5cbiAgICAgIHRoaXMuY29sdW1uc0NvbXBvbmVudHMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGNvbHVtbnMucHVzaCh0aGlzLl9ob3RTZXR0aW5nc1Jlc29sdmVyLm1lcmdlU2V0dGluZ3MoY29sdW1uKSk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbmV3T3B0aW9ucyA9IHtcbiAgICAgICAgY29sdW1uczogY29sdW1uc1xuICAgICAgfTtcblxuICAgICAgdGhpcy51cGRhdGVIb3RUYWJsZShuZXdPcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBvbkFmdGVyQ29sdW1uc051bWJlckNoYW5nZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb2x1bW5zOiBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbXSA9IFtdO1xuXG4gICAgaWYgKHRoaXMuY29sdW1uc0NvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29sdW1ucy5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyhjb2x1bW4pKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlSG90VGFibGUoeyBjb2x1bW5zIH0pO1xuICB9XG5cbiAgYWRkQ29sdW1uKGNvbHVtbjogSG90Q29sdW1uQ29tcG9uZW50KTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5wdXNoKGNvbHVtbik7XG4gICAgdGhpcy5vbkFmdGVyQ29sdW1uc051bWJlckNoYW5nZSgpO1xuICB9XG5cbiAgcmVtb3ZlQ29sdW1uKGNvbHVtbjogSG90Q29sdW1uQ29tcG9uZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuY29sdW1uc0NvbXBvbmVudHMuaW5kZXhPZihjb2x1bW4pO1xuXG4gICAgdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMub25BZnRlckNvbHVtbnNOdW1iZXJDaGFuZ2UoKTtcbiAgfVxuXG59XG4iXX0=
|
|
1090
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoYW5kc29udGFibGUvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9ob3QtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUlOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxZQUFZLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDdEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQVN0RSxNQUFNLE9BQU8saUJBQWlCOzs7Ozs7SUEwUzVCLFlBQ1UsT0FBZSxFQUNmLG1CQUF1QyxFQUN2QyxvQkFBeUM7UUFGekMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQTFTM0Msa0JBQWEsR0FBaUIsSUFBSSxDQUFDO1FBQ25DLHNCQUFpQixHQUF5QixFQUFFLENBQUM7UUFHNUMsVUFBSyxHQUFHLEVBQUUsQ0FBQztJQXVTakIsQ0FBQzs7Ozs7SUFFSixJQUFZLFdBQVc7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUVsRixnRkFBZ0Y7WUFDaEYsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBRTNCO2FBQU07WUFDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwRCxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFx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LGdEQUErRTs7SUFDL0UsMENBQW1FOztJQUNuRSw0Q0FBdUU7O0lBQ3ZFLGlEQUFpRjs7SUFDakYsNENBQXVFOztJQUN2RSw2Q0FBeUU7O0lBQ3pFLCtDQUE2RTs7SUFDN0UsaURBQWlGOztJQUNqRixnREFBK0U7O0lBQy9FLGlEQUFpRjs7SUFDakYsZ0RBQStFOzs7OztJQUc3RSxvQ0FBdUI7Ozs7O0lBQ3ZCLGdEQUErQzs7Ozs7SUFDL0MsaURBQWlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgSGFuZHNvbnRhYmxlIGZyb20gJ2hhbmRzb250YWJsZS9iYXNlJztcbmltcG9ydCB7XG4gIEhvdFRhYmxlUmVnaXN0ZXJlcixcbiAgSE9UX0RFU1RST1lFRF9XQVJOSU5HXG59IGZyb20gJy4vaG90LXRhYmxlLXJlZ2lzdGVyZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIb3RTZXR0aW5nc1Jlc29sdmVyIH0gZnJvbSAnLi9ob3Qtc2V0dGluZ3MtcmVzb2x2ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIb3RDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2hvdC1jb2x1bW4uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaG90LXRhYmxlJyxcbiAgdGVtcGxhdGU6ICc8ZGl2ICNjb250YWluZXIgW2lkXT1cImhvdElkXCI+PC9kaXY+JyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbIEhvdFRhYmxlUmVnaXN0ZXJlciwgSG90U2V0dGluZ3NSZXNvbHZlciBdLFxufSlcbmV4cG9ydCBjbGFzcyBIb3RUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyBjb250YWluZXI7XG5cbiAgcHJpdmF0ZSBfX2hvdEluc3RhbmNlOiBIYW5kc29udGFibGUgPSBudWxsO1xuICBwcml2YXRlIGNvbHVtbnNDb21wb25lbnRzOiBIb3RDb2x1bW5Db21wb25lbnRbXSA9IFtdO1xuICAvLyBjb21wb25lbnQgaW5wdXRzXG4gIEBJbnB1dCgpIHNldHRpbmdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzO1xuICBASW5wdXQoKSBob3RJZCA9ICcnO1xuICAvLyBoYW5kc29udGFibGUgb3B0aW9uc1xuICBASW5wdXQoKSBhY3RpdmVIZWFkZXJDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FjdGl2ZUhlYWRlckNsYXNzTmFtZSddO1xuICBASW5wdXQoKSBhbGxvd0VtcHR5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0VtcHR5J107XG4gIEBJbnB1dCgpIGFsbG93SHRtbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWxsb3dIdG1sJ107XG4gIEBJbnB1dCgpIGFsbG93SW5zZXJ0Q29sdW1uOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0luc2VydENvbHVtbiddO1xuICBASW5wdXQoKSBhbGxvd0luc2VydFJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWxsb3dJbnNlcnRSb3cnXTtcbiAgQElucHV0KCkgYWxsb3dJbnZhbGlkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0ludmFsaWQnXTtcbiAgQElucHV0KCkgYWxsb3dSZW1vdmVDb2x1bW46IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FsbG93UmVtb3ZlQ29sdW1uJ107XG4gIEBJbnB1dCgpIGFsbG93UmVtb3ZlUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd1JlbW92ZVJvdyddO1xuICBASW5wdXQoKSBhdXRvQ29sdW1uU2l6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYXV0b0NvbHVtblNpemUnXTtcbiAgQElucHV0KCkgYXV0b1Jvd1NpemU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2F1dG9Sb3dTaXplJ107XG4gIEBJbnB1dCgpIGF1dG9XcmFwQ29sOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhdXRvV3JhcENvbCddO1xuICBASW5wdXQoKSBhdXRvV3JhcFJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYXV0b1dyYXBSb3cnXTtcbiAgQElucHV0KCkgYmluZFJvd3NXaXRoSGVhZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmluZFJvd3NXaXRoSGVhZGVycyddO1xuICBASW5wdXQoKSBjZWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjZWxsJ107XG4gIEBJbnB1dCgpIGNlbGxzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjZWxscyddO1xuICBASW5wdXQoKSBjaGVja2VkVGVtcGxhdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NoZWNrZWRUZW1wbGF0ZSddO1xuICBASW5wdXQoKSBjbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NsYXNzTmFtZSddO1xuICBASW5wdXQoKSBjb2xIZWFkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb2xIZWFkZXJzJ107XG4gIEBJbnB1dCgpIGNvbGxhcHNpYmxlQ29sdW1uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sbGFwc2libGVDb2x1bW5zJ107XG4gIEBJbnB1dCgpIGNvbHVtbkhlYWRlckhlaWdodDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sdW1uSGVhZGVySGVpZ2h0J107XG4gIEBJbnB1dCgpIGNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbHVtbnMnXTtcbiAgQElucHV0KCkgY29sdW1uU29ydGluZzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sdW1uU29ydGluZyddO1xuICBASW5wdXQoKSBjb2x1bW5TdW1tYXJ5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb2x1bW5TdW1tYXJ5J107XG4gIEBJbnB1dCgpIGNvbFdpZHRoczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sV2lkdGhzJ107XG4gIEBJbnB1dCgpIGNvbW1lbnRlZENlbGxDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbW1lbnRlZENlbGxDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgY29tbWVudHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbW1lbnRzJ107XG4gIEBJbnB1dCgpIGNvbnRleHRNZW51OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb250ZXh0TWVudSddO1xuICBASW5wdXQoKSBjb3B5YWJsZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29weWFibGUnXTtcbiAgQElucHV0KCkgY29weVBhc3RlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb3B5UGFzdGUnXTtcbiAgQElucHV0KCkgY29ycmVjdEZvcm1hdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29ycmVjdEZvcm1hdCddO1xuICBASW5wdXQoKSBjdXJyZW50Q29sQ2xhc3NOYW1lOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjdXJyZW50Q29sQ2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIGN1cnJlbnRIZWFkZXJDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2N1cnJlbnRIZWFkZXJDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgY3VycmVudFJvd0NsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY3VycmVudFJvd0NsYXNzTmFtZSddO1xuICBASW5wdXQoKSBjdXN0b21Cb3JkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjdXN0b21Cb3JkZXJzJ107XG4gIEBJbnB1dCgpIGRhdGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2RhdGEnXTtcbiAgQElucHV0KCkgZGF0YVNjaGVtYTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZGF0YVNjaGVtYSddO1xuICBASW5wdXQoKSBkYXRlRm9ybWF0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkYXRlRm9ybWF0J107XG4gIEBJbnB1dCgpIGRlZmF1bHREYXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkZWZhdWx0RGF0ZSddO1xuICBASW5wdXQoKSBkaXNhYmxlVmlzdWFsU2VsZWN0aW9uOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkaXNhYmxlVmlzdWFsU2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGRyYWdUb1Njcm9sbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZHJhZ1RvU2Nyb2xsJ107XG4gIEBJbnB1dCgpIGRyb3Bkb3duTWVudTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZHJvcGRvd25NZW51J107XG4gIEBJbnB1dCgpIGVkaXRvcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZWRpdG9yJ107XG4gIEBJbnB1dCgpIGVudGVyQmVnaW5zRWRpdGluZzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZW50ZXJCZWdpbnNFZGl0aW5nJ107XG4gIEBJbnB1dCgpIGVudGVyTW92ZXM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2VudGVyTW92ZXMnXTtcbiAgQElucHV0KCkgZmlsbEhhbmRsZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZmlsbEhhbmRsZSddO1xuICBASW5wdXQoKSBmaWx0ZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpbHRlciddO1xuICBASW5wdXQoKSBmaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydmaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlJ107XG4gIEBJbnB1dCgpIGZpbHRlcnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpbHRlcnMnXTtcbiAgQElucHV0KCkgZml4ZWRDb2x1bW5zTGVmdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZml4ZWRDb2x1bW5zTGVmdCddO1xuICBASW5wdXQoKSBmaXhlZFJvd3NCb3R0b206IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpeGVkUm93c0JvdHRvbSddO1xuICBASW5wdXQoKSBmaXhlZFJvd3NUb3A6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpeGVkUm93c1RvcCddO1xuICBASW5wdXQoKSBmb3JtdWxhczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZm9ybXVsYXMnXTtcbiAgQElucHV0KCkgZnJhZ21lbnRTZWxlY3Rpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZyYWdtZW50U2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGhlaWdodDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaGVpZ2h0J107XG4gIEBJbnB1dCgpIGhpZGRlbkNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2hpZGRlbkNvbHVtbnMnXTtcbiAgQElucHV0KCkgaGlkZGVuUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaGlkZGVuUm93cyddO1xuICBASW5wdXQoKSBpbnZhbGlkQ2VsbENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaW52YWxpZENlbGxDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgbGFiZWw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2xhYmVsJ107XG4gIEBJbnB1dCgpIGxhbmd1YWdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydsYW5ndWFnZSddO1xuICBASW5wdXQoKSBsaWNlbnNlS2V5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydsaWNlbnNlS2V5J107XG4gIEBJbnB1dCgpIG1hbnVhbENvbHVtbkZyZWV6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWFudWFsQ29sdW1uRnJlZXplJ107XG4gIEBJbnB1dCgpIG1hbnVhbENvbHVtbk1vdmU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21hbnVhbENvbHVtbk1vdmUnXTtcbiAgQElucHV0KCkgbWFudWFsQ29sdW1uUmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtYW51YWxDb2x1bW5SZXNpemUnXTtcbiAgQElucHV0KCkgbWFudWFsUm93TW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWFudWFsUm93TW92ZSddO1xuICBASW5wdXQoKSBtYW51YWxSb3dSZXNpemU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21hbnVhbFJvd1Jlc2l6ZSddO1xuICBASW5wdXQoKSBtYXhDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtYXhDb2xzJ107XG4gIEBJbnB1dCgpIG1heFJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21heFJvd3MnXTtcbiAgQElucHV0KCkgbWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBtaW5Db2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5Db2xzJ107XG4gIEBJbnB1dCgpIG1pblJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21pblJvd3MnXTtcbiAgQElucHV0KCkgbWluU3BhcmVDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5TcGFyZUNvbHMnXTtcbiAgQElucHV0KCkgbWluU3BhcmVSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5TcGFyZVJvd3MnXTtcbiAgQElucHV0KCkgbXVsdGlDb2x1bW5Tb3J0aW5nOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtdWx0aUNvbHVtblNvcnRpbmcnXTtcbiAgQElucHV0KCkgbmVzdGVkSGVhZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbmVzdGVkSGVhZGVycyddO1xuICBASW5wdXQoKSBuZXN0ZWRSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyduZXN0ZWRSb3dzJ107XG4gIEBJbnB1dCgpIG5vV29yZFdyYXBDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ25vV29yZFdyYXBDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgbnVtZXJpY0Zvcm1hdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbnVtZXJpY0Zvcm1hdCddO1xuICBASW5wdXQoKSBvYnNlcnZlRE9NVmlzaWJpbGl0eTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snb2JzZXJ2ZURPTVZpc2liaWxpdHknXTtcbiAgQElucHV0KCkgb3V0c2lkZUNsaWNrRGVzZWxlY3RzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydvdXRzaWRlQ2xpY2tEZXNlbGVjdHMnXTtcbiAgQElucHV0KCkgcGVyc2lzdGVudFN0YXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGUnXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3BsYWNlaG9sZGVyJ107XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyQ2VsbENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIHByZXZlbnRPdmVyZmxvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncHJldmVudE92ZXJmbG93J107XG4gIEBJbnB1dCgpIHByZXZlbnRXaGVlbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncHJldmVudFdoZWVsJ107XG4gIEBJbnB1dCgpIHJlYWRPbmx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyZWFkT25seSddO1xuICBASW5wdXQoKSByZWFkT25seUNlbGxDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3JlYWRPbmx5Q2VsbENsYXNzTmFtZSddO1xuICBASW5wdXQoKSByZW5kZXJBbGxSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyZW5kZXJBbGxSb3dzJ107XG4gIEBJbnB1dCgpIHJlbmRlcmVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyZW5kZXJlciddO1xuICBASW5wdXQoKSByb3dIZWFkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyb3dIZWFkZXJzJ107XG4gIEBJbnB1dCgpIHJvd0hlYWRlcldpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyb3dIZWFkZXJXaWR0aCddO1xuICBASW5wdXQoKSByb3dIZWlnaHRzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyb3dIZWlnaHRzJ107XG4gIEBJbnB1dCgpIHNlYXJjaDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc2VhcmNoJ107XG4gIEBJbnB1dCgpIHNlbGVjdGlvbk1vZGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3NlbGVjdGlvbk1vZGUnXTtcbiAgQElucHV0KCkgc2VsZWN0T3B0aW9uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc2VsZWN0T3B0aW9ucyddO1xuICBASW5wdXQoKSBza2lwQ29sdW1uT25QYXN0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc2tpcENvbHVtbk9uUGFzdGUnXTtcbiAgQElucHV0KCkgc2tpcFJvd09uUGFzdGU6IGFueTtcbiAgQElucHV0KCkgc29ydEJ5UmVsZXZhbmNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzb3J0QnlSZWxldmFuY2UnXTtcbiAgQElucHV0KCkgc291cmNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzb3VyY2UnXTtcbiAgQElucHV0KCkgc3RhcnRDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzdGFydENvbHMnXTtcbiAgQElucHV0KCkgc3RhcnRSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzdGFydFJvd3MnXTtcbiAgQElucHV0KCkgc3RyZXRjaEg6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3N0cmV0Y2hIJ107XG4gIEBJbnB1dCgpIHN0cmljdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc3RyaWN0J107XG4gIEBJbnB1dCgpIHRhYmxlQ2xhc3NOYW1lOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0YWJsZUNsYXNzTmFtZSddO1xuICBASW5wdXQoKSB0YWJNb3ZlczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndGFiTW92ZXMnXTtcbiAgQElucHV0KCkgdGl0bGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3RpdGxlJ107XG4gIEBJbnB1dCgpIHRyaW1Ecm9wZG93bjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndHJpbURyb3Bkb3duJ107XG4gIEBJbnB1dCgpIHRyaW1Sb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyduZXN0ZWRSb3dzJ107XG4gIEBJbnB1dCgpIHRyaW1XaGl0ZXNwYWNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0cmltV2hpdGVzcGFjZSddO1xuICBASW5wdXQoKSB0eXBlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0eXBlJ107XG4gIEBJbnB1dCgpIHVuY2hlY2tlZFRlbXBsYXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd1bmNoZWNrZWRUZW1wbGF0ZSddO1xuICBASW5wdXQoKSB1bmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd1bmRvJ107XG4gIEBJbnB1dCgpIHZhbGlkYXRvcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndmFsaWRhdG9yJ107XG4gIEBJbnB1dCgpIHZpZXdwb3J0Q29sdW1uUmVuZGVyaW5nT2Zmc2V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd2aWV3cG9ydENvbHVtblJlbmRlcmluZ09mZnNldCddO1xuICBASW5wdXQoKSB2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQnXTtcbiAgQElucHV0KCkgdmlzaWJsZVJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3Zpc2libGVSb3dzJ107XG4gIEBJbnB1dCgpIHdpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd3aWR0aCddO1xuICBASW5wdXQoKSB3b3JkV3JhcDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snd29yZFdyYXAnXTtcblxuICAvLyBoYW5kc29udGFibGUgaG9va3NcbiAgQElucHV0KCkgYWZ0ZXJBZGRDaGlsZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJBZGRDaGlsZCddO1xuICBASW5wdXQoKSBhZnRlckF1dG9maWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckF1dG9maWxsJ107XG4gIEBJbnB1dCgpIGFmdGVyQmVnaW5FZGl0aW5nOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckJlZ2luRWRpdGluZyddO1xuICBASW5wdXQoKSBhZnRlckNlbGxNZXRhUmVzZXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ2VsbE1ldGFSZXNldCddO1xuICBASW5wdXQoKSBhZnRlckNoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDaGFuZ2UnXTtcbiAgQElucHV0KCkgYWZ0ZXJDaGFuZ2VzT2JzZXJ2ZWQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ2hhbmdlc09ic2VydmVkJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uQ29sbGFwc2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uQ29sbGFwc2UnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb2x1bW5FeHBhbmQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uRXhwYW5kJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uTW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb2x1bW5Nb3ZlJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uUmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvbHVtblJlc2l6ZSddO1xuICBASW5wdXQoKSBhZnRlckNvbHVtblNvcnQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uU29ydCddO1xuICBASW5wdXQoKSBhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyddO1xuICBASW5wdXQoKSBhZnRlckNvbnRleHRNZW51SGlkZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb250ZXh0TWVudUhpZGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb250ZXh0TWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29udGV4dE1lbnVTaG93J107XG4gIEBJbnB1dCgpIGFmdGVyQ29weTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb3B5J107XG4gIEBJbnB1dCgpIGFmdGVyQ29weUxpbWl0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvcHlMaW1pdCddO1xuICBASW5wdXQoKSBhZnRlckNyZWF0ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDcmVhdGVDb2wnXTtcbiAgQElucHV0KCkgYWZ0ZXJDcmVhdGVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ3JlYXRlUm93J107XG4gIEBJbnB1dCgpIGFmdGVyQ3V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckN1dCddO1xuICBASW5wdXQoKSBhZnRlckRlc2VsZWN0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRlc2VsZWN0J107XG4gIEBJbnB1dCgpIGFmdGVyRGVzdHJveTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJEZXN0cm95J107XG4gIEBJbnB1dCgpIGFmdGVyRGV0YWNoQ2hpbGQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRGV0YWNoQ2hpbGQnXTtcbiAgQElucHV0KCkgYWZ0ZXJEb2N1bWVudEtleURvd246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRG9jdW1lbnRLZXlEb3duJ107XG4gIEBJbnB1dCgpIGFmdGVyRHJhd1NlbGVjdGlvbjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJEcmF3U2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJEcm9wZG93bk1lbnVIaWRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRyb3Bkb3duTWVudUhpZGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJEcm9wZG93bk1lbnVTaG93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRyb3Bkb3duTWVudVNob3cnXTtcbiAgQElucHV0KCkgYWZ0ZXJGaWx0ZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRmlsdGVyJ107XG4gIEBJbnB1dCgpIGFmdGVyR2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Q2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYWZ0ZXJHZXRDb2xIZWFkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Q29sSGVhZGVyJ107XG4gIEBJbnB1dCgpIGFmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVycyddO1xuICBASW5wdXQoKSBhZnRlckdldFJvd0hlYWRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJHZXRSb3dIZWFkZXInXTtcbiAgQElucHV0KCkgYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Um93SGVhZGVyUmVuZGVyZXJzJ107XG4gIEBJbnB1dCgpIGFmdGVySGlkZUNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVySGlkZUNvbHVtbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJIaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJIaWRlUm93cyddO1xuICBASW5wdXQoKSBhZnRlckluaXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVySW5pdCddO1xuICBASW5wdXQoKSBhZnRlckxhbmd1YWdlQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckxhbmd1YWdlQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyTGlzdGVuOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckxpc3RlbiddO1xuICBASW5wdXQoKSBhZnRlckxvYWREYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckxvYWREYXRhJ107XG4gIEBJbnB1dCgpIGFmdGVyTWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJNZXJnZUNlbGxzJ107XG4gIEBJbnB1dCgpIGFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck1vZGlmeVRyYW5zZm9ybUVuZCddO1xuICBASW5wdXQoKSBhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0J107XG4gIEBJbnB1dCgpIGFmdGVyTW9tZW50dW1TY3JvbGw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyTW9tZW50dW1TY3JvbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxDb250ZXh0TWVudTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxDb250ZXh0TWVudSddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbENvcm5lckRibENsaWNrOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbENvcm5lckRibENsaWNrJ107XG4gIEBJbnB1dCgpIGFmdGVyT25DZWxsQ29ybmVyTW91c2VEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93biddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbE1vdXNlRG93bjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZURvd24nXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxNb3VzZU91dDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZU91dCddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbE1vdXNlT3ZlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZU92ZXInXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxNb3VzZVVwOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbE1vdXNlVXAnXTtcbiAgQElucHV0KCkgYWZ0ZXJQYXN0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJQYXN0ZSddO1xuICBASW5wdXQoKSBhZnRlclBsdWdpbnNJbml0aWFsaXplZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZWRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlZG8nXTtcbiAgQElucHV0KCkgYWZ0ZXJSZWRvU3RhY2tDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVkb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyUmVmcmVzaERpbWVuc2lvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVmcmVzaERpbWVuc2lvbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZW1vdmVDZWxsTWV0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSZW1vdmVDZWxsTWV0YSddO1xuICBASW5wdXQoKSBhZnRlclJlbW92ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSZW1vdmVDb2wnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZW1vdmVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVtb3ZlUm93J107XG4gIEBJbnB1dCgpIGFmdGVyUmVuZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlbmRlciddO1xuICBASW5wdXQoKSBhZnRlclJlbmRlcmVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlbmRlcmVyJ107XG4gIEBJbnB1dCgpIGFmdGVyUm93TW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSb3dNb3ZlJ107XG4gIEBJbnB1dCgpIGFmdGVyUm93UmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJvd1Jlc2l6ZSddO1xuICBASW5wdXQoKSBhZnRlclNjcm9sbEhvcml6b250YWxseTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHknXTtcbiAgQElucHV0KCkgYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNjcm9sbFZlcnRpY2FsbHknXTtcbiAgQElucHV0KCkgYWZ0ZXJTZWxlY3Rpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGFmdGVyU2VsZWN0aW9uQnlQcm9wOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNlbGVjdGlvbkJ5UHJvcCddO1xuICBASW5wdXQoKSBhZnRlclNlbGVjdGlvbkVuZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJTZWxlY3Rpb25FbmQnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3A6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2VsZWN0aW9uRW5kQnlQcm9wJ107XG4gIEBJbnB1dCgpIGFmdGVyU2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2V0Q2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXREYXRhQXRDZWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNldERhdGFBdENlbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXREYXRhQXRSb3dQcm9wOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNldERhdGFBdFJvd1Byb3AnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNldFNvdXJjZURhdGFBdENlbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJUcmltUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclRyaW1Sb3cnXTtcbiAgQElucHV0KCkgYWZ0ZXJVbmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVuZG8nXTtcbiAgQElucHV0KCkgYWZ0ZXJVbmRvU3RhY2tDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5kb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5oaWRlQ29sdW1uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJVbmhpZGVDb2x1bW5zJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5oaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJVbmhpZGVSb3dzJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5saXN0ZW46IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5saXN0ZW4nXTtcbiAgQElucHV0KCkgYWZ0ZXJVbm1lcmdlQ2VsbHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5tZXJnZUNlbGxzJ107XG4gIEBJbnB1dCgpIGFmdGVyVW50cmltUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVudHJpbVJvdyddO1xuICBASW5wdXQoKSBhZnRlclVwZGF0ZVNldHRpbmdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVwZGF0ZVNldHRpbmdzJ107XG4gIEBJbnB1dCgpIGFmdGVyVmFsaWRhdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVmFsaWRhdGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSddO1xuICBASW5wdXQoKSBhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlJ107XG4gIEBJbnB1dCgpIGFmdGVyVmlld1JlbmRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJWaWV3UmVuZGVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZUFkZENoaWxkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVBZGRDaGlsZCddO1xuICBASW5wdXQoKSBiZWZvcmVBdXRvZmlsbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQXV0b2ZpbGwnXTtcbiAgQElucHV0KCkgYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZSddO1xuICBASW5wdXQoKSBiZWZvcmVDZWxsQWxpZ25tZW50OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDZWxsQWxpZ25tZW50J107XG4gIEBJbnB1dCgpIGJlZm9yZUNoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNoYW5nZVJlbmRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ2hhbmdlUmVuZGVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtbkNvbGxhcHNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb2x1bW5Db2xsYXBzZSddO1xuICBASW5wdXQoKSBiZWZvcmVDb2x1bW5FeHBhbmQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbHVtbkV4cGFuZCddO1xuICBASW5wdXQoKSBiZWZvcmVDb2x1bW5Nb3ZlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb2x1bW5Nb3ZlJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtblJlc2l6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ29sdW1uUmVzaXplJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtblNvcnQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbHVtblNvcnQnXTtcbiAgQElucHV0KCkgYmVmb3JlQ29udGV4dE1lbnVTZXRJdGVtczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ29udGV4dE1lbnVTZXRJdGVtcyddO1xuICBASW5wdXQoKSBiZWZvcmVDb250ZXh0TWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbnRleHRNZW51U2hvdyddO1xuICBASW5wdXQoKSBiZWZvcmVDb3B5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb3B5J107XG4gIEBJbnB1dCgpIGJlZm9yZUNyZWF0ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ3JlYXRlQ29sJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNyZWF0ZVJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ3JlYXRlUm93J107XG4gIEBJbnB1dCgpIGJlZm9yZUN1dDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ3V0J107XG4gIEBJbnB1dCgpIGJlZm9yZURldGFjaENoaWxkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVEZXRhY2hDaGlsZCddO1xuICBASW5wdXQoKSBiZWZvcmVEcmF3Qm9yZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlRHJhd0JvcmRlcnMnXTtcbiAgQElucHV0KCkgYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zJ107XG4gIEBJbnB1dCgpIGJlZm9yZURyb3Bkb3duTWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZURyb3Bkb3duTWVudVNob3cnXTtcbiAgQElucHV0KCkgYmVmb3JlRmlsdGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVGaWx0ZXInXTtcbiAgQElucHV0KCkgYmVmb3JlR2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUdldENlbGxNZXRhJ107XG4gIEBJbnB1dCgpIGJlZm9yZUhpZGVDb2x1bW5zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVIaWRlQ29sdW1ucyddO1xuICBASW5wdXQoKSBiZWZvcmVIaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlSGlkZVJvd3MnXTtcbiAgQElucHV0KCkgYmVmb3JlSW5pdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlSW5pdCddO1xuICBASW5wdXQoKSBiZWZvcmVJbml0V2Fsa29udGFibGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUluaXRXYWxrb250YWJsZSddO1xuICBASW5wdXQoKSBiZWZvcmVLZXlEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVLZXlEb3duJ107XG4gIEBJbnB1dCgpIGJlZm9yZUxhbmd1YWdlQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVMYW5ndWFnZUNoYW5nZSddO1xuICBASW5wdXQoKSBiZWZvcmVMb2FkRGF0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlTG9hZERhdGEnXTtcbiAgQElucHV0KCkgYmVmb3JlTWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlTWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBiZWZvcmVPbkNlbGxDb250ZXh0TWVudTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlT25DZWxsQ29udGV4dE1lbnUnXTtcbiAgQElucHV0KCkgYmVmb3JlT25DZWxsTW91c2VEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVPbkNlbGxNb3VzZURvd24nXTtcbiAgQElucHV0KCkgYmVmb3JlT25DZWxsTW91c2VPdXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZU9uQ2VsbE1vdXNlT3V0J107XG4gIEBJbnB1dCgpIGJlZm9yZU9uQ2VsbE1vdXNlT3ZlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlT25DZWxsTW91c2VPdmVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZU9uQ2VsbE1vdXNlVXA6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZU9uQ2VsbE1vdXNlVXAnXTtcbiAgQElucHV0KCkgYmVmb3JlUGFzdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVBhc3RlJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJlZG86IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlZG8nXTtcbiAgQElucHV0KCkgYmVmb3JlUmVkb1N0YWNrQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZWRvU3RhY2tDaGFuZ2UnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVmcmVzaERpbWVuc2lvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlZnJlc2hEaW1lbnNpb25zJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyddO1xuICBASW5wdXQoKSBiZWZvcmVSZW1vdmVDZWxsTWV0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlUmVtb3ZlQ2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVtb3ZlQ29sOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVDb2wnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVtb3ZlUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVSb3cnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVuZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW5kZXInXTtcbiAgQElucHV0KCkgYmVmb3JlUmVuZGVyZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlbmRlcmVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJvd01vdmU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJvd01vdmUnXTtcbiAgQElucHV0KCkgYmVmb3JlUm93UmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSb3dSZXNpemUnXTtcbiAgQElucHV0KCkgYmVmb3JlU2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVNldENlbGxNZXRhJ107XG4gIEBJbnB1dCgpIGJlZm9yZVNldFJhbmdlRW5kOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZUVuZCddO1xuICBASW5wdXQoKSBiZWZvcmVTZXRSYW5nZVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZVN0YXJ0J107XG4gIEBJbnB1dCgpIGJlZm9yZVNldFJhbmdlU3RhcnRPbmx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZVN0YXJ0T25seSddO1xuICBASW5wdXQoKSBiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGg6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aCddO1xuICBASW5wdXQoKSBiZWZvcmVUb3VjaFNjcm9sbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVG91Y2hTY3JvbGwnXTtcbiAgQElucHV0KCkgYmVmb3JlVHJpbVJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVHJpbVJvdyddO1xuICBASW5wdXQoKSBiZWZvcmVVbmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVVbmRvJ107XG4gIEBJbnB1dCgpIGJlZm9yZVVuZG9TdGFja0NoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVW5kb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGJlZm9yZVVuaGlkZUNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVuaGlkZUNvbHVtbnMnXTtcbiAgQElucHV0KCkgYmVmb3JlVW5oaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVW5oaWRlUm93cyddO1xuICBASW5wdXQoKSBiZWZvcmVVbm1lcmdlQ2VsbHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVubWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBiZWZvcmVVbnRyaW1Sb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVudHJpbVJvdyddO1xuICBASW5wdXQoKSBiZWZvcmVWYWxpZGF0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVmFsaWRhdGUnXTtcbiAgQElucHV0KCkgYmVmb3JlVmFsdWVSZW5kZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVZhbHVlUmVuZGVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZVZpZXdSZW5kZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVZpZXdSZW5kZXInXTtcbiAgQElucHV0KCkgY29uc3RydWN0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb25zdHJ1Y3QnXTtcbiAgQElucHV0KCkgaW5pdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaW5pdCddO1xuICBASW5wdXQoKSBtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeUF1dG9Db2x1bW5TaXplU2VlZCddO1xuICBASW5wdXQoKSBtb2RpZnlBdXRvZmlsbFJhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlBdXRvZmlsbFJhbmdlJ107XG4gIEBJbnB1dCgpIG1vZGlmeUNvbEhlYWRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Q29sSGVhZGVyJ107XG4gIEBJbnB1dCgpIG1vZGlmeUNvbHVtbkhlYWRlckhlaWdodDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Q29sdW1uSGVhZGVySGVpZ2h0J107XG4gIEBJbnB1dCgpIG1vZGlmeUNvbFdpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlDb2xXaWR0aCddO1xuICBASW5wdXQoKSBtb2RpZnlDb3B5YWJsZVJhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlDb3B5YWJsZVJhbmdlJ107XG4gIEBJbnB1dCgpIG1vZGlmeURhdGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeURhdGEnXTtcbiAgQElucHV0KCkgbW9kaWZ5R2V0Q2VsbENvb3JkczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5R2V0Q2VsbENvb3JkcyddO1xuICBASW5wdXQoKSBtb2RpZnlSb3dEYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlSb3dEYXRhJ107XG4gIEBJbnB1dCgpIG1vZGlmeVJvd0hlYWRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Um93SGVhZGVyJ107XG4gIEBJbnB1dCgpIG1vZGlmeVJvd0hlYWRlcldpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlSb3dIZWFkZXJXaWR0aCddO1xuICBASW5wdXQoKSBtb2RpZnlSb3dIZWlnaHQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeVJvd0hlaWdodCddO1xuICBASW5wdXQoKSBtb2RpZnlTb3VyY2VEYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlTb3VyY2VEYXRhJ107XG4gIEBJbnB1dCgpIG1vZGlmeVRyYW5zZm9ybUVuZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5VHJhbnNmb3JtRW5kJ107XG4gIEBJbnB1dCgpIG1vZGlmeVRyYW5zZm9ybVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlUcmFuc2Zvcm1TdGFydCddO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50U3RhdGVMb2FkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGVMb2FkJ107XG4gIEBJbnB1dCgpIHBlcnNpc3RlbnRTdGF0ZVJlc2V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGVSZXNldCddO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50U3RhdGVTYXZlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGVTYXZlJ107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBfaG90VGFibGVSZWdpc3RlcmVyOiBIb3RUYWJsZVJlZ2lzdGVyZXIsXG4gICAgcHJpdmF0ZSBfaG90U2V0dGluZ3NSZXNvbHZlcjogSG90U2V0dGluZ3NSZXNvbHZlcixcbiAgKSB7fVxuXG4gIHByaXZhdGUgZ2V0IGhvdEluc3RhbmNlKCk6IEhhbmRzb250YWJsZSB8IG51bGwge1xuICAgIGlmICghdGhpcy5fX2hvdEluc3RhbmNlIHx8ICh0aGlzLl9faG90SW5zdGFuY2UgJiYgIXRoaXMuX19ob3RJbnN0YW5jZS5pc0Rlc3Ryb3llZCkpIHtcblxuICAgICAgLy8gV2lsbCByZXR1cm4gdGhlIEhhbmRzb250YWJsZSBpbnN0YW5jZSBvciBgbnVsbGAgaWYgaXQncyBub3QgeWV0IGJlZW4gY3JlYXRlZC5cbiAgICAgIHJldHVybiB0aGlzLl9faG90SW5zdGFuY2U7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlbW92ZUluc3RhbmNlKHRoaXMuaG90SWQpO1xuXG4gICAgICBjb25zb2xlLndhcm4oSE9UX0RFU1RST1lFRF9XQVJOSU5HKTtcblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXQgaG90SW5zdGFuY2UoaG90SW5zdGFuY2UpIHtcbiAgICB0aGlzLl9faG90SW5zdGFuY2UgPSBob3RJbnN0YW5jZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzID0gdGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5tZXJnZVNldHRpbmdzKHRoaXMpO1xuXG4gICAgaWYgKHRoaXMuY29sdW1uc0NvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29sdW1ucyA9IFtdO1xuXG4gICAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb2x1bW5zLnB1c2godGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5tZXJnZVNldHRpbmdzKGNvbHVtbikpO1xuICAgICAgfSk7XG5cbiAgICAgIG9wdGlvbnNbJ2NvbHVtbnMnXSA9IGNvbHVtbnM7XG4gICAgfVxuXG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuaG90SW5zdGFuY2UgPSBuZXcgSGFuZHNvbnRhYmxlLkNvcmUodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgICAgIGlmICh0aGlzLmhvdElkKSB7XG4gICAgICAgIHRoaXMuX2hvdFRhYmxlUmVnaXN0ZXJlci5yZWdpc3Rlckluc3RhbmNlKHRoaXMuaG90SWQsIHRoaXMuaG90SW5zdGFuY2UpO1xuICAgICAgfVxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5ob3RJbnN0YW5jZS5pbml0KCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaG90SW5zdGFuY2UgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdPcHRpb25zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzID0gdGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5wcmVwYXJlQ2hhbmdlcyhjaGFuZ2VzKTtcblxuICAgIHRoaXMudXBkYXRlSG90VGFibGUobmV3T3B0aW9ucyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaG90SW5zdGFuY2UpIHtcbiAgICAgICAgdGhpcy5ob3RJbnN0YW5jZS5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5ob3RJZCkge1xuICAgICAgdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlbW92ZUluc3RhbmNlKHRoaXMuaG90SWQpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUhvdFRhYmxlKG5ld1NldHRpbmdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5ob3RJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLmhvdEluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKG5ld1NldHRpbmdzLCBmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICBvbkFmdGVyQ29sdW1uc0NoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2x1bW5zQ29tcG9uZW50cyA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29sdW1uc0NvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29sdW1uczogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzW10gPSBbXTtcblxuICAgICAgdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29sdW1ucy5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyhjb2x1bW4pKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBuZXdPcHRpb25zID0ge1xuICAgICAgICBjb2x1bW5zOiBjb2x1bW5zXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnVwZGF0ZUhvdFRhYmxlKG5ld09wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIG9uQWZ0ZXJDb2x1bW5zTnVtYmVyQ2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbHVtbnM6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1tdID0gW107XG5cbiAgICBpZiAodGhpcy5jb2x1bW5zQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb2x1bW5zLnB1c2godGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5tZXJnZVNldHRpbmdzKGNvbHVtbikpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVIb3RUYWJsZSh7IGNvbHVtbnMgfSk7XG4gIH1cblxuICBhZGRDb2x1bW4oY29sdW1uOiBIb3RDb2x1bW5Db21wb25lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLnB1c2goY29sdW1uKTtcbiAgICB0aGlzLm9uQWZ0ZXJDb2x1bW5zTnVtYmVyQ2hhbmdlKCk7XG4gIH1cblxuICByZW1vdmVDb2x1bW4oY29sdW1uOiBIb3RDb2x1bW5Db21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5pbmRleE9mKGNvbHVtbik7XG5cbiAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5vbkFmdGVyQ29sdW1uc051bWJlckNoYW5nZSgpO1xuICB9XG5cbn1cbiJdfQ==
|