ag-grid-angular.component.js 140 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966
  1. import { __decorate, __metadata } from "tslib";
  2. import { AfterViewInit, Component, ComponentFactoryResolver, ContentChildren, ElementRef, EventEmitter, Input, Output, QueryList, ViewContainerRef, ViewEncapsulation } from "@angular/core";
  3. import { ComponentUtil, Events, Grid, GridOptionsWrapper, Promise, _ } from "ag-grid-community";
  4. import { AngularFrameworkOverrides } from "./angularFrameworkOverrides";
  5. import { AngularFrameworkComponentWrapper } from "./angularFrameworkComponentWrapper";
  6. import { AgGridColumn } from "./ag-grid-column.component";
  7. let AgGridAngular = class AgGridAngular {
  8. constructor(elementDef, viewContainerRef, angularFrameworkOverrides, frameworkComponentWrapper, _componentFactoryResolver) {
  9. this.viewContainerRef = viewContainerRef;
  10. this.angularFrameworkOverrides = angularFrameworkOverrides;
  11. this.frameworkComponentWrapper = frameworkComponentWrapper;
  12. this._componentFactoryResolver = _componentFactoryResolver;
  13. this._initialised = false;
  14. this._destroyed = false;
  15. // in order to ensure firing of gridReady is deterministic
  16. this._fullyReady = Promise.resolve(true);
  17. // @START@
  18. this.slaveGrids = undefined;
  19. this.alignedGrids = undefined;
  20. this.rowData = undefined;
  21. this.columnDefs = undefined;
  22. this.excelStyles = undefined;
  23. this.pinnedTopRowData = undefined;
  24. this.pinnedBottomRowData = undefined;
  25. this.components = undefined;
  26. this.frameworkComponents = undefined;
  27. this.rowStyle = undefined;
  28. this.context = undefined;
  29. this.autoGroupColumnDef = undefined;
  30. this.groupColumnDef = undefined;
  31. this.localeText = undefined;
  32. this.icons = undefined;
  33. this.datasource = undefined;
  34. this.serverSideDatasource = undefined;
  35. this.viewportDatasource = undefined;
  36. this.groupRowRendererParams = undefined;
  37. this.aggFuncs = undefined;
  38. this.fullWidthCellRendererParams = undefined;
  39. this.defaultColGroupDef = undefined;
  40. this.defaultColDef = undefined;
  41. this.defaultExportParams = undefined;
  42. this.columnTypes = undefined;
  43. this.rowClassRules = undefined;
  44. this.detailGridOptions = undefined;
  45. this.detailCellRendererParams = undefined;
  46. this.loadingCellRendererParams = undefined;
  47. this.loadingOverlayComponentParams = undefined;
  48. this.noRowsOverlayComponentParams = undefined;
  49. this.popupParent = undefined;
  50. this.colResizeDefault = undefined;
  51. this.reduxStore = undefined;
  52. this.statusBar = undefined;
  53. this.sideBar = undefined;
  54. this.sortingOrder = undefined;
  55. this.rowClass = undefined;
  56. this.rowSelection = undefined;
  57. this.overlayLoadingTemplate = undefined;
  58. this.overlayNoRowsTemplate = undefined;
  59. this.quickFilterText = undefined;
  60. this.rowModelType = undefined;
  61. this.editType = undefined;
  62. this.domLayout = undefined;
  63. this.clipboardDeliminator = undefined;
  64. this.rowGroupPanelShow = undefined;
  65. this.multiSortKey = undefined;
  66. this.pivotColumnGroupTotals = undefined;
  67. this.pivotRowTotals = undefined;
  68. this.pivotPanelShow = undefined;
  69. this.rowHeight = undefined;
  70. this.detailRowHeight = undefined;
  71. this.rowBuffer = undefined;
  72. this.colWidth = undefined;
  73. this.headerHeight = undefined;
  74. this.groupHeaderHeight = undefined;
  75. this.floatingFiltersHeight = undefined;
  76. this.pivotHeaderHeight = undefined;
  77. this.pivotGroupHeaderHeight = undefined;
  78. this.groupDefaultExpanded = undefined;
  79. this.minColWidth = undefined;
  80. this.maxColWidth = undefined;
  81. this.viewportRowModelPageSize = undefined;
  82. this.viewportRowModelBufferSize = undefined;
  83. this.autoSizePadding = undefined;
  84. this.maxBlocksInCache = undefined;
  85. this.maxConcurrentDatasourceRequests = undefined;
  86. this.tooltipShowDelay = undefined;
  87. this.cacheOverflowSize = undefined;
  88. this.paginationPageSize = undefined;
  89. this.cacheBlockSize = undefined;
  90. this.infiniteInitialRowCount = undefined;
  91. this.scrollbarWidth = undefined;
  92. this.paginationStartPage = undefined;
  93. this.infiniteBlockSize = undefined;
  94. this.batchUpdateWaitMillis = undefined;
  95. this.asyncTransactionWaitMillis = undefined;
  96. this.blockLoadDebounceMillis = undefined;
  97. this.keepDetailRowsCount = undefined;
  98. this.undoRedoCellEditingLimit = undefined;
  99. this.cellFlashDelay = undefined;
  100. this.cellFadeDelay = undefined;
  101. this.localeTextFunc = undefined;
  102. this.groupRowInnerRenderer = undefined;
  103. this.groupRowInnerRendererFramework = undefined;
  104. this.dateComponent = undefined;
  105. this.dateComponentFramework = undefined;
  106. this.groupRowRenderer = undefined;
  107. this.groupRowRendererFramework = undefined;
  108. this.isExternalFilterPresent = undefined;
  109. this.getRowHeight = undefined;
  110. this.doesExternalFilterPass = undefined;
  111. this.getRowClass = undefined;
  112. this.getRowStyle = undefined;
  113. this.getRowClassRules = undefined;
  114. this.traverseNode = undefined;
  115. this.getContextMenuItems = undefined;
  116. this.getMainMenuItems = undefined;
  117. this.processRowPostCreate = undefined;
  118. this.processCellForClipboard = undefined;
  119. this.getNodeChildDetails = undefined;
  120. this.groupRowAggNodes = undefined;
  121. this.getRowNodeId = undefined;
  122. this.isFullWidthCell = undefined;
  123. this.fullWidthCellRenderer = undefined;
  124. this.fullWidthCellRendererFramework = undefined;
  125. this.doesDataFlower = undefined;
  126. this.processSecondaryColDef = undefined;
  127. this.processSecondaryColGroupDef = undefined;
  128. this.getBusinessKeyForNode = undefined;
  129. this.sendToClipboard = undefined;
  130. this.navigateToNextCell = undefined;
  131. this.tabToNextCell = undefined;
  132. this.getDetailRowData = undefined;
  133. this.processCellFromClipboard = undefined;
  134. this.getDocument = undefined;
  135. this.postProcessPopup = undefined;
  136. this.getChildCount = undefined;
  137. this.getDataPath = undefined;
  138. this.loadingCellRenderer = undefined;
  139. this.loadingCellRendererFramework = undefined;
  140. this.loadingOverlayComponent = undefined;
  141. this.loadingOverlayComponentFramework = undefined;
  142. this.noRowsOverlayComponent = undefined;
  143. this.noRowsOverlayComponentFramework = undefined;
  144. this.detailCellRenderer = undefined;
  145. this.detailCellRendererFramework = undefined;
  146. this.defaultGroupSortComparator = undefined;
  147. this.isRowMaster = undefined;
  148. this.isRowSelectable = undefined;
  149. this.postSort = undefined;
  150. this.processHeaderForClipboard = undefined;
  151. this.paginationNumberFormatter = undefined;
  152. this.processDataFromClipboard = undefined;
  153. this.getServerSideGroupKey = undefined;
  154. this.isServerSideGroup = undefined;
  155. this.suppressKeyboardEvent = undefined;
  156. this.createChartContainer = undefined;
  157. this.processChartOptions = undefined;
  158. this.getChartToolbarItems = undefined;
  159. this.fillOperation = undefined;
  160. this.toolPanelSuppressRowGroups = undefined;
  161. this.toolPanelSuppressValues = undefined;
  162. this.toolPanelSuppressPivots = undefined;
  163. this.toolPanelSuppressPivotMode = undefined;
  164. this.toolPanelSuppressSideButtons = undefined;
  165. this.toolPanelSuppressColumnFilter = undefined;
  166. this.toolPanelSuppressColumnSelectAll = undefined;
  167. this.toolPanelSuppressColumnExpandAll = undefined;
  168. this.suppressMakeColumnVisibleAfterUnGroup = undefined;
  169. this.suppressRowClickSelection = undefined;
  170. this.suppressCellSelection = undefined;
  171. this.suppressHorizontalScroll = undefined;
  172. this.alwaysShowVerticalScroll = undefined;
  173. this.debug = undefined;
  174. this.enableBrowserTooltips = undefined;
  175. this.enableColResize = undefined;
  176. this.enableCellExpressions = undefined;
  177. this.enableSorting = undefined;
  178. this.enableServerSideSorting = undefined;
  179. this.enableFilter = undefined;
  180. this.enableServerSideFilter = undefined;
  181. this.angularCompileRows = undefined;
  182. this.angularCompileFilters = undefined;
  183. this.angularCompileHeaders = undefined;
  184. this.groupSuppressAutoColumn = undefined;
  185. this.groupSelectsChildren = undefined;
  186. this.groupIncludeFooter = undefined;
  187. this.groupIncludeTotalFooter = undefined;
  188. this.groupUseEntireRow = undefined;
  189. this.groupSuppressRow = undefined;
  190. this.groupSuppressBlankHeader = undefined;
  191. this.forPrint = undefined;
  192. this.suppressMenuHide = undefined;
  193. this.rowDeselection = undefined;
  194. this.unSortIcon = undefined;
  195. this.suppressMultiSort = undefined;
  196. this.singleClickEdit = undefined;
  197. this.suppressLoadingOverlay = undefined;
  198. this.suppressNoRowsOverlay = undefined;
  199. this.suppressAutoSize = undefined;
  200. this.skipHeaderOnAutoSize = undefined;
  201. this.suppressParentsInRowNodes = undefined;
  202. this.showToolPanel = undefined;
  203. this.suppressColumnMoveAnimation = undefined;
  204. this.suppressMovableColumns = undefined;
  205. this.suppressFieldDotNotation = undefined;
  206. this.enableRangeSelection = undefined;
  207. this.enableRangeHandle = undefined;
  208. this.enableFillHandle = undefined;
  209. this.suppressClearOnFillReduction = undefined;
  210. this.deltaSort = undefined;
  211. this.suppressTouch = undefined;
  212. this.suppressAsyncEvents = undefined;
  213. this.allowContextMenuWithControlKey = undefined;
  214. this.suppressContextMenu = undefined;
  215. this.suppressMenuFilterPanel = undefined;
  216. this.suppressMenuMainPanel = undefined;
  217. this.suppressMenuColumnPanel = undefined;
  218. this.rememberGroupStateWhenNewData = undefined;
  219. this.enableCellChangeFlash = undefined;
  220. this.suppressDragLeaveHidesColumns = undefined;
  221. this.suppressMiddleClickScrolls = undefined;
  222. this.suppressPreventDefaultOnMouseWheel = undefined;
  223. this.suppressUseColIdForGroups = undefined;
  224. this.suppressCopyRowsToClipboard = undefined;
  225. this.copyHeadersToClipboard = undefined;
  226. this.pivotMode = undefined;
  227. this.suppressAggFuncInHeader = undefined;
  228. this.suppressColumnVirtualisation = undefined;
  229. this.suppressAggAtRootLevel = undefined;
  230. this.suppressFocusAfterRefresh = undefined;
  231. this.functionsPassive = undefined;
  232. this.functionsReadOnly = undefined;
  233. this.animateRows = undefined;
  234. this.groupSelectsFiltered = undefined;
  235. this.groupRemoveSingleChildren = undefined;
  236. this.groupRemoveLowestSingleChildren = undefined;
  237. this.enableRtl = undefined;
  238. this.suppressClickEdit = undefined;
  239. this.rowDragManaged = undefined;
  240. this.suppressRowDrag = undefined;
  241. this.suppressMoveWhenRowDragging = undefined;
  242. this.enableMultiRowDragging = undefined;
  243. this.enableGroupEdit = undefined;
  244. this.embedFullWidthRows = undefined;
  245. this.deprecatedEmbedFullWidthRows = undefined;
  246. this.suppressTabbing = undefined;
  247. this.suppressPaginationPanel = undefined;
  248. this.floatingFilter = undefined;
  249. this.groupHideOpenParents = undefined;
  250. this.groupMultiAutoColumn = undefined;
  251. this.pagination = undefined;
  252. this.stopEditingWhenGridLosesFocus = undefined;
  253. this.paginationAutoPageSize = undefined;
  254. this.suppressScrollOnNewData = undefined;
  255. this.purgeClosedRowNodes = undefined;
  256. this.cacheQuickFilter = undefined;
  257. this.deltaRowDataMode = undefined;
  258. this.ensureDomOrder = undefined;
  259. this.accentedSort = undefined;
  260. this.pivotTotals = undefined;
  261. this.suppressChangeDetection = undefined;
  262. this.valueCache = undefined;
  263. this.valueCacheNeverExpires = undefined;
  264. this.aggregateOnlyChangedColumns = undefined;
  265. this.suppressAnimationFrame = undefined;
  266. this.suppressExcelExport = undefined;
  267. this.suppressCsvExport = undefined;
  268. this.treeData = undefined;
  269. this.masterDetail = undefined;
  270. this.suppressMultiRangeSelection = undefined;
  271. this.enterMovesDownAfterEdit = undefined;
  272. this.enterMovesDown = undefined;
  273. this.suppressPropertyNamesCheck = undefined;
  274. this.rowMultiSelectWithClick = undefined;
  275. this.contractColumnSelection = undefined;
  276. this.suppressEnterpriseResetOnNewColumns = undefined;
  277. this.enableOldSetFilterModel = undefined;
  278. this.suppressRowHoverHighlight = undefined;
  279. this.gridAutoHeight = undefined;
  280. this.suppressRowTransform = undefined;
  281. this.suppressClipboardPaste = undefined;
  282. this.suppressLastEmptyLineOnPaste = undefined;
  283. this.serverSideSortingAlwaysResets = undefined;
  284. this.reactNext = undefined;
  285. this.suppressSetColumnStateEvents = undefined;
  286. this.enableCharts = undefined;
  287. this.deltaColumnMode = undefined;
  288. this.suppressMaintainUnsortedOrder = undefined;
  289. this.enableCellTextSelection = undefined;
  290. this.suppressBrowserResizeObserver = undefined;
  291. this.suppressMaxRenderedRowRestriction = undefined;
  292. this.excludeChildrenWhenTreeDataFiltering = undefined;
  293. this.tooltipMouseTrack = undefined;
  294. this.keepDetailRows = undefined;
  295. this.paginateChildRows = undefined;
  296. this.preventDefaultOnContextMenu = undefined;
  297. this.undoRedoCellEditing = undefined;
  298. this.allowDragFromColumnsToolPanel = undefined;
  299. this.immutableData = undefined;
  300. this.immutableColumns = undefined;
  301. this.pivotSuppressAutoColumn = undefined;
  302. this.columnEverythingChanged = new EventEmitter();
  303. this.newColumnsLoaded = new EventEmitter();
  304. this.columnPivotModeChanged = new EventEmitter();
  305. this.columnRowGroupChanged = new EventEmitter();
  306. this.expandOrCollapseAll = new EventEmitter();
  307. this.columnPivotChanged = new EventEmitter();
  308. this.gridColumnsChanged = new EventEmitter();
  309. this.columnValueChanged = new EventEmitter();
  310. this.columnMoved = new EventEmitter();
  311. this.columnVisible = new EventEmitter();
  312. this.columnPinned = new EventEmitter();
  313. this.columnGroupOpened = new EventEmitter();
  314. this.columnResized = new EventEmitter();
  315. this.displayedColumnsChanged = new EventEmitter();
  316. this.virtualColumnsChanged = new EventEmitter();
  317. this.rowGroupOpened = new EventEmitter();
  318. this.rowDataChanged = new EventEmitter();
  319. this.rowDataUpdated = new EventEmitter();
  320. this.pinnedRowDataChanged = new EventEmitter();
  321. this.rangeSelectionChanged = new EventEmitter();
  322. this.chartCreated = new EventEmitter();
  323. this.chartRangeSelectionChanged = new EventEmitter();
  324. this.chartOptionsChanged = new EventEmitter();
  325. this.chartDestroyed = new EventEmitter();
  326. this.toolPanelVisibleChanged = new EventEmitter();
  327. this.modelUpdated = new EventEmitter();
  328. this.pasteStart = new EventEmitter();
  329. this.pasteEnd = new EventEmitter();
  330. this.fillStart = new EventEmitter();
  331. this.fillEnd = new EventEmitter();
  332. this.cellClicked = new EventEmitter();
  333. this.cellDoubleClicked = new EventEmitter();
  334. this.cellMouseDown = new EventEmitter();
  335. this.cellContextMenu = new EventEmitter();
  336. this.cellValueChanged = new EventEmitter();
  337. this.rowValueChanged = new EventEmitter();
  338. this.cellFocused = new EventEmitter();
  339. this.rowSelected = new EventEmitter();
  340. this.selectionChanged = new EventEmitter();
  341. this.cellKeyDown = new EventEmitter();
  342. this.cellKeyPress = new EventEmitter();
  343. this.cellMouseOver = new EventEmitter();
  344. this.cellMouseOut = new EventEmitter();
  345. this.filterChanged = new EventEmitter();
  346. this.filterModified = new EventEmitter();
  347. this.filterOpened = new EventEmitter();
  348. this.sortChanged = new EventEmitter();
  349. this.virtualRowRemoved = new EventEmitter();
  350. this.rowClicked = new EventEmitter();
  351. this.rowDoubleClicked = new EventEmitter();
  352. this.gridReady = new EventEmitter();
  353. this.gridSizeChanged = new EventEmitter();
  354. this.viewportChanged = new EventEmitter();
  355. this.firstDataRendered = new EventEmitter();
  356. this.dragStarted = new EventEmitter();
  357. this.dragStopped = new EventEmitter();
  358. this.checkboxChanged = new EventEmitter();
  359. this.rowEditingStarted = new EventEmitter();
  360. this.rowEditingStopped = new EventEmitter();
  361. this.cellEditingStarted = new EventEmitter();
  362. this.cellEditingStopped = new EventEmitter();
  363. this.bodyScroll = new EventEmitter();
  364. this.animationQueueEmpty = new EventEmitter();
  365. this.heightScaleChanged = new EventEmitter();
  366. this.paginationChanged = new EventEmitter();
  367. this.componentStateChanged = new EventEmitter();
  368. this.bodyHeightChanged = new EventEmitter();
  369. this.displayedColumnsWidthChanged = new EventEmitter();
  370. this.scrollVisibilityChanged = new EventEmitter();
  371. this.columnHoverChanged = new EventEmitter();
  372. this.flashCells = new EventEmitter();
  373. this.rowDragEnter = new EventEmitter();
  374. this.rowDragMove = new EventEmitter();
  375. this.rowDragLeave = new EventEmitter();
  376. this.rowDragEnd = new EventEmitter();
  377. this.popupToFront = new EventEmitter();
  378. this.columnRowGroupChangeRequest = new EventEmitter();
  379. this.columnPivotChangeRequest = new EventEmitter();
  380. this.columnValueChangeRequest = new EventEmitter();
  381. this.columnAggFuncChangeRequest = new EventEmitter();
  382. this.keyboardFocus = new EventEmitter();
  383. this.mouseFocus = new EventEmitter();
  384. this._nativeElement = elementDef.nativeElement;
  385. this.frameworkComponentWrapper.setViewContainerRef(this.viewContainerRef);
  386. this.frameworkComponentWrapper.setComponentFactoryResolver(this._componentFactoryResolver);
  387. }
  388. ngAfterViewInit() {
  389. this.checkForDeprecatedEvents();
  390. this.gridOptions = ComponentUtil.copyAttributesToGridOptions(this.gridOptions, this, true);
  391. this.gridParams = {
  392. globalEventListener: this.globalEventListener.bind(this),
  393. frameworkOverrides: this.angularFrameworkOverrides,
  394. providedBeanInstances: {
  395. frameworkComponentWrapper: this.frameworkComponentWrapper
  396. },
  397. modules: (this.modules || [])
  398. };
  399. if (this.columns && this.columns.length > 0) {
  400. this.gridOptions.columnDefs = this.columns
  401. .map((column) => {
  402. return column.toColDef();
  403. });
  404. }
  405. new Grid(this._nativeElement, this.gridOptions, this.gridParams);
  406. if (this.gridOptions.api) {
  407. this.api = this.gridOptions.api;
  408. }
  409. if (this.gridOptions.columnApi) {
  410. this.columnApi = this.gridOptions.columnApi;
  411. }
  412. this._initialised = true;
  413. // sometimes, especially in large client apps gridReady can fire before ngAfterViewInit
  414. // this ties these together so that gridReady will always fire after agGridAngular's ngAfterViewInit
  415. // the actual containing component's ngAfterViewInit will fire just after agGridAngular's
  416. this._fullyReady.resolveNow(null, resolve => resolve);
  417. }
  418. ngOnChanges(changes) {
  419. if (this._initialised) {
  420. ComponentUtil.processOnChange(changes, this.gridOptions, this.api, this.columnApi);
  421. }
  422. }
  423. ngOnDestroy() {
  424. if (this._initialised) {
  425. // need to do this before the destroy, so we know not to emit any events
  426. // while tearing down the grid.
  427. this._destroyed = true;
  428. if (this.api) {
  429. this.api.destroy();
  430. }
  431. }
  432. }
  433. checkForDeprecatedEvents() {
  434. _.iterateObject(Events, (key, eventName) => {
  435. if (this[eventName] && this[eventName].observers.length > 0) {
  436. GridOptionsWrapper.checkEventDeprecation(eventName);
  437. }
  438. });
  439. }
  440. globalEventListener(eventType, event) {
  441. // if we are tearing down, don't emit angular events, as this causes
  442. // problems with the angular router
  443. if (this._destroyed) {
  444. return;
  445. }
  446. // generically look up the eventType
  447. let emitter = this[eventType];
  448. if (emitter) {
  449. if (eventType === 'gridReady') {
  450. // if the user is listening for gridReady, wait for ngAfterViewInit to fire first, then emit the
  451. // gridReady event
  452. this._fullyReady.then((result => {
  453. emitter.emit(event);
  454. }));
  455. }
  456. else {
  457. emitter.emit(event);
  458. }
  459. }
  460. else {
  461. console.log('ag-Grid-angular: could not find EventEmitter: ' + eventType);
  462. }
  463. }
  464. };
  465. AgGridAngular.ctorParameters = () => [
  466. { type: ElementRef },
  467. { type: ViewContainerRef },
  468. { type: AngularFrameworkOverrides },
  469. { type: AngularFrameworkComponentWrapper },
  470. { type: ComponentFactoryResolver }
  471. ];
  472. __decorate([
  473. ContentChildren(AgGridColumn),
  474. __metadata("design:type", QueryList)
  475. ], AgGridAngular.prototype, "columns", void 0);
  476. __decorate([
  477. Input(),
  478. __metadata("design:type", Object)
  479. ], AgGridAngular.prototype, "gridOptions", void 0);
  480. __decorate([
  481. Input(),
  482. __metadata("design:type", Array)
  483. ], AgGridAngular.prototype, "modules", void 0);
  484. __decorate([
  485. Input(),
  486. __metadata("design:type", Object)
  487. ], AgGridAngular.prototype, "slaveGrids", void 0);
  488. __decorate([
  489. Input(),
  490. __metadata("design:type", Object)
  491. ], AgGridAngular.prototype, "alignedGrids", void 0);
  492. __decorate([
  493. Input(),
  494. __metadata("design:type", Object)
  495. ], AgGridAngular.prototype, "rowData", void 0);
  496. __decorate([
  497. Input(),
  498. __metadata("design:type", Object)
  499. ], AgGridAngular.prototype, "columnDefs", void 0);
  500. __decorate([
  501. Input(),
  502. __metadata("design:type", Object)
  503. ], AgGridAngular.prototype, "excelStyles", void 0);
  504. __decorate([
  505. Input(),
  506. __metadata("design:type", Object)
  507. ], AgGridAngular.prototype, "pinnedTopRowData", void 0);
  508. __decorate([
  509. Input(),
  510. __metadata("design:type", Object)
  511. ], AgGridAngular.prototype, "pinnedBottomRowData", void 0);
  512. __decorate([
  513. Input(),
  514. __metadata("design:type", Object)
  515. ], AgGridAngular.prototype, "components", void 0);
  516. __decorate([
  517. Input(),
  518. __metadata("design:type", Object)
  519. ], AgGridAngular.prototype, "frameworkComponents", void 0);
  520. __decorate([
  521. Input(),
  522. __metadata("design:type", Object)
  523. ], AgGridAngular.prototype, "rowStyle", void 0);
  524. __decorate([
  525. Input(),
  526. __metadata("design:type", Object)
  527. ], AgGridAngular.prototype, "context", void 0);
  528. __decorate([
  529. Input(),
  530. __metadata("design:type", Object)
  531. ], AgGridAngular.prototype, "autoGroupColumnDef", void 0);
  532. __decorate([
  533. Input(),
  534. __metadata("design:type", Object)
  535. ], AgGridAngular.prototype, "groupColumnDef", void 0);
  536. __decorate([
  537. Input(),
  538. __metadata("design:type", Object)
  539. ], AgGridAngular.prototype, "localeText", void 0);
  540. __decorate([
  541. Input(),
  542. __metadata("design:type", Object)
  543. ], AgGridAngular.prototype, "icons", void 0);
  544. __decorate([
  545. Input(),
  546. __metadata("design:type", Object)
  547. ], AgGridAngular.prototype, "datasource", void 0);
  548. __decorate([
  549. Input(),
  550. __metadata("design:type", Object)
  551. ], AgGridAngular.prototype, "serverSideDatasource", void 0);
  552. __decorate([
  553. Input(),
  554. __metadata("design:type", Object)
  555. ], AgGridAngular.prototype, "viewportDatasource", void 0);
  556. __decorate([
  557. Input(),
  558. __metadata("design:type", Object)
  559. ], AgGridAngular.prototype, "groupRowRendererParams", void 0);
  560. __decorate([
  561. Input(),
  562. __metadata("design:type", Object)
  563. ], AgGridAngular.prototype, "aggFuncs", void 0);
  564. __decorate([
  565. Input(),
  566. __metadata("design:type", Object)
  567. ], AgGridAngular.prototype, "fullWidthCellRendererParams", void 0);
  568. __decorate([
  569. Input(),
  570. __metadata("design:type", Object)
  571. ], AgGridAngular.prototype, "defaultColGroupDef", void 0);
  572. __decorate([
  573. Input(),
  574. __metadata("design:type", Object)
  575. ], AgGridAngular.prototype, "defaultColDef", void 0);
  576. __decorate([
  577. Input(),
  578. __metadata("design:type", Object)
  579. ], AgGridAngular.prototype, "defaultExportParams", void 0);
  580. __decorate([
  581. Input(),
  582. __metadata("design:type", Object)
  583. ], AgGridAngular.prototype, "columnTypes", void 0);
  584. __decorate([
  585. Input(),
  586. __metadata("design:type", Object)
  587. ], AgGridAngular.prototype, "rowClassRules", void 0);
  588. __decorate([
  589. Input(),
  590. __metadata("design:type", Object)
  591. ], AgGridAngular.prototype, "detailGridOptions", void 0);
  592. __decorate([
  593. Input(),
  594. __metadata("design:type", Object)
  595. ], AgGridAngular.prototype, "detailCellRendererParams", void 0);
  596. __decorate([
  597. Input(),
  598. __metadata("design:type", Object)
  599. ], AgGridAngular.prototype, "loadingCellRendererParams", void 0);
  600. __decorate([
  601. Input(),
  602. __metadata("design:type", Object)
  603. ], AgGridAngular.prototype, "loadingOverlayComponentParams", void 0);
  604. __decorate([
  605. Input(),
  606. __metadata("design:type", Object)
  607. ], AgGridAngular.prototype, "noRowsOverlayComponentParams", void 0);
  608. __decorate([
  609. Input(),
  610. __metadata("design:type", Object)
  611. ], AgGridAngular.prototype, "popupParent", void 0);
  612. __decorate([
  613. Input(),
  614. __metadata("design:type", Object)
  615. ], AgGridAngular.prototype, "colResizeDefault", void 0);
  616. __decorate([
  617. Input(),
  618. __metadata("design:type", Object)
  619. ], AgGridAngular.prototype, "reduxStore", void 0);
  620. __decorate([
  621. Input(),
  622. __metadata("design:type", Object)
  623. ], AgGridAngular.prototype, "statusBar", void 0);
  624. __decorate([
  625. Input(),
  626. __metadata("design:type", Object)
  627. ], AgGridAngular.prototype, "sideBar", void 0);
  628. __decorate([
  629. Input(),
  630. __metadata("design:type", Object)
  631. ], AgGridAngular.prototype, "sortingOrder", void 0);
  632. __decorate([
  633. Input(),
  634. __metadata("design:type", Object)
  635. ], AgGridAngular.prototype, "rowClass", void 0);
  636. __decorate([
  637. Input(),
  638. __metadata("design:type", Object)
  639. ], AgGridAngular.prototype, "rowSelection", void 0);
  640. __decorate([
  641. Input(),
  642. __metadata("design:type", Object)
  643. ], AgGridAngular.prototype, "overlayLoadingTemplate", void 0);
  644. __decorate([
  645. Input(),
  646. __metadata("design:type", Object)
  647. ], AgGridAngular.prototype, "overlayNoRowsTemplate", void 0);
  648. __decorate([
  649. Input(),
  650. __metadata("design:type", Object)
  651. ], AgGridAngular.prototype, "quickFilterText", void 0);
  652. __decorate([
  653. Input(),
  654. __metadata("design:type", Object)
  655. ], AgGridAngular.prototype, "rowModelType", void 0);
  656. __decorate([
  657. Input(),
  658. __metadata("design:type", Object)
  659. ], AgGridAngular.prototype, "editType", void 0);
  660. __decorate([
  661. Input(),
  662. __metadata("design:type", Object)
  663. ], AgGridAngular.prototype, "domLayout", void 0);
  664. __decorate([
  665. Input(),
  666. __metadata("design:type", Object)
  667. ], AgGridAngular.prototype, "clipboardDeliminator", void 0);
  668. __decorate([
  669. Input(),
  670. __metadata("design:type", Object)
  671. ], AgGridAngular.prototype, "rowGroupPanelShow", void 0);
  672. __decorate([
  673. Input(),
  674. __metadata("design:type", Object)
  675. ], AgGridAngular.prototype, "multiSortKey", void 0);
  676. __decorate([
  677. Input(),
  678. __metadata("design:type", Object)
  679. ], AgGridAngular.prototype, "pivotColumnGroupTotals", void 0);
  680. __decorate([
  681. Input(),
  682. __metadata("design:type", Object)
  683. ], AgGridAngular.prototype, "pivotRowTotals", void 0);
  684. __decorate([
  685. Input(),
  686. __metadata("design:type", Object)
  687. ], AgGridAngular.prototype, "pivotPanelShow", void 0);
  688. __decorate([
  689. Input(),
  690. __metadata("design:type", Object)
  691. ], AgGridAngular.prototype, "rowHeight", void 0);
  692. __decorate([
  693. Input(),
  694. __metadata("design:type", Object)
  695. ], AgGridAngular.prototype, "detailRowHeight", void 0);
  696. __decorate([
  697. Input(),
  698. __metadata("design:type", Object)
  699. ], AgGridAngular.prototype, "rowBuffer", void 0);
  700. __decorate([
  701. Input(),
  702. __metadata("design:type", Object)
  703. ], AgGridAngular.prototype, "colWidth", void 0);
  704. __decorate([
  705. Input(),
  706. __metadata("design:type", Object)
  707. ], AgGridAngular.prototype, "headerHeight", void 0);
  708. __decorate([
  709. Input(),
  710. __metadata("design:type", Object)
  711. ], AgGridAngular.prototype, "groupHeaderHeight", void 0);
  712. __decorate([
  713. Input(),
  714. __metadata("design:type", Object)
  715. ], AgGridAngular.prototype, "floatingFiltersHeight", void 0);
  716. __decorate([
  717. Input(),
  718. __metadata("design:type", Object)
  719. ], AgGridAngular.prototype, "pivotHeaderHeight", void 0);
  720. __decorate([
  721. Input(),
  722. __metadata("design:type", Object)
  723. ], AgGridAngular.prototype, "pivotGroupHeaderHeight", void 0);
  724. __decorate([
  725. Input(),
  726. __metadata("design:type", Object)
  727. ], AgGridAngular.prototype, "groupDefaultExpanded", void 0);
  728. __decorate([
  729. Input(),
  730. __metadata("design:type", Object)
  731. ], AgGridAngular.prototype, "minColWidth", void 0);
  732. __decorate([
  733. Input(),
  734. __metadata("design:type", Object)
  735. ], AgGridAngular.prototype, "maxColWidth", void 0);
  736. __decorate([
  737. Input(),
  738. __metadata("design:type", Object)
  739. ], AgGridAngular.prototype, "viewportRowModelPageSize", void 0);
  740. __decorate([
  741. Input(),
  742. __metadata("design:type", Object)
  743. ], AgGridAngular.prototype, "viewportRowModelBufferSize", void 0);
  744. __decorate([
  745. Input(),
  746. __metadata("design:type", Object)
  747. ], AgGridAngular.prototype, "autoSizePadding", void 0);
  748. __decorate([
  749. Input(),
  750. __metadata("design:type", Object)
  751. ], AgGridAngular.prototype, "maxBlocksInCache", void 0);
  752. __decorate([
  753. Input(),
  754. __metadata("design:type", Object)
  755. ], AgGridAngular.prototype, "maxConcurrentDatasourceRequests", void 0);
  756. __decorate([
  757. Input(),
  758. __metadata("design:type", Object)
  759. ], AgGridAngular.prototype, "tooltipShowDelay", void 0);
  760. __decorate([
  761. Input(),
  762. __metadata("design:type", Object)
  763. ], AgGridAngular.prototype, "cacheOverflowSize", void 0);
  764. __decorate([
  765. Input(),
  766. __metadata("design:type", Object)
  767. ], AgGridAngular.prototype, "paginationPageSize", void 0);
  768. __decorate([
  769. Input(),
  770. __metadata("design:type", Object)
  771. ], AgGridAngular.prototype, "cacheBlockSize", void 0);
  772. __decorate([
  773. Input(),
  774. __metadata("design:type", Object)
  775. ], AgGridAngular.prototype, "infiniteInitialRowCount", void 0);
  776. __decorate([
  777. Input(),
  778. __metadata("design:type", Object)
  779. ], AgGridAngular.prototype, "scrollbarWidth", void 0);
  780. __decorate([
  781. Input(),
  782. __metadata("design:type", Object)
  783. ], AgGridAngular.prototype, "paginationStartPage", void 0);
  784. __decorate([
  785. Input(),
  786. __metadata("design:type", Object)
  787. ], AgGridAngular.prototype, "infiniteBlockSize", void 0);
  788. __decorate([
  789. Input(),
  790. __metadata("design:type", Object)
  791. ], AgGridAngular.prototype, "batchUpdateWaitMillis", void 0);
  792. __decorate([
  793. Input(),
  794. __metadata("design:type", Object)
  795. ], AgGridAngular.prototype, "asyncTransactionWaitMillis", void 0);
  796. __decorate([
  797. Input(),
  798. __metadata("design:type", Object)
  799. ], AgGridAngular.prototype, "blockLoadDebounceMillis", void 0);
  800. __decorate([
  801. Input(),
  802. __metadata("design:type", Object)
  803. ], AgGridAngular.prototype, "keepDetailRowsCount", void 0);
  804. __decorate([
  805. Input(),
  806. __metadata("design:type", Object)
  807. ], AgGridAngular.prototype, "undoRedoCellEditingLimit", void 0);
  808. __decorate([
  809. Input(),
  810. __metadata("design:type", Object)
  811. ], AgGridAngular.prototype, "cellFlashDelay", void 0);
  812. __decorate([
  813. Input(),
  814. __metadata("design:type", Object)
  815. ], AgGridAngular.prototype, "cellFadeDelay", void 0);
  816. __decorate([
  817. Input(),
  818. __metadata("design:type", Object)
  819. ], AgGridAngular.prototype, "localeTextFunc", void 0);
  820. __decorate([
  821. Input(),
  822. __metadata("design:type", Object)
  823. ], AgGridAngular.prototype, "groupRowInnerRenderer", void 0);
  824. __decorate([
  825. Input(),
  826. __metadata("design:type", Object)
  827. ], AgGridAngular.prototype, "groupRowInnerRendererFramework", void 0);
  828. __decorate([
  829. Input(),
  830. __metadata("design:type", Object)
  831. ], AgGridAngular.prototype, "dateComponent", void 0);
  832. __decorate([
  833. Input(),
  834. __metadata("design:type", Object)
  835. ], AgGridAngular.prototype, "dateComponentFramework", void 0);
  836. __decorate([
  837. Input(),
  838. __metadata("design:type", Object)
  839. ], AgGridAngular.prototype, "groupRowRenderer", void 0);
  840. __decorate([
  841. Input(),
  842. __metadata("design:type", Object)
  843. ], AgGridAngular.prototype, "groupRowRendererFramework", void 0);
  844. __decorate([
  845. Input(),
  846. __metadata("design:type", Object)
  847. ], AgGridAngular.prototype, "isExternalFilterPresent", void 0);
  848. __decorate([
  849. Input(),
  850. __metadata("design:type", Object)
  851. ], AgGridAngular.prototype, "getRowHeight", void 0);
  852. __decorate([
  853. Input(),
  854. __metadata("design:type", Object)
  855. ], AgGridAngular.prototype, "doesExternalFilterPass", void 0);
  856. __decorate([
  857. Input(),
  858. __metadata("design:type", Object)
  859. ], AgGridAngular.prototype, "getRowClass", void 0);
  860. __decorate([
  861. Input(),
  862. __metadata("design:type", Object)
  863. ], AgGridAngular.prototype, "getRowStyle", void 0);
  864. __decorate([
  865. Input(),
  866. __metadata("design:type", Object)
  867. ], AgGridAngular.prototype, "getRowClassRules", void 0);
  868. __decorate([
  869. Input(),
  870. __metadata("design:type", Object)
  871. ], AgGridAngular.prototype, "traverseNode", void 0);
  872. __decorate([
  873. Input(),
  874. __metadata("design:type", Object)
  875. ], AgGridAngular.prototype, "getContextMenuItems", void 0);
  876. __decorate([
  877. Input(),
  878. __metadata("design:type", Object)
  879. ], AgGridAngular.prototype, "getMainMenuItems", void 0);
  880. __decorate([
  881. Input(),
  882. __metadata("design:type", Object)
  883. ], AgGridAngular.prototype, "processRowPostCreate", void 0);
  884. __decorate([
  885. Input(),
  886. __metadata("design:type", Object)
  887. ], AgGridAngular.prototype, "processCellForClipboard", void 0);
  888. __decorate([
  889. Input(),
  890. __metadata("design:type", Object)
  891. ], AgGridAngular.prototype, "getNodeChildDetails", void 0);
  892. __decorate([
  893. Input(),
  894. __metadata("design:type", Object)
  895. ], AgGridAngular.prototype, "groupRowAggNodes", void 0);
  896. __decorate([
  897. Input(),
  898. __metadata("design:type", Object)
  899. ], AgGridAngular.prototype, "getRowNodeId", void 0);
  900. __decorate([
  901. Input(),
  902. __metadata("design:type", Object)
  903. ], AgGridAngular.prototype, "isFullWidthCell", void 0);
  904. __decorate([
  905. Input(),
  906. __metadata("design:type", Object)
  907. ], AgGridAngular.prototype, "fullWidthCellRenderer", void 0);
  908. __decorate([
  909. Input(),
  910. __metadata("design:type", Object)
  911. ], AgGridAngular.prototype, "fullWidthCellRendererFramework", void 0);
  912. __decorate([
  913. Input(),
  914. __metadata("design:type", Object)
  915. ], AgGridAngular.prototype, "doesDataFlower", void 0);
  916. __decorate([
  917. Input(),
  918. __metadata("design:type", Object)
  919. ], AgGridAngular.prototype, "processSecondaryColDef", void 0);
  920. __decorate([
  921. Input(),
  922. __metadata("design:type", Object)
  923. ], AgGridAngular.prototype, "processSecondaryColGroupDef", void 0);
  924. __decorate([
  925. Input(),
  926. __metadata("design:type", Object)
  927. ], AgGridAngular.prototype, "getBusinessKeyForNode", void 0);
  928. __decorate([
  929. Input(),
  930. __metadata("design:type", Object)
  931. ], AgGridAngular.prototype, "sendToClipboard", void 0);
  932. __decorate([
  933. Input(),
  934. __metadata("design:type", Object)
  935. ], AgGridAngular.prototype, "navigateToNextCell", void 0);
  936. __decorate([
  937. Input(),
  938. __metadata("design:type", Object)
  939. ], AgGridAngular.prototype, "tabToNextCell", void 0);
  940. __decorate([
  941. Input(),
  942. __metadata("design:type", Object)
  943. ], AgGridAngular.prototype, "getDetailRowData", void 0);
  944. __decorate([
  945. Input(),
  946. __metadata("design:type", Object)
  947. ], AgGridAngular.prototype, "processCellFromClipboard", void 0);
  948. __decorate([
  949. Input(),
  950. __metadata("design:type", Object)
  951. ], AgGridAngular.prototype, "getDocument", void 0);
  952. __decorate([
  953. Input(),
  954. __metadata("design:type", Object)
  955. ], AgGridAngular.prototype, "postProcessPopup", void 0);
  956. __decorate([
  957. Input(),
  958. __metadata("design:type", Object)
  959. ], AgGridAngular.prototype, "getChildCount", void 0);
  960. __decorate([
  961. Input(),
  962. __metadata("design:type", Object)
  963. ], AgGridAngular.prototype, "getDataPath", void 0);
  964. __decorate([
  965. Input(),
  966. __metadata("design:type", Object)
  967. ], AgGridAngular.prototype, "loadingCellRenderer", void 0);
  968. __decorate([
  969. Input(),
  970. __metadata("design:type", Object)
  971. ], AgGridAngular.prototype, "loadingCellRendererFramework", void 0);
  972. __decorate([
  973. Input(),
  974. __metadata("design:type", Object)
  975. ], AgGridAngular.prototype, "loadingOverlayComponent", void 0);
  976. __decorate([
  977. Input(),
  978. __metadata("design:type", Object)
  979. ], AgGridAngular.prototype, "loadingOverlayComponentFramework", void 0);
  980. __decorate([
  981. Input(),
  982. __metadata("design:type", Object)
  983. ], AgGridAngular.prototype, "noRowsOverlayComponent", void 0);
  984. __decorate([
  985. Input(),
  986. __metadata("design:type", Object)
  987. ], AgGridAngular.prototype, "noRowsOverlayComponentFramework", void 0);
  988. __decorate([
  989. Input(),
  990. __metadata("design:type", Object)
  991. ], AgGridAngular.prototype, "detailCellRenderer", void 0);
  992. __decorate([
  993. Input(),
  994. __metadata("design:type", Object)
  995. ], AgGridAngular.prototype, "detailCellRendererFramework", void 0);
  996. __decorate([
  997. Input(),
  998. __metadata("design:type", Object)
  999. ], AgGridAngular.prototype, "defaultGroupSortComparator", void 0);
  1000. __decorate([
  1001. Input(),
  1002. __metadata("design:type", Object)
  1003. ], AgGridAngular.prototype, "isRowMaster", void 0);
  1004. __decorate([
  1005. Input(),
  1006. __metadata("design:type", Object)
  1007. ], AgGridAngular.prototype, "isRowSelectable", void 0);
  1008. __decorate([
  1009. Input(),
  1010. __metadata("design:type", Object)
  1011. ], AgGridAngular.prototype, "postSort", void 0);
  1012. __decorate([
  1013. Input(),
  1014. __metadata("design:type", Object)
  1015. ], AgGridAngular.prototype, "processHeaderForClipboard", void 0);
  1016. __decorate([
  1017. Input(),
  1018. __metadata("design:type", Object)
  1019. ], AgGridAngular.prototype, "paginationNumberFormatter", void 0);
  1020. __decorate([
  1021. Input(),
  1022. __metadata("design:type", Object)
  1023. ], AgGridAngular.prototype, "processDataFromClipboard", void 0);
  1024. __decorate([
  1025. Input(),
  1026. __metadata("design:type", Object)
  1027. ], AgGridAngular.prototype, "getServerSideGroupKey", void 0);
  1028. __decorate([
  1029. Input(),
  1030. __metadata("design:type", Object)
  1031. ], AgGridAngular.prototype, "isServerSideGroup", void 0);
  1032. __decorate([
  1033. Input(),
  1034. __metadata("design:type", Object)
  1035. ], AgGridAngular.prototype, "suppressKeyboardEvent", void 0);
  1036. __decorate([
  1037. Input(),
  1038. __metadata("design:type", Object)
  1039. ], AgGridAngular.prototype, "createChartContainer", void 0);
  1040. __decorate([
  1041. Input(),
  1042. __metadata("design:type", Object)
  1043. ], AgGridAngular.prototype, "processChartOptions", void 0);
  1044. __decorate([
  1045. Input(),
  1046. __metadata("design:type", Object)
  1047. ], AgGridAngular.prototype, "getChartToolbarItems", void 0);
  1048. __decorate([
  1049. Input(),
  1050. __metadata("design:type", Object)
  1051. ], AgGridAngular.prototype, "fillOperation", void 0);
  1052. __decorate([
  1053. Input(),
  1054. __metadata("design:type", Object)
  1055. ], AgGridAngular.prototype, "toolPanelSuppressRowGroups", void 0);
  1056. __decorate([
  1057. Input(),
  1058. __metadata("design:type", Object)
  1059. ], AgGridAngular.prototype, "toolPanelSuppressValues", void 0);
  1060. __decorate([
  1061. Input(),
  1062. __metadata("design:type", Object)
  1063. ], AgGridAngular.prototype, "toolPanelSuppressPivots", void 0);
  1064. __decorate([
  1065. Input(),
  1066. __metadata("design:type", Object)
  1067. ], AgGridAngular.prototype, "toolPanelSuppressPivotMode", void 0);
  1068. __decorate([
  1069. Input(),
  1070. __metadata("design:type", Object)
  1071. ], AgGridAngular.prototype, "toolPanelSuppressSideButtons", void 0);
  1072. __decorate([
  1073. Input(),
  1074. __metadata("design:type", Object)
  1075. ], AgGridAngular.prototype, "toolPanelSuppressColumnFilter", void 0);
  1076. __decorate([
  1077. Input(),
  1078. __metadata("design:type", Object)
  1079. ], AgGridAngular.prototype, "toolPanelSuppressColumnSelectAll", void 0);
  1080. __decorate([
  1081. Input(),
  1082. __metadata("design:type", Object)
  1083. ], AgGridAngular.prototype, "toolPanelSuppressColumnExpandAll", void 0);
  1084. __decorate([
  1085. Input(),
  1086. __metadata("design:type", Object)
  1087. ], AgGridAngular.prototype, "suppressMakeColumnVisibleAfterUnGroup", void 0);
  1088. __decorate([
  1089. Input(),
  1090. __metadata("design:type", Object)
  1091. ], AgGridAngular.prototype, "suppressRowClickSelection", void 0);
  1092. __decorate([
  1093. Input(),
  1094. __metadata("design:type", Object)
  1095. ], AgGridAngular.prototype, "suppressCellSelection", void 0);
  1096. __decorate([
  1097. Input(),
  1098. __metadata("design:type", Object)
  1099. ], AgGridAngular.prototype, "suppressHorizontalScroll", void 0);
  1100. __decorate([
  1101. Input(),
  1102. __metadata("design:type", Object)
  1103. ], AgGridAngular.prototype, "alwaysShowVerticalScroll", void 0);
  1104. __decorate([
  1105. Input(),
  1106. __metadata("design:type", Object)
  1107. ], AgGridAngular.prototype, "debug", void 0);
  1108. __decorate([
  1109. Input(),
  1110. __metadata("design:type", Object)
  1111. ], AgGridAngular.prototype, "enableBrowserTooltips", void 0);
  1112. __decorate([
  1113. Input(),
  1114. __metadata("design:type", Object)
  1115. ], AgGridAngular.prototype, "enableColResize", void 0);
  1116. __decorate([
  1117. Input(),
  1118. __metadata("design:type", Object)
  1119. ], AgGridAngular.prototype, "enableCellExpressions", void 0);
  1120. __decorate([
  1121. Input(),
  1122. __metadata("design:type", Object)
  1123. ], AgGridAngular.prototype, "enableSorting", void 0);
  1124. __decorate([
  1125. Input(),
  1126. __metadata("design:type", Object)
  1127. ], AgGridAngular.prototype, "enableServerSideSorting", void 0);
  1128. __decorate([
  1129. Input(),
  1130. __metadata("design:type", Object)
  1131. ], AgGridAngular.prototype, "enableFilter", void 0);
  1132. __decorate([
  1133. Input(),
  1134. __metadata("design:type", Object)
  1135. ], AgGridAngular.prototype, "enableServerSideFilter", void 0);
  1136. __decorate([
  1137. Input(),
  1138. __metadata("design:type", Object)
  1139. ], AgGridAngular.prototype, "angularCompileRows", void 0);
  1140. __decorate([
  1141. Input(),
  1142. __metadata("design:type", Object)
  1143. ], AgGridAngular.prototype, "angularCompileFilters", void 0);
  1144. __decorate([
  1145. Input(),
  1146. __metadata("design:type", Object)
  1147. ], AgGridAngular.prototype, "angularCompileHeaders", void 0);
  1148. __decorate([
  1149. Input(),
  1150. __metadata("design:type", Object)
  1151. ], AgGridAngular.prototype, "groupSuppressAutoColumn", void 0);
  1152. __decorate([
  1153. Input(),
  1154. __metadata("design:type", Object)
  1155. ], AgGridAngular.prototype, "groupSelectsChildren", void 0);
  1156. __decorate([
  1157. Input(),
  1158. __metadata("design:type", Object)
  1159. ], AgGridAngular.prototype, "groupIncludeFooter", void 0);
  1160. __decorate([
  1161. Input(),
  1162. __metadata("design:type", Object)
  1163. ], AgGridAngular.prototype, "groupIncludeTotalFooter", void 0);
  1164. __decorate([
  1165. Input(),
  1166. __metadata("design:type", Object)
  1167. ], AgGridAngular.prototype, "groupUseEntireRow", void 0);
  1168. __decorate([
  1169. Input(),
  1170. __metadata("design:type", Object)
  1171. ], AgGridAngular.prototype, "groupSuppressRow", void 0);
  1172. __decorate([
  1173. Input(),
  1174. __metadata("design:type", Object)
  1175. ], AgGridAngular.prototype, "groupSuppressBlankHeader", void 0);
  1176. __decorate([
  1177. Input(),
  1178. __metadata("design:type", Object)
  1179. ], AgGridAngular.prototype, "forPrint", void 0);
  1180. __decorate([
  1181. Input(),
  1182. __metadata("design:type", Object)
  1183. ], AgGridAngular.prototype, "suppressMenuHide", void 0);
  1184. __decorate([
  1185. Input(),
  1186. __metadata("design:type", Object)
  1187. ], AgGridAngular.prototype, "rowDeselection", void 0);
  1188. __decorate([
  1189. Input(),
  1190. __metadata("design:type", Object)
  1191. ], AgGridAngular.prototype, "unSortIcon", void 0);
  1192. __decorate([
  1193. Input(),
  1194. __metadata("design:type", Object)
  1195. ], AgGridAngular.prototype, "suppressMultiSort", void 0);
  1196. __decorate([
  1197. Input(),
  1198. __metadata("design:type", Object)
  1199. ], AgGridAngular.prototype, "singleClickEdit", void 0);
  1200. __decorate([
  1201. Input(),
  1202. __metadata("design:type", Object)
  1203. ], AgGridAngular.prototype, "suppressLoadingOverlay", void 0);
  1204. __decorate([
  1205. Input(),
  1206. __metadata("design:type", Object)
  1207. ], AgGridAngular.prototype, "suppressNoRowsOverlay", void 0);
  1208. __decorate([
  1209. Input(),
  1210. __metadata("design:type", Object)
  1211. ], AgGridAngular.prototype, "suppressAutoSize", void 0);
  1212. __decorate([
  1213. Input(),
  1214. __metadata("design:type", Object)
  1215. ], AgGridAngular.prototype, "skipHeaderOnAutoSize", void 0);
  1216. __decorate([
  1217. Input(),
  1218. __metadata("design:type", Object)
  1219. ], AgGridAngular.prototype, "suppressParentsInRowNodes", void 0);
  1220. __decorate([
  1221. Input(),
  1222. __metadata("design:type", Object)
  1223. ], AgGridAngular.prototype, "showToolPanel", void 0);
  1224. __decorate([
  1225. Input(),
  1226. __metadata("design:type", Object)
  1227. ], AgGridAngular.prototype, "suppressColumnMoveAnimation", void 0);
  1228. __decorate([
  1229. Input(),
  1230. __metadata("design:type", Object)
  1231. ], AgGridAngular.prototype, "suppressMovableColumns", void 0);
  1232. __decorate([
  1233. Input(),
  1234. __metadata("design:type", Object)
  1235. ], AgGridAngular.prototype, "suppressFieldDotNotation", void 0);
  1236. __decorate([
  1237. Input(),
  1238. __metadata("design:type", Object)
  1239. ], AgGridAngular.prototype, "enableRangeSelection", void 0);
  1240. __decorate([
  1241. Input(),
  1242. __metadata("design:type", Object)
  1243. ], AgGridAngular.prototype, "enableRangeHandle", void 0);
  1244. __decorate([
  1245. Input(),
  1246. __metadata("design:type", Object)
  1247. ], AgGridAngular.prototype, "enableFillHandle", void 0);
  1248. __decorate([
  1249. Input(),
  1250. __metadata("design:type", Object)
  1251. ], AgGridAngular.prototype, "suppressClearOnFillReduction", void 0);
  1252. __decorate([
  1253. Input(),
  1254. __metadata("design:type", Object)
  1255. ], AgGridAngular.prototype, "deltaSort", void 0);
  1256. __decorate([
  1257. Input(),
  1258. __metadata("design:type", Object)
  1259. ], AgGridAngular.prototype, "suppressTouch", void 0);
  1260. __decorate([
  1261. Input(),
  1262. __metadata("design:type", Object)
  1263. ], AgGridAngular.prototype, "suppressAsyncEvents", void 0);
  1264. __decorate([
  1265. Input(),
  1266. __metadata("design:type", Object)
  1267. ], AgGridAngular.prototype, "allowContextMenuWithControlKey", void 0);
  1268. __decorate([
  1269. Input(),
  1270. __metadata("design:type", Object)
  1271. ], AgGridAngular.prototype, "suppressContextMenu", void 0);
  1272. __decorate([
  1273. Input(),
  1274. __metadata("design:type", Object)
  1275. ], AgGridAngular.prototype, "suppressMenuFilterPanel", void 0);
  1276. __decorate([
  1277. Input(),
  1278. __metadata("design:type", Object)
  1279. ], AgGridAngular.prototype, "suppressMenuMainPanel", void 0);
  1280. __decorate([
  1281. Input(),
  1282. __metadata("design:type", Object)
  1283. ], AgGridAngular.prototype, "suppressMenuColumnPanel", void 0);
  1284. __decorate([
  1285. Input(),
  1286. __metadata("design:type", Object)
  1287. ], AgGridAngular.prototype, "rememberGroupStateWhenNewData", void 0);
  1288. __decorate([
  1289. Input(),
  1290. __metadata("design:type", Object)
  1291. ], AgGridAngular.prototype, "enableCellChangeFlash", void 0);
  1292. __decorate([
  1293. Input(),
  1294. __metadata("design:type", Object)
  1295. ], AgGridAngular.prototype, "suppressDragLeaveHidesColumns", void 0);
  1296. __decorate([
  1297. Input(),
  1298. __metadata("design:type", Object)
  1299. ], AgGridAngular.prototype, "suppressMiddleClickScrolls", void 0);
  1300. __decorate([
  1301. Input(),
  1302. __metadata("design:type", Object)
  1303. ], AgGridAngular.prototype, "suppressPreventDefaultOnMouseWheel", void 0);
  1304. __decorate([
  1305. Input(),
  1306. __metadata("design:type", Object)
  1307. ], AgGridAngular.prototype, "suppressUseColIdForGroups", void 0);
  1308. __decorate([
  1309. Input(),
  1310. __metadata("design:type", Object)
  1311. ], AgGridAngular.prototype, "suppressCopyRowsToClipboard", void 0);
  1312. __decorate([
  1313. Input(),
  1314. __metadata("design:type", Object)
  1315. ], AgGridAngular.prototype, "copyHeadersToClipboard", void 0);
  1316. __decorate([
  1317. Input(),
  1318. __metadata("design:type", Object)
  1319. ], AgGridAngular.prototype, "pivotMode", void 0);
  1320. __decorate([
  1321. Input(),
  1322. __metadata("design:type", Object)
  1323. ], AgGridAngular.prototype, "suppressAggFuncInHeader", void 0);
  1324. __decorate([
  1325. Input(),
  1326. __metadata("design:type", Object)
  1327. ], AgGridAngular.prototype, "suppressColumnVirtualisation", void 0);
  1328. __decorate([
  1329. Input(),
  1330. __metadata("design:type", Object)
  1331. ], AgGridAngular.prototype, "suppressAggAtRootLevel", void 0);
  1332. __decorate([
  1333. Input(),
  1334. __metadata("design:type", Object)
  1335. ], AgGridAngular.prototype, "suppressFocusAfterRefresh", void 0);
  1336. __decorate([
  1337. Input(),
  1338. __metadata("design:type", Object)
  1339. ], AgGridAngular.prototype, "functionsPassive", void 0);
  1340. __decorate([
  1341. Input(),
  1342. __metadata("design:type", Object)
  1343. ], AgGridAngular.prototype, "functionsReadOnly", void 0);
  1344. __decorate([
  1345. Input(),
  1346. __metadata("design:type", Object)
  1347. ], AgGridAngular.prototype, "animateRows", void 0);
  1348. __decorate([
  1349. Input(),
  1350. __metadata("design:type", Object)
  1351. ], AgGridAngular.prototype, "groupSelectsFiltered", void 0);
  1352. __decorate([
  1353. Input(),
  1354. __metadata("design:type", Object)
  1355. ], AgGridAngular.prototype, "groupRemoveSingleChildren", void 0);
  1356. __decorate([
  1357. Input(),
  1358. __metadata("design:type", Object)
  1359. ], AgGridAngular.prototype, "groupRemoveLowestSingleChildren", void 0);
  1360. __decorate([
  1361. Input(),
  1362. __metadata("design:type", Object)
  1363. ], AgGridAngular.prototype, "enableRtl", void 0);
  1364. __decorate([
  1365. Input(),
  1366. __metadata("design:type", Object)
  1367. ], AgGridAngular.prototype, "suppressClickEdit", void 0);
  1368. __decorate([
  1369. Input(),
  1370. __metadata("design:type", Object)
  1371. ], AgGridAngular.prototype, "rowDragManaged", void 0);
  1372. __decorate([
  1373. Input(),
  1374. __metadata("design:type", Object)
  1375. ], AgGridAngular.prototype, "suppressRowDrag", void 0);
  1376. __decorate([
  1377. Input(),
  1378. __metadata("design:type", Object)
  1379. ], AgGridAngular.prototype, "suppressMoveWhenRowDragging", void 0);
  1380. __decorate([
  1381. Input(),
  1382. __metadata("design:type", Object)
  1383. ], AgGridAngular.prototype, "enableMultiRowDragging", void 0);
  1384. __decorate([
  1385. Input(),
  1386. __metadata("design:type", Object)
  1387. ], AgGridAngular.prototype, "enableGroupEdit", void 0);
  1388. __decorate([
  1389. Input(),
  1390. __metadata("design:type", Object)
  1391. ], AgGridAngular.prototype, "embedFullWidthRows", void 0);
  1392. __decorate([
  1393. Input(),
  1394. __metadata("design:type", Object)
  1395. ], AgGridAngular.prototype, "deprecatedEmbedFullWidthRows", void 0);
  1396. __decorate([
  1397. Input(),
  1398. __metadata("design:type", Object)
  1399. ], AgGridAngular.prototype, "suppressTabbing", void 0);
  1400. __decorate([
  1401. Input(),
  1402. __metadata("design:type", Object)
  1403. ], AgGridAngular.prototype, "suppressPaginationPanel", void 0);
  1404. __decorate([
  1405. Input(),
  1406. __metadata("design:type", Object)
  1407. ], AgGridAngular.prototype, "floatingFilter", void 0);
  1408. __decorate([
  1409. Input(),
  1410. __metadata("design:type", Object)
  1411. ], AgGridAngular.prototype, "groupHideOpenParents", void 0);
  1412. __decorate([
  1413. Input(),
  1414. __metadata("design:type", Object)
  1415. ], AgGridAngular.prototype, "groupMultiAutoColumn", void 0);
  1416. __decorate([
  1417. Input(),
  1418. __metadata("design:type", Object)
  1419. ], AgGridAngular.prototype, "pagination", void 0);
  1420. __decorate([
  1421. Input(),
  1422. __metadata("design:type", Object)
  1423. ], AgGridAngular.prototype, "stopEditingWhenGridLosesFocus", void 0);
  1424. __decorate([
  1425. Input(),
  1426. __metadata("design:type", Object)
  1427. ], AgGridAngular.prototype, "paginationAutoPageSize", void 0);
  1428. __decorate([
  1429. Input(),
  1430. __metadata("design:type", Object)
  1431. ], AgGridAngular.prototype, "suppressScrollOnNewData", void 0);
  1432. __decorate([
  1433. Input(),
  1434. __metadata("design:type", Object)
  1435. ], AgGridAngular.prototype, "purgeClosedRowNodes", void 0);
  1436. __decorate([
  1437. Input(),
  1438. __metadata("design:type", Object)
  1439. ], AgGridAngular.prototype, "cacheQuickFilter", void 0);
  1440. __decorate([
  1441. Input(),
  1442. __metadata("design:type", Object)
  1443. ], AgGridAngular.prototype, "deltaRowDataMode", void 0);
  1444. __decorate([
  1445. Input(),
  1446. __metadata("design:type", Object)
  1447. ], AgGridAngular.prototype, "ensureDomOrder", void 0);
  1448. __decorate([
  1449. Input(),
  1450. __metadata("design:type", Object)
  1451. ], AgGridAngular.prototype, "accentedSort", void 0);
  1452. __decorate([
  1453. Input(),
  1454. __metadata("design:type", Object)
  1455. ], AgGridAngular.prototype, "pivotTotals", void 0);
  1456. __decorate([
  1457. Input(),
  1458. __metadata("design:type", Object)
  1459. ], AgGridAngular.prototype, "suppressChangeDetection", void 0);
  1460. __decorate([
  1461. Input(),
  1462. __metadata("design:type", Object)
  1463. ], AgGridAngular.prototype, "valueCache", void 0);
  1464. __decorate([
  1465. Input(),
  1466. __metadata("design:type", Object)
  1467. ], AgGridAngular.prototype, "valueCacheNeverExpires", void 0);
  1468. __decorate([
  1469. Input(),
  1470. __metadata("design:type", Object)
  1471. ], AgGridAngular.prototype, "aggregateOnlyChangedColumns", void 0);
  1472. __decorate([
  1473. Input(),
  1474. __metadata("design:type", Object)
  1475. ], AgGridAngular.prototype, "suppressAnimationFrame", void 0);
  1476. __decorate([
  1477. Input(),
  1478. __metadata("design:type", Object)
  1479. ], AgGridAngular.prototype, "suppressExcelExport", void 0);
  1480. __decorate([
  1481. Input(),
  1482. __metadata("design:type", Object)
  1483. ], AgGridAngular.prototype, "suppressCsvExport", void 0);
  1484. __decorate([
  1485. Input(),
  1486. __metadata("design:type", Object)
  1487. ], AgGridAngular.prototype, "treeData", void 0);
  1488. __decorate([
  1489. Input(),
  1490. __metadata("design:type", Object)
  1491. ], AgGridAngular.prototype, "masterDetail", void 0);
  1492. __decorate([
  1493. Input(),
  1494. __metadata("design:type", Object)
  1495. ], AgGridAngular.prototype, "suppressMultiRangeSelection", void 0);
  1496. __decorate([
  1497. Input(),
  1498. __metadata("design:type", Object)
  1499. ], AgGridAngular.prototype, "enterMovesDownAfterEdit", void 0);
  1500. __decorate([
  1501. Input(),
  1502. __metadata("design:type", Object)
  1503. ], AgGridAngular.prototype, "enterMovesDown", void 0);
  1504. __decorate([
  1505. Input(),
  1506. __metadata("design:type", Object)
  1507. ], AgGridAngular.prototype, "suppressPropertyNamesCheck", void 0);
  1508. __decorate([
  1509. Input(),
  1510. __metadata("design:type", Object)
  1511. ], AgGridAngular.prototype, "rowMultiSelectWithClick", void 0);
  1512. __decorate([
  1513. Input(),
  1514. __metadata("design:type", Object)
  1515. ], AgGridAngular.prototype, "contractColumnSelection", void 0);
  1516. __decorate([
  1517. Input(),
  1518. __metadata("design:type", Object)
  1519. ], AgGridAngular.prototype, "suppressEnterpriseResetOnNewColumns", void 0);
  1520. __decorate([
  1521. Input(),
  1522. __metadata("design:type", Object)
  1523. ], AgGridAngular.prototype, "enableOldSetFilterModel", void 0);
  1524. __decorate([
  1525. Input(),
  1526. __metadata("design:type", Object)
  1527. ], AgGridAngular.prototype, "suppressRowHoverHighlight", void 0);
  1528. __decorate([
  1529. Input(),
  1530. __metadata("design:type", Object)
  1531. ], AgGridAngular.prototype, "gridAutoHeight", void 0);
  1532. __decorate([
  1533. Input(),
  1534. __metadata("design:type", Object)
  1535. ], AgGridAngular.prototype, "suppressRowTransform", void 0);
  1536. __decorate([
  1537. Input(),
  1538. __metadata("design:type", Object)
  1539. ], AgGridAngular.prototype, "suppressClipboardPaste", void 0);
  1540. __decorate([
  1541. Input(),
  1542. __metadata("design:type", Object)
  1543. ], AgGridAngular.prototype, "suppressLastEmptyLineOnPaste", void 0);
  1544. __decorate([
  1545. Input(),
  1546. __metadata("design:type", Object)
  1547. ], AgGridAngular.prototype, "serverSideSortingAlwaysResets", void 0);
  1548. __decorate([
  1549. Input(),
  1550. __metadata("design:type", Object)
  1551. ], AgGridAngular.prototype, "reactNext", void 0);
  1552. __decorate([
  1553. Input(),
  1554. __metadata("design:type", Object)
  1555. ], AgGridAngular.prototype, "suppressSetColumnStateEvents", void 0);
  1556. __decorate([
  1557. Input(),
  1558. __metadata("design:type", Object)
  1559. ], AgGridAngular.prototype, "enableCharts", void 0);
  1560. __decorate([
  1561. Input(),
  1562. __metadata("design:type", Object)
  1563. ], AgGridAngular.prototype, "deltaColumnMode", void 0);
  1564. __decorate([
  1565. Input(),
  1566. __metadata("design:type", Object)
  1567. ], AgGridAngular.prototype, "suppressMaintainUnsortedOrder", void 0);
  1568. __decorate([
  1569. Input(),
  1570. __metadata("design:type", Object)
  1571. ], AgGridAngular.prototype, "enableCellTextSelection", void 0);
  1572. __decorate([
  1573. Input(),
  1574. __metadata("design:type", Object)
  1575. ], AgGridAngular.prototype, "suppressBrowserResizeObserver", void 0);
  1576. __decorate([
  1577. Input(),
  1578. __metadata("design:type", Object)
  1579. ], AgGridAngular.prototype, "suppressMaxRenderedRowRestriction", void 0);
  1580. __decorate([
  1581. Input(),
  1582. __metadata("design:type", Object)
  1583. ], AgGridAngular.prototype, "excludeChildrenWhenTreeDataFiltering", void 0);
  1584. __decorate([
  1585. Input(),
  1586. __metadata("design:type", Object)
  1587. ], AgGridAngular.prototype, "tooltipMouseTrack", void 0);
  1588. __decorate([
  1589. Input(),
  1590. __metadata("design:type", Object)
  1591. ], AgGridAngular.prototype, "keepDetailRows", void 0);
  1592. __decorate([
  1593. Input(),
  1594. __metadata("design:type", Object)
  1595. ], AgGridAngular.prototype, "paginateChildRows", void 0);
  1596. __decorate([
  1597. Input(),
  1598. __metadata("design:type", Object)
  1599. ], AgGridAngular.prototype, "preventDefaultOnContextMenu", void 0);
  1600. __decorate([
  1601. Input(),
  1602. __metadata("design:type", Object)
  1603. ], AgGridAngular.prototype, "undoRedoCellEditing", void 0);
  1604. __decorate([
  1605. Input(),
  1606. __metadata("design:type", Object)
  1607. ], AgGridAngular.prototype, "allowDragFromColumnsToolPanel", void 0);
  1608. __decorate([
  1609. Input(),
  1610. __metadata("design:type", Object)
  1611. ], AgGridAngular.prototype, "immutableData", void 0);
  1612. __decorate([
  1613. Input(),
  1614. __metadata("design:type", Object)
  1615. ], AgGridAngular.prototype, "immutableColumns", void 0);
  1616. __decorate([
  1617. Input(),
  1618. __metadata("design:type", Object)
  1619. ], AgGridAngular.prototype, "pivotSuppressAutoColumn", void 0);
  1620. __decorate([
  1621. Output(),
  1622. __metadata("design:type", EventEmitter)
  1623. ], AgGridAngular.prototype, "columnEverythingChanged", void 0);
  1624. __decorate([
  1625. Output(),
  1626. __metadata("design:type", EventEmitter)
  1627. ], AgGridAngular.prototype, "newColumnsLoaded", void 0);
  1628. __decorate([
  1629. Output(),
  1630. __metadata("design:type", EventEmitter)
  1631. ], AgGridAngular.prototype, "columnPivotModeChanged", void 0);
  1632. __decorate([
  1633. Output(),
  1634. __metadata("design:type", EventEmitter)
  1635. ], AgGridAngular.prototype, "columnRowGroupChanged", void 0);
  1636. __decorate([
  1637. Output(),
  1638. __metadata("design:type", EventEmitter)
  1639. ], AgGridAngular.prototype, "expandOrCollapseAll", void 0);
  1640. __decorate([
  1641. Output(),
  1642. __metadata("design:type", EventEmitter)
  1643. ], AgGridAngular.prototype, "columnPivotChanged", void 0);
  1644. __decorate([
  1645. Output(),
  1646. __metadata("design:type", EventEmitter)
  1647. ], AgGridAngular.prototype, "gridColumnsChanged", void 0);
  1648. __decorate([
  1649. Output(),
  1650. __metadata("design:type", EventEmitter)
  1651. ], AgGridAngular.prototype, "columnValueChanged", void 0);
  1652. __decorate([
  1653. Output(),
  1654. __metadata("design:type", EventEmitter)
  1655. ], AgGridAngular.prototype, "columnMoved", void 0);
  1656. __decorate([
  1657. Output(),
  1658. __metadata("design:type", EventEmitter)
  1659. ], AgGridAngular.prototype, "columnVisible", void 0);
  1660. __decorate([
  1661. Output(),
  1662. __metadata("design:type", EventEmitter)
  1663. ], AgGridAngular.prototype, "columnPinned", void 0);
  1664. __decorate([
  1665. Output(),
  1666. __metadata("design:type", EventEmitter)
  1667. ], AgGridAngular.prototype, "columnGroupOpened", void 0);
  1668. __decorate([
  1669. Output(),
  1670. __metadata("design:type", EventEmitter)
  1671. ], AgGridAngular.prototype, "columnResized", void 0);
  1672. __decorate([
  1673. Output(),
  1674. __metadata("design:type", EventEmitter)
  1675. ], AgGridAngular.prototype, "displayedColumnsChanged", void 0);
  1676. __decorate([
  1677. Output(),
  1678. __metadata("design:type", EventEmitter)
  1679. ], AgGridAngular.prototype, "virtualColumnsChanged", void 0);
  1680. __decorate([
  1681. Output(),
  1682. __metadata("design:type", EventEmitter)
  1683. ], AgGridAngular.prototype, "rowGroupOpened", void 0);
  1684. __decorate([
  1685. Output(),
  1686. __metadata("design:type", EventEmitter)
  1687. ], AgGridAngular.prototype, "rowDataChanged", void 0);
  1688. __decorate([
  1689. Output(),
  1690. __metadata("design:type", EventEmitter)
  1691. ], AgGridAngular.prototype, "rowDataUpdated", void 0);
  1692. __decorate([
  1693. Output(),
  1694. __metadata("design:type", EventEmitter)
  1695. ], AgGridAngular.prototype, "pinnedRowDataChanged", void 0);
  1696. __decorate([
  1697. Output(),
  1698. __metadata("design:type", EventEmitter)
  1699. ], AgGridAngular.prototype, "rangeSelectionChanged", void 0);
  1700. __decorate([
  1701. Output(),
  1702. __metadata("design:type", EventEmitter)
  1703. ], AgGridAngular.prototype, "chartCreated", void 0);
  1704. __decorate([
  1705. Output(),
  1706. __metadata("design:type", EventEmitter)
  1707. ], AgGridAngular.prototype, "chartRangeSelectionChanged", void 0);
  1708. __decorate([
  1709. Output(),
  1710. __metadata("design:type", EventEmitter)
  1711. ], AgGridAngular.prototype, "chartOptionsChanged", void 0);
  1712. __decorate([
  1713. Output(),
  1714. __metadata("design:type", EventEmitter)
  1715. ], AgGridAngular.prototype, "chartDestroyed", void 0);
  1716. __decorate([
  1717. Output(),
  1718. __metadata("design:type", EventEmitter)
  1719. ], AgGridAngular.prototype, "toolPanelVisibleChanged", void 0);
  1720. __decorate([
  1721. Output(),
  1722. __metadata("design:type", EventEmitter)
  1723. ], AgGridAngular.prototype, "modelUpdated", void 0);
  1724. __decorate([
  1725. Output(),
  1726. __metadata("design:type", EventEmitter)
  1727. ], AgGridAngular.prototype, "pasteStart", void 0);
  1728. __decorate([
  1729. Output(),
  1730. __metadata("design:type", EventEmitter)
  1731. ], AgGridAngular.prototype, "pasteEnd", void 0);
  1732. __decorate([
  1733. Output(),
  1734. __metadata("design:type", EventEmitter)
  1735. ], AgGridAngular.prototype, "fillStart", void 0);
  1736. __decorate([
  1737. Output(),
  1738. __metadata("design:type", EventEmitter)
  1739. ], AgGridAngular.prototype, "fillEnd", void 0);
  1740. __decorate([
  1741. Output(),
  1742. __metadata("design:type", EventEmitter)
  1743. ], AgGridAngular.prototype, "cellClicked", void 0);
  1744. __decorate([
  1745. Output(),
  1746. __metadata("design:type", EventEmitter)
  1747. ], AgGridAngular.prototype, "cellDoubleClicked", void 0);
  1748. __decorate([
  1749. Output(),
  1750. __metadata("design:type", EventEmitter)
  1751. ], AgGridAngular.prototype, "cellMouseDown", void 0);
  1752. __decorate([
  1753. Output(),
  1754. __metadata("design:type", EventEmitter)
  1755. ], AgGridAngular.prototype, "cellContextMenu", void 0);
  1756. __decorate([
  1757. Output(),
  1758. __metadata("design:type", EventEmitter)
  1759. ], AgGridAngular.prototype, "cellValueChanged", void 0);
  1760. __decorate([
  1761. Output(),
  1762. __metadata("design:type", EventEmitter)
  1763. ], AgGridAngular.prototype, "rowValueChanged", void 0);
  1764. __decorate([
  1765. Output(),
  1766. __metadata("design:type", EventEmitter)
  1767. ], AgGridAngular.prototype, "cellFocused", void 0);
  1768. __decorate([
  1769. Output(),
  1770. __metadata("design:type", EventEmitter)
  1771. ], AgGridAngular.prototype, "rowSelected", void 0);
  1772. __decorate([
  1773. Output(),
  1774. __metadata("design:type", EventEmitter)
  1775. ], AgGridAngular.prototype, "selectionChanged", void 0);
  1776. __decorate([
  1777. Output(),
  1778. __metadata("design:type", EventEmitter)
  1779. ], AgGridAngular.prototype, "cellKeyDown", void 0);
  1780. __decorate([
  1781. Output(),
  1782. __metadata("design:type", EventEmitter)
  1783. ], AgGridAngular.prototype, "cellKeyPress", void 0);
  1784. __decorate([
  1785. Output(),
  1786. __metadata("design:type", EventEmitter)
  1787. ], AgGridAngular.prototype, "cellMouseOver", void 0);
  1788. __decorate([
  1789. Output(),
  1790. __metadata("design:type", EventEmitter)
  1791. ], AgGridAngular.prototype, "cellMouseOut", void 0);
  1792. __decorate([
  1793. Output(),
  1794. __metadata("design:type", EventEmitter)
  1795. ], AgGridAngular.prototype, "filterChanged", void 0);
  1796. __decorate([
  1797. Output(),
  1798. __metadata("design:type", EventEmitter)
  1799. ], AgGridAngular.prototype, "filterModified", void 0);
  1800. __decorate([
  1801. Output(),
  1802. __metadata("design:type", EventEmitter)
  1803. ], AgGridAngular.prototype, "filterOpened", void 0);
  1804. __decorate([
  1805. Output(),
  1806. __metadata("design:type", EventEmitter)
  1807. ], AgGridAngular.prototype, "sortChanged", void 0);
  1808. __decorate([
  1809. Output(),
  1810. __metadata("design:type", EventEmitter)
  1811. ], AgGridAngular.prototype, "virtualRowRemoved", void 0);
  1812. __decorate([
  1813. Output(),
  1814. __metadata("design:type", EventEmitter)
  1815. ], AgGridAngular.prototype, "rowClicked", void 0);
  1816. __decorate([
  1817. Output(),
  1818. __metadata("design:type", EventEmitter)
  1819. ], AgGridAngular.prototype, "rowDoubleClicked", void 0);
  1820. __decorate([
  1821. Output(),
  1822. __metadata("design:type", EventEmitter)
  1823. ], AgGridAngular.prototype, "gridReady", void 0);
  1824. __decorate([
  1825. Output(),
  1826. __metadata("design:type", EventEmitter)
  1827. ], AgGridAngular.prototype, "gridSizeChanged", void 0);
  1828. __decorate([
  1829. Output(),
  1830. __metadata("design:type", EventEmitter)
  1831. ], AgGridAngular.prototype, "viewportChanged", void 0);
  1832. __decorate([
  1833. Output(),
  1834. __metadata("design:type", EventEmitter)
  1835. ], AgGridAngular.prototype, "firstDataRendered", void 0);
  1836. __decorate([
  1837. Output(),
  1838. __metadata("design:type", EventEmitter)
  1839. ], AgGridAngular.prototype, "dragStarted", void 0);
  1840. __decorate([
  1841. Output(),
  1842. __metadata("design:type", EventEmitter)
  1843. ], AgGridAngular.prototype, "dragStopped", void 0);
  1844. __decorate([
  1845. Output(),
  1846. __metadata("design:type", EventEmitter)
  1847. ], AgGridAngular.prototype, "checkboxChanged", void 0);
  1848. __decorate([
  1849. Output(),
  1850. __metadata("design:type", EventEmitter)
  1851. ], AgGridAngular.prototype, "rowEditingStarted", void 0);
  1852. __decorate([
  1853. Output(),
  1854. __metadata("design:type", EventEmitter)
  1855. ], AgGridAngular.prototype, "rowEditingStopped", void 0);
  1856. __decorate([
  1857. Output(),
  1858. __metadata("design:type", EventEmitter)
  1859. ], AgGridAngular.prototype, "cellEditingStarted", void 0);
  1860. __decorate([
  1861. Output(),
  1862. __metadata("design:type", EventEmitter)
  1863. ], AgGridAngular.prototype, "cellEditingStopped", void 0);
  1864. __decorate([
  1865. Output(),
  1866. __metadata("design:type", EventEmitter)
  1867. ], AgGridAngular.prototype, "bodyScroll", void 0);
  1868. __decorate([
  1869. Output(),
  1870. __metadata("design:type", EventEmitter)
  1871. ], AgGridAngular.prototype, "animationQueueEmpty", void 0);
  1872. __decorate([
  1873. Output(),
  1874. __metadata("design:type", EventEmitter)
  1875. ], AgGridAngular.prototype, "heightScaleChanged", void 0);
  1876. __decorate([
  1877. Output(),
  1878. __metadata("design:type", EventEmitter)
  1879. ], AgGridAngular.prototype, "paginationChanged", void 0);
  1880. __decorate([
  1881. Output(),
  1882. __metadata("design:type", EventEmitter)
  1883. ], AgGridAngular.prototype, "componentStateChanged", void 0);
  1884. __decorate([
  1885. Output(),
  1886. __metadata("design:type", EventEmitter)
  1887. ], AgGridAngular.prototype, "bodyHeightChanged", void 0);
  1888. __decorate([
  1889. Output(),
  1890. __metadata("design:type", EventEmitter)
  1891. ], AgGridAngular.prototype, "displayedColumnsWidthChanged", void 0);
  1892. __decorate([
  1893. Output(),
  1894. __metadata("design:type", EventEmitter)
  1895. ], AgGridAngular.prototype, "scrollVisibilityChanged", void 0);
  1896. __decorate([
  1897. Output(),
  1898. __metadata("design:type", EventEmitter)
  1899. ], AgGridAngular.prototype, "columnHoverChanged", void 0);
  1900. __decorate([
  1901. Output(),
  1902. __metadata("design:type", EventEmitter)
  1903. ], AgGridAngular.prototype, "flashCells", void 0);
  1904. __decorate([
  1905. Output(),
  1906. __metadata("design:type", EventEmitter)
  1907. ], AgGridAngular.prototype, "rowDragEnter", void 0);
  1908. __decorate([
  1909. Output(),
  1910. __metadata("design:type", EventEmitter)
  1911. ], AgGridAngular.prototype, "rowDragMove", void 0);
  1912. __decorate([
  1913. Output(),
  1914. __metadata("design:type", EventEmitter)
  1915. ], AgGridAngular.prototype, "rowDragLeave", void 0);
  1916. __decorate([
  1917. Output(),
  1918. __metadata("design:type", EventEmitter)
  1919. ], AgGridAngular.prototype, "rowDragEnd", void 0);
  1920. __decorate([
  1921. Output(),
  1922. __metadata("design:type", EventEmitter)
  1923. ], AgGridAngular.prototype, "popupToFront", void 0);
  1924. __decorate([
  1925. Output(),
  1926. __metadata("design:type", EventEmitter)
  1927. ], AgGridAngular.prototype, "columnRowGroupChangeRequest", void 0);
  1928. __decorate([
  1929. Output(),
  1930. __metadata("design:type", EventEmitter)
  1931. ], AgGridAngular.prototype, "columnPivotChangeRequest", void 0);
  1932. __decorate([
  1933. Output(),
  1934. __metadata("design:type", EventEmitter)
  1935. ], AgGridAngular.prototype, "columnValueChangeRequest", void 0);
  1936. __decorate([
  1937. Output(),
  1938. __metadata("design:type", EventEmitter)
  1939. ], AgGridAngular.prototype, "columnAggFuncChangeRequest", void 0);
  1940. __decorate([
  1941. Output(),
  1942. __metadata("design:type", EventEmitter)
  1943. ], AgGridAngular.prototype, "keyboardFocus", void 0);
  1944. __decorate([
  1945. Output(),
  1946. __metadata("design:type", EventEmitter)
  1947. ], AgGridAngular.prototype, "mouseFocus", void 0);
  1948. AgGridAngular = __decorate([
  1949. Component({
  1950. selector: 'ag-grid-angular',
  1951. template: '',
  1952. providers: [
  1953. AngularFrameworkOverrides,
  1954. AngularFrameworkComponentWrapper
  1955. ],
  1956. // tell angular we don't want view encapsulation, we don't want a shadow root
  1957. encapsulation: ViewEncapsulation.None
  1958. }),
  1959. __metadata("design:paramtypes", [ElementRef,
  1960. ViewContainerRef,
  1961. AngularFrameworkOverrides,
  1962. AngularFrameworkComponentWrapper,
  1963. ComponentFactoryResolver])
  1964. ], AgGridAngular);
  1965. export { AgGridAngular };
  1966. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1hbmd1bGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FnLWdyaWQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9hZy1ncmlkLWFuZ3VsYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsYUFBYSxFQUNiLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBR0gsYUFBYSxFQUNiLE1BQU0sRUFDTixJQUFJLEVBR0osa0JBQWtCLEVBR2xCLE9BQU8sRUFDUCxDQUFDLEVBQ0osTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFZMUQsSUFBYSxhQUFhLEdBQTFCLE1BQWEsYUFBYTtJQWtCdEIsWUFBWSxVQUFzQixFQUN0QixnQkFBa0MsRUFDbEMseUJBQW9ELEVBQ3BELHlCQUEyRCxFQUMzRCx5QkFBbUQ7UUFIbkQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBa0M7UUFDM0QsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQWxCdkQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUkzQiwwREFBMEQ7UUFDbEQsZ0JBQVcsR0FBcUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQThHOUQsVUFBVTtR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S0FDeEMsQ0FBQztxQ0FtQjBCLFVBQVU7UUFDSixnQkFBZ0I7UUFDUCx5QkFBeUI7UUFDekIsZ0NBQWdDO1FBQ2hDLHdCQUF3QjtHQXRCdEQsYUFBYSxDQXllekI7U0F6ZVksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHtcbiAgICBDb2xEZWYsXG4gICAgQ29sdW1uQXBpLFxuICAgIENvbXBvbmVudFV0aWwsXG4gICAgRXZlbnRzLFxuICAgIEdyaWQsXG4gICAgR3JpZEFwaSxcbiAgICBHcmlkT3B0aW9ucyxcbiAgICBHcmlkT3B0aW9uc1dyYXBwZXIsXG4gICAgR3JpZFBhcmFtcyxcbiAgICBNb2R1bGUsXG4gICAgUHJvbWlzZSxcbiAgICBfXG59IGZyb20gXCJhZy1ncmlkLWNvbW11bml0eVwiO1xuXG5pbXBvcnQgeyBBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzIH0gZnJvbSBcIi4vYW5ndWxhckZyYW1ld29ya092ZXJyaWRlc1wiO1xuaW1wb3J0IHsgQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXIgfSBmcm9tIFwiLi9hbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlclwiO1xuaW1wb3J0IHsgQWdHcmlkQ29sdW1uIH0gZnJvbSBcIi4vYWctZ3JpZC1jb2x1bW4uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWctZ3JpZC1hbmd1bGFyJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEFuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMsXG4gICAgICAgIEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRXcmFwcGVyXG4gICAgXSxcbiAgICAvLyB0ZWxsIGFuZ3VsYXIgd2UgZG9uJ3Qgd2FudCB2aWV3IGVuY2Fwc3VsYXRpb24sIHdlIGRvbid0IHdhbnQgYSBzaGFkb3cgcm9vdFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQWdHcmlkQW5ndWxhciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8vIG5vdCBpbnRlbmRlZCBmb3IgdXNlciB0byBpbnRlcmFjdCB3aXRoLiBzbyBwdXR0aW5nIF8gaW4gc28gaWYgdXNlciBnZXRzIHJlZmVyZW5jZVxuICAgIC8vIHRvIHRoaXMgb2JqZWN0LCB0aGV5IGtpbmQnYSBrbm93IGl0J3Mgbm90IHBhcnQgb2YgdGhlIGFncmVlZCBpbnRlcmZhY2VcbiAgICBwcml2YXRlIF9uYXRpdmVFbGVtZW50OiBhbnk7XG4gICAgcHJpdmF0ZSBfaW5pdGlhbGlzZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9kZXN0cm95ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZ3JpZFBhcmFtczogR3JpZFBhcmFtcztcblxuICAgIC8vIGluIG9yZGVyIHRvIGVuc3VyZSBmaXJpbmcgb2YgZ3JpZFJlYWR5IGlzIGRldGVybWluaXN0aWNcbiAgICBwcml2YXRlIF9mdWxseVJlYWR5OiBQcm9taXNlPGJvb2xlYW4+ID0gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuXG4gICAgLy8gbWFraW5nIHRoZXNlIHB1YmxpYywgc28gdGhleSBhcmUgYWNjZXNzaWJsZSB0byBwZW9wbGUgdXNpbmcgdGhlIG5nMiBjb21wb25lbnQgcmVmZXJlbmNlc1xuICAgIHB1YmxpYyBhcGk6IEdyaWRBcGk7XG4gICAgcHVibGljIGNvbHVtbkFwaTogQ29sdW1uQXBpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihBZ0dyaWRDb2x1bW4pIHB1YmxpYyBjb2x1bW5zOiBRdWVyeUxpc3Q8QWdHcmlkQ29sdW1uPjtcblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnREZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBhbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzOiBBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzLFxuICAgICAgICBwcml2YXRlIGZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXI6IEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRXcmFwcGVyLFxuICAgICAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgICAgICB0aGlzLl9uYXRpdmVFbGVtZW50ID0gZWxlbWVudERlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHRoaXMuZnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlci5zZXRWaWV3Q29udGFpbmVyUmVmKHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMuZnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlci5zZXRDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIodGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tGb3JEZXByZWNhdGVkRXZlbnRzKCk7XG5cbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucyA9IENvbXBvbmVudFV0aWwuY29weUF0dHJpYnV0ZXNUb0dyaWRPcHRpb25zKHRoaXMuZ3JpZE9wdGlvbnMsIHRoaXMsIHRydWUpO1xuXG4gICAgICAgIHRoaXMuZ3JpZFBhcmFtcyA9IHtcbiAgICAgICAgICAgIGdsb2JhbEV2ZW50TGlzdGVuZXI6IHRoaXMuZ2xvYmFsRXZlbnRMaXN0ZW5lci5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZnJhbWV3b3JrT3ZlcnJpZGVzOiB0aGlzLmFuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMsXG4gICAgICAgICAgICBwcm92aWRlZEJlYW5JbnN0YW5jZXM6IHtcbiAgICAgICAgICAgICAgICBmcmFtZXdvcmtDb21wb25lbnRXcmFwcGVyOiB0aGlzLmZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtb2R1bGVzOiAodGhpcy5tb2R1bGVzIHx8IFtdKSBhcyBhbnlcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5jb2x1bW5zICYmIHRoaXMuY29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmNvbHVtbkRlZnMgPSB0aGlzLmNvbHVtbnNcbiAgICAgICAgICAgICAgICAubWFwKChjb2x1bW46IEFnR3JpZENvbHVtbik6IENvbERlZiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2x1bW4udG9Db2xEZWYoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5ldyBHcmlkKHRoaXMuX25hdGl2ZUVsZW1lbnQsIHRoaXMuZ3JpZE9wdGlvbnMsIHRoaXMuZ3JpZFBhcmFtcyk7XG5cbiAgICAgICAgaWYgKHRoaXMuZ3JpZE9wdGlvbnMuYXBpKSB7XG4gICAgICAgICAgICB0aGlzLmFwaSA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZ3JpZE9wdGlvbnMuY29sdW1uQXBpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbkFwaSA9IHRoaXMuZ3JpZE9wdGlvbnMuY29sdW1uQXBpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faW5pdGlhbGlzZWQgPSB0cnVlO1xuXG4gICAgICAgIC8vIHNvbWV0aW1lcywgZXNwZWNpYWxseSBpbiBsYXJnZSBjbGllbnQgYXBwcyBncmlkUmVhZHkgY2FuIGZpcmUgYmVmb3JlIG5nQWZ0ZXJWaWV3SW5pdFxuICAgICAgICAvLyB0aGlzIHRpZXMgdGhlc2UgdG9nZXRoZXIgc28gdGhhdCBncmlkUmVhZHkgd2lsbCBhbHdheXMgZmlyZSBhZnRlciBhZ0dyaWRBbmd1bGFyJ3MgbmdBZnRlclZpZXdJbml0XG4gICAgICAgIC8vIHRoZSBhY3R1YWwgY29udGFpbmluZyBjb21wb25lbnQncyBuZ0FmdGVyVmlld0luaXQgd2lsbCBmaXJlIGp1c3QgYWZ0ZXIgYWdHcmlkQW5ndWxhcidzXG4gICAgICAgIHRoaXMuX2Z1bGx5UmVhZHkucmVzb2x2ZU5vdyhudWxsLCByZXNvbHZlID0+IHJlc29sdmUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpc2VkKSB7XG4gICAgICAgICAgICBDb21wb25lbnRVdGlsLnByb2Nlc3NPbkNoYW5nZShjaGFuZ2VzLCB0aGlzLmdyaWRPcHRpb25zLCB0aGlzLmFwaSwgdGhpcy5jb2x1bW5BcGkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGlzZWQpIHtcbiAgICAgICAgICAgIC8vIG5lZWQgdG8gZG8gdGhpcyBiZWZvcmUgdGhlIGRlc3Ryb3ksIHNvIHdlIGtub3cgbm90IHRvIGVtaXQgYW55IGV2ZW50c1xuICAgICAgICAgICAgLy8gd2hpbGUgdGVhcmluZyBkb3duIHRoZSBncmlkLlxuICAgICAgICAgICAgdGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFwaSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBpLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tGb3JEZXByZWNhdGVkRXZlbnRzKCkge1xuICAgICAgICBfLml0ZXJhdGVPYmplY3Q8YW55PihFdmVudHMsIChrZXksIGV2ZW50TmFtZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXNbZXZlbnROYW1lXSAmJiAoPEV2ZW50RW1pdHRlcjxhbnk+PnRoaXNbZXZlbnROYW1lXSkub2JzZXJ2ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBHcmlkT3B0aW9uc1dyYXBwZXIuY2hlY2tFdmVudERlcHJlY2F0aW9uKGV2ZW50TmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2xvYmFsRXZlbnRMaXN0ZW5lcihldmVudFR5cGU6IHN0cmluZywgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBpZiB3ZSBhcmUgdGVhcmluZyBkb3duLCBkb24ndCBlbWl0IGFuZ3VsYXIgZXZlbnRzLCBhcyB0aGlzIGNhdXNlc1xuICAgICAgICAvLyBwcm9ibGVtcyB3aXRoIHRoZSBhbmd1bGFyIHJvdXRlclxuICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBnZW5lcmljYWxseSBsb29rIHVwIHRoZSBldmVudFR5cGVcbiAgICAgICAgbGV0IGVtaXR0ZXIgPSA8RXZlbnRFbWl0dGVyPGFueT4+KDxhbnk+dGhpcylbZXZlbnRUeXBlXTtcbiAgICAgICAgaWYgKGVtaXR0ZXIpIHtcbiAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT09ICdncmlkUmVhZHknKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIHVzZXIgaXMgbGlzdGVuaW5nIGZvciBncmlkUmVhZHksIHdhaXQgZm9yIG5nQWZ0ZXJWaWV3SW5pdCB0byBmaXJlIGZpcnN0LCB0aGVuIGVtaXQgdGhlXG4gICAgICAgICAgICAgICAgLy8gZ3JpZFJlYWR5IGV2ZW50XG4gICAgICAgICAgICAgICAgdGhpcy5fZnVsbHlSZWFkeS50aGVuKChyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlbWl0dGVyLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZW1pdHRlci5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhZy1HcmlkLWFuZ3VsYXI6IGNvdWxkIG5vdCBmaW5kIEV2ZW50RW1pdHRlcjogJyArIGV2ZW50VHlwZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtb2R1bGVzOiBNb2R1bGVbXTtcblxuICAgIC8vIEBTVEFSVEBcbiAgICBASW5wdXQoKSBwdWJsaWMgc2xhdmVHcmlkcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWxpZ25lZEdyaWRzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dEYXRhIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb2x1bW5EZWZzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBleGNlbFN0eWxlcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGlubmVkVG9wUm93RGF0YSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGlubmVkQm90dG9tUm93RGF0YSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29tcG9uZW50cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZnJhbWV3b3JrQ29tcG9uZW50cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93U3R5bGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNvbnRleHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGF1dG9Hcm91cENvbHVtbkRlZiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBDb2x1bW5EZWYgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGxvY2FsZVRleHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGljb25zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhc291cmNlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXJ2ZXJTaWRlRGF0YXNvdXJjZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmlld3BvcnREYXRhc291cmNlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFJvd1JlbmRlcmVyUGFyYW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhZ2dGdW5jcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZnVsbFdpZHRoQ2VsbFJlbmRlcmVyUGFyYW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZWZhdWx0Q29sR3JvdXBEZWYgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRlZmF1bHRDb2xEZWYgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRlZmF1bHRFeHBvcnRQYXJhbXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNvbHVtblR5cGVzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dDbGFzc1J1bGVzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZXRhaWxHcmlkT3B0aW9ucyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGV0YWlsQ2VsbFJlbmRlcmVyUGFyYW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsb2FkaW5nQ2VsbFJlbmRlcmVyUGFyYW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsb2FkaW5nT3ZlcmxheUNvbXBvbmVudFBhcmFtcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbm9Sb3dzT3ZlcmxheUNvbXBvbmVudFBhcmFtcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcG9wdXBQYXJlbnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNvbFJlc2l6ZURlZmF1bHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHJlZHV4U3RvcmUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN0YXR1c0JhciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2lkZUJhciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc29ydGluZ09yZGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dDbGFzcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93U2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvdmVybGF5TG9hZGluZ1RlbXBsYXRlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvdmVybGF5Tm9Sb3dzVGVtcGxhdGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHF1aWNrRmlsdGVyVGV4dCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93TW9kZWxUeXBlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlZGl0VHlwZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZG9tTGF5b3V0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjbGlwYm9hcmREZWxpbWluYXRvciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93R3JvdXBQYW5lbFNob3cgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIG11bHRpU29ydEtleSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGl2b3RDb2x1bW5Hcm91cFRvdGFscyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGl2b3RSb3dUb3RhbHMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHBpdm90UGFuZWxTaG93IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dIZWlnaHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRldGFpbFJvd0hlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93QnVmZmVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb2xXaWR0aCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVhZGVySGVpZ2h0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cEhlYWRlckhlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZmxvYXRpbmdGaWx0ZXJzSGVpZ2h0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwaXZvdEhlYWRlckhlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGl2b3RHcm91cEhlYWRlckhlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBEZWZhdWx0RXhwYW5kZWQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIG1pbkNvbFdpZHRoIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXhDb2xXaWR0aCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmlld3BvcnRSb3dNb2RlbFBhZ2VTaXplIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2aWV3cG9ydFJvd01vZGVsQnVmZmVyU2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYXV0b1NpemVQYWRkaW5nIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXhCbG9ja3NJbkNhY2hlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXhDb25jdXJyZW50RGF0YXNvdXJjZVJlcXVlc3RzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwU2hvd0RlbGF5IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjYWNoZU92ZXJmbG93U2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGFnaW5hdGlvblBhZ2VTaXplIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjYWNoZUJsb2NrU2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaW5maW5pdGVJbml0aWFsUm93Q291bnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHNjcm9sbGJhcldpZHRoIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0aW9uU3RhcnRQYWdlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbmZpbml0ZUJsb2NrU2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYmF0Y2hVcGRhdGVXYWl0TWlsbGlzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhc3luY1RyYW5zYWN0aW9uV2FpdE1pbGxpcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYmxvY2tMb2FkRGVib3VuY2VNaWxsaXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGtlZXBEZXRhaWxSb3dzQ291bnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHVuZG9SZWRvQ2VsbEVkaXRpbmdMaW1pdCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgY2VsbEZsYXNoRGVsYXkgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNlbGxGYWRlRGVsYXkgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGxvY2FsZVRleHRGdW5jIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFJvd0lubmVyUmVuZGVyZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwUm93SW5uZXJSZW5kZXJlckZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0ZUNvbXBvbmVudCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0ZUNvbXBvbmVudEZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBSb3dSZW5kZXJlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBSb3dSZW5kZXJlckZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNFeHRlcm5hbEZpbHRlclByZXNlbnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldFJvd0hlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZG9lc0V4dGVybmFsRmlsdGVyUGFzcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ2V0Um93Q2xhc3MgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldFJvd1N0eWxlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXRSb3dDbGFzc1J1bGVzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0cmF2ZXJzZU5vZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldENvbnRleHRNZW51SXRlbXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldE1haW5NZW51SXRlbXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHByb2Nlc3NSb3dQb3N0Q3JlYXRlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzQ2VsbEZvckNsaXBib2FyZCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ2V0Tm9kZUNoaWxkRGV0YWlscyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBSb3dBZ2dOb2RlcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ2V0Um93Tm9kZUlkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0Z1bGxXaWR0aENlbGwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGZ1bGxXaWR0aENlbGxSZW5kZXJlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZnVsbFdpZHRoQ2VsbFJlbmRlcmVyRnJhbWV3b3JrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkb2VzRGF0YUZsb3dlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcHJvY2Vzc1NlY29uZGFyeUNvbERlZiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcHJvY2Vzc1NlY29uZGFyeUNvbEdyb3VwRGVmIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXRCdXNpbmVzc0tleUZvck5vZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHNlbmRUb0NsaXBib2FyZCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbmF2aWdhdGVUb05leHRDZWxsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0YWJUb05leHRDZWxsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXREZXRhaWxSb3dEYXRhIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzQ2VsbEZyb21DbGlwYm9hcmQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldERvY3VtZW50IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwb3N0UHJvY2Vzc1BvcHVwIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXRDaGlsZENvdW50IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXREYXRhUGF0aCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ0NlbGxSZW5kZXJlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ0NlbGxSZW5kZXJlckZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ092ZXJsYXlDb21wb25lbnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGxvYWRpbmdPdmVybGF5Q29tcG9uZW50RnJhbWV3b3JrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBub1Jvd3NPdmVybGF5Q29tcG9uZW50IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBub1Jvd3NPdmVybGF5Q29tcG9uZW50RnJhbWV3b3JrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZXRhaWxDZWxsUmVuZGVyZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRldGFpbENlbGxSZW5kZXJlckZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGVmYXVsdEdyb3VwU29ydENvbXBhcmF0b3IgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGlzUm93TWFzdGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1Jvd1NlbGVjdGFibGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHBvc3RTb3J0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzSGVhZGVyRm9yQ2xpcGJvYXJkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzRGF0YUZyb21DbGlwYm9hcmQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldFNlcnZlclNpZGVHcm91cEtleSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNTZXJ2ZXJTaWRlR3JvdXAgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzS2V5Ym9hcmRFdmVudCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgY3JlYXRlQ2hhcnRDb250YWluZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHByb2Nlc3NDaGFydE9wdGlvbnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldENoYXJ0VG9vbGJhckl0ZW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmaWxsT3BlcmF0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0b29sUGFuZWxTdXBwcmVzc1Jvd0dyb3VwcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdG9vbFBhbmVsU3VwcHJlc3NWYWx1ZXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHRvb2xQYW5lbFN1cHByZXNzUGl2b3RzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0b29sUGFuZWxTdXBwcmVzc1Bpdm90TW9kZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdG9vbFBhbmVsU3VwcHJlc3NTaWRlQnV0dG9ucyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdG9vbFBhbmVsU3VwcHJlc3NDb2x1bW5GaWx0ZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHRvb2xQYW5lbFN1cHByZXNzQ29sdW1uU2VsZWN0QWxsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0b29sUGFuZWxTdXBwcmVzc0NvbHVtbkV4cGFuZEFsbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNYWtlQ29sdW1uVmlzaWJsZUFmdGVyVW5Hcm91cCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NDZWxsU2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0hvcml6b250YWxTY3JvbGwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGFsd2F5c1Nob3dWZXJ0aWNhbFNjcm9sbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGVidWcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZUJyb3dzZXJUb29sdGlwcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlQ29sUmVzaXplIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVDZWxsRXhwcmVzc2lvbnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVNvcnRpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVNlcnZlclNpZGVTb3J0aW5nIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVGaWx0ZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVNlcnZlclNpZGVGaWx0ZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGFuZ3VsYXJDb21waWxlUm93cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYW5ndWxhckNvbXBpbGVGaWx0ZXJzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhbmd1bGFyQ29tcGlsZUhlYWRlcnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwU3VwcHJlc3NBdXRvQ29sdW1uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFNlbGVjdHNDaGlsZHJlbiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBJbmNsdWRlRm9vdGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cEluY2x1ZGVUb3RhbEZvb3RlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBVc2VFbnRpcmVSb3cgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwU3VwcHJlc3NSb3cgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwU3VwcHJlc3NCbGFua0hlYWRlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZm9yUHJpbnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzTWVudUhpZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHJvd0Rlc2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB1blNvcnRJY29uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc011bHRpU29ydCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2luZ2xlQ2xpY2tFZGl0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0xvYWRpbmdPdmVybGF5IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc05vUm93c092ZXJsYXkgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzQXV0b1NpemUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHNraXBIZWFkZXJPbkF1dG9TaXplIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc1BhcmVudHNJblJvd05vZGVzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93VG9vbFBhbmVsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NvbHVtbk1vdmVBbmltYXRpb24gOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzTW92YWJsZUNvbHVtbnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzRmllbGREb3ROb3RhdGlvbiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlUmFuZ2VTZWxlY3Rpb24gOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVJhbmdlSGFuZGxlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVGaWxsSGFuZGxlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NsZWFyT25GaWxsUmVkdWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZWx0YVNvcnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzVG91Y2ggOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzQXN5bmNFdmVudHMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGFsbG93Q29udGV4dE1lbnVXaXRoQ29udHJvbEtleSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NDb250ZXh0TWVudSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNZW51RmlsdGVyUGFuZWwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzTWVudU1haW5QYW5lbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNZW51Q29sdW1uUGFuZWwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHJlbWVtYmVyR3JvdXBTdGF0ZVdoZW5OZXdEYXRhIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVDZWxsQ2hhbmdlRmxhc2ggOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzRHJhZ0xlYXZlSGlkZXNDb2x1bW5zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc01pZGRsZUNsaWNrU2Nyb2xscyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NQcmV2ZW50RGVmYXVsdE9uTW91c2VXaGVlbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NVc2VDb2xJZEZvckdyb3VwcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NDb3B5Um93c1RvQ2xpcGJvYXJkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb3B5SGVhZGVyc1RvQ2xpcGJvYXJkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwaXZvdE1vZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzQWdnRnVuY0luSGVhZGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NvbHVtblZpcnR1YWxpc2F0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0FnZ0F0Um9vdExldmVsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0ZvY3VzQWZ0ZXJSZWZyZXNoIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmdW5jdGlvbnNQYXNzaXZlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmdW5jdGlvbnNSZWFkT25seSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYW5pbWF0ZVJvd3MgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwU2VsZWN0c0ZpbHRlcmVkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFJlbW92ZVNpbmdsZUNoaWxkcmVuIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFJlbW92ZUxvd2VzdFNpbmdsZUNoaWxkcmVuIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVSdGwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzQ2xpY2tFZGl0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dEcmFnTWFuYWdlZCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NSb3dEcmFnIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc01vdmVXaGVuUm93RHJhZ2dpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZU11bHRpUm93RHJhZ2dpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZUdyb3VwRWRpdCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW1iZWRGdWxsV2lkdGhSb3dzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZXByZWNhdGVkRW1iZWRGdWxsV2lkdGhSb3dzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc1RhYmJpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzUGFnaW5hdGlvblBhbmVsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmbG9hdGluZ0ZpbHRlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBIaWRlT3BlblBhcmVudHMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwTXVsdGlBdXRvQ29sdW1uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdG9wRWRpdGluZ1doZW5HcmlkTG9zZXNGb2N1cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGFnaW5hdGlvbkF1dG9QYWdlU2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NTY3JvbGxPbk5ld0RhdGEgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHB1cmdlQ2xvc2VkUm93Tm9kZXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNhY2hlUXVpY2tGaWx0ZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRlbHRhUm93RGF0YU1vZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuc3VyZURvbU9yZGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY2NlbnRlZFNvcnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHBpdm90VG90YWxzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NoYW5nZURldGVjdGlvbiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsdWVDYWNoZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsdWVDYWNoZU5ldmVyRXhwaXJlcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWdncmVnYXRlT25seUNoYW5nZWRDb2x1bW5zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0FuaW1hdGlvbkZyYW1lIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0V4Y2VsRXhwb3J0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NzdkV4cG9ydCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdHJlZURhdGEgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIG1hc3RlckRldGFpbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNdWx0aVJhbmdlU2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbnRlck1vdmVzRG93bkFmdGVyRWRpdCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW50ZXJNb3Zlc0Rvd24gOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzUHJvcGVydHlOYW1lc0NoZWNrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dNdWx0aVNlbGVjdFdpdGhDbGljayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29udHJhY3RDb2x1bW5TZWxlY3Rpb24gOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzRW50ZXJwcmlzZVJlc2V0T25OZXdDb2x1bW5zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVPbGRTZXRGaWx0ZXJNb2RlbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NSb3dIb3ZlckhpZ2hsaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JpZEF1dG9IZWlnaHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzUm93VHJhbnNmb3JtIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NsaXBib2FyZFBhc3RlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0xhc3RFbXB0eUxpbmVPblBhc3RlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXJ2ZXJTaWRlU29ydGluZ0Fsd2F5c1Jlc2V0cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcmVhY3ROZXh0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc1NldENvbHVtblN0YXRlRXZlbnRzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVDaGFydHMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRlbHRhQ29sdW1uTW9kZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNYWludGFpblVuc29ydGVkT3JkZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0Jyb3dzZXJSZXNpemVPYnNlcnZlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNYXhSZW5kZXJlZFJvd1Jlc3RyaWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBleGNsdWRlQ2hpbGRyZW5XaGVuVHJlZURhdGFGaWx0ZXJpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHRvb2x0aXBNb3VzZVRyYWNrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBrZWVwRGV0YWlsUm93cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGFnaW5hdGVDaGlsZFJvd3MgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHByZXZlbnREZWZhdWx0T25Db250ZXh0TWVudSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdW5kb1JlZG9DZWxsRWRpdGluZyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWxsb3dEcmFnRnJvbUNvbHVtbnNUb29sUGFuZWwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGltbXV0YWJsZURhdGEgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGltbXV0YWJsZUNvbHVtbnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHBpdm90U3VwcHJlc3NBdXRvQ29sdW1uIDogYW55ID0gdW5kZWZpbmVkO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5FdmVyeXRoaW5nQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIG5ld0NvbHVtbnNMb2FkZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5QaXZvdE1vZGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY29sdW1uUm93R3JvdXBDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZXhwYW5kT3JDb2xsYXBzZUFsbDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtblBpdm90Q2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGdyaWRDb2x1bW5zQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtbk1vdmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY29sdW1uVmlzaWJsZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtblBpbm5lZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtbkdyb3VwT3BlbmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY29sdW1uUmVzaXplZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGRpc3BsYXllZENvbHVtbnNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgdmlydHVhbENvbHVtbnNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcm93R3JvdXBPcGVuZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dEYXRhQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd0RhdGFVcGRhdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcGlubmVkUm93RGF0YUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByYW5nZVNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjaGFydENyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjaGFydFJhbmdlU2VsZWN0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNoYXJ0T3B0aW9uc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjaGFydERlc3Ryb3llZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHRvb2xQYW5lbFZpc2libGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgbW9kZWxVcGRhdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcGFzdGVTdGFydDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHBhc3RlRW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlsbFN0YXJ0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlsbEVuZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNlbGxDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbERvdWJsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjZWxsTW91c2VEb3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbENvbnRleHRNZW51OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbFZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd1ZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNlbGxGb2N1c2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcm93U2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbEtleURvd246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjZWxsS2V5UHJlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjZWxsTW91c2VPdmVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbE1vdXNlT3V0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlsdGVyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGZpbHRlck1vZGlmaWVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlsdGVyT3BlbmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgc29ydENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyB2aXJ0dWFsUm93UmVtb3ZlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dEb3VibGVDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZ3JpZFJlYWR5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZ3JpZFNpemVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgdmlld3BvcnRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlyc3REYXRhUmVuZGVyZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBkcmFnU3RhcnRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGRyYWdTdG9wcGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2hlY2tib3hDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcm93RWRpdGluZ1N0YXJ0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dFZGl0aW5nU3RvcHBlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNlbGxFZGl0aW5nU3RhcnRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNlbGxFZGl0aW5nU3RvcHBlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGJvZHlTY3JvbGw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBhbmltYXRpb25RdWV1ZUVtcHR5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgaGVpZ2h0U2NhbGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcGFnaW5hdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb21wb25lbnRTdGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBib2R5SGVpZ2h0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGRpc3BsYXllZENvbHVtbnNXaWR0aENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBzY3JvbGxWaXNpYmlsaXR5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtbkhvdmVyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGZsYXNoQ2VsbHM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dEcmFnRW50ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dEcmFnTW92ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd0RyYWdMZWF2ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd0RyYWdFbmQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBwb3B1cFRvRnJvbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5Sb3dHcm91cENoYW5nZVJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5QaXZvdENoYW5nZVJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5WYWx1ZUNoYW5nZVJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5BZ2dGdW5jQ2hhbmdlUmVxdWVzdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGtleWJvYXJkRm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBtb3VzZUZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIC8vIEBFTkRAXG59XG5cbiJdfQ==