{"version":3,"sources":["../node_modules/devexpress-gantt/dist/dx-gantt.js"],"names":["factory","modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","__extends","__assign","__rest","__decorate","__param","__metadata","__awaiter","__generator","__createBinding","__exportStar","__values","__read","__spread","__spreadArrays","__spreadArray","__await","__asyncGenerator","__asyncDelegator","__asyncValues","__makeTemplateObject","__importStar","__importDefault","__classPrivateFieldGet","__classPrivateFieldSet","extendStatics","b","setPrototypeOf","__proto__","Array","TypeError","String","__","this","constructor","assign","arguments","length","apply","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","paramIndex","decorator","metadataKey","metadataValue","metadata","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","body","f","y","g","_","label","sent","trys","ops","verb","iterator","v","op","pop","push","k","k2","undefined","ar","error","concat","il","a","j","jl","to","from","asyncIterator","q","resume","fulfill","settle","shift","cooked","raw","__setModuleDefault","mod","default","receiver","privateMap","has","set","string_1","isDefined","boolToInt","boolToString","isNumber","obj","isString","isNonNullString","str","isEven","num","isOdd","numberToStringBin","minLength","StringUtils","padLeft","toString","numberToStringHex","DateTimeUtils","Time_1","TimeRange_1","common_1","DateRange_1","DayOfWeekMonthlyOccurrence_1","compareDates","date1","date2","getTime","areDatesEqual","getMaxDate","getMinDate","getDaysBetween","start","end","diff","Math","abs","ceil","msInDay","getWeeksBetween","daysBetween","numWeeks","floor","getDay","getMonthsDifference","dateDiff","getFullYear","getMonth","getYearsDifference","getDayNumber","date","getDateByDayNumber","Date","setHours","setMinutes","setSeconds","addDays","days","checkDayOfMonth","day","getDate","checkDayOfWeek","checkMonth","month","checkYear","year","checkDayOfWeekOccurrenceInMonth","dayOfWeek","occurrence","dayOfWeekInMonthDates","getSpecificDayOfWeekInMonthDates","DayOfWeekMonthlyOccurrence","Last","getFirstDayOfWeekInMonth","firstDayOfWeekInMonth","diffDays","res","specificDayOfWeekDate","getSpecificDayOfWeekInMonthDate","dates","checkValidDayInMonth","getNextMonth","inc","convertToDate","src","ms","parse","isNaN","convertTimeRangeToDateRange","timeRange","dayNumber","startT","hour","min","sec","msec","endT","DateRange","convertToTimeRanges","_this","map","x","convertToTimeRange","parseTimeRanges","TimeRange","convertToTime","parseTimeRange","Time","getTimeGromJsDate","parseTime","split","filter","parts","h","parseInt","getHours","getMinutes","getSeconds","getMilliseconds","caclTimeDifference","time1","time2","getTimeInMilleconds","areTimesEqual","getMaxTime","getMinTime","getLastTimeOfDay","browser_1","math_1","DomUtils","clearInnerHtml","element","firstChild","removeChild","setStylePosition","style","point","left","MathUtils","round","top","setStyleSize","size","width","height","setStyleSizeAndPosition","rectangle","hideNode","node","parentNode","isHTMLElementNode","nodeType","Node","ELEMENT_NODE","isTextNode","TEXT_NODE","isElementNode","isHTMLTableRowElement","tagName","isItParent","parentElement","getParentByTagName","toUpperCase","getDocumentScrollTop","isScrollBodyIE","Browser","IE","getCurrentStyle","document","overflow","scrollTop","WebKitFamily","Edge","MacOSMobilePlatform","window","pageYOffset","documentElement","getDocumentScrollLeft","scrollLeft","currentStyle","defaultView","getComputedStyle","Firefox","frameElement","changes","curElement","display","setProperty","ownerDocument","srcObject","newObject","cloneObject","ch","offsetWidth","setFocus","focusCore","focus","activeElement","setTimeout","hasClassName","className","classNames","classList","contains","elementClassName","getAttribute","elementClasses","addClassName","setAttribute","removeClassName","updClassName","newClassName","replace","trim","toggleClassName","toggle","pxToInt","px","pxToNumber","pxToFloat","parseFloat","getAbsolutePositionY","getAbsolutePositionY_FF3","getBoundingClientRect","getAbsolutePositionY_IE","Version","Opera","curEl","isFirstCycle","cells","pos","getAbsoluteScrollOffset_OperaFF","offsetTop","offsetParent","getAbsolutePositionY_Opera","NetscapeFamily","borderTopWidth","getAbsolutePositionY_NS","getAbsolutePositionY_Other","getAbsolutePositionX","getAbsolutePositionX_FF3","getAbsolutePositionX_IE","offsetLeft","getAbsolutePositionX_Opera","borderLeftWidth","getAbsolutePositionX_NS","getAbsolutePositionX_Other","isInteractiveControl","getClearClientHeight","offsetHeight","getTopBottomPaddings","getVerticalBordersWidth","paddingTop","paddingBottom","MajorVersion","borderTopStyle","borderBottomStyle","borderBottomWidth","getNodes","parent","predicate","collection","all","getElementsByTagName","getChildNodes","childNodes","getNodesByClassName","querySelectorAll","children","result_1","forEach","elem","getChildNodesByClassName","nodeList","nodeListToArray","getVerticalScrollBarWidth","verticalScrollBarWidth","container","createElement","cssText","appendChild","child","widthWithoutScrollBar","widthWithScrollBar","clientWidth","getHorizontalBordersWidth","borderLeftStyle","borderRightStyle","borderRightWidth","getFontFamiliesFromCssString","cssString","fam","getInnerText","Safari","html2PlainTextFilter","innerHTML","innerText","textContent","parseFunction","indexOfPx","substr","isX","position","Point","zero","fromNumber","isZero","JSON","stringify","copyFrom","clone","equals","offset","offsetX","offsetY","offsetByPoint","multiply","multiplierX","multiplierY","negative","applyConverter","converter","plus","minus","xComparer","yComparer","IdentUserAgent","userAgent","ignoreDocumentMode","browserTypesOrderedList","defaultVersions","Chrome","Mozilla","Netscape","toLowerCase","indentPlatformMajorVersion","platformIdentStrings","optVersion","patterns","Opera10","browserType","version","browserTypeCandidate","matches","RegExp","exec","index","GetBrowserVersion","getIECompatibleVersionString","browserVersionDetected","platform","minOccurenceIndex","Number","MAX_VALUE","identStr","importantIdent","occurenceIndex","match","isSamsungAndroidDevice","getVersionFromTrident","documentMode","max","fillUserAgentInfo","tridentPattern","ieCompatibleVersionString","getVersionFromMatches","versionFromTrident","compatible","isTouchEnabled","navigator","type","WindowsPlatform","MacOSPlatform","AndroidMobilePlatform","WindowsPhonePlatform","HardwareAcceleration","WebKitTouchUI","isIETouchUI","UserAgent","MSTouchUI","maxTouchPoints","TouchUI","MobileUI","AndroidDefaultBrowser","AndroidChromeBrowser","SamsungAndroidDevice","isARMArchitecture","VirtualKeyboardSupported","fillDocumentElementBrowserTypeClassNames","PlaformMajorVersion","versionStr","documentElementClassName","browserTypeslist","Info","getUserAgent","_foo","dom_1","touch_1","EvtUtils","preventEvent","evt","preventDefault","returnValue","getEventSource","srcElement","getEventSourceByPosition","elementFromPoint","getEventX","getEventY","getMouseWheelEventName","isLeftButtonPressed","TouchUtils","isTouchEvent","event","button","buttons","which","touchMouseMoveEventName","preventEventAndBubble","stopPropagation","cancelBubble","clientEventRequiresDocScrollCorrection","isSafariVerLess3","isMacOSMobileVerLess51","clientX","clientY","getWheelDelta","ret","detail","wheelDelta","deltaY","SimpleCommandState","CommandBase","control","modelManipulator","configurable","history","validationController","_state","getState","execute","parameters","_i","state","enabled","executed","executeInternal","barManager","updateItemsState","isEnabled","settings","editing","Error","visible","TaskAreaManager","MouseEventSource","point_1","evt_1","GridLayoutCalculator_1","ganttView","time","touchTime","eventManager","initMouseEvents","initTouchEvents","initMouseEventHandlers","onMouseClickHandler","onTaskAreaClick","onMouseDblClickHandler","onTaskAreaDblClick","onScrollHandler","updateView","onContextMenuHandler","onContextMenu","onMouseWheelHandler","onMouseWheel","onMouseDownHandler","onMouseDown","onMouseMoveHandler","onDocumentMouseMove","onMouseUpHandler","onDocumentMouseUp","onKeyDownHandler","onDocumentKeyDown","initTouchEventHandlers","onTouchStartHandler","onTouchStart","onTouchEndHandler","onTouchEnd","onTouchMoveHandler","onTouchMove","onPointerDownHandler","onPointerUpHandler","onPointerMoveHandler","taskArea","addEventListener","detachMouseEvents","removeEventListener","add","MS_POINTER_ACTIVE_CLASS","detachTouchEvents","attachEventsOnTask","taskElement","onMouseEnterHandler","onTaskElementHover","detachEventsOnTask","detachEvents","preventSelect","isFocus","allowSelectTask","isConnectorLine","changeTaskSelection","getClickedTaskIndex","onMouseUp","onKeyDown","onMouseMove","clickedItem","viewModel","items","now","touches","DBLCLICK_INTERVAL","onTaskDblClick","task","id","commandManager","showTaskEditDialog","onTaskClick","getDependencyKeyFromSource","source","convertInternalToPublicKey","isDependency","getClickedTaskKey","ganttOwner","onGanttViewContextMenu","info","showPopupMenu","hoveredTaskIndex","taskEditController","show","showTaskInfo","relativeY","tickSize","clickedTask","changeGanttTaskSelection","clickedTaskIndex","GridLayoutCalculator","CLASSNAMES","CONNECTOR_HORIZONTAL","CONNECTOR_VERTICAL","equal","DataObject","internalId","generateGuid","assignFromObject","sourceObj","Dependency","DependencyType","tslib_1","DataObject_1","_super","predecessorId","successorId","SS","SF","parseType","FS","FF","CompositionHistoryItem","HistoryItem","setModelManipulator","historyItems","redo","item","undo","historyItem","undoItemsQuery","CollectionBase","Utils_1","_items","_isGanttCollection","getItemById","_addItem","addRange","range","remove","_removeItems","clear","_invertedItems","count","splice","slice","getItem","_a","_createInvertedItems","invertedItems","getItemByPublicId","val","sourceCollection","importFromObject","importFromArray","createItemFromObjectAndAdd","createItem","values","importFromJSON","json","GanttJsonUtils","parseJson","TaskTitlePosition","Position","ViewType","onEventAttachingToDocument","eventName","func","isTouchEventName","documentTouchHandlers","documentEventAttachingAllowed","changedTouches","pageX","pageY","touchMouseDownEventName","PointerEvent","touchMouseUpEventName","msTouchDraggableClassName","RecurrenceBase","DayOfWeek_1","Month_1","DateTimeUtils_1","RecurrenceFactory_1","interval","occurrenceCount","_start","_end","_interval","_occurrenceCount","_dayOfWeek","_day","_dayOfWeekOccurrence","_month","_calculateByDayOfWeek","dayOfWeekInternal","RecurrenceFactory","getEnumValue","DayOfWeek","dayInternal","dayOfWeekOccurrence","dayOfWeekOccurrenceInternal","monthInternal","Month","calculateByDayOfWeek","calculatePoints","calculatePointsByOccurrenceCount","calculatePointsByDateRange","points","getFirstPoint","isRecurrencePoint","getNextPoint","isDateInRange","checkDate","useIntervalInCalc","checkInterval","calculatePointByInterval","calculateNearestPoint","getSpecDayInMonth","Sunday","Saturday","First","January","December","size_1","Enums_1","GridElementInfo_1","Dependency_1","Settings_1","tileToDependencyMap","tileToNoWorkingIntervalsMap","minLineLength","resourceMaxWidth","minTaskWidth","setSettings","visibleTaskAreaSize","elementSizeValues","viewType","scrollBarHeight","verticalTickCount","itemCount","taskHeight","parentTaskHeight","milestoneWidth","scaleHeight","scaleItemHeight","arrowSize","Size","connectorArrowWidth","lineThickness","connectorLineThickness","minConnectorSpaceFromTask","tickTimeSpan","DateUtils","getTickTimeSpan","horizontalTickCount","getTotalTickCount","createTileToConnectorLinesMap","createTileToNonWorkingIntervalsMap","getTaskAreaBorderInfo","isVertical","sizeValue","getVerticalGridLineHeight","getGridBorderInfo","getScaleBorderInfo","scaleType","getScaleItemColSpan","GridElementInfo","setPosition","getGridBorderPosition","setSize","getGridBorderSize","posValue","getScaleElementInfo","getScaleItemPosition","getScaleItemSize","getScaleItemClassName","getRenderedNoWorkingIntervals","scaleItemInfo","noWorkingIntervals","valueOf","isScaleItemInsideNoWorkingInterval","scaleItemLeft","scaleItemRight","noWorkingIntervalLeft","noWorkingIntervalRight","TenMinutes","Hours","SixHours","Days","Weeks","Months","Quarter","Years","getTaskWrapperElementInfo","getTaskWrapperClassName","getTaskWrapperPoint","getTask","isMilestone","selected","getTaskHeight","getPosByDate","height_1","getTaskElementInfo","textOutsideTask","autoCalculatedParent","parentAutoCalc","taskHasChildrenByIndex","getTaskWidth","getTaskClassName","color","backgroundColor","borderLeftColor","borderRightColor","borderTopColor","taskWidth","smallTaskWidth","getAutoCalcParentTaskClassName","progress","getTaskPoint","taskWrapperTopPadding","getTaskSize","getWidthByDateRange","isTaskToCalculateByChildren","getTaskProgressElementInfo","getTaskProgressSize","getTaskProgressWidth","getTaskTextElementInfo","isInsideText","getTaskTextElementClassName","taskX","outsideTaskTextDefaultWidth","margins","getTaskResourcesWrapperElementInfo","getTaskResourceElementInfo","getSelectionElementInfo","getRowElementInfo","getSelectionPosition","getSelectionSize","getHighlightRowInfo","getNoWorkingIntervalInfo","noWorkingDateRange","getNoWorkingIntervalPosition","getNoWorkingIntervalSize","intervalStart","noWorkingInterval","getConnectorInfo","predessorIndex","successorIndex","connectorType","connectorPoints","getConnectorPoints","getConnectorLineInfo","getArrowInfo","startPoint","endPoint","isEdgeLine","getConnectorClassName","getConnectorPosition","getConnectorSize","sizeCorrection","connectorLines","lineInfo","findArrowLineInfo","arrowPosition","getArrowPosition","getArrowClassName","getArrowPoint","prevLastPoint","lastPoint","Top","Bottom","Left","Right","getArrowX","getArrowY","getRangeTickCount","getRangeTickCountInMonthsViewType","getRangeTickCountInQuarterViewType","startMonthStartDate","endMonthStartDate","getOffsetInMonths","msPerMonth","startQuarterStartDate","endQuarterStartDate","getOffsetInQuarters","getDateByPos","preResult","monthFromStart","setMonth","setTime","getFinishToStartConnectorPoints","getStartToFinishConnectorPoints","getStartToStartConnectorPoints","getFinishToFinishConnectorPoints","getConnectorPoints_FromTopTaskRightSide_ToBottomTaskTopSide","getConnectorPoints_FromTopTaskRightSide_ToBottomTaskLeftSide","getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskRightSide","getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskRightSide","getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide","getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide","getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskTopSide","getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskLeftSide","topTaskIndex","bottomTaskIndex","shiftEndPointToRight","topTaskPoint","bottomTaskPoint","topTaskRightCenter","getTaskRightCenter","isBottomMilestone","bottomTaskTopCenter","getTaskTopCenter","endPointIndent","bottomTaskRightCenter","shiftToTop","topTaskBottomCenter","getTaskBottomCenter","bottomTaskLeftCenter","getTaskLeftCenter","shiftStartPointToRight","isTopMilestone","startPointIndent","topTaskLeftCenter","taskPoint","getTaskEdgeCorrection","sqrt","getRenderedRowColumnIndices","scrollPos","visibleAreaSizeValue","tickSizeValue","tickCount","firstVisibleIndex","getFirstVisibleGridCellIndex","lastVisibleIndex","getLastVisibleGridCellIndex","getRenderedScaleItemIndices","renderedColIndices","scaleItemColSpan","dependencies","createConnecotInfo","visibleIndex","updateTileToConnectorLinesMap","dependencyId","attr","dependency","dependencyInfo","predecessor","connectorInfo","connectorLine","addElementInfoToTileMap","getAdjustedNoWorkingInterval","noWorkingIntervalInfo","modelInterval","getNearestScaleTickDate","isVerticalTile","infoPointValue","infoSizeValue","tileSizeValue","firstTileIndex","lastTileIndex","getRenderedConnectorLines","getElementsInRenderedTiles","getRenderedStripLines","stripLines","showCurrentTime","StripLine","currentTimeTitle","currentTimeCssClass","stripLine","renderedStart","isCurrent","cssClass","title","firstVisibleTileIndex","lastVisibleTileIndex","TaskPropertyManipulator","TaskPropertiesManipulator","BaseManipulator","HistoryItemState_1","dispatcher","getErrorCallback","getDataUpdateErrorCallback","TaskTitleManipulator","description","TaskDescriptionManipulator","TaskProgressManipulator","TaskStartDateManipulator","TaskEndDateManipulator","move","TaskMoveManipulator","TaskColorManipulator","setValue","newValue","tasks","oldState","HistoryItemState","getPropertyValue","setPropertyValue","viewItem","findItem","owner","recreateTaskElement","restoreValue","notifyTaskTitleChanged","notifyTaskDescriptionChanged","notifyTaskProgressChanged","notifyTaskStartChanged","notifyTaskEndChanged","notifyTaskColorChanged","HandlerStateBase","handler","finish","getRelativePos","absolutePos","taskAreaX","taskAreaY","BaseArguments","cancel","RemoveDependencyHistoryItem","InsertDependencyHistoryItem","HistoryItem_1","insertDependency","removeDependency","DeassignResourceHistoryItem","AssignResourceHistoryItem","RemoveResourceHistoryItem","CreateResourceHistoryItem","text","callback","createCallback","resource","resourceId","properties","taskId","assignment","deassig","assignmentId","ConfirmationDialogParameters","ConfirmationDialog","ConfirmationType","DialogBase_1","applyParameters","_newParameters","oldParameters","beginTransaction","endTransaction","createParameters","options","getDialogName","DialogBase","message","DialogParametersBase","CommandBase_1","params","initParams","onBeforeDialogShow","showDialog","afterClosing","_oldParameters","TaskColorHistoryItem","TaskMoveHistoryItem","TaskEndHistoryItem","TaskStartHistoryItem","TaskProgressHistoryItem","TaskDescriptionHistoryItem","TaskTitleHistoryItem","TaskPropertiesHistoryItemBase","getPropertiesManipulator","ResourceCollection","CollectionBase_1","Resource_1","Resource","isAlpha","isDigit","stringHashCode","hash","strLen","charCodeAt","endsAt","template","strInd","tmplInd","strStartInd","startsAt","stringInLowerCase","stringInUpperCase","atLeastOneSymbolInUpperCase","char","getSymbolFromEnd","posFromEnd","trimChars","trimInternal","joinedChars","join","trimStart","trimEnd","getDecimalSeparator","toLocaleString","repeat","isNullOrEmpty","totalWidth","paddingChar","len","test","substring","empty","initByCommonAction","action","widthAdp","heightAdp","isEmpty","nonNegativeSize","multiplierW","multiplierH","conv","MouseHandlerStateBase","onMouseDoubleClick","_evt","MouseHandlerDragBaseState","currentPosition","selectDependency","onMouseUpInternal","switchToDefaultState","onMouseMoveInternal","_position","TouchHandlerDragBaseState","TouchHandlerStateBase_1","onTouchEndInternal","onTouchMoveInternal","TouchHandlerStateBase","ResourceUnassigningArguments","ResourceAssigningArguments","BaseArguments_1","list_1","digits","factor","powFactor","numberCloseTo","accuracy","restrictValue","minVal","maxVal","getRandomInt","random","ListUtils","initByCallback","ind","pow","somePrimes","ResourceAssignment","_hour","_min","_sec","_msec","_fullmsec","updateFullMilleconds","isTimeInRange","hasIntersect","concatWith","Daily_1","Weekly_1","Monthly_1","Yearly_1","createRecurrenceByType","Daily","Weekly","Monthly","Yearly","createRecurrenceFromObject","recurrence","RecurrenceBase_1","daysToAdd","ElementTextHelperCultureInfo","ElementTextHelper","getDaysInMonth","rangeStartTime","rangeEndTime","needCorrectDate","nearestLeftTickTime","getNearestLeftTickTime","nearestRightTickTime","getNextTickTime","currentTickTime","nextTickDate","adjustStartDateByViewType","firstDayOfWeek","adjustEndDateByViewType","roundStartDate","msPerHour","msPerDay","msPerWeek","msPerYear","data","getTimezoneOffsetDiff","data1","data2","getTimezoneOffset","ViewTypeToScaleMap","FiveYears","createViewTypeToScaleMap","cultureInfo","longestAbbrMonthName","longestMonthName","longestAbbrDayName","canvas","textMeasureContext","getContext","setFont","fontHolder","computedStyle","font","fontStyle","fontVariant","fontWeight","fontSize","lineHeight","fontFamily","startTime","modelItems","getScaleItemStartDate","setFullYear","getScaleStartDateCorrectedWithDST","timeZoneDiff","getScaleItemText","scaleItemStartDate","isViewTypeScale","getTenMinutesScaleItemText","getHoursScaleItemText","getDaysScaleItemText","getWeeksScaleItemText","getMonthsScaleItemText","getQuarterScaleItemText","getYearsScaleItemText","getFiveYearsScaleItemText","scaleItemDate","minutes","getThirtyMinutesScaleItemText","hours","hourDisplayText","getHourDisplayText","amPmText","getAmText","getPmText","getHoursScaleItemTextCore","getDayTotalText","weekLastDayDate","getWeeksScaleItemTextCore","monthNames","getMonthNames","yearDisplayText","getMonthsScaleItemTextCore","quarterNames","getQuarterNames","hasAmPm","displayDayName","useAbbrDayNames","useAbbrMonthNames","displayYear","getAbbrMonthNames","dayNames","getAbbrDayNames","getDayNames","dayNameDisplayText","monthName","getDayTotalTextCore","getTaskText","getTaskVisibility","getVisible","getScaleItemTextTemplate","getDayTextTemplate","getWeekTextTemplate","getLongestMonthName","getLongestAbbrDayName","getLongestAbbrMonthName","dayTextTemplate","dayName","dayValueString","yearValueString","firstDayOfWeekString","lastDayOfWeekString","getLongestText","texts","longestTextWidth","textWidth","getTextWidth","measureText","amText","pmText","abbrMonthNames","abbrDayNames","margins_1","Margins","assignToElement","assignPosition","assignSize","assignMargins","marginLeft","marginTop","right","marginRight","bottom","marginBottom","ValidationSettings","StripLineSettings","EditingSettings","Settings","taskTitlePosition","Inside","showResources","areHorizontalBordersEnabled","areVerticalBordersEnabled","areAlternateRowsEnabled","validation","taskTooltipContentTemplate","allowDependencyDelete","allowDependencyInsert","allowTaskDelete","allowTaskInsert","allowTaskUpdate","allowResourceDelete","allowResourceInsert","allowResourceUpdate","allowTaskResourceUpdate","currentTimeUpdateInterval","validateDependencies","autoUpdateParentTasks","enablePredecessorGap","TaskEditController","gantt","taskIndex","createElements","updateWrapInfo","wrapInfo","baseElement","TASK_EDIT_BOX","canUpdateTask","progressEdit","taskDateRange","hide","tooltip","posX","delay","showInfo","isAllowedToConnectTasks","isAnotherTask","successorViewItem","isChild","some","showDependencySuccessor","dependencySuccessorBaseElement","dependencySuccessorFrame","hideDependencySuccessor","processProgress","progressOffset","showProgress","confirmProgress","changeTaskProgressCommand","processEnd","positionX","startDate","gridLayoutCalculator","getCorrectedDate","showTime","confirmEnd","changeTaskEndCommand","processStart","endDate","confirmStart","changeTaskStartCommand","processMove","delta","raiseTaskMoving","onTaskMovingCallback","newStart","newEnd","calculator","newLeft","newWidth","confirmMove","taskMoveCommand","referenceDate","newDate","startDependency","dependencyLine","TASK_EDIT_DEPENDENCY_LINE","startPosition","processDependency","drawline","endDependency","createDependencyCommand","isDependencySelected","deleteSelectedDependency","removeDependencyCommand","baseFrame","TASK_EDIT_FRAME","TASK_EDIT_PROGRESS","dependencyFinish","TASK_EDIT_DEPENDENCY_RIGTH","TASK_EDIT_TOUCH","dependencyStart","TASK_EDIT_DEPENDENCY_LEFT","startEdit","TASK_EDIT_START","endEdit","TASK_EDIT_END","TASK_EDIT_BOX_SUCCESSOR","TASK_EDIT_FRAME_SUCCESSOR","dependencySuccessorStart","TASK_EDIT_SUCCESSOR_DEPENDENCY_RIGTH","dependencySuccessorFinish","TASK_EDIT_SUCCESSOR_DEPENDENCY_LEFT","TaskEditTooltip","elementTextHelper","attachEvents","onMouseLeaveHandler","temp","angle","atan","PI","transform","TASK_EDIT_PROGRESS_STATUS","setDefaultTooltip","defaultTooltip","TASK_EDIT_TOOLTIP_DEFAULT","titleWrapper","TASK_EDIT_TASK_TITLE","getTimeContent","progressElement","TASK_EDIT_PROGRESS_STATUS_TIME","progressTitle","progressValue","tooltipTemplateFunction","isTooltipShowing","destroyTemplate","showInfoFunc","timerId","autoHide","_b","_c","_d","TASK_EDIT_TOOLTIP_ARROW_AFTER","TASK_EDIT_TOOLTIP_ARROW_BEFORE","absolutePositionY","leftPosition","absoluteDistance","header","clientHeight","isShowingDown","topPosition","clearTimeout","timeElement","startEl","startTitle","startValue","endEl","endTitle","endValue","formatDate","getDateFormat","HandlerBase","TaskAreaManager_1","TaskEditController_1","switchState","initSource","classToSource","TaskArea","TaskEdit_Progress","TaskEdit_Start","TaskEdit_End","TaskEdit_Frame","TaskEdit_DependencyStart","TaskEdit_DependencyFinish","Successor_DependencyStart","Successor_DependencyFinish","MouseHandlerDependencyState","dependencyMap","MouseHandlerStateBase_1","sourceElement","relativePosStart","relativePosEnd","relativeTouchPos","isTouchNearby","relativePos","hoverTaskIndex","touchPos","elementPos","onDoubleTap","TaskEditDialogShowingArguments","TaskUpdatingArguments","TaskRemovingArguments","TaskInsertingArguments","parentId","fieldNames","newValues","createNewValues","_loop_1","fieldName","this_1","hiddenFields","readOnlyFields","RemoveTaskHistoryItem","CreateTaskHistoryItem","TaskDependencyHistoryItem_1","taskIds","pendingCallbacks","lockChangesProcessing","task_1","addTask","item_1","ConstraintViolationDialogParameters","ConstraintViolationDialogCommand","ConstraintViolationOption","newParameters","option","DoNothing","RemoveDependency","addAndRedo","validationError","KeepDependency","successorTask","predecessorTask","successorTaskTitle","predecessorTaskTitle","GanttView","GanttView_1","VisualModel_1","EtalonSizeValues_1","ModelManipulator_1","History_1","EventManager_1","TaskAreaContainer_1","ModelChangesDispatcher_1","CommandManager_1","BarManager_1","ValidationController_1","FullScreenModeHelper_1","TaskHistoryItem_1","ResourceHistoryItem_1","timeScaleAreas","horTaskAreaBorders","vertTaskAreaBorders","scaleBorders","scaleElements","taskElements","resourcesElements","selectionElements","hlRowElements","renderedRowIndices","renderedScaleItemIndices","invalidTaskDependencies","renderedConnectorLines","connectorLinesToElementsMap","noWorkingIntervalsToElementsMap","renderedNoWorkingIntervals","renderedStripLines","stripLinesMap","etalonSizeValues","EtalonSizeValues","scaleCount","currentZoom","maxZoom","stripLinesUpdaterId","currentSelectedTaskID","ValidationController","createMainElement","createHeader","calculateEtalonSizeValues","createTaskAreaContainer","loadOptionsFromGanttOwner","mainElement","setupHelpers","setSizeForTaskArea","createTimeScaleContainer","createTimeScaleAreas","CommandManager","BarManager","bars","EventManager","History","taskAreaManager","fullScreenModeHelper","FullScreenModeHelper","onWindowResizelHandler","onBrowserWindowResize","scrollLeftByViewType","initializeStripLinesUpdater","reset","timeScaleContainer","taskAreaContainer","getWidth","getHeight","getElement","getDateRange","modelStartDate","modelEndDate","getVisibleAreaTime","etalonElementsContainer","createEtalonElementsContainer","etalonElements","createEtalonElements","calculateEtalonSizeValuesCore","scaleItemWidths","getSmallTaskWidth","paddingLeft","getHeaderHeight","etalonPaddingLeft","indexOfRem","visibility","wrapper","milestoneWrapper","etalonElementClassNames","etalonElementInfo","parentWrapper","parentTask","zoomIn","leftPos","targetDate","updateTickSizeWidth","resetAndUpdate","setViewType","scrollToDate","zoomOut","adjustedStartDate","dataRange","onVisualModelChanged","setInterval","recreateStripLines","clearStripLinesUpdater","clearInterval","getGanttViewStartDate","reduce","getGanttViewEndDate","getTaskAreaWidth","getTaskAreaHeight","getVisibleTaskCount","createTimeScaleArea","timeScaleArea","unshift","createMonthsScale","createTaskArea","getExternalTaskAreaContainer","TaskAreaContainer","prepareTaskAreaContainer","currentDate","dayCount","nextDate","scaleItemElement","scaleBorderInfo","onBeginUpdateView","taskAreaContainerScrollLeft","processScroll","onGanttScroll","taskAreaContainerScrollTop","onEndUpdateView","taskAreaScrollTopKey","taskAreaScrollLeftKey","taskTextHeightKey","getTaskTextHeight","textElement","recreateTaskAreaBordersAndTaskElements","recreateConnectorLineElements","recreateNoWorkingIntervalElements","recreateScalesElements","newRenderedIndices","renderedIndices","recreateElements","removeTaskAreaBorderAndTaskElement","createTaskAreaBorderAndTaskElement","newRenderedNoWorkingIntervals","removeNoWorkingIntervalElement","createNoWorkingIntervalElement","newRenderedStripLines","removeElement","newRenderedConnectorLines","removeConnectorLineElement","createConnectorLineElement","recreateScaleElements","scaleIndex","removeScaleElementAndBorder","createScaleElementAndBorder","oldRenderedElementsInfo","newRenderedelementsInfo","removeAction","createAction","isVisible","removeTaskElement","createTaskElement","recreateConnectorLineElement","forceRender","infos","isRendered","allowTaskAreaBorders","isVerticalScroll","createTaskAreaBorder","removeTaskAreaBorder","getTaskAreaBordersDictionary","createScaleElement","createScaleBorder","scaleElement","createScaleElementCore","padding","dictionary","isHighlightRowElementAllowed","createHighlightRowElement","isValid","createTaskWrapperElement","Outside","createTaskTextElement","taskVisualElement","createTaskVisualElement","createTaskProgressElement","createResourcesWrapperElement","createResources","createTaskSelectionElement","taskDependencies","resourcesWrapperElementInfo","resources","createResourceElement","taskWrapperInfo","taskElementInfo","taskProgressInfo","taskTextInfo","taskTextElement","resourceElementInfo","selectionInfo","isExternal","hlRowInfo","calculateAutoViewType","diffInHours","changeTaskExpanded","publicId","expanded","getTaskByPublicId","expandTask","collapseTask","showTask","changeTaskVisibility","hideTask","unselectCurrentSelectedTask","unselectTask","getTaskSelected","autoPositioning","UpdateGanttViewType","setTaskTitlePosition","setShowResources","setFirstDayOfWeek","getRowHeight","tasksData","getGanttTasksData","ModelChangesDispatcher","modelChangesListener","getModelChangesListener","onModelChanged","ViewVisualModel","getGanttDependenciesData","getGanttResourcesData","getGanttResourceAssignmentsData","getGanttWorkTimeRules","ModelManipulator","updateRange","cleanMarkup","checkAndProcessModelChanges","changed","refreshTaskDataIfRequires","updateRowHeights","selectTask","changeTaskSelected","updateBarManager","selectTaskById","getTaskAreaContainer","setWidth","setHeight","setAllowSelection","setEditingSettings","setValidationSettings","setRowLinesVisible","setStripLines","deleteTask","removeTaskCommand","insertTask","parent_1","rootId","getRootTaskId","taskData","createTaskCommand","getLastInsertedTaskId","updateTask","updateTaskCommand","getTaskData","getTaskObjectForDataSource","successor","deleteDependency","internalKey","convertPublicToInternalKey","getDependencyData","getDependencyObjectForDataSource","insertResource","taskKeys","createResourceCommand","assignResourceToTask","deleteResource","removeResourceCommand","resourceKey","taskKey","resourceInternalKey","taskInternalKey","assignResourceCommand","unassignResourceFromTask","findAssignment","deassignResourceCommand","getResourceData","getResourceObjectForDataSource","getResourceAssignmentData","getResourceAssignmentObjectForDataSource","getTaskResources","model","getAssignedResources","getVisibleTaskKeys","getVisibleTasks","getVisibleDependencyKeys","getVisibleDependencies","getVisibleResourceKeys","getVisibleResources","getVisibleResourceAssignmentKeys","getVisibleResourceAssignments","getTasksExpandedState","applyTasksExpandedState","setTaskValue","manager","checkedNewValue","changeTaskTitleCommand","newProgress","createTaskItems","lastItem","getLastInsertedResource","getPrevTask","root","updateCreatedTaskIdAfterServerUpdate","getTaskIdByInternalId","isTaskHasChildren","requireFirstLoadParentAutoCalc","getRequireFirstLoadParentAutoCalc","updateOwnerInAutoParentMode","notifyParentDataRecalculated","getCurrentTaskData","getOwnerControlMainElement","getMainElement","adjustOwnerControl","adjustControl","isInFullScreenMode","adjustControlInFullScreenMode","applySettings","preventViewUpdate","ganttSettings","preventUpdate","currentHistoryItemInfo","getCurrentProcessingItemInfo","lock","rollBackAndRemove","unlock","setTaskTooltipContentTemplate","getFormattedDateText","getDefaultDateFormat","cachedPrefix","ResourceCollection_1","TaskCollection_1","DependencyCollection_1","ResourceAssignmentCollection_1","ViewVisualModelItem_1","ViewVisualModelDependencyInfo_1","WorkingTimeCalculator_1","ResourceAssignment_1","assignments","dateRange","workTimeRules","_fLockCount","TaskCollection","DependencyCollection","ResourceAssignmentCollection","_itemList","_viewItemList","_workTimeCalculator","WorkingTimeCalculator","updateModel","ViewVisualModelItem","createHierarchy","populateItemsForView","list","inverted","previous","recalculateParentRequired","parentItem","addChild","recalculateParents","duration","taskType","customFields","populateVisibleItems","updateVisibleItemDependencies","isRoot","getExpanded","visibleDependencies","getTasVisibleDependencies","setDependencies","ViewVisualModelDependencyInfo","beginUpdate","endUpdate","compareTaskOrder","taskModel","newTasks","newItems","oldItems","newTask","oldTask","saveTaskInternalIds","restoreTaskInternalIds","taskHasChildren","hasTasks","dataType","publicKey","getItemByInternalId","strKey","visibleTasksKeys","visibleResources","visibleAssignments","rootTaskId","calculateRootTaskId","json_1","JsonUtils","min_max_1","comparers_1","removeBy","shallowCopy","deepCopy","initByValue","numElements","initValue","initCallback","forEachOnInterval","reverseForEachOnInterval","reducedMap","startIndex","endIndex","newItem","indexBy","reverseIndexBy","elementBy","reverseElementBy","last","setLast","newVal","incLast","decLast","allOf2","equalsByReference","aLen","unique","cmp","finalizeObj","prevValue","sort","uniqueNumber","Comparers","number","NaN","forEach2","listA","listB","reverseForEach","reverseIndexOf","accumulate","initAccValue","acc","accumulateNumber","anyOf","unsafeAnyOf","currResult","reverseAnyOf","unsafeReverseAnyOf","anyOf2","allOf","allOfOnInterval","addListOnTail","resultList","addedList","joinLists","lists","accList","countIf","merge","shouldMerge","prevObj","getValue","minExtended","minElement","maxExtended","maxElement","minMax","minMaxExtended","MinMax","minValue","elemValue","ExtendedMin","maxValue","ExtendedMax","ExtendedMinMax","minByCmp","found","maxByCmp","minMaxByCmp","MinMaxNumber","string","stringIgnoreCase","Equals","simpleType","Task_1","Task","TaskType","assignCustomFields","getDuration","changeVisibility","changeSelection","GanttWorkingDayRuleCollection_1","DayWorkingTimeInfo_1","rules","_workingRules","WorkingDayRuleCollection","_workDayList","_calculationRange","calculateWorkDayList","clearList","processRule","sortList","rule","dayNum","dayInfo","isWorkDay","addWorkingIntervals","workTimeRanges","DayWorkingTimeInfo","d1","d2","calculateNoWorkTimeIntervals","getNoWorkTimeRangesFromDay","concatJointedRanges","_noWorkingIntervals","invalidate","WorkingTimeRule_1","WorkingTimeRule","recurrenceType","ranges","weeksFromStart","intervalCount","weeksToAdd","calcNextPointWithWeekCount","weekCount","MonthInfo_1","monthToAdd","MonthInfo","addMonths","months","nextMonth","yearInc","yearFromStart","newYear","intervals","_workingIntervals","rearrangeWorkingIntervals","concatWithIntersectedRanges","sortIntervals","getIntersectedIntervals","removeInterval","r1","r2","clearIntervals","starts","ends","_isWorkDay","Offsets","fromOffsets","offsets","fromSide","horizontal","vertical","normalize","multLeft","multRight","multTop","multBottom","DependencyManipulator_1","ResourcesManipulator_1","TaskManipulator_1","TaskManipulator","TaskDependencyManipulator","ResourcesManipulator","notifyDependencyInserted","getObjectForDataSource","notifyDependencyRemoved","TaskPropertiesManipulator_1","ResourcePropertiesManipulator_1","ResourcePropertiesManipulator","notifyResourceCreated","notifyResourceRemoved","resourceID","notifyResourceAssigned","notifyResourceUnassigned","resourceAssignment","ResourcePropertyManipulator","ResourceColorManipulator","stateValue","notifyResourceColorChanged","notifyTaskCreated","data_1","notifyTaskRemoved","HistoryItemInfo_1","currentIndex","currentProcessingItemInfo","transaction","transactionLevel","canUndo","activateItem","canRedo","transactionLength","addInternal","deleteOldItems","exceedItemsCount","MAX_HISTORY_ITEM_COUNT","isUndo","HistoryItemInfo","checkAndRemoveItem","MouseHandler_1","key_1","TouchHandler_1","mouseHandler","MouseHandler","touchHandler","TouchHandler","onMouseDblClick","code","getShortcutCode","ModifierKey","Ctrl","KeyCode","Key_z","Key_y","Delete","keyCode","KeyUtils","getEventKeyCode","modifiers","altKey","Alt","ctrlKey","shiftKey","Shift","metaKey","Meta","HandlerBase_1","MouseHandlerDefaultState_1","MouseHandlerMoveTaskState_1","MouseHandlerProgressTaskState_1","MouseHandlerTimestampTaskState_1","MouseHandlerDependencyState_1","MouseHandlerMoveTaskState","MouseHandlerProgressTaskState","MouseHandlerTimestampTaskState","MouseHandlerDefaultState","GanttMovingHelper","isInScrolling","ganttMovingHelper","startMoving","movingInfo","increase","calcMovingInfo","updateGanttAreaCursor","cancelMoving","updateScrollPosition","newEventX","newEventY","deltaX","eventX","eventY","dirX","dirY","maxDeltaX","maxRightDelta","maxLeftDelta","maxDeltaY","maxBottomDelta","maxTopDelta","newScrollLeft","newScrollTop","scrollWidth","scrollHeight","drag","cursor","relativePosition","encode_1","getKeyModifiers","isCtrlKey","isShiftKey","isAltKey","isMetaKey","getShortcutCodeByEvent","parseShortcutString","shortcutString","shcKeys","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","Enter","Home","End","Up","Down","PageUp","PageDown","Space","Tab","Backspace","ContextMenu","Esc","Insert","alert","EncodeUtils","decodeViaTextArea","encodeHtml","decodeHtml","prepareTextForRequest","prepareTextForCallBackRequest","html","textArea","TouchHandlerMoveTaskState_1","TouchHandlerDefaultState_1","TouchHandlerProgressTaskState_1","TouchHandlerTimestampTaskState_1","TouchHandlerDependencyState_1","TouchHandlerZoomState_1","TouchHandlerMoveTaskState","TouchHandlerProgressTaskState","TouchHandlerTimestampTaskState","TouchHandlerDependencyState","TouchHandlerZoomState","TouchHandlerDefaultState","popupTimer","info_1","getTaskIndex","TouchHandlerDragBaseState_1","HandlerStateBase_1","prevDistance","distance","getTouchDistance","getMiddleAbsPoint","pt0","pt1","getDistance","getMiddlePointByEvent","touch","getPoint","EventDispatcher_1","TaskArguments_1","AssignmentArguments_1","EventDispatcher","isLocked","notifyTaskCreating","args","raise","errorCallback","notifyTaskRemoving","taskID","notifyTaskUpdating","notifyTaskMoving","notifyTaskEditDialogShowing","notifyParentTaskUpdated","notifyDependencyInserting","notifyDependencyRemoving","dependencyID","notifyResourceCreating","notifyResourceRemoving","notifyResourceAssigning","notifyResourceUnassigning","assignmentID","fireResourceUnassigning","raiseTaskTitleUpdating","raiseTaskUpdating","raiseTaskDescriptionUpdating","raiseTaskProgressUpdating","raiseTaskColorUpdating","raiseTaskStartUpdating","raiseTaskEndUpdating","raiseTaskStartAndEndUpdating","oldValue","raiseTaskMultipleUpdating","fields","raiseTaskTaskEditDialogShowing","listeners","listener","hasEventListener","currentListener","funcName","TaskCommands_1","TaskPropertiesCommands_1","DependencyCommands_1","ResourceCommands_1","TaskEditDialog_1","ConstraintViolationDialog_1","ResourcesDialog_1","ClientCommand_1","HistoryCommands_1","ZoomCommands_1","FullScreenCommand_1","CollapseExpandCommands_1","ConfirmationDialog_1","ResourcePropertiesCommands_1","commands","createCommand","GanttClientCommand","CreateTask","CreateSubTask","createSubTaskCommand","RemoveTask","TaskInformation","TaskAddContextItem","TaskAddContextItemCommand","Undo","UndoCommand","Redo","RedoCommand","ZoomIn","ZoomInCommand","ZoomOut","ZoomOutCommand","FullScreen","ToggleFullScreenCommand","CollapseAll","CollapseAllCommand","ExpandAll","ExpandAllCommand","CreateTaskCommand","CreateSubTaskCommand","RemoveTaskCommand","TaskTitleCommand","TaskDescriptionCommand","TaskProgressCommand","TaskColorCommand","TaskStartCommand","TaskMoveCommand","TaskEndCommand","UpdateTaskCommand","CreateDependencyCommand","RemoveDependencyCommand","CreateResourceCommand","RemoveResourceCommand","AssignResourceCommand","DeassignResourceCommand","ResourceColorCommand","TaskEditDialogCommand","ResourcesDialogCommand","getCommand","commandId","command","TaskCommandBase","TaskPropertiesHistoryItem_1","isApiCall","updateParent","_parentAutoCalc","updateParentsIfRequired","selectedTask","referenceItem","referenceTask","selectedItem","confirmRequired","isUpdateParentTaskRequired","showConfirmationDialog","TaskDelete","removeTaskHistoryItem","childTasks","success","changedNewValues","needRecalculateParents","moveStartDependTasks","moveEndDependTasks","TaskPropertyCommandValidation","TaskPropertyCommandBase","newTitle","newDescription","validationErrors","validate","criticalErrors","critical","executeCore","showConstraintViolationDialog","oldStart","minStartTask","prev","curr","checkStartDependencies","oldEnd","maxEndTask","checkEndDependencies","oldDateRange","correctParentsOnChildMoving","startErrors","endErrors","DependencyCommandBase","DependencyArguments_1","DependencyInsertingArguments","DependencyDelete","DependencyRemovingArguments","ResourceCommandBase","ResourceArguments_1","ResourceInsertingArguments","ResourceRemovingArguments","removeResourceHistoryItem_1","TaskEditParameters","assigned","updateParents","param","showResourcesDialogCommand","showResourcesDialog","showTaskEditDialogCommand","enableEdit","isTaskEditEnabled","enableRangeEdit","isTaskRangeEditEnabled","ResourcesDialogParameters","resourcesForDelete","callBack","confirmationDialog","confirmationDialogParameters","ResourcesDelete","fullScreenTempVars","collapseAll","expandAll","ResourcePropertyCommandBase","ResourcePropertiesHistoryItem_1","ResourceColorHistoryItem","ResourcePropertiesHistoryItemBase","updateContextMenu","bar","isContextMenu","updateItemsList","commandKeys","getCommandKeys","updateBarItem","queryCommands","anyQuerySended","commandKeys_1","_loop_2","completeUpdate","commandKey","commandState","setItemVisible","setItemEnabled","setItemValue","ValidationError","lockPredecessorToSuccessor","dep","predecessorTaskId","predecessorPreviousEndDate","isAfterCorrectParents","isStartDependency","successorRangeBeforeMove","validTaskRange","predecessorEnd","correctMoving","moveRelatedTasks","predecessorPreviousStartDate","predecessorStart","deltaDate","calcStepCallback","totalDuration","childTask","updateParentsRangeByChild","manipulator","updateChildRangeByParent","changedTasks","childId","attr_1","_isInFullScreenMode","setFullScreenMode","setNormalMode","prepareFullScreenMode","AttrUtils","changeElementStyleAttribute","bodyMargin","margin","self","requestFullScreen","cancelFullScreen","restoreElementStyleAttribute","documentWidth","documentHeight","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","getFullScreenElement","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","exitFullscreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","isFinite","setElementAttribute","attrName","setStyleAttribute","getElementAttribute","getStyleAttribute","removeElementAttribute","removeAttribute","removeStyleAttribute","removeProperty","saveStyleAttributeInElement","savedAttrName","isExistsAttributeInElement","emptyObject","isAttributeExists","attrValue"],"mappings":";gGAQA,IAAiDA,IASxC,WACT,OAAiB,SAASC,GAEhB,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAJ,EAAQG,GAAUK,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBO,EAAIT,EAGxBE,EAAoBQ,EAAIT,EAGxBC,EAAoBS,EAAI,SAASP,EAASQ,EAAMC,GAC3CX,EAAoBY,EAAEV,EAASQ,IAClCG,OAAOC,eAAeZ,EAASQ,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEX,EAAoBiB,EAAI,SAASf,GACX,qBAAXgB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeZ,EAASgB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,KAQvDpB,EAAoBqB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQpB,EAAoBoB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAzB,EAAoBiB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOpB,EAAoBS,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRxB,EAAoB4B,EAAI,SAASzB,GAChC,IAAIQ,EAASR,GAAUA,EAAOoB,WAC7B,WAAwB,OAAOpB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBS,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRX,EAAoBY,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG9B,EAAoBiC,EAAI,GAIjBjC,EAAoBA,EAAoBkC,EAAI,IAnFtD,CAsFG,CAEH,SAAS/B,EAAQgC,EAAqBnC,GAE7C,aACAA,EAAoBiB,EAAEkB,GACSnC,EAAoBS,EAAE0B,EAAqB,aAAa,WAAa,OAAOC,KAC5EpC,EAAoBS,EAAE0B,EAAqB,YAAY,WAAa,OAAOE,KAC3ErC,EAAoBS,EAAE0B,EAAqB,UAAU,WAAa,OAAOG,KACzEtC,EAAoBS,EAAE0B,EAAqB,cAAc,WAAa,OAAOI,KAC7EvC,EAAoBS,EAAE0B,EAAqB,WAAW,WAAa,OAAOK,KAC1ExC,EAAoBS,EAAE0B,EAAqB,cAAc,WAAa,OAAOM,KAC7EzC,EAAoBS,EAAE0B,EAAqB,aAAa,WAAa,OAAOO,KAC5E1C,EAAoBS,EAAE0B,EAAqB,eAAe,WAAa,OAAOQ,KAC9E3C,EAAoBS,EAAE0B,EAAqB,mBAAmB,WAAa,OAAOS,KAClF5C,EAAoBS,EAAE0B,EAAqB,gBAAgB,WAAa,OAAOU,KAC/E7C,EAAoBS,EAAE0B,EAAqB,YAAY,WAAa,OAAOW,KAC3E9C,EAAoBS,EAAE0B,EAAqB,UAAU,WAAa,OAAOY,KACzE/C,EAAoBS,EAAE0B,EAAqB,YAAY,WAAa,OAAOa,KAC3EhD,EAAoBS,EAAE0B,EAAqB,kBAAkB,WAAa,OAAOc,KACjFjD,EAAoBS,EAAE0B,EAAqB,iBAAiB,WAAa,OAAOe,KAChFlD,EAAoBS,EAAE0B,EAAqB,WAAW,WAAa,OAAOgB,KAC1EnD,EAAoBS,EAAE0B,EAAqB,oBAAoB,WAAa,OAAOiB,KACnFpD,EAAoBS,EAAE0B,EAAqB,oBAAoB,WAAa,OAAOkB,KACnFrD,EAAoBS,EAAE0B,EAAqB,iBAAiB,WAAa,OAAOmB,KAChFtD,EAAoBS,EAAE0B,EAAqB,wBAAwB,WAAa,OAAOoB,KACvFvD,EAAoBS,EAAE0B,EAAqB,gBAAgB,WAAa,OAAOqB,KAC/ExD,EAAoBS,EAAE0B,EAAqB,mBAAmB,WAAa,OAAOsB,KAClFzD,EAAoBS,EAAE0B,EAAqB,0BAA0B,WAAa,OAAOuB,KACzF1D,EAAoBS,EAAE0B,EAAqB,0BAA0B,WAAa,OAAOwB,KAiBxH,IAAIC,EAAgB,SAASnD,EAAGoD,GAI5B,OAHAD,EAAgB/C,OAAOiD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUvD,EAAGoD,GAAKpD,EAAEsD,UAAYF,IACvE,SAAUpD,EAAGoD,GAAK,IAAK,IAAI5B,KAAK4B,EAAOhD,OAAOkB,UAAUC,eAAe1B,KAAKuD,EAAG5B,KAAIxB,EAAEwB,GAAK4B,EAAE5B,MAC3ExB,EAAGoD,IAG5B,SAASzB,EAAU3B,EAAGoD,GAClB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAII,UAAU,uBAAyBC,OAAOL,GAAK,iCAE7D,SAASM,IAAOC,KAAKC,YAAc5D,EADnCmD,EAAcnD,EAAGoD,GAEjBpD,EAAEsB,UAAkB,OAAN8B,EAAahD,OAAOY,OAAOoC,IAAMM,EAAGpC,UAAY8B,EAAE9B,UAAW,IAAIoC,GAGnF,IAAI9B,EAAW,WAQX,OAPAA,EAAWxB,OAAOyD,QAAU,SAAkBjD,GAC1C,IAAK,IAAIa,EAAG9B,EAAI,EAAGwB,EAAI2C,UAAUC,OAAQpE,EAAIwB,EAAGxB,IAE5C,IAAK,IAAI6B,KADTC,EAAIqC,UAAUnE,GACOS,OAAOkB,UAAUC,eAAe1B,KAAK4B,EAAGD,KAAIZ,EAAEY,GAAKC,EAAED,IAE9E,OAAOZ,IAEKoD,MAAML,KAAMG,YAGhC,SAASjC,EAAOJ,EAAGwC,GACf,IAAIrD,EAAI,GACR,IAAK,IAAIY,KAAKC,EAAOrB,OAAOkB,UAAUC,eAAe1B,KAAK4B,EAAGD,IAAMyC,EAAEC,QAAQ1C,GAAK,IAC9EZ,EAAEY,GAAKC,EAAED,IACb,GAAS,MAALC,GAAqD,oBAAjCrB,OAAO+D,sBACtB,KAAIxE,EAAI,EAAb,IAAgB6B,EAAIpB,OAAO+D,sBAAsB1C,GAAI9B,EAAI6B,EAAEuC,OAAQpE,IAC3DsE,EAAEC,QAAQ1C,EAAE7B,IAAM,GAAKS,OAAOkB,UAAU8C,qBAAqBvE,KAAK4B,EAAGD,EAAE7B,MACvEiB,EAAEY,EAAE7B,IAAM8B,EAAED,EAAE7B,KAE1B,OAAOiB,EAGX,SAASkB,EAAWuC,EAAYC,EAAQrD,EAAKsD,GACzC,IAA2HvE,EAAvHD,EAAI+D,UAAUC,OAAQvD,EAAIT,EAAI,EAAIuE,EAAkB,OAATC,EAAgBA,EAAOnE,OAAOoE,yBAAyBF,EAAQrD,GAAOsD,EACrH,GAAuB,kBAAZE,SAAoD,oBAArBA,QAAQC,SAAyBlE,EAAIiE,QAAQC,SAASL,EAAYC,EAAQrD,EAAKsD,QACpH,IAAK,IAAI5E,EAAI0E,EAAWN,OAAS,EAAGpE,GAAK,EAAGA,KAASK,EAAIqE,EAAW1E,MAAIa,GAAKT,EAAI,EAAIC,EAAEQ,GAAKT,EAAI,EAAIC,EAAEsE,EAAQrD,EAAKT,GAAKR,EAAEsE,EAAQrD,KAAST,GAChJ,OAAOT,EAAI,GAAKS,GAAKJ,OAAOC,eAAeiE,EAAQrD,EAAKT,GAAIA,EAGhE,SAASuB,EAAQ4C,EAAYC,GACzB,OAAO,SAAUN,EAAQrD,GAAO2D,EAAUN,EAAQrD,EAAK0D,IAG3D,SAAS3C,EAAW6C,EAAaC,GAC7B,GAAuB,kBAAZL,SAAoD,oBAArBA,QAAQM,SAAyB,OAAON,QAAQM,SAASF,EAAaC,GAGpH,SAAS7C,EAAU+C,EAASC,EAAYC,EAAGC,GAEvC,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAU5E,GAAS,IAAM6E,EAAKL,EAAUM,KAAK9E,IAAW,MAAOsD,GAAKqB,EAAOrB,IACpF,SAASyB,EAAS/E,GAAS,IAAM6E,EAAKL,EAAiB,MAAExE,IAAW,MAAOsD,GAAKqB,EAAOrB,IACvF,SAASuB,EAAKG,GAJlB,IAAehF,EAIagF,EAAOC,KAAOP,EAAQM,EAAOhF,QAJ1CA,EAIyDgF,EAAOhF,MAJhDA,aAAiBuE,EAAIvE,EAAQ,IAAIuE,GAAE,SAAUG,GAAWA,EAAQ1E,OAITkF,KAAKN,EAAWG,GAClGF,GAAML,EAAYA,EAAUnB,MAAMgB,EAASC,GAAc,KAAKQ,WAItE,SAASvD,EAAY8C,EAASc,GAC1B,IAAsGC,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAER,KAAMc,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX9F,SAA0BwF,EAAExF,OAAO+F,UAAY,WAAa,OAAO7C,OAAUsC,EACvJ,SAASM,EAAKpF,GAAK,OAAO,SAAUsF,GAAK,OACzC,SAAcC,GACV,GAAIX,EAAG,MAAM,IAAIvC,UAAU,mCAC3B,KAAO0C,GAAG,IACN,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR8F,EAAG,GAASV,EAAU,OAAIU,EAAG,GAAKV,EAAS,SAAOpF,EAAIoF,EAAU,SAAMpF,EAAEf,KAAKmG,GAAI,GAAKA,EAAEP,SAAW7E,EAAIA,EAAEf,KAAKmG,EAAGU,EAAG,KAAKd,KAAM,OAAOhF,EAE3J,OADIoF,EAAI,EAAGpF,IAAG8F,EAAK,CAAS,EAARA,EAAG,GAAQ9F,EAAED,QACzB+F,EAAG,IACP,KAAK,EAAG,KAAK,EAAG9F,EAAI8F,EAAI,MACxB,KAAK,EAAc,OAAXR,EAAEC,QAAgB,CAAExF,MAAO+F,EAAG,GAAId,MAAM,GAChD,KAAK,EAAGM,EAAEC,QAASH,EAAIU,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKR,EAAEI,IAAIK,MAAOT,EAAEG,KAAKM,MAAO,SACxC,QACI,KAAkB/F,GAAZA,EAAIsF,EAAEG,MAAYtC,OAAS,GAAKnD,EAAEA,EAAEmD,OAAS,MAAkB,IAAV2C,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAER,EAAI,EAAG,SACjG,GAAc,IAAVQ,EAAG,MAAc9F,GAAM8F,EAAG,GAAK9F,EAAE,IAAM8F,EAAG,GAAK9F,EAAE,IAAM,CAAEsF,EAAEC,MAAQO,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYR,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI8F,EAAI,MAC7D,GAAI9F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIM,KAAKF,GAAK,MACvD9F,EAAE,IAAIsF,EAAEI,IAAIK,MAChBT,EAAEG,KAAKM,MAAO,SAEtBD,EAAKZ,EAAKjG,KAAKmF,EAASkB,GAC1B,MAAOjC,GAAKyC,EAAK,CAAC,EAAGzC,GAAI+B,EAAI,EAAK,QAAUD,EAAInF,EAAI,EACtD,GAAY,EAAR8F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE/F,MAAO+F,EAAG,GAAKA,EAAG,QAAK,EAAQd,MAAM,GArB9BJ,CAAK,CAACrE,EAAGsF,MAyB7D,IAAItE,EAAkB/B,OAAOY,OAAU,SAASb,EAAGL,EAAG+G,EAAGC,QAC1CC,IAAPD,IAAkBA,EAAKD,GAC3BzG,OAAOC,eAAeF,EAAG2G,EAAI,CAAExG,YAAY,EAAMC,IAAK,WAAa,OAAOT,EAAE+G,OAC1E,SAAS1G,EAAGL,EAAG+G,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3B1G,EAAE2G,GAAMhH,EAAE+G,IAGd,SAASzE,EAAatC,EAAGK,GACrB,IAAK,IAAIqB,KAAK1B,EAAa,YAAN0B,GAAoBpB,OAAOkB,UAAUC,eAAe1B,KAAKM,EAAGqB,IAAIW,EAAgBhC,EAAGL,EAAG0B,GAG/G,SAASa,EAASlC,GACd,IAAIsB,EAAsB,oBAAXhB,QAAyBA,OAAO+F,SAAU1G,EAAI2B,GAAKtB,EAAEsB,GAAI9B,EAAI,EAC5E,GAAIG,EAAG,OAAOA,EAAED,KAAKM,GACrB,GAAIA,GAAyB,kBAAbA,EAAE4D,OAAqB,MAAO,CAC1C0B,KAAM,WAEF,OADItF,GAAKR,GAAKQ,EAAE4D,SAAQ5D,OAAI,GACrB,CAAEQ,MAAOR,GAAKA,EAAER,KAAMiG,MAAOzF,KAG5C,MAAM,IAAIqD,UAAU/B,EAAI,0BAA4B,mCAGxD,SAASa,EAAOnC,EAAGgB,GACf,IAAIrB,EAAsB,oBAAXW,QAAyBN,EAAEM,OAAO+F,UACjD,IAAK1G,EAAG,OAAOK,EACf,IAAmBK,EAAYyD,EAA3BtE,EAAIG,EAAED,KAAKM,GAAO6G,EAAK,GAC3B,IACI,WAAc,IAAN7F,GAAgBA,KAAM,MAAQX,EAAIb,EAAE8F,QAAQG,MAAMoB,EAAGJ,KAAKpG,EAAEG,OAExE,MAAOsG,GAAShD,EAAI,CAAEgD,MAAOA,GAAU,QAEnC,IACQzG,IAAMA,EAAEoF,OAAS9F,EAAIH,EAAU,SAAIG,EAAED,KAAKF,GACjD,QACS,GAAIsE,EAAG,MAAMA,EAAEgD,OAE7B,OAAOD,EAIX,SAASzE,IACL,IAAK,IAAIyE,EAAK,GAAIrH,EAAI,EAAGA,EAAImE,UAAUC,OAAQpE,IAC3CqH,EAAKA,EAAGE,OAAO5E,EAAOwB,UAAUnE,KACpC,OAAOqH,EAIX,SAASxE,IACL,IAAK,IAAIf,EAAI,EAAG9B,EAAI,EAAGwH,EAAKrD,UAAUC,OAAQpE,EAAIwH,EAAIxH,IAAK8B,GAAKqC,UAAUnE,GAAGoE,OACxE,IAAIvD,EAAI+C,MAAM9B,GAAIoF,EAAI,EAA3B,IAA8BlH,EAAI,EAAGA,EAAIwH,EAAIxH,IACzC,IAAK,IAAIyH,EAAItD,UAAUnE,GAAI0H,EAAI,EAAGC,EAAKF,EAAErD,OAAQsD,EAAIC,EAAID,IAAKR,IAC1DrG,EAAEqG,GAAKO,EAAEC,GACjB,OAAO7G,EAGX,SAASiC,EAAc8E,EAAIC,GACvB,IAAK,IAAI7H,EAAI,EAAGwH,EAAKK,EAAKzD,OAAQsD,EAAIE,EAAGxD,OAAQpE,EAAIwH,EAAIxH,IAAK0H,IAC1DE,EAAGF,GAAKG,EAAK7H,GACjB,OAAO4H,EAGX,SAAS7E,EAAQ+D,GACb,OAAO9C,gBAAgBjB,GAAWiB,KAAK8C,EAAIA,EAAG9C,MAAQ,IAAIjB,EAAQ+D,GAGtE,SAAS9D,EAAiBqC,EAASC,EAAYE,GAC3C,IAAK1E,OAAOgH,cAAe,MAAM,IAAIjE,UAAU,wCAC/C,IAAoD7D,EAAhDsG,EAAId,EAAUnB,MAAMgB,EAASC,GAAc,IAAQyC,EAAI,GAC3D,OAAO/H,EAAI,GAAI4G,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW5G,EAAEc,OAAOgH,eAAiB,WAAc,OAAO9D,MAAShE,EACpH,SAAS4G,EAAKpF,GAAS8E,EAAE9E,KAAIxB,EAAEwB,GAAK,SAAUsF,GAAK,OAAO,IAAIrB,SAAQ,SAAUgC,EAAGhE,GAAKsE,EAAEd,KAAK,CAACzF,EAAGsF,EAAGW,EAAGhE,IAAM,GAAKuE,EAAOxG,EAAGsF,QAC9H,SAASkB,EAAOxG,EAAGsF,GAAK,KACVjG,EADqByF,EAAE9E,GAAGsF,IACnB9F,iBAAiB+B,EAAU0C,QAAQC,QAAQ7E,EAAEG,MAAM8F,GAAGZ,KAAK+B,EAAStC,GAAUuC,EAAOH,EAAE,GAAG,GAAIlH,GADpE,MAAOyD,GAAK4D,EAAOH,EAAE,GAAG,GAAIzD,GAC3E,IAAczD,EACd,SAASoH,EAAQjH,GAASgH,EAAO,OAAQhH,GACzC,SAAS2E,EAAO3E,GAASgH,EAAO,QAAShH,GACzC,SAASkH,EAAO9B,EAAGU,GAASV,EAAEU,GAAIiB,EAAEI,QAASJ,EAAE3D,QAAQ4D,EAAOD,EAAE,GAAG,GAAIA,EAAE,GAAG,KAGhF,SAAS9E,EAAiBzC,GACtB,IAAIR,EAAG6B,EACP,OAAO7B,EAAI,GAAI4G,EAAK,QAASA,EAAK,SAAS,SAAUtC,GAAK,MAAMA,KAAOsC,EAAK,UAAW5G,EAAEc,OAAO+F,UAAY,WAAc,OAAO7C,MAAShE,EAC1I,SAAS4G,EAAKpF,EAAG4E,GAAKpG,EAAEwB,GAAKhB,EAAEgB,GAAK,SAAUsF,GAAK,OAAQjF,GAAKA,GAAK,CAAEb,MAAO+B,EAAQvC,EAAEgB,GAAGsF,IAAKb,KAAY,WAANzE,GAAmB4E,EAAIA,EAAEU,GAAKA,GAAOV,GAG/I,SAASlD,EAAc1C,GACnB,IAAKM,OAAOgH,cAAe,MAAM,IAAIjE,UAAU,wCAC/C,IAAiC7D,EAA7BG,EAAIK,EAAEM,OAAOgH,eACjB,OAAO3H,EAAIA,EAAED,KAAKM,IAAMA,EAAqCkC,EAASlC,GAA2BR,EAAI,GAAI4G,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW5G,EAAEc,OAAOgH,eAAiB,WAAc,OAAO9D,MAAShE,GAC9M,SAAS4G,EAAKpF,GAAKxB,EAAEwB,GAAKhB,EAAEgB,IAAM,SAAUsF,GAAK,OAAO,IAAIrB,SAAQ,SAAUC,EAASC,IACvF,SAAgBD,EAASC,EAAQtF,EAAGyG,GAAKrB,QAAQC,QAAQoB,GAAGZ,MAAK,SAASY,GAAKpB,EAAQ,CAAE1E,MAAO8F,EAAGb,KAAM5F,MAASsF,GADJuC,CAAOxC,EAASC,GAA7BmB,EAAItG,EAAEgB,GAAGsF,IAA8Bb,KAAMa,EAAE9F,YAIpJ,SAASmC,EAAqBiF,EAAQC,GAElC,OADI5H,OAAOC,eAAkBD,OAAOC,eAAe0H,EAAQ,MAAO,CAAEpH,MAAOqH,IAAiBD,EAAOC,IAAMA,EAClGD,EAGX,IAAIE,EAAqB7H,OAAOY,OAAU,SAASb,EAAGsG,GAClDrG,OAAOC,eAAeF,EAAG,UAAW,CAAEG,YAAY,EAAMK,MAAO8F,KAC9D,SAAStG,EAAGsG,GACbtG,EAAW,QAAIsG,GAGnB,SAAS1D,EAAamF,GAClB,GAAIA,GAAOA,EAAIpH,WAAY,OAAOoH,EAClC,IAAIvC,EAAS,GACb,GAAW,MAAPuC,EAAa,IAAK,IAAIrB,KAAKqB,EAAe,YAANrB,GAAmBzG,OAAOkB,UAAUC,eAAe1B,KAAKqI,EAAKrB,IAAI1E,EAAgBwD,EAAQuC,EAAKrB,GAEtI,OADAoB,EAAmBtC,EAAQuC,GACpBvC,EAGX,SAAS3C,EAAgBkF,GACrB,OAAQA,GAAOA,EAAIpH,WAAcoH,EAAM,CAAEC,QAASD,GAGtD,SAASjF,EAAuBmF,EAAUC,GACtC,IAAKA,EAAWC,IAAIF,GAChB,MAAM,IAAI5E,UAAU,kDAExB,OAAO6E,EAAW9H,IAAI6H,GAG1B,SAASlF,EAAuBkF,EAAUC,EAAY1H,GAClD,IAAK0H,EAAWC,IAAIF,GAChB,MAAM,IAAI5E,UAAU,kDAGxB,OADA6E,EAAWE,IAAIH,EAAUzH,GAClBA,IAMJ,SAASjB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAI6H,EAAWjJ,EAAoB,IAInCE,EAAQgJ,UAHR,SAAmB9H,GACf,YAAiBoG,IAAVpG,GAAiC,OAAVA,GAMlClB,EAAQiJ,UAHR,SAAmB/H,GACf,OAAOA,EAAQ,EAAI,GAMvBlB,EAAQkJ,aAHR,SAAsBhI,GAClB,OAAOA,EAAQ,IAAM,KAMzBlB,EAAQmJ,SAHR,SAAkBC,GACd,MAAsB,kBAARA,GAMlBpJ,EAAQqJ,SAHR,SAAkBD,GACd,MAAsB,kBAARA,GAMlBpJ,EAAQsJ,gBAHR,SAAyBC,GACrB,QAASA,GAMbvJ,EAAQwJ,OAHR,SAAgBC,GACZ,OAAQA,EAAM,IAAO,GAMzBzJ,EAAQ0J,MAHR,SAAeD,GACX,OAAQA,EAAM,IAAO,GAOzBzJ,EAAQ2J,kBAJR,SAA2BF,EAAKG,GAE5B,YADkB,IAAdA,IAAwBA,EAAY,GACjCb,EAASc,YAAYC,QAAQL,EAAIM,SAAS,GAAIH,EAAW,MAOpE5J,EAAQgK,kBAJR,SAA2BP,EAAKG,GAE5B,YADkB,IAAdA,IAAwBA,EAAY,GACjCb,EAASc,YAAYC,QAAQL,EAAIM,SAAS,IAAKH,EAAW,OAO9D,SAAS3J,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQiK,mBAAgB,EACxB,IAAIC,EAASpK,EAAoB,IAC7BqK,EAAcrK,EAAoB,IAClCsK,EAAWtK,EAAoB,GAC/BuK,EAAcvK,EAAoB,GAClCwK,EAA+BxK,EAAoB,IACnDmK,EAAiB,WACjB,SAASA,KA8NT,OA5NAA,EAAcM,aAAe,SAAUC,EAAOC,GAC1C,OAAKD,GAAUC,EAERA,EAAMC,UAAYF,EAAME,WADnB,GAGhBT,EAAcU,cAAgB,SAAUH,EAAOC,GAC3C,OAA0C,GAAnCvG,KAAKqG,aAAaC,EAAOC,IAEpCR,EAAcW,WAAa,SAAUJ,EAAOC,GACxC,OAAKD,GAAUC,EAEVD,EAEAC,GAEMvG,KAAKqG,aAAaC,EAAOC,GACtB,EAAIA,EAFPD,EAFAC,EAFA,MAQfR,EAAcY,WAAa,SAAUL,EAAOC,GACxC,OAAKD,GAAUC,EAEVD,EAEAC,EAEMvG,KAAKqG,aAAaC,EAAOC,GACtB,EAAID,EAAQC,EAFfD,EAFAC,EAFA,MAQfR,EAAca,eAAiB,SAAUC,EAAOC,GAC5C,IAAIC,EAAOC,KAAKC,IAAIH,EAAIN,UAAYK,EAAML,WAC1C,OAAOQ,KAAKE,KAAKH,EAAO/G,KAAKmH,UAEjCpB,EAAcqB,gBAAkB,SAAUP,EAAOC,GAC7C,IAAIO,EAAcrH,KAAK4G,eAAeC,EAAOC,GACzCQ,EAAWN,KAAKO,MAAMF,EAAc,GAGxC,OAFIR,EAAMW,SAAWV,EAAIU,UACrBF,IACGA,GAEXvB,EAAc0B,oBAAsB,SAAUZ,EAAOC,GACjD,IAAIY,EAAW1H,KAAKqG,aAAaQ,EAAOC,GACpCjD,EAAO6D,GAAY,EAAIb,EAAQC,EAC/BlD,EAAK8D,GAAY,EAAIZ,EAAMD,EAG/B,OAD4B,IADZjD,EAAG+D,cAAgB9D,EAAK8D,gBACN/D,EAAGgE,WAAa/D,EAAK+D,aAG3D7B,EAAc8B,mBAAqB,SAAUhB,EAAOC,GAChD,OAAOE,KAAKC,IAAIH,EAAIa,cAAgBd,EAAMc,gBAE9C5B,EAAc+B,aAAe,SAAUC,GACnC,OAAOf,KAAKE,KAAKa,EAAKvB,UAAYxG,KAAKmH,UAE3CpB,EAAciC,mBAAqB,SAAUzC,GACzC,IAAIwC,EAAO,IAAIE,KAAK1C,EAAMvF,KAAKmH,SAI/B,OAHAY,EAAKG,SAAS,GACdH,EAAKI,WAAW,GAChBJ,EAAKK,WAAW,GACTL,GAEXhC,EAAcsC,QAAU,SAAUN,EAAMO,GACpC,OAAO,IAAIL,KAAKF,EAAKvB,UAAY8B,EAAOtI,KAAKmH,UAEjDpB,EAAcwC,gBAAkB,SAAUC,EAAKT,GAC3C,OAAOS,GAAOT,EAAKU,WAEvB1C,EAAc2C,eAAiB,SAAUF,EAAKT,GAC1C,OAAOS,GAAOT,EAAKP,UAEvBzB,EAAc4C,WAAa,SAAUC,EAAOb,GACxC,OAAOa,GAASb,EAAKH,YAEzB7B,EAAc8C,UAAY,SAAUC,EAAMf,GACtC,OAAOe,GAAQf,EAAKJ,eAExB5B,EAAcgD,gCAAkC,SAAUhB,EAAMiB,EAAWC,GACvE,IAAIC,EAAwBlJ,KAAKmJ,iCAAiCH,EAAWjB,EAAKJ,cAAeI,EAAKH,YACtG,OAAIqB,GAAc7C,EAA6BgD,2BAA2BC,KAC/DrJ,KAAKyG,cAAcsB,EAAMmB,EAAsBA,EAAsB9I,OAAS,IAClFJ,KAAKyG,cAAcsB,EAAMmB,EAAsBD,KAE1DlD,EAAcuD,yBAA2B,SAAUR,EAAMF,GAErD,OADW,IAAIX,KAAKa,EAAMF,EAAO,GACrBpB,UAEhBzB,EAAcoD,iCAAmC,SAAUH,EAAWF,EAAMF,GAKxE,IAJA,IAAIW,EAAwBvJ,KAAKsJ,yBAAyBR,EAAMF,GAC5DY,EAAWR,GAAaO,EAAwBP,EAAYO,EAAwBP,EAAY,EAAIO,EACpGE,EAAM,IAAI7J,MACV8J,EAAwB,IAAIzB,KAAKa,EAAMF,EAAOY,EAAW,GACtDE,EAAsB9B,YAAcgB,GACvCa,EAAIxG,KAAKyG,GACTA,EAAwB1J,KAAKqI,QAAQqB,EAAuB,GAEhE,OAAOD,GAEX1D,EAAc4D,gCAAkC,SAAUX,EAAWF,EAAMF,EAAOK,GAC9E,IAAIW,EAAQ5J,KAAKmJ,iCAAiCH,EAAWF,EAAMF,GACnE,OAAIK,GAAc7C,EAA6BgD,2BAA2BC,KAC/DO,EAAMA,EAAMxJ,OAAS,GACzBwJ,EAAMX,IAEjBlD,EAAc8D,qBAAuB,SAAUf,EAAMF,EAAOJ,GACxD,QAAIA,EAAM,GAAKA,EAAM,IAAO,IAAIP,KAAKa,EAAMF,EAAOJ,GAAMZ,YAAcgB,IAI1E7C,EAAc+D,aAAe,SAAUlB,EAAOmB,GAE1C,YADY,IAARA,IAAkBA,EAAM,IACpBnB,EAAQmB,GAAO,IAE3BhE,EAAciE,cAAgB,SAAUC,GACpC,GAAIA,aAAehC,KACf,OAAO,IAAIA,KAAKgC,GACpB,IAAIC,EAAKjC,KAAKkC,MAAMF,GACpB,OAAKG,MAAMF,GAEJ,KADI,IAAIjC,KAAKiC,IAGxBnE,EAAcsE,4BAA8B,SAAUC,EAAWC,GAC7D,IAAIxC,EAAO/H,KAAKgI,mBAAmBuC,GAC/BzB,EAAOf,EAAKJ,cACZiB,EAAQb,EAAKH,WACbY,EAAMT,EAAKU,UACX+B,EAASF,EAAUzD,MACnBA,EAAQ,IAAIoB,KAAKa,EAAMF,EAAOJ,EAAKgC,EAAOC,KAAMD,EAAOE,IAAKF,EAAOG,IAAKH,EAAOI,MAC/EC,EAAOP,EAAUxD,IACjBA,EAAM,IAAImB,KAAKa,EAAMF,EAAOJ,EAAKqC,EAAKJ,KAAMI,EAAKH,IAAKG,EAAKF,IAAKE,EAAKD,MACzE,OAAO,IAAIzE,EAAY2E,UAAUjE,EAAOC,IAE5Cf,EAAcgF,oBAAsB,SAAUd,GAC1C,IAAIe,EAAQhL,KACZ,OAAIiK,aAAerK,MACRqK,EAAIgB,KAAI,SAAUC,GAAK,OAAOF,EAAMG,mBAAmBD,MAC3DlL,KAAKoL,gBAAgBnB,IAEhClE,EAAcoF,mBAAqB,SAAUlB,GACzC,OAAKA,EAEDA,aAAehE,EAAYoF,UACpBpB,EACP/D,EAASpB,UAAUmF,EAAIpD,QAAUX,EAASpB,UAAUmF,EAAInD,KACjD,IAAIb,EAAYoF,UAAUrL,KAAKsL,cAAcrB,EAAIpD,OAAQ7G,KAAKsL,cAAcrB,EAAInD,MACpF9G,KAAKuL,eAAetB,GALhB,MAOflE,EAAcuF,cAAgB,SAAUrB,GACpC,OAAKA,EAEDA,aAAejE,EAAOwF,KACfvB,EACPA,aAAehC,KACRjI,KAAKyL,kBAAkBxB,GAC3BjK,KAAK0L,UAAUzB,GALX,MAOflE,EAAcqF,gBAAkB,SAAUnB,GACtC,IAAIe,EAAQhL,KACZ,OAAKiK,EAEOA,EAAI0B,MAAM,OACTV,KAAI,SAAUpN,GAAK,OAAOmN,EAAMO,eAAe1N,MAAO+N,QAAO,SAAU/O,GAAK,QAASA,KAFvF,MAIfkJ,EAAcwF,eAAiB,SAAUtB,GACrC,IAAKA,EACD,OAAO,KACX,IAAI4B,EAAQ5B,EAAI0B,MAAM,KAClB9E,EAAQgF,EAAM,GACd/E,EAAM+E,EAAM,GAChB,OAAI3F,EAASpB,UAAU+B,IAAUX,EAASpB,UAAUgC,GACzC,IAAIb,EAAYoF,UAAUrL,KAAK0L,UAAU7E,GAAQ7G,KAAK0L,UAAU5E,IACpE,MAEXf,EAAc2F,UAAY,SAAUzB,GAChC,IAAKA,EACD,OAAO,KACX,IAAI4B,EAAQ5B,EAAI0B,MAAM,KAClBG,EAAIC,SAASF,EAAM,KAAO,EAC1B1P,EAAI4P,SAASF,EAAM,KAAO,EAC1B/N,EAAIiO,SAASF,EAAM,KAAO,EAC1B3B,EAAK6B,SAASF,EAAM,KAAO,EAC/B,OAAO,IAAI7F,EAAOwF,KAAKM,EAAG3P,EAAG2B,EAAGoM,IAEpCnE,EAAc0F,kBAAoB,SAAU1D,GACxC,IAAKA,EACD,OAAO,KACX,IAAI+D,EAAI/D,EAAKiE,WACT7P,EAAI4L,EAAKkE,aACTnO,EAAIiK,EAAKmE,aACThC,EAAKnC,EAAKoE,kBACd,OAAO,IAAInG,EAAOwF,KAAKM,EAAG3P,EAAG2B,EAAGoM,IAEpCnE,EAAcqG,mBAAqB,SAAUC,EAAOC,GAChD,OAAOA,EAAMC,sBAAwBF,EAAME,uBAE/CxG,EAAcyG,cAAgB,SAAUH,EAAOC,GAC3C,OAAgD,GAAzCtM,KAAKoM,mBAAmBC,EAAOC,IAE1CvG,EAAc0G,WAAa,SAAUJ,EAAOC,GACxC,OAAKD,GAAUC,EAEVD,EAEAC,GAEMtM,KAAKoM,mBAAmBC,EAAOC,GAC5B,EAAIA,EAFPD,EAFAC,EAFA,MAQfvG,EAAc2G,WAAa,SAAUL,EAAOC,GACxC,OAAKD,GAAUC,EAEVD,EAEAC,EAEMtM,KAAKoM,mBAAmBC,EAAOC,GAC5B,EAAID,EAAQC,EAFfD,EAFAC,EAFA,MAQfvG,EAAc4G,iBAAmB,WAC7B,OAAO,IAAI3G,EAAOwF,KAAK,GAAI,GAAI,GAAI,MAEvCzF,EAAcoB,QAAU,MACjBpB,EA/NU,GAiOrBjK,EAAQiK,cAAgBA,GAKjB,SAAShK,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAI4P,EAAYhR,EAAoB,GAChCsK,EAAWtK,EAAoB,GAC/BiR,EAASjR,EAAoB,IAC7BiJ,EAAWjJ,EAAoB,IAC/BkR,EAAY,WACZ,SAASA,KAubT,OArbAA,EAASC,eAAiB,SAAUC,GAChC,KAAOA,EAAQC,YACXD,EAAQE,YAAYF,EAAQC,aAEpCH,EAASK,iBAAmB,SAAUC,EAAOC,GACzCD,EAAME,KAAOT,EAAOU,UAAUC,MAAMH,EAAMnC,EAAG,GAAK,KAClDkC,EAAMK,IAAMZ,EAAOU,UAAUC,MAAMH,EAAMhL,EAAG,GAAK,MAErDyK,EAASY,aAAe,SAAUN,EAAOO,GACrCP,EAAMQ,MAAQf,EAAOU,UAAUC,MAAMG,EAAKC,MAAO,GAAK,KACtDR,EAAMS,OAAShB,EAAOU,UAAUC,MAAMG,EAAKE,OAAQ,GAAK,MAE5Df,EAASgB,wBAA0B,SAAUV,EAAOW,GAChDjB,EAASK,iBAAiBC,EAAOW,GACjCjB,EAASY,aAAaN,EAAOW,IAEjCjB,EAASkB,SAAW,SAAUC,GAC1B,GAAIA,EAAM,CACN,IAAIC,EAAaD,EAAKC,WAClBA,GACAA,EAAWhB,YAAYe,KAGnCnB,EAASqB,kBAAoB,SAAUF,GACnC,OAAOA,EAAKG,WAAaC,KAAKC,cAElCxB,EAASyB,WAAa,SAAUN,GAC5B,OAAOA,EAAKG,WAAaC,KAAKG,WAElC1B,EAAS2B,cAAgB,SAAUR,GAC/B,OAAOA,EAAKG,WAAaC,KAAKC,cAElCxB,EAAS4B,sBAAwB,SAAU1B,GACvC,MAA2B,OAApBA,EAAQ2B,SAEnB7B,EAAS8B,WAAa,SAAUC,EAAe7B,GAC3C,IAAK6B,IAAkB7B,EACnB,OAAO,EACX,KAAOA,GAAS,CACZ,GAAIA,IAAY6B,EACZ,OAAO,EACX,GAAwB,SAApB7B,EAAQ2B,QACR,OAAO,EACX3B,EAAUA,EAAQkB,WAEtB,OAAO,GAEXpB,EAASgC,mBAAqB,SAAU9B,EAAS2B,GAE7C,IADAA,EAAUA,EAAQI,cACX/B,GAAS,CACZ,GAAwB,SAApBA,EAAQ2B,QACR,OAAO,KACX,GAAI3B,EAAQ2B,UAAYA,EACpB,OAAO3B,EACXA,EAAUA,EAAQkB,WAEtB,OAAO,MAEXpB,EAASkC,qBAAuB,WAC5B,IAAIC,EAAiBrC,EAAUsC,QAAQC,IAA2D,WAArDrC,EAASsC,gBAAgBC,SAASlN,MAAMmN,UAAyBD,SAASlN,KAAKoN,UAAY,EACxI,OAAI3C,EAAUsC,QAAQM,cAAgB5C,EAAUsC,QAAQO,MAAQR,EACxDrC,EAAUsC,QAAQQ,oBACXC,OAAOC,YACdhD,EAAUsC,QAAQM,cACXH,SAASQ,gBAAgBN,WAC7BF,SAASlN,KAAKoN,UAGdF,SAASQ,gBAAgBN,WAExCzC,EAASgD,sBAAwB,WAC7B,IAAIb,EAAiBrC,EAAUsC,QAAQC,IAA2D,WAArDrC,EAASsC,gBAAgBC,SAASlN,MAAMmN,UAAyBD,SAASlN,KAAK4N,WAAa,EACzI,OAAInD,EAAUsC,QAAQO,MAAQR,EACnBI,SAASlN,KAAOkN,SAASlN,KAAK4N,WAAaV,SAASQ,gBAAgBE,WAC3EnD,EAAUsC,QAAQM,aACXH,SAASQ,gBAAgBE,YAAcV,SAASlN,KAAK4N,WACzDV,SAASQ,gBAAgBE,YAEpCjD,EAASsC,gBAAkB,SAAUpC,GACjC,GAAIA,EAAQgD,aACR,OAAOhD,EAAQgD,aACd,GAAIX,SAASY,aAAeZ,SAASY,YAAYC,iBAAkB,CACpE,IAAIlO,EAASqN,SAASY,YAAYC,iBAAiBlD,EAAS,MAC5D,IAAKhL,GAAU4K,EAAUsC,QAAQiB,SAAWR,OAAOS,aAAc,CAG7D,IAFA,IAAIC,EAAU,GACVC,EAAaX,OAAOS,eACfpO,EAASqN,SAASY,YAAYC,iBAAiBlD,EAAS,QAC7DqD,EAAQpN,KAAK,CAACqN,EAAYA,EAAWlD,MAAMmD,UAC3CD,EAAWlD,MAAMoD,YAAY,UAAW,QAAS,aACjDF,EAAoC,SAAvBA,EAAW3B,QAAqB2B,EAAWG,cAAcR,YAAYG,aAAeE,EAAWpC,WAEhHlM,EA6VhB,SAAqB0O,GACjB,GAA2B,kBAAfA,IAA4BxK,EAASpB,UAAU4L,GACvD,OAAOA,EACX,IAAIC,EAAY,GAChB,IAAK,IAAI3U,KAAK0U,EACVC,EAAU3U,GAAK0U,EAAU1U,GAC7B,OAAO2U,EAnWcC,CAAY5O,GACrB,IAAK,IAAI6O,OAAK,EAAQ7U,EAAI,EAAG6U,EAAKR,EAAQrU,GAAIA,IAC1C6U,EAAG,GAAGzD,MAAMmD,QAAUM,EAAG,GAC7BxB,SAASlN,KAAK2O,YAElB,OAAO9O,EAEX,OAAO2N,OAAOO,iBAAiBlD,EAAS,OAE5CF,EAASiE,SAAW,SAAU/D,GAC1B,SAASgE,IACL,IACIhE,EAAQiE,QACJrE,EAAUsC,QAAQC,IAAME,SAAS6B,gBAAkBlE,GACnDA,EAAQiE,QAEhB,MAAO3Q,KAGPsM,EAAUsC,QAAQQ,oBAClBsB,IAEAG,YAAW,WACPH,MACD,MAGXlE,EAASsE,aAAe,SAAUpE,EAASqE,GACvC,IACI,IAAIC,EAAaD,EAAU1F,MAAM,KAC7B4F,EAAYvE,EAAQuE,UACxB,GAAIA,GACA,IAAK,IAAIvV,EAAIsV,EAAWlR,OAAS,EAAGpE,GAAK,EAAGA,IACxC,IAAKuV,EAAUC,SAASF,EAAWtV,IAC/B,OAAO,MAGd,CACD,IAAIyV,EAAmBzE,EAAQ0E,cAAgB1E,EAAQ0E,aAAa,SACpE,IAAKD,EACD,OAAO,EACX,IAAIE,EAAiBF,EAAiB9F,MAAM,KAC5C,IAAS3P,EAAIsV,EAAWlR,OAAS,EAAGpE,GAAK,EAAGA,IACxC,GAAI2V,EAAepR,QAAQ+Q,EAAWtV,IAAM,EACxC,OAAO,EAGnB,OAAO,EAEX,MAAOsE,GACH,OAAO,IAGfwM,EAAS8E,aAAe,SAAU5E,EAASqE,GACvC,IAAKvE,EAASsE,aAAapE,EAASqE,GAAY,CAC5C,IAAII,EAAmBzE,EAAQ0E,cAAgB1E,EAAQ0E,aAAa,SACpE1E,EAAQ6E,aAAa,QAA8B,KAArBJ,EAA0BJ,EAAYI,EAAmB,IAAMJ,KAGrGvE,EAASgF,gBAAkB,SAAU9E,EAASqE,GAC1C,IACIU,EAAe,KADI/E,EAAQ0E,cAAgB1E,EAAQ0E,aAAa,UACxB,IACxCM,EAAeD,EAAaE,QAAQ,IAAMZ,EAAY,IAAK,KAC3DU,EAAa3R,SAAW4R,EAAa5R,QACrC4M,EAAQ6E,aAAa,QAAShN,EAASc,YAAYuM,KAAKF,KAEhElF,EAASqF,gBAAkB,SAAUnF,EAASqE,EAAWe,QACtChP,IAAXgP,EACItF,EAASsE,aAAapE,EAASqE,GAC/BvE,EAASgF,gBAAgB9E,EAASqE,GAElCvE,EAAS8E,aAAa5E,EAASqE,GAG/Be,EACAtF,EAAS8E,aAAa5E,EAASqE,GAE/BvE,EAASgF,gBAAgB9E,EAASqE,IAG9CvE,EAASuF,QAAU,SAAUC,GACzB,OAAOC,EAAWD,EAAIvG,WAE1Be,EAAS0F,UAAY,SAAUF,GAC3B,OAAOC,EAAWD,EAAIG,aAE1B3F,EAAS4F,qBAAuB,SAAU1F,GAMtC,SAAS2F,EAAyB3F,GAC9B,OAAOhG,KAAKwG,MAAMR,EAAQ4F,wBAAwBnF,IAAMX,EAASkC,wBA8CrE,OAAKhC,EAEDJ,EAAUsC,QAAQC,GAtDtB,SAAiCnC,GAC7B,OAAOJ,EAAUsC,QAAQC,IAA6B,OAAvBnC,EAAQkB,WACnC,EACAlB,EAAQ4F,wBAAwBnF,IAAMX,EAASkC,uBAoD5C6D,CAAwB7F,GAC1BJ,EAAUsC,QAAQiB,SAAWvD,EAAUsC,QAAQ4D,SAAW,EACxDH,EAAyB3F,GAC3BJ,EAAUsC,QAAQ6D,MAlD3B,SAAoCC,GAChC,IAAIC,GAAe,EACfD,GAASlG,EAAS4B,sBAAsBsE,IAAUA,EAAME,MAAM9S,OAAS,IACvE4S,EAAQA,EAAME,MAAM,IAExB,IADA,IAAIC,EAAMC,EAAgCJ,GAAO,GACjC,MAATA,GACHG,GAAOH,EAAMK,UACRJ,IACDE,GAAOH,EAAMzD,WACjByD,EAAQA,EAAMM,aACdL,GAAe,EAGnB,OADAE,GAAO9D,SAASlN,KAAKoN,UAuCdgE,CAA2BvG,GAC7BJ,EAAUsC,QAAQsE,kBAAoB5G,EAAUsC,QAAQiB,SAAWvD,EAAUsC,QAAQ4D,QAAU,GArCxG,SAAiCE,GAG7B,IAFA,IAAIG,EAAMC,EAAgCJ,GAAO,GAC7CC,GAAe,EACH,MAATD,GAAe,CAIlB,GAHAG,GAAOH,EAAMK,UACRJ,GAAsC,MAAtBD,EAAMM,eACvBH,GAAOH,EAAMzD,YACZ0D,GAAgBrG,EAAUsC,QAAQiB,QAAS,CAC5C,IAAI/C,EAAQN,EAASsC,gBAAgB4D,GACf,QAAlBA,EAAMrE,SAAwC,YAAnBvB,EAAMkC,WACjC6D,GAAOrG,EAASuF,QAAQjF,EAAMqG,iBAEtCR,GAAe,EACfD,EAAQA,EAAMM,aAElB,OAAOH,EAuBAO,CAAwB1G,GAC1BJ,EAAUsC,QAAQM,cAAgB5C,EAAUsC,QAAQO,KAClDkD,EAAyB3F,GAvBpC,SAAoCgG,GAGhC,IAFA,IAAIG,EAAM,EACNF,GAAe,EACH,MAATD,GACHG,GAAOH,EAAMK,UACRJ,GAAsC,MAAtBD,EAAMM,eACvBH,GAAOH,EAAMzD,WACjB0D,GAAe,EACfD,EAAQA,EAAMM,aAElB,OAAOH,EAcJQ,CAA2B3G,GAXvB,GAafF,EAAS8G,qBAAuB,SAAU5G,GAMtC,SAAS6G,EAAyB7G,GAC9B,OAAOhG,KAAKwG,MAAMR,EAAQ4F,wBAAwBtF,KAAOR,EAASgD,yBA4CtE,OAAK9C,EAEDJ,EAAUsC,QAAQC,GApDtB,SAAiCnC,GAC7B,OAAOJ,EAAUsC,QAAQC,IAA6B,OAAvBnC,EAAQkB,WACnC,EACAlB,EAAQ4F,wBAAwBtF,KAAOR,EAASgD,wBAkD7CgE,CAAwB9G,GAC1BJ,EAAUsC,QAAQiB,SAAWvD,EAAUsC,QAAQ4D,SAAW,EACxDe,EAAyB7G,GAC3BJ,EAAUsC,QAAQ6D,MAhD3B,SAAoCC,GAGhC,IAFA,IAAIC,GAAe,EACfE,EAAMC,EAAgCJ,GAAO,GACjC,MAATA,GACHG,GAAOH,EAAMe,WACRd,IACDE,GAAOH,EAAMjD,YACjBiD,EAAQA,EAAMM,aACdL,GAAe,EAGnB,OADAE,GAAO9D,SAASlN,KAAK4N,WAuCdiE,CAA2BhH,GAC7BJ,EAAUsC,QAAQsE,kBAAoB5G,EAAUsC,QAAQiB,SAAWvD,EAAUsC,QAAQ4D,QAAU,GArCxG,SAAiCE,GAG7B,IAFA,IAAIG,EAAMC,EAAgCJ,GAAO,GAC7CC,GAAe,EACH,MAATD,GAAe,CAIlB,GAHAG,GAAOH,EAAMe,WACRd,GAAsC,MAAtBD,EAAMM,eACvBH,GAAOH,EAAMjD,aACZkD,GAAgBrG,EAAUsC,QAAQiB,QAAS,CAC5C,IAAI/C,EAAQN,EAASsC,gBAAgB4D,GACf,QAAlBA,EAAMrE,SAAwC,YAAnBvB,EAAMkC,WACjC6D,GAAOrG,EAASuF,QAAQjF,EAAM6G,kBAEtChB,GAAe,EACfD,EAAQA,EAAMM,aAElB,OAAOH,EAuBAe,CAAwBlH,GAC1BJ,EAAUsC,QAAQM,cAAgB5C,EAAUsC,QAAQO,KAClDoE,EAAyB7G,GAvBpC,SAAoCgG,GAGhC,IAFA,IAAIG,EAAM,EACNF,GAAe,EACH,MAATD,GACHG,GAAOH,EAAMe,WACRd,GAAsC,MAAtBD,EAAMM,eACvBH,GAAOH,EAAMjD,YACjBkD,GAAe,EACfD,EAAQA,EAAMM,aAElB,OAAOH,EAeAgB,CAA2BnH,GAZ3B,GAcfF,EAASsH,qBAAuB,SAAUpH,GACtC,MAAO,CAAC,IAAK,QAAS,SAAU,SAAU,WAAY,SAAU,UAAUzM,QAAQyM,EAAQ2B,UAAY,GAE1G7B,EAASuH,qBAAuB,SAAUrH,GACtC,OAAOA,EAAQsH,cAAgBxH,EAASyH,qBAAqBvH,GAAWF,EAAS0H,wBAAwBxH,KAE7GF,EAASyH,qBAAuB,SAAUvH,EAASI,GAC/C,IAAI4C,EAAe5C,GAAgBN,EAASsC,gBAAgBpC,GAC5D,OAAOF,EAASuF,QAAQrC,EAAayE,YAAc3H,EAASuF,QAAQrC,EAAa0E,gBAErF5H,EAAS0H,wBAA0B,SAAUxH,EAASI,GAC7ClH,EAASpB,UAAUsI,KACpBA,EAASR,EAAUsC,QAAQC,IAAyC,IAAnCvC,EAAUsC,QAAQyF,cAAsBhF,OAAOO,iBAAoBP,OAAOO,iBAAiBlD,GAAWF,EAASsC,gBAAgBpC,IACpK,IAAIvD,EAAM,EAKV,MAJ6B,SAAzB2D,EAAMwH,iBACNnL,GAAOqD,EAAS0F,UAAUpF,EAAMqG,iBACJ,SAA5BrG,EAAMyH,oBACNpL,GAAOqD,EAAS0F,UAAUpF,EAAM0H,oBAC7BrL,GAEXqD,EAASiI,SAAW,SAAUC,EAAQC,GAGlC,IAFA,IAAIC,EAAaF,EAAOG,KAAOH,EAAOI,qBAAqB,KACvDpT,EAAS,GACJhG,EAAI,EAAGA,EAAIkZ,EAAW9U,OAAQpE,IAAK,CACxC,IAAIgR,EAAUkI,EAAWlZ,GACrBiZ,EAAUjI,IACVhL,EAAOiB,KAAK+J,GAEpB,OAAOhL,GAEX8K,EAASuI,cAAgB,SAAUL,EAAQC,GAGvC,IAFA,IAAIC,EAAaF,EAAOM,WACpBtT,EAAS,GACJhG,EAAI,EAAGA,EAAIkZ,EAAW9U,OAAQpE,IAAK,CACxC,IAAIgR,EAAUkI,EAAWlZ,GACrBiZ,EAAUjI,IACVhL,EAAOiB,KAAK+J,GAEpB,OAAOhL,GAEX8K,EAASyI,oBAAsB,SAAUP,EAAQ3D,GAC7C,GAAI2D,EAAOQ,iBAAkB,CACzB,IAAIC,EAAWT,EAAOQ,iBAAiB,IAAMnE,GACzCqE,EAAW,GAEf,OADAD,EAASE,SAAQ,SAAU3I,GAAW,OAAO0I,EAASzS,KAAK+J,MACpD0I,EAGP,OAAO5I,EAASiI,SAASC,GAAQ,SAAUY,GAAQ,OAAO9I,EAASsE,aAAawE,EAAMvE,OAE9FvE,EAAS+I,yBAA2B,SAAUb,EAAQ3D,GASlD,OAAI2D,EAAOQ,iBARX,SAAyBM,EAAUlK,GAC/B,IAAI5J,EAAS,GAKb,OAJA8T,EAASH,SAAQ,SAAU3I,GACnBpB,EAAOoB,IACPhL,EAAOiB,KAAK+J,MAEbhL,EAIA+T,CADQf,EAAOQ,iBAAiB,IAAMnE,IACZ,SAAUrE,GAAW,OAAOA,EAAQkB,aAAe8G,KAG7ElI,EAASuI,cAAcL,GAAQ,SAAUY,GAC5C,QAAI9I,EAAS2B,cAAcmH,IAChB1P,EAASd,gBAAgBwQ,EAAKvE,YAAcvE,EAASsE,aAAawE,EAAMA,EAAKvE,eAMpGvE,EAASkJ,0BAA4B,WACjC,QAAwC5S,IAApC0J,EAASmJ,uBAAsC,CAC/C,IAAIC,EAAY7G,SAAS8G,cAAc,OACvCD,EAAU9I,MAAMgJ,QAAU,sIAC1B/G,SAASlN,KAAKkU,YAAYH,GAC1B,IAAII,EAAQjH,SAAS8G,cAAc,KACnCD,EAAUG,YAAYC,GACtBA,EAAMlJ,MAAMgJ,QAAU,8BACtB,IAAIG,EAAwBD,EAAMxF,YAClCoF,EAAU9I,MAAMkC,SAAW,SAC3B,IAAIkH,EAAqBF,EAAMxF,YAC3ByF,IAA0BC,IAC1BA,EAAqBN,EAAUO,aACnC3J,EAASmJ,uBAAyBM,EAAwBC,EAC1DnH,SAASlN,KAAK+K,YAAYgJ,GAE9B,OAAOpJ,EAASmJ,wBAEpBnJ,EAAS4J,0BAA4B,SAAU1J,EAASI,GAC/ClH,EAASpB,UAAUsI,KACpBA,EAASR,EAAUsC,QAAQC,IAAMQ,OAAOO,iBAAoBP,OAAOO,iBAAiBlD,GAAWF,EAASsC,gBAAgBpC,IAC5H,IAAIvD,EAAM,EAKV,MAJ8B,SAA1B2D,EAAMuJ,kBACNlN,GAAOqD,EAAS0F,UAAUpF,EAAM6G,kBACL,SAA3B7G,EAAMwJ,mBACNnN,GAAOqD,EAAS0F,UAAUpF,EAAMyJ,mBAC7BpN,GAEXqD,EAASgK,6BAA+B,SAAUC,GAC9C,OAAOA,EAAUpL,MAAM,KAAKV,KAAI,SAAU+L,GAAO,OAAOnS,EAASc,YAAYuM,KAAK8E,EAAI/E,QAAQ,QAAS,SAE3GnF,EAASmK,aAAe,SAAUf,GAC9B,GAAItJ,EAAUsC,QAAQgI,QAAUtK,EAAUsC,QAAQyF,cAAgB,EAAG,CAC3B,OAAlC7H,EAASqK,uBACTrK,EAASqK,qBAAuB9H,SAAS8G,cAAc,OACvDrJ,EAASqK,qBAAqB/J,MAAMQ,MAAQ,IAC5Cd,EAASqK,qBAAqB/J,MAAMS,OAAS,IAC7Cf,EAASqK,qBAAqB/J,MAAMkC,SAAW,UAC/CxC,EAASqK,qBAAqB/J,MAAMmD,QAAU,OAC9ClB,SAASlN,KAAKkU,YAAYvJ,EAASqK,uBAEvC,IAAIvL,EAASkB,EAASqK,qBACtBvL,EAAOwL,UAAYlB,EAAUkB,UAC7BxL,EAAOwB,MAAMmD,QAAU,GACvB,IAAI8G,EAAYzL,EAAOyL,UAEvB,OADAzL,EAAOwB,MAAMmD,QAAU,OAChB8G,EAEN,OAAIzK,EAAUsC,QAAQsE,gBAAkB5G,EAAUsC,QAAQM,cAAiB5C,EAAUsC,QAAQC,IAAMvC,EAAUsC,QAAQ4D,SAAW,GAAMlG,EAAUsC,QAAQO,KAClJyG,EAAUoB,YAEVpB,EAAUmB,WAEzBvK,EAASqK,qBAAuB,KAChCrK,EAASmJ,4BAAyB7S,EAC3B0J,EAxbK,GAmchB,SAASyF,EAAWD,EAAIiF,GACpB,IAAIvV,EAAS,EACb,GAAIkE,EAASpB,UAAUwN,IAAc,KAAPA,EAC1B,IACI,IAAIkF,EAAYlF,EAAG/R,QAAQ,MACvBiX,GAAa,IACbxV,EAASuV,EAAcjF,EAAGmF,OAAO,EAAGD,KAE5C,MAAOlX,IAEX,OAAO0B,EAEX,SAASoR,EAAgCJ,EAAO0E,GAG5C,IAFA,IAAIvE,EAAM,EACNF,GAAe,EACH,MAATD,GACmB,SAAlBA,EAAMrE,SADQ,CAGlB,IAAIvB,EAAQN,EAASsC,gBAAgB4D,GACrC,GAAuB,aAAnB5F,EAAMuK,SACN,MACC1E,GAAkC,QAAlBD,EAAMrE,SAAyC,KAAnBvB,EAAMuK,UAAsC,WAAnBvK,EAAMuK,WAC5ExE,GAAOuE,EAAM1E,EAAMjD,WAAaiD,EAAMzD,WAC1CyD,EAAQA,EAAM9E,WACd+E,GAAe,EAEnB,OAAOE,EAnCXrX,EAAQgR,SAAWA,GAyCZ,SAAS/Q,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAI4a,EAAS,WACT,SAASA,EAAM1M,EAAG7I,GACdrC,KAAKkL,EAAIA,EACTlL,KAAKqC,EAAIA,EAgEb,OA9DAuV,EAAMC,KAAO,WACT,OAAO,IAAID,EAAM,EAAG,IAExBA,EAAME,WAAa,SAAUvS,GACzB,OAAO,IAAIqS,EAAMrS,EAAKA,IAE1BqS,EAAMja,UAAUoa,OAAS,WACrB,OAAkB,IAAX/X,KAAKkL,GAAsB,IAAXlL,KAAKqC,GAEhCuV,EAAMja,UAAUkI,SAAW,WACvB,OAAOmS,KAAKC,UAAUjY,OAE1B4X,EAAMja,UAAUua,SAAW,SAAUhT,GACjClF,KAAKkL,EAAIhG,EAAIgG,EACblL,KAAKqC,EAAI6C,EAAI7C,GAEjBuV,EAAMja,UAAUwa,MAAQ,WACpB,OAAO,IAAIP,EAAM5X,KAAKkL,EAAGlL,KAAKqC,IAElCuV,EAAMja,UAAUya,OAAS,SAAUlT,GAC/B,OAAOlF,KAAKkL,IAAMhG,EAAIgG,GAAKlL,KAAKqC,IAAM6C,EAAI7C,GAE9CuV,EAAMja,UAAU0a,OAAS,SAAUC,EAASC,GAGxC,OAFAvY,KAAKkL,GAAKoN,EACVtY,KAAKqC,GAAKkW,EACHvY,MAEX4X,EAAMja,UAAU6a,cAAgB,SAAUH,GAGtC,OAFArY,KAAKkL,GAAKmN,EAAOnN,EACjBlL,KAAKqC,GAAKgW,EAAOhW,EACVrC,MAEX4X,EAAMja,UAAU8a,SAAW,SAAUC,EAAaC,GAG9C,OAFA3Y,KAAKkL,GAAKwN,EACV1Y,KAAKqC,GAAKsW,EACH3Y,MAEX4X,EAAMja,UAAUib,SAAW,WAGvB,OAFA5Y,KAAKkL,IAAM,EACXlL,KAAKqC,IAAM,EACJrC,MAEX4X,EAAMja,UAAUkb,eAAiB,SAAUC,GAGvC,OAFA9Y,KAAKkL,EAAI4N,EAAU9Y,KAAKkL,GACxBlL,KAAKqC,EAAIyW,EAAU9Y,KAAKqC,GACjBrC,MAEX4X,EAAMmB,KAAO,SAAUtV,EAAGhE,GACtB,OAAO,IAAImY,EAAMnU,EAAEyH,EAAIzL,EAAEyL,EAAGzH,EAAEpB,EAAI5C,EAAE4C,IAExCuV,EAAMoB,MAAQ,SAAUvV,EAAGhE,GACvB,OAAO,IAAImY,EAAMnU,EAAEyH,EAAIzL,EAAEyL,EAAGzH,EAAEpB,EAAI5C,EAAE4C,IAExCuV,EAAMqB,UAAY,SAAUxV,EAAGhE,GAC3B,OAAOgE,EAAEyH,EAAIzL,EAAEyL,GAEnB0M,EAAMsB,UAAY,SAAUzV,EAAGhE,GAC3B,OAAOgE,EAAEpB,EAAI5C,EAAE4C,GAEnBuV,EAAMQ,OAAS,SAAU3U,EAAGhE,GACxB,OAAOgE,EAAEyH,IAAMzL,EAAEyL,GAAKzH,EAAEpB,IAAM5C,EAAE4C,GAE7BuV,EAnEE,GAqEb9b,EAAQ8b,MAAQA,GAKT,SAAS7b,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAIkS,EAAW,WACX,SAASA,KA2MT,OAzMAA,EAAQiK,eAAiB,SAAUC,EAAWC,QACf,IAAvBA,IAAiCA,GAAqB,GAC1D,IAAIC,EAA0B,CAAC,UAAW,KAAM,UAAW,WAAY,SAAU,SAAU,QAAS,UAAW,QAG3GC,EAAkB,CAAErC,OAAQ,EAAGsC,OAAQ,GAAKC,QAAS,IAAKC,SAAU,EAAGvJ,QAAS,EAAG4C,MAAO,EAAG5D,GAAI,EAAGM,KAAM,IAC9G,GAAK2J,GAAkC,IAArBA,EAAUhZ,OAA5B,CAIAgZ,EAAYA,EAAUO,cACtBzK,EAAQ0K,2BAA2BR,GACnC,IA6BI,IA5BA,IAAIS,EAAuB,CACvB,QAAW,MACX,UAAa,MACb,SAAU,MACV,YAAe,MACf,SAAU,YACV,gBAAiB,YACjB,QAAW,UACX,iBAAkB,WAClB,aAAc,WACd,UAAW,YAIXC,EAAa,6CACbC,EAAW,CACX7C,OAAQ,kHACRsC,OAAQ,uCAAgDM,EACxDL,QAAS,kBAAoBK,EAAa,YAC1CJ,SAAU,mCAAqCI,EAC/C3J,QAAS,qBAA8B2J,EACvC/G,MAAO,8BAAuC+G,EAC9CE,QAAS,gCAAyCF,EAClD3K,GAAI,WAAa2K,EACjBrK,KAAM,kBAA2BqK,GAEjCG,EAAc,KACdC,GAAW,EACNle,EAAI,EAAGA,EAAIsd,EAAwBlZ,OAAQpE,IAAK,CACrD,IAAIme,EAAuBb,EAAwBtd,GAE/Coe,EADS,IAAIC,OAAON,EAASI,GAAuB,KACnCG,KAAKlB,GAC1B,GAAIgB,GAAWA,EAAQG,OAAS,EAAG,CAC/B,GAAoB,OAAhBN,GAAwBC,GAAW,IAA+B,WAAzBC,EACzC,SAEgB,aADpBF,EAAcE,KAEVF,EAAc,SAElBC,EAAUhL,EAAQsL,kBAAkBpB,EAAWgB,EAD1B,+DACmDlL,EAAQuL,gCAC5D,YAAhBR,GAA6BC,GAAW,KACxCD,EAAc,OAGrBA,IACDA,EAvDiB,MAwDrB,IAAIS,GAAsC,IAAbR,EACxBQ,IACDR,EAAUX,EAAgBU,IAC9B,IAAIU,EAAW,KACXC,EAAoBC,OAAOC,UAC/B,IAAK,IAAIC,KAAYlB,EACjB,GAAKpd,OAAOkB,UAAUC,eAAe1B,KAAK2d,EAAsBkB,GAAhE,CAEA,IAAIC,EAA2C,MAA1BD,EAAStD,OAAO,EAAG,GACpCwD,EAAiB7B,EAAU7Y,SAASya,EAAiBD,EAAStD,OAAO,GAAKsD,GAAUpB,eACpFsB,GAAkB,IAAMA,EAAiBL,GAAqBI,KAC9DJ,EAAoBI,EAAiB,EAAIC,EACzCN,EAAWd,EAAqBkB,IAGxC,IACI5e,EAAIid,EAAUrK,cAAcmM,MADX,YAEjBC,EAAyBhf,GAAKA,EAAEiE,OAAS,EAC5B,aAAbua,GAA2BT,EAAU,IACrCA,EAAUlT,KAAKO,MAAM2H,EAAQkM,sBAAsBhC,EAAW,qBAA8BU,MAC3FT,GAAsC,OAAhBY,GAAwBC,EAAU,GAAK7K,SAASgM,aAAenB,IACtFA,EAAU7K,SAASgM,cACN,aAAbV,IACAT,EAAUlT,KAAKsU,IAAI,EAAGpB,IACrBS,IACDA,EAhFc,OAiFdA,IAAad,EAAqB,WAAca,IAChDR,EAAU,GACdhL,EAAQqM,kBAAkBjC,EAAyBW,EAAaC,EAASS,EAAUQ,GAEvF,MAAO7a,GACH4O,EAAQqM,kBAAkBjC,EAvFL,KAuFkDC,EAAkC,GAtFvF,aAGlBrK,EAAQqM,kBAAkBjC,EAJL,KAIkDC,EAAkC,GAHvF,QAyF1BrK,EAAQsL,kBAAoB,SAAUpB,EAAWgB,EAASoB,EAAgBC,GACtE,IAAIvB,EAAUhL,EAAQwM,sBAAsBtB,GAC5C,GAAIqB,EAA2B,CAC3B,IAAIE,EAAqBzM,EAAQkM,sBAAsBhC,EAAWoC,GAClE,GAAkC,SAA9BC,GAAwC1P,SAAS0P,KAA+BE,EAChF,OAAOA,EAEf,OAAOzB,GAEXhL,EAAQuL,6BAA+B,WACnC,GAAIpL,SAASuM,WACT,IAAK,IAAI5f,EAAI,EAAGA,EAAIqT,SAASuM,WAAWxb,OAAQpE,IAC5C,GAAyC,OAArCqT,SAASuM,WAAW5f,GAAGod,WAAsB/J,SAASuM,WAAW5f,GAAGke,QACpE,OAAO7K,SAASuM,WAAW5f,GAAGke,QAAQP,cAGlD,MAAO,IAEXzK,EAAQ2M,eAAiB,WACrB,MAAQ,iBAAkBlM,QACrBmM,UAA0B,eAAI,GAC9BA,UAA4B,iBAAI,GAEzC5M,EAAQqM,kBAAoB,SAAUjC,EAAyBW,EAAaC,EAASS,EAAUQ,QAC5D,IAA3BA,IAAqCA,GAAyB,GAClE,IAAK,IAAInf,EAAI,EAAGA,EAAIsd,EAAwBlZ,OAAQpE,IAAK,CACrD,IAAI+f,EAAOzC,EAAwBtd,GACnCkT,EAAQ6M,GAAQA,IAAS9B,EAE7B/K,EAAQ4D,QAAU9L,KAAKO,MAAM,GAAO2S,GAAW,GAC/ChL,EAAQyF,aAAe3N,KAAKO,MAAM2H,EAAQ4D,SAC1C5D,EAAQ8M,gBAA+B,QAAbrB,GAAmC,aAAbA,EAChDzL,EAAQQ,oBAAmC,cAAbiL,GAA0C,QAAbA,GAAsBzL,EAAQ2M,iBACzF3M,EAAQ+M,cAA6B,QAAbtB,IAAuBzL,EAAQQ,oBACvDR,EAAQgN,sBAAqC,YAAbvB,EAChCzL,EAAQiN,qBAAoC,aAAbxB,EAC/BzL,EAAQM,aAAeN,EAAQgI,QAAUhI,EAAQsK,QAAUtK,EAAQ6D,OAAS7D,EAAQyF,cAAgB,GACpGzF,EAAQsE,eAAiBtE,EAAQwK,UAAYxK,EAAQuK,SAAWvK,EAAQiB,QACxEjB,EAAQkN,qBAAwBlN,EAAQC,IAAMD,EAAQyF,cAAgB,GAAOzF,EAAQiB,SAAWjB,EAAQyF,cAAgB,GACnHzF,EAAQgN,uBAAyBhN,EAAQsK,QAAYtK,EAAQsK,QAAUtK,EAAQyF,cAAgB,IAC/FzF,EAAQgI,SAAWhI,EAAQ8M,iBAAoB9M,EAAQO,MAASP,EAAQ6D,OAAS7D,EAAQyF,cAAgB,GAC9GzF,EAAQmN,cAAgBnN,EAAQQ,qBAAuBR,EAAQgN,sBAC/D,IAAII,EAAcpN,EAAQC,IAAMD,EAAQyF,aAAe,GAAKzF,EAAQ8M,iBAAmB9M,EAAQqN,UAAU5C,cAAcpZ,QAAQ,UAAY,EAQ3I,GAPA2O,EAAQsN,UAAYF,GAAgBpN,EAAQO,QAAUE,OAAOmM,UAAUW,eACvEvN,EAAQwN,QAAUxN,EAAQmN,eAAiBnN,EAAQsN,UACnDtN,EAAQyN,SAAWzN,EAAQmN,eAAiBnN,EAAQiN,qBACpDjN,EAAQ0N,sBAAwB1N,EAAQgN,wBAA0BhN,EAAQsK,OAC1EtK,EAAQ2N,qBAAuB3N,EAAQgN,uBAAyBhN,EAAQsK,OACpE2B,IACAjM,EAAQ4N,qBAAuB3B,GAC/BjM,EAAQsN,UAAW,CACnB,IAAIO,EAAoB7N,EAAQqN,UAAU5C,cAAcpZ,QAAQ,SAAW,EAC3E2O,EAAQ8N,yBAA2BD,GAAqB7N,EAAQiN,0BAGhEjN,EAAQ8N,yBAA2B9N,EAAQmN,cAC/CnN,EAAQ+N,yCAAyC3D,IAErDpK,EAAQ0K,2BAA6B,SAAUR,GAC3C,IACIgB,EADQ,0GACQE,KAAKlB,GACrBgB,IACAlL,EAAQgO,oBAAsB9C,EAAQ,KAE9ClL,EAAQwM,sBAAwB,SAAUtB,GACtC,IAAIpY,GAAU,EACVmb,EAAa,GAajB,OAZI/C,IACIA,EAAQ,KACR+C,GAAc/C,EAAQ,GAClBA,EAAQ,KACR+C,GAAc,IAAM/C,EAAQ,KAEjB,KAAf+C,IACAnb,EAASyQ,WAAW0K,GAChB/S,MAAMpI,KACNA,GAAU,KAGfA,GAEXkN,EAAQkM,sBAAwB,SAAUhC,EAAWoC,GACjD,IACIpB,EAAU,IAAIC,OAAOmB,EAAgB,KAAKlB,KAAKlB,GACnD,OAAOlK,EAAQwM,sBAAsBtB,GAFR,GAIjClL,EAAQ+N,yCAA2C,SAAU3D,GAIzD,IAHA,IAAI8D,EAA2B,GAC3BC,EAAmB/D,EAAwB/V,OAAO,CAAC,kBAAmB,gBAAiB,sBAAuB,wBAC9G,uBAAwB,eAAgB,gBAAiB,YAAa,UAAW,0BAC5EvH,EAAI,EAAGA,EAAIqhB,EAAiBjd,OAAQpE,IAAK,CAC9C,IAAI+f,EAAOsB,EAAiBrhB,GACxBkT,EAAQ6M,KACRqB,GAA4B,KAAOrB,EAAO,KAElDqB,GAA4B,oBAAsBlO,EAAQyF,aAClC,qBAAbtF,UAA4BA,UAAYA,SAASQ,kBACb,KAAvCR,SAASQ,gBAAgBwB,YACzB+L,EAA2B,IAAMA,GACrC/N,SAASQ,gBAAgBwB,WAAa+L,EACtClO,EAAQoO,KAAOF,IAGvBlO,EAAQqO,aAAe,WACnB,MAA4B,qBAAdzB,WAA6BA,UAAU1C,UAAY0C,UAAU1C,UAAUO,cAAgB,IAEzGzK,EAAQqN,UAAYrN,EAAQqO,eAC5BrO,EAAQsO,KAAOtO,EAAQiK,eAAejK,EAAQqN,WACvCrN,EA5MI,GA8MfpT,EAAQoT,QAAUA,GAKX,SAASnT,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAI4P,EAAYhR,EAAoB,GAChCsK,EAAWtK,EAAoB,GAC/B6hB,EAAQ7hB,EAAoB,GAC5B8hB,EAAU9hB,EAAoB,IAC9B+hB,EAAY,WACZ,SAASA,KAwFT,OAtFAA,EAASC,aAAe,SAAUC,GAC1BA,EAAIC,eACJD,EAAIC,iBAEJD,EAAIE,aAAc,GAE1BJ,EAASK,eAAiB,SAAUH,GAChC,OAAK3X,EAASpB,UAAU+Y,GAEjBA,EAAII,WAAaJ,EAAII,WAAaJ,EAAIld,OADlC,MAGfgd,EAASO,yBAA2B,SAAUL,GAC1C,OAAK3X,EAASpB,UAAU+Y,GAEpBxO,SAAS8O,uBAAgD/a,IAA5Bua,EAASS,UAAUP,SAAkDza,IAA5Bua,EAASU,UAAUR,GAClFxO,SAAS8O,iBAAiBR,EAASS,UAAUP,GAAMF,EAASU,UAAUR,IAC1EA,EAAII,WAAaJ,EAAII,WAAaJ,EAAIld,OAHlC,MAKfgd,EAASW,uBAAyB,WAC9B,OAAI1R,EAAUsC,QAAQgI,OACX,aACPtK,EAAUsC,QAAQsE,gBAAkB5G,EAAUsC,QAAQyF,aAAe,GAC9D,iBACJ,SAEXgJ,EAASY,oBAAsB,SAAUV,GACrC,QAAIH,EAAQc,WAAWC,aAAaZ,OAEpCA,EAAOjR,EAAUsC,QAAQC,IAAMjJ,EAASpB,UAAU4Z,OAAUA,MAAQb,KAGhEjR,EAAUsC,QAAQC,IAAMvC,EAAUsC,QAAQ4D,QAAU,KAChDlG,EAAUsC,QAAQsN,WAEfqB,EAAIc,OAAS,IAAM,EAErB/R,EAAUsC,QAAQM,aACN,gBAAbqO,EAAI9B,KACmB,IAAhB8B,EAAIe,QACM,IAAdf,EAAIgB,MAENjS,EAAUsC,QAAQsE,gBAAkB5G,EAAUsC,QAAQO,MAAS7C,EAAUsC,QAAQC,IAAMvC,EAAUsC,QAAQ4D,SAAW,GACrH+K,EAAI9B,OAAS2B,EAAQc,WAAWM,wBACT,IAAhBjB,EAAIe,QACM,IAAdf,EAAIgB,OAENjS,EAAUsC,QAAQ6D,OACD,IAAf8K,EAAIc,SAGnBhB,EAASoB,sBAAwB,SAAUlB,GACvCF,EAASC,aAAaC,GAClBA,EAAImB,iBACJnB,EAAImB,kBACRnB,EAAIoB,cAAe,GAEvBtB,EAASuB,uCAAyC,WAC9C,IAAIC,EAAmBvS,EAAUsC,QAAQgI,QAAUtK,EAAUsC,QAAQ4D,QAAU,EAC3EsM,EAAyBxS,EAAUsC,QAAQQ,qBAAuB9C,EAAUsC,QAAQ4D,QAAU,IAClG,OAAOlG,EAAUsC,QAAQ0N,uBAAyBhQ,EAAUsC,QAAQ2N,wBAA0BsC,GAAoBC,IAEtHzB,EAASS,UAAY,SAAUP,GAC3B,OAAIH,EAAQc,WAAWC,aAAaZ,GACzBH,EAAQc,WAAWJ,UAAUP,GACjCA,EAAIwB,SAAW1B,EAASuB,yCAA2CzB,EAAM3Q,SAASgD,wBAA0B,IAEvH6N,EAASU,UAAY,SAAUR,GAC3B,OAAIH,EAAQc,WAAWC,aAAaZ,GACzBH,EAAQc,WAAWH,UAAUR,GACjCA,EAAIyB,SAAW3B,EAASuB,yCAA2CzB,EAAM3Q,SAASkC,uBAAyB,IAEtH2O,EAASsB,aAAe,SAAUpB,GAC9BA,EAAIoB,cAAe,GAEvBtB,EAAS4B,cAAgB,SAAU1B,GAC/B,IAAI2B,EASJ,OAPIA,EADA5S,EAAUsC,QAAQsE,gBAAkB5G,EAAUsC,QAAQyF,aAAe,IAC9DkJ,EAAI4B,OACN7S,EAAUsC,QAAQgI,OACjB2G,EAAI6B,YAEH7B,EAAI8B,OACX/S,EAAUsC,QAAQ6D,OAASnG,EAAUsC,QAAQ4D,QAAU,IACvD0M,GAAOA,GACJA,GAEJ7B,EAzFK,GA2FhB7hB,EAAQ6hB,SAAWA,GAKZ,SAAS5hB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ8jB,mBAAqB9jB,EAAQ+jB,iBAAc,EACnD,IAAIA,EAAe,WACf,SAASA,EAAYC,GACjB9f,KAAK8f,QAAUA,EAgDnB,OA9CArjB,OAAOC,eAAemjB,EAAYliB,UAAW,mBAAoB,CAC7Df,IAAK,WAAc,OAAOoD,KAAK8f,QAAQC,kBACvCpjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemjB,EAAYliB,UAAW,UAAW,CACpDf,IAAK,WAAc,OAAOoD,KAAK8f,QAAQG,SACvCtjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemjB,EAAYliB,UAAW,uBAAwB,CACjEf,IAAK,WAAc,OAAOoD,KAAK8f,QAAQI,sBACvCvjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemjB,EAAYliB,UAAW,QAAS,CAClDf,IAAK,WAGD,OAFKoD,KAAKmgB,SACNngB,KAAKmgB,OAASngB,KAAKogB,YAChBpgB,KAAKmgB,QAEhBxjB,YAAY,EACZqjB,cAAc,IAElBH,EAAYliB,UAAU0iB,QAAU,WAE5B,IADA,IAAIC,EAAa,GACRC,EAAK,EAAGA,EAAKpgB,UAAUC,OAAQmgB,IACpCD,EAAWC,GAAMpgB,UAAUogB,GAE/B,IAAKvgB,KAAKwgB,MAAMC,QACZ,OAAO,EACX,IAAIC,EAAW1gB,KAAK2gB,gBAAgBtgB,MAAML,KAAMsgB,GAGhD,OAFII,GACA1gB,KAAK8f,QAAQc,WAAWC,iBAAiB,IACtCH,GAEXb,EAAYliB,UAAUmjB,UAAY,WAC9B,OAAO9gB,KAAK8f,QAAQiB,SAASC,QAAQP,SAEzCZ,EAAYliB,UAAUgjB,gBAAkB,WAEpC,IADA,IAAIL,EAAa,GACRC,EAAK,EAAGA,EAAKpgB,UAAUC,OAAQmgB,IACpCD,EAAWC,GAAMpgB,UAAUogB,GAE/B,MAAM,IAAIU,MAAM,oBAEbpB,EAlDQ,GAoDnB/jB,EAAQ+jB,YAAcA,EACtB,IAAID,EACA,SAA4Ba,EAASzjB,GACjCgD,KAAKkhB,SAAU,EACflhB,KAAKygB,QAAUA,EACfzgB,KAAKhD,MAAQA,GAIrBlB,EAAQ8jB,mBAAqBA,GAKtB,SAAS7jB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQqlB,gBAAkBrlB,EAAQslB,sBAAmB,EACrD,IAAIxU,EAAYhR,EAAoB,GAChCylB,EAAUzlB,EAAoB,GAC9B6hB,EAAQ7hB,EAAoB,GAC5B0lB,EAAQ1lB,EAAoB,GAC5B8hB,EAAU9hB,EAAoB,IAC9B2lB,EAAyB3lB,EAAoB,KAEjD,SAAWwlB,GACPA,EAAiBA,EAA2B,SAAI,GAAK,WACrDA,EAAiBA,EAAiC,eAAI,GAAK,iBAC3DA,EAAiBA,EAAoC,kBAAI,GAAK,oBAC9DA,EAAiBA,EAAiC,eAAI,GAAK,iBAC3DA,EAAiBA,EAA+B,aAAI,GAAK,eACzDA,EAAiBA,EAA2C,yBAAI,GAAK,2BACrEA,EAAiBA,EAA4C,0BAAI,GAAK,4BACtEA,EAAiBA,EAAoC,kBAAI,GAAK,oBAC9DA,EAAiBA,EAA4C,0BAAI,GAAK,4BACtEA,EAAiBA,EAA6C,2BAAI,GAAK,6BAV3E,CAWsBtlB,EAAQslB,mBAAqBtlB,EAAQslB,iBAAmB,KAC9E,IAAID,EAAmB,WACnB,SAASA,EAAgBK,GACrBxhB,KAAKyhB,KAAO,IAAIxZ,KAChBjI,KAAK0hB,UAAY,IAAIzZ,KACrBjI,KAAKwhB,UAAYA,EACjBxhB,KAAK2hB,aAAeH,EAAUG,aAC9B3hB,KAAK2X,SAAW,IAAI0J,EAAQzJ,OAAO,GAAI,GAClChL,EAAUsC,QAAQmN,eACnBrc,KAAK4hB,kBACLhV,EAAUsC,QAAQ2M,kBAClB7b,KAAK6hB,kBAsMb,OApMAV,EAAgBxjB,UAAUmkB,uBAAyB,WAC/C,IAAI9W,EAAQhL,KACZA,KAAK+hB,oBAAsB,SAAUlE,GAAO7S,EAAMgX,gBAAgBnE,IAClE7d,KAAKiiB,uBAAyB,SAAUpE,GAAO7S,EAAMkX,mBAAmBrE,IACxE7d,KAAKmiB,gBAAkBniB,KAAKwhB,UAAUY,WAAW7kB,KAAKyC,KAAKwhB,WAC3DxhB,KAAKqiB,qBAAuB,SAAUxE,GAAO7S,EAAMsX,cAAczE,IACjE7d,KAAKuiB,oBAAsB,SAAU1E,GAAO7S,EAAMwX,aAAa3E,IAC/D7d,KAAKyiB,mBAAqB,SAAU5E,GAAO7S,EAAM0X,YAAY7E,IAC7D7d,KAAK2iB,mBAAqB,SAAU9E,GAAO7S,EAAM4X,oBAAoB/E,IACrE7d,KAAK6iB,iBAAmB,SAAUhF,GAAO7S,EAAM8X,kBAAkBjF,IACjE7d,KAAK+iB,iBAAmB,SAAUlF,GAAO7S,EAAMgY,kBAAkBnF,KAErEsD,EAAgBxjB,UAAUslB,uBAAyB,WAC/C,IAAIjY,EAAQhL,KACZA,KAAKkjB,oBAAsB,SAAUrF,GAAO7S,EAAMmY,aAAatF,IAC/D7d,KAAKojB,kBAAoB,SAAUvF,GAAO7S,EAAMqY,WAAWxF,IAC3D7d,KAAKsjB,mBAAqB,SAAUzF,GAAO7S,EAAMuY,YAAY1F,IAC7D7d,KAAKwjB,qBAAuB,SAAU3F,GAAO7S,EAAM0X,YAAY7E,IAC/D7d,KAAKyjB,mBAAqB,SAAU5F,GAAO7S,EAAM8X,kBAAkBjF,IACnE7d,KAAK0jB,qBAAuB,SAAU7F,GAAO7S,EAAM4X,oBAAoB/E,KAE3EsD,EAAgBxjB,UAAUikB,gBAAkB,WACxC5hB,KAAK8hB,yBACL9hB,KAAKwhB,UAAUmC,SAASC,iBAAiB,QAAS5jB,KAAK+hB,qBACvD/hB,KAAKwhB,UAAUmC,SAASC,iBAAiB,WAAY5jB,KAAKiiB,wBAC1DjiB,KAAKwhB,UAAUmC,SAASC,iBAAiB,SAAU5jB,KAAKmiB,iBACxDniB,KAAKwhB,UAAUmC,SAASC,iBAAiB,cAAe5jB,KAAKqiB,sBAC7DriB,KAAKwhB,UAAUmC,SAASC,iBAAiBtC,EAAM3D,SAASW,yBAA0Bte,KAAKuiB,qBACvFviB,KAAKwhB,UAAUmC,SAASC,iBAAiB,YAAa5jB,KAAKyiB,oBAC3DpT,SAASuU,iBAAiB,YAAa5jB,KAAK2iB,oBAC5CtT,SAASuU,iBAAiB,UAAW5jB,KAAK6iB,kBAC1CxT,SAASuU,iBAAiB,UAAW5jB,KAAK+iB,mBAE9C5B,EAAgBxjB,UAAUkmB,kBAAoB,WAC1C7jB,KAAKijB,yBACLjjB,KAAKwhB,UAAUmC,SAASG,oBAAoB,QAAS9jB,KAAK+hB,qBAC1D/hB,KAAKwhB,UAAUmC,SAASG,oBAAoB,WAAY9jB,KAAKiiB,wBAC7DjiB,KAAKwhB,UAAUmC,SAASG,oBAAoB,SAAU9jB,KAAKmiB,iBAC3DniB,KAAKwhB,UAAUmC,SAASG,oBAAoB,cAAe9jB,KAAKqiB,sBAChEriB,KAAKwhB,UAAUmC,SAASG,oBAAoBxC,EAAM3D,SAASW,yBAA0Bte,KAAKuiB,qBAC1FviB,KAAKwhB,UAAUmC,SAASG,oBAAoB,YAAa9jB,KAAKyiB,oBAC9DpT,SAASyU,oBAAoB,YAAa9jB,KAAK2iB,oBAC/CtT,SAASyU,oBAAoB,UAAW9jB,KAAK6iB,kBAC7CxT,SAASyU,oBAAoB,UAAW9jB,KAAK+iB,mBAEjD5B,EAAgBxjB,UAAUkkB,gBAAkB,WACpCjV,EAAUsC,QAAQmN,eAAiBzP,EAAUsC,QAAQ8M,kBAAoBpP,EAAUsC,QAAQO,OAAS7C,EAAUsC,QAAQC,IACtHnP,KAAKwhB,UAAUmC,SAASC,iBAAiB,aAAc5jB,KAAKkjB,qBAC5DljB,KAAKwhB,UAAUmC,SAASC,iBAAiB,WAAY5jB,KAAKojB,mBAC1DpjB,KAAKwhB,UAAUmC,SAASC,iBAAiB,YAAa5jB,KAAKsjB,qBAEtD1W,EAAUsC,QAAQsN,YACvBxc,KAAKwhB,UAAUmC,SAASpS,UAAUwS,IAAI5C,EAAgB6C,yBACtDhkB,KAAKwhB,UAAUmC,SAASC,iBAAiB,cAAe5jB,KAAKwjB,sBAC7DxjB,KAAKwhB,UAAUmC,SAASC,iBAAiB,YAAa5jB,KAAKyjB,oBAC3DzjB,KAAKwhB,UAAUmC,SAASC,iBAAiB,cAAe5jB,KAAK0jB,wBAGrEvC,EAAgBxjB,UAAUsmB,kBAAoB,WAC1CjkB,KAAKwhB,UAAUmC,SAASG,oBAAoB,aAAc9jB,KAAKkjB,qBAC/DljB,KAAKwhB,UAAUmC,SAASG,oBAAoB,WAAY9jB,KAAKojB,mBAC7DpjB,KAAKwhB,UAAUmC,SAASG,oBAAoB,YAAa9jB,KAAKsjB,oBAC9DtjB,KAAKwhB,UAAUmC,SAASG,oBAAoB,cAAe9jB,KAAKwjB,sBAChExjB,KAAKwhB,UAAUmC,SAASG,oBAAoB,YAAa9jB,KAAKyjB,oBAC9DzjB,KAAKwhB,UAAUmC,SAASG,oBAAoB,cAAe9jB,KAAK0jB,uBAEpEvC,EAAgBxjB,UAAUumB,mBAAqB,SAAUC,GACrD,IAAInZ,EAAQhL,KACZA,KAAKokB,oBAAsB,SAAUvG,GAC7BjR,EAAUsC,QAAQsN,UAClBrL,YAAW,WAAc,OAAOnG,EAAMqZ,mBAAmBxG,KAAS,GAElE7S,EAAMqZ,mBAAmBxG,IAEjCsG,EAAYP,iBAAiB,aAAc5jB,KAAKokB,sBAEpDjD,EAAgBxjB,UAAU2mB,mBAAqB,SAAUH,GACrDA,EAAYL,oBAAoB,aAAc9jB,KAAKokB,sBAEvDjD,EAAgBxjB,UAAU4mB,aAAe,WACrCvkB,KAAK6jB,oBACL7jB,KAAKikB,qBAET9C,EAAgBxjB,UAAU+kB,YAAc,SAAU7E,GAC9C7d,KAAK2hB,aAAae,YAAY7E,GAC9B7d,KAAKwkB,eAAgB,EACrBxkB,KAAK2X,SAAW,IAAI0J,EAAQzJ,MAAMiG,EAAIwB,QAASxB,EAAIyB,UAEvD6B,EAAgBxjB,UAAUmlB,kBAAoB,SAAUjF,GACpD,IAAI7S,EAAQhL,KACZA,KAAKwhB,UAAUiD,UAAUhH,EAAM3Q,SAAS8B,WAAW5O,KAAKwhB,UAAUmC,SAAUrC,EAAM3D,SAASK,eAAeH,IACtG7d,KAAKwhB,UAAUiD,UAAYzkB,KAAKwkB,eAAiBxkB,KAAKwhB,UAAUT,SAAS2D,kBAAoB1kB,KAAK2kB,gBAAgB9G,IAClH1M,YAAW,WAAcnG,EAAM4Z,oBAAoB5Z,EAAM6Z,oBAAoBhH,MAAU,GAC3F7d,KAAK2hB,aAAamD,UAAUjH,IAEhCsD,EAAgBxjB,UAAU6kB,aAAe,SAAU3E,GAC/C7d,KAAK2hB,aAAaa,aAAa3E,IAEnCsD,EAAgBxjB,UAAUqlB,kBAAoB,SAAUnF,GACpD7d,KAAK2hB,aAAaoD,UAAUlH,IAEhCsD,EAAgBxjB,UAAUilB,oBAAsB,SAAU/E,GAClD7d,KAAK2X,SAASzM,GAAK2S,EAAIwB,SAAWrf,KAAK2X,SAAStV,GAAKwb,EAAIyB,UACzDtf,KAAK2hB,aAAaqD,YAAYnH,GAC9B7d,KAAKwkB,eAAgB,IAG7BrD,EAAgBxjB,UAAUwlB,aAAe,SAAUtF,GAC/C7d,KAAK2X,SAAW,IAAI0J,EAAQzJ,MAAM8F,EAAQc,WAAWJ,UAAUP,GAAMH,EAAQc,WAAWH,UAAUR,IAClG,IAAIoH,EAAcjlB,KAAKwhB,UAAU0D,UAAUC,MAAMnlB,KAAK6kB,oBAAoBhH,IACtEuH,EAAM,IAAInd,KACa,IAAvB4V,EAAIwH,QAAQjlB,QAAgBglB,EAAI5e,UAAYxG,KAAK0hB,UAAUlb,UAAY2a,EAAgBmE,mBACvFzH,EAAIC,iBACAmH,GAAejlB,KAAKwhB,UAAU+D,eAAeN,EAAYO,KAAKC,GAAI5H,IAClE7d,KAAKwhB,UAAUkE,eAAeC,mBAAmBtF,QAAQ4E,EAAYO,OAGzExlB,KAAK2hB,aAAawB,aAAatF,GAC/BoH,GAAejlB,KAAKwhB,UAAUoE,YAAYX,EAAYO,KAAKC,GAAI5H,KAC/D7d,KAAK0hB,UAAY0D,GACrBplB,KAAKwkB,eAAgB,GAEzBrD,EAAgBxjB,UAAU0lB,WAAa,SAAUxF,GAC7C7d,KAAK2hB,aAAa0B,WAAWxF,IAEjCsD,EAAgBxjB,UAAU4lB,YAAc,SAAU1F,GAC1C7d,KAAK2X,SAASzM,GAAKwS,EAAQc,WAAWJ,UAAUP,IAAQ7d,KAAK2X,SAAStV,GAAKqb,EAAQc,WAAWH,UAAUR,KACxG7d,KAAK2hB,aAAa4B,YAAY1F,GAC9B7d,KAAKwkB,eAAgB,IAG7BrD,EAAgBxjB,UAAUkoB,2BAA6B,SAAUC,GAC7D,OAAO9lB,KAAKwhB,UAAU0D,UAAUa,2BAA2B,aAAcD,EAAOpU,aAAa,mBAEjGyP,EAAgBxjB,UAAU2kB,cAAgB,SAAUzE,GAChD,IAAIiI,EAASxE,EAAM3D,SAASK,eAAeH,GACvCmI,EAAehmB,KAAK2kB,gBAAgB9G,GACpC9B,EAAOiK,EAAe,aAAe,OACrC1oB,EAAM0oB,EAAehmB,KAAK6lB,2BAA2BC,GAAU9lB,KAAKimB,kBAAkBjmB,KAAK6kB,oBAAoBhH,IAOnH,GANIA,EAAImB,iBACJnB,EAAImB,kBACJnB,EAAIC,gBACJD,EAAIC,iBACJlR,EAAUsC,QAAQM,eAClBqO,EAAIE,aAAc,GAClB/d,KAAKwhB,UAAU0E,WAAWC,uBAAuBtI,EAAKvgB,EAAKye,GAAO,CAClE,IAAIqK,EAAO,CACP1H,MAAOb,EACP9B,KAAMA,EACNze,IAAKA,EACLqa,SAAU,IAAI0J,EAAQzJ,MAAM0J,EAAM3D,SAASS,UAAUP,GAAMyD,EAAM3D,SAASU,UAAUR,KAExF7d,KAAKwhB,UAAU0E,WAAWG,cAAcD,KAGhDjF,EAAgBxjB,UAAU0mB,mBAAqB,SAAUxG,GACrDA,EAAIC,iBACJ,IAAIwI,EAAmBtmB,KAAK6kB,oBAAoBhH,GAChD7d,KAAKwhB,UAAU+E,mBAAmBC,KAAKF,GACvCtmB,KAAKwhB,UAAU+E,mBAAmBE,aAAanF,EAAM3D,SAASS,UAAUP,KAE5EsD,EAAgBxjB,UAAUknB,oBAAsB,SAAUhH,GACtD,IAEI6I,EAFIpF,EAAM3D,SAASU,UAAUR,GACjBJ,EAAM3Q,SAAS4F,qBAAqB1S,KAAKwhB,UAAUmC,UAEnE,OAAO3c,KAAKO,MAAMmf,EAAY1mB,KAAKwhB,UAAUmF,SAAS9Y,SAE1DsT,EAAgBxjB,UAAUsoB,kBAAoB,SAAU1L,GACpD,IAAI0K,EAAcjlB,KAAKwhB,UAAU0D,UAAUC,MAAM5K,GACjD,OAAO0K,GAAeA,EAAYO,MAAQP,EAAYO,KAAKC,IAE/DtE,EAAgBxjB,UAAUinB,oBAAsB,SAAUrK,GACtD,IAAIqM,EAAc5mB,KAAKwhB,UAAU0D,UAAUC,MAAM5K,GAC7CqM,GACA5mB,KAAKwhB,UAAU0E,WAAWW,yBAAyBD,EAAYpB,KAAKC,IAAI,IAEhFtE,EAAgBxjB,UAAUqkB,gBAAkB,SAAUnE,GAClD,IAAIiJ,EAAmB9mB,KAAK6kB,oBAAoBhH,GAC5CoH,EAAcjlB,KAAKwhB,UAAU0D,UAAUC,MAAM2B,GAC7C7B,GACAjlB,KAAKwhB,UAAUoE,YAAYX,EAAYO,KAAKC,GAAI5H,IAExDsD,EAAgBxjB,UAAUukB,mBAAqB,SAAUrE,GACrDA,EAAIC,iBACJ,IAAIgJ,EAAmB9mB,KAAK6kB,oBAAoBhH,GAC5CoH,EAAcjlB,KAAKwhB,UAAU0D,UAAUC,MAAM2B,GAC7C7B,GAAejlB,KAAKwhB,UAAU+D,eAAeN,EAAYO,KAAKC,GAAI5H,IAClE7d,KAAKwhB,UAAUkE,eAAeC,mBAAmBtF,QAAQ4E,EAAYO,OAE7ErE,EAAgBxjB,UAAUgnB,gBAAkB,SAAU9G,GAClD,IAAIiI,EAASxE,EAAM3D,SAASK,eAAeH,GAC3C,OAAOJ,EAAM3Q,SAASsE,aAAa0U,EAAQvE,EAAuBwF,qBAAqBC,WAAWC,uBAC9FxJ,EAAM3Q,SAASsE,aAAa0U,EAAQvE,EAAuBwF,qBAAqBC,WAAWE,qBAEnG/F,EAAgBmE,kBAAoB,IACpCnE,EAAgB6C,wBAA0B,oBACnC7C,EAhNY,GAkNvBrlB,EAAQqlB,gBAAkBA,GAKnB,SAASplB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQgP,eAAY,EACpB,IAAIA,EAAa,WACb,SAASA,EAAUjE,EAAOC,GACtB9G,KAAK6G,MAAQA,EACb7G,KAAK8G,IAAMA,EAQf,OANAgE,EAAUnN,UAAUwpB,MAAQ,SAAUpf,GAClC,IAAI/F,GAAS,EAGb,OADAA,GADAA,EAASA,GAAUhC,KAAK6G,MAAML,YAAcuB,EAAKlB,MAAML,YACpCxG,KAAK8G,IAAIN,YAAcuB,EAAKjB,IAAIN,WAGhDsE,EAXM,GAajBhP,EAAQgP,UAAYA,GAKb,SAAS/O,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQsrB,gBAAa,EACrB,IAAIlhB,EAAWtK,EAAoB,GAC/BiR,EAASjR,EAAoB,IAC7BwrB,EAAc,WACd,SAASA,IACLpnB,KAAKqnB,WAAaxa,EAAOU,UAAU+Z,eAUvC,OARAF,EAAWzpB,UAAU4pB,iBAAmB,SAAUC,GACzCthB,EAASpB,UAAU0iB,IAEpBthB,EAASpB,UAAU0iB,EAAU/B,MAC7BzlB,KAAKylB,GAAK+B,EAAU/B,GACpBzlB,KAAKqnB,WAAavnB,OAAO0nB,EAAU/B,MAGpC2B,EAZO,GAclBtrB,EAAQsrB,WAAaA,GAKd,SAASrrB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ2rB,WAAa3rB,EAAQ4rB,oBAAiB,EAC9C,IAGIA,EAHAC,EAAU/rB,EAAoB,GAC9BgsB,EAAehsB,EAAoB,IACnCsK,EAAWtK,EAAoB,IAEnC,SAAW8rB,GACPA,EAAeA,EAAmB,GAAI,GAAK,KAC3CA,EAAeA,EAAmB,GAAI,GAAK,KAC3CA,EAAeA,EAAmB,GAAI,GAAK,KAC3CA,EAAeA,EAAmB,GAAI,GAAK,KAJ/C,CAKGA,EAAiB5rB,EAAQ4rB,iBAAmB5rB,EAAQ4rB,eAAiB,KACxE,IAAID,EAAc,SAAUI,GAExB,SAASJ,IACL,IAAIzc,EAAQ6c,EAAO3rB,KAAK8D,OAASA,KAIjC,OAHAgL,EAAM8c,cAAgB,GACtB9c,EAAM+c,YAAc,GACpB/c,EAAM+Q,KAAO,KACN/Q,EAqCX,OA3CA2c,EAAQ3pB,UAAUypB,EAAYI,GAQ9BprB,OAAOC,eAAe+qB,EAAW9pB,UAAW,oBAAqB,CAC7Df,IAAK,WACD,OAAOoD,KAAK+b,OAAS2L,EAAeM,IAAMhoB,KAAK+b,OAAS2L,EAAeO,IAE3EtrB,YAAY,EACZqjB,cAAc,IAElByH,EAAW9pB,UAAU4pB,iBAAmB,SAAUC,GAC1CthB,EAASpB,UAAU0iB,KACnBK,EAAOlqB,UAAU4pB,iBAAiBrrB,KAAK8D,KAAMwnB,GAC7CxnB,KAAKqnB,WAAavnB,OAAO0nB,EAAU/B,IACnCzlB,KAAK8nB,cAAgBhoB,OAAO0nB,EAAUM,eACtC9nB,KAAK+nB,YAAcjoB,OAAO0nB,EAAUO,aACpC/nB,KAAK+b,KAAO/b,KAAKkoB,UAAUV,EAAUzL,QAG7C0L,EAAW9pB,UAAUuqB,UAAY,SAAUnM,GACvC,IAAI7V,EAASpB,UAAUiX,GAgBnB,OAAO2L,EAAeS,GAdtB,OADWpM,EAAKlW,WAAWkJ,eAEvB,IAAK,KACL,IAAK,IACD,OAAO2Y,EAAeM,GAC1B,IAAK,KACL,IAAK,IACD,OAAON,EAAeU,GAC1B,IAAK,KACL,IAAK,IACD,OAAOV,EAAeO,GAC1B,QAAS,OAAOP,EAAeS,KAMpCV,EA5CO,CA6ChBG,EAAaR,YACftrB,EAAQ2rB,WAAaA,GAKd,SAAS1rB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQusB,uBAAyBvsB,EAAQwsB,iBAAc,EACvD,IAAIX,EAAU/rB,EAAoB,GAC9B0sB,EAAe,WACf,SAASA,EAAYvI,GACjB/f,KAAKuoB,oBAAoBxI,GAK7B,OAHAuI,EAAY3qB,UAAU4qB,oBAAsB,SAAUxI,GAClD/f,KAAK+f,iBAAmBA,GAErBuI,EAPQ,GASnBxsB,EAAQwsB,YAAcA,EACtB,IAAID,EAA0B,SAAUR,GAEpC,SAASQ,IACL,IAAIrd,EAAQ6c,EAAO3rB,KAAK8D,KAAM,OAASA,KAEvC,OADAgL,EAAMwd,aAAe,GACdxd,EAyBX,OA7BA2c,EAAQ3pB,UAAUqqB,EAAwBR,GAM1CQ,EAAuB1qB,UAAU8qB,KAAO,WAEpC,IADA,IAAIC,EACK1sB,EAAI,EAAG0sB,EAAO1oB,KAAKwoB,aAAaxsB,GAAIA,IACzC0sB,EAAKD,QAEbJ,EAAuB1qB,UAAUgrB,KAAO,WAEpC,IADA,IAAID,EACK1sB,EAAIgE,KAAKwoB,aAAapoB,OAAS,EAAGsoB,EAAO1oB,KAAKwoB,aAAaxsB,GAAIA,IACpE0sB,EAAKC,QAEbN,EAAuB1qB,UAAUomB,IAAM,SAAU6E,GAC7C,GAAmB,MAAfA,EACA,MAAM,IAAI3H,MAAM,8BACpBjhB,KAAKwoB,aAAavlB,KAAK2lB,IAE3BP,EAAuB1qB,UAAUkrB,eAAiB,WAC9C7oB,KAAK2oB,QAETN,EAAuB1qB,UAAU4qB,oBAAsB,SAAUxI,GAC7D,GAAI/f,KAAKwoB,aACL,IAAK,IAAIxsB,EAAI,EAAGA,EAAIgE,KAAKwoB,aAAapoB,OAAS,EAAGpE,IAC9CgE,KAAKwoB,aAAaxsB,GAAGusB,oBAAoBxI,IAE9CsI,EA9BmB,CA+B5BC,GACFxsB,EAAQusB,uBAAyBA,GAK1B,SAAStsB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQgtB,oBAAiB,EACzB,IAAI5iB,EAAWtK,EAAoB,GAC/BmtB,EAAUntB,EAAoB,IAC9BktB,EAAkB,WAClB,SAASA,IACL9oB,KAAKgpB,OAAS,IAAIppB,MAClBI,KAAKipB,oBAAqB,EAyG9B,OAvGAH,EAAenrB,UAAUomB,IAAM,SAAU/W,GACrC,GAAK9G,EAASpB,UAAUkI,GAAxB,CAEA,GAAIhN,KAAKkpB,YAAYlc,EAAQqa,YACzB,KAAM,iCAAmCra,EAAQqa,WAAa,oBAClErnB,KAAKmpB,SAASnc,KAElB8b,EAAenrB,UAAUyrB,SAAW,SAAUC,GAC1C,IAAK,IAAIrtB,EAAI,EAAGA,EAAIqtB,EAAMjpB,OAAQpE,IAC9BgE,KAAK+jB,IAAIsF,EAAMrtB,KAEvB8sB,EAAenrB,UAAU2rB,OAAS,SAAUtc,GACxC,IAAIuN,EAAQva,KAAKgpB,OAAOzoB,QAAQyM,GAC5BuN,GAAS,GAAKA,EAAQva,KAAKgpB,OAAO5oB,QAClCJ,KAAKupB,aAAahP,EAAO,IAEjCuO,EAAenrB,UAAU6rB,MAAQ,WAC7BxpB,KAAKupB,aAAa,EAAGvpB,KAAKgpB,OAAO5oB,SAErC0oB,EAAenrB,UAAUwrB,SAAW,SAAUnc,GAC1ChN,KAAKgpB,OAAO/lB,KAAK+J,UACVhN,KAAKypB,gBAEhBX,EAAenrB,UAAU4rB,aAAe,SAAU1iB,EAAO6iB,GACrD1pB,KAAKgpB,OAAOW,OAAO9iB,EAAO6iB,UACnB1pB,KAAKypB,gBAEhBhtB,OAAOC,eAAeosB,EAAenrB,UAAW,QAAS,CACrDf,IAAK,WACD,OAAOoD,KAAKgpB,OAAOY,SAEvBhlB,IAAK,SAAU5H,GACPA,IACAgD,KAAKgpB,OAAShsB,EAAM4sB,UAE5BjtB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAeosB,EAAenrB,UAAW,SAAU,CACtDf,IAAK,WACD,OAAOoD,KAAKgpB,OAAO5oB,QAEvBzD,YAAY,EACZqjB,cAAc,IAElB8I,EAAenrB,UAAUksB,QAAU,SAAUtP,GACzC,OAAIA,GAAS,GAAKA,EAAQva,KAAKgpB,OAAO5oB,OAC3BJ,KAAKgpB,OAAOzO,GAChB,MAEX9d,OAAOC,eAAeosB,EAAenrB,UAAW,gBAAiB,CAC7Df,IAAK,WACD,IAAIktB,EAEJ,OAD+B,QAA9BA,EAAK9pB,KAAKypB,sBAAmC,IAAPK,IAAsB9pB,KAAKypB,eAAiBzpB,KAAK+pB,wBACjF/pB,KAAKypB,gBAEhB9sB,YAAY,EACZqjB,cAAc,IAElB8I,EAAenrB,UAAUosB,qBAAuB,WAE5C,IADA,IAAI/nB,EAAS,GACJhG,EAAI,EAAGA,EAAIgE,KAAKgpB,OAAO5oB,OAAQpE,IAAK,CACzC,IAAI0sB,EAAO1oB,KAAKgpB,OAAOhtB,GACvBgG,EAAO0mB,EAAKrB,YAAcqB,EAE9B,OAAO1mB,GAEX8mB,EAAenrB,UAAUurB,YAAc,SAAUzD,GAC7C,OAAOzlB,KAAKgqB,cAAcvE,IAE9BqD,EAAenrB,UAAUssB,kBAAoB,SAAUxE,GACnD,OAAOzlB,KAAKgpB,OAAOpd,QAAO,SAAUse,GAAO,OAAOA,EAAIzE,KAAOA,GAAMyE,EAAIzE,GAAG5f,aAAe4f,KAAO,IAEpGqD,EAAenrB,UAAUuC,OAAS,SAAUiqB,GACnCjkB,EAASpB,UAAUqlB,KAExBnqB,KAAKmlB,MAAQgF,EAAiBhF,QAElC2D,EAAenrB,UAAUysB,iBAAmB,SAAUtE,GAC7C5f,EAASpB,UAAUghB,KAExB9lB,KAAKwpB,QACD1D,EAAOmD,mBACPjpB,KAAKE,OAAO4lB,GACPA,aAAkBlmB,MACvBI,KAAKqqB,gBAAgBvE,GAErB9lB,KAAKsqB,2BAA2BxE,KAExCgD,EAAenrB,UAAU2sB,2BAA6B,SAAUxE,GAC5D,GAAI5f,EAASpB,UAAUghB,GAAS,CAC5B,IAAI4C,EAAO1oB,KAAKuqB,aAChB7B,EAAKnB,iBAAiBzB,GACtB9lB,KAAK+jB,IAAI2E,KAGjBI,EAAenrB,UAAU0sB,gBAAkB,SAAUG,GACjD,IAAK,IAAIxuB,EAAI,EAAGA,EAAIwuB,EAAOpqB,OAAQpE,IAC/BgE,KAAKsqB,2BAA2BE,EAAOxuB,KAE/C8sB,EAAenrB,UAAU8sB,eAAiB,SAAUC,GAChD1qB,KAAKoqB,iBAAiBrB,EAAQ4B,eAAeC,UAAUF,KAEpD5B,EA5GW,GA8GtBhtB,EAAQgtB,eAAiBA,GAKlB,SAAS/sB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ+uB,kBAAoB/uB,EAAQgvB,SAAWhvB,EAAQivB,cAAW,EAElE,SAAWA,GACPA,EAASA,EAAqB,WAAI,GAAK,aACvCA,EAASA,EAAgB,MAAI,GAAK,QAClCA,EAASA,EAAmB,SAAI,GAAK,WACrCA,EAASA,EAAe,KAAI,GAAK,OACjCA,EAASA,EAAgB,MAAI,GAAK,QAClCA,EAASA,EAAiB,OAAI,GAAK,SACnCA,EAASA,EAAkB,QAAI,GAAK,UACpCA,EAASA,EAAgB,MAAI,GAAK,QAClCA,EAASA,EAAoB,UAAI,GAAK,YAT1C,CAUcjvB,EAAQivB,WAAajvB,EAAQivB,SAAW,KAEtD,SAAWD,GACPA,EAASA,EAAe,KAAI,GAAK,OACjCA,EAASA,EAAc,IAAI,GAAK,MAChCA,EAASA,EAAgB,MAAI,GAAK,QAClCA,EAASA,EAAiB,OAAI,GAAK,SAJvC,CAKchvB,EAAQgvB,WAAahvB,EAAQgvB,SAAW,KAEtD,SAAWD,GACPA,EAAkBA,EAA0B,OAAI,GAAK,SACrDA,EAAkBA,EAA2B,QAAI,GAAK,UACtDA,EAAkBA,EAAwB,KAAI,GAAK,OAHvD,CAIuB/uB,EAAQ+uB,oBAAsB/uB,EAAQ+uB,kBAAoB,MAK1E,SAAS9uB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAI4P,EAAYhR,EAAoB,GAChCsK,EAAWtK,EAAoB,GAC/B4iB,EAAc,WACd,SAASA,KA6BT,OA3BAA,EAAWwM,2BAA6B,SAAUC,EAAWC,GACzD,OAAIte,EAAUsC,QAAQQ,sBAAuB8O,EAAW2M,iBAAiBF,KAChEzM,EAAW4M,sBAAsBH,KAClCzM,EAAW4M,sBAAsBH,GAAa,IAClDzM,EAAW4M,sBAAsBH,GAAWhoB,KAAKioB,GAC1C1M,EAAW6M,gCAI1B7M,EAAW2M,iBAAmB,SAAUF,GACpC,OAAOre,EAAUsC,QAAQmN,gBAAkB4O,EAAU1qB,QAAQ,UAAY,GAAK0qB,EAAU1qB,QAAQ,YAAc,IAElHie,EAAWC,aAAe,SAAUZ,GAChC,OAAOjR,EAAUsC,QAAQmN,eAAiBnW,EAASpB,UAAU+Y,EAAIyN,iBAErE9M,EAAWJ,UAAY,SAAUP,GAC7B,OAAOjR,EAAUsC,QAAQC,GAAK0O,EAAI0N,MAAQ1N,EAAIyN,eAAe,GAAGC,OAEpE/M,EAAWH,UAAY,SAAUR,GAC7B,OAAOjR,EAAUsC,QAAQC,GAAK0O,EAAI2N,MAAQ3N,EAAIyN,eAAe,GAAGE,OAEpEhN,EAAWiN,wBAA0B7e,EAAUsC,QAAQmN,cAAgB,aAAgBzP,EAAUsC,QAAQO,MAAQ7C,EAAUsC,QAAQsN,WAAa7M,OAAO+b,aAAe,cAAgB,YACtLlN,EAAWmN,sBAAwB/e,EAAUsC,QAAQmN,cAAgB,WAAczP,EAAUsC,QAAQO,MAAQ7C,EAAUsC,QAAQsN,WAAa7M,OAAO+b,aAAe,YAAc,UAChLlN,EAAWM,wBAA0BlS,EAAUsC,QAAQmN,cAAgB,YAAezP,EAAUsC,QAAQO,MAAQ7C,EAAUsC,QAAQsN,WAAa7M,OAAO+b,aAAe,cAAgB,YACrLlN,EAAWoN,0BAA4B,qBACvCpN,EAAW4M,sBAAwB,GACnC5M,EAAW6M,+BAAgC,EACpC7M,EA9BO,GAgClB1iB,EAAQ0iB,WAAaA,GAKd,SAASziB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ+vB,oBAAiB,EACzB,IAAIlE,EAAU/rB,EAAoB,GAC9BgsB,EAAehsB,EAAoB,IACnCkwB,EAAclwB,EAAoB,IAClCwK,EAA+BxK,EAAoB,IACnDmwB,EAAUnwB,EAAoB,IAC9BsK,EAAWtK,EAAoB,GAC/BowB,EAAkBpwB,EAAoB,GACtCqwB,EAAsBrwB,EAAoB,IAC1CiwB,EAAkB,SAAUhE,GAE5B,SAASgE,EAAehlB,EAAOC,EAAKolB,EAAUC,QAC5B,IAAVtlB,IAAoBA,EAAQ,WACpB,IAARC,IAAkBA,EAAM,WACX,IAAbolB,IAAuBA,EAAW,QACd,IAApBC,IAA8BA,EAAkB,GACpD,IAAInhB,EAAQ6c,EAAO3rB,KAAK8D,OAASA,KAcjC,OAbAgL,EAAMohB,OAAS,KACfphB,EAAMqhB,KAAO,KACbrhB,EAAMshB,UAAY,EAClBthB,EAAMuhB,iBAAmB,EACzBvhB,EAAMwhB,WAAa,EACnBxhB,EAAMyhB,KAAO,EACbzhB,EAAM0hB,qBAAuB,EAC7B1hB,EAAM2hB,OAAS,EACf3hB,EAAM4hB,uBAAwB,EAC9B5hB,EAAMnE,MAAQA,EACdmE,EAAMlE,IAAMA,EACZkE,EAAMkhB,SAAWA,EACjBlhB,EAAMmhB,gBAAkBA,EACjBnhB,EAwKX,OA5LA2c,EAAQ3pB,UAAU6tB,EAAgBhE,GAsBlCgE,EAAeluB,UAAU4pB,iBAAmB,SAAUC,GAC9CthB,EAASpB,UAAU0iB,KACnBK,EAAOlqB,UAAU4pB,iBAAiBrrB,KAAK8D,KAAMwnB,GAC7CxnB,KAAK6G,MAAQmlB,EAAgBjmB,cAAciE,cAAcwd,EAAU3gB,OACnE7G,KAAK8G,IAAMklB,EAAgBjmB,cAAciE,cAAcwd,EAAU1gB,KAC7DZ,EAASpB,UAAU0iB,EAAU0E,YAC7BlsB,KAAKksB,SAAW1E,EAAU0E,UAC1BhmB,EAASpB,UAAU0iB,EAAU2E,mBAC7BnsB,KAAKmsB,gBAAkB3E,EAAU2E,iBACjCjmB,EAASpB,UAAU0iB,EAAUxe,aAC7BhJ,KAAK6sB,kBAAoBZ,EAAoBa,kBAAkBC,aAAajB,EAAYkB,UAAWxF,EAAUxe,YAC7G9C,EAASpB,UAAU0iB,EAAUhf,OAC7BxI,KAAKitB,YAAczF,EAAUhf,KAC7BtC,EAASpB,UAAU0iB,EAAU0F,uBAC7BltB,KAAKmtB,4BAA8BlB,EAAoBa,kBAAkBC,aAAa3mB,EAA6BgD,2BAA4Boe,EAAU0F,sBACzJhnB,EAASpB,UAAU0iB,EAAU5e,SAC7B5I,KAAKotB,cAAgBnB,EAAoBa,kBAAkBC,aAAahB,EAAQsB,MAAO7F,EAAU5e,QACjG1C,EAASpB,UAAU0iB,EAAU8F,wBAC7BttB,KAAK4sB,wBAA0BpF,EAAU8F,wBAGrDzB,EAAeluB,UAAU4vB,gBAAkB,SAAU1mB,EAAOC,GACxD,IAAKD,IAAUC,EACX,OAAO,IAAIlH,MACf,IAAIiE,EAAOmoB,EAAgBjmB,cAAcW,WAAWG,EAAO7G,KAAKosB,QAC5DxoB,EAAKooB,EAAgBjmB,cAAcY,WAAWG,EAAK9G,KAAKqsB,MAC5D,OAAIrsB,KAAKusB,iBAAmB,EACjBvsB,KAAKwtB,iCAAiC3pB,EAAMD,GAChD5D,KAAKytB,2BAA2B5pB,EAAMD,IAEjDioB,EAAeluB,UAAU6vB,iCAAmC,SAAU3mB,EAAOC,GAGzE,IAFA,IAAI4mB,EAAS,IAAI9tB,MACbyN,EAAQrN,KAAK2tB,cAAc9mB,GACtBwG,GAASqgB,EAAOttB,OAASJ,KAAKusB,kBAAoBP,EAAgBjmB,cAAcM,aAAagH,EAAOvG,IAAQ,GAC7G9G,KAAK4tB,kBAAkBvgB,IACvBqgB,EAAOzqB,KAAKoK,GAChBA,EAAQrN,KAAK6tB,aAAaxgB,GAE9B,OAAOqgB,GAEX7B,EAAeluB,UAAU8vB,2BAA6B,SAAU5mB,EAAOC,GAGnE,IAFA,IAAI4mB,EAAS,IAAI9tB,MACbyN,EAAQrN,KAAK2tB,cAAc9mB,GACtBwG,GAAS2e,EAAgBjmB,cAAcM,aAAagH,EAAOvG,IAAQ,GACpE9G,KAAK4tB,kBAAkBvgB,IACvBqgB,EAAOzqB,KAAKoK,GAChBA,EAAQrN,KAAK6tB,aAAaxgB,GAE9B,OAAOqgB,GAEX7B,EAAeluB,UAAUgwB,cAAgB,SAAU9mB,GAC/C,OAAI7G,KAAK4tB,kBAAkB/mB,GAChBA,EACJ7G,KAAK6tB,aAAahnB,IAE7BglB,EAAeluB,UAAUiwB,kBAAoB,SAAU7lB,GACnD,OAAO/H,KAAK8tB,cAAc/lB,IAAS/H,KAAK+tB,UAAUhmB,MAAW/H,KAAKguB,qBAAuBhuB,KAAKiuB,cAAclmB,KAEhH8jB,EAAeluB,UAAUmwB,cAAgB,SAAU/lB,GAC/C,QAAKA,KAED/H,KAAKosB,QAAUJ,EAAgBjmB,cAAcM,aAAarG,KAAK6G,MAAOkB,GAAQ,MAErD,GAAzB/H,KAAKusB,kBAAyBvsB,KAAK8G,KAAOklB,EAAgBjmB,cAAcM,aAAa0B,EAAM/H,KAAK8G,KAAO,IAI/G+kB,EAAeluB,UAAUqwB,kBAAoB,WACzC,OAAOhuB,KAAKksB,SAAW,KAAOlsB,KAAKosB,QAEvCP,EAAeluB,UAAUkwB,aAAe,SAAU9lB,GAC9C,OAAK/H,KAAK8tB,cAAc/lB,GAEpB/H,KAAKguB,oBACEhuB,KAAKkuB,yBAAyBnmB,GAClC/H,KAAKmuB,sBAAsBpmB,GAHvB,MAKf8jB,EAAeluB,UAAUywB,kBAAoB,SAAUtlB,EAAMF,GAMzD,OAJI5I,KAAK4sB,sBACEZ,EAAgBjmB,cAAc4D,gCAAgC3J,KAAK6sB,kBAAmB/jB,EAAMF,EAAO5I,KAAKmtB,6BAExG,IAAIllB,KAAKa,EAAMF,EAAO5I,KAAKitB,cAG1CxwB,OAAOC,eAAemvB,EAAeluB,UAAW,cAAe,CAC3Df,IAAK,WAAc,OAAOoD,KAAKysB,MAC/B7nB,IAAK,SAAU5H,GACPA,EAAQ,GAAKA,GAAS,KACtBgD,KAAKysB,KAAOzvB,IAEpBL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemvB,EAAeluB,UAAW,oBAAqB,CACjEf,IAAK,WAAc,OAAOoD,KAAKwsB,YAC/B5nB,IAAK,SAAUoE,GACPA,GAAa8iB,EAAYkB,UAAUqB,QAAUrlB,GAAa8iB,EAAYkB,UAAUsB,WAChFtuB,KAAKwsB,WAAaxjB,IAE1BrM,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemvB,EAAeluB,UAAW,8BAA+B,CAC3Ef,IAAK,WACD,OAAOoD,KAAK0sB,sBAEhB9nB,IAAK,SAAU5H,GACPA,GAASoJ,EAA6BgD,2BAA2BmlB,OAASvxB,GAASoJ,EAA6BgD,2BAA2BC,OAC3IrJ,KAAK0sB,qBAAuB1vB,IAEpCL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemvB,EAAeluB,UAAW,gBAAiB,CAC7Df,IAAK,WAAc,OAAOoD,KAAK2sB,QAC/B/nB,IAAK,SAAU5H,GACPA,GAAS+uB,EAAQsB,MAAMmB,SAAWxxB,GAAS+uB,EAAQsB,MAAMoB,WACzDzuB,KAAK2sB,OAAS3vB,IAEtBL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemvB,EAAeluB,UAAW,QAAS,CACrDf,IAAK,WAAc,OAAOoD,KAAKosB,QAC/BxnB,IAAK,SAAUmD,GACNA,IAEL/H,KAAKosB,OAASrkB,EACR/H,KAAKqsB,MAAQtkB,EAAO/H,KAAKqsB,OAC3BrsB,KAAKqsB,KAAOtkB,KAEpBpL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemvB,EAAeluB,UAAW,MAAO,CACnDf,IAAK,WAAc,OAAOoD,KAAKqsB,MAC/BznB,IAAK,SAAUmD,GACNA,IAEL/H,KAAKqsB,KAAOtkB,EACN/H,KAAKosB,QAAUrkB,EAAO/H,KAAKosB,SAC7BpsB,KAAKosB,OAASrkB,KAEtBpL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemvB,EAAeluB,UAAW,kBAAmB,CAC/Df,IAAK,WAAc,OAAOoD,KAAKusB,kBAC/B3nB,IAAK,SAAU5H,GACPA,EAAQ,IACRA,EAAQ,GACZgD,KAAKusB,iBAAmBvvB,GAE5BL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemvB,EAAeluB,UAAW,WAAY,CACxDf,IAAK,WAAc,OAAOoD,KAAKssB,WAC/B1nB,IAAK,SAAU5H,GACPA,EAAQ,IACRgD,KAAKssB,UAAYtvB,IAEzBL,YAAY,EACZqjB,cAAc,IAEX6L,EA7LW,CA8LpBjE,EAAaR,YACftrB,EAAQ+vB,eAAiBA,GAKlB,SAAS9vB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQirB,0BAAuB,EAC/B,IAAI2H,EAAS9yB,EAAoB,IAC7BuK,EAAcvK,EAAoB,GAClC+yB,EAAU/yB,EAAoB,IAC9BgzB,EAAoBhzB,EAAoB,IACxCmtB,EAAUntB,EAAoB,IAC9BylB,EAAUzlB,EAAoB,GAC9BizB,EAAejzB,EAAoB,IACnCkzB,EAAalzB,EAAoB,IACjCmrB,EAAwB,WACxB,SAASA,IACL/mB,KAAK+uB,oBAAsB,GAC3B/uB,KAAKgvB,4BAA8B,GACnChvB,KAAKivB,cAAgB,GACrBjvB,KAAKkvB,iBAAmB,IACxBlvB,KAAKmvB,aAAe,EA2tBxB,OAztBApI,EAAqBppB,UAAUyxB,YAAc,SAAUC,EAAqB1I,EAAU2I,EAAmBjG,EAAOnE,EAAWqK,EAAUC,QACzG,IAApBA,IAA8BA,EAAkB,GACpDxvB,KAAKqvB,oBAAsBA,EAC3BrvB,KAAK2mB,SAAWA,EAChB3mB,KAAKuvB,SAAWA,EAChBvvB,KAAKqpB,MAAQA,EACbrpB,KAAKyvB,kBAAoBvK,EAAUwK,UACnC1vB,KAAKklB,UAAYA,EACjBllB,KAAKsvB,kBAAoBA,EACzBtvB,KAAK2vB,WAAaL,EAAkBK,WACpC3vB,KAAK4vB,iBAAmBN,EAAkBM,iBAC1C5vB,KAAK6vB,eAAiBP,EAAkBO,eACxC7vB,KAAK8vB,YAAcR,EAAkBS,gBACrC/vB,KAAKgwB,UAAY,IAAItB,EAAOuB,KAAKX,EAAkBY,oBAAqBZ,EAAkBY,qBAC1FlwB,KAAKmwB,cAAgBb,EAAkBc,uBACvCpwB,KAAKqwB,2BAA6BrwB,KAAK2mB,SAAS9Y,OAAS7N,KAAK2vB,YAAc,EAC5E3vB,KAAKswB,aAAevH,EAAQwH,UAAUC,gBAAgBjB,GACtDvvB,KAAKywB,oBAAsBzwB,KAAK0wB,oBAChC1wB,KAAKwvB,gBAAkBA,EACvBxvB,KAAK2wB,gCACL3wB,KAAK4wB,sCAET7J,EAAqBppB,UAAUkzB,sBAAwB,SAAUtW,EAAOuW,GACpE,IAAIC,EAAYD,EACZ9wB,KAAKgxB,4BACLhxB,KAAK2mB,SAAS/Y,MAAQ5N,KAAKywB,oBAC/B,OAAOzwB,KAAKixB,kBAAkB1W,EAAOuW,EAAYC,IAErDhK,EAAqBppB,UAAUuzB,mBAAqB,SAAU3W,EAAO4W,GACjE,IAAInvB,EAAShC,KAAKixB,kBAAkB1W,GAAO,EAAMva,KAAK8vB,aAEtD,OADA9tB,EAAO2V,SAASzM,GAAKlL,KAAKoxB,oBAAoBD,GACvCnvB,GAEX+kB,EAAqBppB,UAAUszB,kBAAoB,SAAU1W,EAAOuW,EAAYnjB,GAC5E,IAAI3L,EAAS,IAAI4sB,EAAkByC,gBAKnC,OAJArvB,EAAOsvB,YAAYtxB,KAAKuxB,sBAAsBhX,EAAOuW,IACjDnjB,GACA3L,EAAOwvB,QAAQxxB,KAAKyxB,kBAAkBX,EAAYnjB,IACtD3L,EAAOqP,UAAYyf,EAAa,cAAgB,cACzC9uB,GAEX+kB,EAAqBppB,UAAU4zB,sBAAwB,SAAUhX,EAAOuW,GACpE,IAAI9uB,EAAS,IAAIqf,EAAQzJ,WAAMxU,OAAWA,GACtCsuB,GAAYnX,EAAQ,IAAMuW,EAAa9wB,KAAK2mB,SAAS/Y,MAAQ5N,KAAK2mB,SAAS9Y,QAK/E,OAJIijB,EACA9uB,EAAOkJ,EAAIwmB,EAEX1vB,EAAOK,EAAIqvB,EACR1vB,GAEX+kB,EAAqBppB,UAAU8zB,kBAAoB,SAAUX,EAAYC,GACrE,IAAI/uB,EAAS,IAAI0sB,EAAOuB,KAAK,EAAG,GAKhC,OAJIa,EACA9uB,EAAO6L,OAASkjB,EAEhB/uB,EAAO4L,MAAQmjB,EACZ/uB,GAEX+kB,EAAqBppB,UAAUg0B,oBAAsB,SAAUpX,EAAO4W,GAClE,IAAInvB,EAAS,IAAI4sB,EAAkByC,gBAInC,OAHArvB,EAAOsvB,YAAYtxB,KAAK4xB,qBAAqBrX,EAAO4W,IACpDnvB,EAAOwvB,QAAQxxB,KAAK6xB,iBAAiBV,IACrCnvB,EAAOqP,UAAYrR,KAAK8xB,sBAAsBX,EAAWnvB,EAAQhC,KAAK+xB,8BAA8B/vB,EAAO2V,SAASzM,IAC7GlJ,GAEX+kB,EAAqBppB,UAAUm0B,sBAAwB,SAAUX,EAAWa,EAAeC,GACvF,IAAIjwB,EAAS,cAGb,OAFImvB,EAAUe,WAAalyB,KAAKuvB,SAAS2C,WAAalyB,KAAKmyB,mCAAmCH,EAAeC,KACzGjwB,GAAU,+BACPA,GAEX+kB,EAAqBppB,UAAUw0B,mCAAqC,SAAUH,EAAeC,GAGzF,IAFA,IAAIG,EAAgBJ,EAAcra,SAASzM,EACvCmnB,EAAiBL,EAAcra,SAASzM,EAAI8mB,EAAcrkB,KAAKC,MAC1D5R,EAAI,EAAGA,EAAIi2B,EAAmB7xB,OAAQpE,IAAK,CAChD,IAAIs2B,EAAwBL,EAAmBj2B,GAAG2b,SAASzM,EACvDqnB,EAAyBN,EAAmBj2B,GAAG2b,SAASzM,EAAI+mB,EAAmBj2B,GAAG2R,KAAKC,MAC3F,GAAIwkB,GAAiBE,GAAyBD,GAAkBE,EAC5D,OAAO,EAEf,OAAO,GAEXxL,EAAqBppB,UAAUi0B,qBAAuB,SAAUrX,EAAO4W,GACnE,OAAO,IAAI9P,EAAQzJ,MAAM2C,EAAQva,KAAK2mB,SAAS/Y,MAAQ5N,KAAKoxB,oBAAoBD,QAAY/tB,IAEhG2jB,EAAqBppB,UAAUk0B,iBAAmB,SAAUV,GACxD,OAAO,IAAIzC,EAAOuB,KAAKjwB,KAAK2mB,SAAS/Y,MAAQ5N,KAAKoxB,oBAAoBD,GAAY,IAEtFpK,EAAqBppB,UAAUyzB,oBAAsB,SAAUD,GAC3D,OAAIA,EAAUe,WAAalyB,KAAKuvB,SAAS2C,UAC9B,EACPlyB,KAAKuvB,UAAYZ,EAAQ5D,SAASyH,WAC3B,EACPxyB,KAAKuvB,UAAYZ,EAAQ5D,SAAS0H,MAC3B,GACPzyB,KAAKuvB,UAAYZ,EAAQ5D,SAAS2H,SAC3B,EACP1yB,KAAKuvB,UAAYZ,EAAQ5D,SAAS4H,KAC3B,EACP3yB,KAAKuvB,UAAYZ,EAAQ5D,SAAS6H,MAC3B,KACP5yB,KAAKuvB,UAAYZ,EAAQ5D,SAAS8H,OAC3B,GACP7yB,KAAKuvB,UAAYZ,EAAQ5D,SAAS+H,QAC3B,EACP9yB,KAAKuvB,UAAYZ,EAAQ5D,SAASgI,MAC3B,EACJ,GAEXhM,EAAqBppB,UAAUq1B,0BAA4B,SAAUzY,GACjE,IAAIvY,EAAS,IAAI4sB,EAAkByC,gBAInC,OAHArvB,EAAOqP,UAAYrR,KAAKizB,wBAAwB1Y,GAChDvY,EAAOsvB,YAAYtxB,KAAKkzB,oBAAoB3Y,IAC5CvY,EAAO6P,aAAa,aAAc0I,GAC3BvY,GAEX+kB,EAAqBppB,UAAUs1B,wBAA0B,SAAU1Y,GAC/D,IAAIvY,EAAS,uBAKb,OAJIhC,KAAKmzB,QAAQ5Y,GAAO6Y,gBACpBpxB,EAAS,6BACThC,KAAKklB,UAAUC,MAAM5K,GAAO8Y,WAC5BrxB,GAAU,0BACPA,GAEX+kB,EAAqBppB,UAAUu1B,oBAAsB,SAAU3Y,GAC3D,IAAI1M,EAAS7N,KAAKszB,cAAc/Y,GAC5BlY,EAAIkY,EAAQva,KAAK2mB,SAAS9Y,QAAU7N,KAAK2mB,SAAS9Y,OAASA,GAAU,EACrE7L,EAAS,IAAIqf,EAAQzJ,MAAM5X,KAAKuzB,aAAavzB,KAAKmzB,QAAQ5Y,GAAO1T,OAAQxE,GAC7E,GAAIrC,KAAKmzB,QAAQ5Y,GAAO6Y,cAAe,CACnC,IAAII,EAAWxzB,KAAKszB,cAAc/Y,GAClCvY,EAAOkJ,GAAKsoB,EAAW,EAE3B,OAAOxxB,GAEX+kB,EAAqBppB,UAAU81B,mBAAqB,SAAUlZ,EAAOmZ,QACzC,IAApBA,IAA8BA,GAAkB,GACpD,IAAI1xB,EAAS,IAAI4sB,EAAkByC,gBAC/B7L,EAAOxlB,KAAKmzB,QAAQ5Y,GACpBoZ,EAAuB3zB,KAAKklB,UAAU0O,gBAAkB5zB,KAAKklB,UAAU2O,uBAAuBtZ,GAelG,OAdKiL,EAAK4N,gBACNpxB,EAAO2L,KAAKC,MAAQ5N,KAAK8zB,aAAavZ,GAClCmZ,IACA1xB,EAAO2L,KAAKE,OAAS7N,KAAKszB,cAAc/Y,KAEhDvY,EAAOqP,UAAYrR,KAAK+zB,iBAAiBxZ,EAAOvY,EAAO2L,KAAKC,OACxD4X,EAAKwO,QACLhyB,EAAOoL,MAAM6mB,gBAAkBzO,EAAKwO,MAChCL,IACA3xB,EAAOoL,MAAM8mB,gBAAkB1O,EAAKwO,MACpChyB,EAAOoL,MAAM+mB,iBAAmB3O,EAAKwO,MACrChyB,EAAOoL,MAAMgnB,eAAiB5O,EAAKwO,QAGpChyB,GAEX+kB,EAAqBppB,UAAUo2B,iBAAmB,SAAUxZ,EAAO8Z,GAC/D,IAAIryB,EAAS,gBACTwjB,EAAOxlB,KAAKmzB,QAAQ5Y,GACpBoZ,EAAuB3zB,KAAKklB,UAAU0O,gBAAkB5zB,KAAKklB,UAAU2O,uBAAuBtZ,GASlG,OARIiL,EAAK4N,cACLpxB,GAAU,uBAENqyB,GAAar0B,KAAKsvB,kBAAkBgF,iBACpCtyB,GAAU,uBACV2xB,IACA3xB,GAAUhC,KAAKu0B,+BAA+B/O,KAE/CxjB,GAEX+kB,EAAqBppB,UAAU42B,+BAAiC,SAAU/O,GACtE,IAAIxjB,EAAS,mBAKb,OAJqB,GAAjBwjB,EAAKgP,WACLxyB,GAAU,mBACVwjB,EAAKgP,UAAY,MACjBxyB,GAAU,kBACPA,GAEX+kB,EAAqBppB,UAAU82B,aAAe,SAAUla,GACpD,IAAIvY,EAAShC,KAAKkzB,oBAAoB3Y,GAGtC,OAFKva,KAAKmzB,QAAQ5Y,GAAO6Y,gBACrBpxB,EAAOK,GAAKrC,KAAKsvB,kBAAkBoF,uBAChC1yB,GAEX+kB,EAAqBppB,UAAUg3B,YAAc,SAAUpa,GACnD,OAAO,IAAImU,EAAOuB,KAAKjwB,KAAK8zB,aAAavZ,GAAQva,KAAKszB,cAAc/Y,KAExEwM,EAAqBppB,UAAUm2B,aAAe,SAAUvZ,GACpD,IAAIiL,EAAOxlB,KAAKmzB,QAAQ5Y,GACxB,OAAOiL,EAAK4N,cAAgBpzB,KAAKszB,cAAc/Y,GAASvT,KAAKsU,IAAItb,KAAK40B,oBAAoBpP,EAAK3e,MAAO2e,EAAK1e,KAAM9G,KAAKmvB,eAE1HpI,EAAqBppB,UAAU21B,cAAgB,SAAU/Y,GACrD,IAAIiL,EAAOxlB,KAAKmzB,QAAQ5Y,GACxB,OAAIiL,EAAK4N,cACEpzB,KAAK6vB,eACZ7vB,KAAKklB,UAAU2P,4BAA4BrP,EAAKC,IACzCzlB,KAAK4vB,iBACT5vB,KAAK2vB,YAEhB5I,EAAqBppB,UAAUw1B,QAAU,SAAU5Y,GAC/C,OAAOva,KAAKklB,UAAUC,MAAM5K,GAAOiL,MAEvCuB,EAAqBppB,UAAUm3B,2BAA6B,SAAUva,GAClE,IAAIvY,EAAS,IAAI4sB,EAAkByC,gBAGnC,OAFArvB,EAAOqP,UAAY,gBACnBrP,EAAOwvB,QAAQxxB,KAAK+0B,oBAAoBxa,IACjCvY,GAEX+kB,EAAqBppB,UAAUo3B,oBAAsB,SAAUxa,GAC3D,OAAO,IAAImU,EAAOuB,KAAKjwB,KAAKg1B,qBAAqBza,GAAQ,IAE7DwM,EAAqBppB,UAAUq3B,qBAAuB,SAAUza,GAC5D,OAAOva,KAAK8zB,aAAavZ,GAASva,KAAKmzB,QAAQ5Y,GAAOia,SAAW,KAErEzN,EAAqBppB,UAAUs3B,uBAAyB,SAAU1a,EAAO2a,GACrE,IAAIlzB,EAAS,IAAI4sB,EAAkByC,gBAEnC,GADArvB,EAAOqP,UAAYrR,KAAKm1B,4BAA4BD,IAC/CA,EAAc,CACf,IAAIE,EAAQp1B,KAAKy0B,aAAala,GAAOrP,EACjCkqB,EAAQp1B,KAAKsvB,kBAAkB+F,8BAC/BrzB,EAAO2L,KAAKC,MAAQwnB,EACpBpzB,EAAOszB,QAAQhoB,MAAQ8nB,GAG/B,OAAOpzB,GAEX+kB,EAAqBppB,UAAUw3B,4BAA8B,SAAUD,GACnE,IAAIlzB,EAAS,qBAEb,OADAA,GAAUkzB,EAAe,oBAAsB,sBAGnDnO,EAAqBppB,UAAU43B,mCAAqC,SAAUhb,GAC1E,IAAIvY,EAAS,IAAI4sB,EAAkByC,gBAC/BzjB,EAAQ5N,KAAK20B,YAAYpa,GAAO3M,MAIpC,OAHA5L,EAAOqP,UAAY,0BACnBrP,EAAOsvB,YAAYtxB,KAAKkzB,oBAAoB3Y,IAC5CvY,EAAO2V,SAASzM,EAAIlJ,EAAO2V,SAASzM,EAAI0C,EACjC5L,GAEX+kB,EAAqBppB,UAAU63B,2BAA6B,WACxD,IAAIxzB,EAAS,IAAI4sB,EAAkByC,gBAEnC,OADArvB,EAAOqP,UAAY,mBACZrP,GAEX+kB,EAAqBppB,UAAU83B,wBAA0B,SAAUlb,GAC/D,OAAOva,KAAK01B,kBAAkBnb,EAAO,iBAEzCwM,EAAqBppB,UAAUg4B,qBAAuB,SAAUpb,GAC5D,IAAIvY,EAAS,IAAIqf,EAAQzJ,WAAMxU,OAAWA,GAE1C,OADApB,EAAOK,EAAIkY,EAAQva,KAAK2mB,SAAS9Y,OAC1B7L,GAEX+kB,EAAqBppB,UAAUi4B,iBAAmB,WAC9C,OAAO,IAAIlH,EAAOuB,KAAKjwB,KAAK2mB,SAAS/Y,MAAQ5N,KAAKywB,oBAAqBzwB,KAAK2mB,SAAS9Y,SAEzFkZ,EAAqBppB,UAAUk4B,oBAAsB,SAAUtb,GAC3D,OAAOva,KAAK01B,kBAAkBnb,EAAO,oBAEzCwM,EAAqBppB,UAAU+3B,kBAAoB,SAAUnb,EAAOlJ,GAChE,IAAIrP,EAAS,IAAI4sB,EAAkByC,gBAInC,OAHArvB,EAAOqP,UAAYA,EACnBrP,EAAOsvB,YAAYtxB,KAAK21B,qBAAqBpb,IAC7CvY,EAAOwvB,QAAQxxB,KAAK41B,oBACb5zB,GAEX+kB,EAAqBppB,UAAUm4B,yBAA2B,SAAUC,GAChE,IAAI/zB,EAAS,IAAI4sB,EAAkByC,gBAInC,OAHArvB,EAAOqP,UAAY,eACnBrP,EAAOsvB,YAAYtxB,KAAKg2B,6BAA6BD,EAAmBlvB,QACxE7E,EAAOwvB,QAAQxxB,KAAKi2B,yBAAyBF,IACtC/zB,GAEX+kB,EAAqBppB,UAAUq4B,6BAA+B,SAAUE,GACpE,IAAIl0B,EAAS,IAAIqf,EAAQzJ,WAAMxU,OAAWA,GAE1C,OADApB,EAAOkJ,EAAIlL,KAAKuzB,aAAa2C,GACtBl0B,GAEX+kB,EAAqBppB,UAAUs4B,yBAA2B,SAAUE,GAChE,OAAO,IAAIzH,EAAOuB,KAAKjwB,KAAK40B,oBAAoBuB,EAAkBtvB,MAAOsvB,EAAkBrvB,KAAM9G,KAAKgxB,8BAE1GjK,EAAqBppB,UAAUqzB,0BAA4B,WACvD,OAAOhqB,KAAKsU,IAAItb,KAAKqvB,oBAAoBxhB,OAAS7N,KAAKwvB,gBAAiBxvB,KAAK2mB,SAAS9Y,OAAS7N,KAAKyvB,oBAExG1I,EAAqBppB,UAAUy4B,iBAAmB,SAAU3Q,EAAI4Q,EAAgBC,EAAgBC,GAG5F,IAFA,IAAIv0B,EAAS,IAAIpC,MACb42B,EAAkBx2B,KAAKy2B,mBAAmBJ,EAAgBC,EAAgBC,GACrEv6B,EAAI,EAAGA,EAAIw6B,EAAgBp2B,OAAS,EAAGpE,IAC5CgG,EAAOiB,KAAKjD,KAAK02B,qBAAqBjR,EAAI+Q,EAAgBx6B,GAAIw6B,EAAgBx6B,EAAI,GAAS,GAALA,GAAUA,GAAKw6B,EAAgBp2B,OAAS,IAElI,OADA4B,EAAOiB,KAAKjD,KAAK22B,aAAalR,EAAI+Q,EAAiBx0B,EAAQq0B,EAAgBC,IACpEt0B,GAEX+kB,EAAqBppB,UAAU+4B,qBAAuB,SAAUjR,EAAImR,EAAYC,EAAUC,GACtF,IAAI90B,EAAS,IAAI4sB,EAAkByC,gBAC/BP,EAAa8F,EAAW1rB,GAAK2rB,EAAS3rB,EAK1C,OAJAlJ,EAAOqP,UAAYrR,KAAK+2B,sBAAsBjG,GAC9C9uB,EAAOsvB,YAAYtxB,KAAKg3B,qBAAqBJ,EAAYC,IACzD70B,EAAOwvB,QAAQxxB,KAAKi3B,iBAAiBL,EAAYC,EAAU/F,EAAYgG,IACvE90B,EAAO6P,aAAa,gBAAiB4T,GAC9BzjB,GAEX+kB,EAAqBppB,UAAUo5B,sBAAwB,SAAUjG,GAC7D,OAAOA,EAAa/J,EAAqBC,WAAWE,mBAAqBH,EAAqBC,WAAWC,sBAE7GF,EAAqBppB,UAAUq5B,qBAAuB,SAAUJ,EAAYC,GACxE,OAAO,IAAIxV,EAAQzJ,MAAM5Q,KAAK0D,IAAIksB,EAAW1rB,EAAG2rB,EAAS3rB,GAAIlE,KAAK0D,IAAIksB,EAAWv0B,EAAGw0B,EAASx0B,KAEjG0kB,EAAqBppB,UAAUs5B,iBAAmB,SAAUL,EAAYC,EAAU/F,EAAYgG,GAC1F,IAAI90B,EAAS,IAAI0sB,EAAOuB,KAAK,EAAG,GAC5BiH,EAAiBJ,EAAa,EAAI,EAKtC,OAJIhG,EACA9uB,EAAO6L,OAAS7G,KAAKC,IAAI4vB,EAASx0B,EAAIu0B,EAAWv0B,GAAK60B,EAEtDl1B,EAAO4L,MAAQ5G,KAAKC,IAAI4vB,EAAS3rB,EAAI0rB,EAAW1rB,GAAKgsB,EAClDl1B,GAEX+kB,EAAqBppB,UAAUg5B,aAAe,SAAUlR,EAAI+Q,EAAiBW,EAAgBd,EAAgBC,GACzG,IAAIt0B,EAAS,IAAI4sB,EAAkByC,gBAC/B+F,EAAWp3B,KAAKq3B,kBAAkBF,EAAgBd,EAAgBC,GAClEgB,EAAgBt3B,KAAKu3B,iBAAiBf,EAAiBH,EAAgBC,GAI3E,OAHAt0B,EAAOqP,UAAYrR,KAAKw3B,kBAAkBF,GAC1Ct1B,EAAOsvB,YAAYtxB,KAAKy3B,cAAcL,EAAUE,IAChDt1B,EAAO6P,aAAa,gBAAiB4T,GAC9BzjB,GAEX+kB,EAAqBppB,UAAU05B,kBAAoB,SAAUF,EAAgBd,EAAgBC,GAEzF,OAAOa,EADcd,EAAiBC,EAAiBa,EAAe/2B,OAAS,EAAI,IAGvF2mB,EAAqBppB,UAAU45B,iBAAmB,SAAUf,EAAiBH,EAAgBC,GACzF,IAAIoB,EAAgBlB,EAAgBH,EAAiBC,EAAiBE,EAAgBp2B,OAAS,EAAI,GAC/Fu3B,EAAYnB,EAAgBH,EAAiBC,EAAiBE,EAAgBp2B,OAAS,EAAI,GAC/F,OAAIs3B,EAAcxsB,GAAKysB,EAAUzsB,EACtBwsB,EAAcr1B,EAAIs1B,EAAUt1B,EAAIssB,EAAQ7D,SAAS8M,IAAMjJ,EAAQ7D,SAAS+M,OAC5EH,EAAcxsB,EAAIysB,EAAUzsB,EAAIyjB,EAAQ7D,SAASgN,KAAOnJ,EAAQ7D,SAASiN,OAEpFhR,EAAqBppB,UAAU65B,kBAAoB,SAAUF,GACzD,IAAIt1B,EAAS,iBACb,OAAQs1B,GACJ,KAAK3I,EAAQ7D,SAASgN,KAClB91B,GAAU,eACV,MACJ,KAAK2sB,EAAQ7D,SAAS8M,IAClB51B,GAAU,eACV,MACJ,KAAK2sB,EAAQ7D,SAASiN,MAClB/1B,GAAU,eACV,MACJ,KAAK2sB,EAAQ7D,SAAS+M,OAClB71B,GAAU,eAGlB,OAAOA,GAEX+kB,EAAqBppB,UAAU85B,cAAgB,SAAUL,EAAUE,GAC/D,OAAO,IAAIjW,EAAQzJ,MAAM5X,KAAKg4B,UAAUZ,EAAUE,GAAgBt3B,KAAKi4B,UAAUb,EAAUE,KAE/FvQ,EAAqBppB,UAAUq6B,UAAY,SAAUZ,EAAUE,GAC3D,OAAQA,GACJ,KAAK3I,EAAQ7D,SAASgN,KAClB,OAAOV,EAASzf,SAASzM,EAAIlL,KAAKgwB,UAAUpiB,MAAQ,EACxD,KAAK+gB,EAAQ7D,SAASiN,MAClB,OAAOX,EAASzf,SAASzM,EAAIksB,EAASzpB,KAAKC,MAAQ5N,KAAKgwB,UAAUpiB,MAAQ,EAC9E,KAAK+gB,EAAQ7D,SAAS8M,IACtB,KAAKjJ,EAAQ7D,SAAS+M,OAClB,OAAOT,EAASzf,SAASzM,GAAKlL,KAAKgwB,UAAUpiB,MAAQ5N,KAAKmwB,eAAiB,IAGvFpJ,EAAqBppB,UAAUs6B,UAAY,SAAUb,EAAUE,GAC3D,OAAQA,GACJ,KAAK3I,EAAQ7D,SAAS8M,IAClB,OAAOR,EAASzf,SAAStV,EAAIrC,KAAKgwB,UAAUniB,OAAS,EACzD,KAAK8gB,EAAQ7D,SAAS+M,OAClB,OAAOT,EAASzf,SAAStV,EAAI+0B,EAASzpB,KAAKE,OAAS7N,KAAKgwB,UAAUniB,OAAS,EAChF,KAAK8gB,EAAQ7D,SAASgN,KACtB,KAAKnJ,EAAQ7D,SAASiN,MAClB,OAAOX,EAASzf,SAAStV,GAAKrC,KAAKgwB,UAAUniB,OAAS7N,KAAKmwB,eAAiB,IAGxFpJ,EAAqBppB,UAAU41B,aAAe,SAAUxrB,GACpD,OAAO/H,KAAK40B,oBAAoB50B,KAAKqpB,MAAMxiB,MAAOkB,IAEtDgf,EAAqBppB,UAAUi3B,oBAAsB,SAAU/tB,EAAOC,GAClE,OAAO9G,KAAKk4B,kBAAkBrxB,EAAOC,GAAO9G,KAAK2mB,SAAS/Y,OAE9DmZ,EAAqBppB,UAAUu6B,kBAAoB,SAAUrxB,EAAOC,GAChE,OAAI9G,KAAKuvB,UAAYZ,EAAQ5D,SAAS8H,OAC3B7yB,KAAKm4B,kCAAkCtxB,EAAOC,GACrD9G,KAAKuvB,UAAYZ,EAAQ5D,SAAS+H,QAC3B9yB,KAAKo4B,mCAAmCvxB,EAAOC,IAClDA,EAAIN,UAAYK,EAAML,WAAaxG,KAAKswB,cAEpDvJ,EAAqBppB,UAAUw6B,kCAAoC,SAAUtxB,EAAOC,GAChF,IAAIuxB,EAAsB,IAAIpwB,KAAKpB,EAAMc,cAAed,EAAMe,WAAY,GACtE0wB,EAAoB,IAAIrwB,KAAKnB,EAAIa,cAAeb,EAAIc,WAAY,GAIpE,OAHkBmhB,EAAQwH,UAAUgI,kBAAkBF,EAAqBC,IACzCxxB,EAAIN,UAAY8xB,EAAkB9xB,WAChCK,EAAML,UAAY6xB,EAAoB7xB,YACWuiB,EAAQwH,UAAUiI,YAE3GzR,EAAqBppB,UAAUy6B,mCAAqC,SAAUvxB,EAAOC,GACjF,IAAI2xB,EAAwB,IAAIxwB,KAAKpB,EAAMc,cAAkD,EAAnCX,KAAKO,MAAMV,EAAMe,WAAa,GAAQ,GAC5F8wB,EAAsB,IAAIzwB,KAAKnB,EAAIa,cAAgD,EAAjCX,KAAKO,MAAMT,EAAIc,WAAa,GAAQ,GAI1F,OAHoBmhB,EAAQwH,UAAUoI,oBAAoBF,EAAuBC,IAC7C5xB,EAAIN,UAAYkyB,EAAoBlyB,WAClCK,EAAML,UAAYiyB,EAAsBjyB,aAC6C,EAA/BuiB,EAAQwH,UAAUiI,aAElHzR,EAAqBppB,UAAUi7B,aAAe,SAAUjhB,GACpD,IAAIkhB,EAAYlhB,EAAW3X,KAAK2mB,SAAS/Y,MACrC/G,EAAQ,IAAIoB,KAAKjI,KAAKqpB,MAAMxiB,OAChC,GAAI7G,KAAKuvB,UAAYZ,EAAQ5D,SAAS8H,QAAU7yB,KAAKuvB,UAAYZ,EAAQ5D,SAAS+H,QAAS,CACvF,IAAIgG,EAAiB9xB,KAAKO,MAAMsxB,GAChChyB,EAAQ,IAAIoB,KAAKpB,EAAMkyB,SAASlyB,EAAMe,YAAc5H,KAAKuvB,UAAYZ,EAAQ5D,SAAS8H,OAASiG,EAAkC,EAAjBA,KAChHD,GAAalhB,EAAW3X,KAAKuzB,aAAa1sB,IAAU7G,KAAK2mB,SAAS/Y,MAEtE,IAAI6T,EAAOoX,EAAY74B,KAAKswB,aAAezpB,EAAML,UAC7CxE,EAAS,IAAIiG,KAEjB,OADAjG,EAAOg3B,QAAQvX,GACRzf,GAEX+kB,EAAqBppB,UAAU+yB,kBAAoB,WAC/C,OAAO1wB,KAAKk4B,kBAAkBl4B,KAAKqpB,MAAMxiB,MAAO7G,KAAKqpB,MAAMviB,MAE/DigB,EAAqBppB,UAAU84B,mBAAqB,SAAUJ,EAAgBC,EAAgBC,GAC1F,OAAQA,GACJ,KAAK1H,EAAanH,eAAeS,GAC7B,OAAOnoB,KAAKi5B,gCAAgC5C,EAAgBC,GAChE,KAAKzH,EAAanH,eAAeO,GAC7B,OAAOjoB,KAAKk5B,gCAAgC7C,EAAgBC,GAChE,KAAKzH,EAAanH,eAAeM,GAC7B,OAAOhoB,KAAKm5B,+BAA+B9C,EAAgBC,GAC/D,KAAKzH,EAAanH,eAAeU,GAC7B,OAAOpoB,KAAKo5B,iCAAiC/C,EAAgBC,GACjE,QACI,OAAO,IAAI12B,QAGvBmnB,EAAqBppB,UAAUs7B,gCAAkC,SAAU5C,EAAgBC,GACvF,OAAID,EAAiBC,EACbt2B,KAAKmzB,QAAQkD,GAAgBvvB,KAAO9G,KAAKmzB,QAAQmD,GAAgBzvB,MAC1D7G,KAAKq5B,4DAA4DhD,EAAgBC,GAAgB,GACrGt2B,KAAKs5B,6DAA6DjD,EAAgBC,GAAgB,GAEzGt2B,KAAKmzB,QAAQkD,GAAgBvvB,KAAO9G,KAAKmzB,QAAQmD,GAAgBzvB,MAC1D7G,KAAKu5B,+DAA+DjD,EAAgBD,GAAgB,GACxGr2B,KAAKw5B,6DAA6DlD,EAAgBD,GAAgB,IAE7GtP,EAAqBppB,UAAUy7B,iCAAmC,SAAU/C,EAAgBC,GACxF,OAAID,EAAiBC,EACVt2B,KAAKy5B,8DAA8DpD,EAAgBC,GACvFt2B,KAAKy5B,8DAA8DnD,EAAgBD,IAE9FtP,EAAqBppB,UAAUw7B,+BAAiC,SAAU9C,EAAgBC,GACtF,OAAID,EAAiBC,EACVt2B,KAAK05B,4DAA4DrD,EAAgBC,GACrFt2B,KAAK05B,4DAA4DpD,EAAgBD,IAE5FtP,EAAqBppB,UAAUu7B,gCAAkC,SAAU7C,EAAgBC,GACvF,OAAID,EAAiBC,EACbt2B,KAAKmzB,QAAQkD,GAAgBxvB,OAAS7G,KAAKmzB,QAAQmD,GAAgBxvB,IAC5D9G,KAAK25B,2DAA2DtD,EAAgBC,GAAgB,GACpGt2B,KAAKw5B,6DAA6DnD,EAAgBC,GAAgB,GAEzGt2B,KAAKmzB,QAAQkD,GAAgBxvB,OAAS7G,KAAKmzB,QAAQmD,GAAgBxvB,IAC5D9G,KAAK45B,8DAA8DtD,EAAgBD,GAAgB,GACvGr2B,KAAKs5B,6DAA6DhD,EAAgBD,GAAgB,IAE7GtP,EAAqBppB,UAAU07B,4DAA8D,SAAUQ,EAAcC,EAAiBC,GAClI,IAAI/3B,EAAS,IAAIpC,MACbo6B,EAAeh6B,KAAKy0B,aAAaoF,GACjCI,EAAkBj6B,KAAKy0B,aAAaqF,GACpCI,EAAqBl6B,KAAKm6B,mBAAmBH,EAAcH,GAC3DO,EAAoBp6B,KAAKmzB,QAAQ2G,GAAiB1G,cAClDiH,EAAsBr6B,KAAKs6B,iBAAiBL,EAAiBH,GAC7DS,EAAiBR,EAAuB/5B,KAAK8zB,aAAagG,GAAmB95B,KAAKivB,cAAgBjvB,KAAKivB,cAI3G,OAHAjtB,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAM2yB,EAAmBhvB,GAAIlE,KAAKO,MAAM2yB,EAAmB73B,KAC9FL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAM6yB,EAAoBC,EAAoBnvB,EAAI+uB,EAAgB/uB,EAAIqvB,GAAiBvzB,KAAKO,MAAMvF,EAAO,GAAGK,KAC/IL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMvF,EAAO,GAAGkJ,GAAIlE,KAAKO,MAAM8yB,EAAoBh4B,KAC/EL,GAEX+kB,EAAqBppB,UAAU87B,8DAAgE,SAAUI,EAAcC,GACnH,IAAI93B,EAAS,IAAIpC,MACbo6B,EAAeh6B,KAAKy0B,aAAaoF,GACjCI,EAAkBj6B,KAAKy0B,aAAaqF,GACpCI,EAAqBl6B,KAAKm6B,mBAAmBH,EAAcH,GAC3DW,EAAwBx6B,KAAKm6B,mBAAmBF,EAAiBH,GAKrE,OAJA93B,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAM2yB,EAAmBhvB,GAAIlE,KAAKO,MAAM2yB,EAAmB73B,KAC9FL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMP,KAAKsU,IAAI4e,EAAmBhvB,EAAGsvB,EAAsBtvB,GAAKlL,KAAKivB,eAAgBjoB,KAAKO,MAAMvF,EAAO,GAAGK,KAC7IL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMvF,EAAO,GAAGkJ,GAAIlE,KAAKO,MAAMizB,EAAsBn4B,KACxFL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMizB,EAAsBtvB,GAAIlE,KAAKO,MAAMizB,EAAsBn4B,KAC7FL,GAEX+kB,EAAqBppB,UAAU27B,6DAA+D,SAAUO,EAAcC,EAAiBW,GACnI,IAAIz4B,EAAS,IAAIpC,MACbo6B,EAAeh6B,KAAKy0B,aAAaoF,GACjCI,EAAkBj6B,KAAKy0B,aAAaqF,GACpCI,EAAqBl6B,KAAKm6B,mBAAmBH,EAAcH,GAC3Da,EAAsB16B,KAAK26B,oBAAoBX,EAAcH,GAC7De,EAAuB56B,KAAK66B,kBAAkBZ,EAAiBH,GAC/DO,EAAsBr6B,KAAKs6B,iBAAiBL,EAAiBH,GASjE,OARA93B,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAM2yB,EAAmBhvB,GAAIlE,KAAKO,MAAM2yB,EAAmB73B,KAC9FL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMvF,EAAO,GAAGkJ,EAAIlL,KAAKivB,eAAgBjoB,KAAKO,MAAMvF,EAAO,GAAGK,KACjGL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMvF,EAAO,GAAGkJ,GAAIlE,KAAKO,MAAMkzB,EAC9DC,EAAoBr4B,EAAIrC,KAAKqwB,0BAC3BgK,EAAoBh4B,EAAIrC,KAAKqwB,6BACnCruB,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMqzB,EAAqB1vB,EAAIlL,KAAKivB,eAAgBjoB,KAAKO,MAAMvF,EAAO,GAAGK,KAC5GL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMvF,EAAO,GAAGkJ,GAAIlE,KAAKO,MAAMqzB,EAAqBv4B,KACvFL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMqzB,EAAqB1vB,GAAIlE,KAAKO,MAAMqzB,EAAqBv4B,KAC3FL,GAEX+kB,EAAqBppB,UAAU47B,+DAAiE,SAAUM,EAAcC,EAAiBgB,GACrI,IAAI94B,EAAS,IAAIpC,MACbo6B,EAAeh6B,KAAKy0B,aAAaoF,GACjCI,EAAkBj6B,KAAKy0B,aAAaqF,GACpCY,EAAsB16B,KAAK26B,oBAAoBX,EAAcH,GAC7DkB,EAAiB/6B,KAAKmzB,QAAQ0G,GAAczG,cAC5CoH,EAAwBx6B,KAAKm6B,mBAAmBF,EAAiBH,GACjEkB,EAAmBF,EAAyB96B,KAAK8zB,aAAa+F,GAAgB75B,KAAKivB,cAAgBjvB,KAAKivB,cAI5G,OAHAjtB,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMwzB,EAAiBL,EAAoBxvB,EAAI8uB,EAAa9uB,EAAI8vB,GAAmBh0B,KAAKO,MAAMmzB,EAAoBr4B,KACrJL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMvF,EAAO,GAAGkJ,GAAIlE,KAAKO,MAAMizB,EAAsBn4B,KACxFL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMizB,EAAsBtvB,GAAIlE,KAAKO,MAAMizB,EAAsBn4B,KAC7FL,GAEX+kB,EAAqBppB,UAAUi8B,8DAAgE,SAAUC,EAAcC,EAAiBgB,GACpI,IAAI94B,EAAS,IAAIpC,MACbo6B,EAAeh6B,KAAKy0B,aAAaoF,GACjCI,EAAkBj6B,KAAKy0B,aAAaqF,GACpCY,EAAsB16B,KAAK26B,oBAAoBX,EAAcH,GAC7DkB,EAAiB/6B,KAAKmzB,QAAQ0G,GAAczG,cAC5CwH,EAAuB56B,KAAK66B,kBAAkBZ,EAAiBH,GAC/DkB,EAAmBF,EAAyB96B,KAAK8zB,aAAa+F,GAAgB75B,KAAKivB,cAAgBjvB,KAAKivB,cAI5G,OAHAjtB,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMwzB,EAAiBL,EAAoBxvB,EAAI8uB,EAAa9uB,EAAI8vB,GAAmBh0B,KAAKO,MAAMmzB,EAAoBr4B,KACrJL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMvF,EAAO,GAAGkJ,GAAIlE,KAAKO,MAAMqzB,EAAqBv4B,KACvFL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMqzB,EAAqB1vB,GAAIlE,KAAKO,MAAMqzB,EAAqBv4B,KAC3FL,GAEX+kB,EAAqBppB,UAAUg8B,2DAA6D,SAAUE,EAAcC,EAAiBC,GACjI,IAAI/3B,EAAS,IAAIpC,MACbo6B,EAAeh6B,KAAKy0B,aAAaoF,GACjCI,EAAkBj6B,KAAKy0B,aAAaqF,GACpCmB,EAAoBj7B,KAAK66B,kBAAkBb,EAAcH,GACzDQ,EAAsBr6B,KAAKs6B,iBAAiBL,EAAiBH,GAC7DM,EAAoBp6B,KAAKmzB,QAAQ2G,GAAiB1G,cAClDmH,EAAiBR,EAAuB/5B,KAAK8zB,aAAagG,GAAmB95B,KAAKivB,cAAgBjvB,KAAKivB,cAI3G,OAHAjtB,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAM0zB,EAAkB/vB,GAAIlE,KAAKO,MAAM0zB,EAAkB54B,KAC5FL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAM6yB,EAAoBC,EAAoBnvB,EAAI+uB,EAAgB/uB,EAAIqvB,GAAiBvzB,KAAKO,MAAMvF,EAAO,GAAGK,KAC/IL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMvF,EAAO,GAAGkJ,GAAIlE,KAAKO,MAAM8yB,EAAoBh4B,KAC/EL,GAEX+kB,EAAqBppB,UAAU67B,6DAA+D,SAAUK,EAAcC,EAAiBW,GACnI,IAAIz4B,EAAS,IAAIpC,MACbo6B,EAAeh6B,KAAKy0B,aAAaoF,GACjCI,EAAkBj6B,KAAKy0B,aAAaqF,GACpCmB,EAAoBj7B,KAAK66B,kBAAkBb,EAAcH,GACzDa,EAAsB16B,KAAK26B,oBAAoBX,EAAcH,GAC7DW,EAAwBx6B,KAAKm6B,mBAAmBF,EAAiBH,GACjEO,EAAsBr6B,KAAKs6B,iBAAiBL,EAAiBH,GASjE,OARA93B,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAM0zB,EAAkB/vB,GAAI+vB,EAAkB54B,IACjFL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMvF,EAAO,GAAGkJ,EAAIlL,KAAKivB,eAAgBjtB,EAAO,GAAGK,IACtFL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMvF,EAAO,GAAGkJ,GAAIlE,KAAKO,MAAMkzB,EAC9DC,EAAoBr4B,EAAIrC,KAAKqwB,0BAC3BgK,EAAoBh4B,EAAIrC,KAAKqwB,6BACnCruB,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMizB,EAAsBtvB,EAAIlL,KAAKivB,eAAgBjoB,KAAKO,MAAMvF,EAAO,GAAGK,KAC7GL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMvF,EAAO,GAAGkJ,GAAIlE,KAAKO,MAAMizB,EAAsBn4B,KACxFL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMizB,EAAsBtvB,GAAIlE,KAAKO,MAAMizB,EAAsBn4B,KAC7FL,GAEX+kB,EAAqBppB,UAAU+7B,4DAA8D,SAAUG,EAAcC,GACjH,IAAI93B,EAAS,IAAIpC,MACbo6B,EAAeh6B,KAAKy0B,aAAaoF,GACjCI,EAAkBj6B,KAAKy0B,aAAaqF,GACpCmB,EAAoBj7B,KAAK66B,kBAAkBb,EAAcH,GACzDe,EAAuB56B,KAAK66B,kBAAkBZ,EAAiBH,GAKnE,OAJA93B,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAM0zB,EAAkB/vB,GAAIlE,KAAKO,MAAM0zB,EAAkB54B,KAC5FL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMP,KAAK0D,IAAIuwB,EAAkB/vB,EAAG0vB,EAAqB1vB,GAAKlL,KAAKivB,eAAgBjoB,KAAKO,MAAMvF,EAAO,GAAGK,KAC3IL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMvF,EAAO,GAAGkJ,GAAIlE,KAAKO,MAAMqzB,EAAqBv4B,KACvFL,EAAOiB,KAAK,IAAIoe,EAAQzJ,MAAM5Q,KAAKO,MAAMqzB,EAAqB1vB,GAAIlE,KAAKO,MAAMqzB,EAAqBv4B,KAC3FL,GAEX+kB,EAAqBppB,UAAUk9B,kBAAoB,SAAUK,EAAW3gB,GACpE,OAAO,IAAI8G,EAAQzJ,MAAMsjB,EAAUhwB,EAAIlL,KAAKm7B,sBAAsB5gB,GAAQ2gB,EAAU74B,EAAIrC,KAAKszB,cAAc/Y,GAAS,IAExHwM,EAAqBppB,UAAUw8B,mBAAqB,SAAUe,EAAW3gB,GACrE,OAAO,IAAI8G,EAAQzJ,MAAMsjB,EAAUhwB,EAAIlL,KAAK8zB,aAAavZ,GAASva,KAAKm7B,sBAAsB5gB,GAAQ2gB,EAAU74B,EAAIrC,KAAKszB,cAAc/Y,GAAS,IAEnJwM,EAAqBppB,UAAU28B,iBAAmB,SAAUY,EAAW3gB,GACnE,OAAO,IAAI8G,EAAQzJ,MAAMsjB,EAAUhwB,EAAIlL,KAAK8zB,aAAavZ,GAAS,EAAG2gB,EAAU74B,EAAIrC,KAAKm7B,sBAAsB5gB,KAElHwM,EAAqBppB,UAAUg9B,oBAAsB,SAAUO,EAAW3gB,GACtE,OAAO,IAAI8G,EAAQzJ,MAAMsjB,EAAUhwB,EAAIlL,KAAK8zB,aAAavZ,GAAS,EAAG2gB,EAAU74B,EAAIrC,KAAKszB,cAAc/Y,GAASva,KAAKm7B,sBAAsB5gB,KAE9IwM,EAAqBppB,UAAUw9B,sBAAwB,SAAU5gB,GAE7D,OADkBva,KAAKklB,UAAUC,MAAM5K,GAAOiL,KAAK4N,cAC9BpzB,KAAKszB,cAAc/Y,IAAUvT,KAAKo0B,KAAK,GAAK,GAAK,EAAI,GAE9ErU,EAAqBppB,UAAU09B,4BAA8B,SAAUC,EAAWxK,GAO9E,IANA,IAAIyK,EAAuBzK,EAAa9wB,KAAKqvB,oBAAoBxhB,OAAS7N,KAAKqvB,oBAAoBzhB,MAC/F4tB,EAAgB1K,EAAa9wB,KAAK2mB,SAAS9Y,OAAS7N,KAAK2mB,SAAS/Y,MAClE6tB,EAAY3K,EAAa9wB,KAAKyvB,kBAAoBzvB,KAAKywB,oBACvDiL,EAAoB17B,KAAK27B,6BAA6BL,EAAWE,GACjEI,EAAmB57B,KAAK67B,4BAA4BP,EAAWE,EAAeD,EAAsBE,GACpGz5B,EAAS,IAAIpC,MACR5D,EAAI0/B,EAAmB1/B,GAAK4/B,EAAkB5/B,IACnDgG,EAAOiB,KAAKjH,GAChB,OAAOgG,GAEX+kB,EAAqBppB,UAAUm+B,4BAA8B,SAAU3K,EAAW4K,GAK9E,IAJA,IAAIC,EAAmBh8B,KAAKoxB,oBAAoBD,GAC5CuK,EAAoB10B,KAAKO,MAAMw0B,EAAmB,GAAKC,GACvDJ,EAAmB50B,KAAKO,MAAMw0B,EAAmBA,EAAmB37B,OAAS,GAAK47B,GAClFh6B,EAAS,IAAIpC,MACR5D,EAAI0/B,EAAmB1/B,GAAK4/B,EAAkB5/B,IACnDgG,EAAOiB,KAAKjH,GAChB,OAAOgG,GAEX+kB,EAAqBppB,UAAUg+B,6BAA+B,SAAUL,EAAWE,GAC/E,IAAIx5B,EAASgF,KAAKO,MAAM+zB,EAAYE,GAEpC,OADAx5B,EAASgF,KAAKsU,IAAItZ,EAAS,GAAI,IAGnC+kB,EAAqBppB,UAAUk+B,4BAA8B,SAAUP,EAAWE,EAAeD,EAAsBE,GACnH,IAAIz5B,EAASgF,KAAKO,OAAO+zB,EAAYC,GAAwBC,GAE7D,OADAx5B,EAASgF,KAAK0D,IAAI1I,EAAS,GAAIy5B,EAAY,IAG/C1U,EAAqBppB,UAAUgzB,8BAAgC,WAC3D3wB,KAAK+uB,oBAAsB,GAC3B,IAAK,IAAI/yB,EAAI,EAAGA,EAAIgE,KAAKklB,UAAUC,MAAM/kB,OAAQpE,IAC7C,IAAK,IAAI0H,EAAI,EAAGA,EAAI1D,KAAKklB,UAAUC,MAAMnpB,GAAGigC,aAAa77B,OAAQsD,IAC7D1D,KAAKk8B,mBAAmBl8B,KAAKklB,UAAUC,MAAMnpB,GAAGigC,aAAav4B,GAAI1D,KAAKklB,UAAUC,MAAMnpB,GAAGmgC,eAErGpV,EAAqBppB,UAAUy+B,8BAAgC,SAAUC,GACrEr8B,KAAK+uB,oBAAoBpZ,SAAQ,SAAU1K,EAAKsP,EAAOwU,GACnDA,EAAoBxU,GAAStP,EAAIW,QAAO,SAAUwa,GAAQ,OAAOA,EAAKkW,KAAK,kBAAoBD,QAEnG,IAAIr6B,EAAS,GACT0mB,EAAO1oB,KAAKklB,UAAUC,MAAMvZ,QAAO,SAAU8c,GAAQ,OAAOA,EAAKuT,aAAarwB,QAAO,SAAUvP,GAAK,OAAOA,EAAEopB,IAAM4W,KAAiBj8B,OAAS,KAAM,GACvJ,GAAIsoB,EAAM,CACN,IAAI6T,EAAa7T,EAAKuT,aAAarwB,QAAO,SAAUvP,GAAK,OAAOA,EAAEopB,KAAO4W,KAAiB,GAC1Fr6B,EAAShC,KAAKk8B,mBAAmBK,EAAY7T,EAAKyT,cAEtD,OAAOn6B,GAEX+kB,EAAqBppB,UAAUu+B,mBAAqB,SAAUM,EAAgBlG,GAC1E,IAAItrB,EAAQhL,KACRq2B,EAAiBmG,EAAeC,YAAYN,aAC5CpgB,EAAOygB,EAAezgB,KACtB0J,EAAK+W,EAAe/W,GACpBiX,EAAgB18B,KAAKo2B,iBAAiB3Q,EAAI4Q,EAAgBC,EAAgBva,GAI9E,OAHA2gB,EAAc/mB,SAAQ,SAAUgnB,GAC5B3xB,EAAM4xB,wBAAwBD,EAAe3xB,EAAM+jB,qBAAqB,MAErE2N,GAEX3V,EAAqBppB,UAAUizB,mCAAqC,WAChE5wB,KAAKgvB,4BAA8B,GACnC,IAAK,IAAIhzB,EAAI,EAAGA,EAAIgE,KAAKklB,UAAU+M,mBAAmB7xB,OAAQpE,IAAK,CAC/D,IAAI+5B,EAAqB/1B,KAAK68B,6BAA6B78B,KAAKklB,UAAU+M,mBAAmBj2B,IAC7F,GAAK+5B,EAAL,CAEA,IAAI+G,EAAwB98B,KAAK81B,yBAAyBC,GAC1D/1B,KAAK48B,wBAAwBE,EAAuB98B,KAAKgvB,6BAA6B,MAG9FjI,EAAqBppB,UAAUk/B,6BAA+B,SAAUE,GACpE,OAAIA,EAAcj2B,IAAIN,UAAYu2B,EAAcl2B,MAAML,UAAYxG,KAAKswB,aAAe,EAC3E,KACJ,IAAInqB,EAAY2E,UAAUie,EAAQwH,UAAUyM,wBAAwBD,EAAcl2B,MAAO7G,KAAKqpB,MAAOrpB,KAAKswB,aAActwB,KAAKuvB,UAAWxG,EAAQwH,UAAUyM,wBAAwBD,EAAcj2B,IAAK9G,KAAKqpB,MAAOrpB,KAAKswB,aAActwB,KAAKuvB,YAEpPxI,EAAqBppB,UAAUi/B,wBAA0B,SAAUxW,EAAMnb,EAAKgyB,GAM1E,IALA,IAAIC,EAAiBD,EAAiB7W,EAAKzO,SAAStV,EAAI+jB,EAAKzO,SAASzM,EAClEiyB,EAAgBF,EAAiB7W,EAAKzY,KAAKE,OAASuY,EAAKzY,KAAKC,MAC9DwvB,EAAsG,GAArFH,EAAiBj9B,KAAKqvB,oBAAoBxhB,OAAS7N,KAAKqvB,oBAAoBzhB,OAC7FyvB,EAAiBr2B,KAAKO,MAAM21B,EAAiBE,GAC7CE,EAAgBt2B,KAAKO,OAAO21B,EAAiBC,GAAiBC,GACzDphC,EAAIqhC,EAAgBrhC,GAAKshC,EAAethC,IACxCiP,EAAIjP,KACLiP,EAAIjP,GAAK,IAAI4D,OACjBqL,EAAIjP,GAAGiH,KAAKmjB,IAGpBW,EAAqBppB,UAAU4/B,0BAA4B,SAAUjC,GACjE,OAAOt7B,KAAKw9B,2BAA2Bx9B,KAAK+uB,qBAAqB,EAAMuM,IAE3EvU,EAAqBppB,UAAUo0B,8BAAgC,SAAUuJ,GACrE,OAAOt7B,KAAKw9B,2BAA2Bx9B,KAAKgvB,6BAA6B,EAAOsM,IAEpFvU,EAAqBppB,UAAU8/B,sBAAwB,SAAU1c,GAC7D,IAAI/e,EAAS,IAAIpC,MACb89B,EAAa3c,EAAS2c,WAAWzyB,KAAI,SAAUhO,GAAK,OAAOA,EAAEkb,WAC7D4I,EAAS4c,iBACTD,EAAWz6B,KAAK,IAAI6rB,EAAW8O,UAAU,IAAI31B,KAAQ,KAAM8Y,EAAS8c,iBAAkB9c,EAAS+c,qBAAqB,IACxH,IAAK,IAAI9hC,EAAI,EAAG+hC,OAAY,EAAQA,EAAYL,EAAW1hC,GAAIA,IAAK,CAChE,IAAI6K,EAAQkiB,EAAQwH,UAAUpmB,MAAM4zB,EAAUl3B,OAC1CC,EAAMi3B,EAAUj3B,IAAMiiB,EAAQwH,UAAUpmB,MAAM4zB,EAAUj3B,KAAO,KACnE,GAAID,GAAS7G,KAAKqpB,MAAMxiB,OAASA,GAAS7G,KAAKqpB,MAAMviB,KAAQA,GAAOA,GAAO9G,KAAKqpB,MAAMxiB,OAASC,GAAO9G,KAAKqpB,MAAMviB,IAAM,CACnH,IAAIk3B,EAAgBn3B,EAAQ7G,KAAKqpB,MAAMxiB,MAAQA,EAAQ7G,KAAKqpB,MAAMxiB,MAC9Duf,EAAO,IAAIwI,EAAkByC,gBACjCjL,EAAKzY,KAAKE,OAAS7N,KAAKgxB,4BACxB5K,EAAKzO,SAASzM,EAAIlL,KAAKuzB,aAAayK,GACpC5X,EAAKzY,KAAKC,MAAQ9G,EAAM9G,KAAK40B,oBAAoBoJ,EAAel3B,EAAM9G,KAAKqpB,MAAMviB,IAAMA,EAAM9G,KAAKqpB,MAAMviB,KAAO,EAC/Gsf,EAAK/U,UAAY0sB,EAAUE,UAAY,cAAgBn3B,EAAM,cAAgB,cAC7Esf,EAAK/U,WAAa0sB,EAAUG,SAAW,IAAMH,EAAUG,SAAW,GAClE9X,EAAKkW,KAAK6B,MAAQJ,EAAUI,MAC5Bn8B,EAAOiB,KAAKmjB,IAGpB,OAAOpkB,GAEX+kB,EAAqBppB,UAAU6/B,2BAA6B,SAAUvyB,EAAKgyB,EAAgB3B,GACvF,IAAIt5B,EAAS,IAAIpC,MACb27B,EAAuB0B,EAAiBj9B,KAAKqvB,oBAAoBxhB,OAAS7N,KAAKqvB,oBAAoBzhB,MACvG,GAAI2tB,EAAuB,EAGvB,IAFA,IAAI6C,EAAwBp3B,KAAKO,MAAM+zB,GAAoC,EAAvBC,IAChD8C,EAAuBr3B,KAAKO,OAAO+zB,EAAYC,IAAgD,EAAvBA,IACnEv/B,EAAIoiC,EAAuBpiC,GAAKqiC,EAAsBriC,IACtDiP,EAAIjP,IAETiP,EAAIjP,GAAG2Z,SAAQ,SAAUyQ,IACQ,GAAzBpkB,EAAOzB,QAAQ6lB,IACfpkB,EAAOiB,KAAKmjB,MAI5B,OAAOpkB,GAEX+kB,EAAqBC,WAAa,CAC9BE,mBAAoB,kBACpBD,qBAAsB,mBAEnBF,EAjuBiB,GAmuB5BjrB,EAAQirB,qBAAuBA,GAKxB,SAAShrB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQwiC,wBAA0BxiC,EAAQyiC,0BAA4BziC,EAAQ0iC,qBAAkB,EAChG,IAAI7W,EAAU/rB,EAAoB,GAC9B6iC,EAAqB7iC,EAAoB,IACzCuK,EAAcvK,EAAoB,GAClC4iC,EAAmB,WACnB,SAASA,EAAgBtZ,EAAWwZ,GAChC1+B,KAAKklB,UAAYA,EACjBllB,KAAK0+B,WAAaA,EAKtB,OAHAF,EAAgB7gC,UAAUghC,iBAAmB,WACzC,OAAO3+B,KAAKklB,UAAU0Z,8BAEnBJ,EARY,GAUvB1iC,EAAQ0iC,gBAAkBA,EAC1B,IAAID,EAA6B,SAAU1W,GAEvC,SAAS0W,EAA0BrZ,EAAWwZ,GAC1C,IAAI1zB,EAAQ6c,EAAO3rB,KAAK8D,KAAMklB,EAAWwZ,IAAe1+B,KAQxD,OAPAgL,EAAMmzB,MAAQ,IAAIU,EAAqB3Z,EAAWwZ,GAClD1zB,EAAM8zB,YAAc,IAAIC,EAA2B7Z,EAAWwZ,GAC9D1zB,EAAMwpB,SAAW,IAAIwK,EAAwB9Z,EAAWwZ,GACxD1zB,EAAMnE,MAAQ,IAAIo4B,EAAyB/Z,EAAWwZ,GACtD1zB,EAAMlE,IAAM,IAAIo4B,EAAuBha,EAAWwZ,GAClD1zB,EAAMm0B,KAAO,IAAIC,EAAoBla,EAAWwZ,GAChD1zB,EAAMgpB,MAAQ,IAAIqL,EAAqBna,EAAWwZ,GAC3C1zB,EAEX,OAZA2c,EAAQ3pB,UAAUugC,EAA2B1W,GAYtC0W,EAbsB,CAc/BC,GACF1iC,EAAQyiC,0BAA4BA,EACpC,IAAID,EAA2B,SAAUzW,GAErC,SAASyW,IACL,OAAkB,OAAXzW,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAoB/D,OAtBA2nB,EAAQ3pB,UAAUsgC,EAAyBzW,GAI3CyW,EAAwB3gC,UAAU2hC,SAAW,SAAU7Z,EAAI8Z,GACvD,IAAI/Z,EAAOxlB,KAAKklB,UAAUsa,MAAMtW,YAAYzD,GACxCga,EAAW,IAAIhB,EAAmBiB,iBAAiBja,EAAIzlB,KAAK2/B,iBAAiBna,IACjFxlB,KAAK4/B,iBAAiBpa,EAAM+Z,GAC5B,IAAIM,EAAW7/B,KAAKklB,UAAU4a,SAASra,GAGvC,OAFIoa,GACA7/B,KAAKklB,UAAU6a,MAAMC,oBAAoBH,EAAS1D,cAC/CsD,GAEXnB,EAAwB3gC,UAAUsiC,aAAe,SAAUzf,GACvD,GAAKA,EAAL,CAEA,IAAIgF,EAAOxlB,KAAKklB,UAAUsa,MAAMtW,YAAY1I,EAAMiF,IAClDzlB,KAAK4/B,iBAAiBpa,EAAMhF,EAAMxjB,OAClC,IAAI6iC,EAAW7/B,KAAKklB,UAAU4a,SAAStf,EAAMiF,IACzCoa,GACA7/B,KAAKklB,UAAU6a,MAAMC,oBAAoBH,EAAS1D,gBAEnDmC,EAvBoB,CAwB7BE,GACF1iC,EAAQwiC,wBAA0BA,EAClC,IAAIO,EAAwB,SAAUhX,GAElC,SAASgX,IACL,OAAkB,OAAXhX,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAU6gC,EAAsBhX,GAIxCgX,EAAqBlhC,UAAUgiC,iBAAmB,SAAUna,GACxD,OAAOA,EAAK2Y,OAEhBU,EAAqBlhC,UAAUiiC,iBAAmB,SAAUpa,EAAMxoB,GAC9DwoB,EAAK2Y,MAAQnhC,EACbgD,KAAK0+B,WAAWwB,uBAAuB1a,EAAKC,GAAIzoB,EAAOgD,KAAK2+B,qBAEzDE,EAZiB,CAa1BP,GACES,EAA8B,SAAUlX,GAExC,SAASkX,IACL,OAAkB,OAAXlX,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAU+gC,EAA4BlX,GAI9CkX,EAA2BphC,UAAUgiC,iBAAmB,SAAUna,GAC9D,OAAOA,EAAKsZ,aAEhBC,EAA2BphC,UAAUiiC,iBAAmB,SAAUpa,EAAMxoB,GACpEwoB,EAAKsZ,YAAc9hC,EACnBgD,KAAK0+B,WAAWyB,6BAA6B3a,EAAKC,GAAIzoB,EAAOgD,KAAK2+B,qBAE/DI,EAZuB,CAahCT,GACEU,EAA2B,SAAUnX,GAErC,SAASmX,IACL,OAAkB,OAAXnX,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAU/D,OAZA2nB,EAAQ3pB,UAAUghC,EAAyBnX,GAI3CmX,EAAwBrhC,UAAUgiC,iBAAmB,SAAUna,GAC3D,OAAOA,EAAKgP,UAEhBwK,EAAwBrhC,UAAUiiC,iBAAmB,SAAUpa,EAAMxoB,GACjEA,EAAQA,EAAQ,EAAI,EAAIA,EAAQ,IAAM,IAAMA,EAC5CwoB,EAAKgP,SAAWx3B,EAChBgD,KAAK0+B,WAAW0B,0BAA0B5a,EAAKC,GAAIzoB,EAAOgD,KAAK2+B,qBAE5DK,EAboB,CAc7BV,GACEW,EAA4B,SAAUpX,GAEtC,SAASoX,IACL,OAAkB,OAAXpX,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAUihC,EAA0BpX,GAI5CoX,EAAyBthC,UAAUgiC,iBAAmB,SAAUna,GAC5D,OAAOA,EAAK3e,OAEhBo4B,EAAyBthC,UAAUiiC,iBAAmB,SAAUpa,EAAMxoB,GAClEwoB,EAAK3e,MAAQ7J,EACbgD,KAAK0+B,WAAW2B,uBAAuB7a,EAAKC,GAAIzoB,EAAOgD,KAAK2+B,qBAEzDM,EAZqB,CAa9BX,GACEY,EAA0B,SAAUrX,GAEpC,SAASqX,IACL,OAAkB,OAAXrX,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAUkhC,EAAwBrX,GAI1CqX,EAAuBvhC,UAAUgiC,iBAAmB,SAAUna,GAC1D,OAAOA,EAAK1e,KAEhBo4B,EAAuBvhC,UAAUiiC,iBAAmB,SAAUpa,EAAMxoB,GAChEwoB,EAAK1e,IAAM9J,EACXgD,KAAK0+B,WAAW4B,qBAAqB9a,EAAKC,GAAIzoB,EAAOgD,KAAK2+B,qBAEvDO,EAZmB,CAa5BZ,GACEc,EAAuB,SAAUvX,GAEjC,SAASuX,IACL,OAAkB,OAAXvX,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAW/D,OAbA2nB,EAAQ3pB,UAAUohC,EAAqBvX,GAIvCuX,EAAoBzhC,UAAUgiC,iBAAmB,SAAUna,GACvD,OAAO,IAAIrf,EAAY2E,UAAU0a,EAAK3e,MAAO2e,EAAK1e,MAEtDs4B,EAAoBzhC,UAAUiiC,iBAAmB,SAAUpa,EAAMxoB,GAC7DwoB,EAAK3e,MAAQ7J,EAAM6J,MACnB2e,EAAK1e,IAAM9J,EAAM8J,IACjB9G,KAAK0+B,WAAW2B,uBAAuB7a,EAAKC,GAAIzoB,EAAM6J,MAAO7G,KAAK2+B,oBAClE3+B,KAAK0+B,WAAW4B,qBAAqB9a,EAAKC,GAAIzoB,EAAM8J,IAAK9G,KAAK2+B,qBAE3DS,EAdgB,CAezBd,GACEe,EAAwB,SAAUxX,GAElC,SAASwX,IACL,OAAkB,OAAXxX,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAUqhC,EAAsBxX,GAIxCwX,EAAqB1hC,UAAUgiC,iBAAmB,SAAUna,GACxD,OAAOA,EAAKwO,OAEhBqL,EAAqB1hC,UAAUiiC,iBAAmB,SAAUpa,EAAMxoB,GAC9DwoB,EAAKwO,MAAQh3B,EACbgD,KAAK0+B,WAAW6B,uBAAuB/a,EAAKC,GAAIzoB,EAAOgD,KAAK2+B,qBAEzDU,EAZiB,CAa1Bf,IAKK,SAASviC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ0kC,sBAAmB,EAC3B,IAAInf,EAAUzlB,EAAoB,GAC9B6hB,EAAQ7hB,EAAoB,GAC5B4kC,EAAoB,WACpB,SAASA,EAAiBC,GACtBzgC,KAAKygC,QAAUA,EASnB,OAPAD,EAAiB7iC,UAAUkJ,MAAQ,aACnC25B,EAAiB7iC,UAAU+iC,OAAS,aACpCF,EAAiB7iC,UAAUgjC,eAAiB,SAAUC,GAClD,IAAIC,EAAYpjB,EAAM3Q,SAAS8G,qBAAqB5T,KAAKygC,QAAQ3gB,QAAQ6D,UACrEmd,EAAYrjB,EAAM3Q,SAAS4F,qBAAqB1S,KAAKygC,QAAQ3gB,QAAQ6D,UACzE,OAAO,IAAItC,EAAQzJ,MAAMgpB,EAAY11B,EAAI21B,EAAWD,EAAYv+B,EAAIy+B,IAEjEN,EAXa,GAaxB1kC,EAAQ0kC,iBAAmBA,GAKpB,SAASzkC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQilC,mBAAgB,EACxB,IAAIA,EACA,SAAuBzjC,GACnB0C,KAAKghC,QAAS,EACdhhC,KAAKwqB,OAAS,GACdxqB,KAAK1C,IAAMA,GAInBxB,EAAQilC,cAAgBA,GAKjB,SAAShlC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQmlC,4BAA8BnlC,EAAQolC,iCAA8B,EAC5E,IAAIvZ,EAAU/rB,EAAoB,GAC9BulC,EAAgBvlC,EAAoB,IACpCslC,EAA+B,SAAUrZ,GAEzC,SAASqZ,EAA4BnhB,EAAkB+H,EAAeC,EAAahM,GAC/E,IAAI/Q,EAAQ6c,EAAO3rB,KAAK8D,KAAM+f,IAAqB/f,KAInD,OAHAgL,EAAM8c,cAAgBA,EACtB9c,EAAM+c,YAAcA,EACpB/c,EAAM+Q,KAAOA,EACN/Q,EAQX,OAdA2c,EAAQ3pB,UAAUkjC,EAA6BrZ,GAQ/CqZ,EAA4BvjC,UAAU8qB,KAAO,WACzCzoB,KAAKu8B,WAAav8B,KAAK+f,iBAAiBwc,WAAW6E,iBAAiBphC,KAAK8nB,cAAe9nB,KAAK+nB,YAAa/nB,KAAK+b,KAAM/b,KAAKu8B,WAAav8B,KAAKu8B,WAAWlV,WAAa,OAExK6Z,EAA4BvjC,UAAUgrB,KAAO,WACzC3oB,KAAK+f,iBAAiBwc,WAAW8E,iBAAiBrhC,KAAKu8B,WAAWlV,aAE/D6Z,EAfwB,CAgBjCC,EAAc7Y,aAChBxsB,EAAQolC,4BAA8BA,EACtC,IAAID,EAA+B,SAAUpZ,GAEzC,SAASoZ,EAA4BlhB,EAAkBsc,GACnD,IAAIrxB,EAAQ6c,EAAO3rB,KAAK8D,KAAM+f,IAAqB/f,KAEnD,OADAgL,EAAMqxB,aAAeA,EACdrxB,EAQX,OAZA2c,EAAQ3pB,UAAUijC,EAA6BpZ,GAM/CoZ,EAA4BtjC,UAAU8qB,KAAO,WACzCzoB,KAAKu8B,WAAav8B,KAAK+f,iBAAiBwc,WAAW8E,iBAAiBrhC,KAAKq8B,eAE7E4E,EAA4BtjC,UAAUgrB,KAAO,WACzC3oB,KAAK+f,iBAAiBwc,WAAW6E,iBAAiBphC,KAAKu8B,WAAWzU,cAAe9nB,KAAKu8B,WAAWxU,YAAa/nB,KAAKu8B,WAAWxgB,KAAM/b,KAAKq8B,eAEtI4E,EAbwB,CAcjCE,EAAc7Y,aAChBxsB,EAAQmlC,4BAA8BA,GAK/B,SAASllC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQwlC,4BAA8BxlC,EAAQylC,0BAA4BzlC,EAAQ0lC,0BAA4B1lC,EAAQ2lC,+BAA4B,EAClJ,IAAI9Z,EAAU/rB,EAAoB,GAC9BulC,EAAgBvlC,EAAoB,IACpC6lC,EAA6B,SAAU5Z,GAEvC,SAAS4Z,EAA0B1hB,EAAkB2hB,EAAM1N,EAAO2N,QAChD,IAAV3N,IAAoBA,EAAQ,IAChC,IAAIhpB,EAAQ6c,EAAO3rB,KAAK8D,KAAM+f,IAAqB/f,KAInD,OAHAgL,EAAM02B,KAAOA,EACb12B,EAAMgpB,MAAQA,EACdhpB,EAAM42B,eAAiBD,EAChB32B,EAQX,OAfA2c,EAAQ3pB,UAAUyjC,EAA2B5Z,GAS7C4Z,EAA0B9jC,UAAU8qB,KAAO,WACvCzoB,KAAK6hC,SAAW7hC,KAAK+f,iBAAiB8hB,SAASxkC,OAAO2C,KAAK0hC,KAAM1hC,KAAKg0B,MAAOh0B,KAAK6hC,SAAW7hC,KAAK6hC,SAASxa,WAAa,KAAMrnB,KAAK4hC,iBAEvIH,EAA0B9jC,UAAUgrB,KAAO,WACvC3oB,KAAK+f,iBAAiB8hB,SAASvY,OAAOtpB,KAAK6hC,SAASxa,aAEjDoa,EAhBsB,CAiB/BN,EAAc7Y,aAChBxsB,EAAQ2lC,0BAA4BA,EACpC,IAAID,EAA6B,SAAU3Z,GAEvC,SAAS2Z,EAA0BzhB,EAAkB+hB,GACjD,IAAI92B,EAAQ6c,EAAO3rB,KAAK8D,OAASA,KAGjC,OAFAgL,EAAM+U,iBAAmBA,EACzB/U,EAAM82B,WAAaA,EACZ92B,EAoBX,OAzBA2c,EAAQ3pB,UAAUwjC,EAA2B3Z,GAO7C2Z,EAA0B7jC,UAAU8qB,KAAO,WACvCZ,EAAOlqB,UAAU8qB,KAAKvsB,KAAK8D,MAC3BA,KAAK6hC,SAAW7hC,KAAK+f,iBAAiB8hB,SAASvY,OAAOtpB,KAAK8hC,aAE/DN,EAA0B7jC,UAAUgrB,KAAO,WACvC,IAAI3d,EAAQhL,KACZA,KAAK+f,iBAAiB8hB,SAASxkC,OAAO2C,KAAK6hC,SAASH,KAAM1hC,KAAK6hC,SAAS7N,MAAOh0B,KAAK8hC,YAAY,WACxF92B,EAAM62B,SAAS7N,OACfhpB,EAAM+U,iBAAiB8hB,SAASE,WAAW/N,MAAMsL,SAASt0B,EAAM62B,SAASxa,WAAYrc,EAAM62B,SAAS7N,OACxGnM,EAAOlqB,UAAUgrB,KAAKzsB,KAAK8O,OAGnCw2B,EAA0B7jC,UAAUkrB,eAAiB,WACjD7oB,KAAK+f,iBAAiB8hB,SAASxkC,OAAO2C,KAAK6hC,SAASH,KAAM1hC,KAAK6hC,SAAS7N,MAAOh0B,KAAK8hC,YAAY,eAC5F9hC,KAAK6hC,SAAS7N,OACdh0B,KAAK+f,iBAAiB8hB,SAASE,WAAW/N,MAAMsL,SAASt/B,KAAK6hC,SAASxa,WAAYrnB,KAAK6hC,SAAS7N,OACrGnM,EAAOlqB,UAAUgrB,KAAKzsB,KAAK8D,OAExBwhC,EA1BsB,CA2B/BL,EAAc9Y,wBAChBvsB,EAAQ0lC,0BAA4BA,EACpC,IAAID,EAA6B,SAAU1Z,GAEvC,SAAS0Z,EAA0BxhB,EAAkB+hB,EAAYE,GAC7D,IAAIh3B,EAAQ6c,EAAO3rB,KAAK8D,KAAM+f,IAAqB/f,KAGnD,OAFAgL,EAAM82B,WAAaA,EACnB92B,EAAMg3B,OAASA,EACRh3B,EAQX,OAbA2c,EAAQ3pB,UAAUujC,EAA2B1Z,GAO7C0Z,EAA0B5jC,UAAU8qB,KAAO,WACvCzoB,KAAKiiC,WAAajiC,KAAK+f,iBAAiB8hB,SAAS3hC,OAAOF,KAAK8hC,WAAY9hC,KAAKgiC,OAAQhiC,KAAKiiC,WAAajiC,KAAKiiC,WAAW5a,WAAa,OAEzIka,EAA0B5jC,UAAUgrB,KAAO,WACvC3oB,KAAK+f,iBAAiB8hB,SAASK,QAAQliC,KAAKiiC,WAAW5a,aAEpDka,EAdsB,CAe/BJ,EAAc7Y,aAChBxsB,EAAQylC,0BAA4BA,EACpC,IAAID,EAA+B,SAAUzZ,GAEzC,SAASyZ,EAA4BvhB,EAAkBoiB,GACnD,IAAIn3B,EAAQ6c,EAAO3rB,KAAK8D,KAAM+f,IAAqB/f,KAEnD,OADAgL,EAAMm3B,aAAeA,EACdn3B,EAQX,OAZA2c,EAAQ3pB,UAAUsjC,EAA6BzZ,GAM/CyZ,EAA4B3jC,UAAU8qB,KAAO,WACzCzoB,KAAKiiC,WAAajiC,KAAK+f,iBAAiB8hB,SAASK,QAAQliC,KAAKmiC,eAElEb,EAA4B3jC,UAAUgrB,KAAO,WACzC3oB,KAAK+f,iBAAiB8hB,SAAS3hC,OAAOF,KAAKiiC,WAAWH,WAAY9hC,KAAKiiC,WAAWD,OAAQhiC,KAAKmiC,eAE5Fb,EAbwB,CAcjCH,EAAc7Y,aAChBxsB,EAAQwlC,4BAA8BA,GAK/B,SAASvlC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQsmC,6BAA+BtmC,EAAQumC,mBAAqBvmC,EAAQwmC,sBAAmB,EAC/F,IAAI3a,EAAU/rB,EAAoB,GAC9B2mC,EAAe3mC,EAAoB,KAEvC,SAAW0mC,GACPA,EAAiBA,EAA6B,WAAI,GAAK,aACvDA,EAAiBA,EAAmC,iBAAI,GAAK,mBAC7DA,EAAiBA,EAAkC,gBAAI,GAAK,kBAHhE,CAIsBxmC,EAAQwmC,mBAAqBxmC,EAAQwmC,iBAAmB,KAC9E,IAAID,EAAsB,SAAUxa,GAEhC,SAASwa,IACL,OAAkB,OAAXxa,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAe/D,OAjBA2nB,EAAQ3pB,UAAUqkC,EAAoBxa,GAItCwa,EAAmB1kC,UAAU6kC,gBAAkB,SAAUC,EAAgBC,GAKrE,OAJA1iC,KAAKigB,QAAQ0iB,mBACbD,EAAcf,WACd3hC,KAAKigB,QAAQ2iB,iBACb5iC,KAAK8f,QAAQc,WAAWC,iBAAiB,KAClC,GAEXwhB,EAAmB1kC,UAAUklC,iBAAmB,SAAUC,GACtD,OAAOA,GAEXT,EAAmB1kC,UAAUolC,cAAgB,WACzC,MAAO,gBAEJV,EAlBe,CAmBxBE,EAAaS,YACflnC,EAAQumC,mBAAqBA,EAC7B,IAAID,EAAgC,SAAUva,GAE1C,SAASua,EAA6BrmB,EAAM4lB,GACxC,IAAI32B,EAAQ6c,EAAO3rB,KAAK8D,OAASA,KAGjC,OAFAgL,EAAM+Q,KAAOA,EACb/Q,EAAM22B,SAAWA,EACV32B,EAOX,OAZA2c,EAAQ3pB,UAAUokC,EAA8Bva,GAOhDua,EAA6BzkC,UAAUwa,MAAQ,WAC3C,IAAInW,EAAS,IAAIogC,EAA6BpiC,KAAK+b,KAAM/b,KAAK2hC,UAE9D,OADA3/B,EAAOihC,QAAUjjC,KAAKijC,QACfjhC,GAEJogC,EAbyB,CAclCG,EAAaW,sBACfpnC,EAAQsmC,6BAA+BA,GAKhC,SAASrmC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQonC,qBAAuBpnC,EAAQknC,gBAAa,EACpD,IAAIrb,EAAU/rB,EAAoB,GAC9BunC,EAAgBvnC,EAAoB,GACpConC,EAAc,SAAUnb,GAExB,SAASmb,IACL,OAAkB,OAAXnb,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KA0B/D,OA5BA2nB,EAAQ3pB,UAAUglC,EAAYnb,GAI9Bmb,EAAWrlC,UAAUgjB,gBAAkB,SAAUmiB,GAC7C,IAAI93B,EAAQhL,KACRojC,EAASpjC,KAAK6iC,iBAAiBC,GAC/BO,EAAaD,EAAOjrB,QACxB,QAAKnY,KAAKsjC,mBAAmBF,KAE7BpjC,KAAK8f,QAAQoG,WAAWqd,WAAWvjC,KAAK+iC,gBAAiBK,GAAQ,SAAUphC,GACnEA,GACAgJ,EAAMw3B,gBAAgBxgC,EAAQqhC,MACnC,WACCr4B,EAAMw4B,mBAEH,IAEXR,EAAWrlC,UAAU2lC,mBAAqB,SAAUF,GAChD,OAAO,GAEXJ,EAAWrlC,UAAU6kC,gBAAkB,SAAUC,EAAgBgB,GAC7D,OAAO,GAEXT,EAAWrlC,UAAU6lC,aAAe,aACpCR,EAAWrlC,UAAUyiB,SAAW,WAC5B,OAAO,IAAI+iB,EAAcvjB,mBAAmB5f,KAAK8gB,cAE9CkiB,EA7BO,CA8BhBG,EAActjB,aAChB/jB,EAAQknC,WAAaA,EACrB,IAAIE,EACA,aAIJpnC,EAAQonC,qBAAuBA,GAKxB,SAASnnC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ4nC,qBAAuB5nC,EAAQ6nC,oBAAsB7nC,EAAQ8nC,mBAAqB9nC,EAAQ+nC,qBAAuB/nC,EAAQgoC,wBAA0BhoC,EAAQioC,2BAA6BjoC,EAAQkoC,qBAAuBloC,EAAQmoC,mCAAgC,EACvQ,IAAItc,EAAU/rB,EAAoB,GAE9BqoC,EAAiC,SAAUpc,GAE3C,SAASoc,EAA8BlkB,EAAkBiiB,EAAQzC,GAC7D,IAAIv0B,EAAQ6c,EAAO3rB,KAAK8D,KAAM+f,IAAqB/f,KAGnD,OAFAgL,EAAMg3B,OAASA,EACfh3B,EAAMu0B,SAAWA,EACVv0B,EAWX,OAhBA2c,EAAQ3pB,UAAUimC,EAA+Bpc,GAOjDoc,EAA8BtmC,UAAU8qB,KAAO,WAC3CzoB,KAAKy/B,SAAWz/B,KAAKkkC,2BAA2B5E,SAASt/B,KAAKgiC,OAAQhiC,KAAKu/B,WAE/E0E,EAA8BtmC,UAAUgrB,KAAO,WAC3C3oB,KAAKkkC,2BAA2BjE,aAAajgC,KAAKy/B,WAEtDwE,EAA8BtmC,UAAUumC,yBAA2B,WAC/D,MAAM,IAAIjjB,MAAM,oBAEbgjB,EAjB0B,CADjBroC,EAAoB,IAmBxB0sB,aAChBxsB,EAAQmoC,8BAAgCA,EACxC,IAAID,EAAwB,SAAUnc,GAElC,SAASmc,IACL,OAAkB,OAAXnc,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAK/D,OAPA2nB,EAAQ3pB,UAAUgmC,EAAsBnc,GAIxCmc,EAAqBrmC,UAAUumC,yBAA2B,WACtD,OAAOlkC,KAAK+f,iBAAiByF,KAAKuc,WAAW5D,OAE1C6F,EARiB,CAS1BC,GACFnoC,EAAQkoC,qBAAuBA,EAC/B,IAAID,EAA8B,SAAUlc,GAExC,SAASkc,IACL,OAAkB,OAAXlc,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAK/D,OAPA2nB,EAAQ3pB,UAAU+lC,EAA4Blc,GAI9Ckc,EAA2BpmC,UAAUumC,yBAA2B,WAC5D,OAAOlkC,KAAK+f,iBAAiByF,KAAKuc,WAAWjD,aAE1CiF,EARuB,CAShCE,GACFnoC,EAAQioC,2BAA6BA,EACrC,IAAID,EAA2B,SAAUjc,GAErC,SAASic,IACL,OAAkB,OAAXjc,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAK/D,OAPA2nB,EAAQ3pB,UAAU8lC,EAAyBjc,GAI3Cic,EAAwBnmC,UAAUumC,yBAA2B,WACzD,OAAOlkC,KAAK+f,iBAAiByF,KAAKuc,WAAWvN,UAE1CsP,EARoB,CAS7BG,GACFnoC,EAAQgoC,wBAA0BA,EAClC,IAAID,EAAwB,SAAUhc,GAElC,SAASgc,IACL,OAAkB,OAAXhc,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAK/D,OAPA2nB,EAAQ3pB,UAAU6lC,EAAsBhc,GAIxCgc,EAAqBlmC,UAAUumC,yBAA2B,WACtD,OAAOlkC,KAAK+f,iBAAiByF,KAAKuc,WAAWl7B,OAE1Cg9B,EARiB,CAS1BI,GACFnoC,EAAQ+nC,qBAAuBA,EAC/B,IAAID,EAAsB,SAAU/b,GAEhC,SAAS+b,IACL,OAAkB,OAAX/b,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAK/D,OAPA2nB,EAAQ3pB,UAAU4lC,EAAoB/b,GAItC+b,EAAmBjmC,UAAUumC,yBAA2B,WACpD,OAAOlkC,KAAK+f,iBAAiByF,KAAKuc,WAAWj7B,KAE1C88B,EARe,CASxBK,GACFnoC,EAAQ8nC,mBAAqBA,EAC7B,IAAID,EAAuB,SAAU9b,GAEjC,SAAS8b,IACL,OAAkB,OAAX9b,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAK/D,OAPA2nB,EAAQ3pB,UAAU2lC,EAAqB9b,GAIvC8b,EAAoBhmC,UAAUumC,yBAA2B,WACrD,OAAOlkC,KAAK+f,iBAAiByF,KAAKuc,WAAW5C,MAE1CwE,EARgB,CASzBM,GACFnoC,EAAQ6nC,oBAAsBA,EAC9B,IAAID,EAAwB,SAAU7b,GAElC,SAAS6b,IACL,OAAkB,OAAX7b,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAK/D,OAPA2nB,EAAQ3pB,UAAU0lC,EAAsB7b,GAIxC6b,EAAqB/lC,UAAUumC,yBAA2B,WACtD,OAAOlkC,KAAK+f,iBAAiByF,KAAKuc,WAAW/N,OAE1C0P,EARiB,CAS1BO,GACFnoC,EAAQ4nC,qBAAuBA,GAKxB,SAAS3nC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQqoC,wBAAqB,EAC7B,IAAIxc,EAAU/rB,EAAoB,GAC9BwoC,EAAmBxoC,EAAoB,IACvCyoC,EAAazoC,EAAoB,IACjCuoC,EAAsB,SAAUtc,GAEhC,SAASsc,IACL,OAAkB,OAAXtc,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAG/D,OALA2nB,EAAQ3pB,UAAUmmC,EAAoBtc,GAItCsc,EAAmBxmC,UAAU4sB,WAAa,WAAc,OAAO,IAAI8Z,EAAWC,UACvEH,EANe,CAOxBC,EAAiBtb,gBACnBhtB,EAAQqoC,mBAAqBA,GAKtB,SAASpoC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAI2I,EAAe,WACf,SAASA,KA+GT,OA7GAA,EAAY4+B,QAAU,SAAU1zB,GAC5B,OAAQA,GAAM,KAAOA,GAAM,KAASA,GAAM,KAAOA,GAAM,KAE3DlL,EAAY6+B,QAAU,SAAU3zB,GAC5B,OAAOA,GAAM,KAAOA,GAAM,KAE9BlL,EAAY8+B,eAAiB,SAAUp/B,GACnC,IAAIq/B,EAAO,EACX,GAAmB,IAAfr/B,EAAIjF,OACJ,OAAOskC,EAEX,IADA,IAAIC,EAASt/B,EAAIjF,OACRpE,EAAI,EAAGA,EAAI2oC,EAAQ3oC,IACxB0oC,GAASA,GAAQ,GAAKA,EAAQr/B,EAAIu/B,WAAW5oC,GAC7C0oC,GAAQ,EAEZ,OAAOA,GAEX/+B,EAAYk/B,OAAS,SAAUx/B,EAAKy/B,GAChC,IAAIC,EAAS1/B,EAAIjF,OAAS,EACtB4kC,EAAUF,EAAS1kC,OAAS,EAC5B6kC,EAAcF,EAASC,EAC3B,GAAIC,EAAc,EACd,OAAO,EACX,KAAOF,GAAUE,EAAaF,IAAUC,IACpC,GAAI3/B,EAAI0/B,KAAYD,EAASE,GACzB,OAAO,EAEf,OAAO,GAEXr/B,EAAYu/B,SAAW,SAAU7/B,EAAKy/B,GAClC,OAAOz/B,EAAIoS,OAAO,EAAGqtB,EAAS1kC,UAAY0kC,GAE9Cn/B,EAAYw/B,kBAAoB,SAAU9/B,GACtC,OAAOA,EAAIsU,gBAAkBtU,GAEjCM,EAAYy/B,kBAAoB,SAAU//B,GACtC,OAAOA,EAAI0J,gBAAkB1J,GAEjCM,EAAY0/B,4BAA8B,SAAUhgC,GAChD,IAAK,IAAIrJ,EAAI,EAAGspC,OAAO,EAAQA,EAAOjgC,EAAIrJ,GAAIA,IAC1C,GAAI2J,EAAYy/B,kBAAkBE,KAAU3/B,EAAYw/B,kBAAkBG,GACtE,OAAO,EAEf,OAAO,GAEX3/B,EAAY4/B,iBAAmB,SAAU7D,EAAM8D,GAC3C,OAAO9D,EAAKA,EAAKthC,OAASolC,IAE9B7/B,EAAYuM,KAAO,SAAU7M,EAAKogC,GAC9B,QAAkBriC,IAAdqiC,EACA,OAAO9/B,EAAY+/B,aAAargC,GAAK,GAAM,GAE3C,IAAIsgC,EAAcF,EAAUG,KAAK,IACjC,OAAOvgC,EAAI4M,QAAQ,IAAIoI,OAAO,MAAQsrB,EAAc,SAAWA,EAAc,OAAQ,KAAM,KAGnGhgC,EAAYkgC,UAAY,SAAUxgC,EAAKogC,GACnC,QAAkBriC,IAAdqiC,EACA,OAAO9/B,EAAY+/B,aAAargC,GAAK,GAAM,GAE3C,IAAIsgC,EAAcF,EAAUG,KAAK,IACjC,OAAOvgC,EAAI4M,QAAQ,IAAIoI,OAAO,KAAOsrB,EAAc,KAAM,KAAM,KAGvEhgC,EAAYmgC,QAAU,SAAUzgC,EAAKogC,GACjC,QAAkBriC,IAAdqiC,EACA,OAAO9/B,EAAY+/B,aAAargC,GAAK,GAAO,GAE5C,IAAIsgC,EAAcF,EAAUG,KAAK,IACjC,OAAOvgC,EAAI4M,QAAQ,IAAIoI,OAAO,IAAMsrB,EAAc,MAAO,KAAM,KAGvEhgC,EAAYogC,oBAAsB,WAC9B,OAAQ,IAAKC,iBAAiBvuB,OAAO,EAAG,IAE5C9R,EAAYsgC,OAAS,SAAU5gC,EAAKqkB,GAChC,OAAO,IAAI9pB,MAAM8pB,GAAS,EAAI,EAAIA,EAAQ,GAAGkc,KAAKvgC,IAEtDM,EAAYugC,cAAgB,SAAU7gC,GAClC,OAAQA,IAAQA,EAAIjF,QAExBuF,EAAYC,QAAU,SAAUP,EAAK8gC,EAAYC,GAC7C,OAAOzgC,EAAYsgC,OAAOG,EAAap/B,KAAKsU,IAAI,EAAG6qB,EAAa9gC,EAAIjF,SAAWiF,GAEnFM,EAAY+/B,aAAe,SAAU5f,EAAQ+f,EAAWC,GACpD,IAAIO,EAAMvgB,EAAO1lB,OACjB,IAAKimC,EACD,OAAOvgB,EACX,GAAIugB,EAAM,OAAS,CACf,IAAIrkC,EAAS8jB,EAKb,OAJI+f,IACA7jC,EAASA,EAAOiQ,QAAQ,OAAQ,KAChC6zB,IACA9jC,EAASA,EAAOiQ,QAAQ,OAAQ,KAC7BjQ,EAGP,IAAI6E,EAAQ,EACZ,GAAIi/B,EACA,KAAOO,EAAM,GAAK,KAAKC,KAAKxgB,EAAOugB,EAAM,KACrCA,IAER,GAAIR,GAAaQ,EAAM,EACnB,KAAOx/B,EAAQw/B,GAAO,KAAKC,KAAKxgB,EAAOjf,KACnCA,IAER,OAAOif,EAAOygB,UAAU1/B,EAAOw/B,IAGhC1gC,EAhHQ,GAkHnB7J,EAAQ6J,YAAcA,GAKf,SAAS5J,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAIizB,EAAQ,WACR,SAASA,EAAKriB,EAAOC,GACjB7N,KAAK4N,MAAQA,EACb5N,KAAK6N,OAASA,EAsDlB,OApDAoiB,EAAKuW,MAAQ,WACT,OAAO,IAAIvW,EAAK,EAAG,IAEvBA,EAAKnY,WAAa,SAAUvS,GACxB,OAAO,IAAI0qB,EAAK1qB,EAAKA,IAEzB0qB,EAAKwW,mBAAqB,SAAUC,GAChC,IAAIC,EAAW,SAAU7oC,GAAK,OAAOA,EAAE8P,OACnCg5B,EAAY,SAAU9oC,GAAK,OAAOA,EAAE+P,QACxC,OAAO,IAAIoiB,EAAKyW,EAAOC,EAAUC,GAAYF,EAAOE,EAAWD,KAEnE1W,EAAKtyB,UAAUkpC,QAAU,WACrB,OAAsB,IAAf7mC,KAAK4N,OAA+B,IAAhB5N,KAAK6N,QAEpCoiB,EAAKtyB,UAAUkI,SAAW,WACtB,OAAOmS,KAAKC,UAAUjY,OAE1BiwB,EAAKtyB,UAAUmpC,gBAAkB,WAK7B,OAJI9mC,KAAK4N,MAAQ,IACb5N,KAAK4N,MAAQ,GACb5N,KAAK6N,OAAS,IACd7N,KAAK6N,OAAS,GACX7N,MAEXiwB,EAAKtyB,UAAU0a,OAAS,SAAUvH,EAAawD,GAG3C,OAFAtU,KAAK4N,MAAQ5N,KAAK4N,MAAQkD,EAC1B9Q,KAAK6N,OAAS7N,KAAK6N,OAASyG,EACrBtU,MAEXiwB,EAAKtyB,UAAU8a,SAAW,SAAUsuB,EAAaC,GAG7C,OAFAhnC,KAAK4N,OAASm5B,EACd/mC,KAAK6N,QAAUm5B,EACRhnC,MAEXiwB,EAAKtyB,UAAUya,OAAS,SAAUlT,GAC9B,OAAOlF,KAAK4N,QAAU1I,EAAI0I,OAAS5N,KAAK6N,SAAW3I,EAAI2I,QAE3DoiB,EAAKtyB,UAAUwa,MAAQ,WACnB,OAAO,IAAI8X,EAAKjwB,KAAK4N,MAAO5N,KAAK6N,SAErCoiB,EAAKtyB,UAAUua,SAAW,SAAUhT,GAChClF,KAAK4N,MAAQ1I,EAAI0I,MACjB5N,KAAK6N,OAAS3I,EAAI2I,QAEtBoiB,EAAKtyB,UAAUkb,eAAiB,SAAUouB,GAGtC,OAFAjnC,KAAK4N,MAAQq5B,EAAKjnC,KAAK4N,OACvB5N,KAAK6N,OAASo5B,EAAKjnC,KAAK6N,QACjB7N,MAEXiwB,EAAK7X,OAAS,SAAU3U,EAAGhE,GACvB,OAAOgE,EAAEmK,QAAUnO,EAAEmO,OAASnK,EAAEoK,SAAWpO,EAAEoO,QAE1CoiB,EAzDC,GA2DZn0B,EAAQm0B,KAAOA,GAKR,SAASl0B,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQorC,2BAAwB,EAChC,IAAIvf,EAAU/rB,EAAoB,GAE9BsrC,EAAyB,SAAUrf,GAEnC,SAASqf,IACL,OAAkB,OAAXrf,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAO/D,OATA2nB,EAAQ3pB,UAAUkpC,EAAuBrf,GAIzCqf,EAAsBvpC,UAAUwpC,mBAAqB,SAAUC,KAC/DF,EAAsBvpC,UAAU+kB,YAAc,SAAU0kB,KACxDF,EAAsBvpC,UAAUmnB,UAAY,SAAUsiB,KACtDF,EAAsBvpC,UAAUqnB,YAAc,SAAUoiB,KACxDF,EAAsBvpC,UAAU6kB,aAAe,SAAU4kB,KAClDF,EAVkB,CADJtrC,EAAoB,IAYxB4kC,kBACrB1kC,EAAQorC,sBAAwBA,GAKzB,SAASnrC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQurC,+BAA4B,EACpC,IAAI1f,EAAU/rB,EAAoB,GAC9BylB,EAAUzlB,EAAoB,GAC9B0lB,EAAQ1lB,EAAoB,GAE5ByrC,EAA6B,SAAUxf,GAEvC,SAASwf,IACL,OAAkB,OAAXxf,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAmB/D,OArBA2nB,EAAQ3pB,UAAUqpC,EAA2Bxf,GAI7Cwf,EAA0B1pC,UAAU+kB,YAAc,SAAU7E,GACxD7d,KAAKsnC,gBAAkB,IAAIjmB,EAAQzJ,MAAM0J,EAAM3D,SAASS,UAAUP,GAAMyD,EAAM3D,SAASU,UAAUR,IACrC,MAAxD7d,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB8V,cACxCr8B,KAAKygC,QAAQ3gB,QAAQynB,iBAAiB,OAE9CF,EAA0B1pC,UAAUmnB,UAAY,SAAUjH,GACtD7d,KAAKwnC,kBAAkB3pB,GACvB7d,KAAKygC,QAAQgH,wBAEjBJ,EAA0B1pC,UAAUqnB,YAAc,SAAUnH,GACxDA,EAAIC,iBACJ,IAAInG,EAAW,IAAI0J,EAAQzJ,MAAM0J,EAAM3D,SAASS,UAAUP,GAAMyD,EAAM3D,SAASU,UAAUR,IACzF7d,KAAK0nC,oBAAoB/vB,GACzB3X,KAAKsnC,gBAAkB3vB,GAE3B0vB,EAA0B1pC,UAAU6pC,kBAAoB,SAAUJ,KAClEC,EAA0B1pC,UAAU+pC,oBAAsB,SAAUC,KAC7DN,EAtBsB,CADHzrC,EAAoB,IAwBxBsrC,uBAC1BprC,EAAQurC,0BAA4BA,GAK7B,SAAStrC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ8rC,+BAA4B,EACpC,IAAIjgB,EAAU/rB,EAAoB,GAC9BisC,EAA0BjsC,EAAoB,IAC9CylB,EAAUzlB,EAAoB,GAC9B8hB,EAAU9hB,EAAoB,IAC9BgsC,EAA6B,SAAU/f,GAEvC,SAAS+f,IACL,OAAkB,OAAX/f,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAmB/D,OArBA2nB,EAAQ3pB,UAAU4pC,EAA2B/f,GAI7C+f,EAA0BjqC,UAAUwlB,aAAe,SAAUtF,GACzD7d,KAAKsnC,gBAAkB,IAAIjmB,EAAQzJ,MAAM8F,EAAQc,WAAWJ,UAAUP,GAAMH,EAAQc,WAAWH,UAAUR,IAC7C,MAAxD7d,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB8V,cACxCr8B,KAAKygC,QAAQ3gB,QAAQynB,iBAAiB,OAE9CK,EAA0BjqC,UAAU0lB,WAAa,SAAUxF,GACvD7d,KAAK8nC,mBAAmBjqB,GACxB7d,KAAKygC,QAAQgH,wBAEjBG,EAA0BjqC,UAAU4lB,YAAc,SAAU1F,GACxDA,EAAIC,iBACJ,IAAInG,EAAW,IAAI0J,EAAQzJ,MAAM8F,EAAQc,WAAWJ,UAAUP,GAAMH,EAAQc,WAAWH,UAAUR,IACjG7d,KAAK+nC,oBAAoBpwB,GACzB3X,KAAKsnC,gBAAkB3vB,GAE3BiwB,EAA0BjqC,UAAUmqC,mBAAqB,SAAUV,KACnEQ,EAA0BjqC,UAAUoqC,oBAAsB,SAAUJ,KAC7DC,EAtBsB,CAuB/BC,EAAwBG,uBAC1BlsC,EAAQ8rC,0BAA4BA,GAK7B,SAAS7rC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQmsC,6BAA+BnsC,EAAQosC,gCAA6B,EAC5E,IAAIvgB,EAAU/rB,EAAoB,GAC9BusC,EAAkBvsC,EAAoB,IACtCssC,EAA8B,SAAUrgB,GAExC,SAASqgB,EAA2BpG,EAAYE,GAC5C,IAAIh3B,EAAQ6c,EAAO3rB,KAAK8D,KAAM,OAASA,KAKvC,OAJAgL,EAAMwf,OAAS,CACXsX,WAAYA,EACZE,OAAQA,GAELh3B,EAYX,OAnBA2c,EAAQ3pB,UAAUkqC,EAA4BrgB,GAS9CprB,OAAOC,eAAewrC,EAA2BvqC,UAAW,aAAc,CACtEf,IAAK,WAAc,OAAOoD,KAAKwqB,OAAOsX,YACtCnlC,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAewrC,EAA2BvqC,UAAW,SAAU,CAClEf,IAAK,WAAc,OAAOoD,KAAKwqB,OAAOwX,QACtCrlC,YAAY,EACZqjB,cAAc,IAEXkoB,EApBuB,CAqBhCC,EAAgBpH,eAClBjlC,EAAQosC,2BAA6BA,EACrC,IAAID,EAAgC,SAAUpgB,GAE1C,SAASogB,EAA6BhG,GAClC,IAAIj3B,EAAQ6c,EAAO3rB,KAAK8D,KAAMiiC,EAAW5a,aAAernB,KAExD,OADAgL,EAAMwf,OAASyX,EACRj3B,EAEX,OANA2c,EAAQ3pB,UAAUiqC,EAA8BpgB,GAMzCogB,EAPyB,CAQlCE,EAAgBpH,eAClBjlC,EAAQmsC,6BAA+BA,GAKhC,SAASlsC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQwoC,cAAW,EACnB,IAAI3c,EAAU/rB,EAAoB,GAC9BsK,EAAWtK,EAAoB,GAE/B0oC,EAAY,SAAUzc,GAEtB,SAASyc,IACL,IAAIt5B,EAAQ6c,EAAO3rB,KAAK8D,OAASA,KAGjC,OAFAgL,EAAM02B,KAAO,GACb12B,EAAMgpB,MAAQ,GACPhpB,EAUX,OAfA2c,EAAQ3pB,UAAUsmC,EAAUzc,GAO5Byc,EAAS3mC,UAAU4pB,iBAAmB,SAAUC,GACxCthB,EAASpB,UAAU0iB,KACnBK,EAAOlqB,UAAU4pB,iBAAiBrrB,KAAK8D,KAAMwnB,GAC7CxnB,KAAK0hC,KAAOla,EAAUka,KAClBx7B,EAASpB,UAAU0iB,EAAUwM,SAC7Bh0B,KAAKg0B,MAAQxM,EAAUwM,SAG5BsQ,EAhBK,CADG1oC,EAAoB,IAkBxBwrB,YACftrB,EAAQwoC,SAAWA,GAKZ,SAASvoC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAIorC,EAASxsC,EAAoB,IAC7B2R,EAAa,WACb,SAASA,KA8CT,OA5CAA,EAAUC,MAAQ,SAAUxQ,EAAOqrC,QAChB,IAAXA,IAAqBA,EAAS,GAClC,IAAIC,EAAS/6B,EAAUg7B,UAAUF,GACjC,OAAOrhC,KAAKwG,MAAMxQ,EAAQsrC,GAAUA,GAExC/6B,EAAUi7B,cAAgB,SAAUjjC,EAAK3B,EAAI6kC,GAEzC,YADiB,IAAbA,IAAuBA,EAAW,MAC/BzhC,KAAKC,IAAI1B,EAAM3B,GAAM6kC,GAEhCl7B,EAAUm7B,cAAgB,SAAUxe,EAAKye,EAAQC,GAG7C,OAFIA,EAASD,IACTC,EAASD,GACTze,EAAM0e,EACCA,EACF1e,EAAMye,EACJA,EACJze,GAEX3c,EAAUs7B,aAAe,SAAUn+B,EAAK4Q,GACpC,OAAOtU,KAAKO,MAAMP,KAAK8hC,UAAYxtB,EAAM5Q,EAAM,IAAMA,GAEzD6C,EAAU+Z,aAAe,WACrB,MAAO,uCAAuCrV,QAAQ,SAAS,SAAU7V,GACrE,IAAIS,EAAoB,GAAhBmK,KAAK8hC,SAAgB,EAE7B,OADc,MAAN1sC,EAAYS,EAAS,EAAJA,EAAU,GAC1BgJ,SAAS,QAG1B0H,EAAUg7B,UAAYH,EAAOW,UAAUC,eAAe,IAAI,SAAUC,GAAO,OAAOjiC,KAAKkiC,IAAI,GAAID,MAC/F17B,EAAU47B,WAAa,CAAC,KAAM,KAC1B,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACtD,KAAM,KAAM,KAAM,MACf57B,EA/CM,GAiDjBzR,EAAQyR,UAAYA,GAKb,SAASxR,EAAQgC,EAAqBnC,GAE7C,aACAA,EAAoBiB,EAAEkB,GACSnC,EAAoBS,EAAE0B,EAAqB,aAAa,WAAa,OAAOC,KAC5EpC,EAAoBS,EAAE0B,EAAqB,YAAY,WAAa,OAAOE,KAC3ErC,EAAoBS,EAAE0B,EAAqB,UAAU,WAAa,OAAOG,KACzEtC,EAAoBS,EAAE0B,EAAqB,cAAc,WAAa,OAAOI,KAC7EvC,EAAoBS,EAAE0B,EAAqB,WAAW,WAAa,OAAOK,KAC1ExC,EAAoBS,EAAE0B,EAAqB,cAAc,WAAa,OAAOM,KAC7EzC,EAAoBS,EAAE0B,EAAqB,aAAa,WAAa,OAAOO,KAC5E1C,EAAoBS,EAAE0B,EAAqB,eAAe,WAAa,OAAOQ,KAC9E3C,EAAoBS,EAAE0B,EAAqB,mBAAmB,WAAa,OAAOS,KAClF5C,EAAoBS,EAAE0B,EAAqB,gBAAgB,WAAa,OAAOU,KAC/E7C,EAAoBS,EAAE0B,EAAqB,YAAY,WAAa,OAAOW,KAC3E9C,EAAoBS,EAAE0B,EAAqB,UAAU,WAAa,OAAOY,KACzE/C,EAAoBS,EAAE0B,EAAqB,YAAY,WAAa,OAAOa,KAC3EhD,EAAoBS,EAAE0B,EAAqB,kBAAkB,WAAa,OAAOc,KACjFjD,EAAoBS,EAAE0B,EAAqB,WAAW,WAAa,OAAOgB,KAC1EnD,EAAoBS,EAAE0B,EAAqB,oBAAoB,WAAa,OAAOiB,KACnFpD,EAAoBS,EAAE0B,EAAqB,oBAAoB,WAAa,OAAOkB,KACnFrD,EAAoBS,EAAE0B,EAAqB,iBAAiB,WAAa,OAAOmB,KAChFtD,EAAoBS,EAAE0B,EAAqB,wBAAwB,WAAa,OAAOoB,KACvFvD,EAAoBS,EAAE0B,EAAqB,gBAAgB,WAAa,OAAOqB,KAC/ExD,EAAoBS,EAAE0B,EAAqB,mBAAmB,WAAa,OAAOsB,KAClFzD,EAAoBS,EAAE0B,EAAqB,0BAA0B,WAAa,OAAOuB,KACzF1D,EAAoBS,EAAE0B,EAAqB,0BAA0B,WAAa,OAAOwB,KAiBxH,IAAIC,EAAgB,SAASnD,EAAGoD,GAI5B,OAHAD,EAAgB/C,OAAOiD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUvD,EAAGoD,GAAKpD,EAAEsD,UAAYF,IACvE,SAAUpD,EAAGoD,GAAK,IAAK,IAAI5B,KAAK4B,EAAOhD,OAAOkB,UAAUC,eAAe1B,KAAKuD,EAAG5B,KAAIxB,EAAEwB,GAAK4B,EAAE5B,MAC3ExB,EAAGoD,IAG5B,SAASzB,EAAU3B,EAAGoD,GAElB,SAASM,IAAOC,KAAKC,YAAc5D,EADnCmD,EAAcnD,EAAGoD,GAEjBpD,EAAEsB,UAAkB,OAAN8B,EAAahD,OAAOY,OAAOoC,IAAMM,EAAGpC,UAAY8B,EAAE9B,UAAW,IAAIoC,GAGnF,IAAI9B,EAAW,WAQX,OAPAA,EAAWxB,OAAOyD,QAAU,SAAkBjD,GAC1C,IAAK,IAAIa,EAAG9B,EAAI,EAAGwB,EAAI2C,UAAUC,OAAQpE,EAAIwB,EAAGxB,IAE5C,IAAK,IAAI6B,KADTC,EAAIqC,UAAUnE,GACOS,OAAOkB,UAAUC,eAAe1B,KAAK4B,EAAGD,KAAIZ,EAAEY,GAAKC,EAAED,IAE9E,OAAOZ,IAEKoD,MAAML,KAAMG,YAGhC,SAASjC,EAAOJ,EAAGwC,GACf,IAAIrD,EAAI,GACR,IAAK,IAAIY,KAAKC,EAAOrB,OAAOkB,UAAUC,eAAe1B,KAAK4B,EAAGD,IAAMyC,EAAEC,QAAQ1C,GAAK,IAC9EZ,EAAEY,GAAKC,EAAED,IACb,GAAS,MAALC,GAAqD,oBAAjCrB,OAAO+D,sBACtB,KAAIxE,EAAI,EAAb,IAAgB6B,EAAIpB,OAAO+D,sBAAsB1C,GAAI9B,EAAI6B,EAAEuC,OAAQpE,IAC3DsE,EAAEC,QAAQ1C,EAAE7B,IAAM,GAAKS,OAAOkB,UAAU8C,qBAAqBvE,KAAK4B,EAAGD,EAAE7B,MACvEiB,EAAEY,EAAE7B,IAAM8B,EAAED,EAAE7B,KAE1B,OAAOiB,EAGX,SAASkB,EAAWuC,EAAYC,EAAQrD,EAAKsD,GACzC,IAA2HvE,EAAvHD,EAAI+D,UAAUC,OAAQvD,EAAIT,EAAI,EAAIuE,EAAkB,OAATC,EAAgBA,EAAOnE,OAAOoE,yBAAyBF,EAAQrD,GAAOsD,EACrH,GAAuB,kBAAZE,SAAoD,oBAArBA,QAAQC,SAAyBlE,EAAIiE,QAAQC,SAASL,EAAYC,EAAQrD,EAAKsD,QACpH,IAAK,IAAI5E,EAAI0E,EAAWN,OAAS,EAAGpE,GAAK,EAAGA,KAASK,EAAIqE,EAAW1E,MAAIa,GAAKT,EAAI,EAAIC,EAAEQ,GAAKT,EAAI,EAAIC,EAAEsE,EAAQrD,EAAKT,GAAKR,EAAEsE,EAAQrD,KAAST,GAChJ,OAAOT,EAAI,GAAKS,GAAKJ,OAAOC,eAAeiE,EAAQrD,EAAKT,GAAIA,EAGhE,SAASuB,EAAQ4C,EAAYC,GACzB,OAAO,SAAUN,EAAQrD,GAAO2D,EAAUN,EAAQrD,EAAK0D,IAG3D,SAAS3C,EAAW6C,EAAaC,GAC7B,GAAuB,kBAAZL,SAAoD,oBAArBA,QAAQM,SAAyB,OAAON,QAAQM,SAASF,EAAaC,GAGpH,SAAS7C,EAAU+C,EAASC,EAAYC,EAAGC,GAEvC,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAU5E,GAAS,IAAM6E,EAAKL,EAAUM,KAAK9E,IAAW,MAAOsD,GAAKqB,EAAOrB,IACpF,SAASyB,EAAS/E,GAAS,IAAM6E,EAAKL,EAAiB,MAAExE,IAAW,MAAOsD,GAAKqB,EAAOrB,IACvF,SAASuB,EAAKG,GAJlB,IAAehF,EAIagF,EAAOC,KAAOP,EAAQM,EAAOhF,QAJ1CA,EAIyDgF,EAAOhF,MAJhDA,aAAiBuE,EAAIvE,EAAQ,IAAIuE,GAAE,SAAUG,GAAWA,EAAQ1E,OAITkF,KAAKN,EAAWG,GAClGF,GAAML,EAAYA,EAAUnB,MAAMgB,EAASC,GAAc,KAAKQ,WAItE,SAASvD,EAAY8C,EAASc,GAC1B,IAAsGC,EAAGC,EAAGpF,EAAGqF,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPxF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOyF,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAER,KAAMc,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX9F,SAA0BwF,EAAExF,OAAO+F,UAAY,WAAa,OAAO7C,OAAUsC,EACvJ,SAASM,EAAKpF,GAAK,OAAO,SAAUsF,GAAK,OACzC,SAAcC,GACV,GAAIX,EAAG,MAAM,IAAIvC,UAAU,mCAC3B,KAAO0C,GAAG,IACN,GAAIH,EAAI,EAAGC,IAAMpF,EAAY,EAAR8F,EAAG,GAASV,EAAU,OAAIU,EAAG,GAAKV,EAAS,SAAOpF,EAAIoF,EAAU,SAAMpF,EAAEf,KAAKmG,GAAI,GAAKA,EAAEP,SAAW7E,EAAIA,EAAEf,KAAKmG,EAAGU,EAAG,KAAKd,KAAM,OAAOhF,EAE3J,OADIoF,EAAI,EAAGpF,IAAG8F,EAAK,CAAS,EAARA,EAAG,GAAQ9F,EAAED,QACzB+F,EAAG,IACP,KAAK,EAAG,KAAK,EAAG9F,EAAI8F,EAAI,MACxB,KAAK,EAAc,OAAXR,EAAEC,QAAgB,CAAExF,MAAO+F,EAAG,GAAId,MAAM,GAChD,KAAK,EAAGM,EAAEC,QAASH,EAAIU,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKR,EAAEI,IAAIK,MAAOT,EAAEG,KAAKM,MAAO,SACxC,QACI,KAAkB/F,GAAZA,EAAIsF,EAAEG,MAAYtC,OAAS,GAAKnD,EAAEA,EAAEmD,OAAS,MAAkB,IAAV2C,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAER,EAAI,EAAG,SACjG,GAAc,IAAVQ,EAAG,MAAc9F,GAAM8F,EAAG,GAAK9F,EAAE,IAAM8F,EAAG,GAAK9F,EAAE,IAAM,CAAEsF,EAAEC,MAAQO,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYR,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIA,EAAI8F,EAAI,MAC7D,GAAI9F,GAAKsF,EAAEC,MAAQvF,EAAE,GAAI,CAAEsF,EAAEC,MAAQvF,EAAE,GAAIsF,EAAEI,IAAIM,KAAKF,GAAK,MACvD9F,EAAE,IAAIsF,EAAEI,IAAIK,MAChBT,EAAEG,KAAKM,MAAO,SAEtBD,EAAKZ,EAAKjG,KAAKmF,EAASkB,GAC1B,MAAOjC,GAAKyC,EAAK,CAAC,EAAGzC,GAAI+B,EAAI,EAAK,QAAUD,EAAInF,EAAI,EACtD,GAAY,EAAR8F,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE/F,MAAO+F,EAAG,GAAKA,EAAG,QAAK,EAAQd,MAAM,GArB9BJ,CAAK,CAACrE,EAAGsF,MAyB7D,IAAItE,EAAkB/B,OAAOY,OAAU,SAASb,EAAGL,EAAG+G,EAAGC,QAC1CC,IAAPD,IAAkBA,EAAKD,GAC3BzG,OAAOC,eAAeF,EAAG2G,EAAI,CAAExG,YAAY,EAAMC,IAAK,WAAa,OAAOT,EAAE+G,OAC1E,SAAS1G,EAAGL,EAAG+G,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3B1G,EAAE2G,GAAMhH,EAAE+G,IAGd,SAASzE,EAAatC,EAAGK,GACrB,IAAK,IAAIqB,KAAK1B,EAAa,YAAN0B,GAAoBpB,OAAOkB,UAAUC,eAAe1B,KAAKM,EAAGqB,IAAIW,EAAgBhC,EAAGL,EAAG0B,GAG/G,SAASa,EAASlC,GACd,IAAIsB,EAAsB,oBAAXhB,QAAyBA,OAAO+F,SAAU1G,EAAI2B,GAAKtB,EAAEsB,GAAI9B,EAAI,EAC5E,GAAIG,EAAG,OAAOA,EAAED,KAAKM,GACrB,GAAIA,GAAyB,kBAAbA,EAAE4D,OAAqB,MAAO,CAC1C0B,KAAM,WAEF,OADItF,GAAKR,GAAKQ,EAAE4D,SAAQ5D,OAAI,GACrB,CAAEQ,MAAOR,GAAKA,EAAER,KAAMiG,MAAOzF,KAG5C,MAAM,IAAIqD,UAAU/B,EAAI,0BAA4B,mCAGxD,SAASa,EAAOnC,EAAGgB,GACf,IAAIrB,EAAsB,oBAAXW,QAAyBN,EAAEM,OAAO+F,UACjD,IAAK1G,EAAG,OAAOK,EACf,IAAmBK,EAAYyD,EAA3BtE,EAAIG,EAAED,KAAKM,GAAO6G,EAAK,GAC3B,IACI,WAAc,IAAN7F,GAAgBA,KAAM,MAAQX,EAAIb,EAAE8F,QAAQG,MAAMoB,EAAGJ,KAAKpG,EAAEG,OAExE,MAAOsG,GAAShD,EAAI,CAAEgD,MAAOA,GAAU,QAEnC,IACQzG,IAAMA,EAAEoF,OAAS9F,EAAIH,EAAU,SAAIG,EAAED,KAAKF,GACjD,QACS,GAAIsE,EAAG,MAAMA,EAAEgD,OAE7B,OAAOD,EAGX,SAASzE,IACL,IAAK,IAAIyE,EAAK,GAAIrH,EAAI,EAAGA,EAAImE,UAAUC,OAAQpE,IAC3CqH,EAAKA,EAAGE,OAAO5E,EAAOwB,UAAUnE,KACpC,OAAOqH,EAGX,SAASxE,IACL,IAAK,IAAIf,EAAI,EAAG9B,EAAI,EAAGwH,EAAKrD,UAAUC,OAAQpE,EAAIwH,EAAIxH,IAAK8B,GAAKqC,UAAUnE,GAAGoE,OACxE,IAAIvD,EAAI+C,MAAM9B,GAAIoF,EAAI,EAA3B,IAA8BlH,EAAI,EAAGA,EAAIwH,EAAIxH,IACzC,IAAK,IAAIyH,EAAItD,UAAUnE,GAAI0H,EAAI,EAAGC,EAAKF,EAAErD,OAAQsD,EAAIC,EAAID,IAAKR,IAC1DrG,EAAEqG,GAAKO,EAAEC,GACjB,OAAO7G,EAGX,SAASkC,EAAQ+D,GACb,OAAO9C,gBAAgBjB,GAAWiB,KAAK8C,EAAIA,EAAG9C,MAAQ,IAAIjB,EAAQ+D,GAGtE,SAAS9D,EAAiBqC,EAASC,EAAYE,GAC3C,IAAK1E,OAAOgH,cAAe,MAAM,IAAIjE,UAAU,wCAC/C,IAAoD7D,EAAhDsG,EAAId,EAAUnB,MAAMgB,EAASC,GAAc,IAAQyC,EAAI,GAC3D,OAAO/H,EAAI,GAAI4G,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW5G,EAAEc,OAAOgH,eAAiB,WAAc,OAAO9D,MAAShE,EACpH,SAAS4G,EAAKpF,GAAS8E,EAAE9E,KAAIxB,EAAEwB,GAAK,SAAUsF,GAAK,OAAO,IAAIrB,SAAQ,SAAUgC,EAAGhE,GAAKsE,EAAEd,KAAK,CAACzF,EAAGsF,EAAGW,EAAGhE,IAAM,GAAKuE,EAAOxG,EAAGsF,QAC9H,SAASkB,EAAOxG,EAAGsF,GAAK,KACVjG,EADqByF,EAAE9E,GAAGsF,IACnB9F,iBAAiB+B,EAAU0C,QAAQC,QAAQ7E,EAAEG,MAAM8F,GAAGZ,KAAK+B,EAAStC,GAAUuC,EAAOH,EAAE,GAAG,GAAIlH,GADpE,MAAOyD,GAAK4D,EAAOH,EAAE,GAAG,GAAIzD,GAC3E,IAAczD,EACd,SAASoH,EAAQjH,GAASgH,EAAO,OAAQhH,GACzC,SAAS2E,EAAO3E,GAASgH,EAAO,QAAShH,GACzC,SAASkH,EAAO9B,EAAGU,GAASV,EAAEU,GAAIiB,EAAEI,QAASJ,EAAE3D,QAAQ4D,EAAOD,EAAE,GAAG,GAAIA,EAAE,GAAG,KAGhF,SAAS9E,EAAiBzC,GACtB,IAAIR,EAAG6B,EACP,OAAO7B,EAAI,GAAI4G,EAAK,QAASA,EAAK,SAAS,SAAUtC,GAAK,MAAMA,KAAOsC,EAAK,UAAW5G,EAAEc,OAAO+F,UAAY,WAAc,OAAO7C,MAAShE,EAC1I,SAAS4G,EAAKpF,EAAG4E,GAAKpG,EAAEwB,GAAKhB,EAAEgB,GAAK,SAAUsF,GAAK,OAAQjF,GAAKA,GAAK,CAAEb,MAAO+B,EAAQvC,EAAEgB,GAAGsF,IAAKb,KAAY,WAANzE,GAAmB4E,EAAIA,EAAEU,GAAKA,GAAOV,GAG/I,SAASlD,EAAc1C,GACnB,IAAKM,OAAOgH,cAAe,MAAM,IAAIjE,UAAU,wCAC/C,IAAiC7D,EAA7BG,EAAIK,EAAEM,OAAOgH,eACjB,OAAO3H,EAAIA,EAAED,KAAKM,IAAMA,EAAqCkC,EAASlC,GAA2BR,EAAI,GAAI4G,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW5G,EAAEc,OAAOgH,eAAiB,WAAc,OAAO9D,MAAShE,GAC9M,SAAS4G,EAAKpF,GAAKxB,EAAEwB,GAAKhB,EAAEgB,IAAM,SAAUsF,GAAK,OAAO,IAAIrB,SAAQ,SAAUC,EAASC,IACvF,SAAgBD,EAASC,EAAQtF,EAAGyG,GAAKrB,QAAQC,QAAQoB,GAAGZ,MAAK,SAASY,GAAKpB,EAAQ,CAAE1E,MAAO8F,EAAGb,KAAM5F,MAASsF,GADJuC,CAAOxC,EAASC,GAA7BmB,EAAItG,EAAEgB,GAAGsF,IAA8Bb,KAAMa,EAAE9F,YAIpJ,SAASmC,EAAqBiF,EAAQC,GAElC,OADI5H,OAAOC,eAAkBD,OAAOC,eAAe0H,EAAQ,MAAO,CAAEpH,MAAOqH,IAAiBD,EAAOC,IAAMA,EAClGD,EAGX,IAAIE,EAAqB7H,OAAOY,OAAU,SAASb,EAAGsG,GAClDrG,OAAOC,eAAeF,EAAG,UAAW,CAAEG,YAAY,EAAMK,MAAO8F,KAC9D,SAAStG,EAAGsG,GACbtG,EAAW,QAAIsG,GAGnB,SAAS1D,EAAamF,GAClB,GAAIA,GAAOA,EAAIpH,WAAY,OAAOoH,EAClC,IAAIvC,EAAS,GACb,GAAW,MAAPuC,EAAa,IAAK,IAAIrB,KAAKqB,EAAe,YAANrB,GAAmBzG,OAAOkB,UAAUC,eAAe1B,KAAKqI,EAAKrB,IAAI1E,EAAgBwD,EAAQuC,EAAKrB,GAEtI,OADAoB,EAAmBtC,EAAQuC,GACpBvC,EAGX,SAAS3C,EAAgBkF,GACrB,OAAQA,GAAOA,EAAIpH,WAAcoH,EAAM,CAAEC,QAASD,GAGtD,SAASjF,EAAuBmF,EAAUC,GACtC,IAAKA,EAAWC,IAAIF,GAChB,MAAM,IAAI5E,UAAU,kDAExB,OAAO6E,EAAW9H,IAAI6H,GAG1B,SAASlF,EAAuBkF,EAAUC,EAAY1H,GAClD,IAAK0H,EAAWC,IAAIF,GAChB,MAAM,IAAI5E,UAAU,kDAGxB,OADA6E,EAAWE,IAAIH,EAAUzH,GAClBA,IAMJ,SAASjB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQstC,wBAAqB,EAC7B,IAAIzhB,EAAU/rB,EAAoB,GAC9BgsB,EAAehsB,EAAoB,IACnCsK,EAAWtK,EAAoB,GAC/BwtC,EAAsB,SAAUvhB,GAEhC,SAASuhB,IACL,IAAIp+B,EAAQ6c,EAAO3rB,KAAK8D,OAASA,KAGjC,OAFAgL,EAAMg3B,OAAS,GACfh3B,EAAM82B,WAAa,GACZ92B,EASX,OAdA2c,EAAQ3pB,UAAUorC,EAAoBvhB,GAOtCuhB,EAAmBzrC,UAAU4pB,iBAAmB,SAAUC,GAClDthB,EAASpB,UAAU0iB,KACnBK,EAAOlqB,UAAU4pB,iBAAiBrrB,KAAK8D,KAAMwnB,GAC7CxnB,KAAKgiC,OAASliC,OAAO0nB,EAAUwa,QAC/BhiC,KAAK8hC,WAAahiC,OAAO0nB,EAAUsa,cAGpCsH,EAfe,CAgBxBxhB,EAAaR,YACftrB,EAAQstC,mBAAqBA,GAKtB,SAASrtC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ0P,UAAO,EACf,IAAIA,EAAQ,WACR,SAASA,EAAKM,EAAGpB,EAAKC,EAAKC,QACb,IAANkB,IAAgBA,EAAI,QACZ,IAARpB,IAAkBA,EAAM,QAChB,IAARC,IAAkBA,EAAM,QACf,IAATC,IAAmBA,EAAO,GAC9B5K,KAAKqpC,MAAQ,EACbrpC,KAAKspC,KAAO,EACZtpC,KAAKupC,KAAO,EACZvpC,KAAKwpC,MAAQ,EACbxpC,KAAKypC,UAAY,EACjBzpC,KAAKyK,KAAOqB,EACZ9L,KAAK0K,IAAMA,EACX1K,KAAK2K,IAAMA,EACX3K,KAAK4K,KAAOA,EAsDhB,OApDAnO,OAAOC,eAAe8O,EAAK7N,UAAW,OAAQ,CAC1Cf,IAAK,WAAc,OAAOoD,KAAKqpC,OAC/BzkC,IAAK,SAAUkH,GACPA,GAAK,GAAKA,EAAI,KACd9L,KAAKqpC,MAAQv9B,EACb9L,KAAK0pC,yBAGb/sC,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe8O,EAAK7N,UAAW,MAAO,CACzCf,IAAK,WAAc,OAAOoD,KAAKspC,MAC/B1kC,IAAK,SAAUzI,GACPA,GAAK,GAAKA,EAAI,KACd6D,KAAKspC,KAAOntC,EACZ6D,KAAK0pC,yBAGb/sC,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe8O,EAAK7N,UAAW,MAAO,CACzCf,IAAK,WAAc,OAAOoD,KAAKupC,MAC/B3kC,IAAK,SAAU9G,GACPA,GAAK,GAAKA,EAAI,KACdkC,KAAKupC,KAAOzrC,EACZkC,KAAK0pC,yBAGb/sC,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe8O,EAAK7N,UAAW,OAAQ,CAC1Cf,IAAK,WAAc,OAAOoD,KAAKwpC,OAC/B5kC,IAAK,SAAUsF,GACPA,GAAM,GAAKA,EAAK,MAChBlK,KAAKwpC,MAAQt/B,EACblK,KAAK0pC,yBAGb/sC,YAAY,EACZqjB,cAAc,IAElBxU,EAAK7N,UAAU+rC,qBAAuB,WAClC,IACI/+B,EAAgB,IADO,GAAb3K,KAAKqpC,MAAarpC,KAAKspC,MACZtpC,KAAKupC,KAC9BvpC,KAAKypC,UAAkB,IAAN9+B,EAAa3K,KAAKwpC,OAEvCh+B,EAAK7N,UAAU4O,oBAAsB,WACjC,OAAOvM,KAAKypC,WAETj+B,EApEC,GAsEZ1P,EAAQ0P,KAAOA,GAKR,SAASzP,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQuP,eAAY,EACpB,IAAI2gB,EAAkBpwB,EAAoB,GACtCyP,EAAa,WACb,SAASA,EAAUxE,EAAOC,GACXklB,EAAgBjmB,cAAcqG,mBAAmBvF,EAAOC,IACvD,GACR9G,KAAKosB,OAASvlB,EACd7G,KAAKqsB,KAAOvlB,IAGZ9G,KAAKosB,OAAStlB,EACd9G,KAAKqsB,KAAOxlB,GAkCpB,OA/BApK,OAAOC,eAAe2O,EAAU1N,UAAW,QAAS,CAChDf,IAAK,WAAc,OAAOoD,KAAKosB,QAC/BxnB,IAAK,SAAU6c,GACPA,GAAQuK,EAAgBjmB,cAAcqG,mBAAmBqV,EAAMzhB,KAAKqsB,OAAS,IAC7ErsB,KAAKosB,OAAS3K,IAEtB9kB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe2O,EAAU1N,UAAW,MAAO,CAC9Cf,IAAK,WAAc,OAAOoD,KAAKqsB,MAC/BznB,IAAK,SAAU6c,GACPA,GAAQuK,EAAgBjmB,cAAcqG,mBAAmBpM,KAAKosB,OAAQ3K,IAAS,IAC/EzhB,KAAKqsB,KAAO5K,IAEpB9kB,YAAY,EACZqjB,cAAc,IAElB3U,EAAU1N,UAAUgsC,cAAgB,SAAUloB,GAC1C,OAAOuK,EAAgBjmB,cAAcqG,mBAAmBpM,KAAKosB,OAAQ3K,IAAS,GAAKuK,EAAgBjmB,cAAcqG,mBAAmBqV,EAAMzhB,KAAKqsB,OAAS,GAE5JhhB,EAAU1N,UAAUisC,aAAe,SAAUvgB,GACzC,OAAOrpB,KAAK2pC,cAActgB,EAAMxiB,QAAU7G,KAAK2pC,cAActgB,EAAMviB,MAAQuiB,EAAMsgB,cAAc3pC,KAAK6G,QAAUwiB,EAAMsgB,cAAc3pC,KAAK8G,MAE3IuE,EAAU1N,UAAUksC,WAAa,SAAUxgB,GACvC,QAAKrpB,KAAK4pC,aAAavgB,KAEvBrpB,KAAK6G,MAAQmlB,EAAgBjmB,cAAc2G,WAAW1M,KAAK6G,MAAOwiB,EAAMxiB,OACxE7G,KAAK8G,IAAMklB,EAAgBjmB,cAAc0G,WAAWzM,KAAK8G,IAAKuiB,EAAMviB,MAC7D,IAEJuE,EA3CM,GA6CjBvP,EAAQuP,UAAYA,GAKb,SAAStP,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQsN,gCAA6B,EAErC,SAAWA,GACPA,EAA2BA,EAAkC,MAAI,GAAK,QACtEA,EAA2BA,EAAmC,OAAI,GAAK,SACvEA,EAA2BA,EAAkC,MAAI,GAAK,QACtEA,EAA2BA,EAAkC,MAAI,GAAK,QACtEA,EAA2BA,EAAiC,KAAI,GAAK,OALzE,CAMgCtN,EAAQsN,6BAA+BtN,EAAQsN,2BAA6B,MAKrG,SAASrN,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQgxB,uBAAoB,EAC5B,IAAI5mB,EAAWtK,EAAoB,GAC/BkuC,EAAUluC,EAAoB,IAC9BmuC,EAAWnuC,EAAoB,IAC/BouC,EAAYpuC,EAAoB,IAChCquC,EAAWruC,EAAoB,IAC/BkxB,EAAqB,WACrB,SAASA,KAkCT,OAhCAA,EAAkBod,uBAAyB,SAAUnuB,GACjD,IAAKA,EACD,OAAO,KAEX,OADoBA,EAAKpC,eAErB,IAAK,QACD,OAAO,IAAImwB,EAAQK,MACvB,IAAK,SACD,OAAO,IAAIJ,EAASK,OACxB,IAAK,UACD,OAAO,IAAIJ,EAAUK,QACzB,IAAK,SACD,OAAO,IAAIJ,EAASK,OAE5B,OAAO,MAEXxd,EAAkByd,2BAA6B,SAAU/iB,GACrD,IAAKA,EACD,OAAO,KACX,IAAIgjB,EAAaxqC,KAAKkqC,uBAAuB1iB,EAAUzL,MAGvD,OAFIyuB,GACAA,EAAWjjB,iBAAiBC,GACzBgjB,GAEX1d,EAAkBC,aAAe,SAAUhR,EAAM/e,GAC7C,IAAKkJ,EAASpB,UAAUiX,EAAK/e,IACzB,OAAO,KACX,IAAIuI,EAAMwG,SAAS/O,GACnB,OAAKoN,MAAM7E,GAEJwW,EAAK/e,GADDuI,GAGRunB,EAnCc,GAqCzBhxB,EAAQgxB,kBAAoBA,GAKrB,SAAS/wB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQquC,WAAQ,EAChB,IAAIxiB,EAAU/rB,EAAoB,GAC9B6uC,EAAmB7uC,EAAoB,IACvCowB,EAAkBpwB,EAAoB,GACtCuuC,EAAS,SAAUtiB,GAEnB,SAASsiB,IACL,OAAkB,OAAXtiB,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAe/D,OAjBA2nB,EAAQ3pB,UAAUmsC,EAAOtiB,GAIzBsiB,EAAMxsC,UAAUowB,UAAY,SAAUhmB,GAAQ,OAAO,GACrDoiC,EAAMxsC,UAAUswB,cAAgB,SAAUlmB,GACtC,OAAOikB,EAAgBjmB,cAAca,eAAe5G,KAAK6G,MAAOkB,GAAQ/H,KAAKksB,UAAY,GAE7Fie,EAAMxsC,UAAUuwB,yBAA2B,SAAUnmB,GACjD,IAAI2iC,EAAY1qC,KAAKksB,SAGrB,OAFKlsB,KAAK4tB,kBAAkB7lB,KACxB2iC,GAAa1e,EAAgBjmB,cAAca,eAAe5G,KAAK6G,MAAOkB,GAAQ/H,KAAKksB,UAChFF,EAAgBjmB,cAAcsC,QAAQN,EAAM2iC,IAEvDP,EAAMxsC,UAAUwwB,sBAAwB,SAAUpmB,GAC9C,OAAOikB,EAAgBjmB,cAAcsC,QAAQN,EAAM,IAEhDoiC,EAlBE,CAmBXM,EAAiB5e,gBACnB/vB,EAAQquC,MAAQA,GAKT,SAASpuC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ6uC,6BAA+B7uC,EAAQ8uC,kBAAoB9uC,EAAQy0B,eAAY,EACvF,IAAI5B,EAAU/yB,EAAoB,IAC9B6hB,EAAQ7hB,EAAoB,GAC5B20B,EAAa,WACb,SAASA,KA4IT,OA1IAA,EAAUsa,eAAiB,SAAUjiC,EAAOE,GAExC,OADQ,IAAIb,KAAKa,EAAMF,EAAQ,EAAG,GACzBH,WAEb8nB,EAAUgI,kBAAoB,SAAU1xB,EAAOC,GAC3C,OAAmD,IAA3CA,EAAIa,cAAgBd,EAAMc,eAAsBb,EAAIc,WAAaf,EAAMe,YAEnF2oB,EAAUoI,oBAAsB,SAAU9xB,EAAOC,GAC7C,OAAmD,GAA3CA,EAAIa,cAAgBd,EAAMc,eAAqBX,KAAKO,MAAMT,EAAIc,WAAa,GAAKZ,KAAKO,MAAMV,EAAMe,WAAa,IAE1H2oB,EAAUyM,wBAA0B,SAAUj1B,EAAMshB,EAAOiH,EAAcf,GACrE,IAAIvtB,EAAS,IAAIiG,KACb6iC,EAAiBzhB,EAAMxiB,MAAML,UAC7BukC,EAAe1hB,EAAMviB,IAAIN,UAE7B,GADAxE,EAAOg3B,QAAQjxB,EAAKvB,WAChBuB,EAAKvB,UAAYskC,EACjB9oC,EAAOg3B,QAAQ8R,QACd,GAAI/iC,EAAKvB,UAAYukC,EACtB/oC,EAAOg3B,QAAQ+R,QACd,GAAI/qC,KAAKgrC,gBAAgBjjC,EAAM+iC,EAAgBxa,EAAcf,GAAW,CACzE,IAAI0b,EAAsBjrC,KAAKkrC,uBAAuBnjC,EAAM+iC,EAAgBxa,EAAcf,GACtF4b,EAAuBnrC,KAAKorC,gBAAgBH,EAAqB3a,EAAcf,GAC/EvoB,KAAKC,IAAIc,EAAKvB,UAAYykC,GAAuBjkC,KAAKC,IAAIc,EAAKvB,UAAY2kC,GAC3EnpC,EAAOg3B,QAAQmS,GAEfnpC,EAAOg3B,QAAQiS,GAEvB,OAAOjpC,GAEXuuB,EAAUya,gBAAkB,SAAUjjC,EAAM+iC,EAAgBxa,EAAcf,GACtE,OAAIA,GAAYZ,EAAQ5D,SAAS8H,OACtB9qB,EAAKvB,YAAc,IAAIyB,KAAKF,EAAKJ,cAAeI,EAAKH,WAAY,GAAGpB,WACvEuB,EAAKvB,UAAYskC,GAAkBxa,IAAiB,GAEhEC,EAAU2a,uBAAyB,SAAUnjC,EAAM+iC,EAAgBxa,EAAcf,GAC7E,OAAIA,GAAYZ,EAAQ5D,SAAS8H,OACtB,IAAI5qB,KAAKF,EAAKJ,cAAeI,EAAKH,WAAY,GAAGpB,UAErDskC,EADe9jC,KAAKO,OAAOQ,EAAKvB,UAAYskC,GAAkBxa,GAC3BA,GAE9CC,EAAU6a,gBAAkB,SAAUC,EAAiB/a,EAAcf,GACjE,GAAIA,GAAYZ,EAAQ5D,SAAS8H,OAAQ,CACrC,IAAIyY,EAAe,IAAIrjC,KAGvB,OAFAqjC,EAAatS,QAAQqS,GACrBC,EAAavS,SAASuS,EAAa1jC,WAAa,GACzC0jC,EAAa9kC,UAExB,OAAO6kC,EAAkB/a,GAE7BC,EAAUgb,0BAA4B,SAAUxjC,EAAMwnB,EAAUic,GAE5D,YADuB,IAAnBA,IAA6BA,EAAiB,GAC1Cjc,GACJ,KAAKZ,EAAQ5D,SAASyH,WAClB,OAAO,IAAIvqB,KAAKF,EAAKJ,cAAeI,EAAKH,WAAYG,EAAKU,UAAWV,EAAKiE,YAC9E,KAAK2iB,EAAQ5D,SAAS2H,SACtB,KAAK/D,EAAQ5D,SAAS0H,MAClB,OAAO,IAAIxqB,KAAKF,EAAKJ,cAAeI,EAAKH,WAAYG,EAAKU,WAC9D,KAAKkmB,EAAQ5D,SAAS4H,KACtB,KAAKhE,EAAQ5D,SAAS6H,MAClB,OAAO,IAAI3qB,KAAKF,EAAKJ,cAAeI,EAAKH,WAAYG,EAAKU,UAAYV,EAAKP,SAAWgkC,GAC1F,KAAK7c,EAAQ5D,SAAS8H,OACtB,KAAKlE,EAAQ5D,SAAS+H,QACtB,KAAKnE,EAAQ5D,SAASgI,MAClB,OAAO,IAAI9qB,KAAKF,EAAKJ,cAAe,EAAG,GAC3C,QACI,OAAO,IAAIM,OAGvBsoB,EAAUkb,wBAA0B,SAAU1jC,EAAMwnB,EAAUic,GAE1D,YADuB,IAAnBA,IAA6BA,EAAiB,GAC1Cjc,GACJ,KAAKZ,EAAQ5D,SAASyH,WAClB,OAAO,IAAIvqB,KAAKF,EAAKJ,cAAeI,EAAKH,WAAYG,EAAKU,UAAWV,EAAKiE,WAAa,GAC3F,KAAK2iB,EAAQ5D,SAAS2H,SACtB,KAAK/D,EAAQ5D,SAAS0H,MAClB,OAAO,IAAIxqB,KAAKF,EAAKJ,cAAeI,EAAKH,WAAYG,EAAKU,UAAY,GAC1E,KAAKkmB,EAAQ5D,SAAS4H,KACtB,KAAKhE,EAAQ5D,SAAS6H,MAClB,OAAO,IAAI3qB,KAAKF,EAAKJ,cAAeI,EAAKH,WAAYG,EAAKU,UAAY,EAAIV,EAAKP,SAAWgkC,GAC9F,KAAK7c,EAAQ5D,SAAS8H,OACtB,KAAKlE,EAAQ5D,SAAS+H,QACtB,KAAKnE,EAAQ5D,SAASgI,MAClB,OAAO,IAAI9qB,KAAKF,EAAKJ,cAAgB,EAAG,EAAG,GAC/C,QACI,OAAO,IAAIM,OAGvBsoB,EAAUmb,eAAiB,SAAU3jC,EAAMwnB,GACvC,OAAQA,GACJ,KAAKZ,EAAQ5D,SAASyH,WACtB,KAAK7D,EAAQ5D,SAAS0H,MAClB,OAAO,IAAIxqB,KAAKF,EAAKJ,cAAeI,EAAKH,WAAYG,EAAKU,UAAWV,EAAKiE,WAAa,GAC3F,KAAK2iB,EAAQ5D,SAAS2H,SACtB,KAAK/D,EAAQ5D,SAAS4H,KAClB,OAAO,IAAI1qB,KAAKF,EAAKJ,cAAeI,EAAKH,WAAYG,EAAKU,UAAY,GAC1E,KAAKkmB,EAAQ5D,SAAS6H,MAClB,OAAO,IAAI3qB,KAAKF,EAAKJ,cAAeI,EAAKH,WAAYG,EAAKU,UAAYV,EAAKP,UAC/E,KAAKmnB,EAAQ5D,SAAS8H,OAClB,OAAO,IAAI5qB,KAAKF,EAAKJ,cAAeI,EAAKH,WAAa,GAC1D,KAAK+mB,EAAQ5D,SAAS+H,QACtB,KAAKnE,EAAQ5D,SAASgI,MAClB,OAAO,IAAI9qB,KAAKF,EAAKJ,cAAgB,EAAG,EAAG,GAC/C,QACI,OAAO,IAAIM,OAGvBsoB,EAAUC,gBAAkB,SAAUjB,GAClC,OAAQA,GACJ,KAAKZ,EAAQ5D,SAASyH,WAClB,OAAOjC,EAAUob,UAAY,EACjC,KAAKhd,EAAQ5D,SAAS0H,MAClB,OAAOlC,EAAUob,UACrB,KAAKhd,EAAQ5D,SAAS2H,SAClB,OAA6B,EAAtBnC,EAAUob,UACrB,KAAKhd,EAAQ5D,SAAS4H,KAClB,OAAOpC,EAAUqb,SACrB,KAAKjd,EAAQ5D,SAAS6H,MAClB,OAAOrC,EAAUsb,UACrB,KAAKld,EAAQ5D,SAAS8H,OAClB,OAAOtC,EAAUiI,WACrB,KAAK7J,EAAQ5D,SAAS+H,QAClB,OAA8B,EAAvBvC,EAAUiI,WACrB,KAAK7J,EAAQ5D,SAASgI,MAClB,OAAOxC,EAAUub,YAG7Bvb,EAAUpmB,MAAQ,SAAU4hC,GACxB,MAAuB,oBAATA,EAAsB,IAAI9jC,KAAK8jC,KAAU,IAAI9jC,KAAK8jC,IAEpExb,EAAUyb,sBAAwB,SAAUC,EAAOC,GAC/C,OAAOA,EAAMC,oBAAsBF,EAAME,qBAE7C5b,EAAUob,UAAY,KACtBpb,EAAUqb,SAAW,GAAKrb,EAAUob,UACpCpb,EAAUsb,UAAY,EAAItb,EAAUqb,SACpCrb,EAAUiI,WAAa,GAAKjI,EAAUqb,SACtCrb,EAAUub,UAAY,IAAMvb,EAAUqb,SACtCrb,EAAU6b,mBA6Pd,WACI,IAAIpqC,EAAS,GASb,OARAA,EAAO2sB,EAAQ5D,SAASyH,YAAc7D,EAAQ5D,SAAS0H,MACvDzwB,EAAO2sB,EAAQ5D,SAAS0H,OAAS9D,EAAQ5D,SAAS4H,KAClD3wB,EAAO2sB,EAAQ5D,SAAS2H,UAAY/D,EAAQ5D,SAAS4H,KACrD3wB,EAAO2sB,EAAQ5D,SAAS4H,MAAQhE,EAAQ5D,SAAS6H,MACjD5wB,EAAO2sB,EAAQ5D,SAAS6H,OAASjE,EAAQ5D,SAAS8H,OAClD7wB,EAAO2sB,EAAQ5D,SAAS8H,QAAUlE,EAAQ5D,SAASgI,MACnD/wB,EAAO2sB,EAAQ5D,SAAS+H,SAAWnE,EAAQ5D,SAASgI,MACpD/wB,EAAO2sB,EAAQ5D,SAASgI,OAASpE,EAAQ5D,SAASshB,UAC3CrqC,EAvQwBsqC,GACxB/b,EA7IM,GA+IjBz0B,EAAQy0B,UAAYA,EACpB,IAAIqa,EAAqB,WACrB,SAASA,EAAkB2B,GACvBvsC,KAAKwsC,qBAAuB,KAC5BxsC,KAAKysC,iBAAmB,KACxBzsC,KAAK0sC,mBAAqB,KAC1B,IAAIC,EAASt9B,SAAS8G,cAAc,UACpCnW,KAAK4sC,mBAAqBD,EAAOE,WAAW,MAC5C7sC,KAAKusC,YAAcA,EAyOvB,OAvOA3B,EAAkBjtC,UAAUmvC,QAAU,SAAUC,GAC5C,IAAIC,EAAgBvvB,EAAM3Q,SAASsC,gBAAgB29B,GAC/CE,EAAOD,EAAcC,KAAOD,EAAcC,KAC1CD,EAAcE,UAAY,IAAMF,EAAcG,YAAc,IAAMH,EAAcI,WAAa,IACvFJ,EAAcK,SAAW,MAAQL,EAAcM,WAAa,IAAMN,EAAcO,WAC1FvtC,KAAK4sC,mBAAmBK,KAAOA,GAEnCrC,EAAkBjtC,UAAUyxB,YAAc,SAAUoe,EAAWje,EAAUke,GACrEztC,KAAKwtC,UAAYA,EACjBxtC,KAAKuvB,SAAWA,EAChBvvB,KAAKytC,WAAaA,GAEtB7C,EAAkBjtC,UAAU+vC,sBAAwB,SAAUnzB,EAAO4W,GACjE,IAAInvB,EAAS,IAAIiG,KAAKjI,KAAKwtC,WAC3B,OAAQrc,GACJ,KAAKxC,EAAQ5D,SAASyH,WAClBxwB,EAAOg3B,QAAQh5B,KAAKwtC,UAAYjzB,EAAQgW,EAAUob,UAAY,GAC9D,MACJ,KAAKhd,EAAQ5D,SAAS0H,MAClBzwB,EAAOg3B,QAAQh5B,KAAKwtC,UAAYjzB,EAAQgW,EAAUob,WAClD,MACJ,KAAKhd,EAAQ5D,SAAS2H,SAClB1wB,EAAOg3B,QAAQh5B,KAAKwtC,UAAYjzB,EAAQgW,EAAUob,UAAY,GAC9D,MACJ,KAAKhd,EAAQ5D,SAAS4H,KAClB3wB,EAAOg3B,QAAQh5B,KAAKwtC,UAAYjzB,EAAQgW,EAAUqb,UAClD,MACJ,KAAKjd,EAAQ5D,SAAS6H,MAClB5wB,EAAOg3B,QAAQh5B,KAAKwtC,UAAYjzB,EAAQgW,EAAUsb,WAClD,MACJ,KAAKld,EAAQ5D,SAAS8H,OAClB7wB,EAAO+2B,SAAS/2B,EAAO4F,WAAa2S,GACpC,MACJ,KAAKoU,EAAQ5D,SAAS+H,QAClB9wB,EAAO+2B,SAAS/2B,EAAO4F,WAAqB,EAAR2S,GACpC,MACJ,KAAKoU,EAAQ5D,SAASgI,MAClB/wB,EAAO2rC,YAAY3rC,EAAO2F,cAAgB4S,GAC1C,MACJ,KAAKoU,EAAQ5D,SAASshB,UAClBrqC,EAAO2rC,YAAY3rC,EAAO2F,cAAwB,EAAR4S,GAIlD,OADAvY,EAAShC,KAAK4tC,kCAAkC5rC,IAGpD4oC,EAAkBjtC,UAAUiwC,kCAAoC,SAAU7lC,GACtE,IAAI8lC,EAAetd,EAAUyb,sBAAsB,IAAI/jC,KAAKjI,KAAKwtC,WAAYzlC,GAC7E,OAAO8lC,EAAe,EAAI,IAAI5lC,KAAKF,EAAKvB,UAA2B,IAAfqnC,GAAwB9lC,GAEhF6iC,EAAkBjtC,UAAUmwC,iBAAmB,SAAUvzB,EAAO4W,GAC5D,IAAI4c,EAAqB/tC,KAAK0tC,sBAAsBnzB,EAAO4W,GACvD6c,EAAkBhuC,KAAKuvB,SAAS2C,WAAaf,EAAUe,UAC3D,OAAQf,GACJ,KAAKxC,EAAQ5D,SAASyH,WAClB,OAAOxyB,KAAKiuC,2BAA2BF,GAC3C,KAAKpf,EAAQ5D,SAAS0H,MACtB,KAAK9D,EAAQ5D,SAAS2H,SAClB,OAAO1yB,KAAKkuC,sBAAsBH,GACtC,KAAKpf,EAAQ5D,SAAS4H,KAClB,OAAO3yB,KAAKmuC,qBAAqBJ,EAAoBC,GACzD,KAAKrf,EAAQ5D,SAAS6H,MAClB,OAAO5yB,KAAKouC,sBAAsBL,EAAoBC,GAC1D,KAAKrf,EAAQ5D,SAAS8H,OAClB,OAAO7yB,KAAKquC,uBAAuBN,EAAoBC,GAC3D,KAAKrf,EAAQ5D,SAAS+H,QAClB,OAAO9yB,KAAKsuC,wBAAwBP,EAAoBC,GAC5D,KAAKrf,EAAQ5D,SAASgI,MAClB,OAAO/yB,KAAKuuC,sBAAsBR,GACtC,KAAKpf,EAAQ5D,SAASshB,UAClB,OAAOrsC,KAAKwuC,0BAA0BT,KAGlDnD,EAAkBjtC,UAAUswC,2BAA6B,SAAUQ,GAC/D,IAAIC,EAAUD,EAAcxiC,aAAe,EAC3C,OAAkC,GAA1BjF,KAAKE,KAAKwnC,EAAU,KAAU7oC,YAE1C+kC,EAAkBjtC,UAAUgxC,8BAAgC,SAAUF,GAElE,OADcA,EAAcxiC,aACX,GAAK,KAAO,MAEjC2+B,EAAkBjtC,UAAUuwC,sBAAwB,SAAUO,GAC1D,IAAIG,EAAQH,EAAcziC,WACtB6iC,EAAkB7uC,KAAK8uC,mBAAmBF,GAC1CG,EAAWH,EAAQ,GAAK5uC,KAAKgvC,YAAchvC,KAAKivC,YACpD,OAAOjvC,KAAKkvC,0BAA0BL,EAAiBE,IAE3DnE,EAAkBjtC,UAAUwwC,qBAAuB,SAAUM,EAAeT,GACxE,OAAOhuC,KAAKmvC,gBAAgBV,GAAe,EAAMT,EAAiBA,GAAkBA,IAExFpD,EAAkBjtC,UAAUywC,sBAAwB,SAAUK,EAAeT,GACzE,IAAIoB,EAAkB,IAAInnC,KAAKwmC,EAAcjoC,UAAY+pB,EAAUsb,UAAYtb,EAAUqb,UACzF,OAAO5rC,KAAKqvC,0BAA0BrvC,KAAKmvC,gBAAgBV,EAAeT,GAAiB,EAAMA,GAAkBA,GAAkBhuC,KAAKmvC,gBAAgBC,EAAiBpB,GAAiB,EAAMA,GAAkBA,KAExNpD,EAAkBjtC,UAAU0wC,uBAAyB,SAAUI,EAAeT,GAC1E,IAAIsB,EAAatvC,KAAKuvC,gBAClBC,EAAmBxB,EAA2D,GAAzCS,EAAc9mC,cAAc9B,WACrE,OAAO7F,KAAKyvC,2BAA2BH,EAAWb,EAAc7mC,YAAa4nC,IAEjF5E,EAAkBjtC,UAAU2wC,wBAA0B,SAAUG,EAAeT,GAC3E,IAAI0B,EAAe1vC,KAAK2vC,kBACpBH,EAAmBxB,EAA2D,GAAzCS,EAAc9mC,cAAc9B,WACrE,OAAO7F,KAAKyvC,2BAA2BC,EAAa1oC,KAAKO,MAAMknC,EAAc7mC,WAAa,IAAK4nC,IAEnG5E,EAAkBjtC,UAAU4wC,sBAAwB,SAAUE,GAC1D,OAAOA,EAAc9mC,cAAc9B,YAEvC+kC,EAAkBjtC,UAAU6wC,0BAA4B,SAAUC,GAC9D,OAAOA,EAAc9mC,cAAc9B,WAAa,OAAS4oC,EAAc9mC,cAAgB,GAAG9B,YAE9F+kC,EAAkBjtC,UAAUmxC,mBAAqB,SAAUF,GACvD,OAAI5uC,KAAK4vC,WACY,GAAThB,EAAa,GAAMA,GAAS,GAAKA,EAAQA,EAAQ,IAAK/oC,WAC3D+oC,EAAQ,GAAK,IAAMA,EAAQA,EAAM/oC,YAE5C+kC,EAAkBjtC,UAAUwxC,gBAAkB,SAAUV,EAAeoB,EAAgBC,EAAiBC,EAAmBC,GACvH,IAAIV,EAAaS,EAAoB/vC,KAAKiwC,oBAAsBjwC,KAAKuvC,gBACjEW,EAAWJ,EAAkB9vC,KAAKmwC,kBAAoBnwC,KAAKowC,cAC3DC,EAAqBR,EAAiBK,EAASzB,EAAcjnC,UAAY,GACzEgB,EAAMimC,EAAchmC,UACpB6nC,EAAYhB,EAAWb,EAAc7mC,YACrC4nC,EAAkBQ,EAAcvB,EAAc9mC,cAAc9B,WAAa,GAC7E,OAAO7F,KAAKuwC,oBAAoBF,EAAoB7nC,EAAI3C,WAAYyqC,EAAWd,IAEnF5E,EAAkBjtC,UAAU6yC,YAAc,SAAUj2B,GAChD,IAAImO,EAAO1oB,KAAKytC,WAAWlzB,GAC3B,OAAOmO,EAAOA,EAAKlD,KAAK2Y,MAAQ,IAEpCyM,EAAkBjtC,UAAU8yC,kBAAoB,SAAUl2B,GACtD,IAAImO,EAAO1oB,KAAKytC,WAAWlzB,GAC3B,QAASmO,GAAQA,EAAKgoB,cAE1B9F,EAAkBjtC,UAAUiyC,QAAU,WAClC,OAAO5vC,KAAKgvC,YAAY5uC,OAAS,GAAKJ,KAAKivC,YAAY7uC,OAAS,GAEpEwqC,EAAkBjtC,UAAUgzC,yBAA2B,SAAUphB,GAC7D,OAAQA,GACJ,KAAKZ,EAAQ5D,SAASyH,WAClB,MAAO,KACX,KAAK7D,EAAQ5D,SAAS0H,MACtB,KAAK9D,EAAQ5D,SAAS2H,SAClB,OAAO1yB,KAAKkvC,0BAA0B,KAAMlvC,KAAKgvC,aACrD,KAAKrgB,EAAQ5D,SAAS4H,KAClB,OAAO3yB,KAAK4wC,qBAChB,KAAKjiB,EAAQ5D,SAAS6H,MAClB,OAAO5yB,KAAK6wC,sBAChB,KAAKliB,EAAQ5D,SAAS8H,OAClB,OAAO7yB,KAAKyvC,2BAA2BzvC,KAAK8wC,sBAAuB,IACvE,KAAKniB,EAAQ5D,SAAS+H,QAClB,MAAO,KACX,KAAKnE,EAAQ5D,SAASgI,MAClB,MAAO,SAGnB6X,EAAkBjtC,UAAUizC,mBAAqB,WAC7C,OAAO5wC,KAAKuwC,oBAAoBvwC,KAAK+wC,wBAAyB,KAAM/wC,KAAKgxC,0BAA2B,KAExGpG,EAAkBjtC,UAAUkzC,oBAAsB,WAC9C,IAAII,EAAkBjxC,KAAK4wC,qBAC3B,OAAO5wC,KAAKqvC,0BAA0B4B,EAAiBA,IAE3DrG,EAAkBjtC,UAAUuxC,0BAA4B,SAAUL,EAAiBE,GAC/E,OAAOF,EAAkB,OAAS7uC,KAAK4vC,UAAY,IAAMb,EAAW,KAExEnE,EAAkBjtC,UAAU4yC,oBAAsB,SAAUW,EAASC,EAAgBb,EAAWc,GAC5F,IAAIpvC,EAASkvC,EAAQ9wC,OAAS,EAAI8wC,EAAU,KAAO,GAGnD,OAFAlvC,GAAUmvC,EAAiB,IAAMb,EACjCtuC,GAAUovC,EAAgBhxC,OAAS,EAAI,IAAMgxC,EAAkB,IAGnExG,EAAkBjtC,UAAU0xC,0BAA4B,SAAUgC,EAAsBC,GACpF,OAAOD,EAAuB,MAAQC,GAE1C1G,EAAkBjtC,UAAU8xC,2BAA6B,SAAUa,EAAWc,GAC1E,IAAIpvC,EAASsuC,EAGb,OAFIc,EAAgBhxC,OAAS,IACzB4B,GAAU,IAAMovC,GACbpvC,GAEX4oC,EAAkBjtC,UAAUqzC,wBAA0B,WAGlD,OAFiC,MAA7BhxC,KAAKwsC,uBACLxsC,KAAKwsC,qBAAuBxsC,KAAKuxC,eAAevxC,KAAKiwC,sBAClDjwC,KAAKwsC,sBAEhB5B,EAAkBjtC,UAAUmzC,oBAAsB,WAG9C,OAF6B,MAAzB9wC,KAAKysC,mBACLzsC,KAAKysC,iBAAmBzsC,KAAKuxC,eAAevxC,KAAKuvC,kBAC9CvvC,KAAKysC,kBAEhB7B,EAAkBjtC,UAAUozC,sBAAwB,WAGhD,OAF+B,MAA3B/wC,KAAK0sC,qBACL1sC,KAAK0sC,mBAAqB1sC,KAAKuxC,eAAevxC,KAAKmwC,oBAChDnwC,KAAK0sC,oBAEhB9B,EAAkBjtC,UAAU4zC,eAAiB,SAAUC,GACnD,IAAIxmC,EAAQhL,KACRgC,EAAS,GACTyvC,EAAmB,EAQvB,OAPAD,EAAM77B,SAAQ,SAAU+rB,GACpB,IAAIgQ,EAAY1mC,EAAM2mC,aAAajQ,GAC/BgQ,EAAYD,IACZA,EAAmBC,EACnB1vC,EAAS0/B,MAGV1/B,GAEX4oC,EAAkBjtC,UAAUg0C,aAAe,SAAUjQ,GACjD,OAAO16B,KAAKwG,MAAMxN,KAAK4sC,mBAAmBgF,YAAYlQ,GAAM9zB,QAEhEg9B,EAAkBjtC,UAAUqxC,UAAY,WACpC,OAAOhvC,KAAKusC,YAAYsF,QAE5BjH,EAAkBjtC,UAAUsxC,UAAY,WACpC,OAAOjvC,KAAKusC,YAAYuF,QAE5BlH,EAAkBjtC,UAAUgyC,gBAAkB,WAC1C,OAAO3vC,KAAKusC,YAAYmD,cAE5B9E,EAAkBjtC,UAAU4xC,cAAgB,WACxC,OAAOvvC,KAAKusC,YAAY+C,YAE5B1E,EAAkBjtC,UAAUyyC,YAAc,WACtC,OAAOpwC,KAAKusC,YAAY2D,UAE5BtF,EAAkBjtC,UAAUsyC,kBAAoB,WAC5C,OAAOjwC,KAAKusC,YAAYwF,gBAE5BnH,EAAkBjtC,UAAUwyC,gBAAkB,WAC1C,OAAOnwC,KAAKusC,YAAYyF,cAErBpH,EAhPc,GAkPzB9uC,EAAQ8uC,kBAAoBA,EAC5B,IAAID,EACA,aAIJ7uC,EAAQ6uC,6BAA+BA,GAiBhC,SAAS5uC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQu1B,qBAAkB,EAC1B,IAAIhQ,EAAUzlB,EAAoB,GAC9B8yB,EAAS9yB,EAAoB,IAC7Bq2C,EAAYr2C,EAAoB,IAChCy1B,EAAmB,WACnB,SAASA,EAAgBhgB,EAAWsG,EAAUhK,GAC1C3N,KAAKylB,GAAK4L,EAAgB5L,KAC1BzlB,KAAK2X,SAAW,IAAI0J,EAAQzJ,WAAMxU,OAAWA,GAC7CpD,KAAK2N,KAAO,IAAI+gB,EAAOuB,KAAK,EAAG,GAC/BjwB,KAAKs1B,QAAU,IAAI2c,EAAUC,aAAQ9uC,OAAWA,OAAWA,OAAWA,GACtEpD,KAAKs8B,KAAO,GACZt8B,KAAKoN,MAAQ,GACTiE,IACArR,KAAKqR,UAAYA,GACjBsG,GACA3X,KAAKsxB,YAAY3Z,GACjBhK,GACA3N,KAAKwxB,QAAQ7jB,GA2CrB,OAzCA0jB,EAAgB1zB,UAAU6zB,QAAU,SAAU7jB,GAC1C3N,KAAK2N,KAAKC,MAAQD,EAAKC,MACvB5N,KAAK2N,KAAKE,OAASF,EAAKE,QAE5BwjB,EAAgB1zB,UAAU2zB,YAAc,SAAU3Z,GAC9C3X,KAAK2X,SAASzM,EAAIyM,EAASzM,EAC3BlL,KAAK2X,SAAStV,EAAIsV,EAAStV,GAE/BgvB,EAAgB1zB,UAAUw0C,gBAAkB,SAAUnlC,GAClDhN,KAAKoyC,eAAeplC,GACpBhN,KAAKqyC,WAAWrlC,GAChBhN,KAAKsyC,cAActlC,GACfhN,KAAKqR,YACLrE,EAAQqE,UAAYrR,KAAKqR,YAEjCggB,EAAgB1zB,UAAUy0C,eAAiB,SAAUplC,GAC1B,MAAnBhN,KAAK2X,SAASzM,IACd8B,EAAQI,MAAME,KAAOtN,KAAK2X,SAASzM,EAAI,MACpB,MAAnBlL,KAAK2X,SAAStV,IACd2K,EAAQI,MAAMK,IAAMzN,KAAK2X,SAAStV,EAAI,OAE9CgvB,EAAgB1zB,UAAU00C,WAAa,SAAUrlC,GACzChN,KAAK2N,KAAKC,QACVZ,EAAQI,MAAMQ,MAAQ5N,KAAK2N,KAAKC,MAAQ,MACxC5N,KAAK2N,KAAKE,SACVb,EAAQI,MAAMS,OAAS7N,KAAK2N,KAAKE,OAAS,OAElDwjB,EAAgB1zB,UAAU20C,cAAgB,SAAUtlC,GAC5ChN,KAAKs1B,QAAQhoB,OACbN,EAAQI,MAAMmlC,WAAavyC,KAAKs1B,QAAQhoB,KAAO,MAC/CtN,KAAKs1B,QAAQ7nB,MACbT,EAAQI,MAAMolC,UAAYxyC,KAAKs1B,QAAQ7nB,IAAM,MAC7CzN,KAAKs1B,QAAQmd,QACbzlC,EAAQI,MAAMslC,YAAc1yC,KAAKs1B,QAAQmd,MAAQ,MACjDzyC,KAAKs1B,QAAQqd,SACb3lC,EAAQI,MAAMwlC,aAAe5yC,KAAKs1B,QAAQqd,OAAS,OAE3DthB,EAAgB1zB,UAAUkU,aAAe,SAAUvV,EAAMU,GACrDgD,KAAKs8B,KAAKhgC,GAAQU,GAEtBq0B,EAAgB5L,GAAK,EACd4L,EAxDY,GA0DvBv1B,EAAQu1B,gBAAkBA,GAKnB,SAASt1B,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ+2C,mBAAqB/2C,EAAQ8hC,UAAY9hC,EAAQg3C,kBAAoBh3C,EAAQi3C,gBAAkBj3C,EAAQk3C,cAAW,EAC1H,IAAIrkB,EAAU/yB,EAAoB,IAC9BsK,EAAWtK,EAAoB,GAC/Bo3C,EAAY,WACZ,SAASA,IACLhzC,KAAKuvB,cAAWnsB,EAChBpD,KAAKizC,kBAAoBtkB,EAAQ9D,kBAAkBqoB,OACnDlzC,KAAKmzC,eAAgB,EACrBnzC,KAAKozC,6BAA8B,EACnCpzC,KAAKqzC,2BAA4B,EACjCrzC,KAAKszC,yBAA0B,EAC/BtzC,KAAK0kB,iBAAkB,EACvB1kB,KAAKwrC,eAAiB,EACtBxrC,KAAKghB,QAAU,IAAI+xB,EACnB/yC,KAAKuzC,WAAa,IAAIV,EACtB7yC,KAAK09B,WAAa,IAAIoV,EA6C1B,OA3CAE,EAAS7oC,MAAQ,SAAU4W,GACvB,IAAI/e,EAAS,IAAIgxC,EA2BjB,OA1BIjyB,IACI7a,EAASpB,UAAUic,EAASwO,YAC5BvtB,EAAOutB,SAAWxO,EAASwO,UAC3BrpB,EAASpB,UAAUic,EAASkyB,qBAC5BjxC,EAAOixC,kBAAoBlyB,EAASkyB,mBACpC/sC,EAASpB,UAAUic,EAASoyB,iBAC5BnxC,EAAOmxC,cAAgBpyB,EAASoyB,eAChCjtC,EAASpB,UAAUic,EAASqyB,+BAC5BpxC,EAAOoxC,4BAA8BryB,EAASqyB,6BAC9CltC,EAASpB,UAAUic,EAASsyB,6BAC5BrxC,EAAOoxC,4BAA8BryB,EAASqyB,6BAC9CltC,EAASpB,UAAUic,EAASuyB,2BAC5BtxC,EAAOsxC,wBAA0BvyB,EAASuyB,yBAC1CptC,EAASpB,UAAUic,EAAS2D,mBAC5B1iB,EAAO0iB,gBAAkB3D,EAAS2D,iBAClCxe,EAASpB,UAAUic,EAASyqB,kBAC5BxpC,EAAOwpC,eAAiBzqB,EAASyqB,gBACjCtlC,EAASpB,UAAUic,EAASC,WAC5Bhf,EAAOgf,QAAU+xB,EAAgB5oC,MAAM4W,EAASC,UAChD9a,EAASpB,UAAUic,EAASwyB,cAC5BvxC,EAAOuxC,WAAaV,EAAmB1oC,MAAM4W,EAASwyB,aACtDrtC,EAASpB,UAAUic,EAAS2c,cAC5B17B,EAAO07B,WAAaoV,EAAkB3oC,MAAM4W,EAAS2c,aACrDx3B,EAASpB,UAAUic,EAASyyB,8BAC5BxxC,EAAOwxC,2BAA6BzyB,EAASyyB,6BAE9CxxC,GAEXgxC,EAASr1C,UAAUwpB,MAAQ,SAAUpG,GACjC,IAAI/e,GAAS,EAUb,OADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,EAASA,GAAUhC,KAAKuvB,WAAaxO,EAASwO,WAC3BvvB,KAAKizC,oBAAsBlyB,EAASkyB,oBACpCjzC,KAAKmzC,gBAAkBpyB,EAASoyB,gBAChCnzC,KAAKozC,8BAAgCryB,EAASqyB,8BAC9CpzC,KAAKszC,0BAA4BvyB,EAASuyB,0BAC1CtzC,KAAK0kB,kBAAoB3D,EAAS2D,kBAClC1kB,KAAKghB,QAAQmG,MAAMpG,EAASC,WAC5BhhB,KAAKuzC,WAAWpsB,MAAMpG,EAASwyB,cAC/BvzC,KAAK09B,WAAWvW,MAAMpG,EAAS2c,aAG/CsV,EAzDK,GA2DhBl3C,EAAQk3C,SAAWA,EACnB,IAAID,EAAmB,WACnB,SAASA,IACL/yC,KAAKygB,SAAU,EACfzgB,KAAKyzC,uBAAwB,EAC7BzzC,KAAK0zC,uBAAwB,EAC7B1zC,KAAK2zC,iBAAkB,EACvB3zC,KAAK4zC,iBAAkB,EACvB5zC,KAAK6zC,iBAAkB,EACvB7zC,KAAK8zC,qBAAsB,EAC3B9zC,KAAK+zC,qBAAsB,EAC3B/zC,KAAKg0C,qBAAsB,EAC3Bh0C,KAAKi0C,yBAA0B,EA0CnC,OAxCAlB,EAAgB5oC,MAAQ,SAAU4W,GAC9B,IAAI/e,EAAS,IAAI+wC,EAuBjB,OAtBIhyB,IACI7a,EAASpB,UAAUic,EAASN,WAC5Bze,EAAOye,QAAUM,EAASN,SAC1Bva,EAASpB,UAAUic,EAAS0yB,yBAC5BzxC,EAAOyxC,sBAAwB1yB,EAAS0yB,uBACxCvtC,EAASpB,UAAUic,EAAS2yB,yBAC5B1xC,EAAO0xC,sBAAwB3yB,EAAS2yB,uBACxCxtC,EAASpB,UAAUic,EAAS4yB,mBAC5B3xC,EAAO2xC,gBAAkB5yB,EAAS4yB,iBAClCztC,EAASpB,UAAUic,EAAS6yB,mBAC5B5xC,EAAO4xC,gBAAkB7yB,EAAS6yB,iBAClC1tC,EAASpB,UAAUic,EAAS8yB,mBAC5B7xC,EAAO6xC,gBAAkB9yB,EAAS8yB,iBAClC3tC,EAASpB,UAAUic,EAAS+yB,uBAC5B9xC,EAAO8xC,oBAAsB/yB,EAAS+yB,qBACtC5tC,EAASpB,UAAUic,EAASgzB,uBAC5B/xC,EAAO+xC,oBAAsBhzB,EAASgzB,qBACtC7tC,EAASpB,UAAUic,EAASizB,uBAC5BhyC,EAAOgyC,oBAAsBjzB,EAASizB,qBACtC9tC,EAASpB,UAAUic,EAASkzB,2BAC5BjyC,EAAOiyC,wBAA0BlzB,EAASkzB,0BAE3CjyC,GAEX+wC,EAAgBp1C,UAAUwpB,MAAQ,SAAUpG,GACxC,IAAI/e,GAAS,EAWb,OADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,EAASA,GAAUhC,KAAKygB,UAAYM,EAASN,UAC1BzgB,KAAKyzC,wBAA0B1yB,EAAS0yB,wBACxCzzC,KAAK0zC,wBAA0B3yB,EAAS2yB,wBACxC1zC,KAAK2zC,kBAAoB5yB,EAAS4yB,kBAClC3zC,KAAK4zC,kBAAoB7yB,EAAS6yB,kBAClC5zC,KAAK6zC,kBAAoB9yB,EAAS8yB,kBAClC7zC,KAAK8zC,sBAAwB/yB,EAAS+yB,sBACtC9zC,KAAK+zC,sBAAwBhzB,EAASgzB,sBACtC/zC,KAAKg0C,sBAAwBjzB,EAASizB,sBACtCh0C,KAAKi0C,0BAA4BlzB,EAASkzB,yBAG1DlB,EArDY,GAuDvBj3C,EAAQi3C,gBAAkBA,EAC1B,IAAID,EAAqB,WACrB,SAASA,IACL9yC,KAAK29B,iBAAkB,EACvB39B,KAAKk0C,0BAA4B,IACjCl0C,KAAK09B,WAAa,GA+BtB,OA7BAoV,EAAkB3oC,MAAQ,SAAU4W,GAChC,IAAI/e,EAAS,IAAI8wC,EACjB,GAAI/xB,IACI7a,EAASpB,UAAUic,EAAS4c,mBAC5B37B,EAAO27B,gBAAkB5c,EAAS4c,iBAClCz3B,EAASpB,UAAUic,EAASmzB,6BAC5BlyC,EAAOkyC,0BAA4BnzB,EAASmzB,2BAC5ChuC,EAASpB,UAAUic,EAAS8c,oBAC5B77B,EAAO67B,iBAAmB9c,EAAS8c,kBACnC33B,EAASpB,UAAUic,EAAS+c,uBAC5B97B,EAAO87B,oBAAsB/c,EAAS+c,qBACtC53B,EAASpB,UAAUic,EAAS2c,aAC5B,IAAK,IAAI1hC,EAAI,EAAGA,EAAI+kB,EAAS2c,WAAWt9B,OAAQpE,IAC5CgG,EAAO07B,WAAWz6B,KAAK26B,EAAUzzB,MAAM4W,EAAS2c,WAAW1hC,KAEvE,OAAOgG,GAEX8wC,EAAkBn1C,UAAUwpB,MAAQ,SAAUpG,GAC1C,IAAI/e,GAAS,EAMb,GADAA,GADAA,GADAA,GADAA,GADAA,EAASA,GAAUhC,KAAK29B,iBAAmB5c,EAAS4c,kBACjC39B,KAAKk0C,2BAA6BnzB,EAASmzB,4BAC3Cl0C,KAAK69B,kBAAoB9c,EAAS8c,mBAClC79B,KAAK89B,qBAAuB/c,EAAS+c,sBACrC99B,KAAK09B,WAAWt9B,SAAW2gB,EAAS2c,WAAWt9B,OAE9D,IAAK,IAAIpE,EAAI,EAAGA,EAAI+kB,EAAS2c,WAAWt9B,OAAQpE,IAC5CgG,EAASA,GAAUhC,KAAK09B,WAAW1hC,GAAGmrB,MAAMpG,EAAS2c,WAAW1hC,IACxE,OAAOgG,GAEJ8wC,EAnCc,GAqCzBh3C,EAAQg3C,kBAAoBA,EAC5B,IAAIlV,EAAa,WACb,SAASA,EAAU/2B,EAAOC,EAAKq3B,EAAOD,EAAUD,GAC5Cj+B,KAAKi+B,WAAY,EACjBj+B,KAAK6G,MAAQA,EACb7G,KAAK8G,IAAMA,EACX9G,KAAKm+B,MAAQA,EACbn+B,KAAKk+B,SAAWA,EAChBl+B,KAAKi+B,UAAYA,EA2BrB,OAzBAL,EAAUzzB,MAAQ,SAAU4W,GACxB,IAAI/e,EAAS,IAAI47B,EAWjB,OAVI7c,IACI7a,EAASpB,UAAUic,EAASla,SAC5B7E,EAAO6E,MAAQka,EAASla,OACxBX,EAASpB,UAAUic,EAASja,OAC5B9E,EAAO8E,IAAMia,EAASja,KACtBZ,EAASpB,UAAUic,EAASod,SAC5Bn8B,EAAOm8B,MAAQpd,EAASod,OACxBj4B,EAASpB,UAAUic,EAASmd,YAC5Bl8B,EAAOk8B,SAAWnd,EAASmd,WAE5Bl8B,GAEX47B,EAAUjgC,UAAUwa,MAAQ,WACxB,OAAO,IAAIylB,EAAU59B,KAAK6G,MAAO7G,KAAK8G,IAAK9G,KAAKm+B,MAAOn+B,KAAKk+B,SAAUl+B,KAAKi+B,YAE/EL,EAAUjgC,UAAUwpB,MAAQ,SAAU4W,GAClC,IAAI/7B,GAAS,EAKb,OADAA,GADAA,GADAA,GADAA,EAASA,GAAUhC,KAAK6G,OAASk3B,EAAUl3B,QACxB7G,KAAK8G,KAAOi3B,EAAUj3B,MACtB9G,KAAKm+B,OAASJ,EAAUI,QACxBn+B,KAAKk+B,UAAYH,EAAUG,UAG3CN,EAlCM,GAoCjB9hC,EAAQ8hC,UAAYA,EACpB,IAAIiV,EAAsB,WACtB,SAASA,IACL7yC,KAAKm0C,sBAAuB,EAC5Bn0C,KAAKo0C,uBAAwB,EAC7Bp0C,KAAKq0C,sBAAuB,EAqBhC,OAnBAxB,EAAmB1oC,MAAQ,SAAU4W,GACjC,IAAI/e,EAAS,IAAI6wC,EASjB,OARI9xB,IACI7a,EAASpB,UAAUic,EAASozB,wBAC5BnyC,EAAOmyC,qBAAuBpzB,EAASozB,sBACvCjuC,EAASpB,UAAUic,EAASqzB,yBAC5BpyC,EAAOoyC,sBAAwBrzB,EAASqzB,uBACxCluC,EAASpB,UAAUic,EAASszB,wBAC5BryC,EAAOqyC,qBAAuBtzB,EAASszB,uBAExCryC,GAEX6wC,EAAmBl1C,UAAUwpB,MAAQ,SAAUpG,GAC3C,IAAI/e,GAAS,EAIb,OADAA,GADAA,GADAA,EAASA,GAAUhC,KAAKm0C,uBAAyBpzB,EAASozB,uBACvCn0C,KAAKo0C,wBAA0BrzB,EAASqzB,wBACxCp0C,KAAKq0C,uBAAyBtzB,EAASszB,sBAGvDxB,EAzBe,GA2B1B/2C,EAAQ+2C,mBAAqBA,GAKtB,SAAS92C,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQw4C,wBAAqB,EAC7B,IAAI3lB,EAAU/yB,EAAoB,IAC9BuK,EAAcvK,EAAoB,GAClC6hB,EAAQ7hB,EAAoB,GAC5BgR,EAAYhR,EAAoB,GAChC04C,EAAsB,WACtB,SAASA,EAAmBC,GACxBv0C,KAAKw0C,WAAa,EAClBx0C,KAAKs2B,gBAAkB,EACvBt2B,KAAKghB,SAAU,EACfhhB,KAAKu0C,MAAQA,EACbv0C,KAAKy0C,iBAyUT,OAvUAh4C,OAAOC,eAAe43C,EAAmB32C,UAAW,SAAU,CAC1Df,IAAK,WACD,OAAOoD,KAAKu0C,MAAMrvB,UAAUC,MAAMnlB,KAAKw0C,WAAWhvB,KAAK6B,YAE3D1qB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe43C,EAAmB32C,UAAW,cAAe,CAC/Df,IAAK,WACD,OAAOoD,KAAKu0C,MAAMrvB,UAAUC,MAAMnlB,KAAKs2B,gBAAgB9Q,KAAK6B,YAEhE1qB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe43C,EAAmB32C,UAAW,OAAQ,CACxDf,IAAK,WACD,OAAOoD,KAAK6/B,SAASra,MAEzB7oB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe43C,EAAmB32C,UAAW,WAAY,CAC5Df,IAAK,WACD,OAAOoD,KAAKu0C,MAAMrvB,UAAUC,MAAMnlB,KAAKw0C,YAE3C73C,YAAY,EACZqjB,cAAc,IAElBs0B,EAAmB32C,UAAU6oB,KAAO,SAAUguB,GACrCx0C,KAAKghB,UACNhhB,KAAKw0C,UAAYA,EACjBx0C,KAAK00C,iBACL10C,KAAK20C,SAASvC,eAAepyC,KAAK40C,aAClC50C,KAAK20C,SAAStC,WAAWryC,KAAK40C,aAC9B50C,KAAKu0C,MAAM5wB,SAAStN,YAAYrW,KAAK40C,aACrC50C,KAAK40C,YAAYvjC,UAAYijC,EAAmBttB,WAAW6tB,cACtD70C,KAAKu0C,MAAMxzB,SAASC,QAAQP,SAAYzgB,KAAKu0C,MAAMxzB,SAASC,QAAQ0yB,wBACrE1zC,KAAK40C,YAAYvjC,UAAYrR,KAAK40C,YAAYvjC,UAAY,oBAC1DrR,KAAKwlB,KAAK4N,cACVpzB,KAAK40C,YAAYvjC,UAAYrR,KAAK40C,YAAYvjC,UAAY,cAErDrR,KAAKu0C,MAAMxzB,SAASC,QAAQP,SAAYzgB,KAAKu0C,MAAMxzB,SAASC,QAAQ6yB,iBAAoB7zC,KAAK80C,kBAC9F90C,KAAK40C,YAAYvjC,UAAYrR,KAAK40C,YAAYvjC,UAAY,kBAC9DrR,KAAK+0C,aAAa3nC,MAAME,KAAStN,KAAKwlB,KAAKgP,SAAW,IAClDx0B,KAAK20C,SAAShnC,KAAKC,MAAS5N,KAAK+0C,aAAajkC,YAAc,EAAM,MAE1E9Q,KAAKg1C,cAAgB,IAAI7uC,EAAY2E,UAAU9K,KAAKwlB,KAAK3e,MAAO7G,KAAKwlB,KAAK1e,OAGlFwtC,EAAmB32C,UAAUs3C,KAAO,WAChC,IAAI/mC,EAAalO,KAAK40C,YAAY1mC,WAC9BA,GACAA,EAAWhB,YAAYlN,KAAK40C,aAChC50C,KAAKk1C,QAAQD,QAEjBX,EAAmB32C,UAAU8oB,aAAe,SAAU0uB,EAAMC,QAC1C,IAAVA,IAAoBA,EAAQ,KAChCp1C,KAAKk1C,QAAQG,SAASr1C,KAAKwlB,KAAM2vB,EAAMC,EAAOp1C,KAAKu0C,MAAMxzB,SAASyyB,6BAEtEc,EAAmB32C,UAAU+2C,eAAiB,WAC1C10C,KAAK20C,SAAW30C,KAAKgzB,0BAA0BhzB,KAAKw0C,WACpDx0C,KAAK20C,SAASh9B,SAASzM,KAE3BopC,EAAmB32C,UAAU23C,wBAA0B,SAAUd,GAC7D,IAAIe,EAAgBv1C,KAAKs2B,iBAAmBke,GAAax0C,KAAKw0C,YAAcA,EACxEgB,EAAoBx1C,KAAKu0C,MAAMrvB,UAAUC,MAAMqvB,GAC/CiB,EAAUz1C,KAAK6/B,SAASpqB,SAASigC,MAAK,SAAUt5C,GAAK,OAAOA,EAAEopB,KAAK6B,aAAemuB,EAAkBhwB,KAAK6B,cAC7G,OAAOkuB,IAAkBE,GAE7BnB,EAAmB32C,UAAUg4C,wBAA0B,SAAUnB,GAC7D,GAAIx0C,KAAKs1C,wBAAwBd,GAAY,CACzCx0C,KAAKs2B,eAAiBke,EACtB,IAAIG,EAAW30C,KAAKgzB,0BAA0BwhB,GAC9CG,EAASvC,eAAepyC,KAAK41C,gCAC7BjB,EAAStC,WAAWryC,KAAK41C,gCACzBjB,EAAStC,WAAWryC,KAAK61C,0BACzB71C,KAAKu0C,MAAM5wB,SAAStN,YAAYrW,KAAK41C,kCAG7CtB,EAAmB32C,UAAUm4C,wBAA0B,WACnD,IAAI5nC,EAAalO,KAAK41C,+BAA+B1nC,WACjDA,GACAA,EAAWhB,YAAYlN,KAAK41C,gCAChC51C,KAAKs2B,gBAAkB,GAE3Bge,EAAmB32C,UAAUo4C,gBAAkB,SAAUp+B,GACrD3X,KAAKghB,SAAU,EACf,IAAIg1B,EAAiBr+B,EAASzM,EAAIlL,KAAK20C,SAASh9B,SAASzM,EACrDspB,EAAW,EACX7c,EAASzM,EAAIlL,KAAK20C,SAASh9B,SAASzM,IAEhCspB,EADA7c,EAASzM,EAAIlL,KAAK20C,SAASh9B,SAASzM,EAAIlL,KAAK20C,SAAShnC,KAAKC,MAChD5G,KAAKwG,MAAOwoC,EAAkBh2C,KAAK40C,YAAYn+B,YAAc,KAE7D,KACnBzW,KAAK+0C,aAAa3nC,MAAME,KAASknB,EAAW,IACxCx0B,KAAK20C,SAAShnC,KAAKC,MAAS5N,KAAK+0C,aAAajkC,YAAc,EAAM,KACtE9Q,KAAKk1C,QAAQe,aAAazhB,EAAU/W,EAAM3Q,SAAS8G,qBAAqB5T,KAAK+0C,cAAgB/0C,KAAK+0C,aAAajkC,YAAc,IAEjIwjC,EAAmB32C,UAAUu4C,gBAAkB,WAC3Cl2C,KAAKghB,SAAU,EACf,IAAIwT,EAAWxtB,KAAKwG,OAAOxN,KAAK+0C,aAAahhC,WAAc/T,KAAK+0C,aAAajkC,YAAc,GAAM9Q,KAAK20C,SAAShnC,KAAKC,MAAQ,KAC5H5N,KAAKu0C,MAAM7uB,eAAeywB,0BAA0B91B,QAAQrgB,KAAKgiC,OAAQxN,IAE7E8f,EAAmB32C,UAAUy4C,WAAa,SAAUz+B,GAChD3X,KAAK40C,YAAYvjC,UAAYrR,KAAK40C,YAAYvjC,UAAY,QAC1DrR,KAAKghB,SAAU,EACf,IAAIq1B,EAAY1+B,EAASzM,EAAIlL,KAAK20C,SAASh9B,SAASzM,EAAIyM,EAASzM,EAAIlL,KAAK20C,SAASh9B,SAASzM,EACxF0C,EAAQyoC,EAAYr2C,KAAK20C,SAASh9B,SAASzM,EAC/ClL,KAAK40C,YAAYxnC,MAAMQ,OAASA,EAAQ,EAAI,EAAIA,GAAS,KACzD,IAAI0oC,EAAYt2C,KAAKwlB,KAAK3e,MACtBkB,EAAO/H,KAAKu0C,MAAMgC,qBAAqB3d,aAAayd,GACxDtuC,EAAKK,WAAW,GACZL,EAAOuuC,GAAa1oC,EAAQ,EAC5B5N,KAAKg1C,cAAcluC,IAAIkyB,QAAQsd,EAAU9vC,WAEzCxG,KAAKg1C,cAAcluC,IAAM9G,KAAKw2C,iBAAiBx2C,KAAKwlB,KAAK1e,IAAKiB,GAClE/H,KAAKk1C,QAAQuB,SAASH,EAAWt2C,KAAKg1C,cAAcluC,IAAK2W,EAAM3Q,SAAS8G,qBAAqB5T,KAAK40C,aAAe50C,KAAK40C,YAAYn+B,cAEtI69B,EAAmB32C,UAAU+4C,WAAa,WACtC12C,KAAK40C,YAAYvjC,UAAYijC,EAAmBttB,WAAW6tB,cAC3D70C,KAAKghB,SAAU,EACfhhB,KAAKu0C,MAAM7uB,eAAeixB,qBAAqBt2B,QAAQrgB,KAAKgiC,OAAQhiC,KAAKg1C,cAAcluC,KACvF9G,KAAKi1C,OACLj1C,KAAK00C,kBAETJ,EAAmB32C,UAAUi5C,aAAe,SAAUj/B,GAClD3X,KAAK40C,YAAYvjC,UAAYrR,KAAK40C,YAAYvjC,UAAY,QAC1DrR,KAAKghB,SAAU,EACf,IAAIq1B,EAAY1+B,EAASzM,EAAIlL,KAAK20C,SAASh9B,SAASzM,EAAIlL,KAAK20C,SAAShnC,KAAKC,MAAQ+J,EAASzM,EAAIlL,KAAK20C,SAASh9B,SAASzM,EAAIlL,KAAK20C,SAAShnC,KAAKC,MAC1IA,EAAQ5N,KAAK20C,SAAShnC,KAAKC,OAASyoC,EAAYr2C,KAAK20C,SAASh9B,SAASzM,GAC3ElL,KAAK40C,YAAYxnC,MAAME,KAAO+oC,EAAY,KAC1Cr2C,KAAK40C,YAAYxnC,MAAMQ,OAASA,EAAQ,EAAI,EAAIA,GAAS,KACzD,IAAIipC,EAAU72C,KAAKwlB,KAAK1e,IACpBiB,EAAO/H,KAAKu0C,MAAMgC,qBAAqB3d,aAAayd,GACxDtuC,EAAKK,WAAW,GACZL,EAAO8uC,GAAWjpC,EAAQ,EAC1B5N,KAAKg1C,cAAcnuC,MAAMmyB,QAAQ6d,EAAQrwC,WAEzCxG,KAAKg1C,cAAcnuC,MAAQ7G,KAAKw2C,iBAAiBx2C,KAAKwlB,KAAK3e,MAAOkB,GACtE/H,KAAKk1C,QAAQuB,SAASz2C,KAAKg1C,cAAcnuC,MAAOgwC,EAASp5B,EAAM3Q,SAAS8G,qBAAqB5T,KAAK40C,eAEtGN,EAAmB32C,UAAUm5C,aAAe,WACxC92C,KAAK40C,YAAYvjC,UAAYijC,EAAmBttB,WAAW6tB,cAC3D70C,KAAKghB,SAAU,EACfhhB,KAAKu0C,MAAM7uB,eAAeqxB,uBAAuB12B,QAAQrgB,KAAKgiC,OAAQhiC,KAAKg1C,cAAcnuC,OACzF7G,KAAKi1C,OACLj1C,KAAK00C,kBAETJ,EAAmB32C,UAAUq5C,YAAc,SAAUC,GACjD,GAAIj3C,KAAKu0C,MAAMxzB,SAASC,QAAQP,SAAWzgB,KAAKu0C,MAAMxzB,SAASC,QAAQ6yB,gBAAiB,CACpF7zC,KAAK40C,YAAYvjC,UAAYrR,KAAK40C,YAAYvjC,UAAY,QAC1D,IAAI/D,EAAOtN,KAAK40C,YAAY7gC,WAAakjC,EACzCj3C,KAAK40C,YAAYxnC,MAAME,KAAOA,EAAO,KACrC,IAAIgpC,EAAYt2C,KAAKu0C,MAAMgC,qBAAqB3d,aAAatrB,GAC7DtN,KAAKg1C,cAAcnuC,MAAQ7G,KAAKw2C,iBAAiBx2C,KAAKwlB,KAAK3e,MAAOyvC,GAClE,IAAI5uC,EAAW1H,KAAKwlB,KAAK3e,MAAML,UAAYxG,KAAKg1C,cAAcnuC,MAAML,UAChEqwC,EAAU,IAAI5uC,KAAKjI,KAAKwlB,KAAK1e,IAAIN,UAAYkB,GAKjD,OAJA1H,KAAKg1C,cAAcluC,IAAM+vC,EACzB72C,KAAKghB,QAAUhhB,KAAKu0C,MAAMx0B,iBAAiB2e,WAAWwY,gBAAgBl3C,KAAKwlB,KAAMxlB,KAAKg1C,cAAcnuC,MAAO7G,KAAKg1C,cAAcluC,IAAK9G,KAAKm3C,qBAAqB55C,KAAKyC,OAC9JA,KAAKghB,SACLhhB,KAAKk1C,QAAQuB,SAASz2C,KAAKg1C,cAAcnuC,MAAO7G,KAAKg1C,cAAcluC,IAAK2W,EAAM3Q,SAAS8G,qBAAqB5T,KAAK40C,cAC9G50C,KAAKghB,QAEhB,OAAO,GAEXszB,EAAmB32C,UAAUw5C,qBAAuB,SAAUC,EAAUC,GACpE,GAAIr3C,KAAKg1C,cAAcnuC,QAAUuwC,GAAYp3C,KAAKg1C,cAAcluC,MAAQuwC,EAAxE,CAEA,IAAIC,EAAat3C,KAAKu0C,MAAMgC,qBACxBgB,EAAUD,EAAW/jB,aAAa6jB,GAClCI,EAAWF,EAAW/jB,aAAa8jB,GAAUE,EACjDv3C,KAAK40C,YAAYxnC,MAAME,KAAOiqC,EAAU,KACxCv3C,KAAK40C,YAAYxnC,MAAMQ,OAAS4pC,EAAW,EAAI,EAAIA,GAAY,KAC/Dx3C,KAAKg1C,cAAcnuC,MAAQuwC,EAC3Bp3C,KAAKg1C,cAAcluC,IAAMuwC,IAE7B/C,EAAmB32C,UAAU85C,YAAc,WACnCz3C,KAAKu0C,MAAMxzB,SAASC,QAAQP,SAAWzgB,KAAKu0C,MAAMxzB,SAASC,QAAQ6yB,kBAC9D7zC,KAAKu0C,MAAMxzB,SAASC,QAAQ0yB,wBAC7B1zC,KAAK40C,YAAYvjC,UAAYrR,KAAK40C,YAAYvjC,UAAY,oBAC1DrR,KAAKghB,UACLhhB,KAAK40C,YAAYvjC,UAAYijC,EAAmBttB,WAAW6tB,cAC3D70C,KAAKu0C,MAAM7uB,eAAegyB,gBAAgBr3B,QAAQrgB,KAAKgiC,OAAQhiC,KAAKg1C,cAAcnuC,MAAO7G,KAAKg1C,cAAcluC,KAC5G9G,KAAK00C,iBACL10C,KAAKi1C,OACLj1C,KAAKghB,SAAU,KAI3BszB,EAAmB32C,UAAU64C,iBAAmB,SAAUmB,EAAeC,GACrE,GAAI53C,KAAKu0C,MAAMxzB,SAASwO,SAAWZ,EAAQ5D,SAAS2H,SAAU,CAC1D,IAAI5pB,EAAO8uC,EAAQjwC,cACfiB,EAAQgvC,EAAQhwC,WAChBY,EAAMovC,EAAQnvC,UACdmmC,EAAQ5uC,KAAKu0C,MAAMxzB,SAASwO,UAAYZ,EAAQ5D,SAAS4H,KAAOilB,EAAQ5rC,WAAa2rC,EAAc3rC,WACnG0iC,EAAUiJ,EAAc1rC,aACxBtB,EAAMgtC,EAAczrC,aACpBtB,EAAO+sC,EAAcxrC,kBACzB,OAAO,IAAIlE,KAAKa,EAAMF,EAAOJ,EAAKomC,EAAOF,EAAS/jC,EAAKC,GAE3D,OAAOgtC,GAEXtD,EAAmB32C,UAAUk6C,gBAAkB,SAAU1kC,GACrDnT,KAAK83C,eAAiBzoC,SAAS8G,cAAc,OAC7CnW,KAAK83C,eAAezmC,UAAYijC,EAAmBttB,WAAW+wB,0BAC9D/3C,KAAKu0C,MAAM5wB,SAAStN,YAAYrW,KAAK83C,gBACrC93C,KAAKg4C,cAAgB7kC,GAEzBmhC,EAAmB32C,UAAUs6C,kBAAoB,SAAU9kC,GACvDnT,KAAKghB,SAAU,EACfhhB,KAAKk4C,SAASl4C,KAAKg4C,cAAe7kC,IAEtCmhC,EAAmB32C,UAAUw6C,cAAgB,SAAUp8B,GACnD/b,KAAKghB,SAAU,EACH,MAARjF,GACA/b,KAAKu0C,MAAM7uB,eAAe0yB,wBAAwB/3B,QAAQrgB,KAAKwlB,KAAK6B,WAAYrnB,KAAK+nB,YAAahM,GACtG,IAAI7N,EAAalO,KAAK83C,eAAe5pC,WACjCA,GACAA,EAAWhB,YAAYlN,KAAK83C,gBAChC93C,KAAK83C,eAAiB,KACtB93C,KAAK81C,0BACL91C,KAAKi1C,QAETX,EAAmB32C,UAAU4pC,iBAAmB,SAAU9hB,GAClDzlB,KAAKu0C,MAAMxzB,SAASC,QAAQyyB,wBAC5BzzC,KAAKq8B,aAAe5W,IAE5B6uB,EAAmB32C,UAAU06C,qBAAuB,SAAU5yB,GAC1D,OAAOzlB,KAAKq8B,cAAgBr8B,KAAKq8B,cAAgB5W,GAErD6uB,EAAmB32C,UAAU26C,yBAA2B,WAChDt4C,KAAKq8B,cACLr8B,KAAKu0C,MAAM7uB,eAAe6yB,wBAAwBl4B,QAAQrgB,KAAKq8B,eAEvEiY,EAAmB32C,UAAUq1B,0BAA4B,SAAUwhB,GAC/D,IAAI8C,EAAat3C,KAAKu0C,MAAMgC,qBACxBnwB,EAAOkxB,EAAWtkB,0BAA0BwhB,GAGhD,OAFApuB,EAAKzY,KAAKC,MAAQ0pC,EAAWxjB,aAAa0gB,GAC1CpuB,EAAKzY,KAAKE,OAASypC,EAAWhkB,cAAckhB,GACrCpuB,GAEXkuB,EAAmB32C,UAAU82C,eAAiB,WAC1Cz0C,KAAK40C,YAAcvlC,SAAS8G,cAAc,OAC1CnW,KAAKw4C,UAAYnpC,SAAS8G,cAAc,OACxCnW,KAAKw4C,UAAUnnC,UAAYijC,EAAmBttB,WAAWyxB,gBACzDz4C,KAAK40C,YAAYv+B,YAAYrW,KAAKw4C,WAClCx4C,KAAK+0C,aAAe1lC,SAAS8G,cAAc,OAC3CnW,KAAK+0C,aAAa1jC,UAAYijC,EAAmBttB,WAAW0xB,mBAC5D14C,KAAKw4C,UAAUniC,YAAYrW,KAAK+0C,cAChC/0C,KAAK+0C,aAAa1+B,YAAYhH,SAAS8G,cAAc,QACrDnW,KAAK24C,iBAAmBtpC,SAAS8G,cAAc,OAC/CnW,KAAK24C,iBAAiBpnC,UAAUwS,IAAIuwB,EAAmBttB,WAAW4xB,4BAC9DhsC,EAAUsC,QAAQwN,SAClB1c,KAAK24C,iBAAiBpnC,UAAUwS,IAAIuwB,EAAmBttB,WAAW6xB,iBACtE74C,KAAKw4C,UAAUniC,YAAYrW,KAAK24C,kBAChC34C,KAAK84C,gBAAkBzpC,SAAS8G,cAAc,OAC9CnW,KAAK84C,gBAAgBvnC,UAAUwS,IAAIuwB,EAAmBttB,WAAW+xB,2BAC7DnsC,EAAUsC,QAAQwN,SAClB1c,KAAK84C,gBAAgBvnC,UAAUwS,IAAIuwB,EAAmBttB,WAAW6xB,iBACrE74C,KAAKw4C,UAAUniC,YAAYrW,KAAK84C,iBAChC94C,KAAKg5C,UAAY3pC,SAAS8G,cAAc,OACxCnW,KAAKg5C,UAAU3nC,UAAYijC,EAAmBttB,WAAWiyB,gBACzDj5C,KAAKw4C,UAAUniC,YAAYrW,KAAKg5C,WAChCh5C,KAAKk5C,QAAU7pC,SAAS8G,cAAc,OACtCnW,KAAKk5C,QAAQ7nC,UAAYijC,EAAmBttB,WAAWmyB,cACvDn5C,KAAKw4C,UAAUniC,YAAYrW,KAAKk5C,SAChCl5C,KAAK41C,+BAAiCvmC,SAAS8G,cAAc,OAC7DnW,KAAK41C,+BAA+BvkC,UAAYijC,EAAmBttB,WAAWoyB,wBAC9Ep5C,KAAK61C,yBAA2BxmC,SAAS8G,cAAc,OACvDnW,KAAK61C,yBAAyBxkC,UAAYijC,EAAmBttB,WAAWqyB,0BACxEr5C,KAAK41C,+BAA+Bv/B,YAAYrW,KAAK61C,0BACrD71C,KAAKs5C,yBAA2BjqC,SAAS8G,cAAc,OACvDnW,KAAKs5C,yBAAyB/nC,UAAUwS,IAAIuwB,EAAmBttB,WAAWuyB,sCACtE3sC,EAAUsC,QAAQwN,SAClB1c,KAAKs5C,yBAAyB/nC,UAAUwS,IAAIuwB,EAAmBttB,WAAW6xB,iBAC9E74C,KAAK61C,yBAAyBx/B,YAAYrW,KAAKs5C,0BAC/Ct5C,KAAKw5C,0BAA4BnqC,SAAS8G,cAAc,OACxDnW,KAAKw5C,0BAA0BjoC,UAAUwS,IAAIuwB,EAAmBttB,WAAWyyB,qCACvE7sC,EAAUsC,QAAQwN,SAClB1c,KAAKw5C,0BAA0BjoC,UAAUwS,IAAIuwB,EAAmBttB,WAAW6xB,iBAC/E74C,KAAK61C,yBAAyBx/B,YAAYrW,KAAKw5C,2BAC/Cx5C,KAAKk1C,QAAU,IAAIwE,EAAgB15C,KAAK40C,YAAa50C,KAAKu0C,MAAOv0C,KAAKu0C,MAAMoF,kBAAkBpN,aAC9FvsC,KAAK45C,gBAETtF,EAAmB32C,UAAUi8C,aAAe,WACxC55C,KAAK65C,oBAAsB,WAClB75C,KAAKghB,SACNhhB,KAAKi1C,QACX13C,KAAKyC,MACPA,KAAK40C,YAAYhxB,iBAAiB,aAAc5jB,KAAK65C,sBAEzDvF,EAAmB32C,UAAUu6C,SAAW,SAAUrxC,EAAOC,GACrD,GAAID,EAAMqE,EAAIpE,EAAIoE,EAAG,CACjB,IAAI4uC,EAAOhzC,EACXA,EAAMD,EACNA,EAAQizC,EAEZ,IAAIC,EAAQ/yC,KAAKgzC,MAAMnzC,EAAMxE,EAAIyE,EAAIzE,IAAMyE,EAAIoE,EAAIrE,EAAMqE,IAEzD6uC,IADAA,EAAiB,IAARA,EAAc/yC,KAAKizC,IAE5B,IAAI75C,EAAS4G,KAAKo0B,MAAMv0B,EAAMqE,EAAIpE,EAAIoE,IAAMrE,EAAMqE,EAAIpE,EAAIoE,IAAMrE,EAAMxE,EAAIyE,EAAIzE,IAAMwE,EAAMxE,EAAIyE,EAAIzE,IAClGrC,KAAK83C,eAAe1qC,MAAME,KAAOzG,EAAMqE,EAAI,KAC3ClL,KAAK83C,eAAe1qC,MAAMK,IAAM5G,EAAMxE,EAAI,KAC1CrC,KAAK83C,eAAe1qC,MAAMQ,MAAQxN,EAAS,KAC3CJ,KAAK83C,eAAe1qC,MAAM8sC,UAAY,UAAYH,EAAQ,QAE9DzF,EAAmB32C,UAAUm3C,cAAgB,WACzC,OAAQ90C,KAAKu0C,MAAMrvB,UAAU2P,4BAA4B70B,KAAKwlB,KAAK6B,aAEvEitB,EAAmB32C,UAAU4mB,aAAe,WACxCvkB,KAAK40C,YAAY9wB,oBAAoB,aAAc9jB,KAAK65C,sBAE5DvF,EAAmBttB,WAAa,CAC5B6tB,cAAe,6BACf4D,gBAAiB,2BACjBC,mBAAoB,8BACpBE,2BAA4B,kCAC5BG,0BAA2B,kCAC3BE,gBAAiB,2BACjBE,cAAe,yBACfpB,0BAA2B,qCAC3BqB,wBAAyB,uCACzBC,0BAA2B,qCAC3BE,qCAAsC,4CACtCE,oCAAqC,4CACrCZ,gBAAiB,uBAEdvE,EA/Ue,GAiV1Bx4C,EAAQw4C,mBAAqBA,EAC7B,IAAIoF,EAAmB,WACnB,SAASA,EAAgB7qC,EAAekxB,EAAOwM,GAC3CvsC,KAAK6O,cAAgBA,EACrB7O,KAAK40C,YAAcvlC,SAAS8G,cAAc,OAC1CnW,KAAK40C,YAAYvjC,UAAYqoC,EAAgB1yB,WAAWmzB,0BACxDtrC,EAAcwH,YAAYrW,KAAK40C,aAC/B50C,KAAK+/B,MAAQA,EACb//B,KAAKusC,YAAcA,EAkIvB,OAhIAmN,EAAgB/7C,UAAUy8C,kBAAoB,SAAU50B,GACpDxlB,KAAKq6C,eAAiBhrC,SAAS8G,cAAc,OAC7CnW,KAAKq6C,eAAehpC,UAAYqoC,EAAgB1yB,WAAWszB,0BAC3D,IAAIC,EAAelrC,SAAS8G,cAAc,OAC1CokC,EAAalpC,UAAYqoC,EAAgB1yB,WAAWwzB,qBACpD,IAAIrc,EAAQ9uB,SAAS8G,cAAc,QAKnC,GAJAokC,EAAalkC,YAAY8nB,GACzBn+B,KAAKq6C,eAAehkC,YAAYkkC,GAChCpc,EAAM9mB,UAAYmO,EAAK2Y,MACvBn+B,KAAKq6C,eAAehkC,YAAYrW,KAAKy6C,eAAej1B,EAAK3e,MAAO2e,EAAK1e,OAChEsD,MAAMob,EAAKgP,UAAW,CACvB,IAAIkmB,EAAkBrrC,SAAS8G,cAAc,OAC7CukC,EAAgBrpC,UAAYqoC,EAAgB1yB,WAAW2zB,+BACvD,IAAIC,EAAgBvrC,SAAS8G,cAAc,QACvC0kC,EAAgBxrC,SAAS8G,cAAc,QAC3CukC,EAAgBrkC,YAAYukC,GAC5BF,EAAgBrkC,YAAYwkC,GAC5B76C,KAAKq6C,eAAehkC,YAAYqkC,GAChCE,EAAcvjC,WAAarX,KAAKusC,YAAY/X,SAAWx0B,KAAKusC,YAAY/X,SAAW,YAAc,KACjGqmB,EAAcxjC,UAAYmO,EAAKgP,SAAW,IAE9Cx0B,KAAK40C,YAAYv+B,YAAYrW,KAAKq6C,iBAEtCX,EAAgB/7C,UAAU03C,SAAW,SAAU7vB,EAAM2vB,EAAMC,EAAO0F,GAC9D,IAAI9vC,EAAQhL,UACE,IAAVo1C,IAAoBA,EAAQ,GAChC,IAAI2F,GAAmB,EAOvB,GANA/6C,KAAK+/B,MAAMib,gBAAgBh7C,KAAK40C,aAC5BkG,EACAC,EAAmBD,EAAwB96C,KAAK40C,YAAapvB,GAE7DxlB,KAAKo6C,kBAAkB50B,GAC3Bu1B,EAAmBA,KAAsB/6C,KAAK40C,YAAYx9B,UACpC,CAClB,IAAI6jC,EAAe,WACfjwC,EAAMwb,KAAK2uB,GAAM,IAEjBC,EACAp1C,KAAKk7C,QAAU/pC,WAAW8pC,EAAc7F,GAExC6F,MAGZvB,EAAgB/7C,UAAUs4C,aAAe,SAAUzhB,EAAU2gB,GACzDn1C,KAAK+/B,MAAMib,gBAAgBh7C,KAAK40C,aAChC50C,KAAKq6C,eAAiBhrC,SAAS8G,cAAc,OAC7CnW,KAAKq6C,eAAehpC,UAAYqoC,EAAgB1yB,WAAWszB,0BAC3Dt6C,KAAKq6C,eAAehjC,UAAYmd,EAAW,IAC3Cx0B,KAAK40C,YAAYv+B,YAAYrW,KAAKq6C,gBAClCr6C,KAAKwmB,KAAK2uB,IAEduE,EAAgB/7C,UAAU84C,SAAW,SAAU5vC,EAAOC,EAAKquC,GACvDn1C,KAAK+/B,MAAMib,gBAAgBh7C,KAAK40C,aAChC50C,KAAKq6C,eAAiBhrC,SAAS8G,cAAc,OAC7CnW,KAAKq6C,eAAehpC,UAAYqoC,EAAgB1yB,WAAWszB,0BAC3Dt6C,KAAKq6C,eAAehkC,YAAYrW,KAAKy6C,eAAe5zC,EAAOC,IAC3D9G,KAAK40C,YAAYv+B,YAAYrW,KAAKq6C,gBAClCr6C,KAAKwmB,KAAK2uB,IAEduE,EAAgB/7C,UAAU6oB,KAAO,SAAU2uB,EAAMgG,GAC7C,IACIrxB,EAAIsxB,EAAIC,EAAIC,EADZtwC,EAAQhL,UAEK,IAAbm7C,IAAuBA,GAAW,GAGP,QAA9BrxB,EAAK9pB,KAAKq6C,sBAAmC,IAAPvwB,GAAyBA,EAAGvY,UAAU+X,OAAOowB,EAAgB1yB,WAAWu0B,+BAChF,QAA9BH,EAAKp7C,KAAKq6C,sBAAmC,IAAPe,GAAyBA,EAAG7pC,UAAU+X,OAAOowB,EAAgB1yB,WAAWw0B,gCAC/Gx7C,KAAK40C,YAAYxnC,MAAMmD,QAAU,QACjC,IAAIkrC,EAAoBh+B,EAAM3Q,SAAS4F,qBAAqB1S,KAAK6O,eAE7D6sC,EAAevG,EADH13B,EAAM3Q,SAAS8G,qBAAqB5T,KAAK6O,eACnB,GAClC8sC,EAAmBF,EAAoBz7C,KAAK+/B,MAAM6b,OAAOC,aAAep+B,EAAM3Q,SAASkC,uBAPxE,GAQf8sC,EAAgB97C,KAAK40C,YAAYiH,aAAeF,GAAoB37C,KAAK40C,YAAYiH,aAAe77C,KAAK6O,cAAcwE,UACvH0oC,GAAe/7C,KAAK40C,YAAYiH,aAVlB,EAWdC,GACAC,EAAc/7C,KAAK6O,cAAcgtC,aAZnB,EAaiB,QAA9BR,EAAKr7C,KAAKq6C,sBAAmC,IAAPgB,GAAyBA,EAAG9pC,UAAUwS,IAAI21B,EAAgB1yB,WAAWu0B,gCAG7E,QAA9BD,EAAKt7C,KAAKq6C,sBAAmC,IAAPiB,GAAyBA,EAAG/pC,UAAUwS,IAAI21B,EAAgB1yB,WAAWw0B,gCAChHx7C,KAAK40C,YAAYxnC,MAAME,KAAOouC,EAAe,KAC7C17C,KAAK40C,YAAYxnC,MAAMK,IAAMsuC,EAAc,KACvCZ,IACIn7C,KAAKk7C,SACLc,aAAah8C,KAAKk7C,SACtBl7C,KAAKk7C,QAAU/pC,YAAW,WACtBnG,EAAM4pC,YAAYxnC,MAAMmD,QAAU,SACnC,QAGXmpC,EAAgB/7C,UAAUs3C,KAAO,WAC7Bj1C,KAAK40C,YAAYxnC,MAAMmD,QAAU,OACjCyrC,aAAah8C,KAAKk7C,UAEtBxB,EAAgB/7C,UAAU88C,eAAiB,SAAU5zC,EAAOC,GACxD,IAAIm1C,EAAc5sC,SAAS8G,cAAc,SACzC8lC,EAAY5qC,UAAYqoC,EAAgB1yB,WAAW2zB,+BACnD,IAAIx4C,EAAOkN,SAAS8G,cAAc,SAClC8lC,EAAY5lC,YAAYlU,GACxB,IAAI+5C,EAAU7sC,SAAS8G,cAAc,MACjCgmC,EAAa9sC,SAAS8G,cAAc,MACpCimC,EAAa/sC,SAAS8G,cAAc,MACpCkmC,EAAQhtC,SAAS8G,cAAc,MAC/BmmC,EAAWjtC,SAAS8G,cAAc,MAClComC,EAAWltC,SAAS8G,cAAc,MAWtC,OAVA+lC,EAAQ7lC,YAAY8lC,GACpBD,EAAQ7lC,YAAY+lC,GACpBC,EAAMhmC,YAAYimC,GAClBD,EAAMhmC,YAAYkmC,GAClBp6C,EAAKkU,YAAY6lC,GACjB/5C,EAAKkU,YAAYgmC,GACjBF,EAAW9kC,WAAarX,KAAKusC,YAAY1lC,MAAQ7G,KAAKusC,YAAY1lC,MAAQ,SAAW,KACrFu1C,EAAW/kC,UAAYrX,KAAKw8C,WAAW31C,GACvCy1C,EAASjlC,WAAarX,KAAKusC,YAAYzlC,IAAM9G,KAAKusC,YAAYzlC,IAAM,OAAS,KAC7Ey1C,EAASllC,UAAYrX,KAAKw8C,WAAW11C,GAC9Bm1C,GAEXvC,EAAgB/7C,UAAU6+C,WAAa,SAAUz0C,GAC7C,OAAO/H,KAAK+/B,MAAM0c,cAAc10C,IAEpC2xC,EAAgB1yB,WAAa,CACzBmzB,0BAA2B,6BAC3BG,0BAA2B,qCAC3BE,qBAAsB,sBACtBG,+BAAgC,uBAChCa,+BAAgC,oCAChCD,8BAA+B,oCAE5B7B,EAzIY,IA+IhB,SAAS39C,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ4jC,sBAAmB,EAC3B,IAAIA,EACA,SAA0Bja,EAAIzoB,GAC1BgD,KAAKylB,GAAKA,EACVzlB,KAAKhD,MAAQA,GAIrBlB,EAAQ4jC,iBAAmBA,GAKpB,SAAS3jC,EAAQD,EAASF,GAEjC,aAEA,IAAIkuB,EACJrtB,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ4gD,iBAAc,EACtB,IAAIC,EAAoB/gD,EAAoB,GACxCghD,EAAuBhhD,EAAoB,IAC3C8gD,EAAe,WACf,SAASA,EAAY58B,GACjB9f,KAAK8f,QAAUA,EACf9f,KAAKynC,uBA0BT,OAxBAiV,EAAY/+C,UAAUk/C,YAAc,SAAUr8B,GACtCxgB,KAAKwgB,OACLxgB,KAAKwgB,MAAMkgB,SACf1gC,KAAKwgB,MAAQA,EACbxgB,KAAKwgB,MAAM3Z,SAEf61C,EAAY/+C,UAAU8pC,qBAAuB,WACzC,MAAM,IAAIxmB,MAAM,oBAEpBy7B,EAAY/+C,UAAUqgB,eAAiB,SAAU8+B,GAC7C,IACIzrC,GADSyrC,EAAW1uC,WAAaC,KAAKC,aAAewuC,EAAaA,EAAW5uC,YAC1DqD,UAAU,GACjC,OAAOmrC,EAAYK,cAAc1rC,IAAcsrC,EAAkBv7B,iBAAiB47B,UAEtFN,EAAYK,gBAAiBjzB,EAAK,IAC3B8yB,EAAqBtI,mBAAmBttB,WAAW0xB,oBAAsBiE,EAAkBv7B,iBAAiB67B,kBAC/GnzB,EAAG8yB,EAAqBtI,mBAAmBttB,WAAWiyB,iBAAmB0D,EAAkBv7B,iBAAiB87B,eAC5GpzB,EAAG8yB,EAAqBtI,mBAAmBttB,WAAWmyB,eAAiBwD,EAAkBv7B,iBAAiB+7B,aAC1GrzB,EAAG8yB,EAAqBtI,mBAAmBttB,WAAWyxB,iBAAmBkE,EAAkBv7B,iBAAiBg8B,eAC5GtzB,EAAG8yB,EAAqBtI,mBAAmBttB,WAAW4xB,4BAA8B+D,EAAkBv7B,iBAAiBi8B,yBACvHvzB,EAAG8yB,EAAqBtI,mBAAmBttB,WAAW+xB,2BAA6B4D,EAAkBv7B,iBAAiBk8B,0BACtHxzB,EAAG8yB,EAAqBtI,mBAAmBttB,WAAWuyB,sCAAwCoD,EAAkBv7B,iBAAiBm8B,0BACjIzzB,EAAG8yB,EAAqBtI,mBAAmBttB,WAAWyyB,qCAAuCkD,EAAkBv7B,iBAAiBo8B,2BAChI1zB,GACG4yB,EA7BQ,GA+BnB5gD,EAAQ4gD,YAAcA,GAKf,SAAS3gD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ2hD,4BAA8B3hD,EAAQ4hD,mBAAgB,EAC9D,IAAI/1B,EAAU/rB,EAAoB,GAC9BylB,EAAUzlB,EAAoB,GAC9B6hB,EAAQ7hB,EAAoB,GAC5B0lB,EAAQ1lB,EAAoB,GAC5B+hD,EAA0B/hD,EAAoB,IAC9C+gD,EAAoB/gD,EAAoB,GACxCizB,EAAejzB,EAAoB,IACvCE,EAAQ4hD,cAAgB,GACxB5hD,EAAQ4hD,cAAcf,EAAkBv7B,iBAAiBi8B,0BAA4B,GACrFvhD,EAAQ4hD,cAAcf,EAAkBv7B,iBAAiBk8B,2BAA6B,GACtFxhD,EAAQ4hD,cAAcf,EAAkBv7B,iBAAiBi8B,0BAA0BV,EAAkBv7B,iBAAiBm8B,2BAA6B1uB,EAAanH,eAAeM,GAC/KlsB,EAAQ4hD,cAAcf,EAAkBv7B,iBAAiBi8B,0BAA0BV,EAAkBv7B,iBAAiBo8B,4BAA8B3uB,EAAanH,eAAeO,GAChLnsB,EAAQ4hD,cAAcf,EAAkBv7B,iBAAiBk8B,2BAA2BX,EAAkBv7B,iBAAiBm8B,2BAA6B1uB,EAAanH,eAAeS,GAChLrsB,EAAQ4hD,cAAcf,EAAkBv7B,iBAAiBk8B,2BAA2BX,EAAkBv7B,iBAAiBo8B,4BAA8B3uB,EAAanH,eAAeU,GACjL,IAAIq1B,EAA+B,SAAU51B,GAEzC,SAAS41B,IACL,OAAkB,OAAX51B,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAwC/D,OA1CA2nB,EAAQ3pB,UAAUy/C,EAA6B51B,GAI/C41B,EAA4B9/C,UAAU+kB,YAAc,SAAU7E,GAC1D,IAAI+/B,EAAgBt8B,EAAM3D,SAASK,eAAeH,GAClD7d,KAAK8lB,OAAS9lB,KAAKygC,QAAQziB,eAAe4/B,GAC1C,IAAIzqC,EAAMnT,KAAK2gC,eAAe,IAAItf,EAAQzJ,MAAM6F,EAAM3Q,SAAS8G,qBAAqBgqC,GAAiBA,EAAcnnC,YAAc,EAAGgH,EAAM3Q,SAAS4F,qBAAqBkrC,GAAiBA,EAAc/B,aAAe,IACtN77C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBsxB,gBAAgB1kC,IAE5DsqC,EAA4B9/C,UAAUmnB,UAAY,SAAUjH,GACxD,GAAIA,aAAe6N,aAAc,CAC7B,IAAImyB,EAAmB79C,KAAK2gC,eAAe,IAAItf,EAAQzJ,MAAM6F,EAAM3Q,SAAS8G,qBAAqB5T,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB+yB,0BAA4Bt5C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB+yB,yBAAyB7iC,YAAc,EAAGgH,EAAM3Q,SAAS4F,qBAAqB1S,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB+yB,0BAA4Bt5C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB+yB,yBAAyBuC,aAAe,IAC3aiC,EAAiB99C,KAAK2gC,eAAe,IAAItf,EAAQzJ,MAAM6F,EAAM3Q,SAAS8G,qBAAqB5T,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBizB,2BAA6Bx5C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBizB,0BAA0B/iC,YAAc,EAAGgH,EAAM3Q,SAAS4F,qBAAqB1S,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBizB,2BAA6Bx5C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBizB,0BAA0BqC,aAAe,IAC7akC,EAAmB/9C,KAAK2gC,eAAe,IAAItf,EAAQzJ,MAAM0J,EAAM3D,SAASS,UAAUP,GAAMyD,EAAM3D,SAASU,UAAUR,KAGjH9B,GAFApb,EAASX,KAAKg+C,cAAcD,EAAkBF,GAAoBlB,EAAkBv7B,iBAAiBm8B,0BACrGv9C,KAAKg+C,cAAcD,EAAkBD,GAAkBnB,EAAkBv7B,iBAAiBo8B,2BAA6B,QACrGb,EAAkBv7B,iBAAiBm8B,2BAA6B58C,GAAUg8C,EAAkBv7B,iBAAiBo8B,2BAC/H1hD,EAAQ4hD,cAAc19C,KAAK8lB,QAAQnlB,GAAU,KACjDX,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB4xB,cAAcp8B,OAErD,CACD,IAAIpb,EACAob,GADApb,EAASX,KAAKygC,QAAQziB,eAAesD,EAAM3D,SAASK,eAAeH,OACjD8+B,EAAkBv7B,iBAAiBm8B,2BAA6B58C,GAAUg8C,EAAkBv7B,iBAAiBo8B,2BAC/H1hD,EAAQ4hD,cAAc19C,KAAK8lB,QAAQnlB,GAAU,KACjDX,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB4xB,cAAcp8B,GAE1D/b,KAAKygC,QAAQgH,wBAEjBgW,EAA4B9/C,UAAUqnB,YAAc,SAAUnH,GAC1DA,EAAIC,iBACJ,IAAImgC,EAAcj+C,KAAK2gC,eAAe,IAAItf,EAAQzJ,MAAM0J,EAAM3D,SAASS,UAAUP,GAAMyD,EAAM3D,SAASU,UAAUR,KAC5GqgC,EAAiBl3C,KAAKO,MAAM02C,EAAY57C,EAAIrC,KAAKygC,QAAQ3gB,QAAQ6G,SAAS9Y,QAC9E7N,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB0xB,kBAAkBgG,GACtDj+C,KAAKygC,QAAQ3gB,QAAQoF,UAAUsa,MAAMra,MAAM+4B,IAC3Cl+C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBovB,wBAAwBuI,IAExET,EAA4B9/C,UAAUqgD,cAAgB,SAAUG,EAAUC,GACtE,OAAIp3C,KAAKC,IAAIm3C,EAAWlzC,EAAIizC,EAASjzC,IAAM,IAAMlE,KAAKC,IAAIm3C,EAAW/7C,EAAI87C,EAAS97C,IAAM,IAIrFo7C,EA3CwB,CA4CjCE,EAAwBzW,uBAC1BprC,EAAQ2hD,4BAA8BA,GAK/B,SAAS1hD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQksC,2BAAwB,EAChC,IAAIrgB,EAAU/rB,EAAoB,GAE9BosC,EAAyB,SAAUngB,GAEnC,SAASmgB,IACL,OAAkB,OAAXngB,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAM/D,OARA2nB,EAAQ3pB,UAAUgqC,EAAuBngB,GAIzCmgB,EAAsBrqC,UAAUwlB,aAAe,SAAUikB,KACzDY,EAAsBrqC,UAAU0gD,YAAc,SAAUjX,KACxDY,EAAsBrqC,UAAU0lB,WAAa,SAAU+jB,KACvDY,EAAsBrqC,UAAU4lB,YAAc,SAAU6jB,KACjDY,EATkB,CADJpsC,EAAoB,IAWxB4kC,kBACrB1kC,EAAQksC,sBAAwBA,GAKzB,SAASjsC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQwiD,+BAAiCxiD,EAAQyiD,sBAAwBziD,EAAQ0iD,sBAAwB1iD,EAAQ2iD,4BAAyB,EAC1I,IAAI92B,EAAU/rB,EAAoB,GAC9BusC,EAAkBvsC,EAAoB,IACtC6iD,EAA0B,SAAU52B,GAEpC,SAAS42B,EAAuBnhD,EAAKyuC,GACjC,IAAI/gC,EAAQ6c,EAAO3rB,KAAK8D,KAAM1C,IAAQ0C,KAEtC,OADAgL,EAAMwf,OAAkB,OAATuhB,QAA0B,IAATA,EAAkBA,EAAO,GAClD/gC,EAgCX,OApCA2c,EAAQ3pB,UAAUygD,EAAwB52B,GAM1CprB,OAAOC,eAAe+hD,EAAuB9gD,UAAW,QAAS,CAC7Df,IAAK,WAAc,OAAOoD,KAAKwqB,OAAO3jB,OACtClK,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe+hD,EAAuB9gD,UAAW,MAAO,CAC3Df,IAAK,WAAc,OAAOoD,KAAKwqB,OAAO1jB,KACtCnK,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe+hD,EAAuB9gD,UAAW,QAAS,CAC7Df,IAAK,WAAc,OAAOoD,KAAKwqB,OAAO2T,OACtCxhC,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe+hD,EAAuB9gD,UAAW,WAAY,CAChEf,IAAK,WAAc,OAAOoD,KAAKwqB,OAAOgK,UACtC73B,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe+hD,EAAuB9gD,UAAW,WAAY,CAChEf,IAAK,WAAc,OAAOoD,KAAKwqB,OAAOk0B,UACtC/hD,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe+hD,EAAuB9gD,UAAW,QAAS,CAC7Df,IAAK,WAAc,OAAOoD,KAAKwqB,OAAOwJ,OACtCr3B,YAAY,EACZqjB,cAAc,IAEXy+B,EArCmB,CAsC5BtW,EAAgBpH,eAClBjlC,EAAQ2iD,uBAAyBA,EACjC,IAAID,EAAyB,SAAU32B,GAEnC,SAAS22B,EAAsBh5B,GAC3B,IAAIxa,EAAQ6c,EAAO3rB,KAAK8D,KAAMwlB,EAAKC,KAAOzlB,KAE1C,OADAgL,EAAMwf,OAAShF,EACRxa,EAEX,OANA2c,EAAQ3pB,UAAUwgD,EAAuB32B,GAMlC22B,EAPkB,CAQ3BrW,EAAgBpH,eAClBjlC,EAAQ0iD,sBAAwBA,EAChC,IAAID,EAAyB,SAAU12B,GAEnC,SAAS02B,EAAsB/4B,EAAMm5B,EAAYC,GAC7C,IAAI5zC,EAAQ6c,EAAO3rB,KAAK8D,KAAMwlB,EAAKC,KAAOzlB,KAG1C,OAFAgL,EAAMwf,OAAShF,EACfxa,EAAM6zC,gBAAgBF,EAAYC,GAC3B5zC,EAiBX,OAtBA2c,EAAQ3pB,UAAUugD,EAAuB12B,GAOzC02B,EAAsB5gD,UAAUkhD,gBAAkB,SAAUF,EAAYC,GACpE,IAAI5zC,EAAQhL,KACZA,KAAK4+C,UAAY,GASjB,IARA,IAAIE,EAAU,SAAU9iD,GACpB,IAAI+iD,EAAYJ,EAAW3iD,GAC3BgjD,EAAOJ,UAAUG,GAAaH,EAAU5iD,GACxCS,OAAOC,eAAesiD,EAAQD,EAAW,CACrCniD,IAAK,WAAc,OAAOoO,EAAM4zC,UAAUG,OAG9CC,EAASh/C,KACJhE,EAAI,EAAGA,EAAI2iD,EAAWv+C,OAAQpE,IACnC8iD,EAAQ9iD,IAGTuiD,EAvBkB,CAwB3BpW,EAAgBpH,eAClBjlC,EAAQyiD,sBAAwBA,EAChC,IAAID,EAAkC,SAAUz2B,GAE5C,SAASy2B,EAA+Blb,GACpC,IAAIp4B,EAAQ6c,EAAO3rB,KAAK8D,KAAMojC,EAAO3d,KAAOzlB,KAS5C,OARAgL,EAAMwf,OAAS,CACX3jB,MAAOu8B,EAAOv8B,MACdC,IAAKs8B,EAAOt8B,IACZq3B,MAAOiF,EAAOjF,MACd3J,SAAU4O,EAAO5O,UAErBxpB,EAAMi0C,aAAe7b,EAAO6b,aAC5Bj0C,EAAMk0C,eAAiB9b,EAAO8b,eACvBl0C,EAEX,OAbA2c,EAAQ3pB,UAAUsgD,EAAgCz2B,GAa3Cy2B,EAd2B,CAepCnW,EAAgBpH,eAClBjlC,EAAQwiD,+BAAiCA,GAKlC,SAASviD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQqjD,sBAAwBrjD,EAAQsjD,2BAAwB,EAChE,IAAIz3B,EAAU/rB,EAAoB,GAC9BulC,EAAgBvlC,EAAoB,IACpCyjD,EAA8BzjD,EAAoB,IAClDwjD,EAAyB,SAAUv3B,GAEnC,SAASu3B,EAAsBr/B,EAAkBgsB,GAC7C,IAAI/gC,EAAQ6c,EAAO3rB,KAAK8D,KAAM+f,IAAqB/f,KAEnD,OADAgL,EAAM+gC,KAAOA,EACN/gC,EAQX,OAZA2c,EAAQ3pB,UAAUohD,EAAuBv3B,GAMzCu3B,EAAsBzhD,UAAU8qB,KAAO,WACnCzoB,KAAKgiC,OAAShiC,KAAK+f,iBAAiByF,KAAKnoB,OAAO2C,KAAK+rC,KAAM/rC,KAAKgiC,OAAShiC,KAAKgiC,OAAS,MAAM3a,YAEjG+3B,EAAsBzhD,UAAUgrB,KAAO,WACnC3oB,KAAK+f,iBAAiByF,KAAK8D,OAAOtpB,KAAKgiC,SAEpCod,EAbkB,CAc3Bje,EAAc7Y,aAChBxsB,EAAQsjD,sBAAwBA,EAChC,IAAID,EAAyB,SAAUt3B,GAEnC,SAASs3B,EAAsBp/B,GAC3B,IAAI/U,EAAQ6c,EAAO3rB,KAAK8D,OAASA,KAKjC,OAJAgL,EAAMs0C,QAAU,GAChBt0C,EAAMw0B,MAAQ,GACdx0B,EAAMu0C,iBAAmB,EACzBv0C,EAAM+U,iBAAmBA,EAClB/U,EAkDX,OAzDA2c,EAAQ3pB,UAAUmhD,EAAuBt3B,GASzCs3B,EAAsBxhD,UAAU8qB,KAAO,WACnC,IAAIzd,EAAQhL,KACZ6nB,EAAOlqB,UAAU8qB,KAAKvsB,KAAK8D,MAC3BA,KAAKs/C,QAAQ3pC,SAAQ,SAAU8P,GAC3Bza,EAAMw0B,MAAMv8B,KAAK+H,EAAM+U,iBAAiByF,KAAK8D,OAAO7D,QAG5D05B,EAAsBxhD,UAAUgrB,KAAO,WACnC,IAAI3d,EAAQhL,KACRklB,EAAYllB,KAAK+f,iBAAiByF,KAAKN,UAE3C,GADAA,EAAUs6B,sBAAwBx/C,KAAKw/B,MAAMp/B,OAAS,EAClDJ,KAAKw/B,MAAMp/B,OAAQ,CACnB,IAAIq/C,EAASz/C,KAAKw/B,MAAMr7B,QACxBnE,KAAKu/C,mBACLv/C,KAAK+f,iBAAiByF,KAAKnoB,OAAOoiD,EAAQA,EAAOp4B,YAAY,WACzDrc,EAAM+U,iBAAiByF,KAAKuc,WAAWvN,SAAS8K,SAASmgB,EAAOp4B,WAAYo4B,EAAOjrB,UAC/EirB,EAAOzrB,OACPhpB,EAAM+U,iBAAiByF,KAAKuc,WAAW/N,MAAMsL,SAASmgB,EAAOp4B,WAAYo4B,EAAOzrB,OACpFhpB,EAAMw0B,MAAMp/B,OAAS4K,EAAM2d,OAASd,EAAOlqB,UAAUgrB,KAAKzsB,KAAK8O,GAC/DA,EAAMu0C,mBACNr6B,EAAUs6B,sBAAwBx0C,EAAMu0C,iBAAmB,OAIvEJ,EAAsBxhD,UAAUkrB,eAAiB,WAC7C,KAAO7oB,KAAKw/B,MAAMp/B,QAAQ,CACtB,IAAIolB,EAAOxlB,KAAKw/B,MAAMr7B,QACtBnE,KAAK+f,iBAAiByF,KAAKnoB,OAAOmoB,EAAMA,EAAK6B,YAAY,eACzDrnB,KAAK+f,iBAAiByF,KAAKuc,WAAWvN,SAAS8K,SAAS9Z,EAAK6B,WAAY7B,EAAKgP,UAC1EhP,EAAKwO,OACLh0B,KAAK+f,iBAAiByF,KAAKuc,WAAW/N,MAAMsL,SAAS9Z,EAAK6B,WAAY7B,EAAKwO,OAEnFh0B,KAAK+f,iBAAiByF,KAAKN,UAAUs6B,uBAAwB,EAC7Dx/C,KAAKu/C,iBAAmB,EACxB13B,EAAOlqB,UAAUgrB,KAAKzsB,KAAK8D,OAE/Bm/C,EAAsBxhD,UAAU+hD,QAAU,SAAU1d,GAChDhiC,KAAKs/C,QAAQr8C,KAAK++B,IAEtBmd,EAAsBxhD,UAAUomB,IAAM,SAAU6E,GAC5C,GAAIA,aAAuBy2B,EAA4Bpe,4BAA6B,CAChF,IAAI0e,EAAS/2B,EACR5oB,KAAKwoB,aAAa5c,QAAO,SAAU5P,GAAK,OAAOA,aAAaqjD,EAA4Bpe,6BAA+BjlC,EAAEqgC,cAAgBsjB,EAAOtjB,gBAAiBj8B,QAClKJ,KAAKwoB,aAAavlB,KAAK08C,QAG3B93B,EAAOlqB,UAAUomB,IAAI7nB,KAAK8D,KAAM4oB,IAEjCu2B,EA1DkB,CA2D3Bhe,EAAc9Y,wBAChBvsB,EAAQqjD,sBAAwBA,GAKzB,SAASpjD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ8jD,oCAAsC9jD,EAAQ+jD,iCAAmC/jD,EAAQgkD,+BAA4B,EAC7H,IAGIA,EAHAn4B,EAAU/rB,EAAoB,GAC9B2mC,EAAe3mC,EAAoB,IACnCyjD,EAA8BzjD,EAAoB,KAEtD,SAAWkkD,GACPA,EAA0BA,EAAqC,UAAI,GAAK,YACxEA,EAA0BA,EAA4C,iBAAI,GAAK,mBAC/EA,EAA0BA,EAA0C,eAAI,GAAK,iBAHjF,CAIGA,EAA4BhkD,EAAQgkD,4BAA8BhkD,EAAQgkD,0BAA4B,KACzG,IAAID,EAAoC,SAAUh4B,GAE9C,SAASg4B,IACL,OAAkB,OAAXh4B,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KA6B/D,OA/BA2nB,EAAQ3pB,UAAU6hD,EAAkCh4B,GAIpDg4B,EAAiCliD,UAAU6kC,gBAAkB,SAAUud,EAAerd,GAClF,OAAIqd,EAAcC,SAAWF,EAA0BG,YAEnDF,EAAcC,SAAWF,EAA0BI,mBACnDlgD,KAAKigB,QAAQ0iB,mBACb3iC,KAAKigB,QAAQkgC,WAAW,IAAId,EAA4Bpe,4BAA4BjhC,KAAK+f,iBAAkB2iB,EAAc0d,gBAAgB/jB,eACzIqG,EAAcf,WACd3hC,KAAKigB,QAAQ2iB,iBACb5iC,KAAK8f,QAAQc,WAAWC,iBAAiB,KAEzCk/B,EAAcC,SAAWF,EAA0BO,iBACnD3d,EAAcf,WACd3hC,KAAK8f,QAAQc,WAAWC,iBAAiB,MAEtC,IAEXg/B,EAAiCliD,UAAUklC,iBAAmB,SAAUC,GACpE,IAAIvG,EAAav8B,KAAK8f,QAAQoF,UAAU+W,aAAa/S,YAAY4Z,EAAQsd,gBAAgB/jB,cACrFikB,EAAgBtgD,KAAK8f,QAAQoF,UAAUsa,MAAMtW,YAAYqT,EAAWxU,aACpEw4B,EAAkBvgD,KAAK8f,QAAQoF,UAAUsa,MAAMtW,YAAYqT,EAAWzU,eAG1E,OAFAgb,EAAQ0d,mBAAqBF,EAAcniB,MAC3C2E,EAAQ2d,qBAAuBF,EAAgBpiB,MACxC2E,GAEX+c,EAAiCliD,UAAUolC,cAAgB,WACvD,MAAO,uBAEJ8c,EAhC6B,CAiCtCtd,EAAaS,YACflnC,EAAQ+jD,iCAAmCA,EAC3C,IAAID,EAAuC,SAAU/3B,GAEjD,SAAS+3B,EAAoCQ,EAAiBze,GAC1D,IAAI32B,EAAQ6c,EAAO3rB,KAAK8D,OAASA,KAGjC,OAFAgL,EAAMo1C,gBAAkBA,EACxBp1C,EAAM22B,SAAWA,EACV32B,EAOX,OAZA2c,EAAQ3pB,UAAU4hD,EAAqC/3B,GAOvD+3B,EAAoCjiD,UAAUwa,MAAQ,WAClD,IAAInW,EAAS,IAAI49C,EAAoC5/C,KAAKogD,gBAAiBpgD,KAAK2hC,UAEhF,OADA3/B,EAAOg+C,OAAShgD,KAAKggD,OACdh+C,GAEJ49C,EAbgC,CAczCrd,EAAaW,sBACfpnC,EAAQ8jD,oCAAsCA,GAKvC,SAAS7jD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ4kD,UAAY5kD,EAAQ0I,aAAU,EACtC5I,EAAoB,IACpB,IAAI+kD,EAAc/kD,EAAoB,IACtCa,OAAOC,eAAeZ,EAAS,UAAW,CAAEa,YAAY,EAAMC,IAAK,WAAc,OAAO+jD,EAAYD,aACpGjkD,OAAOC,eAAeZ,EAAS,YAAa,CAAEa,YAAY,EAAMC,IAAK,WAAc,OAAO+jD,EAAYD,cAK/F,SAAS3kD,EAAQD,EAASF,KAM1B,SAASG,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ4kD,eAAY,EACpB,IAAIE,EAAgBhlD,EAAoB,IACpC+yB,EAAU/yB,EAAoB,IAC9BmtB,EAAUntB,EAAoB,IAC9B6hB,EAAQ7hB,EAAoB,GAC5BuK,EAAcvK,EAAoB,GAClC8yB,EAAS9yB,EAAoB,IAC7BylB,EAAUzlB,EAAoB,GAC9BgzB,EAAoBhzB,EAAoB,IACxC2lB,EAAyB3lB,EAAoB,IAC7CilD,EAAqBjlD,EAAoB,IACzCghD,EAAuBhhD,EAAoB,IAC3C+gD,EAAoB/gD,EAAoB,GACxCklD,EAAqBllD,EAAoB,IACzCmlD,EAAYnlD,EAAoB,IAChColD,EAAiBplD,EAAoB,IACrCqlD,EAAsBrlD,EAAoB,KAC1CkzB,EAAalzB,EAAoB,IACjCslD,EAA2BtlD,EAAoB,KAC/CulD,EAAmBvlD,EAAoB,KACvCwlD,EAAexlD,EAAoB,KACnCgR,EAAYhR,EAAoB,GAChCylD,EAAyBzlD,EAAoB,KAC7CowB,EAAkBpwB,EAAoB,GACtC0lD,EAAyB1lD,EAAoB,KAC7C2lD,EAAoB3lD,EAAoB,IACxCsK,EAAWtK,EAAoB,GAC/B4lD,EAAwB5lD,EAAoB,IAC5C8kD,EAAa,WACb,SAASA,EAAU1zC,EAASkZ,EAAYnF,GACpC,IAAI/V,EAAQhL,KACZA,KAAKyhD,eAAiB,IAAI7hD,MAC1BI,KAAK0hD,mBAAqB,GAC1B1hD,KAAK2hD,oBAAsB,GAC3B3hD,KAAK4hD,aAAe,GACpB5hD,KAAK6hD,cAAgB,GACrB7hD,KAAK8hD,aAAe,GACpB9hD,KAAK+hD,kBAAoB,GACzB/hD,KAAKgiD,kBAAoB,GACzBhiD,KAAKiiD,cAAgB,GACrBjiD,KAAKkiD,mBAAqB,GAC1BliD,KAAK+7B,mBAAqB,GAC1B/7B,KAAKmiD,yBAA2B,GAChCniD,KAAK09C,cAAgB,GACrB19C,KAAKoiD,wBAA0B,GAC/BpiD,KAAKqiD,uBAAyB,GAC9BriD,KAAKsiD,4BAA8B,GACnCtiD,KAAKuiD,gCAAkC,GACvCviD,KAAKwiD,2BAA6B,GAClCxiD,KAAKyiD,mBAAqB,GAC1BziD,KAAK0iD,cAAgB,GACrB1iD,KAAKu2C,qBAAuB,IAAIh1B,EAAuBwF,qBACvD/mB,KAAK2iD,iBAAmB,IAAI9B,EAAmB+B,iBAC/C5iD,KAAK2mB,SAAW,IAAI+H,EAAOuB,KAAK,EAAG,GACnCjwB,KAAK6iD,WAAa,EAClB7iD,KAAKykB,SAAU,EACfzkB,KAAK8iD,YAAc,EACnB9iD,KAAK+iD,QAAU,EACf/iD,KAAKgjD,oBAAsB,KAC3BhjD,KAAKijD,sBAAwB,GAC7BjjD,KAAKkmB,WAAaA,EAClBlmB,KAAK+gB,SAAW+N,EAAWkkB,SAAS7oC,MAAM4W,GAC1C/gB,KAAK25C,kBAAoB,IAAI5wB,EAAQ6hB,kBAAkB7pB,EAASwrB,aAChEvsC,KAAKkgB,qBAAuB,IAAImhC,EAAuB6B,qBAAqBljD,MAC5EA,KAAKmjD,kBAAkBn2C,GACvBhN,KAAKojD,eACLpjD,KAAKqjD,4BACLrjD,KAAKsjD,0BACLtjD,KAAKujD,4BACLvjD,KAAK25C,kBAAkB7M,QAAQ9sC,KAAKwjD,aACpCxjD,KAAKyjD,eACLzjD,KAAK0jD,qBACL1jD,KAAK2jD,2BACL3jD,KAAK4jD,uBACL5jD,KAAK0lB,eAAiB,IAAIy7B,EAAiB0C,eAAe7jD,MAC1DA,KAAK4gB,WAAa,IAAIwgC,EAAa0C,WAAW9jD,KAAMkmB,EAAW69B,MAC/D/jD,KAAK2hB,aAAe,IAAIq/B,EAAegD,aAAahkD,MACpDA,KAAKumB,mBAAqB,IAAIq2B,EAAqBtI,mBAAmBt0C,MACtEA,KAAKigB,QAAU,IAAI8gC,EAAUkD,QAC7BjkD,KAAKkkD,gBAAkB,IAAIvH,EAAkBx7B,gBAAgBnhB,MAC7DA,KAAKmkD,qBAAuB,IAAI7C,EAAuB8C,qBAAqBpkD,MAC5EA,KAAKqkD,uBAAyBrkD,KAAKskD,sBAAsB/mD,KAAKyC,MAC9D2P,OAAOiU,iBAAiB,SAAU5jB,KAAKqkD,wBACvCrkD,KAAKoiB,aACLjR,YAAW,WACPnG,EAAMu5C,yBACP,GACHvkD,KAAKwkD,8BA08BT,OAx8BA9D,EAAU/iD,UAAU8mD,MAAQ,WACxBzkD,KAAK0kD,mBAAmBttC,UAAY,GACpCpX,KAAK2jB,SAASvM,UAAY,GAC1BpX,KAAK0hD,mBAAqB,GAC1B1hD,KAAK2hD,oBAAsB,GAC3B3hD,KAAK4hD,aAAe,GACpB5hD,KAAK6hD,cAAgB,GACrB7hD,KAAK8hD,aAAe,GACpB9hD,KAAKgiD,kBAAoB,GACzBhiD,KAAKiiD,cAAgB,GACrBjiD,KAAKkiD,mBAAqB,GAC1BliD,KAAK+7B,mBAAqB,GAC1B/7B,KAAKqiD,uBAAyB,GAC9BriD,KAAKyhD,eAAiB,GACtBzhD,KAAKmiD,yBAA2B,GAChCniD,KAAKsiD,4BAA8B,GACnCtiD,KAAKwiD,2BAA6B,GAClCxiD,KAAKyiD,mBAAqB,GAC1BziD,KAAKuiD,gCAAkC,GACvCviD,KAAKoiD,wBAA0B,IAEnC1B,EAAU/iD,UAAU8lD,aAAe,WAC/B,IAAI91C,EAAO,IAAI+gB,EAAOuB,KAAKjwB,KAAK2kD,kBAAkBC,WAAY5kD,KAAK2kD,kBAAkBE,aACjFr1B,EAAkBxvB,KAAK2kD,kBAAkBE,YAAc7kD,KAAK2kD,kBAAkBG,aAAajJ,aAC/F77C,KAAKu2C,qBAAqBnnB,YAAYzhB,EAAM3N,KAAK2mB,SAAU3mB,KAAK2iD,iBAAkB3iD,KAAKqpB,MAAOrpB,KAAKklB,UAAWllB,KAAK+gB,SAASwO,SAAUC,GACtIxvB,KAAK25C,kBAAkBvqB,YAAYpvB,KAAKqpB,MAAMxiB,MAAML,UAAWxG,KAAK+gB,SAASwO,SAAUvvB,KAAKklB,UAAUC,QAE1Gu7B,EAAU/iD,UAAUonD,aAAe,SAAUC,EAAgBC,GACzD,IAAIp+C,EAAQ,IAAIoB,KAAK+8C,EAAex+C,UAAYxG,KAAKklD,sBACrDr+C,EAAQkiB,EAAQwH,UAAUgb,0BAA0B1kC,EAAO7G,KAAK+gB,SAASwO,SAAUvvB,KAAK+gB,SAASyqB,gBACjG,IAAI1kC,EAAM,IAAImB,KAAKg9C,EAAaz+C,UAAYxG,KAAKklD,sBAEjD,OADAp+C,EAAMiiB,EAAQwH,UAAUkb,wBAAwB3kC,EAAK9G,KAAK+gB,SAASwO,SAAUvvB,KAAK+gB,SAASyqB,gBACpF,IAAIrlC,EAAY2E,UAAUjE,EAAOC,IAE5C45C,EAAU/iD,UAAUunD,mBAAqB,WAErC,OADuBl+C,KAAKE,KAAKlH,KAAK2kD,kBAAkBC,WAAa5kD,KAAK2mB,SAAS/Y,OACzDmb,EAAQwH,UAAUC,gBAAgBxwB,KAAK+gB,SAASwO,WAE9EmxB,EAAU/iD,UAAU0lD,0BAA4B,WAC5C,IAAI8B,EAA0BnlD,KAAKolD,gCAC/BC,EAAiBrlD,KAAKslD,qBAAqBH,GAC/CnlD,KAAKulD,8BAA8BF,GACnCrlD,KAAKwjD,YAAYt2C,YAAYi4C,IAEjCzE,EAAU/iD,UAAU4nD,8BAAgC,SAAUF,GAC1DrlD,KAAK2iD,iBAAiBhzB,WAAa01B,EAAe,GAAGp4C,WAAWqH,aAChEtU,KAAK2iD,iBAAiB9yB,eAAiBw1B,EAAe,GAAGp4C,WAAW6D,YACpE9Q,KAAK2iD,iBAAiBjuB,sBAAwBjX,EAAM3Q,SAASuF,QAAQoL,EAAM3Q,SAASsC,gBAAgBi2C,EAAe,IAAI5wC,YACvHzU,KAAK2iD,iBAAiBvyB,uBAAyB3S,EAAM3Q,SAAS0H,wBAAwB6wC,EAAe,IACrGrlD,KAAK2iD,iBAAiBzyB,oBAAsBzS,EAAM3Q,SAAS4J,0BAA0B2uC,EAAe,IACpG,IAAK,IAAIrpD,EAAI,EAAGA,GAAK2yB,EAAQ5D,SAASgI,MAAO/2B,IACzCqpD,EAAe,GAAGhuC,UAAYrX,KAAK25C,kBAAkBhJ,yBAAyB30C,GAC9EgE,KAAK2iD,iBAAiB6C,gBAAgBxpD,GAAKqpD,EAAe,GAAGv0C,YAEjE9Q,KAAK2iD,iBAAiBruB,eAAiBt0B,KAAKylD,kBAAkBhoC,EAAM3Q,SAASsC,gBAAgBi2C,EAAe,GAAGp4C,WAAWA,YAAYy4C,aACtI1lD,KAAK2iD,iBAAiBttB,4BAA8B5X,EAAM3Q,SAAS0F,UAAUiL,EAAM3Q,SAASsC,gBAAgBi2C,EAAe,IAAIz3C,OAC/H5N,KAAK2iD,iBAAiB5yB,gBAAkB/vB,KAAKkmB,WAAWy/B,kBAAoB3lD,KAAK6iD,WACjF7iD,KAAK2iD,iBAAiB/yB,iBAAmBy1B,EAAeA,EAAejlD,OAAS,GAAG6M,WAAWqH,cAElGosC,EAAU/iD,UAAU8nD,kBAAoB,SAAUG,GAC9C,IAAI5jD,EAAS,EACb,GAAyB,MAArB4jD,GAAkD,IAArBA,EAAyB,CACtD,IAAIC,EAAaD,EAAkBrlD,QAAQ,OAC3C,GAAIslD,GAAc,EACd,IAEI7jD,EADcyQ,WAAWmzC,EAAkBnuC,OAAO,EAAGouC,IAClCpzC,WAAWvC,iBAAiBb,SAASQ,iBAAiBw9B,UAE7E,MAAO/sC,SAEP0B,EAASyb,EAAM3Q,SAASuF,QAAQuzC,GAExC,OAAgB,EAAT5jD,GAEX0+C,EAAU/iD,UAAUynD,8BAAgC,WAChD,IAAIpjD,EAASqN,SAAS8G,cAAc,OAKpC,OAJAnU,EAAOoL,MAAM04C,WAAa,SAC1B9jD,EAAOoL,MAAMuK,SAAW,WACxB3V,EAAOoL,MAAME,KAAO,UACpBtN,KAAKwjD,YAAYntC,YAAYrU,GACtBA,GAEX0+C,EAAU/iD,UAAU2nD,qBAAuB,SAAUtwC,GACjD,IAAIqwC,EAAiB,GACjBU,EAAU/lD,KAAKmW,cAAc,IAAIyY,EAAkByC,gBAAgB,wBAAyB,KAAMrc,GAClGwQ,EAAOxlB,KAAKmW,cAAc,IAAIyY,EAAkByC,gBAAgB,iBAAkB,KAAM00B,GAC5E/lD,KAAKmW,cAAc,IAAIyY,EAAkByC,gBAAgB,uCAAwC,KAAM7L,GAC7GnO,UAAY,MACtBguC,EAAepiD,KAAK8iD,GACpB,IAAIC,EAAmBhmD,KAAKmW,cAAc,IAAIyY,EAAkByC,gBAAgB,wBAAyB,KAAMrc,GAC/GhV,KAAKmW,cAAc,IAAIyY,EAAkByC,gBAAgB,oCAAqC,KAAM20B,GACpGX,EAAepiD,KAAK+iD,GAEpB,IADA,IAAIC,EAA0B,CAAC,kBAAmB,iBAAkB,cAAe,wCAC1EjqD,EAAI,EAAGA,EAAIiqD,EAAwB7lD,OAAQpE,IAAK,CACrD,IAAIkqD,EAAoB,IAAIt3B,EAAkByC,gBAAgB40B,EAAwBjqD,IACtFqpD,EAAepiD,KAAKjD,KAAKmW,cAAc+vC,EAAmB,KAAMlxC,IAEpE,IAAImxC,EAAgBnmD,KAAKmW,cAAc,IAAIyY,EAAkByC,gBAAgB,wBAAyB,KAAMrc,GACxGoxC,EAAapmD,KAAKmW,cAAc,IAAIyY,EAAkByC,gBAAgB,iCAAkC,KAAM80B,GAIlH,OAHsBnmD,KAAKmW,cAAc,IAAIyY,EAAkByC,gBAAgB,uCAAwC,KAAM+0B,GAC7G/uC,UAAY,MAC5BguC,EAAepiD,KAAKkjD,GACbd,GAEX3E,EAAU/iD,UAAU0oD,OAAS,SAAUC,QACnB,IAAZA,IAAsBA,EAAUtmD,KAAK2kD,kBAAkBC,WAAa,GACxE,IAAI2B,EAAavmD,KAAKu2C,qBAAqB3d,aAAa54B,KAAK2kD,kBAAkB50C,WAAau2C,GACxFtmD,KAAK8iD,YAAc9iD,KAAK+iD,SACxB/iD,KAAK8iD,cACL9iD,KAAKwmD,sBACLxmD,KAAKymD,kBAEAzmD,KAAK+gB,SAASwO,SAAWZ,EAAQ5D,SAASyH,aAC/CxyB,KAAK8iD,YAAc,EACnB9iD,KAAK0mD,YAAY1mD,KAAK+gB,SAASwO,SAAW,GAAG,IAEjDvvB,KAAK2mD,aAAaJ,EAAYD,IAElC5F,EAAU/iD,UAAUipD,QAAU,SAAUN,QACpB,IAAZA,IAAsBA,EAAUtmD,KAAK2kD,kBAAkBC,WAAa,GACxE,IAAI2B,EAAavmD,KAAKu2C,qBAAqB3d,aAAa54B,KAAK2kD,kBAAkB50C,WAAau2C,GACxFtmD,KAAK8iD,YAAc,GACnB9iD,KAAK8iD,cACL9iD,KAAKwmD,sBACLxmD,KAAKymD,kBAEAzmD,KAAK+gB,SAASwO,SAAWZ,EAAQ5D,SAASgI,QAC/C/yB,KAAK8iD,YAAc9iD,KAAK+iD,QACxB/iD,KAAK0mD,YAAY1mD,KAAK+gB,SAASwO,SAAW,GAAG,IAEjDvvB,KAAK2mD,aAAaJ,EAAYD,IAElC5F,EAAU/iD,UAAUgpD,aAAe,SAAU5+C,EAAMu+C,GAC/CtmD,KAAK2kD,kBAAkB50C,WAAa/I,KAAKwG,MAAMxN,KAAKu2C,qBAAqBhjB,aAAaxrB,IAASu+C,GAEnG5F,EAAU/iD,UAAU4mD,qBAAuB,WACvC,IAAIsC,EAAoB99B,EAAQwH,UAAUmb,eAAe1rC,KAAK8mD,UAAUjgD,MAAO7G,KAAK+gB,SAASwO,UAC7FvvB,KAAK2kD,kBAAkB50C,WAAa/I,KAAKwG,MAAMxN,KAAKu2C,qBAAqBhjB,aAAaszB,IAAsB,GAEhHnG,EAAU/iD,UAAUopD,qBAAuB,WACvC/mD,KAAKymD,kBAET/F,EAAU/iD,UAAU6mD,4BAA8B,WAC9C,IAAIx5C,EAAQhL,KACRA,KAAK+gB,SAAS2c,WAAWC,kBACzB39B,KAAKgjD,oBAAsBgE,aAAY,WAC/Bh8C,EAAMi8C,oBACNj8C,EAAMi8C,uBACXjgD,KAAKsU,IAAItb,KAAK+gB,SAAS2c,WAAWwW,0BAA2B,QAExEwM,EAAU/iD,UAAUupD,uBAAyB,WACrClnD,KAAKgjD,qBACLmE,cAAcnnD,KAAKgjD,qBACvBhjD,KAAKgjD,oBAAsB,MAE/BtC,EAAU/iD,UAAUypD,sBAAwB,SAAU5nB,GAClD,IAAKA,EACD,OAAO,IAAIv3B,KACf,IAAI2B,EAAQ41B,EAAMv0B,KAAI,SAAUhO,GAAK,MAA0B,kBAAZA,EAAE4J,MAAqB,IAAIoB,KAAKhL,EAAE4J,OAAS5J,EAAE4J,SAAU+E,QAAO,SAAUvP,GAAK,OAAO6J,EAASpB,UAAUzI,MAC1J,OAAOuN,EAAMxJ,OAAS,EAAIwJ,EAAMy9C,QAAO,SAAU38C,EAAKrO,GAAK,OAAOA,EAAIqO,EAAMrO,EAAIqO,IAAQd,EAAM,IAAM,IAAI3B,MAE5Gy4C,EAAU/iD,UAAU2pD,oBAAsB,SAAU9nB,GAChD,IAAKA,EACD,OAAO,IAAIv3B,KACf,IAAI2B,EAAQ41B,EAAMv0B,KAAI,SAAUhO,GAAK,MAAwB,kBAAVA,EAAE6J,IAAmB,IAAImB,KAAKhL,EAAE6J,KAAO7J,EAAE6J,OAAQ8E,QAAO,SAAUvP,GAAK,OAAO6J,EAASpB,UAAUzI,MACpJ,OAAOuN,EAAMxJ,OAAS,EAAIwJ,EAAMy9C,QAAO,SAAU/rC,EAAKjf,GAAK,OAAOA,EAAIif,EAAMjf,EAAIif,IAAQ1R,EAAM,IAAM,IAAI3B,MAE5Gy4C,EAAU/iD,UAAU4pD,iBAAmB,WACnC,OAAOvnD,KAAKu2C,qBAAqB9lB,oBAAsBzwB,KAAK2mB,SAAS/Y,OAEzE8yC,EAAU/iD,UAAU6pD,kBAAoB,WACpC,OAAOxnD,KAAKu2C,qBAAqBvlB,6BAErC0vB,EAAU/iD,UAAU8pD,oBAAsB,WAAc,OAAOznD,KAAKklB,UAAUwK,WAC9EgxB,EAAU/iD,UAAUw1B,QAAU,SAAU5Y,GAEpC,OADWva,KAAKklB,UAAUC,MAAM5K,GACpBiL,MAEhBk7B,EAAU/iD,UAAUwlD,kBAAoB,SAAUnuC,GAC9ChV,KAAKwjD,YAAcn0C,SAAS8G,cAAc,OAC1CnW,KAAKwjD,YAAYp2C,MAAMQ,MAAQoH,EAAOlE,YAAc,KACpD9Q,KAAKwjD,YAAYp2C,MAAMS,OAASmH,EAAOV,aAAe,KACtDU,EAAOqB,YAAYrW,KAAKwjD,cAE5B9C,EAAU/iD,UAAUylD,aAAe,WAC/BpjD,KAAK47C,OAASvsC,SAAS8G,cAAc,OACrCnW,KAAK47C,OAAOvqC,UAAY,kBACxBrR,KAAKwjD,YAAYntC,YAAYrW,KAAK47C,SAEtC8E,EAAU/iD,UAAUgmD,yBAA2B,WAC3C3jD,KAAK0kD,mBAAqBr1C,SAAS8G,cAAc,OACjDnW,KAAK0kD,mBAAmBrzC,UAAY,gBACpCrR,KAAK0kD,mBAAmBt3C,MAAMS,OAAS7N,KAAK2iD,iBAAiB5yB,gBAAkB/vB,KAAK6iD,WAAa,KACjG7iD,KAAK47C,OAAOvlC,YAAYrW,KAAK0kD,qBAEjChE,EAAU/iD,UAAU+pD,oBAAsB,WACtC,IAAIC,EAAgBt4C,SAAS8G,cAAc,OAM3C,OALAwxC,EAAct2C,UAAY,eAC1Bs2C,EAAcv6C,MAAMQ,MAAQ5N,KAAKunD,mBAAqB,KACtDI,EAAcv6C,MAAMS,OAAS7N,KAAK2iD,iBAAiB5yB,gBAAkB,KACrE/vB,KAAK0kD,mBAAmBruC,YAAYsxC,GACpC3nD,KAAKyhD,eAAemG,QAAQD,GACrBA,GAEXjH,EAAU/iD,UAAUimD,qBAAuB,WACvC,IAAK,IAAI5nD,EAAI,EAAGA,EAAIgE,KAAK6iD,WAAY7mD,IAAK,CACtC,IAAI2rD,EAAgB3nD,KAAK0nD,sBAChB,GAAL1rD,GAAUgE,KAAK+gB,SAASwO,UAAYZ,EAAQ5D,SAAS6H,OACrD5yB,KAAK6nD,kBAAkBF,KAGnCjH,EAAU/iD,UAAU2lD,wBAA0B,WAC1C,IAAIt2C,EAAUqC,SAAS8G,cAAc,OACrCnJ,EAAQqE,UAAY,eACpBrR,KAAKwjD,YAAYntC,YAAYrJ,GAC7BhN,KAAK8nD,eAAe96C,GACpBhN,KAAK2kD,kBAAoB3kD,KAAKkmB,WAAW6hC,6BAA6B/6C,GACxC,MAA1BhN,KAAK2kD,oBACL3kD,KAAK2kD,kBAAoB,IAAI1D,EAAoB+G,kBAAkBh7C,EAAShN,OAChFA,KAAKioD,4BAETvH,EAAU/iD,UAAUsqD,yBAA2B,WAC3C,IACIj7C,EAAUhN,KAAK2kD,kBAAkBG,aACrC9kD,KAAK+gB,SAASqyB,4BACV31B,EAAM3Q,SAAS8E,aAAa5E,EAHhB,mBAGsCyQ,EAAM3Q,SAASgF,gBAAgB9E,EAHrE,mBAIhB,IAAIwlC,EAAYzmC,SAASmE,iBAAiBlD,GAAS2yB,iBAAiB,gBAAkB,EACtF3yB,EAAQI,MAAMS,OAAS,gBAAkB7N,KAAK2iD,iBAAiB5yB,gBAAkB/vB,KAAK6iD,WAAarQ,GAAa,OAEpHkO,EAAU/iD,UAAUmqD,eAAiB,SAAU9yC,GAC3ChV,KAAK2jB,SAAWtU,SAAS8G,cAAc,OACvCnW,KAAK2jB,SAAS8B,GAAK,cACnBzQ,EAAOqB,YAAYrW,KAAK2jB,WAE5B+8B,EAAU/iD,UAAU+lD,mBAAqB,WACrC1jD,KAAK2jB,SAASvW,MAAMQ,MAAQ5N,KAAKunD,mBAAqB,KACtDvnD,KAAK2jB,SAASvW,MAAMS,OAAS7N,KAAKwnD,oBAAsB,MAE5D9G,EAAU/iD,UAAU6oD,oBAAsB,WACtCxmD,KAAK2mB,SAAS/Y,MAAQ5N,KAAK2iD,iBAAiB6C,gBAAgBxlD,KAAK+gB,SAASwO,UAAYvvB,KAAK8iD,aAE/FpC,EAAU/iD,UAAUkqD,kBAAoB,SAAU7yC,GAC9C,IAAIkzC,EAAc,IAAIjgD,KACtBigD,EAAYlvB,QAAQh5B,KAAKqpB,MAAMxiB,MAAML,WAGrC,IAFA,IAAI0E,EAAI,EACJqP,EAAQ,EACL2tC,EAAY1hD,UAAYxG,KAAKqpB,MAAMviB,IAAIN,WAAW,CACrD,IACI2hD,EADkBp/B,EAAQwH,UAAUsa,eAAeqd,EAAYtgD,WAAYsgD,EAAYvgD,eAC1DugD,EAAYz/C,UAAY,EACrD2/C,EAAW,IAAIngD,KACnBmgD,EAASpvB,QAAQkvB,EAAY1hD,UAAYQ,KAAK0D,IAAIy9C,EAAWp/B,EAAQwH,UAAUqb,SAAU5rC,KAAKqpB,MAAMviB,IAAIN,UAAY0hD,EAAY1hD,YAChI,IAAIoH,EAAQ5N,KAAKu2C,qBAAqB3hB,oBAAoBszB,EAAaE,GACnEp2B,EAAgB,IAAIpD,EAAkByC,gBAAgB,cAAe,IAAIhQ,EAAQzJ,MAAM1M,OAAG9H,GAAY,IAAIsrB,EAAOuB,KAAKriB,EAAO5N,KAAK2iD,iBAAiB5yB,kBACnJs4B,EAAmBroD,KAAKmW,cAAc6b,EAAe,KAAMhd,GAC/DqzC,EAAiBhxC,UAAYrX,KAAK25C,kBAAkB7L,iBAAiBvzB,EAAOoU,EAAQ5D,SAAS8H,QAC7Fw1B,EAAiBj7C,MAAMkgC,WAAattC,KAAK2iD,iBAAiB5yB,gBAAkB,KAC5E,IAAIu4B,EAAkB,IAAI15B,EAAkByC,gBAAgB,cAAe,IAAIhQ,EAAQzJ,MAAM1M,EAAI0C,OAAOxK,GAAY,IAAIsrB,EAAOuB,KAAK,EAAGjwB,KAAK2iD,iBAAiB5yB,kBAC7J/vB,KAAKmW,cAAcmyC,EAAiB,KAAMtzC,GAC1C9J,GAAK0C,EACL2M,IACA2tC,EAAcE,IAGtB1H,EAAU/iD,UAAUykB,WAAa,WAC7BpiB,KAAKuoD,oBACLvoD,KAAK0kD,mBAAmB30C,WAAa/P,KAAKwoD,4BAC1CxoD,KAAKyoD,eAAc,GACnBzoD,KAAKyoD,eAAc,GACnBzoD,KAAKkmB,WAAWwiC,cAAc1oD,KAAK2oD,4BACnC3oD,KAAK4oD,mBAETlI,EAAU/iD,UAAU4qD,kBAAoB,WACpCvoD,KAAK0gD,EAAUmI,sBAAwB7oD,KAAK2kD,kBAAkBp1C,UAC9DvP,KAAK0gD,EAAUoI,uBAAyB9oD,KAAK2kD,kBAAkB50C,YAEnE2wC,EAAU/iD,UAAUirD,gBAAkB,kBAC3B5oD,KAAK0gD,EAAUmI,6BACf7oD,KAAK0gD,EAAUoI,8BACf9oD,KAAK0gD,EAAUqI,oBAE1BrI,EAAU/iD,UAAUqrD,kBAAoB,SAAUC,GAC9CA,EAAY5xC,UAAY,MACxB,IAAIxJ,EAASqC,iBAAiB+4C,GAAap7C,OAE3C,OADAo7C,EAAY5xC,UAAY,GACjBxJ,GAEXpR,OAAOC,eAAegkD,EAAU/iD,UAAW,6BAA8B,CACrEf,IAAK,WACD,IAAIktB,EACJ,OAAuD,QAA/CA,EAAK9pB,KAAK0gD,EAAUmI,6BAA0C,IAAP/+B,EAAgBA,EAAK9pB,KAAK2kD,kBAAkBp1C,WAE/G5S,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAegkD,EAAU/iD,UAAW,8BAA+B,CACtEf,IAAK,WACD,IAAIktB,EACJ,OAAwD,QAAhDA,EAAK9pB,KAAK0gD,EAAUoI,8BAA2C,IAAPh/B,EAAgBA,EAAK9pB,KAAK2kD,kBAAkB50C,YAEhHpT,YAAY,EACZqjB,cAAc,IAElB0gC,EAAU/iD,UAAU8qD,cAAgB,SAAU33B,GAC1C9wB,KAAKumB,mBAAmB2uB,QAAQD,OAChCj1C,KAAKkpD,uCAAuCp4B,GACxCA,EACA9wB,KAAKmpD,iCAELnpD,KAAKopD,oCACLppD,KAAKinD,qBACLjnD,KAAKqpD,2BAGb3I,EAAU/iD,UAAUurD,uCAAyC,SAAUp4B,GACnE,IAAI9lB,EAAQhL,KACRs7B,EAAYxK,EAAa9wB,KAAK2oD,2BAA6B3oD,KAAKwoD,4BAChEc,EAAqBtpD,KAAKu2C,qBAAqBlb,4BAA4BC,EAAWxK,GACtFy4B,EAAkBz4B,EAAa9wB,KAAKkiD,mBAAqBliD,KAAK+7B,mBAClE/7B,KAAKwpD,iBAAiBD,EAAiBD,GAAoB,SAAU/uC,GAASvP,EAAMy+C,mCAAmClvC,EAAOuW,MAAgB,SAAUvW,GAASvP,EAAM0+C,mCAAmCnvC,EAAOuW,MAC7MA,EACA9wB,KAAKkiD,mBAAqBoH,EAE1BtpD,KAAK+7B,mBAAqButB,GAElC5I,EAAU/iD,UAAUyrD,kCAAoC,WACpD,IAAIp+C,EAAQhL,KACR2pD,EAAgC3pD,KAAKu2C,qBAAqBxkB,8BAA8B/xB,KAAKwoD,6BACjGxoD,KAAKwpD,iBAAiBxpD,KAAKwiD,2BAA4BmH,GAA+B,SAAUvjC,GAAQpb,EAAM4+C,+BAA+BxjC,MAAU,SAAUA,GAAQpb,EAAM6+C,+BAA+BzjC,MAC9MpmB,KAAKwiD,2BAA6BmH,GAEtCjJ,EAAU/iD,UAAUspD,mBAAqB,WACrC,IAAIj8C,EAAQhL,KACR8pD,EAAwB9pD,KAAKu2C,qBAAqB9Y,sBAAsBz9B,KAAK+gB,SAAS2c,YAC1F19B,KAAKwpD,iBAAiBxpD,KAAKyiD,mBAAoBqH,GAAuB,SAAU1jC,GAAQpb,EAAM++C,cAAc3jC,EAAM,KAAMpb,EAAM2Y,SAAU3Y,EAAM03C,kBAAmB,SAAUt8B,GAAQ,OAAOpb,EAAMmL,cAAciQ,EAAM,KAAMpb,EAAM2Y,SAAU3Y,EAAM03C,kBAChP1iD,KAAKyiD,mBAAqBqH,GAE9BpJ,EAAU/iD,UAAUwrD,8BAAgC,WAChD,IAAIn+C,EAAQhL,KACRgqD,EAA4BhqD,KAAKu2C,qBAAqBhZ,0BAA0Bv9B,KAAK2oD,4BACzF3oD,KAAKwpD,iBAAiBxpD,KAAKqiD,uBAAwB2H,GAA2B,SAAU5jC,GAAQpb,EAAMi/C,2BAA2B7jC,MAAU,SAAUA,GAAQpb,EAAMk/C,2BAA2B9jC,MAC9LpmB,KAAKqiD,uBAAyB2H,GAElCtJ,EAAU/iD,UAAU0rD,uBAAyB,WACzCrpD,KAAKmqD,sBAAsBnqD,KAAK+gB,SAASwO,SAAU,GAC/CvvB,KAAK+gB,SAASwO,UAAYZ,EAAQ5D,SAAS6H,OAC3C5yB,KAAKmqD,sBAAsBphC,EAAQwH,UAAU6b,mBAAmBpsC,KAAK+gB,SAASwO,UAAW,IAEjGmxB,EAAU/iD,UAAUwsD,sBAAwB,SAAUh5B,EAAWi5B,GAC7D,IAAIp/C,EAAQhL,KACRspD,EAAqBtpD,KAAKu2C,qBAAqBza,4BAA4B3K,EAAWnxB,KAAK+7B,oBAC3FwtB,EAAkBvpD,KAAKmiD,yBAAyBhxB,EAAYnxB,KAAK+gB,SAASwO,WAAa,GAC3FvvB,KAAKwpD,iBAAiBD,EAAiBD,GAAoB,SAAU/uC,GAASvP,EAAMq/C,4BAA4B9vC,EAAO6vC,MAAgB,SAAU7vC,GAASvP,EAAMs/C,4BAA4B/vC,EAAO6vC,EAAYj5B,MAC/MnxB,KAAKmiD,yBAAyBhxB,EAAYnxB,KAAK+gB,SAASwO,UAAY+5B,GAExE5I,EAAU/iD,UAAU6rD,iBAAmB,SAAUe,EAAyBC,EAAyBC,EAAcC,GAC7GH,EACK3+C,QAAO,SAAUwa,GAAQ,OAAkD,IAA3CokC,EAAwBjqD,QAAQ6lB,MAChEzQ,SAAQ,SAAUyQ,GAAQqkC,EAAarkC,MAC5CokC,EACK5+C,QAAO,SAAUwa,GAAQ,OAAkD,IAA3CmkC,EAAwBhqD,QAAQ6lB,MAChEzQ,SAAQ,SAAUyQ,GAAQskC,EAAatkC,OAEhDs6B,EAAU/iD,UAAUqiC,oBAAsB,SAAUzlB,GAChD,IAAIvP,EAAQhL,KACR2qD,EAAY3qD,KAAKkiD,mBAAmBt2C,QAAO,SAAU/O,GAAK,OAAOA,IAAM0d,KAAUna,OAAS,EAC1Fy/B,EAAW7/B,KAAKklB,UAAUC,MAAM5K,GAChCiL,EAAOqa,GAAYA,EAASra,KAChC,GAAKA,EAAL,CAEImlC,IACA3qD,KAAK4qD,kBAAkBrwC,GACvBva,KAAK6qD,kBAAkBtwC,IAE3B,IAAI0hB,EAAej8B,KAAKklB,UAAU+W,aAAa9W,MAAMvZ,QAAO,SAAUvP,GAAK,OAAOA,EAAEyrB,eAAiBtC,EAAK6B,YAAchrB,EAAE0rB,aAAevC,EAAK6B,cAC1I4U,EAAa77B,QACb67B,EAAatmB,SAAQ,SAAUtZ,GAAK,OAAO2O,EAAM8/C,6BAA6BzuD,EAAEgrB,iBAExFq5B,EAAU/iD,UAAUmtD,6BAA+B,SAAUzuB,EAAc0uB,GACvE,IAAI//C,EAAQhL,UACQ,IAAhB+qD,IAA0BA,GAAc,GAC5C,IAAIC,EAAQ,GACZhrD,KAAKqiD,uBAAyBriD,KAAKqiD,uBAAuBz2C,QAAO,SAAUwa,GACvE,OAAIA,EAAKkW,KAAK,kBAAoBD,IAElC2uB,EAAM/nD,KAAKmjB,IACJ,MAEX,IAAI6kC,EAAaD,EAAM5qD,OAAS,EAChC4qD,EAAMr1C,SAAQ,SAAUyQ,GAAQpb,EAAMi/C,2BAA2B7jC,MACjE4kC,EAAQhrD,KAAKu2C,qBAAqBna,8BAA8BC,IAC5D4uB,GAAcF,IACdC,EAAMr1C,SAAQ,SAAUyQ,GAAQpb,EAAMk/C,2BAA2B9jC,GAAOpb,EAAMq3C,uBAAuBp/C,KAAKmjB,OAElHs6B,EAAU/iD,UAAUutD,qBAAuB,SAAUC,GACjD,OAAOA,EAAmBnrD,KAAK+gB,SAASqyB,4BAA8BpzC,KAAK+gB,SAASsyB,2BAExFqN,EAAU/iD,UAAU+rD,mCAAqC,SAAUnvC,EAAO4wC,GAClEnrD,KAAKkrD,qBAAqBC,IAC1BnrD,KAAKorD,qBAAqB7wC,GAAQ4wC,GAClCA,GACAnrD,KAAK6qD,kBAAkBtwC,IAE/BmmC,EAAU/iD,UAAU8rD,mCAAqC,SAAUlvC,EAAO4wC,GAClEnrD,KAAKkrD,qBAAqBC,IAC1BnrD,KAAKqrD,qBAAqB9wC,GAAQ4wC,GAClCA,GACAnrD,KAAK4qD,kBAAkBrwC,IAE/BmmC,EAAU/iD,UAAU2tD,6BAA+B,SAAUx6B,GACzD,OAAOA,EAAa9wB,KAAK2hD,oBAAsB3hD,KAAK0hD,oBAExDhB,EAAU/iD,UAAUytD,qBAAuB,SAAU7wC,EAAOuW,GACxD,IAAI1K,EAAOpmB,KAAKu2C,qBAAqB1lB,sBAAsBtW,EAAOuW,GAClE9wB,KAAKmW,cAAciQ,EAAM7L,EAAOva,KAAK2jB,SAAU3jB,KAAKsrD,6BAA6Bx6B,KAErF4vB,EAAU/iD,UAAU0tD,qBAAuB,SAAU9wC,EAAOuW,GACxD9wB,KAAK+pD,cAAc,KAAMxvC,EAAOva,KAAK2jB,SAAU3jB,KAAKsrD,6BAA6Bx6B,KAErF4vB,EAAU/iD,UAAU2sD,4BAA8B,SAAU/vC,EAAO6vC,EAAYj5B,GAC3EnxB,KAAKurD,mBAAmBhxC,EAAO6vC,EAAYj5B,GAC3CnxB,KAAKwrD,kBAAkBjxC,EAAO6vC,EAAYj5B,IAE9CuvB,EAAU/iD,UAAU4tD,mBAAqB,SAAUhxC,EAAO6vC,EAAYj5B,GAClE,IAAI/K,EAAOpmB,KAAKu2C,qBAAqB5kB,oBAAoBpX,EAAO4W,GAC5Ds6B,EAAezrD,KAAK0rD,uBAAuBnxC,EAAO6L,EAAMgkC,EAAYpqD,KAAK6hD,eAC7E4J,EAAap0C,UAAYrX,KAAK25C,kBAAkB7L,iBAAiBvzB,EAAO4W,GACxEs6B,EAAar+C,MAAMkgC,WAAattC,KAAK2iD,iBAAiB5yB,gBAAkB,KACpEoB,IAAcxC,EAAQ5D,SAAS+H,UAC/B24B,EAAar+C,MAAMu+C,QAAU,MAErCjL,EAAU/iD,UAAU6tD,kBAAoB,SAAUjxC,EAAO6vC,EAAYj5B,GACjE,IAAI/K,EAAOpmB,KAAKu2C,qBAAqBrlB,mBAAmB3W,EAAO4W,GAC/DnxB,KAAK0rD,uBAAuBnxC,EAAO6L,EAAMgkC,EAAYpqD,KAAK4hD,eAE9DlB,EAAU/iD,UAAU+tD,uBAAyB,SAAUnxC,EAAO6L,EAAMgkC,EAAYwB,GAG5E,OAFKA,EAAWxB,KACZwB,EAAWxB,GAAc,IACtBpqD,KAAKmW,cAAciQ,EAAM7L,EAAOva,KAAKyhD,eAAe2I,GAAawB,EAAWxB,KAEvF1J,EAAU/iD,UAAU0sD,4BAA8B,SAAU9vC,EAAO6vC,GAC/DpqD,KAAK+pD,cAAc,KAAMxvC,EAAOva,KAAKyhD,eAAe2I,GAAapqD,KAAK6hD,cAAcuI,IACpFpqD,KAAK+pD,cAAc,KAAMxvC,EAAOva,KAAKyhD,eAAe2I,GAAapqD,KAAK4hD,aAAawI,KAEvF1J,EAAU/iD,UAAUktD,kBAAoB,SAAUtwC,GAC9C,IAAIiL,EAAOxlB,KAAKklB,UAAUC,MAAM5K,GAAOiL,KAGvC,GAFIxlB,KAAK6rD,6BAA6BtxC,IAClCva,KAAK8rD,0BAA0BvxC,GAC9BiL,EAAKumC,UAAV,CAKA/rD,KAAKgsD,yBAAyBzxC,GAC1Bva,KAAK+gB,SAASkyB,mBAAqBtkB,EAAQ9D,kBAAkBohC,SAC7DjsD,KAAKksD,sBAAsB3xC,EAAOva,KAAK8hD,aAAavnC,IACxD,IAAI4xC,EAAoBnsD,KAAKosD,wBAAwB7xC,GAChDiL,EAAK4N,gBACFpzB,KAAK+gB,SAASkyB,mBAAqBtkB,EAAQ9D,kBAAkBqoB,QAC7DlzC,KAAKksD,sBAAsB3xC,EAAO4xC,GACtCnsD,KAAKqsD,0BAA0B9xC,EAAO4xC,IAEtCnsD,KAAK+gB,SAASoyB,gBACdnzC,KAAKssD,8BAA8B/xC,GACnCva,KAAKusD,gBAAgBhyC,IAErBva,KAAKklB,UAAUC,MAAM5K,GAAO8Y,UAC5BrzB,KAAKwsD,2BAA2BjyC,OAnBpC,CACI,IAAIkyC,EAAmBzsD,KAAKklB,UAAU+W,aAAa9W,MAAMvZ,QAAO,SAAUvP,GAAK,OAAOA,EAAEyrB,eAAiBtC,EAAK6B,YAAchrB,EAAE0rB,aAAevC,EAAK6B,cAClJrnB,KAAKoiD,wBAA0BpiD,KAAKoiD,wBAAwB7+C,OAAOkpD,KAmB3E/L,EAAU/iD,UAAUkuD,6BAA+B,SAAUtxC,GACzD,OAAOA,EAAQ,IAAM,GAAKva,KAAK+gB,SAASuyB,yBAA2BtzC,KAAKklB,UAAUC,MAAM5K,GAAO9E,SAASrV,OAAS,GAErHsgD,EAAU/iD,UAAU2uD,8BAAgC,SAAU/xC,GAC1D,IAAImyC,EAA8B1sD,KAAKu2C,qBAAqBhhB,mCAAmChb,GAC/Fva,KAAKmW,cAAcu2C,EAA6BnyC,EAAOva,KAAK2jB,SAAU3jB,KAAK+hD,mBAC3E/hD,KAAK+hD,kBAAkBxnC,GAAOnN,MAAMmD,QAAUvQ,KAAK25C,kBAAkBlJ,kBAAkBl2B,GAAS,GAAK,QAEzGmmC,EAAU/iD,UAAU4uD,gBAAkB,SAAUhyC,GAE5C,IADA,IAAIoyC,EAAY3sD,KAAKklB,UAAUC,MAAM5K,GAAOoyC,UAAUxnC,MAC7CnpB,EAAI,EAAGA,EAAI2wD,EAAUvsD,OAAQpE,IAClCgE,KAAK4sD,sBAAsBryC,EAAOoyC,EAAU3wD,KAEpD0kD,EAAU/iD,UAAUquD,yBAA2B,SAAUzxC,GACrD,IAAIsyC,EAAkB7sD,KAAKu2C,qBAAqBvjB,0BAA0BzY,GAC1Eva,KAAKmW,cAAc02C,EAAiBtyC,EAAOva,KAAK2jB,SAAU3jB,KAAK8hD,cAC/D9hD,KAAK8hD,aAAavnC,GAAOnN,MAAMmD,QAAUvQ,KAAK25C,kBAAkBlJ,kBAAkBl2B,GAAS,GAAK,QAEpGmmC,EAAU/iD,UAAUyuD,wBAA0B,SAAU7xC,GACpD,IAAIuyC,EAAkB9sD,KAAKu2C,qBAAqB9iB,mBAAmBlZ,EAAOva,KAAK+gB,SAASkyB,oBAAsBtkB,EAAQ9D,kBAAkBqoB,QACpI/uB,EAAcnkB,KAAKmW,cAAc22C,EAAiBvyC,EAAOva,KAAK8hD,aAAavnC,IAE/E,OADAva,KAAKkkD,gBAAgBhgC,mBAAmBC,GACjCA,GAEXu8B,EAAU/iD,UAAU0uD,0BAA4B,SAAU9xC,EAAOvF,GAC7D,IAAI+3C,EAAmB/sD,KAAKu2C,qBAAqBzhB,2BAA2Bva,GAC5Eva,KAAKmW,cAAc42C,EAAkBxyC,EAAOvF,IAEhD0rC,EAAU/iD,UAAUuuD,sBAAwB,SAAU3xC,EAAOvF,GACzD,IAAI8U,EACAsxB,EACA4R,EAAehtD,KAAKu2C,qBAAqBthB,uBAAuB1a,EAAOva,KAAK+gB,SAASkyB,mBAAqBtkB,EAAQ9D,kBAAkBqoB,QACpI+Z,EAAkBjtD,KAAKmW,cAAc62C,EAAczyC,EAAOvF,GAC1D0sB,EAAO1hC,KAAK25C,kBAAkBnJ,YAAYj2B,GACzCmnB,IACiD,QAAjD5X,EAAK9pB,KAAKo7C,EAAKsF,EAAUqI,0BAAuC,IAAPj/B,IAAsB9pB,KAAKo7C,GAAMp7C,KAAKgpD,kBAAkBiE,IAClHA,EAAgB7/C,MAAMS,OAAS7N,KAAK0gD,EAAUqI,oBAElDkE,EAAgB51C,UAAYqqB,GAEhCgf,EAAU/iD,UAAUivD,sBAAwB,SAAUryC,EAAOsnB,GACzD,IAAIqrB,EAAsBltD,KAAKu2C,qBAAqB/gB,6BAChDqM,EAAS7N,QACTk5B,EAAoB9/C,MAAM6mB,gBAAkB4N,EAAS7N,OACxCh0B,KAAKmW,cAAc+2C,EAAqB3yC,EAAOva,KAAK+hD,kBAAkBxnC,IAC5ElD,UAAYwqB,EAASH,MAEpCgf,EAAU/iD,UAAU6uD,2BAA6B,SAAUjyC,GACvD,IAAI4yC,EAAgBntD,KAAKu2C,qBAAqB9gB,wBAAwBlb,GAClEva,KAAK2kD,kBAAkByI,aAAeptD,KAAK+gB,SAASqyB,6BACpD+Z,EAAcx/C,KAAKE,SACvB7N,KAAKmW,cAAcg3C,EAAe5yC,EAAOva,KAAK2jB,SAAU3jB,KAAKgiD,oBAEjEtB,EAAU/iD,UAAUmuD,0BAA4B,SAAUvxC,GACtD,IAAI8yC,EAAYrtD,KAAKu2C,qBAAqB1gB,oBAAoBtb,GAC9Dva,KAAKmW,cAAck3C,EAAW9yC,EAAOva,KAAK2jB,SAAU3jB,KAAKiiD,gBAE7DvB,EAAU/iD,UAAUitD,kBAAoB,SAAUrwC,GAC9C,IAAIiL,EAAOxlB,KAAKklB,UAAUC,MAAM5K,GAAOiL,KACvCxlB,KAAKoiD,wBAA0BpiD,KAAKoiD,wBAAwBx2C,QAAO,SAAUvP,GAAK,OAAOA,EAAEyrB,eAAiBtC,EAAKC,IAAMppB,EAAE0rB,aAAevC,EAAKC,MAC7IzlB,KAAKkkD,gBAAgB5/B,mBAAmBtkB,KAAK8hD,aAAavnC,IAC1Dva,KAAK+pD,cAAc,KAAMxvC,EAAOva,KAAK2jB,SAAU3jB,KAAK8hD,cACpD9hD,KAAK+pD,cAAc,KAAMxvC,EAAOva,KAAK2jB,SAAU3jB,KAAK+hD,mBACpD/hD,KAAK+pD,cAAc,KAAMxvC,EAAOva,KAAK2jB,SAAU3jB,KAAKgiD,mBAChDhiD,KAAK6rD,6BAA6BtxC,IAClCva,KAAK+pD,cAAc,KAAMxvC,EAAOva,KAAK2jB,SAAU3jB,KAAKiiD,gBAE5DvB,EAAU/iD,UAAUusD,2BAA6B,SAAU9jC,GACvD,IAAIiW,EAAejW,EAAKkW,KAAK,iBAE7B,IADgBt8B,KAAKoiD,wBAAwB1M,MAAK,SAAUr5C,GAAK,OAAOA,EAAEopB,IAAM4W,KAKhF,OAFIr8B,KAAKumB,mBAAmB8xB,qBAAqBhc,KAC7CjW,EAAK/U,UAAY+U,EAAK/U,UAAY,WAC/BrR,KAAKmW,cAAciQ,EAAM,KAAMpmB,KAAK2jB,SAAU3jB,KAAKsiD,8BAE9D5B,EAAU/iD,UAAUssD,2BAA6B,SAAU7jC,GACvDpmB,KAAK+pD,cAAc3jC,EAAM,KAAMpmB,KAAK2jB,SAAU3jB,KAAKsiD,8BAEvD5B,EAAU/iD,UAAUksD,+BAAiC,SAAUzjC,GAC3D,OAAOpmB,KAAKmW,cAAciQ,EAAM,KAAMpmB,KAAK2jB,SAAU3jB,KAAKuiD,kCAE9D7B,EAAU/iD,UAAUisD,+BAAiC,SAAUxjC,GAC3DpmB,KAAK+pD,cAAc3jC,EAAM,KAAMpmB,KAAK2jB,SAAU3jB,KAAKuiD,kCAEvD7B,EAAU/iD,UAAUwY,cAAgB,SAAUiQ,EAAM7L,EAAOvF,EAAQ42C,GAC/D,IAAI5+C,EAAUqC,SAAS8G,cAAc,OAQrC,IAAK,IAAI7Y,KAPT8oB,EAAK+rB,gBAAgBnlC,GACrBgI,EAAOqB,YAAYrJ,GACf4+C,IACIA,aAAsBhsD,OAAmB,OAAV2a,EAC/BqxC,EAAWrxC,GAASvN,EAEpB4+C,EAAWxlC,EAAKX,IAAMzY,GACdoZ,EAAKkW,KACb7/B,OAAOkB,UAAUC,eAAe1B,KAAKkqB,EAAKkW,KAAMh/B,IAChD0P,EAAQ6E,aAAavU,EAAK8oB,EAAKkW,KAAKh/B,IAC5C,IAAK,IAAIA,KAAO8oB,EAAKhZ,MACb3Q,OAAOkB,UAAUC,eAAe1B,KAAKkqB,EAAKhZ,MAAO9P,KACjD0P,EAAQI,MAAM9P,GAAO8oB,EAAKhZ,MAAM9P,IACxC,OAAO0P,GAEX0zC,EAAU/iD,UAAUosD,cAAgB,SAAU3jC,EAAM7L,EAAOvF,EAAQ42C,GAC/D,IAAI5+C,EACA4+C,aAAsBhsD,OAAmB,OAAV2a,GAC/BvN,EAAU4+C,EAAWrxC,UACdqxC,EAAWrxC,KAGlBvN,EAAU4+C,EAAWxlC,EAAKX,WACnBmmC,EAAWxlC,EAAKX,KAEvBzY,GAAWA,EAAQkB,YAAc8G,GACjCA,EAAO9H,YAAYF,IAE3B0zC,EAAU/iD,UAAU2vD,sBAAwB,SAAUhX,EAAWO,GAC7D,IAAI0W,GAAe1W,EAAQrwC,UAAY8vC,EAAU9vC,WAAa,KAC9D,OAAI+mD,EAAc,KACP5+B,EAAQ5D,SAASgI,MACxBw6B,EAAc,IACP5+B,EAAQ5D,SAAS8H,OACxB06B,EAAc,IACP5+B,EAAQ5D,SAAS6H,MACxB26B,EAAc,GACP5+B,EAAQ5D,SAAS4H,KACxB46B,EAAc,EACP5+B,EAAQ5D,SAAS2H,SACxB66B,EAAc,EACP5+B,EAAQ5D,SAAS0H,MACrB9D,EAAQ5D,SAASyH,YAE5BkuB,EAAU/iD,UAAU6vD,mBAAqB,SAAUC,EAAUC,GACzD,IAAIloC,EAAOxlB,KAAK2tD,kBAAkBF,GAC9BjoC,GACAxlB,KAAKklB,UAAUsoC,mBAAmBhoC,EAAK6B,WAAYqmC,IAE3DhN,EAAU/iD,UAAUiwD,WAAa,SAAUnoC,GAAMzlB,KAAKklB,UAAUsoC,mBAAmB/nC,GAAI,IACvFi7B,EAAU/iD,UAAUkwD,aAAe,SAAUpoC,GAAMzlB,KAAKklB,UAAUsoC,mBAAmB/nC,GAAI,IACzFi7B,EAAU/iD,UAAUmwD,SAAW,SAAUroC,GAAMzlB,KAAKklB,UAAU6oC,qBAAqBtoC,GAAI,IACvFi7B,EAAU/iD,UAAUqwD,SAAW,SAAUvoC,GAAMzlB,KAAKklB,UAAU6oC,qBAAqBtoC,GAAI,IACvFi7B,EAAU/iD,UAAU8yC,kBAAoB,SAAUhrB,GAAM,OAAOzlB,KAAKklB,UAAUurB,kBAAkBhrB,IAChGi7B,EAAU/iD,UAAUswD,4BAA8B,WAAcjuD,KAAKkuD,aAAaluD,KAAKijD,wBACvFvC,EAAU/iD,UAAUwwD,gBAAkB,SAAU1oC,GAAM,OAAOzlB,KAAKklB,UAAUipC,gBAAgB1oC,IAC5Fi7B,EAAU/iD,UAAU+oD,YAAc,SAAUn3B,EAAU6+B,QAC1B,IAApBA,IAA8BA,GAAkB,QACpChrD,GAAZmsB,IACAA,EAAWvvB,KAAKstD,sBAAsBttD,KAAK8mD,UAAUjgD,MAAO7G,KAAK8mD,UAAUhgD,MAC3E9G,KAAK+gB,SAASwO,WAAaA,IAC3BvvB,KAAK+gB,SAASwO,SAAWA,EACzBvvB,KAAKwmD,sBACLxmD,KAAKymD,iBACD2H,GACApuD,KAAKukD,uBACLvkD,KAAKkmB,WAAWmoC,qBAChBruD,KAAKkmB,WAAWmoC,oBAAoB9+B,KAGhDmxB,EAAU/iD,UAAU2wD,qBAAuB,SAAUrb,GAC7CjzC,KAAK+gB,SAASkyB,oBAAsBA,IACpCjzC,KAAK+gB,SAASkyB,kBAAoBA,EAClCjzC,KAAKymD,mBAGb/F,EAAU/iD,UAAU4wD,iBAAmB,SAAUpb,GACzCnzC,KAAK+gB,SAASoyB,gBAAkBA,IAChCnzC,KAAK+gB,SAASoyB,cAAgBA,EAC9BnzC,KAAKymD,mBAGb/F,EAAU/iD,UAAU6wD,kBAAoB,SAAUhjB,GAC1CxrC,KAAK+gB,SAASyqB,iBAAmBA,IACjCxrC,KAAK+gB,SAASyqB,eAAiBA,EAC/BxrC,KAAKymD,mBAGb/F,EAAU/iD,UAAU4lD,0BAA4B,WAC5C,IACIz5B,EADA9e,EAAQhL,KAEZA,KAAK2mB,SAAS9Y,OAAS7N,KAAKkmB,WAAWuoC,eACvC,IAAIC,EAAY1uD,KAAKkmB,WAAWyoC,oBAChC3uD,KAAK8mD,UAAY,IAAI3gD,EAAY2E,UAAU9K,KAAKonD,sBAAsBsH,GAAY1uD,KAAKsnD,oBAAoBoH,SAC7EtrD,GAA1BpD,KAAK+gB,SAASwO,WACdvvB,KAAK+gB,SAASwO,SAAWvvB,KAAKstD,sBAAsBttD,KAAK8mD,UAAUjgD,MAAO7G,KAAK8mD,UAAUhgD,MAC7F9G,KAAKwmD,sBACLxmD,KAAKqpB,MAAQrpB,KAAK+kD,aAAa/kD,KAAK8mD,UAAUjgD,MAAO7G,KAAK8mD,UAAUhgD,KACpE9G,KAAK0+B,WAAa,IAAIwiB,EAAyB0N,uBAC/C,IAAIC,EAAuB7uD,KAAKkmB,WAAW4oC,0BACvCD,GACA7uD,KAAK0+B,WAAWqwB,eAAehrC,IAAI8qC,GACvC7uD,KAAKklB,UAAY,IAAI07B,EAAcoO,gBAAgBhvD,KAAM0uD,EAAW1uD,KAAKkmB,WAAW+oC,2BAA4BjvD,KAAKkmB,WAAWgpC,wBAAyBlvD,KAAKkmB,WAAWipC,kCAAmCnvD,KAAKqpB,MAAOrpB,KAAKkmB,WAAWkpC,yBACxOpvD,KAAK+f,iBAAmB,IAAI+gC,EAAmBuO,iBAAiBrvD,KAAKklB,UAAWllB,KAAK0+B,YAC7D,QAAvB5U,EAAK9pB,KAAKigB,eAA4B,IAAP6J,GAAyBA,EAAGtB,aAAa7S,SAAQ,SAAU3Z,GAAK,OAAOA,EAAEusB,oBAAoBvd,EAAM+U,sBAEvI2gC,EAAU/iD,UAAU8oD,eAAiB,WACjCzmD,KAAKykD,QACLzkD,KAAKqpB,MAAQrpB,KAAK+kD,aAAa/kD,KAAK8mD,UAAUjgD,MAAO7G,KAAK8mD,UAAUhgD,KACpE9G,KAAKklB,UAAUoqC,YAAYtvD,KAAKqpB,OAChCrpB,KAAKyjD,eACLzjD,KAAK4jD,uBACL5jD,KAAK0jD,qBACD92C,EAAUsC,QAAQC,IAClBnP,KAAKumB,mBAAmBkuB,iBAC5Bz0C,KAAKoiB,cAETs+B,EAAU/iD,UAAU4xD,YAAc,WAC9BvvD,KAAKkkD,gBAAgB3/B,eACrBvkB,KAAKumB,mBAAmBhC,eACxB5U,OAAOmU,oBAAoB,SAAU9jB,KAAKqkD,wBAC1CrkD,KAAKknD,yBACLlnD,KAAKykD,SAET/D,EAAU/iD,UAAU6xD,4BAA8B,WAC9C,IAAIhwB,EAAQx/B,KAAKkmB,WAAWyoC,oBACxBc,EAAUzvD,KAAKklB,UAAUwqC,0BAA0BlwB,GAGvD,OAFIiwB,GACAzvD,KAAKymD,iBACFgJ,GAEX/O,EAAU/iD,UAAUgyD,iBAAmB,SAAU9hD,GAC7C,GAAI7N,KAAK2mB,SAAS9Y,SAAWA,EAAQ,CACjC7N,KAAK2mB,SAAS9Y,OAASA,EACvB,IAAI6tC,EAAe17C,KAAK2kD,kBAAkB50C,WAC1C/P,KAAKymD,iBACLzmD,KAAK2kD,kBAAkB50C,WAAa2rC,IAG5CgF,EAAU/iD,UAAUiyD,WAAa,SAAUnqC,GACvCzlB,KAAKunC,iBAAiB,MACtBvnC,KAAKklB,UAAU2qC,mBAAmBpqC,GAAI,GACtCzlB,KAAKijD,sBAAwBx9B,EAC7BzlB,KAAK8vD,oBAETpP,EAAU/iD,UAAUuwD,aAAe,SAAUzoC,GACzCzlB,KAAKklB,UAAU2qC,mBAAmBpqC,GAAI,GACtCzlB,KAAK8vD,oBAETpP,EAAU/iD,UAAUoyD,eAAiB,SAAUtC,GAC3CztD,KAAKiuD,8BACL,IAAIzoC,EAAOxlB,KAAK2tD,kBAAkBF,GAC9BjoC,GACAxlB,KAAK4vD,WAAWpqC,EAAK6B,aAE7Bq5B,EAAU/iD,UAAU4pC,iBAAmB,SAAU9hB,GAC7CzlB,KAAKumB,mBAAmBghB,iBAAiB9hB,GACzCzlB,KAAKu2C,qBAAqB5lB,gCAC1B3wB,KAAKmpD,iCAETzI,EAAU/iD,UAAUqyD,qBAAuB,WACvC,OAAOhwD,KAAK2kD,mBAEhBjE,EAAU/iD,UAAUsyD,SAAW,SAAUjzD,GACrCgD,KAAKwjD,YAAYp2C,MAAMQ,MAAQ5Q,EAAQ,MAE3C0jD,EAAU/iD,UAAUuyD,UAAY,SAAUlzD,GACtCgD,KAAKwjD,YAAYp2C,MAAMS,OAAS7Q,EAAQ,MAE5C0jD,EAAU/iD,UAAUwyD,kBAAoB,SAAUnzD,GAC9CgD,KAAK+gB,SAAS2D,gBAAkB1nB,GAEpC0jD,EAAU/iD,UAAUyyD,mBAAqB,SAAUpzD,GAC/CgD,KAAK+gB,SAASC,QAAUhkB,EACxBgD,KAAK8vD,oBAETpP,EAAU/iD,UAAU0yD,sBAAwB,SAAUrzD,GAClDgD,KAAK+gB,SAASwyB,WAAav2C,GAE/B0jD,EAAU/iD,UAAU2yD,mBAAqB,SAAUtzD,GAC/CgD,KAAK+gB,SAASqyB,4BAA8Bp2C,EAC5CgD,KAAKioD,2BACLjoD,KAAKymD,kBAET/F,EAAU/iD,UAAU4yD,cAAgB,SAAU7yB,GAC1C19B,KAAK+gB,SAAS2c,WAAa5O,EAAWgkB,kBAAkB3oC,MAAMuzB,GAC9D19B,KAAKknD,yBACLlnD,KAAKwkD,8BACLxkD,KAAKinD,sBAETvG,EAAU/iD,UAAU6yD,WAAa,SAAUlzD,GACvC,IAAIkoB,EAAOxlB,KAAK2tD,kBAAkBrwD,EAAIuI,YAClC2f,GACAxlB,KAAK0lB,eAAe+qC,kBAAkBpwC,QAAQmF,EAAK6B,YAAY,GAAO,IAE9Eq5B,EAAU/iD,UAAU+yD,WAAa,SAAU3kB,GACvC,GAAIA,EAAM,CACN,IAAI2S,EAA4B,MAAjB3S,EAAK2S,SAAmB5+C,OAAOisC,EAAK2S,UAAY,KAC3DiS,EAAW3wD,KAAK2tD,kBAAkBjP,GAClCkS,EAAS5wD,KAAKklB,UAAU2rC,gBACxBhqD,EAA8B,kBAAfklC,EAAKllC,MAAqB,IAAIoB,KAAK8jC,EAAKllC,OAASklC,EAAKllC,MACrEC,EAA0B,kBAAbilC,EAAKjlC,IAAmB,IAAImB,KAAK8jC,EAAKjlC,KAAOilC,EAAKjlC,IAC/DgqD,EAAW,CACXpS,SAAUkS,GAAUlS,IAAakS,EAASlS,EAAwB,OAAbiS,QAAkC,IAAbA,OAAsB,EAASA,EAAStpC,WAClH8W,MAAO4N,EAAK5N,MACZt3B,MAAOA,EACPC,IAAKA,EACL0tB,SAAUzoB,SAASggC,EAAKvX,WAAa,EACrCR,MAAO+X,EAAK/X,OAEhB,GAAIh0B,KAAK0lB,eAAeqrC,kBAAkB1wC,QAAQywC,GAC9C,OAAO9wD,KAAKgxD,wBAEpB,MAAO,IAEXtQ,EAAU/iD,UAAUszD,WAAa,SAAU3zD,EAAKyuC,GAC5C,IAAIvmB,EAAOxlB,KAAK2tD,kBAAkBrwD,EAAIuI,YAClC2f,GAAQumB,GACR/rC,KAAK0lB,eAAewrC,kBAAkB7wC,QAAQmF,EAAK6B,WAAY0kB,IAEvE2U,EAAU/iD,UAAUwzD,YAAc,SAAU7zD,GACxC,IAAIkoB,EAAOxlB,KAAK2tD,kBAAkBrwD,EAAIuI,YACtC,GAAI2f,EACA,OAAOxlB,KAAKklB,UAAUksC,2BAA2B5rC,IAEzDk7B,EAAU/iD,UAAUyjC,iBAAmB,SAAU2K,GAC7C,GAAKA,EAAL,CAEA,IAAIjkB,EAAgBhoB,OAAOisC,EAAKjkB,eAC5B2U,EAAcz8B,KAAK2tD,kBAAkB7lC,GACrCC,EAAcjoB,OAAOisC,EAAKhkB,aAC1BspC,EAAYrxD,KAAK2tD,kBAAkB5lC,GACnChM,EAAOgwB,EAAKhwB,KACZ0gB,GAAe40B,GACfrxD,KAAK0lB,eAAe0yB,wBAAwB/3B,QAAQoc,EAAYpV,WAAYgqC,EAAUhqC,WAAYtL,KAE1G2kC,EAAU/iD,UAAU2zD,iBAAmB,SAAUh0D,GAC7C,IAAIi0D,EAAcvxD,KAAKklB,UAAUssC,2BAA2B,aAAcl0D,GACtE4I,EAASpB,UAAUysD,IACnBvxD,KAAK0lB,eAAe6yB,wBAAwBl4B,QAAQkxC,IAE5D7Q,EAAU/iD,UAAU8zD,kBAAoB,SAAUn0D,GAC9C,OAAO0C,KAAKklB,UAAUwsC,iCAAiCp0D,IAE3DojD,EAAU/iD,UAAUg0D,eAAiB,SAAU5lB,EAAM6lB,GACjD,IAAI5mD,EAAQhL,KACR+rC,GAMA/rC,KAAK0lB,eAAemsC,sBAAsBxxC,QAAQvgB,OAAOisC,EAAKrK,MAAOqK,EAAK/X,OAASl0B,OAAOisC,EAAK/X,QALhF,SAAUvO,GACrB,GAAIvf,EAASpB,UAAU8sD,GACnB,IAAK,IAAI51D,EAAI,EAAGA,EAAI41D,EAASxxD,OAAQpE,IACjCgP,EAAM8mD,qBAAqBrsC,EAAImsC,EAAS51D,QAK5D0kD,EAAU/iD,UAAUo0D,eAAiB,SAAUz0D,GAC3C,IAAIi0D,EAAcvxD,KAAKklB,UAAUssC,2BAA2B,WAAYl0D,GACpE4I,EAASpB,UAAUysD,IACnBvxD,KAAK0lB,eAAessC,sBAAsB3xC,QAAQkxC,IAE1D7Q,EAAU/iD,UAAUm0D,qBAAuB,SAAUG,EAAaC,GAC9D,IAAIC,EAAsBnyD,KAAKklB,UAAUssC,2BAA2B,WAAYS,GAC5EG,EAAkBpyD,KAAKklB,UAAUssC,2BAA2B,OAAQU,GACpEhsD,EAASpB,UAAUqtD,IAAwBjsD,EAASpB,UAAUstD,IAC9DpyD,KAAK0lB,eAAe2sC,sBAAsBhyC,QAAQ8xC,EAAqBC,IAE/E1R,EAAU/iD,UAAU20D,yBAA2B,SAAUL,EAAaC,GAClE,IAAIjwB,EAAajiC,KAAKklB,UAAUqtC,eAAeN,EAAaC,GACxDjwB,GACAjiC,KAAK0lB,eAAe8sC,wBAAwBnyC,QAAQ4hB,EAAW5a,aAEvEq5B,EAAU/iD,UAAU80D,gBAAkB,SAAUn1D,GAC5C,OAAO0C,KAAKklB,UAAUwtC,+BAA+Bp1D,IAEzDojD,EAAU/iD,UAAUg1D,0BAA4B,SAAUr1D,GACtD,OAAO0C,KAAKklB,UAAU0tC,yCAAyCt1D,IAEnEojD,EAAU/iD,UAAUk1D,iBAAmB,SAAUv1D,GAC7C,IAAIw1D,EAAQ9yD,KAAKklB,UACbM,EAAOstC,EAAM7oC,kBAAkB,OAAQ3sB,GAC3C,OAAOkoB,GAAQstC,EAAMC,qBAAqBvtC,GAAML,OAEpDu7B,EAAU/iD,UAAUq1D,mBAAqB,WAAc,OAAOhzD,KAAKklB,UAAU+tC,kBAAkBhoD,KAAI,SAAUhO,GAAK,OAAOA,EAAEwoB,OAC3Hi7B,EAAU/iD,UAAUu1D,yBAA2B,WAAc,OAAOlzD,KAAKklB,UAAUiuC,yBAAyBloD,KAAI,SAAU5O,GAAK,OAAOA,EAAEopB,OACxIi7B,EAAU/iD,UAAUy1D,uBAAyB,WAAc,OAAOpzD,KAAKklB,UAAUmuC,sBAAsBpoD,KAAI,SAAUpO,GAAK,OAAOA,EAAE4oB,OACnIi7B,EAAU/iD,UAAU21D,iCAAmC,WAAc,OAAOtzD,KAAKklB,UAAUquC,gCAAgCtoD,KAAI,SAAUxH,GAAK,OAAOA,EAAEgiB,OACvJi7B,EAAU/iD,UAAU61D,sBAAwB,WAAc,OAAOxzD,KAAKklB,UAAUsuC,yBAChF9S,EAAU/iD,UAAU81D,wBAA0B,SAAUjzC,GAASxgB,KAAKklB,UAAUuuC,wBAAwBjzC,IACxGkgC,EAAU/iD,UAAU+1D,aAAe,SAAUjuC,EAAIs5B,EAAWxf,GACxD,IAAIo0B,EAAU3zD,KAAK0lB,eACfF,EAAOxlB,KAAK2tD,kBAAkBloC,GAClC,GAAID,EAAM,CACN,GAAkB,UAAdu5B,EAAuB,CACvB,IAAI6U,EAAkBr0B,GAAsB,GAC5C,OAAOo0B,EAAQE,uBAAuBxzC,QAAQmF,EAAK6B,WAAYusC,GAEnE,GAAkB,aAAd7U,EAA0B,CAC1B,IAAI+U,EAAc9sD,KAAKsU,IAAIikB,EAAU,GAErC,OADAu0B,EAAc9sD,KAAK0D,IAAI60B,EAAU,KAC1Bo0B,EAAQxd,0BAA0B91B,QAAQmF,EAAK6B,WAAYysC,GAEtE,GAAkB,UAAd/U,EACA,OAAO4U,EAAQ5c,uBAAuB12B,QAAQmF,EAAK6B,WAAY2E,EAAgBjmB,cAAcY,WAAW44B,EAAU/Z,EAAK1e,MAC3H,GAAkB,QAAdi4C,EACA,OAAO4U,EAAQhd,qBAAqBt2B,QAAQmF,EAAK6B,WAAY2E,EAAgBjmB,cAAcW,WAAW64B,EAAU/Z,EAAK3e,QAE7H,OAAO,GAEX65C,EAAU/iD,UAAUqzD,sBAAwB,WACxC,IAAI+C,EAAkB/zD,KAAKigB,QAAQuI,aAAa5c,QAAO,SAAU5P,GAAK,OAAOA,aAAaulD,EAAkBnC,yBACxG4U,EAAWD,EAAgBA,EAAgB3zD,OAAS,GACxD,OAAO4zD,GAAYA,EAAShyB,QAEhC0e,EAAU/iD,UAAUs2D,wBAA0B,WAC1C,IAAIF,EAAkB/zD,KAAKigB,QAAQuI,aAAa5c,QAAO,SAAU5P,GAAK,OAAOA,aAAawlD,EAAsB/f,6BAC5GuyB,EAAWD,EAAgBA,EAAgB3zD,OAAS,GACxD,OAAO4zD,GAAYA,EAASnyB,UAEhC6e,EAAU/iD,UAAUgwD,kBAAoB,SAAUloC,GAC9C,OAAOzlB,KAAKklB,UAAUsa,MAAMvV,kBAAkBxE,IAElDi7B,EAAU/iD,UAAUu2D,YAAc,SAAUlyB,GACxC,IAAItZ,EAAO1oB,KAAKklB,UAAU4a,SAASkC,GAE/BznB,GADSmO,EAAK1T,QAAUhV,KAAKklB,UAAUivC,MACxB1+C,SAASlV,QAAQmoB,GAAQ,EAC5C,OAAOnO,GAAS,EAAImO,EAAK1T,OAAOS,SAAS8E,GAAOiL,KAAOkD,EAAK1T,OAAOwQ,MAEvEk7B,EAAU/iD,UAAUy2D,qCAAuC,SAAU/sC,EAAY5B,GAC7E,IAAIiD,EAAO1oB,KAAKklB,UAAU4a,SAASzY,GAC/B7B,EAAOkD,GAAQA,EAAKlD,KACpBA,IACAA,EAAKC,GAAKA,IAElBi7B,EAAU/iD,UAAU02D,sBAAwB,SAAUhtC,GAClD,IAAIqB,EAAO1oB,KAAKklB,UAAU4a,SAASzY,GAC/B7B,EAAOkD,GAAQA,EAAKlD,KACxB,OAAOA,EAAOA,EAAKC,GAAK,MAE5Bi7B,EAAU/iD,UAAU22D,kBAAoB,SAAUtyB,GAC9C,IAAItZ,EAAO1oB,KAAKklB,UAAU4a,SAASkC,GACnC,OAAOtZ,GAAQA,EAAKjT,SAASrV,OAAS,GAE1CsgD,EAAU/iD,UAAU42D,+BAAiC,WACjD,IAAIx0B,EAAQ//B,KAAKkmB,WACjB,OAAO6Z,EAAMy0B,mCAAqCz0B,EAAMy0B,qCAE5D9T,EAAU/iD,UAAU82D,4BAA8B,WAC1Cz0D,KAAKklB,UAAU0O,gBACf5zB,KAAK0+B,WAAWg2B,6BAA6B10D,KAAKklB,UAAUyvC,uBAEpEjU,EAAU/iD,UAAUi3D,2BAA6B,WAC7C,IAAI70B,EAAQ//B,KAAKkmB,WACjB,OAAO6Z,EAAM80B,gBAAkB90B,EAAM80B,kBAEzCnU,EAAU/iD,UAAUm3D,mBAAqB,WACrC,IAAI/0B,EAAQ//B,KAAKkmB,WACb6Z,EAAMg1B,eACNh1B,EAAMg1B,iBAEdrU,EAAU/iD,UAAU2mD,sBAAwB,WACpCtkD,KAAKmkD,qBAAqB6Q,mBAC1Bh1D,KAAKmkD,qBAAqB8Q,gCAE1Bj1D,KAAK80D,sBAEbpU,EAAU/iD,UAAUu3D,cAAgB,SAAUn0C,EAAUo0C,QAC1B,IAAtBA,IAAgCA,GAAoB,GACxD,IAAIC,EAAgBtmC,EAAWkkB,SAAS7oC,MAAM4W,GAC1Cs0C,EAAgBF,GAAqBn1D,KAAK+gB,SAASoG,MAAMiuC,GAC7Dp1D,KAAK+gB,SAAWq0C,EACXC,GACDr1D,KAAKymD,kBAEb/F,EAAU/iD,UAAUihC,2BAA6B,WAC7C,IAAI5zB,EAAQhL,KACRigB,EAAUjgB,KAAKigB,QACfq1C,EAAyBr1C,EAAQs1C,+BACrC,OAAO,WACHvqD,EAAM0zB,WAAW82B,OACjBv1C,EAAQw1C,kBAAkBH,GAC1BtqD,EAAM0zB,WAAWg3B,SACjB1qD,EAAM8kD,qBAGdpP,EAAU/iD,UAAUg4D,8BAAgC,SAAUniB,GAC1DxzC,KAAK+gB,SAASyyB,2BAA6BA,GAE/CkN,EAAU/iD,UAAUmyD,iBAAmB,WACnC9vD,KAAK4gB,WAAWC,iBAAiB,KAErC6/B,EAAU/iD,UAAUioB,YAAc,SAAUtoB,EAAKugB,GAC7C,OAAK7d,KAAKkmB,WAAWN,aAEd5lB,KAAKkmB,WAAWN,YAAYtoB,EAAKugB,IAE5C6iC,EAAU/iD,UAAU4nB,eAAiB,SAAUjoB,EAAKugB,GAChD,OAAK7d,KAAKkmB,WAAWX,gBAEdvlB,KAAKkmB,WAAWX,eAAejoB,EAAKugB,IAE/C6iC,EAAU/iD,UAAU8+C,cAAgB,SAAU10C,GAC1C,OAAO/H,KAAKkmB,WAAW0vC,qBAAuB51D,KAAKkmB,WAAW0vC,qBAAqB7tD,GAAQ/H,KAAK61D,qBAAqB9tD,IAEzH24C,EAAU/iD,UAAUk4D,qBAAuB,SAAU9tD,GACjD,OAAQ,IAAMA,EAAKU,WAAWmhB,OAAO,GAAK,KAAO,KAAO7hB,EAAKH,WAAa,IAAIgiB,OAAO,GAAK,IAAM7hB,EAAKJ,cAAgB,KAAO,IAAMI,EAAKiE,YAAY4d,OAAO,GAAK,KAAO,IAAM7hB,EAAKkE,cAAc2d,OAAO,IAE1M82B,EAAU/iD,UAAUq9C,gBAAkB,SAAU9kC,GAC5ClW,KAAKkmB,WAAW80B,gBAAkBh7C,KAAKkmB,WAAW80B,gBAAgB9kC,GAAaA,EAAUkB,UAAY,IAEzGspC,EAAUoV,aAAe,UACzBpV,EAAUmI,qBAAuBnI,EAAUoV,aAAe,oBAC1DpV,EAAUoI,sBAAwBpI,EAAUoV,aAAe,qBAC3DpV,EAAUqI,kBAAoBrI,EAAUoV,aAAe,iBAChDpV,EArgCM,GAugCjB5kD,EAAQ4kD,UAAYA,GAKb,SAAS3kD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQkzD,qBAAkB,EAC1B,IAAI+G,EAAuBn6D,EAAoB,IAC3Co6D,EAAmBp6D,EAAoB,IACvCq6D,EAAyBr6D,EAAoB,IAC7Cs6D,EAAiCt6D,EAAoB,IACrDu6D,EAAwBv6D,EAAoB,IAC5Cw6D,EAAkCx6D,EAAoB,IACtDy6D,EAA0Bz6D,EAAoB,IAC9CsK,EAAWtK,EAAoB,GAC/BizB,EAAejzB,EAAoB,IACnCyoC,EAAazoC,EAAoB,IACjC06D,EAAuB16D,EAAoB,IAC3CozD,EAAmB,WACnB,SAASA,EAAgBjvB,EAAOP,EAAOvD,EAAc0wB,EAAW4J,EAAaC,EAAWC,GACpFz2D,KAAK02D,YAAc,EACnB12D,KAAKw/C,uBAAwB,EAC7Bx/C,KAAK+/B,MAAQA,EACb//B,KAAKw/B,MAAQ,IAAIw2B,EAAiBW,eAClC32D,KAAKw/B,MAAMpV,iBAAiBoV,GAC5Bx/B,KAAKi8B,aAAe,IAAIg6B,EAAuBW,qBAC/C52D,KAAKi8B,aAAa7R,iBAAiB6R,GACnCj8B,KAAK2sD,UAAY,IAAIoJ,EAAqB5xB,mBAC1CnkC,KAAK2sD,UAAUviC,iBAAiBuiC,GAChC3sD,KAAKu2D,YAAc,IAAIL,EAA+BW,6BACtD72D,KAAKu2D,YAAYnsC,iBAAiBmsC,GAClCv2D,KAAK82D,UAAY,IAAIl3D,MACrBI,KAAK+2D,cAAgB,IAAIn3D,MACzBI,KAAKg3D,oBAAsB,IAAIX,EAAwBY,sBAAsBT,EAAWC,GACxFz2D,KAAKk3D,cA4XT,OA1XAlI,EAAgBrxD,UAAUu5D,YAAc,WACpCl3D,KAAK82D,UAAUntC,OAAO,EAAG3pB,KAAK82D,UAAU12D,QAExC,IADA,IAAIo/B,EAAQx/B,KAAKw/B,MAAMra,MACdnpB,EAAI,EAAGA,EAAIwjC,EAAMp/B,OAAQpE,IAAK,CACnC,IAAIwpB,EAAOga,EAAMxjC,GACbwpB,GACAxlB,KAAK82D,UAAU7zD,KAAK,IAAIkzD,EAAsBgB,oBAAoB3xC,EAAMxlB,KAAK+yD,qBAAqBvtC,KAE1GxlB,KAAKo3D,kBACLp3D,KAAKq3D,uBACDr3D,KAAK+/B,OAAS//B,KAAK+/B,MAAMkjB,uBACzBjjD,KAAK6vD,mBAAmB7vD,KAAK+/B,MAAMkjB,uBAAuB,IAElE+L,EAAgBrxD,UAAUy5D,gBAAkB,WACxC,IAAIpsD,EAAQhL,KACZA,KAAKm0D,KAAO,IAAIgC,EAAsBgB,oBAAoB,KAAM,MAUhE,IATA,IAAIG,EAAOt3D,KAAK82D,UACZS,EAAWD,EAAKjQ,QAAO,SAAUmQ,EAAU9uC,GAC3C,IAAIoB,EACAxsB,EAA2B,QAApBwsB,EAAKpB,EAAKlD,YAAyB,IAAPsE,OAAgB,EAASA,EAAGzC,WAGnE,OAFInhB,EAASpB,UAAUxH,KACnBk6D,EAASl6D,GAAOorB,GACb8uC,IACR,IACCC,EAA4Bz3D,KAAKu0D,+BAC5Bv4D,EAAI,EAAGA,EAAIs7D,EAAKl3D,OAAQpE,IAAK,CAClC,IAAI0sB,EAAO4uC,EAAKt7D,GAEZ07D,EAAaH,EADF7uC,EAAKlD,KAAKk5B,WACc1+C,KAAKm0D,KAC5CzrC,EAAK1T,OAAS0iD,EACdA,EAAWC,SAASjvC,GAChB+uC,GACAz3D,KAAK+/B,MAAM7f,qBAAqB03C,mBAAmBlvC,GAAM,SAAUqjB,GAC/D,GAAK7lC,EAASpB,UAAUinC,EAAKtmB,IAA7B,CAEA,IAAID,EAAOxa,EAAMw0B,MAAMtW,YAAY6iB,EAAKtmB,IACpCvf,EAASpB,UAAUinC,EAAKllC,SACxB2e,EAAK3e,MAAQklC,EAAKllC,OAClBX,EAASpB,UAAUinC,EAAKjlC,OACxB0e,EAAK1e,IAAMilC,EAAKjlC,KAChBZ,EAASpB,UAAUinC,EAAKvX,YACxBhP,EAAKgP,SAAWuX,EAAKvX,cAGjCijC,GACAz3D,KAAK+/B,MAAMrB,WAAWg2B,6BAA6B10D,KAAK20D,uBAEhE3F,EAAgBrxD,UAAUg3D,mBAAqB,WAC3C,IAAI3pD,EAAQhL,KACZ,OAAOA,KAAKw/B,MAAMra,MAAMla,KAAI,SAAUhO,GAAK,OAAO+N,EAAMomD,2BAA2Bn0D,OAEvF+xD,EAAgBrxD,UAAUyzD,2BAA6B,SAAU5rC,GAC7D,IAAI4gC,EAAa5gC,EAAKk5B,UAAY1+C,KAAKw/B,MAAMtW,YAAY1D,EAAKk5B,UAC1DkS,EAAS5wD,KAAK6wD,gBACdnS,EAAWkS,GAAUprC,EAAKk5B,WAAakS,EAASprC,EAAKk5B,SAA0B,OAAf0H,QAAsC,IAAfA,OAAwB,EAASA,EAAW3gC,GAevI,MAdiB,CACbA,GAAID,EAAKC,GACT5e,MAAO2e,EAAK3e,MACZC,IAAK0e,EAAK1e,IACV+wD,SAAUryC,EAAKqyC,SACf/4B,YAAatZ,EAAKsZ,YAClB4f,SAAUA,EACVlqB,SAAUhP,EAAKgP,SACfR,MAAOxO,EAAKwO,MACZ8jC,SAAUtyC,EAAKsyC,SACf35B,MAAO3Y,EAAK2Y,MACZ45B,aAAcvyC,EAAKuyC,aACnBrK,SAAUloC,EAAKkoC,WAIvBsB,EAAgBrxD,UAAU+zD,iCAAmC,SAAUp0D,GACnE,IAAIi/B,EAAaj/B,aAAeuxB,EAAapH,WAAanqB,EAAM0C,KAAKiqB,kBAAkB,aAAc3sB,GACrG,GAAIi/B,EAAY,CACZ,IAAIzU,EAAgB9nB,KAAK+lB,2BAA2B,OAAQwW,EAAWzU,eACnEC,EAAc/nB,KAAK+lB,2BAA2B,OAAQwW,EAAWxU,aACrE,MAAO,CACHtC,GAAI8W,EAAW9W,GACfqC,cAAe5hB,EAASpB,UAAUgjB,GAAiBA,EAAgByU,EAAWzU,cAC9EC,YAAa7hB,EAASpB,UAAUijB,GAAeA,EAAcwU,EAAWxU,YACxEhM,KAAMwgB,EAAWxgB,MAGzB,OAAO,MAEXizC,EAAgBrxD,UAAU+0D,+BAAiC,SAAUp1D,GACjE,IAAIukC,EAAWvkC,aAAe+mC,EAAWC,SAAWhnC,EAAM0C,KAAKiqB,kBAAkB,WAAY3sB,GAC7F,OAAIukC,EACO,CACHpc,GAAIoc,EAASpc,GACbic,KAAMG,EAASH,KACf1N,MAAO6N,EAAS7N,OAEjB,MAEXg7B,EAAgBrxD,UAAUi1D,yCAA2C,SAAUt1D,GAC3E,IAAI2kC,EAAa3kC,aAAeg5D,EAAqBltB,mBAAqB9rC,EAAM0C,KAAKiqB,kBAAkB,aAAc3sB,GACrH,GAAI2kC,EAAY,CACZ,IAAID,EAAShiC,KAAK+lB,2BAA2B,OAAQkc,EAAWD,QAC5DF,EAAa9hC,KAAK+lB,2BAA2B,WAAYkc,EAAWH,YACxE,MAAO,CACHrc,GAAIwc,EAAWxc,GACfuc,OAAQ97B,EAASpB,UAAUk9B,GAAUA,EAASC,EAAWD,OACzDF,WAAY57B,EAASpB,UAAUg9B,GAAcA,EAAaG,EAAWH,YAG7E,OAAO,MAEXktB,EAAgBrxD,UAAU05D,qBAAuB,WAC7Cr3D,KAAK+2D,cAAcptC,OAAO,EAAG3pB,KAAK+2D,cAAc32D,QAChDJ,KAAKg4D,qBAAqBh4D,KAAKm0D,MAC/Bn0D,KAAKi4D,iCAETjJ,EAAgBrxD,UAAUq6D,qBAAuB,SAAUtvC,GACvD,IAAI1d,EAAQhL,KACRk4D,EAASxvC,IAAS1oB,KAAKm0D,KACtBzrC,IAAUA,EAAKlD,MAAS0yC,KAExBA,IACDl4D,KAAK+2D,cAAc9zD,KAAKylB,GACxBA,EAAKyT,aAAen8B,KAAK+2D,cAAc32D,OAAS,IAEhDsoB,EAAKyvC,eAAiBzvC,IAAS1oB,KAAKm0D,OACpCzrC,EAAKjT,SAASE,SAAQ,SAAUnY,GAAK,OAAOwN,EAAMgtD,qBAAqBx6D,QAE/EwxD,EAAgBrxD,UAAUs6D,8BAAgC,WAEtD,IADA,IAAIX,EAAOt3D,KAAK+2D,cACP/6D,EAAI,EAAGA,EAAIs7D,EAAKl3D,OAAQpE,IAAK,CAClC,IAAI0sB,EAAO4uC,EAAKt7D,GACZo8D,EAAsBp4D,KAAKq4D,0BAA0B3vC,EAAKlD,MAC9DkD,EAAK4vC,gBAAgBF,KAG7BpJ,EAAgBrxD,UAAUo1D,qBAAuB,SAAUvtC,GACvD,IAAIxa,EAAQhL,KACRyJ,EAAM,IAAIssD,EAAqB5xB,mBAGnC,OAFkBnkC,KAAKu2D,YAAYpxC,MAAMvZ,QAAO,SAAU5O,GAAS,OAAOA,EAAMglC,QAAUxc,EAAK6B,cACnF1R,SAAQ,SAAUssB,GAAcx4B,EAAIsa,IAAI/Y,EAAM2hD,UAAUzjC,YAAY+Y,EAAWH,gBACpFr4B,GAEXulD,EAAgBrxD,UAAU06D,0BAA4B,SAAU7yC,GAI5D,IAHA,IAAI/b,EAAM,IAAI7J,MACV6lB,EAAKD,EAAK6B,WACV4U,EAAej8B,KAAKi8B,aAAa9W,MAAMvZ,QAAO,SAAU5O,GAAS,OAAOA,EAAM+qB,aAAetC,KACxFzpB,EAAI,EAAGA,EAAIigC,EAAa77B,OAAQpE,IAAK,CAC1C,IAAIugC,EAAaN,EAAajgC,GAC1B0sB,EAAO1oB,KAAK8/B,SAASvD,EAAWzU,eAChCY,GAAQA,EAAKgoB,cACbjnC,EAAIxG,KAAK,IAAImzD,EAAgCmC,8BAA8Bh8B,EAAWlV,WAAYqB,EAAM6T,EAAWxgB,OAE3H,OAAOtS,GAEXulD,EAAgBrxD,UAAU6vD,mBAAqB,SAAU/nC,EAAIioC,GACzD,IAAIloC,EAAOxlB,KAAKw/B,MAAMtW,YAAYppB,OAAO2lB,IACrCD,IACAA,EAAKkoC,SAAWA,EAChB1tD,KAAKyvD,YAGbT,EAAgBrxD,UAAUowD,qBAAuB,SAAUtoC,EAAIvE,GAC3D,IAAIwH,EAAO1oB,KAAK8/B,SAASra,GACrBiD,IACAA,EAAKxH,QAAUA,EACflhB,KAAKyvD,YAGbT,EAAgBrxD,UAAUkyD,mBAAqB,SAAUpqC,EAAI4N,GACzD,IAAI3K,EAAO1oB,KAAK82D,UAAUlrD,QAAO,SAAU5O,GAAS,OAAOA,EAAMwoB,MAAQxoB,EAAMwoB,KAAK6B,aAAe5B,KAAO,GAC1G,GAAIiD,EAAM,CACNA,EAAK2K,SAAWA,EAChB,IAAIwM,EAAW7/B,KAAK8/B,SAASra,GACzB+uB,EAAY3U,GAAYA,EAAS1D,aACjCqY,GAAa,GACbx0C,KAAK+/B,MAAMC,oBAAoBwU,KAG3Cwa,EAAgBrxD,UAAU66D,YAAc,WACpCx4D,KAAK02D,eAET1H,EAAgBrxD,UAAU86D,UAAY,WAClCz4D,KAAK02D,cACmB,GAApB12D,KAAK02D,aACL12D,KAAKyvD,WAEbT,EAAgBrxD,UAAU+6D,iBAAmB,SAAUC,GACnD,IAAIC,EAAW,IAAI5C,EAAiBW,eACpCiC,EAASxuC,iBAAiBuuC,GAC1B,IAAIE,EAAWD,EAASzzC,MACpB2zC,EAAW94D,KAAKw/B,MAAMra,MAC1B,GAAI0zC,EAASz4D,SAAW04D,EAAS14D,OAC7B,OAAO,EACX,IAAK,IAAIpE,EAAI,EAAGA,EAAI68D,EAASz4D,OAAQpE,IAAK,CACtC,IAAI+8D,EAAUF,EAAS78D,GACnBg9D,EAAUF,EAAS98D,GACvB,GAAI+8D,EAAQtzC,KAAOuzC,EAAQvzC,GACvB,OAAO,EAEf,OAAO,GAEXupC,EAAgBrxD,UAAU+xD,0BAA4B,SAAUlwB,GAC5D,IAAIiwB,GAAWzvD,KAAKw/C,wBAA0Bx/C,KAAK04D,iBAAiBl5B,GACpE,GAAIiwB,EAAS,CACT,IAAI/qB,EAAO1kC,KAAKi5D,sBAChBj5D,KAAKw/B,MAAMpV,iBAAiBoV,GAC5Bx/B,KAAKk5D,uBAAuBx0B,GAC5B1kC,KAAKk3D,cAET,OAAOzH,GAEXT,EAAgBrxD,UAAUs7D,oBAAsB,WAC5C,IAAIv0B,EAAO,GAEX,OADA1kC,KAAKw/B,MAAMra,MAAMla,KAAI,SAAUhO,GAAK,OAAOynC,EAAKznC,EAAEwoB,IAAMxoB,EAAEoqB,cACnDqd,GAEXsqB,EAAgBrxD,UAAUu7D,uBAAyB,SAAUx0B,GACzD,IAAK,IAAIjf,KAAMif,EACX,GAAKjoC,OAAOkB,UAAUC,eAAe1B,KAAKwoC,EAAMjf,GAAhD,CAEA,IAAID,EAAOxlB,KAAKw/B,MAAMvV,kBAAkBxE,GACpCD,IACAA,EAAK6B,WAAaqd,EAAKjf,MAGnCupC,EAAgBrxD,UAAU61D,sBAAwB,WAC9C,IAAIruC,EAAQnlB,KAAKw/B,MAAMra,MACnB3E,EAAQ,GAEZ,OADA2E,EAAMxP,SAAQ,SAAU1Y,GAAK,OAAOujB,EAAMvjB,EAAEwoB,IAAMxoB,EAAEywD,YAC7CltC,GAEXwuC,EAAgBrxD,UAAU81D,wBAA0B,SAAUjzC,GAC1D,GAAKA,EAAL,CAGA,IAAK,IAAIljB,KADT0C,KAAKw4D,cACWh4C,EACR/jB,OAAOkB,UAAUC,eAAe1B,KAAKskB,EAAOljB,IAC5C0C,KAAKwtD,mBAAmBlwD,EAAKkjB,EAAMljB,IAC3C0C,KAAKy4D,cAETzJ,EAAgBrxD,UAAU8xD,QAAU,WACP,IAArBzvD,KAAK02D,cAET12D,KAAKq3D,uBACDr3D,KAAK+/B,OAAS//B,KAAK+/B,MAAMgnB,sBACzB/mD,KAAK+/B,MAAMgnB,yBAEnBiI,EAAgBrxD,UAAUmiC,SAAW,SAAUkC,GAC3C,OAAOhiC,KAAK+2D,cAAcnrD,QAAO,SAAU5O,GAAS,OAAOA,EAAMwoB,MAAQxoB,EAAMwoB,KAAK6B,aAAe2a,KAAW,IAElHvlC,OAAOC,eAAesyD,EAAgBrxD,UAAW,QAAS,CACtDf,IAAK,WAAc,OAAOoD,KAAK+2D,eAC/Bp6D,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAesyD,EAAgBrxD,UAAW,YAAa,CAC1Df,IAAK,WAAc,OAAOoD,KAAKmlB,MAAM/kB,QACrCzD,YAAY,EACZqjB,cAAc,IAElBgvC,EAAgBrxD,UAAU8yC,kBAAoB,SAAUhrB,GACpD,IAAIiD,EAAO1oB,KAAK8/B,SAASra,GACzB,QAASiD,GAAQA,EAAKgoB,cAE1Bse,EAAgBrxD,UAAUwwD,gBAAkB,SAAU1oC,GAClD,IAAIiD,EAAO1oB,KAAK8/B,SAASra,GACzB,QAASiD,GAAQA,EAAK2K,UAE1B52B,OAAOC,eAAesyD,EAAgBrxD,UAAW,qBAAsB,CACnEf,IAAK,WAAc,OAAOoD,KAAKg3D,oBAAoB/kC,oBACnDt1B,YAAY,EACZqjB,cAAc,IAElBgvC,EAAgBrxD,UAAU2xD,YAAc,SAAUjmC,GAASrpB,KAAKg3D,oBAAoB1H,YAAYjmC,IAChG2lC,EAAgBrxD,UAAUk2B,uBAAyB,SAAUtZ,GAAS,OAAOva,KAAK+2D,cAAcx8C,GAAO9E,SAASrV,OAAS,GACzH4uD,EAAgBrxD,UAAUw7D,gBAAkB,SAAU1zC,GAClD,IAAIiD,EAAO1oB,KAAK8/B,SAASra,GACzB,OAAOiD,GAAQA,EAAKjT,SAASrV,OAAS,GAE1C3D,OAAOC,eAAesyD,EAAgBrxD,UAAW,iBAAkB,CAC/Df,IAAK,WACD,IAAImkB,EAAW/gB,KAAK+/B,OAAS//B,KAAK+/B,MAAMhf,SACxC,OAAOA,GAAYA,EAASwyB,YAAcxyB,EAASwyB,WAAWa,uBAElEz3C,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAesyD,EAAgBrxD,UAAW,uBAAwB,CACrEf,IAAK,WACD,IAAImkB,EAAW/gB,KAAK+/B,OAAS//B,KAAK+/B,MAAMhf,SACxC,OAAOA,GAAYA,EAASwyB,YAAcxyB,EAASwyB,WAAWc,sBAElE13C,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAesyD,EAAgBrxD,UAAW,iCAAkC,CAC/Ef,IAAK,WAAc,OAAOoD,KAAK4zB,gBAAkB5zB,KAAK+/B,MAAMw0B,kCAC5D53D,YAAY,EACZqjB,cAAc,IAElBgvC,EAAgBrxD,UAAUk3B,4BAA8B,SAAUpP,GAAM,OAAOzlB,KAAK4zB,gBAAkB5zB,KAAKm5D,gBAAgB1zC,IAC3HupC,EAAgBrxD,UAAUy7D,SAAW,WAAc,OAAOp5D,KAAKw/B,MAAMp/B,OAAS,GAC9E4uD,EAAgBrxD,UAAUihC,2BAA6B,WACnD,OAAO5+B,KAAK+/B,MAAMnB,4BAA8B5+B,KAAK+/B,MAAMnB,8BAE/DowB,EAAgBrxD,UAAU6zD,2BAA6B,SAAU6H,EAAUC,GACvE,IAAI5wC,EAAO1oB,KAAKiqB,kBAAkBovC,EAAUC,GAC5C,OAAO5wC,GAAQA,EAAKrB,YAExB2nC,EAAgBrxD,UAAUooB,2BAA6B,SAAUszC,EAAUhyC,GACvE,IAAIqB,EAAO1oB,KAAKu5D,oBAAoBF,EAAUhyC,GAC9C,OAAOqB,GAAQA,EAAKjD,IAExBupC,EAAgBrxD,UAAUssB,kBAAoB,SAAUovC,EAAUC,GAC9D,IAAIE,EAASF,EAAUzzD,WACvB,OAAQwzD,GACJ,IAAK,OACD,OAAOr5D,KAAKw/B,MAAMvV,kBAAkBuvC,GACxC,IAAK,aACD,OAAOx5D,KAAKi8B,aAAahS,kBAAkBuvC,GAC/C,IAAK,WACD,OAAOx5D,KAAK2sD,UAAU1iC,kBAAkBuvC,GAC5C,IAAK,aACD,OAAOx5D,KAAKu2D,YAAYtsC,kBAAkBuvC,GAElD,OAAO,MAEXxK,EAAgBrxD,UAAU47D,oBAAsB,SAAUF,EAAUhyC,GAChE,OAAQgyC,GACJ,IAAK,OACD,OAAOr5D,KAAKw/B,MAAMtW,YAAY7B,GAClC,IAAK,aACD,OAAOrnB,KAAKi8B,aAAa/S,YAAY7B,GACzC,IAAK,WACD,OAAOrnB,KAAK2sD,UAAUzjC,YAAY7B,GACtC,IAAK,aACD,OAAOrnB,KAAKu2D,YAAYrtC,YAAY7B,GAE5C,OAAO,MAEX2nC,EAAgBrxD,UAAU40D,eAAiB,SAAUN,EAAaC,GAC9D,IAAIC,EAAsBnyD,KAAKwxD,2BAA2B,WAAYS,GAClEG,EAAkBpyD,KAAKwxD,2BAA2B,OAAQU,GAC9D,OAAOlyD,KAAKu2D,YAAYpxC,MAAMvZ,QAAO,SAAUse,GAAO,OAAOA,EAAI4X,aAAeqwB,GAAuBjoC,EAAI8X,SAAWowB,KAAoB,IAE9IpD,EAAgBrxD,UAAUs1D,gBAAkB,WACxC,IAAIjoD,EAAQhL,KACZ,OAAOA,KAAKw/B,MAAMra,MAAMvZ,QAAO,SAAU3O,GAAK,OAAOA,GAAK+N,EAAMylC,kBAAkBxzC,EAAEoqB,aAAepqB,EAAE8uD,cAEzGiD,EAAgBrxD,UAAUw1D,uBAAyB,WAC/C,IAAIsG,EAAmBz5D,KAAKizD,kBAAkBhoD,KAAI,SAAUhO,GAAK,OAAOA,EAAEoqB,cAC1E,OAAOrnB,KAAKi8B,aAAa9W,MAAMvZ,QAAO,SAAUvP,GAAK,OAAOA,GAAKo9D,EAAiBl5D,QAAQlE,EAAE0rB,cAAgB,GAAK0xC,EAAiBl5D,QAAQlE,EAAEyrB,gBAAkB,MAElKknC,EAAgBrxD,UAAU41D,8BAAgC,WACtD,IAAIkG,EAAmBz5D,KAAKizD,kBAAkBhoD,KAAI,SAAUhO,GAAK,OAAOA,EAAEoqB,cAC1E,OAAOrnB,KAAKu2D,YAAYpxC,MAAMvZ,QAAO,SAAUnI,GAAK,OAAOA,GAAKg2D,EAAiBl5D,QAAQkD,EAAEu+B,SAAW,MAE1GgtB,EAAgBrxD,UAAU01D,oBAAsB,WAG5C,IAFA,IAAIqG,EAAmB,GACnBC,EAAqB35D,KAAKuzD,gCACrBv3D,EAAI,EAAGA,EAAI29D,EAAmBv5D,OAAQpE,IAAK,CAChD,IAAI6lC,EAAW7hC,KAAKu5D,oBAAoB,WAAYI,EAAmB39D,GAAG8lC,YACtED,IAAoD,IAAxC63B,EAAiBn5D,QAAQshC,IACrC63B,EAAiBz2D,KAAK4+B,GAE9B,OAAO63B,GAEX1K,EAAgBrxD,UAAUkzD,cAAgB,WACtC,IAAI/mC,EAEJ,OAD2B,QAA1BA,EAAK9pB,KAAK45D,kBAA+B,IAAP9vC,IAAsB9pB,KAAK45D,WAAa55D,KAAK65D,uBACzE75D,KAAK45D,YAEhB5K,EAAgBrxD,UAAUk8D,oBAAsB,WAC5C,IAAInxC,EAAO1oB,KAAKmlB,MAAM,GACtB,IAAKuD,EACD,OAAO,KACX,KAAOA,EAAK1T,QAAU0T,EAAKlD,MACvBkD,EAAOA,EAAK1T,OAChB,OAAO0T,EAAKjT,SAAS,GAAG+P,KAAKk5B,UAE1BsQ,EA5YY,GA8YvBlzD,EAAQkzD,gBAAkBA,GAKnB,SAASjzD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ6uB,oBAAiB,EACzB,IAAImvC,EAASl+D,EAAoB,IAC7B+uB,EAAkB,WAClB,SAASA,KAKT,OAHAA,EAAeC,UAAY,SAAUF,GACjC,OAAOovC,EAAOC,UAAUhO,QAAQrhC,GAAQ1S,KAAK7N,MAAMugB,GAAQ,MAExDC,EANW,GAQtB7uB,EAAQ6uB,eAAiBA,GAKlB,SAAS5uB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAI+8D,EAAa,WACb,SAASA,KAKT,OAHAA,EAAUhO,QAAU,SAAUrhC,GAC1B,OAAS,oCAAoC4b,KAAK5b,EAAKzY,QAAQ,mBAAoB,MAEhF8nD,EANM,GAQjBj+D,EAAQi+D,UAAYA,GAKb,SAASh+D,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAIg9D,EAAYp+D,EAAoB,IAChCq+D,EAAcr+D,EAAoB,IAClCmtC,EAAa,WACb,SAASA,KAubT,OArbAA,EAAUzf,OAAS,SAAUguC,EAAMtqD,GAC/B,IAAIuN,EAAQ+8C,EAAK/2D,QAAQyM,EAAS,GAC9BuN,GAAS,GACT+8C,EAAK3tC,OAAOpP,EAAO,IAE3BwuB,EAAUmxB,SAAW,SAAU5C,EAAM31B,GAEjC,IADA,IAAI0E,EAAMixB,EAAKl3D,OACNma,EAAQ,EAAGA,EAAQ8rB,EAAK9rB,IAC7B,GAAIonB,EAAS21B,EAAK/8C,GAAQA,GACtB,OAAO+8C,EAAK3tC,OAAOpP,EAAO,GAAG,GAErC,OAAO,MAEXwuB,EAAUoxB,YAAc,SAAU7C,GAC9B,OAAOA,EAAK1tC,SAEhBmf,EAAUqxB,SAAW,SAAU9C,GAC3B,OAAOvuB,EAAU99B,IAAIqsD,GAAM,SAAUptC,GAAO,OAAOA,EAAI/R,YAE3D4wB,EAAUsxB,YAAc,SAAUC,EAAaC,GAE3C,IADA,IAAIv4D,EAAS,GACNs4D,EAAc,EAAGA,IACpBt4D,EAAOiB,KAAKs3D,GAChB,OAAOv4D,GAEX+mC,EAAUC,eAAiB,SAAUsxB,EAAaE,GAE9C,IADA,IAAIx4D,EAAS,GACJuY,EAAQ,EAAGA,EAAQ+/C,EAAa//C,IACrCvY,EAAOiB,KAAKu3D,EAAajgD,IAC7B,OAAOvY,GAEX+mC,EAAU0xB,kBAAoB,SAAUvuC,EAAUyV,GAE9C,IADA,IAAI76B,EAAMolB,EAASplB,IACVyT,EAAQ2R,EAASrlB,MAAO0T,EAAQzT,EAAKyT,IAC1ConB,EAASpnB,IAEjBwuB,EAAU2xB,yBAA2B,SAAUxuC,EAAUyV,GAErD,IADA,IAAI96B,EAAQqlB,EAASrlB,MACZ0T,EAAQ2R,EAASplB,IAAM,EAAGyT,GAAS1T,EAAO0T,IAC/ConB,EAASpnB,IAEjBwuB,EAAU4xB,WAAa,SAAUrD,EAAM31B,EAAUi5B,EAAYC,QACtC,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAE3C,IADA,IAAI4B,EAAS,GACJuY,EAAQqgD,EAAYrgD,EAAQsgD,EAAUtgD,IAAS,CACpD,IAAIugD,EAAUn5B,EAAS21B,EAAK/8C,GAAQA,GACpB,OAAZugD,GACA94D,EAAOiB,KAAK63D,GAEpB,OAAO94D,GAEX+mC,EAAUn9B,OAAS,SAAU0rD,EAAM31B,EAAUi5B,EAAYC,QAClC,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAE3C,IADA,IAAI4B,EAAS,GACJuY,EAAQqgD,EAAYrgD,EAAQsgD,EAAUtgD,IAAS,CACpD,IAAImO,EAAO4uC,EAAK/8C,GACZonB,EAASjZ,EAAMnO,IACfvY,EAAOiB,KAAKylB,GAEpB,OAAO1mB,GAEX+mC,EAAU99B,IAAM,SAAUqsD,EAAM31B,EAAUi5B,EAAYC,QAC/B,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAE3C,IADA,IAAI4B,EAAS,GACJuY,EAAQqgD,EAAYrgD,EAAQsgD,EAAUtgD,IAC3CvY,EAAOiB,KAAK0+B,EAAS21B,EAAK/8C,GAAQA,IACtC,OAAOvY,GAEX+mC,EAAUgyB,QAAU,SAAUzD,EAAM31B,EAAUi5B,EAAYC,QACnC,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAC3C,IAAK,IAAI6oC,EAAM2xB,EAAY3xB,EAAM4xB,EAAU5xB,IACvC,GAAItH,EAAS21B,EAAKruB,GAAMA,GACpB,OAAOA,EAEf,OAAQ,GAEZF,EAAUiyB,eAAiB,SAAU1D,EAAM31B,EAAUi5B,EAAYC,QAC1C,IAAfD,IAAyBA,EAAatD,EAAKl3D,OAAS,QACvC,IAAby6D,IAAuBA,EAAW,GACtC,IAAK,IAAI5xB,EAAM2xB,EAAY3xB,GAAO4xB,EAAU5xB,IACxC,GAAItH,EAAS21B,EAAKruB,GAAMA,GACpB,OAAOA,EAEf,OAAQ,GAEZF,EAAUkyB,UAAY,SAAU3D,EAAM31B,EAAUi5B,EAAYC,QACrC,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAC3C,IAAI6oC,EAAMF,EAAUgyB,QAAQzD,EAAM31B,EAAUi5B,EAAYC,GACxD,OAAO5xB,EAAM,EAAI,KAAOquB,EAAKruB,IAEjCF,EAAUmyB,iBAAmB,SAAU5D,EAAM31B,EAAUi5B,EAAYC,QAC5C,IAAfD,IAAyBA,EAAatD,EAAKl3D,OAAS,QACvC,IAAby6D,IAAuBA,EAAW,GACtC,IAAI5xB,EAAMF,EAAUiyB,eAAe1D,EAAM31B,EAAUi5B,EAAYC,GAC/D,OAAO5xB,EAAM,EAAI,KAAOquB,EAAKruB,IAEjCF,EAAUoyB,KAAO,SAAU7D,GACvB,OAAOA,EAAKA,EAAKl3D,OAAS,IAE9B2oC,EAAUqyB,QAAU,SAAU9D,EAAM+D,GAChC,OAAO/D,EAAKA,EAAKl3D,OAAS,GAAKi7D,GAEnCtyB,EAAUuyB,QAAU,SAAUhE,GAC1B,QAASA,EAAKA,EAAKl3D,OAAS,IAEhC2oC,EAAUwyB,QAAU,SAAUjE,GAC1B,QAASA,EAAKA,EAAKl3D,OAAS,IAEhC2oC,EAAU3wB,OAAS,SAAU3U,EAAGhE,GAC5B,OAAOgE,EAAErD,SAAWX,EAAEW,QAAU2oC,EAAUyyB,OAAO/3D,EAAGhE,GAAG,SAAUgE,EAAGhE,GAAK,OAAOgE,EAAE2U,OAAO3Y,OAE7FspC,EAAU0yB,kBAAoB,SAAUh4D,EAAGhE,GACvC,IAAIi8D,EAAOj4D,EAAErD,OAEb,GAAIs7D,IADOj4D,EAAErD,OAET,OAAO,EACX,IAAK,IAAIpE,EAAI,EAAGA,EAAI0/D,EAAM1/D,IACtB,GAAIyH,EAAEzH,KAAOyD,EAAEzD,GACX,OAAO,EAEf,OAAO,GAEX+sC,EAAU4yB,OAAS,SAAUrE,EAAMsE,EAAKz0C,EAAO00C,QAC7B,IAAV10C,IAAoBA,EAAQy0C,QACZ,IAAhBC,IAA0BA,EAAc,cAC5C,IAAIx1B,EAAMixB,EAAKl3D,OACf,GAAY,IAARimC,EACA,MAAO,GAEX,IAAIy1B,GADJxE,EAAOA,EAAKyE,KAAKH,IACI,GACjB55D,EAAS+mC,EAAU4xB,WAAWrD,GAAM,SAAUx0D,GAC9C,OAA4B,IAAxBqkB,EAAM20C,EAAWh5D,IACjBg5D,EAAYh5D,EACLA,IAEX+4D,EAAY/4D,GACL,QACR,EAAGujC,GAEN,OADArkC,EAAO4lD,QAAQ0P,EAAK,IACbt1D,GAEX+mC,EAAUizB,aAAe,SAAU1E,GAC/BA,EAAOA,EAAKyE,KAAK9B,EAAYgC,UAAUC,QAEvC,IADA,IAAIJ,EAAYjhD,OAAOshD,IACdngE,EAAIs7D,EAAKl3D,OAAS,EAAGpE,GAAK,EAAGA,IAC9B8/D,IAAcxE,EAAKt7D,GACnBs7D,EAAK3tC,OAAO3tB,EAAG,GAEf8/D,EAAYxE,EAAKt7D,GAEzB,OAAOs7D,GAEXvuB,EAAUpzB,QAAU,SAAU2hD,EAAM31B,EAAUi5B,EAAYC,QACnC,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAC3C,IAAK,IAAIma,EAAQqgD,EAAYrgD,EAAQsgD,EAAUtgD,IAC3ConB,EAAS21B,EAAK/8C,GAAQA,IAE9BwuB,EAAUqzB,SAAW,SAAUC,EAAOC,EAAO36B,EAAUi5B,EAAYC,QAC5C,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWwB,EAAMj8D,QAC5C,IAAK,IAAIma,EAAQqgD,EAAYrgD,EAAQsgD,EAAUtgD,IAC3ConB,EAAS06B,EAAM9hD,GAAQ+hD,EAAM/hD,GAAQA,IAE7CwuB,EAAUwzB,eAAiB,SAAUjF,EAAM31B,EAAUi5B,EAAYC,QAC1C,IAAfD,IAAyBA,EAAatD,EAAKl3D,OAAS,QACvC,IAAby6D,IAAuBA,EAAW,GACtC,IAAK,IAAItgD,EAAQqgD,EAAYrgD,GAASsgD,EAAUtgD,IAC5ConB,EAAS21B,EAAK/8C,GAAQA,IAE9BwuB,EAAUyzB,eAAiB,SAAUlF,EAAMtqD,EAAS4tD,EAAYC,QACzC,IAAfD,IAAyBA,EAAatD,EAAKl3D,OAAS,QACvC,IAAby6D,IAAuBA,EAAW,GACtC,IAAK,IAAItgD,EAAQqgD,EAAYrgD,GAASsgD,EAAUtgD,IAC5C,GAAI+8C,EAAK/8C,KAAWvN,EAChB,OAAOuN,EAEf,OAAQ,GAEZwuB,EAAU0zB,WAAa,SAAUnF,EAAMoF,EAAc/6B,EAAUi5B,EAAYC,QACpD,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAE3C,IADA,IAAIu8D,EAAMD,EACDzzB,EAAM2xB,EAAY3xB,EAAM4xB,EAAU5xB,IACvC0zB,EAAMh7B,EAASg7B,EAAKrF,EAAKruB,GAAMA,GACnC,OAAO0zB,GAEX5zB,EAAU6zB,iBAAmB,SAAUtF,EAAM31B,EAAU+6B,EAAc9B,EAAYC,QACxD,IAAjB6B,IAA2BA,EAAe,QAC3B,IAAf9B,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAE3C,IADA,IAAIu8D,EAAMD,EACDzzB,EAAM2xB,EAAY3xB,EAAM4xB,EAAU5xB,IACvC0zB,GAAOh7B,EAAS21B,EAAKruB,GAAMA,EAAK0zB,GACpC,OAAOA,GAEX5zB,EAAU8zB,MAAQ,SAAUvF,EAAM31B,EAAUi5B,EAAYC,QACjC,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAC3C,IAAK,IAAIma,EAAQqgD,EAAYrgD,EAAQsgD,EAAUtgD,IAC3C,GAAIonB,EAAS21B,EAAK/8C,GAAQA,GACtB,OAAO,EAEf,OAAO,GAEXwuB,EAAU+zB,YAAc,SAAUxF,EAAM31B,EAAUi5B,EAAYC,QACvC,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAC3C,IAAK,IAAIma,EAAQqgD,EAAYrgD,EAAQsgD,EAAUtgD,IAAS,CACpD,IAAIwiD,EAAap7B,EAAS21B,EAAK/8C,GAAQA,GACvC,GAAIwiD,EACA,OAAOA,EAEf,OAAO,MAEXh0B,EAAUi0B,aAAe,SAAU1F,EAAM31B,EAAUi5B,EAAYC,QACxC,IAAfD,IAAyBA,EAAatD,EAAKl3D,OAAS,QACvC,IAAby6D,IAAuBA,EAAW,GACtC,IAAK,IAAItgD,EAAQqgD,EAAYrgD,GAASsgD,EAAUtgD,IAC5C,GAAIonB,EAAS21B,EAAK/8C,GAAQA,GACtB,OAAO,EAEf,OAAO,GAEXwuB,EAAUk0B,mBAAqB,SAAU3F,EAAM31B,EAAUi5B,EAAYC,QAC9C,IAAfD,IAAyBA,EAAatD,EAAKl3D,OAAS,QACvC,IAAby6D,IAAuBA,EAAW,GACtC,IAAK,IAAItgD,EAAQqgD,EAAYrgD,GAASsgD,EAAUtgD,IAAS,CACrD,IAAIwiD,EAAap7B,EAAS21B,EAAK/8C,GAAQA,GACvC,GAAIwiD,EACA,OAAOA,EAEf,OAAO,MAEXh0B,EAAUm0B,OAAS,SAAUb,EAAOC,EAAO36B,EAAUi5B,EAAYC,QAC1C,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWwB,EAAMj8D,QAC5C,IAAK,IAAIma,EAAQqgD,EAAYrgD,EAAQsgD,EAAUtgD,IAC3C,GAAIonB,EAAS06B,EAAM9hD,GAAQ+hD,EAAM/hD,GAAQA,GACrC,OAAO,EAEf,OAAO,GAEXwuB,EAAUo0B,MAAQ,SAAU7F,EAAM31B,EAAUi5B,EAAYC,QACjC,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAC3C,IAAK,IAAIma,EAAQqgD,EAAYrgD,EAAQsgD,EAAUtgD,IAC3C,IAAKonB,EAAS21B,EAAK/8C,GAAQA,GACvB,OAAO,EAEf,OAAO,GAEXwuB,EAAUyyB,OAAS,SAAUa,EAAOC,EAAO36B,EAAUi5B,EAAYC,QAC1C,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWwB,EAAMj8D,QAC5C,IAAK,IAAIma,EAAQqgD,EAAYrgD,EAAQsgD,EAAUtgD,IAC3C,IAAKonB,EAAS06B,EAAM9hD,GAAQ+hD,EAAM/hD,GAAQA,GACtC,OAAO,EAEf,OAAO,GAEXwuB,EAAUq0B,gBAAkB,SAAUlxC,EAAUyV,GAE5C,IADA,IAAIk5B,EAAW3uC,EAASplB,IACfyT,EAAQ2R,EAASrlB,MAAO0T,EAAQsgD,EAAUtgD,IAC/C,IAAKonB,EAASpnB,GACV,OAAO,EAEf,OAAO,GAEXwuB,EAAUs0B,cAAgB,SAAUC,EAAYC,GAC5C,IAAK,IAAIvhE,EAAI,EAAG4Z,OAAO,EAAQA,EAAO2nD,EAAUvhE,GAAIA,IAChDshE,EAAWr6D,KAAK2S,GACpB,OAAO0nD,GAEXv0B,EAAUy0B,UAAY,SAAU1kD,GAE5B,IADA,IAAI2kD,EAAQ,GACHl9C,EAAK,EAAGA,EAAKpgB,UAAUC,OAAQmgB,IACpCk9C,EAAMl9C,EAAK,GAAKpgB,UAAUogB,GAE9B,OAAOwoB,EAAU0zB,WAAWgB,EAAO,IAAI,SAAUC,EAASpG,GAEtD,OADAvuB,EAAUs0B,cAAcK,EAAS5kD,EAAUw+C,IACpCoG,MAGf30B,EAAU9lC,KAAO,SAAUq0D,EAAMtqD,GAE7B,OADAsqD,EAAKr0D,KAAK+J,GACHsqD,GAEXvuB,EAAU40B,QAAU,SAAUrG,EAAM31B,GAChC,OAAOoH,EAAU6zB,iBAAiBtF,GAAM,SAAU1hD,EAAMqzB,GAAO,OAAOtH,EAAS/rB,EAAMqzB,GAAO,EAAI,MAEpGF,EAAUvf,MAAQ,SAAU8tC,GACxBA,EAAK3tC,OAAO,IAEhBof,EAAU60B,MAAQ,SAAUtG,EAAMsE,EAAKiC,EAAaD,EAAOhD,EAAYC,GAInE,QAHmB,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAC3Ck3D,EAAOA,EAAK1tC,MAAMgxC,EAAYC,GAC1BA,EAAWD,EAAa,EACxB,OAAOtD,EAIX,IAFA,IAAIwG,GADJxG,EAAOA,EAAKyE,KAAKH,IACEhB,GACf54D,EAAS,CAAC87D,GACL70B,EAAM2xB,EAAa,EAAG3xB,EAAM4xB,EAAU5xB,IAAO,CAClD,IAAI/jC,EAAMoyD,EAAKruB,GACX40B,EAAYC,EAAS54D,GACrB04D,EAAME,EAAS54D,IAEf44D,EAAU54D,EACVlD,EAAOiB,KAAK66D,IAGpB,OAAO97D,GAEX+mC,EAAUr+B,IAAM,SAAU4sD,EAAMyG,EAAUnD,EAAYC,QAC/B,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAC3C,IAAIqJ,EAAMs/B,EAAUi1B,YAAY1G,EAAMyG,EAAUnD,EAAYC,GAC5D,OAAOpxD,EAAMA,EAAIw0D,WAAa,MAElCl1B,EAAUztB,IAAM,SAAUg8C,EAAMyG,EAAUnD,EAAYC,QAC/B,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAC3C,IAAIqJ,EAAMs/B,EAAUm1B,YAAY5G,EAAMyG,EAAUnD,EAAYC,GAC5D,OAAOpxD,EAAMA,EAAI00D,WAAa,MAElCp1B,EAAUq1B,OAAS,SAAU9G,EAAMyG,EAAUnD,EAAYC,QAClC,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QAC3C,IAAIqJ,EAAMs/B,EAAUs1B,eAAe/G,EAAMyG,EAAUnD,EAAYC,GAC/D,OAAOpxD,EAAM,IAAIuwD,EAAUsE,OAAO70D,EAAIw0D,WAAYx0D,EAAI00D,YAAc,MAExEp1B,EAAUi1B,YAAc,SAAU1G,EAAMyG,EAAUnD,EAAYC,GAG1D,QAFmB,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QACvB,IAAhBk3D,EAAKl3D,OACL,OAAO,KAGX,IAFA,IAAI69D,EAAa3G,EAAKsD,GAClB2D,EAAWR,EAASE,GACf1jD,EAAQqgD,EAAa,EAAGrgD,EAAQsgD,EAAUtgD,IAAS,CACxD,IAAI3E,EAAO0hD,EAAK/8C,GACZikD,EAAYT,EAASnoD,GACrB4oD,EAAYD,IACZA,EAAWC,EACXP,EAAaroD,GAGrB,OAAO,IAAIokD,EAAUyE,YAAYR,EAAYM,IAEjDx1B,EAAUm1B,YAAc,SAAU5G,EAAMyG,EAAUnD,EAAYC,GAG1D,QAFmB,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QACvB,IAAhBk3D,EAAKl3D,OACL,OAAO,KAGX,IAFA,IAAI+9D,EAAa7G,EAAKsD,GAClB8D,EAAWX,EAASI,GACf5jD,EAAQqgD,EAAa,EAAGrgD,EAAQsgD,EAAUtgD,IAAS,CACxD,IAAI3E,EAAO0hD,EAAK/8C,GACZikD,EAAYT,EAASnoD,GACrB4oD,EAAYE,IACZA,EAAWF,EACXL,EAAavoD,GAGrB,OAAO,IAAIokD,EAAU2E,YAAYR,EAAYO,IAEjD31B,EAAUs1B,eAAiB,SAAU/G,EAAMyG,EAAUnD,EAAYC,GAG7D,QAFmB,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QACvB,IAAhBk3D,EAAKl3D,OACL,OAAO,KAKX,IAJA,IAAI69D,EAAa3G,EAAKsD,GAClBuD,EAAaF,EACbM,EAAWR,EAASE,GACpBS,EAAWH,EACNhkD,EAAQqgD,EAAa,EAAGrgD,EAAQsgD,EAAUtgD,IAAS,CACxD,IAAI3E,EAAO0hD,EAAK/8C,GACZikD,EAAYT,EAASnoD,GACrB4oD,EAAYD,GACZA,EAAWC,EACXP,EAAaroD,GAER4oD,EAAYE,IACjBA,EAAWF,EACXL,EAAavoD,GAGrB,OAAO,IAAIokD,EAAU4E,eAAeX,EAAYM,EAAUJ,EAAYO,IAE1E31B,EAAU81B,SAAW,SAAUvH,EAAMsE,EAAKhB,EAAYC,GAGlD,QAFmB,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QACvB,IAAhBk3D,EAAKl3D,OACL,OAAO,KAEX,IADA,IAAI0+D,EAAQxH,EAAKsD,GACRrgD,EAAQqgD,EAAa,EAAGrgD,EAAQsgD,EAAUtgD,IAAS,CACxD,IAAI3E,EAAO0hD,EAAK/8C,GACZqhD,EAAIhmD,EAAMkpD,GAAS,IACnBA,EAAQlpD,GAEhB,OAAOkpD,GAEX/1B,EAAUg2B,SAAW,SAAUzH,EAAMsE,EAAKhB,EAAYC,GAGlD,QAFmB,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QACvB,IAAhBk3D,EAAKl3D,OACL,OAAO,KAEX,IADA,IAAI0+D,EAAQxH,EAAKsD,GACRrgD,EAAQqgD,EAAa,EAAGrgD,EAAQsgD,EAAUtgD,IAAS,CACxD,IAAI3E,EAAO0hD,EAAK/8C,GACZqhD,EAAIhmD,EAAMkpD,GAAS,IACnBA,EAAQlpD,GAEhB,OAAOkpD,GAEX/1B,EAAUi2B,YAAc,SAAU1H,EAAMsE,EAAKhB,EAAYC,GAGrD,QAFmB,IAAfD,IAAyBA,EAAa,QACzB,IAAbC,IAAuBA,EAAWvD,EAAKl3D,QACvB,IAAhBk3D,EAAKl3D,OACL,OAAO,KAGX,IAFA,IAAIsK,EAAM4sD,EAAKsD,GACXt/C,EAAM5Q,EACD6P,EAAQqgD,EAAa,EAAGrgD,EAAQsgD,EAAUtgD,IAAS,CACxD,IAAI3E,EAAO0hD,EAAK/8C,GACZ9Q,EAAMmyD,EAAIhmD,EAAMlL,GAChBjB,EAAM,EACN6R,EAAM1F,EACDnM,EAAM,IACXiB,EAAMkL,GAEd,OAAO,IAAIokD,EAAUsE,OAAO5zD,EAAK4Q,IAE9BytB,EAxbM,GA0bjBjtC,EAAQitC,UAAYA,GAKb,SAAShtC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAI2qB,EAAU/rB,EAAoB,IAC9B0iE,EACA,SAAgBL,EAAYE,GACxBn+D,KAAKi+D,WAAaA,EAClBj+D,KAAKm+D,WAAaA,GAI1BriE,EAAQwiE,OAASA,EACjB,IAAIW,EAAgB,SAAUp3C,GAE1B,SAASo3C,IACL,OAAkB,OAAXp3C,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAUihE,EAAcp3C,GAIhCprB,OAAOC,eAAeuiE,EAAathE,UAAW,SAAU,CACpDf,IAAK,WACD,OAAOoD,KAAKm+D,WAAan+D,KAAKi+D,YAElCthE,YAAY,EACZqjB,cAAc,IAEXi/C,EAZS,CAalBX,GACFxiE,EAAQmjE,aAAeA,EACvB,IAAIR,EACA,SAAqBR,EAAYM,GAC7Bv+D,KAAKi+D,WAAaA,EAClBj+D,KAAKu+D,SAAWA,GAIxBziE,EAAQ2iE,YAAcA,EACtB,IAAIE,EACA,SAAqBR,EAAYO,GAC7B1+D,KAAKm+D,WAAaA,EAClBn+D,KAAK0+D,SAAWA,GAIxB5iE,EAAQ6iE,YAAcA,EACtB,IAAIC,EAAkB,SAAU/2C,GAE5B,SAAS+2C,EAAeX,EAAYM,EAAUJ,EAAYO,GACtD,IAAI1zD,EAAQ6c,EAAO3rB,KAAK8D,KAAMi+D,EAAYE,IAAen+D,KAGzD,OAFAgL,EAAMuzD,SAAWA,EACjBvzD,EAAM0zD,SAAWA,EACV1zD,EAEX,OAPA2c,EAAQ3pB,UAAU4gE,EAAgB/2C,GAO3B+2C,EARW,CASpBN,GACFxiE,EAAQ8iE,eAAiBA,GAKlB,SAAS7iE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAIi/D,EAAa,WACb,SAASA,KAaT,OAXAA,EAAUC,OAAS,SAAUz4D,EAAGhE,GAC5B,OAAOgE,EAAIhE,GAEfw8D,EAAUiD,OAAS,SAAUz7D,EAAGhE,GAC5B,OAASgE,IAAMhE,EAAK,EAAMgE,EAAIhE,EAAK,GAAK,GAE5Cw8D,EAAUkD,iBAAmB,SAAU17D,EAAGhE,GAGtC,OAFAgE,EAAIA,EAAEkW,kBACNla,EAAIA,EAAEka,eACc,EAAMlW,EAAIhE,EAAK,GAAK,GAErCw8D,EAdM,GAgBjBngE,EAAQmgE,UAAYA,EACpB,IAAImD,EAAU,WACV,SAASA,KAQT,OANAA,EAAOC,WAAa,SAAU57D,EAAGhE,GAC7B,OAAOgE,IAAMhE,GAEjB2/D,EAAO3hE,OAAS,SAAUgG,EAAGhE,GACzB,OAAOgE,GAAKhE,IAAMgE,IAAMhE,GAAKgE,EAAE2U,OAAO3Y,KAEnC2/D,EATG,GAWdtjE,EAAQsjE,OAASA,GAKV,SAASrjE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ66D,oBAAiB,EACzB,IAAIhvC,EAAU/rB,EAAoB,GAC9B0jE,EAAS1jE,EAAoB,IAE7B+6D,EAAkB,SAAU9uC,GAE5B,SAAS8uC,IACL,OAAkB,OAAX9uC,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAG/D,OALA2nB,EAAQ3pB,UAAU24D,EAAgB9uC,GAIlC8uC,EAAeh5D,UAAU4sB,WAAa,WAAc,OAAO,IAAI+0C,EAAOC,MAC/D5I,EANW,CADC/6D,EAAoB,IAQxBktB,gBACnBhtB,EAAQ66D,eAAiBA,GAKlB,SAAS56D,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQyjE,KAAOzjE,EAAQ0jE,cAAW,EAClC,IAAI73C,EAAU/rB,EAAoB,GAC9BsK,EAAWtK,EAAoB,GAC/BgsB,EAAehsB,EAAoB,KAEvC,SAAW4jE,GACPA,EAASA,EAAkB,QAAI,GAAK,UACpCA,EAASA,EAAkB,QAAI,GAAK,UACpCA,EAASA,EAAoB,UAAI,GAAK,YAH1C,CAIc1jE,EAAQ0jE,WAAa1jE,EAAQ0jE,SAAW,KACtD,IAAID,EAAQ,SAAU13C,GAElB,SAAS03C,IACL,IAAIv0D,EAAQ6c,EAAO3rB,KAAK8D,OAASA,KAajC,OAZAgL,EAAMnE,MAAQ,KACdmE,EAAMlE,IAAM,KACZkE,EAAM6sD,SAAW,KACjB7sD,EAAM8zB,YAAc,GACpB9zB,EAAM0zC,SAAW,KACjB1zC,EAAMmzB,MAAQ,GACdnzB,EAAM+0B,MAAQ,KACd/0B,EAAMwpB,SAAW,EACjBxpB,EAAM8sD,SAAW,KACjB9sD,EAAM+sD,aAAe,GACrB/sD,EAAM0iD,UAAW,EACjB1iD,EAAMgpB,MAAQ,GACPhpB,EAuCX,OAtDA2c,EAAQ3pB,UAAUuhE,EAAM13C,GAiBxB03C,EAAK5hE,UAAU4pB,iBAAmB,SAAUC,GACpCthB,EAASpB,UAAU0iB,KACnBK,EAAOlqB,UAAU4pB,iBAAiBrrB,KAAK8D,KAAMwnB,GAC7CxnB,KAAK+/B,MAAQvY,EAAUuY,MACvB//B,KAAK0+C,SAAWx4C,EAASpB,UAAU0iB,EAAUk3B,UAAY5+C,OAAO0nB,EAAUk3B,UAAY,KACtF1+C,KAAK8+B,YAActX,EAAUsX,YAC7B9+B,KAAKm+B,MAAQ3W,EAAU2W,MACvBn+B,KAAK6G,MAAmC,kBAApB2gB,EAAU3gB,MAAqB,IAAIoB,KAAKuf,EAAU3gB,OAAS2gB,EAAU3gB,OAAS,IAAIoB,KAAK,GAC3GjI,KAAK8G,IAA+B,kBAAlB0gB,EAAU1gB,IAAmB,IAAImB,KAAKuf,EAAU1gB,KAAO0gB,EAAU1gB,KAAO,IAAImB,KAAK,GACnGjI,KAAK63D,SAAWrwC,EAAUqwC,SAC1B73D,KAAKw0B,SAAWhN,EAAUgN,SAC1Bx0B,KAAK83D,SAAWtwC,EAAUswC,SACtB5xD,EAASpB,UAAU0iB,EAAUkmC,YAC7B1tD,KAAK0tD,WAAalmC,EAAUkmC,UAC5BxnD,EAASpB,UAAU0iB,EAAUwM,SAC7Bh0B,KAAKg0B,MAAQxM,EAAUwM,OAC3Bh0B,KAAKy/D,mBAAmBj4C,EAAUuwC,gBAG1CwH,EAAK5hE,UAAU8hE,mBAAqB,SAAUj4C,GAC1C,GAAKA,EAEL,IAAK,IAAI9pB,KAAY8pB,EACZ/qB,OAAOkB,UAAUC,eAAe1B,KAAKsrB,EAAW9pB,KAErDsC,KAAK+3D,aAAar6D,GAAY8pB,EAAU9pB,KAGhD6hE,EAAK5hE,UAAUy1B,YAAc,WACzB,OAAOpzB,KAAK6G,MAAML,YAAcxG,KAAK8G,IAAIN,WAE7C+4D,EAAK5hE,UAAU+hE,YAAc,WACzB,OAAO1/D,KAAK8G,IAAIN,UAAYxG,KAAK6G,MAAML,WAE3C+4D,EAAK5hE,UAAUouD,QAAU,WACrB,QAAS/rD,KAAK6G,MAAML,aAAexG,KAAK8G,IAAIN,WAEzC+4D,EAvDC,CAwDV33C,EAAaR,YACftrB,EAAQyjE,KAAOA,GAKR,SAASxjE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ86D,0BAAuB,EAC/B,IAAIjvC,EAAU/rB,EAAoB,GAC9BwoC,EAAmBxoC,EAAoB,IACvCizB,EAAejzB,EAAoB,IACnCg7D,EAAwB,SAAU/uC,GAElC,SAAS+uC,IACL,OAAkB,OAAX/uC,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAG/D,OALA2nB,EAAQ3pB,UAAU44D,EAAsB/uC,GAIxC+uC,EAAqBj5D,UAAU4sB,WAAa,WAAc,OAAO,IAAIsE,EAAapH,YAC3EmvC,EANiB,CAO1BxyB,EAAiBtb,gBACnBhtB,EAAQ86D,qBAAuBA,GAKxB,SAAS76D,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ+6D,kCAA+B,EACvC,IAAIlvC,EAAU/rB,EAAoB,GAC9BwoC,EAAmBxoC,EAAoB,IACvC06D,EAAuB16D,EAAoB,IAC3Ci7D,EAAgC,SAAUhvC,GAE1C,SAASgvC,IACL,OAAkB,OAAXhvC,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAG/D,OALA2nB,EAAQ3pB,UAAU64D,EAA8BhvC,GAIhDgvC,EAA6Bl5D,UAAU4sB,WAAa,WAAc,OAAO,IAAI+rC,EAAqBltB,oBAC3FytB,EANyB,CAOlCzyB,EAAiBtb,gBACnBhtB,EAAQ+6D,6BAA+BA,GAKhC,SAAS96D,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQq7D,yBAAsB,EAC9B,IAAIjxD,EAAWtK,EAAoB,GAC/Bu7D,EAAuB,WACvB,SAASA,EAAoB3xC,EAAMmnC,GAC/B3sD,KAAKi8B,aAAe,IAAIr8B,MACxBI,KAAKgV,OAAS,KACdhV,KAAKkhB,SAAU,EACflhB,KAAKqzB,UAAW,EAChBrzB,KAAKm8B,cAAgB,EACrBn8B,KAAKwlB,KAAOA,EACZxlB,KAAK2sD,UAAYA,EACjB3sD,KAAKyV,SAAW,IAAI7V,MA4CxB,OA1CAnD,OAAOC,eAAey6D,EAAoBx5D,UAAW,eAAgB,CACjEf,IAAK,WACD,IAAI8kC,EAAO,GAEX,OADA1hC,KAAK2sD,UAAUxnC,MAAMxP,SAAQ,SAAU9Y,GAAK,OAAO6kC,GAAQ7kC,EAAE6kC,KAAO,OAC7DA,GAEX/kC,YAAY,EACZqjB,cAAc,IAElBm3C,EAAoBx5D,UAAUg6D,SAAW,SAAUrhD,GAC3CpQ,EAASpB,UAAUwR,IAAUtW,KAAKyV,SAASlV,QAAQ+V,GAAS,GAC5DtW,KAAKyV,SAASxS,KAAKqT,IAE3B6gD,EAAoBx5D,UAAUuP,YAAc,SAAUoJ,GAClD,IAAIiE,EAAQva,KAAKyV,SAASlV,QAAQ+V,GAC9BiE,GAAS,GACTva,KAAKyV,SAASkU,OAAOpP,EAAO,IAEpC48C,EAAoBx5D,UAAUw6D,YAAc,WACxC,QAASn4D,KAAKwlB,MAAQxlB,KAAKwlB,KAAKkoC,UAEpCyJ,EAAoBx5D,UAAU+yC,WAAa,WACvC,IAAK1wC,KAAKkhB,QACN,OAAO,EAEX,IADA,IAAIw2C,EAAa13D,KAAKgV,OACf0iD,GAAY,CACf,IAAKA,EAAWx2C,QACZ,OAAO,EACXw2C,EAAaA,EAAW1iD,OAE5B,OAAO,GAEXmiD,EAAoBx5D,UAAUgiE,iBAAmB,SAAUz+C,GACvDlhB,KAAKkhB,QAAUA,GAEnBi2C,EAAoBx5D,UAAUiiE,gBAAkB,SAAUvsC,GACtDrzB,KAAKqzB,SAAWA,GAEpB8jC,EAAoBx5D,UAAU26D,gBAAkB,SAAUr8B,GAClDA,IACAj8B,KAAKi8B,aAAeA,EAAarS,UAElCutC,EArDgB,GAuD3Br7D,EAAQq7D,oBAAsBA,GAKvB,SAASp7D,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQy8D,mCAAgC,EACxC,IAAIA,EACA,SAAuC9yC,EAAIgX,EAAa1gB,GACpD/b,KAAKylB,GAAKA,EACVzlB,KAAKy8B,YAAcA,EACnBz8B,KAAK+b,KAAOA,GAIpBjgB,EAAQy8D,8BAAgCA,GAKjC,SAASx8D,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQm7D,2BAAwB,EAChC,IAAI4I,EAAkCjkE,EAAoB,IACtDkkE,EAAuBlkE,EAAoB,IAC3CowB,EAAkBpwB,EAAoB,GACtCq7D,EAAyB,WACzB,SAASA,EAAsB5tC,EAAO02C,GAClC//D,KAAKggE,cAAgB,IAAIH,EAAgCI,yBACzDjgE,KAAKkgE,aAAe,IAAItgE,MACxBI,KAAKmgE,kBAAoB92C,EACzBrpB,KAAKggE,cAAc51C,iBAAiB21C,GA2ExC,OAzEA9I,EAAsBt5D,UAAUyiE,qBAAuB,WACnD,GAAKpgE,KAAKmgE,kBAAV,CAEAngE,KAAKqgE,YAEL,IADA,IAAIN,EAAQ//D,KAAKggE,cAAc76C,MACtBnpB,EAAI,EAAGA,EAAI+jE,EAAM3/D,OAAQpE,IAC9BgE,KAAKsgE,YAAYP,EAAM/jE,IAC3BgE,KAAKugE,aAETtJ,EAAsBt5D,UAAU2iE,YAAc,SAAUE,GAcpD,IAbA,IAAI9yC,EAAS8yC,EAAKh2B,WAAWjd,gBAAgBvtB,KAAKmgE,kBAAkBt5D,MAAO7G,KAAKmgE,kBAAkBr5D,KAC9Fg4C,EAAU,SAAU9iD,GACpB,IAAIqR,EAAQqgB,EAAO1xB,GACfykE,EAASz0C,EAAgBjmB,cAAc+B,aAAauF,GACpDqzD,EAAU1hB,EAAOkhB,aAAat0D,QAAO,SAAU5P,GAAK,OAAOA,EAAEuO,WAAak2D,KAAW,GACrFC,GACAA,EAAQC,UAAYD,EAAQC,WAAaH,EAAKG,UAC9CD,EAAQE,oBAAoBJ,EAAKK,iBAGjC7hB,EAAOkhB,aAAaj9D,KAAK,IAAI68D,EAAqBgB,mBAAmBL,EAAQD,EAAKG,UAAWH,EAAKK,kBAEtG7hB,EAASh/C,KACJhE,EAAI,EAAGA,EAAI0xB,EAAOttB,OAAQpE,IAC/B8iD,EAAQ9iD,IAGhBi7D,EAAsBt5D,UAAU4iE,SAAW,WACvCvgE,KAAKkgE,aAAanE,MAAK,SAAUgF,EAAIC,GAAM,OAAOD,EAAGx2D,UAAYy2D,EAAGz2D,cAExE0sD,EAAsBt5D,UAAU0iE,UAAY,WACxCrgE,KAAKkgE,aAAav2C,OAAO,EAAG3pB,KAAKkgE,aAAa9/D,SAElD62D,EAAsBt5D,UAAUsjE,6BAA+B,WAC3D,IAAIj2D,EAAQhL,KACRyJ,EAAM,IAAI7J,MAId,OAHgC,GAA5BI,KAAKkgE,aAAa9/D,QAClBJ,KAAKogE,uBACTpgE,KAAKkgE,aAAavqD,SAAQ,SAAUtZ,GAAK,OAAOoN,EAAMA,EAAIlG,OAAOyH,EAAMk2D,2BAA2B7kE,OAC3F2D,KAAKmhE,oBAAoB13D,IAEpCwtD,EAAsBt5D,UAAUwjE,oBAAsB,SAAU7J,GAE5D,IADA,IAAI7tD,EAAM,IAAI7J,MACL5D,EAAI,EAAGA,EAAIs7D,EAAKl3D,OAAQpE,IAAK,CAClC,IAAIkwB,EAAWorC,EAAKt7D,GACSyN,EAAIrJ,OAAS,GAAK4rB,EAAgBjmB,cAAcM,aAAaoD,EAAIA,EAAIrJ,OAAS,GAAG0G,IAAKolB,EAASrlB,OAAS,EAEjI4C,EAAIA,EAAIrJ,OAAS,GAAG0G,IAAMolB,EAASplB,IAEnC2C,EAAIxG,KAAKipB,GAEjB,OAAOziB,GAEXwtD,EAAsBt5D,UAAUujE,2BAA6B,SAAU14D,GACnE,OAAOA,EAAIypB,mBAAmBhnB,KAAI,SAAUjP,GAAK,OAAOgwB,EAAgBjmB,cAAcsE,4BAA4BrO,EAAGwM,EAAI+B,eAE7H9N,OAAOC,eAAeu6D,EAAsBt5D,UAAW,qBAAsB,CACzEf,IAAK,WAGD,OAFKoD,KAAKohE,sBACNphE,KAAKohE,oBAAsBphE,KAAKihE,gCAC7BjhE,KAAKohE,oBAAoBx3C,SAEpCjtB,YAAY,EACZqjB,cAAc,IAElBi3C,EAAsBt5D,UAAU2xD,YAAc,SAAUjmC,GACpDrpB,KAAKmgE,kBAAoB92C,EACzBrpB,KAAKqhE,cAETpK,EAAsBt5D,UAAU0jE,WAAa,WACzCrhE,KAAKohE,oBAAsB,KAC3BphE,KAAKqgE,aAEFpJ,EAhFkB,GAkF7Bn7D,EAAQm7D,sBAAwBA,GAKzB,SAASl7D,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQmkE,8BAA2B,EACnC,IAAIt4C,EAAU/rB,EAAoB,GAC9BwoC,EAAmBxoC,EAAoB,IACvC0lE,EAAoB1lE,EAAoB,IACxCqkE,EAA4B,SAAUp4C,GAEtC,SAASo4C,IACL,OAAkB,OAAXp4C,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAG/D,OALA2nB,EAAQ3pB,UAAUiiE,EAA0Bp4C,GAI5Co4C,EAAyBtiE,UAAU4sB,WAAa,WAAc,OAAO,IAAI+2C,EAAkBC,iBACpFtB,EANqB,CAO9B77B,EAAiBtb,gBACnBhtB,EAAQmkE,yBAA2BA,GAK5B,SAASlkE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQylE,qBAAkB,EAC1B,IAAI55C,EAAU/rB,EAAoB,GAC9BgsB,EAAehsB,EAAoB,IACnCsK,EAAWtK,EAAoB,GAC/BowB,EAAkBpwB,EAAoB,GACtCqwB,EAAsBrwB,EAAoB,IAC1CkuC,EAAUluC,EAAoB,IAC9B2lE,EAAmB,SAAU15C,GAE7B,SAAS05C,EAAgB/2B,EAAYm2B,EAAWE,QACzB,IAAfr2B,IAAyBA,EAAa,WACxB,IAAdm2B,IAAwBA,GAAY,QACjB,IAAnBE,IAA6BA,EAAiB,MAClD,IAAI71D,EAAQ6c,EAAO3rB,KAAK8D,OAASA,KAOjC,OANAgL,EAAM21D,WAAY,EAClB31D,EAAM61D,eAAiB,IAAIjhE,MAC3BoL,EAAMw/B,WAAaA,EACnBx/B,EAAM21D,UAAYA,EACdE,GACA71D,EAAM61D,eAAet9D,OAAOs9D,GACzB71D,EAeX,OA3BA2c,EAAQ3pB,UAAUujE,EAAiB15C,GAcnC05C,EAAgB5jE,UAAU4pB,iBAAmB,SAAUC,GACnD,GAAIthB,EAASpB,UAAU0iB,GAAY,CAC/BK,EAAOlqB,UAAU4pB,iBAAiBrrB,KAAK8D,KAAMwnB,GAC7CxnB,KAAKwqC,WAAave,EAAoBa,kBAAkBod,uBAAuB1iB,EAAUg6C,iBAAmB,IAAI13B,EAAQK,MACpHjkC,EAASpB,UAAU0iB,EAAUgjB,aAC7BxqC,KAAKwqC,WAAWjjB,iBAAiBC,EAAUgjB,YAC3CtkC,EAASpB,UAAU0iB,EAAUm5C,aAC7B3gE,KAAK2gE,YAAcn5C,EAAUm5C,WACjC,IAAIc,EAASz1C,EAAgBjmB,cAAcgF,oBAAoByc,EAAUq5C,gBACrEY,IACAzhE,KAAK6gE,eAAiBY,KAG3BF,EA5BY,CA6BrB35C,EAAaR,YACftrB,EAAQylE,gBAAkBA,GAKnB,SAASxlE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQkxB,eAAY,EAEpB,SAAWA,GACPA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAqB,UAAI,GAAK,YACxCA,EAAUA,EAAoB,SAAI,GAAK,WACvCA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAoB,SAAI,GAAK,WAP3C,CAQelxB,EAAQkxB,YAAclxB,EAAQkxB,UAAY,MAKlD,SAASjxB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQuxB,WAAQ,EAEhB,SAAWA,GACPA,EAAMA,EAAe,QAAI,GAAK,UAC9BA,EAAMA,EAAgB,SAAI,GAAK,WAC/BA,EAAMA,EAAa,MAAI,GAAK,QAC5BA,EAAMA,EAAa,MAAI,GAAK,QAC5BA,EAAMA,EAAW,IAAI,GAAK,MAC1BA,EAAMA,EAAY,KAAI,GAAK,OAC3BA,EAAMA,EAAY,KAAI,GAAK,OAC3BA,EAAMA,EAAc,OAAI,GAAK,SAC7BA,EAAMA,EAAiB,UAAI,GAAK,YAChCA,EAAMA,EAAe,QAAI,GAAK,UAC9BA,EAAMA,EAAgB,SAAI,IAAM,WAChCA,EAAMA,EAAgB,SAAI,IAAM,WAZpC,CAaWvxB,EAAQuxB,QAAUvxB,EAAQuxB,MAAQ,MAKtC,SAAStxB,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQsuC,YAAS,EACjB,IAAIziB,EAAU/rB,EAAoB,GAC9B6uC,EAAmB7uC,EAAoB,IACvCowB,EAAkBpwB,EAAoB,GACtCwuC,EAAU,SAAUviB,GAEpB,SAASuiB,IACL,OAAkB,OAAXviB,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAmC/D,OArCA2nB,EAAQ3pB,UAAUosC,EAAQviB,GAI1BuiB,EAAOzsC,UAAUowB,UAAY,SAAUhmB,GACnC,OAAOikB,EAAgBjmB,cAAc2C,eAAe1I,KAAK6sB,kBAAmB9kB,IAEhFqiC,EAAOzsC,UAAUswB,cAAgB,SAAUlmB,GACvC,OAAOikB,EAAgBjmB,cAAcqB,gBAAgBpH,KAAK6G,MAAOkB,GAAQ/H,KAAKksB,UAAY,GAE9Fke,EAAOzsC,UAAUuwB,yBAA2B,SAAUnmB,GAClD,IAAI25D,EAAiB11C,EAAgBjmB,cAAcqB,gBAAgBpH,KAAK6G,MAAOkB,GAC3E45D,EAAgB36D,KAAKO,MAAMm6D,EAAiB1hE,KAAKksB,WACrCw1C,EAAiB1hE,KAAKksB,SACH,GAAKnkB,EAAKP,UAAYxH,KAAK6sB,oBAE1D80C,IACJ,IAAIC,EAAaD,EAAgB3hE,KAAKksB,SACtC,OAAOlsB,KAAK6hE,2BAA2B7hE,KAAK6G,MAAO+6D,IAEvDx3B,EAAOzsC,UAAUwwB,sBAAwB,SAAUpmB,GAC/C,IAAIhB,EAAO/G,KAAK6sB,kBAAoB9kB,EAAKP,SACzC,OAAIT,EAAO,EACAilB,EAAgBjmB,cAAcsC,QAAQ,IAAIJ,KAAKF,GAAOhB,GAC1D/G,KAAK6hE,2BAA2B95D,EAAM,IAEjDqiC,EAAOzsC,UAAUkkE,2BAA6B,SAAU95D,EAAM+5D,QACxC,IAAdA,IAAwBA,EAAY,GACxC,IAAIp3B,EAAwB,EAAZo3B,EAAgB9hE,KAAK6sB,kBAAoB9kB,EAAKP,SAC9D,OAAOwkB,EAAgBjmB,cAAcsC,QAAQ,IAAIJ,KAAKF,GAAO2iC,IAEjEjuC,OAAOC,eAAe0tC,EAAOzsC,UAAW,YAAa,CACjDf,IAAK,WAAc,OAAOoD,KAAK6sB,mBAC/BjoB,IAAK,SAAU5H,GAASgD,KAAK6sB,kBAAoB7vB,GACjDL,YAAY,EACZqjB,cAAc,IAEXoqB,EAtCG,CAuCZK,EAAiB5e,gBACnB/vB,EAAQsuC,OAASA,GAKV,SAASruC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQuuC,aAAU,EAClB,IAAI1iB,EAAU/rB,EAAoB,GAC9B6uC,EAAmB7uC,EAAoB,IACvCowB,EAAkBpwB,EAAoB,GACtCmmE,EAAcnmE,EAAoB,IAClCyuC,EAAW,SAAUxiB,GAErB,SAASwiB,IACL,OAAkB,OAAXxiB,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KA0D/D,OA5DA2nB,EAAQ3pB,UAAUqsC,EAASxiB,GAI3BwiB,EAAQ1sC,UAAUowB,UAAY,SAAUhmB,GACpC,OAAI/H,KAAK4sB,sBACEZ,EAAgBjmB,cAAcgD,gCAAgChB,EAAM/H,KAAK6sB,kBAAmB7sB,KAAKmtB,6BACrGnB,EAAgBjmB,cAAcwC,gBAAgBvI,KAAKitB,YAAallB,IAE3EsiC,EAAQ1sC,UAAUswB,cAAgB,SAAUlmB,GACxC,OAAOikB,EAAgBjmB,cAAc0B,oBAAoBzH,KAAK6G,MAAOkB,GAAQ/H,KAAKksB,UAAY,GAElGme,EAAQ1sC,UAAUuwB,yBAA2B,SAAUnmB,GACnD,IAAIlB,EAAQ7G,KAAK6G,MACbiyB,EAAiB9M,EAAgBjmB,cAAc0B,oBAAoBZ,EAAOkB,GAC1Ei6D,EAAah7D,KAAKO,MAAMuxB,EAAiB94B,KAAKksB,UAAYlsB,KAAKksB,SAC/D9F,EAAO,IAAI27C,EAAYE,UAAUp7D,EAAMe,WAAYf,EAAMc,eAC7Dye,EAAK87C,UAAUF,GACf,IAAI30D,EAAQrN,KAAKouB,kBAAkBhI,EAAKtd,KAAMsd,EAAKxd,OAKnD,OAJIojB,EAAgBjmB,cAAcM,aAAagH,EAAOtF,IAAS,IAC3Dqe,EAAK87C,UAAUliE,KAAKksB,UACpB7e,EAAQrN,KAAKouB,kBAAkBhI,EAAKtd,KAAMsd,EAAKxd,QAE5CyE,GAEXg9B,EAAQ1sC,UAAUwwB,sBAAwB,SAAUpmB,GAChD,IAAIa,EAAQb,EAAKH,WACbkB,EAAOf,EAAKJ,cACZ0F,EAAQrN,KAAKouB,kBAAkBtlB,EAAMF,GACzC,GAAIojB,EAAgBjmB,cAAcM,aAAagH,EAAOtF,IAAS,EAAG,CAC9D,IAAIqe,EAAO,IAAI27C,EAAYE,UAAUr5D,EAAOE,GAC5Csd,EAAK87C,UAAU,GACf70D,EAAQrN,KAAKouB,kBAAkBhI,EAAKtd,KAAMsd,EAAKxd,OAEnD,OAAOyE,GAEX5Q,OAAOC,eAAe2tC,EAAQ1sC,UAAW,MAAO,CAC5Cf,IAAK,WAAc,OAAOoD,KAAKitB,aAC/BroB,IAAK,SAAU5H,GAASgD,KAAKitB,YAAcjwB,GAC3CL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe2tC,EAAQ1sC,UAAW,YAAa,CAClDf,IAAK,WAAc,OAAOoD,KAAK6sB,mBAC/BjoB,IAAK,SAAU5H,GAASgD,KAAK6sB,kBAAoB7vB,GACjDL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe2tC,EAAQ1sC,UAAW,sBAAuB,CAC5Df,IAAK,WAAc,OAAOoD,KAAKmtB,6BAC/BvoB,IAAK,SAAU5H,GAASgD,KAAKmtB,4BAA8BnwB,GAC3DL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe2tC,EAAQ1sC,UAAW,uBAAwB,CAC7Df,IAAK,WAAc,OAAOoD,KAAK4sB,uBAC/BhoB,IAAK,SAAU5H,GAASgD,KAAK4sB,sBAAwB5vB,GACrDL,YAAY,EACZqjB,cAAc,IAEXqqB,EA7DI,CA8DbI,EAAiB5e,gBACnB/vB,EAAQuuC,QAAUA,GAKX,SAAStuC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQmmE,eAAY,EACpB,IAAIj2C,EAAkBpwB,EAAoB,GACtCqmE,EAAa,WACb,SAASA,EAAUr5D,EAAOE,GACtB9I,KAAK4I,MAAQA,EACb5I,KAAK8I,KAAOA,EAUhB,OARAm5D,EAAUtkE,UAAUukE,UAAY,SAAUC,GACtC,IAAIC,EAAYp2C,EAAgBjmB,cAAc+D,aAAa9J,KAAK4I,MAAOu5D,GACnEE,EAAUr7D,KAAKO,MAAM46D,EAAS,IAC9BC,EAAYpiE,KAAK4I,SACfy5D,EACNriE,KAAK4I,MAAQw5D,EACbpiE,KAAK8I,MAAQu5D,GAEVJ,EAbM,GAejBnmE,EAAQmmE,UAAYA,GAKb,SAASlmE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQwuC,YAAS,EACjB,IAAI3iB,EAAU/rB,EAAoB,GAC9B6uC,EAAmB7uC,EAAoB,IACvCowB,EAAkBpwB,EAAoB,GACtC0uC,EAAU,SAAUziB,GAEpB,SAASyiB,IACL,OAAkB,OAAXziB,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KA4D/D,OA9DA2nB,EAAQ3pB,UAAUssC,EAAQziB,GAI1ByiB,EAAO3sC,UAAUowB,UAAY,SAAUhmB,GACnC,QAAKikB,EAAgBjmB,cAAc4C,WAAW3I,KAAK4I,MAAOb,KAEtD/H,KAAK4sB,sBACEZ,EAAgBjmB,cAAcgD,gCAAgChB,EAAM/H,KAAK6sB,kBAAmB7sB,KAAKmtB,6BACrGnB,EAAgBjmB,cAAcwC,gBAAgBvI,KAAKitB,YAAallB,KAE3EuiC,EAAO3sC,UAAUswB,cAAgB,SAAUlmB,GACvC,OAAOikB,EAAgBjmB,cAAc8B,mBAAmB7H,KAAK6G,MAAOkB,GAAQ/H,KAAKksB,UAAY,GAEjGoe,EAAO3sC,UAAUuwB,yBAA2B,SAAUnmB,GAClD,IAAIu6D,EAAgBt2C,EAAgBjmB,cAAc8B,mBAAmB7H,KAAK6G,MAAOkB,GAC7Es6D,EAAUr7D,KAAKO,MAAM+6D,EAAgBtiE,KAAKksB,UAAYlsB,KAAKksB,SAC3Dq2C,EAAUviE,KAAK6G,MAAMc,cAAgB06D,EACrCh1D,EAAQrN,KAAKouB,kBAAkBm0C,EAASviE,KAAKotB,eAKjD,OAJIpB,EAAgBjmB,cAAcM,aAAagH,EAAOtF,IAAS,IAC3Dw6D,GAAWviE,KAAKksB,SAChB7e,EAAQrN,KAAKouB,kBAAkBm0C,EAASviE,KAAKotB,gBAE1C/f,GAEXi9B,EAAO3sC,UAAUwwB,sBAAwB,SAAUpmB,GAC/C,IAAIe,EAAOf,EAAKJ,cACZ0F,EAAQrN,KAAKouB,kBAAkBtlB,EAAM9I,KAAKotB,eAG9C,OAFIpB,EAAgBjmB,cAAcM,aAAagH,EAAOtF,IAAS,IAC3DsF,EAAQrN,KAAKouB,oBAAoBtlB,EAAM9I,KAAKotB,gBACzC/f,GAEX5Q,OAAOC,eAAe4tC,EAAO3sC,UAAW,QAAS,CAC7Cf,IAAK,WAAc,OAAOoD,KAAKotB,eAC/BxoB,IAAK,SAAU5H,GAASgD,KAAKotB,cAAgBpwB,GAC7CL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe4tC,EAAO3sC,UAAW,MAAO,CAC3Cf,IAAK,WAAc,OAAOoD,KAAKitB,aAC/BroB,IAAK,SAAU5H,GAASgD,KAAKitB,YAAcjwB,GAC3CL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe4tC,EAAO3sC,UAAW,YAAa,CACjDf,IAAK,WAAc,OAAOoD,KAAK6sB,mBAC/BjoB,IAAK,SAAU5H,GAASgD,KAAK6sB,kBAAoB7vB,GACjDL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe4tC,EAAO3sC,UAAW,sBAAuB,CAC3Df,IAAK,WAAc,OAAOoD,KAAKmtB,6BAC/BvoB,IAAK,SAAU5H,GAASgD,KAAKmtB,4BAA8BnwB,GAC3DL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe4tC,EAAO3sC,UAAW,uBAAwB,CAC5Df,IAAK,WAAc,OAAOoD,KAAK4sB,uBAC/BhoB,IAAK,SAAU5H,GAASgD,KAAK4sB,sBAAwB5vB,GACrDL,YAAY,EACZqjB,cAAc,IAEXsqB,EA/DG,CAgEZG,EAAiB5e,gBACnB/vB,EAAQwuC,OAASA,GAKV,SAASvuC,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQglE,wBAAqB,EAC7B,IAAI76D,EAAcrK,EAAoB,IAClCowB,EAAkBpwB,EAAoB,GACtCoK,EAASpK,EAAoB,IAC7BklE,EAAsB,WACtB,SAASA,EAAmBv2D,EAAWo2D,EAAW6B,QAC5B,IAAdj4D,IAAwBA,EAAY,QACtB,IAAdo2D,IAAwBA,GAAY,QACtB,IAAd6B,IAAwBA,EAAY,MACxCxiE,KAAKyiE,kBAAoB,IAAI7iE,MAC7BI,KAAKuK,UAAYA,EACjBvK,KAAK2gE,UAAYA,EACjB3gE,KAAK4gE,oBAAoB4B,GAsE7B,OApEA1B,EAAmBnjE,UAAUijE,oBAAsB,SAAU4B,GACpDA,IAELxiE,KAAKyiE,kBAAoBziE,KAAKyiE,kBAAkBl/D,OAAOi/D,EAAU52D,QAAO,SAAU/O,GAAK,QAASA,MAChGmD,KAAK0iE,8BAET5B,EAAmBnjE,UAAU+kE,0BAA4B,WACrD,IAAK,IAAI1mE,EAAI,EAAGA,EAAIgE,KAAKyiE,kBAAkBriE,OAAQpE,IAC/CgE,KAAK2iE,4BAA4B3iE,KAAKyiE,kBAAkBzmE,IAC5DgE,KAAK4iE,iBAET9B,EAAmBnjE,UAAUglE,4BAA8B,SAAUt5C,GACjE,IAAIre,EAAQhL,KACYA,KAAK6iE,wBAAwBx5C,GACnC1T,SAAQ,SAAU9Y,GAChCwsB,EAAMwgB,WAAWhtC,GACjBmO,EAAM83D,eAAejmE,OAG7BikE,EAAmBnjE,UAAUklE,wBAA0B,SAAUx5C,GAC7D,OAAOrpB,KAAKyiE,kBAAkB72D,QAAO,SAAU/O,GAAK,OAAOA,EAAE+sC,aAAavgB,IAAUxsB,IAAMwsB,MAE9Fy3C,EAAmBnjE,UAAUilE,cAAgB,WACzC5iE,KAAKyiE,kBAAkB1G,MAAK,SAAUgH,EAAIC,GAAM,OAAOh3C,EAAgBjmB,cAAcqG,mBAAmB42D,EAAGn8D,MAAOk8D,EAAGl8D,WAEzHi6D,EAAmBnjE,UAAUmlE,eAAiB,SAAU91D,GACpD,IAAIuN,EAAQva,KAAKyiE,kBAAkBliE,QAAQyM,GACvCuN,GAAS,GAAKA,EAAQva,KAAKyiE,kBAAkBriE,QAC7CJ,KAAKyiE,kBAAkB94C,OAAOpP,EAAO,IAE7CumD,EAAmBnjE,UAAUslE,eAAiB,WAC1CjjE,KAAKyiE,kBAAkB94C,OAAO,EAAG3pB,KAAKyiE,kBAAkBriE,SAE5D3D,OAAOC,eAAeokE,EAAmBnjE,UAAW,mBAAoB,CACpEf,IAAK,WAAc,OAAOoD,KAAKyiE,kBAAkB74C,SACjDjtB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAeokE,EAAmBnjE,UAAW,qBAAsB,CACtEf,IAAK,WACD,IAAI6M,EAAM,IAAI7J,MACd,GAAII,KAAK2gE,WAA8C,GAAjC3gE,KAAKyiE,kBAAkBriE,OACzC,OAAOqJ,EACX,IAAIy5D,EAASljE,KAAKyiE,kBAAkBx3D,KAAI,SAAUpO,GAAK,OAAOA,EAAEiK,OAChEo8D,EAAOv5C,OAAO,EAAG,EAAG,IAAI3jB,EAAOwF,MAC/B,IAAI23D,EAAOnjE,KAAKyiE,kBAAkBx3D,KAAI,SAAUpO,GAAK,OAAOA,EAAEgK,SAC9Ds8D,EAAKlgE,KAAK+oB,EAAgBjmB,cAAc4G,oBACxC,IAAK,IAAI3Q,EAAI,EAAGA,EAAIknE,EAAO9iE,OAAQpE,IAAK,CACpC,IAAI6K,EAAQq8D,EAAOlnE,GACf8K,EAAMq8D,EAAKnnE,GACVgwB,EAAgBjmB,cAAcyG,cAAc3F,EAAOC,IACpD2C,EAAIxG,KAAK,IAAIgD,EAAYoF,UAAUxE,EAAOC,IAElD,OAAO2C,GAEX9M,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAeokE,EAAmBnjE,UAAW,YAAa,CAC7Df,IAAK,WAAc,OAAOoD,KAAKojE,YAC/Bx+D,IAAK,SAAU5H,GACXgD,KAAKojE,WAAapmE,EACbA,GACDgD,KAAKijE,kBAEbtmE,YAAY,EACZqjB,cAAc,IAEX8gD,EA9Ee,GAgF1BhlE,EAAQglE,mBAAqBA,GAKtB,SAAS/kE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAI2qB,EAAU/rB,EAAoB,IAE9Bs2C,EAAW,SAAUrqB,GAErB,SAASqqB,IACL,OAAkB,OAAXrqB,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAQ/D,OAVA2nB,EAAQ3pB,UAAUk0C,EAASrqB,GAI3BqqB,EAAQ1L,MAAQ,WACZ,OAAO,IAAI0L,EAAQ,EAAG,EAAG,EAAG,IAEhCA,EAAQv0C,UAAUwa,MAAQ,WACtB,OAAO,IAAI+5B,EAAQlyC,KAAKsN,KAAMtN,KAAKyyC,MAAOzyC,KAAKyN,IAAKzN,KAAK2yC,SAEtDT,EAXI,CADCt2C,EAAoB,IAaxBynE,SACZvnE,EAAQo2C,QAAUA,GAKX,SAASn2C,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAIqmE,EAAW,WACX,SAASA,EAAQ/1D,EAAMmlC,EAAOhlC,EAAKklC,GAC/B3yC,KAAKsN,KAAOA,EACZtN,KAAKyyC,MAAQA,EACbzyC,KAAKyN,IAAMA,EACXzN,KAAK2yC,OAASA,EAgGlB,OA9FA0wB,EAAQ78B,MAAQ,WACZ,OAAO,IAAI68B,EAAQ,EAAG,EAAG,EAAG,IAEhC5mE,OAAOC,eAAe2mE,EAAQ1lE,UAAW,aAAc,CACnDf,IAAK,WACD,OAAOoD,KAAKsN,KAAOtN,KAAKyyC,OAE5B91C,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe2mE,EAAQ1lE,UAAW,WAAY,CACjDf,IAAK,WACD,OAAOoD,KAAKyN,IAAMzN,KAAK2yC,QAE3Bh2C,YAAY,EACZqjB,cAAc,IAElBqjD,EAAQvrD,WAAa,SAAUO,GAC3B,OAAO,IAAIgrD,EAAQhrD,EAAQA,EAAQA,EAAQA,IAE/CgrD,EAAQC,YAAc,SAAUC,GAC5B,OAAO,IAAIF,EAAQE,EAAQj2D,KAAMi2D,EAAQ9wB,MAAO8wB,EAAQ91D,IAAK81D,EAAQ5wB,SAEzE0wB,EAAQG,SAAW,SAAUC,EAAYC,GACrC,OAAO,IAAIL,EAAQI,EAAYA,EAAYC,EAAUA,IAEzDL,EAAQ1lE,UAAUgmE,UAAY,WAK1B,OAJA3jE,KAAKsN,KAAOtG,KAAKsU,IAAI,EAAGtb,KAAKsN,MAC7BtN,KAAKyyC,MAAQzrC,KAAKsU,IAAI,EAAGtb,KAAKyyC,OAC9BzyC,KAAKyN,IAAMzG,KAAKsU,IAAI,EAAGtb,KAAKyN,KAC5BzN,KAAK2yC,OAAS3rC,KAAKsU,IAAI,EAAGtb,KAAK2yC,QACxB3yC,MAEXqjE,EAAQ1lE,UAAUkI,SAAW,WACzB,OAAOmS,KAAKC,UAAUjY,OAE1BqjE,EAAQ1lE,UAAUkpC,QAAU,WACxB,OAAqB,IAAd7mC,KAAKsN,MAA6B,IAAftN,KAAKyyC,OAA4B,IAAbzyC,KAAKyN,KAA6B,IAAhBzN,KAAK2yC,QAEzE0wB,EAAQ1lE,UAAU0a,OAAS,SAAUA,GAKjC,OAJArY,KAAKsN,MAAQ+K,EAAO/K,KACpBtN,KAAKyyC,OAASp6B,EAAOo6B,MACrBzyC,KAAKyN,KAAO4K,EAAO5K,IACnBzN,KAAK2yC,QAAUt6B,EAAOs6B,OACf3yC,MAEXqjE,EAAQ1lE,UAAU8a,SAAW,SAAUmrD,EAAUC,EAAWC,EAASC,GACjE,OAAQ5jE,UAAUC,QACd,KAAK,EAKD,OAJAJ,KAAKsN,MAAQs2D,EACb5jE,KAAKyyC,OAASmxB,EACd5jE,KAAKyN,KAAOm2D,EACZ5jE,KAAK2yC,QAAUixB,EACR5jE,KAEX,KAAK,EAKD,OAJAA,KAAKsN,MAAQs2D,EACb5jE,KAAKyyC,OAASmxB,EACd5jE,KAAKyN,KAAOo2D,EACZ7jE,KAAK2yC,QAAUkxB,EACR7jE,KAEX,KAAK,EAKD,OAJAA,KAAKsN,MAAQs2D,EACb5jE,KAAKyyC,OAASoxB,EACd7jE,KAAKyN,KAAOq2D,EACZ9jE,KAAK2yC,QAAUoxB,EACR/jE,KAGf,OAAOA,MAEXqjE,EAAQ1lE,UAAUwa,MAAQ,WACtB,OAAO,IAAIkrD,EAAQrjE,KAAKsN,KAAMtN,KAAKyyC,MAAOzyC,KAAKyN,IAAKzN,KAAK2yC,SAE7D0wB,EAAQ1lE,UAAUua,SAAW,SAAUhT,GACnClF,KAAKsN,KAAOpI,EAAIoI,KAChBtN,KAAKyyC,MAAQvtC,EAAIutC,MACjBzyC,KAAKyN,IAAMvI,EAAIuI,IACfzN,KAAK2yC,OAASztC,EAAIytC,QAEtB0wB,EAAQ1lE,UAAUya,OAAS,SAAUlT,GACjC,OAAOlF,KAAKyN,MAAQvI,EAAIuI,KACpBzN,KAAK2yC,SAAWztC,EAAIytC,QACpB3yC,KAAKyyC,QAAUvtC,EAAIutC,OACnBzyC,KAAKsN,OAASpI,EAAIoI,MAE1B+1D,EAAQ1lE,UAAUkb,eAAiB,SAAUC,GAKzC,OAJA9Y,KAAKsN,KAAOwL,EAAU9Y,KAAKsN,MAC3BtN,KAAKyyC,MAAQ35B,EAAU9Y,KAAKyyC,OAC5BzyC,KAAKyN,IAAMqL,EAAU9Y,KAAKyN,KAC1BzN,KAAK2yC,OAAS75B,EAAU9Y,KAAK2yC,QACtB3yC,MAEJqjE,EArGI,GAuGfvnE,EAAQunE,QAAUA,GAKX,SAAStnE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ8mD,sBAAmB,EAC3B,IAAIA,EACA,WACI5iD,KAAKwlD,gBAAkB,IAI/B1pD,EAAQ8mD,iBAAmBA,GAKpB,SAAS7mD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQuzD,sBAAmB,EAC3B,IAAI2U,EAA0BpoE,EAAoB,IAC9CqoE,EAAyBroE,EAAoB,IAC7CsoE,EAAoBtoE,EAAoB,IACxCyzD,EACA,SAA0BnqC,EAAWwZ,GACjC1+B,KAAKwlB,KAAO,IAAI0+C,EAAkBC,gBAAgBj/C,EAAWwZ,GAC7D1+B,KAAKu8B,WAAa,IAAIynC,EAAwBI,0BAA0Bl/C,EAAWwZ,GACnF1+B,KAAK6hC,SAAW,IAAIoiC,EAAuBI,qBAAqBn/C,EAAWwZ,GAC3E1+B,KAAK0+B,WAAaA,GAI1B5iC,EAAQuzD,iBAAmBA,GAKpB,SAAStzD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQsoE,+BAA4B,EACpC,IAAIz8C,EAAU/rB,EAAoB,GAE9BwoE,EAA6B,SAAUv8C,GAEvC,SAASu8C,IACL,OAAkB,OAAXv8C,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAmC/D,OArCA2nB,EAAQ3pB,UAAUomE,EAA2Bv8C,GAI7Cu8C,EAA0BzmE,UAAUyjC,iBAAmB,SAAUtZ,EAAeC,EAAahM,EAAM0J,GAC/F,IAAI8W,EAAav8B,KAAKklB,UAAU+W,aAAa1R,aAW7C,OAVAgS,EAAWzU,cAAgBA,EAC3ByU,EAAWxU,YAAcA,EACzBwU,EAAWxgB,KAAOA,EACd0J,IACA8W,EAAWlV,WAAa5B,GAC5B8W,EAAW9W,GAAK8W,EAAWlV,WAC3BrnB,KAAKklB,UAAU+W,aAAalY,IAAIwY,GAChCv8B,KAAK0+B,WAAW4lC,yBAAyBtkE,KAAKukE,uBAAuBhoC,IAAa,SAAU9W,GAAM,OAAO8W,EAAW9W,GAAKA,IAAOzlB,KAAK2+B,oBACrI3+B,KAAKklB,UAAU+yC,gCACfj4D,KAAKklB,UAAU6a,MAAM+qB,6BAA6BvuB,EAAWlV,YAAY,GAClEkV,GAEX6nC,EAA0BzmE,UAAU0jC,iBAAmB,SAAUhF,GAC7D,IAAIE,EAAav8B,KAAKklB,UAAU+W,aAAa/S,YAAYmT,GAKzD,OAJAr8B,KAAKklB,UAAU+W,aAAa3S,OAAOiT,GACnCv8B,KAAK0+B,WAAW8lC,wBAAwBjoC,EAAW9W,GAAIzlB,KAAK2+B,mBAAoB3+B,KAAKklB,UAAUwsC,iCAAiCn1B,IAChIv8B,KAAKklB,UAAU+yC,gCACfj4D,KAAKklB,UAAU6a,MAAM+qB,6BAA6BvuB,EAAWlV,YACtDkV,GAEX6nC,EAA0BzmE,UAAU4mE,uBAAyB,SAAUhoC,GACnE,IAAIE,EAAcz8B,KAAKklB,UAAUsa,MAAMtW,YAAYqT,EAAWzU,eAC1DupC,EAAYrxD,KAAKklB,UAAUsa,MAAMtW,YAAYqT,EAAWxU,aAO5D,MANuB,CACnBtC,GAAI8W,EAAW9W,GACfqC,cAAe2U,EAAYhX,GAC3BsC,YAAaspC,EAAU5rC,GACvB1J,KAAMwgB,EAAWxgB,OAIlBqoD,EAtCsB,CADCxoE,EAAoB,IAwCxB4iC,iBAC9B1iC,EAAQsoE,0BAA4BA,GAK7B,SAASroE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQuoE,0BAAuB,EAC/B,IAAI18C,EAAU/rB,EAAoB,GAC9B6oE,EAA8B7oE,EAAoB,IAClD8oE,EAAkC9oE,EAAoB,IACtDyoE,EAAwB,SAAUx8C,GAElC,SAASw8C,EAAqBn/C,EAAWwZ,GACrC,IAAI1zB,EAAQ6c,EAAO3rB,KAAK8D,KAAMklB,EAAWwZ,IAAe1+B,KAExD,OADAgL,EAAM+2B,WAAa,IAAI2iC,EAAgCC,8BAA8Bz/C,EAAWwZ,GACzF1zB,EA+DX,OAnEA2c,EAAQ3pB,UAAUqmE,EAAsBx8C,GAMxCw8C,EAAqB1mE,UAAUN,OAAS,SAAUqkC,EAAM1N,EAAOvO,EAAIkc,GAC/D,IAAIE,EAAW7hC,KAAKklB,UAAUynC,UAAUpiC,aAaxC,OAZAsX,EAASH,KAAOA,EACZ1N,IACA6N,EAAS7N,MAAQA,GACjBvO,IACAoc,EAASxa,WAAa5B,GAC1Boc,EAASpc,GAAKoc,EAASxa,WACvBrnB,KAAKklB,UAAUynC,UAAU5oC,IAAI8d,GAC7B7hC,KAAK0+B,WAAWkmC,sBAAsB5kE,KAAK0yD,+BAA+B7wB,IAAW,SAAUpc,GAC3Foc,EAASpc,GAAKA,EACVkc,GACAA,EAASlc,KACdzlB,KAAK2+B,oBACDkD,GAEXwiC,EAAqB1mE,UAAU2rB,OAAS,SAAUwY,GAC9C,IAAID,EAAW7hC,KAAKklB,UAAUynC,UAAUzjC,YAAY4Y,GACpD,IAAKD,EACD,MAAM,IAAI5gB,MAAM,uBAEpB,GADkBjhB,KAAKklB,UAAUqxC,YAAYpxC,MAAMvZ,QAAO,SAAUnI,GAAK,OAAOA,EAAEq+B,YAAcA,KAChF1hC,OACZ,MAAM,IAAI6gB,MAAM,kCAGpB,OAFAjhB,KAAKklB,UAAUynC,UAAUrjC,OAAOuY,GAChC7hC,KAAK0+B,WAAWmmC,sBAAsBhjC,EAASpc,GAAIzlB,KAAK2+B,mBAAoB3+B,KAAKklB,UAAUwtC,+BAA+B7wB,IACnHA,GAEXwiC,EAAqB1mE,UAAUuC,OAAS,SAAU4kE,EAAY9iC,EAAQvc,GAClE,IAAIwc,EAAajiC,KAAKklB,UAAUqxC,YAAYhsC,aAU5C,OATA0X,EAAWH,WAAagjC,EACxB7iC,EAAWD,OAASA,EAChBvc,IACAwc,EAAW5a,WAAa5B,GAC5Bwc,EAAWxc,GAAKwc,EAAW5a,WAC3BrnB,KAAKklB,UAAUqxC,YAAYxyC,IAAIke,GAC/BjiC,KAAK0+B,WAAWqmC,uBAAuB/kE,KAAK4yD,yCAAyC3wB,IAAa,SAAUxc,GAAM,OAAOwc,EAAWxc,GAAKA,IAAOzlB,KAAK2+B,oBACrJ3+B,KAAKklB,UAAUgyC,cACfl3D,KAAKklB,UAAU6a,MAAM0mB,iBACdxkB,GAEXoiC,EAAqB1mE,UAAUukC,QAAU,SAAUC,GAC/C,IAAIF,EAAajiC,KAAKklB,UAAUqxC,YAAYrtC,YAAYiZ,GAKxD,OAJAniC,KAAKklB,UAAUqxC,YAAYjtC,OAAO2Y,GAClCjiC,KAAK0+B,WAAWsmC,yBAAyB/iC,EAAWxc,GAAIzlB,KAAK2+B,mBAAoB3+B,KAAKklB,UAAU0tC,yCAAyC3wB,IACzIjiC,KAAKklB,UAAUgyC,cACfl3D,KAAKklB,UAAU6a,MAAM0mB,iBACdxkB,GAEXoiC,EAAqB1mE,UAAU+0D,+BAAiC,SAAU7wB,GACtE,MAAO,CACHpc,GAAIoc,EAASpc,GACbic,KAAMG,EAASH,OAGvB2iC,EAAqB1mE,UAAUi1D,yCAA2C,SAAUqS,GAChF,MAAO,CACHx/C,GAAIw/C,EAAmBx/C,GACvBuc,OAAQhiC,KAAKklB,UAAUsa,MAAMtW,YAAY+7C,EAAmBjjC,QAAQvc,GACpEqc,WAAY9hC,KAAKklB,UAAUynC,UAAUzjC,YAAY+7C,EAAmBnjC,YAAYrc,KAGjF4+C,EApEiB,CAqE1BI,EAA4BjmC,iBAC9B1iC,EAAQuoE,qBAAuBA,GAKxB,SAAStoE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQopE,4BAA8BppE,EAAQ6oE,mCAAgC,EAC9E,IAAIh9C,EAAU/rB,EAAoB,GAC9B6oE,EAA8B7oE,EAAoB,IAClD6iC,EAAqB7iC,EAAoB,IACzC+oE,EAAiC,SAAU98C,GAE3C,SAAS88C,EAA8Bz/C,EAAWwZ,GAC9C,IAAI1zB,EAAQ6c,EAAO3rB,KAAK8D,KAAMklB,EAAWwZ,IAAe1+B,KAExD,OADAgL,EAAMgpB,MAAQ,IAAImxC,EAAyBjgD,EAAWwZ,GAC/C1zB,EAEX,OANA2c,EAAQ3pB,UAAU2mE,EAA+B98C,GAM1C88C,EAP0B,CAQnCF,EAA4BjmC,iBAC9B1iC,EAAQ6oE,8BAAgCA,EACxC,IAAIO,EAA+B,SAAUr9C,GAEzC,SAASq9C,IACL,OAAkB,OAAXr9C,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KA6B/D,OA/BA2nB,EAAQ3pB,UAAUknE,EAA6Br9C,GAI/Cq9C,EAA4BvnE,UAAU2hC,SAAW,SAAU7Z,EAAI8Z,GAC3D,IAAIv0B,EAAQhL,KACR6hC,EAAW7hC,KAAKklB,UAAUynC,UAAUzjC,YAAYzD,GAChDga,EAAW,IAAIhB,EAAmBiB,iBAAiBja,EAAIzlB,KAAK2/B,iBAAiBkC,IAQjF,OAPA7hC,KAAK4/B,iBAAiBiC,EAAUtC,GACdv/B,KAAKklB,UAAUqxC,YAAYpxC,MAAMvZ,QAAO,SAAUnI,GAAK,OAAOA,EAAEq+B,YAAcD,EAASxa,cAC7F1R,SAAQ,SAAUlS,GAC1B,IACI8W,EADWvP,EAAMka,UAAU4a,SAASr8B,EAAEu+B,QACrB7F,aACrBnxB,EAAMka,UAAU6a,MAAMC,oBAAoBzlB,MAEvCklB,GAEXylC,EAA4BvnE,UAAUsiC,aAAe,SAAUzf,GAC3D,IAAIxV,EAAQhL,KACZ,GAAKwgB,EAAL,CAEA,IAAI4kD,EAAa5kD,EAAMxjB,MACnB6kC,EAAW7hC,KAAKklB,UAAUynC,UAAUzjC,YAAY1I,EAAMiF,IAC1DzlB,KAAK4/B,iBAAiBiC,EAAUujC,GACdplE,KAAKklB,UAAUqxC,YAAYpxC,MAAMvZ,QAAO,SAAUnI,GAAK,OAAOA,EAAEq+B,YAAcD,EAASxa,cAC7F1R,SAAQ,SAAUlS,GAC1B,IACI8W,EADWvP,EAAMka,UAAU4a,SAASr8B,EAAEu+B,QACrB7F,aACrBnxB,EAAMka,UAAU6a,MAAMC,oBAAoBzlB,QAG3C2qD,EAhCwB,CAiCjCT,EAA4BjmC,iBAC9B1iC,EAAQopE,4BAA8BA,EACtC,IAAIC,EAA4B,SAAUt9C,GAEtC,SAASs9C,IACL,OAAkB,OAAXt9C,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAUmnE,EAA0Bt9C,GAI5Cs9C,EAAyBxnE,UAAUgiC,iBAAmB,SAAUkC,GAC5D,OAAOA,EAAS7N,OAEpBmxC,EAAyBxnE,UAAUiiC,iBAAmB,SAAUiC,EAAU7kC,GACtE6kC,EAAS7N,MAAQh3B,EACjBgD,KAAK0+B,WAAW2mC,2BAA2BxjC,EAASpc,GAAIzoB,EAAOgD,KAAK2+B,qBAEjEwmC,EAZqB,CAa9BD,IAKK,SAASnpE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQqoE,qBAAkB,EAC1B,IAAIx8C,EAAU/rB,EAAoB,GAC9B6oE,EAA8B7oE,EAAoB,IAClDuoE,EAAmB,SAAUt8C,GAE7B,SAASs8C,EAAgBj/C,EAAWwZ,GAChC,IAAI1zB,EAAQ6c,EAAO3rB,KAAK8D,KAAMklB,EAAWwZ,IAAe1+B,KAExD,OADAgL,EAAM+2B,WAAa,IAAI0iC,EAA4BlmC,0BAA0BrZ,EAAWwZ,GACjF1zB,EAuDX,OA3DA2c,EAAQ3pB,UAAUmmE,EAAiBt8C,GAMnCs8C,EAAgBxmE,UAAUN,OAAS,SAAU0uC,EAAMtmB,EAAIkc,GACnD,IAAI32B,EAAQhL,KACRwlB,EAAOxlB,KAAKklB,UAAUsa,MAAMjV,aAChC/E,EAAK3e,MAAQklC,EAAKllC,MAClB2e,EAAK1e,IAAMilC,EAAKjlC,IAChB0e,EAAK2Y,MAAQ4N,EAAK5N,MAClB3Y,EAAKgP,SAAWuX,EAAKvX,SACjBuX,EAAK/X,QACLxO,EAAKwO,MAAQ+X,EAAK/X,OACtB,IAAI0jC,EAAa13D,KAAKklB,UAAUsa,MAAMtW,YAAY6iB,EAAK2S,UAuBvD,OAtBIgZ,IACAA,EAAWhK,UAAW,GAC1BloC,EAAKk5B,SAAW3S,EAAK2S,SACjBj5B,IACAD,EAAK6B,WAAa5B,GACtBD,EAAKC,GAAKD,EAAK6B,WACfrnB,KAAKklB,UAAUsa,MAAMzb,IAAIyB,GACzBxlB,KAAKklB,UAAUgyC,cACfl3D,KAAK0+B,WAAW4mC,kBAAkBtlE,KAAKukE,uBAAuB/+C,IAAO,SAAUC,GAI3E,GAHAD,EAAKC,GAAKA,EACNkc,GACAA,IACA32B,EAAMka,UAAUqvC,+BAAgC,CAChD,IAAIgR,EAASv6D,EAAMka,UAAUyvC,qBAAqB1pD,KAAI,SAAUhO,GAG5D,MAFmB,KAAfA,EAAEyhD,WACFzhD,EAAEyhD,SAAW,MACVzhD,KAEX+N,EAAM0zB,WAAWg2B,6BAA6B6Q,MAEnDvlE,KAAK2+B,oBACR3+B,KAAKklB,UAAU6a,MAAM0mB,iBACdjhC,GAEX2+C,EAAgBxmE,UAAU2rB,OAAS,SAAU0Y,GACzC,IAAIxc,EAAOxlB,KAAKklB,UAAUsa,MAAMtW,YAAY8Y,GAC5C,IAAKxc,EACD,MAAM,IAAIvE,MAAM,mBAEpB,GADmBjhB,KAAKklB,UAAU+W,aAAa9W,MAAMvZ,QAAO,SAAUvP,GAAK,OAAOA,EAAEyrB,eAAiBka,GAAU3lC,EAAE0rB,aAAeia,KAC/G5hC,OACb,MAAM,IAAI6gB,MAAM,qCAEpB,GADkBjhB,KAAKklB,UAAUqxC,YAAYpxC,MAAMvZ,QAAO,SAAUnI,GAAK,OAAOA,EAAEu+B,QAAUA,KAC5E5hC,OACZ,MAAM,IAAI6gB,MAAM,4CAKpB,OAJAjhB,KAAKklB,UAAUsa,MAAMlW,OAAO9D,GAC5BxlB,KAAK0+B,WAAW8mC,kBAAkBhgD,EAAKC,GAAIzlB,KAAK2+B,mBAAoB3+B,KAAKklB,UAAUksC,2BAA2B5rC,IAC9GxlB,KAAKklB,UAAUgyC,cACfl3D,KAAKklB,UAAU6a,MAAM0mB,iBACdjhC,GAEX2+C,EAAgBxmE,UAAU4mE,uBAAyB,SAAU/+C,GACzD,OAAOxlB,KAAKklB,UAAUksC,2BAA2B5rC,IAE9C2+C,EA5DY,CA6DrBM,EAA4BjmC,iBAC9B1iC,EAAQqoE,gBAAkBA,GAKnB,SAASpoE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQmoD,aAAU,EAClB,IAAI9iB,EAAgBvlC,EAAoB,IACpC6pE,EAAoB7pE,EAAoB,IACxCqoD,EAAW,WACX,SAASA,IACLjkD,KAAKwoB,aAAe,GACpBxoB,KAAK0lE,cAAgB,EACrB1lE,KAAK2lE,0BAA4B,KACjC3lE,KAAK4lE,YAAc,KACnB5lE,KAAK6lE,kBAAoB,EAoG7B,OAlGA5hB,EAAQtmD,UAAUgrB,KAAO,WACjB3oB,KAAK8lE,YACL9lE,KAAK+lE,aAAa/lE,KAAKwoB,aAAaxoB,KAAK0lE,eAAe,GACxD1lE,KAAK0lE,iBAGbzhB,EAAQtmD,UAAU8qB,KAAO,WACjBzoB,KAAKgmE,YACLhmE,KAAK0lE,eACL1lE,KAAK+lE,aAAa/lE,KAAKwoB,aAAaxoB,KAAK0lE,iBAGjDzhB,EAAQtmD,UAAUglC,iBAAmB,WACjC3iC,KAAK6lE,mBACwB,GAAzB7lE,KAAK6lE,mBACL7lE,KAAK4lE,YAAc,IAAIzkC,EAAc9Y,yBAE7C47B,EAAQtmD,UAAUilC,eAAiB,WAC/B,OAAM5iC,KAAK6lE,kBAAoB,GAA/B,CAEA,IAAII,EAAoBjmE,KAAK4lE,YAAYp9C,aAAapoB,OAClD6lE,EAAoB,EACpBjmE,KAAKkmE,YAAYlmE,KAAK4lE,aACI,GAArBK,GACLjmE,KAAKkmE,YAAYlmE,KAAK4lE,YAAYp9C,aAAaxlB,OACnDhD,KAAK4lE,YAAc,OAEvB3hB,EAAQtmD,UAAUwiD,WAAa,SAAUv3B,GACrC5oB,KAAK+jB,IAAI6E,GACT5oB,KAAK+lE,aAAan9C,IAEtBq7B,EAAQtmD,UAAUomB,IAAM,SAAU6E,GAC1B5oB,KAAK6lE,kBAAoB,EACzB7lE,KAAK4lE,YAAY7hD,IAAI6E,GAErB5oB,KAAKkmE,YAAYt9C,IAEzBq7B,EAAQtmD,UAAUmoE,QAAU,WACxB,OAAO9lE,KAAK0lE,cAAgB,GAEhCzhB,EAAQtmD,UAAUqoE,QAAU,WACxB,OAAOhmE,KAAK0lE,aAAe1lE,KAAKwoB,aAAapoB,OAAS,GAE1D6jD,EAAQtmD,UAAUuoE,YAAc,SAAUt9C,GAClC5oB,KAAK0lE,aAAe1lE,KAAKwoB,aAAapoB,OAAS,GAC/CJ,KAAKwoB,aAAamB,OAAO3pB,KAAK0lE,aAAe,GACjD1lE,KAAKwoB,aAAavlB,KAAK2lB,GACvB5oB,KAAK0lE,eACL1lE,KAAKmmE,kBAETliB,EAAQtmD,UAAUwoE,eAAiB,WAC/B,IAAIC,EAAmBpmE,KAAKwoB,aAAapoB,OAAS6jD,EAAQoiB,uBACtDD,EAAmB,GAAKpmE,KAAK0lE,aAAeU,IAC5CpmE,KAAKwoB,aAAamB,OAAO,EAAGy8C,GAC5BpmE,KAAK0lE,cAAgBU,IAG7BniB,EAAQtmD,UAAU6rB,MAAQ,WACtBxpB,KAAK0lE,cAAgB,EACrB1lE,KAAKwoB,aAAe,IAExBy7B,EAAQtmD,UAAUooE,aAAe,SAAUn9C,EAAa09C,QACrC,IAAXA,IAAqBA,GAAS,GAClCtmE,KAAK2lE,0BAA4B,IAAIF,EAAkBc,gBAAgB39C,EAAa09C,GAChFA,EACA19C,EAAYD,OAEZC,EAAYH,OAChBzoB,KAAK2lE,0BAA4B,MAErC1hB,EAAQtmD,UAAU43D,6BAA+B,WAC7C,OAAOv1D,KAAK2lE,2BAEhB1hB,EAAQtmD,UAAU83D,kBAAoB,SAAUrvC,GAC5C,IAAIsC,EAAOtC,EAAKsC,KACX1oB,KAAKwmE,mBAAmB99C,KAEzBtC,EAAKkgD,OACL59C,EAAKD,OACAC,aAAgByY,EAAc9Y,uBACnCK,EAAKG,iBAELH,EAAKC,SAEbs7B,EAAQtmD,UAAU6oE,mBAAqB,SAAU99C,GAC7C,IAAInO,EAAQva,KAAKwoB,aAAajoB,QAAQmoB,GAUtC,OATInO,GAAS,GACTva,KAAKwoB,aAAamB,OAAOpP,EAAO,GAChCva,KAAK0lE,gBAEA1lE,KAAK4lE,cACVrrD,EAAQva,KAAK4lE,YAAYp9C,aAAajoB,QAAQmoB,KACjC,GACT1oB,KAAK4lE,YAAYp9C,aAAamB,OAAOpP,EAAO,GAE7CA,GAAS,GAEpB0pC,EAAQoiB,uBAAyB,IAC1BpiB,EA1GI,GA4GfnoD,EAAQmoD,QAAUA,GAKX,SAASloD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQyqE,qBAAkB,EAC1B,IAAIA,EACA,SAAyB79C,EAAM49C,QACZ,IAAXA,IAAqBA,GAAS,GAClCtmE,KAAK0oB,KAAOA,EACZ1oB,KAAKsmE,OAASA,GAItBxqE,EAAQyqE,gBAAkBA,GAKnB,SAASxqE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQkoD,kBAAe,EACvB,IAAIyiB,EAAiB7qE,EAAoB,IACrC8qE,EAAQ9qE,EAAoB,IAC5BgR,EAAYhR,EAAoB,GAChC+qE,EAAiB/qE,EAAoB,IACrCooD,EAAgB,WAChB,SAASA,EAAalkC,GAClB9f,KAAK8f,QAAUA,EACf9f,KAAK4mE,aAAe,IAAIH,EAAeI,aAAa/mD,GACpD9f,KAAK8mE,aAAe,IAAIH,EAAeI,aAAajnD,GAqDxD,OAnDAkkC,EAAarmD,UAAU+kB,YAAc,SAAU7E,GAC3C7d,KAAK4mE,aAAalkD,YAAY7E,IAElCmmC,EAAarmD,UAAUqnB,YAAc,SAAUnH,GAC3C7d,KAAK4mE,aAAa5hD,YAAYnH,IAElCmmC,EAAarmD,UAAUmnB,UAAY,SAAUjH,GACzC7d,KAAK4mE,aAAa9hD,UAAUjH,IAEhCmmC,EAAarmD,UAAUqpE,gBAAkB,SAAUnpD,GAC/C7d,KAAK4mE,aAAaz/B,mBAAmBtpB,IAEzCmmC,EAAarmD,UAAU6kB,aAAe,SAAU3E,GAC5C7d,KAAK4mE,aAAapkD,aAAa3E,IAEnCmmC,EAAarmD,UAAUwlB,aAAe,SAAUtF,GAC5C7d,KAAK8mE,aAAa3jD,aAAatF,IAEnCmmC,EAAarmD,UAAU0lB,WAAa,SAAUxF,GAC1C7d,KAAK8mE,aAAazjD,WAAWxF,IAEjCmmC,EAAarmD,UAAU4lB,YAAc,SAAU1F,GAC3C7d,KAAK8mE,aAAavjD,YAAY1F,IAElCmmC,EAAarmD,UAAU0gD,YAAc,SAAUxgC,GAC3C7d,KAAK8mE,aAAazoB,YAAYxgC,IAElCmmC,EAAarmD,UAAUonB,UAAY,SAAUlH,GACzC,GAAI7d,KAAK8f,QAAQ2E,QAAS,CACtB,IAAIwiD,EAAOjnE,KAAKknE,gBAAgBrpD,GAC5BopD,IAASP,EAAMS,YAAYC,KAAOV,EAAMW,QAAQC,QAChDtnE,KAAK8f,QAAQG,QAAQ0I,OACrBs+C,IAASP,EAAMS,YAAYC,KAAOV,EAAMW,QAAQE,QAChDvnE,KAAK8f,QAAQG,QAAQwI,OACrBw+C,GAAQP,EAAMW,QAAQG,QACtBxnE,KAAK8f,QAAQyG,mBAAmB+xB,6BAG5C0L,EAAarmD,UAAUupE,gBAAkB,SAAUrpD,GAC/C,IAAI4pD,EAAUf,EAAMgB,SAASC,gBAAgB9pD,GACzC+pD,EAAY,EAShB,OARI/pD,EAAIgqD,SACJD,GAAalB,EAAMS,YAAYW,KAC/BjqD,EAAIkqD,UACJH,GAAalB,EAAMS,YAAYC,MAC/BvpD,EAAImqD,WACJJ,GAAalB,EAAMS,YAAYc,OAC/BpqD,EAAIqqD,SAAWt7D,EAAUsC,QAAQ+M,gBACjC2rD,GAAalB,EAAMS,YAAYgB,MAC5BP,EAAYH,GAEhBzjB,EAzDS,GA2DpBloD,EAAQkoD,aAAeA,GAKhB,SAASjoD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ+qE,kBAAe,EACvB,IAAIl/C,EAAU/rB,EAAoB,GAC9BwsE,EAAgBxsE,EAAoB,IACpC+gD,EAAoB/gD,EAAoB,GACxCysE,EAA6BzsE,EAAoB,IACjD0lB,EAAQ1lB,EAAoB,GAC5B0sE,EAA8B1sE,EAAoB,IAClD2sE,EAAkC3sE,EAAoB,IACtD4sE,EAAmC5sE,EAAoB,IACvD6sE,EAAgC7sE,EAAoB,IACpDirE,EAAgB,SAAUh/C,GAE1B,SAASg/C,IACL,OAAkB,OAAXh/C,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAqC/D,OAvCA2nB,EAAQ3pB,UAAU6oE,EAAch/C,GAIhCg/C,EAAalpE,UAAUwpC,mBAAqB,SAAUtpB,GAClD7d,KAAKwgB,MAAM2mB,mBAAmBtpB,IAElCgpD,EAAalpE,UAAU+kB,YAAc,SAAU7E,GAE3C,OADa7d,KAAKge,eAAesD,EAAM3D,SAASK,eAAeH,KAE3D,KAAK8+B,EAAkBv7B,iBAAiBg8B,eACpCp9C,KAAK68C,YAAY,IAAIyrB,EAA4BI,0BAA0B1oE,OAC3E,MACJ,KAAK28C,EAAkBv7B,iBAAiB67B,kBACpCj9C,KAAK68C,YAAY,IAAI0rB,EAAgCI,8BAA8B3oE,OACnF,MACJ,KAAK28C,EAAkBv7B,iBAAiB87B,eACxC,KAAKP,EAAkBv7B,iBAAiB+7B,aACpCn9C,KAAK68C,YAAY,IAAI2rB,EAAiCI,+BAA+B5oE,OACrF,MACJ,KAAK28C,EAAkBv7B,iBAAiBi8B,yBACxC,KAAKV,EAAkBv7B,iBAAiBk8B,0BACpCt9C,KAAK68C,YAAY,IAAI4rB,EAA8BhrB,4BAA4Bz9C,OAGvFA,KAAKwgB,MAAMkC,YAAY7E,IAE3BgpD,EAAalpE,UAAUmnB,UAAY,SAAUjH,GACzC7d,KAAKwgB,MAAMsE,UAAUjH,IAEzBgpD,EAAalpE,UAAUqnB,YAAc,SAAUnH,GAC3C7d,KAAKwgB,MAAMwE,YAAYnH,IAE3BgpD,EAAalpE,UAAU6kB,aAAe,SAAU3E,GAC5C7d,KAAKwgB,MAAMgC,aAAa3E,IAE5BgpD,EAAalpE,UAAU8pC,qBAAuB,WAC1CznC,KAAKwgB,MAAQ,IAAI6nD,EAA2BQ,yBAAyB7oE,OAElE6mE,EAxCS,CAyClBuB,EAAc1rB,aAChB5gD,EAAQ+qE,aAAeA,GAKhB,SAAS9qE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQgtE,kBAAoBhtE,EAAQ+sE,8BAA2B,EAC/D,IAAIlhD,EAAU/rB,EAAoB,GAC9B6hB,EAAQ7hB,EAAoB,GAC5B0lB,EAAQ1lB,EAAoB,GAC5B+hD,EAA0B/hD,EAAoB,IAC9C2lB,EAAyB3lB,EAAoB,IAC7CylB,EAAUzlB,EAAoB,GAC9BgR,EAAYhR,EAAoB,GAChCitE,EAA4B,SAAUhhD,GAEtC,SAASghD,EAAyBpoC,GAC9B,IAAIz1B,EAAQ6c,EAAO3rB,KAAK8D,KAAMygC,IAAYzgC,KAG1C,OAFAgL,EAAM+9D,eAAgB,EACtB/9D,EAAMg+D,kBAAoB,IAAIF,EAAkB99D,EAAMy1B,QAAQ3gB,SACvD9U,EAuDX,OA5DA2c,EAAQ3pB,UAAU6qE,EAA0BhhD,GAO5CghD,EAAyBlrE,UAAU+kB,YAAc,SAAU7E,GACvDA,EAAIC,iBACJ,IAAIgI,EAASxE,EAAM3D,SAASK,eAAeH,GAC3C,GAAIJ,EAAM3Q,SAASsE,aAAa0U,EAAQvE,EAAuBwF,qBAAqBC,WAAWC,uBAC3FxJ,EAAM3Q,SAASsE,aAAa0U,EAAQvE,EAAuBwF,qBAAqBC,WAAWE,oBAAqB,CAChH,IAAIzB,EAAKK,EAAOpU,aAAa,iBAC7B,GAAI1R,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB8V,cAAgB5W,IACxDzlB,KAAKygC,QAAQ3gB,QAAQynB,iBAAiB9hB,GAClC5H,aAAe6N,cAAc,CAC7B,IAAItF,EAAO,CACP1H,MAAOb,EACP9B,KAAM,aACNze,IAAKmoB,EACL9N,SAAU,IAAI0J,EAAQzJ,MAAM0J,EAAM3D,SAASS,UAAUP,GAAMyD,EAAM3D,SAASU,UAAUR,KAExF7d,KAAKygC,QAAQ3gB,QAAQoG,WAAWG,cAAcD,SAKlD9E,EAAM3D,SAASY,oBAAoBV,IACnC7d,KAAKgpE,kBAAkBC,YAAYprD,GACqB,MAAxD7d,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB8V,cACxCr8B,KAAKygC,QAAQ3gB,QAAQynB,iBAAiB,OAGlDshC,EAAyBlrE,UAAUmnB,UAAY,SAAUjH,GACrD7d,KAAKgpE,kBAAkBlkD,UAAUjH,IAErCgrD,EAAyBlrE,UAAUqnB,YAAc,SAAUnH,GACnD7d,KAAKgpE,kBAAkBE,aACvBlpE,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB0uB,OACxCj1C,KAAKgpE,kBAAkBhkD,YAAYnH,GACnCA,EAAIC,mBAGZ+qD,EAAyBlrE,UAAU6kB,aAAe,SAAU3E,GACxD,IAAI7S,EAAQhL,KACZ,GAAI6d,EAAIkqD,UACJlqD,EAAIC,iBACJD,EAAImB,mBACChf,KAAK+oE,eAAe,CACrB/oE,KAAK+oE,eAAgB,EACrB53D,YAAW,WAAcnG,EAAM+9D,eAAgB,IAAU,IACzD,IAAII,EAAW7nD,EAAM3D,SAAS4B,cAAc1B,GAAO,EAC/CyoC,EAAUhlC,EAAM3D,SAASS,UAAUP,GAAOJ,EAAM3Q,SAAS8G,qBAAqB5T,KAAKygC,QAAQ3gB,QAAQ6kC,kBAAkBG,cACrHqkB,EACAnpE,KAAKygC,QAAQ3gB,QAAQumC,OAAOC,GAE5BtmD,KAAKygC,QAAQ3gB,QAAQ8mC,QAAQN,KAItCuiB,EA7DqB,CA8D9BlrB,EAAwBzW,uBAC1BprC,EAAQ+sE,yBAA2BA,EACnC,IAAIC,EAAqB,WACrB,SAASA,EAAkBv0B,GACvBv0C,KAAKu0C,MAAQA,EACbv0C,KAAKkpE,WAAa,KA2DtB,OAzDAJ,EAAkBnrE,UAAUsrE,YAAc,SAAU3oE,GAChDN,KAAKkpE,WAAalpE,KAAKopE,eAAe9oE,GACtCN,KAAKqpE,uBAAsB,IAE/BP,EAAkBnrE,UAAU2rE,aAAe,WACvCtpE,KAAKkpE,WAAa,MAEtBJ,EAAkBnrE,UAAUqnB,YAAc,SAAU1kB,GAChDN,KAAKm/B,KAAK7+B,IAEdwoE,EAAkBnrE,UAAUmnB,UAAY,SAAUxkB,GAC9CN,KAAKspE,eACLtpE,KAAKqpE,uBAAsB,IAE/BP,EAAkBnrE,UAAUwhC,KAAO,SAAU7+B,GACzCN,KAAKupE,qBAAqBjpE,IAE9BwoE,EAAkBnrE,UAAU4rE,qBAAuB,SAAUjpE,GACzD,IAAIkpE,EAAYxiE,KAAKwG,MAAM8T,EAAM3D,SAASS,UAAU9d,IAChDmpE,EAAYziE,KAAKwG,MAAM8T,EAAM3D,SAASU,UAAU/d,IAChDopE,EAASF,EAAYxpE,KAAKkpE,WAAWS,OACrChqD,EAAS8pD,EAAYzpE,KAAKkpE,WAAWU,OACrCC,EAAOH,EAAS,GAAK,EAAI,EACzBI,EAAOnqD,EAAS,GAAK,EAAI,EACzBoqD,EAAYF,EAAO,EAAI7pE,KAAKkpE,WAAWc,cAAgBhqE,KAAKkpE,WAAWe,aACvEC,EAAYJ,EAAO,EAAI9pE,KAAKkpE,WAAWiB,eAAiBnqE,KAAKkpE,WAAWkB,YACxEpjE,KAAKC,IAAIyiE,GAAUK,IACnBL,EAASK,EAAYF,GACrB7iE,KAAKC,IAAI0Y,GAAUuqD,IACnBvqD,EAASuqD,EAAYJ,GACzB,IAAIO,EAAgBrqE,KAAKkpE,WAAWn5D,WAAa25D,EAC7CY,EAAetqE,KAAKkpE,WAAW35D,UAAYoQ,EAC3CglC,EAAoB3kD,KAAKu0C,MAAMoQ,kBAC/BA,EAAkB50C,aAAes6D,IACjC1lB,EAAkB50C,WAAas6D,GAC/B1lB,EAAkBp1C,YAAc+6D,IAChC3lB,EAAkBp1C,UAAY+6D,IAEtCxB,EAAkBnrE,UAAUyrE,eAAiB,SAAU9oE,GACnD,IAAIqkD,EAAoB3kD,KAAKu0C,MAAMoQ,kBACnC,MAAO,CACHglB,OAAQroD,EAAM3D,SAASS,UAAU9d,GACjCspE,OAAQtoD,EAAM3D,SAASU,UAAU/d,GACjCyP,WAAY40C,EAAkB50C,WAC9BR,UAAWo1C,EAAkBp1C,UAC7B06D,aAActlB,EAAkB50C,WAChCi6D,cAAerlB,EAAkB4lB,YAAc5lB,EAAkB50C,WAAa40C,EAAkBG,aAAah0C,YAC7Gs5D,YAAazlB,EAAkBp1C,UAC/B46D,eAAgBxlB,EAAkB6lB,aAAe7lB,EAAkBp1C,UAAYo1C,EAAkBG,aAAaxwC,eAGtHw0D,EAAkBnrE,UAAU0rE,sBAAwB,SAAUoB,GACtD79D,EAAUsC,QAAQC,GAClBnP,KAAKu0C,MAAMoQ,kBAAkBG,aAAa13C,MAAMs9D,OAASD,EAAO,OAAS,UAEzEzqE,KAAKu0C,MAAMoQ,kBAAkBG,aAAa13C,MAAMs9D,OAASD,EAAO,WAAa,WAE9E3B,EA9Dc,GAgEzBhtE,EAAQgtE,kBAAoBA,GAKrB,SAAS/sE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ4sE,+BAA4B,EACpC,IAAI/gD,EAAU/rB,EAAoB,GAE9B8sE,EAA6B,SAAU7gD,GAEvC,SAAS6gD,IACL,OAAkB,OAAX7gD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAU0qE,EAA2B7gD,GAI7C6gD,EAA0B/qE,UAAU6pC,kBAAoB,SAAUJ,GAC9DpnC,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBkxB,eAE5CixB,EAA0B/qE,UAAU+pC,oBAAsB,SAAU/vB,GAC3D3X,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBywB,YAAYr/B,EAASzM,EAAIlL,KAAKsnC,gBAAgBp8B,IACvFlL,KAAKygC,QAAQgH,wBAEdihC,EAZsB,CADK9sE,EAAoB,IAcxByrC,2BAClCvrC,EAAQ4sE,0BAA4BA,GAK7B,SAAS3sE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ6sE,mCAAgC,EACxC,IAAIhhD,EAAU/rB,EAAoB,GAE9B+sE,EAAiC,SAAU9gD,GAE3C,SAAS8gD,IACL,OAAkB,OAAX9gD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAU2qE,EAA+B9gD,GAIjD8gD,EAA8BhrE,UAAU6pC,kBAAoB,SAAUJ,GAClEpnC,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB2vB,mBAE5CyyB,EAA8BhrE,UAAU+pC,oBAAsB,SAAU/vB,GACpE,IAAIgzD,EAAmB3qE,KAAK2gC,eAAehpB,GAC3C3X,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBwvB,gBAAgB40B,IAErDhC,EAZ0B,CADC/sE,EAAoB,IAcxByrC,2BAClCvrC,EAAQ6sE,8BAAgCA,GAKjC,SAAS5sE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ8sE,oCAAiC,EACzC,IAAIjhD,EAAU/rB,EAAoB,GAC9B+gD,EAAoB/gD,EAAoB,GACxC0lB,EAAQ1lB,EAAoB,GAE5BgtE,EAAkC,SAAU/gD,GAE5C,SAAS+gD,IACL,OAAkB,OAAX/gD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAmB/D,OArBA2nB,EAAQ3pB,UAAU4qE,EAAgC/gD,GAIlD+gD,EAA+BjrE,UAAU+kB,YAAc,SAAU7E,GAC7DgK,EAAOlqB,UAAU+kB,YAAYxmB,KAAK8D,KAAM6d,GACxC7d,KAAK8lB,OAAS9lB,KAAKygC,QAAQziB,eAAesD,EAAM3D,SAASK,eAAeH,KAE5E+qD,EAA+BjrE,UAAU6pC,kBAAoB,SAAUJ,GAC/DpnC,KAAK8lB,QAAU62B,EAAkBv7B,iBAAiB87B,eAClDl9C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBuwB,eAExC92C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBmwB,cAEhDkyB,EAA+BjrE,UAAU+pC,oBAAsB,SAAU/vB,GACrE,IAAIgzD,EAAmB3qE,KAAK2gC,eAAehpB,GACvC3X,KAAK8lB,QAAU62B,EAAkBv7B,iBAAiB87B,gBAClDl9C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBqwB,aAAa+zB,GACrD3qE,KAAK8lB,QAAU62B,EAAkBv7B,iBAAiB+7B,cAClDn9C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB6vB,WAAWu0B,IAEpD/B,EAtB2B,CADAhtE,EAAoB,IAwBxByrC,2BAClCvrC,EAAQ8sE,+BAAiCA,GAKlC,SAAS7sE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAmKImqE,EAQAE,EA3KAz6D,EAAYhR,EAAoB,GAChCgvE,EAAWhvE,EAAoB,IAC/BiJ,EAAWjJ,EAAoB,IAC/B8rE,EAAY,WACZ,SAASA,KA4JT,OA1JAA,EAASmD,gBAAkB,SAAUhtD,GACjC,IAAI7b,EAAS,EAOb,OANI6b,EAAIgqD,SACJ7lE,GAAUmlE,EAAYW,KACtBjqD,EAAIkqD,UACJ/lE,GAAUmlE,EAAYC,MACtBvpD,EAAImqD,WACJhmE,GAAUmlE,EAAYc,OACnBjmE,GAEX0lE,EAASR,gBAAkB,SAAUO,EAASqD,EAAWC,EAAYC,EAAUC,GAC3E,IAAIjuE,EAAQyqE,EAKZ,OAJAzqE,GAAS8tE,EAAY3D,EAAYC,KAAO,EACxCpqE,GAAS+tE,EAAa5D,EAAYc,MAAQ,EAC1CjrE,GAASguE,EAAW7D,EAAYW,IAAM,EACtC9qE,GAASiuE,EAAY9D,EAAYgB,KAAO,GAG5CT,EAASwD,uBAAyB,SAAUrtD,GACxC,OAAO6pD,EAASR,gBAAgBQ,EAASC,gBAAgB9pD,GAAMA,EAAIkqD,QAASlqD,EAAImqD,SAAUnqD,EAAIgqD,SAAQj7D,EAAUsC,QAAQ+M,eAAgB4B,EAAIqqD,UAEhJR,EAASC,gBAAkB,SAAU9pD,GACjC,OAAOjR,EAAUsC,QAAQsE,gBAAkB5G,EAAUsC,QAAQ6D,MAAQ8K,EAAIgB,MAAQhB,EAAI4pD,SAEzFC,EAASyD,oBAAsB,SAAUC,GACrC,IAAKA,EACD,OAAO,EACX,IAAIN,GAAY,EACZC,GAAa,EACbC,GAAW,EACXC,GAAY,EACZxD,EAAU,KACV4D,EAAUD,EAAevlE,WAAW8F,MAAM,KAC9C,GAAI0/D,EAAQjrE,OAAS,EACjB,IAAK,IAAIpE,EAAI,EAAGA,EAAIqvE,EAAQjrE,OAAQpE,IAAK,CACrC,IAAIsB,EAAMuH,EAASc,YAAYuM,KAAKm5D,EAAQrvE,GAAG+S,eAC/C,OAAQzR,GACJ,IAAK,UACL,IAAK,aACL,IAAK,OACDwtE,GAAY,EACZ,MACJ,IAAK,QACL,IAAK,WACDC,GAAa,EACb,MACJ,IAAK,MACDC,GAAW,EACX,MACJ,IAAK,MACDC,GAAY,EACZ,MACJ,IAAK,KACDxD,EAAUJ,EAAQiE,GAClB,MACJ,IAAK,KACD7D,EAAUJ,EAAQkE,GAClB,MACJ,IAAK,KACD9D,EAAUJ,EAAQmE,GAClB,MACJ,IAAK,KACD/D,EAAUJ,EAAQoE,GAClB,MACJ,IAAK,KACDhE,EAAUJ,EAAQqE,GAClB,MACJ,IAAK,KACDjE,EAAUJ,EAAQsE,GAClB,MACJ,IAAK,KACDlE,EAAUJ,EAAQuE,GAClB,MACJ,IAAK,KACDnE,EAAUJ,EAAQwE,GAClB,MACJ,IAAK,KACDpE,EAAUJ,EAAQyE,GAClB,MACJ,IAAK,MACDrE,EAAUJ,EAAQ0E,IAClB,MACJ,IAAK,MACDtE,EAAUJ,EAAQ2E,IAClB,MACJ,IAAK,MACDvE,EAAUJ,EAAQ4E,IAClB,MACJ,IAAK,SACL,IAAK,QACDxE,EAAUJ,EAAQ6E,MAClB,MACJ,IAAK,OACDzE,EAAUJ,EAAQ8E,KAClB,MACJ,IAAK,MACD1E,EAAUJ,EAAQ+E,IAClB,MACJ,IAAK,OACD3E,EAAUJ,EAAQvvC,KAClB,MACJ,IAAK,QACD2vC,EAAUJ,EAAQtvC,MAClB,MACJ,IAAK,KACD0vC,EAAUJ,EAAQgF,GAClB,MACJ,IAAK,OACD5E,EAAUJ,EAAQiF,KAClB,MACJ,IAAK,SACD7E,EAAUJ,EAAQkF,OAClB,MACJ,IAAK,WACD9E,EAAUJ,EAAQmF,SAClB,MACJ,IAAK,QACD/E,EAAUJ,EAAQoF,MAClB,MACJ,IAAK,MACDhF,EAAUJ,EAAQqF,IAClB,MACJ,IAAK,YACL,IAAK,OACDjF,EAAUJ,EAAQsF,UAClB,MACJ,IAAK,UACDlF,EAAUJ,EAAQuF,YAClB,MACJ,IAAK,SACL,IAAK,MACDnF,EAAUJ,EAAQwF,IAClB,MACJ,IAAK,SACL,IAAK,MACDpF,EAAUJ,EAAQG,OAClB,MACJ,IAAK,SACL,IAAK,MACDC,EAAUJ,EAAQyF,OAClB,MACJ,IAAK,OACDrF,EAAU,IAAI7iC,WAAW,GACzB,MACJ,QACI6iC,EAAUnqE,EAAIsnC,WAAW,SAMrCmoC,MAAMnC,EAASoC,YAAYC,kBAAkB,qBACjD,OAAOvF,EAASR,gBAAgBO,EAASqD,EAAWC,EAAYC,EAAUC,IAEvEvD,EA7JK,GA+JhB5rE,EAAQ4rE,SAAWA,EAEnB,SAAWP,GACPA,EAAYA,EAAkB,KAAI,GAAK,OACvCA,EAAYA,EAAkB,KAAI,OAAS,OAC3CA,EAAYA,EAAmB,MAAI,QAAU,QAC7CA,EAAYA,EAAiB,IAAI,SAAW,MAC5CA,EAAYA,EAAkB,KAAI,UAAY,OALlD,CAMGA,EAAcrrE,EAAQqrE,cAAgBrrE,EAAQqrE,YAAc,KAE/D,SAAWE,GACPA,EAAQA,EAAmB,UAAI,GAAK,YACpCA,EAAQA,EAAa,IAAI,GAAK,MAC9BA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAkB,SAAI,IAAM,WACpCA,EAAQA,EAAa,IAAI,IAAM,MAC/BA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAgB,OAAI,IAAM,SAClCA,EAAQA,EAAkB,SAAI,IAAM,WACpCA,EAAQA,EAAa,IAAI,IAAM,MAC/BA,EAAQA,EAAc,KAAI,IAAM,OAChCA,EAAQA,EAAc,KAAI,IAAM,OAChCA,EAAQA,EAAY,GAAI,IAAM,KAC9BA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAc,KAAI,IAAM,OAChCA,EAAQA,EAAgB,OAAI,IAAM,SAClCA,EAAQA,EAAgB,OAAI,IAAM,SAClCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAe,MAAI,IAAM,QACjCA,EAAQA,EAAiB,QAAI,IAAM,UACnCA,EAAQA,EAAqB,YAAI,IAAM,cACvCA,EAAQA,EAAkB,SAAI,IAAM,WACpCA,EAAQA,EAAkB,SAAI,IAAM,WACpCA,EAAQA,EAAkB,SAAI,IAAM,WACpCA,EAAQA,EAAkB,SAAI,IAAM,WACpCA,EAAQA,EAAkB,SAAI,KAAO,WACrCA,EAAQA,EAAkB,SAAI,KAAO,WACrCA,EAAQA,EAAkB,SAAI,KAAO,WACrCA,EAAQA,EAAkB,SAAI,KAAO,WACrCA,EAAQA,EAAkB,SAAI,KAAO,WACrCA,EAAQA,EAAkB,SAAI,KAAO,WACrCA,EAAQA,EAAkB,SAAI,KAAO,WACrCA,EAAQA,EAAa,IAAI,KAAO,MAChCA,EAAQA,EAAkB,SAAI,KAAO,WACrCA,EAAQA,EAAiB,QAAI,KAAO,UACpCA,EAAQA,EAAgB,OAAI,KAAO,SACnCA,EAAQA,EAAY,GAAI,KAAO,KAC/BA,EAAQA,EAAY,GAAI,KAAO,KAC/BA,EAAQA,EAAY,GAAI,KAAO,KAC/BA,EAAQA,EAAY,GAAI,KAAO,KAC/BA,EAAQA,EAAY,GAAI,KAAO,KAC/BA,EAAQA,EAAY,GAAI,KAAO,KAC/BA,EAAQA,EAAY,GAAI,KAAO,KAC/BA,EAAQA,EAAY,GAAI,KAAO,KAC/BA,EAAQA,EAAY,GAAI,KAAO,KAC/BA,EAAQA,EAAa,IAAI,KAAO,MAChCA,EAAQA,EAAa,IAAI,KAAO,MAChCA,EAAQA,EAAa,IAAI,KAAO,MAChCA,EAAQA,EAAiB,QAAI,KAAO,UACpCA,EAAQA,EAAoB,WAAI,KAAO,aACvCA,EAAQA,EAAmB,UAAI,KAAO,YACtCA,EAAQA,EAAgB,OAAI,KAAO,SACnCA,EAAQA,EAAe,MAAI,KAAO,QAClCA,EAAQA,EAAc,KAAI,KAAO,OACjCA,EAAQA,EAAgB,OAAI,KAAO,SACnCA,EAAQA,EAAsB,aAAI,KAAO,eACzCA,EAAQA,EAAqB,YAAI,KAAO,cACxCA,EAAQA,EAAqB,YAAI,KAAO,cACxCA,EAAQA,EAAmB,UAAI,KAAO,YACtCA,EAAQA,EAAsB,aAAI,KAAO,eACzCA,EAAQA,EAAqB,YAAI,KAAO,cA/F5C,CAgGGA,EAAUvrE,EAAQurE,UAAYvrE,EAAQurE,QAAU,MAK5C,SAAStrE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAIgwE,EAAe,WACf,SAASA,KAmCT,OAjCAA,EAAYE,WAAa,SAAUxrC,GAC/B,OAAOA,EACFzvB,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,SAEvB+6D,EAAYG,WAAa,SAAUzrC,GAC/B,OAAOA,EACFzvB,QAAQ,SAAU,KAClBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MAE1B+6D,EAAYI,sBAAwB,SAAU1rC,GAC1C,OAAOA,EACFzvB,QAAQ,KAAM,OACdA,QAAQ,KAAM,WACdA,QAAQ,MAAO,OACfA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,aAEvB+6D,EAAYK,8BAAgC,SAAU3rC,GAClD,OAAOA,EACFzvB,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,WAEvB+6D,EAAYC,kBAAoB,SAAUK,GACtC,IAAIC,EAAWl+D,SAAS8G,cAAc,YAEtC,OADAo3D,EAASn2D,UAAYk2D,EACdC,EAASvwE,OAEbgwE,EApCQ,GAsCnBlxE,EAAQkxE,YAAcA,GAKf,SAASjxE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQirE,kBAAe,EACvB,IAAIp/C,EAAU/rB,EAAoB,GAC9BwsE,EAAgBxsE,EAAoB,IACpC0lB,EAAQ1lB,EAAoB,GAC5B+gD,EAAoB/gD,EAAoB,GACxC4xE,EAA8B5xE,EAAoB,IAClD6xE,EAA6B7xE,EAAoB,IACjD8xE,EAAkC9xE,EAAoB,IACtD+xE,EAAmC/xE,EAAoB,KACvDgyE,EAAgChyE,EAAoB,KACpDiyE,EAA0BjyE,EAAoB,KAC9CmrE,EAAgB,SAAUl/C,GAE1B,SAASk/C,IACL,OAAkB,OAAXl/C,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAuC/D,OAzCA2nB,EAAQ3pB,UAAU+oE,EAAcl/C,GAIhCk/C,EAAappE,UAAUwlB,aAAe,SAAUtF,GAI5C,OAHIA,EAAIwH,QAAQjlB,OAAS,GACrByd,EAAIC,iBACK9d,KAAKge,eAAesD,EAAM3D,SAASK,eAAeH,KAE3D,KAAK8+B,EAAkBv7B,iBAAiBg8B,eACpCp9C,KAAK68C,YAAY,IAAI2wB,EAA4BM,0BAA0B9tE,OAC3E,MACJ,KAAK28C,EAAkBv7B,iBAAiB67B,kBACpCj9C,KAAK68C,YAAY,IAAI6wB,EAAgCK,8BAA8B/tE,OACnF,MACJ,KAAK28C,EAAkBv7B,iBAAiB87B,eACxC,KAAKP,EAAkBv7B,iBAAiB+7B,aACpCn9C,KAAK68C,YAAY,IAAI8wB,EAAiCK,+BAA+BhuE,OACrF,MACJ,KAAK28C,EAAkBv7B,iBAAiBi8B,yBACxC,KAAKV,EAAkBv7B,iBAAiBk8B,0BACpCt9C,KAAK68C,YAAY,IAAI+wB,EAA8BK,4BAA4BjuE,OAGvFA,KAAKwgB,MAAM2C,aAAatF,IAE5BkpD,EAAappE,UAAU0gD,YAAc,SAAUxgC,GAC3C7d,KAAKwgB,MAAM69B,YAAYxgC,IAE3BkpD,EAAappE,UAAU0lB,WAAa,SAAUxF,GAC1C7d,KAAKwgB,MAAM6C,WAAWxF,IAE1BkpD,EAAappE,UAAU4lB,YAAc,SAAU1F,GACvCA,EAAIwH,QAAQjlB,OAAS,IACfJ,KAAKwgB,iBAAiBqtD,EAAwBK,uBAChDluE,KAAK68C,YAAY,IAAIgxB,EAAwBK,sBAAsBluE,QAC3EA,KAAKwgB,MAAM+C,YAAY1F,IAE3BkpD,EAAappE,UAAU8pC,qBAAuB,WAC1CznC,KAAKwgB,MAAQ,IAAIitD,EAA2BU,yBAAyBnuE,OAElE+mE,EA1CS,CA2ClBqB,EAAc1rB,aAChB5gD,EAAQirE,aAAeA,GAKhB,SAAShrE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQgyE,+BAA4B,EACpC,IAAInmD,EAAU/rB,EAAoB,GAE9BkyE,EAA6B,SAAUjmD,GAEvC,SAASimD,IACL,OAAkB,OAAXjmD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAU8vE,EAA2BjmD,GAI7CimD,EAA0BnwE,UAAUmqC,mBAAqB,SAAUV,GAC/DpnC,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBkxB,eAE5Cq2B,EAA0BnwE,UAAUoqC,oBAAsB,SAAUpwB,GAC3D3X,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBywB,YAAYr/B,EAASzM,EAAIlL,KAAKsnC,gBAAgBp8B,IACvFlL,KAAKygC,QAAQgH,wBAEdqmC,EAZsB,CADClyE,EAAoB,IAcxBgsC,2BAC9B9rC,EAAQgyE,0BAA4BA,GAK7B,SAAS/xE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQqyE,8BAA2B,EACnC,IAAIxmD,EAAU/rB,EAAoB,GAC9BylB,EAAUzlB,EAAoB,GAC9B6hB,EAAQ7hB,EAAoB,GAC5B0lB,EAAQ1lB,EAAoB,GAC5B8hB,EAAU9hB,EAAoB,IAC9B2lB,EAAyB3lB,EAAoB,IAE7CuyE,EAA4B,SAAUtmD,GAEtC,SAASsmD,IACL,OAAkB,OAAXtmD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAsD/D,OAxDA2nB,EAAQ3pB,UAAUmwE,EAA0BtmD,GAI5CsmD,EAAyBxwE,UAAUwlB,aAAe,SAAUtF,GACxD,IAAI7S,EAAQhL,KAGZ,GAFAA,KAAKwkB,eAAgB,EACrBw3B,aAAah8C,KAAKouE,YACS,IAAvBvwD,EAAIwH,QAAQjlB,OAAc,CAC1B,IAAI0lB,EAASxE,EAAM3D,SAASK,eAAeH,GACvCwwD,EAAS,CACT3vD,MAAOb,EACPlG,SAAU,IAAI0J,EAAQzJ,MAAM0J,EAAM3D,SAASS,UAAUP,GAAMyD,EAAM3D,SAASU,UAAUR,KAExF,GAAIJ,EAAM3Q,SAASsE,aAAa0U,EAAQvE,EAAuBwF,qBAAqBC,WAAWC,uBAC3FxJ,EAAM3Q,SAASsE,aAAa0U,EAAQvE,EAAuBwF,qBAAqBC,WAAWE,oBAAqB,CAChHlnB,KAAKwkB,eAAgB,EACrB,IAAIiB,EAAKK,EAAOpU,aAAa,iBACzB1R,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB8V,cAAgB5W,GACxDzlB,KAAKygC,QAAQ3gB,QAAQynB,iBAAiB9hB,GAC1C4oD,EAAa,KAAI,aACjBA,EAAY,IAAI5oD,EAChBzlB,KAAKygC,QAAQ3gB,QAAQoG,WAAWG,cAAcgoD,QAG9CruE,KAAKouE,WAAaj9D,YAAW,WACzB,IAAIoJ,EAAQvP,EAAMsjE,aAAazwD,GAC/B7S,EAAM4Z,oBAAoBrK,GAC1B,IAAImO,EAAO1d,EAAMy1B,QAAQ3gB,QAAQoF,UAAUC,MAAM5K,GACjD8zD,EAAa,KAAI,OACjBA,EAAY,IAAI3lD,GAAQA,EAAKlD,KAAKC,GAClCza,EAAMy1B,QAAQ3gB,QAAQoG,WAAWG,cAAcgoD,KAChD,OAGfF,EAAyBxwE,UAAU0gD,YAAc,SAAUjX,KAC3D+mC,EAAyBxwE,UAAU0lB,WAAa,SAAUxF,GACtDm+B,aAAah8C,KAAKouE,YACbpuE,KAAKwkB,eACNxkB,KAAK4kB,oBAAoB5kB,KAAKsuE,aAAazwD,KAEnDswD,EAAyBxwE,UAAU4lB,YAAc,SAAU6jB,GACvD4U,aAAah8C,KAAKouE,YAClBpuE,KAAKwkB,eAAgB,GAEzB2pD,EAAyBxwE,UAAU2wE,aAAe,SAAUzwD,GACxD,IAEI6I,EAFIhJ,EAAQc,WAAWH,UAAUR,GACrBJ,EAAM3Q,SAAS4F,qBAAqB1S,KAAKygC,QAAQ3gB,QAAQ6D,UAEzE,OAAO3c,KAAKO,MAAMmf,EAAY1mB,KAAKygC,QAAQ3gB,QAAQ6G,SAAS9Y,SAEhEsgE,EAAyBxwE,UAAUinB,oBAAsB,SAAUrK,GAC/D,IAAIqM,EAAc5mB,KAAKygC,QAAQ3gB,QAAQoF,UAAUC,MAAM5K,GACnDqM,GACA5mB,KAAKygC,QAAQ3gB,QAAQoG,WAAWW,yBAAyBD,EAAYpB,KAAKC,IAAI,IAE/E0oD,EAzDqB,CADPvyE,EAAoB,IA2DxB4kC,kBACrB1kC,EAAQqyE,yBAA2BA,GAK5B,SAASpyE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQiyE,mCAAgC,EACxC,IAAIpmD,EAAU/rB,EAAoB,GAE9BmyE,EAAiC,SAAUlmD,GAE3C,SAASkmD,IACL,OAAkB,OAAXlmD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAU+vE,EAA+BlmD,GAIjDkmD,EAA8BpwE,UAAUmqC,mBAAqB,SAAUV,GACnEpnC,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB2vB,mBAE5C63B,EAA8BpwE,UAAUoqC,oBAAsB,SAAUpwB,GACpE,IAAIgzD,EAAmB3qE,KAAK2gC,eAAehpB,GAC3C3X,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBwvB,gBAAgB40B,IAErDoD,EAZ0B,CADHnyE,EAAoB,IAcxBgsC,2BAC9B9rC,EAAQiyE,8BAAgCA,GAKjC,SAAShyE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQkyE,oCAAiC,EACzC,IAAIrmD,EAAU/rB,EAAoB,GAC9B2yE,EAA8B3yE,EAAoB,IAClD+gD,EAAoB/gD,EAAoB,GACxC0lB,EAAQ1lB,EAAoB,GAC5BoyE,EAAkC,SAAUnmD,GAE5C,SAASmmD,IACL,OAAkB,OAAXnmD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAmB/D,OArBA2nB,EAAQ3pB,UAAUgwE,EAAgCnmD,GAIlDmmD,EAA+BrwE,UAAUwlB,aAAe,SAAUtF,GAC9DgK,EAAOlqB,UAAUwlB,aAAajnB,KAAK8D,KAAM6d,GACzC7d,KAAK8lB,OAAS9lB,KAAKygC,QAAQziB,eAAesD,EAAM3D,SAASK,eAAeH,KAE5EmwD,EAA+BrwE,UAAUmqC,mBAAqB,SAAUV,GAChEpnC,KAAK8lB,QAAU62B,EAAkBv7B,iBAAiB87B,eAClDl9C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBuwB,eAExC92C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBmwB,cAEhDs3B,EAA+BrwE,UAAUoqC,oBAAsB,SAAUpwB,GACrE,IAAIgzD,EAAmB3qE,KAAK2gC,eAAehpB,GACvC3X,KAAK8lB,QAAU62B,EAAkBv7B,iBAAiB87B,gBAClDl9C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBqwB,aAAa+zB,GACrD3qE,KAAK8lB,QAAU62B,EAAkBv7B,iBAAiB+7B,cAClDn9C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB6vB,WAAWu0B,IAEpDqD,EAtB2B,CAuBpCO,EAA4B3mC,2BAC9B9rC,EAAQkyE,+BAAiCA,GAKlC,SAASjyE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQmyE,iCAA8B,EACtC,IAAItmD,EAAU/rB,EAAoB,GAC9BisC,EAA0BjsC,EAAoB,IAC9C+gD,EAAoB/gD,EAAoB,GACxC6hB,EAAQ7hB,EAAoB,GAC5B0lB,EAAQ1lB,EAAoB,GAC5BylB,EAAUzlB,EAAoB,GAC9B6sE,EAAgC7sE,EAAoB,IACpD8hB,EAAU9hB,EAAoB,IAC9BqyE,EAA+B,SAAUpmD,GAEzC,SAASomD,IACL,OAAkB,OAAXpmD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAiC/D,OAnCA2nB,EAAQ3pB,UAAUiwE,EAA6BpmD,GAI/ComD,EAA4BtwE,UAAUwlB,aAAe,SAAUtF,GAC3DA,EAAIC,iBACJ,IAAI8/B,EAAgBt8B,EAAM3D,SAASK,eAAeH,GAClD7d,KAAK8lB,OAAS9lB,KAAKygC,QAAQziB,eAAe4/B,GAC1C,IAAIzqC,EAAMnT,KAAK2gC,eAAe,IAAItf,EAAQzJ,MAAM6F,EAAM3Q,SAAS8G,qBAAqBgqC,GAAiBA,EAAcnnC,YAAc,EAAGgH,EAAM3Q,SAAS4F,qBAAqBkrC,GAAiBA,EAAc/B,aAAe,IACtN77C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBsxB,gBAAgB1kC,IAE5D86D,EAA4BtwE,UAAU0lB,WAAa,SAAUxF,GACzD,IAAIggC,EAAmB79C,KAAK2gC,eAAe,IAAItf,EAAQzJ,MAAM6F,EAAM3Q,SAAS8G,qBAAqB5T,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB+yB,0BAA4Bt5C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB+yB,yBAAyB7iC,YAAc,EAAGgH,EAAM3Q,SAAS4F,qBAAqB1S,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB+yB,0BAA4Bt5C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB+yB,yBAAyBuC,aAAe,IAC3aiC,EAAiB99C,KAAK2gC,eAAe,IAAItf,EAAQzJ,MAAM6F,EAAM3Q,SAAS8G,qBAAqB5T,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBizB,2BAA6Bx5C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBizB,0BAA0B/iC,YAAc,EAAGgH,EAAM3Q,SAAS4F,qBAAqB1S,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBizB,2BAA6Bx5C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBizB,0BAA0BqC,aAAe,IAC7akC,EAAmB/9C,KAAK2gC,eAAe,IAAItf,EAAQzJ,MAAM8F,EAAQc,WAAWJ,UAAUP,GAAMH,EAAQc,WAAWH,UAAUR,KACzHld,EAASX,KAAKg+C,cAAcD,EAAkBF,GAAoBlB,EAAkBv7B,iBAAiBm8B,0BACrGv9C,KAAKg+C,cAAcD,EAAkBD,GAAkBnB,EAAkBv7B,iBAAiBo8B,2BAA6B,KACvHzhC,EAAOpb,IAAWg8C,EAAkBv7B,iBAAiBm8B,2BAA6B58C,GAAUg8C,EAAkBv7B,iBAAiBo8B,2BAC/HirB,EAA8B/qB,cAAc19C,KAAK8lB,QAAQnlB,GAAU,KACvEX,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB4xB,cAAcp8B,GACtD/b,KAAKygC,QAAQgH,wBAEjBwmC,EAA4BtwE,UAAU4lB,YAAc,SAAU1F,GAC1DA,EAAIC,iBACJ,IAAImgC,EAAcj+C,KAAK2gC,eAAe,IAAItf,EAAQzJ,MAAM8F,EAAQc,WAAWJ,UAAUP,GAAMH,EAAQc,WAAWH,UAAUR,KACpHqgC,EAAiBl3C,KAAKO,MAAM02C,EAAY57C,EAAIrC,KAAKygC,QAAQ3gB,QAAQ6G,SAAS9Y,QAC9E7N,KAAKygC,QAAQ3gB,QAAQyG,mBAAmB0xB,kBAAkBgG,GACtDj+C,KAAKygC,QAAQ3gB,QAAQoF,UAAUsa,MAAMra,MAAM+4B,IAC3Cl+C,KAAKygC,QAAQ3gB,QAAQyG,mBAAmBovB,wBAAwBuI,IAExE+vB,EAA4BtwE,UAAUqgD,cAAgB,SAAUG,EAAUC,GACtE,OAAIp3C,KAAKC,IAAIm3C,EAAWlzC,EAAIizC,EAASjzC,IAAM,IAAMlE,KAAKC,IAAIm3C,EAAW/7C,EAAI87C,EAAS97C,IAAM,IAIrF4rE,EApCwB,CAqCjCpmC,EAAwBG,uBAC1BlsC,EAAQmyE,4BAA8BA,GAK/B,SAASlyE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQoyE,2BAAwB,EAChC,IAAIvmD,EAAU/rB,EAAoB,GAC9B4yE,EAAqB5yE,EAAoB,IACzCylB,EAAUzlB,EAAoB,GAC9B6hB,EAAQ7hB,EAAoB,GAE5BsyE,EAAyB,SAAUrmD,GAEnC,SAASqmD,IACL,OAAkB,OAAXrmD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KA8C/D,OAhDA2nB,EAAQ3pB,UAAUkwE,EAAuBrmD,GAIzCqmD,EAAsBvwE,UAAUwlB,aAAe,SAAUikB,KACzD8mC,EAAsBvwE,UAAU0gD,YAAc,SAAUjX,KACxD8mC,EAAsBvwE,UAAU0lB,WAAa,SAAU+jB,GACnDpnC,KAAKyuE,aAAe,KACpBzuE,KAAKygC,QAAQgH,wBAEjBymC,EAAsBvwE,UAAU4lB,YAAc,SAAU1F,GAGpD,GAFAA,EAAImB,kBACJnB,EAAIC,iBACAD,EAAIwH,QAAQjlB,OAAS,EAAG,CACxB,IAAIsuE,EAAW1uE,KAAK2uE,iBAAiB9wD,GACrC,GAAI7d,KAAKyuE,aAAc,CACnB,IAAI1nE,EAAO/G,KAAKyuE,aAAeC,EAC/B,GAAI1nE,KAAKC,IAAIF,GAnBD,EAmBgC,CACxC,IAAIuR,EAAUtY,KAAK4uE,kBAAkB/wD,GAAK3S,EACtCnE,EAAO,EACP/G,KAAKygC,QAAQ3gB,QAAQ8mC,QAAQtuC,GAE7BtY,KAAKygC,QAAQ3gB,QAAQumC,OAAO/tC,GAChCtY,KAAKyuE,aAAeC,QAIxB1uE,KAAKyuE,aAAeC,IAGhCR,EAAsBvwE,UAAUgxE,iBAAmB,SAAU9wD,GACzD,IAAIgxD,EAAM,IAAIxtD,EAAQzJ,MAAMiG,EAAIwH,QAAQ,GAAGhG,QAASxB,EAAIwH,QAAQ,GAAG/F,SAC/DwvD,EAAM,IAAIztD,EAAQzJ,MAAMiG,EAAIwH,QAAQ,GAAGhG,QAASxB,EAAIwH,QAAQ,GAAG/F,SACnE,OAAOtf,KAAK+uE,YAAYF,EAAKC,IAEjCZ,EAAsBvwE,UAAUoxE,YAAc,SAAUtrE,EAAGhE,GACvD,OAAOuH,KAAKo0B,KAAKp0B,KAAKkiC,IAAIzlC,EAAEyH,EAAIzL,EAAEyL,EAAG,GAAKlE,KAAKkiC,IAAIzlC,EAAEpB,EAAI5C,EAAE4C,EAAG,KAElE6rE,EAAsBvwE,UAAUixE,kBAAoB,SAAU/wD,GAC1D,IAAI7S,EAAQhL,KACZ,OAAOA,KAAKgvE,sBAAsBnxD,GAAK,SAAUoxD,GAC7C,OAAO,IAAI5tD,EAAQzJ,MAAMq3D,EAAM1jD,MAAQ9N,EAAM3Q,SAAS8G,qBAAqB5I,EAAMy1B,QAAQ3gB,QAAQ6kC,kBAAkBG,cAAemqB,EAAMzjD,MAAQ/N,EAAM3Q,SAAS4F,qBAAqB1H,EAAMy1B,QAAQ3gB,QAAQ6kC,kBAAkBG,mBAGpOopB,EAAsBvwE,UAAUqxE,sBAAwB,SAAUnxD,EAAKqxD,GACnE,GAAIrxD,EAAIwH,QAAQjlB,OAAS,EACrB,OAAO,IAAIihB,EAAQzJ,OAAOs3D,EAASrxD,EAAIwH,QAAQ,IAAIna,EAAIgkE,EAASrxD,EAAIwH,QAAQ,IAAIna,GAAK,GAAIgkE,EAASrxD,EAAIwH,QAAQ,IAAIhjB,EAAI6sE,EAASrxD,EAAIwH,QAAQ,IAAIhjB,GAAK,IAErJ6rE,EAjDkB,CAkD3BM,EAAmBhuC,kBACrB1kC,EAAQoyE,sBAAwBA,GAKzB,SAASnyE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQksD,uBAAoB,EAC5B,IAAIA,EAAqB,WACrB,SAASA,EAAkBh7C,EAASwU,GAChCxhB,KAAKgN,QAAUA,EACfhN,KAAKmiB,gBAAkB,WAAcX,EAAUY,cAC/CpiB,KAAKgN,QAAQ4W,iBAAiB,SAAU5jB,KAAKmiB,iBAuDjD,OArDA1lB,OAAOC,eAAesrD,EAAkBrqD,UAAW,YAAa,CAC5Df,IAAK,WACD,OAAOoD,KAAKgN,QAAQuC,WAExB3K,IAAK,SAAU5H,GACXgD,KAAKgN,QAAQuC,UAAYvS,GAE7BL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAesrD,EAAkBrqD,UAAW,aAAc,CAC7Df,IAAK,WACD,OAAOoD,KAAKgN,QAAQ+C,YAExBnL,IAAK,SAAU5H,GACXgD,KAAKgN,QAAQ+C,WAAa/S,GAE9BL,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAesrD,EAAkBrqD,UAAW,cAAe,CAC9Df,IAAK,WACD,OAAOoD,KAAKgN,QAAQu9D,aAExB5tE,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAesrD,EAAkBrqD,UAAW,eAAgB,CAC/Df,IAAK,WACD,OAAOoD,KAAKgN,QAAQw9D,cAExB7tE,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAesrD,EAAkBrqD,UAAW,aAAc,CAC7Df,IAAK,WACD,OAAO,GAEXD,YAAY,EACZqjB,cAAc,IAElBgoC,EAAkBrqD,UAAUinD,SAAW,WACnC,OAAO5kD,KAAKgN,QAAQ8D,aAExBk3C,EAAkBrqD,UAAUknD,UAAY,WACpC,OAAO7kD,KAAKgN,QAAQsH,cAExB0zC,EAAkBrqD,UAAUmnD,WAAa,WACrC,OAAO9kD,KAAKgN,SAEhBg7C,EAAkBrqD,UAAU4mB,aAAe,WACvCvkB,KAAKgN,QAAQ8W,oBAAoB,SAAU9jB,KAAKmiB,kBAE7C6lC,EA3Dc,GA6DzBlsD,EAAQksD,kBAAoBA,GAKrB,SAASjsD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ8yD,4BAAyB,EACjC,IAAIugB,EAAoBvzE,EAAoB,KACxCwzE,EAAkBxzE,EAAoB,IACtCyzE,EAAwBzzE,EAAoB,IAC5CgzD,EAA0B,WAC1B,SAASA,IACL5uD,KAAK+uD,eAAiB,IAAIogB,EAAkBG,gBAC5CtvE,KAAKuvE,UAAW,EA4LpB,OA1LA3gB,EAAuBjxD,UAAU6xE,mBAAqB,SAAUC,GACvDzvE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,qBAAsBD,IAExD7gB,EAAuBjxD,UAAU2nE,kBAAoB,SAAU9/C,EAAMmc,EAAUguC,GACtE3vE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,oBAAqBlqD,EAAMmc,EAAUguC,IAEvE/gB,EAAuBjxD,UAAUiyE,mBAAqB,SAAUH,GACvDzvE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,qBAAsBD,IAExD7gB,EAAuBjxD,UAAU6nE,kBAAoB,SAAUqK,EAAQF,EAAenqD,GAC7ExlB,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,oBAAqBG,EAAQF,EAAenqD,IAE9EopC,EAAuBjxD,UAAUmyE,mBAAqB,SAAUL,GACvDzvE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,qBAAsBD,IAExD7gB,EAAuBjxD,UAAUoyE,iBAAmB,SAAUN,GACrDzvE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,mBAAoBD,IAEtD7gB,EAAuBjxD,UAAUqyE,4BAA8B,SAAUP,GAChEzvE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,8BAA+BD,IAEjE7gB,EAAuBjxD,UAAUuiC,uBAAyB,SAAU2vC,EAAQtwC,EAAUowC,GAC7E3vE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,yBAA0BG,EAAQtwC,EAAUowC,IAE9E/gB,EAAuBjxD,UAAUwiC,6BAA+B,SAAU0vC,EAAQtwC,EAAUowC,GACnF3vE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,+BAAgCG,EAAQtwC,EAAUowC,IAEpF/gB,EAAuBjxD,UAAU0iC,uBAAyB,SAAUwvC,EAAQtwC,EAAUowC,GAC7E3vE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,yBAA0BG,EAAQtwC,EAAUowC,IAE9E/gB,EAAuBjxD,UAAU2iC,qBAAuB,SAAUuvC,EAAQtwC,EAAUowC,GAC3E3vE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,uBAAwBG,EAAQtwC,EAAUowC,IAE5E/gB,EAAuBjxD,UAAUyiC,0BAA4B,SAAUyvC,EAAQtwC,EAAUowC,GAChF3vE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,4BAA6BG,EAAQtwC,EAAUowC,IAEjF/gB,EAAuBjxD,UAAU4iC,uBAAyB,SAAUsvC,EAAQtwC,EAAUowC,GAC7E3vE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,yBAA0BG,EAAQtwC,EAAUowC,IAE9E/gB,EAAuBjxD,UAAUsyE,wBAA0B,SAAUzqD,EAAMmqD,GAClE3vE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,0BAA2BlqD,EAAMmqD,IAEnE/gB,EAAuBjxD,UAAUuyE,0BAA4B,SAAUT,GAC9DzvE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,4BAA6BD,IAE/D7gB,EAAuBjxD,UAAU2mE,yBAA2B,SAAU/nC,EAAYoF,EAAUguC,GACnF3vE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,2BAA4BnzC,EAAYoF,EAAUguC,IAEpF/gB,EAAuBjxD,UAAUwyE,yBAA2B,SAAUV,GAC7DzvE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,2BAA4BD,IAE9D7gB,EAAuBjxD,UAAU6mE,wBAA0B,SAAU4L,EAAcT,EAAepzC,GACzFv8B,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,0BAA2BU,EAAcT,EAAepzC,IAE1FqyB,EAAuBjxD,UAAU0yE,uBAAyB,SAAUZ,GAC3DzvE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,yBAA0BD,IAE5D7gB,EAAuBjxD,UAAUinE,sBAAwB,SAAU/iC,EAAUF,EAAUguC,GAC9E3vE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,wBAAyB7tC,EAAUF,EAAUguC,IAE/E/gB,EAAuBjxD,UAAU2yE,uBAAyB,SAAUb,GAC3DzvE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,yBAA0BD,IAE5D7gB,EAAuBjxD,UAAUknE,sBAAwB,SAAUC,EAAY6K,EAAe9tC,GACrF7hC,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,wBAAyB5K,EAAY6K,EAAe9tC,IAEtF+sB,EAAuBjxD,UAAU0nE,2BAA6B,SAAUP,EAAYvlC,EAAUowC,GACrF3vE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,6BAA8B5K,EAAYvlC,EAAUowC,IAEtF/gB,EAAuBjxD,UAAU4yE,wBAA0B,SAAUd,GAC5DzvE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,0BAA2BD,IAE7D7gB,EAAuBjxD,UAAUonE,uBAAyB,SAAU9iC,EAAYN,EAAUguC,GACjF3vE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,yBAA0BztC,EAAYN,EAAUguC,IAElF/gB,EAAuBjxD,UAAU6yE,0BAA4B,SAAUf,GAC9DzvE,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,4BAA6BD,IAE/D7gB,EAAuBjxD,UAAUqnE,yBAA2B,SAAUyL,EAAcd,EAAe1tC,GAC1FjiC,KAAKuvE,UACNvvE,KAAK+uD,eAAe2gB,MAAM,2BAA4Be,EAAcd,EAAe1tC,IAE3F2sB,EAAuBjxD,UAAU+2D,6BAA+B,SAAU3oB,GACtE/rC,KAAK+uD,eAAe2gB,MAAM,+BAAgC3jC,IAE9D6iB,EAAuBjxD,UAAU+yE,wBAA0B,SAAUzuC,GACjE,IAAIwtC,EAAO,IAAIJ,EAAsBpnC,6BAA6BhG,GAElE,OADAjiC,KAAKwwE,0BAA0Bf,IACvBA,EAAKzuC,QAEjB4tB,EAAuBjxD,UAAUgzE,uBAAyB,SAAUnrD,EAAMxoB,EAAO2kC,GAC7E,OAAO3hC,KAAK4wE,kBAAkBprD,EAAM,QAASxoB,EAAO2kC,IAExDitB,EAAuBjxD,UAAUkzE,6BAA+B,SAAUrrD,EAAMxoB,EAAO2kC,GACnF,OAAO3hC,KAAK4wE,kBAAkBprD,EAAM,cAAexoB,EAAO2kC,IAE9DitB,EAAuBjxD,UAAUmzE,0BAA4B,SAAUtrD,EAAMxoB,EAAO2kC,GAChF,OAAO3hC,KAAK4wE,kBAAkBprD,EAAM,WAAYxoB,EAAO2kC,IAE3DitB,EAAuBjxD,UAAUozE,uBAAyB,SAAUvrD,EAAMxoB,EAAO2kC,GAC7E,OAAO3hC,KAAK4wE,kBAAkBprD,EAAM,QAASxoB,EAAO2kC,IAExDitB,EAAuBjxD,UAAUqzE,uBAAyB,SAAUxrD,EAAMxoB,EAAO2kC,GAC7E,OAAO3hC,KAAK4wE,kBAAkBprD,EAAM,QAASxoB,EAAO2kC,IAExDitB,EAAuBjxD,UAAUszE,qBAAuB,SAAUzrD,EAAMxoB,EAAO2kC,GAC3E,OAAO3hC,KAAK4wE,kBAAkBprD,EAAM,MAAOxoB,EAAO2kC,IAEtDitB,EAAuBjxD,UAAUuzE,6BAA+B,SAAU1rD,EAAM4xB,EAAUC,EAAQ1V,GAC9F,IAAI8tC,EAAO,IAAIL,EAAgB7wB,sBAAsB/4B,EAAM,CAAC,QAAS,OAAQ,CAAC4xB,EAAUC,IAExF,OADAr3C,KAAK8vE,mBAAmBL,IACnBA,EAAKzuC,SACNW,EAAS8tC,EAAY,MAAGA,EAAU,MAC3B,IAIf7gB,EAAuBjxD,UAAUizE,kBAAoB,SAAUprD,EAAMu5B,EAAWxf,EAAUoC,GACtF,IAAIwvC,EAAW3rD,EAAKu5B,GACpB,GAAIoyB,IAAa5xC,EAAU,CACvB,IAAIkwC,EAAO,IAAIL,EAAgB7wB,sBAAsB/4B,EAAM,CAACu5B,GAAY,CAACxf,IAEzE,GADAv/B,KAAK8vE,mBAAmBL,IACnBA,EAAKzuC,QAAUmwC,IAAa1B,EAAK1wB,GAElC,OADApd,EAAS8tC,EAAK1wB,KACP,EAGf,OAAO,GAEX6P,EAAuBjxD,UAAUyzE,0BAA4B,SAAU5rD,EAAMo5B,EAAWjd,GACpF,IAAI0vC,EAAS,CAAC,QAAS,WAAY,QAAS,MAAO,SAC/C7mD,EAAS6mD,EAAOpmE,KAAI,SAAU7I,GAAK,OAAOw8C,EAAUx8C,MACpDqtE,EAAO,IAAIL,EAAgB7wB,sBAAsB/4B,EAAM6rD,EAAQ7mD,GAEnE,OADAxqB,KAAK8vE,mBAAmBL,IACnBA,EAAKzuC,SACNW,EAAS8tC,EAAK7wB,YACP,IAIfgQ,EAAuBjxD,UAAUu5C,gBAAkB,SAAU1xB,EAAM4xB,EAAUC,EAAQ1V,GACjF,IAAI8tC,EAAO,IAAIL,EAAgB7wB,sBAAsB/4B,EAAM,CAAC,QAAS,OAAQ,CAAC4xB,EAAUC,IAExF,OADAr3C,KAAK+vE,iBAAiBN,IACjBA,EAAKzuC,SACNW,EAAS8tC,EAAY,MAAGA,EAAU,MAC3B,IAIf7gB,EAAuBjxD,UAAU2zE,+BAAiC,SAAUluC,EAAQzB,GAChF,IAAI8tC,EAAO,IAAIL,EAAgB9wB,+BAA+Blb,GAE9D,OADApjC,KAAKgwE,4BAA4BP,IAC5BA,EAAKzuC,SACNW,EAAS8tC,IACF,IAIf7gB,EAAuBjxD,UAAU63D,KAAO,WAAcx1D,KAAKuvE,UAAW,GACtE3gB,EAAuBjxD,UAAU+3D,OAAS,WAAc11D,KAAKuvE,UAAW,GACjE3gB,EA/LmB,GAiM9B9yD,EAAQ8yD,uBAAyBA,GAK1B,SAAS7yD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQwzE,qBAAkB,EAC1B,IAAIA,EAAmB,WACnB,SAASA,IACLtvE,KAAKuxE,UAAY,GA+BrB,OA7BAjC,EAAgB3xE,UAAUomB,IAAM,SAAUytD,GACtC,IAAKA,EACD,MAAM,IAAIvwD,MAAM,SACfjhB,KAAKyxE,iBAAiBD,IACvBxxE,KAAKuxE,UAAUtuE,KAAKuuE,IAE5BlC,EAAgB3xE,UAAU2rB,OAAS,SAAUkoD,GACzC,IAAK,IAAIx1E,EAAI,EAAG01E,OAAkB,EAAQA,EAAkB1xE,KAAKuxE,UAAUv1E,GAAIA,IAC3E,GAAI01E,IAAoBF,EAAU,CAC9BxxE,KAAKuxE,UAAU5nD,OAAO3tB,EAAG,GACzB,QAGZszE,EAAgB3xE,UAAU+xE,MAAQ,SAAUiC,GAExC,IADA,IAAIlC,EAAO,GACFlvD,EAAK,EAAGA,EAAKpgB,UAAUC,OAAQmgB,IACpCkvD,EAAKlvD,EAAK,GAAKpgB,UAAUogB,GAE7B,IAAK,IAAIvkB,EAAI,EAAGw1E,OAAW,EAAQA,EAAWxxE,KAAKuxE,UAAUv1E,GAAIA,IAAK,CAClE,IAAIkvB,EAAOsmD,EAASG,GACX,OAATzmD,QAA0B,IAATA,GAA2BA,EAAK7qB,MAAMmxE,EAAU/B,KAGzEH,EAAgB3xE,UAAU8zE,iBAAmB,SAAUD,GACnD,IAAK,IAAIx1E,EAAI,EAAGC,EAAI+D,KAAKuxE,UAAUnxE,OAAQpE,EAAIC,EAAGD,IAC9C,GAAIgE,KAAKuxE,UAAUv1E,KAAOw1E,EACtB,OAAO,EACf,OAAO,GAEJlC,EAjCY,GAmCvBxzE,EAAQwzE,gBAAkBA,GAKnB,SAASvzE,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ+nD,oBAAiB,EACzB,IAAI+tB,EAAiBh2E,EAAoB,KACrCi2E,EAA2Bj2E,EAAoB,KAC/Ck2E,EAAuBl2E,EAAoB,KAC3Cm2E,EAAqBn2E,EAAoB,KACzCo2E,EAAmBp2E,EAAoB,KACvCq2E,EAA8Br2E,EAAoB,IAClDs2E,EAAoBt2E,EAAoB,KACxCu2E,EAAkBv2E,EAAoB,KACtCw2E,EAAoBx2E,EAAoB,KACxCy2E,EAAiBz2E,EAAoB,KACrC02E,EAAsB12E,EAAoB,KAC1C22E,EAA2B32E,EAAoB,KAC/C42E,EAAuB52E,EAAoB,IAC3C62E,EAA+B72E,EAAoB,KACnDioD,EAAkB,WAClB,SAASA,EAAe/jC,GACpB9f,KAAK8f,QAAUA,EACf9f,KAAK0yE,SAAW,GAChB1yE,KAAK2yE,cAAcR,EAAgBS,mBAAmBC,WAAY7yE,KAAK+wD,mBACvE/wD,KAAK2yE,cAAcR,EAAgBS,mBAAmBE,cAAe9yE,KAAK+yE,sBAC1E/yE,KAAK2yE,cAAcR,EAAgBS,mBAAmBI,WAAYhzE,KAAKywD,mBACvEzwD,KAAK2yE,cAAcR,EAAgBS,mBAAmB1yB,iBAAkBlgD,KAAKu4C,yBAC7Ev4C,KAAK2yE,cAAcR,EAAgBS,mBAAmBK,gBAAiBjzE,KAAK2lB,oBAC5E3lB,KAAK2yE,cAAcR,EAAgBS,mBAAmBM,mBAAoB,IAAItB,EAAeuB,0BAA0BnzE,KAAK8f,UAC5H9f,KAAK2yE,cAAcR,EAAgBS,mBAAmBQ,KAAM,IAAIhB,EAAkBiB,YAAYrzE,KAAK8f,UACnG9f,KAAK2yE,cAAcR,EAAgBS,mBAAmBU,KAAM,IAAIlB,EAAkBmB,YAAYvzE,KAAK8f,UACnG9f,KAAK2yE,cAAcR,EAAgBS,mBAAmBY,OAAQ,IAAInB,EAAeoB,cAAczzE,KAAK8f,UACpG9f,KAAK2yE,cAAcR,EAAgBS,mBAAmBc,QAAS,IAAIrB,EAAesB,eAAe3zE,KAAK8f,UACtG9f,KAAK2yE,cAAcR,EAAgBS,mBAAmBgB,WAAY,IAAItB,EAAoBuB,wBAAwB7zE,KAAK8f,UACvH9f,KAAK2yE,cAAcR,EAAgBS,mBAAmBkB,YAAa,IAAIvB,EAAyBwB,mBAAmB/zE,KAAK8f,UACxH9f,KAAK2yE,cAAcR,EAAgBS,mBAAmBoB,UAAW,IAAIzB,EAAyB0B,iBAAiBj0E,KAAK8f,UAsHxH,OApHArjB,OAAOC,eAAemnD,EAAelmD,UAAW,oBAAqB,CACjEf,IAAK,WAAc,OAAO,IAAIg1E,EAAesC,kBAAkBl0E,KAAK8f,UACpEnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,uBAAwB,CACpEf,IAAK,WAAc,OAAO,IAAIg1E,EAAeuC,qBAAqBn0E,KAAK8f,UACvEnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,oBAAqB,CACjEf,IAAK,WAAc,OAAO,IAAIg1E,EAAewC,kBAAkBp0E,KAAK8f,UACpEnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,yBAA0B,CACtEf,IAAK,WAAc,OAAO,IAAIi1E,EAAyBwC,iBAAiBr0E,KAAK8f,UAC7EnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,+BAAgC,CAC5Ef,IAAK,WAAc,OAAO,IAAIi1E,EAAyByC,uBAAuBt0E,KAAK8f,UACnFnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,4BAA6B,CACzEf,IAAK,WAAc,OAAO,IAAIi1E,EAAyB0C,oBAAoBv0E,KAAK8f,UAChFnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,yBAA0B,CACtEf,IAAK,WAAc,OAAO,IAAIi1E,EAAyB2C,iBAAiBx0E,KAAK8f,UAC7EnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,yBAA0B,CACtEf,IAAK,WAAc,OAAO,IAAIi1E,EAAyB4C,iBAAiBz0E,KAAK8f,UAC7EnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,kBAAmB,CAC/Df,IAAK,WAAc,OAAO,IAAIi1E,EAAyB6C,gBAAgB10E,KAAK8f,UAC5EnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,uBAAwB,CACpEf,IAAK,WAAc,OAAO,IAAIi1E,EAAyB8C,eAAe30E,KAAK8f,UAC3EnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,oBAAqB,CACjEf,IAAK,WAAc,OAAO,IAAIg1E,EAAegD,kBAAkB50E,KAAK8f,UACpEnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,0BAA2B,CACvEf,IAAK,WAAc,OAAO,IAAIk1E,EAAqB+C,wBAAwB70E,KAAK8f,UAChFnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,0BAA2B,CACvEf,IAAK,WAAc,OAAO,IAAIk1E,EAAqBgD,wBAAwB90E,KAAK8f,UAChFnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,wBAAyB,CACrEf,IAAK,WAAc,OAAO,IAAIm1E,EAAmBgD,sBAAsB/0E,KAAK8f,UAC5EnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,wBAAyB,CACrEf,IAAK,WAAc,OAAO,IAAIm1E,EAAmBiD,sBAAsBh1E,KAAK8f,UAC5EnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,wBAAyB,CACrEf,IAAK,WAAc,OAAO,IAAIm1E,EAAmBkD,sBAAsBj1E,KAAK8f,UAC5EnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,0BAA2B,CACvEf,IAAK,WAAc,OAAO,IAAIm1E,EAAmBmD,wBAAwBl1E,KAAK8f,UAC9EnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,6BAA8B,CAC1Ef,IAAK,WAAc,OAAO,IAAI61E,EAA6B0C,qBAAqBn1E,KAAK8f,UACrFnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,qBAAsB,CAClEf,IAAK,WAAc,OAAO,IAAIo1E,EAAiBoD,sBAAsBp1E,KAAK8f,UAC1EnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,gCAAiC,CAC7Ef,IAAK,WAAc,OAAO,IAAIq1E,EAA4BpyB,iCAAiC7/C,KAAK8f,UAChGnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,yBAA0B,CACtEf,IAAK,WAAc,OAAO,IAAI41E,EAAqBnwC,mBAAmBriC,KAAK8f,UAC3EnjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAemnD,EAAelmD,UAAW,sBAAuB,CACnEf,IAAK,WAAc,OAAO,IAAIs1E,EAAkBmD,uBAAuBr1E,KAAK8f,UAC5EnjB,YAAY,EACZqjB,cAAc,IAElB6jC,EAAelmD,UAAU23E,WAAa,SAAUh4E,GAC5C,OAAO0C,KAAK0yE,SAASp1E,IAEzBumD,EAAelmD,UAAUg1E,cAAgB,SAAU4C,EAAWC,GAC1Dx1E,KAAK0yE,SAAS6C,GAAaC,GAExB3xB,EAtIW,GAwItB/nD,EAAQ+nD,eAAiBA,GAKlB,SAAS9nD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQq3E,0BAA4Br3E,EAAQ84E,kBAAoB94E,EAAQs4E,kBAAoBt4E,EAAQq4E,qBAAuBr4E,EAAQo4E,kBAAoBp4E,EAAQ25E,qBAAkB,EACjL,IAAI9tD,EAAU/rB,EAAoB,GAC9BunC,EAAgBvnC,EAAoB,GACpC2lD,EAAoB3lD,EAAoB,IACxCyjD,EAA8BzjD,EAAoB,IAClD4lD,EAAwB5lD,EAAoB,IAC5C42E,EAAuB52E,EAAoB,IAC3CwzE,EAAkBxzE,EAAoB,IACtC85E,EAA8B95E,EAAoB,IAClDsK,EAAWtK,EAAoB,GAC/B65E,EAAmB,SAAU5tD,GAE7B,SAAS4tD,IACL,IAAIzqE,EAAmB,OAAX6c,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAEhE,OADAgL,EAAM2qE,WAAY,EACX3qE,EAiBX,OArBA2c,EAAQ3pB,UAAUy3E,EAAiB5tD,GAMnC4tD,EAAgB93E,UAAUyiB,SAAW,WACjC,IAAII,EAAQ,IAAI2iB,EAAcvjB,mBAAmB5f,KAAK8gB,aAEtD,OADAN,EAAMU,QAAUlhB,KAAK8f,QAAQiB,SAASC,QAAQP,UAAYzgB,KAAK8f,QAAQyG,mBAAmB8V,aACnF7b,GAEXi1D,EAAgB93E,UAAUi4E,aAAe,SAAU5gE,GAE/C,GAD6BhV,KAAKkgB,qBAAqB21D,iBACzB7gE,GAAUA,EAAOS,SAASrV,OAAS,EAE7D,IADAJ,KAAK8f,QAAQI,qBAAqB41D,wBAAwB9gE,EAAOS,SAAS,GAAG+P,KAAK6B,YACzErS,GAAYA,EAAOwQ,MACxBxlB,KAAK+f,iBAAiB2e,WAAWuxC,wBAAwBj7D,EAAOwQ,KAAMxlB,KAAK8f,QAAQoF,UAAU0Z,8BAC7F5pB,EAASA,EAAOA,QAIrBygE,EAtBY,CAuBrBtyC,EAActjB,aAChB/jB,EAAQ25E,gBAAkBA,EAC1B,IAAIvB,EAAqB,SAAUrsD,GAE/B,SAASqsD,IACL,OAAkB,OAAXrsD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAoC/D,OAtCA2nB,EAAQ3pB,UAAUk2E,EAAmBrsD,GAIrCqsD,EAAkBv2E,UAAU0iB,QAAU,SAAU0rB,GAC5C,OAAOlkB,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAM+rC,IAE/CmoC,EAAkBv2E,UAAUgjB,gBAAkB,SAAUorB,GACpD,IAAIjiB,EAAIsxB,EAER,GADS,OAATrP,QAA0B,IAATA,IAA0BA,EAAO,KAC7CA,EAAK2S,SAAU,CAChB,IAAIh2B,EAAO1oB,KAAK8f,QAAQoF,UAAU4a,SAAS9/B,KAAK8f,QAAQmjC,uBACpD8yB,EAAertD,GAAQA,EAAKlD,KAC5BuwD,IACAhqC,EAAK2S,SAAWq3B,EAAar3B,UAErC,IAAIs3B,EAAgBh2E,KAAK8f,QAAQoF,UAAU4a,SAASiM,EAAK2S,WAAa1+C,KAAK8f,QAAQoF,UAAUC,MAAM,GAC/F8wD,EAAgBD,GAAiBA,EAAcxwD,KAC9CumB,EAAKllC,QACNklC,EAAKllC,MAAQovE,EAAgB,IAAIhuE,KAAKguE,EAAcpvE,MAAML,WAAa,IAAIyB,KAAKjI,KAAK8f,QAAQuJ,MAAMxiB,MAAML,YACxGulC,EAAKjlC,MACNilC,EAAKjlC,IAAMmvE,EAAgB,IAAIhuE,KAAKguE,EAAcnvE,IAAIN,WAAa,IAAIyB,KAAKjI,KAAK8f,QAAQuJ,MAAMviB,IAAIN,YACjF,QAArBsjB,EAAKiiB,EAAK5N,aAA0B,IAAPrU,IAAsBiiB,EAAK5N,MAAQ,YACxC,QAAxBid,EAAKrP,EAAKvX,gBAA6B,IAAP4mB,IAAsBrP,EAAKvX,SAAW,GACvE,IAAIi7C,EAAO,IAAIL,EAAgB3wB,uBAAuB,KAAM1S,GAE5D,GADA/rC,KAAK+f,iBAAiB2e,WAAW8wC,mBAAmBC,IAC/CA,EAAKzuC,OAAQ,CACdhhC,KAAKigB,QAAQkgC,WAAW,IAAIoB,EAAkBnC,sBAAsBp/C,KAAK+f,iBAAkB0vD,IAC3F,IAAI/X,EAAa13D,KAAK8f,QAAQoF,UAAU4a,SAASiM,EAAK2S,UACtD1+C,KAAK41E,aAAale,GAEtB,OAAQ+X,EAAKzuC,QAEjBkzC,EAAkBv2E,UAAUyiB,SAAW,WACnC,IAAII,EAAQqH,EAAOlqB,UAAUyiB,SAASlkB,KAAK8D,MAE3C,OADAwgB,EAAMU,QAAUV,EAAMU,SAAWlhB,KAAK8f,QAAQiB,SAASC,QAAQ4yB,gBACxDpzB,GAEJ0zD,EAvCc,CAwCvBuB,GACF35E,EAAQo4E,kBAAoBA,EAC5B,IAAIC,EAAwB,SAAUtsD,GAElC,SAASssD,IACL,OAAkB,OAAXtsD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAsC/D,OAxCA2nB,EAAQ3pB,UAAUm2E,EAAsBtsD,GAIxCssD,EAAqBx2E,UAAU0iB,QAAU,SAAUq+B,GAC/C,OAAO72B,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAM0+C,IAE/Cy1B,EAAqBx2E,UAAUgjB,gBAAkB,SAAU+9B,GACvDA,EAAWA,GAAY1+C,KAAK8f,QAAQmjC,sBACpC,IAAIizB,EAAel2E,KAAK8f,QAAQoF,UAAU4a,SAAS4e,GACnD,GAAIw3B,EAAa7iD,SAAU,CACvB,IAAI0Y,EAAO,CACPllC,MAAO,IAAIoB,KAAKiuE,EAAa1wD,KAAK3e,MAAML,WACxCM,IAAK,IAAImB,KAAKiuE,EAAa1wD,KAAK1e,IAAIN,WACpC23B,MAAO,WACP3J,SAAU,EACVkqB,SAAUA,GAEV+wB,EAAO,IAAIL,EAAgB3wB,uBAAuB,KAAM1S,GAE5D,GADA/rC,KAAK+f,iBAAiB2e,WAAW8wC,mBAAmBC,IAC/CA,EAAKzuC,OAAQ,CACdhhC,KAAKigB,QAAQkgC,WAAW,IAAIoB,EAAkBnC,sBAAsBp/C,KAAK+f,iBAAkB0vD,IAC3F,IAAI/X,EAAa13D,KAAK8f,QAAQoF,UAAU4a,SAASiM,EAAK2S,UACtD1+C,KAAK41E,aAAale,GAEtB,OAAQ+X,EAAKzuC,OAEjB,OAAO,GAEXmzC,EAAqBx2E,UAAUmjB,UAAY,WACvC,IAAIyzB,EAAQv0C,KAAK8f,QACbo2D,EAAe3hC,EAAMrvB,UAAU4a,SAASyU,EAAM0O,uBAClD,OAAOp7B,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,SAAWk2E,GAAgBA,EAAa7iD,UAEnF8gD,EAAqBx2E,UAAUyiB,SAAW,WACtC,IAAII,EAAQqH,EAAOlqB,UAAUyiB,SAASlkB,KAAK8D,MACvCu0C,EAAQv0C,KAAK8f,QAEjB,OADAU,EAAMU,QAAUV,EAAMU,SAAWqzB,EAAMxzB,SAASC,QAAQ4yB,gBACjDpzB,GAEJ2zD,EAzCiB,CA0C1BsB,GACF35E,EAAQq4E,qBAAuBA,EAC/B,IAAIC,EAAqB,SAAUvsD,GAE/B,SAASusD,IACL,OAAkB,OAAXvsD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KA8D/D,OAhEA2nB,EAAQ3pB,UAAUo2E,EAAmBvsD,GAIrCusD,EAAkBz2E,UAAU0iB,QAAU,SAAUoF,EAAI0wD,EAAiBR,EAAWS,EAA4BxtD,GACxG,IAAI5d,EAAQhL,KAMZ,YALwB,IAApBm2E,IAA8BA,GAAkB,QAClC,IAAdR,IAAwBA,GAAY,QACL,IAA/BS,IAAyCA,GAA6B,GAC1Ep2E,KAAK21E,UAAYA,EACjB31E,KAAKo2E,2BAA6BA,EAC9BD,GACAn2E,KAAK8f,QAAQ4F,eAAe2wD,uBAAuBh2D,QAAQ,IAAImyD,EAAqBpwC,6BAA6BowC,EAAqBlwC,iBAAiBg0C,YAAY,WAActrE,EAAM2V,gBAAgB8E,EAAImD,QACpM,GAEJf,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMylB,EAAImD,IAEnDwrD,EAAkBz2E,UAAUgjB,gBAAkB,SAAU8E,EAAImD,GACxD,IAAI5d,EAAQhL,KACZylB,EAAKA,GAAMzlB,KAAK8f,QAAQmjC,sBACxB,IAAIv6B,EAAO1oB,KAAK8f,QAAQoF,UAAU4a,SAASra,GACvCD,EAAOkD,EAAOA,EAAKlD,KAAOxlB,KAAK8f,QAAQoF,UAAUsa,MAAMtW,YAAYzD,GACnEgqD,EAAO,IAAIL,EAAgB5wB,sBAAsBh5B,GAErD,GADAxlB,KAAK+f,iBAAiB2e,WAAWkxC,mBAAmBH,GAChDA,EAAKzuC,OACL,OAAO,EACXhhC,KAAK8f,QAAQoF,UAAUszC,cACvB,IAAI+d,EAAwB3tD,GAAe,IAAI24B,EAAkBpC,sBAAsBn/C,KAAK+f,kBAC5Fw2D,EAAsB72B,QAAQj6B,GAC9B,IAAI+wD,EAAax2E,KAAK8f,QAAQoF,UAAUsa,MAAMra,MAAMvZ,QAAO,SAAU3O,GAAK,OAAOA,EAAEyhD,UAAYj5B,KAC/F+wD,EAAW7gE,SAAQ,SAAU1Y,GAAK,OAAO,IAAIm3E,EAAkBppE,EAAM8U,SAASO,QAAQpjB,EAAEoqB,YAAY,GAAO,GAAM,EAAOkvD,MACxH,IAAIvhE,EAAS0T,GAAQA,EAAK1T,OACtBinB,EAAej8B,KAAK8f,QAAQoF,UAAU+W,aAAa9W,MAAMvZ,QAAO,SAAUvP,GAAK,OAAOA,EAAEyrB,eAAiBrC,GAAMppB,EAAE0rB,aAAetC,KACpI,GAAIwW,EAAa77B,OACb,KAAIJ,KAAK8f,QAAQiB,SAASC,QAAQyyB,sBAK9B,OAAO,GAJPxX,EAAeA,EAAarwB,QAAO,SAAUvP,GAAK,OAA8H,GAAvHm6E,EAAW5qE,QAAO,SAAUxP,GAAK,OAAOA,EAAEirB,YAAchrB,EAAEyrB,eAAiB1rB,EAAEirB,YAAchrB,EAAE0rB,eAAgB3nB,WACzJuV,SAAQ,SAAUtZ,GAAK,OAAOk6E,EAAsBxyD,IAAI,IAAIs7B,EAA4Bpe,4BAA4Bj2B,EAAM+U,iBAAkB1jB,EAAEgrB,gBAcnK,OAVkBrnB,KAAK8f,QAAQoF,UAAUqxC,YAAYpxC,MAAMvZ,QAAO,SAAUnI,GAAK,OAAOA,EAAEu+B,QAAUvc,KACxF9P,SAAQ,SAAUlS,GACtBuH,EAAM+U,iBAAiB2e,WAAWgyC,wBAAwBjtE,IAC1D8yE,EAAsBxyD,IAAI,IAAIy9B,EAAsBlgB,4BAA4Bt2B,EAAM+U,iBAAkBtc,EAAE4jB,gBAE7GuB,GACD5oB,KAAKigB,QAAQkgC,WAAWo2B,GACxBv2E,KAAKo2E,4BACLp2E,KAAK41E,aAAa5gE,GACtBhV,KAAK8f,QAAQoF,UAAUuzC,aAChB,GAEX2b,EAAkBz2E,UAAUmjB,UAAY,WACpC,IAAIyzB,EAAQv0C,KAAK8f,QACbo2D,EAAe3hC,EAAMrvB,UAAU4a,SAASyU,EAAM0O,uBAElD,OADap7B,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,UAAYk2E,GAAgBA,EAAa7iD,UAAYrzB,KAAK21E,YAG3GvB,EAAkBz2E,UAAUyiB,SAAW,WACnC,IAAII,EAAQqH,EAAOlqB,UAAUyiB,SAASlkB,KAAK8D,MACvCu0C,EAAQv0C,KAAK8f,QAEjB,OADAU,EAAMU,QAAUV,EAAMU,SAAWqzB,EAAMxzB,SAASC,QAAQ2yB,gBACjDnzB,GAEJ4zD,EAjEc,CAkEvBqB,GACF35E,EAAQs4E,kBAAoBA,EAC5B,IAAIQ,EAAqB,SAAU/sD,GAE/B,SAAS+sD,IACL,OAAkB,OAAX/sD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAoD/D,OAtDA2nB,EAAQ3pB,UAAU42E,EAAmB/sD,GAIrC+sD,EAAkBj3E,UAAU0iB,QAAU,SAAUoF,EAAIm5B,GAChD,OAAO/2B,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMylB,EAAIm5B,IAEnDg2B,EAAkBj3E,UAAUgjB,gBAAkB,SAAU8E,EAAIm5B,GACxD,IAAIp5B,EAAOxlB,KAAK8f,QAAQoF,UAAUsa,MAAMtW,YAAYzD,GACpD,IAAKD,EACD,OAAO,EACX,IAAIixD,EAAUz2E,KAAK8f,QAAQC,iBAAiB2e,WAAW0yC,0BAA0B5rD,EAAMo5B,GAAW,SAAU83B,GACxG93B,EAAUzgB,MAAQu4C,EAAiBv4C,MACnCygB,EAAUpqB,SAAWkiD,EAAiBliD,SACtCoqB,EAAU/3C,MAAQ6vE,EAAiB7vE,MACnC+3C,EAAU93C,IAAM4vE,EAAiB5vE,IACjC83C,EAAU5qB,MAAQ0iD,EAAiB1iD,SAEvC,GAAIyiD,EAAS,CACTz2E,KAAKigB,QAAQ0iB,mBACb,IAAIg0C,GAAyB,EACzBzwE,EAASpB,UAAU85C,EAAUzgB,QAAUygB,EAAUzgB,QAAU3Y,EAAK2Y,OAChEn+B,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B1xC,qBAAqBhkC,KAAK+f,iBAAkB0F,EAAIm5B,EAAUzgB,QAClHj4B,EAASpB,UAAU85C,EAAUpqB,WAAaoqB,EAAUpqB,WAAahP,EAAKgP,WACtEx0B,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B5xC,wBAAwB9jC,KAAK+f,iBAAkB0F,EAAIm5B,EAAUpqB,WACrHmiD,GAAyB,GAEzBzwE,EAASpB,UAAU85C,EAAU/3C,QAAUX,EAASpB,UAAU85C,EAAU93C,MAAQ83C,EAAU93C,IAAIN,UAAYo4C,EAAU/3C,MAAML,YACtHo4C,EAAU93C,IAAM83C,EAAU/3C,OAC1BX,EAASpB,UAAU85C,EAAU/3C,QAAU+3C,EAAU/3C,QAAU2e,EAAK3e,QAChE7G,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B7xC,qBAAqB7jC,KAAK+f,iBAAkB0F,EAAIm5B,EAAU/3C,QAClH8vE,GAAyB,EACrB32E,KAAK8f,QAAQiB,SAASwyB,WAAWY,sBACjCn0C,KAAK8f,QAAQI,qBAAqB02D,qBAAqBnxD,EAAID,EAAK3e,QAEpEX,EAASpB,UAAU85C,EAAU93C,MAAQ83C,EAAU93C,MAAQ0e,EAAK1e,MAC5D9G,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B9xC,mBAAmB5jC,KAAK+f,iBAAkB0F,EAAIm5B,EAAU93C,MAChH6vE,GAAyB,EACrB32E,KAAK8f,QAAQiB,SAASwyB,WAAWY,sBACjCn0C,KAAK8f,QAAQI,qBAAqB22D,mBAAmBpxD,EAAID,EAAK1e,MAElEZ,EAASpB,UAAU85C,EAAU5qB,QAAU4qB,EAAU5qB,QAAUxO,EAAKwO,OAChEh0B,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4BhyC,qBAAqB1jC,KAAK+f,iBAAkB0F,EAAIm5B,EAAU5qB,QAClH2iD,EACA32E,KAAKkgB,qBAAqB41D,wBAAwBrwD,GAElDzlB,KAAK8f,QAAQ20C,8BACjBz0D,KAAKigB,QAAQ2iB,iBAEjB,OAAO6zC,GAEX7B,EAAkBj3E,UAAUmjB,UAAY,WACpC,OAAO+G,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,OAASA,KAAK8f,QAAQiB,SAASC,QAAQ6yB,iBAE3E+gC,EAvDc,CAwDvBa,GACF35E,EAAQ84E,kBAAoBA,EAC5B,IAAIzB,EAA6B,SAAUtrD,GAEvC,SAASsrD,IACL,OAAkB,OAAXtrD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAU/D,OAZA2nB,EAAQ3pB,UAAUm1E,EAA2BtrD,GAI7CsrD,EAA0Bx1E,UAAUyiB,SAAW,WAC3C,IAAII,EAAQqH,EAAOlqB,UAAUyiB,SAASlkB,KAAK8D,MAE3C,OADAwgB,EAAMU,QAAUV,EAAMU,SAAWlhB,KAAK8f,QAAQiB,SAASC,QAAQ4yB,gBACxDpzB,GAEX2yD,EAA0Bx1E,UAAU0iB,QAAU,WAC1C,OAAO,GAEJ8yD,EAbsB,CAc/BsC,GACF35E,EAAQq3E,0BAA4BA,GAK7B,SAASp3E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ44E,gBAAkB54E,EAAQ64E,eAAiB74E,EAAQ24E,iBAAmB34E,EAAQg7E,8BAAgCh7E,EAAQ04E,iBAAmB14E,EAAQy4E,oBAAsBz4E,EAAQw4E,uBAAyBx4E,EAAQu4E,iBAAmBv4E,EAAQi7E,6BAA0B,EAC7Q,IAAIpvD,EAAU/rB,EAAoB,GAC9BunC,EAAgBvnC,EAAoB,GACpC85E,EAA8B95E,EAAoB,IAClDq2E,EAA8Br2E,EAAoB,IAClDuK,EAAcvK,EAAoB,GAClCm7E,EAA2B,SAAUlvD,GAErC,SAASkvD,IACL,OAAkB,OAAXlvD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAW/D,OAbA2nB,EAAQ3pB,UAAU+4E,EAAyBlvD,GAI3CkvD,EAAwBp5E,UAAUyiB,SAAW,WACzC,OAAO,IAAI+iB,EAAcvjB,mBAAmB5f,KAAK8gB,cAErDi2D,EAAwBp5E,UAAUmjB,UAAY,WAC1C,OAAO+G,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,OAASA,KAAK8f,QAAQiB,SAASC,QAAQ6yB,iBAElFkjC,EAAwBp5E,UAAUw1B,QAAU,SAAU1N,GAClD,OAAOzlB,KAAK8f,QAAQoF,UAAUsa,MAAMtW,YAAYzD,IAE7CsxD,EAdoB,CAe7B5zC,EAActjB,aAChB/jB,EAAQi7E,wBAA0BA,EAClC,IAAI1C,EAAoB,SAAUxsD,GAE9B,SAASwsD,IACL,OAAkB,OAAXxsD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAUq2E,EAAkBxsD,GAIpCwsD,EAAiB12E,UAAU0iB,QAAU,SAAUoF,EAAIzoB,GAC/C,OAAO6qB,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMylB,EAAIzoB,IAEnDq3E,EAAiB12E,UAAUgjB,gBAAkB,SAAU8E,EAAIzoB,GACvD,IAAIgO,EAAQhL,KACZ,OAAOA,KAAK+f,iBAAiB2e,WAAWiyC,uBAAuB3wE,KAAKmzB,QAAQ1N,GAAKzoB,GAAO,SAAUg6E,GAAYhsE,EAAMiV,QAAQkgC,WAAW,IAAIu1B,EAA4B1xC,qBAAqBh5B,EAAM+U,iBAAkB0F,EAAIuxD,QAErN3C,EAZa,CAatB0C,GACFj7E,EAAQu4E,iBAAmBA,EAC3B,IAAIC,EAA0B,SAAUzsD,GAEpC,SAASysD,IACL,OAAkB,OAAXzsD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAUs2E,EAAwBzsD,GAI1CysD,EAAuB32E,UAAU0iB,QAAU,SAAUoF,EAAIzoB,GACrD,OAAO6qB,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMylB,EAAIzoB,IAEnDs3E,EAAuB32E,UAAUgjB,gBAAkB,SAAU8E,EAAIzoB,GAC7D,IAAIgO,EAAQhL,KACZ,OAAOA,KAAK+f,iBAAiB2e,WAAWmyC,6BAA6B7wE,KAAKmzB,QAAQ1N,GAAKzoB,GAAO,SAAUi6E,GAAkBjsE,EAAMiV,QAAQkgC,WAAW,IAAIu1B,EAA4B3xC,2BAA2B/4B,EAAM+U,iBAAkB0F,EAAIwxD,QAEvO3C,EAZmB,CAa5ByC,GACFj7E,EAAQw4E,uBAAyBA,EACjC,IAAIC,EAAuB,SAAU1sD,GAEjC,SAAS0sD,IACL,OAAkB,OAAX1sD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAc/D,OAhBA2nB,EAAQ3pB,UAAUu2E,EAAqB1sD,GAIvC0sD,EAAoB52E,UAAU0iB,QAAU,SAAUoF,EAAIzoB,GAClD,OAAO6qB,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMylB,EAAIzoB,IAEnDu3E,EAAoB52E,UAAUgjB,gBAAkB,SAAU8E,EAAIzoB,GAC1D,IAAIgO,EAAQhL,KACZ,OAAOA,KAAK+f,iBAAiB2e,WAAWoyC,0BAA0B9wE,KAAKmzB,QAAQ1N,GAAKzoB,GAAO,SAAUuiC,GACjGv0B,EAAM8U,QAAQG,QAAQ0iB,mBACtB33B,EAAMiV,QAAQkgC,WAAW,IAAIu1B,EAA4B5xC,wBAAwB94B,EAAM+U,iBAAkB0F,EAAI8Z,IAC7Gv0B,EAAMkV,qBAAqB41D,wBAAwBrwD,GACnDza,EAAM8U,QAAQG,QAAQ2iB,qBAGvB2xC,EAjBgB,CAkBzBwC,GACFj7E,EAAQy4E,oBAAsBA,EAC9B,IAAIC,EAAoB,SAAU3sD,GAE9B,SAAS2sD,IACL,OAAkB,OAAX3sD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAS/D,OAXA2nB,EAAQ3pB,UAAUw2E,EAAkB3sD,GAIpC2sD,EAAiB72E,UAAU0iB,QAAU,SAAUoF,EAAIzoB,GAC/C,OAAO6qB,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMylB,EAAIzoB,IAEnDw3E,EAAiB72E,UAAUgjB,gBAAkB,SAAU8E,EAAIzoB,GACvD,IAAIgO,EAAQhL,KACZ,OAAOA,KAAK+f,iBAAiB2e,WAAWqyC,uBAAuB/wE,KAAKmzB,QAAQ1N,GAAKzoB,GAAO,SAAUuiC,GAAYv0B,EAAMiV,QAAQkgC,WAAW,IAAIu1B,EAA4BhyC,qBAAqB14B,EAAM+U,iBAAkB0F,EAAI8Z,QAErNi1C,EAZa,CAatBuC,GACFj7E,EAAQ04E,iBAAmBA,EAC3B,IAAIsC,EAAiC,SAAUjvD,GAE3C,SAASivD,IACL,OAAkB,OAAXjvD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KA8B/D,OAhCA2nB,EAAQ3pB,UAAU84E,EAA+BjvD,GAIjDivD,EAA8Bn5E,UAAUgjB,gBAAkB,WAGtD,IAFA,IAAI3V,EAAQhL,KACRsgB,EAAa,GACRC,EAAK,EAAGA,EAAKpgB,UAAUC,OAAQmgB,IACpCD,EAAWC,GAAMpgB,UAAUogB,GAE/B,IAAI22D,EAAmBl3E,KAAK8f,QAAQiB,SAASwyB,WAAWY,qBAAuBn0C,KAAKm3E,SAAS92E,MAAML,KAAMsgB,GAAc,GACnH82D,EAAiBF,EAAiBtrE,QAAO,SAAUtL,GAAK,OAAOA,EAAE+2E,YACrE,OAAKH,EAAiB92E,QAAU82E,EAAiB92E,OAAS,GAA+B,IAA1Bg3E,EAAeh3E,OACnEJ,KAAKs3E,YAAYj3E,MAAML,KAAMsgB,IACH,IAA5B42D,EAAiB92E,QACtBJ,KAAK8f,QAAQ4F,eAAe6xD,8BAA8Bl3D,QAAQ,IAAI4xD,EAA4BryB,oCAAoCs3B,EAAiB,IAAI,WAAclsE,EAAMssE,YAAYj3E,MAAM2K,EAAOsV,QACrM,IAEXw2D,EAA8Bn5E,UAAU25E,YAAc,WAElD,IADA,IAAIh3D,EAAa,GACRC,EAAK,EAAGA,EAAKpgB,UAAUC,OAAQmgB,IACpCD,EAAWC,GAAMpgB,UAAUogB,GAE/B,OAAO,GAEXu2D,EAA8Bn5E,UAAUw5E,SAAW,WAE/C,IADA,IAAI72D,EAAa,GACRC,EAAK,EAAGA,EAAKpgB,UAAUC,OAAQmgB,IACpCD,EAAWC,GAAMpgB,UAAUogB,GAE/B,MAAO,IAEJu2D,EAjC0B,CAkCnCC,GACFj7E,EAAQg7E,8BAAgCA,EACxC,IAAIrC,EAAoB,SAAU5sD,GAE9B,SAAS4sD,IACL,OAAkB,OAAX5sD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAmC/D,OArCA2nB,EAAQ3pB,UAAUy2E,EAAkB5sD,GAIpC4sD,EAAiB92E,UAAU0iB,QAAU,SAAUoF,EAAIzoB,GAE/C,OADcgD,KAAK+f,iBAAiB2e,WAAWsyC,uBAAuBhxE,KAAKmzB,QAAQ1N,GAAKzoB,GAAO,SAAUo6C,GAAYp6C,EAAQo6C,MAC3GvvB,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMylB,EAAIzoB,IAE9Dy3E,EAAiB92E,UAAUgjB,gBAAkB,SAAU8E,EAAIzoB,GACvD,OAAO6qB,EAAOlqB,UAAUgjB,gBAAgBzkB,KAAK8D,KAAMylB,EAAIzoB,IAE3Dy3E,EAAiB92E,UAAU25E,YAAc,SAAU7xD,EAAIzoB,GACnD,IAAIw6E,EAAWx3E,KAAK8f,QAAQoF,UAAUsa,MAAMtW,YAAYzD,GAAI5e,MAC5D,GAAI2wE,EAAShxE,WAAaxJ,EAAMwJ,UAC5B,OAAO,EACXxG,KAAK8f,QAAQG,QAAQ0iB,mBACrB3iC,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B7xC,qBAAqB7jC,KAAK+f,iBAAkB0F,EAAIzoB,IACpGgD,KAAK8f,QAAQiB,SAASwyB,WAAWY,sBACjCn0C,KAAK8f,QAAQI,qBAAqB02D,qBAAqBnxD,EAAI+xD,GAC/Dx3E,KAAKkgB,qBAAqB41D,wBAAwBrwD,GAClDzlB,KAAK8f,QAAQG,QAAQ2iB,iBACrB,IAAI60C,EAAez3E,KAAK8f,QAAQoF,UAAUsa,MAAMra,MAAMkiC,QAAO,SAAUqwB,EAAMC,GACzE,OAAKA,EAAK5rB,UAEL2rB,EAAK3rB,WAEH2rB,EAAK7wE,MAAML,UAAYmxE,EAAK9wE,MAAML,UAAYkxE,EAD1CC,EAFAD,KASf,OAJID,EAAa5wE,MAAQ7G,KAAK8f,QAAQgnC,UAAUjgD,QAC5C7G,KAAK8f,QAAQgnC,UAAUjgD,MAAQ4wE,EAAa5wE,MAC5C7G,KAAK8f,QAAQ2mC,mBAEV,GAEXguB,EAAiB92E,UAAUw5E,SAAW,SAAU1xD,EAAIzoB,GAChD,OAAOgD,KAAK8f,QAAQI,qBAAqB03D,uBAAuBnyD,EAAIzoB,IAEjEy3E,EAtCa,CAuCtBqC,GACFh7E,EAAQ24E,iBAAmBA,EAC3B,IAAIE,EAAkB,SAAU9sD,GAE5B,SAAS8sD,IACL,OAAkB,OAAX9sD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAiC/D,OAnCA2nB,EAAQ3pB,UAAU22E,EAAgB9sD,GAIlC8sD,EAAeh3E,UAAU0iB,QAAU,SAAUoF,EAAIzoB,GAE7C,OADcgD,KAAK+f,iBAAiB2e,WAAWuyC,qBAAqBjxE,KAAKmzB,QAAQ1N,GAAKzoB,GAAO,SAAUo6C,GAAYp6C,EAAQo6C,MACzGvvB,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMylB,EAAIzoB,IAE9D23E,EAAeh3E,UAAUgjB,gBAAkB,SAAU8E,EAAIzoB,GACrD,OAAO6qB,EAAOlqB,UAAUgjB,gBAAgBzkB,KAAK8D,KAAMylB,EAAIzoB,IAE3D23E,EAAeh3E,UAAU25E,YAAc,SAAU7xD,EAAIzoB,GACjD,IAAI66E,EAAS73E,KAAK8f,QAAQoF,UAAUsa,MAAMtW,YAAYzD,GAAI3e,IAC1D,GAAI+wE,EAAOrxE,WAAaxJ,EAAMwJ,UAC1B,OAAO,EACXxG,KAAK8f,QAAQG,QAAQ0iB,mBACrB3iC,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B9xC,mBAAmB5jC,KAAK+f,iBAAkB0F,EAAIzoB,IAClGgD,KAAK8f,QAAQiB,SAASwyB,WAAWY,sBACjCn0C,KAAK8f,QAAQI,qBAAqB22D,mBAAmBpxD,EAAIoyD,GAC7D73E,KAAKkgB,qBAAqB41D,wBAAwBrwD,GAClDzlB,KAAK8f,QAAQG,QAAQ2iB,iBACrB,IAAIk1C,EAAa93E,KAAK8f,QAAQoF,UAAUsa,MAAMra,MAAMkiC,QAAO,SAAUqwB,EAAMC,GACvE,OAAKA,EAAK5rB,UAEH2rB,EAAK5wE,IAAIN,UAAYmxE,EAAK7wE,IAAIN,UAAYkxE,EAAOC,EAD7CD,KAOf,OAJII,EAAWhxE,IAAM9G,KAAK8f,QAAQgnC,UAAUhgD,MACxC9G,KAAK8f,QAAQgnC,UAAUhgD,IAAMgxE,EAAWhxE,IACxC9G,KAAK8f,QAAQ2mC,mBAEV,GAEXkuB,EAAeh3E,UAAUw5E,SAAW,SAAU1xD,EAAIzoB,GAC9C,OAAOgD,KAAK8f,QAAQI,qBAAqB63D,qBAAqBtyD,EAAIzoB,IAE/D23E,EApCW,CAqCpBmC,GACFh7E,EAAQ64E,eAAiBA,EACzB,IAAID,EAAmB,SAAU7sD,GAE7B,SAAS6sD,IACL,OAAkB,OAAX7sD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAkD/D,OApDA2nB,EAAQ3pB,UAAU02E,EAAiB7sD,GAInC6sD,EAAgB/2E,UAAU0iB,QAAU,SAAUoF,EAAI5e,EAAOC,GAKrD,OAJc9G,KAAK+f,iBAAiB2e,WAAWwyC,6BAA6BlxE,KAAKmzB,QAAQ1N,GAAK5e,EAAOC,GAAK,SAAUswC,EAAUC,GAC1HxwC,EAAQuwC,EACRtwC,EAAMuwC,MAEQxvB,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMylB,EAAI5e,EAAOC,IAErE4tE,EAAgB/2E,UAAUgjB,gBAAkB,SAAU8E,EAAI5e,EAAOC,GAC7D,OAAO+gB,EAAOlqB,UAAUgjB,gBAAgBzkB,KAAK8D,KAAMylB,EAAI5e,EAAOC,IAElE4tE,EAAgB/2E,UAAU25E,YAAc,SAAU7xD,EAAI5e,EAAOC,GACzD,IAAI0e,EAAOxlB,KAAK8f,QAAQoF,UAAUsa,MAAMtW,YAAYzD,GAChDuyD,EAAe,IAAI7xE,EAAY2E,UAAU,IAAI7C,KAAKud,EAAK3e,MAAML,WAAY,IAAIyB,KAAKud,EAAK1e,IAAIN,YAC/FxG,KAAK8f,QAAQG,QAAQ0iB,mBACrB3iC,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B/xC,oBAAoB3jC,KAAK+f,iBAAkB0F,EAAI,IAAItf,EAAY2E,UAAUjE,EAAOC,KACxI9G,KAAKkgB,qBAAqB+3D,4BAA4BxyD,EAAI5e,EAAML,UAAYwxE,EAAanxE,MAAML,WAC3FxG,KAAK8f,QAAQiB,SAASwyB,WAAWY,uBACjCn0C,KAAK8f,QAAQI,qBAAqB02D,qBAAqBnxD,EAAIuyD,EAAanxE,OACxE7G,KAAK8f,QAAQI,qBAAqB22D,mBAAmBpxD,EAAIuyD,EAAalxE,MAE1E9G,KAAK8f,QAAQG,QAAQ2iB,iBACrB,IAAIk1C,EAAa93E,KAAK8f,QAAQoF,UAAUsa,MAAMra,MAAMkiC,QAAO,SAAUqwB,EAAMC,GACvE,OAAKA,EAAK5rB,UAEH2rB,EAAK5wE,IAAIN,UAAYmxE,EAAK7wE,IAAIN,UAAYkxE,EAAOC,EAD7CD,KAGXI,EAAWhxE,IAAM9G,KAAK8f,QAAQgnC,UAAUhgD,MACxC9G,KAAK8f,QAAQgnC,UAAUhgD,IAAMgxE,EAAWhxE,IACxC9G,KAAK8f,QAAQ2mC,kBAEjB,IAAIgxB,EAAez3E,KAAK8f,QAAQoF,UAAUsa,MAAMra,MAAMkiC,QAAO,SAAUqwB,EAAMC,GACzE,OAAKA,EAAK5rB,UAEL2rB,EAAK3rB,WAEH2rB,EAAK7wE,MAAML,UAAYmxE,EAAK9wE,MAAML,UAAYkxE,EAD1CC,EAFAD,KASf,OAJID,EAAa5wE,MAAQ7G,KAAK8f,QAAQgnC,UAAUjgD,QAC5C7G,KAAK8f,QAAQgnC,UAAUjgD,MAAQ4wE,EAAa5wE,MAC5C7G,KAAK8f,QAAQ2mC,mBAEV,GAEXiuB,EAAgB/2E,UAAUw5E,SAAW,SAAU1xD,EAAI5e,EAAOC,GACtD,IAAIoxE,EAAcl4E,KAAK8f,QAAQI,qBAAqB03D,uBAAuBnyD,EAAI5e,GAC3EsxE,EAAYn4E,KAAK8f,QAAQI,qBAAqB63D,qBAAqBtyD,EAAI3e,GAC3E,OAAO6gB,EAAQ7oB,cAAc6oB,EAAQ7oB,cAAc,GAAIo5E,GAAcC,IAElEzD,EArDY,CAsDrBoC,GACFh7E,EAAQ44E,gBAAkBA,GAKnB,SAAS34E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQg5E,wBAA0Bh5E,EAAQ+4E,wBAA0B/4E,EAAQs8E,2BAAwB,EACpG,IAAIzwD,EAAU/rB,EAAoB,GAC9BunC,EAAgBvnC,EAAoB,GACpCyjD,EAA8BzjD,EAAoB,IAClDizB,EAAejzB,EAAoB,IACnC42E,EAAuB52E,EAAoB,IAC3Cy8E,EAAwBz8E,EAAoB,KAC5Cw8E,EAAyB,SAAUvwD,GAEnC,SAASuwD,IACL,OAAkB,OAAXvwD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAK/D,OAPA2nB,EAAQ3pB,UAAUo6E,EAAuBvwD,GAIzCuwD,EAAsBz6E,UAAUyiB,SAAW,WACvC,OAAO,IAAI+iB,EAAcvjB,mBAAmB5f,KAAK8gB,cAE9Cs3D,EARkB,CAS3Bj1C,EAActjB,aAChB/jB,EAAQs8E,sBAAwBA,EAChC,IAAIvD,EAA2B,SAAUhtD,GAErC,SAASgtD,IACL,OAAkB,OAAXhtD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KA+B/D,OAjCA2nB,EAAQ3pB,UAAU62E,EAAyBhtD,GAI3CgtD,EAAwBl3E,UAAU0iB,QAAU,SAAUyH,EAAeC,EAAahM,GAC9E,OAAO8L,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAM8nB,EAAeC,EAAahM,IAE3E84D,EAAwBl3E,UAAUgjB,gBAAkB,SAAUmH,EAAeC,EAAahM,GACtF,GAAI/b,KAAK8f,QAAQoF,UAAU+W,aAAa9W,MAAMvZ,QAAO,SAAUvP,GAAK,OAAQA,EAAEyrB,eAAiBA,GAAiBzrB,EAAE0rB,aAAeA,GAC5H1rB,EAAE0rB,aAAeD,GAAiBzrB,EAAEyrB,eAAiBC,KAAiB3nB,OACvE,OAAO,EACX,IAAIqvE,EAAO,IAAI4I,EAAsBC,6BAA6BxwD,EAAeC,EAAahM,GAE9F,GADA/b,KAAK+f,iBAAiB2e,WAAWwxC,0BAA0BT,GACvDA,EAAKzuC,OACL,OAAO,EAMX,GALAlZ,EAAgB2nD,EAAK3nD,cACrBC,EAAc0nD,EAAK1nD,YACnBhM,EAAO0zD,EAAK1zD,KACZ/b,KAAK8f,QAAQG,QAAQ0iB,mBACrB3iC,KAAKigB,QAAQkgC,WAAW,IAAId,EAA4Bne,4BAA4BlhC,KAAK+f,iBAAkB+H,EAAeC,EAAahM,IACnI/b,KAAK8f,QAAQiB,SAASwyB,WAAWY,qBAAsB,CACvD,IAAIoM,EAAkBvgD,KAAK8f,QAAQoF,UAAUsa,MAAMtW,YAAYpB,GAC3D/L,IAAS8S,EAAanH,eAAeO,IAAMlM,IAAS8S,EAAanH,eAAeM,GAChFhoB,KAAK8f,QAAQI,qBAAqB02D,qBAAqB9uD,EAAey4B,EAAgB15C,OAEtF7G,KAAK8f,QAAQI,qBAAqB22D,mBAAmB/uD,EAAey4B,EAAgBz5C,KAG5F,OADA9G,KAAK8f,QAAQG,QAAQ2iB,kBACd,GAEXiyC,EAAwBl3E,UAAUmjB,UAAY,WAC1C,OAAO+G,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,OAASA,KAAK8f,QAAQiB,SAASC,QAAQ0yB,uBAE3EmhC,EAlCoB,CAmC7BuD,GACFt8E,EAAQ+4E,wBAA0BA,EAClC,IAAIC,EAA2B,SAAUjtD,GAErC,SAASitD,IACL,OAAkB,OAAXjtD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAqC/D,OAvCA2nB,EAAQ3pB,UAAU82E,EAAyBjtD,GAI3CitD,EAAwBn3E,UAAU0iB,QAAU,SAAUoF,EAAI0wD,GACtD,IAAInrE,EAAQhL,KAEZ,YADwB,IAApBm2E,IAA8BA,GAAkB,GAChDA,GACAn2E,KAAK8f,QAAQ4F,eAAe2wD,uBAAuBh2D,QAAQ,IAAImyD,EAAqBpwC,6BAA6BowC,EAAqBlwC,iBAAiBi2C,kBAAkB,WAAcvtE,EAAM2V,gBAAgB8E,QACtM,GAEJoC,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMylB,IAE/CqvD,EAAwBn3E,UAAUgjB,gBAAkB,SAAU8E,GAE1D,GAAU,OADVA,EAAKA,GAAMzlB,KAAK8f,QAAQyG,mBAAmB8V,cAC3B,CACZ,IAAIE,EAAav8B,KAAK8f,QAAQoF,UAAU+W,aAAa9W,MAAMvZ,QAAO,SAAUvP,GAAK,OAAOA,EAAEgrB,YAAc5B,KAAO,GAC/G,GAAI8W,EAAY,CACZ,IAAIkzC,EAAO,IAAI4I,EAAsBG,4BAA4Bj8C,GAEjE,GADAv8B,KAAK+f,iBAAiB2e,WAAWyxC,yBAAyBV,IACrDA,EAAKzuC,OAKN,OAJAhhC,KAAKigB,QAAQkgC,WAAW,IAAId,EAA4Bpe,4BAA4BjhC,KAAK+f,iBAAkB0F,IACvGA,IAAOzlB,KAAK8f,QAAQyG,mBAAmB8V,cACvCr8B,KAAK8f,QAAQyG,mBAAmBghB,iBAAiB,MACrDvnC,KAAK8f,QAAQc,WAAWC,iBAAiB,KAClC,GAInB,OAAO,GAEXi0D,EAAwBn3E,UAAUmjB,UAAY,WAC1C,OAAO+G,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,OAASA,KAAK8f,QAAQiB,SAASC,QAAQyyB,uBAElFqhC,EAAwBn3E,UAAUyiB,SAAW,WACzC,IAAII,EAAQqH,EAAOlqB,UAAUyiB,SAASlkB,KAAK8D,MAE3C,OADAwgB,EAAMU,QAAUV,EAAMC,SAA2D,MAAhDzgB,KAAK8f,QAAQyG,mBAAmB8V,aAC1D7b,GAEJs0D,EAxCoB,CAyC7BsD,GACFt8E,EAAQg5E,wBAA0BA,GAK3B,SAAS/4E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ08E,4BAA8B18E,EAAQw8E,kCAA+B,EAC7E,IAAI3wD,EAAU/rB,EAAoB,GAC9BusC,EAAkBvsC,EAAoB,IACtC08E,EAAgC,SAAUzwD,GAE1C,SAASywD,EAA6BxwD,EAAeC,EAAahM,GAC9D,IAAI/Q,EAAQ6c,EAAO3rB,KAAK8D,KAAM,OAASA,KAMvC,OALAgL,EAAMwf,OAAS,CACX1C,cAAeA,EACfC,YAAaA,EACbhM,KAAMA,GAEH/Q,EAiBX,OAzBA2c,EAAQ3pB,UAAUs6E,EAA8BzwD,GAUhDprB,OAAOC,eAAe47E,EAA6B36E,UAAW,gBAAiB,CAC3Ef,IAAK,WAAc,OAAOoD,KAAKwqB,OAAO1C,eACtCnrB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe47E,EAA6B36E,UAAW,cAAe,CACzEf,IAAK,WAAc,OAAOoD,KAAKwqB,OAAOzC,aACtCprB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAe47E,EAA6B36E,UAAW,OAAQ,CAClEf,IAAK,WAAc,OAAOoD,KAAKwqB,OAAOzO,MACtCpf,YAAY,EACZqjB,cAAc,IAEXs4D,EA1ByB,CA2BlCnwC,EAAgBpH,eAClBjlC,EAAQw8E,6BAA+BA,EACvC,IAAIE,EAA+B,SAAU3wD,GAEzC,SAAS2wD,EAA4Bj8C,GACjC,IAAIvxB,EAAQ6c,EAAO3rB,KAAK8D,KAAMu8B,EAAW9W,KAAOzlB,KAEhD,OADAgL,EAAMwf,OAAS+R,EACRvxB,EAEX,OANA2c,EAAQ3pB,UAAUw6E,EAA6B3wD,GAMxC2wD,EAPwB,CAQjCrwC,EAAgBpH,eAClBjlC,EAAQ08E,4BAA8BA,GAK/B,SAASz8E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQo5E,wBAA0Bp5E,EAAQm5E,sBAAwBn5E,EAAQk5E,sBAAwBl5E,EAAQi5E,sBAAwBj5E,EAAQ28E,yBAAsB,EAChK,IAAI9wD,EAAU/rB,EAAoB,GAC9BunC,EAAgBvnC,EAAoB,GACpC4lD,EAAwB5lD,EAAoB,IAC5C88E,EAAsB98E,EAAoB,KAC1CyzE,EAAwBzzE,EAAoB,IAC5C68E,EAAuB,SAAU5wD,GAEjC,SAAS4wD,IACL,OAAkB,OAAX5wD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAK/D,OAPA2nB,EAAQ3pB,UAAUy6E,EAAqB5wD,GAIvC4wD,EAAoB96E,UAAUyiB,SAAW,WACrC,OAAO,IAAI+iB,EAAcvjB,mBAAmB5f,KAAK8gB,cAE9C23D,EARgB,CASzBt1C,EAActjB,aAChB/jB,EAAQ28E,oBAAsBA,EAC9B,IAAI1D,EAAyB,SAAUltD,GAEnC,SAASktD,IACL,OAAkB,OAAXltD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAiB/D,OAnBA2nB,EAAQ3pB,UAAU+2E,EAAuBltD,GAIzCktD,EAAsBp3E,UAAU0iB,QAAU,SAAUqhB,EAAM1N,EAAO2N,GAE7D,YADc,IAAV3N,IAAoBA,EAAQ,IACzBnM,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAM0hC,EAAM1N,EAAO2N,IAE5DozC,EAAsBp3E,UAAUgjB,gBAAkB,SAAU+gB,EAAM1N,EAAO2N,QACvD,IAAV3N,IAAoBA,EAAQ,IAChC,IAAIy7C,EAAO,IAAIiJ,EAAoBC,2BAA2Bj3C,EAAM1N,GAIpE,OAHAh0B,KAAK+f,iBAAiB2e,WAAW2xC,uBAAuBZ,GACnDA,EAAKzuC,QACNhhC,KAAKigB,QAAQkgC,WAAW,IAAIqB,EAAsB/f,0BAA0BzhC,KAAK+f,iBAAkB0vD,EAAK/tC,KAAM+tC,EAAKz7C,MAAO2N,KACtH8tC,EAAKzuC,QAEjB+zC,EAAsBp3E,UAAUmjB,UAAY,WACxC,OAAO+G,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,OAASA,KAAK8f,QAAQiB,SAASC,QAAQ+yB,qBAE3EghC,EApBkB,CAqB3B0D,GACF38E,EAAQi5E,sBAAwBA,EAChC,IAAIC,EAAyB,SAAUntD,GAEnC,SAASmtD,IACL,OAAkB,OAAXntD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KA2B/D,OA7BA2nB,EAAQ3pB,UAAUg3E,EAAuBntD,GAIzCmtD,EAAsBr3E,UAAU0iB,QAAU,SAAUoF,GAChD,OAAOoC,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMylB,IAE/CuvD,EAAsBr3E,UAAUgjB,gBAAkB,SAAU8E,GACxD,IAAIza,EAAQhL,KACR6hC,EAAW7hC,KAAK8f,QAAQoF,UAAUynC,UAAUxnC,MAAMvZ,QAAO,SAAU/O,GAAK,OAAOA,EAAEwqB,YAAc5B,KAAO,GAC1G,GAAIoc,EAAU,CACV,IAAI4tC,EAAO,IAAIiJ,EAAoBE,0BAA0B/2C,GAE7D,GADA7hC,KAAK+f,iBAAiB2e,WAAW4xC,uBAAuBb,IACnDA,EAAKzuC,OAAQ,CACd,IAAI63C,EAA8B,IAAIr3B,EAAsBhgB,0BAA0BxhC,KAAK+f,iBAAkB0F,GAO7G,OANkBzlB,KAAK8f,QAAQoF,UAAUqxC,YAAYpxC,MAAMvZ,QAAO,SAAUnI,GAAK,OAAOA,EAAEq+B,YAAcrc,KAC5F9P,SAAQ,SAAUlS,GACtBuH,EAAM+U,iBAAiB2e,WAAWgyC,wBAAwBjtE,IAC1Do1E,EAA4B90D,IAAI,IAAIy9B,EAAsBlgB,4BAA4Bt2B,EAAM+U,iBAAkBtc,EAAE4jB,gBAExHrnB,KAAKigB,QAAQkgC,WAAW04B,IACjB,GAGf,OAAO,GAEX7D,EAAsBr3E,UAAUmjB,UAAY,WACxC,OAAO+G,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,OAASA,KAAK8f,QAAQiB,SAASC,QAAQ8yB,qBAE3EkhC,EA9BkB,CA+B3ByD,GACF38E,EAAQk5E,sBAAwBA,EAChC,IAAIC,EAAyB,SAAUptD,GAEnC,SAASotD,IACL,OAAkB,OAAXptD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAqB/D,OAvBA2nB,EAAQ3pB,UAAUi3E,EAAuBptD,GAIzCotD,EAAsBt3E,UAAU0iB,QAAU,SAAUyhB,EAAYE,GAC5D,OAAOna,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAM8hC,EAAYE,IAE3DizC,EAAsBt3E,UAAUgjB,gBAAkB,SAAUmhB,EAAYE,GAEpE,IADiBhiC,KAAK8f,QAAQoF,UAAUqxC,YAAYpxC,MAAMvZ,QAAO,SAAU/O,GAAK,OAAOA,EAAEilC,YAAcA,GAAcjlC,EAAEmlC,QAAUA,KAAW,GAC3H,CACb,IAAIlpB,EAAY9Y,KAAK8f,QAAQoF,UACzBuqD,EAAO,IAAIJ,EAAsBnnC,2BAA2BpvB,EAAUiN,2BAA2B,WAAY+b,GAAahpB,EAAUiN,2BAA2B,OAAQic,IAE3K,GADAhiC,KAAK+f,iBAAiB2e,WAAW6xC,wBAAwBd,IACpDA,EAAKzuC,OAEN,OADAhhC,KAAKigB,QAAQkgC,WAAW,IAAIqB,EAAsBjgB,0BAA0BvhC,KAAK+f,iBAAkBjH,EAAU04C,2BAA2B,WAAYie,EAAK3tC,YAAahpB,EAAU04C,2BAA2B,OAAQie,EAAKztC,WACjN,EAGf,OAAO,GAEXizC,EAAsBt3E,UAAUmjB,UAAY,WACxC,OAAO+G,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,OAASA,KAAK8f,QAAQiB,SAASC,QAAQizB,yBAE3EghC,EAxBkB,CAyB3BwD,GACF38E,EAAQm5E,sBAAwBA,EAChC,IAAIC,EAA2B,SAAUrtD,GAErC,SAASqtD,IACL,OAAkB,OAAXrtD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAgB/D,OAlBA2nB,EAAQ3pB,UAAUk3E,EAAyBrtD,GAI3CqtD,EAAwBv3E,UAAU0iB,QAAU,SAAU8hB,GAClD,OAAOta,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMmiC,IAE/C+yC,EAAwBv3E,UAAUgjB,gBAAkB,SAAUwhB,GAC1D,IAAIF,EAAajiC,KAAK8f,QAAQoF,UAAUqxC,YAAYpxC,MAAMvZ,QAAO,SAAU/O,GAAK,OAAOA,EAAEwqB,YAAc8a,KAAiB,GACxH,SAAIF,IAAcjiC,KAAK+f,iBAAiB2e,WAAWgyC,wBAAwBzuC,MACvEjiC,KAAKigB,QAAQkgC,WAAW,IAAIqB,EAAsBlgB,4BAA4BthC,KAAK+f,iBAAkBoiB,KAC9F,IAIf+yC,EAAwBv3E,UAAUmjB,UAAY,WAC1C,OAAO+G,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,OAASA,KAAK8f,QAAQiB,SAASC,QAAQizB,yBAE3EihC,EAnBoB,CAoB7BuD,GACF38E,EAAQo5E,wBAA0BA,GAK3B,SAASn5E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ88E,0BAA4B98E,EAAQ68E,gCAA6B,EACzE,IAAIhxD,EAAU/rB,EAAoB,GAC9BusC,EAAkBvsC,EAAoB,IACtC+8E,EAA8B,SAAU9wD,GAExC,SAAS8wD,EAA2Bj3C,EAAM1N,QACxB,IAAVA,IAAoBA,EAAQ,IAChC,IAAIhpB,EAAQ6c,EAAO3rB,KAAK8D,KAAM,OAASA,KAKvC,OAJAgL,EAAMwf,OAAS,CACXkX,KAAMA,EACN1N,MAAOA,GAEJhpB,EAYX,OApBA2c,EAAQ3pB,UAAU26E,EAA4B9wD,GAU9CprB,OAAOC,eAAei8E,EAA2Bh7E,UAAW,OAAQ,CAChEf,IAAK,WAAc,OAAOoD,KAAKwqB,OAAOkX,MACtC/kC,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAei8E,EAA2Bh7E,UAAW,QAAS,CACjEf,IAAK,WAAc,OAAOoD,KAAKwqB,OAAOwJ,OACtCr3B,YAAY,EACZqjB,cAAc,IAEX24D,EArBuB,CAsBhCxwC,EAAgBpH,eAClBjlC,EAAQ68E,2BAA6BA,EACrC,IAAIC,EAA6B,SAAU/wD,GAEvC,SAAS+wD,EAA0B/2C,GAC/B,IAAI72B,EAAQ6c,EAAO3rB,KAAK8D,KAAM6hC,EAASpc,KAAOzlB,KAE9C,OADAgL,EAAMwf,OAASqX,EACR72B,EAEX,OANA2c,EAAQ3pB,UAAU46E,EAA2B/wD,GAMtC+wD,EAPsB,CAQ/BzwC,EAAgBpH,eAClBjlC,EAAQ88E,0BAA4BA,GAK7B,SAAS78E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQg9E,mBAAqBh9E,EAAQs5E,2BAAwB,EAC7D,IAAIztD,EAAU/rB,EAAoB,GAC9B2mC,EAAe3mC,EAAoB,IACnC85E,EAA8B95E,EAAoB,IAClDm6D,EAAuBn6D,EAAoB,IAC3C4lD,EAAwB5lD,EAAoB,IAC5CyzE,EAAwBzzE,EAAoB,IAC5Cw5E,EAAyB,SAAUvtD,GAEnC,SAASutD,IACL,OAAkB,OAAXvtD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KA0G/D,OA5GA2nB,EAAQ3pB,UAAUo3E,EAAuBvtD,GAIzCutD,EAAsBz3E,UAAU2lC,mBAAqB,SAAUF,GAC3D,OAAOpjC,KAAK+f,iBAAiB2e,WAAW4yC,+BAA+BluC,GAAQ,SAAUqsC,GACrF,IAAI7wB,EAAY6wB,EAAKjlD,OACrB4Y,EAAOv8B,MAAQ+3C,EAAU/3C,MACzBu8B,EAAOt8B,IAAM83C,EAAU93C,IACvBs8B,EAAO5O,SAAWoqB,EAAUpqB,SAC5B4O,EAAOjF,MAAQygB,EAAUzgB,MACzBiF,EAAO8b,eAAiBuwB,EAAKvwB,eAC7B9b,EAAO6b,aAAewwB,EAAKxwB,iBAGnCm2B,EAAsBz3E,UAAU6kC,gBAAkB,SAAUud,EAAerd,GACvE1iC,KAAKigB,QAAQ0iB,mBACb,IAAI8zC,EAAUz2E,KAAK8f,QAAQC,iBAAiB2e,WAAW0yC,0BAA0BpxE,KAAK8f,QAAQoF,UAAUsa,MAAMtW,YAAYwZ,EAAcjd,IAAKs6B,GAAe,SAAUnB,GAClKmB,EAAc5hB,MAAQygB,EAAUzgB,MAAQygB,EAAUzgB,MAAQ,GAC1D4hB,EAAcvrB,SAAWoqB,EAAUpqB,SACnCurB,EAAcl5C,MAAmC,kBAApB+3C,EAAU/3C,MAAqB,IAAIoB,KAAK22C,EAAU/3C,OAAS+3C,EAAU/3C,OAAS,IAAIoB,KAAK,GACpH83C,EAAcj5C,IAA+B,kBAAlB83C,EAAU93C,IAAmB,IAAImB,KAAK22C,EAAU93C,KAAO83C,EAAU93C,KAAO,IAAImB,KAAK,MAE5GwuE,IACI12B,EAAc5hB,QAAUuE,EAAcvE,OACtCn+B,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B1xC,qBAAqBhkC,KAAK+f,iBAAkB2iB,EAAcjd,GAAIs6B,EAAc5hB,QACpI4hB,EAAcvrB,WAAakO,EAAclO,UACzCx0B,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B5xC,wBAAwB9jC,KAAK+f,iBAAkB2iB,EAAcjd,GAAIs6B,EAAcvrB,WACvIurB,EAAcj5C,IAAIN,UAAYu5C,EAAcl5C,MAAML,YAClDu5C,EAAcj5C,IAAMi5C,EAAcl5C,OAClCk5C,EAAcl5C,QAAU67B,EAAc77B,QACtC7G,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B7xC,qBAAqB7jC,KAAK+f,iBAAkB2iB,EAAcjd,GAAIs6B,EAAcl5C,QAChI7G,KAAK8f,QAAQiB,SAASwyB,WAAWY,sBACjCn0C,KAAK8f,QAAQI,qBAAqB02D,qBAAqBl0C,EAAcjd,GAAIid,EAAc77B,QAE3Fk5C,EAAcj5C,MAAQ47B,EAAc57B,MACpC9G,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B9xC,mBAAmB5jC,KAAK+f,iBAAkB2iB,EAAcjd,GAAIs6B,EAAcj5C,MAC9H9G,KAAK8f,QAAQiB,SAASwyB,WAAWY,sBACjCn0C,KAAK8f,QAAQI,qBAAqB22D,mBAAmBn0C,EAAcjd,GAAIid,EAAc57B,OAGjG,IAAK,IAAI9K,EAAI,EAAGA,EAAI+jD,EAAcg5B,SAAS34E,OAAQpE,IAE/C,IADe0mC,EAAcq2C,SAAS7vD,YAAY62B,EAAcg5B,SAASlvD,QAAQ7tB,GAAGqrB,YACrE,CACX,IAAIya,EAAaie,EAAcg5B,SAASlvD,QAAQ7tB,GAAGqrB,WAC/C2a,EAASU,EAAcjd,GACvBgqD,EAAO,IAAIJ,EAAsBnnC,2BAA2BpG,EAAYE,GAC5EhiC,KAAK+f,iBAAiB2e,WAAW6xC,wBAAwBd,GACpDA,EAAKzuC,QACNhhC,KAAKigB,QAAQkgC,WAAW,IAAIqB,EAAsBjgB,0BAA0BvhC,KAAK+f,iBAAkB0vD,EAAK3tC,WAAY2tC,EAAKztC,SAGrI,IAAI8c,EAAU,SAAU9iD,GACpB,IAAI+8E,EAAWr2C,EAAcq2C,SAASlvD,QAAQ7tB,GAE9C,IADe+jD,EAAcg5B,SAAS7vD,YAAY6vD,EAAS1xD,YAC5C,CACX,IAAI4a,EAAa+c,EAAOl/B,QAAQoF,UAAUqxC,YAAYpxC,MAAMvZ,QAAO,SAAUq2B,GAAc,OAAOA,EAAWH,YAAci3C,EAAS1xD,YAAc4a,EAAWD,QAAUU,EAAcjd,MAAO,GACxLu5B,EAAOj/B,iBAAiB2e,WAAWgyC,wBAAwBzuC,IAC3D+c,EAAO/+B,QAAQkgC,WAAW,IAAIqB,EAAsBlgB,4BAA4B0d,EAAOj/B,iBAAkBkiB,EAAW5a,eAG5H23B,EAASh/C,KACb,IAAShE,EAAI,EAAGA,EAAI0mC,EAAcq2C,SAAS34E,OAAQpE,IAC/C8iD,EAAQ9iD,GAEZ,IAAIg9E,EAAgBj5B,EAAcl5C,QAAU67B,EAAc77B,OAASk5C,EAAcj5C,MAAQ47B,EAAc57B,KAAOi5C,EAAcvrB,WAAakO,EAAclO,UAAYurB,EAAc5hB,QAAUuE,EAAcvE,MAIzM,OAHIs4C,GAAWuC,GACXh5E,KAAKkgB,qBAAqB41D,wBAAwBpzC,EAAcjd,IACpEzlB,KAAKigB,QAAQ2iB,kBACN,GAEXwyC,EAAsBz3E,UAAUklC,iBAAmB,SAAUC,GACzDA,EAAUA,GAAW9iC,KAAK8f,QAAQoF,UAAUsa,MAAMtW,YAAYlpB,KAAK8f,QAAQmjC,uBAC3E,IAAIg2B,EAAQ,IAAIH,EAahB,OAZAG,EAAMxzD,GAAKqd,EAAQzb,WACnB4xD,EAAM96C,MAAQ2E,EAAQ3E,MACtB86C,EAAMzkD,SAAWsO,EAAQtO,SACzBykD,EAAMpyE,MAAQi8B,EAAQj8B,MACtBoyE,EAAMnyE,IAAMg8B,EAAQh8B,IACpBmyE,EAAMF,SAAW/4E,KAAK8f,QAAQoF,UAAU6tC,qBAAqBjwB,GAC7Dm2C,EAAMtsB,UAAY,IAAIoJ,EAAqB5xB,mBAC3C80C,EAAMtsB,UAAUvjC,SAASppB,KAAK8f,QAAQoF,UAAUynC,UAAUxnC,OAC1D8zD,EAAMC,2BAA6Bl5E,KAAK8f,QAAQ4F,eAAeyzD,oBAC/DF,EAAMG,0BAA4Bp5E,KAAK8f,QAAQ4F,eAAeC,mBAC9DszD,EAAMI,WAAar5E,KAAKs5E,oBACxBL,EAAMM,gBAAkBv5E,KAAKw5E,uBAAuB12C,GAC7Cm2C,GAEX7D,EAAsBz3E,UAAU27E,kBAAoB,WAChD,IAAIv4D,EAAW/gB,KAAK8f,QAAQiB,SAC5B,OAAOA,EAASC,QAAQP,SAAWM,EAASC,QAAQ6yB,iBAExDuhC,EAAsBz3E,UAAU67E,uBAAyB,SAAUh0D,GAC/D,OAAQxlB,KAAK8f,QAAQoF,UAAU2P,4BAA4BrP,EAAK6B,aAEpE+tD,EAAsBz3E,UAAUmjB,UAAY,WACxC,IAAIyzB,EAAQv0C,KAAK8f,QACbo2D,EAAe3hC,EAAMrvB,UAAU4a,SAASyU,EAAM0O,uBAClD,QAASizB,GAAgBA,EAAa7iD,UAE1C+hD,EAAsBz3E,UAAUyiB,SAAW,WACvC,IAAII,EAAQqH,EAAOlqB,UAAUyiB,SAASlkB,KAAK8D,MAE3C,OADAwgB,EAAMU,QAAUV,EAAMU,UAAYlhB,KAAK8f,QAAQyG,mBAAmB8V,aAC3D7b,GAEX40D,EAAsBz3E,UAAUolC,cAAgB,WAC5C,MAAO,YAEJqyC,EA7GkB,CA8G3B7yC,EAAaS,YACflnC,EAAQs5E,sBAAwBA,EAChC,IAAI0D,EAAsB,SAAUjxD,GAEhC,SAASixD,IACL,IAAI9tE,EAAmB,OAAX6c,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAKhE,OAJAgL,EAAMquE,YAAa,EACnBruE,EAAMuuE,iBAAkB,EACxBvuE,EAAMi0C,aAAe,GACrBj0C,EAAMk0C,eAAiB,GAChBl0C,EAqBX,OA5BA2c,EAAQ3pB,UAAU86E,EAAoBjxD,GAStCixD,EAAmBn7E,UAAUwa,MAAQ,WACjC,IAAIA,EAAQ,IAAI2gE,EAgBhB,OAfA3gE,EAAMsN,GAAKzlB,KAAKylB,GAChBtN,EAAMgmB,MAAQn+B,KAAKm+B,MACnBhmB,EAAMqc,SAAWx0B,KAAKw0B,SACtBrc,EAAMtR,MAAQ7G,KAAK6G,MACnBsR,EAAMrR,IAAM9G,KAAK8G,IACjBqR,EAAM4gE,SAAW,IAAIhjB,EAAqB5xB,mBAC1ChsB,EAAM4gE,SAAS3vD,SAASppB,KAAK+4E,SAAS5zD,OACtChN,EAAMw0C,UAAY,IAAIoJ,EAAqB5xB,mBAC3ChsB,EAAMw0C,UAAUvjC,SAASppB,KAAK2sD,UAAUxnC,OACxChN,EAAM+gE,2BAA6Bl5E,KAAKk5E,2BACxC/gE,EAAMihE,0BAA4Bp5E,KAAKo5E,0BACvCjhE,EAAMkhE,WAAar5E,KAAKq5E,WACxBlhE,EAAMohE,gBAAkBv5E,KAAKu5E,gBAC7BphE,EAAM8mC,aAAej/C,KAAKi/C,aAAar1B,QACvCzR,EAAM+mC,eAAiBl/C,KAAKk/C,eAAet1B,QACpCzR,GAEJ2gE,EA7Be,CA8BxBv2C,EAAaW,sBACfpnC,EAAQg9E,mBAAqBA,GAKtB,SAAS/8E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ29E,0BAA4B39E,EAAQu5E,4BAAyB,EACrE,IAAI1tD,EAAU/rB,EAAoB,GAC9B2mC,EAAe3mC,EAAoB,IACnCm6D,EAAuBn6D,EAAoB,IAC3C42E,EAAuB52E,EAAoB,IAC3Cy5E,EAA0B,SAAUxtD,GAEpC,SAASwtD,IACL,IAAIrqE,EAAmB,OAAX6c,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAEhE,OADAgL,EAAM0uE,mBAAqB,GACpB1uE,EA6CX,OAjDA2c,EAAQ3pB,UAAUq3E,EAAwBxtD,GAM1CwtD,EAAuB13E,UAAU6kC,gBAAkB,SAAUud,EAAerd,GACxE1iC,KAAKigB,QAAQ0iB,mBACb,IAAK,IAAI3mC,EAAI,EAAGA,EAAI+jD,EAAc4M,UAAUvsD,OAAQpE,IACjC0mC,EAAciqB,UAAUzjC,YAAY62B,EAAc4M,UAAU9iC,QAAQ7tB,GAAGqrB,aAElFrnB,KAAK8f,QAAQ4F,eAAemsC,sBAAsBxxC,QAAQ0/B,EAAc4M,UAAU9iC,QAAQ7tB,GAAG0lC,MAErG,IAAS1lC,EAAI,EAAGA,EAAI0mC,EAAciqB,UAAUvsD,OAAQpE,IACjC+jD,EAAc4M,UAAUzjC,YAAYwZ,EAAciqB,UAAU9iC,QAAQ7tB,GAAGqrB,aAElFrnB,KAAK05E,mBAAmBz2E,KAAKy/B,EAAciqB,UAAU9iC,QAAQ7tB,IAGrE,OADAgE,KAAKigB,QAAQ2iB,kBACN,GAEXyyC,EAAuB13E,UAAUklC,iBAAmB,SAAU82C,GAC1D35E,KAAK25E,SAAWA,EAChB,IAAIV,EAAQ,IAAIQ,EAGhB,OAFAR,EAAMtsB,UAAY,IAAIoJ,EAAqB5xB,mBAC3C80C,EAAMtsB,UAAUvjC,SAASppB,KAAK8f,QAAQoF,UAAUynC,UAAUxnC,OACnD8zD,GAEX5D,EAAuB13E,UAAU6lC,aAAe,WAC5C,IAAIx4B,EAAQhL,KACZ,GAAIA,KAAK05E,mBAAmBt5E,OAAQ,CAChC,IAAIw5E,EAAqB55E,KAAK8f,QAAQ4F,eAAe2wD,uBACjDwD,EAA+B,IAAIrH,EAAqBpwC,6BAA6BowC,EAAqBlwC,iBAAiBw3C,iBAAiB,WAC5I9uE,EAAMiV,QAAQ0iB,mBACd,IAAK,IAAI3mC,EAAI,EAAGA,EAAIgP,EAAM0uE,mBAAmBt5E,OAAQpE,IACjDgP,EAAM8U,QAAQ4F,eAAessC,sBAAsB3xC,QAAQrV,EAAM0uE,mBAAmB19E,GAAGqrB,YAC3Frc,EAAMiV,QAAQ2iB,oBAElBi3C,EAA6B52C,QAAUjjC,KAAK05E,mBAAmBryB,QAAO,SAAU5jD,EAAGhE,GAAK,OAAOkoB,EAAQ7oB,cAAc6oB,EAAQ7oB,cAAc,GAAI2E,GAAI,CAAChE,EAAEiiC,SAAW,IAAIkE,KAAK,MACtK5lC,KAAK25E,WACLC,EAAmBp2C,aAAe,WAAc,OAAOx4B,EAAM2uE,aACjEC,EAAmBv5D,QAAQw5D,QAEtB75E,KAAK25E,UACV35E,KAAK25E,YAEbtE,EAAuB13E,UAAUolC,cAAgB,WAC7C,MAAO,aAEJsyC,EAlDmB,CAmD5B9yC,EAAaS,YACflnC,EAAQu5E,uBAAyBA,EACjC,IAAIoE,EAA6B,SAAU5xD,GAEvC,SAAS4xD,IACL,OAAkB,OAAX5xD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAQ/D,OAVA2nB,EAAQ3pB,UAAUy7E,EAA2B5xD,GAI7C4xD,EAA0B97E,UAAUwa,MAAQ,WACxC,IAAIA,EAAQ,IAAIshE,EAGhB,OAFAthE,EAAMw0C,UAAY,IAAIoJ,EAAqB5xB,mBAC3ChsB,EAAMw0C,UAAUvjC,SAASppB,KAAK2sD,UAAUxnC,OACjChN,GAEJshE,EAXsB,CAY/Bl3C,EAAaW,sBACfpnC,EAAQ29E,0BAA4BA,GAK7B,SAAS19E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ82E,wBAAqB,EAE7B,SAAWA,GACPA,EAAmBA,EAA+B,WAAI,GAAK,aAC3DA,EAAmBA,EAAkC,cAAI,GAAK,gBAC9DA,EAAmBA,EAA+B,WAAI,GAAK,aAC3DA,EAAmBA,EAAqC,iBAAI,GAAK,mBACjEA,EAAmBA,EAAoC,gBAAI,GAAK,kBAChEA,EAAmBA,EAAuC,mBAAI,GAAK,qBACnEA,EAAmBA,EAAyB,KAAI,GAAK,OACrDA,EAAmBA,EAAyB,KAAI,GAAK,OACrDA,EAAmBA,EAA2B,OAAI,GAAK,SACvDA,EAAmBA,EAA4B,QAAI,GAAK,UACxDA,EAAmBA,EAA+B,WAAI,IAAM,aAC5DA,EAAmBA,EAAgC,YAAI,IAAM,cAC7DA,EAAmBA,EAA8B,UAAI,IAAM,YAb/D,CAcwB92E,EAAQ82E,qBAAuB92E,EAAQ82E,mBAAqB,MAK7E,SAAS72E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQy3E,YAAcz3E,EAAQu3E,iBAAc,EAC5C,IAAI1rD,EAAU/rB,EAAoB,GAC9BunC,EAAgBvnC,EAAoB,GACpCy3E,EAAe,SAAUxrD,GAEzB,SAASwrD,IACL,OAAkB,OAAXxrD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAiB/D,OAnBA2nB,EAAQ3pB,UAAUq1E,EAAaxrD,GAI/BwrD,EAAY11E,UAAUyiB,SAAW,WAC7B,IAAII,EAAQ,IAAI2iB,EAAcvjB,mBAAmB5f,KAAK8gB,aAEtD,OADAN,EAAMU,QAAUlhB,KAAK8f,QAAQiB,SAASC,QAAQP,QACvCD,GAEX6yD,EAAY11E,UAAU0iB,QAAU,WAC5B,OAAOwH,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,OAEzCqzE,EAAY11E,UAAUgjB,gBAAkB,WAEpC,OADA3gB,KAAKigB,QAAQ0I,QACN,GAEX0qD,EAAY11E,UAAUmjB,UAAY,WAC9B,OAAO+G,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,OAASA,KAAKigB,QAAQ6lD,WAE1DuN,EApBQ,CAqBjBlwC,EAActjB,aAChB/jB,EAAQu3E,YAAcA,EACtB,IAAIE,EAAe,SAAU1rD,GAEzB,SAAS0rD,IACL,OAAkB,OAAX1rD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAiB/D,OAnBA2nB,EAAQ3pB,UAAUu1E,EAAa1rD,GAI/B0rD,EAAY51E,UAAUyiB,SAAW,WAC7B,IAAII,EAAQ,IAAI2iB,EAAcvjB,mBAAmB5f,KAAK8gB,aAEtD,OADAN,EAAMU,QAAUlhB,KAAK8f,QAAQiB,SAASC,QAAQP,QACvCD,GAEX+yD,EAAY51E,UAAU0iB,QAAU,WAC5B,OAAOwH,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,OAEzCuzE,EAAY51E,UAAUgjB,gBAAkB,WAEpC,OADA3gB,KAAKigB,QAAQwI,QACN,GAEX8qD,EAAY51E,UAAUmjB,UAAY,WAC9B,OAAO+G,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,OAASA,KAAKigB,QAAQ+lD,WAE1DuN,EApBQ,CAqBjBpwC,EAActjB,aAChB/jB,EAAQy3E,YAAcA,GAKf,SAASx3E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ63E,eAAiB73E,EAAQ23E,mBAAgB,EACjD,IAAI9rD,EAAU/rB,EAAoB,GAC9BunC,EAAgBvnC,EAAoB,GACpC63E,EAAiB,SAAU5rD,GAE3B,SAAS4rD,IACL,OAAkB,OAAX5rD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAY/D,OAdA2nB,EAAQ3pB,UAAUy1E,EAAe5rD,GAIjC4rD,EAAc91E,UAAUyiB,SAAW,WAC/B,OAAO,IAAI+iB,EAAcvjB,oBAAmB,IAEhD6zD,EAAc91E,UAAU0iB,QAAU,WAC9B,OAAOwH,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,OAEzCyzE,EAAc91E,UAAUgjB,gBAAkB,WAEtC,OADA3gB,KAAK8f,QAAQumC,UACN,GAEJotB,EAfU,CAgBnBtwC,EAActjB,aAChB/jB,EAAQ23E,cAAgBA,EACxB,IAAIE,EAAkB,SAAU9rD,GAE5B,SAAS8rD,IACL,OAAkB,OAAX9rD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAY/D,OAdA2nB,EAAQ3pB,UAAU21E,EAAgB9rD,GAIlC8rD,EAAeh2E,UAAUyiB,SAAW,WAChC,OAAO,IAAI+iB,EAAcvjB,oBAAmB,IAEhD+zD,EAAeh2E,UAAU0iB,QAAU,WAC/B,OAAOwH,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,OAEzC2zE,EAAeh2E,UAAUgjB,gBAAkB,WAEvC,OADA3gB,KAAK8f,QAAQ8mC,WACN,GAEJ+sB,EAfW,CAgBpBxwC,EAActjB,aAChB/jB,EAAQ63E,eAAiBA,GAKlB,SAAS53E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQ+3E,6BAA0B,EAClC,IAAIlsD,EAAU/rB,EAAoB,GAC9BunC,EAAgBvnC,EAAoB,GACpCi4E,EAA2B,SAAUhsD,GAErC,SAASgsD,IACL,IAAI7oE,EAAmB,OAAX6c,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAGhE,OAFAgL,EAAMgqD,oBAAqB,EAC3BhqD,EAAM+uE,mBAAqB,GACpB/uE,EAcX,OAnBA2c,EAAQ3pB,UAAU61E,EAAyBhsD,GAO3CgsD,EAAwBl2E,UAAUyiB,SAAW,WACzC,IAAII,EAAQ,IAAI2iB,EAAcvjB,oBAAmB,GAEjD,OADAY,EAAMxjB,MAAQgD,KAAK8f,QAAQqkC,qBAAqB6Q,mBACzCx0C,GAEXqzD,EAAwBl2E,UAAU0iB,QAAU,WACxC,OAAOwH,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,OAEzC6zE,EAAwBl2E,UAAUgjB,gBAAkB,WAEhD,OADA3gB,KAAK8f,QAAQqkC,qBAAqB/xC,UAC3B,GAEJyhE,EApBoB,CAqB7B1wC,EAActjB,aAChB/jB,EAAQ+3E,wBAA0BA,GAK3B,SAAS93E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQm4E,iBAAmBn4E,EAAQi4E,wBAAqB,EACxD,IAAIpsD,EAAU/rB,EAAoB,GAC9BunC,EAAgBvnC,EAAoB,GACpCm4E,EAAsB,SAAUlsD,GAEhC,SAASksD,IACL,OAAkB,OAAXlsD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAe/D,OAjBA2nB,EAAQ3pB,UAAU+1E,EAAoBlsD,GAItCksD,EAAmBp2E,UAAUyiB,SAAW,WACpC,OAAO,IAAI+iB,EAAcvjB,mBAAmB5f,KAAK8gB,cAErDizD,EAAmBp2E,UAAU0iB,QAAU,WACnC,OAAOwH,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,OAEzC+zE,EAAmBp2E,UAAUgjB,gBAAkB,WAE3C,OADA3gB,KAAK8f,QAAQoG,WAAW8zD,eACjB,GAEXjG,EAAmBp2E,UAAUmjB,UAAY,WACrC,OAAO,GAEJizD,EAlBe,CAmBxB5wC,EAActjB,aAChB/jB,EAAQi4E,mBAAqBA,EAC7B,IAAIE,EAAoB,SAAUpsD,GAE9B,SAASosD,IACL,OAAkB,OAAXpsD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAe/D,OAjBA2nB,EAAQ3pB,UAAUi2E,EAAkBpsD,GAIpCosD,EAAiBt2E,UAAUyiB,SAAW,WAClC,OAAO,IAAI+iB,EAAcvjB,mBAAmB5f,KAAK8gB,cAErDmzD,EAAiBt2E,UAAU0iB,QAAU,WACjC,OAAOwH,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,OAEzCi0E,EAAiBt2E,UAAUgjB,gBAAkB,WAEzC,OADA3gB,KAAK8f,QAAQoG,WAAW+zD,aACjB,GAEXhG,EAAiBt2E,UAAUmjB,UAAY,WACnC,OAAO,GAEJmzD,EAlBa,CAmBtB9wC,EAActjB,aAChB/jB,EAAQm4E,iBAAmBA,GAKpB,SAASl4E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQq5E,qBAAuBr5E,EAAQo+E,iCAA8B,EACrE,IAAIvyD,EAAU/rB,EAAoB,GAC9BunC,EAAgBvnC,EAAoB,GACpCu+E,EAAkCv+E,EAAoB,KACtDs+E,EAA+B,SAAUryD,GAEzC,SAASqyD,IACL,OAAkB,OAAXryD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAQ/D,OAVA2nB,EAAQ3pB,UAAUk8E,EAA6BryD,GAI/CqyD,EAA4Bv8E,UAAUyiB,SAAW,WAC7C,OAAO,IAAI+iB,EAAcvjB,mBAAmB5f,KAAK8gB,cAErDo5D,EAA4Bv8E,UAAUmjB,UAAY,WAC9C,OAAO+G,EAAOlqB,UAAUmjB,UAAU5kB,KAAK8D,OAASA,KAAK8f,QAAQiB,SAASC,QAAQgzB,qBAE3EkmC,EAXwB,CAYjC/2C,EAActjB,aAChB/jB,EAAQo+E,4BAA8BA,EACtC,IAAI/E,EAAwB,SAAUttD,GAElC,SAASstD,IACL,OAAkB,OAAXttD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAY/D,OAdA2nB,EAAQ3pB,UAAUm3E,EAAsBttD,GAIxCstD,EAAqBx3E,UAAU0iB,QAAU,SAAUoF,EAAIzoB,GACnD,OAAO6qB,EAAOlqB,UAAU0iB,QAAQnkB,KAAK8D,KAAMylB,EAAIzoB,IAEnDm4E,EAAqBx3E,UAAUgjB,gBAAkB,SAAU8E,EAAIzoB,GAE3D,OADegD,KAAK8f,QAAQoF,UAAUynC,UAAUzjC,YAAYzD,GAAIuO,OAChDh3B,IAEhBgD,KAAKigB,QAAQkgC,WAAW,IAAIg6B,EAAgCC,yBAAyBp6E,KAAK+f,iBAAkB0F,EAAIzoB,KACzG,IAEJm4E,EAfiB,CAgB1B+E,GACFp+E,EAAQq5E,qBAAuBA,GAKxB,SAASp5E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQs+E,yBAA2Bt+E,EAAQu+E,uCAAoC,EAC/E,IAAI1yD,EAAU/rB,EAAoB,GAE9By+E,EAAqC,SAAUxyD,GAE/C,SAASwyD,EAAkCt6D,EAAkB+hB,EAAYvC,GACrE,IAAIv0B,EAAQ6c,EAAO3rB,KAAK8D,KAAM+f,IAAqB/f,KAGnD,OAFAgL,EAAM82B,WAAaA,EACnB92B,EAAMu0B,SAAWA,EACVv0B,EAWX,OAhBA2c,EAAQ3pB,UAAUq8E,EAAmCxyD,GAOrDwyD,EAAkC18E,UAAU8qB,KAAO,WAC/CzoB,KAAKy/B,SAAWz/B,KAAKkkC,2BAA2B5E,SAASt/B,KAAK8hC,WAAY9hC,KAAKu/B,WAEnF86C,EAAkC18E,UAAUgrB,KAAO,WAC/C3oB,KAAKkkC,2BAA2BjE,aAAajgC,KAAKy/B,WAEtD46C,EAAkC18E,UAAUumC,yBAA2B,WACnE,MAAM,IAAIjjB,MAAM,oBAEbo5D,EAjB8B,CADrBz+E,EAAoB,IAmBxB0sB,aAChBxsB,EAAQu+E,kCAAoCA,EAC5C,IAAID,EAA4B,SAAUvyD,GAEtC,SAASuyD,IACL,OAAkB,OAAXvyD,GAAmBA,EAAOxnB,MAAML,KAAMG,YAAcH,KAK/D,OAPA2nB,EAAQ3pB,UAAUo8E,EAA0BvyD,GAI5CuyD,EAAyBz8E,UAAUumC,yBAA2B,WAC1D,OAAOlkC,KAAK+f,iBAAiB8hB,SAASE,WAAW/N,OAE9ComD,EARqB,CAS9BC,GACFv+E,EAAQs+E,yBAA2BA,GAK5B,SAASr+E,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQgoD,gBAAa,EACrB,IAAIA,EAAc,WACd,SAASA,EAAWhkC,EAASikC,GACzB/jD,KAAK8f,QAAUA,EACf9f,KAAK+jD,KAAOA,EA2ChB,OAzCAD,EAAWnmD,UAAU28E,kBAAoB,WACrC,IAAK,IAAIt+E,EAAI,EAAGu+E,OAAM,EAAQA,EAAMv6E,KAAK+jD,KAAK/nD,GAAIA,IAC9C,GAAIu+E,EAAIC,gBAAiB,CACrBD,EAAIE,kBAEJ,IADA,IAAIC,EAAcH,EAAII,iBACbj3E,EAAI,EAAGA,EAAIg3E,EAAYt6E,OAAQsD,IACpC1D,KAAK46E,cAAcL,EAAKG,EAAYh3E,MAGpDogD,EAAWnmD,UAAUkjB,iBAAmB,SAAUg6D,GAiB9C,IAhBA,IAAIC,IAAmBD,EAAcz6E,OACjC0+C,EAAU,SAAU9iD,EAAGu+E,GACvB,GAAIA,EAAI5vB,YAAa,CAOjB,IANA,IAAIowB,EAAgBR,EAAII,iBACpBK,EAAU,SAAUt3E,GACpB,GAAIo3E,IAAmBD,EAAcjvE,QAAO,SAAU7H,GAAK,OAAOA,GAAKg3E,EAAcr3E,MAAOtD,OACxF,MAAO,WACX4+C,EAAO47B,cAAcL,EAAKQ,EAAcr3E,KAEnCA,EAAI,EAAGA,EAAIq3E,EAAc36E,OAAQsD,IACtCs3E,EAAQt3E,GAEZ62E,EAAIU,mBAGRj8B,EAASh/C,KACJhE,EAAI,EAAGu+E,OAAM,EAAQA,EAAMv6E,KAAK+jD,KAAK/nD,GAAIA,IAC9C8iD,EAAQ9iD,EAAGu+E,IAGnBz2B,EAAWnmD,UAAUi9E,cAAgB,SAAUL,EAAKW,GAChD,IAAI1F,EAAUx1E,KAAK8f,QAAQ4F,eAAe4vD,WAAW4F,GACrD,GAAI1F,EAAS,CACT,IAAI2F,EAAe3F,EAAQp1D,WAC3Bm6D,EAAIa,eAAeF,EAAYC,EAAaj6D,SACxCi6D,EAAaj6D,UACbq5D,EAAIc,eAAeH,EAAYC,EAAa16D,SAC5C85D,EAAIe,aAAaJ,EAAYC,EAAan+E,UAI/C8mD,EA9CO,GAgDlBhoD,EAAQgoD,WAAaA,GAKd,SAAS/nD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQonD,qBAAuBpnD,EAAQy/E,qBAAkB,EACzD,IAAI5zD,EAAU/rB,EAAoB,GAC9BizB,EAAejzB,EAAoB,IACnC85E,EAA8B95E,EAAoB,IAClDuK,EAAcvK,EAAoB,GAClCowB,EAAkBpwB,EAAoB,GACtCsK,EAAWtK,EAAoB,GAC/B2/E,EACA,SAAyBl/C,EAAcg7C,QAClB,IAAbA,IAAuBA,GAAW,GACtCr3E,KAAKq8B,aAAeA,EACpBr8B,KAAKq3E,SAAWA,GAIxBv7E,EAAQy/E,gBAAkBA,EAC1B,IAAIr4B,EAAwB,WACxB,SAASA,EAAqB3O,GAC1Bv0C,KAAKw7E,4BAA6B,EAClCx7E,KAAKu0C,MAAQA,EA2QjB,OAzQA93C,OAAOC,eAAewmD,EAAqBvlD,UAAW,YAAa,CAC/Df,IAAK,WACD,OAAOoD,KAAKu0C,MAAMrvB,WAEtBvoB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAewmD,EAAqBvlD,UAAW,UAAW,CAC7Df,IAAK,WACD,OAAOoD,KAAKu0C,MAAMt0B,SAEtBtjB,YAAY,EACZqjB,cAAc,IAElBvjB,OAAOC,eAAewmD,EAAqBvlD,UAAW,uBAAwB,CAC1Ef,IAAK,WACD,OAAOoD,KAAKklB,UAAUmvB,sBAE1B13C,YAAY,EACZqjB,cAAc,IAElBkjC,EAAqBvlD,UAAUi6E,uBAAyB,SAAU51C,EAAQj6B,GACtE,IAAIiD,EAAQhL,KACRgC,EAAS,GACTwjB,EAAOxlB,KAAKu0C,MAAMrvB,UAAUsa,MAAMtW,YAAY8Y,GAWlD,OAVmBhiC,KAAKklB,UAAU+W,aAAa9W,MAAMvZ,QAAO,SAAUvP,GAAK,OAAOA,EAAE0rB,cAAgBia,KACvFrsB,SAAQ,SAAU8lE,GAC3B,IAAIl7B,EAAkBv1C,EAAMupC,MAAMrvB,UAAUsa,MAAMtW,YAAYuyD,EAAI3zD,gBAC9D2zD,EAAI1/D,OAAS8S,EAAanH,eAAeS,IAAMo4B,EAAgBz5C,IAAMiB,GAClE0zE,EAAI1/D,OAAS8S,EAAanH,eAAeM,IAAMu4B,EAAgB15C,MAAQkB,IAC1E/F,EAAOiB,KAAK,IAAIs4E,EAAgBE,EAAIp0D,YAAY,KAChDo0D,EAAI1/D,OAAS8S,EAAanH,eAAeS,IAAMo4B,EAAgBz5C,IAAIorB,YAAc1M,EAAK3e,MAAMqrB,WAAanqB,EAAOw4C,EAAgBz5C,KAChI20E,EAAI1/D,OAAS8S,EAAanH,eAAeM,IAAMu4B,EAAgB15C,MAAMqrB,YAAc1M,EAAK3e,MAAMqrB,WAAanqB,EAAOw4C,EAAgB15C,QAClI7E,EAAOiB,KAAK,IAAIs4E,EAAgBE,EAAIp0D,gBAErCrlB,GAEXkhD,EAAqBvlD,UAAUo6E,qBAAuB,SAAU/1C,EAAQj6B,GACpE,IAAIiD,EAAQhL,KACRgC,EAAS,GACTwjB,EAAOxlB,KAAKu0C,MAAMrvB,UAAUsa,MAAMtW,YAAY8Y,GAWlD,OAVmBhiC,KAAKklB,UAAU+W,aAAa9W,MAAMvZ,QAAO,SAAUvP,GAAK,OAAOA,EAAE0rB,cAAgBia,KACvFrsB,SAAQ,SAAU8lE,GAC3B,IAAIl7B,EAAkBv1C,EAAMupC,MAAMrvB,UAAUsa,MAAMtW,YAAYuyD,EAAI3zD,gBAC9D2zD,EAAI1/D,OAAS8S,EAAanH,eAAeO,IAAMs4B,EAAgB15C,MAAQkB,GACpE0zE,EAAI1/D,OAAS8S,EAAanH,eAAeU,IAAMm4B,EAAgBz5C,IAAMiB,IACxE/F,EAAOiB,KAAK,IAAIs4E,EAAgBE,EAAIp0D,YAAY,KAC/Co0D,EAAI1/D,OAAS8S,EAAanH,eAAeO,IAAMs4B,EAAgB15C,MAAMqrB,YAAc1M,EAAK1e,IAAIorB,WAAanqB,EAAOw4C,EAAgB15C,OAChI40E,EAAI1/D,OAAS8S,EAAanH,eAAeU,IAAMm4B,EAAgBz5C,IAAIorB,YAAc1M,EAAK1e,IAAIorB,WAAanqB,EAAOw4C,EAAgBz5C,MAC/H9E,EAAOiB,KAAK,IAAIs4E,EAAgBE,EAAIp0D,gBAErCrlB,GAEXkhD,EAAqBvlD,UAAUk5E,mBAAqB,SAAU6E,EAAmBC,EAA4BC,GACzG,IAAI5wE,EAAQhL,UACkB,IAA1B47E,IAAoCA,GAAwB,GAChE,IAAI3/C,EAAej8B,KAAKklB,UAAU+W,aAAa9W,MAAMvZ,QAAO,SAAUvP,GAAK,OAAOA,EAAEyrB,gBAAkB4zD,IAAsBr/E,EAAEw/E,qBAC1Ht7B,EAAkBvgD,KAAKu0C,MAAMrvB,UAAUsa,MAAMtW,YAAYwyD,GAC7Dz/C,EAAatmB,SAAQ,SAAU4mB,GAC3B,IAAI+jB,EAAgBt1C,EAAMupC,MAAMrvB,UAAUsa,MAAMtW,YAAYqT,EAAWxU,aAEvE,GADyBu4B,KAAkBs7B,GAAyBr7B,EAAgB7B,WAAa4B,EAAc5B,WAAc4B,EAAc5B,UAAY6B,EAAgB96B,GACvK,CAEA,IAAIq2D,EAA2B,IAAI31E,EAAY2E,UAAU,IAAI7C,KAAKq4C,EAAcz5C,MAAML,WAAY,IAAIyB,KAAKq4C,EAAcx5C,IAAIN,YACzHu1E,EAAiB,IAAI51E,EAAY2E,UAAU,IAAI7C,KAAKq4C,EAAcz5C,MAAML,WAAY,IAAIyB,KAAKq4C,EAAcx5C,IAAIN,YAC/GywC,EAAQsJ,EAAgBz5C,IAAIN,UAAYm1E,EAA2Bn1E,UACnEw1E,EAAiBhxE,EAAMqpC,qBAAuBkM,EAAgBz5C,IAAM60E,EACpEp/C,EAAWxgB,OAAS8S,EAAanH,eAAeS,KAC5Cm4B,EAAcz5C,MAAQm1E,GAClBhxE,EAAMwwE,4BAA8Bl7B,EAAcz5C,MAAML,YAAcm1E,EAA2Bn1E,YACzGu1E,EAAel1E,MAAMmyB,QAAQunB,EAAgBz5C,IAAIN,WACjDu1E,EAAej1E,IAAIkyB,QAAQ+iD,EAAel1E,MAAML,WAAa85C,EAAcx5C,IAAIN,UAAY85C,EAAcz5C,MAAML,YAC/GwE,EAAMixE,cAAc37B,EAAcj5B,WAAY00D,IAEzCx/C,EAAWxgB,OAAS8S,EAAanH,eAAeU,KACjDk4B,EAAcx5C,IAAMk1E,GAChBhxE,EAAMwwE,4BAA8Bl7B,EAAcx5C,IAAIN,YAAcm1E,EAA2Bn1E,YACvGu1E,EAAel1E,MAAMmyB,QAAQunB,EAAgBz5C,IAAIN,WAAa85C,EAAcx5C,IAAIN,UAAY85C,EAAcz5C,MAAML,YAChHu1E,EAAej1E,IAAIkyB,QAAQunB,EAAgBz5C,IAAIN,WAC/CwE,EAAMixE,cAAc37B,EAAcj5B,WAAY00D,IAExC/wE,EAAMqpC,uBACZ0nC,EAAel1E,MAAMmyB,QAAQsnB,EAAcz5C,MAAML,UAAYywC,GAC7D8kC,EAAej1E,IAAIkyB,QAAQsnB,EAAcx5C,IAAIN,UAAYywC,IAExD6kC,EAAyB30D,MAAM40D,KAChC/wE,EAAMiV,QAAQkgC,WAAW,IAAIu1B,EAA4B/xC,oBAAoB34B,EAAMupC,MAAMx0B,iBAAkBwc,EAAWxU,YAAag0D,IACnI/wE,EAAMkxE,iBAAiB3/C,EAAYu/C,EAA0Bx7B,EAAey7B,SAIxF74B,EAAqBvlD,UAAUi5E,qBAAuB,SAAU8E,EAAmBS,EAA8BP,GAC7G,IAAI5wE,EAAQhL,UACkB,IAA1B47E,IAAoCA,GAAwB,GAChE,IAAI3/C,EAAej8B,KAAKklB,UAAU+W,aAAa9W,MAAMvZ,QAAO,SAAUvP,GAAK,OAAOA,EAAEyrB,gBAAkB4zD,GAAqBr/E,EAAEw/E,qBACzHt7B,EAAkBvgD,KAAKu0C,MAAMrvB,UAAUsa,MAAMtW,YAAYwyD,GAC7Dz/C,EAAatmB,SAAQ,SAAU4mB,GAC3B,IAAI+jB,EAAgBt1C,EAAMupC,MAAMrvB,UAAUsa,MAAMtW,YAAYqT,EAAWxU,aAEvE,GADyBu4B,KAAkBs7B,GAAyBr7B,EAAgB7B,WAAa4B,EAAc5B,WAAc4B,EAAc5B,UAAY6B,EAAgB96B,GACvK,CAEA,IAAIq2D,EAA2B,IAAI31E,EAAY2E,UAAU,IAAI7C,KAAKq4C,EAAcz5C,MAAML,WAAY,IAAIyB,KAAKq4C,EAAcx5C,IAAIN,YACzHu1E,EAAiB,IAAI51E,EAAY2E,UAAU,IAAI7C,KAAKq4C,EAAcz5C,MAAML,WAAY,IAAIyB,KAAKq4C,EAAcx5C,IAAIN,YAC/GywC,EAAQsJ,EAAgB15C,MAAML,UAAY21E,EAA6B31E,UACvE41E,EAAmBpxE,EAAMqpC,qBAAuBkM,EAAgB15C,MAAQs1E,EACxE5/C,EAAWxgB,OAAS8S,EAAanH,eAAeO,KAC5Cq4B,EAAcx5C,IAAMs1E,GAChBpxE,EAAMwwE,4BAA8Bl7B,EAAcx5C,IAAIN,YAAc21E,EAA6B31E,YACzGu1E,EAAel1E,MAAMmyB,QAAQunB,EAAgB15C,MAAML,WAAa85C,EAAcx5C,IAAIN,UAAY85C,EAAcz5C,MAAML,YAClHu1E,EAAej1E,IAAIkyB,QAAQunB,EAAgB15C,MAAML,WACjDwE,EAAMixE,cAAc37B,EAAcj5B,WAAY00D,IAEzCx/C,EAAWxgB,OAAS8S,EAAanH,eAAeM,KACjDs4B,EAAcz5C,MAAQu1E,GAClBpxE,EAAMwwE,4BAA8Bl7B,EAAcz5C,MAAML,YAAc21E,EAA6B31E,YAC3Gu1E,EAAel1E,MAAMmyB,QAAQunB,EAAgB15C,MAAML,WACnDu1E,EAAej1E,IAAIkyB,QAAQunB,EAAgB15C,MAAML,WAAa85C,EAAcx5C,IAAIN,UAAY85C,EAAcz5C,MAAML,YAChHwE,EAAMixE,cAAc37B,EAAcj5B,WAAY00D,IAExC/wE,EAAMqpC,uBACZ0nC,EAAel1E,MAAMmyB,QAAQsnB,EAAcz5C,MAAML,UAAYywC,GAC7D8kC,EAAej1E,IAAIkyB,QAAQsnB,EAAcx5C,IAAIN,UAAYywC,IAExD6kC,EAAyB30D,MAAM40D,KAChC/wE,EAAMiV,QAAQkgC,WAAW,IAAIu1B,EAA4B/xC,oBAAoB34B,EAAMupC,MAAMx0B,iBAAkBwc,EAAWxU,YAAag0D,IACnI/wE,EAAMkxE,iBAAiB3/C,EAAYu/C,EAA0Bx7B,EAAey7B,SAIxF74B,EAAqBvlD,UAAUu+E,iBAAmB,SAAU3/C,EAAYu/C,EAA0Bx7B,EAAey7B,GAC7G,IAAI9kC,EAAQ8kC,EAAel1E,MAAML,UAAYs1E,EAAyBj1E,MAAML,UAC5ExG,KAAKi4E,4BAA4B33B,EAAcj5B,WAAY4vB,GAC3Dj3C,KAAK42E,qBAAqBr6C,EAAWxU,YAAa+zD,EAAyBj1E,OAC3E7G,KAAK62E,mBAAmBt6C,EAAWxU,YAAa+zD,EAAyBh1E,MAE7Eo8C,EAAqBvlD,UAAUs+E,cAAgB,SAAUj6C,EAAQw0B,GAC7D,IAAIxrD,EAAQhL,KACRq8E,EAAY7lB,EAAU1vD,IAAIN,UAAYgwD,EAAU3vD,MAAML,UA2B1D,OA1BuBmhB,EAAQ7oB,cAAc6oB,EAAQ7oB,cAAc,GAAIkB,KAAK43E,uBAAuB51C,EAAQw0B,EAAU3vD,QAAS7G,KAAK+3E,qBAAqB/1C,EAAQw0B,EAAU1vD,MACpI8E,QAAO,SAAUtL,GAAK,OAAOA,EAAE+2E,YACtD1hE,SAAQ,SAAUrS,GAC7B,IAAIi5B,EAAavxB,EAAMupC,MAAMrvB,UAAU+W,aAAa/S,YAAY5lB,EAAM+4B,cAClEkkB,EAAkBv1C,EAAMupC,MAAMrvB,UAAUsa,MAAMtW,YAAYqT,EAAWzU,eACrEyU,EAAWxgB,OAAS8S,EAAanH,eAAeS,IAC5CquC,EAAU3vD,MAAQ05C,EAAgBz5C,MAClC0vD,EAAU3vD,MAAMmyB,QAAQunB,EAAgBz5C,IAAIN,WAC5CgwD,EAAU1vD,IAAIkyB,QAAQw9B,EAAU3vD,MAAML,UAAY61E,IAEtD9/C,EAAWxgB,OAAS8S,EAAanH,eAAeM,IAC5CwuC,EAAU3vD,MAAQ05C,EAAgB15C,QAClC2vD,EAAU3vD,MAAMmyB,QAAQunB,EAAgB15C,MAAML,WAC9CgwD,EAAU1vD,IAAIkyB,QAAQw9B,EAAU3vD,MAAML,UAAY61E,IAEtD9/C,EAAWxgB,OAAS8S,EAAanH,eAAeU,IAC5CouC,EAAU1vD,IAAMy5C,EAAgBz5C,MAChC0vD,EAAU1vD,IAAIkyB,QAAQunB,EAAgBz5C,IAAIN,WAC1CgwD,EAAU3vD,MAAMmyB,QAAQw9B,EAAU1vD,IAAIN,UAAY61E,IAEtD9/C,EAAWxgB,OAAS8S,EAAanH,eAAeO,IAC5CuuC,EAAU1vD,IAAMy5C,EAAgB15C,QAChC2vD,EAAU1vD,IAAIkyB,QAAQunB,EAAgB15C,MAAML,WAC5CgwD,EAAU3vD,MAAMmyB,QAAQw9B,EAAU1vD,IAAIN,UAAY61E,OAGvD7lB,GAEXtT,EAAqBvlD,UAAUi6D,mBAAqB,SAAUthD,EAAOgmE,GAEjE,IADA,IAAItnE,EAASsB,GAASA,EAAMtB,OACrBA,GAAUA,EAAOwQ,MAAM,CAO1B,IANA,IAAI/P,EAAWT,EAAOS,SAClB5O,EAAQ7G,KAAKu0C,MAAMlrB,MAAMviB,IACzBA,EAAM9G,KAAKu0C,MAAMlrB,MAAMxiB,MACvB2tB,EAAW,EACX+nD,EAAgB,EAChBxwC,EAAO,CAAEtmB,GAAIzQ,EAAOwQ,KAAK6B,YACpBrrB,EAAI,EAAGA,EAAIyZ,EAASrV,OAAQpE,IAAK,CACtC,IAAIwgF,EAAY/mE,EAASzZ,GAAGwpB,KAC5B,GAAKg3D,EAAUzwB,UAAf,CAEAllD,EAAQmlB,EAAgBjmB,cAAcY,WAAWE,EAAO21E,EAAU31E,OAClEC,EAAMklB,EAAgBjmB,cAAcW,WAAWI,EAAK01E,EAAU11E,KAC9D,IAAI+wD,EAAW2kB,EAAU9c,cACzBlrC,GAAYgoD,EAAUhoD,SAAWqjC,EACjC0kB,GAAiB1kB,GAEhB7rC,EAAgBjmB,cAAcU,cAAcuO,EAAOwQ,KAAK3e,MAAOA,KAChEklC,EAAY,MAAIllC,GACfmlB,EAAgBjmB,cAAcU,cAAcuO,EAAOwQ,KAAK1e,IAAKA,KAC9DilC,EAAU,IAAIjlC,GAClBilC,EAAe,SAAI/2B,EAAOwQ,KAAK3e,MAC/BklC,EAAa,OAAI/2B,EAAOwQ,KAAK1e,KAC7B0tB,EAAW+nD,EAAgB,EAAIv1E,KAAKwG,MAAMgnB,EAAW+nD,GAAiB,KACrDvnE,EAAOwQ,KAAKgP,WACzBuX,EAAe,SAAIvX,GACvB8nD,EAAiBvwC,GACjB/2B,EAASA,EAAOA,SAGxBkuC,EAAqBvlD,UAAU8+E,0BAA4B,SAAUz6C,GACjE,IAAIh3B,EAAQhL,KACZA,KAAK43D,mBAAmB53D,KAAKklB,UAAU4a,SAASkC,IAAS,SAAU+J,GAC/D,GAAK7lC,EAASpB,UAAUinC,EAAKtmB,IAA7B,CAEA,IAAIxF,EAAUjV,EAAMiV,QAChBy8D,EAAc1xE,EAAMupC,MAAMx0B,iBAC1B7Z,EAASpB,UAAUinC,EAAKllC,SACxBoZ,EAAQkgC,WAAW,IAAIu1B,EAA4B7xC,qBAAqB64C,EAAa3wC,EAAKtmB,GAAIsmB,EAAKllC,QACnGmE,EAAM4rE,qBAAqB7qC,EAAKtmB,GAAIsmB,EAAKyrC,WAEzCtxE,EAASpB,UAAUinC,EAAKjlC,OACxBmZ,EAAQkgC,WAAW,IAAIu1B,EAA4B9xC,mBAAmB84C,EAAa3wC,EAAKtmB,GAAIsmB,EAAKjlC,MACjGkE,EAAM6rE,mBAAmB9qC,EAAKtmB,GAAIsmB,EAAK8rC,SAEvC3xE,EAASpB,UAAUinC,EAAKvX,WACxBvU,EAAQkgC,WAAW,IAAIu1B,EAA4B5xC,wBAAwB44C,EAAa3wC,EAAKtmB,GAAIsmB,EAAKvX,gBAGlH0uB,EAAqBvlD,UAAUg/E,yBAA2B,SAAUj+B,EAAUzH,EAAO2lC,GACjF,IAAIl0D,EAAO1oB,KAAKklB,UAAU4a,SAAS4e,GACnC,GAAKh2B,GAAiC,IAAzBA,EAAKjT,SAASrV,OAG3B,IADA,IAAIqV,EAAWiT,EAAKjT,SACXzZ,EAAI,EAAGA,EAAIyZ,EAASrV,OAAQpE,IAAK,CACtC,IAAIwgF,EAAY/mE,EAASzZ,GAAGwpB,KACxB4xB,EAAW,IAAInvC,KAAKu0E,EAAU31E,MAAML,UAAYywC,GAChDI,EAAS,IAAIpvC,KAAKu0E,EAAU11E,IAAIN,UAAYywC,GAChD2lC,EAAa35E,KAAK,CAAEwiB,GAAI+2D,EAAUn1D,WAAYxgB,MAAO21E,EAAU31E,MAAOC,IAAK01E,EAAU11E,MACjFswC,EAAWolC,EAAU11E,KACrB9G,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B7xC,qBAAqB7jC,KAAKu0C,MAAMx0B,iBAAkBy8D,EAAUn1D,WAAY+vB,IAChIp3C,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B9xC,mBAAmB5jC,KAAKu0C,MAAMx0B,iBAAkBy8D,EAAUn1D,WAAYgwB,MAG9Hr3C,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B9xC,mBAAmB5jC,KAAKu0C,MAAMx0B,iBAAkBy8D,EAAUn1D,WAAYgwB,IAC9Hr3C,KAAKigB,QAAQkgC,WAAW,IAAIu1B,EAA4B7xC,qBAAqB7jC,KAAKu0C,MAAMx0B,iBAAkBy8D,EAAUn1D,WAAY+vB,KAEpIp3C,KAAK28E,yBAAyBH,EAAUn1D,WAAY4vB,EAAO2lC,KAGnE15B,EAAqBvlD,UAAUm4E,wBAA0B,SAAU+G,GAC3D78E,KAAK61E,kBACL71E,KAAKy8E,0BAA0BI,GAC/B78E,KAAKu0C,MAAMkgB,gCAGnBvR,EAAqBvlD,UAAUs6E,4BAA8B,SAAUj2C,EAAQiV,GAC3E,IAAIjsC,EAAQhL,KACZ,GAAIA,KAAK61E,iBAA6B,IAAV5+B,EAAa,CACrCj3C,KAAKy8E,0BAA0Bz6C,GAC/B,IAAI46C,EAAe,GACnB58E,KAAK28E,yBAAyB36C,EAAQiV,EAAO2lC,GACzC58E,KAAKu0C,MAAMxzB,SAASwyB,WAAWY,sBAC/ByoC,EAAajnE,SAAQ,SAAU3Z,GAC3BgP,EAAM4rE,qBAAqB56E,EAAEypB,GAAIzpB,EAAE6K,OAAO,GAC1CmE,EAAM6rE,mBAAmB76E,EAAEypB,GAAIzpB,EAAE8K,KAAK,MAE9C9G,KAAKu0C,MAAMkgB,gCAGnBh4D,OAAOC,eAAewmD,EAAqBvlD,UAAW,kBAAmB,CACrEf,IAAK,WACD,OAAOoD,KAAKklB,UAAU0O,gBAE1Bj3B,YAAY,EACZqjB,cAAc,IAEXkjC,EA9QiB,GAgR5BpnD,EAAQonD,qBAAuBA,GAKxB,SAASnnD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtDlB,EAAQsoD,0BAAuB,EAC/B,IAAIx3C,EAAYhR,EAAoB,GAChCkhF,EAASlhF,EAAoB,KAC7B6hB,EAAQ7hB,EAAoB,GAC5BwoD,EAAwB,WACxB,SAASA,EAAqB7P,GAC1Bv0C,KAAK+8E,qBAAsB,EAC3B/8E,KAAK+5E,mBAAqB,GAC1B/5E,KAAKu0C,MAAQA,EA+GjB,OA7GA93C,OAAOC,eAAe0nD,EAAqBzmD,UAAW,qBAAsB,CACxEf,IAAK,WAAc,OAAOoD,KAAK+8E,qBAC/BpgF,YAAY,EACZqjB,cAAc,IAElBokC,EAAqBzmD,UAAUyU,OAAS,WAMpC,OALApS,KAAK+8E,qBAAuB/8E,KAAK+8E,oBAC7B/8E,KAAK+8E,oBACL/8E,KAAKg9E,oBAELh9E,KAAKi9E,iBACF,GAEX74B,EAAqBzmD,UAAUq/E,kBAAoB,WAC/Ch9E,KAAKk9E,wBACLl9E,KAAKi1D,iCAET7Q,EAAqBzmD,UAAUu/E,sBAAwB,WACnD,IAAI15B,EAAcxjD,KAAK60D,iBACvBioB,EAAOK,UAAUC,4BAA4B55B,EAAa,mBAAoB,OAC9Es5B,EAAOK,UAAUC,4BAA4B55B,EAAa,oBAAqB,OAC/Es5B,EAAOK,UAAUC,4BAA4B55B,EAAa,qBAAsB,OAChFs5B,EAAOK,UAAUC,4BAA4B55B,EAAa,sBAAuB,OACjFxjD,KAAK+5E,mBAAmBxqE,UAAYkO,EAAM3Q,SAASkC,uBACnDhP,KAAK+5E,mBAAmBhqE,WAAa0N,EAAM3Q,SAASgD,wBACpDgtE,EAAOK,UAAUC,4BAA4B55B,EAAa,mBAAoB,SAC9Es5B,EAAOK,UAAUC,4BAA4B55B,EAAa,WAAY,SACtEs5B,EAAOK,UAAUC,4BAA4B55B,EAAa,MAAO,OACjEs5B,EAAOK,UAAUC,4BAA4B55B,EAAa,OAAQ,OAClEs5B,EAAOK,UAAUC,4BAA4B55B,EAAa,UAAW,QACrEs5B,EAAOK,UAAUC,4BAA4B/tE,SAASQ,gBAAiB,WAAY,UACnFitE,EAAOK,UAAUC,4BAA4B/tE,SAASQ,gBAAiB,WAAY,UACnF7P,KAAK+5E,mBAAmBsD,WAAahuE,SAASlN,KAAKiL,MAAMkwE,OACzDjuE,SAASlN,KAAKiL,MAAMkwE,OAAS,IAC7Bt9E,KAAK+5E,mBAAmBnsE,MAAQ41C,EAAYp2C,MAAMQ,MAClD5N,KAAK+5E,mBAAmBlsE,OAAS21C,EAAYp2C,MAAMS,QAAU21C,EAAY3H,aACrElsC,OAAO4tE,OAAS5tE,OAAOlC,KACvBzN,KAAKw9E,kBAAkBnuE,SAASlN,OAExCiiD,EAAqBzmD,UAAUs/E,cAAgB,WAC3Cj9E,KAAKy9E,iBAAiBpuE,UACtB,IAAIm0C,EAAcxjD,KAAK60D,iBACvBioB,EAAOK,UAAUO,6BAA6Bl6B,EAAa,QAC3Ds5B,EAAOK,UAAUO,6BAA6Bl6B,EAAa,OAC3Ds5B,EAAOK,UAAUO,6BAA6Bl6B,EAAa,oBAC3Ds5B,EAAOK,UAAUO,6BAA6BruE,SAASQ,gBAAiB,YACxEitE,EAAOK,UAAUO,6BAA6BruE,SAASQ,gBAAiB,YACxEitE,EAAOK,UAAUO,6BAA6Bl6B,EAAa,WAC3Dn0C,SAASlN,KAAKiL,MAAMkwE,OAASt9E,KAAK+5E,mBAAmBsD,WACrDP,EAAOK,UAAUO,6BAA6Bl6B,EAAa,YAC3Ds5B,EAAOK,UAAUO,6BAA6Bl6B,EAAa,oBAC3Ds5B,EAAOK,UAAUO,6BAA6Bl6B,EAAa,qBAC3Ds5B,EAAOK,UAAUO,6BAA6Bl6B,EAAa,sBAC3Ds5B,EAAOK,UAAUO,6BAA6Bl6B,EAAa,uBAC3DxjD,KAAKkwD,UAAUlwD,KAAK+5E,mBAAmBlsE,QACvC7N,KAAKiwD,SAASjwD,KAAK+5E,mBAAmBnsE,OACtCyB,SAASQ,gBAAgBN,UAAYvP,KAAK+5E,mBAAmBxqE,UAC7DF,SAASQ,gBAAgBE,WAAa/P,KAAK+5E,mBAAmBhqE,WAC9D/P,KAAK+0D,iBAET3Q,EAAqBzmD,UAAUs3D,8BAAgC,WAC3D,IAAI0oB,EAAwD,GAAxCtuE,SAASQ,gBAAgB4G,YAAmBpH,SAASlN,KAAKsU,YAAcpH,SAASQ,gBAAgB4G,YACjHmnE,EAA0D,GAAzCvuE,SAASQ,gBAAgBgsC,aAAoBxsC,SAASlN,KAAK05C,aAAexsC,SAASQ,gBAAgBgsC,aACxH77C,KAAKiwD,SAAS0tB,GACd39E,KAAKkwD,UAAU0tB,GACf59E,KAAK+0D,iBAET3Q,EAAqBzmD,UAAU6/E,kBAAoB,SAAUxwE,GACrDA,EAAQ6wE,kBACR7wE,EAAQ6wE,oBACH7wE,EAAQ8wE,qBACb9wE,EAAQ8wE,uBACH9wE,EAAQ+wE,wBACb/wE,EAAQ+wE,0BACH/wE,EAAQgxE,qBACbhxE,EAAQgxE,uBAEhB55B,EAAqBzmD,UAAU8/E,iBAAmB,SAAUpuE,GACpDzC,EAAUsC,QAAQiB,UAAYnQ,KAAKi+E,qBAAqB5uE,KAExDA,EAAS6uE,qBACT7uE,EAAS6uE,uBACJ7uE,EAAS8uE,oBACd9uE,EAAS8uE,sBACJ9uE,EAAS+uE,iBACd/uE,EAAS+uE,mBACJ/uE,EAASgvE,gBACdhvE,EAASgvE,mBAEjBj6B,EAAqBzmD,UAAUsgF,qBAAuB,SAAU5uE,GAC5D,OAAOA,EAASivE,mBAAqBjvE,EAASkvE,yBAA2BlvE,EAASmvE,sBAAwBnvE,EAASovE,qBAEvHr6B,EAAqBzmD,UAAUsyD,SAAW,SAAUriD,GAC9B5N,KAAK60D,iBACXznD,MAAMQ,MAAQ5N,KAAKiF,SAAS2I,GAASA,EAAQ,KAAOA,GAEpEw2C,EAAqBzmD,UAAUuyD,UAAY,SAAUriD,GAC/B7N,KAAK60D,iBACXznD,MAAMS,OAAS7N,KAAKiF,SAAS4I,GAAUA,EAAS,KAAOA,GAEvEu2C,EAAqBzmD,UAAUsH,SAAW,SAAUI,GAChD,OAAQ+E,MAAMqI,WAAWpN,KAASq5E,SAASr5E,IAE/C++C,EAAqBzmD,UAAUk3D,eAAiB,WAC5C,OAAO70D,KAAKu0C,MAAMqgB,8BAEtBxQ,EAAqBzmD,UAAUo3D,cAAgB,WAC3C/0D,KAAKu0C,MAAMugB,sBAER1Q,EAnHiB,GAqH5BtoD,EAAQsoD,qBAAuBA,GAKxB,SAASroD,EAAQD,EAASF,GAEjC,aAEAa,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAI4P,EAAYhR,EAAoB,GAChCuhF,EAAa,WACb,SAASA,KAwET,OAtEAA,EAAUwB,oBAAsB,SAAUz5E,EAAK05E,EAAU5hF,GACjDkI,EAAI2M,eACAjF,EAAUsC,QAAQC,IAAMvC,EAAUsC,QAAQyF,cAAgB,IAAiC,QAA3BiqE,EAASjlE,eACzEzU,EAAI2M,aAAa+sE,EAAU,IAC/B15E,EAAI2M,aAAa+sE,EAAU5hF,KAGnCmgF,EAAU0B,kBAAoB,SAAU35E,EAAK05E,EAAU5hF,GAC/CkI,EAAIsL,aACJtL,EAAIsL,YAAYouE,EAAU5hF,EAAO,KAEzCmgF,EAAU2B,oBAAsB,SAAU55E,EAAK05E,GAC3C,OAAO15E,EAAIwM,aAAaktE,IAE5BzB,EAAU4B,kBAAoB,SAAU75E,EAAK05E,GACzC,GAAI15E,EAAIy6B,iBAAkB,CACtB,GAAI/yB,EAAUsC,QAAQiB,QAClB,IACI,OAAOjL,EAAIy6B,iBAAiBi/C,GAEhC,MAAOt+E,GACH,OAAO4E,EAAI05E,GAGnB,OAAO15E,EAAIy6B,iBAAiBi/C,GAEhC,OAAO,MAEXzB,EAAU6B,uBAAyB,SAAU95E,EAAK05E,GAC1C15E,EAAI+5E,iBACJ/5E,EAAI+5E,gBAAgBL,IAE5BzB,EAAU+B,qBAAuB,SAAUh6E,EAAK05E,GACxC15E,EAAIi6E,gBACJj6E,EAAIi6E,eAAeP,IAE3BzB,EAAUC,4BAA8B,SAAUl4E,EAAK05E,EAAUr/C,GAC7D49C,EAAUiC,4BAA4Bl6E,EAAK05E,GAC3CzB,EAAU0B,kBAAkB35E,EAAIkI,MAAOwxE,EAAUr/C,IAErD49C,EAAUO,6BAA+B,SAAUx4E,EAAK05E,GACpD,IAAIS,EAAgB,QAAUT,EAC1BxxE,EAAQlI,EAAIkI,MAChB,GAAI+vE,EAAUmC,2BAA2Bp6E,EAAKm6E,GAAgB,CAC1D,IAAIlO,EAAWgM,EAAU2B,oBAAoB55E,EAAKm6E,GAMlD,OALIlO,IAAagM,EAAUoC,aAA4B,OAAbpO,EACtCgM,EAAU+B,qBAAqB9xE,EAAOwxE,GAEtCzB,EAAU0B,kBAAkBzxE,EAAOwxE,EAAUzN,GACjDgM,EAAU6B,uBAAuB95E,EAAKm6E,IAC/B,EAEX,OAAO,GAEXlC,EAAUiC,4BAA8B,SAAUl6E,EAAK05E,GACnD,IAAIS,EAAgB,QAAUT,EAC1BxxE,EAAQlI,EAAIkI,MAChB,IAAK+vE,EAAUmC,2BAA2Bp6E,EAAKm6E,GAAgB,CAC3D,IAAIlO,EAAWgM,EAAU4B,kBAAkB3xE,EAAOwxE,GAClDzB,EAAUwB,oBAAoBz5E,EAAKm6E,EAAelC,EAAUqC,kBAAkBrO,GAAYA,EAAWgM,EAAUoC,eAGvHpC,EAAUmC,2BAA6B,SAAUp6E,EAAK05E,GAClD,IAAI5hF,EAAQmgF,EAAU2B,oBAAoB55E,EAAK05E,GAC/C,OAAOzB,EAAUqC,kBAAkBxiF,IAEvCmgF,EAAUqC,kBAAoB,SAAUC,GACpC,OAAqB,OAAdA,GAAoC,KAAdA,GAEjCtC,EAAUoC,YAAc,eACjBpC,EAzEM,GA2EjBrhF,EAAQqhF,UAAYA,MA1lalBphF,EAAOD,QAAUL","file":"static/js/main~c3c8803a.28205eea.chunk.js","sourcesContent":["/*!\n * DevExpress Gantt (dx-gantt)\n * Version: 2.0.40\n * Build date: Wed Jul 07 2021\n * \n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n * Read about DevExpress licensing here: https://www.devexpress.com/Support/EULAs\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Gantt\"] = factory();\n\telse\n\t\troot[\"DevExpress\"] = root[\"DevExpress\"] || {}, root[\"DevExpress\"][\"Gantt\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 53);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__rest\", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__param\", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__metadata\", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__awaiter\", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__generator\", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__createBinding\", function() { return __createBinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__exportStar\", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__values\", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__read\", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spread\", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArray\", function() { return __spreadArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__await\", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importStar\", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importDefault\", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function() { return __classPrivateFieldSet; });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nfunction __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nfunction __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar string_1 = __webpack_require__(27);\r\nfunction isDefined(value) {\r\n return value !== undefined && value !== null;\r\n}\r\nexports.isDefined = isDefined;\r\nfunction boolToInt(value) {\r\n return value ? 1 : 0;\r\n}\r\nexports.boolToInt = boolToInt;\r\nfunction boolToString(value) {\r\n return value ? '1' : '0';\r\n}\r\nexports.boolToString = boolToString;\r\nfunction isNumber(obj) {\r\n return typeof obj === 'number';\r\n}\r\nexports.isNumber = isNumber;\r\nfunction isString(obj) {\r\n return typeof obj === 'string';\r\n}\r\nexports.isString = isString;\r\nfunction isNonNullString(str) {\r\n return !!str;\r\n}\r\nexports.isNonNullString = isNonNullString;\r\nfunction isEven(num) {\r\n return (num % 2) !== 0;\r\n}\r\nexports.isEven = isEven;\r\nfunction isOdd(num) {\r\n return (num % 2) === 0;\r\n}\r\nexports.isOdd = isOdd;\r\nfunction numberToStringBin(num, minLength) {\r\n if (minLength === void 0) { minLength = 0; }\r\n return string_1.StringUtils.padLeft(num.toString(2), minLength, '0');\r\n}\r\nexports.numberToStringBin = numberToStringBin;\r\nfunction numberToStringHex(num, minLength) {\r\n if (minLength === void 0) { minLength = 0; }\r\n return string_1.StringUtils.padLeft(num.toString(16), minLength, '0');\r\n}\r\nexports.numberToStringHex = numberToStringHex;\r\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DateTimeUtils = void 0;\r\nvar Time_1 = __webpack_require__(37);\r\nvar TimeRange_1 = __webpack_require__(38);\r\nvar common_1 = __webpack_require__(1);\r\nvar DateRange_1 = __webpack_require__(9);\r\nvar DayOfWeekMonthlyOccurrence_1 = __webpack_require__(39);\r\nvar DateTimeUtils = (function () {\r\n function DateTimeUtils() {\r\n }\r\n DateTimeUtils.compareDates = function (date1, date2) {\r\n if (!date1 || !date2)\r\n return -1;\r\n return date2.getTime() - date1.getTime();\r\n };\r\n DateTimeUtils.areDatesEqual = function (date1, date2) {\r\n return this.compareDates(date1, date2) == 0;\r\n };\r\n DateTimeUtils.getMaxDate = function (date1, date2) {\r\n if (!date1 && !date2)\r\n return null;\r\n if (!date1)\r\n return date2;\r\n if (!date2)\r\n return date1;\r\n var diff = this.compareDates(date1, date2);\r\n return diff > 0 ? date2 : date1;\r\n };\r\n DateTimeUtils.getMinDate = function (date1, date2) {\r\n if (!date1 && !date2)\r\n return null;\r\n if (!date1)\r\n return date2;\r\n if (!date2)\r\n return date1;\r\n var diff = this.compareDates(date1, date2);\r\n return diff > 0 ? date1 : date2;\r\n };\r\n DateTimeUtils.getDaysBetween = function (start, end) {\r\n var diff = Math.abs(end.getTime() - start.getTime());\r\n return Math.ceil(diff / this.msInDay);\r\n };\r\n DateTimeUtils.getWeeksBetween = function (start, end) {\r\n var daysBetween = this.getDaysBetween(start, end);\r\n var numWeeks = Math.floor(daysBetween / 7);\r\n if (start.getDay() > end.getDay())\r\n numWeeks++;\r\n return numWeeks;\r\n };\r\n DateTimeUtils.getMonthsDifference = function (start, end) {\r\n var dateDiff = this.compareDates(start, end);\r\n var from = dateDiff >= 0 ? start : end;\r\n var to = dateDiff >= 0 ? end : start;\r\n var yearsDiff = to.getFullYear() - from.getFullYear();\r\n var monthDiff = yearsDiff * 12 + (to.getMonth() - from.getMonth());\r\n return monthDiff;\r\n };\r\n DateTimeUtils.getYearsDifference = function (start, end) {\r\n return Math.abs(end.getFullYear() - start.getFullYear());\r\n };\r\n DateTimeUtils.getDayNumber = function (date) {\r\n return Math.ceil(date.getTime() / this.msInDay);\r\n };\r\n DateTimeUtils.getDateByDayNumber = function (num) {\r\n var date = new Date(num * this.msInDay);\r\n date.setHours(0);\r\n date.setMinutes(0);\r\n date.setSeconds(0);\r\n return date;\r\n };\r\n DateTimeUtils.addDays = function (date, days) {\r\n return new Date(date.getTime() + days * this.msInDay);\r\n };\r\n DateTimeUtils.checkDayOfMonth = function (day, date) {\r\n return day == date.getDate();\r\n };\r\n DateTimeUtils.checkDayOfWeek = function (day, date) {\r\n return day == date.getDay();\r\n };\r\n DateTimeUtils.checkMonth = function (month, date) {\r\n return month == date.getMonth();\r\n };\r\n DateTimeUtils.checkYear = function (year, date) {\r\n return year == date.getFullYear();\r\n };\r\n DateTimeUtils.checkDayOfWeekOccurrenceInMonth = function (date, dayOfWeek, occurrence) {\r\n var dayOfWeekInMonthDates = this.getSpecificDayOfWeekInMonthDates(dayOfWeek, date.getFullYear(), date.getMonth());\r\n if (occurrence == DayOfWeekMonthlyOccurrence_1.DayOfWeekMonthlyOccurrence.Last)\r\n return this.areDatesEqual(date, dayOfWeekInMonthDates[dayOfWeekInMonthDates.length - 1]);\r\n return this.areDatesEqual(date, dayOfWeekInMonthDates[occurrence]);\r\n };\r\n DateTimeUtils.getFirstDayOfWeekInMonth = function (year, month) {\r\n var date = new Date(year, month, 1);\r\n return date.getDay();\r\n };\r\n DateTimeUtils.getSpecificDayOfWeekInMonthDates = function (dayOfWeek, year, month) {\r\n var firstDayOfWeekInMonth = this.getFirstDayOfWeekInMonth(year, month);\r\n var diffDays = dayOfWeek >= firstDayOfWeekInMonth ? dayOfWeek - firstDayOfWeekInMonth : dayOfWeek + 7 - firstDayOfWeekInMonth;\r\n var res = new Array();\r\n var specificDayOfWeekDate = new Date(year, month, diffDays + 1);\r\n while (specificDayOfWeekDate.getMonth() == month) {\r\n res.push(specificDayOfWeekDate);\r\n specificDayOfWeekDate = this.addDays(specificDayOfWeekDate, 7);\r\n }\r\n return res;\r\n };\r\n DateTimeUtils.getSpecificDayOfWeekInMonthDate = function (dayOfWeek, year, month, occurrence) {\r\n var dates = this.getSpecificDayOfWeekInMonthDates(dayOfWeek, year, month);\r\n if (occurrence == DayOfWeekMonthlyOccurrence_1.DayOfWeekMonthlyOccurrence.Last)\r\n return dates[dates.length - 1];\r\n return dates[occurrence];\r\n };\r\n DateTimeUtils.checkValidDayInMonth = function (year, month, day) {\r\n if (day < 1 || day > 31 || (new Date(year, month, day)).getMonth() != month)\r\n return false;\r\n return true;\r\n };\r\n DateTimeUtils.getNextMonth = function (month, inc) {\r\n if (inc === void 0) { inc = 1; }\r\n return (month + inc) % 12;\r\n };\r\n DateTimeUtils.convertToDate = function (src) {\r\n if (src instanceof Date)\r\n return new Date(src);\r\n var ms = Date.parse(src);\r\n if (!isNaN(ms))\r\n return new Date(ms);\r\n return null;\r\n };\r\n DateTimeUtils.convertTimeRangeToDateRange = function (timeRange, dayNumber) {\r\n var date = this.getDateByDayNumber(dayNumber);\r\n var year = date.getFullYear();\r\n var month = date.getMonth();\r\n var day = date.getDate();\r\n var startT = timeRange.start;\r\n var start = new Date(year, month, day, startT.hour, startT.min, startT.sec, startT.msec);\r\n var endT = timeRange.end;\r\n var end = new Date(year, month, day, endT.hour, endT.min, endT.sec, endT.msec);\r\n return new DateRange_1.DateRange(start, end);\r\n };\r\n DateTimeUtils.convertToTimeRanges = function (src) {\r\n var _this = this;\r\n if (src instanceof Array)\r\n return src.map(function (x) { return _this.convertToTimeRange(x); });\r\n return this.parseTimeRanges(src);\r\n };\r\n DateTimeUtils.convertToTimeRange = function (src) {\r\n if (!src)\r\n return null;\r\n if (src instanceof TimeRange_1.TimeRange)\r\n return src;\r\n if (common_1.isDefined(src.start) && common_1.isDefined(src.end))\r\n return new TimeRange_1.TimeRange(this.convertToTime(src.start), this.convertToTime(src.end));\r\n return this.parseTimeRange(src);\r\n };\r\n DateTimeUtils.convertToTime = function (src) {\r\n if (!src)\r\n return null;\r\n if (src instanceof Time_1.Time)\r\n return src;\r\n if (src instanceof Date)\r\n return this.getTimeGromJsDate(src);\r\n return this.parseTime(src);\r\n };\r\n DateTimeUtils.parseTimeRanges = function (src) {\r\n var _this = this;\r\n if (!src)\r\n return null;\r\n var parts = src.split(/;|,/);\r\n return parts.map(function (p) { return _this.parseTimeRange(p); }).filter(function (r) { return !!r; });\r\n };\r\n DateTimeUtils.parseTimeRange = function (src) {\r\n if (!src)\r\n return null;\r\n var parts = src.split(\"-\");\r\n var start = parts[0];\r\n var end = parts[1];\r\n if (common_1.isDefined(start) && common_1.isDefined(end))\r\n return new TimeRange_1.TimeRange(this.parseTime(start), this.parseTime(end));\r\n return null;\r\n };\r\n DateTimeUtils.parseTime = function (src) {\r\n if (!src)\r\n return null;\r\n var parts = src.split(\":\");\r\n var h = parseInt(parts[0]) || 0;\r\n var m = parseInt(parts[1]) || 0;\r\n var s = parseInt(parts[2]) || 0;\r\n var ms = parseInt(parts[3]) || 0;\r\n return new Time_1.Time(h, m, s, ms);\r\n };\r\n DateTimeUtils.getTimeGromJsDate = function (date) {\r\n if (!date)\r\n return null;\r\n var h = date.getHours();\r\n var m = date.getMinutes();\r\n var s = date.getSeconds();\r\n var ms = date.getMilliseconds();\r\n return new Time_1.Time(h, m, s, ms);\r\n };\r\n DateTimeUtils.caclTimeDifference = function (time1, time2) {\r\n return time2.getTimeInMilleconds() - time1.getTimeInMilleconds();\r\n };\r\n DateTimeUtils.areTimesEqual = function (time1, time2) {\r\n return this.caclTimeDifference(time1, time2) == 0;\r\n };\r\n DateTimeUtils.getMaxTime = function (time1, time2) {\r\n if (!time1 && !time2)\r\n return null;\r\n if (!time1)\r\n return time2;\r\n if (!time2)\r\n return time1;\r\n var diff = this.caclTimeDifference(time1, time2);\r\n return diff > 0 ? time2 : time1;\r\n };\r\n DateTimeUtils.getMinTime = function (time1, time2) {\r\n if (!time1 && !time2)\r\n return null;\r\n if (!time1)\r\n return time2;\r\n if (!time2)\r\n return time1;\r\n var diff = this.caclTimeDifference(time1, time2);\r\n return diff > 0 ? time1 : time2;\r\n };\r\n DateTimeUtils.getLastTimeOfDay = function () {\r\n return new Time_1.Time(23, 59, 59, 999);\r\n };\r\n DateTimeUtils.msInDay = 24 * 3600 * 1000;\r\n return DateTimeUtils;\r\n}());\r\nexports.DateTimeUtils = DateTimeUtils;\r\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(5);\r\nvar common_1 = __webpack_require__(1);\r\nvar math_1 = __webpack_require__(34);\r\nvar string_1 = __webpack_require__(27);\r\nvar DomUtils = (function () {\r\n function DomUtils() {\r\n }\r\n DomUtils.clearInnerHtml = function (element) {\r\n while (element.firstChild)\r\n element.removeChild(element.firstChild);\r\n };\r\n DomUtils.setStylePosition = function (style, point) {\r\n style.left = math_1.MathUtils.round(point.x, 3) + 'px';\r\n style.top = math_1.MathUtils.round(point.y, 3) + 'px';\r\n };\r\n DomUtils.setStyleSize = function (style, size) {\r\n style.width = math_1.MathUtils.round(size.width, 3) + 'px';\r\n style.height = math_1.MathUtils.round(size.height, 3) + 'px';\r\n };\r\n DomUtils.setStyleSizeAndPosition = function (style, rectangle) {\r\n DomUtils.setStylePosition(style, rectangle);\r\n DomUtils.setStyleSize(style, rectangle);\r\n };\r\n DomUtils.hideNode = function (node) {\r\n if (node) {\r\n var parentNode = node.parentNode;\r\n if (parentNode)\r\n parentNode.removeChild(node);\r\n }\r\n };\r\n DomUtils.isHTMLElementNode = function (node) {\r\n return node.nodeType === Node.ELEMENT_NODE;\r\n };\r\n DomUtils.isTextNode = function (node) {\r\n return node.nodeType === Node.TEXT_NODE;\r\n };\r\n DomUtils.isElementNode = function (node) {\r\n return node.nodeType === Node.ELEMENT_NODE;\r\n };\r\n DomUtils.isHTMLTableRowElement = function (element) {\r\n return element.tagName === 'TR';\r\n };\r\n DomUtils.isItParent = function (parentElement, element) {\r\n if (!parentElement || !element)\r\n return false;\r\n while (element) {\r\n if (element === parentElement)\r\n return true;\r\n if (element.tagName === 'BODY')\r\n return false;\r\n element = element.parentNode;\r\n }\r\n return false;\r\n };\r\n DomUtils.getParentByTagName = function (element, tagName) {\r\n tagName = tagName.toUpperCase();\r\n while (element) {\r\n if (element.tagName === 'BODY')\r\n return null;\r\n if (element.tagName === tagName)\r\n return element;\r\n element = element.parentNode;\r\n }\r\n return null;\r\n };\r\n DomUtils.getDocumentScrollTop = function () {\r\n var isScrollBodyIE = browser_1.Browser.IE && DomUtils.getCurrentStyle(document.body).overflow === 'hidden' && document.body.scrollTop > 0;\r\n if (browser_1.Browser.WebKitFamily || browser_1.Browser.Edge || isScrollBodyIE) {\r\n if (browser_1.Browser.MacOSMobilePlatform)\r\n return window.pageYOffset;\r\n if (browser_1.Browser.WebKitFamily)\r\n return document.documentElement.scrollTop || document.body.scrollTop;\r\n return document.body.scrollTop;\r\n }\r\n else\r\n return document.documentElement.scrollTop;\r\n };\r\n DomUtils.getDocumentScrollLeft = function () {\r\n var isScrollBodyIE = browser_1.Browser.IE && DomUtils.getCurrentStyle(document.body).overflow === 'hidden' && document.body.scrollLeft > 0;\r\n if (browser_1.Browser.Edge || isScrollBodyIE)\r\n return document.body ? document.body.scrollLeft : document.documentElement.scrollLeft;\r\n if (browser_1.Browser.WebKitFamily)\r\n return document.documentElement.scrollLeft || document.body.scrollLeft;\r\n return document.documentElement.scrollLeft;\r\n };\r\n DomUtils.getCurrentStyle = function (element) {\r\n if (element.currentStyle)\r\n return element.currentStyle;\r\n else if (document.defaultView && document.defaultView.getComputedStyle) {\r\n var result = document.defaultView.getComputedStyle(element, null);\r\n if (!result && browser_1.Browser.Firefox && window.frameElement) {\r\n var changes = [];\r\n var curElement = window.frameElement;\r\n while (!(result = document.defaultView.getComputedStyle(element, null))) {\r\n changes.push([curElement, curElement.style.display]);\r\n curElement.style.setProperty('display', 'block', 'important');\r\n curElement = curElement.tagName === 'BODY' ? curElement.ownerDocument.defaultView.frameElement : curElement.parentNode;\r\n }\r\n result = cloneObject(result);\r\n for (var ch = void 0, i = 0; ch = changes[i]; i++)\r\n ch[0].style.display = ch[1];\r\n document.body.offsetWidth;\r\n }\r\n return result;\r\n }\r\n return window.getComputedStyle(element, null);\r\n };\r\n DomUtils.setFocus = function (element) {\r\n function focusCore() {\r\n try {\r\n element.focus();\r\n if (browser_1.Browser.IE && document.activeElement !== element)\r\n element.focus();\r\n }\r\n catch (e) {\r\n }\r\n }\r\n if (browser_1.Browser.MacOSMobilePlatform)\r\n focusCore();\r\n else {\r\n setTimeout(function () {\r\n focusCore();\r\n }, 100);\r\n }\r\n };\r\n DomUtils.hasClassName = function (element, className) {\r\n try {\r\n var classNames = className.split(' ');\r\n var classList = element.classList;\r\n if (classList) {\r\n for (var i = classNames.length - 1; i >= 0; i--) {\r\n if (!classList.contains(classNames[i]))\r\n return false;\r\n }\r\n }\r\n else {\r\n var elementClassName = element.getAttribute && element.getAttribute('class');\r\n if (!elementClassName)\r\n return false;\r\n var elementClasses = elementClassName.split(' ');\r\n for (var i = classNames.length - 1; i >= 0; i--) {\r\n if (elementClasses.indexOf(classNames[i]) < 0)\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n };\r\n DomUtils.addClassName = function (element, className) {\r\n if (!DomUtils.hasClassName(element, className)) {\r\n var elementClassName = element.getAttribute && element.getAttribute('class');\r\n element.setAttribute('class', elementClassName === '' ? className : elementClassName + \" \" + className);\r\n }\r\n };\r\n DomUtils.removeClassName = function (element, className) {\r\n var elementClassName = element.getAttribute && element.getAttribute('class');\r\n var updClassName = \" \" + elementClassName + \" \";\r\n var newClassName = updClassName.replace(\" \" + className + \" \", ' ');\r\n if (updClassName.length !== newClassName.length)\r\n element.setAttribute('class', string_1.StringUtils.trim(newClassName));\r\n };\r\n DomUtils.toggleClassName = function (element, className, toggle) {\r\n if (toggle === undefined) {\r\n if (DomUtils.hasClassName(element, className))\r\n DomUtils.removeClassName(element, className);\r\n else\r\n DomUtils.addClassName(element, className);\r\n }\r\n else {\r\n if (toggle)\r\n DomUtils.addClassName(element, className);\r\n else\r\n DomUtils.removeClassName(element, className);\r\n }\r\n };\r\n DomUtils.pxToInt = function (px) {\r\n return pxToNumber(px, parseInt);\r\n };\r\n DomUtils.pxToFloat = function (px) {\r\n return pxToNumber(px, parseFloat);\r\n };\r\n DomUtils.getAbsolutePositionY = function (element) {\r\n function getAbsolutePositionY_IE(element) {\r\n return browser_1.Browser.IE && element.parentNode === null ?\r\n 0 :\r\n element.getBoundingClientRect().top + DomUtils.getDocumentScrollTop();\r\n }\r\n function getAbsolutePositionY_FF3(element) {\r\n return Math.round(element.getBoundingClientRect().top + DomUtils.getDocumentScrollTop());\r\n }\r\n function getAbsolutePositionY_Opera(curEl) {\r\n var isFirstCycle = true;\r\n if (curEl && DomUtils.isHTMLTableRowElement(curEl) && curEl.cells.length > 0)\r\n curEl = curEl.cells[0];\r\n var pos = getAbsoluteScrollOffset_OperaFF(curEl, false);\r\n while (curEl != null) {\r\n pos += curEl.offsetTop;\r\n if (!isFirstCycle)\r\n pos -= curEl.scrollTop;\r\n curEl = curEl.offsetParent;\r\n isFirstCycle = false;\r\n }\r\n pos += document.body.scrollTop;\r\n return pos;\r\n }\r\n function getAbsolutePositionY_NS(curEl) {\r\n var pos = getAbsoluteScrollOffset_OperaFF(curEl, false);\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n pos += curEl.offsetTop;\r\n if (!isFirstCycle && curEl.offsetParent != null)\r\n pos -= curEl.scrollTop;\r\n if (!isFirstCycle && browser_1.Browser.Firefox) {\r\n var style = DomUtils.getCurrentStyle(curEl);\r\n if (curEl.tagName === 'DIV' && style.overflow !== 'visible')\r\n pos += DomUtils.pxToInt(style.borderTopWidth);\r\n }\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n }\r\n function getAbsolutePositionY_Other(curEl) {\r\n var pos = 0;\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n pos += curEl.offsetTop;\r\n if (!isFirstCycle && curEl.offsetParent != null)\r\n pos -= curEl.scrollTop;\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n }\r\n if (!element)\r\n return 0;\r\n if (browser_1.Browser.IE)\r\n return getAbsolutePositionY_IE(element);\r\n else if (browser_1.Browser.Firefox && browser_1.Browser.Version >= 3)\r\n return getAbsolutePositionY_FF3(element);\r\n else if (browser_1.Browser.Opera)\r\n return getAbsolutePositionY_Opera(element);\r\n else if (browser_1.Browser.NetscapeFamily && (!browser_1.Browser.Firefox || browser_1.Browser.Version < 3))\r\n return getAbsolutePositionY_NS(element);\r\n else if (browser_1.Browser.WebKitFamily || browser_1.Browser.Edge)\r\n return getAbsolutePositionY_FF3(element);\r\n return getAbsolutePositionY_Other(element);\r\n };\r\n DomUtils.getAbsolutePositionX = function (element) {\r\n function getAbsolutePositionX_IE(element) {\r\n return browser_1.Browser.IE && element.parentNode === null ?\r\n 0 :\r\n element.getBoundingClientRect().left + DomUtils.getDocumentScrollLeft();\r\n }\r\n function getAbsolutePositionX_FF3(element) {\r\n return Math.round(element.getBoundingClientRect().left + DomUtils.getDocumentScrollLeft());\r\n }\r\n function getAbsolutePositionX_Opera(curEl) {\r\n var isFirstCycle = true;\r\n var pos = getAbsoluteScrollOffset_OperaFF(curEl, true);\r\n while (curEl != null) {\r\n pos += curEl.offsetLeft;\r\n if (!isFirstCycle)\r\n pos -= curEl.scrollLeft;\r\n curEl = curEl.offsetParent;\r\n isFirstCycle = false;\r\n }\r\n pos += document.body.scrollLeft;\r\n return pos;\r\n }\r\n function getAbsolutePositionX_NS(curEl) {\r\n var pos = getAbsoluteScrollOffset_OperaFF(curEl, true);\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n pos += curEl.offsetLeft;\r\n if (!isFirstCycle && curEl.offsetParent != null)\r\n pos -= curEl.scrollLeft;\r\n if (!isFirstCycle && browser_1.Browser.Firefox) {\r\n var style = DomUtils.getCurrentStyle(curEl);\r\n if (curEl.tagName === 'DIV' && style.overflow !== 'visible')\r\n pos += DomUtils.pxToInt(style.borderLeftWidth);\r\n }\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n }\r\n function getAbsolutePositionX_Other(curEl) {\r\n var pos = 0;\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n pos += curEl.offsetLeft;\r\n if (!isFirstCycle && curEl.offsetParent != null)\r\n pos -= curEl.scrollLeft;\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n }\r\n if (!element)\r\n return 0;\r\n if (browser_1.Browser.IE)\r\n return getAbsolutePositionX_IE(element);\r\n else if (browser_1.Browser.Firefox && browser_1.Browser.Version >= 3)\r\n return getAbsolutePositionX_FF3(element);\r\n else if (browser_1.Browser.Opera)\r\n return getAbsolutePositionX_Opera(element);\r\n else if (browser_1.Browser.NetscapeFamily && (!browser_1.Browser.Firefox || browser_1.Browser.Version < 3))\r\n return getAbsolutePositionX_NS(element);\r\n else if (browser_1.Browser.WebKitFamily || browser_1.Browser.Edge)\r\n return getAbsolutePositionX_FF3(element);\r\n else\r\n return getAbsolutePositionX_Other(element);\r\n };\r\n DomUtils.isInteractiveControl = function (element) {\r\n return ['A', 'INPUT', 'SELECT', 'OPTION', 'TEXTAREA', 'BUTTON', 'IFRAME'].indexOf(element.tagName) > -1;\r\n };\r\n DomUtils.getClearClientHeight = function (element) {\r\n return element.offsetHeight - (DomUtils.getTopBottomPaddings(element) + DomUtils.getVerticalBordersWidth(element));\r\n };\r\n DomUtils.getTopBottomPaddings = function (element, style) {\r\n var currentStyle = style ? style : DomUtils.getCurrentStyle(element);\r\n return DomUtils.pxToInt(currentStyle.paddingTop) + DomUtils.pxToInt(currentStyle.paddingBottom);\r\n };\r\n DomUtils.getVerticalBordersWidth = function (element, style) {\r\n if (!common_1.isDefined(style))\r\n style = (browser_1.Browser.IE && browser_1.Browser.MajorVersion !== 9 && window.getComputedStyle) ? window.getComputedStyle(element) : DomUtils.getCurrentStyle(element);\r\n var res = 0;\r\n if (style.borderTopStyle !== 'none')\r\n res += DomUtils.pxToFloat(style.borderTopWidth);\r\n if (style.borderBottomStyle !== 'none')\r\n res += DomUtils.pxToFloat(style.borderBottomWidth);\r\n return res;\r\n };\r\n DomUtils.getNodes = function (parent, predicate) {\r\n var collection = parent.all || parent.getElementsByTagName('*');\r\n var result = [];\r\n for (var i = 0; i < collection.length; i++) {\r\n var element = collection[i];\r\n if (predicate(element))\r\n result.push(element);\r\n }\r\n return result;\r\n };\r\n DomUtils.getChildNodes = function (parent, predicate) {\r\n var collection = parent.childNodes;\r\n var result = [];\r\n for (var i = 0; i < collection.length; i++) {\r\n var element = collection[i];\r\n if (predicate(element))\r\n result.push(element);\r\n }\r\n return result;\r\n };\r\n DomUtils.getNodesByClassName = function (parent, className) {\r\n if (parent.querySelectorAll) {\r\n var children = parent.querySelectorAll(\".\" + className);\r\n var result_1 = [];\r\n children.forEach(function (element) { return result_1.push(element); });\r\n return result_1;\r\n }\r\n else\r\n return DomUtils.getNodes(parent, function (elem) { return DomUtils.hasClassName(elem, className); });\r\n };\r\n DomUtils.getChildNodesByClassName = function (parent, className) {\r\n function nodeListToArray(nodeList, filter) {\r\n var result = [];\r\n nodeList.forEach(function (element) {\r\n if (filter(element))\r\n result.push(element);\r\n });\r\n return result;\r\n }\r\n if (parent.querySelectorAll) {\r\n var children = parent.querySelectorAll(\".\" + className);\r\n return nodeListToArray(children, function (element) { return element.parentNode === parent; });\r\n }\r\n else {\r\n return DomUtils.getChildNodes(parent, function (elem) {\r\n if (DomUtils.isElementNode(elem))\r\n return common_1.isNonNullString(elem.className) && DomUtils.hasClassName(elem, elem.className);\r\n else\r\n return false;\r\n });\r\n }\r\n };\r\n DomUtils.getVerticalScrollBarWidth = function () {\r\n if (DomUtils.verticalScrollBarWidth === undefined) {\r\n var container = document.createElement('DIV');\r\n container.style.cssText = 'position: absolute; top: 0px; left: 0px; visibility: hidden; width: 200px; height: 150px; overflow: hidden; box-sizing: content-box';\r\n document.body.appendChild(container);\r\n var child = document.createElement('P');\r\n container.appendChild(child);\r\n child.style.cssText = 'width: 100%; height: 200px;';\r\n var widthWithoutScrollBar = child.offsetWidth;\r\n container.style.overflow = 'scroll';\r\n var widthWithScrollBar = child.offsetWidth;\r\n if (widthWithoutScrollBar === widthWithScrollBar)\r\n widthWithScrollBar = container.clientWidth;\r\n DomUtils.verticalScrollBarWidth = widthWithoutScrollBar - widthWithScrollBar;\r\n document.body.removeChild(container);\r\n }\r\n return DomUtils.verticalScrollBarWidth;\r\n };\r\n DomUtils.getHorizontalBordersWidth = function (element, style) {\r\n if (!common_1.isDefined(style))\r\n style = (browser_1.Browser.IE && window.getComputedStyle) ? window.getComputedStyle(element) : DomUtils.getCurrentStyle(element);\r\n var res = 0;\r\n if (style.borderLeftStyle !== 'none')\r\n res += DomUtils.pxToFloat(style.borderLeftWidth);\r\n if (style.borderRightStyle !== 'none')\r\n res += DomUtils.pxToFloat(style.borderRightWidth);\r\n return res;\r\n };\r\n DomUtils.getFontFamiliesFromCssString = function (cssString) {\r\n return cssString.split(',').map(function (fam) { return string_1.StringUtils.trim(fam.replace(/'|\"/gi, '')); });\r\n };\r\n DomUtils.getInnerText = function (container) {\r\n if (browser_1.Browser.Safari && browser_1.Browser.MajorVersion <= 5) {\r\n if (DomUtils.html2PlainTextFilter === null) {\r\n DomUtils.html2PlainTextFilter = document.createElement('DIV');\r\n DomUtils.html2PlainTextFilter.style.width = '0';\r\n DomUtils.html2PlainTextFilter.style.height = '0';\r\n DomUtils.html2PlainTextFilter.style.overflow = 'visible';\r\n DomUtils.html2PlainTextFilter.style.display = 'none';\r\n document.body.appendChild(DomUtils.html2PlainTextFilter);\r\n }\r\n var filter = DomUtils.html2PlainTextFilter;\r\n filter.innerHTML = container.innerHTML;\r\n filter.style.display = '';\r\n var innerText = filter.innerText;\r\n filter.style.display = 'none';\r\n return innerText;\r\n }\r\n else if (browser_1.Browser.NetscapeFamily || browser_1.Browser.WebKitFamily || (browser_1.Browser.IE && browser_1.Browser.Version >= 9) || browser_1.Browser.Edge)\r\n return container.textContent;\r\n else\r\n return container.innerText;\r\n };\r\n DomUtils.html2PlainTextFilter = null;\r\n DomUtils.verticalScrollBarWidth = undefined;\r\n return DomUtils;\r\n}());\r\nexports.DomUtils = DomUtils;\r\nfunction cloneObject(srcObject) {\r\n if (typeof (srcObject) !== 'object' || !common_1.isDefined(srcObject))\r\n return srcObject;\r\n var newObject = {};\r\n for (var i in srcObject)\r\n newObject[i] = srcObject[i];\r\n return newObject;\r\n}\r\nfunction pxToNumber(px, parseFunction) {\r\n var result = 0;\r\n if (common_1.isDefined(px) && px !== '') {\r\n try {\r\n var indexOfPx = px.indexOf('px');\r\n if (indexOfPx > -1)\r\n result = parseFunction(px.substr(0, indexOfPx));\r\n }\r\n catch (e) { }\r\n }\r\n return result;\r\n}\r\nfunction getAbsoluteScrollOffset_OperaFF(curEl, isX) {\r\n var pos = 0;\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n if (curEl.tagName === 'BODY')\r\n break;\r\n var style = DomUtils.getCurrentStyle(curEl);\r\n if (style.position === 'absolute')\r\n break;\r\n if (!isFirstCycle && curEl.tagName === 'DIV' && (style.position === '' || style.position === 'static'))\r\n pos -= isX ? curEl.scrollLeft : curEl.scrollTop;\r\n curEl = curEl.parentNode;\r\n isFirstCycle = false;\r\n }\r\n return pos;\r\n}\r\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Point = (function () {\r\n function Point(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n Point.zero = function () {\r\n return new Point(0, 0);\r\n };\r\n Point.fromNumber = function (num) {\r\n return new Point(num, num);\r\n };\r\n Point.prototype.isZero = function () {\r\n return this.x === 0 && this.y === 0;\r\n };\r\n Point.prototype.toString = function () {\r\n return JSON.stringify(this);\r\n };\r\n Point.prototype.copyFrom = function (obj) {\r\n this.x = obj.x;\r\n this.y = obj.y;\r\n };\r\n Point.prototype.clone = function () {\r\n return new Point(this.x, this.y);\r\n };\r\n Point.prototype.equals = function (obj) {\r\n return this.x === obj.x && this.y === obj.y;\r\n };\r\n Point.prototype.offset = function (offsetX, offsetY) {\r\n this.x += offsetX;\r\n this.y += offsetY;\r\n return this;\r\n };\r\n Point.prototype.offsetByPoint = function (offset) {\r\n this.x += offset.x;\r\n this.y += offset.y;\r\n return this;\r\n };\r\n Point.prototype.multiply = function (multiplierX, multiplierY) {\r\n this.x *= multiplierX;\r\n this.y *= multiplierY;\r\n return this;\r\n };\r\n Point.prototype.negative = function () {\r\n this.x *= -1;\r\n this.y *= -1;\r\n return this;\r\n };\r\n Point.prototype.applyConverter = function (converter) {\r\n this.x = converter(this.x);\r\n this.y = converter(this.y);\r\n return this;\r\n };\r\n Point.plus = function (a, b) {\r\n return new Point(a.x + b.x, a.y + b.y);\r\n };\r\n Point.minus = function (a, b) {\r\n return new Point(a.x - b.x, a.y - b.y);\r\n };\r\n Point.xComparer = function (a, b) {\r\n return a.x - b.x;\r\n };\r\n Point.yComparer = function (a, b) {\r\n return a.y - b.y;\r\n };\r\n Point.equals = function (a, b) {\r\n return a.x === b.x && a.y === b.y;\r\n };\r\n return Point;\r\n}());\r\nexports.Point = Point;\r\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Browser = (function () {\r\n function Browser() {\r\n }\r\n Browser.IdentUserAgent = function (userAgent, ignoreDocumentMode) {\r\n if (ignoreDocumentMode === void 0) { ignoreDocumentMode = false; }\r\n var browserTypesOrderedList = ['Mozilla', 'IE', 'Firefox', 'Netscape', 'Safari', 'Chrome', 'Opera', 'Opera10', 'Edge'];\r\n var defaultBrowserType = 'IE';\r\n var defaultPlatform = 'Win';\r\n var defaultVersions = { Safari: 2, Chrome: 0.1, Mozilla: 1.9, Netscape: 8, Firefox: 2, Opera: 9, IE: 6, Edge: 12 };\r\n if (!userAgent || userAgent.length === 0) {\r\n Browser.fillUserAgentInfo(browserTypesOrderedList, defaultBrowserType, defaultVersions[defaultBrowserType], defaultPlatform);\r\n return;\r\n }\r\n userAgent = userAgent.toLowerCase();\r\n Browser.indentPlatformMajorVersion(userAgent);\r\n try {\r\n var platformIdentStrings = {\r\n 'Windows': 'Win',\r\n 'Macintosh': 'Mac',\r\n 'Mac OS': 'Mac',\r\n 'Mac_PowerPC': 'Mac',\r\n 'cpu os': 'MacMobile',\r\n 'cpu iphone os': 'MacMobile',\r\n 'Android': 'Android',\r\n '!Windows Phone': 'WinPhone',\r\n '!WPDesktop': 'WinPhone',\r\n '!ZuneWP': 'WinPhone'\r\n };\r\n var optSlashOrSpace = '(?:/|\\\\s*)?';\r\n var versionString = '(\\\\d+)(?:\\\\.((?:\\\\d+?[1-9])|\\\\d)0*?)?';\r\n var optVersion = '(?:' + versionString + ')?';\r\n var patterns = {\r\n Safari: 'applewebkit(?:.*?(?:version/' + versionString + '[\\\\.\\\\w\\\\d]*?(?:\\\\s+mobile/\\\\S*)?\\\\s+safari))?',\r\n Chrome: '(?:chrome|crios)(?!frame)' + optSlashOrSpace + optVersion,\r\n Mozilla: 'mozilla(?:.*rv:' + optVersion + '.*Gecko)?',\r\n Netscape: '(?:netscape|navigator)\\\\d*/?\\\\s*' + optVersion,\r\n Firefox: 'firefox' + optSlashOrSpace + optVersion,\r\n Opera: '(?:opera|\\\\sopr)' + optSlashOrSpace + optVersion,\r\n Opera10: 'opera.*\\\\s*version' + optSlashOrSpace + optVersion,\r\n IE: 'msie\\\\s*' + optVersion,\r\n Edge: 'edge' + optSlashOrSpace + optVersion\r\n };\r\n var browserType = null;\r\n var version = -1;\r\n for (var i = 0; i < browserTypesOrderedList.length; i++) {\r\n var browserTypeCandidate = browserTypesOrderedList[i];\r\n var regExp = new RegExp(patterns[browserTypeCandidate], 'i');\r\n var matches = regExp.exec(userAgent);\r\n if (matches && matches.index >= 0) {\r\n if (browserType === 'IE' && version >= 11 && browserTypeCandidate === 'Safari')\r\n continue;\r\n browserType = browserTypeCandidate;\r\n if (browserType === 'Opera10')\r\n browserType = 'Opera';\r\n var tridentPattern = 'trident' + optSlashOrSpace + optVersion;\r\n version = Browser.GetBrowserVersion(userAgent, matches, tridentPattern, Browser.getIECompatibleVersionString());\r\n if (browserType === 'Mozilla' && version >= 11)\r\n browserType = 'IE';\r\n }\r\n }\r\n if (!browserType)\r\n browserType = defaultBrowserType;\r\n var browserVersionDetected = version !== -1;\r\n if (!browserVersionDetected)\r\n version = defaultVersions[browserType];\r\n var platform = null;\r\n var minOccurenceIndex = Number.MAX_VALUE;\r\n for (var identStr in platformIdentStrings) {\r\n if (!Object.prototype.hasOwnProperty.call(platformIdentStrings, identStr))\r\n continue;\r\n var importantIdent = identStr.substr(0, 1) === '!';\r\n var occurenceIndex = userAgent.indexOf((importantIdent ? identStr.substr(1) : identStr).toLowerCase());\r\n if (occurenceIndex >= 0 && (occurenceIndex < minOccurenceIndex || importantIdent)) {\r\n minOccurenceIndex = importantIdent ? 0 : occurenceIndex;\r\n platform = platformIdentStrings[identStr];\r\n }\r\n }\r\n var samsungPattern = 'SM-[A-Z]';\r\n var m = userAgent.toUpperCase().match(samsungPattern);\r\n var isSamsungAndroidDevice = m && m.length > 0;\r\n if (platform === 'WinPhone' && version < 9)\r\n version = Math.floor(Browser.getVersionFromTrident(userAgent, 'trident' + optSlashOrSpace + optVersion));\r\n if (!ignoreDocumentMode && browserType === 'IE' && version > 7 && document.documentMode < version)\r\n version = document.documentMode;\r\n if (platform === 'WinPhone')\r\n version = Math.max(9, version);\r\n if (!platform)\r\n platform = defaultPlatform;\r\n if (platform === platformIdentStrings['cpu os'] && !browserVersionDetected)\r\n version = 4;\r\n Browser.fillUserAgentInfo(browserTypesOrderedList, browserType, version, platform, isSamsungAndroidDevice);\r\n }\r\n catch (e) {\r\n Browser.fillUserAgentInfo(browserTypesOrderedList, defaultBrowserType, defaultVersions[defaultBrowserType], defaultPlatform);\r\n }\r\n };\r\n Browser.GetBrowserVersion = function (userAgent, matches, tridentPattern, ieCompatibleVersionString) {\r\n var version = Browser.getVersionFromMatches(matches);\r\n if (ieCompatibleVersionString) {\r\n var versionFromTrident = Browser.getVersionFromTrident(userAgent, tridentPattern);\r\n if (ieCompatibleVersionString === 'edge' || parseInt(ieCompatibleVersionString) === versionFromTrident)\r\n return versionFromTrident;\r\n }\r\n return version;\r\n };\r\n Browser.getIECompatibleVersionString = function () {\r\n if (document.compatible) {\r\n for (var i = 0; i < document.compatible.length; i++) {\r\n if (document.compatible[i].userAgent === 'IE' && document.compatible[i].version)\r\n return document.compatible[i].version.toLowerCase();\r\n }\r\n }\r\n return '';\r\n };\r\n Browser.isTouchEnabled = function () {\r\n return ('ontouchstart' in window) ||\r\n (navigator['maxTouchPoints'] > 0) ||\r\n (navigator['msMaxTouchPoints'] > 0);\r\n };\r\n Browser.fillUserAgentInfo = function (browserTypesOrderedList, browserType, version, platform, isSamsungAndroidDevice) {\r\n if (isSamsungAndroidDevice === void 0) { isSamsungAndroidDevice = false; }\r\n for (var i = 0; i < browserTypesOrderedList.length; i++) {\r\n var type = browserTypesOrderedList[i];\r\n Browser[type] = type === browserType;\r\n }\r\n Browser.Version = Math.floor(10.0 * version) / 10.0;\r\n Browser.MajorVersion = Math.floor(Browser.Version);\r\n Browser.WindowsPlatform = platform === 'Win' || platform === 'WinPhone';\r\n Browser.MacOSMobilePlatform = platform === 'MacMobile' || (platform === 'Mac' && Browser.isTouchEnabled());\r\n Browser.MacOSPlatform = platform === 'Mac' && !Browser.MacOSMobilePlatform;\r\n Browser.AndroidMobilePlatform = platform === 'Android';\r\n Browser.WindowsPhonePlatform = platform === 'WinPhone';\r\n Browser.WebKitFamily = Browser.Safari || Browser.Chrome || Browser.Opera && Browser.MajorVersion >= 15;\r\n Browser.NetscapeFamily = Browser.Netscape || Browser.Mozilla || Browser.Firefox;\r\n Browser.HardwareAcceleration = (Browser.IE && Browser.MajorVersion >= 9) || (Browser.Firefox && Browser.MajorVersion >= 4) ||\r\n (Browser.AndroidMobilePlatform && Browser.Chrome) || (Browser.Chrome && Browser.MajorVersion >= 37) ||\r\n (Browser.Safari && !Browser.WindowsPlatform) || Browser.Edge || (Browser.Opera && Browser.MajorVersion >= 46);\r\n Browser.WebKitTouchUI = Browser.MacOSMobilePlatform || Browser.AndroidMobilePlatform;\r\n var isIETouchUI = Browser.IE && Browser.MajorVersion > 9 && Browser.WindowsPlatform && Browser.UserAgent.toLowerCase().indexOf('touch') >= 0;\r\n Browser.MSTouchUI = isIETouchUI || (Browser.Edge && !!window.navigator.maxTouchPoints);\r\n Browser.TouchUI = Browser.WebKitTouchUI || Browser.MSTouchUI;\r\n Browser.MobileUI = Browser.WebKitTouchUI || Browser.WindowsPhonePlatform;\r\n Browser.AndroidDefaultBrowser = Browser.AndroidMobilePlatform && !Browser.Chrome;\r\n Browser.AndroidChromeBrowser = Browser.AndroidMobilePlatform && Browser.Chrome;\r\n if (isSamsungAndroidDevice)\r\n Browser.SamsungAndroidDevice = isSamsungAndroidDevice;\r\n if (Browser.MSTouchUI) {\r\n var isARMArchitecture = Browser.UserAgent.toLowerCase().indexOf('arm;') > -1;\r\n Browser.VirtualKeyboardSupported = isARMArchitecture || Browser.WindowsPhonePlatform;\r\n }\r\n else\r\n Browser.VirtualKeyboardSupported = Browser.WebKitTouchUI;\r\n Browser.fillDocumentElementBrowserTypeClassNames(browserTypesOrderedList);\r\n };\r\n Browser.indentPlatformMajorVersion = function (userAgent) {\r\n var regex = /(?:(?:windows nt|macintosh|mac os|cpu os|cpu iphone os|android|windows phone|linux) )(\\d+)(?:[-0-9_.])*/;\r\n var matches = regex.exec(userAgent);\r\n if (matches)\r\n Browser.PlaformMajorVersion = matches[1];\r\n };\r\n Browser.getVersionFromMatches = function (matches) {\r\n var result = -1;\r\n var versionStr = '';\r\n if (matches) {\r\n if (matches[1]) {\r\n versionStr += matches[1];\r\n if (matches[2])\r\n versionStr += '.' + matches[2];\r\n }\r\n if (versionStr !== '') {\r\n result = parseFloat(versionStr);\r\n if (isNaN(result))\r\n result = -1;\r\n }\r\n }\r\n return result;\r\n };\r\n Browser.getVersionFromTrident = function (userAgent, tridentPattern) {\r\n var tridentDiffFromVersion = 4;\r\n var matches = new RegExp(tridentPattern, 'i').exec(userAgent);\r\n return Browser.getVersionFromMatches(matches) + tridentDiffFromVersion;\r\n };\r\n Browser.fillDocumentElementBrowserTypeClassNames = function (browserTypesOrderedList) {\r\n var documentElementClassName = '';\r\n var browserTypeslist = browserTypesOrderedList.concat(['WindowsPlatform', 'MacOSPlatform', 'MacOSMobilePlatform', 'AndroidMobilePlatform',\r\n 'WindowsPhonePlatform', 'WebKitFamily', 'WebKitTouchUI', 'MSTouchUI', 'TouchUI', 'AndroidDefaultBrowser']);\r\n for (var i = 0; i < browserTypeslist.length; i++) {\r\n var type = browserTypeslist[i];\r\n if (Browser[type])\r\n documentElementClassName += 'dx' + type + ' ';\r\n }\r\n documentElementClassName += 'dxBrowserVersion-' + Browser.MajorVersion;\r\n if (typeof document !== 'undefined' && document && document.documentElement) {\r\n if (document.documentElement.className !== '')\r\n documentElementClassName = ' ' + documentElementClassName;\r\n document.documentElement.className += documentElementClassName;\r\n Browser.Info = documentElementClassName;\r\n }\r\n };\r\n Browser.getUserAgent = function () {\r\n return typeof navigator !== 'undefined' && navigator.userAgent ? navigator.userAgent.toLowerCase() : '';\r\n };\r\n Browser.UserAgent = Browser.getUserAgent();\r\n Browser._foo = Browser.IdentUserAgent(Browser.UserAgent);\r\n return Browser;\r\n}());\r\nexports.Browser = Browser;\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(5);\r\nvar common_1 = __webpack_require__(1);\r\nvar dom_1 = __webpack_require__(3);\r\nvar touch_1 = __webpack_require__(15);\r\nvar EvtUtils = (function () {\r\n function EvtUtils() {\r\n }\r\n EvtUtils.preventEvent = function (evt) {\r\n if (evt.preventDefault)\r\n evt.preventDefault();\r\n else\r\n evt.returnValue = false;\r\n };\r\n EvtUtils.getEventSource = function (evt) {\r\n if (!common_1.isDefined(evt))\r\n return null;\r\n return evt.srcElement ? evt.srcElement : evt.target;\r\n };\r\n EvtUtils.getEventSourceByPosition = function (evt) {\r\n if (!common_1.isDefined(evt))\r\n return null;\r\n if (document.elementFromPoint && EvtUtils.getEventX(evt) !== undefined && EvtUtils.getEventY(evt) !== undefined)\r\n return document.elementFromPoint(EvtUtils.getEventX(evt), EvtUtils.getEventY(evt));\r\n return evt.srcElement ? evt.srcElement : evt.target;\r\n };\r\n EvtUtils.getMouseWheelEventName = function () {\r\n if (browser_1.Browser.Safari)\r\n return 'mousewheel';\r\n if (browser_1.Browser.NetscapeFamily && browser_1.Browser.MajorVersion < 17)\r\n return 'DOMMouseScroll';\r\n return 'wheel';\r\n };\r\n EvtUtils.isLeftButtonPressed = function (evt) {\r\n if (touch_1.TouchUtils.isTouchEvent(evt))\r\n return true;\r\n evt = (browser_1.Browser.IE && common_1.isDefined(event)) ? event : evt;\r\n if (!evt)\r\n return false;\r\n if (browser_1.Browser.IE && browser_1.Browser.Version < 11) {\r\n if (browser_1.Browser.MSTouchUI)\r\n return true;\r\n return evt.button % 2 === 1;\r\n }\r\n else if (browser_1.Browser.WebKitFamily) {\r\n if (evt.type === 'pointermove')\r\n return evt.buttons === 1;\r\n return evt.which === 1;\r\n }\r\n else if (browser_1.Browser.NetscapeFamily || browser_1.Browser.Edge || (browser_1.Browser.IE && browser_1.Browser.Version >= 11)) {\r\n if (evt.type === touch_1.TouchUtils.touchMouseMoveEventName)\r\n return evt.buttons === 1;\r\n return evt.which === 1;\r\n }\r\n else if (browser_1.Browser.Opera)\r\n return evt.button === 0;\r\n return true;\r\n };\r\n EvtUtils.preventEventAndBubble = function (evt) {\r\n EvtUtils.preventEvent(evt);\r\n if (evt.stopPropagation)\r\n evt.stopPropagation();\r\n evt.cancelBubble = true;\r\n };\r\n EvtUtils.clientEventRequiresDocScrollCorrection = function () {\r\n var isSafariVerLess3 = browser_1.Browser.Safari && browser_1.Browser.Version < 3;\r\n var isMacOSMobileVerLess51 = browser_1.Browser.MacOSMobilePlatform && browser_1.Browser.Version < 5.1;\r\n return browser_1.Browser.AndroidDefaultBrowser || browser_1.Browser.AndroidChromeBrowser || !(isSafariVerLess3 || isMacOSMobileVerLess51);\r\n };\r\n EvtUtils.getEventX = function (evt) {\r\n if (touch_1.TouchUtils.isTouchEvent(evt))\r\n return touch_1.TouchUtils.getEventX(evt);\r\n return evt.clientX + (EvtUtils.clientEventRequiresDocScrollCorrection() ? dom_1.DomUtils.getDocumentScrollLeft() : 0);\r\n };\r\n EvtUtils.getEventY = function (evt) {\r\n if (touch_1.TouchUtils.isTouchEvent(evt))\r\n return touch_1.TouchUtils.getEventY(evt);\r\n return evt.clientY + (EvtUtils.clientEventRequiresDocScrollCorrection() ? dom_1.DomUtils.getDocumentScrollTop() : 0);\r\n };\r\n EvtUtils.cancelBubble = function (evt) {\r\n evt.cancelBubble = true;\r\n };\r\n EvtUtils.getWheelDelta = function (evt) {\r\n var ret;\r\n if (browser_1.Browser.NetscapeFamily && browser_1.Browser.MajorVersion < 17)\r\n ret = -evt.detail;\r\n else if (browser_1.Browser.Safari)\r\n ret = evt.wheelDelta;\r\n else\r\n ret = -evt.deltaY;\r\n if (browser_1.Browser.Opera && browser_1.Browser.Version < 9)\r\n ret = -ret;\r\n return ret;\r\n };\r\n return EvtUtils;\r\n}());\r\nexports.EvtUtils = EvtUtils;\r\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SimpleCommandState = exports.CommandBase = void 0;\r\nvar CommandBase = (function () {\r\n function CommandBase(control) {\r\n this.control = control;\r\n }\r\n Object.defineProperty(CommandBase.prototype, \"modelManipulator\", {\r\n get: function () { return this.control.modelManipulator; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandBase.prototype, \"history\", {\r\n get: function () { return this.control.history; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandBase.prototype, \"validationController\", {\r\n get: function () { return this.control.validationController; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandBase.prototype, \"state\", {\r\n get: function () {\r\n if (!this._state)\r\n this._state = this.getState();\r\n return this._state;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CommandBase.prototype.execute = function () {\r\n var parameters = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n parameters[_i] = arguments[_i];\r\n }\r\n if (!this.state.enabled)\r\n return false;\r\n var executed = this.executeInternal.apply(this, parameters);\r\n if (executed)\r\n this.control.barManager.updateItemsState([]);\r\n return executed;\r\n };\r\n CommandBase.prototype.isEnabled = function () {\r\n return this.control.settings.editing.enabled;\r\n };\r\n CommandBase.prototype.executeInternal = function () {\r\n var parameters = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n parameters[_i] = arguments[_i];\r\n }\r\n throw new Error(\"Not implemented\");\r\n };\r\n return CommandBase;\r\n}());\r\nexports.CommandBase = CommandBase;\r\nvar SimpleCommandState = (function () {\r\n function SimpleCommandState(enabled, value) {\r\n this.visible = true;\r\n this.enabled = enabled;\r\n this.value = value;\r\n }\r\n return SimpleCommandState;\r\n}());\r\nexports.SimpleCommandState = SimpleCommandState;\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskAreaManager = exports.MouseEventSource = void 0;\r\nvar browser_1 = __webpack_require__(5);\r\nvar point_1 = __webpack_require__(4);\r\nvar dom_1 = __webpack_require__(3);\r\nvar evt_1 = __webpack_require__(6);\r\nvar touch_1 = __webpack_require__(15);\r\nvar GridLayoutCalculator_1 = __webpack_require__(17);\r\nvar MouseEventSource;\r\n(function (MouseEventSource) {\r\n MouseEventSource[MouseEventSource[\"TaskArea\"] = 0] = \"TaskArea\";\r\n MouseEventSource[MouseEventSource[\"TaskEdit_Frame\"] = 1] = \"TaskEdit_Frame\";\r\n MouseEventSource[MouseEventSource[\"TaskEdit_Progress\"] = 2] = \"TaskEdit_Progress\";\r\n MouseEventSource[MouseEventSource[\"TaskEdit_Start\"] = 3] = \"TaskEdit_Start\";\r\n MouseEventSource[MouseEventSource[\"TaskEdit_End\"] = 4] = \"TaskEdit_End\";\r\n MouseEventSource[MouseEventSource[\"TaskEdit_DependencyStart\"] = 5] = \"TaskEdit_DependencyStart\";\r\n MouseEventSource[MouseEventSource[\"TaskEdit_DependencyFinish\"] = 6] = \"TaskEdit_DependencyFinish\";\r\n MouseEventSource[MouseEventSource[\"Successor_Wrapper\"] = 7] = \"Successor_Wrapper\";\r\n MouseEventSource[MouseEventSource[\"Successor_DependencyStart\"] = 8] = \"Successor_DependencyStart\";\r\n MouseEventSource[MouseEventSource[\"Successor_DependencyFinish\"] = 9] = \"Successor_DependencyFinish\";\r\n})(MouseEventSource = exports.MouseEventSource || (exports.MouseEventSource = {}));\r\nvar TaskAreaManager = (function () {\r\n function TaskAreaManager(ganttView) {\r\n this.time = new Date();\r\n this.touchTime = new Date();\r\n this.ganttView = ganttView;\r\n this.eventManager = ganttView.eventManager;\r\n this.position = new point_1.Point(-1, -1);\r\n if (!browser_1.Browser.WebKitTouchUI)\r\n this.initMouseEvents();\r\n if (browser_1.Browser.isTouchEnabled())\r\n this.initTouchEvents();\r\n }\r\n TaskAreaManager.prototype.initMouseEventHandlers = function () {\r\n var _this = this;\r\n this.onMouseClickHandler = function (evt) { _this.onTaskAreaClick(evt); };\r\n this.onMouseDblClickHandler = function (evt) { _this.onTaskAreaDblClick(evt); };\r\n this.onScrollHandler = this.ganttView.updateView.bind(this.ganttView);\r\n this.onContextMenuHandler = function (evt) { _this.onContextMenu(evt); };\r\n this.onMouseWheelHandler = function (evt) { _this.onMouseWheel(evt); };\r\n this.onMouseDownHandler = function (evt) { _this.onMouseDown(evt); };\r\n this.onMouseMoveHandler = function (evt) { _this.onDocumentMouseMove(evt); };\r\n this.onMouseUpHandler = function (evt) { _this.onDocumentMouseUp(evt); };\r\n this.onKeyDownHandler = function (evt) { _this.onDocumentKeyDown(evt); };\r\n };\r\n TaskAreaManager.prototype.initTouchEventHandlers = function () {\r\n var _this = this;\r\n this.onTouchStartHandler = function (evt) { _this.onTouchStart(evt); };\r\n this.onTouchEndHandler = function (evt) { _this.onTouchEnd(evt); };\r\n this.onTouchMoveHandler = function (evt) { _this.onTouchMove(evt); };\r\n this.onPointerDownHandler = function (evt) { _this.onMouseDown(evt); };\r\n this.onPointerUpHandler = function (evt) { _this.onDocumentMouseUp(evt); };\r\n this.onPointerMoveHandler = function (evt) { _this.onDocumentMouseMove(evt); };\r\n };\r\n TaskAreaManager.prototype.initMouseEvents = function () {\r\n this.initMouseEventHandlers();\r\n this.ganttView.taskArea.addEventListener(\"click\", this.onMouseClickHandler);\r\n this.ganttView.taskArea.addEventListener(\"dblclick\", this.onMouseDblClickHandler);\r\n this.ganttView.taskArea.addEventListener(\"scroll\", this.onScrollHandler);\r\n this.ganttView.taskArea.addEventListener(\"contextmenu\", this.onContextMenuHandler);\r\n this.ganttView.taskArea.addEventListener(evt_1.EvtUtils.getMouseWheelEventName(), this.onMouseWheelHandler);\r\n this.ganttView.taskArea.addEventListener(\"mousedown\", this.onMouseDownHandler);\r\n document.addEventListener(\"mousemove\", this.onMouseMoveHandler);\r\n document.addEventListener(\"mouseup\", this.onMouseUpHandler);\r\n document.addEventListener(\"keydown\", this.onKeyDownHandler);\r\n };\r\n TaskAreaManager.prototype.detachMouseEvents = function () {\r\n this.initTouchEventHandlers();\r\n this.ganttView.taskArea.removeEventListener(\"click\", this.onMouseClickHandler);\r\n this.ganttView.taskArea.removeEventListener(\"dblclick\", this.onMouseDblClickHandler);\r\n this.ganttView.taskArea.removeEventListener(\"scroll\", this.onScrollHandler);\r\n this.ganttView.taskArea.removeEventListener(\"contextmenu\", this.onContextMenuHandler);\r\n this.ganttView.taskArea.removeEventListener(evt_1.EvtUtils.getMouseWheelEventName(), this.onMouseWheelHandler);\r\n this.ganttView.taskArea.removeEventListener(\"mousedown\", this.onMouseDownHandler);\r\n document.removeEventListener(\"mousemove\", this.onMouseMoveHandler);\r\n document.removeEventListener(\"mouseup\", this.onMouseUpHandler);\r\n document.removeEventListener(\"keydown\", this.onKeyDownHandler);\r\n };\r\n TaskAreaManager.prototype.initTouchEvents = function () {\r\n if (browser_1.Browser.WebKitTouchUI || browser_1.Browser.WindowsPlatform && !browser_1.Browser.Edge && !browser_1.Browser.IE) {\r\n this.ganttView.taskArea.addEventListener(\"touchstart\", this.onTouchStartHandler);\r\n this.ganttView.taskArea.addEventListener(\"touchend\", this.onTouchEndHandler);\r\n this.ganttView.taskArea.addEventListener(\"touchmove\", this.onTouchMoveHandler);\r\n }\r\n else if (browser_1.Browser.MSTouchUI) {\r\n this.ganttView.taskArea.classList.add(TaskAreaManager.MS_POINTER_ACTIVE_CLASS);\r\n this.ganttView.taskArea.addEventListener(\"pointerdown\", this.onPointerDownHandler);\r\n this.ganttView.taskArea.addEventListener(\"pointerup\", this.onPointerUpHandler);\r\n this.ganttView.taskArea.addEventListener(\"pointermove\", this.onPointerMoveHandler);\r\n }\r\n };\r\n TaskAreaManager.prototype.detachTouchEvents = function () {\r\n this.ganttView.taskArea.removeEventListener(\"touchstart\", this.onTouchStartHandler);\r\n this.ganttView.taskArea.removeEventListener(\"touchend\", this.onTouchEndHandler);\r\n this.ganttView.taskArea.removeEventListener(\"touchmove\", this.onTouchMoveHandler);\r\n this.ganttView.taskArea.removeEventListener(\"pointerdown\", this.onPointerDownHandler);\r\n this.ganttView.taskArea.removeEventListener(\"pointerup\", this.onPointerUpHandler);\r\n this.ganttView.taskArea.removeEventListener(\"pointermove\", this.onPointerMoveHandler);\r\n };\r\n TaskAreaManager.prototype.attachEventsOnTask = function (taskElement) {\r\n var _this = this;\r\n this.onMouseEnterHandler = function (evt) {\r\n if (browser_1.Browser.MSTouchUI)\r\n setTimeout(function () { return _this.onTaskElementHover(evt); }, 0);\r\n else\r\n _this.onTaskElementHover(evt);\r\n };\r\n taskElement.addEventListener(\"mouseenter\", this.onMouseEnterHandler);\r\n };\r\n TaskAreaManager.prototype.detachEventsOnTask = function (taskElement) {\r\n taskElement.removeEventListener(\"mouseenter\", this.onMouseEnterHandler);\r\n };\r\n TaskAreaManager.prototype.detachEvents = function () {\r\n this.detachMouseEvents();\r\n this.detachTouchEvents();\r\n };\r\n TaskAreaManager.prototype.onMouseDown = function (evt) {\r\n this.eventManager.onMouseDown(evt);\r\n this.preventSelect = false;\r\n this.position = new point_1.Point(evt.clientX, evt.clientY);\r\n };\r\n TaskAreaManager.prototype.onDocumentMouseUp = function (evt) {\r\n var _this = this;\r\n this.ganttView.isFocus = dom_1.DomUtils.isItParent(this.ganttView.taskArea, evt_1.EvtUtils.getEventSource(evt)) ? true : false;\r\n if (this.ganttView.isFocus && !this.preventSelect && this.ganttView.settings.allowSelectTask && !this.isConnectorLine(evt))\r\n setTimeout(function () { _this.changeTaskSelection(_this.getClickedTaskIndex(evt)); }, 0);\r\n this.eventManager.onMouseUp(evt);\r\n };\r\n TaskAreaManager.prototype.onMouseWheel = function (evt) {\r\n this.eventManager.onMouseWheel(evt);\r\n };\r\n TaskAreaManager.prototype.onDocumentKeyDown = function (evt) {\r\n this.eventManager.onKeyDown(evt);\r\n };\r\n TaskAreaManager.prototype.onDocumentMouseMove = function (evt) {\r\n if (this.position.x != evt.clientX || this.position.y != evt.clientY) {\r\n this.eventManager.onMouseMove(evt);\r\n this.preventSelect = true;\r\n }\r\n };\r\n TaskAreaManager.prototype.onTouchStart = function (evt) {\r\n this.position = new point_1.Point(touch_1.TouchUtils.getEventX(evt), touch_1.TouchUtils.getEventY(evt));\r\n var clickedItem = this.ganttView.viewModel.items[this.getClickedTaskIndex(evt)];\r\n var now = new Date();\r\n if (evt.touches.length === 1 && now.getTime() - this.touchTime.getTime() < TaskAreaManager.DBLCLICK_INTERVAL) {\r\n evt.preventDefault();\r\n if (clickedItem && this.ganttView.onTaskDblClick(clickedItem.task.id, evt))\r\n this.ganttView.commandManager.showTaskEditDialog.execute(clickedItem.task);\r\n }\r\n else\r\n this.eventManager.onTouchStart(evt);\r\n if (clickedItem && this.ganttView.onTaskClick(clickedItem.task.id, evt))\r\n this.touchTime = now;\r\n this.preventSelect = false;\r\n };\r\n TaskAreaManager.prototype.onTouchEnd = function (evt) {\r\n this.eventManager.onTouchEnd(evt);\r\n };\r\n TaskAreaManager.prototype.onTouchMove = function (evt) {\r\n if (this.position.x != touch_1.TouchUtils.getEventX(evt) || this.position.y != touch_1.TouchUtils.getEventY(evt)) {\r\n this.eventManager.onTouchMove(evt);\r\n this.preventSelect = true;\r\n }\r\n };\r\n TaskAreaManager.prototype.getDependencyKeyFromSource = function (source) {\r\n return this.ganttView.viewModel.convertInternalToPublicKey(\"dependency\", source.getAttribute(\"dependency-id\"));\r\n };\r\n TaskAreaManager.prototype.onContextMenu = function (evt) {\r\n var source = evt_1.EvtUtils.getEventSource(evt);\r\n var isDependency = this.isConnectorLine(evt);\r\n var type = isDependency ? \"dependency\" : \"task\";\r\n var key = isDependency ? this.getDependencyKeyFromSource(source) : this.getClickedTaskKey(this.getClickedTaskIndex(evt));\r\n if (evt.stopPropagation)\r\n evt.stopPropagation();\r\n if (evt.preventDefault)\r\n evt.preventDefault();\r\n if (browser_1.Browser.WebKitFamily)\r\n evt.returnValue = false;\r\n if (this.ganttView.ganttOwner.onGanttViewContextMenu(evt, key, type)) {\r\n var info = {\r\n event: evt,\r\n type: type,\r\n key: key,\r\n position: new point_1.Point(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.getEventY(evt))\r\n };\r\n this.ganttView.ganttOwner.showPopupMenu(info);\r\n }\r\n };\r\n TaskAreaManager.prototype.onTaskElementHover = function (evt) {\r\n evt.preventDefault();\r\n var hoveredTaskIndex = this.getClickedTaskIndex(evt);\r\n this.ganttView.taskEditController.show(hoveredTaskIndex);\r\n this.ganttView.taskEditController.showTaskInfo(evt_1.EvtUtils.getEventX(evt));\r\n };\r\n TaskAreaManager.prototype.getClickedTaskIndex = function (evt) {\r\n var y = evt_1.EvtUtils.getEventY(evt);\r\n var taskAreaY = dom_1.DomUtils.getAbsolutePositionY(this.ganttView.taskArea);\r\n var relativeY = y - taskAreaY;\r\n return Math.floor(relativeY / this.ganttView.tickSize.height);\r\n };\r\n TaskAreaManager.prototype.getClickedTaskKey = function (index) {\r\n var clickedItem = this.ganttView.viewModel.items[index];\r\n return clickedItem && clickedItem.task && clickedItem.task.id;\r\n };\r\n TaskAreaManager.prototype.changeTaskSelection = function (index) {\r\n var clickedTask = this.ganttView.viewModel.items[index];\r\n if (clickedTask)\r\n this.ganttView.ganttOwner.changeGanttTaskSelection(clickedTask.task.id, true);\r\n };\r\n TaskAreaManager.prototype.onTaskAreaClick = function (evt) {\r\n var clickedTaskIndex = this.getClickedTaskIndex(evt);\r\n var clickedItem = this.ganttView.viewModel.items[clickedTaskIndex];\r\n if (clickedItem)\r\n this.ganttView.onTaskClick(clickedItem.task.id, evt);\r\n };\r\n TaskAreaManager.prototype.onTaskAreaDblClick = function (evt) {\r\n evt.preventDefault();\r\n var clickedTaskIndex = this.getClickedTaskIndex(evt);\r\n var clickedItem = this.ganttView.viewModel.items[clickedTaskIndex];\r\n if (clickedItem && this.ganttView.onTaskDblClick(clickedItem.task.id, evt))\r\n this.ganttView.commandManager.showTaskEditDialog.execute(clickedItem.task);\r\n };\r\n TaskAreaManager.prototype.isConnectorLine = function (evt) {\r\n var source = evt_1.EvtUtils.getEventSource(evt);\r\n return dom_1.DomUtils.hasClassName(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL) ||\r\n dom_1.DomUtils.hasClassName(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_VERTICAL);\r\n };\r\n TaskAreaManager.DBLCLICK_INTERVAL = 300;\r\n TaskAreaManager.MS_POINTER_ACTIVE_CLASS = \"ms-pointer-active\";\r\n return TaskAreaManager;\r\n}());\r\nexports.TaskAreaManager = TaskAreaManager;\r\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DateRange = void 0;\r\nvar DateRange = (function () {\r\n function DateRange(start, end) {\r\n this.start = start;\r\n this.end = end;\r\n }\r\n DateRange.prototype.equal = function (date) {\r\n var result = true;\r\n result = result && this.start.getTime() === date.start.getTime();\r\n result = result && this.end.getTime() === date.end.getTime();\r\n return result;\r\n };\r\n return DateRange;\r\n}());\r\nexports.DateRange = DateRange;\r\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataObject = void 0;\r\nvar common_1 = __webpack_require__(1);\r\nvar math_1 = __webpack_require__(34);\r\nvar DataObject = (function () {\r\n function DataObject() {\r\n this.internalId = math_1.MathUtils.generateGuid();\r\n }\r\n DataObject.prototype.assignFromObject = function (sourceObj) {\r\n if (!common_1.isDefined(sourceObj))\r\n return;\r\n if (common_1.isDefined(sourceObj.id)) {\r\n this.id = sourceObj.id;\r\n this.internalId = String(sourceObj.id);\r\n }\r\n };\r\n return DataObject;\r\n}());\r\nexports.DataObject = DataObject;\r\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Dependency = exports.DependencyType = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DataObject_1 = __webpack_require__(10);\r\nvar common_1 = __webpack_require__(1);\r\nvar DependencyType;\r\n(function (DependencyType) {\r\n DependencyType[DependencyType[\"FS\"] = 0] = \"FS\";\r\n DependencyType[DependencyType[\"SS\"] = 1] = \"SS\";\r\n DependencyType[DependencyType[\"FF\"] = 2] = \"FF\";\r\n DependencyType[DependencyType[\"SF\"] = 3] = \"SF\";\r\n})(DependencyType = exports.DependencyType || (exports.DependencyType = {}));\r\nvar Dependency = (function (_super) {\r\n tslib_1.__extends(Dependency, _super);\r\n function Dependency() {\r\n var _this = _super.call(this) || this;\r\n _this.predecessorId = \"\";\r\n _this.successorId = \"\";\r\n _this.type = null;\r\n return _this;\r\n }\r\n Object.defineProperty(Dependency.prototype, \"isStartDependency\", {\r\n get: function () {\r\n return this.type === DependencyType.SS || this.type === DependencyType.SF;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Dependency.prototype.assignFromObject = function (sourceObj) {\r\n if (common_1.isDefined(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.internalId = String(sourceObj.id);\r\n this.predecessorId = String(sourceObj.predecessorId);\r\n this.successorId = String(sourceObj.successorId);\r\n this.type = this.parseType(sourceObj.type);\r\n }\r\n };\r\n Dependency.prototype.parseType = function (type) {\r\n if (common_1.isDefined(type)) {\r\n var text = type.toString().toUpperCase();\r\n switch (text) {\r\n case \"SS\":\r\n case \"1\":\r\n return DependencyType.SS;\r\n case \"FF\":\r\n case \"2\":\r\n return DependencyType.FF;\r\n case \"SF\":\r\n case \"3\":\r\n return DependencyType.SF;\r\n default: return DependencyType.FS;\r\n }\r\n }\r\n else\r\n return DependencyType.FS;\r\n };\r\n return Dependency;\r\n}(DataObject_1.DataObject));\r\nexports.Dependency = Dependency;\r\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CompositionHistoryItem = exports.HistoryItem = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem = (function () {\r\n function HistoryItem(modelManipulator) {\r\n this.setModelManipulator(modelManipulator);\r\n }\r\n HistoryItem.prototype.setModelManipulator = function (modelManipulator) {\r\n this.modelManipulator = modelManipulator;\r\n };\r\n return HistoryItem;\r\n}());\r\nexports.HistoryItem = HistoryItem;\r\nvar CompositionHistoryItem = (function (_super) {\r\n tslib_1.__extends(CompositionHistoryItem, _super);\r\n function CompositionHistoryItem() {\r\n var _this = _super.call(this, null) || this;\r\n _this.historyItems = [];\r\n return _this;\r\n }\r\n CompositionHistoryItem.prototype.redo = function () {\r\n var item;\r\n for (var i = 0; item = this.historyItems[i]; i++)\r\n item.redo();\r\n };\r\n CompositionHistoryItem.prototype.undo = function () {\r\n var item;\r\n for (var i = this.historyItems.length - 1; item = this.historyItems[i]; i--)\r\n item.undo();\r\n };\r\n CompositionHistoryItem.prototype.add = function (historyItem) {\r\n if (historyItem == null)\r\n throw new Error(\"Can't add null HistoryItem\");\r\n this.historyItems.push(historyItem);\r\n };\r\n CompositionHistoryItem.prototype.undoItemsQuery = function () {\r\n this.undo();\r\n };\r\n CompositionHistoryItem.prototype.setModelManipulator = function (modelManipulator) {\r\n if (this.historyItems)\r\n for (var i = 0; i < this.historyItems.length - 1; i++)\r\n this.historyItems[i].setModelManipulator(modelManipulator);\r\n };\r\n return CompositionHistoryItem;\r\n}(HistoryItem));\r\nexports.CompositionHistoryItem = CompositionHistoryItem;\r\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionBase = void 0;\r\nvar common_1 = __webpack_require__(1);\r\nvar Utils_1 = __webpack_require__(57);\r\nvar CollectionBase = (function () {\r\n function CollectionBase() {\r\n this._items = new Array();\r\n this._isGanttCollection = true;\r\n }\r\n CollectionBase.prototype.add = function (element) {\r\n if (!common_1.isDefined(element))\r\n return;\r\n if (this.getItemById(element.internalId))\r\n throw \"The collection item with id ='\" + element.internalId + \"' already exists.\";\r\n this._addItem(element);\r\n };\r\n CollectionBase.prototype.addRange = function (range) {\r\n for (var i = 0; i < range.length; i++)\r\n this.add(range[i]);\r\n };\r\n CollectionBase.prototype.remove = function (element) {\r\n var index = this._items.indexOf(element);\r\n if (index > -1 && index < this._items.length)\r\n this._removeItems(index, 1);\r\n };\r\n CollectionBase.prototype.clear = function () {\r\n this._removeItems(0, this._items.length);\r\n };\r\n CollectionBase.prototype._addItem = function (element) {\r\n this._items.push(element);\r\n delete this._invertedItems;\r\n };\r\n CollectionBase.prototype._removeItems = function (start, count) {\r\n this._items.splice(start, count);\r\n delete this._invertedItems;\r\n };\r\n Object.defineProperty(CollectionBase.prototype, \"items\", {\r\n get: function () {\r\n return this._items.slice();\r\n },\r\n set: function (value) {\r\n if (value)\r\n this._items = value.slice();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CollectionBase.prototype, \"length\", {\r\n get: function () {\r\n return this._items.length;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CollectionBase.prototype.getItem = function (index) {\r\n if (index > -1 && index < this._items.length)\r\n return this._items[index];\r\n return null;\r\n };\r\n Object.defineProperty(CollectionBase.prototype, \"invertedItems\", {\r\n get: function () {\r\n var _a;\r\n (_a = this._invertedItems) !== null && _a !== void 0 ? _a : (this._invertedItems = this._createInvertedItems());\r\n return this._invertedItems;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CollectionBase.prototype._createInvertedItems = function () {\r\n var result = {};\r\n for (var i = 0; i < this._items.length; i++) {\r\n var item = this._items[i];\r\n result[item.internalId] = item;\r\n }\r\n return result;\r\n };\r\n CollectionBase.prototype.getItemById = function (id) {\r\n return this.invertedItems[id];\r\n };\r\n CollectionBase.prototype.getItemByPublicId = function (id) {\r\n return this._items.filter(function (val) { return val.id === id || val.id.toString() === id; })[0];\r\n };\r\n CollectionBase.prototype.assign = function (sourceCollection) {\r\n if (!common_1.isDefined(sourceCollection))\r\n return;\r\n this.items = sourceCollection.items;\r\n };\r\n CollectionBase.prototype.importFromObject = function (source) {\r\n if (!common_1.isDefined(source))\r\n return;\r\n this.clear();\r\n if (source._isGanttCollection)\r\n this.assign(source);\r\n else if (source instanceof Array)\r\n this.importFromArray(source);\r\n else\r\n this.createItemFromObjectAndAdd(source);\r\n };\r\n CollectionBase.prototype.createItemFromObjectAndAdd = function (source) {\r\n if (common_1.isDefined(source)) {\r\n var item = this.createItem();\r\n item.assignFromObject(source);\r\n this.add(item);\r\n }\r\n };\r\n CollectionBase.prototype.importFromArray = function (values) {\r\n for (var i = 0; i < values.length; i++)\r\n this.createItemFromObjectAndAdd(values[i]);\r\n };\r\n CollectionBase.prototype.importFromJSON = function (json) {\r\n this.importFromObject(Utils_1.GanttJsonUtils.parseJson(json));\r\n };\r\n return CollectionBase;\r\n}());\r\nexports.CollectionBase = CollectionBase;\r\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskTitlePosition = exports.Position = exports.ViewType = void 0;\r\nvar ViewType;\r\n(function (ViewType) {\r\n ViewType[ViewType[\"TenMinutes\"] = 0] = \"TenMinutes\";\r\n ViewType[ViewType[\"Hours\"] = 1] = \"Hours\";\r\n ViewType[ViewType[\"SixHours\"] = 2] = \"SixHours\";\r\n ViewType[ViewType[\"Days\"] = 3] = \"Days\";\r\n ViewType[ViewType[\"Weeks\"] = 4] = \"Weeks\";\r\n ViewType[ViewType[\"Months\"] = 5] = \"Months\";\r\n ViewType[ViewType[\"Quarter\"] = 6] = \"Quarter\";\r\n ViewType[ViewType[\"Years\"] = 7] = \"Years\";\r\n ViewType[ViewType[\"FiveYears\"] = 8] = \"FiveYears\";\r\n})(ViewType = exports.ViewType || (exports.ViewType = {}));\r\nvar Position;\r\n(function (Position) {\r\n Position[Position[\"Left\"] = 0] = \"Left\";\r\n Position[Position[\"Top\"] = 1] = \"Top\";\r\n Position[Position[\"Right\"] = 2] = \"Right\";\r\n Position[Position[\"Bottom\"] = 3] = \"Bottom\";\r\n})(Position = exports.Position || (exports.Position = {}));\r\nvar TaskTitlePosition;\r\n(function (TaskTitlePosition) {\r\n TaskTitlePosition[TaskTitlePosition[\"Inside\"] = 0] = \"Inside\";\r\n TaskTitlePosition[TaskTitlePosition[\"Outside\"] = 1] = \"Outside\";\r\n TaskTitlePosition[TaskTitlePosition[\"None\"] = 2] = \"None\";\r\n})(TaskTitlePosition = exports.TaskTitlePosition || (exports.TaskTitlePosition = {}));\r\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(5);\r\nvar common_1 = __webpack_require__(1);\r\nvar TouchUtils = (function () {\r\n function TouchUtils() {\r\n }\r\n TouchUtils.onEventAttachingToDocument = function (eventName, func) {\r\n if (browser_1.Browser.MacOSMobilePlatform && TouchUtils.isTouchEventName(eventName)) {\r\n if (!TouchUtils.documentTouchHandlers[eventName])\r\n TouchUtils.documentTouchHandlers[eventName] = [];\r\n TouchUtils.documentTouchHandlers[eventName].push(func);\r\n return TouchUtils.documentEventAttachingAllowed;\r\n }\r\n return true;\r\n };\r\n TouchUtils.isTouchEventName = function (eventName) {\r\n return browser_1.Browser.WebKitTouchUI && (eventName.indexOf('touch') > -1 || eventName.indexOf('gesture') > -1);\r\n };\r\n TouchUtils.isTouchEvent = function (evt) {\r\n return browser_1.Browser.WebKitTouchUI && common_1.isDefined(evt.changedTouches);\r\n };\r\n TouchUtils.getEventX = function (evt) {\r\n return browser_1.Browser.IE ? evt.pageX : evt.changedTouches[0].pageX;\r\n };\r\n TouchUtils.getEventY = function (evt) {\r\n return browser_1.Browser.IE ? evt.pageY : evt.changedTouches[0].pageY;\r\n };\r\n TouchUtils.touchMouseDownEventName = browser_1.Browser.WebKitTouchUI ? 'touchstart' : (browser_1.Browser.Edge && browser_1.Browser.MSTouchUI && window.PointerEvent ? 'pointerdown' : 'mousedown');\r\n TouchUtils.touchMouseUpEventName = browser_1.Browser.WebKitTouchUI ? 'touchend' : (browser_1.Browser.Edge && browser_1.Browser.MSTouchUI && window.PointerEvent ? 'pointerup' : 'mouseup');\r\n TouchUtils.touchMouseMoveEventName = browser_1.Browser.WebKitTouchUI ? 'touchmove' : (browser_1.Browser.Edge && browser_1.Browser.MSTouchUI && window.PointerEvent ? 'pointermove' : 'mousemove');\r\n TouchUtils.msTouchDraggableClassName = 'dxMSTouchDraggable';\r\n TouchUtils.documentTouchHandlers = {};\r\n TouchUtils.documentEventAttachingAllowed = true;\r\n return TouchUtils;\r\n}());\r\nexports.TouchUtils = TouchUtils;\r\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RecurrenceBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DataObject_1 = __webpack_require__(10);\r\nvar DayOfWeek_1 = __webpack_require__(71);\r\nvar DayOfWeekMonthlyOccurrence_1 = __webpack_require__(39);\r\nvar Month_1 = __webpack_require__(72);\r\nvar common_1 = __webpack_require__(1);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar RecurrenceFactory_1 = __webpack_require__(40);\r\nvar RecurrenceBase = (function (_super) {\r\n tslib_1.__extends(RecurrenceBase, _super);\r\n function RecurrenceBase(start, end, interval, occurrenceCount) {\r\n if (start === void 0) { start = null; }\r\n if (end === void 0) { end = null; }\r\n if (interval === void 0) { interval = 1; }\r\n if (occurrenceCount === void 0) { occurrenceCount = 0; }\r\n var _this = _super.call(this) || this;\r\n _this._start = null;\r\n _this._end = null;\r\n _this._interval = 1;\r\n _this._occurrenceCount = 0;\r\n _this._dayOfWeek = 0;\r\n _this._day = 1;\r\n _this._dayOfWeekOccurrence = 0;\r\n _this._month = 0;\r\n _this._calculateByDayOfWeek = false;\r\n _this.start = start;\r\n _this.end = end;\r\n _this.interval = interval;\r\n _this.occurrenceCount = occurrenceCount;\r\n return _this;\r\n }\r\n RecurrenceBase.prototype.assignFromObject = function (sourceObj) {\r\n if (common_1.isDefined(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.start = DateTimeUtils_1.DateTimeUtils.convertToDate(sourceObj.start);\r\n this.end = DateTimeUtils_1.DateTimeUtils.convertToDate(sourceObj.end);\r\n if (common_1.isDefined(sourceObj.interval))\r\n this.interval = sourceObj.interval;\r\n if (common_1.isDefined(sourceObj.occurrenceCount))\r\n this.occurrenceCount = sourceObj.occurrenceCount;\r\n if (common_1.isDefined(sourceObj.dayOfWeek))\r\n this.dayOfWeekInternal = RecurrenceFactory_1.RecurrenceFactory.getEnumValue(DayOfWeek_1.DayOfWeek, sourceObj.dayOfWeek);\r\n if (common_1.isDefined(sourceObj.day))\r\n this.dayInternal = sourceObj.day;\r\n if (common_1.isDefined(sourceObj.dayOfWeekOccurrence))\r\n this.dayOfWeekOccurrenceInternal = RecurrenceFactory_1.RecurrenceFactory.getEnumValue(DayOfWeekMonthlyOccurrence_1.DayOfWeekMonthlyOccurrence, sourceObj.dayOfWeekOccurrence);\r\n if (common_1.isDefined(sourceObj.month))\r\n this.monthInternal = RecurrenceFactory_1.RecurrenceFactory.getEnumValue(Month_1.Month, sourceObj.month);\r\n if (common_1.isDefined(sourceObj.calculateByDayOfWeek))\r\n this._calculateByDayOfWeek = !!sourceObj.calculateByDayOfWeek;\r\n }\r\n };\r\n RecurrenceBase.prototype.calculatePoints = function (start, end) {\r\n if (!start || !end)\r\n return new Array();\r\n var from = DateTimeUtils_1.DateTimeUtils.getMaxDate(start, this._start);\r\n var to = DateTimeUtils_1.DateTimeUtils.getMinDate(end, this._end);\r\n if (this._occurrenceCount > 0)\r\n return this.calculatePointsByOccurrenceCount(from, to);\r\n return this.calculatePointsByDateRange(from, to);\r\n };\r\n RecurrenceBase.prototype.calculatePointsByOccurrenceCount = function (start, end) {\r\n var points = new Array();\r\n var point = this.getFirstPoint(start);\r\n while (!!point && points.length < this._occurrenceCount && DateTimeUtils_1.DateTimeUtils.compareDates(point, end) >= 0) {\r\n if (this.isRecurrencePoint(point))\r\n points.push(point);\r\n point = this.getNextPoint(point);\r\n }\r\n return points;\r\n };\r\n RecurrenceBase.prototype.calculatePointsByDateRange = function (start, end) {\r\n var points = new Array();\r\n var point = this.getFirstPoint(start);\r\n while (!!point && DateTimeUtils_1.DateTimeUtils.compareDates(point, end) >= 0) {\r\n if (this.isRecurrencePoint(point))\r\n points.push(point);\r\n point = this.getNextPoint(point);\r\n }\r\n return points;\r\n };\r\n RecurrenceBase.prototype.getFirstPoint = function (start) {\r\n if (this.isRecurrencePoint(start))\r\n return start;\r\n return this.getNextPoint(start);\r\n };\r\n RecurrenceBase.prototype.isRecurrencePoint = function (date) {\r\n return this.isDateInRange(date) && this.checkDate(date) && (!this.useIntervalInCalc() || this.checkInterval(date));\r\n };\r\n RecurrenceBase.prototype.isDateInRange = function (date) {\r\n if (!date)\r\n return false;\r\n if (this._start && DateTimeUtils_1.DateTimeUtils.compareDates(this.start, date) < 0)\r\n return false;\r\n if (this._occurrenceCount == 0 && this.end && DateTimeUtils_1.DateTimeUtils.compareDates(date, this.end) < 0)\r\n return false;\r\n return true;\r\n };\r\n RecurrenceBase.prototype.useIntervalInCalc = function () {\r\n return this.interval > 1 && !!this._start;\r\n };\r\n RecurrenceBase.prototype.getNextPoint = function (date) {\r\n if (!this.isDateInRange(date))\r\n return null;\r\n if (this.useIntervalInCalc())\r\n return this.calculatePointByInterval(date);\r\n return this.calculateNearestPoint(date);\r\n };\r\n RecurrenceBase.prototype.getSpecDayInMonth = function (year, month) {\r\n var date;\r\n if (this._calculateByDayOfWeek)\r\n date = DateTimeUtils_1.DateTimeUtils.getSpecificDayOfWeekInMonthDate(this.dayOfWeekInternal, year, month, this.dayOfWeekOccurrenceInternal);\r\n else\r\n date = new Date(year, month, this.dayInternal);\r\n return date;\r\n };\r\n Object.defineProperty(RecurrenceBase.prototype, \"dayInternal\", {\r\n get: function () { return this._day; },\r\n set: function (value) {\r\n if (value > 0 && value <= 31)\r\n this._day = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RecurrenceBase.prototype, \"dayOfWeekInternal\", {\r\n get: function () { return this._dayOfWeek; },\r\n set: function (dayOfWeek) {\r\n if (dayOfWeek >= DayOfWeek_1.DayOfWeek.Sunday && dayOfWeek <= DayOfWeek_1.DayOfWeek.Saturday)\r\n this._dayOfWeek = dayOfWeek;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RecurrenceBase.prototype, \"dayOfWeekOccurrenceInternal\", {\r\n get: function () {\r\n return this._dayOfWeekOccurrence;\r\n },\r\n set: function (value) {\r\n if (value >= DayOfWeekMonthlyOccurrence_1.DayOfWeekMonthlyOccurrence.First && value <= DayOfWeekMonthlyOccurrence_1.DayOfWeekMonthlyOccurrence.Last)\r\n this._dayOfWeekOccurrence = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RecurrenceBase.prototype, \"monthInternal\", {\r\n get: function () { return this._month; },\r\n set: function (value) {\r\n if (value >= Month_1.Month.January && value <= Month_1.Month.December)\r\n this._month = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RecurrenceBase.prototype, \"start\", {\r\n get: function () { return this._start; },\r\n set: function (date) {\r\n if (!date)\r\n return;\r\n this._start = date;\r\n if (!!this._end && date > this._end)\r\n this._end = date;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RecurrenceBase.prototype, \"end\", {\r\n get: function () { return this._end; },\r\n set: function (date) {\r\n if (!date)\r\n return;\r\n this._end = date;\r\n if (!!this._start && date < this._start)\r\n this._start = date;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RecurrenceBase.prototype, \"occurrenceCount\", {\r\n get: function () { return this._occurrenceCount; },\r\n set: function (value) {\r\n if (value < 0)\r\n value = 0;\r\n this._occurrenceCount = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RecurrenceBase.prototype, \"interval\", {\r\n get: function () { return this._interval; },\r\n set: function (value) {\r\n if (value > 0)\r\n this._interval = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return RecurrenceBase;\r\n}(DataObject_1.DataObject));\r\nexports.RecurrenceBase = RecurrenceBase;\r\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GridLayoutCalculator = void 0;\r\nvar size_1 = __webpack_require__(28);\r\nvar DateRange_1 = __webpack_require__(9);\r\nvar Enums_1 = __webpack_require__(14);\r\nvar GridElementInfo_1 = __webpack_require__(43);\r\nvar Utils_1 = __webpack_require__(42);\r\nvar point_1 = __webpack_require__(4);\r\nvar Dependency_1 = __webpack_require__(11);\r\nvar Settings_1 = __webpack_require__(44);\r\nvar GridLayoutCalculator = (function () {\r\n function GridLayoutCalculator() {\r\n this.tileToDependencyMap = [];\r\n this.tileToNoWorkingIntervalsMap = [];\r\n this.minLineLength = 10;\r\n this.resourceMaxWidth = 500;\r\n this.minTaskWidth = 2;\r\n }\r\n GridLayoutCalculator.prototype.setSettings = function (visibleTaskAreaSize, tickSize, elementSizeValues, range, viewModel, viewType, scrollBarHeight) {\r\n if (scrollBarHeight === void 0) { scrollBarHeight = 0; }\r\n this.visibleTaskAreaSize = visibleTaskAreaSize;\r\n this.tickSize = tickSize;\r\n this.viewType = viewType;\r\n this.range = range;\r\n this.verticalTickCount = viewModel.itemCount;\r\n this.viewModel = viewModel;\r\n this.elementSizeValues = elementSizeValues;\r\n this.taskHeight = elementSizeValues.taskHeight;\r\n this.parentTaskHeight = elementSizeValues.parentTaskHeight;\r\n this.milestoneWidth = elementSizeValues.milestoneWidth;\r\n this.scaleHeight = elementSizeValues.scaleItemHeight;\r\n this.arrowSize = new size_1.Size(elementSizeValues.connectorArrowWidth, elementSizeValues.connectorArrowWidth);\r\n this.lineThickness = elementSizeValues.connectorLineThickness;\r\n this.minConnectorSpaceFromTask = (this.tickSize.height - this.taskHeight) / 2;\r\n this.tickTimeSpan = Utils_1.DateUtils.getTickTimeSpan(viewType);\r\n this.horizontalTickCount = this.getTotalTickCount();\r\n this.scrollBarHeight = scrollBarHeight;\r\n this.createTileToConnectorLinesMap();\r\n this.createTileToNonWorkingIntervalsMap();\r\n };\r\n GridLayoutCalculator.prototype.getTaskAreaBorderInfo = function (index, isVertical) {\r\n var sizeValue = isVertical ?\r\n this.getVerticalGridLineHeight() :\r\n this.tickSize.width * this.horizontalTickCount;\r\n return this.getGridBorderInfo(index, isVertical, sizeValue);\r\n };\r\n GridLayoutCalculator.prototype.getScaleBorderInfo = function (index, scaleType) {\r\n var result = this.getGridBorderInfo(index, true, this.scaleHeight);\r\n result.position.x *= this.getScaleItemColSpan(scaleType);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getGridBorderInfo = function (index, isVertical, size) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.setPosition(this.getGridBorderPosition(index, isVertical));\r\n if (size)\r\n result.setSize(this.getGridBorderSize(isVertical, size));\r\n result.className = isVertical ? \"dx-gantt-vb\" : \"dx-gantt-hb\";\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getGridBorderPosition = function (index, isVertical) {\r\n var result = new point_1.Point(undefined, undefined);\r\n var posValue = (index + 1) * (isVertical ? this.tickSize.width : this.tickSize.height);\r\n if (isVertical)\r\n result.x = posValue;\r\n else\r\n result.y = posValue;\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getGridBorderSize = function (isVertical, sizeValue) {\r\n var result = new size_1.Size(0, 0);\r\n if (isVertical)\r\n result.height = sizeValue;\r\n else\r\n result.width = sizeValue;\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getScaleElementInfo = function (index, scaleType) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.setPosition(this.getScaleItemPosition(index, scaleType));\r\n result.setSize(this.getScaleItemSize(scaleType));\r\n result.className = this.getScaleItemClassName(scaleType, result, this.getRenderedNoWorkingIntervals(result.position.x));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getScaleItemClassName = function (scaleType, scaleItemInfo, noWorkingIntervals) {\r\n var result = \"dx-gantt-si\";\r\n if (scaleType.valueOf() == this.viewType.valueOf() && this.isScaleItemInsideNoWorkingInterval(scaleItemInfo, noWorkingIntervals))\r\n result += \" dx-gantt-holiday-scaleItem\";\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.isScaleItemInsideNoWorkingInterval = function (scaleItemInfo, noWorkingIntervals) {\r\n var scaleItemLeft = scaleItemInfo.position.x;\r\n var scaleItemRight = scaleItemInfo.position.x + scaleItemInfo.size.width;\r\n for (var i = 0; i < noWorkingIntervals.length; i++) {\r\n var noWorkingIntervalLeft = noWorkingIntervals[i].position.x;\r\n var noWorkingIntervalRight = noWorkingIntervals[i].position.x + noWorkingIntervals[i].size.width;\r\n if (scaleItemLeft >= noWorkingIntervalLeft && scaleItemRight <= noWorkingIntervalRight)\r\n return true;\r\n }\r\n return false;\r\n };\r\n GridLayoutCalculator.prototype.getScaleItemPosition = function (index, scaleType) {\r\n return new point_1.Point(index * this.tickSize.width * this.getScaleItemColSpan(scaleType), undefined);\r\n };\r\n GridLayoutCalculator.prototype.getScaleItemSize = function (scaleType) {\r\n return new size_1.Size(this.tickSize.width * this.getScaleItemColSpan(scaleType), 0);\r\n };\r\n GridLayoutCalculator.prototype.getScaleItemColSpan = function (scaleType) {\r\n if (scaleType.valueOf() == this.viewType.valueOf())\r\n return 1;\r\n if (this.viewType == Enums_1.ViewType.TenMinutes)\r\n return 6;\r\n if (this.viewType == Enums_1.ViewType.Hours)\r\n return 24;\r\n if (this.viewType == Enums_1.ViewType.SixHours)\r\n return 4;\r\n if (this.viewType == Enums_1.ViewType.Days)\r\n return 7;\r\n if (this.viewType == Enums_1.ViewType.Weeks)\r\n return 4.29;\r\n if (this.viewType == Enums_1.ViewType.Months)\r\n return 12;\r\n if (this.viewType == Enums_1.ViewType.Quarter)\r\n return 4;\r\n if (this.viewType == Enums_1.ViewType.Years)\r\n return 5;\r\n return 1;\r\n };\r\n GridLayoutCalculator.prototype.getTaskWrapperElementInfo = function (index) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.className = this.getTaskWrapperClassName(index);\r\n result.setPosition(this.getTaskWrapperPoint(index));\r\n result.setAttribute(\"task-index\", index);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskWrapperClassName = function (index) {\r\n var result = \"dx-gantt-taskWrapper\";\r\n if (this.getTask(index).isMilestone())\r\n result = \"dx-gantt-milestoneWrapper\";\r\n if (this.viewModel.items[index].selected)\r\n result += \" dx-gantt-selectedTask\";\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskWrapperPoint = function (index) {\r\n var height = this.getTaskHeight(index);\r\n var y = index * this.tickSize.height + (this.tickSize.height - height) / 2;\r\n var result = new point_1.Point(this.getPosByDate(this.getTask(index).start), y);\r\n if (this.getTask(index).isMilestone()) {\r\n var height_1 = this.getTaskHeight(index);\r\n result.x -= height_1 / 2;\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskElementInfo = function (index, textOutsideTask) {\r\n if (textOutsideTask === void 0) { textOutsideTask = false; }\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n var task = this.getTask(index);\r\n var autoCalculatedParent = this.viewModel.parentAutoCalc && this.viewModel.taskHasChildrenByIndex(index);\r\n if (!task.isMilestone()) {\r\n result.size.width = this.getTaskWidth(index);\r\n if (textOutsideTask)\r\n result.size.height = this.getTaskHeight(index);\r\n }\r\n result.className = this.getTaskClassName(index, result.size.width);\r\n if (task.color) {\r\n result.style.backgroundColor = task.color;\r\n if (autoCalculatedParent) {\r\n result.style.borderLeftColor = task.color;\r\n result.style.borderRightColor = task.color;\r\n result.style.borderTopColor = task.color;\r\n }\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskClassName = function (index, taskWidth) {\r\n var result = \"dx-gantt-task\";\r\n var task = this.getTask(index);\r\n var autoCalculatedParent = this.viewModel.parentAutoCalc && this.viewModel.taskHasChildrenByIndex(index);\r\n if (task.isMilestone())\r\n result += \" dx-gantt-milestone\";\r\n else {\r\n if (taskWidth <= this.elementSizeValues.smallTaskWidth)\r\n result += \" dx-gantt-smallTask\";\r\n if (autoCalculatedParent)\r\n result += this.getAutoCalcParentTaskClassName(task);\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getAutoCalcParentTaskClassName = function (task) {\r\n var result = \" dx-gantt-parent\";\r\n if (task.progress == 0)\r\n result += \" dx-gantt-noPrg\";\r\n if (task.progress >= 100)\r\n result += \" dx-gantt-cmpl\";\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskPoint = function (index) {\r\n var result = this.getTaskWrapperPoint(index);\r\n if (!this.getTask(index).isMilestone())\r\n result.y += this.elementSizeValues.taskWrapperTopPadding;\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskSize = function (index) {\r\n return new size_1.Size(this.getTaskWidth(index), this.getTaskHeight(index));\r\n };\r\n GridLayoutCalculator.prototype.getTaskWidth = function (index) {\r\n var task = this.getTask(index);\r\n return task.isMilestone() ? this.getTaskHeight(index) : Math.max(this.getWidthByDateRange(task.start, task.end), this.minTaskWidth);\r\n };\r\n GridLayoutCalculator.prototype.getTaskHeight = function (index) {\r\n var task = this.getTask(index);\r\n if (task.isMilestone())\r\n return this.milestoneWidth;\r\n if (this.viewModel.isTaskToCalculateByChildren(task.id))\r\n return this.parentTaskHeight;\r\n return this.taskHeight;\r\n };\r\n GridLayoutCalculator.prototype.getTask = function (index) {\r\n return this.viewModel.items[index].task;\r\n };\r\n GridLayoutCalculator.prototype.getTaskProgressElementInfo = function (index) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.className = \"dx-gantt-tPrg\";\r\n result.setSize(this.getTaskProgressSize(index));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskProgressSize = function (index) {\r\n return new size_1.Size(this.getTaskProgressWidth(index), 0);\r\n };\r\n GridLayoutCalculator.prototype.getTaskProgressWidth = function (index) {\r\n return this.getTaskWidth(index) * this.getTask(index).progress / 100;\r\n };\r\n GridLayoutCalculator.prototype.getTaskTextElementInfo = function (index, isInsideText) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.className = this.getTaskTextElementClassName(isInsideText);\r\n if (!isInsideText) {\r\n var taskX = this.getTaskPoint(index).x;\r\n if (taskX < this.elementSizeValues.outsideTaskTextDefaultWidth) {\r\n result.size.width = taskX;\r\n result.margins.left = -taskX;\r\n }\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskTextElementClassName = function (isInsideText) {\r\n var result = \"dx-gantt-taskTitle\";\r\n result += isInsideText ? \" dx-gantt-titleIn\" : \" dx-gantt-titleOut\";\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskResourcesWrapperElementInfo = function (index) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n var width = this.getTaskSize(index).width;\r\n result.className = \"dx-gantt-taskResWrapper\";\r\n result.setPosition(this.getTaskWrapperPoint(index));\r\n result.position.x = result.position.x + width;\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskResourceElementInfo = function () {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.className = \"dx-gantt-taskRes\";\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getSelectionElementInfo = function (index) {\r\n return this.getRowElementInfo(index, \"dx-gantt-sel\");\r\n };\r\n GridLayoutCalculator.prototype.getSelectionPosition = function (index) {\r\n var result = new point_1.Point(undefined, undefined);\r\n result.y = index * this.tickSize.height;\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getSelectionSize = function () {\r\n return new size_1.Size(this.tickSize.width * this.horizontalTickCount, this.tickSize.height);\r\n };\r\n GridLayoutCalculator.prototype.getHighlightRowInfo = function (index) {\r\n return this.getRowElementInfo(index, \"dx-gantt-altRow\");\r\n };\r\n GridLayoutCalculator.prototype.getRowElementInfo = function (index, className) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.className = className;\r\n result.setPosition(this.getSelectionPosition(index));\r\n result.setSize(this.getSelectionSize());\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getNoWorkingIntervalInfo = function (noWorkingDateRange) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.className = \"dx-gantt-nwi\";\r\n result.setPosition(this.getNoWorkingIntervalPosition(noWorkingDateRange.start));\r\n result.setSize(this.getNoWorkingIntervalSize(noWorkingDateRange));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getNoWorkingIntervalPosition = function (intervalStart) {\r\n var result = new point_1.Point(undefined, undefined);\r\n result.x = this.getPosByDate(intervalStart);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getNoWorkingIntervalSize = function (noWorkingInterval) {\r\n return new size_1.Size(this.getWidthByDateRange(noWorkingInterval.start, noWorkingInterval.end), this.getVerticalGridLineHeight());\r\n };\r\n GridLayoutCalculator.prototype.getVerticalGridLineHeight = function () {\r\n return Math.max(this.visibleTaskAreaSize.height - this.scrollBarHeight, this.tickSize.height * this.verticalTickCount);\r\n };\r\n GridLayoutCalculator.prototype.getConnectorInfo = function (id, predessorIndex, successorIndex, connectorType) {\r\n var result = new Array();\r\n var connectorPoints = this.getConnectorPoints(predessorIndex, successorIndex, connectorType);\r\n for (var i = 0; i < connectorPoints.length - 1; i++)\r\n result.push(this.getConnectorLineInfo(id, connectorPoints[i], connectorPoints[i + 1], i == 0 || i == connectorPoints.length - 2));\r\n result.push(this.getArrowInfo(id, connectorPoints, result, predessorIndex, successorIndex));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorLineInfo = function (id, startPoint, endPoint, isEdgeLine) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n var isVertical = startPoint.x == endPoint.x;\r\n result.className = this.getConnectorClassName(isVertical);\r\n result.setPosition(this.getConnectorPosition(startPoint, endPoint));\r\n result.setSize(this.getConnectorSize(startPoint, endPoint, isVertical, isEdgeLine));\r\n result.setAttribute(\"dependency-id\", id);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorClassName = function (isVertical) {\r\n return isVertical ? GridLayoutCalculator.CLASSNAMES.CONNECTOR_VERTICAL : GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPosition = function (startPoint, endPoint) {\r\n return new point_1.Point(Math.min(startPoint.x, endPoint.x), Math.min(startPoint.y, endPoint.y));\r\n };\r\n GridLayoutCalculator.prototype.getConnectorSize = function (startPoint, endPoint, isVertical, isEdgeLine) {\r\n var result = new size_1.Size(0, 0);\r\n var sizeCorrection = isEdgeLine ? 0 : 1;\r\n if (isVertical)\r\n result.height = Math.abs(endPoint.y - startPoint.y) + sizeCorrection;\r\n else\r\n result.width = Math.abs(endPoint.x - startPoint.x) + sizeCorrection;\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getArrowInfo = function (id, connectorPoints, connectorLines, predessorIndex, successorIndex) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n var lineInfo = this.findArrowLineInfo(connectorLines, predessorIndex, successorIndex);\r\n var arrowPosition = this.getArrowPosition(connectorPoints, predessorIndex, successorIndex);\r\n result.className = this.getArrowClassName(arrowPosition);\r\n result.setPosition(this.getArrowPoint(lineInfo, arrowPosition));\r\n result.setAttribute(\"dependency-id\", id);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.findArrowLineInfo = function (connectorLines, predessorIndex, successorIndex) {\r\n var arrowLineIndex = predessorIndex < successorIndex ? connectorLines.length - 1 : 0;\r\n return connectorLines[arrowLineIndex];\r\n };\r\n GridLayoutCalculator.prototype.getArrowPosition = function (connectorPoints, predessorIndex, successorIndex) {\r\n var prevLastPoint = connectorPoints[predessorIndex < successorIndex ? connectorPoints.length - 2 : 1];\r\n var lastPoint = connectorPoints[predessorIndex < successorIndex ? connectorPoints.length - 1 : 0];\r\n if (prevLastPoint.x == lastPoint.x)\r\n return prevLastPoint.y > lastPoint.y ? Enums_1.Position.Top : Enums_1.Position.Bottom;\r\n return prevLastPoint.x > lastPoint.x ? Enums_1.Position.Left : Enums_1.Position.Right;\r\n };\r\n GridLayoutCalculator.prototype.getArrowClassName = function (arrowPosition) {\r\n var result = \"dx-gantt-arrow\";\r\n switch (arrowPosition) {\r\n case Enums_1.Position.Left:\r\n result += \" dx-gantt-LA\";\r\n break;\r\n case Enums_1.Position.Top:\r\n result += \" dx-gantt-TA\";\r\n break;\r\n case Enums_1.Position.Right:\r\n result += \" dx-gantt-RA\";\r\n break;\r\n case Enums_1.Position.Bottom:\r\n result += \" dx-gantt-BA\";\r\n break;\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getArrowPoint = function (lineInfo, arrowPosition) {\r\n return new point_1.Point(this.getArrowX(lineInfo, arrowPosition), this.getArrowY(lineInfo, arrowPosition));\r\n };\r\n GridLayoutCalculator.prototype.getArrowX = function (lineInfo, arrowPosition) {\r\n switch (arrowPosition) {\r\n case Enums_1.Position.Left:\r\n return lineInfo.position.x - this.arrowSize.width / 2;\r\n case Enums_1.Position.Right:\r\n return lineInfo.position.x + lineInfo.size.width - this.arrowSize.width / 2;\r\n case Enums_1.Position.Top:\r\n case Enums_1.Position.Bottom:\r\n return lineInfo.position.x - (this.arrowSize.width - this.lineThickness) / 2;\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getArrowY = function (lineInfo, arrowPosition) {\r\n switch (arrowPosition) {\r\n case Enums_1.Position.Top:\r\n return lineInfo.position.y - this.arrowSize.height / 2;\r\n case Enums_1.Position.Bottom:\r\n return lineInfo.position.y + lineInfo.size.height - this.arrowSize.height / 2;\r\n case Enums_1.Position.Left:\r\n case Enums_1.Position.Right:\r\n return lineInfo.position.y - (this.arrowSize.height - this.lineThickness) / 2;\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getPosByDate = function (date) {\r\n return this.getWidthByDateRange(this.range.start, date);\r\n };\r\n GridLayoutCalculator.prototype.getWidthByDateRange = function (start, end) {\r\n return this.getRangeTickCount(start, end) * this.tickSize.width;\r\n };\r\n GridLayoutCalculator.prototype.getRangeTickCount = function (start, end) {\r\n if (this.viewType == Enums_1.ViewType.Months)\r\n return this.getRangeTickCountInMonthsViewType(start, end);\r\n if (this.viewType == Enums_1.ViewType.Quarter)\r\n return this.getRangeTickCountInQuarterViewType(start, end);\r\n return (end.getTime() - start.getTime()) / this.tickTimeSpan;\r\n };\r\n GridLayoutCalculator.prototype.getRangeTickCountInMonthsViewType = function (start, end) {\r\n var startMonthStartDate = new Date(start.getFullYear(), start.getMonth(), 1);\r\n var endMonthStartDate = new Date(end.getFullYear(), end.getMonth(), 1);\r\n var monthOffset = Utils_1.DateUtils.getOffsetInMonths(startMonthStartDate, endMonthStartDate);\r\n var endFromMonthStartDateOffset = end.getTime() - endMonthStartDate.getTime();\r\n var startFromMonthStartDateOffset = start.getTime() - startMonthStartDate.getTime();\r\n return monthOffset + (endFromMonthStartDateOffset - startFromMonthStartDateOffset) / Utils_1.DateUtils.msPerMonth;\r\n };\r\n GridLayoutCalculator.prototype.getRangeTickCountInQuarterViewType = function (start, end) {\r\n var startQuarterStartDate = new Date(start.getFullYear(), Math.floor(start.getMonth() / 3) * 3, 1);\r\n var endQuarterStartDate = new Date(end.getFullYear(), Math.floor(end.getMonth() / 3) * 3, 1);\r\n var quarterOffset = Utils_1.DateUtils.getOffsetInQuarters(startQuarterStartDate, endQuarterStartDate);\r\n var endFromQuarterStartDateOffset = end.getTime() - endQuarterStartDate.getTime();\r\n var startFromQuarterStartDateOffset = start.getTime() - startQuarterStartDate.getTime();\r\n return quarterOffset + (endFromQuarterStartDateOffset - startFromQuarterStartDateOffset) / (Utils_1.DateUtils.msPerMonth * 3);\r\n };\r\n GridLayoutCalculator.prototype.getDateByPos = function (position) {\r\n var preResult = position / this.tickSize.width;\r\n var start = new Date(this.range.start);\r\n if (this.viewType == Enums_1.ViewType.Months || this.viewType == Enums_1.ViewType.Quarter) {\r\n var monthFromStart = Math.floor(preResult);\r\n start = new Date(start.setMonth(start.getMonth() + (this.viewType == Enums_1.ViewType.Months ? monthFromStart : monthFromStart * 3)));\r\n preResult = (position - this.getPosByDate(start)) / this.tickSize.width;\r\n }\r\n var time = preResult * this.tickTimeSpan + start.getTime();\r\n var result = new Date();\r\n result.setTime(time);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTotalTickCount = function () {\r\n return this.getRangeTickCount(this.range.start, this.range.end);\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints = function (predessorIndex, successorIndex, connectorType) {\r\n switch (connectorType) {\r\n case Dependency_1.DependencyType.FS:\r\n return this.getFinishToStartConnectorPoints(predessorIndex, successorIndex);\r\n case Dependency_1.DependencyType.SF:\r\n return this.getStartToFinishConnectorPoints(predessorIndex, successorIndex);\r\n case Dependency_1.DependencyType.SS:\r\n return this.getStartToStartConnectorPoints(predessorIndex, successorIndex);\r\n case Dependency_1.DependencyType.FF:\r\n return this.getFinishToFinishConnectorPoints(predessorIndex, successorIndex);\r\n default:\r\n return new Array();\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getFinishToStartConnectorPoints = function (predessorIndex, successorIndex) {\r\n if (predessorIndex < successorIndex) {\r\n if (this.getTask(predessorIndex).end <= this.getTask(successorIndex).start)\r\n return this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskTopSide(predessorIndex, successorIndex, false);\r\n return this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskLeftSide(predessorIndex, successorIndex, false);\r\n }\r\n if (this.getTask(predessorIndex).end <= this.getTask(successorIndex).start)\r\n return this.getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskRightSide(successorIndex, predessorIndex, false);\r\n return this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskRightSide(successorIndex, predessorIndex, true);\r\n };\r\n GridLayoutCalculator.prototype.getFinishToFinishConnectorPoints = function (predessorIndex, successorIndex) {\r\n if (predessorIndex < successorIndex)\r\n return this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide(predessorIndex, successorIndex);\r\n return this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide(successorIndex, predessorIndex);\r\n };\r\n GridLayoutCalculator.prototype.getStartToStartConnectorPoints = function (predessorIndex, successorIndex) {\r\n if (predessorIndex < successorIndex)\r\n return this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide(predessorIndex, successorIndex);\r\n return this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide(successorIndex, predessorIndex);\r\n };\r\n GridLayoutCalculator.prototype.getStartToFinishConnectorPoints = function (predessorIndex, successorIndex) {\r\n if (predessorIndex < successorIndex) {\r\n if (this.getTask(predessorIndex).start >= this.getTask(successorIndex).end)\r\n return this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskTopSide(predessorIndex, successorIndex, true);\r\n return this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskRightSide(predessorIndex, successorIndex, false);\r\n }\r\n if (this.getTask(predessorIndex).start >= this.getTask(successorIndex).end)\r\n return this.getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskLeftSide(successorIndex, predessorIndex, true);\r\n return this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskLeftSide(successorIndex, predessorIndex, true);\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskTopSide = function (topTaskIndex, bottomTaskIndex, shiftEndPointToRight) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskRightCenter = this.getTaskRightCenter(topTaskPoint, topTaskIndex);\r\n var isBottomMilestone = this.getTask(bottomTaskIndex).isMilestone();\r\n var bottomTaskTopCenter = this.getTaskTopCenter(bottomTaskPoint, bottomTaskIndex);\r\n var endPointIndent = shiftEndPointToRight ? this.getTaskWidth(bottomTaskIndex) - this.minLineLength : this.minLineLength;\r\n result.push(new point_1.Point(Math.floor(topTaskRightCenter.x), Math.floor(topTaskRightCenter.y)));\r\n result.push(new point_1.Point(Math.floor(isBottomMilestone ? bottomTaskTopCenter.x : bottomTaskPoint.x + endPointIndent), Math.floor(result[0].y)));\r\n result.push(new point_1.Point(Math.floor(result[1].x), Math.floor(bottomTaskTopCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide = function (topTaskIndex, bottomTaskIndex) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskRightCenter = this.getTaskRightCenter(topTaskPoint, topTaskIndex);\r\n var bottomTaskRightCenter = this.getTaskRightCenter(bottomTaskPoint, bottomTaskIndex);\r\n result.push(new point_1.Point(Math.floor(topTaskRightCenter.x), Math.floor(topTaskRightCenter.y)));\r\n result.push(new point_1.Point(Math.floor(Math.max(topTaskRightCenter.x, bottomTaskRightCenter.x) + this.minLineLength), Math.floor(result[0].y)));\r\n result.push(new point_1.Point(Math.floor(result[1].x), Math.floor(bottomTaskRightCenter.y)));\r\n result.push(new point_1.Point(Math.floor(bottomTaskRightCenter.x), Math.floor(bottomTaskRightCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskLeftSide = function (topTaskIndex, bottomTaskIndex, shiftToTop) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskRightCenter = this.getTaskRightCenter(topTaskPoint, topTaskIndex);\r\n var topTaskBottomCenter = this.getTaskBottomCenter(topTaskPoint, topTaskIndex);\r\n var bottomTaskLeftCenter = this.getTaskLeftCenter(bottomTaskPoint, bottomTaskIndex);\r\n var bottomTaskTopCenter = this.getTaskTopCenter(bottomTaskPoint, bottomTaskIndex);\r\n result.push(new point_1.Point(Math.floor(topTaskRightCenter.x), Math.floor(topTaskRightCenter.y)));\r\n result.push(new point_1.Point(Math.floor(result[0].x + this.minLineLength), Math.floor(result[0].y)));\r\n result.push(new point_1.Point(Math.floor(result[1].x), Math.floor(shiftToTop ?\r\n topTaskBottomCenter.y + this.minConnectorSpaceFromTask\r\n : bottomTaskTopCenter.y - this.minConnectorSpaceFromTask)));\r\n result.push(new point_1.Point(Math.floor(bottomTaskLeftCenter.x - this.minLineLength), Math.floor(result[2].y)));\r\n result.push(new point_1.Point(Math.floor(result[3].x), Math.floor(bottomTaskLeftCenter.y)));\r\n result.push(new point_1.Point(Math.floor(bottomTaskLeftCenter.x), Math.floor(bottomTaskLeftCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskRightSide = function (topTaskIndex, bottomTaskIndex, shiftStartPointToRight) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskBottomCenter = this.getTaskBottomCenter(topTaskPoint, topTaskIndex);\r\n var isTopMilestone = this.getTask(topTaskIndex).isMilestone();\r\n var bottomTaskRightCenter = this.getTaskRightCenter(bottomTaskPoint, bottomTaskIndex);\r\n var startPointIndent = shiftStartPointToRight ? this.getTaskWidth(topTaskIndex) - this.minLineLength : this.minLineLength;\r\n result.push(new point_1.Point(Math.floor(isTopMilestone ? topTaskBottomCenter.x : topTaskPoint.x + startPointIndent), Math.floor(topTaskBottomCenter.y)));\r\n result.push(new point_1.Point(Math.floor(result[0].x), Math.floor(bottomTaskRightCenter.y)));\r\n result.push(new point_1.Point(Math.floor(bottomTaskRightCenter.x), Math.floor(bottomTaskRightCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskLeftSide = function (topTaskIndex, bottomTaskIndex, shiftStartPointToRight) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskBottomCenter = this.getTaskBottomCenter(topTaskPoint, topTaskIndex);\r\n var isTopMilestone = this.getTask(topTaskIndex).isMilestone();\r\n var bottomTaskLeftCenter = this.getTaskLeftCenter(bottomTaskPoint, bottomTaskIndex);\r\n var startPointIndent = shiftStartPointToRight ? this.getTaskWidth(topTaskIndex) - this.minLineLength : this.minLineLength;\r\n result.push(new point_1.Point(Math.floor(isTopMilestone ? topTaskBottomCenter.x : topTaskPoint.x + startPointIndent), Math.floor(topTaskBottomCenter.y)));\r\n result.push(new point_1.Point(Math.floor(result[0].x), Math.floor(bottomTaskLeftCenter.y)));\r\n result.push(new point_1.Point(Math.floor(bottomTaskLeftCenter.x), Math.floor(bottomTaskLeftCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskTopSide = function (topTaskIndex, bottomTaskIndex, shiftEndPointToRight) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskLeftCenter = this.getTaskLeftCenter(topTaskPoint, topTaskIndex);\r\n var bottomTaskTopCenter = this.getTaskTopCenter(bottomTaskPoint, bottomTaskIndex);\r\n var isBottomMilestone = this.getTask(bottomTaskIndex).isMilestone();\r\n var endPointIndent = shiftEndPointToRight ? this.getTaskWidth(bottomTaskIndex) - this.minLineLength : this.minLineLength;\r\n result.push(new point_1.Point(Math.floor(topTaskLeftCenter.x), Math.floor(topTaskLeftCenter.y)));\r\n result.push(new point_1.Point(Math.floor(isBottomMilestone ? bottomTaskTopCenter.x : bottomTaskPoint.x + endPointIndent), Math.floor(result[0].y)));\r\n result.push(new point_1.Point(Math.floor(result[1].x), Math.floor(bottomTaskTopCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskRightSide = function (topTaskIndex, bottomTaskIndex, shiftToTop) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskLeftCenter = this.getTaskLeftCenter(topTaskPoint, topTaskIndex);\r\n var topTaskBottomCenter = this.getTaskBottomCenter(topTaskPoint, topTaskIndex);\r\n var bottomTaskRightCenter = this.getTaskRightCenter(bottomTaskPoint, bottomTaskIndex);\r\n var bottomTaskTopCenter = this.getTaskTopCenter(bottomTaskPoint, bottomTaskIndex);\r\n result.push(new point_1.Point(Math.floor(topTaskLeftCenter.x), topTaskLeftCenter.y));\r\n result.push(new point_1.Point(Math.floor(result[0].x - this.minLineLength), result[0].y));\r\n result.push(new point_1.Point(Math.floor(result[1].x), Math.floor(shiftToTop ?\r\n topTaskBottomCenter.y + this.minConnectorSpaceFromTask\r\n : bottomTaskTopCenter.y - this.minConnectorSpaceFromTask)));\r\n result.push(new point_1.Point(Math.floor(bottomTaskRightCenter.x + this.minLineLength), Math.floor(result[2].y)));\r\n result.push(new point_1.Point(Math.floor(result[3].x), Math.floor(bottomTaskRightCenter.y)));\r\n result.push(new point_1.Point(Math.floor(bottomTaskRightCenter.x), Math.floor(bottomTaskRightCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide = function (topTaskIndex, bottomTaskIndex) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskLeftCenter = this.getTaskLeftCenter(topTaskPoint, topTaskIndex);\r\n var bottomTaskLeftCenter = this.getTaskLeftCenter(bottomTaskPoint, bottomTaskIndex);\r\n result.push(new point_1.Point(Math.floor(topTaskLeftCenter.x), Math.floor(topTaskLeftCenter.y)));\r\n result.push(new point_1.Point(Math.floor(Math.min(topTaskLeftCenter.x, bottomTaskLeftCenter.x) - this.minLineLength), Math.floor(result[0].y)));\r\n result.push(new point_1.Point(Math.floor(result[1].x), Math.floor(bottomTaskLeftCenter.y)));\r\n result.push(new point_1.Point(Math.floor(bottomTaskLeftCenter.x), Math.floor(bottomTaskLeftCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskLeftCenter = function (taskPoint, index) {\r\n return new point_1.Point(taskPoint.x - this.getTaskEdgeCorrection(index), taskPoint.y + this.getTaskHeight(index) / 2);\r\n };\r\n GridLayoutCalculator.prototype.getTaskRightCenter = function (taskPoint, index) {\r\n return new point_1.Point(taskPoint.x + this.getTaskWidth(index) + this.getTaskEdgeCorrection(index), taskPoint.y + this.getTaskHeight(index) / 2);\r\n };\r\n GridLayoutCalculator.prototype.getTaskTopCenter = function (taskPoint, index) {\r\n return new point_1.Point(taskPoint.x + this.getTaskWidth(index) / 2, taskPoint.y - this.getTaskEdgeCorrection(index));\r\n };\r\n GridLayoutCalculator.prototype.getTaskBottomCenter = function (taskPoint, index) {\r\n return new point_1.Point(taskPoint.x + this.getTaskWidth(index) / 2, taskPoint.y + this.getTaskHeight(index) + this.getTaskEdgeCorrection(index));\r\n };\r\n GridLayoutCalculator.prototype.getTaskEdgeCorrection = function (index) {\r\n var isMilestone = this.viewModel.items[index].task.isMilestone();\r\n return isMilestone ? this.getTaskHeight(index) * (Math.sqrt(2) - 1) / 2 : 0;\r\n };\r\n GridLayoutCalculator.prototype.getRenderedRowColumnIndices = function (scrollPos, isVertical) {\r\n var visibleAreaSizeValue = isVertical ? this.visibleTaskAreaSize.height : this.visibleTaskAreaSize.width;\r\n var tickSizeValue = isVertical ? this.tickSize.height : this.tickSize.width;\r\n var tickCount = isVertical ? this.verticalTickCount : this.horizontalTickCount;\r\n var firstVisibleIndex = this.getFirstVisibleGridCellIndex(scrollPos, tickSizeValue);\r\n var lastVisibleIndex = this.getLastVisibleGridCellIndex(scrollPos, tickSizeValue, visibleAreaSizeValue, tickCount);\r\n var result = new Array();\r\n for (var i = firstVisibleIndex; i <= lastVisibleIndex; i++)\r\n result.push(i);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getRenderedScaleItemIndices = function (scaleType, renderedColIndices) {\r\n var scaleItemColSpan = this.getScaleItemColSpan(scaleType);\r\n var firstVisibleIndex = Math.floor(renderedColIndices[0] / scaleItemColSpan);\r\n var lastVisibleIndex = Math.floor(renderedColIndices[renderedColIndices.length - 1] / scaleItemColSpan);\r\n var result = new Array();\r\n for (var i = firstVisibleIndex; i <= lastVisibleIndex; i++)\r\n result.push(i);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getFirstVisibleGridCellIndex = function (scrollPos, tickSizeValue) {\r\n var result = Math.floor(scrollPos / tickSizeValue);\r\n result = Math.max(result - 10, 0);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getLastVisibleGridCellIndex = function (scrollPos, tickSizeValue, visibleAreaSizeValue, tickCount) {\r\n var result = Math.floor((scrollPos + visibleAreaSizeValue) / tickSizeValue);\r\n result = Math.min(result + 10, tickCount - 1);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.createTileToConnectorLinesMap = function () {\r\n this.tileToDependencyMap = [];\r\n for (var i = 0; i < this.viewModel.items.length; i++)\r\n for (var j = 0; j < this.viewModel.items[i].dependencies.length; j++)\r\n this.createConnecotInfo(this.viewModel.items[i].dependencies[j], this.viewModel.items[i].visibleIndex);\r\n };\r\n GridLayoutCalculator.prototype.updateTileToConnectorLinesMap = function (dependencyId) {\r\n this.tileToDependencyMap.forEach(function (map, index, tileToDependencyMap) {\r\n tileToDependencyMap[index] = map.filter(function (info) { return info.attr[\"dependency-id\"] != dependencyId; });\r\n });\r\n var result = [];\r\n var item = this.viewModel.items.filter(function (item) { return item.dependencies.filter(function (d) { return d.id == dependencyId; }).length > 0; })[0];\r\n if (item) {\r\n var dependency = item.dependencies.filter(function (d) { return d.id === dependencyId; })[0];\r\n result = this.createConnecotInfo(dependency, item.visibleIndex);\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.createConnecotInfo = function (dependencyInfo, successorIndex) {\r\n var _this = this;\r\n var predessorIndex = dependencyInfo.predecessor.visibleIndex;\r\n var type = dependencyInfo.type;\r\n var id = dependencyInfo.id;\r\n var connectorInfo = this.getConnectorInfo(id, predessorIndex, successorIndex, type);\r\n connectorInfo.forEach(function (connectorLine) {\r\n _this.addElementInfoToTileMap(connectorLine, _this.tileToDependencyMap, true);\r\n });\r\n return connectorInfo;\r\n };\r\n GridLayoutCalculator.prototype.createTileToNonWorkingIntervalsMap = function () {\r\n this.tileToNoWorkingIntervalsMap = [];\r\n for (var i = 0; i < this.viewModel.noWorkingIntervals.length; i++) {\r\n var noWorkingDateRange = this.getAdjustedNoWorkingInterval(this.viewModel.noWorkingIntervals[i]);\r\n if (!noWorkingDateRange)\r\n continue;\r\n var noWorkingIntervalInfo = this.getNoWorkingIntervalInfo(noWorkingDateRange);\r\n this.addElementInfoToTileMap(noWorkingIntervalInfo, this.tileToNoWorkingIntervalsMap, false);\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getAdjustedNoWorkingInterval = function (modelInterval) {\r\n if (modelInterval.end.getTime() - modelInterval.start.getTime() < this.tickTimeSpan - 1)\r\n return null;\r\n return new DateRange_1.DateRange(Utils_1.DateUtils.getNearestScaleTickDate(modelInterval.start, this.range, this.tickTimeSpan, this.viewType), Utils_1.DateUtils.getNearestScaleTickDate(modelInterval.end, this.range, this.tickTimeSpan, this.viewType));\r\n };\r\n GridLayoutCalculator.prototype.addElementInfoToTileMap = function (info, map, isVerticalTile) {\r\n var infoPointValue = isVerticalTile ? info.position.y : info.position.x;\r\n var infoSizeValue = isVerticalTile ? info.size.height : info.size.width;\r\n var tileSizeValue = (isVerticalTile ? this.visibleTaskAreaSize.height : this.visibleTaskAreaSize.width) * 2;\r\n var firstTileIndex = Math.floor(infoPointValue / tileSizeValue);\r\n var lastTileIndex = Math.floor((infoPointValue + infoSizeValue) / tileSizeValue);\r\n for (var i = firstTileIndex; i <= lastTileIndex; i++) {\r\n if (!map[i])\r\n map[i] = new Array();\r\n map[i].push(info);\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getRenderedConnectorLines = function (scrollPos) {\r\n return this.getElementsInRenderedTiles(this.tileToDependencyMap, true, scrollPos);\r\n };\r\n GridLayoutCalculator.prototype.getRenderedNoWorkingIntervals = function (scrollPos) {\r\n return this.getElementsInRenderedTiles(this.tileToNoWorkingIntervalsMap, false, scrollPos);\r\n };\r\n GridLayoutCalculator.prototype.getRenderedStripLines = function (settings) {\r\n var result = new Array();\r\n var stripLines = settings.stripLines.map(function (t) { return t.clone(); });\r\n if (settings.showCurrentTime)\r\n stripLines.push(new Settings_1.StripLine(new Date(), null, settings.currentTimeTitle, settings.currentTimeCssClass, true));\r\n for (var i = 0, stripLine = void 0; stripLine = stripLines[i]; i++) {\r\n var start = Utils_1.DateUtils.parse(stripLine.start);\r\n var end = stripLine.end ? Utils_1.DateUtils.parse(stripLine.end) : null;\r\n if (start >= this.range.start && start <= this.range.end || (end && end >= this.range.start && end <= this.range.end)) {\r\n var renderedStart = start > this.range.start ? start : this.range.start;\r\n var info = new GridElementInfo_1.GridElementInfo();\r\n info.size.height = this.getVerticalGridLineHeight();\r\n info.position.x = this.getPosByDate(renderedStart);\r\n info.size.width = end ? this.getWidthByDateRange(renderedStart, end < this.range.end ? end : this.range.end) : 0;\r\n info.className = stripLine.isCurrent ? \"dx-gantt-tc\" : end ? \"dx-gantt-ti\" : \"dx-gantt-tm\";\r\n info.className += stripLine.cssClass ? \" \" + stripLine.cssClass : \"\";\r\n info.attr.title = stripLine.title;\r\n result.push(info);\r\n }\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getElementsInRenderedTiles = function (map, isVerticalTile, scrollPos) {\r\n var result = new Array();\r\n var visibleAreaSizeValue = isVerticalTile ? this.visibleTaskAreaSize.height : this.visibleTaskAreaSize.width;\r\n if (visibleAreaSizeValue > 0) {\r\n var firstVisibleTileIndex = Math.floor(scrollPos / (visibleAreaSizeValue * 2));\r\n var lastVisibleTileIndex = Math.floor((scrollPos + visibleAreaSizeValue) / (visibleAreaSizeValue * 2));\r\n for (var i = firstVisibleTileIndex; i <= lastVisibleTileIndex; i++) {\r\n if (!map[i])\r\n continue;\r\n map[i].forEach(function (info) {\r\n if (result.indexOf(info) == -1)\r\n result.push(info);\r\n });\r\n }\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.CLASSNAMES = {\r\n CONNECTOR_VERTICAL: \"dx-gantt-conn-v\",\r\n CONNECTOR_HORIZONTAL: \"dx-gantt-conn-h\"\r\n };\r\n return GridLayoutCalculator;\r\n}());\r\nexports.GridLayoutCalculator = GridLayoutCalculator;\r\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskPropertyManipulator = exports.TaskPropertiesManipulator = exports.BaseManipulator = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItemState_1 = __webpack_require__(46);\r\nvar DateRange_1 = __webpack_require__(9);\r\nvar BaseManipulator = (function () {\r\n function BaseManipulator(viewModel, dispatcher) {\r\n this.viewModel = viewModel;\r\n this.dispatcher = dispatcher;\r\n }\r\n BaseManipulator.prototype.getErrorCallback = function () {\r\n return this.viewModel.getDataUpdateErrorCallback();\r\n };\r\n return BaseManipulator;\r\n}());\r\nexports.BaseManipulator = BaseManipulator;\r\nvar TaskPropertiesManipulator = (function (_super) {\r\n tslib_1.__extends(TaskPropertiesManipulator, _super);\r\n function TaskPropertiesManipulator(viewModel, dispatcher) {\r\n var _this = _super.call(this, viewModel, dispatcher) || this;\r\n _this.title = new TaskTitleManipulator(viewModel, dispatcher);\r\n _this.description = new TaskDescriptionManipulator(viewModel, dispatcher);\r\n _this.progress = new TaskProgressManipulator(viewModel, dispatcher);\r\n _this.start = new TaskStartDateManipulator(viewModel, dispatcher);\r\n _this.end = new TaskEndDateManipulator(viewModel, dispatcher);\r\n _this.move = new TaskMoveManipulator(viewModel, dispatcher);\r\n _this.color = new TaskColorManipulator(viewModel, dispatcher);\r\n return _this;\r\n }\r\n return TaskPropertiesManipulator;\r\n}(BaseManipulator));\r\nexports.TaskPropertiesManipulator = TaskPropertiesManipulator;\r\nvar TaskPropertyManipulator = (function (_super) {\r\n tslib_1.__extends(TaskPropertyManipulator, _super);\r\n function TaskPropertyManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskPropertyManipulator.prototype.setValue = function (id, newValue) {\r\n var task = this.viewModel.tasks.getItemById(id);\r\n var oldState = new HistoryItemState_1.HistoryItemState(id, this.getPropertyValue(task));\r\n this.setPropertyValue(task, newValue);\r\n var viewItem = this.viewModel.findItem(id);\r\n if (viewItem)\r\n this.viewModel.owner.recreateTaskElement(viewItem.visibleIndex);\r\n return oldState;\r\n };\r\n TaskPropertyManipulator.prototype.restoreValue = function (state) {\r\n if (!state)\r\n return;\r\n var task = this.viewModel.tasks.getItemById(state.id);\r\n this.setPropertyValue(task, state.value);\r\n var viewItem = this.viewModel.findItem(state.id);\r\n if (viewItem)\r\n this.viewModel.owner.recreateTaskElement(viewItem.visibleIndex);\r\n };\r\n return TaskPropertyManipulator;\r\n}(BaseManipulator));\r\nexports.TaskPropertyManipulator = TaskPropertyManipulator;\r\nvar TaskTitleManipulator = (function (_super) {\r\n tslib_1.__extends(TaskTitleManipulator, _super);\r\n function TaskTitleManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskTitleManipulator.prototype.getPropertyValue = function (task) {\r\n return task.title;\r\n };\r\n TaskTitleManipulator.prototype.setPropertyValue = function (task, value) {\r\n task.title = value;\r\n this.dispatcher.notifyTaskTitleChanged(task.id, value, this.getErrorCallback());\r\n };\r\n return TaskTitleManipulator;\r\n}(TaskPropertyManipulator));\r\nvar TaskDescriptionManipulator = (function (_super) {\r\n tslib_1.__extends(TaskDescriptionManipulator, _super);\r\n function TaskDescriptionManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskDescriptionManipulator.prototype.getPropertyValue = function (task) {\r\n return task.description;\r\n };\r\n TaskDescriptionManipulator.prototype.setPropertyValue = function (task, value) {\r\n task.description = value;\r\n this.dispatcher.notifyTaskDescriptionChanged(task.id, value, this.getErrorCallback());\r\n };\r\n return TaskDescriptionManipulator;\r\n}(TaskPropertyManipulator));\r\nvar TaskProgressManipulator = (function (_super) {\r\n tslib_1.__extends(TaskProgressManipulator, _super);\r\n function TaskProgressManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskProgressManipulator.prototype.getPropertyValue = function (task) {\r\n return task.progress;\r\n };\r\n TaskProgressManipulator.prototype.setPropertyValue = function (task, value) {\r\n value = value < 0 ? 0 : value > 100 ? 100 : value;\r\n task.progress = value;\r\n this.dispatcher.notifyTaskProgressChanged(task.id, value, this.getErrorCallback());\r\n };\r\n return TaskProgressManipulator;\r\n}(TaskPropertyManipulator));\r\nvar TaskStartDateManipulator = (function (_super) {\r\n tslib_1.__extends(TaskStartDateManipulator, _super);\r\n function TaskStartDateManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskStartDateManipulator.prototype.getPropertyValue = function (task) {\r\n return task.start;\r\n };\r\n TaskStartDateManipulator.prototype.setPropertyValue = function (task, value) {\r\n task.start = value;\r\n this.dispatcher.notifyTaskStartChanged(task.id, value, this.getErrorCallback());\r\n };\r\n return TaskStartDateManipulator;\r\n}(TaskPropertyManipulator));\r\nvar TaskEndDateManipulator = (function (_super) {\r\n tslib_1.__extends(TaskEndDateManipulator, _super);\r\n function TaskEndDateManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskEndDateManipulator.prototype.getPropertyValue = function (task) {\r\n return task.end;\r\n };\r\n TaskEndDateManipulator.prototype.setPropertyValue = function (task, value) {\r\n task.end = value;\r\n this.dispatcher.notifyTaskEndChanged(task.id, value, this.getErrorCallback());\r\n };\r\n return TaskEndDateManipulator;\r\n}(TaskPropertyManipulator));\r\nvar TaskMoveManipulator = (function (_super) {\r\n tslib_1.__extends(TaskMoveManipulator, _super);\r\n function TaskMoveManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskMoveManipulator.prototype.getPropertyValue = function (task) {\r\n return new DateRange_1.DateRange(task.start, task.end);\r\n };\r\n TaskMoveManipulator.prototype.setPropertyValue = function (task, value) {\r\n task.start = value.start;\r\n task.end = value.end;\r\n this.dispatcher.notifyTaskStartChanged(task.id, value.start, this.getErrorCallback());\r\n this.dispatcher.notifyTaskEndChanged(task.id, value.end, this.getErrorCallback());\r\n };\r\n return TaskMoveManipulator;\r\n}(TaskPropertyManipulator));\r\nvar TaskColorManipulator = (function (_super) {\r\n tslib_1.__extends(TaskColorManipulator, _super);\r\n function TaskColorManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskColorManipulator.prototype.getPropertyValue = function (task) {\r\n return task.color;\r\n };\r\n TaskColorManipulator.prototype.setPropertyValue = function (task, value) {\r\n task.color = value;\r\n this.dispatcher.notifyTaskColorChanged(task.id, value, this.getErrorCallback());\r\n };\r\n return TaskColorManipulator;\r\n}(TaskPropertyManipulator));\r\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HandlerStateBase = void 0;\r\nvar point_1 = __webpack_require__(4);\r\nvar dom_1 = __webpack_require__(3);\r\nvar HandlerStateBase = (function () {\r\n function HandlerStateBase(handler) {\r\n this.handler = handler;\r\n }\r\n HandlerStateBase.prototype.start = function () { };\r\n HandlerStateBase.prototype.finish = function () { };\r\n HandlerStateBase.prototype.getRelativePos = function (absolutePos) {\r\n var taskAreaX = dom_1.DomUtils.getAbsolutePositionX(this.handler.control.taskArea);\r\n var taskAreaY = dom_1.DomUtils.getAbsolutePositionY(this.handler.control.taskArea);\r\n return new point_1.Point(absolutePos.x - taskAreaX, absolutePos.y - taskAreaY);\r\n };\r\n return HandlerStateBase;\r\n}());\r\nexports.HandlerStateBase = HandlerStateBase;\r\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseArguments = void 0;\r\nvar BaseArguments = (function () {\r\n function BaseArguments(key) {\r\n this.cancel = false;\r\n this.values = {};\r\n this.key = key;\r\n }\r\n return BaseArguments;\r\n}());\r\nexports.BaseArguments = BaseArguments;\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RemoveDependencyHistoryItem = exports.InsertDependencyHistoryItem = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(12);\r\nvar InsertDependencyHistoryItem = (function (_super) {\r\n tslib_1.__extends(InsertDependencyHistoryItem, _super);\r\n function InsertDependencyHistoryItem(modelManipulator, predecessorId, successorId, type) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.predecessorId = predecessorId;\r\n _this.successorId = successorId;\r\n _this.type = type;\r\n return _this;\r\n }\r\n InsertDependencyHistoryItem.prototype.redo = function () {\r\n this.dependency = this.modelManipulator.dependency.insertDependency(this.predecessorId, this.successorId, this.type, this.dependency ? this.dependency.internalId : null);\r\n };\r\n InsertDependencyHistoryItem.prototype.undo = function () {\r\n this.modelManipulator.dependency.removeDependency(this.dependency.internalId);\r\n };\r\n return InsertDependencyHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.InsertDependencyHistoryItem = InsertDependencyHistoryItem;\r\nvar RemoveDependencyHistoryItem = (function (_super) {\r\n tslib_1.__extends(RemoveDependencyHistoryItem, _super);\r\n function RemoveDependencyHistoryItem(modelManipulator, dependencyId) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.dependencyId = dependencyId;\r\n return _this;\r\n }\r\n RemoveDependencyHistoryItem.prototype.redo = function () {\r\n this.dependency = this.modelManipulator.dependency.removeDependency(this.dependencyId);\r\n };\r\n RemoveDependencyHistoryItem.prototype.undo = function () {\r\n this.modelManipulator.dependency.insertDependency(this.dependency.predecessorId, this.dependency.successorId, this.dependency.type, this.dependencyId);\r\n };\r\n return RemoveDependencyHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.RemoveDependencyHistoryItem = RemoveDependencyHistoryItem;\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeassignResourceHistoryItem = exports.AssignResourceHistoryItem = exports.RemoveResourceHistoryItem = exports.CreateResourceHistoryItem = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(12);\r\nvar CreateResourceHistoryItem = (function (_super) {\r\n tslib_1.__extends(CreateResourceHistoryItem, _super);\r\n function CreateResourceHistoryItem(modelManipulator, text, color, callback) {\r\n if (color === void 0) { color = \"\"; }\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.text = text;\r\n _this.color = color;\r\n _this.createCallback = callback;\r\n return _this;\r\n }\r\n CreateResourceHistoryItem.prototype.redo = function () {\r\n this.resource = this.modelManipulator.resource.create(this.text, this.color, this.resource ? this.resource.internalId : null, this.createCallback);\r\n };\r\n CreateResourceHistoryItem.prototype.undo = function () {\r\n this.modelManipulator.resource.remove(this.resource.internalId);\r\n };\r\n return CreateResourceHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.CreateResourceHistoryItem = CreateResourceHistoryItem;\r\nvar RemoveResourceHistoryItem = (function (_super) {\r\n tslib_1.__extends(RemoveResourceHistoryItem, _super);\r\n function RemoveResourceHistoryItem(modelManipulator, resourceId) {\r\n var _this = _super.call(this) || this;\r\n _this.modelManipulator = modelManipulator;\r\n _this.resourceId = resourceId;\r\n return _this;\r\n }\r\n RemoveResourceHistoryItem.prototype.redo = function () {\r\n _super.prototype.redo.call(this);\r\n this.resource = this.modelManipulator.resource.remove(this.resourceId);\r\n };\r\n RemoveResourceHistoryItem.prototype.undo = function () {\r\n var _this = this;\r\n this.modelManipulator.resource.create(this.resource.text, this.resource.color, this.resourceId, function () {\r\n if (_this.resource.color)\r\n _this.modelManipulator.resource.properties.color.setValue(_this.resource.internalId, _this.resource.color);\r\n _super.prototype.undo.call(_this);\r\n });\r\n };\r\n RemoveResourceHistoryItem.prototype.undoItemsQuery = function () {\r\n this.modelManipulator.resource.create(this.resource.text, this.resource.color, this.resourceId, function () { });\r\n if (this.resource.color)\r\n this.modelManipulator.resource.properties.color.setValue(this.resource.internalId, this.resource.color);\r\n _super.prototype.undo.call(this);\r\n };\r\n return RemoveResourceHistoryItem;\r\n}(HistoryItem_1.CompositionHistoryItem));\r\nexports.RemoveResourceHistoryItem = RemoveResourceHistoryItem;\r\nvar AssignResourceHistoryItem = (function (_super) {\r\n tslib_1.__extends(AssignResourceHistoryItem, _super);\r\n function AssignResourceHistoryItem(modelManipulator, resourceId, taskId) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.resourceId = resourceId;\r\n _this.taskId = taskId;\r\n return _this;\r\n }\r\n AssignResourceHistoryItem.prototype.redo = function () {\r\n this.assignment = this.modelManipulator.resource.assign(this.resourceId, this.taskId, this.assignment ? this.assignment.internalId : null);\r\n };\r\n AssignResourceHistoryItem.prototype.undo = function () {\r\n this.modelManipulator.resource.deassig(this.assignment.internalId);\r\n };\r\n return AssignResourceHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.AssignResourceHistoryItem = AssignResourceHistoryItem;\r\nvar DeassignResourceHistoryItem = (function (_super) {\r\n tslib_1.__extends(DeassignResourceHistoryItem, _super);\r\n function DeassignResourceHistoryItem(modelManipulator, assignmentId) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.assignmentId = assignmentId;\r\n return _this;\r\n }\r\n DeassignResourceHistoryItem.prototype.redo = function () {\r\n this.assignment = this.modelManipulator.resource.deassig(this.assignmentId);\r\n };\r\n DeassignResourceHistoryItem.prototype.undo = function () {\r\n this.modelManipulator.resource.assign(this.assignment.resourceId, this.assignment.taskId, this.assignmentId);\r\n };\r\n return DeassignResourceHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.DeassignResourceHistoryItem = DeassignResourceHistoryItem;\r\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConfirmationDialogParameters = exports.ConfirmationDialog = exports.ConfirmationType = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DialogBase_1 = __webpack_require__(24);\r\nvar ConfirmationType;\r\n(function (ConfirmationType) {\r\n ConfirmationType[ConfirmationType[\"TaskDelete\"] = 0] = \"TaskDelete\";\r\n ConfirmationType[ConfirmationType[\"DependencyDelete\"] = 1] = \"DependencyDelete\";\r\n ConfirmationType[ConfirmationType[\"ResourcesDelete\"] = 2] = \"ResourcesDelete\";\r\n})(ConfirmationType = exports.ConfirmationType || (exports.ConfirmationType = {}));\r\nvar ConfirmationDialog = (function (_super) {\r\n tslib_1.__extends(ConfirmationDialog, _super);\r\n function ConfirmationDialog() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ConfirmationDialog.prototype.applyParameters = function (_newParameters, oldParameters) {\r\n this.history.beginTransaction();\r\n oldParameters.callback();\r\n this.history.endTransaction();\r\n this.control.barManager.updateItemsState([]);\r\n return true;\r\n };\r\n ConfirmationDialog.prototype.createParameters = function (options) {\r\n return options;\r\n };\r\n ConfirmationDialog.prototype.getDialogName = function () {\r\n return \"Confirmation\";\r\n };\r\n return ConfirmationDialog;\r\n}(DialogBase_1.DialogBase));\r\nexports.ConfirmationDialog = ConfirmationDialog;\r\nvar ConfirmationDialogParameters = (function (_super) {\r\n tslib_1.__extends(ConfirmationDialogParameters, _super);\r\n function ConfirmationDialogParameters(type, callback) {\r\n var _this = _super.call(this) || this;\r\n _this.type = type;\r\n _this.callback = callback;\r\n return _this;\r\n }\r\n ConfirmationDialogParameters.prototype.clone = function () {\r\n var result = new ConfirmationDialogParameters(this.type, this.callback);\r\n result.message = this.message;\r\n return result;\r\n };\r\n return ConfirmationDialogParameters;\r\n}(DialogBase_1.DialogParametersBase));\r\nexports.ConfirmationDialogParameters = ConfirmationDialogParameters;\r\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DialogParametersBase = exports.DialogBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar DialogBase = (function (_super) {\r\n tslib_1.__extends(DialogBase, _super);\r\n function DialogBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DialogBase.prototype.executeInternal = function (options) {\r\n var _this = this;\r\n var params = this.createParameters(options);\r\n var initParams = params.clone();\r\n if (!this.onBeforeDialogShow(params))\r\n return false;\r\n this.control.ganttOwner.showDialog(this.getDialogName(), params, function (result) {\r\n if (result)\r\n _this.applyParameters(result, initParams);\r\n }, function () {\r\n _this.afterClosing();\r\n });\r\n return true;\r\n };\r\n DialogBase.prototype.onBeforeDialogShow = function (params) {\r\n return true;\r\n };\r\n DialogBase.prototype.applyParameters = function (_newParameters, _oldParameters) {\r\n return false;\r\n };\r\n DialogBase.prototype.afterClosing = function () { };\r\n DialogBase.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n return DialogBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.DialogBase = DialogBase;\r\nvar DialogParametersBase = (function () {\r\n function DialogParametersBase() {\r\n }\r\n return DialogParametersBase;\r\n}());\r\nexports.DialogParametersBase = DialogParametersBase;\r\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskColorHistoryItem = exports.TaskMoveHistoryItem = exports.TaskEndHistoryItem = exports.TaskStartHistoryItem = exports.TaskProgressHistoryItem = exports.TaskDescriptionHistoryItem = exports.TaskTitleHistoryItem = exports.TaskPropertiesHistoryItemBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(12);\r\nvar TaskPropertiesHistoryItemBase = (function (_super) {\r\n tslib_1.__extends(TaskPropertiesHistoryItemBase, _super);\r\n function TaskPropertiesHistoryItemBase(modelManipulator, taskId, newValue) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.taskId = taskId;\r\n _this.newValue = newValue;\r\n return _this;\r\n }\r\n TaskPropertiesHistoryItemBase.prototype.redo = function () {\r\n this.oldState = this.getPropertiesManipulator().setValue(this.taskId, this.newValue);\r\n };\r\n TaskPropertiesHistoryItemBase.prototype.undo = function () {\r\n this.getPropertiesManipulator().restoreValue(this.oldState);\r\n };\r\n TaskPropertiesHistoryItemBase.prototype.getPropertiesManipulator = function () {\r\n throw new Error(\"Not Implemented\");\r\n };\r\n return TaskPropertiesHistoryItemBase;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.TaskPropertiesHistoryItemBase = TaskPropertiesHistoryItemBase;\r\nvar TaskTitleHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskTitleHistoryItem, _super);\r\n function TaskTitleHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskTitleHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.title;\r\n };\r\n return TaskTitleHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskTitleHistoryItem = TaskTitleHistoryItem;\r\nvar TaskDescriptionHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskDescriptionHistoryItem, _super);\r\n function TaskDescriptionHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskDescriptionHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.description;\r\n };\r\n return TaskDescriptionHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskDescriptionHistoryItem = TaskDescriptionHistoryItem;\r\nvar TaskProgressHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskProgressHistoryItem, _super);\r\n function TaskProgressHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskProgressHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.progress;\r\n };\r\n return TaskProgressHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskProgressHistoryItem = TaskProgressHistoryItem;\r\nvar TaskStartHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskStartHistoryItem, _super);\r\n function TaskStartHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskStartHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.start;\r\n };\r\n return TaskStartHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskStartHistoryItem = TaskStartHistoryItem;\r\nvar TaskEndHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskEndHistoryItem, _super);\r\n function TaskEndHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskEndHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.end;\r\n };\r\n return TaskEndHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskEndHistoryItem = TaskEndHistoryItem;\r\nvar TaskMoveHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskMoveHistoryItem, _super);\r\n function TaskMoveHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskMoveHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.move;\r\n };\r\n return TaskMoveHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskMoveHistoryItem = TaskMoveHistoryItem;\r\nvar TaskColorHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskColorHistoryItem, _super);\r\n function TaskColorHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskColorHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.color;\r\n };\r\n return TaskColorHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskColorHistoryItem = TaskColorHistoryItem;\r\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceCollection = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CollectionBase_1 = __webpack_require__(13);\r\nvar Resource_1 = __webpack_require__(33);\r\nvar ResourceCollection = (function (_super) {\r\n tslib_1.__extends(ResourceCollection, _super);\r\n function ResourceCollection() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourceCollection.prototype.createItem = function () { return new Resource_1.Resource(); };\r\n return ResourceCollection;\r\n}(CollectionBase_1.CollectionBase));\r\nexports.ResourceCollection = ResourceCollection;\r\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StringUtils = (function () {\r\n function StringUtils() {\r\n }\r\n StringUtils.isAlpha = function (ch) {\r\n return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z');\r\n };\r\n StringUtils.isDigit = function (ch) {\r\n return ch >= '0' && ch <= '9';\r\n };\r\n StringUtils.stringHashCode = function (str) {\r\n var hash = 0;\r\n if (str.length === 0)\r\n return hash;\r\n var strLen = str.length;\r\n for (var i = 0; i < strLen; i++) {\r\n hash = ((hash << 5) - hash) + str.charCodeAt(i);\r\n hash |= 0;\r\n }\r\n return hash;\r\n };\r\n StringUtils.endsAt = function (str, template) {\r\n var strInd = str.length - 1;\r\n var tmplInd = template.length - 1;\r\n var strStartInd = strInd - tmplInd;\r\n if (strStartInd < 0)\r\n return false;\r\n for (; strInd >= strStartInd; strInd--, tmplInd--) {\r\n if (str[strInd] !== template[tmplInd])\r\n return false;\r\n }\r\n return true;\r\n };\r\n StringUtils.startsAt = function (str, template) {\r\n return str.substr(0, template.length) === template;\r\n };\r\n StringUtils.stringInLowerCase = function (str) {\r\n return str.toLowerCase() === str;\r\n };\r\n StringUtils.stringInUpperCase = function (str) {\r\n return str.toUpperCase() === str;\r\n };\r\n StringUtils.atLeastOneSymbolInUpperCase = function (str) {\r\n for (var i = 0, char = void 0; char = str[i]; i++) {\r\n if (StringUtils.stringInUpperCase(char) && !StringUtils.stringInLowerCase(char))\r\n return true;\r\n }\r\n return false;\r\n };\r\n StringUtils.getSymbolFromEnd = function (text, posFromEnd) {\r\n return text[text.length - posFromEnd];\r\n };\r\n StringUtils.trim = function (str, trimChars) {\r\n if (trimChars === undefined)\r\n return StringUtils.trimInternal(str, true, true);\r\n else {\r\n var joinedChars = trimChars.join('');\r\n return str.replace(new RegExp(\"(^[\" + joinedChars + \"]*)|([\" + joinedChars + \"]*$)\", 'g'), '');\r\n }\r\n };\r\n StringUtils.trimStart = function (str, trimChars) {\r\n if (trimChars === undefined)\r\n return StringUtils.trimInternal(str, true, false);\r\n else {\r\n var joinedChars = trimChars.join('');\r\n return str.replace(new RegExp(\"^[\" + joinedChars + \"]*\", 'g'), '');\r\n }\r\n };\r\n StringUtils.trimEnd = function (str, trimChars) {\r\n if (trimChars === undefined)\r\n return StringUtils.trimInternal(str, false, true);\r\n else {\r\n var joinedChars = trimChars.join('');\r\n return str.replace(new RegExp(\"[\" + joinedChars + \"]*$\", 'g'), '');\r\n }\r\n };\r\n StringUtils.getDecimalSeparator = function () {\r\n return (1.1).toLocaleString().substr(1, 1);\r\n };\r\n StringUtils.repeat = function (str, count) {\r\n return new Array(count <= 0 ? 0 : count + 1).join(str);\r\n };\r\n StringUtils.isNullOrEmpty = function (str) {\r\n return !str || !str.length;\r\n };\r\n StringUtils.padLeft = function (str, totalWidth, paddingChar) {\r\n return StringUtils.repeat(paddingChar, Math.max(0, totalWidth - str.length)) + str;\r\n };\r\n StringUtils.trimInternal = function (source, trimStart, trimEnd) {\r\n var len = source.length;\r\n if (!len)\r\n return source;\r\n if (len < 0xBABA1) {\r\n var result = source;\r\n if (trimStart)\r\n result = result.replace(/^\\s+/, '');\r\n if (trimEnd)\r\n result = result.replace(/\\s+$/, '');\r\n return result;\r\n }\r\n else {\r\n var start = 0;\r\n if (trimEnd) {\r\n while (len > 0 && /\\s/.test(source[len - 1]))\r\n len--;\r\n }\r\n if (trimStart && len > 0) {\r\n while (start < len && /\\s/.test(source[start]))\r\n start++;\r\n }\r\n return source.substring(start, len);\r\n }\r\n };\r\n return StringUtils;\r\n}());\r\nexports.StringUtils = StringUtils;\r\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Size = (function () {\r\n function Size(width, height) {\r\n this.width = width;\r\n this.height = height;\r\n }\r\n Size.empty = function () {\r\n return new Size(0, 0);\r\n };\r\n Size.fromNumber = function (num) {\r\n return new Size(num, num);\r\n };\r\n Size.initByCommonAction = function (action) {\r\n var widthAdp = function (s) { return s.width; };\r\n var heightAdp = function (s) { return s.height; };\r\n return new Size(action(widthAdp, heightAdp), action(heightAdp, widthAdp));\r\n };\r\n Size.prototype.isEmpty = function () {\r\n return this.width === 0 && this.height === 0;\r\n };\r\n Size.prototype.toString = function () {\r\n return JSON.stringify(this);\r\n };\r\n Size.prototype.nonNegativeSize = function () {\r\n if (this.width < 0)\r\n this.width = 0;\r\n if (this.height < 0)\r\n this.height = 0;\r\n return this;\r\n };\r\n Size.prototype.offset = function (offsetWidth, offsetHeight) {\r\n this.width = this.width + offsetWidth;\r\n this.height = this.height + offsetHeight;\r\n return this;\r\n };\r\n Size.prototype.multiply = function (multiplierW, multiplierH) {\r\n this.width *= multiplierW;\r\n this.height *= multiplierH;\r\n return this;\r\n };\r\n Size.prototype.equals = function (obj) {\r\n return this.width === obj.width && this.height === obj.height;\r\n };\r\n Size.prototype.clone = function () {\r\n return new Size(this.width, this.height);\r\n };\r\n Size.prototype.copyFrom = function (obj) {\r\n this.width = obj.width;\r\n this.height = obj.height;\r\n };\r\n Size.prototype.applyConverter = function (conv) {\r\n this.width = conv(this.width);\r\n this.height = conv(this.height);\r\n return this;\r\n };\r\n Size.equals = function (a, b) {\r\n return a.width === b.width && a.height === b.height;\r\n };\r\n return Size;\r\n}());\r\nexports.Size = Size;\r\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerStateBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerStateBase_1 = __webpack_require__(19);\r\nvar MouseHandlerStateBase = (function (_super) {\r\n tslib_1.__extends(MouseHandlerStateBase, _super);\r\n function MouseHandlerStateBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerStateBase.prototype.onMouseDoubleClick = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onMouseDown = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onMouseUp = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onMouseMove = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onMouseWheel = function (_evt) { };\r\n return MouseHandlerStateBase;\r\n}(HandlerStateBase_1.HandlerStateBase));\r\nexports.MouseHandlerStateBase = MouseHandlerStateBase;\r\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerDragBaseState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar point_1 = __webpack_require__(4);\r\nvar evt_1 = __webpack_require__(6);\r\nvar MouseHandlerStateBase_1 = __webpack_require__(29);\r\nvar MouseHandlerDragBaseState = (function (_super) {\r\n tslib_1.__extends(MouseHandlerDragBaseState, _super);\r\n function MouseHandlerDragBaseState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerDragBaseState.prototype.onMouseDown = function (evt) {\r\n this.currentPosition = new point_1.Point(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.getEventY(evt));\r\n if (this.handler.control.taskEditController.dependencyId != null)\r\n this.handler.control.selectDependency(null);\r\n };\r\n MouseHandlerDragBaseState.prototype.onMouseUp = function (evt) {\r\n this.onMouseUpInternal(evt);\r\n this.handler.switchToDefaultState();\r\n };\r\n MouseHandlerDragBaseState.prototype.onMouseMove = function (evt) {\r\n evt.preventDefault();\r\n var position = new point_1.Point(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.getEventY(evt));\r\n this.onMouseMoveInternal(position);\r\n this.currentPosition = position;\r\n };\r\n MouseHandlerDragBaseState.prototype.onMouseUpInternal = function (_evt) { };\r\n MouseHandlerDragBaseState.prototype.onMouseMoveInternal = function (_position) { };\r\n return MouseHandlerDragBaseState;\r\n}(MouseHandlerStateBase_1.MouseHandlerStateBase));\r\nexports.MouseHandlerDragBaseState = MouseHandlerDragBaseState;\r\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerDragBaseState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerStateBase_1 = __webpack_require__(49);\r\nvar point_1 = __webpack_require__(4);\r\nvar touch_1 = __webpack_require__(15);\r\nvar TouchHandlerDragBaseState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerDragBaseState, _super);\r\n function TouchHandlerDragBaseState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerDragBaseState.prototype.onTouchStart = function (evt) {\r\n this.currentPosition = new point_1.Point(touch_1.TouchUtils.getEventX(evt), touch_1.TouchUtils.getEventY(evt));\r\n if (this.handler.control.taskEditController.dependencyId != null)\r\n this.handler.control.selectDependency(null);\r\n };\r\n TouchHandlerDragBaseState.prototype.onTouchEnd = function (evt) {\r\n this.onTouchEndInternal(evt);\r\n this.handler.switchToDefaultState();\r\n };\r\n TouchHandlerDragBaseState.prototype.onTouchMove = function (evt) {\r\n evt.preventDefault();\r\n var position = new point_1.Point(touch_1.TouchUtils.getEventX(evt), touch_1.TouchUtils.getEventY(evt));\r\n this.onTouchMoveInternal(position);\r\n this.currentPosition = position;\r\n };\r\n TouchHandlerDragBaseState.prototype.onTouchEndInternal = function (_evt) { };\r\n TouchHandlerDragBaseState.prototype.onTouchMoveInternal = function (_position) { };\r\n return TouchHandlerDragBaseState;\r\n}(TouchHandlerStateBase_1.TouchHandlerStateBase));\r\nexports.TouchHandlerDragBaseState = TouchHandlerDragBaseState;\r\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceUnassigningArguments = exports.ResourceAssigningArguments = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar BaseArguments_1 = __webpack_require__(20);\r\nvar ResourceAssigningArguments = (function (_super) {\r\n tslib_1.__extends(ResourceAssigningArguments, _super);\r\n function ResourceAssigningArguments(resourceId, taskId) {\r\n var _this = _super.call(this, null) || this;\r\n _this.values = {\r\n resourceId: resourceId,\r\n taskId: taskId\r\n };\r\n return _this;\r\n }\r\n Object.defineProperty(ResourceAssigningArguments.prototype, \"resourceId\", {\r\n get: function () { return this.values.resourceId; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ResourceAssigningArguments.prototype, \"taskId\", {\r\n get: function () { return this.values.taskId; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ResourceAssigningArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.ResourceAssigningArguments = ResourceAssigningArguments;\r\nvar ResourceUnassigningArguments = (function (_super) {\r\n tslib_1.__extends(ResourceUnassigningArguments, _super);\r\n function ResourceUnassigningArguments(assignment) {\r\n var _this = _super.call(this, assignment.internalId) || this;\r\n _this.values = assignment;\r\n return _this;\r\n }\r\n return ResourceUnassigningArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.ResourceUnassigningArguments = ResourceUnassigningArguments;\r\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Resource = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar common_1 = __webpack_require__(1);\r\nvar DataObject_1 = __webpack_require__(10);\r\nvar Resource = (function (_super) {\r\n tslib_1.__extends(Resource, _super);\r\n function Resource() {\r\n var _this = _super.call(this) || this;\r\n _this.text = \"\";\r\n _this.color = \"\";\r\n return _this;\r\n }\r\n Resource.prototype.assignFromObject = function (sourceObj) {\r\n if (common_1.isDefined(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.text = sourceObj.text;\r\n if (common_1.isDefined(sourceObj.color))\r\n this.color = sourceObj.color;\r\n }\r\n };\r\n return Resource;\r\n}(DataObject_1.DataObject));\r\nexports.Resource = Resource;\r\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar list_1 = __webpack_require__(59);\r\nvar MathUtils = (function () {\r\n function MathUtils() {\r\n }\r\n MathUtils.round = function (value, digits) {\r\n if (digits === void 0) { digits = 0; }\r\n var factor = MathUtils.powFactor[digits];\r\n return Math.round(value * factor) / factor;\r\n };\r\n MathUtils.numberCloseTo = function (num, to, accuracy) {\r\n if (accuracy === void 0) { accuracy = 0.00001; }\r\n return Math.abs(num - to) < accuracy;\r\n };\r\n MathUtils.restrictValue = function (val, minVal, maxVal) {\r\n if (maxVal < minVal)\r\n maxVal = minVal;\r\n if (val > maxVal)\r\n return maxVal;\r\n else if (val < minVal)\r\n return minVal;\r\n return val;\r\n };\r\n MathUtils.getRandomInt = function (min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n };\r\n MathUtils.generateGuid = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = Math.random() * 16 | 0;\r\n var v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n };\r\n MathUtils.powFactor = list_1.ListUtils.initByCallback(20, function (ind) { return Math.pow(10, ind); });\r\n MathUtils.somePrimes = [1009, 1013,\r\n 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069,\r\n 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151,\r\n 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223,\r\n 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291,\r\n 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373,\r\n 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451,\r\n 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511,\r\n 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583,\r\n 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657,\r\n 1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733,\r\n 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811,\r\n 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889,\r\n 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987,\r\n 1993, 1997, 1999, 2003];\r\n return MathUtils;\r\n}());\r\nexports.MathUtils = MathUtils;\r\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__rest\", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__param\", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__metadata\", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__awaiter\", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__generator\", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__createBinding\", function() { return __createBinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__exportStar\", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__values\", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__read\", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spread\", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__await\", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importStar\", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importDefault\", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function() { return __classPrivateFieldSet; });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nfunction __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceAssignment = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DataObject_1 = __webpack_require__(10);\r\nvar common_1 = __webpack_require__(1);\r\nvar ResourceAssignment = (function (_super) {\r\n tslib_1.__extends(ResourceAssignment, _super);\r\n function ResourceAssignment() {\r\n var _this = _super.call(this) || this;\r\n _this.taskId = \"\";\r\n _this.resourceId = \"\";\r\n return _this;\r\n }\r\n ResourceAssignment.prototype.assignFromObject = function (sourceObj) {\r\n if (common_1.isDefined(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.taskId = String(sourceObj.taskId);\r\n this.resourceId = String(sourceObj.resourceId);\r\n }\r\n };\r\n return ResourceAssignment;\r\n}(DataObject_1.DataObject));\r\nexports.ResourceAssignment = ResourceAssignment;\r\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Time = void 0;\r\nvar Time = (function () {\r\n function Time(h, min, sec, msec) {\r\n if (h === void 0) { h = 0; }\r\n if (min === void 0) { min = 0; }\r\n if (sec === void 0) { sec = 0; }\r\n if (msec === void 0) { msec = 0; }\r\n this._hour = 0;\r\n this._min = 0;\r\n this._sec = 0;\r\n this._msec = 0;\r\n this._fullmsec = 0;\r\n this.hour = h;\r\n this.min = min;\r\n this.sec = sec;\r\n this.msec = msec;\r\n }\r\n Object.defineProperty(Time.prototype, \"hour\", {\r\n get: function () { return this._hour; },\r\n set: function (h) {\r\n if (h >= 0 && h < 24) {\r\n this._hour = h;\r\n this.updateFullMilleconds();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Time.prototype, \"min\", {\r\n get: function () { return this._min; },\r\n set: function (m) {\r\n if (m >= 0 && m < 60) {\r\n this._min = m;\r\n this.updateFullMilleconds();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Time.prototype, \"sec\", {\r\n get: function () { return this._sec; },\r\n set: function (s) {\r\n if (s >= 0 && s < 60) {\r\n this._sec = s;\r\n this.updateFullMilleconds();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Time.prototype, \"msec\", {\r\n get: function () { return this._msec; },\r\n set: function (ms) {\r\n if (ms >= 0 && ms < 1000) {\r\n this._msec = ms;\r\n this.updateFullMilleconds();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Time.prototype.updateFullMilleconds = function () {\r\n var minutes = this._hour * 60 + this._min;\r\n var sec = minutes * 60 + this._sec;\r\n this._fullmsec = sec * 1000 + this._msec;\r\n };\r\n Time.prototype.getTimeInMilleconds = function () {\r\n return this._fullmsec;\r\n };\r\n return Time;\r\n}());\r\nexports.Time = Time;\r\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TimeRange = void 0;\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar TimeRange = (function () {\r\n function TimeRange(start, end) {\r\n var diff = DateTimeUtils_1.DateTimeUtils.caclTimeDifference(start, end);\r\n if (diff >= 0) {\r\n this._start = start;\r\n this._end = end;\r\n }\r\n else {\r\n this._start = end;\r\n this._end = start;\r\n }\r\n }\r\n Object.defineProperty(TimeRange.prototype, \"start\", {\r\n get: function () { return this._start; },\r\n set: function (time) {\r\n if (time && DateTimeUtils_1.DateTimeUtils.caclTimeDifference(time, this._end) >= 0)\r\n this._start = time;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TimeRange.prototype, \"end\", {\r\n get: function () { return this._end; },\r\n set: function (time) {\r\n if (time && DateTimeUtils_1.DateTimeUtils.caclTimeDifference(this._start, time) >= 0)\r\n this._end = time;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TimeRange.prototype.isTimeInRange = function (time) {\r\n return DateTimeUtils_1.DateTimeUtils.caclTimeDifference(this._start, time) >= 0 && DateTimeUtils_1.DateTimeUtils.caclTimeDifference(time, this._end) >= 0;\r\n };\r\n TimeRange.prototype.hasIntersect = function (range) {\r\n return this.isTimeInRange(range.start) || this.isTimeInRange(range.end) || range.isTimeInRange(this.start) || range.isTimeInRange(this.end);\r\n };\r\n TimeRange.prototype.concatWith = function (range) {\r\n if (!this.hasIntersect(range))\r\n return false;\r\n this.start = DateTimeUtils_1.DateTimeUtils.getMinTime(this.start, range.start);\r\n this.end = DateTimeUtils_1.DateTimeUtils.getMaxTime(this.end, range.end);\r\n return true;\r\n };\r\n return TimeRange;\r\n}());\r\nexports.TimeRange = TimeRange;\r\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DayOfWeekMonthlyOccurrence = void 0;\r\nvar DayOfWeekMonthlyOccurrence;\r\n(function (DayOfWeekMonthlyOccurrence) {\r\n DayOfWeekMonthlyOccurrence[DayOfWeekMonthlyOccurrence[\"First\"] = 0] = \"First\";\r\n DayOfWeekMonthlyOccurrence[DayOfWeekMonthlyOccurrence[\"Second\"] = 1] = \"Second\";\r\n DayOfWeekMonthlyOccurrence[DayOfWeekMonthlyOccurrence[\"Third\"] = 2] = \"Third\";\r\n DayOfWeekMonthlyOccurrence[DayOfWeekMonthlyOccurrence[\"Forth\"] = 3] = \"Forth\";\r\n DayOfWeekMonthlyOccurrence[DayOfWeekMonthlyOccurrence[\"Last\"] = 4] = \"Last\";\r\n})(DayOfWeekMonthlyOccurrence = exports.DayOfWeekMonthlyOccurrence || (exports.DayOfWeekMonthlyOccurrence = {}));\r\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RecurrenceFactory = void 0;\r\nvar common_1 = __webpack_require__(1);\r\nvar Daily_1 = __webpack_require__(41);\r\nvar Weekly_1 = __webpack_require__(73);\r\nvar Monthly_1 = __webpack_require__(74);\r\nvar Yearly_1 = __webpack_require__(76);\r\nvar RecurrenceFactory = (function () {\r\n function RecurrenceFactory() {\r\n }\r\n RecurrenceFactory.createRecurrenceByType = function (type) {\r\n if (!type)\r\n return null;\r\n var correctedType = type.toLowerCase();\r\n switch (correctedType) {\r\n case \"daily\":\r\n return new Daily_1.Daily();\r\n case \"weekly\":\r\n return new Weekly_1.Weekly();\r\n case \"monthly\":\r\n return new Monthly_1.Monthly();\r\n case \"yearly\":\r\n return new Yearly_1.Yearly();\r\n }\r\n return null;\r\n };\r\n RecurrenceFactory.createRecurrenceFromObject = function (sourceObj) {\r\n if (!sourceObj)\r\n return null;\r\n var recurrence = this.createRecurrenceByType(sourceObj.type);\r\n if (recurrence)\r\n recurrence.assignFromObject(sourceObj);\r\n return recurrence;\r\n };\r\n RecurrenceFactory.getEnumValue = function (type, value) {\r\n if (!common_1.isDefined(type[value]))\r\n return null;\r\n var num = parseInt(value);\r\n if (!isNaN(num))\r\n return num;\r\n return type[value];\r\n };\r\n return RecurrenceFactory;\r\n}());\r\nexports.RecurrenceFactory = RecurrenceFactory;\r\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Daily = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar RecurrenceBase_1 = __webpack_require__(16);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar Daily = (function (_super) {\r\n tslib_1.__extends(Daily, _super);\r\n function Daily() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Daily.prototype.checkDate = function (date) { return true; };\r\n Daily.prototype.checkInterval = function (date) {\r\n return DateTimeUtils_1.DateTimeUtils.getDaysBetween(this.start, date) % this.interval == 0;\r\n };\r\n Daily.prototype.calculatePointByInterval = function (date) {\r\n var daysToAdd = this.interval;\r\n if (!this.isRecurrencePoint(date))\r\n daysToAdd -= DateTimeUtils_1.DateTimeUtils.getDaysBetween(this.start, date) % this.interval;\r\n return DateTimeUtils_1.DateTimeUtils.addDays(date, daysToAdd);\r\n };\r\n Daily.prototype.calculateNearestPoint = function (date) {\r\n return DateTimeUtils_1.DateTimeUtils.addDays(date, 1);\r\n };\r\n return Daily;\r\n}(RecurrenceBase_1.RecurrenceBase));\r\nexports.Daily = Daily;\r\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ElementTextHelperCultureInfo = exports.ElementTextHelper = exports.DateUtils = void 0;\r\nvar Enums_1 = __webpack_require__(14);\r\nvar dom_1 = __webpack_require__(3);\r\nvar DateUtils = (function () {\r\n function DateUtils() {\r\n }\r\n DateUtils.getDaysInMonth = function (month, year) {\r\n var d = new Date(year, month + 1, 0);\r\n return d.getDate();\r\n };\r\n DateUtils.getOffsetInMonths = function (start, end) {\r\n return (end.getFullYear() - start.getFullYear()) * 12 + end.getMonth() - start.getMonth();\r\n };\r\n DateUtils.getOffsetInQuarters = function (start, end) {\r\n return (end.getFullYear() - start.getFullYear()) * 4 + Math.floor(end.getMonth() / 3) - Math.floor(start.getMonth() / 3);\r\n };\r\n DateUtils.getNearestScaleTickDate = function (date, range, tickTimeSpan, viewType) {\r\n var result = new Date();\r\n var rangeStartTime = range.start.getTime();\r\n var rangeEndTime = range.end.getTime();\r\n result.setTime(date.getTime());\r\n if (date.getTime() < rangeStartTime)\r\n result.setTime(rangeStartTime);\r\n else if (date.getTime() > rangeEndTime)\r\n result.setTime(rangeEndTime);\r\n else if (this.needCorrectDate(date, rangeStartTime, tickTimeSpan, viewType)) {\r\n var nearestLeftTickTime = this.getNearestLeftTickTime(date, rangeStartTime, tickTimeSpan, viewType);\r\n var nearestRightTickTime = this.getNextTickTime(nearestLeftTickTime, tickTimeSpan, viewType);\r\n if (Math.abs(date.getTime() - nearestLeftTickTime) > Math.abs(date.getTime() - nearestRightTickTime))\r\n result.setTime(nearestRightTickTime);\r\n else\r\n result.setTime(nearestLeftTickTime);\r\n }\r\n return result;\r\n };\r\n DateUtils.needCorrectDate = function (date, rangeStartTime, tickTimeSpan, viewType) {\r\n if (viewType == Enums_1.ViewType.Months)\r\n return date.getTime() !== new Date(date.getFullYear(), date.getMonth(), 1).getTime();\r\n return (date.getTime() - rangeStartTime) % tickTimeSpan !== 0;\r\n };\r\n DateUtils.getNearestLeftTickTime = function (date, rangeStartTime, tickTimeSpan, viewType) {\r\n if (viewType == Enums_1.ViewType.Months)\r\n return new Date(date.getFullYear(), date.getMonth(), 1).getTime();\r\n var tickCountAtLeft = Math.floor((date.getTime() - rangeStartTime) / tickTimeSpan);\r\n return rangeStartTime + tickCountAtLeft * tickTimeSpan;\r\n };\r\n DateUtils.getNextTickTime = function (currentTickTime, tickTimeSpan, viewType) {\r\n if (viewType == Enums_1.ViewType.Months) {\r\n var nextTickDate = new Date();\r\n nextTickDate.setTime(currentTickTime);\r\n nextTickDate.setMonth(nextTickDate.getMonth() + 1);\r\n return nextTickDate.getTime();\r\n }\r\n return currentTickTime + tickTimeSpan;\r\n };\r\n DateUtils.adjustStartDateByViewType = function (date, viewType, firstDayOfWeek) {\r\n if (firstDayOfWeek === void 0) { firstDayOfWeek = 0; }\r\n switch (viewType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours());\r\n case Enums_1.ViewType.SixHours:\r\n case Enums_1.ViewType.Hours:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n case Enums_1.ViewType.Days:\r\n case Enums_1.ViewType.Weeks:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + firstDayOfWeek);\r\n case Enums_1.ViewType.Months:\r\n case Enums_1.ViewType.Quarter:\r\n case Enums_1.ViewType.Years:\r\n return new Date(date.getFullYear(), 0, 1);\r\n default:\r\n return new Date();\r\n }\r\n };\r\n DateUtils.adjustEndDateByViewType = function (date, viewType, firstDayOfWeek) {\r\n if (firstDayOfWeek === void 0) { firstDayOfWeek = 0; }\r\n switch (viewType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours() + 1);\r\n case Enums_1.ViewType.SixHours:\r\n case Enums_1.ViewType.Hours:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);\r\n case Enums_1.ViewType.Days:\r\n case Enums_1.ViewType.Weeks:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() + 7 - date.getDay() + firstDayOfWeek);\r\n case Enums_1.ViewType.Months:\r\n case Enums_1.ViewType.Quarter:\r\n case Enums_1.ViewType.Years:\r\n return new Date(date.getFullYear() + 1, 0, 1);\r\n default:\r\n return new Date();\r\n }\r\n };\r\n DateUtils.roundStartDate = function (date, viewType) {\r\n switch (viewType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n case Enums_1.ViewType.Hours:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours() - 1);\r\n case Enums_1.ViewType.SixHours:\r\n case Enums_1.ViewType.Days:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1);\r\n case Enums_1.ViewType.Weeks:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay());\r\n case Enums_1.ViewType.Months:\r\n return new Date(date.getFullYear(), date.getMonth() - 1);\r\n case Enums_1.ViewType.Quarter:\r\n case Enums_1.ViewType.Years:\r\n return new Date(date.getFullYear() - 1, 0, 1);\r\n default:\r\n return new Date();\r\n }\r\n };\r\n DateUtils.getTickTimeSpan = function (viewType) {\r\n switch (viewType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n return DateUtils.msPerHour / 6;\r\n case Enums_1.ViewType.Hours:\r\n return DateUtils.msPerHour;\r\n case Enums_1.ViewType.SixHours:\r\n return DateUtils.msPerHour * 6;\r\n case Enums_1.ViewType.Days:\r\n return DateUtils.msPerDay;\r\n case Enums_1.ViewType.Weeks:\r\n return DateUtils.msPerWeek;\r\n case Enums_1.ViewType.Months:\r\n return DateUtils.msPerMonth;\r\n case Enums_1.ViewType.Quarter:\r\n return DateUtils.msPerMonth * 3;\r\n case Enums_1.ViewType.Years:\r\n return DateUtils.msPerYear;\r\n }\r\n };\r\n DateUtils.parse = function (data) {\r\n return typeof data === \"function\" ? new Date(data()) : new Date(data);\r\n };\r\n DateUtils.getTimezoneOffsetDiff = function (data1, data2) {\r\n return data2.getTimezoneOffset() - data1.getTimezoneOffset();\r\n };\r\n DateUtils.msPerHour = 3600000;\r\n DateUtils.msPerDay = 24 * DateUtils.msPerHour;\r\n DateUtils.msPerWeek = 7 * DateUtils.msPerDay;\r\n DateUtils.msPerMonth = 30 * DateUtils.msPerDay;\r\n DateUtils.msPerYear = 365 * DateUtils.msPerDay;\r\n DateUtils.ViewTypeToScaleMap = createViewTypeToScaleMap();\r\n return DateUtils;\r\n}());\r\nexports.DateUtils = DateUtils;\r\nvar ElementTextHelper = (function () {\r\n function ElementTextHelper(cultureInfo) {\r\n this.longestAbbrMonthName = null;\r\n this.longestMonthName = null;\r\n this.longestAbbrDayName = null;\r\n var canvas = document.createElement(\"canvas\");\r\n this.textMeasureContext = canvas.getContext(\"2d\");\r\n this.cultureInfo = cultureInfo;\r\n }\r\n ElementTextHelper.prototype.setFont = function (fontHolder) {\r\n var computedStyle = dom_1.DomUtils.getCurrentStyle(fontHolder);\r\n var font = computedStyle.font ? computedStyle.font :\r\n computedStyle.fontStyle + \" \" + computedStyle.fontVariant + \" \" + computedStyle.fontWeight + \" \"\r\n + computedStyle.fontSize + \" / \" + computedStyle.lineHeight + \" \" + computedStyle.fontFamily;\r\n this.textMeasureContext.font = font;\r\n };\r\n ElementTextHelper.prototype.setSettings = function (startTime, viewType, modelItems) {\r\n this.startTime = startTime;\r\n this.viewType = viewType;\r\n this.modelItems = modelItems;\r\n };\r\n ElementTextHelper.prototype.getScaleItemStartDate = function (index, scaleType) {\r\n var result = new Date(this.startTime);\r\n switch (scaleType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n result.setTime(this.startTime + index * DateUtils.msPerHour / 6);\r\n break;\r\n case Enums_1.ViewType.Hours:\r\n result.setTime(this.startTime + index * DateUtils.msPerHour);\r\n break;\r\n case Enums_1.ViewType.SixHours:\r\n result.setTime(this.startTime + index * DateUtils.msPerHour * 6);\r\n break;\r\n case Enums_1.ViewType.Days:\r\n result.setTime(this.startTime + index * DateUtils.msPerDay);\r\n break;\r\n case Enums_1.ViewType.Weeks:\r\n result.setTime(this.startTime + index * DateUtils.msPerWeek);\r\n break;\r\n case Enums_1.ViewType.Months:\r\n result.setMonth(result.getMonth() + index);\r\n break;\r\n case Enums_1.ViewType.Quarter:\r\n result.setMonth(result.getMonth() + index * 3);\r\n break;\r\n case Enums_1.ViewType.Years:\r\n result.setFullYear(result.getFullYear() + index);\r\n break;\r\n case Enums_1.ViewType.FiveYears:\r\n result.setFullYear(result.getFullYear() + index * 5);\r\n break;\r\n }\r\n result = this.getScaleStartDateCorrectedWithDST(result);\r\n return result;\r\n };\r\n ElementTextHelper.prototype.getScaleStartDateCorrectedWithDST = function (date) {\r\n var timeZoneDiff = DateUtils.getTimezoneOffsetDiff(new Date(this.startTime), date);\r\n return timeZoneDiff > 0 ? new Date(date.getTime() + timeZoneDiff * 60000) : date;\r\n };\r\n ElementTextHelper.prototype.getScaleItemText = function (index, scaleType) {\r\n var scaleItemStartDate = this.getScaleItemStartDate(index, scaleType);\r\n var isViewTypeScale = this.viewType.valueOf() == scaleType.valueOf();\r\n switch (scaleType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n return this.getTenMinutesScaleItemText(scaleItemStartDate);\r\n case Enums_1.ViewType.Hours:\r\n case Enums_1.ViewType.SixHours:\r\n return this.getHoursScaleItemText(scaleItemStartDate);\r\n case Enums_1.ViewType.Days:\r\n return this.getDaysScaleItemText(scaleItemStartDate, isViewTypeScale);\r\n case Enums_1.ViewType.Weeks:\r\n return this.getWeeksScaleItemText(scaleItemStartDate, isViewTypeScale);\r\n case Enums_1.ViewType.Months:\r\n return this.getMonthsScaleItemText(scaleItemStartDate, isViewTypeScale);\r\n case Enums_1.ViewType.Quarter:\r\n return this.getQuarterScaleItemText(scaleItemStartDate, isViewTypeScale);\r\n case Enums_1.ViewType.Years:\r\n return this.getYearsScaleItemText(scaleItemStartDate);\r\n case Enums_1.ViewType.FiveYears:\r\n return this.getFiveYearsScaleItemText(scaleItemStartDate);\r\n }\r\n };\r\n ElementTextHelper.prototype.getTenMinutesScaleItemText = function (scaleItemDate) {\r\n var minutes = scaleItemDate.getMinutes() + 1;\r\n return (Math.ceil(minutes / 10) * 10).toString();\r\n };\r\n ElementTextHelper.prototype.getThirtyMinutesScaleItemText = function (scaleItemDate) {\r\n var minutes = scaleItemDate.getMinutes();\r\n return minutes < 30 ? \"30\" : \"60\";\r\n };\r\n ElementTextHelper.prototype.getHoursScaleItemText = function (scaleItemDate) {\r\n var hours = scaleItemDate.getHours();\r\n var hourDisplayText = this.getHourDisplayText(hours);\r\n var amPmText = hours < 12 ? this.getAmText() : this.getPmText();\r\n return this.getHoursScaleItemTextCore(hourDisplayText, amPmText);\r\n };\r\n ElementTextHelper.prototype.getDaysScaleItemText = function (scaleItemDate, isViewTypeScale) {\r\n return this.getDayTotalText(scaleItemDate, true, isViewTypeScale, isViewTypeScale, !isViewTypeScale);\r\n };\r\n ElementTextHelper.prototype.getWeeksScaleItemText = function (scaleItemDate, isViewTypeScale) {\r\n var weekLastDayDate = new Date(scaleItemDate.getTime() + DateUtils.msPerWeek - DateUtils.msPerDay);\r\n return this.getWeeksScaleItemTextCore(this.getDayTotalText(scaleItemDate, isViewTypeScale, true, isViewTypeScale, !isViewTypeScale), this.getDayTotalText(weekLastDayDate, isViewTypeScale, true, isViewTypeScale, !isViewTypeScale));\r\n };\r\n ElementTextHelper.prototype.getMonthsScaleItemText = function (scaleItemDate, isViewTypeScale) {\r\n var monthNames = this.getMonthNames();\r\n var yearDisplayText = !isViewTypeScale ? scaleItemDate.getFullYear().toString() : \"\";\r\n return this.getMonthsScaleItemTextCore(monthNames[scaleItemDate.getMonth()], yearDisplayText);\r\n };\r\n ElementTextHelper.prototype.getQuarterScaleItemText = function (scaleItemDate, isViewTypeScale) {\r\n var quarterNames = this.getQuarterNames();\r\n var yearDisplayText = !isViewTypeScale ? scaleItemDate.getFullYear().toString() : \"\";\r\n return this.getMonthsScaleItemTextCore(quarterNames[Math.floor(scaleItemDate.getMonth() / 3)], yearDisplayText);\r\n };\r\n ElementTextHelper.prototype.getYearsScaleItemText = function (scaleItemDate) {\r\n return scaleItemDate.getFullYear().toString();\r\n };\r\n ElementTextHelper.prototype.getFiveYearsScaleItemText = function (scaleItemDate) {\r\n return scaleItemDate.getFullYear().toString() + \" - \" + (scaleItemDate.getFullYear() + 4).toString();\r\n };\r\n ElementTextHelper.prototype.getHourDisplayText = function (hours) {\r\n if (this.hasAmPm())\r\n return (hours == 0 ? 12 : (hours <= 12 ? hours : hours - 12)).toString();\r\n return hours < 10 ? \"0\" + hours : hours.toString();\r\n };\r\n ElementTextHelper.prototype.getDayTotalText = function (scaleItemDate, displayDayName, useAbbrDayNames, useAbbrMonthNames, displayYear) {\r\n var monthNames = useAbbrMonthNames ? this.getAbbrMonthNames() : this.getMonthNames();\r\n var dayNames = useAbbrDayNames ? this.getAbbrDayNames() : this.getDayNames();\r\n var dayNameDisplayText = displayDayName ? dayNames[scaleItemDate.getDay()] : \"\";\r\n var day = scaleItemDate.getDate();\r\n var monthName = monthNames[scaleItemDate.getMonth()];\r\n var yearDisplayText = displayYear ? scaleItemDate.getFullYear().toString() : \"\";\r\n return this.getDayTotalTextCore(dayNameDisplayText, day.toString(), monthName, yearDisplayText);\r\n };\r\n ElementTextHelper.prototype.getTaskText = function (index) {\r\n var item = this.modelItems[index];\r\n return item ? item.task.title : \"\";\r\n };\r\n ElementTextHelper.prototype.getTaskVisibility = function (index) {\r\n var item = this.modelItems[index];\r\n return !!item && item.getVisible();\r\n };\r\n ElementTextHelper.prototype.hasAmPm = function () {\r\n return this.getAmText().length > 0 || this.getPmText().length > 0;\r\n };\r\n ElementTextHelper.prototype.getScaleItemTextTemplate = function (viewType) {\r\n switch (viewType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n return \"00\";\r\n case Enums_1.ViewType.Hours:\r\n case Enums_1.ViewType.SixHours:\r\n return this.getHoursScaleItemTextCore(\"00\", this.getAmText());\r\n case Enums_1.ViewType.Days:\r\n return this.getDayTextTemplate();\r\n case Enums_1.ViewType.Weeks:\r\n return this.getWeekTextTemplate();\r\n case Enums_1.ViewType.Months:\r\n return this.getMonthsScaleItemTextCore(this.getLongestMonthName(), \"\");\r\n case Enums_1.ViewType.Quarter:\r\n return \"Q4\";\r\n case Enums_1.ViewType.Years:\r\n return \"0000\";\r\n }\r\n };\r\n ElementTextHelper.prototype.getDayTextTemplate = function () {\r\n return this.getDayTotalTextCore(this.getLongestAbbrDayName(), \"00\", this.getLongestAbbrMonthName(), \"\");\r\n };\r\n ElementTextHelper.prototype.getWeekTextTemplate = function () {\r\n var dayTextTemplate = this.getDayTextTemplate();\r\n return this.getWeeksScaleItemTextCore(dayTextTemplate, dayTextTemplate);\r\n };\r\n ElementTextHelper.prototype.getHoursScaleItemTextCore = function (hourDisplayText, amPmText) {\r\n return hourDisplayText + \":00\" + (this.hasAmPm() ? \" \" + amPmText : \"\");\r\n };\r\n ElementTextHelper.prototype.getDayTotalTextCore = function (dayName, dayValueString, monthName, yearValueString) {\r\n var result = dayName.length > 0 ? dayName + \", \" : \"\";\r\n result += dayValueString + \" \" + monthName;\r\n result += yearValueString.length > 0 ? \" \" + yearValueString : \"\";\r\n return result;\r\n };\r\n ElementTextHelper.prototype.getWeeksScaleItemTextCore = function (firstDayOfWeekString, lastDayOfWeekString) {\r\n return firstDayOfWeekString + \" - \" + lastDayOfWeekString;\r\n };\r\n ElementTextHelper.prototype.getMonthsScaleItemTextCore = function (monthName, yearValueString) {\r\n var result = monthName;\r\n if (yearValueString.length > 0)\r\n result += \" \" + yearValueString;\r\n return result;\r\n };\r\n ElementTextHelper.prototype.getLongestAbbrMonthName = function () {\r\n if (this.longestAbbrMonthName == null)\r\n this.longestAbbrMonthName = this.getLongestText(this.getAbbrMonthNames());\r\n return this.longestAbbrMonthName;\r\n };\r\n ElementTextHelper.prototype.getLongestMonthName = function () {\r\n if (this.longestMonthName == null)\r\n this.longestMonthName = this.getLongestText(this.getMonthNames());\r\n return this.longestMonthName;\r\n };\r\n ElementTextHelper.prototype.getLongestAbbrDayName = function () {\r\n if (this.longestAbbrDayName == null)\r\n this.longestAbbrDayName = this.getLongestText(this.getAbbrDayNames());\r\n return this.longestAbbrDayName;\r\n };\r\n ElementTextHelper.prototype.getLongestText = function (texts) {\r\n var _this = this;\r\n var result = \"\";\r\n var longestTextWidth = 0;\r\n texts.forEach(function (text) {\r\n var textWidth = _this.getTextWidth(text);\r\n if (textWidth > longestTextWidth) {\r\n longestTextWidth = textWidth;\r\n result = text;\r\n }\r\n });\r\n return result;\r\n };\r\n ElementTextHelper.prototype.getTextWidth = function (text) {\r\n return Math.round(this.textMeasureContext.measureText(text).width);\r\n };\r\n ElementTextHelper.prototype.getAmText = function () {\r\n return this.cultureInfo.amText;\r\n };\r\n ElementTextHelper.prototype.getPmText = function () {\r\n return this.cultureInfo.pmText;\r\n };\r\n ElementTextHelper.prototype.getQuarterNames = function () {\r\n return this.cultureInfo.quarterNames;\r\n };\r\n ElementTextHelper.prototype.getMonthNames = function () {\r\n return this.cultureInfo.monthNames;\r\n };\r\n ElementTextHelper.prototype.getDayNames = function () {\r\n return this.cultureInfo.dayNames;\r\n };\r\n ElementTextHelper.prototype.getAbbrMonthNames = function () {\r\n return this.cultureInfo.abbrMonthNames;\r\n };\r\n ElementTextHelper.prototype.getAbbrDayNames = function () {\r\n return this.cultureInfo.abbrDayNames;\r\n };\r\n return ElementTextHelper;\r\n}());\r\nexports.ElementTextHelper = ElementTextHelper;\r\nvar ElementTextHelperCultureInfo = (function () {\r\n function ElementTextHelperCultureInfo() {\r\n }\r\n return ElementTextHelperCultureInfo;\r\n}());\r\nexports.ElementTextHelperCultureInfo = ElementTextHelperCultureInfo;\r\nfunction createViewTypeToScaleMap() {\r\n var result = {};\r\n result[Enums_1.ViewType.TenMinutes] = Enums_1.ViewType.Hours;\r\n result[Enums_1.ViewType.Hours] = Enums_1.ViewType.Days;\r\n result[Enums_1.ViewType.SixHours] = Enums_1.ViewType.Days;\r\n result[Enums_1.ViewType.Days] = Enums_1.ViewType.Weeks;\r\n result[Enums_1.ViewType.Weeks] = Enums_1.ViewType.Months;\r\n result[Enums_1.ViewType.Months] = Enums_1.ViewType.Years;\r\n result[Enums_1.ViewType.Quarter] = Enums_1.ViewType.Years;\r\n result[Enums_1.ViewType.Years] = Enums_1.ViewType.FiveYears;\r\n return result;\r\n}\r\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GridElementInfo = void 0;\r\nvar point_1 = __webpack_require__(4);\r\nvar size_1 = __webpack_require__(28);\r\nvar margins_1 = __webpack_require__(78);\r\nvar GridElementInfo = (function () {\r\n function GridElementInfo(className, position, size) {\r\n this.id = GridElementInfo.id++;\r\n this.position = new point_1.Point(undefined, undefined);\r\n this.size = new size_1.Size(0, 0);\r\n this.margins = new margins_1.Margins(undefined, undefined, undefined, undefined);\r\n this.attr = {};\r\n this.style = {};\r\n if (className)\r\n this.className = className;\r\n if (position)\r\n this.setPosition(position);\r\n if (size)\r\n this.setSize(size);\r\n }\r\n GridElementInfo.prototype.setSize = function (size) {\r\n this.size.width = size.width;\r\n this.size.height = size.height;\r\n };\r\n GridElementInfo.prototype.setPosition = function (position) {\r\n this.position.x = position.x;\r\n this.position.y = position.y;\r\n };\r\n GridElementInfo.prototype.assignToElement = function (element) {\r\n this.assignPosition(element);\r\n this.assignSize(element);\r\n this.assignMargins(element);\r\n if (this.className)\r\n element.className = this.className;\r\n };\r\n GridElementInfo.prototype.assignPosition = function (element) {\r\n if (this.position.x != null)\r\n element.style.left = this.position.x + \"px\";\r\n if (this.position.y != null)\r\n element.style.top = this.position.y + \"px\";\r\n };\r\n GridElementInfo.prototype.assignSize = function (element) {\r\n if (this.size.width)\r\n element.style.width = this.size.width + \"px\";\r\n if (this.size.height)\r\n element.style.height = this.size.height + \"px\";\r\n };\r\n GridElementInfo.prototype.assignMargins = function (element) {\r\n if (this.margins.left)\r\n element.style.marginLeft = this.margins.left + \"px\";\r\n if (this.margins.top)\r\n element.style.marginTop = this.margins.top + \"px\";\r\n if (this.margins.right)\r\n element.style.marginRight = this.margins.right + \"px\";\r\n if (this.margins.bottom)\r\n element.style.marginBottom = this.margins.bottom + \"px\";\r\n };\r\n GridElementInfo.prototype.setAttribute = function (name, value) {\r\n this.attr[name] = value;\r\n };\r\n GridElementInfo.id = 0;\r\n return GridElementInfo;\r\n}());\r\nexports.GridElementInfo = GridElementInfo;\r\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ValidationSettings = exports.StripLine = exports.StripLineSettings = exports.EditingSettings = exports.Settings = void 0;\r\nvar Enums_1 = __webpack_require__(14);\r\nvar common_1 = __webpack_require__(1);\r\nvar Settings = (function () {\r\n function Settings() {\r\n this.viewType = undefined;\r\n this.taskTitlePosition = Enums_1.TaskTitlePosition.Inside;\r\n this.showResources = true;\r\n this.areHorizontalBordersEnabled = true;\r\n this.areVerticalBordersEnabled = true;\r\n this.areAlternateRowsEnabled = true;\r\n this.allowSelectTask = true;\r\n this.firstDayOfWeek = 0;\r\n this.editing = new EditingSettings();\r\n this.validation = new ValidationSettings();\r\n this.stripLines = new StripLineSettings();\r\n }\r\n Settings.parse = function (settings) {\r\n var result = new Settings();\r\n if (settings) {\r\n if (common_1.isDefined(settings.viewType))\r\n result.viewType = settings.viewType;\r\n if (common_1.isDefined(settings.taskTitlePosition))\r\n result.taskTitlePosition = settings.taskTitlePosition;\r\n if (common_1.isDefined(settings.showResources))\r\n result.showResources = settings.showResources;\r\n if (common_1.isDefined(settings.areHorizontalBordersEnabled))\r\n result.areHorizontalBordersEnabled = settings.areHorizontalBordersEnabled;\r\n if (common_1.isDefined(settings.areVerticalBordersEnabled))\r\n result.areHorizontalBordersEnabled = settings.areHorizontalBordersEnabled;\r\n if (common_1.isDefined(settings.areAlternateRowsEnabled))\r\n result.areAlternateRowsEnabled = settings.areAlternateRowsEnabled;\r\n if (common_1.isDefined(settings.allowSelectTask))\r\n result.allowSelectTask = settings.allowSelectTask;\r\n if (common_1.isDefined(settings.firstDayOfWeek))\r\n result.firstDayOfWeek = settings.firstDayOfWeek;\r\n if (common_1.isDefined(settings.editing))\r\n result.editing = EditingSettings.parse(settings.editing);\r\n if (common_1.isDefined(settings.validation))\r\n result.validation = ValidationSettings.parse(settings.validation);\r\n if (common_1.isDefined(settings.stripLines))\r\n result.stripLines = StripLineSettings.parse(settings.stripLines);\r\n if (common_1.isDefined(settings.taskTooltipContentTemplate))\r\n result.taskTooltipContentTemplate = settings.taskTooltipContentTemplate;\r\n }\r\n return result;\r\n };\r\n Settings.prototype.equal = function (settings) {\r\n var result = true;\r\n result = result && this.viewType === settings.viewType;\r\n result = result && this.taskTitlePosition === settings.taskTitlePosition;\r\n result = result && this.showResources === settings.showResources;\r\n result = result && this.areHorizontalBordersEnabled === settings.areHorizontalBordersEnabled;\r\n result = result && this.areAlternateRowsEnabled === settings.areAlternateRowsEnabled;\r\n result = result && this.allowSelectTask === settings.allowSelectTask;\r\n result = result && this.editing.equal(settings.editing);\r\n result = result && this.validation.equal(settings.validation);\r\n result = result && this.stripLines.equal(settings.stripLines);\r\n return result;\r\n };\r\n return Settings;\r\n}());\r\nexports.Settings = Settings;\r\nvar EditingSettings = (function () {\r\n function EditingSettings() {\r\n this.enabled = false;\r\n this.allowDependencyDelete = true;\r\n this.allowDependencyInsert = true;\r\n this.allowTaskDelete = true;\r\n this.allowTaskInsert = true;\r\n this.allowTaskUpdate = true;\r\n this.allowResourceDelete = true;\r\n this.allowResourceInsert = true;\r\n this.allowResourceUpdate = true;\r\n this.allowTaskResourceUpdate = true;\r\n }\r\n EditingSettings.parse = function (settings) {\r\n var result = new EditingSettings();\r\n if (settings) {\r\n if (common_1.isDefined(settings.enabled))\r\n result.enabled = settings.enabled;\r\n if (common_1.isDefined(settings.allowDependencyDelete))\r\n result.allowDependencyDelete = settings.allowDependencyDelete;\r\n if (common_1.isDefined(settings.allowDependencyInsert))\r\n result.allowDependencyInsert = settings.allowDependencyInsert;\r\n if (common_1.isDefined(settings.allowTaskDelete))\r\n result.allowTaskDelete = settings.allowTaskDelete;\r\n if (common_1.isDefined(settings.allowTaskInsert))\r\n result.allowTaskInsert = settings.allowTaskInsert;\r\n if (common_1.isDefined(settings.allowTaskUpdate))\r\n result.allowTaskUpdate = settings.allowTaskUpdate;\r\n if (common_1.isDefined(settings.allowResourceDelete))\r\n result.allowResourceDelete = settings.allowResourceDelete;\r\n if (common_1.isDefined(settings.allowResourceInsert))\r\n result.allowResourceInsert = settings.allowResourceInsert;\r\n if (common_1.isDefined(settings.allowResourceUpdate))\r\n result.allowResourceUpdate = settings.allowResourceUpdate;\r\n if (common_1.isDefined(settings.allowTaskResourceUpdate))\r\n result.allowTaskResourceUpdate = settings.allowTaskResourceUpdate;\r\n }\r\n return result;\r\n };\r\n EditingSettings.prototype.equal = function (settings) {\r\n var result = true;\r\n result = result && this.enabled === settings.enabled;\r\n result = result && this.allowDependencyDelete === settings.allowDependencyDelete;\r\n result = result && this.allowDependencyInsert === settings.allowDependencyInsert;\r\n result = result && this.allowTaskDelete === settings.allowTaskDelete;\r\n result = result && this.allowTaskInsert === settings.allowTaskInsert;\r\n result = result && this.allowTaskUpdate === settings.allowTaskUpdate;\r\n result = result && this.allowResourceDelete === settings.allowResourceDelete;\r\n result = result && this.allowResourceInsert === settings.allowResourceInsert;\r\n result = result && this.allowResourceUpdate === settings.allowResourceUpdate;\r\n result = result && this.allowTaskResourceUpdate === settings.allowTaskResourceUpdate;\r\n return result;\r\n };\r\n return EditingSettings;\r\n}());\r\nexports.EditingSettings = EditingSettings;\r\nvar StripLineSettings = (function () {\r\n function StripLineSettings() {\r\n this.showCurrentTime = false;\r\n this.currentTimeUpdateInterval = 60000;\r\n this.stripLines = [];\r\n }\r\n StripLineSettings.parse = function (settings) {\r\n var result = new StripLineSettings();\r\n if (settings) {\r\n if (common_1.isDefined(settings.showCurrentTime))\r\n result.showCurrentTime = settings.showCurrentTime;\r\n if (common_1.isDefined(settings.currentTimeUpdateInterval))\r\n result.currentTimeUpdateInterval = settings.currentTimeUpdateInterval;\r\n if (common_1.isDefined(settings.currentTimeTitle))\r\n result.currentTimeTitle = settings.currentTimeTitle;\r\n if (common_1.isDefined(settings.currentTimeCssClass))\r\n result.currentTimeCssClass = settings.currentTimeCssClass;\r\n if (common_1.isDefined(settings.stripLines))\r\n for (var i = 0; i < settings.stripLines.length; i++)\r\n result.stripLines.push(StripLine.parse(settings.stripLines[i]));\r\n }\r\n return result;\r\n };\r\n StripLineSettings.prototype.equal = function (settings) {\r\n var result = true;\r\n result = result && this.showCurrentTime == settings.showCurrentTime;\r\n result = result && this.currentTimeUpdateInterval == settings.currentTimeUpdateInterval;\r\n result = result && this.currentTimeTitle == settings.currentTimeTitle;\r\n result = result && this.currentTimeCssClass == settings.currentTimeCssClass;\r\n result = result && this.stripLines.length === settings.stripLines.length;\r\n if (result)\r\n for (var i = 0; i < settings.stripLines.length; i++)\r\n result = result && this.stripLines[i].equal(settings.stripLines[i]);\r\n return result;\r\n };\r\n return StripLineSettings;\r\n}());\r\nexports.StripLineSettings = StripLineSettings;\r\nvar StripLine = (function () {\r\n function StripLine(start, end, title, cssClass, isCurrent) {\r\n this.isCurrent = false;\r\n this.start = start;\r\n this.end = end;\r\n this.title = title;\r\n this.cssClass = cssClass;\r\n this.isCurrent = isCurrent;\r\n }\r\n StripLine.parse = function (settings) {\r\n var result = new StripLine();\r\n if (settings) {\r\n if (common_1.isDefined(settings.start))\r\n result.start = settings.start;\r\n if (common_1.isDefined(settings.end))\r\n result.end = settings.end;\r\n if (common_1.isDefined(settings.title))\r\n result.title = settings.title;\r\n if (common_1.isDefined(settings.cssClass))\r\n result.cssClass = settings.cssClass;\r\n }\r\n return result;\r\n };\r\n StripLine.prototype.clone = function () {\r\n return new StripLine(this.start, this.end, this.title, this.cssClass, this.isCurrent);\r\n };\r\n StripLine.prototype.equal = function (stripLine) {\r\n var result = true;\r\n result = result && this.start == stripLine.start;\r\n result = result && this.end == stripLine.end;\r\n result = result && this.title == stripLine.title;\r\n result = result && this.cssClass == stripLine.cssClass;\r\n return result;\r\n };\r\n return StripLine;\r\n}());\r\nexports.StripLine = StripLine;\r\nvar ValidationSettings = (function () {\r\n function ValidationSettings() {\r\n this.validateDependencies = false;\r\n this.autoUpdateParentTasks = false;\r\n this.enablePredecessorGap = false;\r\n }\r\n ValidationSettings.parse = function (settings) {\r\n var result = new ValidationSettings();\r\n if (settings) {\r\n if (common_1.isDefined(settings.validateDependencies))\r\n result.validateDependencies = settings.validateDependencies;\r\n if (common_1.isDefined(settings.autoUpdateParentTasks))\r\n result.autoUpdateParentTasks = settings.autoUpdateParentTasks;\r\n if (common_1.isDefined(settings.enablePredecessorGap))\r\n result.enablePredecessorGap = settings.enablePredecessorGap;\r\n }\r\n return result;\r\n };\r\n ValidationSettings.prototype.equal = function (settings) {\r\n var result = true;\r\n result = result && this.validateDependencies === settings.validateDependencies;\r\n result = result && this.autoUpdateParentTasks === settings.autoUpdateParentTasks;\r\n result = result && this.enablePredecessorGap === settings.enablePredecessorGap;\r\n return result;\r\n };\r\n return ValidationSettings;\r\n}());\r\nexports.ValidationSettings = ValidationSettings;\r\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskEditController = void 0;\r\nvar Enums_1 = __webpack_require__(14);\r\nvar DateRange_1 = __webpack_require__(9);\r\nvar dom_1 = __webpack_require__(3);\r\nvar browser_1 = __webpack_require__(5);\r\nvar TaskEditController = (function () {\r\n function TaskEditController(gantt) {\r\n this.taskIndex = -1;\r\n this.successorIndex = -1;\r\n this.editing = false;\r\n this.gantt = gantt;\r\n this.createElements();\r\n }\r\n Object.defineProperty(TaskEditController.prototype, \"taskId\", {\r\n get: function () {\r\n return this.gantt.viewModel.items[this.taskIndex].task.internalId;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskEditController.prototype, \"successorId\", {\r\n get: function () {\r\n return this.gantt.viewModel.items[this.successorIndex].task.internalId;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskEditController.prototype, \"task\", {\r\n get: function () {\r\n return this.viewItem.task;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskEditController.prototype, \"viewItem\", {\r\n get: function () {\r\n return this.gantt.viewModel.items[this.taskIndex];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TaskEditController.prototype.show = function (taskIndex) {\r\n if (!this.editing) {\r\n this.taskIndex = taskIndex;\r\n this.updateWrapInfo();\r\n this.wrapInfo.assignPosition(this.baseElement);\r\n this.wrapInfo.assignSize(this.baseElement);\r\n this.gantt.taskArea.appendChild(this.baseElement);\r\n this.baseElement.className = TaskEditController.CLASSNAMES.TASK_EDIT_BOX;\r\n if (!this.gantt.settings.editing.enabled || !this.gantt.settings.editing.allowDependencyInsert)\r\n this.baseElement.className = this.baseElement.className + \" hide-dependency\";\r\n if (this.task.isMilestone())\r\n this.baseElement.className = this.baseElement.className + \" milestone\";\r\n else {\r\n if (!this.gantt.settings.editing.enabled || !this.gantt.settings.editing.allowTaskUpdate || !this.canUpdateTask())\r\n this.baseElement.className = this.baseElement.className + \" hide-updating\";\r\n this.progressEdit.style.left = ((this.task.progress / 100) *\r\n this.wrapInfo.size.width - (this.progressEdit.offsetWidth / 2)) + \"px\";\r\n }\r\n this.taskDateRange = new DateRange_1.DateRange(this.task.start, this.task.end);\r\n }\r\n };\r\n TaskEditController.prototype.hide = function () {\r\n var parentNode = this.baseElement.parentNode;\r\n if (parentNode)\r\n parentNode.removeChild(this.baseElement);\r\n this.tooltip.hide();\r\n };\r\n TaskEditController.prototype.showTaskInfo = function (posX, delay) {\r\n if (delay === void 0) { delay = 500; }\r\n this.tooltip.showInfo(this.task, posX, delay, this.gantt.settings.taskTooltipContentTemplate);\r\n };\r\n TaskEditController.prototype.updateWrapInfo = function () {\r\n this.wrapInfo = this.getTaskWrapperElementInfo(this.taskIndex);\r\n this.wrapInfo.position.x--;\r\n };\r\n TaskEditController.prototype.isAllowedToConnectTasks = function (taskIndex) {\r\n var isAnotherTask = this.successorIndex !== taskIndex && this.taskIndex !== taskIndex;\r\n var successorViewItem = this.gantt.viewModel.items[taskIndex];\r\n var isChild = this.viewItem.children.some(function (c) { return c.task.internalId === successorViewItem.task.internalId; });\r\n return isAnotherTask && !isChild;\r\n };\r\n TaskEditController.prototype.showDependencySuccessor = function (taskIndex) {\r\n if (this.isAllowedToConnectTasks(taskIndex)) {\r\n this.successorIndex = taskIndex;\r\n var wrapInfo = this.getTaskWrapperElementInfo(taskIndex);\r\n wrapInfo.assignPosition(this.dependencySuccessorBaseElement);\r\n wrapInfo.assignSize(this.dependencySuccessorBaseElement);\r\n wrapInfo.assignSize(this.dependencySuccessorFrame);\r\n this.gantt.taskArea.appendChild(this.dependencySuccessorBaseElement);\r\n }\r\n };\r\n TaskEditController.prototype.hideDependencySuccessor = function () {\r\n var parentNode = this.dependencySuccessorBaseElement.parentNode;\r\n if (parentNode)\r\n parentNode.removeChild(this.dependencySuccessorBaseElement);\r\n this.successorIndex = -1;\r\n };\r\n TaskEditController.prototype.processProgress = function (position) {\r\n this.editing = true;\r\n var progressOffset = position.x - this.wrapInfo.position.x;\r\n var progress = 0;\r\n if (position.x > this.wrapInfo.position.x)\r\n if (position.x < this.wrapInfo.position.x + this.wrapInfo.size.width)\r\n progress = Math.round((progressOffset) / this.baseElement.clientWidth * 100);\r\n else\r\n progress = 100;\r\n this.progressEdit.style.left = ((progress / 100) *\r\n this.wrapInfo.size.width - (this.progressEdit.offsetWidth / 2)) + \"px\";\r\n this.tooltip.showProgress(progress, dom_1.DomUtils.getAbsolutePositionX(this.progressEdit) + this.progressEdit.offsetWidth / 2);\r\n };\r\n TaskEditController.prototype.confirmProgress = function () {\r\n this.editing = false;\r\n var progress = Math.round((this.progressEdit.offsetLeft + (this.progressEdit.offsetWidth / 2)) / this.wrapInfo.size.width * 100);\r\n this.gantt.commandManager.changeTaskProgressCommand.execute(this.taskId, progress);\r\n };\r\n TaskEditController.prototype.processEnd = function (position) {\r\n this.baseElement.className = this.baseElement.className + \" move\";\r\n this.editing = true;\r\n var positionX = position.x > this.wrapInfo.position.x ? position.x : this.wrapInfo.position.x;\r\n var width = positionX - this.wrapInfo.position.x;\r\n this.baseElement.style.width = (width < 1 ? 0 : width) + \"px\";\r\n var startDate = this.task.start;\r\n var date = this.gantt.gridLayoutCalculator.getDateByPos(positionX);\r\n date.setSeconds(0);\r\n if (date < startDate || width < 1)\r\n this.taskDateRange.end.setTime(startDate.getTime());\r\n else\r\n this.taskDateRange.end = this.getCorrectedDate(this.task.end, date);\r\n this.tooltip.showTime(startDate, this.taskDateRange.end, dom_1.DomUtils.getAbsolutePositionX(this.baseElement) + this.baseElement.clientWidth);\r\n };\r\n TaskEditController.prototype.confirmEnd = function () {\r\n this.baseElement.className = TaskEditController.CLASSNAMES.TASK_EDIT_BOX;\r\n this.editing = false;\r\n this.gantt.commandManager.changeTaskEndCommand.execute(this.taskId, this.taskDateRange.end);\r\n this.hide();\r\n this.updateWrapInfo();\r\n };\r\n TaskEditController.prototype.processStart = function (position) {\r\n this.baseElement.className = this.baseElement.className + \" move\";\r\n this.editing = true;\r\n var positionX = position.x < this.wrapInfo.position.x + this.wrapInfo.size.width ? position.x : this.wrapInfo.position.x + this.wrapInfo.size.width;\r\n var width = this.wrapInfo.size.width - (positionX - this.wrapInfo.position.x);\r\n this.baseElement.style.left = positionX + \"px\";\r\n this.baseElement.style.width = (width < 1 ? 0 : width) + \"px\";\r\n var endDate = this.task.end;\r\n var date = this.gantt.gridLayoutCalculator.getDateByPos(positionX);\r\n date.setSeconds(0);\r\n if (date > endDate || width < 1)\r\n this.taskDateRange.start.setTime(endDate.getTime());\r\n else\r\n this.taskDateRange.start = this.getCorrectedDate(this.task.start, date);\r\n this.tooltip.showTime(this.taskDateRange.start, endDate, dom_1.DomUtils.getAbsolutePositionX(this.baseElement));\r\n };\r\n TaskEditController.prototype.confirmStart = function () {\r\n this.baseElement.className = TaskEditController.CLASSNAMES.TASK_EDIT_BOX;\r\n this.editing = false;\r\n this.gantt.commandManager.changeTaskStartCommand.execute(this.taskId, this.taskDateRange.start);\r\n this.hide();\r\n this.updateWrapInfo();\r\n };\r\n TaskEditController.prototype.processMove = function (delta) {\r\n if (this.gantt.settings.editing.enabled && this.gantt.settings.editing.allowTaskUpdate) {\r\n this.baseElement.className = this.baseElement.className + \" move\";\r\n var left = this.baseElement.offsetLeft + delta;\r\n this.baseElement.style.left = left + \"px\";\r\n var startDate = this.gantt.gridLayoutCalculator.getDateByPos(left);\r\n this.taskDateRange.start = this.getCorrectedDate(this.task.start, startDate);\r\n var dateDiff = this.task.start.getTime() - this.taskDateRange.start.getTime();\r\n var endDate = new Date(this.task.end.getTime() - dateDiff);\r\n this.taskDateRange.end = endDate;\r\n this.editing = this.gantt.modelManipulator.dispatcher.raiseTaskMoving(this.task, this.taskDateRange.start, this.taskDateRange.end, this.onTaskMovingCallback.bind(this));\r\n if (this.editing)\r\n this.tooltip.showTime(this.taskDateRange.start, this.taskDateRange.end, dom_1.DomUtils.getAbsolutePositionX(this.baseElement));\r\n return this.editing;\r\n }\r\n return true;\r\n };\r\n TaskEditController.prototype.onTaskMovingCallback = function (newStart, newEnd) {\r\n if (this.taskDateRange.start === newStart && this.taskDateRange.end === newEnd)\r\n return;\r\n var calculator = this.gantt.gridLayoutCalculator;\r\n var newLeft = calculator.getPosByDate(newStart);\r\n var newWidth = calculator.getPosByDate(newEnd) - newLeft;\r\n this.baseElement.style.left = newLeft + \"px\";\r\n this.baseElement.style.width = (newWidth < 1 ? 0 : newWidth) + \"px\";\r\n this.taskDateRange.start = newStart;\r\n this.taskDateRange.end = newEnd;\r\n };\r\n TaskEditController.prototype.confirmMove = function () {\r\n if (this.gantt.settings.editing.enabled && this.gantt.settings.editing.allowTaskUpdate) {\r\n if (!this.gantt.settings.editing.allowDependencyInsert)\r\n this.baseElement.className = this.baseElement.className + \" hide-dependency\";\r\n if (this.editing) {\r\n this.baseElement.className = TaskEditController.CLASSNAMES.TASK_EDIT_BOX;\r\n this.gantt.commandManager.taskMoveCommand.execute(this.taskId, this.taskDateRange.start, this.taskDateRange.end);\r\n this.updateWrapInfo();\r\n this.hide();\r\n this.editing = false;\r\n }\r\n }\r\n };\r\n TaskEditController.prototype.getCorrectedDate = function (referenceDate, newDate) {\r\n if (this.gantt.settings.viewType > Enums_1.ViewType.SixHours) {\r\n var year = newDate.getFullYear();\r\n var month = newDate.getMonth();\r\n var day = newDate.getDate();\r\n var hours = this.gantt.settings.viewType == Enums_1.ViewType.Days ? newDate.getHours() : referenceDate.getHours();\r\n var minutes = referenceDate.getMinutes();\r\n var sec = referenceDate.getSeconds();\r\n var msec = referenceDate.getMilliseconds();\r\n return new Date(year, month, day, hours, minutes, sec, msec);\r\n }\r\n return newDate;\r\n };\r\n TaskEditController.prototype.startDependency = function (pos) {\r\n this.dependencyLine = document.createElement(\"DIV\");\r\n this.dependencyLine.className = TaskEditController.CLASSNAMES.TASK_EDIT_DEPENDENCY_LINE;\r\n this.gantt.taskArea.appendChild(this.dependencyLine);\r\n this.startPosition = pos;\r\n };\r\n TaskEditController.prototype.processDependency = function (pos) {\r\n this.editing = true;\r\n this.drawline(this.startPosition, pos);\r\n };\r\n TaskEditController.prototype.endDependency = function (type) {\r\n this.editing = false;\r\n if (type != null)\r\n this.gantt.commandManager.createDependencyCommand.execute(this.task.internalId, this.successorId, type);\r\n var parentNode = this.dependencyLine.parentNode;\r\n if (parentNode)\r\n parentNode.removeChild(this.dependencyLine);\r\n this.dependencyLine = null;\r\n this.hideDependencySuccessor();\r\n this.hide();\r\n };\r\n TaskEditController.prototype.selectDependency = function (id) {\r\n if (this.gantt.settings.editing.allowDependencyDelete)\r\n this.dependencyId = id;\r\n };\r\n TaskEditController.prototype.isDependencySelected = function (id) {\r\n return this.dependencyId && this.dependencyId == id;\r\n };\r\n TaskEditController.prototype.deleteSelectedDependency = function () {\r\n if (this.dependencyId)\r\n this.gantt.commandManager.removeDependencyCommand.execute(this.dependencyId);\r\n };\r\n TaskEditController.prototype.getTaskWrapperElementInfo = function (taskIndex) {\r\n var calculator = this.gantt.gridLayoutCalculator;\r\n var info = calculator.getTaskWrapperElementInfo(taskIndex);\r\n info.size.width = calculator.getTaskWidth(taskIndex);\r\n info.size.height = calculator.getTaskHeight(taskIndex);\r\n return info;\r\n };\r\n TaskEditController.prototype.createElements = function () {\r\n this.baseElement = document.createElement(\"DIV\");\r\n this.baseFrame = document.createElement(\"DIV\");\r\n this.baseFrame.className = TaskEditController.CLASSNAMES.TASK_EDIT_FRAME;\r\n this.baseElement.appendChild(this.baseFrame);\r\n this.progressEdit = document.createElement(\"DIV\");\r\n this.progressEdit.className = TaskEditController.CLASSNAMES.TASK_EDIT_PROGRESS;\r\n this.baseFrame.appendChild(this.progressEdit);\r\n this.progressEdit.appendChild(document.createElement(\"DIV\"));\r\n this.dependencyFinish = document.createElement(\"DIV\");\r\n this.dependencyFinish.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_DEPENDENCY_RIGTH);\r\n if (browser_1.Browser.TouchUI)\r\n this.dependencyFinish.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_TOUCH);\r\n this.baseFrame.appendChild(this.dependencyFinish);\r\n this.dependencyStart = document.createElement(\"DIV\");\r\n this.dependencyStart.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_DEPENDENCY_LEFT);\r\n if (browser_1.Browser.TouchUI)\r\n this.dependencyStart.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_TOUCH);\r\n this.baseFrame.appendChild(this.dependencyStart);\r\n this.startEdit = document.createElement(\"DIV\");\r\n this.startEdit.className = TaskEditController.CLASSNAMES.TASK_EDIT_START;\r\n this.baseFrame.appendChild(this.startEdit);\r\n this.endEdit = document.createElement(\"DIV\");\r\n this.endEdit.className = TaskEditController.CLASSNAMES.TASK_EDIT_END;\r\n this.baseFrame.appendChild(this.endEdit);\r\n this.dependencySuccessorBaseElement = document.createElement(\"DIV\");\r\n this.dependencySuccessorBaseElement.className = TaskEditController.CLASSNAMES.TASK_EDIT_BOX_SUCCESSOR;\r\n this.dependencySuccessorFrame = document.createElement(\"DIV\");\r\n this.dependencySuccessorFrame.className = TaskEditController.CLASSNAMES.TASK_EDIT_FRAME_SUCCESSOR;\r\n this.dependencySuccessorBaseElement.appendChild(this.dependencySuccessorFrame);\r\n this.dependencySuccessorStart = document.createElement(\"DIV\");\r\n this.dependencySuccessorStart.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_SUCCESSOR_DEPENDENCY_RIGTH);\r\n if (browser_1.Browser.TouchUI)\r\n this.dependencySuccessorStart.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_TOUCH);\r\n this.dependencySuccessorFrame.appendChild(this.dependencySuccessorStart);\r\n this.dependencySuccessorFinish = document.createElement(\"DIV\");\r\n this.dependencySuccessorFinish.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_SUCCESSOR_DEPENDENCY_LEFT);\r\n if (browser_1.Browser.TouchUI)\r\n this.dependencySuccessorFinish.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_TOUCH);\r\n this.dependencySuccessorFrame.appendChild(this.dependencySuccessorFinish);\r\n this.tooltip = new TaskEditTooltip(this.baseElement, this.gantt, this.gantt.elementTextHelper.cultureInfo);\r\n this.attachEvents();\r\n };\r\n TaskEditController.prototype.attachEvents = function () {\r\n this.onMouseLeaveHandler = function () {\r\n if (!this.editing)\r\n this.hide();\r\n }.bind(this);\r\n this.baseElement.addEventListener(\"mouseleave\", this.onMouseLeaveHandler);\r\n };\r\n TaskEditController.prototype.drawline = function (start, end) {\r\n if (start.x > end.x) {\r\n var temp = end;\r\n end = start;\r\n start = temp;\r\n }\r\n var angle = Math.atan((start.y - end.y) / (end.x - start.x));\r\n angle = (angle * 180 / Math.PI);\r\n angle = -angle;\r\n var length = Math.sqrt((start.x - end.x) * (start.x - end.x) + (start.y - end.y) * (start.y - end.y));\r\n this.dependencyLine.style.left = start.x + \"px\";\r\n this.dependencyLine.style.top = start.y + \"px\";\r\n this.dependencyLine.style.width = length + \"px\";\r\n this.dependencyLine.style.transform = \"rotate(\" + angle + \"deg)\";\r\n };\r\n TaskEditController.prototype.canUpdateTask = function () {\r\n return !this.gantt.viewModel.isTaskToCalculateByChildren(this.task.internalId);\r\n };\r\n TaskEditController.prototype.detachEvents = function () {\r\n this.baseElement.removeEventListener(\"mouseleave\", this.onMouseLeaveHandler);\r\n };\r\n TaskEditController.CLASSNAMES = {\r\n TASK_EDIT_BOX: \"dx-gantt-task-edit-wrapper\",\r\n TASK_EDIT_FRAME: \"dx-gantt-task-edit-frame\",\r\n TASK_EDIT_PROGRESS: \"dx-gantt-task-edit-progress\",\r\n TASK_EDIT_DEPENDENCY_RIGTH: \"dx-gantt-task-edit-dependency-r\",\r\n TASK_EDIT_DEPENDENCY_LEFT: \"dx-gantt-task-edit-dependency-l\",\r\n TASK_EDIT_START: \"dx-gantt-task-edit-start\",\r\n TASK_EDIT_END: \"dx-gantt-task-edit-end\",\r\n TASK_EDIT_DEPENDENCY_LINE: \"dx-gantt-task-edit-dependency-line\",\r\n TASK_EDIT_BOX_SUCCESSOR: \"dx-gantt-task-edit-wrapper-successor\",\r\n TASK_EDIT_FRAME_SUCCESSOR: \"dx-gantt-task-edit-frame-successor\",\r\n TASK_EDIT_SUCCESSOR_DEPENDENCY_RIGTH: \"dx-gantt-task-edit-successor-dependency-r\",\r\n TASK_EDIT_SUCCESSOR_DEPENDENCY_LEFT: \"dx-gantt-task-edit-successor-dependency-l\",\r\n TASK_EDIT_TOUCH: \"dx-gantt-edit-touch\"\r\n };\r\n return TaskEditController;\r\n}());\r\nexports.TaskEditController = TaskEditController;\r\nvar TaskEditTooltip = (function () {\r\n function TaskEditTooltip(parentElement, owner, cultureInfo) {\r\n this.parentElement = parentElement;\r\n this.baseElement = document.createElement(\"DIV\");\r\n this.baseElement.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_PROGRESS_STATUS;\r\n parentElement.appendChild(this.baseElement);\r\n this.owner = owner;\r\n this.cultureInfo = cultureInfo;\r\n }\r\n TaskEditTooltip.prototype.setDefaultTooltip = function (task) {\r\n this.defaultTooltip = document.createElement(\"DIV\");\r\n this.defaultTooltip.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_DEFAULT;\r\n var titleWrapper = document.createElement(\"DIV\");\r\n titleWrapper.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_TASK_TITLE;\r\n var title = document.createElement(\"SPAN\");\r\n titleWrapper.appendChild(title);\r\n this.defaultTooltip.appendChild(titleWrapper);\r\n title.innerText = task.title;\r\n this.defaultTooltip.appendChild(this.getTimeContent(task.start, task.end));\r\n if (!isNaN(task.progress)) {\r\n var progressElement = document.createElement(\"DIV\");\r\n progressElement.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_PROGRESS_STATUS_TIME;\r\n var progressTitle = document.createElement(\"SPAN\");\r\n var progressValue = document.createElement(\"SPAN\");\r\n progressElement.appendChild(progressTitle);\r\n progressElement.appendChild(progressValue);\r\n this.defaultTooltip.appendChild(progressElement);\r\n progressTitle.innerText = (this.cultureInfo.progress ? this.cultureInfo.progress : \"Progress\") + \": \";\r\n progressValue.innerText = task.progress + \"%\";\r\n }\r\n this.baseElement.appendChild(this.defaultTooltip);\r\n };\r\n TaskEditTooltip.prototype.showInfo = function (task, posX, delay, tooltipTemplateFunction) {\r\n var _this = this;\r\n if (delay === void 0) { delay = 0; }\r\n var isTooltipShowing = true;\r\n this.owner.destroyTemplate(this.baseElement);\r\n if (tooltipTemplateFunction)\r\n isTooltipShowing = tooltipTemplateFunction(this.baseElement, task);\r\n else\r\n this.setDefaultTooltip(task);\r\n isTooltipShowing = isTooltipShowing && !!this.baseElement.innerHTML;\r\n if (isTooltipShowing) {\r\n var showInfoFunc = function () {\r\n _this.show(posX, false);\r\n };\r\n if (delay)\r\n this.timerId = setTimeout(showInfoFunc, delay);\r\n else\r\n showInfoFunc();\r\n }\r\n };\r\n TaskEditTooltip.prototype.showProgress = function (progress, posX) {\r\n this.owner.destroyTemplate(this.baseElement);\r\n this.defaultTooltip = document.createElement(\"DIV\");\r\n this.defaultTooltip.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_DEFAULT;\r\n this.defaultTooltip.innerText = progress + \"%\";\r\n this.baseElement.appendChild(this.defaultTooltip);\r\n this.show(posX);\r\n };\r\n TaskEditTooltip.prototype.showTime = function (start, end, posX) {\r\n this.owner.destroyTemplate(this.baseElement);\r\n this.defaultTooltip = document.createElement(\"DIV\");\r\n this.defaultTooltip.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_DEFAULT;\r\n this.defaultTooltip.appendChild(this.getTimeContent(start, end));\r\n this.baseElement.appendChild(this.defaultTooltip);\r\n this.show(posX);\r\n };\r\n TaskEditTooltip.prototype.show = function (posX, autoHide) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n if (autoHide === void 0) { autoHide = true; }\r\n var arrowHeight = 5;\r\n var heightOffset = 15;\r\n (_a = this.defaultTooltip) === null || _a === void 0 ? void 0 : _a.classList.remove(TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_ARROW_AFTER);\r\n (_b = this.defaultTooltip) === null || _b === void 0 ? void 0 : _b.classList.remove(TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_ARROW_BEFORE);\r\n this.baseElement.style.display = \"block\";\r\n var absolutePositionY = dom_1.DomUtils.getAbsolutePositionY(this.parentElement);\r\n var absoluteX = dom_1.DomUtils.getAbsolutePositionX(this.parentElement);\r\n var leftPosition = posX - absoluteX - 2 * arrowHeight;\r\n var absoluteDistance = absolutePositionY - this.owner.header.clientHeight - dom_1.DomUtils.getDocumentScrollTop() - heightOffset;\r\n var isShowingDown = this.baseElement.clientHeight > absoluteDistance || this.baseElement.clientHeight > this.parentElement.offsetTop;\r\n var topPosition = -this.baseElement.clientHeight - arrowHeight;\r\n if (isShowingDown) {\r\n topPosition = this.parentElement.clientHeight + arrowHeight;\r\n (_c = this.defaultTooltip) === null || _c === void 0 ? void 0 : _c.classList.add(TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_ARROW_AFTER);\r\n }\r\n else\r\n (_d = this.defaultTooltip) === null || _d === void 0 ? void 0 : _d.classList.add(TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_ARROW_BEFORE);\r\n this.baseElement.style.left = leftPosition + \"px\";\r\n this.baseElement.style.top = topPosition + \"px\";\r\n if (autoHide) {\r\n if (this.timerId)\r\n clearTimeout(this.timerId);\r\n this.timerId = setTimeout(function () {\r\n _this.baseElement.style.display = \"none\";\r\n }, 1500);\r\n }\r\n };\r\n TaskEditTooltip.prototype.hide = function () {\r\n this.baseElement.style.display = \"none\";\r\n clearTimeout(this.timerId);\r\n };\r\n TaskEditTooltip.prototype.getTimeContent = function (start, end) {\r\n var timeElement = document.createElement(\"TABLE\");\r\n timeElement.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_PROGRESS_STATUS_TIME;\r\n var body = document.createElement(\"TBODY\");\r\n timeElement.appendChild(body);\r\n var startEl = document.createElement(\"TR\");\r\n var startTitle = document.createElement(\"TD\");\r\n var startValue = document.createElement(\"TD\");\r\n var endEl = document.createElement(\"TR\");\r\n var endTitle = document.createElement(\"TD\");\r\n var endValue = document.createElement(\"TD\");\r\n startEl.appendChild(startTitle);\r\n startEl.appendChild(startValue);\r\n endEl.appendChild(endTitle);\r\n endEl.appendChild(endValue);\r\n body.appendChild(startEl);\r\n body.appendChild(endEl);\r\n startTitle.innerText = (this.cultureInfo.start ? this.cultureInfo.start : \"Start\") + \": \";\r\n startValue.innerText = this.formatDate(start);\r\n endTitle.innerText = (this.cultureInfo.end ? this.cultureInfo.end : \"End\") + \": \";\r\n endValue.innerText = this.formatDate(end);\r\n return timeElement;\r\n };\r\n TaskEditTooltip.prototype.formatDate = function (date) {\r\n return this.owner.getDateFormat(date);\r\n };\r\n TaskEditTooltip.CLASSNAMES = {\r\n TASK_EDIT_PROGRESS_STATUS: \"dx-gantt-task-edit-tooltip\",\r\n TASK_EDIT_TOOLTIP_DEFAULT: \"dx-gantt-task-edit-tooltip-default\",\r\n TASK_EDIT_TASK_TITLE: \"dx-gantt-task-title\",\r\n TASK_EDIT_PROGRESS_STATUS_TIME: \"dx-gantt-status-time\",\r\n TASK_EDIT_TOOLTIP_ARROW_BEFORE: \"dx-gantt-task-edit-tooltip-before\",\r\n TASK_EDIT_TOOLTIP_ARROW_AFTER: \"dx-gantt-task-edit-tooltip-after\"\r\n };\r\n return TaskEditTooltip;\r\n}());\r\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HistoryItemState = void 0;\r\nvar HistoryItemState = (function () {\r\n function HistoryItemState(id, value) {\r\n this.id = id;\r\n this.value = value;\r\n }\r\n return HistoryItemState;\r\n}());\r\nexports.HistoryItemState = HistoryItemState;\r\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar _a;\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HandlerBase = void 0;\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar TaskEditController_1 = __webpack_require__(45);\r\nvar HandlerBase = (function () {\r\n function HandlerBase(control) {\r\n this.control = control;\r\n this.switchToDefaultState();\r\n }\r\n HandlerBase.prototype.switchState = function (state) {\r\n if (this.state)\r\n this.state.finish();\r\n this.state = state;\r\n this.state.start();\r\n };\r\n HandlerBase.prototype.switchToDefaultState = function () {\r\n throw new Error(\"Not implemented\");\r\n };\r\n HandlerBase.prototype.getEventSource = function (initSource) {\r\n var source = initSource.nodeType === Node.ELEMENT_NODE ? initSource : initSource.parentNode;\r\n var className = source.classList[0];\r\n return HandlerBase.classToSource[className] || TaskAreaManager_1.MouseEventSource.TaskArea;\r\n };\r\n HandlerBase.classToSource = (_a = {},\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_PROGRESS] = TaskAreaManager_1.MouseEventSource.TaskEdit_Progress,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_START] = TaskAreaManager_1.MouseEventSource.TaskEdit_Start,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_END] = TaskAreaManager_1.MouseEventSource.TaskEdit_End,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_FRAME] = TaskAreaManager_1.MouseEventSource.TaskEdit_Frame,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_DEPENDENCY_RIGTH] = TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyStart,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_DEPENDENCY_LEFT] = TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyFinish,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_SUCCESSOR_DEPENDENCY_RIGTH] = TaskAreaManager_1.MouseEventSource.Successor_DependencyStart,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_SUCCESSOR_DEPENDENCY_LEFT] = TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish,\r\n _a);\r\n return HandlerBase;\r\n}());\r\nexports.HandlerBase = HandlerBase;\r\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerDependencyState = exports.dependencyMap = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar point_1 = __webpack_require__(4);\r\nvar dom_1 = __webpack_require__(3);\r\nvar evt_1 = __webpack_require__(6);\r\nvar MouseHandlerStateBase_1 = __webpack_require__(29);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar Dependency_1 = __webpack_require__(11);\r\nexports.dependencyMap = [];\r\nexports.dependencyMap[TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyStart] = [];\r\nexports.dependencyMap[TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyFinish] = [];\r\nexports.dependencyMap[TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyStart][TaskAreaManager_1.MouseEventSource.Successor_DependencyStart] = Dependency_1.DependencyType.SS;\r\nexports.dependencyMap[TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyStart][TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish] = Dependency_1.DependencyType.SF;\r\nexports.dependencyMap[TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyFinish][TaskAreaManager_1.MouseEventSource.Successor_DependencyStart] = Dependency_1.DependencyType.FS;\r\nexports.dependencyMap[TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyFinish][TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish] = Dependency_1.DependencyType.FF;\r\nvar MouseHandlerDependencyState = (function (_super) {\r\n tslib_1.__extends(MouseHandlerDependencyState, _super);\r\n function MouseHandlerDependencyState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerDependencyState.prototype.onMouseDown = function (evt) {\r\n var sourceElement = evt_1.EvtUtils.getEventSource(evt);\r\n this.source = this.handler.getEventSource(sourceElement);\r\n var pos = this.getRelativePos(new point_1.Point(dom_1.DomUtils.getAbsolutePositionX(sourceElement) + sourceElement.clientWidth / 2, dom_1.DomUtils.getAbsolutePositionY(sourceElement) + sourceElement.clientHeight / 2));\r\n this.handler.control.taskEditController.startDependency(pos);\r\n };\r\n MouseHandlerDependencyState.prototype.onMouseUp = function (evt) {\r\n if (evt instanceof PointerEvent) {\r\n var relativePosStart = this.getRelativePos(new point_1.Point(dom_1.DomUtils.getAbsolutePositionX(this.handler.control.taskEditController.dependencySuccessorStart) + this.handler.control.taskEditController.dependencySuccessorStart.clientWidth / 2, dom_1.DomUtils.getAbsolutePositionY(this.handler.control.taskEditController.dependencySuccessorStart) + this.handler.control.taskEditController.dependencySuccessorStart.clientHeight / 2));\r\n var relativePosEnd = this.getRelativePos(new point_1.Point(dom_1.DomUtils.getAbsolutePositionX(this.handler.control.taskEditController.dependencySuccessorFinish) + this.handler.control.taskEditController.dependencySuccessorFinish.clientWidth / 2, dom_1.DomUtils.getAbsolutePositionY(this.handler.control.taskEditController.dependencySuccessorFinish) + this.handler.control.taskEditController.dependencySuccessorFinish.clientHeight / 2));\r\n var relativeTouchPos = this.getRelativePos(new point_1.Point(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.getEventY(evt)));\r\n var target = this.isTouchNearby(relativeTouchPos, relativePosStart) ? TaskAreaManager_1.MouseEventSource.Successor_DependencyStart :\r\n this.isTouchNearby(relativeTouchPos, relativePosEnd) ? TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish : null;\r\n var type = target === TaskAreaManager_1.MouseEventSource.Successor_DependencyStart || target == TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish ?\r\n exports.dependencyMap[this.source][target] : null;\r\n this.handler.control.taskEditController.endDependency(type);\r\n }\r\n else {\r\n var target = this.handler.getEventSource(evt_1.EvtUtils.getEventSource(evt));\r\n var type = target === TaskAreaManager_1.MouseEventSource.Successor_DependencyStart || target == TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish ?\r\n exports.dependencyMap[this.source][target] : null;\r\n this.handler.control.taskEditController.endDependency(type);\r\n }\r\n this.handler.switchToDefaultState();\r\n };\r\n MouseHandlerDependencyState.prototype.onMouseMove = function (evt) {\r\n evt.preventDefault();\r\n var relativePos = this.getRelativePos(new point_1.Point(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.getEventY(evt)));\r\n var hoverTaskIndex = Math.floor(relativePos.y / this.handler.control.tickSize.height);\r\n this.handler.control.taskEditController.processDependency(relativePos);\r\n if (this.handler.control.viewModel.tasks.items[hoverTaskIndex])\r\n this.handler.control.taskEditController.showDependencySuccessor(hoverTaskIndex);\r\n };\r\n MouseHandlerDependencyState.prototype.isTouchNearby = function (touchPos, elementPos) {\r\n if (Math.abs(elementPos.x - touchPos.x) <= 10 && Math.abs(elementPos.y - touchPos.y) <= 10)\r\n return true;\r\n return false;\r\n };\r\n return MouseHandlerDependencyState;\r\n}(MouseHandlerStateBase_1.MouseHandlerStateBase));\r\nexports.MouseHandlerDependencyState = MouseHandlerDependencyState;\r\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerStateBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerStateBase_1 = __webpack_require__(19);\r\nvar TouchHandlerStateBase = (function (_super) {\r\n tslib_1.__extends(TouchHandlerStateBase, _super);\r\n function TouchHandlerStateBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerStateBase.prototype.onTouchStart = function (_evt) { };\r\n TouchHandlerStateBase.prototype.onDoubleTap = function (_evt) { };\r\n TouchHandlerStateBase.prototype.onTouchEnd = function (_evt) { };\r\n TouchHandlerStateBase.prototype.onTouchMove = function (_evt) { };\r\n return TouchHandlerStateBase;\r\n}(HandlerStateBase_1.HandlerStateBase));\r\nexports.TouchHandlerStateBase = TouchHandlerStateBase;\r\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskEditDialogShowingArguments = exports.TaskUpdatingArguments = exports.TaskRemovingArguments = exports.TaskInsertingArguments = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar BaseArguments_1 = __webpack_require__(20);\r\nvar TaskInsertingArguments = (function (_super) {\r\n tslib_1.__extends(TaskInsertingArguments, _super);\r\n function TaskInsertingArguments(key, data) {\r\n var _this = _super.call(this, key) || this;\r\n _this.values = data !== null && data !== void 0 ? data : {};\r\n return _this;\r\n }\r\n Object.defineProperty(TaskInsertingArguments.prototype, \"start\", {\r\n get: function () { return this.values.start; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskInsertingArguments.prototype, \"end\", {\r\n get: function () { return this.values.end; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskInsertingArguments.prototype, \"title\", {\r\n get: function () { return this.values.title; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskInsertingArguments.prototype, \"progress\", {\r\n get: function () { return this.values.progress; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskInsertingArguments.prototype, \"parentId\", {\r\n get: function () { return this.values.parentId; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskInsertingArguments.prototype, \"color\", {\r\n get: function () { return this.values.color; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return TaskInsertingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.TaskInsertingArguments = TaskInsertingArguments;\r\nvar TaskRemovingArguments = (function (_super) {\r\n tslib_1.__extends(TaskRemovingArguments, _super);\r\n function TaskRemovingArguments(task) {\r\n var _this = _super.call(this, task.id) || this;\r\n _this.values = task;\r\n return _this;\r\n }\r\n return TaskRemovingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.TaskRemovingArguments = TaskRemovingArguments;\r\nvar TaskUpdatingArguments = (function (_super) {\r\n tslib_1.__extends(TaskUpdatingArguments, _super);\r\n function TaskUpdatingArguments(task, fieldNames, newValues) {\r\n var _this = _super.call(this, task.id) || this;\r\n _this.values = task;\r\n _this.createNewValues(fieldNames, newValues);\r\n return _this;\r\n }\r\n TaskUpdatingArguments.prototype.createNewValues = function (fieldNames, newValues) {\r\n var _this = this;\r\n this.newValues = {};\r\n var _loop_1 = function (i) {\r\n var fieldName = fieldNames[i];\r\n this_1.newValues[fieldName] = newValues[i];\r\n Object.defineProperty(this_1, fieldName, {\r\n get: function () { return _this.newValues[fieldName]; }\r\n });\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < fieldNames.length; i++) {\r\n _loop_1(i);\r\n }\r\n };\r\n return TaskUpdatingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.TaskUpdatingArguments = TaskUpdatingArguments;\r\nvar TaskEditDialogShowingArguments = (function (_super) {\r\n tslib_1.__extends(TaskEditDialogShowingArguments, _super);\r\n function TaskEditDialogShowingArguments(params) {\r\n var _this = _super.call(this, params.id) || this;\r\n _this.values = {\r\n start: params.start,\r\n end: params.end,\r\n title: params.title,\r\n progress: params.progress\r\n };\r\n _this.hiddenFields = params.hiddenFields;\r\n _this.readOnlyFields = params.readOnlyFields;\r\n return _this;\r\n }\r\n return TaskEditDialogShowingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.TaskEditDialogShowingArguments = TaskEditDialogShowingArguments;\r\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RemoveTaskHistoryItem = exports.CreateTaskHistoryItem = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(12);\r\nvar TaskDependencyHistoryItem_1 = __webpack_require__(21);\r\nvar CreateTaskHistoryItem = (function (_super) {\r\n tslib_1.__extends(CreateTaskHistoryItem, _super);\r\n function CreateTaskHistoryItem(modelManipulator, data) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.data = data;\r\n return _this;\r\n }\r\n CreateTaskHistoryItem.prototype.redo = function () {\r\n this.taskId = this.modelManipulator.task.create(this.data, this.taskId ? this.taskId : null).internalId;\r\n };\r\n CreateTaskHistoryItem.prototype.undo = function () {\r\n this.modelManipulator.task.remove(this.taskId);\r\n };\r\n return CreateTaskHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.CreateTaskHistoryItem = CreateTaskHistoryItem;\r\nvar RemoveTaskHistoryItem = (function (_super) {\r\n tslib_1.__extends(RemoveTaskHistoryItem, _super);\r\n function RemoveTaskHistoryItem(modelManipulator) {\r\n var _this = _super.call(this) || this;\r\n _this.taskIds = [];\r\n _this.tasks = [];\r\n _this.pendingCallbacks = 0;\r\n _this.modelManipulator = modelManipulator;\r\n return _this;\r\n }\r\n RemoveTaskHistoryItem.prototype.redo = function () {\r\n var _this = this;\r\n _super.prototype.redo.call(this);\r\n this.taskIds.forEach(function (id) {\r\n _this.tasks.push(_this.modelManipulator.task.remove(id));\r\n });\r\n };\r\n RemoveTaskHistoryItem.prototype.undo = function () {\r\n var _this = this;\r\n var viewModel = this.modelManipulator.task.viewModel;\r\n viewModel.lockChangesProcessing = this.tasks.length > 0;\r\n if (this.tasks.length) {\r\n var task_1 = this.tasks.shift();\r\n this.pendingCallbacks++;\r\n this.modelManipulator.task.create(task_1, task_1.internalId, function () {\r\n _this.modelManipulator.task.properties.progress.setValue(task_1.internalId, task_1.progress);\r\n if (task_1.color)\r\n _this.modelManipulator.task.properties.color.setValue(task_1.internalId, task_1.color);\r\n _this.tasks.length ? _this.undo() : _super.prototype.undo.call(_this);\r\n _this.pendingCallbacks--;\r\n viewModel.lockChangesProcessing = _this.pendingCallbacks > 0;\r\n });\r\n }\r\n };\r\n RemoveTaskHistoryItem.prototype.undoItemsQuery = function () {\r\n while (this.tasks.length) {\r\n var task = this.tasks.shift();\r\n this.modelManipulator.task.create(task, task.internalId, function () { });\r\n this.modelManipulator.task.properties.progress.setValue(task.internalId, task.progress);\r\n if (task.color)\r\n this.modelManipulator.task.properties.color.setValue(task.internalId, task.color);\r\n }\r\n this.modelManipulator.task.viewModel.lockChangesProcessing = false;\r\n this.pendingCallbacks = 0;\r\n _super.prototype.undo.call(this);\r\n };\r\n RemoveTaskHistoryItem.prototype.addTask = function (taskId) {\r\n this.taskIds.push(taskId);\r\n };\r\n RemoveTaskHistoryItem.prototype.add = function (historyItem) {\r\n if (historyItem instanceof TaskDependencyHistoryItem_1.RemoveDependencyHistoryItem) {\r\n var item_1 = historyItem;\r\n if (!this.historyItems.filter(function (i) { return i instanceof TaskDependencyHistoryItem_1.RemoveDependencyHistoryItem && i.dependencyId == item_1.dependencyId; }).length)\r\n this.historyItems.push(item_1);\r\n }\r\n else\r\n _super.prototype.add.call(this, historyItem);\r\n };\r\n return RemoveTaskHistoryItem;\r\n}(HistoryItem_1.CompositionHistoryItem));\r\nexports.RemoveTaskHistoryItem = RemoveTaskHistoryItem;\r\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConstraintViolationDialogParameters = exports.ConstraintViolationDialogCommand = exports.ConstraintViolationOption = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DialogBase_1 = __webpack_require__(24);\r\nvar TaskDependencyHistoryItem_1 = __webpack_require__(21);\r\nvar ConstraintViolationOption;\r\n(function (ConstraintViolationOption) {\r\n ConstraintViolationOption[ConstraintViolationOption[\"DoNothing\"] = 0] = \"DoNothing\";\r\n ConstraintViolationOption[ConstraintViolationOption[\"RemoveDependency\"] = 1] = \"RemoveDependency\";\r\n ConstraintViolationOption[ConstraintViolationOption[\"KeepDependency\"] = 2] = \"KeepDependency\";\r\n})(ConstraintViolationOption = exports.ConstraintViolationOption || (exports.ConstraintViolationOption = {}));\r\nvar ConstraintViolationDialogCommand = (function (_super) {\r\n tslib_1.__extends(ConstraintViolationDialogCommand, _super);\r\n function ConstraintViolationDialogCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ConstraintViolationDialogCommand.prototype.applyParameters = function (newParameters, oldParameters) {\r\n if (newParameters.option === ConstraintViolationOption.DoNothing)\r\n return false;\r\n if (newParameters.option === ConstraintViolationOption.RemoveDependency) {\r\n this.history.beginTransaction();\r\n this.history.addAndRedo(new TaskDependencyHistoryItem_1.RemoveDependencyHistoryItem(this.modelManipulator, oldParameters.validationError.dependencyId));\r\n oldParameters.callback();\r\n this.history.endTransaction();\r\n this.control.barManager.updateItemsState([]);\r\n }\r\n if (newParameters.option === ConstraintViolationOption.KeepDependency) {\r\n oldParameters.callback();\r\n this.control.barManager.updateItemsState([]);\r\n }\r\n return true;\r\n };\r\n ConstraintViolationDialogCommand.prototype.createParameters = function (options) {\r\n var dependency = this.control.viewModel.dependencies.getItemById(options.validationError.dependencyId);\r\n var successorTask = this.control.viewModel.tasks.getItemById(dependency.successorId);\r\n var predecessorTask = this.control.viewModel.tasks.getItemById(dependency.predecessorId);\r\n options.successorTaskTitle = successorTask.title;\r\n options.predecessorTaskTitle = predecessorTask.title;\r\n return options;\r\n };\r\n ConstraintViolationDialogCommand.prototype.getDialogName = function () {\r\n return \"ConstraintViolation\";\r\n };\r\n return ConstraintViolationDialogCommand;\r\n}(DialogBase_1.DialogBase));\r\nexports.ConstraintViolationDialogCommand = ConstraintViolationDialogCommand;\r\nvar ConstraintViolationDialogParameters = (function (_super) {\r\n tslib_1.__extends(ConstraintViolationDialogParameters, _super);\r\n function ConstraintViolationDialogParameters(validationError, callback) {\r\n var _this = _super.call(this) || this;\r\n _this.validationError = validationError;\r\n _this.callback = callback;\r\n return _this;\r\n }\r\n ConstraintViolationDialogParameters.prototype.clone = function () {\r\n var result = new ConstraintViolationDialogParameters(this.validationError, this.callback);\r\n result.option = this.option;\r\n return result;\r\n };\r\n return ConstraintViolationDialogParameters;\r\n}(DialogBase_1.DialogParametersBase));\r\nexports.ConstraintViolationDialogParameters = ConstraintViolationDialogParameters;\r\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GanttView = exports.default = void 0;\r\n__webpack_require__(54);\r\nvar GanttView_1 = __webpack_require__(55);\r\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return GanttView_1.GanttView; } });\r\nObject.defineProperty(exports, \"GanttView\", { enumerable: true, get: function () { return GanttView_1.GanttView; } });\r\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GanttView = void 0;\r\nvar VisualModel_1 = __webpack_require__(56);\r\nvar Enums_1 = __webpack_require__(14);\r\nvar Utils_1 = __webpack_require__(42);\r\nvar dom_1 = __webpack_require__(3);\r\nvar DateRange_1 = __webpack_require__(9);\r\nvar size_1 = __webpack_require__(28);\r\nvar point_1 = __webpack_require__(4);\r\nvar GridElementInfo_1 = __webpack_require__(43);\r\nvar GridLayoutCalculator_1 = __webpack_require__(17);\r\nvar EtalonSizeValues_1 = __webpack_require__(80);\r\nvar TaskEditController_1 = __webpack_require__(45);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar ModelManipulator_1 = __webpack_require__(81);\r\nvar History_1 = __webpack_require__(86);\r\nvar EventManager_1 = __webpack_require__(88);\r\nvar TaskAreaContainer_1 = __webpack_require__(103);\r\nvar Settings_1 = __webpack_require__(44);\r\nvar ModelChangesDispatcher_1 = __webpack_require__(104);\r\nvar CommandManager_1 = __webpack_require__(106);\r\nvar BarManager_1 = __webpack_require__(122);\r\nvar browser_1 = __webpack_require__(5);\r\nvar ValidationController_1 = __webpack_require__(123);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar FullScreenModeHelper_1 = __webpack_require__(124);\r\nvar TaskHistoryItem_1 = __webpack_require__(51);\r\nvar common_1 = __webpack_require__(1);\r\nvar ResourceHistoryItem_1 = __webpack_require__(22);\r\nvar GanttView = (function () {\r\n function GanttView(element, ganttOwner, settings) {\r\n var _this = this;\r\n this.timeScaleAreas = new Array();\r\n this.horTaskAreaBorders = [];\r\n this.vertTaskAreaBorders = [];\r\n this.scaleBorders = [];\r\n this.scaleElements = [];\r\n this.taskElements = [];\r\n this.resourcesElements = [];\r\n this.selectionElements = [];\r\n this.hlRowElements = [];\r\n this.renderedRowIndices = [];\r\n this.renderedColIndices = [];\r\n this.renderedScaleItemIndices = [];\r\n this.dependencyMap = [];\r\n this.invalidTaskDependencies = [];\r\n this.renderedConnectorLines = [];\r\n this.connectorLinesToElementsMap = {};\r\n this.noWorkingIntervalsToElementsMap = {};\r\n this.renderedNoWorkingIntervals = [];\r\n this.renderedStripLines = [];\r\n this.stripLinesMap = [];\r\n this.gridLayoutCalculator = new GridLayoutCalculator_1.GridLayoutCalculator();\r\n this.etalonSizeValues = new EtalonSizeValues_1.EtalonSizeValues();\r\n this.tickSize = new size_1.Size(0, 0);\r\n this.scaleCount = 2;\r\n this.isFocus = false;\r\n this.currentZoom = 1;\r\n this.maxZoom = 3;\r\n this.stripLinesUpdaterId = null;\r\n this.currentSelectedTaskID = \"\";\r\n this.ganttOwner = ganttOwner;\r\n this.settings = Settings_1.Settings.parse(settings);\r\n this.elementTextHelper = new Utils_1.ElementTextHelper(settings.cultureInfo);\r\n this.validationController = new ValidationController_1.ValidationController(this);\r\n this.createMainElement(element);\r\n this.createHeader();\r\n this.calculateEtalonSizeValues();\r\n this.createTaskAreaContainer();\r\n this.loadOptionsFromGanttOwner();\r\n this.elementTextHelper.setFont(this.mainElement);\r\n this.setupHelpers();\r\n this.setSizeForTaskArea();\r\n this.createTimeScaleContainer();\r\n this.createTimeScaleAreas();\r\n this.commandManager = new CommandManager_1.CommandManager(this);\r\n this.barManager = new BarManager_1.BarManager(this, ganttOwner.bars);\r\n this.eventManager = new EventManager_1.EventManager(this);\r\n this.taskEditController = new TaskEditController_1.TaskEditController(this);\r\n this.history = new History_1.History();\r\n this.taskAreaManager = new TaskAreaManager_1.TaskAreaManager(this);\r\n this.fullScreenModeHelper = new FullScreenModeHelper_1.FullScreenModeHelper(this);\r\n this.onWindowResizelHandler = this.onBrowserWindowResize.bind(this);\r\n window.addEventListener(\"resize\", this.onWindowResizelHandler);\r\n this.updateView();\r\n setTimeout(function () {\r\n _this.scrollLeftByViewType();\r\n }, 0);\r\n this.initializeStripLinesUpdater();\r\n }\r\n GanttView.prototype.reset = function () {\r\n this.timeScaleContainer.innerHTML = \"\";\r\n this.taskArea.innerHTML = \"\";\r\n this.horTaskAreaBorders = [];\r\n this.vertTaskAreaBorders = [];\r\n this.scaleBorders = [];\r\n this.scaleElements = [];\r\n this.taskElements = [];\r\n this.selectionElements = [];\r\n this.hlRowElements = [];\r\n this.renderedRowIndices = [];\r\n this.renderedColIndices = [];\r\n this.renderedConnectorLines = [];\r\n this.timeScaleAreas = [];\r\n this.renderedScaleItemIndices = [];\r\n this.connectorLinesToElementsMap = {};\r\n this.renderedNoWorkingIntervals = [];\r\n this.renderedStripLines = [];\r\n this.noWorkingIntervalsToElementsMap = {};\r\n this.invalidTaskDependencies = [];\r\n };\r\n GanttView.prototype.setupHelpers = function () {\r\n var size = new size_1.Size(this.taskAreaContainer.getWidth(), this.taskAreaContainer.getHeight());\r\n var scrollBarHeight = this.taskAreaContainer.getHeight() - this.taskAreaContainer.getElement().clientHeight;\r\n this.gridLayoutCalculator.setSettings(size, this.tickSize, this.etalonSizeValues, this.range, this.viewModel, this.settings.viewType, scrollBarHeight);\r\n this.elementTextHelper.setSettings(this.range.start.getTime(), this.settings.viewType, this.viewModel.items);\r\n };\r\n GanttView.prototype.getDateRange = function (modelStartDate, modelEndDate) {\r\n var start = new Date(modelStartDate.getTime() - this.getVisibleAreaTime());\r\n start = Utils_1.DateUtils.adjustStartDateByViewType(start, this.settings.viewType, this.settings.firstDayOfWeek);\r\n var end = new Date(modelEndDate.getTime() + this.getVisibleAreaTime());\r\n end = Utils_1.DateUtils.adjustEndDateByViewType(end, this.settings.viewType, this.settings.firstDayOfWeek);\r\n return new DateRange_1.DateRange(start, end);\r\n };\r\n GanttView.prototype.getVisibleAreaTime = function () {\r\n var visibleTickCount = Math.ceil(this.taskAreaContainer.getWidth() / this.tickSize.width);\r\n return visibleTickCount * Utils_1.DateUtils.getTickTimeSpan(this.settings.viewType);\r\n };\r\n GanttView.prototype.calculateEtalonSizeValues = function () {\r\n var etalonElementsContainer = this.createEtalonElementsContainer();\r\n var etalonElements = this.createEtalonElements(etalonElementsContainer);\r\n this.calculateEtalonSizeValuesCore(etalonElements);\r\n this.mainElement.removeChild(etalonElementsContainer);\r\n };\r\n GanttView.prototype.calculateEtalonSizeValuesCore = function (etalonElements) {\r\n this.etalonSizeValues.taskHeight = etalonElements[0].firstChild.offsetHeight;\r\n this.etalonSizeValues.milestoneWidth = etalonElements[1].firstChild.offsetWidth;\r\n this.etalonSizeValues.taskWrapperTopPadding = dom_1.DomUtils.pxToInt(dom_1.DomUtils.getCurrentStyle(etalonElements[0]).paddingTop);\r\n this.etalonSizeValues.connectorLineThickness = dom_1.DomUtils.getVerticalBordersWidth(etalonElements[2]);\r\n this.etalonSizeValues.connectorArrowWidth = dom_1.DomUtils.getHorizontalBordersWidth(etalonElements[3]);\r\n for (var i = 0; i <= Enums_1.ViewType.Years; i++) {\r\n etalonElements[4].innerText = this.elementTextHelper.getScaleItemTextTemplate(i);\r\n this.etalonSizeValues.scaleItemWidths[i] = etalonElements[4].offsetWidth;\r\n }\r\n this.etalonSizeValues.smallTaskWidth = this.getSmallTaskWidth(dom_1.DomUtils.getCurrentStyle(etalonElements[0].firstChild.firstChild).paddingLeft);\r\n this.etalonSizeValues.outsideTaskTextDefaultWidth = dom_1.DomUtils.pxToFloat(dom_1.DomUtils.getCurrentStyle(etalonElements[5]).width);\r\n this.etalonSizeValues.scaleItemHeight = this.ganttOwner.getHeaderHeight() / this.scaleCount;\r\n this.etalonSizeValues.parentTaskHeight = etalonElements[etalonElements.length - 1].firstChild.offsetHeight;\r\n };\r\n GanttView.prototype.getSmallTaskWidth = function (etalonPaddingLeft) {\r\n var result = 0;\r\n if (etalonPaddingLeft != null && etalonPaddingLeft != \"\") {\r\n var indexOfRem = etalonPaddingLeft.indexOf(\"rem\");\r\n if (indexOfRem > -1)\r\n try {\r\n var remSize = parseFloat(etalonPaddingLeft.substr(0, indexOfRem));\r\n result = remSize * parseFloat(getComputedStyle(document.documentElement).fontSize);\r\n }\r\n catch (e) { }\r\n else\r\n result = dom_1.DomUtils.pxToInt(etalonPaddingLeft);\r\n }\r\n return result * 2;\r\n };\r\n GanttView.prototype.createEtalonElementsContainer = function () {\r\n var result = document.createElement(\"DIV\");\r\n result.style.visibility = \"hidden\";\r\n result.style.position = \"absolute\";\r\n result.style.left = \"-1000px\";\r\n this.mainElement.appendChild(result);\r\n return result;\r\n };\r\n GanttView.prototype.createEtalonElements = function (parent) {\r\n var etalonElements = [];\r\n var wrapper = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-taskWrapper\"), null, parent);\r\n var task = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-task\"), null, wrapper);\r\n var taskTitle = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-taskTitle dx-gantt-titleIn\"), null, task);\r\n taskTitle.innerText = \"WWW\";\r\n etalonElements.push(wrapper);\r\n var milestoneWrapper = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-taskWrapper\"), null, parent);\r\n this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-task dx-gantt-milestone\"), null, milestoneWrapper);\r\n etalonElements.push(milestoneWrapper);\r\n var etalonElementClassNames = [\"dx-gantt-conn-h\", \"dx-gantt-arrow\", \"dx-gantt-si\", \"dx-gantt-taskTitle dx-gantt-titleOut\"];\r\n for (var i = 0; i < etalonElementClassNames.length; i++) {\r\n var etalonElementInfo = new GridElementInfo_1.GridElementInfo(etalonElementClassNames[i]);\r\n etalonElements.push(this.createElement(etalonElementInfo, null, parent));\r\n }\r\n var parentWrapper = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-taskWrapper\"), null, parent);\r\n var parentTask = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-task dx-gantt-parent\"), null, parentWrapper);\r\n var parentTaskTitle = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-taskTitle dx-gantt-titleIn\"), null, parentTask);\r\n parentTaskTitle.innerText = \"WWW\";\r\n etalonElements.push(parentWrapper);\r\n return etalonElements;\r\n };\r\n GanttView.prototype.zoomIn = function (leftPos) {\r\n if (leftPos === void 0) { leftPos = this.taskAreaContainer.getWidth() / 2; }\r\n var targetDate = this.gridLayoutCalculator.getDateByPos(this.taskAreaContainer.scrollLeft + leftPos);\r\n if (this.currentZoom < this.maxZoom) {\r\n this.currentZoom++;\r\n this.updateTickSizeWidth();\r\n this.resetAndUpdate();\r\n }\r\n else if (this.settings.viewType > Enums_1.ViewType.TenMinutes) {\r\n this.currentZoom = 1;\r\n this.setViewType(this.settings.viewType - 1, false);\r\n }\r\n this.scrollToDate(targetDate, leftPos);\r\n };\r\n GanttView.prototype.zoomOut = function (leftPos) {\r\n if (leftPos === void 0) { leftPos = this.taskAreaContainer.getWidth() / 2; }\r\n var targetDate = this.gridLayoutCalculator.getDateByPos(this.taskAreaContainer.scrollLeft + leftPos);\r\n if (this.currentZoom > 1) {\r\n this.currentZoom--;\r\n this.updateTickSizeWidth();\r\n this.resetAndUpdate();\r\n }\r\n else if (this.settings.viewType < Enums_1.ViewType.Years) {\r\n this.currentZoom = this.maxZoom;\r\n this.setViewType(this.settings.viewType + 1, false);\r\n }\r\n this.scrollToDate(targetDate, leftPos);\r\n };\r\n GanttView.prototype.scrollToDate = function (date, leftPos) {\r\n this.taskAreaContainer.scrollLeft = Math.round(this.gridLayoutCalculator.getPosByDate(date)) - leftPos;\r\n };\r\n GanttView.prototype.scrollLeftByViewType = function () {\r\n var adjustedStartDate = Utils_1.DateUtils.roundStartDate(this.dataRange.start, this.settings.viewType);\r\n this.taskAreaContainer.scrollLeft = Math.round(this.gridLayoutCalculator.getPosByDate(adjustedStartDate)) + 1;\r\n };\r\n GanttView.prototype.onVisualModelChanged = function () {\r\n this.resetAndUpdate();\r\n };\r\n GanttView.prototype.initializeStripLinesUpdater = function () {\r\n var _this = this;\r\n if (this.settings.stripLines.showCurrentTime)\r\n this.stripLinesUpdaterId = setInterval(function () {\r\n if (_this.recreateStripLines)\r\n _this.recreateStripLines();\r\n }, Math.max(this.settings.stripLines.currentTimeUpdateInterval, 100));\r\n };\r\n GanttView.prototype.clearStripLinesUpdater = function () {\r\n if (this.stripLinesUpdaterId)\r\n clearInterval(this.stripLinesUpdaterId);\r\n this.stripLinesUpdaterId = null;\r\n };\r\n GanttView.prototype.getGanttViewStartDate = function (tasks) {\r\n if (!tasks)\r\n return new Date();\r\n var dates = tasks.map(function (t) { return typeof t.start === \"string\" ? new Date(t.start) : t.start; }).filter(function (d) { return common_1.isDefined(d); });\r\n return dates.length > 0 ? dates.reduce(function (min, d) { return d < min ? d : min; }, dates[0]) : new Date();\r\n };\r\n GanttView.prototype.getGanttViewEndDate = function (tasks) {\r\n if (!tasks)\r\n return new Date();\r\n var dates = tasks.map(function (t) { return typeof t.end === \"string\" ? new Date(t.end) : t.end; }).filter(function (d) { return common_1.isDefined(d); });\r\n return dates.length > 0 ? dates.reduce(function (max, d) { return d > max ? d : max; }, dates[0]) : new Date();\r\n };\r\n GanttView.prototype.getTaskAreaWidth = function () {\r\n return this.gridLayoutCalculator.horizontalTickCount * this.tickSize.width;\r\n };\r\n GanttView.prototype.getTaskAreaHeight = function () {\r\n return this.gridLayoutCalculator.getVerticalGridLineHeight();\r\n };\r\n GanttView.prototype.getVisibleTaskCount = function () { return this.viewModel.itemCount; };\r\n GanttView.prototype.getTask = function (index) {\r\n var item = this.viewModel.items[index];\r\n return item.task;\r\n };\r\n GanttView.prototype.createMainElement = function (parent) {\r\n this.mainElement = document.createElement(\"DIV\");\r\n this.mainElement.style.width = parent.offsetWidth + \"px\";\r\n this.mainElement.style.height = parent.offsetHeight + \"px\";\r\n parent.appendChild(this.mainElement);\r\n };\r\n GanttView.prototype.createHeader = function () {\r\n this.header = document.createElement(\"DIV\");\r\n this.header.className = \"dx-gantt-header\";\r\n this.mainElement.appendChild(this.header);\r\n };\r\n GanttView.prototype.createTimeScaleContainer = function () {\r\n this.timeScaleContainer = document.createElement(\"DIV\");\r\n this.timeScaleContainer.className = \"dx-gantt-tsac\";\r\n this.timeScaleContainer.style.height = this.etalonSizeValues.scaleItemHeight * this.scaleCount + \"px\";\r\n this.header.appendChild(this.timeScaleContainer);\r\n };\r\n GanttView.prototype.createTimeScaleArea = function () {\r\n var timeScaleArea = document.createElement(\"DIV\");\r\n timeScaleArea.className = \"dx-gantt-tsa\";\r\n timeScaleArea.style.width = this.getTaskAreaWidth() + \"px\";\r\n timeScaleArea.style.height = this.etalonSizeValues.scaleItemHeight + \"px\";\r\n this.timeScaleContainer.appendChild(timeScaleArea);\r\n this.timeScaleAreas.unshift(timeScaleArea);\r\n return timeScaleArea;\r\n };\r\n GanttView.prototype.createTimeScaleAreas = function () {\r\n for (var i = 0; i < this.scaleCount; i++) {\r\n var timeScaleArea = this.createTimeScaleArea();\r\n if (i == 0 && this.settings.viewType == Enums_1.ViewType.Weeks)\r\n this.createMonthsScale(timeScaleArea);\r\n }\r\n };\r\n GanttView.prototype.createTaskAreaContainer = function () {\r\n var element = document.createElement(\"DIV\");\r\n element.className = \"dx-gantt-tac\";\r\n this.mainElement.appendChild(element);\r\n this.createTaskArea(element);\r\n this.taskAreaContainer = this.ganttOwner.getExternalTaskAreaContainer(element);\r\n if (this.taskAreaContainer == null)\r\n this.taskAreaContainer = new TaskAreaContainer_1.TaskAreaContainer(element, this);\r\n this.prepareTaskAreaContainer();\r\n };\r\n GanttView.prototype.prepareTaskAreaContainer = function () {\r\n var className = \"dx-gantt-tac-hb\";\r\n var element = this.taskAreaContainer.getElement();\r\n this.settings.areHorizontalBordersEnabled ?\r\n dom_1.DomUtils.addClassName(element, className) : dom_1.DomUtils.removeClassName(element, className);\r\n var marginTop = parseInt(getComputedStyle(element).getPropertyValue(\"margin-top\")) || 0;\r\n element.style.height = \"calc(100% - \" + (this.etalonSizeValues.scaleItemHeight * this.scaleCount + marginTop) + \"px)\";\r\n };\r\n GanttView.prototype.createTaskArea = function (parent) {\r\n this.taskArea = document.createElement(\"DIV\");\r\n this.taskArea.id = \"dx-gantt-ta\";\r\n parent.appendChild(this.taskArea);\r\n };\r\n GanttView.prototype.setSizeForTaskArea = function () {\r\n this.taskArea.style.width = this.getTaskAreaWidth() + \"px\";\r\n this.taskArea.style.height = this.getTaskAreaHeight() + \"px\";\r\n };\r\n GanttView.prototype.updateTickSizeWidth = function () {\r\n this.tickSize.width = this.etalonSizeValues.scaleItemWidths[this.settings.viewType] * this.currentZoom;\r\n };\r\n GanttView.prototype.createMonthsScale = function (parent) {\r\n var currentDate = new Date();\r\n currentDate.setTime(this.range.start.getTime());\r\n var x = 0;\r\n var index = 0;\r\n while (currentDate.getTime() < this.range.end.getTime()) {\r\n var dayInMonthCount = Utils_1.DateUtils.getDaysInMonth(currentDate.getMonth(), currentDate.getFullYear());\r\n var dayCount = dayInMonthCount - currentDate.getDate() + 1;\r\n var nextDate = new Date();\r\n nextDate.setTime(currentDate.getTime() + Math.min(dayCount * Utils_1.DateUtils.msPerDay, this.range.end.getTime() - currentDate.getTime()));\r\n var width = this.gridLayoutCalculator.getWidthByDateRange(currentDate, nextDate);\r\n var scaleItemInfo = new GridElementInfo_1.GridElementInfo(\"dx-gantt-si\", new point_1.Point(x, undefined), new size_1.Size(width, this.etalonSizeValues.scaleItemHeight));\r\n var scaleItemElement = this.createElement(scaleItemInfo, null, parent);\r\n scaleItemElement.innerText = this.elementTextHelper.getScaleItemText(index, Enums_1.ViewType.Months);\r\n scaleItemElement.style.lineHeight = this.etalonSizeValues.scaleItemHeight + \"px\";\r\n var scaleBorderInfo = new GridElementInfo_1.GridElementInfo(\"dx-gantt-vb\", new point_1.Point(x + width, undefined), new size_1.Size(0, this.etalonSizeValues.scaleItemHeight));\r\n this.createElement(scaleBorderInfo, null, parent);\r\n x += width;\r\n index++;\r\n currentDate = nextDate;\r\n }\r\n };\r\n GanttView.prototype.updateView = function () {\r\n this.onBeginUpdateView();\r\n this.timeScaleContainer.scrollLeft = this.taskAreaContainerScrollLeft;\r\n this.processScroll(false);\r\n this.processScroll(true);\r\n this.ganttOwner.onGanttScroll(this.taskAreaContainerScrollTop);\r\n this.onEndUpdateView();\r\n };\r\n GanttView.prototype.onBeginUpdateView = function () {\r\n this[GanttView.taskAreaScrollTopKey] = this.taskAreaContainer.scrollTop;\r\n this[GanttView.taskAreaScrollLeftKey] = this.taskAreaContainer.scrollLeft;\r\n };\r\n GanttView.prototype.onEndUpdateView = function () {\r\n delete this[GanttView.taskAreaScrollTopKey];\r\n delete this[GanttView.taskAreaScrollLeftKey];\r\n delete this[GanttView.taskTextHeightKey];\r\n };\r\n GanttView.prototype.getTaskTextHeight = function (textElement) {\r\n textElement.innerText = \"WWW\";\r\n var height = getComputedStyle(textElement).height;\r\n textElement.innerText = \"\";\r\n return height;\r\n };\r\n Object.defineProperty(GanttView.prototype, \"taskAreaContainerScrollTop\", {\r\n get: function () {\r\n var _a;\r\n return (_a = this[GanttView.taskAreaScrollTopKey]) !== null && _a !== void 0 ? _a : this.taskAreaContainer.scrollTop;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(GanttView.prototype, \"taskAreaContainerScrollLeft\", {\r\n get: function () {\r\n var _a;\r\n return (_a = this[GanttView.taskAreaScrollLeftKey]) !== null && _a !== void 0 ? _a : this.taskAreaContainer.scrollLeft;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n GanttView.prototype.processScroll = function (isVertical) {\r\n this.taskEditController.tooltip.hide();\r\n this.recreateTaskAreaBordersAndTaskElements(isVertical);\r\n if (isVertical)\r\n this.recreateConnectorLineElements();\r\n else {\r\n this.recreateNoWorkingIntervalElements();\r\n this.recreateStripLines();\r\n this.recreateScalesElements();\r\n }\r\n };\r\n GanttView.prototype.recreateTaskAreaBordersAndTaskElements = function (isVertical) {\r\n var _this = this;\r\n var scrollPos = isVertical ? this.taskAreaContainerScrollTop : this.taskAreaContainerScrollLeft;\r\n var newRenderedIndices = this.gridLayoutCalculator.getRenderedRowColumnIndices(scrollPos, isVertical);\r\n var renderedIndices = isVertical ? this.renderedRowIndices : this.renderedColIndices;\r\n this.recreateElements(renderedIndices, newRenderedIndices, function (index) { _this.removeTaskAreaBorderAndTaskElement(index, isVertical); }, function (index) { _this.createTaskAreaBorderAndTaskElement(index, isVertical); });\r\n if (isVertical)\r\n this.renderedRowIndices = newRenderedIndices;\r\n else\r\n this.renderedColIndices = newRenderedIndices;\r\n };\r\n GanttView.prototype.recreateNoWorkingIntervalElements = function () {\r\n var _this = this;\r\n var newRenderedNoWorkingIntervals = this.gridLayoutCalculator.getRenderedNoWorkingIntervals(this.taskAreaContainerScrollLeft);\r\n this.recreateElements(this.renderedNoWorkingIntervals, newRenderedNoWorkingIntervals, function (info) { _this.removeNoWorkingIntervalElement(info); }, function (info) { _this.createNoWorkingIntervalElement(info); });\r\n this.renderedNoWorkingIntervals = newRenderedNoWorkingIntervals;\r\n };\r\n GanttView.prototype.recreateStripLines = function () {\r\n var _this = this;\r\n var newRenderedStripLines = this.gridLayoutCalculator.getRenderedStripLines(this.settings.stripLines);\r\n this.recreateElements(this.renderedStripLines, newRenderedStripLines, function (info) { _this.removeElement(info, null, _this.taskArea, _this.stripLinesMap); }, function (info) { return _this.createElement(info, null, _this.taskArea, _this.stripLinesMap); });\r\n this.renderedStripLines = newRenderedStripLines;\r\n };\r\n GanttView.prototype.recreateConnectorLineElements = function () {\r\n var _this = this;\r\n var newRenderedConnectorLines = this.gridLayoutCalculator.getRenderedConnectorLines(this.taskAreaContainerScrollTop);\r\n this.recreateElements(this.renderedConnectorLines, newRenderedConnectorLines, function (info) { _this.removeConnectorLineElement(info); }, function (info) { _this.createConnectorLineElement(info); });\r\n this.renderedConnectorLines = newRenderedConnectorLines;\r\n };\r\n GanttView.prototype.recreateScalesElements = function () {\r\n this.recreateScaleElements(this.settings.viewType, 0);\r\n if (this.settings.viewType != Enums_1.ViewType.Weeks)\r\n this.recreateScaleElements(Utils_1.DateUtils.ViewTypeToScaleMap[this.settings.viewType], 1);\r\n };\r\n GanttView.prototype.recreateScaleElements = function (scaleType, scaleIndex) {\r\n var _this = this;\r\n var newRenderedIndices = this.gridLayoutCalculator.getRenderedScaleItemIndices(scaleType, this.renderedColIndices);\r\n var renderedIndices = this.renderedScaleItemIndices[scaleType - this.settings.viewType] || [];\r\n this.recreateElements(renderedIndices, newRenderedIndices, function (index) { _this.removeScaleElementAndBorder(index, scaleIndex); }, function (index) { _this.createScaleElementAndBorder(index, scaleIndex, scaleType); });\r\n this.renderedScaleItemIndices[scaleType - this.settings.viewType] = newRenderedIndices;\r\n };\r\n GanttView.prototype.recreateElements = function (oldRenderedElementsInfo, newRenderedelementsInfo, removeAction, createAction) {\r\n oldRenderedElementsInfo\r\n .filter(function (info) { return newRenderedelementsInfo.indexOf(info) === -1; })\r\n .forEach(function (info) { removeAction(info); });\r\n newRenderedelementsInfo\r\n .filter(function (info) { return oldRenderedElementsInfo.indexOf(info) === -1; })\r\n .forEach(function (info) { createAction(info); });\r\n };\r\n GanttView.prototype.recreateTaskElement = function (index) {\r\n var _this = this;\r\n var isVisible = this.renderedRowIndices.filter(function (r) { return r === index; }).length > 0;\r\n var viewItem = this.viewModel.items[index];\r\n var task = viewItem && viewItem.task;\r\n if (!task)\r\n return;\r\n if (isVisible) {\r\n this.removeTaskElement(index);\r\n this.createTaskElement(index);\r\n }\r\n var dependencies = this.viewModel.dependencies.items.filter(function (d) { return d.predecessorId == task.internalId || d.successorId == task.internalId; });\r\n if (dependencies.length)\r\n dependencies.forEach(function (d) { return _this.recreateConnectorLineElement(d.internalId); });\r\n };\r\n GanttView.prototype.recreateConnectorLineElement = function (dependencyId, forceRender) {\r\n var _this = this;\r\n if (forceRender === void 0) { forceRender = false; }\r\n var infos = [];\r\n this.renderedConnectorLines = this.renderedConnectorLines.filter(function (info) {\r\n if (info.attr[\"dependency-id\"] != dependencyId)\r\n return true;\r\n infos.push(info);\r\n return false;\r\n });\r\n var isRendered = infos.length > 0;\r\n infos.forEach(function (info) { _this.removeConnectorLineElement(info); });\r\n infos = this.gridLayoutCalculator.updateTileToConnectorLinesMap(dependencyId);\r\n if (isRendered || forceRender)\r\n infos.forEach(function (info) { _this.createConnectorLineElement(info); _this.renderedConnectorLines.push(info); });\r\n };\r\n GanttView.prototype.allowTaskAreaBorders = function (isVerticalScroll) {\r\n return isVerticalScroll ? this.settings.areHorizontalBordersEnabled : this.settings.areVerticalBordersEnabled;\r\n };\r\n GanttView.prototype.createTaskAreaBorderAndTaskElement = function (index, isVerticalScroll) {\r\n if (this.allowTaskAreaBorders(isVerticalScroll))\r\n this.createTaskAreaBorder(index, !isVerticalScroll);\r\n if (isVerticalScroll)\r\n this.createTaskElement(index);\r\n };\r\n GanttView.prototype.removeTaskAreaBorderAndTaskElement = function (index, isVerticalScroll) {\r\n if (this.allowTaskAreaBorders(isVerticalScroll))\r\n this.removeTaskAreaBorder(index, !isVerticalScroll);\r\n if (isVerticalScroll)\r\n this.removeTaskElement(index);\r\n };\r\n GanttView.prototype.getTaskAreaBordersDictionary = function (isVertical) {\r\n return isVertical ? this.vertTaskAreaBorders : this.horTaskAreaBorders;\r\n };\r\n GanttView.prototype.createTaskAreaBorder = function (index, isVertical) {\r\n var info = this.gridLayoutCalculator.getTaskAreaBorderInfo(index, isVertical);\r\n this.createElement(info, index, this.taskArea, this.getTaskAreaBordersDictionary(isVertical));\r\n };\r\n GanttView.prototype.removeTaskAreaBorder = function (index, isVertical) {\r\n this.removeElement(null, index, this.taskArea, this.getTaskAreaBordersDictionary(isVertical));\r\n };\r\n GanttView.prototype.createScaleElementAndBorder = function (index, scaleIndex, scaleType) {\r\n this.createScaleElement(index, scaleIndex, scaleType);\r\n this.createScaleBorder(index, scaleIndex, scaleType);\r\n };\r\n GanttView.prototype.createScaleElement = function (index, scaleIndex, scaleType) {\r\n var info = this.gridLayoutCalculator.getScaleElementInfo(index, scaleType);\r\n var scaleElement = this.createScaleElementCore(index, info, scaleIndex, this.scaleElements);\r\n scaleElement.innerText = this.elementTextHelper.getScaleItemText(index, scaleType);\r\n scaleElement.style.lineHeight = this.etalonSizeValues.scaleItemHeight + \"px\";\r\n if (scaleType === Enums_1.ViewType.Quarter)\r\n scaleElement.style.padding = \"0\";\r\n };\r\n GanttView.prototype.createScaleBorder = function (index, scaleIndex, scaleType) {\r\n var info = this.gridLayoutCalculator.getScaleBorderInfo(index, scaleType);\r\n this.createScaleElementCore(index, info, scaleIndex, this.scaleBorders);\r\n };\r\n GanttView.prototype.createScaleElementCore = function (index, info, scaleIndex, dictionary) {\r\n if (!dictionary[scaleIndex])\r\n dictionary[scaleIndex] = [];\r\n return this.createElement(info, index, this.timeScaleAreas[scaleIndex], dictionary[scaleIndex]);\r\n };\r\n GanttView.prototype.removeScaleElementAndBorder = function (index, scaleIndex) {\r\n this.removeElement(null, index, this.timeScaleAreas[scaleIndex], this.scaleElements[scaleIndex]);\r\n this.removeElement(null, index, this.timeScaleAreas[scaleIndex], this.scaleBorders[scaleIndex]);\r\n };\r\n GanttView.prototype.createTaskElement = function (index) {\r\n var task = this.viewModel.items[index].task;\r\n if (this.isHighlightRowElementAllowed(index))\r\n this.createHighlightRowElement(index);\r\n if (!task.isValid()) {\r\n var taskDependencies = this.viewModel.dependencies.items.filter(function (d) { return d.predecessorId == task.internalId || d.successorId == task.internalId; });\r\n this.invalidTaskDependencies = this.invalidTaskDependencies.concat(taskDependencies);\r\n return;\r\n }\r\n this.createTaskWrapperElement(index);\r\n if (this.settings.taskTitlePosition == Enums_1.TaskTitlePosition.Outside)\r\n this.createTaskTextElement(index, this.taskElements[index]);\r\n var taskVisualElement = this.createTaskVisualElement(index);\r\n if (!task.isMilestone()) {\r\n if (this.settings.taskTitlePosition == Enums_1.TaskTitlePosition.Inside)\r\n this.createTaskTextElement(index, taskVisualElement);\r\n this.createTaskProgressElement(index, taskVisualElement);\r\n }\r\n if (this.settings.showResources) {\r\n this.createResourcesWrapperElement(index);\r\n this.createResources(index);\r\n }\r\n if (this.viewModel.items[index].selected)\r\n this.createTaskSelectionElement(index);\r\n };\r\n GanttView.prototype.isHighlightRowElementAllowed = function (index) {\r\n return index % 2 !== 0 && this.settings.areAlternateRowsEnabled || this.viewModel.items[index].children.length > 0;\r\n };\r\n GanttView.prototype.createResourcesWrapperElement = function (index) {\r\n var resourcesWrapperElementInfo = this.gridLayoutCalculator.getTaskResourcesWrapperElementInfo(index);\r\n this.createElement(resourcesWrapperElementInfo, index, this.taskArea, this.resourcesElements);\r\n this.resourcesElements[index].style.display = this.elementTextHelper.getTaskVisibility(index) ? \"\" : \"none\";\r\n };\r\n GanttView.prototype.createResources = function (index) {\r\n var resources = this.viewModel.items[index].resources.items;\r\n for (var i = 0; i < resources.length; i++)\r\n this.createResourceElement(index, resources[i]);\r\n };\r\n GanttView.prototype.createTaskWrapperElement = function (index) {\r\n var taskWrapperInfo = this.gridLayoutCalculator.getTaskWrapperElementInfo(index);\r\n this.createElement(taskWrapperInfo, index, this.taskArea, this.taskElements);\r\n this.taskElements[index].style.display = this.elementTextHelper.getTaskVisibility(index) ? \"\" : \"none\";\r\n };\r\n GanttView.prototype.createTaskVisualElement = function (index) {\r\n var taskElementInfo = this.gridLayoutCalculator.getTaskElementInfo(index, this.settings.taskTitlePosition !== Enums_1.TaskTitlePosition.Inside);\r\n var taskElement = this.createElement(taskElementInfo, index, this.taskElements[index]);\r\n this.taskAreaManager.attachEventsOnTask(taskElement);\r\n return taskElement;\r\n };\r\n GanttView.prototype.createTaskProgressElement = function (index, parent) {\r\n var taskProgressInfo = this.gridLayoutCalculator.getTaskProgressElementInfo(index);\r\n this.createElement(taskProgressInfo, index, parent);\r\n };\r\n GanttView.prototype.createTaskTextElement = function (index, parent) {\r\n var _a;\r\n var _b;\r\n var taskTextInfo = this.gridLayoutCalculator.getTaskTextElementInfo(index, this.settings.taskTitlePosition == Enums_1.TaskTitlePosition.Inside);\r\n var taskTextElement = this.createElement(taskTextInfo, index, parent);\r\n var text = this.elementTextHelper.getTaskText(index);\r\n if (!text) {\r\n (_a = this[_b = GanttView.taskTextHeightKey]) !== null && _a !== void 0 ? _a : (this[_b] = this.getTaskTextHeight(taskTextElement));\r\n taskTextElement.style.height = this[GanttView.taskTextHeightKey];\r\n }\r\n taskTextElement.innerText = text;\r\n };\r\n GanttView.prototype.createResourceElement = function (index, resource) {\r\n var resourceElementInfo = this.gridLayoutCalculator.getTaskResourceElementInfo();\r\n if (resource.color)\r\n resourceElementInfo.style.backgroundColor = resource.color;\r\n var resElement = this.createElement(resourceElementInfo, index, this.resourcesElements[index]);\r\n resElement.innerText = resource.text;\r\n };\r\n GanttView.prototype.createTaskSelectionElement = function (index) {\r\n var selectionInfo = this.gridLayoutCalculator.getSelectionElementInfo(index);\r\n if (this.taskAreaContainer.isExternal && !this.settings.areHorizontalBordersEnabled)\r\n selectionInfo.size.height++;\r\n this.createElement(selectionInfo, index, this.taskArea, this.selectionElements);\r\n };\r\n GanttView.prototype.createHighlightRowElement = function (index) {\r\n var hlRowInfo = this.gridLayoutCalculator.getHighlightRowInfo(index);\r\n this.createElement(hlRowInfo, index, this.taskArea, this.hlRowElements);\r\n };\r\n GanttView.prototype.removeTaskElement = function (index) {\r\n var task = this.viewModel.items[index].task;\r\n this.invalidTaskDependencies = this.invalidTaskDependencies.filter(function (d) { return d.predecessorId != task.id && d.successorId != task.id; });\r\n this.taskAreaManager.detachEventsOnTask(this.taskElements[index]);\r\n this.removeElement(null, index, this.taskArea, this.taskElements);\r\n this.removeElement(null, index, this.taskArea, this.resourcesElements);\r\n this.removeElement(null, index, this.taskArea, this.selectionElements);\r\n if (this.isHighlightRowElementAllowed(index))\r\n this.removeElement(null, index, this.taskArea, this.hlRowElements);\r\n };\r\n GanttView.prototype.createConnectorLineElement = function (info) {\r\n var dependencyId = info.attr[\"dependency-id\"];\r\n var isInvalid = this.invalidTaskDependencies.some(function (d) { return d.id == dependencyId; });\r\n if (isInvalid)\r\n return;\r\n if (this.taskEditController.isDependencySelected(dependencyId))\r\n info.className = info.className + \" active\";\r\n return this.createElement(info, null, this.taskArea, this.connectorLinesToElementsMap);\r\n };\r\n GanttView.prototype.removeConnectorLineElement = function (info) {\r\n this.removeElement(info, null, this.taskArea, this.connectorLinesToElementsMap);\r\n };\r\n GanttView.prototype.createNoWorkingIntervalElement = function (info) {\r\n return this.createElement(info, null, this.taskArea, this.noWorkingIntervalsToElementsMap);\r\n };\r\n GanttView.prototype.removeNoWorkingIntervalElement = function (info) {\r\n this.removeElement(info, null, this.taskArea, this.noWorkingIntervalsToElementsMap);\r\n };\r\n GanttView.prototype.createElement = function (info, index, parent, dictionary) {\r\n var element = document.createElement(\"DIV\");\r\n info.assignToElement(element);\r\n parent.appendChild(element);\r\n if (dictionary)\r\n if (dictionary instanceof Array && index !== null)\r\n dictionary[index] = element;\r\n else\r\n dictionary[info.id] = element;\r\n for (var key in info.attr)\r\n if (Object.prototype.hasOwnProperty.call(info.attr, key))\r\n element.setAttribute(key, info.attr[key]);\r\n for (var key in info.style)\r\n if (Object.prototype.hasOwnProperty.call(info.style, key))\r\n element.style[key] = info.style[key];\r\n return element;\r\n };\r\n GanttView.prototype.removeElement = function (info, index, parent, dictionary) {\r\n var element;\r\n if (dictionary instanceof Array && index !== null) {\r\n element = dictionary[index];\r\n delete dictionary[index];\r\n }\r\n else {\r\n element = dictionary[info.id];\r\n delete dictionary[info.id];\r\n }\r\n if (element && element.parentNode == parent)\r\n parent.removeChild(element);\r\n };\r\n GanttView.prototype.calculateAutoViewType = function (startDate, endDate) {\r\n var diffInHours = (endDate.getTime() - startDate.getTime()) / (1000 * 3600);\r\n if (diffInHours > 24 * 365)\r\n return Enums_1.ViewType.Years;\r\n if (diffInHours > 24 * 30)\r\n return Enums_1.ViewType.Months;\r\n if (diffInHours > 24 * 7)\r\n return Enums_1.ViewType.Weeks;\r\n if (diffInHours > 24)\r\n return Enums_1.ViewType.Days;\r\n if (diffInHours > 6)\r\n return Enums_1.ViewType.SixHours;\r\n if (diffInHours > 1)\r\n return Enums_1.ViewType.Hours;\r\n return Enums_1.ViewType.TenMinutes;\r\n };\r\n GanttView.prototype.changeTaskExpanded = function (publicId, expanded) {\r\n var task = this.getTaskByPublicId(publicId);\r\n if (task)\r\n this.viewModel.changeTaskExpanded(task.internalId, expanded);\r\n };\r\n GanttView.prototype.expandTask = function (id) { this.viewModel.changeTaskExpanded(id, true); };\r\n GanttView.prototype.collapseTask = function (id) { this.viewModel.changeTaskExpanded(id, false); };\r\n GanttView.prototype.showTask = function (id) { this.viewModel.changeTaskVisibility(id, true); };\r\n GanttView.prototype.hideTask = function (id) { this.viewModel.changeTaskVisibility(id, false); };\r\n GanttView.prototype.getTaskVisibility = function (id) { return this.viewModel.getTaskVisibility(id); };\r\n GanttView.prototype.unselectCurrentSelectedTask = function () { this.unselectTask(this.currentSelectedTaskID); };\r\n GanttView.prototype.getTaskSelected = function (id) { return this.viewModel.getTaskSelected(id); };\r\n GanttView.prototype.setViewType = function (viewType, autoPositioning) {\r\n if (autoPositioning === void 0) { autoPositioning = true; }\r\n if (viewType == undefined)\r\n viewType = this.calculateAutoViewType(this.dataRange.start, this.dataRange.end);\r\n if (this.settings.viewType !== viewType) {\r\n this.settings.viewType = viewType;\r\n this.updateTickSizeWidth();\r\n this.resetAndUpdate();\r\n if (autoPositioning)\r\n this.scrollLeftByViewType();\r\n if (this.ganttOwner.UpdateGanttViewType)\r\n this.ganttOwner.UpdateGanttViewType(viewType);\r\n }\r\n };\r\n GanttView.prototype.setTaskTitlePosition = function (taskTitlePosition) {\r\n if (this.settings.taskTitlePosition !== taskTitlePosition) {\r\n this.settings.taskTitlePosition = taskTitlePosition;\r\n this.resetAndUpdate();\r\n }\r\n };\r\n GanttView.prototype.setShowResources = function (showResources) {\r\n if (this.settings.showResources !== showResources) {\r\n this.settings.showResources = showResources;\r\n this.resetAndUpdate();\r\n }\r\n };\r\n GanttView.prototype.setFirstDayOfWeek = function (firstDayOfWeek) {\r\n if (this.settings.firstDayOfWeek !== firstDayOfWeek) {\r\n this.settings.firstDayOfWeek = firstDayOfWeek;\r\n this.resetAndUpdate();\r\n }\r\n };\r\n GanttView.prototype.loadOptionsFromGanttOwner = function () {\r\n var _this = this;\r\n var _a;\r\n this.tickSize.height = this.ganttOwner.getRowHeight();\r\n var tasksData = this.ganttOwner.getGanttTasksData();\r\n this.dataRange = new DateRange_1.DateRange(this.getGanttViewStartDate(tasksData), this.getGanttViewEndDate(tasksData));\r\n if (this.settings.viewType == undefined)\r\n this.settings.viewType = this.calculateAutoViewType(this.dataRange.start, this.dataRange.end);\r\n this.updateTickSizeWidth();\r\n this.range = this.getDateRange(this.dataRange.start, this.dataRange.end);\r\n this.dispatcher = new ModelChangesDispatcher_1.ModelChangesDispatcher();\r\n var modelChangesListener = this.ganttOwner.getModelChangesListener();\r\n if (modelChangesListener)\r\n this.dispatcher.onModelChanged.add(modelChangesListener);\r\n this.viewModel = new VisualModel_1.ViewVisualModel(this, tasksData, this.ganttOwner.getGanttDependenciesData(), this.ganttOwner.getGanttResourcesData(), this.ganttOwner.getGanttResourceAssignmentsData(), this.range, this.ganttOwner.getGanttWorkTimeRules());\r\n this.modelManipulator = new ModelManipulator_1.ModelManipulator(this.viewModel, this.dispatcher);\r\n (_a = this.history) === null || _a === void 0 ? void 0 : _a.historyItems.forEach(function (i) { return i.setModelManipulator(_this.modelManipulator); });\r\n };\r\n GanttView.prototype.resetAndUpdate = function () {\r\n this.reset();\r\n this.range = this.getDateRange(this.dataRange.start, this.dataRange.end);\r\n this.viewModel.updateRange(this.range);\r\n this.setupHelpers();\r\n this.createTimeScaleAreas();\r\n this.setSizeForTaskArea();\r\n if (browser_1.Browser.IE)\r\n this.taskEditController.createElements();\r\n this.updateView();\r\n };\r\n GanttView.prototype.cleanMarkup = function () {\r\n this.taskAreaManager.detachEvents();\r\n this.taskEditController.detachEvents();\r\n window.removeEventListener(\"resize\", this.onWindowResizelHandler);\r\n this.clearStripLinesUpdater();\r\n this.reset();\r\n };\r\n GanttView.prototype.checkAndProcessModelChanges = function () {\r\n var tasks = this.ganttOwner.getGanttTasksData();\r\n var changed = this.viewModel.refreshTaskDataIfRequires(tasks);\r\n if (changed)\r\n this.resetAndUpdate();\r\n return changed;\r\n };\r\n GanttView.prototype.updateRowHeights = function (height) {\r\n if (this.tickSize.height !== height) {\r\n this.tickSize.height = height;\r\n var leftPosition = this.taskAreaContainer.scrollLeft;\r\n this.resetAndUpdate();\r\n this.taskAreaContainer.scrollLeft = leftPosition;\r\n }\r\n };\r\n GanttView.prototype.selectTask = function (id) {\r\n this.selectDependency(null);\r\n this.viewModel.changeTaskSelected(id, true);\r\n this.currentSelectedTaskID = id;\r\n this.updateBarManager();\r\n };\r\n GanttView.prototype.unselectTask = function (id) {\r\n this.viewModel.changeTaskSelected(id, false);\r\n this.updateBarManager();\r\n };\r\n GanttView.prototype.selectTaskById = function (publicId) {\r\n this.unselectCurrentSelectedTask();\r\n var task = this.getTaskByPublicId(publicId);\r\n if (task)\r\n this.selectTask(task.internalId);\r\n };\r\n GanttView.prototype.selectDependency = function (id) {\r\n this.taskEditController.selectDependency(id);\r\n this.gridLayoutCalculator.createTileToConnectorLinesMap();\r\n this.recreateConnectorLineElements();\r\n };\r\n GanttView.prototype.getTaskAreaContainer = function () {\r\n return this.taskAreaContainer;\r\n };\r\n GanttView.prototype.setWidth = function (value) {\r\n this.mainElement.style.width = value + \"px\";\r\n };\r\n GanttView.prototype.setHeight = function (value) {\r\n this.mainElement.style.height = value + \"px\";\r\n };\r\n GanttView.prototype.setAllowSelection = function (value) {\r\n this.settings.allowSelectTask = value;\r\n };\r\n GanttView.prototype.setEditingSettings = function (value) {\r\n this.settings.editing = value;\r\n this.updateBarManager();\r\n };\r\n GanttView.prototype.setValidationSettings = function (value) {\r\n this.settings.validation = value;\r\n };\r\n GanttView.prototype.setRowLinesVisible = function (value) {\r\n this.settings.areHorizontalBordersEnabled = value;\r\n this.prepareTaskAreaContainer();\r\n this.resetAndUpdate();\r\n };\r\n GanttView.prototype.setStripLines = function (stripLines) {\r\n this.settings.stripLines = Settings_1.StripLineSettings.parse(stripLines);\r\n this.clearStripLinesUpdater();\r\n this.initializeStripLinesUpdater();\r\n this.recreateStripLines();\r\n };\r\n GanttView.prototype.deleteTask = function (key) {\r\n var task = this.getTaskByPublicId(key.toString());\r\n if (task)\r\n this.commandManager.removeTaskCommand.execute(task.internalId, false, true);\r\n };\r\n GanttView.prototype.insertTask = function (data) {\r\n if (data) {\r\n var parentId = data.parentId != null ? String(data.parentId) : null;\r\n var parent_1 = this.getTaskByPublicId(parentId);\r\n var rootId = this.viewModel.getRootTaskId();\r\n var start = typeof data.start === \"string\" ? new Date(data.start) : data.start;\r\n var end = typeof data.end === \"string\" ? new Date(data.end) : data.end;\r\n var taskData = {\r\n parentId: rootId && parentId === rootId ? parentId : parent_1 === null || parent_1 === void 0 ? void 0 : parent_1.internalId,\r\n title: data.title,\r\n start: start,\r\n end: end,\r\n progress: parseInt(data.progress) || 0,\r\n color: data.color\r\n };\r\n if (this.commandManager.createTaskCommand.execute(taskData))\r\n return this.getLastInsertedTaskId();\r\n }\r\n return \"\";\r\n };\r\n GanttView.prototype.updateTask = function (key, data) {\r\n var task = this.getTaskByPublicId(key.toString());\r\n if (task && data)\r\n this.commandManager.updateTaskCommand.execute(task.internalId, data);\r\n };\r\n GanttView.prototype.getTaskData = function (key) {\r\n var task = this.getTaskByPublicId(key.toString());\r\n if (task)\r\n return this.viewModel.getTaskObjectForDataSource(task);\r\n };\r\n GanttView.prototype.insertDependency = function (data) {\r\n if (!data)\r\n return;\r\n var predecessorId = String(data.predecessorId);\r\n var predecessor = this.getTaskByPublicId(predecessorId);\r\n var successorId = String(data.successorId);\r\n var successor = this.getTaskByPublicId(successorId);\r\n var type = data.type;\r\n if (predecessor && successor)\r\n this.commandManager.createDependencyCommand.execute(predecessor.internalId, successor.internalId, type);\r\n };\r\n GanttView.prototype.deleteDependency = function (key) {\r\n var internalKey = this.viewModel.convertPublicToInternalKey(\"dependency\", key);\r\n if (common_1.isDefined(internalKey))\r\n this.commandManager.removeDependencyCommand.execute(internalKey);\r\n };\r\n GanttView.prototype.getDependencyData = function (key) {\r\n return this.viewModel.getDependencyObjectForDataSource(key);\r\n };\r\n GanttView.prototype.insertResource = function (data, taskKeys) {\r\n var _this = this;\r\n if (data) {\r\n var callback = function (id) {\r\n if (common_1.isDefined(taskKeys))\r\n for (var i = 0; i < taskKeys.length; i++)\r\n _this.assignResourceToTask(id, taskKeys[i]);\r\n };\r\n this.commandManager.createResourceCommand.execute(String(data.text), data.color && String(data.color), callback);\r\n }\r\n };\r\n GanttView.prototype.deleteResource = function (key) {\r\n var internalKey = this.viewModel.convertPublicToInternalKey(\"resource\", key);\r\n if (common_1.isDefined(internalKey))\r\n this.commandManager.removeResourceCommand.execute(internalKey);\r\n };\r\n GanttView.prototype.assignResourceToTask = function (resourceKey, taskKey) {\r\n var resourceInternalKey = this.viewModel.convertPublicToInternalKey(\"resource\", resourceKey);\r\n var taskInternalKey = this.viewModel.convertPublicToInternalKey(\"task\", taskKey);\r\n if (common_1.isDefined(resourceInternalKey) && common_1.isDefined(taskInternalKey))\r\n this.commandManager.assignResourceCommand.execute(resourceInternalKey, taskInternalKey);\r\n };\r\n GanttView.prototype.unassignResourceFromTask = function (resourceKey, taskKey) {\r\n var assignment = this.viewModel.findAssignment(resourceKey, taskKey);\r\n if (assignment)\r\n this.commandManager.deassignResourceCommand.execute(assignment.internalId);\r\n };\r\n GanttView.prototype.getResourceData = function (key) {\r\n return this.viewModel.getResourceObjectForDataSource(key);\r\n };\r\n GanttView.prototype.getResourceAssignmentData = function (key) {\r\n return this.viewModel.getResourceAssignmentObjectForDataSource(key);\r\n };\r\n GanttView.prototype.getTaskResources = function (key) {\r\n var model = this.viewModel;\r\n var task = model.getItemByPublicId(\"task\", key);\r\n return task && model.getAssignedResources(task).items;\r\n };\r\n GanttView.prototype.getVisibleTaskKeys = function () { return this.viewModel.getVisibleTasks().map(function (t) { return t.id; }); };\r\n GanttView.prototype.getVisibleDependencyKeys = function () { return this.viewModel.getVisibleDependencies().map(function (d) { return d.id; }); };\r\n GanttView.prototype.getVisibleResourceKeys = function () { return this.viewModel.getVisibleResources().map(function (r) { return r.id; }); };\r\n GanttView.prototype.getVisibleResourceAssignmentKeys = function () { return this.viewModel.getVisibleResourceAssignments().map(function (a) { return a.id; }); };\r\n GanttView.prototype.getTasksExpandedState = function () { return this.viewModel.getTasksExpandedState(); };\r\n GanttView.prototype.applyTasksExpandedState = function (state) { this.viewModel.applyTasksExpandedState(state); };\r\n GanttView.prototype.setTaskValue = function (id, fieldName, newValue) {\r\n var manager = this.commandManager;\r\n var task = this.getTaskByPublicId(id);\r\n if (task) {\r\n if (fieldName === \"title\") {\r\n var checkedNewValue = newValue ? newValue : \"\";\r\n return manager.changeTaskTitleCommand.execute(task.internalId, checkedNewValue);\r\n }\r\n if (fieldName === \"progress\") {\r\n var newProgress = Math.max(newValue, 0);\r\n newProgress = Math.min(newValue, 100);\r\n return manager.changeTaskProgressCommand.execute(task.internalId, newProgress);\r\n }\r\n if (fieldName === \"start\")\r\n return manager.changeTaskStartCommand.execute(task.internalId, DateTimeUtils_1.DateTimeUtils.getMinDate(newValue, task.end));\r\n if (fieldName === \"end\")\r\n return manager.changeTaskEndCommand.execute(task.internalId, DateTimeUtils_1.DateTimeUtils.getMaxDate(newValue, task.start));\r\n }\r\n return false;\r\n };\r\n GanttView.prototype.getLastInsertedTaskId = function () {\r\n var createTaskItems = this.history.historyItems.filter(function (i) { return i instanceof TaskHistoryItem_1.CreateTaskHistoryItem; });\r\n var lastItem = createTaskItems[createTaskItems.length - 1];\r\n return lastItem && lastItem.taskId;\r\n };\r\n GanttView.prototype.getLastInsertedResource = function () {\r\n var createTaskItems = this.history.historyItems.filter(function (i) { return i instanceof ResourceHistoryItem_1.CreateResourceHistoryItem; });\r\n var lastItem = createTaskItems[createTaskItems.length - 1];\r\n return lastItem && lastItem.resource;\r\n };\r\n GanttView.prototype.getTaskByPublicId = function (id) {\r\n return this.viewModel.tasks.getItemByPublicId(id);\r\n };\r\n GanttView.prototype.getPrevTask = function (taskId) {\r\n var item = this.viewModel.findItem(taskId);\r\n var parent = item.parent || this.viewModel.root;\r\n var index = parent.children.indexOf(item) - 1;\r\n return index > -1 ? item.parent.children[index].task : item.parent.task;\r\n };\r\n GanttView.prototype.updateCreatedTaskIdAfterServerUpdate = function (internalId, id) {\r\n var item = this.viewModel.findItem(internalId);\r\n var task = item && item.task;\r\n if (task)\r\n task.id = id;\r\n };\r\n GanttView.prototype.getTaskIdByInternalId = function (internalId) {\r\n var item = this.viewModel.findItem(internalId);\r\n var task = item && item.task;\r\n return task ? task.id : null;\r\n };\r\n GanttView.prototype.isTaskHasChildren = function (taskId) {\r\n var item = this.viewModel.findItem(taskId);\r\n return item && item.children.length > 0;\r\n };\r\n GanttView.prototype.requireFirstLoadParentAutoCalc = function () {\r\n var owner = this.ganttOwner;\r\n return owner.getRequireFirstLoadParentAutoCalc && owner.getRequireFirstLoadParentAutoCalc();\r\n };\r\n GanttView.prototype.updateOwnerInAutoParentMode = function () {\r\n if (this.viewModel.parentAutoCalc)\r\n this.dispatcher.notifyParentDataRecalculated(this.viewModel.getCurrentTaskData());\r\n };\r\n GanttView.prototype.getOwnerControlMainElement = function () {\r\n var owner = this.ganttOwner;\r\n return owner.getMainElement && owner.getMainElement();\r\n };\r\n GanttView.prototype.adjustOwnerControl = function () {\r\n var owner = this.ganttOwner;\r\n if (owner.adjustControl)\r\n owner.adjustControl();\r\n };\r\n GanttView.prototype.onBrowserWindowResize = function () {\r\n if (this.fullScreenModeHelper.isInFullScreenMode)\r\n this.fullScreenModeHelper.adjustControlInFullScreenMode();\r\n else\r\n this.adjustOwnerControl();\r\n };\r\n GanttView.prototype.applySettings = function (settings, preventViewUpdate) {\r\n if (preventViewUpdate === void 0) { preventViewUpdate = false; }\r\n var ganttSettings = Settings_1.Settings.parse(settings);\r\n var preventUpdate = preventViewUpdate || this.settings.equal(ganttSettings);\r\n this.settings = ganttSettings;\r\n if (!preventUpdate)\r\n this.resetAndUpdate();\r\n };\r\n GanttView.prototype.getDataUpdateErrorCallback = function () {\r\n var _this = this;\r\n var history = this.history;\r\n var currentHistoryItemInfo = history.getCurrentProcessingItemInfo();\r\n return function () {\r\n _this.dispatcher.lock();\r\n history.rollBackAndRemove(currentHistoryItemInfo);\r\n _this.dispatcher.unlock();\r\n _this.updateBarManager();\r\n };\r\n };\r\n GanttView.prototype.setTaskTooltipContentTemplate = function (taskTooltipContentTemplate) {\r\n this.settings.taskTooltipContentTemplate = taskTooltipContentTemplate;\r\n };\r\n GanttView.prototype.updateBarManager = function () {\r\n this.barManager.updateItemsState([]);\r\n };\r\n GanttView.prototype.onTaskClick = function (key, evt) {\r\n if (!this.ganttOwner.onTaskClick)\r\n return true;\r\n return this.ganttOwner.onTaskClick(key, evt);\r\n };\r\n GanttView.prototype.onTaskDblClick = function (key, evt) {\r\n if (!this.ganttOwner.onTaskDblClick)\r\n return true;\r\n return this.ganttOwner.onTaskDblClick(key, evt);\r\n };\r\n GanttView.prototype.getDateFormat = function (date) {\r\n return this.ganttOwner.getFormattedDateText ? this.ganttOwner.getFormattedDateText(date) : this.getDefaultDateFormat(date);\r\n };\r\n GanttView.prototype.getDefaultDateFormat = function (date) {\r\n return (\"0\" + date.getDate()).slice(-2) + \"/\" + (\"0\" + (date.getMonth() + 1)).slice(-2) + \"/\" + date.getFullYear() + \" \" + (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n };\r\n GanttView.prototype.destroyTemplate = function (container) {\r\n this.ganttOwner.destroyTemplate ? this.ganttOwner.destroyTemplate(container) : container.innerHTML = \"\";\r\n };\r\n GanttView.cachedPrefix = \"cached_\";\r\n GanttView.taskAreaScrollTopKey = GanttView.cachedPrefix + \"taskAreaScrollTop\";\r\n GanttView.taskAreaScrollLeftKey = GanttView.cachedPrefix + \"taskAreaScrollLeft\";\r\n GanttView.taskTextHeightKey = GanttView.cachedPrefix + \"taskTextHeight\";\r\n return GanttView;\r\n}());\r\nexports.GanttView = GanttView;\r\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ViewVisualModel = void 0;\r\nvar ResourceCollection_1 = __webpack_require__(26);\r\nvar TaskCollection_1 = __webpack_require__(62);\r\nvar DependencyCollection_1 = __webpack_require__(64);\r\nvar ResourceAssignmentCollection_1 = __webpack_require__(65);\r\nvar ViewVisualModelItem_1 = __webpack_require__(66);\r\nvar ViewVisualModelDependencyInfo_1 = __webpack_require__(67);\r\nvar WorkingTimeCalculator_1 = __webpack_require__(68);\r\nvar common_1 = __webpack_require__(1);\r\nvar Dependency_1 = __webpack_require__(11);\r\nvar Resource_1 = __webpack_require__(33);\r\nvar ResourceAssignment_1 = __webpack_require__(36);\r\nvar ViewVisualModel = (function () {\r\n function ViewVisualModel(owner, tasks, dependencies, resources, assignments, dateRange, workTimeRules) {\r\n this._fLockCount = 0;\r\n this.lockChangesProcessing = false;\r\n this.owner = owner;\r\n this.tasks = new TaskCollection_1.TaskCollection();\r\n this.tasks.importFromObject(tasks);\r\n this.dependencies = new DependencyCollection_1.DependencyCollection();\r\n this.dependencies.importFromObject(dependencies);\r\n this.resources = new ResourceCollection_1.ResourceCollection();\r\n this.resources.importFromObject(resources);\r\n this.assignments = new ResourceAssignmentCollection_1.ResourceAssignmentCollection();\r\n this.assignments.importFromObject(assignments);\r\n this._itemList = new Array();\r\n this._viewItemList = new Array();\r\n this._workTimeCalculator = new WorkingTimeCalculator_1.WorkingTimeCalculator(dateRange, workTimeRules);\r\n this.updateModel();\r\n }\r\n ViewVisualModel.prototype.updateModel = function () {\r\n this._itemList.splice(0, this._itemList.length);\r\n var tasks = this.tasks.items;\r\n for (var i = 0; i < tasks.length; i++) {\r\n var task = tasks[i];\r\n if (task)\r\n this._itemList.push(new ViewVisualModelItem_1.ViewVisualModelItem(task, this.getAssignedResources(task)));\r\n }\r\n this.createHierarchy();\r\n this.populateItemsForView();\r\n if (this.owner && this.owner.currentSelectedTaskID)\r\n this.changeTaskSelected(this.owner.currentSelectedTaskID, true);\r\n };\r\n ViewVisualModel.prototype.createHierarchy = function () {\r\n var _this = this;\r\n this.root = new ViewVisualModelItem_1.ViewVisualModelItem(null, null);\r\n var list = this._itemList;\r\n var inverted = list.reduce(function (previous, item) {\r\n var _a;\r\n var key = (_a = item.task) === null || _a === void 0 ? void 0 : _a.internalId;\r\n if (common_1.isDefined(key))\r\n previous[key] = item;\r\n return previous;\r\n }, {});\r\n var recalculateParentRequired = this.requireFirstLoadParentAutoCalc;\r\n for (var i = 0; i < list.length; i++) {\r\n var item = list[i];\r\n var parentId = item.task.parentId;\r\n var parentItem = inverted[parentId] || this.root;\r\n item.parent = parentItem;\r\n parentItem.addChild(item);\r\n if (recalculateParentRequired)\r\n this.owner.validationController.recalculateParents(item, function (data) {\r\n if (!common_1.isDefined(data.id))\r\n return;\r\n var task = _this.tasks.getItemById(data.id);\r\n if (common_1.isDefined(data.start))\r\n task.start = data.start;\r\n if (common_1.isDefined(data.end))\r\n task.end = data.end;\r\n if (common_1.isDefined(data.progress))\r\n task.progress = data.progress;\r\n });\r\n }\r\n if (recalculateParentRequired)\r\n this.owner.dispatcher.notifyParentDataRecalculated(this.getCurrentTaskData());\r\n };\r\n ViewVisualModel.prototype.getCurrentTaskData = function () {\r\n var _this = this;\r\n return this.tasks.items.map(function (t) { return _this.getTaskObjectForDataSource(t); });\r\n };\r\n ViewVisualModel.prototype.getTaskObjectForDataSource = function (task) {\r\n var parentTask = task.parentId && this.tasks.getItemById(task.parentId);\r\n var rootId = this.getRootTaskId();\r\n var parentId = rootId && task.parentId === rootId ? task.parentId : parentTask === null || parentTask === void 0 ? void 0 : parentTask.id;\r\n var taskObject = {\r\n id: task.id,\r\n start: task.start,\r\n end: task.end,\r\n duration: task.duration,\r\n description: task.description,\r\n parentId: parentId,\r\n progress: task.progress,\r\n color: task.color,\r\n taskType: task.taskType,\r\n title: task.title,\r\n customFields: task.customFields,\r\n expanded: task.expanded\r\n };\r\n return taskObject;\r\n };\r\n ViewVisualModel.prototype.getDependencyObjectForDataSource = function (key) {\r\n var dependency = key instanceof Dependency_1.Dependency ? key : this.getItemByPublicId(\"dependency\", key);\r\n if (dependency) {\r\n var predecessorId = this.convertInternalToPublicKey(\"task\", dependency.predecessorId);\r\n var successorId = this.convertInternalToPublicKey(\"task\", dependency.successorId);\r\n return {\r\n id: dependency.id,\r\n predecessorId: common_1.isDefined(predecessorId) ? predecessorId : dependency.predecessorId,\r\n successorId: common_1.isDefined(successorId) ? successorId : dependency.successorId,\r\n type: dependency.type\r\n };\r\n }\r\n return null;\r\n };\r\n ViewVisualModel.prototype.getResourceObjectForDataSource = function (key) {\r\n var resource = key instanceof Resource_1.Resource ? key : this.getItemByPublicId(\"resource\", key);\r\n if (resource)\r\n return {\r\n id: resource.id,\r\n text: resource.text,\r\n color: resource.color\r\n };\r\n return null;\r\n };\r\n ViewVisualModel.prototype.getResourceAssignmentObjectForDataSource = function (key) {\r\n var assignment = key instanceof ResourceAssignment_1.ResourceAssignment ? key : this.getItemByPublicId(\"assignment\", key);\r\n if (assignment) {\r\n var taskId = this.convertInternalToPublicKey(\"task\", assignment.taskId);\r\n var resourceId = this.convertInternalToPublicKey(\"resource\", assignment.resourceId);\r\n return {\r\n id: assignment.id,\r\n taskId: common_1.isDefined(taskId) ? taskId : assignment.taskId,\r\n resourceId: common_1.isDefined(resourceId) ? resourceId : assignment.resourceId\r\n };\r\n }\r\n return null;\r\n };\r\n ViewVisualModel.prototype.populateItemsForView = function () {\r\n this._viewItemList.splice(0, this._viewItemList.length);\r\n this.populateVisibleItems(this.root);\r\n this.updateVisibleItemDependencies();\r\n };\r\n ViewVisualModel.prototype.populateVisibleItems = function (item) {\r\n var _this = this;\r\n var isRoot = item === this.root;\r\n if (!item || (!item.task && !isRoot))\r\n return;\r\n if (!isRoot) {\r\n this._viewItemList.push(item);\r\n item.visibleIndex = this._viewItemList.length - 1;\r\n }\r\n if (item.getExpanded() || item === this.root)\r\n item.children.forEach(function (n) { return _this.populateVisibleItems(n); });\r\n };\r\n ViewVisualModel.prototype.updateVisibleItemDependencies = function () {\r\n var list = this._viewItemList;\r\n for (var i = 0; i < list.length; i++) {\r\n var item = list[i];\r\n var visibleDependencies = this.getTasVisibleDependencies(item.task);\r\n item.setDependencies(visibleDependencies);\r\n }\r\n };\r\n ViewVisualModel.prototype.getAssignedResources = function (task) {\r\n var _this = this;\r\n var res = new ResourceCollection_1.ResourceCollection();\r\n var assignments = this.assignments.items.filter(function (value) { return value.taskId == task.internalId; });\r\n assignments.forEach(function (assignment) { res.add(_this.resources.getItemById(assignment.resourceId)); });\r\n return res;\r\n };\r\n ViewVisualModel.prototype.getTasVisibleDependencies = function (task) {\r\n var res = new Array();\r\n var id = task.internalId;\r\n var dependencies = this.dependencies.items.filter(function (value) { return value.successorId == id; });\r\n for (var i = 0; i < dependencies.length; i++) {\r\n var dependency = dependencies[i];\r\n var item = this.findItem(dependency.predecessorId);\r\n if (item && item.getVisible())\r\n res.push(new ViewVisualModelDependencyInfo_1.ViewVisualModelDependencyInfo(dependency.internalId, item, dependency.type));\r\n }\r\n return res;\r\n };\r\n ViewVisualModel.prototype.changeTaskExpanded = function (id, expanded) {\r\n var task = this.tasks.getItemById(String(id));\r\n if (task) {\r\n task.expanded = expanded;\r\n this.changed();\r\n }\r\n };\r\n ViewVisualModel.prototype.changeTaskVisibility = function (id, visible) {\r\n var item = this.findItem(id);\r\n if (item) {\r\n item.visible = visible;\r\n this.changed();\r\n }\r\n };\r\n ViewVisualModel.prototype.changeTaskSelected = function (id, selected) {\r\n var item = this._itemList.filter(function (value) { return value.task && value.task.internalId === id; })[0];\r\n if (item) {\r\n item.selected = selected;\r\n var viewItem = this.findItem(id);\r\n var taskIndex = viewItem && viewItem.visibleIndex;\r\n if (taskIndex > -1)\r\n this.owner.recreateTaskElement(taskIndex);\r\n }\r\n };\r\n ViewVisualModel.prototype.beginUpdate = function () {\r\n this._fLockCount++;\r\n };\r\n ViewVisualModel.prototype.endUpdate = function () {\r\n this._fLockCount--;\r\n if (this._fLockCount == 0)\r\n this.changed();\r\n };\r\n ViewVisualModel.prototype.compareTaskOrder = function (taskModel) {\r\n var newTasks = new TaskCollection_1.TaskCollection();\r\n newTasks.importFromObject(taskModel);\r\n var newItems = newTasks.items;\r\n var oldItems = this.tasks.items;\r\n if (newItems.length !== oldItems.length)\r\n return false;\r\n for (var i = 0; i < newItems.length; i++) {\r\n var newTask = newItems[i];\r\n var oldTask = oldItems[i];\r\n if (newTask.id !== oldTask.id)\r\n return false;\r\n }\r\n return true;\r\n };\r\n ViewVisualModel.prototype.refreshTaskDataIfRequires = function (tasks) {\r\n var changed = !this.lockChangesProcessing && !this.compareTaskOrder(tasks);\r\n if (changed) {\r\n var hash = this.saveTaskInternalIds();\r\n this.tasks.importFromObject(tasks);\r\n this.restoreTaskInternalIds(hash);\r\n this.updateModel();\r\n }\r\n return changed;\r\n };\r\n ViewVisualModel.prototype.saveTaskInternalIds = function () {\r\n var hash = {};\r\n this.tasks.items.map(function (t) { return hash[t.id] = t.internalId; });\r\n return hash;\r\n };\r\n ViewVisualModel.prototype.restoreTaskInternalIds = function (hash) {\r\n for (var id in hash) {\r\n if (!Object.prototype.hasOwnProperty.call(hash, id))\r\n continue;\r\n var task = this.tasks.getItemByPublicId(id);\r\n if (task)\r\n task.internalId = hash[id];\r\n }\r\n };\r\n ViewVisualModel.prototype.getTasksExpandedState = function () {\r\n var items = this.tasks.items;\r\n var state = {};\r\n items.forEach(function (t) { return state[t.id] = t.expanded; });\r\n return state;\r\n };\r\n ViewVisualModel.prototype.applyTasksExpandedState = function (state) {\r\n if (!state)\r\n return;\r\n this.beginUpdate();\r\n for (var key in state)\r\n if (Object.prototype.hasOwnProperty.call(state, key))\r\n this.changeTaskExpanded(key, state[key]);\r\n this.endUpdate();\r\n };\r\n ViewVisualModel.prototype.changed = function () {\r\n if (this._fLockCount !== 0)\r\n return;\r\n this.populateItemsForView();\r\n if (this.owner && this.owner.onVisualModelChanged)\r\n this.owner.onVisualModelChanged();\r\n };\r\n ViewVisualModel.prototype.findItem = function (taskId) {\r\n return this._viewItemList.filter(function (value) { return value.task && value.task.internalId === taskId; })[0];\r\n };\r\n Object.defineProperty(ViewVisualModel.prototype, \"items\", {\r\n get: function () { return this._viewItemList; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ViewVisualModel.prototype, \"itemCount\", {\r\n get: function () { return this.items.length; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ViewVisualModel.prototype.getTaskVisibility = function (id) {\r\n var item = this.findItem(id);\r\n return !!item && item.getVisible();\r\n };\r\n ViewVisualModel.prototype.getTaskSelected = function (id) {\r\n var item = this.findItem(id);\r\n return !!item && item.selected;\r\n };\r\n Object.defineProperty(ViewVisualModel.prototype, \"noWorkingIntervals\", {\r\n get: function () { return this._workTimeCalculator.noWorkingIntervals; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ViewVisualModel.prototype.updateRange = function (range) { this._workTimeCalculator.updateRange(range); };\r\n ViewVisualModel.prototype.taskHasChildrenByIndex = function (index) { return this._viewItemList[index].children.length > 0; };\r\n ViewVisualModel.prototype.taskHasChildren = function (id) {\r\n var item = this.findItem(id);\r\n return item && item.children.length > 0;\r\n };\r\n Object.defineProperty(ViewVisualModel.prototype, \"parentAutoCalc\", {\r\n get: function () {\r\n var settings = this.owner && this.owner.settings;\r\n return settings && settings.validation && settings.validation.autoUpdateParentTasks;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ViewVisualModel.prototype, \"enablePredecessorGap\", {\r\n get: function () {\r\n var settings = this.owner && this.owner.settings;\r\n return settings && settings.validation && settings.validation.enablePredecessorGap;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ViewVisualModel.prototype, \"requireFirstLoadParentAutoCalc\", {\r\n get: function () { return this.parentAutoCalc && this.owner.requireFirstLoadParentAutoCalc(); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ViewVisualModel.prototype.isTaskToCalculateByChildren = function (id) { return this.parentAutoCalc && this.taskHasChildren(id); };\r\n ViewVisualModel.prototype.hasTasks = function () { return this.tasks.length > 0; };\r\n ViewVisualModel.prototype.getDataUpdateErrorCallback = function () {\r\n return this.owner.getDataUpdateErrorCallback && this.owner.getDataUpdateErrorCallback();\r\n };\r\n ViewVisualModel.prototype.convertPublicToInternalKey = function (dataType, publicKey) {\r\n var item = this.getItemByPublicId(dataType, publicKey);\r\n return item && item.internalId;\r\n };\r\n ViewVisualModel.prototype.convertInternalToPublicKey = function (dataType, internalId) {\r\n var item = this.getItemByInternalId(dataType, internalId);\r\n return item && item.id;\r\n };\r\n ViewVisualModel.prototype.getItemByPublicId = function (dataType, publicKey) {\r\n var strKey = publicKey.toString();\r\n switch (dataType) {\r\n case \"task\":\r\n return this.tasks.getItemByPublicId(strKey);\r\n case \"dependency\":\r\n return this.dependencies.getItemByPublicId(strKey);\r\n case \"resource\":\r\n return this.resources.getItemByPublicId(strKey);\r\n case \"assignment\":\r\n return this.assignments.getItemByPublicId(strKey);\r\n }\r\n return null;\r\n };\r\n ViewVisualModel.prototype.getItemByInternalId = function (dataType, internalId) {\r\n switch (dataType) {\r\n case \"task\":\r\n return this.tasks.getItemById(internalId);\r\n case \"dependency\":\r\n return this.dependencies.getItemById(internalId);\r\n case \"resource\":\r\n return this.resources.getItemById(internalId);\r\n case \"assignment\":\r\n return this.assignments.getItemById(internalId);\r\n }\r\n return null;\r\n };\r\n ViewVisualModel.prototype.findAssignment = function (resourceKey, taskKey) {\r\n var resourceInternalKey = this.convertPublicToInternalKey(\"resource\", resourceKey);\r\n var taskInternalKey = this.convertPublicToInternalKey(\"task\", taskKey);\r\n return this.assignments.items.filter(function (val) { return val.resourceId === resourceInternalKey && val.taskId === taskInternalKey; })[0];\r\n };\r\n ViewVisualModel.prototype.getVisibleTasks = function () {\r\n var _this = this;\r\n return this.tasks.items.filter(function (t) { return t && _this.getTaskVisibility(t.internalId) && t.isValid(); });\r\n };\r\n ViewVisualModel.prototype.getVisibleDependencies = function () {\r\n var visibleTasksKeys = this.getVisibleTasks().map(function (t) { return t.internalId; });\r\n return this.dependencies.items.filter(function (d) { return d && visibleTasksKeys.indexOf(d.successorId) > -1 && visibleTasksKeys.indexOf(d.predecessorId) > -1; });\r\n };\r\n ViewVisualModel.prototype.getVisibleResourceAssignments = function () {\r\n var visibleTasksKeys = this.getVisibleTasks().map(function (t) { return t.internalId; });\r\n return this.assignments.items.filter(function (a) { return a && visibleTasksKeys.indexOf(a.taskId) > -1; });\r\n };\r\n ViewVisualModel.prototype.getVisibleResources = function () {\r\n var visibleResources = [];\r\n var visibleAssignments = this.getVisibleResourceAssignments();\r\n for (var i = 0; i < visibleAssignments.length; i++) {\r\n var resource = this.getItemByInternalId(\"resource\", visibleAssignments[i].resourceId);\r\n if (resource && visibleResources.indexOf(resource) === -1)\r\n visibleResources.push(resource);\r\n }\r\n return visibleResources;\r\n };\r\n ViewVisualModel.prototype.getRootTaskId = function () {\r\n var _a;\r\n (_a = this.rootTaskId) !== null && _a !== void 0 ? _a : (this.rootTaskId = this.calculateRootTaskId());\r\n return this.rootTaskId;\r\n };\r\n ViewVisualModel.prototype.calculateRootTaskId = function () {\r\n var item = this.items[0];\r\n if (!item)\r\n return null;\r\n while (item.parent && item.task)\r\n item = item.parent;\r\n return item.children[0].task.parentId;\r\n };\r\n return ViewVisualModel;\r\n}());\r\nexports.ViewVisualModel = ViewVisualModel;\r\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GanttJsonUtils = void 0;\r\nvar json_1 = __webpack_require__(58);\r\nvar GanttJsonUtils = (function () {\r\n function GanttJsonUtils() {\r\n }\r\n GanttJsonUtils.parseJson = function (json) {\r\n return json_1.JsonUtils.isValid(json) ? JSON.parse(json) : null;\r\n };\r\n return GanttJsonUtils;\r\n}());\r\nexports.GanttJsonUtils = GanttJsonUtils;\r\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar JsonUtils = (function () {\r\n function JsonUtils() {\r\n }\r\n JsonUtils.isValid = function (json) {\r\n return !(/[^,:{}[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]/.test(json.replace(/\"(\\\\.|[^\"\\\\])*\"/g, '')));\r\n };\r\n return JsonUtils;\r\n}());\r\nexports.JsonUtils = JsonUtils;\r\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar min_max_1 = __webpack_require__(60);\r\nvar comparers_1 = __webpack_require__(61);\r\nvar ListUtils = (function () {\r\n function ListUtils() {\r\n }\r\n ListUtils.remove = function (list, element) {\r\n var index = list.indexOf(element, 0);\r\n if (index >= 0)\r\n list.splice(index, 1);\r\n };\r\n ListUtils.removeBy = function (list, callback) {\r\n var len = list.length;\r\n for (var index = 0; index < len; index++) {\r\n if (callback(list[index], index))\r\n return list.splice(index, 1)[0];\r\n }\r\n return null;\r\n };\r\n ListUtils.shallowCopy = function (list) {\r\n return list.slice();\r\n };\r\n ListUtils.deepCopy = function (list) {\r\n return ListUtils.map(list, function (val) { return val.clone(); });\r\n };\r\n ListUtils.initByValue = function (numElements, initValue) {\r\n var result = [];\r\n for (; numElements > 0; numElements--)\r\n result.push(initValue);\r\n return result;\r\n };\r\n ListUtils.initByCallback = function (numElements, initCallback) {\r\n var result = [];\r\n for (var index = 0; index < numElements; index++)\r\n result.push(initCallback(index));\r\n return result;\r\n };\r\n ListUtils.forEachOnInterval = function (interval, callback) {\r\n var end = interval.end;\r\n for (var index = interval.start; index < end; index++)\r\n callback(index);\r\n };\r\n ListUtils.reverseForEachOnInterval = function (interval, callback) {\r\n var start = interval.start;\r\n for (var index = interval.end - 1; index >= start; index--)\r\n callback(index);\r\n };\r\n ListUtils.reducedMap = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var result = [];\r\n for (var index = startIndex; index < endIndex; index++) {\r\n var newItem = callback(list[index], index);\r\n if (newItem !== null)\r\n result.push(newItem);\r\n }\r\n return result;\r\n };\r\n ListUtils.filter = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var result = [];\r\n for (var index = startIndex; index < endIndex; index++) {\r\n var item = list[index];\r\n if (callback(item, index))\r\n result.push(item);\r\n }\r\n return result;\r\n };\r\n ListUtils.map = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var result = [];\r\n for (var index = startIndex; index < endIndex; index++)\r\n result.push(callback(list[index], index));\r\n return result;\r\n };\r\n ListUtils.indexBy = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var ind = startIndex; ind < endIndex; ind++) {\r\n if (callback(list[ind], ind))\r\n return ind;\r\n }\r\n return -1;\r\n };\r\n ListUtils.reverseIndexBy = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var ind = startIndex; ind >= endIndex; ind--) {\r\n if (callback(list[ind], ind))\r\n return ind;\r\n }\r\n return -1;\r\n };\r\n ListUtils.elementBy = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var ind = ListUtils.indexBy(list, callback, startIndex, endIndex);\r\n return ind < 0 ? null : list[ind];\r\n };\r\n ListUtils.reverseElementBy = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n var ind = ListUtils.reverseIndexBy(list, callback, startIndex, endIndex);\r\n return ind < 0 ? null : list[ind];\r\n };\r\n ListUtils.last = function (list) {\r\n return list[list.length - 1];\r\n };\r\n ListUtils.setLast = function (list, newVal) {\r\n return list[list.length - 1] = newVal;\r\n };\r\n ListUtils.incLast = function (list) {\r\n return ++list[list.length - 1];\r\n };\r\n ListUtils.decLast = function (list) {\r\n return --list[list.length - 1];\r\n };\r\n ListUtils.equals = function (a, b) {\r\n return a.length === b.length && ListUtils.allOf2(a, b, function (a, b) { return a.equals(b); });\r\n };\r\n ListUtils.equalsByReference = function (a, b) {\r\n var aLen = a.length;\r\n var bLen = a.length;\r\n if (aLen !== bLen)\r\n return false;\r\n for (var i = 0; i < aLen; i++) {\r\n if (a[i] !== b[i])\r\n return false;\r\n }\r\n return true;\r\n };\r\n ListUtils.unique = function (list, cmp, equal, finalizeObj) {\r\n if (equal === void 0) { equal = cmp; }\r\n if (finalizeObj === void 0) { finalizeObj = function () { }; }\r\n var len = list.length;\r\n if (len === 0)\r\n return [];\r\n list = list.sort(cmp);\r\n var prevValue = list[0];\r\n var result = ListUtils.reducedMap(list, function (v) {\r\n if (equal(prevValue, v) !== 0) {\r\n prevValue = v;\r\n return v;\r\n }\r\n finalizeObj(v);\r\n return null;\r\n }, 1, len);\r\n result.unshift(list[0]);\r\n return result;\r\n };\r\n ListUtils.uniqueNumber = function (list) {\r\n list = list.sort(comparers_1.Comparers.number);\r\n var prevValue = Number.NaN;\r\n for (var i = list.length - 1; i >= 0; i--) {\r\n if (prevValue === list[i])\r\n list.splice(i, 1);\r\n else\r\n prevValue = list[i];\r\n }\r\n return list;\r\n };\r\n ListUtils.forEach = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var index = startIndex; index < endIndex; index++)\r\n callback(list[index], index);\r\n };\r\n ListUtils.forEach2 = function (listA, listB, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = listA.length; }\r\n for (var index = startIndex; index < endIndex; index++)\r\n callback(listA[index], listB[index], index);\r\n };\r\n ListUtils.reverseForEach = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var index = startIndex; index >= endIndex; index--)\r\n callback(list[index], index);\r\n };\r\n ListUtils.reverseIndexOf = function (list, element, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var index = startIndex; index >= endIndex; index--) {\r\n if (list[index] === element)\r\n return index;\r\n }\r\n return -1;\r\n };\r\n ListUtils.accumulate = function (list, initAccValue, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var acc = initAccValue;\r\n for (var ind = startIndex; ind < endIndex; ind++)\r\n acc = callback(acc, list[ind], ind);\r\n return acc;\r\n };\r\n ListUtils.accumulateNumber = function (list, callback, initAccValue, startIndex, endIndex) {\r\n if (initAccValue === void 0) { initAccValue = 0; }\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var acc = initAccValue;\r\n for (var ind = startIndex; ind < endIndex; ind++)\r\n acc += callback(list[ind], ind, acc);\r\n return acc;\r\n };\r\n ListUtils.anyOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n if (callback(list[index], index))\r\n return true;\r\n }\r\n return false;\r\n };\r\n ListUtils.unsafeAnyOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n var currResult = callback(list[index], index);\r\n if (currResult)\r\n return currResult;\r\n }\r\n return null;\r\n };\r\n ListUtils.reverseAnyOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var index = startIndex; index >= endIndex; index--) {\r\n if (callback(list[index], index))\r\n return true;\r\n }\r\n return false;\r\n };\r\n ListUtils.unsafeReverseAnyOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var index = startIndex; index >= endIndex; index--) {\r\n var currResult = callback(list[index], index);\r\n if (currResult)\r\n return currResult;\r\n }\r\n return null;\r\n };\r\n ListUtils.anyOf2 = function (listA, listB, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = listA.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n if (callback(listA[index], listB[index], index))\r\n return true;\r\n }\r\n return false;\r\n };\r\n ListUtils.allOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n if (!callback(list[index], index))\r\n return false;\r\n }\r\n return true;\r\n };\r\n ListUtils.allOf2 = function (listA, listB, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = listA.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n if (!callback(listA[index], listB[index], index))\r\n return false;\r\n }\r\n return true;\r\n };\r\n ListUtils.allOfOnInterval = function (interval, callback) {\r\n var endIndex = interval.end;\r\n for (var index = interval.start; index < endIndex; index++) {\r\n if (!callback(index))\r\n return false;\r\n }\r\n return true;\r\n };\r\n ListUtils.addListOnTail = function (resultList, addedList) {\r\n for (var i = 0, elem = void 0; elem = addedList[i]; i++)\r\n resultList.push(elem);\r\n return resultList;\r\n };\r\n ListUtils.joinLists = function (converter) {\r\n var lists = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n lists[_i - 1] = arguments[_i];\r\n }\r\n return ListUtils.accumulate(lists, [], function (accList, list) {\r\n ListUtils.addListOnTail(accList, converter(list));\r\n return accList;\r\n });\r\n };\r\n ListUtils.push = function (list, element) {\r\n list.push(element);\r\n return list;\r\n };\r\n ListUtils.countIf = function (list, callback) {\r\n return ListUtils.accumulateNumber(list, function (elem, ind) { return callback(elem, ind) ? 1 : 0; });\r\n };\r\n ListUtils.clear = function (list) {\r\n list.splice(0);\r\n };\r\n ListUtils.merge = function (list, cmp, shouldMerge, merge, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n list = list.slice(startIndex, endIndex);\r\n if (endIndex - startIndex < 2)\r\n return list;\r\n list = list.sort(cmp);\r\n var prevObj = list[startIndex];\r\n var result = [prevObj];\r\n for (var ind = startIndex + 1; ind < endIndex; ind++) {\r\n var obj = list[ind];\r\n if (shouldMerge(prevObj, obj))\r\n merge(prevObj, obj);\r\n else {\r\n prevObj = obj;\r\n result.push(prevObj);\r\n }\r\n }\r\n return result;\r\n };\r\n ListUtils.min = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var res = ListUtils.minExtended(list, getValue, startIndex, endIndex);\r\n return res ? res.minElement : null;\r\n };\r\n ListUtils.max = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var res = ListUtils.maxExtended(list, getValue, startIndex, endIndex);\r\n return res ? res.maxElement : null;\r\n };\r\n ListUtils.minMax = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var res = ListUtils.minMaxExtended(list, getValue, startIndex, endIndex);\r\n return res ? new min_max_1.MinMax(res.minElement, res.maxElement) : null;\r\n };\r\n ListUtils.minExtended = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var minElement = list[startIndex];\r\n var minValue = getValue(minElement);\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n var elemValue = getValue(elem);\r\n if (elemValue < minValue) {\r\n minValue = elemValue;\r\n minElement = elem;\r\n }\r\n }\r\n return new min_max_1.ExtendedMin(minElement, minValue);\r\n };\r\n ListUtils.maxExtended = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var maxElement = list[startIndex];\r\n var maxValue = getValue(maxElement);\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n var elemValue = getValue(elem);\r\n if (elemValue > maxValue) {\r\n maxValue = elemValue;\r\n maxElement = elem;\r\n }\r\n }\r\n return new min_max_1.ExtendedMax(maxElement, maxValue);\r\n };\r\n ListUtils.minMaxExtended = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var minElement = list[startIndex];\r\n var maxElement = minElement;\r\n var minValue = getValue(minElement);\r\n var maxValue = minValue;\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n var elemValue = getValue(elem);\r\n if (elemValue < minValue) {\r\n minValue = elemValue;\r\n minElement = elem;\r\n }\r\n else if (elemValue > maxValue) {\r\n maxValue = elemValue;\r\n maxElement = elem;\r\n }\r\n }\r\n return new min_max_1.ExtendedMinMax(minElement, minValue, maxElement, maxValue);\r\n };\r\n ListUtils.minByCmp = function (list, cmp, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var found = list[startIndex];\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n if (cmp(elem, found) < 0)\r\n found = elem;\r\n }\r\n return found;\r\n };\r\n ListUtils.maxByCmp = function (list, cmp, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var found = list[startIndex];\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n if (cmp(elem, found) > 0)\r\n found = elem;\r\n }\r\n return found;\r\n };\r\n ListUtils.minMaxByCmp = function (list, cmp, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var min = list[startIndex];\r\n var max = min;\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n var res = cmp(elem, min);\r\n if (res > 0)\r\n max = elem;\r\n else if (res < 0)\r\n min = elem;\r\n }\r\n return new min_max_1.MinMax(min, max);\r\n };\r\n return ListUtils;\r\n}());\r\nexports.ListUtils = ListUtils;\r\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(35);\r\nvar MinMax = (function () {\r\n function MinMax(minElement, maxElement) {\r\n this.minElement = minElement;\r\n this.maxElement = maxElement;\r\n }\r\n return MinMax;\r\n}());\r\nexports.MinMax = MinMax;\r\nvar MinMaxNumber = (function (_super) {\r\n tslib_1.__extends(MinMaxNumber, _super);\r\n function MinMaxNumber() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(MinMaxNumber.prototype, \"length\", {\r\n get: function () {\r\n return this.maxElement - this.minElement;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return MinMaxNumber;\r\n}(MinMax));\r\nexports.MinMaxNumber = MinMaxNumber;\r\nvar ExtendedMin = (function () {\r\n function ExtendedMin(minElement, minValue) {\r\n this.minElement = minElement;\r\n this.minValue = minValue;\r\n }\r\n return ExtendedMin;\r\n}());\r\nexports.ExtendedMin = ExtendedMin;\r\nvar ExtendedMax = (function () {\r\n function ExtendedMax(maxElement, maxValue) {\r\n this.maxElement = maxElement;\r\n this.maxValue = maxValue;\r\n }\r\n return ExtendedMax;\r\n}());\r\nexports.ExtendedMax = ExtendedMax;\r\nvar ExtendedMinMax = (function (_super) {\r\n tslib_1.__extends(ExtendedMinMax, _super);\r\n function ExtendedMinMax(minElement, minValue, maxElement, maxValue) {\r\n var _this = _super.call(this, minElement, maxElement) || this;\r\n _this.minValue = minValue;\r\n _this.maxValue = maxValue;\r\n return _this;\r\n }\r\n return ExtendedMinMax;\r\n}(MinMax));\r\nexports.ExtendedMinMax = ExtendedMinMax;\r\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Comparers = (function () {\r\n function Comparers() {\r\n }\r\n Comparers.number = function (a, b) {\r\n return a - b;\r\n };\r\n Comparers.string = function (a, b) {\r\n return ((a === b) ? 0 : ((a > b) ? 1 : -1));\r\n };\r\n Comparers.stringIgnoreCase = function (a, b) {\r\n a = a.toLowerCase();\r\n b = b.toLowerCase();\r\n return ((a === b) ? 0 : ((a > b) ? 1 : -1));\r\n };\r\n return Comparers;\r\n}());\r\nexports.Comparers = Comparers;\r\nvar Equals = (function () {\r\n function Equals() {\r\n }\r\n Equals.simpleType = function (a, b) {\r\n return a === b;\r\n };\r\n Equals.object = function (a, b) {\r\n return a && b && (a === b || a.equals(b));\r\n };\r\n return Equals;\r\n}());\r\nexports.Equals = Equals;\r\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskCollection = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar Task_1 = __webpack_require__(63);\r\nvar CollectionBase_1 = __webpack_require__(13);\r\nvar TaskCollection = (function (_super) {\r\n tslib_1.__extends(TaskCollection, _super);\r\n function TaskCollection() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskCollection.prototype.createItem = function () { return new Task_1.Task(); };\r\n return TaskCollection;\r\n}(CollectionBase_1.CollectionBase));\r\nexports.TaskCollection = TaskCollection;\r\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Task = exports.TaskType = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar common_1 = __webpack_require__(1);\r\nvar DataObject_1 = __webpack_require__(10);\r\nvar TaskType;\r\n(function (TaskType) {\r\n TaskType[TaskType[\"Regular\"] = 0] = \"Regular\";\r\n TaskType[TaskType[\"Summary\"] = 1] = \"Summary\";\r\n TaskType[TaskType[\"Milestone\"] = 2] = \"Milestone\";\r\n})(TaskType = exports.TaskType || (exports.TaskType = {}));\r\nvar Task = (function (_super) {\r\n tslib_1.__extends(Task, _super);\r\n function Task() {\r\n var _this = _super.call(this) || this;\r\n _this.start = null;\r\n _this.end = null;\r\n _this.duration = null;\r\n _this.description = \"\";\r\n _this.parentId = null;\r\n _this.title = \"\";\r\n _this.owner = null;\r\n _this.progress = 0;\r\n _this.taskType = null;\r\n _this.customFields = {};\r\n _this.expanded = true;\r\n _this.color = \"\";\r\n return _this;\r\n }\r\n Task.prototype.assignFromObject = function (sourceObj) {\r\n if (common_1.isDefined(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.owner = sourceObj.owner;\r\n this.parentId = common_1.isDefined(sourceObj.parentId) ? String(sourceObj.parentId) : null;\r\n this.description = sourceObj.description;\r\n this.title = sourceObj.title;\r\n this.start = typeof sourceObj.start === \"string\" ? new Date(sourceObj.start) : sourceObj.start || new Date(0);\r\n this.end = typeof sourceObj.end === \"string\" ? new Date(sourceObj.end) : sourceObj.end || new Date(0);\r\n this.duration = sourceObj.duration;\r\n this.progress = sourceObj.progress;\r\n this.taskType = sourceObj.taskType;\r\n if (common_1.isDefined(sourceObj.expanded))\r\n this.expanded = !!sourceObj.expanded;\r\n if (common_1.isDefined(sourceObj.color))\r\n this.color = sourceObj.color;\r\n this.assignCustomFields(sourceObj.customFields);\r\n }\r\n };\r\n Task.prototype.assignCustomFields = function (sourceObj) {\r\n if (!sourceObj)\r\n return;\r\n for (var property in sourceObj) {\r\n if (!Object.prototype.hasOwnProperty.call(sourceObj, property))\r\n continue;\r\n this.customFields[property] = sourceObj[property];\r\n }\r\n };\r\n Task.prototype.isMilestone = function () {\r\n return this.start.getTime() === this.end.getTime();\r\n };\r\n Task.prototype.getDuration = function () {\r\n return this.end.getTime() - this.start.getTime();\r\n };\r\n Task.prototype.isValid = function () {\r\n return !!this.start.getTime() && !!this.end.getTime();\r\n };\r\n return Task;\r\n}(DataObject_1.DataObject));\r\nexports.Task = Task;\r\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DependencyCollection = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CollectionBase_1 = __webpack_require__(13);\r\nvar Dependency_1 = __webpack_require__(11);\r\nvar DependencyCollection = (function (_super) {\r\n tslib_1.__extends(DependencyCollection, _super);\r\n function DependencyCollection() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DependencyCollection.prototype.createItem = function () { return new Dependency_1.Dependency(); };\r\n return DependencyCollection;\r\n}(CollectionBase_1.CollectionBase));\r\nexports.DependencyCollection = DependencyCollection;\r\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceAssignmentCollection = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CollectionBase_1 = __webpack_require__(13);\r\nvar ResourceAssignment_1 = __webpack_require__(36);\r\nvar ResourceAssignmentCollection = (function (_super) {\r\n tslib_1.__extends(ResourceAssignmentCollection, _super);\r\n function ResourceAssignmentCollection() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourceAssignmentCollection.prototype.createItem = function () { return new ResourceAssignment_1.ResourceAssignment(); };\r\n return ResourceAssignmentCollection;\r\n}(CollectionBase_1.CollectionBase));\r\nexports.ResourceAssignmentCollection = ResourceAssignmentCollection;\r\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ViewVisualModelItem = void 0;\r\nvar common_1 = __webpack_require__(1);\r\nvar ViewVisualModelItem = (function () {\r\n function ViewVisualModelItem(task, resources) {\r\n this.dependencies = new Array();\r\n this.parent = null;\r\n this.visible = true;\r\n this.selected = false;\r\n this.visibleIndex = -1;\r\n this.task = task;\r\n this.resources = resources;\r\n this.children = new Array();\r\n }\r\n Object.defineProperty(ViewVisualModelItem.prototype, \"resourceText\", {\r\n get: function () {\r\n var text = \"\";\r\n this.resources.items.forEach(function (r) { return text += r.text + \" \"; });\r\n return text;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ViewVisualModelItem.prototype.addChild = function (child) {\r\n if (common_1.isDefined(child) && this.children.indexOf(child) < 0)\r\n this.children.push(child);\r\n };\r\n ViewVisualModelItem.prototype.removeChild = function (child) {\r\n var index = this.children.indexOf(child);\r\n if (index > -1)\r\n this.children.splice(index, 1);\r\n };\r\n ViewVisualModelItem.prototype.getExpanded = function () {\r\n return !!this.task && this.task.expanded;\r\n };\r\n ViewVisualModelItem.prototype.getVisible = function () {\r\n if (!this.visible)\r\n return false;\r\n var parentItem = this.parent;\r\n while (parentItem) {\r\n if (!parentItem.visible)\r\n return false;\r\n parentItem = parentItem.parent;\r\n }\r\n return true;\r\n };\r\n ViewVisualModelItem.prototype.changeVisibility = function (visible) {\r\n this.visible = visible;\r\n };\r\n ViewVisualModelItem.prototype.changeSelection = function (selected) {\r\n this.selected = selected;\r\n };\r\n ViewVisualModelItem.prototype.setDependencies = function (dependencies) {\r\n if (dependencies)\r\n this.dependencies = dependencies.slice();\r\n };\r\n return ViewVisualModelItem;\r\n}());\r\nexports.ViewVisualModelItem = ViewVisualModelItem;\r\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ViewVisualModelDependencyInfo = void 0;\r\nvar ViewVisualModelDependencyInfo = (function () {\r\n function ViewVisualModelDependencyInfo(id, predecessor, type) {\r\n this.id = id;\r\n this.predecessor = predecessor;\r\n this.type = type;\r\n }\r\n return ViewVisualModelDependencyInfo;\r\n}());\r\nexports.ViewVisualModelDependencyInfo = ViewVisualModelDependencyInfo;\r\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WorkingTimeCalculator = void 0;\r\nvar GanttWorkingDayRuleCollection_1 = __webpack_require__(69);\r\nvar DayWorkingTimeInfo_1 = __webpack_require__(77);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar WorkingTimeCalculator = (function () {\r\n function WorkingTimeCalculator(range, rules) {\r\n this._workingRules = new GanttWorkingDayRuleCollection_1.WorkingDayRuleCollection();\r\n this._workDayList = new Array();\r\n this._calculationRange = range;\r\n this._workingRules.importFromObject(rules);\r\n }\r\n WorkingTimeCalculator.prototype.calculateWorkDayList = function () {\r\n if (!this._calculationRange)\r\n return;\r\n this.clearList();\r\n var rules = this._workingRules.items;\r\n for (var i = 0; i < rules.length; i++)\r\n this.processRule(rules[i]);\r\n this.sortList();\r\n };\r\n WorkingTimeCalculator.prototype.processRule = function (rule) {\r\n var points = rule.recurrence.calculatePoints(this._calculationRange.start, this._calculationRange.end);\r\n var _loop_1 = function (i) {\r\n var point = points[i];\r\n var dayNum = DateTimeUtils_1.DateTimeUtils.getDayNumber(point);\r\n var dayInfo = this_1._workDayList.filter(function (i) { return i.dayNumber == dayNum; })[0];\r\n if (dayInfo) {\r\n dayInfo.isWorkDay = dayInfo.isWorkDay && rule.isWorkDay;\r\n dayInfo.addWorkingIntervals(rule.workTimeRanges);\r\n }\r\n else\r\n this_1._workDayList.push(new DayWorkingTimeInfo_1.DayWorkingTimeInfo(dayNum, rule.isWorkDay, rule.workTimeRanges));\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < points.length; i++) {\r\n _loop_1(i);\r\n }\r\n };\r\n WorkingTimeCalculator.prototype.sortList = function () {\r\n this._workDayList.sort(function (d1, d2) { return d1.dayNumber - d2.dayNumber; });\r\n };\r\n WorkingTimeCalculator.prototype.clearList = function () {\r\n this._workDayList.splice(0, this._workDayList.length);\r\n };\r\n WorkingTimeCalculator.prototype.calculateNoWorkTimeIntervals = function () {\r\n var _this = this;\r\n var res = new Array();\r\n if (this._workDayList.length == 0)\r\n this.calculateWorkDayList();\r\n this._workDayList.forEach(function (d) { return res = res.concat(_this.getNoWorkTimeRangesFromDay(d)); });\r\n return this.concatJointedRanges(res);\r\n };\r\n WorkingTimeCalculator.prototype.concatJointedRanges = function (list) {\r\n var res = new Array();\r\n for (var i = 0; i < list.length; i++) {\r\n var interval = list[i];\r\n var needExpandPrevInterval = res.length > 0 && DateTimeUtils_1.DateTimeUtils.compareDates(res[res.length - 1].end, interval.start) < 2;\r\n if (needExpandPrevInterval)\r\n res[res.length - 1].end = interval.end;\r\n else\r\n res.push(interval);\r\n }\r\n return res;\r\n };\r\n WorkingTimeCalculator.prototype.getNoWorkTimeRangesFromDay = function (day) {\r\n return day.noWorkingIntervals.map(function (i) { return DateTimeUtils_1.DateTimeUtils.convertTimeRangeToDateRange(i, day.dayNumber); });\r\n };\r\n Object.defineProperty(WorkingTimeCalculator.prototype, \"noWorkingIntervals\", {\r\n get: function () {\r\n if (!this._noWorkingIntervals)\r\n this._noWorkingIntervals = this.calculateNoWorkTimeIntervals();\r\n return this._noWorkingIntervals.slice();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n WorkingTimeCalculator.prototype.updateRange = function (range) {\r\n this._calculationRange = range;\r\n this.invalidate();\r\n };\r\n WorkingTimeCalculator.prototype.invalidate = function () {\r\n this._noWorkingIntervals = null;\r\n this.clearList();\r\n };\r\n return WorkingTimeCalculator;\r\n}());\r\nexports.WorkingTimeCalculator = WorkingTimeCalculator;\r\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WorkingDayRuleCollection = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CollectionBase_1 = __webpack_require__(13);\r\nvar WorkingTimeRule_1 = __webpack_require__(70);\r\nvar WorkingDayRuleCollection = (function (_super) {\r\n tslib_1.__extends(WorkingDayRuleCollection, _super);\r\n function WorkingDayRuleCollection() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n WorkingDayRuleCollection.prototype.createItem = function () { return new WorkingTimeRule_1.WorkingTimeRule(); };\r\n return WorkingDayRuleCollection;\r\n}(CollectionBase_1.CollectionBase));\r\nexports.WorkingDayRuleCollection = WorkingDayRuleCollection;\r\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WorkingTimeRule = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DataObject_1 = __webpack_require__(10);\r\nvar common_1 = __webpack_require__(1);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar RecurrenceFactory_1 = __webpack_require__(40);\r\nvar Daily_1 = __webpack_require__(41);\r\nvar WorkingTimeRule = (function (_super) {\r\n tslib_1.__extends(WorkingTimeRule, _super);\r\n function WorkingTimeRule(recurrence, isWorkDay, workTimeRanges) {\r\n if (recurrence === void 0) { recurrence = null; }\r\n if (isWorkDay === void 0) { isWorkDay = true; }\r\n if (workTimeRanges === void 0) { workTimeRanges = null; }\r\n var _this = _super.call(this) || this;\r\n _this.isWorkDay = true;\r\n _this.workTimeRanges = new Array();\r\n _this.recurrence = recurrence;\r\n _this.isWorkDay = isWorkDay;\r\n if (workTimeRanges)\r\n _this.workTimeRanges.concat(workTimeRanges);\r\n return _this;\r\n }\r\n WorkingTimeRule.prototype.assignFromObject = function (sourceObj) {\r\n if (common_1.isDefined(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.recurrence = RecurrenceFactory_1.RecurrenceFactory.createRecurrenceByType(sourceObj.recurrenceType) || new Daily_1.Daily();\r\n if (common_1.isDefined(sourceObj.recurrence))\r\n this.recurrence.assignFromObject(sourceObj.recurrence);\r\n if (common_1.isDefined(sourceObj.isWorkDay))\r\n this.isWorkDay = !!sourceObj.isWorkDay;\r\n var ranges = DateTimeUtils_1.DateTimeUtils.convertToTimeRanges(sourceObj.workTimeRanges);\r\n if (ranges)\r\n this.workTimeRanges = ranges;\r\n }\r\n };\r\n return WorkingTimeRule;\r\n}(DataObject_1.DataObject));\r\nexports.WorkingTimeRule = WorkingTimeRule;\r\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DayOfWeek = void 0;\r\nvar DayOfWeek;\r\n(function (DayOfWeek) {\r\n DayOfWeek[DayOfWeek[\"Sunday\"] = 0] = \"Sunday\";\r\n DayOfWeek[DayOfWeek[\"Monday\"] = 1] = \"Monday\";\r\n DayOfWeek[DayOfWeek[\"Tuesday\"] = 2] = \"Tuesday\";\r\n DayOfWeek[DayOfWeek[\"Wednesday\"] = 3] = \"Wednesday\";\r\n DayOfWeek[DayOfWeek[\"Thursday\"] = 4] = \"Thursday\";\r\n DayOfWeek[DayOfWeek[\"Friday\"] = 5] = \"Friday\";\r\n DayOfWeek[DayOfWeek[\"Saturday\"] = 6] = \"Saturday\";\r\n})(DayOfWeek = exports.DayOfWeek || (exports.DayOfWeek = {}));\r\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Month = void 0;\r\nvar Month;\r\n(function (Month) {\r\n Month[Month[\"January\"] = 0] = \"January\";\r\n Month[Month[\"February\"] = 1] = \"February\";\r\n Month[Month[\"March\"] = 2] = \"March\";\r\n Month[Month[\"April\"] = 3] = \"April\";\r\n Month[Month[\"May\"] = 4] = \"May\";\r\n Month[Month[\"June\"] = 5] = \"June\";\r\n Month[Month[\"July\"] = 6] = \"July\";\r\n Month[Month[\"August\"] = 7] = \"August\";\r\n Month[Month[\"September\"] = 8] = \"September\";\r\n Month[Month[\"October\"] = 9] = \"October\";\r\n Month[Month[\"November\"] = 10] = \"November\";\r\n Month[Month[\"December\"] = 11] = \"December\";\r\n})(Month = exports.Month || (exports.Month = {}));\r\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Weekly = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar RecurrenceBase_1 = __webpack_require__(16);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar Weekly = (function (_super) {\r\n tslib_1.__extends(Weekly, _super);\r\n function Weekly() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Weekly.prototype.checkDate = function (date) {\r\n return DateTimeUtils_1.DateTimeUtils.checkDayOfWeek(this.dayOfWeekInternal, date);\r\n };\r\n Weekly.prototype.checkInterval = function (date) {\r\n return DateTimeUtils_1.DateTimeUtils.getWeeksBetween(this.start, date) % this.interval == 0;\r\n };\r\n Weekly.prototype.calculatePointByInterval = function (date) {\r\n var weeksFromStart = DateTimeUtils_1.DateTimeUtils.getWeeksBetween(this.start, date);\r\n var intervalCount = Math.floor(weeksFromStart / this.interval);\r\n var remainder = weeksFromStart % this.interval;\r\n var isPointOnNewWeek = remainder > 0 || date.getDay() >= this.dayOfWeekInternal;\r\n if (isPointOnNewWeek)\r\n intervalCount++;\r\n var weeksToAdd = intervalCount * this.interval;\r\n return this.calcNextPointWithWeekCount(this.start, weeksToAdd);\r\n };\r\n Weekly.prototype.calculateNearestPoint = function (date) {\r\n var diff = this.dayOfWeekInternal - date.getDay();\r\n if (diff > 0)\r\n return DateTimeUtils_1.DateTimeUtils.addDays(new Date(date), diff);\r\n return this.calcNextPointWithWeekCount(date, 1);\r\n };\r\n Weekly.prototype.calcNextPointWithWeekCount = function (date, weekCount) {\r\n if (weekCount === void 0) { weekCount = 1; }\r\n var daysToAdd = weekCount * 7 + this.dayOfWeekInternal - date.getDay();\r\n return DateTimeUtils_1.DateTimeUtils.addDays(new Date(date), daysToAdd);\r\n };\r\n Object.defineProperty(Weekly.prototype, \"dayOfWeek\", {\r\n get: function () { return this.dayOfWeekInternal; },\r\n set: function (value) { this.dayOfWeekInternal = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Weekly;\r\n}(RecurrenceBase_1.RecurrenceBase));\r\nexports.Weekly = Weekly;\r\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Monthly = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar RecurrenceBase_1 = __webpack_require__(16);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar MonthInfo_1 = __webpack_require__(75);\r\nvar Monthly = (function (_super) {\r\n tslib_1.__extends(Monthly, _super);\r\n function Monthly() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Monthly.prototype.checkDate = function (date) {\r\n if (this._calculateByDayOfWeek)\r\n return DateTimeUtils_1.DateTimeUtils.checkDayOfWeekOccurrenceInMonth(date, this.dayOfWeekInternal, this.dayOfWeekOccurrenceInternal);\r\n return DateTimeUtils_1.DateTimeUtils.checkDayOfMonth(this.dayInternal, date);\r\n };\r\n Monthly.prototype.checkInterval = function (date) {\r\n return DateTimeUtils_1.DateTimeUtils.getMonthsDifference(this.start, date) % this.interval == 0;\r\n };\r\n Monthly.prototype.calculatePointByInterval = function (date) {\r\n var start = this.start;\r\n var monthFromStart = DateTimeUtils_1.DateTimeUtils.getMonthsDifference(start, date);\r\n var monthToAdd = Math.floor(monthFromStart / this.interval) * this.interval;\r\n var info = new MonthInfo_1.MonthInfo(start.getMonth(), start.getFullYear());\r\n info.addMonths(monthToAdd);\r\n var point = this.getSpecDayInMonth(info.year, info.month);\r\n if (DateTimeUtils_1.DateTimeUtils.compareDates(point, date) >= 0) {\r\n info.addMonths(this.interval);\r\n point = this.getSpecDayInMonth(info.year, info.month);\r\n }\r\n return point;\r\n };\r\n Monthly.prototype.calculateNearestPoint = function (date) {\r\n var month = date.getMonth();\r\n var year = date.getFullYear();\r\n var point = this.getSpecDayInMonth(year, month);\r\n if (DateTimeUtils_1.DateTimeUtils.compareDates(point, date) >= 0) {\r\n var info = new MonthInfo_1.MonthInfo(month, year);\r\n info.addMonths(1);\r\n point = this.getSpecDayInMonth(info.year, info.month);\r\n }\r\n return point;\r\n };\r\n Object.defineProperty(Monthly.prototype, \"day\", {\r\n get: function () { return this.dayInternal; },\r\n set: function (value) { this.dayInternal = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Monthly.prototype, \"dayOfWeek\", {\r\n get: function () { return this.dayOfWeekInternal; },\r\n set: function (value) { this.dayOfWeekInternal = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Monthly.prototype, \"dayOfWeekOccurrence\", {\r\n get: function () { return this.dayOfWeekOccurrenceInternal; },\r\n set: function (value) { this.dayOfWeekOccurrenceInternal = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Monthly.prototype, \"calculateByDayOfWeek\", {\r\n get: function () { return this._calculateByDayOfWeek; },\r\n set: function (value) { this._calculateByDayOfWeek = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Monthly;\r\n}(RecurrenceBase_1.RecurrenceBase));\r\nexports.Monthly = Monthly;\r\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MonthInfo = void 0;\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar MonthInfo = (function () {\r\n function MonthInfo(month, year) {\r\n this.month = month;\r\n this.year = year;\r\n }\r\n MonthInfo.prototype.addMonths = function (months) {\r\n var nextMonth = DateTimeUtils_1.DateTimeUtils.getNextMonth(this.month, months);\r\n var yearInc = Math.floor(months / 12);\r\n if (nextMonth < this.month)\r\n ++yearInc;\r\n this.month = nextMonth;\r\n this.year += yearInc;\r\n };\r\n return MonthInfo;\r\n}());\r\nexports.MonthInfo = MonthInfo;\r\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Yearly = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar RecurrenceBase_1 = __webpack_require__(16);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar Yearly = (function (_super) {\r\n tslib_1.__extends(Yearly, _super);\r\n function Yearly() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Yearly.prototype.checkDate = function (date) {\r\n if (!DateTimeUtils_1.DateTimeUtils.checkMonth(this.month, date))\r\n return false;\r\n if (this._calculateByDayOfWeek)\r\n return DateTimeUtils_1.DateTimeUtils.checkDayOfWeekOccurrenceInMonth(date, this.dayOfWeekInternal, this.dayOfWeekOccurrenceInternal);\r\n return DateTimeUtils_1.DateTimeUtils.checkDayOfMonth(this.dayInternal, date);\r\n };\r\n Yearly.prototype.checkInterval = function (date) {\r\n return DateTimeUtils_1.DateTimeUtils.getYearsDifference(this.start, date) % this.interval == 0;\r\n };\r\n Yearly.prototype.calculatePointByInterval = function (date) {\r\n var yearFromStart = DateTimeUtils_1.DateTimeUtils.getYearsDifference(this.start, date);\r\n var yearInc = Math.floor(yearFromStart / this.interval) * this.interval;\r\n var newYear = this.start.getFullYear() + yearInc;\r\n var point = this.getSpecDayInMonth(newYear, this.monthInternal);\r\n if (DateTimeUtils_1.DateTimeUtils.compareDates(point, date) >= 0) {\r\n newYear += this.interval;\r\n point = this.getSpecDayInMonth(newYear, this.monthInternal);\r\n }\r\n return point;\r\n };\r\n Yearly.prototype.calculateNearestPoint = function (date) {\r\n var year = date.getFullYear();\r\n var point = this.getSpecDayInMonth(year, this.monthInternal);\r\n if (DateTimeUtils_1.DateTimeUtils.compareDates(point, date) >= 0)\r\n point = this.getSpecDayInMonth(++year, this.monthInternal);\r\n return point;\r\n };\r\n Object.defineProperty(Yearly.prototype, \"month\", {\r\n get: function () { return this.monthInternal; },\r\n set: function (value) { this.monthInternal = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Yearly.prototype, \"day\", {\r\n get: function () { return this.dayInternal; },\r\n set: function (value) { this.dayInternal = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Yearly.prototype, \"dayOfWeek\", {\r\n get: function () { return this.dayOfWeekInternal; },\r\n set: function (value) { this.dayOfWeekInternal = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Yearly.prototype, \"dayOfWeekOccurrence\", {\r\n get: function () { return this.dayOfWeekOccurrenceInternal; },\r\n set: function (value) { this.dayOfWeekOccurrenceInternal = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Yearly.prototype, \"calculateByDayOfWeek\", {\r\n get: function () { return this._calculateByDayOfWeek; },\r\n set: function (value) { this._calculateByDayOfWeek = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Yearly;\r\n}(RecurrenceBase_1.RecurrenceBase));\r\nexports.Yearly = Yearly;\r\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DayWorkingTimeInfo = void 0;\r\nvar TimeRange_1 = __webpack_require__(38);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar Time_1 = __webpack_require__(37);\r\nvar DayWorkingTimeInfo = (function () {\r\n function DayWorkingTimeInfo(dayNumber, isWorkDay, intervals) {\r\n if (dayNumber === void 0) { dayNumber = 0; }\r\n if (isWorkDay === void 0) { isWorkDay = true; }\r\n if (intervals === void 0) { intervals = null; }\r\n this._workingIntervals = new Array();\r\n this.dayNumber = dayNumber;\r\n this.isWorkDay = isWorkDay;\r\n this.addWorkingIntervals(intervals);\r\n }\r\n DayWorkingTimeInfo.prototype.addWorkingIntervals = function (intervals) {\r\n if (!intervals)\r\n return;\r\n this._workingIntervals = this._workingIntervals.concat(intervals.filter(function (r) { return !!r; }));\r\n this.rearrangeWorkingIntervals();\r\n };\r\n DayWorkingTimeInfo.prototype.rearrangeWorkingIntervals = function () {\r\n for (var i = 0; i < this._workingIntervals.length; i++)\r\n this.concatWithIntersectedRanges(this._workingIntervals[i]);\r\n this.sortIntervals();\r\n };\r\n DayWorkingTimeInfo.prototype.concatWithIntersectedRanges = function (range) {\r\n var _this = this;\r\n var intersectedRanges = this.getIntersectedIntervals(range);\r\n intersectedRanges.forEach(function (r) {\r\n range.concatWith(r);\r\n _this.removeInterval(r);\r\n });\r\n };\r\n DayWorkingTimeInfo.prototype.getIntersectedIntervals = function (range) {\r\n return this._workingIntervals.filter(function (r) { return r.hasIntersect(range) && r !== range; });\r\n };\r\n DayWorkingTimeInfo.prototype.sortIntervals = function () {\r\n this._workingIntervals.sort(function (r1, r2) { return DateTimeUtils_1.DateTimeUtils.caclTimeDifference(r2.start, r1.start); });\r\n };\r\n DayWorkingTimeInfo.prototype.removeInterval = function (element) {\r\n var index = this._workingIntervals.indexOf(element);\r\n if (index > -1 && index < this._workingIntervals.length)\r\n this._workingIntervals.splice(index, 1);\r\n };\r\n DayWorkingTimeInfo.prototype.clearIntervals = function () {\r\n this._workingIntervals.splice(0, this._workingIntervals.length);\r\n };\r\n Object.defineProperty(DayWorkingTimeInfo.prototype, \"workingIntervals\", {\r\n get: function () { return this._workingIntervals.slice(); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DayWorkingTimeInfo.prototype, \"noWorkingIntervals\", {\r\n get: function () {\r\n var res = new Array();\r\n if (this.isWorkDay && this._workingIntervals.length == 0)\r\n return res;\r\n var starts = this._workingIntervals.map(function (r) { return r.end; });\r\n starts.splice(0, 0, new Time_1.Time());\r\n var ends = this._workingIntervals.map(function (r) { return r.start; });\r\n ends.push(DateTimeUtils_1.DateTimeUtils.getLastTimeOfDay());\r\n for (var i = 0; i < starts.length; i++) {\r\n var start = starts[i];\r\n var end = ends[i];\r\n if (!DateTimeUtils_1.DateTimeUtils.areTimesEqual(start, end))\r\n res.push(new TimeRange_1.TimeRange(start, end));\r\n }\r\n return res;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DayWorkingTimeInfo.prototype, \"isWorkDay\", {\r\n get: function () { return this._isWorkDay; },\r\n set: function (value) {\r\n this._isWorkDay = value;\r\n if (!value)\r\n this.clearIntervals();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return DayWorkingTimeInfo;\r\n}());\r\nexports.DayWorkingTimeInfo = DayWorkingTimeInfo;\r\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(35);\r\nvar offsets_1 = __webpack_require__(79);\r\nvar Margins = (function (_super) {\r\n tslib_1.__extends(Margins, _super);\r\n function Margins() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Margins.empty = function () {\r\n return new Margins(0, 0, 0, 0);\r\n };\r\n Margins.prototype.clone = function () {\r\n return new Margins(this.left, this.right, this.top, this.bottom);\r\n };\r\n return Margins;\r\n}(offsets_1.Offsets));\r\nexports.Margins = Margins;\r\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Offsets = (function () {\r\n function Offsets(left, right, top, bottom) {\r\n this.left = left;\r\n this.right = right;\r\n this.top = top;\r\n this.bottom = bottom;\r\n }\r\n Offsets.empty = function () {\r\n return new Offsets(0, 0, 0, 0);\r\n };\r\n Object.defineProperty(Offsets.prototype, \"horizontal\", {\r\n get: function () {\r\n return this.left + this.right;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Offsets.prototype, \"vertical\", {\r\n get: function () {\r\n return this.top + this.bottom;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Offsets.fromNumber = function (offset) {\r\n return new Offsets(offset, offset, offset, offset);\r\n };\r\n Offsets.fromOffsets = function (offsets) {\r\n return new Offsets(offsets.left, offsets.right, offsets.top, offsets.bottom);\r\n };\r\n Offsets.fromSide = function (horizontal, vertical) {\r\n return new Offsets(horizontal, horizontal, vertical, vertical);\r\n };\r\n Offsets.prototype.normalize = function () {\r\n this.left = Math.max(0, this.left);\r\n this.right = Math.max(0, this.right);\r\n this.top = Math.max(0, this.top);\r\n this.bottom = Math.max(0, this.bottom);\r\n return this;\r\n };\r\n Offsets.prototype.toString = function () {\r\n return JSON.stringify(this);\r\n };\r\n Offsets.prototype.isEmpty = function () {\r\n return this.left === 0 && this.right === 0 && this.top === 0 && this.bottom === 0;\r\n };\r\n Offsets.prototype.offset = function (offset) {\r\n this.left += offset.left;\r\n this.right += offset.right;\r\n this.top += offset.top;\r\n this.bottom += offset.bottom;\r\n return this;\r\n };\r\n Offsets.prototype.multiply = function (multLeft, multRight, multTop, multBottom) {\r\n switch (arguments.length) {\r\n case 1: {\r\n this.left *= multLeft;\r\n this.right *= multLeft;\r\n this.top *= multLeft;\r\n this.bottom *= multLeft;\r\n return this;\r\n }\r\n case 2: {\r\n this.left *= multLeft;\r\n this.right *= multLeft;\r\n this.top *= multRight;\r\n this.bottom *= multRight;\r\n return this;\r\n }\r\n case 4: {\r\n this.left *= multLeft;\r\n this.right *= multRight;\r\n this.top *= multTop;\r\n this.bottom *= multBottom;\r\n return this;\r\n }\r\n }\r\n return this;\r\n };\r\n Offsets.prototype.clone = function () {\r\n return new Offsets(this.left, this.right, this.top, this.bottom);\r\n };\r\n Offsets.prototype.copyFrom = function (obj) {\r\n this.left = obj.left;\r\n this.right = obj.right;\r\n this.top = obj.top;\r\n this.bottom = obj.bottom;\r\n };\r\n Offsets.prototype.equals = function (obj) {\r\n return this.top === obj.top &&\r\n this.bottom === obj.bottom &&\r\n this.right === obj.right &&\r\n this.left === obj.left;\r\n };\r\n Offsets.prototype.applyConverter = function (converter) {\r\n this.left = converter(this.left);\r\n this.right = converter(this.right);\r\n this.top = converter(this.top);\r\n this.bottom = converter(this.bottom);\r\n return this;\r\n };\r\n return Offsets;\r\n}());\r\nexports.Offsets = Offsets;\r\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EtalonSizeValues = void 0;\r\nvar EtalonSizeValues = (function () {\r\n function EtalonSizeValues() {\r\n this.scaleItemWidths = {};\r\n }\r\n return EtalonSizeValues;\r\n}());\r\nexports.EtalonSizeValues = EtalonSizeValues;\r\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelManipulator = void 0;\r\nvar DependencyManipulator_1 = __webpack_require__(82);\r\nvar ResourcesManipulator_1 = __webpack_require__(83);\r\nvar TaskManipulator_1 = __webpack_require__(85);\r\nvar ModelManipulator = (function () {\r\n function ModelManipulator(viewModel, dispatcher) {\r\n this.task = new TaskManipulator_1.TaskManipulator(viewModel, dispatcher);\r\n this.dependency = new DependencyManipulator_1.TaskDependencyManipulator(viewModel, dispatcher);\r\n this.resource = new ResourcesManipulator_1.ResourcesManipulator(viewModel, dispatcher);\r\n this.dispatcher = dispatcher;\r\n }\r\n return ModelManipulator;\r\n}());\r\nexports.ModelManipulator = ModelManipulator;\r\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskDependencyManipulator = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskPropertiesManipulator_1 = __webpack_require__(18);\r\nvar TaskDependencyManipulator = (function (_super) {\r\n tslib_1.__extends(TaskDependencyManipulator, _super);\r\n function TaskDependencyManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskDependencyManipulator.prototype.insertDependency = function (predecessorId, successorId, type, id) {\r\n var dependency = this.viewModel.dependencies.createItem();\r\n dependency.predecessorId = predecessorId;\r\n dependency.successorId = successorId;\r\n dependency.type = type;\r\n if (id)\r\n dependency.internalId = id;\r\n dependency.id = dependency.internalId;\r\n this.viewModel.dependencies.add(dependency);\r\n this.dispatcher.notifyDependencyInserted(this.getObjectForDataSource(dependency), function (id) { return dependency.id = id; }, this.getErrorCallback());\r\n this.viewModel.updateVisibleItemDependencies();\r\n this.viewModel.owner.recreateConnectorLineElement(dependency.internalId, true);\r\n return dependency;\r\n };\r\n TaskDependencyManipulator.prototype.removeDependency = function (dependencyId) {\r\n var dependency = this.viewModel.dependencies.getItemById(dependencyId);\r\n this.viewModel.dependencies.remove(dependency);\r\n this.dispatcher.notifyDependencyRemoved(dependency.id, this.getErrorCallback(), this.viewModel.getDependencyObjectForDataSource(dependency));\r\n this.viewModel.updateVisibleItemDependencies();\r\n this.viewModel.owner.recreateConnectorLineElement(dependency.internalId);\r\n return dependency;\r\n };\r\n TaskDependencyManipulator.prototype.getObjectForDataSource = function (dependency) {\r\n var predecessor = this.viewModel.tasks.getItemById(dependency.predecessorId);\r\n var successor = this.viewModel.tasks.getItemById(dependency.successorId);\r\n var dependencyObject = {\r\n id: dependency.id,\r\n predecessorId: predecessor.id,\r\n successorId: successor.id,\r\n type: dependency.type\r\n };\r\n return dependencyObject;\r\n };\r\n return TaskDependencyManipulator;\r\n}(TaskPropertiesManipulator_1.BaseManipulator));\r\nexports.TaskDependencyManipulator = TaskDependencyManipulator;\r\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourcesManipulator = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskPropertiesManipulator_1 = __webpack_require__(18);\r\nvar ResourcePropertiesManipulator_1 = __webpack_require__(84);\r\nvar ResourcesManipulator = (function (_super) {\r\n tslib_1.__extends(ResourcesManipulator, _super);\r\n function ResourcesManipulator(viewModel, dispatcher) {\r\n var _this = _super.call(this, viewModel, dispatcher) || this;\r\n _this.properties = new ResourcePropertiesManipulator_1.ResourcePropertiesManipulator(viewModel, dispatcher);\r\n return _this;\r\n }\r\n ResourcesManipulator.prototype.create = function (text, color, id, callback) {\r\n var resource = this.viewModel.resources.createItem();\r\n resource.text = text;\r\n if (color)\r\n resource.color = color;\r\n if (id)\r\n resource.internalId = id;\r\n resource.id = resource.internalId;\r\n this.viewModel.resources.add(resource);\r\n this.dispatcher.notifyResourceCreated(this.getResourceObjectForDataSource(resource), function (id) {\r\n resource.id = id;\r\n if (callback)\r\n callback(id);\r\n }, this.getErrorCallback());\r\n return resource;\r\n };\r\n ResourcesManipulator.prototype.remove = function (resourceId) {\r\n var resource = this.viewModel.resources.getItemById(resourceId);\r\n if (!resource)\r\n throw new Error(\"Invalid resource id\");\r\n var assignments = this.viewModel.assignments.items.filter(function (a) { return a.resourceId == resourceId; });\r\n if (assignments.length)\r\n throw new Error(\"Can't delete assigned resource\");\r\n this.viewModel.resources.remove(resource);\r\n this.dispatcher.notifyResourceRemoved(resource.id, this.getErrorCallback(), this.viewModel.getResourceObjectForDataSource(resource));\r\n return resource;\r\n };\r\n ResourcesManipulator.prototype.assign = function (resourceID, taskId, id) {\r\n var assignment = this.viewModel.assignments.createItem();\r\n assignment.resourceId = resourceID;\r\n assignment.taskId = taskId;\r\n if (id)\r\n assignment.internalId = id;\r\n assignment.id = assignment.internalId;\r\n this.viewModel.assignments.add(assignment);\r\n this.dispatcher.notifyResourceAssigned(this.getResourceAssignmentObjectForDataSource(assignment), function (id) { return assignment.id = id; }, this.getErrorCallback());\r\n this.viewModel.updateModel();\r\n this.viewModel.owner.resetAndUpdate();\r\n return assignment;\r\n };\r\n ResourcesManipulator.prototype.deassig = function (assignmentId) {\r\n var assignment = this.viewModel.assignments.getItemById(assignmentId);\r\n this.viewModel.assignments.remove(assignment);\r\n this.dispatcher.notifyResourceUnassigned(assignment.id, this.getErrorCallback(), this.viewModel.getResourceAssignmentObjectForDataSource(assignment));\r\n this.viewModel.updateModel();\r\n this.viewModel.owner.resetAndUpdate();\r\n return assignment;\r\n };\r\n ResourcesManipulator.prototype.getResourceObjectForDataSource = function (resource) {\r\n return {\r\n id: resource.id,\r\n text: resource.text\r\n };\r\n };\r\n ResourcesManipulator.prototype.getResourceAssignmentObjectForDataSource = function (resourceAssignment) {\r\n return {\r\n id: resourceAssignment.id,\r\n taskId: this.viewModel.tasks.getItemById(resourceAssignment.taskId).id,\r\n resourceId: this.viewModel.resources.getItemById(resourceAssignment.resourceId).id\r\n };\r\n };\r\n return ResourcesManipulator;\r\n}(TaskPropertiesManipulator_1.BaseManipulator));\r\nexports.ResourcesManipulator = ResourcesManipulator;\r\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourcePropertyManipulator = exports.ResourcePropertiesManipulator = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskPropertiesManipulator_1 = __webpack_require__(18);\r\nvar HistoryItemState_1 = __webpack_require__(46);\r\nvar ResourcePropertiesManipulator = (function (_super) {\r\n tslib_1.__extends(ResourcePropertiesManipulator, _super);\r\n function ResourcePropertiesManipulator(viewModel, dispatcher) {\r\n var _this = _super.call(this, viewModel, dispatcher) || this;\r\n _this.color = new ResourceColorManipulator(viewModel, dispatcher);\r\n return _this;\r\n }\r\n return ResourcePropertiesManipulator;\r\n}(TaskPropertiesManipulator_1.BaseManipulator));\r\nexports.ResourcePropertiesManipulator = ResourcePropertiesManipulator;\r\nvar ResourcePropertyManipulator = (function (_super) {\r\n tslib_1.__extends(ResourcePropertyManipulator, _super);\r\n function ResourcePropertyManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourcePropertyManipulator.prototype.setValue = function (id, newValue) {\r\n var _this = this;\r\n var resource = this.viewModel.resources.getItemById(id);\r\n var oldState = new HistoryItemState_1.HistoryItemState(id, this.getPropertyValue(resource));\r\n this.setPropertyValue(resource, newValue);\r\n var assignments = this.viewModel.assignments.items.filter(function (a) { return a.resourceId == resource.internalId; });\r\n assignments.forEach(function (a) {\r\n var viewItem = _this.viewModel.findItem(a.taskId);\r\n var index = viewItem.visibleIndex;\r\n _this.viewModel.owner.recreateTaskElement(index);\r\n });\r\n return oldState;\r\n };\r\n ResourcePropertyManipulator.prototype.restoreValue = function (state) {\r\n var _this = this;\r\n if (!state)\r\n return;\r\n var stateValue = state.value;\r\n var resource = this.viewModel.resources.getItemById(state.id);\r\n this.setPropertyValue(resource, stateValue);\r\n var assignments = this.viewModel.assignments.items.filter(function (a) { return a.resourceId == resource.internalId; });\r\n assignments.forEach(function (a) {\r\n var viewItem = _this.viewModel.findItem(a.taskId);\r\n var index = viewItem.visibleIndex;\r\n _this.viewModel.owner.recreateTaskElement(index);\r\n });\r\n };\r\n return ResourcePropertyManipulator;\r\n}(TaskPropertiesManipulator_1.BaseManipulator));\r\nexports.ResourcePropertyManipulator = ResourcePropertyManipulator;\r\nvar ResourceColorManipulator = (function (_super) {\r\n tslib_1.__extends(ResourceColorManipulator, _super);\r\n function ResourceColorManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourceColorManipulator.prototype.getPropertyValue = function (resource) {\r\n return resource.color;\r\n };\r\n ResourceColorManipulator.prototype.setPropertyValue = function (resource, value) {\r\n resource.color = value;\r\n this.dispatcher.notifyResourceColorChanged(resource.id, value, this.getErrorCallback());\r\n };\r\n return ResourceColorManipulator;\r\n}(ResourcePropertyManipulator));\r\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskManipulator = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskPropertiesManipulator_1 = __webpack_require__(18);\r\nvar TaskManipulator = (function (_super) {\r\n tslib_1.__extends(TaskManipulator, _super);\r\n function TaskManipulator(viewModel, dispatcher) {\r\n var _this = _super.call(this, viewModel, dispatcher) || this;\r\n _this.properties = new TaskPropertiesManipulator_1.TaskPropertiesManipulator(viewModel, dispatcher);\r\n return _this;\r\n }\r\n TaskManipulator.prototype.create = function (data, id, callback) {\r\n var _this = this;\r\n var task = this.viewModel.tasks.createItem();\r\n task.start = data.start;\r\n task.end = data.end;\r\n task.title = data.title;\r\n task.progress = data.progress;\r\n if (data.color)\r\n task.color = data.color;\r\n var parentItem = this.viewModel.tasks.getItemById(data.parentId);\r\n if (parentItem)\r\n parentItem.expanded = true;\r\n task.parentId = data.parentId;\r\n if (id)\r\n task.internalId = id;\r\n task.id = task.internalId;\r\n this.viewModel.tasks.add(task);\r\n this.viewModel.updateModel();\r\n this.dispatcher.notifyTaskCreated(this.getObjectForDataSource(task), function (id) {\r\n task.id = id;\r\n if (callback)\r\n callback();\r\n if (_this.viewModel.requireFirstLoadParentAutoCalc) {\r\n var data_1 = _this.viewModel.getCurrentTaskData().map(function (t) {\r\n if (t.parentId === \"\")\r\n t.parentId = null;\r\n return t;\r\n });\r\n _this.dispatcher.notifyParentDataRecalculated(data_1);\r\n }\r\n }, this.getErrorCallback());\r\n this.viewModel.owner.resetAndUpdate();\r\n return task;\r\n };\r\n TaskManipulator.prototype.remove = function (taskId) {\r\n var task = this.viewModel.tasks.getItemById(taskId);\r\n if (!task)\r\n throw new Error(\"Invalid task id\");\r\n var dependencies = this.viewModel.dependencies.items.filter(function (d) { return d.predecessorId == taskId || d.successorId == taskId; });\r\n if (dependencies.length)\r\n throw new Error(\"Can't delete task with dependency\");\r\n var assignments = this.viewModel.assignments.items.filter(function (a) { return a.taskId == taskId; });\r\n if (assignments.length)\r\n throw new Error(\"Can't delete task with assigned resource\");\r\n this.viewModel.tasks.remove(task);\r\n this.dispatcher.notifyTaskRemoved(task.id, this.getErrorCallback(), this.viewModel.getTaskObjectForDataSource(task));\r\n this.viewModel.updateModel();\r\n this.viewModel.owner.resetAndUpdate();\r\n return task;\r\n };\r\n TaskManipulator.prototype.getObjectForDataSource = function (task) {\r\n return this.viewModel.getTaskObjectForDataSource(task);\r\n };\r\n return TaskManipulator;\r\n}(TaskPropertiesManipulator_1.BaseManipulator));\r\nexports.TaskManipulator = TaskManipulator;\r\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.History = void 0;\r\nvar HistoryItem_1 = __webpack_require__(12);\r\nvar HistoryItemInfo_1 = __webpack_require__(87);\r\nvar History = (function () {\r\n function History() {\r\n this.historyItems = [];\r\n this.currentIndex = -1;\r\n this.currentProcessingItemInfo = null;\r\n this.transaction = null;\r\n this.transactionLevel = -1;\r\n }\r\n History.prototype.undo = function () {\r\n if (this.canUndo()) {\r\n this.activateItem(this.historyItems[this.currentIndex], true);\r\n this.currentIndex--;\r\n }\r\n };\r\n History.prototype.redo = function () {\r\n if (this.canRedo()) {\r\n this.currentIndex++;\r\n this.activateItem(this.historyItems[this.currentIndex]);\r\n }\r\n };\r\n History.prototype.beginTransaction = function () {\r\n this.transactionLevel++;\r\n if (this.transactionLevel == 0)\r\n this.transaction = new HistoryItem_1.CompositionHistoryItem();\r\n };\r\n History.prototype.endTransaction = function () {\r\n if (--this.transactionLevel >= 0)\r\n return;\r\n var transactionLength = this.transaction.historyItems.length;\r\n if (transactionLength > 1)\r\n this.addInternal(this.transaction);\r\n else if (transactionLength == 1)\r\n this.addInternal(this.transaction.historyItems.pop());\r\n this.transaction = null;\r\n };\r\n History.prototype.addAndRedo = function (historyItem) {\r\n this.add(historyItem);\r\n this.activateItem(historyItem);\r\n };\r\n History.prototype.add = function (historyItem) {\r\n if (this.transactionLevel >= 0)\r\n this.transaction.add(historyItem);\r\n else\r\n this.addInternal(historyItem);\r\n };\r\n History.prototype.canUndo = function () {\r\n return this.currentIndex >= 0;\r\n };\r\n History.prototype.canRedo = function () {\r\n return this.currentIndex < this.historyItems.length - 1;\r\n };\r\n History.prototype.addInternal = function (historyItem) {\r\n if (this.currentIndex < this.historyItems.length - 1)\r\n this.historyItems.splice(this.currentIndex + 1);\r\n this.historyItems.push(historyItem);\r\n this.currentIndex++;\r\n this.deleteOldItems();\r\n };\r\n History.prototype.deleteOldItems = function () {\r\n var exceedItemsCount = this.historyItems.length - History.MAX_HISTORY_ITEM_COUNT;\r\n if (exceedItemsCount > 0 && this.currentIndex > exceedItemsCount) {\r\n this.historyItems.splice(0, exceedItemsCount);\r\n this.currentIndex -= exceedItemsCount;\r\n }\r\n };\r\n History.prototype.clear = function () {\r\n this.currentIndex = -1;\r\n this.historyItems = [];\r\n };\r\n History.prototype.activateItem = function (historyItem, isUndo) {\r\n if (isUndo === void 0) { isUndo = false; }\r\n this.currentProcessingItemInfo = new HistoryItemInfo_1.HistoryItemInfo(historyItem, isUndo);\r\n if (isUndo)\r\n historyItem.undo();\r\n else\r\n historyItem.redo();\r\n this.currentProcessingItemInfo = null;\r\n };\r\n History.prototype.getCurrentProcessingItemInfo = function () {\r\n return this.currentProcessingItemInfo;\r\n };\r\n History.prototype.rollBackAndRemove = function (info) {\r\n var item = info.item;\r\n if (!this.checkAndRemoveItem(item))\r\n return;\r\n if (info.isUndo)\r\n item.redo();\r\n else if (item instanceof HistoryItem_1.CompositionHistoryItem)\r\n item.undoItemsQuery();\r\n else\r\n item.undo();\r\n };\r\n History.prototype.checkAndRemoveItem = function (item) {\r\n var index = this.historyItems.indexOf(item);\r\n if (index > -1) {\r\n this.historyItems.splice(index, 1);\r\n this.currentIndex--;\r\n }\r\n else if (this.transaction) {\r\n index = this.transaction.historyItems.indexOf(item);\r\n if (index > -1)\r\n this.transaction.historyItems.splice(index, 1);\r\n }\r\n return index > -1;\r\n };\r\n History.MAX_HISTORY_ITEM_COUNT = 100;\r\n return History;\r\n}());\r\nexports.History = History;\r\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HistoryItemInfo = void 0;\r\nvar HistoryItemInfo = (function () {\r\n function HistoryItemInfo(item, isUndo) {\r\n if (isUndo === void 0) { isUndo = false; }\r\n this.item = item;\r\n this.isUndo = isUndo;\r\n }\r\n return HistoryItemInfo;\r\n}());\r\nexports.HistoryItemInfo = HistoryItemInfo;\r\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EventManager = void 0;\r\nvar MouseHandler_1 = __webpack_require__(89);\r\nvar key_1 = __webpack_require__(94);\r\nvar browser_1 = __webpack_require__(5);\r\nvar TouchHandler_1 = __webpack_require__(96);\r\nvar EventManager = (function () {\r\n function EventManager(control) {\r\n this.control = control;\r\n this.mouseHandler = new MouseHandler_1.MouseHandler(control);\r\n this.touchHandler = new TouchHandler_1.TouchHandler(control);\r\n }\r\n EventManager.prototype.onMouseDown = function (evt) {\r\n this.mouseHandler.onMouseDown(evt);\r\n };\r\n EventManager.prototype.onMouseMove = function (evt) {\r\n this.mouseHandler.onMouseMove(evt);\r\n };\r\n EventManager.prototype.onMouseUp = function (evt) {\r\n this.mouseHandler.onMouseUp(evt);\r\n };\r\n EventManager.prototype.onMouseDblClick = function (evt) {\r\n this.mouseHandler.onMouseDoubleClick(evt);\r\n };\r\n EventManager.prototype.onMouseWheel = function (evt) {\r\n this.mouseHandler.onMouseWheel(evt);\r\n };\r\n EventManager.prototype.onTouchStart = function (evt) {\r\n this.touchHandler.onTouchStart(evt);\r\n };\r\n EventManager.prototype.onTouchEnd = function (evt) {\r\n this.touchHandler.onTouchEnd(evt);\r\n };\r\n EventManager.prototype.onTouchMove = function (evt) {\r\n this.touchHandler.onTouchMove(evt);\r\n };\r\n EventManager.prototype.onDoubleTap = function (evt) {\r\n this.touchHandler.onDoubleTap(evt);\r\n };\r\n EventManager.prototype.onKeyDown = function (evt) {\r\n if (this.control.isFocus) {\r\n var code = this.getShortcutCode(evt);\r\n if (code == (key_1.ModifierKey.Ctrl | key_1.KeyCode.Key_z))\r\n this.control.history.undo();\r\n if (code == (key_1.ModifierKey.Ctrl | key_1.KeyCode.Key_y))\r\n this.control.history.redo();\r\n if (code == key_1.KeyCode.Delete)\r\n this.control.taskEditController.deleteSelectedDependency();\r\n }\r\n };\r\n EventManager.prototype.getShortcutCode = function (evt) {\r\n var keyCode = key_1.KeyUtils.getEventKeyCode(evt);\r\n var modifiers = 0;\r\n if (evt.altKey)\r\n modifiers |= key_1.ModifierKey.Alt;\r\n if (evt.ctrlKey)\r\n modifiers |= key_1.ModifierKey.Ctrl;\r\n if (evt.shiftKey)\r\n modifiers |= key_1.ModifierKey.Shift;\r\n if (evt.metaKey && browser_1.Browser.MacOSPlatform)\r\n modifiers |= key_1.ModifierKey.Meta;\r\n return modifiers | keyCode;\r\n };\r\n return EventManager;\r\n}());\r\nexports.EventManager = EventManager;\r\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandler = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerBase_1 = __webpack_require__(47);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar MouseHandlerDefaultState_1 = __webpack_require__(90);\r\nvar evt_1 = __webpack_require__(6);\r\nvar MouseHandlerMoveTaskState_1 = __webpack_require__(91);\r\nvar MouseHandlerProgressTaskState_1 = __webpack_require__(92);\r\nvar MouseHandlerTimestampTaskState_1 = __webpack_require__(93);\r\nvar MouseHandlerDependencyState_1 = __webpack_require__(48);\r\nvar MouseHandler = (function (_super) {\r\n tslib_1.__extends(MouseHandler, _super);\r\n function MouseHandler() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandler.prototype.onMouseDoubleClick = function (evt) {\r\n this.state.onMouseDoubleClick(evt);\r\n };\r\n MouseHandler.prototype.onMouseDown = function (evt) {\r\n var source = this.getEventSource(evt_1.EvtUtils.getEventSource(evt));\r\n switch (source) {\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_Frame:\r\n this.switchState(new MouseHandlerMoveTaskState_1.MouseHandlerMoveTaskState(this));\r\n break;\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_Progress:\r\n this.switchState(new MouseHandlerProgressTaskState_1.MouseHandlerProgressTaskState(this));\r\n break;\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_Start:\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_End:\r\n this.switchState(new MouseHandlerTimestampTaskState_1.MouseHandlerTimestampTaskState(this));\r\n break;\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyStart:\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyFinish:\r\n this.switchState(new MouseHandlerDependencyState_1.MouseHandlerDependencyState(this));\r\n break;\r\n }\r\n this.state.onMouseDown(evt);\r\n };\r\n MouseHandler.prototype.onMouseUp = function (evt) {\r\n this.state.onMouseUp(evt);\r\n };\r\n MouseHandler.prototype.onMouseMove = function (evt) {\r\n this.state.onMouseMove(evt);\r\n };\r\n MouseHandler.prototype.onMouseWheel = function (evt) {\r\n this.state.onMouseWheel(evt);\r\n };\r\n MouseHandler.prototype.switchToDefaultState = function () {\r\n this.state = new MouseHandlerDefaultState_1.MouseHandlerDefaultState(this);\r\n };\r\n return MouseHandler;\r\n}(HandlerBase_1.HandlerBase));\r\nexports.MouseHandler = MouseHandler;\r\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GanttMovingHelper = exports.MouseHandlerDefaultState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar dom_1 = __webpack_require__(3);\r\nvar evt_1 = __webpack_require__(6);\r\nvar MouseHandlerStateBase_1 = __webpack_require__(29);\r\nvar GridLayoutCalculator_1 = __webpack_require__(17);\r\nvar point_1 = __webpack_require__(4);\r\nvar browser_1 = __webpack_require__(5);\r\nvar MouseHandlerDefaultState = (function (_super) {\r\n tslib_1.__extends(MouseHandlerDefaultState, _super);\r\n function MouseHandlerDefaultState(handler) {\r\n var _this = _super.call(this, handler) || this;\r\n _this.isInScrolling = false;\r\n _this.ganttMovingHelper = new GanttMovingHelper(_this.handler.control);\r\n return _this;\r\n }\r\n MouseHandlerDefaultState.prototype.onMouseDown = function (evt) {\r\n evt.preventDefault();\r\n var source = evt_1.EvtUtils.getEventSource(evt);\r\n if (dom_1.DomUtils.hasClassName(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL) ||\r\n dom_1.DomUtils.hasClassName(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_VERTICAL)) {\r\n var id = source.getAttribute(\"dependency-id\");\r\n if (this.handler.control.taskEditController.dependencyId != id) {\r\n this.handler.control.selectDependency(id);\r\n if (evt instanceof PointerEvent) {\r\n var info = {\r\n event: evt,\r\n type: \"dependency\",\r\n key: id,\r\n position: new point_1.Point(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.getEventY(evt))\r\n };\r\n this.handler.control.ganttOwner.showPopupMenu(info);\r\n }\r\n }\r\n }\r\n else {\r\n if (evt_1.EvtUtils.isLeftButtonPressed(evt))\r\n this.ganttMovingHelper.startMoving(evt);\r\n if (this.handler.control.taskEditController.dependencyId != null)\r\n this.handler.control.selectDependency(null);\r\n }\r\n };\r\n MouseHandlerDefaultState.prototype.onMouseUp = function (evt) {\r\n this.ganttMovingHelper.onMouseUp(evt);\r\n };\r\n MouseHandlerDefaultState.prototype.onMouseMove = function (evt) {\r\n if (this.ganttMovingHelper.movingInfo) {\r\n this.handler.control.taskEditController.hide();\r\n this.ganttMovingHelper.onMouseMove(evt);\r\n evt.preventDefault();\r\n }\r\n };\r\n MouseHandlerDefaultState.prototype.onMouseWheel = function (evt) {\r\n var _this = this;\r\n if (evt.ctrlKey) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n if (!this.isInScrolling) {\r\n this.isInScrolling = true;\r\n setTimeout(function () { _this.isInScrolling = false; }, 50);\r\n var increase = evt_1.EvtUtils.getWheelDelta(evt) > 0;\r\n var leftPos = evt_1.EvtUtils.getEventX(evt) - dom_1.DomUtils.getAbsolutePositionX(this.handler.control.taskAreaContainer.getElement());\r\n if (increase)\r\n this.handler.control.zoomIn(leftPos);\r\n else\r\n this.handler.control.zoomOut(leftPos);\r\n }\r\n }\r\n };\r\n return MouseHandlerDefaultState;\r\n}(MouseHandlerStateBase_1.MouseHandlerStateBase));\r\nexports.MouseHandlerDefaultState = MouseHandlerDefaultState;\r\nvar GanttMovingHelper = (function () {\r\n function GanttMovingHelper(gantt) {\r\n this.gantt = gantt;\r\n this.movingInfo = null;\r\n }\r\n GanttMovingHelper.prototype.startMoving = function (e) {\r\n this.movingInfo = this.calcMovingInfo(e);\r\n this.updateGanttAreaCursor(true);\r\n };\r\n GanttMovingHelper.prototype.cancelMoving = function () {\r\n this.movingInfo = null;\r\n };\r\n GanttMovingHelper.prototype.onMouseMove = function (e) {\r\n this.move(e);\r\n };\r\n GanttMovingHelper.prototype.onMouseUp = function (e) {\r\n this.cancelMoving();\r\n this.updateGanttAreaCursor(false);\r\n };\r\n GanttMovingHelper.prototype.move = function (e) {\r\n this.updateScrollPosition(e);\r\n };\r\n GanttMovingHelper.prototype.updateScrollPosition = function (e) {\r\n var newEventX = Math.round(evt_1.EvtUtils.getEventX(e));\r\n var newEventY = Math.round(evt_1.EvtUtils.getEventY(e));\r\n var deltaX = newEventX - this.movingInfo.eventX;\r\n var deltaY = newEventY - this.movingInfo.eventY;\r\n var dirX = deltaX < 0 ? -1 : 1;\r\n var dirY = deltaY < 0 ? -1 : 1;\r\n var maxDeltaX = dirX < 0 ? this.movingInfo.maxRightDelta : this.movingInfo.maxLeftDelta;\r\n var maxDeltaY = dirY < 0 ? this.movingInfo.maxBottomDelta : this.movingInfo.maxTopDelta;\r\n if (Math.abs(deltaX) > maxDeltaX)\r\n deltaX = maxDeltaX * dirX;\r\n if (Math.abs(deltaY) > maxDeltaY)\r\n deltaY = maxDeltaY * dirY;\r\n var newScrollLeft = this.movingInfo.scrollLeft - deltaX;\r\n var newScrollTop = this.movingInfo.scrollTop - deltaY;\r\n var taskAreaContainer = this.gantt.taskAreaContainer;\r\n if (taskAreaContainer.scrollLeft !== newScrollLeft)\r\n taskAreaContainer.scrollLeft = newScrollLeft;\r\n if (taskAreaContainer.scrollTop !== newScrollTop)\r\n taskAreaContainer.scrollTop = newScrollTop;\r\n };\r\n GanttMovingHelper.prototype.calcMovingInfo = function (e) {\r\n var taskAreaContainer = this.gantt.taskAreaContainer;\r\n return {\r\n eventX: evt_1.EvtUtils.getEventX(e),\r\n eventY: evt_1.EvtUtils.getEventY(e),\r\n scrollLeft: taskAreaContainer.scrollLeft,\r\n scrollTop: taskAreaContainer.scrollTop,\r\n maxLeftDelta: taskAreaContainer.scrollLeft,\r\n maxRightDelta: taskAreaContainer.scrollWidth - taskAreaContainer.scrollLeft - taskAreaContainer.getElement().offsetWidth,\r\n maxTopDelta: taskAreaContainer.scrollTop,\r\n maxBottomDelta: taskAreaContainer.scrollHeight - taskAreaContainer.scrollTop - taskAreaContainer.getElement().offsetHeight\r\n };\r\n };\r\n GanttMovingHelper.prototype.updateGanttAreaCursor = function (drag) {\r\n if (browser_1.Browser.IE)\r\n this.gantt.taskAreaContainer.getElement().style.cursor = drag ? \"move\" : \"default\";\r\n else\r\n this.gantt.taskAreaContainer.getElement().style.cursor = drag ? \"grabbing\" : \"default\";\r\n };\r\n return GanttMovingHelper;\r\n}());\r\nexports.GanttMovingHelper = GanttMovingHelper;\r\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerMoveTaskState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar MouseHandlerDragTaskBaseState_1 = __webpack_require__(30);\r\nvar MouseHandlerMoveTaskState = (function (_super) {\r\n tslib_1.__extends(MouseHandlerMoveTaskState, _super);\r\n function MouseHandlerMoveTaskState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerMoveTaskState.prototype.onMouseUpInternal = function (_evt) {\r\n this.handler.control.taskEditController.confirmMove();\r\n };\r\n MouseHandlerMoveTaskState.prototype.onMouseMoveInternal = function (position) {\r\n if (!this.handler.control.taskEditController.processMove(position.x - this.currentPosition.x))\r\n this.handler.switchToDefaultState();\r\n };\r\n return MouseHandlerMoveTaskState;\r\n}(MouseHandlerDragTaskBaseState_1.MouseHandlerDragBaseState));\r\nexports.MouseHandlerMoveTaskState = MouseHandlerMoveTaskState;\r\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerProgressTaskState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar MouseHandlerDragTaskBaseState_1 = __webpack_require__(30);\r\nvar MouseHandlerProgressTaskState = (function (_super) {\r\n tslib_1.__extends(MouseHandlerProgressTaskState, _super);\r\n function MouseHandlerProgressTaskState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerProgressTaskState.prototype.onMouseUpInternal = function (_evt) {\r\n this.handler.control.taskEditController.confirmProgress();\r\n };\r\n MouseHandlerProgressTaskState.prototype.onMouseMoveInternal = function (position) {\r\n var relativePosition = this.getRelativePos(position);\r\n this.handler.control.taskEditController.processProgress(relativePosition);\r\n };\r\n return MouseHandlerProgressTaskState;\r\n}(MouseHandlerDragTaskBaseState_1.MouseHandlerDragBaseState));\r\nexports.MouseHandlerProgressTaskState = MouseHandlerProgressTaskState;\r\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerTimestampTaskState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar evt_1 = __webpack_require__(6);\r\nvar MouseHandlerDragTaskBaseState_1 = __webpack_require__(30);\r\nvar MouseHandlerTimestampTaskState = (function (_super) {\r\n tslib_1.__extends(MouseHandlerTimestampTaskState, _super);\r\n function MouseHandlerTimestampTaskState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerTimestampTaskState.prototype.onMouseDown = function (evt) {\r\n _super.prototype.onMouseDown.call(this, evt);\r\n this.source = this.handler.getEventSource(evt_1.EvtUtils.getEventSource(evt));\r\n };\r\n MouseHandlerTimestampTaskState.prototype.onMouseUpInternal = function (_evt) {\r\n if (this.source == TaskAreaManager_1.MouseEventSource.TaskEdit_Start)\r\n this.handler.control.taskEditController.confirmStart();\r\n else\r\n this.handler.control.taskEditController.confirmEnd();\r\n };\r\n MouseHandlerTimestampTaskState.prototype.onMouseMoveInternal = function (position) {\r\n var relativePosition = this.getRelativePos(position);\r\n if (this.source == TaskAreaManager_1.MouseEventSource.TaskEdit_Start)\r\n this.handler.control.taskEditController.processStart(relativePosition);\r\n if (this.source == TaskAreaManager_1.MouseEventSource.TaskEdit_End)\r\n this.handler.control.taskEditController.processEnd(relativePosition);\r\n };\r\n return MouseHandlerTimestampTaskState;\r\n}(MouseHandlerDragTaskBaseState_1.MouseHandlerDragBaseState));\r\nexports.MouseHandlerTimestampTaskState = MouseHandlerTimestampTaskState;\r\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(5);\r\nvar encode_1 = __webpack_require__(95);\r\nvar string_1 = __webpack_require__(27);\r\nvar KeyUtils = (function () {\r\n function KeyUtils() {\r\n }\r\n KeyUtils.getKeyModifiers = function (evt) {\r\n var result = 0;\r\n if (evt.altKey)\r\n result |= ModifierKey.Alt;\r\n if (evt.ctrlKey)\r\n result |= ModifierKey.Ctrl;\r\n if (evt.shiftKey)\r\n result |= ModifierKey.Shift;\r\n return result;\r\n };\r\n KeyUtils.getShortcutCode = function (keyCode, isCtrlKey, isShiftKey, isAltKey, isMetaKey) {\r\n var value = keyCode;\r\n value |= isCtrlKey ? ModifierKey.Ctrl : 0;\r\n value |= isShiftKey ? ModifierKey.Shift : 0;\r\n value |= isAltKey ? ModifierKey.Alt : 0;\r\n value |= isMetaKey ? ModifierKey.Meta : 0;\r\n return value;\r\n };\r\n KeyUtils.getShortcutCodeByEvent = function (evt) {\r\n return KeyUtils.getShortcutCode(KeyUtils.getEventKeyCode(evt), evt.ctrlKey, evt.shiftKey, evt.altKey, browser_1.Browser.MacOSPlatform ? evt.metaKey : false);\r\n };\r\n KeyUtils.getEventKeyCode = function (evt) {\r\n return browser_1.Browser.NetscapeFamily || browser_1.Browser.Opera ? evt.which : evt.keyCode;\r\n };\r\n KeyUtils.parseShortcutString = function (shortcutString) {\r\n if (!shortcutString)\r\n return 0;\r\n var isCtrlKey = false;\r\n var isShiftKey = false;\r\n var isAltKey = false;\r\n var isMetaKey = false;\r\n var keyCode = null;\r\n var shcKeys = shortcutString.toString().split('+');\r\n if (shcKeys.length > 0) {\r\n for (var i = 0; i < shcKeys.length; i++) {\r\n var key = string_1.StringUtils.trim(shcKeys[i].toUpperCase());\r\n switch (key) {\r\n case 'CONTROL':\r\n case 'CONTROLKEY':\r\n case 'CTRL':\r\n isCtrlKey = true;\r\n break;\r\n case 'SHIFT':\r\n case 'SHIFTKEY':\r\n isShiftKey = true;\r\n break;\r\n case 'ALT':\r\n isAltKey = true;\r\n break;\r\n case 'CMD':\r\n isMetaKey = true;\r\n break;\r\n case 'F1':\r\n keyCode = KeyCode.F1;\r\n break;\r\n case 'F2':\r\n keyCode = KeyCode.F2;\r\n break;\r\n case 'F3':\r\n keyCode = KeyCode.F3;\r\n break;\r\n case 'F4':\r\n keyCode = KeyCode.F4;\r\n break;\r\n case 'F5':\r\n keyCode = KeyCode.F5;\r\n break;\r\n case 'F6':\r\n keyCode = KeyCode.F6;\r\n break;\r\n case 'F7':\r\n keyCode = KeyCode.F7;\r\n break;\r\n case 'F8':\r\n keyCode = KeyCode.F8;\r\n break;\r\n case 'F9':\r\n keyCode = KeyCode.F9;\r\n break;\r\n case 'F10':\r\n keyCode = KeyCode.F10;\r\n break;\r\n case 'F11':\r\n keyCode = KeyCode.F11;\r\n break;\r\n case 'F12':\r\n keyCode = KeyCode.F12;\r\n break;\r\n case 'RETURN':\r\n case 'ENTER':\r\n keyCode = KeyCode.Enter;\r\n break;\r\n case 'HOME':\r\n keyCode = KeyCode.Home;\r\n break;\r\n case 'END':\r\n keyCode = KeyCode.End;\r\n break;\r\n case 'LEFT':\r\n keyCode = KeyCode.Left;\r\n break;\r\n case 'RIGHT':\r\n keyCode = KeyCode.Right;\r\n break;\r\n case 'UP':\r\n keyCode = KeyCode.Up;\r\n break;\r\n case 'DOWN':\r\n keyCode = KeyCode.Down;\r\n break;\r\n case 'PAGEUP':\r\n keyCode = KeyCode.PageUp;\r\n break;\r\n case 'PAGEDOWN':\r\n keyCode = KeyCode.PageDown;\r\n break;\r\n case 'SPACE':\r\n keyCode = KeyCode.Space;\r\n break;\r\n case 'TAB':\r\n keyCode = KeyCode.Tab;\r\n break;\r\n case 'BACKSPACE':\r\n case 'BACK':\r\n keyCode = KeyCode.Backspace;\r\n break;\r\n case 'CONTEXT':\r\n keyCode = KeyCode.ContextMenu;\r\n break;\r\n case 'ESCAPE':\r\n case 'ESC':\r\n keyCode = KeyCode.Esc;\r\n break;\r\n case 'DELETE':\r\n case 'DEL':\r\n keyCode = KeyCode.Delete;\r\n break;\r\n case 'INSERT':\r\n case 'INS':\r\n keyCode = KeyCode.Insert;\r\n break;\r\n case 'PLUS':\r\n keyCode = '+'.charCodeAt(0);\r\n break;\r\n default:\r\n keyCode = key.charCodeAt(0);\r\n break;\r\n }\r\n }\r\n }\r\n else\r\n alert(encode_1.EncodeUtils.decodeViaTextArea('Invalid shortcut'));\r\n return KeyUtils.getShortcutCode(keyCode, isCtrlKey, isShiftKey, isAltKey, isMetaKey);\r\n };\r\n return KeyUtils;\r\n}());\r\nexports.KeyUtils = KeyUtils;\r\nvar ModifierKey;\r\n(function (ModifierKey) {\r\n ModifierKey[ModifierKey[\"None\"] = 0] = \"None\";\r\n ModifierKey[ModifierKey[\"Ctrl\"] = 65536] = \"Ctrl\";\r\n ModifierKey[ModifierKey[\"Shift\"] = 262144] = \"Shift\";\r\n ModifierKey[ModifierKey[\"Alt\"] = 1048576] = \"Alt\";\r\n ModifierKey[ModifierKey[\"Meta\"] = 16777216] = \"Meta\";\r\n})(ModifierKey = exports.ModifierKey || (exports.ModifierKey = {}));\r\nvar KeyCode;\r\n(function (KeyCode) {\r\n KeyCode[KeyCode[\"Backspace\"] = 8] = \"Backspace\";\r\n KeyCode[KeyCode[\"Tab\"] = 9] = \"Tab\";\r\n KeyCode[KeyCode[\"Enter\"] = 13] = \"Enter\";\r\n KeyCode[KeyCode[\"Pause\"] = 19] = \"Pause\";\r\n KeyCode[KeyCode[\"CapsLock\"] = 20] = \"CapsLock\";\r\n KeyCode[KeyCode[\"Esc\"] = 27] = \"Esc\";\r\n KeyCode[KeyCode[\"Space\"] = 32] = \"Space\";\r\n KeyCode[KeyCode[\"PageUp\"] = 33] = \"PageUp\";\r\n KeyCode[KeyCode[\"PageDown\"] = 34] = \"PageDown\";\r\n KeyCode[KeyCode[\"End\"] = 35] = \"End\";\r\n KeyCode[KeyCode[\"Home\"] = 36] = \"Home\";\r\n KeyCode[KeyCode[\"Left\"] = 37] = \"Left\";\r\n KeyCode[KeyCode[\"Up\"] = 38] = \"Up\";\r\n KeyCode[KeyCode[\"Right\"] = 39] = \"Right\";\r\n KeyCode[KeyCode[\"Down\"] = 40] = \"Down\";\r\n KeyCode[KeyCode[\"Insert\"] = 45] = \"Insert\";\r\n KeyCode[KeyCode[\"Delete\"] = 46] = \"Delete\";\r\n KeyCode[KeyCode[\"Key_0\"] = 48] = \"Key_0\";\r\n KeyCode[KeyCode[\"Key_1\"] = 49] = \"Key_1\";\r\n KeyCode[KeyCode[\"Key_2\"] = 50] = \"Key_2\";\r\n KeyCode[KeyCode[\"Key_3\"] = 51] = \"Key_3\";\r\n KeyCode[KeyCode[\"Key_4\"] = 52] = \"Key_4\";\r\n KeyCode[KeyCode[\"Key_5\"] = 53] = \"Key_5\";\r\n KeyCode[KeyCode[\"Key_6\"] = 54] = \"Key_6\";\r\n KeyCode[KeyCode[\"Key_7\"] = 55] = \"Key_7\";\r\n KeyCode[KeyCode[\"Key_8\"] = 56] = \"Key_8\";\r\n KeyCode[KeyCode[\"Key_9\"] = 57] = \"Key_9\";\r\n KeyCode[KeyCode[\"Key_a\"] = 65] = \"Key_a\";\r\n KeyCode[KeyCode[\"Key_b\"] = 66] = \"Key_b\";\r\n KeyCode[KeyCode[\"Key_c\"] = 67] = \"Key_c\";\r\n KeyCode[KeyCode[\"Key_d\"] = 68] = \"Key_d\";\r\n KeyCode[KeyCode[\"Key_e\"] = 69] = \"Key_e\";\r\n KeyCode[KeyCode[\"Key_f\"] = 70] = \"Key_f\";\r\n KeyCode[KeyCode[\"Key_g\"] = 71] = \"Key_g\";\r\n KeyCode[KeyCode[\"Key_h\"] = 72] = \"Key_h\";\r\n KeyCode[KeyCode[\"Key_i\"] = 73] = \"Key_i\";\r\n KeyCode[KeyCode[\"Key_j\"] = 74] = \"Key_j\";\r\n KeyCode[KeyCode[\"Key_k\"] = 75] = \"Key_k\";\r\n KeyCode[KeyCode[\"Key_l\"] = 76] = \"Key_l\";\r\n KeyCode[KeyCode[\"Key_m\"] = 77] = \"Key_m\";\r\n KeyCode[KeyCode[\"Key_n\"] = 78] = \"Key_n\";\r\n KeyCode[KeyCode[\"Key_o\"] = 79] = \"Key_o\";\r\n KeyCode[KeyCode[\"Key_p\"] = 80] = \"Key_p\";\r\n KeyCode[KeyCode[\"Key_q\"] = 81] = \"Key_q\";\r\n KeyCode[KeyCode[\"Key_r\"] = 82] = \"Key_r\";\r\n KeyCode[KeyCode[\"Key_s\"] = 83] = \"Key_s\";\r\n KeyCode[KeyCode[\"Key_t\"] = 84] = \"Key_t\";\r\n KeyCode[KeyCode[\"Key_u\"] = 85] = \"Key_u\";\r\n KeyCode[KeyCode[\"Key_v\"] = 86] = \"Key_v\";\r\n KeyCode[KeyCode[\"Key_w\"] = 87] = \"Key_w\";\r\n KeyCode[KeyCode[\"Key_x\"] = 88] = \"Key_x\";\r\n KeyCode[KeyCode[\"Key_y\"] = 89] = \"Key_y\";\r\n KeyCode[KeyCode[\"Key_z\"] = 90] = \"Key_z\";\r\n KeyCode[KeyCode[\"Windows\"] = 91] = \"Windows\";\r\n KeyCode[KeyCode[\"ContextMenu\"] = 93] = \"ContextMenu\";\r\n KeyCode[KeyCode[\"Numpad_0\"] = 96] = \"Numpad_0\";\r\n KeyCode[KeyCode[\"Numpad_1\"] = 97] = \"Numpad_1\";\r\n KeyCode[KeyCode[\"Numpad_2\"] = 98] = \"Numpad_2\";\r\n KeyCode[KeyCode[\"Numpad_3\"] = 99] = \"Numpad_3\";\r\n KeyCode[KeyCode[\"Numpad_4\"] = 100] = \"Numpad_4\";\r\n KeyCode[KeyCode[\"Numpad_5\"] = 101] = \"Numpad_5\";\r\n KeyCode[KeyCode[\"Numpad_6\"] = 102] = \"Numpad_6\";\r\n KeyCode[KeyCode[\"Numpad_7\"] = 103] = \"Numpad_7\";\r\n KeyCode[KeyCode[\"Numpad_8\"] = 104] = \"Numpad_8\";\r\n KeyCode[KeyCode[\"Numpad_9\"] = 105] = \"Numpad_9\";\r\n KeyCode[KeyCode[\"Multiply\"] = 106] = \"Multiply\";\r\n KeyCode[KeyCode[\"Add\"] = 107] = \"Add\";\r\n KeyCode[KeyCode[\"Subtract\"] = 109] = \"Subtract\";\r\n KeyCode[KeyCode[\"Decimal\"] = 110] = \"Decimal\";\r\n KeyCode[KeyCode[\"Divide\"] = 111] = \"Divide\";\r\n KeyCode[KeyCode[\"F1\"] = 112] = \"F1\";\r\n KeyCode[KeyCode[\"F2\"] = 113] = \"F2\";\r\n KeyCode[KeyCode[\"F3\"] = 114] = \"F3\";\r\n KeyCode[KeyCode[\"F4\"] = 115] = \"F4\";\r\n KeyCode[KeyCode[\"F5\"] = 116] = \"F5\";\r\n KeyCode[KeyCode[\"F6\"] = 117] = \"F6\";\r\n KeyCode[KeyCode[\"F7\"] = 118] = \"F7\";\r\n KeyCode[KeyCode[\"F8\"] = 119] = \"F8\";\r\n KeyCode[KeyCode[\"F9\"] = 120] = \"F9\";\r\n KeyCode[KeyCode[\"F10\"] = 121] = \"F10\";\r\n KeyCode[KeyCode[\"F11\"] = 122] = \"F11\";\r\n KeyCode[KeyCode[\"F12\"] = 123] = \"F12\";\r\n KeyCode[KeyCode[\"NumLock\"] = 144] = \"NumLock\";\r\n KeyCode[KeyCode[\"ScrollLock\"] = 145] = \"ScrollLock\";\r\n KeyCode[KeyCode[\"Semicolon\"] = 186] = \"Semicolon\";\r\n KeyCode[KeyCode[\"Equals\"] = 187] = \"Equals\";\r\n KeyCode[KeyCode[\"Comma\"] = 188] = \"Comma\";\r\n KeyCode[KeyCode[\"Dash\"] = 189] = \"Dash\";\r\n KeyCode[KeyCode[\"Period\"] = 190] = \"Period\";\r\n KeyCode[KeyCode[\"ForwardSlash\"] = 191] = \"ForwardSlash\";\r\n KeyCode[KeyCode[\"GraveAccent\"] = 192] = \"GraveAccent\";\r\n KeyCode[KeyCode[\"OpenBracket\"] = 219] = \"OpenBracket\";\r\n KeyCode[KeyCode[\"BackSlash\"] = 220] = \"BackSlash\";\r\n KeyCode[KeyCode[\"CloseBracket\"] = 221] = \"CloseBracket\";\r\n KeyCode[KeyCode[\"SingleQuote\"] = 222] = \"SingleQuote\";\r\n})(KeyCode = exports.KeyCode || (exports.KeyCode = {}));\r\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EncodeUtils = (function () {\r\n function EncodeUtils() {\r\n }\r\n EncodeUtils.encodeHtml = function (text) {\r\n return text\r\n .replace(/&/g, '&')\r\n .replace(//g, '>');\r\n };\r\n EncodeUtils.decodeHtml = function (text) {\r\n return text\r\n .replace(/&/g, '&')\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>');\r\n };\r\n EncodeUtils.prepareTextForRequest = function (text) {\r\n return text\r\n .replace(/%/g, '%25')\r\n .replace(/&/g, '%26amp;')\r\n .replace(/\\+/g, '%2B')\r\n .replace(//g, '%26gt;')\r\n .replace(/\"/g, '%26quot;');\r\n };\r\n EncodeUtils.prepareTextForCallBackRequest = function (text) {\r\n return text\r\n .replace(/&/g, '&')\r\n .replace(//g, '>')\r\n .replace(/\"/g, '"');\r\n };\r\n EncodeUtils.decodeViaTextArea = function (html) {\r\n var textArea = document.createElement('TEXTAREA');\r\n textArea.innerHTML = html;\r\n return textArea.value;\r\n };\r\n return EncodeUtils;\r\n}());\r\nexports.EncodeUtils = EncodeUtils;\r\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandler = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerBase_1 = __webpack_require__(47);\r\nvar evt_1 = __webpack_require__(6);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar TouchHandlerMoveTaskState_1 = __webpack_require__(97);\r\nvar TouchHandlerDefaultState_1 = __webpack_require__(98);\r\nvar TouchHandlerProgressTaskState_1 = __webpack_require__(99);\r\nvar TouchHandlerTimestampTaskState_1 = __webpack_require__(100);\r\nvar TouchHandlerDependencyState_1 = __webpack_require__(101);\r\nvar TouchHandlerZoomState_1 = __webpack_require__(102);\r\nvar TouchHandler = (function (_super) {\r\n tslib_1.__extends(TouchHandler, _super);\r\n function TouchHandler() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandler.prototype.onTouchStart = function (evt) {\r\n if (evt.touches.length > 1)\r\n evt.preventDefault();\r\n var source = this.getEventSource(evt_1.EvtUtils.getEventSource(evt));\r\n switch (source) {\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_Frame:\r\n this.switchState(new TouchHandlerMoveTaskState_1.TouchHandlerMoveTaskState(this));\r\n break;\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_Progress:\r\n this.switchState(new TouchHandlerProgressTaskState_1.TouchHandlerProgressTaskState(this));\r\n break;\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_Start:\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_End:\r\n this.switchState(new TouchHandlerTimestampTaskState_1.TouchHandlerTimestampTaskState(this));\r\n break;\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyStart:\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyFinish:\r\n this.switchState(new TouchHandlerDependencyState_1.TouchHandlerDependencyState(this));\r\n break;\r\n }\r\n this.state.onTouchStart(evt);\r\n };\r\n TouchHandler.prototype.onDoubleTap = function (evt) {\r\n this.state.onDoubleTap(evt);\r\n };\r\n TouchHandler.prototype.onTouchEnd = function (evt) {\r\n this.state.onTouchEnd(evt);\r\n };\r\n TouchHandler.prototype.onTouchMove = function (evt) {\r\n if (evt.touches.length > 1)\r\n if (!(this.state instanceof TouchHandlerZoomState_1.TouchHandlerZoomState))\r\n this.switchState(new TouchHandlerZoomState_1.TouchHandlerZoomState(this));\r\n this.state.onTouchMove(evt);\r\n };\r\n TouchHandler.prototype.switchToDefaultState = function () {\r\n this.state = new TouchHandlerDefaultState_1.TouchHandlerDefaultState(this);\r\n };\r\n return TouchHandler;\r\n}(HandlerBase_1.HandlerBase));\r\nexports.TouchHandler = TouchHandler;\r\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerMoveTaskState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerDragBaseState_1 = __webpack_require__(31);\r\nvar TouchHandlerMoveTaskState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerMoveTaskState, _super);\r\n function TouchHandlerMoveTaskState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerMoveTaskState.prototype.onTouchEndInternal = function (_evt) {\r\n this.handler.control.taskEditController.confirmMove();\r\n };\r\n TouchHandlerMoveTaskState.prototype.onTouchMoveInternal = function (position) {\r\n if (!this.handler.control.taskEditController.processMove(position.x - this.currentPosition.x))\r\n this.handler.switchToDefaultState();\r\n };\r\n return TouchHandlerMoveTaskState;\r\n}(TouchHandlerDragBaseState_1.TouchHandlerDragBaseState));\r\nexports.TouchHandlerMoveTaskState = TouchHandlerMoveTaskState;\r\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerDefaultState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar point_1 = __webpack_require__(4);\r\nvar dom_1 = __webpack_require__(3);\r\nvar evt_1 = __webpack_require__(6);\r\nvar touch_1 = __webpack_require__(15);\r\nvar GridLayoutCalculator_1 = __webpack_require__(17);\r\nvar HandlerStateBase_1 = __webpack_require__(19);\r\nvar TouchHandlerDefaultState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerDefaultState, _super);\r\n function TouchHandlerDefaultState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerDefaultState.prototype.onTouchStart = function (evt) {\r\n var _this = this;\r\n this.preventSelect = false;\r\n clearTimeout(this.popupTimer);\r\n if (evt.touches.length === 1) {\r\n var source = evt_1.EvtUtils.getEventSource(evt);\r\n var info_1 = {\r\n event: evt,\r\n position: new point_1.Point(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.getEventY(evt))\r\n };\r\n if (dom_1.DomUtils.hasClassName(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL) ||\r\n dom_1.DomUtils.hasClassName(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_VERTICAL)) {\r\n this.preventSelect = true;\r\n var id = source.getAttribute(\"dependency-id\");\r\n if (this.handler.control.taskEditController.dependencyId != id)\r\n this.handler.control.selectDependency(id);\r\n info_1[\"type\"] = \"dependency\";\r\n info_1[\"key\"] = id;\r\n this.handler.control.ganttOwner.showPopupMenu(info_1);\r\n }\r\n else\r\n this.popupTimer = setTimeout(function () {\r\n var index = _this.getTaskIndex(evt);\r\n _this.changeTaskSelection(index);\r\n var item = _this.handler.control.viewModel.items[index];\r\n info_1[\"type\"] = \"task\";\r\n info_1[\"key\"] = item && item.task.id;\r\n _this.handler.control.ganttOwner.showPopupMenu(info_1);\r\n }, 500);\r\n }\r\n };\r\n TouchHandlerDefaultState.prototype.onDoubleTap = function (_evt) { };\r\n TouchHandlerDefaultState.prototype.onTouchEnd = function (evt) {\r\n clearTimeout(this.popupTimer);\r\n if (!this.preventSelect)\r\n this.changeTaskSelection(this.getTaskIndex(evt));\r\n };\r\n TouchHandlerDefaultState.prototype.onTouchMove = function (_evt) {\r\n clearTimeout(this.popupTimer);\r\n this.preventSelect = true;\r\n };\r\n TouchHandlerDefaultState.prototype.getTaskIndex = function (evt) {\r\n var y = touch_1.TouchUtils.getEventY(evt);\r\n var taskAreaY = dom_1.DomUtils.getAbsolutePositionY(this.handler.control.taskArea);\r\n var relativeY = y - taskAreaY;\r\n return Math.floor(relativeY / this.handler.control.tickSize.height);\r\n };\r\n TouchHandlerDefaultState.prototype.changeTaskSelection = function (index) {\r\n var clickedTask = this.handler.control.viewModel.items[index];\r\n if (clickedTask)\r\n this.handler.control.ganttOwner.changeGanttTaskSelection(clickedTask.task.id, true);\r\n };\r\n return TouchHandlerDefaultState;\r\n}(HandlerStateBase_1.HandlerStateBase));\r\nexports.TouchHandlerDefaultState = TouchHandlerDefaultState;\r\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerProgressTaskState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerDragBaseState_1 = __webpack_require__(31);\r\nvar TouchHandlerProgressTaskState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerProgressTaskState, _super);\r\n function TouchHandlerProgressTaskState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerProgressTaskState.prototype.onTouchEndInternal = function (_evt) {\r\n this.handler.control.taskEditController.confirmProgress();\r\n };\r\n TouchHandlerProgressTaskState.prototype.onTouchMoveInternal = function (position) {\r\n var relativePosition = this.getRelativePos(position);\r\n this.handler.control.taskEditController.processProgress(relativePosition);\r\n };\r\n return TouchHandlerProgressTaskState;\r\n}(TouchHandlerDragBaseState_1.TouchHandlerDragBaseState));\r\nexports.TouchHandlerProgressTaskState = TouchHandlerProgressTaskState;\r\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerTimestampTaskState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerDragBaseState_1 = __webpack_require__(31);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar evt_1 = __webpack_require__(6);\r\nvar TouchHandlerTimestampTaskState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerTimestampTaskState, _super);\r\n function TouchHandlerTimestampTaskState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerTimestampTaskState.prototype.onTouchStart = function (evt) {\r\n _super.prototype.onTouchStart.call(this, evt);\r\n this.source = this.handler.getEventSource(evt_1.EvtUtils.getEventSource(evt));\r\n };\r\n TouchHandlerTimestampTaskState.prototype.onTouchEndInternal = function (_evt) {\r\n if (this.source == TaskAreaManager_1.MouseEventSource.TaskEdit_Start)\r\n this.handler.control.taskEditController.confirmStart();\r\n else\r\n this.handler.control.taskEditController.confirmEnd();\r\n };\r\n TouchHandlerTimestampTaskState.prototype.onTouchMoveInternal = function (position) {\r\n var relativePosition = this.getRelativePos(position);\r\n if (this.source == TaskAreaManager_1.MouseEventSource.TaskEdit_Start)\r\n this.handler.control.taskEditController.processStart(relativePosition);\r\n if (this.source == TaskAreaManager_1.MouseEventSource.TaskEdit_End)\r\n this.handler.control.taskEditController.processEnd(relativePosition);\r\n };\r\n return TouchHandlerTimestampTaskState;\r\n}(TouchHandlerDragBaseState_1.TouchHandlerDragBaseState));\r\nexports.TouchHandlerTimestampTaskState = TouchHandlerTimestampTaskState;\r\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerDependencyState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerStateBase_1 = __webpack_require__(49);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar dom_1 = __webpack_require__(3);\r\nvar evt_1 = __webpack_require__(6);\r\nvar point_1 = __webpack_require__(4);\r\nvar MouseHandlerDependencyState_1 = __webpack_require__(48);\r\nvar touch_1 = __webpack_require__(15);\r\nvar TouchHandlerDependencyState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerDependencyState, _super);\r\n function TouchHandlerDependencyState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerDependencyState.prototype.onTouchStart = function (evt) {\r\n evt.preventDefault();\r\n var sourceElement = evt_1.EvtUtils.getEventSource(evt);\r\n this.source = this.handler.getEventSource(sourceElement);\r\n var pos = this.getRelativePos(new point_1.Point(dom_1.DomUtils.getAbsolutePositionX(sourceElement) + sourceElement.clientWidth / 2, dom_1.DomUtils.getAbsolutePositionY(sourceElement) + sourceElement.clientHeight / 2));\r\n this.handler.control.taskEditController.startDependency(pos);\r\n };\r\n TouchHandlerDependencyState.prototype.onTouchEnd = function (evt) {\r\n var relativePosStart = this.getRelativePos(new point_1.Point(dom_1.DomUtils.getAbsolutePositionX(this.handler.control.taskEditController.dependencySuccessorStart) + this.handler.control.taskEditController.dependencySuccessorStart.clientWidth / 2, dom_1.DomUtils.getAbsolutePositionY(this.handler.control.taskEditController.dependencySuccessorStart) + this.handler.control.taskEditController.dependencySuccessorStart.clientHeight / 2));\r\n var relativePosEnd = this.getRelativePos(new point_1.Point(dom_1.DomUtils.getAbsolutePositionX(this.handler.control.taskEditController.dependencySuccessorFinish) + this.handler.control.taskEditController.dependencySuccessorFinish.clientWidth / 2, dom_1.DomUtils.getAbsolutePositionY(this.handler.control.taskEditController.dependencySuccessorFinish) + this.handler.control.taskEditController.dependencySuccessorFinish.clientHeight / 2));\r\n var relativeTouchPos = this.getRelativePos(new point_1.Point(touch_1.TouchUtils.getEventX(evt), touch_1.TouchUtils.getEventY(evt)));\r\n var target = this.isTouchNearby(relativeTouchPos, relativePosStart) ? TaskAreaManager_1.MouseEventSource.Successor_DependencyStart :\r\n this.isTouchNearby(relativeTouchPos, relativePosEnd) ? TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish : null;\r\n var type = target === TaskAreaManager_1.MouseEventSource.Successor_DependencyStart || target == TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish ?\r\n MouseHandlerDependencyState_1.dependencyMap[this.source][target] : null;\r\n this.handler.control.taskEditController.endDependency(type);\r\n this.handler.switchToDefaultState();\r\n };\r\n TouchHandlerDependencyState.prototype.onTouchMove = function (evt) {\r\n evt.preventDefault();\r\n var relativePos = this.getRelativePos(new point_1.Point(touch_1.TouchUtils.getEventX(evt), touch_1.TouchUtils.getEventY(evt)));\r\n var hoverTaskIndex = Math.floor(relativePos.y / this.handler.control.tickSize.height);\r\n this.handler.control.taskEditController.processDependency(relativePos);\r\n if (this.handler.control.viewModel.tasks.items[hoverTaskIndex])\r\n this.handler.control.taskEditController.showDependencySuccessor(hoverTaskIndex);\r\n };\r\n TouchHandlerDependencyState.prototype.isTouchNearby = function (touchPos, elementPos) {\r\n if (Math.abs(elementPos.x - touchPos.x) <= 10 && Math.abs(elementPos.y - touchPos.y) <= 10)\r\n return true;\r\n return false;\r\n };\r\n return TouchHandlerDependencyState;\r\n}(TouchHandlerStateBase_1.TouchHandlerStateBase));\r\nexports.TouchHandlerDependencyState = TouchHandlerDependencyState;\r\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerZoomState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerStateBase_1 = __webpack_require__(19);\r\nvar point_1 = __webpack_require__(4);\r\nvar dom_1 = __webpack_require__(3);\r\nvar PINCH_CHANGE_DISTANCE = 3;\r\nvar TouchHandlerZoomState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerZoomState, _super);\r\n function TouchHandlerZoomState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerZoomState.prototype.onTouchStart = function (_evt) { };\r\n TouchHandlerZoomState.prototype.onDoubleTap = function (_evt) { };\r\n TouchHandlerZoomState.prototype.onTouchEnd = function (_evt) {\r\n this.prevDistance = null;\r\n this.handler.switchToDefaultState();\r\n };\r\n TouchHandlerZoomState.prototype.onTouchMove = function (evt) {\r\n evt.stopPropagation();\r\n evt.preventDefault();\r\n if (evt.touches.length > 1) {\r\n var distance = this.getTouchDistance(evt);\r\n if (this.prevDistance) {\r\n var diff = this.prevDistance - distance;\r\n if (Math.abs(diff) > PINCH_CHANGE_DISTANCE) {\r\n var offsetX = this.getMiddleAbsPoint(evt).x;\r\n if (diff > 0)\r\n this.handler.control.zoomOut(offsetX);\r\n else\r\n this.handler.control.zoomIn(offsetX);\r\n this.prevDistance = distance;\r\n }\r\n }\r\n else\r\n this.prevDistance = distance;\r\n }\r\n };\r\n TouchHandlerZoomState.prototype.getTouchDistance = function (evt) {\r\n var pt0 = new point_1.Point(evt.touches[0].clientX, evt.touches[0].clientY);\r\n var pt1 = new point_1.Point(evt.touches[1].clientX, evt.touches[1].clientY);\r\n return this.getDistance(pt0, pt1);\r\n };\r\n TouchHandlerZoomState.prototype.getDistance = function (a, b) {\r\n return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));\r\n };\r\n TouchHandlerZoomState.prototype.getMiddleAbsPoint = function (evt) {\r\n var _this = this;\r\n return this.getMiddlePointByEvent(evt, function (touch) {\r\n return new point_1.Point(touch.pageX - dom_1.DomUtils.getAbsolutePositionX(_this.handler.control.taskAreaContainer.getElement()), touch.pageY - dom_1.DomUtils.getAbsolutePositionY(_this.handler.control.taskAreaContainer.getElement()));\r\n });\r\n };\r\n TouchHandlerZoomState.prototype.getMiddlePointByEvent = function (evt, getPoint) {\r\n if (evt.touches.length > 1)\r\n return new point_1.Point((getPoint(evt.touches[0]).x + getPoint(evt.touches[1]).x) / 2, (getPoint(evt.touches[0]).y + getPoint(evt.touches[1]).y) / 2);\r\n };\r\n return TouchHandlerZoomState;\r\n}(HandlerStateBase_1.HandlerStateBase));\r\nexports.TouchHandlerZoomState = TouchHandlerZoomState;\r\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskAreaContainer = void 0;\r\nvar TaskAreaContainer = (function () {\r\n function TaskAreaContainer(element, ganttView) {\r\n this.element = element;\r\n this.onScrollHandler = function () { ganttView.updateView(); };\r\n this.element.addEventListener(\"scroll\", this.onScrollHandler);\r\n }\r\n Object.defineProperty(TaskAreaContainer.prototype, \"scrollTop\", {\r\n get: function () {\r\n return this.element.scrollTop;\r\n },\r\n set: function (value) {\r\n this.element.scrollTop = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskAreaContainer.prototype, \"scrollLeft\", {\r\n get: function () {\r\n return this.element.scrollLeft;\r\n },\r\n set: function (value) {\r\n this.element.scrollLeft = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskAreaContainer.prototype, \"scrollWidth\", {\r\n get: function () {\r\n return this.element.scrollWidth;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskAreaContainer.prototype, \"scrollHeight\", {\r\n get: function () {\r\n return this.element.scrollHeight;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskAreaContainer.prototype, \"isExternal\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TaskAreaContainer.prototype.getWidth = function () {\r\n return this.element.offsetWidth;\r\n };\r\n TaskAreaContainer.prototype.getHeight = function () {\r\n return this.element.offsetHeight;\r\n };\r\n TaskAreaContainer.prototype.getElement = function () {\r\n return this.element;\r\n };\r\n TaskAreaContainer.prototype.detachEvents = function () {\r\n this.element.removeEventListener(\"scroll\", this.onScrollHandler);\r\n };\r\n return TaskAreaContainer;\r\n}());\r\nexports.TaskAreaContainer = TaskAreaContainer;\r\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelChangesDispatcher = void 0;\r\nvar EventDispatcher_1 = __webpack_require__(105);\r\nvar TaskArguments_1 = __webpack_require__(50);\r\nvar AssignmentArguments_1 = __webpack_require__(32);\r\nvar ModelChangesDispatcher = (function () {\r\n function ModelChangesDispatcher() {\r\n this.onModelChanged = new EventDispatcher_1.EventDispatcher();\r\n this.isLocked = false;\r\n }\r\n ModelChangesDispatcher.prototype.notifyTaskCreating = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskCreating\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskCreated = function (task, callback, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskCreated\", task, callback, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskRemoving = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskRemoving\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskRemoved = function (taskID, errorCallback, task) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskRemoved\", taskID, errorCallback, task);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskUpdating = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskUpdating\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskMoving = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskMoving\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskEditDialogShowing = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskEditDialogShowing\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskTitleChanged = function (taskID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskTitleChanged\", taskID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskDescriptionChanged = function (taskID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskDescriptionChanged\", taskID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskStartChanged = function (taskID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskStartChanged\", taskID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskEndChanged = function (taskID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskEndChanged\", taskID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskProgressChanged = function (taskID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskProgressChanged\", taskID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskColorChanged = function (taskID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskColorChanged\", taskID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyParentTaskUpdated = function (task, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyParentTaskUpdated\", task, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyDependencyInserting = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyDependencyInserting\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyDependencyInserted = function (dependency, callback, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyDependencyInserted\", dependency, callback, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyDependencyRemoving = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyDependencyRemoving\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyDependencyRemoved = function (dependencyID, errorCallback, dependency) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyDependencyRemoved\", dependencyID, errorCallback, dependency);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceCreating = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceCreating\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceCreated = function (resource, callback, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceCreated\", resource, callback, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceRemoving = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceRemoving\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceRemoved = function (resourceID, errorCallback, resource) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceRemoved\", resourceID, errorCallback, resource);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceColorChanged = function (resourceID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceColorChanged\", resourceID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceAssigning = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceAssigning\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceAssigned = function (assignment, callback, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceAssigned\", assignment, callback, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceUnassigning = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceUnassigning\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceUnassigned = function (assignmentID, errorCallback, assignment) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceUnassigned\", assignmentID, errorCallback, assignment);\r\n };\r\n ModelChangesDispatcher.prototype.notifyParentDataRecalculated = function (data) {\r\n this.onModelChanged.raise(\"NotifyParentDataRecalculated\", data);\r\n };\r\n ModelChangesDispatcher.prototype.fireResourceUnassigning = function (assignment) {\r\n var args = new AssignmentArguments_1.ResourceUnassigningArguments(assignment);\r\n this.notifyResourceUnassigning(args);\r\n return !args.cancel;\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskTitleUpdating = function (task, value, callback) {\r\n return this.raiseTaskUpdating(task, \"title\", value, callback);\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskDescriptionUpdating = function (task, value, callback) {\r\n return this.raiseTaskUpdating(task, \"description\", value, callback);\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskProgressUpdating = function (task, value, callback) {\r\n return this.raiseTaskUpdating(task, \"progress\", value, callback);\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskColorUpdating = function (task, value, callback) {\r\n return this.raiseTaskUpdating(task, \"color\", value, callback);\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskStartUpdating = function (task, value, callback) {\r\n return this.raiseTaskUpdating(task, \"start\", value, callback);\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskEndUpdating = function (task, value, callback) {\r\n return this.raiseTaskUpdating(task, \"end\", value, callback);\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskStartAndEndUpdating = function (task, newStart, newEnd, callback) {\r\n var args = new TaskArguments_1.TaskUpdatingArguments(task, [\"start\", \"end\"], [newStart, newEnd]);\r\n this.notifyTaskUpdating(args);\r\n if (!args.cancel) {\r\n callback(args[\"start\"], args[\"end\"]);\r\n return true;\r\n }\r\n return false;\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskUpdating = function (task, fieldName, newValue, callback) {\r\n var oldValue = task[fieldName];\r\n if (oldValue !== newValue) {\r\n var args = new TaskArguments_1.TaskUpdatingArguments(task, [fieldName], [newValue]);\r\n this.notifyTaskUpdating(args);\r\n if (!args.cancel && oldValue !== args[fieldName]) {\r\n callback(args[fieldName]);\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskMultipleUpdating = function (task, newValues, callback) {\r\n var fields = [\"title\", \"progress\", \"start\", \"end\", \"color\"];\r\n var values = fields.map(function (f) { return newValues[f]; });\r\n var args = new TaskArguments_1.TaskUpdatingArguments(task, fields, values);\r\n this.notifyTaskUpdating(args);\r\n if (!args.cancel) {\r\n callback(args.newValues);\r\n return true;\r\n }\r\n return false;\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskMoving = function (task, newStart, newEnd, callback) {\r\n var args = new TaskArguments_1.TaskUpdatingArguments(task, [\"start\", \"end\"], [newStart, newEnd]);\r\n this.notifyTaskMoving(args);\r\n if (!args.cancel) {\r\n callback(args[\"start\"], args[\"end\"]);\r\n return true;\r\n }\r\n return false;\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskTaskEditDialogShowing = function (params, callback) {\r\n var args = new TaskArguments_1.TaskEditDialogShowingArguments(params);\r\n this.notifyTaskEditDialogShowing(args);\r\n if (!args.cancel) {\r\n callback(args);\r\n return true;\r\n }\r\n return false;\r\n };\r\n ModelChangesDispatcher.prototype.lock = function () { this.isLocked = true; };\r\n ModelChangesDispatcher.prototype.unlock = function () { this.isLocked = false; };\r\n return ModelChangesDispatcher;\r\n}());\r\nexports.ModelChangesDispatcher = ModelChangesDispatcher;\r\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EventDispatcher = void 0;\r\nvar EventDispatcher = (function () {\r\n function EventDispatcher() {\r\n this.listeners = [];\r\n }\r\n EventDispatcher.prototype.add = function (listener) {\r\n if (!listener)\r\n throw new Error(\"Error\");\r\n if (!this.hasEventListener(listener))\r\n this.listeners.push(listener);\r\n };\r\n EventDispatcher.prototype.remove = function (listener) {\r\n for (var i = 0, currentListener = void 0; currentListener = this.listeners[i]; i++)\r\n if (currentListener === listener) {\r\n this.listeners.splice(i, 1);\r\n break;\r\n }\r\n };\r\n EventDispatcher.prototype.raise = function (funcName) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n for (var i = 0, listener = void 0; listener = this.listeners[i]; i++) {\r\n var func = listener[funcName];\r\n func === null || func === void 0 ? void 0 : func.apply(listener, args);\r\n }\r\n };\r\n EventDispatcher.prototype.hasEventListener = function (listener) {\r\n for (var i = 0, l = this.listeners.length; i < l; i++)\r\n if (this.listeners[i] === listener)\r\n return true;\r\n return false;\r\n };\r\n return EventDispatcher;\r\n}());\r\nexports.EventDispatcher = EventDispatcher;\r\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CommandManager = void 0;\r\nvar TaskCommands_1 = __webpack_require__(107);\r\nvar TaskPropertiesCommands_1 = __webpack_require__(108);\r\nvar DependencyCommands_1 = __webpack_require__(109);\r\nvar ResourceCommands_1 = __webpack_require__(111);\r\nvar TaskEditDialog_1 = __webpack_require__(113);\r\nvar ConstraintViolationDialog_1 = __webpack_require__(52);\r\nvar ResourcesDialog_1 = __webpack_require__(114);\r\nvar ClientCommand_1 = __webpack_require__(115);\r\nvar HistoryCommands_1 = __webpack_require__(116);\r\nvar ZoomCommands_1 = __webpack_require__(117);\r\nvar FullScreenCommand_1 = __webpack_require__(118);\r\nvar CollapseExpandCommands_1 = __webpack_require__(119);\r\nvar ConfirmationDialog_1 = __webpack_require__(23);\r\nvar ResourcePropertiesCommands_1 = __webpack_require__(120);\r\nvar CommandManager = (function () {\r\n function CommandManager(control) {\r\n this.control = control;\r\n this.commands = {};\r\n this.createCommand(ClientCommand_1.GanttClientCommand.CreateTask, this.createTaskCommand);\r\n this.createCommand(ClientCommand_1.GanttClientCommand.CreateSubTask, this.createSubTaskCommand);\r\n this.createCommand(ClientCommand_1.GanttClientCommand.RemoveTask, this.removeTaskCommand);\r\n this.createCommand(ClientCommand_1.GanttClientCommand.RemoveDependency, this.removeDependencyCommand);\r\n this.createCommand(ClientCommand_1.GanttClientCommand.TaskInformation, this.showTaskEditDialog);\r\n this.createCommand(ClientCommand_1.GanttClientCommand.TaskAddContextItem, new TaskCommands_1.TaskAddContextItemCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.Undo, new HistoryCommands_1.UndoCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.Redo, new HistoryCommands_1.RedoCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.ZoomIn, new ZoomCommands_1.ZoomInCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.ZoomOut, new ZoomCommands_1.ZoomOutCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.FullScreen, new FullScreenCommand_1.ToggleFullScreenCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.CollapseAll, new CollapseExpandCommands_1.CollapseAllCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.ExpandAll, new CollapseExpandCommands_1.ExpandAllCommand(this.control));\r\n }\r\n Object.defineProperty(CommandManager.prototype, \"createTaskCommand\", {\r\n get: function () { return new TaskCommands_1.CreateTaskCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"createSubTaskCommand\", {\r\n get: function () { return new TaskCommands_1.CreateSubTaskCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"removeTaskCommand\", {\r\n get: function () { return new TaskCommands_1.RemoveTaskCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeTaskTitleCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskTitleCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeTaskDescriptionCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskDescriptionCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeTaskProgressCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskProgressCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeTaskColorCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskColorCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeTaskStartCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskStartCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"taskMoveCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskMoveCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeTaskEndCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskEndCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"updateTaskCommand\", {\r\n get: function () { return new TaskCommands_1.UpdateTaskCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"createDependencyCommand\", {\r\n get: function () { return new DependencyCommands_1.CreateDependencyCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"removeDependencyCommand\", {\r\n get: function () { return new DependencyCommands_1.RemoveDependencyCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"createResourceCommand\", {\r\n get: function () { return new ResourceCommands_1.CreateResourceCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"removeResourceCommand\", {\r\n get: function () { return new ResourceCommands_1.RemoveResourceCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"assignResourceCommand\", {\r\n get: function () { return new ResourceCommands_1.AssignResourceCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"deassignResourceCommand\", {\r\n get: function () { return new ResourceCommands_1.DeassignResourceCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeResourceColorCommand\", {\r\n get: function () { return new ResourcePropertiesCommands_1.ResourceColorCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"showTaskEditDialog\", {\r\n get: function () { return new TaskEditDialog_1.TaskEditDialogCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"showConstraintViolationDialog\", {\r\n get: function () { return new ConstraintViolationDialog_1.ConstraintViolationDialogCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"showConfirmationDialog\", {\r\n get: function () { return new ConfirmationDialog_1.ConfirmationDialog(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"showResourcesDialog\", {\r\n get: function () { return new ResourcesDialog_1.ResourcesDialogCommand(this.control); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CommandManager.prototype.getCommand = function (key) {\r\n return this.commands[key];\r\n };\r\n CommandManager.prototype.createCommand = function (commandId, command) {\r\n this.commands[commandId] = command;\r\n };\r\n return CommandManager;\r\n}());\r\nexports.CommandManager = CommandManager;\r\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskAddContextItemCommand = exports.UpdateTaskCommand = exports.RemoveTaskCommand = exports.CreateSubTaskCommand = exports.CreateTaskCommand = exports.TaskCommandBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar TaskHistoryItem_1 = __webpack_require__(51);\r\nvar TaskDependencyHistoryItem_1 = __webpack_require__(21);\r\nvar ResourceHistoryItem_1 = __webpack_require__(22);\r\nvar ConfirmationDialog_1 = __webpack_require__(23);\r\nvar TaskArguments_1 = __webpack_require__(50);\r\nvar TaskPropertiesHistoryItem_1 = __webpack_require__(25);\r\nvar common_1 = __webpack_require__(1);\r\nvar TaskCommandBase = (function (_super) {\r\n tslib_1.__extends(TaskCommandBase, _super);\r\n function TaskCommandBase() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.isApiCall = false;\r\n return _this;\r\n }\r\n TaskCommandBase.prototype.getState = function () {\r\n var state = new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n state.visible = this.control.settings.editing.enabled && !this.control.taskEditController.dependencyId;\r\n return state;\r\n };\r\n TaskCommandBase.prototype.updateParent = function (parent) {\r\n var isAutoUpdateParentTask = this.validationController._parentAutoCalc;\r\n if (isAutoUpdateParentTask && parent && parent.children.length > 0) {\r\n this.control.validationController.updateParentsIfRequired(parent.children[0].task.internalId);\r\n while (!!parent && !!parent.task) {\r\n this.modelManipulator.dispatcher.notifyParentTaskUpdated(parent.task, this.control.viewModel.getDataUpdateErrorCallback());\r\n parent = parent.parent;\r\n }\r\n }\r\n };\r\n return TaskCommandBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.TaskCommandBase = TaskCommandBase;\r\nvar CreateTaskCommand = (function (_super) {\r\n tslib_1.__extends(CreateTaskCommand, _super);\r\n function CreateTaskCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CreateTaskCommand.prototype.execute = function (data) {\r\n return _super.prototype.execute.call(this, data);\r\n };\r\n CreateTaskCommand.prototype.executeInternal = function (data) {\r\n var _a, _b;\r\n data !== null && data !== void 0 ? data : (data = {});\r\n if (!data.parentId) {\r\n var item = this.control.viewModel.findItem(this.control.currentSelectedTaskID);\r\n var selectedTask = item && item.task;\r\n if (selectedTask)\r\n data.parentId = selectedTask.parentId;\r\n }\r\n var referenceItem = this.control.viewModel.findItem(data.parentId) || this.control.viewModel.items[0];\r\n var referenceTask = referenceItem && referenceItem.task;\r\n if (!data.start)\r\n data.start = referenceTask ? new Date(referenceTask.start.getTime()) : new Date(this.control.range.start.getTime());\r\n if (!data.end)\r\n data.end = referenceTask ? new Date(referenceTask.end.getTime()) : new Date(this.control.range.end.getTime());\r\n (_a = data.title) !== null && _a !== void 0 ? _a : (data.title = \"New task\");\r\n (_b = data.progress) !== null && _b !== void 0 ? _b : (data.progress = 0);\r\n var args = new TaskArguments_1.TaskInsertingArguments(null, data);\r\n this.modelManipulator.dispatcher.notifyTaskCreating(args);\r\n if (!args.cancel) {\r\n this.history.addAndRedo(new TaskHistoryItem_1.CreateTaskHistoryItem(this.modelManipulator, args));\r\n var parentItem = this.control.viewModel.findItem(data.parentId);\r\n this.updateParent(parentItem);\r\n }\r\n return !args.cancel;\r\n };\r\n CreateTaskCommand.prototype.getState = function () {\r\n var state = _super.prototype.getState.call(this);\r\n state.visible = state.visible && this.control.settings.editing.allowTaskInsert;\r\n return state;\r\n };\r\n return CreateTaskCommand;\r\n}(TaskCommandBase));\r\nexports.CreateTaskCommand = CreateTaskCommand;\r\nvar CreateSubTaskCommand = (function (_super) {\r\n tslib_1.__extends(CreateSubTaskCommand, _super);\r\n function CreateSubTaskCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CreateSubTaskCommand.prototype.execute = function (parentId) {\r\n return _super.prototype.execute.call(this, parentId);\r\n };\r\n CreateSubTaskCommand.prototype.executeInternal = function (parentId) {\r\n parentId = parentId || this.control.currentSelectedTaskID;\r\n var selectedItem = this.control.viewModel.findItem(parentId);\r\n if (selectedItem.selected) {\r\n var data = {\r\n start: new Date(selectedItem.task.start.getTime()),\r\n end: new Date(selectedItem.task.end.getTime()),\r\n title: \"New task\",\r\n progress: 0,\r\n parentId: parentId\r\n };\r\n var args = new TaskArguments_1.TaskInsertingArguments(null, data);\r\n this.modelManipulator.dispatcher.notifyTaskCreating(args);\r\n if (!args.cancel) {\r\n this.history.addAndRedo(new TaskHistoryItem_1.CreateTaskHistoryItem(this.modelManipulator, args));\r\n var parentItem = this.control.viewModel.findItem(data.parentId);\r\n this.updateParent(parentItem);\r\n }\r\n return !args.cancel;\r\n }\r\n return false;\r\n };\r\n CreateSubTaskCommand.prototype.isEnabled = function () {\r\n var gantt = this.control;\r\n var selectedItem = gantt.viewModel.findItem(gantt.currentSelectedTaskID);\r\n return _super.prototype.isEnabled.call(this) && !!selectedItem && selectedItem.selected;\r\n };\r\n CreateSubTaskCommand.prototype.getState = function () {\r\n var state = _super.prototype.getState.call(this);\r\n var gantt = this.control;\r\n state.visible = state.visible && gantt.settings.editing.allowTaskInsert;\r\n return state;\r\n };\r\n return CreateSubTaskCommand;\r\n}(TaskCommandBase));\r\nexports.CreateSubTaskCommand = CreateSubTaskCommand;\r\nvar RemoveTaskCommand = (function (_super) {\r\n tslib_1.__extends(RemoveTaskCommand, _super);\r\n function RemoveTaskCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RemoveTaskCommand.prototype.execute = function (id, confirmRequired, isApiCall, isUpdateParentTaskRequired, historyItem) {\r\n var _this = this;\r\n if (confirmRequired === void 0) { confirmRequired = true; }\r\n if (isApiCall === void 0) { isApiCall = false; }\r\n if (isUpdateParentTaskRequired === void 0) { isUpdateParentTaskRequired = true; }\r\n this.isApiCall = isApiCall;\r\n this.isUpdateParentTaskRequired = isUpdateParentTaskRequired;\r\n if (confirmRequired) {\r\n this.control.commandManager.showConfirmationDialog.execute(new ConfirmationDialog_1.ConfirmationDialogParameters(ConfirmationDialog_1.ConfirmationType.TaskDelete, function () { _this.executeInternal(id, historyItem); }));\r\n return false;\r\n }\r\n return _super.prototype.execute.call(this, id, historyItem);\r\n };\r\n RemoveTaskCommand.prototype.executeInternal = function (id, historyItem) {\r\n var _this = this;\r\n id = id || this.control.currentSelectedTaskID;\r\n var item = this.control.viewModel.findItem(id);\r\n var task = item ? item.task : this.control.viewModel.tasks.getItemById(id);\r\n var args = new TaskArguments_1.TaskRemovingArguments(task);\r\n this.modelManipulator.dispatcher.notifyTaskRemoving(args);\r\n if (args.cancel)\r\n return false;\r\n this.control.viewModel.beginUpdate();\r\n var removeTaskHistoryItem = historyItem || new TaskHistoryItem_1.RemoveTaskHistoryItem(this.modelManipulator);\r\n removeTaskHistoryItem.addTask(id);\r\n var childTasks = this.control.viewModel.tasks.items.filter(function (t) { return t.parentId == id; });\r\n childTasks.forEach(function (t) { return new RemoveTaskCommand(_this.control).execute(t.internalId, false, true, false, removeTaskHistoryItem); });\r\n var parent = item && item.parent;\r\n var dependencies = this.control.viewModel.dependencies.items.filter(function (d) { return d.predecessorId == id || d.successorId == id; });\r\n if (dependencies.length)\r\n if (this.control.settings.editing.allowDependencyDelete) {\r\n dependencies = dependencies.filter(function (d) { return childTasks.filter(function (c) { return c.internalId == d.predecessorId || c.internalId == d.successorId; }).length == 0; });\r\n dependencies.forEach(function (d) { return removeTaskHistoryItem.add(new TaskDependencyHistoryItem_1.RemoveDependencyHistoryItem(_this.modelManipulator, d.internalId)); });\r\n }\r\n else\r\n return false;\r\n var assignments = this.control.viewModel.assignments.items.filter(function (a) { return a.taskId == id; });\r\n assignments.forEach(function (a) {\r\n if (_this.modelManipulator.dispatcher.fireResourceUnassigning(a))\r\n removeTaskHistoryItem.add(new ResourceHistoryItem_1.DeassignResourceHistoryItem(_this.modelManipulator, a.internalId));\r\n });\r\n if (!historyItem)\r\n this.history.addAndRedo(removeTaskHistoryItem);\r\n if (this.isUpdateParentTaskRequired)\r\n this.updateParent(parent);\r\n this.control.viewModel.endUpdate();\r\n return true;\r\n };\r\n RemoveTaskCommand.prototype.isEnabled = function () {\r\n var gantt = this.control;\r\n var selectedItem = gantt.viewModel.findItem(gantt.currentSelectedTaskID);\r\n var result = _super.prototype.isEnabled.call(this) && (!!selectedItem && selectedItem.selected || this.isApiCall);\r\n return result;\r\n };\r\n RemoveTaskCommand.prototype.getState = function () {\r\n var state = _super.prototype.getState.call(this);\r\n var gantt = this.control;\r\n state.visible = state.visible && gantt.settings.editing.allowTaskDelete;\r\n return state;\r\n };\r\n return RemoveTaskCommand;\r\n}(TaskCommandBase));\r\nexports.RemoveTaskCommand = RemoveTaskCommand;\r\nvar UpdateTaskCommand = (function (_super) {\r\n tslib_1.__extends(UpdateTaskCommand, _super);\r\n function UpdateTaskCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n UpdateTaskCommand.prototype.execute = function (id, newValues) {\r\n return _super.prototype.execute.call(this, id, newValues);\r\n };\r\n UpdateTaskCommand.prototype.executeInternal = function (id, newValues) {\r\n var task = this.control.viewModel.tasks.getItemById(id);\r\n if (!task)\r\n return false;\r\n var success = this.control.modelManipulator.dispatcher.raiseTaskMultipleUpdating(task, newValues, function (changedNewValues) {\r\n newValues.title = changedNewValues.title;\r\n newValues.progress = changedNewValues.progress;\r\n newValues.start = changedNewValues.start;\r\n newValues.end = changedNewValues.end;\r\n newValues.color = changedNewValues.color;\r\n });\r\n if (success) {\r\n this.history.beginTransaction();\r\n var needRecalculateParents = false;\r\n if (common_1.isDefined(newValues.title) && newValues.title !== task.title)\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskTitleHistoryItem(this.modelManipulator, id, newValues.title));\r\n if (common_1.isDefined(newValues.progress) && newValues.progress !== task.progress) {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskProgressHistoryItem(this.modelManipulator, id, newValues.progress));\r\n needRecalculateParents = true;\r\n }\r\n if (common_1.isDefined(newValues.start) && common_1.isDefined(newValues.end) && newValues.end.getTime() < newValues.start.getTime())\r\n newValues.end = newValues.start;\r\n if (common_1.isDefined(newValues.start) && newValues.start !== task.start) {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(this.modelManipulator, id, newValues.start));\r\n needRecalculateParents = true;\r\n if (this.control.settings.validation.validateDependencies)\r\n this.control.validationController.moveStartDependTasks(id, task.start);\r\n }\r\n if (common_1.isDefined(newValues.end) && newValues.end !== task.end) {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(this.modelManipulator, id, newValues.end));\r\n needRecalculateParents = true;\r\n if (this.control.settings.validation.validateDependencies)\r\n this.control.validationController.moveEndDependTasks(id, task.end);\r\n }\r\n if (common_1.isDefined(newValues.color) && newValues.color !== task.color)\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskColorHistoryItem(this.modelManipulator, id, newValues.color));\r\n if (needRecalculateParents)\r\n this.validationController.updateParentsIfRequired(id);\r\n else\r\n this.control.updateOwnerInAutoParentMode();\r\n this.history.endTransaction();\r\n }\r\n return success;\r\n };\r\n UpdateTaskCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowTaskUpdate;\r\n };\r\n return UpdateTaskCommand;\r\n}(TaskCommandBase));\r\nexports.UpdateTaskCommand = UpdateTaskCommand;\r\nvar TaskAddContextItemCommand = (function (_super) {\r\n tslib_1.__extends(TaskAddContextItemCommand, _super);\r\n function TaskAddContextItemCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskAddContextItemCommand.prototype.getState = function () {\r\n var state = _super.prototype.getState.call(this);\r\n state.visible = state.visible && this.control.settings.editing.allowTaskInsert;\r\n return state;\r\n };\r\n TaskAddContextItemCommand.prototype.execute = function () {\r\n return false;\r\n };\r\n return TaskAddContextItemCommand;\r\n}(TaskCommandBase));\r\nexports.TaskAddContextItemCommand = TaskAddContextItemCommand;\r\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskMoveCommand = exports.TaskEndCommand = exports.TaskStartCommand = exports.TaskPropertyCommandValidation = exports.TaskColorCommand = exports.TaskProgressCommand = exports.TaskDescriptionCommand = exports.TaskTitleCommand = exports.TaskPropertyCommandBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar TaskPropertiesHistoryItem_1 = __webpack_require__(25);\r\nvar ConstraintViolationDialog_1 = __webpack_require__(52);\r\nvar DateRange_1 = __webpack_require__(9);\r\nvar TaskPropertyCommandBase = (function (_super) {\r\n tslib_1.__extends(TaskPropertyCommandBase, _super);\r\n function TaskPropertyCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskPropertyCommandBase.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n TaskPropertyCommandBase.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowTaskUpdate;\r\n };\r\n TaskPropertyCommandBase.prototype.getTask = function (id) {\r\n return this.control.viewModel.tasks.getItemById(id);\r\n };\r\n return TaskPropertyCommandBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.TaskPropertyCommandBase = TaskPropertyCommandBase;\r\nvar TaskTitleCommand = (function (_super) {\r\n tslib_1.__extends(TaskTitleCommand, _super);\r\n function TaskTitleCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskTitleCommand.prototype.execute = function (id, value) {\r\n return _super.prototype.execute.call(this, id, value);\r\n };\r\n TaskTitleCommand.prototype.executeInternal = function (id, value) {\r\n var _this = this;\r\n return this.modelManipulator.dispatcher.raiseTaskTitleUpdating(this.getTask(id), value, function (newTitle) { _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskTitleHistoryItem(_this.modelManipulator, id, newTitle)); });\r\n };\r\n return TaskTitleCommand;\r\n}(TaskPropertyCommandBase));\r\nexports.TaskTitleCommand = TaskTitleCommand;\r\nvar TaskDescriptionCommand = (function (_super) {\r\n tslib_1.__extends(TaskDescriptionCommand, _super);\r\n function TaskDescriptionCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskDescriptionCommand.prototype.execute = function (id, value) {\r\n return _super.prototype.execute.call(this, id, value);\r\n };\r\n TaskDescriptionCommand.prototype.executeInternal = function (id, value) {\r\n var _this = this;\r\n return this.modelManipulator.dispatcher.raiseTaskDescriptionUpdating(this.getTask(id), value, function (newDescription) { _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskDescriptionHistoryItem(_this.modelManipulator, id, newDescription)); });\r\n };\r\n return TaskDescriptionCommand;\r\n}(TaskPropertyCommandBase));\r\nexports.TaskDescriptionCommand = TaskDescriptionCommand;\r\nvar TaskProgressCommand = (function (_super) {\r\n tslib_1.__extends(TaskProgressCommand, _super);\r\n function TaskProgressCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskProgressCommand.prototype.execute = function (id, value) {\r\n return _super.prototype.execute.call(this, id, value);\r\n };\r\n TaskProgressCommand.prototype.executeInternal = function (id, value) {\r\n var _this = this;\r\n return this.modelManipulator.dispatcher.raiseTaskProgressUpdating(this.getTask(id), value, function (newValue) {\r\n _this.control.history.beginTransaction();\r\n _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskProgressHistoryItem(_this.modelManipulator, id, newValue));\r\n _this.validationController.updateParentsIfRequired(id);\r\n _this.control.history.endTransaction();\r\n });\r\n };\r\n return TaskProgressCommand;\r\n}(TaskPropertyCommandBase));\r\nexports.TaskProgressCommand = TaskProgressCommand;\r\nvar TaskColorCommand = (function (_super) {\r\n tslib_1.__extends(TaskColorCommand, _super);\r\n function TaskColorCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskColorCommand.prototype.execute = function (id, value) {\r\n return _super.prototype.execute.call(this, id, value);\r\n };\r\n TaskColorCommand.prototype.executeInternal = function (id, value) {\r\n var _this = this;\r\n return this.modelManipulator.dispatcher.raiseTaskColorUpdating(this.getTask(id), value, function (newValue) { _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskColorHistoryItem(_this.modelManipulator, id, newValue)); });\r\n };\r\n return TaskColorCommand;\r\n}(TaskPropertyCommandBase));\r\nexports.TaskColorCommand = TaskColorCommand;\r\nvar TaskPropertyCommandValidation = (function (_super) {\r\n tslib_1.__extends(TaskPropertyCommandValidation, _super);\r\n function TaskPropertyCommandValidation() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskPropertyCommandValidation.prototype.executeInternal = function () {\r\n var _this = this;\r\n var parameters = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n parameters[_i] = arguments[_i];\r\n }\r\n var validationErrors = this.control.settings.validation.validateDependencies ? this.validate.apply(this, parameters) : [];\r\n var criticalErrors = validationErrors.filter(function (e) { return e.critical; });\r\n if (!validationErrors.length || validationErrors.length > 1 && criticalErrors.length === 0)\r\n return this.executeCore.apply(this, parameters);\r\n else if (validationErrors.length === 1)\r\n this.control.commandManager.showConstraintViolationDialog.execute(new ConstraintViolationDialog_1.ConstraintViolationDialogParameters(validationErrors[0], function () { _this.executeCore.apply(_this, parameters); }));\r\n return false;\r\n };\r\n TaskPropertyCommandValidation.prototype.executeCore = function () {\r\n var parameters = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n parameters[_i] = arguments[_i];\r\n }\r\n return false;\r\n };\r\n TaskPropertyCommandValidation.prototype.validate = function () {\r\n var parameters = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n parameters[_i] = arguments[_i];\r\n }\r\n return [];\r\n };\r\n return TaskPropertyCommandValidation;\r\n}(TaskPropertyCommandBase));\r\nexports.TaskPropertyCommandValidation = TaskPropertyCommandValidation;\r\nvar TaskStartCommand = (function (_super) {\r\n tslib_1.__extends(TaskStartCommand, _super);\r\n function TaskStartCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskStartCommand.prototype.execute = function (id, value) {\r\n var success = this.modelManipulator.dispatcher.raiseTaskStartUpdating(this.getTask(id), value, function (newStart) { value = newStart; });\r\n return success && _super.prototype.execute.call(this, id, value);\r\n };\r\n TaskStartCommand.prototype.executeInternal = function (id, value) {\r\n return _super.prototype.executeInternal.call(this, id, value);\r\n };\r\n TaskStartCommand.prototype.executeCore = function (id, value) {\r\n var oldStart = this.control.viewModel.tasks.getItemById(id).start;\r\n if (oldStart.getTime() == value.getTime())\r\n return false;\r\n this.control.history.beginTransaction();\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(this.modelManipulator, id, value));\r\n if (this.control.settings.validation.validateDependencies)\r\n this.control.validationController.moveStartDependTasks(id, oldStart);\r\n this.validationController.updateParentsIfRequired(id);\r\n this.control.history.endTransaction();\r\n var minStartTask = this.control.viewModel.tasks.items.reduce(function (prev, curr) {\r\n if (!curr.isValid())\r\n return prev;\r\n if (!prev.isValid())\r\n return curr;\r\n return prev.start.getTime() < curr.start.getTime() ? prev : curr;\r\n });\r\n if (minStartTask.start < this.control.dataRange.start) {\r\n this.control.dataRange.start = minStartTask.start;\r\n this.control.resetAndUpdate();\r\n }\r\n return true;\r\n };\r\n TaskStartCommand.prototype.validate = function (id, value) {\r\n return this.control.validationController.checkStartDependencies(id, value);\r\n };\r\n return TaskStartCommand;\r\n}(TaskPropertyCommandValidation));\r\nexports.TaskStartCommand = TaskStartCommand;\r\nvar TaskEndCommand = (function (_super) {\r\n tslib_1.__extends(TaskEndCommand, _super);\r\n function TaskEndCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskEndCommand.prototype.execute = function (id, value) {\r\n var success = this.modelManipulator.dispatcher.raiseTaskEndUpdating(this.getTask(id), value, function (newStart) { value = newStart; });\r\n return success && _super.prototype.execute.call(this, id, value);\r\n };\r\n TaskEndCommand.prototype.executeInternal = function (id, value) {\r\n return _super.prototype.executeInternal.call(this, id, value);\r\n };\r\n TaskEndCommand.prototype.executeCore = function (id, value) {\r\n var oldEnd = this.control.viewModel.tasks.getItemById(id).end;\r\n if (oldEnd.getTime() == value.getTime())\r\n return false;\r\n this.control.history.beginTransaction();\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(this.modelManipulator, id, value));\r\n if (this.control.settings.validation.validateDependencies)\r\n this.control.validationController.moveEndDependTasks(id, oldEnd);\r\n this.validationController.updateParentsIfRequired(id);\r\n this.control.history.endTransaction();\r\n var maxEndTask = this.control.viewModel.tasks.items.reduce(function (prev, curr) {\r\n if (!curr.isValid())\r\n return prev;\r\n return prev.end.getTime() > curr.end.getTime() ? prev : curr;\r\n });\r\n if (maxEndTask.end > this.control.dataRange.end) {\r\n this.control.dataRange.end = maxEndTask.end;\r\n this.control.resetAndUpdate();\r\n }\r\n return true;\r\n };\r\n TaskEndCommand.prototype.validate = function (id, value) {\r\n return this.control.validationController.checkEndDependencies(id, value);\r\n };\r\n return TaskEndCommand;\r\n}(TaskPropertyCommandValidation));\r\nexports.TaskEndCommand = TaskEndCommand;\r\nvar TaskMoveCommand = (function (_super) {\r\n tslib_1.__extends(TaskMoveCommand, _super);\r\n function TaskMoveCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskMoveCommand.prototype.execute = function (id, start, end) {\r\n var success = this.modelManipulator.dispatcher.raiseTaskStartAndEndUpdating(this.getTask(id), start, end, function (newStart, newEnd) {\r\n start = newStart;\r\n end = newEnd;\r\n });\r\n return success && _super.prototype.execute.call(this, id, start, end);\r\n };\r\n TaskMoveCommand.prototype.executeInternal = function (id, start, end) {\r\n return _super.prototype.executeInternal.call(this, id, start, end);\r\n };\r\n TaskMoveCommand.prototype.executeCore = function (id, start, end) {\r\n var task = this.control.viewModel.tasks.getItemById(id);\r\n var oldDateRange = new DateRange_1.DateRange(new Date(task.start.getTime()), new Date(task.end.getTime()));\r\n this.control.history.beginTransaction();\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskMoveHistoryItem(this.modelManipulator, id, new DateRange_1.DateRange(start, end)));\r\n this.validationController.correctParentsOnChildMoving(id, start.getTime() - oldDateRange.start.getTime());\r\n if (this.control.settings.validation.validateDependencies) {\r\n this.control.validationController.moveStartDependTasks(id, oldDateRange.start);\r\n this.control.validationController.moveEndDependTasks(id, oldDateRange.end);\r\n }\r\n this.control.history.endTransaction();\r\n var maxEndTask = this.control.viewModel.tasks.items.reduce(function (prev, curr) {\r\n if (!curr.isValid())\r\n return prev;\r\n return prev.end.getTime() > curr.end.getTime() ? prev : curr;\r\n });\r\n if (maxEndTask.end > this.control.dataRange.end) {\r\n this.control.dataRange.end = maxEndTask.end;\r\n this.control.resetAndUpdate();\r\n }\r\n var minStartTask = this.control.viewModel.tasks.items.reduce(function (prev, curr) {\r\n if (!curr.isValid())\r\n return prev;\r\n if (!prev.isValid())\r\n return curr;\r\n return prev.start.getTime() < curr.start.getTime() ? prev : curr;\r\n });\r\n if (minStartTask.start < this.control.dataRange.start) {\r\n this.control.dataRange.start = minStartTask.start;\r\n this.control.resetAndUpdate();\r\n }\r\n return true;\r\n };\r\n TaskMoveCommand.prototype.validate = function (id, start, end) {\r\n var startErrors = this.control.validationController.checkStartDependencies(id, start);\r\n var endErrors = this.control.validationController.checkEndDependencies(id, end);\r\n return tslib_1.__spreadArray(tslib_1.__spreadArray([], startErrors), endErrors);\r\n };\r\n return TaskMoveCommand;\r\n}(TaskPropertyCommandValidation));\r\nexports.TaskMoveCommand = TaskMoveCommand;\r\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RemoveDependencyCommand = exports.CreateDependencyCommand = exports.DependencyCommandBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar TaskDependencyHistoryItem_1 = __webpack_require__(21);\r\nvar Dependency_1 = __webpack_require__(11);\r\nvar ConfirmationDialog_1 = __webpack_require__(23);\r\nvar DependencyArguments_1 = __webpack_require__(110);\r\nvar DependencyCommandBase = (function (_super) {\r\n tslib_1.__extends(DependencyCommandBase, _super);\r\n function DependencyCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DependencyCommandBase.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n return DependencyCommandBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.DependencyCommandBase = DependencyCommandBase;\r\nvar CreateDependencyCommand = (function (_super) {\r\n tslib_1.__extends(CreateDependencyCommand, _super);\r\n function CreateDependencyCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CreateDependencyCommand.prototype.execute = function (predecessorId, successorId, type) {\r\n return _super.prototype.execute.call(this, predecessorId, successorId, type);\r\n };\r\n CreateDependencyCommand.prototype.executeInternal = function (predecessorId, successorId, type) {\r\n if (this.control.viewModel.dependencies.items.filter(function (d) { return (d.predecessorId == predecessorId && d.successorId == successorId) ||\r\n (d.successorId == predecessorId && d.predecessorId == successorId); }).length)\r\n return false;\r\n var args = new DependencyArguments_1.DependencyInsertingArguments(predecessorId, successorId, type);\r\n this.modelManipulator.dispatcher.notifyDependencyInserting(args);\r\n if (args.cancel)\r\n return false;\r\n predecessorId = args.predecessorId;\r\n successorId = args.successorId;\r\n type = args.type;\r\n this.control.history.beginTransaction();\r\n this.history.addAndRedo(new TaskDependencyHistoryItem_1.InsertDependencyHistoryItem(this.modelManipulator, predecessorId, successorId, type));\r\n if (this.control.settings.validation.validateDependencies) {\r\n var predecessorTask = this.control.viewModel.tasks.getItemById(predecessorId);\r\n if (type === Dependency_1.DependencyType.SF || type === Dependency_1.DependencyType.SS)\r\n this.control.validationController.moveStartDependTasks(predecessorId, predecessorTask.start);\r\n else\r\n this.control.validationController.moveEndDependTasks(predecessorId, predecessorTask.end);\r\n }\r\n this.control.history.endTransaction();\r\n return true;\r\n };\r\n CreateDependencyCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowDependencyInsert;\r\n };\r\n return CreateDependencyCommand;\r\n}(DependencyCommandBase));\r\nexports.CreateDependencyCommand = CreateDependencyCommand;\r\nvar RemoveDependencyCommand = (function (_super) {\r\n tslib_1.__extends(RemoveDependencyCommand, _super);\r\n function RemoveDependencyCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RemoveDependencyCommand.prototype.execute = function (id, confirmRequired) {\r\n var _this = this;\r\n if (confirmRequired === void 0) { confirmRequired = true; }\r\n if (confirmRequired) {\r\n this.control.commandManager.showConfirmationDialog.execute(new ConfirmationDialog_1.ConfirmationDialogParameters(ConfirmationDialog_1.ConfirmationType.DependencyDelete, function () { _this.executeInternal(id); }));\r\n return false;\r\n }\r\n return _super.prototype.execute.call(this, id);\r\n };\r\n RemoveDependencyCommand.prototype.executeInternal = function (id) {\r\n id = id || this.control.taskEditController.dependencyId;\r\n if (id != null) {\r\n var dependency = this.control.viewModel.dependencies.items.filter(function (d) { return d.internalId == id; })[0];\r\n if (dependency) {\r\n var args = new DependencyArguments_1.DependencyRemovingArguments(dependency);\r\n this.modelManipulator.dispatcher.notifyDependencyRemoving(args);\r\n if (!args.cancel) {\r\n this.history.addAndRedo(new TaskDependencyHistoryItem_1.RemoveDependencyHistoryItem(this.modelManipulator, id));\r\n if (id === this.control.taskEditController.dependencyId)\r\n this.control.taskEditController.selectDependency(null);\r\n this.control.barManager.updateItemsState([]);\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n RemoveDependencyCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowDependencyDelete;\r\n };\r\n RemoveDependencyCommand.prototype.getState = function () {\r\n var state = _super.prototype.getState.call(this);\r\n state.visible = state.enabled && this.control.taskEditController.dependencyId != null;\r\n return state;\r\n };\r\n return RemoveDependencyCommand;\r\n}(DependencyCommandBase));\r\nexports.RemoveDependencyCommand = RemoveDependencyCommand;\r\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DependencyRemovingArguments = exports.DependencyInsertingArguments = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar BaseArguments_1 = __webpack_require__(20);\r\nvar DependencyInsertingArguments = (function (_super) {\r\n tslib_1.__extends(DependencyInsertingArguments, _super);\r\n function DependencyInsertingArguments(predecessorId, successorId, type) {\r\n var _this = _super.call(this, null) || this;\r\n _this.values = {\r\n predecessorId: predecessorId,\r\n successorId: successorId,\r\n type: type\r\n };\r\n return _this;\r\n }\r\n Object.defineProperty(DependencyInsertingArguments.prototype, \"predecessorId\", {\r\n get: function () { return this.values.predecessorId; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DependencyInsertingArguments.prototype, \"successorId\", {\r\n get: function () { return this.values.successorId; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DependencyInsertingArguments.prototype, \"type\", {\r\n get: function () { return this.values.type; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return DependencyInsertingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.DependencyInsertingArguments = DependencyInsertingArguments;\r\nvar DependencyRemovingArguments = (function (_super) {\r\n tslib_1.__extends(DependencyRemovingArguments, _super);\r\n function DependencyRemovingArguments(dependency) {\r\n var _this = _super.call(this, dependency.id) || this;\r\n _this.values = dependency;\r\n return _this;\r\n }\r\n return DependencyRemovingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.DependencyRemovingArguments = DependencyRemovingArguments;\r\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeassignResourceCommand = exports.AssignResourceCommand = exports.RemoveResourceCommand = exports.CreateResourceCommand = exports.ResourceCommandBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar ResourceHistoryItem_1 = __webpack_require__(22);\r\nvar ResourceArguments_1 = __webpack_require__(112);\r\nvar AssignmentArguments_1 = __webpack_require__(32);\r\nvar ResourceCommandBase = (function (_super) {\r\n tslib_1.__extends(ResourceCommandBase, _super);\r\n function ResourceCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourceCommandBase.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n return ResourceCommandBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.ResourceCommandBase = ResourceCommandBase;\r\nvar CreateResourceCommand = (function (_super) {\r\n tslib_1.__extends(CreateResourceCommand, _super);\r\n function CreateResourceCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CreateResourceCommand.prototype.execute = function (text, color, callback) {\r\n if (color === void 0) { color = \"\"; }\r\n return _super.prototype.execute.call(this, text, color, callback);\r\n };\r\n CreateResourceCommand.prototype.executeInternal = function (text, color, callback) {\r\n if (color === void 0) { color = \"\"; }\r\n var args = new ResourceArguments_1.ResourceInsertingArguments(text, color);\r\n this.modelManipulator.dispatcher.notifyResourceCreating(args);\r\n if (!args.cancel)\r\n this.history.addAndRedo(new ResourceHistoryItem_1.CreateResourceHistoryItem(this.modelManipulator, args.text, args.color, callback));\r\n return !args.cancel;\r\n };\r\n CreateResourceCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowResourceInsert;\r\n };\r\n return CreateResourceCommand;\r\n}(ResourceCommandBase));\r\nexports.CreateResourceCommand = CreateResourceCommand;\r\nvar RemoveResourceCommand = (function (_super) {\r\n tslib_1.__extends(RemoveResourceCommand, _super);\r\n function RemoveResourceCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RemoveResourceCommand.prototype.execute = function (id) {\r\n return _super.prototype.execute.call(this, id);\r\n };\r\n RemoveResourceCommand.prototype.executeInternal = function (id) {\r\n var _this = this;\r\n var resource = this.control.viewModel.resources.items.filter(function (r) { return r.internalId == id; })[0];\r\n if (resource) {\r\n var args = new ResourceArguments_1.ResourceRemovingArguments(resource);\r\n this.modelManipulator.dispatcher.notifyResourceRemoving(args);\r\n if (!args.cancel) {\r\n var removeResourceHistoryItem_1 = new ResourceHistoryItem_1.RemoveResourceHistoryItem(this.modelManipulator, id);\r\n var assignments = this.control.viewModel.assignments.items.filter(function (a) { return a.resourceId == id; });\r\n assignments.forEach(function (a) {\r\n if (_this.modelManipulator.dispatcher.fireResourceUnassigning(a))\r\n removeResourceHistoryItem_1.add(new ResourceHistoryItem_1.DeassignResourceHistoryItem(_this.modelManipulator, a.internalId));\r\n });\r\n this.history.addAndRedo(removeResourceHistoryItem_1);\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n RemoveResourceCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowResourceDelete;\r\n };\r\n return RemoveResourceCommand;\r\n}(ResourceCommandBase));\r\nexports.RemoveResourceCommand = RemoveResourceCommand;\r\nvar AssignResourceCommand = (function (_super) {\r\n tslib_1.__extends(AssignResourceCommand, _super);\r\n function AssignResourceCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AssignResourceCommand.prototype.execute = function (resourceId, taskId) {\r\n return _super.prototype.execute.call(this, resourceId, taskId);\r\n };\r\n AssignResourceCommand.prototype.executeInternal = function (resourceId, taskId) {\r\n var assignment = this.control.viewModel.assignments.items.filter(function (r) { return r.resourceId == resourceId && r.taskId == taskId; })[0];\r\n if (!assignment) {\r\n var converter = this.control.viewModel;\r\n var args = new AssignmentArguments_1.ResourceAssigningArguments(converter.convertInternalToPublicKey(\"resource\", resourceId), converter.convertInternalToPublicKey(\"task\", taskId));\r\n this.modelManipulator.dispatcher.notifyResourceAssigning(args);\r\n if (!args.cancel) {\r\n this.history.addAndRedo(new ResourceHistoryItem_1.AssignResourceHistoryItem(this.modelManipulator, converter.convertPublicToInternalKey(\"resource\", args.resourceId), converter.convertPublicToInternalKey(\"task\", args.taskId)));\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n AssignResourceCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowTaskResourceUpdate;\r\n };\r\n return AssignResourceCommand;\r\n}(ResourceCommandBase));\r\nexports.AssignResourceCommand = AssignResourceCommand;\r\nvar DeassignResourceCommand = (function (_super) {\r\n tslib_1.__extends(DeassignResourceCommand, _super);\r\n function DeassignResourceCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DeassignResourceCommand.prototype.execute = function (assignmentId) {\r\n return _super.prototype.execute.call(this, assignmentId);\r\n };\r\n DeassignResourceCommand.prototype.executeInternal = function (assignmentId) {\r\n var assignment = this.control.viewModel.assignments.items.filter(function (r) { return r.internalId == assignmentId; })[0];\r\n if (assignment && this.modelManipulator.dispatcher.fireResourceUnassigning(assignment)) {\r\n this.history.addAndRedo(new ResourceHistoryItem_1.DeassignResourceHistoryItem(this.modelManipulator, assignmentId));\r\n return true;\r\n }\r\n return false;\r\n };\r\n DeassignResourceCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowTaskResourceUpdate;\r\n };\r\n return DeassignResourceCommand;\r\n}(ResourceCommandBase));\r\nexports.DeassignResourceCommand = DeassignResourceCommand;\r\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceRemovingArguments = exports.ResourceInsertingArguments = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar BaseArguments_1 = __webpack_require__(20);\r\nvar ResourceInsertingArguments = (function (_super) {\r\n tslib_1.__extends(ResourceInsertingArguments, _super);\r\n function ResourceInsertingArguments(text, color) {\r\n if (color === void 0) { color = \"\"; }\r\n var _this = _super.call(this, null) || this;\r\n _this.values = {\r\n text: text,\r\n color: color\r\n };\r\n return _this;\r\n }\r\n Object.defineProperty(ResourceInsertingArguments.prototype, \"text\", {\r\n get: function () { return this.values.text; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ResourceInsertingArguments.prototype, \"color\", {\r\n get: function () { return this.values.color; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ResourceInsertingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.ResourceInsertingArguments = ResourceInsertingArguments;\r\nvar ResourceRemovingArguments = (function (_super) {\r\n tslib_1.__extends(ResourceRemovingArguments, _super);\r\n function ResourceRemovingArguments(resource) {\r\n var _this = _super.call(this, resource.id) || this;\r\n _this.values = resource;\r\n return _this;\r\n }\r\n return ResourceRemovingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.ResourceRemovingArguments = ResourceRemovingArguments;\r\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskEditParameters = exports.TaskEditDialogCommand = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DialogBase_1 = __webpack_require__(24);\r\nvar TaskPropertiesHistoryItem_1 = __webpack_require__(25);\r\nvar ResourceCollection_1 = __webpack_require__(26);\r\nvar ResourceHistoryItem_1 = __webpack_require__(22);\r\nvar AssignmentArguments_1 = __webpack_require__(32);\r\nvar TaskEditDialogCommand = (function (_super) {\r\n tslib_1.__extends(TaskEditDialogCommand, _super);\r\n function TaskEditDialogCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskEditDialogCommand.prototype.onBeforeDialogShow = function (params) {\r\n return this.modelManipulator.dispatcher.raiseTaskTaskEditDialogShowing(params, function (args) {\r\n var newValues = args.values;\r\n params.start = newValues.start;\r\n params.end = newValues.end;\r\n params.progress = newValues.progress;\r\n params.title = newValues.title;\r\n params.readOnlyFields = args.readOnlyFields;\r\n params.hiddenFields = args.hiddenFields;\r\n });\r\n };\r\n TaskEditDialogCommand.prototype.applyParameters = function (newParameters, oldParameters) {\r\n this.history.beginTransaction();\r\n var success = this.control.modelManipulator.dispatcher.raiseTaskMultipleUpdating(this.control.viewModel.tasks.getItemById(oldParameters.id), newParameters, function (newValues) {\r\n newParameters.title = newValues.title ? newValues.title : \"\";\r\n newParameters.progress = newValues.progress;\r\n newParameters.start = typeof newValues.start === \"string\" ? new Date(newValues.start) : newValues.start || new Date(0);\r\n newParameters.end = typeof newValues.end === \"string\" ? new Date(newValues.end) : newValues.end || new Date(0);\r\n });\r\n if (success) {\r\n if (newParameters.title !== oldParameters.title)\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskTitleHistoryItem(this.modelManipulator, oldParameters.id, newParameters.title));\r\n if (newParameters.progress !== oldParameters.progress)\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskProgressHistoryItem(this.modelManipulator, oldParameters.id, newParameters.progress));\r\n if (newParameters.end.getTime() < newParameters.start.getTime())\r\n newParameters.end = newParameters.start;\r\n if (newParameters.start !== oldParameters.start) {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(this.modelManipulator, oldParameters.id, newParameters.start));\r\n if (this.control.settings.validation.validateDependencies)\r\n this.control.validationController.moveStartDependTasks(oldParameters.id, oldParameters.start);\r\n }\r\n if (newParameters.end !== oldParameters.end) {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(this.modelManipulator, oldParameters.id, newParameters.end));\r\n if (this.control.settings.validation.validateDependencies)\r\n this.control.validationController.moveEndDependTasks(oldParameters.id, oldParameters.end);\r\n }\r\n }\r\n for (var i = 0; i < newParameters.assigned.length; i++) {\r\n var resource = oldParameters.assigned.getItemById(newParameters.assigned.getItem(i).internalId);\r\n if (!resource) {\r\n var resourceId = newParameters.assigned.getItem(i).internalId;\r\n var taskId = oldParameters.id;\r\n var args = new AssignmentArguments_1.ResourceAssigningArguments(resourceId, taskId);\r\n this.modelManipulator.dispatcher.notifyResourceAssigning(args);\r\n if (!args.cancel)\r\n this.history.addAndRedo(new ResourceHistoryItem_1.AssignResourceHistoryItem(this.modelManipulator, args.resourceId, args.taskId));\r\n }\r\n }\r\n var _loop_1 = function (i) {\r\n var assigned = oldParameters.assigned.getItem(i);\r\n var resource = newParameters.assigned.getItemById(assigned.internalId);\r\n if (!resource) {\r\n var assignment = this_1.control.viewModel.assignments.items.filter(function (assignment) { return assignment.resourceId == assigned.internalId && assignment.taskId == oldParameters.id; })[0];\r\n if (this_1.modelManipulator.dispatcher.fireResourceUnassigning(assignment))\r\n this_1.history.addAndRedo(new ResourceHistoryItem_1.DeassignResourceHistoryItem(this_1.modelManipulator, assignment.internalId));\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < oldParameters.assigned.length; i++) {\r\n _loop_1(i);\r\n }\r\n var updateParents = newParameters.start !== oldParameters.start || newParameters.end !== oldParameters.end || newParameters.progress !== oldParameters.progress || newParameters.title !== oldParameters.title;\r\n if (success && updateParents)\r\n this.validationController.updateParentsIfRequired(oldParameters.id);\r\n this.history.endTransaction();\r\n return false;\r\n };\r\n TaskEditDialogCommand.prototype.createParameters = function (options) {\r\n options = options || this.control.viewModel.tasks.getItemById(this.control.currentSelectedTaskID);\r\n var param = new TaskEditParameters();\r\n param.id = options.internalId;\r\n param.title = options.title;\r\n param.progress = options.progress;\r\n param.start = options.start;\r\n param.end = options.end;\r\n param.assigned = this.control.viewModel.getAssignedResources(options);\r\n param.resources = new ResourceCollection_1.ResourceCollection();\r\n param.resources.addRange(this.control.viewModel.resources.items);\r\n param.showResourcesDialogCommand = this.control.commandManager.showResourcesDialog;\r\n param.showTaskEditDialogCommand = this.control.commandManager.showTaskEditDialog;\r\n param.enableEdit = this.isTaskEditEnabled();\r\n param.enableRangeEdit = this.isTaskRangeEditEnabled(options);\r\n return param;\r\n };\r\n TaskEditDialogCommand.prototype.isTaskEditEnabled = function () {\r\n var settings = this.control.settings;\r\n return settings.editing.enabled && settings.editing.allowTaskUpdate;\r\n };\r\n TaskEditDialogCommand.prototype.isTaskRangeEditEnabled = function (task) {\r\n return !this.control.viewModel.isTaskToCalculateByChildren(task.internalId);\r\n };\r\n TaskEditDialogCommand.prototype.isEnabled = function () {\r\n var gantt = this.control;\r\n var selectedItem = gantt.viewModel.findItem(gantt.currentSelectedTaskID);\r\n return !!selectedItem && selectedItem.selected;\r\n };\r\n TaskEditDialogCommand.prototype.getState = function () {\r\n var state = _super.prototype.getState.call(this);\r\n state.visible = state.visible && !this.control.taskEditController.dependencyId;\r\n return state;\r\n };\r\n TaskEditDialogCommand.prototype.getDialogName = function () {\r\n return \"TaskEdit\";\r\n };\r\n return TaskEditDialogCommand;\r\n}(DialogBase_1.DialogBase));\r\nexports.TaskEditDialogCommand = TaskEditDialogCommand;\r\nvar TaskEditParameters = (function (_super) {\r\n tslib_1.__extends(TaskEditParameters, _super);\r\n function TaskEditParameters() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.enableEdit = true;\r\n _this.enableRangeEdit = true;\r\n _this.hiddenFields = [];\r\n _this.readOnlyFields = [];\r\n return _this;\r\n }\r\n TaskEditParameters.prototype.clone = function () {\r\n var clone = new TaskEditParameters();\r\n clone.id = this.id;\r\n clone.title = this.title;\r\n clone.progress = this.progress;\r\n clone.start = this.start;\r\n clone.end = this.end;\r\n clone.assigned = new ResourceCollection_1.ResourceCollection();\r\n clone.assigned.addRange(this.assigned.items);\r\n clone.resources = new ResourceCollection_1.ResourceCollection();\r\n clone.resources.addRange(this.resources.items);\r\n clone.showResourcesDialogCommand = this.showResourcesDialogCommand;\r\n clone.showTaskEditDialogCommand = this.showTaskEditDialogCommand;\r\n clone.enableEdit = this.enableEdit;\r\n clone.enableRangeEdit = this.enableRangeEdit;\r\n clone.hiddenFields = this.hiddenFields.slice();\r\n clone.readOnlyFields = this.readOnlyFields.slice();\r\n return clone;\r\n };\r\n return TaskEditParameters;\r\n}(DialogBase_1.DialogParametersBase));\r\nexports.TaskEditParameters = TaskEditParameters;\r\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourcesDialogParameters = exports.ResourcesDialogCommand = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DialogBase_1 = __webpack_require__(24);\r\nvar ResourceCollection_1 = __webpack_require__(26);\r\nvar ConfirmationDialog_1 = __webpack_require__(23);\r\nvar ResourcesDialogCommand = (function (_super) {\r\n tslib_1.__extends(ResourcesDialogCommand, _super);\r\n function ResourcesDialogCommand() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.resourcesForDelete = [];\r\n return _this;\r\n }\r\n ResourcesDialogCommand.prototype.applyParameters = function (newParameters, oldParameters) {\r\n this.history.beginTransaction();\r\n for (var i = 0; i < newParameters.resources.length; i++) {\r\n var resource = oldParameters.resources.getItemById(newParameters.resources.getItem(i).internalId);\r\n if (!resource)\r\n this.control.commandManager.createResourceCommand.execute(newParameters.resources.getItem(i).text);\r\n }\r\n for (var i = 0; i < oldParameters.resources.length; i++) {\r\n var resource = newParameters.resources.getItemById(oldParameters.resources.getItem(i).internalId);\r\n if (!resource)\r\n this.resourcesForDelete.push(oldParameters.resources.getItem(i));\r\n }\r\n this.history.endTransaction();\r\n return false;\r\n };\r\n ResourcesDialogCommand.prototype.createParameters = function (callBack) {\r\n this.callBack = callBack;\r\n var param = new ResourcesDialogParameters();\r\n param.resources = new ResourceCollection_1.ResourceCollection();\r\n param.resources.addRange(this.control.viewModel.resources.items);\r\n return param;\r\n };\r\n ResourcesDialogCommand.prototype.afterClosing = function () {\r\n var _this = this;\r\n if (this.resourcesForDelete.length) {\r\n var confirmationDialog = this.control.commandManager.showConfirmationDialog;\r\n var confirmationDialogParameters = new ConfirmationDialog_1.ConfirmationDialogParameters(ConfirmationDialog_1.ConfirmationType.ResourcesDelete, function () {\r\n _this.history.beginTransaction();\r\n for (var i = 0; i < _this.resourcesForDelete.length; i++)\r\n _this.control.commandManager.removeResourceCommand.execute(_this.resourcesForDelete[i].internalId);\r\n _this.history.endTransaction();\r\n });\r\n confirmationDialogParameters.message = this.resourcesForDelete.reduce(function (a, b) { return tslib_1.__spreadArray(tslib_1.__spreadArray([], a), [b.text]); }, []).join(\", \");\r\n if (this.callBack)\r\n confirmationDialog.afterClosing = function () { return _this.callBack(); };\r\n confirmationDialog.execute(confirmationDialogParameters);\r\n }\r\n else if (this.callBack)\r\n this.callBack();\r\n };\r\n ResourcesDialogCommand.prototype.getDialogName = function () {\r\n return \"Resources\";\r\n };\r\n return ResourcesDialogCommand;\r\n}(DialogBase_1.DialogBase));\r\nexports.ResourcesDialogCommand = ResourcesDialogCommand;\r\nvar ResourcesDialogParameters = (function (_super) {\r\n tslib_1.__extends(ResourcesDialogParameters, _super);\r\n function ResourcesDialogParameters() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourcesDialogParameters.prototype.clone = function () {\r\n var clone = new ResourcesDialogParameters();\r\n clone.resources = new ResourceCollection_1.ResourceCollection();\r\n clone.resources.addRange(this.resources.items);\r\n return clone;\r\n };\r\n return ResourcesDialogParameters;\r\n}(DialogBase_1.DialogParametersBase));\r\nexports.ResourcesDialogParameters = ResourcesDialogParameters;\r\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GanttClientCommand = void 0;\r\nvar GanttClientCommand;\r\n(function (GanttClientCommand) {\r\n GanttClientCommand[GanttClientCommand[\"CreateTask\"] = 0] = \"CreateTask\";\r\n GanttClientCommand[GanttClientCommand[\"CreateSubTask\"] = 1] = \"CreateSubTask\";\r\n GanttClientCommand[GanttClientCommand[\"RemoveTask\"] = 2] = \"RemoveTask\";\r\n GanttClientCommand[GanttClientCommand[\"RemoveDependency\"] = 3] = \"RemoveDependency\";\r\n GanttClientCommand[GanttClientCommand[\"TaskInformation\"] = 4] = \"TaskInformation\";\r\n GanttClientCommand[GanttClientCommand[\"TaskAddContextItem\"] = 5] = \"TaskAddContextItem\";\r\n GanttClientCommand[GanttClientCommand[\"Undo\"] = 6] = \"Undo\";\r\n GanttClientCommand[GanttClientCommand[\"Redo\"] = 7] = \"Redo\";\r\n GanttClientCommand[GanttClientCommand[\"ZoomIn\"] = 8] = \"ZoomIn\";\r\n GanttClientCommand[GanttClientCommand[\"ZoomOut\"] = 9] = \"ZoomOut\";\r\n GanttClientCommand[GanttClientCommand[\"FullScreen\"] = 10] = \"FullScreen\";\r\n GanttClientCommand[GanttClientCommand[\"CollapseAll\"] = 11] = \"CollapseAll\";\r\n GanttClientCommand[GanttClientCommand[\"ExpandAll\"] = 12] = \"ExpandAll\";\r\n})(GanttClientCommand = exports.GanttClientCommand || (exports.GanttClientCommand = {}));\r\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RedoCommand = exports.UndoCommand = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar UndoCommand = (function (_super) {\r\n tslib_1.__extends(UndoCommand, _super);\r\n function UndoCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n UndoCommand.prototype.getState = function () {\r\n var state = new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n state.visible = this.control.settings.editing.enabled;\r\n return state;\r\n };\r\n UndoCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n UndoCommand.prototype.executeInternal = function () {\r\n this.history.undo();\r\n return true;\r\n };\r\n UndoCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.history.canUndo();\r\n };\r\n return UndoCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.UndoCommand = UndoCommand;\r\nvar RedoCommand = (function (_super) {\r\n tslib_1.__extends(RedoCommand, _super);\r\n function RedoCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RedoCommand.prototype.getState = function () {\r\n var state = new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n state.visible = this.control.settings.editing.enabled;\r\n return state;\r\n };\r\n RedoCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n RedoCommand.prototype.executeInternal = function () {\r\n this.history.redo();\r\n return true;\r\n };\r\n RedoCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.history.canRedo();\r\n };\r\n return RedoCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.RedoCommand = RedoCommand;\r\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ZoomOutCommand = exports.ZoomInCommand = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar ZoomInCommand = (function (_super) {\r\n tslib_1.__extends(ZoomInCommand, _super);\r\n function ZoomInCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ZoomInCommand.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(true);\r\n };\r\n ZoomInCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n ZoomInCommand.prototype.executeInternal = function () {\r\n this.control.zoomIn();\r\n return true;\r\n };\r\n return ZoomInCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.ZoomInCommand = ZoomInCommand;\r\nvar ZoomOutCommand = (function (_super) {\r\n tslib_1.__extends(ZoomOutCommand, _super);\r\n function ZoomOutCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ZoomOutCommand.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(true);\r\n };\r\n ZoomOutCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n ZoomOutCommand.prototype.executeInternal = function () {\r\n this.control.zoomOut();\r\n return true;\r\n };\r\n return ZoomOutCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.ZoomOutCommand = ZoomOutCommand;\r\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ToggleFullScreenCommand = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar ToggleFullScreenCommand = (function (_super) {\r\n tslib_1.__extends(ToggleFullScreenCommand, _super);\r\n function ToggleFullScreenCommand() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.isInFullScreenMode = false;\r\n _this.fullScreenTempVars = {};\r\n return _this;\r\n }\r\n ToggleFullScreenCommand.prototype.getState = function () {\r\n var state = new CommandBase_1.SimpleCommandState(true);\r\n state.value = this.control.fullScreenModeHelper.isInFullScreenMode;\r\n return state;\r\n };\r\n ToggleFullScreenCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n ToggleFullScreenCommand.prototype.executeInternal = function () {\r\n this.control.fullScreenModeHelper.toggle();\r\n return true;\r\n };\r\n return ToggleFullScreenCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.ToggleFullScreenCommand = ToggleFullScreenCommand;\r\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ExpandAllCommand = exports.CollapseAllCommand = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar CollapseAllCommand = (function (_super) {\r\n tslib_1.__extends(CollapseAllCommand, _super);\r\n function CollapseAllCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CollapseAllCommand.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n CollapseAllCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n CollapseAllCommand.prototype.executeInternal = function () {\r\n this.control.ganttOwner.collapseAll();\r\n return true;\r\n };\r\n CollapseAllCommand.prototype.isEnabled = function () {\r\n return true;\r\n };\r\n return CollapseAllCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.CollapseAllCommand = CollapseAllCommand;\r\nvar ExpandAllCommand = (function (_super) {\r\n tslib_1.__extends(ExpandAllCommand, _super);\r\n function ExpandAllCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ExpandAllCommand.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n ExpandAllCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n ExpandAllCommand.prototype.executeInternal = function () {\r\n this.control.ganttOwner.expandAll();\r\n return true;\r\n };\r\n ExpandAllCommand.prototype.isEnabled = function () {\r\n return true;\r\n };\r\n return ExpandAllCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.ExpandAllCommand = ExpandAllCommand;\r\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceColorCommand = exports.ResourcePropertyCommandBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar ResourcePropertiesHistoryItem_1 = __webpack_require__(121);\r\nvar ResourcePropertyCommandBase = (function (_super) {\r\n tslib_1.__extends(ResourcePropertyCommandBase, _super);\r\n function ResourcePropertyCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourcePropertyCommandBase.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n ResourcePropertyCommandBase.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowResourceUpdate;\r\n };\r\n return ResourcePropertyCommandBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.ResourcePropertyCommandBase = ResourcePropertyCommandBase;\r\nvar ResourceColorCommand = (function (_super) {\r\n tslib_1.__extends(ResourceColorCommand, _super);\r\n function ResourceColorCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourceColorCommand.prototype.execute = function (id, value) {\r\n return _super.prototype.execute.call(this, id, value);\r\n };\r\n ResourceColorCommand.prototype.executeInternal = function (id, value) {\r\n var oldColor = this.control.viewModel.resources.getItemById(id).color;\r\n if (oldColor == value)\r\n return false;\r\n this.history.addAndRedo(new ResourcePropertiesHistoryItem_1.ResourceColorHistoryItem(this.modelManipulator, id, value));\r\n return true;\r\n };\r\n return ResourceColorCommand;\r\n}(ResourcePropertyCommandBase));\r\nexports.ResourceColorCommand = ResourceColorCommand;\r\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceColorHistoryItem = exports.ResourcePropertiesHistoryItemBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(12);\r\nvar ResourcePropertiesHistoryItemBase = (function (_super) {\r\n tslib_1.__extends(ResourcePropertiesHistoryItemBase, _super);\r\n function ResourcePropertiesHistoryItemBase(modelManipulator, resourceId, newValue) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.resourceId = resourceId;\r\n _this.newValue = newValue;\r\n return _this;\r\n }\r\n ResourcePropertiesHistoryItemBase.prototype.redo = function () {\r\n this.oldState = this.getPropertiesManipulator().setValue(this.resourceId, this.newValue);\r\n };\r\n ResourcePropertiesHistoryItemBase.prototype.undo = function () {\r\n this.getPropertiesManipulator().restoreValue(this.oldState);\r\n };\r\n ResourcePropertiesHistoryItemBase.prototype.getPropertiesManipulator = function () {\r\n throw new Error(\"Not Implemented\");\r\n };\r\n return ResourcePropertiesHistoryItemBase;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ResourcePropertiesHistoryItemBase = ResourcePropertiesHistoryItemBase;\r\nvar ResourceColorHistoryItem = (function (_super) {\r\n tslib_1.__extends(ResourceColorHistoryItem, _super);\r\n function ResourceColorHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourceColorHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.resource.properties.color;\r\n };\r\n return ResourceColorHistoryItem;\r\n}(ResourcePropertiesHistoryItemBase));\r\nexports.ResourceColorHistoryItem = ResourceColorHistoryItem;\r\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BarManager = void 0;\r\nvar BarManager = (function () {\r\n function BarManager(control, bars) {\r\n this.control = control;\r\n this.bars = bars;\r\n }\r\n BarManager.prototype.updateContextMenu = function () {\r\n for (var i = 0, bar = void 0; bar = this.bars[i]; i++)\r\n if (bar.isContextMenu()) {\r\n bar.updateItemsList();\r\n var commandKeys = bar.getCommandKeys();\r\n for (var j = 0; j < commandKeys.length; j++)\r\n this.updateBarItem(bar, commandKeys[j]);\r\n }\r\n };\r\n BarManager.prototype.updateItemsState = function (queryCommands) {\r\n var anyQuerySended = !!queryCommands.length;\r\n var _loop_1 = function (i, bar) {\r\n if (bar.isVisible()) {\r\n var commandKeys_1 = bar.getCommandKeys();\r\n var _loop_2 = function (j) {\r\n if (anyQuerySended && !queryCommands.filter(function (q) { return q == commandKeys_1[j]; }).length)\r\n return \"continue\";\r\n this_1.updateBarItem(bar, commandKeys_1[j]);\r\n };\r\n for (var j = 0; j < commandKeys_1.length; j++) {\r\n _loop_2(j);\r\n }\r\n bar.completeUpdate();\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = 0, bar = void 0; bar = this.bars[i]; i++) {\r\n _loop_1(i, bar);\r\n }\r\n };\r\n BarManager.prototype.updateBarItem = function (bar, commandKey) {\r\n var command = this.control.commandManager.getCommand(commandKey);\r\n if (command) {\r\n var commandState = command.getState();\r\n bar.setItemVisible(commandKey, commandState.visible);\r\n if (commandState.visible) {\r\n bar.setItemEnabled(commandKey, commandState.enabled);\r\n bar.setItemValue(commandKey, commandState.value);\r\n }\r\n }\r\n };\r\n return BarManager;\r\n}());\r\nexports.BarManager = BarManager;\r\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ValidationController = exports.ValidationError = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar Dependency_1 = __webpack_require__(11);\r\nvar TaskPropertiesHistoryItem_1 = __webpack_require__(25);\r\nvar DateRange_1 = __webpack_require__(9);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar common_1 = __webpack_require__(1);\r\nvar ValidationError = (function () {\r\n function ValidationError(dependencyId, critical) {\r\n if (critical === void 0) { critical = false; }\r\n this.dependencyId = dependencyId;\r\n this.critical = critical;\r\n }\r\n return ValidationError;\r\n}());\r\nexports.ValidationError = ValidationError;\r\nvar ValidationController = (function () {\r\n function ValidationController(gantt) {\r\n this.lockPredecessorToSuccessor = true;\r\n this.gantt = gantt;\r\n }\r\n Object.defineProperty(ValidationController.prototype, \"viewModel\", {\r\n get: function () {\r\n return this.gantt.viewModel;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValidationController.prototype, \"history\", {\r\n get: function () {\r\n return this.gantt.history;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValidationController.prototype, \"enablePredecessorGap\", {\r\n get: function () {\r\n return this.viewModel.enablePredecessorGap;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ValidationController.prototype.checkStartDependencies = function (taskId, date) {\r\n var _this = this;\r\n var result = [];\r\n var task = this.gantt.viewModel.tasks.getItemById(taskId);\r\n var dependencies = this.viewModel.dependencies.items.filter(function (d) { return d.successorId === taskId; });\r\n dependencies.forEach(function (dep) {\r\n var predecessorTask = _this.gantt.viewModel.tasks.getItemById(dep.predecessorId);\r\n if (dep.type === Dependency_1.DependencyType.FS && predecessorTask.end > date\r\n || dep.type === Dependency_1.DependencyType.SS && predecessorTask.start > date)\r\n result.push(new ValidationError(dep.internalId, true));\r\n if (dep.type === Dependency_1.DependencyType.FS && predecessorTask.end.valueOf() === task.start.valueOf() && date > predecessorTask.end ||\r\n dep.type === Dependency_1.DependencyType.SS && predecessorTask.start.valueOf() === task.start.valueOf() && date > predecessorTask.start)\r\n result.push(new ValidationError(dep.internalId));\r\n });\r\n return result;\r\n };\r\n ValidationController.prototype.checkEndDependencies = function (taskId, date) {\r\n var _this = this;\r\n var result = [];\r\n var task = this.gantt.viewModel.tasks.getItemById(taskId);\r\n var dependencies = this.viewModel.dependencies.items.filter(function (d) { return d.successorId === taskId; });\r\n dependencies.forEach(function (dep) {\r\n var predecessorTask = _this.gantt.viewModel.tasks.getItemById(dep.predecessorId);\r\n if (dep.type === Dependency_1.DependencyType.SF && predecessorTask.start > date\r\n || dep.type === Dependency_1.DependencyType.FF && predecessorTask.end > date)\r\n result.push(new ValidationError(dep.internalId, true));\r\n if ((dep.type === Dependency_1.DependencyType.SF && predecessorTask.start.valueOf() === task.end.valueOf() && date > predecessorTask.start) ||\r\n (dep.type === Dependency_1.DependencyType.FF && predecessorTask.end.valueOf() === task.end.valueOf() && date > predecessorTask.end))\r\n result.push(new ValidationError(dep.internalId));\r\n });\r\n return result;\r\n };\r\n ValidationController.prototype.moveEndDependTasks = function (predecessorTaskId, predecessorPreviousEndDate, isAfterCorrectParents) {\r\n var _this = this;\r\n if (isAfterCorrectParents === void 0) { isAfterCorrectParents = false; }\r\n var dependencies = this.viewModel.dependencies.items.filter(function (d) { return d.predecessorId === predecessorTaskId && !d.isStartDependency; });\r\n var predecessorTask = this.gantt.viewModel.tasks.getItemById(predecessorTaskId);\r\n dependencies.forEach(function (dependency) {\r\n var successorTask = _this.gantt.viewModel.tasks.getItemById(dependency.successorId);\r\n var isMoveNotRequired = !successorTask || (isAfterCorrectParents && predecessorTask.parentId === successorTask.parentId) || (successorTask.parentId == predecessorTask.id);\r\n if (isMoveNotRequired)\r\n return;\r\n var successorRangeBeforeMove = new DateRange_1.DateRange(new Date(successorTask.start.getTime()), new Date(successorTask.end.getTime()));\r\n var validTaskRange = new DateRange_1.DateRange(new Date(successorTask.start.getTime()), new Date(successorTask.end.getTime()));\r\n var delta = predecessorTask.end.getTime() - predecessorPreviousEndDate.getTime();\r\n var predecessorEnd = _this.enablePredecessorGap ? predecessorTask.end : predecessorPreviousEndDate;\r\n if (dependency.type === Dependency_1.DependencyType.FS\r\n && (successorTask.start < predecessorEnd\r\n || (_this.lockPredecessorToSuccessor && successorTask.start.getTime() === predecessorPreviousEndDate.getTime()))) {\r\n validTaskRange.start.setTime(predecessorTask.end.getTime());\r\n validTaskRange.end.setTime(validTaskRange.start.getTime() + (successorTask.end.getTime() - successorTask.start.getTime()));\r\n _this.correctMoving(successorTask.internalId, validTaskRange);\r\n }\r\n else if (dependency.type === Dependency_1.DependencyType.FF\r\n && (successorTask.end < predecessorEnd\r\n || (_this.lockPredecessorToSuccessor && successorTask.end.getTime() === predecessorPreviousEndDate.getTime()))) {\r\n validTaskRange.start.setTime(predecessorTask.end.getTime() - (successorTask.end.getTime() - successorTask.start.getTime()));\r\n validTaskRange.end.setTime(predecessorTask.end.getTime());\r\n _this.correctMoving(successorTask.internalId, validTaskRange);\r\n }\r\n else if (!_this.enablePredecessorGap) {\r\n validTaskRange.start.setTime(successorTask.start.getTime() + delta);\r\n validTaskRange.end.setTime(successorTask.end.getTime() + delta);\r\n }\r\n if (!successorRangeBeforeMove.equal(validTaskRange)) {\r\n _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskMoveHistoryItem(_this.gantt.modelManipulator, dependency.successorId, validTaskRange));\r\n _this.moveRelatedTasks(dependency, successorRangeBeforeMove, successorTask, validTaskRange);\r\n }\r\n });\r\n };\r\n ValidationController.prototype.moveStartDependTasks = function (predecessorTaskId, predecessorPreviousStartDate, isAfterCorrectParents) {\r\n var _this = this;\r\n if (isAfterCorrectParents === void 0) { isAfterCorrectParents = false; }\r\n var dependencies = this.viewModel.dependencies.items.filter(function (d) { return d.predecessorId === predecessorTaskId && d.isStartDependency; });\r\n var predecessorTask = this.gantt.viewModel.tasks.getItemById(predecessorTaskId);\r\n dependencies.forEach(function (dependency) {\r\n var successorTask = _this.gantt.viewModel.tasks.getItemById(dependency.successorId);\r\n var isMoveNotRequired = !successorTask || (isAfterCorrectParents && predecessorTask.parentId === successorTask.parentId) || (successorTask.parentId == predecessorTask.id);\r\n if (isMoveNotRequired)\r\n return;\r\n var successorRangeBeforeMove = new DateRange_1.DateRange(new Date(successorTask.start.getTime()), new Date(successorTask.end.getTime()));\r\n var validTaskRange = new DateRange_1.DateRange(new Date(successorTask.start.getTime()), new Date(successorTask.end.getTime()));\r\n var delta = predecessorTask.start.getTime() - predecessorPreviousStartDate.getTime();\r\n var predecessorStart = _this.enablePredecessorGap ? predecessorTask.start : predecessorPreviousStartDate;\r\n if (dependency.type === Dependency_1.DependencyType.SF\r\n && (successorTask.end < predecessorStart\r\n || (_this.lockPredecessorToSuccessor && successorTask.end.getTime() === predecessorPreviousStartDate.getTime()))) {\r\n validTaskRange.start.setTime(predecessorTask.start.getTime() - (successorTask.end.getTime() - successorTask.start.getTime()));\r\n validTaskRange.end.setTime(predecessorTask.start.getTime());\r\n _this.correctMoving(successorTask.internalId, validTaskRange);\r\n }\r\n else if (dependency.type === Dependency_1.DependencyType.SS\r\n && (successorTask.start < predecessorStart\r\n || (_this.lockPredecessorToSuccessor && successorTask.start.getTime() === predecessorPreviousStartDate.getTime()))) {\r\n validTaskRange.start.setTime(predecessorTask.start.getTime());\r\n validTaskRange.end.setTime(predecessorTask.start.getTime() + (successorTask.end.getTime() - successorTask.start.getTime()));\r\n _this.correctMoving(successorTask.internalId, validTaskRange);\r\n }\r\n else if (!_this.enablePredecessorGap) {\r\n validTaskRange.start.setTime(successorTask.start.getTime() + delta);\r\n validTaskRange.end.setTime(successorTask.end.getTime() + delta);\r\n }\r\n if (!successorRangeBeforeMove.equal(validTaskRange)) {\r\n _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskMoveHistoryItem(_this.gantt.modelManipulator, dependency.successorId, validTaskRange));\r\n _this.moveRelatedTasks(dependency, successorRangeBeforeMove, successorTask, validTaskRange);\r\n }\r\n });\r\n };\r\n ValidationController.prototype.moveRelatedTasks = function (dependency, successorRangeBeforeMove, successorTask, validTaskRange) {\r\n var delta = validTaskRange.start.getTime() - successorRangeBeforeMove.start.getTime();\r\n this.correctParentsOnChildMoving(successorTask.internalId, delta);\r\n this.moveStartDependTasks(dependency.successorId, successorRangeBeforeMove.start);\r\n this.moveEndDependTasks(dependency.successorId, successorRangeBeforeMove.end);\r\n };\r\n ValidationController.prototype.correctMoving = function (taskId, dateRange) {\r\n var _this = this;\r\n var deltaDate = dateRange.end.getTime() - dateRange.start.getTime();\r\n var validationErrors = tslib_1.__spreadArray(tslib_1.__spreadArray([], this.checkStartDependencies(taskId, dateRange.start)), this.checkEndDependencies(taskId, dateRange.end));\r\n var criticalErrors = validationErrors.filter(function (e) { return e.critical; });\r\n criticalErrors.forEach(function (error) {\r\n var dependency = _this.gantt.viewModel.dependencies.getItemById(error.dependencyId);\r\n var predecessorTask = _this.gantt.viewModel.tasks.getItemById(dependency.predecessorId);\r\n if (dependency.type === Dependency_1.DependencyType.FS)\r\n if (dateRange.start < predecessorTask.end) {\r\n dateRange.start.setTime(predecessorTask.end.getTime());\r\n dateRange.end.setTime(dateRange.start.getTime() + deltaDate);\r\n }\r\n if (dependency.type === Dependency_1.DependencyType.SS)\r\n if (dateRange.start < predecessorTask.start) {\r\n dateRange.start.setTime(predecessorTask.start.getTime());\r\n dateRange.end.setTime(dateRange.start.getTime() + deltaDate);\r\n }\r\n if (dependency.type === Dependency_1.DependencyType.FF)\r\n if (dateRange.end < predecessorTask.end) {\r\n dateRange.end.setTime(predecessorTask.end.getTime());\r\n dateRange.start.setTime(dateRange.end.getTime() - deltaDate);\r\n }\r\n if (dependency.type === Dependency_1.DependencyType.SF)\r\n if (dateRange.end < predecessorTask.start) {\r\n dateRange.end.setTime(predecessorTask.start.getTime());\r\n dateRange.start.setTime(dateRange.end.getTime() - deltaDate);\r\n }\r\n });\r\n return dateRange;\r\n };\r\n ValidationController.prototype.recalculateParents = function (child, calcStepCallback) {\r\n var parent = child && child.parent;\r\n while (parent && parent.task) {\r\n var children = parent.children;\r\n var start = this.gantt.range.end;\r\n var end = this.gantt.range.start;\r\n var progress = 0;\r\n var totalDuration = 0;\r\n var data = { id: parent.task.internalId };\r\n for (var i = 0; i < children.length; i++) {\r\n var childTask = children[i].task;\r\n if (!childTask.isValid())\r\n continue;\r\n start = DateTimeUtils_1.DateTimeUtils.getMinDate(start, childTask.start);\r\n end = DateTimeUtils_1.DateTimeUtils.getMaxDate(end, childTask.end);\r\n var duration = childTask.getDuration();\r\n progress += childTask.progress * duration;\r\n totalDuration += duration;\r\n }\r\n if (!DateTimeUtils_1.DateTimeUtils.areDatesEqual(parent.task.start, start))\r\n data[\"start\"] = start;\r\n if (!DateTimeUtils_1.DateTimeUtils.areDatesEqual(parent.task.end, end))\r\n data[\"end\"] = end;\r\n data[\"oldStart\"] = parent.task.start;\r\n data[\"oldEnd\"] = parent.task.end;\r\n progress = totalDuration > 0 ? Math.round(progress / totalDuration) : 0;\r\n if (progress !== parent.task.progress)\r\n data[\"progress\"] = progress;\r\n calcStepCallback(data);\r\n parent = parent.parent;\r\n }\r\n };\r\n ValidationController.prototype.updateParentsRangeByChild = function (taskId) {\r\n var _this = this;\r\n this.recalculateParents(this.viewModel.findItem(taskId), function (data) {\r\n if (!common_1.isDefined(data.id))\r\n return;\r\n var history = _this.history;\r\n var manipulator = _this.gantt.modelManipulator;\r\n if (common_1.isDefined(data.start)) {\r\n history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(manipulator, data.id, data.start));\r\n _this.moveStartDependTasks(data.id, data.oldStart);\r\n }\r\n if (common_1.isDefined(data.end)) {\r\n history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(manipulator, data.id, data.end));\r\n _this.moveEndDependTasks(data.id, data.oldEnd);\r\n }\r\n if (common_1.isDefined(data.progress))\r\n history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskProgressHistoryItem(manipulator, data.id, data.progress));\r\n });\r\n };\r\n ValidationController.prototype.updateChildRangeByParent = function (parentId, delta, changedTasks) {\r\n var item = this.viewModel.findItem(parentId);\r\n if (!item || item.children.length === 0)\r\n return;\r\n var children = item.children;\r\n for (var i = 0; i < children.length; i++) {\r\n var childTask = children[i].task;\r\n var newStart = new Date(childTask.start.getTime() + delta);\r\n var newEnd = new Date(childTask.end.getTime() + delta);\r\n changedTasks.push({ id: childTask.internalId, start: childTask.start, end: childTask.end });\r\n if (newStart < childTask.end) {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(this.gantt.modelManipulator, childTask.internalId, newStart));\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(this.gantt.modelManipulator, childTask.internalId, newEnd));\r\n }\r\n else {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(this.gantt.modelManipulator, childTask.internalId, newEnd));\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(this.gantt.modelManipulator, childTask.internalId, newStart));\r\n }\r\n this.updateChildRangeByParent(childTask.internalId, delta, changedTasks);\r\n }\r\n };\r\n ValidationController.prototype.updateParentsIfRequired = function (childId) {\r\n if (this._parentAutoCalc) {\r\n this.updateParentsRangeByChild(childId);\r\n this.gantt.updateOwnerInAutoParentMode();\r\n }\r\n };\r\n ValidationController.prototype.correctParentsOnChildMoving = function (taskId, delta) {\r\n var _this = this;\r\n if (this._parentAutoCalc && delta !== 0) {\r\n this.updateParentsRangeByChild(taskId);\r\n var changedTasks = [];\r\n this.updateChildRangeByParent(taskId, delta, changedTasks);\r\n if (this.gantt.settings.validation.validateDependencies)\r\n changedTasks.forEach(function (i) {\r\n _this.moveStartDependTasks(i.id, i.start, true);\r\n _this.moveEndDependTasks(i.id, i.end, true);\r\n });\r\n this.gantt.updateOwnerInAutoParentMode();\r\n }\r\n };\r\n Object.defineProperty(ValidationController.prototype, \"_parentAutoCalc\", {\r\n get: function () {\r\n return this.viewModel.parentAutoCalc;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ValidationController;\r\n}());\r\nexports.ValidationController = ValidationController;\r\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FullScreenModeHelper = void 0;\r\nvar browser_1 = __webpack_require__(5);\r\nvar attr_1 = __webpack_require__(125);\r\nvar dom_1 = __webpack_require__(3);\r\nvar FullScreenModeHelper = (function () {\r\n function FullScreenModeHelper(gantt) {\r\n this._isInFullScreenMode = false;\r\n this.fullScreenTempVars = {};\r\n this.gantt = gantt;\r\n }\r\n Object.defineProperty(FullScreenModeHelper.prototype, \"isInFullScreenMode\", {\r\n get: function () { return this._isInFullScreenMode; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n FullScreenModeHelper.prototype.toggle = function () {\r\n this._isInFullScreenMode = !this._isInFullScreenMode;\r\n if (this._isInFullScreenMode)\r\n this.setFullScreenMode();\r\n else\r\n this.setNormalMode();\r\n return true;\r\n };\r\n FullScreenModeHelper.prototype.setFullScreenMode = function () {\r\n this.prepareFullScreenMode();\r\n this.adjustControlInFullScreenMode();\r\n };\r\n FullScreenModeHelper.prototype.prepareFullScreenMode = function () {\r\n var mainElement = this.getMainElement();\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"border-top-width\", \"0px\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"border-left-width\", \"0px\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"border-right-width\", \"0px\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"border-bottom-width\", \"0px\");\r\n this.fullScreenTempVars.scrollTop = dom_1.DomUtils.getDocumentScrollTop();\r\n this.fullScreenTempVars.scrollLeft = dom_1.DomUtils.getDocumentScrollLeft();\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"background-color\", \"white\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"position\", \"fixed\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"top\", \"0px\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"left\", \"0px\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"z-index\", \"1010\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(document.documentElement, \"position\", \"static\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(document.documentElement, \"overflow\", \"hidden\");\r\n this.fullScreenTempVars.bodyMargin = document.body.style.margin;\r\n document.body.style.margin = \"0\";\r\n this.fullScreenTempVars.width = mainElement.style.width;\r\n this.fullScreenTempVars.height = mainElement.style.height || mainElement.clientHeight;\r\n if (window.self !== window.top)\r\n this.requestFullScreen(document.body);\r\n };\r\n FullScreenModeHelper.prototype.setNormalMode = function () {\r\n this.cancelFullScreen(document);\r\n var mainElement = this.getMainElement();\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"left\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"top\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"background-color\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(document.documentElement, \"overflow\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(document.documentElement, \"position\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"z-index\");\r\n document.body.style.margin = this.fullScreenTempVars.bodyMargin;\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"position\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"border-top-width\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"border-left-width\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"border-right-width\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"border-bottom-width\");\r\n this.setHeight(this.fullScreenTempVars.height);\r\n this.setWidth(this.fullScreenTempVars.width);\r\n document.documentElement.scrollTop = this.fullScreenTempVars.scrollTop;\r\n document.documentElement.scrollLeft = this.fullScreenTempVars.scrollLeft;\r\n this.adjustControl();\r\n };\r\n FullScreenModeHelper.prototype.adjustControlInFullScreenMode = function () {\r\n var documentWidth = document.documentElement.clientWidth == 0 ? document.body.clientWidth : document.documentElement.clientWidth;\r\n var documentHeight = document.documentElement.clientHeight == 0 ? document.body.clientHeight : document.documentElement.clientHeight;\r\n this.setWidth(documentWidth);\r\n this.setHeight(documentHeight);\r\n this.adjustControl();\r\n };\r\n FullScreenModeHelper.prototype.requestFullScreen = function (element) {\r\n if (element.requestFullscreen)\r\n element.requestFullscreen();\r\n else if (element.mozRequestFullScreen)\r\n element.mozRequestFullScreen();\r\n else if (element.webkitRequestFullscreen)\r\n element.webkitRequestFullscreen();\r\n else if (element.msRequestFullscreen)\r\n element.msRequestFullscreen();\r\n };\r\n FullScreenModeHelper.prototype.cancelFullScreen = function (document) {\r\n if (browser_1.Browser.Firefox && !this.getFullScreenElement(document))\r\n return;\r\n if (document.webkitExitFullscreen)\r\n document.webkitExitFullscreen();\r\n else if (document.mozCancelFullScreen)\r\n document.mozCancelFullScreen();\r\n else if (document.msExitFullscreen)\r\n document.msExitFullscreen();\r\n else if (document.exitFullscreen)\r\n document.exitFullscreen();\r\n };\r\n FullScreenModeHelper.prototype.getFullScreenElement = function (document) {\r\n return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;\r\n };\r\n FullScreenModeHelper.prototype.setWidth = function (width) {\r\n var mainElement = this.getMainElement();\r\n mainElement.style.width = this.isNumber(width) ? width + \"px\" : width;\r\n };\r\n FullScreenModeHelper.prototype.setHeight = function (height) {\r\n var mainElement = this.getMainElement();\r\n mainElement.style.height = this.isNumber(height) ? height + \"px\" : height;\r\n };\r\n FullScreenModeHelper.prototype.isNumber = function (str) {\r\n return !isNaN(parseFloat(str)) && isFinite(str);\r\n };\r\n FullScreenModeHelper.prototype.getMainElement = function () {\r\n return this.gantt.getOwnerControlMainElement();\r\n };\r\n FullScreenModeHelper.prototype.adjustControl = function () {\r\n this.gantt.adjustOwnerControl();\r\n };\r\n return FullScreenModeHelper;\r\n}());\r\nexports.FullScreenModeHelper = FullScreenModeHelper;\r\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(5);\r\nvar AttrUtils = (function () {\r\n function AttrUtils() {\r\n }\r\n AttrUtils.setElementAttribute = function (obj, attrName, value) {\r\n if (obj.setAttribute) {\r\n if (browser_1.Browser.IE && browser_1.Browser.MajorVersion >= 11 && attrName.toLowerCase() === 'src')\r\n obj.setAttribute(attrName, '');\r\n obj.setAttribute(attrName, value);\r\n }\r\n };\r\n AttrUtils.setStyleAttribute = function (obj, attrName, value) {\r\n if (obj.setProperty)\r\n obj.setProperty(attrName, value, '');\r\n };\r\n AttrUtils.getElementAttribute = function (obj, attrName) {\r\n return obj.getAttribute(attrName);\r\n };\r\n AttrUtils.getStyleAttribute = function (obj, attrName) {\r\n if (obj.getPropertyValue) {\r\n if (browser_1.Browser.Firefox) {\r\n try {\r\n return obj.getPropertyValue(attrName);\r\n }\r\n catch (e) {\r\n return obj[attrName];\r\n }\r\n }\r\n return obj.getPropertyValue(attrName);\r\n }\r\n return null;\r\n };\r\n AttrUtils.removeElementAttribute = function (obj, attrName) {\r\n if (obj.removeAttribute)\r\n obj.removeAttribute(attrName);\r\n };\r\n AttrUtils.removeStyleAttribute = function (obj, attrName) {\r\n if (obj.removeProperty)\r\n obj.removeProperty(attrName);\r\n };\r\n AttrUtils.changeElementStyleAttribute = function (obj, attrName, newValue) {\r\n AttrUtils.saveStyleAttributeInElement(obj, attrName);\r\n AttrUtils.setStyleAttribute(obj.style, attrName, newValue);\r\n };\r\n AttrUtils.restoreElementStyleAttribute = function (obj, attrName) {\r\n var savedAttrName = \"saved\" + attrName;\r\n var style = obj.style;\r\n if (AttrUtils.isExistsAttributeInElement(obj, savedAttrName)) {\r\n var oldValue = AttrUtils.getElementAttribute(obj, savedAttrName);\r\n if (oldValue === AttrUtils.emptyObject || oldValue === null)\r\n AttrUtils.removeStyleAttribute(style, attrName);\r\n else\r\n AttrUtils.setStyleAttribute(style, attrName, oldValue);\r\n AttrUtils.removeElementAttribute(obj, savedAttrName);\r\n return true;\r\n }\r\n return false;\r\n };\r\n AttrUtils.saveStyleAttributeInElement = function (obj, attrName) {\r\n var savedAttrName = \"saved\" + attrName;\r\n var style = obj.style;\r\n if (!AttrUtils.isExistsAttributeInElement(obj, savedAttrName)) {\r\n var oldValue = AttrUtils.getStyleAttribute(style, attrName);\r\n AttrUtils.setElementAttribute(obj, savedAttrName, AttrUtils.isAttributeExists(oldValue) ? oldValue : AttrUtils.emptyObject);\r\n }\r\n };\r\n AttrUtils.isExistsAttributeInElement = function (obj, attrName) {\r\n var value = AttrUtils.getElementAttribute(obj, attrName);\r\n return AttrUtils.isAttributeExists(value);\r\n };\r\n AttrUtils.isAttributeExists = function (attrValue) {\r\n return attrValue !== null && attrValue !== '';\r\n };\r\n AttrUtils.emptyObject = 'DxEmptyValue';\r\n return AttrUtils;\r\n}());\r\nexports.AttrUtils = AttrUtils;\r\n\n\n/***/ })\n/******/ ]);\n});"],"sourceRoot":""}