{"version":3,"sources":["../node_modules/@ag-grid-enterprise/core/dist/es6/licenseManager.js","../node_modules/@ag-grid-enterprise/core/dist/es6/license/md5.js","../node_modules/@ag-grid-enterprise/core/dist/es6/license/watermark.js","../node_modules/@ag-grid-enterprise/core/dist/es6/agGridEnterpriseModule.js","../node_modules/@ag-grid-enterprise/core/dist/es6/main.js","../node_modules/@ag-grid-enterprise/column-tool-panel/dist/es6/columnToolPanel/primaryColsHeaderPanel.js","../node_modules/@ag-grid-enterprise/column-tool-panel/dist/es6/columnToolPanel/toolPanelColumnGroupComp.js","../node_modules/@ag-grid-enterprise/column-tool-panel/dist/es6/columnToolPanel/toolPanelColumnComp.js","../node_modules/@ag-grid-enterprise/column-tool-panel/dist/es6/columnToolPanel/primaryColsListPanel.js","../node_modules/@ag-grid-enterprise/column-tool-panel/dist/es6/columnToolPanel/pivotModePanel.js","../node_modules/@ag-grid-enterprise/column-tool-panel/dist/es6/columnToolPanel/columnToolPanel.js","../node_modules/@ag-grid-enterprise/column-tool-panel/dist/es6/columnToolPanel/primaryColsPanel.js","../node_modules/@ag-grid-enterprise/column-tool-panel/dist/es6/columnsToolPanelModule.js","../node_modules/@ag-grid-enterprise/column-tool-panel/dist/es6/main.js","../node_modules/@ag-grid-enterprise/clipboard/dist/es6/clipboard/clipboardService.js","../node_modules/@ag-grid-enterprise/clipboard/dist/es6/clipboardModule.js","../node_modules/@ag-grid-enterprise/clipboard/dist/es6/main.js"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","LicenseManager","this","watermarkMessage","undefined","LicenseManager_1","prototype","validateLicense","missingOrEmpty","licenseKey","outputMissingLicenseKey","_a","extractLicenseComponents","md5","license","version","isTrial","exists","validateLicenseKeyForVersion","validateLegacyKey","outputInvalidLicenseKey","extractExpiry","restrictionHashed","substring","lastIndexOf","Date","parseInt","decode","hashStart","extractBracketedInformation","getLicenseDetails","valid","expiry","isNaN","getTime","formatDate","isDisplayWatermark","getWatermarkMessage","date","day","getDate","monthIndex","getMonth","year","getFullYear","getGridReleaseDate","RELEASE_INFORMATION","input","n","o","u","a","keystr","t","f","e","replace","indexOf","charAt","String","fromCharCode","utf8_decode","charCodeAt","setLicenseKey","matches","split","filter","v","map","value","match","validateForTrial","gridReleaseDate","current","formattedExpiryDate","formattedReleaseDate","outputIncompatibleVersion","now","outputExpiredTrialKey","console","error","MD5","ieCompatibility","init","md5cycle","x","k","b","ff","gg","hh","ii","add32","cmn","q","s","md51","state","md5blk","tail","md5blks","rhex","hex_chr","j","hex","join","add32Compat","add32Std","y","lsw","__extends","extendStatics","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","create","_super","WatermarkComp","call","postConstruct","_this","show","shouldDisplayWatermark","addOrRemoveCssClass","getGui","eLicenseTextRef","innerText","licenseManager","window","setTimeout","addCssClass","isWhiteListURL","location","hostname","search","EnterpriseCoreModule","moduleName","beans","agStackComponents","componentName","componentClass","EXPAND_STATE","SELECTED_STATE","PrimaryColsHeaderPanel","apply","preConstruct","translate","gridOptionsWrapper","getLocaleTextFunc","setTemplate","createExpandIcons","useNativeCheckboxes","eSelectCheckbox","document","createElement","type","className","eSelect","appendChild","createCheckIcons","addDestroyableEventListener","eExpand","onExpandClicked","bind","onSelectClicked","eFilterTextField","onFilterTextChanged","onMiniFilterKeyPress","eventService","EVENT_NEW_COLUMNS_LOADED","showOrHideOptions","params","columnController","isReady","eExpandChecked","createIconNoSpan","eExpandUnchecked","eExpandIndeterminate","eSelectChecked","eSelectUnchecked","eSelectIndeterminate","showFilter","suppressColumnFilter","showSelect","suppressColumnSelectAll","showExpand","suppressColumnExpandAll","groupsPresent","isPrimaryColumnGroupsPresent","setDisplayed","eFilterWrapper","onFilterTextChangedDebounced","debounce","filterText","dispatchEvent","isKeyPressed","KEY_ENTER","eventType","selectState","CHECKED","expandState","EXPANDED","setExpandState","COLLAPSED","INDETERMINATE","setSelectionState","checked","indeterminate","UNCHECKED","ToolPanelColumnGroupComp","columnGroup","columnDept","allowDragging","expandByDefault","expandedCallback","getFilterResults","processingColumnStateChange","expanded","getFilterResultsCallback","TEMPLATE","eDragHandle","cbSelect","insertAdjacentElement","displayName","getDisplayNameForOriginalColumnGroup","missing","eLabel","innerHTML","setupExpandContract","EVENT_COLUMN_PIVOT_MODE_CHANGED","onColumnStateChanged","onLabelClicked","EVENT_CHANGED","onCheckboxChanged","setOpenClosedIcons","setupDragging","addVisibilityListenersToAllChildren","addToolPanelClassesFromColDef","getColGroupDef","getLeafColumns","forEach","column","EVENT_VISIBLE_CHANGED","EVENT_VALUE_CHANGED","EVENT_PIVOT_CHANGED","EVENT_ROW_GROUP_CHANGED","dragSource","ToolPanel","eElement","dragItemName","getDragItem","createDragItem","dragAndDropService","addDragSource","addDestroyFunc","removeDragSource","visibleState","col","getId","isVisible","columns","eGroupClosedIcon","createIcon","eGroupOpenedIcon","onExpandOrContractClicked","touchListener","eColumnGroupIcons","EVENT_TAP","destroy","nextState","getValue","onChangeCommon","event","selected","childColumns","isPivotMode","actionCheckedReduce","actionUnCheckedReduce","allowedColumns","getColDef","lockVisible","suppressColumnsToolPanel","filterResults_1","visibleColumns","getColId","setColumnsVisible","columnsToUnPivot","columnsToUnValue","columnsToUnGroup","isPivotActive","push","isRowGroupActive","isValueActive","removePivotColumns","removeRowGroupColumns","removeValueColumns","columnsToAggregate","columnsToGroup","columnsToPivot","isAnyFunctionActive","isAllowValue","isAllowRowGroup","addValueColumns","addRowGroupColumns","addPivotColumns","selectedValue","workOutSelectedValue","readOnlyValue","workOutReadOnlyValue","setValue","setReadOnly","pivotMode","leafColumns","filterResults","len","count","visible","hidden","ignoredChildCount","ignore","isColumnVisible","colsThatCanAction","isAnyFunctionAllowed","pivoted","grouped","aggregated","folderOpen","isExpanded","getDisplayName","onSelectAllChanged","isReadOnly","toggle","isSelected","isSelectable","isExpandable","setExpanded","setSelected","ToolPanelColumnComp","groupsExist","getDisplayNameForColumn","displayNameSanitised","escape","indent","isFunctionsReadOnly","actionCheckedPivotMode","actionUnCheckedPivotMode","setColumnVisible","functionPassive","isFunctionsPassive","copyOfPivotColumns","getPivotColumns","slice","event_1","EVENT_COLUMN_PIVOT_CHANGE_REQUEST","api","gridApi","columnApi","removePivotColumn","copyOfValueColumns","getValueColumns","event_2","EVENT_COLUMN_VALUE_CHANGE_REQUEST","removeValueColumn","copyOfRowGroupColumns","getRowGroupColumns","event_3","EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST","removeRowGroupColumn","removeFromArray","event_4","addValueColumn","event_5","addRowGroupColumn","isAllowPivot","event_6","addPivotColumn","checkboxReadOnly","anyFunctionActive","functionsReadOnly","noFunctionsAllowed","checkboxPassive","setPassive","warn","PrimaryColsListPanel","selectAllChecked","getColumnCompId","columnGroupChild","childIds","child","suppressSyncLayoutWithGrid","EVENT_COLUMN_MOVED","onColumnsChanged","EVENT_COLUMN_EVERYTHING_CHANGED","EVENT_COLUMN_PIVOT_CHANGED","EVENT_COLUMN_ROW_GROUP_CHANGED","EVENT_COLUMN_VALUE_CHANGED","EVENT_COLUMN_VISIBLE","fireSelectionChangedEvent","expandGroupsByDefault","contractColumnSelection","pivotModeActive","syncColumnLayout","buildTreeFromProvidedColumnDefs","colDefService","syncLayoutWithGrid","setColumnLayout","colDefs","destroyColumnComps","columnTree","createColumnTree","some","colDef","children","recursivelyAddComps","recursivelySetVisibility","notifyListeners","getPrimaryColumnTree","tree","dept","recursivelyAddGroupComps","addColumnComps","newDept","isPadding","renderedGroup","onGroupExpanded","getContext","wireBean","columnComps","getChildren","columnComp","fireGroupExpandedEvent","doSetExpandedAll","iterateObject","renderedItem","setGroupsExpanded","expand","groupIds","expandedGroupIds","suppliedGroupId","comp","unrecognisedGroupIds","groupId","includes","getExpandState","expandedCount","notExpandedCount","recursiveFunc","items","item","compId","groupChildren","doSetSelectedAll","updateSelections","colsToChange","getPrimaryColumns","hide","filteredCols_1","passesFilter","selectionState","getSelectionState","allPrimaryColumns","getAllPrimaryColumns","checkedCount","uncheckedCount","setFilterText","toLowerCase","filterColumns","columnCompId","recursivelyCheckFilter","parentPasses","atLeastOneChildPassed","groupPasses_1","childPasses","filterPasses","parentGroupsOpen","childrenOpen","clearElement","PivotModePanel","createTemplate","cbPivotMode","localeTextFunc","setLabel","onBtPivotMode","onPivotModeChanged","newValue","setPivotMode","getApi","refreshHeader","ColumnToolPanel","initialised","childDestroyFuncs","setVisible","defaultParams","suppressSideButtons","suppressPivotMode","suppressRowGroups","suppressValues","suppressPivots","mergeDeep","isRowGroupingModuleLoaded","pivotModePanel","addComponent","primaryColsPanel","createComponent","rowGroupDropZonePanel","valuesDropZonePanel","pivotDropZonePanel","setLastVisible","setPivotModeSectionVisible","insertBefore","firstChild","setRowGroupsSectionVisible","setValuesSectionVisible","setPivotSectionVisible","eGui","querySelectorAll","columnDrop","removeCssClass","lastVisible","last","assertRegistered","RowGroupingModule","expandColumnGroups","expandGroups","collapseColumnGroups","collapseGroups","component","destroyChildren","func","refresh","PrimaryColsPanel","primaryColsHeaderPanel","hideFilter","hideSelect","primaryColsListPanel","onSelectionChange","onExpandAll","onCollapseAll","onSelectAll","onUnselectAll","onFilterChanged","ColumnsToolPanelModule","ColumnToolPanelModule","userComponents","dependantModules","ClipboardService","registerGridCore","gridCore","logger","loggerFactory","rowModel","getType","ROW_MODEL_TYPE_CLIENT_SIDE","clientSideRowModel","pasteFromClipboard","log","executeOnTempElement","textArea","focus","element","data","parsedData","dataToArray","userFunc","getProcessDataFromClipboardFunc","doPasteOperation","cellsToFlash","updatedRowNodes","focusedCell","changedPath","singleCellInClipboard","rangeController","isMoreThanOneCell","pasteIntoActiveRange","pasteStartingFromFocusedCell","pasteOperationFunc","EVENT_PASTE_START","getColumnApi","source","onlyChangedColumns","isAggregateOnlyChangedColumns","getRootNode","focusedCellController","getFocusedCell","doAggregate","rowRenderer","refreshCells","dispatchFlashCells","fireRowChanged","setFocusedCell","rowIndex","rowPinned","EVENT_PASTE_END","clipboardData","abortRepeatingPasteIntoRows","rangeSize","indexOffset","dataRowIndex","iterateActiveRanges","currentRow","rowNode","index","isLastRow","currentRowData","idx","isCellEditable","isSuppressPaste","processCellFromClipboardFunc","getProcessCellFromClipboardFunc","userProcessCell","EXPORT_TYPE_DRAG_COPY","valueService","SOURCE_PASTE","addParentNode","parent","cellId","cellPositionUtils","createIdFromValues","columnsToPasteInto","getDisplayedColumnsStartingAt","pasteSingleValue","pasteMultipleValues","EXPORT_TYPE_CLIPBOARD","copyRangeDown","isEmpty","firstRowValues","firstRowValue","processCellForClipboardFunc","getProcessCellForClipboardFunc","rowNodes","isFullRowEdit","EVENT_ROW_VALUE_CHANGED","node","context","clipboardGridData","clipboardRowData","rowPositionUtils","getRowNode","updateCellValue","cellNavigationService","getRowBelow","processedValue","copyToClipboard","includeHeaders","isCopyHeadersToClipboard","selectedRowsToCopy","selectionController","isSuppressCopyRowsToClipboard","copySelectedRangeToClipboard","copySelectedRowsToClipboard","isAnyCellFocused","copyFocusedCellToClipboard","onlyFirst","rowCallback","columnCallback","cellRanges","getCellRanges","range","iterateActiveRange","isLastRange","getRangeStartRow","lastRow","getRangeEndRow","rangeIndex","sameRow","deliminator","getClipboardDeliminator","userProcessHeader","getProcessHeaderForClipboardFunc","copyDataToClipboard","createId","headerValue","toString","EVENT_FLASH_CELLS","cells","columnKeys","skipHeader","skipFooters","suppressQuotes","columnSeparator","onlySelected","processCellCallback","processHeaderCallback","csvCreator","getDataAsCsv","userProvidedFunc","getSendToClipboardFunc","select","execCommand","callbackNow","callbackAfter","eTempInput","style","width","height","top","left","position","opacity","guiRoot","getRootGui","err","removeChild","strData","arrMatches","delimiter","objPattern","RegExp","arrData","atFirstRow","exec","strMatchedDelimiter","strMatchedValue","lastItem","startRangeIndex","endRangeIndex","ranges","ClipboardModule"],"mappings":"0GAAIA,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAG5D,EAAgC,WAChC,SAASO,IACLC,KAAKC,sBAAmBC,EAgO5B,IAAIC,EAWJ,OAzOAA,EAAmBJ,EACnBA,EAAeK,UAAUC,gBAAkB,WACvC,GAAI,IAAEC,eAAeH,EAAiBI,YAClCP,KAAKQ,+BAEJ,GAAIL,EAAiBI,WAAWhB,OAAS,GAAI,CAC9C,IAAIkB,EAAKN,EAAiBO,yBAAyBP,EAAiBI,YAAaI,EAAMF,EAAGE,IAAKC,EAAUH,EAAGG,QAASC,EAAUJ,EAAGI,QAASC,EAAUL,EAAGK,QACpJH,IAAQX,KAAKW,IAAIA,IAAIC,GACjB,IAAEG,OAAOF,IAAYA,EACrBb,KAAKgB,6BAA6BH,IAAWC,EAASF,GAGtDZ,KAAKiB,kBAAkBL,GAI3BZ,KAAKkB,+BAITlB,KAAKkB,2BAGbnB,EAAeoB,cAAgB,SAAUP,GACrC,IAAIQ,EAAoBR,EAAQS,UAAUT,EAAQU,YAAY,KAAO,EAAGV,EAAQrB,QAChF,OAAO,IAAIgC,KAAKC,SAASrB,EAAiBsB,OAAOL,GAAoB,MAEzErB,EAAeW,yBAA2B,SAAUH,GAChD,IAAImB,EAAYnB,EAAWhB,OAAS,GAChCoB,EAAMJ,EAAWc,UAAUK,GAC3Bd,EAAUL,EAAWc,UAAU,EAAGK,GAClCjB,EAAKN,EAAiBwB,4BAA4BpB,GACtD,MAAO,CAAEI,IAAKA,EAAKC,QAASA,EAASC,QADwCJ,EAAG,GACzBK,QADuCL,EAAG,KAGrGV,EAAeK,UAAUwB,kBAAoB,SAAUrB,GACnD,IAAIE,EAAKN,EAAiBO,yBAAyBH,GAAaI,EAAMF,EAAGE,IAAKC,EAAUH,EAAGG,QAASC,EAAUJ,EAAGI,QAASC,EAAUL,EAAGK,QACnIe,EAASlB,IAAQX,KAAKW,IAAIA,IAAIC,GAC9BkB,EAAS,KAKb,OAJID,IACAC,EAAS3B,EAAiBgB,cAAcP,GACxCiB,GAASE,MAAMD,EAAOE,YAEnB,CACHzB,WAAYA,EACZsB,MAAOA,EACPC,OAAQD,EAAQ1B,EAAiB8B,WAAWH,GAAU,KACtDjB,QAASA,GAAoB,SAC7BC,QAASA,IAGjBf,EAAeK,UAAU8B,mBAAqB,WAC1C,OAAQ,IAAE5B,eAAeN,KAAKC,mBAElCF,EAAeK,UAAU+B,oBAAsB,WAC3C,OAAOnC,KAAKC,kBAEhBF,EAAekC,WAAa,SAAUG,GAClC,IAMIC,EAAMD,EAAKE,UACXC,EAAaH,EAAKI,WAClBC,EAAOL,EAAKM,cAChB,OAAOL,EAAM,IATI,CACb,UAAW,WAAY,QACvB,QAAS,MAAO,OAAQ,OACxB,SAAU,YAAa,UACvB,WAAY,YAKcE,GAAc,IAAME,GAEtD1C,EAAe4C,mBAAqB,WAChC,OAAO,IAAIpB,KAAKC,SAASrB,EAAiBsB,OAAOtB,EAAiByC,qBAAsB,MAE5F7C,EAAe0B,OAAS,SAAUoB,GAO9B,IANA,IAEIC,EAAGtD,EAAGK,EACHkD,EAAGC,EAAGC,EAHTC,EAAS,oEACTC,EAAI,GAGJC,EAAI,EACJC,EAAIR,EAAMS,QAAQ,mBAAoB,IACnCF,EAAIC,EAAE9D,QAKTuD,EAJII,EAAOK,QAAQF,EAAEG,OAAOJ,OAInB,GAHTL,EAAIG,EAAOK,QAAQF,EAAEG,OAAOJ,QAGV,EAClB5D,GAAS,GAAJuD,IAAW,GAHhBC,EAAIE,EAAOK,QAAQF,EAAEG,OAAOJ,QAGH,EACzBvD,GAAS,EAAJmD,IAAU,GAHfC,EAAIC,EAAOK,QAAQF,EAAEG,OAAOJ,OAI5BD,GAAQM,OAAOC,aAAaZ,GACnB,IAALE,IACAG,GAAQM,OAAOC,aAAalE,IAEvB,IAALyD,IACAE,GAAQM,OAAOC,aAAa7D,IAIpC,OADAsD,EAAIhD,EAAiBwD,YAAYR,IAGrCpD,EAAe4D,YAAc,SAAUd,GACnCA,EAAQA,EAAMS,QAAQ,MAAO,KAE7B,IADA,IAAIH,EAAI,GACCL,EAAI,EAAGA,EAAID,EAAMtD,OAAQuD,IAAK,CACnC,IAAItD,EAAIqD,EAAMe,WAAWd,GACrBtD,EAAI,IACJ2D,GAAKM,OAAOC,aAAalE,GAEpBA,EAAI,KAAOA,EAAI,MACpB2D,GAAKM,OAAOC,aAAalE,GAAK,EAAI,KAClC2D,GAAKM,OAAOC,aAAiB,GAAJlE,EAAS,OAGlC2D,GAAKM,OAAOC,aAAalE,GAAK,GAAK,KACnC2D,GAAKM,OAAOC,aAAalE,GAAK,EAAI,GAAK,KACvC2D,GAAKM,OAAOC,aAAiB,GAAJlE,EAAS,MAG1C,OAAO2D,GAEXpD,EAAe8D,cAAgB,SAAUtD,GACrCJ,EAAiBI,WAAaA,GAElCR,EAAe4B,4BAA8B,SAAUpB,GACnD,IAAIuD,EAAUvD,EAAWwD,MAAM,KAC1BC,QAAO,SAAUC,GAClB,OAAOA,EAAEV,QAAQ,MAAQ,KAExBW,KAAI,SAAUC,GACf,OAAOA,EAAMJ,MAAM,KAAK,MAE5B,IAAKD,GAA8B,IAAnBA,EAAQvE,OACpB,MAAO,CAAC,KAAM,MAElB,IAAIuB,EAAoF,IAA1EgD,EAAQE,QAAO,SAAUI,GAAS,MAAiB,UAAVA,KAAsB7E,OAE7E,MAAO,CADOuE,EAAQE,QAAO,SAAUI,GAAS,OAA8B,IAAvBA,EAAMb,QAAQ,QAAeW,KAAI,SAAUE,GAAS,OAAOA,EAAMd,QAAQ,KAAM,OAAQ,GAC7HxC,IAErBf,EAAeK,UAAUY,6BAA+B,SAAUH,EAASC,EAASF,GAChF,OAAQC,GACJ,IAAK,IACGC,EACAd,KAAKqE,iBAAiBzD,GAGtBZ,KAAKiB,kBAAkBL,KAKvCb,EAAeK,UAAUa,kBAAoB,SAAUL,GACnD,IAAI0D,EAAkBnE,EAAiBwC,qBACnCb,EAAS3B,EAAiBgB,cAAcP,GACxCiB,GAAQ,EACR0C,GAAU,EAKd,GAJKxC,MAAMD,EAAOE,aACdH,GAAQ,EACR0C,EAAWD,EAAkBxC,GAE5BD,GAGA,IAAK0C,EAAS,CACf,IAAIC,EAAsBrE,EAAiB8B,WAAWH,GAClD2C,EAAuBtE,EAAiB8B,WAAWqC,GACvDtE,KAAK0E,0BAA0BF,EAAqBC,SALpDzE,KAAKkB,2BAQbnB,EAAeK,UAAUiE,iBAAmB,SAAUzD,GAClD,IAAIkB,EAAS3B,EAAiBgB,cAAcP,GACxC+D,EAAM,IAAIpD,KACVM,GAAQ,EACR0C,GAAU,EAKd,GAJKxC,MAAMD,EAAOE,aACdH,GAAQ,EACR0C,EAAWzC,EAAS6C,GAEnB9C,GAGA,IAAK0C,EAAS,CACf,IAAIC,EAAsBrE,EAAiB8B,WAAWH,GACtD9B,KAAK4E,sBAAsBJ,SAJ3BxE,KAAKkB,2BAObnB,EAAeK,UAAUc,wBAA0B,WAC/C2D,QAAQC,MAAM,qHACdD,QAAQC,MAAM,qHACdD,QAAQC,MAAM,qHACdD,QAAQC,MAAM,qHACdD,QAAQC,MAAM,qHACdD,QAAQC,MAAM,qHACd9E,KAAKC,iBAAmB,mBAE5BF,EAAeK,UAAUwE,sBAAwB,SAAUJ,GACvDK,QAAQC,MAAM,oHACdD,QAAQC,MAAM,oHACdD,QAAQC,MAAM,oHACdD,QAAQC,MAAM,oDAAsDN,EAAsB,sDAC1FK,QAAQC,MAAM,oHACdD,QAAQC,MAAM,oHACdD,QAAQC,MAAM,oHACd9E,KAAKC,iBAAmB,wBAE5BF,EAAeK,UAAUI,wBAA0B,WAC/CqE,QAAQC,MAAM,oHACdD,QAAQC,MAAM,oHACdD,QAAQC,MAAM,oHACdD,QAAQC,MAAM,oHACdD,QAAQC,MAAM,oHACdD,QAAQC,MAAM,oHACdD,QAAQC,MAAM,oHACdD,QAAQC,MAAM,oHACd9E,KAAKC,iBAAmB,sBAE5BF,EAAeK,UAAUsE,0BAA4B,SAAUF,EAAqBC,GAChFI,QAAQC,MAAM,gIACdD,QAAQC,MAAM,gIACdD,QAAQC,MAAM,gIACdD,QAAQC,MAAM,oDAAsDN,EAAsB,8CAAgDC,EAAuB,OACjKI,QAAQC,MAAM,gIACdD,QAAQC,MAAM,gIACdD,QAAQC,MAAM,gIACd9E,KAAKC,iBAAmB,gCAG5BF,EAAe6C,oBAAsB,uBACrC7D,EAAW,CACP,oBAAU,QACXgB,EAAeK,UAAW,WAAO,GACpCrB,EAAW,CACP,gBACDgB,EAAeK,UAAW,kBAAmB,MAChDL,EAAiBI,EAAmBpB,EAAW,CAC3C,eAAK,mBACNgB,GA5O4B,GCP/B,EAA0C,SAAUf,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAG5D,EAAqB,WACrB,SAASuF,IACL/E,KAAKgF,iBAAkB,EA0K3B,OAxKAD,EAAI3E,UAAU6E,KAAO,WACjBjF,KAAKgF,gBAAwC,oCAArBhF,KAAKW,IAAI,UAErCoE,EAAI3E,UAAU8E,SAAW,SAAUC,EAAGC,GAClC,IAAInC,EAAIkC,EAAE,GAAIE,EAAIF,EAAE,GAAI9F,EAAI8F,EAAE,GAAI/F,EAAI+F,EAAE,GACxClC,EAAIjD,KAAKsF,GAAGrC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,GAAI,GAAI,WAClChG,EAAIY,KAAKsF,GAAGlG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,GAAI,IAAK,WACnC/F,EAAIW,KAAKsF,GAAGjG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,GAAI,GAAI,WAClCC,EAAIrF,KAAKsF,GAAGD,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,GAAI,IAAK,YACnCnC,EAAIjD,KAAKsF,GAAGrC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,GAAI,GAAI,WAClChG,EAAIY,KAAKsF,GAAGlG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,GAAI,GAAI,YAClC/F,EAAIW,KAAKsF,GAAGjG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,GAAI,IAAK,YACnCC,EAAIrF,KAAKsF,GAAGD,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,GAAI,IAAK,UACnCnC,EAAIjD,KAAKsF,GAAGrC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,GAAI,EAAG,YACjChG,EAAIY,KAAKsF,GAAGlG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,GAAI,IAAK,YACnC/F,EAAIW,KAAKsF,GAAGjG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,IAAK,IAAK,OACpCC,EAAIrF,KAAKsF,GAAGD,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,IAAK,IAAK,YACpCnC,EAAIjD,KAAKsF,GAAGrC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,IAAK,EAAG,YAClChG,EAAIY,KAAKsF,GAAGlG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,IAAK,IAAK,UACpC/F,EAAIW,KAAKsF,GAAGjG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,IAAK,IAAK,YACpCC,EAAIrF,KAAKsF,GAAGD,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,IAAK,GAAI,YACnCnC,EAAIjD,KAAKuF,GAAGtC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,GAAI,GAAI,WAClChG,EAAIY,KAAKuF,GAAGnG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,GAAI,GAAI,YAClC/F,EAAIW,KAAKuF,GAAGlG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,IAAK,GAAI,WACnCC,EAAIrF,KAAKuF,GAAGF,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,GAAI,IAAK,WACnCnC,EAAIjD,KAAKuF,GAAGtC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,GAAI,GAAI,WAClChG,EAAIY,KAAKuF,GAAGnG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,IAAK,EAAG,UAClC/F,EAAIW,KAAKuF,GAAGlG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,IAAK,IAAK,WACpCC,EAAIrF,KAAKuF,GAAGF,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,GAAI,IAAK,WACnCnC,EAAIjD,KAAKuF,GAAGtC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,GAAI,EAAG,WACjChG,EAAIY,KAAKuF,GAAGnG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,IAAK,GAAI,YACnC/F,EAAIW,KAAKuF,GAAGlG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,GAAI,IAAK,WACnCC,EAAIrF,KAAKuF,GAAGF,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,GAAI,GAAI,YAClCnC,EAAIjD,KAAKuF,GAAGtC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,IAAK,GAAI,YACnChG,EAAIY,KAAKuF,GAAGnG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,GAAI,GAAI,UAClC/F,EAAIW,KAAKuF,GAAGlG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,GAAI,GAAI,YAClCC,EAAIrF,KAAKuF,GAAGF,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,IAAK,IAAK,YACpCnC,EAAIjD,KAAKwF,GAAGvC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,GAAI,GAAI,QAClChG,EAAIY,KAAKwF,GAAGpG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,GAAI,IAAK,YACnC/F,EAAIW,KAAKwF,GAAGnG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,IAAK,GAAI,YACnCC,EAAIrF,KAAKwF,GAAGH,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,IAAK,IAAK,UACpCnC,EAAIjD,KAAKwF,GAAGvC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,GAAI,GAAI,YAClChG,EAAIY,KAAKwF,GAAGpG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,GAAI,GAAI,YAClC/F,EAAIW,KAAKwF,GAAGnG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,GAAI,IAAK,WACnCC,EAAIrF,KAAKwF,GAAGH,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,IAAK,IAAK,YACpCnC,EAAIjD,KAAKwF,GAAGvC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,IAAK,EAAG,WAClChG,EAAIY,KAAKwF,GAAGpG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,GAAI,IAAK,WACnC/F,EAAIW,KAAKwF,GAAGnG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,GAAI,IAAK,WACnCC,EAAIrF,KAAKwF,GAAGH,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,GAAI,GAAI,UAClCnC,EAAIjD,KAAKwF,GAAGvC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,GAAI,GAAI,WAClChG,EAAIY,KAAKwF,GAAGpG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,IAAK,IAAK,WACpC/F,EAAIW,KAAKwF,GAAGnG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,IAAK,GAAI,WACnCC,EAAIrF,KAAKwF,GAAGH,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,GAAI,IAAK,WACnCnC,EAAIjD,KAAKyF,GAAGxC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,GAAI,GAAI,WAClChG,EAAIY,KAAKyF,GAAGrG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,GAAI,GAAI,YAClC/F,EAAIW,KAAKyF,GAAGpG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,IAAK,IAAK,YACpCC,EAAIrF,KAAKyF,GAAGJ,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,GAAI,IAAK,UACnCnC,EAAIjD,KAAKyF,GAAGxC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,IAAK,EAAG,YAClChG,EAAIY,KAAKyF,GAAGrG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,GAAI,IAAK,YACnC/F,EAAIW,KAAKyF,GAAGpG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,IAAK,IAAK,SACpCC,EAAIrF,KAAKyF,GAAGJ,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,GAAI,IAAK,YACnCnC,EAAIjD,KAAKyF,GAAGxC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,GAAI,EAAG,YACjChG,EAAIY,KAAKyF,GAAGrG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,IAAK,IAAK,UACpC/F,EAAIW,KAAKyF,GAAGpG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,GAAI,IAAK,YACnCC,EAAIrF,KAAKyF,GAAGJ,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,IAAK,GAAI,YACnCnC,EAAIjD,KAAKyF,GAAGxC,EAAGoC,EAAGhG,EAAGD,EAAGgG,EAAE,GAAI,GAAI,WAClChG,EAAIY,KAAKyF,GAAGrG,EAAG6D,EAAGoC,EAAGhG,EAAG+F,EAAE,IAAK,IAAK,YACpC/F,EAAIW,KAAKyF,GAAGpG,EAAGD,EAAG6D,EAAGoC,EAAGD,EAAE,GAAI,GAAI,WAClCC,EAAIrF,KAAKyF,GAAGJ,EAAGhG,EAAGD,EAAG6D,EAAGmC,EAAE,GAAI,IAAK,WACnCD,EAAE,GAAKnF,KAAK0F,MAAMzC,EAAGkC,EAAE,IACvBA,EAAE,GAAKnF,KAAK0F,MAAML,EAAGF,EAAE,IACvBA,EAAE,GAAKnF,KAAK0F,MAAMrG,EAAG8F,EAAE,IACvBA,EAAE,GAAKnF,KAAK0F,MAAMtG,EAAG+F,EAAE,KAE3BJ,EAAI3E,UAAUuF,IAAM,SAAUC,EAAG3C,EAAGoC,EAAGF,EAAGU,EAAG1C,GAEzC,OADAF,EAAIjD,KAAK0F,MAAM1F,KAAK0F,MAAMzC,EAAG2C,GAAI5F,KAAK0F,MAAMP,EAAGhC,IACxCnD,KAAK0F,MAAOzC,GAAK4C,EAAM5C,IAAO,GAAK4C,EAAKR,IAEnDN,EAAI3E,UAAUkF,GAAK,SAAUrC,EAAGoC,EAAGhG,EAAGD,EAAG+F,EAAGU,EAAG1C,GAC3C,OAAOnD,KAAK2F,IAAKN,EAAIhG,GAAQgG,EAAKjG,EAAI6D,EAAGoC,EAAGF,EAAGU,EAAG1C,IAEtD4B,EAAI3E,UAAUmF,GAAK,SAAUtC,EAAGoC,EAAGhG,EAAGD,EAAG+F,EAAGU,EAAG1C,GAC3C,OAAOnD,KAAK2F,IAAKN,EAAIjG,EAAMC,GAAMD,EAAK6D,EAAGoC,EAAGF,EAAGU,EAAG1C,IAEtD4B,EAAI3E,UAAUoF,GAAK,SAAUvC,EAAGoC,EAAGhG,EAAGD,EAAG+F,EAAGU,EAAG1C,GAC3C,OAAOnD,KAAK2F,IAAIN,EAAIhG,EAAID,EAAG6D,EAAGoC,EAAGF,EAAGU,EAAG1C,IAE3C4B,EAAI3E,UAAUqF,GAAK,SAAUxC,EAAGoC,EAAGhG,EAAGD,EAAG+F,EAAGU,EAAG1C,GAC3C,OAAOnD,KAAK2F,IAAItG,GAAKgG,GAAMjG,GAAK6D,EAAGoC,EAAGF,EAAGU,EAAG1C,IAEhD4B,EAAI3E,UAAU0F,KAAO,SAAUD,GAC3B,IAEIhG,EAFAiD,EAAI+C,EAAEtG,OACNwG,EAAQ,CAAC,YAAa,WAAY,WAAY,WAElD,IAAKlG,EAAI,GAAIA,GAAKgG,EAAEtG,OAAQM,GAAK,GAC7BG,KAAKkF,SAASa,EAAO/F,KAAKgG,OAAOH,EAAExE,UAAUxB,EAAI,GAAIA,KAEzDgG,EAAIA,EAAExE,UAAUxB,EAAI,IACpB,IAAIoG,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACzD,IAAKpG,EAAI,EAAGA,EAAIgG,EAAEtG,OAAQM,IACtBoG,EAAKpG,GAAK,IAAMgG,EAAEjC,WAAW/D,KAAQA,EAAI,GAAM,GAGnD,GADAoG,EAAKpG,GAAK,IAAM,MAAUA,EAAI,GAAM,GAChCA,EAAI,GAEJ,IADAG,KAAKkF,SAASa,EAAOE,GAChBpG,EAAI,EAAGA,EAAI,GAAIA,IAChBoG,EAAKpG,GAAK,EAKlB,OAFAoG,EAAK,IAAU,EAAJnD,EACX9C,KAAKkF,SAASa,EAAOE,GACdF,GAUXhB,EAAI3E,UAAU4F,OAAS,SAAUH,GAG7B,IAFA,IAAIK,EAAU,GAELrG,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACzBqG,EAAQrG,GAAK,GAAKgG,EAAEjC,WAAW/D,IACxBgG,EAAEjC,WAAW/D,EAAI,IAAM,IACvBgG,EAAEjC,WAAW/D,EAAI,IAAM,KACvBgG,EAAEjC,WAAW/D,EAAI,IAAM,IAElC,OAAOqG,GAEXnB,EAAI3E,UAAU+F,KAAO,SAAUrD,GAG3B,IAFA,IAAIsD,EAAU,mBAAmBrC,MAAM,IACnC8B,EAAI,GAAIQ,EAAI,EACTA,EAAI,EAAGA,IACVR,GAAKO,EAAStD,GAAU,EAAJuD,EAAQ,EAAM,IAC5BD,EAAStD,GAAU,EAAJuD,EAAU,IAEnC,OAAOR,GAEXd,EAAI3E,UAAUkG,IAAM,SAAUnB,GAC1B,IAAK,IAAItF,EAAI,EAAGA,EAAIsF,EAAE5F,OAAQM,IAC1BsF,EAAEtF,GAAKG,KAAKmG,KAAKhB,EAAEtF,IAEvB,OAAOsF,EAAEoB,KAAK,KAElBxB,EAAI3E,UAAUO,IAAM,SAAUkF,GAC1B,OAAO7F,KAAKsG,IAAItG,KAAK8F,KAAKD,KAE9Bd,EAAI3E,UAAUsF,MAAQ,SAAUzC,EAAGoC,GAC/B,OAAOrF,KAAKgF,gBAAkBhF,KAAKwG,YAAYvD,EAAGoC,GAAKrF,KAAKyG,SAASxD,EAAGoC,IAI5EN,EAAI3E,UAAUqG,SAAW,SAAUxD,EAAGoC,GAClC,OAAQpC,EAAIoC,EAAK,YAErBN,EAAI3E,UAAUoG,YAAc,SAAUrB,EAAGuB,GACrC,IAAIC,GAAW,MAAJxB,IAAmB,MAAJuB,GAC1B,OAD8CvB,GAAK,KAAOuB,GAAK,KAAOC,GAAO,KAC9D,GAAa,MAANA,GAE1B,EAAW,CACP,iBACD5B,EAAI3E,UAAW,OAAQ,MAC1B2E,EAAM,EAAW,CACb,eAAK,QACNA,GA3KiB,GCPpB6B,EAAwC,WACxC,IAAIC,EAAgB,SAAUzH,EAAGiG,GAI7B,OAHAwB,EAAgBpH,OAAOqH,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAU5H,EAAGiG,GAAKjG,EAAE2H,UAAY1B,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,IAAI4B,KAAK5B,EAAOA,EAAE6B,eAAeD,KAAI7H,EAAE6H,GAAK5B,EAAE4B,MACpD7H,EAAGiG,IAE5B,OAAO,SAAUjG,EAAGiG,GAEhB,SAAS8B,IAAOnH,KAAKoH,YAAchI,EADnCyH,EAAczH,EAAGiG,GAEjBjG,EAAEgB,UAAkB,OAANiF,EAAa5F,OAAO4H,OAAOhC,IAAM8B,EAAG/G,UAAYiF,EAAEjF,UAAW,IAAI+G,IAV3C,GAaxC,EAA0C,SAAUnI,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAG5D,EAA+B,SAAU8H,GAEzC,SAASC,IACL,OAAOD,EAAOE,KAAKxH,KAAM,uIAA+IA,KA2B5K,OA7BA4G,EAAUW,EAAeD,GAIzBC,EAAcnH,UAAUqH,cAAgB,WACpC,IAAIC,EAAQ1H,KACR2H,EAAO3H,KAAK4H,yBAChB,IAAEC,oBAAoB7H,KAAK8H,SAAU,aAAcH,GAC/CA,IACA3H,KAAK+H,gBAAgBC,UAAYhI,KAAKiI,eAAe9F,sBACrD+F,OAAOC,YAAW,WAAc,OAAOT,EAAMU,YAAY,qBAAuB,GAChFF,OAAOC,YAAW,WAAc,OAAOT,EAAMU,YAAY,eAAiB,OAGlFb,EAAcnH,UAAUwH,uBAAyB,WAC7C,IAAI1F,EAAqBlC,KAAKiI,eAAe/F,qBACzCmG,EAA0F,MAAzEC,SAASC,SAASnE,MAAM,yCAE7C,OADsE,IAA/CkE,SAASE,OAAOjF,QAAQ,mBACnBrB,IAAuBmG,GAEvD,EAAW,CACP,oBAAU,mBACXd,EAAcnH,UAAW,sBAAkB,GAC9C,EAAW,CACP,sBAAY,oBACbmH,EAAcnH,UAAW,uBAAmB,GAC/C,EAAW,CACP,iBACDmH,EAAcnH,UAAW,gBAAiB,MACtCmH,EA9BuB,CA+BhC,aC5CSkB,EAAuB,CAC9BC,WAAY,cAAYD,qBACxBE,MAAO,CAAC,EAAgB,GACxBC,kBAAmB,CACf,CAAEC,cAAe,cAAeC,eAAgB,KCXxD,qE,sCCoBWC,EAMAC,E,mBA1BPpC,EAAwC,WACxC,IAAIC,EAAgB,SAAUzH,EAAGiG,GAI7B,OAHAwB,EAAgBpH,OAAOqH,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAU5H,EAAGiG,GAAKjG,EAAE2H,UAAY1B,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,IAAI4B,KAAK5B,EAAOA,EAAE6B,eAAeD,KAAI7H,EAAE6H,GAAK5B,EAAE4B,MACpD7H,EAAGiG,IAE5B,OAAO,SAAUjG,EAAGiG,GAEhB,SAAS8B,IAAOnH,KAAKoH,YAAchI,EADnCyH,EAAczH,EAAGiG,GAEjBjG,EAAEgB,UAAkB,OAANiF,EAAa5F,OAAO4H,OAAOhC,IAAM8B,EAAG/G,UAAYiF,EAAEjF,UAAW,IAAI+G,IAV3C,GAaxCpI,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,IAIhE,SAAWuJ,GACPA,EAAaA,EAAuB,SAAI,GAAK,WAC7CA,EAAaA,EAAwB,UAAI,GAAK,YAC9CA,EAAaA,EAA4B,cAAI,GAAK,gBAHtD,CAIGA,IAAiBA,EAAe,KAEnC,SAAWC,GACPA,EAAeA,EAAwB,QAAI,GAAK,UAChDA,EAAeA,EAA0B,UAAI,GAAK,YAClDA,EAAeA,EAA8B,cAAI,GAAK,gBAH1D,CAIGA,IAAmBA,EAAiB,KACvC,IAAI,EAAwC,SAAU1B,GAElD,SAAS2B,IACL,OAAkB,OAAX3B,GAAmBA,EAAO4B,MAAMlJ,KAAMV,YAAcU,KAqH/D,OAvHA4G,EAAUqC,EAAwB3B,GAIlC2B,EAAuB7I,UAAU+I,aAAe,WAC5C,IAAIC,EAAYpJ,KAAKqJ,mBAAmBC,oBACxCtJ,KAAKuJ,YAAY,2XAAkZH,EAAU,YAAa,aAAe,mDAE7cH,EAAuB7I,UAAUqH,cAAgB,WAC7CzH,KAAKwJ,oBACDxJ,KAAKqJ,mBAAmBI,uBACxBzJ,KAAK0J,gBAAkBC,SAASC,cAAc,SAC9C5J,KAAK0J,gBAAgBG,KAAO,WAC5B7J,KAAK0J,gBAAgBI,UAAY,cACjC9J,KAAK+J,QAAQC,YAAYhK,KAAK0J,kBAG9B1J,KAAKiK,mBAETjK,KAAKkK,4BAA4BlK,KAAKmK,QAAS,QAASnK,KAAKoK,gBAAgBC,KAAKrK,OAClFA,KAAKkK,4BAA4BlK,KAAK+J,QAAS,QAAS/J,KAAKsK,gBAAgBD,KAAKrK,OAClFA,KAAKkK,4BAA4BlK,KAAKuK,iBAAkB,QAASvK,KAAKwK,oBAAoBH,KAAKrK,OAC/FA,KAAKkK,4BAA4BlK,KAAKuK,iBAAkB,WAAYvK,KAAKyK,qBAAqBJ,KAAKrK,OACnGA,KAAKkK,4BAA4BlK,KAAK0K,aAAc,SAAOC,yBAA0B3K,KAAK4K,kBAAkBP,KAAKrK,QAErHiJ,EAAuB7I,UAAU6E,KAAO,SAAU4F,GAC9C7K,KAAK6K,OAASA,EACV7K,KAAK8K,iBAAiBC,WACtB/K,KAAK4K,qBAGb3B,EAAuB7I,UAAUoJ,kBAAoB,WACjDxJ,KAAKmK,QAAQH,YAAahK,KAAKgL,eAAiB,IAAEC,iBAAiB,mBAAoBjL,KAAKqJ,qBAC5FrJ,KAAKmK,QAAQH,YAAahK,KAAKkL,iBAAmB,IAAED,iBAAiB,qBAAsBjL,KAAKqJ,qBAChGrJ,KAAKmK,QAAQH,YAAahK,KAAKmL,qBAAuB,IAAEF,iBAAiB,4BAA6BjL,KAAKqJ,sBAE/GJ,EAAuB7I,UAAU6J,iBAAmB,WAChDjK,KAAK+J,QAAQC,YAAahK,KAAKoL,eAAiB,IAAEH,iBAAiB,kBAAmBjL,KAAKqJ,qBAC3FrJ,KAAK+J,QAAQC,YAAahK,KAAKqL,iBAAmB,IAAEJ,iBAAiB,oBAAqBjL,KAAKqJ,qBAC/FrJ,KAAK+J,QAAQC,YAAahK,KAAKsL,qBAAuB,IAAEL,iBAAiB,wBAAyBjL,KAAKqJ,sBAG3GJ,EAAuB7I,UAAUwK,kBAAoB,WACjD,IAAIW,GAAcvL,KAAK6K,OAAOW,qBAC1BC,GAAczL,KAAK6K,OAAOa,wBAC1BC,GAAc3L,KAAK6K,OAAOe,wBAC1BC,EAAgB7L,KAAK8K,iBAAiBgB,+BAC1C,IAAEC,aAAa/L,KAAKgM,eAAgBT,GACpC,IAAEQ,aAAa/L,KAAK+J,QAAS0B,GAC7B,IAAEM,aAAa/L,KAAKmK,QAASwB,GAAcE,IAE/C5C,EAAuB7I,UAAUoK,oBAAsB,WACnD,IAAI9C,EAAQ1H,KACPA,KAAKiM,+BACNjM,KAAKiM,6BAA+B,IAAEC,UAAS,WAC3C,IAAIC,EAAazE,EAAM6C,iBAAiBpG,MACxCuD,EAAM0E,cAAc,CAAEvC,KAAM,gBAAiBsC,WAAYA,MAC1D,MAEPnM,KAAKiM,gCAEThD,EAAuB7I,UAAUqK,qBAAuB,SAAUpH,GAC1D,IAAEgJ,aAAahJ,EAAG,YAAUiJ,YAC5BtM,KAAKoM,cAAc,CAAEvC,KAAM,eAGnCZ,EAAuB7I,UAAUkK,gBAAkB,WAC/C,IAAIiC,EAAYvM,KAAKwM,cAAgBxD,EAAeyD,QAAU,cAAgB,YAC9EzM,KAAKoM,cAAc,CAAEvC,KAAM0C,KAE/BtD,EAAuB7I,UAAUgK,gBAAkB,WAC/C,IAAImC,EAAYvM,KAAK0M,cAAgB3D,EAAa4D,SAAW,cAAgB,YAC7E3M,KAAKoM,cAAc,CAAEvC,KAAM0C,KAE/BtD,EAAuB7I,UAAUwM,eAAiB,SAAU7G,GACxD/F,KAAK0M,YAAc3G,EACnB,IAAEgG,aAAa/L,KAAKgL,eAAgBhL,KAAK0M,cAAgB3D,EAAa4D,UACtE,IAAEZ,aAAa/L,KAAKkL,iBAAkBlL,KAAK0M,cAAgB3D,EAAa8D,WACxE,IAAEd,aAAa/L,KAAKmL,qBAAsBnL,KAAK0M,cAAgB3D,EAAa+D,gBAEhF7D,EAAuB7I,UAAU2M,kBAAoB,SAAUhH,GAC3D/F,KAAKwM,YAAczG,EACf/F,KAAKqJ,mBAAmBI,uBACxBzJ,KAAK0J,gBAAgBsD,QAAUhN,KAAKwM,cAAgBxD,EAAeyD,QACnEzM,KAAK0J,gBAAgBuD,cAAgBjN,KAAKwM,cAAgBxD,EAAe8D,gBAGzE,IAAEf,aAAa/L,KAAKoL,eAAgBpL,KAAKwM,cAAgBxD,EAAeyD,SACxE,IAAEV,aAAa/L,KAAKqL,iBAAkBrL,KAAKwM,cAAgBxD,EAAekE,WAC1E,IAAEnB,aAAa/L,KAAKsL,qBAAsBtL,KAAKwM,cAAgBxD,EAAe8D,iBAGtF/N,EAAW,CACP,oBAAU,uBACXkK,EAAuB7I,UAAW,0BAAsB,GAC3DrB,EAAW,CACP,oBAAU,qBACXkK,EAAuB7I,UAAW,wBAAoB,GACzDrB,EAAW,CACP,oBAAU,iBACXkK,EAAuB7I,UAAW,oBAAgB,GACrDrB,EAAW,CACP,sBAAY,YACbkK,EAAuB7I,UAAW,eAAW,GAChDrB,EAAW,CACP,sBAAY,YACbkK,EAAuB7I,UAAW,eAAW,GAChDrB,EAAW,CACP,sBAAY,mBACbkK,EAAuB7I,UAAW,sBAAkB,GACvDrB,EAAW,CACP,sBAAY,qBACbkK,EAAuB7I,UAAW,wBAAoB,GACzDrB,EAAW,CACP,gBACDkK,EAAuB7I,UAAW,eAAgB,MACrDrB,EAAW,CACP,iBACDkK,EAAuB7I,UAAW,gBAAiB,MAC/C6I,EAxHgC,CAyHzC,aCzJE,EAAwC,WACxC,IAAIpC,EAAgB,SAAUzH,EAAGiG,GAI7B,OAHAwB,EAAgBpH,OAAOqH,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAU5H,EAAGiG,GAAKjG,EAAE2H,UAAY1B,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,IAAI4B,KAAK5B,EAAOA,EAAE6B,eAAeD,KAAI7H,EAAE6H,GAAK5B,EAAE4B,MACpD7H,EAAGiG,IAE5B,OAAO,SAAUjG,EAAGiG,GAEhB,SAAS8B,IAAOnH,KAAKoH,YAAchI,EADnCyH,EAAczH,EAAGiG,GAEjBjG,EAAEgB,UAAkB,OAANiF,EAAa5F,OAAO4H,OAAOhC,IAAM8B,EAAG/G,UAAYiF,EAAEjF,UAAW,IAAI+G,IAV3C,GAaxC,EAA0C,SAAUnI,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAG5D,EAA0C,SAAU8H,GAEpD,SAAS6F,EAAyBC,EAAaC,EAAYC,EAAeC,EAAiBC,EAAkBC,GACzG,IAAI/F,EAAQJ,EAAOE,KAAKxH,OAASA,KAQjC,OAPA0H,EAAMgG,6BAA8B,EACpChG,EAAM0F,YAAcA,EACpB1F,EAAM2F,WAAaA,EACnB3F,EAAM4F,cAAgBA,EACtB5F,EAAMiG,SAAWJ,EACjB7F,EAAM8F,iBAAmBA,EACzB9F,EAAMkG,yBAA2BH,EAC1B/F,EA0SX,OApTA,EAAUyF,EAA0B7F,GAYpC6F,EAAyB/M,UAAU6E,KAAO,WACtCjF,KAAKuJ,YAAY4D,EAAyBU,UAC1C7N,KAAK8N,YAAc,IAAE7C,iBAAiB,aAAcjL,KAAKqJ,oBACzD,IAAEjB,YAAYpI,KAAK8N,YAAa,kBAChC9N,KAAK+N,SAASjG,SAASkG,sBAAsB,WAAYhO,KAAK8N,aAC9D9N,KAAKiO,YAAcjO,KAAK8K,iBAAiBoD,qCAAqC,KAAMlO,KAAKoN,YAAa,aAClG,IAAEe,QAAQnO,KAAKiO,eACfjO,KAAKiO,YAAc,MAEvBjO,KAAKoO,OAAOC,UAAYrO,KAAKiO,YAAcjO,KAAKiO,YAAc,GAC9DjO,KAAKsO,sBACLtO,KAAKoI,YAAY,uBAAyBpI,KAAKqN,YAC/CrN,KAAKkK,4BAA4BlK,KAAK0K,aAAc,SAAO6D,gCAAiCvO,KAAKwO,qBAAqBnE,KAAKrK,OAC3HA,KAAKkK,4BAA4BlK,KAAKoO,OAAQ,QAASpO,KAAKyO,eAAepE,KAAKrK,OAChFA,KAAKkK,4BAA4BlK,KAAK+N,SAAU,aAAWW,cAAe1O,KAAK2O,kBAAkBtE,KAAKrK,OACtGA,KAAK4O,qBACL5O,KAAK6O,gBACL7O,KAAKwO,uBACLxO,KAAK8O,sCACL,kBAAgBC,8BAA8B/O,KAAKoN,YAAY4B,iBAAkBhP,KAAK8H,SAAU9H,KAAKqJ,mBAAoB,KAAMrJ,KAAKoN,cAExID,EAAyB/M,UAAU0O,oCAAsC,WACrE,IAAIpH,EAAQ1H,KACZA,KAAKoN,YAAY6B,iBAAiBC,SAAQ,SAAUC,GAChDzH,EAAMwC,4BAA4BiF,EAAQ,SAAOC,sBAAuB1H,EAAM8G,qBAAqBnE,KAAK3C,IACxGA,EAAMwC,4BAA4BiF,EAAQ,SAAOE,oBAAqB3H,EAAM8G,qBAAqBnE,KAAK3C,IACtGA,EAAMwC,4BAA4BiF,EAAQ,SAAOG,oBAAqB5H,EAAM8G,qBAAqBnE,KAAK3C,IACtGA,EAAMwC,4BAA4BiF,EAAQ,SAAOI,wBAAyB7H,EAAM8G,qBAAqBnE,KAAK3C,QAGlHyF,EAAyB/M,UAAUyO,cAAgB,WAC/C,IAAInH,EAAQ1H,KACZ,GAAKA,KAAKsN,cAAV,CAIA,IAAIkC,EAAa,CACb3F,KAAM,iBAAe4F,UACrBC,SAAU1P,KAAK8N,YACf6B,aAAc3P,KAAKiO,YACnB2B,YAAa,WAAc,OAAOlI,EAAMmI,mBAE5C7P,KAAK8P,mBAAmBC,cAAcP,GAAY,GAClDxP,KAAKgQ,gBAAe,WAAc,OAAOtI,EAAMoI,mBAAmBG,iBAAiBT,WAV/E,IAAEzD,aAAa/L,KAAK8N,aAAa,IAYzCX,EAAyB/M,UAAUyP,eAAiB,WAChD,IAAIK,EAAe,GAInB,OAHAlQ,KAAKoN,YAAY6B,iBAAiBC,SAAQ,SAAUiB,GAChDD,EAAaC,EAAIC,SAAWD,EAAIE,eAE7B,CACHC,QAAStQ,KAAKoN,YAAY6B,iBAC1BiB,aAAcA,IAGtB/C,EAAyB/M,UAAUkO,oBAAsB,WACrDtO,KAAKuQ,iBAAiBvG,YAAY,IAAEwG,WAAW,qBAAsBxQ,KAAKqJ,mBAAoB,OAC9FrJ,KAAKyQ,iBAAiBzG,YAAY,IAAEwG,WAAW,mBAAoBxQ,KAAKqJ,mBAAoB,OAC5FrJ,KAAKkK,4BAA4BlK,KAAKuQ,iBAAkB,QAASvQ,KAAK0Q,0BAA0BrG,KAAKrK,OACrGA,KAAKkK,4BAA4BlK,KAAKyQ,iBAAkB,QAASzQ,KAAK0Q,0BAA0BrG,KAAKrK,OACrG,IAAI2Q,EAAgB,IAAI,gBAAc3Q,KAAK4Q,mBAAmB,GAC9D5Q,KAAKkK,4BAA4ByG,EAAe,gBAAcE,UAAW7Q,KAAK0Q,0BAA0BrG,KAAKrK,OAC7GA,KAAKgQ,eAAeW,EAAcG,QAAQzG,KAAKsG,KAEnDxD,EAAyB/M,UAAUqO,eAAiB,WAChD,IAAIsC,GAAa/Q,KAAK+N,SAASiD,WAC/BhR,KAAKiR,eAAeF,IAExB5D,EAAyB/M,UAAUuO,kBAAoB,SAAUuC,GAC7DlR,KAAKiR,eAAeC,EAAMC,WAE9BhE,EAAyB/M,UAAU6Q,eAAiB,SAAUF,GAC1D,IAAI/Q,KAAK0N,4BAAT,CAGA,IAAI0D,EAAepR,KAAKoN,YAAY6B,iBACpC,GAAIjP,KAAK8K,iBAAiBuG,cAClBN,EACA/Q,KAAKsR,oBAAoBF,GAGzBpR,KAAKuR,sBAAsBH,OAG9B,CACD,IACII,EAAiBJ,EAAapN,QADZ,SAAU3E,GAAK,OAAQA,EAAEoS,YAAYC,cAAgBrS,EAAEoS,YAAYE,4BAErFC,EAAkB5R,KAAK4N,2BAEvBiE,EAAiBL,EAAexN,QADjB,SAAU3E,GAAK,OAAQuS,GAAmBA,EAAgBvS,EAAEyS,eAG/E9R,KAAK8K,iBAAiBiH,kBAAkBF,EAAgBd,EAAW,kBAG3E5D,EAAyB/M,UAAUmR,sBAAwB,SAAUjB,GACjE,IAAI0B,EAAmB,GACnBC,EAAmB,GACnBC,EAAmB,GACvB5B,EAAQpB,SAAQ,SAAUC,GAClBA,EAAOgD,iBACPH,EAAiBI,KAAKjD,GAEtBA,EAAOkD,oBACPH,EAAiBE,KAAKjD,GAEtBA,EAAOmD,iBACPL,EAAiBG,KAAKjD,MAG1B6C,EAAiBzS,OAAS,GAC1BS,KAAK8K,iBAAiByH,mBAAmBP,EAAkB,eAE3DE,EAAiB3S,OAAS,GAC1BS,KAAK8K,iBAAiB0H,sBAAsBN,EAAkB,eAE9DD,EAAiB1S,OAAS,GAC1BS,KAAK8K,iBAAiB2H,mBAAmBR,EAAkB,gBAGnE9E,EAAyB/M,UAAUkR,oBAAsB,SAAUhB,GAC/D,IAAIoC,EAAqB,GACrBC,EAAiB,GACjBC,EAAiB,GACrBtC,EAAQpB,SAAQ,SAAUC,GAElBA,EAAO0D,wBAGP1D,EAAO2D,eACPJ,EAAmBN,KAAKjD,GAEnBA,EAAO4D,kBACZJ,EAAeP,KAAKjD,GAEfA,EAAO4D,mBACZH,EAAeR,KAAKjD,OAGxBuD,EAAmBnT,OAAS,GAC5BS,KAAK8K,iBAAiBkI,gBAAgBN,EAAoB,eAE1DC,EAAepT,OAAS,GACxBS,KAAK8K,iBAAiBmI,mBAAmBN,EAAgB,eAEzDC,EAAerT,OAAS,GACxBS,KAAK8K,iBAAiBoI,gBAAgBN,EAAgB,gBAG9DzF,EAAyB/M,UAAUoO,qBAAuB,WACtD,IAAI2E,EAAgBnT,KAAKoT,uBACrBC,EAAgBrT,KAAKsT,uBACzBtT,KAAK0N,6BAA8B,EACnC1N,KAAK+N,SAASwF,SAASJ,GACvBnT,KAAK+N,SAASyF,YAAYH,GAC1BrT,KAAK0N,6BAA8B,GAEvCP,EAAyB/M,UAAUgT,qBAAuB,WAOtD,IANA,IA8BID,EA9BAM,EAAYzT,KAAK8K,iBAAiBuG,cAClCqC,EAAc1T,KAAKoN,YAAY6B,iBAC/B0E,EAAgB3T,KAAK4N,2BACrBgG,EAAMF,EAAYnU,OAClBsU,EAAQ,CAAEC,QAAS,EAAGC,OAAQ,GAC9BC,EAAoB,CAAEF,QAAS,EAAGC,OAAQ,GACrClU,EAAI,EAAGA,EAAI+T,EAAK/T,IAAK,CAC1B,IAAIsP,EAASuE,EAAY7T,GAErBoU,EAAS9E,EAAOsC,YAAYC,aAAevC,EAAOsC,YAAYE,yBAC9D9H,EAAO7J,KAAKkU,gBAAgB/E,EAAQsE,GAAa,UAAY,SAGjE,GAFAI,EAAMhK,KAEF8J,EACyBA,EAAcxE,EAAO2C,cAE1CmC,GAAS,GAGZA,GAGLD,EAAkBnK,KAetB,OAXImK,EAAkBF,QAAUE,EAAkBD,SAAWH,IACzDC,EAAMC,SAAWE,EAAkBF,QACnCD,EAAME,QAAUC,EAAkBD,QASd,OALpBZ,EADAU,EAAMC,QAAU,GAAKD,EAAME,OAAS,EACpB,KAGAF,EAAMC,QAAU,QAEL5T,EAAYiT,GAE/ChG,EAAyB/M,UAAUkT,qBAAuB,WACtD,IAAIG,EAAYzT,KAAK8K,iBAAiBuG,cAClC8C,EAAoB,EAaxB,OAZAnU,KAAKoN,YAAY6B,iBAAiBC,SAAQ,SAAUiB,GAC5CsD,EACItD,EAAIiE,wBACJD,IAIChE,EAAIsB,YAAYC,aACjByC,OAIiB,IAAtBA,GAEXhH,EAAyB/M,UAAU8T,gBAAkB,SAAU/E,EAAQsE,GACnE,GAAIA,EAAW,CACX,IAAIY,EAAUlF,EAAOgD,gBACjBmC,EAAUnF,EAAOkD,mBACjBkC,EAAapF,EAAOmD,gBACxB,OAAO+B,GAAWC,GAAWC,EAG7B,OAAOpF,EAAOkB,aAGtBlD,EAAyB/M,UAAUsQ,0BAA4B,WAC3D1Q,KAAK2N,UAAY3N,KAAK2N,SACtB3N,KAAK4O,qBACL5O,KAAKwN,oBAETL,EAAyB/M,UAAUwO,mBAAqB,WACpD,IAAI4F,EAAaxU,KAAK2N,SACtB,IAAE5B,aAAa/L,KAAKuQ,kBAAmBiE,GACvC,IAAEzI,aAAa/L,KAAKyQ,iBAAkB+D,IAE1CrH,EAAyB/M,UAAUqU,WAAa,WAC5C,OAAOzU,KAAK2N,UAEhBR,EAAyB/M,UAAUsU,eAAiB,WAChD,OAAO1U,KAAKiO,aAEhBd,EAAyB/M,UAAUuU,mBAAqB,SAAUxQ,IACzDA,IAAUnE,KAAK+N,SAASiD,aACvB7M,GAASnE,KAAK+N,SAASiD,cACpBhR,KAAK+N,SAAS6G,cACf5U,KAAK+N,SAAS8G,WAI1B1H,EAAyB/M,UAAU0U,WAAa,WAC5C,OAAO9U,KAAK+N,SAASiD,YAEzB7D,EAAyB/M,UAAU2U,aAAe,WAC9C,OAAQ/U,KAAK+N,SAAS6G,cAE1BzH,EAAyB/M,UAAU4U,aAAe,WAC9C,OAAO,GAEX7H,EAAyB/M,UAAU6U,YAAc,SAAU9Q,GACnDnE,KAAK2N,WAAaxJ,GAClBnE,KAAK0Q,6BAGbvD,EAAyB/M,UAAU8U,YAAc,SAAU/D,GACvDnR,KAAK+N,SAASwF,SAASpC,GAAU,IAErChE,EAAyBU,SAAW,kgBACpC,EAAW,CACP,oBAAU,iBACXV,EAAyB/M,UAAW,oBAAgB,GACvD,EAAW,CACP,oBAAU,qBACX+M,EAAyB/M,UAAW,wBAAoB,GAC3D,EAAW,CACP,oBAAU,uBACX+M,EAAyB/M,UAAW,0BAAsB,GAC7D,EAAW,CACP,oBAAU,uBACX+M,EAAyB/M,UAAW,0BAAsB,GAC7D,EAAW,CACP,sBAAY,aACb+M,EAAyB/M,UAAW,gBAAY,GACnD,EAAW,CACP,sBAAY,WACb+M,EAAyB/M,UAAW,cAAU,GACjD,EAAW,CACP,sBAAY,qBACb+M,EAAyB/M,UAAW,wBAAoB,GAC3D,EAAW,CACP,sBAAY,qBACb+M,EAAyB/M,UAAW,wBAAoB,GAC3D,EAAW,CACP,sBAAY,sBACb+M,EAAyB/M,UAAW,yBAAqB,GAC5D,EAAW,CACP,iBACD+M,EAAyB/M,UAAW,OAAQ,MACxC+M,EArTkC,CAsT3C,aC1UE,EAAwC,WACxC,IAAItG,EAAgB,SAAUzH,EAAGiG,GAI7B,OAHAwB,EAAgBpH,OAAOqH,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAU5H,EAAGiG,GAAKjG,EAAE2H,UAAY1B,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,IAAI4B,KAAK5B,EAAOA,EAAE6B,eAAeD,KAAI7H,EAAE6H,GAAK5B,EAAE4B,MACpD7H,EAAGiG,IAE5B,OAAO,SAAUjG,EAAGiG,GAEhB,SAAS8B,IAAOnH,KAAKoH,YAAchI,EADnCyH,EAAczH,EAAGiG,GAEjBjG,EAAEgB,UAAkB,OAANiF,EAAa5F,OAAO4H,OAAOhC,IAAM8B,EAAG/G,UAAYiF,EAAEjF,UAAW,IAAI+G,IAV3C,GAaxC,EAA0C,SAAUnI,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAG5D,EAAqC,SAAU8H,GAE/C,SAAS6N,EAAoBhG,EAAQ9B,EAAYC,EAAe8H,GAC5D,IAAI1N,EAAQJ,EAAOE,KAAKxH,OAASA,KAMjC,OALA0H,EAAMgG,6BAA8B,EACpChG,EAAMyH,OAASA,EACfzH,EAAM2F,WAAaA,EACnB3F,EAAM4F,cAAgBA,EACtB5F,EAAM0N,YAAcA,EACb1N,EAsRX,OA9RA,EAAUyN,EAAqB7N,GAU/B6N,EAAoB/U,UAAU6E,KAAO,WACjCjF,KAAKuJ,YAAY4L,EAAoBtH,UACrC7N,KAAK8N,YAAc,IAAE7C,iBAAiB,aAAcjL,KAAKqJ,oBACzD,IAAEjB,YAAYpI,KAAK8N,YAAa,kBAChC9N,KAAK+N,SAASjG,SAASkG,sBAAsB,WAAYhO,KAAK8N,aAC9D9N,KAAKiO,YAAcjO,KAAK8K,iBAAiBuK,wBAAwBrV,KAAKmP,OAAQ,aAC9E,IAAImG,EAAuB,IAAEC,OAAOvV,KAAKiO,aACzCjO,KAAKoO,OAAOC,UAAYiH,EAExB,IAAIE,EAASxV,KAAKqN,WACdrN,KAAKoV,aACLpV,KAAKoI,YAAY,iCAErBpI,KAAKoI,YAAY,uBAAyBoN,GAC1CxV,KAAK6O,gBACL7O,KAAKkK,4BAA4BlK,KAAK0K,aAAc,SAAO6D,gCAAiCvO,KAAKwO,qBAAqBnE,KAAKrK,OAC3HA,KAAKkK,4BAA4BlK,KAAKmP,OAAQ,SAAOE,oBAAqBrP,KAAKwO,qBAAqBnE,KAAKrK,OACzGA,KAAKkK,4BAA4BlK,KAAKmP,OAAQ,SAAOG,oBAAqBtP,KAAKwO,qBAAqBnE,KAAKrK,OACzGA,KAAKkK,4BAA4BlK,KAAKmP,OAAQ,SAAOI,wBAAyBvP,KAAKwO,qBAAqBnE,KAAKrK,OAC7GA,KAAKkK,4BAA4BlK,KAAKmP,OAAQ,SAAOC,sBAAuBpP,KAAKwO,qBAAqBnE,KAAKrK,OAC3GA,KAAKkK,4BAA4BlK,KAAKqJ,mBAAoB,oBAAqBrJ,KAAKwO,qBAAqBnE,KAAKrK,OAC9GA,KAAKkK,4BAA4BlK,KAAK+N,SAAU,aAAWW,cAAe1O,KAAK2O,kBAAkBtE,KAAKrK,OACtGA,KAAKkK,4BAA4BlK,KAAKoO,OAAQ,QAASpO,KAAKyO,eAAepE,KAAKrK,OAChFA,KAAKwO,uBACL,kBAAgBO,8BAA8B/O,KAAKmP,OAAOsC,YAAazR,KAAK8H,SAAU9H,KAAKqJ,mBAAoBrJ,KAAKmP,OAAQ,OAEhIgG,EAAoB/U,UAAUqO,eAAiB,WAC3C,IAAIzO,KAAKqJ,mBAAmBoM,sBAA5B,CAGA,IAAI1E,GAAa/Q,KAAK+N,SAASiD,WAC/BhR,KAAKiR,eAAeF,KAExBoE,EAAoB/U,UAAUuO,kBAAoB,SAAUuC,GACxDlR,KAAKiR,eAAeC,EAAMC,WAE9BgE,EAAoB/U,UAAU6Q,eAAiB,SAAUF,GAEjD/Q,KAAKmP,OAAOsC,YAAYC,aAKxB1R,KAAK0N,8BAML1N,KAAK8K,iBAAiBuG,cAClBN,EACA/Q,KAAK0V,yBAGL1V,KAAK2V,2BAIT3V,KAAK8K,iBAAiB8K,iBAAiB5V,KAAKmP,OAAQ4B,EAAW,gBAGvEoE,EAAoB/U,UAAUuV,yBAA2B,WACrD,IAAIE,EAAkB7V,KAAKqJ,mBAAmByM,qBAC1C3G,EAASnP,KAAKmP,OACdrE,EAAmB9K,KAAK8K,iBAE5B,GAAIqE,EAAOgD,gBACP,GAAI0D,EAAiB,CACjB,IAAIE,EAAqB/V,KAAK8K,iBAAiBkL,kBAAkBC,QACjEF,EAAmB3D,KAAKjD,GACxB,IAAI+G,EAAU,CACVrM,KAAM,SAAOsM,kCACb7F,QAASyF,EACTK,IAAKpW,KAAKqW,QACVC,UAAWtW,KAAKsW,WAEpBtW,KAAK0K,aAAa0B,cAAc8J,QAGhCpL,EAAiByL,kBAAkBpH,EAAQ,cAInD,GAAIA,EAAOmD,gBACP,GAAIuD,EAAiB,CACjB,IAAIW,EAAqBxW,KAAK8K,iBAAiB2L,kBAAkBR,QACjEO,EAAmBpE,KAAKjD,GACxB,IAAIuH,EAAU,CACV7M,KAAM,SAAO8M,kCACbrG,QAASkG,EACTJ,IAAKpW,KAAKqW,QACVC,UAAWtW,KAAKsW,WAEpBtW,KAAK0K,aAAa0B,cAAcsK,QAGhC5L,EAAiB8L,kBAAkBzH,EAAQ,cAInD,GAAIA,EAAOkD,mBACP,GAAIwD,EAAiB,CACjB,IAAIgB,EAAwB7W,KAAK8K,iBAAiBgM,qBAAqBb,QACvEY,EAAsBzE,KAAKjD,GAC3B,IAAI4H,EAAU,CACVlN,KAAM,SAAOmN,sCACb1G,QAASuG,EACTT,IAAKpW,KAAKqW,QACVC,UAAWtW,KAAKsW,WAEpBtW,KAAK0K,aAAa0B,cAAc2K,QAGhCjM,EAAiBmM,qBAAqB9H,EAAQ,eAI1DgG,EAAoB/U,UAAUsV,uBAAyB,WACnD,IAAIvG,EAASnP,KAAKmP,OAElB,KAAIA,EAAOmD,iBAAmBnD,EAAOgD,iBAAmBhD,EAAOkD,oBAA/D,CAGA,IAAIwD,EAAkB7V,KAAKqJ,mBAAmByM,qBAC9C,GAAI3G,EAAO2D,eACP,GAAI+C,EAAiB,CACjB,IAAIW,EAAqBxW,KAAK8K,iBAAiB2L,kBAAkBR,QACjE,IAAEiB,gBAAgBV,EAAoBrH,GACtC,IAAIgI,EAAU,CACVtN,KAAM,SAAO8M,kCACbP,IAAKpW,KAAKqW,QACVC,UAAWtW,KAAKsW,UAChBhG,QAASkG,GAEbxW,KAAK0K,aAAa0B,cAAc+K,QAGhCnX,KAAK8K,iBAAiBsM,eAAejI,EAAQ,mBAGhD,GAAIA,EAAO4D,kBACZ,GAAI8C,EAAiB,CACjB,IAAIgB,EAAwB7W,KAAK8K,iBAAiBgM,qBAAqBb,QACvE,IAAEiB,gBAAgBL,EAAuB1H,GACzC,IAAIkI,EAAU,CACVxN,KAAM,SAAOmN,sCACbZ,IAAKpW,KAAKqW,QACVC,UAAWtW,KAAKsW,UAChBhG,QAASuG,GAEb7W,KAAK0K,aAAa0B,cAAciL,QAGhCrX,KAAK8K,iBAAiBwM,kBAAkBnI,EAAQ,mBAGnD,GAAIA,EAAOoI,eACZ,GAAI1B,EAAiB,CACjB,IAAIE,EAAqB/V,KAAK8K,iBAAiBkL,kBAAkBC,QACjE,IAAEiB,gBAAgBnB,EAAoB5G,GACtC,IAAIqI,EAAU,CACV3N,KAAM,SAAOsM,kCACbC,IAAKpW,KAAKqW,QACVC,UAAWtW,KAAKsW,UAChBhG,QAASyF,GAEb/V,KAAK0K,aAAa0B,cAAcoL,QAGhCxX,KAAK8K,iBAAiB2M,eAAetI,EAAQ,gBAIzDgG,EAAoB/U,UAAUyO,cAAgB,WAC1C,IAAInH,EAAQ1H,KACZ,GAAKA,KAAKsN,cAAV,CAIA,IAAIkC,EAAa,CACb3F,KAAM,iBAAe4F,UACrBC,SAAU1P,KAAK8N,YACf6B,aAAc3P,KAAKiO,YACnB2B,YAAa,WAAc,OAAOlI,EAAMmI,mBAE5C7P,KAAK8P,mBAAmBC,cAAcP,GAAY,GAClDxP,KAAKgQ,gBAAe,WAAc,OAAOtI,EAAMoI,mBAAmBG,iBAAiBT,WAV/E,IAAEzD,aAAa/L,KAAK8N,aAAa,IAYzCqH,EAAoB/U,UAAUyP,eAAiB,WAC3C,IAAIK,EAAe,GAEnB,OADAA,EAAalQ,KAAKmP,OAAOiB,SAAWpQ,KAAKmP,OAAOkB,YACzC,CACHC,QAAS,CAACtQ,KAAKmP,QACfe,aAAcA,IAGtBiF,EAAoB/U,UAAUoO,qBAAuB,WACjDxO,KAAK0N,6BAA8B,EACnC,IAUIgK,EAVArG,EAAcrR,KAAK8K,iBAAiBuG,cACxC,GAAIA,EAAa,CAEb,IAAIsG,EAAoB3X,KAAKmP,OAAO0D,sBACpC7S,KAAK+N,SAASwF,SAASoE,QAIvB3X,KAAK+N,SAASwF,SAASvT,KAAKmP,OAAOkB,aAGvC,GAAIgB,EAAa,CAGb,IAAIuG,EAAoB5X,KAAKqJ,mBAAmBoM,sBAE5CoC,GAAsB7X,KAAKmP,OAAOiF,uBACtCsD,EAAmBE,GAAqBC,OAIxCH,IAAqB1X,KAAKmP,OAAOsC,YAAYC,YAEjD1R,KAAK+N,SAASyF,YAAYkE,GAC1B,IAAII,EAAkBzG,GAAerR,KAAKqJ,mBAAmByM,qBAC7D9V,KAAK+N,SAASgK,WAAWD,GACzB9X,KAAK0N,6BAA8B,GAEvCyH,EAAoB/U,UAAUsU,eAAiB,WAC3C,OAAO1U,KAAKiO,aAEhBkH,EAAoB/U,UAAUuU,mBAAqB,SAAUxQ,GACrDA,IAAUnE,KAAK+N,SAASiD,aACnBhR,KAAK+N,SAAS6G,cACf5U,KAAK+N,SAAS8G,WAI1BM,EAAoB/U,UAAU0U,WAAa,WACvC,OAAO9U,KAAK+N,SAASiD,YAEzBmE,EAAoB/U,UAAU2U,aAAe,WACzC,OAAQ/U,KAAK+N,SAAS6G,cAE1BO,EAAoB/U,UAAU4U,aAAe,WACzC,OAAO,GAEXG,EAAoB/U,UAAU6U,YAAc,SAAU9Q,GAClDU,QAAQmT,KAAK,wFAEjB7C,EAAoBtH,SAAW,wOAC/B,EAAW,CACP,oBAAU,uBACXsH,EAAoB/U,UAAW,0BAAsB,GACxD,EAAW,CACP,oBAAU,qBACX+U,EAAoB/U,UAAW,wBAAoB,GACtD,EAAW,CACP,oBAAU,iBACX+U,EAAoB/U,UAAW,oBAAgB,GAClD,EAAW,CACP,oBAAU,uBACX+U,EAAoB/U,UAAW,0BAAsB,GACxD,EAAW,CACP,oBAAU,cACX+U,EAAoB/U,UAAW,iBAAa,GAC/C,EAAW,CACP,oBAAU,YACX+U,EAAoB/U,UAAW,eAAW,GAC7C,EAAW,CACP,sBAAY,WACb+U,EAAoB/U,UAAW,cAAU,GAC5C,EAAW,CACP,sBAAY,aACb+U,EAAoB/U,UAAW,gBAAY,GAC9C,EAAW,CACP,iBACD+U,EAAoB/U,UAAW,OAAQ,MACnC+U,EA/R6B,CAgStC,aCpTE,EAAwC,WACxC,IAAItO,EAAgB,SAAUzH,EAAGiG,GAI7B,OAHAwB,EAAgBpH,OAAOqH,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAU5H,EAAGiG,GAAKjG,EAAE2H,UAAY1B,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,IAAI4B,KAAK5B,EAAOA,EAAE6B,eAAeD,KAAI7H,EAAE6H,GAAK5B,EAAE4B,MACpD7H,EAAGiG,IAE5B,OAAO,SAAUjG,EAAGiG,GAEhB,SAAS8B,IAAOnH,KAAKoH,YAAchI,EADnCyH,EAAczH,EAAGiG,GAEjBjG,EAAEgB,UAAkB,OAANiF,EAAa5F,OAAO4H,OAAOhC,IAAM8B,EAAG/G,UAAYiF,EAAEjF,UAAW,IAAI+G,IAV3C,GAaxC,EAA0C,SAAUnI,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAM5D,EAAsC,SAAU8H,GAEhD,SAAS2Q,IACL,IAAIvQ,EAAQJ,EAAOE,KAAKxH,KAAMiY,EAAqBpK,WAAa7N,KAahE,OAZA0H,EAAMwQ,kBAAmB,EACzBxQ,EAAMyQ,gBAAkB,SAAUC,GAC9B,GAAIA,aAA4B,sBAAqB,CAGjD,IAAIC,EAAWD,EAAiBnJ,iBAAiB/K,KAAI,SAAUoU,GAAS,OAAOA,EAAMlI,WAAY7J,KAAK,KACtG,OAAO6R,EAAiBhI,QAAU,IAAMiI,EAGxC,OAAOD,EAAiBhI,SAGzB1I,EAyXX,OAxYA,EAAUuQ,EAAsB3Q,GAiBhC2Q,EAAqB7X,UAAU6E,KAAO,SAAU4F,EAAQyC,GACpD,IAAI5F,EAAQ1H,KACZA,KAAK6K,OAASA,EACd7K,KAAKsN,cAAgBA,EAChBtN,KAAK6K,OAAO0N,4BACbvY,KAAKkK,4BAA4BlK,KAAK0K,aAAc,SAAO8N,mBAAoBxY,KAAKyY,iBAAiBpO,KAAKrK,OAE9GA,KAAKkK,4BAA4BlK,KAAK0K,aAAc,SAAOgO,gCAAiC1Y,KAAKyY,iBAAiBpO,KAAKrK,OACrF,CAC9B,SAAO0Y,gCACP,SAAOC,2BACP,SAAOpK,gCACP,SAAOqK,+BACP,SAAOC,2BACP,SAAOC,qBACP,SAAOnO,0BAEiBuE,SAAQ,SAAUgC,GAE1CxJ,EAAMwC,4BAA4BxC,EAAMgD,aAAcwG,EAAOxJ,EAAMqR,0BAA0B1O,KAAK3C,OAEtG1H,KAAKgZ,uBAAyBhZ,KAAK6K,OAAOoO,wBACtCjZ,KAAK8K,iBAAiBC,WACtB/K,KAAKyY,oBAGbR,EAAqB7X,UAAUqY,iBAAmB,WAC9C,IAAIS,EAAkBlZ,KAAK8K,iBAAiBuG,eACNrR,KAAK6K,OAAO0N,6BAA+BW,EAChDlZ,KAAKmZ,mBAAqBnZ,KAAKoZ,mCAEpEnB,EAAqB7X,UAAU+Y,iBAAmB,WAC9CnZ,KAAKqZ,cAAcC,mBAAmBtZ,KAAKuZ,gBAAgBlP,KAAKrK,QAEpEiY,EAAqB7X,UAAUmZ,gBAAkB,SAAUC,GACvDxZ,KAAKyZ,qBAELzZ,KAAK0Z,WAAa1Z,KAAKqZ,cAAcM,iBAAiBH,GAEtD,IAAIpE,EAAcoE,EAAQI,MAAK,SAAUC,GACrC,OAAOA,GAAqC,qBAApBA,EAAOC,YAEnC9Z,KAAK+Z,oBAAoB/Z,KAAK0Z,WAAY,EAAGtE,GAC7CpV,KAAKga,yBAAyBha,KAAK0Z,YAAY,GAE/C1Z,KAAKia,mBAEThC,EAAqB7X,UAAUgZ,gCAAkC,WAC7DpZ,KAAKyZ,qBAELzZ,KAAK0Z,WAAa1Z,KAAK8K,iBAAiBoP,uBACxC,IAAI9E,EAAcpV,KAAK8K,iBAAiBgB,+BACxC9L,KAAK+Z,oBAAoB/Z,KAAK0Z,WAAY,EAAGtE,GAC7CpV,KAAKga,yBAAyBha,KAAK0Z,YAAY,GAE/C1Z,KAAKia,mBAEThC,EAAqB7X,UAAU2Z,oBAAsB,SAAUI,EAAMC,EAAMhF,GACvE,IAAI1N,EAAQ1H,KACZma,EAAKjL,SAAQ,SAAUoJ,GACfA,aAAiB,sBACjB5Q,EAAM2S,yBAAyB/B,EAAO8B,EAAMhF,GAG5C1N,EAAM4S,eAAehC,EAAO8B,EAAMhF,OAI9C6C,EAAqB7X,UAAUia,yBAA2B,SAAUjN,EAAagN,EAAMhF,GACnF,IAEImF,EAFA7S,EAAQ1H,KAGZ,IAAIoN,EAAY4B,mBAAoB5B,EAAY4B,iBAAiB2C,yBAAjE,CAGA,GAAKvE,EAAYoN,YAabD,EAAUH,MAbgB,CAC1B,IAAIK,EAAgB,IAAI,EAAyBrN,EAAagN,EAAMpa,KAAKsN,cAAetN,KAAKgZ,sBAAuBhZ,KAAK0a,gBAAgBrQ,KAAKrK,OAAO,WAAc,OAAO0H,EAAMiM,iBAChL3T,KAAK2a,aAAaC,SAASH,GAC3Bza,KAAK8H,SAASkC,YAAYyQ,EAAc3S,UAExCyS,EAAUH,EAAO,EAGjB,IAAIlb,EAAMc,KAAKmY,gBAAgB/K,GAC/BpN,KAAK6a,YAAY3b,GAAOub,EAM5Bza,KAAK+Z,oBAAoB3M,EAAY0N,cAAeP,EAASnF,KAEjE6C,EAAqB7X,UAAUka,eAAiB,SAAUnL,EAAQiL,EAAMhF,GACpE,IAAIjG,EAAOsC,cAAetC,EAAOsC,YAAYE,yBAA7C,CAGA,IAAIoJ,EAAa,IAAI,EAAoB5L,EAAQiL,EAAMpa,KAAKsN,cAAe8H,GAC3EpV,KAAK2a,aAAaC,SAASG,GAC3B/a,KAAK8H,SAASkC,YAAY+Q,EAAWjT,UACrC9H,KAAK6a,YAAY1L,EAAOiB,SAAW2K,IAEvC9C,EAAqB7X,UAAUsa,gBAAkB,WAC7C1a,KAAKga,yBAAyBha,KAAK0Z,YAAY,GAC/C1Z,KAAKgb,0BAET/C,EAAqB7X,UAAU6a,iBAAmB,SAAU9W,GACxD,IAAE+W,cAAclb,KAAK6a,aAAa,SAAU3b,EAAKic,GACzCA,EAAanG,gBACbmG,EAAalG,YAAY9Q,OAIrC8T,EAAqB7X,UAAUgb,kBAAoB,SAAUC,EAAQC,GACjE,IAAI5T,EAAQ1H,KACRub,EAAmB,GACvB,GAAKD,EAAL,CAIAA,EAASpM,SAAQ,SAAUsM,GAEvB,IAAEN,cAAcxT,EAAMmT,aAAa,SAAU3b,EAAKuc,GAGgB,IAAjCvc,EAAIqE,QAAQiY,KAErCC,EAAKxG,YAAYoG,GACjBE,EAAiBnJ,KAAKoJ,UAIlC,IAAIE,EAAuBJ,EAAStX,QAAO,SAAU2X,GAAW,OAAQ,IAAEC,SAASL,EAAkBI,MACjGD,EAAqBnc,OAAS,GAC9BsF,QAAQmT,KAAK,0DAA2D0D,QAjBxE1b,KAAKib,iBAAiBI,IAoB9BpD,EAAqB7X,UAAUyb,eAAiB,WAC5C,IAAInU,EAAQ1H,KACR8b,EAAgB,EAChBC,EAAmB,EACnBC,EAAgB,SAAUC,GAC1BA,EAAM/M,SAAQ,SAAUgN,GAEpB,GAAIA,aAAgB,sBAAqB,CACrC,IAAIC,EAASzU,EAAMyQ,gBAAgB+D,GAC/BT,EAAO/T,EAAMmT,YAAYsB,GACzBV,IACIA,EAAKhH,aACLqH,IAGAC,KAGR,IACIK,EADcF,EACcpB,cAChCkB,EAAcI,QAK1B,OADAJ,EAAchc,KAAK0Z,YACfoC,EAAgB,GAAKC,EAAmB,EACjChT,EAAa+D,cAEfiP,EAAmB,EACjBhT,EAAa8D,UAGb9D,EAAa4D,UAG5BsL,EAAqB7X,UAAUic,iBAAmB,SAAUnE,GACxDlY,KAAKkY,iBAAmBA,EACxBlY,KAAKsc,oBAETrE,EAAqB7X,UAAUkc,iBAAmB,WAC9C,IAAI5U,EAAQ1H,KACZ,GAAIA,KAAKsW,UAAUjF,cAGf,IAAE6J,cAAclb,KAAK6a,aAAa,SAAU3b,EAAKiQ,GAC7CA,EAAOwF,mBAAmBjN,EAAMwQ,yBAGnC,CAID,IAAK,IAAEnX,OAAOf,KAAKmM,YAAa,CAC5B,IAEIoQ,EAFcvc,KAAKsW,UAAUkG,oBAEFxY,QAAO,SAAUmM,GAC5C,OAAQA,EAAIsB,YAAYC,cAAgBvB,EAAIsB,YAAYgL,QAG5D,YADAzc,KAAKsW,UAAUvE,kBAAkBwK,EAAcvc,KAAKkY,kBAIxD,IAAIwE,EAAiB,GAKrB,GAJA,IAAExB,cAAclb,KAAK2T,eAAe,SAAUzU,EAAKyd,GAC3CA,GACAD,EAAetK,KAAKlT,MAExBwd,EAAend,OAAS,EAAG,CAE3BS,KAAKsW,UAAUvE,kBAAkB2K,EAAgB1c,KAAKkY,kBAEtD,IAAI0E,EAAiB5c,KAAKkY,iBAAmBlP,EAAeyD,QAAUzD,EAAekE,UACrFlN,KAAKoM,cAAc,CAAEvC,KAAM,mBAAoB9D,MAAO6W,OAIlE3E,EAAqB7X,UAAUyc,kBAAoB,WAC/C,IAAInV,EAAQ1H,KACR8c,EAAoB9c,KAAK8K,iBAAiBiS,uBAC1CzM,EAAU,GACY,OAAtBwM,IACAxM,EAAUwM,EAAkB9Y,QAAO,SAAUmM,GAAO,OAAQA,EAAIsB,YAAYC,gBAEhF,IAAI+B,EAAYzT,KAAK8K,iBAAiBuG,cAClC2L,EAAe,EACfC,EAAiB,EAgCrB,OA/BA3M,EAAQpB,SAAQ,SAAUiB,GAEtB,IAAIA,EAAIsB,YAAYC,YAApB,CAIA,IAAImI,EAAS1J,EAAIsB,YACjB,KAAIoI,IAAUA,EAAOlI,6BAIjBjK,EAAMiM,eAAkBjM,EAAMiM,cAAcxD,EAAI2B,aAApD,CAEA,IAAI9E,EACJ,GAAIyG,EAAW,CAEX,IADiCtD,EAAIoH,iBAAmBpH,EAAI4C,oBAAsB5C,EAAI2C,eAElF,OAEJ9F,EAAUmD,EAAImC,iBAAmBnC,EAAIgC,iBAAmBhC,EAAIkC,wBAG5DrF,EAAUmD,EAAIE,YAEdrD,EACAgQ,IAGAC,SAGJD,EAAe,GAAKC,EAAiB,EAC9BjU,EAAe8D,cAEA,IAAjBkQ,GAAsBC,EAAiB,EACrCjU,EAAekE,UAGflE,EAAeyD,SAG9BwL,EAAqB7X,UAAU8c,cAAgB,SAAU/Q,GACrDnM,KAAKmM,WAAa,IAAEpL,OAAOoL,GAAcA,EAAWgR,cAAgB,KACpEnd,KAAKod,gBACLpd,KAAKga,yBAAyBha,KAAK0Z,YAAY,GAE/C,IAAEwB,cAAclb,KAAK6a,aAAa,SAAU3b,EAAK6b,GACzCA,aAAsB,GACtBA,EAAWvM,0BAInBxO,KAAK+Y,4BACL/Y,KAAKgb,0BAET/C,EAAqB7X,UAAUgd,cAAgB,WAC3C,IAAI1V,EAAQ1H,KACR2T,EAAgB,GAChBgJ,EAAe,SAAUT,GACzB,IAAK,IAAEnb,OAAO2G,EAAMyE,YAChB,OAAO,EACX,IAAIkR,EAAe3V,EAAMyQ,gBAAgB+D,GACrCT,EAAO/T,EAAMmT,YAAYwC,GAC7B,IAAK5B,EACD,OAAO,EAEX,GADqBS,aAAgB,uBAAuBA,EAAK1B,YAE7D,OAAO,EACX,IAAIvM,EAAcwN,EAAK/G,iBACvB,OAAuB,OAAhBzG,GAAuBA,EAAYkP,cAAc5Z,QAAQmE,EAAMyE,aAAe,GAErFmR,EAAyB,SAAUpB,EAAMqB,GACzC,IAAIC,GAAwB,EAC5B,GAAItB,aAAgB,sBAAqB,CACrC,IAAIuB,EAAgBd,EAAaT,GACjCA,EAAKpB,cAAc5L,SAAQ,SAAUoJ,GACjC,IAAIoF,EAAcJ,EAAuBhF,EAAOmF,GAAiBF,GAC7DG,IACAF,EAAwBE,MAIpC,IAAIC,KAAgBJ,IAAgBC,IAAgCb,EAAaT,GAC7EmB,EAAe3V,EAAMyQ,gBAAgB+D,GAEzC,OADAvI,EAAc0J,GAAgBM,EACvBA,GAEX3d,KAAK0Z,WAAWxK,SAAQ,SAAUgN,GAAQ,OAAOoB,EAAuBpB,GAAM,MAC9Elc,KAAK2T,cAAgBA,GAEzBsE,EAAqB7X,UAAU4Z,yBAA2B,SAAUN,EAAYkE,GAC5E,IAAIlW,EAAQ1H,KACZ0Z,EAAWxK,SAAQ,SAAUoJ,GACzB,IAAI6D,EAASzU,EAAMyQ,gBAAgBG,GAC/BmD,EAAO/T,EAAMmT,YAAYsB,GAC7B,GAAIV,EAAM,CACN,IAAIkB,GAAejV,EAAMiM,eAAgBjM,EAAMiM,cAAcwI,GAC7DV,EAAK1P,aAAa6R,GAAoBjB,GAE1C,GAAIrE,aAAiB,sBAAqB,CACtC,IAAIlL,EAAckL,EACduF,OAAe,EACnB,GAAIpC,EAAM,CACN,IAAI9N,EAAW8N,EAAKhH,aACpBoJ,IAAeD,GAAmBjQ,OAGlCkQ,EAAeD,EAEnB,IAAI9D,EAAW1M,EAAY0N,cAC3BpT,EAAMsS,yBAAyBF,EAAU+D,QAIrD5F,EAAqB7X,UAAU6Z,gBAAkB,WAC7Cja,KAAKgb,yBACLhb,KAAK+Y,6BAETd,EAAqB7X,UAAU4a,uBAAyB,WACpD,IAAItO,EAAc1M,KAAK6b,iBACvB7b,KAAKoM,cAAc,CAAEvC,KAAM,gBAAiB9D,MAAO2G,KAEvDuL,EAAqB7X,UAAU2Y,0BAA4B,WACvD,IAAI6D,EAAiB5c,KAAK6c,oBAC1B7c,KAAKoM,cAAc,CAAEvC,KAAM,mBAAoB9D,MAAO6W,KAE1D3E,EAAqB7X,UAAUqZ,mBAAqB,WAChD,IAAEqE,aAAa9d,KAAK8H,UAChB9H,KAAK6a,aACL,IAAEK,cAAclb,KAAK6a,aAAa,SAAU3b,EAAKic,GAAgB,OAAOA,EAAarK,aAEzF9Q,KAAK6a,YAAc,IAEvB5C,EAAqB7X,UAAU0Q,QAAU,WACrCxJ,EAAOlH,UAAU0Q,QAAQtJ,KAAKxH,MAC9BA,KAAKyZ,sBAETxB,EAAqBpK,SAAW,iDAChC,EAAW,CACP,oBAAU,uBACXoK,EAAqB7X,UAAW,0BAAsB,GACzD,EAAW,CACP,oBAAU,qBACX6X,EAAqB7X,UAAW,wBAAoB,GACvD,EAAW,CACP,oBAAU,2BACX6X,EAAqB7X,UAAW,qBAAiB,GACpD,EAAW,CACP,oBAAU,iBACX6X,EAAqB7X,UAAW,oBAAgB,GACnD,EAAW,CACP,oBAAU,cACX6X,EAAqB7X,UAAW,iBAAa,GACzC6X,EAzY8B,CA0YvC,aCjaE,EAAwC,WACxC,IAAIpR,EAAgB,SAAUzH,EAAGiG,GAI7B,OAHAwB,EAAgBpH,OAAOqH,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAU5H,EAAGiG,GAAKjG,EAAE2H,UAAY1B,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,IAAI4B,KAAK5B,EAAOA,EAAE6B,eAAeD,KAAI7H,EAAE6H,GAAK5B,EAAE4B,MACpD7H,EAAGiG,IAE5B,OAAO,SAAUjG,EAAGiG,GAEhB,SAAS8B,IAAOnH,KAAKoH,YAAchI,EADnCyH,EAAczH,EAAGiG,GAEjBjG,EAAEgB,UAAkB,OAANiF,EAAa5F,OAAO4H,OAAOhC,IAAM8B,EAAG/G,UAAYiF,EAAEjF,UAAW,IAAI+G,IAV3C,GAaxC,EAA0C,SAAUnI,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAG5D,EAAgC,SAAU8H,GAE1C,SAASyW,IACL,OAAkB,OAAXzW,GAAmBA,EAAO4B,MAAMlJ,KAAMV,YAAcU,KA2C/D,OA7CA,EAAU+d,EAAgBzW,GAI1ByW,EAAe3d,UAAU4d,eAAiB,WACtC,MAAO,qJAEXD,EAAe3d,UAAU6E,KAAO,WAC5BjF,KAAKuJ,YAAYvJ,KAAKge,kBACtBhe,KAAKie,YAAY1K,SAASvT,KAAK8K,iBAAiBuG,eAChD,IAAI6M,EAAiBle,KAAKqJ,mBAAmBC,oBAC7CtJ,KAAKie,YAAYE,SAASD,EAAe,YAAa,eACtDle,KAAKkK,4BAA4BlK,KAAKie,YAAa,aAAWvP,cAAe1O,KAAKoe,cAAc/T,KAAKrK,OACrGA,KAAKkK,4BAA4BlK,KAAK0K,aAAc,SAAOgO,gCAAiC1Y,KAAKqe,mBAAmBhU,KAAKrK,OACzHA,KAAKkK,4BAA4BlK,KAAK0K,aAAc,SAAO6D,gCAAiCvO,KAAKqe,mBAAmBhU,KAAKrK,QAE7H+d,EAAe3d,UAAUge,cAAgB,WACrC,IAAIE,EAAWte,KAAKie,YAAYjN,WAChC,GAAIsN,IAAate,KAAK8K,iBAAiBuG,cAAe,CAClDrR,KAAK8K,iBAAiByT,aAAaD,EAAU,eAC7C,IAAIlI,EAAMpW,KAAKqJ,mBAAmBmV,SAC9BpI,GACAA,EAAIqI,kBAIhBV,EAAe3d,UAAUie,mBAAqB,WAC1C,IAAInF,EAAkBlZ,KAAK8K,iBAAiBuG,cAC5CrR,KAAKie,YAAY1K,SAAS2F,IAE9B,EAAW,CACP,oBAAU,qBACX6E,EAAe3d,UAAW,wBAAoB,GACjD,EAAW,CACP,oBAAU,iBACX2d,EAAe3d,UAAW,oBAAgB,GAC7C,EAAW,CACP,oBAAU,uBACX2d,EAAe3d,UAAW,0BAAsB,GACnD,EAAW,CACP,sBAAY,gBACb2d,EAAe3d,UAAW,mBAAe,GAC5C,EAAW,CACP,gBACD2d,EAAe3d,UAAW,OAAQ,MAC9B2d,EA9CwB,CA+CjC,a,UCnEE,EAAwC,WACxC,IAAIlX,EAAgB,SAAUzH,EAAGiG,GAI7B,OAHAwB,EAAgBpH,OAAOqH,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAU5H,EAAGiG,GAAKjG,EAAE2H,UAAY1B,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,IAAI4B,KAAK5B,EAAOA,EAAE6B,eAAeD,KAAI7H,EAAE6H,GAAK5B,EAAE4B,MACpD7H,EAAGiG,IAE5B,OAAO,SAAUjG,EAAGiG,GAEhB,SAAS8B,IAAOnH,KAAKoH,YAAchI,EADnCyH,EAAczH,EAAGiG,GAEjBjG,EAAEgB,UAAkB,OAANiF,EAAa5F,OAAO4H,OAAOhC,IAAM8B,EAAG/G,UAAYiF,EAAEjF,UAAW,IAAI+G,IAV3C,GAaxC,EAA0C,SAAUnI,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAK5D,EAAiC,SAAU8H,GAE3C,SAASoX,IACL,IAAIhX,EAAQJ,EAAOE,KAAKxH,KAAM0e,EAAgB7Q,WAAa7N,KAG3D,OAFA0H,EAAMiX,aAAc,EACpBjX,EAAMkX,kBAAoB,GACnBlX,EAkKX,OAvKA,EAAUgX,EAAiBpX,GAQ3BoX,EAAgBte,UAAUye,WAAa,SAAU/K,GAC7CxM,EAAOlH,UAAU2L,aAAavE,KAAKxH,KAAM8T,GACrCA,IAAY9T,KAAK2e,aACjB3e,KAAKiF,KAAKjF,KAAK6K,SAGvB6T,EAAgBte,UAAU6E,KAAO,SAAU4F,GACvC,IAAIiU,EAAgB,CAChBC,qBAAqB,EACrBrT,yBAAyB,EACzBF,sBAAsB,EACtBI,yBAAyB,EACzBqN,yBAAyB,EACzB+F,mBAAmB,EACnBC,mBAAmB,EACnBC,gBAAgB,EAChBC,gBAAgB,EAChB5G,4BAA4B,EAC5BnC,IAAKpW,KAAKqW,SAEd,IAAE+I,UAAUN,EAAejU,GAC3B7K,KAAK6K,OAASiU,EACV9e,KAAKqf,8BAAgCrf,KAAK6K,OAAOmU,oBACjDhf,KAAKsf,eAAiB,IAAI,EAC1Btf,KAAKuf,aAAavf,KAAKsf,iBAE3Btf,KAAKwf,iBAAmBxf,KAAK2a,aAAa8E,gBAAgB,mBAC1Dzf,KAAKwf,iBAAiBva,MAAK,EAAMjF,KAAK6K,QACtC7K,KAAKuf,aAAavf,KAAKwf,kBACnBxf,KAAKqf,8BACArf,KAAK6K,OAAOoU,oBACbjf,KAAK0f,sBAAwB,IAAI,KAAsB,GACvD1f,KAAKuf,aAAavf,KAAK0f,wBAEtB1f,KAAK6K,OAAOqU,iBACblf,KAAK2f,oBAAsB,IAAI,KAAoB,GACnD3f,KAAKuf,aAAavf,KAAK2f,sBAEtB3f,KAAK6K,OAAOsU,iBACbnf,KAAK4f,mBAAqB,IAAI,KAAmB,GACjD5f,KAAKuf,aAAavf,KAAK4f,qBAE3B5f,KAAK6f,iBACL7f,KAAKkK,4BAA4BlK,KAAK0K,aAAc,SAAO6D,gCAAiCvO,KAAK6f,eAAexV,KAAKrK,QAEzHA,KAAK2e,aAAc,GAEvBD,EAAgBte,UAAU0f,2BAA6B,SAAUhM,GACxD9T,KAAKqf,8BAINrf,KAAKsf,eACLtf,KAAKsf,eAAevT,aAAa+H,GAE5BA,IACL9T,KAAKsf,eAAiB,IAAI,EAC1Btf,KAAK2a,aAAaC,SAAS5a,KAAKsf,gBAEhCtf,KAAK8H,SAASiY,aAAa/f,KAAKsf,eAAexX,SAAU9H,KAAK8H,SAASkY,YACvEhgB,KAAK4e,kBAAkBxM,KAAKpS,KAAKsf,eAAexO,QAAQzG,KAAKrK,KAAKsf,kBAEtEtf,KAAK6f,mBAETnB,EAAgBte,UAAU6f,2BAA6B,SAAUnM,GACxD9T,KAAKqf,8BAINrf,KAAK0f,sBACL1f,KAAK0f,sBAAsB3T,aAAa+H,GAEnCA,IACL9T,KAAK0f,sBAAwB,IAAI,KAAsB,GACvD1f,KAAKuf,aAAa,IAAI,KAAsB,KAEhDvf,KAAK6f,mBAETnB,EAAgBte,UAAU8f,wBAA0B,SAAUpM,GACrD9T,KAAKqf,8BAINrf,KAAK2f,oBACL3f,KAAK2f,oBAAoB5T,aAAa+H,GAEjCA,IACL9T,KAAK2f,oBAAsB,IAAI,KAAoB,GACnD3f,KAAKuf,aAAavf,KAAK2f,sBAE3B3f,KAAK6f,mBAETnB,EAAgBte,UAAU+f,uBAAyB,SAAUrM,GACpD9T,KAAKqf,8BAINrf,KAAK4f,mBACL5f,KAAK4f,mBAAmB7T,aAAa+H,GAEhCA,IACL9T,KAAK4f,mBAAqB,IAAI,KAAmB,GACjD5f,KAAKuf,aAAavf,KAAK4f,oBACvB5f,KAAK4f,mBAAmB7T,aAAa+H,IAEzC9T,KAAK6f,mBAETnB,EAAgBte,UAAUyf,eAAiB,WACvC,IAAIO,EAAOpgB,KAAK8H,SACEd,MAAM5G,UAAU6V,MAAMzO,KAAK4Y,EAAKC,iBAAiB,oBACvDnR,SAAQ,SAAUoR,GAAc,OAAO,IAAEC,eAAeD,EAAY,0BAChF,IAAIE,EAAc,IAAEC,KAAKL,EAAKC,iBAAiB,oCAC3CG,GACA,IAAEpY,YAAYoY,EAAa,wBAGnC9B,EAAgBte,UAAUif,0BAA4B,WAClD,OAAO,iBAAeqB,iBAAiB,cAAYC,kBAAmB,iBAE1EjC,EAAgBte,UAAUwgB,mBAAqB,SAAUtF,GACrDtb,KAAKwf,iBAAiBqB,aAAavF,IAEvCoD,EAAgBte,UAAU0gB,qBAAuB,SAAUxF,GACvDtb,KAAKwf,iBAAiBuB,eAAezF,IAEzCoD,EAAgBte,UAAUmZ,gBAAkB,SAAUC,GAClDxZ,KAAKwf,iBAAiBjG,gBAAgBC,IAE1CkF,EAAgBte,UAAUkZ,mBAAqB,WAC3CtZ,KAAKwf,iBAAiBlG,sBAE1BoF,EAAgBte,UAAUmf,aAAe,SAAUyB,GAC/ChhB,KAAK2a,aAAaC,SAASoG,GAC3BhhB,KAAK8H,SAASkC,YAAYgX,EAAUlZ,UACpC9H,KAAK4e,kBAAkBxM,KAAK4O,EAAUlQ,QAAQzG,KAAK2W,KAEvDtC,EAAgBte,UAAU6gB,gBAAkB,WACxCjhB,KAAK4e,kBAAkB1P,SAAQ,SAAUgS,GAAQ,OAAOA,OACxDlhB,KAAK4e,kBAAkBrf,OAAS,EAChC,IAAEue,aAAa9d,KAAK8H,WAExB4W,EAAgBte,UAAU+gB,QAAU,WAChCnhB,KAAKihB,kBACLjhB,KAAKiF,KAAKjF,KAAK6K,SAEnB6T,EAAgBte,UAAU0Q,QAAU,WAChC9Q,KAAKihB,kBACL3Z,EAAOlH,UAAU0Q,QAAQtJ,KAAKxH,OAElC0e,EAAgB7Q,SAAW,sCAC3B,EAAW,CACP,oBAAU,uBACX6Q,EAAgBte,UAAW,0BAAsB,GACpD,EAAW,CACP,oBAAU,YACXse,EAAgBte,UAAW,eAAW,GACzC,EAAW,CACP,oBAAU,iBACXse,EAAgBte,UAAW,oBAAgB,GACvCse,EAxKyB,CAyKlC,aC/LE,EAAwC,WACxC,IAAI7X,EAAgB,SAAUzH,EAAGiG,GAI7B,OAHAwB,EAAgBpH,OAAOqH,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAU5H,EAAGiG,GAAKjG,EAAE2H,UAAY1B,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,IAAI4B,KAAK5B,EAAOA,EAAE6B,eAAeD,KAAI7H,EAAE6H,GAAK5B,EAAE4B,MACpD7H,EAAGiG,IAE5B,OAAO,SAAUjG,EAAGiG,GAEhB,SAAS8B,IAAOnH,KAAKoH,YAAchI,EADnCyH,EAAczH,EAAGiG,GAEjBjG,EAAEgB,UAAkB,OAANiF,EAAa5F,OAAO4H,OAAOhC,IAAM8B,EAAG/G,UAAYiF,EAAEjF,UAAW,IAAI+G,IAV3C,GAaxC,EAA0C,SAAUnI,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAG5D,EAAkC,SAAU8H,GAE5C,SAAS8Z,IACL,OAAkB,OAAX9Z,GAAmBA,EAAO4B,MAAMlJ,KAAMV,YAAcU,KA+D/D,OAjEA,EAAUohB,EAAkB9Z,GAK5B8Z,EAAiBhhB,UAAU6E,KAAO,SAAUqI,EAAezC,GACvD7K,KAAKuJ,YAAY6X,EAAiBvT,UAClC7N,KAAKsN,cAAgBA,EACrBtN,KAAK6K,OAASA,EACd7K,KAAKqhB,uBAAuBpc,KAAKjF,KAAK6K,QACtC,IAAIyW,EAAathB,KAAK6K,OAAOW,qBACzB+V,EAAavhB,KAAK6K,OAAOa,wBACZ1L,KAAK6K,OAAOe,yBACX0V,GAAcC,GAC5BvhB,KAAKqhB,uBAAuBtV,cAAa,GAE7C/L,KAAKkK,4BAA4BlK,KAAKwhB,qBAAsB,gBAAiBxhB,KAAK0a,gBAAgBrQ,KAAKrK,OACvGA,KAAKkK,4BAA4BlK,KAAKwhB,qBAAsB,mBAAoBxhB,KAAKyhB,kBAAkBpX,KAAKrK,OAC5GA,KAAKwhB,qBAAqBvc,KAAKjF,KAAK6K,OAAQ7K,KAAKsN,eACjDtN,KAAKkK,4BAA4BlK,KAAKqhB,uBAAwB,YAAarhB,KAAK0hB,YAAYrX,KAAKrK,OACjGA,KAAKkK,4BAA4BlK,KAAKqhB,uBAAwB,cAAerhB,KAAK2hB,cAActX,KAAKrK,OACrGA,KAAKkK,4BAA4BlK,KAAKqhB,uBAAwB,YAAarhB,KAAK4hB,YAAYvX,KAAKrK,OACjGA,KAAKkK,4BAA4BlK,KAAKqhB,uBAAwB,cAAerhB,KAAK6hB,cAAcxX,KAAKrK,OACrGA,KAAKkK,4BAA4BlK,KAAKqhB,uBAAwB,gBAAiBrhB,KAAK8hB,gBAAgBzX,KAAKrK,QAE7GohB,EAAiBhhB,UAAUshB,YAAc,WACrC1hB,KAAKwhB,qBAAqBvG,kBAAiB,IAE/CmG,EAAiBhhB,UAAUuhB,cAAgB,WACvC3hB,KAAKwhB,qBAAqBvG,kBAAiB,IAE/CmG,EAAiBhhB,UAAUygB,aAAe,SAAUvF,GAChDtb,KAAKwhB,qBAAqBpG,mBAAkB,EAAME,IAEtD8F,EAAiBhhB,UAAU2gB,eAAiB,SAAUzF,GAClDtb,KAAKwhB,qBAAqBpG,mBAAkB,EAAOE,IAEvD8F,EAAiBhhB,UAAUmZ,gBAAkB,SAAUC,GACnDxZ,KAAKwhB,qBAAqBjI,gBAAgBC,IAE9C4H,EAAiBhhB,UAAU0hB,gBAAkB,SAAU5Q,GACnDlR,KAAKwhB,qBAAqBtE,cAAchM,EAAM/E,aAElDiV,EAAiBhhB,UAAUkZ,mBAAqB,WAC5CtZ,KAAKwhB,qBAAqBrI,oBAE9BiI,EAAiBhhB,UAAUwhB,YAAc,WACrC5hB,KAAKwhB,qBAAqBnF,kBAAiB,IAE/C+E,EAAiBhhB,UAAUyhB,cAAgB,WACvC7hB,KAAKwhB,qBAAqBnF,kBAAiB,IAE/C+E,EAAiBhhB,UAAUsa,gBAAkB,SAAUxJ,GACnDlR,KAAKqhB,uBAAuBzU,eAAesE,EAAMnL,QAErDqb,EAAiBhhB,UAAUqhB,kBAAoB,SAAUvQ,GACrDlR,KAAKqhB,uBAAuBtU,kBAAkBmE,EAAMnL,QAExDqb,EAAiBvT,SAAW,yOAC5B,EAAW,CACP,sBAAY,2BACbuT,EAAiBhhB,UAAW,8BAA0B,GACzD,EAAW,CACP,sBAAY,yBACbghB,EAAiBhhB,UAAW,4BAAwB,GAChDghB,EAlE0B,CAmEnC,a,UC/ESW,EAAyB,CAChCrZ,WAAY,cAAYsZ,sBACxBrZ,MAAO,GACPC,kBAAmB,CACf,CAAEC,cAAe,sBAAuBC,eAAgB,GACxD,CAAED,cAAe,oBAAqBC,eAAgB,GACtD,CAAED,cAAe,gBAAiBC,eAAgB,IAEtDmZ,eAAgB,CACZ,CAAEpZ,cAAe,qBAAsBC,eAAgB,IAE3DoZ,iBAAkB,CACd,IACA,IACA,MCtBR,mC,yDCAInjB,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAG5D,EAAkC,WAClC,SAAS2iB,KAmmBT,OAjmBAA,EAAiB/hB,UAAUgiB,iBAAmB,SAAUC,GACpDriB,KAAKqiB,SAAWA,GAEpBF,EAAiB/hB,UAAU6E,KAAO,WAC9BjF,KAAKsiB,OAAStiB,KAAKuiB,cAAclb,OAAO,oBACpCrH,KAAKwiB,SAASC,YAAc,YAAUC,6BACtC1iB,KAAK2iB,mBAAqB3iB,KAAKwiB,WAGvCL,EAAiB/hB,UAAUwiB,mBAAqB,WAC5C,IAAIlb,EAAQ1H,KACZA,KAAKsiB,OAAOO,IAAI,sBAChB7iB,KAAK8iB,sBAAqB,SAAUC,GAChCA,EAASC,WACV,SAAUC,GACT,IAAIC,EAAOD,EAAQ9e,MACnB,IAAI,IAAE7D,eAAe4iB,GAArB,CAGA,IAAIC,EAAazb,EAAM0b,YAAYF,GAC/BG,EAAW3b,EAAM2B,mBAAmBia,kCAIxC,GAHID,IACAF,EAAaE,EAAS,CAAEH,KAAMC,MAE9B,IAAE7iB,eAAe6iB,GAArB,CAcAzb,EAAM6b,kBAXe,SAAUC,EAAcC,EAAiBC,EAAaC,GACvE,IAAIC,EAA6C,GAArBT,EAAW5jB,QAAuC,GAAxB4jB,EAAW,GAAG5jB,OAClDmI,EAAMmc,iBAAmBnc,EAAMmc,gBAAgBC,sBAC5BF,EAEjClc,EAAMqc,qBAAqBZ,EAAYK,EAAcC,EAAiBE,GAGtEjc,EAAMsc,6BAA6Bb,EAAYK,EAAcC,EAAiBC,EAAaC,YAO3GxB,EAAiB/hB,UAAUmjB,iBAAmB,SAAUU,GAOpD,IAAIN,EACJ,GAPA3jB,KAAK0K,aAAa0B,cAAc,CAC5BvC,KAAM,SAAOqa,kBACb9N,IAAKpW,KAAKqJ,mBAAmBmV,SAC7BlI,UAAWtW,KAAKqJ,mBAAmB8a,eACnCC,OAAQ,cAGRpkB,KAAK2iB,mBAAoB,CACzB,IAAI0B,EAAqBrkB,KAAKqJ,mBAAmBib,gCACjDX,EAAc,IAAI,cAAYU,EAAoBrkB,KAAK2iB,mBAAmB4B,eAE9E,IAAIf,EAAe,GACfC,EAAkB,GAClBC,EAAc1jB,KAAKwkB,sBAAsBC,iBAC7CR,EAAmBT,EAAcC,EAAiBC,EAAaC,GAC3DA,GACA3jB,KAAK2iB,mBAAmB+B,YAAYf,GAExC3jB,KAAK2kB,YAAYC,eACjB5kB,KAAK6kB,mBAAmBrB,GACxBxjB,KAAK8kB,eAAerB,GAChBC,GACA1jB,KAAKwkB,sBAAsBO,eAAerB,EAAYsB,SAAUtB,EAAYvU,OAAQuU,EAAYuB,WAAW,GAE/GjlB,KAAK0K,aAAa0B,cAAc,CAC5BvC,KAAM,SAAOqb,gBACb9O,IAAKpW,KAAKqJ,mBAAmBmV,SAC7BlI,UAAWtW,KAAKqJ,mBAAmB8a,eACnCC,OAAQ,eAGhBjC,EAAiB/hB,UAAU2jB,qBAAuB,SAAUoB,EAAe3B,EAAcC,EAAiBE,GACtG,IAAIjc,EAAQ1H,KAERolB,EAA8BplB,KAAKqlB,YAAcF,EAAc5lB,QAAU,EACzE+lB,EAAc,EAAGC,EAAe,EAkCpCvlB,KAAKwlB,qBAAoB,GAjCP,SAAUC,EAAYC,EAASpV,EAASqV,EAAOC,GAE7D,GAD2BD,EAAQL,GAAeH,EAAc5lB,OACtC,CACtB,GAAI6lB,EACA,OAGJE,GAAeC,EACfA,EAAe,EAEnB,IAAIM,EAAiBV,EAAcQ,EAAQL,GAE3C7B,EAAgBrR,KAAKsT,GACrBpV,EAAQpB,SAAQ,SAAUC,EAAQ2W,GAC9B,GAAK3W,EAAO4W,eAAeL,KAAYvW,EAAO6W,gBAAgBN,GAA9D,CAIII,GAAOD,EAAetmB,SACtBumB,GAAYD,EAAetmB,QAE/B,IAAI+e,EAAWuH,EAAeC,GAC1BG,EAA+Bve,EAAM2B,mBAAmB6c,kCAC5D5H,EAAW5W,EAAMye,gBAAgBT,EAASvW,EAAQmP,EAAU2H,EAA8B,YAAUG,uBACpG1e,EAAM2e,aAAa9S,SAASmS,EAASvW,EAAQmP,EAAU,YAAUgI,cAC7D3C,GACAA,EAAY4C,cAAcb,EAAQc,OAAQ,CAACrX,IAE/C,IAAIsX,EAAS/e,EAAMgf,kBAAkBC,mBAAmBlB,EAAWT,SAAU7V,EAAQsW,EAAWR,WAChGzB,EAAaiD,IAAU,MAE3BlB,QAIRpD,EAAiB/hB,UAAU4jB,6BAA+B,SAAUb,EAAYK,EAAcC,EAAiBC,EAAaC,GACxH,GAAKD,EAAL,CAGA,IAAI+B,EAAa,CAAET,SAAUtB,EAAYsB,SAAUC,UAAWvB,EAAYuB,WACtE2B,EAAqB5mB,KAAK8K,iBAAiB+b,8BAA8BnD,EAAYvU,QACzC,IAAtBgU,EAAW5jB,QAAyC,IAAzB4jB,EAAW,GAAG5jB,OAE/DS,KAAK8mB,iBAAiB3D,EAAYM,EAAiBD,EAAcG,GAGjE3jB,KAAK+mB,oBAAoB5D,EAAYsC,EAAYhC,EAAiBmD,EAAoBpD,EAAc,YAAUwD,sBAAuBrD,KAG7IxB,EAAiB/hB,UAAU6mB,cAAgB,WACvC,IAAIvf,EAAQ1H,KACZ,GAAKA,KAAK6jB,kBAAmB7jB,KAAK6jB,gBAAgBqD,UAAlD,CAGA,IAAIC,EAAiB,GAmCrBnnB,KAAKujB,kBAlCgB,SAAUC,EAAcC,EAAiBC,EAAaC,GAgCvEjc,EAAM8d,qBAAoB,GA/BR,SAAUC,EAAYC,EAASpV,EAASqV,EAAOC,GAExDuB,EAAe5nB,QAYhBkkB,EAAgBrR,KAAKsT,GACrBpV,EAAQpB,SAAQ,SAAUC,EAAQwW,GAC9B,GAAKxW,EAAO4W,eAAeL,GAA3B,CAGA,IAAI0B,EAAgBD,EAAexB,GAC/BM,EAA+Bve,EAAM2B,mBAAmB6c,kCAC5DkB,EAAgB1f,EAAMye,gBAAgBT,EAASvW,EAAQiY,EAAenB,EAA8B,YAAUG,uBAC9G1e,EAAM2e,aAAa9S,SAASmS,EAASvW,EAAQiY,EAAe,YAAUd,cAClE3C,GACAA,EAAY4C,cAAcb,EAAQc,OAAQ,CAACrX,IAE/C,IAAIsX,EAAS/e,EAAMgf,kBAAkBC,mBAAmBlB,EAAWT,SAAU7V,EAAQsW,EAAWR,WAChGzB,EAAaiD,IAAU,OAvB3BnW,EAAQpB,SAAQ,SAAUC,GAEtB,IAAIhL,EAAQuD,EAAM2e,aAAarV,SAAS7B,EAAQuW,GAC5C2B,EAA8B3f,EAAM2B,mBAAmBie,iCAC3DnjB,EAAQuD,EAAMye,gBAAgBT,EAASvW,EAAQhL,EAAOkjB,EAA6B,YAAUjB,uBAC7Fe,EAAe/U,KAAKjO,cA0BxCge,EAAiB/hB,UAAU0kB,eAAiB,SAAUyC,GAClD,IAAI7f,EAAQ1H,KACPA,KAAKqJ,mBAAmBme,iBAG7BD,EAASrY,SAAQ,SAAUwW,GACvB,IAAIxU,EAAQ,CACRrH,KAAM,SAAO4d,wBACbC,KAAMhC,EACNxC,KAAMwC,EAAQxC,KACd8B,SAAUU,EAAQV,SAClBC,UAAWS,EAAQT,UACnB0C,QAASjgB,EAAM2B,mBAAmBsR,aAClCvE,IAAK1O,EAAM2B,mBAAmBmV,SAC9BlI,UAAW5O,EAAM2B,mBAAmB8a,gBAExCzc,EAAMgD,aAAa0B,cAAc8E,OAGzCiR,EAAiB/hB,UAAU2mB,oBAAsB,SAAUa,EAAmBnC,EAAYhC,EAAiBmD,EAAoBpD,EAAc3Z,EAAM8Z,GAC/I,IAAIjc,EAAQ1H,KAiBZ,OAhBA4nB,EAAkB1Y,SAAQ,SAAU2Y,GAEhC,GAAKpC,EAAL,CAGA,IAAIC,EAAUhe,EAAMogB,iBAAiBC,WAAWtC,GAC5CC,IACAjC,EAAgBrR,KAAKsT,GACrBmC,EAAiB3Y,SAAQ,SAAU/K,EAAOwhB,GACtC,IAAIxW,EAASyX,EAAmBjB,GAChCje,EAAMsgB,gBAAgBtC,EAASvW,EAAQhL,EAAOshB,EAAYjC,EAAc3Z,EAAM8Z,MAGlF8B,EAAa/d,EAAMugB,sBAAsBC,YAAY,CAAEjD,UAAWQ,EAAWR,UAAWD,SAAUS,EAAWT,gBAG9GS,GAEXtD,EAAiB/hB,UAAU0mB,iBAAmB,SAAU3D,EAAYM,EAAiBD,EAAcG,GAC/F,IAAIjc,EAAQ1H,KACRmE,EAAQgf,EAAW,GAAG,GAO1BnjB,KAAKwlB,qBAAoB,GANP,SAAUC,EAAYC,EAASpV,GAC7CmT,EAAgBrR,KAAKsT,GACrBpV,EAAQpB,SAAQ,SAAUC,GACtBzH,EAAMsgB,gBAAgBtC,EAASvW,EAAQhL,EAAOshB,EAAYjC,EAAc,YAAUwD,sBAAuBrD,UAKrHxB,EAAiB/hB,UAAU4nB,gBAAkB,SAAUtC,EAASvW,EAAQhL,EAAOshB,EAAYjC,EAAc3Z,EAAM8Z,GAC3G,GAAK+B,GACAD,GACAtW,GACAA,EAAO4W,iBACR5W,EAAO6W,gBAAgBN,GAJ3B,CAOA,IAAIyC,EAAiBnoB,KAAKmmB,gBAAgBT,EAASvW,EAAQhL,EAAOnE,KAAKqJ,mBAAmB6c,kCAAmCrc,GAC7H7J,KAAKqmB,aAAa9S,SAASmS,EAASvW,EAAQgZ,EAAgB,YAAU7B,cAEtE9C,EADaxjB,KAAK0mB,kBAAkBC,mBAAmBlB,EAAWT,SAAU7V,EAAQsW,EAAWR,aACxE,EACnBtB,GACAA,EAAY4C,cAAcb,EAAQc,OAAQ,CAACrX,MAGnDgT,EAAiB/hB,UAAUgoB,gBAAkB,SAAUC,GACnDroB,KAAKsiB,OAAOO,IAAI,qCAAuCwF,GAEzB,qBAAnBA,IACPA,EAAiBroB,KAAKqJ,mBAAmBif,4BAE7C,IAAIC,GAAsBvoB,KAAKwoB,oBAAoBtB,YAC3ClnB,KAAKqJ,mBAAmBof,gCAE5BzoB,KAAK6jB,iBAAmB7jB,KAAK6jB,gBAAgBC,oBAC7C9jB,KAAK0oB,6BAA6BL,GAE7BE,EAELvoB,KAAK2oB,4BAA4BN,GAE5BroB,KAAKwkB,sBAAsBoE,mBAEhC5oB,KAAK6oB,2BAA2BR,GAQhCroB,KAAK0oB,6BAA6BL,IAG1ClG,EAAiB/hB,UAAUolB,oBAAsB,SAAUsD,EAAWC,EAAaC,GAC/E,IAAIthB,EAAQ1H,KACZ,GAAKA,KAAK6jB,kBAAmB7jB,KAAK6jB,gBAAgBqD,UAAlD,CAGA,IAAI+B,EAAajpB,KAAK6jB,gBAAgBqF,gBACtC,GAAIJ,EAAW,CACX,IAAIK,EAAQF,EAAW,GACvBjpB,KAAKopB,mBAAmBD,EAAOJ,EAAaC,GAAgB,QAG5DC,EAAW/Z,SAAQ,SAAUia,EAAOrD,GAAO,OAAOpe,EAAM0hB,mBAAmBD,EAAOJ,EAAaC,EAAgBlD,IAAQmD,EAAW1pB,OAAS,QAGnJ4iB,EAAiB/hB,UAAUgpB,mBAAqB,SAAUD,EAAOJ,EAAaC,EAAgBK,GAC1F,GAAKrpB,KAAK6jB,gBAAV,CAGA,IAAI4B,EAAazlB,KAAK6jB,gBAAgByF,iBAAiBH,GACnDI,EAAUvpB,KAAK6jB,gBAAgB2F,eAAeL,GAC9CH,GAAkB,IAAEjoB,OAAOioB,IAAmBG,EAAM7Y,SACpD0Y,EAAeG,EAAM7Y,SAMzB,IAJA,IAAImZ,EAAa,EACb7D,GAAY,GAGRA,IAAc,IAAEzX,QAAQsX,IAAeA,GAAY,CACvD,IAAIC,EAAU1lB,KAAK8nB,iBAAiBC,WAAWtC,GAC/CG,EAAY5lB,KAAK8nB,iBAAiB4B,QAAQjE,EAAY8D,GACtDR,EAAYtD,EAAYC,EAASyD,EAAM7Y,QAASmZ,IAAc7D,GAAayD,GAC3E5D,EAAazlB,KAAKioB,sBAAsBC,YAAYzC,MAG5DtD,EAAiB/hB,UAAUsoB,6BAA+B,SAAUL,GAChE,IAAI3gB,EAAQ1H,KAEZ,QADuB,IAAnBqoB,IAA6BA,GAAiB,GAC7CroB,KAAK6jB,kBAAmB7jB,KAAK6jB,gBAAgBqD,UAAlD,CAGA,IAAIyC,EAAc3pB,KAAKqJ,mBAAmBugB,0BACtC1G,EAAO,GACPM,EAAe,GAoCnBxjB,KAAKwlB,qBAAoB,GAjBP,SAAUC,EAAYC,EAASpV,EAASqV,EAAOC,GAC7DtV,EAAQpB,SAAQ,SAAUC,EAAQwW,GAC9B,IAAIxhB,EAAQuD,EAAM2e,aAAarV,SAAS7B,EAAQuW,GAC5CyC,EAAiBzgB,EAAMye,gBAAgBT,EAASvW,EAAQhL,EAAOuD,EAAM2B,mBAAmBie,iCAAkC,YAAUN,uBAC3H,GAATrB,IACAzC,GAAQyG,GAER,IAAE5oB,OAAOonB,KACTjF,GAAQiF,GAEZ,IAAI1B,EAAS/e,EAAMgf,kBAAkBC,mBAAmBlB,EAAWT,SAAU7V,EAAQsW,EAAWR,WAChGzB,EAAaiD,IAAU,KAEtBb,IACD1C,GAAQ,WA/BK,SAAU5S,GACtB+X,IAGL/X,EAAQpB,SAAQ,SAAUC,EAAQwW,GAC9B,IAAIxhB,EAAQuD,EAAMoD,iBAAiBuK,wBAAwBlG,EAAQ,aAAa,GAC5EgZ,EAAiBzgB,EAAMmiB,kBAAkB1a,EAAQhL,EAAOuD,EAAM2B,mBAAmBygB,oCACxE,GAATnE,IACAzC,GAAQyG,GAER,IAAE5oB,OAAOonB,KACTjF,GAAQiF,MAGhBjF,GAAQ,WAqBZljB,KAAK+pB,oBAAoB7G,GACzBljB,KAAK6kB,mBAAmBrB,KAE5BrB,EAAiB/hB,UAAUyoB,2BAA6B,SAAUR,GAC9D,IAAI5nB,OACmB,IAAnB4nB,IAA6BA,GAAiB,GAClD,IAAI3E,EAAc1jB,KAAKwkB,sBAAsBC,iBAC7C,IAAI,IAAEtW,QAAQuV,GAAd,CAGA,IAAI+C,EAASzmB,KAAK0mB,kBAAkBsD,SAAStG,GACzC+B,EAAa,CAAER,UAAWvB,EAAYuB,UAAWD,SAAUtB,EAAYsB,UACvEU,EAAU1lB,KAAK8nB,iBAAiBC,WAAWtC,GAC3CtW,EAASuU,EAAYvU,OACrBhL,EAAQnE,KAAKqmB,aAAarV,SAAS7B,EAAQuW,GAC3CyC,EAAiBnoB,KAAKmmB,gBAAgBT,EAASvW,EAAQhL,EAAOnE,KAAKqJ,mBAAmBie,iCAAkC,YAAUN,uBAClI,IAAE7Y,QAAQga,KAGVA,EAAiB,MAErB,IAAIjF,EAAO,GACX,GAAImF,EAAgB,CAChB,IAAI4B,EAAcjqB,KAAK8K,iBAAiBuK,wBAAwBlG,EAAQ,aAAa,GACrF+T,EAAOljB,KAAK6pB,kBAAkB1a,EAAQ8a,EAAajqB,KAAKqJ,mBAAmBygB,oCAC3E5G,GAAQ,OAEZA,GAAQiF,EAAe+B,WACvBlqB,KAAK+pB,oBAAoB7G,GACzBljB,KAAK6kB,qBAAoBpkB,EAAK,IAAOgmB,IAAU,EAAMhmB,MAEzD0hB,EAAiB/hB,UAAUykB,mBAAqB,SAAUrB,GACtD,IAAI9b,EAAQ1H,KACZkI,OAAOC,YAAW,WACd,IAAI+I,EAAQ,CACRrH,KAAM,SAAOsgB,kBACbC,MAAO5G,EACPpN,IAAK1O,EAAM2O,QACXC,UAAW5O,EAAM4O,WAErB5O,EAAMgD,aAAa0B,cAAc8E,KAClC,IAEPiR,EAAiB/hB,UAAU+lB,gBAAkB,SAAUT,EAASvW,EAAQhL,EAAO+c,EAAMrX,GACjF,OAAIqX,EAUOA,EATM,CACT/R,OAAQA,EACRuY,KAAMhC,EACNvhB,MAAOA,EACPiS,IAAKpW,KAAKqJ,mBAAmBmV,SAC7BlI,UAAWtW,KAAKqJ,mBAAmB8a,eACnCwD,QAAS3nB,KAAKqJ,mBAAmBsR,aACjC9Q,KAAMA,IAIP1F,GAEXge,EAAiB/hB,UAAUypB,kBAAoB,SAAU1a,EAAQhL,EAAO+c,GACpE,OAAIA,EAOOA,EANM,CACT/R,OAAQA,EACRiH,IAAKpW,KAAKqJ,mBAAmBmV,SAC7BlI,UAAWtW,KAAKqJ,mBAAmB8a,eACnCwD,QAAS3nB,KAAKqJ,mBAAmBsR,eAIlCxW,GAEXge,EAAiB/hB,UAAUuoB,4BAA8B,SAAUN,EAAgBgC,QACxD,IAAnBhC,IAA6BA,GAAiB,GAClD,IAEIxd,EAAS,CACTwf,WAAYA,EACZC,YAJcjC,EAKdkC,aAAa,EACbC,gBAAgB,EAChBC,gBANczqB,KAAKqJ,mBAAmBugB,0BAOtCc,cAAc,EACdC,oBAAqB3qB,KAAKqJ,mBAAmBie,iCAC7CsD,sBAAuB5qB,KAAKqJ,mBAAmBygB,oCAE/C5G,EAAOljB,KAAK6qB,WAAWC,aAAajgB,GACxC7K,KAAK+pB,oBAAoB7G,IAE7Bf,EAAiB/hB,UAAU2pB,oBAAsB,SAAU7G,GACvD,IAAI6H,EAAmB/qB,KAAKqJ,mBAAmB2hB,yBAC3CD,GAAoB,IAAEhqB,OAAOgqB,GAE7BA,EADa,CAAE7H,KAAMA,IAIrBljB,KAAK8iB,sBAAqB,SAAUG,GAChCA,EAAQ9e,MAAQ+e,EAChBD,EAAQgI,SACRhI,EAAQD,QACKrZ,SAASuhB,YAAY,SAE9BrmB,QAAQmT,KAAK,yNAO7BmK,EAAiB/hB,UAAU0iB,qBAAuB,SAAUqI,EAAaC,GACrE,IAAIC,EAAa1hB,SAASC,cAAc,YACxCyhB,EAAWC,MAAMC,MAAQ,MACzBF,EAAWC,MAAME,OAAS,MAC1BH,EAAWC,MAAMG,IAAM,MACvBJ,EAAWC,MAAMI,KAAO,MACxBL,EAAWC,MAAMK,SAAW,WAC5BN,EAAWC,MAAMM,QAAU,MAC3B,IAAIC,EAAU7rB,KAAKqiB,SAASyJ,aAC5BD,EAAQ7hB,YAAYqhB,GACpB,IACIF,EAAYE,GAEhB,MAAOU,GACHlnB,QAAQmT,KAAK,2FAGboT,EACAljB,OAAOC,YAAW,WACdijB,EAAcC,GACdQ,EAAQG,YAAYX,KACrB,KAGHQ,EAAQG,YAAYX,IAO5BlJ,EAAiB/hB,UAAUgjB,YAAc,SAAU6I,GAmB/C,IAlBA,IAaIC,EAbAC,EAAYnsB,KAAKqJ,mBAAmBugB,0BAEpCwC,EAAa,IAAIC,OAErB,MAAQF,EAAR,gDAIcA,EAAY,aAAe,MAGrCG,EAAU,CAAC,IAIXC,GAAa,EAGVL,EAAaE,EAAWI,KAAKP,IAAU,CAE1C,IAAIQ,EAAsBP,EAAW,IAEhCK,GAAcE,IAAyBP,EAAWvG,OAASuG,EAAW,GAAG1oB,OAAO,KAAO2oB,IACxFG,EAAQ,GAAGla,KAAK,IAMhBqa,EAAoBltB,QAAUktB,IAAwBN,GAGtDG,EAAQla,KAAK,IAEjB,IAAIsa,OAAkB,EAOlBA,EAHAR,EAAW,GAGOA,EAAW,GAAG5oB,QAAQ,IAAI+oB,OAAO,KAAM,KAAM,KAI7CH,EAAW,GAIjC,IAAIS,EAAW,IAAElM,KAAK6L,GAClBK,GACAA,EAASva,KAAKsa,GAElBH,GAAa,EAGjB,OAAOD,GAEXnK,EAAiB/hB,UAAUilB,UAAY,WACnC,IACIuH,EACAC,EAFAC,EAAS9sB,KAAK6jB,gBAAgBqF,gBAWlC,OARI4D,EAAOvtB,OAAS,GAChBqtB,EAAkB,EAClBC,EAAgB,IAGhBD,EAAkB5sB,KAAK6jB,gBAAgByF,iBAAiBwD,EAAO,IAAI9H,SACnE6H,EAAgB7sB,KAAK6jB,gBAAgB2F,eAAesD,EAAO,IAAI9H,UAE5D4H,EAAkBC,EAAgB,GAE7C9tB,EAAW,CACP,oBAAU,eACXojB,EAAiB/hB,UAAW,kBAAc,GAC7CrB,EAAW,CACP,oBAAU,kBACXojB,EAAiB/hB,UAAW,qBAAiB,GAChDrB,EAAW,CACP,oBAAU,wBACXojB,EAAiB/hB,UAAW,2BAAuB,GACtDrB,EAAW,CACP,mBAAS,oBACVojB,EAAiB/hB,UAAW,uBAAmB,GAClDrB,EAAW,CACP,oBAAU,aACXojB,EAAiB/hB,UAAW,gBAAY,GAC3CrB,EAAW,CACP,oBAAU,iBACXojB,EAAiB/hB,UAAW,oBAAgB,GAC/CrB,EAAW,CACP,oBAAU,0BACXojB,EAAiB/hB,UAAW,6BAAyB,GACxDrB,EAAW,CACP,oBAAU,gBACXojB,EAAiB/hB,UAAW,mBAAe,GAC9CrB,EAAW,CACP,oBAAU,qBACXojB,EAAiB/hB,UAAW,wBAAoB,GACnDrB,EAAW,CACP,oBAAU,iBACXojB,EAAiB/hB,UAAW,oBAAgB,GAC/CrB,EAAW,CACP,oBAAU,0BACXojB,EAAiB/hB,UAAW,6BAAyB,GACxDrB,EAAW,CACP,oBAAU,uBACXojB,EAAiB/hB,UAAW,0BAAsB,GACrDrB,EAAW,CACP,oBAAU,cACXojB,EAAiB/hB,UAAW,iBAAa,GAC5CrB,EAAW,CACP,oBAAU,YACXojB,EAAiB/hB,UAAW,eAAW,GAC1CrB,EAAW,CACP,oBAAU,sBACXojB,EAAiB/hB,UAAW,yBAAqB,GACpDrB,EAAW,CACP,oBAAU,qBACXojB,EAAiB/hB,UAAW,wBAAoB,GACnDrB,EAAW,CACP,iBACDojB,EAAiB/hB,UAAW,OAAQ,MACvC+hB,EAAmBpjB,EAAW,CAC1B,eAAK,qBACNojB,GAnmB8B,GCJ1B4K,EAAkB,CACzBrkB,WAAY,cAAYqkB,gBACxBpkB,MAAO,CAAC,GACRuZ,iBAAkB,CACd,MCPR","file":"static/js/defaultVendors~main~98dcf295.89f106bf.chunk.js","sourcesContent":["var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { _, Autowired, Bean, PreConstruct } from '@ag-grid-community/core';\nvar LicenseManager = /** @class */ (function () {\n function LicenseManager() {\n this.watermarkMessage = undefined;\n }\n LicenseManager_1 = LicenseManager;\n LicenseManager.prototype.validateLicense = function () {\n if (_.missingOrEmpty(LicenseManager_1.licenseKey)) {\n this.outputMissingLicenseKey();\n }\n else if (LicenseManager_1.licenseKey.length > 32) {\n var _a = LicenseManager_1.extractLicenseComponents(LicenseManager_1.licenseKey), md5 = _a.md5, license = _a.license, version = _a.version, isTrial = _a.isTrial;\n if (md5 === this.md5.md5(license)) {\n if (_.exists(version) && version) {\n this.validateLicenseKeyForVersion(version, !!isTrial, license);\n }\n else {\n this.validateLegacyKey(license);\n }\n }\n else {\n this.outputInvalidLicenseKey();\n }\n }\n else {\n this.outputInvalidLicenseKey();\n }\n };\n LicenseManager.extractExpiry = function (license) {\n var restrictionHashed = license.substring(license.lastIndexOf('_') + 1, license.length);\n return new Date(parseInt(LicenseManager_1.decode(restrictionHashed), 10));\n };\n LicenseManager.extractLicenseComponents = function (licenseKey) {\n var hashStart = licenseKey.length - 32;\n var md5 = licenseKey.substring(hashStart);\n var license = licenseKey.substring(0, hashStart);\n var _a = LicenseManager_1.extractBracketedInformation(licenseKey), version = _a[0], isTrial = _a[1];\n return { md5: md5, license: license, version: version, isTrial: isTrial };\n };\n LicenseManager.prototype.getLicenseDetails = function (licenseKey) {\n var _a = LicenseManager_1.extractLicenseComponents(licenseKey), md5 = _a.md5, license = _a.license, version = _a.version, isTrial = _a.isTrial;\n var valid = (md5 === this.md5.md5(license));\n var expiry = null;\n if (valid) {\n expiry = LicenseManager_1.extractExpiry(license);\n valid = !isNaN(expiry.getTime());\n }\n return {\n licenseKey: licenseKey,\n valid: valid,\n expiry: valid ? LicenseManager_1.formatDate(expiry) : null,\n version: version ? version : 'legacy',\n isTrial: isTrial\n };\n };\n LicenseManager.prototype.isDisplayWatermark = function () {\n return !_.missingOrEmpty(this.watermarkMessage);\n };\n LicenseManager.prototype.getWatermarkMessage = function () {\n return this.watermarkMessage;\n };\n LicenseManager.formatDate = function (date) {\n var monthNames = [\n 'January', 'February', 'March',\n 'April', 'May', 'June', 'July',\n 'August', 'September', 'October',\n 'November', 'December'\n ];\n var day = date.getDate();\n var monthIndex = date.getMonth();\n var year = date.getFullYear();\n return day + ' ' + monthNames[monthIndex] + ' ' + year;\n };\n LicenseManager.getGridReleaseDate = function () {\n return new Date(parseInt(LicenseManager_1.decode(LicenseManager_1.RELEASE_INFORMATION), 10));\n };\n LicenseManager.decode = function (input) {\n var keystr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var t = '';\n var n, r, i;\n var s, o, u, a;\n var f = 0;\n var e = input.replace(/[^A-Za-z0-9+/=]/g, '');\n while (f < e.length) {\n s = keystr.indexOf(e.charAt(f++));\n o = keystr.indexOf(e.charAt(f++));\n u = keystr.indexOf(e.charAt(f++));\n a = keystr.indexOf(e.charAt(f++));\n n = s << 2 | o >> 4;\n r = (o & 15) << 4 | u >> 2;\n i = (u & 3) << 6 | a;\n t = t + String.fromCharCode(n);\n if (u != 64) {\n t = t + String.fromCharCode(r);\n }\n if (a != 64) {\n t = t + String.fromCharCode(i);\n }\n }\n t = LicenseManager_1.utf8_decode(t);\n return t;\n };\n LicenseManager.utf8_decode = function (input) {\n input = input.replace(/rn/g, 'n');\n var t = '';\n for (var n = 0; n < input.length; n++) {\n var r = input.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n }\n else if (r > 127 && r < 2048) {\n t += String.fromCharCode(r >> 6 | 192);\n t += String.fromCharCode(r & 63 | 128);\n }\n else {\n t += String.fromCharCode(r >> 12 | 224);\n t += String.fromCharCode(r >> 6 & 63 | 128);\n t += String.fromCharCode(r & 63 | 128);\n }\n }\n return t;\n };\n LicenseManager.setLicenseKey = function (licenseKey) {\n LicenseManager_1.licenseKey = licenseKey;\n };\n LicenseManager.extractBracketedInformation = function (licenseKey) {\n var matches = licenseKey.split('[')\n .filter(function (v) {\n return v.indexOf(']') > -1;\n })\n .map(function (value) {\n return value.split(']')[0];\n });\n if (!matches || matches.length === 0) {\n return [null, null];\n }\n var isTrial = matches.filter(function (match) { return match === 'TRIAL'; }).length === 1;\n var version = matches.filter(function (match) { return match.indexOf(\"v\") === 0; }).map(function (match) { return match.replace(/^v/, \"\"); })[0];\n return [version, isTrial];\n };\n LicenseManager.prototype.validateLicenseKeyForVersion = function (version, isTrial, license) {\n switch (version) {\n case \"2\":\n if (isTrial) {\n this.validateForTrial(license);\n }\n else {\n this.validateLegacyKey(license);\n }\n break;\n }\n };\n LicenseManager.prototype.validateLegacyKey = function (license) {\n var gridReleaseDate = LicenseManager_1.getGridReleaseDate();\n var expiry = LicenseManager_1.extractExpiry(license);\n var valid = false;\n var current = false;\n if (!isNaN(expiry.getTime())) {\n valid = true;\n current = (gridReleaseDate < expiry);\n }\n if (!valid) {\n this.outputInvalidLicenseKey();\n }\n else if (!current) {\n var formattedExpiryDate = LicenseManager_1.formatDate(expiry);\n var formattedReleaseDate = LicenseManager_1.formatDate(gridReleaseDate);\n this.outputIncompatibleVersion(formattedExpiryDate, formattedReleaseDate);\n }\n };\n LicenseManager.prototype.validateForTrial = function (license) {\n var expiry = LicenseManager_1.extractExpiry(license);\n var now = new Date();\n var valid = false;\n var current = false;\n if (!isNaN(expiry.getTime())) {\n valid = true;\n current = (expiry > now);\n }\n if (!valid) {\n this.outputInvalidLicenseKey();\n }\n else if (!current) {\n var formattedExpiryDate = LicenseManager_1.formatDate(expiry);\n this.outputExpiredTrialKey(formattedExpiryDate);\n }\n };\n LicenseManager.prototype.outputInvalidLicenseKey = function () {\n console.error('*****************************************************************************************************************');\n console.error('***************************************** ag-Grid Enterprise License ********************************************');\n console.error('********************************************* Invalid License ***************************************************');\n console.error('* Your license for ag-Grid Enterprise is not valid - please contact info@ag-grid.com to obtain a valid license. *');\n console.error('*****************************************************************************************************************');\n console.error('*****************************************************************************************************************');\n this.watermarkMessage = \"Invalid License\";\n };\n LicenseManager.prototype.outputExpiredTrialKey = function (formattedExpiryDate) {\n console.error('****************************************************************************************************************');\n console.error('***************************************** ag-Grid Enterprise License *******************************************');\n console.error('***************************************** Trial Period Expired. *******************************************');\n console.error(\"* Your license for ag-Grid Enterprise expired on \" + formattedExpiryDate + \". *\");\n console.error('* Please email info@ag-grid.com to purchase a license. *');\n console.error('****************************************************************************************************************');\n console.error('****************************************************************************************************************');\n this.watermarkMessage = \"Trial Period Expired\";\n };\n LicenseManager.prototype.outputMissingLicenseKey = function () {\n console.error('****************************************************************************************************************');\n console.error('***************************************** ag-Grid Enterprise License *******************************************');\n console.error('****************************************** License Key Not Found ***********************************************');\n console.error('* All ag-Grid Enterprise features are unlocked. *');\n console.error('* This is an evaluation only version, it is not licensed for development projects intended for production. *');\n console.error('* If you want to hide the watermark, please email info@ag-grid.com for a trial license. *');\n console.error('****************************************************************************************************************');\n console.error('****************************************************************************************************************');\n this.watermarkMessage = \"For Trial Use Only\";\n };\n LicenseManager.prototype.outputIncompatibleVersion = function (formattedExpiryDate, formattedReleaseDate) {\n console.error('****************************************************************************************************************************');\n console.error('********************************************* ag-Grid Enterprise License ***************************************************');\n console.error('*************************** License not compatible with installed version of ag-Grid Enterprise. ***************************');\n console.error(\"* Your license for ag-Grid Enterprise expired on \" + formattedExpiryDate + \" but the version installed was released on \" + formattedReleaseDate + \". *\");\n console.error('* Please contact info@ag-grid.com to renew your subscription to new versions. *');\n console.error('****************************************************************************************************************************');\n console.error('****************************************************************************************************************************');\n this.watermarkMessage = \"Incompatible License Version\";\n };\n var LicenseManager_1;\n LicenseManager.RELEASE_INFORMATION = 'MTU3NjA1OTQ4NDg4MA==';\n __decorate([\n Autowired('md5')\n ], LicenseManager.prototype, \"md5\", void 0);\n __decorate([\n PreConstruct\n ], LicenseManager.prototype, \"validateLicense\", null);\n LicenseManager = LicenseManager_1 = __decorate([\n Bean('licenseManager')\n ], LicenseManager);\n return LicenseManager;\n}());\nexport { LicenseManager };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Bean, PostConstruct } from \"@ag-grid-community/core\";\nvar MD5 = /** @class */ (function () {\n function MD5() {\n this.ieCompatibility = false;\n }\n MD5.prototype.init = function () {\n this.ieCompatibility = (this.md5('hello') != '5d41402abc4b2a76b9719d911017c592');\n };\n MD5.prototype.md5cycle = function (x, k) {\n var a = x[0], b = x[1], c = x[2], d = x[3];\n a = this.ff(a, b, c, d, k[0], 7, -680876936);\n d = this.ff(d, a, b, c, k[1], 12, -389564586);\n c = this.ff(c, d, a, b, k[2], 17, 606105819);\n b = this.ff(b, c, d, a, k[3], 22, -1044525330);\n a = this.ff(a, b, c, d, k[4], 7, -176418897);\n d = this.ff(d, a, b, c, k[5], 12, 1200080426);\n c = this.ff(c, d, a, b, k[6], 17, -1473231341);\n b = this.ff(b, c, d, a, k[7], 22, -45705983);\n a = this.ff(a, b, c, d, k[8], 7, 1770035416);\n d = this.ff(d, a, b, c, k[9], 12, -1958414417);\n c = this.ff(c, d, a, b, k[10], 17, -42063);\n b = this.ff(b, c, d, a, k[11], 22, -1990404162);\n a = this.ff(a, b, c, d, k[12], 7, 1804603682);\n d = this.ff(d, a, b, c, k[13], 12, -40341101);\n c = this.ff(c, d, a, b, k[14], 17, -1502002290);\n b = this.ff(b, c, d, a, k[15], 22, 1236535329);\n a = this.gg(a, b, c, d, k[1], 5, -165796510);\n d = this.gg(d, a, b, c, k[6], 9, -1069501632);\n c = this.gg(c, d, a, b, k[11], 14, 643717713);\n b = this.gg(b, c, d, a, k[0], 20, -373897302);\n a = this.gg(a, b, c, d, k[5], 5, -701558691);\n d = this.gg(d, a, b, c, k[10], 9, 38016083);\n c = this.gg(c, d, a, b, k[15], 14, -660478335);\n b = this.gg(b, c, d, a, k[4], 20, -405537848);\n a = this.gg(a, b, c, d, k[9], 5, 568446438);\n d = this.gg(d, a, b, c, k[14], 9, -1019803690);\n c = this.gg(c, d, a, b, k[3], 14, -187363961);\n b = this.gg(b, c, d, a, k[8], 20, 1163531501);\n a = this.gg(a, b, c, d, k[13], 5, -1444681467);\n d = this.gg(d, a, b, c, k[2], 9, -51403784);\n c = this.gg(c, d, a, b, k[7], 14, 1735328473);\n b = this.gg(b, c, d, a, k[12], 20, -1926607734);\n a = this.hh(a, b, c, d, k[5], 4, -378558);\n d = this.hh(d, a, b, c, k[8], 11, -2022574463);\n c = this.hh(c, d, a, b, k[11], 16, 1839030562);\n b = this.hh(b, c, d, a, k[14], 23, -35309556);\n a = this.hh(a, b, c, d, k[1], 4, -1530992060);\n d = this.hh(d, a, b, c, k[4], 11, 1272893353);\n c = this.hh(c, d, a, b, k[7], 16, -155497632);\n b = this.hh(b, c, d, a, k[10], 23, -1094730640);\n a = this.hh(a, b, c, d, k[13], 4, 681279174);\n d = this.hh(d, a, b, c, k[0], 11, -358537222);\n c = this.hh(c, d, a, b, k[3], 16, -722521979);\n b = this.hh(b, c, d, a, k[6], 23, 76029189);\n a = this.hh(a, b, c, d, k[9], 4, -640364487);\n d = this.hh(d, a, b, c, k[12], 11, -421815835);\n c = this.hh(c, d, a, b, k[15], 16, 530742520);\n b = this.hh(b, c, d, a, k[2], 23, -995338651);\n a = this.ii(a, b, c, d, k[0], 6, -198630844);\n d = this.ii(d, a, b, c, k[7], 10, 1126891415);\n c = this.ii(c, d, a, b, k[14], 15, -1416354905);\n b = this.ii(b, c, d, a, k[5], 21, -57434055);\n a = this.ii(a, b, c, d, k[12], 6, 1700485571);\n d = this.ii(d, a, b, c, k[3], 10, -1894986606);\n c = this.ii(c, d, a, b, k[10], 15, -1051523);\n b = this.ii(b, c, d, a, k[1], 21, -2054922799);\n a = this.ii(a, b, c, d, k[8], 6, 1873313359);\n d = this.ii(d, a, b, c, k[15], 10, -30611744);\n c = this.ii(c, d, a, b, k[6], 15, -1560198380);\n b = this.ii(b, c, d, a, k[13], 21, 1309151649);\n a = this.ii(a, b, c, d, k[4], 6, -145523070);\n d = this.ii(d, a, b, c, k[11], 10, -1120210379);\n c = this.ii(c, d, a, b, k[2], 15, 718787259);\n b = this.ii(b, c, d, a, k[9], 21, -343485551);\n x[0] = this.add32(a, x[0]);\n x[1] = this.add32(b, x[1]);\n x[2] = this.add32(c, x[2]);\n x[3] = this.add32(d, x[3]);\n };\n MD5.prototype.cmn = function (q, a, b, x, s, t) {\n a = this.add32(this.add32(a, q), this.add32(x, t));\n return this.add32((a << s) | (a >>> (32 - s)), b);\n };\n MD5.prototype.ff = function (a, b, c, d, x, s, t) {\n return this.cmn((b & c) | ((~b) & d), a, b, x, s, t);\n };\n MD5.prototype.gg = function (a, b, c, d, x, s, t) {\n return this.cmn((b & d) | (c & (~d)), a, b, x, s, t);\n };\n MD5.prototype.hh = function (a, b, c, d, x, s, t) {\n return this.cmn(b ^ c ^ d, a, b, x, s, t);\n };\n MD5.prototype.ii = function (a, b, c, d, x, s, t) {\n return this.cmn(c ^ (b | (~d)), a, b, x, s, t);\n };\n MD5.prototype.md51 = function (s) {\n var n = s.length;\n var state = [1732584193, -271733879, -1732584194, 271733878];\n var i;\n for (i = 64; i <= s.length; i += 64) {\n this.md5cycle(state, this.md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < s.length; i++) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n this.md5cycle(state, tail);\n for (i = 0; i < 16; i++) {\n tail[i] = 0;\n }\n }\n tail[14] = n * 8;\n this.md5cycle(state, tail);\n return state;\n };\n /* there needs to be support for Unicode here, * unless we pretend that we can redefine the MD-5\n * algorithm for multi-byte characters (perhaps by adding every four 16-bit characters and\n * shortening the sum to 32 bits). Otherwise I suthis.ggest performing MD-5 as if every character\n * was two bytes--e.g., 0040 0025 = @%--but then how will an ordinary MD-5 sum be matched?\n * There is no way to standardize text to something like UTF-8 before transformation; speed cost is\n * utterly prohibitive. The JavaScript standard itself needs to look at this: it should start\n * providing access to strings as preformed UTF-8 8-bit unsigned value arrays.\n */\n MD5.prototype.md5blk = function (s) {\n var md5blks = [];\n /* Andy King said do it this way. */\n for (var i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i)\n + (s.charCodeAt(i + 1) << 8)\n + (s.charCodeAt(i + 2) << 16)\n + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n };\n MD5.prototype.rhex = function (n) {\n var hex_chr = '0123456789abcdef'.split('');\n var s = '', j = 0;\n for (; j < 4; j++) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F]\n + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n };\n MD5.prototype.hex = function (x) {\n for (var i = 0; i < x.length; i++) {\n x[i] = this.rhex(x[i]);\n }\n return x.join('');\n };\n MD5.prototype.md5 = function (s) {\n return this.hex(this.md51(s));\n };\n MD5.prototype.add32 = function (a, b) {\n return this.ieCompatibility ? this.add32Compat(a, b) : this.add32Std(a, b);\n };\n /* this function is much faster, so if possible we use it. Some IEs are the only ones I know of that\n need the idiotic second function, generated by an if clause. */\n MD5.prototype.add32Std = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n };\n MD5.prototype.add32Compat = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF), msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n __decorate([\n PostConstruct\n ], MD5.prototype, \"init\", null);\n MD5 = __decorate([\n Bean('md5')\n ], MD5);\n return MD5;\n}());\nexport { MD5 };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { _, Autowired, Component, PostConstruct, RefSelector } from '@ag-grid-community/core';\nvar WatermarkComp = /** @class */ (function (_super) {\n __extends(WatermarkComp, _super);\n function WatermarkComp() {\n return _super.call(this, \"<div class=\\\"ag-watermark\\\">\\n <div ref=\\\"eLicenseTextRef\\\" class=\\\"ag-watermark-text\\\"></div>\\n </div>\") || this;\n }\n WatermarkComp.prototype.postConstruct = function () {\n var _this = this;\n var show = this.shouldDisplayWatermark();\n _.addOrRemoveCssClass(this.getGui(), 'ag-hidden', !show);\n if (show) {\n this.eLicenseTextRef.innerText = this.licenseManager.getWatermarkMessage();\n window.setTimeout(function () { return _this.addCssClass('ag-opacity-zero'); }, 0);\n window.setTimeout(function () { return _this.addCssClass('ag-hidden'); }, 5000);\n }\n };\n WatermarkComp.prototype.shouldDisplayWatermark = function () {\n var isDisplayWatermark = this.licenseManager.isDisplayWatermark();\n var isWhiteListURL = location.hostname.match('^127\\.0\\.0\\.1|localhost|www\\.ag-grid\\.com$') != null;\n var isForceWatermark = location.search.indexOf('forceWatermark') !== -1;\n return isForceWatermark || (isDisplayWatermark && !isWhiteListURL);\n };\n __decorate([\n Autowired('licenseManager')\n ], WatermarkComp.prototype, \"licenseManager\", void 0);\n __decorate([\n RefSelector('eLicenseTextRef')\n ], WatermarkComp.prototype, \"eLicenseTextRef\", void 0);\n __decorate([\n PostConstruct\n ], WatermarkComp.prototype, \"postConstruct\", null);\n return WatermarkComp;\n}(Component));\nexport { WatermarkComp };\n","import { ModuleNames } from \"@ag-grid-community/core\";\nimport { LicenseManager } from \"./licenseManager\";\nimport { MD5 } from \"./license/md5\";\nimport { WatermarkComp } from \"./license/watermark\";\nexport { LicenseManager } from \"./licenseManager\";\nexport { MD5 } from \"./license/md5\";\nexport { WatermarkComp } from \"./license/watermark\";\nexport var EnterpriseCoreModule = {\n moduleName: ModuleNames.EnterpriseCoreModule,\n beans: [LicenseManager, MD5],\n agStackComponents: [\n { componentName: 'AgWatermark', componentClass: WatermarkComp }\n ]\n};\n","export { EnterpriseCoreModule } from \"./agGridEnterpriseModule\";\nexport { LicenseManager } from \"./licenseManager\";\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { _, Autowired, Component, Events, PostConstruct, PreConstruct, RefSelector, Constants } from \"@ag-grid-community/core\";\nexport var EXPAND_STATE;\n(function (EXPAND_STATE) {\n EXPAND_STATE[EXPAND_STATE[\"EXPANDED\"] = 0] = \"EXPANDED\";\n EXPAND_STATE[EXPAND_STATE[\"COLLAPSED\"] = 1] = \"COLLAPSED\";\n EXPAND_STATE[EXPAND_STATE[\"INDETERMINATE\"] = 2] = \"INDETERMINATE\";\n})(EXPAND_STATE || (EXPAND_STATE = {}));\nexport var SELECTED_STATE;\n(function (SELECTED_STATE) {\n SELECTED_STATE[SELECTED_STATE[\"CHECKED\"] = 0] = \"CHECKED\";\n SELECTED_STATE[SELECTED_STATE[\"UNCHECKED\"] = 1] = \"UNCHECKED\";\n SELECTED_STATE[SELECTED_STATE[\"INDETERMINATE\"] = 2] = \"INDETERMINATE\";\n})(SELECTED_STATE || (SELECTED_STATE = {}));\nvar PrimaryColsHeaderPanel = /** @class */ (function (_super) {\n __extends(PrimaryColsHeaderPanel, _super);\n function PrimaryColsHeaderPanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PrimaryColsHeaderPanel.prototype.preConstruct = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.setTemplate(\"<div class=\\\"ag-primary-cols-header-panel\\\" role=\\\"presentation\\\">\\n <div ref=\\\"eExpand\\\"></div>\\n <div ref=\\\"eSelect\\\"></div>\\n <div class=\\\"ag-input-wrapper ag-primary-cols-filter-wrapper\\\" ref=\\\"eFilterWrapper\\\" role=\\\"presentation\\\">\\n <input class=\\\"ag-primary-cols-filter\\\" ref=\\\"eFilterTextField\\\" type=\\\"text\\\" placeholder=\\\"\" + translate(\"SearchOoo\", \"Search...\") + \"\\\">\\n </div>\\n </div>\");\n };\n PrimaryColsHeaderPanel.prototype.postConstruct = function () {\n this.createExpandIcons();\n if (this.gridOptionsWrapper.useNativeCheckboxes()) {\n this.eSelectCheckbox = document.createElement(\"input\");\n this.eSelectCheckbox.type = \"checkbox\";\n this.eSelectCheckbox.className = \"ag-checkbox\";\n this.eSelect.appendChild(this.eSelectCheckbox);\n }\n else {\n this.createCheckIcons();\n }\n this.addDestroyableEventListener(this.eExpand, \"click\", this.onExpandClicked.bind(this));\n this.addDestroyableEventListener(this.eSelect, \"click\", this.onSelectClicked.bind(this));\n this.addDestroyableEventListener(this.eFilterTextField, \"input\", this.onFilterTextChanged.bind(this));\n this.addDestroyableEventListener(this.eFilterTextField, \"keypress\", this.onMiniFilterKeyPress.bind(this));\n this.addDestroyableEventListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.showOrHideOptions.bind(this));\n };\n PrimaryColsHeaderPanel.prototype.init = function (params) {\n this.params = params;\n if (this.columnController.isReady()) {\n this.showOrHideOptions();\n }\n };\n PrimaryColsHeaderPanel.prototype.createExpandIcons = function () {\n this.eExpand.appendChild((this.eExpandChecked = _.createIconNoSpan(\"columnSelectOpen\", this.gridOptionsWrapper)));\n this.eExpand.appendChild((this.eExpandUnchecked = _.createIconNoSpan(\"columnSelectClosed\", this.gridOptionsWrapper)));\n this.eExpand.appendChild((this.eExpandIndeterminate = _.createIconNoSpan(\"columnSelectIndeterminate\", this.gridOptionsWrapper)));\n };\n PrimaryColsHeaderPanel.prototype.createCheckIcons = function () {\n this.eSelect.appendChild((this.eSelectChecked = _.createIconNoSpan(\"checkboxChecked\", this.gridOptionsWrapper)));\n this.eSelect.appendChild((this.eSelectUnchecked = _.createIconNoSpan(\"checkboxUnchecked\", this.gridOptionsWrapper)));\n this.eSelect.appendChild((this.eSelectIndeterminate = _.createIconNoSpan(\"checkboxIndeterminate\", this.gridOptionsWrapper)));\n };\n // we only show expand / collapse if we are showing columns\n PrimaryColsHeaderPanel.prototype.showOrHideOptions = function () {\n var showFilter = !this.params.suppressColumnFilter;\n var showSelect = !this.params.suppressColumnSelectAll;\n var showExpand = !this.params.suppressColumnExpandAll;\n var groupsPresent = this.columnController.isPrimaryColumnGroupsPresent();\n _.setDisplayed(this.eFilterWrapper, showFilter);\n _.setDisplayed(this.eSelect, showSelect);\n _.setDisplayed(this.eExpand, showExpand && groupsPresent);\n };\n PrimaryColsHeaderPanel.prototype.onFilterTextChanged = function () {\n var _this = this;\n if (!this.onFilterTextChangedDebounced) {\n this.onFilterTextChangedDebounced = _.debounce(function () {\n var filterText = _this.eFilterTextField.value;\n _this.dispatchEvent({ type: \"filterChanged\", filterText: filterText });\n }, 300);\n }\n this.onFilterTextChangedDebounced();\n };\n PrimaryColsHeaderPanel.prototype.onMiniFilterKeyPress = function (e) {\n if (_.isKeyPressed(e, Constants.KEY_ENTER)) {\n this.dispatchEvent({ type: \"selectAll\" });\n }\n };\n PrimaryColsHeaderPanel.prototype.onSelectClicked = function () {\n var eventType = this.selectState === SELECTED_STATE.CHECKED ? \"unselectAll\" : \"selectAll\";\n this.dispatchEvent({ type: eventType });\n };\n PrimaryColsHeaderPanel.prototype.onExpandClicked = function () {\n var eventType = this.expandState === EXPAND_STATE.EXPANDED ? \"collapseAll\" : \"expandAll\";\n this.dispatchEvent({ type: eventType });\n };\n PrimaryColsHeaderPanel.prototype.setExpandState = function (state) {\n this.expandState = state;\n _.setDisplayed(this.eExpandChecked, this.expandState === EXPAND_STATE.EXPANDED);\n _.setDisplayed(this.eExpandUnchecked, this.expandState === EXPAND_STATE.COLLAPSED);\n _.setDisplayed(this.eExpandIndeterminate, this.expandState === EXPAND_STATE.INDETERMINATE);\n };\n PrimaryColsHeaderPanel.prototype.setSelectionState = function (state) {\n this.selectState = state;\n if (this.gridOptionsWrapper.useNativeCheckboxes()) {\n this.eSelectCheckbox.checked = this.selectState === SELECTED_STATE.CHECKED;\n this.eSelectCheckbox.indeterminate = this.selectState === SELECTED_STATE.INDETERMINATE;\n }\n else {\n _.setDisplayed(this.eSelectChecked, this.selectState === SELECTED_STATE.CHECKED);\n _.setDisplayed(this.eSelectUnchecked, this.selectState === SELECTED_STATE.UNCHECKED);\n _.setDisplayed(this.eSelectIndeterminate, this.selectState === SELECTED_STATE.INDETERMINATE);\n }\n };\n __decorate([\n Autowired('gridOptionsWrapper')\n ], PrimaryColsHeaderPanel.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n Autowired('columnController')\n ], PrimaryColsHeaderPanel.prototype, \"columnController\", void 0);\n __decorate([\n Autowired('eventService')\n ], PrimaryColsHeaderPanel.prototype, \"eventService\", void 0);\n __decorate([\n RefSelector('eExpand')\n ], PrimaryColsHeaderPanel.prototype, \"eExpand\", void 0);\n __decorate([\n RefSelector('eSelect')\n ], PrimaryColsHeaderPanel.prototype, \"eSelect\", void 0);\n __decorate([\n RefSelector('eFilterWrapper')\n ], PrimaryColsHeaderPanel.prototype, \"eFilterWrapper\", void 0);\n __decorate([\n RefSelector('eFilterTextField')\n ], PrimaryColsHeaderPanel.prototype, \"eFilterTextField\", void 0);\n __decorate([\n PreConstruct\n ], PrimaryColsHeaderPanel.prototype, \"preConstruct\", null);\n __decorate([\n PostConstruct\n ], PrimaryColsHeaderPanel.prototype, \"postConstruct\", null);\n return PrimaryColsHeaderPanel;\n}(Component));\nexport { PrimaryColsHeaderPanel };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { _, AgCheckbox, Autowired, Column, Component, CssClassApplier, DragSourceType, Events, PostConstruct, RefSelector, TouchListener } from \"@ag-grid-community/core\";\nvar ToolPanelColumnGroupComp = /** @class */ (function (_super) {\n __extends(ToolPanelColumnGroupComp, _super);\n function ToolPanelColumnGroupComp(columnGroup, columnDept, allowDragging, expandByDefault, expandedCallback, getFilterResults) {\n var _this = _super.call(this) || this;\n _this.processingColumnStateChange = false;\n _this.columnGroup = columnGroup;\n _this.columnDept = columnDept;\n _this.allowDragging = allowDragging;\n _this.expanded = expandByDefault;\n _this.expandedCallback = expandedCallback;\n _this.getFilterResultsCallback = getFilterResults;\n return _this;\n }\n ToolPanelColumnGroupComp.prototype.init = function () {\n this.setTemplate(ToolPanelColumnGroupComp.TEMPLATE);\n this.eDragHandle = _.createIconNoSpan('columnDrag', this.gridOptionsWrapper);\n _.addCssClass(this.eDragHandle, 'ag-column-drag');\n this.cbSelect.getGui().insertAdjacentElement('afterend', this.eDragHandle);\n this.displayName = this.columnController.getDisplayNameForOriginalColumnGroup(null, this.columnGroup, 'toolPanel');\n if (_.missing(this.displayName)) {\n this.displayName = '>>';\n }\n this.eLabel.innerHTML = this.displayName ? this.displayName : '';\n this.setupExpandContract();\n this.addCssClass('ag-toolpanel-indent-' + this.columnDept);\n this.addDestroyableEventListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addDestroyableEventListener(this.eLabel, 'click', this.onLabelClicked.bind(this));\n this.addDestroyableEventListener(this.cbSelect, AgCheckbox.EVENT_CHANGED, this.onCheckboxChanged.bind(this));\n this.setOpenClosedIcons();\n this.setupDragging();\n this.onColumnStateChanged();\n this.addVisibilityListenersToAllChildren();\n CssClassApplier.addToolPanelClassesFromColDef(this.columnGroup.getColGroupDef(), this.getGui(), this.gridOptionsWrapper, null, this.columnGroup);\n };\n ToolPanelColumnGroupComp.prototype.addVisibilityListenersToAllChildren = function () {\n var _this = this;\n this.columnGroup.getLeafColumns().forEach(function (column) {\n _this.addDestroyableEventListener(column, Column.EVENT_VISIBLE_CHANGED, _this.onColumnStateChanged.bind(_this));\n _this.addDestroyableEventListener(column, Column.EVENT_VALUE_CHANGED, _this.onColumnStateChanged.bind(_this));\n _this.addDestroyableEventListener(column, Column.EVENT_PIVOT_CHANGED, _this.onColumnStateChanged.bind(_this));\n _this.addDestroyableEventListener(column, Column.EVENT_ROW_GROUP_CHANGED, _this.onColumnStateChanged.bind(_this));\n });\n };\n ToolPanelColumnGroupComp.prototype.setupDragging = function () {\n var _this = this;\n if (!this.allowDragging) {\n _.setDisplayed(this.eDragHandle, false);\n return;\n }\n var dragSource = {\n type: DragSourceType.ToolPanel,\n eElement: this.eDragHandle,\n dragItemName: this.displayName,\n getDragItem: function () { return _this.createDragItem(); }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n ToolPanelColumnGroupComp.prototype.createDragItem = function () {\n var visibleState = {};\n this.columnGroup.getLeafColumns().forEach(function (col) {\n visibleState[col.getId()] = col.isVisible();\n });\n return {\n columns: this.columnGroup.getLeafColumns(),\n visibleState: visibleState\n };\n };\n ToolPanelColumnGroupComp.prototype.setupExpandContract = function () {\n this.eGroupClosedIcon.appendChild(_.createIcon('columnSelectClosed', this.gridOptionsWrapper, null));\n this.eGroupOpenedIcon.appendChild(_.createIcon('columnSelectOpen', this.gridOptionsWrapper, null));\n this.addDestroyableEventListener(this.eGroupClosedIcon, 'click', this.onExpandOrContractClicked.bind(this));\n this.addDestroyableEventListener(this.eGroupOpenedIcon, 'click', this.onExpandOrContractClicked.bind(this));\n var touchListener = new TouchListener(this.eColumnGroupIcons, true);\n this.addDestroyableEventListener(touchListener, TouchListener.EVENT_TAP, this.onExpandOrContractClicked.bind(this));\n this.addDestroyFunc(touchListener.destroy.bind(touchListener));\n };\n ToolPanelColumnGroupComp.prototype.onLabelClicked = function () {\n var nextState = !this.cbSelect.getValue();\n this.onChangeCommon(nextState);\n };\n ToolPanelColumnGroupComp.prototype.onCheckboxChanged = function (event) {\n this.onChangeCommon(event.selected);\n };\n ToolPanelColumnGroupComp.prototype.onChangeCommon = function (nextState) {\n if (this.processingColumnStateChange) {\n return;\n }\n var childColumns = this.columnGroup.getLeafColumns();\n if (this.columnController.isPivotMode()) {\n if (nextState) {\n this.actionCheckedReduce(childColumns);\n }\n else {\n this.actionUnCheckedReduce(childColumns);\n }\n }\n else {\n var isAllowedColumn = function (c) { return !c.getColDef().lockVisible && !c.getColDef().suppressColumnsToolPanel; };\n var allowedColumns = childColumns.filter(isAllowedColumn);\n var filterResults_1 = this.getFilterResultsCallback();\n var passesFilter = function (c) { return !filterResults_1 || filterResults_1[c.getColId()]; };\n var visibleColumns = allowedColumns.filter(passesFilter);\n // only columns that are 'allowed' and pass filter should be visible\n this.columnController.setColumnsVisible(visibleColumns, nextState, \"toolPanelUi\");\n }\n };\n ToolPanelColumnGroupComp.prototype.actionUnCheckedReduce = function (columns) {\n var columnsToUnPivot = [];\n var columnsToUnValue = [];\n var columnsToUnGroup = [];\n columns.forEach(function (column) {\n if (column.isPivotActive()) {\n columnsToUnPivot.push(column);\n }\n if (column.isRowGroupActive()) {\n columnsToUnGroup.push(column);\n }\n if (column.isValueActive()) {\n columnsToUnValue.push(column);\n }\n });\n if (columnsToUnPivot.length > 0) {\n this.columnController.removePivotColumns(columnsToUnPivot, \"toolPanelUi\");\n }\n if (columnsToUnGroup.length > 0) {\n this.columnController.removeRowGroupColumns(columnsToUnGroup, \"toolPanelUi\");\n }\n if (columnsToUnValue.length > 0) {\n this.columnController.removeValueColumns(columnsToUnValue, \"toolPanelUi\");\n }\n };\n ToolPanelColumnGroupComp.prototype.actionCheckedReduce = function (columns) {\n var columnsToAggregate = [];\n var columnsToGroup = [];\n var columnsToPivot = [];\n columns.forEach(function (column) {\n // don't change any column that's already got a function active\n if (column.isAnyFunctionActive()) {\n return;\n }\n if (column.isAllowValue()) {\n columnsToAggregate.push(column);\n }\n else if (column.isAllowRowGroup()) {\n columnsToGroup.push(column);\n }\n else if (column.isAllowRowGroup()) {\n columnsToPivot.push(column);\n }\n });\n if (columnsToAggregate.length > 0) {\n this.columnController.addValueColumns(columnsToAggregate, \"toolPanelUi\");\n }\n if (columnsToGroup.length > 0) {\n this.columnController.addRowGroupColumns(columnsToGroup, \"toolPanelUi\");\n }\n if (columnsToPivot.length > 0) {\n this.columnController.addPivotColumns(columnsToPivot, \"toolPanelUi\");\n }\n };\n ToolPanelColumnGroupComp.prototype.onColumnStateChanged = function () {\n var selectedValue = this.workOutSelectedValue();\n var readOnlyValue = this.workOutReadOnlyValue();\n this.processingColumnStateChange = true;\n this.cbSelect.setValue(selectedValue);\n this.cbSelect.setReadOnly(readOnlyValue);\n this.processingColumnStateChange = false;\n };\n ToolPanelColumnGroupComp.prototype.workOutSelectedValue = function () {\n var pivotMode = this.columnController.isPivotMode();\n var leafColumns = this.columnGroup.getLeafColumns();\n var filterResults = this.getFilterResultsCallback();\n var len = leafColumns.length;\n var count = { visible: 0, hidden: 0 };\n var ignoredChildCount = { visible: 0, hidden: 0 };\n for (var i = 0; i < len; i++) {\n var column = leafColumns[i];\n // ignore lock visible columns and columns set to 'suppressColumnsToolPanel'\n var ignore = column.getColDef().lockVisible || column.getColDef().suppressColumnsToolPanel;\n var type = this.isColumnVisible(column, pivotMode) ? 'visible' : 'hidden';\n count[type]++;\n // also ignore columns that have been removed by the filter\n if (filterResults) {\n var columnPassesFilter = filterResults[column.getColId()];\n if (!columnPassesFilter) {\n ignore = true;\n }\n }\n if (!ignore) {\n continue;\n }\n ignoredChildCount[type]++;\n }\n // if all columns are ignored we use the regular count, if not\n // we only consider the columns that were not ignored\n if (ignoredChildCount.visible + ignoredChildCount.hidden !== len) {\n count.visible -= ignoredChildCount.visible;\n count.hidden -= ignoredChildCount.hidden;\n }\n var selectedValue;\n if (count.visible > 0 && count.hidden > 0) {\n selectedValue = null;\n }\n else {\n selectedValue = count.visible > 0;\n }\n return selectedValue == null ? undefined : selectedValue;\n };\n ToolPanelColumnGroupComp.prototype.workOutReadOnlyValue = function () {\n var pivotMode = this.columnController.isPivotMode();\n var colsThatCanAction = 0;\n this.columnGroup.getLeafColumns().forEach(function (col) {\n if (pivotMode) {\n if (col.isAnyFunctionAllowed()) {\n colsThatCanAction++;\n }\n }\n else {\n if (!col.getColDef().lockVisible) {\n colsThatCanAction++;\n }\n }\n });\n return colsThatCanAction === 0;\n };\n ToolPanelColumnGroupComp.prototype.isColumnVisible = function (column, pivotMode) {\n if (pivotMode) {\n var pivoted = column.isPivotActive();\n var grouped = column.isRowGroupActive();\n var aggregated = column.isValueActive();\n return pivoted || grouped || aggregated;\n }\n else {\n return column.isVisible();\n }\n };\n ToolPanelColumnGroupComp.prototype.onExpandOrContractClicked = function () {\n this.expanded = !this.expanded;\n this.setOpenClosedIcons();\n this.expandedCallback();\n };\n ToolPanelColumnGroupComp.prototype.setOpenClosedIcons = function () {\n var folderOpen = this.expanded;\n _.setDisplayed(this.eGroupClosedIcon, !folderOpen);\n _.setDisplayed(this.eGroupOpenedIcon, folderOpen);\n };\n ToolPanelColumnGroupComp.prototype.isExpanded = function () {\n return this.expanded;\n };\n ToolPanelColumnGroupComp.prototype.getDisplayName = function () {\n return this.displayName;\n };\n ToolPanelColumnGroupComp.prototype.onSelectAllChanged = function (value) {\n if ((value && !this.cbSelect.getValue()) ||\n (!value && this.cbSelect.getValue())) {\n if (!this.cbSelect.isReadOnly()) {\n this.cbSelect.toggle();\n }\n }\n };\n ToolPanelColumnGroupComp.prototype.isSelected = function () {\n return this.cbSelect.getValue();\n };\n ToolPanelColumnGroupComp.prototype.isSelectable = function () {\n return !this.cbSelect.isReadOnly();\n };\n ToolPanelColumnGroupComp.prototype.isExpandable = function () {\n return true;\n };\n ToolPanelColumnGroupComp.prototype.setExpanded = function (value) {\n if (this.expanded !== value) {\n this.onExpandOrContractClicked();\n }\n };\n ToolPanelColumnGroupComp.prototype.setSelected = function (selected) {\n this.cbSelect.setValue(selected, true);\n };\n ToolPanelColumnGroupComp.TEMPLATE = \"<div class=\\\"ag-column-tool-panel-column-group\\\">\\n <span class=\\\"ag-column-group-icons\\\" ref=\\\"eColumnGroupIcons\\\" >\\n <span class=\\\"ag-column-group-closed-icon\\\" ref=\\\"eGroupClosedIcon\\\"></span>\\n <span class=\\\"ag-column-group-opened-icon\\\" ref=\\\"eGroupOpenedIcon\\\"></span>\\n </span>\\n <ag-checkbox ref=\\\"cbSelect\\\" class=\\\"ag-column-select-checkbox\\\"></ag-checkbox>\\n <span class=\\\"ag-column-tool-panel-column-label\\\" ref=\\\"eLabel\\\"></span>\\n </div>\";\n __decorate([\n Autowired('eventService')\n ], ToolPanelColumnGroupComp.prototype, \"eventService\", void 0);\n __decorate([\n Autowired('columnController')\n ], ToolPanelColumnGroupComp.prototype, \"columnController\", void 0);\n __decorate([\n Autowired('dragAndDropService')\n ], ToolPanelColumnGroupComp.prototype, \"dragAndDropService\", void 0);\n __decorate([\n Autowired('gridOptionsWrapper')\n ], ToolPanelColumnGroupComp.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n RefSelector('cbSelect')\n ], ToolPanelColumnGroupComp.prototype, \"cbSelect\", void 0);\n __decorate([\n RefSelector('eLabel')\n ], ToolPanelColumnGroupComp.prototype, \"eLabel\", void 0);\n __decorate([\n RefSelector('eGroupOpenedIcon')\n ], ToolPanelColumnGroupComp.prototype, \"eGroupOpenedIcon\", void 0);\n __decorate([\n RefSelector('eGroupClosedIcon')\n ], ToolPanelColumnGroupComp.prototype, \"eGroupClosedIcon\", void 0);\n __decorate([\n RefSelector('eColumnGroupIcons')\n ], ToolPanelColumnGroupComp.prototype, \"eColumnGroupIcons\", void 0);\n __decorate([\n PostConstruct\n ], ToolPanelColumnGroupComp.prototype, \"init\", null);\n return ToolPanelColumnGroupComp;\n}(Component));\nexport { ToolPanelColumnGroupComp };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AgCheckbox, Autowired, Column, Component, CssClassApplier, DragSourceType, Events, PostConstruct, RefSelector, _ } from \"@ag-grid-community/core\";\nvar ToolPanelColumnComp = /** @class */ (function (_super) {\n __extends(ToolPanelColumnComp, _super);\n function ToolPanelColumnComp(column, columnDept, allowDragging, groupsExist) {\n var _this = _super.call(this) || this;\n _this.processingColumnStateChange = false;\n _this.column = column;\n _this.columnDept = columnDept;\n _this.allowDragging = allowDragging;\n _this.groupsExist = groupsExist;\n return _this;\n }\n ToolPanelColumnComp.prototype.init = function () {\n this.setTemplate(ToolPanelColumnComp.TEMPLATE);\n this.eDragHandle = _.createIconNoSpan('columnDrag', this.gridOptionsWrapper);\n _.addCssClass(this.eDragHandle, 'ag-column-drag');\n this.cbSelect.getGui().insertAdjacentElement('afterend', this.eDragHandle);\n this.displayName = this.columnController.getDisplayNameForColumn(this.column, 'toolPanel');\n var displayNameSanitised = _.escape(this.displayName);\n this.eLabel.innerHTML = displayNameSanitised;\n // if grouping, we add an extra level of indent, to cater for expand/contract icons we need to indent for\n var indent = this.columnDept;\n if (this.groupsExist) {\n this.addCssClass('ag-toolpanel-add-group-indent');\n }\n this.addCssClass(\"ag-toolpanel-indent-\" + indent);\n this.setupDragging();\n this.addDestroyableEventListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addDestroyableEventListener(this.column, Column.EVENT_VALUE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addDestroyableEventListener(this.column, Column.EVENT_PIVOT_CHANGED, this.onColumnStateChanged.bind(this));\n this.addDestroyableEventListener(this.column, Column.EVENT_ROW_GROUP_CHANGED, this.onColumnStateChanged.bind(this));\n this.addDestroyableEventListener(this.column, Column.EVENT_VISIBLE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addDestroyableEventListener(this.gridOptionsWrapper, 'functionsReadOnly', this.onColumnStateChanged.bind(this));\n this.addDestroyableEventListener(this.cbSelect, AgCheckbox.EVENT_CHANGED, this.onCheckboxChanged.bind(this));\n this.addDestroyableEventListener(this.eLabel, 'click', this.onLabelClicked.bind(this));\n this.onColumnStateChanged();\n CssClassApplier.addToolPanelClassesFromColDef(this.column.getColDef(), this.getGui(), this.gridOptionsWrapper, this.column, null);\n };\n ToolPanelColumnComp.prototype.onLabelClicked = function () {\n if (this.gridOptionsWrapper.isFunctionsReadOnly()) {\n return;\n }\n var nextState = !this.cbSelect.getValue();\n this.onChangeCommon(nextState);\n };\n ToolPanelColumnComp.prototype.onCheckboxChanged = function (event) {\n this.onChangeCommon(event.selected);\n };\n ToolPanelColumnComp.prototype.onChangeCommon = function (nextState) {\n // ignore lock visible columns\n if (this.column.getColDef().lockVisible) {\n return;\n }\n // only want to action if the user clicked the checkbox, not is we are setting the checkbox because\n // of a change in the model\n if (this.processingColumnStateChange) {\n return;\n }\n // action in a timeout, as the action takes some time, we want to update the icons first\n // so the user gets nice feedback when they click. otherwise there would be a lag and the\n // user would think the checkboxes were clunky\n if (this.columnController.isPivotMode()) {\n if (nextState) {\n this.actionCheckedPivotMode();\n }\n else {\n this.actionUnCheckedPivotMode();\n }\n }\n else {\n this.columnController.setColumnVisible(this.column, nextState, \"columnMenu\");\n }\n };\n ToolPanelColumnComp.prototype.actionUnCheckedPivotMode = function () {\n var functionPassive = this.gridOptionsWrapper.isFunctionsPassive();\n var column = this.column;\n var columnController = this.columnController;\n // remove pivot if column is pivoted\n if (column.isPivotActive()) {\n if (functionPassive) {\n var copyOfPivotColumns = this.columnController.getPivotColumns().slice();\n copyOfPivotColumns.push(column);\n var event_1 = {\n type: Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST,\n columns: copyOfPivotColumns,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n else {\n columnController.removePivotColumn(column, \"columnMenu\");\n }\n }\n // remove value if column is value\n if (column.isValueActive()) {\n if (functionPassive) {\n var copyOfValueColumns = this.columnController.getValueColumns().slice();\n copyOfValueColumns.push(column);\n var event_2 = {\n type: Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST,\n columns: copyOfValueColumns,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_2);\n }\n else {\n columnController.removeValueColumn(column, \"columnMenu\");\n }\n }\n // remove group if column is grouped\n if (column.isRowGroupActive()) {\n if (functionPassive) {\n var copyOfRowGroupColumns = this.columnController.getRowGroupColumns().slice();\n copyOfRowGroupColumns.push(column);\n var event_3 = {\n type: Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST,\n columns: copyOfRowGroupColumns,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_3);\n }\n else {\n columnController.removeRowGroupColumn(column, \"columnMenu\");\n }\n }\n };\n ToolPanelColumnComp.prototype.actionCheckedPivotMode = function () {\n var column = this.column;\n // function already active, so do nothing\n if (column.isValueActive() || column.isPivotActive() || column.isRowGroupActive()) {\n return;\n }\n var functionPassive = this.gridOptionsWrapper.isFunctionsPassive();\n if (column.isAllowValue()) {\n if (functionPassive) {\n var copyOfValueColumns = this.columnController.getValueColumns().slice();\n _.removeFromArray(copyOfValueColumns, column);\n var event_4 = {\n type: Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST,\n api: this.gridApi,\n columnApi: this.columnApi,\n columns: copyOfValueColumns\n };\n this.eventService.dispatchEvent(event_4);\n }\n else {\n this.columnController.addValueColumn(column, \"columnMenu\");\n }\n }\n else if (column.isAllowRowGroup()) {\n if (functionPassive) {\n var copyOfRowGroupColumns = this.columnController.getRowGroupColumns().slice();\n _.removeFromArray(copyOfRowGroupColumns, column);\n var event_5 = {\n type: Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST,\n api: this.gridApi,\n columnApi: this.columnApi,\n columns: copyOfRowGroupColumns\n };\n this.eventService.dispatchEvent(event_5);\n }\n else {\n this.columnController.addRowGroupColumn(column, \"columnMenu\");\n }\n }\n else if (column.isAllowPivot()) {\n if (functionPassive) {\n var copyOfPivotColumns = this.columnController.getPivotColumns().slice();\n _.removeFromArray(copyOfPivotColumns, column);\n var event_6 = {\n type: Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST,\n api: this.gridApi,\n columnApi: this.columnApi,\n columns: copyOfPivotColumns\n };\n this.eventService.dispatchEvent(event_6);\n }\n else {\n this.columnController.addPivotColumn(column, \"columnMenu\");\n }\n }\n };\n ToolPanelColumnComp.prototype.setupDragging = function () {\n var _this = this;\n if (!this.allowDragging) {\n _.setDisplayed(this.eDragHandle, false);\n return;\n }\n var dragSource = {\n type: DragSourceType.ToolPanel,\n eElement: this.eDragHandle,\n dragItemName: this.displayName,\n getDragItem: function () { return _this.createDragItem(); }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n ToolPanelColumnComp.prototype.createDragItem = function () {\n var visibleState = {};\n visibleState[this.column.getId()] = this.column.isVisible();\n return {\n columns: [this.column],\n visibleState: visibleState\n };\n };\n ToolPanelColumnComp.prototype.onColumnStateChanged = function () {\n this.processingColumnStateChange = true;\n var isPivotMode = this.columnController.isPivotMode();\n if (isPivotMode) {\n // if reducing, checkbox means column is one of pivot, value or group\n var anyFunctionActive = this.column.isAnyFunctionActive();\n this.cbSelect.setValue(anyFunctionActive);\n }\n else {\n // if not reducing, the checkbox tells us if column is visible or not\n this.cbSelect.setValue(this.column.isVisible());\n }\n var checkboxReadOnly;\n if (isPivotMode) {\n // when in pivot mode, the item should be read only if:\n // a) gui is not allowed make any changes\n var functionsReadOnly = this.gridOptionsWrapper.isFunctionsReadOnly();\n // b) column is not allow any functions on it\n var noFunctionsAllowed = !this.column.isAnyFunctionAllowed();\n checkboxReadOnly = functionsReadOnly || noFunctionsAllowed;\n }\n else {\n // when in normal mode, the checkbox is read only if visibility is locked\n checkboxReadOnly = !!this.column.getColDef().lockVisible;\n }\n this.cbSelect.setReadOnly(checkboxReadOnly);\n var checkboxPassive = isPivotMode && this.gridOptionsWrapper.isFunctionsPassive();\n this.cbSelect.setPassive(checkboxPassive);\n this.processingColumnStateChange = false;\n };\n ToolPanelColumnComp.prototype.getDisplayName = function () {\n return this.displayName;\n };\n ToolPanelColumnComp.prototype.onSelectAllChanged = function (value) {\n if (value !== this.cbSelect.getValue()) {\n if (!this.cbSelect.isReadOnly()) {\n this.cbSelect.toggle();\n }\n }\n };\n ToolPanelColumnComp.prototype.isSelected = function () {\n return this.cbSelect.getValue();\n };\n ToolPanelColumnComp.prototype.isSelectable = function () {\n return !this.cbSelect.isReadOnly();\n };\n ToolPanelColumnComp.prototype.isExpandable = function () {\n return false;\n };\n ToolPanelColumnComp.prototype.setExpanded = function (value) {\n console.warn('ag-grid: can not expand a column item that does not represent a column group header');\n };\n ToolPanelColumnComp.TEMPLATE = \"<div class=\\\"ag-column-tool-panel-column\\\">\\n <ag-checkbox ref=\\\"cbSelect\\\" class=\\\"ag-column-select-checkbox\\\"></ag-checkbox>\\n <span class=\\\"ag-column-tool-panel-column-label\\\" ref=\\\"eLabel\\\"></span>\\n </div>\";\n __decorate([\n Autowired('gridOptionsWrapper')\n ], ToolPanelColumnComp.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n Autowired('columnController')\n ], ToolPanelColumnComp.prototype, \"columnController\", void 0);\n __decorate([\n Autowired('eventService')\n ], ToolPanelColumnComp.prototype, \"eventService\", void 0);\n __decorate([\n Autowired('dragAndDropService')\n ], ToolPanelColumnComp.prototype, \"dragAndDropService\", void 0);\n __decorate([\n Autowired('columnApi')\n ], ToolPanelColumnComp.prototype, \"columnApi\", void 0);\n __decorate([\n Autowired('gridApi')\n ], ToolPanelColumnComp.prototype, \"gridApi\", void 0);\n __decorate([\n RefSelector('eLabel')\n ], ToolPanelColumnComp.prototype, \"eLabel\", void 0);\n __decorate([\n RefSelector('cbSelect')\n ], ToolPanelColumnComp.prototype, \"cbSelect\", void 0);\n __decorate([\n PostConstruct\n ], ToolPanelColumnComp.prototype, \"init\", null);\n return ToolPanelColumnComp;\n}(Component));\nexport { ToolPanelColumnComp };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { _, Autowired, Component, Events, OriginalColumnGroup } from \"@ag-grid-community/core\";\nimport { ToolPanelColumnGroupComp } from \"./toolPanelColumnGroupComp\";\nimport { ToolPanelColumnComp } from \"./toolPanelColumnComp\";\nimport { EXPAND_STATE, SELECTED_STATE } from \"./primaryColsHeaderPanel\";\nvar PrimaryColsListPanel = /** @class */ (function (_super) {\n __extends(PrimaryColsListPanel, _super);\n function PrimaryColsListPanel() {\n var _this = _super.call(this, PrimaryColsListPanel.TEMPLATE) || this;\n _this.selectAllChecked = true;\n _this.getColumnCompId = function (columnGroupChild) {\n if (columnGroupChild instanceof OriginalColumnGroup) {\n // group comps are stored using a custom key (groupId + child colIds concatenated) as we need\n // to distinguish individual column groups after they have been split by user\n var childIds = columnGroupChild.getLeafColumns().map(function (child) { return child.getId(); }).join('-');\n return columnGroupChild.getId() + '-' + childIds;\n }\n else {\n return columnGroupChild.getId();\n }\n };\n return _this;\n }\n PrimaryColsListPanel.prototype.init = function (params, allowDragging) {\n var _this = this;\n this.params = params;\n this.allowDragging = allowDragging;\n if (!this.params.suppressSyncLayoutWithGrid) {\n this.addDestroyableEventListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.onColumnsChanged.bind(this));\n }\n this.addDestroyableEventListener(this.eventService, Events.EVENT_COLUMN_EVERYTHING_CHANGED, this.onColumnsChanged.bind(this));\n var eventsImpactingCheckedState = [\n Events.EVENT_COLUMN_EVERYTHING_CHANGED,\n Events.EVENT_COLUMN_PIVOT_CHANGED,\n Events.EVENT_COLUMN_PIVOT_MODE_CHANGED,\n Events.EVENT_COLUMN_ROW_GROUP_CHANGED,\n Events.EVENT_COLUMN_VALUE_CHANGED,\n Events.EVENT_COLUMN_VISIBLE,\n Events.EVENT_NEW_COLUMNS_LOADED\n ];\n eventsImpactingCheckedState.forEach(function (event) {\n // update header select all checkbox with current selection state\n _this.addDestroyableEventListener(_this.eventService, event, _this.fireSelectionChangedEvent.bind(_this));\n });\n this.expandGroupsByDefault = !this.params.contractColumnSelection;\n if (this.columnController.isReady()) {\n this.onColumnsChanged();\n }\n };\n PrimaryColsListPanel.prototype.onColumnsChanged = function () {\n var pivotModeActive = this.columnController.isPivotMode();\n var shouldSyncColumnLayoutWithGrid = !this.params.suppressSyncLayoutWithGrid && !pivotModeActive;\n shouldSyncColumnLayoutWithGrid ? this.syncColumnLayout() : this.buildTreeFromProvidedColumnDefs();\n };\n PrimaryColsListPanel.prototype.syncColumnLayout = function () {\n this.colDefService.syncLayoutWithGrid(this.setColumnLayout.bind(this));\n };\n PrimaryColsListPanel.prototype.setColumnLayout = function (colDefs) {\n this.destroyColumnComps();\n // create column tree using supplied colDef's\n this.columnTree = this.colDefService.createColumnTree(colDefs);\n // using col defs to check if groups exist as it could be a custom layout\n var groupsExist = colDefs.some(function (colDef) {\n return colDef && typeof colDef.children !== 'undefined';\n });\n this.recursivelyAddComps(this.columnTree, 0, groupsExist);\n this.recursivelySetVisibility(this.columnTree, true);\n // notify header\n this.notifyListeners();\n };\n PrimaryColsListPanel.prototype.buildTreeFromProvidedColumnDefs = function () {\n this.destroyColumnComps();\n // add column / group comps to tool panel\n this.columnTree = this.columnController.getPrimaryColumnTree();\n var groupsExist = this.columnController.isPrimaryColumnGroupsPresent();\n this.recursivelyAddComps(this.columnTree, 0, groupsExist);\n this.recursivelySetVisibility(this.columnTree, true);\n // notify header\n this.notifyListeners();\n };\n PrimaryColsListPanel.prototype.recursivelyAddComps = function (tree, dept, groupsExist) {\n var _this = this;\n tree.forEach(function (child) {\n if (child instanceof OriginalColumnGroup) {\n _this.recursivelyAddGroupComps(child, dept, groupsExist);\n }\n else {\n _this.addColumnComps(child, dept, groupsExist);\n }\n });\n };\n PrimaryColsListPanel.prototype.recursivelyAddGroupComps = function (columnGroup, dept, groupsExist) {\n var _this = this;\n // only render group if user provided the definition\n var newDept;\n if (columnGroup.getColGroupDef() && columnGroup.getColGroupDef().suppressColumnsToolPanel) {\n return;\n }\n if (!columnGroup.isPadding()) {\n var renderedGroup = new ToolPanelColumnGroupComp(columnGroup, dept, this.allowDragging, this.expandGroupsByDefault, this.onGroupExpanded.bind(this), function () { return _this.filterResults; });\n this.getContext().wireBean(renderedGroup);\n this.getGui().appendChild(renderedGroup.getGui());\n // we want to indent on the gui for the children\n newDept = dept + 1;\n // group comps are stored using a custom key (groupId + child colIds concatenated) as we need\n // to distinguish individual column groups after they have been split by user\n var key = this.getColumnCompId(columnGroup);\n this.columnComps[key] = renderedGroup;\n }\n else {\n // no children, so no indent\n newDept = dept;\n }\n this.recursivelyAddComps(columnGroup.getChildren(), newDept, groupsExist);\n };\n PrimaryColsListPanel.prototype.addColumnComps = function (column, dept, groupsExist) {\n if (column.getColDef() && column.getColDef().suppressColumnsToolPanel) {\n return;\n }\n var columnComp = new ToolPanelColumnComp(column, dept, this.allowDragging, groupsExist);\n this.getContext().wireBean(columnComp);\n this.getGui().appendChild(columnComp.getGui());\n this.columnComps[column.getId()] = columnComp;\n };\n PrimaryColsListPanel.prototype.onGroupExpanded = function () {\n this.recursivelySetVisibility(this.columnTree, true);\n this.fireGroupExpandedEvent();\n };\n PrimaryColsListPanel.prototype.doSetExpandedAll = function (value) {\n _.iterateObject(this.columnComps, function (key, renderedItem) {\n if (renderedItem.isExpandable()) {\n renderedItem.setExpanded(value);\n }\n });\n };\n PrimaryColsListPanel.prototype.setGroupsExpanded = function (expand, groupIds) {\n var _this = this;\n var expandedGroupIds = [];\n if (!groupIds) {\n this.doSetExpandedAll(expand);\n return;\n }\n groupIds.forEach(function (suppliedGroupId) {\n // we need to search through all comps to handle the case when groups are split\n _.iterateObject(_this.columnComps, function (key, comp) {\n // check if group comp starts with supplied group id as the tool panel keys contain\n // groupId + childIds concatenated\n var foundMatchingGroupComp = key.indexOf(suppliedGroupId) === 0;\n if (foundMatchingGroupComp) {\n comp.setExpanded(expand);\n expandedGroupIds.push(suppliedGroupId);\n }\n });\n });\n var unrecognisedGroupIds = groupIds.filter(function (groupId) { return !_.includes(expandedGroupIds, groupId); });\n if (unrecognisedGroupIds.length > 0) {\n console.warn('ag-Grid: unable to find group(s) for supplied groupIds:', unrecognisedGroupIds);\n }\n };\n PrimaryColsListPanel.prototype.getExpandState = function () {\n var _this = this;\n var expandedCount = 0;\n var notExpandedCount = 0;\n var recursiveFunc = function (items) {\n items.forEach(function (item) {\n // only interested in groups\n if (item instanceof OriginalColumnGroup) {\n var compId = _this.getColumnCompId(item);\n var comp = _this.columnComps[compId];\n if (comp) {\n if (comp.isExpanded()) {\n expandedCount++;\n }\n else {\n notExpandedCount++;\n }\n }\n var columnGroup = item;\n var groupChildren = columnGroup.getChildren();\n recursiveFunc(groupChildren);\n }\n });\n };\n recursiveFunc(this.columnTree);\n if (expandedCount > 0 && notExpandedCount > 0) {\n return EXPAND_STATE.INDETERMINATE;\n }\n else if (notExpandedCount > 0) {\n return EXPAND_STATE.COLLAPSED;\n }\n else {\n return EXPAND_STATE.EXPANDED;\n }\n };\n PrimaryColsListPanel.prototype.doSetSelectedAll = function (selectAllChecked) {\n this.selectAllChecked = selectAllChecked;\n this.updateSelections();\n };\n PrimaryColsListPanel.prototype.updateSelections = function () {\n var _this = this;\n if (this.columnApi.isPivotMode()) {\n // if pivot mode is on, then selecting columns has special meaning (eg group, aggregate, pivot etc),\n // so there is no bulk operation we can do.\n _.iterateObject(this.columnComps, function (key, column) {\n column.onSelectAllChanged(_this.selectAllChecked);\n });\n }\n else {\n // however if pivot mode is off, then it's all about column visibility so we can do a bulk\n // operation directly with the column controller. we could column.onSelectAllChanged(checked)\n // as above, however this would work on each column independently and take longer.\n if (!_.exists(this.filterText)) {\n var primaryCols = this.columnApi.getPrimaryColumns();\n // we don't want to change visibility on lock visible / hidden columns\n var colsToChange = primaryCols.filter(function (col) {\n return !col.getColDef().lockVisible && !col.getColDef().hide;\n });\n this.columnApi.setColumnsVisible(colsToChange, this.selectAllChecked);\n return;\n }\n // obtain list of columns currently filtered\n var filteredCols_1 = [];\n _.iterateObject(this.filterResults, function (key, passesFilter) {\n if (passesFilter)\n filteredCols_1.push(key);\n });\n if (filteredCols_1.length > 0) {\n // update visibility of columns currently filtered\n this.columnApi.setColumnsVisible(filteredCols_1, this.selectAllChecked);\n // update select all header with new state\n var selectionState = this.selectAllChecked ? SELECTED_STATE.CHECKED : SELECTED_STATE.UNCHECKED;\n this.dispatchEvent({ type: 'selectionChanged', state: selectionState });\n }\n }\n };\n PrimaryColsListPanel.prototype.getSelectionState = function () {\n var _this = this;\n var allPrimaryColumns = this.columnController.getAllPrimaryColumns();\n var columns = [];\n if (allPrimaryColumns !== null) {\n columns = allPrimaryColumns.filter(function (col) { return !col.getColDef().lockVisible; });\n }\n var pivotMode = this.columnController.isPivotMode();\n var checkedCount = 0;\n var uncheckedCount = 0;\n columns.forEach(function (col) {\n // ignore lock visible columns\n if (col.getColDef().lockVisible) {\n return;\n }\n // not not count columns not in tool panel\n var colDef = col.getColDef();\n if (colDef && colDef.suppressColumnsToolPanel) {\n return;\n }\n // ignore columns that have been removed from panel by filter\n if (_this.filterResults && !_this.filterResults[col.getColId()])\n return;\n var checked;\n if (pivotMode) {\n var noPivotModeOptionsAllowed = !col.isAllowPivot() && !col.isAllowRowGroup() && !col.isAllowValue();\n if (noPivotModeOptionsAllowed) {\n return;\n }\n checked = col.isValueActive() || col.isPivotActive() || col.isRowGroupActive();\n }\n else {\n checked = col.isVisible();\n }\n if (checked) {\n checkedCount++;\n }\n else {\n uncheckedCount++;\n }\n });\n if (checkedCount > 0 && uncheckedCount > 0) {\n return SELECTED_STATE.INDETERMINATE;\n }\n else if (checkedCount === 0 || uncheckedCount > 0) {\n return SELECTED_STATE.UNCHECKED;\n }\n else {\n return SELECTED_STATE.CHECKED;\n }\n };\n PrimaryColsListPanel.prototype.setFilterText = function (filterText) {\n this.filterText = _.exists(filterText) ? filterText.toLowerCase() : null;\n this.filterColumns();\n this.recursivelySetVisibility(this.columnTree, true);\n // groups selection state may need to be updated when filter is present\n _.iterateObject(this.columnComps, function (key, columnComp) {\n if (columnComp instanceof ToolPanelColumnGroupComp) {\n columnComp.onColumnStateChanged();\n }\n });\n // update header panel with current selection and expanded state\n this.fireSelectionChangedEvent();\n this.fireGroupExpandedEvent();\n };\n PrimaryColsListPanel.prototype.filterColumns = function () {\n var _this = this;\n var filterResults = {};\n var passesFilter = function (item) {\n if (!_.exists(_this.filterText))\n return true;\n var columnCompId = _this.getColumnCompId(item);\n var comp = _this.columnComps[columnCompId];\n if (!comp)\n return false;\n var isPaddingGroup = item instanceof OriginalColumnGroup && item.isPadding();\n if (isPaddingGroup)\n return false;\n var displayName = comp.getDisplayName();\n return displayName !== null ? displayName.toLowerCase().indexOf(_this.filterText) >= 0 : true;\n };\n var recursivelyCheckFilter = function (item, parentPasses) {\n var atLeastOneChildPassed = false;\n if (item instanceof OriginalColumnGroup) {\n var groupPasses_1 = passesFilter(item);\n item.getChildren().forEach(function (child) {\n var childPasses = recursivelyCheckFilter(child, groupPasses_1 || parentPasses);\n if (childPasses) {\n atLeastOneChildPassed = childPasses;\n }\n });\n }\n var filterPasses = (parentPasses || atLeastOneChildPassed) ? true : passesFilter(item);\n var columnCompId = _this.getColumnCompId(item);\n filterResults[columnCompId] = filterPasses;\n return filterPasses;\n };\n this.columnTree.forEach(function (item) { return recursivelyCheckFilter(item, false); });\n this.filterResults = filterResults;\n };\n PrimaryColsListPanel.prototype.recursivelySetVisibility = function (columnTree, parentGroupsOpen) {\n var _this = this;\n columnTree.forEach(function (child) {\n var compId = _this.getColumnCompId(child);\n var comp = _this.columnComps[compId];\n if (comp) {\n var passesFilter = _this.filterResults ? _this.filterResults[compId] : true;\n comp.setDisplayed(parentGroupsOpen && passesFilter);\n }\n if (child instanceof OriginalColumnGroup) {\n var columnGroup = child;\n var childrenOpen = void 0;\n if (comp) {\n var expanded = comp.isExpanded();\n childrenOpen = parentGroupsOpen ? expanded : false;\n }\n else {\n childrenOpen = parentGroupsOpen;\n }\n var children = columnGroup.getChildren();\n _this.recursivelySetVisibility(children, childrenOpen);\n }\n });\n };\n PrimaryColsListPanel.prototype.notifyListeners = function () {\n this.fireGroupExpandedEvent();\n this.fireSelectionChangedEvent();\n };\n PrimaryColsListPanel.prototype.fireGroupExpandedEvent = function () {\n var expandState = this.getExpandState();\n this.dispatchEvent({ type: 'groupExpanded', state: expandState });\n };\n PrimaryColsListPanel.prototype.fireSelectionChangedEvent = function () {\n var selectionState = this.getSelectionState();\n this.dispatchEvent({ type: 'selectionChanged', state: selectionState });\n };\n PrimaryColsListPanel.prototype.destroyColumnComps = function () {\n _.clearElement(this.getGui());\n if (this.columnComps) {\n _.iterateObject(this.columnComps, function (key, renderedItem) { return renderedItem.destroy(); });\n }\n this.columnComps = {};\n };\n PrimaryColsListPanel.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.destroyColumnComps();\n };\n PrimaryColsListPanel.TEMPLATE = \"<div class=\\\"ag-primary-cols-list-panel\\\"></div>\";\n __decorate([\n Autowired('gridOptionsWrapper')\n ], PrimaryColsListPanel.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n Autowired('columnController')\n ], PrimaryColsListPanel.prototype, \"columnController\", void 0);\n __decorate([\n Autowired('toolPanelColDefService')\n ], PrimaryColsListPanel.prototype, \"colDefService\", void 0);\n __decorate([\n Autowired('eventService')\n ], PrimaryColsListPanel.prototype, \"eventService\", void 0);\n __decorate([\n Autowired('columnApi')\n ], PrimaryColsListPanel.prototype, \"columnApi\", void 0);\n return PrimaryColsListPanel;\n}(Component));\nexport { PrimaryColsListPanel };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AgCheckbox, Autowired, Component, Events, PreConstruct, RefSelector } from \"@ag-grid-community/core\";\nvar PivotModePanel = /** @class */ (function (_super) {\n __extends(PivotModePanel, _super);\n function PivotModePanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PivotModePanel.prototype.createTemplate = function () {\n return \"<div class=\\\"ag-pivot-mode-panel\\\">\\n <ag-checkbox ref=\\\"cbPivotMode\\\" class=\\\"ag-pivot-mode-select\\\"></ag-checkbox>\\n </div>\";\n };\n PivotModePanel.prototype.init = function () {\n this.setTemplate(this.createTemplate());\n this.cbPivotMode.setValue(this.columnController.isPivotMode());\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.cbPivotMode.setLabel(localeTextFunc('pivotMode', 'Pivot Mode'));\n this.addDestroyableEventListener(this.cbPivotMode, AgCheckbox.EVENT_CHANGED, this.onBtPivotMode.bind(this));\n this.addDestroyableEventListener(this.eventService, Events.EVENT_COLUMN_EVERYTHING_CHANGED, this.onPivotModeChanged.bind(this));\n this.addDestroyableEventListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));\n };\n PivotModePanel.prototype.onBtPivotMode = function () {\n var newValue = this.cbPivotMode.getValue();\n if (newValue !== this.columnController.isPivotMode()) {\n this.columnController.setPivotMode(newValue, \"toolPanelUi\");\n var api = this.gridOptionsWrapper.getApi();\n if (api) {\n api.refreshHeader();\n }\n }\n };\n PivotModePanel.prototype.onPivotModeChanged = function () {\n var pivotModeActive = this.columnController.isPivotMode();\n this.cbPivotMode.setValue(pivotModeActive);\n };\n __decorate([\n Autowired('columnController')\n ], PivotModePanel.prototype, \"columnController\", void 0);\n __decorate([\n Autowired('eventService')\n ], PivotModePanel.prototype, \"eventService\", void 0);\n __decorate([\n Autowired('gridOptionsWrapper')\n ], PivotModePanel.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n RefSelector('cbPivotMode')\n ], PivotModePanel.prototype, \"cbPivotMode\", void 0);\n __decorate([\n PreConstruct\n ], PivotModePanel.prototype, \"init\", null);\n return PivotModePanel;\n}(Component));\nexport { PivotModePanel };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { _, Autowired, Component, Events, ModuleNames, ModuleRegistry } from \"@ag-grid-community/core\";\nimport { PivotModePanel } from \"./pivotModePanel\";\nimport { RowGroupDropZonePanel, ValuesDropZonePanel, PivotDropZonePanel } from \"@ag-grid-enterprise/row-grouping\";\nvar ColumnToolPanel = /** @class */ (function (_super) {\n __extends(ColumnToolPanel, _super);\n function ColumnToolPanel() {\n var _this = _super.call(this, ColumnToolPanel.TEMPLATE) || this;\n _this.initialised = false;\n _this.childDestroyFuncs = [];\n return _this;\n }\n // lazy initialise the panel\n ColumnToolPanel.prototype.setVisible = function (visible) {\n _super.prototype.setDisplayed.call(this, visible);\n if (visible && !this.initialised) {\n this.init(this.params);\n }\n };\n ColumnToolPanel.prototype.init = function (params) {\n var defaultParams = {\n suppressSideButtons: false,\n suppressColumnSelectAll: false,\n suppressColumnFilter: false,\n suppressColumnExpandAll: false,\n contractColumnSelection: false,\n suppressPivotMode: false,\n suppressRowGroups: false,\n suppressValues: false,\n suppressPivots: false,\n suppressSyncLayoutWithGrid: false,\n api: this.gridApi\n };\n _.mergeDeep(defaultParams, params);\n this.params = defaultParams;\n if (this.isRowGroupingModuleLoaded() && !this.params.suppressPivotMode) {\n this.pivotModePanel = new PivotModePanel();\n this.addComponent(this.pivotModePanel);\n }\n this.primaryColsPanel = this.getContext().createComponent('AG-PRIMARY-COLS');\n this.primaryColsPanel.init(true, this.params);\n this.addComponent(this.primaryColsPanel);\n if (this.isRowGroupingModuleLoaded()) {\n if (!this.params.suppressRowGroups) {\n this.rowGroupDropZonePanel = new RowGroupDropZonePanel(false);\n this.addComponent(this.rowGroupDropZonePanel);\n }\n if (!this.params.suppressValues) {\n this.valuesDropZonePanel = new ValuesDropZonePanel(false);\n this.addComponent(this.valuesDropZonePanel);\n }\n if (!this.params.suppressPivots) {\n this.pivotDropZonePanel = new PivotDropZonePanel(false);\n this.addComponent(this.pivotDropZonePanel);\n }\n this.setLastVisible();\n this.addDestroyableEventListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.setLastVisible.bind(this));\n }\n this.initialised = true;\n };\n ColumnToolPanel.prototype.setPivotModeSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n ;\n if (this.pivotModePanel) {\n this.pivotModePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.pivotModePanel = new PivotModePanel();\n this.getContext().wireBean(this.pivotModePanel);\n // ensure pivot mode panel is positioned at the top of the columns tool panel\n this.getGui().insertBefore(this.pivotModePanel.getGui(), this.getGui().firstChild);\n this.childDestroyFuncs.push(this.pivotModePanel.destroy.bind(this.pivotModePanel));\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setRowGroupsSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n ;\n if (this.rowGroupDropZonePanel) {\n this.rowGroupDropZonePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.rowGroupDropZonePanel = new RowGroupDropZonePanel(false);\n this.addComponent(new RowGroupDropZonePanel(false));\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setValuesSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n ;\n if (this.valuesDropZonePanel) {\n this.valuesDropZonePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.valuesDropZonePanel = new ValuesDropZonePanel(false);\n this.addComponent(this.valuesDropZonePanel);\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setPivotSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n ;\n if (this.pivotDropZonePanel) {\n this.pivotDropZonePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.pivotDropZonePanel = new PivotDropZonePanel(false);\n this.addComponent(this.pivotDropZonePanel);\n this.pivotDropZonePanel.setDisplayed(visible);\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setLastVisible = function () {\n var eGui = this.getGui();\n var columnDrops = Array.prototype.slice.call(eGui.querySelectorAll('.ag-column-drop'));\n columnDrops.forEach(function (columnDrop) { return _.removeCssClass(columnDrop, 'ag-last-column-drop'); });\n var lastVisible = _.last(eGui.querySelectorAll('.ag-column-drop:not(.ag-hidden)'));\n if (lastVisible) {\n _.addCssClass(lastVisible, 'ag-last-column-drop');\n }\n };\n ColumnToolPanel.prototype.isRowGroupingModuleLoaded = function () {\n return ModuleRegistry.assertRegistered(ModuleNames.RowGroupingModule, 'Row Grouping');\n };\n ColumnToolPanel.prototype.expandColumnGroups = function (groupIds) {\n this.primaryColsPanel.expandGroups(groupIds);\n };\n ColumnToolPanel.prototype.collapseColumnGroups = function (groupIds) {\n this.primaryColsPanel.collapseGroups(groupIds);\n };\n ColumnToolPanel.prototype.setColumnLayout = function (colDefs) {\n this.primaryColsPanel.setColumnLayout(colDefs);\n };\n ColumnToolPanel.prototype.syncLayoutWithGrid = function () {\n this.primaryColsPanel.syncLayoutWithGrid();\n };\n ColumnToolPanel.prototype.addComponent = function (component) {\n this.getContext().wireBean(component);\n this.getGui().appendChild(component.getGui());\n this.childDestroyFuncs.push(component.destroy.bind(component));\n };\n ColumnToolPanel.prototype.destroyChildren = function () {\n this.childDestroyFuncs.forEach(function (func) { return func(); });\n this.childDestroyFuncs.length = 0;\n _.clearElement(this.getGui());\n };\n ColumnToolPanel.prototype.refresh = function () {\n this.destroyChildren();\n this.init(this.params);\n };\n ColumnToolPanel.prototype.destroy = function () {\n this.destroyChildren();\n _super.prototype.destroy.call(this);\n };\n ColumnToolPanel.TEMPLATE = \"<div class=\\\"ag-column-panel\\\"></div>\";\n __decorate([\n Autowired(\"gridOptionsWrapper\")\n ], ColumnToolPanel.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n Autowired(\"gridApi\")\n ], ColumnToolPanel.prototype, \"gridApi\", void 0);\n __decorate([\n Autowired(\"eventService\")\n ], ColumnToolPanel.prototype, \"eventService\", void 0);\n return ColumnToolPanel;\n}(Component));\nexport { ColumnToolPanel };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, RefSelector } from \"@ag-grid-community/core\";\nvar PrimaryColsPanel = /** @class */ (function (_super) {\n __extends(PrimaryColsPanel, _super);\n function PrimaryColsPanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // we allow dragging in the toolPanel, but not when this component appears in the column menu\n PrimaryColsPanel.prototype.init = function (allowDragging, params) {\n this.setTemplate(PrimaryColsPanel.TEMPLATE);\n this.allowDragging = allowDragging;\n this.params = params;\n this.primaryColsHeaderPanel.init(this.params);\n var hideFilter = this.params.suppressColumnFilter;\n var hideSelect = this.params.suppressColumnSelectAll;\n var hideExpand = this.params.suppressColumnExpandAll;\n if (hideExpand && hideFilter && hideSelect) {\n this.primaryColsHeaderPanel.setDisplayed(false);\n }\n this.addDestroyableEventListener(this.primaryColsListPanel, 'groupExpanded', this.onGroupExpanded.bind(this));\n this.addDestroyableEventListener(this.primaryColsListPanel, 'selectionChanged', this.onSelectionChange.bind(this));\n this.primaryColsListPanel.init(this.params, this.allowDragging);\n this.addDestroyableEventListener(this.primaryColsHeaderPanel, 'expandAll', this.onExpandAll.bind(this));\n this.addDestroyableEventListener(this.primaryColsHeaderPanel, 'collapseAll', this.onCollapseAll.bind(this));\n this.addDestroyableEventListener(this.primaryColsHeaderPanel, 'selectAll', this.onSelectAll.bind(this));\n this.addDestroyableEventListener(this.primaryColsHeaderPanel, 'unselectAll', this.onUnselectAll.bind(this));\n this.addDestroyableEventListener(this.primaryColsHeaderPanel, 'filterChanged', this.onFilterChanged.bind(this));\n };\n PrimaryColsPanel.prototype.onExpandAll = function () {\n this.primaryColsListPanel.doSetExpandedAll(true);\n };\n PrimaryColsPanel.prototype.onCollapseAll = function () {\n this.primaryColsListPanel.doSetExpandedAll(false);\n };\n PrimaryColsPanel.prototype.expandGroups = function (groupIds) {\n this.primaryColsListPanel.setGroupsExpanded(true, groupIds);\n };\n PrimaryColsPanel.prototype.collapseGroups = function (groupIds) {\n this.primaryColsListPanel.setGroupsExpanded(false, groupIds);\n };\n PrimaryColsPanel.prototype.setColumnLayout = function (colDefs) {\n this.primaryColsListPanel.setColumnLayout(colDefs);\n };\n PrimaryColsPanel.prototype.onFilterChanged = function (event) {\n this.primaryColsListPanel.setFilterText(event.filterText);\n };\n PrimaryColsPanel.prototype.syncLayoutWithGrid = function () {\n this.primaryColsListPanel.syncColumnLayout();\n };\n PrimaryColsPanel.prototype.onSelectAll = function () {\n this.primaryColsListPanel.doSetSelectedAll(true);\n };\n PrimaryColsPanel.prototype.onUnselectAll = function () {\n this.primaryColsListPanel.doSetSelectedAll(false);\n };\n PrimaryColsPanel.prototype.onGroupExpanded = function (event) {\n this.primaryColsHeaderPanel.setExpandState(event.state);\n };\n PrimaryColsPanel.prototype.onSelectionChange = function (event) {\n this.primaryColsHeaderPanel.setSelectionState(event.state);\n };\n PrimaryColsPanel.TEMPLATE = \"<div class=\\\"ag-column-select-panel\\\">\\n <ag-primary-cols-header ref=\\\"primaryColsHeaderPanel\\\"></ag-primary-cols-header>\\n <ag-primary-cols-list ref=\\\"primaryColsListPanel\\\"></ag-primary-cols-list>\\n </div>\";\n __decorate([\n RefSelector('primaryColsHeaderPanel')\n ], PrimaryColsPanel.prototype, \"primaryColsHeaderPanel\", void 0);\n __decorate([\n RefSelector('primaryColsListPanel')\n ], PrimaryColsPanel.prototype, \"primaryColsListPanel\", void 0);\n return PrimaryColsPanel;\n}(Component));\nexport { PrimaryColsPanel };\n","import { ModuleNames } from \"@ag-grid-community/core\";\nimport { EnterpriseCoreModule } from \"@ag-grid-enterprise/core\";\nimport { PrimaryColsHeaderPanel } from \"./columnToolPanel/primaryColsHeaderPanel\";\nimport { PrimaryColsListPanel } from \"./columnToolPanel/primaryColsListPanel\";\nimport { ColumnToolPanel } from \"./columnToolPanel/columnToolPanel\";\nimport { PrimaryColsPanel } from \"./columnToolPanel/primaryColsPanel\";\nimport { RowGroupingModule } from \"@ag-grid-enterprise/row-grouping\";\nimport { SideBarModule } from \"@ag-grid-enterprise/side-bar\";\nexport var ColumnsToolPanelModule = {\n moduleName: ModuleNames.ColumnToolPanelModule,\n beans: [],\n agStackComponents: [\n { componentName: 'AgPrimaryColsHeader', componentClass: PrimaryColsHeaderPanel },\n { componentName: 'AgPrimaryColsList', componentClass: PrimaryColsListPanel },\n { componentName: 'AgPrimaryCols', componentClass: PrimaryColsPanel }\n ],\n userComponents: [\n { componentName: 'agColumnsToolPanel', componentClass: ColumnToolPanel },\n ],\n dependantModules: [\n EnterpriseCoreModule,\n RowGroupingModule,\n SideBarModule\n ]\n};\n","export { ColumnsToolPanelModule } from \"./columnsToolPanelModule\";\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { _, Autowired, Bean, ChangedPath, Constants, Events, PostConstruct, Optional } from \"@ag-grid-community/core\";\nvar ClipboardService = /** @class */ (function () {\n function ClipboardService() {\n }\n ClipboardService.prototype.registerGridCore = function (gridCore) {\n this.gridCore = gridCore;\n };\n ClipboardService.prototype.init = function () {\n this.logger = this.loggerFactory.create('ClipboardService');\n if (this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideRowModel = this.rowModel;\n }\n };\n ClipboardService.prototype.pasteFromClipboard = function () {\n var _this = this;\n this.logger.log('pasteFromClipboard');\n this.executeOnTempElement(function (textArea) {\n textArea.focus();\n }, function (element) {\n var data = element.value;\n if (_.missingOrEmpty(data)) {\n return;\n }\n var parsedData = _this.dataToArray(data);\n var userFunc = _this.gridOptionsWrapper.getProcessDataFromClipboardFunc();\n if (userFunc) {\n parsedData = userFunc({ data: parsedData });\n }\n if (_.missingOrEmpty(parsedData)) {\n return;\n }\n var pasteOperation = function (cellsToFlash, updatedRowNodes, focusedCell, changedPath) {\n var singleCellInClipboard = parsedData.length == 1 && parsedData[0].length == 1;\n var rangeActive = _this.rangeController && _this.rangeController.isMoreThanOneCell();\n var pasteIntoRange = rangeActive && !singleCellInClipboard;\n if (pasteIntoRange) {\n _this.pasteIntoActiveRange(parsedData, cellsToFlash, updatedRowNodes, changedPath);\n }\n else {\n _this.pasteStartingFromFocusedCell(parsedData, cellsToFlash, updatedRowNodes, focusedCell, changedPath);\n }\n };\n _this.doPasteOperation(pasteOperation);\n });\n };\n // common code to paste operations, eg past to cell, paste to range, and copy range down\n ClipboardService.prototype.doPasteOperation = function (pasteOperationFunc) {\n this.eventService.dispatchEvent({\n type: Events.EVENT_PASTE_START,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n source: 'clipboard'\n });\n var changedPath;\n if (this.clientSideRowModel) {\n var onlyChangedColumns = this.gridOptionsWrapper.isAggregateOnlyChangedColumns();\n changedPath = new ChangedPath(onlyChangedColumns, this.clientSideRowModel.getRootNode());\n }\n var cellsToFlash = {};\n var updatedRowNodes = [];\n var focusedCell = this.focusedCellController.getFocusedCell();\n pasteOperationFunc(cellsToFlash, updatedRowNodes, focusedCell, changedPath);\n if (changedPath) {\n this.clientSideRowModel.doAggregate(changedPath);\n }\n this.rowRenderer.refreshCells();\n this.dispatchFlashCells(cellsToFlash);\n this.fireRowChanged(updatedRowNodes);\n if (focusedCell) {\n this.focusedCellController.setFocusedCell(focusedCell.rowIndex, focusedCell.column, focusedCell.rowPinned, true);\n }\n this.eventService.dispatchEvent({\n type: Events.EVENT_PASTE_END,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n source: 'clipboard'\n });\n };\n ClipboardService.prototype.pasteIntoActiveRange = function (clipboardData, cellsToFlash, updatedRowNodes, changedPath) {\n var _this = this;\n // true if clipboard data can be evenly pasted into range, otherwise false\n var abortRepeatingPasteIntoRows = this.rangeSize() % clipboardData.length != 0;\n var indexOffset = 0, dataRowIndex = 0;\n var rowCallback = function (currentRow, rowNode, columns, index, isLastRow) {\n var atEndOfClipboardData = index - indexOffset >= clipboardData.length;\n if (atEndOfClipboardData) {\n if (abortRepeatingPasteIntoRows) {\n return;\n }\n // increment offset and reset data index to repeat paste of data\n indexOffset += dataRowIndex;\n dataRowIndex = 0;\n }\n var currentRowData = clipboardData[index - indexOffset];\n // otherwise we are not the first row, so copy\n updatedRowNodes.push(rowNode);\n columns.forEach(function (column, idx) {\n if (!column.isCellEditable(rowNode) || column.isSuppressPaste(rowNode)) {\n return;\n }\n // repeat data for columns we don't have data for - happens when to range is bigger than copied data range\n if (idx >= currentRowData.length) {\n idx = idx % currentRowData.length;\n }\n var newValue = currentRowData[idx];\n var processCellFromClipboardFunc = _this.gridOptionsWrapper.getProcessCellFromClipboardFunc();\n newValue = _this.userProcessCell(rowNode, column, newValue, processCellFromClipboardFunc, Constants.EXPORT_TYPE_DRAG_COPY);\n _this.valueService.setValue(rowNode, column, newValue, Constants.SOURCE_PASTE);\n if (changedPath) {\n changedPath.addParentNode(rowNode.parent, [column]);\n }\n var cellId = _this.cellPositionUtils.createIdFromValues(currentRow.rowIndex, column, currentRow.rowPinned);\n cellsToFlash[cellId] = true;\n });\n dataRowIndex++;\n };\n this.iterateActiveRanges(false, rowCallback);\n };\n ClipboardService.prototype.pasteStartingFromFocusedCell = function (parsedData, cellsToFlash, updatedRowNodes, focusedCell, changedPath) {\n if (!focusedCell) {\n return;\n }\n var currentRow = { rowIndex: focusedCell.rowIndex, rowPinned: focusedCell.rowPinned };\n var columnsToPasteInto = this.columnController.getDisplayedColumnsStartingAt(focusedCell.column);\n var onlyOneValueToPaste = parsedData.length === 1 && parsedData[0].length === 1;\n if (onlyOneValueToPaste) {\n this.pasteSingleValue(parsedData, updatedRowNodes, cellsToFlash, changedPath);\n }\n else {\n this.pasteMultipleValues(parsedData, currentRow, updatedRowNodes, columnsToPasteInto, cellsToFlash, Constants.EXPORT_TYPE_CLIPBOARD, changedPath);\n }\n };\n ClipboardService.prototype.copyRangeDown = function () {\n var _this = this;\n if (!this.rangeController || this.rangeController.isEmpty()) {\n return;\n }\n var firstRowValues = [];\n var pasteOperation = function (cellsToFlash, updatedRowNodes, focusedCell, changedPath) {\n var rowCallback = function (currentRow, rowNode, columns, index, isLastRow) {\n // take reference of first row, this is the one we will be using to copy from\n if (!firstRowValues.length) {\n // two reasons for looping through columns\n columns.forEach(function (column) {\n // get the initial values to copy down\n var value = _this.valueService.getValue(column, rowNode);\n var processCellForClipboardFunc = _this.gridOptionsWrapper.getProcessCellForClipboardFunc();\n value = _this.userProcessCell(rowNode, column, value, processCellForClipboardFunc, Constants.EXPORT_TYPE_DRAG_COPY);\n firstRowValues.push(value);\n });\n }\n else {\n // otherwise we are not the first row, so copy\n updatedRowNodes.push(rowNode);\n columns.forEach(function (column, index) {\n if (!column.isCellEditable(rowNode)) {\n return;\n }\n var firstRowValue = firstRowValues[index];\n var processCellFromClipboardFunc = _this.gridOptionsWrapper.getProcessCellFromClipboardFunc();\n firstRowValue = _this.userProcessCell(rowNode, column, firstRowValue, processCellFromClipboardFunc, Constants.EXPORT_TYPE_DRAG_COPY);\n _this.valueService.setValue(rowNode, column, firstRowValue, Constants.SOURCE_PASTE);\n if (changedPath) {\n changedPath.addParentNode(rowNode.parent, [column]);\n }\n var cellId = _this.cellPositionUtils.createIdFromValues(currentRow.rowIndex, column, currentRow.rowPinned);\n cellsToFlash[cellId] = true;\n });\n }\n };\n _this.iterateActiveRanges(true, rowCallback);\n };\n this.doPasteOperation(pasteOperation);\n };\n ClipboardService.prototype.fireRowChanged = function (rowNodes) {\n var _this = this;\n if (!this.gridOptionsWrapper.isFullRowEdit()) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var event = {\n type: Events.EVENT_ROW_VALUE_CHANGED,\n node: rowNode,\n data: rowNode.data,\n rowIndex: rowNode.rowIndex,\n rowPinned: rowNode.rowPinned,\n context: _this.gridOptionsWrapper.getContext(),\n api: _this.gridOptionsWrapper.getApi(),\n columnApi: _this.gridOptionsWrapper.getColumnApi()\n };\n _this.eventService.dispatchEvent(event);\n });\n };\n ClipboardService.prototype.pasteMultipleValues = function (clipboardGridData, currentRow, updatedRowNodes, columnsToPasteInto, cellsToFlash, type, changedPath) {\n var _this = this;\n clipboardGridData.forEach(function (clipboardRowData) {\n // if we have come to end of rows in grid, then skip\n if (!currentRow) {\n return;\n }\n var rowNode = _this.rowPositionUtils.getRowNode(currentRow);\n if (rowNode) {\n updatedRowNodes.push(rowNode);\n clipboardRowData.forEach(function (value, index) {\n var column = columnsToPasteInto[index];\n _this.updateCellValue(rowNode, column, value, currentRow, cellsToFlash, type, changedPath);\n });\n // move to next row down for next set of values\n currentRow = _this.cellNavigationService.getRowBelow({ rowPinned: currentRow.rowPinned, rowIndex: currentRow.rowIndex });\n }\n });\n return currentRow;\n };\n ClipboardService.prototype.pasteSingleValue = function (parsedData, updatedRowNodes, cellsToFlash, changedPath) {\n var _this = this;\n var value = parsedData[0][0];\n var rowCallback = function (currentRow, rowNode, columns) {\n updatedRowNodes.push(rowNode);\n columns.forEach(function (column) {\n _this.updateCellValue(rowNode, column, value, currentRow, cellsToFlash, Constants.EXPORT_TYPE_CLIPBOARD, changedPath);\n });\n };\n this.iterateActiveRanges(false, rowCallback);\n };\n ClipboardService.prototype.updateCellValue = function (rowNode, column, value, currentRow, cellsToFlash, type, changedPath) {\n if (!rowNode ||\n !currentRow ||\n !column ||\n !column.isCellEditable ||\n column.isSuppressPaste(rowNode)) {\n return;\n }\n var processedValue = this.userProcessCell(rowNode, column, value, this.gridOptionsWrapper.getProcessCellFromClipboardFunc(), type);\n this.valueService.setValue(rowNode, column, processedValue, Constants.SOURCE_PASTE);\n var cellId = this.cellPositionUtils.createIdFromValues(currentRow.rowIndex, column, currentRow.rowPinned);\n cellsToFlash[cellId] = true;\n if (changedPath) {\n changedPath.addParentNode(rowNode.parent, [column]);\n }\n };\n ClipboardService.prototype.copyToClipboard = function (includeHeaders) {\n this.logger.log(\"copyToClipboard: includeHeaders = \" + includeHeaders);\n // don't override 'includeHeaders' if it has been explicitly set to 'false'\n if (typeof includeHeaders === 'undefined') {\n includeHeaders = this.gridOptionsWrapper.isCopyHeadersToClipboard();\n }\n var selectedRowsToCopy = !this.selectionController.isEmpty()\n && !this.gridOptionsWrapper.isSuppressCopyRowsToClipboard();\n // default is copy range if exists, otherwise rows\n if (this.rangeController && this.rangeController.isMoreThanOneCell()) {\n this.copySelectedRangeToClipboard(includeHeaders);\n }\n else if (selectedRowsToCopy) {\n // otherwise copy selected rows if they exist\n this.copySelectedRowsToClipboard(includeHeaders);\n }\n else if (this.focusedCellController.isAnyCellFocused()) {\n // if there is a focused cell, copy this\n this.copyFocusedCellToClipboard(includeHeaders);\n }\n else {\n // lastly if no focused cell, try range again. this can happen\n // if use has cellSelection turned off (so no focused cell)\n // but has a cell clicked, so there exists a cell range\n // of exactly one cell (hence the first 'if' above didn't\n // get executed).\n this.copySelectedRangeToClipboard(includeHeaders);\n }\n };\n ClipboardService.prototype.iterateActiveRanges = function (onlyFirst, rowCallback, columnCallback) {\n var _this = this;\n if (!this.rangeController || this.rangeController.isEmpty()) {\n return;\n }\n var cellRanges = this.rangeController.getCellRanges();\n if (onlyFirst) {\n var range = cellRanges[0];\n this.iterateActiveRange(range, rowCallback, columnCallback, true);\n }\n else {\n cellRanges.forEach(function (range, idx) { return _this.iterateActiveRange(range, rowCallback, columnCallback, idx === cellRanges.length - 1); });\n }\n };\n ClipboardService.prototype.iterateActiveRange = function (range, rowCallback, columnCallback, isLastRange) {\n if (!this.rangeController) {\n return;\n }\n var currentRow = this.rangeController.getRangeStartRow(range);\n var lastRow = this.rangeController.getRangeEndRow(range);\n if (columnCallback && _.exists(columnCallback) && range.columns) {\n columnCallback(range.columns);\n }\n var rangeIndex = 0;\n var isLastRow = false;\n // the currentRow could be missing if the user sets the active range manually, and sets a range\n // that is outside of the grid (eg. sets range rows 0 to 100, but grid has only 20 rows).\n while (!isLastRow && !_.missing(currentRow) && currentRow) {\n var rowNode = this.rowPositionUtils.getRowNode(currentRow);\n isLastRow = this.rowPositionUtils.sameRow(currentRow, lastRow);\n rowCallback(currentRow, rowNode, range.columns, rangeIndex++, isLastRow && isLastRange);\n currentRow = this.cellNavigationService.getRowBelow(currentRow);\n }\n };\n ClipboardService.prototype.copySelectedRangeToClipboard = function (includeHeaders) {\n var _this = this;\n if (includeHeaders === void 0) { includeHeaders = false; }\n if (!this.rangeController || this.rangeController.isEmpty()) {\n return;\n }\n var deliminator = this.gridOptionsWrapper.getClipboardDeliminator();\n var data = '';\n var cellsToFlash = {};\n // adds columns to the data\n var columnCallback = function (columns) {\n if (!includeHeaders) {\n return;\n }\n columns.forEach(function (column, index) {\n var value = _this.columnController.getDisplayNameForColumn(column, 'clipboard', true);\n var processedValue = _this.userProcessHeader(column, value, _this.gridOptionsWrapper.getProcessHeaderForClipboardFunc());\n if (index != 0) {\n data += deliminator;\n }\n if (_.exists(processedValue)) {\n data += processedValue;\n }\n });\n data += '\\r\\n';\n };\n // adds cell values to the data\n var rowCallback = function (currentRow, rowNode, columns, index, isLastRow) {\n columns.forEach(function (column, index) {\n var value = _this.valueService.getValue(column, rowNode);\n var processedValue = _this.userProcessCell(rowNode, column, value, _this.gridOptionsWrapper.getProcessCellForClipboardFunc(), Constants.EXPORT_TYPE_CLIPBOARD);\n if (index != 0) {\n data += deliminator;\n }\n if (_.exists(processedValue)) {\n data += processedValue;\n }\n var cellId = _this.cellPositionUtils.createIdFromValues(currentRow.rowIndex, column, currentRow.rowPinned);\n cellsToFlash[cellId] = true;\n });\n if (!isLastRow) {\n data += '\\r\\n';\n }\n };\n this.iterateActiveRanges(false, rowCallback, columnCallback);\n this.copyDataToClipboard(data);\n this.dispatchFlashCells(cellsToFlash);\n };\n ClipboardService.prototype.copyFocusedCellToClipboard = function (includeHeaders) {\n var _a;\n if (includeHeaders === void 0) { includeHeaders = false; }\n var focusedCell = this.focusedCellController.getFocusedCell();\n if (_.missing(focusedCell)) {\n return;\n }\n var cellId = this.cellPositionUtils.createId(focusedCell);\n var currentRow = { rowPinned: focusedCell.rowPinned, rowIndex: focusedCell.rowIndex };\n var rowNode = this.rowPositionUtils.getRowNode(currentRow);\n var column = focusedCell.column;\n var value = this.valueService.getValue(column, rowNode);\n var processedValue = this.userProcessCell(rowNode, column, value, this.gridOptionsWrapper.getProcessCellForClipboardFunc(), Constants.EXPORT_TYPE_CLIPBOARD);\n if (_.missing(processedValue)) {\n // copy the new line character to clipboard instead of an empty string, as the 'execCommand' will ignore it.\n // this behaviour is consistent with how Excel works!\n processedValue = '\\t';\n }\n var data = '';\n if (includeHeaders) {\n var headerValue = this.columnController.getDisplayNameForColumn(column, 'clipboard', true);\n data = this.userProcessHeader(column, headerValue, this.gridOptionsWrapper.getProcessHeaderForClipboardFunc());\n data += '\\r\\n';\n }\n data += processedValue.toString();\n this.copyDataToClipboard(data);\n this.dispatchFlashCells((_a = {}, _a[cellId] = true, _a));\n };\n ClipboardService.prototype.dispatchFlashCells = function (cellsToFlash) {\n var _this = this;\n window.setTimeout(function () {\n var event = {\n type: Events.EVENT_FLASH_CELLS,\n cells: cellsToFlash,\n api: _this.gridApi,\n columnApi: _this.columnApi\n };\n _this.eventService.dispatchEvent(event);\n }, 0);\n };\n ClipboardService.prototype.userProcessCell = function (rowNode, column, value, func, type) {\n if (func) {\n var params = {\n column: column,\n node: rowNode,\n value: value,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n type: type\n };\n return func(params);\n }\n return value;\n };\n ClipboardService.prototype.userProcessHeader = function (column, value, func) {\n if (func) {\n var params = {\n column: column,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n return func(params);\n }\n return value;\n };\n ClipboardService.prototype.copySelectedRowsToClipboard = function (includeHeaders, columnKeys) {\n if (includeHeaders === void 0) { includeHeaders = false; }\n var skipHeader = !includeHeaders;\n var deliminator = this.gridOptionsWrapper.getClipboardDeliminator();\n var params = {\n columnKeys: columnKeys,\n skipHeader: skipHeader,\n skipFooters: true,\n suppressQuotes: true,\n columnSeparator: deliminator,\n onlySelected: true,\n processCellCallback: this.gridOptionsWrapper.getProcessCellForClipboardFunc(),\n processHeaderCallback: this.gridOptionsWrapper.getProcessHeaderForClipboardFunc()\n };\n var data = this.csvCreator.getDataAsCsv(params);\n this.copyDataToClipboard(data);\n };\n ClipboardService.prototype.copyDataToClipboard = function (data) {\n var userProvidedFunc = this.gridOptionsWrapper.getSendToClipboardFunc();\n if (userProvidedFunc && _.exists(userProvidedFunc)) {\n var params = { data: data };\n userProvidedFunc(params);\n }\n else {\n this.executeOnTempElement(function (element) {\n element.value = data;\n element.select();\n element.focus();\n var result = document.execCommand('copy');\n if (!result) {\n console.warn('ag-grid: Browser did not allow document.execCommand(\\'copy\\'). Ensure ' +\n 'api.copySelectedRowsToClipboard() is invoked via a user event, i.e. button click, otherwise ' +\n 'the browser will prevent it for security reasons.');\n }\n });\n }\n };\n ClipboardService.prototype.executeOnTempElement = function (callbackNow, callbackAfter) {\n var eTempInput = document.createElement('textarea');\n eTempInput.style.width = '1px';\n eTempInput.style.height = '1px';\n eTempInput.style.top = '0px';\n eTempInput.style.left = '0px';\n eTempInput.style.position = 'absolute';\n eTempInput.style.opacity = '0.0';\n var guiRoot = this.gridCore.getRootGui();\n guiRoot.appendChild(eTempInput);\n try {\n callbackNow(eTempInput);\n }\n catch (err) {\n console.warn('ag-grid: Browser does not support document.execCommand(\\'copy\\') for clipboard operations');\n }\n //It needs 100 otherwise OS X seemed to not always be able to paste... Go figure...\n if (callbackAfter) {\n window.setTimeout(function () {\n callbackAfter(eTempInput);\n guiRoot.removeChild(eTempInput);\n }, 100);\n }\n else {\n guiRoot.removeChild(eTempInput);\n }\n };\n // From http://stackoverflow.com/questions/1293147/javascript-code-to-parse-csv-data\n // This will parse a delimited string into an array of arrays.\n // Note: this code fixes an issue with the example posted on stack overflow where it doesn't correctly handle\n // empty values in the first cell.\n ClipboardService.prototype.dataToArray = function (strData) {\n var delimiter = this.gridOptionsWrapper.getClipboardDeliminator();\n // Create a regular expression to parse the CSV values.\n var objPattern = new RegExp((\n // Delimiters.\n '(\\\\' + delimiter + '|\\\\r?\\\\n|\\\\r|^)' +\n // Quoted fields.\n '(?:\"([^\\\"]*(?:\"\"[^\\\"]*)*)\"|' +\n // Standard fields.\n '([^\\\\' + delimiter + '\\\\r\\\\n]*))'), \"gi\");\n // Create an array to hold our data. Give the array\n // a default empty first row.\n var arrData = [[]];\n // Create an array to hold our individual pattern matching groups.\n var arrMatches;\n // Required for handling edge case on first row copy\n var atFirstRow = true;\n // Keep looping over the regular expression matches\n // until we can no longer find a match.\n while (arrMatches = objPattern.exec(strData)) {\n // Get the delimiter that was found.\n var strMatchedDelimiter = arrMatches[1];\n // Handles case when first row is an empty cell, insert an empty string before delimiter\n if ((atFirstRow && strMatchedDelimiter) || !arrMatches.index && arrMatches[0].charAt(0) === delimiter) {\n arrData[0].push('');\n }\n // Check to see if the given delimiter has a length\n // (is not the start of string) and if it matches\n // field delimiter. If id does not, then we know\n // that this delimiter is a row delimiter.\n if (strMatchedDelimiter.length && strMatchedDelimiter !== delimiter) {\n // Since we have reached a new row of data,\n // add an empty row to our data array.\n arrData.push([]);\n }\n var strMatchedValue = void 0;\n // Now that we have our delimiter out of the way,\n // let's check to see which kind of value we\n // captured (quoted or unquoted).\n if (arrMatches[2]) {\n // We found a quoted value. When we capture\n // this value, unescaped any double quotes.\n strMatchedValue = arrMatches[2].replace(new RegExp('\"\"', 'g'), '\"');\n }\n else {\n // We found a non-quoted value.\n strMatchedValue = arrMatches[3];\n }\n // Now that we have our value string, let's add\n // it to the data array.\n var lastItem = _.last(arrData);\n if (lastItem) {\n lastItem.push(strMatchedValue);\n }\n atFirstRow = false;\n }\n // Return the parsed data.\n return arrData;\n };\n ClipboardService.prototype.rangeSize = function () {\n var ranges = this.rangeController.getCellRanges();\n var startRangeIndex;\n var endRangeIndex;\n if (ranges.length > 0) {\n startRangeIndex = 0;\n endRangeIndex = 0;\n }\n else {\n startRangeIndex = this.rangeController.getRangeStartRow(ranges[0]).rowIndex;\n endRangeIndex = this.rangeController.getRangeEndRow(ranges[0]).rowIndex;\n }\n return startRangeIndex - endRangeIndex + 1;\n };\n __decorate([\n Autowired('csvCreator')\n ], ClipboardService.prototype, \"csvCreator\", void 0);\n __decorate([\n Autowired('loggerFactory')\n ], ClipboardService.prototype, \"loggerFactory\", void 0);\n __decorate([\n Autowired('selectionController')\n ], ClipboardService.prototype, \"selectionController\", void 0);\n __decorate([\n Optional('rangeController')\n ], ClipboardService.prototype, \"rangeController\", void 0);\n __decorate([\n Autowired('rowModel')\n ], ClipboardService.prototype, \"rowModel\", void 0);\n __decorate([\n Autowired('valueService')\n ], ClipboardService.prototype, \"valueService\", void 0);\n __decorate([\n Autowired('focusedCellController')\n ], ClipboardService.prototype, \"focusedCellController\", void 0);\n __decorate([\n Autowired('rowRenderer')\n ], ClipboardService.prototype, \"rowRenderer\", void 0);\n __decorate([\n Autowired('columnController')\n ], ClipboardService.prototype, \"columnController\", void 0);\n __decorate([\n Autowired('eventService')\n ], ClipboardService.prototype, \"eventService\", void 0);\n __decorate([\n Autowired('cellNavigationService')\n ], ClipboardService.prototype, \"cellNavigationService\", void 0);\n __decorate([\n Autowired('gridOptionsWrapper')\n ], ClipboardService.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n Autowired('columnApi')\n ], ClipboardService.prototype, \"columnApi\", void 0);\n __decorate([\n Autowired('gridApi')\n ], ClipboardService.prototype, \"gridApi\", void 0);\n __decorate([\n Autowired('cellPositionUtils')\n ], ClipboardService.prototype, \"cellPositionUtils\", void 0);\n __decorate([\n Autowired('rowPositionUtils')\n ], ClipboardService.prototype, \"rowPositionUtils\", void 0);\n __decorate([\n PostConstruct\n ], ClipboardService.prototype, \"init\", null);\n ClipboardService = __decorate([\n Bean('clipboardService')\n ], ClipboardService);\n return ClipboardService;\n}());\nexport { ClipboardService };\n","import { ModuleNames } from \"@ag-grid-community/core\";\nimport { EnterpriseCoreModule } from \"@ag-grid-enterprise/core\";\nimport { ClipboardService } from \"./clipboard/clipboardService\";\nexport var ClipboardModule = {\n moduleName: ModuleNames.ClipboardModule,\n beans: [ClipboardService],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n","export { ClipboardModule } from \"./clipboardModule\";\n"],"sourceRoot":""}