{"version":3,"sources":["webpack:///./src/views/DeviceData/WXCW81/WXCW81ProjectView.vue?d509","webpack:///./node_modules/relation-graph/lib/vue2/relation-graph.mjs","webpack:///./src/views/DeviceData/WXCW81/WXCW81ProjectChart.vue?10ed","webpack:///src/views/DeviceData/WXCW81/WXCW81ProjectChart.vue","webpack:///./src/views/DeviceData/WXCW81/WXCW81ProjectChart.vue?8ab6","webpack:///./src/views/DeviceData/WXCW81/WXCW81ProjectChart.vue","webpack:///src/views/DeviceData/WXCW81/WXCW81ProjectView.vue","webpack:///./src/views/DeviceData/WXCW81/WXCW81ProjectView.vue?2eb8","webpack:///./src/views/DeviceData/WXCW81/WXCW81ProjectView.vue","webpack:///./node_modules/highcharts/modules/offline-exporting.js","webpack:///./src/util/highcharts-lang-zh_CN.js","webpack:///./node_modules/screenfull/dist/screenfull.js","webpack:///./node_modules/html2canvas/dist/html2canvas.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticStyle","ref","attrs","options","nodeClick","scopedSlots","_u","key","fn","node","_v","_s","text","id","indexOf","nativeOn","$event","stopPropagation","nodeEdit","_e","nodeAdd","nodeDel","nodeId","gcId","visible2","on","staticClass","$t","proxy","submit2","model2","rules2","model","value","callback","$$v","$set","expression","visible3","submit3","model3","rules3","_l","item","index","sensorName","staticRenderFns","elementStyle","document","createElement","appendChild","createTextNode","head","e","console","error","ae","Object","defineProperty","re","defineProperties","le","getOwnPropertyDescriptors","xt","getOwnPropertySymbols","ce","prototype","hasOwnProperty","he","propertyIsEnumerable","ct","i","t","enumerable","configurable","writable","wt","call","Ct","v","w","Promise","o","n","s","r","l","next","h","a","throw","done","resolve","then","apply","Wt","getElementsByTagName","length","getAttribute","__iconfont__svg__cssinject__","write","d","log","f","c","_","innerHTML","setAttribute","style","position","width","height","overflow","body","firstChild","parentNode","insertBefore","addEventListener","readyState","setTimeout","removeEventListener","attachEvent","documentElement","doScroll","onreadystatechange","window","de","replace","Y","touches","targetTouches","ht","TouchEvent","clientX","clientY","u","relationGraphDebug","ft","classList","contains","parentElement","Lt","R","Number","parseInt","nt","Error","type","isShow","isHide","expanded","junctionPoint","alignItems","selected","flashing","dragging","styleClass","className","targetNodes","targetFrom","targetTo","nodeShape","borderWidth","borderColor","fontColor","color","opacity","fixed","force_weight","x","y","Fx","Fy","offset_x","offset_y","expandHolderPosition","html","disableDefaultClickEffect","disableDrag","singleNode","data","childs","parent","eached","strength","el","offsetWidth","offsetHeight","ue","pt","keys","forEach","includes","fe","json2Node","transNodeToJson","ot","Symbol","toStringTag","from","to","TypeError","textOffset_x","textOffset_y","lineWidth","lineShape","arrow","animation","dashType","showStartArrow","showEndArrow","useTextPath","placeText","forDisplayOnly","fromJunctionPoint","toJunctionPoint","force_elastic","polyLineStartDistance","isHideArrow","hidden","lineDirection","reverseText","_t","relations","push","U","border","ltrb","tb","lr","left","right","top","bottom","me","json2Line","transLinkToJson","g","max_length","max_deep","level","all_size","all_strength","lot","max_strength","analysisNodes","subling","isAllowShowNode","index_of_parent","strength_plus","index_of_level","childs_size","analysisNodes4Didirectional","strengthWithChilds","conductStrengthToParents","analysisDataTree","Math","abs","strengthWithChilds_from","defaultNodeWidth","defaultNodeHeight","getNodeXByCenterX","getNodeYByCenterY","getNodeWidth","getNodeHeight","getCenterXByNodeX","getCenterYByNodeY","B","isRectangleOverlap","p","m","isXOverlap","M","isYOverlap","children","flatNodeData","it","layoutOptions","graphOptions","allLinks","placeNodes","allNodes","rootNode","to_x","getNodeXByLotX","to_y","getNodeYByLotY","from_x","from_y","placed","snapshotBeforeAnimation","currentAnimationStep","allAnimationStep","playAnimation","floor","requestAnimationFrame","bind","Vt","super","levelDistance","levelDistanceArr","split","map","Array","isArray","enableGatherNodes","notLeafNode","placeNodesPosition","useAnimationWhenExpanded","animationLayout","isNaN","centerOffset_x","centerOffset_y","fixedRootNode","getLotXByNodeX","getLotYByNodeY","viewSize","_center_offset_x","_center_offset_y","origin_x","origin_y","placeRelativePosition","min_per_height","max_per_height","min_per_width","max_per_width","round","getLevelDistance","layoutExpansionDirection","gatherNodes","movedNodeSizeBefore","movedNodeSizeAfter","getBloomingNearByParent","ve","sqrt","D","k","O","N","S","P","G","E","I","_case","atan2","getCirclePoint","getRectPoint","getCirclePoint4MultiLine","z","sin","PI","cos","max","canvas_width","node_width","canvas_height","node_height","et","fastStart","maxLayoutTimes","byNode","byLine","force_node_repulsion","force_line_elastic","force_x_coefficient","force_y_coefficient","disableLiveChanges","requireLinks","easyAnalysisNodes","easyPlaceRelativePosition","random","easyPlaceGroupNodes","updateVisibleNodes","isMainLayouer","autoLayouting","autoLayout","canvasSize","getOvalPoint","startAngle","visibleNodes","layoutTimes","viewUpdate","fcalc_x","fcalc_y","fcalc_ing","doForceLayout","instanceDestroyed","prev10","splice","calcNodesPosition","applyToNodePosition","Date","now","justLayoutSingleNode","addGravityByNode","reduce","fromNode","toNode","addElasticByLine","getY","getX","maxVaildLineLength","minVaildLineLength","addFtoNode","zeroEffectNodeDistance","minNodeDistance","lockX","lockY","maxMoveSpeed","jt","distance_coefficient","getLevelDistanceArr","min","getLevelR","Ut","index_of_p_childs","Xt","__origin_nodes","xe","analysisBothWay","sort","filter","layoutName","setLinks","st","at","isNeedShowAutoLayoutButton","allowAutoLayoutIfSupport","layoutDirection","we","createLayout","appendDefaultOptions4Layout","mt","Le","gt","backgroundImage","backgrounImage","backgroundImageNoRepeat","backgrounImageNoRepeat","graphOffset_x","graphOffset_y","defaultPloyLineRadius","defaultPolyLineRadius","instanceId","debug","graphLoading","graphLoadingText","showMaskWhenLayouting","useHorizontalView","oldVueVersion","ovUseNodeSlot","ovUseLineSlot","ovUseToolbarSlot","ovUseNodeExpandHolderSlot","showDebugPanel","backgroundColor","downloadImageFileName","disableZoom","disableDragNode","disableDragLine","moveToCenterWhenRefresh","zoomToFitWhenRefresh","useAnimationWhenRefresh","defaultFocusRootNode","disableNodeClickEffect","disableLineClickEffect","allowShowFullscreenMenu","allowShowZoomMenu","allowShowRefreshButton","allowShowDownloadButton","allowShowMiniToolBar","toolBarVersion","toolBarDirection","toolBarPositionH","toolBarPositionV","allowSwitchLineShape","allowSwitchJunctionPoint","isMoveByParentNode","defaultExpandHolderPosition","defaultExpandHolderColor","defaultNodeBorderWidth","defaultNodeColor","defaultNodeBorderColor","defaultNodeFontColor","defaultLineColor","checkedLineColor","defaultLineFontColor","defaultLineWidth","defaultLineShape","defaultLineTextOffset_x","defaultLineTextOffset_y","defaultNodeShape","defaultShowLineLabel","hideNodeContentByZoom","defaultJunctionPoint","disableDragCanvas","placeSingleNode","placeOtherGroup","lineUseTextPath","lineTextMaxLength","multiLineDistance","viewELSize","viewNVInfo","canvasNVInfo","defaultLineMarker","markerWidth","markerHeight","refX","refY","allowShowMiniView","allowShowSettingPanel","allowShowMiniNameFilter","fullscreen","checkedNodeId","checkedLineId","checkedLinkId","layouts","layoutLabel","layoutClassName","reLayoutWhenExpandedOrCollapsed","layouter","canvasZoom","canvasOpacity","showSingleNode","showNodeLabel","showNodeShortLabel","canvasOffset","zoom_buff_x","zoom_buff_y","creatingSelection","selectionView","creatingNodePlot","showTemplateNode","newNodeTemplate","JSON","parse","stringify","creatingLinePlot","newLineTemplate","newLinkTemplate","toNodeObject","nothing","layout","label","rt","lt","be","newInstanceOptions","createDefaultConfig","applyDefaultOptionsByLayout","Se","listeners","isReact","updateViewHook","Me","$dom","$canvasDom","getBoundingClientRect","Pe","nodes","links","elementLines","graphData","allLineColors","reactiveData","userLayouerClass","_initLayoutByLayoutOptions","clearGraph","loadGraphJsonData","getNodeById","generateNewNodeId","find","seeks_id","seeksNodeIdIndex","appended","getLineArrow","isReverse","lines","warn","loadNodes","loadLines","_dataUpdated","addElementLines","rootId","getGraphJsonOptions","getGraphJsonData","findIndex","getElementById","_updateElementLinePosition","updateElementLines","removeELementLineById","elLineUpdating","_updateElementLines","removeLink","removeNodeById","getLinks","getGroupByNode","_clearItem","removeNodeRef","removeLinkById","getGraphOffet","setCanvasOffset","findGroupNodes","setCanvasCenter","refreshNVAnalysisInfo","NMCanvasCenter","minX","maxX","minY","maxY","getStuffSize","trim","match","atob","Uint8Array","charCodeAt","Blob","clientWidth","clientHeight","loading","querySelectorAll","devicePixelRatio","scrollTo","getComputedStyle","getContext","scale","canvas","logging","useCORS","createImage","T","clearLoading","createGraphCanvas","display","toDataURL","removeChild","onImageDownload","toFixed","onImageSaveAsFile","downloadImageAsFile","dataURLToBlob","navigator","msSaveOrOpenBlob","URL","createObjectURL","click","revokeObjectURL","Ee","path","textPosition","createLinePathByTwoNode","getBorderPoint4MultiLine","getRectJoinPoint","getRectVJoinPoint","getRectHJoinPoint","getRectLeftJoinPoint","getRectRightJoinPoint","getRectTopJoinPoint","getRectBottomJoinPoint","rotate","createReturnValue","_getJunctionPoint","X","C","H","$","A","W","vt","ee","oe","ne","ie","se","j","L","b","tt","createLinePathData","join","calcCurveCenter","getTextAngle","getElementLineById","createLinePath","getLinkByLineId","substring","reverse","String","textOffset","textAnchor","textHPosition","textRotate","Ne","showZoomCenter","buff_x","buff_y","onZoomEnd","zoom","NMCanvasStart","NMZoomCenter","analysisByZoom","NMViewPosition","NMViewCenter","NMCanvasEnd","NMViewBuff","NMCanvasOffsetBuff","NMCanvasSize","zoomCenter_of_newSize","ze","disableNextLayoutAnimation","resetViewSize","doLayout","placeOtherNodes","playShowEffect","moveToCenter","getNodesCenter","animateGoto","zoomToFit","placeSingleNodes","stuffSize","zoomPercent","zoomPercentX","zoomPercentY","animateToZoom","setZoom","animateStepAction","startAutoLayout","stopAutoLayout","stop","J","q","Q","dt","ut","bt","V","onNodeMove","onNodeDragend","preventDefault","message","prevClickTime","onNodeClickWhenCreatingLinePlot","shiftKey","setCheckedNode","onNodeClick","setCheckedLinkAndLine","onLineClick","expandNode","collapseNode","setChildsFromPosition","onNodeExpand","setChildsToPosition","onNodeCollapse","onNodeDragEnd","onCanvasDragEnd","onCanvasClickWhenCreatingLinePlot","onCanvasClick","onCanvasSelectionEnd","addNodes","templateText","templateStyleClass","templateNode","templateMove","onCreateNode","disableClickCreate","getCanvasCoordinateByClientCoordinate","onCreateLine","onCreateLineCallback","template","assign","step1EventTime","movingListener","onMovingWhenCreatingLinePlot","stopCreatingLinePlot","dataset","getLinkById","isNode","target","isLink","onContextmenu","toggle","handleSelect","offsetTop","cancelBubble","deltaY","wheelDelta","startDrag","onLineDragEnd","startCreateSelection","onLineDragStart","hypot","onCanvasDragStop","onNodeDragStart","onNodeDraged","onNodeDragging","setNodePosition","Ge","_setOptions","initLayouter","beforeChangeLayout","refresh","_setJsonData","Yt","Be","props","nodeProps","required","expandButtonClass","expandOrCollapseNode","Function","Te","class","arguments","touchend","Ae","F","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","beforeCreate","concat","exports","kt","Ie","Re","Fe","He","name","components","RGNodeExpandHolder","mustUseProp","default","expanding","inject","computed","$scopedSlots","graph","instance","refreshNodeProperties","$refs","seeksRGNode","remove","methods","relationGraph","updateNodeOffsetSize","We","directives","rawName","showExpandHolder","domProps","onclick","mousedown","_k","keyCode","button","onDragStart","touchstart","borderStyle","nodeWidth","nodeHeight","Ve","St","je","Ue","yt","Xe","link","relation","relationIndex","is_flashing","getArrow","getTextTransform","textTransform","getLineTextStyle","watch","Ye","checked","pathData","stroke","fill","onClick","textStyle","transform","Ze","Mt","Je","qe","Zt","Qe","Ke","pathRef","startOffset","method","spacing","Pt","eo","oo","no","io","RGLineSmart","RGLineTextByPath","linkProps","so","line","ao","Ot","ro","lo","Jt","co","ho","uo","Et","fo","po","qt","_o","createCheckedLinePath","createCheckedLineStrokeWidth","mo","strokeWidth","go","Nt","yo","vo","xo","wo","RGLineChecked","SeeksRGNode","SeeksRGLink","SeeksRGLinePath","init","rgCanvas","setProperty","Co","xmlns","gradientUnits","cx","cy","offset","markerUnits","orient","viewBox","lineIndex","Lo","zt","bo","ko","So","Mo","RelationGraphSingleGraph","setCanvasDom","seeksRGCanvas","onMouseWheel","onCanvasDragStart","Po","contextmenu","wheel","mouseListener","canvasSizeAndPosition","Oo","Eo","No","zo","$o","search_text","showSettingPanel","currentLayoutName","printOptions","printData","enableDebugLog","Do","toggleSettingPanel","enableDevlog","Go","Dt","Bo","To","Ao","Io","viewWidth","viewHeight","Ro","miniViewHeight","Fo","Gt","Ho","Wo","Vo","jo","hits","downloadPanelWidth","onDownloadExcel","switchLayout","toggleAutoLayout","Uo","float","dblclick","setDefaultLineShape","setDefaultJunctionPoint","title","downloadAsImage","Xo","Bt","Yo","Zo","Jo","qo","Qo","clear","Ko","Tt","tn","en","Qt","nn","sn","At","an","rn","ln","It","cn","clickGraphMask","hn","dn","Rt","un","pn","_n","GraphLoading","GraphOperateStuff","GraphMiniToolBar","GraphToolBar","GraphMiniView","RGCanvas","GraphDebugPanel","relationGraphCore","version","startsWith","slice","setReactiveData","setDom","seeksRelationGraph","ready","onFullscreen","off","isFullscreen","setOptions","setJsonData","$nextTick","appendJsonData","setLayouter","focusRootNode","focusNodeById","getNodes","mn","gn","Ft","yn","vn","Kt","te","component","Vue","xn","Gn","install","_m","textAlign","slot","pickerOptions","loadProject","searchRange","exportExcel","projectData","avg_Temperature","last_Temperature","last_Temperature_Time","max_Temperature","max_Temperature_Time","item1","index1","min_Temperature","min_Temperature_Time","exportHighChart","exportOffHighChart","dark","HighchartsHanHua","HighCharts","global","useUTC","currentProject","shortcuts","picker","moment","that","projectId","beginDate","endDate","loadCharts","lang","viewFullscreen","printChart","downloadJPEG","downloadPDF","downloadPNG","downloadSVG","tooltip","formatter","plotOptions","series","turboThreshold","credits","enabled","yAxis","xAxis","lock","spinner","post","responseType","tmploading","downloadElement","mounted","onlyInt","RelationGraph","WXCW81ProjectChart","trigger","sensorId","jsonData","myCompanySensor","docId","catch","getUserSensorList","module","Highcharts","_modules","isSafari","win","webkitURL","dataURLtoBlob","ArrayBuffer","downloadURL","test","userAgent","download","href","open","location","libURL","menuItemDefinitions","textKey","exportChartLocal","K","defaultOptions","doc","addEvent","extend","fireEvent","merge","allowedAttributes","allowedTags","exporting","fallbackToExportServer","exportChart","some","container","isMS","styledMode","inlineWhitelist","getSVGForLocalExport","downloadSVGLocal","filename","getFilename","src","onload","onerror","sanitizeSVG","imageElement","setAttributeNS","unbindGetSVG","chartCopy","cloneNode","getSVGForExport","getAttributeNS","imageToDataUrl","Image","drawImage","loadEventDeferDelay","crossOrigin","domurl","encodeURIComponent","baseVal","jsPDF","textContent","svg2pdf","removeInvalid","output","CanVGRenderer","compose","setElementHTML","MSBlobBuilder","append","getBlob","canvg","Canvg","fromString","start","msToBlob","getScript","svgToDataUrl","svgToPdf","Chart","protocol","contextButtonTitle","decimalPoint","drillUpText","invalidDate","months","noData","numericSymbols","resetZoom","resetZoomTitle","shortMonths","thousandsSep","weekdays","rangeSelectorFrom","rangeSelectorTo","rangeSelectorZoom","zoomIn","zoomOut","canvasToolsURL","VMLRadialGradientURL","dateTimeLabelFormats","millisecond","second","minute","hour","day","week","month","year","url","rangeSelector","inputDateFormat","buttonTheme","fontSize","padding","buttons","count","isCommonjs","val","fnMap","ret","eventNameMap","change","fullscreenchange","fullscreenerror","screenfull","request","element","reject","onFullScreenEntered","returnPromise","requestFullscreen","exit","onFullScreenExit","exitFullscreen","onchange","event","eventName","raw","get","Boolean","fullscreenElement","isEnabled","fullscreenEnabled","factory","extendStatics","setPrototypeOf","__proto__","__extends","__","constructor","create","__assign","__awaiter","thisArg","_arguments","generator","adopt","fulfilled","step","rejected","result","__generator","sent","trys","ops","verb","iterator","op","pop","__spreadArray","pack","ar","Bounds","fromClientRect","context","clientRect","windowBounds","fromDOMRectList","domRectList","domRect","rect","EMPTY","parseBounds","parseDocumentSize","scrollWidth","scrollHeight","toCodePoints$1","str","codePoints","extra","fromCodePoint$1","_i","fromCodePoint","codeUnits","codePoint","fromCharCode","chars$2","lookup$2","i$2","chars$1$1","lookup$1$1","i$1$1","decode$1","base64","encoded1","encoded2","encoded3","encoded4","bufferLength","len","buffer","bytes","polyUint16Array$1","polyUint32Array$1","UTRIE2_SHIFT_2$1","UTRIE2_SHIFT_1$1","UTRIE2_INDEX_SHIFT$1","UTRIE2_SHIFT_1_2$1","UTRIE2_LSCP_INDEX_2_OFFSET$1","UTRIE2_DATA_BLOCK_LENGTH$1","UTRIE2_DATA_MASK$1","UTRIE2_LSCP_INDEX_2_LENGTH$1","UTRIE2_INDEX_2_BMP_LENGTH$1","UTRIE2_UTF8_2B_INDEX_2_OFFSET$1","UTRIE2_UTF8_2B_INDEX_2_LENGTH$1","UTRIE2_INDEX_1_OFFSET$1","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1","UTRIE2_INDEX_2_BLOCK_LENGTH$1","UTRIE2_INDEX_2_MASK$1","slice16$1","view","end","Uint16Array","slice32$1","Uint32Array","createTrieFromBase64$1","_byteLength","view32","view16","headerLength","ceil","Trie$1","Trie","initialValue","errorValue","highStart","highValueIndex","ix","chars$3","lookup$3","i$3","base64$1","LETTER_NUMBER_MODIFIER","BK","CR$1","LF$1","CM","NL","WJ","ZW","GL","SP","ZWJ$1","B2","BA","BB","HY","CB","CL","CP","EX","IN","NS","OP","QU","IS","NU","PO","PR","SY","AI","AL","CJ","EB","EM","H2","H3","HL","ID","JL","JV","JT","RI$1","SA","XX","ea_OP","BREAK_MANDATORY","BREAK_NOT_ALLOWED$1","BREAK_ALLOWED$1","UnicodeTrie$1","ALPHABETICS","HARD_LINE_BREAKS","SPACE$1","PREFIX_POSTFIX","LINE_BREAKS","KOREAN_SYLLABLE_BLOCK","HYPHEN","codePointsToCharacterClasses","lineBreak","types","indices","categories","classType","prev","isAdjacentWithSpaceIgnored","currentIndex","classTypes","current","previousNonSpaceClassType","_lineBreakAtIndex","indicies","forbiddenBreaks","beforeIndex","afterIndex","before","prevIndex","cssFormattedClasses","wordBreak","_a","isLetterNumber","forbiddenBreakpoints","letterNumber","undefined","Break","LineBreaker","lastEnd","nextIndex","FLAG_UNRESTRICTED","FLAG_ID","FLAG_INTEGER","FLAG_NUMBER","LINE_FEED","SOLIDUS","REVERSE_SOLIDUS","CHARACTER_TABULATION","SPACE","QUOTATION_MARK","EQUALS_SIGN","NUMBER_SIGN","DOLLAR_SIGN","PERCENTAGE_SIGN","APOSTROPHE","LEFT_PARENTHESIS","RIGHT_PARENTHESIS","LOW_LINE","HYPHEN_MINUS","EXCLAMATION_MARK","LESS_THAN_SIGN","GREATER_THAN_SIGN","COMMERCIAL_AT","LEFT_SQUARE_BRACKET","RIGHT_SQUARE_BRACKET","CIRCUMFLEX_ACCENT","LEFT_CURLY_BRACKET","QUESTION_MARK","RIGHT_CURLY_BRACKET","VERTICAL_LINE","TILDE","CONTROL","REPLACEMENT_CHARACTER","ASTERISK","PLUS_SIGN","COMMA","COLON","SEMICOLON","FULL_STOP","NULL","BACKSPACE","LINE_TABULATION","SHIFT_OUT","INFORMATION_SEPARATOR_ONE","DELETE","EOF","ZERO","Z","isDigit","isSurrogateCodePoint","isHex","isLowerCaseLetter","isUpperCaseLetter","isLetter","isNonASCIICodePoint","isWhiteSpace","isNameStartCodePoint","isNameCodePoint","isNonPrintableCodePoint","isValidEscape","c1","c2","isIdentifierStart","c3","isNumberStart","stringToNumber","sign","integers","int","fraction","fracd","frac","expsign","exponent","exp","pow","LEFT_PARENTHESIS_TOKEN","RIGHT_PARENTHESIS_TOKEN","COMMA_TOKEN","SUFFIX_MATCH_TOKEN","PREFIX_MATCH_TOKEN","COLUMN_TOKEN","DASH_MATCH_TOKEN","INCLUDE_MATCH_TOKEN","LEFT_CURLY_BRACKET_TOKEN","RIGHT_CURLY_BRACKET_TOKEN","SUBSTRING_MATCH_TOKEN","BAD_URL_TOKEN","BAD_STRING_TOKEN","CDO_TOKEN","CDC_TOKEN","COLON_TOKEN","SEMICOLON_TOKEN","LEFT_SQUARE_BRACKET_TOKEN","RIGHT_SQUARE_BRACKET_TOKEN","WHITESPACE_TOKEN","EOF_TOKEN","Tokenizer","_value","chunk","read","tokens","token","consumeToken","consumeCodePoint","consumeStringToken","peekCodePoint","flags","consumeName","reconsumeCodePoint","consumeNumericToken","e1","e2","e3","consumeIdentLikeToken","a1","a2","a3","u1","u2","consumeUnicodeRangeToken","consumeWhiteSpace","shift","unshift","delta","digits","questionMarks","start_1","digit","endDigits","toLowerCase","consumeUrlToken","stringToken","consumeBadUrlRemnants","consumeEscapedCodePoint","consumeStringSlice","SLICE_STACK_SIZE","amount","endingCodePoint","consumeNumber","repr","number","unit","hex","hexCodePoint","Parser","_tokens","tokenizer","parseValue","parseComponentValue","parseValues","parseComponentValues","SyntaxError","reconsumeToken","consumeComponentValue","values","consumeSimpleBlock","consumeFunction","block","isEndingTokenFor","functionToken","cssFunction","isDimensionToken","isNumberToken","isIdentToken","isStringToken","isIdentWithValue","nonWhiteSpace","nonFunctionArgSeparator","parseFunctionArgs","args","arg","isLength","isLengthPercentage","parseLengthPercentageTuple","ZERO_LENGTH","FIFTY_PERCENT","HUNDRED_PERCENT","getAbsoluteValueForTuple","tuple","getAbsoluteValue","DEG","GRAD","RAD","TURN","angle","_context","isAngle","parseNamedSide","sideOrCorner","ident","deg","color$1","colorFunction","SUPPORTED_COLOR_FUNCTIONS","namedColor","COLORS","toUpperCase","TRANSPARENT","isTransparent","asString","alpha","blue","green","red","getTokenColorValue","rgb","_b","hue2rgb","t1","t2","hue","hsl","saturation","lightness","hsla","rgba","parseColor","ALICEBLUE","ANTIQUEWHITE","AQUA","AQUAMARINE","AZURE","BEIGE","BISQUE","BLACK","BLANCHEDALMOND","BLUE","BLUEVIOLET","BROWN","BURLYWOOD","CADETBLUE","CHARTREUSE","CHOCOLATE","CORAL","CORNFLOWERBLUE","CORNSILK","CRIMSON","CYAN","DARKBLUE","DARKCYAN","DARKGOLDENROD","DARKGRAY","DARKGREEN","DARKGREY","DARKKHAKI","DARKMAGENTA","DARKOLIVEGREEN","DARKORANGE","DARKORCHID","DARKRED","DARKSALMON","DARKSEAGREEN","DARKSLATEBLUE","DARKSLATEGRAY","DARKSLATEGREY","DARKTURQUOISE","DARKVIOLET","DEEPPINK","DEEPSKYBLUE","DIMGRAY","DIMGREY","DODGERBLUE","FIREBRICK","FLORALWHITE","FORESTGREEN","FUCHSIA","GAINSBORO","GHOSTWHITE","GOLD","GOLDENROD","GRAY","GREEN","GREENYELLOW","GREY","HONEYDEW","HOTPINK","INDIANRED","INDIGO","IVORY","KHAKI","LAVENDER","LAVENDERBLUSH","LAWNGREEN","LEMONCHIFFON","LIGHTBLUE","LIGHTCORAL","LIGHTCYAN","LIGHTGOLDENRODYELLOW","LIGHTGRAY","LIGHTGREEN","LIGHTGREY","LIGHTPINK","LIGHTSALMON","LIGHTSEAGREEN","LIGHTSKYBLUE","LIGHTSLATEGRAY","LIGHTSLATEGREY","LIGHTSTEELBLUE","LIGHTYELLOW","LIME","LIMEGREEN","LINEN","MAGENTA","MAROON","MEDIUMAQUAMARINE","MEDIUMBLUE","MEDIUMORCHID","MEDIUMPURPLE","MEDIUMSEAGREEN","MEDIUMSLATEBLUE","MEDIUMSPRINGGREEN","MEDIUMTURQUOISE","MEDIUMVIOLETRED","MIDNIGHTBLUE","MINTCREAM","MISTYROSE","MOCCASIN","NAVAJOWHITE","NAVY","OLDLACE","OLIVE","OLIVEDRAB","ORANGE","ORANGERED","ORCHID","PALEGOLDENROD","PALEGREEN","PALETURQUOISE","PALEVIOLETRED","PAPAYAWHIP","PEACHPUFF","PERU","PINK","PLUM","POWDERBLUE","PURPLE","REBECCAPURPLE","RED","ROSYBROWN","ROYALBLUE","SADDLEBROWN","SALMON","SANDYBROWN","SEAGREEN","SEASHELL","SIENNA","SILVER","SKYBLUE","SLATEBLUE","SLATEGRAY","SLATEGREY","SNOW","SPRINGGREEN","STEELBLUE","TAN","TEAL","THISTLE","TOMATO","TURQUOISE","VIOLET","WHEAT","WHITE","WHITESMOKE","YELLOW","YELLOWGREEN","backgroundClip","prefix","format","parseColorStop","processColorStops","stops","lineLength","first","last","processStops","previous","stop_1","absoluteValue","gapBegin","stop_2","gapLength","beforeGap","gapValue","getAngleFromCorner","corner","centerX","centerY","calculateGradientDirection","radian","halfWidth","halfHeight","halfLineLength","yDiff","xDiff","distance","findCorner","closest","corners","stat","optimumDistance","optimumCorner","Infinity","calculateRadius","gradient","rx","ry","size","shape","linearGradient","angle$1","firstToken","colorStop","prefixLinearGradient","webkitGradient","CLOSEST_SIDE","FARTHEST_SIDE","CLOSEST_CORNER","FARTHEST_CORNER","CIRCLE","ELLIPSE","COVER","CONTAIN","radialGradient","isColorStop","isAtPosition_1","acc","prefixRadialGradient","isLinearGradient","background","isRadialGradient","image","image_1","cache","addImage","imageFunction","SUPPORTED_IMAGE_FUNCTIONS","isSupportedImage","BACKGROUND_SIZE","backgroundOrigin","backgroundPosition","backgroundRepeat","parseBackgroundRepeat","LINE_BREAK","backgroundSize","isBackgroundSizeInfoToken","borderColorForSide","side","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderStyleForSide","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","direction","bit","parseDisplayValue","letterSpacing","WORD_BREAK","STRICT","NORMAL","lineHeight","computeLineHeight","listStyleImage","listStylePosition","listStyleType","marginForSide","marginTop","marginRight","marginBottom","marginLeft","overflowWrap","paddingForSide","paddingTop","paddingRight","paddingBottom","paddingLeft","textShadow","shadow","offsetX","offsetY","blur","transform$1","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix","matrix3d","b1","b2","a4","b4","DEFAULT_VALUE","DEFAULT","transformOrigin","origins","visibility","BREAK_ALL","KEEP_ALL","zIndex","auto","order","time","textDecorationColor","textDecorationLine","fontFamily","accumulator","results","toString","fontWeight","fontVariant","fontStyle","content","counterIncrement","increments","filtered","counter","increment","counterReset","resets","reset","duration","quotes","open_1","close_1","close","getQuote","depth","quote","boxShadow","spread","inset","paintOrder","layers","webkitTextStrokeColor","webkitTextStrokeWidth","CSSParsedDeclaration","declaration","animationDuration","cssFloat","overflowTuple","overflowX","overflowY","textDecoration","isVisible","isTransformed","isPositioned","isPositionedWithZIndex","isFloating","isInlineLevel","CSSParsedPseudoDeclaration","CSSParsedCounterDeclaration","descriptor","parser","length_1","value_1","elementDebuggerAttribute","getElementDebugType","attribute","isDebugging","elementType","ElementContainer","textNodes","elements","styles","isHTMLElementNode","bounds","chars$1","lookup$1","i$1","decode","polyUint16Array","polyUint32Array","UTRIE2_SHIFT_2","UTRIE2_SHIFT_1","UTRIE2_INDEX_SHIFT","UTRIE2_SHIFT_1_2","UTRIE2_LSCP_INDEX_2_OFFSET","UTRIE2_DATA_BLOCK_LENGTH","UTRIE2_DATA_MASK","UTRIE2_LSCP_INDEX_2_LENGTH","UTRIE2_INDEX_2_BMP_LENGTH","UTRIE2_UTF8_2B_INDEX_2_OFFSET","UTRIE2_UTF8_2B_INDEX_2_LENGTH","UTRIE2_INDEX_1_OFFSET","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH","UTRIE2_INDEX_2_BLOCK_LENGTH","UTRIE2_INDEX_2_MASK","slice16","slice32","createTrieFromBase64","chars","lookup","PseudoElementType","Prepend","CR","LF","Control","Extend","SpacingMark","LV","LVT","ZWJ","Extended_Pictographic","RI","toCodePoints","UnicodeTrie","BREAK_NOT_ALLOWED","BREAK_ALLOWED","codePointToClass","_graphemeBreakAtIndex","_codePoints","countRI","GraphemeBreaker","graphemeBreak","splitGraphemes","bk","breaker","graphemes","testRangeBounds","TEST_HEIGHT","createRange","range","testElement","selectNode","rangeBounds","rangeHeight","testIOSLineBreak","wordSpacing","repeat","textList","supports","every","setStart","setEnd","boundAhead","testCORS","testResponseType","XMLHttpRequest","testSVG","img","ctx","isGreenPixel","testForeignObject","fillStyle","fillRect","greenImageSrc","svg","createForeignObjectSVG","loadSerializedSVG$1","getImageData","createElementNS","foreignObject","XMLSerializer","serializeToString","FEATURES","SUPPORT_RANGE_BOUNDS","fetch","Intl","Segmenter","TextBounds","parseTextBounds","breakText","textBounds","clientRects","getClientRects","subSegments","segmentGraphemes","subOffset_1","subSegment","replacementNode","splitText","getWrapperBounds","ownerDocument","wrapper","replaceChild","SUPPORT_NATIVE_TEXT_SEGMENTATION","segmenter","granularity","segment","segmentWords","breakWords","wordSeparators","words","_loop_1","word_1","TextContainer","CAPITALIZE","capitalize","p1","p2","ImageElementContainer","_super","_this","currentSrc","intrinsicWidth","naturalWidth","intrinsicHeight","naturalHeight","CanvasElementContainer","SVGElementContainer","LIElementContainer","OLElementContainer","reversed","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","reformatInputBounds","getInputValue","PASSWORD","placeholder","CHECKBOX","RADIO","INPUT_COLOR","InputElementContainer","input","SelectElementContainer","option","selectedIndex","TextareaElementContainer","IFrameElementContainer","iframe","contentWindow","tree","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","parseNodeTree","root","childNode","nextNode","nextSibling","isTextNode","isElementNode","isSlotElement","assignedNodes","createContainer","createsRealStackingContext","createsStackingContext","tagName","isTextareaElement","isSVGElement","isSelectElement","isImageElement","isCanvasElement","isLIElement","isOLElement","isInputElement","isIFrameElement","isBodyElement","nodeType","Node","TEXT_NODE","ELEMENT_NODE","isSVGElementNode","isHTMLElement","isVideoElement","isStyleElement","isScriptElement","isCustomElement","CounterState","counters","getCounterValue","getCounterValues","canReset","entry","counterNames","ROMAN_UPPER","ARMENIAN","HEBREW","GEORGIAN","createAdditiveCounter","symbols","fallback","suffix","createCounterText","string","integer","createCounterStyleWithSymbolResolver","codePointRangeLength","isNumeric","resolver","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","createCounterStyleFromSymbols","CJK_ZEROS","CJK_TEN_COEFFICIENTS","CJK_TEN_HIGH_COEFFICIENTS","CJK_HUNDRED_COEFFICIENTS","createCJKCounter","numbers","multipliers","negativeSign","tmp","coefficient","CHINESE_INFORMAL_MULTIPLIERS","CHINESE_FORMAL_MULTIPLIERS","JAPANESE_NEGATIVE","KOREAN_NEGATIVE","appendSuffix","defaultSuffix","cjkSuffix","koreanSuffix","spaceSuffix","IGNORE_ATTRIBUTE","DocumentCloner","scrolledElements","referenceElement","quoteDepth","toIFrame","windowSize","createIFrameContainer","scrollX","defaultView","pageXOffset","scrollY","pageYOffset","cloneWindow","documentClone","iframeLoad","iframeLoader","onclone","restoreNodeScroll","logger","clonedReferenceElement","nodeName","fonts","imagesReady","serializeDoctype","doctype","restoreOwnerScroll","adoptNode","createElementClone","createCanvasClone","createVideoClone","createStyleClone","clone","srcset","createCustomElementClone","copyCSSStyles","sheet","cssRules","css","rule","cssText","inlineImages","info","clonedCanvas","clonedCtx","allowTaint","putImageData","gl","attribs","getContextAttributes","preserveDrawingBuffer","video","blankCanvas","appendChildNode","child","copyStyles","hasAttribute","ignoreElements","cloneChildNodes","assignedNode","transitionProperty","styleBefore","styleAfter","createPseudoHideStyles","resolvePseudoContent","BEFORE","after","AFTER","scrollTop","scrollLeft","pseudoElt","anonymousReplacedElement","attr","counterStyle","counterState","counterType","delim","counterStates","counterType_1","separator","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","baseValue","destroy","CORNER","cloneIframeContainer","scrolling","imageReady","complete","all","images","interval","setInterval","childNodes","clearInterval","ignoredStyleProperties","property","getPropertyValue","internalSubset","publicId","systemId","PSEUDO_BEFORE","PSEUDO_AFTER","PSEUDO_HIDE_ELEMENT_STYLE","createStyles","CacheStorage","getOrigin","_link","hostname","port","isSameOrigin","_origin","setContext","Cache","_options","_cache","has","isBlobImage","isRenderable","loadImage","useProxy","isInlineImage","SUPPORT_CORS_IMAGES","SUPPORT_CORS_XHR","isInlineBase64Image","imageTimeout","SUPPORT_RESPONSE_TYPE","xhr","status","response","reader_1","FileReader","readAsDataURL","queryString","timeout_1","timeout","ontimeout","send","INLINE_SVG","INLINE_BASE64","INLINE_IMG","SUPPORT_SVG_DRAWING","isSVG","substr","Vector","deltaX","lerp","BezierCurve","startControl","endControl","subdivide","firstHalf","ab","bc","cd","abbc","bccd","dest","isBezierCurve","BoundCurves","tlh","tlv","trh","trv","brh","brv","_d","blh","blv","factors","maxFactor","topWidth","rightHeight","bottomWidth","leftHeight","topLeftBorderDoubleOuterBox","getCurvePoints","TOP_LEFT","topRightBorderDoubleOuterBox","TOP_RIGHT","bottomRightBorderDoubleOuterBox","BOTTOM_RIGHT","bottomLeftBorderDoubleOuterBox","BOTTOM_LEFT","topLeftBorderDoubleInnerBox","topRightBorderDoubleInnerBox","bottomRightBorderDoubleInnerBox","bottomLeftBorderDoubleInnerBox","topLeftBorderStroke","topRightBorderStroke","bottomRightBorderStroke","bottomLeftBorderStroke","topLeftBorderBox","topRightBorderBox","bottomRightBorderBox","bottomLeftBorderBox","topLeftPaddingBox","topRightPaddingBox","bottomRightPaddingBox","bottomLeftPaddingBox","topLeftContentBox","topRightContentBox","bottomRightContentBox","bottomLeftContentBox","r1","r2","kappa","ox","oy","xm","ym","calculateBorderBoxPath","curves","calculateContentBoxPath","calculatePaddingBoxPath","TransformEffect","ClipEffect","OpacityEffect","isTransformEffect","effect","isClipEffect","isOpacityEffect","equalPath","transformPath","deltaW","deltaH","point","StackingContext","inlineLevel","nonInlineLevel","negativeZIndex","zeroOrAutoZIndexOrTransformedOrOpacity","positiveZIndex","nonPositionedFloats","nonPositionedInlineLevel","ElementPaint","effects","borderBox","paddingBox","getEffects","inFlow","croplessEffects","parseStackTree","stackingContext","realStackingContext","listItems","treatAsRealStackingContext","paintContainer","listOwnerItems","parentStack","stack","order_1","index_1","index_2","processListItems","owner","numbering","listValue","parseStackingContexts","parsePathForBorder","borderSide","createPathFromCurves","parsePathForBorderDoubleOuter","parsePathForBorderDoubleInner","parsePathForBorderStroke","createStrokePathFromCurves","outer1","outer2","inner1","inner2","contentBox","calculateBackgroundPositioningArea","calculateBackgroundPaintingArea","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","sizeWidth","sizeHeight","calculateBackgroundRepeatPath","isAuto","AUTO","hasIntrinsicValue","intrinsicProportion","hasIntrinsicProportion","targetRatio","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","width_1","height_1","width_2","height_2","width_3","height_3","SMALL_IMAGE","SAMPLE_TEXT","FontMetrics","_data","_document","parseMetrics","span","margin","whiteSpace","verticalAlign","baseline","middle","getMetrics","Renderer","MASK_OFFSET","CanvasRenderer","_activeEffects","fontMetrics","translate","textBaseline","applyEffects","popEffect","applyEffect","save","globalAlpha","clip","restore","renderStack","renderStackContent","renderNode","paint","renderNodeBackgroundAndBorders","renderNodeContent","renderTextWithLetterSpacing","fillText","letters","letter","measureText","createFontStyle","variant","fixIOSSystemFonts","renderTextNode","font","paintOrderLayer","textShadows","shadowColor","shadowOffsetX","shadowOffsetY","shadowBlur","strokeStyle","lineJoin","chrome","strokeText","renderReplacedElement","box","iframeRenderer","beginPath","arc","isTextInputElement","canvasTextAlign","_f","_g","_j","_p","mask","paths","moveTo","lineTo","formatPath","closePath","bezierCurveTo","renderRepeat","pattern","resizeImage","renderBackgroundImage","this_1","x0","x1","y0","y1","gradient_1","top_1","radialGradient_1","midX","midY","invF","createPattern","createLinearGradient","addColorStop","createRadialGradient","renderSolidBorder","curvePoints","renderDoubleBorder","outerPaths","innerPaths","hasBackground","borders","borders_1","calculateBackgroundCurvedPaintingArea","borderBoxArea","maskOffset","shadowPaintingArea","renderDashedDottedBorder","strokePaths","boxPaths","startX","startY","endX","endY","dashLength","spaceLength","useLineDash","multiplier","numberOfDashes","minSpace","maxSpace","path1","path2","setLineDash","lineCap","iOSBrokenFonts","fontFamilies","ForeignObjectRenderer","loadSerializedSVG","Logger","getTime","instances","Context","instanceName","instanceCount","html2canvas","renderElement","opts","resourceOptions","contextOptions","windowOptions","foreignObjectRendering","cloneOptions","documentCloner","clonedElement","renderOptions","renderer","_q","_r","windowWidth","innerWidth","windowHeight","innerHeight","parseBackgroundColor","removeContainer","backgroundColorOverride","defaultBackgroundColor"],"mappings":"uHAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,CAAC,KAAO,IAAI,QAAU,OAAO,iBAAiB,WAAW,CAACF,EAAG,MAAM,CAACG,IAAI,SAASD,YAAY,CAAC,OAAS,UAAU,CAACF,EAAG,gBAAgB,CAACG,IAAI,UAAUC,MAAM,CAAC,QAAUR,EAAIS,QAAQ,gBAAgBT,EAAIU,WAAWC,YAAYX,EAAIY,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,SAASP,GAClX,IAAIQ,EAAOR,EAAIQ,KACf,MAAO,CAACX,EAAG,MAAM,CAACE,YAAY,CAAC,OAAS,OAAO,MAAQ,OAAO,QAAU,OAAO,iBAAiB,SAAS,kBAAkB,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,CAAC,KAAO,IAAI,QAAU,OAAO,kBAAkB,SAAS,cAAc,WAAW,CAACN,EAAIgB,GAAGhB,EAAIiB,GAAGF,EAAKG,SAASd,EAAG,MAAM,CAACE,YAAY,CAAC,QAAU,OAAO,kBAAkB,eAAe,mBAAmB,UAAU,EAA2B,GAAzBS,EAAKI,GAAGC,QAAQ,KAAYhB,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,OAAO,OAAS,UAAU,KAAO,iBAAiBa,SAAS,CAAC,UAAY,SAASC,GAAQA,EAAOC,mBAAoB,MAAQ,SAASD,GAAiC,OAAzBA,EAAOC,kBAAyBvB,EAAIwB,SAAST,OAAUf,EAAIyB,MAA+B,GAAzBV,EAAKI,GAAGC,QAAQ,KAAYhB,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,OAAO,OAAS,UAAU,KAAO,gBAAgBa,SAAS,CAAC,UAAY,SAASC,GAAQA,EAAOC,mBAAoB,MAAQ,SAASD,GAAiC,OAAzBA,EAAOC,kBAAyBvB,EAAI0B,QAAQX,OAAUf,EAAIyB,MAA+B,GAAzBV,EAAKI,GAAGC,QAAQ,KAAYhB,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,OAAO,OAAS,SAAS,KAAO,mBAAmBa,SAAS,CAAC,UAAY,SAASC,GAAQA,EAAOC,mBAAoB,MAAQ,SAASD,GAAiC,OAAzBA,EAAOC,kBAAyBvB,EAAI2B,QAAQZ,OAAUf,EAAIyB,MAAM,aAAa,GAAGrB,EAAG,qBAAqB,CAACI,MAAM,CAAC,OAASR,EAAI4B,OAAO,UAAY5B,EAAI6B,QAAQzB,EAAG,YAAY,CAACI,MAAM,CAAC,QAAUR,EAAI8B,SAAS,wBAAuB,EAAM,cAAa,EAAM,MAAQ,OAAOC,GAAG,CAAC,iBAAiB,SAAST,GAAQtB,EAAI8B,SAASR,IAASX,YAAYX,EAAIY,GAAG,CAAC,CAACC,IAAI,QAAQC,GAAG,WAAW,MAAO,CAACV,EAAG,MAAM,CAACE,YAAY,CAAC,gBAAgB,sBAAsB,CAACF,EAAG,IAAI,CAAC4B,YAAY,iBAAiB1B,YAAY,CAAC,MAAQ,aAAaN,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,mBAAmBC,OAAM,GAAM,CAACrB,IAAI,SAASC,GAAG,WAAW,MAAO,CAACV,EAAG,MAAM,CAACE,YAAY,CAAC,QAAU,OAAO,iBAAiB,gBAAgB,CAACF,EAAG,YAAY,CAACE,YAAY,CAAC,cAAc,QAAQE,MAAM,CAAC,KAAO,WAAWuB,GAAG,CAAC,MAAQ/B,EAAImC,UAAU,CAACnC,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,eAAe7B,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,QAAQuB,GAAG,CAAC,MAAQ,SAAST,GAAQtB,EAAI8B,UAAW,KAAS,CAAC9B,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,gBAAgB,KAAKC,OAAM,MAAS,CAAC9B,EAAG,UAAU,CAACG,IAAI,QAAQC,MAAM,CAAC,MAAQR,EAAIoC,OAAO,cAAc,QAAQ,iBAAiB,OAAO,MAAQpC,EAAIqC,SAAS,CAACjC,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIiC,GAAG,aAAa,KAAO,SAAS,CAAC7B,EAAG,WAAW,CAACkC,MAAM,CAACC,MAAOvC,EAAIoC,OAAW,KAAEI,SAAS,SAAUC,GAAMzC,EAAI0C,KAAK1C,EAAIoC,OAAQ,OAAQK,IAAME,WAAW,kBAAkB,IAAI,IAAI,GAAGvC,EAAG,YAAY,CAACI,MAAM,CAAC,QAAUR,EAAI4C,SAAS,wBAAuB,EAAM,cAAa,EAAM,MAAQ,OAAOb,GAAG,CAAC,iBAAiB,SAAST,GAAQtB,EAAI4C,SAAStB,IAASX,YAAYX,EAAIY,GAAG,CAAC,CAACC,IAAI,QAAQC,GAAG,WAAW,MAAO,CAACV,EAAG,MAAM,CAACE,YAAY,CAAC,gBAAgB,sBAAsB,CAACF,EAAG,IAAI,CAAC4B,YAAY,iBAAiB1B,YAAY,CAAC,MAAQ,aAAaN,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,mBAAmBC,OAAM,GAAM,CAACrB,IAAI,SAASC,GAAG,WAAW,MAAO,CAACV,EAAG,MAAM,CAACE,YAAY,CAAC,QAAU,OAAO,iBAAiB,gBAAgB,CAACF,EAAG,YAAY,CAACE,YAAY,CAAC,cAAc,QAAQE,MAAM,CAAC,KAAO,WAAWuB,GAAG,CAAC,MAAQ/B,EAAI6C,UAAU,CAAC7C,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,eAAe7B,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,QAAQuB,GAAG,CAAC,MAAQ,SAAST,GAAQtB,EAAI4C,UAAW,KAAS,CAAC5C,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,gBAAgB,KAAKC,OAAM,MAAS,CAAC9B,EAAG,UAAU,CAACG,IAAI,QAAQC,MAAM,CAAC,MAAQR,EAAI8C,OAAO,cAAc,QAAQ,iBAAiB,OAAO,MAAQ9C,EAAI+C,SAAS,CAAC3C,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIiC,GAAG,aAAa,KAAO,aAAa,CAAC7B,EAAG,YAAY,CAACE,YAAY,CAAC,MAAQ,QAAQE,MAAM,CAAC,YAAcR,EAAIiC,GAAG,aAAaK,MAAM,CAACC,MAAOvC,EAAI8C,OAAe,SAAEN,SAAS,SAAUC,GAAMzC,EAAI0C,KAAK1C,EAAI8C,OAAQ,WAAYL,IAAME,WAAW,oBAAoB3C,EAAIgD,GAAIhD,EAAmB,iBAAE,SAASiD,EAAKC,GAAO,OAAO9C,EAAG,YAAY,CAACS,IAAIqC,EAAM1C,MAAM,CAAC,MAAQyC,EAAKE,WAAW,MAAQF,EAAK9B,SAAQ,IAAI,IAAI,IAAI,IAAI,IAC9rHiC,EAAkB,G,uDCHtB,WAAa,IAAK,IAAIC,EAAeC,SAASC,cAAc,SAAUF,EAAaG,YAAYF,SAASG,eAAe,ygaAA4gaH,SAASI,KAAKF,YAAYH,GAAgB,MAAMM,GAAIC,QAAQC,MAAM,iCAAkCF,KAAvua,GAAiva,IAAIG,EAAKC,OAAOC,eAAgBC,EAAKF,OAAOG,iBACzxaC,EAAKJ,OAAOK,0BACZC,EAAKN,OAAOO,sBACZC,EAAKR,OAAOS,UAAUC,eAAgBC,EAAKX,OAAOS,UAAUG,qBAC5DC,EAAK,CAACjB,EAAGkB,EAAGC,IAAMD,KAAKlB,EAAIG,EAAGH,EAAGkB,EAAG,CAAEE,YAAY,EAAIC,cAAc,EAAIC,UAAU,EAAI1C,MAAOuC,IAAOnB,EAAEkB,GAAKC,EAAGI,EAAK,CAACvB,EAAGkB,KACzH,IAAK,IAAIC,KAAKD,IAAMA,EAAI,IACtBN,EAAGY,KAAKN,EAAGC,IAAMF,EAAGjB,EAAGmB,EAAGD,EAAEC,IAC9B,GAAIT,EACF,IAAK,IAAIS,KAAKT,EAAGQ,GACfH,EAAGS,KAAKN,EAAGC,IAAMF,EAAGjB,EAAGmB,EAAGD,EAAEC,IAChC,OAAOnB,GACNyB,EAAK,CAACzB,EAAGkB,IAAMZ,EAAGN,EAAGQ,EAAGU,IACvBQ,EAAI,CAAC1B,EAAGkB,EAAGC,KAAOF,EAAGjB,EAAe,iBAALkB,EAAgBA,EAAI,GAAKA,EAAGC,GAAIA,GAC/DQ,EAAI,CAAC3B,EAAGkB,EAAGC,IAAM,IAAIS,QAAQ,CAACC,EAAGC,KACnC,IAAIC,EAAKC,IACP,IACEC,EAAEd,EAAEe,KAAKF,IACT,MAAOG,GACPL,EAAEK,KAEHC,EAAKJ,IACN,IACEC,EAAEd,EAAEkB,MAAML,IACV,MAAOG,GACPL,EAAEK,KAEHF,EAAKD,GAAMA,EAAEM,KAAOT,EAAEG,EAAEpD,OAASgD,QAAQW,QAAQP,EAAEpD,OAAO4D,KAAKT,EAAGK,GACrEH,GAAGd,EAAIA,EAAEsB,MAAMzC,EAAGkB,IAAIgB,UAKxB,MAAMQ,EAAK,UACX,SAAU1C,GACR,IAAIkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,EAAI,6soCAA8soCD,GAAKA,EAAIrC,SAASgD,qBAAqB,WAAWX,EAAEY,OAAS,GAAGC,aAAa,kBACrzoC,GAAIb,IAAMhC,EAAE8C,6BAA8B,CACxC9C,EAAE8C,8BAA+B,EACjC,IACEnD,SAASoD,MAAM,oIACf,MAAOC,GACP/C,SAAWA,QAAQgD,IAAID,IAG3B,SAASb,IACPJ,IAAMA,GAAI,EAAIF,KAEhBX,EAAI,WACF,IAAI8B,EAAGE,EAAGC,EAAGC,GACZA,EAAIzD,SAASC,cAAc,QAAQyD,UAAYpB,EAAGA,EAAI,MAAOkB,EAAIC,EAAET,qBAAqB,OAAO,MAAQQ,EAAEG,aAAa,cAAe,QAASH,EAAEI,MAAMC,SAAW,WAAYL,EAAEI,MAAME,MAAQ,EAAGN,EAAEI,MAAMG,OAAS,EAAGP,EAAEI,MAAMI,SAAW,SAAUX,EAAIG,GAAID,EAAIvD,SAASiE,MAAMC,YAAcT,EAAIJ,GAAIG,EAAID,EAAEW,YAAYC,WAAWC,aAAaX,EAAGD,IAAMD,EAAErD,YAAYmD,KACnWrD,SAASqE,kBAAoB,CAAC,WAAY,SAAU,eAAevG,QAAQkC,SAASsE,YAAcC,WAAWhD,EAAG,IAAMC,EAAI,WAC3HxB,SAASwE,oBAAoB,mBAAoBhD,GAAG,GAAKD,KACxDvB,SAASqE,iBAAiB,mBAAoB7C,GAAG,IAAOxB,SAASyE,cAAgBvC,EAAIX,EAAGY,EAAI9B,EAAEL,SAAUoC,GAAI,GAAKK,EAAI,WACtH,IACEN,EAAEuC,gBAAgBC,SAAS,QAC3B,MAAOtB,GACP,YAAYkB,WAAW9B,EAAG,IAE5BD,QACIL,EAAEyC,mBAAqB,WACX,YAAhBzC,EAAEmC,aAA6BnC,EAAEyC,mBAAqB,KAAMpC,QA1BhE,CA4BGqC,QACH,MAAMC,EAAMzE,IAAOA,EAAIA,EAAE0E,QAAQ,IAAK,IAAK1E,EAAIA,EAAE0E,QAAQ,IAAK,IAAK1E,EAAIA,EAAE0E,QAAQ,IAAK,IAAK1E,EAAIA,EAAE0E,QAAQ,IAAK,KAAM1E,GAAI2E,EAAK3E,IAC3H,IACE,GAAI,YAAaA,GAAKA,EAAE4E,SAAW,kBAAmB5E,GAAKA,EAAE6E,cAC3D,OAAO,EACT,MAAO3D,IAET,OAAO,GACN4D,EAAM9E,GAAMA,aAAa+E,WAAa,CACvCC,QAAShF,EAAE4E,QAAQ,GAAGI,QACtBC,QAASjF,EAAE4E,QAAQ,GAAGK,SACpB,CACFD,QAAShF,EAAEgF,QACXC,QAASjF,EAAEiF,SACVC,EAAI,IAAIlF,KACQ,oBAAVwE,QAAyBA,OAAOW,oBAAsBlF,QAAQgD,IAAI,4BAA6BjD,IACrGoF,EAAK,CAACpF,EAAGkB,EAAGC,IAAMnB,EAAIA,EAAEqF,UAAUC,SAASpE,GAAKlB,EAAIA,EAAEqF,UAAUC,SAASnE,GAAK,KAAOiE,EAAGpF,EAAEuF,cAAerE,EAAGC,GAAK,KAAMqE,EAAMxF,GAAM2B,OAAE,EAAQ,MAAM,YACpJ,OAAO,IAAIC,QAAQ,CAACV,EAAGC,KACrB+C,WAAW,KACThD,KACClB,QAEHyF,EAAKzF,GAAkB,iBAALA,EAAgB0F,OAAOC,SAAS3F,GAAKA,EAAG4F,EAAM5F,IAClE,QAAa,IAATA,EAAExC,GACJ,MAAMyC,QAAQgD,IAAI,oBAAqBjD,GAAI,IAAI6F,MAAM,6BACvD,MAAM3E,EAAI,CACR1D,GAAIwC,EAAExC,GACND,UAAiB,IAAXyC,EAAEzC,KAAkByC,EAAEzC,KAAO,GACnCuI,UAAiB,IAAX9F,EAAE8F,KAAkB9F,EAAE8F,KAAO,OACnCC,QAAQ,EACRC,YAAqB,IAAbhG,EAAEgG,QAAoBhG,EAAEgG,OAChCC,cAAyB,IAAfjG,EAAEiG,UAAsBjG,EAAEiG,SACpCC,mBAAmC,IAApBlG,EAAEkG,cAA2BlG,EAAEkG,mBAAgB,EAC9DC,gBAA6B,IAAjBnG,EAAEmG,WAAwBnG,EAAEmG,gBAAa,EACrDC,cAAyB,IAAfpG,EAAEoG,UAAsBpG,EAAEoG,SACpCC,cAAU,EACVC,UAAU,EACVC,gBAA6B,IAAjBvG,EAAEuG,WAAwBvG,EAAEuG,WAAa,GACrDC,eAA2B,IAAhBxG,EAAEwG,UAAuBxG,EAAEwG,UAAY,GAClDC,YAAa,GACbC,WAAY,GACZC,SAAU,GACVC,eAA2B,IAAhB5G,EAAE4G,UAAuB5G,EAAE4G,eAAY,EAClDC,iBAA+B,IAAlB7G,EAAE6G,YAAyB7G,EAAE6G,iBAAc,EACxDC,iBAA+B,IAAlB9G,EAAE8G,YAAyB9G,EAAE8G,iBAAc,EACxDC,eAA2B,IAAhB/G,EAAE+G,UAAuB/G,EAAE+G,eAAY,EAClDC,WAAmB,IAAZhH,EAAEgH,MAAmBhH,EAAEgH,WAAQ,EACtCC,aAAuB,IAAdjH,EAAEiH,QAAqBjH,EAAEiH,QAAU,EAC5CC,WAAmB,IAAZlH,EAAEkH,OAAmBlH,EAAEkH,MAC9BzD,WAAmB,IAAZzD,EAAEyD,MAAmBzD,EAAEyD,WAAQ,EACtCC,YAAqB,IAAb1D,EAAE0D,OAAoB1D,EAAE0D,YAAS,EACzCyD,aAAcnH,EAAEmH,aAChBC,OAAW,IAARpH,EAAEoH,EAAepH,EAAEoH,EAAI,EAC1BC,OAAW,IAARrH,EAAEqH,EAAerH,EAAEqH,EAAI,EAC1BC,GAAI,EACJC,GAAI,EACJC,cAAyB,IAAfxH,EAAEwH,SAAsBxH,EAAEwH,SAAW,EAC/CC,cAAyB,IAAfzH,EAAEyH,SAAsBzH,EAAEyH,SAAW,EAC/CC,0BAAiD,IAA3B1H,EAAE0H,qBAAkC1H,EAAE0H,0BAAuB,EACnFrE,eAA2B,IAAhBrD,EAAEqD,UAAuBrD,EAAEqD,eAAY,EAClDsE,UAAiB,IAAX3H,EAAE2H,KAAkB3H,EAAE2H,UAAO,EACnCC,+BAA2D,IAAhC5H,EAAE4H,0BAAuC5H,EAAE4H,+BAA4B,EAClGC,iBAA+B,IAAlB7H,EAAE6H,aAAyB7H,EAAE6H,YAC1CC,YAAY,EACZC,UAAiB,IAAX/H,EAAE+H,KAAkB/H,EAAE+H,KAAO,GAE9B,IAAQ,CACbC,OAAQ,GACRC,YAAQ,EACRC,QAAQ,EACRC,SAAU,IAJZ,YAKY,IAATjH,EAAEkH,KAAkBlH,EAAEkH,GAAK,CAAEC,YAAa,GAAIC,aAAc,UAAmB,IAAZpH,EAAEuC,QAAqBvC,EAAEkH,GAAGC,YAAcnH,EAAEuC,YAAqB,IAAbvC,EAAEwC,SAAsBxC,EAAEkH,GAAGE,aAAepH,EAAEwC,QAASxC,GAChLqH,EAAK,CACN,KACA,KACA,WACA,KACA,aACA,cACA,WACA,OACA,MACA,YACCC,EAAMxI,IACP,IAAKA,EACH,OACF,MAAMkB,EAAI,GACV,OAAOd,OAAOqI,KAAKzI,GAAG0I,QAASvH,IAC7BoH,EAAGI,SAASxH,SAAe,IAATnB,EAAEmB,KAAkBD,EAAEC,GAAKnB,EAAEmB,MAC7CD,GACH0H,EAAK,CACNC,UAAWjD,EACXkD,gBAAiBN,GAM2BO,GAA3CC,OAAOC,YAA0CjJ,IAClD,QAAe,IAAXA,EAAEkJ,KACJ,MAAMjJ,QAAQgD,IAAI,oCAAqCjD,GAAI,IAAI6F,MAAM,qCACvE,QAAa,IAAT7F,EAAEmJ,GACJ,MAAMlJ,QAAQgD,IAAI,kCAAmCjD,GAAI,IAAI6F,MAAM,mCACrE,GAAqB,iBAAV7F,EAAEkJ,KACX,MAAMjJ,QAAQgD,IAAI,mCAAoCjD,GAAI,IAAIoJ,UAAU,oCAC1E,GAAmB,iBAARpJ,EAAEmJ,GACX,MAAMlJ,QAAQgD,IAAI,iCAAkCjD,GAAI,IAAIoJ,UAAU,kCACxE,MAAMlI,EAAI,CACRgI,KAAMlJ,EAAEkJ,KACRC,GAAInJ,EAAEmJ,GACN5L,UAAiB,IAAXyC,EAAEzC,KAAkByC,EAAEzC,KAAO,GACnC8L,kBAAiC,IAAnBrJ,EAAEqJ,aAA0BrJ,EAAEqJ,kBAAe,EAC3DC,kBAAiC,IAAnBtJ,EAAEsJ,aAA0BtJ,EAAEsJ,kBAAe,EAC3DtC,WAAmB,IAAZhH,EAAEgH,MAAmBhH,EAAEgH,WAAQ,EACtCC,aAAuB,IAAdjH,EAAEiH,QAAqBjH,EAAEiH,QAAU,EAC5CF,eAA2B,IAAhB/G,EAAE+G,UAAuB/G,EAAE+G,eAAY,EAClDwC,eAA2B,IAAhBvJ,EAAEuJ,UAAuBvJ,EAAEuJ,eAAY,EAClDC,eAA2B,IAAhBxJ,EAAEwJ,UAAuBxJ,EAAEwJ,eAAY,EAClDjD,gBAA6B,IAAjBvG,EAAEuG,WAAwBvG,EAAEuG,gBAAa,EACrDC,eAA2B,IAAhBxG,EAAEwG,UAAuBxG,EAAEwG,eAAY,EAClDR,YAAqB,IAAbhG,EAAEgG,QAAoBhG,EAAEgG,OAChCyD,WAAmB,IAAZzJ,EAAEyJ,MAAmBzJ,EAAEyJ,WAAQ,EACtCC,eAA2B,IAAhB1J,EAAE0J,UAAuB1J,EAAE0J,UAAY,EAClDC,cAAyB,IAAf3J,EAAE2J,SAAsB3J,EAAE2J,SAAW,EAC/C/B,+BAA2D,IAAhC5H,EAAE4H,2BAAuC5H,EAAE4H,0BACtEgC,oBAAqC,IAArB5J,EAAE4J,gBAA4B5J,EAAE4J,eAChDC,kBAAiC,IAAnB7J,EAAE6J,cAA0B7J,EAAE6J,aAC5CC,iBAA+B,IAAlB9J,EAAE8J,YAAyB9J,EAAE8J,iBAAc,EACxDC,eAA2B,IAAhB/J,EAAE+J,UAAuB/J,EAAE+J,eAAY,EAClDC,eAAgBhK,EAAEgK,gBAAkBhK,EAAEkJ,OAASlJ,EAAEmJ,GACjDc,kBAAmBjK,EAAEiK,kBACrBC,gBAAiBlK,EAAEkK,gBACnBC,cAAenK,EAAEmK,cACjBC,sBAAuBpK,EAAEoK,sBACzBC,iBAA+B,IAAlBrK,EAAEqK,YAAyBrK,EAAEqK,iBAAc,EACxDC,QAAQ,EACRC,mBAAmC,IAApBvK,EAAEuK,cAA2BvK,EAAEuK,mBAAgB,EAC9DC,iBAA+B,IAAlBxK,EAAEwK,YAAyBxK,EAAEwK,iBAAc,EACxDzC,UAAiB,IAAX/H,EAAE+H,KAAkB/H,EAAE+H,KAAO,IAErC,OAAO7G,EAAEmJ,cAAgBnJ,EAAE2I,cAAe,EAAI3I,EAAEmJ,aAAc,GAAKnJ,IAClEpD,EAAK,CAAC,QAAS,KAAM,cAAe,aAAc2M,EAAK,CAACzK,EAAGkB,MAC3DlB,GAAKA,EAAE0K,UAAUhC,QAASvH,IACzB,MAAMU,EAAI,GACVzB,OAAOqI,KAAKtH,GAAGuH,QAAS5G,IACtBhE,EAAG6K,SAAS7G,SAAe,IAATX,EAAEW,KAAkBD,EAAEC,GAAKX,EAAEW,MAC7CZ,EAAEyJ,KAAK9I,MAEZ+I,EAAI,CACLC,OAAQ,SACRC,KAAM,OACNC,GAAI,KACJC,GAAI,KACJC,KAAM,OACNC,MAAO,QACPC,IAAK,MACLC,OAAQ,UACPC,EAAK,CACNC,UAAWvC,EACXwC,gBAAiBd,GAO2Be,GAA3CxC,OAAOC,YAAwC,CAChD,cAAcjJ,EAAGkB,EAAGC,EAAGU,GACrBX,EAAE0B,OAASf,EAAE4J,aAAe5J,EAAE4J,WAAavK,EAAE0B,QAASzB,EAAIU,EAAE6J,WAAa7J,EAAE6J,SAAWvK,GACtF,MAAMW,EAAI,CACR6J,MAAOxK,EACPyK,SAAU1K,EAAE0B,OACZiJ,aAAc,GAEV,IAAN1K,GAAWD,EAAEwH,QAAStG,IACpBA,EAAE0J,IAAI7D,YAAS,IAEjB,MAAMlG,EAAI,GACVb,EAAEwH,QAAStG,IACTpC,EAAE2K,KAAKvI,GAAIA,EAAEqE,aAAerE,EAAEqE,YAAYiC,QAASzG,IACjDjC,EAAE2I,SAAS1G,KAAOjC,EAAE2K,KAAK1I,GAAIA,EAAE6J,IAAI7D,OAAS7F,EAAGL,EAAE4I,KAAK1I,QAEtDH,EAAE+J,aAAehK,EAAEkK,eAAiBlK,EAAEkK,aAAejK,EAAE+J,cAAe9J,EAAEa,OAAS,GAAK4I,EAAEQ,cAAchM,EAAG+B,EAAGZ,EAAI,EAAGU,IAEzH,4BAA4B7B,EAAGkB,EAAGC,EAAGU,EAAGC,GACtCZ,EAAE0B,OAASf,EAAE4J,aAAe5J,EAAE4J,WAAavK,EAAE0B,QAASzB,EAAIU,EAAE6J,WAAa7J,EAAE6J,SAAWvK,GACtF,MAAMY,EAAI,CACR4J,MAAOxK,EACPyK,SAAU1K,EAAE0B,OACZiJ,aAAc,GACbzJ,EAAI,GACPlB,EAAEwH,QAAS1G,IACTA,EAAE8J,MAAQ9J,EAAE8J,IAAM,CAAE9D,OAAQ,KAAOhG,EAAE8J,IAAI5D,QAAS,EAAIlG,EAAE8J,IAAIG,QAAUlK,EAAGC,EAAE8J,IAAIH,MAAQxK,EAAGnB,EAAE2K,KAAK3I,KAEnG,IAAIC,EAAI,EACRf,EAAEwH,QAAS1G,IACT,IAAIG,EAAI,EACR,GAAU,IAANL,EAAS,CACX,IAAIkB,EAAI,EACRhB,EAAEyE,YAAYiC,QAASxF,IACrBA,EAAE4I,MAAQ5I,EAAE4I,IAAM,CAAE5D,QAAQ,EAAIF,OAAQ,KAAO9E,EAAE4I,IAAI5D,SAAWsD,EAAEU,gBAAgBhJ,IAAMA,EAAE4I,IAAI5D,QAAS,EAAIhF,EAAE4I,IAAI7D,OAASjG,EAAGkB,EAAE4I,IAAIK,gBAAkBnJ,IAAKhB,EAAE8J,IAAI9D,OAAO2C,KAAKzH,GAAId,EAAEuI,KAAKzH,GAAIf,KAAOH,EAAE8J,IAAI9D,OAAO2C,KAAKzH,WAEjN,IAAW,IAAPpB,EAAU,CACnB,IAAIkB,EAAI,EACRhB,EAAE0E,WAAWgC,QAASxF,IACpBA,EAAE4I,MAAQ5I,EAAE4I,IAAM,CAAE5D,QAAQ,EAAIF,OAAQ,KAAO9E,EAAE4I,IAAI5D,SAAWsD,EAAEU,gBAAgBhJ,IAAMA,EAAE4I,IAAI5D,QAAS,EAAIhF,EAAE4I,IAAI7D,OAASjG,EAAGkB,EAAE4I,IAAIK,gBAAkBnJ,IAAKhB,EAAE8J,IAAI9D,OAAO2C,KAAKzH,GAAId,EAAEuI,KAAKzH,GAAIf,KAAOH,EAAE8J,IAAI9D,OAAO2C,KAAKzH,UAEjN,CACL,IAAIF,EAAI,EACRhB,EAAE2E,SAAS+B,QAASxF,IAClBA,EAAE4I,MAAQ5I,EAAE4I,IAAM,CAAE5D,QAAQ,EAAIF,OAAQ,KAAO9E,EAAE4I,IAAI5D,SAAWsD,EAAEU,gBAAgBhJ,IAAMA,EAAE4I,IAAI5D,QAAS,EAAIhF,EAAE4I,IAAI7D,OAASjG,EAAGkB,EAAE4I,IAAIK,gBAAkBnJ,IAAKhB,EAAE8J,IAAI9D,OAAO2C,KAAKzH,GAAId,EAAEuI,KAAKzH,GAAIf,KAAOH,EAAE8J,IAAI9D,OAAO2C,KAAKzH,MAGxNlB,EAAE8J,IAAI3D,SAAWhG,EAAI,EAAIA,EAAI,EAAGJ,EAAE8J,cAAgB7J,EAAE8J,IAAI3D,SAAUnG,EAAE8J,IAAIM,cAAgBrK,EAAE8J,aAAc7J,EAAE8J,IAAIO,eAAiBpK,EAAGD,EAAE8J,IAAIQ,YAAcnK,EAAGF,MACvJF,EAAE8J,aAAehK,EAAEkK,eAAiBlK,EAAEkK,aAAehK,EAAE8J,cAAezJ,EAAEQ,OAAS,EAAI4I,EAAEe,4BAA4BvM,EAAGoC,EAAGjB,IAAY,IAAPW,GAAY,EAAI,GAAID,EAAGC,IAAM9B,EAAE0I,QAAS1G,IACxKA,EAAE8J,IAAIQ,YAAc,IAAMtK,EAAE8J,IAAIU,mBAAqB,KACnDxM,EAAE0I,QAAS1G,IACS,IAAtBA,EAAE8J,IAAIQ,cAAsBtK,EAAE8J,IAAIU,mBAAqB,EAAGhB,EAAEiB,yBAAyBzK,MACnFwJ,EAAEkB,iBAAiB,CAAC1M,EAAE,IAAK,EAAG8B,KAEpC,yBAAyB9B,GACvBA,EAAE8L,IAAI7D,QAAU0E,KAAKC,IAAI5M,EAAE8L,IAAIH,OAAS,IAAMgB,KAAKC,IAAI5M,EAAE8L,IAAI7D,OAAO6D,IAAIH,SAAW3L,EAAE8L,IAAI7D,OAAO6D,IAAIU,oBAAsB,EAAGhB,EAAEiB,yBAAyBzM,EAAE8L,IAAI7D,UAEhK,iBAAiBjI,EAAGkB,EAAGC,QACf,IAANA,IAAiBA,EAAI,GACrB,MAAMU,EAAI,GACV,IAAIC,EAAI,EACR9B,EAAE0I,QAAS3G,KACQ,IAAhBA,EAAE+J,IAAIH,OAAexK,KAAOY,EAAE+J,IAAIH,MAAQ,GAAK,EAAI,MAAQ5J,EAAE+J,IAAIQ,YAAc,GAAKvK,EAAE+J,IAAI9D,OAAOU,QAAStG,IACzGP,EAAE8I,KAAKvI,KACLL,EAAE+J,IAAI7D,QAAUnG,EAAIC,EAAE+J,IAAI7D,OAAO6D,IAAIe,0BAA4B/K,EAAIC,EAAE+J,IAAI7D,OAAO6D,IAAIe,yBAA0B9K,EAAE+J,IAAIe,wBAA0B/K,EAAGA,GAAKC,EAAE+J,IAAIU,sBAChK3K,EAAEe,OAAS,GAAK4I,EAAEkB,iBAAiB7K,EAAGX,EAAIC,EAAGA,IAEnD,gBAAgBnB,EAAGkB,EAAI,GACrB,OAAOA,EAAI,MAAYlB,EAAE8L,MAAQ9L,EAAE8L,IAAI7D,QAAUuD,EAAEU,gBAAgBlM,EAAE8L,IAAI7D,OAAQ/G,EAAI,KAAgC,IAA1BlB,EAAE8L,IAAI7D,OAAOhC,WAAoBjG,EAAE+F,SAAuB,IAAb/F,EAAEgG,QAE5I,aAAahG,EAAGkB,GACd,OAAOlB,EAAEoI,GAAGC,aAAerI,EAAEyD,OAASvC,GAAKA,EAAE4L,kBAAoB,IAEnE,cAAc9M,EAAGkB,GACf,OAAOlB,EAAEoI,GAAGE,cAAgBtI,EAAE0D,QAAUxC,GAAKA,EAAE6L,mBAAqB,IAEtE,eAAe/M,EAAGkB,GAChB,OAAQA,EAAEsG,UAAY,GAAKlL,KAAK0Q,kBAAkBhN,EAAGkB,EAAGA,EAAE4K,IAAI1E,GAAK,IAErE,eAAepH,EAAGkB,GAChB,OAAQA,EAAEuG,UAAY,GAAKnL,KAAK2Q,kBAAkBjN,EAAGkB,EAAGA,EAAE4K,IAAIzE,GAAK,IAErE,kBAAkBrH,EAAGkB,EAAGC,GACtB,MAAwB,UAAjBD,EAAEiF,WAAyBhF,EAAIqK,EAAE0B,aAAahM,EAAGlB,GAAsB,SAAjBkB,EAAEiF,WAAwBhF,EAAIA,EAAIqK,EAAE0B,aAAahM,EAAGlB,GAAK,GAExH,kBAAkBA,EAAGkB,EAAGC,GACtB,MAAwB,QAAjBD,EAAEiF,WAAuBhF,EAAqB,WAAjBD,EAAEiF,WAA0BhF,EAAIqK,EAAE2B,cAAcjM,EAAGlB,GAAKmB,EAAIqK,EAAE2B,cAAcjM,EAAGlB,GAAK,GAE1H,kBAAkBA,EAAGkB,EAAGC,GACtB,OAAOA,EAAIqK,EAAE2B,cAAcjM,EAAGlB,GAAK,GAErC,kBAAkBA,EAAGkB,EAAGC,GACtB,OAAOA,EAAIqK,EAAE2B,cAAcjM,EAAGlB,GAAK,GAErC,eAAeA,EAAGkB,GAChB,MAAMC,EAAID,EAAEsG,UAAY,EACxB,OAAOlL,KAAK8Q,kBAAkBpN,EAAGkB,EAAGA,EAAEkG,GAAK,GAAKjG,GAElD,eAAenB,EAAGkB,GAChB,MAAMC,EAAID,EAAEuG,UAAY,EACxB,OAAOnL,KAAK+Q,kBAAkBrN,EAAGkB,EAAGA,EAAEmG,GAAK,GAAKlG,GAElD,mBAAmBnB,EAAGkB,GACpB,MAAMC,EAAInB,EAAEoH,EAAIkG,EAAGzL,EAAIX,EAAEkG,EAAIkG,EAAGxL,EAAI9B,EAAEoI,GAAGC,YAAkB,EAAJiF,EAAOvL,EAAIb,EAAEkH,GAAGC,YAAkB,EAAJiF,EAAOlL,EAAIpC,EAAEqH,EAAIiG,EAAGrL,EAAIf,EAAEmG,EAAIiG,EAAGtL,EAAIhC,EAAEoI,GAAGE,aAAmB,EAAJgF,EAAOnL,EAAIjB,EAAEkH,GAAGE,aAAmB,EAAJgF,EAC7K,QAASzL,GAAKV,EAAIW,GAAKD,EAAIE,GAAKZ,GAAKc,GAAKG,EAAIJ,GAAKC,EAAIE,GAAKC,IAE9D,WAAWpC,EAAGkB,EAAGC,EAAGU,GAClB,QAASX,GAAKlB,EAAImB,GAAKD,EAAIW,GAAK7B,IAElC,WAAWA,EAAGkB,EAAGC,EAAGU,GAClB,QAASX,GAAKlB,EAAImB,GAAKD,EAAIW,GAAK7B,IAElC,cAAcA,EAAGkB,EAAGC,EAAI,EAAGU,EAAI,GAC7B,OAAOvF,KAAKiR,mBAAmBvN,EAAGkB,IAEpC,4BAA4BlB,EAAGkB,EAAGC,EAAGU,GACnC,MAAMC,EAAI9B,EAAEoH,EAAIkG,EAAGvL,EAAI/B,EAAEqH,EAAIiG,EAAGlL,EAAIlB,EAAIoM,EAAGrL,EAAIJ,EAAEuF,EAAIkG,EAAGtL,EAAIhC,EAAEoI,GAAGC,YAAkB,EAAJiF,EAAOnL,EAAIN,EAAEuG,GAAGC,YAAkB,EAAJiF,EAAOtK,EAAI7B,EAAImM,EAAGpK,EAAIrB,EAAEwF,EAAIiG,EAAGnK,EAAInD,EAAEoI,GAAGE,aAAmB,EAAJgF,EAAOlK,EAAIvB,EAAEuG,GAAGE,aAAmB,EAAJgF,EACnM,IAAIE,EAAIxN,EAAEoH,EAAGqG,EAAIzN,EAAEqH,EACnB,MAAMA,EAAI/K,KAAKoR,WAAW5L,EAAGG,EAAGD,EAAGG,GAAIwL,EAAIrR,KAAKsR,WAAW7L,EAAGmB,EAAGC,EAAGC,GACpE,OAAOiE,EAAIrE,EAAIE,GAAKsK,EAAItM,EAAGuM,EAAIvK,EAAIC,EAAImK,GAAKtK,EAAIE,IAAMsK,EAAItM,EAAGuM,EAAIvK,EAAIE,EAAIkK,GAAKK,IAAMvL,EAAIH,GAAKuL,EAAIvL,EAAID,EAAIsL,EAAGG,EAAItM,GAAKiB,EAAIH,IAAMuL,EAAIvL,EAAIE,EAAImL,EAAGG,EAAItM,IAAK,CAAEiG,EAAGoG,EAAGnG,EAAGoG,IAEpK,aAAazN,EAAGkB,EAAGC,EAAGU,GACpB7B,EAAE0I,QAAS5G,IACTX,EAAEwJ,KAAK7I,GAAIZ,GAAKW,EAAE8I,KAAK,CACrBzB,KAAMhI,EAAE1D,GACR2L,GAAIrH,EAAEtE,KAER,MAAMuE,EAAID,EAAEkG,QAAUlG,EAAE+L,SACxB9L,GAAKA,EAAEa,OAAS,GAAKtG,KAAKwR,aAAa/L,EAAGD,EAAGX,EAAGU,QAGnDyL,EAAI,EAIJtE,OAAOC,YACV,MAAM8E,EACJ,YAAY7M,EAAGC,GACbO,EAAEpF,KAAM,gBACRoF,EAAEpF,KAAM,iBACRoF,EAAEpF,KAAM,WAAY,IACpBoF,EAAEpF,KAAM,iBAAiB,GACzBoF,EAAEpF,KAAM,gBAAgB,GACxBoF,EAAEpF,KAAM,WAAY,IACpBoF,EAAEpF,KAAM,YACRoF,EAAEpF,KAAM,uBAAwB,GAChCoF,EAAEpF,KAAM,mBAAoB,IAC5BA,KAAK0R,cAAgB9M,EAAG5E,KAAK2R,aAAe9M,EAE9C,SAASD,GACPgE,EAAE,YAAahE,EAAE0B,QAAStG,KAAK4R,SAAWhN,EAE5C,UACE5E,KAAK6R,WAAW7R,KAAK8R,SAAU9R,KAAK+R,UAEtC,WAAWnN,EAAGC,GACZ7E,KAAK8R,SAAWlN,EAAG5E,KAAK+R,SAAWlN,EAErC,0BACE7E,KAAK8R,SAAS1F,QAASxH,KACpBsK,EAAEU,gBAAgBhL,KAAOA,EAAE4K,IAAIwC,KAAO9C,EAAE+C,eAAejS,KAAK2R,aAAc/M,GAAIA,EAAE4K,IAAI0C,KAAOhD,EAAEiD,eAAenS,KAAK2R,aAAc/M,GAAIA,EAAE4K,IAAI4C,OAASxN,EAAEkG,GAAK,EAAGlG,EAAE4K,IAAI6C,OAASzN,EAAEmG,GAAK,EAAGnG,EAAE4K,IAAI8C,QAAS,KAGzM,gBAAgB1N,GAAI,GAClB,OAAOS,EAAErF,KAAM,MAAM,YACnB4E,GAAK5E,KAAKuS,0BACV,MAAM1N,EAAI7E,KAAK+R,SACflN,GAAK+D,EAAE,4CAA6C/D,EAAEiG,EAAGjG,EAAEkG,GAAI/K,KAAKwS,qBAAuB,EAAGxS,KAAKyS,iBAAmB,GAAI7J,EAAE,wCAC5H,IAAIrD,GAAI,EACR,OAAO,IAAID,QAAQ,CAACE,EAAGC,KACrBzF,KAAK0S,cAAc,KACjBnN,IAAMA,GAAI,EAAIqD,EAAE,kCAAmC5I,KAAK8R,SAAS1F,QAAStG,KACvEoJ,EAAEU,gBAAgB9J,KAAOA,EAAE0J,IAAI4C,OAAStM,EAAEgF,EAAGhF,EAAE0J,IAAI6C,OAASvM,EAAEiF,EAAGjF,EAAEgF,EAAIhF,EAAE0J,IAAIwC,KAAMlM,EAAEiF,EAAIjF,EAAE0J,IAAI0C,QAC9F1M,YAKZ,cAAcZ,GACRgE,EAAE,0BAA2B5I,KAAKwS,qBAAsBxS,KAAKyS,kBAAmBzS,KAAKwS,qBAAuBxS,KAAKyS,iBACnH7N,KAGF5E,KAAK8R,SAAS1F,QAASvH,IACrB,IAAKA,EAAE2K,IAAI8C,OACT,OACF,MAAQF,OAAQ7M,EAAG8M,OAAQ7M,EAAGwM,KAAMvM,EAAGyM,KAAMpM,GAAMjB,EAAE2K,IACrD,QAAU,IAANjK,QAAsB,IAANC,QAAsB,IAANC,QAAsB,IAANK,EAAc,CAChE,MAAMH,GAAKF,EAAIF,GAAKvF,KAAKyS,iBAAkB/M,GAAKI,EAAIN,GAAKxF,KAAKyS,iBAAkB5M,EAAIwK,KAAKsC,MAAMpN,EAAIvF,KAAKwS,qBAAuB7M,GAAIe,EAAI2J,KAAKsC,MAAMnN,EAAIxF,KAAKwS,qBAAuB9M,IACjLb,EAAEiG,IAAMjF,GAAKhB,EAAEkG,IAAMrE,KAAO7B,EAAEiG,EAAIjF,EAAGhB,EAAEkG,EAAIrE,MAE5C1G,KAAKwS,uBAAwBI,sBAAsB5S,KAAK0S,cAAcG,KAAK7S,KAAM4E,MAGzF,MAAMkO,UAAWrB,EACf,YAAY5M,EAAGU,GACbwN,MAAMlO,EAAGU,GACTH,EAAEpF,KAAM,qBAAqB,GAC7BoF,EAAEpF,KAAM,iBACRoF,EAAEpF,KAAM,mBAAoB,IAC5BA,KAAK0R,cAAgB7M,EAAG+D,EAAE,sCAAuC5I,KAAK0R,eAAgB1R,KAAK0R,cAAc9E,OAAS5M,KAAK0R,cAAc9E,KAAO,QAAS5M,KAAK0R,cAAcsB,gBAA6D,iBAApChT,KAAK0R,cAAcsB,cAA4BhT,KAAKiT,iBAAmBjT,KAAK0R,cAAcsB,cAAcE,MAAM,KAAKC,IAAK3N,GAAM4D,OAAOC,SAAS7D,IAAM4N,MAAMC,QAAQrT,KAAK0R,cAAcsB,iBAAmBhT,KAAKiT,iBAAmBjT,KAAK0R,cAAcsB,gBAAiBhT,KAAKsT,kBAAoBtT,KAAK0R,cAAc4B,kBAEnf,UACE,OAAOjO,EAAErF,KAAM,MAAM,YACnB4I,EAAE,gDAAiD5I,KAAK8R,SAASxL,cAAetG,KAAK6R,WAAW7R,KAAK8R,SAAU9R,KAAK+R,aAGxH,4BAA4BlN,EAAGU,EAAGC,EAAGC,EAAGK,GACtC8C,EAAE,GAAG9C,WAAWN,WAAWD,EAAEe,UAAWf,EAAEe,OAASb,EAAE0J,aAAe1J,EAAE0J,WAAa5J,EAAEe,QAASd,EAAIC,EAAE2J,WAAa3J,EAAE2J,SAAW5J,GAC9H,MAAMG,EAAI,CACR0J,MAAO7J,EACP8J,SAAU/J,EAAEe,OACZiJ,aAAc,GACb7J,EAAI,GACPH,EAAE6G,QAAS1F,IACTA,EAAE8I,MAAQ9I,EAAE8I,IAAM,CAAE9D,OAAQ,KAAOhF,EAAE8I,IAAI5D,QAAS,EAAIlF,EAAE8I,IAAIG,QAAUhK,EAAGe,EAAE8I,IAAIH,MAAQ7J,EAAGX,EAAEwJ,KAAK3H,KAEnG,IAAIb,EAAI,EACRN,EAAE6G,QAAS1F,IACT,IAAIE,EAAI,EAAGC,GAAW,IAAPf,EAAWY,EAAE0D,WAAa1D,EAAE2D,SACrC,IAAN7E,IAAYqB,EAAIH,EAAEyD,aAClB,IAAIrD,EAAI,EACRD,EAAEuF,QAAS8E,IACTA,EAAE1B,MAAQ0B,EAAE1B,IAAM,CAAE5D,QAAQ,EAAIF,OAAQ,KAAOwF,EAAE1B,IAAI5D,SAAWsF,EAAE1B,IAAI7D,OAASjF,EAAGwI,EAAEU,gBAAgBsB,IAAMA,EAAE1B,IAAI5D,QAAS,EAAIsF,EAAE1B,IAAIK,gBAAkB/I,IAAKJ,EAAE8I,IAAI9D,OAAO2C,KAAK6C,GAAIxL,EAAE2I,KAAK6C,GAAItK,KAAOF,EAAE8I,IAAI9D,OAAO2C,KAAK6C,MAClNxK,EAAE8I,IAAI3D,SAAWjF,EAAI,EAAIA,EAAI,EAAGjB,EAAE4J,cAAgB7I,EAAE8I,IAAI3D,SAAUnF,EAAE8I,IAAIM,cAAgBnK,EAAE4J,aAAc7I,EAAE8I,IAAIO,eAAiBlK,EAAGa,EAAE8I,IAAIQ,YAAcpJ,EAAGf,MAC3JF,EAAE4J,aAAe9J,EAAEgK,eAAiBhK,EAAEgK,aAAe9J,EAAE4J,cAAe7J,EAAEY,OAAS,EAAItG,KAAKiQ,4BAA4BpL,EAAGa,EAAGF,EAAIM,EAAGL,EAAGK,IAAMjB,EAAEuH,QAAS1F,IACzJA,EAAE8I,IAAIQ,YAAc,IAAMtJ,EAAE8I,IAAIU,mBAAqB,KACnDrL,EAAEuH,QAAS1F,IACS,IAAtBA,EAAE8I,IAAIQ,cAAsBtJ,EAAE8I,IAAIU,mBAAqB,EAAGhB,EAAEiB,yBAAyBzJ,MACnFwI,EAAEkB,iBAAiB,CAACvL,EAAE,IAAK,EAAGiB,IAEpC,WAAWjB,EAAGU,GACZ,OAAOF,EAAErF,KAAM,MAAM,YACnB,GAAI4I,EAAE,8CAA8CrD,EAIlD,YADA5B,QAAQC,MAAM,gBAFdgF,EAAE,kBAAmBrD,GAKvBvF,KAAK+R,SAAWxM,EAAGvF,KAAK8R,SAAWjN,EAAG+D,EAAE,YAAa/D,EAAEyB,QAASzB,EAAEuH,QAAStG,IACzEA,EAAE0J,IAAI5D,QAAS,EAAI9F,EAAE0J,IAAI+D,aAAc,EAAIzN,EAAE0J,IAAI9D,OAAS,GAAI5F,EAAE0J,IAAI7D,YAAS,EAAQ7F,EAAE0J,IAAIK,gBAAkB,EAAG/J,EAAE0J,IAAI3D,SAAW,EAAG/F,EAAE0J,IAAIe,wBAA0B,EAAGzK,EAAE0J,IAAIU,mBAAqB,EAAGpK,EAAE0J,IAAI8C,QAAS,IAEtN,IAAI9M,EAAI,GAAIC,EAAI,CACd2J,SAAU,EACVD,WAAY,EACZM,aAAc,GAEhBP,EAAEQ,cAAclK,EAAG,CAACxF,KAAK+R,UAAW,EAAGtM,GAAID,EAAI,GAAIC,EAAI,CACrD2J,SAAU,EACVD,WAAY,EACZM,aAAc,GACbzP,KAAKiQ,4BAA4BzK,EAAG,CAACxF,KAAK+R,UAAW,EAAGtM,GAAI,GAAIzF,KAAKwT,mBAAmBxT,KAAK+R,SAAUvM,EAAGC,GAAID,EAAI,GAAIC,EAAI,CAC3H2J,SAAU,EACVD,WAAY,EACZM,aAAc,GACbzP,KAAKiQ,4BAA4BzK,EAAG,CAACxF,KAAK+R,UAAW,EAAGtM,EAAG,GAAIzF,KAAKwT,mBAAmBxT,KAAK+R,SAAUvM,EAAGC,GAAImD,EAAE,YAAapD,EAAEc,QAAStG,KAAK2R,aAAa8B,0BAA4B7K,EAAE,oCAAqC5I,KAAK0T,kBAAmB9K,EAAE,gCAAiCrD,EAAEuF,EAAGvF,EAAEwF,KAAO/K,KAAK8R,SAAS1F,QAAStG,KAC7S,IAAZA,EAAE8E,OAILsE,EAAEU,gBAAgB9J,KAAOsD,OAAOuK,MAAM7N,EAAE0J,IAAI1E,KAAOlC,EAAE,aAAc9C,EAAE7E,KAAM6E,EAAE0J,IAAI1E,GAAIhF,EAAE0J,IAAI1E,EAAI,GAAI1B,OAAOuK,MAAM7N,EAAE0J,IAAIzE,KAAOnC,EAAE,aAAc9C,EAAE7E,KAAM6E,EAAE0J,IAAIzE,GAAIjF,EAAE0J,IAAIzE,EAAI,GAAIjF,EAAEgF,EAAIoE,EAAE+C,eAAejS,KAAK2R,aAAc7L,GAAIA,EAAEiF,EAAImE,EAAEiD,eAAenS,KAAK2R,aAAc7L,GAAIA,EAAE0J,IAAI8C,QAAS,GAHvRxM,EAAE0J,IAAI8C,QAAS,IAIf1J,EAAE,gCAAiCrD,EAAEuF,EAAGvF,EAAEwF,OAGlD,mBAAmBlG,EAAGU,EAAGC,GACvB,IAAgB,IAAZX,EAAE+F,MAAc,CAClB,MAAMnF,EAAIzF,KAAK0R,cAAckC,gBAAkB,EAAG9N,EAAI9F,KAAK0R,cAAcmC,gBAAkB,EAC3FhP,EAAE2K,IAAI1E,EAAIrF,EAAGZ,EAAE2K,IAAIzE,EAAIjF,EAAG9F,KAAK0R,cAAcoC,eAAiBjP,EAAE2K,IAAI1E,EAAIoE,EAAE6E,eAAe/T,KAAK2R,aAAc9M,GAAIA,EAAE2K,IAAIzE,EAAImE,EAAE8E,eAAehU,KAAK2R,aAAc9M,IAAkC,QAA5B7E,KAAK0R,cAAc9E,KAAiB/H,EAAE2K,IAAIzE,GAAK/K,KAAK2R,aAAasC,SAAS7M,OAAS,EAAI,IAAkC,WAA5BpH,KAAK0R,cAAc9E,KAAoB/H,EAAE2K,IAAIzE,GAAK/K,KAAK2R,aAAasC,SAAS7M,OAAS,EAAI,IAAkC,UAA5BpH,KAAK0R,cAAc9E,KAAmB/H,EAAE2K,IAAI1E,GAAK9K,KAAK2R,aAAasC,SAAS9M,MAAQ,EAAI,IAAMtC,EAAE2K,IAAI1E,GAAK9K,KAAK2R,aAAasC,SAAS9M,MAAQ,EAAI,IAAKyB,EAAE,0BAA2B/D,EAAE2K,IAAI1E,EAAGjG,EAAE2K,IAAIzE,EAAG,CAAEmJ,iBAAkBzO,EAAG0O,iBAAkBrO,cAE/jB,IAAfjB,EAAEuP,WAAwBvP,EAAEuP,SAAWvP,EAAEiG,EAAGjG,EAAEwP,SAAWxP,EAAEkG,GAAIlG,EAAE2K,IAAI1E,EAAIjG,EAAEuP,SAAUvP,EAAE2K,IAAIzE,EAAIlG,EAAEwP,SAAUzL,EAAE,iBAA2C/D,EAAE5D,KAAM4D,EAAEiG,EAAGjG,EAAEkG,GACzKlG,EAAE2K,IAAI8C,QAAS,EAAItS,KAAKsU,sBAAsBzP,EAAGU,EAAGC,GAEtD,sBAAsBX,EAAGU,EAAGC,GAC1B,MAAMC,EAAIzF,KAAK2R,aAAasC,SAC5B,GAAgC,SAA5BjU,KAAK0R,cAAc9E,MAA+C,UAA5B5M,KAAK0R,cAAc9E,KAAkB,CAC7E,MAAM9G,EAAIqD,EAAEnJ,KAAK0R,cAAc6C,iBAAmB,GAAI5O,EAAIwD,EAAEnJ,KAAK0R,cAAc8C,iBAAmB,IAAK9O,EAAIyD,EAAEnJ,KAAK0R,cAAc+C,gBAAkB,IAAK5O,EAAIsD,EAAEnJ,KAAK0R,cAAcgD,gBAAkB,IAClM,IAAIhO,EAAI2J,KAAKsE,OAAOlP,EAAE0B,MAAQ,KAAO3B,EAAE4J,SAAW,IAClD1I,EAAIhB,IAAMgB,EAAIhB,GAAIgB,EAAIb,IAAMa,EAAIb,GAChC,IAAIe,EAAIyJ,KAAKsE,MAAMlP,EAAE2B,QAAU5B,EAAEiK,aAAe,IAChD7I,EAAId,IAAMc,EAAId,GAAIc,EAAIjB,IAAMiB,EAAIjB,GAAIJ,EAAE6G,QAASvF,KACjC,IAAZA,EAAE+D,QAAiC,IAAjB/D,EAAE2I,IAAI8C,QAAiBzL,IAAMhC,IAAkC,UAA5B7E,KAAK0R,cAAc9E,KAAmB/F,EAAE2I,IAAI1E,EAAIjG,EAAE2K,IAAI1E,EAAI9K,KAAK4U,iBAAiB/N,EAAGA,EAAE2I,IAAIG,QAAQN,MAAO3I,GAAKG,EAAE2I,IAAI1E,EAAIjG,EAAE2K,IAAI1E,EAAI9K,KAAK4U,iBAAiB/N,EAAGA,EAAE2I,IAAIG,QAAQN,MAAO3I,MAClOnB,EAAE6G,QAASvF,KACD,IAAZA,EAAE+D,OAAgC,IAAhB/D,EAAE2I,IAAIH,QAAgE,SAAhDrP,KAAK0R,cAAcmD,0BAAuF,QAAhD7U,KAAK0R,cAAcmD,yBAAqChO,EAAE2I,IAAIzE,EAAIlG,EAAE2K,IAAIzE,EAAInE,EAAIC,EAAE2I,IAAIe,wBAA0E,UAAhDvQ,KAAK0R,cAAcmD,0BAAwF,WAAhD7U,KAAK0R,cAAcmD,yBAAwChO,EAAE2I,IAAIzE,EAAIlG,EAAE2K,IAAIzE,EAAInE,EAAIC,EAAE2I,IAAIe,wBAA0B1J,EAAE2I,IAAIzE,EAAIlG,EAAE2K,IAAIzE,EAAInE,GAAKpB,EAAEiK,cAAgB,EAAI5I,EAAE2I,IAAIe,wBAA0B1J,EAAE2I,IAAIU,mBAAqB,MACxelQ,KAAK8U,YAAYvP,EAAG,IAAKqB,OACxB,CACL,MAAMd,EAAIqD,EAAEnJ,KAAK0R,cAAc6C,iBAAmB,IAAK5O,EAAIwD,EAAEnJ,KAAK0R,cAAc8C,iBAAmB,IAAK9O,EAAIyD,EAAEnJ,KAAK0R,cAAc+C,gBAAkB,IAAK5O,EAAIsD,EAAEnJ,KAAK0R,cAAcgD,gBAAkB,IACnM,IAAIhO,EAAI2J,KAAKsE,OAAOlP,EAAE0B,MAAQ,KAAO3B,EAAEiK,aAAe,IACtD/I,EAAIhB,IAAMgB,EAAIhB,GAAIgB,EAAIb,IAAMa,EAAIb,GAChC,IAAIe,EAAIyJ,KAAKsE,OAAOlP,EAAE2B,OAAS,KAAO5B,EAAE4J,SAAW,IACnDxI,EAAId,IAAMc,EAAId,GAAIc,EAAIjB,IAAMiB,EAAIjB,GAAIJ,EAAE6G,QAASvF,KACjC,IAAZA,EAAE+D,QAAiC,IAAjB/D,EAAE2I,IAAI8C,QAAiBzL,IAAMhC,IAAkC,WAA5B7E,KAAK0R,cAAc9E,KAAoB/F,EAAE2I,IAAIzE,EAAIlG,EAAE2K,IAAIzE,EAAI/K,KAAK4U,iBAAiB/N,EAAGA,EAAE2I,IAAIG,QAAQN,MAAOzI,GAAKC,EAAE2I,IAAIzE,EAAIlG,EAAE2K,IAAIzE,EAAI/K,KAAK4U,iBAAiB/N,EAAGA,EAAE2I,IAAIG,QAAQN,MAAOzI,MACnOrB,EAAE6G,QAASvF,KACD,IAAZA,EAAE+D,OAAgC,IAAhB/D,EAAE2I,IAAIH,QAAgE,SAAhDrP,KAAK0R,cAAcmD,0BAAuF,QAAhD7U,KAAK0R,cAAcmD,yBAAqChO,EAAE2I,IAAI1E,EAAIjG,EAAE2K,IAAI1E,EAAIpE,EAAIG,EAAE2I,IAAIe,wBAA0E,UAAhDvQ,KAAK0R,cAAcmD,0BAAwF,WAAhD7U,KAAK0R,cAAcmD,yBAAwChO,EAAE2I,IAAI1E,EAAIjG,EAAE2K,IAAI1E,EAAIpE,EAAIG,EAAE2I,IAAIe,wBAA0B1J,EAAE2I,IAAI1E,EAAIjG,EAAE2K,IAAI1E,EAAIpE,GAAKlB,EAAEiK,cAAgB,EAAI5I,EAAE2I,IAAIe,wBAA0B1J,EAAE2I,IAAIU,mBAAqB,MACxelQ,KAAK8U,YAAYvP,EAAG,IAAKmB,IAGjC,YAAY7B,EAAGU,EAAGC,GAChB,IAAKxF,KAAKsT,kBACR,OACF,MAAM7N,EAAI,GACVZ,EAAEuH,QAAStG,IACT,MAAMH,EAAIG,EAAE0J,IAAIH,MAAQ,GACxB5J,EAAEE,KAAOF,EAAEE,GAAK,IAAKF,EAAEE,GAAG0I,KAAKvI,GAAIA,EAAE0J,IAAIuF,oBAAsB,EAAGjP,EAAE0J,IAAIwF,mBAAqB,IAC3FnQ,EAAEuH,QAAStG,IACb,IAAgB,IAAZA,EAAE8E,OAAgC,IAAhB9E,EAAE0J,IAAIH,MAAa,CACvC,MAAM1J,EAAIG,EAAE0J,IAAIH,MAAQ,GAAI3J,EAAID,EAAEE,GAClC,GAAiC,IAA7BG,EAAE0J,IAAIU,oBAA4BpK,EAAE0J,IAAIQ,aAAe,EAAG,CAC5D,MAAMnK,EAAI7F,KAAKiV,wBAAwBnP,EAAGA,EAAE0J,IAAI7D,OAAQjG,EAAGH,GAC3DM,IAAY,MAANN,EAAYO,EAAE0J,IAAIzE,EAAIlF,EAAE2J,IAAIzE,EAAI,GAAKjF,EAAE0J,IAAIzE,EAAIlF,EAAE2J,IAAIzE,EAAIvF,EAAIK,EAAE2J,IAAIwF,mBAAoBnP,EAAE2J,IAAIwF,uBAAyBlP,EAAE0J,IAAIzE,EAAIlF,EAAE2J,IAAIzE,EAAIvF,EAAIK,EAAE2J,IAAIuF,oBAAqBlP,EAAE2J,IAAIuF,uBAAyBjP,EAAE0J,IAAI1E,EAAIjF,EAAE2J,IAAI1E,EAAI,GAAKhF,EAAE0J,IAAI1E,EAAIjF,EAAE2J,IAAI1E,EAAItF,EAAIK,EAAE2J,IAAIwF,mBAAoBnP,EAAE2J,IAAIwF,uBAAyBlP,EAAE0J,IAAI1E,EAAIjF,EAAE2J,IAAI1E,EAAItF,EAAIK,EAAE2J,IAAIuF,oBAAqBlP,EAAE2J,IAAIuF,4BAKzX,wBAAwBlQ,EAAGU,EAAGC,EAAGC,GAC/B,IAAcE,EAAVG,EAAI,KACR,IAAK,MAAMJ,KAAKF,EACd,GAAIE,EAAE8J,IAAIQ,YAAc,GAAKtK,EAAE8J,IAAI7D,SAAWpG,EAAG,CAC/C,MAAMM,EAAU,MAANJ,EAAYC,EAAE8J,IAAIzE,EAAIxF,EAAEiK,IAAIzE,EAAIrF,EAAE8J,IAAI1E,EAAIvF,EAAEiK,IAAI1E,EAC1DuF,KAAKC,IAAIzK,GAAKC,IAAMA,EAAIuK,KAAKC,IAAIzK,GAAIF,EAAID,GAE7C,GAAIC,GAAKA,IAAMd,EACb,OAAOc,EAEX,iBAAiBd,EAAGU,EAAGC,GACrB,MAAMC,EAAI4K,KAAKC,IAAI/K,GACnB,GAAIvF,KAAKiT,kBAAoBjT,KAAKiT,iBAAiB3M,OAAS,EAAG,CAC7D,IAAIR,EAAI,EACR,IAAK,IAAIH,EAAI,EAAGA,EAAIF,EAAGE,IAAK,CAC1B,MAAMD,EAAIC,GAAK3F,KAAKiT,iBAAiB3M,OAAStG,KAAKiT,iBAAiBjT,KAAKiT,iBAAiB3M,OAAS,GAAKtG,KAAKiT,iBAAiBtN,GAC9HG,GAAKJ,EAEP,OAAOH,EAAI,EAAIO,GAAS,EAALA,EAEnB,OAAOP,EAAIC,GAGjB,SAAS0P,EAAGxR,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,EAAGD,GAClC,MAAMG,EAAIL,EAAI9B,EAAGgD,EAAIjB,EAAIb,EAAGgC,EAAIyJ,KAAK8E,KAAKtP,EAAIA,EAAIa,EAAIA,GAAIG,EAAInB,EAAIgB,EAAIE,EAAGE,GAAMpB,EAAIG,EAAKe,EAAGsK,EAAIxN,EAAImD,EAAGsK,EAAIvM,EAAIkC,EAAGiE,EAAIrH,EAAImB,EAAI,EAAGwM,EAAI3N,EAAImB,EAAI,EAAGuQ,EAAIxQ,EAAIW,EAAI,EAAG8P,EAAIzQ,EAAIW,EAAI,EAC1K,IAAI+P,EAAI,GACR,GAAU,IAANzP,EAAS,CACX,IAAI0P,GAAKxK,EAAImG,GAAKrL,EAAGiF,EAAIqG,EAAIoE,EAAI7O,EACjCoE,GAAKsK,GAAKtK,GAAKuK,GAAKC,EAAEjH,KAAK,CAAEvD,EAAGC,EAAGA,EAAGD,IACtC,IAAI0K,GAAKnE,EAAIH,GAAKrL,EAAG4P,EAAItE,EAAIqE,EAAI9O,EACjC+O,GAAKL,GAAKK,GAAKJ,GAAKC,EAAEjH,KAAK,CAAEvD,EAAGuG,EAAGtG,EAAG0K,IAExC,GAAU,IAAN/O,EAAS,CACX,IAAI6O,GAAKH,EAAIjE,GAAKzK,EAAGoE,EAAIoG,EAAIqE,EAAI1P,EACjCiF,GAAKC,GAAKD,GAAKuG,GAAKiE,EAAEjH,KAAK,CAAEvD,IAAGC,EAAGqK,IACnC,IAAII,GAAKH,EAAIlE,GAAKzK,EAAG+O,EAAIvE,EAAIsE,EAAI3P,EACjC4P,GAAK1K,GAAK0K,GAAKpE,GAAKiE,EAAEjH,KAAK,CAAEvD,EAAG2K,EAAG1K,EAAGsK,IAExC,IAAIK,EAAI,KAAMC,EAAI,IAClB,OAAOL,EAAElJ,QAASmJ,IAChB,MAAMzK,EAAIuF,KAAK8E,MAAMI,EAAEzK,EAAItF,IAAM,GAAK+P,EAAExK,EAAItF,IAAM,GAClDqF,EAAI6K,IAAMA,EAAI7K,EAAG4K,EAAIH,KACnBG,EAEN,MAAME,EAAI,CACR,aAAalS,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,EAAGD,GAAI,EAAIG,EAAI,EAAGa,EAAI,EAAGE,EAAI,IAC7DlB,IAAMgB,EAAIb,EAAIa,EAAI,GAClB,MAAMG,EAAIH,GAAKb,EAAI,GAAK,EAAGiB,EAAIpD,EAAI8B,EAAI,EAAG0L,EAAItM,EAAIa,EAAI,EAAG0L,EAAItM,EAAIiB,EAAI,EAAGiF,EAAIxF,EAAII,EAAI,EACpF,GAAIE,EAAI,EAAG,CACT,MAAM2P,EAAI5O,EAAIC,EAAG4O,EAAIP,EACnBpO,EACAoK,EACA1L,EACAC,EACA0L,EACApG,EACAjF,EACAH,EACA6P,GAEF,GAAIC,EACF,OAAOA,EAEX,MAAMpE,EAAIvK,EAAIqK,EAAI,GAAK,EAAGiE,EAAIlE,EAAInG,EAAI,GAAK,EAC3C,GAAIA,IAAMmG,EACR,MAAO,CAAEpG,EAAGhE,EAAIuK,EAAI7L,EAAI,EAAGuF,EAAGmG,GAChC,MAAMmE,EAAIhF,KAAKC,KAAKa,EAAIrK,IAAMiE,EAAImG,IAAKoE,EAAI9P,EAAIC,EAC/C,IAAIiQ,EAAI,EAAGC,EAAI,EACfN,EAAIC,GAAKI,EAAIrE,EAAI5L,EAAI,EAAI4P,EAAID,EAAIE,EAAGK,EAAIP,EAAI3P,EAAI,IAAMiQ,EAAIrE,EAAI7L,EAAI,EAAGmQ,EAAIP,EAAI5P,EAAI,EAAI6P,EAAIhE,EAAIiE,GAC7F,MAAMC,EAAIzO,EAAI4O,EAAG5K,EAAIoG,EAAIyE,EACzB,MAAO,CAAE7K,EAAGyK,EAAGxK,EAAGD,IAEpB,kBAAkBpH,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,GACrC,MAAMD,EAAIhC,EAAI8B,EAAI,EAAGK,EAAIjB,EAAIa,EAAI,EAAGiB,EAAI7B,EAAIiB,EAAI,EAAGc,EAAIrB,EAAII,EAAI,EAC/D,IAAIkB,EAAID,IAAMf,EAAI,GAAKa,EAAIhB,IAAMkB,EAAIf,GAC/B,IAANgB,IAAYA,GAAKH,EAAIhB,IAAMkB,EAAIf,EAAI,IACnC,MAAMiB,EAAItB,EAAIG,EACd,IAAIuL,EAAI,EAAGC,EAAI,EAAGpG,EAAI,IACtB,OAAQ,EAAIjE,EAAID,GAAKA,EAAIC,GAAKiE,EAAI,IAAKlF,EAAIe,GAAKsK,EAAIzL,EAAI,EAAIoB,EAAGsK,EAAI1L,EAAI,IAAMyL,GAAK,EAAIzL,EAAI,EAAIoB,EAAGsK,GAAK,EAAI1L,EAAI,KAAOC,EAAIgB,GAAKwK,EAAI,EAAI1L,EAAI,EAAG2L,EAAI,EAAI3L,EAAI,EAAIqB,IAAMqK,GAAK,EAAI1L,EAAI,EAAG2L,GAAK,EAAI3L,EAAI,EAAIqB,GAAIkE,EAAI,KAAM,CAAED,EAAGpF,EAAIwL,EAAGnG,EAAGlF,EAAIsL,EAAG0E,MAAO9K,IAEjP,iBAAiBrH,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,GACpC,MAAMD,EAAIhC,EAAI8B,EAAI,EAAGK,EAAIjB,EAAIa,EAAI,EAAGiB,EAAI7B,EAAIiB,EAAI,EAAGc,EAAIrB,EAAII,EAAI,EAAGkB,EAAIwJ,KAAKsE,MAAiC,IAA3BtE,KAAKyF,MAAMlP,EAAIf,EAAGa,EAAIhB,GAAW,MAAQ,IAC1H,OAAOmB,GAAK,GAAKA,EAAI,GAAK,CAAEiE,EAAGpH,EAAI8B,EAAI,EAAGuF,EAAGnG,EAAI,GAAMiC,GAAK,IAAMA,EAAI,IAAM,CAAEiE,EAAGpH,EAAI8B,EAAI,EAAGuF,EAAGnG,EAAIa,EAAI,GAAMoB,GAAK,KAAOA,EAAI,IAAM,CAAEiE,EAAGpH,EAAI8B,EAAI,EAAGuF,EAAGnG,EAAIa,EAAI,GAAM,CAAEqF,EAAGpH,EAAI,EAAGqH,EAAGnG,EAAIa,EAAI,IAE7L,kBAAkB/B,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,GAClC,MAAMH,EAAIF,EAAI,EACd,OAAO/B,EAAI8B,EAAIX,EAAI,CAAEiG,EAAGpH,EAAI8B,EAAI,EAAGuF,EAAGnG,EAAIe,GAAsB,CAAEmF,EAAGpH,EAAI,EAAGqH,EAAGnG,EAAIe,IAErF,qBAAqBjC,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,GACrC,MAAMH,EAAIF,EAAI,EACd,MAAO,CAAEqF,EAAGpH,EAAI,EAAGqH,EAAGnG,EAAIe,IAE5B,sBAAsBjC,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,GACtC,MAAMH,EAAIF,EAAI,EACd,MAAO,CAAEqF,EAAGpH,EAAI8B,EAAI,EAAGuF,EAAGnG,EAAIe,IAEhC,oBAAoBjC,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,GACpC,MAAO,CAAEgF,EAAGpH,EAAI8B,EAAI,EAAGuF,EAAGnG,EAAI,IAEhC,uBAAuBlB,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,GACvC,MAAO,CAAEgF,EAAGpH,EAAI8B,EAAI,EAAGuF,EAAGnG,EAAIa,EAAI,IAEpC,kBAAkB/B,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,GACrC,MAAMD,EAAIF,EAAI,EACd,OAAOZ,EAAIa,EAAIF,EAAI,CAAEwF,EAAGnG,EAAIa,EAAI,EAAGqF,EAAGpH,EAAIgC,GAAsB,CAAEqF,EAAGnG,EAAI,EAAGkG,EAAGpH,EAAIgC,IAErF,eAAehC,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,EAAGD,GACrC,OAAa,IAANA,EAAU1F,KAAK+V,eAAerS,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,GAAK3F,KAAKgW,aAAatS,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,IAExG,yBAAyBjC,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,EAAGD,EAAGG,EAAGa,EAAGE,EAAGC,EAAI,IAC/D,OAAa,IAANnB,EAAU1F,KAAKiW,yBAAyBvS,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,EAAGE,EAAGa,EAAGE,EAAGC,GAAK7G,KAAKgW,aAAatS,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,EAAGE,EAAGa,EAAGE,EAAGC,IAE1I,eAAenD,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,GAClC,MAAMD,EAAIb,EAAIiB,EAAI,EAAGD,EAAIN,EAAII,EAAI,EAAGe,EAAIhD,EAAI8B,EAAI,EAAGoB,EAAIhC,EAAIa,EAAI,EAAGoB,EAAInB,EAAIgB,EAC1E,GAAU,IAANG,EACF,MAAO,CAAEiE,EAAGpE,EAAGqE,EAAGnE,EAAInB,EAAI,GAAKI,EAAIe,EAAI,GAAK,IAC9C,MAAMsK,GAAKrL,EAAIe,GAAKC,EAAGsK,EAAId,KAAK8E,KAAK,GAAK,GAAK3P,EAAI,IAAM,EAAI0L,GAAK,GAAKzL,EAAI,IAAM,KAAOC,EAAIgB,EAAI,GAAK,GAAIqE,EAAImG,EAAIC,EACjH,MAAO,CAAErG,EAAGpE,EAAIyK,EAAGpG,EAAGnE,EAAImE,IAE5B,yBAAyBrH,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,EAAGD,EAAGG,EAAGa,EAAGE,EAAGC,EAAI,GAC/DnB,IAAMgB,EAAIb,EAAIa,EAAI,GAClB,MAAMI,EAAIjC,EAAIiB,EAAI,EAAGoL,EAAI3L,EAAII,EAAI,EAAGwL,EAAIzN,EAAI8B,EAAI,EAAGuF,EAAInG,EAAIa,EAAI,EAAG4L,EAAIvK,EAAIqK,EAC1E,GAAU,IAANE,EACF,MAAO,CAAEvG,EAAGqG,EAAGpG,EAAGA,EAAItF,EAAI,GAAKyL,EAAInG,EAAI,GAAK,IAC9C,MAAMsK,GAAK3O,GAAKb,EAAI,GAAK,GAAKe,EAAG0O,EAAIpE,EAAInG,EAAG2K,EAAIrF,KAAK8E,KAAK9D,GAAK,EAAIiE,GAAK,GAAKD,EAAIhE,EAAGsE,EAAIL,EAAIjE,EAAGkE,EAAI/P,EAAI,EAAGsF,EAAIrF,EAAI,EAAG+P,EAAI1O,EAAIqK,EAAI,GAAK,EAAGsE,IAAM,EAAIF,GAAK,EAAII,EAAID,EAAIH,EAAIzK,EAAIuF,KAAK8E,KAAKrK,GAAK,EAAI6K,GAAK,EAAIJ,GAAK,EAAIG,GAAK,GAAKF,IAAM1K,GAAK,EAAIyK,GAAK,EAAII,GAAK,GAAIO,EAAIP,EAAIF,EAAIC,EACxQ,OAAa,IAAN7O,IAAYuC,OAAOuK,MAAM8B,IAAMrM,OAAOuK,MAAMuC,IAAMlW,KAAKiW,yBAAyBvS,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,EAAGD,EAAG,EAAG,EAAGkB,EAAGC,EAAI,GAAK,CAAEiE,EAAGqG,EAAIsE,EAAG1K,EAAGA,EAAImL,IAEzJ,oBAAoBxS,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,EAAGD,GAC1C,MAAMG,EAAInC,EAAI8B,EAAI,EAAGkB,EAAI9B,EAAIa,EAAI,EAAGmB,EAAI/B,EAAIiB,EAAI,EAAGe,EAAItB,EAAII,EAAI,EAAGmB,EAAIF,EAAIf,EAAGqL,EAAIrK,EAAIH,EAAGyK,EAAId,KAAK8E,KAAKrO,EAAIA,EAAIoK,EAAIA,GAAInG,EAAIoG,EAAIzL,EAAG2L,EAAItG,EAAIjE,EAAIqK,GAAK,EAAGiE,EAAIrK,EAAImG,EAAIC,GAAK,EACtK,MAAO,CAAErG,EAAGlE,EAAIyK,EAAGtG,EAAGlE,EAAIuO,IAE5B,mBAAmB1R,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,GACtC,MAAMD,EAAIhC,EAAI8B,EAAI,EAAGK,EAAIjB,EAAIa,EAAI,EAAGiB,EAAI7B,EAAIiB,EAAI,EAAGc,EAAIrB,EAAII,EAAI,EAAGkB,EAAIH,EAAIhB,EAAGoB,EAAIF,EAAIf,EAAGqL,EAAIb,KAAK8E,KAAKtO,EAAIA,EAAIC,EAAIA,GAAIqK,GAAKD,EAAI1L,EAAI,GAAKqB,EAAIqK,GAAK,EAAGnG,GAAKmG,EAAIzL,EAAI,GAAKqB,EAAIoK,GAAK,EAC/K,MAAO,CAAEpG,EAAGpE,EAAIyK,EAAGpG,EAAGnE,EAAImE,IAE5B,aAAarH,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAI,KAC9B,MAAO,CACLqF,EAAGpH,EAAImB,EAAIwL,KAAK8F,KAAK1Q,EAAI,IAAMF,GAAK,IAAMC,IAAM6K,KAAK+F,GAAK,KAC1DrL,EAAGnG,EAAIC,EAAIwL,KAAKgG,KAAK5Q,EAAI,IAAMF,GAAK,IAAMC,IAAM6K,KAAK+F,GAAK,MAAQ,IAGtE,aAAa1S,EAAGkB,GACd,OAAIlB,GAAK,GAAKkB,GAAK,EACV,EACLlB,EAAI,GAAKkB,GAAK,EACT,EACLlB,EAAI,GAAKkB,EAAI,EACR,EACLlB,GAAK,GAAKkB,EAAI,EACT,OADT,GAGF,aAAalB,EAAGkB,EAAGC,EAAGU,GACpB,IAAIC,EAA+B,IAA3B6K,KAAKyF,MAAMvQ,EAAIX,EAAGC,EAAInB,GAAW2M,KAAK+F,GAC9C,OAAO5Q,EAAI,IAAMA,GAAK,KAAMA,EAAI,IAAMA,GAAK,MAAQA,GAAK,KAAMA,GAAK,MAAQA,GAAK,KAAM6K,KAAKsE,MAAMnP,IAEnG,oBAAoB9B,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,GACjC,OAAO/B,EAAI,CACToH,EAAGpH,EAAI,IAAM2M,KAAKiG,IAAI,MAAc,IAAN9Q,EAAU,EAAIA,GAAK,GAAI,IAAMD,EAC3DwF,EAAGnG,EAAIC,GACL,CACFiG,GAAIrF,EAAE8Q,aAAe9Q,EAAE+Q,YAAc,EACrCzL,GAAItF,EAAEgR,cAAgBhR,EAAEiR,aAAe,EAAI,MAG/C,sBAAsBhT,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,GACnC,OAAO/B,EAAI,CACToH,EAAGpH,EAAImB,EACPkG,EAAGnG,EAAI,IAAMyL,KAAKiG,IAAI,MAAc,IAAN9Q,EAAU,EAAIA,GAAK,GAAI,IAAMD,GACzD,CACFuF,GAAIrF,EAAE8Q,aAAe9Q,EAAE+Q,YAAc,EAAI,IACzCzL,GAAItF,EAAEgR,cAAgBhR,EAAEiR,aAAe,IAG3C,uBAAuBhT,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,GACpC,OAAO/B,EAAI,CACToH,EAAGpH,EAAI,IAAM2M,KAAKiG,IAAI,MAAc,IAAN9Q,EAAU,EAAIA,GAAK,GAAI,IAAMD,EAC3DwF,EAAGnG,EAAIC,GACL,CACFiG,GAAIrF,EAAE8Q,aAAe9Q,EAAE+Q,YAAc,EACrCzL,GAAItF,EAAEgR,cAAgBhR,EAAEiR,aAAe,EAAI,MAG/C,qBAAqBhT,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,GAClC,OAAO/B,EAAI,CACToH,EAAGpH,EAAImB,EACPkG,EAAGnG,EAAI,IAAMyL,KAAKiG,IAAI,MAAc,IAAN9Q,EAAU,EAAIA,GAAK,GAAI,IAAMD,GACzD,CACFuF,GAAIrF,EAAE8Q,aAAe9Q,EAAE+Q,YAAc,EAAI,IACzCzL,GAAItF,EAAEgR,cAAgBhR,EAAEiR,aAAe,KAI7C,MAAMC,UAAWlF,EACf,YAAY5M,EAAGU,GACbwN,MAAMlO,EAAGU,GACTH,EAAEpF,KAAM,iBACRoF,EAAEpF,KAAM,aAAa,GACrBoF,EAAEpF,KAAM,iBAAkB,KAC1BoF,EAAEpF,KAAM,UAAU,GAClBoF,EAAEpF,KAAM,UAAU,GAClBoF,EAAEpF,KAAM,SAAS,GACjBoF,EAAEpF,KAAM,SAAS,GACjBoF,EAAEpF,KAAM,uBAAwB,GAChCoF,EAAEpF,KAAM,qBAAsB,GAC9BoF,EAAEpF,KAAM,wBAAwB,GAChCoF,EAAEpF,KAAM,cAAe,GACvBoF,EAAEpF,KAAM,SAAU,IAClBoF,EAAEpF,KAAM,eAAgB,IACxBoF,EAAEpF,KAAM,cACRoF,EAAEpF,KAAM,qBAAsB,KAC9BoF,EAAEpF,KAAM,qBAAsB,IAC9BoF,EAAEpF,KAAM,yBAA0B,KAClCoF,EAAEpF,KAAM,kBAAmB,IAC3BoF,EAAEpF,KAAM,eAAgB,IACxBA,KAAK0R,cAAgB7M,OAAoC,IAAjC7E,KAAK0R,cAAckF,YAAyB5W,KAAK4W,UAAY5W,KAAK0R,cAAckF,gBAAkD,IAAtC5W,KAAK0R,cAAcmF,iBAA8B7W,KAAK6W,eAAiB7W,KAAK0R,cAAcmF,qBAA+C,IAA9B7W,KAAK0R,cAAcoF,SAAsB9W,KAAK8W,OAAS9W,KAAK0R,cAAcoF,aAAuC,IAA9B9W,KAAK0R,cAAcqF,SAAsB/W,KAAK+W,OAAS/W,KAAK0R,cAAcqF,aAAqD,IAA5C/W,KAAK0R,cAAcsF,uBAAoChX,KAAKgX,qBAAuBhX,KAAK0R,cAAcsF,2BAAiE,IAA1ChX,KAAK0R,cAAcuF,qBAAkCjX,KAAKiX,mBAAqBjX,KAAK0R,cAAcuF,yBAAgE,IAA3CjX,KAAK0R,cAAcwF,sBAAmClX,KAAK0R,cAAcwF,oBAAsB,QAA+C,IAA3ClX,KAAK0R,cAAcyF,sBAAmCnX,KAAK0R,cAAcyF,oBAAsB,QAA8C,IAA1CnX,KAAK0R,cAAc0F,qBAAkCpX,KAAK0R,cAAc0F,oBAAqB,GAAKpX,KAAKqX,cAAe,EAEv7B,UACErX,KAAK6R,WAAW7R,KAAK8R,SAAU9R,KAAK+R,UAEtC,WAAWlN,EAAGU,GACZ,GAAIqD,EAAE,oCAAqCrD,EAA3C,CAMA,GALEqD,EAAE,kBAAmBrD,GAKnBvF,KAAK8R,SAAWjN,EAAG7E,KAAK+R,SAAWxM,EAAGvF,KAAK0R,cAAcoC,cAAe,CAC1E,GAAK1K,OAAOuK,MAAMpO,EAAEuF,SAAc,IAARvF,EAAEuF,EAEvB,CACH,MAAMrF,EAAIzF,KAAK0R,cAAckC,gBAAkB,EAAG9N,EAAI9F,KAAK0R,cAAcmC,gBAAkB,EAC3FtO,EAAEiK,IAAI1E,EAAI,EAAIrF,EAAGF,EAAEiK,IAAIzE,EAAI,EAAIjF,OAH/BP,EAAEiK,IAAI1E,EAAIoE,EAAE6E,eAAe/T,KAAK2R,aAAcpM,GAAIA,EAAEiK,IAAIzE,EAAImE,EAAE8E,eAAehU,KAAK2R,aAAcpM,GAKlG,MAAMC,EAAIxF,KAAKsX,kBAAkB/R,GACjCvF,KAAKuX,0BAA0BhS,EAAGC,GAAIA,EAAE4G,QAAS3G,IAC/C,IAAgB,IAAZA,EAAEmF,QAAiBsE,EAAEU,gBAAgBnK,GACvC,OACF,MAAMK,EAAIL,EAAEyF,UAAY,EAAGvF,EAAIF,EAAE0F,UAAY,EAC7C1F,EAAEqF,EAAIrF,EAAE+J,IAAI1E,EAAIhF,EAAIoJ,EAAE0B,aAAanL,EAAGzF,KAAK2R,cAAgB,EAAGlM,EAAEsF,EAAItF,EAAE+J,IAAIzE,EAAIpF,EAAIuJ,EAAE2B,cAAcpL,EAAGzF,KAAK2R,cAAgB,EAAGlM,EAAE+J,IAAI8C,QAAS,SAG9ItS,KAAK4W,WAAahO,EAAE,kCAAmC5I,KAAK8R,SAAS1F,QAAS5G,KAChE,IAAZA,EAAEoF,QAAiBpF,EAAEgK,IAAI8C,SAAW9M,EAAEsF,IAAMtF,EAAEsF,EAAIuF,KAAKsC,MAAsB,IAAhBtC,KAAKmH,UAAkB,KAAMhS,EAAEsF,IAAMtF,EAAEuF,EAAIsF,KAAKsC,MAAsB,IAAhBtC,KAAKmH,UAAkB,KAAMhS,EAAEgK,IAAI8C,QAAS,QAC1J1J,EAAE,6BAA8B5I,KAAKyX,oBAAoBzX,KAAK+R,UAAU3F,QAAS3G,IACtF,IAAgB,IAAZA,EAAEmF,QAAiBsE,EAAEU,gBAAgBnK,GACvC,OACF,MAAMK,EAAIL,EAAEyF,UAAY,EAAGvF,EAAIF,EAAE0F,UAAY,EAC7C1F,EAAEqF,EAAIrF,EAAE+J,IAAI1E,EAAIhF,EAAIoJ,EAAE0B,aAAanL,EAAGzF,KAAK2R,cAAgB,EAAGlM,EAAEsF,EAAItF,EAAE+J,IAAIzE,EAAIpF,EAAIuJ,EAAE2B,cAAcpL,EAAGzF,KAAK2R,cAAgB,EAAGlM,EAAE+J,IAAI8C,QAAS,KAE5I1J,EAAE,0BAA2B5I,KAAK0X,qBAAsB1X,KAAK2X,eAAiB3X,KAAK2R,aAAaiG,cAClGhP,EAAE,yBAGJ5I,KAAK6X,YAAW,QA9BdjP,EAAE,gBAAiBrD,GAgCvB,oBAAoBV,GAClB,GAAI+D,EAAE,wBAAyB5I,KAAK2R,aAAasC,SAAUjU,KAAK2R,aAAamG,YAAajT,EAAG,CAC3FA,EAAE+F,YAAwB,IAAf/F,EAAEuP,WAAwBvP,EAAEuP,SAAWvP,EAAEiG,EAAGjG,EAAEwP,SAAWxP,EAAEkG,GAAIlG,EAAE2K,IAAI1E,EAAIjG,EAAEuP,SAAUvP,EAAE2K,IAAIzE,EAAIlG,EAAEwP,SAAUzL,EAAE,uBAAwB/D,EAAE2K,IAAI1E,EAAGjG,EAAE2K,IAAIzE,IAAM/K,KAAK0R,cAAcoC,eAAiBnQ,QAAQC,MAAM,YAAaiB,EAAE2K,IAAI1E,EAAIoE,EAAE6E,eAAe/T,KAAK2R,aAAc9M,GAAIA,EAAE2K,IAAIzE,EAAImE,EAAE8E,eAAehU,KAAK2R,aAAc9M,KAAOA,EAAE2K,IAAI1E,EAAI,EAAGjG,EAAE2K,IAAIzE,EAAI,EAAGnC,EAAE,iBAAkB/D,EAAE2K,IAAI1E,EAAGjG,EAAE2K,IAAIzE,IACxY,MAAMxF,EAAIvF,KAAKsX,kBAAkBzS,GACjC,OAAO7E,KAAKuX,0BAA0B1S,EAAGU,GAAIA,EAE/C,MAAO,GAET,kBAAkBV,GAChB7E,KAAK8R,SAAS1F,QAAS3G,IACrBA,EAAE+J,IAAI5D,QAAS,EAAInG,EAAE+J,IAAI+D,aAAc,EAAI9N,EAAE+J,IAAI9D,OAAS,GAAIjG,EAAE+J,IAAI7D,YAAS,EAAQlG,EAAE+J,IAAIK,gBAAkB,EAAGpK,EAAE+J,IAAI3D,SAAW,EAAGpG,EAAE+J,IAAI8C,QAAS,IAErJ,MAAM/M,EAAI,GAAIC,EAAI,CAChB4J,SAAU,EACVD,WAAY,EACZM,aAAc,GAEhB,OAAOP,EAAEe,4BAA4B1K,EAAG,CAACV,GAAI,EAAGW,EAAG,GAAID,EAEzD,0BAA0BV,EAAGU,GAC3BA,EAAE6G,QAAS3G,IACT,GAA4B,IAAxBA,EAAE+J,IAAIG,QAAQN,MAAa,CAC7B,MAAMvJ,EAAIL,EAAE+J,IAAIG,QAChB,GAAI7J,EAAG,CACL,MAAMH,EAAIiQ,EAAEmC,aAAalT,EAAE2K,IAAI1E,EAAGjG,EAAE2K,IAAIzE,EAAa,GAAVjF,EAAEuJ,MAAY5J,EAAE+J,IAAIM,cAAgBrK,EAAE+J,IAAI3D,SAAW,EAAG/F,EAAEyJ,aAAcvP,KAAK0R,cAAcsG,YACtIvS,EAAE+J,IAAI1E,EAAInF,EAAEmF,EAAGrF,EAAE+J,IAAIzE,EAAIpF,EAAEoF,MAG7BxF,EAAE6G,QAAS3G,IACb,MAAMK,EAAIL,EAAE+J,IAAIG,QAChB,GAAI7J,GAAKA,EAAEuJ,MAAQ,EAAG,CACpB,MAAM1J,EAAIF,EAAE+J,IAAI7D,OAAO6D,IAAIM,cAAgBrK,EAAE+J,IAAI7D,OAAO6D,IAAI3D,SAAUhG,GAAKJ,EAAE+J,IAAI7D,OAAO6D,IAAIM,cAAgBnK,IAAMF,EAAE+J,IAAI7D,OAAO6D,IAAI9D,OAAOpF,OAAS,IAAMb,EAAE+J,IAAIK,gBAAkB,GAAInJ,EAAIkP,EAAEmC,aAAalT,EAAE2K,IAAI1E,EAAGjG,EAAE2K,IAAIzE,EAAmB,IAAfjF,EAAEuJ,MAAQ,GAAU,GAAI1J,EAAIE,EAAGJ,EAAE+J,IAAI7D,OAAO6D,IAAIG,QAAQJ,aAAcvP,KAAK0R,cAAcsG,YACpTvS,EAAE+J,IAAI1E,EAAIpE,EAAEoE,EAAGrF,EAAE+J,IAAIzE,EAAIrE,EAAEqE,KAIjC,mBAAmBlG,GACjB7E,KAAKiY,aAAe,GAAIpT,IAAM7E,KAAK8R,SAAWjN,GAAI7E,KAAK8R,SAAS1F,QAAS7G,IACvE2J,EAAEU,gBAAgBrK,KAAOA,EAAEyF,GAAK,EAAGzF,EAAE0F,GAAK,EAAG1F,EAAEiK,IAAMjK,EAAEiK,IAAI8C,QAAS,GAAM1J,EAAE,iBAAkBrD,EAAEtE,MAAOsE,EAAEiK,IAAM,CAC7G8C,QAAQ,EACR5G,OAAQ,KACN1L,KAAKiY,aAAa5J,KAAK9I,MACzBqD,EAAE,gBAAiB5I,KAAKiY,aAAa3R,QAE3C,WAAWzB,GAAI,EAAIU,GACjBvF,KAAKkY,YAAc,EAAGlY,KAAK0X,qBAAsB1X,KAAKmY,WAAa5S,EAAGvF,KAAK0R,cAAc0F,oBAAsBpX,KAAKiY,aAAa7L,QAAS5G,IACxIA,EAAEgK,MAAQhK,EAAEgK,IAAM,IAAKhK,EAAEgK,IAAI4I,QAAU5S,EAAEsF,EAAGtF,EAAEgK,IAAI6I,QAAU7S,EAAEuF,EAAGvF,EAAEgK,IAAI8I,WAAY,IACjFtY,KAAKuY,cAAc,GAAIvY,KAAK0R,cAAc0F,qBAAuBpX,KAAKiY,aAAa7L,QAAS5G,IAC9FA,EAAEgK,IAAI8I,YAAc9S,EAAEsF,EAAItF,EAAEgK,IAAI4I,QAAS5S,EAAEuF,EAAIvF,EAAEgK,IAAI6I,SAAU7S,EAAEgK,IAAI8I,WAAY,IAC/E1P,EAAE,mBAAoB5I,KAAKmY,YAAcnY,KAAKmY,aAAcvP,EAAE,0BAEpE,cAAc/D,GACZ,GAAI7E,KAAK2R,aAAa6G,kBAEpB,YADA5P,EAAE,iCAGJ,IAAIrD,EAAI,EACR,GAAIV,EAAI,EAAG,CACT,GAAI7E,KAAKyY,OAAOnS,QAAU,GAAI,CAC5BtG,KAAKyY,OAAOC,OAAO,EAAG,GACtB,MAAMlT,EAAIxF,KAAKyY,OAAOzY,KAAKyY,OAAOnS,OAAS,GAAKtG,KAAKyY,OAAO,GAC5DlT,EAAI8K,KAAKsE,MAAM,KAAOnP,EAAI,KAE5BxF,KAAKyY,OAAOpK,KAAKxJ,GAEnB,GAAI+D,EAAE,oBAAqB5I,KAAKkY,YAAa,KAAMlY,KAAK6W,eAAgB,wBAAyBtR,EAAG,KAAMvF,KAAK+W,OAAQ/W,KAAKqX,aAAcrX,KAAK4R,SAAStL,QAAStG,KAAKkY,YAAclY,KAAK6W,eACvL7W,KAAK2X,gBAAkB3X,KAAK2R,aAAaiG,eAAgB,OAD3D,CAIA5X,KAAK2X,gBAAkB3X,KAAK2R,aAAaiG,eAAgB,GAAK5X,KAAKkY,cAAelY,KAAKiY,aAAa7L,QAAS5G,IAC3GA,EAAEwF,GAAK,EAAGxF,EAAEyF,GAAK,IACfjL,KAAK2Y,oBACT,IAAK,MAAMnT,KAAKxF,KAAKiY,aACnBjY,KAAK4Y,oBAAoB5Y,KAAKiY,aAAazS,IAC7CxF,KAAK0R,cAAc0F,mBAAqBpX,KAAKuY,cAAcM,KAAKC,QAAU9Y,KAAKmY,YAAcnY,KAAKmY,aAAcvF,sBAAsB5S,KAAKuY,cAAc1F,KAAK7S,SAEhK,oBACE,GAAIA,KAAK8W,OACP,IAAK,MAAMjS,KAAK7E,KAAKiY,aAAc,CACjC,MAAM1S,EAAIvF,KAAKiY,aAAapT,GAC5B,KAAM7E,KAAK+Y,sBAAyBxT,EAAEiG,cAAgBjG,EAAEqF,OAASrF,EAAEiK,MAAwB,IAAjBjK,EAAEiK,IAAI8C,OAC9E,IAAK,MAAM9M,KAAKxF,KAAKiY,aAAc,CACjC,MAAMxS,EAAIzF,KAAKiY,aAAazS,GAC5BC,EAAE+J,MAAwB,IAAjB/J,EAAE+J,IAAI8C,QAAiBzN,IAAMW,GAAKxF,KAAKgZ,iBAAiBzT,EAAGE,IAG5E,GAAIzF,KAAK+W,OACP,GAAI/W,KAAK4R,UAAY5R,KAAK4R,SAAStL,OAAS,GAC1C,IAAK,MAAMzB,KAAK7E,KAAK4R,SACnB,IAAK/M,EAAE6I,eAAgB,CACrB,MAAMnI,EAAIV,EAAEuJ,UAAU6K,OAAO,CAACzT,EAAGC,IAAMD,GAAKC,EAAEoI,eAAiB,GAAI,IAClE7N,KAAKiY,aAAa5L,SAASxH,EAAEqU,WAAalZ,KAAKiY,aAAa5L,SAASxH,EAAEsU,UAAYnZ,KAAKoZ,iBACvFvU,EAAEqU,SACFrU,EAAEsU,OACF5T,SAIN,IAAK,MAAMV,KAAK7E,KAAKiY,aACnBpT,EAAE2K,KAAO3K,EAAE2K,IAAI7D,QAAU3L,KAAKoZ,iBAC5BvU,EAAE2K,IAAI7D,OACN9G,GAGV,OACE+D,EAAE,4BAA6B5I,KAAK2R,aAAaiG,eAAgB5X,KAAKkY,YAAc,IAEtF,KAAKrT,GACH,MAAMU,GAAKV,EAAEsC,OAAStC,EAAEiH,GAAGC,aAAe,IAAM,EAChD,OAAOlH,EAAE2K,IAAI8I,UAAYzT,EAAE2K,IAAI4I,QAAUvT,EAAEiG,EAAIvF,EAEjD,KAAKV,GACH,MAAMU,GAAKV,EAAEuC,QAAUvC,EAAEiH,GAAGE,cAAgB,IAAM,EAClD,OAAOnH,EAAE2K,IAAI8I,UAAYzT,EAAE2K,IAAI6I,QAAUxT,EAAEkG,EAAIxF,EAEjD,iBAAiBV,EAAGU,EAAGC,EAAI,GACzB,IAAIC,EAAI4K,KAAK8E,MAAMnV,KAAKqZ,KAAKxU,GAAK7E,KAAKqZ,KAAK9T,KAAO,GAAKvF,KAAKsZ,KAAKzU,GAAK7E,KAAKsZ,KAAK/T,KAAO,GACxFE,EAAIzF,KAAKuZ,qBAAuB9T,EAAIzF,KAAKuZ,oBACzC,MAAMzT,EAAIL,EAAIzF,KAAKwZ,mBAAqB,EAAoC,IAA/B/T,EAAIzF,KAAKwZ,oBAA4BxZ,KAAKiX,mBAAqBzR,EAAGG,EAAIG,EAAGJ,EAAII,EAAGD,GAAK7F,KAAKsZ,KAAKzU,GAAK7E,KAAKsZ,KAAK/T,IAAME,EAAGiB,GAAK1G,KAAKqZ,KAAKxU,GAAK7E,KAAKqZ,KAAK9T,IAAME,EACxMzF,KAAKyZ,WAAW5U,EAAGgB,EAAIF,GAAK,EAAGe,EAAIf,GAAK,GAAI3F,KAAKyZ,WAAWlU,EAAGM,EAAIH,EAAGgB,EAAIhB,GAE5E,iBAAiBb,EAAGU,GAClB,MAAMC,EAAI6K,KAAK8E,MACZnV,KAAKqZ,KAAKxU,GAAK7E,KAAKqZ,KAAK9T,KAAO,GAAKvF,KAAKsZ,KAAKzU,GAAK7E,KAAKsZ,KAAK/T,KAAO,GAExE,IAAIE,EAAID,EAAIxF,KAAK0Z,uBAAyB,EAAwC,KAAnC1Z,KAAK0Z,uBAAyBlU,GAAYxF,KAAKgX,qBAC9FxR,EAAIxF,KAAK2Z,kBAAoBlU,GAAQ,GACrC,MAAMK,GAAK9F,KAAKsZ,KAAKzU,GAAK7E,KAAKsZ,KAAK/T,IAAMC,EAAGG,GAAK3F,KAAKqZ,KAAKxU,GAAK7E,KAAKqZ,KAAK9T,IAAMC,EACjFxF,KAAKyZ,WAAW5U,EAAGiB,EAAIL,EAAGE,EAAIF,GAAIzF,KAAKyZ,WAAWlU,EAAGO,EAAIL,GAAK,EAAGE,EAAIF,GAAK,GAE5E,WAAWZ,EAAGU,EAAGC,GACf,GAAIX,EAAEmF,UAAYhK,KAAK+Y,uBAAyBlU,EAAE2G,YAAcpC,OAAOuK,MAAMpO,IAAM6D,OAAOuK,MAAMnO,GAC9F,OACFD,GAASV,EAAE2K,IAAI3D,UAAY,EAAIrG,GAASX,EAAE2K,IAAI3D,UAAY,EAAItG,EAAI,KAAOA,EAAI,IAAKC,EAAI,KAAOA,EAAI,IAAKD,GAAK,KAAOA,GAAK,IAAKC,GAAK,KAAOA,GAAK,IAC7I,MAAMC,EAAIZ,EAAEgG,cAAgB,EAC5B7K,KAAK4Z,QAAU/U,EAAEmG,IAAMzF,GAAK,EAAIE,IAAKzF,KAAK6Z,QAAUhV,EAAEoG,IAAMzF,GAAK,EAAIC,IAEvE,oBAAoBZ,GAClB,GAAIA,EAAE+F,MACJ,OACF,IAAIrF,EAAI8K,KAAKsE,MAAM9P,EAAEmG,IAAKxF,EAAI6K,KAAKsE,MAAM9P,EAAEoG,IAC3C1F,EAAIvF,KAAK8Z,eAAiBvU,EAAIvF,KAAK8Z,cAAetU,EAAIxF,KAAK8Z,eAAiBtU,EAAIxF,KAAK8Z,cAAevU,GAAKvF,KAAK8Z,eAAiBvU,GAAKvF,KAAK8Z,cAAetU,GAAKxF,KAAK8Z,eAAiBtU,GAAKxF,KAAK8Z,cAAe9Z,KAAK0R,cAAc0F,oBAAsBvS,EAAE2K,MAAQ3K,EAAE2K,IAAM,CAAE4I,QAASvT,EAAEiG,EAAGuN,QAASxT,EAAEkG,IAAMlG,EAAE2K,IAAI4I,QAAUvT,EAAE2K,IAAI4I,QAAU7S,EAAIvF,KAAK0R,cAAcwF,oBAAqBrS,EAAE2K,IAAI6I,QAAUxT,EAAE2K,IAAI6I,QAAU7S,EAAIxF,KAAK0R,cAAcyF,sBAAwBtS,EAAEiG,EAAIjG,EAAEiG,EAAIvF,EAAIvF,KAAK0R,cAAcwF,oBAAqBrS,EAAEkG,EAAIlG,EAAEkG,EAAIvF,EAAIxF,KAAK0R,cAAcyF,qBAAsBtS,EAAEmG,GAAK,EAAGnG,EAAEoG,GAAK,GAGzkB,MAAM8O,UAAWpD,EACf,YAAY9R,EAAGU,GACbwN,MAAMlO,EAAGU,GACTH,EAAEpF,KAAM,iBACRA,KAAK0R,cAAgB7M,EAEvB,UACE,OAAOQ,EAAErF,KAAM,MAAM,YACnB4I,EAAE,qCAAsC5I,KAAK6R,WAAW7R,KAAK8R,SAAU9R,KAAK+R,aAGhF,WAAWlN,EAAGU,GACZ,OAAOF,EAAErF,KAAM,MAAM,YACnB,GAAI4I,EAAE,mCAAoCrD,EAExC,YADAqD,EAAE,gBAAiBrD,GAGrBqD,EAAE,kBAAmBrD,GAAIvF,KAAK8R,SAAWjN,EAAG7E,KAAK+R,SAAWxM,EAAGV,EAAEuH,QAAStG,IACxEA,EAAE0J,IAAI5D,QAAS,EAAI9F,EAAE0J,IAAI+D,aAAc,EAAIzN,EAAE0J,IAAI9D,OAAS,GAAI5F,EAAE0J,IAAI7D,YAAS,EAAQ7F,EAAE0J,IAAIK,gBAAkB,EAAG/J,EAAE0J,IAAI3D,SAAW,EAAG/F,EAAE0J,IAAI8C,QAAS,IAErJ,IAAI9M,EAAI,GAAIC,EAAI,CACd2J,SAAU,EACVD,WAAY,EACZM,aAAc,GAEhB,GAAIP,EAAEQ,cAAclK,EAAG,CAACxF,KAAK+R,UAAW,EAAGtM,GAAID,EAAI,GAAIC,EAAI,CACzD2J,SAAU,EACVD,WAAY,EACZM,aAAc,GACbP,EAAEe,4BAA4BzK,EAAG,CAACxF,KAAK+R,UAAW,EAAGtM,EAAG,GAAIF,EAAEqF,WAChD,IAAfrF,EAAE6O,WAAwB7O,EAAE6O,SAAW7O,EAAEuF,EAAGvF,EAAE8O,SAAW9O,EAAEwF,GAAIxF,EAAEiK,IAAI1E,EAAIvF,EAAE6O,SAAU7O,EAAEiK,IAAIzE,EAAIxF,EAAE8O,SAAUzL,EAAE,iBAA2CrD,EAAEtE,KAAMsE,EAAEuF,EAAGvF,EAAEwF,QACpK,GAAI/K,KAAK0R,cAAcoC,cAC1BvO,EAAEiK,IAAI1E,EAAIoE,EAAE6E,eAAe/T,KAAK2R,aAAcpM,GAAIA,EAAEiK,IAAIzE,EAAImE,EAAE8E,eAAehU,KAAK2R,aAAcpM,OAC7F,CACH,MAAMO,EAAI9F,KAAK0R,cAAckC,gBAAkB,EAAGjO,EAAI3F,KAAK0R,cAAcmC,gBAAkB,EAC3FtO,EAAEiK,IAAI1E,EAAI,EAAIhF,EAAGP,EAAEiK,IAAIzE,EAAI,EAAIpF,EAEjCiD,EAAE,iBAAkBrD,EAAEiK,IAAI1E,EAAGvF,EAAEiK,IAAIzE,GAAI/K,KAAKsU,sBAAsBtU,KAAK+R,SAAUvM,EAAGC,GAAIzF,KAAK2R,aAAa8B,0BAA4B7K,EAAE,oCAAqC5I,KAAK0T,mBAAqBlO,EAAE4G,QAAStG,IAChN,IAAgB,IAAZA,EAAE8E,QAAiBsE,EAAEU,gBAAgB9J,GACvC,OACF,MAAMH,EAAIG,EAAEoF,UAAY,EAAGxF,EAAII,EAAEqF,UAAY,EAAGtF,GAAKqJ,EAAE0B,aAAa9K,EAAG9F,KAAK2R,cAAgB,EAAGjL,GAAKwI,EAAE2B,cAAc/K,EAAG9F,KAAK2R,cAAgB,EAC5I7L,EAAEgF,EAAIhF,EAAE0J,IAAI1E,EAAInF,EAAIE,EAAGC,EAAEiF,EAAIjF,EAAE0J,IAAIzE,EAAIrF,EAAIgB,EAAGZ,EAAE0J,IAAI8C,QAAS,OAInE,sBACE,IAAIzN,EAAI,GACR,GAAI7E,KAAK0R,cAAcsB,gBAA6D,iBAApChT,KAAK0R,cAAcsB,cAA4BnO,EAAI7E,KAAK0R,cAAcsB,cAAcE,MAAM,KAAKC,IAAK5N,GAAM6D,OAAOC,SAAS9D,IAAM6N,MAAMC,QAAQrT,KAAK0R,cAAcsB,iBAAmBnO,EAAI7E,KAAK0R,cAAcsB,eAAgBnO,EAAEyB,OAAS,GAAKzB,EAAEyB,OAAS,IACpS,IAAK,IAAIf,EAAIV,EAAEyB,OAAQf,EAAI,GAAIA,IAC7BV,EAAEwJ,KAAKxJ,EAAEA,EAAEyB,OAAS,IACxB,OAAOzB,EAET,UAAUA,EAAGU,GACX,GAAiB,IAAbV,EAAEyB,OACJ,OACF,IAAId,EAAI,EACR,IAAK,IAAIC,EAAI,EAAGA,EAAIF,GAAKE,EAAIZ,EAAEyB,OAAQb,IACrCD,GAAKX,EAAEY,GACT,OAAOD,EAET,sBAAsBX,EAAGU,EAAGC,GAC1B,MAAMC,OAAgD,IAA5CzF,KAAK0R,cAAcsI,qBAAkC,EAAIha,KAAK0R,cAAcsI,qBAAsBlU,EAAI9F,KAAKia,sBAAuBtU,EAAoF,GAAhF0K,KAAK6J,IAAIla,KAAK2R,aAAasC,SAAS7M,OAAQpH,KAAK2R,aAAasC,SAAS9M,OACvN,IAAIzB,EAAI2K,KAAK6J,IAAI7J,KAAKiG,IAAI3Q,EAAG,KAAM,KAAOF,EAC1CmD,EAAE,kBAAmBpD,EAAGG,EAAGD,EAAGD,EAAGK,GACjC,IAAID,EAAI,EACRN,EAAE6G,QAASxF,IACT,MAAMC,EAAID,EAAE4I,IAAIG,QAChB,GAAI9I,GAAiB,IAAZA,EAAEwI,MAAa,CACtBxJ,EAAIwK,KAAKsE,MAAmB,GAAb9N,EAAEyI,SAAgBe,KAAK+F,GAAK,GAAIvQ,EAAIH,IAAMG,EAAIH,GAC7D,MAAMoB,EAAI9G,KAAKma,UAAUrU,EAAGe,EAAEwI,QAAUxI,EAAEwI,MAAQxJ,EAAGqL,EAAI0E,EAAEmC,aAAalT,EAAE2K,IAAI1E,EAAGjG,EAAE2K,IAAIzE,EAAGjE,EAAGF,EAAE4I,IAAIM,cAAgBlJ,EAAE4I,IAAI3D,SAAW,EAAGhF,EAAE0I,aAAcvP,KAAK0R,cAAcsG,YAC1KpR,EAAE4I,IAAI1E,EAAIoG,EAAEpG,EAAGlE,EAAE4I,IAAIzE,EAAImG,EAAEnG,KAG/B,MAAMrE,EAAI2J,KAAKsE,MAAM,IAAMlP,GAC3BF,EAAE6G,QAASxF,IACT,MAAMC,EAAID,EAAE4I,IAAIG,QAChB,GAAI9I,GAAKA,EAAEwI,MAAQ,EAAG,CACpB,MAAMvI,EAAIF,EAAE4I,IAAI7D,OAAO6D,IAAIM,cAAgBlJ,EAAE4I,IAAI7D,OAAO6D,IAAI3D,SAAUsF,GAAKvK,EAAE4I,IAAI7D,OAAO6D,IAAIM,cAAgBhJ,IAAMF,EAAE4I,IAAI7D,OAAO6D,IAAIQ,YAAc,IAAMpJ,EAAE4I,IAAIK,gBAAkB,GAAI9E,EAAI/K,KAAKma,UAAUrU,EAAGe,EAAEwI,SAAWxI,EAAEwI,MAAQ,GAAK3I,EAAIb,EAAGwL,EAAIuE,EAAEmC,aAAalT,EAAE2K,IAAI1E,EAAGjG,EAAE2K,IAAIzE,EAAGA,EAAGjE,EAAIqK,EAAGvK,EAAE4I,IAAI7D,OAAO6D,IAAIG,QAAQJ,aAAcvP,KAAK0R,cAAcsG,YACrVpR,EAAE4I,IAAI1E,EAAIuG,EAAEvG,EAAGlE,EAAE4I,IAAIzE,EAAIsG,EAAEtG,MAKnC,MAAMqP,UAAWzD,EACf,YAAY/R,EAAGC,GACbkO,MAAMnO,EAAGC,GAEX,UACE,OAAOQ,EAAErF,KAAM,MAAM,kBACbA,KAAK6R,WAAW7R,KAAK8R,SAAU9R,KAAK+R,aAG9C,WAAWnN,EAAGC,GACZ,OAAOQ,EAAErF,KAAM,MAAM,YACnB,IAAI6E,EAIF,YADA+D,EAAE,gBAAiB/D,GAFnB+D,EAAE,kBAAmB/D,GAKvB7E,KAAK8R,SAAWlN,EAAG5E,KAAK+R,SAAWlN,EAAGD,EAAEwH,QAAS1G,IAC/CA,EAAE8J,IAAI5D,QAAS,EAAIlG,EAAE8J,IAAI+D,aAAc,EAAI7N,EAAE8J,IAAI9D,OAAS,GAAIhG,EAAE8J,IAAI7D,YAAS,EAAQjG,EAAE8J,IAAI6K,kBAAoB,EAAG3U,EAAE8J,IAAI3D,SAAW,IAErI,MAAMtG,EAAIvF,KAAK0R,cAAckC,gBAAkB,EAAGpO,EAAIxF,KAAK0R,cAAcmC,gBAAkB,EAAGpO,EAAI,CAChGqF,EAAGvF,EACHwF,EAAGvF,GACFM,EAAI9F,KAAK8R,SAASxL,OACrB,IAAIX,EAAQ,GAAJG,EAASuK,KAAK+F,GAAK,EAC3BzQ,EAAI,MAAQA,EAAI,KAAMA,EAAI,MAAQA,EAAI,KAAM3F,KAAK8R,SAAS1F,QAAQ,CAAC1G,EAAGG,KACpE,MAAMa,EAAIkP,EAAEmC,aAAatS,EAAEqF,EAAGrF,EAAEsF,EAAGpF,EAAGE,EAAGC,GACzCJ,EAAE8J,IAAI1E,EAAIpE,EAAEoE,EAAGpF,EAAE8J,IAAIzE,EAAIrE,EAAEqE,IACzB/K,KAAK2R,aAAa8B,0BAA4B7K,EAAE,oCAAqC5I,KAAK0T,mBAAqB1T,KAAK8R,SAAS1F,QAAS1G,IACxI,IAAgB,IAAZA,EAAEkF,QAAiBsE,EAAEU,gBAAgBlK,GACvC,OACF,MAAMG,EAAIH,EAAEwF,UAAY,EAAGxE,EAAIhB,EAAEyF,UAAY,EAAGvE,GAAKsI,EAAE0B,aAAalL,EAAG1F,KAAK2R,cAAgB,EAAG9K,GAAKqI,EAAE2B,cAAcnL,EAAG1F,KAAK2R,cAAgB,EAC5IjM,EAAEoF,EAAIpF,EAAE8J,IAAI1E,EAAIjF,EAAIe,EAAGlB,EAAEqF,EAAIrF,EAAE8J,IAAIzE,EAAIrE,EAAIG,EAAGnB,EAAE8J,IAAI8C,QAAS,QAKrE,MAAMgI,UAAW7I,EACf,YAAY5M,EAAGU,GACbwN,MAAMlO,EAAGU,GACTH,EAAEpF,KAAM,gBACRoF,EAAEpF,KAAM,iBACRoF,EAAEpF,KAAM,WAAY,IACpBoF,EAAEpF,KAAM,iBAAkB,IAC1BA,KAAK0R,cAAgB7M,EAAG7E,KAAK2R,aAAepM,EAE9C,UACEvF,KAAK6R,WAAW7R,KAAKua,eAAgBva,KAAK+R,UAE5C,WAAWlN,EAAGU,GACZ,IAAIA,EAIF,YADAqD,EAAE,gBAAiBrD,GAFnBqD,EAAE,kBAAmBrD,GAKvBqD,EAAE,YAAa/D,EAAEyB,QAAStG,KAAKua,eAAiB1V,EAAG7E,KAAK+R,SAAWxM,EAAGV,EAAEuH,QAAS3G,IAC/EA,EAAE+J,IAAI5D,QAAS,EAAInG,EAAE+J,IAAI+D,aAAc,EAAI9N,EAAE+J,IAAI9D,OAAS,GAAIjG,EAAE+J,IAAI7D,YAAS,EAAQlG,EAAE+J,IAAIK,gBAAkB,EAAGpK,EAAE+J,IAAI3D,SAAW,EAAGpG,EAAE+J,IAAI8C,QAAS,EAAI7M,EAAEqF,IAAMrF,EAAEqF,EAAI,GAAIrF,EAAEsF,IAAMtF,EAAEsF,EAAI,GAAI3B,OAAOuK,MAAMlO,EAAEqF,KAAOrF,EAAEqF,EAAI,GAAI1B,OAAOuK,MAAMlO,EAAEsF,KAAOtF,EAAEsF,EAAI,KACrP/K,KAAK8R,SAAW,GACpB,MAAMtM,EAAI,CACRiK,aAAc,EACdL,SAAU,EACVD,WAAY,GAEdD,EAAEe,4BAA4BjQ,KAAK8R,SAAU,CAAC9R,KAAK+R,UAAW,EAAGvM,EAAG,GAAIoD,EAAE,wBAAyB5I,KAAK2R,aAAasC,SAAUjU,KAAK2R,aAAamG,aAGrJ,MAAM0C,UAAW/I,EACf,YAAY5M,EAAGU,GACbwN,MAAMlO,EAAGU,GACTH,EAAEpF,KAAM,iBACRoF,EAAEpF,KAAM,mBAAoB,IAC5BA,KAAK0R,cAAgB7M,EAAG+D,EAAE,sCAAuC5I,KAAK0R,eAAgB1R,KAAK0R,cAAc9E,OAAS5M,KAAK0R,cAAc9E,KAAO,QAAS5M,KAAK0R,cAAcsB,gBAA6D,iBAApChT,KAAK0R,cAAcsB,cAA4BhT,KAAKiT,iBAAmBjT,KAAK0R,cAAcsB,cAAcE,MAAM,KAAKC,IAAK3N,GAAM4D,OAAOC,SAAS7D,IAAM4N,MAAMC,QAAQrT,KAAK0R,cAAcsB,iBAAmBhT,KAAKiT,iBAAmBjT,KAAK0R,cAAcsB,gBAAiBhT,KAAKqX,cAAe,EAE3d,UACE,OAAOhS,EAAErF,KAAM,MAAM,YACnB4I,EAAE,gDAAiD5I,KAAK8R,SAASxL,cAAetG,KAAK6R,WAAW7R,KAAK8R,SAAU9R,KAAK+R,aAGxH,4BAA4BlN,EAAGU,EAAGC,EAAGC,GACnCzF,KAAKya,gBAAgB5V,EAAGU,EAAGC,EAAGC,GAC9B,MAAMK,EAAI,GACVjB,EAAEuH,QAASvG,IACT,MAAMa,EAAIb,EAAE2J,IAAIH,MAAQ,GACxBvJ,EAAEY,KAAOZ,EAAEY,GAAK,IAAKZ,EAAEY,GAAG2H,KAAKxI,GAAIA,EAAE2J,IAAIG,QAAU,CACjDN,MAAOxJ,EAAE2J,IAAIH,MACbC,SAAU,EACVC,aAAc,KAEd1K,EAAEuH,QAASvG,IACb,MAAMa,EAAIb,EAAE2J,IAAIH,MAAQ,GAAIzI,EAAId,EAAEY,GAAIG,EAAID,EAAEN,OAC5CT,EAAE2J,IAAIO,eAAiBnJ,EAAEzF,QAAQ0E,GAAIA,EAAE2J,IAAIG,QAAQL,SAAWzI,EAAGhB,EAAE2J,IAAIG,QAAQJ,cAAgB1J,EAAE2J,IAAI3D,UAAY,EAAGhG,EAAE2J,IAAIM,cAAgBjK,EAAE2J,IAAIG,QAAQJ,eACtJ1K,EAAEuH,QAASvG,IACbA,EAAE2J,IAAIQ,YAAc,IAAMnK,EAAE2J,IAAIU,mBAAqB,KACnDrL,EAAEuH,QAASvG,IACS,IAAtBA,EAAE2J,IAAIQ,cAAsBnK,EAAE2J,IAAIU,mBAAqB,EAAGhB,EAAEiB,yBAAyBtK,MAEvF,MAAMF,EAAI7B,OAAOqI,KAAKrG,GAAGqN,IAAKtN,GAAMuD,OAAOC,SAASxD,IAAI6U,OAAQhV,EAAKG,IACnE,MAAMa,EAAIb,EAAI,GAAIe,EAAId,EAAEY,GACxB,IAAIG,EAAI,EACRD,EAAEwF,QAAStF,IACTA,EAAE0I,IAAI7D,QAAU9E,EAAIC,EAAE0I,IAAI7D,OAAO6D,IAAIe,0BAA4B1J,EAAIC,EAAE0I,IAAI7D,OAAO6D,IAAIe,yBAAgC,IAAN1K,EAAUgB,GAAK,EAAIC,EAAE0I,IAAIe,wBAA0B1J,EAAG+B,EAAE,UAAW/C,EAAGgB,EAAGC,EAAE7F,KAAM6F,EAAE0I,IAAIU,oBAAqBrJ,GAAKC,EAAE0I,IAAIU,sBAG3O,CAAC,GAAG9D,QAAQ1G,GAAIC,EAAEgV,OAAQ9U,GAAMA,EAAI,GAAGuG,QAAQ1G,GAAIC,EAAEgV,OAAQ9U,GAAMA,EAAI,GAAGuG,QAAQ1G,GAEpF,gBAAgBb,EAAGU,EAAGC,EAAGC,GACvBmD,EAAE,SAASpD,WAAWD,EAAEe,UAAWf,EAAEe,OAASb,EAAE0J,aAAe1J,EAAE0J,WAAa5J,EAAEe,QAASd,EAAIC,EAAE2J,WAAa3J,EAAE2J,SAAW5J,GACzH,MAAMM,EAAI,CACRuJ,MAAO7J,EACP8J,SAAU/J,EAAEe,OACZiJ,aAAc,GAEhBhK,EAAE6G,QAAS1G,IACTA,EAAE8J,MAAQ9J,EAAE8J,IAAM,CAAE9D,OAAQ,KAAOhG,EAAE8J,IAAI5D,QAAS,EAAIlG,EAAE8J,IAAIG,QAAU7J,EAAGJ,EAAE8J,IAAIH,MAAQ7J,EAAGX,EAAEwJ,KAAK3I,KAEnG,IAAIC,EAAI,EACRJ,EAAE6G,QAAS1G,IACT,IAAIG,EAAI,EAAGa,EAAI,EAAGE,EAAI,GACtBlB,EAAE0E,WAAWgC,QAASvF,IACpBA,EAAE2I,MAAQ3I,EAAE2I,IAAM,CAAE5D,QAAQ,EAAIF,OAAQ,KAAO7E,EAAE2I,IAAI5D,SAAW/E,EAAE2I,IAAI7D,OAASjG,EAAGwJ,EAAEU,gBAAgB/I,IAAMA,EAAE2I,IAAI5D,QAAS,EAAI/E,EAAE2I,IAAIK,gBAAkBnJ,IAAKhB,EAAE8J,IAAI9D,OAAO2C,KAAKxH,GAAID,EAAEyH,KAAKxH,GAAIhB,KAAOH,EAAE8J,IAAI9D,OAAO2C,KAAKxH,MAClN7G,KAAKya,gBAAgB5V,EAAG+B,EAAGpB,EAAI,EAAGC,GAAImB,EAAI,GAAIlB,EAAE2E,SAAS+B,QAASvF,IACpEA,EAAE2I,MAAQ3I,EAAE2I,IAAM,CAAE5D,QAAQ,EAAIF,OAAQ,KAAO7E,EAAE2I,IAAI5D,SAAW/E,EAAE2I,IAAI7D,OAASjG,EAAGwJ,EAAEU,gBAAgB/I,IAAMA,EAAE2I,IAAI5D,QAAS,EAAI/E,EAAE2I,IAAIK,gBAAkBnJ,IAAKhB,EAAE8J,IAAI9D,OAAO2C,KAAKxH,GAAID,EAAEyH,KAAKxH,GAAIhB,KAAOH,EAAE8J,IAAI9D,OAAO2C,KAAKxH,MAClN7G,KAAKya,gBAAgB5V,EAAG+B,EAAGpB,EAAI,EAAGC,GAAIC,EAAE8J,IAAI3D,SAAWhG,EAAI,EAAIA,EAAI,EAAGC,EAAEyJ,cAAgB7J,EAAE8J,IAAI3D,SAAUnG,EAAE8J,IAAIM,cAAgBhK,EAAEyJ,aAAc7J,EAAE8J,IAAIO,eAAiBpK,EAAGD,EAAE8J,IAAIQ,YAAcnK,EAAGF,MACjMG,EAAEyJ,aAAe9J,EAAEgK,eAAiBhK,EAAEgK,aAAe3J,EAAEyJ,cAE7D,WAAW1K,EAAGU,GACZ,OAAOF,EAAErF,KAAM,MAAM,YACnB,GAAI4I,EAAE,8CAA8CrD,EAIlD,YADA5B,QAAQC,MAAM,gBAFdgF,EAAE,kBAAmBrD,GAKvBvF,KAAK+R,SAAWxM,EAAGvF,KAAK8R,SAAWjN,EAAG+D,EAAE,YAAa/D,EAAEyB,QAASzB,EAAEuH,QAAS1G,IACzEA,EAAE8J,IAAI5D,QAAS,EAAIlG,EAAE8J,IAAI+D,aAAc,EAAI7N,EAAE8J,IAAI9D,OAAS,GAAIhG,EAAE8J,IAAI7D,YAAS,EAAQjG,EAAE8J,IAAIK,gBAAkB,EAAGnK,EAAE8J,IAAI3D,SAAW,EAAGnG,EAAE8J,IAAIe,wBAA0B,EAAG7K,EAAE8J,IAAIU,mBAAqB,EAAGxK,EAAE8J,IAAI8C,QAAS,IAEtN,IAAI9M,EAAI,GAAIC,EAAI,CACd2J,SAAU,EACVD,WAAY,EACZM,aAAc,GAEhBP,EAAEQ,cAAclK,EAAG,CAACxF,KAAK+R,UAAW,EAAGtM,GAAID,EAAI,GAAIC,EAAI,CACrD2J,SAAU,EACVD,WAAY,EACZM,aAAc,GACbzP,KAAKiQ,4BAA4BzK,EAAG,CAACxF,KAAK+R,UAAW,EAAGtM,GAAIzF,KAAKwT,mBAAmBxT,KAAK+R,SAAUvM,EAAGC,GAAImD,EAAE,YAAapD,EAAEc,QAAStG,KAAK2R,aAAa8B,0BAA4B7K,EAAE,oCAAqC5I,KAAK0T,kBAAmB9K,EAAE,gCAAiCrD,EAAEuF,EAAGvF,EAAEwF,KAAO/K,KAAK8R,SAAS1F,QAAS1G,KAC1S,IAAZA,EAAEkF,OAILsE,EAAEU,gBAAgBlK,KAAO0D,OAAOuK,MAAMjO,EAAE8J,IAAI1E,KAAOlC,EAAE,aAAclD,EAAEzE,KAAMyE,EAAE8J,IAAI1E,GAAIpF,EAAE8J,IAAI1E,EAAI,GAAI1B,OAAOuK,MAAMjO,EAAE8J,IAAIzE,KAAOnC,EAAE,aAAclD,EAAEzE,KAAMyE,EAAE8J,IAAIzE,GAAIrF,EAAE8J,IAAIzE,EAAI,GAAIrF,EAAEoF,EAAIoE,EAAE+C,eAAejS,KAAK2R,aAAcjM,GAAIA,EAAEqF,EAAImE,EAAEiD,eAAenS,KAAK2R,aAAcjM,GAAIA,EAAE8J,IAAI8C,QAAS,GAHvR5M,EAAE8J,IAAI8C,QAAS,IAIf1J,EAAE,gCAAiCrD,EAAEuF,EAAGvF,EAAEwF,IAC9C,MAAMjF,EAAIN,EAAEmV,OAAQjV,GAAsB,IAAhBA,EAAE8J,IAAIH,OAAc1J,EAAI,IAAIgR,EAAG,CACvDiE,WAAY,QACZ/D,eAAgB,IAChBG,qBAAsB,GACtBC,mBAAoB,EACpBnD,eAAe,GACd9T,KAAK2R,cACRhM,EAAEgS,eAAgB,EAAIhS,EAAE0R,cAAe,EAAgC,SAA5BrX,KAAK0R,cAAc9E,MAA+C,UAA5B5M,KAAK0R,cAAc9E,KAAmBjH,EAAEiU,OAAQ,EAAKjU,EAAEkU,OAAQ,EAAIlU,EAAEsS,aAAenS,EAAGH,EAAEkV,SAAS7a,KAAK4R,UAAWjM,EAAE4S,cAAc,MAGvN,mBAAmB1T,EAAGU,EAAGC,GACvB,IAAgB,IAAZX,EAAE+F,MAAc,CAClB,MAAMnF,EAAIzF,KAAK0R,cAAckC,gBAAkB,EAAG9N,EAAI9F,KAAK0R,cAAcmC,gBAAkB,EAC3FhP,EAAE2K,IAAI1E,EAAIrF,EAAGZ,EAAE2K,IAAIzE,EAAIjF,EAAG9F,KAAK0R,cAAcoC,eAAiBjP,EAAE2K,IAAI1E,EAAIoE,EAAE6E,eAAe/T,KAAK2R,aAAc9M,GAAIA,EAAE2K,IAAIzE,EAAImE,EAAE8E,eAAehU,KAAK2R,aAAc9M,IAAkC,QAA5B7E,KAAK0R,cAAc9E,KAAiB/H,EAAE2K,IAAIzE,GAAK/K,KAAK2R,aAAasC,SAAS7M,OAAS,EAAI,IAAkC,WAA5BpH,KAAK0R,cAAc9E,KAAoB/H,EAAE2K,IAAIzE,GAAK/K,KAAK2R,aAAasC,SAAS7M,OAAS,EAAI,IAAkC,UAA5BpH,KAAK0R,cAAc9E,KAAmB/H,EAAE2K,IAAI1E,GAAK9K,KAAK2R,aAAasC,SAAS9M,MAAQ,EAAI,IAAMtC,EAAE2K,IAAI1E,GAAK9K,KAAK2R,aAAasC,SAAS9M,MAAQ,EAAI,IAAKyB,EAAE,0BAA2B/D,EAAE2K,IAAI1E,EAAGjG,EAAE2K,IAAIzE,EAAG,CAAEmJ,iBAAkBzO,EAAG0O,iBAAkBrO,cAE/jB,IAAfjB,EAAEuP,WAAwBvP,EAAEuP,SAAWvP,EAAEiG,EAAGjG,EAAEwP,SAAWxP,EAAEkG,GAAIlG,EAAE2K,IAAI1E,EAAIjG,EAAEuP,SAAUvP,EAAE2K,IAAIzE,EAAIlG,EAAEwP,SAAUzL,EAAE,iBAA2C/D,EAAE5D,KAAM4D,EAAEiG,EAAGjG,EAAEkG,GACzKlG,EAAE2K,IAAI8C,QAAS,EAAItS,KAAKsU,sBAAsBzP,EAAGU,EAAGC,GAEtD,sBAAsBX,EAAGU,EAAGC,GAC1B,MAAMC,EAAIzF,KAAK2R,aAAasC,SAC5B,GAAgC,SAA5BjU,KAAK0R,cAAc9E,MAA+C,UAA5B5M,KAAK0R,cAAc9E,KAAkB,CAC7E,MAAM9G,EAAIqD,EAAEnJ,KAAK0R,cAAc6C,iBAAmB,GAAI5O,EAAIwD,EAAEnJ,KAAK0R,cAAc8C,iBAAmB,IAAK9O,EAAIyD,EAAEnJ,KAAK0R,cAAc+C,gBAAkB,IAAK5O,EAAIsD,EAAEnJ,KAAK0R,cAAcgD,gBAAkB,IAClM,IAAIhO,EAAI2J,KAAKsE,OAAOlP,EAAE0B,MAAQ,KAAO3B,EAAE4J,SAAW,IAClD1I,EAAIhB,IAAMgB,EAAIhB,GAAIgB,EAAIb,IAAMa,EAAIb,GAChC,IAAIe,EAAIyJ,KAAKsE,MAAMlP,EAAE2B,QAAU5B,EAAEiK,aAAe,IAChD7I,EAAId,IAAMc,EAAId,GAAIc,EAAIjB,IAAMiB,EAAIjB,GAAIJ,EAAE6G,QAASvF,KACjC,IAAZA,EAAE+D,QAAiC,IAAjB/D,EAAE2I,IAAI8C,QAAiBzL,IAAMhC,IAAkC,UAA5B7E,KAAK0R,cAAc9E,KAAmB/F,EAAE2I,IAAI1E,EAAIjG,EAAE2K,IAAI1E,EAAI9K,KAAK4U,iBAAiB/N,EAAGA,EAAE2I,IAAIG,QAAQN,MAAO3I,GAAKG,EAAE2I,IAAI1E,EAAIjG,EAAE2K,IAAI1E,EAAI9K,KAAK4U,iBAAiB/N,EAAGA,EAAE2I,IAAIG,QAAQN,MAAO3I,MAClOnB,EAAE6G,QAASvF,KACD,IAAZA,EAAE+D,QAAiC,IAAhB/D,EAAE2I,IAAIH,MAAcxI,IAAMhC,IAAMgC,EAAE2I,IAAIzE,EAAIlG,EAAE2K,IAAIzE,EAAInE,EAAIC,EAAE2I,IAAIO,gBAAkBlJ,EAAE2I,IAAIzE,EAAIlG,EAAE2K,IAAIzE,EAAInE,GAAKpB,EAAEiK,cAAgB,EAAI5I,EAAE2I,IAAIe,wBAA0B1J,EAAE2I,IAAIU,mBAAqB,UAE1M,CACL,MAAMpK,EAAIqD,EAAEnJ,KAAK0R,cAAc6C,iBAAmB,IAAK5O,EAAIwD,EAAEnJ,KAAK0R,cAAc8C,iBAAmB,IAAK9O,EAAIyD,EAAEnJ,KAAK0R,cAAc+C,gBAAkB,IAAK5O,EAAIsD,EAAEnJ,KAAK0R,cAAcgD,gBAAkB,IACnM,IAAIhO,EAAI2J,KAAKsE,OAAOlP,EAAE0B,MAAQ,KAAO3B,EAAEiK,aAAe,IACtD/I,EAAIhB,IAAMgB,EAAIhB,GAAIgB,EAAIb,IAAMa,EAAIb,GAChC,IAAIe,EAAIyJ,KAAKsE,OAAOlP,EAAE2B,OAAS,KAAO5B,EAAE4J,SAAW,IACnDxI,EAAId,IAAMc,EAAId,GAAIc,EAAIjB,IAAMiB,EAAIjB,GAAIJ,EAAE6G,QAASvF,KACjC,IAAZA,EAAE+D,QAAiC,IAAjB/D,EAAE2I,IAAI8C,QAAiBzL,IAAMhC,IAAkC,WAA5B7E,KAAK0R,cAAc9E,KAAoB/F,EAAE2I,IAAIzE,EAAIlG,EAAE2K,IAAIzE,EAAI/K,KAAK4U,iBAAiB/N,EAAGA,EAAE2I,IAAIG,QAAQN,MAAOzI,GAAKC,EAAE2I,IAAIzE,EAAIlG,EAAE2K,IAAIzE,EAAI/K,KAAK4U,iBAAiB/N,EAAGA,EAAE2I,IAAIG,QAAQN,MAAOzI,MACnOrB,EAAE6G,QAASvF,KACD,IAAZA,EAAE+D,OAAgC,IAAhB/D,EAAE2I,IAAIH,QAAgBxI,EAAE2I,IAAI1E,EAAIjG,EAAE2K,IAAI1E,EAAIpE,GAAKlB,EAAEiK,cAAgB,EAAI5I,EAAE2I,IAAIe,wBAA0B1J,EAAE2I,IAAIU,mBAAqB,OAIxJ,iBAAiBrL,EAAGU,EAAGC,GACrB,MAAMC,EAAI4K,KAAKC,IAAI/K,GACnB,GAAIvF,KAAKiT,kBAAoBjT,KAAKiT,iBAAiB3M,OAAS,EAAG,CAC7D,IAAIR,EAAI,EACR,IAAK,IAAIH,EAAI,EAAGA,EAAIF,EAAGE,IAAK,CAC1B,MAAMD,EAAI1F,KAAKiT,iBAAiBtN,IAAM,IACtCG,GAAKJ,EAEP,OAAOH,EAAI,EAAIO,GAAS,EAALA,EAEnB,OAAOP,EAAIC,GAGjB,MAAMsV,EAAK,CAACpX,EAAGkB,KACbmW,EAAGrX,GACH,IAAImB,EAAI,KACR,GAAqB,SAAjBnB,EAAEkX,WAAwB/V,EAAI,IAAIiO,EAAGpP,EAAGkB,GAAsB,WAAjBlB,EAAEkX,WAA0B/V,EAAI,IAAIkV,EAAGrW,EAAGkB,GAAsB,WAAjBlB,EAAEkX,WAA0B/V,EAAI,IAAIuV,EAAG1W,EAAGkB,GAAsB,UAAjBlB,EAAEkX,WAAyB/V,EAAI,IAAI8R,EAAGjT,EAAGkB,GAAsB,UAAjBlB,EAAEkX,WAAyB/V,EAAI,IAAIyV,EAAG5W,EAAGkB,GAAsB,eAAjBlB,EAAEkX,aAAgC/V,EAAI,IAAI2V,EAAG9W,EAAGkB,KAAMC,EAC/R,MAAM,IAAI0E,MAAM,mBAAqB7F,EAAEkX,YACzC,OAAOhW,EAAEoW,4BAA4D,IAA/BtX,EAAEuX,+BAAoD,IAAjBpW,EAAEgT,WAAuBhT,GACnGkW,EAAMrX,IACP,GAA+B,iBAApBA,EAAEkQ,iBAA+BlQ,EAAEkQ,eAAiBvK,SAAS3F,EAAEkQ,iBAA6C,iBAApBlQ,EAAEmQ,iBAA+BnQ,EAAEmQ,eAAiBxK,SAAS3F,EAAEmQ,iBAAmC,WAAjBnQ,EAAEkX,WAAyB,CAC7M,MAAMhW,EAAIlB,OACY,IAAtBkB,EAAEsW,kBAA+BtW,EAAEsW,gBAAkB,UAA2B,IAArBtW,EAAEgP,iBAA8BhP,EAAEgP,eAAiB,QAAyB,IAArBhP,EAAEiP,iBAA8BjP,EAAEiP,eAAiB,GAAIjP,EAAEsW,qBAAkB,OACxL,GAAIxX,EAAEkX,WAAWvO,SAAS,QAAS,CACxC,MAAMzH,EAAIlB,OACY,IAAtBkB,EAAEsW,kBAA+BtW,EAAEsW,gBAAkB,UAA2B,IAArBtW,EAAEgP,iBAA8BhP,EAAEgP,eAAiB,QAAyB,IAArBhP,EAAEiP,iBAA8BjP,EAAEiP,eAAiB,QAAe,IAAXjP,EAAEgI,OAAoBhI,EAAEgI,KAAO,YAA4B,IAApBhI,EAAEoO,gBAA6BpO,EAAEoO,cAAgB,KAAiB,QAAXpO,EAAEgI,MAA6B,WAAXhI,EAAEgI,QAAuBhI,EAAEsW,gBAAkB,IAAKtS,EAAE,yBAA0BA,EAAE,oCAAoD,IAApBhE,EAAE6P,gBAA6B7P,EAAE6P,cAAgB,UAA0B,IAApB7P,EAAE8P,gBAA6B9P,EAAE8P,cAAgB,UAA2B,IAArB9P,EAAE2P,iBAA8B3P,EAAE2P,eAAiB,UAA2B,IAArB3P,EAAE4P,iBAA8B5P,EAAE4P,eAAiB,OAAmB,SAAX5P,EAAEgI,MAA8B,UAAXhI,EAAEgI,QAAsBhI,EAAEsW,gBAAkB,IAAKtS,EAAE,oCAAoD,IAApBhE,EAAE6P,gBAA6B7P,EAAE6P,cAAgB,UAA0B,IAApB7P,EAAE8P,gBAA6B9P,EAAE8P,cAAgB,UAA2B,IAArB9P,EAAE2P,iBAA8B3P,EAAE2P,eAAiB,UAA2B,IAArB3P,EAAE4P,iBAA8B5P,EAAE4P,eAAiB,WAE75B,UAAjB9Q,EAAEkX,YAA2C,UAAjBlX,EAAEkX,cAA4BlX,EAAEwX,qBAAkB,IAChFC,EAAK,CACNC,aAAcN,EACdO,4BAA6BN,GAMeO,GAA3C5O,OAAOC,YAAyC,CACjDzL,GAAI,qBACJ4J,EAAG,EACHC,EAAG,EACH9J,KAAM,GACNgJ,WAAY,KAEd,IAAIsR,EAAK,EACT,MAAMC,GAAM9X,KACTA,EAAE+X,kBAAoB/X,EAAE+X,gBAAkB/X,EAAEgY,iBAAkBhY,EAAEiY,0BAA4BjY,EAAEiY,wBAA0BjY,EAAEkY,wBAAmD,iBAAnBlY,EAAEmY,gBAA8BnY,EAAEmY,cAAgBxS,SAAS3F,EAAEmY,gBAA2C,iBAAnBnY,EAAEoY,gBAA8BpY,EAAEoY,cAAgBzS,SAAS3F,EAAEoY,gBAAiBpY,EAAEqY,wBAA0BrY,EAAEsY,sBAAwBtY,EAAEqY,uBACtX,MAAMnX,EAAI,CACRqX,WAAY,GACZC,OAAO,EACPC,cAAc,EACdC,iBAAkB,GAClBC,uBAAuB,EACvB7D,mBAAmB,EACnB8D,mBAAmB,EACnBC,eAAe,EACfC,eAAe,EACfC,eAAe,EACfC,kBAAkB,EAClBC,2BAA2B,EAC3BC,gBAAgB,EAChBC,qBAAiB,EACjBpB,qBAAiB,EACjBE,6BAAyB,EACzBmB,sBAAuB,GACvBC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EACjBC,yBAAyB,EACzBC,sBAAsB,EACtBC,yBAAyB,EACzBC,sBAAsB,EACtBC,wBAAwB,EACxBC,wBAAwB,EACxBC,yBAAyB,EACzBC,mBAAmB,EACnBxC,0BAA0B,EAC1ByC,wBAAwB,EACxBC,yBAAyB,EACzB/B,wBAAwB,EACxBgC,sBAAsB,EACtBC,eAAgB,KAChBC,iBAAkB,IAClBC,iBAAkB,QAClBC,iBAAkB,SAClBC,sBAAsB,EACtBC,0BAA0B,EAC1BC,oBAAoB,EACpBC,4BAA6B,OAC7BC,8BAA0B,EAC1BC,4BAAwB,EACxBC,iBAAkB,UAClBC,uBAAwB,UACxBC,qBAAsB,UACtBC,iBAAkB,UAClBC,iBAAkB,UAClBC,0BAAsB,EACtBC,iBAAkB,EAClBC,sBAAkB,EAClBC,6BAAyB,EACzBC,6BAAyB,EACzBC,sBAAkB,EAClBzO,sBAAkB,EAClBC,uBAAmB,EACnByO,sBAAsB,EACtBC,uBAAuB,EACvBC,0BAAsB,EACtBpD,2BAAuB,EACvBqD,mBAAmB,EACnBC,iBAAiB,EACjBC,iBAAiB,EACjBC,iBAAiB,EACjBC,kBAAmB,GACnBC,kBAAmB,GACnB7D,cAAe,EACfC,cAAe,EACf7H,SAAU,CAAE9M,MAAO,IAAKC,OAAQ,KAChCuY,WAAY,CAAExY,MAAO,KAAMC,OAAQ,IAAKuH,KAAM,EAAGE,IAAK,KACtD+Q,WAAY,CAAEzY,MAAO,KAAMC,OAAQ,IAAK0D,EAAG,EAAGC,EAAG,KACjD8U,aAAc,CAAE1Y,MAAO,KAAMC,OAAQ,IAAK0D,EAAG,EAAGC,EAAG,KACnD+U,kBAAmB,CACjBC,YAAa,GACbC,aAAc,GACdC,KAAM,EACNC,KAAM,EACNxV,WAAO,EACPe,KAAM,8BAER0U,mBAAmB,EACnBC,uBAAuB,EACvBC,yBAAyB,EACzBC,YAAY,EACZC,cAAe,GACfC,cAAe,GACfC,cAAe,GACfC,QAAS,GACTC,YAAa,GACb/F,WAAY,OACZgG,gBAAiB,GACjB1F,gBAAiB,IACjBzH,0BAA0B,EAC1BoN,iCAAiC,EACjCjJ,eAAe,EACfkJ,cAAU,EACV9F,4BAA4B,EAC5B+F,WAAY,IACZC,cAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,oBAAoB,EACpBrJ,WAAY,CACV3Q,MAAO,GACPC,OAAQ,IAEVga,aAAc,CACZtW,EAAG,GACHC,EAAG,GACHsW,YAAa,EACbC,YAAa,GAEfC,mBAAmB,EACnBC,cAAe,CACb1W,EAAG,GACHC,EAAG,GACH5D,MAAO,EACPC,OAAQ,GAEVqa,kBAAkB,EAClBC,kBAAkB,EAClBC,gBAAiBrY,EAAGsY,KAAKC,MAAMD,KAAKE,UAAUxG,KAC9CyG,kBAAkB,EAClBC,gBAAiB,CACfpV,KAAM,2BACNC,GAAI,yBACJnC,MAAO,GACPzJ,KAAM,YAERghB,gBAAiB,CACf/I,SAAU,KACVgJ,aAAc,KACd/I,OAAQ,CACNgJ,SAAS,EACTrX,EAAG,IACHC,EAAG,IACHe,GAAI,CACFC,YAAa,GACbC,aAAc,KAGlBoC,UAAW,CAAC,KAEd3C,KAAM,IAER,GAAI7G,EAAEod,gBAAkBvV,EAAG7H,EAAEod,iBAAkBte,EAAE0e,QAAU1e,EAAEgd,QAC3D,MAAM,IAAInX,MAAM,kEAClB,MAAM1E,GAAgB,IAAZnB,EAAEwY,MACZrX,GAAK+D,EAAE,mCAAoClF,GAAIwE,SAAWA,OAAOW,mBAAqBhE,GACtF,MAAMU,EAAIzB,OAAOqI,KAAKvH,GACtBlB,GAAKI,OAAOqI,KAAKzI,GAAG0I,QAAS3G,IAC3B,GAAU,YAANA,GAAyB,WAANA,EACrB,OACF,MAAMK,EAAIpC,EAAE+B,GACZ,GAAKF,EAAE8G,SAAS5G,GAIhB,GAAgB,iBAALK,EAAe,CACxB8C,EAAE,iCAAkCnD,EAAGK,GACvC,MAAMH,EAAIf,EAAEa,GACZ,GAAIE,IAAMyN,MAAMC,QAAQ1N,IAAMG,EAC5BhC,OAAOqI,KAAKxG,GAAGyG,QAAS1G,IACtBC,EAAED,GAAKI,EAAEJ,UAER,GAAI0N,MAAMC,QAAQ1N,GAAI,CACzB,MAAMD,EAAI,GACVI,EAAEsG,QAASvG,IACTA,GAAiB,iBAALA,EAAgBH,EAAE2I,KAAKuT,KAAKC,MAAMD,KAAKE,UAAUjc,KAAOH,EAAE2I,KAAKxI,KACzEjB,EAAEa,GAAKC,OAEXd,EAAEa,GAAKK,OAETlB,EAAEa,GAAKK,OAlBP8C,EAAE,gCAAiCnD,KAoBvC,IAAID,EAAI,GACR,OAIKA,EAJG9B,EAAEgd,SAAYtN,MAAMC,QAAQ3P,EAAEgd,UAAiC,IAArBhd,EAAEgd,QAAQpa,OAInD5C,EAAEgd,QAJgEhd,EAAE0e,OAAa,CAAC1e,EAAE0e,QAAc,CAAC,CAC1GC,MAAO,KACPzH,WAAY,SACZM,gBAAiB,MACCtS,EAAE,iBAAkBpD,GAAIZ,EAAE8b,QAAUlb,EAAE2N,IAAK1N,GAAMmc,KAAKC,MAAMD,KAAKE,UAAUrc,KAAMb,EAAE0Y,yBAA2B1Y,EAAEyY,sBAAuB,GAAKtC,EAAGnW,EAAE8b,QAAQ,IAAK4B,GAAG1d,EAAE8b,QAAQ,GAAI9b,GAAIA,GACtM0d,GAAK,CAAC5e,EAAGkB,KACVgE,EAAE,8BAA+BlF,EAAEkX,WAAYhW,GAAqB,wBAAjBlB,EAAEkX,YAAyD,WAAjBlX,EAAEkX,iBAAkD,IAAvBhW,EAAEqa,mBAAgCra,EAAEqa,iBAAmB,QAA2B,IAAvBra,EAAEka,mBAAgCla,EAAEka,iBAAmB,QAA+B,IAA3Bla,EAAEwa,uBAAoCxa,EAAEwa,qBAAuB,WAA8B,mCAAjB1b,EAAEkX,YAAmDlX,EAAEkX,WAAWvO,SAAS,cAAwC,IAA7BzH,EAAE0Z,yBAAsC1Z,EAAE0Z,uBAAyB,QAA2B,IAAvB1Z,EAAEqa,mBAAgCra,EAAEqa,iBAAmB,QAA2B,IAAvBra,EAAEka,mBAAgCla,EAAEka,iBAAmB,IAAgB,QAAXpb,EAAEkJ,MAA6B,WAAXlJ,EAAEkJ,QAAuBhI,EAAEsW,gBAAkB,IAAKtS,EAAE,yBAAiD,IAAvBhE,EAAEka,wBAAsD,IAA3Bla,EAAEwa,uBAAoCxa,EAAEwa,qBAAuB,MAAOxW,EAAE,kCAA8C,SAAXlF,EAAEkJ,MAA8B,UAAXlJ,EAAEkJ,QAAsBhI,EAAEsW,gBAAkB,IAAKtS,EAAE,yBAAiD,IAAvBhE,EAAEka,wBAAsD,IAA3Bla,EAAEwa,uBAAoCxa,EAAEwa,qBAAuB,MAAOxW,EAAE,mCAAsD,UAAjBlF,EAAEkX,YAA2C,UAAjBlX,EAAEkX,cAA4BhW,EAAEsY,yBAA0B,EAAItY,EAAEuY,sBAAuB,QAA4B,IAAvBvY,EAAEqa,mBAAgCra,EAAEqa,iBAAmB,QAA2B,IAAvBra,EAAEka,mBAAgCla,EAAEka,iBAAmB,QAA+B,IAA3Bla,EAAEwa,uBAAoCxa,EAAEwa,qBAAuB,WACl1CmD,GAAM7e,IACP,MAAMkB,EAAI4W,GAAG9X,GACb,OAAOkF,EAAE,8BAA+BlF,GAAIkF,EAAE,2BAA4BhE,GAAIA,EAAEqX,aAAerX,EAAEqX,WAAa,SAASV,KAAS3W,GAC/H4d,GAAK,CACNC,mBAAoBF,GACpBG,oBAAqBlH,GACrBmH,4BAA6BL,IAQ5B5V,OAAOC,YACV,MAAMiW,GACJ,YAAYhe,EAAGC,GACbO,EAAEpF,KAAM,WACRoF,EAAEpF,KAAM,aACRoF,EAAEpF,KAAM,WAAW,GACnBoF,EAAEpF,KAAM,iBAAkB,QAE1BA,KAAK6iB,UAAYhe,EAAG7E,KAAKQ,QAAU+hB,GAAG3d,GAAIgE,EAAE,qBAAsB5I,MAEpE,eAAe4E,GACb5E,KAAKQ,QAAQ0b,MAAQtX,EAAGsD,SAAWA,OAAOW,mBAAqBjE,GAEjE,kBAAkBA,GAChB5E,KAAK8iB,SAAU,EAAI9iB,KAAK+iB,eAAiBne,EAE3C,eACE5E,KAAK+iB,kBAGT,MAAMC,WAAWJ,GACf,YAAY/d,EAAGU,GACbwN,MAAMlO,EAAGU,GACTH,EAAEpF,KAAM,QACRoF,EAAEpF,KAAM,cAEV,OAAO6E,GACL7E,KAAKijB,KAAOpe,EAEd,aAAaA,GACX7E,KAAKkjB,WAAare,EAEpB,wBACE,OAAO7E,KAAKijB,KAAKE,yBAGrB,MAAMC,WAAWJ,GACf,YAAYne,EAAGU,GACbwN,MAAMlO,EAAGU,GACTH,EAAEpF,KAAM,YAAa,CACnB+R,cAAU,EACVsR,MAAO,GACPC,MAAO,GACPC,aAAc,KAEhBne,EAAEpF,KAAM,mBAAoB,GAC5BoF,EAAEpF,KAAM,gBAAiB,IACzBoF,EAAEpF,KAAM,oBACRoF,EAAEpF,KAAM,YACRoF,EAAEpF,KAAM,gBACRoF,EAAEpF,KAAM,8BAA8B,GACtCoF,EAAEpF,KAAM,kBAAkB,GAE5B,gBAAgB6E,EAAGU,GACjBvF,KAAKwjB,UAAY3e,EAAG7E,KAAKyjB,cAAgBle,EAAEke,cAAele,EAAE/E,QAAUR,KAAKQ,QAASR,KAAK0jB,aAAene,EAE1G,oBAAoBV,EAAGU,GACrBvF,KAAKwjB,UAAY3e,EAAG7E,KAAKyjB,cAAgBle,EAAEke,cAAele,EAAE/E,QAAUR,KAAKQ,QAASR,KAAK0jB,aAAene,EAE1G,YAAYV,GACV,MAAMU,EAAIgd,GAAG1d,GACb7E,KAAK0jB,aAAaljB,QAAU+E,EAAGvF,KAAKQ,QAAUR,KAAK0jB,aAAaljB,QAElE,2BAA2BqE,GACzB7E,KAAKQ,QAAQogB,gBAAkB/b,EAAE+b,gBAAiB5gB,KAAKQ,QAAQmgB,YAAc9b,EAAEwd,MAAOriB,KAAKQ,QAAQoa,WAAa/V,EAAE+V,WAAY5a,KAAKQ,QAAQ0a,gBAAkBrW,EAAEqW,gBAAiBlb,KAAK8gB,SAAWhG,EAAGjW,EAAG7E,KAAKQ,SAE7M,eACE,GAAIR,KAAK2jB,iBACP/a,EAAE,qBAAsB5I,KAAK2jB,kBAAmB3jB,KAAK8gB,SAAW9gB,KAAK2jB,sBAClE,GAAI3jB,KAAKQ,QAAQkgB,SAAW1gB,KAAKQ,QAAQkgB,QAAQpa,OAAS,EAAG,CAChE,MAAMzB,EAAI7E,KAAKQ,QAAQkgB,QAAQ,GAC/B9X,EAAE,0CAAgD5I,KAAKQ,QAAQoa,YAAa5a,KAAK4jB,2BAA2B/e,QAE5G+D,EAAE,mCACJA,EAAE,qBAAsB5I,KAAK8gB,UAE/B,aAAajc,EAAGU,GAAI,GAClB,OAAOF,EAAErF,KAAM,MAAM,kBACbA,KAAK6jB,aAAcjb,EAAE,gBAAiB/D,GAAI7E,KAAK8jB,kBAAkBjf,MAG3E,aACE,OAAOQ,EAAErF,KAAM,MAAM,YACnBA,KAAKwjB,UAAUH,MAAQ,GAAIrjB,KAAKwjB,UAAUF,MAAQ,GAAItjB,KAAKwjB,UAAUD,aAAe,GAAIvjB,KAAKwjB,UAAUzR,cAAW,KAGtH,oBACE,OAAO1M,EAAErF,KAAM,MAAM,YACnBA,KAAKwjB,UAAUD,aAAe,MAGlC,kBAAkB1e,EAAI,GACpB,MAAMU,EAAI,KAAOvF,KAAKwjB,UAAUH,MAAM/c,OAASzB,GAC/C,OAAO7E,KAAK+jB,YAAYxe,GAAKvF,KAAKgkB,kBAAkBnf,EAAI,IAAM+D,EAAE,qBAAsB/D,EAAGU,GAAIA,GAE/F,UAAUV,GACRA,EAAEuH,QAAS7G,IACT,IAAIC,EAAIxF,KAAKwjB,UAAUH,MAAMY,KAAMxe,GAAMA,EAAEvE,KAAOqE,EAAErE,IACpDsE,IAAMA,EAAI8D,EAAG/D,GAAIC,IAAMA,EAAE0e,SAAWlkB,KAAKmkB,mBAAoBnkB,KAAKwjB,UAAUH,MAAMhV,KAAK7I,OAG3F,UAAUX,GACRA,EAAEuH,QAAS7G,IACT,IAAYE,EAAGK,EAAXN,GAAI,EACR,GAAgCC,EAAX,iBAAVF,EAAEqH,KAAuBrH,EAAEqH,KAAW5M,KAAKwjB,UAAUH,MAAMY,KAAM/S,GAAMA,EAAEhQ,KAAOqE,EAAEqH,MAAiC9G,EAAX,iBAARP,EAAEsH,GAAqBtH,EAAEsH,GAAS7M,KAAKwjB,UAAUH,MAAMY,KAAM/S,GAAMA,EAAEhQ,KAAOqE,EAAEsH,KAAMpH,EAE7L,YADA9B,QAAQC,MAAM,2BAA4B2B,GAG5C,IAAKO,EAEH,YADAnC,QAAQC,MAAM,yBAA0B2B,GAG1C,MAAMI,EAAI,GAAGF,EAAEye,YAAYpe,EAAEoe,WAAYxe,EAAI,GAAGI,EAAEoe,YAAYze,EAAEye,WAAYre,EAAI4G,EAAGlH,GACnF,IAAImB,EAAI1G,KAAKwjB,UAAUF,MAAMW,KAAM/S,GAAMA,EAAEgT,WAAave,GAAIiB,GAAI,EAChEF,IAAMA,EAAI1G,KAAKwjB,UAAUF,MAAMW,KAAM/S,GAAMA,EAAEgT,WAAaxe,GAAIgB,EAAIE,GAAI,GAAMpB,GAAI,EAAIkB,EAAI,CACtFwd,SAAUve,EACVuT,SAAUzT,EACV0T,OAAQrT,EACRse,UAAU,EACV1W,gBAAgB,EAChBU,UAAW,MAEb,IAAIvH,EAAIhB,EAAEsH,MACVtH,EAAEkI,cAAgBlH,EAAI7G,KAAKqkB,aAAaxe,EAAE6E,QAASjF,EAAE0E,cAAgB1E,EAAE0E,YAAc,IAAKrE,EAAEqE,cAAgBrE,EAAEqE,YAAc,IAAKtE,EAAE6H,iBAAmBjI,EAAE0E,YAAYkC,SAASvG,IAAML,EAAE0E,YAAYkE,KAAKvI,GAAIA,EAAEqE,YAAYkC,SAAS5G,IAAMK,EAAEqE,YAAYkE,KAAK5I,GAAIA,EAAE4E,SAASgC,SAASvG,IAAML,EAAE4E,SAASgE,KAAKvI,GAAIA,EAAEsE,WAAWiC,SAAS5G,IAAMK,EAAEsE,WAAWiE,KAAK5I,GAAIiB,EAAEgH,gBAAiB,GACjX,IAAI5G,GAAI,EACR,IAAK,IAAIoK,EAAI,EAAGA,EAAIxK,EAAE0H,UAAU9H,OAAQ4K,IACtC,IAAKxK,EAAE0H,UAAU8C,GAAGhQ,IAAM2E,EAAE3E,KAAOwF,EAAE0H,UAAU8C,GAAGhQ,KAAO2E,EAAE3E,GAAI,CAC7D4F,GAAI,EACJ,OAEE,IAANA,IAAajB,EAAE3E,KAAO2E,EAAE3E,GAAK,GAAGwF,EAAEwd,YAAYxd,EAAE0H,UAAU9H,UAAWT,EAAEye,UAAY1d,EAAGf,EAAEsH,MAAQtG,EAAGH,EAAE0H,UAAUC,KAAKxI,IAAKL,IAAMxF,KAAKwjB,UAAUF,MAAMjV,KAAK3H,GAAIA,EAAE0d,UAAW,KAG9K,aAAavf,EAAGU,EAAGC,EAAGC,GACpByJ,EAAEsC,aAAa3M,EAAGU,EAAGC,EAAGC,GAE1B,kBAAkBZ,GAChBA,EAAE0f,QAAU1f,EAAE0f,MAAQ1f,EAAEuJ,UAAWzK,QAAQ6gB,KAAK,yJAA0J3f,EAAE0f,QAAU1f,EAAE0f,MAAQ1f,EAAEye,MAAO3f,QAAQ6gB,KAAK,qJACtP,MAAMjf,EAAIV,EAAEwe,MAAO7d,EAAI,GAAIC,EAAI,GAC/BzF,KAAKwR,aAAajM,EAAG,KAAMC,EAAGC,GAAIZ,EAAE0f,MAAMnY,QAAStG,IACjDL,EAAE4I,KAAKvI,KACL9F,KAAKykB,UAAUjf,GAAIoD,EAAE,wBAAyB5I,KAAK0kB,UAAUjf,GAAIzF,KAAK2kB,eAAgB/c,WAAW,KACnG/C,EAAE0e,cAAgBvjB,KAAK4kB,gBAAgB/f,EAAE0e,eACxC,KAEL,aAAa1e,EAAGU,GAAI,EAAIC,GAAI,GAC1B,MAAMC,EAAIF,EAAI,SAAW,GACzB,GAAIC,EACF,MAAO,GAAGxF,KAAKQ,QAAQyb,cAAcxW,iBACvC,GAAIZ,EAAG,CACL,MAAMiB,EAAIqC,EAAGtD,GACb,OAAO7E,KAAKyjB,cAActQ,IAAKxN,GAAMA,EAAEzE,IAAImL,SAASvG,IAAM9F,KAAKyjB,cAAcpV,KAAK,CAAEnN,GAAI4E,EAAG4E,MAAO7F,IAAM,GAAG7E,KAAKQ,QAAQyb,cAAcxW,UAAUK,IAEhJ,MAAO,GAAG9F,KAAKQ,QAAQyb,cAAcxW,iBAEzC,WACE,OAAOzF,KAAKwjB,UAAUH,MAExB,WACE,OAAOrjB,KAAKwjB,UAAUF,MAExB,mBACE,MAAMze,EAAI,GAAIU,EAAI,GAClB,OAAOvF,KAAKwjB,UAAUH,MAAMjX,QAAS5G,IACnC,MAAMC,EAAIyG,EAAG1G,GACbC,GAAKZ,EAAEwJ,KAAK5I,KACVzF,KAAKwjB,UAAUF,MAAMlX,QAAS5G,IAChC2I,EAAG3I,EAAGD,KACJ,CACFsf,OAAQ7kB,KAAKwjB,UAAUzR,SAAW/R,KAAKwjB,UAAUzR,SAAS7Q,GAAK,GAC/DmiB,MAAOxe,EACP0f,MAAOhf,GAGX,sBACE,MAAMV,EAAI,GAAIU,EAAI,CAChB,WACA,gBACA,eACA,eACA,aACA,aACA,aACA,kBACA,kBACA,cACA,aACA,gBACA,aACA,aACA,WACA,aACA,kBACA,kBACA,mBAEF,OAAOzB,OAAOqI,KAAKnM,KAAKQ,SAAS4L,QAAS5G,IACxCD,EAAE8G,SAAS7G,KAAOX,EAAEW,GAAKxF,KAAKQ,QAAQgF,MACpCX,EAEN,qBACE+D,EAAE,iBAAkBgZ,KAAKE,UAAU9hB,KAAK8kB,wBAAyBlc,EAAE,mBAAoBgZ,KAAKE,UAAU9hB,KAAK+kB,qBAE7G,YAAYlgB,GACV,IAAK,IAAIU,EAAI,EAAGA,EAAIvF,KAAKwjB,UAAUH,MAAM/c,OAAQf,IAC/C,GAAIvF,KAAKwjB,UAAUH,MAAM9d,GAAGrE,KAAO2D,EACjC,OAAO7E,KAAKwjB,UAAUH,MAAM9d,GAElC,YAAYV,GACV,IAAK,IAAIU,EAAI,EAAGA,EAAIvF,KAAKwjB,UAAUF,MAAMhd,OAAQf,IAC/C,GAAIvF,KAAKwjB,UAAUF,MAAM/d,GAAG2e,WAAarf,EACvC,OAAO7E,KAAKwjB,UAAUF,MAAM/d,GAElC,gBAAgBV,GACd,IAAK,IAAIU,EAAI,EAAGA,EAAIvF,KAAKwjB,UAAUF,MAAMhd,OAAQf,IAC/C,IAAwE,IAApEvF,KAAKwjB,UAAUF,MAAM/d,GAAG6I,UAAU4W,UAAWxf,GAAMA,EAAEtE,KAAO2D,GAC9D,OAAO7E,KAAKwjB,UAAUF,MAAM/d,GAElC,SAASV,GACP+D,EAAE,YAAa/D,GAAI7E,KAAKykB,UAAU5f,GAEpC,SAASA,GACP+D,EAAE,YAAa/D,GAAI7E,KAAK0kB,UAAU7f,GAEpC,gBAAgBA,GACd+D,EAAE,mBAAoB/D,GAAIA,EAAEuH,QAAS7G,IACnC,MAAMC,EAAInC,SAAS4hB,eAAe1f,EAAEqH,MAAOnH,EAAIpC,SAAS4hB,eAAe1f,EAAEsH,IACzE,IAAKrH,EAEH,YADA7B,QAAQC,MAAM,oCAAsC2B,EAAEqH,MAGxD,IAAKnH,EAEH,YADA9B,QAAQC,MAAM,iCAAmC2B,EAAEsH,IAGrD,MAAM/G,EAAI2G,EAAGlH,GACb,IAAII,EAAIG,EAAEqH,MACVrH,EAAEiI,cAAgBpI,EAAI3F,KAAKqkB,aAAave,EAAE4E,QAAS5E,EAAE4H,gBAAiB,EACtE,IAAIhI,GAAI,EACR,IAAK,MAAMG,KAAK7F,KAAKwjB,UAAUD,aAC7B,GAAI1d,EAAEuI,UAAU,GAAGxB,OAAS9G,EAAE8G,MAAQ/G,EAAEuI,UAAU,GAAGvB,KAAO/G,EAAE+G,IAAMhH,EAAEuI,UAAU,GAAGxB,OAAS9G,EAAE+G,IAAMhH,EAAEuI,UAAU,GAAGvB,KAAO/G,EAAE8G,KAAM,CAChIlH,GAAI,EACJ,MAEJ,IAAKA,EAAG,CACNI,EAAE5E,KAAO4E,EAAE5E,GAAK,UAAU4E,EAAE8G,QAAQ9G,EAAE+G,MAAO/G,EAAEqH,MAAQxH,EACvD,MAAME,EAAI,CACR2D,KAAM,KACNc,UAAW,EACXV,cAAe,KACfkB,EAAG,EACHC,EAAG,EACHe,GAAI,CACFC,YAAa,GACbC,aAAc,KAEftF,EAAI,CACL8C,KAAM,KACNc,UAAW,EACXV,cAAe,KACfkB,EAAG,EACHC,EAAG,EACHe,GAAI,CACFC,YAAa,GACbC,aAAc,KAEfpF,EAAI,CACLsd,SAAU,OAASlkB,KAAKwjB,UAAUD,aAAajd,OAC/C4S,SAAUrT,EACVsT,OAAQzS,EACR0H,UAAW,CAACtI,GACZse,UAAU,EACV1W,gBAAgB,GAElB1N,KAAKklB,2BAA2B1f,EAAGoB,EAAEsS,UAAWlZ,KAAKklB,2BAA2Bzf,EAAGmB,EAAEuS,QAASnZ,KAAKwjB,UAAUD,aAAalV,KAAKzH,MAE/H5G,KAAKmlB,qBAAsBnlB,KAAK2kB,eAEtC,mBAAmB9f,GACjB,IAAK,MAAMU,KAAKvF,KAAKwjB,UAAUD,aAC7B,GAAIhe,EAAE2e,WAAarf,EACjB,OAAOU,EAEb,kBACE,OAAOvF,KAAKwjB,UAAUD,aAAapQ,IAAKtO,GAAMA,EAAEuJ,UAAU,IAE5D,kBAAkBvJ,GAChB+D,EAAE,qBAAsB/D,GAAI7E,KAAKolB,sBAAsBvgB,EAAEuJ,UAAU,GAAGlN,IAExE,sBAAsB2D,GACpB+D,EAAE,yBAA0B/D,GAC5B,IAAK,IAAIU,EAAI,EAAGA,EAAIvF,KAAKwjB,UAAUD,aAAajd,OAAQf,IACtDvF,KAAKwjB,UAAUD,aAAahe,GAAG6I,UAAU,GAAGlN,KAAO2D,IAAM7E,KAAKwjB,UAAUD,aAAa7K,OAAOnT,EAAG,GAAIA,KAEvG,qBACEqD,EAAE,sBAAuB5I,KAAKwjB,UAAUD,aAAajd,SAAUtG,KAAKqlB,iBAAmBrlB,KAAKqlB,gBAAiB,EAAIzd,WAAW,KAC1H5H,KAAKqlB,gBAAiB,EAAIrlB,KAAKslB,uBAC9B,KAEL,sBACEtlB,KAAKwjB,UAAUD,aAAanX,QAASvH,IACnC,MAAMU,EAAIlC,SAAS4hB,eAAepgB,EAAEuJ,UAAU,GAAGxB,MAAOpH,EAAInC,SAAS4hB,eAAepgB,EAAEuJ,UAAU,GAAGvB,IAC9FtH,GAIAC,GAIDxF,KAAKklB,2BAA2B3f,EAAGV,EAAEqU,UAAWlZ,KAAKklB,2BAA2B1f,EAAGX,EAAEsU,SAAuC,IAA9BtU,EAAEqU,SAASpN,GAAGC,aAAoD,IAA/BlH,EAAEqU,SAASpN,GAAGE,gBAInH,IAA5BnH,EAAEsU,OAAOrN,GAAGC,aAAkD,IAA7BlH,EAAEsU,OAAOrN,GAAGE,cAIjDnH,EAAEuJ,UAAU,GAAG1E,QAAS,EAPtB7E,EAAEuJ,UAAU,GAAG1E,QAAS,GARxB7E,EAAEuJ,UAAU,GAAG1E,QAAS,IAgBxB1J,KAAK2kB,eAEX,2BAA2B9f,EAAGU,GAC5B,MAAMC,EAAIX,EAAEse,wBAAyB1d,EAAIzF,KAAKkjB,WAAWC,wBACzD5d,EAAEuF,GAAKtF,EAAEsF,EAAIrF,EAAEqF,IAAM9K,KAAKQ,QAAQugB,WAAa,KAAMxb,EAAEwF,GAAKvF,EAAEuF,EAAItF,EAAEsF,IAAM/K,KAAKQ,QAAQugB,WAAa,KAAMxb,EAAEuG,GAAGC,YAAcvG,EAAE2B,OAASnH,KAAKQ,QAAQugB,WAAa,KAAMxb,EAAEuG,GAAGE,aAAexG,EAAE4B,QAAUpH,KAAKQ,QAAQugB,WAAa,KAEpO,mBAAmBlc,GACjB,MAAMW,EAAInC,SAAS4hB,eAAepgB,GAAGse,wBAAyB1d,EAAIzF,KAAKkjB,WAAWC,wBAAyBrd,GAAKN,EAAEsF,EAAIrF,EAAEqF,IAAM9K,KAAKQ,QAAQugB,WAAa,KAAMpb,GAAKH,EAAEuF,EAAItF,EAAEsF,IAAM/K,KAAKQ,QAAQugB,WAAa,KAC3M,MAAO,CAAEjW,EAAGhF,EAAGiF,EAAGpF,GAEpB,eAAed,GACb,IAAIU,EAAI,EACR,IAAK,IAAIE,EAAI,EAAGA,EAAIzF,KAAKwjB,UAAUF,MAAMhd,OAAQb,IAAK,CACpD,MAAMK,EAAI9F,KAAKwjB,UAAUF,MAAM7d,IAC9BK,EAAEoT,SAAShY,KAAO2D,GAAKiB,EAAEqT,OAAOjY,KAAO2D,KAAO7E,KAAKulB,WAAWzf,GAAIL,IAAKF,KAE1EqD,EAAE,gBAAsB/D,EAAGU,GAC3B,IAAIC,EAAI,EACR,IAAK,IAAIC,EAAI,EAAGA,EAAIzF,KAAKwjB,UAAUH,MAAM/c,OAAQb,IAC/C,GAAIzF,KAAKwjB,UAAUH,MAAM5d,GAAGvE,KAAO2D,EAAG,CACpC7E,KAAKwjB,UAAUH,MAAM3K,OAAOjT,EAAG,GAAID,IACnC,MAEJoD,EAAE,gBAAsB/D,EAAGW,GAE7B,WAAWX,GACT7E,KAAKwlB,eAAe3gB,EAAE3D,IAExB,oBAAoB2D,EAAGU,GACrB,IAAK,MAAMC,KAAKxF,KAAKylB,WACnB,GAAIjgB,EAAE0T,SAAShY,KAAO2D,GAAKW,EAAE2T,OAAOjY,KAAOqE,GAAKC,EAAE0T,SAAShY,KAAO2D,GAAKW,EAAE2T,OAAOjY,KAAOqE,EAAG,CACxFvF,KAAKulB,WAAW/f,GAChB,OAGN,eAAeX,EAAGU,EAAI,IACpBA,EAAE8G,SAASxH,IAAMU,EAAE8I,KAAKxJ,GACxB,IAAK,MAAMW,KAAKX,EAAEsF,YAChB5E,EAAE8G,SAAS7G,IAAMxF,KAAK0lB,eAAelgB,EAAGD,GAC1C,OAAOA,EAET,WAAWV,EAAGU,GACZ,IAAK,IAAIC,EAAI,EAAGA,EAAIX,EAAEyB,OAAQd,IAC5BX,EAAEW,KAAOD,IAAMV,EAAE6T,OAAOlT,EAAG,GAAIA,KAEnC,cAAcX,EAAGU,GACfV,IAAMA,EAAEsF,aAAenK,KAAK2lB,WAAW9gB,EAAEsF,YAAa5E,GAAIV,EAAEuF,YAAcpK,KAAK2lB,WAAW9gB,EAAEuF,WAAY7E,GAAIV,EAAEwF,UAAYrK,KAAK2lB,WAAW9gB,EAAEwF,SAAU9E,IAExJ,eAAeV,GACb+D,EAAE,kBAAmB/D,GACrB,IAAK,IAAIU,EAAI,EAAGA,EAAIvF,KAAKwjB,UAAUF,MAAMhd,OAAQf,IAAK,CACpD,MAAMC,EAAIxF,KAAKwjB,UAAUF,MAAM/d,GAC/BC,EAAE0e,WAAarf,IAAM7E,KAAK4lB,cAAcpgB,EAAE0T,SAAU1T,EAAE2T,QAASnZ,KAAK4lB,cAAcpgB,EAAE2T,OAAQ3T,EAAE0T,UAAWlZ,KAAKwjB,UAAUF,MAAM5K,OAAOnT,EAAG,GAAIA,MAGhJ,WAAWV,GACT+D,EAAE,cAAe/D,GAAI7E,KAAK6lB,eAAehhB,EAAEqf,UAE7C,WAAWrf,EAAGU,GACZqD,EAAE,cAAe/D,EAAGU,GACpB,IAAK,IAAIC,EAAI,EAAGA,EAAIX,EAAEuJ,UAAU9H,OAAQd,IACtCX,EAAEuJ,UAAU5I,KAAOD,GAAKV,EAAEuJ,UAAUsK,OAAOlT,EAAG,GACzB,IAAvBX,EAAEuJ,UAAU9H,QAAgBtG,KAAKulB,WAAW1gB,GAE9C,gBAAgBA,EAAGU,EAAGC,GACpBX,EAAEiG,EAAIvF,EAAGV,EAAEkG,EAAIvF,EAEjB,gBACE,MAAMX,EAAI7E,KAAKQ,QAAQqb,eAAiB,EAAGtW,EAAIvF,KAAKQ,QAAQsb,eAAiB,EAC7E,MAAO,CACL5Q,SAAUrG,EACVsG,SAAU5F,GAGd,gBAAgBV,EAAGU,GACjB,MAAMC,EAAIxF,KAAKQ,QAAQyT,SAAS9M,MAAQ,EAAG1B,EAAIzF,KAAKQ,QAAQyT,SAAS7M,OAAS,EAAGtB,EAAI9F,KAAK8lB,gBAC1F9lB,KAAK+lB,gBAAgBvgB,EAAIX,EAAIiB,EAAEoF,SAAUzF,EAAIF,EAAIO,EAAEqF,UAErD,gBAAgBtG,EAAGU,GACjBvF,KAAKQ,QAAQ4gB,aAAatW,EAAIjG,EAAG7E,KAAKQ,QAAQ4gB,aAAarW,EAAIxF,EAEjE,eAAeV,EAAGU,GAChBA,EAAE8I,KAAKxJ,GAAIA,EAAEsF,YAAYiC,QAAS5G,IAChCD,EAAE8G,SAAS7G,IAAMxF,KAAKgmB,eAAexgB,EAAGD,KAG5C,iBACGvF,KAAKQ,UAAYR,KAAKQ,QAAQyT,SAAS9M,MAAQnH,KAAKijB,KAAKE,wBAAwBhc,MAAOnH,KAAKQ,QAAQyT,SAAS7M,OAASpH,KAAKijB,KAAKE,wBAAwB/b,OAAQpH,KAAKQ,QAAQugB,WAAa,IAAK/gB,KAAKimB,gBAAgB,EAAG,GAAIrd,EAAE,mBAAoB5I,KAAKQ,QAAQyT,SAAS9M,MAAOnH,KAAKQ,QAAQyT,SAAS7M,OAAQpH,KAAKQ,QAAQ4gB,aAAatW,EAAG9K,KAAKQ,QAAQ4gB,aAAarW,GAAI/K,KAAKkmB,yBAEhX,wBACE,IAAKlmB,KAAKijB,KAER,YADAtf,QAAQC,MAAM,0BAGhB,MAAMiB,EAAI,CACRshB,eAAgB,CAAErb,EAAG,EAAGC,EAAG,IAC1BxF,EAAIvF,KAAKijB,KAAKE,wBACjBnjB,KAAKQ,QAAQof,WAAW9U,EAAIvF,EAAEoJ,KAAM3O,KAAKQ,QAAQof,WAAW7U,EAAIxF,EAAEsJ,IAAK7O,KAAKQ,QAAQof,WAAWzY,MAAQ5B,EAAE4B,MAAOnH,KAAKQ,QAAQof,WAAWxY,OAAS7B,EAAE6B,OAAQwB,EAAE,iBAAkBrD,EAAE4B,MAAO5B,EAAE6B,OAAQ7B,EAAEoJ,KAAMpJ,EAAEsJ,KAC5M,MAAMrJ,EAAIxF,KAAKQ,QAAQsX,WAAW3Q,OAASnH,KAAKQ,QAAQugB,WAAa,KAAMtb,EAAIzF,KAAKQ,QAAQsX,WAAW1Q,QAAUpH,KAAKQ,QAAQugB,WAAa,KAC3Ilc,EAAEshB,eAAerb,EAAI9K,KAAKQ,QAAQ4gB,aAAatW,EAAI9K,KAAKQ,QAAQsX,WAAW3Q,MAAQ,EAAGtC,EAAEshB,eAAepb,EAAI/K,KAAKQ,QAAQ4gB,aAAarW,EAAI/K,KAAKQ,QAAQsX,WAAW1Q,OAAS,EAAGpH,KAAKQ,QAAQqf,aAAa/U,EAAIjG,EAAEshB,eAAerb,EAAItF,EAAI,EAAGxF,KAAKQ,QAAQqf,aAAa9U,EAAIlG,EAAEshB,eAAepb,EAAItF,EAAI,EAAGzF,KAAKQ,QAAQqf,aAAa1Y,MAAQ3B,EAAGxF,KAAKQ,QAAQqf,aAAazY,OAAS3B,EAAGzF,KAAKQ,QAAQmf,WAAWxY,MAAQ5B,EAAE4B,MAAOnH,KAAKQ,QAAQmf,WAAWvY,OAAS7B,EAAE6B,OAAQpH,KAAKQ,QAAQmf,WAAWhR,KAAOpJ,EAAEoJ,KAAM3O,KAAKQ,QAAQmf,WAAW9Q,IAAMtJ,EAAEsJ,IAEzgB,aAAahK,GACX,MAAMU,EAAIV,GAAK7E,KAAKwjB,UAAUH,MAC9B,IAAI7d,EAAI,QAASC,EAAI,QAASK,EAAI,EAAGH,EAAI,EACzCJ,EAAE6G,QAASxF,IACTsI,EAAEU,gBAAgBhJ,KAAOA,EAAEkE,EAAItF,IAAMA,EAAIoB,EAAEkE,GAAIlE,EAAEkE,EAAIhF,IAAMA,EAAIc,EAAEkE,EAAIlE,EAAEkF,GAAGC,aAAcnF,EAAEmE,EAAItF,IAAMA,EAAImB,EAAEmE,GAAInE,EAAEmE,EAAIpF,IAAMA,EAAIiB,EAAEmE,EAAInE,EAAEkF,GAAGE,iBAE3I,MAAMtG,EAAI,IAAKG,EAAIC,EAAIN,EAAIE,EAAGgB,EAAIf,EAAIF,EAAIC,EAC1C,MAAO,CACLyB,MAAOtB,EACPuB,OAAQV,EACR0f,KAAM5gB,EACN6gB,KAAMvgB,EACNwgB,KAAM7gB,EACN8gB,KAAM5gB,GAGV,iBACE,MAAMd,EAAI7E,KAAKwmB,eACf5d,EAAE,gBAAiB/D,GACnB,MAAMU,EAAIV,EAAEuhB,MAAQvhB,EAAEsC,MAAQ,KAAO,EAAG3B,EAAIX,EAAEyhB,MAAQzhB,EAAEuC,OAAS,KAAO,EACxE,MAAO,CACL0D,EAAGvF,EACHwF,EAAGvF,GAGP,iBAAiBX,GACf,GAAI+D,EAAE,oBAAqB/D,GAAIA,EAAIA,EAAE4hB,OAAc,KAAN5hB,EAC3C,OACF,MAAMU,EAAI,GACV,OAAOvF,KAAKwjB,UAAUH,MAAMjX,QAAS5G,IACnCoD,EAAE,SAAUpD,EAAEvE,MAAOuE,EAAEvE,KAAKoL,SAASxH,IAAMU,EAAE8I,KAAK7I,KAChDoD,EAAE,WAAYrD,EAAEe,QAASf,EAE/B,eACE,MAAMV,EAAI7E,KAAK8kB,sBACfnhB,QAAQgD,IAAI,WAAY9B,GAAIlB,QAAQgD,IAAI,wBAAyBhD,QAAQgD,IAAIib,KAAKE,UAAUjd,IAE9F,YACE,MAAMA,EAAI7E,KAAK+kB,mBACfphB,QAAQgD,IAAI,QAAS9B,GAAIlB,QAAQgD,IAAI,qBAAsBhD,QAAQgD,IAAIib,KAAKE,UAAUjd,IAExF,QAAQA,EAAI,IACV7E,KAAKQ,QAAQ2b,cAAe,EAAInc,KAAKQ,QAAQ4b,iBAAmBvX,EAElE,eACE7E,KAAKQ,QAAQ2b,cAAe,EAAInc,KAAKQ,QAAQ4b,iBAAmB,IAGpE,MAAM,WAAWgH,GACf,YAAYxe,EAAGC,GACbkO,MAAMnO,EAAGC,GAEX,cAAcD,GACZ,MAAMC,EAAID,EAAEsO,MAAM,KAAM3N,EAAIV,EAAE,GAAIW,EAAID,GAAKA,EAAEmhB,MAAM,WAAW,GAAIjhB,EAAIkhB,KAAK9hB,EAAE,IAC7E,IAAIiB,EAAIL,EAAEa,OACV,MAAMX,EAAI,IAAIihB,WAAW9gB,GACzB,KAAOA,KACLH,EAAEG,GAAKL,EAAEohB,WAAW/gB,GACtB,OAAO,IAAIghB,KAAK,CAACnhB,GAAI,CAAE6D,KAAMhE,IAE/B,kBAAkBZ,EAAI,OACpB,OAAOS,EAAErF,KAAM,MAAM,YACnB,OAAO,IAAIsF,QAAQ,CAACT,EAAGU,KACrB,MAAMC,EAAIxF,KAAKQ,QAAQugB,WAAYtb,EAAIzF,KAAKkjB,WAAW6D,YAAajhB,EAAI9F,KAAKkjB,WAAW8D,aAAcrhB,EAAI3F,KAAKQ,QAAQ4gB,aAAatW,EAAGpF,EAAI1F,KAAKQ,QAAQ4gB,aAAarW,EACrK/K,KAAKQ,QAAQ+f,cAAgB,GAAIvgB,KAAKQ,QAAQugB,WAAa,IAC3D,MAAMlb,EAAI7F,KAAKkjB,WACf,IAAIxc,EAAI,OAAQE,EAAI,OAAQC,EAAI,EAAGC,EAAI,EACvC,MAAMoK,EAAI,IACVlR,KAAKinB,QAAQ,iBAAkBjnB,KAAKwjB,UAAUH,MAAMjX,QAAStB,IAC3DA,EAAEA,EAAIpE,IAAMA,EAAIoE,EAAEA,GAAIA,EAAEA,EAAIjE,IAAMA,EAAIiE,EAAEA,EAAIA,EAAEgB,GAAGC,aAAcjB,EAAEC,EAAInE,IAAMA,EAAIkE,EAAEC,GAAID,EAAEC,EAAIjE,IAAMA,EAAIgE,EAAEC,EAAID,EAAEgB,GAAGE,gBAElH,MAAMmF,EAAIzK,EAAIwK,EAAGnG,EAAInE,EAAIsK,EACzBlR,KAAKwjB,UAAUH,MAAMjX,QAAStB,IAC5BA,EAAEA,EAAIA,EAAEA,EAAIqG,EAAGrG,EAAEC,EAAID,EAAEC,EAAIA,IACzB/K,KAAKkjB,WAAWgE,iBAAiB,oBAAoB9a,QAAStB,IAChE,MAAM0K,EAAI1K,EACV0K,EAAEvO,MAAM0H,MAAQ5D,EAAI,KAAMyK,EAAEvO,MAAM4H,KAAO9D,EAAI,OAC3C/K,KAAKmlB,qBAAsBnlB,KAAKkjB,WAAWgE,iBAAiB,2BAA2B9a,QAAStB,IAClG,MAAM0K,EAAI1K,EACV0K,EAAEvO,MAAME,MAAQ,SAAUqO,EAAEvO,MAAMG,OAAS,WACzCpH,KAAKQ,QAAQ4gB,aAAatW,GAAS,EAALoG,EAAQlR,KAAKQ,QAAQ4gB,aAAarW,GAAS,EAALmG,EACxE,MAAMmE,EAAIxO,EAAIH,EAAI,IAAU,EAAJwK,EAAOoE,EAAIxO,EAAIF,EAAI,IAAU,EAAJsK,EAAOwE,EAAIxN,OAAOif,iBACnEnnB,KAAKQ,QAAQsX,WAAW3Q,MAAQkO,EAAIK,EAAG1V,KAAKQ,QAAQsX,WAAW1Q,OAASkO,EAAII,EAAGxN,OAAOkf,SAAS,EAAG,GAClG,MAAMzR,EAAItS,SAASC,cAAc,UACjCqS,EAAExO,MAAQkO,EAAIK,EAAGC,EAAEvO,OAASkO,EAAII,EAAGC,EAAE1O,MAAM4V,gBAAkBwK,iBAAiBxhB,EAAEoD,cAAe,MAAM4T,gBAAiBjU,EAAE,gCAAiC+M,EAAE1O,MAAM4V,iBAAkBlH,EAAE1O,MAAME,MAAWkO,EAAIK,EAAP,KAAcC,EAAE1O,MAAMG,OAAYkO,EAAII,EAAP,KAAcC,EAAE2R,WAAW,MAAMC,MAAM,EAAG,GAC5Q,MAAMhS,EAAI,CACRsH,gBAAiBlH,EAAE1O,MAAM4V,gBACzB0K,MAAO7R,EACP8R,OAAQ7R,EACR8R,SAAS,EACTtgB,MAAOkO,EACPjO,OAAQkO,EACRoS,SAAS,GAEX9f,WAAW,KACT5H,KAAK2nB,YAAY9hB,EAAG0P,EAAG3Q,EAAG,GAAKkG,IAC7B9K,KAAKQ,QAAQsX,WAAW3Q,MAAQ1B,EAAGzF,KAAKQ,QAAQsX,WAAW1Q,OAAStB,EAAG9F,KAAKQ,QAAQ4gB,aAAatW,EAAInF,EAAG3F,KAAKQ,QAAQ4gB,aAAarW,EAAIrF,EAAG1F,KAAKQ,QAAQugB,WAAavb,EAAGxF,KAAKkjB,WAAWgE,iBAAiB,oBAAoB9a,QAAS8J,IAClO,MAAM0R,EAAI1R,EACV0R,EAAE3gB,MAAM0H,KAAO,MAAOiZ,EAAE3gB,MAAM4H,IAAM,QAClC7O,KAAKwjB,UAAUH,MAAMjX,QAAS8J,IAChCA,EAAEpL,EAAIoL,EAAEpL,EAAIqG,EAAG+E,EAAEnL,EAAImL,EAAEnL,EAAIA,IACzB/K,KAAKkjB,WAAWgE,iBAAiB,2BAA2B9a,QAAS8J,IACvE,MAAM0R,EAAI1R,EACV0R,EAAE3gB,MAAME,MAAQ,MAAOygB,EAAE3gB,MAAMG,OAAS,QACtCpH,KAAKmlB,qBAAsBnlB,KAAK6nB,eAAgBhjB,EAAEiG,MAEvD,UAIT,YAAYlG,EAAGC,EAAGU,EAAGC,EAAGC,GACtBmD,EAAE,eAAgB/D,GAAI,IAAGD,EAAGC,GAAGqB,KAAMJ,IACnCL,GAAKA,EAAEK,KAGX,eAAelB,EAAI,OACjB,OAAOS,EAAErF,KAAM,MAAM,YACnB,MAAM6E,QAAU7E,KAAK8nB,kBAAkBljB,GAAIW,EAAIlC,SAASiE,KAAK/D,YAAYsB,GACzEU,EAAE0B,MAAM8gB,QAAU,OAClB,MAAMviB,EAAID,EAAEyiB,UAAU,SAASpjB,GAC/B,OAAOvB,SAASiE,KAAK2gB,YAAY1iB,GAAIC,KAGzC,gBAAgBZ,EAAI,MAAOC,GACzB,OAAOQ,EAAErF,KAAM,MAAM,YACnB,GAAIA,KAAK6iB,UAAUqF,kBAA0E,IAAvDloB,KAAK6iB,UAAUqF,gBAAgBloB,KAAKkjB,WAAYte,GACpF,OACF,GAAoC,IAAhC5E,KAAKwjB,UAAUH,MAAM/c,OACvB,MAAM,IAAIiD,MAAM,mCAClB1E,IAAMA,EAAI7E,KAAKQ,QAAQsc,uBAAwBjY,IAAMA,EAAI,mBAAmC,IAAhBwL,KAAKmH,UAAgB2Q,QAAQ,IACzG,MAAM5iB,QAAUvF,KAAK8nB,kBAAkBljB,GACvCgE,EAAE,uBAAwBhE,EAAGC,GAC7B,IAAIW,GAAI,EACRxF,KAAK6iB,UAAUuF,oBAIT,IAJ8BpoB,KAAK6iB,UAAUuF,kBACjD7iB,EACAX,EACAC,KACWW,GAAI,GAAKA,UAAYxF,KAAKqoB,oBAAoB9iB,EAAGX,EAAGC,OAGrE,oBAAoBD,EAAGC,EAAGU,GACxB,OAAOF,EAAErF,KAAM,MAAM,YACnB,MAAMwF,EAAInC,SAASiE,KAAK/D,YAAYqB,GACpCY,EAAEyB,MAAM8gB,QAAU,OAClB,MAAMtiB,EAAIzF,KAAKsoB,cAAc9iB,EAAEwiB,UAAU,SAASnjB,IAClDxB,SAASiE,KAAK2gB,YAAYziB,GAC1B,MAAMM,EAAIzC,SAASC,cAAc,KACjCwC,EAAEmB,MAAM8gB,QAAU,OAClB,IACE7f,OAAOqgB,UAAUC,iBAAmBtgB,OAAOqgB,UAAUC,iBAAiB/iB,EAAG,GAAGF,KAAKV,MAAQiB,EAAEkB,aAAa,OAAQyhB,IAAIC,gBAAgBjjB,IAAKK,EAAEkB,aAAa,WAAY,GAAGzB,KAAKV,KAAMxB,SAASiE,KAAK/D,YAAYuC,GAAIA,EAAE6iB,QAAS/f,EAAE,aAAc6f,IAAIG,sBAAsBnjB,EAAExE,QAAS2H,EAAE,uBAAwBvF,SAASiE,KAAK2gB,YAAYniB,GAAI8C,EAAE,oBAC1U,MAAOjD,GACPiD,EAAE,gDAAiDjD,QAK3D,MAAMkjB,WAAW,GACf,YAAYjkB,EAAGC,GACbkO,MAAMnO,EAAGC,GAEX,kBAAkBD,EAAGC,GACnB,MAAO,CAAEikB,KAAMlkB,EAAGmkB,aAAclkB,GAElC,eAAeD,EAAGC,EAAGU,GACnB,IAAIC,EAAIZ,EAAEsU,SACV1T,IAAMA,EAAI,CACRsF,EAAG,EACHC,EAAG,EACHe,GAAI,CACFC,YAAa,GACbC,aAAc,MAGlB,MAAMvG,EAAIb,EAAEuU,OAAQrT,EAAIlB,EAAEwJ,UAAU9H,OACpC,OAAOf,IAAMA,EAAI,GAAIvF,KAAKgpB,wBAAwBxjB,EAAGC,EAAGZ,EAAGU,EAAGO,GAEhE,kBAAkBlB,EAAGC,GACnB,OAAOD,IAAM0J,EAAEC,OAASqH,EAAEqT,4BAA4BpkB,GAAKD,IAAM0J,EAAEE,KAAOoH,EAAEsT,oBAAoBrkB,GAAKD,IAAM0J,EAAEG,GAAKmH,EAAEuT,qBAAqBtkB,GAAKD,IAAM0J,EAAEI,GAAKkH,EAAEwT,qBAAqBvkB,GAAKD,IAAM0J,EAAEK,KAAOiH,EAAEyT,wBAAwBxkB,GAAKD,IAAM0J,EAAEM,MAAQgH,EAAE0T,yBAAyBzkB,GAAKD,IAAM0J,EAAEO,IAAM+G,EAAE2T,uBAAuB1kB,GAAKD,IAAM0J,EAAEQ,OAAS8G,EAAE4T,0BAA0B3kB,GAAK+Q,EAAEqT,4BAA4BpkB,GAEnZ,wBAAwBD,EAAGC,EAAGU,EAAGC,EAAI,EAAGC,EAAI,GAC1C,MAAMK,EAAIP,EAAE2H,WAAalN,KAAKQ,QAAQse,kBAAoB,EAAGnZ,EAAIJ,EAAE0I,eAAiBjO,KAAKQ,QAAQ0a,iBAAmB,IACpH,IAAIxV,EAAId,EAAEkG,EAAGjF,EAAIjB,EAAEmG,EAAGrE,EAAI7B,EAAEiG,EAAGlE,EAAI/B,EAAEkG,EACrC,MAAMlE,EAAI,CAAEiE,EAAG,EAAGC,EAAG,EAAG0e,OAAQ,GAChC,GAAIrgB,OAAOuK,MAAMjO,IAAM0D,OAAOuK,MAAM9N,GAClC,OAAO+C,EAAE,oBAAqBhE,EAAE3D,KAAM2D,EAAEkG,EAAGlG,EAAEmG,GAAIlE,EAAEiE,EAAI,GAAIjE,EAAEkE,EAAI,GAAIlE,EAAE4iB,OAAS,EAAGzpB,KAAK0pB,kBAAkB,kBAAmB7iB,GAC/H,GAAIuC,OAAOuK,MAAMjN,IAAM0C,OAAOuK,MAAM/M,GAClC,OAAOgC,EAAE,mBAAoB/D,EAAE5D,KAAM4D,EAAEiG,EAAGjG,EAAEkG,GAAIlE,EAAEiE,EAAI,GAAIjE,EAAEkE,EAAI,GAAIlE,EAAE4iB,OAAS,EAAGzpB,KAAK0pB,kBAAkB,iBAAkB7iB,GAC7H,IAAIC,EAAIlC,EAAEkH,GAAGC,aAAenH,EAAEuC,OAAS,GAAI+J,EAAItM,EAAEkH,GAAGE,cAAgBpH,EAAEwC,QAAU,GAChF,GAAIgC,OAAOuK,MAAM7M,IAAMsC,OAAOuK,MAAMzC,GAClC,OAAOrK,EAAEiE,EAAI,GAAIjE,EAAEkE,EAAI,GAAIlE,EAAE4iB,OAAS,EAAGzpB,KAAK0pB,kBAAkB,iBAAkB7iB,GACpF,IAAIsK,EAAItM,EAAEiH,GAAGC,aAAelH,EAAEsC,OAAS,GAAI4D,EAAIlG,EAAEiH,GAAGE,cAAgBnH,EAAEuC,QAAU,GAChF,GAAIgC,OAAOuK,MAAMxC,IAAM/H,OAAOuK,MAAM5I,GAClC,OAAOlE,EAAEiE,EAAI,GAAIjE,EAAEkE,EAAI,GAAIlE,EAAE4iB,OAAS,EAAGzpB,KAAK0pB,kBAAkB,gBAAiB7iB,GACnFtB,EAAE+e,aAAe5e,EAAGG,EAAGa,EAAGE,EAAGE,EAAGoK,EAAGC,EAAGpG,GAAK,CACzCrE,EACAE,EACAlB,EACAG,EACAsL,EACApG,EACAjE,EACAoK,IAEF,MAAMG,EAAI,CACR3L,EACAG,EACAa,EACAE,EACAE,EACAoK,EACAC,EACApG,EACAnG,EAAE0F,WAAatK,KAAKQ,QAAQye,iBAC5B1Z,EAAE+e,UACF7e,EACAD,EACAxF,KAAKQ,QAAQkf,mBAAqB,IACjCtK,EAAI,CACL1O,EACAE,EACAlB,EACAG,EACAsL,EACApG,EACAjE,EACAoK,EACArM,EAAEyF,WAAatK,KAAKQ,QAAQye,kBAC3B1Z,EAAE+e,UACH7e,EACAD,EACAxF,KAAKQ,QAAQkf,mBAAqB,IACjCrK,EAAIrV,KAAKQ,QAAQ4e,sBAAwB9Q,EAAEC,OAAQ+G,EAAI/P,EAAEoI,mBAAqB/I,EAAEgF,eAAiByL,EAAGK,EAAInQ,EAAEqI,iBAAmB/I,EAAE+E,eAAiByL,EAAGM,EAAI3V,KAAK2pB,kBAAkBrU,EAAGjE,GAAIkE,EAAIvV,KAAK2pB,kBAAkBjU,EAAGN,GACtN,IAAKO,IAAMJ,EACT,OAAOvV,KAAK0pB,kBACV,uEACA7iB,GAEJ,MAAMiE,EAAI6K,EAAE7K,EAAG0K,EAAIG,EAAE5K,EAAG0K,EAAIF,EAAEzK,EAAGoL,EAAIX,EAAExK,EACvC,GAAInG,IAAMC,EAAG,CACX,MAAM+kB,EAAIlkB,EAAIoB,EAAI,EAAG+iB,EAAIhkB,EAAIqL,EAAI,EAAG4Y,EAAIzZ,KAAKyF,MAAMN,EAAIqU,EAAG/e,EAAI8e,GAAIG,EAA4B,EAAxB1Z,KAAK8F,IAAI2T,EAAIzZ,KAAK+F,IAAS4T,EAA4B,EAAxB3Z,KAAKgG,IAAIyT,EAAIzZ,KAAK+F,IAAS6T,EAAI,CAAEnf,EAAGA,EAAIif,EAAGhf,EAAGyK,EAAIwU,GAAKE,EAAK,CAAEpf,EAAGA,EAAIif,EAAGhf,EAAGyK,EAAIwU,GAAKG,EAAKrf,EAAQ,EAAJkf,EAAOI,EAAK5U,EAAQ,EAAJuU,EAAOM,EAAKvf,EAAQ,EAAJkf,EAAOM,EAAK9U,EAAQ,EAAJuU,EAAOQ,EAAK,IAAIN,EAAEnf,KAAKmf,EAAElf,MAAMof,KAAMC,KAAMC,KAAMC,KAAMJ,EAAGpf,KAAKof,EAAGnf,IACpT,OAAOlE,EAAEiE,EAAIA,EAAIkf,GAAKA,EAAID,GAAK,GAAIljB,EAAEkE,EAAIyK,EAAIuU,GAAKC,EAAID,GAAK,GAAIljB,EAAE4iB,OAAS,EAAGzpB,KAAK0pB,kBAAkBa,EAAI1jB,GAE1G,GAAIuC,OAAOuK,MAAM7I,IAAM1B,OAAOuK,MAAM6B,GAClC,OAAO5M,EAAE,qBAAsBhE,EAAE3D,MAAO4F,EAAEiE,EAAI,GAAIjE,EAAEkE,EAAI,GAAIlE,EAAE4iB,OAAS,EAAGzpB,KAAK0pB,kBAAkB,gBAAiB7iB,GACpH,GAAIuC,OAAOuK,MAAM8B,IAAMrM,OAAOuK,MAAMuC,GAClC,OAAOtN,EAAE,mBAAoB/D,EAAE5D,MAAO4F,EAAEiE,EAAI,GAAIjE,EAAEkE,EAAI,GAAIlE,EAAE4iB,OAAS,EAAGzpB,KAAK0pB,kBAAkB,eAAgB7iB,GACjH,MAAM+gB,EAAIliB,EAAIoB,EAAI,EAAG0jB,EAAI3kB,EAAIqL,EAAI,EAAGuZ,EAAI/jB,EAAIyK,EAAI,EAAGuZ,EAAI9jB,EAAImE,EAAI,EAAG4f,EAAK3qB,KAAK4qB,mBAC1ErlB,EACAsB,EACApB,EACAD,EACAG,EACAG,EACAgF,EACA0K,EACAoS,EACA4C,EACA1jB,EACAoK,EACAuE,EACAS,EACAuU,EACAC,EACAvZ,EACApG,GAEF,OAAO/K,KAAK0pB,kBAAkBiB,EAAI9jB,GAEpC,mBAAmBjC,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,EAAGD,EAAGG,EAAGa,EAAGE,EAAGC,EAAGC,EAAGoK,EAAGC,EAAGpG,EAAGsG,EAAG+D,GACpE,IAAIC,EAAIvO,EAAInB,EAAG2P,EAAIpE,EAAIxL,EAAGgQ,EAAI5O,EAAInB,EAAI,GAAK,EAAGgQ,EAAIzE,EAAIxL,EAAI,GAAK,EAAG6P,EAAU,MAAN9P,EAAYkQ,EAAID,EAAG5K,EAAI,GAC7F,GAAU,IAANhF,EAAS,CACX,MAAM0P,EAAI7P,EAAIE,EAAG4P,EAAI/P,EAAIgB,EAAGwP,EAAIpP,EAAIqK,EAAGyW,EAAI1W,EAAInG,EAC/C,IAAIyf,EAAIxqB,KAAKQ,QAAQwb,uBAAyB,EAC9C,MAAMyO,EAAIpa,KAAK6J,IAAIsQ,EAAGna,KAAKC,IAAI+E,KAAO1P,EAAImB,EAAI,GAAK,GAAI4jB,EAAIra,KAAK6J,IAAIsQ,EAAGna,KAAKC,IAAIgF,KAAO5P,EAAIwL,EAAI,GAAK,GAAIyZ,EAAKta,KAAKC,IAAIkF,IAAM5O,EAAI,EAAI,IAAM,IAAKgjB,EAAIvZ,KAAKC,IAAI4F,IAAM7E,EAAI,EAAI,IAAM,IAAKwY,EAAI,GACzL,GAAW,MAAPc,EAAY,CACd,MAAMb,EAAIllB,EAAEkJ,uBAAyBuC,KAAKiG,IAAIjG,KAAK6J,IAAI,GAAI7J,KAAKC,IAAIY,EAAIxL,GAAK,GAAI,IAAKqkB,EAAItU,EAAI,EAAIqU,GAAKA,EACvG,GAAoB,UAAhBllB,EAAE6I,WAAyB5I,EAAEiG,EAAInF,EAAGd,EAAEkG,EAAIrF,EAAIqkB,GAAKtU,EAAI,EAAI,IAAM,IAAsB,WAAhB7Q,EAAE6I,WAA0B5I,EAAEiG,EAAInF,GAAKmB,EAAInB,GAAK,EAAGd,EAAEkG,EAAIrF,EAAIqkB,IAAMllB,EAAEiG,EAAIhE,EAAGjC,EAAEkG,EAAIrF,EAAIqkB,GAAKtU,EAAI,EAAI,IAAM,IAAKoU,EAAExb,KAAK,KAAK1I,KAAKD,KAAMmkB,EAAExb,KAAK,KAAI0b,EAAIW,IAAY,MAANd,EACnOC,EAAExb,KAAK,MAASqc,MAAOb,EAAExb,KAAK,GAAGoc,KAAKC,MAAOb,EAAExb,KAAK,GAAGoc,KAAKC,KAAMb,EAAExb,KAAK,KAAIvH,EAAInB,EAAQ,EAAJ8kB,IAAUZ,EAAExb,KAAK,IAAIoc,QAAYZ,EAAExb,KAAK,GAAGoc,KAAKC,MAAOb,EAAExb,KAAK,GAAGoc,KAAKC,KAAMb,EAAExb,KAAK,KAAI6C,EAAIxL,EAAIqkB,EAAIW,QACrL,CACHb,EAAExb,KAAK,MAASqc,MAAOb,EAAExb,KAAK,GAAGoc,KAAKC,MAAOb,EAAExb,KAAK,GAAGoc,KAAKC,KAC5D,MAAMV,EAAI3Z,KAAK6J,IAAI,GAAI7J,KAAKC,IAAIxJ,EAAInB,GAAK,GAAIskB,EAAI/T,EAAI,GAAK8T,EAAIA,EAC9DH,EAAExb,KAAK,KAAIvH,EAAInB,EAAIskB,EAAIQ,IAAMZ,EAAExb,KAAK,IAAIoc,QAAYZ,EAAExb,KAAK,GAAGoc,KAAKC,MAAOb,EAAExb,KAAK,GAAGoc,KAAKC,KAAMb,EAAExb,KAAK,KAAI6C,EAAIxL,EAAIqkB,EAAIW,IAAMb,EAAExb,KAAK,KAAI4b,EAAIQ,SAExI,CACL,MAAMX,EAAIllB,EAAEkJ,uBAAyBuC,KAAKiG,IAAIjG,KAAK6J,IAAI,GAAI7J,KAAKC,IAAIxJ,EAAInB,GAAK,GAAI,IAAKokB,EAAIvU,EAAI,EAAIsU,GAAKA,EACvG,GAAoB,UAAhBllB,EAAE6I,WAAyB5I,EAAEiG,EAAInF,GAAK6P,EAAI,EAAI,IAAM,IAAK3Q,EAAEkG,EAAIrF,EAAI,GAAqB,WAAhBd,EAAE6I,WAA0B5I,EAAEiG,EAAInF,EAAIokB,EAAGllB,EAAEkG,EAAIrF,GAAKwL,EAAIxL,GAAK,IAAMb,EAAEiG,EAAInF,EAAIokB,GAAKvU,EAAI,EAAI,IAAM,IAAK3Q,EAAEkG,EAAImG,EAAI,GAAI2Y,EAAExb,KAAK,KAAK1I,KAAKD,KAAMmkB,EAAExb,KAAK,KAAI0b,EAAIU,IAAY,MAANb,EAAW,CACpP,MAAMI,EAAI3Z,KAAK6J,IAAI,GAAI7J,KAAKC,IAAIY,EAAIxL,GAAK,GAAIukB,EAAIrC,EAAI,GAAKoC,EAAIA,EAC9DH,EAAExb,KAAK,IAAIoc,QAAYZ,EAAExb,KAAK,GAAGoc,KAAKC,MAAOb,EAAExb,KAAK,GAAGoc,KAAKC,KAAMb,EAAExb,KAAK,KAAI6C,EAAIxL,EAAIukB,EAAIS,IAAMb,EAAExb,KAAK,KAAIvH,EAAInB,EAAIokB,EAAIU,IAAMZ,EAAExb,KAAK,MAASqc,MAAOb,EAAExb,KAAK,GAAGoc,KAAKC,MAAOb,EAAExb,KAAK,GAAGoc,KAAKC,KAAMb,EAAExb,KAAK,KAAI4b,EAAIS,SAE7Mb,EAAExb,KAAK,IAAIoc,QAAYZ,EAAExb,KAAK,GAAGoc,KAAKC,MAAOb,EAAExb,KAAK,GAAGoc,KAAKC,KAAMb,EAAExb,KAAK,KAAI6C,EAAIxL,EAAQ,EAAJglB,IAAUb,EAAExb,KAAK,MAASqc,MAAOb,EAAExb,KAAK,GAAGoc,KAAKC,MAAOb,EAAExb,KAAK,GAAGoc,KAAKC,KAAMb,EAAExb,KAAK,KAAIvH,EAAInB,EAAIokB,EAAIU,IAE5L3f,EAAI+e,EAAEgB,KAAK,UACN,GAAU,IAAN/kB,GAAiB,IAANA,GAAiB,IAANA,GAAiB,IAANA,GAAiB,IAANA,GAAiB,IAANA,EAAS,CACzE,MAAM0P,EAAI7P,EAAIE,EAAG4P,EAAI/P,EAAIgB,EAAGwP,EAAIpP,EAAIqK,EAAGyW,EAAI1W,EAAInG,EAAGyf,EAAI,GAAKjlB,EAAI,IAAMC,EAAI,GACzE,IAAIilB,EAAGC,EACP,GAAU,IAAN5kB,EACF2kB,EAAU,MAANhlB,EAAY,CAAEqF,EAAG,EAAGC,EAAO,GAAJwK,GAAW,CAAEzK,EAAO,GAAJyK,EAAQxK,EAAG,GAAK2f,EAAU,MAANjlB,EAAY,CAAEqF,EAAGuK,EAAImV,EAAGzf,GAAQ,GAALwK,GAAY,CAAEzK,GAAQ,GAALyK,EAASxK,EAAGuK,EAAIkV,QACxH,GAAU,IAAN1kB,EACP2kB,EAAU,MAANhlB,EAAY,CAAEqF,EAAG,EAAGC,EAAGuK,EAAIkV,GAAM,CAAE1f,EAAO,GAAJyK,EAAQxK,EAAG,GAAK2f,EAAU,MAANjlB,EAAY,CAAEqF,EAAG,EAAGC,EAAG,GAAM,CAAED,GAAQ,GAALyK,EAASxK,EAAGuK,EAAIkV,QAC7G,GAAU,IAAN1kB,EACP2kB,EAAgB,CAAE3f,EAAG,EAAGC,EAAG,GAAsB2f,EAAU,MAANjlB,EAAY,CAAEqF,EAAG,EAAGC,EAAGuK,EAAIkV,GAAM,CAAE1f,EAAGuK,EAAImV,EAAGzf,EAAG,QAClG,GAAU,IAANjF,EAAS,CAChB,MAAM8jB,EAAIvZ,KAAK6J,IAAI,IAAK7J,KAAKiG,IAAI,IAAKjG,KAAKC,IAAI+E,EAAI,KAAMwU,EAAIxZ,KAAK6J,IAAI,IAAK7J,KAAKiG,IAAI,IAAKjG,KAAKC,IAAIgF,EAAI,KAAMwU,EAAItU,GAAKnF,KAAKC,IAAIkF,GAAKnF,KAAKC,IAAImF,IAAMmU,EAAGG,EAAItU,GAAKpF,KAAKC,IAAIkF,GAAKnF,KAAKC,IAAImF,IAAMoU,EAC3LY,EAAI,CAAE3f,EAAGgf,EAAG/e,EAAGgf,GACf,MAAMC,EAAI9T,GAAK7F,KAAKC,IAAI4F,GAAK7F,KAAKC,IAAIsX,IAAMgC,EAAIvU,EAAG4U,EAAIrC,GAAKvX,KAAKC,IAAI4F,GAAK7F,KAAKC,IAAIsX,IAAMiC,EAAIvU,EAC7FoV,EAAI,CAAE5f,EAAGkf,EAAGjf,EAAGkf,QACV,GAAU,IAANnkB,EAAS,CAClB,MAAMgkB,EAAItU,GAAKnF,KAAKC,IAAIkF,GAAKnF,KAAKC,IAAImF,IAAM,GAAIsU,EAAItU,GAAKpF,KAAKC,IAAIkF,GAAKnF,KAAKC,IAAImF,IAAM,GACtFgV,EAAI,CAAE3f,EAAGgf,EAAG/e,EAAGgf,GACf,MAAMC,EAAI9T,GAAK7F,KAAKC,IAAI4F,GAAK7F,KAAKC,IAAIsX,IAAM,GAAKvS,EAAG4U,EAAIrC,GAAKvX,KAAKC,IAAI4F,GAAK7F,KAAKC,IAAIsX,IAAM,GAAKtS,EAC/FoV,EAAI,CAAE5f,EAAGkf,EAAGjf,EAAGkf,QACV,GAAU,IAANnkB,EAAS,CAClB,MAAMgkB,EAAItU,GAAKnF,KAAKC,IAAIkF,GAAKnF,KAAKC,IAAImF,IAAM,GAAIsU,EAAItU,GAAKpF,KAAKC,IAAIkF,GAAKnF,KAAKC,IAAImF,IAAM,GACtFgV,EAAI,CAAE3f,EAAGgf,EAAG/e,EAAGgf,GACf,MAAMC,EAAI9T,GAAK7F,KAAKC,IAAI4F,GAAK7F,KAAKC,IAAIsX,IAAM,GAAKvS,EAAG4U,EAAIrC,GAAKvX,KAAKC,IAAI4F,GAAK7F,KAAKC,IAAIsX,IAAM,GAAKtS,EAC/FoV,EAAI,CAAE5f,EAAGkf,EAAGjf,EAAGkf,GAEjB,MAAMU,EAAK3qB,KAAK8qB,gBACd,CAAEhgB,EAAGnF,EAAGoF,EAAGrF,GACX,CAAEoF,EAAGnF,EAAI8kB,EAAE3f,EAAGC,EAAGrF,EAAI+kB,EAAE1f,GACvB,CAAED,EAAGnF,EAAI+kB,EAAE5f,EAAGC,EAAGrF,EAAIglB,EAAE3f,GACvB,CAAED,EAAGnF,EAAI0P,EAAGtK,EAAGrF,EAAI4P,GACnBxP,EAAI,EAAI,GAAM,IAEhBjB,EAAEiG,EAAI6f,EAAG7f,EAAGjG,EAAEkG,EAAI4f,EAAG5f,EAAGD,EAAI,IAAInF,KAAKD,MAAM+kB,EAAE3f,KAAK2f,EAAE1f,KAAK2f,EAAE5f,KAAK4f,EAAE3f,KAAKsK,KAAKC,IAAW,IAANxP,IAAYgF,GAAQ,WAErGjG,EAAE4kB,OAAS7T,EAAEmV,aAAaplB,EAAGD,EAAGoB,EAAGoK,GAAIrM,EAAEiG,EAAIuF,KAAKsE,MAAMhP,GAAKmB,EAAInB,GAAK,GAAId,EAAEkG,EAAIsF,KAAKsE,MAAMjP,GAAKwL,EAAIxL,GAAK,GAAI0D,OAAOuK,MAAM9O,EAAE4kB,UAAY5kB,EAAE4kB,OAAS,GAAI3e,EAAI,KAAKnF,KAAKD,OAAOoB,KAAKoK,IACnL,OAAOpG,EAET,gBAAgBlG,EAAGC,EAAGU,EAAGC,EAAGC,EAAI,IAC9B,MAAMK,EAAI,CAAEgF,GAAI,EAAIrF,GAAKb,EAAEkG,EAAIrF,EAAIZ,EAAEiG,EAAGC,GAAI,EAAItF,GAAKb,EAAEmG,EAAItF,EAAIZ,EAAEkG,GAAKpF,EAAI,CAAEmF,GAAI,EAAIrF,GAAKZ,EAAEiG,EAAIrF,EAAIF,EAAEuF,EAAGC,GAAI,EAAItF,GAAKZ,EAAEkG,EAAItF,EAAIF,EAAEwF,GAAKrF,EAAI,CAAEoF,GAAI,EAAIrF,GAAKF,EAAEuF,EAAIrF,EAAID,EAAEsF,EAAGC,GAAI,EAAItF,GAAKF,EAAEwF,EAAItF,EAAID,EAAEuF,GAAKlF,EAAI,CAAEiF,GAAI,EAAIrF,GAAKK,EAAEgF,EAAIrF,EAAIE,EAAEmF,EAAGC,GAAI,EAAItF,GAAKK,EAAEiF,EAAItF,EAAIE,EAAEoF,GAAKrE,EAAI,CAAEoE,GAAI,EAAIrF,GAAKE,EAAEmF,EAAIrF,EAAIC,EAAEoF,EAAGC,GAAI,EAAItF,GAAKE,EAAEoF,EAAItF,EAAIC,EAAEqF,GACjU,MAAO,CAAED,GAAI,EAAIrF,GAAKI,EAAEiF,EAAIrF,EAAIiB,EAAEoE,EAAGC,GAAI,EAAItF,GAAKI,EAAEkF,EAAItF,EAAIiB,EAAEqE,GAEhE,wBACE,MAAMnG,EAAI5E,KAAKQ,QAAQggB,cACvB,GAAM5b,EACJ,IACE,MAAMC,EAAI7E,KAAKgrB,mBAAmBhrB,KAAKQ,QAAQigB,eAC/C,GAAI5b,EAAG,CACL,MAAQikB,KAAMnjB,GAAM3F,KAAKirB,eACvBpmB,EACAA,EAAEuJ,UAAU,GACZ,GAEF,OAAOzI,EAET,MAAMJ,EAAIvF,KAAKkrB,gBAAgBtmB,GAC/B,IAAKW,EAEH,YADAqD,EAAE,sCAAuChE,GAG3C,IAAKsK,EAAEU,gBAAgBrK,EAAE2T,UAEvB,YADAtQ,EAAE,aAAchE,GAGlB,IAAKsK,EAAEU,gBAAgBrK,EAAE4T,QAEvB,YADAvQ,EAAE,WAAYhE,GAGhB,MAAMY,EAAID,EAAE6I,UAAU4W,UAAWrf,GAAMA,EAAEzE,KAAO0D,GAChD,IAAW,IAAPY,EAEF,YADAoD,EAAE,8BAA+BhE,GAGnC,MAAMa,EAAIF,EAAE6I,UAAU5I,IAAMsjB,KAAMhjB,GAAM9F,KAAKirB,eAC3C1lB,EACAE,EACAD,GAEF,OAAOM,EACP,MAAOjB,GACP+D,EAAE/D,IAGR,+BACE,MAAMD,EAAI5E,KAAKQ,QAAQggB,cACvB,IAAK5b,EACH,OAAO5E,KAAKQ,QAAQqe,iBAAmB,EACzC,IACE,MAAMha,EAAI7E,KAAKkrB,gBAAgBtmB,GAC/B,IAAKC,EACH,OAAO7E,KAAKQ,QAAQqe,iBAAmB,EACzC,MAAMtZ,EAAIV,EAAEuJ,UAAU4W,UAAWvf,GAAMA,EAAEvE,KAAO0D,GAChD,IAAW,IAAPW,EACF,OAAOvF,KAAKQ,QAAQqe,iBAAmB,EACzC,MAAMrZ,EAAIX,EAAEuJ,UAAU7I,GACtB,OAAOC,EAAEyH,UAAYzH,EAAEyH,UAAY,EAAIjN,KAAKQ,QAAQqe,iBAAmB,EACvE,MAAOha,GACP+D,EAAE/D,IAGN,iBAAiBD,EAAGC,EAAGU,EAAGC,GACxB,GAAI4D,OAAOuK,MAAM9O,IAAMuE,OAAOuK,MAAMpO,GAClC,MAAO,iBACT,MAAME,OAAoB,IAAhBb,EAAEsI,UAAuBlN,KAAKQ,QAAQse,iBAAmBla,EAAEsI,UACrE,OAAa,IAANzH,GAAiB,IAANA,EAAU,aAAaZ,KAAKU,YAAYC,GAAK,KAAO,aAAaX,KAAKU,KAE1F,SAASX,EAAGC,EAAGU,GAAI,GACjB,OAAOX,EAAEmJ,YAAc,OAAS,SAAS/N,KAAKqkB,aAC5Czf,EAAE8F,MACFnF,GACA,OAGJ,iBAAiBX,EAAGC,EAAGU,GACrB,IAAIC,EAAIX,EAAE5D,KACV,IAAKuE,EACH,OAAO,KACT,IAAIC,EAAI,EACR,MAAMK,EAAIlB,EAAEsU,SAASpO,EAAGnF,EAAIf,EAAEuU,OAAOrO,EACrCtF,EAAEc,OAAStG,KAAKQ,QAAQif,oBAAsBja,EAAIA,EAAE2lB,UAAU,EAAGnrB,KAAKQ,QAAQif,mBAAqB,IAAM,aAA2B,IAAlB5a,EAAE2I,YAAyB3I,EAAE2I,YAAcxN,KAAKQ,QAAQgf,kBAAoB1Z,EAAIH,IAAMF,EAAI,IAAKD,EAAIA,EAAE0N,MAAM,IAAIkY,UAAUP,KAAK,KAChP,MAAMhlB,EAAIhB,EAAEkI,cAAgB/M,KAAKQ,QAAQue,yBAA2B,EAAGrY,EAAI7B,EAAEmI,cAAgBhN,KAAKQ,QAAQwe,0BAA4B,EAAGpY,EAAI,aAAaf,KAAKa,KAC/J,IAAIG,EAAI,UACS,IAAhBhC,EAAEqI,WAAqD,IAAlClN,KAAKQ,QAAQse,oBAA4BjY,EAAI,SACnE,IAAIC,EAAI,MACR,GAAoB,IAAhBjC,EAAEqI,WAAqD,IAAlClN,KAAKQ,QAAQse,iBACpC,GAAoB,UAAhBja,EAAE4I,UACJ3G,EAAI,MAAOD,EAAI,aACZ,GAAoB,QAAhBhC,EAAE4I,UACT3G,EAAI,MAAOD,EAAI,WACZ,GAAIhC,EAAE4I,UACT3G,EAAIjC,EAAE4I,UAAW5G,EAAI,aAClB,GAAqC,MAAjC7G,KAAKQ,QAAQ0a,gBAAyB,CAC7C,MAAMhK,EAAItM,EAAEsU,SAASpO,EAAGqG,EAAIvM,EAAEuU,OAAOrO,EACrChE,EAAIukB,OAAOhb,KAAKC,IAAIa,EAAID,GAAK,QACxB,CACL,MAAMA,EAAItM,EAAEsU,SAASnO,EAAGoG,EAAIvM,EAAEuU,OAAOpO,EACrCjE,EAAIukB,OAAOhb,KAAKC,IAAIa,EAAID,GAAK,QAGf,UAAhBrM,EAAE4I,WAAyB3G,EAAI,MAAOD,EAAI,SAA2B,QAAhBhC,EAAE4I,WAAuB3G,EAAI,MAAOD,EAAI,OAAShC,EAAE4I,WAAa3G,EAAIjC,EAAE4I,UAAW5G,EAAI,UAAYC,EAAI,MAAOD,EAAI,UACvK,MAAO,CACL5F,KAAMuE,EACN8lB,WAAY1kB,EACZ2kB,WAAY1kB,EACZ2kB,cAAe1kB,EACf2kB,WAAYhmB,IAIlB,MAAMimB,WAAW7C,GACf,YAAYhkB,EAAGU,GACbwN,MAAMlO,EAAGU,GACTH,EAAEpF,KAAM,wBAAyB,CAAE8K,EAAG,EAAGC,EAAG,IAE9C,KAAKlG,EAAGU,GACNvF,KAAKQ,QAAQugB,WAAalc,EAAI,KAAO+D,EAAE,sBAAuB/D,EAAI,GAAK7E,KAAKQ,QAAQugB,YACpF,MAAMvb,EAAIxF,KAAKQ,QAAQugB,WAAalc,EAAGY,EAAIzF,KAAK2rB,eAAepmB,EAAGV,GAClE7E,KAAKQ,QAAQ4gB,aAAatW,GAAKrF,EAAEmmB,OAAQ5rB,KAAKQ,QAAQ4gB,aAAarW,GAAKtF,EAAEomB,OAAQ7rB,KAAKQ,QAAQugB,WAAavb,EAAGxF,KAAKkmB,wBAAyBlmB,KAAK6iB,UAAUiJ,WAAa9rB,KAAK6iB,UAAUiJ,YAE1L,QAAQjnB,EAAGU,GACT,MAAMC,EAAI6K,KAAKsC,MAAM9N,EAAI7E,KAAKQ,QAAQugB,YACtC/gB,KAAK+rB,KAAKvmB,EAAGD,GAEf,sCAAsCV,GACpC,MAAMU,EAAIvF,KAAKQ,QAAQugB,WAAa,KAAOiL,cAAexmB,EAAGymB,aAAcxmB,GAAMzF,KAAKksB,eAAe3mB,EAAGV,GAAIiB,EAAI,CAC9GgF,EAAGrF,EAAEqF,EAAItF,EAAEsF,EACXC,EAAGtF,EAAEsF,EAAIvF,EAAEuF,GAEb,MAAO,CACLD,EAAGhF,EAAEgF,EAAIvF,EACTwF,EAAGjF,EAAEiF,EAAIxF,GAGb,sCAAsCV,GACpC,MAAMU,EAAIvF,KAAKQ,QAAQugB,WAAa,KAAOiL,cAAexmB,GAAMxF,KAAKksB,eAAe3mB,GAAIE,EAAI,CAC1FqF,EAAGjG,EAAEiG,EAAIvF,EAAIC,EAAEsF,EACfC,EAAGlG,EAAEkG,EAAIxF,EAAIC,EAAEuF,GAEjB,MAAO,CACLD,EAAGrF,EAAEqF,EAAI9K,KAAKQ,QAAQ4gB,aAAatW,EACnCC,EAAGtF,EAAEsF,EAAI/K,KAAKQ,QAAQ4gB,aAAarW,GAGvC,eAAelG,EAAGU,GAChB,MAAMC,EAAI,CACR2mB,eAAgB,CAAErhB,EAAG,EAAGC,EAAG,GAC3BqhB,aAAc,CAAEthB,EAAG,EAAGC,EAAG,GACzBob,eAAgB,CAAErb,EAAG,EAAGC,EAAG,GAC3BihB,cAAe,CAAElhB,EAAG,EAAGC,EAAG,GAC1BshB,YAAa,CAAEvhB,EAAG,EAAGC,EAAG,GACxBkhB,aAAc,CAAEnhB,EAAG,EAAGC,EAAG,GACzBuhB,WAAY,CAAExhB,EAAG,EAAGC,EAAG,GACvBwhB,mBAAoB,CAAEzhB,EAAG,EAAGC,EAAG,GAC/ByhB,aAAc,CAAErlB,MAAO,EAAGC,OAAQ,IACjC3B,EAAIzF,KAAKijB,KAAKE,wBACjB3d,EAAE2mB,eAAerhB,EAAIrF,EAAEkJ,KAAMnJ,EAAE2mB,eAAephB,EAAItF,EAAEoJ,IAAKrJ,EAAE4mB,aAAathB,EAAIrF,EAAE0B,MAAQ,EAAG3B,EAAE4mB,aAAarhB,EAAItF,EAAE2B,OAAS,EACvH,MAAMtB,EAAI9F,KAAKQ,QAAQsX,WAAW3Q,MAAQtC,EAAGc,EAAI3F,KAAKQ,QAAQsX,WAAW1Q,OAASvC,EAClFW,EAAE2gB,eAAerb,EAAI9K,KAAKQ,QAAQ4gB,aAAatW,EAAI9K,KAAKQ,QAAQsX,WAAW3Q,MAAQ,EAAG3B,EAAE2gB,eAAepb,EAAI/K,KAAKQ,QAAQ4gB,aAAarW,EAAI/K,KAAKQ,QAAQsX,WAAW1Q,OAAS,EAAG5B,EAAEwmB,cAAclhB,EAAItF,EAAE2gB,eAAerb,EAAIhF,EAAI,EAAGN,EAAEwmB,cAAcjhB,EAAIvF,EAAE2gB,eAAepb,EAAIpF,EAAI,EAAGH,EAAE6mB,YAAYvhB,EAAItF,EAAE2gB,eAAerb,EAAIhF,EAAI,EAAGN,EAAE6mB,YAAYthB,EAAIvF,EAAE2gB,eAAepb,EAAIpF,EAAI,EAAGH,EAAEymB,aAAanhB,EAAItF,EAAE4mB,aAAathB,EAAGtF,EAAEymB,aAAalhB,EAAIvF,EAAE4mB,aAAarhB,EAAGxF,IAAMC,EAAEymB,aAAanhB,EAAIvF,EAAEuF,EAAItF,EAAE2mB,eAAerhB,EAAGtF,EAAEymB,aAAalhB,EAAIxF,EAAEwF,EAAIvF,EAAE2mB,eAAephB,GAChhB,IAAIrF,EAAIF,EAAE4mB,aAAathB,EAAItF,EAAE2gB,eAAerb,EAAGjF,EAAIL,EAAE4mB,aAAarhB,EAAIvF,EAAE2gB,eAAepb,EACvF,OAAOxF,IAAMG,EAAIF,EAAEymB,aAAanhB,EAAItF,EAAE2gB,eAAerb,EAAGjF,EAAIL,EAAEymB,aAAalhB,EAAIvF,EAAE2gB,eAAepb,GAAIvF,EAAE8mB,WAAWxhB,EAAIpF,EAAGF,EAAE8mB,WAAWvhB,EAAIlF,EAAGL,EAAEgnB,aAAarlB,MAAQrB,EAAGN,EAAEgnB,aAAaplB,OAASzB,EAAGH,EAEnM,eAAeX,EAAGU,GAChB,IAAKvF,KAAKijB,KACR,MAAO,CAAE2I,OAAQ,EAAGC,OAAQ,GAC9B,MAAMrmB,EAAIxF,KAAKQ,QAAQugB,WAAa,IAAKtb,EAAIzF,KAAKksB,eAAe1mB,EAAGX,GAAIiB,GAAK9F,KAAKQ,QAAQugB,WAAaxb,GAAK,IAAKI,EAAI3F,KAAKksB,eAAepmB,EAAGjB,GAAIa,EAAII,EAAIN,EAAGK,EAAI,EAAGa,EAAI,EAAGE,EAAId,EAAIN,EAAGqB,EAAI,EAAGC,EAAI,EAC/L9G,KAAKysB,sBAAsB3hB,EAAIpF,EAAID,EAAE6mB,WAAWxhB,EAAIpE,EAAIjB,EAAE6mB,WAAWvhB,EAAIlE,EAAG7G,KAAKysB,sBAAsB1hB,EAAIlF,EAAIJ,EAAE6mB,WAAWxhB,EAAIlE,EAAInB,EAAE6mB,WAAWvhB,EAAIjE,EACrJ,MAAMoK,EAAIzL,EAAE6mB,WAAWxhB,EAAI9K,KAAKysB,sBAAsB3hB,EAAGqG,EAAI1L,EAAE6mB,WAAWvhB,EAAI/K,KAAKysB,sBAAsB1hB,EACzG/K,KAAKysB,sBAAsB3hB,GAAKrF,EAAE0gB,eAAerb,EAAG9K,KAAKysB,sBAAsB1hB,GAAKtF,EAAE0gB,eAAepb,EACrG,IAAIA,EAAItF,EAAEumB,cAAclhB,EAAIrF,EAAE0gB,eAAerb,EAAGuG,EAAI5L,EAAEumB,cAAcjhB,EAAItF,EAAE0gB,eAAepb,EAAGqK,EAAI1P,EAAIqF,EAAIrE,EAAI2K,EAAIxK,EAAGwO,EAAIxP,EAAIkF,EAAInE,EAAIyK,EAAIvK,EACvI,OAAOnB,EAAEqmB,cAAclhB,EAAIoG,EAAIzL,EAAE0gB,eAAerb,EAAIsK,EAAGzP,EAAEqmB,cAAcjhB,EAAImG,EAAIzL,EAAE0gB,eAAepb,EAAIsK,EAAGtK,EAAItF,EAAE4mB,YAAYvhB,EAAIrF,EAAE0gB,eAAerb,EAAGuG,EAAI5L,EAAE4mB,YAAYthB,EAAItF,EAAE0gB,eAAepb,EAAGqK,EAAI1P,EAAIqF,EAAIrE,EAAI2K,EAAIxK,EAAGwO,EAAIxP,EAAIkF,EAAInE,EAAIyK,EAAIvK,EAAGnB,EAAE0mB,YAAYvhB,EAAIoG,EAAIzL,EAAE0gB,eAAerb,EAAIsK,EAAGzP,EAAE0mB,YAAYthB,EAAImG,EAAIzL,EAAE0gB,eAAepb,EAAIsK,EAAG5P,EAAE8mB,mBAAmBzhB,EAAIoG,EAAGzL,EAAE8mB,mBAAmBxhB,EAAIoG,EAAG,CAC3Xya,OAAQ1a,EACR2a,OAAQ1a,IAId,MAAMub,WAAWhB,GACf,YAAY9mB,EAAGC,GACbkO,MAAMnO,EAAGC,GAEX,WACE,OAAOQ,EAAErF,KAAM,MAAM,YACnB,IAAKA,KAAK8gB,SAER,YADAlY,EAAE,eAGJ,IAAK5I,KAAKwjB,UAAUzR,SAElB,YADAnJ,EAAE,uBAGJ5I,KAAKQ,QAAQ6b,uBAAyBrc,KAAKinB,gBAAiB/d,EAAG,KAAMlJ,KAAKQ,QAAQwgB,cAAgB,EAAGhhB,KAAK2kB,eAAgB3kB,KAAKQ,QAAQ6b,uBAAyBrc,KAAK6nB,eAAgBjf,EAAE,aAAmB5I,KAAKwjB,UAAUH,MAAM/c,QAC/N,MAAM1B,EAAI5E,KAAKQ,QAAQiT,yBACvBzT,KAAK2sB,6BAA+B3sB,KAAKQ,QAAQiT,0BAA2B,GAAKzT,KAAK8gB,SAASzJ,cAAgBrX,KAAK8gB,SAASjG,SAAS7a,KAAKylB,kBAAmBzlB,KAAK8gB,SAASjP,WAAW7R,KAAKwjB,UAAUH,MAAOrjB,KAAKwjB,UAAUzR,UAAW/R,KAAKQ,QAAQiT,yBAA2B7O,EAAG5E,KAAK2sB,4BAA6B,EAAI3sB,KAAKmlB,qBAAsBnlB,KAAK2kB,kBAG5V,QAAQ/f,GAAI,GACV,OAAOS,EAAErF,KAAM,MAAM,YACnBA,KAAK4sB,gBAAiB5sB,KAAK2sB,4BAA6B,EAAI3sB,KAAK2kB,eAAgB/f,UAAY5E,KAAK6sB,YAAajkB,EAAE,yBAA0B5I,KAAK8sB,kBAAmBlkB,EAAE,6BAA8B5I,KAAK+sB,iBAAkB/sB,KAAKmlB,qBAAsBnlB,KAAK2kB,kBAG9P,iBACE,OAAOtf,EAAErF,KAAM,MAAM,YACiB,IAAhCA,KAAKwjB,UAAUH,MAAM/c,QAIrBsC,EAAE,kBAAmB5I,KAAKQ,QAAQ0c,wBAAyBld,KAAKQ,QAAQ2c,sBAAuBnd,KAAKwjB,UAAUzR,UAAY3I,OAAOuK,MAAM3T,KAAKwjB,UAAUzR,SAASjH,GACjKlC,EAAE,kDAGJ5I,KAAKQ,QAAQ0c,8BAAgCld,KAAKgtB,gBAAkBhtB,KAAKimB,gBAAgB,EAAG,GAAIjmB,KAAK2kB,sBAAuB3kB,KAAKmd,yBAP/HvU,EAAE,qDAUR,eACE,OAAOvD,EAAErF,KAAM,MAAM,YACnB,GAAIA,KAAKQ,QAAQ4c,wBAAyB,CACxC,MAAMxY,EAAI5E,KAAKitB,iBACfrkB,EAAE,UAAWhE,EAAEkG,EAAGlG,EAAEmG,GACpB,MAAMlG,EAAI7E,KAAK8lB,gBACfld,EAAE,gBAAiB/D,EAAEqG,SAAUrG,EAAEsG,UACjC,MAAM5F,EAAIvF,KAAKQ,QAAQyT,SAAS9M,MAAQ,EAAIvC,EAAEkG,EAAIjG,EAAEqG,SAAU1F,EAAIxF,KAAKQ,QAAQyT,SAAS7M,OAAS,EAAIxC,EAAEmG,EAAIlG,EAAEsG,eACvGnL,KAAKktB,YAAY3nB,EAAGC,EAAG,KAAMxF,KAAK2kB,mBACnC,CACL,MAAM/f,EAAI5E,KAAKitB,iBACfrkB,EAAE,UAAWhE,EAAEkG,EAAGlG,EAAEmG,GAAI/K,KAAKimB,gBAAgBrhB,EAAEkG,EAAGlG,EAAEmG,GAAI/K,KAAK2kB,mBAInE,uBACE,OAAOtf,EAAErF,KAAM,MAAM,YACnBA,KAAKQ,QAAQ2c,6BAA+Bnd,KAAKmtB,gBAGrD,kBACE,OAAO9nB,EAAErF,KAAM,MAAM,YACnB,MAAM4E,EAAI,GACV5E,KAAKwjB,UAAUzR,UAAY/R,KAAKgmB,eAAehmB,KAAKwjB,UAAUzR,SAAUnN,GACxE,MAAMC,EAAI,GAAIU,EAAI,GAClBvF,KAAKwjB,UAAUH,MAAMjX,QAAS5G,IAC5BZ,EAAEyH,SAAS7G,MAAOxF,KAAKQ,QAAQ8e,iBAAqB9Z,EAAE2E,aAAwC,IAAzB3E,EAAE2E,YAAY7D,SAA6B,IAAZd,EAAEoF,MAAgM/F,EAAEwJ,KAAK7I,IAAvLA,EAAEsF,EAAIuF,KAAKsC,MAAsB,IAAhBtC,KAAKmH,UAAkB,IAAKhS,EAAEuF,EAAIsF,KAAKsC,MAAsB,IAAhBtC,KAAKmH,UAAkB,IAAKhS,EAAEgK,MAAQhK,EAAEgK,IAAM,CAAE9D,OAAQ,KAAOlG,EAAEgK,IAAI8C,QAAS,EAAI9M,EAAEgG,YAAa,EAAIjG,EAAE8I,KAAK7I,OAC9RxF,KAAKQ,QAAQ8e,iBAA+C,UAA5Btf,KAAKQ,QAAQoa,YAA0B5a,KAAKotB,iBAAiB7nB,GAAIvF,KAAKQ,QAAQ+e,iBAA+C,UAA5Bvf,KAAKQ,QAAQoa,mBAAiC5a,KAAKuf,gBAAgB1a,EAAGD,GAAI5E,KAAK2kB,mBAGxN,iBAAiB/f,GACf,GAAIA,EAAE0B,OAAS,EAAG,CAChBsC,EAAE,eAAgBhE,EAAE0B,QACpB,MAAMzB,EAAI,IAAI8R,EAAG,CAAEiE,WAAY,SAAW5a,KAAKQ,SAC/CqE,EAAEiN,SAAW9R,KAAKwjB,UAAUH,MAAOxe,EAAE+R,WAAY,EAAI/R,EAAEkU,sBAAuB,EAAIlU,EAAEgS,eAAiB,IAAKhS,EAAEkS,QAAS,EAAIlS,EAAEgT,YAAW,IAG1I,gBAAgBjT,EAAGC,GACjB,OAAOQ,EAAErF,KAAM,MAAM,YACnB,GAAI4E,EAAE0B,OAAS,EAAG,CAChBsC,EAAE,yCAA0ChE,EAAE0B,QAC9C,MAAMf,EAAIqc,KAAKC,MAAMD,KAAKE,UAAU9hB,KAAK8gB,SAASpP,gBAAiBlM,EAAIsV,EAAGvV,EAAGvF,KAAKQ,SAClFgF,EAAEmS,eAAgB,EAClB,MAAMlS,EAAIb,EAAE,GAAIkB,EAAI9F,KAAKwmB,aAAa3hB,GACtC+D,EAAE,oCAAqCpD,EAAEkM,cAAckJ,WAAY,QAASnV,EAAExE,MAC9E,IAAI0E,EAAIH,EAAEkM,cAAckJ,WAAWvO,SAAS,QAAU,IAAM,IAC5D,GAAmC,UAA/B7G,EAAEkM,cAAckJ,WAAwB,CAC1C,MAAMlU,EAAIlB,EACVkB,EAAEsQ,qBAAuB,GAAKtQ,EAAEuQ,mBAAqB,IAAKtR,EAAI,IAEhEF,EAAEqF,EAAIhF,EAAEugB,KAAO1gB,EAAGF,EAAEsF,EAAI,EAAGvF,EAAEkM,cAAcoC,eAAgB,EAC3D,MAAMpO,EAAI,GACV1F,KAAKgmB,eAAevgB,EAAGC,GAAIkD,EAAE,mCAAoChE,EAAE0B,QAAStG,KAAK8gB,SAASzJ,cAAgBrX,KAAK8gB,SAASjG,SAAS7a,KAAKylB,kBAAmBjgB,EAAEqM,WAAWnM,EAAGD,GAAIZ,EAAEwJ,QAAQ3I,GACvL,MAAMG,EAAI,GACVjB,EAAEwH,QAAS1F,IACT7B,EAAEwH,SAAS3F,IAAMb,EAAEwI,KAAK3H,WAChB1G,KAAKuf,gBAAgB1Z,EAAGhB,GAAI7E,KAAK2kB,mBAIjD,UAAU/f,GACR,OAAOS,EAAErF,KAAM,MAAM,YACnB,MAAM6E,EAAI7E,KAAKwmB,eAAgBjhB,EAAIvF,KAAKQ,QAAQyT,SAAS9M,MAAQtC,EAAEsC,MAAO3B,EAAIxF,KAAKQ,QAAQyT,SAAS7M,OAASvC,EAAEuC,OAAQ3B,EAAI4K,KAAK6J,IAAI3U,EAAGC,EAAG,GAC1IoD,EAAE,aAAc,CAAEykB,UAAWxoB,EAAGyoB,YAAa7nB,EAAG8nB,aAAchoB,EAAGioB,aAAchoB,EAAGyO,SAAUjU,KAAKQ,QAAQyT,WAAajU,KAAKQ,QAAQ4c,+BAAiCpd,KAAKytB,cAAkB,IAAJhoB,EAAS,KAAMzF,KAAK2kB,eAAgB/f,GAAKA,MAAQ5E,KAAK0tB,QAAY,IAAJjoB,GAAUzF,KAAK2kB,eAAgB/f,GAAKA,QAG7R,YAAYA,EAAGC,EAAGU,GAChB,OAAOF,EAAErF,KAAM,MAAM,YACnB,OAAO,IAAIsF,QAAQ,CAACE,EAAGC,KACrBmD,EAAE,eAAgBhE,EAAGC,GACrB,MAAMiB,EAAIlB,EAAI5E,KAAKQ,QAAQ4gB,aAAatW,EAAGnF,EAAId,EAAI7E,KAAKQ,QAAQ4gB,aAAarW,EAAGrF,EAAIH,EAAGM,EAAI,EAAGa,EAAI2J,KAAKsE,MAAM7O,EAAID,GAAIe,EAAIyJ,KAAKsE,MAAMhP,EAAIE,GAAIgB,EAAInB,EAAIG,EACpJ7F,KAAK2tB,kBAAkB,EAAG9mB,EAAGhB,EAAG,KAC9B7F,KAAKQ,QAAQ4gB,aAAatW,GAAKpE,EAAG1G,KAAKQ,QAAQ4gB,aAAarW,GAAKnE,EAAG5G,KAAK2kB,gBACxE,KACDnf,WAKR,cAAcZ,EAAGC,GACf,OAAOQ,EAAErF,KAAM,MAAM,YACnB,OAAO,IAAIsF,QAAQ,CAACC,EAAGC,KACrB,MAAMC,EAAIb,EAAI5E,KAAKQ,QAAQugB,WAAYjb,EAAIjB,EAAGc,EAAI,EAAGD,EAAI2K,KAAKsE,MAAMlP,EAAIE,GAAIE,EAAIC,EAAIH,EACpFiD,EAAE,iBAAkBnD,EAAGC,GAAI1F,KAAK2tB,kBAAkB,EAAG9nB,EAAGF,EAAG,KACzD3F,KAAK+rB,KAAKrmB,GAAI1F,KAAK2kB,gBAClB,KACD3kB,KAAK0tB,QAAQ9oB,GAAI5E,KAAK2kB,eAAgBpf,WAK9C,kBAAkBX,EAAGC,EAAGU,EAAGC,EAAGC,GAC5Bb,EAAIW,GAAKC,EAAEZ,EAAGW,GAAIqC,WAAW,KAC3B5H,KAAK2tB,kBAAkB/oB,EAAI,EAAGC,EAAGU,EAAGC,EAAGC,IACtCZ,IAAMY,IAEX,mBACEzF,KAAKQ,QAAQoX,eAAiB5X,KAAKQ,QAAQoX,cAAehP,EAAE,uBAAwB5I,KAAKQ,QAAQoX,eAAgB5X,KAAKQ,QAAQoX,cAAgB5X,KAAK4tB,kBAAoB5tB,KAAK6tB,iBAE9K,kBACE7tB,KAAKQ,QAAQoX,eAAgB,EAAI5X,KAAK8gB,SAASjJ,WAAa7X,KAAK8gB,SAASjJ,YAAW,EAAI7X,KAAK8iB,SAAW,MACvG9iB,KAAK2kB,kBACD/b,EAAE,qCAEV,iBACE5I,KAAKQ,QAAQoX,eAAgB,EAAI5X,KAAK8gB,SAASgN,KAAO9tB,KAAK8gB,SAASgN,OAASllB,EAAE,qCAEjF,MAAMhE,GACJ,OAAOS,EAAErF,KAAM,MAAM,kBACbkJ,EAAGtE,OAIf,IAAImpB,GAAI,CAAEjjB,EAAG,EAAGC,EAAG,GACnB,MAAMijB,GAAI,CAAEljB,EAAG,EAAGC,EAAG,GAAKkjB,GAAI,CAAEnjB,EAAG,EAAGC,EAAG,GACzC,IAAImjB,GAAIC,GACR,MAAMC,GAAM1qB,IACV,MAAMkB,EAAI,CACR8D,QAAS,EACTC,QAAS,GAEX,GAAIN,EAAE3E,GAAI,CACR,MAAMmB,EAAInB,EAAE4E,SAAW5E,EAAE6E,cACzB,IAAK1D,EACH,MAAM,IAAI0E,MAAM,uBAClB3E,EAAE8D,QAAU7D,EAAE,GAAG6D,QAAS9D,EAAE+D,QAAU9D,EAAE,GAAG8D,aAE3C/D,EAAE8D,QAAUhF,EAAEgF,QAAS9D,EAAE+D,QAAUjF,EAAEiF,QACvC,OAAO/D,GACNypB,GAAI,CACL,UAAU3qB,EAAGkB,EAAGC,EAAGU,GACb2oB,GAAJ3oB,EAAS,CAACC,EAAGC,EAAGK,KACd,MAAMH,EAAIH,EAAIyoB,GAAEnjB,EAAGpF,EAAID,EAAIwoB,GAAEljB,EAC7BxF,EAAEI,EAAGD,EAAGsoB,GAAGC,GAAGnoB,IACP,CAACN,EAAGC,KACXsoB,GAAEjjB,EAAIkjB,GAAEljB,GAAKtF,EAAIyoB,GAAEnjB,GAAIijB,GAAEhjB,EAAIijB,GAAEjjB,GAAKtF,EAAIwoB,GAAEljB,IACzCojB,GAAKtpB,EAAGkpB,GAAInpB,EAAGopB,GAAEljB,EAAIijB,GAAEjjB,EAAGkjB,GAAEjjB,EAAIgjB,GAAEhjB,EAAGnC,EAAE,yBAA0BP,EAAE3E,GAAIA,GAC1E,IACE,MAAM8B,EAAI4oB,GAAG1qB,GACbuqB,GAAEnjB,EAAItF,EAAEkD,QAASulB,GAAEljB,EAAIvF,EAAEmD,QAASN,EAAE3E,IAAML,SAASiE,KAAKI,iBAAiB,YAAa2mB,GAAEC,YAAajrB,SAASiE,KAAKI,iBAAiB,WAAY2mB,GAAEE,eAAgB7qB,EAAE8qB,mBAAqBnrB,SAASiE,KAAKI,iBAAiB,YAAa2mB,GAAEC,YAAajrB,SAASiE,KAAKI,iBAAiB,UAAW2mB,GAAEE,gBAChS,MAAO/oB,GACP7B,QAAQC,MAAM4B,EAAEipB,WAGpB,WAAW/qB,GACT,MAAMkB,EAAIwpB,GAAG1qB,GACbwqB,GAAGtpB,EAAE8D,QAAS9D,EAAE+D,QAASjF,IAE3B,cAAcA,GACZ2E,EAAE3E,IAAML,SAASiE,KAAKO,oBAAoB,YAAawmB,GAAEC,YAAajrB,SAASiE,KAAKO,oBAAoB,WAAYwmB,GAAEE,iBAAmBlrB,SAASiE,KAAKO,oBAAoB,YAAawmB,GAAEC,YAAajrB,SAASiE,KAAKO,oBAAoB,UAAWwmB,GAAEE,gBAAiB3lB,EAAE,uBAAwBP,EAAE3E,GAAIA,GAAIyqB,IAAMA,GAC/SJ,GAAEjjB,EAAIkjB,GAAEljB,EACRijB,GAAEhjB,EAAIijB,GAAEjjB,EACRrH,KAMHgJ,OAAOC,YACV,MAAM,WAAW+f,GACf,YAAY7nB,EAAGU,GACbwN,MAAMlO,EAAGU,GACTH,EAAEpF,KAAM,gBAAiB,GACzBoF,EAAEpF,KAAM,kBACRoF,EAAEpF,KAAM,iBAAkB,GAC1BoF,EAAEpF,KAAM,wBAEV,oBAAoB6E,GAClB7E,KAAKQ,QAAQse,iBAAmBja,EAElC,wBAAwBA,GACtB7E,KAAKQ,QAAQ4e,qBAAuBva,EAEtC,eAAeA,GACb7E,KAAKQ,QAAQ+f,cAAgB1b,EAE/B,sBAAsBA,EAAGU,GACvBvF,KAAKQ,QAAQigB,cAAgB5b,EAAEqf,SAAUlkB,KAAKQ,QAAQggB,cAAgBjb,EAAIA,EAAErE,GAAK,GAEnF,eACElB,KAAKQ,QAAQ+f,cAAgB,GAAIvgB,KAAKQ,QAAQggB,cAAgB,GAAIxgB,KAAKQ,QAAQigB,cAAgB,GAEjG,WAAW5b,EAAGU,GACZV,EAAEiF,SAAWvE,EAEf,UAAUV,EAAGU,GACXV,EAAEkF,SAAWxE,EAEf,qBAAqBV,EAAGU,EAAGC,GACzBX,EAAEiH,GAAGC,YAAcxG,EAAGV,EAAEiH,GAAGE,aAAexG,EAE5C,YAAYX,EAAGU,GACTsT,KAAKC,MAAQ9Y,KAAK0uB,cAAgB,IACpC9lB,EAAE,mCAGA5I,KAAK0uB,cAAgB7V,KAAKC,MAAO9Y,KAAKQ,QAAQuhB,iBAChD/hB,KAAK2uB,gCAAgC9pB,IAGvC+D,EAAE,mBAAoB/D,EAAE5D,KAAMjB,KAAKQ,QAAQuhB,mBAAoBxc,EAAEqpB,WAAoD,IAAxC5uB,KAAKQ,QAAQ8c,yBAAiE,IAAhCzY,EAAEyG,4BAAqCtL,KAAKQ,QAAQigB,cAAgB,GAAIzgB,KAAKQ,QAAQggB,cAAgB,GAAIxgB,KAAK6uB,eAAehqB,EAAE3D,KAAMlB,KAAK6iB,UAAUiM,aAAe9uB,KAAK6iB,UAAUiM,YAAYjqB,EAAGU,GAAIvF,KAAK0uB,cAAgB7V,KAAKC,QAE5V,YAAYjU,EAAGU,EAAGC,GAChBoD,EAAE,eAAgB,QAAS/D,EAAG,QAASU,IAA4C,IAAxCvF,KAAKQ,QAAQ+c,yBAAiE,IAAhC1Y,EAAEyG,4BAAqCtL,KAAK6uB,eAAe,IAAK7uB,KAAK+uB,sBAAsBxpB,EAAGV,IAAK7E,KAAK6iB,UAAUmM,aAAehvB,KAAK6iB,UAAUmM,YAAYnqB,EAAGU,EAAGC,GAE7P,qBAAqBX,EAAGU,GACtB,OAAOF,EAAErF,KAAM,MAAM,aACJ,IAAf6E,EAAE8E,eAAwB3J,KAAKivB,WAAWpqB,EAAGU,SAAWvF,KAAKkvB,aAAarqB,EAAGU,MAGjF,sBAAsBV,EAAGU,GACvBV,EAAE2K,IAAI9D,OAAOU,QAAS5G,IACpBA,EAAEsF,EAAIvF,EAAEuF,EAAGtF,EAAEuF,EAAIxF,EAAEwF,EAAG/K,KAAKmvB,sBAAsB3pB,EAAGD,KAGxD,WAAWV,EAAGU,GACZ,OAAOF,EAAErF,KAAM,MAAM,YACnB4I,EAAE,gBAAiB/D,GAAIA,EAAE8E,UAAW,EAAI3J,KAAKQ,QAAQiT,iCAAmCzT,KAAK8gB,SAASvO,0BAA2BvS,KAAKmvB,sBAAsBtqB,EAAGA,SAAU7E,KAAK8gB,SAASpN,iBAAgB,IAAM9K,EAAE,kBAAmB5I,KAAKQ,QAAQqgB,iCAAkC7gB,KAAKQ,QAAQqgB,kCAAoCjY,EAAE,qBAAsB5I,KAAK8gB,SAASvO,gCAAiCvS,KAAK6sB,YAAa7sB,KAAKmlB,qBAAsBnlB,KAAK2kB,eAAgB3kB,KAAK6iB,UAAUuM,cAAgBpvB,KAAK6iB,UAAUuM,aAAavqB,EAAGU,MAG7gB,oBAAoBV,EAAGU,GACrBV,EAAE2K,IAAI9D,OAAOU,QAAS5G,IACpBA,EAAEgK,IAAI4C,OAAS5M,EAAEsF,EAAGtF,EAAEgK,IAAI6C,OAAS7M,EAAEuF,EAAGvF,EAAEgK,IAAIwC,KAAOzM,EAAEuF,EAAGtF,EAAEgK,IAAI0C,KAAO3M,EAAEwF,EAAG/K,KAAKqvB,oBAAoB7pB,EAAGD,KAG5G,aAAaV,EAAGU,GACd,OAAOF,EAAErF,KAAM,MAAM,YACnB4I,EAAE,kBAAmB/D,GAAI7E,KAAKQ,QAAQiT,iCAAmCzT,KAAK8gB,SAASvO,0BAA2BvS,KAAKqvB,oBAAoBxqB,EAAGA,SAAU7E,KAAK8gB,SAASpN,iBAAgB,IAAM7O,EAAE8E,UAAW,EAAIf,EAAE,kBAAmB5I,KAAKQ,QAAQqgB,iCAAkC7gB,KAAKQ,QAAQqgB,kCAAoCjY,EAAE,qBAAsB5I,KAAK8gB,SAASvO,gCAAiCvS,KAAK6sB,YAAa7sB,KAAKmlB,qBAAsBnlB,KAAK2kB,eAAgB3kB,KAAK6iB,UAAUyM,gBAAkBtvB,KAAK6iB,UAAUyM,eAAezqB,EAAGU,MAGjhB,cAAcV,EAAGU,GACfvF,KAAKmlB,qBAAsBnlB,KAAK6iB,UAAU0M,eAAiBvvB,KAAK6iB,UAAU0M,cAAc1qB,EAAGU,GAE7F,gBAAgBV,GACd7E,KAAK6iB,UAAU2M,iBAAmBxvB,KAAK6iB,UAAU2M,gBAAgB3qB,GAEnE,cAAcA,GACZ7E,KAAKQ,QAAQuhB,kBAAoB/hB,KAAKyvB,kCAAkC5qB,GAAI7E,KAAK6iB,UAAU6M,eAAiB1vB,KAAK6iB,UAAU6M,cAAc7qB,GAE3I,eAAeA,GACb7E,KAAK6nB,eAEP,qBAAqBhjB,EAAGU,GACtBvF,KAAK6iB,UAAU8M,sBAAwB3vB,KAAK6iB,UAAU8M,qBAAqB9qB,EAAGU,GAEhF,sBAAsBV,EAAGU,GACvBvF,KAAKQ,QAAQmhB,gBAAkBrY,EAAGsY,KAAKC,MAAMD,KAAKE,UAAUxG,KAAOtb,KAAKQ,QAAQihB,kBAAmB,EACnG,MAAMjc,EAAI6C,EAAExD,GACZ7E,KAAKQ,QAAQkhB,kBAAoBlc,EACjC,IAAIC,EAAI,CAACyL,EAAGC,KACVnR,KAAKQ,QAAQmhB,gBAAgB7W,EAAIoG,EAAGlR,KAAKQ,QAAQmhB,gBAAgB5W,EAAIoG,EAAGnR,KAAK2kB,gBAC5E7e,EAAI,CAACoL,EAAGC,KACT,MAAMpG,EAAI,KAAO8N,KAAKC,MACtB9Y,KAAK4vB,SAAS,CAAC,CACb1uB,GAAI6J,EACJ9J,KAAMjB,KAAKQ,QAAQmhB,gBAAgB1gB,KACnC6J,EAAGoG,EACHnG,EAAGoG,MAGP5L,GAAKA,EAAEsqB,eAAiB7vB,KAAKQ,QAAQmhB,gBAAgB1gB,KAAOsE,EAAEsqB,cAAetqB,GAAKA,EAAEuqB,qBAAuB9vB,KAAKQ,QAAQmhB,gBAAgB1X,WAAa1E,EAAEuqB,oBAAqBvqB,GAAKA,EAAEwqB,cAAgBjsB,OAAOqI,KAAK5G,EAAEwqB,cAAc3jB,QAAS8E,IACtOlR,KAAKQ,QAAQmhB,gBAAgBzQ,GAAK3L,EAAEwqB,aAAa7e,KAC/C3L,GAAKA,EAAEyqB,eAAiBvqB,EAAIF,EAAEyqB,cAAezqB,GAAKA,EAAE0qB,eAAiBnqB,EAAIP,EAAE0qB,cAC/E,MAAMtqB,EAAI3F,KAAKijB,KAAKE,wBACpBva,EAAE,4CACF,MAAMlD,EAAI8C,EAAG3D,GAAIgB,EAAIH,EAAEgD,QAAU/C,EAAEmF,EAAI,GAAIpE,EAAIhB,EAAEiD,QAAUhD,EAAEoF,EAAI,GACjEvF,GAAKC,EAAEI,EAAGa,GACV,MAAME,EAAKsK,IACT,MAAMC,EAAInR,KAAKijB,KAAKE,wBACpBva,EAAE,wCACF,MAAMmC,EAAImG,EAAExI,QAAUyI,EAAErG,EAAI,GAAIuG,EAAIH,EAAEvI,QAAUwI,EAAEpG,EAAI,GACtDtF,EAAEsF,EAAGsG,IACJxK,EAAKqK,IACNtI,EAAE,iCAAkC5I,KAAKijB,KAAKpb,oBAAoB,YAAajB,GAAI5G,KAAKijB,KAAKpb,oBAAoB,QAASf,GAAI9G,KAAKijB,KAAKpb,oBAAoB,cAAehB,GAAI7G,KAAKQ,QAAQihB,kBAAmB,GAC9M3a,EAAKoK,IACN,IAAIC,GAAI,EACR,GAAInR,KAAKQ,QAAQihB,mBAAqBtQ,GAAI,GAAKnR,KAAKijB,KAAKpb,oBAAoB,YAAajB,GAAI5G,KAAKijB,KAAKpb,oBAAoB,QAASf,GAAI9G,KAAKijB,KAAKpb,oBAAoB,cAAehB,GAAI7G,KAAKQ,QAAQihB,kBAAmB,EAAItQ,EAE5N,YADAvI,EAAE,sCAGJ,MAAMmC,EAAIvC,EAAG0I,GAAIG,EAAItG,EAAErC,QAAU/C,EAAEmF,EAAI,GAAIsK,EAAIrK,EAAEpC,QAAUhD,EAAEoF,EAAI,GACjE,GAAIxF,GAAKA,EAAE2qB,oBAAsB7f,KAAKC,IAAIzK,EAAIwL,GAAK,GAAKhB,KAAKC,IAAI5J,EAAI0O,GAAK,EAExE,YADAxM,EAAE,2CAGJ,MAAMyM,EAAIrV,KAAKmwB,sCAAsC,CAAErlB,EAAGC,EAAErC,QAASqC,EAAGA,EAAEpC,UAC1EC,EAAE,oCAAqCyM,GAAIvP,EAAEuP,EAAEvK,EAAGuK,EAAEtK,GAAI/K,KAAK2kB,gBAE/D/c,WAAW,KACT5H,KAAKijB,KAAKvb,iBAAiB,QAASZ,GAAI9G,KAAKijB,KAAKvb,iBAAiB,cAAeb,IACjF,KAAMrB,GAAKxF,KAAKijB,KAAKvb,iBAAiB,YAAad,GAExD,sBAAsB/B,EAAGU,GACvB,MAAMC,EAAI6C,EAAExD,GACZU,GAAKA,EAAE6qB,eAAiBpwB,KAAKqwB,qBAAuB9qB,EAAE6qB,cAAe7qB,GAAKA,EAAE+qB,UAAYxsB,OAAOysB,OAAOvwB,KAAKQ,QAAQwhB,gBAAiBzc,EAAE+qB,UAAWtwB,KAAKQ,QAAQyhB,gBAAgB/I,SAAW,KAAM3T,GAAKA,EAAE2T,WAAalZ,KAAKQ,QAAQyhB,gBAAgB9I,OAAOrO,EAAIvF,EAAE2T,SAASpO,EAAI,GAAI9K,KAAKQ,QAAQyhB,gBAAgB9I,OAAOpO,EAAIxF,EAAE2T,SAASnO,EAAI,GAAI/K,KAAKQ,QAAQyhB,gBAAgB/I,SAAW3T,EAAE2T,SAAUlZ,KAAKwwB,eAAiB3X,KAAKC,OAAQ9Y,KAAKQ,QAAQuhB,kBAAmB,EAAI/hB,KAAKQ,QAAQyhB,gBAAgBC,aAAe,KAAMliB,KAAKQ,QAAQwhB,gBAAgB1W,2BAA4B,EAAItL,KAAKQ,QAAQyhB,gBAAgB9I,OAAOrN,GAAGC,YAAc,EAAG/L,KAAKQ,QAAQyhB,gBAAgB9I,OAAOrN,GAAGE,aAAe,EAAGpD,EAAE,2CAA4CpD,GAAIA,IAAMoD,EAAE,mCAAoC5I,KAAKywB,eAAiBzwB,KAAK0wB,6BAA6B7d,KAAK7S,MAAOA,KAAKijB,KAAKvb,iBAAiB,YAAa1H,KAAKywB,iBAEr3B,uBACE7nB,EAAE,4CAA6C5I,KAAKQ,QAAQuhB,kBAAmB,EAAI/hB,KAAKQ,QAAQyhB,gBAAgB/I,SAAW,KAAMlZ,KAAKQ,QAAQyhB,gBAAgBC,aAAe,KAAMliB,KAAKqwB,0BAAuB,EAAQrwB,KAAKijB,KAAKpb,oBAAoB,YAAa7H,KAAKywB,gBAAiBzwB,KAAK2kB,eAE/R,6BAA6B9f,GAC3B,GAAI+D,EAAE,+BAAgC5I,KAAKQ,QAAQyhB,gBAAgB/I,SAAU,CAC3E,MAAM3T,EAAIvF,KAAKmwB,sCAAsC,CACnDrlB,EAAGjG,EAAE6D,QACLqC,EAAGlG,EAAE8D,UAEP3I,KAAKQ,QAAQyhB,gBAAgB9I,OAAOrO,EAAIvF,EAAEuF,EAAG9K,KAAKQ,QAAQyhB,gBAAgB9I,OAAOpO,EAAIxF,EAAEwF,EAAG/K,KAAK2kB,gBAGnG,kCAAkC9f,GAChC,GAAIgU,KAAKC,MAAQ9Y,KAAKwwB,eAAiB,IACrC5nB,EAAE,oCAAqC5I,KAAKwwB,qBAG9C,GAAKxwB,KAAKQ,QAAQyhB,gBAAgB/I,SAAlC,CAIA,IAAKlZ,KAAKQ,QAAQyhB,gBAAgBC,aAAc,CAC9CtZ,EAAE,4DACF,MAAMrD,EAAIiD,EAAG3D,GAAIW,EAAIxF,KAAKmwB,sCAAsC,CAAErlB,EAAGvF,EAAEmD,QAASqC,EAAGxF,EAAEoD,UACrF3I,KAAKowB,aAAapwB,KAAKQ,QAAQyhB,gBAAgB/I,SAAU1T,GAE3DxF,KAAK2wB,4BARH/nB,EAAE,wDAUN,gCAAgC/D,GAC9B7E,KAAKQ,QAAQyhB,gBAAgB/I,UAAYtQ,EAAE,+CAAgD5I,KAAKQ,QAAQyhB,gBAAgB/I,SAAUrU,GAAI7E,KAAKQ,QAAQyhB,gBAAgBC,aAAerd,EAAG7E,KAAKowB,aAAapwB,KAAKQ,QAAQyhB,gBAAgB/I,SAAUrU,GAAI7E,KAAK2wB,yBAA2B/nB,EAAE,0CAA2C/D,GAAI7E,KAAKQ,QAAQyhB,gBAAgB/I,SAAWrU,EAAG7E,KAAKQ,QAAQyhB,gBAAgB9I,OAAOrO,EAAIjG,EAAEiG,EAAI,GAAI9K,KAAKQ,QAAQyhB,gBAAgB9I,OAAOpO,EAAIlG,EAAEkG,EAAI,GAAI/K,KAAKwwB,eAAiB3X,KAAKC,OAE/e,aAAajU,EAAGU,GACdqD,EAAE,8CAA+C/D,EAAGU,GAAIvF,KAAKqwB,sBAAwBrwB,KAAKqwB,qBAAqBxrB,EAAGU,EAAGvF,KAAKQ,QAAQwhB,iBAEpI,OAAOnd,GACL,MAAMU,EAAIuD,EAAGjE,EAAG,gBAAiB,WACjC,OAAOU,EAAIvF,KAAK+jB,YAAYxe,EAAEqrB,QAAQ1vB,SAAM,EAE9C,OAAO2D,GACL,MAAMU,EAAIuD,EAAGjE,EAAG,gBAAiB,WACjC,OAAOU,EAAIvF,KAAK6wB,YAAYtrB,EAAEqrB,QAAQ1vB,SAAM,EAE9C,cAAc2D,GACZ,IAAIU,EAAI,SAAUC,EAAIxF,KAAK8wB,OAAOjsB,EAAEksB,QACpCvrB,EAAID,EAAI,QAAUC,EAAIxF,KAAKgxB,OAAOnsB,EAAEksB,QAASvrB,IAAMD,EAAI,SAAUqD,EAAE,yBAA0BrD,EAAGC,GAAIxF,KAAK6iB,UAAUoO,eAAiBjxB,KAAK6iB,UAAUoO,cAAcpsB,EAAGU,EAAGC,GAEzK,WAAWX,QACH,IAANA,GAAgB7E,KAAKQ,QAAQ8f,YAActgB,KAAKQ,QAAQ8f,WAAY,IAAE4Q,OAAOlxB,KAAKijB,MAAM/c,KAAK,KAC3F0B,WAAW,KACT5H,KAAKkmB,yBACJ,SACElmB,KAAKQ,QAAQ8f,WAAazb,EAAG+C,WAAW,KAC7C5H,KAAKkmB,yBACJ,MAEL,cAAcrhB,GACZ,OAAOQ,EAAErF,KAAM,MAAM,YACnB,IAAIuF,EACJvF,KAAKwjB,UAAUH,MAAMjX,QAAS5G,IAC5BA,EAAEtE,KAAO2D,IAAMU,EAAIC,KACjBD,UAAYvF,KAAKmxB,aAAa5rB,OAGtC,gBACE,OAAOF,EAAErF,KAAM,MAAM,YACnB4I,EAAE,gCAAiC5I,KAAKwjB,UAAUzR,iBAAmB/R,KAAKmxB,aAAanxB,KAAKwjB,UAAUzR,cAG1G,aAAalN,GACX,OAAOQ,EAAErF,KAAM,MAAM,YACnB4I,EAAE,WAAY/D,GAAIuiB,SAAS,CACzBvY,IAAK7O,KAAKijB,KAAKmO,kBACPpxB,KAAKytB,cAAc,IAAK,KAClC,MAAMloB,EAAIV,EAAEsC,OAAS,GAAI3B,EAAIX,EAAEuC,QAAU,GAAI3B,GAAW,EAAPZ,EAAEiG,EAAS9K,KAAKQ,QAAQyT,SAAS9M,MAAQ,EAAI5B,EAAI,EAAGO,GAAW,EAAPjB,EAAEkG,EAAS/K,KAAKQ,QAAQyT,SAAS7M,OAAS,EAAI5B,EAAI,QACrJxF,KAAKktB,YAAYznB,EAAGK,EAAG,KAAM9F,KAAKQ,QAAQ+f,cAAgB1b,EAAE3D,GAAIlB,KAAKkmB,2BAG/E,aAAarhB,GACX,GAAI7E,KAAKQ,QAAQuc,YACf,OAAOlY,EAAEwsB,cAAe,GAAI,EAC9B,IACExsB,EAAEwsB,cAAe,EAAIxsB,EAAE2pB,iBAAkB3pB,EAAEvD,kBAC3C,MAAOwE,IAET,MAAMP,EAAI,CACRuF,EAAGjG,EAAE6D,QACLqC,EAAGlG,EAAE8D,SAEP,IAAInD,EAAIX,EAAEysB,YACJ,IAAN9rB,IAAiBA,EAAIX,EAAE0sB,YACvB,MAAM9rB,GAAK,EACXD,EAAI,EAAIxF,KAAK+rB,KAAK,EAAItmB,EAAGF,GAAKvF,KAAK+rB,MAAM,EAAItmB,EAAGF,GAElD,gBAAgBV,EAAGU,GACjBqD,EAAE,sBACF,MAAMpD,EAAI,CAAEsF,EAAGjG,EAAEqU,SAASpO,EAAGC,EAAGlG,EAAEqU,SAASnO,GAAKtF,EAAI,CAAEqF,EAAGjG,EAAEsU,OAAOrO,EAAGC,EAAGlG,EAAEsU,OAAOpO,GAAKjF,EAAI,CAACH,EAAGD,EAAGG,EAAGa,EAAGE,KACrG/B,EAAEqU,SAASpO,EAAItF,EAAEsF,EAAInF,GAAK3F,KAAKQ,QAAQugB,WAAa,KAAMlc,EAAEqU,SAASnO,EAAIvF,EAAEuF,EAAIrF,GAAK1F,KAAKQ,QAAQugB,WAAa,KAAMlc,EAAEsU,OAAOrO,EAAIrF,EAAEqF,EAAInF,GAAK3F,KAAKQ,QAAQugB,WAAa,KAAMlc,EAAEsU,OAAOpO,EAAItF,EAAEsF,EAAIrF,GAAK1F,KAAKQ,QAAQugB,WAAa,KAAM/gB,KAAK2kB,gBAE3O0J,GAAEmD,UAAUjsB,EAAG,CAAEuF,EAAG,EAAGC,EAAG,GAAK,IAAIpF,KACjC3F,KAAKyxB,iBAAiB9rB,IACrBG,GAEL,cAAcjB,EAAGU,EAAGC,GAClBoD,EAAE,iBAAkB5I,KAAKmlB,qBAE3B,kBAAkBtgB,GAChB,GAAI+D,EAAE,gCAAiC/D,EAAEvD,kBAAmBtB,KAAKQ,QAAQ6e,mBAAqBxa,EAAE+pB,SAE9F,YADA5uB,KAAK0xB,qBAAqB7sB,GAG5B,IAAK7E,KAAKQ,QAAQyc,gBAAiB,CACjC,MAAMzX,EAAIxF,KAAKgxB,OAAOnsB,EAAEksB,QACxB,GAAIvrB,EAEF,YADAxF,KAAK2xB,gBAAgBnsB,EAAGX,GAI5B,IAAIU,EACJ,GAAI8C,EAAExD,GAAI,CACR,IAAIW,EAAGC,EAAI,EACXF,EAAI,CAACO,EAAGH,EAAGD,EAAGG,EAAGa,KACf,MAAME,EAAIF,EAAE4B,SAAW5B,EAAE6B,cAAe1B,EAAID,EAAE,GAC9C,GAAIA,GAAKA,EAAEN,OAAS,EAAG,CACrBI,EAAE8nB,iBACF,MAAM1nB,EAAIF,EAAE,GACZpB,IAAMA,EAAI,CAAEsF,EAAGhE,EAAE4B,QAASqC,EAAGjE,EAAE6B,SAAWlD,EAAIzF,KAAKQ,QAAQugB,YAC3D,MAAM7P,EAAI,CAAEpG,EAAGjE,EAAE6B,QAASqC,EAAGlE,EAAE8B,SAAWwI,EAAI,CAAErG,EAAGhE,EAAE4B,QAASqC,EAAGjE,EAAE6B,SAAWoC,EAAIsF,KAAKuhB,MAAMpsB,EAAEsF,EAAIjF,EAAEiF,EAAGtF,EAAEuF,EAAIlF,EAAEkF,GAAIqK,EAAI/E,KAAKuhB,MAAMzgB,EAAErG,EAAIoG,EAAEpG,EAAGqG,EAAEpG,EAAImG,EAAEnG,GAAKA,EAAGsK,EAAI5P,EAAI2P,EACtKpV,KAAK0tB,QAAQrY,GAAIrV,KAAK2kB,mBACjB,CACL,MAAM7d,EAAID,EAAE6B,QAASwI,EAAIrK,EAAE8B,QAC3B,IAAIwI,EAAIzL,EAAEoF,GAAKhE,EAAIjB,EAAEiF,GAAIC,EAAIrF,EAAEqF,GAAKmG,EAAIrL,EAAEkF,GAC1C/K,KAAKQ,QAAQ8b,mBAAqBnL,EAAIzL,EAAEoF,GAAKoG,EAAIrL,EAAEkF,GAAIA,EAAIrF,EAAEqF,GAAKjE,EAAIjB,EAAEiF,GAAI9K,KAAK+lB,gBAAgB5U,EAAGpG,IAAM/K,KAAK+lB,gBAAgB5U,EAAGpG,GAAI/K,KAAK2kB,sBAI/Ipf,EAAI,CAACC,EAAGC,EAAGK,EAAGH,EAAGD,KACf,MAAMG,EAAIC,EAAEgF,EAAItF,EAAGkB,EAAIZ,EAAEiF,EAAItF,EAC7BzF,KAAK+lB,gBAAgBlgB,EAAGa,GAAI1G,KAAK2kB,gBAErC0J,GAAEmD,UAAU3sB,EAAG7E,KAAKQ,QAAQ4gB,aAAc,IAAI5b,KAC5CxF,KAAK6xB,oBAAoBrsB,IACxBD,GAEL,iBAAiBV,EAAGU,EAAGC,GACrB,OAAIoD,EAAE,+BAAgC5I,KAAKQ,QAAQ+gB,mBACjDvhB,KAAKQ,QAAQ+gB,mBAAoB,EAAIvhB,KAAK2kB,oBAAgB3kB,KAAK2vB,qBAAqB3vB,KAAKQ,QAAQghB,cAAehc,IAGxG,IAANX,GAAiB,IAANU,GACbqD,EAAE,kBAAmB5I,KAAK2kB,oBAAgB3kB,KAAK0vB,cAAclqB,SAG/D6K,KAAKC,IAAIzL,GAAKwL,KAAKC,IAAI/K,GAAK,EAAIqC,WAAW,KACzCgB,EAAE,sBAAuB5I,KAAK2kB,eAAgB3kB,KAAKwvB,gBAAgBhqB,IAClE,MAAQoD,EAAE,sBAAuB5I,KAAK2kB,eAAgB3kB,KAAKwvB,gBAAgBhqB,KAEhF,qBAAqBX,GACnB,IAAIU,GAAI,EACR,MAAMC,EAAI,CAACC,EAAGK,EAAGH,EAAGD,EAAGG,KACrB,IAAKN,GAAK8K,KAAKC,IAAI7K,GAAK4K,KAAKC,IAAIxK,GAAK,IAAMP,GAAI,EAAIvF,KAAKQ,QAAQ+gB,mBAAoB,EAAIvhB,KAAKQ,QAAQghB,cAAc1W,EAAIpF,EAAEoF,EAAG9K,KAAKQ,QAAQghB,cAAczW,EAAIrF,EAAEqF,GAAIxF,EAAG,CACnK,MAAMmB,EAAI1G,KAAKmjB,wBACf1d,EAAI,GAAKzF,KAAKQ,QAAQghB,cAAc1W,EAAIpF,EAAEoF,EAAIrF,EAAIiB,EAAEoE,EAAG9K,KAAKQ,QAAQghB,cAAcra,MAAQkJ,KAAKC,IAAI7K,KAAOzF,KAAKQ,QAAQghB,cAAc1W,EAAIpF,EAAEoF,EAAIpE,EAAEoE,EAAG9K,KAAKQ,QAAQghB,cAAcra,MAAQ1B,GAAIK,EAAI,GAAK9F,KAAKQ,QAAQghB,cAAczW,EAAIrF,EAAEqF,EAAIjF,EAAIY,EAAEqE,EAAG/K,KAAKQ,QAAQghB,cAAcpa,OAASiJ,KAAKC,IAAIxK,KAAO9F,KAAKQ,QAAQghB,cAAczW,EAAIrF,EAAEqF,EAAIrE,EAAEqE,EAAG/K,KAAKQ,QAAQghB,cAAcpa,OAAStB,GAEtX9F,KAAK2kB,gBAEP0J,GAAEmD,UAAU3sB,EAAG,CAAEiG,EAAG,EAAGC,EAAG,GAAK,IAAItF,KACjCzF,KAAK6xB,oBAAoBpsB,IACxBD,GAEL,gBAAgBX,EAAGU,GACjB,GAAIvF,KAAKQ,QAAQwc,iBAAmBnY,EAAE0G,YACpC,OACFoI,MAAM9O,EAAEiG,KAAOjG,EAAEiG,EAAI,GAAI6I,MAAM9O,EAAEkG,KAAOlG,EAAEkG,EAAI,GAAIlG,EAAEmF,UAAW,EAAIhK,KAAK6iB,UAAUiP,iBAAmB9xB,KAAK6iB,UAAUiP,gBAAgBjtB,EAAGU,GACvI,MAAMC,EAAI,CAACC,EAAGK,EAAGH,KACfd,EAAEmF,UAAW,EAAIhK,KAAK+xB,aAAaltB,EAAGY,EAAGK,EAAGH,GAAI3F,KAAK2kB,gBAEvD0J,GAAEmD,UAAUjsB,EAAGV,EAAGW,EAAG,CAACC,EAAGK,EAAGH,KAC1B,IAAID,EAAID,GAAKzF,KAAKQ,QAAQugB,WAAa,KAAOpb,EAAEmF,EAAGjF,EAAIC,GAAK9F,KAAKQ,QAAQugB,WAAa,KAAOpb,EAAEoF,EAC/F,GAAI/K,KAAK6iB,UAAUmP,eAAgB,CACjC,MAAMtrB,EAAI1G,KAAK6iB,UAAUmP,eAAentB,EAAGa,EAAGG,EAAGN,GACjDmB,IAAoB,iBAAPA,EAAEoE,IAAkBpF,EAAIgB,EAAEoE,GAAkB,iBAAPpE,EAAEqE,IAAkBlF,EAAIa,EAAEqE,IAE9E/K,KAAKiyB,gBAAgBptB,EAAGa,EAAGG,GAAI7F,KAAKQ,QAAQ8b,mBAAqB5W,EAAII,GAAK9F,KAAKQ,QAAQugB,WAAa,KAAOpb,EAAEmF,EAAGjF,GAAKJ,GAAKzF,KAAKQ,QAAQugB,WAAa,KAAOpb,EAAEoF,EAAG/K,KAAKiyB,gBAAgBptB,EAAGa,EAAGG,IAAM7F,KAAKiyB,gBAAgBptB,EAAGa,EAAGG,GAAI7F,KAAKmlB,qBAAsBnlB,KAAK2kB,iBAGpQ,aAAa9f,EAAGU,EAAGC,EAAGC,GACpB,GAAU,IAANF,GAAiB,IAANC,EAEb,OADAoD,EAAE,iCAA6B5I,KAAK8uB,YAAYjqB,EAAGY,GAGrDzF,KAAKQ,QAAQ2d,oBAAsBtZ,EAAE2K,IAAI9D,OAAOU,QAAStG,IACvDA,EAAEgF,GAAKvF,EAAGO,EAAEiF,GAAKvF,IACf6K,KAAKC,IAAI/K,GAAK8K,KAAKC,IAAI9K,GAAK,GAAKxF,KAAK0uB,cAAgB7V,KAAKC,MAAOlR,WAAW,KAC/EgB,EAAE,oBAAqB5I,KAAKuvB,cAAc1qB,EAAGY,IAC5C,OAASmD,EAAE,oBAAqB5I,KAAKuvB,cAAc1qB,EAAGY,KAG7D,MAAMysB,WAAW,GACf,YAAYttB,EAAGC,GACbkO,MAAMnO,EAAGC,GAEX,cACE7E,KAAK8iB,QAAU9iB,KAAK2kB,gBAAkB3kB,KAAK+rB,KAAK,GAAI/rB,KAAK+rB,MAAM,IAEjE,WAAWnnB,EAAGC,GAAI,GAChB,OAAOQ,EAAErF,KAAM,MAAM,YACfA,KAAK2sB,4BAA6B,EAAI3sB,KAAKmyB,YAAYvtB,IAAU,IAANC,GAI/D7E,KAAKoyB,eAAgBpyB,KAAK4sB,sBAAuB5sB,KAAK6sB,WAAY7sB,KAAK4sB,iBAHrEhkB,EAAE,wCAMR,YAAYhE,GACVgE,EAAE,qBAAsBhE,GAAI5E,KAAK2jB,iBAAmB/e,EAAG5E,KAAK8gB,SAAW9gB,KAAK2jB,iBAE9E,aAAa/e,EAAGC,GAAI,EAAIU,GAAI,GAC1B,OAAOF,EAAErF,KAAM,MAAM,YACnBA,KAAK6iB,UAAUwP,qBAA+D,IAAzCryB,KAAK6iB,UAAUwP,mBAAmBztB,KAAcC,GAAI,GACzF,MAAMW,EAAIxF,KAAK8gB,SAAW9gB,KAAK8gB,SAAShP,SAAW,GAAIrM,EAAIzF,KAAK8gB,UAAY9gB,KAAK8gB,SAAS/O,SAC1FnJ,EAAE,+BAAgC5I,KAAK6tB,iBAAkBvL,GAAG1d,EAAG5E,KAAKQ,SAAUR,KAAK4jB,2BAA2Bhf,GAAI5E,KAAK8gB,SAAShP,SAAWtM,EAAGxF,KAAK8gB,SAAS/O,SAAWtM,EAAGZ,QAAU7E,KAAKsyB,WAAa/sB,IAAMvF,KAAK2sB,4BAA6B,SAAW3sB,KAAK6sB,eAGlQ,YAAYjoB,EAAGC,GAAI,GACjB,OAAOQ,EAAErF,KAAM,MAAM,YACnBA,KAAKQ,QAAQwgB,cAAgB,IAAMhhB,KAAK2kB,qBAAsB3kB,KAAKuyB,aAAa3tB,GAChF,MAAMW,EAAIX,EAAEigB,OACZ,GAAItf,IAAMvF,KAAKwjB,UAAUzR,SAAW/R,KAAKwjB,UAAUH,MAAMY,KAAMze,GAAMA,EAAEtE,KAAOqE,KAAMvF,KAAKwjB,UAAUzR,UAAY/R,KAAKwjB,UAAUH,MAAM/c,OAAS,IAAMtG,KAAKwjB,UAAUzR,SAAW/R,KAAKwjB,UAAUH,MAAM,KAAKrjB,KAAKwjB,UAAUzR,SAGpN,MAAM,IAAIxI,MAAM,kEAAoE3E,EAAEigB,OAAS,0GAF/F7kB,KAAKQ,QAAQ6c,sBAAwBrd,KAAK6uB,eAAe7uB,KAAKwjB,UAAUzR,SAAS7Q,IAGnF2D,IAAM+D,EAAE,iBAAkB/D,GAAI7E,KAAK4sB,iBAAkB5sB,KAAK2sB,4BAA6B,QAAU3sB,KAAK6sB,cAG1G,eAAejoB,EAAGC,GAAI,GACpB,OAAOQ,EAAErF,KAAM,MAAM,YACnB4I,EAAE,cAAehE,GAAI5E,KAAKQ,QAAQwgB,cAAgB,IAAMhhB,KAAK2kB,eAAgB3kB,KAAK8jB,kBAAkBlf,GAAIC,IAAM7E,KAAK2sB,4BAA6B,QAAU3sB,KAAK6sB,gBAIrK,MAAM2F,WAAWN,GACf,YAAYttB,EAAGC,GACbkO,MAAMnO,EAAGC,GAEX,QACE7E,KAAKoyB,eAAgBpyB,KAAK4sB,gBAAiB5sB,KAAKkmB,yBAGpD,MAAMuM,GAAK,CACTC,MAAO,CACLC,UAAW,CACTnpB,KAAM1F,OACN8uB,UAAU,GAEZC,kBAAmB,CACjBrpB,KAAM6hB,OACNuH,UAAU,GAEZE,qBAAsB,CACpBtpB,KAAMupB,SACNH,UAAU,GAEZxnB,qBAAsB,CACpB5B,KAAM6hB,OACNuH,UAAU,GAEZloB,MAAO,CACLlB,KAAM6hB,OACNuH,UAAU,KAIhB,IAAII,GAAK,WACP,IAAItvB,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,MAAO,CAAE9C,YAAa,mBAAoBkxB,MAAO,CAAC,oBAAsBvvB,EAAE0H,uBAAyB,CAACvG,EAAE,OAAQ,CAAEouB,MAAOvvB,EAAEmvB,kBAAmB5rB,MAAO,CAAE,mBAAoBvD,EAAEgH,OAAS5I,GAAI,CAAE6mB,MAAO,SAASpjB,GACjN,OAAOA,EAAEjE,kBAAmBoC,EAAEovB,qBAAqB3sB,MAAM,KAAM+sB,YAC9DC,SAAU,SAAS5tB,GACpB,OAAOA,EAAEjE,kBAAmBoC,EAAEovB,qBAAqB3sB,MAAM,KAAM+sB,kBAEhEE,GAAK,GACR,SAASC,GAAE3vB,EAAGkB,EAAGC,EAAGU,EAAGC,EAAGC,EAAGK,EAAGH,GAC9B,IAEIE,EAFAH,EAAgB,mBAALhC,EAAkBA,EAAElD,QAAUkD,EAG7C,GAFAkB,IAAMc,EAAE5F,OAAS8E,EAAGc,EAAEvC,gBAAkB0B,EAAGa,EAAE4tB,WAAY,GAAK/tB,IAAMG,EAAE6tB,YAAa,GAAK9tB,IAAMC,EAAE8tB,SAAW,UAAY/tB,GAEnHK,GAAKD,EAAI,SAASgB,GACpBA,EAAIA,GAAK7G,KAAKyzB,QAAUzzB,KAAKyzB,OAAOC,YAAc1zB,KAAK2L,QAAU3L,KAAK2L,OAAO8nB,QAAUzzB,KAAK2L,OAAO8nB,OAAOC,YAAa7sB,GAAmC,oBAAvB8sB,sBAAuC9sB,EAAI8sB,qBAAsBnuB,GAAKA,EAAEN,KAAKlF,KAAM6G,GAAIA,GAAKA,EAAE+sB,uBAAyB/sB,EAAE+sB,sBAAsBC,IAAI/tB,IACrRJ,EAAEouB,aAAejuB,GAAKL,IAAMK,EAAIF,EAAI,WACrCH,EAAEN,KACAlF,MACC0F,EAAE6tB,WAAavzB,KAAK2L,OAAS3L,MAAM+zB,MAAMC,SAASC,aAEnDzuB,GAAIK,EACN,GAAIH,EAAE6tB,WAAY,CAChB7tB,EAAEwuB,cAAgBruB,EAClB,IAAIa,EAAIhB,EAAE5F,OACV4F,EAAE5F,OAAS,SAASgH,EAAGoK,GACrB,OAAOrL,EAAEX,KAAKgM,GAAIxK,EAAEI,EAAGoK,QAEpB,CACL,IAAItK,EAAIlB,EAAEyuB,aACVzuB,EAAEyuB,aAAevtB,EAAI,GAAGwtB,OAAOxtB,EAAGf,GAAK,CAACA,GAE5C,MAAO,CACLwuB,QAAS3wB,EACTlD,QAASkF,GAGb,MAAM4uB,GAAK,GACX,IAAIC,GAAqBlB,GACvBZ,GACAO,GACAI,IACA,EACAoB,GACA,KACA,KACA,MAEF,SAASA,GAAG9wB,GACV,IAAK,IAAIkB,KAAK0vB,GACZt0B,KAAK4E,GAAK0vB,GAAG1vB,GAEjB,MAAM6vB,GAAqB,WACzB,OAAOF,GAAGF,QADe,GAEtBK,GAAK,CACRC,KAAM,cACNC,WAAY,CAAEC,mBAAoBJ,IAClC/B,MAAO,CACLC,UAAW,CACTmC,aAAa,EACbC,QAAS,KAAM,IACfvrB,KAAM1F,SAGV,OACE,MAAO,CACLkxB,WAAW,IAGfC,OAAQ,CAAC,SACTC,SAAU,CACR,iBACE,MAAMxxB,EAAI1D,KAAKm1B,aAAar0B,KAAK,CAAEA,KAAMd,KAAK2yB,YAC9C,OAAoB,IAAbjvB,EAAE4C,OAAe,KAAO5C,GAEjC,oBACE,OAAmC,IAA5B1D,KAAK2yB,UAAUhpB,SAAkB,aAAe,eAEzD,mBACE,OAAO3J,KAAK2yB,UAAUvnB,sBAAgE,SAAxCpL,KAAK2yB,UAAUvnB,sBAAmCpL,KAAKQ,QAAQ4d,6BAA4E,SAA7Cpe,KAAKQ,QAAQ4d,6BAA0Cpe,KAAK2yB,UAAUnjB,IAAI9D,QAAU1L,KAAK2yB,UAAUnjB,IAAI9D,OAAOpF,OAAS,GAErQ,UACE,OAAOtG,KAAKo1B,MAAM50B,SAEpB,gBACE,OAAOR,KAAKo1B,MAAMC,UAEpB,cACE,MAAM3xB,OAAmC,IAA/B1D,KAAK2yB,UAAUpoB,YAAyBvK,KAAKQ,QAAQ8d,uBAAyBte,KAAK2yB,UAAUpoB,YACvG,OAAQvK,KAAK2yB,UAAUnoB,aAAexK,KAAKQ,QAAQge,wBAA0B,UAAY9a,EAAI,MAE/F,YACE,GAA6B,IAAzB1D,KAAK2yB,UAAUxrB,MACjB,OACF,MAAMzD,EAAI1D,KAAK2yB,UAAUxrB,OAASnH,KAAKQ,QAAQgQ,iBAC/C,OAAM9M,EACGA,EAAI,UADb,GAGF,aACE,GAA8B,IAA1B1D,KAAK2yB,UAAUvrB,OACjB,OACF,MAAM1D,EAAI1D,KAAK2yB,UAAUvrB,QAAUpH,KAAKQ,QAAQiQ,kBAChD,OAAM/M,EACGA,EAAI,UADb,IAIJ,YAEA,UACE1D,KAAKs1B,yBAEP,UACEt1B,KAAKs1B,yBAEP,gBACEt1B,KAAKu1B,MAAMC,YAAYC,UAEzBC,QAAS,CACP,wBACyC,IAAvC11B,KAAKu1B,MAAMC,YAAYzpB,aAA6D,IAAxC/L,KAAKu1B,MAAMC,YAAYxpB,eAAuBhM,KAAK2yB,UAAU7mB,GAAGC,cAAgB/L,KAAKu1B,MAAMC,YAAYzpB,aAAe/L,KAAK2yB,UAAU7mB,GAAGE,eAAiBhM,KAAKu1B,MAAMC,YAAYxpB,eAAiBhM,KAAK21B,cAAcC,qBAAqB51B,KAAK2yB,UAAW3yB,KAAKu1B,MAAMC,YAAYzpB,YAAa/L,KAAKu1B,MAAMC,YAAYxpB,eAElW,qBAAqBtI,GACnB,OAAO2B,EAAErF,KAAM,MAAM,YACnB4I,EAAE,uBAAwB5I,KAAKg1B,YAAah1B,KAAKg1B,YAAch1B,KAAKg1B,WAAY,EAAIptB,WAAW,KAC7F5H,KAAKg1B,WAAY,GAChB,WAAYh1B,KAAK21B,cAAc7C,qBAAqB9yB,KAAK2yB,UAAWjvB,QAG3E,YAAYA,GACV1D,KAAK21B,cAAc7D,gBAAgB9xB,KAAK2yB,UAAWjvB,IAErD,QAAQA,GACN1D,KAAK21B,cAAc7G,YAAY9uB,KAAK2yB,UAAWjvB,IAEjD,gBAAgBA,GACd,OAAOwL,EAAEU,gBAAgBlM,MAI/B,IAAImyB,GAAK,WACP,IAAInyB,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,MAAO,CAAEixB,WAAY,CAAC,CAAEnB,KAAM,OAAQoB,QAAS,SAAUzzB,MAAOoB,EAAEkM,gBAAgBlM,EAAEivB,WAAYjwB,WAAY,+BAAiCpC,IAAK,cAAeyB,YAAa,gBAAiBkxB,MAAO,CAACvvB,EAAEivB,UAAU7oB,UAAY,oBAAqBpG,EAAEivB,UAAU3oB,UAAY,oBAAqBtG,EAAEivB,UAAUzxB,KAAOwC,EAAElD,QAAQ+f,eAAiB,wBAAyB7c,EAAEivB,UAAUzoB,WAAYjD,MAAO,CAC9Y0H,KAAMjL,EAAEivB,UAAU7nB,EAAI,KACtB+D,IAAKnL,EAAEivB,UAAU5nB,EAAI,KACrBJ,QAASjH,EAAEivB,UAAUhoB,QAAU,EAAIjH,EAAEivB,UAAUhoB,QAAU,IAAMjH,EAAEivB,UAAUhoB,SAC1EpK,MAAO,CAAE,UAAWmD,EAAEivB,UAAUzxB,KAAQ,CAACwC,EAAEsyB,iBAAmB,CAACtyB,EAAElD,QAAQ+b,gBAAkB7Y,EAAElD,QAAQmc,0BAA4B,CAAC9X,EAAE,qBAAsB,CAAEtE,MAAO,CAAEoyB,UAAWjvB,EAAEivB,UAAWE,kBAAmBnvB,EAAEmvB,kBAAmBC,qBAAsBpvB,EAAEovB,qBAAsB1nB,qBAAsB1H,EAAEivB,UAAUvnB,sBAAwB1H,EAAElD,QAAQ4d,4BAA6B1T,MAAOhH,EAAElD,QAAQ6d,0BAA4B3a,EAAEivB,UAAUjoB,OAAShH,EAAElD,QAAQ+d,qBAAyB7a,EAAEyK,GAAG,sBAAsB,WACrf,MAAO,CAACtJ,EAAE,qBAAsB,CAAEtE,MAAO,CAAEoyB,UAAWjvB,EAAEivB,UAAWE,kBAAmBnvB,EAAEmvB,kBAAmBC,qBAAsBpvB,EAAEovB,qBAAsB1nB,qBAAsB1H,EAAEivB,UAAUvnB,sBAAwB1H,EAAElD,QAAQ4d,4BAA6B1T,MAAOhH,EAAElD,QAAQ6d,0BAA4B3a,EAAEivB,UAAUjoB,OAAShH,EAAElD,QAAQ+d,uBACrU,CAAEoU,UAAWjvB,EAAEivB,UAAWE,kBAAmBnvB,EAAEmvB,kBAAmBC,qBAAsBpvB,EAAEovB,qBAAsB1nB,qBAAsB1H,EAAEivB,UAAUvnB,sBAAwB1H,EAAElD,QAAQ4d,4BAA6B1T,MAAOhH,EAAElD,QAAQ6d,0BAA4B3a,EAAEivB,UAAUjoB,OAAShH,EAAElD,QAAQ+d,oBAAuB7a,EAAElC,KAAMkC,EAAEivB,UAAUtnB,KAAOxG,EAAE,MAAO,CAAEoxB,SAAU,CAAElvB,UAAWrD,EAAE1C,GAAG0C,EAAEivB,UAAUtnB,OAASvJ,GAAI,CAAE6mB,MAAO,SAASpjB,GACla,OAAO7B,EAAEwyB,QAAQ3wB,IAChB4wB,UAAW,SAAS5wB,GACrB,OAAQA,EAAEiE,KAAKrI,QAAQ,QAAUuC,EAAE0yB,GAAG7wB,EAAE8wB,QAAS,OAAQ,GAAI9wB,EAAE3E,IAAK,CAAC,OAAQ,eAAiB,WAAY2E,GAAkB,IAAbA,EAAE+wB,OAAe,MAAQ/wB,EAAEjE,kBAAmBoC,EAAE6yB,YAAYhxB,KAC1KixB,WAAY,SAASjxB,GACtB,OAAOA,EAAEjE,kBAAmBoC,EAAE6yB,YAAYhxB,OACnCV,EAAE,MAAO,CAAE9C,YAAa,WAAYkxB,MAAO,CAAC,wBAA+C,IAA1BvvB,EAAEivB,UAAUroB,UAAuB5G,EAAElD,QAAQye,iBAAmBvb,EAAEivB,UAAUroB,WAAY,iBAAmB5G,EAAEivB,UAAUnpB,KAAM9F,EAAEivB,UAAUzxB,KAAOwC,EAAElD,QAAQ+f,cAAgB,mBAAqB,GAAI7c,EAAEivB,UAAU5oB,SAAW,oBAAsB,GAAIrG,EAAEivB,UAAU1oB,WAAYvG,EAAEivB,UAAU5rB,UAAY,eAAiB,IAAKE,MAAO,CAAE,wBAA0C,IAAtBvD,EAAEivB,UAAUjoB,MAAmBhH,EAAElD,QAAQ+d,iBAAmB7a,EAAEivB,UAAUjoB,MAAOA,WAAiC,IAA1BhH,EAAEivB,UAAUloB,UAAuB/G,EAAElD,QAAQie,qBAAuB/a,EAAEivB,UAAUloB,UAAW8D,OAAQ7K,EAAE+yB,YAAatvB,MAAOzD,EAAEgzB,UAAWtvB,OAAQ1D,EAAEizB,YAAc70B,GAAI,CAAE6mB,MAAO,SAASpjB,GACzqB,OAAO7B,EAAEwyB,QAAQ3wB,IAChB4wB,UAAW,SAAS5wB,GACrB,OAAQA,EAAEiE,KAAKrI,QAAQ,QAAUuC,EAAE0yB,GAAG7wB,EAAE8wB,QAAS,OAAQ,GAAI9wB,EAAE3E,IAAK,CAAC,OAAQ,eAAiB,WAAY2E,GAAkB,IAAbA,EAAE+wB,OAAe,MAAQ/wB,EAAEjE,kBAAmBoC,EAAE6yB,YAAYhxB,KAC1KixB,WAAY,SAASjxB,GACtB,OAAOA,EAAEjE,kBAAmBoC,EAAE6yB,YAAYhxB,MACrC,EAAqC,IAApC7B,EAAElD,QAAQ2e,uBAAgCzb,EAAElD,QAAQugB,WAAa,GAAKrd,EAAElC,KAAO,CAACkC,EAAElD,QAAQ+b,gBAAkB7Y,EAAElD,QAAQgc,cAAgB,CAAC9Y,EAAEivB,UAAU5rB,UAAYlC,EAAE,MAAO,CAAEoxB,SAAU,CAAElvB,UAAWrD,EAAE1C,GAAG0C,EAAEivB,UAAU5rB,cAAkBlC,EAAE,MAAO,CAAE9C,YAAa,cAAekF,MAAO,CAAEyD,MAAOhH,EAAEivB,UAAUloB,WAAa/G,EAAElD,QAAQie,uBAA0B,CAAC5Z,EAAE,OAAQ,CAAEoxB,SAAU,CAAElvB,UAAWrD,EAAE1C,GAAG0C,EAAEivB,UAAU1xB,YAAgByC,EAAEyK,GAAG,QAAQ,WAChb,MAAO,CAACzK,EAAEivB,UAAU5rB,UAAYlC,EAAE,MAAO,CAAEoxB,SAAU,CAAElvB,UAAWrD,EAAE1C,GAAG0C,EAAEivB,UAAU5rB,cAAkBlC,EAAE,MAAO,CAAE9C,YAAa,cAAekF,MAAO,CAAEyD,MAAOhH,EAAEivB,UAAUloB,WAAa/G,EAAElD,QAAQie,uBAA0B,CAAC5Z,EAAE,OAAQ,CAAEoxB,SAAU,CAAElvB,UAAWrD,EAAE1C,GAAG0C,EAAEivB,UAAU1xB,cAC7Q,CAAEH,KAAM4C,EAAEivB,cAAgB,IAAK,IACjCiE,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqBzD,GACvBqB,GACAmB,GACAe,IACA,EACAG,GACA,WACA,KACA,MAEF,SAASA,GAAGrzB,GACV,IAAK,IAAIkB,KAAKiyB,GACZ72B,KAAK4E,GAAKiyB,GAAGjyB,GAEjB,MAAMoyB,GAAqB,WACzB,OAAOF,GAAGzC,QADe,GAEtB4C,GAAK,CACRtC,KAAM,cACNjC,MAAO,CACLwE,KAAM,CACJpC,aAAa,EACbC,QAAS,KAAM,IACfvrB,KAAM1F,QAERqzB,SAAU,CACRrC,aAAa,EACbC,QAAS,KAAM,IACfvrB,KAAM1F,QAERszB,cAAe,CACbtC,aAAa,EACbC,QAAS,IAAM,EACfvrB,KAAMJ,SAGV,OACE,MAAO,CACLiuB,aAAa,IAGjBpC,OAAQ,CAAC,SACTC,SAAU,CACR,UACE,OAAOl1B,KAAKm3B,SAASj2B,KAAOlB,KAAKQ,QAAQggB,eAE3C,UACE,OAAOxgB,KAAKo1B,MAAM50B,SAEpB,gBACE,OAAOR,KAAKo1B,MAAMC,UAEpB,iBACE,OAAOr1B,KAAKm3B,SAAS7pB,gBAAkBtN,KAAK21B,cAAc2B,SAASt3B,KAAKm3B,SAAUn3B,KAAKk3B,MAAM,IAE/F,eACE,OAAOl3B,KAAKm3B,SAAS5pB,cAAgBvN,KAAK21B,cAAc2B,SAASt3B,KAAKm3B,SAAUn3B,KAAKk3B,MAAM,IAE7F,WACE,IACE,MAAQpO,KAAMplB,EAAGqlB,aAAcnkB,GAAM5E,KAAK21B,cAAc1K,eACtDjrB,KAAKk3B,KACLl3B,KAAKm3B,SACLn3B,KAAKo3B,eAEP,IAAIvyB,EAAI,GACR,IACEA,EAAI7E,KAAK21B,cAAc4B,iBACrBv3B,KAAKm3B,SACLvyB,EAAEkG,EACFlG,EAAEmG,EACFnG,EAAE6kB,QAEJ,MAAOlkB,GACPqD,EAAErD,GAEJ,MAAO,CACLujB,KAAMplB,EACN8zB,cAAe3yB,GAEjB,MAAOnB,GACPkF,EAAElF,GAEJ,MAAO,CAAEolB,KAAM,KAAM0O,cAAe,OAEtC,YACE,OAAOx3B,KAAK21B,cAAc8B,iBAAiBz3B,KAAKk3B,KAAMl3B,KAAKm3B,SAAUn3B,KAAKo3B,iBAG9EM,MAAO,GACPhC,QAAS,CACP,QAAQhyB,EAAGkB,GACT5E,KAAK21B,cAAc3G,YAAYtrB,EAAG1D,KAAKk3B,KAAMtyB,MAInD,IAAI+yB,GAAK,WACP,IAAIj0B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,IAAK,CAAEouB,MAAO,CAACvvB,EAAEyzB,SAASjtB,YAAc,CAACrF,EAAE,OAAQ,CAAE9C,YAAa,YAAakxB,MAAO,CAC7FvvB,EAAEyzB,SAASltB,WACXvG,EAAEyzB,SAAS9pB,SAAW,oBAAsB3J,EAAEyzB,SAAS9pB,cAAW,EAClE3J,EAAEyzB,SAAS/pB,UAAY,eAAiB1J,EAAEyzB,SAAS/pB,eAAY,EAC/D1J,EAAEk0B,QAAU,yBAAsB,GACjC3wB,MAAO,CACR0D,QAASjH,EAAEyzB,SAASxsB,QACpB,iBAAkBjH,EAAEyzB,SAAS7rB,2BAA6B,OAC1D,gBAAiB5H,EAAEyzB,SAASlqB,UAAYvJ,EAAEyzB,SAASlqB,UAAYvJ,EAAElD,QAAQqe,kBAAoB,MAC5Fte,MAAO,CAAEmG,EAAGhD,EAAEm0B,SAAS/O,KAAMgP,OAAQp0B,EAAEyzB,SAASzsB,MAAQhH,EAAEyzB,SAASzsB,MAAQhH,EAAElD,QAAQke,iBAAkB,eAAgBhb,EAAE4J,eAAgB,aAAc5J,EAAE6J,aAAcwqB,KAA+B,IAAzBr0B,EAAEyzB,SAASjqB,UAAkBxJ,EAAEyzB,SAASzsB,OAAShH,EAAElD,QAAQke,iBAAmB,QAAU5c,GAAI,CAAE00B,WAAY,SAASjxB,GACjS,OAAO7B,EAAEs0B,QAAQt0B,EAAEyzB,SAAU5xB,IAC5BojB,MAAO,SAASpjB,GACjB,OAAO7B,EAAEs0B,QAAQt0B,EAAEyzB,SAAU5xB,OACvB7B,EAAEu0B,WAAav0B,EAAElD,QAAQ0e,sBAAwBxb,EAAElD,QAAQugB,WAAa,GAAKlc,EAAE,IAAK,CAAEtE,MAAO,CAAE23B,UAAWx0B,EAAEm0B,SAASL,gBAAmB,CAAC3yB,EAAE,OAAQ,CAAEjE,IAAK,KAAO8C,EAAEyzB,SAASjT,SAAUniB,YAAa,iBAAkBkxB,MAAO,CAAE,yBAA0BvvB,EAAEk0B,SAAW3wB,MAAO,CAClR0D,QAASjH,EAAEyzB,SAASxsB,QACpBotB,KAAMr0B,EAAEyzB,SAAS1sB,UAAY/G,EAAEyzB,SAAS1sB,UAAY/G,EAAElD,QAAQoe,qBAAuBlb,EAAElD,QAAQoe,qBAAuBlb,EAAEyzB,SAASzsB,MAAQhH,EAAEyzB,SAASzsB,MAAQhH,EAAElD,QAAQke,kBACrKne,MAAO,CAAEuK,EAAGpH,EAAEyzB,SAASpqB,cAAgBrJ,EAAElD,QAAQue,yBAA2B,EAAGhU,EAAGrH,EAAEyzB,SAASnqB,cAAgBtJ,EAAElD,QAAQwe,yBAA2B,GAAI,cAAetb,EAAEu0B,UAAU1M,YAAczpB,GAAI,CAAE00B,WAAY,SAASjxB,GAC3N,OAAO7B,EAAEs0B,QAAQt0B,EAAEyzB,SAAU5xB,IAC5BojB,MAAO,SAASpjB,GACjB,OAAO7B,EAAEs0B,QAAQt0B,EAAEyzB,SAAU5xB,MACxB,CAAC7B,EAAE3C,GAAG,IAAM2C,EAAE1C,GAAG0C,EAAEu0B,UAAUh3B,MAAQ,SAAWyC,EAAElC,QACxD22B,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqBhF,GACvB4D,GACAU,GACAQ,IACA,EACAG,GACA,WACA,KACA,MAEF,SAASA,GAAG50B,GACV,IAAK,IAAIkB,KAAKwzB,GACZp4B,KAAK4E,GAAKwzB,GAAGxzB,GAEjB,MAAM2zB,GAAqB,WACzB,OAAOF,GAAGhE,QADe,GAEtBmE,GAAK,CACR7D,KAAM,cACNjC,MAAO,CACLwE,KAAM,CACJpC,aAAa,EACbC,QAAS,KAAM,IACfvrB,KAAM1F,QAERqzB,SAAU,CACRrC,aAAa,EACbC,QAAS,KAAM,IACfvrB,KAAM1F,QAERszB,cAAe,CACbtC,aAAa,EACbC,QAAS,IAAM,EACfvrB,KAAMJ,SAGV6rB,OAAQ,CAAC,SACTC,SAAU,CACR,UACE,OAAOl1B,KAAKo1B,MAAM50B,SAEpB,gBACE,OAAOR,KAAKo1B,MAAMC,UAEpB,UACE,OAAOr1B,KAAKm3B,SAASj2B,KAAOlB,KAAKQ,QAAQggB,eAE3C,YACE,OAAOxgB,KAAK21B,cAAc8B,iBAAiBz3B,KAAKk3B,KAAMl3B,KAAKm3B,SAAUn3B,KAAKo3B,gBAE5E,UACE,MAAO,IAAMp3B,KAAKQ,QAAQyb,WAAa,IAAMjc,KAAKk3B,KAAKhT,SAAW,IAAMlkB,KAAKo3B,gBAGjF,OACE,MAAO,CACLC,aAAa,IAGjBK,MAAO,GACP,YAEAhC,QAAS,CACP,QAAQhyB,EAAGkB,GACT5E,KAAK21B,cAAc3G,YAAYtrB,EAAG1D,KAAKk3B,KAAMtyB,MAInD,IAAI6zB,GAAK,WACP,IAAI/0B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,IAAK,CAAEouB,MAAO,CAACvvB,EAAEyzB,SAASjtB,YAAc,CAACrF,EAAE,MAAO,CAAE9C,YAAa,YAAakxB,MAAO,CAC5FvvB,EAAEyzB,SAASltB,WACXvG,EAAEyzB,SAAS9pB,SAAW,oBAAsB3J,EAAEyzB,SAAS9pB,cAAW,EAClE3J,EAAEyzB,SAAS/pB,UAAY,eAAiB1J,EAAEyzB,SAAS/pB,eAAY,EAC/D1J,EAAEk0B,QAAU,yBAAsB,GACjCr3B,MAAO,CAAE,aAAcmD,EAAEg1B,SAAW52B,GAAI,CAAE00B,WAAY,SAASjxB,GAChE,OAAO7B,EAAEs0B,QAAQt0B,EAAEyzB,SAAU5xB,IAC5BojB,MAAO,SAASpjB,GACjB,OAAO7B,EAAEs0B,QAAQt0B,EAAEyzB,SAAU5xB,OACvB7B,EAAEu0B,WAAav0B,EAAElD,QAAQ0e,sBAAwBxb,EAAElD,QAAQugB,WAAa,GAAKlc,EAAE,IAAK,CAAEtE,MAAO,CAAE23B,UAAWx0B,EAAEu0B,UAAU3M,aAAgB,CAACzmB,EAAE,OAAQ,CAAE9C,YAAa,iBAAkBkxB,MAAO,CAAE,yBAA0BvvB,EAAEk0B,SAAW3wB,MAAO,CAC/O0D,QAASjH,EAAEyzB,SAASxsB,QACpBotB,KAAMr0B,EAAEyzB,SAAS1sB,UAAY/G,EAAEyzB,SAAS1sB,UAAY/G,EAAElD,QAAQoe,qBAAuBlb,EAAElD,QAAQoe,qBAAuBlb,EAAEyzB,SAASzsB,MAAQhH,EAAEyzB,SAASzsB,MAAQhH,EAAElD,QAAQke,kBACrKne,MAAO,CAAEkpB,OAAQ/lB,EAAEu0B,UAAUxM,YAAc3pB,GAAI,CAAE00B,WAAY,SAASjxB,GACvE,OAAO7B,EAAEs0B,QAAQt0B,EAAEyzB,SAAU5xB,IAC5BojB,MAAO,SAASpjB,GACjB,OAAO7B,EAAEs0B,QAAQt0B,EAAEyzB,SAAU5xB,MACxB,CAACV,EAAE,WAAY,CAAEtE,MAAO,CAAE,aAAcmD,EAAEg1B,QAASC,YAAaj1B,EAAEu0B,UAAUzM,cAAe,cAAe9nB,EAAEu0B,UAAU1M,WAAYqN,OAAQ,QAASC,QAAS,SAAY,CAACn1B,EAAE3C,GAAG,IAAM2C,EAAE1C,GAAG0C,EAAEu0B,UAAUh3B,MAAQ,WAAayC,EAAElC,QAClOqL,GAAK,GACR,MAAMisB,GAAK,GACX,IAAIC,GAAqB1F,GACvBmF,GACAC,GACA5rB,IACA,EACAmsB,GACA,WACA,KACA,MAEF,SAASA,GAAGt1B,GACV,IAAK,IAAIkB,KAAKk0B,GACZ94B,KAAK4E,GAAKk0B,GAAGl0B,GAEjB,MAAMq0B,GAAqB,WACzB,OAAOF,GAAG1E,QADe,GAEtB6E,GAAK,CACRvE,KAAM,cACNC,WAAY,CAAEuE,YAAaZ,GAAIa,iBAAkBH,IACjDvG,MAAO,CACL2G,UAAW,CACTvE,aAAa,EACbC,QAAS,KAAM,IACfvrB,KAAM1F,SAGV,OACE,MAAO,CACLuzB,aAAa,IAGjBpC,OAAQ,CAAC,SACTC,SAAU,CACR,UACE,OAAOl1B,KAAKo1B,MAAM50B,SAEpB,gBACE,OAAOR,KAAKo1B,MAAMC,WAGtB,OACEr1B,KAAKyJ,QAAS,GAEhBiuB,MAAO,GACP,YAEAhC,QAAS,CACP,gBAAgBhyB,GACd,OAAOwL,EAAEU,gBAAgBlM,MAI/B,IAAI41B,GAAK,WACP,IAAI51B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOlB,EAAEkM,gBAAgBlM,EAAE21B,UAAUngB,WAAaxV,EAAEkM,gBAAgBlM,EAAE21B,UAAUlgB,QAAUtU,EAAE,IAAK,CAAEvE,IAAK,cAAeyB,YAAa,gBAAiBkxB,MAAO,CAACvvB,EAAElD,QAAQigB,eAAiB/c,EAAE21B,UAAUnV,SAAW,oBAAsB,IAAK3jB,MAAO,CAAE23B,UAAW,iBAAkB,UAAWx0B,EAAE21B,UAAUnV,WAAc,CAACxgB,EAAEX,GAAGW,EAAE21B,UAAUjrB,WAAW,SAAS7I,EAAGC,GAC5V,MAAO,CAAC9B,EAAElD,QAAQ+b,gBAAkB7Y,EAAElD,QAAQic,cAAgB,OAAoB,IAAlBlX,EAAEiI,YAAyBjI,EAAEiI,YAAc9J,EAAElD,QAAQgf,mBAAiC,IAAbja,EAAEmE,OAAgB7E,EAAE,mBAAoB,CAAEjE,IAAK,KAAO2E,EAAErE,GAAIX,MAAO,CAAE22B,KAAMxzB,EAAE21B,UAAWlC,SAAU5xB,EAAG,iBAAkBC,MAAsB,IAAbD,EAAEmE,OAAgB7E,EAAE,cAAe,CAAEjE,IAAK,KAAO2E,EAAErE,GAAIX,MAAO,CAAE22B,KAAMxzB,EAAE21B,UAAWlC,SAAU5xB,EAAG,iBAAkBC,KAAS9B,EAAElC,MAAQkC,EAAEyK,GAAG,QAAQ,WACzZ,MAAO,OAAoB,IAAlB5I,EAAEiI,YAAyBjI,EAAEiI,YAAc9J,EAAElD,QAAQgf,mBAAiC,IAAbja,EAAEmE,OAAgB7E,EAAE,mBAAoB,CAAEjE,IAAK,KAAO2E,EAAErE,GAAIX,MAAO,CAAE22B,KAAMxzB,EAAE21B,UAAWlC,SAAU5xB,EAAG,iBAAkBC,MAAsB,IAAbD,EAAEmE,OAAgB7E,EAAE,cAAe,CAAEjE,IAAK,KAAO2E,EAAErE,GAAIX,MAAO,CAAE22B,KAAMxzB,EAAE21B,UAAWlC,SAAU5xB,EAAG,iBAAkBC,KAAS9B,EAAElC,QAC9U,CAAE+3B,KAAMh0B,EAAG6xB,cAAe5xB,SAC1B,GAAK9B,EAAElC,MACXg4B,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqBrG,GACvB6F,GACAI,GACAE,IACA,EACAG,GACA,WACA,KACA,MAEF,SAASA,GAAGj2B,GACV,IAAK,IAAIkB,KAAK60B,GACZz5B,KAAK4E,GAAK60B,GAAG70B,GAEjB,MAAMg1B,GAAqB,WACzB,OAAOF,GAAGrF,QADe,GAEtBwF,GAAK,CACRlF,KAAM,cACNjC,MAAO,CACLwE,KAAM,CACJpC,aAAa,EACbC,QAAS,KAAM,IACfvrB,KAAM1F,QAERqzB,SAAU,CACRrC,aAAa,EACbC,QAAS,KAAM,IACfvrB,KAAM1F,QAERszB,cAAe,CACbtC,aAAa,EACbC,QAAS,IAAM,EACfvrB,KAAMJ,SAGV6rB,OAAQ,CAAC,SACTC,SAAU,CACR,UACE,OAAOl1B,KAAKm3B,SAASj2B,KAAOlB,KAAKQ,QAAQggB,eAE3C,WACE,MAAQsI,KAAMplB,EAAGqlB,aAAcnkB,GAAM5E,KAAK21B,cAAc1K,eACtDjrB,KAAKk3B,KACLl3B,KAAKm3B,SACLn3B,KAAKo3B,eAEP,OAAO1zB,GAET,UACE,OAAO1D,KAAKo1B,MAAM50B,SAEpB,gBACE,OAAOR,KAAKo1B,MAAMC,WAGtB,OACE,MAAO,CACLgC,aAAa,IAGjB,OACEr3B,KAAKyJ,QAAS,GAEhBisB,QAAS,IAEX,IAAIoE,GAAK,WACP,IAAIp2B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,OAAQ,CAAEouB,MAAO,CAAC,iBAAkBvvB,EAAEyzB,SAASltB,WAAYvG,EAAEk0B,QAAU,oBAAsB,IAAK3wB,MAAO,CAAE0D,QAASjH,EAAEyzB,SAASxsB,QAAS,gBAAiBjH,EAAEyzB,SAASlqB,UAAYvJ,EAAEyzB,SAASlqB,UAAYvJ,EAAElD,QAAQqe,kBAAoB,MAAQte,MAAO,CAAEW,GAAIwC,EAAElD,QAAQyb,WAAa,IAAMvY,EAAEwzB,KAAKhT,SAAW,IAAMxgB,EAAE0zB,cAAe1wB,EAAGhD,EAAEm0B,SAAUC,OAAQp0B,EAAEyzB,SAASzsB,MAAQhH,EAAEyzB,SAASzsB,MAAQhH,EAAElD,QAAQke,iBAAkB,eAAgBhb,EAAEyzB,SAAS7pB,gBAAkB5J,EAAEiyB,cAAc2B,SAAS5zB,EAAEyzB,SAAUzzB,EAAEwzB,MAAM,GAAK,aAAcxzB,EAAEyzB,SAAS5pB,cAAgB7J,EAAEiyB,cAAc2B,SAAS5zB,EAAEyzB,SAAUzzB,EAAEwzB,MAAM,GAAKa,KAA+B,IAAzBr0B,EAAEyzB,SAASjqB,UAAkBxJ,EAAEyzB,SAASzsB,OAAShH,EAAElD,QAAQke,iBAAmB,WAC/qBqb,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqB5G,GACvBwG,GACAC,GACAC,IACA,EACAG,GACA,KACA,KACA,MAEF,SAASA,GAAGx2B,GACV,IAAK,IAAIkB,KAAKo1B,GACZh6B,KAAK4E,GAAKo1B,GAAGp1B,GAEjB,MAAMu1B,GAAqB,WACzB,OAAOF,GAAG5F,QADe,GAEtB+F,GAAK,CACRzF,KAAM,gBACNM,OAAQ,CAAC,SACTC,SAAU,CACR,UACE,OAAOl1B,KAAKo1B,MAAM50B,SAEpB,gBACE,OAAOR,KAAKo1B,MAAMC,UAEpB,WACE,OAAOr1B,KAAK21B,cAAc0E,yBAE5B,cACE,OAAOr6B,KAAK21B,cAAc2E,iCAG9B,OACE,MAAO,CACLjD,aAAa,IAGjB,OACEr3B,KAAKyJ,QAAS,GAEhBiuB,MAAO,IAET,IAAI6C,GAAK,WACP,IAAI72B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,IAAK,CAACnB,EAAEm0B,SAAWhzB,EAAE,OAAQ,CAAE9C,YAAa,uBAAwBxB,MAAO,CAAEmG,EAAGhD,EAAEm0B,SAAUE,KAAM,OAAQD,OAAQ,MAAO,eAAgBp0B,EAAE82B,eAAmB92B,EAAElC,QACxKi5B,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqBtH,GACvB+G,GACAG,GACAE,IACA,EACAG,GACA,WACA,KACA,MAEF,SAASA,GAAGl3B,GACV,IAAK,IAAIkB,KAAK81B,GACZ16B,KAAK4E,GAAK81B,GAAG91B,GAEjB,MAAMi2B,GAAqB,WACzB,OAAOF,GAAGtG,QADe,GAEtByG,GAAK,CACRnG,KAAM,2BACNC,WAAY,CAAEmG,cAAeF,GAAIG,YAAahE,GAAIiE,YAAarB,GAAIsB,gBAAiBf,GAAIhB,YAAaZ,IACrG,OACE,MAAO,IAETtD,OAAQ,CAAC,YAAa,SACtBC,SAAU,CACR,UACE,OAAOl1B,KAAKo1B,MAAM50B,SAEpB,gBACE,OAAOR,KAAKo1B,MAAMC,UAEpB,gBACE,OAAOr1B,KAAKo1B,MAAM3R,gBAGtB,UACE7a,EAAE,sBAEJ,UACEA,EAAE,qBAAsB5I,KAAKm7B,QAE/B,kBAEAzF,QAAS,CACP,OACE11B,KAAKu1B,MAAM6F,SAASn0B,MAAMo0B,YAAY,WAAY,SAASr7B,KAAKQ,QAAQyb,0BAA2Bjc,KAAKu1B,MAAM6F,SAASn0B,MAAMo0B,YAAY,cAAe,SAASr7B,KAAKQ,QAAQyb,oCAAqCjc,KAAKu1B,MAAM6F,SAASn0B,MAAMo0B,YAAY,gBAAiB,SAASr7B,KAAKQ,QAAQyb,8BAA+Bjc,KAAKu1B,MAAM6F,SAASn0B,MAAMo0B,YAAY,qBAAsB,SAASr7B,KAAKQ,QAAQyb,8BAA+Bjc,KAAKu1B,MAAM6F,SAASn0B,MAAMo0B,YAAY,uBAAwB,SAASr7B,KAAKQ,QAAQyb,uCAI1gB,IAAIqf,GAAK,WACP,IAAI53B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,MAAO,CAAE9C,YAAa,mBAAoB1B,YAAa,CAAEgH,SAAU,YAAe,CAACxC,EAAE,MAAO,CAAEvE,IAAK,WAAYyB,YAAa,eAAiB,CAAC8C,EAAE,MAAO,CAAE9C,YAAa,gBAAiBkF,MAAO,CAAEE,MAAOzD,EAAElD,QAAQsX,WAAW3Q,MAAQ,KAAMC,OAAQ1D,EAAElD,QAAQsX,WAAW1Q,OAAS,MAAQ7G,MAAO,CAAEg7B,MAAO,+BAAkC,CAAC12B,EAAE,OAAQ,CAACA,EAAE,iBAAkB,CAAEtE,MAAO,CAAEW,GAAI,eAAgBs6B,cAAe,oBAAqBC,GAAI,MAAOC,GAAI,QAAW,CAAC72B,EAAE,OAAQ,CAAEtE,MAAO,CAAEo7B,OAAQ,KAAM,aAAc,UAAW,eAAgB,OAAU92B,EAAE,OAAQ,CAAEtE,MAAO,CAAEo7B,OAAQ,OAAQ,aAAc,UAAW,eAAgB,QAAW,GAAI92B,EAAE,SAAU,CAAEtE,MAAO,CAAEW,GAAIwC,EAAElD,QAAQyb,WAAa,iBAAkB8D,YAAarc,EAAElD,QAAQsf,kBAAkBC,YAAaC,aAActc,EAAElD,QAAQsf,kBAAkBE,aAAcC,KAAMvc,EAAElD,QAAQsf,kBAAkBG,KAAMC,KAAMxc,EAAElD,QAAQsf,kBAAkBI,KAAM0b,YAAa,iBAAkBC,OAAQ,OAAQC,QAAS,cAAiB,CAACj3B,EAAE,OAAQ,CAAEoC,MAAO,CAAE8wB,KAAMr0B,EAAElD,QAAQke,kBAAoBne,MAAO,CAAEmG,EAAGhD,EAAElD,QAAQsf,kBAAkBrU,UAAa5G,EAAE,SAAU,CAAEtE,MAAO,CAAEW,GAAIwC,EAAElD,QAAQyb,WAAa,uBAAwB8D,YAAarc,EAAElD,QAAQsf,kBAAkBC,YAAaC,aAActc,EAAElD,QAAQsf,kBAAkBE,aAAcC,KAAMvc,EAAElD,QAAQsf,kBAAkBG,KAAMC,KAAMxc,EAAElD,QAAQsf,kBAAkBI,KAAM0b,YAAa,iBAAkBC,OAAQ,OAAQC,QAAS,cAAiB,CAACj3B,EAAE,OAAQ,CAAEoC,MAAO,CAAE8wB,KAAMr0B,EAAElD,QAAQke,kBAAoBne,MAAO,CAAEmG,EAAGhD,EAAElD,QAAQsf,kBAAkBrU,KAAMysB,UAAW,mCAAsCrzB,EAAE,SAAU,CAAEtE,MAAO,CAAEW,GAAIwC,EAAElD,QAAQyb,WAAa,iBAAkB8D,YAAarc,EAAElD,QAAQsf,kBAAkBC,YAAaC,aAActc,EAAElD,QAAQsf,kBAAkBE,aAAcC,KAAMvc,EAAElD,QAAQsf,kBAAkBG,KAAMC,KAAMxc,EAAElD,QAAQsf,kBAAkBI,KAAM0b,YAAa,iBAAkBC,OAAQ,OAAQC,QAAS,cAAiB,CAACj3B,EAAE,OAAQ,CAAEoC,MAAO,CAAE8wB,KAAMr0B,EAAElD,QAAQme,kBAAoBpe,MAAO,CAAEmG,EAAGhD,EAAElD,QAAQsf,kBAAkBrU,UAAa5G,EAAE,SAAU,CAAEtE,MAAO,CAAEW,GAAIwC,EAAElD,QAAQyb,WAAa,uBAAwB8D,YAAarc,EAAElD,QAAQsf,kBAAkBC,YAAaC,aAActc,EAAElD,QAAQsf,kBAAkBE,aAAcC,KAAMvc,EAAElD,QAAQsf,kBAAkBG,KAAMC,KAAMxc,EAAElD,QAAQsf,kBAAkBI,KAAM0b,YAAa,iBAAkBC,OAAQ,OAAQC,QAAS,cAAiB,CAACj3B,EAAE,OAAQ,CAAEoC,MAAO,CAAE8wB,KAAMr0B,EAAElD,QAAQme,kBAAoBpe,MAAO,CAAEmG,EAAGhD,EAAElD,QAAQsf,kBAAkBrU,KAAMysB,UAAW,mCAAsCx0B,EAAEX,GAAGW,EAAE+f,eAAe,SAASle,GACz+E,OAAOV,EAAE,SAAU,CAAEjE,IAAK2E,EAAErE,GAAIX,MAAO,CAAEW,GAAIwC,EAAElD,QAAQyb,WAAa,UAAY1W,EAAErE,GAAI6e,YAAarc,EAAElD,QAAQsf,kBAAkBC,YAAaC,aAActc,EAAElD,QAAQsf,kBAAkBE,aAAcC,KAAMvc,EAAElD,QAAQsf,kBAAkBG,KAAMC,KAAMxc,EAAElD,QAAQsf,kBAAkBI,KAAM0b,YAAa,iBAAkBC,OAAQ,OAAQC,QAAS,cAAiB,CAACj3B,EAAE,OAAQ,CAAEtE,MAAO,CAAEw3B,KAAMr0B,EAAElD,QAAQsf,kBAAkBpV,OAASnF,EAAEmF,MAAOhE,EAAGhD,EAAElD,QAAQsf,kBAAkBrU,aACpc/H,EAAEX,GAAGW,EAAE+f,eAAe,SAASle,GACjC,OAAOV,EAAE,SAAU,CAAEjE,IAAK,SAAW2E,EAAErE,GAAIX,MAAO,CAAEW,GAAIwC,EAAElD,QAAQyb,WAAa,gBAAkB1W,EAAErE,GAAI6e,YAAarc,EAAElD,QAAQsf,kBAAkBC,YAAaC,aAActc,EAAElD,QAAQsf,kBAAkBE,aAAcC,KAAMvc,EAAElD,QAAQsf,kBAAkBG,KAAMC,KAAMxc,EAAElD,QAAQsf,kBAAkBI,KAAM0b,YAAa,iBAAkBC,OAAQ,OAAQC,QAAS,cAAiB,CAACj3B,EAAE,OAAQ,CAAEtE,MAAO,CAAEw3B,KAAMr0B,EAAElD,QAAQsf,kBAAkBpV,OAASnF,EAAEmF,MAAOhE,EAAGhD,EAAElD,QAAQsf,kBAAkBrU,KAAMysB,UAAW,sCACtex0B,EAAEX,GAAGW,EAAE8f,UAAUF,OAAO,SAAS/d,GACnC,MAAO,CAAC7B,EAAEX,GAAGwC,EAAE6I,WAAW,SAAS5I,EAAGC,GACpC,MAAO,CAAC/B,EAAElD,QAAQgf,iBAAmBha,EAAEgI,YAAc3I,EAAE,kBAAmB,CAAEjE,IAAK4E,EAAEtE,GAAIX,MAAO,CAAE22B,KAAM3xB,EAAG4xB,SAAU3xB,EAAG,iBAAkBC,KAAS/B,EAAElC,cAElJ,GAAIqD,EAAE,iBAAkBnB,EAAEX,GAAGW,EAAE8f,UAAUF,OAAO,SAAS/d,GAC5D,OAAOV,EAAE,cAAe,CAAEjE,IAAK2E,EAAE2e,SAAU3jB,MAAO,CAAE,aAAcgF,GAAK7E,YAAagD,EAAE/C,GAAG,CAAC,CAAEC,IAAK,OAAQC,GAAI,SAAS2E,GACpH,IAAIC,EAAID,EAAE+zB,KAAMzzB,EAAIN,EAAEu2B,UACtB,MAAO,CAACr4B,EAAEyK,GAAG,OAAQ,KAAM,CAAEorB,KAAM9zB,EAAGyxB,KAAM3xB,EAAGw2B,UAAWj2B,QACtD,MAAM,SACT,KAAMjB,EAAE,MAAO,CAAE9C,YAAa,sCAAwC2B,EAAEX,GAAGW,EAAE8f,UAAUH,OAAO,SAAS9d,GAC1G,OAAOV,EAAE,cAAe,CAAEjE,IAAK2E,EAAE2e,SAAU3jB,MAAO,CAAE,aAAcgF,GAAK7E,YAAagD,EAAE/C,GAAG,CAAC,CAAEC,IAAK,OAAQC,GAAI,SAAS2E,GACpH,IAAIC,EAAID,EAAE1E,KACV,MAAO,CAAC4C,EAAEyK,GAAG,OAAQ,KAAM,CAAErN,KAAM2E,OAChC,CAAE7E,IAAK,qBAAsBC,GAAI,SAAS2E,GAC7C,IAAIC,EAAID,EAAEmtB,UAAW7sB,EAAIN,EAAE4F,qBAAsBzF,EAAIH,EAAEqtB,kBAAmBntB,EAAIF,EAAEkF,MAAO7E,EAAIL,EAAEstB,qBAC7F,MAAO,CAACpvB,EAAEyK,GAAG,qBAAsB,KAAM,CAAEwkB,UAAWltB,EAAG2F,qBAAsBtF,EAAG+sB,kBAAmBltB,EAAG+E,MAAOhF,EAAGotB,qBAAsBjtB,QACpI,MAAM,QACV,GAAIhB,EAAE,MAAO,CAAE9C,YAAa,oCAAsC,CAAC8C,EAAE,MAAO,CAAE9C,YAAa,uCAAwCxB,MAAO,CAAEg7B,MAAO,+BAAkC,CAAC73B,EAAEX,GAAGW,EAAE8f,UAAUD,cAAc,SAAShe,GAChO,MAAO,EAA2B,IAA1BA,EAAE6I,UAAU,GAAG1E,OAAgB7E,EAAE,cAAe,CAAEjE,IAAK,OAAS2E,EAAE6I,UAAU,GAAGlN,GAAIX,MAAO,CAAE22B,KAAM3xB,EAAG4xB,SAAU5xB,EAAE6I,UAAU,GAAI,iBAAkB,KAAS1K,EAAElC,SAClKkC,EAAElD,QAAQuhB,kBAAoBre,EAAElD,QAAQyhB,gBAAgB/I,SAAWrU,EAAE,cAAe,CAAEjE,IAAK,kBAAmBL,MAAO,CAAE22B,KAAMxzB,EAAElD,QAAQyhB,gBAAiBkV,SAAUzzB,EAAElD,QAAQwhB,gBAAiB,iBAAkB,KAASte,EAAElC,MAAO,QACpOw6B,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqB7I,GACvByH,GACAQ,GACAU,IACA,EACAG,GACA,KACA,KACA,MAEF,SAASA,GAAGz4B,GACV,IAAK,IAAIkB,KAAKq3B,GACZj8B,KAAK4E,GAAKq3B,GAAGr3B,GAEjB,MAAMw3B,GAAqB,WACzB,OAAOF,GAAG7H,QADe,GAEtBgI,GAAK,CACR1H,KAAM,sBACNC,WAAY,CAAE0H,yBAA0BF,GAAIpB,YAAahE,GAAIiE,YAAarB,GAAIsB,gBAAiBf,IAC/F,OACE,MAAO,IAETlF,OAAQ,CAAC,SACTC,SAAU,CACR,UACE,OAAOl1B,KAAKo1B,MAAM50B,SAEpB,gBACE,OAAOR,KAAKo1B,MAAMC,UAEpB,wBACE,MAAO,CACLluB,MAAUnH,KAAKQ,QAAQsX,WAAW3Q,MAA3B,KACPC,OAAWpH,KAAKQ,QAAQsX,WAAW1Q,OAA3B,KACR,cAAkBpH,KAAKQ,QAAQ4gB,aAAatW,EAA7B,KACf,aAAiB9K,KAAKQ,QAAQ4gB,aAAarW,EAA7B,KACd,mBAAoB,cACpBmtB,UAAW,SAASl4B,KAAKQ,QAAQugB,WAAa,OAAO/gB,KAAKQ,QAAQugB,WAAa,UAIrF2W,MAAO,GACP,UACE9uB,EAAE,uBAEJ,UACEA,EAAE,sBAAuB5I,KAAK21B,cAAc4G,aAAav8B,KAAKu1B,MAAMiH,gBAEtE,kBAEA9G,QAAS,CACP,cAAchyB,GACZ1D,KAAK21B,cAAc8G,aAAa/4B,IAElC,YAAYA,GACV1D,KAAK21B,cAAc+G,kBAAkBh5B,IAEvC,YAAYA,GACV1D,KAAK21B,cAAc1E,cAAcvtB,MAIvC,IAAIi5B,GAAK,WACP,IAAIj5B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,MAAO,CAAE9C,YAAa,UAAWkxB,MAAO,CAA6B,IAA5BvvB,EAAElD,QAAQwgB,eAAuB,gBAAiBtd,EAAElD,QAAQogB,gBAAiBld,EAAElD,QAAQmb,wBAA0B,mCAAgC,GAAS1U,MAAO,CAAEE,MAAO,OAAQC,OAAQ,OAAQ,mBAAoB1D,EAAElD,QAAQqc,sBAAmB,EAAQ,mBAAoBnZ,EAAElD,QAAQib,gBAAkB,OAAS/X,EAAElD,QAAQib,gBAAkB,SAAM,GAAU3Z,GAAI,CAAE86B,YAAa,SAASr3B,GAC5a,OAAOA,EAAEipB,iBAAkB9qB,EAAEk5B,YAAYr3B,IACxC4wB,UAAW,SAAS5wB,GACrB,OAAQA,EAAEiE,KAAKrI,QAAQ,QAAUuC,EAAE0yB,GAAG7wB,EAAE8wB,QAAS,OAAQ,GAAI9wB,EAAE3E,IAAK,CAAC,OAAQ,eAAiB,WAAY2E,GAAkB,IAAbA,EAAE+wB,OAAe,KAAO5yB,EAAE6yB,YAAYhxB,IACpJixB,WAAY,SAASjxB,GACtB,OAAO7B,EAAE6yB,YAAYhxB,IACpBs3B,MAAOn5B,EAAEo5B,gBAAmB,CAACj4B,EAAE,MAAO,CAAEvE,IAAK,gBAAiByB,YAAa,iBAAkBkF,MAAOvD,EAAEq5B,uBAAyB,CAACl4B,EAAE,MAAO,CAAE9C,YAAa,0CAA4C,CAAC2B,EAAEyK,GAAG,gBAAiB,GAAItJ,EAAE,2BAA4B,CAAEnE,YAAagD,EAAE/C,GAAG,CAAC,CAAEC,IAAK,OAAQC,GAAI,SAAS0E,GAC/S,IAAIC,EAAID,EAAEzE,KACV,MAAO,CAAC4C,EAAEyK,GAAG,OAAQ,KAAM,CAAErN,KAAM0E,OAChC,CAAE5E,IAAK,OAAQC,GAAI,SAAS0E,GAC/B,IAAIC,EAAID,EAAEg0B,KAAM9zB,EAAIF,EAAE2xB,KACtB,MAAO,CAACxzB,EAAEyK,GAAG,OAAQ,KAAM,CAAEorB,KAAM/zB,EAAG0xB,KAAMzxB,OACzC,CAAE7E,IAAK,qBAAsBC,GAAI,SAAS0E,GAC7C,IAAIC,EAAID,EAAEotB,UAAWltB,EAAIF,EAAE6F,qBAAsBtF,EAAIP,EAAEstB,kBAAmBltB,EAAIJ,EAAEmF,MAAOhF,EAAIH,EAAEutB,qBAC7F,MAAO,CAACpvB,EAAEyK,GAAG,qBAAsB,KAAM,CAAEwkB,UAAWntB,EAAG4F,qBAAsB3F,EAAGotB,kBAAmB/sB,EAAG4E,MAAO/E,EAAGmtB,qBAAsBptB,QACpI,MAAM,KAAQb,EAAE,MAAO,CAAE9C,YAAa,yCAA2C,CAAC2B,EAAEyK,GAAG,sBAAuB,IAAK,MACxH6uB,GAAK,GACR,MAAMh7B,GAAK,GACX,IAAIi7B,GAAqB5J,GACvBgJ,GACAM,GACAK,IACA,EACAE,GACA,KACA,KACA,MAEF,SAASA,GAAGx5B,GACV,IAAK,IAAIkB,KAAK5C,GACZhC,KAAK4E,GAAK5C,GAAG4C,GAEjB,MAAMu4B,GAAqB,WACzB,OAAOF,GAAG5I,QADe,GAEtB+I,GAAK,CACRzI,KAAM,oBACN,OACE,MAAO,CACL0I,YAAa,GACbC,kBAAkB,EAClBC,kBAAmB,KAGvBtI,OAAQ,CAAC,SACTC,SAAU,CACR,gBACE,OAAOl1B,KAAKo1B,MAAMC,UAEpB,UACE,OAAOr1B,KAAKo1B,MAAM50B,UAGtBk1B,QAAS,CACP,qBACE11B,KAAKs9B,kBAAoBt9B,KAAKs9B,kBAEhC,eACEt9B,KAAK21B,cAAc6H,gBAErB,YACEx9B,KAAK21B,cAAc8H,aAErB,eACEz9B,KAAK21B,cAAc+H,gBAAgB19B,KAAKQ,QAAQ0b,OAAQtT,EAAE,YAAa5I,KAAKQ,QAAQ0b,UAI1F,IAAIyhB,GAAK,WACP,IAAIj6B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,MAAO,CAACA,EAAE,MAAO,CAAE9C,YAAa,yBAA0BkxB,MAAO,GAAInxB,GAAI,CAAE6mB,MAAOjlB,EAAEk6B,qBAAwB,CAACl6B,EAAE3C,GAAG,aAAc2C,EAAE45B,iBAAmBz4B,EAAE,MAAO,CAAE9C,YAAa,kBAAmBkxB,MAAO,IAAM,CAACpuB,EAAE,MAAO,CAAE9C,YAAa,qBAAuB,CAAC8C,EAAE,SAAU,CAAE/C,GAAI,CAAE6mB,MAAOjlB,EAAE85B,eAAkB,CAAC95B,EAAE3C,GAAG,gCAAiC8D,EAAE,MAAO,CAAE9C,YAAa,qBAAuB,CAAC8C,EAAE,SAAU,CAAE/C,GAAI,CAAE6mB,MAAOjlB,EAAE+5B,YAAe,CAAC/5B,EAAE3C,GAAG,kCAAmC8D,EAAE,MAAO,CAAE9C,YAAa,qBAAuB,CAAC2B,EAAE3C,GAAG,qBAAuB2C,EAAE1C,GAAG0C,EAAElD,QAAQ0b,QAASrX,EAAE,SAAU,CAAE/C,GAAI,CAAE6mB,MAAOjlB,EAAEm6B,eAAkB,CAACn6B,EAAE3C,GAAG2C,EAAE1C,GAAG0C,EAAElD,QAAQ0b,MAAQ,UAAY,UAAY,oBAAsBxY,EAAElC,QACjsBs8B,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqB3K,GACvB+J,GACAO,GACAG,IACA,EACAG,GACA,KACA,KACA,MAEF,SAASA,GAAGv6B,GACV,IAAK,IAAIkB,KAAKm5B,GACZ/9B,KAAK4E,GAAKm5B,GAAGn5B,GAEjB,MAAMs5B,GAAqB,WACzB,OAAOF,GAAG3J,QADe,GAEtB8J,GAAK,CACRxJ,KAAM,gBACN,OACE,MAAO,CACLyJ,UAAW,IACXC,WAAY,EACZjY,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNwF,KAAM,IAGVkJ,OAAQ,CAAC,QAAS,aAClBC,SAAU,CACR,gBACE,OAAOl1B,KAAKo1B,MAAMC,UAEpB,UACE,OAAOr1B,KAAKo1B,MAAM50B,UAGtB,YAEAk1B,QAAS,CACP,iBACE,IAAIhyB,EAAI,KAAMkB,GAAK,KAAMC,EAAI,KAAMU,GAAK,KACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIxF,KAAKwjB,UAAUH,MAAM/c,OAAQd,IAAK,CACpD,MAAMC,EAAIzF,KAAKwjB,UAAUH,MAAM7d,GAC/BC,EAAEqF,EAAIpH,IAAMA,EAAI+B,EAAEqF,GAAIrF,EAAEqF,EAAIlG,IAAMA,EAAIa,EAAEqF,GAAIrF,EAAEsF,EAAIlG,IAAMA,EAAIY,EAAEsF,GAAItF,EAAEsF,EAAIxF,IAAMA,EAAIE,EAAEsF,GAEtF,OAAO/K,KAAKq+B,YAAc94B,EAAIV,GAAK7E,KAAKo+B,WAAax5B,EAAIlB,GAAI1D,KAAKomB,KAAO1iB,EAAG1D,KAAKsmB,KAAOzhB,EAAG7E,KAAKqmB,KAAOzhB,EAAG5E,KAAKumB,KAAOhhB,EAAGvF,KAAKq+B,YAEhI,kBACE,MAAM36B,EAAI1D,KAAKo+B,UAAYp+B,KAAKQ,QAAQqf,aAAa1Y,MAAOvC,EAAI5E,KAAKQ,QAAQof,WAAWzY,MAAQzD,EAAGmB,EAAI7E,KAAKQ,QAAQof,WAAWxY,OAAS1D,EACxI,IAAI6B,GAAKvF,KAAKQ,QAAQof,WAAW9U,EAAI9K,KAAKQ,QAAQqf,aAAa/U,GAAKpH,GAAK1D,KAAKQ,QAAQugB,WAAa,KAAMvb,GAAKxF,KAAKQ,QAAQof,WAAW7U,EAAI/K,KAAKQ,QAAQqf,aAAa9U,GAAKrH,GAAK1D,KAAKQ,QAAQugB,WAAa,KACxM,OAAOxb,EAAQ,IAAJA,EAAUX,EAAGY,EAAQ,IAAJA,EAAUZ,EAAG,CACvCuC,MAAOvC,EAAI,KACXwC,OAAQvC,EAAI,KACZ8J,KAAMpJ,EAAI,KACVsJ,IAAKrJ,EAAI,OAGb,gBAAgB9B,GACd,OAAOwL,EAAEU,gBAAgBlM,MAI/B,IAAI46B,GAAK,WACP,IAAI56B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,MAAO,CAAEvE,IAAK,WAAYyB,YAAa,gBAAkB,CAAC8C,EAAE,MAAO,CAAE9C,YAAa,gBAAiBkF,MAAO,CACjHE,MAAOzD,EAAE06B,UAAY,KACrBh3B,OAAQ1D,EAAE66B,iBAAmB,OAC1B,CAAC76B,EAAEX,GAAGW,EAAE8f,UAAUH,OAAO,SAAS9d,GACrC,MAAO,CAAC7B,EAAEkM,gBAAgBrK,GAAKV,EAAE,MAAO,CAAEjE,IAAK2E,EAAErE,GAAIa,YAAa,cAAekF,MAAO,CACtF0H,MAAOpJ,EAAEuF,EAAIpH,EAAE0iB,MAAQ1iB,EAAE06B,WAAa16B,EAAE2iB,KAAO3iB,EAAE0iB,MAAQ,KACzDvX,KAAMtJ,EAAEwF,EAAIrH,EAAE4iB,MAAQ5iB,EAAE26B,YAAc36B,EAAE6iB,KAAO7iB,EAAE4iB,MAAQ,QACpD5iB,EAAElC,UACN,MACJg9B,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqBrL,GACvB8K,GACAG,GACAE,IACA,EACAG,GACA,WACA,KACA,MAEF,SAASA,GAAGj7B,GACV,IAAK,IAAIkB,KAAK65B,GACZz+B,KAAK4E,GAAK65B,GAAG75B,GAEjB,MAAMg6B,GAAqB,WACzB,OAAOF,GAAGrK,QADe,GAEtBwK,GAAK,CACRlK,KAAM,mBACN,OACE,MAAO,CACLvtB,OAAQ,IACR03B,KAAM,EACNC,mBAAoB,MAGxB9J,OAAQ,CAAC,SACTC,SAAU,CACR,gBACE,OAAOl1B,KAAKo1B,MAAMC,UAEpB,UACE,OAAOr1B,KAAKo1B,MAAM50B,UAGtB,UACmD,OAAjDR,KAAK21B,cAAc9S,UAAUmc,kBAA6Bh/B,KAAK++B,oBAAsB,IAAK/+B,KAAKQ,QAAQkgB,QAAQpa,OAAS,IAAMtG,KAAKoH,QAAU,KAE/IsuB,QAAS,CACP,UACE11B,KAAK21B,cAAcrD,WAErB,aAAa5uB,GACXkF,EAAE,iBAAkBlF,GAAI1D,KAAK21B,cAAcsJ,aAAav7B,IAE1D,mBACE1D,KAAK21B,cAAcuJ,oBAErB,kBACEl/B,KAAK21B,cAAc9S,UAAUmc,mBAE/B,YACE,OAAO35B,EAAErF,KAAM,MAAM,kBACbA,KAAK21B,cAAcjI,QAAQ,WAAY1tB,KAAK21B,cAAc3I,qBAAsBhtB,KAAK21B,cAAcxI,kBAKjH,IAAIgS,GAAK,WACP,IAAIz7B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,MAAO,CAAE9C,YAAa,iBAAkBkF,MAAO,CAAE,cAAevD,EAAElD,QAAQmf,WAAWxY,MAAQ,GAAK,KAAM,cAAezD,EAAElD,QAAQmf,WAAWvY,OAAS,KAAO,EAAI,OAAU,CAACvC,EAAE,MAAO,CAAE9C,YAAa,cAAe1B,YAAa,CAAE,aAAc,OAASyB,GAAI,CAAE6mB,MAAO,SAASpjB,GACrR,OAAO7B,EAAEiyB,cAAcrV,gBAClB,CAACzb,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,qBAAwBsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG2C,EAAE1C,GAAG0C,EAAElD,QAAQ8f,WAAa,KAAiB,WAAsB5c,EAAElD,QAAQid,kBAAoB5Y,EAAE,MAAO,CAAE9C,YAAa,cAAeD,GAAI,CAAE6mB,MAAO,SAASpjB,GACpV,OAAO7B,EAAEiyB,cAAc5J,KAAK,OACvB,CAAClnB,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,oBAAuBsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,UAAsB2C,EAAElC,KAAMkC,EAAElD,QAAQid,kBAAoB5Y,EAAE,MAAO,CAAExE,YAAa,CAAE++B,MAAO,OAAQ,aAAc,MAAOh4B,OAAQ,OAAQD,MAAO,OAAQ,aAAc,MAAO,gBAAiB,MAAO,mBAAoB,UAAWuD,MAAO,UAAW,YAAa,OAAQ,aAAc,SAAU,cAAe,QAAU5I,GAAI,CAAEu9B,SAAU37B,EAAEypB,YAAe,CAACzpB,EAAE3C,GAAG2C,EAAE1C,GAAG0C,EAAElD,QAAQugB,YAAc,OAASrd,EAAElC,KAAMkC,EAAElD,QAAQid,kBAAoB5Y,EAAE,MAAO,CAAE9C,YAAa,cAAe1B,YAAa,CAAE,aAAc,OAASyB,GAAI,CAAE6mB,MAAO,SAASpjB,GACxsB,OAAO7B,EAAEiyB,cAAc5J,MAAM,OACxB,CAAClnB,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,qBAAwBsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,UAAsB2C,EAAElC,KAAMkC,EAAElD,QAAQkgB,QAAQpa,OAAS,EAAIzB,EAAE,MAAO,CAAE9C,YAAa,eAAiB,CAAC8C,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,8BAAiCsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,QAAmB8D,EAAE,MAAO,CAAE9C,YAAa,mBAAoBkF,MAAO,CAAEE,MAAkC,GAA3BzD,EAAElD,QAAQkgB,QAAQpa,OAAc,EAAI,KAAM,eAA2C,GAA5B5C,EAAElD,QAAQkgB,QAAQpa,OAAe,EAAI,OAAU5C,EAAEX,GAAGW,EAAElD,QAAQkgB,SAAS,SAASnb,GAC9qB,OAAOV,EAAE,MAAO,CAAEjE,IAAK2E,EAAE8c,MAAOtgB,YAAa,4BAA6BkxB,MAAO,CAAE,iBAAkBvvB,EAAElD,QAAQmgB,cAAgBpb,EAAE8c,OAAShiB,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASnjB,GAC9L,OAAO9B,EAAEu7B,aAAa15B,MACjB,CAACV,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,8BAAiCsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG2C,EAAE1C,GAAGuE,EAAE8c,eACtM,KAAO3e,EAAElC,KAAMkC,EAAElD,QAAQyd,qBAAuBpZ,EAAE,MAAO,CAAE9C,YAAa,eAAiB,CAAC8C,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,iBAAoBsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,QAAmB8D,EAAE,MAAO,CAAE9C,YAAa,mBAAoB1B,YAAa,CAAE8G,MAAO,QAAS,cAAe,WAAc,CAACtC,EAAE,MAAO,CAAE9C,YAAa,4BAA6BkxB,MAAO,CAAE,iBAAiD,IAA/BvvB,EAAElD,QAAQse,kBAA0Bze,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASpjB,GAC9iB,OAAO7B,EAAEiyB,cAAc2J,oBAAoB,MACtC,CAACz6B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,iBAAoBsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,UAAqB8D,EAAE,MAAO,CAAE9C,YAAa,4BAA6BkxB,MAAO,CAAE,iBAAiD,IAA/BvvB,EAAElD,QAAQse,kBAA0Bze,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASpjB,GACjX,OAAO7B,EAAEiyB,cAAc2J,oBAAoB,MACtC,CAACz6B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,wBAA2BsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,UAAqB8D,EAAE,MAAO,CAAE9C,YAAa,4BAA6BkxB,MAAO,CAAE,iBAAiD,IAA/BvvB,EAAElD,QAAQse,kBAA0Bze,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASpjB,GACxX,OAAO7B,EAAEiyB,cAAc2J,oBAAoB,MACtC,CAACz6B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,wBAA2BsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,UAAqB8D,EAAE,MAAO,CAAE9C,YAAa,4BAA6BkxB,MAAO,CAAE,iBAAiD,IAA/BvvB,EAAElD,QAAQse,kBAA0Bze,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASpjB,GACxX,OAAO7B,EAAEiyB,cAAc2J,oBAAoB,MACtC,CAACz6B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,wBAA2BsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,UAAqB8D,EAAE,MAAO,CAAE9C,YAAa,4BAA6BkxB,MAAO,CAAE,iBAAiD,IAA/BvvB,EAAElD,QAAQse,kBAA0Bze,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASpjB,GACxX,OAAO7B,EAAEiyB,cAAc2J,oBAAoB,MACtC,CAACz6B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,iBAAoBsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,cAA0B2C,EAAElC,KAAMkC,EAAElD,QAAQ0d,yBAA2BrZ,EAAE,MAAO,CAAE9C,YAAa,eAAiB,CAAC8C,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,iCAAoCsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,SAAyB8D,EAAE,MAAO,CAAE9C,YAAa,mBAAoB1B,YAAa,CAAE8G,MAAO,QAAS,cAAe,WAAc,CAACtC,EAAE,MAAO,CAAE9C,YAAa,4BAA6BkxB,MAAO,CAAE,iBAAqD,WAAnCvvB,EAAElD,QAAQ4e,sBAAqC/e,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASpjB,GACtxB,OAAO7B,EAAEiyB,cAAc4J,wBAAwB,aAC1C,CAAC16B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,iCAAoCsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,UAAqB8D,EAAE,MAAO,CAAE9C,YAAa,4BAA6BkxB,MAAO,CAAE,iBAAqD,SAAnCvvB,EAAElD,QAAQ4e,sBAAmC/e,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASpjB,GAC1Y,OAAO7B,EAAEiyB,cAAc4J,wBAAwB,WAC1C,CAAC16B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,iCAAoCsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,UAAqB8D,EAAE,MAAO,CAAE9C,YAAa,4BAA6BkxB,MAAO,CAAE,iBAAqD,OAAnCvvB,EAAElD,QAAQ4e,sBAAiC/e,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASpjB,GACxY,OAAO7B,EAAEiyB,cAAc4J,wBAAwB,SAC1C,CAAC16B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,iCAAoCsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,UAAqB8D,EAAE,MAAO,CAAE9C,YAAa,4BAA6BkxB,MAAO,CAAE,iBAAqD,OAAnCvvB,EAAElD,QAAQ4e,sBAAiC/e,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASpjB,GACxY,OAAO7B,EAAEiyB,cAAc4J,wBAAwB,SAC1C,CAAC16B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,iCAAoCsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,cAA0B2C,EAAElC,KAAMkC,EAAElD,QAAQya,0BAA4BvX,EAAElD,QAAQwa,2BAA6BnW,EAAE,MAAO,CAAE9C,YAAa,cAAekxB,MAAO,CAAE,iBAAkBvvB,EAAElD,QAAQoX,eAAiBrX,MAAO,CAAEi/B,MAAO97B,EAAElD,QAAQoX,cAAgB,WAAqD,cAAkE9V,GAAI,CAAE6mB,MAAOjlB,EAAEw7B,mBAAsB,CAACx7B,EAAElD,QAAQoX,cAAgB/S,EAAE,MAAO,CAAE9C,YAAa,yBAA0BxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,0BAA8BsE,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,oBAAuBsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,UAAsB2C,EAAElC,KAAMkC,EAAElD,QAAQkd,uBAAyB7Y,EAAE,MAAO,CAAE9C,YAAa,cAAeD,GAAI,CAAE6mB,MAAOjlB,EAAE4uB,UAAa,CAACztB,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,uBAA0BsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,UAAsB2C,EAAElC,KAAMkC,EAAElD,QAAQmd,wBAA0B9Y,EAAE,MAAO,CAAE9C,YAAa,eAAiB,CAAC8C,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,oBAAuBsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,QAAmB8D,EAAE,MAAO,CAAE9C,YAAa,mBAAoBkF,MAAO,CAAEE,MAAOzD,EAAEq7B,mBAAqB,KAAM,eAAuC,EAAxBr7B,EAAEq7B,mBAA0B,OAAU,CAACl6B,EAAE,MAAO,CAAE9C,YAAa,4BAA6B1B,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASpjB,GACpxD,OAAO7B,EAAEiyB,cAAc8J,gBAAgB,UAClC,CAAC56B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,oBAAuBsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,WAAY8D,EAAE,MAAO,CAAE9C,YAAa,4BAA6B1B,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASpjB,GAC5S,OAAO7B,EAAEiyB,cAAc8J,gBAAgB,UAClC,CAAC56B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,oBAAuBsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,WAAY2C,EAAEiyB,cAAc9S,UAAUmc,gBAAkBn6B,EAAE,MAAO,CAAE9C,YAAa,4BAA6B1B,YAAa,CAAE8G,MAAO,QAAUrF,GAAI,CAAE6mB,MAAO,SAASpjB,GACxV,OAAO7B,EAAEs7B,qBACJ,CAACn6B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,oBAAuBsE,EAAE,OAAQ,CAAE9C,YAAa,aAAe,CAAC2B,EAAE3C,GAAG,aAAe2C,EAAElC,SAAWkC,EAAElC,QACpNk+B,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqBvM,GACvBwL,GACAM,GACAO,IACA,EACAG,GACA,WACA,KACA,MAEF,SAASA,GAAGn8B,GACV,IAAK,IAAIkB,KAAK+6B,GACZ3/B,KAAK4E,GAAK+6B,GAAG/6B,GAEjB,MAAMk7B,GAAqB,WACzB,OAAOF,GAAGvL,QADe,GAEtB0L,GAAK,CACRpL,KAAM,mBACN,OACE,MAAO,IAETM,OAAQ,CAAC,SACTC,SAAU,CACR,gBACE,OAAOl1B,KAAKo1B,MAAMC,UAEpB,UACE,OAAOr1B,KAAKo1B,MAAM50B,UAGtB,YAEAk1B,QAAS,CACP,UACE11B,KAAK21B,cAAcrD,WAErB,aAAa5uB,GACXkF,EAAE,iBAAkBlF,GAAI1D,KAAK21B,cAAcsJ,aAAav7B,IAE1D,mBACE1D,KAAK21B,cAAcuJ,oBAErB,kBACEl/B,KAAK21B,cAAc8J,gBAAgB,QAErC,YACE,OAAOp6B,EAAErF,KAAM,MAAM,kBACbA,KAAK21B,cAAcjI,QAAQ,WAAY1tB,KAAK21B,cAAc3I,qBAAsBhtB,KAAK21B,cAAcxI,kBAKjH,IAAI6S,GAAK,WACP,IAAIt8B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,MAAO,CAAE9C,YAAa,cAAekxB,MAAO,CAAC,iBAAmBvvB,EAAElD,QAAQud,iBAAkB,iBAAmBra,EAAElD,QAAQwd,iBAAkB,eAAiBta,EAAElD,QAAQsd,mBAAqB,CAACpa,EAAElD,QAAQgd,wBAA0B3Y,EAAE,MAAO,CAAE9C,YAAa,cAAe1B,YAAa,CAAE,aAAc,OAASE,MAAO,CAAEi/B,MAAO,WAA2C19B,GAAI,CAAE6mB,MAAO,SAASpjB,GACrY,OAAO7B,EAAEiyB,cAAcrV,gBAClB,CAACzb,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,uBAA2BmD,EAAElC,KAAMkC,EAAElD,QAAQid,kBAAoB5Y,EAAE,MAAO,CAAE9C,YAAa,cAAexB,MAAO,CAAEi/B,MAAO,MAAkB19B,GAAI,CAAE6mB,MAAO,SAASpjB,GAChR,OAAO7B,EAAEiyB,cAAc5J,KAAK,OACvB,CAAClnB,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,sBAA0BmD,EAAElC,KAAMkC,EAAElD,QAAQid,kBAAoB5Y,EAAE,MAAO,CAAE9C,YAAa,iBAAkBD,GAAI,CAAEu9B,SAAU37B,EAAEypB,YAAe,CAACzpB,EAAE3C,GAAG2C,EAAE1C,GAAG0C,EAAElD,QAAQugB,YAAc,OAASrd,EAAElC,KAAMkC,EAAElD,QAAQid,kBAAoB5Y,EAAE,MAAO,CAAE9C,YAAa,cAAe1B,YAAa,CAAE,aAAc,OAASE,MAAO,CAAEi/B,MAAO,MAAkB19B,GAAI,CAAE6mB,MAAO,SAASpjB,GACld,OAAO7B,EAAEiyB,cAAc5J,MAAM,OACxB,CAAClnB,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,uBAA2BmD,EAAElC,KAAMkC,EAAElD,QAAQya,0BAA4BvX,EAAElD,QAAQwa,2BAA6BnW,EAAE,MAAO,CAAE9C,YAAa,cAAekxB,MAAO,CAAE,iBAAkBvvB,EAAElD,QAAQoX,eAAiBrX,MAAO,CAAEi/B,MAAO97B,EAAElD,QAAQoX,cAAgB,WAAqD,cAAkE9V,GAAI,CAAE6mB,MAAOjlB,EAAEw7B,mBAAsB,CAACx7B,EAAElD,QAAQoX,cAAgB/S,EAAE,MAAO,CAAE9C,YAAa,yBAA0BxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,0BAA8BsE,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,sBAA0BmD,EAAElC,KAAMkC,EAAElD,QAAQkd,uBAAyB7Y,EAAE,MAAO,CAAE9C,YAAa,cAAexB,MAAO,CAAEi/B,MAAO,MAAkB19B,GAAI,CAAE6mB,MAAOjlB,EAAE4uB,UAAa,CAACztB,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,yBAA6BmD,EAAElC,KAAMkC,EAAElD,QAAQmd,wBAA0B9Y,EAAE,MAAO,CAAE9C,YAAa,cAAexB,MAAO,CAAEi/B,MAAO,QAA8B19B,GAAI,CAAE6mB,MAAOjlB,EAAE+7B,kBAAqB,CAAC56B,EAAE,MAAO,CAAE9C,YAAa,UAAWxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,sBAA0BmD,EAAElC,KAAMkC,EAAEyK,GAAG,WAAYtJ,EAAE,MAAO,CAAExE,YAAa,CAAE4/B,MAAO,WAAc,IACp8CC,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqB/M,GACvB0M,GACAC,GACAE,IACA,EACAG,GACA,KACA,KACA,MAEF,SAASA,GAAG38B,GACV,IAAK,IAAIkB,KAAKu7B,GACZngC,KAAK4E,GAAKu7B,GAAGv7B,GAEjB,MAAM07B,GAAqB,WACzB,OAAOF,GAAG/L,QADe,GAEtBvyB,GAAK,CACR6yB,KAAM,oBACNC,WAAY,CAAEoG,YAAahE,IAC3B/B,OAAQ,CAAC,SACTC,SAAU,CACR,gBACE,OAAOl1B,KAAKo1B,MAAMC,UAEpB,UACE,OAAOr1B,KAAKo1B,MAAM50B,UAGtB,YAEAk1B,QAAS,IAEX,IAAI6K,GAAK,WACP,IAAI78B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOlB,EAAElD,UAAYkD,EAAElD,QAAQihB,kBAAoB/d,EAAElD,QAAQ+gB,mBAAqB1c,EAAE,MAAO,CAAE9C,YAAa,eAAiB,CAAC8C,EAAE,MAAO,CAAExE,YAAa,CAAE6G,SAAU,aAAgB,CAACxD,EAAElD,QAAQihB,kBAAoB/d,EAAElD,QAAQkhB,iBAAmB7c,EAAE,cAAe,CAAEtE,MAAO,CAAE,aAAcmD,EAAElD,QAAQmhB,iBAAmBjhB,YAAagD,EAAE/C,GAAG,CAAC,CAAEC,IAAK,OAAQC,GAAI,WACvV,MAAO,CAAC6C,EAAEyK,GAAG,gBAAiB,KAAM,CAAErN,KAAM4C,EAAElD,QAAQmhB,oBACrD1f,OAAO,IAAO,MAAM,KAASyB,EAAElC,KAAMkC,EAAElD,QAAQ+gB,kBAAoB1c,EAAE,MAAO,CAAE9C,YAAa,gBAAiBkF,MAAO,CACpH0H,KAAMjL,EAAElD,QAAQghB,cAAc1W,EAAI,KAClC+D,IAAKnL,EAAElD,QAAQghB,cAAczW,EAAI,KACjC5D,MAAOzD,EAAElD,QAAQghB,cAAcra,MAAQ,KACvCC,OAAQ1D,EAAElD,QAAQghB,cAAcpa,OAAS,QACpC1D,EAAElC,MAAO,KAAOkC,EAAElC,MACxBg/B,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqBrN,GACvBvxB,GACAy+B,GACAC,IACA,EACAG,GACA,WACA,KACA,MAEF,SAASA,GAAGj9B,GACV,IAAK,IAAIkB,KAAK67B,GACZzgC,KAAK4E,GAAK67B,GAAG77B,GAEjB,MAAMg8B,GAAqB,WACzB,OAAOF,GAAGrM,QADe,GAEtBwM,GAAMn9B,IAAM,CACforB,YAAaprB,EAAEorB,YACfM,aAAc1rB,EAAE0rB,aAChB4C,eAAgBtuB,EAAEsuB,eAClBF,gBAAiBpuB,EAAEouB,gBACnBvC,cAAe7rB,EAAE6rB,cACjBD,eAAgB5rB,EAAE4rB,eAClBN,YAAatrB,EAAEsrB,YACf9G,gBAAiBxkB,EAAEwkB,gBACnBsH,gBAAiB9rB,EAAE8rB,gBACnB6C,mBAAoB3uB,EAAE2uB,mBACtBpB,cAAevtB,EAAEutB,cACjBvB,cAAehsB,EAAEgsB,cACjBC,qBAAsBjsB,EAAEisB,qBACxBvH,kBAAmB1kB,EAAE0kB,kBACrB0D,UAAWpoB,EAAEooB,YACXgV,GAAK,CACPnM,KAAM,eACN,OACE,MAAO,IAETM,OAAQ,CAAC,SACTC,SAAU,CACR,gBACE,OAAOl1B,KAAKo1B,MAAMC,UAEpB,UACE,OAAOr1B,KAAKo1B,MAAM50B,UAGtBk1B,QAAS,CACP,eAAehyB,GACb1D,KAAK21B,cAAcoL,eAAer9B,MAIxC,IAAIs9B,GAAK,WACP,IAAIt9B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,MAAO,CAAE9C,YAAa,oBAAqBkxB,MAAO,CAAE,0BAA2BvvB,EAAElD,QAAQ2b,cAAgBra,GAAI,CAAE6mB,MAAOjlB,EAAEq9B,iBAAoB,CAACr9B,EAAElD,QAAQ4b,iBAAmBvX,EAAE,MAAO,CAAE9C,YAAa,6BAA+B,CAAC8C,EAAE,MAAO,CAAE9C,YAAa,uBAAwBxB,MAAO,CAAE,cAAe,SAAY,CAACsE,EAAE,MAAO,CAAEtE,MAAO,CAAE,aAAc,0BAA6BmD,EAAE3C,GAAG,IAAM2C,EAAE1C,GAAG0C,EAAElD,QAAQ4b,kBAAoB,cAAgB,OAAS1Y,EAAElC,QACvcy/B,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqB9N,GACvByN,GACAE,GACAC,IACA,EACApgC,GACA,KACA,KACA,MAEF,SAASA,GAAG6C,GACV,IAAK,IAAIkB,KAAKs8B,GACZlhC,KAAK4E,GAAKs8B,GAAGt8B,GAEjB,MAAMw8B,GAAqB,WACzB,OAAOD,GAAG9M,QADe,GAEtBgN,GAAK,CACR1M,KAAM,qBACNC,WAAY,CAAE0M,aAAcF,GAAIG,kBAAmBX,GAAIY,iBAAkB1B,GAAI2B,aAAcnB,GAAIoB,cAAe9C,GAAI+C,SAAUxE,GAAIyE,gBAAiB1D,IACjJxL,MAAO,CACLlyB,QAAS,CACPs0B,aAAa,EACbC,QAAS,KAAM,IACfvrB,KAAM1F,QAER+9B,kBAAmB,CACjB/M,aAAa,EACbC,QAAS,KACTvrB,KAAMupB,UAERjE,YAAa,CACXgG,aAAa,EACbC,QAAS,IAAM,OAEfvrB,KAAMupB,UAER3D,aAAc,CACZ0F,aAAa,EACbC,QAAS,IAAM,OAEfvrB,KAAMupB,UAERzD,eAAgB,CACdwF,aAAa,EACbC,QAAS,IAAM,OAEfvrB,KAAMupB,UAER/D,YAAa,CACX8F,aAAa,EACbC,QAAS,IAAM,OAEfvrB,KAAMupB,UAERjB,gBAAiB,CACfgD,aAAa,EACbC,QAAS,IAAM,OAEfvrB,KAAMupB,UAERxD,cAAe,CACbuF,aAAa,EACbC,QAAS,IAAM,OAEfvrB,KAAMupB,UAERf,eAAgB,CACd8C,aAAa,EACbC,QAAS,IAAM,OAEfvrB,KAAMupB,UAERvD,gBAAiB,CACfsF,aAAa,EACbC,QAAS,IAAM,OAEfvrB,KAAMupB,UAERV,mBAAoB,CAClByC,aAAa,EACbC,QAAS,IAAM,OAEfvrB,KAAMupB,UAER9B,cAAe,CACb6D,aAAa,EACbC,QAAS,IAAM,OAEfvrB,KAAMupB,UAERrD,cAAe,CACboF,aAAa,EACbC,QAAS,IAAM,OAEfvrB,KAAMupB,UAERiM,gBAAiB,CACflK,aAAa,EACbC,QAAS,KACTvrB,KAAMupB,UAER7K,gBAAiB,CACf4M,aAAa,EACbC,QAAS,KACTvrB,KAAMupB,UAER3K,kBAAmB,CACjB0M,aAAa,EACbC,QAAS,KACTvrB,KAAMupB,UAERpD,qBAAsB,CACpBmF,aAAa,EACbC,QAAS,KACTvrB,KAAMupB,UAERjH,UAAW,CACTgJ,aAAa,EACbC,QAAS,KACTvrB,KAAMupB,WAGV,OACE,MAAO,CACLvP,UAAW,CACTzR,SAAU,KACVsR,MAAO,GACPC,MAAO,GACPC,aAAc,IAEhB6R,MAAO,CACL50B,QAAS,KACTijB,cAAe,GACf4R,SAAU,MAEZ9Y,eAAe,EACfoZ,cAAe,OAGnB,UACE,MAAO,CACLnS,UAAWxjB,KAAKwjB,UAChB4R,MAAOp1B,KAAKo1B,QAGhB,UACEltB,SAAWA,OAAOW,mBAAqB7I,KAAKQ,QAAQ0b,OAAQtT,EAAE,sEAAuE5I,MAAO2D,QAAQgD,IAClJ,iCAAiCP,kEACjC,8EACA,8EACA,8EACA,0BAEF,IAAI1C,GAAI,EACR,IAAK,eAAM,aAAEo+B,SAAW,aAAEA,QAAQC,WAAW,KAE3C,OADAp+B,QAAQC,MAAM,wCAAkJD,QAAQC,MAAM,mDAAoDD,QAAQC,MAAM,6DAAyDD,QAAQC,MAAM,0DAG/R,SAA1B,aAAEk+B,QAAQE,MAAM,EAAG,KAAkBt+B,GAAI,GAA+B,SAA1B,aAAEo+B,QAAQE,MAAM,EAAG,IAAiB54B,OAAOC,SAAS,aAAEy4B,QAAQ5uB,MAAM,KAAK,KAAO,KAAOxP,GAAI,GAAKA,IAAM1D,KAAKuc,eAAgB,EAAI5Y,QAAQC,MAAM,WAAoC,aAAEk+B,kHAAiT,KAAKn+B,QAAQC,MAAM,mJAAoJ,KAAMD,QAAQC,MAAM,oJAE/sB,UACEgF,EAAE,uEACF,MAAMlF,EAAI1D,KAAK6hC,kBAAoB,IAAI7hC,KAAK6hC,kBAAkB7hC,KAAKQ,QAASqgC,GAAG7gC,OAAS,IAAIwyB,GAAGxyB,KAAKQ,QAASqgC,GAAG7gC,OAChH0D,EAAElD,QAAQ+b,cAAgBvc,KAAKuc,cAAe7Y,EAAEu+B,gBAAgBjiC,KAAKwjB,UAAWxjB,KAAKo1B,OAAQ1xB,EAAEw+B,OAAOliC,KAAKu1B,MAAM4M,oBAAqBz+B,EAAE0+B,QAASpiC,KAAKo1B,MAAMC,SAAW3xB,EAAG,KAAK,IAAE5B,IAAM,IAAEA,GAAG,SAAU9B,KAAKqiC,eAE7M,gBACEz5B,EAAE,6EAA8E,IAAE05B,IAAI,SAAUtiC,KAAKqiC,cAAeriC,KAAKu1B,MAAM4M,mBAAmB1M,UAEpJ,UACE7sB,EAAE,wEAEJ8sB,QAAS,CACP,eACE11B,KAAKo1B,MAAMC,SAAS/U,WAAW,IAAEiiB,eAEnC,cACE,OAAOviC,KAAKo1B,MAAMC,UAEpB,WAAW3xB,EAAGkB,GACZ,OAAOS,EAAErF,KAAM,MAAM,kBACbA,KAAKo1B,MAAMC,SAASmN,WAAW9+B,GAAIkB,GAAKA,EAAE5E,KAAKo1B,MAAMC,cAG/D,YAAY9vB,EAAGC,EAAGC,GAChB,OAAOJ,EAAErF,KAAMkzB,WAAW,UAAWxvB,EAAGkB,EAAGC,GACzC,OAA4B,IAArBquB,UAAU5sB,QAA4B,mBAAL1B,IAAoBC,EAAID,EAAGA,GAAI,SAAW5E,KAAKo1B,MAAMC,SAASoN,YAAY/+B,EAAGkB,GAAI,IAAIU,QAAQ,CAACQ,EAAGH,KACvI3F,KAAK0iC,UAAU,IAAMr9B,EAAErF,KAAM,MAAM,kBAC3BA,KAAKo1B,MAAMC,SAAS/C,SAAQ,GAAKztB,GAAKA,EAAE7E,KAAKo1B,MAAMC,UAAWvvB,cAK5E,eAAeP,EAAGC,EAAGC,GACnB,OAAOJ,EAAErF,KAAMkzB,WAAW,UAAWxvB,EAAGkB,EAAGC,GACpB,IAArBquB,UAAU5sB,QAA4B,mBAAL1B,IAAoBC,EAAID,EAAGA,GAAI,SAAW5E,KAAKo1B,MAAMC,SAASsN,eAAej/B,EAAGkB,GAAIC,GAAKA,EAAE7E,KAAKo1B,MAAMC,cAG3I,YAAY3xB,GACV1D,KAAKo1B,MAAMC,SAASuN,YAAYl/B,IAElC,gBACE1D,KAAKo1B,MAAMC,SAASnP,yBAEtB,UACE,OAAO7gB,EAAErF,KAAM,MAAM,kBACbA,KAAKo1B,MAAMC,SAAS/C,cAG9B,WACE,OAAOjtB,EAAErF,KAAM,MAAM,kBACbA,KAAKo1B,MAAMC,SAASxI,eAG9B,gBACE,OAAOxnB,EAAErF,KAAM,MAAM,kBACbA,KAAKo1B,MAAMC,SAASwN,oBAG9B,cAAcn/B,GACZ,OAAO2B,EAAErF,KAAM,MAAM,YACnB,aAAaA,KAAKo1B,MAAMC,SAASyN,cAAcp/B,OAGnD,YAAYA,GACV,OAAO1D,KAAKo1B,MAAMC,SAAStR,YAAYrgB,IAEzC,eAAeA,GACb,OAAO1D,KAAKo1B,MAAMC,SAAS7P,eAAe9hB,IAE5C,WACE,OAAO1D,KAAKo1B,MAAMC,SAAS0N,YAE7B,WACE,OAAO/iC,KAAKo1B,MAAMC,SAAS5P,YAE7B,mBACE,OAAOzlB,KAAKo1B,MAAMC,SAAStQ,oBAE7B,sBACE,OAAO/kB,KAAKo1B,MAAMC,SAASvQ,wBAG/B,gBACElc,EAAE,gCAAiC5I,KAAKo1B,MAAMC,SAAS70B,QAAQgY,mBAAoB,IAGvF,IAAIwqB,GAAK,WACP,IAAIt/B,EAAI1D,KAAM4E,EAAIlB,EAAExD,eAAgB2E,EAAInB,EAAEtD,MAAMD,IAAMyE,EACtD,OAAOC,EAAE,MAAO,CAAEvE,IAAK,qBAAsByB,YAAa,iBAAkBkF,MAAO,CAAEE,MAAO,OAAQC,OAAQ,SAAY,CAAC1D,EAAE0xB,MAAMC,UAAY3xB,EAAE0xB,MAAM50B,QAAU,CAACkD,EAAE0xB,MAAM50B,QAAQoc,eAAiB/X,EAAE,mBAAqBnB,EAAElC,MAA+C,IAAzCkC,EAAE0xB,MAAM50B,QAAQod,qBAA8B,CAACla,EAAE0xB,MAAM50B,QAAQ+b,gBAAkB7Y,EAAE0xB,MAAM50B,QAAQkc,iBAAmB7X,EAAE,gBAAkBnB,EAAEyK,GAAG,YAAY,WACvX,MAAO,CAAoC,OAAnCzK,EAAE0xB,MAAM50B,QAAQqd,eAA0BhZ,EAAE,gBAAkBA,EAAE,yBACpEnB,EAAElC,MAA4C,IAAtCkC,EAAE0xB,MAAM50B,QAAQ2f,kBAA2Bzc,EAAEyK,GAAG,aAAa,WACzE,MAAO,CAACtJ,EAAE,qBACPnB,EAAElC,KAAMkC,EAAEyK,GAAG,cAAetJ,EAAE,WAAY,CAAEnE,YAAagD,EAAE/C,GAAG,CAAC,CAAEC,IAAK,OAAQC,GAAI,SAAS0E,GAC9F,IAAIC,EAAID,EAAEzE,KACV,MAAO,CAAC4C,EAAEyK,GAAG,OAAQ,KAAM,CAAErN,KAAM0E,OAChC,CAAE5E,IAAK,OAAQC,GAAI,SAAS0E,GAC/B,IAAIC,EAAID,EAAEg0B,KAAM9zB,EAAIF,EAAE2xB,KACtB,MAAO,CAACxzB,EAAEyK,GAAG,OAAQ,KAAM,CAAEorB,KAAM/zB,EAAG0xB,KAAMzxB,OACzC,CAAE7E,IAAK,cAAeC,GAAI,WAC7B,MAAO,CAAC6C,EAAEyK,GAAG,iBACZlM,OAAO,GAAM,CAAErB,IAAK,oBAAqBC,GAAI,WAC9C,MAAO,CAAC6C,EAAEyK,GAAG,aACZlM,OAAO,GAAM,CAAErB,IAAK,qBAAsBC,GAAI,SAAS0E,GACxD,IAAIC,EAAID,EAAEotB,UAAWltB,EAAIF,EAAE6F,qBAAsBtF,EAAIP,EAAEstB,kBAAmBltB,EAAIJ,EAAEmF,MAAOhF,EAAIH,EAAEutB,qBAC7F,MAAO,CAACpvB,EAAEyK,GAAG,qBAAsB,KAAM,CAAEwkB,UAAWntB,EAAG4F,qBAAsB3F,EAAGotB,kBAAmB/sB,EAAG4E,MAAO/E,EAAGmtB,qBAAsBptB,QACpI,MAAM,KAAQb,EAAE,oBAAqB,CAAEnE,YAAagD,EAAE/C,GAAG,CAAC,CAAEC,IAAK,gBAAiBC,GAAI,SAAS0E,GACnG,IAAIC,EAAID,EAAEzE,KACV,MAAO,CAAC4C,EAAEyK,GAAG,gBAAiB,KAAM,CAAErN,KAAM0E,QACxC,MAAM,KAAQX,EAAE,iBAAmBnB,EAAElC,MAAO,IACjDyhC,GAAK,GACR,MAAMC,GAAK,GACX,IAAIC,GAAqB9P,GACvBgO,GACA2B,GACAC,IACA,EACAG,GACA,KACA,KACA,MAEF,SAASA,GAAG1/B,GACV,IAAK,IAAIkB,KAAKs+B,GACZljC,KAAK4E,GAAKs+B,GAAGt+B,GAEjB,MAAMy+B,GAAqB,WACzB,OAAOF,GAAG9O,QADe,GASsCiP,GAAK,CAAC5/B,EAAGkB,KACxElB,EAAE6/B,UAAU,gBAAiBF,KAEd,oBAAVn7B,QAAyBA,OAAOs7B,KAAOF,GAAGp7B,OAAOs7B,KACxD,MAAMC,GAAKJ,GAAIK,GAAKv+B,EAAGF,EAAG,GAAIw+B,IAAK,CACjC3B,QAAS17B,EACTu9B,QAASL,KCtyIX,IAAI,GAAS,WAAa,IAAIvjC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAC21B,WAAW,CAAC,CAACnB,KAAK,UAAUoB,QAAQ,YAAYzzB,MAAOvC,EAAW,QAAE2C,WAAW,YAAYrC,YAAY,CAAC,KAAO,IAAI,QAAU,QAAQE,MAAM,CAAC,uBAAuBR,EAAIiC,GAAG,YAAY,0BAA0B,oBAAoB,CAACjC,EAAI6jC,GAAG,GAAGzjC,EAAG,MAAM,CAACE,YAAY,CAAC,KAAO,IAAI,QAAU,OAAO,iBAAiB,SAAS,YAAY,QAAQ,CAACF,EAAG,kBAAkB,CAACI,MAAM,CAAC,OAAS,EAAE,QAAS,IAAO,CAACJ,EAAG,uBAAuB,CAACI,MAAM,CAAC,aAAe,CAAEsjC,UAAW,YAAa,CAAC1jC,EAAG,WAAW,CAAC2jC,KAAK,SAAS,CAAC3jC,EAAG,IAAI,CAAC4B,YAAY,kBAAkBhC,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,iBAAiB7B,EAAG,iBAAiB,CAACI,MAAM,CAAC,WAAY,EAAM,KAAO,gBAAgB,iBAAiBR,EAAIgkC,cAAc,kBAAkBhkC,EAAIiC,GAAG,UAAU,oBAAoBjC,EAAIiC,GAAG,aAAa,kBAAkBjC,EAAIiC,GAAG,aAAa,MAAQ,SAASF,GAAG,CAAC,OAAS/B,EAAIikC,aAAa3hC,MAAM,CAACC,MAAOvC,EAAe,YAAEwC,SAAS,SAAUC,GAAMzC,EAAIkkC,YAAYzhC,GAAKE,WAAW,iBAAiBvC,EAAG,YAAY,CAACE,YAAY,CAAC,cAAc,QAAQE,MAAM,CAAC,KAAO,UAAU,KAAO,mBAAmBuB,GAAG,CAAC,MAAQ/B,EAAIikC,cAAc,CAACjkC,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,eAAe7B,EAAG,YAAY,CAACE,YAAY,CAAC,cAAc,QAAQE,MAAM,CAAC,KAAO,UAAU,KAAO,oBAAoBuB,GAAG,CAAC,MAAQ/B,EAAImkC,cAAc,CAACnkC,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,oBAAoB,IAAI,GAAG7B,EAAG,UAAU,CAACE,YAAY,CAAC,KAAO,KAAKE,MAAM,CAAC,MAAQR,EAAIokC,aAAepkC,EAAIokC,YAAY79B,OAAS,EAAIvG,EAAIokC,YAAY,GAAGxP,KAAO,KAAK50B,EAAIgD,GAAIhD,EAAe,aAAE,SAASiD,EAAKC,GAAO,OAAO9C,EAAG,cAAc,CAACS,IAAIqC,EAAM1C,MAAM,CAAC,MAAQyC,EAAK2xB,KAAK,KAAO3xB,EAAK2xB,OAAO,CAACx0B,EAAG,kBAAkB,CAACI,MAAM,CAAC,OAAS,EAAE,QAAS,EAAK,WAAa,CAAE4G,MAAO,SAAU,aAAe,CAAEA,MAAO,WAAY,CAAChH,EAAG,uBAAuB,CAACA,EAAG,WAAW,CAAC2jC,KAAK,SAAS,CAAC3jC,EAAG,IAAI,CAAC4B,YAAY,gCAAgChC,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,iBAAiBjC,EAAIgB,GAAGhB,EAAIiB,GAAGgC,EAAK2xB,MAAM,MAAM,GAAGx0B,EAAG,uBAAuB,CAACI,MAAM,CAAC,qBAAqB,mBAAmB,CAACJ,EAAG,WAAW,CAAC2jC,KAAK,SAAS,CAAC3jC,EAAG,IAAI,CAAC4B,YAAY,6BAA6BhC,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,gBAAgBjC,EAAIgB,GAAGhB,EAAIiB,GAAGgC,EAAKohC,iBAAiB,OAAO,GAAGjkC,EAAG,uBAAuB,CAACI,MAAM,CAAC,qBAAqB,mBAAmB,CAACJ,EAAG,WAAW,CAAC2jC,KAAK,SAAS,CAAC3jC,EAAG,IAAI,CAAC4B,YAAY,wBAAwBhC,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,iBAAiBjC,EAAIgB,GAAGhB,EAAIiB,GAAGgC,EAAKqhC,kBAAkB,OAAO,GAAGlkC,EAAG,uBAAuB,CAACA,EAAG,WAAW,CAAC2jC,KAAK,SAAS,CAAC3jC,EAAG,IAAI,CAAC4B,YAAY,kBAAkBhC,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,iBAAiBjC,EAAIgB,GAAGhB,EAAIiB,GAAGgC,EAAKshC,uBAAuB,MAAM,GAAGnkC,EAAG,uBAAuB,CAACI,MAAM,CAAC,qBAAqB,mBAAmB,CAACJ,EAAG,WAAW,CAAC2jC,KAAK,SAAS,CAAC3jC,EAAG,IAAI,CAAC4B,YAAY,wBAAwBhC,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,eAAejC,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGgC,EAAKuhC,iBAAiB,OAAO,GAAGpkC,EAAG,uBAAuB,CAACA,EAAG,WAAW,CAAC2jC,KAAK,SAAS,CAAC3jC,EAAG,IAAI,CAAC4B,YAAY,kBAAkBhC,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,iBAAkBgB,EAAKwhC,qBAAqBrjC,QAAQ,MAAQ,EAAGhB,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQR,EAAIiC,GAAG,aAAa,CAAC7B,EAAG,aAAa,CAACI,MAAM,CAAC,OAAS,OAAO,UAAY,QAAQG,YAAYX,EAAIY,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,WAAW,OAAOd,EAAIgD,GAAIC,EAAKwhC,qBAAqBtxB,MAAM,MAAM,SAASuxB,EAAMC,GAAQ,OAAOvkC,EAAG,MAAM,CAACS,IAAI8jC,GAAQ,CAAC3kC,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAa,GAAV0jC,EAAc,GAAKD,UAAaxiC,OAAM,IAAO,MAAK,IAAO,CAAC9B,EAAG,MAAM,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGgC,EAAKwhC,qBAAqBtxB,MAAM,KAAK,KAAK/S,EAAG,WAAW,GAAGA,EAAG,MAAM,CAACJ,EAAIgB,GAAGhB,EAAIiB,GAAGgC,EAAKwhC,0BAA0B,GAAGrkC,EAAG,uBAAuB,CAACI,MAAM,CAAC,qBAAqB,mBAAmB,CAACJ,EAAG,WAAW,CAAC2jC,KAAK,SAAS,CAAC3jC,EAAG,IAAI,CAAC4B,YAAY,wBAAwBhC,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,YAAY,OAAOjC,EAAIgB,GAAGhB,EAAIiB,GAAGgC,EAAK2hC,iBAAiB,OAAO,GAAGxkC,EAAG,uBAAuB,CAACA,EAAG,WAAW,CAAC2jC,KAAK,SAAS,CAAC3jC,EAAG,IAAI,CAAC4B,YAAY,kBAAkBhC,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIiC,GAAG,iBAAkBgB,EAAK4hC,qBAAqBzjC,QAAQ,MAAQ,EAAGhB,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQR,EAAIiC,GAAG,aAAa,CAAC7B,EAAG,aAAa,CAACI,MAAM,CAAC,OAAS,OAAO,UAAY,QAAQG,YAAYX,EAAIY,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,WAAW,OAAOd,EAAIgD,GAAIC,EAAK4hC,qBAAqB1xB,MAAM,MAAM,SAASuxB,EAAMC,GAAQ,OAAOvkC,EAAG,MAAM,CAACS,IAAI8jC,GAAQ,CAAC3kC,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAa,GAAV0jC,EAAc,GAAKD,UAAaxiC,OAAM,IAAO,MAAK,IAAO,CAAC9B,EAAG,MAAM,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGgC,EAAK4hC,qBAAqB1xB,MAAM,KAAK,KAAK/S,EAAG,WAAW,GAAGA,EAAG,MAAM,CAACJ,EAAIgB,GAAGhB,EAAIiB,GAAGgC,EAAK4hC,0BAA0B,IAAI,IAAI,MAAK,IAAI,MAC90I,GAAkB,CAAC,WAAa,IAAI7kC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,CAAC,KAAO,MAAM,CAACF,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,8B,mMC4ErKskC,KAAgBA,MAChBC,KAAmBA,MACnBC,KAAKA,MACLC,QAAiBA,iBAAiBA,MAClCC,KAAWA,WAAWA,CAAtBC,QAAAC,aAEe,QACbzS,MAAFA,uBACEgF,MAAFA,CACI/1B,OADJ,SACAyD,GACMzB,QAANA,SAGE8H,KAPF,WAQI,IAAJ,OACI,MAAJ,CACMwb,SAANA,EACMgd,YAANA,GACMmB,eAANA,GACMrB,cAANA,CACQsB,UAARA,CACA,CACUpkC,KAAVA,mBACU+2B,QAFV,SAEAsN,GACYA,EAAZA,cACAC,+BACAA,iDAIA,CACUtkC,KAAVA,mBACU+2B,QAFV,SAEAsN,GACYA,EAAZA,cACAC,8CACAA,iDAIA,CACUtkC,KAAVA,mBACU+2B,QAFV,SAEAsN,GACYA,EAAZA,cACAC,8CACAA,iDAIA,CACUtkC,KAAVA,mBACU+2B,QAFV,SAEAsN,GACYA,EAAZA,cACAC,8CACAA,iDAIA,CACUtkC,KAAVA,oBACU+2B,QAFV,SAEAsN,GACYA,EAAZA,cACAC,+CACAA,iDAIA,CACUtkC,KAAVA,oBACU+2B,QAFV,SAEAsN,GACYA,EAAZA,cACAC,+CACAA,iDAIA,CACUtkC,KAAVA,kBACU+2B,QAFV,SAEAsN,GACYA,EAAZA,cACAC,0CACAA,8CAMMpB,YAANA,KAGEzO,QAAFA,CACIsO,YADJ,WAEM,IAAN,OACA,eAIMwB,EAANA,WACMA,EAANA,iCACQC,UAARA,YACQC,UAARA,iBACQC,QAARA,mBACAz/B,MAAA,YACQs/B,EAARA,WACQA,EAARA,wBACQA,EAARA,iBAXQA,EAARA,oCAcII,WAlBJ,WAoBM,IAAN,OACMX,mCACEY,KAARA,CACUC,eAAVA,gBACUC,WAAVA,kBACUC,aAAVA,oBACUC,YAAVA,mBACUC,YAAVA,mBACUC,YAAVA,oBAEQC,QAARA,CACUC,UAAVA,WACY,OACZ,iBACA,SACAb,gBACA,IACA,OACA,UACAA,gBACA,IACAD,6CAIQe,YAARA,CAAUC,OAAVA,CAAYC,eAAZA,IACQhH,MAARA,CAAUv+B,KAAVA,oBACQwlC,QAARA,CAAUC,SAAVA,GAEQC,MAARA,CAAUnH,MAAVA,CAAYv+B,KAAZA,kBACQ2lC,MAARA,CAAUp9B,KAAVA,YACQ+8B,OAARA,iBAGIrC,YAtDJ,WAuDM,IAAN,OACM,GAAN,uCACQ,IAAR,cACU2C,MAAVA,EACU5lC,KAAVA,iBACU6lC,QAAVA,oBAEQtB,EAARA,MACAuB,KACA,+BACA,CACUtB,UAAVA,YACUC,UAAVA,iBACUC,QAAVA,kBAEA,CACUqB,aAAVA,SAGA9gC,MAAA,YACU+gC,EAAVA,QACU,IAAV,qBACYz9B,KAAZA,2CAEA,8BACA,gCACU09B,EAAVA,OACUA,EAAVA,SACA1B,6BACA,IACAD,qDACA,IACAA,qDACA,SACUliC,SAAVA,oBACU6jC,EAAVA,QACU7jC,SAAVA,oBACU6E,OAAVA,+BAGQs9B,EAARA,UAAUh8B,KAAVA,QAAUilB,QAAVA,uBAIE0Y,QAtLF,WAuLI,IAAJ,OACI3B,EAAJA,uCAAM4B,QAANA,cAAA,kBACM5B,EAANA,2BACMA,EAANA,gGACMA,EAANA,mBC9Q0X,M,aCOtXjC,GAAY,gBACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,GAAAA,G,QC0CA,IACb3O,WAAFA,CAAIyS,cAAJA,GAAIC,mBAAJA,IACE5U,MAAFA,uBAEEjnB,KAJF,WAKI,IAAJ,OACI,MAAJ,CACM5J,UAANA,EACMM,OAANA,CAAQwyB,KAARA,IACMvyB,OAANA,CACQuyB,KAARA,EAAU/B,UAAVA,EAAUnE,QAAVA,qBAAU8Y,QAAVA,UAEM5kC,UAANA,EACME,OAANA,CAAQ2kC,SAARA,MACM1kC,OAANA,CACQ0kC,SAARA,EAAU5U,UAAVA,EAAUnE,QAAVA,iBAAU8Y,QAAVA,YAEM5lC,OAANA,KACMnB,QAANA,CAIQ+c,wBAARA,EAGQP,iBAARA,EACQoF,OAARA,CACUxH,WAAVA,OACU5H,cAAVA,MACUuB,eAAVA,MACUC,eAAVA,MACUC,cAAVA,QAGMgzB,SAANA,CACQ5iB,OAARA,GACQxB,MAARA,GACQkB,MAARA,IAEMmjB,gBAANA,KAGEhS,QAAFA,CACIj0B,QADJ,SACAX,GACM,IAAN,OACA,sBACA,kBACU0kC,EAAVA,6BAEQA,EAARA,QAAUmC,MAAVA,WACQnC,EAARA,aAEA,uBACA,kBACUA,EAAVA,6BAEQA,EAARA,QAAUmC,MAAVA,WACQnC,EAARA,cAGI9jC,QAlBJ,SAkBAZ,GACM,IAAN,OACA,qBACQ0kC,EAARA,8BACAt/B,MAAA,WACUs/B,EAAVA,6BAAY4B,QAAZA,YAAA,iBACY5B,EAAZA,oBAGAoC,OAAA,eACA,sBACQpC,EAARA,8BACAt/B,MAAA,WACUs/B,EAAVA,6BAAY4B,QAAZA,YAAA,iBACY5B,EAAZA,oBAGAoC,OAAA,gBAGIrmC,SAtCJ,SAsCAT,GACM,IAAN,OACA,sBACQ0kC,EAARA,cACQA,EAARA,aAEA,uBAEQA,EAARA,oBACQA,EAARA,0BACQA,EAARA,gCACQA,EAARA,oCACQA,EAARA,cAGItjC,QArDJ,WAsDM,IAAN,OACMsjC,EAANA,qCACA,GACUA,EAAVA,yDACA,mBACcA,EAAdA,cACcA,EAAdA,oBAMI5iC,QAlEJ,WAmEM,IAAN,OACM4iC,EAANA,qCACA,GACUA,EAAVA,yDACA,mBACcA,EAAdA,cACcA,EAAdA,oBAOI/kC,UAhFJ,SAgFA2E,GACM,KAAN,aAEI4+B,YAnFJ,WAoFM,IAAN,OACMwB,EAANA,gDAAQ4B,QAARA,SAAA,kBACQ5B,EAARA,iDACQA,EAARA,iCACQA,EAARA,iCACQA,EAARA,yDAGIqC,kBA5FJ,WA6FM,IAAN,OACMrC,EAANA,4DACQA,EAARA,iCAKE2B,QA9IF,WA+II,IAAJ,OACI3B,EAAJA,cACIA,EAAJA,sBC7MyX,MCOrX,GAAY,gBACd,GACA1lC,EACAqD,GACA,EACA,KACA,KACA,MAIa,gB,2CClBf,SASa,SAAU2C,GAA6BgiC,EAAOzT,SAASvuB,EAAE,WAAWA,EAAEgiC,EAAOzT,QAAQvuB,IAA0C,EAA8C,CAAC,UAAa,WAA+B,WAAUpC,GAAuB,OAApBoC,EAAEpC,GAAGoC,EAAEiiC,WAAWrkC,EAASoC,GAAE,uCAApQ,EAA6T,SAASA,GAAG,SAASpC,EAAEoC,EAAEJ,EAAEglB,EAAEhnB,GAAGoC,EAAEtB,eAAekB,KAAKI,EAAEJ,GAAGhC,EAAEyC,MAAM,KAAKukB,IAAI5kB,EAAEA,EAAEA,EAAEkiC,SAAS,GAAGtkC,EAAEoC,EAAE,4BAA4B,CAACA,EAAE,qBAAoB,SAASA,GAAG,IAAIpC,EAAEoC,EAAEmiC,SACnfvd,EAAE5kB,EAAEoiC,IAAIla,EAAEtD,EAAErnB,SAASwB,EAAE6lB,EAAEjC,KAAKiC,EAAEyd,WAAWzd,EAAEllB,EAAEM,EAAEsiC,cAAc,SAAStiC,GAAG,IAAIA,EAAEA,EAAEsC,QAAQ,eAAe,IAAIse,MAAM,6CAA6C,EAAE5gB,EAAEQ,QAAQokB,EAAE/D,MAAM+D,EAAE2d,aAAa3d,EAAE9D,YAAY8D,EAAE5D,MAAMjiB,EAAE6jB,gBAAgB,CAAC,IAAItjB,EAAEslB,EAAE/D,KAAK7gB,EAAE,IAAIoJ,EAAE,IAAIwb,EAAE2d,YAAYjjC,EAAEkB,QAAQ4I,EAAE,IAAIwb,EAAE9D,WAAW1X,GAAG,IAAI,IAAImG,EAAE,EAAEA,EAAEnG,EAAE5I,SAAS+O,EAAEnG,EAAEmG,GAAGjQ,EAAEyhB,WAAWxR,GAAiC,OAA9BvP,EAAE,IAAI4kB,EAAE5D,KAAK,CAAC5X,GAAG,CAAC1F,KAAK1D,EAAE,KAAYjB,EAAE6jB,gBAAgB5iB,KAEvZ,OAF4ZA,EAAEA,EAAEwiC,YAAY,SAASxiC,EAAEqL,GAAG,IAAIjC,EAAEwb,EAAEnC,UAAUlT,EAAE2Y,EAAE1qB,cAAc,KAAK,GAAG,kBACnewC,GAAGA,aAAaulB,SAASnc,EAAEsZ,iBAAiB,CAAwC,GAAvC1iB,EAAE,GAAGA,EAAEoJ,EAAE,YAAYq5B,KAAKr5B,EAAEs5B,YAAc9kC,GAAG,kBAAkBoC,GAAG,IAAIA,EAAE3E,QAAQ,yBAAyB+N,GAAG,IAAIpJ,EAAEQ,UAAUR,EAAEN,EAAEM,IAAI,IAAIA,GAAE,MAAMyD,MAAM,6BAA6B,GAAG,qBAAqB8L,EAAEozB,SAASpzB,EAAEqzB,KAAK5iC,EAAEuP,EAAEozB,SAASt3B,EAAE6c,EAAE1mB,KAAK/D,YAAY8R,GAAGA,EAAEsT,QAAQqF,EAAE1mB,KAAK2gB,YAAY5S,QAAQ,IAAI,IAAIxP,EAAE6kB,EAAEie,KAAK7iC,EAAE,SAAS,GAAG,qBAAqBD,GAAG,OAAOA,EAAE,MAAM0D,MAAM,yBAA0B,MAAMkM,GAAGiV,EAAEke,SAASF,KAAK5iC,QAAQoJ,EAAEsZ,iBAAiB1iB,EACrfqL,IAAU,CAACi3B,cAAc5iC,EAAE8iC,YAAYxiC,MAAKpC,EAAEoC,EAAE,0DAA0D,IAAG,WAAW,MAAM,CAAC+iC,OAAO,yCAAyCC,oBAAoB,CAAC5C,YAAY,CAAC6C,QAAQ,cAAc7S,QAAQ,WAAWl2B,KAAKgpC,qBAAqBhD,aAAa,CAAC+C,QAAQ,eAAe7S,QAAQ,WAAWl2B,KAAKgpC,iBAAiB,CAACx/B,KAAK,iBAAiB28B,YAAY,CAAC4C,QAAQ,cAAc7S,QAAQ,WAAWl2B,KAAKgpC,iBAAiB,CAACx/B,KAAK,oBAAoBy8B,YAAY,CAAC8C,QAAQ,cACpf7S,QAAQ,WAAWl2B,KAAKgpC,iBAAiB,CAACx/B,KAAK,2BAA0B9F,EAAEoC,EAAE,kDAAkD,CAACA,EAAE,6BAA6BA,EAAE,uBAAuBA,EAAE,0BAA0BA,EAAE,6BAA6BA,EAAE,qCAAqCA,EAAE,mBAAmBA,EAAE,2DAA2DA,EAAE,uBAAsB,SAASA,EAAEpC,EAAEgnB,EAAEue,EAAEpkC,EAAEW,EAAEJ,EAAE+L,GAAG,IAAIjC,EAAEwb,EAAEwe,eAAe7zB,EAAE4zB,EAAEX,YAAYziC,EAAEL,EAAE0iC,IAAIla,EAAExoB,EAAE2jC,IAAIzjC,EAAEyL,EAAEi4B,SAASvf,EAAE1Y,EAAEvN,MAAM6mB,EAAEtZ,EAAEk4B,OAChfh4B,EAAEF,EAAEm4B,UAAUl0B,EAAEjE,EAAEo4B,MAAMzjC,EAAE0jC,kBAAkBn7B,KAAK,eAAe,eAAe,KAAK,KAAK,mBAAmB,kBAAkB,cAAc,YAAY,UAAU,UAAU,aAAa,QAAQ,eAAevI,EAAE2jC,YAAYp7B,KAAK,OAAO,WAAW,KAAK,IAASzF,EAAL+M,EAAE,GAWnN,OAXwN,SAAU+U,GAAG,SAAShnB,EAAEoC,EAAEc,GAAG,IAAIC,EAAE7G,KAAK0G,EAAE0O,EAAEvO,EAAErG,QAAQkpC,UAAU5jC,GAAGT,EAAE,SAASS,IAAG,IAAKY,EAAEijC,uBAAuBjjC,EAAE9C,MAAM8C,EAAE9C,MAAM8C,EAAEZ,GAAG+jB,EAAE,IAAG,GAAIhjB,EAAE+iC,YAAYljC,IAAIZ,EAAE,WAAW,MAAM,GAAG+jC,KAAK3kC,KAAK2B,EAAEijC,UAAUzjC,qBAAqB,UAAS,SAASP,GAChe,OADmeA,EAC1fA,EAAES,aAAa,QAAc,KAAKT,GAAG,kBAAkBA,GAAG,IAAIA,EAAE3E,QAAQ,aAAYqE,EAAEukC,MAAMljC,EAAEmjC,aAAanlC,EAAEolC,gBAAgB3jC,QAAQzB,EAAEolC,gBAAgB57B,KAAK,aAAa,UAAU,cAAc,SAAS,cAAc,mBAAmB,YAAY,UAAU,SAAS,eAAe,QAAQ,cAAc,UAAU,cAAc,WAAW,WAAW,cAAc,OAAO,OAAO,UAAU,aAAa,cAAc,kBAAkB,aAAa,gBAAgB,cAAc,MAAM,OAAO7I,EAAEukC,OAAO,oBACjfrjC,EAAE8C,MAAM3C,EAAEijC,UAAUzjC,qBAAqB,SAASC,QAAQ,kBAAkBI,EAAE8C,OAAO,oBAAoB9C,EAAE8C,MAAM1D,IAAIT,EAAEkE,MAAM,qDAAqD1C,EAAEqjC,qBAAqBxjC,EAAEE,GAAG,GAAGvB,GAAE,SAASS,IAAI,EAAEA,EAAE3E,QAAQ,mBAAmB,kBAAkBuF,EAAE8C,OAAOhE,EAAEukC,MAAM,oBAAoBrjC,EAAE8C,MAAMnE,EAAEkE,MAAM,2DAA2DmhB,EAAEyf,iBAAiBrkC,EAAE2kB,EAAE,CAAC2f,SAASvjC,EAAEwjC,eAAe3jC,GAAGrB,GAAE,WAAW,OAAOgM,EAAExK,EAAE,iCAA+B,SAASsK,EAAErL,EACxfc,GAAG,IAAIC,EAAEmnB,EAAE3nB,qBAAqB,QAAQ,GAAGK,EAAEsnB,EAAE1qB,cAAc,UAAUoD,EAAE8C,KAAK,kBAAkB9C,EAAE4jC,IAAIxkC,EAAEY,EAAE6jC,OAAO3jC,EAAEF,EAAE8jC,QAAQ,WAAW3gB,EAAE,wBAAwB/jB,IAAIe,EAAEtD,YAAYmD,GAAG,SAASkC,EAAE9C,EAAEc,EAAEjB,EAAEe,GAAG,IAAqKhD,EAAEwN,EAAShC,EAA5KrI,EAAE7G,KAAK6F,EAAE,WAAWqJ,GAAG8e,IAAI7c,GAAGzK,EAAEG,EAAE4jC,YAAY/mC,EAAEqD,UAAUmK,KAAKmE,EAAE,SAASvP,EAAEe,EAAEH,KAAKsnB,EAAEtnB,EAAEgkC,aAAaC,eAAe,+BAA+B,OAAO7kC,GAAGD,KAASkF,EAAE,KAAOoG,EAAE,EAAE6c,EAAE,EAAEnnB,EAAE+jC,aAAallC,EAAEmB,EAAE,UAAS,SAASf,GAAGoL,EAAEpL,EAAE+kC,UAAUrqC,QAAQ0O,GAAGxL,EAAEoC,EAAE+kC,UAAUf,UAAUgB,WAAU,KAAMpnC,EAAE2C,qBAAqB,UACrgB,GAAG8K,EAAEjC,EAAE5I,UAASO,EAAEkkC,gBAAgBjlC,EAAEc,GAAG,IAAI,IAAIsI,IAAIA,EAAE5I,OAAwC,YAAhCI,EAAEG,EAAE4jC,YAAY/mC,EAAEqD,UAAUmK,IAAW,IAAItK,EAAE,EAAEA,EAAEsI,EAAE5I,OAAOM,IAAI,CAAC,IAAIkE,EAAEoE,EAAEtI,IAAImE,EAAED,EAAEkgC,eAAe,+BAA+B,SAAStgB,EAAEugB,eAAelgC,EAAE,YAAY,CAAC2/B,aAAa5/B,GAAGhF,EAAEyhB,MAAMlS,EAAE1P,EAAEA,EAAEA,IAAIqoB,IAAIljB,EAAEtD,WAAWygB,YAAYnd,GAAGlE,IAAIf,MAAM,MAAMmkB,GAAGrkB,EAAEqkB,GAAGnjB,EAAE+jC,eAAe,SAASh1B,EAAE9P,EAAEc,EAAEjB,EAAEe,EAAEwI,EAAExL,EAAE2R,EAAElE,EAAED,GAAG,IAAIrK,EAAE,IAAIhB,EAAEqlC,MAAM7lC,EAAE,WAAWuC,YAAW,WAAW,IAAI8iB,EAAEsD,EAAE1qB,cAAc,UAAUI,EAAEgnB,EAAEpD,YAAYoD,EAAEpD,WAAW,MAAM,IAAI,GAAG5jB,EAAE,CAACgnB,EAAEtjB,OAChfP,EAAEO,OAAOV,EAAEgkB,EAAEvjB,MAAMN,EAAEM,MAAMT,EAAEhD,EAAEynC,UAAUtkC,EAAE,EAAE,EAAE6jB,EAAEvjB,MAAMujB,EAAEtjB,QAAQ,IAAI,IAAIvB,EAAE6kB,EAAE1C,UAAUphB,GAAGsI,EAAErJ,EAAEe,EAAEjB,EAAEe,GAAG,MAAMgP,GAAGoU,EAAEhkB,EAAEc,EAAEjB,EAAEe,SAAS2O,EAAEvP,EAAEc,EAAEjB,EAAEe,GAAG,QAAQwK,GAAGA,EAAEpL,EAAEc,EAAEjB,EAAEe,MAAKgkB,EAAE0gB,sBAAsB/X,EAAE,WAAWliB,EAAErL,EAAEc,EAAEjB,EAAEe,GAAGwK,GAAGA,EAAEpL,EAAEc,EAAEjB,EAAEe,IAAQojB,EAAE,WAAWjjB,EAAE,IAAIhB,EAAEqlC,MAAMphB,EAAEpmB,EAAEmD,EAAEwkC,YAAY,YAAYxkC,EAAE0jC,OAAOllC,EAAEwB,EAAE2jC,QAAQnX,EAAExsB,EAAEyjC,IAAIxkC,GAAGe,EAAE0jC,OAAOllC,EAAEwB,EAAE2jC,QAAQnX,EAAExsB,EAAEyjC,IAAIxkC,EAAE,SAASkL,EAAElL,GAAG,IAAIe,EAAEhB,EAAE0iB,UAAUigB,UAAU3hC,GAAG,EAAEA,EAAE1F,QAAQ,WAAW,EAAE0F,EAAE1F,QAAQ,UAAU,IAAI,IAAI0F,IAAI,IAAIf,EAAE3E,QAAQ,kBAAkB,OAAOupB,EAAE4gB,OAAO5iB,gBAAgB,IAAI7iB,EAAEihB,KAAK,CAAChhB,GAC/gB,CAAC0D,KAAK,kCAAkC,MAAM7D,IAAI,MAAM,oCAAoC4lC,mBAAmBzlC,GAAG,SAASioB,EAAEjoB,EAAE4kB,GAAG,IAAI7jB,EAAEf,EAAEqB,MAAMqkC,QAAQlpC,MAAM,EAAEooB,EAAEA,EAAE5kB,EAAEsB,OAAOokC,QAAQlpC,MAAM,EAAEooB,EAAE7jB,EAAE,IAAIhB,EAAE4lC,MAAM/gB,EAAE7jB,EAAE,IAAI,IAAI,KAAK,CAACA,EAAE6jB,IAAI,GAAGte,QAAQlH,KAAKY,EAAEohB,iBAAiB,2BAA0B,SAASphB,GAAGA,EAAE0B,WAAWygB,YAAYniB,MAAK4kB,EAAE5kB,EAAEohB,iBAAiB,kBAAkB,IAAI,IAAIxgB,EAAE,EAAEA,EAAEgkB,EAAEpkB,OAAOI,IAAI,IAAI,IAAIE,EAAE8jB,EAAEhkB,GAAGwgB,iBAAiB,QAAQxjB,EAAE,EAAEA,EAAEkD,EAAEN,QAAQ,MAAMM,EAAElD,GAAG6C,aAAa,WAAW,MAAMK,EAAElD,EAAE,GAAG6C,aAAa,WAAWK,EAAElD,GAAG+xB,SACnhB/xB,IAAsK,MAAlK,GAAG0I,QAAQlH,KAAKY,EAAEohB,iBAAiB,UAAS,SAASphB,GAAG,MAAWA,EAAE4lC,cAAc5lC,EAAE4lC,YAAY,IAAI5lC,EAAEkB,aAAa,MAAM,OAAMnB,EAAE8lC,QAAQ7lC,EAAEe,EAAE,CAAC+kC,eAAc,IAAY/kC,EAAEglC,OAAO,iBAAiBnhB,EAAEohB,cAAc,GAAGphB,EAAE4gB,OAAOzlC,EAAE4iB,KAAK5iB,EAAEsiC,WAAWtiC,EAAE6kB,EAAE0gB,oBAAoB5lC,EAAEukC,KAAK,IAAI,EAAErf,EAAEqhB,QAAQ,SAASjmC,GAAG,IAAI,IAAI6P,EAAExU,QAAQ2E,GAAG,CAAC6P,EAAEtH,KAAKvI,GAAG,IAAI4kB,EAAE5kB,EAAEvB,UAAUmmB,EAAEwf,qBAAqBthC,EAAE8hB,EAAEse,iBAAiBtlC,EAAE0R,GAAE,EAAGlG,EAAEw6B,UAAUtkC,GAAG,OAAOU,GAAG4kB,EAAEyf,iBAAiB,SAAStjC,EAAEnD,EAAEiC,EAAEe,GAAG,IAAIE,EAAEonB,EAAE1qB,cAAc,OAAOkC,EAAE9B,EAAE8F,MACtf,YAAY9D,GAAGhC,EAAE0mC,UAAU,SAAS,KAAK,kBAAkB5kC,EAAE,MAAMA,EAAE0N,MAAM,KAAK,IAAIrO,EAAEnB,EAAE6jB,OAAO,EAAErW,EAAExN,EAAEmlC,QAAQ35B,EAAEw6B,UAAUb,OAAO99B,GAAE,EAAGmG,EAAE,MAAMA,EAAE8wB,OAAO,GAAG9wB,EAAE,IAAIA,EAAE,IAAItI,EAAE,WAAW9C,EAAEkmC,eAAeplC,EAAEC,GAAG,IAAqCnD,EAAjCgnB,EAAE9jB,EAAEP,qBAAqB,QAAU,GAAG+F,QAAQlH,KAAKwlB,GAAE,SAAS5kB,GAAG,CAAC,cAAc,aAAasG,SAAQ,SAASse,GAAG,IAAI,IAAI7jB,EAAEf,EAAEe,GAAGA,IAAID,GAAG,CAAC,GAAGC,EAAEI,MAAMyjB,GAAG,CAAC5kB,EAAEmB,MAAMyjB,GAAG7jB,EAAEI,MAAMyjB,GAAG,MAAM7jB,EAAEA,EAAEW,eAAc1B,EAAEmB,MAAM,eAAenB,EAAEmB,MAAM,gBAAgBnB,EAAEmB,MAAM,eAAeiM,MAAM,KAAKwF,QAAQ,GAAGhV,EAAEoC,EAAEO,qBAAqB,SACtgB,GAAG+F,QAAQlH,KAAKxB,GAAE,SAASgnB,GAAG5kB,EAAEmiB,YAAYyC,SAAOA,EAAEqD,EAAEnnB,EAAEW,WAAW,GAAG,IAAI8N,EAAEqV,EAAEhlB,GAAGgB,GAAGA,IAAI,MAAMgP,GAAG/P,EAAE+P,KAAK,GAAG,kBAAkBlQ,EAAE,IAAI,GAAG,qBAAqBK,EAAE0iB,UAAUC,iBAAiB,CAAC,IAAIpjB,EAAE,IAAI6mC,cAAc7mC,EAAE8mC,OAAOrlC,GAAG,IAAIqP,EAAE9Q,EAAE+mC,QAAQ,sBAAsBj2B,EAAElF,EAAEnK,GAAGwO,EAAEa,EAAExQ,GAAGgB,GAAGA,IAAI,MAAMsjB,GAAGrkB,EAAEqkB,QAAQ,GAAG,oBAAoBxkB,EAAEK,EAAE4lC,OAAO5lC,EAAE8lC,QAAQ/iC,KAAKmC,GAAE,EAAGoG,EAAED,EAAE,YAAW,WAAWC,EAAED,EAAE,cAAa,WAAWtI,eAAa,CAACsN,EAAElF,EAAEnK,GAAG,IAAIiE,EAAE,WAAW,IAAI4f,EAAE4gB,OAAO1iB,gBAAgB1S,GAAG,MAAM8T,MAAMpU,EAAEM,EAAE1Q,EAAE,GAAGX,GACnf,SAASiB,GAAG,IAAIuP,EAAEvP,EAAEJ,GAAGgB,GAAGA,IAAI,MAAM6O,GAAG5P,EAAE4P,OAAK,WAAW,IAAIzP,EAAEkoB,EAAE1qB,cAAc,UAAUonB,EAAE5kB,EAAEwhB,WAAW,MAAM5jB,EAAEmD,EAAE6f,MAAM,yCAAyC,GAAG7hB,EAAE+B,EAAEC,EAAE6f,MAAM,0CAA0C,GAAG7hB,EAAEqK,EAAE,WAAWrJ,EAAEumC,MAAMC,MAAMC,WAAW5hB,EAAE7jB,GAAG0lC,QAAQ,IAAIl3B,EAAExP,EAAE0iB,UAAUC,iBAAiB1iB,EAAE0mC,WAAW1mC,EAAEkiB,UAAUxiB,GAAGE,GAAGgB,GAAGA,IAAI,MAAM4O,GAAG3P,EAAE2P,GAAG,QAAQxK,MAAMhF,EAAEqB,MAAMzD,EAAEoC,EAAEsB,OAAOR,EAAEf,EAAEumC,MAAMl9B,KAAKnE,GAAE,EAAGoG,EAAED,EAAE,YAAW,WAAWhC,UAAQvJ,EAAEA,GAAE,WAAWoF,GAAGD,SAAQ4f,EAAE+hB,UAAUt7B,EAAEuZ,EAAEugB,eAC1er1B,EAAE8U,EAAEgiB,aAAa17B,EAAE0Z,EAAEiiB,SAAS5e,EAXuO,CAWnOnlB,IAAIA,EAAE,KAAYA,KAAIlF,EAAEoC,EAAE,2CAA2C,CAACA,EAAE,mBAAmBA,EAAE,qDAAoD,SAASA,EAAEpC,GAAGoC,EAAEqkC,iBAAiBzmC,EAAEymC,iBAAiBzmC,EAAEqoC,QAAQjmC,EAAE8mC,c,oCCfpO,QACX5H,iBAAkB,SAAU+C,GACxB,IAAI8E,EAAW3kC,OAAO0gC,SAASiE,SAC/B9E,EAAWvF,WAAW,CAClBqD,KAAM,CAEFiH,mBAAoB,SACpBC,aAAc,IACd/G,aAAc,WACdC,YAAa,UACbC,YAAa,UACbC,YAAa,UACb6G,YAAa,mBACbC,YAAa,QACbhmB,QAAS,SACTimB,OAAQ,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,OAC5EC,OAAQ,OACRC,eAAgB,KAChBrH,WAAY,OACZsH,UAAW,SACXC,eAAgB,UAChBC,YAAa,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,OACjFC,aAAc,IACdC,SAAU,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAGrDC,kBAAmB,OACnBC,gBAAiB,OACjBC,kBAAmB,KAGnBC,OAAQ,KACRC,QAAS,MAGb5I,OAAQ,CACJC,QAAQ,EAER4I,eAAgBlB,EAAW,sDAC3BmB,qBAAsBnB,EAAW,KAGrCrN,MAAO,CACHv+B,KAAM,QAGVmlC,QAAS,CACL6H,qBAAsB,CAClBC,YAAa,cACbC,OAAQ,WACRC,OAAQ,QACRC,KAAM,QACNC,IAAK,WACLC,KAAM,0BACNC,MAAO,QACPC,KAAM,OAId/E,UAAW,CACPgF,IAAK7B,EAAW,8BAGpBpG,QAAS,CACLxlC,KAAM,oBACNynC,KAAM,iCAGV9B,MAAO,CACHqH,qBAAsB,CAClBC,YAAa,cACbC,OAAQ,WACRC,OAAQ,QACRC,KAAM,QACNC,IAAK,WACLC,KAAM,QACNC,MAAO,QACPC,KAAM,OAIdE,cAAe,CACXC,gBAAiB,WACjBC,YAAa,CACT1nC,MAAO,OACPF,MAAO,CACH6nC,SAAU,OACVC,QAAS,QAGjBC,QAAS,CAAC,CACNxlC,KAAM,QACNylC,MAAO,EACPhuC,KAAM,KACP,CACCuI,KAAM,QACNylC,MAAO,EACPhuC,KAAM,MACP,CACCuI,KAAM,QACNylC,MAAO,EACPhuC,KAAM,MACP,CACCuI,KAAM,MACNvI,KAAM,OACP,CACCuI,KAAM,OACNylC,MAAO,EACPhuC,KAAM,KACP,CACCuI,KAAM,MACNvI,KAAM,a;;;;;;CCpH1B,WACC,aAEA,IAAIoC,EAA6B,qBAAX6E,QAAqD,qBAApBA,OAAO7E,SAA2B6E,OAAO7E,SAAW,GACvG6rC,EAA8CpH,EAAOzT,QAErDxzB,EAAK,WAsDR,IArDA,IAAIsuC,EAEAC,EAAQ,CACX,CACC,oBACA,iBACA,oBACA,oBACA,mBACA,mBAGD,CACC,0BACA,uBACA,0BACA,0BACA,yBACA,yBAID,CACC,0BACA,yBACA,iCACA,yBACA,yBACA,yBAGD,CACC,uBACA,sBACA,uBACA,uBACA,sBACA,sBAED,CACC,sBACA,mBACA,sBACA,sBACA,qBACA,sBAIExqC,EAAI,EACJe,EAAIypC,EAAM9oC,OACV+oC,EAAM,GAEHzqC,EAAIe,EAAGf,IAEb,GADAuqC,EAAMC,EAAMxqC,GACRuqC,GAAOA,EAAI,KAAM9rC,EAAU,CAC9B,IAAKuB,EAAI,EAAGA,EAAIuqC,EAAI7oC,OAAQ1B,IAC3ByqC,EAAID,EAAM,GAAGxqC,IAAMuqC,EAAIvqC,GAExB,OAAOyqC,EAIT,OAAO,EAhEC,GAmELC,EAAe,CAClBC,OAAQ1uC,EAAG2uC,iBACX5rC,MAAO/C,EAAG4uC,iBAGPC,EAAa,CAChBC,QAAS,SAAUC,EAASpvC,GAC3B,OAAO,IAAI8E,QAAQ,SAAUW,EAAS4pC,GACrC,IAAIC,EAAsB,WACzB9vC,KAAKsiC,IAAI,SAAUwN,GACnB7pC,KACC4M,KAAK7S,MAEPA,KAAK8B,GAAG,SAAUguC,GAElBF,EAAUA,GAAWvsC,EAAS0E,gBAE9B,IAAIgoC,EAAgBH,EAAQ/uC,EAAGmvC,mBAAmBxvC,GAE9CuvC,aAAyBzqC,SAC5ByqC,EAAc7pC,KAAK4pC,GAAqBlI,MAAMiI,IAE9Ch9B,KAAK7S,QAERiwC,KAAM,WACL,OAAO,IAAI3qC,QAAQ,SAAUW,EAAS4pC,GACrC,GAAK7vC,KAAKuiC,aAAV,CAKA,IAAI2N,EAAmB,WACtBlwC,KAAKsiC,IAAI,SAAU4N,GACnBjqC,KACC4M,KAAK7S,MAEPA,KAAK8B,GAAG,SAAUouC,GAElB,IAAIH,EAAgB1sC,EAASxC,EAAGsvC,kBAE5BJ,aAAyBzqC,SAC5ByqC,EAAc7pC,KAAKgqC,GAAkBtI,MAAMiI,QAd3C5pC,KAgBA4M,KAAK7S,QAERkxB,OAAQ,SAAU0e,EAASpvC,GAC1B,OAAOR,KAAKuiC,aAAeviC,KAAKiwC,OAASjwC,KAAK2vC,QAAQC,EAASpvC,IAEhE4vC,SAAU,SAAU7tC,GACnBvC,KAAK8B,GAAG,SAAUS,IAEnBioC,QAAS,SAAUjoC,GAClBvC,KAAK8B,GAAG,QAASS,IAElBT,GAAI,SAAUuuC,EAAO9tC,GACpB,IAAI+tC,EAAYhB,EAAae,GACzBC,GACHjtC,EAASqE,iBAAiB4oC,EAAW/tC,GAAU,IAGjD+/B,IAAK,SAAU+N,EAAO9tC,GACrB,IAAI+tC,EAAYhB,EAAae,GACzBC,GACHjtC,EAASwE,oBAAoByoC,EAAW/tC,GAAU,IAGpDguC,IAAK1vC,GAGDA,GAULiD,OAAOG,iBAAiByrC,EAAY,CACnCnN,aAAc,CACbiO,IAAK,WACJ,OAAOC,QAAQptC,EAASxC,EAAG6vC,sBAG7Bd,QAAS,CACR9qC,YAAY,EACZ0rC,IAAK,WACJ,OAAOntC,EAASxC,EAAG6vC,qBAGrBC,UAAW,CACV7rC,YAAY,EACZ0rC,IAAK,WAEJ,OAAOC,QAAQptC,EAASxC,EAAG+vC,wBAK1B1B,EACHpH,EAAOzT,QAAUqb,EAEjBxnC,OAAOwnC,WAAaA,GAjChBR,EACHpH,EAAOzT,QAAU,CAACsc,WAAW,GAE7BzoC,OAAOwnC,WAAa,CAACiB,WAAW,IAlJnC,I;;;;;;CCAC,SAAUzL,EAAQ2L,GACgD/I,EAAOzT,QAAUwc,KADpF,CAIE7wC,GAAM,WAAe;;;;;;;;;;;;;;oFAkBnB,IAAI8wC,EAAgB,SAASpqC,EAAGgkB,GAI5B,OAHAomB,EAAgBhtC,OAAOitC,gBAClB,CAAEC,UAAW,cAAgB59B,OAAS,SAAU1M,EAAGgkB,GAAKhkB,EAAEsqC,UAAYtmB,IACvE,SAAUhkB,EAAGgkB,GAAK,IAAK,IAAIxZ,KAAKwZ,EAAO5mB,OAAOS,UAAUC,eAAeU,KAAKwlB,EAAGxZ,KAAIxK,EAAEwK,GAAKwZ,EAAExZ,KACzF4/B,EAAcpqC,EAAGgkB,IAG5B,SAASumB,EAAUvqC,EAAGgkB,GAClB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI5d,UAAU,uBAAyBue,OAAOX,GAAK,iCAE7D,SAASwmB,IAAOlxC,KAAKmxC,YAAczqC,EADnCoqC,EAAcpqC,EAAGgkB,GAEjBhkB,EAAEnC,UAAkB,OAANmmB,EAAa5mB,OAAOstC,OAAO1mB,IAAMwmB,EAAG3sC,UAAYmmB,EAAEnmB,UAAW,IAAI2sC,GAGnF,IAAIG,EAAW,WAQX,OAPAA,EAAWvtC,OAAOysB,QAAU,SAAkB1rB,GAC1C,IAAK,IAAIY,EAAGb,EAAI,EAAGY,EAAI0tB,UAAU5sB,OAAQ1B,EAAIY,EAAGZ,IAE5C,IAAK,IAAIsM,KADTzL,EAAIytB,UAAUtuB,GACAa,EAAO3B,OAAOS,UAAUC,eAAeU,KAAKO,EAAGyL,KAAIrM,EAAEqM,GAAKzL,EAAEyL,IAE9E,OAAOrM,GAEJwsC,EAASlrC,MAAMnG,KAAMkzB,YAGhC,SAASoe,EAAUC,EAASC,EAAY/7B,EAAGg8B,GACvC,SAASC,EAAMpvC,GAAS,OAAOA,aAAiBmT,EAAInT,EAAQ,IAAImT,GAAE,SAAUxP,GAAWA,EAAQ3D,MAC/F,OAAO,IAAKmT,IAAMA,EAAInQ,WAAU,SAAUW,EAAS4pC,GAC/C,SAAS8B,EAAUrvC,GAAS,IAAMsvC,EAAKH,EAAU7rC,KAAKtD,IAAW,MAAOoB,IAAKmsC,EAAOnsC,KACpF,SAASmuC,EAASvvC,GAAS,IAAMsvC,EAAKH,EAAU,SAASnvC,IAAW,MAAOoB,IAAKmsC,EAAOnsC,KACvF,SAASkuC,EAAKE,GAAUA,EAAO9rC,KAAOC,EAAQ6rC,EAAOxvC,OAASovC,EAAMI,EAAOxvC,OAAO4D,KAAKyrC,EAAWE,GAClGD,GAAMH,EAAYA,EAAUtrC,MAAMorC,EAASC,GAAc,KAAK5rC,WAItE,SAASmsC,EAAYR,EAASjqC,GAC1B,IAAsGV,EAAGmE,EAAGlG,EAAGqK,EAA3GpI,EAAI,CAAEub,MAAO,EAAG2vB,KAAM,WAAa,GAAW,EAAPntC,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOotC,KAAM,GAAIC,IAAK,IAChG,OAAOhjC,EAAI,CAAEtJ,KAAMusC,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXzlC,SAA0BwC,EAAExC,OAAO0lC,UAAY,WAAa,OAAOpyC,OAAUkP,EACvJ,SAASijC,EAAK3sC,GAAK,OAAO,SAAUJ,GAAK,OAAOwsC,EAAK,CAACpsC,EAAGJ,KACzD,SAASwsC,EAAKS,GACV,GAAIzrC,EAAG,MAAM,IAAIkG,UAAU,mCAC3B,MAAOhG,EAAG,IACN,GAAIF,EAAI,EAAGmE,IAAMlG,EAAY,EAARwtC,EAAG,GAAStnC,EAAE,UAAYsnC,EAAG,GAAKtnC,EAAE,YAAclG,EAAIkG,EAAE,YAAclG,EAAEK,KAAK6F,GAAI,GAAKA,EAAEnF,SAAWf,EAAIA,EAAEK,KAAK6F,EAAGsnC,EAAG,KAAKrsC,KAAM,OAAOnB,EAE3J,OADIkG,EAAI,EAAGlG,IAAGwtC,EAAK,CAAS,EAARA,EAAG,GAAQxtC,EAAEvC,QACzB+vC,EAAG,IACP,KAAK,EAAG,KAAK,EAAGxtC,EAAIwtC,EAAI,MACxB,KAAK,EAAc,OAAXvrC,EAAEub,QAAgB,CAAE/f,MAAO+vC,EAAG,GAAIrsC,MAAM,GAChD,KAAK,EAAGc,EAAEub,QAAStX,EAAIsnC,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKvrC,EAAEorC,IAAII,MAAOxrC,EAAEmrC,KAAKK,MAAO,SACxC,QACI,GAAMztC,EAAIiC,EAAEmrC,OAAMptC,EAAIA,EAAEyB,OAAS,GAAKzB,EAAEA,EAAEyB,OAAS,MAAkB,IAAV+rC,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEvrC,EAAI,EAAG,SACjG,GAAc,IAAVurC,EAAG,MAAcxtC,GAAMwtC,EAAG,GAAKxtC,EAAE,IAAMwtC,EAAG,GAAKxtC,EAAE,IAAM,CAAEiC,EAAEub,MAAQgwB,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYvrC,EAAEub,MAAQxd,EAAE,GAAI,CAAEiC,EAAEub,MAAQxd,EAAE,GAAIA,EAAIwtC,EAAI,MAC7D,GAAIxtC,GAAKiC,EAAEub,MAAQxd,EAAE,GAAI,CAAEiC,EAAEub,MAAQxd,EAAE,GAAIiC,EAAEorC,IAAI7jC,KAAKgkC,GAAK,MACvDxtC,EAAE,IAAIiC,EAAEorC,IAAII,MAChBxrC,EAAEmrC,KAAKK,MAAO,SAEtBD,EAAK/qC,EAAKpC,KAAKqsC,EAASzqC,GAC1B,MAAOpD,IAAK2uC,EAAK,CAAC,EAAG3uC,IAAIqH,EAAI,EAAK,QAAUnE,EAAI/B,EAAI,EACtD,GAAY,EAARwtC,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE/vC,MAAO+vC,EAAG,GAAKA,EAAG,QAAK,EAAQrsC,MAAM,IAIlF,SAASusC,EAAc1lC,EAAID,EAAM4lC,GAC7B,GAAIA,GAA6B,IAArBtf,UAAU5sB,OAAc,IAAK,IAA4BmsC,EAAxB7tC,EAAI,EAAGe,EAAIiH,EAAKtG,OAAY1B,EAAIe,EAAGf,KACxE6tC,GAAQ7tC,KAAKgI,IACR6lC,IAAIA,EAAKr/B,MAAM7O,UAAUy9B,MAAM98B,KAAK0H,EAAM,EAAGhI,IAClD6tC,EAAG7tC,GAAKgI,EAAKhI,IAGrB,OAAOiI,EAAGunB,OAAOqe,GAAM7lC,GAoG3B,IAjGA,IAAI8lC,EAAwB,WACxB,SAASA,EAAO/jC,EAAME,EAAK1H,EAAOC,GAC9BpH,KAAK2O,KAAOA,EACZ3O,KAAK6O,IAAMA,EACX7O,KAAKmH,MAAQA,EACbnH,KAAKoH,OAASA,EAelB,OAbAsrC,EAAOnuC,UAAUsvB,IAAM,SAAU/oB,EAAGC,EAAG1F,EAAGQ,GACtC,OAAO,IAAI6sC,EAAO1yC,KAAK2O,KAAO7D,EAAG9K,KAAK6O,IAAM9D,EAAG/K,KAAKmH,MAAQ9B,EAAGrF,KAAKoH,OAASvB,IAEjF6sC,EAAOC,eAAiB,SAAUC,EAASC,GACvC,OAAO,IAAIH,EAAOG,EAAWlkC,KAAOikC,EAAQE,aAAankC,KAAMkkC,EAAWhkC,IAAM+jC,EAAQE,aAAajkC,IAAKgkC,EAAW1rC,MAAO0rC,EAAWzrC,SAE3IsrC,EAAOK,gBAAkB,SAAUH,EAASI,GACxC,IAAIC,EAAU7/B,MAAMxG,KAAKomC,GAAa/uB,MAAK,SAAUivB,GAAQ,OAAsB,IAAfA,EAAK/rC,SACzE,OAAO8rC,EACD,IAAIP,EAAOO,EAAQtkC,KAAOikC,EAAQE,aAAankC,KAAMskC,EAAQpkC,IAAM+jC,EAAQE,aAAajkC,IAAKokC,EAAQ9rC,MAAO8rC,EAAQ7rC,QACpHsrC,EAAOS,OAEjBT,EAAOS,MAAQ,IAAIT,EAAO,EAAG,EAAG,EAAG,GAC5BA,EApBgB,GAsBvBU,EAAc,SAAUR,EAAS9xC,GACjC,OAAO4xC,EAAOC,eAAeC,EAAS9xC,EAAKqiB,0BAE3CkwB,EAAoB,SAAUhwC,GAC9B,IAAIiE,EAAOjE,EAASiE,KAChBS,EAAkB1E,EAAS0E,gBAC/B,IAAKT,IAASS,EACV,MAAM,IAAIwB,MAAM,+BAEpB,IAAIpC,EAAQkJ,KAAKiG,IAAIjG,KAAKiG,IAAIhP,EAAKgsC,YAAavrC,EAAgBurC,aAAcjjC,KAAKiG,IAAIhP,EAAKyE,YAAahE,EAAgBgE,aAAcsE,KAAKiG,IAAIhP,EAAKyf,YAAahf,EAAgBgf,cAC9K3f,EAASiJ,KAAKiG,IAAIjG,KAAKiG,IAAIhP,EAAKisC,aAAcxrC,EAAgBwrC,cAAeljC,KAAKiG,IAAIhP,EAAK0E,aAAcjE,EAAgBiE,cAAeqE,KAAKiG,IAAIhP,EAAK0f,aAAcjf,EAAgBif,eACxL,OAAO,IAAI0rB,EAAO,EAAG,EAAGvrC,EAAOC,IAQ/BosC,EAAiB,SAAUC,GAC3B,IAAIC,EAAa,GACb9uC,EAAI,EACJ0B,EAASmtC,EAAIntC,OACjB,MAAO1B,EAAI0B,EAAQ,CACf,IAAIhE,EAAQmxC,EAAI5sB,WAAWjiB,KAC3B,GAAItC,GAAS,OAAUA,GAAS,OAAUsC,EAAI0B,EAAQ,CAClD,IAAIqtC,EAAQF,EAAI5sB,WAAWjiB,KACF,SAAZ,MAAR+uC,GACDD,EAAWrlC,OAAe,KAAR/L,IAAkB,KAAe,KAARqxC,GAAiB,QAG5DD,EAAWrlC,KAAK/L,GAChBsC,UAIJ8uC,EAAWrlC,KAAK/L,GAGxB,OAAOoxC,GAEPE,EAAkB,WAElB,IADA,IAAIF,EAAa,GACRG,EAAK,EAAGA,EAAK3gB,UAAU5sB,OAAQutC,IACpCH,EAAWG,GAAM3gB,UAAU2gB,GAE/B,GAAIxoB,OAAOyoB,cACP,OAAOzoB,OAAOyoB,cAAc3tC,MAAMklB,OAAQqoB,GAE9C,IAAIptC,EAASotC,EAAWptC,OACxB,IAAKA,EACD,MAAO,GAEX,IAAIytC,EAAY,GACZ9wC,GAAS,EACT6uC,EAAS,GACb,QAAS7uC,EAAQqD,EAAQ,CACrB,IAAI0tC,EAAYN,EAAWzwC,GACvB+wC,GAAa,MACbD,EAAU1lC,KAAK2lC,IAGfA,GAAa,MACbD,EAAU1lC,KAAyB,OAAnB2lC,GAAa,IAAeA,EAAY,KAAS,SAEjE/wC,EAAQ,IAAMqD,GAAUytC,EAAUztC,OAAS,SAC3CwrC,GAAUzmB,OAAO4oB,aAAa9tC,MAAMklB,OAAQ0oB,GAC5CA,EAAUztC,OAAS,GAG3B,OAAOwrC,GAEPoC,EAAU,mEAEVC,EAAiC,qBAAfvtB,WAA6B,GAAK,IAAIA,WAAW,KAC9DwtB,EAAM,EAAGA,EAAMF,EAAQ5tC,OAAQ8tC,IACpCD,EAASD,EAAQrtB,WAAWutB,IAAQA,EAWxC,IAHA,IAAIC,EAAY,mEAEZC,EAAmC,qBAAf1tB,WAA6B,GAAK,IAAIA,WAAW,KAChE2tB,EAAQ,EAAGA,EAAQF,EAAU/tC,OAAQiuC,IAC1CD,EAAWD,EAAUxtB,WAAW0tB,IAAUA,EA6L9C,IA3LA,IAAIC,EAAW,SAAUC,GACrB,IAA8D7vC,EAAU8vC,EAAUC,EAAUC,EAAUC,EAAlGC,EAA+B,IAAhBL,EAAOnuC,OAAeyuC,EAAMN,EAAOnuC,OAAW4K,EAAI,EACnC,MAA9BujC,EAAOA,EAAOnuC,OAAS,KACvBwuC,IACkC,MAA9BL,EAAOA,EAAOnuC,OAAS,IACvBwuC,KAGR,IAAIE,EAAgC,qBAAhB3M,aACM,qBAAfzhB,YAC+B,qBAA/BA,WAAWriB,UAAUy9B,MAC1B,IAAIqG,YAAYyM,GAChB,IAAI1hC,MAAM0hC,GACZG,EAAQ7hC,MAAMC,QAAQ2hC,GAAUA,EAAS,IAAIpuB,WAAWouB,GAC5D,IAAKpwC,EAAI,EAAGA,EAAImwC,EAAKnwC,GAAK,EACtB8vC,EAAWJ,EAAWG,EAAO5tB,WAAWjiB,IACxC+vC,EAAWL,EAAWG,EAAO5tB,WAAWjiB,EAAI,IAC5CgwC,EAAWN,EAAWG,EAAO5tB,WAAWjiB,EAAI,IAC5CiwC,EAAWP,EAAWG,EAAO5tB,WAAWjiB,EAAI,IAC5CqwC,EAAM/jC,KAAQwjC,GAAY,EAAMC,GAAY,EAC5CM,EAAM/jC,MAAoB,GAAXyjC,IAAkB,EAAMC,GAAY,EACnDK,EAAM/jC,MAAoB,EAAX0jC,IAAiB,EAAiB,GAAXC,EAE1C,OAAOG,GAEPE,EAAoB,SAAUF,GAG9B,IAFA,IAAI1uC,EAAS0uC,EAAO1uC,OAChB2uC,EAAQ,GACHrwC,EAAI,EAAGA,EAAI0B,EAAQ1B,GAAK,EAC7BqwC,EAAM5mC,KAAM2mC,EAAOpwC,EAAI,IAAM,EAAKowC,EAAOpwC,IAE7C,OAAOqwC,GAEPE,EAAoB,SAAUH,GAG9B,IAFA,IAAI1uC,EAAS0uC,EAAO1uC,OAChB2uC,EAAQ,GACHrwC,EAAI,EAAGA,EAAI0B,EAAQ1B,GAAK,EAC7BqwC,EAAM5mC,KAAM2mC,EAAOpwC,EAAI,IAAM,GAAOowC,EAAOpwC,EAAI,IAAM,GAAOowC,EAAOpwC,EAAI,IAAM,EAAKowC,EAAOpwC,IAE7F,OAAOqwC,GAIPG,EAAmB,EAEnBC,EAAmB,GAOnBC,EAAuB,EAKvBC,EAAqBF,EAAmBD,EAOxCI,EAA+B,OAAWJ,EAE1CK,EAA6B,GAAKL,EAElCM,EAAqBD,EAA6B,EAClDE,EAA+B,MAASP,EAExCQ,EAA8BJ,EAA+BG,EAK7DE,EAAkCD,EAClCE,EAAkC,GAalCC,EAA0BF,EAAkCC,EAK5DE,EAAsC,OAAWX,EAEjDY,EAAgC,GAAKV,EAErCW,EAAwBD,EAAgC,EACxDE,EAAY,SAAUC,EAAM7J,EAAO8J,GACnC,OAAID,EAAKpU,MACEoU,EAAKpU,MAAMuK,EAAO8J,GAEtB,IAAIC,YAAYljC,MAAM7O,UAAUy9B,MAAM98B,KAAKkxC,EAAM7J,EAAO8J,KAE/DE,EAAY,SAAUH,EAAM7J,EAAO8J,GACnC,OAAID,EAAKpU,MACEoU,EAAKpU,MAAMuK,EAAO8J,GAEtB,IAAIG,YAAYpjC,MAAM7O,UAAUy9B,MAAM98B,KAAKkxC,EAAM7J,EAAO8J,KAE/DI,EAAyB,SAAUhC,EAAQiC,GAC3C,IAAI1B,EAASR,EAASC,GAClBkC,EAASvjC,MAAMC,QAAQ2hC,GAAUG,EAAkBH,GAAU,IAAIwB,YAAYxB,GAC7E4B,EAASxjC,MAAMC,QAAQ2hC,GAAUE,EAAkBF,GAAU,IAAIsB,YAAYtB,GAC7E6B,EAAe,GACf5zC,EAAQkzC,EAAUS,EAAQC,EAAe,EAAGF,EAAO,GAAK,GACxDlrC,EAAqB,IAAdkrC,EAAO,GACZR,EAAUS,GAASC,EAAeF,EAAO,IAAM,GAC/CJ,EAAUI,EAAQtmC,KAAKymC,MAAMD,EAAeF,EAAO,IAAM,IAC/D,OAAO,IAAII,EAAOJ,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAI1zC,EAAOwI,IAErEsrC,EAAwB,WACxB,SAASC,EAAKC,EAAcC,EAAYC,EAAWC,EAAgBn0C,EAAOwI,GACtEzL,KAAKi3C,aAAeA,EACpBj3C,KAAKk3C,WAAaA,EAClBl3C,KAAKm3C,UAAYA,EACjBn3C,KAAKo3C,eAAiBA,EACtBp3C,KAAKiD,MAAQA,EACbjD,KAAKyL,KAAOA,EA8ChB,OAtCAurC,EAAKzyC,UAAUisC,IAAM,SAAUwD,GAC3B,IAAIqD,EACJ,GAAIrD,GAAa,EAAG,CAChB,GAAIA,EAAY,OAAYA,EAAY,OAAWA,GAAa,MAM5D,OAFAqD,EAAKr3C,KAAKiD,MAAM+wC,GAAaoB,GAC7BiC,GAAMA,GAAM/B,IAAyBtB,EAAY0B,GAC1C11C,KAAKyL,KAAK4rC,GAErB,GAAIrD,GAAa,MASb,OAFAqD,EAAKr3C,KAAKiD,MAAMuyC,GAAiCxB,EAAY,OAAWoB,IACxEiC,GAAMA,GAAM/B,IAAyBtB,EAAY0B,GAC1C11C,KAAKyL,KAAK4rC,GAErB,GAAIrD,EAAYh0C,KAAKm3C,UAOjB,OALAE,EAAKtB,EAA0BC,GAAuChC,GAAaqB,GACnFgC,EAAKr3C,KAAKiD,MAAMo0C,GAChBA,GAAOrD,GAAaoB,EAAoBc,EACxCmB,EAAKr3C,KAAKiD,MAAMo0C,GAChBA,GAAMA,GAAM/B,IAAyBtB,EAAY0B,GAC1C11C,KAAKyL,KAAK4rC,GAErB,GAAIrD,GAAa,QACb,OAAOh0C,KAAKyL,KAAKzL,KAAKo3C,gBAI9B,OAAOp3C,KAAKk3C,YAETF,EArDgB,GA6DvBM,EAAU,mEAEVC,EAAiC,qBAAf3wB,WAA6B,GAAK,IAAIA,WAAW,KAC9D4wB,EAAM,EAAGA,EAAMF,EAAQhxC,OAAQkxC,IACpCD,EAASD,EAAQzwB,WAAW2wB,IAAQA,EAGxC,IAAIC,EAAW,2pnDAEXC,EAAyB,GAEzBC,EAAK,EACLC,EAAO,EACPC,EAAO,EACPC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,GACLC,EAAQ,GAERC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GAELC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GAELC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GAELC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAO,GACPC,GAAK,GACLC,GAAK,GACLC,GAAQ,CAAC,KAAQ,OACjBC,GAAkB,IAClBC,GAAsB,IACtBC,GAAkB,IAClBC,GAAgBhE,EAAuBgB,GACvCiD,GAAc,CAACnB,GAAIM,IACnBc,GAAmB,CAAChD,EAAIC,EAAMC,EAAME,GACpC6C,GAAU,CAACzC,EAAIF,GACf4C,GAAiB,CAACzB,GAAID,IACtB2B,GAAcH,GAAiBvmB,OAAOwmB,IACtCG,GAAwB,CAAChB,GAAIC,GAAIC,GAAIN,GAAIC,IACzCoB,GAAS,CAACxC,GAAIF,IACd2C,GAA+B,SAAUvH,EAAYwH,QACnC,IAAdA,IAAwBA,EAAY,UACxC,IAAIC,EAAQ,GACRC,EAAU,GACVC,EAAa,GAwDjB,OAvDA3H,EAAWtnC,SAAQ,SAAU4nC,EAAW/wC,GACpC,IAAIq4C,EAAYb,GAAcjK,IAAIwD,GAQlC,GAPIsH,EAAY5D,GACZ2D,EAAWhtC,MAAK,GAChBitC,GAAa5D,GAGb2D,EAAWhtC,MAAK,IAEoC,IAApD,CAAC,SAAU,OAAQ,SAASlN,QAAQ+5C,KAEyB,IAAzD,CAAC,KAAQ,KAAQ,MAAQ,OAAQ/5C,QAAQ6yC,GAEzC,OADAoH,EAAQ/sC,KAAKpL,GACNk4C,EAAM9sC,KAAKoqC,IAG1B,GAAI6C,IAAcxD,GAAMwD,IAAclD,EAAO,CAEzC,GAAc,IAAVn1C,EAEA,OADAm4C,EAAQ/sC,KAAKpL,GACNk4C,EAAM9sC,KAAKkrC,IAItB,IAAIgC,EAAOJ,EAAMl4C,EAAQ,GACzB,OAAmC,IAA/B63C,GAAY35C,QAAQo6C,IACpBH,EAAQ/sC,KAAK+sC,EAAQn4C,EAAQ,IACtBk4C,EAAM9sC,KAAKktC,KAEtBH,EAAQ/sC,KAAKpL,GACNk4C,EAAM9sC,KAAKkrC,KAGtB,OADA6B,EAAQ/sC,KAAKpL,GACTq4C,IAAc9B,GACP2B,EAAM9sC,KAAmB,WAAd6sC,EAAyBpC,GAAKgB,IAEhDwB,IAAcnB,IAGdmB,IAAchC,GAFP6B,EAAM9sC,KAAKkrC,IAQlB+B,IAAclB,GACTpG,GAAa,QAAWA,GAAa,QAAaA,GAAa,QAAWA,GAAa,OACjFmH,EAAM9sC,KAAKyrC,IAGXqB,EAAM9sC,KAAKkrC,SAG1B4B,EAAM9sC,KAAKitC,MAER,CAACF,EAASD,EAAOE,IAExBG,GAA6B,SAAU11C,EAAG4kB,EAAG+wB,EAAcC,GAC3D,IAAIC,EAAUD,EAAWD,GACzB,GAAIroC,MAAMC,QAAQvN,IAA6B,IAAxBA,EAAE3E,QAAQw6C,GAAkB71C,IAAM61C,EAAS,CAC9D,IAAI/2C,EAAI62C,EACR,MAAO72C,GAAK82C,EAAWp1C,OAAQ,CAC3B1B,IACA,IAAIgB,EAAO81C,EAAW92C,GACtB,GAAIgB,IAAS8kB,EACT,OAAO,EAEX,GAAI9kB,IAASuyC,EACT,OAIZ,GAAIwD,IAAYxD,EAAI,CACZvzC,EAAI62C,EACR,MAAO72C,EAAI,EAAG,CACVA,IACA,IAAI22C,EAAOG,EAAW92C,GACtB,GAAIwO,MAAMC,QAAQvN,IAA0B,IAArBA,EAAE3E,QAAQo6C,GAAez1C,IAAMy1C,EAAM,CACxD,IAAI/1C,EAAIi2C,EACR,MAAOj2C,GAAKk2C,EAAWp1C,OAAQ,CAC3Bd,IACII,EAAO81C,EAAWl2C,GACtB,GAAII,IAAS8kB,EACT,OAAO,EAEX,GAAI9kB,IAASuyC,EACT,OAIZ,GAAIoD,IAASpD,EACT,OAIZ,OAAO,GAEPyD,GAA4B,SAAUH,EAAcC,GACpD,IAAI92C,EAAI62C,EACR,MAAO72C,GAAK,EAAG,CACX,IAAI4E,EAAOkyC,EAAW92C,GACtB,GAAI4E,IAAS2uC,EAIT,OAAO3uC,EAHP5E,IAMR,OAAO,GAEPi3C,GAAoB,SAAUnI,EAAYgI,EAAYI,EAAU74C,EAAO84C,GACvE,GAAwB,IAApBD,EAAS74C,GACT,OAAOs3C,GAEX,IAAIkB,EAAex4C,EAAQ,EAC3B,GAAImQ,MAAMC,QAAQ0oC,KAAsD,IAAlCA,EAAgBN,GAClD,OAAOlB,GAEX,IAAIyB,EAAcP,EAAe,EAC7BQ,EAAaR,EAAe,EAC5BE,EAAUD,EAAWD,GAGrBS,EAASF,GAAe,EAAIN,EAAWM,GAAe,EACtDp2C,EAAO81C,EAAWO,GACtB,GAAIN,IAAY/D,GAAQhyC,IAASiyC,EAC7B,OAAO0C,GAEX,IAA2C,IAAvCI,GAAiBx5C,QAAQw6C,GACzB,OAAOrB,GAGX,IAAwC,IAApCK,GAAiBx5C,QAAQyE,GACzB,OAAO20C,GAGX,IAA+B,IAA3BK,GAAQz5C,QAAQyE,GAChB,OAAO20C,GAGX,GAAIqB,GAA0BH,EAAcC,KAAgBzD,EACxD,OAAOuC,GAGX,GAAIC,GAAcjK,IAAIkD,EAAW+H,MAAmBrD,EAChD,OAAOmC,GAGX,IAAKoB,IAAYlC,IAAMkC,IAAYjC,KAAOe,GAAcjK,IAAIkD,EAAWuI,MAAiB7D,EACpF,OAAOmC,GAGX,GAAIoB,IAAY3D,GAAMpyC,IAASoyC,EAC3B,OAAOuC,GAGX,GAAIoB,IAAYzD,EACZ,OAAOqC,GAGX,IAAuC,IAAnC,CAACpC,EAAIG,GAAIE,IAAIr3C,QAAQw6C,IAAmB/1C,IAASsyC,EACjD,OAAOqC,GAGX,IAA4C,IAAxC,CAAC7B,GAAIC,GAAIC,GAAIK,GAAII,IAAIl4C,QAAQyE,GAC7B,OAAO20C,GAGX,GAAIqB,GAA0BH,EAAcC,KAAgB3C,GACxD,OAAOwB,GAGX,GAAIiB,GAA2BxC,GAAID,GAAI0C,EAAcC,GACjD,OAAOnB,GAGX,GAAIiB,GAA2B,CAAC9C,GAAIC,IAAKG,GAAI2C,EAAcC,GACvD,OAAOnB,GAGX,GAAIiB,GAA2BnD,GAAIA,GAAIoD,EAAcC,GACjD,OAAOnB,GAGX,GAAIoB,IAAYxD,EACZ,OAAOqC,GAGX,GAAImB,IAAY3C,IAAMpzC,IAASozC,GAC3B,OAAOuB,GAGX,GAAI30C,IAAS6yC,IAAMkD,IAAYlD,GAC3B,OAAO+B,GAGX,IAAoC,IAAhC,CAAClC,GAAIE,GAAIM,IAAI33C,QAAQyE,IAAgB+1C,IAAYpD,GACjD,OAAOgC,GAGX,GAAI2B,IAAWrC,KAAmC,IAA7BmB,GAAO75C,QAAQw6C,GAChC,OAAOpB,GAGX,GAAIoB,IAAYtC,IAAMzzC,IAASi0C,GAC3B,OAAOU,GAGX,GAAI30C,IAASizC,GACT,OAAO0B,GAGX,IAAoC,IAA/BG,GAAYv5C,QAAQyE,IAAgB+1C,IAAYzC,KAA0C,IAAlCwB,GAAYv5C,QAAQw6C,IAAmB/1C,IAASszC,GACzG,OAAOqB,GAGX,GAAKoB,IAAYvC,KAAsC,IAAhC,CAACU,GAAIL,GAAIC,IAAIv4C,QAAQyE,KACJ,IAAnC,CAACk0C,GAAIL,GAAIC,IAAIv4C,QAAQw6C,IAAmB/1C,IAASuzC,GAClD,OAAOoB,GAGX,IAAuC,IAAlCG,GAAYv5C,QAAQw6C,KAAqD,IAAlCd,GAAe15C,QAAQyE,KACzB,IAArCi1C,GAAe15C,QAAQw6C,KAAkD,IAA/BjB,GAAYv5C,QAAQyE,GAC/D,OAAO20C,GAGX,IAEgC,IAA/B,CAACnB,GAAID,IAAIh4C,QAAQw6C,KACb/1C,IAASszC,KAAmC,IAA5B,CAACH,GAAIP,IAAIr3C,QAAQyE,IAAgB81C,EAAWO,EAAa,KAAO/C,MAEjD,IAA/B,CAACH,GAAIP,IAAIr3C,QAAQw6C,IAAmB/1C,IAASszC,IAE7CyC,IAAYzC,KAAsC,IAAhC,CAACA,GAAIG,GAAIJ,IAAI93C,QAAQyE,GACxC,OAAO20C,GAGX,IAA4C,IAAxC,CAACrB,GAAIG,GAAIJ,GAAIP,GAAIC,IAAIx3C,QAAQyE,GAAc,CAC3C,IAAIu2C,EAAYV,EAChB,MAAOU,GAAa,EAAG,CACnB,IAAI3yC,EAAOkyC,EAAWS,GACtB,GAAI3yC,IAAS0vC,GACT,OAAOqB,GAEN,IAAgC,IAA5B,CAAClB,GAAIJ,IAAI93C,QAAQqI,GAItB,MAHA2yC,KAQZ,IAAgC,IAA5B,CAAC/C,GAAID,IAAIh4C,QAAQyE,GAAc,CAC3Bu2C,GAA2C,IAA/B,CAACzD,GAAIC,IAAIx3C,QAAQw6C,GAAkBK,EAAcP,EACjE,MAAOU,GAAa,EAAG,CACf3yC,EAAOkyC,EAAWS,GACtB,GAAI3yC,IAAS0vC,GACT,OAAOqB,GAEN,IAAgC,IAA5B,CAAClB,GAAIJ,IAAI93C,QAAQqI,GAItB,MAHA2yC,KAQZ,GAAKpC,KAAO4B,IAA+C,IAApC,CAAC5B,GAAIC,GAAIL,GAAIC,IAAIz4C,QAAQyE,KACZ,IAA/B,CAACo0C,GAAIL,IAAIx4C,QAAQw6C,KAA+C,IAA5B,CAAC3B,GAAIC,IAAI94C,QAAQyE,KACtB,IAA/B,CAACq0C,GAAIL,IAAIz4C,QAAQw6C,IAAmB/1C,IAASq0C,GAC9C,OAAOM,GAGX,IAAiD,IAA5CQ,GAAsB55C,QAAQw6C,KAA+C,IAA5B,CAAC9C,GAAIM,IAAIh4C,QAAQyE,KACzB,IAAzCm1C,GAAsB55C,QAAQyE,IAAgB+1C,IAAYvC,GAC3D,OAAOmB,GAGX,IAAsC,IAAlCG,GAAYv5C,QAAQw6C,KAAkD,IAA/BjB,GAAYv5C,QAAQyE,GAC3D,OAAO20C,GAGX,GAAIoB,IAAY1C,KAAqC,IAA/ByB,GAAYv5C,QAAQyE,GACtC,OAAO20C,GAGX,IAAkD,IAA7CG,GAAYtmB,OAAO8kB,IAAI/3C,QAAQw6C,IAChC/1C,IAASmzC,KACkC,IAA3CsB,GAAMl5C,QAAQuyC,EAAWuI,MACkB,IAA1CvB,GAAYtmB,OAAO8kB,IAAI/3C,QAAQyE,IAAgB+1C,IAAYhD,GAC5D,OAAO4B,GAIX,GAAIoB,IAAYzB,IAAQt0C,IAASs0C,GAAM,CACnC,IAAIt1C,EAAIk3C,EAASL,GACbxM,EAAQ,EACZ,MAAOrqC,EAAI,EAAG,CAEV,GADAA,IACI82C,EAAW92C,KAAOs1C,GAIlB,MAHAjL,IAMR,GAAIA,EAAQ,IAAM,EACd,OAAOsL,GAIf,OAAIoB,IAAYlC,IAAM7zC,IAAS8zC,GACpBa,GAEJC,IAEP4B,GAAsB,SAAU1I,EAAYlzC,GACvCA,IACDA,EAAU,CAAE06C,UAAW,SAAUmB,UAAW,WAEhD,IAAIC,EAAKrB,GAA6BvH,EAAYlzC,EAAQ06C,WAAYY,EAAWQ,EAAG,GAAIZ,EAAaY,EAAG,GAAIC,EAAiBD,EAAG,GACtG,cAAtB97C,EAAQ67C,WAAmD,eAAtB77C,EAAQ67C,YAC7CX,EAAaA,EAAWvoC,KAAI,SAAU3J,GAAQ,OAAwC,IAAhC,CAAC0vC,GAAIK,GAAIY,IAAIh5C,QAAQqI,GAAeswC,GAAKtwC,MAEnG,IAAIgzC,EAA6C,aAAtBh8C,EAAQ67C,UAC7BE,EAAeppC,KAAI,SAAUspC,EAAc73C,GACzC,OAAO63C,GAAgB/I,EAAW9uC,IAAM,OAAU8uC,EAAW9uC,IAAM,cAErE83C,EACN,MAAO,CAACZ,EAAUJ,EAAYc,IAE9BG,GAAuB,WACvB,SAASA,EAAMjJ,EAAYwH,EAAW3O,EAAO8J,GACzCr2C,KAAK0zC,WAAaA,EAClB1zC,KAAK4yB,SAAWsoB,IAAcZ,GAC9Bt6C,KAAKusC,MAAQA,EACbvsC,KAAKq2C,IAAMA,EAKf,OAHAsG,EAAMp4C,UAAUy9B,MAAQ,WACpB,OAAO4R,EAAgBztC,WAAM,EAAQnG,KAAK0zC,WAAW1R,MAAMhiC,KAAKusC,MAAOvsC,KAAKq2C,OAEzEsG,EAVe,GAYtBC,GAAc,SAAUnJ,EAAKjzC,GAC7B,IAAIkzC,EAAaF,EAAeC,GAC5B6I,EAAKF,GAAoB1I,EAAYlzC,GAAUs7C,EAAWQ,EAAG,GAAIZ,EAAaY,EAAG,GAAIE,EAAuBF,EAAG,GAC/Gh2C,EAASotC,EAAWptC,OACpBu2C,EAAU,EACVC,EAAY,EAChB,MAAO,CACHl3C,KAAM,WACF,GAAIk3C,GAAax2C,EACb,MAAO,CAAEN,MAAM,EAAM1D,MAAO,MAEhC,IAAI44C,EAAYX,GAChB,MAAOuC,EAAYx2C,IACd40C,EAAYW,GAAkBnI,EAAYgI,EAAYI,IAAYgB,EAAWN,MAC1EjC,IACR,GAAIW,IAAcX,IAAuBuC,IAAcx2C,EAAQ,CAC3D,IAAIhE,EAAQ,IAAIq6C,GAAMjJ,EAAYwH,EAAW2B,EAASC,GAEtD,OADAD,EAAUC,EACH,CAAEx6C,MAAOA,EAAO0D,MAAM,GAEjC,MAAO,CAAEA,MAAM,EAAM1D,MAAO,SAMpCy6C,GAAoB,EACpBC,GAAU,EACVC,GAAe,EACfC,GAAc,EACdC,GAAY,GACZC,GAAU,GACVC,GAAkB,GAClBC,GAAuB,EACvBC,GAAQ,GACRC,GAAiB,GACjBC,GAAc,GACdC,GAAc,GACdC,GAAc,GACdC,GAAkB,GAClBC,GAAa,GACbC,GAAmB,GACnBC,GAAoB,GACpBC,GAAW,GACXC,GAAe,GACfC,GAAmB,GACnBC,GAAiB,GACjBC,GAAoB,GACpBC,GAAgB,GAChBC,GAAsB,GACtBC,GAAuB,GACvBC,GAAoB,GACpBC,GAAqB,IACrBC,GAAgB,GAChBC,GAAsB,IACtBC,GAAgB,IAChBC,GAAQ,IACRC,GAAU,IACVC,GAAwB,MACxBC,GAAW,GACXC,GAAY,GACZC,GAAQ,GACRC,GAAQ,GACRC,GAAY,GACZC,GAAY,GACZC,GAAO,EACPC,GAAY,EACZC,GAAkB,GAClBC,GAAY,GACZC,GAA4B,GAC5BC,GAAS,IACTC,IAAO,EACPC,GAAO,GACP/5C,GAAI,GACJpC,GAAI,IACJkD,GAAI,IACJgC,GAAI,IACJsN,GAAI,IACJ8T,GAAI,GACJrU,GAAI,GACJ0d,GAAI,GACJ/kB,GAAI,GACJwxC,GAAI,GACJC,GAAU,SAAU/L,GAAa,OAAOA,GAAa6L,IAAQ7L,GAAa,IAC1EgM,GAAuB,SAAUhM,GAAa,OAAOA,GAAa,OAAUA,GAAa,OACzFiM,GAAQ,SAAUjM,GAClB,OAAO+L,GAAQ/L,IAAeA,GAAahqB,IAAKgqB,GAAa3gB,IAAO2gB,GAAaluC,IAAKkuC,GAAaptC,IAEnGs5C,GAAoB,SAAUlM,GAAa,OAAOA,GAAaluC,IAAKkuC,GAAa99B,IACjFiqC,GAAoB,SAAUnM,GAAa,OAAOA,GAAahqB,IAAKgqB,GAAa8L,IACjFM,GAAW,SAAUpM,GAAa,OAAOkM,GAAkBlM,IAAcmM,GAAkBnM,IAC3FqM,GAAsB,SAAUrM,GAAa,OAAOA,GAAa8K,IACjEwB,GAAe,SAAUtM,GACzB,OAAOA,IAAcmJ,IAAanJ,IAAcsJ,IAAwBtJ,IAAcuJ,IAEtFgD,GAAuB,SAAUvM,GACjC,OAAOoM,GAASpM,IAAcqM,GAAoBrM,IAAcA,IAAcgK,IAE9EwC,GAAkB,SAAUxM,GAC5B,OAAOuM,GAAqBvM,IAAc+L,GAAQ/L,IAAcA,IAAciK,IAE9EwC,GAA0B,SAAUzM,GACpC,OAASA,GAAasL,IAAQtL,GAAauL,IACvCvL,IAAcwL,IACbxL,GAAayL,IAAazL,GAAa0L,IACxC1L,IAAc2L,IAElBe,GAAgB,SAAUC,EAAIC,GAC9B,OAAID,IAAOtD,IAGJuD,IAAOzD,IAEd0D,GAAoB,SAAUF,EAAIC,EAAIE,GACtC,OAAIH,IAAO1C,GACAsC,GAAqBK,IAAOF,GAAcE,EAAIE,KAEhDP,GAAqBI,MAGrBA,IAAOtD,KAAmBqD,GAAcC,EAAIC,KAKrDG,GAAgB,SAAUJ,EAAIC,EAAIE,GAClC,OAAIH,IAAO1B,IAAa0B,IAAO1C,KACvB8B,GAAQa,IAGLA,IAAOvB,IAAaU,GAAQe,GAG5Bf,GADPY,IAAOtB,GACQuB,EAEJD,IAEfK,GAAiB,SAAUtN,GAC3B,IAAI7sC,EAAI,EACJo6C,EAAO,EACPvN,EAAW7sC,KAAOo4C,IAAavL,EAAW7sC,KAAOo3C,KAC7CvK,EAAW7sC,KAAOo3C,KAClBgD,GAAQ,GAEZp6C,KAEJ,IAAIq6C,EAAW,GACf,MAAOnB,GAAQrM,EAAW7sC,IACtBq6C,EAAS7yC,KAAKqlC,EAAW7sC,MAE7B,IAAIs6C,EAAMD,EAAS56C,OAAS+C,SAASuqC,EAAgBztC,WAAM,EAAQ+6C,GAAW,IAAM,EAChFxN,EAAW7sC,KAAOw4C,IAClBx4C,IAEJ,IAAIu6C,EAAW,GACf,MAAOrB,GAAQrM,EAAW7sC,IACtBu6C,EAAS/yC,KAAKqlC,EAAW7sC,MAE7B,IAAIw6C,EAAQD,EAAS96C,OACjBg7C,EAAOD,EAAQh4C,SAASuqC,EAAgBztC,WAAM,EAAQi7C,GAAW,IAAM,EACvE1N,EAAW7sC,KAAO8O,IAAK+9B,EAAW7sC,KAAOnD,IACzCmD,IAEJ,IAAI06C,EAAU,EACV7N,EAAW7sC,KAAOo4C,IAAavL,EAAW7sC,KAAOo3C,KAC7CvK,EAAW7sC,KAAOo3C,KAClBsD,GAAW,GAEf16C,KAEJ,IAAI26C,EAAW,GACf,MAAOzB,GAAQrM,EAAW7sC,IACtB26C,EAASnzC,KAAKqlC,EAAW7sC,MAE7B,IAAI46C,EAAMD,EAASl7C,OAAS+C,SAASuqC,EAAgBztC,WAAM,EAAQq7C,GAAW,IAAM,EACpF,OAAOP,GAAQE,EAAMG,EAAOjxC,KAAKqxC,IAAI,IAAKL,IAAUhxC,KAAKqxC,IAAI,GAAIH,EAAUE,IAE3EE,GAAyB,CACzBn4C,KAAM,GAENo4C,GAA0B,CAC1Bp4C,KAAM,GAENq4C,GAAc,CAAEr4C,KAAM,GACtBs4C,GAAqB,CAAEt4C,KAAM,IAC7Bu4C,GAAqB,CAAEv4C,KAAM,GAC7Bw4C,GAAe,CAAEx4C,KAAM,IACvBy4C,GAAmB,CAAEz4C,KAAM,GAC3B04C,GAAsB,CAAE14C,KAAM,IAC9B24C,GAA2B,CAC3B34C,KAAM,IAEN44C,GAA4B,CAC5B54C,KAAM,IAEN64C,GAAwB,CAAE74C,KAAM,IAChC84C,GAAgB,CAAE94C,KAAM,IACxB+4C,GAAmB,CAAE/4C,KAAM,GAC3Bg5C,GAAY,CAAEh5C,KAAM,IACpBi5C,GAAY,CAAEj5C,KAAM,IACpBk5C,GAAc,CAAEl5C,KAAM,IACtBm5C,GAAkB,CAAEn5C,KAAM,IAC1Bo5C,GAA4B,CAC5Bp5C,KAAM,IAENq5C,GAA6B,CAC7Br5C,KAAM,IAENs5C,GAAmB,CAAEt5C,KAAM,IAC3Bu5C,GAAY,CAAEv5C,KAAM,IACpBw5C,GAA2B,WAC3B,SAASA,IACLhjD,KAAKijD,OAAS,GAmblB,OAjbAD,EAAUz+C,UAAUkC,MAAQ,SAAUy8C,GAClCljD,KAAKijD,OAASjjD,KAAKijD,OAAO7uB,OAAOof,EAAe0P,KAEpDF,EAAUz+C,UAAU4+C,KAAO,WACvB,IAAIC,EAAS,GACTC,EAAQrjD,KAAKsjD,eACjB,MAAOD,IAAUN,GACbK,EAAO/0C,KAAKg1C,GACZA,EAAQrjD,KAAKsjD,eAEjB,OAAOF,GAEXJ,EAAUz+C,UAAU++C,aAAe,WAC/B,IAAItP,EAAYh0C,KAAKujD,mBACrB,OAAQvP,GACJ,KAAKwJ,GACD,OAAOx9C,KAAKwjD,mBAAmBhG,IACnC,KAAKE,GACD,IAAIiD,EAAK3gD,KAAKyjD,cAAc,GACxB7C,EAAK5gD,KAAKyjD,cAAc,GACxB3C,EAAK9gD,KAAKyjD,cAAc,GAC5B,GAAIjD,GAAgBG,IAAOD,GAAcE,EAAIE,GAAK,CAC9C,IAAI4C,EAAQ7C,GAAkBF,EAAIC,EAAIE,GAAM9D,GAAUD,GAClDz6C,EAAQtC,KAAK2jD,cACjB,MAAO,CAAEn6C,KAAM,EAAoBlH,MAAOA,EAAOohD,MAAOA,GAE5D,MACJ,KAAK/F,GACD,GAAI39C,KAAKyjD,cAAc,KAAOhG,GAE1B,OADAz9C,KAAKujD,mBACEzB,GAEX,MACJ,KAAKjE,GACD,OAAO79C,KAAKwjD,mBAAmB3F,IACnC,KAAKC,GACD,OAAO6D,GACX,KAAK5D,GACD,OAAO6D,GACX,KAAK5C,GACD,GAAIh/C,KAAKyjD,cAAc,KAAOhG,GAE1B,OADAz9C,KAAKujD,mBACElB,GAEX,MACJ,KAAKpD,GACD,GAAI8B,GAAc/M,EAAWh0C,KAAKyjD,cAAc,GAAIzjD,KAAKyjD,cAAc,IAEnE,OADAzjD,KAAK4jD,mBAAmB5P,GACjBh0C,KAAK6jD,sBAEhB,MACJ,KAAK3E,GACD,OAAO2C,GACX,KAAK5D,GACD,IAAI6F,EAAK9P,EACL+P,EAAK/jD,KAAKyjD,cAAc,GACxBO,EAAKhkD,KAAKyjD,cAAc,GAC5B,GAAI1C,GAAc+C,EAAIC,EAAIC,GAEtB,OADAhkD,KAAK4jD,mBAAmB5P,GACjBh0C,KAAK6jD,sBAEhB,GAAIhD,GAAkBiD,EAAIC,EAAIC,GAE1B,OADAhkD,KAAK4jD,mBAAmB5P,GACjBh0C,KAAKikD,wBAEhB,GAAIF,IAAO9F,IAAgB+F,IAAO5F,GAG9B,OAFAp+C,KAAKujD,mBACLvjD,KAAKujD,mBACEd,GAEX,MACJ,KAAKpD,GACD,GAAI0B,GAAc/M,EAAWh0C,KAAKyjD,cAAc,GAAIzjD,KAAKyjD,cAAc,IAEnE,OADAzjD,KAAK4jD,mBAAmB5P,GACjBh0C,KAAK6jD,sBAEhB,MACJ,KAAKzG,GACD,GAAIp9C,KAAKyjD,cAAc,KAAOzE,GAAU,CACpCh/C,KAAKujD,mBACL,MAAO,EAAM,CACT,IAAI18C,EAAI7G,KAAKujD,mBACb,GAAI18C,IAAMm4C,KACNn4C,EAAI7G,KAAKujD,mBACL18C,IAAMu2C,IACN,OAAOp9C,KAAKsjD,eAGpB,GAAIz8C,IAAM+4C,GACN,OAAO5/C,KAAKsjD,gBAIxB,MACJ,KAAKnE,GACD,OAAOuD,GACX,KAAKtD,GACD,OAAOuD,GACX,KAAKxE,GACD,GAAIn+C,KAAKyjD,cAAc,KAAOvF,IAC1Bl+C,KAAKyjD,cAAc,KAAOxF,IAC1Bj+C,KAAKyjD,cAAc,KAAOxF,GAG1B,OAFAj+C,KAAKujD,mBACLvjD,KAAKujD,mBACEf,GAEX,MACJ,KAAKnE,GACD,IAAI6F,EAAKlkD,KAAKyjD,cAAc,GACxBU,EAAKnkD,KAAKyjD,cAAc,GACxBW,EAAKpkD,KAAKyjD,cAAc,GAC5B,GAAI5C,GAAkBqD,EAAIC,EAAIC,GAAK,CAC3B9hD,EAAQtC,KAAK2jD,cACjB,MAAO,CAAEn6C,KAAM,EAA0BlH,MAAOA,GAEpD,MACJ,KAAKg8C,GACD,OAAOsE,GACX,KAAKvF,GACD,GAAIqD,GAAc1M,EAAWh0C,KAAKyjD,cAAc,IAE5C,OADAzjD,KAAK4jD,mBAAmB5P,GACjBh0C,KAAKikD,wBAEhB,MACJ,KAAK1F,GACD,OAAOsE,GACX,KAAKrE,GACD,GAAIx+C,KAAKyjD,cAAc,KAAOhG,GAE1B,OADAz9C,KAAKujD,mBACExB,GAEX,MACJ,KAAKtD,GACD,OAAO0D,GACX,KAAKxD,GACD,OAAOyD,GACX,KAAKx5C,GACL,KAAK0F,GACD,IAAI+1C,EAAKrkD,KAAKyjD,cAAc,GACxBa,EAAKtkD,KAAKyjD,cAAc,GAM5B,OALIY,IAAOpF,KAAcgB,GAAMqE,IAAOA,IAAO5F,KACzC1+C,KAAKujD,mBACLvjD,KAAKukD,4BAETvkD,KAAK4jD,mBAAmB5P,GACjBh0C,KAAKikD,wBAChB,KAAKrF,GACD,GAAI5+C,KAAKyjD,cAAc,KAAOhG,GAE1B,OADAz9C,KAAKujD,mBACEtB,GAEX,GAAIjiD,KAAKyjD,cAAc,KAAO7E,GAE1B,OADA5+C,KAAKujD,mBACEvB,GAEX,MACJ,KAAKnD,GACD,GAAI7+C,KAAKyjD,cAAc,KAAOhG,GAE1B,OADAz9C,KAAKujD,mBACErB,GAEX,MACJ,KAAKtC,GACD,OAAOmD,GAEf,OAAIzC,GAAatM,IACbh0C,KAAKwkD,oBACE1B,IAEP/C,GAAQ/L,IACRh0C,KAAK4jD,mBAAmB5P,GACjBh0C,KAAK6jD,uBAEZtD,GAAqBvM,IACrBh0C,KAAK4jD,mBAAmB5P,GACjBh0C,KAAKikD,yBAET,CAAEz6C,KAAM,EAAqBlH,MAAOsxC,EAAgBI,KAE/DgP,EAAUz+C,UAAUg/C,iBAAmB,WACnC,IAAIjhD,EAAQtC,KAAKijD,OAAOwB,QACxB,MAAwB,qBAAVniD,GAAyB,EAAIA,GAE/C0gD,EAAUz+C,UAAUq/C,mBAAqB,SAAU5P,GAC/Ch0C,KAAKijD,OAAOyB,QAAQ1Q,IAExBgP,EAAUz+C,UAAUk/C,cAAgB,SAAUkB,GAC1C,OAAIA,GAAS3kD,KAAKijD,OAAO38C,QACb,EAELtG,KAAKijD,OAAO0B,IAEvB3B,EAAUz+C,UAAUggD,yBAA2B,WAC3C,IAAIK,EAAS,GACT5Q,EAAYh0C,KAAKujD,mBACrB,MAAOtD,GAAMjM,IAAc4Q,EAAOt+C,OAAS,EACvCs+C,EAAOv2C,KAAK2lC,GACZA,EAAYh0C,KAAKujD,mBAErB,IAAIsB,GAAgB,EACpB,MAAO7Q,IAAc0K,IAAiBkG,EAAOt+C,OAAS,EAClDs+C,EAAOv2C,KAAK2lC,GACZA,EAAYh0C,KAAKujD,mBACjBsB,GAAgB,EAEpB,GAAIA,EAAe,CACf,IAAIC,EAAUz7C,SAASuqC,EAAgBztC,WAAM,EAAQy+C,EAAOzxC,KAAI,SAAU4xC,GAAS,OAAQA,IAAUrG,GAAgBmB,GAAOkF,MAAa,IACrI1O,EAAMhtC,SAASuqC,EAAgBztC,WAAM,EAAQy+C,EAAOzxC,KAAI,SAAU4xC,GAAS,OAAQA,IAAUrG,GAAgBrrB,GAAI0xB,MAAa,IAClI,MAAO,CAAEv7C,KAAM,GAA8B+iC,MAAOuY,EAASzO,IAAKA,GAEtE,IAAI9J,EAAQljC,SAASuqC,EAAgBztC,WAAM,EAAQy+C,GAAS,IAC5D,GAAI5kD,KAAKyjD,cAAc,KAAOxF,IAAgBgC,GAAMjgD,KAAKyjD,cAAc,IAAK,CACxEzjD,KAAKujD,mBACLvP,EAAYh0C,KAAKujD,mBACjB,IAAIyB,EAAY,GAChB,MAAO/E,GAAMjM,IAAcgR,EAAU1+C,OAAS,EAC1C0+C,EAAU32C,KAAK2lC,GACfA,EAAYh0C,KAAKujD,mBAEjBlN,EAAMhtC,SAASuqC,EAAgBztC,WAAM,EAAQ6+C,GAAY,IAC7D,MAAO,CAAEx7C,KAAM,GAA8B+iC,MAAOA,EAAO8J,IAAKA,GAGhE,MAAO,CAAE7sC,KAAM,GAA8B+iC,MAAOA,EAAO8J,IAAK9J,IAGxEyW,EAAUz+C,UAAU0/C,sBAAwB,WACxC,IAAI3hD,EAAQtC,KAAK2jD,cACjB,MAA4B,QAAxBrhD,EAAM2iD,eAA2BjlD,KAAKyjD,cAAc,KAAO3F,IAC3D99C,KAAKujD,mBACEvjD,KAAKklD,mBAEPllD,KAAKyjD,cAAc,KAAO3F,IAC/B99C,KAAKujD,mBACE,CAAE/5C,KAAM,GAAyBlH,MAAOA,IAE5C,CAAEkH,KAAM,GAAsBlH,MAAOA,IAEhD0gD,EAAUz+C,UAAU2gD,gBAAkB,WAClC,IAAI5iD,EAAQ,GAEZ,GADAtC,KAAKwkD,oBACDxkD,KAAKyjD,cAAc,KAAO7D,GAC1B,MAAO,CAAEp2C,KAAM,GAAoBlH,MAAO,IAE9C,IAAIsD,EAAO5F,KAAKyjD,cAAc,GAC9B,GAAI79C,IAASi4C,IAAcj4C,IAAS43C,GAAgB,CAChD,IAAI2H,EAAcnlD,KAAKwjD,mBAAmBxjD,KAAKujD,oBAC/C,OAAyB,IAArB4B,EAAY37C,OACZxJ,KAAKwkD,oBACDxkD,KAAKyjD,cAAc,KAAO7D,IAAO5/C,KAAKyjD,cAAc,KAAO1F,KAC3D/9C,KAAKujD,mBACE,CAAE/5C,KAAM,GAAoBlH,MAAO6iD,EAAY7iD,SAG9DtC,KAAKolD,wBACE9C,IAEX,MAAO,EAAM,CACT,IAAItO,EAAYh0C,KAAKujD,mBACrB,GAAIvP,IAAc4L,IAAO5L,IAAc+J,GACnC,MAAO,CAAEv0C,KAAM,GAAoBlH,MAAOsxC,EAAgBztC,WAAM,EAAQ7D,IAEvE,GAAIg+C,GAAatM,GAElB,OADAh0C,KAAKwkD,oBACDxkD,KAAKyjD,cAAc,KAAO7D,IAAO5/C,KAAKyjD,cAAc,KAAO1F,IAC3D/9C,KAAKujD,mBACE,CAAE/5C,KAAM,GAAoBlH,MAAOsxC,EAAgBztC,WAAM,EAAQ7D,MAE5EtC,KAAKolD,wBACE9C,IAEN,GAAItO,IAAcwJ,IACnBxJ,IAAc6J,IACd7J,IAAc8J,IACd2C,GAAwBzM,GAExB,OADAh0C,KAAKolD,wBACE9C,GAEN,GAAItO,IAAcqJ,GAAiB,CACpC,IAAIqD,GAAc1M,EAAWh0C,KAAKyjD,cAAc,IAK5C,OADAzjD,KAAKolD,wBACE9C,GAJPhgD,EAAM+L,KAAKrO,KAAKqlD,gCAQpB/iD,EAAM+L,KAAK2lC,KAIvBgP,EAAUz+C,UAAUigD,kBAAoB,WACpC,MAAOlE,GAAatgD,KAAKyjD,cAAc,IACnCzjD,KAAKujD,oBAGbP,EAAUz+C,UAAU6gD,sBAAwB,WACxC,MAAO,EAAM,CACT,IAAIpR,EAAYh0C,KAAKujD,mBACrB,GAAIvP,IAAc+J,IAAqB/J,IAAc4L,GACjD,OAEAc,GAAc1M,EAAWh0C,KAAKyjD,cAAc,KAC5CzjD,KAAKqlD,4BAIjBrC,EAAUz+C,UAAU+gD,mBAAqB,SAAUrW,GAC/C,IAAIsW,EAAmB,IACnBjjD,EAAQ,GACZ,MAAO2sC,EAAQ,EAAG,CACd,IAAIuW,EAASn1C,KAAK6J,IAAIqrC,EAAkBtW,GACxC3sC,GAASsxC,EAAgBztC,WAAM,EAAQnG,KAAKijD,OAAOvqC,OAAO,EAAG8sC,IAC7DvW,GAASuW,EAGb,OADAxlD,KAAKijD,OAAOwB,QACLniD,GAEX0gD,EAAUz+C,UAAUi/C,mBAAqB,SAAUiC,GAC/C,IAAInjD,EAAQ,GACRsC,EAAI,EACR,EAAG,CACC,IAAIovC,EAAYh0C,KAAKijD,OAAOr+C,GAC5B,GAAIovC,IAAc4L,SAAqBlD,IAAd1I,GAA2BA,IAAcyR,EAE9D,OADAnjD,GAAStC,KAAKslD,mBAAmB1gD,GAC1B,CAAE4E,KAAM,EAAsBlH,MAAOA,GAEhD,GAAI0xC,IAAcmJ,GAEd,OADAn9C,KAAKijD,OAAOvqC,OAAO,EAAG9T,GACf29C,GAEX,GAAIvO,IAAcqJ,GAAiB,CAC/B,IAAIz3C,EAAO5F,KAAKijD,OAAOr+C,EAAI,GACvBgB,IAASg6C,SAAgBlD,IAAT92C,IACZA,IAASu3C,IACT76C,GAAStC,KAAKslD,mBAAmB1gD,GACjCA,GAAK,EACL5E,KAAKijD,OAAOwB,SAEP/D,GAAc1M,EAAWpuC,KAC9BtD,GAAStC,KAAKslD,mBAAmB1gD,GACjCtC,GAASsxC,EAAgB5zC,KAAKqlD,2BAC9BzgD,GAAK,IAIjBA,UACK,IAEbo+C,EAAUz+C,UAAUmhD,cAAgB,WAChC,IAAIC,EAAO,GACPn8C,EAAOyzC,GACP0D,EAAK3gD,KAAKyjD,cAAc,GACxB9C,IAAO1B,IAAa0B,IAAO1C,IAC3B0H,EAAKt3C,KAAKrO,KAAKujD,oBAEnB,MAAOxD,GAAQ//C,KAAKyjD,cAAc,IAC9BkC,EAAKt3C,KAAKrO,KAAKujD,oBAEnB5C,EAAK3gD,KAAKyjD,cAAc,GACxB,IAAI7C,EAAK5gD,KAAKyjD,cAAc,GAC5B,GAAI9C,IAAOtB,IAAaU,GAAQa,GAAK,CACjC+E,EAAKt3C,KAAKrO,KAAKujD,mBAAoBvjD,KAAKujD,oBACxC/5C,EAAO0zC,GACP,MAAO6C,GAAQ//C,KAAKyjD,cAAc,IAC9BkC,EAAKt3C,KAAKrO,KAAKujD,oBAGvB5C,EAAK3gD,KAAKyjD,cAAc,GACxB7C,EAAK5gD,KAAKyjD,cAAc,GACxB,IAAI3C,EAAK9gD,KAAKyjD,cAAc,GAC5B,IAAK9C,IAAOhrC,IAAKgrC,IAAOj9C,OAASk9C,IAAO3B,IAAa2B,IAAO3C,KAAiB8B,GAAQe,IAAQf,GAAQa,IAAM,CACvG+E,EAAKt3C,KAAKrO,KAAKujD,mBAAoBvjD,KAAKujD,oBACxC/5C,EAAO0zC,GACP,MAAO6C,GAAQ//C,KAAKyjD,cAAc,IAC9BkC,EAAKt3C,KAAKrO,KAAKujD,oBAGvB,MAAO,CAACvC,GAAe2E,GAAOn8C,IAElCw5C,EAAUz+C,UAAUs/C,oBAAsB,WACtC,IAAIvH,EAAKt8C,KAAK0lD,gBAAiBE,EAAStJ,EAAG,GAAIoH,EAAQpH,EAAG,GACtDqE,EAAK3gD,KAAKyjD,cAAc,GACxB7C,EAAK5gD,KAAKyjD,cAAc,GACxB3C,EAAK9gD,KAAKyjD,cAAc,GAC5B,GAAI5C,GAAkBF,EAAIC,EAAIE,GAAK,CAC/B,IAAI+E,EAAO7lD,KAAK2jD,cAChB,MAAO,CAAEn6C,KAAM,GAA0Bo8C,OAAQA,EAAQlC,MAAOA,EAAOmC,KAAMA,GAEjF,OAAIlF,IAAO/C,IACP59C,KAAKujD,mBACE,CAAE/5C,KAAM,GAA2Bo8C,OAAQA,EAAQlC,MAAOA,IAE9D,CAAEl6C,KAAM,GAAuBo8C,OAAQA,EAAQlC,MAAOA,IAEjEV,EAAUz+C,UAAU8gD,wBAA0B,WAC1C,IAAIrR,EAAYh0C,KAAKujD,mBACrB,GAAItD,GAAMjM,GAAY,CAClB,IAAI8R,EAAMlS,EAAgBI,GAC1B,MAAOiM,GAAMjgD,KAAKyjD,cAAc,KAAOqC,EAAIx/C,OAAS,EAChDw/C,GAAOlS,EAAgB5zC,KAAKujD,oBAE5BjD,GAAatgD,KAAKyjD,cAAc,KAChCzjD,KAAKujD,mBAET,IAAIwC,EAAe18C,SAASy8C,EAAK,IACjC,OAAqB,IAAjBC,GAAsB/F,GAAqB+F,IAAiBA,EAAe,QACpEhH,GAEJgH,EAEX,OAAI/R,IAAc4L,GACPb,GAEJ/K,GAEXgP,EAAUz+C,UAAUo/C,YAAc,WAC9B,IAAI7R,EAAS,GACb,MAAO,EAAM,CACT,IAAIkC,EAAYh0C,KAAKujD,mBACrB,GAAI/C,GAAgBxM,GAChBlC,GAAU8B,EAAgBI,OAEzB,KAAI0M,GAAc1M,EAAWh0C,KAAKyjD,cAAc,IAKjD,OADAzjD,KAAK4jD,mBAAmB5P,GACjBlC,EAJPA,GAAU8B,EAAgB5zC,KAAKqlD,8BAQpCrC,EArbmB,GAwb1BgD,GAAwB,WACxB,SAASA,EAAO5C,GACZpjD,KAAKimD,QAAU7C,EAwFnB,OAtFA4C,EAAO5U,OAAS,SAAU9uC,GACtB,IAAI4jD,EAAY,IAAIlD,GAEpB,OADAkD,EAAUz/C,MAAMnE,GACT,IAAI0jD,EAAOE,EAAU/C,SAEhC6C,EAAOG,WAAa,SAAU7jD,GAC1B,OAAO0jD,EAAO5U,OAAO9uC,GAAO8jD,uBAEhCJ,EAAOK,YAAc,SAAU/jD,GAC3B,OAAO0jD,EAAO5U,OAAO9uC,GAAOgkD,wBAEhCN,EAAOzhD,UAAU6hD,oBAAsB,WACnC,IAAI/C,EAAQrjD,KAAKsjD,eACjB,MAAsB,KAAfD,EAAM75C,KACT65C,EAAQrjD,KAAKsjD,eAEjB,GAAmB,KAAfD,EAAM75C,KACN,MAAM,IAAI+8C,YAAY,qDAE1BvmD,KAAKwmD,eAAenD,GACpB,IAAI/gD,EAAQtC,KAAKymD,wBACjB,GACIpD,EAAQrjD,KAAKsjD,qBACO,KAAfD,EAAM75C,MACf,GAAmB,KAAf65C,EAAM75C,KACN,OAAOlH,EAEX,MAAM,IAAIikD,YAAY,qFAE1BP,EAAOzhD,UAAU+hD,qBAAuB,WACpC,IAAII,EAAS,GACb,MAAO,EAAM,CACT,IAAIpkD,EAAQtC,KAAKymD,wBACjB,GAAmB,KAAfnkD,EAAMkH,KACN,OAAOk9C,EAEXA,EAAOr4C,KAAK/L,GACZokD,EAAOr4C,SAGf23C,EAAOzhD,UAAUkiD,sBAAwB,WACrC,IAAIpD,EAAQrjD,KAAKsjD,eACjB,OAAQD,EAAM75C,MACV,KAAK,GACL,KAAK,GACL,KAAK,EACD,OAAOxJ,KAAK2mD,mBAAmBtD,EAAM75C,MACzC,KAAK,GACD,OAAOxJ,KAAK4mD,gBAAgBvD,GAEpC,OAAOA,GAEX2C,EAAOzhD,UAAUoiD,mBAAqB,SAAUn9C,GAC5C,IAAIq9C,EAAQ,CAAEr9C,KAAMA,EAAMk9C,OAAQ,IAC9BrD,EAAQrjD,KAAKsjD,eACjB,MAAO,EAAM,CACT,GAAmB,KAAfD,EAAM75C,MAA+Bs9C,GAAiBzD,EAAO75C,GAC7D,OAAOq9C,EAEX7mD,KAAKwmD,eAAenD,GACpBwD,EAAMH,OAAOr4C,KAAKrO,KAAKymD,yBACvBpD,EAAQrjD,KAAKsjD,iBAGrB0C,EAAOzhD,UAAUqiD,gBAAkB,SAAUG,GACzC,IAAIC,EAAc,CACdryB,KAAMoyB,EAAczkD,MACpBokD,OAAQ,GACRl9C,KAAM,IAEV,MAAO,EAAM,CACT,IAAI65C,EAAQrjD,KAAKsjD,eACjB,GAAmB,KAAfD,EAAM75C,MAA8C,IAAf65C,EAAM75C,KAC3C,OAAOw9C,EAEXhnD,KAAKwmD,eAAenD,GACpB2D,EAAYN,OAAOr4C,KAAKrO,KAAKymD,2BAGrCT,EAAOzhD,UAAU++C,aAAe,WAC5B,IAAID,EAAQrjD,KAAKimD,QAAQxB,QACzB,MAAwB,qBAAVpB,EAAwBN,GAAYM,GAEtD2C,EAAOzhD,UAAUiiD,eAAiB,SAAUnD,GACxCrjD,KAAKimD,QAAQvB,QAAQrB,IAElB2C,EA1FgB,GA4FvBiB,GAAmB,SAAU5D,GAAS,OAAsB,KAAfA,EAAM75C,MACnD09C,GAAgB,SAAU7D,GAAS,OAAsB,KAAfA,EAAM75C,MAChD29C,GAAe,SAAU9D,GAAS,OAAsB,KAAfA,EAAM75C,MAC/C49C,GAAgB,SAAU/D,GAAS,OAAsB,IAAfA,EAAM75C,MAChD69C,GAAmB,SAAUhE,EAAO/gD,GACpC,OAAO6kD,GAAa9D,IAAUA,EAAM/gD,QAAUA,GAE9CglD,GAAgB,SAAUjE,GAAS,OAAsB,KAAfA,EAAM75C,MAChD+9C,GAA0B,SAAUlE,GACpC,OAAsB,KAAfA,EAAM75C,MAAqD,IAAf65C,EAAM75C,MAEzDg+C,GAAoB,SAAUpE,GAC9B,IAAIqE,EAAO,GACPC,EAAM,GAiBV,OAhBAtE,EAAOh3C,SAAQ,SAAUi3C,GACrB,GAAmB,IAAfA,EAAM75C,KAA8B,CACpC,GAAmB,IAAfk+C,EAAIphD,OACJ,MAAM,IAAIiD,MAAM,oDAIpB,OAFAk+C,EAAKp5C,KAAKq5C,QACVA,EAAM,IAGS,KAAfrE,EAAM75C,MACNk+C,EAAIr5C,KAAKg1C,MAGbqE,EAAIphD,QACJmhD,EAAKp5C,KAAKq5C,GAEPD,GAEPX,GAAmB,SAAUzD,EAAO75C,GACpC,OAAa,KAATA,GAA6D,KAAf65C,EAAM75C,OAG3C,KAATA,GAA8D,KAAf65C,EAAM75C,MAGzC,IAATA,GAA0D,IAAf65C,EAAM75C,OAGxDm+C,GAAW,SAAUtE,GACrB,OAAsB,KAAfA,EAAM75C,MAAiD,KAAf65C,EAAM75C,MAGrDo+C,GAAqB,SAAUvE,GAC/B,OAAsB,KAAfA,EAAM75C,MAAsCm+C,GAAStE,IAE5DwE,GAA6B,SAAUzE,GACvC,OAAOA,EAAO98C,OAAS,EAAI,CAAC88C,EAAO,GAAIA,EAAO,IAAM,CAACA,EAAO,KAE5D0E,GAAc,CACdt+C,KAAM,GACNo8C,OAAQ,EACRlC,MAAOzG,IAEP8K,GAAgB,CAChBv+C,KAAM,GACNo8C,OAAQ,GACRlC,MAAOzG,IAEP+K,GAAkB,CAClBx+C,KAAM,GACNo8C,OAAQ,IACRlC,MAAOzG,IAEPgL,GAA2B,SAAUC,EAAO/gD,EAAOC,GACnD,IAAI0D,EAAIo9C,EAAM,GAAIn9C,EAAIm9C,EAAM,GAC5B,MAAO,CAACC,GAAiBr9C,EAAG3D,GAAQghD,GAA8B,qBAANp9C,EAAoBA,EAAID,EAAG1D,KAEvF+gD,GAAmB,SAAU9E,EAAO13C,GACpC,GAAmB,KAAf03C,EAAM75C,KACN,OAAQ65C,EAAMuC,OAAS,IAAOj6C,EAElC,GAAIs7C,GAAiB5D,GACjB,OAAQA,EAAMwC,MACV,IAAK,MACL,IAAK,KACD,OAAO,GAAKxC,EAAMuC,OACtB,IAAK,KACL,QACI,OAAOvC,EAAMuC,OAGzB,OAAOvC,EAAMuC,QAGbwC,GAAM,MACNC,GAAO,OACPC,GAAM,MACNC,GAAO,OACPC,GAAQ,CACR7zB,KAAM,QACN9S,MAAO,SAAU4mC,EAAUnmD,GACvB,GAAmB,KAAfA,EAAMkH,KACN,OAAQlH,EAAMujD,MACV,KAAKuC,GACD,OAAQ/3C,KAAK+F,GAAK9T,EAAMsjD,OAAU,IACtC,KAAKyC,GACD,OAAQh4C,KAAK+F,GAAK,IAAO9T,EAAMsjD,OACnC,KAAK0C,GACD,OAAOhmD,EAAMsjD,OACjB,KAAK2C,GACD,OAAiB,EAAVl4C,KAAK+F,GAAS9T,EAAMsjD,OAGvC,MAAM,IAAIr8C,MAAM,4BAGpBm/C,GAAU,SAAUpmD,GACpB,OAAmB,KAAfA,EAAMkH,OACFlH,EAAMujD,OAASuC,IAAO9lD,EAAMujD,OAASwC,IAAQ/lD,EAAMujD,OAASyC,IAAOhmD,EAAMujD,OAAS0C,KAM1FI,GAAiB,SAAUvF,GAC3B,IAAIwF,EAAexF,EACdzoC,OAAOwsC,IACPh0C,KAAI,SAAU01C,GAAS,OAAOA,EAAMvmD,SACpCuoB,KAAK,KACV,OAAQ+9B,GACJ,IAAK,kBACL,IAAK,kBACL,IAAK,WACL,IAAK,WACD,MAAO,CAACd,GAAaA,IACzB,IAAK,SACL,IAAK,SACD,OAAOgB,GAAI,GACf,IAAK,iBACL,IAAK,iBACL,IAAK,YACL,IAAK,YACD,MAAO,CAAChB,GAAaE,IACzB,IAAK,WACL,IAAK,OACD,OAAOc,GAAI,IACf,IAAK,cACL,IAAK,cACL,IAAK,eACL,IAAK,eACD,MAAO,CAACd,GAAiBA,IAC7B,IAAK,YACL,IAAK,MACD,OAAOc,GAAI,KACf,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,cACD,MAAO,CAACd,GAAiBF,IAC7B,IAAK,UACL,IAAK,QACD,OAAOgB,GAAI,KAEnB,OAAO,GAEPA,GAAM,SAAUA,GAAO,OAAQz4C,KAAK+F,GAAK0yC,EAAO,KAEhDC,GAAU,CACVp0B,KAAM,QACN9S,MAAO,SAAU+wB,EAAStwC,GACtB,GAAmB,KAAfA,EAAMkH,KAA4B,CAClC,IAAIw/C,EAAgBC,GAA0B3mD,EAAMqyB,MACpD,GAA6B,qBAAlBq0B,EACP,MAAM,IAAIz/C,MAAM,sDAAyDjH,EAAMqyB,KAAO,KAE1F,OAAOq0B,EAAcpW,EAAStwC,EAAMokD,QAExC,GAAmB,IAAfpkD,EAAMkH,KAA6B,CACnC,GAA2B,IAAvBlH,EAAMA,MAAMgE,OAAc,CAC1B,IAAIZ,EAAIpD,EAAMA,MAAM6oB,UAAU,EAAG,GAC7Bjc,EAAI5M,EAAMA,MAAM6oB,UAAU,EAAG,GAC7BT,EAAIpoB,EAAMA,MAAM6oB,UAAU,EAAG,GACjC,OAAOqnB,GAAKnpC,SAAS3D,EAAIA,EAAG,IAAK2D,SAAS6F,EAAIA,EAAG,IAAK7F,SAASqhB,EAAIA,EAAG,IAAK,GAE/E,GAA2B,IAAvBpoB,EAAMA,MAAMgE,OAAc,CACtBZ,EAAIpD,EAAMA,MAAM6oB,UAAU,EAAG,GAC7Bjc,EAAI5M,EAAMA,MAAM6oB,UAAU,EAAG,GAC7BT,EAAIpoB,EAAMA,MAAM6oB,UAAU,EAAG,GAFjC,IAGIrlB,EAAIxD,EAAMA,MAAM6oB,UAAU,EAAG,GACjC,OAAOqnB,GAAKnpC,SAAS3D,EAAIA,EAAG,IAAK2D,SAAS6F,EAAIA,EAAG,IAAK7F,SAASqhB,EAAIA,EAAG,IAAKrhB,SAASvD,EAAIA,EAAG,IAAM,KAErG,GAA2B,IAAvBxD,EAAMA,MAAMgE,OAAc,CACtBZ,EAAIpD,EAAMA,MAAM6oB,UAAU,EAAG,GAC7Bjc,EAAI5M,EAAMA,MAAM6oB,UAAU,EAAG,GAC7BT,EAAIpoB,EAAMA,MAAM6oB,UAAU,EAAG,GACjC,OAAOqnB,GAAKnpC,SAAS3D,EAAG,IAAK2D,SAAS6F,EAAG,IAAK7F,SAASqhB,EAAG,IAAK,GAEnE,GAA2B,IAAvBpoB,EAAMA,MAAMgE,OAAc,CACtBZ,EAAIpD,EAAMA,MAAM6oB,UAAU,EAAG,GAC7Bjc,EAAI5M,EAAMA,MAAM6oB,UAAU,EAAG,GAC7BT,EAAIpoB,EAAMA,MAAM6oB,UAAU,EAAG,GAC7BrlB,EAAIxD,EAAMA,MAAM6oB,UAAU,EAAG,GACjC,OAAOqnB,GAAKnpC,SAAS3D,EAAG,IAAK2D,SAAS6F,EAAG,IAAK7F,SAASqhB,EAAG,IAAKrhB,SAASvD,EAAG,IAAM,MAGzF,GAAmB,KAAfxD,EAAMkH,KAA+B,CACrC,IAAI0/C,EAAaC,GAAO7mD,EAAMA,MAAM8mD,eACpC,GAA0B,qBAAfF,EACP,OAAOA,EAGf,OAAOC,GAAOE,cAGlBC,GAAgB,SAAU5+C,GAAS,OAA0B,KAAlB,IAAOA,IAClD6+C,GAAW,SAAU7+C,GACrB,IAAI8+C,EAAQ,IAAO9+C,EACf++C,EAAO,IAAQ/+C,GAAS,EACxBg/C,EAAQ,IAAQh/C,GAAS,GACzBi/C,EAAM,IAAQj/C,GAAS,GAC3B,OAAO8+C,EAAQ,IAAM,QAAUG,EAAM,IAAMD,EAAQ,IAAMD,EAAO,IAAMD,EAAQ,IAAM,IAAM,OAASG,EAAM,IAAMD,EAAQ,IAAMD,EAAO,KAEpIjX,GAAO,SAAU9sC,EAAGwJ,EAAGwb,EAAG5kB,GAC1B,OAASJ,GAAK,GAAOwJ,GAAK,GAAOwb,GAAK,EAAMra,KAAKsE,MAAU,IAAJ7O,IAAY,KAAQ,GAE3E8jD,GAAqB,SAAUvG,EAAOz+C,GACtC,GAAmB,KAAfy+C,EAAM75C,KACN,OAAO65C,EAAMuC,OAEjB,GAAmB,KAAfvC,EAAM75C,KAAoC,CAC1C,IAAI8M,EAAY,IAAN1R,EAAU,EAAI,IACxB,OAAa,IAANA,EAAWy+C,EAAMuC,OAAS,IAAOtvC,EAAMjG,KAAKsE,MAAO0uC,EAAMuC,OAAS,IAAOtvC,GAEpF,OAAO,GAEPuzC,GAAM,SAAUpB,EAAUhB,GAC1B,IAAIrE,EAASqE,EAAK9sC,OAAO4sC,IACzB,GAAsB,IAAlBnE,EAAO98C,OAAc,CACrB,IAAIg2C,EAAK8G,EAAOjwC,IAAIy2C,IAAqBlkD,EAAI42C,EAAG,GAAIptC,EAAIotC,EAAG,GAAI5xB,EAAI4xB,EAAG,GACtE,OAAO9J,GAAK9sC,EAAGwJ,EAAGwb,EAAG,GAEzB,GAAsB,IAAlB04B,EAAO98C,OAAc,CACrB,IAAIwjD,EAAK1G,EAAOjwC,IAAIy2C,IAAsD9jD,GAAjCJ,EAAIokD,EAAG,GAAI56C,EAAI46C,EAAG,GAAIp/B,EAAIo/B,EAAG,GAAQA,EAAG,IACjF,OAAOtX,GAAK9sC,EAAGwJ,EAAGwb,EAAG5kB,GAEzB,OAAO,GAEX,SAASikD,GAAQC,EAAIC,EAAIC,GAOrB,OANIA,EAAM,IACNA,GAAO,GAEPA,GAAO,IACPA,GAAO,GAEPA,EAAM,EAAI,GACFD,EAAKD,GAAME,EAAM,EAAIF,EAExBE,EAAM,GACJD,EAEFC,EAAM,EAAI,EACI,GAAXD,EAAKD,IAAW,EAAI,EAAIE,GAAOF,EAGhCA,EAGf,IAAIG,GAAM,SAAUvX,EAAS6U,GACzB,IAAIrE,EAASqE,EAAK9sC,OAAO4sC,IACrB2C,EAAM9G,EAAO,GAAIgH,EAAahH,EAAO,GAAIiH,EAAYjH,EAAO,GAAIoG,EAAQpG,EAAO,GAC/Ev9C,GAAkB,KAAbqkD,EAAI1gD,KAAiCs/C,GAAIoB,EAAItE,QAAU4C,GAAM3mC,MAAM+wB,EAASsX,KAAmB,EAAV75C,KAAK+F,IAC/F3Q,EAAImiD,GAAmBwC,GAAcA,EAAWxE,OAAS,IAAM,EAC/DjgD,EAAIiiD,GAAmByC,GAAaA,EAAUzE,OAAS,IAAM,EAC7D9/C,EAAqB,qBAAV0jD,GAAyB5B,GAAmB4B,GAASrB,GAAiBqB,EAAO,GAAK,EACjG,GAAU,IAAN/jD,EACA,OAAO+sC,GAAS,IAAJ7sC,EAAa,IAAJA,EAAa,IAAJA,EAAS,GAE3C,IAAIskD,EAAKtkD,GAAK,GAAMA,GAAKF,EAAI,GAAKE,EAAIF,EAAIE,EAAIF,EAC1CukD,EAAS,EAAJrkD,EAAQskD,EACbvkD,EAAIqkD,GAAQC,EAAIC,EAAIpkD,EAAI,EAAI,GAC5BqJ,EAAI66C,GAAQC,EAAIC,EAAIpkD,GACpB6kB,EAAIq/B,GAAQC,EAAIC,EAAIpkD,EAAI,EAAI,GAChC,OAAO2sC,GAAS,IAAJ9sC,EAAa,IAAJwJ,EAAa,IAAJwb,EAAS5kB,IAEvCmjD,GAA4B,CAC5BkB,IAAKA,GACLG,KAAMH,GACNN,IAAKA,GACLU,KAAMV,IAENW,GAAa,SAAU5X,EAAStwC,GAChC,OAAOymD,GAAQlnC,MAAM+wB,EAASoT,GAAO5U,OAAO9uC,GAAO8jD,wBAEnD+C,GAAS,CACTsB,UAAW,WACXC,aAAc,WACdC,KAAM,SACNC,WAAY,WACZC,MAAO,WACPC,MAAO,WACPC,OAAQ,WACRC,MAAO,IACPC,eAAgB,WAChBC,KAAM,MACNC,WAAY,WACZC,MAAO,WACPC,UAAW,WACXC,UAAW,WACXC,WAAY,WACZC,UAAW,WACXC,MAAO,WACPC,eAAgB,WAChBC,SAAU,WACVC,QAAS,WACTC,KAAM,SACNC,SAAU,MACVC,SAAU,QACVC,cAAe,WACfC,SAAU,WACVC,UAAW,QACXC,SAAU,WACVC,UAAW,WACXC,YAAa,WACbC,eAAgB,WAChBC,WAAY,WACZC,WAAY,WACZC,QAAS,WACTC,WAAY,WACZC,aAAc,WACdC,cAAe,WACfC,cAAe,UACfC,cAAe,UACfC,cAAe,SACfC,WAAY,WACZC,SAAU,WACVC,YAAa,SACbC,QAAS,WACTC,QAAS,WACTC,WAAY,UACZC,UAAW,WACXC,YAAa,WACbC,YAAa,UACbC,QAAS,WACTC,UAAW,WACXC,WAAY,WACZC,KAAM,WACNC,UAAW,WACXC,KAAM,WACNC,MAAO,QACPC,YAAa,WACbC,KAAM,WACNC,SAAU,WACVC,QAAS,WACTC,UAAW,WACXC,OAAQ,WACRC,MAAO,WACPC,MAAO,WACPC,SAAU,WACVC,cAAe,WACfC,UAAW,WACXC,aAAc,WACdC,UAAW,WACXC,WAAY,WACZC,UAAW,WACXC,qBAAsB,WACtBC,UAAW,WACXC,WAAY,WACZC,UAAW,WACXC,UAAW,WACXC,YAAa,WACbC,cAAe,UACfC,aAAc,WACdC,eAAgB,WAChBC,eAAgB,WAChBC,eAAgB,WAChBC,YAAa,WACbC,KAAM,SACNC,UAAW,UACXC,MAAO,WACPC,QAAS,WACTC,OAAQ,WACRC,iBAAkB,WAClBC,WAAY,MACZC,aAAc,WACdC,aAAc,WACdC,eAAgB,WAChBC,gBAAiB,WACjBC,kBAAmB,SACnBC,gBAAiB,WACjBC,gBAAiB,WACjBC,aAAc,UACdC,UAAW,WACXC,UAAW,WACXC,SAAU,WACVC,YAAa,WACbC,KAAM,MACNC,QAAS,WACTC,MAAO,WACPC,UAAW,WACXC,OAAQ,WACRC,UAAW,WACXC,OAAQ,WACRC,cAAe,WACfC,UAAW,WACXC,cAAe,WACfC,cAAe,WACfC,WAAY,WACZC,UAAW,WACXC,KAAM,WACNC,KAAM,WACNC,KAAM,WACNC,WAAY,WACZC,OAAQ,WACRC,cAAe,WACfC,IAAK,WACLC,UAAW,WACXC,UAAW,WACXC,YAAa,WACbC,OAAQ,WACRC,WAAY,WACZC,SAAU,UACVC,SAAU,WACVC,OAAQ,WACRC,OAAQ,WACRC,QAAS,WACTC,UAAW,WACXC,UAAW,WACXC,UAAW,WACXC,KAAM,WACNC,YAAa,SACbC,UAAW,WACXC,IAAK,WACLC,KAAM,QACNC,QAAS,WACTC,OAAQ,WACRhK,YAAa,EACbiK,UAAW,WACXC,OAAQ,WACRC,MAAO,WACPC,MAAO,WACPC,WAAY,WACZC,OAAQ,WACRC,YAAa,YAGbC,GAAiB,CACjBl/B,KAAM,kBACNsiB,aAAc,aACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUrF,GACvB,OAAOA,EAAOjwC,KAAI,SAAUkwC,GACxB,GAAI8D,GAAa9D,GACb,OAAQA,EAAM/gD,OACV,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EAGnB,OAAO,OAKfua,GAAkB,CAClB8X,KAAM,mBACNsiB,aAAc,cACd6c,QAAQ,EACRtqD,KAAM,EACNuqD,OAAQ,SAGRC,GAAiB,SAAUphB,EAAS6U,GACpC,IAAI/8C,EAAQq+C,GAAQlnC,MAAM+wB,EAAS6U,EAAK,IACpC35B,EAAO25B,EAAK,GAChB,OAAO35B,GAAQ85B,GAAmB95B,GAAQ,CAAEpjB,MAAOA,EAAOojB,KAAMA,GAAS,CAAEpjB,MAAOA,EAAOojB,KAAM,OAE/FmmC,GAAoB,SAAUC,EAAOC,GACrC,IAAIC,EAAQF,EAAM,GACdG,EAAOH,EAAMA,EAAM5tD,OAAS,GACb,OAAf8tD,EAAMtmC,OACNsmC,EAAMtmC,KAAOg6B,IAEC,OAAduM,EAAKvmC,OACLumC,EAAKvmC,KAAOk6B,IAIhB,IAFA,IAAIsM,EAAe,GACfC,EAAW,EACN3vD,EAAI,EAAGA,EAAIsvD,EAAM5tD,OAAQ1B,IAAK,CACnC,IAAI4vD,EAASN,EAAMtvD,GAAGkpB,KACtB,GAAe,OAAX0mC,EAAiB,CACjB,IAAIC,EAAgBtM,GAAiBqM,EAAQL,GACzCM,EAAgBF,EAChBD,EAAajmD,KAAKomD,GAGlBH,EAAajmD,KAAKkmD,GAEtBA,EAAWE,OAGXH,EAAajmD,KAAK,MAG1B,IAAIqmD,EAAW,KACf,IAAS9vD,EAAI,EAAGA,EAAI0vD,EAAahuD,OAAQ1B,IAAK,CAC1C,IAAI+vD,EAASL,EAAa1vD,GAC1B,GAAe,OAAX+vD,EACiB,OAAbD,IACAA,EAAW9vD,QAGd,GAAiB,OAAb8vD,EAAmB,CAIxB,IAHA,IAAIE,EAAYhwD,EAAI8vD,EAChBG,EAAYP,EAAaI,EAAW,GACpCI,GAAYH,EAASE,IAAcD,EAAY,GAC1C1lD,EAAI,EAAGA,GAAK0lD,EAAW1lD,IAC5BolD,EAAaI,EAAWxlD,EAAI,GAAK4lD,EAAW5lD,EAEhDwlD,EAAW,MAGnB,OAAOR,EAAM/gD,KAAI,SAAUmpC,EAAI13C,GAC3B,IAAI8F,EAAQ4xC,EAAG5xC,MACf,MAAO,CAAEA,MAAOA,EAAOojB,KAAMzd,KAAKiG,IAAIjG,KAAK6J,IAAI,EAAGo6C,EAAa1vD,GAAKuvD,GAAa,QAGrFY,GAAqB,SAAUC,EAAQ7tD,EAAOC,GAC9C,IAAI6tD,EAAU9tD,EAAQ,EAClB+tD,EAAU9tD,EAAS,EACnB0D,EAAIq9C,GAAiB6M,EAAO,GAAI7tD,GAAS8tD,EACzClqD,EAAImqD,EAAU/M,GAAiB6M,EAAO,GAAI5tD,GAC9C,OAAQiJ,KAAKyF,MAAM/K,EAAGD,GAAe,EAAVuF,KAAK+F,KAAqB,EAAV/F,KAAK+F,KAEhD++C,GAA6B,SAAU3M,EAAOrhD,EAAOC,GACrD,IAAIguD,EAA0B,kBAAV5M,EAAqBA,EAAQuM,GAAmBvM,EAAOrhD,EAAOC,GAC9E+sD,EAAa9jD,KAAKC,IAAInJ,EAAQkJ,KAAK8F,IAAIi/C,IAAW/kD,KAAKC,IAAIlJ,EAASiJ,KAAKgG,IAAI++C,IAC7EC,EAAYluD,EAAQ,EACpBmuD,EAAaluD,EAAS,EACtBmuD,EAAiBpB,EAAa,EAC9BqB,EAAQnlD,KAAK8F,IAAIi/C,EAAS/kD,KAAK+F,GAAK,GAAKm/C,EACzCE,EAAQplD,KAAKgG,IAAI++C,EAAS/kD,KAAK+F,GAAK,GAAKm/C,EAC7C,MAAO,CAACpB,EAAYkB,EAAYI,EAAOJ,EAAYI,EAAOH,EAAaE,EAAOF,EAAaE,IAE3FE,GAAW,SAAU5vD,EAAG4kB,GAAK,OAAOra,KAAK8E,KAAKrP,EAAIA,EAAI4kB,EAAIA,IAC1DirC,GAAa,SAAUxuD,EAAOC,EAAQ0D,EAAGC,EAAG6qD,GAC5C,IAAIC,EAAU,CACV,CAAC,EAAG,GACJ,CAAC,EAAGzuD,GACJ,CAACD,EAAO,GACR,CAACA,EAAOC,IAEZ,OAAOyuD,EAAQ58C,QAAO,SAAU68C,EAAMd,GAClC,IAAIv5B,EAAKu5B,EAAO,GAAIt5B,EAAKs5B,EAAO,GAC5BtuD,EAAIgvD,GAAS5qD,EAAI2wB,EAAI1wB,EAAI2wB,GAC7B,OAAIk6B,EAAUlvD,EAAIovD,EAAKC,gBAAkBrvD,EAAIovD,EAAKC,iBACvC,CACHC,cAAehB,EACfe,gBAAiBrvD,GAGlBovD,IACR,CACCC,gBAAiBH,EAAUK,KAAYA,IACvCD,cAAe,OAChBA,eAEHE,GAAkB,SAAUC,EAAUrrD,EAAGC,EAAG5D,EAAOC,GACnD,IAAIgvD,EAAK,EACLC,EAAK,EACT,OAAQF,EAASG,MACb,KAAK,EAGsB,IAAnBH,EAASI,MACTH,EAAKC,EAAKhmD,KAAK6J,IAAI7J,KAAKC,IAAIxF,GAAIuF,KAAKC,IAAIxF,EAAI3D,GAAQkJ,KAAKC,IAAIvF,GAAIsF,KAAKC,IAAIvF,EAAI3D,IAEvD,IAAnB+uD,EAASI,QACdH,EAAK/lD,KAAK6J,IAAI7J,KAAKC,IAAIxF,GAAIuF,KAAKC,IAAIxF,EAAI3D,IACxCkvD,EAAKhmD,KAAK6J,IAAI7J,KAAKC,IAAIvF,GAAIsF,KAAKC,IAAIvF,EAAI3D,KAE5C,MACJ,KAAK,EAGD,GAAuB,IAAnB+uD,EAASI,MACTH,EAAKC,EAAKhmD,KAAK6J,IAAIw7C,GAAS5qD,EAAGC,GAAI2qD,GAAS5qD,EAAGC,EAAI3D,GAASsuD,GAAS5qD,EAAI3D,EAAO4D,GAAI2qD,GAAS5qD,EAAI3D,EAAO4D,EAAI3D,SAE3G,GAAuB,IAAnB+uD,EAASI,MAA2B,CAEzC,IAAI1vD,EAAIwJ,KAAK6J,IAAI7J,KAAKC,IAAIvF,GAAIsF,KAAKC,IAAIvF,EAAI3D,IAAWiJ,KAAK6J,IAAI7J,KAAKC,IAAIxF,GAAIuF,KAAKC,IAAIxF,EAAI3D,IACrFm1C,EAAKqZ,GAAWxuD,EAAOC,EAAQ0D,EAAGC,GAAG,GAAO0wB,EAAK6gB,EAAG,GAAI5gB,EAAK4gB,EAAG,GACpE8Z,EAAKV,GAASj6B,EAAK3wB,GAAI4wB,EAAK3wB,GAAKlE,GACjCwvD,EAAKxvD,EAAIuvD,EAEb,MACJ,KAAK,EAEsB,IAAnBD,EAASI,MACTH,EAAKC,EAAKhmD,KAAKiG,IAAIjG,KAAKC,IAAIxF,GAAIuF,KAAKC,IAAIxF,EAAI3D,GAAQkJ,KAAKC,IAAIvF,GAAIsF,KAAKC,IAAIvF,EAAI3D,IAEvD,IAAnB+uD,EAASI,QACdH,EAAK/lD,KAAKiG,IAAIjG,KAAKC,IAAIxF,GAAIuF,KAAKC,IAAIxF,EAAI3D,IACxCkvD,EAAKhmD,KAAKiG,IAAIjG,KAAKC,IAAIvF,GAAIsF,KAAKC,IAAIvF,EAAI3D,KAE5C,MACJ,KAAK,EAGD,GAAuB,IAAnB+uD,EAASI,MACTH,EAAKC,EAAKhmD,KAAKiG,IAAIo/C,GAAS5qD,EAAGC,GAAI2qD,GAAS5qD,EAAGC,EAAI3D,GAASsuD,GAAS5qD,EAAI3D,EAAO4D,GAAI2qD,GAAS5qD,EAAI3D,EAAO4D,EAAI3D,SAE3G,GAAuB,IAAnB+uD,EAASI,MAA2B,CAErC1vD,EAAIwJ,KAAKiG,IAAIjG,KAAKC,IAAIvF,GAAIsF,KAAKC,IAAIvF,EAAI3D,IAAWiJ,KAAKiG,IAAIjG,KAAKC,IAAIxF,GAAIuF,KAAKC,IAAIxF,EAAI3D,IAAzF,IACI2iD,EAAK6L,GAAWxuD,EAAOC,EAAQ0D,EAAGC,GAAG,GAAQ0wB,EAAKquB,EAAG,GAAIpuB,EAAKouB,EAAG,GACrEsM,EAAKV,GAASj6B,EAAK3wB,GAAI4wB,EAAK3wB,GAAKlE,GACjCwvD,EAAKxvD,EAAIuvD,EAEb,MAMR,OAJIhjD,MAAMC,QAAQ8iD,EAASG,QACvBF,EAAKjO,GAAiBgO,EAASG,KAAK,GAAInvD,GACxCkvD,EAA8B,IAAzBF,EAASG,KAAKhwD,OAAe6hD,GAAiBgO,EAASG,KAAK,GAAIlvD,GAAUgvD,GAE5E,CAACA,EAAIC,IAGZG,GAAiB,SAAU5jB,EAASwQ,GACpC,IAAIqT,EAAU3N,GAAI,KACdoL,EAAQ,GAgBZ,OAfA1M,GAAkBpE,GAAQh3C,SAAQ,SAAUs7C,EAAK9iD,GAC7C,GAAU,IAANA,EAAS,CACT,IAAI8xD,EAAahP,EAAI,GACrB,GAAwB,KAApBgP,EAAWltD,MAAsD,OAArBktD,EAAWp0D,MAEvD,YADAm0D,EAAU9N,GAAejB,IAGxB,GAAIgB,GAAQgO,GAEb,YADAD,EAAUjO,GAAM3mC,MAAM+wB,EAAS8jB,IAIvC,IAAIC,EAAY3C,GAAephB,EAAS8U,GACxCwM,EAAM7lD,KAAKsoD,MAER,CAAEnO,MAAOiO,EAASvC,MAAOA,EAAO1qD,KAAM,IAG7CotD,GAAuB,SAAUhkB,EAASwQ,GAC1C,IAAIqT,EAAU3N,GAAI,KACdoL,EAAQ,GAiBZ,OAhBA1M,GAAkBpE,GAAQh3C,SAAQ,SAAUs7C,EAAK9iD,GAC7C,GAAU,IAANA,EAAS,CACT,IAAI8xD,EAAahP,EAAI,GACrB,GAAwB,KAApBgP,EAAWltD,OACuD,IAAlE,CAAC,MAAO,OAAQ,QAAS,UAAUrI,QAAQu1D,EAAWp0D,OAEtD,YADAm0D,EAAU9N,GAAejB,IAGxB,GAAIgB,GAAQgO,GAEb,YADAD,GAAWjO,GAAM3mC,MAAM+wB,EAAS8jB,GAAc5N,GAAI,MAAQA,GAAI,MAItE,IAAI6N,EAAY3C,GAAephB,EAAS8U,GACxCwM,EAAM7lD,KAAKsoD,MAER,CACHnO,MAAOiO,EACPvC,MAAOA,EACP1qD,KAAM,IAIVqtD,GAAiB,SAAUjkB,EAASwQ,GACpC,IAAIoF,EAAQM,GAAI,KACZoL,EAAQ,GACR1qD,EAAO,EACP+sD,EAAQ,EACRD,EAAO,EACPpvD,EAAW,GAqCf,OApCAsgD,GAAkBpE,GAAQh3C,SAAQ,SAAUs7C,EAAK9iD,GAC7C,IAAI8xD,EAAahP,EAAI,GACrB,GAAU,IAAN9iD,EAAS,CACT,GAAIuiD,GAAauP,IAAoC,WAArBA,EAAWp0D,MAEvC,YADAkH,EAAO,GAGN,GAAI29C,GAAauP,IAAoC,WAArBA,EAAWp0D,MAE5C,YADAkH,EAAO,GAIf,GAAwB,KAApBktD,EAAWltD,KACX,GAAwB,SAApBktD,EAAW/hC,KAAiB,CAC5B,IAAIjqB,EAAQq+C,GAAQlnC,MAAM+wB,EAAS8jB,EAAWhQ,OAAO,IACrDwN,EAAM7lD,KAAK,CAAEyf,KAAMg6B,GAAap9C,MAAOA,SAEtC,GAAwB,OAApBgsD,EAAW/hC,KAAe,CAC3BjqB,EAAQq+C,GAAQlnC,MAAM+wB,EAAS8jB,EAAWhQ,OAAO,IACrDwN,EAAM7lD,KAAK,CAAEyf,KAAMk6B,GAAiBt9C,MAAOA,SAE1C,GAAwB,eAApBgsD,EAAW/hC,KAAuB,CACvC,IAAI+xB,EAASgQ,EAAWhQ,OAAO/rC,OAAO4sC,IACtC,GAAsB,IAAlBb,EAAOpgD,OAAc,CACjBoE,EAAQq+C,GAAQlnC,MAAM+wB,EAAS8T,EAAO,IAA1C,IACI8N,EAAS9N,EAAO,GAChBQ,GAAcsN,IACdN,EAAM7lD,KAAK,CACPyf,KAAM,CAAEtkB,KAAM,GAA2Bo8C,OAAwB,IAAhB4O,EAAO5O,OAAclC,MAAO8Q,EAAO9Q,OACpFh5C,MAAOA,SAOf,IAATlB,EACD,CACEg/C,OAAQA,EAAQM,GAAI,MAAQA,GAAI,KAChCoL,MAAOA,EACP1qD,KAAMA,GAER,CAAE8sD,KAAMA,EAAMC,MAAOA,EAAOrC,MAAOA,EAAOhtD,SAAUA,EAAUsC,KAAMA,IAG1EstD,GAAe,eACfC,GAAgB,gBAChBC,GAAiB,iBACjBC,GAAkB,kBAClBC,GAAS,SACTC,GAAU,UACVC,GAAQ,QACRC,GAAU,UACVC,GAAiB,SAAU1kB,EAASwQ,GACpC,IAAImT,EAAQ,EACRD,EAAO,EACPpC,EAAQ,GACRhtD,EAAW,GAoEf,OAnEAsgD,GAAkBpE,GAAQh3C,SAAQ,SAAUs7C,EAAK9iD,GAC7C,IAAI2yD,GAAc,EAClB,GAAU,IAAN3yD,EAAS,CACT,IAAI4yD,GAAiB,EACrBD,EAAc7P,EAAIzuC,QAAO,SAAUw+C,EAAKpU,GACpC,GAAImU,EACA,GAAIrQ,GAAa9D,GACb,OAAQA,EAAM/gD,OACV,IAAK,SAED,OADA4E,EAASmH,KAAK05C,IACP0P,EACX,IAAK,MACL,IAAK,OAED,OADAvwD,EAASmH,KAAKy5C,IACP2P,EACX,IAAK,QACL,IAAK,SAED,OADAvwD,EAASmH,KAAK25C,IACPyP,OAGV7P,GAAmBvE,IAAUsE,GAAStE,KAC3Cn8C,EAASmH,KAAKg1C,QAGjB,GAAI8D,GAAa9D,GAClB,OAAQA,EAAM/gD,OACV,KAAK40D,GAED,OADAX,EAAQ,GACD,EACX,KAAKY,GAED,OADAZ,EAAQ,GACD,EACX,IAAK,KAED,OADAiB,GAAiB,GACV,EACX,KAAKV,GAED,OADAR,EAAO,GACA,EACX,KAAKc,GACL,KAAKL,GAED,OADAT,EAAO,GACA,EACX,KAAKe,GACL,KAAKL,GAED,OADAV,EAAO,GACA,EACX,KAAKW,GAED,OADAX,EAAO,GACA,OAGd,GAAI3O,GAAStE,IAAUuE,GAAmBvE,GAK3C,OAJKjwC,MAAMC,QAAQijD,KACfA,EAAO,IAEXA,EAAKjoD,KAAKg1C,IACH,EAEX,OAAOoU,IACRF,GAEP,GAAIA,EAAa,CACb,IAAIZ,EAAY3C,GAAephB,EAAS8U,GACxCwM,EAAM7lD,KAAKsoD,OAGZ,CAAEL,KAAMA,EAAMC,MAAOA,EAAOrC,MAAOA,EAAOhtD,SAAUA,EAAUsC,KAAM,IAG3EkuD,GAAuB,SAAU9kB,EAASwQ,GAC1C,IAAImT,EAAQ,EACRD,EAAO,EACPpC,EAAQ,GACRhtD,EAAW,GAoEf,OAnEAsgD,GAAkBpE,GAAQh3C,SAAQ,SAAUs7C,EAAK9iD,GAC7C,IAAI2yD,GAAc,EA6DlB,GA5DU,IAAN3yD,EACA2yD,EAAc7P,EAAIzuC,QAAO,SAAUw+C,EAAKpU,GACpC,GAAI8D,GAAa9D,GACb,OAAQA,EAAM/gD,OACV,IAAK,SAED,OADA4E,EAASmH,KAAK05C,KACP,EACX,IAAK,MACL,IAAK,OAED,OADA7gD,EAASmH,KAAKy5C,KACP,EACX,IAAK,QACL,IAAK,SAED,OADA5gD,EAASmH,KAAK25C,KACP,OAGd,GAAIJ,GAAmBvE,IAAUsE,GAAStE,GAE3C,OADAn8C,EAASmH,KAAKg1C,IACP,EAEX,OAAOoU,IACRF,GAEQ,IAAN3yD,IACL2yD,EAAc7P,EAAIzuC,QAAO,SAAUw+C,EAAKpU,GACpC,GAAI8D,GAAa9D,GACb,OAAQA,EAAM/gD,OACV,KAAK40D,GAED,OADAX,EAAQ,GACD,EACX,KAAKY,GAED,OADAZ,EAAQ,GACD,EACX,KAAKc,GACL,KAAKP,GAED,OADAR,EAAO,GACA,EACX,KAAKS,GAED,OADAT,EAAO,GACA,EACX,KAAKU,GAED,OADAV,EAAO,GACA,EACX,KAAKc,GACL,KAAKH,GAED,OADAX,EAAO,GACA,OAGd,GAAI3O,GAAStE,IAAUuE,GAAmBvE,GAK3C,OAJKjwC,MAAMC,QAAQijD,KACfA,EAAO,IAEXA,EAAKjoD,KAAKg1C,IACH,EAEX,OAAOoU,IACRF,IAEHA,EAAa,CACb,IAAIZ,EAAY3C,GAAephB,EAAS8U,GACxCwM,EAAM7lD,KAAKsoD,OAGZ,CAAEL,KAAMA,EAAMC,MAAOA,EAAOrC,MAAOA,EAAOhtD,SAAUA,EAAUsC,KAAM,IAG3EmuD,GAAmB,SAAUC,GAC7B,OAA2B,IAApBA,EAAWpuD,MAElBquD,GAAmB,SAAUD,GAC7B,OAA2B,IAApBA,EAAWpuD,MAElBsuD,GAAQ,CACRnjC,KAAM,QACN9S,MAAO,SAAU+wB,EAAStwC,GACtB,GAAmB,KAAfA,EAAMkH,KAA6B,CACnC,IAAIuuD,EAAU,CAAErpB,IAAKpsC,EAAMA,MAAOkH,KAAM,GAExC,OADAopC,EAAQolB,MAAMC,SAAS31D,EAAMA,OACtBy1D,EAEX,GAAmB,KAAfz1D,EAAMkH,KAA4B,CAClC,IAAI0uD,EAAgBC,GAA0B71D,EAAMqyB,MACpD,GAA6B,qBAAlBujC,EACP,MAAM,IAAI3uD,MAAM,sDAAyDjH,EAAMqyB,KAAO,KAE1F,OAAOujC,EAActlB,EAAStwC,EAAMokD,QAExC,MAAM,IAAIn9C,MAAM,0BAA4BjH,EAAMkH,QAG1D,SAAS4uD,GAAiB91D,GACtB,QAAyB,KAAfA,EAAMkH,MAAiD,SAAhBlH,EAAMA,SACnC,KAAfA,EAAMkH,QAAgC2uD,GAA0B71D,EAAMqyB,OAE/E,IAiGI0jC,GAjGAF,GAA4B,CAC5B,kBAAmB3B,GACnB,uBAAwBI,GACxB,sBAAuBA,GACvB,qBAAsBA,GACtB,0BAA2BA,GAC3B,kBAAmBU,GACnB,uBAAwBI,GACxB,sBAAuBA,GACvB,qBAAsBA,GACtB,0BAA2BA,GAC3B,mBAAoBb,IAGpBp7C,GAAkB,CAClBkZ,KAAM,mBACNsiB,aAAc,OACdztC,KAAM,EACNsqD,QAAQ,EACRjyC,MAAO,SAAU+wB,EAASwQ,GACtB,GAAsB,IAAlBA,EAAO98C,OACP,MAAO,GAEX,IAAI8tD,EAAQhR,EAAO,GACnB,OAAmB,KAAfgR,EAAM5qD,MAAiD,SAAhB4qD,EAAM9xD,MACtC,GAEJ8gD,EACFzoC,QAAO,SAAUrY,GAAS,OAAOilD,GAAwBjlD,IAAU81D,GAAiB91D,MACpF6Q,KAAI,SAAU7Q,GAAS,OAAOw1D,GAAMj2C,MAAM+wB,EAAStwC,QAI5Dg2D,GAAmB,CACnB3jC,KAAM,oBACNsiB,aAAc,aACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUrF,GACvB,OAAOA,EAAOjwC,KAAI,SAAUkwC,GACxB,GAAI8D,GAAa9D,GACb,OAAQA,EAAM/gD,OACV,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EAGnB,OAAO,OAKfi2D,GAAqB,CACrB5jC,KAAM,sBACNsiB,aAAc,QACdztC,KAAM,EACNsqD,QAAQ,EACRjyC,MAAO,SAAU4mC,EAAUrF,GACvB,OAAOoE,GAAkBpE,GACpBjwC,KAAI,SAAUuzC,GAAU,OAAOA,EAAO/rC,OAAOitC,OAC7Cz0C,IAAI00C,MAIb2Q,GAAmB,CACnB7jC,KAAM,oBACNsiB,aAAc,SACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUrF,GACvB,OAAOoE,GAAkBpE,GACpBjwC,KAAI,SAAUuzC,GACf,OAAOA,EACF/rC,OAAOwsC,IACPh0C,KAAI,SAAUkwC,GAAS,OAAOA,EAAM/gD,SACpCuoB,KAAK,QAET1X,IAAIslD,MAGbA,GAAwB,SAAUn2D,GAClC,OAAQA,GACJ,IAAK,YACD,OAAO,EACX,IAAK,WACL,IAAK,mBACD,OAAO,EACX,IAAK,WACL,IAAK,mBACD,OAAO,EACX,IAAK,SACL,QACI,OAAO,KAKnB,SAAW+1D,GACPA,EAAgB,QAAU,OAC1BA,EAAgB,WAAa,UAC7BA,EAAgB,SAAW,SAH/B,CAIGA,KAAoBA,GAAkB,KACzC,IA6NIK,GA7NAC,GAAiB,CACjBhkC,KAAM,kBACNsiB,aAAc,IACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUrF,GACvB,OAAOoE,GAAkBpE,GAAQjwC,KAAI,SAAUuzC,GAAU,OAAOA,EAAO/rC,OAAOi+C,SAGlFA,GAA4B,SAAUt2D,GACtC,OAAO6kD,GAAa7kD,IAAUslD,GAAmBtlD,IAGjDu2D,GAAqB,SAAUC,GAAQ,MAAO,CAC9CnkC,KAAM,UAAYmkC,EAAO,SACzB7hB,aAAc,cACd6c,QAAQ,EACRtqD,KAAM,EACNuqD,OAAQ,UAERgF,GAAiBF,GAAmB,OACpCG,GAAmBH,GAAmB,SACtCI,GAAoBJ,GAAmB,UACvCK,GAAkBL,GAAmB,QAErCM,GAAsB,SAAUL,GAAQ,MAAO,CAC/CnkC,KAAM,iBAAmBmkC,EACzB7hB,aAAc,MACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUrF,GACvB,OAAOyE,GAA2BzE,EAAOzoC,OAAOitC,QAGpDwR,GAAsBD,GAAoB,YAC1CE,GAAuBF,GAAoB,aAC3CG,GAA0BH,GAAoB,gBAC9CI,GAAyBJ,GAAoB,eAE7CK,GAAqB,SAAUV,GAAQ,MAAO,CAC9CnkC,KAAM,UAAYmkC,EAAO,SACzB7hB,aAAc,QACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUxhD,GACvB,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EAEf,OAAO,KAGXwyD,GAAiBD,GAAmB,OACpCE,GAAmBF,GAAmB,SACtCG,GAAoBH,GAAmB,UACvCI,GAAkBJ,GAAmB,QAErCK,GAAqB,SAAUf,GAAQ,MAAO,CAC9CnkC,KAAM,UAAYmkC,EAAO,SACzB7hB,aAAc,IACdztC,KAAM,EACNsqD,QAAQ,EACRjyC,MAAO,SAAU4mC,EAAUpF,GACvB,OAAI4D,GAAiB5D,GACVA,EAAMuC,OAEV,KAGXkU,GAAiBD,GAAmB,OACpCE,GAAmBF,GAAmB,SACtCG,GAAoBH,GAAmB,UACvCI,GAAkBJ,GAAmB,QAErCnvD,GAAQ,CACRiqB,KAAM,QACNsiB,aAAc,cACd6c,QAAQ,EACRtqD,KAAM,EACNuqD,OAAQ,SAGRmG,GAAY,CACZvlC,KAAM,YACNsiB,aAAc,MACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUyR,GACvB,OAAQA,GACJ,IAAK,MACD,OAAO,EACX,IAAK,MACL,QACI,OAAO,KAKnBnyC,GAAU,CACV4M,KAAM,UACNsiB,aAAc,eACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUrF,GACvB,OAAOA,EAAOzoC,OAAOwsC,IAAcluC,QAAO,SAAUkhD,EAAK9W,GACrD,OAAO8W,EAAMC,GAAkB/W,EAAM/gD,SACtC,KAGP83D,GAAoB,SAAUryC,GAC9B,OAAQA,GACJ,IAAK,QACL,IAAK,cACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,OACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,OACL,IAAK,eACD,OAAO,IACX,IAAK,OACL,IAAK,WACD,OAAO,IACX,IAAK,OACD,OAAO,IACX,IAAK,UACD,OAAO,KACX,IAAK,YACD,OAAO,KACX,IAAK,kBACD,OAAO,KACX,IAAK,qBACD,OAAO,KACX,IAAK,qBACD,OAAO,MACX,IAAK,YACD,OAAO,MACX,IAAK,aACD,OAAO,MACX,IAAK,qBACD,OAAO,OACX,IAAK,eACD,OAAO,OACX,IAAK,gBACD,OAAO,OACX,IAAK,YACD,OAAO,QACX,IAAK,YACD,OAAO,QACX,IAAK,sBACD,OAAO,QACX,IAAK,sBACD,OAAO,QACX,IAAK,WACD,OAAO,SACX,IAAK,eACD,OAAO,SACX,IAAK,mBACD,OAAO,SACX,IAAK,eACD,OAAO,UACX,IAAK,cACD,OAAO,UACX,IAAK,cACD,OAAO,UAEf,OAAO,GAGPqX,GAAQ,CACRzK,KAAM,QACNsiB,aAAc,OACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUrpB,GACvB,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,QACD,OAAO,EACX,IAAK,eACD,OAAO,EACX,IAAK,aACD,OAAO,EAEf,OAAO,IAIXi7B,GAAgB,CAChB1lC,KAAM,iBACNsiB,aAAc,IACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUpF,GACvB,OAAmB,KAAfA,EAAM75C,MAAiD,WAAhB65C,EAAM/gD,MACtC,EAEQ,KAAf+gD,EAAM75C,MAGS,KAAf65C,EAAM75C,KAFC65C,EAAMuC,OAKV,KAKf,SAAW8S,GACPA,EAAW,UAAY,SACvBA,EAAW,UAAY,UAF3B,CAGGA,KAAeA,GAAa,KAC/B,IAgaI4B,GAhaApf,GAAY,CACZvmB,KAAM,aACNsiB,aAAc,SACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUvN,GACvB,OAAQA,GACJ,IAAK,SACD,OAAOwd,GAAW6B,OACtB,IAAK,SACL,QACI,OAAO7B,GAAW8B,UAK9BC,GAAa,CACb9lC,KAAM,cACNsiB,aAAc,SACd6c,QAAQ,EACRtqD,KAAM,GAENkxD,GAAoB,SAAUrX,EAAOvU,GACrC,OAAIqY,GAAa9D,IAA0B,WAAhBA,EAAM/gD,MACtB,IAAMwsC,EAEO,KAAfuU,EAAM75C,KACJslC,EAAWuU,EAAMuC,OAEnBgC,GAAmBvE,GACjB8E,GAAiB9E,EAAOvU,GAE5BA,GAGP6rB,GAAiB,CACjBhmC,KAAM,mBACNsiB,aAAc,OACdztC,KAAM,EACNsqD,QAAQ,EACRjyC,MAAO,SAAU+wB,EAASyQ,GACtB,OAAmB,KAAfA,EAAM75C,MAAiD,SAAhB65C,EAAM/gD,MACtC,KAEJw1D,GAAMj2C,MAAM+wB,EAASyQ,KAIhCuX,GAAoB,CACpBjmC,KAAM,sBACNsiB,aAAc,UACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUvhD,GACvB,OAAQA,GACJ,IAAK,SACD,OAAO,EACX,IAAK,UACL,QACI,OAAO,KAKnB2zD,GAAgB,CAChBlmC,KAAM,kBACNsiB,aAAc,OACd6c,QAAQ,EACRtqD,KAAM,EACNqY,MAAO,SAAU4mC,EAAUj/C,GACvB,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,UACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,uBACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,GACX,IAAK,eACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,qBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,aACD,OAAO,GACX,IAAK,mBACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,SACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,uBACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,MACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,SACD,OAAO,GACX,IAAK,OACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,i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K,IAAK,IAAK,GAAI,GAAI,GAC3G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEpDwF,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAGJknB,GAAS,CACT1sB,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEpDwF,OAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAGJmnB,GAAW,CACX3sB,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC1G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAE5DwF,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAGJonB,GAAwB,SAAUxrE,EAAO4X,EAAK5D,EAAKy3D,EAASC,EAAUC,GACtE,OAAI3rE,EAAQ4X,GAAO5X,EAAQg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","file":"js/chunk-6af14d80.5f190541.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"flex\":\"1\",\"display\":\"flex\",\"flex-direction\":\"column\"}},[_c('div',{ref:\"myPage\",staticStyle:{\"height\":\"350px\"}},[_c('RelationGraph',{ref:\"rg_gcgl\",attrs:{\"options\":_vm.options,\"on-node-click\":_vm.nodeClick},scopedSlots:_vm._u([{key:\"node\",fn:function(ref){\nvar node = ref.node;\nreturn [_c('div',{staticStyle:{\"height\":\"100%\",\"width\":\"100%\",\"display\":\"flex\",\"flex-direction\":\"column\",\"justify-content\":\"space-between\"}},[_c('div',{staticStyle:{\"flex\":\"1\",\"display\":\"flex\",\"justify-content\":\"center\",\"align-items\":\"center\"}},[_vm._v(_vm._s(node.text))]),_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-around\",\"background-color\":\"white\"}},[(node.id.indexOf('a') == -1)?_c('vxe-button',{attrs:{\"type\":\"text\",\"status\":\"success\",\"icon\":\"vxe-icon-edit\"},nativeOn:{\"mousedown\":function($event){$event.stopPropagation();},\"click\":function($event){$event.stopPropagation();return _vm.nodeEdit(node)}}}):_vm._e(),(node.id.indexOf('c') == -1)?_c('vxe-button',{attrs:{\"type\":\"text\",\"status\":\"success\",\"icon\":\"vxe-icon-add\"},nativeOn:{\"mousedown\":function($event){$event.stopPropagation();},\"click\":function($event){$event.stopPropagation();return _vm.nodeAdd(node)}}}):_vm._e(),(node.id.indexOf('a') == -1)?_c('vxe-button',{attrs:{\"type\":\"text\",\"status\":\"danger\",\"icon\":\"vxe-icon-delete\"},nativeOn:{\"mousedown\":function($event){$event.stopPropagation();},\"click\":function($event){$event.stopPropagation();return _vm.nodeDel(node)}}}):_vm._e()],1)])]}}])})],1),_c('WXCW81ProjectChart',{attrs:{\"nodeId\":_vm.nodeId,\"projectId\":_vm.gcId}}),_c('el-dialog',{attrs:{\"visible\":_vm.visible2,\"close-on-click-modal\":false,\"show-close\":false,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.visible2=$event}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('div',{staticStyle:{\"border-bottom\":\"1px solid #DCDFE6\"}},[_c('i',{staticClass:\"el-icon-s-help\",staticStyle:{\"color\":\"#409EFF\"}}),_vm._v(_vm._s(_vm.$t(\"lang.测位信息\")))])]},proxy:true},{key:\"footer\",fn:function(){return [_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row-reverse\"}},[_c('el-button',{staticStyle:{\"margin-left\":\"10px\"},attrs:{\"type\":\"primary\"},on:{\"click\":_vm.submit2}},[_vm._v(_vm._s(_vm.$t(\"lang.保存\")))]),_c('el-button',{attrs:{\"type\":\"info\"},on:{\"click\":function($event){_vm.visible2 = false}}},[_vm._v(_vm._s(_vm.$t(\"lang.取消\")))])],1)]},proxy:true}])},[_c('el-form',{ref:\"form2\",attrs:{\"model\":_vm.model2,\"label-width\":\"150px\",\"label-position\":\"left\",\"rules\":_vm.rules2}},[_c('el-form-item',{attrs:{\"label\":_vm.$t('lang.测位名称'),\"prop\":\"name\"}},[_c('el-input',{model:{value:(_vm.model2.name),callback:function ($$v) {_vm.$set(_vm.model2, \"name\", $$v)},expression:\"model2.name\"}})],1)],1)],1),_c('el-dialog',{attrs:{\"visible\":_vm.visible3,\"close-on-click-modal\":false,\"show-close\":false,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.visible3=$event}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('div',{staticStyle:{\"border-bottom\":\"1px solid #DCDFE6\"}},[_c('i',{staticClass:\"el-icon-s-help\",staticStyle:{\"color\":\"#409EFF\"}}),_vm._v(_vm._s(_vm.$t(\"lang.测点信息\")))])]},proxy:true},{key:\"footer\",fn:function(){return [_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row-reverse\"}},[_c('el-button',{staticStyle:{\"margin-left\":\"10px\"},attrs:{\"type\":\"primary\"},on:{\"click\":_vm.submit3}},[_vm._v(_vm._s(_vm.$t(\"lang.保存\")))]),_c('el-button',{attrs:{\"type\":\"info\"},on:{\"click\":function($event){_vm.visible3 = false}}},[_vm._v(_vm._s(_vm.$t(\"lang.取消\")))])],1)]},proxy:true}])},[_c('el-form',{ref:\"form3\",attrs:{\"model\":_vm.model3,\"label-width\":\"150px\",\"label-position\":\"left\",\"rules\":_vm.rules3}},[_c('el-form-item',{attrs:{\"label\":_vm.$t('lang.测点名称'),\"prop\":\"sensorId\"}},[_c('el-select',{staticStyle:{\"width\":\"100%\"},attrs:{\"placeholder\":_vm.$t('lang.请选择')},model:{value:(_vm.model3.sensorId),callback:function ($$v) {_vm.$set(_vm.model3, \"sensorId\", $$v)},expression:\"model3.sensorId\"}},_vm._l((_vm.myCompanySensor),function(item,index){return _c('el-option',{key:index,attrs:{\"label\":item.sensorName,\"value\":item.id}})}),1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","(function(){ try {var elementStyle = document.createElement('style'); elementStyle.appendChild(document.createTextNode(\"@charset \\\"UTF-8\\\";.c-mini-graph[data-v-4644c1f3]{height:100px;width:100px;position:absolute;margin-left:60px;margin-top:100px;z-index:999}.c-fixedLayout[data-v-4644c1f3]{position:fixed;top:100px}.c-mini-canvas[data-v-4644c1f3]{background-color:#aacbff;border:#7BA8FF solid 1px;opacity:.8;position:relative}.c-mini-view[data-v-4644c1f3]{background-color:#f5a565;border:#C03639 solid 1px;opacity:.5;color:#fff;font-size:14px;text-align:center;display:flex;align-items:center;justify-content:center;position:absolute}.c-mini-node[data-v-4644c1f3]{position:absolute;width:2px;height:2px;background-color:#000;border-radius:1px}.rg-icon[data-v-4d98fff5]{width:16px;height:16px;vertical-align:-3px;fill:currentColor;overflow:hidden}.c-mini-toolbar[data-v-4d98fff5]{width:44px;position:absolute;margin-top:170px;margin-right:10px;z-index:999;border:#bbbbbb solid 1px;background-color:#fff;box-shadow:0 0 8px #ccc;box-sizing:border-box}.c-fixedLayout[data-v-4d98fff5]{position:fixed;top:100px}.c-mb-button[data-v-4d98fff5]{height:44px;width:42px;margin-top:0;background-color:#fff;border-top:#efefef solid 1px;opacity:1;text-align:center;padding-top:3px;cursor:pointer;color:#999;font-size:18px;float:left;box-sizing:border-box;line-height:21px}.c-mb-button .c-mb-text[data-v-4d98fff5]{display:inline-block;height:14px;width:42px;font-size:12px;line-height:12px;margin-top:24px;margin-left:-28px;position:absolute;color:#262626}.c-mb-button-on[data-v-4d98fff5]{background-color:#2e74b5;border-top:#2E4E8F solid 1px;color:#fff}.c-mb-button[data-v-4d98fff5]:hover{background-color:#2e4e8f;border-top:#2E4E8F solid 1px;color:#fff}.c-mb-button:hover .c-mb-text[data-v-4d98fff5],.c-mb-button-on .c-mb-text[data-v-4d98fff5]{color:#fff}.c-mb-button .c-mb-child-panel[data-v-4d98fff5]{height:46px;position:absolute;margin-top:-26px;background-color:#fff;display:none;border:#bbbbbb solid 1px;box-shadow:0 0 8px #ccc;box-sizing:border-box}.c-mb-button:hover .c-mb-child-panel[data-v-4d98fff5]{display:block}.c-mb-button .c-mb-button[data-v-4d98fff5]{height:44px;width:42px;margin:0;border:none}.c-mb-button-c .c-mb-text[data-v-4d98fff5]{color:#262626!important}.c-mb-button-c:hover .c-mb-text[data-v-4d98fff5],.c-mb-button-on .c-mb-text[data-v-4d98fff5]{color:#fff!important}.c-loading-icon[data-v-4d98fff5]{animation:turn-data-v-4d98fff5 1s linear infinite}@keyframes turn-data-v-4d98fff5{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.relation-graph .rel-toolbar{position:absolute;z-index:300;background-color:#dcdcdc33;color:#999;box-shadow:0 0 2px #ccc;box-sizing:border-box;border-radius:5px;padding:3px}.relation-graph .rel-toolbar .rg-icon{flex-grow:1;width:16px;height:16px;fill:currentColor;overflow:hidden}.relation-graph .rel-toolbar .c-mb-button svg{margin:auto}.relation-graph .rel-toolbar .c-mb-button-on{color:#2e74b5}.relation-graph .rel-toolbar .c-mb-button:hover{background-color:#dcdcdc80}.relation-graph .rel-toolbar .c-loading-icon{animation:turn 1s linear infinite}.relation-graph .rel-toolbar .c-current-zoom{margin-top:0;height:20px;color:#262626;font-size:10px;text-align:center;line-height:20px;border-radius:3px}.relation-graph .rel-toolbar .c-mb-button{height:40px;margin-top:0;opacity:1;text-align:center;padding-top:3px;cursor:pointer;font-size:18px;box-sizing:border-box;line-height:21px;display:flex;align-items:center;justify-items:center;border-radius:3px}.relation-graph .rel-toolbar-v{width:45px}.relation-graph .rel-toolbar-h{height:45px}.relation-graph .rel-toolbar-h .c-mb-button{width:40px;height:100%;float:left}.relation-graph .rel-toolbar-h .c-current-zoom{width:40px;height:100%;float:left;line-height:40px}.relation-graph .rel-toolbar-h-right{right:15px}.relation-graph .rel-toolbar-h-left{left:15px}.relation-graph .rel-toolbar-h-center{left:calc((100% - 260px)/2)}.relation-graph .rel-toolbar-v-top{top:15px}.relation-graph .rel-toolbar-v-bottom{bottom:15px}.relation-graph .rel-toolbar-v-center{top:calc((100% - 260px)/2)}.relation-graph{box-sizing:border-box;position:relative}.relation-graph .rel-map svg.rg-icon{height:100%;width:100%}.relation-graph .rel-lines-svg{overflow:visible;width:10px;height:10px;position:absolute;left:0;top:0}.relation-graph .rel-linediv{overflow:visible;position:absolute;z-index:40;width:100%;top:0;left:0;--stroke: url(#lineStyle);--markerEnd: url(#arrow-default);--markerStart: url(#start-arrow-default);--markerEndChecked: url(#arrow-checked);--markerStartChecked: url(#start-arrow-checked)}.relation-graph .rel-linediv svg{overflow:visible}.relation-graph .rel-linediv-el-lines{z-index:60}.relation-graph .rel-lines-svg-el-lines{overflow:visible;width:10px;height:10px;position:absolute;left:0;top:0}.relation-graph .rel-map{background-color:#fff;overflow:hidden;cursor:default;user-select:none;opacity:.01;transition:none}.relation-graph .rel-map-ready{opacity:1;transition:opacity .5s ease}.relation-graph .rel-map-background-norepeat{background-repeat:no-repeat;background-position:right bottom}.relation-graph .rel-nodediv-for-webkit{position:absolute;width:100%;top:0;left:0;z-index:50}.relation-graph .rel-map-canvas{position:relative;top:0;left:0;border:0px;z-index:3;overflow:visible}.relation-graph .rel-canvas-slot{overflow:visible}.relation-graph .rel-canvas-slot-behind{z-index:30;overflow:visible;position:absolute;top:0;left:0}.relation-graph .rel-canvas-slot-above{z-index:70;overflow:visible;position:absolute;top:0;left:0}.relation-graph .rel-map ::v-deep img{-webkit-user-drag:none;-webkit-user-select:none}.relation-graph .c-rg-line-text{fill:#888;font-size:12px;paint-order:stroke}.relation-graph .c-rg-line-text-checked{stroke:#fd8b374d;stroke-width:2}.relation-graph .c-rg-line{fill-rule:nonzero;stroke-linecap:round}.relation-graph .rg-line-dashtype-1{stroke-dasharray:2,2,2;stroke-dashoffset:3px;stroke-linecap:butt;stroke-linejoin:bevel}.relation-graph .rg-line-dashtype-2{stroke-dasharray:5,5,5;stroke-dashoffset:3px;stroke-linecap:butt;stroke-linejoin:bevel}.relation-graph .rg-line-dashtype-3{stroke-dasharray:9,9,9;stroke-dashoffset:3px;stroke-linecap:butt;stroke-linejoin:bevel}.relation-graph .rg-line-dashtype-4{stroke-dasharray:5,5,15;stroke-dashoffset:3px;stroke-linecap:butt;stroke-linejoin:bevel}@keyframes ACTRGLineChecked{0%{stroke-dashoffset:352px;stroke-dasharray:5,5,5}50%{stroke-dasharray:5,5,5;stroke-dashoffset:3px}to{stroke-dashoffset:352px;stroke-dasharray:5,5,5}}@keyframes rg-line-anm2{0%{stroke-dashoffset:0;stroke-dasharray:4,4,4}to{stroke-dashoffset:10px;stroke-dasharray:20,20,20}}@keyframes rg-line-anm3{0%{stroke-opacity:1}50%{stroke-opacity:.2}to{stroke-opacity:1}}@keyframes rg-line-anm4{0%{stroke-dasharray:0,100%}to{stroke-dasharray:100%,0}}.relation-graph .rg-line-anm-1{animation:ACTRGLineChecked 10s infinite}.relation-graph .rg-line-anm-2{animation:rg-line-anm2 3s infinite}.relation-graph .rg-line-anm-3{animation:rg-line-anm3 1s infinite}.relation-graph .rg-line-anm-4{animation:rg-line-anm4 3s infinite}.relation-graph .c-rg-line-checked{z-index:100}.relation-graph .c-rg-line-checked-bg{stroke:#fd8b374d;stroke-linecap:round}@keyframes deform1{0%{stroke-dashoffset:0}to{stroke-dashoffset:100%}}.relation-graph .rg-icon{width:19px;height:19px;vertical-align:0px;fill:currentColor;overflow:hidden}.relation-graph .el-icon-remove,.relation-graph .el-icon-circle-plus{cursor:pointer}.relation-graph .relation-graph-node{position:absolute}.relation-graph .rel-node-peel{clear:both;padding:8px;position:absolute;font-size:14px}.relation-graph .rel-node-peel-checked{z-index:100}.relation-graph .rel-node{text-align:center}.relation-graph .rg-center-items{display:flex;place-items:center}.relation-graph .rel-node-shape-0{width:80px;height:80px;border-radius:50%}.relation-graph .rel-node-shape-1{border-radius:5px}.relation-graph .c-node-text{height:100%;width:100%;display:flex;align-items:center;justify-content:center}.relation-graph .rel-node-shape-1 .c-node-text{padding-left:5px;padding-right:5px}.relation-graph .rel-node-type-button{border-radius:25px;color:#00f;cursor:pointer}.relation-graph .rel-node-checked{transition:background-color .2s ease,outline .2s ease,color .2s ease,-webkit-box-shadow .2s ease;box-shadow:0 0 0 8px #fd8b374d}.relation-graph .rel-node-dragging{z-index:400}.relation-graph .rel-node-selected{border:#025098 solid 2px;border-radius:5px}.relation-graph .rel-node-flashing{animation:ACTRGNodeFlashing 2s infinite}.relation-graph .rel-node-vtree-2{transform-origin:0 0;transform:rotate(30deg) translate(0)}.relation-graph .rel-node-vtree{width:130px;height:45px;text-align:left}.relation-graph .c-btn-open-close{position:absolute;height:100%;width:19px;display:flex;align-items:center;justify-content:center;user-select:none;pointer-events:none;cursor:pointer}.relation-graph .c-btn-open-close span{width:19px;height:19px;display:inline-block;text-align:center;border-radius:15px;color:#fff;cursor:pointer;font-size:19px;line-height:16px;background-size:100% 100%;pointer-events:all}.relation-graph .c-expanded{background-image:url(data:image/svg+xml;%20charset=utf8,%3Csvg%20t=%221606310217820%22%20viewBox=%220%200%201024%201024%22%20version=%221.1%22%20xmlns=%22http://www.w3.org/2000/svg%22%20p-id=%223373%22%20width=%2232%22%20height=%2232%22%3E%3Cpath%20d=%22M853.333333%20480H544V170.666667c0-17.066667-14.933333-32-32-32s-32%2014.933333-32%2032v309.333333H170.666667c-17.066667%200-32%2014.933333-32%2032s14.933333%2032%2032%2032h309.333333V853.333333c0%2017.066667%2014.933333%2032%2032%2032s32-14.933333%2032-32V544H853.333333c17.066667%200%2032-14.933333%2032-32s-14.933333-32-32-32z%22%20p-id=%223374%22%20fill=%22white%22%3E%3C/path%3E%3C/svg%3E)}.relation-graph .c-collapsed{background-image:url(data:image/svg+xml;%20charset=utf8,%3Csvg%20t=%221606310454619%22%20class=%22icon%22%20viewBox=%220%200%201024%201024%22%20version=%221.1%22%20xmlns=%22http://www.w3.org/2000/svg%22%20p-id=%223662%22%20width=%22128%22%20height=%22128%22%3E%3Cpath%20d=%22M853.333333%20554.666667H170.666667c-23.466667%200-42.666667-19.2-42.666667-42.666667s19.2-42.666667%2042.666667-42.666667h682.666666c23.466667%200%2042.666667%2019.2%2042.666667%2042.666667s-19.2%2042.666667-42.666667%2042.666667z%22%20p-id=%223663%22%20fill=%22white%22%3E%3C/path%3E%3C/svg%3E)}.relation-graph .c-expand-positon-left{margin-top:-8px;margin-left:-25px}.relation-graph .c-expand-positon-right{height:100%;width:100%;justify-content:center}.relation-graph .c-expand-positon-right span{margin-top:-18px;margin-right:-18px;margin-left:100%}.relation-graph .c-expand-positon-bottom{height:100%;width:100%;margin-top:7px;margin-left:-8px;align-items:flex-end;justify-content:center}.relation-graph .c-expand-positon-top{height:18px;width:100%;margin-top:-20px;margin-left:-6px;align-items:flex-end;justify-content:center}@keyframes ACTRGNodeInit{0%{box-shadow:0 0 15px #fd8b37}50%{box-shadow:0 0 1px #2e4e8f}to{box-shadow:0 0 15px #fd8b37}to{box-shadow:0 0 15px #fd8b37}}@keyframes ACTRGNodeFlashing{0%{box-shadow:0 0 15px #fd8b37}40%{box-shadow:0 0 1px #2e4e8f}70%{box-shadow:0 0 8px #fd8b37}to{box-shadow:0 0 #fd8b37}}.relation-graph .rel-diy-node{padding:0}.relation-graph .c-setting-panel{--height: 300px;--width: 200px;width:300px;height:200px;position:absolute;margin-left:10px;margin-top:5px;font-size:12px;color:#3a5bb2;padding:60px 10px 10px;overflow:hidden;box-shadow:0 0 5px #999;border-radius:5px;z-index:1000;background-color:#fff;border:#999999 solid 1px}.relation-graph .c-setting-panel-button{height:35px;width:35px;font-size:8px;line-height:35px;text-align:center;border-radius:50%;position:absolute;margin-left:25px;margin-top:20px;background-color:#3a5bb2;color:#fff;cursor:pointer;z-index:1001;box-shadow:0 0 8px #999}.relation-graph .c-setting-panel-button:hover{box-shadow:0 0 20px #ffa20a;border:#ffffff solid 1px;color:#ffa20a;-moz-transform:rotate(-89deg) translateX(-190px);animation-timing-function:linear;animation:flashButton 2s infinite}.relation-graph .c-fixedLayout{position:fixed;top:125px}@keyframes flashButton{0%{box-shadow:0 0 8px #2e4e8f}30%{box-shadow:0 0 20px #ffa20a}to{box-shadow:0 0 8px #2e4e8f}}.relation-graph .c-debug-tools-row{text-align:left}.relation-graph .rel-operate{position:absolute;top:0;left:0;width:100%;height:100%;z-index:180}.relation-graph .rel-selection{position:absolute;background-color:#0e7a7b4d;border:rgb(14,122,123) solid 1px}.relation-graph .rel-graph-loading{position:absolute;z-index:200;left:0;top:0;height:100%;width:100%;background-color:#fff}@keyframes turn{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.relation-graph .rel-graph-loading .c-graph-loading-icon{width:16px;height:16px;vertical-align:-3px;fill:currentColor;overflow:hidden;animation:turn 1s linear infinite}.relation-graph .rel-graph-loading .rel-graph-loading-message{position:absolute;width:200px;height:30px;line-height:30px;text-align:center;left:calc((100% - 200px)/2);top:calc((100% - 30px)/2);border-radius:5px;background-color:#00000080;color:#fff}.relation-graph .rel-graph-loading-hide{display:none}@keyframes slowHide{0%{opacity:1}to{opacity:0;display:none}}\")); document.head.appendChild(elementStyle);} catch(e) {console.error('vite-plugin-css-injected-by-js', e);} })();var ae = Object.defineProperty, re = Object.defineProperties;\nvar le = Object.getOwnPropertyDescriptors;\nvar xt = Object.getOwnPropertySymbols;\nvar ce = Object.prototype.hasOwnProperty, he = Object.prototype.propertyIsEnumerable;\nvar ct = (e, i, t) => i in e ? ae(e, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[i] = t, wt = (e, i) => {\n for (var t in i || (i = {}))\n ce.call(i, t) && ct(e, t, i[t]);\n if (xt)\n for (var t of xt(i))\n he.call(i, t) && ct(e, t, i[t]);\n return e;\n}, Ct = (e, i) => re(e, le(i));\nvar v = (e, i, t) => (ct(e, typeof i != \"symbol\" ? i + \"\" : i, t), t);\nvar w = (e, i, t) => new Promise((o, n) => {\n var s = (r) => {\n try {\n l(t.next(r));\n } catch (h) {\n n(h);\n }\n }, a = (r) => {\n try {\n l(t.throw(r));\n } catch (h) {\n n(h);\n }\n }, l = (r) => r.done ? o(r.value) : Promise.resolve(r.value).then(s, a);\n l((t = t.apply(e, i)).next());\n});\nimport Z from \"vue\";\nimport K from \"screenfull\";\nimport Ht from \"html2canvas\";\nconst Wt = \"2.1.29\";\n(function(e) {\n var i, t, o, n, s, a, l = '', r = (r = document.getElementsByTagName(\"script\"))[r.length - 1].getAttribute(\"data-injectcss\");\n if (r && !e.__iconfont__svg__cssinject__) {\n e.__iconfont__svg__cssinject__ = !0;\n try {\n document.write(\"\");\n } catch (d) {\n console && console.log(d);\n }\n }\n function h() {\n s || (s = !0, o());\n }\n i = function() {\n var d, f, c, _;\n (_ = document.createElement(\"div\")).innerHTML = l, l = null, (c = _.getElementsByTagName(\"svg\")[0]) && (c.setAttribute(\"aria-hidden\", \"true\"), c.style.position = \"absolute\", c.style.width = 0, c.style.height = 0, c.style.overflow = \"hidden\", d = c, (f = document.body).firstChild ? (_ = d, (c = f.firstChild).parentNode.insertBefore(_, c)) : f.appendChild(d));\n }, document.addEventListener ? ~[\"complete\", \"loaded\", \"interactive\"].indexOf(document.readyState) ? setTimeout(i, 0) : (t = function() {\n document.removeEventListener(\"DOMContentLoaded\", t, !1), i();\n }, document.addEventListener(\"DOMContentLoaded\", t, !1)) : document.attachEvent && (o = i, n = e.document, s = !1, (a = function() {\n try {\n n.documentElement.doScroll(\"left\");\n } catch (d) {\n return void setTimeout(a, 50);\n }\n h();\n })(), n.onreadystatechange = function() {\n n.readyState == \"complete\" && (n.onreadystatechange = null, h());\n });\n})(window);\nconst de = (e) => (e = e.replace(\"#\", \"\"), e = e.replace(\"(\", \"\"), e = e.replace(\")\", \"\"), e = e.replace(/,/, \"-\"), e), Y = (e) => {\n try {\n if (\"touches\" in e && e.touches || \"targetTouches\" in e && e.targetTouches)\n return !0;\n } catch (i) {\n }\n return !1;\n}, ht = (e) => e instanceof TouchEvent ? {\n clientX: e.touches[0].clientX,\n clientY: e.touches[0].clientY\n} : {\n clientX: e.clientX,\n clientY: e.clientY\n}, u = (...e) => {\n typeof window != \"undefined\" && window.relationGraphDebug && console.log(\"[relation-graph:debug]\", ...e);\n}, ft = (e, i, t) => e ? e.classList.contains(i) ? e : e.classList.contains(t) ? null : ft(e.parentElement, i, t) : null, Lt = (e) => w(void 0, null, function* () {\n return new Promise((i, t) => {\n setTimeout(() => {\n i();\n }, e);\n });\n}), R = (e) => typeof e == \"string\" ? Number.parseInt(e) : e, nt = (e) => {\n if (e.id === void 0)\n throw console.log(\"node must has id:\", e), new Error(\"node must has option[id]:\");\n const i = {\n id: e.id,\n text: e.text !== void 0 ? e.text : \"\",\n type: e.type !== void 0 ? e.type : \"node\",\n isShow: !0,\n isHide: e.isHide !== void 0 ? e.isHide : !1,\n expanded: e.expanded !== void 0 ? e.expanded : !0,\n junctionPoint: e.junctionPoint !== void 0 ? e.junctionPoint : void 0,\n alignItems: e.alignItems !== void 0 ? e.alignItems : void 0,\n selected: e.selected !== void 0 ? e.selected : !1,\n flashing: void 0,\n dragging: !1,\n styleClass: e.styleClass !== void 0 ? e.styleClass : \"\",\n className: e.className !== void 0 ? e.className : \"\",\n targetNodes: [],\n targetFrom: [],\n targetTo: [],\n nodeShape: e.nodeShape !== void 0 ? e.nodeShape : void 0,\n borderWidth: e.borderWidth !== void 0 ? e.borderWidth : void 0,\n borderColor: e.borderColor !== void 0 ? e.borderColor : void 0,\n fontColor: e.fontColor !== void 0 ? e.fontColor : void 0,\n color: e.color !== void 0 ? e.color : void 0,\n opacity: e.opacity !== void 0 ? e.opacity : 1,\n fixed: e.fixed !== void 0 ? e.fixed : !1,\n width: e.width !== void 0 ? e.width : void 0,\n height: e.height !== void 0 ? e.height : void 0,\n force_weight: e.force_weight,\n x: e.x !== void 0 ? e.x : 0,\n y: e.y !== void 0 ? e.y : 0,\n Fx: 0,\n Fy: 0,\n offset_x: e.offset_x !== void 0 ? e.offset_x : 0,\n offset_y: e.offset_y !== void 0 ? e.offset_y : 0,\n expandHolderPosition: e.expandHolderPosition !== void 0 ? e.expandHolderPosition : void 0,\n innerHTML: e.innerHTML !== void 0 ? e.innerHTML : void 0,\n html: e.html !== void 0 ? e.html : void 0,\n disableDefaultClickEffect: e.disableDefaultClickEffect !== void 0 ? e.disableDefaultClickEffect : void 0,\n disableDrag: e.disableDrag !== void 0 ? e.disableDrag : !1,\n singleNode: !1,\n data: e.data !== void 0 ? e.data : {}\n };\n return i.lot = {\n childs: [],\n parent: void 0,\n eached: !1,\n strength: 0\n }, i.el === void 0 && (i.el = { offsetWidth: 50, offsetHeight: 50 }), i.width !== void 0 && (i.el.offsetWidth = i.width), i.height !== void 0 && (i.el.offsetHeight = i.height), i;\n}, ue = [\n \"Fx\",\n \"Fy\",\n \"appended\",\n \"el\",\n \"targetFrom\",\n \"targetNodes\",\n \"targetTo\",\n \"type\",\n \"lot\",\n \"seeks_id\"\n], pt = (e) => {\n if (!e)\n return;\n const i = {};\n return Object.keys(e).forEach((t) => {\n ue.includes(t) || e[t] !== void 0 && (i[t] = e[t]);\n }), i;\n}, fe = {\n json2Node: nt,\n transNodeToJson: pt\n}, pe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n json2Node: nt,\n transNodeToJson: pt,\n default: fe\n}, Symbol.toStringTag, { value: \"Module\" })), ot = (e) => {\n if (e.from === void 0)\n throw console.log(\"error,line must has option[from]:\", e), new Error(\"error,line must has option[from]:\");\n if (e.to === void 0)\n throw console.log(\"error,line must has option[to]:\", e), new Error(\"error,line must has option[to]:\");\n if (typeof e.from != \"string\")\n throw console.log(\"error line from, must be string:\", e), new TypeError(\"error line from, must be string:\");\n if (typeof e.to != \"string\")\n throw console.log(\"error line to, must be string:\", e), new TypeError(\"error line to, must be string:\");\n const i = {\n from: e.from,\n to: e.to,\n text: e.text !== void 0 ? e.text : \"\",\n textOffset_x: e.textOffset_x !== void 0 ? e.textOffset_x : void 0,\n textOffset_y: e.textOffset_y !== void 0 ? e.textOffset_y : void 0,\n color: e.color !== void 0 ? e.color : void 0,\n opacity: e.opacity !== void 0 ? e.opacity : 1,\n fontColor: e.fontColor !== void 0 ? e.fontColor : void 0,\n lineWidth: e.lineWidth !== void 0 ? e.lineWidth : void 0,\n lineShape: e.lineShape !== void 0 ? e.lineShape : void 0,\n styleClass: e.styleClass !== void 0 ? e.styleClass : void 0,\n className: e.className !== void 0 ? e.className : void 0,\n isHide: e.isHide !== void 0 ? e.isHide : !1,\n arrow: e.arrow !== void 0 ? e.arrow : void 0,\n animation: e.animation !== void 0 ? e.animation : 0,\n dashType: e.dashType !== void 0 ? e.dashType : 0,\n disableDefaultClickEffect: e.disableDefaultClickEffect !== void 0 ? e.disableDefaultClickEffect : !1,\n showStartArrow: e.showStartArrow !== void 0 ? e.showStartArrow : !1,\n showEndArrow: e.showEndArrow !== void 0 ? e.showEndArrow : !0,\n useTextPath: e.useTextPath !== void 0 ? e.useTextPath : void 0,\n placeText: e.placeText !== void 0 ? e.placeText : void 0,\n forDisplayOnly: e.forDisplayOnly || e.from === e.to,\n fromJunctionPoint: e.fromJunctionPoint,\n toJunctionPoint: e.toJunctionPoint,\n force_elastic: e.force_elastic,\n polyLineStartDistance: e.polyLineStartDistance,\n isHideArrow: e.isHideArrow !== void 0 ? e.isHideArrow : void 0,\n hidden: !1,\n lineDirection: e.lineDirection !== void 0 ? e.lineDirection : void 0,\n reverseText: e.reverseText !== void 0 ? e.reverseText : void 0,\n data: e.data !== void 0 ? e.data : {}\n };\n return i.isHideArrow && (i.showEndArrow = !1, i.isHideArrow = !1), i;\n}, _e = [\"arrow\", \"id\", \"reverseText\", \"isReverse\"], _t = (e, i) => {\n !e || e.relations.forEach((t) => {\n const o = {};\n Object.keys(t).forEach((n) => {\n _e.includes(n) || t[n] !== void 0 && (o[n] = t[n]);\n }), i.push(o);\n });\n}, U = {\n border: \"border\",\n ltrb: \"ltrb\",\n tb: \"tb\",\n lr: \"lr\",\n left: \"left\",\n right: \"right\",\n top: \"top\",\n bottom: \"bottom\"\n}, me = {\n json2Line: ot,\n transLinkToJson: _t\n}, ge = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n json2Line: ot,\n transLinkToJson: _t,\n JUNCTION_POINT_STYLE: U,\n default: me\n}, Symbol.toStringTag, { value: \"Module\" })), g = {\n analysisNodes(e, i, t, o) {\n i.length > o.max_length && (o.max_length = i.length), t > o.max_deep && (o.max_deep = t);\n const n = {\n level: t,\n all_size: i.length,\n all_strength: 0\n };\n t === 0 && i.forEach((a) => {\n a.lot.parent = void 0;\n });\n const s = [];\n i.forEach((a) => {\n e.push(a), a.targetNodes && a.targetNodes.forEach((l) => {\n e.includes(l) || (e.push(l), l.lot.parent = a, s.push(l));\n });\n }), n.all_strength > o.max_strength && (o.max_strength = n.all_strength), s.length > 0 && g.analysisNodes(e, s, t + 1, o);\n },\n analysisNodes4Didirectional(e, i, t, o, n) {\n i.length > o.max_length && (o.max_length = i.length), t > o.max_deep && (o.max_deep = t);\n const s = {\n level: t,\n all_size: i.length,\n all_strength: 0\n }, a = [];\n i.forEach((r) => {\n r.lot || (r.lot = { childs: [] }), r.lot.eached = !0, r.lot.subling = s, r.lot.level = t, e.push(r);\n });\n let l = 0;\n i.forEach((r) => {\n let h = 0;\n if (n === 0) {\n let d = 0;\n r.targetNodes.forEach((f) => {\n f.lot || (f.lot = { eached: !1, childs: [] }), f.lot.eached || (g.isAllowShowNode(f) ? (f.lot.eached = !0, f.lot.parent = r, f.lot.index_of_parent = d++, r.lot.childs.push(f), a.push(f), h++) : r.lot.childs.push(f));\n });\n } else if (n === -1) {\n let d = 0;\n r.targetFrom.forEach((f) => {\n f.lot || (f.lot = { eached: !1, childs: [] }), f.lot.eached || (g.isAllowShowNode(f) ? (f.lot.eached = !0, f.lot.parent = r, f.lot.index_of_parent = d++, r.lot.childs.push(f), a.push(f), h++) : r.lot.childs.push(f));\n });\n } else {\n let d = 0;\n r.targetTo.forEach((f) => {\n f.lot || (f.lot = { eached: !1, childs: [] }), f.lot.eached || (g.isAllowShowNode(f) ? (f.lot.eached = !0, f.lot.parent = r, f.lot.index_of_parent = d++, r.lot.childs.push(f), a.push(f), h++) : r.lot.childs.push(f));\n });\n }\n r.lot.strength = h > 0 ? h : 1, s.all_strength += r.lot.strength, r.lot.strength_plus = s.all_strength, r.lot.index_of_level = l, r.lot.childs_size = h, l++;\n }), s.all_strength > o.max_strength && (o.max_strength = s.all_strength), a.length > 0 ? g.analysisNodes4Didirectional(e, a, t + (n === -1 ? -1 : 1), o, n) : (e.forEach((r) => {\n r.lot.childs_size > 0 && (r.lot.strengthWithChilds = 0);\n }), e.forEach((r) => {\n r.lot.childs_size === 0 && (r.lot.strengthWithChilds = 1, g.conductStrengthToParents(r));\n }), g.analysisDataTree([e[0]], 0, n));\n },\n conductStrengthToParents(e) {\n e.lot.parent && Math.abs(e.lot.level) - 1 === Math.abs(e.lot.parent.lot.level) && (e.lot.parent.lot.strengthWithChilds += 1, g.conductStrengthToParents(e.lot.parent));\n },\n analysisDataTree(e, i, t) {\n t === void 0 && (t = 1);\n const o = [];\n let n = 0;\n e.forEach((s) => {\n (s.lot.level === 0 || t === (s.lot.level < 0 ? -1 : 1)) && (s.lot.childs_size > 0 && s.lot.childs.forEach((a) => {\n o.push(a);\n }), s.lot.parent && n < s.lot.parent.lot.strengthWithChilds_from && (n = s.lot.parent.lot.strengthWithChilds_from), s.lot.strengthWithChilds_from = n, n += s.lot.strengthWithChilds);\n }), o.length > 0 && g.analysisDataTree(o, i + t, t);\n },\n isAllowShowNode(e, i = 0) {\n return i > 15 ? !0 : (!e.lot || !e.lot.parent || g.isAllowShowNode(e.lot.parent, i + 1) && e.lot.parent.expanded !== !1) && e.isShow && e.isHide !== !0;\n },\n getNodeWidth(e, i) {\n return e.el.offsetWidth || e.width || i && i.defaultNodeWidth || 50;\n },\n getNodeHeight(e, i) {\n return e.el.offsetHeight || e.height || i && i.defaultNodeHeight || 50;\n },\n getNodeXByLotX(e, i) {\n return (i.offset_x || 0) + this.getNodeXByCenterX(e, i, i.lot.x || 0);\n },\n getNodeYByLotY(e, i) {\n return (i.offset_y || 0) + this.getNodeYByCenterY(e, i, i.lot.y || 0);\n },\n getNodeXByCenterX(e, i, t) {\n return i.alignItems === \"right\" ? t - g.getNodeWidth(i, e) : i.alignItems === \"left\" ? t : t - g.getNodeWidth(i, e) / 2;\n },\n getNodeYByCenterY(e, i, t) {\n return i.alignItems === \"top\" ? t : i.alignItems === \"bottom\" ? t - g.getNodeHeight(i, e) : t - g.getNodeHeight(i, e) / 2;\n },\n getCenterXByNodeX(e, i, t) {\n return t + g.getNodeHeight(i, e) / 2;\n },\n getCenterYByNodeY(e, i, t) {\n return t + g.getNodeHeight(i, e) / 2;\n },\n getLotXByNodeX(e, i) {\n const t = i.offset_x || 0;\n return this.getCenterXByNodeX(e, i, i.x || 0) - t;\n },\n getLotYByNodeY(e, i) {\n const t = i.offset_y || 0;\n return this.getCenterYByNodeY(e, i, i.y || 0) - t;\n },\n isRectangleOverlap(e, i) {\n const t = e.x + B, o = i.x + B, n = e.el.offsetWidth - B * 2, s = i.el.offsetWidth - B * 2, a = e.y + B, l = i.y + B, r = e.el.offsetHeight - B * 2, h = i.el.offsetHeight - B * 2;\n return !(o >= t + n || o + s <= t || l >= a + r || l + h <= a);\n },\n isXOverlap(e, i, t, o) {\n return !(i >= e + t || i + o <= e);\n },\n isYOverlap(e, i, t, o) {\n return !(i >= e + t || i + o <= e);\n },\n shapesOverlap(e, i, t = 1, o = 1) {\n return this.isRectangleOverlap(e, i);\n },\n getNoOverlapLimitedPosition(e, i, t, o) {\n const n = e.x + B, s = e.y + B, a = i + B, l = o.x + B, r = e.el.offsetWidth - B * 2, h = o.el.offsetWidth - B * 2, d = t + B, f = o.y + B, c = e.el.offsetHeight - B * 2, _ = o.el.offsetHeight - B * 2;\n let p = e.x, m = e.y;\n const y = this.isXOverlap(n, l, r, h), M = this.isYOverlap(s, f, c, _);\n return y ? d < f ? (p = i, m = f - c - B) : d > f && (p = i, m = f + _ - B) : M && (a < l ? (p = l - r - B, m = t) : a > l && (p = l + h - B, m = t)), { x: p, y: m };\n },\n flatNodeData(e, i, t, o) {\n e.forEach((n) => {\n t.push(n), i && o.push({\n from: i.id,\n to: n.id\n });\n const s = n.childs || n.children;\n s && s.length > 0 && this.flatNodeData(s, n, t, o);\n });\n }\n}, B = 8, ye = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n RGNodesAnalytic: g,\n default: g\n}, Symbol.toStringTag, { value: \"Module\" }));\nclass it {\n constructor(i, t) {\n v(this, \"graphOptions\");\n v(this, \"layoutOptions\");\n v(this, \"allNodes\", []);\n v(this, \"isMainLayouer\", !0);\n v(this, \"requireLinks\", !1);\n v(this, \"allLinks\", []);\n v(this, \"rootNode\");\n v(this, \"currentAnimationStep\", 1);\n v(this, \"allAnimationStep\", 30);\n this.layoutOptions = i, this.graphOptions = t;\n }\n setLinks(i) {\n u(\"setLinks:\", i.length), this.allLinks = i;\n }\n refresh() {\n this.placeNodes(this.allNodes, this.rootNode);\n }\n placeNodes(i, t) {\n this.allNodes = i, this.rootNode = t;\n }\n snapshotBeforeAnimation() {\n this.allNodes.forEach((i) => {\n !g.isAllowShowNode(i) || (i.lot.to_x = g.getNodeXByLotX(this.graphOptions, i), i.lot.to_y = g.getNodeYByLotY(this.graphOptions, i), i.lot.from_x = i.x || 0, i.lot.from_y = i.y || 0, i.lot.placed = !0);\n });\n }\n animationLayout(i = !0) {\n return w(this, null, function* () {\n i && this.snapshotBeforeAnimation();\n const t = this.rootNode;\n t && u(\"debug0910:create rootNode coordinates:2.1\", t.x, t.y), this.currentAnimationStep = 1, this.allAnimationStep = 10, u(\"[LayoutAnimationEffect]start play...\");\n let o = !1;\n return new Promise((n, s) => {\n this.playAnimation(() => {\n o || (o = !0, u(\"[LayoutAnimationEffect]played!\"), this.allNodes.forEach((a) => {\n !g.isAllowShowNode(a) || (a.lot.from_x = a.x, a.lot.from_y = a.y, a.x = a.lot.to_x, a.y = a.lot.to_y);\n }), n());\n });\n });\n });\n }\n playAnimation(i) {\n if (u(\"[LayoutAnimationEffect]\", this.currentAnimationStep, this.allAnimationStep), this.currentAnimationStep > this.allAnimationStep) {\n i();\n return;\n }\n this.allNodes.forEach((t) => {\n if (!t.lot.placed)\n return;\n const { from_x: o, from_y: n, to_x: s, to_y: a } = t.lot;\n if (o !== void 0 && n !== void 0 && s !== void 0 && a !== void 0) {\n const l = (s - o) / this.allAnimationStep, r = (a - n) / this.allAnimationStep, h = Math.floor(o + this.currentAnimationStep * l), d = Math.floor(n + this.currentAnimationStep * r);\n (t.x !== h || t.y !== d) && (t.x = h, t.y = d);\n }\n }), this.currentAnimationStep++, requestAnimationFrame(this.playAnimation.bind(this, i));\n }\n}\nclass Vt extends it {\n constructor(t, o) {\n super(t, o);\n v(this, \"enableGatherNodes\", !1);\n v(this, \"layoutOptions\");\n v(this, \"levelDistanceArr\", []);\n this.layoutOptions = t, u(\"new SeeksBidirectionalTreeLayouter:\", this.layoutOptions), this.layoutOptions.from || (this.layoutOptions.from = \"left\"), this.layoutOptions.levelDistance && (typeof this.layoutOptions.levelDistance == \"string\" ? this.levelDistanceArr = this.layoutOptions.levelDistance.split(\",\").map((n) => Number.parseInt(n)) : Array.isArray(this.layoutOptions.levelDistance) && (this.levelDistanceArr = this.layoutOptions.levelDistance)), this.enableGatherNodes = this.layoutOptions.enableGatherNodes;\n }\n refresh() {\n return w(this, null, function* () {\n u(\"SeeksBidirectionalTreeLayouter:refresh:nodes:\", this.allNodes.length), yield this.placeNodes(this.allNodes, this.rootNode);\n });\n }\n analysisNodes4Didirectional(t, o, n, s, a) {\n u(`${a} level ${n} size: ${o.length}`), o.length > s.max_length && (s.max_length = o.length), n > s.max_deep && (s.max_deep = n);\n const l = {\n level: n,\n all_size: o.length,\n all_strength: 0\n }, r = [];\n o.forEach((d) => {\n d.lot || (d.lot = { childs: [] }), d.lot.eached = !0, d.lot.subling = l, d.lot.level = n, t.push(d);\n });\n let h = 0;\n o.forEach((d) => {\n let f = 0, c = a === -1 ? d.targetFrom : d.targetTo;\n n !== 0 && (c = d.targetNodes);\n let _ = 0;\n c.forEach((p) => {\n p.lot || (p.lot = { eached: !1, childs: [] }), p.lot.eached || (p.lot.parent = d, g.isAllowShowNode(p) ? (p.lot.eached = !0, p.lot.index_of_parent = _++, d.lot.childs.push(p), r.push(p), f++) : d.lot.childs.push(p));\n }), d.lot.strength = f > 0 ? f : 1, l.all_strength += d.lot.strength, d.lot.strength_plus = l.all_strength, d.lot.index_of_level = h, d.lot.childs_size = f, h++;\n }), l.all_strength > s.max_strength && (s.max_strength = l.all_strength), r.length > 0 ? this.analysisNodes4Didirectional(t, r, n + a, s, a) : (t.forEach((d) => {\n d.lot.childs_size > 0 && (d.lot.strengthWithChilds = 0);\n }), t.forEach((d) => {\n d.lot.childs_size === 0 && (d.lot.strengthWithChilds = 1, g.conductStrengthToParents(d));\n }), g.analysisDataTree([t[0]], 0, a));\n }\n placeNodes(t, o) {\n return w(this, null, function* () {\n if (u(\"SeeksBidirectionalTreeLayouter:placeNodes\"), o)\n u(\"layout by root:\", o);\n else {\n console.error(\"root is null\");\n return;\n }\n this.rootNode = o, this.allNodes = t, u(\"allNodes:\", t.length), t.forEach((a) => {\n a.lot.eached = !1, a.lot.notLeafNode = !1, a.lot.childs = [], a.lot.parent = void 0, a.lot.index_of_parent = 0, a.lot.strength = 0, a.lot.strengthWithChilds_from = 0, a.lot.strengthWithChilds = 0, a.lot.placed = !1;\n });\n let n = [], s = {\n max_deep: 1,\n max_length: 1,\n max_strength: 1\n };\n g.analysisNodes(n, [this.rootNode], 0, s), n = [], s = {\n max_deep: 1,\n max_length: 1,\n max_strength: 1\n }, this.analysisNodes4Didirectional(n, [this.rootNode], 0, s, -1), this.placeNodesPosition(this.rootNode, n, s), n = [], s = {\n max_deep: 1,\n max_length: 1,\n max_strength: 1\n }, this.analysisNodes4Didirectional(n, [this.rootNode], 0, s, 1), this.placeNodesPosition(this.rootNode, n, s), u(\"allNodes:\", n.length), this.graphOptions.useAnimationWhenExpanded ? (u(\"Play layout animation.....\"), yield this.animationLayout(), u(\"create rootNode coordinates:3\", o.x, o.y)) : (this.allNodes.forEach((a) => {\n if (a.fixed === !0) {\n a.lot.placed = !0;\n return;\n }\n !g.isAllowShowNode(a) || (Number.isNaN(a.lot.x) && (u(\"bad lot x:\", a.text, a.lot.x), a.lot.x = 0), Number.isNaN(a.lot.y) && (u(\"bad lot y:\", a.text, a.lot.y), a.lot.y = 0), a.x = g.getNodeXByLotX(this.graphOptions, a), a.y = g.getNodeYByLotY(this.graphOptions, a), a.lot.placed = !0);\n }), u(\"create rootNode coordinates:1\", o.x, o.y));\n });\n }\n placeNodesPosition(t, o, n) {\n if (t.fixed !== !0) {\n const s = this.layoutOptions.centerOffset_x || 0, a = this.layoutOptions.centerOffset_y || 0;\n t.lot.x = s, t.lot.y = a, this.layoutOptions.fixedRootNode ? (t.lot.x = g.getLotXByNodeX(this.graphOptions, t), t.lot.y = g.getLotYByNodeY(this.graphOptions, t)) : this.layoutOptions.from === \"top\" ? t.lot.y -= this.graphOptions.viewSize.height / 2 - 100 : this.layoutOptions.from === \"bottom\" ? t.lot.y += this.graphOptions.viewSize.height / 2 - 200 : this.layoutOptions.from === \"right\" ? t.lot.x += this.graphOptions.viewSize.width / 2 - 100 : t.lot.x -= this.graphOptions.viewSize.width / 2 - 100, u(\"debug0910:Graph center:\", t.lot.x, t.lot.y, { _center_offset_x: s, _center_offset_y: a });\n } else\n t.origin_x === void 0 && (t.origin_x = t.x, t.origin_y = t.y), t.lot.x = t.origin_x, t.lot.y = t.origin_y, u(\"\\u56FA\\u5B9A\\u4F4D\\u7F6E\\u7684rootNode:\", t.text, t.x, t.y);\n t.lot.placed = !0, this.placeRelativePosition(t, o, n);\n }\n placeRelativePosition(t, o, n) {\n const s = this.graphOptions.viewSize;\n if (this.layoutOptions.from === \"left\" || this.layoutOptions.from === \"right\") {\n const a = R(this.layoutOptions.min_per_height) || 80, l = R(this.layoutOptions.max_per_height) || 400, r = R(this.layoutOptions.min_per_width) || 430, h = R(this.layoutOptions.max_per_width) || 650;\n let d = Math.round((s.width - 10) / (n.max_deep + 2));\n d < r && (d = r), d > h && (d = h);\n let f = Math.round(s.height / (n.max_strength + 1));\n f < a && (f = a), f > l && (f = l), o.forEach((c) => {\n c.fixed !== !0 && c.lot.placed !== !0 && c !== t && (this.layoutOptions.from === \"right\" ? c.lot.x = t.lot.x - this.getLevelDistance(c, c.lot.subling.level, d) : c.lot.x = t.lot.x + this.getLevelDistance(c, c.lot.subling.level, d));\n }), o.forEach((c) => {\n c.fixed !== !0 && c.lot.level !== 0 && (this.layoutOptions.layoutExpansionDirection === \"left\" || this.layoutOptions.layoutExpansionDirection === \"top\" ? c.lot.y = t.lot.y - f * c.lot.strengthWithChilds_from : this.layoutOptions.layoutExpansionDirection === \"right\" || this.layoutOptions.layoutExpansionDirection === \"bottom\" ? c.lot.y = t.lot.y + f * c.lot.strengthWithChilds_from : c.lot.y = t.lot.y + f * (n.max_strength / -2 + c.lot.strengthWithChilds_from + c.lot.strengthWithChilds / 2));\n }), this.gatherNodes(o, \"h\", f);\n } else {\n const a = R(this.layoutOptions.min_per_height) || 350, l = R(this.layoutOptions.max_per_height) || 400, r = R(this.layoutOptions.min_per_width) || 250, h = R(this.layoutOptions.max_per_width) || 500;\n let d = Math.round((s.width - 10) / (n.max_strength + 2));\n d < r && (d = r), d > h && (d = h);\n let f = Math.round((s.height - 10) / (n.max_deep + 2));\n f < a && (f = a), f > l && (f = l), o.forEach((c) => {\n c.fixed !== !0 && c.lot.placed !== !0 && c !== t && (this.layoutOptions.from === \"bottom\" ? c.lot.y = t.lot.y - this.getLevelDistance(c, c.lot.subling.level, f) : c.lot.y = t.lot.y + this.getLevelDistance(c, c.lot.subling.level, f));\n }), o.forEach((c) => {\n c.fixed !== !0 && c.lot.level !== 0 && (this.layoutOptions.layoutExpansionDirection === \"left\" || this.layoutOptions.layoutExpansionDirection === \"top\" ? c.lot.x = t.lot.x - d * c.lot.strengthWithChilds_from : this.layoutOptions.layoutExpansionDirection === \"right\" || this.layoutOptions.layoutExpansionDirection === \"bottom\" ? c.lot.x = t.lot.x + d * c.lot.strengthWithChilds_from : c.lot.x = t.lot.x + d * (n.max_strength / -2 + c.lot.strengthWithChilds_from + c.lot.strengthWithChilds / 2));\n }), this.gatherNodes(o, \"v\", d);\n }\n }\n gatherNodes(t, o, n) {\n if (!this.enableGatherNodes)\n return;\n const s = {};\n t.forEach((a) => {\n const l = a.lot.level + \"\";\n s[l] || (s[l] = []), s[l].push(a), a.lot.movedNodeSizeBefore = 1, a.lot.movedNodeSizeAfter = 1;\n }), t.forEach((a) => {\n if (a.fixed !== !0 && a.lot.level !== 0) {\n const l = a.lot.level + \"\", r = s[l];\n if (a.lot.strengthWithChilds === 1 && a.lot.childs_size <= 1) {\n const h = this.getBloomingNearByParent(a, a.lot.parent, r, o);\n h && (o === \"h\" ? a.lot.y - h.lot.y > 0 ? (a.lot.y = h.lot.y + n * h.lot.movedNodeSizeAfter, h.lot.movedNodeSizeAfter++) : (a.lot.y = h.lot.y - n * h.lot.movedNodeSizeBefore, h.lot.movedNodeSizeBefore++) : a.lot.x - h.lot.x > 0 ? (a.lot.x = h.lot.x + n * h.lot.movedNodeSizeAfter, h.lot.movedNodeSizeAfter++) : (a.lot.x = h.lot.x - n * h.lot.movedNodeSizeBefore, h.lot.movedNodeSizeBefore++));\n }\n }\n });\n }\n getBloomingNearByParent(t, o, n, s) {\n let a = 9999, l;\n for (const r of n)\n if (r.lot.childs_size > 1 && r.lot.parent === o) {\n const h = s === \"h\" ? r.lot.y - o.lot.y : r.lot.x - o.lot.x;\n Math.abs(h) < a && (a = Math.abs(h), l = r);\n }\n if (l && l !== t)\n return l;\n }\n getLevelDistance(t, o, n) {\n const s = Math.abs(o);\n if (this.levelDistanceArr && this.levelDistanceArr.length > 0) {\n let a = 0;\n for (let l = 0; l < s; l++) {\n const r = l >= this.levelDistanceArr.length ? this.levelDistanceArr[this.levelDistanceArr.length - 1] : this.levelDistanceArr[l];\n a += r;\n }\n return o > 0 ? a : a * -1;\n } else\n return o * n;\n }\n}\nfunction ve(e, i, t, o, n, s, a, l, r) {\n const h = n - e, d = s - i, f = Math.sqrt(h * h + d * d), c = r * d / f, _ = -(r * h) / f, p = e + c, m = i + _, y = e - t / 2, M = e + t / 2, D = i - o / 2, k = i + o / 2;\n let O = [];\n if (h !== 0) {\n let N = (y - p) / h, x = m + N * d;\n x >= D && x <= k && O.push({ x: y, y: x });\n let S = (M - p) / h, P = m + S * d;\n P >= D && P <= k && O.push({ x: M, y: P });\n }\n if (d !== 0) {\n let N = (D - m) / d, x = p + N * h;\n x >= y && x <= M && O.push({ x, y: D });\n let S = (k - m) / d, P = p + S * h;\n P >= y && P <= M && O.push({ x: P, y: k });\n }\n let G = null, E = 1 / 0;\n return O.forEach((N) => {\n const x = Math.sqrt((N.x - n) ** 2 + (N.y - s) ** 2);\n x < E && (E = x, G = N);\n }), G;\n}\nconst I = {\n getRectPoint(e, i, t, o, n, s, a, l, r = !1, h = 1, d = 1, f = 14) {\n r && (d = h - d - 1);\n const c = d - (h - 1) / 2, _ = e + n / 2, p = i + s / 2, m = t + a / 2, y = o + l / 2;\n if (h > 1) {\n const S = f * c, P = ve(\n _,\n p,\n n,\n s,\n m,\n y,\n a,\n l,\n S\n );\n if (P)\n return P;\n }\n const M = _ < m ? 1 : -1, D = p < y ? 1 : -1;\n if (y === p)\n return { x: _ + M * n / 2, y: p };\n const k = Math.abs((m - _) / (y - p)), O = n / s;\n let G = 0, E = 0;\n k < O ? (G = M * s / 2 * k + D * O, E = D * s / 2) : (G = M * n / 2, E = D * n / 2 / k + M * O);\n const N = _ + G, x = p + E;\n return { x: N, y: x };\n },\n getRectPointBasic(e, i, t, o, n, s, a, l) {\n const r = e + n / 2, h = i + s / 2, d = t + a / 2, f = o + l / 2;\n let c = f === h ? 0 : (d - r) / (f - h);\n c === 0 && (c = (d - r) / (f - h + 1));\n const _ = n / l;\n let p = 0, m = 0, y = \"1\";\n return -1 * _ < c && c < _ ? (y = \"2\", h < f ? (p = s / 2 * c, m = s / 2) : (p = -1 * s / 2 * c, m = -1 * s / 2)) : (r < d ? (p = 1 * n / 2, m = 1 * n / 2 / c) : (p = -1 * n / 2, m = -1 * n / 2 / c), y = \"3\"), { x: r + p, y: h + m, _case: y };\n },\n getRectJoinPoint(e, i, t, o, n, s, a, l) {\n const r = e + n / 2, h = i + s / 2, d = t + a / 2, f = o + l / 2, c = Math.round(Math.atan2(f - h, d - r) * 180 / 3.14) + 135;\n return c >= 0 && c < 90 ? { x: e + n / 2, y: i - 5 } : c >= 90 && c < 180 ? { x: e + n + 5, y: i + s / 2 } : c >= 180 && c < 270 ? { x: e + n / 2, y: i + s + 5 } : { x: e - 5, y: i + s / 2 };\n },\n getRectHJoinPoint(e, i, t, o, n, s, a) {\n const l = s / 2;\n return e + n < t ? { x: e + n + 5, y: i + l } : e + n < t + a ? { x: e - 5, y: i + l } : { x: e - 5, y: i + l };\n },\n getRectLeftJoinPoint(e, i, t, o, n, s, a) {\n const l = s / 2;\n return { x: e - 5, y: i + l };\n },\n getRectRightJoinPoint(e, i, t, o, n, s, a) {\n const l = s / 2;\n return { x: e + n + 5, y: i + l };\n },\n getRectTopJoinPoint(e, i, t, o, n, s, a) {\n return { x: e + n / 2, y: i - 5 };\n },\n getRectBottomJoinPoint(e, i, t, o, n, s, a) {\n return { x: e + n / 2, y: i + s + 5 };\n },\n getRectVJoinPoint(e, i, t, o, n, s, a, l) {\n const r = n / 2;\n return i + s < o ? { y: i + s + 5, x: e + r } : i + s < o + l ? { y: i - 5, x: e + r } : { y: i - 5, x: e + r };\n },\n getBorderPoint(e, i, t, o, n, s, a, l, r) {\n return r === 0 ? this.getCirclePoint(e, i, t, o, n, s, a, l) : this.getRectPoint(e, i, t, o, n, s, a, l);\n },\n getBorderPoint4MultiLine(e, i, t, o, n, s, a, l, r, h, d, f, c = 14) {\n return r === 0 ? this.getCirclePoint4MultiLine(e, i, t, o, n, s, a, l, h, d, f, c) : this.getRectPoint(e, i, t, o, n, s, a, l, h, d, f, c);\n },\n getCirclePoint(e, i, t, o, n, s, a, l) {\n const r = t + a / 2, h = o + l / 2, d = e + n / 2, f = i + s / 2, c = r - d;\n if (c === 0)\n return { x: d, y: f - s / 2 * (h < f ? 1 : -1) };\n const p = (h - f) / c, m = Math.sqrt(1 / (1 / (n / 2) ** 2 + p ** 2 / (s / 2) ** 2)) * (r < d ? 1 : -1), y = p * m;\n return { x: d - m, y: f - y };\n },\n getCirclePoint4MultiLine(e, i, t, o, n, s, a, l, r, h, d, f, c = 0) {\n r && (d = h - d - 1);\n const _ = t + a / 2, p = o + l / 2, m = e + n / 2, y = i + s / 2, M = _ - m;\n if (M === 0)\n return { x: m, y: y - s / 2 * (p < y ? 1 : -1) };\n const k = (d - (h - 1) / 2) * f, O = p - y, G = Math.sqrt(M ** 2 + O ** 2) * k / M, E = O / M, N = n / 2, x = s / 2, S = _ < m ? 1 : -1, P = (-1 * N ** 2 * E * G + N * x * Math.sqrt(x ** 2 + E ** 2 * N ** 2 - G ** 2) / S) / (x ** 2 + N ** 2 * E ** 2), z = E * P + G;\n return c === 0 && (Number.isNaN(P) || Number.isNaN(z)) ? this.getCirclePoint4MultiLine(e, i, t, o, n, s, a, l, r, 1, 0, f, c + 1) : { x: m - P, y: y - z };\n },\n getCirclePointBasic(e, i, t, o, n, s, a, l, r) {\n const h = e + n / 2, d = i + s / 2, f = t + a / 2, c = o + l / 2, _ = f - h, p = c - d, m = Math.sqrt(_ * _ + p * p), y = m - r, M = y * _ / m * -1, D = y * p / m * -1;\n return { x: f + M, y: c + D };\n },\n getCirclePointPlus(e, i, t, o, n, s, a, l) {\n const r = e + n / 2, h = i + s / 2, d = t + a / 2, f = o + l / 2, c = d - r, _ = f - h, p = Math.sqrt(c * c + _ * _), m = (p - n / 2) * c / p * -1, y = (p - s / 2) * _ / p * -1;\n return { x: d + m, y: f + y };\n },\n getOvalPoint(e, i, t, o, n, s = 180) {\n return {\n x: e + t * Math.sin((s - 180 + o * (360 / n)) * Math.PI / 180),\n y: i + t * Math.cos((s - 180 + o * (360 / n)) * Math.PI / 180) * -1\n };\n },\n getAngleType(e, i) {\n if (e >= 0 && i >= 0)\n return 1;\n if (e < 0 && i >= 0)\n return 2;\n if (e < 0 && i < 0)\n return 3;\n if (e >= 0 && i < 0)\n return 4;\n },\n getTextAngle(e, i, t, o) {\n let n = Math.atan2(o - i, t - e) * 180 / Math.PI;\n return n < 0 && (n += 360), n > 90 && n <= 270 && (n += 180), n >= 360 && (n -= 360), Math.round(n);\n },\n getTreePointFromTop(e, i, t, o, n, s) {\n return e ? {\n x: e - 300 + Math.max(600 / ((n === 1 ? 2 : n) - 1), 80) * o,\n y: i + t\n } : {\n x: (s.canvas_width - s.node_width) / 2,\n y: (s.canvas_height - s.node_height) / 2 - 200\n };\n },\n getTreePointFromRight(e, i, t, o, n, s) {\n return e ? {\n x: e - t,\n y: i - 200 + Math.max(400 / ((n === 1 ? 2 : n) - 1), 80) * o\n } : {\n x: (s.canvas_width - s.node_width) / 2 + 300,\n y: (s.canvas_height - s.node_height) / 2\n };\n },\n getTreePointFromBottom(e, i, t, o, n, s) {\n return e ? {\n x: e - 300 + Math.max(600 / ((n === 1 ? 2 : n) - 1), 80) * o,\n y: i - t\n } : {\n x: (s.canvas_width - s.node_width) / 2,\n y: (s.canvas_height - s.node_height) / 2 + 200\n };\n },\n getTreePointFromLeft(e, i, t, o, n, s) {\n return e ? {\n x: e + t,\n y: i - 200 + Math.max(400 / ((n === 1 ? 2 : n) - 1), 80) * o\n } : {\n x: (s.canvas_width - s.node_width) / 2 - 300,\n y: (s.canvas_height - s.node_height) / 2\n };\n }\n};\nclass et extends it {\n constructor(t, o) {\n super(t, o);\n v(this, \"layoutOptions\");\n v(this, \"fastStart\", !1);\n v(this, \"maxLayoutTimes\", 300);\n v(this, \"byNode\", !0);\n v(this, \"byLine\", !0);\n v(this, \"lockX\", !1);\n v(this, \"lockY\", !1);\n v(this, \"force_node_repulsion\", 1);\n v(this, \"force_line_elastic\", 1);\n v(this, \"justLayoutSingleNode\", !1);\n v(this, \"layoutTimes\", 0);\n v(this, \"prev10\", []);\n v(this, \"visibleNodes\", []);\n v(this, \"viewUpdate\");\n v(this, \"maxVaildLineLength\", 400);\n v(this, \"minVaildLineLength\", 30);\n v(this, \"zeroEffectNodeDistance\", 400);\n v(this, \"minNodeDistance\", 30);\n v(this, \"maxMoveSpeed\", 50);\n this.layoutOptions = t, this.layoutOptions.fastStart !== void 0 && (this.fastStart = this.layoutOptions.fastStart), this.layoutOptions.maxLayoutTimes !== void 0 && (this.maxLayoutTimes = this.layoutOptions.maxLayoutTimes), this.layoutOptions.byNode !== void 0 && (this.byNode = this.layoutOptions.byNode), this.layoutOptions.byLine !== void 0 && (this.byLine = this.layoutOptions.byLine), this.layoutOptions.force_node_repulsion !== void 0 && (this.force_node_repulsion = this.layoutOptions.force_node_repulsion), this.layoutOptions.force_line_elastic !== void 0 && (this.force_line_elastic = this.layoutOptions.force_line_elastic), this.layoutOptions.force_x_coefficient === void 0 && (this.layoutOptions.force_x_coefficient = 1), this.layoutOptions.force_y_coefficient === void 0 && (this.layoutOptions.force_y_coefficient = 1), this.layoutOptions.disableLiveChanges === void 0 && (this.layoutOptions.disableLiveChanges = !1), this.requireLinks = !0;\n }\n refresh() {\n this.placeNodes(this.allNodes, this.rootNode);\n }\n placeNodes(t, o) {\n if (u(\"!!!SeeksForceLayouter.placeNodes\"), o)\n u(\"layout by root:\", o);\n else {\n u(\"root is null:\", o);\n return;\n }\n if (this.allNodes = t, this.rootNode = o, this.layoutOptions.fixedRootNode) {\n if (!Number.isNaN(o.x) || o.x === void 0)\n o.lot.x = g.getLotXByNodeX(this.graphOptions, o), o.lot.y = g.getLotYByNodeY(this.graphOptions, o);\n else {\n const s = this.layoutOptions.centerOffset_x || 0, a = this.layoutOptions.centerOffset_y || 0;\n o.lot.x = 0 + s, o.lot.y = 0 + a;\n }\n const n = this.easyAnalysisNodes(o);\n this.easyPlaceRelativePosition(o, n), n.forEach((s) => {\n if (s.fixed === !0 || !g.isAllowShowNode(s))\n return;\n const a = s.offset_x || 0, l = s.offset_y || 0;\n s.x = s.lot.x + a - g.getNodeWidth(s, this.graphOptions) / 2, s.y = s.lot.y + l - g.getNodeHeight(s, this.graphOptions) / 2, s.lot.placed = !0;\n });\n } else\n this.fastStart ? (u(\"!!!initNodesPosition fastStart\"), this.allNodes.forEach((n) => {\n n.fixed !== !0 && (n.lot.placed || (n.x || (n.x = Math.floor(Math.random() * 200) - 100), n.x || (n.y = Math.floor(Math.random() * 200) - 100), n.lot.placed = !0));\n })) : (u(\"!!!initNodesPosition.....\"), this.easyPlaceGroupNodes(this.rootNode).forEach((s) => {\n if (s.fixed === !0 || !g.isAllowShowNode(s))\n return;\n const a = s.offset_x || 0, l = s.offset_y || 0;\n s.x = s.lot.x + a - g.getNodeWidth(s, this.graphOptions) / 2, s.y = s.lot.y + l - g.getNodeHeight(s, this.graphOptions) / 2, s.lot.placed = !0;\n }));\n if (u(\"Start Auto Layout.....\"), this.updateVisibleNodes(), this.isMainLayouer && this.graphOptions.autoLayouting) {\n u(\"!!!autoLayouting.....\");\n return;\n }\n this.autoLayout(!0);\n }\n easyPlaceGroupNodes(t) {\n if (u(\"[layout canvasOffset]\", this.graphOptions.viewSize, this.graphOptions.canvasSize), t) {\n t.fixed ? (t.origin_x === void 0 && (t.origin_x = t.x, t.origin_y = t.y), t.lot.x = t.origin_x, t.lot.y = t.origin_y, u(\"root fixed position:\", t.lot.x, t.lot.y)) : this.layoutOptions.fixedRootNode ? (console.error(\"xxxxxxxx\"), t.lot.x = g.getLotXByNodeX(this.graphOptions, t), t.lot.y = g.getLotYByNodeY(this.graphOptions, t)) : (t.lot.x = 0, t.lot.y = 0, u(\"root position:\", t.lot.x, t.lot.y));\n const o = this.easyAnalysisNodes(t);\n return this.easyPlaceRelativePosition(t, o), o;\n }\n return [];\n }\n easyAnalysisNodes(t) {\n this.allNodes.forEach((s) => {\n s.lot.eached = !1, s.lot.notLeafNode = !1, s.lot.childs = [], s.lot.parent = void 0, s.lot.index_of_parent = 0, s.lot.strength = 0, s.lot.placed = !1;\n });\n const o = [], n = {\n max_deep: 1,\n max_length: 1,\n max_strength: 1\n };\n return g.analysisNodes4Didirectional(o, [t], 0, n, 0), o;\n }\n easyPlaceRelativePosition(t, o) {\n o.forEach((s) => {\n if (s.lot.subling.level === 1) {\n const a = s.lot.subling;\n if (a) {\n const l = I.getOvalPoint(t.lot.x, t.lot.y, a.level * 50, s.lot.strength_plus - s.lot.strength / 2, a.all_strength, this.layoutOptions.startAngle);\n s.lot.x = l.x, s.lot.y = l.y;\n }\n }\n }), o.forEach((s) => {\n const a = s.lot.subling;\n if (a && a.level > 1) {\n const l = s.lot.parent.lot.strength_plus - s.lot.parent.lot.strength, h = (s.lot.parent.lot.strength_plus - l) / (s.lot.parent.lot.childs.length + 1) * (s.lot.index_of_parent + 1), d = I.getOvalPoint(t.lot.x, t.lot.y, (a.level - 1) * 40 + 50, l + h, s.lot.parent.lot.subling.all_strength, this.layoutOptions.startAngle);\n s.lot.x = d.x, s.lot.y = d.y;\n }\n });\n }\n updateVisibleNodes(t) {\n this.visibleNodes = [], t && (this.allNodes = t), this.allNodes.forEach((o) => {\n g.isAllowShowNode(o) && (o.Fx = 0, o.Fy = 0, o.lot ? o.lot.placed = !0 : (u(\"node miss lot:\", o.text), o.lot = {\n placed: !0,\n childs: []\n }), this.visibleNodes.push(o));\n }), u(\"visibleNodes:\", this.visibleNodes.length);\n }\n autoLayout(t = !1, o) {\n this.layoutTimes = 0, this.updateVisibleNodes(), this.viewUpdate = o, this.layoutOptions.disableLiveChanges && this.visibleNodes.forEach((n) => {\n n.lot || (n.lot = {}), n.lot.fcalc_x = n.x, n.lot.fcalc_y = n.y, n.lot.fcalc_ing = !0;\n }), this.doForceLayout(0), this.layoutOptions.disableLiveChanges && (this.visibleNodes.forEach((n) => {\n n.lot.fcalc_ing && (n.x = n.lot.fcalc_x, n.y = n.lot.fcalc_y), n.lot.fcalc_ing = !1;\n }), u(\"Layout finished\"), this.viewUpdate && this.viewUpdate(), u(\"Layout apply finished\"));\n }\n doForceLayout(t) {\n if (this.graphOptions.instanceDestroyed) {\n u(\"stop layout:instanceDestroyed\");\n return;\n }\n let o = 0;\n if (t > 0) {\n if (this.prev10.length >= 10) {\n this.prev10.splice(0, 1);\n const n = this.prev10[this.prev10.length - 1] - this.prev10[0];\n o = Math.round(1e3 / (n / 10));\n }\n this.prev10.push(t);\n }\n if (u(\"this.layoutTimes:\", this.layoutTimes, \"of\", this.maxLayoutTimes, \"Current refresh rate:\", o, \"Hz\", this.byLine, this.requireLinks, this.allLinks.length), this.layoutTimes > this.maxLayoutTimes) {\n this.isMainLayouer && (this.graphOptions.autoLayouting = !1);\n return;\n }\n this.isMainLayouer && (this.graphOptions.autoLayouting = !0), this.layoutTimes++, this.visibleNodes.forEach((n) => {\n n.Fx = 0, n.Fy = 0;\n }), this.calcNodesPosition();\n for (const n in this.visibleNodes)\n this.applyToNodePosition(this.visibleNodes[n]);\n this.layoutOptions.disableLiveChanges ? this.doForceLayout(Date.now()) : (this.viewUpdate && this.viewUpdate(), requestAnimationFrame(this.doForceLayout.bind(this)));\n }\n calcNodesPosition() {\n if (this.byNode)\n for (const t in this.visibleNodes) {\n const o = this.visibleNodes[t];\n if (!(this.justLayoutSingleNode && !o.singleNode) && !o.fixed && o.lot && o.lot.placed === !0)\n for (const n in this.visibleNodes) {\n const s = this.visibleNodes[n];\n s.lot && s.lot.placed === !0 && t !== n && this.addGravityByNode(o, s);\n }\n }\n if (this.byLine)\n if (this.allLinks && this.allLinks.length > 0) {\n for (const t of this.allLinks)\n if (!t.forDisplayOnly) {\n const o = t.relations.reduce((n, s) => n + (s.force_elastic || 1), 0);\n (this.visibleNodes.includes(t.fromNode) || this.visibleNodes.includes(t.toNode)) && this.addElasticByLine(\n t.fromNode,\n t.toNode,\n o\n );\n }\n } else\n for (const t of this.visibleNodes)\n t.lot && t.lot.parent && this.addElasticByLine(\n t.lot.parent,\n t\n );\n }\n stop() {\n u(\"[SeeksForceLayouter]stop:\", this.graphOptions.autoLayouting), this.layoutTimes = 1e6;\n }\n getX(t) {\n const o = (t.width || t.el.offsetWidth || 60) / 2;\n return t.lot.fcalc_ing ? t.lot.fcalc_x : t.x + o;\n }\n getY(t) {\n const o = (t.height || t.el.offsetHeight || 60) / 2;\n return t.lot.fcalc_ing ? t.lot.fcalc_y : t.y + o;\n }\n addElasticByLine(t, o, n = 1) {\n let s = Math.sqrt((this.getY(t) - this.getY(o)) ** 2 + (this.getX(t) - this.getX(o)) ** 2);\n s > this.maxVaildLineLength && (s = this.maxVaildLineLength);\n const a = s < this.minVaildLineLength ? 0 : (s - this.minVaildLineLength) * 0.1 * this.force_line_elastic * n, l = a, r = a, h = (this.getX(t) - this.getX(o)) / s, d = (this.getY(t) - this.getY(o)) / s;\n this.addFtoNode(t, h * l * -1, d * l * -1), this.addFtoNode(o, h * r, d * r);\n }\n addGravityByNode(t, o) {\n const n = Math.sqrt(\n (this.getY(t) - this.getY(o)) ** 2 + (this.getX(t) - this.getX(o)) ** 2\n );\n let s = n > this.zeroEffectNodeDistance ? 0 : (this.zeroEffectNodeDistance - n) * 0.05 * this.force_node_repulsion;\n n < this.minNodeDistance && (s = s * 2);\n const a = (this.getX(t) - this.getX(o)) / n, l = (this.getY(t) - this.getY(o)) / n;\n this.addFtoNode(t, a * s, l * s), this.addFtoNode(o, a * s * -1, l * s * -1);\n }\n addFtoNode(t, o, n) {\n if (t.dragging || this.justLayoutSingleNode && !t.singleNode || Number.isNaN(o) || Number.isNaN(n))\n return;\n o = o / (t.lot.strength || 1), n = n / (t.lot.strength || 1), o > 50 && (o = 50), n > 50 && (n = 50), o < -50 && (o = -50), n < -50 && (n = -50);\n const s = t.force_weight || 1;\n this.lockX || (t.Fx += o * (1 / s)), this.lockY || (t.Fy += n * (1 / s));\n }\n applyToNodePosition(t) {\n if (t.fixed)\n return;\n let o = Math.round(t.Fx), n = Math.round(t.Fy);\n o > this.maxMoveSpeed && (o = this.maxMoveSpeed), n > this.maxMoveSpeed && (n = this.maxMoveSpeed), o < -this.maxMoveSpeed && (o = -this.maxMoveSpeed), n < -this.maxMoveSpeed && (n = -this.maxMoveSpeed), this.layoutOptions.disableLiveChanges ? (t.lot || (t.lot = { fcalc_x: t.x, fcalc_y: t.y }), t.lot.fcalc_x = t.lot.fcalc_x + o * this.layoutOptions.force_x_coefficient, t.lot.fcalc_y = t.lot.fcalc_y + n * this.layoutOptions.force_y_coefficient) : (t.x = t.x + o * this.layoutOptions.force_x_coefficient, t.y = t.y + n * this.layoutOptions.force_y_coefficient), t.Fx = 0, t.Fy = 0;\n }\n}\nclass jt extends et {\n constructor(t, o) {\n super(t, o);\n v(this, \"layoutOptions\");\n this.layoutOptions = t;\n }\n refresh() {\n return w(this, null, function* () {\n u(\"SeeksCenterLayouter:refresh\"), yield this.placeNodes(this.allNodes, this.rootNode);\n });\n }\n placeNodes(t, o) {\n return w(this, null, function* () {\n if (u(\"SeeksCenterLayouter:placeNodes\"), !o) {\n u(\"root is null:\", o);\n return;\n }\n u(\"layout by root:\", o), this.allNodes = t, this.rootNode = o, t.forEach((a) => {\n a.lot.eached = !1, a.lot.notLeafNode = !1, a.lot.childs = [], a.lot.parent = void 0, a.lot.index_of_parent = 0, a.lot.strength = 0, a.lot.placed = !1;\n });\n let n = [], s = {\n max_deep: 1,\n max_length: 1,\n max_strength: 1\n };\n if (g.analysisNodes(n, [this.rootNode], 0, s), n = [], s = {\n max_deep: 1,\n max_length: 1,\n max_strength: 1\n }, g.analysisNodes4Didirectional(n, [this.rootNode], 0, s, 0), o.fixed)\n o.origin_x === void 0 && (o.origin_x = o.x, o.origin_y = o.y), o.lot.x = o.origin_x, o.lot.y = o.origin_y, u(\"\\u56FA\\u5B9A\\u4F4D\\u7F6E\\u7684rootNode:\", o.text, o.x, o.y);\n else if (this.layoutOptions.fixedRootNode)\n o.lot.x = g.getLotXByNodeX(this.graphOptions, o), o.lot.y = g.getLotYByNodeY(this.graphOptions, o);\n else {\n const a = this.layoutOptions.centerOffset_x || 0, l = this.layoutOptions.centerOffset_y || 0;\n o.lot.x = 0 + a, o.lot.y = 0 + l;\n }\n u(\"root position:\", o.lot.x, o.lot.y), this.placeRelativePosition(this.rootNode, n, s), this.graphOptions.useAnimationWhenExpanded ? (u(\"Play layout animation.....\"), yield this.animationLayout()) : n.forEach((a) => {\n if (a.fixed === !0 || !g.isAllowShowNode(a))\n return;\n const l = a.offset_x || 0, r = a.offset_y || 0, h = -g.getNodeWidth(a, this.graphOptions) / 2, d = -g.getNodeHeight(a, this.graphOptions) / 2;\n a.x = a.lot.x + l + h, a.y = a.lot.y + r + d, a.lot.placed = !0;\n });\n });\n }\n getLevelDistanceArr() {\n let t = [];\n if (this.layoutOptions.levelDistance && (typeof this.layoutOptions.levelDistance == \"string\" ? t = this.layoutOptions.levelDistance.split(\",\").map((o) => Number.parseInt(o)) : Array.isArray(this.layoutOptions.levelDistance) && (t = this.layoutOptions.levelDistance), t.length > 0 && t.length < 10))\n for (let o = t.length; o < 10; o++)\n t.push(t[t.length - 1]);\n return t;\n }\n getLevelR(t, o) {\n if (t.length === 0)\n return;\n let n = 0;\n for (let s = 0; s < o && s < t.length; s++)\n n += t[s];\n return n;\n }\n placeRelativePosition(t, o, n) {\n const s = this.layoutOptions.distance_coefficient === void 0 ? 1 : this.layoutOptions.distance_coefficient, a = this.getLevelDistanceArr(), l = Math.min(this.graphOptions.viewSize.height, this.graphOptions.viewSize.width) * 0.4;\n let r = Math.min(Math.max(l, 150), 400) * s;\n u(\"analyticResult:\", n, l, r, s, a);\n let h = 0;\n o.forEach((f) => {\n const c = f.lot.subling;\n if (c && c.level === 1) {\n h = Math.round(c.all_size * 60 / Math.PI / 2), h < r && (h = r);\n const _ = this.getLevelR(a, c.level) || c.level * h, p = I.getOvalPoint(t.lot.x, t.lot.y, _, f.lot.strength_plus - f.lot.strength / 2, c.all_strength, this.layoutOptions.startAngle);\n f.lot.x = p.x, f.lot.y = p.y;\n }\n });\n const d = Math.round(300 * s);\n o.forEach((f) => {\n const c = f.lot.subling;\n if (c && c.level > 1) {\n const _ = f.lot.parent.lot.strength_plus - f.lot.parent.lot.strength, m = (f.lot.parent.lot.strength_plus - _) / (f.lot.parent.lot.childs_size + 1) * (f.lot.index_of_parent + 1), y = this.getLevelR(a, c.level) || (c.level - 1) * d + h, M = I.getOvalPoint(t.lot.x, t.lot.y, y, _ + m, f.lot.parent.lot.subling.all_strength, this.layoutOptions.startAngle);\n f.lot.x = M.x, f.lot.y = M.y;\n }\n });\n }\n}\nclass Ut extends et {\n constructor(i, t) {\n super(i, t);\n }\n refresh() {\n return w(this, null, function* () {\n yield this.placeNodes(this.allNodes, this.rootNode);\n });\n }\n placeNodes(i, t) {\n return w(this, null, function* () {\n if (t)\n u(\"layout by root:\", t);\n else {\n u(\"root is null:\", t);\n return;\n }\n this.allNodes = i, this.rootNode = t, i.forEach((r) => {\n r.lot.eached = !1, r.lot.notLeafNode = !1, r.lot.childs = [], r.lot.parent = void 0, r.lot.index_of_p_childs = 0, r.lot.strength = 0;\n });\n const o = this.layoutOptions.centerOffset_x || 0, n = this.layoutOptions.centerOffset_y || 0, s = {\n x: o,\n y: n\n }, a = this.allNodes.length;\n let l = a * 90 / Math.PI / 2;\n l < 200 && (l = 200), l > 800 && (l = 800), this.allNodes.forEach((r, h) => {\n const d = I.getOvalPoint(s.x, s.y, l, h, a);\n r.lot.x = d.x, r.lot.y = d.y;\n }), this.graphOptions.useAnimationWhenExpanded ? (u(\"Play layout animation.....\"), yield this.animationLayout()) : this.allNodes.forEach((r) => {\n if (r.fixed === !0 || !g.isAllowShowNode(r))\n return;\n const h = r.offset_x || 0, d = r.offset_y || 0, f = -g.getNodeWidth(r, this.graphOptions) / 2, c = -g.getNodeHeight(r, this.graphOptions) / 2;\n r.x = r.lot.x + h + f, r.y = r.lot.y + d + c, r.lot.placed = !0;\n });\n });\n }\n}\nclass Xt extends it {\n constructor(t, o) {\n super(t, o);\n v(this, \"graphOptions\");\n v(this, \"layoutOptions\");\n v(this, \"allNodes\", []);\n v(this, \"__origin_nodes\", []);\n this.layoutOptions = t, this.graphOptions = o;\n }\n refresh() {\n this.placeNodes(this.__origin_nodes, this.rootNode);\n }\n placeNodes(t, o) {\n if (o)\n u(\"layout by root:\", o);\n else {\n u(\"root is null:\", o);\n return;\n }\n u(\"allNodes:\", t.length), this.__origin_nodes = t, this.rootNode = o, t.forEach((s) => {\n s.lot.eached = !1, s.lot.notLeafNode = !1, s.lot.childs = [], s.lot.parent = void 0, s.lot.index_of_parent = 0, s.lot.strength = 0, s.lot.placed = !1, s.x || (s.x = 0), s.y || (s.y = 0), Number.isNaN(s.x) && (s.x = 0), Number.isNaN(s.y) && (s.y = 0);\n }), this.allNodes = [];\n const n = {\n max_strength: 1,\n max_deep: 1,\n max_length: 1\n };\n g.analysisNodes4Didirectional(this.allNodes, [this.rootNode], 0, n, 0), u(\"[layout canvasOffset]\", this.graphOptions.viewSize, this.graphOptions.canvasSize);\n }\n}\nclass xe extends it {\n constructor(t, o) {\n super(t, o);\n v(this, \"layoutOptions\");\n v(this, \"levelDistanceArr\", []);\n this.layoutOptions = t, u(\"new SeeksBidirectionalTreeLayouter:\", this.layoutOptions), this.layoutOptions.from || (this.layoutOptions.from = \"left\"), this.layoutOptions.levelDistance && (typeof this.layoutOptions.levelDistance == \"string\" ? this.levelDistanceArr = this.layoutOptions.levelDistance.split(\",\").map((n) => Number.parseInt(n)) : Array.isArray(this.layoutOptions.levelDistance) && (this.levelDistanceArr = this.layoutOptions.levelDistance)), this.requireLinks = !0;\n }\n refresh() {\n return w(this, null, function* () {\n u(\"SeeksBidirectionalTreeLayouter:refresh:nodes:\", this.allNodes.length), yield this.placeNodes(this.allNodes, this.rootNode);\n });\n }\n analysisNodes4Didirectional(t, o, n, s) {\n this.analysisBothWay(t, o, n, s);\n const a = {};\n t.forEach((h) => {\n const d = h.lot.level + \"\";\n a[d] || (a[d] = []), a[d].push(h), h.lot.subling = {\n level: h.lot.level,\n all_size: 0,\n all_strength: 0\n };\n }), t.forEach((h) => {\n const d = h.lot.level + \"\", f = a[d], c = f.length;\n h.lot.index_of_level = f.indexOf(h), h.lot.subling.all_size = c, h.lot.subling.all_strength += h.lot.strength || 1, h.lot.strength_plus = h.lot.subling.all_strength;\n }), t.forEach((h) => {\n h.lot.childs_size > 0 && (h.lot.strengthWithChilds = 0);\n }), t.forEach((h) => {\n h.lot.childs_size === 0 && (h.lot.strengthWithChilds = 1, g.conductStrengthToParents(h));\n });\n const l = Object.keys(a).map((h) => Number.parseInt(h)).sort(), r = (h) => {\n const d = h + \"\", f = a[d];\n let c = 0;\n f.forEach((_) => {\n _.lot.parent && c < _.lot.parent.lot.strengthWithChilds_from && (c = _.lot.parent.lot.strengthWithChilds_from), h === 0 ? c += 1 : _.lot.strengthWithChilds_from = c, u(\"levels:\", h, c, _.text, _.lot.strengthWithChilds), c += _.lot.strengthWithChilds;\n });\n };\n [0].forEach(r), l.filter((h) => h > 0).forEach(r), l.filter((h) => h < 0).forEach(r);\n }\n analysisBothWay(t, o, n, s) {\n u(`level ${n} size: ${o.length}`), o.length > s.max_length && (s.max_length = o.length), n > s.max_deep && (s.max_deep = n);\n const a = {\n level: n,\n all_size: o.length,\n all_strength: 0\n };\n o.forEach((r) => {\n r.lot || (r.lot = { childs: [] }), r.lot.eached = !0, r.lot.subling = a, r.lot.level = n, t.push(r);\n });\n let l = 0;\n o.forEach((r) => {\n let h = 0, d = 0, f = [];\n r.targetFrom.forEach((c) => {\n c.lot || (c.lot = { eached: !1, childs: [] }), c.lot.eached || (c.lot.parent = r, g.isAllowShowNode(c) ? (c.lot.eached = !0, c.lot.index_of_parent = d++, r.lot.childs.push(c), f.push(c), h++) : r.lot.childs.push(c));\n }), this.analysisBothWay(t, f, n - 1, s), f = [], r.targetTo.forEach((c) => {\n c.lot || (c.lot = { eached: !1, childs: [] }), c.lot.eached || (c.lot.parent = r, g.isAllowShowNode(c) ? (c.lot.eached = !0, c.lot.index_of_parent = d++, r.lot.childs.push(c), f.push(c), h++) : r.lot.childs.push(c));\n }), this.analysisBothWay(t, f, n + 1, s), r.lot.strength = h > 0 ? h : 1, a.all_strength += r.lot.strength, r.lot.strength_plus = a.all_strength, r.lot.index_of_level = l, r.lot.childs_size = h, l++;\n }), a.all_strength > s.max_strength && (s.max_strength = a.all_strength);\n }\n placeNodes(t, o) {\n return w(this, null, function* () {\n if (u(\"SeeksBidirectionalTreeLayouter:placeNodes\"), o)\n u(\"layout by root:\", o);\n else {\n console.error(\"root is null\");\n return;\n }\n this.rootNode = o, this.allNodes = t, u(\"allNodes:\", t.length), t.forEach((r) => {\n r.lot.eached = !1, r.lot.notLeafNode = !1, r.lot.childs = [], r.lot.parent = void 0, r.lot.index_of_parent = 0, r.lot.strength = 0, r.lot.strengthWithChilds_from = 0, r.lot.strengthWithChilds = 0, r.lot.placed = !1;\n });\n let n = [], s = {\n max_deep: 1,\n max_length: 1,\n max_strength: 1\n };\n g.analysisNodes(n, [this.rootNode], 0, s), n = [], s = {\n max_deep: 1,\n max_length: 1,\n max_strength: 1\n }, this.analysisNodes4Didirectional(n, [this.rootNode], 0, s), this.placeNodesPosition(this.rootNode, n, s), u(\"allNodes:\", n.length), this.graphOptions.useAnimationWhenExpanded ? (u(\"Play layout animation.....\"), yield this.animationLayout(), u(\"create rootNode coordinates:3\", o.x, o.y)) : (this.allNodes.forEach((r) => {\n if (r.fixed === !0) {\n r.lot.placed = !0;\n return;\n }\n !g.isAllowShowNode(r) || (Number.isNaN(r.lot.x) && (u(\"bad lot x:\", r.text, r.lot.x), r.lot.x = 0), Number.isNaN(r.lot.y) && (u(\"bad lot y:\", r.text, r.lot.y), r.lot.y = 0), r.x = g.getNodeXByLotX(this.graphOptions, r), r.y = g.getNodeYByLotY(this.graphOptions, r), r.lot.placed = !0);\n }), u(\"create rootNode coordinates:1\", o.x, o.y));\n const a = n.filter((r) => r.lot.level === 0), l = new et({\n layoutName: \"force\",\n maxLayoutTimes: 100,\n force_node_repulsion: 0.1,\n force_line_elastic: 1,\n fixedRootNode: !0\n }, this.graphOptions);\n l.isMainLayouer = !1, l.requireLinks = !0, this.layoutOptions.from === \"left\" || this.layoutOptions.from === \"right\" ? l.lockX = !0 : l.lockY = !0, l.visibleNodes = a, l.setLinks(this.allLinks), l.doForceLayout(0);\n });\n }\n placeNodesPosition(t, o, n) {\n if (t.fixed !== !0) {\n const s = this.layoutOptions.centerOffset_x || 0, a = this.layoutOptions.centerOffset_y || 0;\n t.lot.x = s, t.lot.y = a, this.layoutOptions.fixedRootNode ? (t.lot.x = g.getLotXByNodeX(this.graphOptions, t), t.lot.y = g.getLotYByNodeY(this.graphOptions, t)) : this.layoutOptions.from === \"top\" ? t.lot.y -= this.graphOptions.viewSize.height / 2 - 100 : this.layoutOptions.from === \"bottom\" ? t.lot.y += this.graphOptions.viewSize.height / 2 - 200 : this.layoutOptions.from === \"right\" ? t.lot.x += this.graphOptions.viewSize.width / 2 - 100 : t.lot.x -= this.graphOptions.viewSize.width / 2 - 100, u(\"debug0910:Graph center:\", t.lot.x, t.lot.y, { _center_offset_x: s, _center_offset_y: a });\n } else\n t.origin_x === void 0 && (t.origin_x = t.x, t.origin_y = t.y), t.lot.x = t.origin_x, t.lot.y = t.origin_y, u(\"\\u56FA\\u5B9A\\u4F4D\\u7F6E\\u7684rootNode:\", t.text, t.x, t.y);\n t.lot.placed = !0, this.placeRelativePosition(t, o, n);\n }\n placeRelativePosition(t, o, n) {\n const s = this.graphOptions.viewSize;\n if (this.layoutOptions.from === \"left\" || this.layoutOptions.from === \"right\") {\n const a = R(this.layoutOptions.min_per_height) || 80, l = R(this.layoutOptions.max_per_height) || 400, r = R(this.layoutOptions.min_per_width) || 430, h = R(this.layoutOptions.max_per_width) || 650;\n let d = Math.round((s.width - 10) / (n.max_deep + 2));\n d < r && (d = r), d > h && (d = h);\n let f = Math.round(s.height / (n.max_strength + 1));\n f < a && (f = a), f > l && (f = l), o.forEach((c) => {\n c.fixed !== !0 && c.lot.placed !== !0 && c !== t && (this.layoutOptions.from === \"right\" ? c.lot.x = t.lot.x - this.getLevelDistance(c, c.lot.subling.level, d) : c.lot.x = t.lot.x + this.getLevelDistance(c, c.lot.subling.level, d));\n }), o.forEach((c) => {\n c.fixed !== !0 && (c.lot.level === 0 ? c !== t && (c.lot.y = t.lot.y + f * c.lot.index_of_level) : c.lot.y = t.lot.y + f * (n.max_strength / -2 + c.lot.strengthWithChilds_from + c.lot.strengthWithChilds / 2));\n });\n } else {\n const a = R(this.layoutOptions.min_per_height) || 350, l = R(this.layoutOptions.max_per_height) || 400, r = R(this.layoutOptions.min_per_width) || 250, h = R(this.layoutOptions.max_per_width) || 500;\n let d = Math.round((s.width - 10) / (n.max_strength + 2));\n d < r && (d = r), d > h && (d = h);\n let f = Math.round((s.height - 10) / (n.max_deep + 2));\n f < a && (f = a), f > l && (f = l), o.forEach((c) => {\n c.fixed !== !0 && c.lot.placed !== !0 && c !== t && (this.layoutOptions.from === \"bottom\" ? c.lot.y = t.lot.y - this.getLevelDistance(c, c.lot.subling.level, f) : c.lot.y = t.lot.y + this.getLevelDistance(c, c.lot.subling.level, f));\n }), o.forEach((c) => {\n c.fixed !== !0 && c.lot.level !== 0 && (c.lot.x = t.lot.x + d * (n.max_strength / -2 + c.lot.strengthWithChilds_from + c.lot.strengthWithChilds / 2));\n });\n }\n }\n getLevelDistance(t, o, n) {\n const s = Math.abs(o);\n if (this.levelDistanceArr && this.levelDistanceArr.length > 0) {\n let a = 0;\n for (let l = 0; l < s; l++) {\n const r = this.levelDistanceArr[l] || 100;\n a += r;\n }\n return o > 0 ? a : a * -1;\n } else\n return o * n;\n }\n}\nconst st = (e, i) => {\n at(e);\n let t = null;\n if (e.layoutName === \"tree\" ? t = new Vt(e, i) : e.layoutName === \"center\" ? t = new jt(e, i) : e.layoutName === \"circle\" ? t = new Ut(e, i) : e.layoutName === \"force\" ? t = new et(e, i) : e.layoutName === \"fixed\" ? t = new Xt(e, i) : e.layoutName === \"smart-tree\" && (t = new xe(e, i)), !t)\n throw new Error(\"unknown layout: \" + e.layoutName);\n return i.isNeedShowAutoLayoutButton = e.allowAutoLayoutIfSupport !== !1 && t.autoLayout !== void 0, t;\n}, at = (e) => {\n if (typeof e.centerOffset_x == \"string\" && (e.centerOffset_x = parseInt(e.centerOffset_x)), typeof e.centerOffset_y == \"string\" && (e.centerOffset_y = parseInt(e.centerOffset_y)), e.layoutName === \"center\") {\n const i = e;\n i.layoutDirection === void 0 && (i.layoutDirection = \"h\"), i.centerOffset_x === void 0 && (i.centerOffset_x = 0), i.centerOffset_y === void 0 && (i.centerOffset_y = 0), i.layoutDirection = void 0;\n } else if (e.layoutName.includes(\"tree\")) {\n const i = e;\n i.layoutDirection === void 0 && (i.layoutDirection = \"h\"), i.centerOffset_x === void 0 && (i.centerOffset_x = 0), i.centerOffset_y === void 0 && (i.centerOffset_y = 0), i.from === void 0 && (i.from = \"top\"), i.levelDistance === void 0 && (i.levelDistance = \"\"), (i.from === \"top\" || i.from === \"bottom\") && (i.layoutDirection = \"v\", u(\"set layoutDirection=v\"), u(\"set defaultJunctionPoint=tb\"), i.min_per_width === void 0 && (i.min_per_width = 100), i.max_per_width === void 0 && (i.max_per_width = 500), i.min_per_height === void 0 && (i.min_per_height = 300), i.max_per_height === void 0 && (i.max_per_height = 500)), (i.from === \"left\" || i.from === \"right\") && (i.layoutDirection = \"h\", u(\"set defaultJunctionPoint=lr\"), i.min_per_width === void 0 && (i.min_per_width = 300), i.max_per_width === void 0 && (i.max_per_width = 500), i.min_per_height === void 0 && (i.min_per_height = 100), i.max_per_height === void 0 && (i.max_per_height = 500));\n } else\n (e.layoutName === \"fixed\" || e.layoutName === \"force\") && (e.layoutDirection = void 0);\n}, we = {\n createLayout: st,\n appendDefaultOptions4Layout: at\n}, Ce = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n createLayout: st,\n appendDefaultOptions4Layout: at,\n default: we\n}, Symbol.toStringTag, { value: \"Module\" })), mt = {\n id: \"rg-newNodeTemplate\",\n x: 0,\n y: 0,\n text: \"\",\n styleClass: \"\"\n};\nlet Le = 0;\nconst gt = (e) => {\n !e.backgroundImage && (e.backgroundImage = e.backgrounImage), !e.backgroundImageNoRepeat && (e.backgroundImageNoRepeat = e.backgrounImageNoRepeat), typeof e.graphOffset_x == \"string\" && (e.graphOffset_x = parseInt(e.graphOffset_x)), typeof e.graphOffset_y == \"string\" && (e.graphOffset_y = parseInt(e.graphOffset_y)), e.defaultPloyLineRadius && (e.defaultPolyLineRadius = e.defaultPloyLineRadius);\n const i = {\n instanceId: \"\",\n debug: !0,\n graphLoading: !1,\n graphLoadingText: \"\",\n showMaskWhenLayouting: !1,\n instanceDestroyed: !1,\n useHorizontalView: !1,\n oldVueVersion: !1,\n ovUseNodeSlot: !1,\n ovUseLineSlot: !1,\n ovUseToolbarSlot: !1,\n ovUseNodeExpandHolderSlot: !1,\n showDebugPanel: !1,\n backgroundColor: void 0,\n backgroundImage: void 0,\n backgroundImageNoRepeat: void 0,\n downloadImageFileName: \"\",\n disableZoom: !1,\n disableDragNode: !1,\n disableDragLine: !0,\n moveToCenterWhenRefresh: !0,\n zoomToFitWhenRefresh: !0,\n useAnimationWhenRefresh: !1,\n defaultFocusRootNode: !0,\n disableNodeClickEffect: !1,\n disableLineClickEffect: !1,\n allowShowFullscreenMenu: !0,\n allowShowZoomMenu: !0,\n allowAutoLayoutIfSupport: !0,\n allowShowRefreshButton: !0,\n allowShowDownloadButton: !0,\n backgrounImageNoRepeat: !1,\n allowShowMiniToolBar: !0,\n toolBarVersion: \"v2\",\n toolBarDirection: \"v\",\n toolBarPositionH: \"right\",\n toolBarPositionV: \"center\",\n allowSwitchLineShape: !1,\n allowSwitchJunctionPoint: !1,\n isMoveByParentNode: !1,\n defaultExpandHolderPosition: \"hide\",\n defaultExpandHolderColor: void 0,\n defaultNodeBorderWidth: void 0,\n defaultNodeColor: \"#409EFF\",\n defaultNodeBorderColor: \"#0c7ff6\",\n defaultNodeFontColor: \"#ffffff\",\n defaultLineColor: \"#cccccc\",\n checkedLineColor: \"#FD8B37\",\n defaultLineFontColor: void 0,\n defaultLineWidth: 1,\n defaultLineShape: void 0,\n defaultLineTextOffset_x: void 0,\n defaultLineTextOffset_y: void 0,\n defaultNodeShape: void 0,\n defaultNodeWidth: void 0,\n defaultNodeHeight: void 0,\n defaultShowLineLabel: !0,\n hideNodeContentByZoom: !1,\n defaultJunctionPoint: void 0,\n defaultPolyLineRadius: void 0,\n disableDragCanvas: !1,\n placeSingleNode: !0,\n placeOtherGroup: !1,\n lineUseTextPath: !1,\n lineTextMaxLength: 15,\n multiLineDistance: 14,\n graphOffset_x: 0,\n graphOffset_y: 0,\n viewSize: { width: 300, height: 300 },\n viewELSize: { width: 1300, height: 800, left: 0, top: 100 },\n viewNVInfo: { width: 1300, height: 800, x: 0, y: 100 },\n canvasNVInfo: { width: 1300, height: 800, x: 0, y: 100 },\n defaultLineMarker: {\n markerWidth: 12,\n markerHeight: 12,\n refX: 6,\n refY: 6,\n color: void 0,\n data: \"M2,2 L10,6 L2,10 L6,6 L2,2\"\n },\n allowShowMiniView: !1,\n allowShowSettingPanel: !1,\n allowShowMiniNameFilter: !0,\n fullscreen: !1,\n checkedNodeId: \"\",\n checkedLineId: \"\",\n checkedLinkId: \"\",\n layouts: [],\n layoutLabel: \"\",\n layoutName: \"tree\",\n layoutClassName: \"\",\n layoutDirection: \"h\",\n useAnimationWhenExpanded: !1,\n reLayoutWhenExpandedOrCollapsed: !1,\n autoLayouting: !1,\n layouter: void 0,\n isNeedShowAutoLayoutButton: !1,\n canvasZoom: 100,\n canvasOpacity: 1,\n showSingleNode: !0,\n showNodeLabel: !0,\n showNodeShortLabel: !0,\n canvasSize: {\n width: 10,\n height: 10\n },\n canvasOffset: {\n x: 25,\n y: 27,\n zoom_buff_x: 0,\n zoom_buff_y: 0\n },\n creatingSelection: !1,\n selectionView: {\n x: 25,\n y: 27,\n width: 0,\n height: 0\n },\n creatingNodePlot: !1,\n showTemplateNode: !0,\n newNodeTemplate: nt(JSON.parse(JSON.stringify(mt))),\n creatingLinePlot: !1,\n newLineTemplate: {\n from: \"newRelationTemplate-from\",\n to: \"newRelationTemplate-to\",\n color: \"\",\n text: \"new line\"\n },\n newLinkTemplate: {\n fromNode: null,\n toNodeObject: null,\n toNode: {\n nothing: !0,\n x: 400,\n y: 400,\n el: {\n offsetWidth: 30,\n offsetHeight: 30\n }\n },\n relations: [{}]\n },\n data: {}\n };\n if (i.newLineTemplate = ot(i.newLineTemplate), e.layout && e.layouts)\n throw new Error(\"Graph options cannot have both layout and layouts properties !\");\n const t = e.debug === !0;\n t && u(\"RGOptions:user instance options:\", e), window && (window.relationGraphDebug = t);\n const o = Object.keys(i);\n e && Object.keys(e).forEach((s) => {\n if (s === \"layouts\" || s === \"layout\")\n return;\n const a = e[s];\n if (!o.includes(s)) {\n u(\"RGOptions: unknow option key:\", s);\n return;\n }\n if (typeof a == \"object\") {\n u(\"RGOptions:user setting object:\", s, a);\n const l = i[s];\n if (l && !Array.isArray(l) && a)\n Object.keys(l).forEach((r) => {\n l[r] = a[r];\n });\n else if (Array.isArray(l)) {\n const r = [];\n a.forEach((h) => {\n h && typeof h == \"object\" ? r.push(JSON.parse(JSON.stringify(h))) : r.push(h);\n }), i[s] = r;\n } else\n i[s] = a;\n } else\n i[s] = a;\n });\n let n = [];\n return !e.layouts || !Array.isArray(e.layouts) || e.layouts.length === 0 ? e.layout ? n = [e.layout] : n = [{\n label: \"\\u4E2D\\u5FC3\",\n layoutName: \"center\",\n layoutDirection: \"v\"\n }] : n = e.layouts, u(\"final layouts:\", n), i.layouts = n.map((s) => JSON.parse(JSON.stringify(s))), i.disableNodeClickEffect && (i.defaultFocusRootNode = !1), at(i.layouts[0]), rt(i.layouts[0], i), i;\n}, rt = (e, i) => {\n u(\"applyDefaultOptionsByLayout\", e.layoutName, i), e.layoutName === \"SeeksCenterLayouter\" || e.layoutName === \"center\" ? (i.defaultNodeShape === void 0 && (i.defaultNodeShape = 0), i.defaultLineShape === void 0 && (i.defaultLineShape = 1), i.defaultJunctionPoint === void 0 && (i.defaultJunctionPoint = \"border\")) : e.layoutName === \"SeeksBidirectionalTreeLayouter\" || e.layoutName.includes(\"tree\") ? (i.defaultNodeBorderWidth === void 0 && (i.defaultNodeBorderWidth = 0), i.defaultNodeShape === void 0 && (i.defaultNodeShape = 1), i.defaultLineShape === void 0 && (i.defaultLineShape = 4), (e.from === \"top\" || e.from === \"bottom\") && (i.layoutDirection = \"v\", u(\"set layoutDirection=v\"), i.defaultLineShape === 4 && (i.defaultJunctionPoint === void 0 && (i.defaultJunctionPoint = \"tb\"), u(\"set defaultJunctionPoint=tb\"))), (e.from === \"left\" || e.from === \"right\") && (i.layoutDirection = \"h\", u(\"set layoutDirection=h\"), i.defaultLineShape === 4 && (i.defaultJunctionPoint === void 0 && (i.defaultJunctionPoint = \"lr\"), u(\"set defaultJunctionPoint=lr\")))) : (e.layoutName === \"fixed\" || e.layoutName === \"force\") && (i.moveToCenterWhenRefresh = !1, i.zoomToFitWhenRefresh = !1), i.defaultNodeShape === void 0 && (i.defaultNodeShape = 0), i.defaultLineShape === void 0 && (i.defaultLineShape = 1), i.defaultJunctionPoint === void 0 && (i.defaultJunctionPoint = \"border\");\n}, lt = (e) => {\n const i = gt(e);\n return u(\"RGOptions:new RGOptions:by:\", e), u(\"RGOptions:new RGOptions:\", i), i.instanceId || (i.instanceId = `RGIns-${Le++}`), i;\n}, be = {\n newInstanceOptions: lt,\n createDefaultConfig: gt,\n applyDefaultOptionsByLayout: rt\n}, ke = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n newNodeTemplate: mt,\n createDefaultConfig: gt,\n applyDefaultOptionsByLayout: rt,\n newInstanceOptions: lt,\n default: be\n}, Symbol.toStringTag, { value: \"Module\" }));\nclass Se {\n constructor(i, t) {\n v(this, \"options\");\n v(this, \"listeners\");\n v(this, \"isReact\", !1);\n v(this, \"updateViewHook\", () => {\n });\n this.listeners = t, this.options = lt(i), u(\"new RelationGraph:\", this);\n }\n enableDebugLog(i) {\n this.options.debug = i, window && (window.relationGraphDebug = i);\n }\n setUpdateViewHook(i) {\n this.isReact = !0, this.updateViewHook = i;\n }\n _dataUpdated() {\n this.updateViewHook();\n }\n}\nclass Me extends Se {\n constructor(t, o) {\n super(t, o);\n v(this, \"$dom\");\n v(this, \"$canvasDom\");\n }\n setDom(t) {\n this.$dom = t;\n }\n setCanvasDom(t) {\n this.$canvasDom = t;\n }\n getBoundingClientRect() {\n return this.$dom.getBoundingClientRect();\n }\n}\nclass Pe extends Me {\n constructor(t, o) {\n super(t, o);\n v(this, \"graphData\", {\n rootNode: void 0,\n nodes: [],\n links: [],\n elementLines: []\n });\n v(this, \"seeksNodeIdIndex\", 0);\n v(this, \"allLineColors\", []);\n v(this, \"userLayouerClass\");\n v(this, \"layouter\");\n v(this, \"reactiveData\");\n v(this, \"disableNextLayoutAnimation\", !1);\n v(this, \"elLineUpdating\", !1);\n }\n setReactiveData(t, o) {\n this.graphData = t, this.allLineColors = o.allLineColors, o.options = this.options, this.reactiveData = o;\n }\n setReactiveDataVue3(t, o) {\n this.graphData = t, this.allLineColors = o.allLineColors, o.options = this.options, this.reactiveData = o;\n }\n _setOptions(t) {\n const o = lt(t);\n this.reactiveData.options = o, this.options = this.reactiveData.options;\n }\n _initLayoutByLayoutOptions(t) {\n this.options.layoutClassName = t.layoutClassName, this.options.layoutLabel = t.label, this.options.layoutName = t.layoutName, this.options.layoutDirection = t.layoutDirection, this.layouter = st(t, this.options);\n }\n initLayouter() {\n if (this.userLayouerClass)\n u(\"Use user layouter:\", this.userLayouerClass), this.layouter = this.userLayouerClass;\n else if (this.options.layouts && this.options.layouts.length > 0) {\n const t = this.options.layouts[0];\n u(\"[change layout]Create default layouter\\uFF1A\", this.options.layoutName), this._initLayoutByLayoutOptions(t);\n } else\n u(\"Not set option: layout/layouts\\uFF01\");\n u(\"Layouter instance:\", this.layouter);\n }\n _setJsonData(t, o = !1) {\n return w(this, null, function* () {\n yield this.clearGraph(), u(\"set jsonData:\", t), this.loadGraphJsonData(t);\n });\n }\n clearGraph() {\n return w(this, null, function* () {\n this.graphData.nodes = [], this.graphData.links = [], this.graphData.elementLines = [], this.graphData.rootNode = void 0;\n });\n }\n clearElementLines() {\n return w(this, null, function* () {\n this.graphData.elementLines = [];\n });\n }\n generateNewNodeId(t = 1) {\n const o = \"N\" + (this.graphData.nodes.length + t);\n return this.getNodeById(o) ? this.generateNewNodeId(t + 1) : (u(\"generateNewNodeId:\", t, o), o);\n }\n loadNodes(t) {\n t.forEach((o) => {\n let n = this.graphData.nodes.find((s) => s.id === o.id);\n n || (n = nt(o), n && (n.seeks_id = this.seeksNodeIdIndex++, this.graphData.nodes.push(n)));\n });\n }\n loadLines(t) {\n t.forEach((o) => {\n let n = !1, s, a;\n if (typeof o.from == \"object\" ? s = o.from : s = this.graphData.nodes.find((p) => p.id === o.from), typeof o.to == \"object\" ? a = o.to : a = this.graphData.nodes.find((p) => p.id === o.to), !s) {\n console.error(\"Can not found from node:\", o);\n return;\n }\n if (!a) {\n console.error(\"Can not found to node:\", o);\n return;\n }\n const l = `${s.seeks_id}-${a.seeks_id}`, r = `${a.seeks_id}-${s.seeks_id}`, h = ot(o);\n let d = this.graphData.links.find((p) => p.seeks_id === l), f = !1;\n d || (d = this.graphData.links.find((p) => p.seeks_id === r), d ? f = !0 : (n = !0, d = {\n seeks_id: l,\n fromNode: s,\n toNode: a,\n appended: !1,\n forDisplayOnly: !0,\n relations: []\n }));\n let c = h.arrow;\n h.isHideArrow || (c = this.getLineArrow(h.color)), s.targetNodes || (s.targetNodes = []), a.targetNodes || (a.targetNodes = []), h.forDisplayOnly || (s.targetNodes.includes(a) || s.targetNodes.push(a), a.targetNodes.includes(s) || a.targetNodes.push(s), s.targetTo.includes(a) || s.targetTo.push(a), a.targetFrom.includes(s) || a.targetFrom.push(s), d.forDisplayOnly = !1);\n let _ = !1;\n for (let p = 0; p < d.relations.length; p++)\n if ((d.relations[p].id || h.id) && d.relations[p].id === h.id) {\n _ = !0;\n break;\n }\n _ === !1 && (h.id || (h.id = `${d.seeks_id}-${d.relations.length}`), h.isReverse = f, h.arrow = c, d.relations.push(h)), n && (this.graphData.links.push(d), d.appended = !1);\n });\n }\n flatNodeData(t, o, n, s) {\n g.flatNodeData(t, o, n, s);\n }\n loadGraphJsonData(t) {\n t.lines || (t.lines = t.relations, console.warn(\"[relation-graph] For compatibility with older versionsm, Use jsonData.relations as jsonData.lines, It is recommended that you define your data using\")), t.lines || (t.lines = t.links, console.warn(\"[relation-graph] For compatibility with older versionsm, Use jsonData.links as jsonData.lines, It is recommended that you define your data using\"));\n const o = t.nodes, n = [], s = [];\n this.flatNodeData(o, null, n, s), t.lines.forEach((a) => {\n s.push(a);\n }), this.loadNodes(n), u(\"Nodes is initialized\"), this.loadLines(s), this._dataUpdated(), setTimeout(() => {\n t.elementLines && this.addElementLines(t.elementLines);\n }, 500);\n }\n getLineArrow(t, o = !1, n = !1) {\n const s = o ? \"start-\" : \"\";\n if (n)\n return `${this.options.instanceId}-${s}arrow-checked`;\n if (t) {\n const a = de(t);\n return this.allLineColors.map((l) => l.id).includes(a) || this.allLineColors.push({ id: a, color: t }), `${this.options.instanceId}-${s}arrow-${a}`;\n } else\n return `${this.options.instanceId}-${s}arrow-default`;\n }\n getNodes() {\n return this.graphData.nodes;\n }\n getLinks() {\n return this.graphData.links;\n }\n getGraphJsonData() {\n const t = [], o = [];\n return this.graphData.nodes.forEach((n) => {\n const s = pt(n);\n s && t.push(s);\n }), this.graphData.links.forEach((n) => {\n _t(n, o);\n }), {\n rootId: this.graphData.rootNode ? this.graphData.rootNode.id : \"\",\n nodes: t,\n lines: o\n };\n }\n getGraphJsonOptions() {\n const t = {}, o = [\n \"layouter\",\n \"autoLayouting\",\n \"canvasNVInfo\",\n \"canvasOffset\",\n \"canvasZoom\",\n \"fullscreen\",\n \"instanceId\",\n \"layoutClassName\",\n \"layoutDirection\",\n \"layoutLabel\",\n \"layoutName\",\n \"resetViewSize\",\n \"viewELSize\",\n \"viewNVInfo\",\n \"viewSize\",\n \"canvasSize\",\n \"newLinkTemplate\",\n \"newLineTemplate\",\n \"newNodeTemplate\"\n ];\n return Object.keys(this.options).forEach((n) => {\n o.includes(n) || (t[n] = this.options[n]);\n }), t;\n }\n printGraphJsonData() {\n u(\"graph options:\", JSON.stringify(this.getGraphJsonOptions())), u(\"graph json data:\", JSON.stringify(this.getGraphJsonData()));\n }\n getNodeById(t) {\n for (let o = 0; o < this.graphData.nodes.length; o++)\n if (this.graphData.nodes[o].id === t)\n return this.graphData.nodes[o];\n }\n getLinkById(t) {\n for (let o = 0; o < this.graphData.links.length; o++)\n if (this.graphData.links[o].seeks_id === t)\n return this.graphData.links[o];\n }\n getLinkByLineId(t) {\n for (let o = 0; o < this.graphData.links.length; o++)\n if (this.graphData.links[o].relations.findIndex((n) => n.id === t) !== -1)\n return this.graphData.links[o];\n }\n addNodes(t) {\n u(\"addNodes:\", t), this.loadNodes(t);\n }\n addLines(t) {\n u(\"addLines:\", t), this.loadLines(t);\n }\n addElementLines(t) {\n u(\"addElementLines:\", t), t.forEach((o) => {\n const n = document.getElementById(o.from), s = document.getElementById(o.to);\n if (!n) {\n console.error(\"Can not found from HTMLElement: #\" + o.from);\n return;\n }\n if (!s) {\n console.error(\"Can not found toHTMLElement: #\" + o.to);\n return;\n }\n const a = ot(o);\n let l = a.arrow;\n a.isHideArrow || (l = this.getLineArrow(a.color)), a.forDisplayOnly = !0;\n let r = !1;\n for (const h of this.graphData.elementLines)\n if (h.relations[0].from === a.from && h.relations[0].to === a.to || h.relations[0].from === a.to && h.relations[0].to === a.from) {\n r = !0;\n break;\n }\n if (!r) {\n a.id || (a.id = `rg-ell-${a.from}-${a.to}`), a.arrow = l;\n const h = {\n type: \"el\",\n nodeShape: 1,\n junctionPoint: \"lr\",\n x: 0,\n y: 0,\n el: {\n offsetWidth: 10,\n offsetHeight: 10\n }\n }, d = {\n type: \"el\",\n nodeShape: 1,\n junctionPoint: \"lr\",\n x: 0,\n y: 0,\n el: {\n offsetWidth: 10,\n offsetHeight: 10\n }\n }, f = {\n seeks_id: \"ell-\" + this.graphData.elementLines.length,\n fromNode: h,\n toNode: d,\n relations: [a],\n appended: !0,\n forDisplayOnly: !0\n };\n this._updateElementLinePosition(n, f.fromNode), this._updateElementLinePosition(s, f.toNode), this.graphData.elementLines.push(f);\n }\n }), this.updateElementLines(), this._dataUpdated();\n }\n getElementLineById(t) {\n for (const o of this.graphData.elementLines)\n if (o.seeks_id === t)\n return o;\n }\n getElementLines() {\n return this.graphData.elementLines.map((t) => t.relations[0]);\n }\n removeElementLine(t) {\n u(\"removeElementLine:\", t), this.removeELementLineById(t.relations[0].id);\n }\n removeELementLineById(t) {\n u(\"removeELementLineById:\", t);\n for (let o = 0; o < this.graphData.elementLines.length; o++)\n this.graphData.elementLines[o].relations[0].id === t && (this.graphData.elementLines.splice(o, 1), o--);\n }\n updateElementLines() {\n u(\"updateElementLines:\", this.graphData.elementLines.length), !this.elLineUpdating && (this.elLineUpdating = !0, setTimeout(() => {\n this.elLineUpdating = !1, this._updateElementLines();\n }, 50));\n }\n _updateElementLines() {\n this.graphData.elementLines.forEach((t) => {\n const o = document.getElementById(t.relations[0].from), n = document.getElementById(t.relations[0].to);\n if (!o) {\n t.relations[0].isHide = !0;\n return;\n }\n if (!n) {\n t.relations[0].isHide = !0;\n return;\n }\n if (this._updateElementLinePosition(o, t.fromNode), this._updateElementLinePosition(n, t.toNode), t.fromNode.el.offsetWidth === 0 && t.fromNode.el.offsetHeight === 0) {\n t.relations[0].isHide = !0;\n return;\n }\n if (t.toNode.el.offsetWidth === 0 && t.toNode.el.offsetHeight === 0) {\n t.relations[0].isHide = !0;\n return;\n }\n t.relations[0].isHide = !1;\n }), this._dataUpdated();\n }\n _updateElementLinePosition(t, o) {\n const n = t.getBoundingClientRect(), s = this.$canvasDom.getBoundingClientRect();\n o.x = (n.x - s.x) / (this.options.canvasZoom / 100), o.y = (n.y - s.y) / (this.options.canvasZoom / 100), o.el.offsetWidth = n.width / (this.options.canvasZoom / 100), o.el.offsetHeight = n.height / (this.options.canvasZoom / 100);\n }\n getElementPosition(t) {\n const n = document.getElementById(t).getBoundingClientRect(), s = this.$canvasDom.getBoundingClientRect(), a = (n.x - s.x) / (this.options.canvasZoom / 100), l = (n.y - s.y) / (this.options.canvasZoom / 100);\n return { x: a, y: l };\n }\n removeNodeById(t) {\n let o = 0;\n for (let s = 0; s < this.graphData.links.length; s++) {\n const a = this.graphData.links[s];\n (a.fromNode.id === t || a.toNode.id === t) && (this.removeLink(a), s--, o++);\n }\n u(\"Removed link\\uFF1A\", t, o);\n let n = 0;\n for (let s = 0; s < this.graphData.nodes.length; s++)\n if (this.graphData.nodes[s].id === t) {\n this.graphData.nodes.splice(s, 1), n++;\n break;\n }\n u(\"Removed node\\uFF1A\", t, n);\n }\n removeNode(t) {\n this.removeNodeById(t.id);\n }\n removeLinkByTwoNode(t, o) {\n for (const n of this.getLinks())\n if (n.fromNode.id === t && n.toNode.id === o || n.fromNode.id === t && n.toNode.id === o) {\n this.removeLink(n);\n break;\n }\n }\n getGroupByNode(t, o = []) {\n o.includes(t) || o.push(t);\n for (const n of t.targetNodes)\n o.includes(n) || this.getGroupByNode(n, o);\n return o;\n }\n _clearItem(t, o) {\n for (let n = 0; n < t.length; n++)\n t[n] === o && (t.splice(n, 1), n--);\n }\n removeNodeRef(t, o) {\n t && (t.targetNodes && this._clearItem(t.targetNodes, o), t.targetFrom && this._clearItem(t.targetFrom, o), t.targetTo && this._clearItem(t.targetTo, o));\n }\n removeLinkById(t) {\n u(\"removeLinkById:\", t);\n for (let o = 0; o < this.graphData.links.length; o++) {\n const n = this.graphData.links[o];\n n.seeks_id === t && (this.removeNodeRef(n.fromNode, n.toNode), this.removeNodeRef(n.toNode, n.fromNode), this.graphData.links.splice(o, 1), o--);\n }\n }\n removeLink(t) {\n u(\"removeLink:\", t), this.removeLinkById(t.seeks_id);\n }\n removeLine(t, o) {\n u(\"removeLine:\", t, o);\n for (let n = 0; n < t.relations.length; n++)\n t.relations[n] === o && t.relations.splice(n, 1);\n t.relations.length === 0 && this.removeLink(t);\n }\n setNodePosition(t, o, n) {\n t.x = o, t.y = n;\n }\n getGraphOffet() {\n const t = this.options.graphOffset_x || 0, o = this.options.graphOffset_y || 0;\n return {\n offset_x: t,\n offset_y: o\n };\n }\n setCanvasCenter(t, o) {\n const n = this.options.viewSize.width / 2, s = this.options.viewSize.height / 2, a = this.getGraphOffet();\n this.setCanvasOffset(n - t + a.offset_x, s - o + a.offset_y);\n }\n setCanvasOffset(t, o) {\n this.options.canvasOffset.x = t, this.options.canvasOffset.y = o;\n }\n findGroupNodes(t, o) {\n o.push(t), t.targetNodes.forEach((n) => {\n o.includes(n) || this.findGroupNodes(n, o);\n });\n }\n resetViewSize() {\n !this.options || (this.options.viewSize.width = this.$dom.getBoundingClientRect().width, this.options.viewSize.height = this.$dom.getBoundingClientRect().height, this.options.canvasZoom = 100, this.setCanvasCenter(0, 0), u(\"resetViewSize:1:\", this.options.viewSize.width, this.options.viewSize.height, this.options.canvasOffset.x, this.options.canvasOffset.y), this.refreshNVAnalysisInfo());\n }\n refreshNVAnalysisInfo() {\n if (!this.$dom) {\n console.error(\"cannot get view size !\");\n return;\n }\n const t = {\n NMCanvasCenter: { x: 0, y: 0 }\n }, o = this.$dom.getBoundingClientRect();\n this.options.viewNVInfo.x = o.left, this.options.viewNVInfo.y = o.top, this.options.viewNVInfo.width = o.width, this.options.viewNVInfo.height = o.height, u(\"resetViewSize:\", o.width, o.height, o.left, o.top);\n const n = this.options.canvasSize.width * (this.options.canvasZoom / 100), s = this.options.canvasSize.height * (this.options.canvasZoom / 100);\n t.NMCanvasCenter.x = this.options.canvasOffset.x + this.options.canvasSize.width / 2, t.NMCanvasCenter.y = this.options.canvasOffset.y + this.options.canvasSize.height / 2, this.options.canvasNVInfo.x = t.NMCanvasCenter.x - n / 2, this.options.canvasNVInfo.y = t.NMCanvasCenter.y - s / 2, this.options.canvasNVInfo.width = n, this.options.canvasNVInfo.height = s, this.options.viewELSize.width = o.width, this.options.viewELSize.height = o.height, this.options.viewELSize.left = o.left, this.options.viewELSize.top = o.top;\n }\n getStuffSize(t) {\n const o = t || this.graphData.nodes;\n let n = 9999999, s = 9999999, a = 0, l = 0;\n o.forEach((f) => {\n g.isAllowShowNode(f) && (f.x < n && (n = f.x), f.x > a && (a = f.x + f.el.offsetWidth), f.y < s && (s = f.y), f.y > l && (l = f.y + f.el.offsetHeight));\n });\n const r = 100, h = a - n + r, d = l - s + r;\n return {\n width: h,\n height: d,\n minX: n,\n maxX: a,\n minY: s,\n maxY: l\n };\n }\n getNodesCenter() {\n const t = this.getStuffSize();\n u(\"getStuffSize:\", t);\n const o = t.minX + (t.width - 100) / 2, n = t.minY + (t.height - 100) / 2;\n return {\n x: o,\n y: n\n };\n }\n querySearchAsync(t) {\n if (u(\"fetch-suggestions\", t), t = t.trim(), t === \"\")\n return;\n const o = [];\n return this.graphData.nodes.forEach((n) => {\n u(\"fetch:\", n.text), n.text.includes(t) && o.push(n);\n }), u(\"fetched:\", o.length), o;\n }\n printOptions() {\n const t = this.getGraphJsonOptions();\n console.log(\"options:\", t), console.log(\"options-json-string:\"), console.log(JSON.stringify(t));\n }\n printData() {\n const t = this.getGraphJsonData();\n console.log(\"data:\", t), console.log(\"data-json-string:\"), console.log(JSON.stringify(t));\n }\n loading(t = \"\") {\n this.options.graphLoading = !0, this.options.graphLoadingText = t;\n }\n clearLoading() {\n this.options.graphLoading = !1, this.options.graphLoadingText = \"\";\n }\n}\nclass Oe extends Pe {\n constructor(i, t) {\n super(i, t);\n }\n dataURLToBlob(i) {\n const t = i.split(\",\"), o = t[0], n = o && o.match(/:(.*?);/)[1], s = atob(t[1]);\n let a = s.length;\n const l = new Uint8Array(a);\n for (; a--; )\n l[a] = s.charCodeAt(a);\n return new Blob([l], { type: n });\n }\n createGraphCanvas(i = \"png\") {\n return w(this, null, function* () {\n return new Promise((t, o) => {\n const n = this.options.canvasZoom, s = this.$canvasDom.clientWidth, a = this.$canvasDom.clientHeight, l = this.options.canvasOffset.x, r = this.options.canvasOffset.y;\n this.options.checkedNodeId = \"\", this.options.canvasZoom = 100;\n const h = this.$canvasDom;\n let d = 999999, f = 999999, c = 0, _ = 0;\n const p = 200;\n this.loading(\"Generating...\"), this.graphData.nodes.forEach((x) => {\n x.x < d && (d = x.x), x.x > c && (c = x.x + x.el.offsetWidth), x.y < f && (f = x.y), x.y > _ && (_ = x.y + x.el.offsetHeight);\n });\n const m = d - p, y = f - p;\n this.graphData.nodes.forEach((x) => {\n x.x = x.x - m, x.y = x.y - y;\n }), this.$canvasDom.querySelectorAll(\".rel-canvas-slot\").forEach((x) => {\n const S = x;\n S.style.left = -y + \"px\", S.style.top = -y + \"px\";\n }), this.updateElementLines(), this.$canvasDom.querySelectorAll(\".rel-lines-svg-el-lines\").forEach((x) => {\n const S = x;\n S.style.width = \"4000px\", S.style.height = \"4000px\";\n }), this.options.canvasOffset.x = p * -1, this.options.canvasOffset.y = p * -1;\n const k = c - d + 200 + p * 2, O = _ - f + 100 + p * 2, G = window.devicePixelRatio;\n this.options.canvasSize.width = k * G, this.options.canvasSize.height = O * G, window.scrollTo(0, 0);\n const E = document.createElement(\"canvas\");\n E.width = k * G, E.height = O * G, E.style.backgroundColor = getComputedStyle(h.parentElement, null).backgroundColor, u(\"canvas.style.backgroundColor:\", E.style.backgroundColor), E.style.width = `${k * G}px`, E.style.height = `${O * G}px`, E.getContext(\"2d\").scale(1, 1);\n const N = {\n backgroundColor: E.style.backgroundColor,\n scale: G,\n canvas: E,\n logging: !0,\n width: k,\n height: O,\n useCORS: !0\n };\n setTimeout(() => {\n this.createImage(h, N, i, \"\", (x) => {\n this.options.canvasSize.width = s, this.options.canvasSize.height = a, this.options.canvasOffset.x = l, this.options.canvasOffset.y = r, this.options.canvasZoom = n, this.$canvasDom.querySelectorAll(\".rel-canvas-slot\").forEach((z) => {\n const T = z;\n T.style.left = \"0px\", T.style.top = \"0px\";\n }), this.graphData.nodes.forEach((z) => {\n z.x = z.x + m, z.y = z.y + y;\n }), this.$canvasDom.querySelectorAll(\".rel-lines-svg-el-lines\").forEach((z) => {\n const T = z;\n T.style.width = \"1px\", T.style.height = \"1px\";\n }), this.updateElementLines(), this.clearLoading(), t(x);\n });\n }, 1e3);\n });\n });\n }\n createImage(i, t, o, n, s) {\n u(\"createImage:\", t), Ht(i, t).then((a) => {\n s && s(a);\n });\n }\n getImageBase64(i = \"png\") {\n return w(this, null, function* () {\n const t = yield this.createGraphCanvas(i), o = document.body.appendChild(t);\n o.style.display = \"none\";\n const n = o.toDataURL(`image/${i}`);\n return document.body.removeChild(o), n;\n });\n }\n downloadAsImage(i = \"png\", t) {\n return w(this, null, function* () {\n if (this.listeners.onImageDownload && this.listeners.onImageDownload(this.$canvasDom, i) === !1)\n return;\n if (this.graphData.nodes.length === 0)\n throw new Error(\"No nodes, no content to export!\");\n t || (t = this.options.downloadImageFileName), t || (t = `relation-graph-${(Math.random() * 1e5).toFixed(0)}`);\n const o = yield this.createGraphCanvas(i);\n u(\"downloadImageAsFile:\", i, t);\n let n = !0;\n this.listeners.onImageSaveAsFile && this.listeners.onImageSaveAsFile(\n o,\n i,\n t\n ) === !1 && (n = !1), n && (yield this.downloadImageAsFile(o, i, t));\n });\n }\n downloadImageAsFile(i, t, o) {\n return w(this, null, function* () {\n const n = document.body.appendChild(i);\n n.style.display = \"none\";\n const s = this.dataURLToBlob(n.toDataURL(`image/${t}`));\n document.body.removeChild(n);\n const a = document.createElement(\"a\");\n a.style.display = \"none\";\n try {\n window.navigator.msSaveOrOpenBlob ? window.navigator.msSaveOrOpenBlob(s, `${o}.${t}`) : (a.setAttribute(\"href\", URL.createObjectURL(s)), a.setAttribute(\"download\", `${o}.${t}`), document.body.appendChild(a), a.click(), u(\"click ok!\"), URL.revokeObjectURL(yield s.text()), u(\"revokeObjectURL ok!\"), document.body.removeChild(a), u(\"removeChild ok!\"));\n } catch (l) {\n u(\"[SEEKS Graph]Create and download image error:\", l);\n }\n });\n }\n}\nclass Ee extends Oe {\n constructor(i, t) {\n super(i, t);\n }\n createReturnValue(i, t) {\n return { path: i, textPosition: t };\n }\n createLinePath(i, t, o) {\n let n = i.fromNode;\n n || (n = {\n x: 0,\n y: 0,\n el: {\n offsetWidth: 10,\n offsetHeight: 10\n }\n });\n const s = i.toNode, a = i.relations.length;\n return o || (o = 0), this.createLinePathByTwoNode(n, s, t, o, a);\n }\n _getJunctionPoint(i, t) {\n return i === U.border ? I.getBorderPoint4MultiLine(...t) : i === U.ltrb ? I.getRectJoinPoint(...t) : i === U.tb ? I.getRectVJoinPoint(...t) : i === U.lr ? I.getRectHJoinPoint(...t) : i === U.left ? I.getRectLeftJoinPoint(...t) : i === U.right ? I.getRectRightJoinPoint(...t) : i === U.top ? I.getRectTopJoinPoint(...t) : i === U.bottom ? I.getRectBottomJoinPoint(...t) : I.getBorderPoint4MultiLine(...t);\n }\n createLinePathByTwoNode(i, t, o, n = 0, s = 1) {\n const a = o.lineShape || this.options.defaultLineShape || 1, l = o.lineDirection || this.options.layoutDirection || \"h\";\n let r = i.x, h = i.y, d = t.x, f = t.y;\n const c = { x: 0, y: 0, rotate: 0 };\n if (Number.isNaN(r) || Number.isNaN(h))\n return u(\"error start node:\", i.text, i.x, i.y), c.x = 50, c.y = 50, c.rotate = 0, this.createReturnValue(\"M 0 0 L -10 -10\", c);\n if (Number.isNaN(d) || Number.isNaN(f))\n return u(\"error end point:\", t.text, t.x, t.y), c.x = 50, c.y = 50, c.rotate = 0, this.createReturnValue(\"M 0 0 L 10 -10\", c);\n let _ = i.el.offsetWidth || i.width || 60, p = i.el.offsetHeight || i.height || 60;\n if (Number.isNaN(_) || Number.isNaN(p))\n return c.x = 50, c.y = 50, c.rotate = 0, this.createReturnValue(\"M 0 0 L -10 10\", c);\n let m = t.el.offsetWidth || t.width || 60, y = t.el.offsetHeight || t.height || 60;\n if (Number.isNaN(m) || Number.isNaN(y))\n return c.x = 50, c.y = 50, c.rotate = 0, this.createReturnValue(\"M 0 0 L 10 10\", c);\n o.isReverse && ([r, h, d, f, _, p, m, y] = [\n d,\n f,\n r,\n h,\n m,\n y,\n _,\n p\n ]);\n const M = [\n r,\n h,\n d,\n f,\n _,\n p,\n m,\n y,\n i.nodeShape || this.options.defaultNodeShape,\n o.isReverse,\n s,\n n,\n this.options.multiLineDistance || 14\n ], D = [\n d,\n f,\n r,\n h,\n m,\n y,\n _,\n p,\n t.nodeShape || this.options.defaultNodeShape,\n !o.isReverse,\n s,\n n,\n this.options.multiLineDistance || 14\n ], k = this.options.defaultJunctionPoint || U.border, O = o.fromJunctionPoint || i.junctionPoint || k, G = o.toJunctionPoint || t.junctionPoint || k, E = this._getJunctionPoint(O, M), N = this._getJunctionPoint(G, D);\n if (!E || !N)\n return this.createReturnValue(\n \"Unable to calculate the starting point and ending point of the line.\",\n c\n );\n const x = E.x, S = E.y, P = N.x, z = N.y;\n if (i === t) {\n const X = r + _ / 2, C = h + p / 2, H = Math.atan2(S - C, x - X), $ = Math.sin(H + Math.PI) * 5, A = Math.cos(H + Math.PI) * 5, W = { x: x - $, y: S - A }, vt = { x: x + $, y: S + A }, ee = x - A * 5, oe = S - $ * 5, ne = x - A * 5, ie = S - $ * 5, se = `M${W.x},${W.y} C${ee},${oe} ${ne},${ie} ${vt.x},${vt.y}`;\n return c.x = x - A / (A + $) * 20, c.y = S + $ / (A + $) * 20, c.rotate = 0, this.createReturnValue(se, c);\n }\n if (Number.isNaN(x) || Number.isNaN(S))\n return u(\"error start point:\", i.text), c.x = 50, c.y = 50, c.rotate = 0, this.createReturnValue(\"M 0 0 L -10 0\", c);\n if (Number.isNaN(P) || Number.isNaN(z))\n return u(\"error end point:\", t.text), c.x = 50, c.y = 50, c.rotate = 0, this.createReturnValue(\"M 0 0 L 10 0\", c);\n const T = r + _ / 2, j = h + p / 2, L = d + m / 2, b = f + y / 2, tt = this.createLinePathData(\n o,\n c,\n s,\n n,\n l,\n a,\n x,\n S,\n T,\n j,\n _,\n p,\n P,\n z,\n L,\n b,\n m,\n y\n );\n return this.createReturnValue(tt, c);\n }\n createLinePathData(i, t, o, n, s, a, l, r, h, d, f, c, _, p, m, y, M, D) {\n let k = _ - l, O = p - r, G = _ > l ? 1 : -1, E = p > r ? 1 : -1, N = s === \"v\" ? E : G, x = \"\";\n if (a === 4) {\n const S = l - h, P = r - d, z = _ - m, T = p - y;\n let j = this.options.defaultPolyLineRadius || 0;\n const L = Math.min(j, Math.abs(k)) * (l < _ ? 1 : -1), b = Math.min(j, Math.abs(O)) * (r < p ? 1 : -1), tt = Math.abs(S) >= f / 2 ? \"h\" : \"v\", X = Math.abs(z) >= M / 2 ? \"h\" : \"v\", C = [];\n if (tt === \"v\") {\n const H = i.polyLineStartDistance || Math.max(Math.min(30, Math.abs(p - r) / 2), 15), $ = P > 0 ? H : -H;\n if (i.placeText === \"start\" ? (t.x = l, t.y = r + $ - (P > 0 ? 20 : -5)) : i.placeText === \"middle\" ? (t.x = l + (_ - l) / 2, t.y = r + $) : (t.x = _, t.y = r + $ + (P > 0 ? 20 : -5)), C.push(`M ${l} ${r}`), C.push(`v${$ - b}`), X === \"v\")\n C.push(`c${0},${b},`), C.push(`${L},${b},`), C.push(`${L},${b}`), C.push(`h${_ - l - L * 2}`), C.push(`c${L},${0},`), C.push(`${L},${b},`), C.push(`${L},${b}`), C.push(`v${p - r - $ - b}`);\n else {\n C.push(`c${0},${b},`), C.push(`${L},${b},`), C.push(`${L},${b}`);\n const A = Math.min(30, Math.abs(_ - l) / 2), W = z > 0 ? -A : A;\n C.push(`h${_ - l + W - L}`), C.push(`c${L},${0},`), C.push(`${L},${b},`), C.push(`${L},${b}`), C.push(`v${p - r - $ - b}`), C.push(`h${W - L}`);\n }\n } else {\n const H = i.polyLineStartDistance || Math.max(Math.min(30, Math.abs(_ - l) / 2), 15), $ = S > 0 ? H : -H;\n if (i.placeText === \"start\" ? (t.x = l + (S > 0 ? 10 : -50), t.y = r - 5) : i.placeText === \"middle\" ? (t.x = l + $, t.y = r + (p - r) / 2) : (t.x = l + $ + (S > 0 ? 20 : -50), t.y = p - 5), C.push(`M ${l} ${r}`), C.push(`h${$ - L}`), X === \"v\") {\n const A = Math.min(30, Math.abs(p - r) / 2), W = T > 0 ? -A : A;\n C.push(`c${L},${0},`), C.push(`${L},${b},`), C.push(`${L},${b}`), C.push(`v${p - r + W - b}`), C.push(`h${_ - l - $ - L}`), C.push(`c${0},${b},`), C.push(`${L},${b},`), C.push(`${L},${b}`), C.push(`v${W - b}`);\n } else\n C.push(`c${L},${0},`), C.push(`${L},${b},`), C.push(`${L},${b}`), C.push(`v${p - r - b * 2}`), C.push(`c${0},${b},`), C.push(`${L},${b},`), C.push(`${L},${b}`), C.push(`h${_ - l - $ - L}`);\n }\n x = C.join(\" \");\n } else if (a === 2 || a === 3 || a === 5 || a === 6 || a === 7 || a === 8) {\n const S = l - h, P = r - d, z = _ - m, T = p - y, j = 1 / (o + 1) * (n + 1);\n let L, b;\n if (a === 2)\n L = s === \"v\" ? { x: 0, y: N * 30 } : { x: N * 30, y: 0 }, b = s === \"v\" ? { x: k * j, y: N * -10 } : { x: N * -10, y: O * j };\n else if (a === 3)\n L = s === \"v\" ? { x: 0, y: O * j } : { x: N * 30, y: 0 }, b = s === \"v\" ? { x: 0, y: 0 } : { x: N * -10, y: O * j };\n else if (a === 5)\n L = s === \"v\" ? { x: 0, y: 0 } : { x: 0, y: 0 }, b = s === \"v\" ? { x: 0, y: O * j } : { x: k * j, y: 0 };\n else if (a === 6) {\n const X = Math.min(200, Math.max(100, Math.abs(k / 2))), C = Math.min(200, Math.max(100, Math.abs(O / 2))), H = S / (Math.abs(S) + Math.abs(P)) * X, $ = P / (Math.abs(S) + Math.abs(P)) * C;\n L = { x: H, y: $ };\n const A = z / (Math.abs(z) + Math.abs(T)) * X + k, W = T / (Math.abs(z) + Math.abs(T)) * C + O;\n b = { x: A, y: W };\n } else if (a === 7) {\n const H = S / (Math.abs(S) + Math.abs(P)) * 30, $ = P / (Math.abs(S) + Math.abs(P)) * 30;\n L = { x: H, y: $ };\n const A = z / (Math.abs(z) + Math.abs(T)) * 30 + k, W = T / (Math.abs(z) + Math.abs(T)) * 30 + O;\n b = { x: A, y: W };\n } else if (a === 8) {\n const H = S / (Math.abs(S) + Math.abs(P)) * 30, $ = P / (Math.abs(S) + Math.abs(P)) * 30;\n L = { x: H, y: $ };\n const A = z / (Math.abs(z) + Math.abs(T)) * 30 + k, W = T / (Math.abs(z) + Math.abs(T)) * 30 + O;\n b = { x: A, y: W };\n }\n const tt = this.calcCurveCenter(\n { x: l, y: r },\n { x: l + L.x, y: r + L.y },\n { x: l + b.x, y: r + b.y },\n { x: l + k, y: r + O },\n a < 6 ? 0.8 : 0.5\n );\n t.x = tt.x, t.y = tt.y, x = `M${l},${r} c${L.x},${L.y} ${b.x},${b.y} ${k},${O}`, a === 8 && (x = x + \" Z\");\n } else\n t.rotate = I.getTextAngle(l, r, _, p), t.x = Math.round(l + (_ - l) / 2), t.y = Math.round(r + (p - r) / 2), Number.isNaN(t.rotate) && (t.rotate = 0), x = `M ${l} ${r} L ${_} ${p}`;\n return x;\n }\n calcCurveCenter(i, t, o, n, s = 0.5) {\n const a = { x: (1 - s) * i.x + s * t.x, y: (1 - s) * i.y + s * t.y }, l = { x: (1 - s) * t.x + s * o.x, y: (1 - s) * t.y + s * o.y }, r = { x: (1 - s) * o.x + s * n.x, y: (1 - s) * o.y + s * n.y }, h = { x: (1 - s) * a.x + s * l.x, y: (1 - s) * a.y + s * l.y }, d = { x: (1 - s) * l.x + s * r.x, y: (1 - s) * l.y + s * r.y };\n return { x: (1 - s) * h.x + s * d.x, y: (1 - s) * h.y + s * d.y };\n }\n createCheckedLinePath() {\n const i = this.options.checkedLineId;\n if (!!i)\n try {\n const t = this.getElementLineById(this.options.checkedLinkId);\n if (t) {\n const { path: l } = this.createLinePath(\n t,\n t.relations[0],\n 0\n );\n return l;\n }\n const o = this.getLinkByLineId(i);\n if (!o) {\n u(\"Can not find link by checkedLineId:\", i);\n return;\n }\n if (!g.isAllowShowNode(o.fromNode)) {\n u(\"from hide:\", i);\n return;\n }\n if (!g.isAllowShowNode(o.toNode)) {\n u(\"to hide:\", i);\n return;\n }\n const n = o.relations.findIndex((l) => l.id === i);\n if (n === -1) {\n u(\"Can not find checkedLineId:\", i);\n return;\n }\n const s = o.relations[n], { path: a } = this.createLinePath(\n o,\n s,\n n\n );\n return a;\n } catch (t) {\n u(t);\n }\n }\n createCheckedLineStrokeWidth() {\n const i = this.options.checkedLineId;\n if (!i)\n return this.options.defaultLineWidth + 8;\n try {\n const t = this.getLinkByLineId(i);\n if (!t)\n return this.options.defaultLineWidth + 8;\n const o = t.relations.findIndex((s) => s.id === i);\n if (o === -1)\n return this.options.defaultLineWidth + 8;\n const n = t.relations[o];\n return n.lineWidth ? n.lineWidth + 8 : this.options.defaultLineWidth + 8;\n } catch (t) {\n u(t);\n }\n }\n getTextTransform(i, t, o, n) {\n if (Number.isNaN(t) || Number.isNaN(o))\n return \"translate(0,0)\";\n const s = i.lineShape === void 0 ? this.options.defaultLineShape : i.lineShape;\n return s === 1 || s === 4 ? `translate(${t},${o})rotate(${n || 0})` : `translate(${t},${o})`;\n }\n getArrow(i, t, o = !1) {\n return i.isHideArrow ? \"none\" : `url('#${this.getLineArrow(\n i.color,\n o,\n !1\n )}')`;\n }\n getLineTextStyle(i, t, o) {\n let n = t.text;\n if (!n)\n return null;\n let s = 0;\n const a = i.fromNode.x, l = i.toNode.x;\n n.length > this.options.lineTextMaxLength && (n = n.substring(0, this.options.lineTextMaxLength || 15) + \"...\"), (t.useTextPath !== void 0 ? t.useTextPath : this.options.lineUseTextPath) && a > l && (s = 180, n = n.split(\"\").reverse().join(\"\"));\n const h = t.textOffset_x || this.options.defaultLineTextOffset_x || 0, d = t.textOffset_y || this.options.defaultLineTextOffset_y || -8, f = `translate(${h},${d})`;\n let c = \"middle\";\n (t.lineShape === 4 || this.options.defaultLineShape === 4) && (c = \"start\");\n let _ = \"50%\";\n if (t.lineShape === 4 || this.options.defaultLineShape === 4)\n if (t.placeText === \"start\")\n _ = \"10%\", c = \"start\";\n else if (t.placeText === \"end\")\n _ = \"90%\", c = \"end\";\n else if (t.placeText)\n _ = t.placeText, c = \"start\";\n else if (this.options.layoutDirection === \"v\") {\n const p = i.fromNode.x, m = i.toNode.x;\n _ = String(Math.abs(m - p) + 43);\n } else {\n const p = i.fromNode.y, m = i.toNode.y;\n _ = String(Math.abs(m - p) + 43);\n }\n else\n t.placeText === \"start\" ? (_ = \"10%\", c = \"start\") : t.placeText === \"end\" ? (_ = \"90%\", c = \"end\") : t.placeText ? (_ = t.placeText, c = \"start\") : (_ = \"50%\", c = \"middle\");\n return {\n text: n,\n textOffset: f,\n textAnchor: c,\n textHPosition: _,\n textRotate: s\n };\n }\n}\nclass Ne extends Ee {\n constructor(t, o) {\n super(t, o);\n v(this, \"zoomCenter_of_newSize\", { x: 0, y: 0 });\n }\n zoom(t, o) {\n this.options.canvasZoom + t < 10 && (u(\"zoom:reset zoom=10\"), t = 10 - this.options.canvasZoom);\n const n = this.options.canvasZoom + t, s = this.showZoomCenter(o, t);\n this.options.canvasOffset.x += s.buff_x, this.options.canvasOffset.y += s.buff_y, this.options.canvasZoom = n, this.refreshNVAnalysisInfo(), this.listeners.onZoomEnd && this.listeners.onZoomEnd();\n }\n setZoom(t, o) {\n const n = Math.floor(t - this.options.canvasZoom);\n this.zoom(n, o);\n }\n getCanvasCoordinateByClientCoordinate(t) {\n const o = this.options.canvasZoom / 100, { NMCanvasStart: n, NMZoomCenter: s } = this.analysisByZoom(o, t), a = {\n x: s.x - n.x,\n y: s.y - n.y\n };\n return {\n x: a.x / o,\n y: a.y / o\n };\n }\n getClientCoordinateByCanvasCoordinate(t) {\n const o = this.options.canvasZoom / 100, { NMCanvasStart: n } = this.analysisByZoom(o), s = {\n x: t.x * o + n.x,\n y: t.y * o + n.y\n };\n return {\n x: s.x + this.options.canvasOffset.x,\n y: s.y + this.options.canvasOffset.y\n };\n }\n analysisByZoom(t, o) {\n const n = {\n NMViewPosition: { x: 0, y: 0 },\n NMViewCenter: { x: 0, y: 0 },\n NMCanvasCenter: { x: 0, y: 0 },\n NMCanvasStart: { x: 0, y: 0 },\n NMCanvasEnd: { x: 0, y: 0 },\n NMZoomCenter: { x: 0, y: 0 },\n NMViewBuff: { x: 0, y: 0 },\n NMCanvasOffsetBuff: { x: 0, y: 0 },\n NMCanvasSize: { width: 0, height: 0 }\n }, s = this.$dom.getBoundingClientRect();\n n.NMViewPosition.x = s.left, n.NMViewPosition.y = s.top, n.NMViewCenter.x = s.width / 2, n.NMViewCenter.y = s.height / 2;\n const a = this.options.canvasSize.width * t, l = this.options.canvasSize.height * t;\n n.NMCanvasCenter.x = this.options.canvasOffset.x + this.options.canvasSize.width / 2, n.NMCanvasCenter.y = this.options.canvasOffset.y + this.options.canvasSize.height / 2, n.NMCanvasStart.x = n.NMCanvasCenter.x - a / 2, n.NMCanvasStart.y = n.NMCanvasCenter.y - l / 2, n.NMCanvasEnd.x = n.NMCanvasCenter.x + a / 2, n.NMCanvasEnd.y = n.NMCanvasCenter.y + l / 2, n.NMZoomCenter.x = n.NMViewCenter.x, n.NMZoomCenter.y = n.NMViewCenter.y, o && (n.NMZoomCenter.x = o.x - n.NMViewPosition.x, n.NMZoomCenter.y = o.y - n.NMViewPosition.y);\n let r = n.NMViewCenter.x - n.NMCanvasCenter.x, h = n.NMViewCenter.y - n.NMCanvasCenter.y;\n return o && (r = n.NMZoomCenter.x - n.NMCanvasCenter.x, h = n.NMZoomCenter.y - n.NMCanvasCenter.y), n.NMViewBuff.x = r, n.NMViewBuff.y = h, n.NMCanvasSize.width = a, n.NMCanvasSize.height = l, n;\n }\n showZoomCenter(t, o) {\n if (!this.$dom)\n return { buff_x: 0, buff_y: 0 };\n const n = this.options.canvasZoom / 100, s = this.analysisByZoom(n, t), a = (this.options.canvasZoom + o) / 100, l = this.analysisByZoom(a, t), r = a / n, h = 0, d = 0, f = a / n, c = 0, _ = 0;\n this.zoomCenter_of_newSize.x = r * s.NMViewBuff.x + d * s.NMViewBuff.y + c, this.zoomCenter_of_newSize.y = h * s.NMViewBuff.x + f * s.NMViewBuff.y + _;\n const p = s.NMViewBuff.x - this.zoomCenter_of_newSize.x, m = s.NMViewBuff.y - this.zoomCenter_of_newSize.y;\n this.zoomCenter_of_newSize.x += s.NMCanvasCenter.x, this.zoomCenter_of_newSize.y += s.NMCanvasCenter.y;\n let y = s.NMCanvasStart.x - s.NMCanvasCenter.x, M = s.NMCanvasStart.y - s.NMCanvasCenter.y, D = r * y + d * M + c, k = h * y + f * M + _;\n return l.NMCanvasStart.x = p + s.NMCanvasCenter.x + D, l.NMCanvasStart.y = p + s.NMCanvasCenter.y + k, y = s.NMCanvasEnd.x - s.NMCanvasCenter.x, M = s.NMCanvasEnd.y - s.NMCanvasCenter.y, D = r * y + d * M + c, k = h * y + f * M + _, l.NMCanvasEnd.x = p + s.NMCanvasCenter.x + D, l.NMCanvasEnd.y = p + s.NMCanvasCenter.y + k, s.NMCanvasOffsetBuff.x = p, s.NMCanvasOffsetBuff.y = m, {\n buff_x: p,\n buff_y: m\n };\n }\n}\nclass ze extends Ne {\n constructor(i, t) {\n super(i, t);\n }\n doLayout() {\n return w(this, null, function* () {\n if (!this.layouter) {\n u(\"no layouter\");\n return;\n }\n if (!this.graphData.rootNode) {\n u(\"Cant find rootNode!\");\n return;\n }\n this.options.showMaskWhenLayouting && this.loading(), yield Lt(300), this.options.canvasOpacity = 1, this._dataUpdated(), this.options.showMaskWhenLayouting && this.clearLoading(), u(\"node size\\uFF1A\", this.graphData.nodes.length);\n const i = this.options.useAnimationWhenExpanded;\n this.disableNextLayoutAnimation && (this.options.useAnimationWhenExpanded = !1), this.layouter.requireLinks && this.layouter.setLinks(this.getLinks()), yield this.layouter.placeNodes(this.graphData.nodes, this.graphData.rootNode), this.options.useAnimationWhenExpanded = i, this.disableNextLayoutAnimation = !1, this.updateElementLines(), this._dataUpdated();\n });\n }\n refresh(i = !0) {\n return w(this, null, function* () {\n this.resetViewSize(), this.disableNextLayoutAnimation = !0, this._dataUpdated(), i && (yield this.doLayout()), u(\"placeOtherNodes\"), yield this.placeOtherNodes(), u(\"placeOtherNodes ok!\"), yield this.playShowEffect(), this.updateElementLines(), this._dataUpdated();\n });\n }\n playShowEffect() {\n return w(this, null, function* () {\n if (this.graphData.nodes.length === 0) {\n u(\"relation-graph:move to center: data not ready!\");\n return;\n }\n if (u(\"playShowEffect:\", this.options.moveToCenterWhenRefresh, this.options.zoomToFitWhenRefresh), this.graphData.rootNode && Number.isNaN(this.graphData.rootNode.x)) {\n u(\"rootNode.x is NaN, graph is currently hidden?\");\n return;\n }\n this.options.moveToCenterWhenRefresh ? yield this.moveToCenter() : (this.setCanvasCenter(0, 0), this._dataUpdated()), yield this.zoomToFitWhenRefresh();\n });\n }\n moveToCenter() {\n return w(this, null, function* () {\n if (this.options.useAnimationWhenRefresh) {\n const i = this.getNodesCenter();\n u(\"center:\", i.x, i.y);\n const t = this.getGraphOffet();\n u(\"centerOffset:\", t.offset_x, t.offset_y);\n const o = this.options.viewSize.width / 2 - i.x + t.offset_x, n = this.options.viewSize.height / 2 - i.y + t.offset_y;\n yield this.animateGoto(o, n, 500), this._dataUpdated();\n } else {\n const i = this.getNodesCenter();\n u(\"center:\", i.x, i.y), this.setCanvasCenter(i.x, i.y), this._dataUpdated();\n }\n });\n }\n zoomToFitWhenRefresh() {\n return w(this, null, function* () {\n this.options.zoomToFitWhenRefresh && (yield this.zoomToFit());\n });\n }\n placeOtherNodes() {\n return w(this, null, function* () {\n const i = [];\n this.graphData.rootNode && this.findGroupNodes(this.graphData.rootNode, i);\n const t = [], o = [];\n this.graphData.nodes.forEach((n) => {\n i.includes(n) || (this.options.placeSingleNode && (!n.targetNodes || n.targetNodes.length === 0) && n.fixed !== !0 ? (n.x = Math.floor(Math.random() * 200) - 100, n.y = Math.floor(Math.random() * 200) - 100, n.lot || (n.lot = { childs: [] }), n.lot.placed = !0, n.singleNode = !0, o.push(n)) : t.push(n));\n }), this.options.placeSingleNode && this.options.layoutName !== \"fixed\" && this.placeSingleNodes(o), this.options.placeOtherGroup && this.options.layoutName !== \"fixed\" && (yield this.placeOtherGroup(t, i), this._dataUpdated());\n });\n }\n placeSingleNodes(i) {\n if (i.length > 0) {\n u(\"sigle nodes:\", i.length);\n const t = new et({ layoutName: \"force\" }, this.options);\n t.allNodes = this.graphData.nodes, t.fastStart = !0, t.justLayoutSingleNode = !0, t.maxLayoutTimes = 100, t.byLine = !1, t.autoLayout(!0);\n }\n }\n placeOtherGroup(i, t) {\n return w(this, null, function* () {\n if (i.length > 0) {\n u(\"[placeOtherGroup]notPlacedNodes nodes:\", i.length);\n const o = JSON.parse(JSON.stringify(this.layouter.layoutOptions)), n = st(o, this.options);\n n.isMainLayouer = !1;\n const s = i[0], a = this.getStuffSize(t);\n u(\"[placeOtherGroup]placeOtherGroup:\", n.layoutOptions.layoutName, \"root:\", s.text);\n let l = n.layoutOptions.layoutName.includes(\"tree\") ? 300 : 600;\n if (n.layoutOptions.layoutName === \"force\") {\n const d = n;\n d.force_node_repulsion = 0.2, d.force_line_elastic = 1.5, l = 100;\n }\n s.x = a.maxX + l, s.y = 0, n.layoutOptions.fixedRootNode = !0;\n const r = [];\n this.findGroupNodes(s, r), u(\"[placeOtherGroup]thisGroupNodes:\", i.length), this.layouter.requireLinks && this.layouter.setLinks(this.getLinks()), yield n.placeNodes(r, s), t.push(...r);\n const h = [];\n i.forEach((d) => {\n t.includes(d) || h.push(d);\n }), yield this.placeOtherGroup(h, t), this._dataUpdated();\n }\n });\n }\n zoomToFit(i) {\n return w(this, null, function* () {\n const t = this.getStuffSize(), o = this.options.viewSize.width / t.width, n = this.options.viewSize.height / t.height, s = Math.min(o, n, 1);\n u(\"zoomToFit:\", { stuffSize: t, zoomPercent: s, zoomPercentX: o, zoomPercentY: n, viewSize: this.options.viewSize }), this.options.useAnimationWhenRefresh ? (yield this.animateToZoom(s * 100, 300), this._dataUpdated(), i && i()) : (this.setZoom(s * 100), this._dataUpdated(), i && i());\n });\n }\n animateGoto(i, t, o) {\n return w(this, null, function* () {\n return new Promise((n, s) => {\n u(\"animateGoto:\", i, t);\n const a = i - this.options.canvasOffset.x, l = t - this.options.canvasOffset.y, r = o, h = 5, d = Math.round(a / h), f = Math.round(l / h), c = r / h;\n this.animateStepAction(0, c, h, () => {\n this.options.canvasOffset.x += d, this.options.canvasOffset.y += f, this._dataUpdated();\n }, () => {\n n();\n });\n });\n });\n }\n animateToZoom(i, t) {\n return w(this, null, function* () {\n return new Promise((o, n) => {\n const s = i - this.options.canvasZoom, a = t, l = 5, r = Math.round(s / l), h = a / l;\n u(\"animateToZoom:\", s, r), this.animateStepAction(0, h, l, () => {\n this.zoom(r), this._dataUpdated();\n }, () => {\n this.setZoom(i), this._dataUpdated(), o();\n });\n });\n });\n }\n animateStepAction(i, t, o, n, s) {\n i < o ? (n(i, o), setTimeout(() => {\n this.animateStepAction(i + 1, t, o, n, s);\n }, t)) : s();\n }\n toggleAutoLayout() {\n this.options.autoLayouting = !this.options.autoLayouting, u(\"toggleAutoLayout:to:\", this.options.autoLayouting), this.options.autoLayouting ? this.startAutoLayout() : this.stopAutoLayout();\n }\n startAutoLayout() {\n this.options.autoLayouting = !0, this.layouter.autoLayout ? this.layouter.autoLayout(!0, this.isReact && (() => {\n this._dataUpdated();\n })) : u(\"Current layout not support stop()\");\n }\n stopAutoLayout() {\n this.options.autoLayouting = !1, this.layouter.stop ? this.layouter.stop() : u(\"Current layout not support stop()\");\n }\n sleep(i) {\n return w(this, null, function* () {\n yield Lt(i);\n });\n }\n}\nlet J = { x: 0, y: 0 };\nconst q = { x: 0, y: 0 }, Q = { x: 0, y: 0 };\nlet dt, ut;\nconst bt = (e) => {\n const i = {\n clientX: 0,\n clientY: 0\n };\n if (Y(e)) {\n const t = e.touches || e.targetTouches;\n if (!t)\n throw new Error(\"error targetTouches\");\n i.clientX = t[0].clientX, i.clientY = t[0].clientY;\n } else\n i.clientX = e.clientX, i.clientY = e.clientY;\n return i;\n}, V = {\n startDrag(e, i, t, o) {\n o ? dt = (n, s, a) => {\n const l = n - Q.x, r = s - Q.y;\n o(l, r, q, Q, a);\n } : dt = (n, s) => {\n J.x = q.x + (n - Q.x), J.y = q.y + (s - Q.y);\n }, ut = t, J = i, q.x = J.x, q.y = J.y, u(\"[canvas]onDragStart...\", Y(e), e);\n try {\n const n = bt(e);\n Q.x = n.clientX, Q.y = n.clientY, Y(e) ? (document.body.addEventListener(\"touchmove\", V.onNodeMove), document.body.addEventListener(\"touchend\", V.onNodeDragend), e.preventDefault()) : (document.body.addEventListener(\"mousemove\", V.onNodeMove), document.body.addEventListener(\"mouseup\", V.onNodeDragend));\n } catch (n) {\n console.error(n.message);\n }\n },\n onNodeMove(e) {\n const i = bt(e);\n dt(i.clientX, i.clientY, e);\n },\n onNodeDragend(e) {\n Y(e) ? (document.body.removeEventListener(\"touchmove\", V.onNodeMove), document.body.removeEventListener(\"touchend\", V.onNodeDragend)) : (document.body.removeEventListener(\"mousemove\", V.onNodeMove), document.body.removeEventListener(\"mouseup\", V.onNodeDragend)), u(\"[canvas]onDragend...\", Y(e), e), ut && ut(\n J.x - q.x,\n J.y - q.y,\n e\n );\n }\n}, $e = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: V\n}, Symbol.toStringTag, { value: \"Module\" }));\nclass De extends ze {\n constructor(t, o) {\n super(t, o);\n v(this, \"prevClickTime\", 0);\n v(this, \"movingListener\");\n v(this, \"step1EventTime\", 0);\n v(this, \"onCreateLineCallback\");\n }\n setDefaultLineShape(t) {\n this.options.defaultLineShape = t;\n }\n setDefaultJunctionPoint(t) {\n this.options.defaultJunctionPoint = t;\n }\n setCheckedNode(t) {\n this.options.checkedNodeId = t;\n }\n setCheckedLinkAndLine(t, o) {\n this.options.checkedLinkId = t.seeks_id, this.options.checkedLineId = o ? o.id : \"\";\n }\n clearChecked() {\n this.options.checkedNodeId = \"\", this.options.checkedLineId = \"\", this.options.checkedLinkId = \"\";\n }\n selectNode(t, o) {\n t.selected = o;\n }\n flashNode(t, o) {\n t.flashing = o;\n }\n updateNodeOffsetSize(t, o, n) {\n t.el.offsetWidth = o, t.el.offsetHeight = n;\n }\n onNodeClick(t, o) {\n if (Date.now() - this.prevClickTime < 200) {\n u(\"[node]click abort : time < 200\");\n return;\n }\n if (this.prevClickTime = Date.now(), this.options.creatingLinePlot) {\n this.onNodeClickWhenCreatingLinePlot(t);\n return;\n }\n u(\"[node]node click\", t.text, this.options.creatingLinePlot), !o.shiftKey && this.options.disableNodeClickEffect !== !0 && t.disableDefaultClickEffect !== !0 && (this.options.checkedLinkId = \"\", this.options.checkedLineId = \"\", this.setCheckedNode(t.id)), this.listeners.onNodeClick && this.listeners.onNodeClick(t, o), this.prevClickTime = Date.now();\n }\n onLineClick(t, o, n) {\n u(\"onLineClick:\", \"line:\", t, \"link:\", o), this.options.disableLineClickEffect !== !0 && t.disableDefaultClickEffect !== !0 && (this.setCheckedNode(\"\"), this.setCheckedLinkAndLine(o, t)), this.listeners.onLineClick && this.listeners.onLineClick(t, o, n);\n }\n expandOrCollapseNode(t, o) {\n return w(this, null, function* () {\n t.expanded === !1 ? yield this.expandNode(t, o) : yield this.collapseNode(t, o);\n });\n }\n setChildsFromPosition(t, o) {\n t.lot.childs.forEach((n) => {\n n.x = o.x, n.y = o.y, this.setChildsFromPosition(n, o);\n });\n }\n expandNode(t, o) {\n return w(this, null, function* () {\n u(\"onNodeExpand:\", t), t.expanded = !0, this.options.useAnimationWhenExpanded && (yield this.layouter.snapshotBeforeAnimation(), this.setChildsFromPosition(t, t), yield this.layouter.animationLayout(!1)), u(\"relayout check:\", this.options.reLayoutWhenExpandedOrCollapsed), this.options.reLayoutWhenExpandedOrCollapsed && (u(\"relayout...\"), yield this.layouter.snapshotBeforeAnimation(), yield this.doLayout()), this.updateElementLines(), this._dataUpdated(), this.listeners.onNodeExpand && this.listeners.onNodeExpand(t, o);\n });\n }\n setChildsToPosition(t, o) {\n t.lot.childs.forEach((n) => {\n n.lot.from_x = n.x, n.lot.from_y = n.y, n.lot.to_x = o.x, n.lot.to_y = o.y, this.setChildsToPosition(n, o);\n });\n }\n collapseNode(t, o) {\n return w(this, null, function* () {\n u(\"onNodeCollapse:\", t), this.options.useAnimationWhenExpanded && (yield this.layouter.snapshotBeforeAnimation(), this.setChildsToPosition(t, t), yield this.layouter.animationLayout(!1)), t.expanded = !1, u(\"relayout check:\", this.options.reLayoutWhenExpandedOrCollapsed), this.options.reLayoutWhenExpandedOrCollapsed && (u(\"relayout...\"), yield this.layouter.snapshotBeforeAnimation(), yield this.doLayout()), this.updateElementLines(), this._dataUpdated(), this.listeners.onNodeCollapse && this.listeners.onNodeCollapse(t, o);\n });\n }\n onNodeDragEnd(t, o) {\n this.updateElementLines(), this.listeners.onNodeDragEnd && this.listeners.onNodeDragEnd(t, o);\n }\n onCanvasDragEnd(t) {\n this.listeners.onCanvasDragEnd && this.listeners.onCanvasDragEnd(t);\n }\n onCanvasClick(t) {\n this.options.creatingLinePlot && this.onCanvasClickWhenCreatingLinePlot(t), this.listeners.onCanvasClick && this.listeners.onCanvasClick(t);\n }\n clickGraphMask(t) {\n this.clearLoading();\n }\n onCanvasSelectionEnd(t, o) {\n this.listeners.onCanvasSelectionEnd && this.listeners.onCanvasSelectionEnd(t, o);\n }\n startCreatingNodePlot(t, o) {\n this.options.newNodeTemplate = nt(JSON.parse(JSON.stringify(mt))), this.options.creatingNodePlot = !0;\n const n = Y(t);\n this.options.showTemplateNode = !n;\n let s = (p, m) => {\n this.options.newNodeTemplate.x = p, this.options.newNodeTemplate.y = m, this._dataUpdated();\n }, a = (p, m) => {\n const y = \"s-\" + Date.now();\n this.addNodes([{\n id: y,\n text: this.options.newNodeTemplate.text,\n x: p,\n y: m\n }]);\n };\n o && o.templateText && (this.options.newNodeTemplate.text = o.templateText), o && o.templateStyleClass && (this.options.newNodeTemplate.styleClass = o.templateStyleClass), o && o.templateNode && Object.keys(o.templateNode).forEach((p) => {\n this.options.newNodeTemplate[p] = o.templateNode[p];\n }), o && o.templateMove && (s = o.templateMove), o && o.onCreateNode && (a = o.onCreateNode);\n const l = this.$dom.getBoundingClientRect();\n u(\"[CreatingNodePlot]startCreatingNodePlot:\");\n const r = ht(t), h = r.clientX - l.x + 10, d = r.clientY - l.y + 10;\n n || s(h, d);\n const f = (p) => {\n const m = this.$dom.getBoundingClientRect();\n u(\"[CreatingNodePlot]objectTemplateMove\");\n const y = p.clientX - m.x + 10, M = p.clientY - m.y + 10;\n s(y, M);\n }, c = (p) => {\n u(\"[CreatingNodePlot]user abort!\"), this.$dom.removeEventListener(\"mousemove\", f), this.$dom.removeEventListener(\"click\", _), this.$dom.removeEventListener(\"contextmenu\", c), this.options.creatingNodePlot = !1;\n }, _ = (p) => {\n let m = !1;\n if (this.options.creatingNodePlot || (m = !0), this.$dom.removeEventListener(\"mousemove\", f), this.$dom.removeEventListener(\"click\", _), this.$dom.removeEventListener(\"contextmenu\", c), this.options.creatingNodePlot = !1, m) {\n u(\"[CreatingNodePlot]action be abort!\");\n return;\n }\n const y = ht(p), M = y.clientX - l.x + 10, D = y.clientY - l.y + 10;\n if (o && o.disableClickCreate && Math.abs(h - M) < 5 && Math.abs(d - D) < 5) {\n u(\"[CreatingNodePlot]create node be abort!\");\n return;\n }\n const k = this.getCanvasCoordinateByClientCoordinate({ x: y.clientX, y: y.clientY });\n u(\"[CreatingNodePlot]objectBePlaced:\", k), a(k.x, k.y), this._dataUpdated();\n };\n setTimeout(() => {\n this.$dom.addEventListener(\"click\", _), this.$dom.addEventListener(\"contextmenu\", c);\n }, 300), n || this.$dom.addEventListener(\"mousemove\", f);\n }\n startCreatingLinePlot(t, o) {\n const n = Y(t);\n o && o.onCreateLine && (this.onCreateLineCallback = o.onCreateLine), o && o.template && Object.assign(this.options.newLineTemplate, o.template), this.options.newLinkTemplate.fromNode = null, o && o.fromNode && (this.options.newLinkTemplate.toNode.x = o.fromNode.x + 50, this.options.newLinkTemplate.toNode.y = o.fromNode.y + 50, this.options.newLinkTemplate.fromNode = o.fromNode, this.step1EventTime = Date.now()), this.options.creatingLinePlot = !0, this.options.newLinkTemplate.toNodeObject = null, this.options.newLineTemplate.disableDefaultClickEffect = !0, this.options.newLinkTemplate.toNode.el.offsetWidth = 2, this.options.newLinkTemplate.toNode.el.offsetHeight = 2, u(\"[CreatingLinePlot]startCreatingLinePlot:\", n), n || (u(\"[CreatingLinePlot]Listener move\"), this.movingListener = this.onMovingWhenCreatingLinePlot.bind(this), this.$dom.addEventListener(\"mousemove\", this.movingListener));\n }\n stopCreatingLinePlot() {\n u(\"[CreatingLinePlot]stop CreatingLinePlot!\"), this.options.creatingLinePlot = !1, this.options.newLinkTemplate.fromNode = null, this.options.newLinkTemplate.toNodeObject = null, this.onCreateLineCallback = void 0, this.$dom.removeEventListener(\"mousemove\", this.movingListener), this._dataUpdated();\n }\n onMovingWhenCreatingLinePlot(t) {\n if (u(\"[CreatingLinePlot]mousemove\"), this.options.newLinkTemplate.fromNode) {\n const o = this.getCanvasCoordinateByClientCoordinate({\n x: t.clientX,\n y: t.clientY\n });\n this.options.newLinkTemplate.toNode.x = o.x, this.options.newLinkTemplate.toNode.y = o.y, this._dataUpdated();\n }\n }\n onCanvasClickWhenCreatingLinePlot(t) {\n if (Date.now() - this.step1EventTime < 500) {\n u(\"[CreatingLinePlot]step1EventTime:\", this.step1EventTime);\n return;\n }\n if (!this.options.newLinkTemplate.fromNode) {\n u(\"[CreatingLinePlot]CreatingLinePlot:fromNode not set!\");\n return;\n }\n if (!this.options.newLinkTemplate.toNodeObject) {\n u(\"[CreatingLinePlot]CreatingLinePlot:toNodeObject not set!\");\n const o = ht(t), n = this.getCanvasCoordinateByClientCoordinate({ x: o.clientX, y: o.clientY });\n this.onCreateLine(this.options.newLinkTemplate.fromNode, n);\n }\n this.stopCreatingLinePlot();\n }\n onNodeClickWhenCreatingLinePlot(t) {\n this.options.newLinkTemplate.fromNode ? (u(\"[CreatingLinePlot]step 2: set toNodeObjecct:\", this.options.newLinkTemplate.fromNode, t), this.options.newLinkTemplate.toNodeObject = t, this.onCreateLine(this.options.newLinkTemplate.fromNode, t), this.stopCreatingLinePlot()) : (u(\"[CreatingLinePlot]step 1: set fromNode:\", t), this.options.newLinkTemplate.fromNode = t, this.options.newLinkTemplate.toNode.x = t.x + 50, this.options.newLinkTemplate.toNode.y = t.y + 50, this.step1EventTime = Date.now());\n }\n onCreateLine(t, o) {\n u(\"[CreatingLinePlot][fire-event]onCreateLine:\", t, o), this.onCreateLineCallback && this.onCreateLineCallback(t, o, this.options.newLineTemplate);\n }\n isNode(t) {\n const o = ft(t, \"rel-node-peel\", \"rel-map\");\n return o ? this.getNodeById(o.dataset.id) : void 0;\n }\n isLink(t) {\n const o = ft(t, \"rel-link-peel\", \"rel-map\");\n return o ? this.getLinkById(o.dataset.id) : void 0;\n }\n onContextmenu(t) {\n let o = \"canvas\", n = this.isNode(t.target);\n n ? o = \"node\" : (n = this.isLink(t.target), n && (o = \"link\")), u(\"contextmenu:objectType\", o, n), this.listeners.onContextmenu && this.listeners.onContextmenu(t, o, n);\n }\n fullscreen(t) {\n t === void 0 ? (this.options.fullscreen = !this.options.fullscreen, K.toggle(this.$dom).then(() => {\n setTimeout(() => {\n this.refreshNVAnalysisInfo();\n }, 1e3);\n })) : (this.options.fullscreen = t, setTimeout(() => {\n this.refreshNVAnalysisInfo();\n }, 1e3));\n }\n focusNodeById(t) {\n return w(this, null, function* () {\n let o;\n this.graphData.nodes.forEach((n) => {\n n.id === t && (o = n);\n }), o && (yield this.handleSelect(o));\n });\n }\n focusRootNode() {\n return w(this, null, function* () {\n u(\"relation-graph:focusRootNode\"), this.graphData.rootNode && (yield this.handleSelect(this.graphData.rootNode));\n });\n }\n handleSelect(t) {\n return w(this, null, function* () {\n u(\"checked:\", t), scrollTo({\n top: this.$dom.offsetTop\n }), yield this.animateToZoom(100, 300);\n const o = t.width || 50, n = t.height || 50, s = t.x * -1 + this.options.viewSize.width / 2 - o / 2, a = t.y * -1 + this.options.viewSize.height / 2 - n / 2;\n yield this.animateGoto(s, a, 500), this.options.checkedNodeId = t.id, this.refreshNVAnalysisInfo();\n });\n }\n onMouseWheel(t) {\n if (this.options.disableZoom)\n return t.cancelBubble = !1, !0;\n try {\n t.cancelBubble = !0, t.preventDefault(), t.stopPropagation();\n } catch (a) {\n }\n const o = {\n x: t.clientX,\n y: t.clientY\n };\n let n = t.deltaY;\n n === void 0 && (n = t.wheelDelta);\n const s = -1;\n n > 0 ? this.zoom(5 * s, o) : this.zoom(-5 * s, o);\n }\n onLineDragStart(t, o) {\n u(\"onLineDragStart...\");\n const n = { x: t.fromNode.x, y: t.fromNode.y }, s = { x: t.toNode.x, y: t.toNode.y }, a = (l, r, h, d, f) => {\n t.fromNode.x = n.x + l / (this.options.canvasZoom / 100), t.fromNode.y = n.y + r / (this.options.canvasZoom / 100), t.toNode.x = s.x + l / (this.options.canvasZoom / 100), t.toNode.y = s.y + r / (this.options.canvasZoom / 100), this._dataUpdated();\n };\n V.startDrag(o, { x: 0, y: 0 }, (...l) => {\n this.onLineDragEnd(...l);\n }, a);\n }\n onLineDragEnd(t, o, n) {\n u(\"onLineDragEnd\"), this.updateElementLines();\n }\n onCanvasDragStart(t) {\n if (u(\"[canvas]onCanvasDragStart...\"), t.stopPropagation(), this.options.disableDragCanvas || t.shiftKey) {\n this.startCreateSelection(t);\n return;\n }\n if (!this.options.disableDragLine) {\n const n = this.isLink(t.target);\n if (n) {\n this.onLineDragStart(n, t);\n return;\n }\n }\n let o;\n if (Y(t)) {\n let n, s = 1;\n o = (a, l, r, h, d) => {\n const f = d.touches || d.targetTouches, c = f[0];\n if (f && f.length > 1) {\n d.preventDefault();\n const _ = f[1];\n n || (n = { x: _.clientX, y: _.clientY }, s = this.options.canvasZoom);\n const p = { x: c.clientX, y: c.clientY }, m = { x: _.clientX, y: _.clientY }, y = Math.hypot(n.x - h.x, n.y - h.y), D = Math.hypot(m.x - p.x, m.y - p.y) / y, k = s * D;\n this.setZoom(k), this._dataUpdated();\n } else {\n const _ = c.clientX, p = c.clientY;\n let m = r.x + (_ - h.x), y = r.y + (p - h.y);\n this.options.useHorizontalView ? (m = r.x + (p - h.y), y = r.y - (_ - h.x), this.setCanvasOffset(m, y)) : this.setCanvasOffset(m, y), this._dataUpdated();\n }\n };\n } else\n o = (n, s, a, l, r) => {\n const h = a.x + n, d = a.y + s;\n this.setCanvasOffset(h, d), this._dataUpdated();\n };\n V.startDrag(t, this.options.canvasOffset, (...n) => {\n this.onCanvasDragStop(...n);\n }, o);\n }\n onCanvasDragStop(t, o, n) {\n if (u(\"[canvas]onCanvasDragStop...\"), this.options.creatingSelection) {\n this.options.creatingSelection = !1, this._dataUpdated(), this.onCanvasSelectionEnd(this.options.selectionView, n);\n return;\n }\n if (t === 0 && o === 0) {\n u(\"[canvas]click2\"), this._dataUpdated(), this.onCanvasClick(n);\n return;\n }\n Math.abs(t) + Math.abs(o) > 6 ? setTimeout(() => {\n u(\"[canvas]onDragEnd1\"), this._dataUpdated(), this.onCanvasDragEnd(n);\n }, 100) : (u(\"[canvas]onDragEnd2\"), this._dataUpdated(), this.onCanvasDragEnd(n));\n }\n startCreateSelection(t) {\n let o = !1;\n const n = (s, a, l, r, h) => {\n if (!o && Math.abs(s) + Math.abs(a) > 6 && (o = !0, this.options.creatingSelection = !0, this.options.selectionView.x = r.x, this.options.selectionView.y = r.y), o) {\n const d = this.getBoundingClientRect();\n s < 0 ? (this.options.selectionView.x = r.x + s - d.x, this.options.selectionView.width = Math.abs(s)) : (this.options.selectionView.x = r.x - d.x, this.options.selectionView.width = s), a < 0 ? (this.options.selectionView.y = r.y + a - d.y, this.options.selectionView.height = Math.abs(a)) : (this.options.selectionView.y = r.y - d.y, this.options.selectionView.height = a);\n }\n this._dataUpdated();\n };\n V.startDrag(t, { x: 0, y: 0 }, (...s) => {\n this.onCanvasDragStop(...s);\n }, n);\n }\n onNodeDragStart(t, o) {\n if (this.options.disableDragNode || t.disableDrag)\n return;\n isNaN(t.x) && (t.x = 0), isNaN(t.y) && (t.y = 0), t.dragging = !0, this.listeners.onNodeDragStart && this.listeners.onNodeDragStart(t, o);\n const n = (s, a, l) => {\n t.dragging = !1, this.onNodeDraged(t, s, a, l), this._dataUpdated();\n };\n V.startDrag(o, t, n, (s, a, l) => {\n let r = s / (this.options.canvasZoom / 100) + l.x, h = a / (this.options.canvasZoom / 100) + l.y;\n if (this.listeners.onNodeDragging) {\n const d = this.listeners.onNodeDragging(t, r, h, o);\n d && (typeof d.x == \"number\" && (r = d.x), typeof d.y == \"number\" && (h = d.y));\n }\n this.setNodePosition(t, r, h), this.options.useHorizontalView ? (r = a / (this.options.canvasZoom / 100) + l.x, h = -s / (this.options.canvasZoom / 100) + l.y, this.setNodePosition(t, r, h)) : this.setNodePosition(t, r, h), this.updateElementLines(), this._dataUpdated();\n });\n }\n onNodeDraged(t, o, n, s) {\n if (o === 0 && n === 0) {\n u(\"[node]node click by drag\"), this.onNodeClick(t, s);\n return;\n }\n this.options.isMoveByParentNode && t.lot.childs.forEach((a) => {\n a.x += o, a.y += n;\n }), Math.abs(o) + Math.abs(n) > 6 ? (this.prevClickTime = Date.now(), setTimeout(() => {\n u(\"[node]onDragEnd2\"), this.onNodeDragEnd(t, s);\n }, 100)) : (u(\"[node]onDragEnd1\"), this.onNodeDragEnd(t, s));\n }\n}\nclass Ge extends De {\n constructor(i, t) {\n super(i, t);\n }\n dataUpdated() {\n this.isReact ? this._dataUpdated() : (this.zoom(1), this.zoom(-1));\n }\n setOptions(i, t = !1) {\n return w(this, null, function* () {\n if (this.disableNextLayoutAnimation = !0, this._setOptions(i), t === !0) {\n u(\"setOptions:justUpdateOptionsValue\");\n return;\n }\n this.initLayouter(), this.resetViewSize(), yield this.doLayout(), this.resetViewSize();\n });\n }\n setLayouter(i) {\n u(\"setLayouterClass::\", i), this.userLayouerClass = i, this.layouter = this.userLayouerClass;\n }\n switchLayout(i, t = !0, o = !1) {\n return w(this, null, function* () {\n this.listeners.beforeChangeLayout && this.listeners.beforeChangeLayout(i) === !1 && (t = !1);\n const n = this.layouter ? this.layouter.allNodes : [], s = this.layouter && this.layouter.rootNode;\n u(\"[change layout]switchLayout\"), this.stopAutoLayout(), rt(i, this.options), this._initLayoutByLayoutOptions(i), this.layouter.allNodes = n, this.layouter.rootNode = s, t ? yield this.refresh() : (o || (this.disableNextLayoutAnimation = !0), yield this.doLayout());\n });\n }\n setJsonData(i, t = !1) {\n return w(this, null, function* () {\n this.options.canvasOpacity = 0.01, this._dataUpdated(), yield this._setJsonData(i);\n const o = i.rootId;\n if (o && (this.graphData.rootNode = this.graphData.nodes.find((n) => n.id === o)), !this.graphData.rootNode && this.graphData.nodes.length > 0 && (this.graphData.rootNode = this.graphData.nodes[0]), this.graphData.rootNode)\n this.options.defaultFocusRootNode && this.setCheckedNode(this.graphData.rootNode.id);\n else\n throw new Error(\"The root node [rootId] is not set! Or cannot get the root node:\" + i.rootId + \", If you don't have any nodes to display, you can simply set an invisible node: {id:'root', opacity:0}\");\n t && (u(\"resetViewSize:\", t), this.resetViewSize()), this.disableNextLayoutAnimation = !0, yield this.doLayout();\n });\n }\n appendJsonData(i, t = !0) {\n return w(this, null, function* () {\n u(\"appendData:\", i), this.options.canvasOpacity = 0.01, this._dataUpdated(), this.loadGraphJsonData(i), t && (this.disableNextLayoutAnimation = !0, yield this.doLayout());\n });\n }\n}\nclass Yt extends Ge {\n constructor(i, t) {\n super(i, t);\n }\n ready() {\n this.initLayouter(), this.resetViewSize(), this.refreshNVAnalysisInfo();\n }\n}\nconst Be = {\n props: {\n nodeProps: {\n type: Object,\n required: !0\n },\n expandButtonClass: {\n type: String,\n required: !0\n },\n expandOrCollapseNode: {\n type: Function,\n required: !0\n },\n expandHolderPosition: {\n type: String,\n required: !0\n },\n color: {\n type: String,\n required: !0\n }\n }\n};\nvar Te = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"div\", { staticClass: \"c-btn-open-close\", class: [\"c-expand-positon-\" + e.expandHolderPosition] }, [t(\"span\", { class: e.expandButtonClass, style: { \"background-color\": e.color }, on: { click: function(o) {\n return o.stopPropagation(), e.expandOrCollapseNode.apply(null, arguments);\n }, touchend: function(o) {\n return o.stopPropagation(), e.expandOrCollapseNode.apply(null, arguments);\n } } })]);\n}, Ae = [];\nfunction F(e, i, t, o, n, s, a, l) {\n var r = typeof e == \"function\" ? e.options : e;\n i && (r.render = i, r.staticRenderFns = t, r._compiled = !0), o && (r.functional = !0), s && (r._scopeId = \"data-v-\" + s);\n var h;\n if (a ? (h = function(c) {\n c = c || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !c && typeof __VUE_SSR_CONTEXT__ != \"undefined\" && (c = __VUE_SSR_CONTEXT__), n && n.call(this, c), c && c._registeredComponents && c._registeredComponents.add(a);\n }, r._ssrRegister = h) : n && (h = l ? function() {\n n.call(\n this,\n (r.functional ? this.parent : this).$root.$options.shadowRoot\n );\n } : n), h)\n if (r.functional) {\n r._injectStyles = h;\n var d = r.render;\n r.render = function(_, p) {\n return h.call(p), d(_, p);\n };\n } else {\n var f = r.beforeCreate;\n r.beforeCreate = f ? [].concat(f, h) : [h];\n }\n return {\n exports: e,\n options: r\n };\n}\nconst kt = {};\nvar Ie = /* @__PURE__ */ F(\n Be,\n Te,\n Ae,\n !1,\n Re,\n null,\n null,\n null\n);\nfunction Re(e) {\n for (let i in kt)\n this[i] = kt[i];\n}\nconst Fe = /* @__PURE__ */ function() {\n return Ie.exports;\n}(), He = {\n name: \"SeeksRGNode\",\n components: { RGNodeExpandHolder: Fe },\n props: {\n nodeProps: {\n mustUseProp: !0,\n default: () => ({}),\n type: Object\n }\n },\n data() {\n return {\n expanding: !1\n };\n },\n inject: [\"graph\"],\n computed: {\n oldVersionSlot() {\n const e = this.$scopedSlots.node({ node: this.nodeProps });\n return e.length === 0 ? null : e;\n },\n expandButtonClass() {\n return this.nodeProps.expanded === !1 ? \"c-expanded\" : \"c-collapsed\";\n },\n showExpandHolder() {\n return this.nodeProps.expandHolderPosition && this.nodeProps.expandHolderPosition !== \"hide\" || this.options.defaultExpandHolderPosition && this.options.defaultExpandHolderPosition !== \"hide\" && this.nodeProps.lot.childs && this.nodeProps.lot.childs.length > 0;\n },\n options() {\n return this.graph.options;\n },\n relationGraph() {\n return this.graph.instance;\n },\n borderStyle() {\n const e = this.nodeProps.borderWidth === void 0 ? this.options.defaultNodeBorderWidth : this.nodeProps.borderWidth;\n return (this.nodeProps.borderColor || this.options.defaultNodeBorderColor) + \" solid \" + e + \"px\";\n },\n nodeWidth() {\n if (this.nodeProps.width === 0)\n return;\n const e = this.nodeProps.width || this.options.defaultNodeWidth;\n if (!!e)\n return e + \"px\";\n },\n nodeHeight() {\n if (this.nodeProps.height === 0)\n return;\n const e = this.nodeProps.height || this.options.defaultNodeHeight;\n if (!!e)\n return e + \"px\";\n }\n },\n created() {\n },\n mounted() {\n this.refreshNodeProperties();\n },\n updated() {\n this.refreshNodeProperties();\n },\n beforeDestroy() {\n this.$refs.seeksRGNode.remove();\n },\n methods: {\n refreshNodeProperties() {\n this.$refs.seeksRGNode.offsetWidth === 0 && this.$refs.seeksRGNode.offsetHeight === 0 || (this.nodeProps.el.offsetWidth !== this.$refs.seeksRGNode.offsetWidth || this.nodeProps.el.offsetHeight !== this.$refs.seeksRGNode.offsetHeight) && this.relationGraph.updateNodeOffsetSize(this.nodeProps, this.$refs.seeksRGNode.offsetWidth, this.$refs.seeksRGNode.offsetHeight);\n },\n expandOrCollapseNode(e) {\n return w(this, null, function* () {\n u(\"expandOrCollapseNode\", this.expanding), !this.expanding && (this.expanding = !0, setTimeout(() => {\n this.expanding = !1;\n }, 300), yield this.relationGraph.expandOrCollapseNode(this.nodeProps, e));\n });\n },\n onDragStart(e) {\n this.relationGraph.onNodeDragStart(this.nodeProps, e);\n },\n onclick(e) {\n this.relationGraph.onNodeClick(this.nodeProps, e);\n },\n isAllowShowNode(e) {\n return g.isAllowShowNode(e);\n }\n }\n};\nvar We = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: e.isAllowShowNode(e.nodeProps), expression: \"isAllowShowNode(nodeProps)\" }], ref: \"seeksRGNode\", staticClass: \"rel-node-peel\", class: [e.nodeProps.selected && \"rel-node-selected\", e.nodeProps.dragging && \"rel-node-dragging\", e.nodeProps.id === e.options.checkedNodeId && \"rel-node-peel-checked\", e.nodeProps.className], style: {\n left: e.nodeProps.x + \"px\",\n top: e.nodeProps.y + \"px\",\n opacity: e.nodeProps.opacity > 1 ? e.nodeProps.opacity / 100 : e.nodeProps.opacity\n }, attrs: { \"data-id\": e.nodeProps.id } }, [e.showExpandHolder ? [e.options.oldVueVersion && !e.options.ovUseNodeExpandHolderSlot ? [t(\"RGNodeExpandHolder\", { attrs: { nodeProps: e.nodeProps, expandButtonClass: e.expandButtonClass, expandOrCollapseNode: e.expandOrCollapseNode, expandHolderPosition: e.nodeProps.expandHolderPosition || e.options.defaultExpandHolderPosition, color: e.options.defaultExpandHolderColor || e.nodeProps.color || e.options.defaultNodeColor } })] : e._t(\"node-expand-holder\", function() {\n return [t(\"RGNodeExpandHolder\", { attrs: { nodeProps: e.nodeProps, expandButtonClass: e.expandButtonClass, expandOrCollapseNode: e.expandOrCollapseNode, expandHolderPosition: e.nodeProps.expandHolderPosition || e.options.defaultExpandHolderPosition, color: e.options.defaultExpandHolderColor || e.nodeProps.color || e.options.defaultNodeColor } })];\n }, { nodeProps: e.nodeProps, expandButtonClass: e.expandButtonClass, expandOrCollapseNode: e.expandOrCollapseNode, expandHolderPosition: e.nodeProps.expandHolderPosition || e.options.defaultExpandHolderPosition, color: e.options.defaultExpandHolderColor || e.nodeProps.color || e.options.defaultNodeColor })] : e._e(), e.nodeProps.html ? t(\"div\", { domProps: { innerHTML: e._s(e.nodeProps.html) }, on: { click: function(o) {\n return e.onclick(o);\n }, mousedown: function(o) {\n return !o.type.indexOf(\"key\") && e._k(o.keyCode, \"left\", 37, o.key, [\"Left\", \"ArrowLeft\"]) || \"button\" in o && o.button !== 0 ? null : (o.stopPropagation(), e.onDragStart(o));\n }, touchstart: function(o) {\n return o.stopPropagation(), e.onDragStart(o);\n } } }) : t(\"div\", { staticClass: \"rel-node\", class: [\"rel-node-shape-\" + (e.nodeProps.nodeShape === void 0 ? e.options.defaultNodeShape : e.nodeProps.nodeShape), \"rel-node-type-\" + e.nodeProps.type, e.nodeProps.id === e.options.checkedNodeId ? \"rel-node-checked\" : \"\", e.nodeProps.flashing ? \"rel-node-flashing\" : \"\", e.nodeProps.styleClass, e.nodeProps.innerHTML ? \"rel-diy-node\" : \"\"], style: { \"background-color\": e.nodeProps.color === void 0 ? e.options.defaultNodeColor : e.nodeProps.color, color: e.nodeProps.fontColor === void 0 ? e.options.defaultNodeFontColor : e.nodeProps.fontColor, border: e.borderStyle, width: e.nodeWidth, height: e.nodeHeight }, on: { click: function(o) {\n return e.onclick(o);\n }, mousedown: function(o) {\n return !o.type.indexOf(\"key\") && e._k(o.keyCode, \"left\", 37, o.key, [\"Left\", \"ArrowLeft\"]) || \"button\" in o && o.button !== 0 ? null : (o.stopPropagation(), e.onDragStart(o));\n }, touchstart: function(o) {\n return o.stopPropagation(), e.onDragStart(o);\n } } }, [e.options.hideNodeContentByZoom === !0 && e.options.canvasZoom < 40 ? e._e() : [e.options.oldVueVersion && !e.options.ovUseNodeSlot ? [e.nodeProps.innerHTML ? t(\"div\", { domProps: { innerHTML: e._s(e.nodeProps.innerHTML) } }) : t(\"div\", { staticClass: \"c-node-text\", style: { color: e.nodeProps.fontColor || e.options.defaultNodeFontColor } }, [t(\"span\", { domProps: { innerHTML: e._s(e.nodeProps.text) } })])] : e._t(\"node\", function() {\n return [e.nodeProps.innerHTML ? t(\"div\", { domProps: { innerHTML: e._s(e.nodeProps.innerHTML) } }) : t(\"div\", { staticClass: \"c-node-text\", style: { color: e.nodeProps.fontColor || e.options.defaultNodeFontColor } }, [t(\"span\", { domProps: { innerHTML: e._s(e.nodeProps.text) } })])];\n }, { node: e.nodeProps })]], 2)], 2);\n}, Ve = [];\nconst St = {};\nvar je = /* @__PURE__ */ F(\n He,\n We,\n Ve,\n !1,\n Ue,\n \"78419bac\",\n null,\n null\n);\nfunction Ue(e) {\n for (let i in St)\n this[i] = St[i];\n}\nconst yt = /* @__PURE__ */ function() {\n return je.exports;\n}(), Xe = {\n name: \"SeeksRGLine\",\n props: {\n link: {\n mustUseProp: !0,\n default: () => ({}),\n type: Object\n },\n relation: {\n mustUseProp: !0,\n default: () => ({}),\n type: Object\n },\n relationIndex: {\n mustUseProp: !0,\n default: () => 0,\n type: Number\n }\n },\n data() {\n return {\n is_flashing: !1\n };\n },\n inject: [\"graph\"],\n computed: {\n checked() {\n return this.relation.id === this.options.checkedLineId;\n },\n options() {\n return this.graph.options;\n },\n relationGraph() {\n return this.graph.instance;\n },\n showStartArrow() {\n return this.relation.showStartArrow && this.relationGraph.getArrow(this.relation, this.link, !0);\n },\n showEndArrow() {\n return this.relation.showEndArrow && this.relationGraph.getArrow(this.relation, this.link, !1);\n },\n pathData() {\n try {\n const { path: e, textPosition: i } = this.relationGraph.createLinePath(\n this.link,\n this.relation,\n this.relationIndex\n );\n let t = {};\n try {\n t = this.relationGraph.getTextTransform(\n this.relation,\n i.x,\n i.y,\n i.rotate\n );\n } catch (o) {\n u(o);\n }\n return {\n path: e,\n textTransform: t\n };\n } catch (e) {\n u(e);\n }\n return { path: null, textTransform: null };\n },\n textStyle() {\n return this.relationGraph.getLineTextStyle(this.link, this.relation, this.relationIndex);\n }\n },\n watch: {},\n methods: {\n onClick(e, i) {\n this.relationGraph.onLineClick(e, this.link, i);\n }\n }\n};\nvar Ye = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"g\", { class: [e.relation.className] }, [t(\"path\", { staticClass: \"c-rg-line\", class: [\n e.relation.styleClass,\n e.relation.dashType ? \"rg-line-dashtype-\" + e.relation.dashType : void 0,\n e.relation.animation ? \"rg-line-anm-\" + e.relation.animation : void 0,\n e.checked ? \"c-rg-line-checked\" : void 0\n ], style: {\n opacity: e.relation.opacity,\n \"pointer-events\": e.relation.disableDefaultClickEffect && \"none\",\n \"stroke-width\": (e.relation.lineWidth ? e.relation.lineWidth : e.options.defaultLineWidth) + \"px\"\n }, attrs: { d: e.pathData.path, stroke: e.relation.color ? e.relation.color : e.options.defaultLineColor, \"marker-start\": e.showStartArrow, \"marker-end\": e.showEndArrow, fill: e.relation.lineShape === 8 ? e.relation.color || e.options.defaultLineColor : \"none\" }, on: { touchstart: function(o) {\n return e.onClick(e.relation, o);\n }, click: function(o) {\n return e.onClick(e.relation, o);\n } } }), e.textStyle && e.options.defaultShowLineLabel && e.options.canvasZoom > 40 ? t(\"g\", { attrs: { transform: e.pathData.textTransform } }, [t(\"text\", { key: \"t-\" + e.relation.seeks_id, staticClass: \"c-rg-line-text\", class: { \"c-rg-line-text-checked\": e.checked }, style: {\n opacity: e.relation.opacity,\n fill: e.relation.fontColor ? e.relation.fontColor : e.options.defaultLineFontColor ? e.options.defaultLineFontColor : e.relation.color ? e.relation.color : e.options.defaultLineColor\n }, attrs: { x: e.relation.textOffset_x || e.options.defaultLineTextOffset_x || 0, y: e.relation.textOffset_y || e.options.defaultLineTextOffset_y || 10, \"text-anchor\": e.textStyle.textAnchor }, on: { touchstart: function(o) {\n return e.onClick(e.relation, o);\n }, click: function(o) {\n return e.onClick(e.relation, o);\n } } }, [e._v(\" \" + e._s(e.textStyle.text) + \" \")])]) : e._e()]);\n}, Ze = [];\nconst Mt = {};\nvar Je = /* @__PURE__ */ F(\n Xe,\n Ye,\n Ze,\n !1,\n qe,\n \"21b6edb2\",\n null,\n null\n);\nfunction qe(e) {\n for (let i in Mt)\n this[i] = Mt[i];\n}\nconst Zt = /* @__PURE__ */ function() {\n return Je.exports;\n}(), Qe = {\n name: \"SeeksRGLine\",\n props: {\n link: {\n mustUseProp: !0,\n default: () => ({}),\n type: Object\n },\n relation: {\n mustUseProp: !0,\n default: () => ({}),\n type: Object\n },\n relationIndex: {\n mustUseProp: !0,\n default: () => 0,\n type: Number\n }\n },\n inject: [\"graph\"],\n computed: {\n options() {\n return this.graph.options;\n },\n relationGraph() {\n return this.graph.instance;\n },\n checked() {\n return this.relation.id === this.options.checkedLineId;\n },\n textStyle() {\n return this.relationGraph.getLineTextStyle(this.link, this.relation, this.relationIndex);\n },\n pathRef() {\n return \"#\" + this.options.instanceId + \"-\" + this.link.seeks_id + \"-\" + this.relationIndex;\n }\n },\n data() {\n return {\n is_flashing: !1\n };\n },\n watch: {},\n mounted() {\n },\n methods: {\n onClick(e, i) {\n this.relationGraph.onLineClick(e, this.link, i);\n }\n }\n};\nvar Ke = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"g\", { class: [e.relation.className] }, [t(\"use\", { staticClass: \"c-rg-line\", class: [\n e.relation.styleClass,\n e.relation.dashType ? \"rg-line-dashtype-\" + e.relation.dashType : void 0,\n e.relation.animation ? \"rg-line-anm-\" + e.relation.animation : void 0,\n e.checked ? \"c-rg-line-checked\" : void 0\n ], attrs: { \"xlink:href\": e.pathRef }, on: { touchstart: function(o) {\n return e.onClick(e.relation, o);\n }, click: function(o) {\n return e.onClick(e.relation, o);\n } } }), e.textStyle && e.options.defaultShowLineLabel && e.options.canvasZoom > 40 ? t(\"g\", { attrs: { transform: e.textStyle.textOffset } }, [t(\"text\", { staticClass: \"c-rg-line-text\", class: { \"c-rg-line-text-checked\": e.checked }, style: {\n opacity: e.relation.opacity,\n fill: e.relation.fontColor ? e.relation.fontColor : e.options.defaultLineFontColor ? e.options.defaultLineFontColor : e.relation.color ? e.relation.color : e.options.defaultLineColor\n }, attrs: { rotate: e.textStyle.textRotate }, on: { touchstart: function(o) {\n return e.onClick(e.relation, o);\n }, click: function(o) {\n return e.onClick(e.relation, o);\n } } }, [t(\"textPath\", { attrs: { \"xlink:href\": e.pathRef, startOffset: e.textStyle.textHPosition, \"text-anchor\": e.textStyle.textAnchor, method: \"align\", spacing: \"auto\" } }, [e._v(\" \" + e._s(e.textStyle.text) + \" \")])])]) : e._e()]);\n}, to = [];\nconst Pt = {};\nvar eo = /* @__PURE__ */ F(\n Qe,\n Ke,\n to,\n !1,\n oo,\n \"0f20f0a1\",\n null,\n null\n);\nfunction oo(e) {\n for (let i in Pt)\n this[i] = Pt[i];\n}\nconst no = /* @__PURE__ */ function() {\n return eo.exports;\n}(), io = {\n name: \"SeeksRGLink\",\n components: { RGLineSmart: Zt, RGLineTextByPath: no },\n props: {\n linkProps: {\n mustUseProp: !0,\n default: () => ({}),\n type: Object\n }\n },\n data() {\n return {\n is_flashing: !1\n };\n },\n inject: [\"graph\"],\n computed: {\n options() {\n return this.graph.options;\n },\n relationGraph() {\n return this.graph.instance;\n }\n },\n show() {\n this.isShow = !0;\n },\n watch: {},\n mounted() {\n },\n methods: {\n isAllowShowNode(e) {\n return g.isAllowShowNode(e);\n }\n }\n};\nvar so = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return e.isAllowShowNode(e.linkProps.fromNode) && e.isAllowShowNode(e.linkProps.toNode) ? t(\"g\", { ref: \"seeksRGLink\", staticClass: \"rel-link-peel\", class: [e.options.checkedLinkId == e.linkProps.seeks_id ? \"c-rg-link-checked\" : \"\"], attrs: { transform: \"translate(0,0)\", \"data-id\": e.linkProps.seeks_id } }, [e._l(e.linkProps.relations, function(o, n) {\n return [e.options.oldVueVersion && !e.options.ovUseLineSlot ? [(o.useTextPath !== void 0 ? o.useTextPath : e.options.lineUseTextPath) && o.isHide !== !0 ? t(\"RGLineTextByPath\", { key: \"l-\" + o.id, attrs: { link: e.linkProps, relation: o, \"relation-index\": n } }) : o.isHide === !1 ? t(\"RGLineSmart\", { key: \"l-\" + o.id, attrs: { link: e.linkProps, relation: o, \"relation-index\": n } }) : e._e()] : e._t(\"line\", function() {\n return [(o.useTextPath !== void 0 ? o.useTextPath : e.options.lineUseTextPath) && o.isHide !== !0 ? t(\"RGLineTextByPath\", { key: \"l-\" + o.id, attrs: { link: e.linkProps, relation: o, \"relation-index\": n } }) : o.isHide === !1 ? t(\"RGLineSmart\", { key: \"l-\" + o.id, attrs: { link: e.linkProps, relation: o, \"relation-index\": n } }) : e._e()];\n }, { line: o, relationIndex: n })];\n })], 2) : e._e();\n}, ao = [];\nconst Ot = {};\nvar ro = /* @__PURE__ */ F(\n io,\n so,\n ao,\n !1,\n lo,\n \"5e0655be\",\n null,\n null\n);\nfunction lo(e) {\n for (let i in Ot)\n this[i] = Ot[i];\n}\nconst Jt = /* @__PURE__ */ function() {\n return ro.exports;\n}(), co = {\n name: \"SeeksRGLink\",\n props: {\n link: {\n mustUseProp: !0,\n default: () => ({}),\n type: Object\n },\n relation: {\n mustUseProp: !0,\n default: () => ({}),\n type: Object\n },\n relationIndex: {\n mustUseProp: !0,\n default: () => 0,\n type: Number\n }\n },\n inject: [\"graph\"],\n computed: {\n checked() {\n return this.relation.id === this.options.checkedLineId;\n },\n pathData() {\n const { path: e, textPosition: i } = this.relationGraph.createLinePath(\n this.link,\n this.relation,\n this.relationIndex\n );\n return e;\n },\n options() {\n return this.graph.options;\n },\n relationGraph() {\n return this.graph.instance;\n }\n },\n data() {\n return {\n is_flashing: !1\n };\n },\n show() {\n this.isShow = !0;\n },\n methods: {}\n};\nvar ho = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"path\", { class: [\"c-rg-line-path\", e.relation.styleClass, e.checked ? \"c-rg-line-checked\" : \"\"], style: { opacity: e.relation.opacity, \"stroke-width\": (e.relation.lineWidth ? e.relation.lineWidth : e.options.defaultLineWidth) + \"px\" }, attrs: { id: e.options.instanceId + \"-\" + e.link.seeks_id + \"-\" + e.relationIndex, d: e.pathData, stroke: e.relation.color ? e.relation.color : e.options.defaultLineColor, \"marker-start\": e.relation.showStartArrow && e.relationGraph.getArrow(e.relation, e.link, !0), \"marker-end\": e.relation.showEndArrow && e.relationGraph.getArrow(e.relation, e.link, !1), fill: e.relation.lineShape === 8 ? e.relation.color || e.options.defaultLineColor : \"none\" } });\n}, uo = [];\nconst Et = {};\nvar fo = /* @__PURE__ */ F(\n co,\n ho,\n uo,\n !1,\n po,\n null,\n null,\n null\n);\nfunction po(e) {\n for (let i in Et)\n this[i] = Et[i];\n}\nconst qt = /* @__PURE__ */ function() {\n return fo.exports;\n}(), _o = {\n name: \"RGCheckedLine\",\n inject: [\"graph\"],\n computed: {\n options() {\n return this.graph.options;\n },\n relationGraph() {\n return this.graph.instance;\n },\n pathData() {\n return this.relationGraph.createCheckedLinePath();\n },\n strokeWidth() {\n return this.relationGraph.createCheckedLineStrokeWidth();\n }\n },\n data() {\n return {\n is_flashing: !1\n };\n },\n show() {\n this.isShow = !0;\n },\n watch: {}\n};\nvar mo = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"g\", [e.pathData ? t(\"path\", { staticClass: \"c-rg-line-checked-bg\", attrs: { d: e.pathData, fill: \"none\", stroke: \"red\", \"stroke-width\": e.strokeWidth } }) : e._e()]);\n}, go = [];\nconst Nt = {};\nvar yo = /* @__PURE__ */ F(\n _o,\n mo,\n go,\n !1,\n vo,\n \"e0def60c\",\n null,\n null\n);\nfunction vo(e) {\n for (let i in Nt)\n this[i] = Nt[i];\n}\nconst xo = /* @__PURE__ */ function() {\n return yo.exports;\n}(), wo = {\n name: \"RelationGraphSingleGraph\",\n components: { RGLineChecked: xo, SeeksRGNode: yt, SeeksRGLink: Jt, SeeksRGLinePath: qt, RGLineSmart: Zt },\n data() {\n return {};\n },\n inject: [\"graphData\", \"graph\"],\n computed: {\n options() {\n return this.graph.options;\n },\n relationGraph() {\n return this.graph.instance;\n },\n allLineColors() {\n return this.graph.allLineColors;\n }\n },\n created() {\n u(\"[RGGraph created]\");\n },\n mounted() {\n u(\"[RGGraph mounted]\"), this.init();\n },\n beforeDestroy() {\n },\n methods: {\n init() {\n this.$refs.rgCanvas.style.setProperty(\"--stroke\", `url('#${this.options.instanceId}-lineStyle')`), this.$refs.rgCanvas.style.setProperty(\"--markerEnd\", `url('#${this.options.instanceId}-start-arrow-default')`), this.$refs.rgCanvas.style.setProperty(\"--markerStart\", `url('#${this.options.instanceId}-arrow-default')`), this.$refs.rgCanvas.style.setProperty(\"--markerEndChecked\", `url('#${this.options.instanceId}-arrow-checked')`), this.$refs.rgCanvas.style.setProperty(\"--markerStartChecked\", `url('#${this.options.instanceId}-start-arrow-checked')`);\n }\n }\n};\nvar Co = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"div\", { staticClass: \"rel-single-graph\", staticStyle: { overflow: \"visible\" } }, [t(\"div\", { ref: \"rgCanvas\", staticClass: \"rel-linediv\" }, [t(\"svg\", { staticClass: \"rel-lines-svg\", style: { width: e.options.canvasSize.width + \"px\", height: e.options.canvasSize.height + \"px\" }, attrs: { xmlns: \"http://www.w3.org/2000/svg\" } }, [t(\"defs\", [t(\"linearGradient\", { attrs: { id: \"my-lineStyle\", gradientUnits: \"objectBoundingBox\", cx: \"0.5\", cy: \"0.5\" } }, [t(\"stop\", { attrs: { offset: \"0%\", \"stop-color\": \"#e52c5c\", \"stop-opacity\": \"1\" } }), t(\"stop\", { attrs: { offset: \"100%\", \"stop-color\": \"#FD8B37\", \"stop-opacity\": \"0\" } })], 1), t(\"marker\", { attrs: { id: e.options.instanceId + \"-arrow-default\", markerWidth: e.options.defaultLineMarker.markerWidth, markerHeight: e.options.defaultLineMarker.markerHeight, refX: e.options.defaultLineMarker.refX, refY: e.options.defaultLineMarker.refY, markerUnits: \"userSpaceOnUse\", orient: \"auto\", viewBox: \"0 0 12 12\" } }, [t(\"path\", { style: { fill: e.options.defaultLineColor }, attrs: { d: e.options.defaultLineMarker.data } })]), t(\"marker\", { attrs: { id: e.options.instanceId + \"-start-arrow-default\", markerWidth: e.options.defaultLineMarker.markerWidth, markerHeight: e.options.defaultLineMarker.markerHeight, refX: e.options.defaultLineMarker.refX, refY: e.options.defaultLineMarker.refY, markerUnits: \"userSpaceOnUse\", orient: \"auto\", viewBox: \"0 0 12 12\" } }, [t(\"path\", { style: { fill: e.options.defaultLineColor }, attrs: { d: e.options.defaultLineMarker.data, transform: \"translate(12,12)rotate(180)\" } })]), t(\"marker\", { attrs: { id: e.options.instanceId + \"-arrow-checked\", markerWidth: e.options.defaultLineMarker.markerWidth, markerHeight: e.options.defaultLineMarker.markerHeight, refX: e.options.defaultLineMarker.refX, refY: e.options.defaultLineMarker.refY, markerUnits: \"userSpaceOnUse\", orient: \"auto\", viewBox: \"0 0 12 12\" } }, [t(\"path\", { style: { fill: e.options.checkedLineColor }, attrs: { d: e.options.defaultLineMarker.data } })]), t(\"marker\", { attrs: { id: e.options.instanceId + \"-start-arrow-checked\", markerWidth: e.options.defaultLineMarker.markerWidth, markerHeight: e.options.defaultLineMarker.markerHeight, refX: e.options.defaultLineMarker.refX, refY: e.options.defaultLineMarker.refY, markerUnits: \"userSpaceOnUse\", orient: \"auto\", viewBox: \"0 0 12 12\" } }, [t(\"path\", { style: { fill: e.options.checkedLineColor }, attrs: { d: e.options.defaultLineMarker.data, transform: \"translate(12,12)rotate(180)\" } })]), e._l(e.allLineColors, function(o) {\n return t(\"marker\", { key: o.id, attrs: { id: e.options.instanceId + \"-arrow-\" + o.id, markerWidth: e.options.defaultLineMarker.markerWidth, markerHeight: e.options.defaultLineMarker.markerHeight, refX: e.options.defaultLineMarker.refX, refY: e.options.defaultLineMarker.refY, markerUnits: \"userSpaceOnUse\", orient: \"auto\", viewBox: \"0 0 12 12\" } }, [t(\"path\", { attrs: { fill: e.options.defaultLineMarker.color || o.color, d: e.options.defaultLineMarker.data } })]);\n }), e._l(e.allLineColors, function(o) {\n return t(\"marker\", { key: \"start-\" + o.id, attrs: { id: e.options.instanceId + \"-start-arrow-\" + o.id, markerWidth: e.options.defaultLineMarker.markerWidth, markerHeight: e.options.defaultLineMarker.markerHeight, refX: e.options.defaultLineMarker.refX, refY: e.options.defaultLineMarker.refY, markerUnits: \"userSpaceOnUse\", orient: \"auto\", viewBox: \"0 0 12 12\" } }, [t(\"path\", { attrs: { fill: e.options.defaultLineMarker.color || o.color, d: e.options.defaultLineMarker.data, transform: \"translate(12,12)rotate(180)\" } })]);\n }), e._l(e.graphData.links, function(o) {\n return [e._l(o.relations, function(n, s) {\n return [e.options.lineUseTextPath || n.useTextPath ? t(\"SeeksRGLinePath\", { key: n.id, attrs: { link: o, relation: n, \"relation-index\": s } }) : e._e()];\n })];\n })], 2), t(\"RGLineChecked\"), e._l(e.graphData.links, function(o) {\n return t(\"SeeksRGLink\", { key: o.seeks_id, attrs: { \"link-props\": o }, scopedSlots: e._u([{ key: \"line\", fn: function(n) {\n var s = n.line, a = n.lineIndex;\n return [e._t(\"line\", null, { line: s, link: o, lineIndex: a })];\n } }], null, !0) });\n })], 2)]), t(\"div\", { staticClass: \"rel-nodediv rel-nodediv-for-webkit\" }, e._l(e.graphData.nodes, function(o) {\n return t(\"SeeksRGNode\", { key: o.seeks_id, attrs: { \"node-props\": o }, scopedSlots: e._u([{ key: \"node\", fn: function(n) {\n var s = n.node;\n return [e._t(\"node\", null, { node: s })];\n } }, { key: \"node-expand-holder\", fn: function(n) {\n var s = n.nodeProps, a = n.expandHolderPosition, l = n.expandButtonClass, r = n.color, h = n.expandOrCollapseNode;\n return [e._t(\"node-expand-holder\", null, { nodeProps: s, expandHolderPosition: a, expandButtonClass: l, color: r, expandOrCollapseNode: h })];\n } }], null, !0) });\n }), 1), t(\"div\", { staticClass: \"rel-linediv rel-linediv-el-lines\" }, [t(\"svg\", { staticClass: \"rel-lines-svg rel-lines-svg-el-lines\", attrs: { xmlns: \"http://www.w3.org/2000/svg\" } }, [e._l(e.graphData.elementLines, function(o) {\n return [o.relations[0].isHide === !1 ? t(\"RGLineSmart\", { key: \"ell-\" + o.relations[0].id, attrs: { link: o, relation: o.relations[0], \"relation-index\": 0 } }) : e._e()];\n }), e.options.creatingLinePlot && e.options.newLinkTemplate.fromNode ? t(\"RGLineSmart\", { key: \"s-line-template\", attrs: { link: e.options.newLinkTemplate, relation: e.options.newLineTemplate, \"relation-index\": 0 } }) : e._e()], 2)])]);\n}, Lo = [];\nconst zt = {};\nvar bo = /* @__PURE__ */ F(\n wo,\n Co,\n Lo,\n !1,\n ko,\n null,\n null,\n null\n);\nfunction ko(e) {\n for (let i in zt)\n this[i] = zt[i];\n}\nconst So = /* @__PURE__ */ function() {\n return bo.exports;\n}(), Mo = {\n name: \"RelationGraphCanvas\",\n components: { RelationGraphSingleGraph: So, SeeksRGNode: yt, SeeksRGLink: Jt, SeeksRGLinePath: qt },\n data() {\n return {};\n },\n inject: [\"graph\"],\n computed: {\n options() {\n return this.graph.options;\n },\n relationGraph() {\n return this.graph.instance;\n },\n canvasSizeAndPosition() {\n return {\n width: `${this.options.canvasSize.width}px`,\n height: `${this.options.canvasSize.height}px`,\n \"margin-left\": `${this.options.canvasOffset.x}px`,\n \"margin-top\": `${this.options.canvasOffset.y}px`,\n \"background-color\": \"transparent\",\n transform: `scale(${this.options.canvasZoom / 100},${this.options.canvasZoom / 100})`\n };\n }\n },\n watch: {},\n created() {\n u(\"[RGCanvas created]\");\n },\n mounted() {\n u(\"[RGCanvas mounted]\"), this.relationGraph.setCanvasDom(this.$refs.seeksRGCanvas);\n },\n beforeDestroy() {\n },\n methods: {\n mouseListener(e) {\n this.relationGraph.onMouseWheel(e);\n },\n onDragStart(e) {\n this.relationGraph.onCanvasDragStart(e);\n },\n contextmenu(e) {\n this.relationGraph.onContextmenu(e);\n }\n }\n};\nvar Po = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"div\", { staticClass: \"rel-map\", class: [e.options.canvasOpacity === 1 && \"rel-map-ready\", e.options.layoutClassName, e.options.backgroundImageNoRepeat ? \"rel-map-background-norepeat\" : void 0], style: { width: \"100%\", height: \"100%\", \"background-color\": e.options.backgroundColor || void 0, \"background-image\": e.options.backgroundImage ? \"url(\" + e.options.backgroundImage + \")\" : void 0 }, on: { contextmenu: function(o) {\n return o.preventDefault(), e.contextmenu(o);\n }, mousedown: function(o) {\n return !o.type.indexOf(\"key\") && e._k(o.keyCode, \"left\", 37, o.key, [\"Left\", \"ArrowLeft\"]) || \"button\" in o && o.button !== 0 ? null : e.onDragStart(o);\n }, touchstart: function(o) {\n return e.onDragStart(o);\n }, wheel: e.mouseListener } }, [t(\"div\", { ref: \"seeksRGCanvas\", staticClass: \"rel-map-canvas\", style: e.canvasSizeAndPosition }, [t(\"div\", { staticClass: \"rel-canvas-slot rel-canvas-slot-behind\" }, [e._t(\"canvas-plug\")], 2), t(\"RelationGraphSingleGraph\", { scopedSlots: e._u([{ key: \"node\", fn: function(o) {\n var n = o.node;\n return [e._t(\"node\", null, { node: n })];\n } }, { key: \"line\", fn: function(o) {\n var n = o.line, s = o.link;\n return [e._t(\"line\", null, { line: n, link: s })];\n } }, { key: \"node-expand-holder\", fn: function(o) {\n var n = o.nodeProps, s = o.expandHolderPosition, a = o.expandButtonClass, l = o.color, r = o.expandOrCollapseNode;\n return [e._t(\"node-expand-holder\", null, { nodeProps: n, expandHolderPosition: s, expandButtonClass: a, color: l, expandOrCollapseNode: r })];\n } }], null, !0) }), t(\"div\", { staticClass: \"rel-canvas-slot rel-canvas-slot-above\" }, [e._t(\"canvas-plug-above\")], 2)], 1)]);\n}, Oo = [];\nconst $t = {};\nvar Eo = /* @__PURE__ */ F(\n Mo,\n Po,\n Oo,\n !1,\n No,\n null,\n null,\n null\n);\nfunction No(e) {\n for (let i in $t)\n this[i] = $t[i];\n}\nconst zo = /* @__PURE__ */ function() {\n return Eo.exports;\n}(), $o = {\n name: \"GraphSettingPanel\",\n data() {\n return {\n search_text: \"\",\n showSettingPanel: !1,\n currentLayoutName: \"\"\n };\n },\n inject: [\"graph\"],\n computed: {\n relationGraph() {\n return this.graph.instance;\n },\n options() {\n return this.graph.options;\n }\n },\n methods: {\n toggleSettingPanel() {\n this.showSettingPanel = !this.showSettingPanel;\n },\n printOptions() {\n this.relationGraph.printOptions();\n },\n printData() {\n this.relationGraph.printData();\n },\n enableDevlog() {\n this.relationGraph.enableDebugLog(!this.options.debug), u(\"debugLog:\", this.options.debug);\n }\n }\n};\nvar Do = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"div\", [t(\"div\", { staticClass: \"c-setting-panel-button\", class: [], on: { click: e.toggleSettingPanel } }, [e._v(\" Debug \")]), e.showSettingPanel ? t(\"div\", { staticClass: \"c-setting-panel\", class: [] }, [t(\"div\", { staticClass: \"c-debug-tools-row\" }, [t(\"button\", { on: { click: e.printOptions } }, [e._v(\"print options in console\")])]), t(\"div\", { staticClass: \"c-debug-tools-row\" }, [t(\"button\", { on: { click: e.printData } }, [e._v(\"print json data in console\")])]), t(\"div\", { staticClass: \"c-debug-tools-row\" }, [e._v(\"debug log status: \" + e._s(e.options.debug)), t(\"button\", { on: { click: e.enableDevlog } }, [e._v(e._s(e.options.debug ? \"disable\" : \"enable\") + \" debug log\")])])]) : e._e()]);\n}, Go = [];\nconst Dt = {};\nvar Bo = /* @__PURE__ */ F(\n $o,\n Do,\n Go,\n !1,\n To,\n null,\n null,\n null\n);\nfunction To(e) {\n for (let i in Dt)\n this[i] = Dt[i];\n}\nconst Ao = /* @__PURE__ */ function() {\n return Bo.exports;\n}(), Io = {\n name: \"GraphMiniView\",\n data() {\n return {\n viewWidth: 100,\n viewHeight: 0,\n minX: 0,\n maxX: 0,\n minY: 0,\n maxY: 0,\n zoom: 1\n };\n },\n inject: [\"graph\", \"graphData\"],\n computed: {\n relationGraph() {\n return this.graph.instance;\n },\n options() {\n return this.graph.options;\n }\n },\n mounted() {\n },\n methods: {\n miniViewHeight() {\n let e = 9999, i = -9999, t = 9999, o = -9999;\n for (let n = 0; n < this.graphData.nodes.length; n++) {\n const s = this.graphData.nodes[n];\n s.x < e && (e = s.x), s.x > i && (i = s.x), s.y < t && (t = s.y), s.y > o && (o = s.y);\n }\n return this.viewHeight = (o - t) * this.viewWidth / (i - e), this.minX = e, this.minY = t, this.maxX = i, this.maxY = o, this.viewHeight;\n },\n getPositionData() {\n const e = this.viewWidth / this.options.canvasNVInfo.width, i = this.options.viewNVInfo.width * e, t = this.options.viewNVInfo.height * e;\n let o = (this.options.viewNVInfo.x - this.options.canvasNVInfo.x) * e * (this.options.canvasZoom / 100), n = (this.options.viewNVInfo.y - this.options.canvasNVInfo.y) * e * (this.options.canvasZoom / 100);\n return o = o * 100 / i, n = n * 100 / i, {\n width: i + \"px\",\n height: t + \"px\",\n left: o + \"px\",\n top: n + \"px\"\n };\n },\n isAllowShowNode(e) {\n return g.isAllowShowNode(e);\n }\n }\n};\nvar Ro = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"div\", { ref: \"miniView\", staticClass: \"c-mini-graph\" }, [t(\"div\", { staticClass: \"c-mini-canvas\", style: {\n width: e.viewWidth + \"px\",\n height: e.miniViewHeight() + \"px\"\n } }, [e._l(e.graphData.nodes, function(o) {\n return [e.isAllowShowNode(o) ? t(\"div\", { key: o.id, staticClass: \"c-mini-node\", style: {\n left: (o.x - e.minX) * e.viewWidth / (e.maxX - e.minX) + \"px\",\n top: (o.y - e.minY) * e.viewHeight / (e.maxY - e.minY) + \"px\"\n } }) : e._e()];\n })], 2)]);\n}, Fo = [];\nconst Gt = {};\nvar Ho = /* @__PURE__ */ F(\n Io,\n Ro,\n Fo,\n !1,\n Wo,\n \"4644c1f3\",\n null,\n null\n);\nfunction Wo(e) {\n for (let i in Gt)\n this[i] = Gt[i];\n}\nconst Vo = /* @__PURE__ */ function() {\n return Ho.exports;\n}(), jo = {\n name: \"GraphMiniToolBar\",\n data() {\n return {\n height: 275,\n hits: 0,\n downloadPanelWidth: 106\n };\n },\n inject: [\"graph\"],\n computed: {\n relationGraph() {\n return this.graph.instance;\n },\n options() {\n return this.graph.options;\n }\n },\n mounted() {\n this.relationGraph.listeners.onDownloadExcel !== null && (this.downloadPanelWidth += 50), this.options.layouts.length > 1 && (this.height -= 40);\n },\n methods: {\n refresh() {\n this.relationGraph.refresh();\n },\n switchLayout(e) {\n u(\"change layout:\", e), this.relationGraph.switchLayout(e);\n },\n toggleAutoLayout() {\n this.relationGraph.toggleAutoLayout();\n },\n onDownloadExcel() {\n this.relationGraph.listeners.onDownloadExcel();\n },\n zoomToFit() {\n return w(this, null, function* () {\n yield this.relationGraph.setZoom(100), yield this.relationGraph.moveToCenter(), yield this.relationGraph.zoomToFit();\n });\n }\n }\n};\nvar Uo = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"div\", { staticClass: \"c-mini-toolbar\", style: { \"margin-left\": e.options.viewELSize.width - 50 + \"px\", \"margin-top\": (e.options.viewELSize.height - 260) / 2 + \"px\" } }, [t(\"div\", { staticClass: \"c-mb-button\", staticStyle: { \"margin-top\": \"0px\" }, on: { click: function(o) {\n return e.relationGraph.fullscreen();\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-resize-\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(e._s(e.options.fullscreen ? \"\\u9000\\u51FA\" : \"\\u5168\\u5C4F\"))])]), e.options.allowShowZoomMenu ? t(\"div\", { staticClass: \"c-mb-button\", on: { click: function(o) {\n return e.relationGraph.zoom(20);\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-fangda\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u653E\\u5927\")])]) : e._e(), e.options.allowShowZoomMenu ? t(\"div\", { staticStyle: { float: \"left\", \"margin-top\": \"0px\", height: \"20px\", width: \"40px\", \"border-top\": \"0px\", \"border-bottom\": \"0px\", \"background-color\": \"#efefef\", color: \"#262626\", \"font-size\": \"10px\", \"text-align\": \"center\", \"line-height\": \"20px\" }, on: { dblclick: e.zoomToFit } }, [e._v(e._s(e.options.canvasZoom) + \"%\")]) : e._e(), e.options.allowShowZoomMenu ? t(\"div\", { staticClass: \"c-mb-button\", staticStyle: { \"margin-top\": \"0px\" }, on: { click: function(o) {\n return e.relationGraph.zoom(-20);\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-suoxiao\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u7F29\\u5C0F\")])]) : e._e(), e.options.layouts.length > 1 ? t(\"div\", { staticClass: \"c-mb-button\" }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-yuanquanfenxiang\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u5E03\\u5C40\")]), t(\"div\", { staticClass: \"c-mb-child-panel\", style: { width: e.options.layouts.length * 70 + 6 + \"px\", \"margin-left\": e.options.layouts.length * -70 - 5 + \"px\" } }, e._l(e.options.layouts, function(o) {\n return t(\"div\", { key: o.label, staticClass: \"c-mb-button c-mb-button-c\", class: { \"c-mb-button-on\": e.options.layoutLabel === o.label }, staticStyle: { width: \"70px\" }, on: { click: function(n) {\n return e.switchLayout(o);\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-yuanquanfenxiang\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(e._s(o.label))])]);\n }), 0)]) : e._e(), e.options.allowSwitchLineShape ? t(\"div\", { staticClass: \"c-mb-button\" }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-hj2\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u7EBF\\u6761\")]), t(\"div\", { staticClass: \"c-mb-child-panel\", staticStyle: { width: \"256px\", \"margin-left\": \"-255px\" } }, [t(\"div\", { staticClass: \"c-mb-button c-mb-button-c\", class: { \"c-mb-button-on\": e.options.defaultLineShape === 1 }, staticStyle: { width: \"50px\" }, on: { click: function(o) {\n return e.relationGraph.setDefaultLineShape(1);\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-hj2\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u76F4\\u7EBF\")])]), t(\"div\", { staticClass: \"c-mb-button c-mb-button-c\", class: { \"c-mb-button-on\": e.options.defaultLineShape === 2 }, staticStyle: { width: \"50px\" }, on: { click: function(o) {\n return e.relationGraph.setDefaultLineShape(2);\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-lianjieliu\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u7B80\\u6D01\")])]), t(\"div\", { staticClass: \"c-mb-button c-mb-button-c\", class: { \"c-mb-button-on\": e.options.defaultLineShape === 6 }, staticStyle: { width: \"50px\" }, on: { click: function(o) {\n return e.relationGraph.setDefaultLineShape(6);\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-lianjieliu\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u751F\\u52A8\")])]), t(\"div\", { staticClass: \"c-mb-button c-mb-button-c\", class: { \"c-mb-button-on\": e.options.defaultLineShape === 5 }, staticStyle: { width: \"50px\" }, on: { click: function(o) {\n return e.relationGraph.setDefaultLineShape(5);\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-lianjieliu\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u9C7C\\u5C3E\")])]), t(\"div\", { staticClass: \"c-mb-button c-mb-button-c\", class: { \"c-mb-button-on\": e.options.defaultLineShape === 4 }, staticStyle: { width: \"50px\" }, on: { click: function(o) {\n return e.relationGraph.setDefaultLineShape(4);\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-hj2\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u6298\\u7EBF\")])])])]) : e._e(), e.options.allowSwitchJunctionPoint ? t(\"div\", { staticClass: \"c-mb-button\" }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-lianjie_connecting5\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u8FDE\\u63A5\\u70B9\")]), t(\"div\", { staticClass: \"c-mb-child-panel\", staticStyle: { width: \"206px\", \"margin-left\": \"-205px\" } }, [t(\"div\", { staticClass: \"c-mb-button c-mb-button-c\", class: { \"c-mb-button-on\": e.options.defaultJunctionPoint === \"border\" }, staticStyle: { width: \"50px\" }, on: { click: function(o) {\n return e.relationGraph.setDefaultJunctionPoint(\"border\");\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-lianjie_connecting5\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u8FB9\\u7F18\")])]), t(\"div\", { staticClass: \"c-mb-button c-mb-button-c\", class: { \"c-mb-button-on\": e.options.defaultJunctionPoint === \"ltrb\" }, staticStyle: { width: \"50px\" }, on: { click: function(o) {\n return e.relationGraph.setDefaultJunctionPoint(\"ltrb\");\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-lianjie_connecting5\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u56DB\\u70B9\")])]), t(\"div\", { staticClass: \"c-mb-button c-mb-button-c\", class: { \"c-mb-button-on\": e.options.defaultJunctionPoint === \"tb\" }, staticStyle: { width: \"50px\" }, on: { click: function(o) {\n return e.relationGraph.setDefaultJunctionPoint(\"tb\");\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-lianjie_connecting5\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u4E0A\\u4E0B\")])]), t(\"div\", { staticClass: \"c-mb-button c-mb-button-c\", class: { \"c-mb-button-on\": e.options.defaultJunctionPoint === \"lr\" }, staticStyle: { width: \"50px\" }, on: { click: function(o) {\n return e.relationGraph.setDefaultJunctionPoint(\"lr\");\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-lianjie_connecting5\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u5DE6\\u53F3\")])])])]) : e._e(), e.options.allowAutoLayoutIfSupport && e.options.isNeedShowAutoLayoutButton ? t(\"div\", { staticClass: \"c-mb-button\", class: { \"c-mb-button-on\": e.options.autoLayouting }, attrs: { title: e.options.autoLayouting ? \"\\u70B9\\u51FB\\u505C\\u6B62\\u81EA\\u52A8\\u5E03\\u5C40\" : \"\\u70B9\\u51FB\\u5F00\\u59CB\\u81EA\\u52A8\\u8C03\\u6574\\u5E03\\u5C40\" }, on: { click: e.toggleAutoLayout } }, [e.options.autoLayouting ? t(\"svg\", { staticClass: \"c-loading-icon rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-lianjiezhong\" } })]) : t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-zidong\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u81EA\\u52A8\")])]) : e._e(), e.options.allowShowRefreshButton ? t(\"div\", { staticClass: \"c-mb-button\", on: { click: e.refresh } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-ico_reset\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u5237\\u65B0\")])]) : e._e(), e.options.allowShowDownloadButton ? t(\"div\", { staticClass: \"c-mb-button\" }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-ziyuan\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"\\u4E0B\\u8F7D\")]), t(\"div\", { staticClass: \"c-mb-child-panel\", style: { width: e.downloadPanelWidth + \"px\", \"margin-left\": e.downloadPanelWidth * -1 + \"px\" } }, [t(\"div\", { staticClass: \"c-mb-button c-mb-button-c\", staticStyle: { width: \"50px\" }, on: { click: function(o) {\n return e.relationGraph.downloadAsImage(\"png\");\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-tupian\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"PNG\")])]), t(\"div\", { staticClass: \"c-mb-button c-mb-button-c\", staticStyle: { width: \"50px\" }, on: { click: function(o) {\n return e.relationGraph.downloadAsImage(\"jpg\");\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-tupian\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"JPG\")])]), e.relationGraph.listeners.onDownloadExcel ? t(\"div\", { staticClass: \"c-mb-button c-mb-button-c\", staticStyle: { width: \"50px\" }, on: { click: function(o) {\n return e.onDownloadExcel();\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-ziyuan\" } })]), t(\"span\", { staticClass: \"c-mb-text\" }, [e._v(\"Excel\")])]) : e._e()])]) : e._e()]);\n}, Xo = [];\nconst Bt = {};\nvar Yo = /* @__PURE__ */ F(\n jo,\n Uo,\n Xo,\n !1,\n Zo,\n \"4d98fff5\",\n null,\n null\n);\nfunction Zo(e) {\n for (let i in Bt)\n this[i] = Bt[i];\n}\nconst Jo = /* @__PURE__ */ function() {\n return Yo.exports;\n}(), qo = {\n name: \"GraphMiniToolBar\",\n data() {\n return {};\n },\n inject: [\"graph\"],\n computed: {\n relationGraph() {\n return this.graph.instance;\n },\n options() {\n return this.graph.options;\n }\n },\n mounted() {\n },\n methods: {\n refresh() {\n this.relationGraph.refresh();\n },\n switchLayout(e) {\n u(\"change layout:\", e), this.relationGraph.switchLayout(e);\n },\n toggleAutoLayout() {\n this.relationGraph.toggleAutoLayout();\n },\n downloadAsImage() {\n this.relationGraph.downloadAsImage(\"png\");\n },\n zoomToFit() {\n return w(this, null, function* () {\n yield this.relationGraph.setZoom(100), yield this.relationGraph.moveToCenter(), yield this.relationGraph.zoomToFit();\n });\n }\n }\n};\nvar Qo = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"div\", { staticClass: \"rel-toolbar\", class: [\"rel-toolbar-h-\" + e.options.toolBarPositionH, \"rel-toolbar-v-\" + e.options.toolBarPositionV, \"rel-toolbar-\" + e.options.toolBarDirection] }, [e.options.allowShowFullscreenMenu ? t(\"div\", { staticClass: \"c-mb-button\", staticStyle: { \"margin-top\": \"0px\" }, attrs: { title: \"\\u5168\\u5C4F/\\u9000\\u51FA\\u5168\\u5C4F\" }, on: { click: function(o) {\n return e.relationGraph.fullscreen();\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-resize-\" } })])]) : e._e(), e.options.allowShowZoomMenu ? t(\"div\", { staticClass: \"c-mb-button\", attrs: { title: \"\\u653E\\u5927\" }, on: { click: function(o) {\n return e.relationGraph.zoom(20);\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-fangda\" } })])]) : e._e(), e.options.allowShowZoomMenu ? t(\"div\", { staticClass: \"c-current-zoom\", on: { dblclick: e.zoomToFit } }, [e._v(e._s(e.options.canvasZoom) + \"%\")]) : e._e(), e.options.allowShowZoomMenu ? t(\"div\", { staticClass: \"c-mb-button\", staticStyle: { \"margin-top\": \"0px\" }, attrs: { title: \"\\u7F29\\u5C0F\" }, on: { click: function(o) {\n return e.relationGraph.zoom(-20);\n } } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-suoxiao\" } })])]) : e._e(), e.options.allowAutoLayoutIfSupport && e.options.isNeedShowAutoLayoutButton ? t(\"div\", { staticClass: \"c-mb-button\", class: { \"c-mb-button-on\": e.options.autoLayouting }, attrs: { title: e.options.autoLayouting ? \"\\u70B9\\u51FB\\u505C\\u6B62\\u81EA\\u52A8\\u5E03\\u5C40\" : \"\\u70B9\\u51FB\\u5F00\\u59CB\\u81EA\\u52A8\\u8C03\\u6574\\u5E03\\u5C40\" }, on: { click: e.toggleAutoLayout } }, [e.options.autoLayouting ? t(\"svg\", { staticClass: \"c-loading-icon rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-lianjiezhong\" } })]) : t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-zidong\" } })])]) : e._e(), e.options.allowShowRefreshButton ? t(\"div\", { staticClass: \"c-mb-button\", attrs: { title: \"\\u5237\\u65B0\" }, on: { click: e.refresh } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-ico_reset\" } })])]) : e._e(), e.options.allowShowDownloadButton ? t(\"div\", { staticClass: \"c-mb-button\", attrs: { title: \"\\u4E0B\\u8F7D\\u56FE\\u7247\" }, on: { click: e.downloadAsImage } }, [t(\"svg\", { staticClass: \"rg-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-tupian\" } })])]) : e._e(), e._t(\"default\"), t(\"div\", { staticStyle: { clear: \"both\" } })], 2);\n}, Ko = [];\nconst Tt = {};\nvar tn = /* @__PURE__ */ F(\n qo,\n Qo,\n Ko,\n !1,\n en,\n null,\n null,\n null\n);\nfunction en(e) {\n for (let i in Tt)\n this[i] = Tt[i];\n}\nconst Qt = /* @__PURE__ */ function() {\n return tn.exports;\n}(), on = {\n name: \"GraphOperateStuff\",\n components: { SeeksRGNode: yt },\n inject: [\"graph\"],\n computed: {\n relationGraph() {\n return this.graph.instance;\n },\n options() {\n return this.graph.options;\n }\n },\n mounted() {\n },\n methods: {}\n};\nvar nn = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return e.options && (e.options.creatingNodePlot || e.options.creatingSelection) ? t(\"div\", { staticClass: \"rel-operate\" }, [t(\"div\", { staticStyle: { position: \"relative\" } }, [e.options.creatingNodePlot && e.options.showTemplateNode ? t(\"SeeksRGNode\", { attrs: { \"node-props\": e.options.newNodeTemplate }, scopedSlots: e._u([{ key: \"node\", fn: function() {\n return [e._t(\"node-template\", null, { node: e.options.newNodeTemplate })];\n }, proxy: !0 }], null, !0) }) : e._e(), e.options.creatingSelection ? t(\"div\", { staticClass: \"rel-selection\", style: {\n left: e.options.selectionView.x + \"px\",\n top: e.options.selectionView.y + \"px\",\n width: e.options.selectionView.width + \"px\",\n height: e.options.selectionView.height + \"px\"\n } }) : e._e()], 1)]) : e._e();\n}, sn = [];\nconst At = {};\nvar an = /* @__PURE__ */ F(\n on,\n nn,\n sn,\n !1,\n rn,\n \"b380fc14\",\n null,\n null\n);\nfunction rn(e) {\n for (let i in At)\n this[i] = At[i];\n}\nconst ln = /* @__PURE__ */ function() {\n return an.exports;\n}(), It = (e) => ({\n onNodeClick: e.onNodeClick,\n onNodeExpand: e.onNodeExpand,\n onNodeDragging: e.onNodeDragging,\n onNodeDragStart: e.onNodeDragStart,\n onNodeDragEnd: e.onNodeDragEnd,\n onNodeCollapse: e.onNodeCollapse,\n onLineClick: e.onLineClick,\n onImageDownload: e.onImageDownload,\n onCanvasDragEnd: e.onCanvasDragEnd,\n beforeChangeLayout: e.beforeChangeLayout,\n onContextmenu: e.onContextmenu,\n onCanvasClick: e.onCanvasClick,\n onCanvasSelectionEnd: e.onCanvasSelectionEnd,\n onImageSaveAsFile: e.onImageSaveAsFile,\n onZoomEnd: e.onZoomEnd\n}), cn = {\n name: \"GraphLoading\",\n data() {\n return {};\n },\n inject: [\"graph\"],\n computed: {\n relationGraph() {\n return this.graph.instance;\n },\n options() {\n return this.graph.options;\n }\n },\n methods: {\n clickGraphMask(e) {\n this.relationGraph.clickGraphMask(e);\n }\n }\n};\nvar hn = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"div\", { staticClass: \"rel-graph-loading\", class: { \"rel-graph-loading-hide\": !e.options.graphLoading }, on: { click: e.clickGraphMask } }, [e.options.graphLoadingText ? t(\"div\", { staticClass: \"rel-graph-loading-message\" }, [t(\"svg\", { staticClass: \"c-graph-loading-icon\", attrs: { \"aria-hidden\": \"true\" } }, [t(\"use\", { attrs: { \"xlink:href\": \"#icon-lianjiezhong\" } })]), e._v(\" \" + e._s(e.options.graphLoadingText || \"Loading...\") + \" \")]) : e._e()]);\n}, dn = [];\nconst Rt = {};\nvar un = /* @__PURE__ */ F(\n cn,\n hn,\n dn,\n !1,\n fn,\n null,\n null,\n null\n);\nfunction fn(e) {\n for (let i in Rt)\n this[i] = Rt[i];\n}\nconst pn = /* @__PURE__ */ function() {\n return un.exports;\n}(), _n = {\n name: \"SeeksRelationGraph\",\n components: { GraphLoading: pn, GraphOperateStuff: ln, GraphMiniToolBar: Jo, GraphToolBar: Qt, GraphMiniView: Vo, RGCanvas: zo, GraphDebugPanel: Ao },\n props: {\n options: {\n mustUseProp: !1,\n default: () => ({}),\n type: Object\n },\n relationGraphCore: {\n mustUseProp: !1,\n default: null,\n type: Function\n },\n onNodeClick: {\n mustUseProp: !1,\n default: () => () => {\n },\n type: Function\n },\n onNodeExpand: {\n mustUseProp: !1,\n default: () => () => {\n },\n type: Function\n },\n onNodeCollapse: {\n mustUseProp: !1,\n default: () => () => {\n },\n type: Function\n },\n onLineClick: {\n mustUseProp: !1,\n default: () => () => {\n },\n type: Function\n },\n onNodeDragStart: {\n mustUseProp: !1,\n default: () => () => {\n },\n type: Function\n },\n onNodeDragEnd: {\n mustUseProp: !1,\n default: () => () => {\n },\n type: Function\n },\n onNodeDragging: {\n mustUseProp: !1,\n default: () => () => {\n },\n type: Function\n },\n onCanvasDragEnd: {\n mustUseProp: !1,\n default: () => () => {\n },\n type: Function\n },\n beforeChangeLayout: {\n mustUseProp: !1,\n default: () => () => {\n },\n type: Function\n },\n onContextmenu: {\n mustUseProp: !1,\n default: () => () => {\n },\n type: Function\n },\n onCanvasClick: {\n mustUseProp: !1,\n default: () => () => {\n },\n type: Function\n },\n onDownloadExcel: {\n mustUseProp: !1,\n default: null,\n type: Function\n },\n onImageDownload: {\n mustUseProp: !1,\n default: null,\n type: Function\n },\n onImageSaveAsFile: {\n mustUseProp: !1,\n default: null,\n type: Function\n },\n onCanvasSelectionEnd: {\n mustUseProp: !1,\n default: null,\n type: Function\n },\n onZoomEnd: {\n mustUseProp: !1,\n default: null,\n type: Function\n }\n },\n data() {\n return {\n graphData: {\n rootNode: null,\n nodes: [],\n links: [],\n elementLines: []\n },\n graph: {\n options: null,\n allLineColors: [],\n instance: null\n },\n oldVueVersion: !1,\n relationGraph: null\n };\n },\n provide() {\n return {\n graphData: this.graphData,\n graph: this.graph\n };\n },\n created() {\n window && (window.relationGraphDebug = this.options.debug), u(\"---------------------------graph created---------------------------\", this), console.log(\n `%c relation-graph %c Version v${Wt} %c More info: https://github.com/seeksdream/relation-graph %c`,\n \"background:#35495e ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff\",\n \"background:#41b883 ; padding: 1px; border-radius: 0 3px 3px 0; color: #fff\",\n \"background:#fff ; padding: 1px; border-radius: 0 3px 3px 0; color: #41b883\",\n \"background:transparent\"\n );\n let e = !1;\n if (!Z || !Z.version || Z.version.startsWith(\"3\")) {\n console.error(\"\\u5982\\u679C\\u60A8\\u4F7F\\u7528\\u7684\\u662Fvue3\\u6216react\\uFF0C\\u4F60\\u9700\\u8981\\u6CE8\\u610Fimport\\u65F6\\u4F7F\\u7528\\u7684\\u540D\\u79F0\\uFF1A\"), console.error(\"vue2:import RelationGraph from 'relation-graph'\"), console.error(\"vue3:import RelationGraph from 'relation-graph/vue3'\"), console.error(\"react:import RelationGraph from 'relation-graph/react'\");\n return;\n }\n Z.version.slice(0, 4) === \"2.5.\" && (e = !0), Z.version.slice(0, 4) === \"2.6.\" && Number.parseInt(Z.version.split(\".\")[2]) <= 12 && (e = !0), e && (this.oldVueVersion = !0, console.error(`\\u60A8\\u7684Vue\\u7248\\u672C\\uFF1A${Z.version}\\u6CE8\\u610F\\uFF1A\\u5F53\\u4F60\\u4F7F\\u7528\\u7684vue\\u7248\\u672C\\u7B49\\u4E8E\\u4F4E\\u4E8E2.6.12\\u65F6\\uFF0C\\u56FE\\u8C31\\u4F1A\\u663E\\u793A\\u4E0D\\u6B63\\u5E38\\uFF0C\\u53C2\\u8003\\u8FD9\\u4E2A\\u8FDE\\u63A5\\u89E3\\u51B3\\u8FD9\\u4E2A\\u95EE\\u9898\\uFF1Ahttps://github.com/seeksdream/relation-graph/issues/113`)), K || console.error(\"[relation-graph]Please introduce component screenfull, for example:https://cdnjs.cloudflare.com/ajax/libs/screenfull.js/5.1.0/screenfull.min.js\"), Ht || console.error(\"[relation-graph]Please introduce component html2canvas, for example:https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js\");\n },\n mounted() {\n u(\"---------------------------graph mounted---------------------------\");\n const e = this.relationGraphCore ? new this.relationGraphCore(this.options, It(this)) : new Yt(this.options, It(this));\n e.options.oldVueVersion = this.oldVueVersion, e.setReactiveData(this.graphData, this.graph), e.setDom(this.$refs.seeksRelationGraph), e.ready(), this.graph.instance = e, K && K.on && K.on(\"change\", this.onFullscreen);\n },\n beforeUnmount() {\n u(\"---------------------------graph beforeDestroy---------------------------\"), K.off(\"change\", this.onFullscreen), this.$refs.seeksRelationGraph.remove();\n },\n updated() {\n u(\"---------------------------graph updated---------------------------\");\n },\n methods: {\n onFullscreen() {\n this.graph.instance.fullscreen(K.isFullscreen);\n },\n getInstance() {\n return this.graph.instance;\n },\n setOptions(e, i) {\n return w(this, null, function* () {\n yield this.graph.instance.setOptions(e), i && i(this.graph.instance);\n });\n },\n setJsonData(o, n, s) {\n return w(this, arguments, function* (e, i, t) {\n return arguments.length === 2 && typeof i == \"function\" && (t = i, i = !0), yield this.graph.instance.setJsonData(e, i), new Promise((a, l) => {\n this.$nextTick(() => w(this, null, function* () {\n yield this.graph.instance.refresh(!1), t && t(this.graph.instance), a();\n }));\n });\n });\n },\n appendJsonData(o, n, s) {\n return w(this, arguments, function* (e, i, t) {\n arguments.length === 2 && typeof i == \"function\" && (t = i, i = !0), yield this.graph.instance.appendJsonData(e, i), t && t(this.graph.instance);\n });\n },\n setLayouter(e) {\n this.graph.instance.setLayouter(e);\n },\n onGraphResize() {\n this.graph.instance.refreshNVAnalysisInfo();\n },\n refresh() {\n return w(this, null, function* () {\n yield this.graph.instance.refresh();\n });\n },\n doLayout() {\n return w(this, null, function* () {\n yield this.graph.instance.doLayout();\n });\n },\n focusRootNode() {\n return w(this, null, function* () {\n yield this.graph.instance.focusRootNode();\n });\n },\n focusNodeById(e) {\n return w(this, null, function* () {\n return yield this.graph.instance.focusNodeById(e);\n });\n },\n getNodeById(e) {\n return this.graph.instance.getNodeById(e);\n },\n removeNodeById(e) {\n return this.graph.instance.removeNodeById(e);\n },\n getNodes() {\n return this.graph.instance.getNodes();\n },\n getLinks() {\n return this.graph.instance.getLinks();\n },\n getGraphJsonData() {\n return this.graph.instance.getGraphJsonData();\n },\n getGraphJsonOptions() {\n return this.graph.instance.getGraphJsonOptions();\n }\n },\n beforeDestroy() {\n u(\"beforeDestroy:relation-graph\"), this.graph.instance.options.instanceDestroyed = !0;\n }\n};\nvar mn = function() {\n var e = this, i = e.$createElement, t = e._self._c || i;\n return t(\"div\", { ref: \"seeksRelationGraph\", staticClass: \"relation-graph\", style: { width: \"100%\", height: \"100%\" } }, [e.graph.instance && e.graph.options ? [e.graph.options.showDebugPanel ? t(\"GraphDebugPanel\") : e._e(), e.graph.options.allowShowMiniToolBar === !0 ? [e.graph.options.oldVueVersion && !e.graph.options.ovUseToolbarSlot ? t(\"GraphToolBar\") : e._t(\"tool-bar\", function() {\n return [e.graph.options.toolBarVersion === \"v2\" ? t(\"GraphToolBar\") : t(\"GraphMiniToolBar\")];\n })] : e._e(), e.graph.options.allowShowMiniView === !0 ? e._t(\"mini-view\", function() {\n return [t(\"GraphMiniView\")];\n }) : e._e(), e._t(\"graph-plug\"), t(\"RGCanvas\", { scopedSlots: e._u([{ key: \"node\", fn: function(o) {\n var n = o.node;\n return [e._t(\"node\", null, { node: n })];\n } }, { key: \"line\", fn: function(o) {\n var n = o.line, s = o.link;\n return [e._t(\"line\", null, { line: n, link: s })];\n } }, { key: \"canvas-plug\", fn: function() {\n return [e._t(\"canvas-plug\")];\n }, proxy: !0 }, { key: \"canvas-plug-above\", fn: function() {\n return [e._t(\"default\")];\n }, proxy: !0 }, { key: \"node-expand-holder\", fn: function(o) {\n var n = o.nodeProps, s = o.expandHolderPosition, a = o.expandButtonClass, l = o.color, r = o.expandOrCollapseNode;\n return [e._t(\"node-expand-holder\", null, { nodeProps: n, expandHolderPosition: s, expandButtonClass: a, color: l, expandOrCollapseNode: r })];\n } }], null, !0) }), t(\"GraphOperateStuff\", { scopedSlots: e._u([{ key: \"node-template\", fn: function(o) {\n var n = o.node;\n return [e._t(\"node-template\", null, { node: n })];\n } }], null, !0) }), t(\"GraphLoading\")] : e._e()], 2);\n}, gn = [];\nconst Ft = {};\nvar yn = /* @__PURE__ */ F(\n _n,\n mn,\n gn,\n !1,\n vn,\n null,\n null,\n null\n);\nfunction vn(e) {\n for (let i in Ft)\n this[i] = Ft[i];\n}\nconst Kt = /* @__PURE__ */ function() {\n return yn.exports;\n}(), kn = Yt, Sn = Qt, Mn = {\n BaseLayouter: it,\n BidirectionalTreeLayouter: Vt,\n CenterLayouter: jt,\n CircleLayouter: Ut,\n FixedLayouter: Xt,\n ForceLayouter: et\n}, Pn = Ce, On = ke, En = ge, Nn = pe, zn = I, $n = ye, Dn = $e, te = (e, i) => {\n e.component(\"RelationGraph\", Kt);\n};\ntypeof window != \"undefined\" && window.Vue && te(window.Vue);\nconst xn = Kt, Gn = Ct(wt({}, xn), {\n version: Wt,\n install: te\n});\nexport {\n Sn as GraphToolBar,\n Mn as Layout,\n Dn as RGEffectUtils,\n zn as RGGraphMath,\n Pn as RGLayouterUtils,\n En as RGLinkUtils,\n Nn as RGNodeUtils,\n $n as RGNodesAnalyticUtils,\n On as RGOptionsUtils,\n kn as RelationGraphCore,\n Gn as default\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticStyle:{\"flex\":\"1\",\"display\":\"flex\"},attrs:{\"element-loading-text\":_vm.$t('lang.加载中'),\"element-loading-spinner\":\"el-icon-loading\"}},[_vm._m(0),_c('div',{staticStyle:{\"flex\":\"1\",\"display\":\"flex\",\"flex-direction\":\"column\",\"max-width\":\"50%\"}},[_c('el-descriptions',{attrs:{\"column\":1,\"border\":true}},[_c('el-descriptions-item',{attrs:{\"contentStyle\":{ textAlign: 'center' }}},[_c('template',{slot:\"label\"},[_c('i',{staticClass:\"el-icon-timer\"}),_vm._v(_vm._s(_vm.$t(\"lang.选择日期\")))]),_c('el-date-picker',{attrs:{\"clearable\":false,\"type\":\"datetimerange\",\"picker-options\":_vm.pickerOptions,\"range-separator\":_vm.$t('lang.至'),\"start-placeholder\":_vm.$t('lang.开始日期'),\"end-placeholder\":_vm.$t('lang.结束日期'),\"align\":\"right\"},on:{\"change\":_vm.loadProject},model:{value:(_vm.searchRange),callback:function ($$v) {_vm.searchRange=$$v},expression:\"searchRange\"}}),_c('el-button',{staticStyle:{\"margin-left\":\"10px\"},attrs:{\"type\":\"success\",\"icon\":\"el-icon-refresh\"},on:{\"click\":_vm.loadProject}},[_vm._v(_vm._s(_vm.$t(\"lang.刷新\")))]),_c('el-button',{staticStyle:{\"margin-left\":\"10px\"},attrs:{\"type\":\"primary\",\"icon\":\"el-icon-download\"},on:{\"click\":_vm.exportExcel}},[_vm._v(_vm._s(_vm.$t(\"lang.导出峰值数据\")))])],2)],1),_c('el-tabs',{staticStyle:{\"flex\":\"1\"},attrs:{\"value\":_vm.projectData && _vm.projectData.length > 0 ? _vm.projectData[0].name : ''}},_vm._l((_vm.projectData),function(item,index){return _c('el-tab-pane',{key:index,attrs:{\"label\":item.name,\"name\":item.name}},[_c('el-descriptions',{attrs:{\"column\":2,\"border\":true,\"labelStyle\":{ width: '150px' },\"contentStyle\":{ width: '150px' }}},[_c('el-descriptions-item',[_c('template',{slot:\"label\"},[_c('i',{staticClass:\"iconfont icon-tongdaoguanli\"}),_vm._v(_vm._s(_vm.$t(\"lang.测点名称\")))]),_vm._v(_vm._s(item.name)+\" \")],2),_c('el-descriptions-item',{attrs:{\"content-class-name\":\"cd-description\"}},[_c('template',{slot:\"label\"},[_c('i',{staticClass:\"iconfont icon-pingjunzhi\"}),_vm._v(_vm._s(_vm.$t(\"lang.平均值\")))]),_vm._v(_vm._s(item.avg_Temperature)+\"℃ \")],2),_c('el-descriptions-item',{attrs:{\"content-class-name\":\"cd-description\"}},[_c('template',{slot:\"label\"},[_c('i',{staticClass:\"iconfont icon-wendu\"}),_vm._v(_vm._s(_vm.$t(\"lang.最新温度\")))]),_vm._v(_vm._s(item.last_Temperature)+\"℃ \")],2),_c('el-descriptions-item',[_c('template',{slot:\"label\"},[_c('i',{staticClass:\"el-icon-timer\"}),_vm._v(_vm._s(_vm.$t(\"lang.返回时间\")))]),_vm._v(_vm._s(item.last_Temperature_Time)+\" \")],2),_c('el-descriptions-item',{attrs:{\"content-class-name\":\"cd-description\"}},[_c('template',{slot:\"label\"},[_c('i',{staticClass:\"iconfont icon-wendu\"}),_vm._v(_vm._s(_vm.$t(\"lang.峰值\")))]),_vm._v(\" \"+_vm._s(item.max_Temperature)+\"℃ \")],2),_c('el-descriptions-item',[_c('template',{slot:\"label\"},[_c('i',{staticClass:\"el-icon-timer\"}),_vm._v(_vm._s(_vm.$t(\"lang.峰值时间\")))]),(item.max_Temperature_Time.indexOf(',') > -1)?_c('el-badge',{attrs:{\"value\":_vm.$t('lang.多次')}},[_c('el-tooltip',{attrs:{\"effect\":\"dark\",\"placement\":\"left\"},scopedSlots:_vm._u([{key:\"content\",fn:function(){return _vm._l((item.max_Temperature_Time.split(',')),function(item1,index1){return _c('div',{key:index1},[_vm._v(\" \"+_vm._s(index1 == 0 ? \"\" : item1))])})},proxy:true}],null,true)},[_c('div',[_vm._v(\" \"+_vm._s(item.max_Temperature_Time.split(',')[0])),_c('br')])])],1):_c('div',[_vm._v(_vm._s(item.max_Temperature_Time))])],2),_c('el-descriptions-item',{attrs:{\"content-class-name\":\"cd-description\"}},[_c('template',{slot:\"label\"},[_c('i',{staticClass:\"iconfont icon-wendu\"}),_vm._v(_vm._s(_vm.$t(\"lang.谷值\"))+\" \")]),_vm._v(_vm._s(item.min_Temperature)+\"℃ \")],2),_c('el-descriptions-item',[_c('template',{slot:\"label\"},[_c('i',{staticClass:\"el-icon-timer\"}),_vm._v(_vm._s(_vm.$t(\"lang.谷值时间\")))]),(item.min_Temperature_Time.indexOf(',') > -1)?_c('el-badge',{attrs:{\"value\":_vm.$t('lang.多次')}},[_c('el-tooltip',{attrs:{\"effect\":\"dark\",\"placement\":\"left\"},scopedSlots:_vm._u([{key:\"content\",fn:function(){return _vm._l((item.min_Temperature_Time.split(',')),function(item1,index1){return _c('div',{key:index1},[_vm._v(\" \"+_vm._s(index1 == 0 ? \"\" : item1))])})},proxy:true}],null,true)},[_c('div',[_vm._v(\" \"+_vm._s(item.min_Temperature_Time.split(',')[0])),_c('br')])])],1):_c('div',[_vm._v(_vm._s(item.min_Temperature_Time))])],2)],1)],1)}),1)],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"flex\":\"1\"}},[_c('div',{attrs:{\"id\":\"wxcw81_chart_project\"}})])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WXCW81ProjectChart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WXCW81ProjectChart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WXCW81ProjectChart.vue?vue&type=template&id=4762b698&\"\nimport script from \"./WXCW81ProjectChart.vue?vue&type=script&lang=js&\"\nexport * from \"./WXCW81ProjectChart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WXCW81ProjectView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WXCW81ProjectView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WXCW81ProjectView.vue?vue&type=template&id=75b22824&\"\nimport script from \"./WXCW81ProjectView.vue?vue&type=script&lang=js&\"\nexport * from \"./WXCW81ProjectView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*\n Highcharts JS v9.3.3 (2022-02-01)\n\n Client side exporting module\n\n (c) 2015-2021 Torstein Honsi / Oystein Moseng\n\n License: www.highcharts.com/license\n*/\n'use strict';(function(a){\"object\"===typeof module&&module.exports?(a[\"default\"]=a,module.exports=a):\"function\"===typeof define&&define.amd?define(\"highcharts/modules/offline-exporting\",[\"highcharts\",\"highcharts/modules/exporting\"],function(e){a(e);a.Highcharts=e;return a}):a(\"undefined\"!==typeof Highcharts?Highcharts:void 0)})(function(a){function e(a,r,b,e){a.hasOwnProperty(r)||(a[r]=e.apply(null,b))}a=a?a._modules:{};e(a,\"Extensions/DownloadURL.js\",[a[\"Core/Globals.js\"]],function(a){var e=a.isSafari,\nb=a.win,q=b.document,t=b.URL||b.webkitURL||b,n=a.dataURLtoBlob=function(a){if((a=a.replace(/filename=.*;/,\"\").match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/))&&3c.indexOf(\"Chrome\");try{if(!c&&-1===a.indexOf(\"c?\"p\":\"l\",\"pt\",[c,b]);[].forEach.call(a.querySelectorAll('*[visibility=\"hidden\"]'),function(a){a.parentNode.removeChild(a)});b=a.querySelectorAll(\"linearGradient\");for(var d=0;d]*width\\s*=\\s*\"?(\\d+)\"?[^>]*>/)[1]*t,f=c.match(/^]*height\\s*=\\s*\"?(\\d+)\"?[^>]*>/)[1]*t,g=function(){h.canvg.Canvg.fromString(b,c).start();try{k(h.navigator.msSaveOrOpenBlob?a.msToBlob():a.toDataURL(n),r),d&&d()}catch(O){l(O)}finally{x()}};a.width=e;a.height=f;h.canvg?g():(y=!0,m(p+\"canvg.js\",function(){g()}))},l,l,function(){y&&x()})}};b.getScript=m;b.imageToDataUrl=\nI;b.svgToDataUrl=B;b.svgToPdf=J})(u||(u={}));return u});e(a,\"masters/modules/offline-exporting.src.js\",[a[\"Core/Globals.js\"],a[\"Extensions/OfflineExporting/OfflineExporting.js\"]],function(a,e){a.downloadSVGLocal=e.downloadSVGLocal;e.compose(a.Chart)})});\n//# sourceMappingURL=offline-exporting.js.map","/**\r\n * Highcharts-zh_CN plugins v1.0.0 (2017-02-22)\r\n *\r\n * (c) 2017 Jianshu Technology CO.,LTD (https://jianshukeji.com)\r\n *\r\n * Author : John@jianshukeji.com, Blue Monkey\r\n *\r\n * License: Creative Commons Attribution (CC)\r\n */\r\n\r\nexport default {\r\n HighchartsHanHua: function (Highcharts) {\r\n var protocol = window.location.protocol;\r\n Highcharts.setOptions({\r\n lang: {\r\n // Highcharts\r\n contextButtonTitle: '图表导出菜单',\r\n decimalPoint: '.',\r\n downloadJPEG: \"下载JPEG图片\",\r\n downloadPDF: \"下载PDF文件\",\r\n downloadPNG: \"下载PNG文件\",\r\n downloadSVG: \"下载SVG文件\",\r\n drillUpText: \"返回 {series.name}\",\r\n invalidDate: '无效的时间',\r\n loading: '加载中...',\r\n months: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\r\n noData: \"没有数据\",\r\n numericSymbols: null,\r\n printChart: \"打印图表\",\r\n resetZoom: '重置缩放比例',\r\n resetZoomTitle: '重置为原始大小',\r\n shortMonths: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\r\n thousandsSep: ',',\r\n weekdays: ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天'],\r\n\r\n // Highstock\r\n rangeSelectorFrom: '开始时间',\r\n rangeSelectorTo: '结束时间',\r\n rangeSelectorZoom: '范围',\r\n\r\n // Highmaps\r\n zoomIn: '缩小',\r\n zoomOut: '放大'\r\n },\r\n\r\n global: {\r\n useUTC: true,\r\n //timezoneOffset: -8 * 60,\r\n canvasToolsURL: protocol + '//cdn.hcharts.cn/highcharts/modules/canvas-tools.js',\r\n VMLRadialGradientURL: protocol + +'//cdn.hcharts.cn/highcharts/gfx/vml-radial-gradient.png'\r\n },\r\n\r\n title: {\r\n text: '图表标题'\r\n },\r\n\r\n tooltip: {\r\n dateTimeLabelFormats: {\r\n millisecond: '%H:%M:%S.%L',\r\n second: '%H:%M:%S',\r\n minute: '%H:%M',\r\n hour: '%H:%M',\r\n day: '%Y-%m-%d',\r\n week: 'Week from %A, %b %e, %Y',\r\n month: '%Y-%m',\r\n year: '%Y'\r\n }\r\n },\r\n\r\n exporting: {\r\n url: protocol + '//export.highcharts.com.cn'\r\n },\r\n\r\n credits: {\r\n text: 'Highcharts.com.cn',\r\n href: 'https://www.highcharts.com.cn'\r\n },\r\n\r\n xAxis: {\r\n dateTimeLabelFormats: {\r\n millisecond: '%H:%M:%S.%L',\r\n second: '%H:%M:%S',\r\n minute: '%H:%M',\r\n hour: '%H:%M',\r\n day: '%Y-%m-%d',\r\n week: '%Y-%m',\r\n month: '%Y-%m',\r\n year: '%Y'\r\n }\r\n },\r\n\r\n rangeSelector: {\r\n inputDateFormat: '%Y-%m-%d',\r\n buttonTheme: {\r\n width: 'auto',\r\n style: {\r\n fontSize: '12px',\r\n padding: '4px'\r\n }\r\n },\r\n buttons: [{\r\n type: 'month',\r\n count: 1,\r\n text: '月'\r\n }, {\r\n type: 'month',\r\n count: 3,\r\n text: '季度'\r\n }, {\r\n type: 'month',\r\n count: 6,\r\n text: '半年'\r\n }, {\r\n type: 'ytd',\r\n text: 'YTD'\r\n }, {\r\n type: 'year',\r\n count: 1,\r\n text: '年'\r\n }, {\r\n type: 'all',\r\n text: '所有'\r\n }]\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\n","/*!\n* screenfull\n* v5.2.0 - 2021-11-03\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","/*!\n * html2canvas 1.4.1 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.html2canvas = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var 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\n function __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\n var __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\n function __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\n function __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\n function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n }\n\n var Bounds = /** @class */ (function () {\n function Bounds(left, top, width, height) {\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n }\n Bounds.prototype.add = function (x, y, w, h) {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n };\n Bounds.fromClientRect = function (context, clientRect) {\n return new Bounds(clientRect.left + context.windowBounds.left, clientRect.top + context.windowBounds.top, clientRect.width, clientRect.height);\n };\n Bounds.fromDOMRectList = function (context, domRectList) {\n var domRect = Array.from(domRectList).find(function (rect) { return rect.width !== 0; });\n return domRect\n ? new Bounds(domRect.left + context.windowBounds.left, domRect.top + context.windowBounds.top, domRect.width, domRect.height)\n : Bounds.EMPTY;\n };\n Bounds.EMPTY = new Bounds(0, 0, 0, 0);\n return Bounds;\n }());\n var parseBounds = function (context, node) {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n };\n var parseDocumentSize = function (document) {\n var body = document.body;\n var documentElement = document.documentElement;\n if (!body || !documentElement) {\n throw new Error(\"Unable to get document size\");\n }\n var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));\n var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));\n return new Bounds(0, 0, width, height);\n };\n\n /*\n * css-line-break 2.1.0 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var toCodePoints$1 = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n };\n var fromCodePoint$1 = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n var chars$2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$2 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$2 = 0; i$2 < chars$2.length; i$2++) {\n lookup$2[chars$2.charCodeAt(i$2)] = i$2;\n }\n\n /*\n * utrie 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$1$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$1$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$1$1 = 0; i$1$1 < chars$1$1.length; i$1$1++) {\n lookup$1$1[chars$1$1.charCodeAt(i$1$1)] = i$1$1;\n }\n var decode$1 = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1$1[base64.charCodeAt(i)];\n encoded2 = lookup$1$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1$1[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return buffer;\n };\n var polyUint16Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n var polyUint32Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n\n /** Shift size for getting the index-2 table offset. */\n var UTRIE2_SHIFT_2$1 = 5;\n /** Shift size for getting the index-1 table offset. */\n var UTRIE2_SHIFT_1$1 = 6 + 5;\n /**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\n var UTRIE2_INDEX_SHIFT$1 = 2;\n /**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\n var UTRIE2_SHIFT_1_2$1 = UTRIE2_SHIFT_1$1 - UTRIE2_SHIFT_2$1;\n /**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\n var UTRIE2_LSCP_INDEX_2_OFFSET$1 = 0x10000 >> UTRIE2_SHIFT_2$1;\n /** Number of entries in a data block. 32=0x20 */\n var UTRIE2_DATA_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_2$1;\n /** Mask for getting the lower bits for the in-data-block offset. */\n var UTRIE2_DATA_MASK$1 = UTRIE2_DATA_BLOCK_LENGTH$1 - 1;\n var UTRIE2_LSCP_INDEX_2_LENGTH$1 = 0x400 >> UTRIE2_SHIFT_2$1;\n /** Count the lengths of both BMP pieces. 2080=0x820 */\n var UTRIE2_INDEX_2_BMP_LENGTH$1 = UTRIE2_LSCP_INDEX_2_OFFSET$1 + UTRIE2_LSCP_INDEX_2_LENGTH$1;\n /**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 = UTRIE2_INDEX_2_BMP_LENGTH$1;\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH$1 = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n /**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\n var UTRIE2_INDEX_1_OFFSET$1 = UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 + UTRIE2_UTF8_2B_INDEX_2_LENGTH$1;\n /**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 = 0x10000 >> UTRIE2_SHIFT_1$1;\n /** Number of entries in an index-2 block. 64=0x40 */\n var UTRIE2_INDEX_2_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_1_2$1;\n /** Mask for getting the lower bits for the in-index-2-block offset. */\n var UTRIE2_INDEX_2_MASK$1 = UTRIE2_INDEX_2_BLOCK_LENGTH$1 - 1;\n var slice16$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n };\n var slice32$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n };\n var createTrieFromBase64$1 = function (base64, _byteLength) {\n var buffer = decode$1(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array$1(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array$1(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16$1(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16$1(view16, (headerLength + view32[4]) / 2)\n : slice32$1(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie$1(view32[0], view32[1], view32[2], view32[3], index, data);\n };\n var Trie$1 = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2$1];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET$1 + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2$1)];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET$1 - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 + (codePoint >> UTRIE2_SHIFT_1$1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2$1) & UTRIE2_INDEX_2_MASK$1;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n }());\n\n /*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$3 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$3 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$3 = 0; i$3 < chars$3.length; i$3++) {\n lookup$3[chars$3.charCodeAt(i$3)] = i$3;\n }\n\n var base64$1 = 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\n\n var LETTER_NUMBER_MODIFIER = 50;\n // Non-tailorable Line Breaking Classes\n var BK = 1; // Cause a line break (after)\n var CR$1 = 2; // Cause a line break (after), except between CR and LF\n var LF$1 = 3; // Cause a line break (after)\n var CM = 4; // Prohibit a line break between the character and the preceding character\n var NL = 5; // Cause a line break (after)\n var WJ = 7; // Prohibit line breaks before and after\n var ZW = 8; // Provide a break opportunity\n var GL = 9; // Prohibit line breaks before and after\n var SP = 10; // Enable indirect line breaks\n var ZWJ$1 = 11; // Prohibit line breaks within joiner sequences\n // Break Opportunities\n var B2 = 12; // Provide a line break opportunity before and after the character\n var BA = 13; // Generally provide a line break opportunity after the character\n var BB = 14; // Generally provide a line break opportunity before the character\n var HY = 15; // Provide a line break opportunity after the character, except in numeric context\n var CB = 16; // Provide a line break opportunity contingent on additional information\n // Characters Prohibiting Certain Breaks\n var CL = 17; // Prohibit line breaks before\n var CP = 18; // Prohibit line breaks before\n var EX = 19; // Prohibit line breaks before\n var IN = 20; // Allow only indirect line breaks between pairs\n var NS = 21; // Allow only indirect line breaks before\n var OP = 22; // Prohibit line breaks after\n var QU = 23; // Act like they are both opening and closing\n // Numeric Context\n var IS = 24; // Prevent breaks after any and before numeric\n var NU = 25; // Form numeric expressions for line breaking purposes\n var PO = 26; // Do not break following a numeric expression\n var PR = 27; // Do not break in front of a numeric expression\n var SY = 28; // Prevent a break before; and allow a break after\n // Other Characters\n var AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\n var AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\n var CJ = 31; // Treat as NS or ID for strict or normal breaking.\n var EB = 32; // Do not break from following Emoji Modifier\n var EM = 33; // Do not break from preceding Emoji Base\n var H2 = 34; // Form Korean syllable blocks\n var H3 = 35; // Form Korean syllable blocks\n var HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\n var ID = 37; // Break before or after; except in some numeric context\n var JL = 38; // Form Korean syllable blocks\n var JV = 39; // Form Korean syllable blocks\n var JT = 40; // Form Korean syllable blocks\n var RI$1 = 41; // Keep pairs together. For pairs; break before and after other classes\n var SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\n var XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n var ea_OP = [0x2329, 0xff08];\n var BREAK_MANDATORY = '!';\n var BREAK_NOT_ALLOWED$1 = '×';\n var BREAK_ALLOWED$1 = '÷';\n var UnicodeTrie$1 = createTrieFromBase64$1(base64$1);\n var ALPHABETICS = [AL, HL];\n var HARD_LINE_BREAKS = [BK, CR$1, LF$1, NL];\n var SPACE$1 = [SP, ZW];\n var PREFIX_POSTFIX = [PR, PO];\n var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE$1);\n var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\n var HYPHEN = [HY, BA];\n var codePointsToCharacterClasses = function (codePoints, lineBreak) {\n if (lineBreak === void 0) { lineBreak = 'strict'; }\n var types = [];\n var indices = [];\n var categories = [];\n codePoints.forEach(function (codePoint, index) {\n var classType = UnicodeTrie$1.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n }\n else {\n categories.push(false);\n }\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n if (classType === CM || classType === ZWJ$1) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n var prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n indices.push(index);\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n if (classType === SA) {\n return types.push(AL);\n }\n if (classType === AI) {\n return types.push(AL);\n }\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n }\n else {\n return types.push(AL);\n }\n }\n types.push(classType);\n });\n return [indices, types, categories];\n };\n var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {\n var current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n var i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n var next = classTypes[i];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (current === SP) {\n var i = currentIndex;\n while (i > 0) {\n i--;\n var prev = classTypes[i];\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n var n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n var next = classTypes[n];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n };\n var previousNonSpaceClassType = function (currentIndex, classTypes) {\n var i = currentIndex;\n while (i >= 0) {\n var type = classTypes[i];\n if (type === SP) {\n i--;\n }\n else {\n return type;\n }\n }\n return 0;\n };\n var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n var currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED$1;\n }\n var beforeIndex = currentIndex - 1;\n var afterIndex = currentIndex + 1;\n var current = classTypes[currentIndex];\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n var next = classTypes[afterIndex];\n if (current === CR$1 && next === LF$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB7 Do not break before spaces or zero width space.\n if (SPACE$1.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED$1;\n }\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie$1.get(codePoints[currentIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie$1.get(codePoints[afterIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED$1;\n }\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED$1;\n }\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n var prevIndex = currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // LB26 Do not break a Korean syllable.\n if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB27 Treat a Korean Syllable Block the same as ID.\n if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI$1 && next === RI$1) {\n var i = indicies[currentIndex];\n var count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI$1) {\n count++;\n }\n else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n }\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED$1;\n }\n return BREAK_ALLOWED$1;\n };\n var cssFormattedClasses = function (codePoints, options) {\n if (!options) {\n options = { lineBreak: 'normal', wordBreak: 'normal' };\n }\n var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });\n }\n var forbiddenBreakpoints = options.wordBreak === 'keep-all'\n ? isLetterNumber.map(function (letterNumber, i) {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n return [indicies, classTypes, forbiddenBreakpoints];\n };\n var Break = /** @class */ (function () {\n function Break(codePoints, lineBreak, start, end) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n Break.prototype.slice = function () {\n return fromCodePoint$1.apply(void 0, this.codePoints.slice(this.start, this.end));\n };\n return Break;\n }());\n var LineBreaker = function (str, options) {\n var codePoints = toCodePoints$1(str);\n var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];\n var length = codePoints.length;\n var lastEnd = 0;\n var nextIndex = 0;\n return {\n next: function () {\n if (nextIndex >= length) {\n return { done: true, value: null };\n }\n var lineBreak = BREAK_NOT_ALLOWED$1;\n while (nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED$1) { }\n if (lineBreak !== BREAK_NOT_ALLOWED$1 || nextIndex === length) {\n var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n };\n\n // https://www.w3.org/TR/css-syntax-3\n var FLAG_UNRESTRICTED = 1 << 0;\n var FLAG_ID = 1 << 1;\n var FLAG_INTEGER = 1 << 2;\n var FLAG_NUMBER = 1 << 3;\n var LINE_FEED = 0x000a;\n var SOLIDUS = 0x002f;\n var REVERSE_SOLIDUS = 0x005c;\n var CHARACTER_TABULATION = 0x0009;\n var SPACE = 0x0020;\n var QUOTATION_MARK = 0x0022;\n var EQUALS_SIGN = 0x003d;\n var NUMBER_SIGN = 0x0023;\n var DOLLAR_SIGN = 0x0024;\n var PERCENTAGE_SIGN = 0x0025;\n var APOSTROPHE = 0x0027;\n var LEFT_PARENTHESIS = 0x0028;\n var RIGHT_PARENTHESIS = 0x0029;\n var LOW_LINE = 0x005f;\n var HYPHEN_MINUS = 0x002d;\n var EXCLAMATION_MARK = 0x0021;\n var LESS_THAN_SIGN = 0x003c;\n var GREATER_THAN_SIGN = 0x003e;\n var COMMERCIAL_AT = 0x0040;\n var LEFT_SQUARE_BRACKET = 0x005b;\n var RIGHT_SQUARE_BRACKET = 0x005d;\n var CIRCUMFLEX_ACCENT = 0x003d;\n var LEFT_CURLY_BRACKET = 0x007b;\n var QUESTION_MARK = 0x003f;\n var RIGHT_CURLY_BRACKET = 0x007d;\n var VERTICAL_LINE = 0x007c;\n var TILDE = 0x007e;\n var CONTROL = 0x0080;\n var REPLACEMENT_CHARACTER = 0xfffd;\n var ASTERISK = 0x002a;\n var PLUS_SIGN = 0x002b;\n var COMMA = 0x002c;\n var COLON = 0x003a;\n var SEMICOLON = 0x003b;\n var FULL_STOP = 0x002e;\n var NULL = 0x0000;\n var BACKSPACE = 0x0008;\n var LINE_TABULATION = 0x000b;\n var SHIFT_OUT = 0x000e;\n var INFORMATION_SEPARATOR_ONE = 0x001f;\n var DELETE = 0x007f;\n var EOF = -1;\n var ZERO = 0x0030;\n var a = 0x0061;\n var e = 0x0065;\n var f = 0x0066;\n var u = 0x0075;\n var z = 0x007a;\n var A = 0x0041;\n var E = 0x0045;\n var F = 0x0046;\n var U = 0x0055;\n var Z = 0x005a;\n var isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };\n var isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };\n var isHex = function (codePoint) {\n return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\n };\n var isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };\n var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };\n var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };\n var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };\n var isWhiteSpace = function (codePoint) {\n return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\n };\n var isNameStartCodePoint = function (codePoint) {\n return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\n };\n var isNameCodePoint = function (codePoint) {\n return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\n };\n var isNonPrintableCodePoint = function (codePoint) {\n return ((codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE);\n };\n var isValidEscape = function (c1, c2) {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n return c2 !== LINE_FEED;\n };\n var isIdentifierStart = function (c1, c2, c3) {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n }\n else if (isNameStartCodePoint(c1)) {\n return true;\n }\n else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n };\n var isNumberStart = function (c1, c2, c3) {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n return c2 === FULL_STOP && isDigit(c3);\n }\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n return isDigit(c1);\n };\n var stringToNumber = function (codePoints) {\n var c = 0;\n var sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n var integers = [];\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n var int = integers.length ? parseInt(fromCodePoint$1.apply(void 0, integers), 10) : 0;\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n var fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n var fracd = fraction.length;\n var frac = fracd ? parseInt(fromCodePoint$1.apply(void 0, fraction), 10) : 0;\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n var expsign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n var exponent = [];\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n var exp = exponent.length ? parseInt(fromCodePoint$1.apply(void 0, exponent), 10) : 0;\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n };\n var LEFT_PARENTHESIS_TOKEN = {\n type: 2 /* LEFT_PARENTHESIS_TOKEN */\n };\n var RIGHT_PARENTHESIS_TOKEN = {\n type: 3 /* RIGHT_PARENTHESIS_TOKEN */\n };\n var COMMA_TOKEN = { type: 4 /* COMMA_TOKEN */ };\n var SUFFIX_MATCH_TOKEN = { type: 13 /* SUFFIX_MATCH_TOKEN */ };\n var PREFIX_MATCH_TOKEN = { type: 8 /* PREFIX_MATCH_TOKEN */ };\n var COLUMN_TOKEN = { type: 21 /* COLUMN_TOKEN */ };\n var DASH_MATCH_TOKEN = { type: 9 /* DASH_MATCH_TOKEN */ };\n var INCLUDE_MATCH_TOKEN = { type: 10 /* INCLUDE_MATCH_TOKEN */ };\n var LEFT_CURLY_BRACKET_TOKEN = {\n type: 11 /* LEFT_CURLY_BRACKET_TOKEN */\n };\n var RIGHT_CURLY_BRACKET_TOKEN = {\n type: 12 /* RIGHT_CURLY_BRACKET_TOKEN */\n };\n var SUBSTRING_MATCH_TOKEN = { type: 14 /* SUBSTRING_MATCH_TOKEN */ };\n var BAD_URL_TOKEN = { type: 23 /* BAD_URL_TOKEN */ };\n var BAD_STRING_TOKEN = { type: 1 /* BAD_STRING_TOKEN */ };\n var CDO_TOKEN = { type: 25 /* CDO_TOKEN */ };\n var CDC_TOKEN = { type: 24 /* CDC_TOKEN */ };\n var COLON_TOKEN = { type: 26 /* COLON_TOKEN */ };\n var SEMICOLON_TOKEN = { type: 27 /* SEMICOLON_TOKEN */ };\n var LEFT_SQUARE_BRACKET_TOKEN = {\n type: 28 /* LEFT_SQUARE_BRACKET_TOKEN */\n };\n var RIGHT_SQUARE_BRACKET_TOKEN = {\n type: 29 /* RIGHT_SQUARE_BRACKET_TOKEN */\n };\n var WHITESPACE_TOKEN = { type: 31 /* WHITESPACE_TOKEN */ };\n var EOF_TOKEN = { type: 32 /* EOF_TOKEN */ };\n var Tokenizer = /** @class */ (function () {\n function Tokenizer() {\n this._value = [];\n }\n Tokenizer.prototype.write = function (chunk) {\n this._value = this._value.concat(toCodePoints$1(chunk));\n };\n Tokenizer.prototype.read = function () {\n var tokens = [];\n var token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n };\n Tokenizer.prototype.consumeToken = function () {\n var codePoint = this.consumeCodePoint();\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n var value = this.consumeName();\n return { type: 5 /* HASH_TOKEN */, value: value, flags: flags };\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n var e1 = codePoint;\n var e2 = this.peekCodePoint(0);\n var e3 = this.peekCodePoint(1);\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n var c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n var a1 = this.peekCodePoint(0);\n var a2 = this.peekCodePoint(1);\n var a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n var value = this.consumeName();\n return { type: 7 /* AT_KEYWORD_TOKEN */, value: value };\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n var u1 = this.peekCodePoint(0);\n var u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n return { type: 6 /* DELIM_TOKEN */, value: fromCodePoint$1(codePoint) };\n };\n Tokenizer.prototype.consumeCodePoint = function () {\n var value = this._value.shift();\n return typeof value === 'undefined' ? -1 : value;\n };\n Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {\n this._value.unshift(codePoint);\n };\n Tokenizer.prototype.peekCodePoint = function (delta) {\n if (delta >= this._value.length) {\n return -1;\n }\n return this._value[delta];\n };\n Tokenizer.prototype.consumeUnicodeRangeToken = function () {\n var digits = [];\n var codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n if (questionMarks) {\n var start_1 = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);\n var end = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start_1, end: end };\n }\n var start = parseInt(fromCodePoint$1.apply(void 0, digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n var endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var end = parseInt(fromCodePoint$1.apply(void 0, endDigits), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: end };\n }\n else {\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: start };\n }\n };\n Tokenizer.prototype.consumeIdentLikeToken = function () {\n var value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n }\n else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 19 /* FUNCTION_TOKEN */, value: value };\n }\n return { type: 20 /* IDENT_TOKEN */, value: value };\n };\n Tokenizer.prototype.consumeUrlToken = function () {\n var value = [];\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF) {\n return { type: 22 /* URL_TOKEN */, value: '' };\n }\n var next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n var stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === 0 /* STRING_TOKEN */) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: stringToken.value };\n }\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n }\n else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n }\n else {\n value.push(codePoint);\n }\n }\n };\n Tokenizer.prototype.consumeWhiteSpace = function () {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n };\n Tokenizer.prototype.consumeBadUrlRemnants = function () {\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n };\n Tokenizer.prototype.consumeStringSlice = function (count) {\n var SLICE_STACK_SIZE = 50000;\n var value = '';\n while (count > 0) {\n var amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint$1.apply(void 0, this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n return value;\n };\n Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {\n var value = '';\n var i = 0;\n do {\n var codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return { type: 0 /* STRING_TOKEN */, value: value };\n }\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n if (codePoint === REVERSE_SOLIDUS) {\n var next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n }\n else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint$1(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n i++;\n } while (true);\n };\n Tokenizer.prototype.consumeNumber = function () {\n var repr = [];\n var type = FLAG_INTEGER;\n var c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n return [stringToNumber(repr), type];\n };\n Tokenizer.prototype.consumeNumericToken = function () {\n var _a = this.consumeNumber(), number = _a[0], flags = _a[1];\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isIdentifierStart(c1, c2, c3)) {\n var unit = this.consumeName();\n return { type: 15 /* DIMENSION_TOKEN */, number: number, flags: flags, unit: unit };\n }\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return { type: 16 /* PERCENTAGE_TOKEN */, number: number, flags: flags };\n }\n return { type: 17 /* NUMBER_TOKEN */, number: number, flags: flags };\n };\n Tokenizer.prototype.consumeEscapedCodePoint = function () {\n var codePoint = this.consumeCodePoint();\n if (isHex(codePoint)) {\n var hex = fromCodePoint$1(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint$1(this.consumeCodePoint());\n }\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n var hexCodePoint = parseInt(hex, 16);\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n return hexCodePoint;\n }\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n return codePoint;\n };\n Tokenizer.prototype.consumeName = function () {\n var result = '';\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint$1(codePoint);\n }\n else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint$1(this.consumeEscapedCodePoint());\n }\n else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n };\n return Tokenizer;\n }());\n\n var Parser = /** @class */ (function () {\n function Parser(tokens) {\n this._tokens = tokens;\n }\n Parser.create = function (value) {\n var tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n };\n Parser.parseValue = function (value) {\n return Parser.create(value).parseComponentValue();\n };\n Parser.parseValues = function (value) {\n return Parser.create(value).parseComponentValues();\n };\n Parser.prototype.parseComponentValue = function () {\n var token = this.consumeToken();\n while (token.type === 31 /* WHITESPACE_TOKEN */) {\n token = this.consumeToken();\n }\n if (token.type === 32 /* EOF_TOKEN */) {\n throw new SyntaxError(\"Error parsing CSS component value, unexpected EOF\");\n }\n this.reconsumeToken(token);\n var value = this.consumeComponentValue();\n do {\n token = this.consumeToken();\n } while (token.type === 31 /* WHITESPACE_TOKEN */);\n if (token.type === 32 /* EOF_TOKEN */) {\n return value;\n }\n throw new SyntaxError(\"Error parsing CSS component value, multiple values found when expecting only one\");\n };\n Parser.prototype.parseComponentValues = function () {\n var values = [];\n while (true) {\n var value = this.consumeComponentValue();\n if (value.type === 32 /* EOF_TOKEN */) {\n return values;\n }\n values.push(value);\n values.push();\n }\n };\n Parser.prototype.consumeComponentValue = function () {\n var token = this.consumeToken();\n switch (token.type) {\n case 11 /* LEFT_CURLY_BRACKET_TOKEN */:\n case 28 /* LEFT_SQUARE_BRACKET_TOKEN */:\n case 2 /* LEFT_PARENTHESIS_TOKEN */:\n return this.consumeSimpleBlock(token.type);\n case 19 /* FUNCTION_TOKEN */:\n return this.consumeFunction(token);\n }\n return token;\n };\n Parser.prototype.consumeSimpleBlock = function (type) {\n var block = { type: type, values: [] };\n var token = this.consumeToken();\n while (true) {\n if (token.type === 32 /* EOF_TOKEN */ || isEndingTokenFor(token, type)) {\n return block;\n }\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n };\n Parser.prototype.consumeFunction = function (functionToken) {\n var cssFunction = {\n name: functionToken.value,\n values: [],\n type: 18 /* FUNCTION */\n };\n while (true) {\n var token = this.consumeToken();\n if (token.type === 32 /* EOF_TOKEN */ || token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */) {\n return cssFunction;\n }\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n };\n Parser.prototype.consumeToken = function () {\n var token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n };\n Parser.prototype.reconsumeToken = function (token) {\n this._tokens.unshift(token);\n };\n return Parser;\n }());\n var isDimensionToken = function (token) { return token.type === 15 /* DIMENSION_TOKEN */; };\n var isNumberToken = function (token) { return token.type === 17 /* NUMBER_TOKEN */; };\n var isIdentToken = function (token) { return token.type === 20 /* IDENT_TOKEN */; };\n var isStringToken = function (token) { return token.type === 0 /* STRING_TOKEN */; };\n var isIdentWithValue = function (token, value) {\n return isIdentToken(token) && token.value === value;\n };\n var nonWhiteSpace = function (token) { return token.type !== 31 /* WHITESPACE_TOKEN */; };\n var nonFunctionArgSeparator = function (token) {\n return token.type !== 31 /* WHITESPACE_TOKEN */ && token.type !== 4 /* COMMA_TOKEN */;\n };\n var parseFunctionArgs = function (tokens) {\n var args = [];\n var arg = [];\n tokens.forEach(function (token) {\n if (token.type === 4 /* COMMA_TOKEN */) {\n if (arg.length === 0) {\n throw new Error(\"Error parsing function args, zero tokens for arg\");\n }\n args.push(arg);\n arg = [];\n return;\n }\n if (token.type !== 31 /* WHITESPACE_TOKEN */) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n return args;\n };\n var isEndingTokenFor = function (token, type) {\n if (type === 11 /* LEFT_CURLY_BRACKET_TOKEN */ && token.type === 12 /* RIGHT_CURLY_BRACKET_TOKEN */) {\n return true;\n }\n if (type === 28 /* LEFT_SQUARE_BRACKET_TOKEN */ && token.type === 29 /* RIGHT_SQUARE_BRACKET_TOKEN */) {\n return true;\n }\n return type === 2 /* LEFT_PARENTHESIS_TOKEN */ && token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */;\n };\n\n var isLength = function (token) {\n return token.type === 17 /* NUMBER_TOKEN */ || token.type === 15 /* DIMENSION_TOKEN */;\n };\n\n var isLengthPercentage = function (token) {\n return token.type === 16 /* PERCENTAGE_TOKEN */ || isLength(token);\n };\n var parseLengthPercentageTuple = function (tokens) {\n return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\n };\n var ZERO_LENGTH = {\n type: 17 /* NUMBER_TOKEN */,\n number: 0,\n flags: FLAG_INTEGER\n };\n var FIFTY_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n };\n var HUNDRED_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 100,\n flags: FLAG_INTEGER\n };\n var getAbsoluteValueForTuple = function (tuple, width, height) {\n var x = tuple[0], y = tuple[1];\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n };\n var getAbsoluteValue = function (token, parent) {\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n return (token.number / 100) * parent;\n }\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n return token.number;\n };\n\n var DEG = 'deg';\n var GRAD = 'grad';\n var RAD = 'rad';\n var TURN = 'turn';\n var angle = {\n name: 'angle',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n throw new Error(\"Unsupported angle type\");\n }\n };\n var isAngle = function (value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n };\n var parseNamedSide = function (tokens) {\n var sideOrCorner = tokens\n .filter(isIdentToken)\n .map(function (ident) { return ident.value; })\n .join(' ');\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n return 0;\n };\n var deg = function (deg) { return (Math.PI * deg) / 180; };\n\n var color$1 = {\n name: 'color',\n parse: function (context, value) {\n if (value.type === 18 /* FUNCTION */) {\n var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported color function \\\"\" + value.name + \"\\\"\");\n }\n return colorFunction(context, value.values);\n }\n if (value.type === 5 /* HASH_TOKEN */) {\n if (value.value.length === 3) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n if (value.value.length === 4) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n var a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n if (value.value.length === 6) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n if (value.value.length === 8) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n var a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n if (value.type === 20 /* IDENT_TOKEN */) {\n var namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n return COLORS.TRANSPARENT;\n }\n };\n var isTransparent = function (color) { return (0xff & color) === 0; };\n var asString = function (color) {\n var alpha = 0xff & color;\n var blue = 0xff & (color >> 8);\n var green = 0xff & (color >> 16);\n var red = 0xff & (color >> 24);\n return alpha < 255 ? \"rgba(\" + red + \",\" + green + \",\" + blue + \",\" + alpha / 255 + \")\" : \"rgb(\" + red + \",\" + green + \",\" + blue + \")\";\n };\n var pack = function (r, g, b, a) {\n return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n };\n var getTokenColorValue = function (token, i) {\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n var max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n return 0;\n };\n var rgb = function (_context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n if (tokens.length === 3) {\n var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2];\n return pack(r, g, b, 1);\n }\n if (tokens.length === 4) {\n var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a = _b[3];\n return pack(r, g, b, a);\n }\n return 0;\n };\n function hue2rgb(t1, t2, hue) {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n }\n else if (hue < 1 / 2) {\n return t2;\n }\n else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n }\n else {\n return t1;\n }\n }\n var hsl = function (context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3];\n var h = (hue.type === 17 /* NUMBER_TOKEN */ ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var t1 = l * 2 - t2;\n var r = hue2rgb(t1, t2, h + 1 / 3);\n var g = hue2rgb(t1, t2, h);\n var b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n };\n var SUPPORTED_COLOR_FUNCTIONS = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n };\n var parseColor = function (context, value) {\n return color$1.parse(context, Parser.create(value).parseComponentValue());\n };\n var COLORS = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n };\n\n var backgroundClip = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n };\n\n var backgroundColor = {\n name: \"background-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var parseColorStop = function (context, args) {\n var color = color$1.parse(context, args[0]);\n var stop = args[1];\n return stop && isLengthPercentage(stop) ? { color: color, stop: stop } : { color: color, stop: null };\n };\n var processColorStops = function (stops, lineLength) {\n var first = stops[0];\n var last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n var processStops = [];\n var previous = 0;\n for (var i = 0; i < stops.length; i++) {\n var stop_1 = stops[i].stop;\n if (stop_1 !== null) {\n var absoluteValue = getAbsoluteValue(stop_1, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n }\n else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n }\n else {\n processStops.push(null);\n }\n }\n var gapBegin = null;\n for (var i = 0; i < processStops.length; i++) {\n var stop_2 = processStops[i];\n if (stop_2 === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n }\n else if (gapBegin !== null) {\n var gapLength = i - gapBegin;\n var beforeGap = processStops[gapBegin - 1];\n var gapValue = (stop_2 - beforeGap) / (gapLength + 1);\n for (var g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n return stops.map(function (_a, i) {\n var color = _a.color;\n return { color: color, stop: Math.max(Math.min(1, processStops[i] / lineLength), 0) };\n });\n };\n var getAngleFromCorner = function (corner, width, height) {\n var centerX = width / 2;\n var centerY = height / 2;\n var x = getAbsoluteValue(corner[0], width) - centerX;\n var y = centerY - getAbsoluteValue(corner[1], height);\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n };\n var calculateGradientDirection = function (angle, width, height) {\n var radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var halfLineLength = lineLength / 2;\n var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n };\n var distance = function (a, b) { return Math.sqrt(a * a + b * b); };\n var findCorner = function (width, height, x, y, closest) {\n var corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n return corners.reduce(function (stat, corner) {\n var cx = corner[0], cy = corner[1];\n var d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n return stat;\n }, {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }).optimumCorner;\n };\n var calculateRadius = function (gradient, x, y, width, height) {\n var rx = 0;\n var ry = 0;\n switch (gradient.size) {\n case 0 /* CLOSEST_SIDE */:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 2 /* CLOSEST_CORNER */:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n case 1 /* FARTHEST_SIDE */:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 3 /* FARTHEST_CORNER */:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n return [rx, ry];\n };\n\n var linearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ && firstToken.value === 'to') {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = angle.parse(context, firstToken);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return { angle: angle$1, stops: stops, type: 1 /* LINEAR_GRADIENT */ };\n };\n\n var prefixLinearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = (angle.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return {\n angle: angle$1,\n stops: stops,\n type: 1 /* LINEAR_GRADIENT */\n };\n };\n\n var webkitGradient = function (context, tokens) {\n var angle = deg(180);\n var stops = [];\n var type = 1 /* LINEAR_GRADIENT */;\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = 1 /* LINEAR_GRADIENT */;\n return;\n }\n else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = 2 /* RADIAL_GRADIENT */;\n return;\n }\n }\n if (firstToken.type === 18 /* FUNCTION */) {\n if (firstToken.name === 'from') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: ZERO_LENGTH, color: color });\n }\n else if (firstToken.name === 'to') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: HUNDRED_PERCENT, color: color });\n }\n else if (firstToken.name === 'color-stop') {\n var values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n var color = color$1.parse(context, values[1]);\n var stop_1 = values[0];\n if (isNumberToken(stop_1)) {\n stops.push({\n stop: { type: 16 /* PERCENTAGE_TOKEN */, number: stop_1.number * 100, flags: stop_1.flags },\n color: color\n });\n }\n }\n }\n }\n });\n return type === 1 /* LINEAR_GRADIENT */\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops: stops,\n type: type\n }\n : { size: size, shape: shape, stops: stops, position: position, type: type };\n };\n\n var CLOSEST_SIDE = 'closest-side';\n var FARTHEST_SIDE = 'farthest-side';\n var CLOSEST_CORNER = 'closest-corner';\n var FARTHEST_CORNER = 'farthest-corner';\n var CIRCLE = 'circle';\n var ELLIPSE = 'ellipse';\n var COVER = 'cover';\n var CONTAIN = 'contain';\n var radialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n var isAtPosition_1 = false;\n isColorStop = arg.reduce(function (acc, token) {\n if (isAtPosition_1) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n }\n else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case 'at':\n isAtPosition_1 = true;\n return false;\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n };\n\n var prefixRadialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n else if (i === 1) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n };\n\n var isLinearGradient = function (background) {\n return background.type === 1 /* LINEAR_GRADIENT */;\n };\n var isRadialGradient = function (background) {\n return background.type === 2 /* RADIAL_GRADIENT */;\n };\n var image = {\n name: 'image',\n parse: function (context, value) {\n if (value.type === 22 /* URL_TOKEN */) {\n var image_1 = { url: value.value, type: 0 /* URL */ };\n context.cache.addImage(value.value);\n return image_1;\n }\n if (value.type === 18 /* FUNCTION */) {\n var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported image function \\\"\" + value.name + \"\\\"\");\n }\n return imageFunction(context, value.values);\n }\n throw new Error(\"Unsupported image type \" + value.type);\n }\n };\n function isSupportedImage(value) {\n return (!(value.type === 20 /* IDENT_TOKEN */ && value.value === 'none') &&\n (value.type !== 18 /* FUNCTION */ || !!SUPPORTED_IMAGE_FUNCTIONS[value.name]));\n }\n var SUPPORTED_IMAGE_FUNCTIONS = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n };\n\n var backgroundImage = {\n name: 'background-image',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens\n .filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); })\n .map(function (value) { return image.parse(context, value); });\n }\n };\n\n var backgroundOrigin = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n };\n\n var backgroundPosition = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) { return values.filter(isLengthPercentage); })\n .map(parseLengthPercentageTuple);\n }\n };\n\n var backgroundRepeat = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) {\n return values\n .filter(isIdentToken)\n .map(function (token) { return token.value; })\n .join(' ');\n })\n .map(parseBackgroundRepeat);\n }\n };\n var parseBackgroundRepeat = function (value) {\n switch (value) {\n case 'no-repeat':\n return 1 /* NO_REPEAT */;\n case 'repeat-x':\n case 'repeat no-repeat':\n return 2 /* REPEAT_X */;\n case 'repeat-y':\n case 'no-repeat repeat':\n return 3 /* REPEAT_Y */;\n case 'repeat':\n default:\n return 0 /* REPEAT */;\n }\n };\n\n var BACKGROUND_SIZE;\n (function (BACKGROUND_SIZE) {\n BACKGROUND_SIZE[\"AUTO\"] = \"auto\";\n BACKGROUND_SIZE[\"CONTAIN\"] = \"contain\";\n BACKGROUND_SIZE[\"COVER\"] = \"cover\";\n })(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));\n var backgroundSize = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });\n }\n };\n var isBackgroundSizeInfoToken = function (value) {\n return isIdentToken(value) || isLengthPercentage(value);\n };\n\n var borderColorForSide = function (side) { return ({\n name: \"border-\" + side + \"-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n }); };\n var borderTopColor = borderColorForSide('top');\n var borderRightColor = borderColorForSide('right');\n var borderBottomColor = borderColorForSide('bottom');\n var borderLeftColor = borderColorForSide('left');\n\n var borderRadiusForSide = function (side) { return ({\n name: \"border-radius-\" + side,\n initialValue: '0 0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseLengthPercentageTuple(tokens.filter(isLengthPercentage));\n }\n }); };\n var borderTopLeftRadius = borderRadiusForSide('top-left');\n var borderTopRightRadius = borderRadiusForSide('top-right');\n var borderBottomRightRadius = borderRadiusForSide('bottom-right');\n var borderBottomLeftRadius = borderRadiusForSide('bottom-left');\n\n var borderStyleForSide = function (side) { return ({\n name: \"border-\" + side + \"-style\",\n initialValue: 'solid',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, style) {\n switch (style) {\n case 'none':\n return 0 /* NONE */;\n case 'dashed':\n return 2 /* DASHED */;\n case 'dotted':\n return 3 /* DOTTED */;\n case 'double':\n return 4 /* DOUBLE */;\n }\n return 1 /* SOLID */;\n }\n }); };\n var borderTopStyle = borderStyleForSide('top');\n var borderRightStyle = borderStyleForSide('right');\n var borderBottomStyle = borderStyleForSide('bottom');\n var borderLeftStyle = borderStyleForSide('left');\n\n var borderWidthForSide = function (side) { return ({\n name: \"border-\" + side + \"-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n }); };\n var borderTopWidth = borderWidthForSide('top');\n var borderRightWidth = borderWidthForSide('right');\n var borderBottomWidth = borderWidthForSide('bottom');\n var borderLeftWidth = borderWidthForSide('left');\n\n var color = {\n name: \"color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var direction = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, direction) {\n switch (direction) {\n case 'rtl':\n return 1 /* RTL */;\n case 'ltr':\n default:\n return 0 /* LTR */;\n }\n }\n };\n\n var display = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).reduce(function (bit, token) {\n return bit | parseDisplayValue(token.value);\n }, 0 /* NONE */);\n }\n };\n var parseDisplayValue = function (display) {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return 2 /* BLOCK */;\n case 'inline':\n return 4 /* INLINE */;\n case 'run-in':\n return 8 /* RUN_IN */;\n case 'flow':\n return 16 /* FLOW */;\n case 'flow-root':\n return 32 /* FLOW_ROOT */;\n case 'table':\n return 64 /* TABLE */;\n case 'flex':\n case '-webkit-flex':\n return 128 /* FLEX */;\n case 'grid':\n case '-ms-grid':\n return 256 /* GRID */;\n case 'ruby':\n return 512 /* RUBY */;\n case 'subgrid':\n return 1024 /* SUBGRID */;\n case 'list-item':\n return 2048 /* LIST_ITEM */;\n case 'table-row-group':\n return 4096 /* TABLE_ROW_GROUP */;\n case 'table-header-group':\n return 8192 /* TABLE_HEADER_GROUP */;\n case 'table-footer-group':\n return 16384 /* TABLE_FOOTER_GROUP */;\n case 'table-row':\n return 32768 /* TABLE_ROW */;\n case 'table-cell':\n return 65536 /* TABLE_CELL */;\n case 'table-column-group':\n return 131072 /* TABLE_COLUMN_GROUP */;\n case 'table-column':\n return 262144 /* TABLE_COLUMN */;\n case 'table-caption':\n return 524288 /* TABLE_CAPTION */;\n case 'ruby-base':\n return 1048576 /* RUBY_BASE */;\n case 'ruby-text':\n return 2097152 /* RUBY_TEXT */;\n case 'ruby-base-container':\n return 4194304 /* RUBY_BASE_CONTAINER */;\n case 'ruby-text-container':\n return 8388608 /* RUBY_TEXT_CONTAINER */;\n case 'contents':\n return 16777216 /* CONTENTS */;\n case 'inline-block':\n return 33554432 /* INLINE_BLOCK */;\n case 'inline-list-item':\n return 67108864 /* INLINE_LIST_ITEM */;\n case 'inline-table':\n return 134217728 /* INLINE_TABLE */;\n case 'inline-flex':\n return 268435456 /* INLINE_FLEX */;\n case 'inline-grid':\n return 536870912 /* INLINE_GRID */;\n }\n return 0 /* NONE */;\n };\n\n var float = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, float) {\n switch (float) {\n case 'left':\n return 1 /* LEFT */;\n case 'right':\n return 2 /* RIGHT */;\n case 'inline-start':\n return 3 /* INLINE_START */;\n case 'inline-end':\n return 4 /* INLINE_END */;\n }\n return 0 /* NONE */;\n }\n };\n\n var letterSpacing = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'normal') {\n return 0;\n }\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 15 /* DIMENSION_TOKEN */) {\n return token.number;\n }\n return 0;\n }\n };\n\n var LINE_BREAK;\n (function (LINE_BREAK) {\n LINE_BREAK[\"NORMAL\"] = \"normal\";\n LINE_BREAK[\"STRICT\"] = \"strict\";\n })(LINE_BREAK || (LINE_BREAK = {}));\n var lineBreak = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, lineBreak) {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n };\n\n var lineHeight = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n };\n var computeLineHeight = function (token, fontSize) {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n }\n else if (token.type === 17 /* NUMBER_TOKEN */) {\n return fontSize * token.number;\n }\n else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n return fontSize;\n };\n\n var listStyleImage = {\n name: 'list-style-image',\n initialValue: 'none',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n return image.parse(context, token);\n }\n };\n\n var listStylePosition = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'inside':\n return 0 /* INSIDE */;\n case 'outside':\n default:\n return 1 /* OUTSIDE */;\n }\n }\n };\n\n var listStyleType = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, type) {\n switch (type) {\n case 'disc':\n return 0 /* DISC */;\n case 'circle':\n return 1 /* CIRCLE */;\n case 'square':\n return 2 /* SQUARE */;\n case 'decimal':\n return 3 /* DECIMAL */;\n case 'cjk-decimal':\n return 4 /* CJK_DECIMAL */;\n case 'decimal-leading-zero':\n return 5 /* DECIMAL_LEADING_ZERO */;\n case 'lower-roman':\n return 6 /* LOWER_ROMAN */;\n case 'upper-roman':\n return 7 /* UPPER_ROMAN */;\n case 'lower-greek':\n return 8 /* LOWER_GREEK */;\n case 'lower-alpha':\n return 9 /* LOWER_ALPHA */;\n case 'upper-alpha':\n return 10 /* UPPER_ALPHA */;\n case 'arabic-indic':\n return 11 /* ARABIC_INDIC */;\n case 'armenian':\n return 12 /* ARMENIAN */;\n case 'bengali':\n return 13 /* BENGALI */;\n case 'cambodian':\n return 14 /* CAMBODIAN */;\n case 'cjk-earthly-branch':\n return 15 /* CJK_EARTHLY_BRANCH */;\n case 'cjk-heavenly-stem':\n return 16 /* CJK_HEAVENLY_STEM */;\n case 'cjk-ideographic':\n return 17 /* CJK_IDEOGRAPHIC */;\n case 'devanagari':\n return 18 /* DEVANAGARI */;\n case 'ethiopic-numeric':\n return 19 /* ETHIOPIC_NUMERIC */;\n case 'georgian':\n return 20 /* GEORGIAN */;\n case 'gujarati':\n return 21 /* GUJARATI */;\n case 'gurmukhi':\n return 22 /* GURMUKHI */;\n case 'hebrew':\n return 22 /* HEBREW */;\n case 'hiragana':\n return 23 /* HIRAGANA */;\n case 'hiragana-iroha':\n return 24 /* HIRAGANA_IROHA */;\n case 'japanese-formal':\n return 25 /* JAPANESE_FORMAL */;\n case 'japanese-informal':\n return 26 /* JAPANESE_INFORMAL */;\n case 'kannada':\n return 27 /* KANNADA */;\n case 'katakana':\n return 28 /* KATAKANA */;\n case 'katakana-iroha':\n return 29 /* KATAKANA_IROHA */;\n case 'khmer':\n return 30 /* KHMER */;\n case 'korean-hangul-formal':\n return 31 /* KOREAN_HANGUL_FORMAL */;\n case 'korean-hanja-formal':\n return 32 /* KOREAN_HANJA_FORMAL */;\n case 'korean-hanja-informal':\n return 33 /* KOREAN_HANJA_INFORMAL */;\n case 'lao':\n return 34 /* LAO */;\n case 'lower-armenian':\n return 35 /* LOWER_ARMENIAN */;\n case 'malayalam':\n return 36 /* MALAYALAM */;\n case 'mongolian':\n return 37 /* MONGOLIAN */;\n case 'myanmar':\n return 38 /* MYANMAR */;\n case 'oriya':\n return 39 /* ORIYA */;\n case 'persian':\n return 40 /* PERSIAN */;\n case 'simp-chinese-formal':\n return 41 /* SIMP_CHINESE_FORMAL */;\n case 'simp-chinese-informal':\n return 42 /* SIMP_CHINESE_INFORMAL */;\n case 'tamil':\n return 43 /* TAMIL */;\n case 'telugu':\n return 44 /* TELUGU */;\n case 'thai':\n return 45 /* THAI */;\n case 'tibetan':\n return 46 /* TIBETAN */;\n case 'trad-chinese-formal':\n return 47 /* TRAD_CHINESE_FORMAL */;\n case 'trad-chinese-informal':\n return 48 /* TRAD_CHINESE_INFORMAL */;\n case 'upper-armenian':\n return 49 /* UPPER_ARMENIAN */;\n case 'disclosure-open':\n return 50 /* DISCLOSURE_OPEN */;\n case 'disclosure-closed':\n return 51 /* DISCLOSURE_CLOSED */;\n case 'none':\n default:\n return -1 /* NONE */;\n }\n }\n };\n\n var marginForSide = function (side) { return ({\n name: \"margin-\" + side,\n initialValue: '0',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n }); };\n var marginTop = marginForSide('top');\n var marginRight = marginForSide('right');\n var marginBottom = marginForSide('bottom');\n var marginLeft = marginForSide('left');\n\n var overflow = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (overflow) {\n switch (overflow.value) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'scroll':\n return 2 /* SCROLL */;\n case 'clip':\n return 3 /* CLIP */;\n case 'auto':\n return 4 /* AUTO */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n });\n }\n };\n\n var overflowWrap = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'break-word':\n return \"break-word\" /* BREAK_WORD */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n };\n\n var paddingForSide = function (side) { return ({\n name: \"padding-\" + side,\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length-percentage'\n }); };\n var paddingTop = paddingForSide('top');\n var paddingRight = paddingForSide('right');\n var paddingBottom = paddingForSide('bottom');\n var paddingLeft = paddingForSide('left');\n\n var textAlign = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textAlign) {\n switch (textAlign) {\n case 'right':\n return 2 /* RIGHT */;\n case 'center':\n case 'justify':\n return 1 /* CENTER */;\n case 'left':\n default:\n return 0 /* LEFT */;\n }\n }\n };\n\n var position = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'relative':\n return 1 /* RELATIVE */;\n case 'absolute':\n return 2 /* ABSOLUTE */;\n case 'fixed':\n return 3 /* FIXED */;\n case 'sticky':\n return 4 /* STICKY */;\n }\n return 0 /* STATIC */;\n }\n };\n\n var textShadow = {\n name: 'text-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else {\n shadow.blur = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n };\n\n var textTransform = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textTransform) {\n switch (textTransform) {\n case 'uppercase':\n return 2 /* UPPERCASE */;\n case 'lowercase':\n return 1 /* LOWERCASE */;\n case 'capitalize':\n return 3 /* CAPITALIZE */;\n }\n return 0 /* NONE */;\n }\n };\n\n var transform$1 = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n if (token.type === 18 /* FUNCTION */) {\n var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported transform function \\\"\" + token.name + \"\\\"\");\n }\n return transformFunction(token.values);\n }\n return null;\n }\n };\n var matrix = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n return values.length === 6 ? values : null;\n };\n // doesn't support 3D transforms at the moment\n var matrix3d = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n var a1 = values[0], b1 = values[1]; values[2]; values[3]; var a2 = values[4], b2 = values[5]; values[6]; values[7]; values[8]; values[9]; values[10]; values[11]; var a4 = values[12], b4 = values[13]; values[14]; values[15];\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n };\n var SUPPORTED_TRANSFORM_FUNCTIONS = {\n matrix: matrix,\n matrix3d: matrix3d\n };\n\n var DEFAULT_VALUE = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n };\n var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];\n var transformOrigin = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var origins = tokens.filter(isLengthPercentage);\n if (origins.length !== 2) {\n return DEFAULT;\n }\n return [origins[0], origins[1]];\n }\n };\n\n var visibility = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, visibility) {\n switch (visibility) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'collapse':\n return 2 /* COLLAPSE */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n }\n };\n\n var WORD_BREAK;\n (function (WORD_BREAK) {\n WORD_BREAK[\"NORMAL\"] = \"normal\";\n WORD_BREAK[\"BREAK_ALL\"] = \"break-all\";\n WORD_BREAK[\"KEEP_ALL\"] = \"keep-all\";\n })(WORD_BREAK || (WORD_BREAK = {}));\n var wordBreak = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, wordBreak) {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n };\n\n var zIndex = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */) {\n return { auto: true, order: 0 };\n }\n if (isNumberToken(token)) {\n return { auto: false, order: token.number };\n }\n throw new Error(\"Invalid z-index number parsed\");\n }\n };\n\n var time = {\n name: 'time',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n throw new Error(\"Unsupported time type\");\n }\n };\n\n var opacity = {\n name: 'opacity',\n initialValue: '1',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n };\n\n var textDecorationColor = {\n name: \"text-decoration-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var textDecorationLine = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens\n .filter(isIdentToken)\n .map(function (token) {\n switch (token.value) {\n case 'underline':\n return 1 /* UNDERLINE */;\n case 'overline':\n return 2 /* OVERLINE */;\n case 'line-through':\n return 3 /* LINE_THROUGH */;\n case 'none':\n return 4 /* BLINK */;\n }\n return 0 /* NONE */;\n })\n .filter(function (line) { return line !== 0 /* NONE */; });\n }\n };\n\n var fontFamily = {\n name: \"font-family\",\n initialValue: '',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var accumulator = [];\n var results = [];\n tokens.forEach(function (token) {\n switch (token.type) {\n case 20 /* IDENT_TOKEN */:\n case 0 /* STRING_TOKEN */:\n accumulator.push(token.value);\n break;\n case 17 /* NUMBER_TOKEN */:\n accumulator.push(token.number.toString());\n break;\n case 4 /* COMMA_TOKEN */:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map(function (result) { return (result.indexOf(' ') === -1 ? result : \"'\" + result + \"'\"); });\n }\n };\n\n var fontSize = {\n name: \"font-size\",\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length'\n };\n\n var fontWeight = {\n name: 'font-weight',\n initialValue: 'normal',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n return 400;\n }\n };\n\n var fontVariant = {\n name: 'font-variant',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (token) { return token.value; });\n }\n };\n\n var fontStyle = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'oblique':\n return \"oblique\" /* OBLIQUE */;\n case 'italic':\n return \"italic\" /* ITALIC */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n };\n\n var contains = function (bit, value) { return (bit & value) !== 0; };\n\n var content = {\n name: 'content',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens;\n }\n };\n\n var counterIncrement = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var increments = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (counter.type === 20 /* IDENT_TOKEN */) {\n var increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({ counter: counter.value, increment: increment });\n }\n }\n return increments;\n }\n };\n\n var counterReset = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var resets = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n var reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({ counter: counter.value, reset: reset });\n }\n }\n return resets;\n }\n };\n\n var duration = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (context, tokens) {\n return tokens.filter(isDimensionToken).map(function (token) { return time.parse(context, token); });\n }\n };\n\n var quotes = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var quotes = [];\n var filtered = tokens.filter(isStringToken);\n if (filtered.length % 2 !== 0) {\n return null;\n }\n for (var i = 0; i < filtered.length; i += 2) {\n var open_1 = filtered[i].value;\n var close_1 = filtered[i + 1].value;\n quotes.push({ open: open_1, close: close_1 });\n }\n return quotes;\n }\n };\n var getQuote = function (quotes, depth, open) {\n if (!quotes) {\n return '';\n }\n var quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n return open ? quote.open : quote.close;\n };\n\n var boxShadow = {\n name: 'box-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n }\n else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else if (c === 2) {\n shadow.blur = token;\n }\n else {\n shadow.spread = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n };\n\n var paintOrder = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var DEFAULT_VALUE = [0 /* FILL */, 1 /* STROKE */, 2 /* MARKERS */];\n var layers = [];\n tokens.filter(isIdentToken).forEach(function (token) {\n switch (token.value) {\n case 'stroke':\n layers.push(1 /* STROKE */);\n break;\n case 'fill':\n layers.push(0 /* FILL */);\n break;\n case 'markers':\n layers.push(2 /* MARKERS */);\n break;\n }\n });\n DEFAULT_VALUE.forEach(function (value) {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n return layers;\n }\n };\n\n var webkitTextStrokeColor = {\n name: \"-webkit-text-stroke-color\",\n initialValue: 'currentcolor',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var webkitTextStrokeWidth = {\n name: \"-webkit-text-stroke-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n };\n\n var CSSParsedDeclaration = /** @class */ (function () {\n function CSSParsedDeclaration(context, declaration) {\n var _a, _b;\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n var overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(context, textDecorationColor, (_a = declaration.textDecorationColor) !== null && _a !== void 0 ? _a : declaration.color);\n this.textDecorationLine = parse(context, textDecorationLine, (_b = declaration.textDecorationLine) !== null && _b !== void 0 ? _b : declaration.textDecoration);\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform$1, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n CSSParsedDeclaration.prototype.isVisible = function () {\n return this.display > 0 && this.opacity > 0 && this.visibility === 0 /* VISIBLE */;\n };\n CSSParsedDeclaration.prototype.isTransparent = function () {\n return isTransparent(this.backgroundColor);\n };\n CSSParsedDeclaration.prototype.isTransformed = function () {\n return this.transform !== null;\n };\n CSSParsedDeclaration.prototype.isPositioned = function () {\n return this.position !== 0 /* STATIC */;\n };\n CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {\n return this.isPositioned() && !this.zIndex.auto;\n };\n CSSParsedDeclaration.prototype.isFloating = function () {\n return this.float !== 0 /* NONE */;\n };\n CSSParsedDeclaration.prototype.isInlineLevel = function () {\n return (contains(this.display, 4 /* INLINE */) ||\n contains(this.display, 33554432 /* INLINE_BLOCK */) ||\n contains(this.display, 268435456 /* INLINE_FLEX */) ||\n contains(this.display, 536870912 /* INLINE_GRID */) ||\n contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||\n contains(this.display, 134217728 /* INLINE_TABLE */));\n };\n return CSSParsedDeclaration;\n }());\n var CSSParsedPseudoDeclaration = /** @class */ (function () {\n function CSSParsedPseudoDeclaration(context, declaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n return CSSParsedPseudoDeclaration;\n }());\n var CSSParsedCounterDeclaration = /** @class */ (function () {\n function CSSParsedCounterDeclaration(context, declaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n return CSSParsedCounterDeclaration;\n }());\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var parse = function (context, descriptor, style) {\n var tokenizer = new Tokenizer();\n var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n var parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case 2 /* IDENT_VALUE */:\n var token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case 0 /* VALUE */:\n return descriptor.parse(context, parser.parseComponentValue());\n case 1 /* LIST */:\n return descriptor.parse(context, parser.parseComponentValues());\n case 4 /* TOKEN_VALUE */:\n return parser.parseComponentValue();\n case 3 /* TYPE_VALUE */:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return color$1.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n var length_1 = parser.parseComponentValue();\n return isLength(length_1) ? length_1 : ZERO_LENGTH;\n case 'length-percentage':\n var value_1 = parser.parseComponentValue();\n return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n };\n\n var elementDebuggerAttribute = 'data-html2canvas-debug';\n var getElementDebugType = function (element) {\n var attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return 1 /* ALL */;\n case 'clone':\n return 2 /* CLONE */;\n case 'parse':\n return 3 /* PARSE */;\n case 'render':\n return 4 /* RENDER */;\n default:\n return 0 /* NONE */;\n }\n };\n var isDebugging = function (element, type) {\n var elementType = getElementDebugType(element);\n return elementType === 1 /* ALL */ || type === elementType;\n };\n\n var ElementContainer = /** @class */ (function () {\n function ElementContainer(context, element) {\n this.context = context;\n this.textNodes = [];\n this.elements = [];\n this.flags = 0;\n if (isDebugging(element, 3 /* PARSE */)) {\n debugger;\n }\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some(function (duration) { return duration > 0; })) {\n element.style.animationDuration = '0s';\n }\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n this.bounds = parseBounds(this.context, element);\n if (isDebugging(element, 4 /* RENDER */)) {\n this.flags |= 16 /* DEBUG_RENDER */;\n }\n }\n return ElementContainer;\n }());\n\n /*\n * text-segmentation 1.0.3 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var base64 = 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\n\n /*\n * utrie 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$1 = 0; i$1 < chars$1.length; i$1++) {\n lookup$1[chars$1.charCodeAt(i$1)] = i$1;\n }\n var decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1[base64.charCodeAt(i)];\n encoded2 = lookup$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return buffer;\n };\n var polyUint16Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n var polyUint32Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n\n /** Shift size for getting the index-2 table offset. */\n var UTRIE2_SHIFT_2 = 5;\n /** Shift size for getting the index-1 table offset. */\n var UTRIE2_SHIFT_1 = 6 + 5;\n /**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\n var UTRIE2_INDEX_SHIFT = 2;\n /**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\n var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n /**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\n var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n /** Number of entries in a data block. 32=0x20 */\n var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n /** Mask for getting the lower bits for the in-data-block offset. */\n var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n /** Count the lengths of both BMP pieces. 2080=0x820 */\n var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n /**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n /**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\n var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n /**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n /** Number of entries in an index-2 block. 64=0x40 */\n var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n /** Mask for getting the lower bits for the in-index-2-block offset. */\n var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n var slice16 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n };\n var slice32 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n };\n var createTrieFromBase64 = function (base64, _byteLength) {\n var buffer = decode(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n };\n var Trie = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n }());\n\n /*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n\n var Prepend = 1;\n var CR = 2;\n var LF = 3;\n var Control = 4;\n var Extend = 5;\n var SpacingMark = 7;\n var L = 8;\n var V = 9;\n var T = 10;\n var LV = 11;\n var LVT = 12;\n var ZWJ = 13;\n var Extended_Pictographic = 14;\n var RI = 15;\n var toCodePoints = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n };\n var fromCodePoint = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n var UnicodeTrie = createTrieFromBase64(base64);\n var BREAK_NOT_ALLOWED = '×';\n var BREAK_ALLOWED = '÷';\n var codePointToClass = function (codePoint) { return UnicodeTrie.get(codePoint); };\n var _graphemeBreakAtIndex = function (_codePoints, classTypes, index) {\n var prevIndex = index - 2;\n var prev = classTypes[prevIndex];\n var current = classTypes[index - 1];\n var next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n var countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n return BREAK_ALLOWED;\n };\n var GraphemeBreaker = function (str) {\n var codePoints = toCodePoints(str);\n var length = codePoints.length;\n var index = 0;\n var lastEnd = 0;\n var classTypes = codePoints.map(codePointToClass);\n return {\n next: function () {\n if (index >= length) {\n return { done: true, value: null };\n }\n var graphemeBreak = BREAK_NOT_ALLOWED;\n while (index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED) { }\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n var value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n };\n var splitGraphemes = function (str) {\n var breaker = GraphemeBreaker(str);\n var graphemes = [];\n var bk;\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n return graphemes;\n };\n\n var testRangeBounds = function (document) {\n var TEST_HEIGHT = 123;\n if (document.createRange) {\n var range = document.createRange();\n if (range.getBoundingClientRect) {\n var testElement = document.createElement('boundtest');\n testElement.style.height = TEST_HEIGHT + \"px\";\n testElement.style.display = 'block';\n document.body.appendChild(testElement);\n range.selectNode(testElement);\n var rangeBounds = range.getBoundingClientRect();\n var rangeHeight = Math.round(rangeBounds.height);\n document.body.removeChild(testElement);\n if (rangeHeight === TEST_HEIGHT) {\n return true;\n }\n }\n }\n return false;\n };\n var testIOSLineBreak = function (document) {\n var testElement = document.createElement('boundtest');\n testElement.style.width = '50px';\n testElement.style.display = 'block';\n testElement.style.fontSize = '12px';\n testElement.style.letterSpacing = '0px';\n testElement.style.wordSpacing = '0px';\n document.body.appendChild(testElement);\n var range = document.createRange();\n testElement.innerHTML = typeof ''.repeat === 'function' ? '👨'.repeat(10) : '';\n var node = testElement.firstChild;\n var textList = toCodePoints$1(node.data).map(function (i) { return fromCodePoint$1(i); });\n var offset = 0;\n var prev = {};\n // ios 13 does not handle range getBoundingClientRect line changes correctly #2177\n var supports = textList.every(function (text, i) {\n range.setStart(node, offset);\n range.setEnd(node, offset + text.length);\n var rect = range.getBoundingClientRect();\n offset += text.length;\n var boundAhead = rect.x > prev.x || rect.y > prev.y;\n prev = rect;\n if (i === 0) {\n return true;\n }\n return boundAhead;\n });\n document.body.removeChild(testElement);\n return supports;\n };\n var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };\n var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };\n var testSVG = function (document) {\n var img = new Image();\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return false;\n }\n img.src = \"data:image/svg+xml,\";\n try {\n ctx.drawImage(img, 0, 0);\n canvas.toDataURL();\n }\n catch (e) {\n return false;\n }\n return true;\n };\n var isGreenPixel = function (data) {\n return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;\n };\n var testForeignObject = function (document) {\n var canvas = document.createElement('canvas');\n var size = 100;\n canvas.width = size;\n canvas.height = size;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return Promise.reject(false);\n }\n ctx.fillStyle = 'rgb(0, 255, 0)';\n ctx.fillRect(0, 0, size, size);\n var img = new Image();\n var greenImageSrc = canvas.toDataURL();\n img.src = greenImageSrc;\n var svg = createForeignObjectSVG(size, size, 0, 0, img);\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n return loadSerializedSVG$1(svg)\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n var data = ctx.getImageData(0, 0, size, size).data;\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n var node = document.createElement('div');\n node.style.backgroundImage = \"url(\" + greenImageSrc + \")\";\n node.style.height = size + \"px\";\n // Firefox 55 does not render inline tags\n return isGreenPixel(data)\n ? loadSerializedSVG$1(createForeignObjectSVG(size, size, 0, 0, node))\n : Promise.reject(false);\n })\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n // Edge does not render background-images\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\n })\n .catch(function () { return false; });\n };\n var createForeignObjectSVG = function (width, height, x, y, node) {\n var xmlns = 'http://www.w3.org/2000/svg';\n var svg = document.createElementNS(xmlns, 'svg');\n var foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttributeNS(null, 'width', width.toString());\n svg.setAttributeNS(null, 'height', height.toString());\n foreignObject.setAttributeNS(null, 'width', '100%');\n foreignObject.setAttributeNS(null, 'height', '100%');\n foreignObject.setAttributeNS(null, 'x', x.toString());\n foreignObject.setAttributeNS(null, 'y', y.toString());\n foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svg;\n };\n var loadSerializedSVG$1 = function (svg) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () { return resolve(img); };\n img.onerror = reject;\n img.src = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(new XMLSerializer().serializeToString(svg));\n });\n };\n var FEATURES = {\n get SUPPORT_RANGE_BOUNDS() {\n var value = testRangeBounds(document);\n Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });\n return value;\n },\n get SUPPORT_WORD_BREAKING() {\n var value = FEATURES.SUPPORT_RANGE_BOUNDS && testIOSLineBreak(document);\n Object.defineProperty(FEATURES, 'SUPPORT_WORD_BREAKING', { value: value });\n return value;\n },\n get SUPPORT_SVG_DRAWING() {\n var value = testSVG(document);\n Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_FOREIGNOBJECT_DRAWING() {\n var value = typeof Array.from === 'function' && typeof window.fetch === 'function'\n ? testForeignObject(document)\n : Promise.resolve(false);\n Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_CORS_IMAGES() {\n var value = testCORS();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });\n return value;\n },\n get SUPPORT_RESPONSE_TYPE() {\n var value = testResponseType();\n Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });\n return value;\n },\n get SUPPORT_CORS_XHR() {\n var value = 'withCredentials' in new XMLHttpRequest();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value });\n return value;\n },\n get SUPPORT_NATIVE_TEXT_SEGMENTATION() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = !!(typeof Intl !== 'undefined' && Intl.Segmenter);\n Object.defineProperty(FEATURES, 'SUPPORT_NATIVE_TEXT_SEGMENTATION', { value: value });\n return value;\n }\n };\n\n var TextBounds = /** @class */ (function () {\n function TextBounds(text, bounds) {\n this.text = text;\n this.bounds = bounds;\n }\n return TextBounds;\n }());\n var parseTextBounds = function (context, value, styles, node) {\n var textList = breakText(value, styles);\n var textBounds = [];\n var offset = 0;\n textList.forEach(function (text) {\n if (styles.textDecorationLine.length || text.trim().length > 0) {\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\n var clientRects = createRange(node, offset, text.length).getClientRects();\n if (clientRects.length > 1) {\n var subSegments = segmentGraphemes(text);\n var subOffset_1 = 0;\n subSegments.forEach(function (subSegment) {\n textBounds.push(new TextBounds(subSegment, Bounds.fromDOMRectList(context, createRange(node, subOffset_1 + offset, subSegment.length).getClientRects())));\n subOffset_1 += subSegment.length;\n });\n }\n else {\n textBounds.push(new TextBounds(text, Bounds.fromDOMRectList(context, clientRects)));\n }\n }\n else {\n var replacementNode = node.splitText(text.length);\n textBounds.push(new TextBounds(text, getWrapperBounds(context, node)));\n node = replacementNode;\n }\n }\n else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\n node = node.splitText(text.length);\n }\n offset += text.length;\n });\n return textBounds;\n };\n var getWrapperBounds = function (context, node) {\n var ownerDocument = node.ownerDocument;\n if (ownerDocument) {\n var wrapper = ownerDocument.createElement('html2canvaswrapper');\n wrapper.appendChild(node.cloneNode(true));\n var parentNode = node.parentNode;\n if (parentNode) {\n parentNode.replaceChild(wrapper, node);\n var bounds = parseBounds(context, wrapper);\n if (wrapper.firstChild) {\n parentNode.replaceChild(wrapper.firstChild, wrapper);\n }\n return bounds;\n }\n }\n return Bounds.EMPTY;\n };\n var createRange = function (node, offset, length) {\n var ownerDocument = node.ownerDocument;\n if (!ownerDocument) {\n throw new Error('Node has no owner document');\n }\n var range = ownerDocument.createRange();\n range.setStart(node, offset);\n range.setEnd(node, offset + length);\n return range;\n };\n var segmentGraphemes = function (value) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, { granularity: 'grapheme' });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return splitGraphemes(value);\n };\n var segmentWords = function (value, styles) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, {\n granularity: 'word'\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return breakWords(value, styles);\n };\n var breakText = function (value, styles) {\n return styles.letterSpacing !== 0 ? segmentGraphemes(value) : segmentWords(value, styles);\n };\n // https://drafts.csswg.org/css-text/#word-separator\n var wordSeparators = [0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091];\n var breakWords = function (str, styles) {\n var breaker = LineBreaker(str, {\n lineBreak: styles.lineBreak,\n wordBreak: styles.overflowWrap === \"break-word\" /* BREAK_WORD */ ? 'break-word' : styles.wordBreak\n });\n var words = [];\n var bk;\n var _loop_1 = function () {\n if (bk.value) {\n var value = bk.value.slice();\n var codePoints = toCodePoints$1(value);\n var word_1 = '';\n codePoints.forEach(function (codePoint) {\n if (wordSeparators.indexOf(codePoint) === -1) {\n word_1 += fromCodePoint$1(codePoint);\n }\n else {\n if (word_1.length) {\n words.push(word_1);\n }\n words.push(fromCodePoint$1(codePoint));\n word_1 = '';\n }\n });\n if (word_1.length) {\n words.push(word_1);\n }\n }\n };\n while (!(bk = breaker.next()).done) {\n _loop_1();\n }\n return words;\n };\n\n var TextContainer = /** @class */ (function () {\n function TextContainer(context, node, styles) {\n this.text = transform(node.data, styles.textTransform);\n this.textBounds = parseTextBounds(context, this.text, styles, node);\n }\n return TextContainer;\n }());\n var transform = function (text, transform) {\n switch (transform) {\n case 1 /* LOWERCASE */:\n return text.toLowerCase();\n case 3 /* CAPITALIZE */:\n return text.replace(CAPITALIZE, capitalize);\n case 2 /* UPPERCASE */:\n return text.toUpperCase();\n default:\n return text;\n }\n };\n var CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\n var capitalize = function (m, p1, p2) {\n if (m.length > 0) {\n return p1 + p2.toUpperCase();\n }\n return m;\n };\n\n var ImageElementContainer = /** @class */ (function (_super) {\n __extends(ImageElementContainer, _super);\n function ImageElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n _this.src = img.currentSrc || img.src;\n _this.intrinsicWidth = img.naturalWidth;\n _this.intrinsicHeight = img.naturalHeight;\n _this.context.cache.addImage(_this.src);\n return _this;\n }\n return ImageElementContainer;\n }(ElementContainer));\n\n var CanvasElementContainer = /** @class */ (function (_super) {\n __extends(CanvasElementContainer, _super);\n function CanvasElementContainer(context, canvas) {\n var _this = _super.call(this, context, canvas) || this;\n _this.canvas = canvas;\n _this.intrinsicWidth = canvas.width;\n _this.intrinsicHeight = canvas.height;\n return _this;\n }\n return CanvasElementContainer;\n }(ElementContainer));\n\n var SVGElementContainer = /** @class */ (function (_super) {\n __extends(SVGElementContainer, _super);\n function SVGElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n var s = new XMLSerializer();\n var bounds = parseBounds(context, img);\n img.setAttribute('width', bounds.width + \"px\");\n img.setAttribute('height', bounds.height + \"px\");\n _this.svg = \"data:image/svg+xml,\" + encodeURIComponent(s.serializeToString(img));\n _this.intrinsicWidth = img.width.baseVal.value;\n _this.intrinsicHeight = img.height.baseVal.value;\n _this.context.cache.addImage(_this.svg);\n return _this;\n }\n return SVGElementContainer;\n }(ElementContainer));\n\n var LIElementContainer = /** @class */ (function (_super) {\n __extends(LIElementContainer, _super);\n function LIElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return LIElementContainer;\n }(ElementContainer));\n\n var OLElementContainer = /** @class */ (function (_super) {\n __extends(OLElementContainer, _super);\n function OLElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.start = element.start;\n _this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;\n return _this;\n }\n return OLElementContainer;\n }(ElementContainer));\n\n var CHECKBOX_BORDER_RADIUS = [\n {\n type: 15 /* DIMENSION_TOKEN */,\n flags: 0,\n unit: 'px',\n number: 3\n }\n ];\n var RADIO_BORDER_RADIUS = [\n {\n type: 16 /* PERCENTAGE_TOKEN */,\n flags: 0,\n number: 50\n }\n ];\n var reformatInputBounds = function (bounds) {\n if (bounds.width > bounds.height) {\n return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);\n }\n else if (bounds.width < bounds.height) {\n return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);\n }\n return bounds;\n };\n var getInputValue = function (node) {\n var value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\\u2022') : node.value;\n return value.length === 0 ? node.placeholder || '' : value;\n };\n var CHECKBOX = 'checkbox';\n var RADIO = 'radio';\n var PASSWORD = 'password';\n var INPUT_COLOR = 0x2a2a2aff;\n var InputElementContainer = /** @class */ (function (_super) {\n __extends(InputElementContainer, _super);\n function InputElementContainer(context, input) {\n var _this = _super.call(this, context, input) || this;\n _this.type = input.type.toLowerCase();\n _this.checked = input.checked;\n _this.value = getInputValue(input);\n if (_this.type === CHECKBOX || _this.type === RADIO) {\n _this.styles.backgroundColor = 0xdededeff;\n _this.styles.borderTopColor =\n _this.styles.borderRightColor =\n _this.styles.borderBottomColor =\n _this.styles.borderLeftColor =\n 0xa5a5a5ff;\n _this.styles.borderTopWidth =\n _this.styles.borderRightWidth =\n _this.styles.borderBottomWidth =\n _this.styles.borderLeftWidth =\n 1;\n _this.styles.borderTopStyle =\n _this.styles.borderRightStyle =\n _this.styles.borderBottomStyle =\n _this.styles.borderLeftStyle =\n 1 /* SOLID */;\n _this.styles.backgroundClip = [0 /* BORDER_BOX */];\n _this.styles.backgroundOrigin = [0 /* BORDER_BOX */];\n _this.bounds = reformatInputBounds(_this.bounds);\n }\n switch (_this.type) {\n case CHECKBOX:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n CHECKBOX_BORDER_RADIUS;\n break;\n case RADIO:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n RADIO_BORDER_RADIUS;\n break;\n }\n return _this;\n }\n return InputElementContainer;\n }(ElementContainer));\n\n var SelectElementContainer = /** @class */ (function (_super) {\n __extends(SelectElementContainer, _super);\n function SelectElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n var option = element.options[element.selectedIndex || 0];\n _this.value = option ? option.text || '' : '';\n return _this;\n }\n return SelectElementContainer;\n }(ElementContainer));\n\n var TextareaElementContainer = /** @class */ (function (_super) {\n __extends(TextareaElementContainer, _super);\n function TextareaElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return TextareaElementContainer;\n }(ElementContainer));\n\n var IFrameElementContainer = /** @class */ (function (_super) {\n __extends(IFrameElementContainer, _super);\n function IFrameElementContainer(context, iframe) {\n var _this = _super.call(this, context, iframe) || this;\n _this.src = iframe.src;\n _this.width = parseInt(iframe.width, 10) || 0;\n _this.height = parseInt(iframe.height, 10) || 0;\n _this.backgroundColor = _this.styles.backgroundColor;\n try {\n if (iframe.contentWindow &&\n iframe.contentWindow.document &&\n iframe.contentWindow.document.documentElement) {\n _this.tree = parseTree(context, iframe.contentWindow.document.documentElement);\n // http://www.w3.org/TR/css3-background/#special-backgrounds\n var documentBackgroundColor = iframe.contentWindow.document.documentElement\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.documentElement).backgroundColor)\n : COLORS.TRANSPARENT;\n var bodyBackgroundColor = iframe.contentWindow.document.body\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.body).backgroundColor)\n : COLORS.TRANSPARENT;\n _this.backgroundColor = isTransparent(documentBackgroundColor)\n ? isTransparent(bodyBackgroundColor)\n ? _this.styles.backgroundColor\n : bodyBackgroundColor\n : documentBackgroundColor;\n }\n }\n catch (e) { }\n return _this;\n }\n return IFrameElementContainer;\n }(ElementContainer));\n\n var LIST_OWNERS = ['OL', 'UL', 'MENU'];\n var parseNodeTree = function (context, node, parent, root) {\n for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {\n nextNode = childNode.nextSibling;\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\n parent.textNodes.push(new TextContainer(context, childNode, parent.styles));\n }\n else if (isElementNode(childNode)) {\n if (isSlotElement(childNode) && childNode.assignedNodes) {\n childNode.assignedNodes().forEach(function (childNode) { return parseNodeTree(context, childNode, parent, root); });\n }\n else {\n var container = createContainer(context, childNode);\n if (container.styles.isVisible()) {\n if (createsRealStackingContext(childNode, container, root)) {\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n }\n else if (createsStackingContext(container.styles)) {\n container.flags |= 2 /* CREATES_STACKING_CONTEXT */;\n }\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\n container.flags |= 8 /* IS_LIST_OWNER */;\n }\n parent.elements.push(container);\n childNode.slot;\n if (childNode.shadowRoot) {\n parseNodeTree(context, childNode.shadowRoot, container, root);\n }\n else if (!isTextareaElement(childNode) &&\n !isSVGElement(childNode) &&\n !isSelectElement(childNode)) {\n parseNodeTree(context, childNode, container, root);\n }\n }\n }\n }\n }\n };\n var createContainer = function (context, element) {\n if (isImageElement(element)) {\n return new ImageElementContainer(context, element);\n }\n if (isCanvasElement(element)) {\n return new CanvasElementContainer(context, element);\n }\n if (isSVGElement(element)) {\n return new SVGElementContainer(context, element);\n }\n if (isLIElement(element)) {\n return new LIElementContainer(context, element);\n }\n if (isOLElement(element)) {\n return new OLElementContainer(context, element);\n }\n if (isInputElement(element)) {\n return new InputElementContainer(context, element);\n }\n if (isSelectElement(element)) {\n return new SelectElementContainer(context, element);\n }\n if (isTextareaElement(element)) {\n return new TextareaElementContainer(context, element);\n }\n if (isIFrameElement(element)) {\n return new IFrameElementContainer(context, element);\n }\n return new ElementContainer(context, element);\n };\n var parseTree = function (context, element) {\n var container = createContainer(context, element);\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n parseNodeTree(context, element, container, container);\n return container;\n };\n var createsRealStackingContext = function (node, container, root) {\n return (container.styles.isPositionedWithZIndex() ||\n container.styles.opacity < 1 ||\n container.styles.isTransformed() ||\n (isBodyElement(node) && root.styles.isTransparent()));\n };\n var createsStackingContext = function (styles) { return styles.isPositioned() || styles.isFloating(); };\n var isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\n var isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\n var isHTMLElementNode = function (node) {\n return isElementNode(node) && typeof node.style !== 'undefined' && !isSVGElementNode(node);\n };\n var isSVGElementNode = function (element) {\n return typeof element.className === 'object';\n };\n var isLIElement = function (node) { return node.tagName === 'LI'; };\n var isOLElement = function (node) { return node.tagName === 'OL'; };\n var isInputElement = function (node) { return node.tagName === 'INPUT'; };\n var isHTMLElement = function (node) { return node.tagName === 'HTML'; };\n var isSVGElement = function (node) { return node.tagName === 'svg'; };\n var isBodyElement = function (node) { return node.tagName === 'BODY'; };\n var isCanvasElement = function (node) { return node.tagName === 'CANVAS'; };\n var isVideoElement = function (node) { return node.tagName === 'VIDEO'; };\n var isImageElement = function (node) { return node.tagName === 'IMG'; };\n var isIFrameElement = function (node) { return node.tagName === 'IFRAME'; };\n var isStyleElement = function (node) { return node.tagName === 'STYLE'; };\n var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; };\n var isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; };\n var isSelectElement = function (node) { return node.tagName === 'SELECT'; };\n var isSlotElement = function (node) { return node.tagName === 'SLOT'; };\n // https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n var isCustomElement = function (node) { return node.tagName.indexOf('-') > 0; };\n\n var CounterState = /** @class */ (function () {\n function CounterState() {\n this.counters = {};\n }\n CounterState.prototype.getCounterValue = function (name) {\n var counter = this.counters[name];\n if (counter && counter.length) {\n return counter[counter.length - 1];\n }\n return 1;\n };\n CounterState.prototype.getCounterValues = function (name) {\n var counter = this.counters[name];\n return counter ? counter : [];\n };\n CounterState.prototype.pop = function (counters) {\n var _this = this;\n counters.forEach(function (counter) { return _this.counters[counter].pop(); });\n };\n CounterState.prototype.parse = function (style) {\n var _this = this;\n var counterIncrement = style.counterIncrement;\n var counterReset = style.counterReset;\n var canReset = true;\n if (counterIncrement !== null) {\n counterIncrement.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n if (counter && entry.increment !== 0) {\n canReset = false;\n if (!counter.length) {\n counter.push(1);\n }\n counter[Math.max(0, counter.length - 1)] += entry.increment;\n }\n });\n }\n var counterNames = [];\n if (canReset) {\n counterReset.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n counterNames.push(entry.counter);\n if (!counter) {\n counter = _this.counters[entry.counter] = [];\n }\n counter.push(entry.reset);\n });\n }\n return counterNames;\n };\n return CounterState;\n }());\n var ROMAN_UPPER = {\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\n values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\n };\n var ARMENIAN = {\n integers: [\n 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90, 80, 70,\n 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'Ք',\n 'Փ',\n 'Ւ',\n 'Ց',\n 'Ր',\n 'Տ',\n 'Վ',\n 'Ս',\n 'Ռ',\n 'Ջ',\n 'Պ',\n 'Չ',\n 'Ո',\n 'Շ',\n 'Ն',\n 'Յ',\n 'Մ',\n 'Ճ',\n 'Ղ',\n 'Ձ',\n 'Հ',\n 'Կ',\n 'Ծ',\n 'Խ',\n 'Լ',\n 'Ի',\n 'Ժ',\n 'Թ',\n 'Ը',\n 'Է',\n 'Զ',\n 'Ե',\n 'Դ',\n 'Գ',\n 'Բ',\n 'Ա'\n ]\n };\n var HEBREW = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20,\n 19, 18, 17, 16, 15, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'י׳',\n 'ט׳',\n 'ח׳',\n 'ז׳',\n 'ו׳',\n 'ה׳',\n 'ד׳',\n 'ג׳',\n 'ב׳',\n 'א׳',\n 'ת',\n 'ש',\n 'ר',\n 'ק',\n 'צ',\n 'פ',\n 'ע',\n 'ס',\n 'נ',\n 'מ',\n 'ל',\n 'כ',\n 'יט',\n 'יח',\n 'יז',\n 'טז',\n 'טו',\n 'י',\n 'ט',\n 'ח',\n 'ז',\n 'ו',\n 'ה',\n 'ד',\n 'ג',\n 'ב',\n 'א'\n ]\n };\n var GEORGIAN = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90,\n 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'ჵ',\n 'ჰ',\n 'ჯ',\n 'ჴ',\n 'ხ',\n 'ჭ',\n 'წ',\n 'ძ',\n 'ც',\n 'ჩ',\n 'შ',\n 'ყ',\n 'ღ',\n 'ქ',\n 'ფ',\n 'ჳ',\n 'ტ',\n 'ს',\n 'რ',\n 'ჟ',\n 'პ',\n 'ო',\n 'ჲ',\n 'ნ',\n 'მ',\n 'ლ',\n 'კ',\n 'ი',\n 'თ',\n 'ჱ',\n 'ზ',\n 'ვ',\n 'ე',\n 'დ',\n 'გ',\n 'ბ',\n 'ა'\n ]\n };\n var createAdditiveCounter = function (value, min, max, symbols, fallback, suffix) {\n if (value < min || value > max) {\n return createCounterText(value, fallback, suffix.length > 0);\n }\n return (symbols.integers.reduce(function (string, integer, index) {\n while (value >= integer) {\n value -= integer;\n string += symbols.values[index];\n }\n return string;\n }, '') + suffix);\n };\n var createCounterStyleWithSymbolResolver = function (value, codePointRangeLength, isNumeric, resolver) {\n var string = '';\n do {\n if (!isNumeric) {\n value--;\n }\n string = resolver(value) + string;\n value /= codePointRangeLength;\n } while (value * codePointRangeLength >= codePointRangeLength);\n return string;\n };\n var createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) {\n var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\n return ((value < 0 ? '-' : '') +\n (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) {\n return fromCodePoint$1(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart);\n }) +\n suffix));\n };\n var createCounterStyleFromSymbols = function (value, symbols, suffix) {\n if (suffix === void 0) { suffix = '. '; }\n var codePointRangeLength = symbols.length;\n return (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function (codePoint) { return symbols[Math.floor(codePoint % codePointRangeLength)]; }) + suffix);\n };\n var CJK_ZEROS = 1 << 0;\n var CJK_TEN_COEFFICIENTS = 1 << 1;\n var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\n var CJK_HUNDRED_COEFFICIENTS = 1 << 3;\n var createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) {\n if (value < -9999 || value > 9999) {\n return createCounterText(value, 4 /* CJK_DECIMAL */, suffix.length > 0);\n }\n var tmp = Math.abs(value);\n var string = suffix;\n if (tmp === 0) {\n return numbers[0] + string;\n }\n for (var digit = 0; tmp > 0 && digit <= 4; digit++) {\n var coefficient = tmp % 10;\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {\n string = numbers[coefficient] + string;\n }\n else if (coefficient > 1 ||\n (coefficient === 1 && digit === 0) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||\n (coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))) {\n string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;\n }\n else if (coefficient === 1 && digit > 0) {\n string = multipliers[digit - 1] + string;\n }\n tmp = Math.floor(tmp / 10);\n }\n return (value < 0 ? negativeSign : '') + string;\n };\n var CHINESE_INFORMAL_MULTIPLIERS = '十百千萬';\n var CHINESE_FORMAL_MULTIPLIERS = '拾佰仟萬';\n var JAPANESE_NEGATIVE = 'マイナス';\n var KOREAN_NEGATIVE = '마이너스';\n var createCounterText = function (value, type, appendSuffix) {\n var defaultSuffix = appendSuffix ? '. ' : '';\n var cjkSuffix = appendSuffix ? '、' : '';\n var koreanSuffix = appendSuffix ? ', ' : '';\n var spaceSuffix = appendSuffix ? ' ' : '';\n switch (type) {\n case 0 /* DISC */:\n return '•' + spaceSuffix;\n case 1 /* CIRCLE */:\n return '◦' + spaceSuffix;\n case 2 /* SQUARE */:\n return '◾' + spaceSuffix;\n case 5 /* DECIMAL_LEADING_ZERO */:\n var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n return string.length < 4 ? \"0\" + string : string;\n case 4 /* CJK_DECIMAL */:\n return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix);\n case 6 /* LOWER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 7 /* UPPER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix);\n case 8 /* LOWER_GREEK */:\n return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);\n case 9 /* LOWER_ALPHA */:\n return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);\n case 10 /* UPPER_ALPHA */:\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\n case 11 /* ARABIC_INDIC */:\n return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);\n case 12 /* ARMENIAN */:\n case 49 /* UPPER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix);\n case 35 /* LOWER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 13 /* BENGALI */:\n return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);\n case 14 /* CAMBODIAN */:\n case 30 /* KHMER */:\n return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);\n case 15 /* CJK_EARTHLY_BRANCH */:\n return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix);\n case 16 /* CJK_HEAVENLY_STEM */:\n return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix);\n case 17 /* CJK_IDEOGRAPHIC */:\n case 48 /* TRAD_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 47 /* TRAD_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹貳參肆伍陸柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 42 /* SIMP_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 41 /* SIMP_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹贰叁肆伍陆柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 26 /* JAPANESE_INFORMAL */:\n return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0);\n case 25 /* JAPANESE_FORMAL */:\n return createCJKCounter(value, '零壱弐参四伍六七八九', '拾百千万', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 31 /* KOREAN_HANGUL_FORMAL */:\n return createCJKCounter(value, '영일이삼사오육칠팔구', '십백천만', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 33 /* KOREAN_HANJA_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0);\n case 32 /* KOREAN_HANJA_FORMAL */:\n return createCJKCounter(value, '零壹貳參四五六七八九', '拾百千', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 18 /* DEVANAGARI */:\n return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);\n case 20 /* GEORGIAN */:\n return createAdditiveCounter(value, 1, 19999, GEORGIAN, 3 /* DECIMAL */, defaultSuffix);\n case 21 /* GUJARATI */:\n return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);\n case 22 /* GURMUKHI */:\n return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);\n case 22 /* HEBREW */:\n return createAdditiveCounter(value, 1, 10999, HEBREW, 3 /* DECIMAL */, defaultSuffix);\n case 23 /* HIRAGANA */:\n return createCounterStyleFromSymbols(value, 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん');\n case 24 /* HIRAGANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす');\n case 27 /* KANNADA */:\n return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);\n case 28 /* KATAKANA */:\n return createCounterStyleFromSymbols(value, 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン', cjkSuffix);\n case 29 /* KATAKANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス', cjkSuffix);\n case 34 /* LAO */:\n return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);\n case 37 /* MONGOLIAN */:\n return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);\n case 38 /* MYANMAR */:\n return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);\n case 39 /* ORIYA */:\n return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);\n case 40 /* PERSIAN */:\n return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);\n case 43 /* TAMIL */:\n return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);\n case 44 /* TELUGU */:\n return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);\n case 45 /* THAI */:\n return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);\n case 46 /* TIBETAN */:\n return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);\n case 3 /* DECIMAL */:\n default:\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n }\n };\n\n var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n var DocumentCloner = /** @class */ (function () {\n function DocumentCloner(context, element, options) {\n this.context = context;\n this.options = options;\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false);\n }\n DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {\n var _this = this;\n var iframe = createIFrameContainer(ownerDocument, windowSize);\n if (!iframe.contentWindow) {\n return Promise.reject(\"Unable to find iframe window\");\n }\n var scrollX = ownerDocument.defaultView.pageXOffset;\n var scrollY = ownerDocument.defaultView.pageYOffset;\n var cloneWindow = iframe.contentWindow;\n var documentClone = cloneWindow.document;\n /* Chrome doesn't detect relative background-images assigned in inline