{"version":3,"sources":["webpack:///./node_modules/tw-elements/dist/js/chart.es.js"],"names":["ct","_o","i","T","z","Array","isArray","t","Object","prototype","toString","call","slice","D","N","Number","isFinite","Q","C","yo","endsWith","parseFloat","an","I","e","apply","E","s","n","o","r","length","keys","ze","datasetIndex","index","Be","map","create","ln","indexOf","vo","ne","merger","a","l","c","Qt","Mo","hasOwnProperty","Xi","x","y","_t","ko","wo","split","push","Oi","charAt","toUpperCase","et","yt","Ui","size","has","So","type","B","Math","PI","F","Po","Ve","POSITIVE_INFINITY","Co","V","$t","Ki","tt","log10","lt","sign","qi","round","te","pow","floor","Do","sqrt","sort","pop","Bt","isNaN","abs","Oo","cn","min","max","nt","Ai","Gi","hn","atan2","angle","distance","bi","Ao","Z","oe","h","Y","To","ut","Ti","lo","hi","ft","Lo","Ro","dn","Eo","_chartjs","listeners","defineProperty","configurable","enumerable","value","forEach","this","Zi","splice","un","Set","add","from","fn","window","requestAnimationFrame","gn","Fo","clearTimeout","setTimeout","Li","U","Io","pn","_sorted","iScale","_parsed","axis","minDefined","d","maxDefined","u","getUserBounds","getPixelForValue","start","count","mn","xScale","yScale","_scaleRanges","xmin","xmax","ymin","ymax","assign","we","Ji","sin","Qi","ee","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInBounce","easeOutBounce","easeInOutBounce","he","mt","Gt","xt","dt","ts","J","0","1","2","3","4","5","6","7","8","9","A","b","f","xi","zo","Bo","Se","Vo","g","Wo","No","Ho","jo","bn","$o","Yo","Xo","Ri","Ei","Fi","Uo","Ko","xn","qo","exec","Go","Zo","es","X","W","S","R","P","O","M","L","K","G","H","is","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","Qe","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","Jo","replace","parseInt","Pe","Qo","transparent","toLowerCase","tr","er","ir","ni","Ft","sr","Ce","_n","ss","nr","We","_rgb","_valid","rgb","yn","vn","ns","oi","saturate","darken","hexString","At","_i","ie","ri","or","animation","backgroundColor","borderColor","color","datasets","devicePixelRatio","chart","platform","getDevicePixelRatio","elements","events","font","family","style","lineHeight","weight","hover","hoverBackgroundColor","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","includeInvisible","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","drawActiveElementsOnTop","describe","defineProperties","writable","_scriptable","startsWith","_indexable","_fallback","rr","Ne","measureText","width","ar","data","garbageCollect","save","restore","wt","currentDevicePixelRatio","os","getContext","resetTransform","clearRect","height","yi","Mn","pointStyle","rotation","radius","translate","rotate","drawImage","beginPath","ellipse","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","re","left","right","top","bottom","clip","Ue","lr","cr","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","Tt","strokeWidth","strokeColor","string","hr","strokeStyle","lineWidth","strokeText","maxWidth","fillText","dr","translation","fillStyle","textAlign","textBaseline","strikethrough","underline","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","decorationWidth","ae","w","topLeft","bottomLeft","bottomRight","topRight","ur","RegExp","fr","gr","match","pr","Ii","kn","Dt","$","console","warn","Zt","cacheable","mr","vt","zi","Cn","Symbol","toStringTag","_cacheable","_scopes","_rootScopes","_getTarget","override","Proxy","_keys","Sn","wr","Reflect","getOwnPropertyDescriptor","getPrototypeOf","as","includes","_storage","Vt","_proxy","_context","_subProxy","_stack","_descriptors","wn","setContext","xr","allKeys","ownKeys","scriptable","indexable","_allKeys","isScriptable","isIndexable","br","Bi","constructor","_r","yr","Error","join","delete","Vi","filter","Pn","vr","Mr","rs","kr","Sr","Dn","key","_parsing","parse","Pr","EPSILON","Wt","skip","On","Cr","previous","next","Dr","Or","Ar","De","Tr","Lr","spanGaps","cubicInterpolationMode","tension","capBezierPoints","An","document","Wi","parentNode","host","He","Ke","getComputedStyle","Rr","getPropertyValue","Er","Ot","Fr","shadowRoot","Ir","touches","offsetX","offsetY","target","getBoundingClientRect","clientX","clientY","box","Pt","canvas","boxSizing","zr","maxHeight","clientWidth","clientHeight","ai","Br","ls","ctx","setTransform","Vr","addEventListener","removeEventListener","cs","Ct","Wr","Nr","hs","Map","Hr","JSON","stringify","get","Intl","NumberFormat","set","de","format","jr","$r","zt","Tn","getPropertyPriority","setProperty","prevTextDirection","Ln","Rn","between","compare","normalize","ds","end","loop","Yr","property","En","v","p","m","_","k","Fn","segments","points","Xr","Ur","stop","Kr","options","_loop","us","_fullLoop","qr","_chart","fs","_datasetIndex","p0","p1","p0DataIndex","p1DataIndex","Gr","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","Zr","_request","_charts","_running","_lastDate","duration","initial","numSteps","currentStep","_update","_refresh","Date","now","running","items","_active","_total","tick","draw","_notify","complete","progress","_getAnims","reduce","_duration","cancel","at","gs","Jr","valid","mix","In","to","_fn","_easing","easing","_start","delay","_target","_prop","_from","_to","_promises","Promise","res","rej","Qr","ta","ea","colors","properties","numbers","active","resize","show","animations","visible","hide","Ni","_properties","configure","getOwnPropertyNames","sa","_createAnimations","$shared","ia","$animations","then","_animateOptions","update","wait","all","ps","reverse","na","oa","disabled","zn","_getSortedDatasetMetas","ms","values","ra","bs","stacked","stack","aa","id","la","NEGATIVE_INFINITY","ca","xs","getMatchingVisibleMetas","_s","_cachedMeta","_stacks","vScale","_top","_bottom","li","shift","ha","dataset","da","dataIndex","parsed","raw","element","Yt","controller","ci","ys","ua","hidden","_stacked","it","_ctx","_cachedDataOpts","getMeta","_type","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","initialize","linkScales","addElements","getDataset","xAxisID","yAxisID","rAxisID","iAxisID","vAxisID","getScaleForId","rScale","getDatasetMeta","isExtensible","_dataCheck","datasetElementType","_resyncElements","config","datasetScopeKeys","getOptionScopes","createResolver","parseArrayData","parseObjectData","parsePrimitiveData","getLabels","xAxisKey","yAxisKey","NaN","_getOtherScale","updateRangeFromParsed","getParsed","label","getLabelForValue","_clip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","_resolveElementOptions","dataElementType","datasetElementScopeKeys","resolveNamedOptions","freeze","datasetAnimationScopeKeys","_animationsDisabled","getSharedOptions","includeOptions","updateSharedOptions","sharedOptions","_resolveAnimations","getStyle","_setStyle","_insertElements","_removeElements","updateElements","_dataChanges","arguments","_sync","fa","_cache","$bar","concat","getAllParsedValues","ga","_length","ticks","getPixelForTick","pa","barThickness","categoryPercentage","barPercentage","chunk","ratio","pixels","ma","ba","_custom","barStart","barEnd","Bn","vs","xa","isHorizontal","_a","horizontal","base","ya","borderSkipped","enableBorderRadius","Ms","va","ks","Ma","inflateAmount","defaults","ue","super","getBasePixel","_getRuler","_getSharedOptions","head","_calculateBarValuePixels","_calculateBarIndexPixels","center","updateElement","grouped","_getStacks","_startPixel","_endPixel","stackCount","_getStackCount","minBarLength","applyStack","getDataVisibility","getPixelForDecimal","getLineWidthForValue","skipNull","maxBarThickness","_getStackIndex","overrides","_index_","offset","grid","_value_","beginAtZero","fe","ka","ratioX","ratioY","tooltip","callbacks","Lt","innerRadius","outerRadius","circumference","isDatasetVisible","_getRotation","_getCircumference","getMaxBorderWidth","getMaxOffset","spacing","cutout","_getRingWeight","_getRotationExtents","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animateScale","_circumference","startAngle","endAngle","labels","locale","borderAlign","hoverBorderWidth","hoverOffset","descriptors","aspectRatio","legend","text","toggleDataVisibility","formattedValue","ge","_dataset","_decimated","segment","animated","updateControlPoints","pe","bind","_updateRadius","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","getIndexAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","display","circular","pointLabels","qe","me","getPointPositionForValue","line","st","getProps","defaultRoutes","Vn","wa","notation","minimumFractionDigits","maximumFractionDigits","numeric","be","formatters","Sa","maxTicksLimit","Pa","major","enabled","Da","Oa","Ca","Oe","_tickSize","_maxLength","Aa","ceil","bounds","grace","drawBorder","drawOnChartArea","drawTicks","tickLength","tickWidth","tickColor","title","padding","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkip","autoSkipPadding","labelOffset","callback","minor","align","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","route","Ta","ws","Ss","La","Ra","gc","Xt","Ps","Ea","Fa","Ia","za","titleX","titleY","Mt","_margins","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_reversePixels","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","getMinMax","xLabels","yLabels","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","source","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","_isVisible","_getLabelSizes","widest","highest","asin","first","last","_calculatePadding","_handleMargins","position","fullSize","generateTickLabels","_computeLabelSizes","_resolveTickFontOptions","widths","heights","getBaseValue","j","q","kt","ti","Rt","ke","Et","tickBorderDash","jt","tickBorderDashOffset","tx1","ty1","tx2","ty2","x1","y1","x2","y2","_getXAxisLabelAlignment","_getYAxisLabelAlignment","ei","ii","si","textOffset","backdrop","fillRect","findIndex","_computeGridLineItems","setLineDash","lineDashOffset","_computeLabelArea","_computeLabelItems","drawBackground","drawGrid","drawTitle","drawLabels","getSortedVisibleDatasetMetas","Ae","scope","isPrototypeOf","Wa","register","Ba","Va","Na","controllers","_typedRegistries","_each","_get","_getRegistryForType","isForType","_exec","ot","xe","getElement","Wn","__proto__","BarController","BubbleController","DoughnutController","LineController","PolarAreaController","PieController","RadarController","ScatterController","St","vi","Nn","_date","Ha","getRange","_e","ja","di","isPointInArea","inRange","$a","Ya","getCenterPoint","ui","Cs","Hn","evaluateInteractionItems","modes","jn","Ut","pos","Ds","Kt","Xa","stackWeight","Ua","placed","Ka","vBoxMaxWidth","hBoxMaxHeight","availableWidth","availableHeight","qa","leftAndTop","rightAndBottom","vertical","Os","$n","Ga","maxPadding","getPadding","outerWidth","outerHeight","same","other","Za","Ja","Jt","Te","As","autoPadding","boxes","_layers","layout","beforeLayout","Hi","Yn","Ie","Qa","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","Ts","tl","getAttribute","Xn","passive","el","il","sl","native","je","contains","nl","MutationObserver","addedNodes","removedNodes","observe","childList","subtree","ol","le","Ls","Un","rl","al","ll","ResizeObserver","contentRect","fi","disconnect","cl","Kn","removeAttribute","setAttribute","$proxies","attach","detach","isConnected","qn","OffscreenCanvas","hl","_init","_createDescriptors","plugin","cancelable","_oldCache","_notifyStateChanges","dl","fl","some","getPlugin","localIds","ul","gl","local","pluginScopeKeys","Mi","pl","ml","bl","ki","xl","error","Gn","Zn","_l","Rs","Jn","Le","qt","yl","_config","_scopeCache","_resolverCache","clearCache","clear","additionalOptionScopes","_cachedScopes","resolver","subPrefixes","Es","Ml","vl","kl","wl","Fs","Is","zs","onComplete","Sl","onProgress","Qn","getElementById","$e","Pl","Cl","ji","chartOptionScopes","updateConfig","acquireContext","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","resizeDelay","listen","_initialize","bindEvents","_resizeBeforeDraw","_resize","getMaximumSize","onResize","render","dposition","dtype","getScale","init","addBox","_destroyDatasetMeta","_removeUnreferencedMetasets","order","updateIndex","getController","_updateMetasets","reset","_resetElements","_updateScales","_checkEventBindings","_updateHiddenIndices","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","removeBox","ensureScalesHaveIDs","buildOrUpdateScales","unbindEvents","_getUniformDataChanges","method","_idx","_updateDataset","meta","_drawDatasets","_drawDataset","setDatasetVisibility","_updateVisibility","_destroy","remove","_stop","releaseContext","toDataURL","bindUserEvents","bindResponsiveEvents","isAttached","notify","updateHoverStyle","event","replay","inChartArea","_handleEvent","changed","_getActiveElements","getElementsAtEventForMode","Bs","instances","pt","eo","pixelMargin","Dl","Ol","borderRadius","outerStart","outerEnd","innerStart","innerEnd","It","wi","Al","fullCircles","Tl","Ll","lineJoin","registry","version","getChart","unregister","ye","io","lineCap","Rl","El","stepped","so","ilen","Fl","move","Il","Si","zl","Bl","_path","Path2D","path","Vl","Wl","Nl","gt","_points","_segments","_pointsUpdated","Vs","hitRadius","ve","hoverRadius","no","bt","Hl","jl","$l","outer","inner","gi","Yl","Xl","pi","Me","oo","ArcElement","LineElement","PointElement","BarElement","Ul","samples","Kl","ro","Ws","ql","ao","algorithm","beforeElementsUpdate","threshold","Gl","$i","Pi","Ns","Zl","Hs","Jl","Ql","sc","tc","ec","ic","nc","oc","rc","unshift","point","ac","interpolate","co","lc","cc","hc","uc","dc","mi","above","below","fc","area","js","$s","pathSegment","Ys","ho","$filler","propagate","drawTime","Xs","boxHeight","boxWidth","usePointStyle","pointStyleWidth","itemHeight","pc","Us","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","generateLabels","_computeTitleHeight","_fitRows","_fitCols","row","col","rtl","leftForLtr","_draw","lineDash","SQRT2","xPlus","textDirection","fontColor","setWidth","mc","_getLegendItemAt","onLeave","uo","_element","adjustHitBoxes","handleEvent","Yi","_padding","_drawArgs","bc","titleBlock","fo","Re","WeakMap","go","se","hasValue","tooltipPosition","rt","ht","String","xc","getLabelAndValue","Ks","body","footer","bodyFont","titleFont","footerFont","before","lines","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","boxPadding","_c","yc","caretSize","caretPadding","vc","qs","yAlign","xAlign","Mc","kc","Gs","cornerRadius","Ee","Zs","wc","tooltipItems","Js","Ci","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","beforeTitle","afterTitle","beforeLabel","afterLabel","beforeFooter","afterFooter","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","external","getCaretPosition","x3","y3","titleAlign","titleColor","multiKeyBackground","strokeRect","bodyAlign","bodyColor","_drawColorBox","footerAlign","footerColor","drawCaret","quadraticCurveTo","_updateAnimationTarget","globalAlpha","drawBody","drawFooter","_positionChanged","_ignoreReplayEvents","positioners","po","_willRender","mo","Decimation","Filler","Legend","SubTitle","Title","Tooltip","Sc","Pc","lastIndexOf","Cc","ce","_startValue","_valueRange","_addedLabels","getDecimalForPixel","Dc","step","precision","maxTicks","maxDigits","includeBounds","Qs","Ye","_endValue","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","stepSize","computeTickLimit","getTickLimit","_maxDigits","Ge","handleTickRangeOptions","tn","Oc","Ze","_zero","Di","Ac","en","Tc","_pointLabels","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","Lc","setCenterPoint","_pointLabelItems","Rc","Ic","Ec","Fc","zc","bo","Bc","Vc","logarithmic","Nt","animate","Je","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","Wc","sn","_adapter","parser","isoWeekday","_parseOpts","startOf","nn","Nc","diff","Hc","on","jc","rn","Ht","_unit","_majorUnit","_offsets","_normalized","time","adapters","date","displayFormats","formats","normalized","unit","_getLabelBounds","endOf","getLabelTimestamps","_generate","minUnit","_getLabelCapacity","initOffsets","offsetAfterAutoskip","getDecimalForValue","factor","getDataTimestamps","tooltipFormat","datetime","_tickFormatFunction","_getLabelSize","Fe","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","xo","CategoryScale","LinearScale","LogarithmicScale","RadialLinearScale","TimeScale","TimeSeriesScale","$c","Yc","Animation","Animations","BasePlatform","BasicPlatform","Chart","DatasetController","DomPlatform","Element","Interaction","Scale","Ticks","_adapters","_detectPlatform","animator","layouts","registerables"],"mappings":";;;;;;;AAMA,SAASA,KANT,2eAQA,MAAMC,EAAK,WACT,IAAIC,EAAI,EACR,OAAO,WACL,OAAOA,KAHA,GAMX,SAASC,EAAED,GACT,OAAa,OAANA,UAAqBA,EAAI,IAElC,SAASE,EAAEF,GACT,GAAIG,MAAMC,SAAWD,MAAMC,QAAQJ,GACjC,OAAO,EACT,MAAMK,EAAIC,OAAOC,UAAUC,SAASC,KAAKT,GACzC,MAAyB,YAAlBK,EAAEK,MAAM,EAAG,IAAoC,WAAhBL,EAAEK,OAAO,GAEjD,SAASC,EAAEX,GACT,OAAa,OAANA,GAAoD,oBAAtCM,OAAOC,UAAUC,SAASC,KAAKT,GAEtD,MAAMY,EAAKZ,IAAmB,iBAALA,GAAiBA,aAAaa,SAAWC,UAAUd,GAC5E,SAASe,EAAEf,EAAGK,GACZ,OAAOO,EAAEZ,GAAKA,EAAIK,EAEpB,SAASW,EAAEhB,EAAGK,GACZ,cAAcL,EAAI,IAAMK,EAAIL,EAE9B,MAAMiB,EAAK,CAACjB,EAAGK,IAAkB,iBAALL,GAAiBA,EAAEkB,SAAS,KAAOC,WAAWnB,GAAK,IAAMA,EAAIK,EAAGe,EAAK,CAACpB,EAAGK,IAAkB,iBAALL,GAAiBA,EAAEkB,SAAS,KAAOC,WAAWnB,GAAK,IAAMK,GAAKL,EAChL,SAASqB,EAAErB,EAAGK,EAAGiB,GACf,GAAItB,GAAsB,mBAAVA,EAAES,KAChB,OAAOT,EAAEuB,MAAMD,EAAGjB,GAEtB,SAASmB,EAAExB,EAAGK,EAAGiB,EAAGG,GAClB,IAAIC,EAAGC,EAAGC,EACV,GAAI1B,EAAEF,GACJ,GAAI2B,EAAI3B,EAAE6B,OAAQJ,EAChB,IAAKC,EAAIC,EAAI,EAAGD,GAAK,EAAGA,IACtBrB,EAAEI,KAAKa,EAAGtB,EAAE0B,GAAIA,QAElB,IAAKA,EAAI,EAAGA,EAAIC,EAAGD,IACjBrB,EAAEI,KAAKa,EAAGtB,EAAE0B,GAAIA,QACjB,GAAIf,EAAEX,GACT,IAAK4B,EAAItB,OAAOwB,KAAK9B,GAAI2B,EAAIC,EAAEC,OAAQH,EAAI,EAAGA,EAAIC,EAAGD,IACnDrB,EAAEI,KAAKa,EAAGtB,EAAE4B,EAAEF,IAAKE,EAAEF,IAE3B,SAASK,EAAG/B,EAAGK,GACb,IAAIiB,EAAGG,EAAGC,EAAGC,EACb,IAAK3B,IAAMK,GAAKL,EAAE6B,SAAWxB,EAAEwB,OAC7B,OAAO,EACT,IAAKP,EAAI,EAAGG,EAAIzB,EAAE6B,OAAQP,EAAIG,IAAKH,EACjC,GAAII,EAAI1B,EAAEsB,GAAIK,EAAItB,EAAEiB,GAAII,EAAEM,eAAiBL,EAAEK,cAAgBN,EAAEO,QAAUN,EAAEM,MACzE,OAAO,EACX,OAAO,EAET,SAASC,EAAGlC,GACV,GAAIE,EAAEF,GACJ,OAAOA,EAAEmC,IAAID,GACf,GAAIvB,EAAEX,GAAI,CACR,MAAMK,EAAoBC,OAAO8B,OAAO,MAAOd,EAAIhB,OAAOwB,KAAK9B,GAAIyB,EAAIH,EAAEO,OACzE,IAAIH,EAAI,EACR,KAAOA,EAAID,IAAKC,EACdrB,EAAEiB,EAAEI,IAAMQ,EAAGlC,EAAEsB,EAAEI,KACnB,OAAOrB,EAET,OAAOL,EAET,SAASqC,EAAGrC,GACV,OAAiE,IAA1D,CAAC,YAAa,YAAa,eAAesC,QAAQtC,GAE3D,SAASuC,EAAGvC,EAAGK,EAAGiB,EAAGG,GACnB,IAAKY,EAAGrC,GACN,OACF,MAAM0B,EAAIrB,EAAEL,GAAI2B,EAAIL,EAAEtB,GACtBW,EAAEe,IAAMf,EAAEgB,GAAKa,EAAGd,EAAGC,EAAGF,GAAKpB,EAAEL,GAAKkC,EAAGP,GAEzC,SAASa,EAAGxC,EAAGK,EAAGiB,GAChB,MAAMG,EAAIvB,EAAEG,GAAKA,EAAI,CAACA,GAAIqB,EAAID,EAAEI,OAChC,IAAKlB,EAAEX,GACL,OAAOA,EACTsB,EAAIA,GAAK,GACT,MAAMK,EAAIL,EAAEmB,QAAUF,EACtB,IAAK,IAAIX,EAAI,EAAGA,EAAIF,IAAKE,EAAG,CAC1B,GAAIvB,EAAIoB,EAAEG,IAAKjB,EAAEN,GACf,SACF,MAAMqC,EAAIpC,OAAOwB,KAAKzB,GACtB,IAAK,IAAIsC,EAAI,EAAGC,EAAIF,EAAEb,OAAQc,EAAIC,IAAKD,EACrChB,EAAEe,EAAEC,GAAI3C,EAAGK,EAAGiB,GAElB,OAAOtB,EAET,SAAS6C,EAAG7C,EAAGK,GACb,OAAOmC,EAAGxC,EAAGK,EAAG,CAAEoC,OAAQK,IAE5B,SAASA,EAAG9C,EAAGK,EAAGiB,GAChB,IAAKe,EAAGrC,GACN,OACF,MAAMyB,EAAIpB,EAAEL,GAAI0B,EAAIJ,EAAEtB,GACtBW,EAAEc,IAAMd,EAAEe,GAAKmB,EAAGpB,EAAGC,GAAKpB,OAAOC,UAAUwC,eAAetC,KAAKJ,EAAGL,KAAOK,EAAEL,GAAKkC,EAAGR,IAErF,MAAMsB,EAAK,CACT,GAAKhD,GAAMA,EACXiD,EAAIjD,GAAMA,EAAEiD,EACZC,EAAIlD,GAAMA,EAAEkD,GAEd,SAASC,EAAGnD,EAAGK,GACb,OAAQ2C,EAAG3C,KAAO2C,EAAG3C,GAAK+C,EAAG/C,KAAKL,GAEpC,SAASoD,EAAGpD,GACV,MAAMK,EAAIgD,EAAGrD,GACb,OAAQsB,IACN,IAAK,MAAMG,KAAKpB,EAAG,CACjB,GAAU,KAANoB,EACF,MACFH,EAAIA,GAAKA,EAAEG,GAEb,OAAOH,GAGX,SAAS+B,EAAGrD,GACV,MAAMK,EAAIL,EAAEsD,MAAM,KAAMhC,EAAI,GAC5B,IAAIG,EAAI,GACR,IAAK,MAAMC,KAAKrB,EACdoB,GAAKC,EAAGD,EAAEP,SAAS,MAAQO,EAAIA,EAAEf,MAAM,GAAI,GAAK,KAAOY,EAAEiC,KAAK9B,GAAIA,EAAI,IACxE,OAAOH,EAET,SAASkC,EAAGxD,GACV,OAAOA,EAAEyD,OAAO,GAAGC,cAAgB1D,EAAEU,MAAM,GAE7C,MAAMiD,EAAM3D,UAAaA,EAAI,IAAK4D,EAAM5D,GAAkB,mBAALA,EAAiB6D,EAAK,CAAC7D,EAAGK,KAC7E,GAAIL,EAAE8D,OAASzD,EAAEyD,KACf,OAAO,EACT,IAAK,MAAMxC,KAAKtB,EACd,IAAKK,EAAE0D,IAAIzC,GACT,OAAO,EACX,OAAO,GAET,SAAS0C,EAAGhE,GACV,MAAkB,YAAXA,EAAEiE,MAAiC,UAAXjE,EAAEiE,MAA+B,gBAAXjE,EAAEiE,KAEzD,MAAMC,EAAIC,KAAKC,GAAIC,EAAI,EAAIH,EAAGI,EAAKD,EAAIH,EAAGK,EAAK1D,OAAO2D,kBAAmBC,EAAKP,EAAI,IAAKQ,EAAIR,EAAI,EAAGS,EAAKT,EAAI,EAAGU,EAAS,EAAJV,EAAQ,EAAGW,EAAKV,KAAKW,MAAOC,EAAKZ,KAAKa,KACzJ,SAASC,EAAGjF,GACV,MAAMK,EAAI8D,KAAKe,MAAMlF,GACrBA,EAAImF,EAAGnF,EAAGK,EAAGL,EAAI,KAAOK,EAAIL,EAC5B,MAAMsB,EAAI6C,KAAKiB,IAAI,GAAIjB,KAAKkB,MAAMR,EAAG7E,KAAMyB,EAAIzB,EAAIsB,EACnD,OAAQG,GAAK,EAAI,EAAIA,GAAK,EAAI,EAAIA,GAAK,EAAI,EAAI,IAAMH,EAEvD,SAASgE,EAAGtF,GACV,MAAMK,EAAI,GAAIiB,EAAI6C,KAAKoB,KAAKvF,GAC5B,IAAIyB,EACJ,IAAKA,EAAI,EAAGA,EAAIH,EAAGG,IACjBzB,EAAIyB,IAAM,IAAMpB,EAAEkD,KAAK9B,GAAIpB,EAAEkD,KAAKvD,EAAIyB,IACxC,OAAOH,KAAW,EAAJA,IAAUjB,EAAEkD,KAAKjC,GAAIjB,EAAEmF,KAAK,CAAC9D,EAAGC,IAAMD,EAAIC,GAAG8D,MAAOpF,EAEpE,SAASqF,EAAG1F,GACV,OAAQ2F,MAAMxE,WAAWnB,KAAOc,SAASd,GAE3C,SAASmF,EAAGnF,EAAGK,EAAGiB,GAChB,OAAO6C,KAAKyB,IAAI5F,EAAIK,GAAKiB,EAE3B,SAASuE,EAAG7F,EAAGK,GACb,MAAMiB,EAAI6C,KAAKe,MAAMlF,GACrB,OAAOsB,EAAIjB,GAAKL,GAAKsB,EAAIjB,GAAKL,EAEhC,SAAS8F,EAAG9F,EAAGK,EAAGiB,GAChB,IAAIG,EAAGC,EAAGC,EACV,IAAKF,EAAI,EAAGC,EAAI1B,EAAE6B,OAAQJ,EAAIC,EAAGD,IAC/BE,EAAI3B,EAAEyB,GAAGH,GAAIqE,MAAMhE,KAAOtB,EAAE0F,IAAM5B,KAAK4B,IAAI1F,EAAE0F,IAAKpE,GAAItB,EAAE2F,IAAM7B,KAAK6B,IAAI3F,EAAE2F,IAAKrE,IAElF,SAASsE,EAAGjG,GACV,OAAOA,GAAKkE,EAAI,KAElB,SAASgC,EAAGlG,GACV,OAAOA,GAAK,IAAMkE,GAEpB,SAASiC,EAAGnG,GACV,IAAKY,EAAEZ,GACL,OACF,IAAIK,EAAI,EAAGiB,EAAI,EACf,KAAO6C,KAAKe,MAAMlF,EAAIK,GAAKA,IAAML,GAC/BK,GAAK,GAAIiB,IACX,OAAOA,EAET,SAAS8E,EAAGpG,EAAGK,GACb,MAAMiB,EAAIjB,EAAE4C,EAAIjD,EAAEiD,EAAGxB,EAAIpB,EAAE6C,EAAIlD,EAAEkD,EAAGxB,EAAIyC,KAAKoB,KAAKjE,EAAIA,EAAIG,EAAIA,GAC9D,IAAIE,EAAIwC,KAAKkC,MAAM5E,EAAGH,GACtB,OAAOK,GAAK,GAAMuC,IAAMvC,GAAK0C,GAAI,CAC/BiC,MAAO3E,EACP4E,SAAU7E,GAGd,SAAS8E,EAAGxG,EAAGK,GACb,OAAO8D,KAAKoB,KAAKpB,KAAKiB,IAAI/E,EAAE4C,EAAIjD,EAAEiD,EAAG,GAAKkB,KAAKiB,IAAI/E,EAAE6C,EAAIlD,EAAEkD,EAAG,IAEhE,SAASuD,EAAGzG,EAAGK,GACb,OAAQL,EAAIK,EAAIiE,GAAMD,EAAIH,EAE5B,SAASwC,EAAE1G,GACT,OAAQA,EAAIqE,EAAIA,GAAKA,EAEvB,SAASsC,GAAG3G,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAIgF,EAAE1G,GAAI2B,EAAI+E,EAAErG,GAAIuB,EAAI8E,EAAEpF,GAAIoB,EAAIgE,EAAE/E,EAAID,GAAIiB,EAAI+D,EAAE9E,EAAIF,GAAIkB,EAAI8D,EAAEhF,EAAIC,GAAIiF,EAAIF,EAAEhF,EAAIE,GACxF,OAAOF,IAAMC,GAAKD,IAAME,GAAKH,GAAKE,IAAMC,GAAKc,EAAIC,GAAKC,EAAIgE,EAE5D,SAASC,GAAE7G,EAAGK,EAAGiB,GACf,OAAO6C,KAAK6B,IAAI3F,EAAG8D,KAAK4B,IAAIzE,EAAGtB,IAEjC,SAAS8G,GAAG9G,GACV,OAAO6G,GAAE7G,GAAI,MAAO,OAEtB,SAAS+G,GAAG/G,EAAGK,EAAGiB,EAAGG,EAAI,MACvB,OAAOzB,GAAKmE,KAAK4B,IAAI1F,EAAGiB,GAAKG,GAAKzB,GAAKmE,KAAK6B,IAAI3F,EAAGiB,GAAKG,EAE1D,SAASuF,GAAGhH,EAAGK,EAAGiB,GAChBA,EAAIA,GAAK,CAAEM,GAAM5B,EAAE4B,GAAKvB,GACxB,IAA6BsB,EAAzBF,EAAIzB,EAAE6B,OAAS,EAAGH,EAAI,EAC1B,KAAOD,EAAIC,EAAI,GACbC,EAAID,EAAID,GAAK,EAAGH,EAAEK,GAAKD,EAAIC,EAAIF,EAAIE,EACrC,MAAO,CAAEsF,GAAIvF,EAAGwF,GAAIzF,GAEtB,MAAM0F,GAAK,CAACnH,EAAGK,EAAGiB,EAAGG,IAAMuF,GAAGhH,EAAGsB,EAAGG,EAAKC,GAAM1B,EAAE0B,GAAGrB,IAAMiB,EAAKI,GAAM1B,EAAE0B,GAAGrB,GAAKiB,GAAI8F,GAAK,CAACpH,EAAGK,EAAGiB,IAAM0F,GAAGhH,EAAGsB,EAAIG,GAAMzB,EAAEyB,GAAGpB,IAAMiB,GAChI,SAAS+F,GAAGrH,EAAGK,EAAGiB,GAChB,IAAIG,EAAI,EAAGC,EAAI1B,EAAE6B,OACjB,KAAOJ,EAAIC,GAAK1B,EAAEyB,GAAKpB,GACrBoB,IACF,KAAOC,EAAID,GAAKzB,EAAE0B,EAAI,GAAKJ,GACzBI,IACF,OAAOD,EAAI,GAAKC,EAAI1B,EAAE6B,OAAS7B,EAAEU,MAAMe,EAAGC,GAAK1B,EAEjD,MAAMsH,GAAK,CAAC,OAAQ,MAAO,QAAS,SAAU,WAC9C,SAASC,GAAGvH,EAAGK,GACTL,EAAEwH,SACJxH,EAAEwH,SAASC,UAAUlE,KAAKlD,IAG5BC,OAAOoH,eAAe1H,EAAG,WAAY,CACnC2H,cAAc,EACdC,YAAY,EACZC,MAAO,CACLJ,UAAW,CAACpH,MAEZiH,GAAGQ,QAASxG,IACd,MAAMG,EAAI,UAAY+B,EAAGlC,GAAII,EAAI1B,EAAEsB,GACnChB,OAAOoH,eAAe1H,EAAGsB,EAAG,CAC1BqG,cAAc,EACdC,YAAY,EACZ,SAASjG,GACP,MAAMC,EAAIF,EAAEH,MAAMwG,KAAMpG,GACxB,OAAO3B,EAAEwH,SAASC,UAAUK,QAASpF,IACpB,mBAARA,EAAEjB,IAAoBiB,EAAEjB,MAAME,KACnCC,QAKZ,SAASoG,GAAGhI,EAAGK,GACb,MAAMiB,EAAItB,EAAEwH,SACZ,IAAKlG,EACH,OACF,MAAMG,EAAIH,EAAEmG,UAAW/F,EAAID,EAAEa,QAAQjC,IAC9B,IAAPqB,GAAYD,EAAEwG,OAAOvG,EAAG,KAAMD,EAAEI,OAAS,KAAOyF,GAAGQ,QAASnG,WACnD3B,EAAE2B,YACA3B,EAAEwH,UAEf,SAASU,GAAGlI,GACV,MAAMK,EAAoB,IAAI8H,IAC9B,IAAI7G,EAAGG,EACP,IAAKH,EAAI,EAAGG,EAAIzB,EAAE6B,OAAQP,EAAIG,IAAKH,EACjCjB,EAAE+H,IAAIpI,EAAEsB,IACV,OAAOjB,EAAEyD,OAASrC,EAAIzB,EAAIG,MAAMkI,KAAKhI,GAEvC,MAAMiI,GAAK,WACT,cAAcC,OAAS,IAAM,SAASvI,GACpC,OAAOA,KACLuI,OAAOC,sBAHF,GAKX,SAASC,GAAGzI,EAAGK,EAAGiB,GAChB,MAAMG,EAAIH,GAAK,CAAEM,GAAMzB,MAAMI,UAAUG,MAAMD,KAAKmB,IAClD,IAAIF,GAAI,EAAIC,EAAI,GAChB,OAAO,YAAYC,GACjBD,EAAIF,EAAEG,GAAIF,IAAMA,GAAI,EAAI4G,GAAG7H,KAAK8H,OAAQ,KACtC7G,GAAI,EAAI1B,EAAEuB,MAAMlB,EAAGsB,OAIzB,SAAS+G,GAAG1I,EAAGK,GACb,IAAIiB,EACJ,OAAO,YAAYG,GACjB,OAAOpB,GAAKsI,aAAarH,GAAIA,EAAIsH,WAAW5I,EAAGK,EAAGoB,IAAMzB,EAAEuB,MAAMwG,KAAMtG,GAAIpB,GAG9E,MAAMwI,GAAM7I,GAAY,UAANA,EAAgB,OAAe,QAANA,EAAc,QAAU,SAAU8I,GAAI,CAAC9I,EAAGK,EAAGiB,IAAY,UAANtB,EAAgBK,EAAU,QAANL,EAAcsB,GAAKjB,EAAIiB,GAAK,EAAGyH,GAAK,CAAC/I,EAAGK,EAAGiB,EAAGG,IAAMzB,KAAOyB,EAAI,OAAS,SAAWH,EAAU,WAANtB,GAAkBK,EAAIiB,GAAK,EAAIjB,EACxO,SAAS2I,GAAGhJ,EAAGK,EAAGiB,GAChB,MAAMG,EAAIpB,EAAEwB,OACZ,IAAIH,EAAI,EAAGC,EAAIF,EACf,GAAIzB,EAAEiJ,QAAS,CACb,MAAQC,OAAQtH,EAAGuH,QAASzG,GAAM1C,EAAG2C,EAAIf,EAAEwH,MAAQrD,IAAKnD,EAAGoD,IAAKY,EAAGyC,WAAYC,EAAGC,WAAYC,GAAM5H,EAAE6H,gBACtGH,IAAM5H,EAAImF,GACR1C,KAAK4B,IACHoB,GAAGzE,EAAGd,EAAEwH,KAAMxG,GAAGqE,GACjB3F,EAAIG,EAAI0F,GAAG9G,EAAGsC,EAAGf,EAAE8H,iBAAiB9G,IAAIqE,IAE1C,EACAxF,EAAI,IACEE,EAAJ6H,EAAQ3C,GACV1C,KAAK6B,IACHmB,GAAGzE,EAAGd,EAAEwH,KAAMxC,GAAG,GAAIM,GAAK,EAC1B5F,EAAI,EAAI6F,GAAG9G,EAAGsC,EAAGf,EAAE8H,iBAAiB9C,IAAI,GAAIM,GAAK,GAEnDxF,EACAD,GACEC,EAAQD,EAAIC,EAElB,MAAO,CAAEiI,MAAOjI,EAAGkI,MAAOjI,GAE5B,SAASkI,GAAG7J,GACV,MAAQ8J,OAAQzJ,EAAG0J,OAAQzI,EAAG0I,aAAcvI,GAAMzB,EAAG0B,EAAI,CACvDuI,KAAM5J,EAAE0F,IACRmE,KAAM7J,EAAE2F,IACRmE,KAAM7I,EAAEyE,IACRqE,KAAM9I,EAAE0E,KAEV,IAAKvE,EACH,OAAOzB,EAAEgK,aAAetI,GAAG,EAC7B,MAAMC,EAAIF,EAAEwI,OAAS5J,EAAE0F,KAAOtE,EAAEyI,OAAS7J,EAAE2F,KAAOvE,EAAE0I,OAAS7I,EAAEyE,KAAOtE,EAAE2I,OAAS9I,EAAE0E,IACnF,OAAO1F,OAAO+J,OAAO5I,EAAGC,GAAIC,EAE9B,MAAM2I,GAAMtK,GAAY,IAANA,GAAiB,IAANA,EAASuK,GAAK,CAACvK,EAAGK,EAAGiB,KAAQ6C,KAAKiB,IAAI,EAAG,IAAMpF,GAAK,IAAMmE,KAAKqG,KAAKxK,EAAIK,GAAKgE,EAAI/C,GAAKmJ,GAAK,CAACzK,EAAGK,EAAGiB,IAAM6C,KAAKiB,IAAI,GAAI,GAAKpF,GAAKmE,KAAKqG,KAAKxK,EAAIK,GAAKgE,EAAI/C,GAAK,EAAGoJ,GAAK,CAC9LC,OAAS3K,GAAMA,EACf4K,WAAa5K,GAAMA,EAAIA,EACvB6K,YAAc7K,IAAOA,GAAKA,EAAI,GAC9B8K,cAAgB9K,IAAOA,GAAK,IAAO,EAAI,GAAMA,EAAIA,GAAK,MAASA,GAAKA,EAAI,GAAK,GAC7E+K,YAAc/K,GAAMA,EAAIA,EAAIA,EAC5BgL,aAAehL,IAAOA,GAAK,GAAKA,EAAIA,EAAI,EACxCiL,eAAiBjL,IAAOA,GAAK,IAAO,EAAI,GAAMA,EAAIA,EAAIA,EAAI,KAAQA,GAAK,GAAKA,EAAIA,EAAI,GACpFkL,YAAclL,GAAMA,EAAIA,EAAIA,EAAIA,EAChCmL,aAAenL,MAASA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,GAC9CoL,eAAiBpL,IAAOA,GAAK,IAAO,EAAI,GAAMA,EAAIA,EAAIA,EAAIA,GAAK,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,GAC7FqL,YAAcrL,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EACpCsL,aAAetL,IAAOA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,EAChDuL,eAAiBvL,IAAOA,GAAK,IAAO,EAAI,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,GACpGwL,WAAaxL,GAAyB,EAAlBmE,KAAKsH,IAAIzL,EAAI0E,GACjCgH,YAAc1L,GAAMmE,KAAKqG,IAAIxK,EAAI0E,GACjCiH,cAAgB3L,IAAO,IAAOmE,KAAKsH,IAAIvH,EAAIlE,GAAK,GAChD4L,WAAa5L,GAAY,IAANA,EAAU,EAAImE,KAAKiB,IAAI,EAAG,IAAMpF,EAAI,IACvD6L,YAAc7L,GAAY,IAANA,EAAU,EAA4B,EAAvBmE,KAAKiB,IAAI,GAAI,GAAKpF,GACrD8L,cAAgB9L,GAAMsK,GAAGtK,GAAKA,EAAIA,EAAI,GAAM,GAAMmE,KAAKiB,IAAI,EAAG,IAAU,EAAJpF,EAAQ,IAAM,IAAyC,EAAjCmE,KAAKiB,IAAI,GAAI,IAAU,EAAJpF,EAAQ,KACrH+L,WAAa/L,GAAMA,GAAK,EAAIA,IAAMmE,KAAKoB,KAAK,EAAIvF,EAAIA,GAAK,GACzDgM,YAAchM,GAAMmE,KAAKoB,KAAK,GAAKvF,GAAK,GAAKA,GAC7CiM,cAAgBjM,IAAOA,GAAK,IAAO,GAAK,IAAOmE,KAAKoB,KAAK,EAAIvF,EAAIA,GAAK,GAAK,IAAOmE,KAAKoB,KAAK,GAAKvF,GAAK,GAAKA,GAAK,GAChHkM,cAAgBlM,GAAMsK,GAAGtK,GAAKA,EAAIuK,GAAGvK,EAAG,KAAO,IAC/CmM,eAAiBnM,GAAMsK,GAAGtK,GAAKA,EAAIyK,GAAGzK,EAAG,KAAO,IAChD,iBAAiBA,GACf,OAAOsK,GAAGtK,GAAKA,EAAIA,EAAI,GAAM,GAAMuK,GAAO,EAAJvK,EAAO,MAAQ,KAAQ,GAAM,GAAMyK,GAAO,EAAJzK,EAAQ,EAAG,MAAQ,MAEjG,WAAWA,GACT,OAAOA,EAAIA,GAAK,QAAgBA,EAAI,UAEtC,YAAYA,GACV,OAAQA,GAAK,GAAKA,GAAK,QAAgBA,EAAI,SAAW,GAExD,cAAcA,GACZ,IAAIK,EAAI,QACR,OAAQL,GAAK,IAAO,EAAWA,EAAIA,IAAqB,GAAdK,GAAK,QAAcL,EAAIK,GAAzC,GAA+C,KAAQL,GAAK,GAAKA,IAAqB,GAAdK,GAAK,QAAcL,EAAIK,GAAK,IAE9H+L,aAAepM,GAAM,EAAI0K,GAAG2B,cAAc,EAAIrM,GAC9C,cAAcA,GACZ,OAAOA,EAAI,EAAI,KAAO,OAASA,EAAIA,EAAIA,EAAI,EAAI,KAAO,QAAUA,GAAK,IAAM,MAAQA,EAAI,IAAOA,EAAI,IAAM,KAAO,QAAUA,GAAK,KAAO,MAAQA,EAAI,MAAS,QAAUA,GAAK,MAAQ,MAAQA,EAAI,SAE/LsM,gBAAkBtM,GAAMA,EAAI,GAA+B,GAAzB0K,GAAG0B,aAAiB,EAAJpM,GAA6C,GAA9B0K,GAAG2B,cAAkB,EAAJrM,EAAQ,GAAW;;;;;;GAQvG,SAASuM,GAAGvM,GACV,OAAOA,EAAI,GAAM,EAEnB,MAAMwM,GAAK,CAACxM,EAAGK,EAAGiB,IAAM6C,KAAK6B,IAAI7B,KAAK4B,IAAI/F,EAAGsB,GAAIjB,GACjD,SAASoM,GAAGzM,GACV,OAAOwM,GAAGD,GAAO,KAAJvM,GAAW,EAAG,KAE7B,SAAS0M,GAAG1M,GACV,OAAOwM,GAAGD,GAAO,IAAJvM,GAAU,EAAG,KAE5B,SAAS2M,GAAG3M,GACV,OAAOwM,GAAGD,GAAGvM,EAAI,MAAQ,IAAK,EAAG,GAEnC,SAAS4M,GAAG5M,GACV,OAAOwM,GAAGD,GAAO,IAAJvM,GAAU,EAAG,KAE5B,MAAM6M,GAAI,CAAEC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,GAAItJ,EAAG,GAAIlD,EAAG,GAAIL,EAAG,GAAIa,EAAG,GAAI6C,EAAG,GAAI3B,EAAG,GAAI+K,EAAG,GAAI7K,EAAG,GAAI0G,EAAG,GAAIhI,EAAG,GAAIoM,EAAG,IAAMC,GAAK,IAAI,oBAAqBC,GAAM5N,GAAM2N,GAAO,GAAJ3N,GAAS6N,GAAM7N,GAAM2N,IAAQ,IAAJ3N,IAAY,GAAK2N,GAAO,GAAJ3N,GAAS8N,GAAM9N,IAAW,IAAJA,IAAY,KAAW,GAAJA,GAAS+N,GAAM/N,GAAM8N,GAAG9N,EAAE4B,IAAMkM,GAAG9N,EAAEgO,IAAMF,GAAG9N,EAAEyN,IAAMK,GAAG9N,EAAE0C,GAC5V,SAASuL,GAAGjO,GACV,IAAkBsB,EAAdjB,EAAIL,EAAE6B,OACV,MAAgB,MAAT7B,EAAE,KAAqB,IAANK,GAAiB,IAANA,EAAUiB,EAAI,CAC/CM,EAAG,IAAgB,GAAViL,GAAE7M,EAAE,IACbgO,EAAG,IAAgB,GAAVnB,GAAE7M,EAAE,IACbyN,EAAG,IAAgB,GAAVZ,GAAE7M,EAAE,IACb0C,EAAS,IAANrC,EAAoB,GAAVwM,GAAE7M,EAAE,IAAW,MACnB,IAANK,GAAiB,IAANA,KAAaiB,EAAI,CAC/BM,EAAGiL,GAAE7M,EAAE,KAAO,EAAI6M,GAAE7M,EAAE,IACtBgO,EAAGnB,GAAE7M,EAAE,KAAO,EAAI6M,GAAE7M,EAAE,IACtByN,EAAGZ,GAAE7M,EAAE,KAAO,EAAI6M,GAAE7M,EAAE,IACtB0C,EAAS,IAANrC,EAAUwM,GAAE7M,EAAE,KAAO,EAAI6M,GAAE7M,EAAE,IAAM,OACnCsB,EAEP,MAAM4M,GAAK,CAAClO,EAAGK,IAAML,EAAI,IAAMK,EAAEL,GAAK,GACtC,SAASmO,GAAGnO,GACV,IAAIK,EAAI0N,GAAG/N,GAAK4N,GAAKC,GACrB,OAAO7N,EAAI,IAAMK,EAAEL,EAAE4B,GAAKvB,EAAEL,EAAEgO,GAAK3N,EAAEL,EAAEyN,GAAKS,GAAGlO,EAAE0C,EAAGrC,QAAK,EAE3D,MAAM+N,GAAK,+GACX,SAASC,GAAGrO,EAAGK,EAAGiB,GAChB,MAAMG,EAAIpB,EAAI8D,KAAK4B,IAAIzE,EAAG,EAAIA,GAAII,EAAI,CAACC,EAAGC,GAAKD,EAAI3B,EAAI,IAAM,KAAOsB,EAAIG,EAAI0C,KAAK6B,IAAI7B,KAAK4B,IAAInE,EAAI,EAAG,EAAIA,EAAG,IAAK,GACjH,MAAO,CAACF,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAExB,SAAS4M,GAAGtO,EAAGK,EAAGiB,GAChB,MAAMG,EAAI,CAACC,EAAGC,GAAKD,EAAI1B,EAAI,IAAM,IAAMsB,EAAIA,EAAIjB,EAAI8D,KAAK6B,IAAI7B,KAAK4B,IAAIpE,EAAG,EAAIA,EAAG,GAAI,GACnF,MAAO,CAACF,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAExB,SAAS8M,GAAGvO,EAAGK,EAAGiB,GAChB,MAAMG,EAAI4M,GAAGrO,EAAG,EAAG,IACnB,IAAI0B,EACJ,IAAKrB,EAAIiB,EAAI,IAAMI,EAAI,GAAKrB,EAAIiB,GAAIjB,GAAKqB,EAAGJ,GAAKI,GAAIA,EAAI,EAAGA,EAAI,EAAGA,IACjED,EAAEC,IAAM,EAAIrB,EAAIiB,EAAGG,EAAEC,IAAMrB,EAC7B,OAAOoB,EAET,SAAS+M,GAAGxO,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,OAAO1B,IAAM0B,GAAKrB,EAAIiB,GAAKG,GAAKpB,EAAIiB,EAAI,EAAI,GAAKjB,IAAMqB,GAAKJ,EAAItB,GAAKyB,EAAI,GAAKzB,EAAIK,GAAKoB,EAAI,EAE7F,SAASgN,GAAGzO,GACV,MAAMsB,EAAItB,EAAE4B,EAAI,IAAKH,EAAIzB,EAAEgO,EAAI,IAAKtM,EAAI1B,EAAEyN,EAAI,IAAK9L,EAAIwC,KAAK6B,IAAI1E,EAAGG,EAAGC,GAAIE,EAAIuC,KAAK4B,IAAIzE,EAAGG,EAAGC,GAAIgB,GAAKf,EAAIC,GAAK,EAC/G,IAAIe,EAAGC,EAAGgE,EACV,OAAOjF,IAAMC,IAAMgF,EAAIjF,EAAIC,EAAGgB,EAAIF,EAAI,GAAMkE,GAAK,EAAIjF,EAAIC,GAAKgF,GAAKjF,EAAIC,GAAIe,EAAI6L,GAAGlN,EAAGG,EAAGC,EAAGkF,EAAGjF,GAAIgB,EAAQ,GAAJA,EAAS,IAAM,CAAK,EAAJA,EAAOC,GAAK,EAAGF,GAEvI,SAASgM,GAAG1O,EAAGK,EAAGiB,EAAGG,GACnB,OAAQtB,MAAMC,QAAQC,GAAKL,EAAEK,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAML,EAAEK,EAAGiB,EAAGG,IAAIU,IAAIuK,IAEnE,SAASiC,GAAG3O,EAAGK,EAAGiB,GAChB,OAAOoN,GAAGL,GAAIrO,EAAGK,EAAGiB,GAEtB,SAASsN,GAAG5O,EAAGK,EAAGiB,GAChB,OAAOoN,GAAGH,GAAIvO,EAAGK,EAAGiB,GAEtB,SAASuN,GAAG7O,EAAGK,EAAGiB,GAChB,OAAOoN,GAAGJ,GAAItO,EAAGK,EAAGiB,GAEtB,SAASwN,GAAG9O,GACV,OAAQA,EAAI,IAAM,KAAO,IAE3B,SAAS+O,GAAG/O,GACV,MAAMK,EAAI+N,GAAGY,KAAKhP,GAClB,IAAayB,EAATH,EAAI,IACR,IAAKjB,EACH,OACFA,EAAE,KAAOoB,IAAMH,EAAIjB,EAAE,GAAKoM,IAAIpM,EAAE,IAAMqM,IAAIrM,EAAE,KAC5C,MAAMqB,EAAIoN,IAAIzO,EAAE,IAAKsB,GAAKtB,EAAE,GAAK,IAAKuB,GAAKvB,EAAE,GAAK,IAClD,OAAwBoB,EAAR,QAATpB,EAAE,GAAmBuO,GAAGlN,EAAGC,EAAGC,GAAc,QAATvB,EAAE,GAAmBwO,GAAGnN,EAAGC,EAAGC,GAAS+M,GAAGjN,EAAGC,EAAGC,GAAI,CAC5FA,EAAGH,EAAE,GACLuM,EAAGvM,EAAE,GACLgM,EAAGhM,EAAE,GACLiB,EAAGpB,GAGP,SAAS2N,GAAGjP,EAAGK,GACb,IAAIiB,EAAImN,GAAGzO,GACXsB,EAAE,GAAKwN,GAAGxN,EAAE,GAAKjB,GAAIiB,EAAIqN,GAAGrN,GAAItB,EAAE4B,EAAIN,EAAE,GAAItB,EAAEgO,EAAI1M,EAAE,GAAItB,EAAEyN,EAAInM,EAAE,GAElE,SAAS4N,GAAGlP,GACV,IAAKA,EACH,OACF,MAAMK,EAAIoO,GAAGzO,GAAIsB,EAAIjB,EAAE,GAAIoB,EAAImL,GAAGvM,EAAE,IAAKqB,EAAIkL,GAAGvM,EAAE,IAClD,OAAOL,EAAE0C,EAAI,IAAM,QAAQpB,MAAMG,OAAOC,OAAOiL,GAAG3M,EAAE0C,MAAQ,OAAOpB,MAAMG,OAAOC,MAElF,MAAMyN,GAAK,CACTlM,EAAG,OACHyD,EAAG,QACHG,EAAG,KACHuI,EAAG,MACHC,EAAG,KACH3K,EAAG,SACHoE,EAAG,QACH0E,EAAG,KACHvN,EAAG,KACHqP,EAAG,KACHpL,EAAG,KACHlD,EAAG,QACHL,EAAG,QACH4O,EAAG,KACHxO,EAAG,WACHS,EAAG,KACHgO,EAAG,KACHC,EAAG,KACH7O,EAAG,KACH8O,EAAG,KACHC,EAAG,QACHtL,EAAG,KACHuL,EAAG,KACHC,EAAG,OACHC,EAAG,KACHzO,EAAG,QACHwL,EAAG,MACFkD,GAAK,CACNC,OAAQ,SACRC,YAAa,SACbC,KAAM,OACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,OAAQ,SACRC,MAAO,IACPC,aAAc,SACdC,GAAI,KACJC,QAAS,SACTC,KAAM,SACNC,UAAW,SACXC,OAAQ,SACRC,SAAU,SACVC,QAAS,SACTC,IAAK,SACLC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,KAAM,OACNC,IAAK,KACLC,MAAO,OACPC,QAAS,SACTC,KAAM,SACNC,KAAM,OACNC,KAAM,SACNC,OAAQ,SACRC,QAAS,SACTC,SAAU,SACVC,OAAQ,SACRC,MAAO,SACPC,IAAK,SACLC,OAAQ,SACRC,OAAQ,SACRC,KAAM,SACNC,MAAO,SACPC,MAAO,SACPC,IAAK,OACLC,OAAQ,SACRC,OAAQ,SACRC,SAAU,OACVC,OAAQ,SACRC,OAAQ,SACRC,SAAU,SACVC,SAAU,SACVC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,IAAK,SACLC,OAAQ,SACRC,IAAK,SACLC,IAAK,OACLC,MAAO,SACPC,IAAK,SACLC,QAAS,SACTC,OAAQ,SACRC,QAAS,SACTC,MAAO,SACPC,KAAM,SACNC,MAAO,SACPC,OAAQ,SACRC,UAAW,SACXC,QAAS,SACTC,WAAY,SACZC,IAAK,SACLC,KAAM,SACNC,MAAO,SACPC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,QAAS,SACTC,IAAK,SACLC,KAAM,OACNC,QAAS,SACTC,IAAK,SACLC,OAAQ,SACRC,MAAO,SACPC,WAAY,SACZC,IAAK,KACLC,MAAO,SACPC,OAAQ,SACRC,OAAQ,SACRC,KAAM,SACNC,UAAW,OACXC,IAAK,SACLC,SAAU,SACVC,WAAY,SACZC,QAAS,SACTC,SAAU,SACVC,QAAS,SACTC,WAAY,SACZC,KAAM,KACNC,OAAQ,SACRC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,QAAS,SACTC,KAAM,SACNC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,WAAY,SACZC,UAAW,SACXC,QAAS,SACTC,KAAM,SACNC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,YAAa,SACbC,GAAI,SACJC,SAAU,SACVC,MAAO,SACPC,UAAW,SACXC,MAAO,SACPC,UAAW,SACXC,MAAO,SACPC,QAAS,SACTC,MAAO,SACPC,OAAQ,SACRC,MAAO,SACPC,IAAK,SACLC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,SAAU,OACVC,OAAQ,SACRC,IAAK,SACLC,IAAK,OACLC,MAAO,SACPC,OAAQ,SACRC,GAAI,SACJC,MAAO,SACPC,IAAK,SACLC,KAAM,SACNC,UAAW,SACXC,GAAI,SACJC,MAAO,UAET,SAASC,KACP,MAAMpZ,EAAI,GAAIK,EAAIC,OAAOwB,KAAKiO,IAAKzO,EAAIhB,OAAOwB,KAAKqN,IACnD,IAAI1N,EAAGC,EAAGC,EAAGC,EAAGc,EAChB,IAAKjB,EAAI,EAAGA,EAAIpB,EAAEwB,OAAQJ,IAAK,CAC7B,IAAKG,EAAIc,EAAIrC,EAAEoB,GAAIC,EAAI,EAAGA,EAAIJ,EAAEO,OAAQH,IACtCC,EAAIL,EAAEI,GAAIgB,EAAIA,EAAE2W,QAAQ1X,EAAGwN,GAAGxN,IAChCA,EAAI2X,SAASvJ,GAAGnO,GAAI,IAAK5B,EAAE0C,GAAK,CAACf,GAAK,GAAK,IAAKA,GAAK,EAAI,IAAS,IAAJA,GAEhE,OAAO3B,EAET,IAAIuZ,GACJ,SAASC,GAAGxZ,GACVuZ,KAAOA,GAAKH,KAAMG,GAAGE,YAAc,CAAC,EAAG,EAAG,EAAG,IAC7C,MAAMpZ,EAAIkZ,GAAGvZ,EAAE0Z,eACf,OAAOrZ,GAAK,CACVuB,EAAGvB,EAAE,GACL2N,EAAG3N,EAAE,GACLoN,EAAGpN,EAAE,GACLqC,EAAgB,IAAbrC,EAAEwB,OAAexB,EAAE,GAAK,KAG/B,MAAMsZ,GAAK,uGACX,SAASC,GAAG5Z,GACV,MAAMK,EAAIsZ,GAAG3K,KAAKhP,GAClB,IAAayB,EAAGC,EAAGC,EAAfL,EAAI,IACR,GAAIjB,EAAG,CACL,GAAIA,EAAE,KAAOoB,EAAG,CACd,MAAMG,GAAKvB,EAAE,GACbiB,EAAIjB,EAAE,GAAKoM,GAAG7K,GAAK4K,GAAO,IAAJ5K,EAAS,EAAG,KAEpC,OAAOH,GAAKpB,EAAE,GAAIqB,GAAKrB,EAAE,GAAIsB,GAAKtB,EAAE,GAAIoB,EAAI,KAAOpB,EAAE,GAAKoM,GAAGhL,GAAK+K,GAAG/K,EAAG,EAAG,MAAOC,EAAI,KAAOrB,EAAE,GAAKoM,GAAG/K,GAAK8K,GAAG9K,EAAG,EAAG,MAAOC,EAAI,KAAOtB,EAAE,GAAKoM,GAAG9K,GAAK6K,GAAG7K,EAAG,EAAG,MAAO,CACpKC,EAAGH,EACHuM,EAAGtM,EACH+L,EAAG9L,EACHe,EAAGpB,IAIT,SAASuY,GAAG7Z,GACV,OAAOA,IAAMA,EAAE0C,EAAI,IAAM,QAAQ1C,EAAE4B,MAAM5B,EAAEgO,MAAMhO,EAAEyN,MAAMd,GAAG3M,EAAE0C,MAAQ,OAAO1C,EAAE4B,MAAM5B,EAAEgO,MAAMhO,EAAEyN,MAEjG,MAAMqM,GAAM9Z,GAAMA,GAAK,SAAe,MAAJA,EAAmC,MAAvBmE,KAAKiB,IAAIpF,EAAG,EAAI,KAAe,KAAO+Z,GAAM/Z,GAAMA,GAAK,OAAUA,EAAI,MAAQmE,KAAKiB,KAAKpF,EAAI,MAAS,MAAO,KACzJ,SAASga,GAAGha,EAAGK,EAAGiB,GAChB,MAAMG,EAAIsY,GAAGpN,GAAG3M,EAAE4B,IAAKF,EAAIqY,GAAGpN,GAAG3M,EAAEgO,IAAKrM,EAAIoY,GAAGpN,GAAG3M,EAAEyN,IACpD,MAAO,CACL7L,EAAG8K,GAAGoN,GAAGrY,EAAIH,GAAKyY,GAAGpN,GAAGtM,EAAEuB,IAAMH,KAChCuM,EAAGtB,GAAGoN,GAAGpY,EAAIJ,GAAKyY,GAAGpN,GAAGtM,EAAE2N,IAAMtM,KAChC+L,EAAGf,GAAGoN,GAAGnY,EAAIL,GAAKyY,GAAGpN,GAAGtM,EAAEoN,IAAM9L,KAChCe,EAAG1C,EAAE0C,EAAIpB,GAAKjB,EAAEqC,EAAI1C,EAAE0C,IAG1B,SAASuX,GAAGja,EAAGK,EAAGiB,GAChB,GAAItB,EAAG,CACL,IAAIyB,EAAIgN,GAAGzO,GACXyB,EAAEpB,GAAK8D,KAAK6B,IAAI,EAAG7B,KAAK4B,IAAItE,EAAEpB,GAAKoB,EAAEpB,GAAKiB,EAAS,IAANjB,EAAU,IAAM,IAAKoB,EAAIkN,GAAGlN,GAAIzB,EAAE4B,EAAIH,EAAE,GAAIzB,EAAEgO,EAAIvM,EAAE,GAAIzB,EAAEyN,EAAIhM,EAAE,IAGjH,SAASyY,GAAGla,EAAGK,GACb,OAAOL,GAAKM,OAAO+J,OAAOhK,GAAK,GAAIL,GAErC,SAASma,GAAGna,GACV,IAAIK,EAAI,CAAEuB,EAAG,EAAGoM,EAAG,EAAGP,EAAG,EAAG/K,EAAG,KAC/B,OAAOvC,MAAMC,QAAQJ,GAAKA,EAAE6B,QAAU,IAAMxB,EAAI,CAAEuB,EAAG5B,EAAE,GAAIgO,EAAGhO,EAAE,GAAIyN,EAAGzN,EAAE,GAAI0C,EAAG,KAAO1C,EAAE6B,OAAS,IAAMxB,EAAEqC,EAAIgK,GAAG1M,EAAE,OAASK,EAAI6Z,GAAGla,EAAG,CAAE4B,EAAG,EAAGoM,EAAG,EAAGP,EAAG,EAAG/K,EAAG,IAAMrC,EAAEqC,EAAIgK,GAAGrM,EAAEqC,IAAKrC,EAErL,SAAS+Z,GAAGpa,GACV,MAAuB,MAAhBA,EAAEyD,OAAO,GAAamW,GAAG5Z,GAAK+O,GAAG/O,GAE1C,MAAMqa,GACJ,YAAYha,GACV,GAAIA,aAAaga,GACf,OAAOha,EACT,MAAMiB,SAAWjB,EACjB,IAAIoB,EACE,WAANH,EAAiBG,EAAI0Y,GAAG9Z,GAAW,WAANiB,IAAmBG,EAAIwM,GAAG5N,IAAMmZ,GAAGnZ,IAAM+Z,GAAG/Z,IAAK0H,KAAKuS,KAAO7Y,EAAGsG,KAAKwS,SAAW9Y,EAE/G,YACE,OAAOsG,KAAKwS,OAEd,UACE,IAAIla,EAAI6Z,GAAGnS,KAAKuS,MAChB,OAAOja,IAAMA,EAAEqC,EAAIiK,GAAGtM,EAAEqC,IAAKrC,EAE/B,QAAQA,GACN0H,KAAKuS,KAAOH,GAAG9Z,GAEjB,YACE,OAAO0H,KAAKwS,OAASV,GAAG9R,KAAKuS,WAAQ,EAEvC,YACE,OAAOvS,KAAKwS,OAASpM,GAAGpG,KAAKuS,WAAQ,EAEvC,YACE,OAAOvS,KAAKwS,OAASrL,GAAGnH,KAAKuS,WAAQ,EAEvC,IAAIja,EAAGiB,GACL,GAAIjB,EAAG,CACL,MAAMoB,EAAIsG,KAAKyS,IAAK9Y,EAAIrB,EAAEma,IAC1B,IAAI7Y,EACJ,MAAMC,EAAIN,IAAMK,EAAI,GAAML,EAAGoB,EAAI,EAAId,EAAI,EAAGe,EAAIlB,EAAEiB,EAAIhB,EAAEgB,EAAGE,IAAMF,EAAIC,KAAO,EAAID,GAAKA,EAAIC,IAAM,EAAID,EAAIC,IAAM,GAAK,EAClHhB,EAAI,EAAIiB,EAAGnB,EAAEG,EAAI,IAAMgB,EAAInB,EAAEG,EAAID,EAAID,EAAEE,EAAI,GAAKH,EAAEuM,EAAI,IAAMpL,EAAInB,EAAEuM,EAAIrM,EAAID,EAAEsM,EAAI,GAAKvM,EAAEgM,EAAI,IAAM7K,EAAInB,EAAEgM,EAAI9L,EAAID,EAAE+L,EAAI,GAAKhM,EAAEiB,EAAId,EAAIH,EAAEiB,GAAK,EAAId,GAAKF,EAAEgB,EAAGqF,KAAKyS,IAAM/Y,EAEtK,OAAOsG,KAET,YAAY1H,EAAGiB,GACb,OAAOjB,IAAM0H,KAAKuS,KAAON,GAAGjS,KAAKuS,KAAMja,EAAEia,KAAMhZ,IAAKyG,KAEtD,QACE,OAAO,IAAIsS,GAAGtS,KAAKyS,KAErB,MAAMna,GACJ,OAAO0H,KAAKuS,KAAK5X,EAAIgK,GAAGrM,GAAI0H,KAE9B,QAAQ1H,GACN,MAAMiB,EAAIyG,KAAKuS,KACf,OAAOhZ,EAAEoB,GAAK,EAAIrC,EAAG0H,KAEvB,YACE,MAAM1H,EAAI0H,KAAKuS,KAAMhZ,EAAIiL,GAAS,GAANlM,EAAEuB,EAAgB,IAANvB,EAAE2N,EAAiB,IAAN3N,EAAEoN,GACvD,OAAOpN,EAAEuB,EAAIvB,EAAE2N,EAAI3N,EAAEoN,EAAInM,EAAGyG,KAE9B,QAAQ1H,GACN,MAAMiB,EAAIyG,KAAKuS,KACf,OAAOhZ,EAAEoB,GAAK,EAAIrC,EAAG0H,KAEvB,SACE,MAAM1H,EAAI0H,KAAKuS,KACf,OAAOja,EAAEuB,EAAI,IAAMvB,EAAEuB,EAAGvB,EAAE2N,EAAI,IAAM3N,EAAE2N,EAAG3N,EAAEoN,EAAI,IAAMpN,EAAEoN,EAAG1F,KAE5D,QAAQ1H,GACN,OAAO4Z,GAAGlS,KAAKuS,KAAM,EAAGja,GAAI0H,KAE9B,OAAO1H,GACL,OAAO4Z,GAAGlS,KAAKuS,KAAM,GAAIja,GAAI0H,KAE/B,SAAS1H,GACP,OAAO4Z,GAAGlS,KAAKuS,KAAM,EAAGja,GAAI0H,KAE9B,WAAW1H,GACT,OAAO4Z,GAAGlS,KAAKuS,KAAM,GAAIja,GAAI0H,KAE/B,OAAO1H,GACL,OAAO4O,GAAGlH,KAAKuS,KAAMja,GAAI0H,MAG7B,SAAS0S,GAAGza,GACV,OAAO,IAAIqa,GAAGra,GAEhB,SAAS0a,GAAG1a,GACV,GAAIA,GAAiB,iBAALA,EAAe,CAC7B,MAAMK,EAAIL,EAAEQ,WACZ,MAAa,2BAANH,GAAwC,4BAANA,EAE3C,OAAO,EAET,SAASsa,GAAG3a,GACV,OAAO0a,GAAG1a,GAAKA,EAAIya,GAAGza,GAExB,SAAS4a,GAAG5a,GACV,OAAO0a,GAAG1a,GAAKA,EAAIya,GAAGza,GAAG6a,SAAS,IAAKC,OAAO,IAAKC,YAErD,MAAMC,GAAqB1a,OAAO8B,OAAO,MAAO6Y,GAAqB3a,OAAO8B,OAAO,MACnF,SAAS8Y,GAAGlb,EAAGK,GACb,IAAKA,EACH,OAAOL,EACT,MAAMsB,EAAIjB,EAAEiD,MAAM,KAClB,IAAK,IAAI7B,EAAI,EAAGC,EAAIJ,EAAEO,OAAQJ,EAAIC,IAAKD,EAAG,CACxC,MAAME,EAAIL,EAAEG,GACZzB,EAAIA,EAAE2B,KAAO3B,EAAE2B,GAAqBrB,OAAO8B,OAAO,OAEpD,OAAOpC,EAET,SAASmb,GAAGnb,EAAGK,EAAGiB,GAChB,MAAmB,iBAALjB,EAAgBmC,EAAG0Y,GAAGlb,EAAGK,GAAIiB,GAAKkB,EAAG0Y,GAAGlb,EAAG,IAAKK,GAEhE,MAAM+a,GACJ,YAAY/a,GACV0H,KAAKsT,eAAY,EAAQtT,KAAKuT,gBAAkB,kBAAmBvT,KAAKwT,YAAc,kBAAmBxT,KAAKyT,MAAQ,OAAQzT,KAAK0T,SAAW,GAAI1T,KAAK2T,iBAAoBpa,GAAMA,EAAEqa,MAAMC,SAASC,sBAAuB9T,KAAK+T,SAAW,GAAI/T,KAAKgU,OAAS,CACzP,YACA,WACA,QACA,aACA,aACChU,KAAKiU,KAAO,CACbC,OAAQ,qDACRnY,KAAM,GACNoY,MAAO,SACPC,WAAY,IACZC,OAAQ,MACPrU,KAAKsU,MAAQ,GAAItU,KAAKuU,qBAAuB,CAAChb,EAAGG,IAAMmZ,GAAGnZ,EAAE6Z,iBAAkBvT,KAAKwU,iBAAmB,CAACjb,EAAGG,IAAMmZ,GAAGnZ,EAAE8Z,aAAcxT,KAAKyU,WAAa,CAAClb,EAAGG,IAAMmZ,GAAGnZ,EAAE+Z,OAAQzT,KAAK0U,UAAY,IAAK1U,KAAK2U,YAAc,CACtNC,KAAM,UACNC,WAAW,EACXC,kBAAkB,GACjB9U,KAAK+U,qBAAsB,EAAI/U,KAAKgV,QAAU,KAAMhV,KAAKiV,QAAU,KAAMjV,KAAKkV,SAAU,EAAIlV,KAAKmV,QAAU,GAAInV,KAAKoV,YAAa,EAAIpV,KAAKqV,WAAQ,EAAQrV,KAAKsV,OAAS,GAAItV,KAAKuV,UAAW,EAAIvV,KAAKwV,yBAA0B,EAAIxV,KAAKyV,SAASnd,GAEtP,IAAIA,EAAGiB,GACL,OAAO6Z,GAAGpT,KAAM1H,EAAGiB,GAErB,IAAIjB,GACF,OAAO6a,GAAGnT,KAAM1H,GAElB,SAASA,EAAGiB,GACV,OAAO6Z,GAAGF,GAAI5a,EAAGiB,GAEnB,SAASjB,EAAGiB,GACV,OAAO6Z,GAAGH,GAAI3a,EAAGiB,GAEnB,MAAMjB,EAAGiB,EAAGG,EAAGC,GACb,MAAMC,EAAIuZ,GAAGnT,KAAM1H,GAAIuB,EAAIsZ,GAAGnT,KAAMtG,GAAIiB,EAAI,IAAMpB,EAClDhB,OAAOmd,iBAAiB9b,EAAG,CACzB,CAACe,GAAI,CACHmF,MAAOlG,EAAEL,GACToc,UAAU,GAEZ,CAACpc,GAAI,CACHsG,YAAY,EACZ,MACE,MAAMjF,EAAIoF,KAAKrF,GAAIE,EAAIhB,EAAEF,GACzB,OAAOf,EAAEgC,GAAKrC,OAAO+J,OAAO,GAAIzH,EAAGD,GAAK3B,EAAE2B,EAAGC,IAE/C,IAAID,GACFoF,KAAKrF,GAAKC,OAMpB,IAAI8M,GAAI,IAAI2L,GAAG,CACbuC,YAAc3d,IAAOA,EAAE4d,WAAW,MAClCC,WAAa7d,GAAY,WAANA,EACnBqc,MAAO,CACLyB,UAAW,eAEbpB,YAAa,CACXiB,aAAa,EACbE,YAAY,KAGhB,SAASE,GAAG/d,GACV,OAAQA,GAAKC,EAAED,EAAE8D,OAAS7D,EAAED,EAAEic,QAAU,MAAQjc,EAAEkc,MAAQlc,EAAEkc,MAAQ,IAAM,KAAOlc,EAAEoc,OAASpc,EAAEoc,OAAS,IAAM,IAAMpc,EAAE8D,KAAO,MAAQ9D,EAAEic,OAExI,SAAS+B,GAAGhe,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,IAAIC,EAAItB,EAAEqB,GACV,OAAOC,IAAMA,EAAItB,EAAEqB,GAAK1B,EAAEie,YAAYvc,GAAGwc,MAAO5c,EAAEiC,KAAK7B,IAAKC,EAAIF,IAAMA,EAAIE,GAAIF,EAEhF,SAAS0c,GAAGne,EAAGK,EAAGiB,EAAGG,GACnBA,EAAIA,GAAK,GACT,IAAIC,EAAID,EAAE2c,KAAO3c,EAAE2c,MAAQ,GAAIzc,EAAIF,EAAE4c,eAAiB5c,EAAE4c,gBAAkB,GAC1E5c,EAAEua,OAAS3b,IAAMqB,EAAID,EAAE2c,KAAO,GAAIzc,EAAIF,EAAE4c,eAAiB,GAAI5c,EAAEua,KAAO3b,GAAIL,EAAEse,OAAQte,EAAEgc,KAAO3b,EAC7F,IAAIuB,EAAI,EACR,MAAMc,EAAIpB,EAAEO,OACZ,IAAIc,EAAGC,EAAGgE,EAAG0C,EAAGE,EAChB,IAAK7G,EAAI,EAAGA,EAAID,EAAGC,IACjB,GAAI2G,EAAIhI,EAAEqB,GAAS,MAAL2G,IAAsB,IAATpJ,EAAEoJ,GAC3B1H,EAAIoc,GAAGhe,EAAG0B,EAAGC,EAAGC,EAAG0H,QAChB,GAAIpJ,EAAEoJ,GACT,IAAK1G,EAAI,EAAGgE,EAAI0C,EAAEzH,OAAQe,EAAIgE,EAAGhE,IAC/B4G,EAAIF,EAAE1G,GAAS,MAAL4G,IAActJ,EAAEsJ,KAAO5H,EAAIoc,GAAGhe,EAAG0B,EAAGC,EAAGC,EAAG4H,IAC1DxJ,EAAEue,UACF,MAAM7Q,EAAI/L,EAAEE,OAAS,EACrB,GAAI6L,EAAIpM,EAAEO,OAAQ,CAChB,IAAKc,EAAI,EAAGA,EAAI+K,EAAG/K,WACVjB,EAAEC,EAAEgB,IACbhB,EAAEsG,OAAO,EAAGyF,GAEd,OAAO9L,EAET,SAAS4c,GAAGxe,EAAGK,EAAGiB,GAChB,MAAMG,EAAIzB,EAAEye,wBAAyB/c,EAAU,IAANJ,EAAU6C,KAAK6B,IAAI1E,EAAI,EAAG,IAAO,EAC1E,OAAO6C,KAAKe,OAAO7E,EAAIqB,GAAKD,GAAKA,EAAIC,EAEvC,SAASgd,GAAG1e,EAAGK,GACbA,EAAIA,GAAKL,EAAE2e,WAAW,MAAOte,EAAEie,OAAQje,EAAEue,iBAAkBve,EAAEwe,UAAU,EAAG,EAAG7e,EAAEke,MAAOle,EAAE8e,QAASze,EAAEke,UAErG,SAASQ,GAAG/e,EAAGK,EAAGiB,EAAGG,GACnBud,GAAGhf,EAAGK,EAAGiB,EAAGG,EAAG,MAEjB,SAASud,GAAGhf,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,IAAIC,EAAGC,EAAGc,EAAGC,EAAGC,EAAGgE,EACnB,MAAM0C,EAAIjJ,EAAE4e,WAAYzV,EAAInJ,EAAE6e,SAAUxR,EAAIrN,EAAE8e,OAC9C,IAAInR,GAAKxE,GAAK,GAAK/E,EACnB,GAAI6E,GAAiB,iBAALA,IAAkB3H,EAAI2H,EAAE9I,WAAkB,8BAANmB,GAA2C,+BAANA,GAEvF,OADA3B,EAAEse,OAAQte,EAAEof,UAAU9d,EAAGG,GAAIzB,EAAEqf,OAAOrR,GAAIhO,EAAEsf,UAAUhW,GAAIA,EAAE4U,MAAQ,GAAI5U,EAAEwV,OAAS,EAAGxV,EAAE4U,MAAO5U,EAAEwV,aAAS9e,EAAEue,UAG9G,KAAM5Y,MAAM+H,IAAMA,GAAK,GAAI,CACzB,OAAQ1N,EAAEuf,YAAajW,GACrB,QACE5H,EAAI1B,EAAEwf,QAAQle,EAAGG,EAAGC,EAAI,EAAGgM,EAAG,EAAG,EAAGrJ,GAAKrE,EAAEyf,IAAIne,EAAGG,EAAGiM,EAAG,EAAGrJ,GAAIrE,EAAE0f,YACjE,MACF,IAAK,WACH1f,EAAE2f,OAAOre,EAAI6C,KAAKqG,IAAIwD,GAAKN,EAAGjM,EAAI0C,KAAKsH,IAAIuC,GAAKN,GAAIM,GAAKpJ,EAAI5E,EAAE4f,OAAOte,EAAI6C,KAAKqG,IAAIwD,GAAKN,EAAGjM,EAAI0C,KAAKsH,IAAIuC,GAAKN,GAAIM,GAAKpJ,EAAI5E,EAAE4f,OAAOte,EAAI6C,KAAKqG,IAAIwD,GAAKN,EAAGjM,EAAI0C,KAAKsH,IAAIuC,GAAKN,GAAI1N,EAAE0f,YAChL,MACF,IAAK,cACH9c,EAAQ,KAAJ8K,EAAW/K,EAAI+K,EAAI9K,EAAGhB,EAAIuC,KAAKsH,IAAIuC,EAAIrJ,GAAMhC,EAAGD,EAAIyB,KAAKqG,IAAIwD,EAAIrJ,GAAMhC,EAAG3C,EAAEyf,IAAIne,EAAIM,EAAGH,EAAIiB,EAAGE,EAAGoL,EAAI9J,EAAG8J,EAAItJ,GAAI1E,EAAEyf,IAAIne,EAAIoB,EAAGjB,EAAIG,EAAGgB,EAAGoL,EAAItJ,EAAGsJ,GAAIhO,EAAEyf,IAAIne,EAAIM,EAAGH,EAAIiB,EAAGE,EAAGoL,EAAGA,EAAItJ,GAAI1E,EAAEyf,IAAIne,EAAIoB,EAAGjB,EAAIG,EAAGgB,EAAGoL,EAAItJ,EAAGsJ,EAAI9J,GAAIlE,EAAE0f,YAChO,MACF,IAAK,OACH,IAAKlW,EAAG,CACN7G,EAAIwB,KAAK0b,QAAUnS,EAAG9G,EAAIlF,EAAIA,EAAI,EAAIiB,EAAG3C,EAAE8f,KAAKxe,EAAIsF,EAAGnF,EAAIkB,EAAG,EAAIiE,EAAG,EAAIjE,GACzE,MAEFqL,GAAKrJ,EACP,IAAK,UACH/C,EAAIuC,KAAKsH,IAAIuC,GAAKN,EAAGhL,EAAIyB,KAAKqG,IAAIwD,GAAKN,EAAG1N,EAAE2f,OAAOre,EAAIM,EAAGH,EAAIiB,GAAI1C,EAAE4f,OAAOte,EAAIoB,EAAGjB,EAAIG,GAAI5B,EAAE4f,OAAOte,EAAIM,EAAGH,EAAIiB,GAAI1C,EAAE4f,OAAOte,EAAIoB,EAAGjB,EAAIG,GAAI5B,EAAE0f,YAC5I,MACF,IAAK,WACH1R,GAAKrJ,EACP,IAAK,QACH/C,EAAIuC,KAAKsH,IAAIuC,GAAKN,EAAGhL,EAAIyB,KAAKqG,IAAIwD,GAAKN,EAAG1N,EAAE2f,OAAOre,EAAIM,EAAGH,EAAIiB,GAAI1C,EAAE4f,OAAOte,EAAIM,EAAGH,EAAIiB,GAAI1C,EAAE2f,OAAOre,EAAIoB,EAAGjB,EAAIG,GAAI5B,EAAE4f,OAAOte,EAAIoB,EAAGjB,EAAIG,GACtI,MACF,IAAK,OACHA,EAAIuC,KAAKsH,IAAIuC,GAAKN,EAAGhL,EAAIyB,KAAKqG,IAAIwD,GAAKN,EAAG1N,EAAE2f,OAAOre,EAAIM,EAAGH,EAAIiB,GAAI1C,EAAE4f,OAAOte,EAAIM,EAAGH,EAAIiB,GAAI1C,EAAE2f,OAAOre,EAAIoB,EAAGjB,EAAIG,GAAI5B,EAAE4f,OAAOte,EAAIoB,EAAGjB,EAAIG,GAAIoM,GAAKrJ,EAAI/C,EAAIuC,KAAKsH,IAAIuC,GAAKN,EAAGhL,EAAIyB,KAAKqG,IAAIwD,GAAKN,EAAG1N,EAAE2f,OAAOre,EAAIM,EAAGH,EAAIiB,GAAI1C,EAAE4f,OAAOte,EAAIM,EAAGH,EAAIiB,GAAI1C,EAAE2f,OAAOre,EAAIoB,EAAGjB,EAAIG,GAAI5B,EAAE4f,OAAOte,EAAIoB,EAAGjB,EAAIG,GACzR,MACF,IAAK,OACHA,EAAIF,EAAIA,EAAI,EAAIyC,KAAKsH,IAAIuC,GAAKN,EAAGhL,EAAIyB,KAAKqG,IAAIwD,GAAKN,EAAG1N,EAAE2f,OAAOre,EAAIM,EAAGH,EAAIiB,GAAI1C,EAAE4f,OAAOte,EAAIM,EAAGH,EAAIiB,GAClG,MACF,IAAK,OACH1C,EAAE2f,OAAOre,EAAGG,GAAIzB,EAAE4f,OAAOte,EAAI6C,KAAKsH,IAAIuC,GAAKN,EAAGjM,EAAI0C,KAAKqG,IAAIwD,GAAKN,GAChE,MAEJ1N,EAAE+f,OAAQ1f,EAAE2f,YAAc,GAAKhgB,EAAEigB,UAGrC,SAASC,GAAGlgB,EAAGK,EAAGiB,GAChB,OAAOA,EAAIA,GAAK,IAAMjB,GAAKL,GAAKA,EAAEiD,EAAI5C,EAAE8f,KAAO7e,GAAKtB,EAAEiD,EAAI5C,EAAE+f,MAAQ9e,GAAKtB,EAAEkD,EAAI7C,EAAEggB,IAAM/e,GAAKtB,EAAEkD,EAAI7C,EAAEigB,OAAShf,EAE/G,SAASmP,GAAGzQ,EAAGK,GACbL,EAAEse,OAAQte,EAAEuf,YAAavf,EAAE8f,KAAKzf,EAAE8f,KAAM9f,EAAEggB,IAAKhgB,EAAE+f,MAAQ/f,EAAE8f,KAAM9f,EAAEigB,OAASjgB,EAAEggB,KAAMrgB,EAAEugB,OAExF,SAASC,GAAGxgB,GACVA,EAAEue,UAEJ,SAASkC,GAAGzgB,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,IAAKrB,EACH,OAAOL,EAAE4f,OAAOte,EAAE2B,EAAG3B,EAAE4B,GACzB,GAAU,WAANxB,EAAgB,CAClB,MAAMC,GAAKtB,EAAE4C,EAAI3B,EAAE2B,GAAK,EACxBjD,EAAE4f,OAAOje,EAAGtB,EAAE6C,GAAIlD,EAAE4f,OAAOje,EAAGL,EAAE4B,OAE1B,UAANxB,KAAmBD,EAAIzB,EAAE4f,OAAOvf,EAAE4C,EAAG3B,EAAE4B,GAAKlD,EAAE4f,OAAOte,EAAE2B,EAAG5C,EAAE6C,GAC9DlD,EAAE4f,OAAOte,EAAE2B,EAAG3B,EAAE4B,GAElB,SAASwd,GAAG1gB,EAAGK,EAAGiB,EAAGG,GACnB,IAAKpB,EACH,OAAOL,EAAE4f,OAAOte,EAAE2B,EAAG3B,EAAE4B,GACzBlD,EAAE2gB,cACAlf,EAAIpB,EAAEugB,KAAOvgB,EAAEwgB,KACfpf,EAAIpB,EAAEygB,KAAOzgB,EAAE0gB,KACftf,EAAIH,EAAEuf,KAAOvf,EAAEsf,KACfnf,EAAIH,EAAEyf,KAAOzf,EAAEwf,KACfxf,EAAE2B,EACF3B,EAAE4B,GAGN,SAAS8d,GAAGhhB,EAAGK,EAAGiB,EAAGG,EAAGC,EAAGC,EAAI,IAC7B,MAAMC,EAAI1B,EAAEG,GAAKA,EAAI,CAACA,GAAIqC,EAAIf,EAAEsf,YAAc,GAAuB,KAAlBtf,EAAEuf,YACrD,IAAIve,EAAGC,EACP,IAAK5C,EAAEse,OAAQte,EAAEgc,KAAOta,EAAEyf,OAAQC,GAAGphB,EAAG2B,GAAIgB,EAAI,EAAGA,EAAIf,EAAEC,SAAUc,EACjEC,EAAIhB,EAAEe,GAAID,IAAMf,EAAEuf,cAAgBlhB,EAAEqhB,YAAc1f,EAAEuf,aAAcjhB,EAAE0B,EAAEsf,eAAiBjhB,EAAEshB,UAAY3f,EAAEsf,aAAcjhB,EAAEuhB,WAAW3e,EAAGtB,EAAGG,EAAGE,EAAE6f,WAAYxhB,EAAEyhB,SAAS7e,EAAGtB,EAAGG,EAAGE,EAAE6f,UAAWE,GAAG1hB,EAAGsB,EAAGG,EAAGmB,EAAGjB,GAAIF,GAAKC,EAAEya,WACtNnc,EAAEue,UAEJ,SAAS6C,GAAGphB,EAAGK,GACbA,EAAEshB,aAAe3hB,EAAEof,UAAU/e,EAAEshB,YAAY,GAAIthB,EAAEshB,YAAY,IAAK1hB,EAAEI,EAAE6e,WAAalf,EAAEqf,OAAOhf,EAAE6e,UAAW7e,EAAEmb,QAAUxb,EAAE4hB,UAAYvhB,EAAEmb,OAAQnb,EAAEwhB,YAAc7hB,EAAE6hB,UAAYxhB,EAAEwhB,WAAYxhB,EAAEyhB,eAAiB9hB,EAAE8hB,aAAezhB,EAAEyhB,cAEjO,SAASJ,GAAG1hB,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,GAAIA,EAAEqgB,eAAiBrgB,EAAEsgB,UAAW,CAClC,MAAMrgB,EAAI3B,EAAEie,YAAYxc,GAAIG,EAAIvB,EAAIsB,EAAEsgB,sBAAuBvf,EAAIrC,EAAIsB,EAAEugB,uBAAwBvf,EAAIrB,EAAIK,EAAEwgB,wBAAyBvf,EAAItB,EAAIK,EAAEygB,yBAA0Bxb,EAAIlF,EAAEqgB,eAAiBpf,EAAIC,GAAK,EAAIA,EAC1M5C,EAAEqhB,YAAcrhB,EAAE4hB,UAAW5hB,EAAEuf,YAAavf,EAAEshB,UAAY5f,EAAE2gB,iBAAmB,EAAGriB,EAAE2f,OAAO/d,EAAGgF,GAAI5G,EAAE4f,OAAOld,EAAGkE,GAAI5G,EAAEigB,UAGxH,SAASqC,GAAGtiB,EAAGK,GACb,MAAQ4C,EAAG3B,EAAG4B,EAAGzB,EAAG8gB,EAAG7gB,EAAGkF,EAAGjF,EAAGwd,OAAQvd,GAAMvB,EAC9CL,EAAEyf,IAAIne,EAAIM,EAAE4gB,QAAS/gB,EAAIG,EAAE4gB,QAAS5gB,EAAE4gB,SAAU9d,EAAGR,GAAG,GAAKlE,EAAE4f,OAAOte,EAAGG,EAAIE,EAAIC,EAAE6gB,YAAaziB,EAAEyf,IAAIne,EAAIM,EAAE6gB,WAAYhhB,EAAIE,EAAIC,EAAE6gB,WAAY7gB,EAAE6gB,WAAYve,EAAGQ,GAAG,GAAK1E,EAAE4f,OAAOte,EAAII,EAAIE,EAAE8gB,YAAajhB,EAAIE,GAAI3B,EAAEyf,IAAIne,EAAII,EAAIE,EAAE8gB,YAAajhB,EAAIE,EAAIC,EAAE8gB,YAAa9gB,EAAE8gB,YAAahe,EAAG,GAAG,GAAK1E,EAAE4f,OAAOte,EAAII,EAAGD,EAAIG,EAAE+gB,UAAW3iB,EAAEyf,IAAIne,EAAII,EAAIE,EAAE+gB,SAAUlhB,EAAIG,EAAE+gB,SAAU/gB,EAAE+gB,SAAU,GAAIje,GAAG,GAAK1E,EAAE4f,OAAOte,EAAIM,EAAE4gB,QAAS/gB,GAExZ,MAAMmhB,GAAK,IAAIC,OAAO,wCAAyCC,GAAK,IAAID,OAAO,yEAC/E,SAASE,GAAG/iB,EAAGK,GACb,MAAMiB,GAAK,GAAKtB,GAAGgjB,MAAMJ,IACzB,IAAKthB,GAAc,WAATA,EAAE,GACV,OAAW,IAAJjB,EACT,OAAQL,GAAKsB,EAAE,GAAIA,EAAE,IACnB,IAAK,KACH,OAAOtB,EACT,IAAK,IACHA,GAAK,IACL,MAEJ,OAAOK,EAAIL,EAEb,MAAMijB,GAAMjjB,IAAOA,GAAK,EACxB,SAASkjB,GAAGljB,EAAGK,GACb,MAAMiB,EAAI,GAAIG,EAAId,EAAEN,GAAIqB,EAAID,EAAInB,OAAOwB,KAAKzB,GAAKA,EAAGsB,EAAIhB,EAAEX,GAAKyB,EAAKG,GAAMZ,EAAEhB,EAAE4B,GAAI5B,EAAEK,EAAEuB,KAAQA,GAAM5B,EAAE4B,GAAK,IAAM5B,EACjH,IAAK,MAAM4B,KAAKF,EACdJ,EAAEM,GAAKqhB,GAAGthB,EAAEC,IACd,OAAON,EAET,SAAS6hB,GAAGnjB,GACV,OAAOkjB,GAAGljB,EAAG,CAAEqgB,IAAK,IAAKD,MAAO,IAAKE,OAAQ,IAAKH,KAAM,MAE1D,SAASiD,GAAGpjB,GACV,OAAOkjB,GAAGljB,EAAG,CAAC,UAAW,WAAY,aAAc,gBAErD,SAAS4P,GAAE5P,GACT,MAAMK,EAAI8iB,GAAGnjB,GACb,OAAOK,EAAE6d,MAAQ7d,EAAE8f,KAAO9f,EAAE+f,MAAO/f,EAAEye,OAASze,EAAEggB,IAAMhgB,EAAEigB,OAAQjgB,EAElE,SAASgjB,GAAErjB,EAAGK,GACZL,EAAIA,GAAK,GAAIK,EAAIA,GAAKoP,GAAEuM,KACxB,IAAI1a,EAAIN,EAAEhB,EAAE8D,KAAMzD,EAAEyD,MACR,iBAALxC,IAAkBA,EAAIgY,SAAShY,EAAG,KACzC,IAAIG,EAAIT,EAAEhB,EAAEkc,MAAO7b,EAAE6b,OACrBza,KAAO,GAAKA,GAAGuhB,MAAMF,MAAQQ,QAAQC,KAAK,kCAAoC9hB,EAAI,KAAMA,EAAI,IAC5F,MAAMC,EAAI,CACRua,OAAQjb,EAAEhB,EAAEic,OAAQ5b,EAAE4b,QACtBE,WAAY4G,GAAG/hB,EAAEhB,EAAEmc,WAAY9b,EAAE8b,YAAa7a,GAC9CwC,KAAMxC,EACN4a,MAAOza,EACP2a,OAAQpb,EAAEhB,EAAEoc,OAAQ/b,EAAE+b,QACtB+E,OAAQ,IAEV,OAAOzf,EAAEyf,OAASpD,GAAGrc,GAAIA,EAE3B,SAAS8hB,GAAGxjB,EAAGK,EAAGiB,EAAGG,GACnB,IAAYE,EAAGC,EAAGc,EAAdhB,GAAI,EACR,IAAKC,EAAI,EAAGC,EAAI5B,EAAE6B,OAAQF,EAAIC,IAAKD,EACjC,GAAIe,EAAI1C,EAAE2B,QAAU,IAANe,SAAuB,IAANrC,GAA4B,mBAALqC,IAAoBA,EAAIA,EAAErC,GAAIqB,GAAI,QAAW,IAANJ,GAAgBpB,EAAEwC,KAAOA,EAAIA,EAAEpB,EAAIoB,EAAEb,QAASH,GAAI,QAAW,IAANgB,GAClJ,OAAOjB,IAAMC,IAAMD,EAAEgiB,WAAY,GAAK/gB,EAE5C,SAASghB,GAAG1jB,EAAGK,EAAGiB,GAChB,MAAQyE,IAAKtE,EAAGuE,IAAKtE,GAAM1B,EAAG2B,EAAIP,EAAGf,GAAIqB,EAAID,GAAK,GAAIG,EAAI,CAACc,EAAGC,IAAMrB,GAAW,IAANoB,EAAU,EAAIA,EAAIC,EAC3F,MAAO,CACLoD,IAAKnE,EAAEH,GAAI0C,KAAKyB,IAAIjE,IACpBqE,IAAKpE,EAAEF,EAAGC,IAGd,SAASgiB,GAAG3jB,EAAGK,GACb,OAAOC,OAAO+J,OAAO/J,OAAO8B,OAAOpC,GAAIK,GAEzC,SAASujB,GAAG5jB,EAAGK,EAAI,CAAC,IAAKiB,EAAItB,EAAGyB,EAAGC,EAAI,KAAM1B,EAAE,KAC7C2D,EAAGlC,KAAOA,EAAIoiB,GAAG,YAAa7jB,IAC9B,MAAM2B,EAAI,CACR,CAACmiB,OAAOC,aAAc,SACtBC,YAAY,EACZC,QAASjkB,EACTkkB,YAAa5iB,EACbwc,UAAWrc,EACX0iB,WAAYziB,EACZ0iB,SAAWxiB,GAAMgiB,GAAG,CAAChiB,KAAM5B,GAAIK,EAAGiB,EAAGG,IAEvC,OAAO,IAAI4iB,MAAM1iB,EAAG,CAClB,eAAeC,EAAGc,GAChB,cAAcd,EAAEc,UAAWd,EAAE0iB,aAActkB,EAAE,GAAG0C,IAAI,GAEtD,IAAId,EAAGc,GACL,OAAO6hB,GACL3iB,EACAc,EACA,IAAM8hB,GAAG9hB,EAAGrC,EAAGL,EAAG4B,KAGtB,yBAAyBA,EAAGc,GAC1B,OAAO+hB,QAAQC,yBAAyB9iB,EAAEqiB,QAAQ,GAAIvhB,IAExD,iBACE,OAAO+hB,QAAQE,eAAe3kB,EAAE,KAElC,IAAI4B,EAAGc,GACL,OAAOkiB,GAAGhjB,GAAGijB,SAASniB,IAExB,QAAQd,GACN,OAAOgjB,GAAGhjB,IAEZ,IAAIA,EAAGc,EAAGC,GACR,MAAMC,EAAIhB,EAAEkjB,WAAaljB,EAAEkjB,SAAWpjB,KACtC,OAAOE,EAAEc,GAAKE,EAAEF,GAAKC,SAAUf,EAAE0iB,OAAO,KAI9C,SAASS,GAAG/kB,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAI,CACRsiB,YAAY,EACZgB,OAAQhlB,EACRilB,SAAU5kB,EACV6kB,UAAW5jB,EACX6jB,OAAwB,IAAIhd,IAC5Bid,aAAcC,GAAGrlB,EAAGyB,GACpB6jB,WAAa3jB,GAAMojB,GAAG/kB,EAAG2B,EAAGL,EAAGG,GAC/B2iB,SAAWziB,GAAMojB,GAAG/kB,EAAEokB,SAASziB,GAAItB,EAAGiB,EAAGG,IAE3C,OAAO,IAAI4iB,MAAM3iB,EAAG,CAClB,eAAeC,EAAGC,GAChB,cAAcD,EAAEC,UAAW5B,EAAE4B,IAAI,GAEnC,IAAID,EAAGC,EAAGc,GACR,OAAO6hB,GACL5iB,EACAC,EACA,IAAM2jB,GAAG5jB,EAAGC,EAAGc,KAGnB,yBAAyBf,EAAGC,GAC1B,OAAOD,EAAEyjB,aAAaI,QAAUf,QAAQ1gB,IAAI/D,EAAG4B,GAAK,CAAEgG,YAAY,EAAID,cAAc,QAAO,EAAS8c,QAAQC,yBAAyB1kB,EAAG4B,IAE1I,iBACE,OAAO6iB,QAAQE,eAAe3kB,IAEhC,IAAI2B,EAAGC,GACL,OAAO6iB,QAAQ1gB,IAAI/D,EAAG4B,IAExB,UACE,OAAO6iB,QAAQgB,QAAQzlB,IAEzB,IAAI2B,EAAGC,EAAGc,GACR,OAAO1C,EAAE4B,GAAKc,SAAUf,EAAEC,IAAI,KAIpC,SAASyjB,GAAGrlB,EAAGK,EAAI,CAAEqlB,YAAY,EAAIC,WAAW,IAC9C,MAAQhI,YAAarc,EAAIjB,EAAEqlB,WAAY7H,WAAYpc,EAAIpB,EAAEslB,UAAWC,SAAUlkB,EAAIrB,EAAEmlB,SAAYxlB,EAChG,MAAO,CACLwlB,QAAS9jB,EACTgkB,WAAYpkB,EACZqkB,UAAWlkB,EACXokB,aAAcjiB,EAAGtC,GAAKA,EAAI,IAAMA,EAChCwkB,YAAaliB,EAAGnC,GAAKA,EAAI,IAAMA,GAGnC,MAAMskB,GAAK,CAAC/lB,EAAGK,IAAML,EAAIA,EAAIwD,EAAGnD,GAAKA,EAAG2lB,GAAK,CAAChmB,EAAGK,IAAMM,EAAEN,IAAY,aAANL,IAAkD,OAA7BM,OAAOqkB,eAAetkB,IAAeA,EAAE4lB,cAAgB3lB,QAC3I,SAASikB,GAAGvkB,EAAGK,EAAGiB,GAChB,GAAIhB,OAAOC,UAAUwC,eAAetC,KAAKT,EAAGK,GAC1C,OAAOL,EAAEK,GACX,MAAMoB,EAAIH,IACV,OAAOtB,EAAEK,GAAKoB,EAAGA,EAEnB,SAAS8jB,GAAGvlB,EAAGK,EAAGiB,GAChB,MAAQ0jB,OAAQvjB,EAAGwjB,SAAUvjB,EAAGwjB,UAAWvjB,EAAGyjB,aAAcxjB,GAAM5B,EAClE,IAAI0C,EAAIjB,EAAEpB,GACV,OAAOuD,EAAGlB,IAAMd,EAAEikB,aAAaxlB,KAAOqC,EAAIwjB,GAAG7lB,EAAGqC,EAAG1C,EAAGsB,IAAKpB,EAAEwC,IAAMA,EAAEb,SAAWa,EAAIyjB,GAAG9lB,EAAGqC,EAAG1C,EAAG4B,EAAEkkB,cAAeE,GAAG3lB,EAAGqC,KAAOA,EAAIqiB,GAAGriB,EAAGhB,EAAGC,GAAKA,EAAEtB,GAAIuB,IAAKc,EAE7J,SAASwjB,GAAGlmB,EAAGK,EAAGiB,EAAGG,GACnB,MAAQujB,OAAQtjB,EAAGujB,SAAUtjB,EAAGujB,UAAWtjB,EAAGujB,OAAQziB,GAAMpB,EAC5D,GAAIoB,EAAEqB,IAAI/D,GACR,MAAM,IAAIomB,MAAM,uBAAyBjmB,MAAMkI,KAAK3F,GAAG2jB,KAAK,MAAQ,KAAOrmB,GAC7E,OAAO0C,EAAE0F,IAAIpI,GAAIK,EAAIA,EAAEsB,EAAGC,GAAKH,GAAIiB,EAAE4jB,OAAOtmB,GAAIgmB,GAAGhmB,EAAGK,KAAOA,EAAIkmB,GAAG7kB,EAAEuiB,QAASviB,EAAG1B,EAAGK,IAAKA,EAE5F,SAAS8lB,GAAGnmB,EAAGK,EAAGiB,EAAGG,GACnB,MAAQujB,OAAQtjB,EAAGujB,SAAUtjB,EAAGujB,UAAWtjB,EAAGwjB,aAAc1iB,GAAMpB,EAClE,GAAIqC,EAAGhC,EAAEM,QAAUR,EAAEzB,GACnBK,EAAIA,EAAEsB,EAAEM,MAAQ5B,EAAEwB,aACf,GAAIlB,EAAEN,EAAE,IAAK,CAChB,MAAMsC,EAAItC,EAAGuC,EAAIlB,EAAEuiB,QAAQuC,OAAQ5f,GAAMA,IAAMjE,GAC/CtC,EAAI,GACJ,IAAK,MAAMuG,KAAKjE,EAAG,CACjB,MAAM2G,EAAIid,GAAG3jB,EAAGlB,EAAG1B,EAAG4G,GACtBvG,EAAEkD,KAAKwhB,GAAGzb,EAAG3H,EAAGC,GAAKA,EAAE5B,GAAI0C,KAG/B,OAAOrC,EAET,SAASomB,GAAGzmB,EAAGK,EAAGiB,GAChB,OAAOsC,EAAG5D,GAAKA,EAAEK,EAAGiB,GAAKtB,EAE3B,MAAM0mB,GAAK,CAAC1mB,EAAGK,KAAY,IAANL,EAAWK,EAAgB,iBAALL,EAAgBmD,EAAG9C,EAAGL,QAAK,EACtE,SAAS2mB,GAAG3mB,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,IAAK,MAAMC,KAAKtB,EAAG,CACjB,MAAMuB,EAAI8kB,GAAGplB,EAAGK,GAChB,GAAIC,EAAG,CACL5B,EAAEoI,IAAIxG,GACN,MAAMc,EAAI+jB,GAAG7kB,EAAEkc,UAAWxc,EAAGI,GAC7B,GAAIiC,EAAGjB,IAAMA,IAAMpB,GAAKoB,IAAMjB,EAC5B,OAAOiB,OACJ,IAAU,IAANd,GAAY+B,EAAGlC,IAAMH,IAAMG,EACpC,OAAO,KAEX,OAAO,EAET,SAAS8kB,GAAGvmB,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAIrB,EAAE6jB,YAAaviB,EAAI8kB,GAAGpmB,EAAEyd,UAAWxc,EAAGG,GAAIG,EAAI,IAAI5B,KAAM0B,GAAIgB,EAAoB,IAAIyF,IAC9FzF,EAAE0F,IAAI3G,GACN,IAAIkB,EAAIikB,GAAGlkB,EAAGd,EAAGN,EAAGK,GAAKL,EAAGG,GAC5B,QAAa,OAANkB,GAAcgB,EAAGhC,IAAMA,IAAML,IAAMqB,EAAIikB,GAAGlkB,EAAGd,EAAGD,EAAGgB,EAAGlB,GAAU,OAANkB,KAAmBihB,GAClFzjB,MAAMkI,KAAK3F,GACX,CAAC,IACDhB,EACAC,EACA,IAAMklB,GAAGxmB,EAAGiB,EAAGG,IAGnB,SAASmlB,GAAG5mB,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,KAAOJ,GACLA,EAAIqlB,GAAG3mB,EAAGK,EAAGiB,EAAGG,EAAGC,GACrB,OAAOJ,EAET,SAASulB,GAAG7mB,EAAGK,EAAGiB,GAChB,MAAMG,EAAIzB,EAAEmkB,aACZ9jB,KAAKoB,IAAMA,EAAEpB,GAAK,IAClB,MAAMqB,EAAID,EAAEpB,GACZ,OAAOH,EAAEwB,IAAMf,EAAEW,GAAKA,EAAII,EAE5B,SAAS8iB,GAAGxkB,EAAGK,EAAGiB,EAAGG,GACnB,IAAIC,EACJ,IAAK,MAAMC,KAAKtB,EACd,GAAIqB,EAAImiB,GAAGkC,GAAGpkB,EAAG3B,GAAIsB,GAAIqC,EAAGjC,GAC1B,OAAOskB,GAAGhmB,EAAG0B,GAAK6kB,GAAGjlB,EAAGG,EAAGzB,EAAG0B,GAAKA,EAEzC,SAASmiB,GAAG7jB,EAAGK,GACb,IAAK,MAAMiB,KAAKjB,EAAG,CACjB,IAAKiB,EACH,SACF,MAAMG,EAAIH,EAAEtB,GACZ,GAAI2D,EAAGlC,GACL,OAAOA,GAGb,SAASmjB,GAAG5kB,GACV,IAAIK,EAAIL,EAAEskB,MACV,OAAOjkB,IAAMA,EAAIL,EAAEskB,MAAQwC,GAAG9mB,EAAEikB,UAAW5jB,EAE7C,SAASymB,GAAG9mB,GACV,MAAMK,EAAoB,IAAI8H,IAC9B,IAAK,MAAM7G,KAAKtB,EACd,IAAK,MAAMyB,KAAKnB,OAAOwB,KAAKR,GAAGklB,OAAQ9kB,IAAOA,EAAEkc,WAAW,MACzDvd,EAAE+H,IAAI3G,GACV,OAAOtB,MAAMkI,KAAKhI,GAEpB,SAAS0mB,GAAG/mB,EAAGK,EAAGiB,EAAGG,GACnB,MAAQyH,OAAQxH,GAAM1B,GAAKgnB,IAAKrlB,EAAI,KAAQoG,KAAKkf,SAAUrlB,EAAI,IAAIzB,MAAMsB,GACzE,IAAIiB,EAAGC,EAAGC,EAAGgE,EACb,IAAKlE,EAAI,EAAGC,EAAIlB,EAAGiB,EAAIC,IAAKD,EAC1BE,EAAIF,EAAIpB,EAAGsF,EAAIvG,EAAEuC,GAAIhB,EAAEc,GAAK,CAC1Bd,EAAGF,EAAEwlB,MAAM/jB,EAAGyD,EAAGjF,GAAIiB,IAEzB,OAAOhB,EAET,MAAMulB,GAAKtmB,OAAOumB,SAAW,MAAOC,GAAK,CAACrnB,EAAGK,IAAMA,EAAIL,EAAE6B,SAAW7B,EAAEK,GAAGinB,MAAQtnB,EAAEK,GAAIknB,GAAMvnB,GAAY,MAANA,EAAY,IAAM,IACrH,SAASwnB,GAAGxnB,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAI1B,EAAEsnB,KAAOjnB,EAAIL,EAAG2B,EAAItB,EAAGuB,EAAIN,EAAEgmB,KAAOjnB,EAAIiB,EAAGoB,EAAI8D,EAAG7E,EAAGD,GAAIiB,EAAI6D,EAAG5E,EAAGD,GAC7E,IAAIiB,EAAIF,GAAKA,EAAIC,GAAIiE,EAAIjE,GAAKD,EAAIC,GAClCC,EAAI+C,MAAM/C,GAAK,EAAIA,EAAGgE,EAAIjB,MAAMiB,GAAK,EAAIA,EACzC,MAAM0C,EAAI7H,EAAImB,EAAG4G,EAAI/H,EAAImF,EACzB,MAAO,CACL6gB,SAAU,CACRxkB,EAAGtB,EAAEsB,EAAIqG,GAAK1H,EAAEqB,EAAIvB,EAAEuB,GACtBC,EAAGvB,EAAEuB,EAAIoG,GAAK1H,EAAEsB,EAAIxB,EAAEwB,IAExBwkB,KAAM,CACJzkB,EAAGtB,EAAEsB,EAAIuG,GAAK5H,EAAEqB,EAAIvB,EAAEuB,GACtBC,EAAGvB,EAAEuB,EAAIsG,GAAK5H,EAAEsB,EAAIxB,EAAEwB,KAI5B,SAASykB,GAAG3nB,EAAGK,EAAGiB,GAChB,MAAMG,EAAIzB,EAAE6B,OACZ,IAAIH,EAAGC,EAAGC,EAAGc,EAAGC,EAAGC,EAAIykB,GAAGrnB,EAAG,GAC7B,IAAK,IAAI4G,EAAI,EAAGA,EAAInF,EAAI,IAAKmF,EAC3B,GAAIjE,EAAIC,EAAGA,EAAIykB,GAAGrnB,EAAG4G,EAAI,GAAOjE,GAAMC,EAAI,CACxC,GAAIuC,EAAG9E,EAAEuG,GAAI,EAAGugB,IAAK,CACnB7lB,EAAEsF,GAAKtF,EAAEsF,EAAI,GAAK,EAClB,SAEFlF,EAAIJ,EAAEsF,GAAKvG,EAAEuG,GAAIjF,EAAIL,EAAEsF,EAAI,GAAKvG,EAAEuG,GAAIlE,EAAIyB,KAAKiB,IAAI1D,EAAG,GAAKyC,KAAKiB,IAAIzD,EAAG,KAAMe,GAAK,KAAOd,EAAI,EAAIuC,KAAKoB,KAAK7C,GAAIpB,EAAEsF,GAAKlF,EAAIE,EAAIvB,EAAEuG,GAAItF,EAAEsF,EAAI,GAAKjF,EAAIC,EAAIvB,EAAEuG,KAG/J,SAASghB,GAAG5nB,EAAGK,EAAGiB,EAAI,KACpB,MAAMG,EAAI8lB,GAAGjmB,GAAII,EAAI1B,EAAE6B,OACvB,IAAIF,EAAGC,EAAGc,EAAGC,EAAI0kB,GAAGrnB,EAAG,GACvB,IAAK,IAAI4C,EAAI,EAAGA,EAAIlB,IAAKkB,EAAG,CAC1B,GAAIhB,EAAIc,EAAGA,EAAIC,EAAGA,EAAI0kB,GAAGrnB,EAAG4C,EAAI,IAAKF,EACnC,SACF,MAAMkE,EAAIlE,EAAEpB,GAAIgI,EAAI5G,EAAEjB,GACtBG,IAAMD,GAAKiF,EAAIhF,EAAEN,IAAM,EAAGoB,EAAE,MAAMpB,GAAOsF,EAAIjF,EAAGe,EAAE,MAAMjB,GAAO6H,EAAI3H,EAAItB,EAAEuC,IAAKD,IAAMhB,GAAKgB,EAAErB,GAAKsF,GAAK,EAAGlE,EAAE,MAAMpB,GAAOsF,EAAIjF,EAAGe,EAAE,MAAMjB,GAAO6H,EAAI3H,EAAItB,EAAEuC,KAG3J,SAASilB,GAAG7nB,EAAGK,EAAI,KACjB,MAAMiB,EAAIimB,GAAGlnB,GAAIoB,EAAIzB,EAAE6B,OAAQH,EAAIvB,MAAMsB,GAAGse,KAAK,GAAIpe,EAAIxB,MAAMsB,GAC/D,IAAIG,EAAGc,EAAGC,EAAGC,EAAIykB,GAAGrnB,EAAG,GACvB,IAAK4B,EAAI,EAAGA,EAAIH,IAAKG,EACnB,GAAIc,EAAIC,EAAGA,EAAIC,EAAGA,EAAIykB,GAAGrnB,EAAG4B,EAAI,GAAMe,EAAG,CACvC,GAAIC,EAAG,CACL,MAAMgE,EAAIhE,EAAEvC,GAAKsC,EAAEtC,GACnBqB,EAAEE,GAAW,IAANgF,GAAWhE,EAAEtB,GAAKqB,EAAErB,IAAMsF,EAAI,EAEvCjF,EAAEC,GAAKc,EAAIE,EAAImC,EAAGrD,EAAEE,EAAI,MAAQmD,EAAGrD,EAAEE,IAAM,GAAKF,EAAEE,EAAI,GAAKF,EAAEE,IAAM,EAAIF,EAAEE,EAAI,GAAKF,EAAEE,GAExF+lB,GAAG3nB,EAAG0B,EAAGC,GAAIimB,GAAG5nB,EAAG2B,EAAGtB,GAExB,SAASynB,GAAG9nB,EAAGK,EAAGiB,GAChB,OAAO6C,KAAK6B,IAAI7B,KAAK4B,IAAI/F,EAAGsB,GAAIjB,GAElC,SAAS0nB,GAAG/nB,EAAGK,GACb,IAAIiB,EAAGG,EAAGC,EAAGC,EAAGC,EAAGc,EAAIwd,GAAGlgB,EAAE,GAAIK,GAChC,IAAKiB,EAAI,EAAGG,EAAIzB,EAAE6B,OAAQP,EAAIG,IAAKH,EACjCM,EAAID,EAAGA,EAAIe,EAAGA,EAAIpB,EAAIG,EAAI,GAAKye,GAAGlgB,EAAEsB,EAAI,GAAIjB,GAAIsB,IAAMD,EAAI1B,EAAEsB,GAAIM,IAAMF,EAAEkf,KAAOkH,GAAGpmB,EAAEkf,KAAMvgB,EAAE8f,KAAM9f,EAAE+f,OAAQ1e,EAAEof,KAAOgH,GAAGpmB,EAAEof,KAAMzgB,EAAEggB,IAAKhgB,EAAEigB,SAAU5d,IAAMhB,EAAEmf,KAAOiH,GAAGpmB,EAAEmf,KAAMxgB,EAAE8f,KAAM9f,EAAE+f,OAAQ1e,EAAEqf,KAAO+G,GAAGpmB,EAAEqf,KAAM1gB,EAAEggB,IAAKhgB,EAAEigB,UAEhO,SAAS0H,GAAGhoB,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,IAAIC,EAAGC,EAAGc,EAAGC,EACb,GAAItC,EAAE4nB,WAAajoB,EAAIA,EAAEwmB,OAAQ5jB,IAAOA,EAAE0kB,OAAqC,aAA7BjnB,EAAE6nB,uBAClDL,GAAG7nB,EAAG0B,OACH,CACH,IAAIkB,EAAInB,EAAIzB,EAAEA,EAAE6B,OAAS,GAAK7B,EAAE,GAChC,IAAK2B,EAAI,EAAGC,EAAI5B,EAAE6B,OAAQF,EAAIC,IAAKD,EACjCe,EAAI1C,EAAE2B,GAAIgB,EAAI6kB,GACZ5kB,EACAF,EACA1C,EAAEmE,KAAK4B,IAAIpE,EAAI,EAAGC,GAAKH,EAAI,EAAI,IAAMG,GACrCvB,EAAE8nB,SACDzlB,EAAEke,KAAOje,EAAE8kB,SAASxkB,EAAGP,EAAEoe,KAAOne,EAAE8kB,SAASvkB,EAAGR,EAAEme,KAAOle,EAAE+kB,KAAKzkB,EAAGP,EAAEqe,KAAOpe,EAAE+kB,KAAKxkB,EAAGN,EAAIF,EAE/FrC,EAAE+nB,iBAAmBL,GAAG/nB,EAAGsB,GAE7B,SAAS+mB,KACP,cAAc9f,OAAS,YAAc+f,SAAW,IAElD,SAASC,GAAGvoB,GACV,IAAIK,EAAIL,EAAEwoB,WACV,OAAOnoB,GAAsB,wBAAjBA,EAAEG,aAAyCH,EAAIA,EAAEooB,MAAOpoB,EAEtE,SAASqoB,GAAG1oB,EAAGK,EAAGiB,GAChB,IAAIG,EACJ,MAAmB,iBAALzB,GAAiByB,EAAI6X,SAAStZ,EAAG,KAAyB,IAApBA,EAAEsC,QAAQ,OAAgBb,EAAIA,EAAI,IAAMpB,EAAEmoB,WAAWlnB,KAAOG,EAAIzB,EAAGyB,EAEzH,MAAMknB,GAAM3oB,GAAMuI,OAAOqgB,iBAAiB5oB,EAAG,MAC7C,SAAS6oB,GAAG7oB,EAAGK,GACb,OAAOsoB,GAAG3oB,GAAG8oB,iBAAiBzoB,GAEhC,MAAM0oB,GAAK,CAAC,MAAO,QAAS,SAAU,QACtC,SAASC,GAAGhpB,EAAGK,EAAGiB,GAChB,MAAMG,EAAI,GACVH,EAAIA,EAAI,IAAMA,EAAI,GAClB,IAAK,IAAII,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAMC,EAAIonB,GAAGrnB,GACbD,EAAEE,GAAKR,WAAWnB,EAAEK,EAAI,IAAMsB,EAAIL,KAAO,EAE3C,OAAOG,EAAEyc,MAAQzc,EAAE0e,KAAO1e,EAAE2e,MAAO3e,EAAEqd,OAASrd,EAAE4e,IAAM5e,EAAE6e,OAAQ7e,EAElE,MAAMwnB,GAAK,CAACjpB,EAAGK,EAAGiB,KAAOtB,EAAI,GAAKK,EAAI,MAAQiB,IAAMA,EAAE4nB,YACtD,SAASC,GAAGnpB,EAAGK,GACb,MAAMiB,EAAItB,EAAEopB,QAAS3nB,EAAIH,GAAKA,EAAEO,OAASP,EAAE,GAAKtB,GAAKqpB,QAAS3nB,EAAG4nB,QAAS3nB,GAAMF,EAChF,IAAYiB,EAAGC,EAAXf,GAAI,EACR,GAAIqnB,GAAGvnB,EAAGC,EAAG3B,EAAEupB,QACb7mB,EAAIhB,EAAGiB,EAAIhB,MACR,CACH,MAAMiB,EAAIvC,EAAEmpB,wBACZ9mB,EAAIjB,EAAEgoB,QAAU7mB,EAAEud,KAAMxd,EAAIlB,EAAEioB,QAAU9mB,EAAEyd,IAAKze,GAAI,EAErD,MAAO,CAAEqB,EAAGP,EAAGQ,EAAGP,EAAGgnB,IAAK/nB,GAE5B,SAASgoB,GAAG5pB,EAAGK,GACb,GAAI,WAAYL,EACd,OAAOA,EACT,MAAQ6pB,OAAQvoB,EAAGmd,wBAAyBhd,GAAMpB,EAAGqB,EAAIinB,GAAGrnB,GAAIK,EAAoB,eAAhBD,EAAEooB,UAA4BloB,EAAIonB,GAAGtnB,EAAG,WAAYgB,EAAIsmB,GAAGtnB,EAAG,SAAU,UAAYuB,EAAGN,EAAGO,EAAGN,EAAG+mB,IAAK/iB,GAAMuiB,GAAGnpB,EAAGsB,GAAIgI,EAAI1H,EAAEue,MAAQvZ,GAAKlE,EAAEyd,MAAO3W,EAAI5H,EAAEye,KAAOzZ,GAAKlE,EAAE2d,KACzO,IAAMnC,MAAOxQ,EAAGoR,OAAQ9Q,GAAM3N,EAC9B,OAAOsB,IAAM+L,GAAK9L,EAAEsc,MAAQxb,EAAEwb,MAAOlQ,GAAKpM,EAAEkd,OAASpc,EAAEoc,QAAS,CAC9D7b,EAAGkB,KAAKe,OAAOvC,EAAI2G,GAAKoE,EAAIpM,EAAE4c,MAAQzc,GACtCyB,EAAGiB,KAAKe,OAAOtC,EAAI4G,GAAKwE,EAAI1M,EAAEwd,OAASrd,IAG3C,SAASsoB,GAAG/pB,EAAGK,EAAGiB,GAChB,IAAIG,EAAGC,EACP,QAAU,IAANrB,QAAsB,IAANiB,EAAc,CAChC,MAAMK,EAAI4mB,GAAGvoB,GACb,GAAK2B,EAEA,CACH,MAAMC,EAAID,EAAE6nB,wBAAyB9mB,EAAIimB,GAAGhnB,GAAIgB,EAAIqmB,GAAGtmB,EAAG,SAAU,SAAUE,EAAIomB,GAAGtmB,EAAG,WACxFrC,EAAIuB,EAAEsc,MAAQtb,EAAEsb,MAAQvb,EAAEub,MAAO5c,EAAIM,EAAEkd,OAASlc,EAAEkc,OAASnc,EAAEmc,OAAQrd,EAAIinB,GAAGhmB,EAAE8e,SAAU7f,EAAG,eAAgBD,EAAIgnB,GAAGhmB,EAAEsnB,UAAWroB,EAAG,qBAHlItB,EAAIL,EAAEiqB,YAAa3oB,EAAItB,EAAEkqB,aAM7B,MAAO,CACLhM,MAAO7d,EACPye,OAAQxd,EACRkgB,SAAU/f,GAAK8C,EACfylB,UAAWtoB,GAAK6C,GAGpB,MAAM4lB,GAAMnqB,GAAMmE,KAAKe,MAAU,GAAJlF,GAAU,GACvC,SAASoqB,GAAGpqB,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAIinB,GAAG3oB,GAAI2B,EAAIqnB,GAAGtnB,EAAG,UAAWE,EAAI8mB,GAAGhnB,EAAE8f,SAAUxhB,EAAG,gBAAkBuE,EAAI7B,EAAIgmB,GAAGhnB,EAAEsoB,UAAWhqB,EAAG,iBAAmBuE,EAAI5B,EAAIonB,GAAG/pB,EAAGK,EAAGiB,GAC7I,IAAM4c,MAAOtb,EAAGkc,OAAQlY,GAAMjE,EAC9B,GAAoB,gBAAhBjB,EAAEooB,UAA6B,CACjC,MAAMxgB,EAAI0f,GAAGtnB,EAAG,SAAU,SAAU8H,EAAIwf,GAAGtnB,EAAG,WAC9CkB,GAAK4G,EAAE0U,MAAQ5U,EAAE4U,MAAOtX,GAAK4C,EAAEsV,OAASxV,EAAEwV,OAE5C,OAAOlc,EAAIuB,KAAK6B,IAAI,EAAGpD,EAAIjB,EAAEuc,OAAQtX,EAAIzC,KAAK6B,IAAI,EAAGvE,EAAI0C,KAAKkB,MAAMzC,EAAInB,GAAKmF,EAAIjF,EAAEmd,QAASlc,EAAIunB,GAAGhmB,KAAK4B,IAAInD,EAAGhB,EAAGe,EAAE6e,WAAY5a,EAAIujB,GAAGhmB,KAAK4B,IAAIa,EAAGlE,EAAGC,EAAEqnB,YAAapnB,IAAMgE,IAAMA,EAAIujB,GAAGvnB,EAAI,IAAK,CAC/Lsb,MAAOtb,EACPkc,OAAQlY,GAGZ,SAASyjB,GAAGrqB,EAAGK,EAAGiB,GAChB,MAAMG,EAAIpB,GAAK,EAAGqB,EAAIyC,KAAKkB,MAAMrF,EAAE8e,OAASrd,GAAIE,EAAIwC,KAAKkB,MAAMrF,EAAEke,MAAQzc,GACzEzB,EAAE8e,OAASpd,EAAID,EAAGzB,EAAEke,MAAQvc,EAAIF,EAChC,MAAMG,EAAI5B,EAAE6pB,OACZ,OAAOjoB,EAAEsa,QAAU5a,IAAMM,EAAEsa,MAAM4C,SAAWld,EAAEsa,MAAMgC,SAAWtc,EAAEsa,MAAM4C,OAAY9e,EAAE8e,OAAL,KAAiBld,EAAEsa,MAAMgC,MAAWle,EAAEke,MAAL,OAAiBle,EAAEye,0BAA4Bhd,GAAKG,EAAEkd,SAAWpd,GAAKE,EAAEsc,QAAUvc,KAAK3B,EAAEye,wBAA0Bhd,EAAGG,EAAEkd,OAASpd,EAAGE,EAAEsc,MAAQvc,EAAG3B,EAAEsqB,IAAIC,aAAa9oB,EAAG,EAAG,EAAGA,EAAG,EAAG,IAAI,GAE1S,MAAM+oB,GAAK,WACT,IAAIxqB,GAAI,EACR,IACE,MAAMK,EAAI,CACR,cACE,OAAOL,GAAI,GAAI,IAGnBuI,OAAOkiB,iBAAiB,OAAQ,KAAMpqB,GAAIkI,OAAOmiB,oBAAoB,OAAQ,KAAMrqB,GACnF,OAEF,OAAOL,EAXE,GAaX,SAAS2qB,GAAG3qB,EAAGK,GACb,MAAMiB,EAAIunB,GAAG7oB,EAAGK,GAAIoB,EAAIH,GAAKA,EAAE0hB,MAAM,qBACrC,OAAOvhB,GAAKA,EAAE,QAAK,EAErB,SAASmpB,GAAG5qB,EAAGK,EAAGiB,EAAGG,GACnB,MAAO,CACLwB,EAAGjD,EAAEiD,EAAI3B,GAAKjB,EAAE4C,EAAIjD,EAAEiD,GACtBC,EAAGlD,EAAEkD,EAAI5B,GAAKjB,EAAE6C,EAAIlD,EAAEkD,IAG1B,SAAS2nB,GAAG7qB,EAAGK,EAAGiB,EAAGG,GACnB,MAAO,CACLwB,EAAGjD,EAAEiD,EAAI3B,GAAKjB,EAAE4C,EAAIjD,EAAEiD,GACtBC,EAAS,WAANzB,EAAiBH,EAAI,GAAMtB,EAAEkD,EAAI7C,EAAE6C,EAAU,UAANzB,EAAgBH,EAAI,EAAItB,EAAEkD,EAAI7C,EAAE6C,EAAI5B,EAAI,EAAIjB,EAAE6C,EAAIlD,EAAEkD,GAGlG,SAAS4nB,GAAG9qB,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAI,CAAEuB,EAAGjD,EAAE6gB,KAAM3d,EAAGlD,EAAE+gB,MAAQpf,EAAI,CAAEsB,EAAG5C,EAAEugB,KAAM1d,EAAG7C,EAAEygB,MAAQlf,EAAIgpB,GAAG5qB,EAAG0B,EAAGJ,GAAIoB,EAAIkoB,GAAGlpB,EAAGC,EAAGL,GAAIqB,EAAIioB,GAAGjpB,EAAGtB,EAAGiB,GAAIsB,EAAIgoB,GAAGhpB,EAAGc,EAAGpB,GAAIsF,EAAIgkB,GAAGloB,EAAGC,EAAGrB,GACnJ,OAAOspB,GAAGhoB,EAAGgE,EAAGtF,GAElB,MAAMypB,GAAqB,IAAIC,IAC/B,SAASC,GAAGjrB,EAAGK,GACbA,EAAIA,GAAK,GACT,MAAMiB,EAAItB,EAAIkrB,KAAKC,UAAU9qB,GAC7B,IAAIoB,EAAIspB,GAAGK,IAAI9pB,GACf,OAAOG,IAAMA,EAAI,IAAI4pB,KAAKC,aAAatrB,EAAGK,GAAI0qB,GAAGQ,IAAIjqB,EAAGG,IAAKA,EAE/D,SAAS+pB,GAAGxrB,EAAGK,EAAGiB,GAChB,OAAO2pB,GAAG5qB,EAAGiB,GAAGmqB,OAAOzrB,GAEzB,MAAM0rB,GAAK,SAAS1rB,EAAGK,GACrB,MAAO,CACL,EAAEiB,GACA,OAAOtB,EAAIA,EAAIK,EAAIiB,GAErB,SAASA,GACPjB,EAAIiB,GAEN,UAAUA,GACR,MAAa,WAANA,EAAiBA,EAAU,UAANA,EAAgB,OAAS,SAEvD,MAAMA,EAAGG,GACP,OAAOH,EAAIG,GAEb,WAAWH,EAAGG,GACZ,OAAOH,EAAIG,KAGdkqB,GAAK,WACN,MAAO,CACL,EAAE3rB,GACA,OAAOA,GAET,SAASA,KAET,UAAUA,GACR,OAAOA,GAET,MAAMA,EAAGK,GACP,OAAOL,EAAIK,GAEb,WAAWL,EAAGK,GACZ,OAAOL,KAIb,SAAS4rB,GAAG5rB,EAAGK,EAAGiB,GAChB,OAAOtB,EAAI0rB,GAAGrrB,EAAGiB,GAAKqqB,KAExB,SAASE,GAAG7rB,EAAGK,GACb,IAAIiB,EAAGG,GACA,QAANpB,GAAqB,QAANA,KAAiBiB,EAAItB,EAAE6pB,OAAO3N,MAAOza,EAAI,CACvDH,EAAEwnB,iBAAiB,aACnBxnB,EAAEwqB,oBAAoB,cACrBxqB,EAAEyqB,YAAY,YAAa1rB,EAAG,aAAcL,EAAEgsB,kBAAoBvqB,GAEvE,SAASwqB,GAAGjsB,EAAGK,QACP,IAANA,WAAwBL,EAAEgsB,kBAAmBhsB,EAAE6pB,OAAO3N,MAAM6P,YAAY,YAAa1rB,EAAE,GAAIA,EAAE,KAE/F,SAAS6rB,GAAGlsB,GACV,MAAa,UAANA,EAAgB,CACrBmsB,QAASxlB,GACTylB,QAAS3lB,EACT4lB,UAAW3lB,GACT,CACFylB,QAASplB,GACTqlB,QAAS,CAAC/rB,EAAGiB,IAAMjB,EAAIiB,EACvB+qB,UAAYhsB,GAAMA,GAGtB,SAASisB,IAAK3iB,MAAO3J,EAAGusB,IAAKlsB,EAAGuJ,MAAOtI,EAAGkrB,KAAM/qB,EAAGya,MAAOxa,IACxD,MAAO,CACLiI,MAAO3J,EAAIsB,EACXirB,IAAKlsB,EAAIiB,EACTkrB,KAAM/qB,IAAMpB,EAAIL,EAAI,GAAKsB,IAAM,EAC/B4a,MAAOxa,GAGX,SAAS+qB,GAAGzsB,EAAGK,EAAGiB,GAChB,MAAQorB,SAAUjrB,EAAGkI,MAAOjI,EAAG6qB,IAAK5qB,GAAML,GAAK6qB,QAASvqB,EAAGyqB,UAAW3pB,GAAMwpB,GAAGzqB,GAAIkB,EAAItC,EAAEwB,OACzF,IAAuC2H,EAAGkE,GAApC/D,MAAO/G,EAAG2pB,IAAK3lB,EAAG4lB,KAAMljB,GAAMtJ,EACpC,GAAIsJ,EAAG,CACL,IAAK1G,GAAKD,EAAGiE,GAAKjE,EAAG6G,EAAI,EAAGkE,EAAI/K,EAAG6G,EAAIkE,GAAK9L,EAAEc,EAAErC,EAAEuC,EAAID,GAAGlB,IAAKC,EAAGC,KAAM6H,EACrE5G,IAAKgE,IACPhE,GAAKD,EAAGiE,GAAKjE,EAEf,OAAOiE,EAAIhE,IAAMgE,GAAKjE,GAAI,CAAEgH,MAAO/G,EAAG2pB,IAAK3lB,EAAG4lB,KAAMljB,EAAG4S,MAAOlc,EAAEkc,OAElE,SAASyQ,GAAG3sB,EAAGK,EAAGiB,GAChB,IAAKA,EACH,MAAO,CAACtB,GACV,MAAQ0sB,SAAUjrB,EAAGkI,MAAOjI,EAAG6qB,IAAK5qB,GAAML,EAAGM,EAAIvB,EAAEwB,QAAUuqB,QAAS1pB,EAAGypB,QAASxpB,EAAG0pB,UAAWzpB,GAAMspB,GAAGzqB,IAAMkI,MAAO/C,EAAG2lB,IAAKjjB,EAAGkjB,KAAMhjB,EAAG0S,MAAOxO,GAAM+e,GAAGzsB,EAAGK,EAAGiB,GAAI0M,EAAI,GACxK,IAAsBP,EAAGxK,EAAG2pB,EAAxBC,GAAI,EAAIC,EAAI,KAChB,MAAM5pB,EAAI,IAAMP,EAAEjB,EAAGkrB,EAAGnf,IAAkB,IAAZ/K,EAAEhB,EAAGkrB,GAAUG,EAAI,IAAkB,IAAZrqB,EAAEf,EAAG8L,IAAY9K,EAAEhB,EAAGirB,EAAGnf,GAAIiC,EAAI,IAAMmd,GAAK3pB,IAAK8pB,EAAI,KAAOH,GAAKE,IACxH,IAAK,IAAIzd,EAAI1I,EAAG2b,EAAI3b,EAAG0I,GAAKhG,IAAKgG,EAC/BrM,EAAI5C,EAAEiP,EAAI1N,IAAKqB,EAAEqkB,OAAS7Z,EAAI7K,EAAEK,EAAExB,IAAKgM,IAAMmf,IAAMC,EAAIlqB,EAAE8K,EAAG/L,EAAGC,GAAU,OAANmrB,GAAcpd,MAAQod,EAAgB,IAAZpqB,EAAE+K,EAAG/L,GAAW4N,EAAIiT,GAAU,OAANuK,GAAcE,MAAQhf,EAAEzK,KAAK+oB,GAAG,CAAE3iB,MAAOmjB,EAAGP,IAAKjd,EAAGkd,KAAMhjB,EAAGI,MAAOhI,EAAGsa,MAAOxO,KAAOof,EAAI,MAAOvK,EAAIjT,EAAGsd,EAAInf,IAClO,OAAa,OAANqf,GAAc9e,EAAEzK,KAAK+oB,GAAG,CAAE3iB,MAAOmjB,EAAGP,IAAKjjB,EAAGkjB,KAAMhjB,EAAGI,MAAOhI,EAAGsa,MAAOxO,KAAOM,EAEtF,SAASif,GAAGjtB,EAAGK,GACb,MAAMiB,EAAI,GAAIG,EAAIzB,EAAEktB,SACpB,IAAK,IAAIxrB,EAAI,EAAGA,EAAID,EAAEI,OAAQH,IAAK,CACjC,MAAMC,EAAIgrB,GAAGlrB,EAAEC,GAAI1B,EAAEmtB,OAAQ9sB,GAC7BsB,EAAEE,QAAUP,EAAEiC,QAAQ5B,GAExB,OAAOL,EAET,SAAS8rB,GAAGptB,EAAGK,EAAGiB,EAAGG,GACnB,IAAIC,EAAI,EAAGC,EAAItB,EAAI,EACnB,GAAIiB,IAAMG,EACR,KAAOC,EAAIrB,IAAML,EAAE0B,GAAG4lB,MACpB5lB,IACJ,KAAOA,EAAIrB,GAAKL,EAAE0B,GAAG4lB,MACnB5lB,IACF,IAAKA,GAAKrB,EAAGiB,IAAMK,GAAKD,GAAIC,EAAID,GAAK1B,EAAE2B,EAAItB,GAAGinB,MAC5C3lB,IACF,OAAOA,GAAKtB,EAAG,CAAEsJ,MAAOjI,EAAG6qB,IAAK5qB,GAElC,SAAS0rB,GAAGrtB,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAI1B,EAAE6B,OAAQF,EAAI,GACxB,IAAqBgB,EAAjBf,EAAIvB,EAAGqC,EAAI1C,EAAEK,GACjB,IAAKsC,EAAItC,EAAI,EAAGsC,GAAKrB,IAAKqB,EAAG,CAC3B,MAAMC,EAAI5C,EAAE2C,EAAIjB,GAChBkB,EAAE0kB,MAAQ1kB,EAAE0qB,KAAO5qB,EAAE4kB,OAAS7lB,GAAI,EAAIE,EAAE4B,KAAK,CAAEoG,MAAOtJ,EAAIqB,EAAG6qB,KAAM5pB,EAAI,GAAKjB,EAAG8qB,KAAM/qB,IAAMpB,EAAIuB,EAAIgB,EAAE0qB,KAAO3qB,EAAI,OAASf,EAAIe,EAAGD,EAAE4kB,OAASjnB,EAAIsC,IAAKD,EAAIE,EAE1J,OAAa,OAANhB,GAAcD,EAAE4B,KAAK,CAAEoG,MAAOtJ,EAAIqB,EAAG6qB,IAAK3qB,EAAIF,EAAG8qB,KAAM/qB,IAAME,EAEtE,SAAS4rB,GAAGvtB,EAAGK,GACb,MAAMiB,EAAItB,EAAEmtB,OAAQ1rB,EAAIzB,EAAEwtB,QAAQvF,SAAUvmB,EAAIJ,EAAEO,OAClD,IAAKH,EACH,MAAO,GACT,MAAMC,IAAM3B,EAAEytB,OAAS9jB,MAAO/H,EAAG2qB,IAAK7pB,GAAM0qB,GAAG9rB,EAAGI,EAAGC,EAAGF,GACxD,IAAU,IAANA,EACF,OAAOisB,GAAG1tB,EAAG,CAAC,CAAE2J,MAAO/H,EAAG2qB,IAAK7pB,EAAG8pB,KAAM7qB,IAAML,EAAGjB,GACnD,MAAMsC,EAAID,EAAId,EAAIc,EAAIhB,EAAIgB,EAAGE,IAAM5C,EAAE2tB,WAAmB,IAAN/rB,GAAWc,IAAMhB,EAAI,EACvE,OAAOgsB,GAAG1tB,EAAGqtB,GAAG/rB,EAAGM,EAAGe,EAAGC,GAAItB,EAAGjB,GAElC,SAASqtB,GAAG1tB,EAAGK,EAAGiB,EAAGG,GACnB,OAAQA,GAAMA,EAAE6jB,YAAehkB,EAAQssB,GAAG5tB,EAAGK,EAAGiB,EAAGG,GAAhBpB,EAErC,SAASutB,GAAG5tB,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAI1B,EAAE6tB,OAAOlP,aAAchd,EAAImsB,GAAG9tB,EAAEwtB,UAAYO,cAAensB,EAAG4rB,SAAWvF,SAAUvlB,IAAQ1C,EAAG2C,EAAIrB,EAAEO,OAAQe,EAAI,GAC1H,IAAIgE,EAAIjF,EAAG2H,EAAIjJ,EAAE,GAAGsJ,MAAOH,EAAIF,EAC/B,SAASoE,EAAEM,EAAG6e,EAAGC,EAAGrf,GAClB,MAAMxK,EAAIP,GAAK,EAAI,EACnB,GAAIsL,IAAM6e,EAAG,CACX,IAAK7e,GAAKrL,EAAGrB,EAAE0M,EAAIrL,GAAG2kB,MACpBtZ,GAAK/K,EACP,KAAO3B,EAAEurB,EAAIlqB,GAAG2kB,MACduF,GAAK5pB,EACP+K,EAAIrL,IAAMkqB,EAAIlqB,IAAMC,EAAEW,KAAK,CAAEoG,MAAOqE,EAAIrL,EAAG4pB,IAAKM,EAAIlqB,EAAG6pB,KAAMM,EAAG5Q,MAAOzO,IAAM7G,EAAI6G,EAAGnE,EAAIujB,EAAIlqB,IAGhG,IAAK,MAAMqL,KAAK3N,EAAG,CACjBiJ,EAAI5G,EAAI4G,EAAI0E,EAAErE,MACd,IAAkBmjB,EAAdD,EAAIvrB,EAAEgI,EAAI3G,GACd,IAAK6G,EAAIF,EAAI,EAAGE,GAAKwE,EAAEue,IAAK/iB,IAAK,CAC/B,MAAMiE,EAAInM,EAAEkI,EAAI7G,GAChBmqB,EAAIgB,GAAGrsB,EAAE6jB,WAAW3B,GAAGjiB,EAAG,CACxBuC,KAAM,UACN+pB,GAAInB,EACJoB,GAAIxgB,EACJygB,aAAc1kB,EAAI,GAAK7G,EACvBwrB,YAAa3kB,EAAI7G,EACjBX,aAAcJ,MACVwsB,GAAGtB,EAAGlmB,IAAM8G,EAAEpE,EAAGE,EAAI,EAAGwE,EAAEwe,KAAM5lB,GAAIimB,EAAIpf,EAAG7G,EAAIkmB,EAEvDxjB,EAAIE,EAAI,GAAKkE,EAAEpE,EAAGE,EAAI,EAAGwE,EAAEwe,KAAM5lB,GAEnC,OAAOhE,EAET,SAASkrB,GAAG9tB,GACV,MAAO,CACLsb,gBAAiBtb,EAAEsb,gBACnB+S,eAAgBruB,EAAEquB,eAClBC,WAAYtuB,EAAEsuB,WACdC,iBAAkBvuB,EAAEuuB,iBACpBC,gBAAiBxuB,EAAEwuB,gBACnBxO,YAAahgB,EAAEggB,YACfzE,YAAavb,EAAEub,aAGnB,SAAS6S,GAAGpuB,EAAGK,GACb,OAAOA,GAAK6qB,KAAKC,UAAUnrB,KAAOkrB,KAAKC,UAAU9qB;;;;;;GAQnD,MAAMouB,GACJ,cACE1mB,KAAK2mB,SAAW,KAAM3mB,KAAK4mB,QAA0B,IAAI3D,IAAOjjB,KAAK6mB,UAAW,EAAI7mB,KAAK8mB,eAAY,EAEvG,QAAQxuB,EAAGiB,EAAGG,EAAGC,GACf,MAAMC,EAAIL,EAAEmG,UAAU/F,GAAIE,EAAIN,EAAEwtB,SAChCntB,EAAEmG,QAASpF,GAAMA,EAAE,CACjBiZ,MAAOtb,EACP0uB,QAASztB,EAAEytB,QACXC,SAAUptB,EACVqtB,YAAa9qB,KAAK4B,IAAItE,EAAIH,EAAEqI,MAAO/H,MAGvC,WACEmG,KAAK2mB,WAAa3mB,KAAK6mB,UAAW,EAAI7mB,KAAK2mB,SAAWpmB,GAAG7H,KAAK8H,OAAQ,KACpER,KAAKmnB,UAAWnnB,KAAK2mB,SAAW,KAAM3mB,KAAK6mB,UAAY7mB,KAAKonB,cAGhE,QAAQ9uB,EAAI+uB,KAAKC,OACf,IAAI/tB,EAAI,EACRyG,KAAK4mB,QAAQ7mB,QAAQ,CAACrG,EAAGC,KACvB,IAAKD,EAAE6tB,UAAY7tB,EAAE8tB,MAAM1tB,OACzB,OACF,MAAMF,EAAIF,EAAE8tB,MACZ,IAA8B5sB,EAA1Bf,EAAID,EAAEE,OAAS,EAAGa,GAAI,EAC1B,KAAOd,GAAK,IAAKA,EACfe,EAAIhB,EAAEC,GAAIe,EAAE6sB,SAAW7sB,EAAE8sB,OAAShuB,EAAEqtB,WAAartB,EAAEqtB,SAAWnsB,EAAE8sB,QAAS9sB,EAAE+sB,KAAKrvB,GAAIqC,GAAI,IAAOf,EAAEC,GAAKD,EAAEA,EAAEE,OAAS,GAAIF,EAAE8D,OAC3H/C,IAAMhB,EAAEiuB,OAAQ5nB,KAAK6nB,QAAQluB,EAAGD,EAAGpB,EAAG,aAAcsB,EAAEE,SAAWJ,EAAE6tB,SAAU,EAAIvnB,KAAK6nB,QAAQluB,EAAGD,EAAGpB,EAAG,YAAaoB,EAAEstB,SAAU,GAAKztB,GAAKK,EAAEE,SAC1IkG,KAAK8mB,UAAYxuB,EAAS,IAANiB,IAAYyG,KAAK6mB,UAAW,GAEtD,UAAUvuB,GACR,MAAMiB,EAAIyG,KAAK4mB,QACf,IAAIltB,EAAIH,EAAE8pB,IAAI/qB,GACd,OAAOoB,IAAMA,EAAI,CACf6tB,SAAS,EACTP,SAAS,EACTQ,MAAO,GACP9nB,UAAW,CACTooB,SAAU,GACVC,SAAU,KAEXxuB,EAAEiqB,IAAIlrB,EAAGoB,IAAKA,EAEnB,OAAOpB,EAAGiB,EAAGG,GACXsG,KAAKgoB,UAAU1vB,GAAGoH,UAAUnG,GAAGiC,KAAK9B,GAEtC,IAAIpB,EAAGiB,IACJA,IAAMA,EAAEO,QAAUkG,KAAKgoB,UAAU1vB,GAAGkvB,MAAMhsB,QAAQjC,GAErD,IAAIjB,GACF,OAAO0H,KAAKgoB,UAAU1vB,GAAGkvB,MAAM1tB,OAAS,EAE1C,MAAMxB,GACJ,MAAMiB,EAAIyG,KAAK4mB,QAAQvD,IAAI/qB,GAC3BiB,IAAMA,EAAEguB,SAAU,EAAIhuB,EAAEqI,MAAQylB,KAAKC,MAAO/tB,EAAEwtB,SAAWxtB,EAAEiuB,MAAMS,OAAO,CAACvuB,EAAGC,IAAMyC,KAAK6B,IAAIvE,EAAGC,EAAEuuB,WAAY,GAAIloB,KAAKonB,YAEvH,QAAQ9uB,GACN,IAAK0H,KAAK6mB,SACR,OAAO,EACT,MAAMttB,EAAIyG,KAAK4mB,QAAQvD,IAAI/qB,GAC3B,SAAUiB,IAAMA,EAAEguB,UAAYhuB,EAAEiuB,MAAM1tB,QAExC,KAAKxB,GACH,MAAMiB,EAAIyG,KAAK4mB,QAAQvD,IAAI/qB,GAC3B,IAAKiB,IAAMA,EAAEiuB,MAAM1tB,OACjB,OACF,MAAMJ,EAAIH,EAAEiuB,MACZ,IAAI7tB,EAAID,EAAEI,OAAS,EACnB,KAAOH,GAAK,IAAKA,EACfD,EAAEC,GAAGwuB,SACP5uB,EAAEiuB,MAAQ,GAAIxnB,KAAK6nB,QAAQvvB,EAAGiB,EAAG8tB,KAAKC,MAAO,YAE/C,OAAOhvB,GACL,OAAO0H,KAAK4mB,QAAQrI,OAAOjmB,IAG/B,IAAI8vB,GAAK,IAAI1B,GACb,MAAM2B,GAAK,cAAeC,GAAK,CAC7B,QAAQrwB,EAAGK,EAAGiB,GACZ,OAAOA,EAAI,GAAMjB,EAAIL,GAEvB,MAAMA,EAAGK,EAAGiB,GACV,MAAMG,EAAIkZ,GAAG3a,GAAKowB,IAAK1uB,EAAID,EAAE6uB,OAAS3V,GAAGta,GAAK+vB,IAC9C,OAAO1uB,GAAKA,EAAE4uB,MAAQ5uB,EAAE6uB,IAAI9uB,EAAGH,GAAGyZ,YAAc1a,GAElD,OAAOL,EAAGK,EAAGiB,GACX,OAAOtB,GAAKK,EAAIL,GAAKsB,IAGzB,MAAMkvB,GACJ,YAAYnwB,EAAGiB,EAAGG,EAAGC,GACnB,MAAMC,EAAIL,EAAEG,GACZC,EAAI8hB,GAAG,CAACnjB,EAAEowB,GAAI/uB,EAAGC,EAAGtB,EAAEgI,OACtB,MAAMzG,EAAI4hB,GAAG,CAACnjB,EAAEgI,KAAM1G,EAAGD,IACzBqG,KAAKynB,SAAU,EAAIznB,KAAK2oB,IAAMrwB,EAAEiI,IAAM+nB,GAAGhwB,EAAE4D,aAAerC,GAAImG,KAAK4oB,QAAUjmB,GAAGrK,EAAEuwB,SAAWlmB,GAAGC,OAAQ5C,KAAK8oB,OAAS1sB,KAAKkB,MAAM+pB,KAAKC,OAAShvB,EAAEywB,OAAS,IAAK/oB,KAAKkoB,UAAYloB,KAAK0nB,OAAStrB,KAAKkB,MAAMhF,EAAEyuB,UAAW/mB,KAAK0lB,QAAUptB,EAAEmsB,KAAMzkB,KAAKgpB,QAAUzvB,EAAGyG,KAAKipB,MAAQvvB,EAAGsG,KAAKkpB,MAAQrvB,EAAGmG,KAAKmpB,IAAMxvB,EAAGqG,KAAKopB,eAAY,EAEhU,SACE,OAAOppB,KAAKynB,QAEd,OAAOnvB,EAAGiB,EAAGG,GACX,GAAIsG,KAAKynB,QAAS,CAChBznB,KAAK6nB,SAAQ,GACb,MAAMluB,EAAIqG,KAAKgpB,QAAQhpB,KAAKipB,OAAQrvB,EAAIF,EAAIsG,KAAK8oB,OAAQjvB,EAAImG,KAAKkoB,UAAYtuB,EAC9EoG,KAAK8oB,OAASpvB,EAAGsG,KAAKkoB,UAAY9rB,KAAKkB,MAAMlB,KAAK6B,IAAIpE,EAAGvB,EAAEyuB,WAAY/mB,KAAK0nB,QAAU9tB,EAAGoG,KAAK0lB,QAAUptB,EAAEmsB,KAAMzkB,KAAKmpB,IAAM1N,GAAG,CAACnjB,EAAEowB,GAAInvB,EAAGI,EAAGrB,EAAEgI,OAAQN,KAAKkpB,MAAQzN,GAAG,CAACnjB,EAAEgI,KAAM3G,EAAGJ,KAGrL,SACEyG,KAAKynB,UAAYznB,KAAK2nB,KAAKN,KAAKC,OAAQtnB,KAAKynB,SAAU,EAAIznB,KAAK6nB,SAAQ,IAE1E,KAAKvvB,GACH,MAAMiB,EAAIjB,EAAI0H,KAAK8oB,OAAQpvB,EAAIsG,KAAKkoB,UAAWvuB,EAAIqG,KAAKipB,MAAOrvB,EAAIoG,KAAKkpB,MAAOrvB,EAAImG,KAAK0lB,MAAO/qB,EAAIqF,KAAKmpB,IACxG,IAAIvuB,EACJ,GAAIoF,KAAKynB,QAAU7tB,IAAMe,IAAMd,GAAKN,EAAIG,IAAKsG,KAAKynB,QAEhD,OADAznB,KAAKgpB,QAAQrvB,GAAKgB,OAAGqF,KAAK6nB,SAAQ,GAGhCtuB,EAAI,EACNyG,KAAKgpB,QAAQrvB,GAAKC,GAGpBgB,EAAIrB,EAAIG,EAAI,EAAGkB,EAAIf,GAAKe,EAAI,EAAI,EAAIA,EAAIA,EAAGA,EAAIoF,KAAK4oB,QAAQxsB,KAAK4B,IAAI,EAAG5B,KAAK6B,IAAI,EAAGrD,KAAMoF,KAAKgpB,QAAQrvB,GAAKqG,KAAK2oB,IAAI/uB,EAAGe,EAAGC,IAE7H,OACE,MAAMtC,EAAI0H,KAAKopB,YAAcppB,KAAKopB,UAAY,IAC9C,OAAO,IAAIC,QAAQ,CAAC9vB,EAAGG,KACrBpB,EAAEkD,KAAK,CAAE8tB,IAAK/vB,EAAGgwB,IAAK7vB,MAG1B,QAAQpB,GACN,MAAMiB,EAAIjB,EAAI,MAAQ,MAAOoB,EAAIsG,KAAKopB,WAAa,GACnD,IAAK,IAAIzvB,EAAI,EAAGA,EAAID,EAAEI,OAAQH,IAC5BD,EAAEC,GAAGJ,MAGX,MAAMiwB,GAAK,CAAC,IAAK,IAAK,cAAe,SAAU,WAAYC,GAAK,CAAC,QAAS,cAAe,mBACzF/hB,GAAE8b,IAAI,YAAa,CACjBuF,WAAO,EACPhC,SAAU,IACV8B,OAAQ,eACRtoB,QAAI,EACJD,UAAM,EACNmkB,UAAM,EACNiE,QAAI,EACJxsB,UAAM,IAER,MAAMwtB,GAAKnxB,OAAOwB,KAAK2N,GAAE4L,WACzB5L,GAAE+N,SAAS,YAAa,CACtBM,WAAW,EACXD,YAAY,EACZF,YAAc3d,GAAY,eAANA,GAA4B,eAANA,GAA4B,OAANA,IAElEyP,GAAE8b,IAAI,aAAc,CAClBmG,OAAQ,CACNztB,KAAM,QACN0tB,WAAYH,IAEdI,QAAS,CACP3tB,KAAM,SACN0tB,WAAYJ,MAGhB9hB,GAAE+N,SAAS,aAAc,CACvBM,UAAW,cAEbrO,GAAE8b,IAAI,cAAe,CACnBsG,OAAQ,CACNxW,UAAW,CACTyT,SAAU,MAGdgD,OAAQ,CACNzW,UAAW,CACTyT,SAAU,IAGdiD,KAAM,CACJC,WAAY,CACVN,OAAQ,CACNrpB,KAAM,eAER4pB,QAAS,CACPhuB,KAAM,UACN6qB,SAAU,KAIhBoD,KAAM,CACJF,WAAY,CACVN,OAAQ,CACNjB,GAAI,eAENwB,QAAS,CACPhuB,KAAM,UACN2sB,OAAQ,SACRtoB,GAAKtI,GAAU,EAAJA,OAKnB,MAAMmyB,GACJ,YAAY9xB,EAAGiB,GACbyG,KAAK8lB,OAASxtB,EAAG0H,KAAKqqB,YAA8B,IAAIpH,IAAOjjB,KAAKsqB,UAAU/wB,GAEhF,UAAUjB,GACR,IAAKM,EAAEN,GACL,OACF,MAAMiB,EAAIyG,KAAKqqB,YACf9xB,OAAOgyB,oBAAoBjyB,GAAGyH,QAASrG,IACrC,MAAMC,EAAIrB,EAAEoB,GACZ,IAAKd,EAAEe,GACL,OACF,MAAMC,EAAI,GACV,IAAK,MAAMC,KAAK6vB,GACd9vB,EAAEC,GAAKF,EAAEE,IACV1B,EAAEwB,EAAEiwB,aAAejwB,EAAEiwB,YAAc,CAAClwB,IAAIqG,QAASlG,KAC/CA,IAAMH,IAAMH,EAAEyC,IAAInC,KAAON,EAAEiqB,IAAI3pB,EAAGD,OAIzC,gBAAgBtB,EAAGiB,GACjB,MAAMG,EAAIH,EAAEksB,QAAS9rB,EAAI6wB,GAAGlyB,EAAGoB,GAC/B,IAAKC,EACH,MAAO,GACT,MAAMC,EAAIoG,KAAKyqB,kBAAkB9wB,EAAGD,GACpC,OAAOA,EAAEgxB,SAAWC,GAAGryB,EAAEmtB,QAAQmF,YAAalxB,GAAGmxB,KAAK,KACpDvyB,EAAEmtB,QAAU/rB,GACX,QACCE,EAEN,kBAAkBtB,EAAGiB,GACnB,MAAMG,EAAIsG,KAAKqqB,YAAa1wB,EAAI,GAAIC,EAAItB,EAAEsyB,cAAgBtyB,EAAEsyB,YAAc,IAAK/wB,EAAItB,OAAOwB,KAAKR,GAAIoB,EAAI0sB,KAAKC,MAC5G,IAAI1sB,EACJ,IAAKA,EAAIf,EAAEC,OAAS,EAAGc,GAAK,IAAKA,EAAG,CAClC,MAAMC,EAAIhB,EAAEe,GACZ,GAAoB,MAAhBC,EAAEa,OAAO,GACX,SACF,GAAU,YAANb,EAAiB,CACnBlB,EAAE6B,QAAQwE,KAAK8qB,gBAAgBxyB,EAAGiB,IAClC,SAEF,MAAMsF,EAAItF,EAAEsB,GACZ,IAAI0G,EAAI3H,EAAEiB,GACV,MAAM4G,EAAI/H,EAAE2pB,IAAIxoB,GAChB,GAAI0G,EACF,IAAIE,GAAKF,EAAEuoB,SAAU,CACnBvoB,EAAEwpB,OAAOtpB,EAAG5C,EAAGlE,GACf,SAEA4G,EAAE4mB,SACD1mB,GAAMA,EAAEslB,UAIbntB,EAAEiB,GAAK0G,EAAI,IAAIknB,GAAGhnB,EAAGnJ,EAAGuC,EAAGgE,GAAIlF,EAAE6B,KAAK+F,IAHpCjJ,EAAEuC,GAAKgE,EAKX,OAAOlF,EAET,OAAOrB,EAAGiB,GACR,GAA8B,IAA1ByG,KAAKqqB,YAAYtuB,KAEnB,YADAxD,OAAO+J,OAAOhK,EAAGiB,GAGnB,MAAMG,EAAIsG,KAAKyqB,kBAAkBnyB,EAAGiB,GACpC,OAAIG,EAAEI,QACGsuB,GAAG/nB,IAAIL,KAAK8lB,OAAQpsB,IAAI,QADjC,GAIJ,SAASixB,GAAG1yB,EAAGK,GACb,MAAMiB,EAAI,GAAIG,EAAInB,OAAOwB,KAAKzB,GAC9B,IAAK,IAAIqB,EAAI,EAAGA,EAAID,EAAEI,OAAQH,IAAK,CACjC,MAAMC,EAAI3B,EAAEyB,EAAEC,IACdC,GAAKA,EAAEkwB,UAAYvwB,EAAEiC,KAAK5B,EAAEoxB,QAE9B,OAAO3B,QAAQ4B,IAAI1xB,GAErB,SAASixB,GAAGvyB,EAAGK,GACb,IAAKA,EACH,OACF,IAAIiB,EAAItB,EAAEwtB,QACV,GAAKlsB,EAIL,OAAOA,EAAEmxB,UAAYzyB,EAAEwtB,QAAUlsB,EAAIhB,OAAO+J,OAAO,GAAI/I,EAAG,CAAEmxB,SAAS,EAAIE,YAAa,MAAQrxB,EAH5FtB,EAAEwtB,QAAUntB,EAKhB,SAAS4yB,GAAGjzB,EAAGK,GACb,MAAMiB,EAAItB,GAAKA,EAAEwtB,SAAW,GAAI/rB,EAAIH,EAAE4xB,QAASxxB,OAAc,IAAVJ,EAAEyE,IAAiB1F,EAAI,EAAGsB,OAAc,IAAVL,EAAE0E,IAAiB3F,EAAI,EACxG,MAAO,CACLsJ,MAAOlI,EAAIE,EAAID,EACf6qB,IAAK9qB,EAAIC,EAAIC,GAGjB,SAASwxB,GAAGnzB,EAAGK,EAAGiB,GAChB,IAAU,IAANA,EACF,OAAO,EACT,MAAMG,EAAIwxB,GAAGjzB,EAAGsB,GAAII,EAAIuxB,GAAG5yB,EAAGiB,GAC9B,MAAO,CACL+e,IAAK3e,EAAE6qB,IACPnM,MAAO3e,EAAE8qB,IACTjM,OAAQ5e,EAAEiI,MACVwW,KAAM1e,EAAEkI,OAGZ,SAASypB,GAAGpzB,GACV,IAAIK,EAAGiB,EAAGG,EAAGC,EACb,OAAOf,EAAEX,IAAMK,EAAIL,EAAEqgB,IAAK/e,EAAItB,EAAEogB,MAAO3e,EAAIzB,EAAEsgB,OAAQ5e,EAAI1B,EAAEmgB,MAAQ9f,EAAIiB,EAAIG,EAAIC,EAAI1B,EAAG,CACpFqgB,IAAKhgB,EACL+f,MAAO9e,EACPgf,OAAQ7e,EACR0e,KAAMze,EACN2xB,UAAgB,IAANrzB,GAGd,SAASszB,GAAGtzB,EAAGK,GACb,MAAMiB,EAAI,GAAIG,EAAIzB,EAAEuzB,uBAAuBlzB,GAC3C,IAAIqB,EAAGC,EACP,IAAKD,EAAI,EAAGC,EAAIF,EAAEI,OAAQH,EAAIC,IAAKD,EACjCJ,EAAEiC,KAAK9B,EAAEC,GAAGO,OACd,OAAOX,EAET,SAASkyB,GAAGxzB,EAAGK,EAAGiB,EAAGG,EAAI,IACvB,MAAMC,EAAI1B,EAAE8B,KAAMH,EAAe,WAAXF,EAAEkb,KACxB,IAAI/a,EAAGc,EAAGC,EAAGC,EACb,GAAU,OAANvC,EAAY,CACd,IAAKuB,EAAI,EAAGc,EAAIhB,EAAEG,OAAQD,EAAIc,IAAKd,EAAG,CACpC,GAAIe,GAAKjB,EAAEE,GAAIe,IAAMrB,EAAG,CACtB,GAAIG,EAAEuxB,IACJ,SACF,MAEFpwB,EAAI5C,EAAEyzB,OAAO9wB,GAAI/B,EAAEgC,KAAOjB,GAAW,IAANtB,GAAW0E,EAAG1E,KAAO0E,EAAGnC,MAAQvC,GAAKuC,GAEtE,OAAOvC,GAGX,SAASqzB,GAAG1zB,GACV,MAAMK,EAAIC,OAAOwB,KAAK9B,GAAIsB,EAAI,IAAInB,MAAME,EAAEwB,QAC1C,IAAIJ,EAAGC,EAAGC,EACV,IAAKF,EAAI,EAAGC,EAAIrB,EAAEwB,OAAQJ,EAAIC,IAAKD,EACjCE,EAAItB,EAAEoB,GAAIH,EAAEG,GAAK,CACfwB,EAAGtB,EACHuB,EAAGlD,EAAE2B,IAET,OAAOL,EAET,SAASqyB,GAAG3zB,EAAGK,GACb,MAAMiB,EAAItB,GAAKA,EAAEwtB,QAAQoG,QACzB,OAAOtyB,QAAW,IAANA,QAA4B,IAAZjB,EAAEwzB,MAEhC,SAASC,GAAG9zB,EAAGK,EAAGiB,GAChB,MAAO,GAAGtB,EAAE+zB,MAAM1zB,EAAE0zB,MAAMzyB,EAAEuyB,OAASvyB,EAAE2C,OAEzC,SAAS+vB,GAAGh0B,GACV,MAAQ+F,IAAK1F,EAAG2F,IAAK1E,EAAG+H,WAAY5H,EAAG8H,WAAY7H,GAAM1B,EAAEyJ,gBAC3D,MAAO,CACL1D,IAAKtE,EAAIpB,EAAIQ,OAAOozB,kBACpBjuB,IAAKtE,EAAIJ,EAAIT,OAAO2D,mBAGxB,SAAS0vB,GAAGl0B,EAAGK,EAAGiB,GAChB,MAAMG,EAAIzB,EAAEK,KAAOL,EAAEK,GAAK,IAC1B,OAAOoB,EAAEH,KAAOG,EAAEH,GAAK,IAEzB,SAAS6yB,GAAGn0B,EAAGK,EAAGiB,EAAGG,GACnB,IAAK,MAAMC,KAAKrB,EAAE+zB,wBAAwB3yB,GAAGyxB,UAAW,CACtD,MAAMvxB,EAAI3B,EAAE0B,EAAEO,OACd,GAAIX,GAAKK,EAAI,IAAML,GAAKK,EAAI,EAC1B,OAAOD,EAAEO,MAEb,OAAO,KAET,SAASoyB,GAAGr0B,EAAGK,GACb,MAAQsb,MAAOra,EAAGgzB,YAAa7yB,GAAMzB,EAAG0B,EAAIJ,EAAEizB,UAAYjzB,EAAEizB,QAAU,KAAOrrB,OAAQvH,EAAG6yB,OAAQ5yB,EAAGK,MAAOS,GAAMjB,EAAGkB,EAAIhB,EAAEyH,KAAMxG,EAAIhB,EAAEwH,KAAMxC,EAAIktB,GAAGnyB,EAAGC,EAAGH,GAAI6H,EAAIjJ,EAAEwB,OAClK,IAAI2H,EACJ,IAAK,IAAIkE,EAAI,EAAGA,EAAIpE,IAAKoE,EAAG,CAC1B,MAAMM,EAAI3N,EAAEqN,IAAM,CAAC/K,GAAIkqB,EAAG,CAACjqB,GAAIkqB,GAAM9e,EAAGP,EAAIO,EAAEumB,UAAYvmB,EAAEumB,QAAU,IACtE/qB,EAAIiE,EAAE7K,GAAKsxB,GAAGxyB,EAAGkF,EAAGimB,GAAIrjB,EAAE9G,GAAKoqB,EAAGtjB,EAAEirB,KAAON,GAAG3qB,EAAG5H,GAAG,EAAIH,EAAEwC,MAAOuF,EAAEkrB,QAAUP,GAAG3qB,EAAG5H,GAAG,EAAIH,EAAEwC,OAGhG,SAAS0wB,GAAG30B,EAAGK,GACb,MAAMiB,EAAItB,EAAEqd,OACZ,OAAO/c,OAAOwB,KAAKR,GAAGklB,OAAQ/kB,GAAMH,EAAEG,GAAG2H,OAAS/I,GAAGu0B,QAEvD,SAASC,GAAG70B,EAAGK,GACb,OAAOsjB,GACL3jB,EACA,CACE6xB,QAAQ,EACRiD,aAAS,EACT9yB,aAAc3B,EACd4B,MAAO5B,EACPsc,KAAM,UACN1Y,KAAM,YAIZ,SAAS8wB,GAAG/0B,EAAGK,EAAGiB,GAChB,OAAOqiB,GAAG3jB,EAAG,CACX6xB,QAAQ,EACRmD,UAAW30B,EACX40B,YAAQ,EACRC,SAAK,EACLC,QAAS7zB,EACTW,MAAO5B,EACPsc,KAAM,UACN1Y,KAAM,SAGV,SAASmxB,GAAGp1B,EAAGK,GACb,MAAMiB,EAAItB,EAAEq1B,WAAWpzB,MAAOR,EAAIzB,EAAEw0B,QAAUx0B,EAAEw0B,OAAOprB,KACvD,GAAI3H,EAAG,CACLpB,EAAIA,GAAKL,EAAEmJ,QACX,IAAK,MAAMzH,KAAKrB,EAAG,CACjB,MAAMsB,EAAID,EAAE6yB,QACZ,IAAK5yB,QAAc,IAATA,EAAEF,SAA6B,IAAZE,EAAEF,GAAGH,GAChC,cACKK,EAAEF,GAAGH,KAIlB,MAAMg0B,GAAMt1B,GAAY,UAANA,GAAuB,SAANA,EAAcu1B,GAAK,CAACv1B,EAAGK,IAAMA,EAAIL,EAAIM,OAAO+J,OAAO,GAAIrK,GAAIw1B,GAAK,CAACx1B,EAAGK,EAAGiB,IAAMtB,IAAMK,EAAEo1B,QAAUp1B,EAAEq1B,UAAY,CAAE5zB,KAAMwxB,GAAGhyB,GAAG,GAAKmyB,OAAQ,MAC3K,MAAMkC,GACJ,YAAYt1B,EAAGiB,GACbyG,KAAK4T,MAAQtb,EAAG0H,KAAK6tB,KAAOv1B,EAAEiqB,IAAKviB,KAAK9F,MAAQX,EAAGyG,KAAK8tB,gBAAkB,GAAI9tB,KAAKusB,YAAcvsB,KAAK+tB,UAAW/tB,KAAKguB,MAAQhuB,KAAKusB,YAAYrwB,KAAM8D,KAAKylB,aAAU,EAAQzlB,KAAKkf,UAAW,EAAIlf,KAAKiuB,WAAQ,EAAQjuB,KAAKkuB,iBAAc,EAAQluB,KAAKmuB,oBAAiB,EAAQnuB,KAAKouB,gBAAa,EAAQpuB,KAAKquB,gBAAa,EAAQruB,KAAKsuB,qBAAsB,EAAItuB,KAAKuuB,oBAAqB,EAAIvuB,KAAKwuB,cAAW,EAAQxuB,KAAKyuB,UAAY,GAAIzuB,KAAK0uB,aAEnb,aACE,MAAMp2B,EAAI0H,KAAKusB,YACfvsB,KAAKsqB,YAAatqB,KAAK2uB,aAAcr2B,EAAEq1B,SAAW/B,GAAGtzB,EAAEm0B,OAAQn0B,GAAI0H,KAAK4uB,cAE1E,YAAYt2B,GACV0H,KAAK9F,QAAU5B,GAAK+0B,GAAGrtB,KAAKusB,aAAcvsB,KAAK9F,MAAQ5B,EAEzD,aACE,MAAMA,EAAI0H,KAAK4T,MAAOra,EAAIyG,KAAKusB,YAAa7yB,EAAIsG,KAAK6uB,aAAcl1B,EAAI,CAAC4H,EAAGE,EAAGkE,EAAGM,IAAY,MAAN1E,EAAYE,EAAU,MAANF,EAAY0E,EAAIN,EAAG/L,EAAIL,EAAEu1B,QAAU71B,EAAES,EAAEo1B,QAASlC,GAAGt0B,EAAG,MAAOuB,EAAIN,EAAEw1B,QAAU91B,EAAES,EAAEq1B,QAASnC,GAAGt0B,EAAG,MAAOqC,EAAIpB,EAAEy1B,QAAU/1B,EAAES,EAAEs1B,QAASpC,GAAGt0B,EAAG,MAAOsC,EAAIrB,EAAEmb,UAAW7Z,EAAItB,EAAE01B,QAAUt1B,EAAEiB,EAAGhB,EAAGC,EAAGc,GAAIkE,EAAItF,EAAE21B,QAAUv1B,EAAEiB,EAAGf,EAAGD,EAAGe,GACnUpB,EAAEwI,OAAS/B,KAAKmvB,cAAcv1B,GAAIL,EAAEyI,OAAShC,KAAKmvB,cAAct1B,GAAIN,EAAE61B,OAASpvB,KAAKmvB,cAAcx0B,GAAIpB,EAAE4H,OAASnB,KAAKmvB,cAAct0B,GAAItB,EAAEkzB,OAASzsB,KAAKmvB,cAActwB,GAExK,aACE,OAAOmB,KAAK4T,MAAMyC,KAAK3C,SAAS1T,KAAK9F,OAEvC,UACE,OAAO8F,KAAK4T,MAAMyb,eAAervB,KAAK9F,OAExC,cAAc5B,GACZ,OAAO0H,KAAK4T,MAAM0B,OAAOhd,GAE3B,eAAeA,GACb,MAAMiB,EAAIyG,KAAKusB,YACf,OAAOj0B,IAAMiB,EAAE4H,OAAS5H,EAAEkzB,OAASlzB,EAAE4H,OAEvC,QACEnB,KAAKmnB,QAAQ,SAEf,WACE,MAAM7uB,EAAI0H,KAAKusB,YACfvsB,KAAKiuB,OAAShuB,GAAGD,KAAKiuB,MAAOjuB,MAAO1H,EAAEq1B,UAAYN,GAAG/0B,GAEvD,aACE,MAAMA,EAAI0H,KAAK6uB,aAAct1B,EAAIjB,EAAE+d,OAAS/d,EAAE+d,KAAO,IAAK3c,EAAIsG,KAAKiuB,MACnE,GAAIr1B,EAAEW,GACJyG,KAAKiuB,MAAQtC,GAAGpyB,QACb,GAAIG,IAAMH,EAAG,CAChB,GAAIG,EAAG,CACLuG,GAAGvG,EAAGsG,MACN,MAAMrG,EAAIqG,KAAKusB,YACfc,GAAG1zB,GAAIA,EAAEyH,QAAU,GAErB7H,GAAKhB,OAAO+2B,aAAa/1B,IAAMiG,GAAGjG,EAAGyG,MAAOA,KAAKyuB,UAAY,GAAIzuB,KAAKiuB,MAAQ10B,GAGlF,cACE,MAAMjB,EAAI0H,KAAKusB,YACfvsB,KAAKuvB,aAAcvvB,KAAKwvB,qBAAuBl3B,EAAEy0B,QAAU,IAAI/sB,KAAKwvB,oBAEtE,sBAAsBl3B,GACpB,MAAMiB,EAAIyG,KAAKusB,YAAa7yB,EAAIsG,KAAK6uB,aACrC,IAAIl1B,GAAI,EACRqG,KAAKuvB,aACL,MAAM31B,EAAIL,EAAEo0B,SACZp0B,EAAEo0B,SAAW/B,GAAGryB,EAAEkzB,OAAQlzB,GAAIA,EAAEuyB,QAAUpyB,EAAEoyB,QAAUnyB,GAAI,EAAI0zB,GAAG9zB,GAAIA,EAAEuyB,MAAQpyB,EAAEoyB,OAAQ9rB,KAAKyvB,gBAAgBn3B,IAAKqB,GAAKC,IAAML,EAAEo0B,WAAarB,GAAGtsB,KAAMzG,EAAE6H,SAE1J,YACE,MAAM9I,EAAI0H,KAAK4T,MAAM8b,OAAQn2B,EAAIjB,EAAEq3B,iBAAiB3vB,KAAKguB,OAAQt0B,EAAIpB,EAAEs3B,gBAAgB5vB,KAAK6uB,aAAct1B,GAAG,GAC7GyG,KAAKylB,QAAUntB,EAAEu3B,eAAen2B,EAAGsG,KAAK4W,cAAe5W,KAAKkf,SAAWlf,KAAKylB,QAAQvQ,QAASlV,KAAK8tB,gBAAkB,GAEtH,MAAMx1B,EAAGiB,GACP,MAAQgzB,YAAa7yB,EAAGu0B,MAAOt0B,GAAMqG,MAAQmB,OAAQvH,EAAG+zB,SAAU9zB,GAAMH,EAAGiB,EAAIf,EAAEyH,KACjF,IAAmFxC,EAAG0C,EAAGE,EAArF7G,EAAU,IAANtC,GAAWiB,IAAMI,EAAEG,QAAcJ,EAAEwH,QAASrG,EAAIvC,EAAI,GAAKoB,EAAE0H,QAAQ9I,EAAI,GAC/E,IAAsB,IAAlB0H,KAAKkf,SACPxlB,EAAE0H,QAAUzH,EAAGD,EAAEwH,SAAU,EAAIO,EAAI9H,MAChC,CACO8H,EAAVtJ,EAAEwB,EAAErB,IAAU0H,KAAK8vB,eAAep2B,EAAGC,EAAGrB,EAAGiB,GAAKX,EAAEe,EAAErB,IAAU0H,KAAK+vB,gBAAgBr2B,EAAGC,EAAGrB,EAAGiB,GAASyG,KAAKgwB,mBAAmBt2B,EAAGC,EAAGrB,EAAGiB,GACtI,MAAMoM,EAAI,IAAe,OAATpE,EAAE5G,IAAeE,GAAK0G,EAAE5G,GAAKE,EAAEF,GAC/C,IAAKkE,EAAI,EAAGA,EAAItF,IAAKsF,EACnBnF,EAAE0H,QAAQvC,EAAIvG,GAAKiJ,EAAIE,EAAE5C,GAAIjE,IAAM+K,MAAQ/K,GAAI,GAAKC,EAAI0G,GAC1D7H,EAAEwH,QAAUtG,EAEdf,GAAKyyB,GAAGtsB,KAAMyB,GAEhB,mBAAmBnJ,EAAGiB,EAAGG,EAAGC,GAC1B,MAAQwH,OAAQvH,EAAG6yB,OAAQ5yB,GAAMvB,EAAGqC,EAAIf,EAAEyH,KAAMzG,EAAIf,EAAEwH,KAAMxG,EAAIjB,EAAEq2B,YAAapxB,EAAIjF,IAAMC,EAAG0H,EAAI,IAAInJ,MAAMuB,GAC1G,IAAI8H,EAAGkE,EAAGM,EACV,IAAKxE,EAAI,EAAGkE,EAAIhM,EAAG8H,EAAIkE,IAAKlE,EAC1BwE,EAAIxE,EAAI/H,EAAG6H,EAAEE,GAAK,CAChB,CAAC9G,GAAIkE,GAAKjF,EAAEulB,MAAMtkB,EAAEoL,GAAIA,GACxB,CAACrL,GAAIf,EAAEslB,MAAM5lB,EAAE0M,GAAIA,IAEvB,OAAO1E,EAET,eAAejJ,EAAGiB,EAAGG,EAAGC,GACtB,MAAQoI,OAAQnI,EAAGoI,OAAQnI,GAAMvB,EAAGqC,EAAI,IAAIvC,MAAMuB,GAClD,IAAIiB,EAAGC,EAAGgE,EAAG0C,EACb,IAAK3G,EAAI,EAAGC,EAAIlB,EAAGiB,EAAIC,IAAKD,EAC1BiE,EAAIjE,EAAIlB,EAAG6H,EAAIhI,EAAEsF,GAAIlE,EAAEC,GAAK,CAC1BM,EAAGtB,EAAEulB,MAAM5d,EAAE,GAAI1C,GACjB1D,EAAGtB,EAAEslB,MAAM5d,EAAE,GAAI1C,IAErB,OAAOlE,EAET,gBAAgBrC,EAAGiB,EAAGG,EAAGC,GACvB,MAAQoI,OAAQnI,EAAGoI,OAAQnI,GAAMvB,GAAK43B,SAAUv1B,EAAI,IAAKw1B,SAAUv1B,EAAI,KAAQoF,KAAKkf,SAAUrkB,EAAI,IAAIzC,MAAMuB,GAC5G,IAAIkF,EAAG0C,EAAGE,EAAGkE,EACb,IAAK9G,EAAI,EAAG0C,EAAI5H,EAAGkF,EAAI0C,IAAK1C,EAC1B4C,EAAI5C,EAAInF,EAAGiM,EAAIpM,EAAEkI,GAAI5G,EAAEgE,GAAK,CAC1B3D,EAAGtB,EAAEulB,MAAM/jB,EAAGuK,EAAGhL,GAAI8G,GACrBtG,EAAGtB,EAAEslB,MAAM/jB,EAAGuK,EAAG/K,GAAI6G,IAEzB,OAAO5G,EAET,UAAUvC,GACR,OAAO0H,KAAKusB,YAAYnrB,QAAQ9I,GAElC,eAAeA,GACb,OAAO0H,KAAKusB,YAAYlW,KAAK/d,GAE/B,WAAWA,EAAGiB,EAAGG,GACf,MAAMC,EAAIqG,KAAK4T,MAAOha,EAAIoG,KAAKusB,YAAa1yB,EAAIN,EAAEjB,EAAE+I,MAAO1G,EAAI,CAC7DZ,KAAMwxB,GAAG5xB,GAAG,GACZ+xB,OAAQnyB,EAAEizB,QAAQl0B,EAAE+I,OAEtB,OAAOoqB,GAAG9wB,EAAGd,EAAGD,EAAEM,MAAO,CAAE0a,KAAMlb,IAEnC,sBAAsBpB,EAAGiB,EAAGG,EAAGC,GAC7B,MAAMC,EAAIF,EAAEH,EAAE8H,MACd,IAAIxH,EAAU,OAAND,EAAaw2B,IAAMx2B,EAC3B,MAAMe,EAAIhB,GAAKD,EAAE8yB,QAAQjzB,EAAE8H,MAC3B1H,GAAKgB,IAAMhB,EAAE+xB,OAAS/wB,EAAGd,EAAI4xB,GAAG9xB,EAAGC,EAAGoG,KAAKusB,YAAYryB,QAAS5B,EAAE0F,IAAM5B,KAAK4B,IAAI1F,EAAE0F,IAAKnE,GAAIvB,EAAE2F,IAAM7B,KAAK6B,IAAI3F,EAAE2F,IAAKpE,GAEtH,UAAUvB,EAAGiB,GACX,MAAMG,EAAIsG,KAAKusB,YAAa5yB,EAAID,EAAE0H,QAASxH,EAAIF,EAAEwH,SAAW5I,IAAMoB,EAAEyH,OAAQtH,EAAIF,EAAEG,OAAQa,EAAIqF,KAAKqwB,eAAe/3B,GAAIsC,EAAI6yB,GAAGl0B,EAAGG,EAAGsG,KAAK4T,OAAQ/Y,EAAI,CAAEmD,IAAKlF,OAAO2D,kBAAmBwB,IAAKnF,OAAOozB,oBAAuBluB,IAAKa,EAAGZ,IAAKsD,GAAM0qB,GAAGtxB,GAC9O,IAAI8G,EAAGkE,EACP,SAASM,IACPN,EAAIhM,EAAE8H,GACN,MAAMqjB,EAAInf,EAAEhL,EAAE0G,MACd,OAAQxI,EAAE8M,EAAErN,EAAE+I,QAAUxC,EAAIimB,GAAKvjB,EAAIujB,EAEvC,IAAKrjB,EAAI,EAAGA,EAAI5H,IAAQoM,MAAQjG,KAAKswB,sBAAsBz1B,EAAGvC,EAAGqN,EAAG/K,IAAIhB,MAAO6H,GAE/E,GAAI7H,EACF,IAAK6H,EAAI5H,EAAI,EAAG4H,GAAK,IAAKA,EACxB,IAAKwE,IAAK,CACRjG,KAAKswB,sBAAsBz1B,EAAGvC,EAAGqN,EAAG/K,GACpC,MAGN,OAAOC,EAET,mBAAmBvC,GACjB,MAAMiB,EAAIyG,KAAKusB,YAAYnrB,QAAS1H,EAAI,GACxC,IAAIC,EAAGC,EAAGC,EACV,IAAKF,EAAI,EAAGC,EAAIL,EAAEO,OAAQH,EAAIC,IAAKD,EACjCE,EAAIN,EAAEI,GAAGrB,EAAE+I,MAAOxI,EAAEgB,IAAMH,EAAE8B,KAAK3B,GACnC,OAAOH,EAET,iBACE,OAAO,EAET,iBAAiBpB,GACf,MAAMiB,EAAIyG,KAAKusB,YAAa7yB,EAAIH,EAAE4H,OAAQxH,EAAIJ,EAAEkzB,OAAQ7yB,EAAIoG,KAAKuwB,UAAUj4B,GAC3E,MAAO,CACLk4B,MAAO92B,EAAI,GAAKA,EAAE+2B,iBAAiB72B,EAAEF,EAAE2H,OAAS,GAChDvB,MAAOnG,EAAI,GAAKA,EAAE82B,iBAAiB72B,EAAED,EAAE0H,OAAS,IAGpD,QAAQ/I,GACN,MAAMiB,EAAIyG,KAAKusB,YACfvsB,KAAK+qB,OAAOzyB,GAAK,WAAYiB,EAAEm3B,MAAQrF,GAAGpyB,EAAE+G,KAAKylB,QAAQjN,KAAM4S,GAAG7xB,EAAEwI,OAAQxI,EAAEyI,OAAQhC,KAAK2wB,oBAE7F,OAAOr4B,IAEP,OACE,MAAMA,EAAI0H,KAAK6tB,KAAMt0B,EAAIyG,KAAK4T,MAAOla,EAAIsG,KAAKusB,YAAa5yB,EAAID,EAAE2c,MAAQ,GAAIzc,EAAIL,EAAEq3B,UAAW/2B,EAAI,GAAIc,EAAIqF,KAAKouB,YAAc,EAAGxzB,EAAIoF,KAAKquB,YAAc10B,EAAEG,OAASa,EAAGE,EAAImF,KAAKylB,QAAQjQ,wBACtL,IAAI3W,EACJ,IAAKnF,EAAEqzB,SAAWrzB,EAAEqzB,QAAQnF,KAAKtvB,EAAGsB,EAAGe,EAAGC,GAAIiE,EAAIlE,EAAGkE,EAAIlE,EAAIC,IAAKiE,EAAG,CACnE,MAAM0C,EAAI5H,EAAEkF,GACZ0C,EAAEmsB,SAAWnsB,EAAEuoB,QAAUjvB,EAAIhB,EAAE2B,KAAK+F,GAAKA,EAAEqmB,KAAKtvB,EAAGsB,IAErD,IAAKiF,EAAI,EAAGA,EAAIhF,EAAEC,SAAU+E,EAC1BhF,EAAEgF,GAAG+oB,KAAKtvB,EAAGsB,GAEjB,SAAStB,EAAGiB,GACV,MAAMG,EAAIH,EAAI,SAAW,UACzB,YAAa,IAANjB,GAAgB0H,KAAKusB,YAAYQ,QAAU/sB,KAAK6wB,6BAA6Bn3B,GAAKsG,KAAK8wB,0BAA0Bx4B,GAAK,EAAGoB,GAElI,WAAWpB,EAAGiB,EAAGG,GACf,MAAMC,EAAIqG,KAAK6uB,aACf,IAAIj1B,EACJ,GAAItB,GAAK,GAAKA,EAAI0H,KAAKusB,YAAYlW,KAAKvc,OAAQ,CAC9C,MAAMD,EAAImG,KAAKusB,YAAYlW,KAAK/d,GAChCsB,EAAIC,EAAE20B,WAAa30B,EAAE20B,SAAWxB,GAAGhtB,KAAK4W,aAActe,EAAGuB,IAAKD,EAAEszB,OAASltB,KAAKuwB,UAAUj4B,GAAIsB,EAAEuzB,IAAMxzB,EAAE0c,KAAK/d,GAAIsB,EAAEM,MAAQN,EAAEqzB,UAAY30B,OAEvIsB,EAAIoG,KAAKwuB,WAAaxuB,KAAKwuB,SAAW1B,GAAG9sB,KAAK4T,MAAMgD,aAAc5W,KAAK9F,QAASN,EAAEmzB,QAAUpzB,EAAGC,EAAEM,MAAQN,EAAEK,aAAe+F,KAAK9F,MACjI,OAAON,EAAEkwB,SAAWvwB,EAAGK,EAAEgb,KAAOlb,EAAGE,EAErC,6BAA6BtB,GAC3B,OAAO0H,KAAK+wB,uBAAuB/wB,KAAKwvB,mBAAmBxD,GAAI1zB,GAEjE,0BAA0BA,EAAGiB,GAC3B,OAAOyG,KAAK+wB,uBAAuB/wB,KAAKgxB,gBAAgBhF,GAAIzyB,EAAGjB,GAEjE,uBAAuBA,EAAGiB,EAAI,UAAWG,GACvC,MAAMC,EAAU,WAANJ,EAAgBK,EAAIoG,KAAK8tB,gBAAiBj0B,EAAIvB,EAAI,IAAMiB,EAAGoB,EAAIf,EAAEC,GAAIe,EAAIoF,KAAKsuB,qBAAuB1yB,EAAGlC,GAClH,GAAIiB,EACF,OAAO6yB,GAAG7yB,EAAGC,GACf,MAAMC,EAAImF,KAAK4T,MAAM8b,OAAQ7wB,EAAIhE,EAAEo2B,wBAAwBjxB,KAAKguB,MAAO11B,GAAIiJ,EAAI5H,EAAI,CAAIrB,EAAH,QAAa,QAASA,EAAG,IAAM,CAACA,EAAG,IAAKmJ,EAAI5G,EAAE+0B,gBAAgB5vB,KAAK6uB,aAAchwB,GAAI8G,EAAIpN,OAAOwB,KAAK2N,GAAEqM,SAASzb,IAAK2N,EAAI,IAAMjG,KAAK4W,WAAWld,EAAGC,GAAImrB,EAAIjqB,EAAEq2B,oBAAoBzvB,EAAGkE,EAAGM,EAAG1E,GAC7Q,OAAOujB,EAAE4F,UAAY5F,EAAE4F,QAAU9vB,EAAGhB,EAAEC,GAAKtB,OAAO44B,OAAO3D,GAAG1I,EAAGlqB,KAAMkqB,EAEvE,mBAAmBxsB,EAAGiB,EAAGG,GACvB,MAAMC,EAAIqG,KAAK4T,MAAOha,EAAIoG,KAAK8tB,gBAAiBj0B,EAAI,aAAaN,EAAKoB,EAAIf,EAAEC,GAC5E,GAAIc,EACF,OAAOA,EACT,IAAIC,EACJ,IAA4B,IAAxBjB,EAAE8rB,QAAQnS,UAAkB,CAC9B,MAAMzU,EAAImB,KAAK4T,MAAM8b,OAAQnuB,EAAI1C,EAAEuyB,0BAA0BpxB,KAAKguB,MAAOz0B,GAAIkI,EAAI5C,EAAE+wB,gBAAgB5vB,KAAK6uB,aAActtB,GACtH3G,EAAIiE,EAAEgxB,eAAepuB,EAAGzB,KAAK4W,WAAWte,EAAGoB,EAAGH,IAEhD,MAAMsB,EAAI,IAAIuvB,GAAGzwB,EAAGiB,GAAKA,EAAEqvB,YAC3B,OAAOrvB,GAAKA,EAAEqhB,aAAeriB,EAAEC,GAAKtB,OAAO44B,OAAOt2B,IAAKA,EAEzD,iBAAiBvC,GACf,GAAIA,EAAEoyB,QACJ,OAAO1qB,KAAKmuB,iBAAmBnuB,KAAKmuB,eAAiB51B,OAAO+J,OAAO,GAAIhK,IAE3E,eAAeA,EAAGiB,GAChB,OAAQA,GAAKg0B,GAAGj1B,IAAM0H,KAAK4T,MAAMyd,oBAEnC,kBAAkB/4B,EAAGiB,GACnB,MAAMG,EAAIsG,KAAK8wB,0BAA0Bx4B,EAAGiB,GAAII,EAAIqG,KAAKmuB,eAAgBv0B,EAAIoG,KAAKsxB,iBAAiB53B,GAAIG,EAAImG,KAAKuxB,eAAeh4B,EAAGK,IAAMA,IAAMD,EAC9I,OAAOqG,KAAKwxB,oBAAoB53B,EAAGL,EAAGG,GAAI,CAAE+3B,cAAe73B,EAAG23B,eAAgB13B,GAEhF,cAAcvB,EAAGiB,EAAGG,EAAGC,GACrB4zB,GAAG5zB,GAAKpB,OAAO+J,OAAOhK,EAAGoB,GAAKsG,KAAK0xB,mBAAmBn4B,EAAGI,GAAGoxB,OAAOzyB,EAAGoB,GAExE,oBAAoBpB,EAAGiB,EAAGG,GACxBpB,IAAMi1B,GAAGh0B,IAAMyG,KAAK0xB,wBAAmB,EAAQn4B,GAAGwxB,OAAOzyB,EAAGoB,GAE9D,UAAUpB,EAAGiB,EAAGG,EAAGC,GACjBrB,EAAEwxB,OAASnwB,EACX,MAAMC,EAAIoG,KAAK2xB,SAASp4B,EAAGI,GAC3BqG,KAAK0xB,mBAAmBn4B,EAAGG,EAAGC,GAAGoxB,OAAOzyB,EAAG,CACzCmtB,SAAU9rB,GAAKqG,KAAKsxB,iBAAiB13B,IAAMA,IAG/C,iBAAiBtB,EAAGiB,EAAGG,GACrBsG,KAAK4xB,UAAUt5B,EAAGoB,EAAG,UAAU,GAEjC,cAAcpB,EAAGiB,EAAGG,GAClBsG,KAAK4xB,UAAUt5B,EAAGoB,EAAG,UAAU,GAEjC,2BACE,MAAMpB,EAAI0H,KAAKusB,YAAYQ,QAC3Bz0B,GAAK0H,KAAK4xB,UAAUt5B,OAAG,EAAQ,UAAU,GAE3C,wBACE,MAAMA,EAAI0H,KAAKusB,YAAYQ,QAC3Bz0B,GAAK0H,KAAK4xB,UAAUt5B,OAAG,EAAQ,UAAU,GAE3C,gBAAgBA,GACd,MAAMiB,EAAIyG,KAAKiuB,MAAOv0B,EAAIsG,KAAKusB,YAAYlW,KAC3C,IAAK,MAAO1b,EAAGC,EAAGC,KAAMmF,KAAKyuB,UAC3BzuB,KAAKrF,GAAGC,EAAGC,GACbmF,KAAKyuB,UAAY,GACjB,MAAM90B,EAAID,EAAEI,OAAQF,EAAIL,EAAEO,OAAQD,EAAIuC,KAAK4B,IAAIpE,EAAGD,GAClDE,GAAKmG,KAAKmf,MAAM,EAAGtlB,GAAID,EAAID,EAAIqG,KAAK6xB,gBAAgBl4B,EAAGC,EAAID,EAAGrB,GAAKsB,EAAID,GAAKqG,KAAK8xB,gBAAgBl4B,EAAGD,EAAIC,GAE1G,gBAAgBtB,EAAGiB,EAAGG,GAAI,GACxB,MAAMC,EAAIqG,KAAKusB,YAAa3yB,EAAID,EAAE0c,KAAMxc,EAAIvB,EAAIiB,EAChD,IAAIoB,EACJ,MAAMC,EAAKC,IACT,IAAKA,EAAEf,QAAUP,EAAGoB,EAAIE,EAAEf,OAAS,EAAGa,GAAKd,EAAGc,IAC5CE,EAAEF,GAAKE,EAAEF,EAAIpB,IAEjB,IAAKqB,EAAEhB,GAAIe,EAAIrC,EAAGqC,EAAId,IAAKc,EACzBf,EAAEe,GAAK,IAAIqF,KAAKgxB,gBAClBhxB,KAAKkf,UAAYtkB,EAAEjB,EAAEyH,SAAUpB,KAAKmf,MAAM7mB,EAAGiB,GAAIG,GAAKsG,KAAK+xB,eAAen4B,EAAGtB,EAAGiB,EAAG,SAErF,eAAejB,EAAGiB,EAAGG,EAAGC,IAExB,gBAAgBrB,EAAGiB,GACjB,MAAMG,EAAIsG,KAAKusB,YACf,GAAIvsB,KAAKkf,SAAU,CACjB,MAAMvlB,EAAID,EAAE0H,QAAQlB,OAAO5H,EAAGiB,GAC9BG,EAAEi0B,UAAYN,GAAG3zB,EAAGC,GAEtBD,EAAE2c,KAAKnW,OAAO5H,EAAGiB,GAEnB,MAAMjB,GACJ,GAAI0H,KAAKkf,SACPlf,KAAKyuB,UAAUjzB,KAAKlD,OACjB,CACH,MAAOiB,EAAGG,EAAGC,GAAKrB,EAClB0H,KAAKzG,GAAGG,EAAGC,GAEbqG,KAAK4T,MAAMoe,aAAax2B,KAAK,CAACwE,KAAK9F,SAAU5B,IAE/C,cACE,MAAMA,EAAI25B,UAAUn4B,OACpBkG,KAAKkyB,MAAM,CAAC,kBAAmBlyB,KAAK6uB,aAAaxY,KAAKvc,OAASxB,EAAGA,IAEpE,aACE0H,KAAKkyB,MAAM,CAAC,kBAAmBlyB,KAAKusB,YAAYlW,KAAKvc,OAAS,EAAG,IAEnE,eACEkG,KAAKkyB,MAAM,CAAC,kBAAmB,EAAG,IAEpC,cAAc55B,EAAGiB,GACfA,GAAKyG,KAAKkyB,MAAM,CAAC,kBAAmB55B,EAAGiB,IACvC,MAAMG,EAAIu4B,UAAUn4B,OAAS,EAC7BJ,GAAKsG,KAAKkyB,MAAM,CAAC,kBAAmB55B,EAAGoB,IAEzC,iBACEsG,KAAKkyB,MAAM,CAAC,kBAAmB,EAAGD,UAAUn4B,UAMhD,SAASq4B,GAAGl6B,EAAGK,GACb,IAAKL,EAAEm6B,OAAOC,KAAM,CAClB,MAAM94B,EAAItB,EAAEo0B,wBAAwB/zB,GACpC,IAAIoB,EAAI,GACR,IAAK,IAAIC,EAAI,EAAGC,EAAIL,EAAEO,OAAQH,EAAIC,EAAGD,IACnCD,EAAIA,EAAE44B,OAAO/4B,EAAEI,GAAG2zB,WAAWiF,mBAAmBt6B,IAClDA,EAAEm6B,OAAOC,KAAOlyB,GAAGzG,EAAE+D,KAAK,CAAC9D,EAAGC,IAAMD,EAAIC,IAE1C,OAAO3B,EAAEm6B,OAAOC,KAElB,SAASG,GAAGv6B,GACV,MAAMK,EAAIL,EAAEkJ,OAAQ5H,EAAI44B,GAAG75B,EAAGL,EAAEiE,MAChC,IAAmBvC,EAAGC,EAAGC,EAAGc,EAAxBjB,EAAIpB,EAAEm6B,QACV,MAAM73B,EAAI,KACF,QAANf,IAAsB,QAAPA,IAAiB+B,EAAGjB,KAAOjB,EAAI0C,KAAK4B,IAAItE,EAAG0C,KAAKyB,IAAIhE,EAAIc,IAAMjB,IAAKiB,EAAId,IAExF,IAAKF,EAAI,EAAGC,EAAIL,EAAEO,OAAQH,EAAIC,IAAKD,EACjCE,EAAIvB,EAAEqJ,iBAAiBpI,EAAEI,IAAKiB,IAChC,IAAKD,OAAI,EAAQhB,EAAI,EAAGC,EAAItB,EAAEo6B,MAAM54B,OAAQH,EAAIC,IAAKD,EACnDE,EAAIvB,EAAEq6B,gBAAgBh5B,GAAIiB,IAC5B,OAAOlB,EAET,SAASk5B,GAAG36B,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAIJ,EAAEs5B,aACZ,IAAIj5B,EAAGC,EACP,OAAO3B,EAAEyB,IAAMC,EAAItB,EAAE0F,IAAMzE,EAAEu5B,mBAAoBj5B,EAAIN,EAAEw5B,gBAAkBn5B,EAAID,EAAID,EAAGG,EAAI,GAAI,CAC1Fm5B,MAAOp5B,EAAIF,EACXu5B,MAAOp5B,EACP+H,MAAOtJ,EAAE46B,OAAOj7B,GAAK2B,EAAI,GAG7B,SAASu5B,GAAGl7B,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAIrB,EAAE46B,OAAQt5B,EAAID,EAAE1B,GAC1B,IAAI4B,EAAI5B,EAAI,EAAI0B,EAAE1B,EAAI,GAAK,KAAM0C,EAAI1C,EAAI0B,EAAEG,OAAS,EAAIH,EAAE1B,EAAI,GAAK,KACnE,MAAM2C,EAAIrB,EAAEu5B,mBACN,OAANj5B,IAAeA,EAAID,GAAW,OAANe,EAAarC,EAAEksB,IAAMlsB,EAAEsJ,MAAQjH,EAAIf,IAAW,OAANe,IAAeA,EAAIf,EAAIA,EAAIC,GAC3F,MAAMgB,EAAIjB,GAAKA,EAAIwC,KAAK4B,IAAInE,EAAGc,IAAM,EAAIC,EACzC,MAAO,CACLo4B,MAAO52B,KAAKyB,IAAIlD,EAAId,GAAK,EAAIe,EAAIlB,EACjCu5B,MAAO15B,EAAEw5B,cACTnxB,MAAO/G,GAGX,SAASu4B,GAAGn7B,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAIJ,EAAE4lB,MAAMlnB,EAAE,GAAIyB,GAAIE,EAAIL,EAAE4lB,MAAMlnB,EAAE,GAAIyB,GAAIG,EAAIuC,KAAK4B,IAAIrE,EAAGC,GAAIe,EAAIyB,KAAK6B,IAAItE,EAAGC,GACtF,IAAIgB,EAAIf,EAAGgB,EAAIF,EACfyB,KAAKyB,IAAIhE,GAAKuC,KAAKyB,IAAIlD,KAAOC,EAAID,EAAGE,EAAIhB,GAAIvB,EAAEiB,EAAE8H,MAAQxG,EAAGvC,EAAE+6B,QAAU,CACtEC,SAAU14B,EACV24B,OAAQ14B,EACR+G,MAAOjI,EACP6qB,IAAK5qB,EACLoE,IAAKnE,EACLoE,IAAKtD,GAGT,SAAS64B,GAAGv7B,EAAGK,EAAGiB,EAAGG,GACnB,OAAOvB,EAAEF,GAAKm7B,GAAGn7B,EAAGK,EAAGiB,EAAGG,GAAKpB,EAAEiB,EAAE8H,MAAQ9H,EAAE4lB,MAAMlnB,EAAGyB,GAAIpB,EAE5D,SAASm7B,GAAGx7B,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAI1B,EAAEkJ,OAAQvH,EAAI3B,EAAEw0B,OAAQ5yB,EAAIF,EAAEs2B,YAAat1B,EAAIhB,IAAMC,EAAGgB,EAAI,GACtE,IAAIC,EAAGgE,EAAG0C,EAAGE,EACb,IAAK5G,EAAItB,EAAGsF,EAAItF,EAAIG,EAAGmB,EAAIgE,IAAKhE,EAC9B4G,EAAInJ,EAAEuC,GAAI0G,EAAI,GAAIA,EAAE5H,EAAE0H,MAAQ1G,GAAKhB,EAAEwlB,MAAMtlB,EAAEgB,GAAIA,GAAID,EAAEY,KAAKg4B,GAAG/xB,EAAGF,EAAG3H,EAAGiB,IAC1E,OAAOD,EAET,SAASuE,GAAGlH,GACV,OAAOA,QAAoB,IAAfA,EAAEq7B,eAAoC,IAAbr7B,EAAEs7B,OAEzC,SAASG,GAAGz7B,EAAGK,EAAGiB,GAChB,OAAa,IAANtB,EAAU+E,EAAG/E,IAAMK,EAAEq7B,eAAiB,GAAK,IAAMr7B,EAAE0F,KAAOzE,EAAI,GAAK,GAE5E,SAASq6B,GAAG37B,GACV,IAAIK,EAAGiB,EAAGG,EAAGC,EAAGC,EAChB,OAAO3B,EAAE47B,YAAcv7B,EAAIL,EAAE67B,KAAO77B,EAAEiD,EAAG3B,EAAI,OAAQG,EAAI,UAAYpB,EAAIL,EAAE67B,KAAO77B,EAAEkD,EAAG5B,EAAI,SAAUG,EAAI,OAAQpB,GAAKqB,EAAI,MAAOC,EAAI,UAAYD,EAAI,QAASC,EAAI,OAAQ,CAAEgI,MAAOrI,EAAGirB,IAAK9qB,EAAGyxB,QAAS7yB,EAAGggB,IAAK3e,EAAG4e,OAAQ3e,GAE5N,SAASm6B,GAAG97B,EAAGK,EAAGiB,EAAGG,GACnB,IAAIC,EAAIrB,EAAE07B,cACV,MAAMp6B,EAAI,GACV,IAAKD,EAEH,YADA1B,EAAE+7B,cAAgBp6B,GAGpB,IAAU,IAAND,EAEF,YADA1B,EAAE+7B,cAAgB,CAAE1b,KAAK,EAAID,OAAO,EAAIE,QAAQ,EAAIH,MAAM,IAG5D,MAAQxW,MAAO/H,EAAG2qB,IAAK7pB,EAAGwwB,QAASvwB,EAAG0d,IAAKzd,EAAG0d,OAAQ1Z,GAAM+0B,GAAG37B,GACzD,WAAN0B,GAAkBJ,IAAMtB,EAAEg8B,oBAAqB,GAAK16B,EAAEmzB,MAAQ,KAAOhzB,EAAIC,EAAIkB,GAAKtB,EAAEozB,SAAW,KAAOjzB,EAAIC,EAAIkF,GAAKjF,EAAEs6B,GAAGr1B,EAAGhF,EAAGc,EAAGC,KAAM,EAAIjB,EAAIkB,IAAKjB,EAAEs6B,GAAGv6B,EAAGE,EAAGc,EAAGC,KAAM,EAAI3C,EAAE+7B,cAAgBp6B,EAEhM,SAASs6B,GAAGj8B,EAAGK,EAAGiB,EAAGG,GACnB,OAAOA,GAAKzB,EAAIk8B,GAAGl8B,EAAGK,EAAGiB,GAAItB,EAAIm8B,GAAGn8B,EAAGsB,EAAGjB,IAAML,EAAIm8B,GAAGn8B,EAAGK,EAAGiB,GAAItB,EAEnE,SAASk8B,GAAGl8B,EAAGK,EAAGiB,GAChB,OAAOtB,IAAMK,EAAIiB,EAAItB,IAAMsB,EAAIjB,EAAIL,EAErC,SAASm8B,GAAGn8B,EAAGK,EAAGiB,GAChB,MAAa,UAANtB,EAAgBK,EAAU,QAANL,EAAcsB,EAAItB,EAE/C,SAASo8B,GAAGp8B,GAAKq8B,cAAeh8B,GAAKiB,GACnCtB,EAAEq8B,cAAsB,SAANh8B,EAAqB,IAANiB,EAAU,IAAO,EAAIjB,EAtGxDs1B,GAAG2G,SAAW,GACd3G,GAAGp1B,UAAUg3B,mBAAqB,KAClC5B,GAAGp1B,UAAUw4B,gBAAkB,KAsG/B,MAAMwD,WAAW5G,GACf,mBAAmBt1B,EAAGiB,EAAGG,EAAGC,GAC1B,OAAO85B,GAAGn7B,EAAGiB,EAAGG,EAAGC,GAErB,eAAerB,EAAGiB,EAAGG,EAAGC,GACtB,OAAO85B,GAAGn7B,EAAGiB,EAAGG,EAAGC,GAErB,gBAAgBrB,EAAGiB,EAAGG,EAAGC,GACvB,MAAQwH,OAAQvH,EAAG6yB,OAAQ5yB,GAAMvB,GAAK43B,SAAUv1B,EAAI,IAAKw1B,SAAUv1B,EAAI,KAAQoF,KAAKkf,SAAUrkB,EAAe,MAAXjB,EAAEyH,KAAe1G,EAAIC,EAAGiE,EAAe,MAAXhF,EAAEwH,KAAe1G,EAAIC,EAAG2G,EAAI,GAC1J,IAAIE,EAAGkE,EAAGM,EAAG6e,EACb,IAAKrjB,EAAI/H,EAAGiM,EAAIjM,EAAIC,EAAG8H,EAAIkE,IAAKlE,EAC9BqjB,EAAIvrB,EAAEkI,GAAIwE,EAAI,GAAIA,EAAErM,EAAEyH,MAAQzH,EAAEulB,MAAM/jB,EAAG0pB,EAAGjqB,GAAI4G,GAAIF,EAAE/F,KAAKg4B,GAAGp4B,EAAG0pB,EAAGjmB,GAAIoH,EAAGpM,EAAG4H,IAChF,OAAOF,EAET,sBAAsBjJ,EAAGiB,EAAGG,EAAGC,GAC7B86B,MAAMnE,sBAAsBh4B,EAAGiB,EAAGG,EAAGC,GACrC,MAAMC,EAAIF,EAAE25B,QACZz5B,GAAKL,IAAMyG,KAAKusB,YAAYE,SAAWn0B,EAAE0F,IAAM5B,KAAK4B,IAAI1F,EAAE0F,IAAKpE,EAAEoE,KAAM1F,EAAE2F,IAAM7B,KAAK6B,IAAI3F,EAAE2F,IAAKrE,EAAEqE,MAEnG,iBACE,OAAO,EAET,iBAAiB3F,GACf,MAAMiB,EAAIyG,KAAKusB,aAAeprB,OAAQzH,EAAG+yB,OAAQ9yB,GAAMJ,EAAGK,EAAIoG,KAAKuwB,UAAUj4B,GAAIuB,EAAID,EAAEy5B,QAAS14B,EAAIwE,GAAGtF,GAAK,IAAMA,EAAE+H,MAAQ,KAAO/H,EAAE2qB,IAAM,IAAM,GAAK7qB,EAAE82B,iBAAiB72B,EAAED,EAAE0H,OAC7K,MAAO,CACLmvB,MAAO,GAAK92B,EAAE+2B,iBAAiB72B,EAAEF,EAAE2H,OACnCvB,MAAOnF,GAGX,aACEqF,KAAKsuB,qBAAsB,EAAImG,MAAM/F,aACrC,MAAMp2B,EAAI0H,KAAKusB,YACfj0B,EAAEwzB,MAAQ9rB,KAAK6uB,aAAa/C,MAE9B,OAAOxzB,GACL,MAAMiB,EAAIyG,KAAKusB,YACfvsB,KAAK+xB,eAAex4B,EAAE8c,KAAM,EAAG9c,EAAE8c,KAAKvc,OAAQxB,GAEhD,eAAeA,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAU,UAAND,GAAiBO,MAAOL,EAAG0yB,aAAeE,OAAQ9xB,IAAQqF,KAAMpF,EAAID,EAAE+5B,eAAgB75B,EAAIF,EAAEg5B,eAAgB90B,EAAImB,KAAK20B,aAAelD,cAAelwB,EAAGgwB,eAAgB9vB,GAAMzB,KAAK40B,kBAAkBr7B,EAAGI,GAChN,IAAK,IAAIgM,EAAIpM,EAAGoM,EAAIpM,EAAIG,EAAGiM,IAAK,CAC9B,MAAMM,EAAIjG,KAAKuwB,UAAU5qB,GAAImf,EAAIlrB,GAAK1B,EAAE+N,EAAEtL,EAAE0G,OAAS,CAAEyyB,KAAMl5B,EAAGi6B,KAAMj6B,GAAMoF,KAAK80B,yBAAyBnvB,GAAIof,EAAI/kB,KAAK+0B,yBAAyBpvB,EAAG9G,GAAI6G,GAAKO,EAAEumB,SAAW,IAAI7xB,EAAE0G,MAAOnG,EAAI,CACxL24B,WAAYh5B,EACZi5B,KAAMhP,EAAEgP,KACRG,oBAAqBvuB,GAAKvG,GAAG8G,EAAEotB,UAAYx5B,IAAM6L,EAAEgnB,MAAQ7yB,IAAM6L,EAAEinB,QACnEzxB,EAAGL,EAAIiqB,EAAE+P,KAAO9P,EAAEiQ,OAClB75B,EAAGN,EAAIkqB,EAAEiQ,OAASlQ,EAAE+P,KACpB9d,OAAQlc,EAAIkqB,EAAEhpB,KAAOK,KAAKyB,IAAIinB,EAAE/oB,MAChCoa,MAAOtb,EAAIuB,KAAKyB,IAAIinB,EAAE/oB,MAAQgpB,EAAEhpB,MAElC0F,IAAMvG,EAAEuqB,QAAUlkB,GAAKvB,KAAK8wB,0BAA0BnrB,EAAGrN,EAAEqN,GAAGmkB,OAAS,SAAWnwB,IAClF,MAAMkrB,EAAI3pB,EAAEuqB,SAAWntB,EAAEqN,GAAG8f,QAC5BsO,GAAG74B,EAAG2pB,EAAGnf,EAAG7L,GAAIw6B,GAAGn5B,EAAG2pB,EAAGhmB,EAAEo0B,OAAQjzB,KAAKi1B,cAAc38B,EAAEqN,GAAIA,EAAGzK,EAAGvB,IAGtE,WAAWrB,EAAGiB,GACZ,MAAQ4H,OAAQzH,GAAMsG,KAAKusB,YAAa5yB,EAAID,EAAE2yB,wBAAwBrsB,KAAKguB,OAAOvP,OAAQ7jB,GAAMA,EAAE0yB,WAAW7H,QAAQyP,SAAUt7B,EAAIF,EAAE+rB,QAAQoG,QAAShyB,EAAI,GAAIc,EAAKC,IACjK,MAAMC,EAAID,EAAE0yB,WAAWiD,UAAUh3B,GAAIsF,EAAIhE,GAAKA,EAAED,EAAE6xB,OAAOprB,MACzD,GAAInJ,EAAE2G,IAAMjB,MAAMiB,GAChB,OAAO,GAEX,IAAK,MAAMjE,KAAKjB,EACd,SAAY,IAANJ,IAAgBoB,EAAEC,QAAe,IAANhB,IAAoC,IAAxBC,EAAEU,QAAQK,EAAEkxB,aAAuB,IAANlyB,QAA4B,IAAZgB,EAAEkxB,QAAqBjyB,EAAE2B,KAAKZ,EAAEkxB,OAAQlxB,EAAEV,QAAU5B,GAC5I,MACJ,OAAOuB,EAAEC,QAAUD,EAAE2B,UAAK,GAAS3B,EAErC,eAAevB,GACb,OAAO0H,KAAKm1B,gBAAW,EAAQ78B,GAAGwB,OAEpC,eAAexB,EAAGiB,EAAGG,GACnB,MAAMC,EAAIqG,KAAKm1B,WAAW78B,EAAGoB,GAAIE,OAAU,IAANL,EAAeI,EAAEY,QAAQhB,IAAM,EACpE,OAAc,IAAPK,EAAWD,EAAEG,OAAS,EAAIF,EAEnC,YACE,MAAMtB,EAAI0H,KAAKylB,QAASlsB,EAAIyG,KAAKusB,YAAa7yB,EAAIH,EAAE4H,OAAQxH,EAAI,GAChE,IAAIC,EAAGC,EACP,IAAKD,EAAI,EAAGC,EAAIN,EAAE8c,KAAKvc,OAAQF,EAAIC,IAAKD,EACtCD,EAAE6B,KAAK9B,EAAEiI,iBAAiB3B,KAAKuwB,UAAU32B,GAAGF,EAAE2H,MAAOzH,IACvD,MAAMe,EAAIrC,EAAEu6B,aACZ,MAAO,CACL70B,IAAKrD,GAAK63B,GAAGj5B,GACb25B,OAAQv5B,EACRiI,MAAOlI,EAAE07B,YACT5Q,IAAK9qB,EAAE27B,UACPC,WAAYt1B,KAAKu1B,iBACjBlgB,MAAO3b,EACPw7B,QAAS58B,EAAE48B,QACXjC,MAAOt4B,EAAI,EAAIrC,EAAEw6B,mBAAqBx6B,EAAEy6B,eAG5C,yBAAyBz6B,GACvB,MAAQi0B,aAAeE,OAAQlzB,EAAGo0B,SAAUj0B,GAAK+rB,SAAWqO,KAAMn6B,EAAG67B,aAAc57B,IAAQoG,KAAMnG,EAAIF,GAAK,EAAGgB,EAAIqF,KAAKuwB,UAAUj4B,GAAIsC,EAAID,EAAE04B,QAASx4B,EAAIsE,GAAGvE,GAC1J,IAAgE+K,EAAGM,EAA/DpH,EAAIlE,EAAEpB,EAAE8H,MAAOE,EAAI,EAAGE,EAAI/H,EAAIsG,KAAKy1B,WAAWl8B,EAAGoB,EAAGjB,GAAKmF,EAC7D4C,IAAM5C,IAAM0C,EAAIE,EAAI5C,EAAG4C,EAAI5C,GAAIhE,IAAMgE,EAAIjE,EAAE04B,SAAU7xB,EAAI7G,EAAE24B,OAAS34B,EAAE04B,SAAgB,IAANz0B,GAAW7B,EAAG6B,KAAO7B,EAAGpC,EAAE24B,UAAYhyB,EAAI,GAAIA,GAAK1C,GACnI,MAAMimB,EAAK5sB,EAAEyB,IAAOkB,EAAQ0G,EAAJ5H,EACxB,IAAIorB,EAAIxrB,EAAEoI,iBAAiBmjB,GAC3B,GAAsCnf,EAAlC3F,KAAK4T,MAAM8hB,kBAAkBp9B,GAASiB,EAAEoI,iBAAiBJ,EAAIE,GAASsjB,EAAG9e,EAAIN,EAAIof,EAAG3oB,KAAKyB,IAAIoI,GAAKrM,EAAG,CACvGqM,EAAIytB,GAAGztB,EAAG1M,EAAGM,GAAKD,EAAGiF,IAAMhF,IAAMkrB,GAAK9e,EAAI,GAC1C,MAAMP,EAAInM,EAAEo8B,mBAAmB,GAAIz6B,EAAI3B,EAAEo8B,mBAAmB,GAAI9Q,EAAIzoB,KAAK4B,IAAI0H,EAAGxK,GAAIC,EAAIiB,KAAK6B,IAAIyH,EAAGxK,GACpG6pB,EAAI3oB,KAAK6B,IAAI7B,KAAK4B,IAAI+mB,EAAG5pB,GAAI0pB,GAAIlf,EAAIof,EAAI9e,EAE3C,GAAI8e,IAAMxrB,EAAEoI,iBAAiB9H,GAAI,CAC/B,MAAM6L,EAAI1I,EAAGiJ,GAAK1M,EAAEq8B,qBAAqB/7B,GAAK,EAC9CkrB,GAAKrf,EAAGO,GAAKP,EAEf,MAAO,CACL3J,KAAMkK,EACN6tB,KAAM/O,EACN8P,KAAMlvB,EACNqvB,OAAQrvB,EAAIM,EAAI,GAGpB,yBAAyB3N,EAAGiB,GAC1B,MAAMG,EAAIH,EAAE8b,MAAO1b,EAAIqG,KAAKylB,QAAS7rB,EAAID,EAAEk8B,SAAUh8B,EAAIZ,EAAEU,EAAEm8B,gBAAiB,KAC9E,IAAIn7B,EAAGC,EACP,GAAIrB,EAAE27B,QAAS,CACb,MAAMr6B,EAAIjB,EAAIoG,KAAKu1B,eAAej9B,GAAKiB,EAAE+7B,WAAYz2B,EAAuB,SAAnBlF,EAAEk5B,aAA0BM,GAAG76B,EAAGiB,EAAGI,EAAGkB,GAAK+3B,GAAGt6B,EAAGiB,EAAGI,EAAGkB,GAAI0G,EAAIvB,KAAK+1B,eAAe/1B,KAAK9F,MAAO8F,KAAKusB,YAAYT,MAAOlyB,EAAItB,OAAI,GAC1LqC,EAAIkE,EAAE+C,MAAQ/C,EAAEm0B,MAAQzxB,EAAI1C,EAAEm0B,MAAQ,EAAGp4B,EAAIwB,KAAK4B,IAAInE,EAAGgF,EAAEm0B,MAAQn0B,EAAEo0B,YAErEt4B,EAAIjB,EAAEiI,iBAAiB3B,KAAKuwB,UAAUj4B,GAAGoB,EAAE2H,MAAO/I,GAAIsC,EAAIwB,KAAK4B,IAAInE,EAAGN,EAAEyE,IAAMzE,EAAE05B,OAClF,MAAO,CACLa,KAAMn5B,EAAIC,EAAI,EACdi6B,KAAMl6B,EAAIC,EAAI,EACdo6B,OAAQr6B,EACRoB,KAAMnB,GAGV,OACE,MAAMtC,EAAI0H,KAAKusB,YAAahzB,EAAIjB,EAAEm0B,OAAQ/yB,EAAIpB,EAAE+d,KAAM1c,EAAID,EAAEI,OAC5D,IAAIF,EAAI,EACR,KAAOA,EAAID,IAAKC,EACgB,OAA9BoG,KAAKuwB,UAAU32B,GAAGL,EAAE8H,OAAkB3H,EAAEE,GAAGguB,KAAK5nB,KAAK6tB,OAG3D2G,GAAGxI,GAAK,MACRwI,GAAGD,SAAW,CACZ/E,oBAAoB,EACpBwB,gBAAiB,MACjB8B,mBAAoB,GACpBC,cAAe,GACfmC,SAAS,EACTjL,WAAY,CACVJ,QAAS,CACP3tB,KAAM,SACN0tB,WAAY,CAAC,IAAK,IAAK,OAAQ,QAAS,aAI9C4K,GAAGwB,UAAY,CACb1gB,OAAQ,CACN2gB,QAAS,CACP/5B,KAAM,WACNg6B,QAAQ,EACRC,KAAM,CACJD,QAAQ,IAGZE,QAAS,CACPl6B,KAAM,SACNm6B,aAAa,KAInB,MAAMC,WAAW1I,GACf,aACE5tB,KAAKsuB,qBAAsB,EAAImG,MAAM/F,aAEvC,mBAAmBp2B,EAAGiB,EAAGG,EAAGC,GAC1B,MAAMC,EAAI66B,MAAMzE,mBAAmB13B,EAAGiB,EAAGG,EAAGC,GAC5C,IAAK,IAAIE,EAAI,EAAGA,EAAID,EAAEE,OAAQD,IAC5BD,EAAEC,GAAGw5B,QAAUrzB,KAAK8wB,0BAA0Bj3B,EAAIH,GAAG0d,OACvD,OAAOxd,EAET,eAAetB,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAI66B,MAAM3E,eAAex3B,EAAGiB,EAAGG,EAAGC,GACxC,IAAK,IAAIE,EAAI,EAAGA,EAAID,EAAEE,OAAQD,IAAK,CACjC,MAAMc,EAAIpB,EAAEG,EAAIG,GAChBD,EAAEC,GAAGw5B,QAAUp6B,EAAE0B,EAAE,GAAIqF,KAAK8wB,0BAA0Bj3B,EAAIH,GAAG0d,QAE/D,OAAOxd,EAET,gBAAgBtB,EAAGiB,EAAGG,EAAGC,GACvB,MAAMC,EAAI66B,MAAM1E,gBAAgBz3B,EAAGiB,EAAGG,EAAGC,GACzC,IAAK,IAAIE,EAAI,EAAGA,EAAID,EAAEE,OAAQD,IAAK,CACjC,MAAMc,EAAIpB,EAAEG,EAAIG,GAChBD,EAAEC,GAAGw5B,QAAUp6B,EAAE0B,GAAKA,EAAEd,IAAMc,EAAEd,EAAGmG,KAAK8wB,0BAA0Bj3B,EAAIH,GAAG0d,QAE3E,OAAOxd,EAET,iBACE,MAAMtB,EAAI0H,KAAKusB,YAAYlW,KAC3B,IAAI9c,EAAI,EACR,IAAK,IAAIG,EAAIpB,EAAEwB,OAAS,EAAGJ,GAAK,IAAKA,EACnCH,EAAI6C,KAAK6B,IAAI1E,EAAGjB,EAAEoB,GAAGqC,KAAKiE,KAAK8wB,0BAA0Bp3B,IAAM,GACjE,OAAOH,EAAI,GAAKA,EAElB,iBAAiBjB,GACf,MAAMiB,EAAIyG,KAAKusB,aAAexqB,OAAQrI,EAAGsI,OAAQrI,GAAMJ,EAAGK,EAAIoG,KAAKuwB,UAAUj4B,GAAIuB,EAAIH,EAAE+2B,iBAAiB72B,EAAEsB,GAAIP,EAAIhB,EAAE82B,iBAAiB72B,EAAEuB,GAAIP,EAAIhB,EAAEy5B,QACjJ,MAAO,CACL7C,MAAOj3B,EAAEi3B,MACT1wB,MAAO,IAAMjG,EAAI,KAAOc,GAAKC,EAAI,KAAOA,EAAI,IAAM,KAGtD,OAAOtC,GACL,MAAMiB,EAAIyG,KAAKusB,YAAYlW,KAC3BrW,KAAK+xB,eAAex4B,EAAG,EAAGA,EAAEO,OAAQxB,GAEtC,eAAeA,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAU,UAAND,GAAiBwH,OAAQtH,EAAG4yB,OAAQ9xB,GAAMqF,KAAKusB,aAAekF,cAAe72B,EAAG22B,eAAgB12B,GAAMmF,KAAK40B,kBAAkBr7B,EAAGI,GAAIkF,EAAIhF,EAAEwH,KAAME,EAAI5G,EAAE0G,KAChK,IAAK,IAAII,EAAIlI,EAAGkI,EAAIlI,EAAIG,EAAG+H,IAAK,CAC9B,MAAMkE,EAAIrN,EAAEmJ,GAAIwE,GAAKrM,GAAKoG,KAAKuwB,UAAU9uB,GAAIqjB,EAAI,GAAIC,EAAID,EAAEjmB,GAAKjF,EAAIC,EAAE87B,mBAAmB,IAAO97B,EAAE8H,iBAAiBsE,EAAEpH,IAAK6G,EAAIof,EAAEvjB,GAAK3H,EAAIe,EAAE+5B,eAAiB/5B,EAAEgH,iBAAiBsE,EAAE1E,IACjLujB,EAAEvF,KAAO3hB,MAAMmnB,IAAMnnB,MAAM8H,GAAI7K,IAAMiqB,EAAEW,QAAU7qB,GAAKoF,KAAK8wB,0BAA0BrvB,EAAGkE,EAAEmkB,OAAS,SAAWnwB,GAAIC,IAAMkrB,EAAEW,QAAQrO,OAAS,IAAKpX,KAAKi1B,cAActvB,EAAGlE,EAAGqjB,EAAGnrB,IAGhL,0BAA0BrB,EAAGiB,GAC3B,MAAMG,EAAIsG,KAAKuwB,UAAUj4B,GACzB,IAAIqB,EAAI86B,MAAM3D,0BAA0Bx4B,EAAGiB,GAC3CI,EAAE+wB,UAAY/wB,EAAIpB,OAAO+J,OAAO,GAAI3I,EAAG,CAAE+wB,SAAS,KAClD,MAAM9wB,EAAID,EAAEyd,OACZ,MAAa,WAAN7d,IAAmBI,EAAEyd,OAAS,GAAIzd,EAAEyd,QAAUne,EAAES,GAAKA,EAAE25B,QAASz5B,GAAID,GAiC/E,SAAS48B,GAAGt+B,EAAGK,EAAGiB,GAChB,IAAIG,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAC7B,GAAIvB,EAAIgE,EAAG,CACT,MAAM3B,EAAI1C,EAAG2C,EAAID,EAAIrC,EAAGuC,EAAIuB,KAAKsH,IAAI/I,GAAIkE,EAAIzC,KAAKqG,IAAI9H,GAAI4G,EAAInF,KAAKsH,IAAI9I,GAAI6G,EAAIrF,KAAKqG,IAAI7H,GAAI+K,EAAI,CAACkf,EAAG1pB,EAAG6pB,IAAMpmB,GAAGimB,EAAGlqB,EAAGC,GAAG,GAAM,EAAIwB,KAAK6B,IAAI9C,EAAGA,EAAI5B,EAAGyrB,EAAGA,EAAIzrB,GAAI0M,EAAI,CAAC4e,EAAG1pB,EAAG6pB,IAAMpmB,GAAGimB,EAAGlqB,EAAGC,GAAG,IAAO,EAAIwB,KAAK4B,IAAI7C,EAAGA,EAAI5B,EAAGyrB,EAAGA,EAAIzrB,GAAIurB,EAAInf,EAAE,EAAG9K,EAAG0G,GAAIwjB,EAAIpf,EAAEhJ,EAAGkC,EAAG4C,GAAIiE,EAAIO,EAAE9J,EAAGtB,EAAG0G,GAAIrG,EAAI+K,EAAE9J,EAAIQ,EAAGkC,EAAG4C,GACvS/H,GAAKorB,EAAIpf,GAAK,EAAG/L,GAAKorB,EAAI7pB,GAAK,EAAGtB,IAAMkrB,EAAIpf,GAAK,EAAG7L,IAAMkrB,EAAI7pB,GAAK,EAErE,MAAO,CAAEs7B,OAAQ98B,EAAG+8B,OAAQ98B,EAAG2nB,QAAS1nB,EAAG2nB,QAAS1nB,GApCtDy8B,GAAGtK,GAAK,SACRsK,GAAG/B,SAAW,CACZ/E,oBAAoB,EACpBwB,gBAAiB,QACjB/G,WAAY,CACVJ,QAAS,CACP3tB,KAAM,SACN0tB,WAAY,CAAC,IAAK,IAAK,cAAe,aAI5C0M,GAAGN,UAAY,CACb1gB,OAAQ,CACNpa,EAAG,CACDgB,KAAM,UAERf,EAAG,CACDe,KAAM,WAGViZ,QAAS,CACPuhB,QAAS,CACPC,UAAW,CACT,QACE,MAAO,QAcjB,MAAMC,WAAWhJ,GACf,YAAYt1B,EAAGiB,GACbk7B,MAAMn8B,EAAGiB,GAAIyG,KAAKsuB,qBAAsB,EAAItuB,KAAK62B,iBAAc,EAAQ72B,KAAK82B,iBAAc,EAAQ92B,KAAKshB,aAAU,EAAQthB,KAAKuhB,aAAU,EAE1I,cAEA,MAAMjpB,EAAGiB,GACP,MAAMG,EAAIsG,KAAK6uB,aAAaxY,KAAM1c,EAAIqG,KAAKusB,YAC3C,IAAsB,IAAlBvsB,KAAKkf,SACPvlB,EAAEyH,QAAU1H,MACT,CACH,IAKIG,EAAGc,EALHf,EAAKgB,IAAOlB,EAAEkB,GAClB,GAAIhC,EAAEc,EAAEpB,IAAK,CACX,MAAQ2mB,IAAKrkB,EAAI,SAAYoF,KAAKkf,SAClCtlB,EAAKiB,IAAOO,EAAG1B,EAAEmB,GAAID,GAGvB,IAAKf,EAAIvB,EAAGqC,EAAIrC,EAAIiB,EAAGM,EAAIc,IAAKd,EAC9BF,EAAEyH,QAAQvH,GAAKD,EAAEC,IAGvB,eACE,OAAOqE,EAAG8B,KAAKylB,QAAQtO,SAAW,IAEpC,oBACE,OAAOjZ,EAAG8B,KAAKylB,QAAQsR,eAEzB,sBACE,IAAIz+B,EAAIgE,EAAG/C,GAAK+C,EAChB,IAAK,IAAI5C,EAAI,EAAGA,EAAIsG,KAAK4T,MAAMyC,KAAK3C,SAAS5Z,SAAUJ,EACrD,GAAIsG,KAAK4T,MAAMojB,iBAAiBt9B,GAAI,CAClC,MAAMC,EAAIqG,KAAK4T,MAAMyb,eAAe31B,GAAG4zB,WAAY1zB,EAAID,EAAEs9B,eAAgBp9B,EAAIF,EAAEu9B,oBAC/E5+B,EAAI8D,KAAK4B,IAAI1F,EAAGsB,GAAIL,EAAI6C,KAAK6B,IAAI1E,EAAGK,EAAIC,GAE5C,MAAO,CACLsd,SAAU7e,EACVy+B,cAAex9B,EAAIjB,GAGvB,OAAOA,GACL,MAAMiB,EAAIyG,KAAK4T,OAASgd,UAAWl3B,GAAMH,EAAGI,EAAIqG,KAAKusB,YAAa3yB,EAAID,EAAE0c,KAAMxc,EAAImG,KAAKm3B,oBAAsBn3B,KAAKo3B,aAAax9B,GAAKoG,KAAKylB,QAAQ4R,QAAS18B,EAAIyB,KAAK6B,KAAK7B,KAAK4B,IAAItE,EAAEyc,MAAOzc,EAAEqd,QAAUld,GAAK,EAAG,GAAIe,EAAIwB,KAAK4B,IAAI9E,EAAG8G,KAAKylB,QAAQ6R,OAAQ38B,GAAI,GAAIE,EAAImF,KAAKu3B,eAAev3B,KAAK9F,QAAU68B,cAAel4B,EAAGsY,SAAU5V,GAAMvB,KAAKw3B,uBAAyBhB,OAAQ/0B,EAAGg1B,OAAQ9wB,EAAG2b,QAASrb,EAAGsb,QAASuD,GAAMyR,GAAGh1B,EAAG1C,EAAGjE,GAAImqB,GAAKrrB,EAAEyc,MAAQtc,GAAK4H,EAAGiE,GAAKhM,EAAEqd,OAASld,GAAK8L,EAAGzK,EAAIkB,KAAK6B,IAAI7B,KAAK4B,IAAI+mB,EAAGrf,GAAK,EAAG,GAAImf,EAAIxrB,EAAG2G,KAAKylB,QAAQrO,OAAQlc,GAAIC,EAAIiB,KAAK6B,IAAI4mB,EAAIjqB,EAAG,GAAIoqB,GAAKH,EAAI1pB,GAAK6E,KAAKy3B,gCACnkBz3B,KAAKshB,QAAUrb,EAAI4e,EAAG7kB,KAAKuhB,QAAUuD,EAAID,EAAGlrB,EAAE+9B,MAAQ13B,KAAK23B,iBAAkB33B,KAAK82B,YAAcjS,EAAIG,EAAIhlB,KAAK43B,qBAAqB53B,KAAK9F,OAAQ8F,KAAK62B,YAAcz6B,KAAK6B,IAAI+B,KAAK82B,YAAc9R,EAAInqB,EAAG,GAAImF,KAAK+xB,eAAen4B,EAAG,EAAGA,EAAEE,OAAQxB,GAE/O,eAAeA,EAAGiB,GAChB,MAAMG,EAAIsG,KAAKylB,QAAS9rB,EAAIqG,KAAKusB,YAAa3yB,EAAIoG,KAAKk3B,oBACvD,OAAO39B,GAAKG,EAAE4Z,UAAUukB,gBAAkB73B,KAAK4T,MAAM8hB,kBAAkBp9B,IAAuB,OAAjBqB,EAAEyH,QAAQ9I,IAAeqB,EAAE0c,KAAK/d,GAAGo1B,OAAS,EAAI1tB,KAAK83B,uBAAuBn+B,EAAEyH,QAAQ9I,GAAKsB,EAAI0C,GAE9K,eAAehE,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAU,UAAND,EAAeE,EAAImG,KAAK4T,MAAOjZ,EAAId,EAAE+2B,UAAW/1B,EAAIhB,EAAE4rB,QAAQnS,UAAWzU,GAAKlE,EAAEyd,KAAOzd,EAAE0d,OAAS,EAAG9W,GAAK5G,EAAE2d,IAAM3d,EAAE4d,QAAU,EAAG9W,EAAI7H,GAAKiB,EAAEk9B,aAAcpyB,EAAIlE,EAAI,EAAIzB,KAAK62B,YAAa5wB,EAAIxE,EAAI,EAAIzB,KAAK82B,aAAerF,cAAe3M,EAAGyM,eAAgBxM,GAAM/kB,KAAK40B,kBAAkBr7B,EAAGI,GACpS,IAA6BuB,EAAzBwK,EAAI1F,KAAKi3B,eACb,IAAK/7B,EAAI,EAAGA,EAAI3B,IAAK2B,EACnBwK,GAAK1F,KAAKg4B,eAAe98B,EAAGtB,GAC9B,IAAKsB,EAAI3B,EAAG2B,EAAI3B,EAAIG,IAAKwB,EAAG,CAC1B,MAAM2pB,EAAI7kB,KAAKg4B,eAAe98B,EAAGtB,GAAIuB,EAAI7C,EAAE4C,GAAI8pB,EAAI,CACjD9pB,EAAG2D,EAAImB,KAAKshB,QACZnmB,EAAGoG,EAAIvB,KAAKuhB,QACZ0W,WAAYvyB,EACZwyB,SAAUxyB,EAAImf,EACdkS,cAAelS,EACfiS,YAAa7wB,EACb4wB,YAAalxB,GAEfof,IAAMC,EAAES,QAAUX,GAAK9kB,KAAK8wB,0BAA0B51B,EAAGC,EAAE2uB,OAAS,SAAWnwB,IAAK+L,GAAKmf,EAAG7kB,KAAKi1B,cAAc95B,EAAGD,EAAG8pB,EAAGrrB,IAG5H,iBACE,MAAMrB,EAAI0H,KAAKusB,YAAahzB,EAAIjB,EAAE+d,KAClC,IAAW1c,EAAPD,EAAI,EACR,IAAKC,EAAI,EAAGA,EAAIJ,EAAEO,OAAQH,IAAK,CAC7B,MAAMC,EAAItB,EAAE8I,QAAQzH,GACd,OAANC,IAAegE,MAAMhE,IAAMoG,KAAK4T,MAAM8hB,kBAAkB/7B,KAAOJ,EAAEI,GAAG+zB,SAAWh0B,GAAK0C,KAAKyB,IAAIjE,IAE/F,OAAOF,EAET,uBAAuBpB,GACrB,MAAMiB,EAAIyG,KAAKusB,YAAYmL,MAC3B,OAAOn+B,EAAI,IAAMqE,MAAMtF,GAAKgE,GAAKF,KAAKyB,IAAIvF,GAAKiB,GAAK,EAEtD,iBAAiBjB,GACf,MAAMiB,EAAIyG,KAAKusB,YAAa7yB,EAAIsG,KAAK4T,MAAOja,EAAID,EAAE2c,KAAK8hB,QAAU,GAAIv+B,EAAI6pB,GAAGlqB,EAAE6H,QAAQ9I,GAAIoB,EAAE+rB,QAAQ2S,QACpG,MAAO,CACL5H,MAAO72B,EAAErB,IAAM,GACfwH,MAAOlG,GAGX,kBAAkBtB,GAChB,IAAIiB,EAAI,EACR,MAAMG,EAAIsG,KAAK4T,MACf,IAAIja,EAAGC,EAAGC,EAAGc,EAAGC,EAChB,IAAKtC,EACH,IAAKqB,EAAI,EAAGC,EAAIF,EAAE2c,KAAK3C,SAAS5Z,OAAQH,EAAIC,IAAKD,EAC/C,GAAID,EAAEs9B,iBAAiBr9B,GAAI,CACzBE,EAAIH,EAAE21B,eAAe11B,GAAIrB,EAAIuB,EAAEwc,KAAM1b,EAAId,EAAEyzB,WAC3C,MAGN,IAAKh1B,EACH,OAAO,EACT,IAAKqB,EAAI,EAAGC,EAAItB,EAAEwB,OAAQH,EAAIC,IAAKD,EACjCiB,EAAID,EAAEm2B,0BAA0Bn3B,GAAsB,UAAlBiB,EAAEy9B,cAA4B9+B,EAAI6C,KAAK6B,IAAI1E,EAAGqB,EAAEqd,aAAe,EAAGrd,EAAE09B,kBAAoB,IAC9H,OAAO/+B,EAET,aAAajB,GACX,IAAIiB,EAAI,EACR,IAAK,IAAIG,EAAI,EAAGC,EAAIrB,EAAEwB,OAAQJ,EAAIC,IAAKD,EAAG,CACxC,MAAME,EAAIoG,KAAK8wB,0BAA0Bp3B,GACzCH,EAAI6C,KAAK6B,IAAI1E,EAAGK,EAAEs8B,QAAU,EAAGt8B,EAAE2+B,aAAe,GAElD,OAAOh/B,EAET,qBAAqBjB,GACnB,IAAIiB,EAAI,EACR,IAAK,IAAIG,EAAI,EAAGA,EAAIpB,IAAKoB,EACvBsG,KAAK4T,MAAMojB,iBAAiBt9B,KAAOH,GAAKyG,KAAKu3B,eAAe79B,IAC9D,OAAOH,EAET,eAAejB,GACb,OAAO8D,KAAK6B,IAAIhF,EAAE+G,KAAK4T,MAAMyC,KAAK3C,SAASpb,GAAG+b,OAAQ,GAAI,GAE5D,gCACE,OAAOrU,KAAK43B,qBAAqB53B,KAAK4T,MAAMyC,KAAK3C,SAAS5Z,SAAW,GAGzE88B,GAAG5K,GAAK,WACR4K,GAAGrC,SAAW,CACZ/E,oBAAoB,EACpBwB,gBAAiB,MACjB1d,UAAW,CACTukB,eAAe,EACfE,cAAc,GAEhB9N,WAAY,CACVJ,QAAS,CACP3tB,KAAM,SACN0tB,WAAY,CAAC,gBAAiB,WAAY,cAAe,cAAe,aAAc,IAAK,IAAK,SAAU,cAAe,aAG7H0N,OAAQ,MACRngB,SAAU,EACV4f,cAAe,IACf3f,OAAQ,OACRigB,QAAS,EACT3iB,UAAW,KAEbkiB,GAAG4B,YAAc,CACf5iB,YAAc3d,GAAY,YAANA,EACpB6d,WAAa7d,GAAY,YAANA,GAErB2+B,GAAGZ,UAAY,CACbyC,YAAa,EACbtjB,QAAS,CACPujB,OAAQ,CACNP,OAAQ,CACN,eAAelgC,GACb,MAAMK,EAAIL,EAAEoe,KACZ,GAAI/d,EAAE6/B,OAAOr+B,QAAUxB,EAAEob,SAAS5Z,OAAQ,CACxC,MAAQq+B,QAAUjhB,WAAY3d,IAAQtB,EAAEygC,OAAOjT,QAC/C,OAAOntB,EAAE6/B,OAAO/9B,IAAI,CAACV,EAAGC,KACtB,MAAME,EAAI5B,EAAEo3B,eAAe,GAAG/B,WAAWqE,SAASh4B,GAClD,MAAO,CACLg/B,KAAMj/B,EACNmgB,UAAWhgB,EAAE0Z,gBACb+F,YAAazf,EAAE2Z,YACf+F,UAAW1f,EAAEoe,YACbf,WAAY3d,EACZm0B,QAASz1B,EAAEy9B,kBAAkB/7B,GAC7BO,MAAOP,KAIb,MAAO,KAGX,QAAQ1B,EAAGK,EAAGiB,GACZA,EAAEqa,MAAMglB,qBAAqBtgC,EAAE4B,OAAQX,EAAEqa,MAAMmX,WAGnD2L,QAAS,CACPC,UAAW,CACT,QACE,MAAO,IAET,MAAM1+B,GACJ,IAAIK,EAAIL,EAAEu4B,MACV,MAAMj3B,EAAI,KAAOtB,EAAE4gC,eACnB,OAAO1gC,EAAEG,IAAMA,EAAIA,EAAEK,QAASL,EAAE,IAAMiB,GAAKjB,GAAKiB,EAAGjB,OAM7D,MAAMwgC,WAAWlL,GACf,aACE5tB,KAAKsuB,qBAAsB,EAAItuB,KAAKuuB,oBAAqB,EAAIkG,MAAM/F,aAErE,OAAOp2B,GACL,MAAMiB,EAAIyG,KAAKusB,aAAeQ,QAASrzB,EAAG2c,KAAM1c,EAAI,GAAIo/B,SAAUn/B,GAAML,EAAGM,EAAImG,KAAK4T,MAAMyd,oBAC1F,IAAMzvB,MAAOjH,EAAGkH,MAAOjH,GAAMqG,GAAG1H,EAAGI,EAAGE,GACtCmG,KAAKouB,WAAazzB,EAAGqF,KAAKquB,WAAazzB,EAAGkH,GAAGvI,KAAOoB,EAAI,EAAGC,EAAIjB,EAAEG,QAASJ,EAAEosB,OAAS9lB,KAAK4T,MAAOla,EAAEssB,cAAgBhmB,KAAK9F,MAAOR,EAAEs/B,aAAep/B,EAAEo/B,WAAYt/B,EAAE0rB,OAASzrB,EACzK,MAAMkB,EAAImF,KAAK6wB,6BAA6Bv4B,GAC5C0H,KAAKylB,QAAQlQ,WAAa1a,EAAEod,YAAc,GAAIpd,EAAEo+B,QAAUj5B,KAAKylB,QAAQwT,QAASj5B,KAAKi1B,cAAcv7B,OAAG,EAAQ,CAC5Gw/B,UAAWr/B,EACX4rB,QAAS5qB,GACRvC,GAAI0H,KAAK+xB,eAAep4B,EAAGgB,EAAGC,EAAGtC,GAEtC,eAAeA,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAU,UAAND,GAAiBwH,OAAQtH,EAAG4yB,OAAQ9xB,EAAGgzB,SAAU/yB,EAAGm+B,SAAUl+B,GAAMmF,KAAKusB,aAAekF,cAAe5yB,EAAG0yB,eAAgBhwB,GAAMvB,KAAK40B,kBAAkBr7B,EAAGI,GAAI8H,EAAI5H,EAAEwH,KAAMsE,EAAIhL,EAAE0G,MAAQ6e,SAAUja,EAAGgzB,QAASnU,GAAM9kB,KAAKylB,QAASV,EAAIpnB,EAAGsI,GAAKA,EAAInN,OAAO2D,kBAAmBiJ,EAAI1F,KAAK4T,MAAMyd,qBAAuBz3B,GAAW,SAAND,EACjU,IAAIuB,EAAI3B,EAAI,GAAKyG,KAAKuwB,UAAUh3B,EAAI,GACpC,IAAK,IAAIsrB,EAAItrB,EAAGsrB,EAAItrB,EAAIG,IAAKmrB,EAAG,CAC9B,MAAM1pB,EAAI7C,EAAEusB,GAAIG,EAAIhlB,KAAKuwB,UAAU1L,GAAIld,EAAIjC,EAAIvK,EAAI,GAAI8pB,EAAI/sB,EAAE8sB,EAAErf,IAAK4B,EAAII,EAAElG,GAAK5H,EAAE8H,iBAAiBqjB,EAAEvjB,GAAIojB,GAAIrK,EAAI7S,EAAEhC,GAAK/L,GAAKqrB,EAAItqB,EAAE+5B,eAAiB/5B,EAAEgH,iBAAiB/G,EAAIoF,KAAKy1B,WAAW96B,EAAGqqB,EAAGpqB,GAAKoqB,EAAErf,GAAIkf,GAC3Mld,EAAE4X,KAAO3hB,MAAM2J,IAAM3J,MAAM4c,IAAMyK,EAAGtd,EAAE4d,KAAOV,EAAI,GAAKzoB,KAAKyB,IAAImnB,EAAEvjB,GAAKvG,EAAEuG,IAAMsjB,EAAGD,IAAMnd,EAAEulB,OAASlI,EAAGrd,EAAEwlB,IAAMtyB,EAAEwb,KAAKwO,IAAKtjB,IAAMoG,EAAE8d,QAAU5mB,GAAKmB,KAAK8wB,0BAA0BjM,EAAG1pB,EAAE2uB,OAAS,SAAWnwB,IAAK+L,GAAK1F,KAAKi1B,cAAc95B,EAAG0pB,EAAGld,EAAGhO,GAAIuB,EAAI8pB,GAG1P,iBACE,MAAM1sB,EAAI0H,KAAKusB,YAAahzB,EAAIjB,EAAEy0B,QAASrzB,EAAIH,EAAEksB,SAAWlsB,EAAEksB,QAAQxN,aAAe,EAAGte,EAAIrB,EAAE+d,MAAQ,GACtG,IAAK1c,EAAEG,OACL,OAAOJ,EACT,MAAME,EAAID,EAAE,GAAGoC,KAAKiE,KAAK8wB,0BAA0B,IAAKj3B,EAAIF,EAAEA,EAAEG,OAAS,GAAGiC,KAAKiE,KAAK8wB,0BAA0Bn3B,EAAEG,OAAS,IAC3H,OAAOsC,KAAK6B,IAAIvE,EAAGE,EAAGC,GAAK,EAE7B,OACE,MAAMvB,EAAI0H,KAAKusB,YACfj0B,EAAEy0B,QAAQoM,oBAAoBn5B,KAAK4T,MAAMgd,UAAWt4B,EAAE6I,OAAOE,MAAOozB,MAAM7M,QAG9EkR,GAAG9M,GAAK,OACR8M,GAAGvE,SAAW,CACZ/E,mBAAoB,OACpBwB,gBAAiB,QACjBzb,UAAU,EACV2K,UAAU,GAEZ4Y,GAAG9C,UAAY,CACb1gB,OAAQ,CACN2gB,QAAS,CACP/5B,KAAM,YAERk6B,QAAS,CACPl6B,KAAM,YAIZ,MAAMk9B,WAAWxL,GACf,YAAYt1B,EAAGiB,GACbk7B,MAAMn8B,EAAGiB,GAAIyG,KAAK62B,iBAAc,EAAQ72B,KAAK82B,iBAAc,EAE7D,iBAAiBx+B,GACf,MAAMiB,EAAIyG,KAAKusB,YAAa7yB,EAAIsG,KAAK4T,MAAOja,EAAID,EAAE2c,KAAK8hB,QAAU,GAAIv+B,EAAI6pB,GAAGlqB,EAAE6H,QAAQ9I,GAAGuB,EAAGH,EAAE+rB,QAAQ2S,QACtG,MAAO,CACL5H,MAAO72B,EAAErB,IAAM,GACfwH,MAAOlG,GAGX,gBAAgBtB,EAAGiB,EAAGG,EAAGC,GACvB,OAAOqlB,GAAGqa,KAAKr5B,KAARgf,CAAc1mB,EAAGiB,EAAGG,EAAGC,GAEhC,OAAOrB,GACL,MAAMiB,EAAIyG,KAAKusB,YAAYlW,KAC3BrW,KAAKs5B,gBAAiBt5B,KAAK+xB,eAAex4B,EAAG,EAAGA,EAAEO,OAAQxB,GAE5D,YACE,MAAMA,EAAI0H,KAAKusB,YAAahzB,EAAI,CAAEyE,IAAKlF,OAAO2D,kBAAmBwB,IAAKnF,OAAOozB,mBAC7E,OAAO5zB,EAAE+d,KAAKtW,QAAQ,CAACrG,EAAGC,KACxB,MAAMC,EAAIoG,KAAKuwB,UAAU52B,GAAGE,GAC3B+D,MAAMhE,IAAMoG,KAAK4T,MAAM8hB,kBAAkB/7B,KAAOC,EAAIL,EAAEyE,MAAQzE,EAAEyE,IAAMpE,GAAIA,EAAIL,EAAE0E,MAAQ1E,EAAE0E,IAAMrE,MAC/FL,EAEN,gBACE,MAAMjB,EAAI0H,KAAK4T,MAAOra,EAAIjB,EAAEs4B,UAAWl3B,EAAIpB,EAAEmtB,QAAS9rB,EAAIyC,KAAK4B,IAAIzE,EAAE8e,MAAQ9e,EAAE6e,KAAM7e,EAAEgf,OAAShf,EAAE+e,KAAM1e,EAAIwC,KAAK6B,IAAItE,EAAI,EAAG,GAAIE,EAAIuC,KAAK6B,IAAIvE,EAAE6/B,iBAAmB3/B,EAAI,IAAMF,EAAE6/B,iBAAmB,EAAG,GAAI5+B,GAAKf,EAAIC,GAAKvB,EAAEkhC,yBACxNx5B,KAAK82B,YAAcl9B,EAAIe,EAAIqF,KAAK9F,MAAO8F,KAAK62B,YAAc72B,KAAK82B,YAAcn8B,EAE/E,eAAerC,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAU,UAAND,EAAeE,EAAImG,KAAK4T,MAAOhZ,EAAIf,EAAE4rB,QAAQnS,UAAWzY,EAAImF,KAAKusB,YAAY6C,OAAQvwB,EAAIhE,EAAE4+B,QAASl4B,EAAI1G,EAAE6+B,QAASj4B,EAAI5G,EAAE8+B,cAAc,GAAK,GAAMx9B,EAC5J,IAAW8J,EAAPN,EAAIlE,EACR,MAAMqjB,EAAI,IAAM9kB,KAAK45B,uBACrB,IAAK3zB,EAAI,EAAGA,EAAI1M,IAAK0M,EACnBN,GAAK3F,KAAK65B,cAAc5zB,EAAGtM,EAAGmrB,GAChC,IAAK7e,EAAI1M,EAAG0M,EAAI1M,EAAIG,EAAGuM,IAAK,CAC1B,MAAM8e,EAAIzsB,EAAE2N,GACZ,IAAIP,EAAIC,EAAGzK,EAAIyK,EAAI3F,KAAK65B,cAAc5zB,EAAGtM,EAAGmrB,GAAID,EAAIhrB,EAAE67B,kBAAkBzvB,GAAKpL,EAAEi/B,8BAA8B95B,KAAKuwB,UAAUtqB,GAAGpM,GAAK,EACpI8L,EAAIzK,EAAGtB,IAAMgB,EAAEm9B,eAAiBlT,EAAI,GAAIjqB,EAAEi9B,gBAAkBnyB,EAAIxK,EAAIuG,IACpE,MAAMtG,EAAI,CACRD,EAAG2D,EACH1D,EAAGoG,EACHs1B,YAAa,EACbC,YAAajS,EACboT,WAAYvyB,EACZwyB,SAAUh9B,EACVuqB,QAASzlB,KAAK8wB,0BAA0B7qB,EAAG8e,EAAE+E,OAAS,SAAWnwB,IAEnEqG,KAAKi1B,cAAclQ,EAAG9e,EAAG9K,EAAGxB,IAGhC,uBACE,MAAMrB,EAAI0H,KAAKusB,YACf,IAAIhzB,EAAI,EACR,OAAOjB,EAAE+d,KAAKtW,QAAQ,CAACrG,EAAGC,MACvBiE,MAAMoC,KAAKuwB,UAAU52B,GAAGE,IAAMmG,KAAK4T,MAAM8hB,kBAAkB/7B,IAAMJ,MAChEA,EAEN,cAAcjB,EAAGiB,EAAGG,GAClB,OAAOsG,KAAK4T,MAAM8hB,kBAAkBp9B,GAAK4F,EAAG8B,KAAK8wB,0BAA0Bx4B,EAAGiB,GAAGgF,OAAS7E,GAAK,GAGnG0/B,GAAGpN,GAAK,YACRoN,GAAG7E,SAAW,CACZvD,gBAAiB,MACjB1d,UAAW,CACTukB,eAAe,EACfE,cAAc,GAEhB9N,WAAY,CACVJ,QAAS,CACP3tB,KAAM,SACN0tB,WAAY,CAAC,IAAK,IAAK,aAAc,WAAY,cAAe,iBAGpElV,UAAW,IACXujB,WAAY,GAEdmB,GAAGpD,UAAY,CACbyC,YAAa,EACbtjB,QAAS,CACPujB,OAAQ,CACNP,OAAQ,CACN,eAAelgC,GACb,MAAMK,EAAIL,EAAEoe,KACZ,GAAI/d,EAAE6/B,OAAOr+B,QAAUxB,EAAEob,SAAS5Z,OAAQ,CACxC,MAAQq+B,QAAUjhB,WAAY3d,IAAQtB,EAAEygC,OAAOjT,QAC/C,OAAOntB,EAAE6/B,OAAO/9B,IAAI,CAACV,EAAGC,KACtB,MAAME,EAAI5B,EAAEo3B,eAAe,GAAG/B,WAAWqE,SAASh4B,GAClD,MAAO,CACLg/B,KAAMj/B,EACNmgB,UAAWhgB,EAAE0Z,gBACb+F,YAAazf,EAAE2Z,YACf+F,UAAW1f,EAAEoe,YACbf,WAAY3d,EACZm0B,QAASz1B,EAAEy9B,kBAAkB/7B,GAC7BO,MAAOP,KAIb,MAAO,KAGX,QAAQ1B,EAAGK,EAAGiB,GACZA,EAAEqa,MAAMglB,qBAAqBtgC,EAAE4B,OAAQX,EAAEqa,MAAMmX,WAGnD2L,QAAS,CACPC,UAAW,CACT,QACE,MAAO,IAET,MAAM1+B,GACJ,OAAOA,EAAE2b,MAAMyC,KAAK8hB,OAAOlgC,EAAEg1B,WAAa,KAAOh1B,EAAE4gC,mBAK3DvjB,OAAQ,CACNzb,EAAG,CACDqC,KAAM,eACN69B,WAAY,CACVC,SAAS,GAEX3D,aAAa,EACbF,KAAM,CACJ8D,UAAU,GAEZC,YAAa,CACXF,SAAS,GAEX/B,WAAY,KAIlB,MAAMkC,WAAWvD,IAEjBuD,GAAGnO,GAAK,MACRmO,GAAG5F,SAAW,CACZ+C,OAAQ,EACRngB,SAAU,EACV4f,cAAe,IACf3f,OAAQ,QAEV,MAAMgjB,WAAWxM,GACf,iBAAiBt1B,GACf,MAAMiB,EAAIyG,KAAKusB,YAAYE,OAAQ/yB,EAAIsG,KAAKuwB,UAAUj4B,GACtD,MAAO,CACLk4B,MAAOj3B,EAAE02B,YAAY33B,GACrBwH,MAAO,GAAKvG,EAAEk3B,iBAAiB/2B,EAAEH,EAAE8H,QAGvC,gBAAgB/I,EAAGiB,EAAGG,EAAGC,GACvB,OAAOqlB,GAAGqa,KAAKr5B,KAARgf,CAAc1mB,EAAGiB,EAAGG,EAAGC,GAEhC,OAAOrB,GACL,MAAMiB,EAAIyG,KAAKusB,YAAa7yB,EAAIH,EAAEwzB,QAASpzB,EAAIJ,EAAE8c,MAAQ,GAAIzc,EAAIL,EAAE4H,OAAO8uB,YAC1E,GAAIv2B,EAAE0rB,OAASzrB,EAAS,WAANrB,EAAgB,CAChC,MAAMuB,EAAImG,KAAK6wB,6BAA6Bv4B,GAC5C0H,KAAKylB,QAAQlQ,WAAa1b,EAAEoe,YAAc,GAC1C,MAAMtd,EAAI,CACR+qB,OAAO,EACPE,UAAWhsB,EAAEE,SAAWH,EAAEG,OAC1B2rB,QAAS5rB,GAEXmG,KAAKi1B,cAAcv7B,OAAG,EAAQiB,EAAGrC,GAEnC0H,KAAK+xB,eAAep4B,EAAG,EAAGA,EAAEG,OAAQxB,GAEtC,eAAeA,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAIoG,KAAKusB,YAAY6C,OAAQv1B,EAAU,UAANF,EACvC,IAAK,IAAIgB,EAAIpB,EAAGoB,EAAIpB,EAAIG,EAAGiB,IAAK,CAC9B,MAAMC,EAAItC,EAAEqC,GAAIE,EAAImF,KAAK8wB,0BAA0Bn2B,EAAGC,EAAEkvB,OAAS,SAAWnwB,GAAIkF,EAAIjF,EAAEygC,yBAAyB1/B,EAAGqF,KAAKuwB,UAAU51B,GAAGd,GAAI0H,EAAI1H,EAAID,EAAE6/B,QAAU56B,EAAE3D,EAAGuG,EAAI5H,EAAID,EAAE8/B,QAAU76B,EAAE1D,EAAGwK,EAAI,CAC5LzK,EAAGqG,EACHpG,EAAGsG,EACHlD,MAAOM,EAAEN,MACTghB,KAAM3hB,MAAM2D,IAAM3D,MAAM6D,GACxBgkB,QAAS5qB,GAEXmF,KAAKi1B,cAAcr6B,EAAGD,EAAGgL,EAAGhM,KAIlCygC,GAAGpO,GAAK,QACRoO,GAAG7F,SAAW,CACZ/E,mBAAoB,OACpBwB,gBAAiB,QACjBtc,UAAW,IACXa,UAAU,EACVxB,SAAU,CACRumB,KAAM,CACJtiB,KAAM,WAIZoiB,GAAGpE,UAAY,CACbyC,YAAa,EACbnjB,OAAQ,CACNzb,EAAG,CACDqC,KAAM,kBAIZ,MAAMq+B,GACJ,cACEv6B,KAAK9E,OAAI,EAAQ8E,KAAK7E,OAAI,EAAQ6E,KAAK8pB,QAAS,EAAI9pB,KAAKylB,aAAU,EAAQzlB,KAAK4qB,iBAAc,EAEhG,gBAAgBtyB,GACd,MAAQ4C,EAAG3B,EAAG4B,EAAGzB,GAAMsG,KAAKw6B,SAAS,CAAC,IAAK,KAAMliC,GACjD,MAAO,CAAE4C,EAAG3B,EAAG4B,EAAGzB,GAEpB,WACE,OAAOiE,EAAGqC,KAAK9E,IAAMyC,EAAGqC,KAAK7E,GAE/B,SAAS7C,EAAGiB,GACV,MAAMG,EAAIsG,KAAK4qB,YACf,IAAKrxB,IAAMG,EACT,OAAOsG,KACT,MAAMrG,EAAI,GACV,OAAOrB,EAAEyH,QAASnG,IAChBD,EAAEC,GAAKF,EAAEE,IAAMF,EAAEE,GAAGkwB,SAAWpwB,EAAEE,GAAGuvB,IAAMnpB,KAAKpG,KAC7CD,GAGR4gC,GAAGhG,SAAW,GACdgG,GAAGE,mBAAgB,EACnB,MAAMC,GAAK,CACT,OAAOziC,GACL,OAAOE,EAAEF,GAAKA,EAAI,GAAKA,GAEzB,QAAQA,EAAGK,EAAGiB,GACZ,GAAU,IAANtB,EACF,MAAO,IACT,MAAMyB,EAAIsG,KAAK4T,MAAM6R,QAAQ2S,OAC7B,IAAIz+B,EAAGC,EAAI3B,EACX,GAAIsB,EAAEO,OAAS,EAAG,CAChB,MAAMe,EAAIuB,KAAK6B,IAAI7B,KAAKyB,IAAItE,EAAE,GAAGuG,OAAQ1D,KAAKyB,IAAItE,EAAEA,EAAEO,OAAS,GAAGgG,SACjEjF,EAAI,MAAQA,EAAI,QAAUlB,EAAI,cAAeC,EAAI+gC,GAAG1iC,EAAGsB,GAE1D,MAAMM,EAAIiD,EAAGV,KAAKyB,IAAIjE,IAAKe,EAAIyB,KAAK6B,IAAI7B,KAAK4B,KAAK,EAAI5B,KAAKkB,MAAMzD,GAAI,IAAK,GAAIe,EAAI,CAAEggC,SAAUjhC,EAAGkhC,sBAAuBlgC,EAAGmgC,sBAAuBngC,GAClJ,OAAOpC,OAAO+J,OAAO1H,EAAGoF,KAAKylB,QAAQiN,MAAMhP,QAASD,GAAGxrB,EAAGyB,EAAGkB,IAE/D,YAAY3C,EAAGK,EAAGiB,GAChB,GAAU,IAANtB,EACF,MAAO,IACT,MAAMyB,EAAIzB,EAAImE,KAAKiB,IAAI,GAAIjB,KAAKkB,MAAMR,EAAG7E,KACzC,OAAa,IAANyB,GAAiB,IAANA,GAAiB,IAANA,EAAUghC,GAAGK,QAAQriC,KAAKsH,KAAM/H,EAAGK,EAAGiB,GAAK,KAG5E,SAASohC,GAAG1iC,EAAGK,GACb,IAAIiB,EAAIjB,EAAEwB,OAAS,EAAIxB,EAAE,GAAGwH,MAAQxH,EAAE,GAAGwH,MAAQxH,EAAE,GAAGwH,MAAQxH,EAAE,GAAGwH,MACnE,OAAO1D,KAAKyB,IAAItE,IAAM,GAAKtB,IAAMmE,KAAKkB,MAAMrF,KAAOsB,EAAItB,EAAImE,KAAKkB,MAAMrF,IAAKsB,EAE7E,IAAIyhC,GAAK,CAAEC,WAAYP,IAmEvB,SAASQ,GAAGjjC,EAAGK,GACb,MAAMiB,EAAItB,EAAEwtB,QAAQiN,MAAOh5B,EAAIH,EAAE4hC,eAAiBC,GAAGnjC,GAAI0B,EAAIJ,EAAE8hC,MAAMC,QAAUC,GAAGjjC,GAAK,GAAIsB,EAAID,EAAEG,OAAQD,EAAIF,EAAE,GAAIgB,EAAIhB,EAAEC,EAAI,GAAIgB,EAAI,GACrI,GAAIhB,EAAIF,EACN,OAAO8hC,GAAGljC,EAAGsC,EAAGjB,EAAGC,EAAIF,GAAIkB,EAC7B,MAAMC,EAAI4gC,GAAG9hC,EAAGrB,EAAGoB,GACnB,GAAIE,EAAI,EAAG,CACT,IAAIiF,EAAG0C,EACP,MAAME,EAAI7H,EAAI,EAAIwC,KAAKe,OAAOxC,EAAId,IAAMD,EAAI,IAAM,KAClD,IAAK8hC,GAAGpjC,EAAGsC,EAAGC,EAAG3C,EAAEuJ,GAAK,EAAI5H,EAAI4H,EAAG5H,GAAIgF,EAAI,EAAG0C,EAAI3H,EAAI,EAAGiF,EAAI0C,EAAG1C,IAC9D68B,GAAGpjC,EAAGsC,EAAGC,EAAGlB,EAAEkF,GAAIlF,EAAEkF,EAAI,IAC1B,OAAO68B,GAAGpjC,EAAGsC,EAAGC,EAAGF,EAAGzC,EAAEuJ,GAAKnJ,EAAEwB,OAASa,EAAI8G,GAAI7G,EAElD,OAAO8gC,GAAGpjC,EAAGsC,EAAGC,GAAID,EAEtB,SAASwgC,GAAGnjC,GACV,MAAMK,EAAIL,EAAEwtB,QAAQyQ,OAAQ38B,EAAItB,EAAE0jC,YAAajiC,EAAIzB,EAAEw6B,QAAUl5B,GAAKjB,EAAI,EAAI,GAAIqB,EAAI1B,EAAE2jC,WAAariC,EACnG,OAAO6C,KAAKkB,MAAMlB,KAAK4B,IAAItE,EAAGC,IAEhC,SAAS8hC,GAAGxjC,EAAGK,EAAGiB,GAChB,MAAMG,EAAImiC,GAAG5jC,GAAI0B,EAAIrB,EAAEwB,OAASP,EAChC,IAAKG,EACH,OAAO0C,KAAK6B,IAAItE,EAAG,GACrB,MAAMC,EAAI2D,EAAG7D,GACb,IAAK,IAAIG,EAAI,EAAGc,EAAIf,EAAEE,OAAS,EAAGD,EAAIc,EAAGd,IAAK,CAC5C,MAAMe,EAAIhB,EAAEC,GACZ,GAAIe,EAAIjB,EACN,OAAOiB,EAEX,OAAOwB,KAAK6B,IAAItE,EAAG,GAErB,SAAS4hC,GAAGtjC,GACV,MAAMK,EAAI,GACV,IAAIiB,EAAGG,EACP,IAAKH,EAAI,EAAGG,EAAIzB,EAAE6B,OAAQP,EAAIG,EAAGH,IAC/BtB,EAAEsB,GAAG8hC,OAAS/iC,EAAEkD,KAAKjC,GACvB,OAAOjB,EAET,SAASkjC,GAAGvjC,EAAGK,EAAGiB,EAAGG,GACnB,IAAqBG,EAAjBF,EAAI,EAAGC,EAAIL,EAAE,GACjB,IAAKG,EAAI0C,KAAK0/B,KAAKpiC,GAAIG,EAAI,EAAGA,EAAI5B,EAAE6B,OAAQD,IAC1CA,IAAMD,IAAMtB,EAAEkD,KAAKvD,EAAE4B,IAAKF,IAAKC,EAAIL,EAAEI,EAAID,IAE7C,SAASgiC,GAAGzjC,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAIX,EAAES,EAAG,GAAIG,EAAIuC,KAAK4B,IAAI/E,EAAEU,EAAG1B,EAAE6B,QAAS7B,EAAE6B,QAClD,IAAWc,EAAGC,EAAGgE,EAAblE,EAAI,EACR,IAAKpB,EAAI6C,KAAK0/B,KAAKviC,GAAII,IAAMiB,EAAIjB,EAAID,EAAGH,EAAIqB,EAAIwB,KAAKkB,MAAM1C,EAAIrB,IAAKsF,EAAIjF,EAAGiF,EAAI,GAC7ElE,IAAKkE,EAAIzC,KAAKe,MAAMvD,EAAIe,EAAIpB,GAC9B,IAAKsB,EAAIuB,KAAK6B,IAAIrE,EAAG,GAAIiB,EAAIhB,EAAGgB,IAC9BA,IAAMgE,IAAMvG,EAAEkD,KAAKvD,EAAE4C,IAAKF,IAAKkE,EAAIzC,KAAKe,MAAMvD,EAAIe,EAAIpB,IAE1D,SAASsiC,GAAG5jC,GACV,MAAMK,EAAIL,EAAE6B,OACZ,IAAIP,EAAGG,EACP,GAAIpB,EAAI,EACN,OAAO,EACT,IAAKoB,EAAIzB,EAAE,GAAIsB,EAAI,EAAGA,EAAIjB,IAAKiB,EAC7B,GAAItB,EAAEsB,GAAKtB,EAAEsB,EAAI,KAAOG,EACtB,OAAO,EACX,OAAOA,EA5HTgO,GAAE8b,IAAI,QAAS,CACbwW,SAAS,EACT9D,QAAQ,EACR/K,SAAS,EACTkL,aAAa,EACb0F,OAAQ,QACRC,MAAO,EACP7F,KAAM,CACJ6D,SAAS,EACTzgB,UAAW,EACX0iB,YAAY,EACZC,iBAAiB,EACjBC,WAAW,EACXC,WAAY,EACZC,UAAW,CAACpkC,EAAGK,IAAMA,EAAEihB,UACvB+iB,UAAW,CAACrkC,EAAGK,IAAMA,EAAEmb,MACvByiB,QAAQ,EACR3P,WAAY,GACZC,iBAAkB,EAClBvO,YAAa,GAEfskB,MAAO,CACLvC,SAAS,EACTrB,KAAM,GACN6D,QAAS,CACPlkB,IAAK,EACLC,OAAQ,IAGZma,MAAO,CACL+J,YAAa,EACbC,YAAa,GACbC,QAAQ,EACRC,gBAAiB,EACjBC,gBAAiB,GACjBL,QAAS,EACTxC,SAAS,EACT8C,UAAU,EACVC,gBAAiB,EACjBC,YAAa,EACbC,SAAUjC,GAAGC,WAAWvP,OACxBwR,MAAO,GACP7B,MAAO,GACP8B,MAAO,SACPC,WAAY,OACZC,mBAAmB,EACnBC,cAAe,4BACfC,gBAAiB,KAGrB71B,GAAE81B,MAAM,cAAe,QAAS,GAAI,SACpC91B,GAAE81B,MAAM,aAAc,QAAS,GAAI,eACnC91B,GAAE81B,MAAM,aAAc,cAAe,GAAI,eACzC91B,GAAE81B,MAAM,cAAe,QAAS,GAAI,SACpC91B,GAAE+N,SAAS,QAAS,CAClBM,WAAW,EACXH,YAAc3d,IAAOA,EAAE4d,WAAW,YAAc5d,EAAE4d,WAAW,UAAkB,aAAN5d,GAA0B,WAANA,EAC7F6d,WAAa7d,GAAY,eAANA,GAA4B,mBAANA,IAE3CyP,GAAE+N,SAAS,SAAU,CACnBM,UAAW,UAEbrO,GAAE+N,SAAS,cAAe,CACxBG,YAAc3d,GAAY,oBAANA,GAAiC,aAANA,EAC/C6d,WAAa7d,GAAY,oBAANA,IA8DrB,MAAMwlC,GAAMxlC,GAAY,SAANA,EAAe,QAAgB,UAANA,EAAgB,OAASA,EAAGylC,GAAK,CAACzlC,EAAGK,EAAGiB,IAAY,QAANjB,GAAqB,SAANA,EAAeL,EAAEK,GAAKiB,EAAItB,EAAEK,GAAKiB,EACzI,SAASokC,GAAG1lC,EAAGK,GACb,MAAMiB,EAAI,GAAIG,EAAIzB,EAAE6B,OAASxB,EAAGqB,EAAI1B,EAAE6B,OACtC,IAAIF,EAAI,EACR,KAAOA,EAAID,EAAGC,GAAKF,EACjBH,EAAEiC,KAAKvD,EAAEmE,KAAKkB,MAAM1D,KACtB,OAAOL,EAET,SAASqkC,GAAG3lC,EAAGK,EAAGiB,GAChB,MAAMG,EAAIzB,EAAEy6B,MAAM54B,OAAQH,EAAIyC,KAAK4B,IAAI1F,EAAGoB,EAAI,GAAIE,EAAI3B,EAAEm9B,YAAav7B,EAAI5B,EAAEo9B,UAAW16B,EAAI,KAC1F,IAA8BE,EAA1BD,EAAI3C,EAAE06B,gBAAgBh5B,GAC1B,KAAMJ,IAAgBsB,EAAJ,IAANnB,EAAc0C,KAAK6B,IAAIrD,EAAIhB,EAAGC,EAAIe,GAAW,IAANtC,GAAeL,EAAE06B,gBAAgB,GAAK/3B,GAAK,GAASA,EAAI3C,EAAE06B,gBAAgBh5B,EAAI,IAAM,EAAGiB,GAAKjB,EAAIrB,EAAIuC,GAAKA,EAAGD,EAAIhB,EAAIe,GAAKC,EAAIf,EAAIc,IAClL,OAAOC,EAEX,SAASijC,GAAG5lC,EAAGK,GACbmB,EAAExB,EAAIsB,IACJ,MAAMG,EAAIH,EAAEukC,GAAInkC,EAAID,EAAEI,OAAS,EAC/B,IAAIF,EACJ,GAAID,EAAIrB,EAAG,CACT,IAAKsB,EAAI,EAAGA,EAAID,IAAKC,SACZL,EAAE8c,KAAK3c,EAAEE,IAClBF,EAAEwG,OAAO,EAAGvG,MAIlB,SAASokC,GAAG9lC,GACV,OAAOA,EAAEkkC,UAAYlkC,EAAEmkC,WAAa,EAEtC,SAAS4B,GAAG/lC,EAAGK,GACb,IAAKL,EAAE+hC,QACL,OAAO,EACT,MAAMzgC,EAAI+hB,GAAErjB,EAAEgc,KAAM3b,GAAIoB,EAAImO,GAAE5P,EAAEukC,SAChC,OAAQrkC,EAAEF,EAAE0gC,MAAQ1gC,EAAE0gC,KAAK7+B,OAAS,GAAKP,EAAE6a,WAAa1a,EAAEqd,OAE5D,SAASknB,GAAGhmC,EAAGK,GACb,OAAOsjB,GAAG3jB,EAAG,CACXod,MAAO/c,EACP4D,KAAM,UAGV,SAASgiC,GAAGjmC,EAAGK,EAAGiB,GAChB,OAAOqiB,GAAG3jB,EAAG,CACX0vB,KAAMpuB,EACNW,MAAO5B,EACP4D,KAAM,SAGV,SAASiiC,GAAGlmC,EAAGK,EAAGiB,GAChB,IAAIG,EAAIoH,GAAG7I,GACX,OAAQsB,GAAW,UAANjB,IAAkBiB,GAAW,UAANjB,KAAmBoB,EAAI+jC,GAAG/jC,IAAKA,EAErE,SAAS0kC,GAAGnmC,EAAGK,EAAGiB,EAAGG,GACnB,MAAQ4e,IAAK3e,EAAGye,KAAMxe,EAAG2e,OAAQ1e,EAAGwe,MAAO1d,EAAGiZ,MAAOhZ,GAAM3C,GAAK24B,UAAW/1B,EAAGya,OAAQzW,GAAMjE,EAC5F,IAAW6G,EAAGkE,EAAGM,EAAb1E,EAAI,EACR,MAAMujB,EAAIjrB,EAAIF,EAAGorB,EAAIpqB,EAAIf,EACzB,GAAI3B,EAAE07B,eAAgB,CACpB,GAAIhuB,EAAI5E,GAAErH,EAAGE,EAAGe,GAAI/B,EAAEW,GAAI,CACxB,MAAMmM,EAAInN,OAAOwB,KAAKR,GAAG,GAAI2B,EAAI3B,EAAEmM,GACnCO,EAAIpH,EAAE6G,GAAG/D,iBAAiBzG,GAAK4pB,EAAIxsB,OAElB2N,EAAX,WAAN1M,GAAsBsB,EAAE0d,OAAS1d,EAAEyd,KAAO,EAAIwM,EAAIxsB,EAAQolC,GAAGzlC,EAAGsB,EAAGjB,GACrEmJ,EAAI9G,EAAIf,MACH,CACL,GAAIhB,EAAEW,GAAI,CACR,MAAMmM,EAAInN,OAAOwB,KAAKR,GAAG,GAAI2B,EAAI3B,EAAEmM,GACnCC,EAAI9G,EAAE6G,GAAG/D,iBAAiBzG,GAAK6pB,EAAIzsB,OAElBqN,EAAX,WAANpM,GAAsBsB,EAAEud,KAAOvd,EAAEwd,OAAS,EAAI0M,EAAIzsB,EAAQolC,GAAGzlC,EAAGsB,EAAGjB,GACrE2N,EAAIlF,GAAErH,EAAGG,EAAGF,GAAI4H,EAAU,SAANhI,GAAgBoD,EAAIA,EAE1C,MAAO,CAAE0hC,OAAQ14B,EAAG24B,OAAQr4B,EAAGwT,SAAUhY,EAAG0V,SAAU5V,GAExD,MAAMg9B,WAAWhE,GACf,YAAYjiC,GACVm8B,QAASz0B,KAAKgsB,GAAK1zB,EAAE0zB,GAAIhsB,KAAK9D,KAAO5D,EAAE4D,KAAM8D,KAAKylB,aAAU,EAAQzlB,KAAKuiB,IAAMjqB,EAAEiqB,IAAKviB,KAAK4T,MAAQtb,EAAEsb,MAAO5T,KAAKsY,SAAM,EAAQtY,KAAKuY,YAAS,EAAQvY,KAAKoY,UAAO,EAAQpY,KAAKqY,WAAQ,EAAQrY,KAAKmW,WAAQ,EAAQnW,KAAK+W,YAAS,EAAQ/W,KAAKw+B,SAAW,CACvPpmB,KAAM,EACNC,MAAO,EACPC,IAAK,EACLC,OAAQ,GACPvY,KAAKyZ,cAAW,EAAQzZ,KAAKiiB,eAAY,EAAQjiB,KAAKy+B,gBAAa,EAAQz+B,KAAK0+B,mBAAgB,EAAQ1+B,KAAK2+B,iBAAc,EAAQ3+B,KAAK4+B,kBAAe,EAAQ5+B,KAAKqB,UAAO,EAAQrB,KAAK6+B,mBAAgB,EAAQ7+B,KAAKhC,SAAM,EAAQgC,KAAK/B,SAAM,EAAQ+B,KAAK8+B,YAAS,EAAQ9+B,KAAK0yB,MAAQ,GAAI1yB,KAAK++B,eAAiB,KAAM/+B,KAAKg/B,YAAc,KAAMh/B,KAAKi/B,YAAc,KAAMj/B,KAAKyyB,QAAU,EAAGzyB,KAAK47B,WAAa,EAAG57B,KAAKk/B,kBAAoB,GAAIl/B,KAAKo1B,iBAAc,EAAQp1B,KAAKq1B,eAAY,EAAQr1B,KAAKm/B,gBAAiB,EAAIn/B,KAAKo/B,cAAW,EAAQp/B,KAAKq/B,cAAW,EAAQr/B,KAAKs/B,mBAAgB,EAAQt/B,KAAKu/B,mBAAgB,EAAQv/B,KAAKw/B,aAAe,EAAGx/B,KAAKy/B,aAAe,EAAGz/B,KAAKoyB,OAAS,GAAIpyB,KAAK0/B,mBAAoB,EAAI1/B,KAAKwuB,cAAW,EAEztB,KAAKl2B,GACH0H,KAAKylB,QAAUntB,EAAEilB,WAAWvd,KAAK4W,cAAe5W,KAAKqB,KAAO/I,EAAE+I,KAAMrB,KAAKq/B,SAAWr/B,KAAKmf,MAAM7mB,EAAE0F,KAAMgC,KAAKo/B,SAAWp/B,KAAKmf,MAAM7mB,EAAE2F,KAAM+B,KAAKu/B,cAAgBv/B,KAAKmf,MAAM7mB,EAAEqnC,cAAe3/B,KAAKs/B,cAAgBt/B,KAAKmf,MAAM7mB,EAAEsnC,cAE/N,MAAMtnC,EAAGiB,GACP,OAAOjB,EAET,gBACE,IAAM+mC,SAAU/mC,EAAG8mC,SAAU7lC,EAAGgmC,cAAe7lC,EAAG4lC,cAAe3lC,GAAMqG,KACvE,OAAO1H,EAAIU,EAAEV,EAAGQ,OAAO2D,mBAAoBlD,EAAIP,EAAEO,EAAGT,OAAOozB,mBAAoBxyB,EAAIV,EAAEU,EAAGZ,OAAO2D,mBAAoB9C,EAAIX,EAAEW,EAAGb,OAAOozB,mBAAoB,CACrJluB,IAAKhF,EAAEV,EAAGoB,GACVuE,IAAKjF,EAAEO,EAAGI,GACV2H,WAAYzI,EAAEP,GACdkJ,WAAY3I,EAAEU,IAGlB,UAAUjB,GACR,IAA6EuB,GAAvEmE,IAAKzE,EAAG0E,IAAKvE,EAAG4H,WAAY3H,EAAG6H,WAAY5H,GAAMoG,KAAK0B,gBAC5D,GAAI/H,GAAKC,EACP,MAAO,CAAEoE,IAAKzE,EAAG0E,IAAKvE,GACxB,MAAMiB,EAAIqF,KAAKqsB,0BACf,IAAK,IAAIzxB,EAAI,EAAGC,EAAIF,EAAEb,OAAQc,EAAIC,IAAKD,EACrCf,EAAIc,EAAEC,GAAG0yB,WAAWuS,UAAU7/B,KAAM1H,GAAIqB,IAAMJ,EAAI6C,KAAK4B,IAAIzE,EAAGM,EAAEmE,MAAOpE,IAAMF,EAAI0C,KAAK6B,IAAIvE,EAAGG,EAAEoE,MACjG,OAAO1E,EAAIK,GAAKL,EAAIG,EAAIA,EAAIH,EAAGG,EAAIC,GAAKJ,EAAIG,EAAIH,EAAIG,EAAG,CACrDsE,IAAKhF,EAAEO,EAAGP,EAAEU,EAAGH,IACf0E,IAAKjF,EAAEU,EAAGV,EAAEO,EAAGG,KAGnB,aACE,MAAO,CACL0e,KAAMpY,KAAK2+B,aAAe,EAC1BrmB,IAAKtY,KAAKy+B,YAAc,EACxBpmB,MAAOrY,KAAK4+B,cAAgB,EAC5BrmB,OAAQvY,KAAK0+B,eAAiB,GAGlC,WACE,OAAO1+B,KAAK0yB,MAEd,YACE,MAAMp6B,EAAI0H,KAAK4T,MAAMyC,KACrB,OAAOrW,KAAKylB,QAAQ0S,SAAWn4B,KAAK2zB,eAAiBr7B,EAAEwnC,QAAUxnC,EAAEynC,UAAYznC,EAAE6/B,QAAU,GAE7F,eACEn4B,KAAKoyB,OAAS,GAAIpyB,KAAK0/B,mBAAoB,EAE7C,eACEpmC,EAAE0G,KAAKylB,QAAQua,aAAc,CAAChgC,OAEhC,OAAO1H,EAAGiB,EAAGG,GACX,MAAQ28B,YAAa18B,EAAGqiC,MAAOpiC,EAAG84B,MAAO74B,GAAMmG,KAAKylB,QAAS9qB,EAAId,EAAEomC,WACnEjgC,KAAKggC,eAAgBhgC,KAAKyZ,SAAWnhB,EAAG0H,KAAKiiB,UAAY1oB,EAAGyG,KAAKw+B,SAAW9kC,EAAInB,OAAO+J,OAAO,CAC5F8V,KAAM,EACNC,MAAO,EACPC,IAAK,EACLC,OAAQ,GACP7e,GAAIsG,KAAK0yB,MAAQ,KAAM1yB,KAAKi/B,YAAc,KAAMj/B,KAAK++B,eAAiB,KAAM/+B,KAAKg/B,YAAc,KAAMh/B,KAAKkgC,sBAAuBlgC,KAAKmgC,gBAAiBngC,KAAKogC,qBAAsBpgC,KAAK47B,WAAa57B,KAAK2zB,eAAiB3zB,KAAKmW,MAAQzc,EAAE0e,KAAO1e,EAAE2e,MAAQrY,KAAK+W,OAASrd,EAAE4e,IAAM5e,EAAE6e,OAAQvY,KAAK0/B,oBAAsB1/B,KAAKqgC,mBAAoBrgC,KAAKsgC,sBAAuBtgC,KAAKugC,kBAAmBvgC,KAAK8+B,OAASnjB,GAAG3b,KAAMpG,EAAGD,GAAIqG,KAAK0/B,mBAAoB,GAAK1/B,KAAKwgC,mBAAoBxgC,KAAK0yB,MAAQ1yB,KAAKygC,cAAgB,GAAIzgC,KAAK0gC,kBACrgB,MAAM9lC,EAAID,EAAIqF,KAAK0yB,MAAM54B,OACzBkG,KAAK2gC,sBAAsB/lC,EAAI+iC,GAAG39B,KAAK0yB,MAAO/3B,GAAKqF,KAAK0yB,OAAQ1yB,KAAKsqB,YAAatqB,KAAK4gC,+BAAgC5gC,KAAK6gC,yBAA0B7gC,KAAK8gC,8BAA+BjnC,EAAEmgC,UAAYngC,EAAEijC,UAAyB,SAAbjjC,EAAEknC,UAAuB/gC,KAAK0yB,MAAQwI,GAAGl7B,KAAMA,KAAK0yB,OAAQ1yB,KAAKi/B,YAAc,KAAMj/B,KAAKghC,iBAAkBpmC,GAAKoF,KAAK2gC,sBAAsB3gC,KAAK0yB,OAAQ1yB,KAAKihC,YAAajhC,KAAKkhC,MAAOlhC,KAAKmhC,WAAYnhC,KAAKohC,cAEra,YACE,IAA8B7nC,EAAGG,EAA7BpB,EAAI0H,KAAKylB,QAAQ0F,QACrBnrB,KAAK2zB,gBAAkBp6B,EAAIyG,KAAKoY,KAAM1e,EAAIsG,KAAKqY,QAAU9e,EAAIyG,KAAKsY,IAAK5e,EAAIsG,KAAKuY,OAAQjgB,GAAKA,GAAI0H,KAAKo1B,YAAc77B,EAAGyG,KAAKq1B,UAAY37B,EAAGsG,KAAKm/B,eAAiB7mC,EAAG0H,KAAKyyB,QAAU/4B,EAAIH,EAAGyG,KAAKqhC,eAAiBrhC,KAAKylB,QAAQ6b,cAE/N,cACEhoC,EAAE0G,KAAKylB,QAAQ2b,YAAa,CAACphC,OAE/B,sBACE1G,EAAE0G,KAAKylB,QAAQya,oBAAqB,CAAClgC,OAEvC,gBACEA,KAAK2zB,gBAAkB3zB,KAAKmW,MAAQnW,KAAKyZ,SAAUzZ,KAAKoY,KAAO,EAAGpY,KAAKqY,MAAQrY,KAAKmW,QAAUnW,KAAK+W,OAAS/W,KAAKiiB,UAAWjiB,KAAKsY,IAAM,EAAGtY,KAAKuY,OAASvY,KAAK+W,QAAS/W,KAAK2+B,YAAc,EAAG3+B,KAAKy+B,WAAa,EAAGz+B,KAAK4+B,aAAe,EAAG5+B,KAAK0+B,cAAgB,EAE/P,qBACEplC,EAAE0G,KAAKylB,QAAQ2a,mBAAoB,CAACpgC,OAEtC,WAAW1H,GACT0H,KAAK4T,MAAM2tB,cAAcjpC,EAAG0H,KAAK4W,cAAetd,EAAE0G,KAAKylB,QAAQntB,GAAI,CAAC0H,OAEtE,mBACEA,KAAKwhC,WAAW,oBAElB,uBAEA,kBACExhC,KAAKwhC,WAAW,mBAElB,mBACExhC,KAAKwhC,WAAW,oBAElB,aACE,MAAO,GAET,kBACExhC,KAAKwhC,WAAW,mBAElB,8BACEloC,EAAE0G,KAAKylB,QAAQgc,4BAA6B,CAACzhC,OAE/C,mBAAmB1H,GACjB,MAAMiB,EAAIyG,KAAKylB,QAAQiN,MACvB,IAAIh5B,EAAGC,EAAGC,EACV,IAAKF,EAAI,EAAGC,EAAIrB,EAAEwB,OAAQJ,EAAIC,EAAGD,IAC/BE,EAAItB,EAAEoB,GAAIE,EAAE42B,MAAQl3B,EAAEC,EAAE0jC,SAAU,CAACrjC,EAAEkG,MAAOpG,EAAGpB,GAAI0H,MAEvD,6BACE1G,EAAE0G,KAAKylB,QAAQic,2BAA4B,CAAC1hC,OAE9C,+BACE1G,EAAE0G,KAAKylB,QAAQmb,6BAA8B,CAAC5gC,OAEhD,yBACE,MAAM1H,EAAI0H,KAAKylB,QAASlsB,EAAIjB,EAAEo6B,MAAOh5B,EAAIsG,KAAK0yB,MAAM54B,OAAQH,EAAIJ,EAAEkjC,aAAe,EAAG7iC,EAAIL,EAAEmjC,YAC1F,IAAW/hC,EAAGC,EAAGC,EAAbhB,EAAIF,EACR,IAAKqG,KAAK2hC,eAAiBpoC,EAAEygC,SAAWrgC,GAAKC,GAAKF,GAAK,IAAMsG,KAAK2zB,eAEhE,YADA3zB,KAAK6+B,cAAgBllC,GAGvB,MAAMkF,EAAImB,KAAK4hC,iBAAkBrgC,EAAI1C,EAAEgjC,OAAO1rB,MAAO1U,EAAI5C,EAAEijC,QAAQ/qB,OAAQpR,EAAI7G,GAAEkB,KAAK4T,MAAMuC,MAAQ5U,EAAG,EAAGvB,KAAKyZ,UAC/G9e,EAAIrC,EAAE49B,OAASl2B,KAAKyZ,SAAW/f,EAAIiM,GAAKjM,EAAI,GAAI6H,EAAI,EAAI5G,IAAMA,EAAIgL,GAAKjM,GAAKpB,EAAE49B,OAAS,GAAM,IAAKt7B,EAAIoF,KAAKiiB,UAAY8b,GAAGzlC,EAAE69B,MAAQ58B,EAAEijC,QAAUwB,GAAG1lC,EAAEikC,MAAOv8B,KAAK4T,MAAM6R,QAAQxR,MAAOpZ,EAAIuB,KAAKoB,KAAK+D,EAAIA,EAAIE,EAAIA,GAAI5H,EAAIsE,EAAG/B,KAAK4B,IAC9N5B,KAAK2lC,KAAKjjC,IAAGD,EAAEijC,QAAQ/qB,OAAS,GAAKpc,GAAI,EAAG,IAC5CyB,KAAK2lC,KAAKjjC,GAAElE,EAAIC,GAAI,EAAG,IAAMuB,KAAK2lC,KAAKjjC,GAAE2C,EAAI5G,GAAI,EAAG,MAClDhB,EAAIuC,KAAK6B,IAAItE,EAAGyC,KAAK4B,IAAIpE,EAAGC,KAAMmG,KAAK6+B,cAAgBhlC,EAE7D,8BACEP,EAAE0G,KAAKylB,QAAQqb,4BAA6B,CAAC9gC,OAE/C,iBAEA,YACE1G,EAAE0G,KAAKylB,QAAQwb,UAAW,CAACjhC,OAE7B,MACE,MAAM1H,EAAI,CACR6d,MAAO,EACPY,OAAQ,IACLnD,MAAOra,EAAGksB,SAAWiN,MAAOh5B,EAAG6iC,MAAO5iC,EAAGw8B,KAAMv8B,IAAQoG,KAAMnG,EAAImG,KAAK2hC,aAAchnC,EAAIqF,KAAK2zB,eAClG,GAAI95B,EAAG,CACL,MAAMe,EAAIojC,GAAGrkC,EAAGJ,EAAEksB,QAAQxR,MAC1B,GAAItZ,GAAKrC,EAAE6d,MAAQnW,KAAKyZ,SAAUnhB,EAAEye,OAASgnB,GAAGnkC,GAAKgB,IAAMtC,EAAEye,OAAS/W,KAAKiiB,UAAW3pB,EAAE6d,MAAQ4nB,GAAGnkC,GAAKgB,GAAIlB,EAAEsgC,SAAWh6B,KAAK0yB,MAAM54B,OAAQ,CAC1I,MAAQkoC,MAAOnnC,EAAGonC,KAAMpjC,EAAGgjC,OAAQtgC,EAAGugC,QAASrgC,GAAMzB,KAAK4hC,iBAAkBj8B,EAAgB,EAAZjM,EAAE8iC,QAAav2B,EAAI/H,EAAG8B,KAAK6+B,eAAgB/Z,EAAI1oB,KAAKsH,IAAIuC,GAAI8e,EAAI3oB,KAAKqG,IAAIwD,GACzJ,GAAItL,EAAG,CACL,MAAM+K,EAAIhM,EAAEijC,OAAS,EAAI5X,EAAIxjB,EAAE4U,MAAQ2O,EAAIrjB,EAAEsV,OAC7Cze,EAAEye,OAAS3a,KAAK4B,IAAIgC,KAAKiiB,UAAW3pB,EAAEye,OAASrR,EAAIC,OAC9C,CACL,MAAMD,EAAIhM,EAAEijC,OAAS,EAAI7X,EAAIvjB,EAAE4U,MAAQ4O,EAAItjB,EAAEsV,OAC7Cze,EAAE6d,MAAQ/Z,KAAK4B,IAAIgC,KAAKyZ,SAAUnhB,EAAE6d,MAAQzQ,EAAIC,GAElD3F,KAAKkiC,kBAAkBrnC,EAAGgE,EAAGkmB,EAAGD,IAGpC9kB,KAAKmiC,iBAAkBxnC,GAAKqF,KAAKmW,MAAQnW,KAAKyyB,QAAUl5B,EAAE4c,MAAQnW,KAAKw+B,SAASpmB,KAAOpY,KAAKw+B,SAASnmB,MAAOrY,KAAK+W,OAASze,EAAEye,SAAW/W,KAAKmW,MAAQ7d,EAAE6d,MAAOnW,KAAK+W,OAAS/W,KAAKyyB,QAAUl5B,EAAEwd,OAAS/W,KAAKw+B,SAASlmB,IAAMtY,KAAKw+B,SAASjmB,QAEzO,kBAAkBjgB,EAAGiB,EAAGG,EAAGC,GACzB,MAAQ+4B,OAASyK,MAAOvjC,EAAG4iC,QAAS3iC,GAAKuoC,SAAUznC,GAAMqF,KAAKylB,QAAS7qB,EAA2B,IAAvBoF,KAAK6+B,cAAqBhkC,EAAU,QAANF,GAA6B,MAAdqF,KAAKqB,KAC7H,GAAIrB,KAAK2zB,eAAgB,CACvB,MAAM90B,EAAImB,KAAK2yB,gBAAgB,GAAK3yB,KAAKoY,KAAM7W,EAAIvB,KAAKqY,MAAQrY,KAAK2yB,gBAAgB3yB,KAAK0yB,MAAM54B,OAAS,GACzG,IAAI2H,EAAI,EAAGkE,EAAI,EACf/K,EAAIC,GAAK4G,EAAI9H,EAAIrB,EAAE6d,MAAOxQ,EAAIjM,EAAIH,EAAEwd,SAAWtV,EAAI/H,EAAIpB,EAAEye,OAAQpR,EAAIhM,EAAIJ,EAAE4c,OAAe,UAANvc,EAAgB+L,EAAIpM,EAAE4c,MAAc,QAANvc,EAAc6H,EAAInJ,EAAE6d,MAAc,UAANvc,IAAkB6H,EAAInJ,EAAE6d,MAAQ,EAAGxQ,EAAIpM,EAAE4c,MAAQ,GAAInW,KAAK2+B,YAAcviC,KAAK6B,KAAKwD,EAAI5C,EAAIhF,GAAKmG,KAAKmW,OAASnW,KAAKmW,MAAQtX,GAAI,GAAImB,KAAK4+B,aAAexiC,KAAK6B,KAAK0H,EAAIpE,EAAI1H,GAAKmG,KAAKmW,OAASnW,KAAKmW,MAAQ5U,GAAI,OACrV,CACL,IAAI1C,EAAItF,EAAEwd,OAAS,EAAGxV,EAAIjJ,EAAEye,OAAS,EAC/B,UAANnd,GAAiBiF,EAAI,EAAG0C,EAAIjJ,EAAEye,QAAgB,QAANnd,IAAgBiF,EAAItF,EAAEwd,OAAQxV,EAAI,GAAIvB,KAAKy+B,WAAa5/B,EAAIhF,EAAGmG,KAAK0+B,cAAgBn9B,EAAI1H,GAGpI,iBACEmG,KAAKw+B,WAAax+B,KAAKw+B,SAASpmB,KAAOhc,KAAK6B,IAAI+B,KAAK2+B,YAAa3+B,KAAKw+B,SAASpmB,MAAOpY,KAAKw+B,SAASlmB,IAAMlc,KAAK6B,IAAI+B,KAAKy+B,WAAYz+B,KAAKw+B,SAASlmB,KAAMtY,KAAKw+B,SAASnmB,MAAQjc,KAAK6B,IAAI+B,KAAK4+B,aAAc5+B,KAAKw+B,SAASnmB,OAAQrY,KAAKw+B,SAASjmB,OAASnc,KAAK6B,IAAI+B,KAAK0+B,cAAe1+B,KAAKw+B,SAASjmB,SAErS,WACEjf,EAAE0G,KAAKylB,QAAQ0b,SAAU,CAACnhC,OAE5B,eACE,MAAQqB,KAAM/I,EAAG8pC,SAAU7oC,GAAMyG,KAAKylB,QACtC,MAAa,QAANlsB,GAAqB,WAANA,GAAwB,MAANjB,EAE1C,aACE,OAAO0H,KAAKylB,QAAQ4c,SAEtB,sBAAsB/pC,GAEpB,IAAIiB,EAAGG,EACP,IAFAsG,KAAKyhC,8BAA+BzhC,KAAKsiC,mBAAmBhqC,GAEvDiB,EAAI,EAAGG,EAAIpB,EAAEwB,OAAQP,EAAIG,EAAGH,IAC/BrB,EAAEI,EAAEiB,GAAGi3B,SAAWl4B,EAAE4H,OAAO3G,EAAG,GAAIG,IAAKH,KACzCyG,KAAK0hC,6BAEP,iBACE,IAAIppC,EAAI0H,KAAKi/B,YACb,IAAK3mC,EAAG,CACN,MAAMiB,EAAIyG,KAAKylB,QAAQiN,MAAMuN,WAC7B,IAAIvmC,EAAIsG,KAAK0yB,MACbn5B,EAAIG,EAAEI,SAAWJ,EAAIikC,GAAGjkC,EAAGH,IAAKyG,KAAKi/B,YAAc3mC,EAAI0H,KAAKuiC,mBAAmB7oC,EAAGA,EAAEI,QAEtF,OAAOxB,EAET,mBAAmBA,EAAGiB,GACpB,MAAQgpB,IAAK7oB,EAAGwlC,kBAAmBvlC,GAAMqG,KAAMpG,EAAI,GAAIC,EAAI,GAC3D,IAAkBgB,EAAGgE,EAAG0C,EAAGE,EAAGkE,EAAGM,EAAG6e,EAAGC,EAAGrf,EAAGxK,EAAG2pB,EAA5ClqB,EAAI,EAAGC,EAAI,EACf,IAAKC,EAAI,EAAGA,EAAItB,IAAKsB,EAAG,CACtB,GAAI4G,EAAInJ,EAAEuC,GAAG21B,MAAO7qB,EAAI3F,KAAKwiC,wBAAwB3nC,GAAInB,EAAEua,KAAOhO,EAAIN,EAAEyT,OAAQ0L,EAAInrB,EAAEsM,GAAKtM,EAAEsM,IAAM,CAAEoQ,KAAM,GAAIynB,GAAI,IAAM/Y,EAAIpf,EAAEyO,WAAY1O,EAAIxK,EAAI,EAAIhD,EAAEuJ,IAAOtJ,EAAEsJ,IAE7J,GAAItJ,EAAEsJ,GACT,IAAK5C,EAAI,EAAG0C,EAAIE,EAAE3H,OAAQ+E,EAAI0C,IAAK1C,EACjCgmB,EAAIpjB,EAAE5C,IAAK3G,EAAE2sB,KAAO1sB,EAAE0sB,KAAOnf,EAAIuQ,GAAGvc,EAAGorB,EAAEzO,KAAMyO,EAAEgZ,GAAIp4B,EAAGmf,GAAI3pB,GAAK6pB,QAHnErf,EAAIuQ,GAAGvc,EAAGorB,EAAEzO,KAAMyO,EAAEgZ,GAAIp4B,EAAGjE,GAAIvG,EAAI6pB,EAIrCnrB,EAAE4B,KAAKkK,GAAI7L,EAAE2B,KAAKN,GAAIP,EAAIyB,KAAK6B,IAAIyH,EAAG/K,GAAIC,EAAIwB,KAAK6B,IAAI/C,EAAGN,GAE5DijC,GAAGlkC,EAAGJ,GACN,MAAM4B,EAAIvB,EAAEW,QAAQI,GAAIqqB,EAAInrB,EAAEU,QAAQK,GAAI+M,EAAKsd,IAAM,CAAG9O,MAAOvc,EAAEqrB,IAAM,EAAGlO,OAAQld,EAAEorB,IAAM,IAC1F,MAAO,CACL+c,MAAOr6B,EAAE,GACTs6B,KAAMt6B,EAAEpO,EAAI,GACZsoC,OAAQl6B,EAAExM,GACV2mC,QAASn6B,EAAEqd,GACXyd,OAAQ7oC,EACR8oC,QAAS7oC,GAGb,iBAAiBvB,GACf,OAAOA,EAET,iBAAiBA,EAAGiB,GAClB,OAAO62B,IAET,iBAAiB93B,IAEjB,gBAAgBA,GACd,MAAMiB,EAAIyG,KAAK0yB,MACf,OAAOp6B,EAAI,GAAKA,EAAIiB,EAAEO,OAAS,EAAI,KAAOkG,KAAK2B,iBAAiBpI,EAAEjB,GAAGwH,OAEvE,mBAAmBxH,GACjB0H,KAAKm/B,iBAAmB7mC,EAAI,EAAIA,GAChC,MAAMiB,EAAIyG,KAAKo1B,YAAc98B,EAAI0H,KAAKyyB,QACtC,OAAO1zB,GAAGiB,KAAKqhC,eAAiB5qB,GAAGzW,KAAK4T,MAAOra,EAAG,GAAKA,GAEzD,mBAAmBjB,GACjB,MAAMiB,GAAKjB,EAAI0H,KAAKo1B,aAAep1B,KAAKyyB,QACxC,OAAOzyB,KAAKm/B,eAAiB,EAAI5lC,EAAIA,EAEvC,eACE,OAAOyG,KAAK2B,iBAAiB3B,KAAK2iC,gBAEpC,eACE,MAAQ3kC,IAAK1F,EAAG2F,IAAK1E,GAAMyG,KAC3B,OAAO1H,EAAI,GAAKiB,EAAI,EAAIA,EAAIjB,EAAI,GAAKiB,EAAI,EAAIjB,EAAI,EAEnD,WAAWA,GACT,MAAMiB,EAAIyG,KAAK0yB,OAAS,GACxB,GAAIp6B,GAAK,GAAKA,EAAIiB,EAAEO,OAAQ,CAC1B,MAAMJ,EAAIH,EAAEjB,GACZ,OAAOoB,EAAE80B,WAAa90B,EAAE80B,SAAW0P,GAAGl+B,KAAK4W,aAActe,EAAGoB,IAE9D,OAAOsG,KAAKwuB,WAAaxuB,KAAKwuB,SAAWyP,GAAGj+B,KAAK4T,MAAMgD,aAAc5W,OAEvE,YACE,MAAM1H,EAAI0H,KAAKylB,QAAQiN,MAAOn5B,EAAI2E,EAAG8B,KAAK6+B,eAAgBnlC,EAAI0C,KAAKyB,IAAIzB,KAAKsH,IAAInK,IAAKI,EAAIyC,KAAKyB,IAAIzB,KAAKqG,IAAIlJ,IAAKK,EAAIoG,KAAK4hC,iBAAkB/nC,EAAIvB,EAAEykC,iBAAmB,EAAGpiC,EAAIf,EAAIA,EAAEioC,OAAO1rB,MAAQtc,EAAI,EAAGe,EAAIhB,EAAIA,EAAEkoC,QAAQ/qB,OAASld,EAAI,EACtO,OAAOmG,KAAK2zB,eAAiB/4B,EAAIlB,EAAIiB,EAAIhB,EAAIgB,EAAIjB,EAAIkB,EAAIjB,EAAIiB,EAAIjB,EAAIgB,EAAIjB,EAAIkB,EAAIlB,EAAIiB,EAAIhB,EAE3F,aACE,MAAMrB,EAAI0H,KAAKylB,QAAQuU,QACvB,MAAa,SAAN1hC,IAAiBA,EAAI0H,KAAKqsB,0BAA0BvyB,OAAS,EAEtE,sBAAsBxB,GACpB,MAAMiB,EAAIyG,KAAKqB,KAAM3H,EAAIsG,KAAK4T,MAAOja,EAAIqG,KAAKylB,SAAW0Q,KAAMv8B,EAAGwoC,SAAUvoC,GAAMF,EAAGgB,EAAIf,EAAEs8B,OAAQt7B,EAAIoF,KAAK2zB,eAAgB90B,EAAImB,KAAK0yB,MAAM54B,QAAUa,EAAI,EAAI,GAAI4G,EAAIw8B,GAAGnkC,GAAI6H,EAAI,GAAIkE,EAAI/L,EAAE2jB,WAAWvd,KAAK4W,cAAe3Q,EAAIN,EAAEs2B,WAAat2B,EAAEsS,YAAc,EAAG6M,EAAI7e,EAAI,EAAG8e,EAAI,SAAStd,GACrR,OAAOgP,GAAG/c,EAAG+N,EAAGxB,IAElB,IAAIP,EAAGxK,EAAG2pB,EAAG1pB,EAAG6pB,EAAGrd,EAAGsd,EAAG1d,EAAGiT,EAAG5S,EAAGJ,EAAG/B,EACrC,GAAU,QAAN5L,EACF6L,EAAIqf,EAAE/kB,KAAKuY,QAAS5Q,EAAI3H,KAAKuY,OAAShX,EAAGgG,EAAI7B,EAAIof,EAAGld,EAAImd,EAAEzsB,EAAEggB,KAAOwM,EAAGrf,EAAInN,EAAEigB,YACzE,GAAU,WAAN1e,EACP6L,EAAIqf,EAAE/kB,KAAKsY,KAAM1Q,EAAItP,EAAEggB,IAAK7S,EAAIsf,EAAEzsB,EAAEigB,QAAUuM,EAAGnd,EAAIjC,EAAIof,EAAGvd,EAAIvH,KAAKsY,IAAM/W,OACxE,GAAU,SAAN1H,EACP6L,EAAIqf,EAAE/kB,KAAKqY,OAAQ2M,EAAIhlB,KAAKqY,MAAQ9W,EAAG0jB,EAAIvf,EAAIof,EAAGtK,EAAIuK,EAAEzsB,EAAE8f,MAAQ0M,EAAGtd,EAAIlP,EAAE+f,WACxE,GAAU,UAANxe,EACP6L,EAAIqf,EAAE/kB,KAAKoY,MAAOoC,EAAIliB,EAAE8f,KAAM5Q,EAAIud,EAAEzsB,EAAE+f,OAASyM,EAAGE,EAAItf,EAAIof,EAAGG,EAAIjlB,KAAKoY,KAAO7W,OAC1E,GAAU,MAANhI,EAAW,CAClB,GAAU,WAANM,EACF6L,EAAIqf,GAAGzsB,EAAEggB,IAAMhgB,EAAEigB,QAAU,EAAI,SAC5B,GAAI3f,EAAEiB,GAAI,CACb,MAAM4N,EAAIlP,OAAOwB,KAAKF,GAAG,GAAI+oC,EAAI/oC,EAAE4N,GACnC/B,EAAIqf,EAAE/kB,KAAK4T,MAAM0B,OAAO7N,GAAG9F,iBAAiBihC,IAE9Ch7B,EAAItP,EAAEggB,IAAK7S,EAAInN,EAAEigB,OAAQ5Q,EAAIjC,EAAIof,EAAGvd,EAAII,EAAIpG,OACvC,GAAU,MAANhI,EAAW,CACpB,GAAU,WAANM,EACF6L,EAAIqf,GAAGzsB,EAAE8f,KAAO9f,EAAE+f,OAAS,QACxB,GAAIzf,EAAEiB,GAAI,CACb,MAAM4N,EAAIlP,OAAOwB,KAAKF,GAAG,GAAI+oC,EAAI/oC,EAAE4N,GACnC/B,EAAIqf,EAAE/kB,KAAK4T,MAAM0B,OAAO7N,GAAG9F,iBAAiBihC,IAE9C5d,EAAItf,EAAIof,EAAGG,EAAID,EAAIzjB,EAAGiZ,EAAIliB,EAAE8f,KAAM5Q,EAAIlP,EAAE+f,MAE1C,MAAMtQ,EAAI9O,EAAEU,EAAE+4B,MAAMyI,cAAet8B,GAAIgkC,EAAIzmC,KAAK6B,IAAI,EAAG7B,KAAK0/B,KAAKj9B,EAAIkJ,IACrE,IAAK7M,EAAI,EAAGA,EAAI2D,EAAG3D,GAAK2nC,EAAG,CACzB,MAAMp7B,EAAI7N,EAAE2jB,WAAWvd,KAAK4W,WAAW1b,IAAK0nC,EAAIn7B,EAAE8R,UAAWjS,EAAIG,EAAEgM,MAAOqvB,EAAKr7B,EAAE8e,YAAc,GAAIwc,EAAKt7B,EAAE+e,iBAAkBwc,EAAKv7B,EAAE40B,UAAW4G,EAAKx7B,EAAE60B,UAAW4G,EAAKz7B,EAAE07B,gBAAkB,GAAIC,EAAK37B,EAAE47B,qBACpMxe,EAAI+Y,GAAG59B,KAAM9E,EAAGP,QAAU,IAANkqB,IAAiB1pB,EAAIsb,GAAG/c,EAAGmrB,EAAG+d,GAAIhoC,EAAIoqB,EAAIC,EAAIzK,EAAIhT,EAAIrM,EAAIwM,EAAIJ,EAAIK,EAAInC,EAAItK,EAAGsG,EAAEjG,KAAK,CACtG8nC,IAAKte,EACLue,IAAK57B,EACL67B,IAAKve,EACLwe,IAAKl8B,EACLm8B,GAAIlpB,EACJmpB,GAAI/7B,EACJg8B,GAAIp8B,EACJq8B,GAAIp+B,EACJ0Q,MAAOysB,EACPnvB,MAAOnM,EACPif,WAAYuc,EACZtc,iBAAkBuc,EAClB1G,UAAW2G,EACX1G,UAAW2G,EACXE,eAAgBD,EAChBG,qBAAsBD,KAG1B,OAAOpjC,KAAKw/B,aAAe3gC,EAAGmB,KAAKy/B,aAAe/5B,EAAGjE,EAEvD,mBAAmBnJ,GACjB,MAAMiB,EAAIyG,KAAKqB,KAAM3H,EAAIsG,KAAKylB,SAAW2c,SAAUzoC,EAAG+4B,MAAO94B,GAAMF,EAAGG,EAAImG,KAAK2zB,eAAgBh5B,EAAIqF,KAAK0yB,OAASyK,MAAOviC,EAAGwiC,WAAYviC,EAAG2hC,QAAS39B,EAAG89B,OAAQp7B,GAAM3H,EAAG6H,EAAIs8B,GAAGrkC,EAAEy8B,MAAOxwB,EAAIlE,EAAI5C,EAAGoH,EAAI1E,GAAK1C,EAAI8G,EAAGmf,GAAK5mB,EAAG8B,KAAK6+B,eAAgB9Z,EAAI,GACnP,IAAIrf,EAAGxK,EAAG2pB,EAAG1pB,EAAG6pB,EAAGrd,EAAGsd,EAAG1d,EAAGiT,EAAG5S,EAAGJ,EAAG/B,EAAGsC,EAAI,SAC5C,GAAU,QAANpO,EACFgO,EAAI3H,KAAKuY,OAAStS,EAAGgf,EAAIjlB,KAAK8jC,+BAC3B,GAAU,WAANnqC,EACPgO,EAAI3H,KAAKsY,IAAMrS,EAAGgf,EAAIjlB,KAAK8jC,+BACxB,GAAU,SAANnqC,EAAc,CACrB,MAAM8N,EAAIzH,KAAK+jC,wBAAwBtiC,GACvCwjB,EAAIxd,EAAEqS,UAAWkL,EAAIvd,EAAEvM,OAClB,GAAU,UAANvB,EAAe,CACxB,MAAM8N,EAAIzH,KAAK+jC,wBAAwBtiC,GACvCwjB,EAAIxd,EAAEqS,UAAWkL,EAAIvd,EAAEvM,OAClB,GAAU,MAAN3B,EAAW,CACpB,GAAU,WAANI,EACFgO,GAAKrP,EAAEggB,IAAMhgB,EAAEigB,QAAU,EAAI5S,OAC1B,GAAI/M,EAAEe,GAAI,CACb,MAAM8N,EAAIlP,OAAOwB,KAAKJ,GAAG,GAAIipC,EAAIjpC,EAAE8N,GACnCE,EAAI3H,KAAK4T,MAAM0B,OAAO7N,GAAG9F,iBAAiBihC,GAAKj9B,EAEjDsf,EAAIjlB,KAAK8jC,+BACJ,GAAU,MAANvqC,EAAW,CACpB,GAAU,WAANI,EACFqrB,GAAK1sB,EAAE8f,KAAO9f,EAAE+f,OAAS,EAAI1S,OAC1B,GAAI/M,EAAEe,GAAI,CACb,MAAM8N,EAAIlP,OAAOwB,KAAKJ,GAAG,GAAIipC,EAAIjpC,EAAE8N,GACnCud,EAAIhlB,KAAK4T,MAAM0B,OAAO7N,GAAG9F,iBAAiBihC,GAE5C3d,EAAIjlB,KAAK+jC,wBAAwBtiC,GAAGqY,UAEhC,MAANvgB,IAAoB,UAANqB,EAAgBmN,EAAI,MAAc,QAANnN,IAAgBmN,EAAI,WAC9D,MAAM86B,EAAI7iC,KAAK4hC,iBACf,IAAKl8B,EAAI,EAAGxK,EAAIP,EAAEb,OAAQ4L,EAAIxK,IAAKwK,EAAG,CACpCmf,EAAIlqB,EAAE+K,GAAIvK,EAAI0pB,EAAE2L,MAChB,MAAM/oB,EAAI7N,EAAE2jB,WAAWvd,KAAK4W,WAAWlR,IACvC6B,EAAIvH,KAAK2yB,gBAAgBjtB,GAAK9L,EAAEojC,YAAaxiB,EAAIxa,KAAKwiC,wBAAwB98B,GAAIkC,EAAI4S,EAAEpG,WAAY5M,EAAIrP,EAAEgD,GAAKA,EAAErB,OAAS,EAC1H,MAAM8oC,EAAIp7B,EAAI,EAAGF,EAAIG,EAAEgM,MAAOqvB,EAAKr7B,EAAEo1B,gBAAiBkG,EAAKt7B,EAAEm1B,gBAC7D,IAEIqG,EAFAD,EAAK/d,EAGT,GAFAprB,GAAKmrB,EAAIzd,EAAS,UAAN0d,IAAgC+d,EAAdt9B,IAAMxK,EAAI,EAAS8E,KAAKylB,QAAQ0F,QAAU,OAAS,QAAgB,IAANzlB,EAAe1F,KAAKylB,QAAQ0F,QAAU,QAAU,OAAc,UAAmD1lB,EAAlC,QAAN9L,EAAoB,SAANkB,GAAsB,IAANiqB,GAAetd,EAAII,EAAIA,EAAI,EAAU,WAAN/M,GAAsBgoC,EAAEf,QAAQ/qB,OAAS,EAAI6rB,EAAIh7B,EAAIA,GAASi7B,EAAEf,QAAQ/qB,OAASnP,EAAI,EAAU,SAAN/M,GAAsB,IAANiqB,EAAcld,EAAI,EAAU,WAAN/M,EAAqBgoC,EAAEf,QAAQ/qB,OAAS,EAAI6rB,EAAIh7B,EAAQi7B,EAAEf,QAAQ/qB,OAASvP,EAAII,EAAGrG,IAAMkE,IAAM,KAAOkC,EAAIJ,EAAG9B,GAAK,EAAI+B,GAAKI,EAAI,GAE1dH,EAAE41B,kBAAmB,CACvB,MAAM6F,EAAKr7B,GAAEJ,EAAE81B,iBAAkB6F,EAAKP,EAAEH,QAAQh9B,GAAIs+B,EAAKnB,EAAEJ,OAAO/8B,GAClE,IAAIu+B,EAAKt8B,EAAIlC,EAAIy9B,EAAG5qB,IAAK4rB,EAAKlf,EAAIke,EAAG9qB,KACrC,OAAQrQ,GACN,IAAK,SACHk8B,GAAMb,EAAK,EACX,MACF,IAAK,SACHa,GAAMb,EACN,MAEJ,OAAQne,GACN,IAAK,SACHif,GAAMF,EAAK,EACX,MACF,IAAK,QACHE,GAAMF,EACN,MAEJf,EAAK,CACH7qB,KAAM8rB,EACN5rB,IAAK2rB,EACL9tB,MAAO6tB,EAAKd,EAAG/sB,MACfY,OAAQqsB,EAAKF,EAAGnsB,OAChBtD,MAAOhM,EAAE61B,eAGbvY,EAAEvpB,KAAK,CACL2b,SAAU2N,EACV0L,MAAOr1B,EACP8Y,KAAMuG,EACN/G,MAAOnM,EACP6R,YAAa2pB,EACb5pB,YAAa6pB,EACboB,WAAY1+B,EACZqU,UAAWkpB,EACXjpB,aAAchS,EACd6R,YAAa,CAACoL,EAAGrd,GACjBy8B,SAAUnB,IAGd,OAAOle,EAET,0BACE,MAAQqd,SAAU9pC,EAAGo6B,MAAOn5B,GAAMyG,KAAKylB,QACvC,IAAKvnB,EAAG8B,KAAK6+B,eACX,MAAa,QAANvmC,EAAc,OAAS,QAChC,IAAIqB,EAAI,SACR,MAAmB,UAAZJ,EAAE4jC,MAAoBxjC,EAAI,OAAqB,QAAZJ,EAAE4jC,MAAkBxjC,EAAI,QAAsB,UAAZJ,EAAE4jC,QAAsBxjC,EAAI,SAAUA,EAEpH,wBAAwBrB,GACtB,MAAQ8pC,SAAU7oC,EAAGm5B,OAAS0K,WAAY1jC,EAAGijC,OAAQhjC,EAAG6iC,QAAS5iC,IAAQoG,KAAKylB,QAAS5rB,EAAImG,KAAK4hC,iBAAkBjnC,EAAIrC,EAAIsB,EAAGgB,EAAIf,EAAEgoC,OAAO1rB,MAC1I,IAAItb,EAAGgE,EACP,MAAa,SAANtF,EAAeI,GAAKkF,EAAImB,KAAKqY,MAAQze,EAAS,SAANF,EAAemB,EAAI,OAAe,WAANnB,GAAkBmB,EAAI,SAAUgE,GAAKjE,EAAI,IAAMC,EAAI,QAASgE,GAAKjE,KAAOiE,EAAImB,KAAKqY,MAAQ1d,EAAS,SAANjB,EAAemB,EAAI,QAAgB,WAANnB,GAAkBmB,EAAI,SAAUgE,GAAKjE,EAAI,IAAMC,EAAI,OAAQgE,EAAImB,KAAKoY,OAAe,UAAN7e,EAAgBI,GAAKkF,EAAImB,KAAKoY,KAAOxe,EAAS,SAANF,EAAemB,EAAI,QAAgB,WAANnB,GAAkBmB,EAAI,SAAUgE,GAAKjE,EAAI,IAAMC,EAAI,OAAQgE,GAAKjE,KAAOiE,EAAImB,KAAKoY,KAAOzd,EAAS,SAANjB,EAAemB,EAAI,OAAe,WAANnB,GAAkBmB,EAAI,SAAUgE,GAAKjE,EAAI,IAAMC,EAAI,QAASgE,EAAImB,KAAKqY,QAAUxd,EAAI,QAAS,CAAEif,UAAWjf,EAAGK,EAAG2D,GAE7jB,oBACE,GAAImB,KAAKylB,QAAQiN,MAAMiK,OACrB,OACF,MAAMrkC,EAAI0H,KAAK4T,MAAOra,EAAIyG,KAAKylB,QAAQ2c,SACvC,MAAU,SAAN7oC,GAAsB,UAANA,EACX,CAAE+e,IAAK,EAAGF,KAAMpY,KAAKoY,KAAMG,OAAQjgB,EAAEye,OAAQsB,MAAOrY,KAAKqY,OACxD,QAAN9e,GAAqB,WAANA,EACV,CAAE+e,IAAKtY,KAAKsY,IAAKF,KAAM,EAAGG,OAAQvY,KAAKuY,OAAQF,MAAO/f,EAAE6d,YADjE,EAGF,iBACE,MAAQoM,IAAKjqB,EAAGmtB,SAAWlS,gBAAiBha,GAAK6e,KAAM1e,EAAG4e,IAAK3e,EAAGwc,MAAOvc,EAAGmd,OAAQld,GAAMmG,KAC1FzG,IAAMjB,EAAEie,OAAQje,EAAEuhB,UAAYtgB,EAAGjB,EAAE+rC,SAAS3qC,EAAGC,EAAGC,EAAGC,GAAIvB,EAAEke,WAE7D,qBAAqBle,GACnB,MAAMiB,EAAIyG,KAAKylB,QAAQ0Q,KACvB,IAAKn2B,KAAK2hC,eAAiBpoC,EAAEygC,QAC3B,OAAO,EACT,MAAMrgC,EAAIqG,KAAK0yB,MAAM4R,UAAW1qC,GAAMA,EAAEkG,QAAUxH,GAClD,OAAOqB,GAAK,EAAIJ,EAAEgkB,WAAWvd,KAAK4W,WAAWjd,IAAI4f,UAAY,EAE/D,SAASjhB,GACP,MAAMiB,EAAIyG,KAAKylB,QAAQ0Q,KAAMz8B,EAAIsG,KAAKuiB,IAAK5oB,EAAIqG,KAAK++B,iBAAmB/+B,KAAK++B,eAAiB/+B,KAAKukC,sBAAsBjsC,IACxH,IAAIsB,EAAGC,EACP,MAAMc,EAAI,CAACC,EAAGC,EAAGgE,MACdA,EAAEsX,QAAUtX,EAAE4U,QAAU/Z,EAAE6c,OAAQ7c,EAAE6f,UAAY1a,EAAEsX,MAAOzc,EAAE4f,YAAcza,EAAE4U,MAAO/Z,EAAE8qC,YAAY3lC,EAAE0nB,YAAc,IAAK7sB,EAAE+qC,eAAiB5lC,EAAE2nB,iBAAkB9sB,EAAE8d,YAAa9d,EAAEke,OAAOhd,EAAEM,EAAGN,EAAEO,GAAIzB,EAAEme,OAAOhd,EAAEK,EAAGL,EAAEM,GAAIzB,EAAEwe,SAAUxe,EAAE8c,YAEpO,GAAIjd,EAAEygC,QACJ,IAAKpgC,EAAI,EAAGC,EAAIF,EAAEG,OAAQF,EAAIC,IAAKD,EAAG,CACpC,MAAMgB,EAAIjB,EAAEC,GACZL,EAAE2iC,iBAAmBvhC,EACnB,CAAEO,EAAGN,EAAE8oC,GAAIvoC,EAAGP,EAAE+oC,IAChB,CAAEzoC,EAAGN,EAAEgpC,GAAIzoC,EAAGP,EAAEipC,IAChBjpC,GACCrB,EAAE4iC,WAAaxhC,EAChB,CAAEO,EAAGN,EAAE0oC,IAAKnoC,EAAGP,EAAE2oC,KACjB,CAAEroC,EAAGN,EAAE4oC,IAAKroC,EAAGP,EAAE6oC,KACjB,CACEhwB,MAAO7Y,EAAE0hC,UACTnmB,MAAOvb,EAAEyhC,UACT9V,WAAY3rB,EAAEuoC,eACd3c,iBAAkB5rB,EAAEyoC,wBAK9B,aACE,MAAQzvB,MAAOtb,EAAGiqB,IAAKhpB,EAAGksB,SAAW0Q,KAAMz8B,IAAQsG,KAAMrG,EAAID,EAAE6jB,WAAWvd,KAAK4W,cAAehd,EAAIF,EAAEuiC,WAAatiC,EAAEse,YAAc,EACjI,IAAKre,EACH,OACF,MAAMC,EAAIH,EAAE6jB,WAAWvd,KAAK4W,WAAW,IAAI2C,UAAW5e,EAAIqF,KAAKy/B,aAC/D,IAAI7kC,EAAGC,EAAGgE,EAAG0C,EACbvB,KAAK2zB,gBAAkB/4B,EAAI6b,GAAGne,EAAG0H,KAAKoY,KAAMxe,GAAKA,EAAI,EAAGiB,EAAI4b,GAAGne,EAAG0H,KAAKqY,MAAOxe,GAAKA,EAAI,EAAGgF,EAAI0C,EAAI5G,IAAMkE,EAAI4X,GAAGne,EAAG0H,KAAKsY,IAAK1e,GAAKA,EAAI,EAAG2H,EAAIkV,GAAGne,EAAG0H,KAAKuY,OAAQ1e,GAAKA,EAAI,EAAGe,EAAIC,EAAIF,GAAIpB,EAAEgd,OAAQhd,EAAEggB,UAAY5f,EAAEse,YAAa1e,EAAE+f,YAAc3f,EAAE6Z,YAAaja,EAAEie,YAAaje,EAAEqe,OAAOhd,EAAGiE,GAAItF,EAAEse,OAAOhd,EAAG0G,GAAIhI,EAAE2e,SAAU3e,EAAEid,UAE5T,WAAWle,GACT,IAAK0H,KAAKylB,QAAQiN,MAAMsH,QACtB,OACF,MAAMtgC,EAAIsG,KAAKuiB,IAAK5oB,EAAIqG,KAAK0kC,oBAC7B/qC,GAAK+O,GAAGhP,EAAGC,GACX,MAAMC,EAAIoG,KAAKg/B,cAAgBh/B,KAAKg/B,YAAch/B,KAAK2kC,mBAAmBrsC,IAC1E,IAAIuB,EAAGc,EACP,IAAKd,EAAI,EAAGc,EAAIf,EAAEE,OAAQD,EAAIc,IAAKd,EAAG,CACpC,MAAMe,EAAIhB,EAAEC,GAAIgB,EAAID,EAAEqZ,KAAMpV,EAAIjE,EAAE41B,MAClC51B,EAAEwpC,WAAa1qC,EAAEmgB,UAAYjf,EAAEwpC,SAAS3wB,MAAO/Z,EAAE2qC,SAASzpC,EAAEwpC,SAAShsB,KAAMxd,EAAEwpC,SAAS9rB,IAAK1d,EAAEwpC,SAASjuB,MAAOvb,EAAEwpC,SAASrtB,SACxH,IAAIxV,EAAI3G,EAAEupC,WACVlrB,GAAGvf,EAAGmF,EAAG,EAAG0C,EAAG1G,EAAGD,GAEpBjB,GAAK8e,GAAG/e,GAEV,YACE,MAAQ6oB,IAAKjqB,EAAGmtB,SAAW2c,SAAU7oC,EAAGgjC,MAAO7iC,EAAGyxB,QAASxxB,IAAQqG,KACnE,IAAKtG,EAAEsgC,QACL,OACF,MAAMpgC,EAAI0hB,GAAE5hB,EAAEua,MAAOpa,EAAIgO,GAAEnO,EAAE8iC,SAAU7hC,EAAIjB,EAAEyjC,MAC7C,IAAIviC,EAAIhB,EAAEwa,WAAa,EACjB,WAAN7a,GAAwB,WAANA,GAAkBX,EAAEW,IAAMqB,GAAKf,EAAE0e,OAAQpgB,EAAEuB,EAAEi/B,QAAU/9B,GAAKhB,EAAEwa,YAAc1a,EAAEi/B,KAAK7+B,OAAS,KAAOc,GAAKf,EAAEye,IAC5H,MAAQ+lB,OAAQxjC,EAAGyjC,OAAQz/B,EAAG4a,SAAUlY,EAAG4V,SAAU1V,GAAM28B,GAAGp+B,KAAMpF,EAAGrB,EAAGoB,GAC1Ese,GAAG3gB,EAAGoB,EAAEi/B,KAAM,EAAG,EAAG/+B,EAAG,CACrB6Z,MAAO/Z,EAAE+Z,MACTgG,SAAUlY,EACV4V,SAAU1V,EACVqY,UAAWqkB,GAAGxjC,EAAGpB,EAAGI,GACpBogB,aAAc,SACdH,YAAa,CAAC/e,EAAGgE,KAGrB,KAAKvG,GACH0H,KAAK2hC,eAAiB3hC,KAAK4kC,iBAAkB5kC,KAAK6kC,SAASvsC,GAAI0H,KAAKi8B,aAAcj8B,KAAK8kC,YAAa9kC,KAAK+kC,WAAWzsC,IAEtH,UACE,MAAMA,EAAI0H,KAAKylB,QAASlsB,EAAIjB,EAAEo6B,OAASp6B,EAAEo6B,MAAMv6B,GAAK,EAAGuB,EAAIT,EAAEX,EAAE69B,MAAQ79B,EAAE69B,KAAKh+B,GAAI,GAClF,OAAQ6H,KAAK2hC,cAAgB3hC,KAAK4nB,OAAS2W,GAAG/lC,UAAUovB,KAKnD,CAAC,CACJzvB,EAAGuB,EACHkuB,KAAOjuB,IACLqG,KAAK4kC,iBAAkB5kC,KAAK6kC,SAASlrC,GAAIqG,KAAK8kC,cAE/C,CACD3sC,EAAGuB,EAAI,EACPkuB,KAAM,KACJ5nB,KAAKi8B,eAEN,CACD9jC,EAAGoB,EACHquB,KAAOjuB,IACLqG,KAAK+kC,WAAWprC,MAlB2C,CAAC,CAC9DxB,EAAGoB,EACHquB,KAAOjuB,IACLqG,KAAK4nB,KAAKjuB,MAmBhB,wBAAwBrB,GACtB,MAAMiB,EAAIyG,KAAK4T,MAAMoxB,+BAAgCtrC,EAAIsG,KAAKqB,KAAO,SAAU1H,EAAI,GACnF,IAAIC,EAAGC,EACP,IAAKD,EAAI,EAAGC,EAAIN,EAAEO,OAAQF,EAAIC,IAAKD,EAAG,CACpC,MAAMe,EAAIpB,EAAEK,GACZe,EAAEjB,KAAOsG,KAAKgsB,MAAQ1zB,GAAKqC,EAAEuB,OAAS5D,IAAMqB,EAAE6B,KAAKb,GAErD,OAAOhB,EAET,wBAAwBrB,GACtB,MAAMiB,EAAIyG,KAAKylB,QAAQiN,MAAMnV,WAAWvd,KAAK4W,WAAWte,IACxD,OAAOgjB,GAAE/hB,EAAE0a,MAEb,aACE,MAAM3b,EAAI0H,KAAKwiC,wBAAwB,GAAGpuB,WAC1C,OAAQpU,KAAK2zB,eAAiB3zB,KAAKmW,MAAQnW,KAAK+W,QAAUze,GAG9D,MAAM2sC,GACJ,YAAY3sC,EAAGiB,EAAGG,GAChBsG,KAAK9D,KAAO5D,EAAG0H,KAAKklC,MAAQ3rC,EAAGyG,KAAKqc,SAAW3iB,EAAGsG,KAAKwnB,MAAwBjvB,OAAO8B,OAAO,MAE/F,UAAU/B,GACR,OAAOC,OAAOC,UAAU2sC,cAAczsC,KAAKsH,KAAK9D,KAAK1D,UAAWF,EAAEE,WAEpE,SAASF,GACP,MAAMiB,EAAIhB,OAAOqkB,eAAetkB,GAChC,IAAIoB,EACJ0rC,GAAG7rC,KAAOG,EAAIsG,KAAKqlC,SAAS9rC,IAC5B,MAAMI,EAAIqG,KAAKwnB,MAAO5tB,EAAItB,EAAE0zB,GAAInyB,EAAImG,KAAKklC,MAAQ,IAAMtrC,EACvD,IAAKA,EACH,MAAM,IAAIykB,MAAM,2BAA6B/lB,GAC/C,OAAOsB,KAAKD,IAAMA,EAAEC,GAAKtB,EAAGgtC,GAAGhtC,EAAGuB,EAAGH,GAAIsG,KAAKqc,UAAY3U,GAAE2U,SAAS/jB,EAAE0zB,GAAI1zB,EAAE09B,YAAan8B,EAE5F,IAAIvB,GACF,OAAO0H,KAAKwnB,MAAMlvB,GAEpB,WAAWA,GACT,MAAMiB,EAAIyG,KAAKwnB,MAAO9tB,EAAIpB,EAAE0zB,GAAIryB,EAAIqG,KAAKklC,MACzCxrC,KAAKH,UAAYA,EAAEG,GAAIC,GAAKD,KAAKgO,GAAE/N,YAAc+N,GAAE/N,GAAGD,GAAIsG,KAAKqc,iBAAmBpJ,GAAGvZ,KAGzF,SAAS4rC,GAAGrtC,EAAGK,EAAGiB,GAChB,MAAMG,EAAIe,EAAmBlC,OAAO8B,OAAO,MAAO,CAChDd,EAAImO,GAAE2b,IAAI9pB,GAAK,GACfmO,GAAE2b,IAAI/qB,GACNL,EAAEs8B,WAEJ7sB,GAAE8b,IAAIlrB,EAAGoB,GAAIzB,EAAEwiC,eAAiB8K,GAAGjtC,EAAGL,EAAEwiC,eAAgBxiC,EAAEugC,aAAe9wB,GAAE+N,SAASnd,EAAGL,EAAEugC,aAE3F,SAAS+M,GAAGttC,EAAGK,GACbC,OAAOwB,KAAKzB,GAAGyH,QAASxG,IACtB,MAAMG,EAAIH,EAAEgC,MAAM,KAAM5B,EAAID,EAAEgE,MAAO9D,EAAI,CAAC3B,GAAGq6B,OAAO54B,GAAG4kB,KAAK,KAAMzkB,EAAIvB,EAAEiB,GAAGgC,MAAM,KAAMZ,EAAId,EAAE6D,MAAO9C,EAAIf,EAAEykB,KAAK,KAC/G5W,GAAE81B,MAAM5jC,EAAGD,EAAGiB,EAAGD,KAGrB,SAASyqC,GAAGntC,GACV,MAAO,OAAQA,GAAK,aAAcA,EAEpC,MAAMutC,GACJ,cACExlC,KAAKylC,YAAc,IAAIR,GAAGrX,GAAI,YAAY,GAAK5tB,KAAK+T,SAAW,IAAIkxB,GAAG1K,GAAI,YAAav6B,KAAKmV,QAAU,IAAI8vB,GAAG1sC,OAAQ,WAAYyH,KAAKsV,OAAS,IAAI2vB,GAAG1G,GAAI,UAAWv+B,KAAK0lC,iBAAmB,CAAC1lC,KAAKylC,YAAazlC,KAAKsV,OAAQtV,KAAK+T,UAEpO,OAAOzb,GACL0H,KAAK2lC,MAAM,WAAYrtC,GAEzB,UAAUA,GACR0H,KAAK2lC,MAAM,aAAcrtC,GAE3B,kBAAkBA,GAChB0H,KAAK2lC,MAAM,WAAYrtC,EAAG0H,KAAKylC,aAEjC,eAAentC,GACb0H,KAAK2lC,MAAM,WAAYrtC,EAAG0H,KAAK+T,UAEjC,cAAczb,GACZ0H,KAAK2lC,MAAM,WAAYrtC,EAAG0H,KAAKmV,SAEjC,aAAa7c,GACX0H,KAAK2lC,MAAM,WAAYrtC,EAAG0H,KAAKsV,QAEjC,cAAchd,GACZ,OAAO0H,KAAK4lC,KAAKttC,EAAG0H,KAAKylC,YAAa,cAExC,WAAWntC,GACT,OAAO0H,KAAK4lC,KAAKttC,EAAG0H,KAAK+T,SAAU,WAErC,UAAUzb,GACR,OAAO0H,KAAK4lC,KAAKttC,EAAG0H,KAAKmV,QAAS,UAEpC,SAAS7c,GACP,OAAO0H,KAAK4lC,KAAKttC,EAAG0H,KAAKsV,OAAQ,SAEnC,qBAAqBhd,GACnB0H,KAAK2lC,MAAM,aAAcrtC,EAAG0H,KAAKylC,aAEnC,kBAAkBntC,GAChB0H,KAAK2lC,MAAM,aAAcrtC,EAAG0H,KAAK+T,UAEnC,iBAAiBzb,GACf0H,KAAK2lC,MAAM,aAAcrtC,EAAG0H,KAAKmV,SAEnC,gBAAgB7c,GACd0H,KAAK2lC,MAAM,aAAcrtC,EAAG0H,KAAKsV,QAEnC,MAAMhd,EAAGiB,EAAGG,GACV,IAAIH,GAAGwG,QAASpG,IACd,MAAMC,EAAIF,GAAKsG,KAAK6lC,oBAAoBlsC,GACxCD,GAAKE,EAAEksC,UAAUnsC,IAAMC,IAAMoG,KAAKmV,SAAWxb,EAAEqyB,GAAKhsB,KAAK+lC,MAAMztC,EAAGsB,EAAGD,GAAKF,EAAEE,EAAIE,IAC9E,MAAMc,EAAIjB,GAAKsG,KAAK6lC,oBAAoBhsC,GACxCmG,KAAK+lC,MAAMztC,EAAGqC,EAAGd,OAIvB,MAAMvB,EAAGiB,EAAGG,GACV,MAAMC,EAAI8B,EAAGnD,GACbgB,EAAEI,EAAE,SAAWC,GAAI,GAAID,GAAIH,EAAEjB,GAAGoB,GAAIJ,EAAEI,EAAE,QAAUC,GAAI,GAAID,GAE5D,oBAAoBpB,GAClB,IAAK,IAAIiB,EAAI,EAAGA,EAAIyG,KAAK0lC,iBAAiB5rC,OAAQP,IAAK,CACrD,MAAMG,EAAIsG,KAAK0lC,iBAAiBnsC,GAChC,GAAIG,EAAEosC,UAAUxtC,GACd,OAAOoB,EAEX,OAAOsG,KAAKmV,QAEd,KAAK7c,EAAGiB,EAAGG,GACT,MAAMC,EAAIJ,EAAE8pB,IAAI/qB,GAChB,QAAU,IAANqB,EACF,MAAM,IAAI0kB,MAAM,IAAM/lB,EAAI,yBAA2BoB,EAAI,KAC3D,OAAOC,GAGX,IAAIqsC,GAAK,IAAIR,GACb,MAAMS,WAAWrY,GACf,OAAOt1B,GACL,MAAMiB,EAAIyG,KAAKusB,aAAelW,KAAM3c,EAAI,IAAOH,EAAGI,EAAIqG,KAAK4T,MAAMyd,oBACjE,IAAMzvB,MAAOhI,EAAGiI,MAAOhI,GAAMoH,GAAG1H,EAAGG,EAAGC,GACtC,GAAIqG,KAAKouB,WAAax0B,EAAGoG,KAAKquB,WAAax0B,EAAGiI,GAAGvI,KAAOK,EAAI,EAAGC,EAAIH,EAAEI,QAASkG,KAAKylB,QAAQlQ,SAAU,CACnG,MAAQwX,QAASpyB,EAAGo+B,SAAUn+B,GAAMrB,EACpCoB,EAAEmrB,OAAS9lB,KAAK4T,MAAOjZ,EAAEqrB,cAAgBhmB,KAAK9F,MAAOS,EAAEq+B,aAAep+B,EAAEo+B,WAAYr+B,EAAEyqB,OAAS1rB,EAC/F,MAAMmB,EAAImF,KAAK6wB,6BAA6Bv4B,GAC5CuC,EAAEo+B,QAAUj5B,KAAKylB,QAAQwT,QAASj5B,KAAKi1B,cAAct6B,OAAG,EAAQ,CAC9Du+B,UAAWv/B,EACX8rB,QAAS5qB,GACRvC,GAEL0H,KAAK+xB,eAAer4B,EAAGE,EAAGC,EAAGvB,GAE/B,cACE,MAAQid,SAAUjd,GAAM0H,KAAKylB,SAC5BzlB,KAAKwvB,oBAAsBl3B,IAAM0H,KAAKwvB,mBAAqBwW,GAAGE,WAAW,SAAUzR,MAAM7F,cAE5F,eAAet2B,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAU,UAAND,GAAiBwH,OAAQtH,EAAG4yB,OAAQ9xB,EAAGgzB,SAAU/yB,EAAGm+B,SAAUl+B,GAAMmF,KAAKusB,YAAa1tB,EAAImB,KAAK8wB,0BAA0Bv3B,EAAGI,GAAI4H,EAAIvB,KAAKsxB,iBAAiBzyB,GAAI4C,EAAIzB,KAAKuxB,eAAe53B,EAAG4H,GAAIoE,EAAI9L,EAAEwH,KAAM4E,EAAItL,EAAE0G,MAAQ6e,SAAU4E,EAAGmU,QAASlU,GAAM/kB,KAAKylB,QAAS/f,EAAI/H,EAAGmnB,GAAKA,EAAIhsB,OAAO2D,kBAAmBvB,EAAI8E,KAAK4T,MAAMyd,qBAAuBz3B,GAAW,SAAND,EAChW,IAAIkrB,EAAItrB,EAAI,GAAKyG,KAAKuwB,UAAUh3B,EAAI,GACpC,IAAK,IAAI4B,EAAI5B,EAAG4B,EAAI5B,EAAIG,IAAKyB,EAAG,CAC9B,MAAM6pB,EAAI1sB,EAAE6C,GAAIwM,EAAI3H,KAAKuwB,UAAUp1B,GAAI8pB,EAAI/pB,EAAI8pB,EAAI,GAAIzd,EAAIrP,EAAEyP,EAAE1B,IAAKuU,EAAIyK,EAAEtf,GAAK9L,EAAE8H,iBAAiBgG,EAAEhC,GAAIxK,GAAIyM,EAAIqd,EAAEhf,GAAKrM,GAAK2N,EAAI5M,EAAE+5B,eAAiB/5B,EAAEgH,iBAAiB/G,EAAIoF,KAAKy1B,WAAW96B,EAAGgN,EAAG/M,GAAK+M,EAAE1B,GAAI9K,GAC3M8pB,EAAE1F,KAAO3hB,MAAM4c,IAAM5c,MAAMgK,IAAML,EAAG0d,EAAEM,KAAOpqB,EAAI,GAAKiB,KAAKyB,IAAI8J,EAAEhC,GAAKkf,EAAElf,IAAMD,EAAGqf,IAAME,EAAEiI,OAASvlB,EAAGsd,EAAEkI,IAAMtyB,EAAEwb,KAAKlb,IAAKsG,IAAMwjB,EAAEQ,QAAUlkB,GAAKvB,KAAK8wB,0BAA0B31B,EAAG6pB,EAAE8E,OAAS,SAAWnwB,IAAKuB,GAAK8E,KAAKi1B,cAAcjQ,EAAG7pB,EAAG8pB,EAAGtrB,GAAIkrB,EAAIld,EAExP3H,KAAKwxB,oBAAoBjwB,EAAG5H,EAAGkF,GAEjC,iBACE,MAAMvG,EAAI0H,KAAKusB,YAAahzB,EAAIjB,EAAE+d,MAAQ,GAC1C,IAAKrW,KAAKylB,QAAQlQ,SAAU,CAC1B,IAAI5a,EAAI,EACR,IAAK,IAAIC,EAAIrB,EAAEO,OAAS,EAAGc,GAAK,IAAKA,EACnCD,EAAIyB,KAAK6B,IAAItD,EAAGpB,EAAEqB,GAAGmB,KAAKiE,KAAK8wB,0BAA0Bl2B,IAAM,GACjE,OAAOD,EAAI,GAAKA,EAElB,MAAMjB,EAAIpB,EAAEy0B,QAASpzB,EAAID,EAAE+rB,SAAW/rB,EAAE+rB,QAAQxN,aAAe,EAC/D,IAAK1e,EAAEO,OACL,OAAOH,EACT,MAAMC,EAAIL,EAAE,GAAGwC,KAAKiE,KAAK8wB,0BAA0B,IAAKj3B,EAAIN,EAAEA,EAAEO,OAAS,GAAGiC,KAAKiE,KAAK8wB,0BAA0Bv3B,EAAEO,OAAS,IAC3H,OAAOsC,KAAK6B,IAAItE,EAAGC,EAAGC,GAAK,GAG/BosC,GAAGja,GAAK,UACRia,GAAG1R,SAAW,CACZ/E,oBAAoB,EACpBwB,gBAAiB,QACjBzb,UAAU,EACVyC,MAAM,GAERiuB,GAAGjQ,UAAY,CACbrhB,YAAa,CACXC,KAAM,SAERO,QAAS,CACPuhB,QAAS,CACPC,UAAW,CACT,QACE,MAAO,IAET,MAAM1+B,GACJ,MAAO,IAAMA,EAAEu4B,MAAQ,KAAOv4B,EAAE4gC,eAAiB,QAKzDvjB,OAAQ,CACNpa,EAAG,CACDgB,KAAM,UAERf,EAAG,CACDe,KAAM,YAIZ,IAAIiqC,GAAqB5tC,OAAO44B,OAAO,CACrCiV,UAAW,KACXC,cAAe7R,GACf8R,iBAAkBhQ,GAClBiQ,mBAAoB3P,GACpB4P,eAAgB1N,GAChB2N,oBAAqBrN,GACrBsN,cAAevM,GACfwM,gBAAiBvM,GACjBwM,kBAAmBX,KAErB,SAASY,KACP,MAAM,IAAIxoB,MAAM,mFAElB,MAAMyoB,GACJ,YAAYxuC,GACV0H,KAAKylB,QAAUntB,GAAK,GAEtB,KAAKA,IAEL,UACE,OAAOuuC,KAET,MAAMvuC,EAAGiB,GACP,OAAOstC,KAET,OAAOvuC,EAAGiB,GACR,OAAOstC,KAET,IAAIvuC,EAAGiB,EAAGG,GACR,OAAOmtC,KAET,KAAKvuC,EAAGiB,EAAGG,GACT,OAAOmtC,KAET,QAAQvuC,EAAGiB,EAAGG,GACZ,OAAOmtC,KAET,MAAMvuC,EAAGiB,GACP,OAAOstC,MAGXC,GAAGzqB,SAAW,SAASpkB,GACrBM,OAAO+J,OAAOwkC,GAAGtuC,UAAWP,IAE9B,IAAI8uC,GAAK,CACPC,MAAOF,IAET,SAASG,GAAGhvC,EAAGK,EAAGiB,EAAGG,GACnB,MAAQ4zB,WAAY3zB,EAAG0c,KAAMzc,EAAGsH,QAASrH,GAAM5B,EAAG0C,EAAIhB,EAAE4yB,YAAYprB,OACpE,GAAIxG,GAAKrC,IAAMqC,EAAE0G,MAAc,MAAN/I,GAAauB,GAAKD,EAAEE,OAAQ,CACnD,MAAMc,EAAID,EAAEwkC,eAAiB9/B,GAAKD,GAClC,IAAI1F,EASF,OAAOkB,EAAEhB,EAAGtB,EAAGiB,GARf,GAAII,EAAEw0B,eAAgB,CACpB,MAAMtzB,EAAIjB,EAAE,GAAIiF,EAAyB,mBAAdhE,EAAEqsC,UAA0BrsC,EAAEqsC,SAAS5uC,GAClE,GAAIuG,EAAG,CACL,MAAM0C,EAAI3G,EAAEhB,EAAGtB,EAAGiB,EAAIsF,GAAI4C,EAAI7G,EAAEhB,EAAGtB,EAAGiB,EAAIsF,GAC1C,MAAO,CAAEK,GAAIqC,EAAErC,GAAIC,GAAIsC,EAAEtC,MAMjC,MAAO,CAAED,GAAI,EAAGC,GAAIvF,EAAEE,OAAS,GAEjC,SAASqtC,GAAGlvC,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAI3B,EAAE+sC,+BAAgCnrC,EAAIN,EAAEjB,GAClD,IAAK,IAAIqC,EAAI,EAAGC,EAAIhB,EAAEE,OAAQa,EAAIC,IAAKD,EAAG,CACxC,MAAQT,MAAOW,EAAGwb,KAAMxX,GAAMjF,EAAEe,IAAMuE,GAAIqC,EAAGpC,GAAIsC,GAAMwlC,GAAGrtC,EAAEe,GAAIrC,EAAGuB,EAAGF,GACtE,IAAK,IAAIgM,EAAIpE,EAAGoE,GAAKlE,IAAKkE,EAAG,CAC3B,MAAMM,EAAIpH,EAAE8G,GACZM,EAAEsZ,MAAQ7lB,EAAEuM,EAAGpL,EAAG8K,KAIxB,SAASyhC,GAAGnvC,GACV,MAAMK,GAAwB,IAApBL,EAAEsC,QAAQ,KAAahB,GAAwB,IAApBtB,EAAEsC,QAAQ,KAC/C,OAAO,SAASb,EAAGC,GACjB,MAAMC,EAAItB,EAAI8D,KAAKyB,IAAInE,EAAEwB,EAAIvB,EAAEuB,GAAK,EAAGrB,EAAIN,EAAI6C,KAAKyB,IAAInE,EAAEyB,EAAIxB,EAAEwB,GAAK,EACrE,OAAOiB,KAAKoB,KAAKpB,KAAKiB,IAAIzD,EAAG,GAAKwC,KAAKiB,IAAIxD,EAAG,KAGlD,SAASwtC,GAAGpvC,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAI,GACV,OAAQD,IAAM1B,EAAEqvC,cAAchvC,IAAM6uC,GAAGlvC,EAAGsB,EAAGjB,GAAG,SAASqC,EAAGC,EAAGC,IAC5DlB,IAAMwe,GAAGxd,EAAG1C,EAAE24B,UAAW,IAAMj2B,EAAE4sC,QAAQjvC,EAAE4C,EAAG5C,EAAE6C,EAAGzB,IAAME,EAAE4B,KAAK,CAAE4xB,QAASzyB,EAAGV,aAAcW,EAAGV,MAAOW,OACtG,GAAKjB,EAEV,SAAS4tC,GAAGvvC,EAAGK,EAAGiB,EAAGG,GACnB,IAAIC,EAAI,GACR,SAASC,EAAEC,EAAGc,EAAGC,GACf,MAAQq9B,WAAYp9B,EAAGq9B,SAAUr5B,GAAMhF,EAAE2gC,SAAS,CAAC,aAAc,YAAa9gC,IAAM6E,MAAOgD,GAAMlD,EAAGxE,EAAG,CAAEqB,EAAG5C,EAAE4C,EAAGC,EAAG7C,EAAE6C,IACtHyD,GAAG2C,EAAG1G,EAAGgE,IAAMlF,EAAE6B,KAAK,CAAE4xB,QAASvzB,EAAGI,aAAcU,EAAGT,MAAOU,IAE9D,OAAOusC,GAAGlvC,EAAGsB,EAAGjB,EAAGsB,GAAID,EAEzB,SAAS8tC,GAAGxvC,EAAGK,EAAGiB,EAAGG,EAAGC,EAAGC,GACzB,IAAIC,EAAI,GACR,MAAMc,EAAIysC,GAAG7tC,GACb,IAAIqB,EAAI9B,OAAO2D,kBACf,SAAS5B,EAAEgE,EAAG0C,EAAGE,GACf,MAAMkE,EAAI9G,EAAE0oC,QAAQjvC,EAAE4C,EAAG5C,EAAE6C,EAAGxB,GAC9B,GAAID,IAAMiM,EACR,OACF,MAAMM,EAAIpH,EAAE6oC,eAAe/tC,GAC3B,IAAQC,IAAK3B,EAAEqvC,cAAcrhC,KAAQN,EACnC,OACF,MAAMof,EAAIpqB,EAAErC,EAAG2N,GACf8e,EAAInqB,GAAKf,EAAI,CAAC,CAAEuzB,QAASvuB,EAAG5E,aAAcsH,EAAGrH,MAAOuH,IAAM7G,EAAImqB,GAAKA,IAAMnqB,GAAKf,EAAE2B,KAAK,CAAE4xB,QAASvuB,EAAG5E,aAAcsH,EAAGrH,MAAOuH,IAE7H,OAAO0lC,GAAGlvC,EAAGsB,EAAGjB,EAAGuC,GAAIhB,EAEzB,SAAS8tC,GAAG1vC,EAAGK,EAAGiB,EAAGG,EAAGC,EAAGC,GACzB,OAAQA,GAAM3B,EAAEqvC,cAAchvC,GAAgB,MAANiB,GAAcG,EAAqB+tC,GAAGxvC,EAAGK,EAAGiB,EAAGG,EAAGC,EAAGC,GAAnC4tC,GAAGvvC,EAAGK,EAAGiB,EAAGI,GAAnC,GAErC,SAASiuC,GAAG3vC,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAI,GAAIC,EAAU,MAANN,EAAY,WAAa,WAC3C,IAAIoB,GAAI,EACR,OAAOwsC,GAAGlvC,EAAGsB,EAAGjB,EAAG,CAACsC,EAAGC,EAAGgE,KACxBjE,EAAEf,GAAGvB,EAAEiB,GAAII,KAAOC,EAAE4B,KAAK,CAAE4xB,QAASxyB,EAAGX,aAAcY,EAAGX,MAAO2E,IAAMlE,EAAIA,GAAKC,EAAE2sC,QAAQjvC,EAAE4C,EAAG5C,EAAE6C,EAAGxB,MAChGD,IAAMiB,EAAI,GAAKf,EAErB,IAAIiuC,GAAK,CACPC,yBAA0BX,GAC1BY,MAAO,CACL,MAAM9vC,EAAGK,EAAGiB,EAAGG,GACb,MAAMC,EAAIkoB,GAAGvpB,EAAGL,GAAI2B,EAAIL,EAAE8H,MAAQ,IAAKxH,EAAIN,EAAEub,mBAAoB,EAAIna,EAAIpB,EAAEsb,UAAYwyB,GAAGpvC,EAAG0B,EAAGC,EAAGF,EAAGG,GAAK8tC,GAAG1vC,EAAG0B,EAAGC,GAAG,EAAIF,EAAGG,GAAIe,EAAI,GACtI,OAAOD,EAAEb,QAAU7B,EAAE+sC,+BAA+BjlC,QAASlF,IAC3D,MAAMgE,EAAIlE,EAAE,GAAGT,MAAOqH,EAAI1G,EAAEwb,KAAKxX,GACjC0C,IAAMA,EAAEge,MAAQ3kB,EAAEY,KAAK,CAAE4xB,QAAS7rB,EAAGtH,aAAcY,EAAEX,MAAOA,MAAO2E,MACjEjE,GAAK,IAEX,QAAQ3C,EAAGK,EAAGiB,EAAGG,GACf,MAAMC,EAAIkoB,GAAGvpB,EAAGL,GAAI2B,EAAIL,EAAE8H,MAAQ,KAAMxH,EAAIN,EAAEub,mBAAoB,EAClE,IAAIna,EAAIpB,EAAEsb,UAAYwyB,GAAGpvC,EAAG0B,EAAGC,EAAGF,EAAGG,GAAK8tC,GAAG1vC,EAAG0B,EAAGC,GAAG,EAAIF,EAAGG,GAC7D,GAAIc,EAAEb,OAAS,EAAG,CAChB,MAAMc,EAAID,EAAE,GAAGV,aAAcY,EAAI5C,EAAEo3B,eAAez0B,GAAGyb,KACrD1b,EAAI,GACJ,IAAK,IAAIkE,EAAI,EAAGA,EAAIhE,EAAEf,SAAU+E,EAC9BlE,EAAEa,KAAK,CAAE4xB,QAASvyB,EAAEgE,GAAI5E,aAAcW,EAAGV,MAAO2E,IAEpD,OAAOlE,GAET,MAAM1C,EAAGK,EAAGiB,EAAGG,GACb,MAAMC,EAAIkoB,GAAGvpB,EAAGL,GAAI2B,EAAIL,EAAE8H,MAAQ,KAAMxH,EAAIN,EAAEub,mBAAoB,EAClE,OAAOuyB,GAAGpvC,EAAG0B,EAAGC,EAAGF,EAAGG,IAExB,QAAQ5B,EAAGK,EAAGiB,EAAGG,GACf,MAAMC,EAAIkoB,GAAGvpB,EAAGL,GAAI2B,EAAIL,EAAE8H,MAAQ,KAAMxH,EAAIN,EAAEub,mBAAoB,EAClE,OAAO6yB,GAAG1vC,EAAG0B,EAAGC,EAAGL,EAAEsb,UAAWnb,EAAGG,IAErC,EAAE5B,EAAGK,EAAGiB,EAAGG,GACT,MAAMC,EAAIkoB,GAAGvpB,EAAGL,GAChB,OAAO2vC,GAAG3vC,EAAG0B,EAAG,IAAKJ,EAAEsb,UAAWnb,IAEpC,EAAEzB,EAAGK,EAAGiB,EAAGG,GACT,MAAMC,EAAIkoB,GAAGvpB,EAAGL,GAChB,OAAO2vC,GAAG3vC,EAAG0B,EAAG,IAAKJ,EAAEsb,UAAWnb,MAIxC,MAAMsuC,GAAK,CAAC,OAAQ,MAAO,QAAS,UACpC,SAASC,GAAGhwC,EAAGK,GACb,OAAOL,EAAEwmB,OAAQllB,GAAMA,EAAE2uC,MAAQ5vC,GAEnC,SAAS6vC,GAAGlwC,EAAGK,GACb,OAAOL,EAAEwmB,OAAQllB,IAA6B,IAAvByuC,GAAGztC,QAAQhB,EAAE2uC,MAAe3uC,EAAEqoB,IAAIvgB,OAAS/I,GAEpE,SAAS8vC,GAAGnwC,EAAGK,GACb,OAAOL,EAAEwF,KAAK,CAAClE,EAAGG,KAChB,MAAMC,EAAIrB,EAAIoB,EAAIH,EAAGK,EAAItB,EAAIiB,EAAIG,EACjC,OAAOC,EAAE0a,SAAWza,EAAEya,OAAS1a,EAAEO,MAAQN,EAAEM,MAAQP,EAAE0a,OAASza,EAAEya,SAGpE,SAASg0B,GAAGpwC,GACV,MAAMK,EAAI,GACV,IAAIiB,EAAGG,EAAGC,EAAGC,EAAGC,EAAGc,EACnB,IAAKpB,EAAI,EAAGG,GAAKzB,GAAK,IAAI6B,OAAQP,EAAIG,IAAKH,EACzCI,EAAI1B,EAAEsB,KAAM6oC,SAAUxoC,EAAG6rB,SAAWqG,MAAOjyB,EAAGyuC,YAAa3tC,EAAI,IAAQhB,GAAGrB,EAAEkD,KAAK,CAC/EtB,MAAOX,EACPqoB,IAAKjoB,EACLuuC,IAAKtuC,EACLi6B,WAAYl6B,EAAEg6B,eACdtf,OAAQ1a,EAAE0a,OACVyX,MAAOjyB,GAAKD,EAAIC,EAChByuC,YAAa3tC,IAEjB,OAAOrC,EAET,SAASiwC,GAAGtwC,GACV,MAAMK,EAAI,GACV,IAAK,MAAMiB,KAAKtB,EAAG,CACjB,MAAQ6zB,MAAOpyB,EAAGwuC,IAAKvuC,EAAG2uC,YAAa1uC,GAAML,EAC7C,IAAKG,IAAMsuC,GAAGlrB,SAASnjB,GACrB,SACF,MAAME,EAAIvB,EAAEoB,KAAOpB,EAAEoB,GAAK,CAAEmI,MAAO,EAAG2mC,OAAQ,EAAGn0B,OAAQ,EAAGtY,KAAM,IAClElC,EAAEgI,QAAShI,EAAEwa,QAAUza,EAEzB,OAAOtB,EAET,SAASmwC,GAAGxwC,EAAGK,GACb,MAAMiB,EAAIgvC,GAAGtwC,IAAMywC,aAAchvC,EAAGivC,cAAehvC,GAAMrB,EACzD,IAAIsB,EAAGC,EAAGc,EACV,IAAKf,EAAI,EAAGC,EAAI5B,EAAE6B,OAAQF,EAAIC,IAAKD,EAAG,CACpCe,EAAI1C,EAAE2B,GACN,MAAQyoC,SAAUznC,GAAMD,EAAEinB,IAAK/mB,EAAItB,EAAEoB,EAAEmxB,OAAQjtB,EAAIhE,GAAKF,EAAE2tC,YAAcztC,EAAEwZ,OAC1E1Z,EAAEk5B,YAAcl5B,EAAEwb,MAAQtX,EAAIA,EAAInF,EAAIkB,GAAKtC,EAAEswC,eAAgBjuC,EAAEoc,OAASpd,IAAMgB,EAAEwb,MAAQzc,EAAGiB,EAAEoc,OAASlY,EAAIA,EAAIlF,EAAIiB,GAAKtC,EAAEuwC,iBAE3H,OAAOtvC,EAET,SAASuvC,GAAG7wC,GACV,MAAMK,EAAI+vC,GAAGpwC,GAAIsB,EAAI6uC,GAAG9vC,EAAEmmB,OAAQ5jB,GAAMA,EAAE+mB,IAAIygB,WAAW,GAAK3oC,EAAI0uC,GAAGH,GAAG3vC,EAAG,SAAS,GAAKqB,EAAIyuC,GAAGH,GAAG3vC,EAAG,UAAWsB,EAAIwuC,GAAGH,GAAG3vC,EAAG,QAAQ,GAAKuB,EAAIuuC,GAAGH,GAAG3vC,EAAG,WAAYqC,EAAIwtC,GAAG7vC,EAAG,KAAMsC,EAAIutC,GAAG7vC,EAAG,KAC9L,MAAO,CACL+pC,SAAU9oC,EACVwvC,WAAYrvC,EAAE44B,OAAO14B,GACrBovC,eAAgBrvC,EAAE24B,OAAO13B,GAAG03B,OAAOz4B,GAAGy4B,OAAO33B,GAC7Ci2B,UAAWqX,GAAG3vC,EAAG,aACjB2wC,SAAUvvC,EAAE44B,OAAO34B,GAAG24B,OAAO13B,GAC7Bi5B,WAAYj6B,EAAE04B,OAAOz4B,GAAGy4B,OAAO33B,IAGnC,SAASuuC,GAAGjxC,EAAGK,EAAGiB,EAAGG,GACnB,OAAO0C,KAAK6B,IAAIhG,EAAEsB,GAAIjB,EAAEiB,IAAM6C,KAAK6B,IAAIhG,EAAEyB,GAAIpB,EAAEoB,IAEjD,SAASyvC,GAAGlxC,EAAGK,GACbL,EAAEqgB,IAAMlc,KAAK6B,IAAIhG,EAAEqgB,IAAKhgB,EAAEggB,KAAMrgB,EAAEmgB,KAAOhc,KAAK6B,IAAIhG,EAAEmgB,KAAM9f,EAAE8f,MAAOngB,EAAEsgB,OAASnc,KAAK6B,IAAIhG,EAAEsgB,OAAQjgB,EAAEigB,QAAStgB,EAAEogB,MAAQjc,KAAK6B,IAAIhG,EAAEogB,MAAO/f,EAAE+f,OAE5I,SAAS+wB,GAAGnxC,EAAGK,EAAGiB,EAAGG,GACnB,MAAQwuC,IAAKvuC,EAAGioB,IAAKhoB,GAAML,EAAGM,EAAI5B,EAAEoxC,WACpC,IAAKzwC,EAAEe,GAAI,CACTJ,EAAEwC,OAAS9D,EAAE0B,IAAMJ,EAAEwC,MACrB,MAAMwF,EAAI7H,EAAEH,EAAEuyB,QAAU,CAAE/vB,KAAM,EAAG8F,MAAO,GAC1CN,EAAExF,KAAOK,KAAK6B,IAAIsD,EAAExF,KAAMxC,EAAEs6B,WAAaj6B,EAAEmd,OAASnd,EAAEuc,OAAQ5c,EAAEwC,KAAOwF,EAAExF,KAAOwF,EAAEM,MAAO5J,EAAE0B,IAAMJ,EAAEwC,KAErGnC,EAAE0vC,YAAcH,GAAGtvC,EAAGD,EAAE0vC,cACxB,MAAM3uC,EAAIyB,KAAK6B,IAAI,EAAG3F,EAAEixC,WAAaL,GAAGrvC,EAAG5B,EAAG,OAAQ,UAAW2C,EAAIwB,KAAK6B,IAAI,EAAG3F,EAAEkxC,YAAcN,GAAGrvC,EAAG5B,EAAG,MAAO,WAAY4C,EAAIF,IAAM1C,EAAEuiB,EAAG3b,EAAIjE,IAAM3C,EAAE4G,EACxJ,OAAO5G,EAAEuiB,EAAI7f,EAAG1C,EAAE4G,EAAIjE,EAAGrB,EAAEs6B,WAAa,CAAE4V,KAAM5uC,EAAG6uC,MAAO7qC,GAAM,CAAE4qC,KAAM5qC,EAAG6qC,MAAO7uC,GAEpF,SAAS8uC,GAAG1xC,GACV,MAAMK,EAAIL,EAAEoxC,WACZ,SAAS9vC,EAAEG,GACT,MAAMC,EAAIyC,KAAK6B,IAAI3F,EAAEoB,GAAKzB,EAAEyB,GAAI,GAChC,OAAOzB,EAAEyB,IAAMC,EAAGA,EAEpB1B,EAAEkD,GAAK5B,EAAE,OAAQtB,EAAEiD,GAAK3B,EAAE,QAASA,EAAE,SAAUA,EAAE,UAEnD,SAASqwC,GAAG3xC,EAAGK,GACb,MAAMiB,EAAIjB,EAAE+wC,WACZ,SAAS3vC,EAAEC,GACT,MAAMC,EAAI,CAAEwe,KAAM,EAAGE,IAAK,EAAGD,MAAO,EAAGE,OAAQ,GAC/C,OAAO5e,EAAEoG,QAASlG,IAChBD,EAAEC,GAAKuC,KAAK6B,IAAI3F,EAAEuB,GAAIN,EAAEM,MACtBD,EAEN,OAAOF,EAAEzB,EAAI,CAAC,OAAQ,SAAW,CAAC,MAAO,WAE3C,SAAS4xC,GAAG5xC,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAI,GACV,IAAIC,EAAGC,EAAGc,EAAGC,EAAGC,EAAGgE,EACnB,IAAKjF,EAAI,EAAGC,EAAI5B,EAAE6B,OAAQe,EAAI,EAAGjB,EAAIC,IAAKD,EAAG,CAC3Ce,EAAI1C,EAAE2B,GAAIgB,EAAID,EAAEinB,IAAKhnB,EAAEmwB,OACrBpwB,EAAEwb,OAAS7d,EAAEkiB,EACb7f,EAAEoc,QAAUze,EAAEuG,EACd+qC,GAAGjvC,EAAEk5B,WAAYv7B,IAEnB,MAAQmxC,KAAMloC,EAAGmoC,MAAOjoC,GAAM2nC,GAAG9wC,EAAGiB,EAAGoB,EAAGjB,GAC1CmB,GAAK0G,GAAK5H,EAAEG,OAAQ+E,EAAIA,GAAK4C,EAAG7G,EAAEynC,UAAY1oC,EAAE6B,KAAKb,GAEvD,OAAOE,GAAKgvC,GAAGlwC,EAAGrB,EAAGiB,EAAGG,IAAMmF,EAEhC,SAASirC,GAAG7xC,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB1B,EAAEqgB,IAAM/e,EAAGtB,EAAEmgB,KAAO9f,EAAGL,EAAEogB,MAAQ/f,EAAIoB,EAAGzB,EAAEsgB,OAAShf,EAAII,EAAG1B,EAAEke,MAAQzc,EAAGzB,EAAE8e,OAASpd,EAEpF,SAASowC,GAAG9xC,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAIJ,EAAEijC,QACZ,IAAMthC,EAAGtB,EAAGuB,EAAGtB,GAAMvB,EACrB,IAAK,MAAMqC,KAAK1C,EAAG,CACjB,MAAM2C,EAAID,EAAEinB,IAAK/mB,EAAInB,EAAEiB,EAAEmxB,QAAU,CAAEjqB,MAAO,EAAG2mC,OAAQ,EAAGn0B,OAAQ,GAAKxV,EAAIlE,EAAE2tC,YAAcztC,EAAEwZ,QAAU,EACvG,GAAI1Z,EAAEk5B,WAAY,CAChB,MAAMtyB,EAAIjJ,EAAEkiB,EAAI3b,EAAG4C,EAAI5G,EAAEkB,MAAQnB,EAAEmc,OACnCnb,EAAGf,EAAE+G,SAAW/H,EAAIgB,EAAE+G,OAAQhH,EAAEynC,SAAWyH,GAAGlvC,EAAGjB,EAAEye,KAAMve,EAAGN,EAAEgwC,WAAa5vC,EAAE0e,MAAQ1e,EAAEye,KAAM3W,GAAKqoC,GAAGlvC,EAAGtC,EAAE8f,KAAOvd,EAAE2tC,OAAQ3uC,EAAG0H,EAAGE,GAAI5G,EAAE+G,MAAQ/H,EAAGgB,EAAE2tC,QAAUjnC,EAAG1H,EAAIe,EAAE2d,WAClK,CACL,MAAMhX,EAAIjJ,EAAEuG,EAAIA,EAAG4C,EAAI5G,EAAEkB,MAAQnB,EAAEub,MACnCva,EAAGf,EAAE+G,SAAWhI,EAAIiB,EAAE+G,OAAQhH,EAAEynC,SAAWyH,GAAGlvC,EAAGhB,EAAGD,EAAE2e,IAAK7W,EAAGlI,EAAEiwC,YAAc7vC,EAAE4e,OAAS5e,EAAE2e,KAAOwxB,GAAGlvC,EAAGhB,EAAGtB,EAAEggB,IAAMzd,EAAE2tC,OAAQ/mC,EAAGF,GAAI1G,EAAE+G,MAAQhI,EAAGiB,EAAE2tC,QAAUjnC,EAAG3H,EAAIgB,EAAEyd,OAG1K/f,EAAE4C,EAAItB,EAAGtB,EAAE6C,EAAItB,EAEjB6N,GAAE8b,IAAI,SAAU,CACdwmB,aAAa,EACbxN,QAAS,CACPlkB,IAAK,EACLD,MAAO,EACPE,OAAQ,EACRH,KAAM,KAGV,IAAI/Q,GAAI,CACN,OAAOpP,EAAGK,GACRL,EAAEgyC,QAAUhyC,EAAEgyC,MAAQ,IAAK3xC,EAAE+pC,SAAW/pC,EAAE+pC,WAAY,EAAI/pC,EAAE8pC,SAAW9pC,EAAE8pC,UAAY,MAAO9pC,EAAE+b,OAAS/b,EAAE+b,QAAU,EAAG/b,EAAE4xC,QAAU5xC,EAAE4xC,SAAW,WAC7I,MAAO,CAAC,CACN/xC,EAAG,EACH,KAAKoB,GACHjB,EAAEsvB,KAAKruB,OAGVtB,EAAEgyC,MAAMzuC,KAAKlD,IAElB,UAAUL,EAAGK,GACX,MAAMiB,EAAItB,EAAEgyC,MAAQhyC,EAAEgyC,MAAM1vC,QAAQjC,IAAM,GACnC,IAAPiB,GAAYtB,EAAEgyC,MAAM/pC,OAAO3G,EAAG,IAEhC,UAAUtB,EAAGK,EAAGiB,GACdjB,EAAE+pC,SAAW9oC,EAAE8oC,SAAU/pC,EAAE8pC,SAAW7oC,EAAE6oC,SAAU9pC,EAAE+b,OAAS9a,EAAE8a,QAEjE,OAAOpc,EAAGK,EAAGiB,EAAGG,GACd,IAAKzB,EACH,OACF,MAAM0B,EAAIkO,GAAE5P,EAAEwtB,QAAQ0kB,OAAO3N,SAAU5iC,EAAIwC,KAAK6B,IAAI3F,EAAIqB,EAAEwc,MAAO,GAAItc,EAAIuC,KAAK6B,IAAI1E,EAAII,EAAEod,OAAQ,GAAIpc,EAAImuC,GAAG7wC,EAAEgyC,OAAQrvC,EAAID,EAAEsuC,SAAUpuC,EAAIF,EAAEk5B,WAC3Ip6B,EAAExB,EAAEgyC,MAAQnlB,IACe,mBAAlBA,EAAEslB,cAA8BtlB,EAAEslB,iBAE3C,MAAMvrC,EAAIjE,EAAEqtB,OAAO,CAACnD,EAAGC,IAAMA,EAAEnD,IAAI6D,UAAqC,IAA1BV,EAAEnD,IAAI6D,QAAQuU,QAAiBlV,EAAIA,EAAI,EAAG,IAAM,EAAGvjB,EAAIhJ,OAAO44B,OAAO,CACjHoY,WAAYjxC,EACZkxC,YAAajwC,EACbijC,QAAS7iC,EACTivC,eAAgBhvC,EAChBivC,gBAAiBhvC,EACjB6uC,aAAc9uC,EAAI,EAAIiF,EACtB8pC,cAAe9uC,EAAI,IACjB4H,EAAIlJ,OAAO+J,OAAO,GAAI3I,GAC1BwvC,GAAG1nC,EAAGoG,GAAEnO,IACR,MAAMiM,EAAIpN,OAAO+J,OAAO,CACtB+mC,WAAY5nC,EACZ+Y,EAAG5gB,EACHiF,EAAGhF,EACHqB,EAAGvB,EAAEye,KACLjd,EAAGxB,EAAE2e,KACJ3e,GAAIsM,EAAIwiC,GAAG7tC,EAAE03B,OAAOz3B,GAAI0G,GAC3BsoC,GAAGlvC,EAAE0nC,SAAU18B,EAAGpE,EAAG0E,GAAI4jC,GAAGjvC,EAAG+K,EAAGpE,EAAG0E,GAAI4jC,GAAGhvC,EAAG8K,EAAGpE,EAAG0E,IAAM4jC,GAAGjvC,EAAG+K,EAAGpE,EAAG0E,GAAI0jC,GAAGhkC,GAAIokC,GAAGpvC,EAAEouC,WAAYpjC,EAAGpE,EAAG0E,GAAIN,EAAEzK,GAAKyK,EAAE6U,EAAG7U,EAAExK,GAAKwK,EAAE9G,EAAGkrC,GAAGpvC,EAAEquC,eAAgBrjC,EAAGpE,EAAG0E,GAAIhO,EAAE24B,UAAY,CAChLxY,KAAMzS,EAAEyS,KACRE,IAAK3S,EAAE2S,IACPD,MAAO1S,EAAEyS,KAAOzS,EAAE6U,EAClBjC,OAAQ5S,EAAE2S,IAAM3S,EAAE9G,EAClBkY,OAAQpR,EAAE9G,EACVsX,MAAOxQ,EAAE6U,GACR/gB,EAAEkB,EAAEi2B,UAAY9L,IACjB,MAAMC,EAAID,EAAElD,IACZrpB,OAAO+J,OAAOyiB,EAAG9sB,EAAE24B,WAAY7L,EAAEgG,OAAOplB,EAAE6U,EAAG7U,EAAE9G,EAAG,CAAEuZ,KAAM,EAAGE,IAAK,EAAGD,MAAO,EAAGE,OAAQ,QAI7F,MAAM8xB,GACJ,eAAe/xC,EAAGiB,IAElB,eAAejB,GACb,OAAO,EAET,iBAAiBA,EAAGiB,EAAGG,IAEvB,oBAAoBpB,EAAGiB,EAAGG,IAE1B,sBACE,OAAO,EAET,eAAepB,EAAGiB,EAAGG,EAAGC,GACtB,OAAOJ,EAAI6C,KAAK6B,IAAI,EAAG1E,GAAKjB,EAAE6d,OAAQzc,EAAIA,GAAKpB,EAAEye,OAAQ,CACvDZ,MAAO5c,EACPwd,OAAQ3a,KAAK6B,IAAI,EAAGtE,EAAIyC,KAAKkB,MAAM/D,EAAII,GAAKD,IAGhD,WAAWpB,GACT,OAAO,EAET,aAAaA,KAGf,MAAMgyC,WAAWD,GACf,eAAe/xC,GACb,OAAOA,GAAKA,EAAEse,YAActe,EAAEse,WAAW,OAAS,KAEpD,aAAate,GACXA,EAAEmtB,QAAQnS,WAAY,GAG1B,MAAMi3B,GAAK,WAAYC,GAAK,CAC1BC,WAAY,YACZC,UAAW,YACXC,SAAU,UACVC,aAAc,aACdC,YAAa,YACbC,YAAa,YACbC,UAAW,UACXC,aAAc,WACdC,WAAY,YACXC,GAAMjzC,GAAY,OAANA,GAAoB,KAANA,EAC7B,SAASkzC,GAAGlzC,EAAGK,GACb,MAAMiB,EAAItB,EAAEkc,MAAOza,EAAIzB,EAAEmzC,aAAa,UAAWzxC,EAAI1B,EAAEmzC,aAAa,SACpE,GAAInzC,EAAEsyC,IAAM,CACVvjB,QAAS,CACPjQ,OAAQrd,EACRyc,MAAOxc,EACPwa,MAAO,CACL6lB,QAASzgC,EAAEygC,QACXjjB,OAAQxd,EAAEwd,OACVZ,MAAO5c,EAAE4c,SAGZ5c,EAAEygC,QAAUzgC,EAAEygC,SAAW,QAASzgC,EAAEwoB,UAAYxoB,EAAEwoB,WAAa,aAAcmpB,GAAGvxC,GAAI,CACrF,MAAMC,EAAIgpB,GAAG3qB,EAAG,cACV,IAAN2B,IAAiB3B,EAAEke,MAAQvc,GAE7B,GAAIsxC,GAAGxxC,GACL,GAAuB,KAAnBzB,EAAEkc,MAAM4C,OACV9e,EAAE8e,OAAS9e,EAAEke,OAAS7d,GAAK,OACxB,CACH,MAAMsB,EAAIgpB,GAAG3qB,EAAG,eACV,IAAN2B,IAAiB3B,EAAE8e,OAASnd,GAEhC,OAAO3B,EAET,MAAMozC,KAAK5oB,IAAK,CAAE6oB,SAAS,GAC3B,SAASC,GAAGtzC,EAAGK,EAAGiB,GAChBtB,EAAEyqB,iBAAiBpqB,EAAGiB,EAAG8xC,IAE3B,SAASG,GAAGvzC,EAAGK,EAAGiB,GAChBtB,EAAE6pB,OAAOa,oBAAoBrqB,EAAGiB,EAAG8xC,IAErC,SAASI,GAAGxzC,EAAGK,GACb,MAAMiB,EAAIixC,GAAGvyC,EAAEiE,OAASjE,EAAEiE,MAAQhB,EAAGxB,EAAGyB,EAAGxB,GAAMkoB,GAAG5pB,EAAGK,GACvD,MAAO,CACL4D,KAAM3C,EACNqa,MAAOtb,EACPozC,OAAQzzC,EACRiD,OAAS,IAANxB,EAAeA,EAAI,KACtByB,OAAS,IAANxB,EAAeA,EAAI,MAG1B,SAASgyC,GAAG1zC,EAAGK,GACb,IAAK,MAAMiB,KAAKtB,EACd,GAAIsB,IAAMjB,GAAKiB,EAAEqyC,SAAStzC,GACxB,OAAO,EAEb,SAASuzC,GAAG5zC,EAAGK,EAAGiB,GAChB,MAAMG,EAAIzB,EAAE6pB,OAAQnoB,EAAI,IAAImyC,iBAAkBlyC,IAC5C,IAAIC,GAAI,EACR,IAAK,MAAMc,KAAKf,EACdC,EAAIA,GAAK8xC,GAAGhxC,EAAEoxC,WAAYryC,GAAIG,EAAIA,IAAM8xC,GAAGhxC,EAAEqxC,aAActyC,GAC7DG,GAAKN,MAEP,OAAOI,EAAEsyC,QAAQ1rB,SAAU,CAAE2rB,WAAW,EAAIC,SAAS,IAAOxyC,EAE9D,SAASyyC,GAAGn0C,EAAGK,EAAGiB,GAChB,MAAMG,EAAIzB,EAAE6pB,OAAQnoB,EAAI,IAAImyC,iBAAkBlyC,IAC5C,IAAIC,GAAI,EACR,IAAK,MAAMc,KAAKf,EACdC,EAAIA,GAAK8xC,GAAGhxC,EAAEqxC,aAActyC,GAAIG,EAAIA,IAAM8xC,GAAGhxC,EAAEoxC,WAAYryC,GAC7DG,GAAKN,MAEP,OAAOI,EAAEsyC,QAAQ1rB,SAAU,CAAE2rB,WAAW,EAAIC,SAAS,IAAOxyC,EAE9D,MAAM0yC,GAAqB,IAAIppB,IAC/B,IAAIqpB,GAAK,EACT,SAASC,KACP,MAAMt0C,EAAIuI,OAAOmT,iBACjB1b,IAAMq0C,KAAOA,GAAKr0C,EAAGo0C,GAAGtsC,QAAQ,CAACzH,EAAGiB,KAClCA,EAAEmd,0BAA4Bze,GAAKK,OAGvC,SAASk0C,GAAGv0C,EAAGK,GACb+zC,GAAGtwC,MAAQyE,OAAOkiB,iBAAiB,SAAU6pB,IAAKF,GAAG7oB,IAAIvrB,EAAGK,GAE9D,SAASm0C,GAAGx0C,GACVo0C,GAAG9tB,OAAOtmB,GAAIo0C,GAAGtwC,MAAQyE,OAAOmiB,oBAAoB,SAAU4pB,IAEhE,SAASG,GAAGz0C,EAAGK,EAAGiB,GAChB,MAAMG,EAAIzB,EAAE6pB,OAAQnoB,EAAID,GAAK8mB,GAAG9mB,GAChC,IAAKC,EACH,OACF,MAAMC,EAAI8G,GAAG,CAAC/F,EAAGC,KACf,MAAMC,EAAIlB,EAAEuoB,YACZ3oB,EAAEoB,EAAGC,GAAIC,EAAIlB,EAAEuoB,aAAe3oB,KAC7BiH,QAAS3G,EAAI,IAAI8yC,eAAgBhyC,IAClC,MAAMC,EAAID,EAAE,GAAIE,EAAID,EAAEgyC,YAAYz2B,MAAOtX,EAAIjE,EAAEgyC,YAAY71B,OACrD,IAANlc,GAAiB,IAANgE,GAAWjF,EAAEiB,EAAGgE,KAE7B,OAAOhF,EAAEoyC,QAAQtyC,GAAI6yC,GAAGv0C,EAAG2B,GAAIC,EAEjC,SAASgzC,GAAG50C,EAAGK,EAAGiB,GAChBA,GAAKA,EAAEuzC,aAAoB,WAANx0C,GAAkBm0C,GAAGx0C,GAE5C,SAAS80C,GAAG90C,EAAGK,EAAGiB,GAChB,MAAMG,EAAIzB,EAAE6pB,OAAQnoB,EAAI+G,GAAI9G,IAChB,OAAV3B,EAAEsqB,KAAgBhpB,EAAEkyC,GAAG7xC,EAAG3B,KACzBA,EAAI2B,IACL,MAAMC,EAAID,EAAE,GACZ,MAAO,CAACC,EAAGA,EAAEynB,QAASznB,EAAE0nB,WAE1B,OAAOgqB,GAAG7xC,EAAGpB,EAAGqB,GAAIA,EAEtB,MAAMqzC,WAAW3C,GACf,eAAe/xC,EAAGiB,GAChB,MAAMG,EAAIpB,GAAKA,EAAEse,YAActe,EAAEse,WAAW,MAC5C,OAAOld,GAAKA,EAAEooB,SAAWxpB,GAAK6yC,GAAG7yC,EAAGiB,GAAIG,GAAK,KAE/C,eAAepB,GACb,MAAMiB,EAAIjB,EAAEwpB,OACZ,IAAKvoB,EAAEgxC,IACL,OAAO,EACT,MAAM7wC,EAAIH,EAAEgxC,IAAIvjB,QAChB,CAAC,SAAU,SAASjnB,QAASnG,IAC3B,MAAMC,EAAIH,EAAEE,GACZ1B,EAAE2B,GAAKN,EAAE0zC,gBAAgBrzC,GAAKL,EAAE2zC,aAAatzC,EAAGC,KAElD,MAAMF,EAAID,EAAEya,OAAS,GACrB,OAAO5b,OAAOwB,KAAKJ,GAAGoG,QAASnG,IAC7BL,EAAE4a,MAAMva,GAAKD,EAAEC,KACbL,EAAE4c,MAAQ5c,EAAE4c,aAAc5c,EAAEgxC,KAAK,EAEvC,iBAAiBjyC,EAAGiB,EAAGG,GACrBsG,KAAK2iB,oBAAoBrqB,EAAGiB,GAC5B,MAAMI,EAAIrB,EAAE60C,WAAa70C,EAAE60C,SAAW,IAAKtzC,EAAI,CAC7CuzC,OAAQvB,GACRwB,OAAQjB,GACRriB,OAAQ2iB,IACRnzC,IAAMwzC,GACRpzC,EAAEJ,GAAKM,EAAEvB,EAAGiB,EAAGG,GAEjB,oBAAoBpB,EAAGiB,GACrB,MAAMG,EAAIpB,EAAE60C,WAAa70C,EAAE60C,SAAW,IAAKxzC,EAAID,EAAEH,GAC5CI,KAEJ,CACCyzC,OAAQP,GACRQ,OAAQR,GACR9iB,OAAQ8iB,IACRtzC,IAAMiyC,IAAIlzC,EAAGiB,EAAGI,GAAID,EAAEH,QAAK,GAE/B,sBACE,OAAOiH,OAAOmT,iBAEhB,eAAerb,EAAGiB,EAAGG,EAAGC,GACtB,OAAO0oB,GAAG/pB,EAAGiB,EAAGG,EAAGC,GAErB,WAAWrB,GACT,MAAMiB,EAAIinB,GAAGloB,GACb,SAAUiB,IAAKA,EAAE+zC,cAGrB,SAASC,GAAGt1C,GACV,OAAQqoB,aAAektB,gBAAkB,KAAOv1C,aAAau1C,gBAAkBlD,GAAK0C,GAEtF,MAAMS,GACJ,cACEztC,KAAK0tC,MAAQ,GAEf,OAAOp1C,EAAGiB,EAAGG,EAAGC,GACR,eAANJ,IAAuByG,KAAK0tC,MAAQ1tC,KAAK2tC,mBAAmBr1C,GAAG,GAAK0H,KAAK6nB,QAAQ7nB,KAAK0tC,MAAOp1C,EAAG,YAChG,MAAMsB,EAAID,EAAIqG,KAAKqd,aAAa/kB,GAAGmmB,OAAO9kB,GAAKqG,KAAKqd,aAAa/kB,GAAIuB,EAAImG,KAAK6nB,QAAQjuB,EAAGtB,EAAGiB,EAAGG,GAC/F,MAAa,iBAANH,IAAyByG,KAAK6nB,QAAQjuB,EAAGtB,EAAG,QAAS0H,KAAK6nB,QAAQ7nB,KAAK0tC,MAAOp1C,EAAG,cAAeuB,EAEzG,QAAQvB,EAAGiB,EAAGG,EAAGC,GACfA,EAAIA,GAAK,GACT,IAAK,MAAMC,KAAKtB,EAAG,CACjB,MAAMuB,EAAID,EAAEg0C,OAAQjzC,EAAId,EAAEH,GAAIkB,EAAI,CAACrB,EAAGI,EAAGC,EAAE6rB,SAC3C,IAAmB,IAAfnsB,EAAEqB,EAAGC,EAAGf,IAAaF,EAAEk0C,WACzB,OAAO,EAEX,OAAO,EAET,aACE31C,EAAE8H,KAAKoyB,UAAYpyB,KAAK8tC,UAAY9tC,KAAKoyB,OAAQpyB,KAAKoyB,YAAS,GAEjE,aAAa95B,GACX,GAAI0H,KAAKoyB,OACP,OAAOpyB,KAAKoyB,OACd,MAAM74B,EAAIyG,KAAKoyB,OAASpyB,KAAK2tC,mBAAmBr1C,GAChD,OAAO0H,KAAK+tC,oBAAoBz1C,GAAIiB,EAEtC,mBAAmBjB,EAAGiB,GACpB,MAAMG,EAAIpB,GAAKA,EAAEo3B,OAAQ/1B,EAAIV,EAAES,EAAE+rB,SAAW/rB,EAAE+rB,QAAQtQ,QAAS,IAAKvb,EAAIo0C,GAAGt0C,GAC3E,OAAa,IAANC,GAAaJ,EAAS00C,GAAG31C,EAAGsB,EAAGD,EAAGJ,GAAjB,GAE1B,oBAAoBjB,GAClB,MAAMiB,EAAIyG,KAAK8tC,WAAa,GAAIp0C,EAAIsG,KAAKoyB,OAAQz4B,EAAI,CAACC,EAAGC,IAAMD,EAAE6kB,OAAQ9jB,IAAOd,EAAEq0C,KAAMtzC,GAAMD,EAAEizC,OAAO5hB,KAAOpxB,EAAEgzC,OAAO5hB,KACvHhsB,KAAK6nB,QAAQluB,EAAEJ,EAAGG,GAAIpB,EAAG,QAAS0H,KAAK6nB,QAAQluB,EAAED,EAAGH,GAAIjB,EAAG,UAG/D,SAAS01C,GAAG/1C,GACV,MAAMK,EAAI,GAAIiB,EAAI,GAAIG,EAAInB,OAAOwB,KAAKisC,GAAG7wB,QAAQqS,OACjD,IAAK,IAAI5tB,EAAI,EAAGA,EAAIF,EAAEI,OAAQF,IAC5BL,EAAEiC,KAAKwqC,GAAGmI,UAAUz0C,EAAEE,KACxB,MAAMD,EAAI1B,EAAEkd,SAAW,GACvB,IAAK,IAAIvb,EAAI,EAAGA,EAAID,EAAEG,OAAQF,IAAK,CACjC,MAAMC,EAAIF,EAAEC,IACM,IAAlBL,EAAEgB,QAAQV,KAAcN,EAAEiC,KAAK3B,GAAIvB,EAAEuB,EAAEmyB,KAAM,GAE/C,MAAO,CAAE7W,QAAS5b,EAAG60C,SAAU91C,GAEjC,SAAS+1C,GAAGp2C,EAAGK,GACb,OAAQA,IAAW,IAANL,GAAwB,IAANA,EAAW,GAAKA,EAAvB,KAE1B,SAASg2C,GAAGh2C,GAAKkd,QAAS7c,EAAG81C,SAAU70C,GAAKG,EAAGC,GAC7C,MAAMC,EAAI,GAAIC,EAAI5B,EAAE2e,aACpB,IAAK,MAAMjc,KAAKrC,EAAG,CACjB,MAAMsC,EAAID,EAAEqxB,GAAInxB,EAAIwzC,GAAG30C,EAAEkB,GAAIjB,GACvB,OAANkB,GAAcjB,EAAE4B,KAAK,CACnBoyC,OAAQjzC,EACR8qB,QAAS6oB,GAAGr2C,EAAEy3B,OAAQ,CAAEke,OAAQjzC,EAAG4zC,MAAOh1C,EAAEqB,IAAMC,EAAGhB,KAGzD,OAAOD,EAET,SAAS00C,GAAGr2C,GAAK21C,OAAQt1C,EAAGi2C,MAAOh1C,GAAKG,EAAGC,GACzC,MAAMC,EAAI3B,EAAEu2C,gBAAgBl2C,GAAIuB,EAAI5B,EAAE23B,gBAAgBl2B,EAAGE,GACzD,OAAOL,GAAKjB,EAAEi8B,UAAY16B,EAAE2B,KAAKlD,EAAEi8B,UAAWt8B,EAAE43B,eAAeh2B,EAAGF,EAAG,CAAC,IAAK,CACzEgkB,YAAY,EACZC,WAAW,EACXH,SAAS,IAGb,SAASgxB,GAAGx2C,EAAGK,GACb,MAAMiB,EAAImO,GAAEgM,SAASzb,IAAM,GAC3B,QAASK,EAAEob,UAAY,IAAIzb,IAAM,IAAIyc,WAAapc,EAAEoc,WAAanb,EAAEmb,WAAa,IAElF,SAASg6B,GAAGz2C,EAAGK,GACb,IAAIiB,EAAItB,EACR,MAAa,YAANA,EAAkBsB,EAAIjB,EAAU,YAANL,IAAoBsB,EAAU,MAANjB,EAAY,IAAM,KAAMiB,EAEnF,SAASo1C,GAAG12C,EAAGK,GACb,OAAOL,IAAMK,EAAI,UAAY,UAE/B,SAASs2C,GAAG32C,GACV,MAAU,QAANA,GAAqB,WAANA,EACV,IACC,SAANA,GAAsB,UAANA,EACX,SADT,EAGF,SAAS42C,GAAG52C,EAAGK,GACb,MAAa,MAANL,GAAmB,MAANA,EAAYA,EAAIK,EAAE+I,MAAQutC,GAAGt2C,EAAE8pC,WAAanqC,EAAEyD,OAAO,GAAGiW,cAE9E,SAASm9B,GAAG72C,EAAGK,GACb,MAAMiB,EAAI0Z,GAAGhb,EAAEiE,OAAS,CAAEoZ,OAAQ,IAAM5b,EAAIpB,EAAEgd,QAAU,GAAI3b,EAAI80C,GAAGx2C,EAAEiE,KAAM5D,GAAIsB,EAAoBrB,OAAO8B,OAAO,MAAOR,EAAoBtB,OAAO8B,OAAO,MAC1J,OAAO9B,OAAOwB,KAAKL,GAAGqG,QAASpF,IAC7B,MAAMC,EAAIlB,EAAEiB,GACZ,IAAK/B,EAAEgC,GACL,OAAO2gB,QAAQwzB,MAAM,0CAA0Cp0C,GACjE,GAAIC,EAAEqiB,OACJ,OAAO1B,QAAQC,KAAK,kDAAkD7gB,GACxE,MAAME,EAAIg0C,GAAGl0C,EAAGC,GAAIiE,EAAI8vC,GAAG9zC,EAAGlB,GAAI4H,EAAIhI,EAAE+b,QAAU,GAClD1b,EAAEiB,GAAKjB,EAAEiB,IAAMF,EAAGd,EAAEc,GAAKG,EAAmBvC,OAAO8B,OAAO,MAAO,CAAC,CAAEgH,KAAMxG,GAAKD,EAAG2G,EAAE1G,GAAI0G,EAAE1C,OACxF5G,EAAEoe,KAAK3C,SAAS3T,QAASpF,IAC3B,MAAMC,EAAID,EAAEuB,MAAQjE,EAAEiE,KAAMrB,EAAIF,EAAE+Z,WAAa+5B,GAAG7zC,EAAGtC,GAAIiJ,GAAK0R,GAAGrY,IAAM,IAAI0a,QAAU,GACrF/c,OAAOwB,KAAKwH,GAAGxB,QAAS0B,IACtB,MAAMkE,EAAI+oC,GAAGjtC,EAAG5G,GAAIoL,EAAItL,EAAEgL,EAAI,WAAa/L,EAAE+L,IAAMA,EACnD9L,EAAEoM,GAAKpM,EAAEoM,IAAsB1N,OAAO8B,OAAO,MAAOS,EAAGjB,EAAEoM,GAAI,CAAC,CAAE5E,KAAMsE,GAAKjM,EAAEuM,GAAI1E,EAAEE,SAEnFlJ,OAAOwB,KAAKF,GAAGkG,QAASpF,IAC1B,MAAMC,EAAIf,EAAEc,GACZG,EAAGF,EAAG,CAAC8M,GAAE4N,OAAO1a,EAAEsB,MAAOwL,GAAE2N,UACzBxb,EAEN,SAASm1C,GAAG/2C,GACV,MAAMK,EAAIL,EAAEwtB,UAAYxtB,EAAEwtB,QAAU,IACpCntB,EAAE6c,QAAUlc,EAAEX,EAAE6c,QAAS,IAAK7c,EAAEgd,OAASw5B,GAAG72C,EAAGK,GAEjD,SAAS22C,GAAGh3C,GACV,OAAOA,EAAIA,GAAK,GAAIA,EAAEyb,SAAWzb,EAAEyb,UAAY,GAAIzb,EAAEkgC,OAASlgC,EAAEkgC,QAAU,GAAIlgC,EAEhF,SAASi3C,GAAGj3C,GACV,OAAOA,EAAIA,GAAK,GAAIA,EAAEoe,KAAO44B,GAAGh3C,EAAEoe,MAAO24B,GAAG/2C,GAAIA,EAElD,MAAMk3C,GAAqB,IAAIlsB,IAAOmsB,GAAqB,IAAIhvC,IAC/D,SAASivC,GAAGp3C,EAAGK,GACb,IAAIiB,EAAI41C,GAAG9rB,IAAIprB,GACf,OAAOsB,IAAMA,EAAIjB,IAAK62C,GAAG3rB,IAAIvrB,EAAGsB,GAAI61C,GAAG/uC,IAAI9G,IAAKA,EAElD,MAAM+1C,GAAK,CAACr3C,EAAGK,EAAGiB,KAChB,MAAMG,EAAI0B,EAAG9C,EAAGiB,QACV,IAANG,GAAgBzB,EAAEoI,IAAI3G,IAExB,MAAM61C,GACJ,YAAYj3C,GACV0H,KAAKwvC,QAAUN,GAAG52C,GAAI0H,KAAKyvC,YAA8B,IAAIxsB,IAAOjjB,KAAK0vC,eAAiC,IAAIzsB,IAEhH,eACE,OAAOjjB,KAAKwvC,QAAQ37B,SAEtB,WACE,OAAO7T,KAAKwvC,QAAQtzC,KAEtB,SAAS5D,GACP0H,KAAKwvC,QAAQtzC,KAAO5D,EAEtB,WACE,OAAO0H,KAAKwvC,QAAQn5B,KAEtB,SAAS/d,GACP0H,KAAKwvC,QAAQn5B,KAAO44B,GAAG32C,GAEzB,cACE,OAAO0H,KAAKwvC,QAAQ/pB,QAEtB,YAAYntB,GACV0H,KAAKwvC,QAAQ/pB,QAAUntB,EAEzB,cACE,OAAO0H,KAAKwvC,QAAQr6B,QAEtB,SACE,MAAM7c,EAAI0H,KAAKwvC,QACfxvC,KAAK2vC,aAAcX,GAAG12C,GAExB,aACE0H,KAAKyvC,YAAYG,QAAS5vC,KAAK0vC,eAAeE,QAEhD,iBAAiBt3C,GACf,OAAO+2C,GACL/2C,EACA,IAAM,CAAC,CACL,YAAYA,EACZ,MAIN,0BAA0BA,EAAGiB,GAC3B,OAAO81C,GACL,GAAG/2C,gBAAgBiB,IACnB,IAAM,CACJ,CACE,YAAYjB,iBAAiBiB,IAC7B,eAAeA,GAEjB,CACE,YAAYjB,EACZ,MAKR,wBAAwBA,EAAGiB,GACzB,OAAO81C,GACL,GAAG/2C,KAAKiB,IACR,IAAM,CAAC,CACL,YAAYjB,cAAciB,IAC1B,YAAYjB,EACZ,YAAYiB,EACZ,MAIN,gBAAgBjB,GACd,MAAMiB,EAAIjB,EAAE0zB,GAAItyB,EAAIsG,KAAK9D,KACzB,OAAOmzC,GACL,GAAG31C,YAAYH,IACf,IAAM,CAAC,CACL,WAAWA,KACRjB,EAAEu3C,wBAA0B,MAIrC,cAAcv3C,EAAGiB,GACf,MAAMG,EAAIsG,KAAKyvC,YACf,IAAI91C,EAAID,EAAE2pB,IAAI/qB,GACd,QAASqB,GAAKJ,KAAOI,EAAoB,IAAIspB,IAAOvpB,EAAE8pB,IAAIlrB,EAAGqB,IAAKA,EAEpE,gBAAgBrB,EAAGiB,EAAGG,GACpB,MAAQ+rB,QAAS9rB,EAAGuC,KAAMtC,GAAMoG,KAAMnG,EAAImG,KAAK8vC,cAAcx3C,EAAGoB,GAAIiB,EAAId,EAAEwpB,IAAI9pB,GAC9E,GAAIoB,EACF,OAAOA,EACT,MAAMC,EAAoB,IAAIwF,IAC9B7G,EAAEwG,QAASlB,IACTvG,IAAMsC,EAAEyF,IAAI/H,GAAIuG,EAAEkB,QAASwB,GAAM+tC,GAAG10C,EAAGtC,EAAGiJ,KAAM1C,EAAEkB,QAASwB,GAAM+tC,GAAG10C,EAAGjB,EAAG4H,IAAK1C,EAAEkB,QAASwB,GAAM+tC,GAAG10C,EAAGqY,GAAGrZ,IAAM,GAAI2H,IAAK1C,EAAEkB,QAASwB,GAAM+tC,GAAG10C,EAAG8M,GAAGnG,IAAK1C,EAAEkB,QAASwB,GAAM+tC,GAAG10C,EAAGsY,GAAI3R,MAEpL,MAAM1G,EAAIzC,MAAMkI,KAAK1F,GACrB,OAAoB,IAAbC,EAAEf,QAAgBe,EAAEW,KAAqBjD,OAAO8B,OAAO,OAAQ+0C,GAAGpzC,IAAIzC,IAAMM,EAAE2pB,IAAIjqB,EAAGsB,GAAIA,EAElG,oBACE,MAAQ4qB,QAASntB,EAAG4D,KAAM3C,GAAMyG,KAChC,MAAO,CACL1H,EACA2a,GAAG1Z,IAAM,GACTmO,GAAEgM,SAASna,IAAM,GACjB,CAAE2C,KAAM3C,GACRmO,GACAwL,IAGJ,oBAAoB5a,EAAGiB,EAAGG,EAAGC,EAAI,CAAC,KAChC,MAAMC,EAAI,CAAE8wB,SAAS,IAAQqlB,SAAUl2C,EAAGm2C,YAAar1C,GAAMs1C,GAAGjwC,KAAK0vC,eAAgBp3C,EAAGqB,GACxF,IAAIiB,EAAIf,EACR,GAAIq2C,GAAGr2C,EAAGN,GAAI,CACZK,EAAE8wB,SAAU,EAAIhxB,EAAImC,EAAGnC,GAAKA,IAAMA,EAClC,MAAMmB,EAAImF,KAAK6vB,eAAev3B,EAAGoB,EAAGiB,GACpCC,EAAIoiB,GAAGnjB,EAAGH,EAAGmB,GAEf,IAAK,MAAMA,KAAKtB,EACdK,EAAEiB,GAAKD,EAAEC,GACX,OAAOjB,EAET,eAAetB,EAAGiB,EAAGG,EAAI,CAAC,IAAKC,GAC7B,MAAQo2C,SAAUn2C,GAAMq2C,GAAGjwC,KAAK0vC,eAAgBp3C,EAAGoB,GACnD,OAAOd,EAAEW,GAAKyjB,GAAGpjB,EAAGL,OAAG,EAAQI,GAAKC,GAGxC,SAASq2C,GAAGh4C,EAAGK,EAAGiB,GAChB,IAAIG,EAAIzB,EAAEorB,IAAI/qB,GACdoB,IAAMA,EAAoB,IAAIupB,IAAOhrB,EAAEurB,IAAIlrB,EAAGoB,IAC9C,MAAMC,EAAIJ,EAAE+kB,OACZ,IAAI1kB,EAAIF,EAAE2pB,IAAI1pB,GACd,OAAOC,IAAMA,EAAI,CACfm2C,SAAUl0B,GAAGvjB,EAAGiB,GAChBy2C,YAAaz2C,EAAEklB,OAAQ9jB,IAAOA,EAAEgX,cAAcmL,SAAS,WACtDpjB,EAAE8pB,IAAI7pB,EAAGC,IAAKA,EAEnB,MAAMu2C,GAAMl4C,GAAMW,EAAEX,IAAMM,OAAOgyB,oBAAoBtyB,GAAGgwB,OAAO,CAAC3vB,EAAGiB,IAAMjB,GAAKuD,EAAG5D,EAAEsB,KAAK,GACxF,SAAS22C,GAAGj4C,EAAGK,GACb,MAAQwlB,aAAcvkB,EAAGwkB,YAAarkB,GAAM4jB,GAAGrlB,GAC/C,IAAK,MAAM0B,KAAKrB,EAAG,CACjB,MAAMsB,EAAIL,EAAEI,GAAIE,EAAIH,EAAEC,GAAIgB,GAAKd,GAAKD,IAAM3B,EAAE0B,GAC5C,GAAIC,IAAMiC,EAAGlB,IAAMw1C,GAAGx1C,KAAOd,GAAK1B,EAAEwC,GAClC,OAAO,EAEX,OAAO,EAET,IAAIy1C,GAAK,QACT,MAAMC,GAAK,CAAC,MAAO,SAAU,OAAQ,QAAS,aAC9C,SAASC,GAAGr4C,EAAGK,GACb,MAAa,QAANL,GAAqB,WAANA,IAAqC,IAAnBo4C,GAAG91C,QAAQtC,IAAmB,MAANK,EAElE,SAASi4C,GAAGt4C,EAAGK,GACb,OAAO,SAASiB,EAAGG,GACjB,OAAOH,EAAEtB,KAAOyB,EAAEzB,GAAKsB,EAAEjB,GAAKoB,EAAEpB,GAAKiB,EAAEtB,GAAKyB,EAAEzB,IAGlD,SAASu4C,GAAGv4C,GACV,MAAMK,EAAIL,EAAE2b,MAAOra,EAAIjB,EAAEmtB,QAAQnS,UACjChb,EAAEipC,cAAc,eAAgBjoC,EAAEC,GAAKA,EAAEk3C,WAAY,CAACx4C,GAAIK,GAE5D,SAASo4C,GAAGz4C,GACV,MAAMK,EAAIL,EAAE2b,MAAOra,EAAIjB,EAAEmtB,QAAQnS,UACjCha,EAAEC,GAAKA,EAAEo3C,WAAY,CAAC14C,GAAIK,GAE5B,SAASs4C,GAAG34C,GACV,OAAOqoB,MAAoB,iBAALroB,EAAgBA,EAAIsoB,SAASswB,eAAe54C,GAAKA,GAAKA,EAAE6B,SAAW7B,EAAIA,EAAE,IAAKA,GAAKA,EAAE6pB,SAAW7pB,EAAIA,EAAE6pB,QAAS7pB,EAEvI,MAAM64C,GAAK,GAAIpoB,GAAMzwB,IACnB,MAAMK,EAAIs4C,GAAG34C,GACb,OAAOM,OAAOmzB,OAAOolB,IAAIryB,OAAQllB,GAAMA,EAAEuoB,SAAWxpB,GAAGoF,OAEzD,SAASqzC,GAAG94C,EAAGK,EAAGiB,GAChB,MAAMG,EAAInB,OAAOwB,KAAK9B,GACtB,IAAK,MAAM0B,KAAKD,EAAG,CACjB,MAAME,GAAKD,EACX,GAAIC,GAAKtB,EAAG,CACV,MAAMuB,EAAI5B,EAAE0B,UACL1B,EAAE0B,IAAKJ,EAAI,GAAKK,EAAItB,KAAOL,EAAE2B,EAAIL,GAAKM,KAInD,SAASm3C,GAAG/4C,EAAGK,EAAGiB,EAAGG,GACnB,OAAQH,GAAgB,aAAXtB,EAAEiE,KAA6BxC,EAAIpB,EAAIL,EAAf,KAEvC,MAAMg5C,GACJ,YAAY34C,EAAGiB,GACb,MAAMG,EAAIsG,KAAK0vB,OAAS,IAAI6f,GAAGh2C,GAAII,EAAIi3C,GAAGt4C,GAAIsB,EAAI8uB,GAAG/uB,GACrD,GAAIC,EACF,MAAM,IAAIykB,MACR,4CAA8CzkB,EAAEoyB,GAAK,kDAAoDpyB,EAAEkoB,OAAOkK,GAAK,oBAE3H,MAAMnyB,EAAIH,EAAEm2B,eAAen2B,EAAEw3C,oBAAqBlxC,KAAK4W,cACvD5W,KAAK6T,SAAW,IAAKna,EAAEma,UAAY05B,GAAG5zC,IAAOqG,KAAK6T,SAASs9B,aAAaz3C,GACxE,MAAMiB,EAAIqF,KAAK6T,SAASu9B,eAAez3C,EAAGE,EAAE4+B,aAAc79B,EAAID,GAAKA,EAAEmnB,OAAQjnB,EAAID,GAAKA,EAAEmc,OAAQlY,EAAIjE,GAAKA,EAAEub,MACvGnW,KAAKgsB,GAAKh0B,IAAMgI,KAAKuiB,IAAM5nB,EAAGqF,KAAK8hB,OAASlnB,EAAGoF,KAAKmW,MAAQtX,EAAGmB,KAAK+W,OAASlc,EAAGmF,KAAKqxC,SAAWx3C,EAAGmG,KAAKsxC,aAAetxC,KAAKy4B,YAAaz4B,KAAKkqC,QAAU,GAAIlqC,KAAKuxC,UAAY,GAAIvxC,KAAKwsB,aAAU,EAAQxsB,KAAKiqC,MAAQ,GAAIjqC,KAAK0W,6BAA0B,EAAQ1W,KAAK4wB,eAAY,EAAQ5wB,KAAKynB,QAAU,GAAIznB,KAAKwxC,gBAAa,EAAQxxC,KAAKyxC,WAAa,GAAIzxC,KAAK0xC,0BAAuB,EAAQ1xC,KAAK2xC,gBAAkB,GAAI3xC,KAAKsV,OAAS,GAAItV,KAAK4xC,SAAW,IAAInE,GAAMztC,KAAKmtC,SAAW,GAAIntC,KAAK6xC,eAAiB,GAAI7xC,KAAK8xC,UAAW,EAAI9xC,KAAKqxB,yBAAsB,EAAQrxB,KAAKwuB,cAAW,EAAQxuB,KAAK+xC,UAAYpxC,GAAIY,GAAMvB,KAAK+qB,OAAOxpB,GAAI1H,EAAEm4C,aAAe,GAAIhyC,KAAKgyB,aAAe,GAAI8e,GAAG9wC,KAAKgsB,IAAMhsB,KAAOrF,GAAMC,GAI3rBwtB,GAAG6pB,OAAOjyC,KAAM,WAAYwwC,IAAKpoB,GAAG6pB,OAAOjyC,KAAM,WAAY0wC,IAAK1wC,KAAKkyC,cAAelyC,KAAK8xC,UAAY9xC,KAAK+qB,UAH1GxP,QAAQwzB,MAAM,qEAKlB,kBACE,MAAQtpB,SAAWgT,YAAangC,EAAGyc,oBAAqBxb,GAAK4c,MAAOzc,EAAGqd,OAAQpd,EAAG23C,aAAc13C,GAAMoG,KACtG,OAAO9H,EAAEI,GAAKiB,GAAKK,EAAIA,EAAID,EAAID,EAAIC,EAAI,KAAOrB,EAEhD,WACE,OAAO0H,KAAK0vB,OAAOrZ,KAErB,SAAS/d,GACP0H,KAAK0vB,OAAOrZ,KAAO/d,EAErB,cACE,OAAO0H,KAAKqxC,SAEd,YAAY/4C,GACV0H,KAAK0vB,OAAOjK,QAAUntB,EAExB,cACE,OAAO0H,KAAKuhC,cAAc,cAAevhC,KAAKylB,QAAQrQ,WAAapV,KAAK+pB,SAAWzH,GAAGtiB,KAAMA,KAAKylB,QAAQ9R,kBAAmB3T,KAAKmyC,aAAcnyC,KAAKuhC,cAAc,aAAcvhC,KAElL,QACE,OAAO2W,GAAG3W,KAAK8hB,OAAQ9hB,KAAKuiB,KAAMviB,KAEpC,OACE,OAAOooB,GAAG7C,KAAKvlB,MAAOA,KAExB,OAAO1H,EAAGiB,GACR6uB,GAAGb,QAAQvnB,MAAQA,KAAKoyC,kBAAoB,CAAEj8B,MAAO7d,EAAGye,OAAQxd,GAAMyG,KAAKqyC,QAAQ/5C,EAAGiB,GAExF,QAAQjB,EAAGiB,GACT,MAAMG,EAAIsG,KAAKylB,QAAS9rB,EAAIqG,KAAK8hB,OAAQloB,EAAIF,EAAEqb,qBAAuB/U,KAAKy4B,YAAa5+B,EAAImG,KAAK6T,SAASy+B,eAAe34C,EAAGrB,EAAGiB,EAAGK,GAAIe,EAAIjB,EAAEia,kBAAoB3T,KAAK6T,SAASC,sBAAuBlZ,EAAIoF,KAAKmW,MAAQ,SAAW,SACjOnW,KAAKmW,MAAQtc,EAAEsc,MAAOnW,KAAK+W,OAASld,EAAEkd,OAAQ/W,KAAKsxC,aAAetxC,KAAKy4B,YAAanW,GAAGtiB,KAAMrF,GAAG,KAAQqF,KAAKuhC,cAAc,SAAU,CAAExlC,KAAMlC,IAAMP,EAAEI,EAAE64C,SAAU,CAACvyC,KAAMnG,GAAImG,MAAOA,KAAK8xC,UAAY9xC,KAAK+xC,UAAUn3C,IAAMoF,KAAKwyC,UAEhO,sBACE,MAAMj5C,EAAIyG,KAAKylB,QAAQnQ,QAAU,GACjC7b,EAAEF,EAAG,CAACG,EAAGC,KACPD,EAAEsyB,GAAKryB,IAGX,sBACE,MAAMrB,EAAI0H,KAAKylB,QAASlsB,EAAIjB,EAAEgd,OAAQ5b,EAAIsG,KAAKsV,OAAQ3b,EAAIpB,OAAOwB,KAAKL,GAAGuuB,OAAO,CAACpuB,EAAGc,KAAOd,EAAEc,IAAK,EAAId,GAAI,IAC3G,IAAID,EAAI,GACRL,IAAMK,EAAIA,EAAE04B,OACV/5B,OAAOwB,KAAKR,GAAGa,IAAKP,IAClB,MAAMc,EAAIpB,EAAEM,GAAIe,EAAIi0C,GAAGh1C,EAAGc,GAAIE,EAAU,MAAND,EAAWiE,EAAU,MAANjE,EACjD,MAAO,CACL6qB,QAAS9qB,EACT83C,UAAW53C,EAAI,YAAcgE,EAAI,SAAW,OAC5C6zC,MAAO73C,EAAI,eAAiBgE,EAAI,WAAa,cAG/CpF,EAAEG,EAAIC,IACR,MAAMc,EAAId,EAAE4rB,QAAS7qB,EAAID,EAAEqxB,GAAInxB,EAAIg0C,GAAGj0C,EAAGD,GAAIkE,EAAI5F,EAAE0B,EAAEuB,KAAMrC,EAAE64C,aAC7C,IAAf/3C,EAAEynC,UAAuBkO,GAAG31C,EAAEynC,SAAUvnC,KAAOy1C,GAAGz2C,EAAE44C,cAAgB93C,EAAEynC,SAAWvoC,EAAE44C,WAAY94C,EAAEiB,IAAK,EACvG,IAAI2G,EAAI,KACR,GAAI3G,KAAKlB,GAAKA,EAAEkB,GAAGsB,OAAS2C,EAC1B0C,EAAI7H,EAAEkB,OACH,CACH,MAAM6G,EAAIukC,GAAG2M,SAAS9zC,GACtB0C,EAAI,IAAIE,EAAE,CACRuqB,GAAIpxB,EACJsB,KAAM2C,EACN0jB,IAAKviB,KAAKuiB,IACV3O,MAAO5T,OACLtG,EAAE6H,EAAEyqB,IAAMzqB,EAEhBA,EAAEqxC,KAAKj4C,EAAGrC,KACRmB,EAAEE,EAAG,CAACE,EAAGc,KACXd,UAAYH,EAAEiB,KACZlB,EAAEC,EAAIG,IACRwN,GAAEijB,UAAUtqB,KAAMnG,EAAGA,EAAE4rB,SAAUpe,GAAEwrC,OAAO7yC,KAAMnG,KAGpD,kBACE,MAAMvB,EAAI0H,KAAKuxC,UAAWh4C,EAAIyG,KAAKqW,KAAK3C,SAAS5Z,OAAQJ,EAAIpB,EAAEwB,OAC/D,GAAIxB,EAAEmF,KAAK,CAAC9D,EAAGC,IAAMD,EAAEO,MAAQN,EAAEM,OAAQR,EAAIH,EAAG,CAC9C,IAAK,IAAII,EAAIJ,EAAGI,EAAID,IAAKC,EACvBqG,KAAK8yC,oBAAoBn5C,GAC3BrB,EAAE4H,OAAO3G,EAAGG,EAAIH,GAElByG,KAAK2xC,gBAAkBr5C,EAAEK,MAAM,GAAG8E,KAAK8yC,GAAG,QAAS,UAErD,8BACE,MAAQgB,UAAWj5C,EAAG+d,MAAQ3C,SAAUna,IAAQyG,KAChD1H,EAAEwB,OAASP,EAAEO,eAAiBkG,KAAKwsB,QAASl0B,EAAEyH,QAAQ,CAACrG,EAAGC,KACX,IAA7CJ,EAAEklB,OAAQ7kB,GAAMA,IAAMF,EAAEq/B,UAAUj/B,QAAgBkG,KAAK8yC,oBAAoBn5C,KAG/E,2BACE,MAAMrB,EAAI,GAAIiB,EAAIyG,KAAKqW,KAAK3C,SAC5B,IAAIha,EAAGC,EACP,IAAKqG,KAAK+yC,8BAA+Br5C,EAAI,EAAGC,EAAIJ,EAAEO,OAAQJ,EAAIC,EAAGD,IAAK,CACxE,MAAME,EAAIL,EAAEG,GACZ,IAAIG,EAAImG,KAAKqvB,eAAe31B,GAC5B,MAAMiB,EAAIf,EAAEsC,MAAQ8D,KAAK0vB,OAAOxzB,KAChC,GAAIrC,EAAEqC,MAAQrC,EAAEqC,OAASvB,IAAMqF,KAAK8yC,oBAAoBp5C,GAAIG,EAAImG,KAAKqvB,eAAe31B,IAAKG,EAAEqC,KAAOvB,EAAGd,EAAE6a,UAAY9a,EAAE8a,WAAa+5B,GAAG9zC,EAAGqF,KAAKylB,SAAU5rB,EAAEm5C,MAAQp5C,EAAEo5C,OAAS,EAAGn5C,EAAEK,MAAQR,EAAGG,EAAE22B,MAAQ,GAAK52B,EAAE42B,MAAO32B,EAAEqwB,QAAUlqB,KAAKg3B,iBAAiBt9B,GAAIG,EAAEyzB,WAC1PzzB,EAAEyzB,WAAW2lB,YAAYv5C,GAAIG,EAAEyzB,WAAWqB,iBACvC,CACH,MAAM/zB,EAAIorC,GAAGkN,cAAcv4C,IAAM60B,mBAAoB30B,EAAGm2B,gBAAiBnyB,GAAM6I,GAAEgM,SAAS/Y,GAC1FpC,OAAO+J,OAAO1H,EAAEpC,UAAW,CACzBw4B,gBAAiBgV,GAAGE,WAAWrnC,GAC/B2wB,mBAAoB30B,GAAKmrC,GAAGE,WAAWrrC,KACrChB,EAAEyzB,WAAa,IAAI1yB,EAAEoF,KAAMtG,GAAIpB,EAAEkD,KAAK3B,EAAEyzB,aAGhD,OAAOttB,KAAKmzC,kBAAmB76C,EAEjC,iBACEmB,EAAEuG,KAAKqW,KAAK3C,SAAU,CAACpb,EAAGiB,KACxByG,KAAKqvB,eAAe91B,GAAG+zB,WAAW8lB,SACjCpzC,MAEL,QACEA,KAAKqzC,iBAAkBrzC,KAAKuhC,cAAc,SAE5C,OAAOjpC,GACL,MAAMiB,EAAIyG,KAAK0vB,OACfn2B,EAAEwxB,SACF,MAAMrxB,EAAIsG,KAAKqxC,SAAW93C,EAAEs2B,eAAet2B,EAAE23C,oBAAqBlxC,KAAK4W,cAAejd,EAAIqG,KAAKqxB,qBAAuB33B,EAAE4Z,UACxH,GAAItT,KAAKszC,gBAAiBtzC,KAAKuzC,sBAAuBvzC,KAAKwzC,uBAAwBxzC,KAAK4xC,SAAS6B,cAAkF,IAApEzzC,KAAKuhC,cAAc,eAAgB,CAAE3sB,KAAMtc,EAAGu1C,YAAY,IACvK,OACF,MAAMj0C,EAAIoG,KAAK0zC,2BACf1zC,KAAKuhC,cAAc,wBACnB,IAAI1nC,EAAI,EACR,IAAK,IAAIgB,EAAI,EAAGgE,EAAImB,KAAKqW,KAAK3C,SAAS5Z,OAAQe,EAAIgE,EAAGhE,IAAK,CACzD,MAAQyyB,WAAY/rB,GAAMvB,KAAKqvB,eAAex0B,GAAI4G,GAAK9H,IAAuB,IAAlBC,EAAEW,QAAQgH,GACtEA,EAAEoyC,sBAAsBlyC,GAAI5H,EAAIuC,KAAK6B,KAAKsD,EAAEovB,iBAAkB92B,GAEhEA,EAAImG,KAAK4zC,YAAcl6C,EAAEywC,OAAOH,YAAcnwC,EAAI,EAAGmG,KAAK6zC,cAAch6C,GAAIF,GAAKF,EAAEG,EAAIiB,IACrFA,EAAEu4C,UACApzC,KAAK8zC,gBAAgBx7C,GAAI0H,KAAKuhC,cAAc,cAAe,CAAE3sB,KAAMtc,IAAM0H,KAAKkqC,QAAQzsC,KAAK8yC,GAAG,IAAK,SACvG,MAAQ9oB,QAAS9sB,EAAG62C,WAAY52C,GAAMoF,KACtCpF,EAAIoF,KAAK+zC,cAAcn5C,GAAG,GAAMD,EAAEb,QAAUkG,KAAKg0C,mBAAmBr5C,EAAGA,GAAG,GAAKqF,KAAKwyC,SAEtF,gBACE/4C,EAAEuG,KAAKsV,OAAShd,IACd+O,GAAE4sC,UAAUj0C,KAAM1H,KAChB0H,KAAKk0C,sBAAuBl0C,KAAKm0C,sBAEvC,sBACE,MAAM77C,EAAI0H,KAAKylB,QAASlsB,EAAI,IAAI6G,IAAI7H,OAAOwB,KAAKiG,KAAKyxC,aAAc/3C,EAAI,IAAI0G,IAAI9H,EAAE0b,UAC/ElY,EAAGvC,EAAGG,MAAQsG,KAAK0xC,uBAAyBp5C,EAAE8c,cAAgBpV,KAAKo0C,eAAgBp0C,KAAKmyC,cAE5F,uBACE,MAAQN,eAAgBv5C,GAAM0H,KAAMzG,EAAIyG,KAAKq0C,0BAA4B,GACzE,IAAK,MAAQC,OAAQ56C,EAAGkI,MAAOjI,EAAGkI,MAAOjI,KAAOL,EAAG,CACjD,MAAMM,EAAU,oBAANH,GAA2BE,EAAIA,EACzCm3C,GAAGz4C,EAAGqB,EAAGE,IAGb,yBACE,MAAMvB,EAAI0H,KAAKgyB,aACf,IAAK15B,IAAMA,EAAEwB,OACX,OACFkG,KAAKgyB,aAAe,GACpB,MAAMz4B,EAAIyG,KAAKqW,KAAK3C,SAAS5Z,OAAQJ,EAAKE,GAAM,IAAIwG,IAClD9H,EAAEmmB,OAAQ5kB,GAAMA,EAAE,KAAOD,GAAGQ,IAAI,CAACP,EAAGc,IAAMA,EAAI,IAAMd,EAAEqG,OAAO,GAAGoe,KAAK,OACpE3kB,EAAID,EAAE,GACT,IAAK,IAAIE,EAAI,EAAGA,EAAIL,EAAGK,IACrB,IAAKkC,EAAGnC,EAAGD,EAAEE,IACX,OACJ,OAAOxB,MAAMkI,KAAK3G,GAAGS,IAAKR,GAAMA,EAAE2B,MAAM,MAAMnB,IAAKR,IAAM,CAAG06C,OAAQ16C,EAAE,GAAIgI,OAAQhI,EAAE,GAAIiI,OAAQjI,EAAE,MAEpG,cAActB,GACZ,IAA+D,IAA3D0H,KAAKuhC,cAAc,eAAgB,CAAEsM,YAAY,IACnD,OACFxmC,GAAE0jB,OAAO/qB,KAAMA,KAAKmW,MAAOnW,KAAK+W,OAAQze,GACxC,MAAMiB,EAAIyG,KAAK4wB,UAAWl3B,EAAIH,EAAE4c,OAAS,GAAK5c,EAAEwd,QAAU,EAC1D/W,KAAKkqC,QAAU,GAAIzwC,EAAEuG,KAAKiqC,MAAQtwC,IAChCD,GAAoB,cAAfC,EAAEyoC,WAA6BzoC,EAAE2wB,WAAa3wB,EAAE2wB,YAAatqB,KAAKkqC,QAAQ1uC,QAAQ7B,EAAEuwC,aACxFlqC,MAAOA,KAAKkqC,QAAQnqC,QAAQ,CAACpG,EAAGC,KACjCD,EAAE46C,KAAO36C,IACPoG,KAAKuhC,cAAc,eAEzB,gBAAgBjpC,GACd,IAAgF,IAA5E0H,KAAKuhC,cAAc,uBAAwB,CAAE3sB,KAAMtc,EAAGu1C,YAAY,IAAc,CAClF,IAAK,IAAIt0C,EAAI,EAAGG,EAAIsG,KAAKqW,KAAK3C,SAAS5Z,OAAQP,EAAIG,IAAKH,EACtDyG,KAAKqvB,eAAe91B,GAAG+zB,WAAWhD,YACpC,IAAK,IAAI/wB,EAAI,EAAGG,EAAIsG,KAAKqW,KAAK3C,SAAS5Z,OAAQP,EAAIG,IAAKH,EACtDyG,KAAKw0C,eAAej7C,EAAGsC,EAAGvD,GAAKA,EAAE,CAAE2B,aAAcV,IAAOjB,GAC1D0H,KAAKuhC,cAAc,sBAAuB,CAAE3sB,KAAMtc,KAGtD,eAAeA,EAAGiB,GAChB,MAAMG,EAAIsG,KAAKqvB,eAAe/2B,GAAIqB,EAAI,CAAE86C,KAAM/6C,EAAGQ,MAAO5B,EAAGsc,KAAMrb,EAAGs0C,YAAY,IAC/B,IAAjD7tC,KAAKuhC,cAAc,sBAAuB5nC,KAAcD,EAAE4zB,WAAWnG,QAAQ5tB,GAAII,EAAEk0C,YAAa,EAAI7tC,KAAKuhC,cAAc,qBAAsB5nC,IAE/I,UAC6D,IAA3DqG,KAAKuhC,cAAc,eAAgB,CAAEsM,YAAY,MAAiBzlB,GAAGpsB,IAAIgE,MAAQA,KAAK8xC,WAAa1pB,GAAGb,QAAQvnB,OAASooB,GAAGxmB,MAAM5B,OAASA,KAAK4nB,OAAQ4oB,GAAG,CAAE58B,MAAO5T,SAEpK,OACE,IAAI1H,EACJ,GAAI0H,KAAKoyC,kBAAmB,CAC1B,MAAQj8B,MAAOzc,EAAGqd,OAAQpd,GAAMqG,KAAKoyC,kBACrCpyC,KAAKqyC,QAAQ34C,EAAGC,GAAIqG,KAAKoyC,kBAAoB,KAE/C,GAAIpyC,KAAK4vC,QAAS5vC,KAAKmW,OAAS,GAAKnW,KAAK+W,QAAU,IAA8D,IAAzD/W,KAAKuhC,cAAc,aAAc,CAAEsM,YAAY,IACtG,OACF,MAAMt0C,EAAIyG,KAAKkqC,QACf,IAAK5xC,EAAI,EAAGA,EAAIiB,EAAEO,QAAUP,EAAEjB,GAAGH,GAAK,IAAKG,EACzCiB,EAAEjB,GAAGsvB,KAAK5nB,KAAK4wB,WACjB,IAAK5wB,KAAK00C,gBAAiBp8C,EAAIiB,EAAEO,SAAUxB,EACzCiB,EAAEjB,GAAGsvB,KAAK5nB,KAAK4wB,WACjB5wB,KAAKuhC,cAAc,aAErB,uBAAuBjpC,GACrB,MAAMiB,EAAIyG,KAAK2xC,gBAAiBj4C,EAAI,GACpC,IAAIC,EAAGC,EACP,IAAKD,EAAI,EAAGC,EAAIL,EAAEO,OAAQH,EAAIC,IAAKD,EAAG,CACpC,MAAME,EAAIN,EAAEI,KACVrB,GAAKuB,EAAEqwB,UAAYxwB,EAAE8B,KAAK3B,GAE9B,OAAOH,EAET,+BACE,OAAOsG,KAAKwrB,wBAAuB,GAErC,gBACE,IAAqE,IAAjExrB,KAAKuhC,cAAc,qBAAsB,CAAEsM,YAAY,IACzD,OACF,MAAMv1C,EAAI0H,KAAKglC,+BACf,IAAK,IAAIzrC,EAAIjB,EAAEwB,OAAS,EAAGP,GAAK,IAAKA,EACnCyG,KAAK20C,aAAar8C,EAAEiB,IACtByG,KAAKuhC,cAAc,qBAErB,aAAajpC,GACX,MAAMiB,EAAIyG,KAAKuiB,IAAK7oB,EAAIpB,EAAEo4B,MAAO/2B,GAAKD,EAAE4xB,SAAU1xB,EAAIoG,KAAK4wB,UAAW/2B,EAAI,CACxE46C,KAAMn8C,EACN4B,MAAO5B,EAAE4B,MACT2zC,YAAY,IAEiC,IAA/C7tC,KAAKuhC,cAAc,oBAAqB1nC,KAAcF,GAAK+O,GAAGnP,EAAG,CAC/D6e,MAAiB,IAAX1e,EAAE0e,KAAc,EAAIxe,EAAEwe,KAAO1e,EAAE0e,KACrCC,OAAmB,IAAZ3e,EAAE2e,MAAerY,KAAKmW,MAAQvc,EAAEye,MAAQ3e,EAAE2e,MACjDC,KAAe,IAAV5e,EAAE4e,IAAa,EAAI1e,EAAE0e,IAAM5e,EAAE4e,IAClCC,QAAqB,IAAb7e,EAAE6e,OAAgBvY,KAAK+W,OAASnd,EAAE2e,OAAS7e,EAAE6e,SACnDjgB,EAAEg1B,WAAW1F,OAAQjuB,GAAK8e,GAAGlf,GAAIM,EAAEg0C,YAAa,EAAI7tC,KAAKuhC,cAAc,mBAAoB1nC,IAEjG,cAAcvB,GACZ,OAAO6f,GAAG7f,EAAG0H,KAAK4wB,UAAW5wB,KAAK4zC,aAEpC,0BAA0Bt7C,EAAGiB,EAAGG,EAAGC,GACjC,MAAMC,EAAIiuC,GAAGE,MAAMxuC,GACnB,MAAmB,mBAALK,EAAkBA,EAAEoG,KAAM1H,EAAGoB,EAAGC,GAAK,GAErD,eAAerB,GACb,MAAMiB,EAAIyG,KAAKqW,KAAK3C,SAASpb,GAAIoB,EAAIsG,KAAKuxC,UAC1C,IAAI53C,EAAID,EAAE+kB,OAAQ7kB,GAAMA,GAAKA,EAAEm/B,WAAax/B,GAAGmE,MAC/C,OAAO/D,IAAMA,EAAI,CACfuC,KAAM,KACNma,KAAM,GACN0W,QAAS,KACTO,WAAY,KACZI,OAAQ,KACRoB,QAAS,KACTC,QAAS,KACTikB,MAAOz5C,GAAKA,EAAEy5C,OAAS,EACvB94C,MAAO5B,EACPygC,SAAUx/B,EACV6H,QAAS,GACTF,SAAS,GACRxH,EAAE8B,KAAK7B,IAAKA,EAEjB,aACE,OAAOqG,KAAKwuB,WAAaxuB,KAAKwuB,SAAW5S,GAAG,KAAM,CAAEhI,MAAO5T,KAAM9D,KAAM,WAEzE,yBACE,OAAO8D,KAAKglC,+BAA+BlrC,OAE7C,iBAAiBxB,GACf,MAAMiB,EAAIyG,KAAKqW,KAAK3C,SAASpb,GAC7B,IAAKiB,EACH,OAAO,EACT,MAAMG,EAAIsG,KAAKqvB,eAAe/2B,GAC9B,MAA0B,kBAAZoB,EAAEg0B,QAAuBh0B,EAAEg0B,QAAUn0B,EAAEm0B,OAEvD,qBAAqBp1B,EAAGiB,GACtB,MAAMG,EAAIsG,KAAKqvB,eAAe/2B,GAC9BoB,EAAEg0B,QAAUn0B,EAEd,qBAAqBjB,GACnB0H,KAAK6xC,eAAev5C,IAAM0H,KAAK6xC,eAAev5C,GAEhD,kBAAkBA,GAChB,OAAQ0H,KAAK6xC,eAAev5C,GAE9B,kBAAkBA,EAAGiB,EAAGG,GACtB,MAAMC,EAAID,EAAI,OAAS,OAAQE,EAAIoG,KAAKqvB,eAAe/2B,GAAIuB,EAAID,EAAE0zB,WAAWoE,wBAAmB,EAAQ/3B,GACvGiC,EAAGrC,IAAMK,EAAEyc,KAAK9c,GAAGm0B,QAAUh0B,EAAGsG,KAAK+qB,WAAa/qB,KAAK40C,qBAAqBt8C,EAAGoB,GAAIG,EAAEkxB,OAAOnxB,EAAG,CAAEswB,QAASxwB,IAAMsG,KAAK+qB,OAAQpwB,GAAMA,EAAEV,eAAiB3B,EAAIqB,OAAI,IAEhK,KAAKrB,EAAGiB,GACNyG,KAAK60C,kBAAkBv8C,EAAGiB,GAAG,GAE/B,KAAKjB,EAAGiB,GACNyG,KAAK60C,kBAAkBv8C,EAAGiB,GAAG,GAE/B,oBAAoBjB,GAClB,MAAMiB,EAAIyG,KAAKuxC,UAAUj5C,GACzBiB,GAAKA,EAAE+zB,YAAc/zB,EAAE+zB,WAAWwnB,kBAAmB90C,KAAKuxC,UAAUj5C,GAEtE,QACE,IAAIA,EAAGiB,EACP,IAAKyG,KAAKulB,OAAQ6C,GAAG2sB,OAAO/0C,MAAO1H,EAAI,EAAGiB,EAAIyG,KAAKqW,KAAK3C,SAAS5Z,OAAQxB,EAAIiB,IAAKjB,EAChF0H,KAAK8yC,oBAAoBx6C,GAE7B,UACE0H,KAAKuhC,cAAc,iBACnB,MAAQzf,OAAQxpB,EAAGiqB,IAAKhpB,GAAMyG,KAC9BA,KAAKg1C,QAASh1C,KAAK0vB,OAAOigB,aAAcr3C,IAAM0H,KAAKo0C,eAAgBz9B,GAAGre,EAAGiB,GAAIyG,KAAK6T,SAASohC,eAAe17C,GAAIyG,KAAK8hB,OAAS,KAAM9hB,KAAKuiB,IAAM,MAAOviB,KAAKuhC,cAAc,kBAAmBuP,GAAG9wC,KAAKgsB,IAAKhsB,KAAKuhC,cAAc,gBAE5N,iBAAiBjpC,GACf,OAAO0H,KAAK8hB,OAAOozB,aAAa58C,GAElC,aACE0H,KAAKm1C,iBAAkBn1C,KAAKylB,QAAQrQ,WAAapV,KAAKo1C,uBAAyBp1C,KAAK8xC,UAAW,EAEjG,iBACE,MAAMx5C,EAAI0H,KAAKyxC,WAAYl4C,EAAIyG,KAAK6T,SAAUna,EAAI,CAACE,EAAGC,KACpDN,EAAEmpB,iBAAiB1iB,KAAMpG,EAAGC,GAAIvB,EAAEsB,GAAKC,GACtCF,EAAI,CAACC,EAAGC,EAAGc,KACZf,EAAE0nB,QAAUznB,EAAGD,EAAE2nB,QAAU5mB,EAAGqF,KAAK+zC,cAAcn6C,IAEnDH,EAAEuG,KAAKylB,QAAQzR,OAASpa,GAAMF,EAAEE,EAAGD,IAErC,uBACEqG,KAAK0xC,uBAAyB1xC,KAAK0xC,qBAAuB,IAC1D,MAAMp5C,EAAI0H,KAAK0xC,qBAAsBn4C,EAAIyG,KAAK6T,SAAUna,EAAI,CAACkB,EAAGC,KAC9DtB,EAAEmpB,iBAAiB1iB,KAAMpF,EAAGC,GAAIvC,EAAEsC,GAAKC,GACtClB,EAAI,CAACiB,EAAGC,KACTvC,EAAEsC,KAAOrB,EAAEopB,oBAAoB3iB,KAAMpF,EAAGC,UAAWvC,EAAEsC,KACpDhB,EAAI,CAACgB,EAAGC,KACTmF,KAAK8hB,QAAU9hB,KAAK+pB,OAAOnvB,EAAGC,IAEhC,IAAIhB,EACJ,MAAMc,EAAI,KACRhB,EAAE,SAAUgB,GAAIqF,KAAK8xC,UAAW,EAAI9xC,KAAK+pB,SAAUrwB,EAAE,SAAUE,GAAIF,EAAE,SAAUG,IAEjFA,EAAI,KACFmG,KAAK8xC,UAAW,EAAIn4C,EAAE,SAAUC,GAAIoG,KAAKg1C,QAASh1C,KAAKqyC,QAAQ,EAAG,GAAI34C,EAAE,SAAUiB,IACjFpB,EAAE87C,WAAWr1C,KAAK8hB,QAAUnnB,IAAMd,IAEvC,eACEJ,EAAEuG,KAAKyxC,WAAY,CAACn5C,EAAGiB,KACrByG,KAAK6T,SAAS8O,oBAAoB3iB,KAAMzG,EAAGjB,KACzC0H,KAAKyxC,WAAa,GAAIh4C,EAAEuG,KAAK0xC,qBAAsB,CAACp5C,EAAGiB,KACzDyG,KAAK6T,SAAS8O,oBAAoB3iB,KAAMzG,EAAGjB,KACzC0H,KAAK0xC,0BAAuB,EAElC,iBAAiBp5C,EAAGiB,EAAGG,GACrB,MAAMC,EAAID,EAAI,MAAQ,SACtB,IAAIE,EAAGC,EAAGc,EAAGC,EACb,IAAW,YAANrB,IAAoBK,EAAIoG,KAAKqvB,eAAe/2B,EAAE,GAAG2B,cAAeL,EAAE0zB,WAAW,IAAM3zB,EAAI,wBAAyBgB,EAAI,EAAGC,EAAItC,EAAEwB,OAAQa,EAAIC,IAAKD,EAAG,CACpJd,EAAIvB,EAAEqC,GACN,MAAME,EAAIhB,GAAKmG,KAAKqvB,eAAex1B,EAAEI,cAAcqzB,WACnDzyB,GAAKA,EAAElB,EAAI,cAAcE,EAAEuzB,QAASvzB,EAAEI,aAAcJ,EAAEK,QAG1D,oBACE,OAAO8F,KAAKynB,SAAW,GAEzB,kBAAkBnvB,GAChB,MAAMiB,EAAIyG,KAAKynB,SAAW,GAAI/tB,EAAIpB,EAAE8B,IAAI,EAAGH,aAAcL,EAAGM,MAAOL,MACjE,MAAMc,EAAIqF,KAAKqvB,eAAez1B,GAC9B,IAAKe,EACH,MAAM,IAAI0jB,MAAM,6BAA+BzkB,GACjD,MAAO,CACLK,aAAcL,EACdwzB,QAASzyB,EAAE0b,KAAKxc,GAChBK,MAAOL,MAGVG,EAAGN,EAAGH,KAAOyG,KAAKynB,QAAU/tB,EAAGsG,KAAKwxC,WAAa,KAAMxxC,KAAKg0C,mBAAmBt6C,EAAGH,IAErF,cAAcjB,EAAGiB,EAAGG,GAClB,OAAOsG,KAAK4xC,SAAS0D,OAAOt1C,KAAM1H,EAAGiB,EAAGG,GAE1C,mBAAmBpB,EAAGiB,EAAGG,GACvB,MAAMC,EAAIqG,KAAKylB,QAAQnR,MAAO1a,EAAI,CAACgB,EAAGC,IAAMD,EAAE6jB,OAAQ5f,IAAOhE,EAAEqzC,KAAM3sC,GAAM1C,EAAE5E,eAAiBsH,EAAEtH,cAAgB4E,EAAE3E,QAAUqH,EAAErH,QAASL,EAAID,EAAEL,EAAGjB,GAAIqC,EAAIjB,EAAIpB,EAAIsB,EAAEtB,EAAGiB,GACrKM,EAAEC,QAAUkG,KAAKu1C,iBAAiB17C,EAAGF,EAAEib,MAAM,GAAKja,EAAEb,QAAUH,EAAEib,MAAQ5U,KAAKu1C,iBAAiB56C,EAAGhB,EAAEib,MAAM,GAE3G,cAActc,EAAGiB,GACf,MAAMG,EAAI,CACR87C,MAAOl9C,EACPm9C,OAAQl8C,EACRs0C,YAAY,EACZ6H,YAAa11C,KAAKsnC,cAAchvC,IAC/BqB,EAAKE,IAAOA,EAAE4rB,QAAQzR,QAAUhU,KAAKylB,QAAQzR,QAAQ8I,SAASxkB,EAAEozC,OAAOxvC,MAC1E,IAAgD,IAA5C8D,KAAKuhC,cAAc,cAAe7nC,EAAGC,GACvC,OACF,MAAMC,EAAIoG,KAAK21C,aAAar9C,EAAGiB,EAAGG,EAAEg8C,aACpC,OAAOh8C,EAAEm0C,YAAa,EAAI7tC,KAAKuhC,cAAc,aAAc7nC,EAAGC,IAAKC,GAAKF,EAAEk8C,UAAY51C,KAAKwyC,SAAUxyC,KAEvG,aAAa1H,EAAGiB,EAAGG,GACjB,MAAQ+tB,QAAS9tB,EAAI,GAAI8rB,QAAS7rB,GAAMoG,KAAMnG,EAAIN,EAAGoB,EAAIqF,KAAK61C,mBAAmBv9C,EAAGqB,EAAGD,EAAGG,GAAIe,EAAIqB,EAAG3D,GAAIuC,EAAIm2C,GAAG14C,EAAG0H,KAAKwxC,WAAY93C,EAAGkB,GACvIlB,IAAMsG,KAAKwxC,WAAa,KAAMl4C,EAAEM,EAAEob,QAAS,CAAC1c,EAAGqC,EAAGqF,MAAOA,MAAOpF,GAAKtB,EAAEM,EAAEqb,QAAS,CAAC3c,EAAGqC,EAAGqF,MAAOA,OAChG,MAAMnB,GAAK7E,EAAGW,EAAGhB,GACjB,OAAQkF,GAAKtF,KAAOyG,KAAKynB,QAAU9sB,EAAGqF,KAAKg0C,mBAAmBr5C,EAAGhB,EAAGJ,IAAKyG,KAAKwxC,WAAa32C,EAAGgE,EAEhG,mBAAmBvG,EAAGiB,EAAGG,EAAGC,GAC1B,GAAe,aAAXrB,EAAE4D,KACJ,MAAO,GACT,IAAKxC,EACH,OAAOH,EACT,MAAMK,EAAIoG,KAAKylB,QAAQnR,MACvB,OAAOtU,KAAK81C,0BAA0Bx9C,EAAGsB,EAAEgb,KAAMhb,EAAGD,IAGxD,MAAMo8C,GAAK,IAAMt8C,EAAEw3C,GAAG+E,UAAY/9C,GAAMA,EAAE25C,SAAS6B,cAAewC,IAAK,EAuCvE,SAASC,GAAGj+C,EAAGK,EAAGiB,GAChB,MAAQ0+B,WAAYv+B,EAAGy8C,YAAax8C,EAAGuB,EAAGtB,EAAGuB,EAAGtB,EAAGi9B,YAAan8B,EAAGk8B,YAAaj8B,GAAMtC,EACtF,IAAIuC,EAAIlB,EAAIgB,EACZ1C,EAAEuf,YAAavf,EAAEyf,IAAI9d,EAAGC,EAAGc,EAAGjB,EAAImB,EAAGtB,EAAIsB,GAAID,EAAIjB,GAAKkB,EAAIlB,EAAIiB,EAAG3C,EAAEyf,IAAI9d,EAAGC,EAAGe,EAAGrB,EAAIsB,EAAGnB,EAAImB,GAAG,IAAO5C,EAAEyf,IAAI9d,EAAGC,EAAGF,EAAGJ,EAAIoD,EAAGjD,EAAIiD,GAAI1E,EAAE0f,YAAa1f,EAAEugB,OAEtJ,SAAS49B,GAAGn+C,GACV,OAAOkjB,GAAGljB,EAAG,CAAC,aAAc,WAAY,aAAc,aAExD,SAASo+C,GAAGp+C,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAIy8C,GAAGn+C,EAAEwtB,QAAQ6wB,cAAe18C,GAAKL,EAAIjB,GAAK,EAAGuB,EAAIuC,KAAK4B,IAAIpE,EAAGF,EAAIpB,EAAI,GAAIqC,EAAKC,IACtF,MAAMC,GAAKtB,EAAI6C,KAAK4B,IAAIpE,EAAGgB,IAAMlB,EAAI,EACrC,OAAOoF,GAAElE,EAAG,EAAGwB,KAAK4B,IAAIpE,EAAGiB,KAE7B,MAAO,CACL07C,WAAY57C,EAAEhB,EAAE48C,YAChBC,SAAU77C,EAAEhB,EAAE68C,UACdC,WAAY33C,GAAEnF,EAAE88C,WAAY,EAAG58C,GAC/B68C,SAAU53C,GAAEnF,EAAE+8C,SAAU,EAAG78C,IAG/B,SAAS88C,GAAG1+C,EAAGK,EAAGiB,EAAGG,GACnB,MAAO,CACLwB,EAAG3B,EAAItB,EAAImE,KAAKsH,IAAIpL,GACpB6C,EAAGzB,EAAIzB,EAAImE,KAAKqG,IAAInK,IAGxB,SAASs+C,GAAG3+C,EAAGK,EAAGiB,EAAGG,EAAGC,EAAGC,GACzB,MAAQsB,EAAGrB,EAAGsB,EAAGR,EAAGs9B,WAAYr9B,EAAGu7C,YAAat7C,EAAGg8B,YAAah4B,GAAMvG,EAAGiJ,EAAInF,KAAK6B,IAAI3F,EAAEw+B,YAAcp9B,EAAIH,EAAIsB,EAAG,GAAI4G,EAAI5C,EAAI,EAAIA,EAAInF,EAAIH,EAAIsB,EAAI,EACjJ,IAAI8K,EAAI,EACR,MAAMM,EAAItM,EAAIiB,EACd,GAAIlB,EAAG,CACL,MAAM+N,EAAI5I,EAAI,EAAIA,EAAInF,EAAI,EAAGkpC,EAAIrhC,EAAI,EAAIA,EAAI7H,EAAI,EAAG4N,GAAKG,EAAIm7B,GAAK,EAAGE,EAAW,IAANx7B,EAAUrB,EAAIqB,GAAKA,EAAI5N,GAAKuM,EACtGN,GAAKM,EAAI68B,GAAM,EAEjB,MAAMhe,EAAI1oB,KAAK6B,IAAI,KAAMgI,EAAI1E,EAAIhI,EAAI4C,GAAKoF,EAAGwjB,GAAK9e,EAAI6e,GAAK,EAAGpf,EAAI9K,EAAImqB,EAAIpf,EAAGzK,EAAIvB,EAAIorB,EAAIpf,GAAK4wC,WAAY1xB,EAAG2xB,SAAUr7C,EAAGs7C,WAAYzxB,EAAG0xB,SAAU/uC,GAAM0uC,GAAG/9C,EAAGmJ,EAAGF,EAAGrG,EAAIwK,GAAIuf,EAAI1jB,EAAIsjB,EAAGtd,EAAIhG,EAAIpG,EAAGqf,EAAI9U,EAAImf,EAAII,EAAGrd,EAAI1M,EAAIC,EAAIoM,EAAGC,EAAI/F,EAAIujB,EAAGvf,EAAIhE,EAAIkG,EAAGI,EAAIrC,EAAIsf,EAAIxd,EAAGq7B,EAAI3nC,EAAIyM,EAAIlC,EAClR,GAAIxN,EAAEuf,YAAa5d,EAAG,CACpB,GAAI3B,EAAEyf,IAAI7d,EAAGc,EAAG4G,EAAGiZ,EAAG5S,GAAIzM,EAAI,EAAG,CAC/B,MAAMmM,EAAIqvC,GAAGpvC,EAAGK,EAAG/N,EAAGc,GACtB1C,EAAEyf,IAAIpQ,EAAEpM,EAAGoM,EAAEnM,EAAGA,EAAGyM,EAAG1M,EAAIyB,GAE5B,MAAM8K,EAAIkvC,GAAGlxC,EAAGvK,EAAGrB,EAAGc,GACtB,GAAI1C,EAAE4f,OAAOpQ,EAAEvM,EAAGuM,EAAEtM,GAAIwM,EAAI,EAAG,CAC7B,MAAML,EAAIqvC,GAAGlxC,EAAGo9B,EAAGhpC,EAAGc,GACtB1C,EAAEyf,IAAIpQ,EAAEpM,EAAGoM,EAAEnM,EAAGwM,EAAGzM,EAAIyB,EAAGkmC,EAAIzmC,KAAKC,IAErC,GAAIpE,EAAEyf,IAAI7d,EAAGc,EAAG8G,EAAGvG,EAAIyM,EAAIlG,EAAGiE,EAAIsf,EAAIvjB,GAAG,GAAKujB,EAAI,EAAG,CACnD,MAAM1d,EAAIqvC,GAAGnvC,EAAGO,EAAGlO,EAAGc,GACtB1C,EAAEyf,IAAIpQ,EAAEpM,EAAGoM,EAAEnM,EAAG6pB,EAAGjd,EAAI3L,KAAKC,GAAIqJ,EAAI/I,GAEtC,MAAMimC,EAAI+T,GAAG1xB,EAAGvf,EAAG7L,EAAGc,GACtB,GAAI1C,EAAE4f,OAAO+qB,EAAE1nC,EAAG0nC,EAAEznC,GAAI0pB,EAAI,EAAG,CAC7B,MAAMvd,EAAIqvC,GAAG1xB,EAAGzK,EAAG3gB,EAAGc,GACtB1C,EAAEyf,IAAIpQ,EAAEpM,EAAGoM,EAAEnM,EAAG0pB,EAAGnf,EAAI/I,EAAG6d,QAEvB,CACLviB,EAAE2f,OAAO/d,EAAGc,GACZ,MAAM8M,EAAIrL,KAAKsH,IAAI8W,GAAKjZ,EAAI1H,EAAG+oC,EAAIxmC,KAAKqG,IAAI+X,GAAKjZ,EAAI5G,EACrD1C,EAAE4f,OAAOpQ,EAAGm7B,GACZ,MAAMt7B,EAAIlL,KAAKsH,IAAIkE,GAAKrG,EAAI1H,EAAGipC,EAAK1mC,KAAKqG,IAAImF,GAAKrG,EAAI5G,EACtD1C,EAAE4f,OAAOvQ,EAAGw7B,GAEd7qC,EAAE0f,YAEJ,SAASk/B,GAAG5+C,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,MAAQm9C,YAAal9C,EAAGq+B,WAAYp+B,EAAGk9B,cAAep8B,GAAMrC,EAC5D,IAAIsC,EAAItC,EAAE4/B,SACV,GAAIt+B,EAAG,CACLg9C,GAAG3+C,EAAGK,EAAGiB,EAAGG,EAAGG,EAAIyC,EAAG3C,GACtB,IAAK,IAAIkB,EAAI,EAAGA,EAAIjB,IAAKiB,EACvB5C,EAAE+f,OACJpa,MAAMjD,KAAOC,EAAIf,EAAIc,EAAI2B,EAAG3B,EAAI2B,IAAM,IAAM1B,GAAK0B,IAEnD,OAAOs6C,GAAG3+C,EAAGK,EAAGiB,EAAGG,EAAGkB,EAAGjB,GAAI1B,EAAE+f,OAAQpd,EAEzC,SAASm8C,GAAG9+C,EAAGK,EAAGiB,GAChB,MAAQ2B,EAAGxB,EAAGyB,EAAGxB,EAAGs+B,WAAYr+B,EAAGu8C,YAAat8C,EAAGi9C,YAAan8C,GAAMrC,EAAGsC,EAAIwB,KAAK6B,IAAI3F,EAAEw+B,YAAcj9B,EAAG,GAAIgB,EAAIvC,EAAEu+B,YAAch9B,EACjI,IAAIgF,EACJ,IAAKtF,GAAK28C,GAAGj+C,EAAGK,EAAGsB,EAAI0C,GAAIrE,EAAEuf,YAAavf,EAAEyf,IAAIhe,EAAGC,EAAGkB,EAAGjB,EAAI0C,EAAG1C,GAAG,GAAKiF,EAAI,EAAGA,EAAIlE,IAAKkE,EACtF5G,EAAEigB,SACJ,IAAKjgB,EAAEuf,YAAavf,EAAEyf,IAAIhe,EAAGC,EAAGiB,EAAGhB,EAAGA,EAAI0C,GAAIuC,EAAI,EAAGA,EAAIlE,IAAKkE,EAC5D5G,EAAEigB,SAEN,SAAS8+B,GAAG/+C,EAAGK,EAAGiB,EAAGG,EAAGC,EAAGC,GACzB,MAAQ6rB,QAAS5rB,GAAMvB,GAAK2f,YAAatd,EAAG8rB,gBAAiB7rB,GAAMf,EAAGgB,EAAsB,UAAlBhB,EAAEw+B,YAC5E19B,IAAME,GAAK5C,EAAEshB,UAAgB,EAAJ5e,EAAO1C,EAAEg/C,SAAWr8C,GAAK,UAAY3C,EAAEshB,UAAY5e,EAAG1C,EAAEg/C,SAAWr8C,GAAK,SAAUtC,EAAEw+C,aAAeC,GAAG9+C,EAAGK,EAAGuC,GAAIA,GAAKq7C,GAAGj+C,EAAGK,EAAGqB,GAAIi9C,GAAG3+C,EAAGK,EAAGiB,EAAGG,EAAGC,EAAGC,GAAI3B,EAAEigB,UA1HrL3f,OAAOmd,iBAAiBu7B,GAAI,CAC1B1c,SAAU,CACR10B,WAAYo2C,GACZn2C,MAAO4H,IAETsuC,UAAW,CACTn2C,WAAYo2C,GACZn2C,MAAOgxC,IAET9a,UAAW,CACTn2B,WAAYo2C,GACZn2C,MAAOmT,IAETikC,SAAU,CACRr3C,WAAYo2C,GACZn2C,MAAOkmC,IAETmR,QAAS,CACPt3C,WAAYo2C,GACZn2C,MAAOswC,IAETgH,SAAU,CACRv3C,WAAYo2C,GACZn2C,MAAO4oB,IAET2c,SAAU,CACRxlC,WAAYo2C,GACZn2C,MAAO,IAAI7H,KACT+tC,GAAG3lC,OAAOpI,GAAI89C,OAGlBsB,WAAY,CACVx3C,WAAYo2C,GACZn2C,MAAO,IAAI7H,KACT+tC,GAAG+O,UAAU98C,GAAI89C,SA0FvB,MAAMuB,WAAW/c,GACf,YAAYjiC,GACVm8B,QAASz0B,KAAKylB,aAAU,EAAQzlB,KAAK+2B,mBAAgB,EAAQ/2B,KAAKi4B,gBAAa,EAAQj4B,KAAKk4B,cAAW,EAAQl4B,KAAK62B,iBAAc,EAAQ72B,KAAK82B,iBAAc,EAAQ92B,KAAKm2C,YAAc,EAAGn2C,KAAK82C,YAAc,EAAGx+C,GAAKC,OAAO+J,OAAOtC,KAAM1H,GAE5O,QAAQA,EAAGiB,EAAGG,GACZ,MAAMC,EAAIqG,KAAKw6B,SAAS,CAAC,IAAK,KAAM9gC,IAAM6E,MAAO3E,EAAG4E,SAAU3E,GAAMwE,EAAG1E,EAAG,CAAEuB,EAAG5C,EAAG6C,EAAG5B,KAAQ0+B,WAAYt9B,EAAGu9B,SAAUt9B,EAAGi8B,YAAah8B,EAAGi8B,YAAaj4B,EAAGk4B,cAAex1B,GAAMvB,KAAKw6B,SAAS,CAC1L,aACA,WACA,cACA,cACA,iBACC9gC,GAAI+H,EAAIzB,KAAKylB,QAAQ4R,QAAU,EAAGpxB,EAAIhN,EAAEsI,EAAG3G,EAAID,IAAM2B,GAAKsC,GAAGhF,EAAGe,EAAGC,GAAIkqB,EAAI9lB,GAAGnF,EAAGgB,EAAI4G,EAAG5C,EAAI4C,GAC/F,OAAOwE,GAAK6e,EAEd,eAAexsB,GACb,MAAQ4C,EAAG3B,EAAG4B,EAAGzB,EAAGu+B,WAAYt+B,EAAGu+B,SAAUt+B,EAAGi9B,YAAah9B,EAAGi9B,YAAan8B,GAAMqF,KAAKw6B,SAAS,CAC/F,IACA,IACA,aACA,WACA,cACA,cACA,iBACCliC,IAAM49B,OAAQt7B,EAAGy8B,QAASx8B,GAAMmF,KAAKylB,QAAS5mB,GAAKlF,EAAIC,GAAK,EAAG2H,GAAK1H,EAAIc,EAAIE,EAAID,GAAK,EACxF,MAAO,CACLM,EAAG3B,EAAI6C,KAAKsH,IAAI7E,GAAK0C,EACrBpG,EAAGzB,EAAI0C,KAAKqG,IAAI5D,GAAK0C,GAGzB,gBAAgBjJ,GACd,OAAO0H,KAAK0nC,eAAepvC,GAE7B,KAAKA,GACH,MAAQmtB,QAASlsB,EAAGw9B,cAAer9B,GAAMsG,KAAMrG,GAAKJ,EAAE28B,QAAU,GAAK,EAAGt8B,GAAKL,EAAE89B,SAAW,GAAK,EAAGx9B,EAAIN,EAAE0gC,SACxG,GAAIj6B,KAAKm2C,YAAgC,UAAlB58C,EAAE8+B,YAA0B,IAAO,EAAGr4B,KAAK82C,YAAcp9C,EAAI4C,EAAIF,KAAKkB,MAAM5D,EAAI4C,GAAK,EAAS,IAAN5C,GAAWsG,KAAK62B,YAAc,GAAK72B,KAAK82B,YAAc,EACnK,OACFx+B,EAAEie,OACF,IAAI5b,EAAI,EACR,GAAIhB,EAAG,CACLgB,EAAIhB,EAAI,EACR,MAAMkB,GAAKmF,KAAKi4B,WAAaj4B,KAAKk4B,UAAY,EAC9C5/B,EAAE+e,UAAUjb,KAAKsH,IAAI7I,GAAKF,EAAGyB,KAAKqG,IAAI5H,GAAKF,GAAIqF,KAAK+2B,eAAiB56B,IAAMxB,EAAIhB,GAEjFrB,EAAEuhB,UAAYtgB,EAAEga,gBAAiBjb,EAAEghB,YAAc/f,EAAEia,YACnD,MAAM5Y,EAAIi8C,GAAGv+C,EAAG0H,KAAMrF,EAAGf,EAAGC,GAC5Bm9C,GAAG1+C,EAAG0H,KAAMrF,EAAGf,EAAGgB,EAAGf,GAAIvB,EAAEke,WAkB/B,SAAS+gC,GAAGt/C,EAAGK,EAAGiB,EAAIjB,GACpBL,EAAEu/C,QAAUv+C,EAAEM,EAAE+sB,eAAgBhuB,EAAEguB,gBAAiBruB,EAAEusC,YAAYvrC,EAAEM,EAAEgtB,WAAYjuB,EAAEiuB,aAActuB,EAAEwsC,eAAiBxrC,EAAEM,EAAEitB,iBAAkBluB,EAAEkuB,kBAAmBvuB,EAAEg/C,SAAWh+C,EAAEM,EAAEktB,gBAAiBnuB,EAAEmuB,iBAAkBxuB,EAAEshB,UAAYtgB,EAAEM,EAAE0e,YAAa3f,EAAE2f,aAAchgB,EAAEqhB,YAAcrgB,EAAEM,EAAEia,YAAalb,EAAEkb,aAEzS,SAASikC,GAAGx/C,EAAGK,EAAGiB,GAChBtB,EAAE4f,OAAOte,EAAE2B,EAAG3B,EAAE4B,GAElB,SAASu8C,GAAGz/C,GACV,OAAOA,EAAE0/C,QAAUj/B,GAAKzgB,EAAEmoB,SAAwC,aAA7BnoB,EAAEkoB,uBAAwCxH,GAAK8+B,GAEtF,SAASG,GAAG3/C,EAAGK,EAAGiB,EAAI,IACpB,MAAMG,EAAIzB,EAAE6B,QAAU8H,MAAOjI,EAAI,EAAG6qB,IAAK5qB,EAAIF,EAAI,GAAMH,GAAKqI,MAAO/H,EAAG2qB,IAAK7pB,GAAMrC,EAAGsC,EAAIwB,KAAK6B,IAAItE,EAAGE,GAAIgB,EAAIuB,KAAK4B,IAAIpE,EAAGe,GAAIkE,EAAIlF,EAAIE,GAAKD,EAAIC,GAAKF,EAAIgB,GAAKf,EAAIe,EAC/J,MAAO,CACLkH,MAAOnI,EACPkI,MAAOhH,EACP6pB,KAAMnsB,EAAEmsB,KACRozB,KAAMh9C,EAAID,IAAMiE,EAAInF,EAAImB,EAAID,EAAIC,EAAID,GAGxC,SAASk9C,GAAG7/C,EAAGK,EAAGiB,EAAGG,GACnB,MAAQ0rB,OAAQzrB,EAAG8rB,QAAS7rB,GAAMtB,GAAKuJ,MAAOhI,EAAG+H,MAAOjH,EAAG8pB,KAAM7pB,EAAGi9C,KAAMh9C,GAAM+8C,GAAGj+C,EAAGJ,EAAGG,GAAImF,EAAI64C,GAAG99C,GACpG,IAA4C+L,EAAGM,EAAG6e,GAA5CizB,KAAMx2C,GAAI,EAAI4pB,QAAS1pB,GAAM/H,GAAK,GACxC,IAAKiM,EAAI,EAAGA,GAAK9K,IAAK8K,EACpBM,EAAItM,GAAGgB,GAAK8G,EAAI5G,EAAI8K,EAAIA,IAAM9L,IAAKoM,EAAEsZ,OAAShe,GAAKtJ,EAAE2f,OAAO3R,EAAE/K,EAAG+K,EAAE9K,GAAIoG,GAAI,GAAM1C,EAAE5G,EAAG6sB,EAAG7e,EAAGxE,EAAG7H,EAAE+9C,SAAU7yB,EAAI7e,GACjH,OAAOrL,IAAMqL,EAAItM,GAAGgB,GAAK8G,EAAI5G,EAAI,IAAMhB,GAAIgF,EAAE5G,EAAG6sB,EAAG7e,EAAGxE,EAAG7H,EAAE+9C,YAAa/8C,EAE1E,SAASo9C,GAAG//C,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAIrB,EAAE8sB,QAAUvjB,MAAOjI,EAAGgI,MAAO/H,EAAGg+C,KAAMl9C,GAAMi9C,GAAGj+C,EAAGJ,EAAGG,IAAMq+C,KAAMn9C,GAAI,EAAIuwB,QAAStwB,GAAMnB,GAAK,GACvG,IAAkB+H,EAAGkE,EAAGM,EAAG6e,EAAGC,EAAGrf,EAA7B7G,EAAI,EAAG0C,EAAI,EACf,MAAMrG,EAAKC,IAAOtB,GAAKgB,EAAIF,EAAIQ,EAAIA,IAAMvB,EAAGirB,EAAI,KAC9CC,IAAMC,IAAM9sB,EAAE4f,OAAOhZ,EAAGkmB,GAAI9sB,EAAE4f,OAAOhZ,EAAGimB,GAAI7sB,EAAE4f,OAAOhZ,EAAG6G,KAE1D,IAAK9K,IAAM+K,EAAIhM,EAAEuB,EAAE,IAAKjD,EAAE2f,OAAOjS,EAAEzK,EAAGyK,EAAExK,IAAKsG,EAAI,EAAGA,GAAK9G,IAAK8G,EAAG,CAC/D,GAAIkE,EAAIhM,EAAEuB,EAAEuG,IAAKkE,EAAE4Z,KACjB,SACF,MAAMpkB,EAAIwK,EAAEzK,EAAG8pB,EAAIrf,EAAExK,EAAGwM,EAAQ,EAAJxM,EAC5BwM,IAAM1B,GAAK+e,EAAIF,EAAIA,EAAIE,EAAIA,EAAID,IAAMA,EAAIC,GAAInmB,GAAK0C,EAAI1C,EAAI1D,KAAOoG,IAAMsjB,IAAK5sB,EAAE4f,OAAO1c,EAAG6pB,GAAI/e,EAAI0B,EAAGpG,EAAI,EAAGujB,EAAIC,EAAIC,GAAItf,EAAIsf,EAE5HH,IAEF,SAASozB,GAAGhgD,GACV,MAAMK,EAAIL,EAAEwtB,QAASlsB,EAAIjB,EAAEiuB,YAAcjuB,EAAEiuB,WAAWzsB,OACtD,OAAQ7B,EAAE+gC,YAAe/gC,EAAEytB,OAAUptB,EAAE8nB,SAAwC,aAA7B9nB,EAAE6nB,wBAA0C7nB,EAAEq/C,SAAYp+C,EAASu+C,GAALE,GAElH,SAASE,GAAGjgD,GACV,OAAOA,EAAE0/C,QAAU70B,GAAK7qB,EAAEmoB,SAAwC,aAA7BnoB,EAAEkoB,uBAAwC4C,GAAKF,GAEtF,SAASs1B,GAAGlgD,EAAGK,EAAGiB,EAAGG,GACnB,IAAIC,EAAIrB,EAAE8/C,MACVz+C,IAAMA,EAAIrB,EAAE8/C,MAAQ,IAAIC,OAAU//C,EAAEggD,KAAK3+C,EAAGJ,EAAGG,IAAMC,EAAEge,aAAc4/B,GAAGt/C,EAAGK,EAAEmtB,SAAUxtB,EAAEigB,OAAOve,GAElG,SAAS4+C,GAAGtgD,EAAGK,EAAGiB,EAAGG,GACnB,MAAQyrB,SAAUxrB,EAAG8rB,QAAS7rB,GAAMtB,EAAGuB,EAAIo+C,GAAG3/C,GAC9C,IAAK,MAAMqC,KAAKhB,EACd49C,GAAGt/C,EAAG2B,EAAGe,EAAEwZ,OAAQlc,EAAEuf,YAAa3d,EAAE5B,EAAGK,EAAGqC,EAAG,CAAEiH,MAAOrI,EAAGirB,IAAKjrB,EAAIG,EAAI,KAAQzB,EAAE0f,YAAa1f,EAAEigB,SApEnGo/B,GAAGtrB,GAAK,MACRsrB,GAAG/iB,SAAW,CACZ8D,YAAa,SACb7kB,YAAa,OACbiT,qBAAiB,EACjB6vB,aAAc,EACdr+B,YAAa,EACbie,OAAQ,EACRmB,QAAS,EACT94B,WAAO,EACP07B,UAAU,GAEZqd,GAAG7c,cAAgB,CACjBlnB,gBAAiB,mBAyDnB,MAAMilC,GAAsB,mBAAVH,OAClB,SAASI,GAAGxgD,EAAGK,EAAGiB,EAAGG,GACnB8+C,KAAOlgD,EAAEmtB,QAAQwT,QAAUkf,GAAGlgD,EAAGK,EAAGiB,EAAGG,GAAK6+C,GAAGtgD,EAAGK,EAAGiB,EAAGG,GAE1D,MAAMg/C,WAAWne,GACf,YAAYjiC,GACVm8B,QAASz0B,KAAKk5B,UAAW,EAAIl5B,KAAKylB,aAAU,EAAQzlB,KAAK8lB,YAAS,EAAQ9lB,KAAK0lB,WAAQ,EAAQ1lB,KAAK4lB,eAAY,EAAQ5lB,KAAKo4C,WAAQ,EAAQp4C,KAAK24C,aAAU,EAAQ34C,KAAK44C,eAAY,EAAQ54C,KAAKg5B,YAAa,EAAIh5B,KAAK64C,gBAAiB,EAAI74C,KAAKgmB,mBAAgB,EAAQ1tB,GAAKC,OAAO+J,OAAOtC,KAAM1H,GAErS,oBAAoBA,EAAGiB,GACrB,MAAMG,EAAIsG,KAAKylB,QACf,IAAK/rB,EAAE0mB,SAAwC,aAA7B1mB,EAAEymB,0BAA2CzmB,EAAEi+C,UAAY33C,KAAK64C,eAAgB,CAChG,MAAMl/C,EAAID,EAAEwmB,SAAWlgB,KAAK0lB,MAAQ1lB,KAAK4lB,UACzC3F,GAAGjgB,KAAK24C,QAASj/C,EAAGpB,EAAGqB,EAAGJ,GAAIyG,KAAK64C,gBAAiB,GAGxD,WAAWvgD,GACT0H,KAAK24C,QAAUrgD,SAAU0H,KAAK44C,iBAAkB54C,KAAKo4C,MAAOp4C,KAAK64C,gBAAiB,EAEpF,aACE,OAAO74C,KAAK24C,QAEd,eACE,OAAO34C,KAAK44C,YAAc54C,KAAK44C,UAAYpzB,GAAGxlB,KAAMA,KAAKylB,QAAQwT,UAEnE,QACE,MAAM3gC,EAAI0H,KAAKmlB,SAAU5rB,EAAIyG,KAAKolB,OAClC,OAAO9sB,EAAEwB,QAAUP,EAAEjB,EAAE,GAAGsJ,OAE5B,OACE,MAAMtJ,EAAI0H,KAAKmlB,SAAU5rB,EAAIyG,KAAKolB,OAAQ1rB,EAAIpB,EAAEwB,OAChD,OAAOJ,GAAKH,EAAEjB,EAAEoB,EAAI,GAAG8qB,KAEzB,YAAYlsB,EAAGiB,GACb,MAAMG,EAAIsG,KAAKylB,QAAS9rB,EAAIrB,EAAEiB,GAAIK,EAAIoG,KAAKolB,OAAQvrB,EAAIqrB,GAAGllB,KAAM,CAAE2kB,SAAUprB,EAAGqI,MAAOjI,EAAG6qB,IAAK7qB,IAC9F,IAAKE,EAAEC,OACL,OACF,MAAMa,EAAI,GAAIC,EAAIs9C,GAAGx+C,GACrB,IAAImB,EAAGgE,EACP,IAAKhE,EAAI,EAAGgE,EAAIhF,EAAEC,OAAQe,EAAIgE,IAAKhE,EAAG,CACpC,MAAQ+G,MAAOL,EAAGijB,IAAK/iB,GAAM5H,EAAEgB,GAAI8K,EAAI/L,EAAE2H,GAAI0E,EAAIrM,EAAE6H,GACnD,GAAIkE,IAAMM,EAAG,CACXtL,EAAEa,KAAKmK,GACP,SAEF,MAAMmf,EAAI1oB,KAAKyB,KAAKlE,EAAIgM,EAAEpM,KAAO0M,EAAE1M,GAAKoM,EAAEpM,KAAMwrB,EAAInqB,EAAE+K,EAAGM,EAAG6e,EAAGprB,EAAEi+C,SACjE5yB,EAAExrB,GAAKjB,EAAEiB,GAAIoB,EAAEa,KAAKupB,GAEtB,OAAoB,IAAbpqB,EAAEb,OAAea,EAAE,GAAKA,EAEjC,YAAYrC,EAAGiB,EAAGG,GAChB,OAAOu+C,GAAGj4C,KAAHi4C,CAAS3/C,EAAG0H,KAAMzG,EAAGG,GAE9B,KAAKpB,EAAGiB,EAAGG,GACT,MAAMC,EAAIqG,KAAKmlB,SAAUvrB,EAAIq+C,GAAGj4C,MAChC,IAAInG,EAAImG,KAAK0lB,MACbnsB,EAAIA,GAAK,EAAGG,EAAIA,GAAKsG,KAAKolB,OAAOtrB,OAASP,EAC1C,IAAK,MAAMoB,KAAKhB,EACdE,GAAKD,EAAEtB,EAAG0H,KAAMrF,EAAG,CAAEiH,MAAOrI,EAAGirB,IAAKjrB,EAAIG,EAAI,IAC9C,QAASG,EAEX,KAAKvB,EAAGiB,EAAGG,EAAGC,GACZ,MAAMC,EAAIoG,KAAKylB,SAAW,IACzBzlB,KAAKolB,QAAU,IAAItrB,QAAUF,EAAEqe,cAAgB3f,EAAEie,OAAQkiC,GAAGngD,EAAG0H,KAAMtG,EAAGC,GAAIrB,EAAEke,WAAYxW,KAAKk5B,WAAal5B,KAAK64C,gBAAiB,EAAI74C,KAAKo4C,WAAQ,IAyBxJ,SAASU,GAAG7gD,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAI1B,EAAEwtB,SAAW,CAAClsB,GAAIK,GAAM3B,EAAEuiC,SAAS,CAACjhC,GAAIG,GAClD,OAAO0C,KAAKyB,IAAIvF,EAAIsB,GAAKD,EAAEyd,OAASzd,EAAEo/C,UAxBxCL,GAAG1sB,GAAK,OACR0sB,GAAGnkB,SAAW,CACZjO,eAAgB,OAChBC,WAAY,GACZC,iBAAkB,EAClBC,gBAAiB,QACjBxO,YAAa,EACboI,iBAAiB,EACjBF,uBAAwB,UACxBnI,MAAM,EACNkI,UAAU,EACVy3B,SAAS,EACTv3B,QAAS,GAEXs4B,GAAGje,cAAgB,CACjBlnB,gBAAiB,kBACjBC,YAAa,eAEfklC,GAAGlgB,YAAc,CACf5iB,aAAa,EACbE,WAAa7d,GAAY,eAANA,GAA4B,SAANA,GAM3C,MAAM+gD,WAAWze,GACf,YAAYjiC,GACVm8B,QAASz0B,KAAKylB,aAAU,EAAQzlB,KAAKktB,YAAS,EAAQltB,KAAKuf,UAAO,EAAQvf,KAAKulB,UAAO,EAAQjtB,GAAKC,OAAO+J,OAAOtC,KAAM1H,GAEzH,QAAQA,EAAGiB,EAAGG,GACZ,MAAMC,EAAIqG,KAAKylB,SAAWvqB,EAAGtB,EAAGuB,EAAGtB,GAAMmG,KAAKw6B,SAAS,CAAC,IAAK,KAAM9gC,GACnE,OAAO0C,KAAKiB,IAAI/E,EAAIsB,EAAG,GAAKwC,KAAKiB,IAAI9D,EAAIM,EAAG,GAAKuC,KAAKiB,IAAI1D,EAAEo/C,UAAYp/C,EAAEyd,OAAQ,GAEpF,SAAS9e,EAAGiB,GACV,OAAOu/C,GAAG94C,KAAM1H,EAAG,IAAKiB,GAE1B,SAASjB,EAAGiB,GACV,OAAOu/C,GAAG94C,KAAM1H,EAAG,IAAKiB,GAE1B,eAAejB,GACb,MAAQ4C,EAAG3B,EAAG4B,EAAGzB,GAAMsG,KAAKw6B,SAAS,CAAC,IAAK,KAAMliC,GACjD,MAAO,CAAE4C,EAAG3B,EAAG4B,EAAGzB,GAEpB,KAAKpB,GACHA,EAAIA,GAAK0H,KAAKylB,SAAW,GACzB,IAAIlsB,EAAIjB,EAAE8e,QAAU,EACpB7d,EAAI6C,KAAK6B,IAAI1E,EAAGA,GAAKjB,EAAE2gD,aAAe,GACtC,MAAMv/C,EAAIH,GAAKjB,EAAE2f,aAAe,EAChC,OAAiB,GAAT1e,EAAIG,GAEd,KAAKpB,EAAGiB,GACN,MAAMG,EAAIsG,KAAKylB,QACfzlB,KAAKuf,MAAQ7lB,EAAE0d,OAAS,KAAQe,GAAGnY,KAAMzG,EAAGyG,KAAKjE,KAAKrC,GAAK,KAAOpB,EAAEghB,YAAc5f,EAAE8Z,YAAalb,EAAEihB,UAAY7f,EAAEue,YAAa3f,EAAEuhB,UAAYngB,EAAE6Z,gBAAiByD,GAAG1e,EAAGoB,EAAGsG,KAAK9E,EAAG8E,KAAK7E,IAEvL,WACE,MAAM7C,EAAI0H,KAAKylB,SAAW,GAC1B,OAAOntB,EAAE8e,OAAS9e,EAAEygD,WAiBxB,SAASG,GAAGjhD,EAAGK,GACb,MAAQ4C,EAAG3B,EAAG4B,EAAGzB,EAAGo6B,KAAMn6B,EAAGwc,MAAOvc,EAAGmd,OAAQld,GAAM5B,EAAEuiC,SAAS,CAAC,IAAK,IAAK,OAAQ,QAAS,UAAWliC,GACvG,IAAIqC,EAAGC,EAAGC,EAAGgE,EAAG0C,EAChB,OAAOtJ,EAAE47B,YAActyB,EAAI1H,EAAI,EAAGc,EAAIyB,KAAK4B,IAAIzE,EAAGI,GAAIiB,EAAIwB,KAAK6B,IAAI1E,EAAGI,GAAIkB,EAAInB,EAAI6H,EAAG1C,EAAInF,EAAI6H,IAAMA,EAAI3H,EAAI,EAAGe,EAAIpB,EAAIgI,EAAG3G,EAAIrB,EAAIgI,EAAG1G,EAAIuB,KAAK4B,IAAItE,EAAGC,GAAIkF,EAAIzC,KAAK6B,IAAIvE,EAAGC,IAAK,CAAEye,KAAMzd,EAAG2d,IAAKzd,EAAGwd,MAAOzd,EAAG2d,OAAQ1Z,GAEpN,SAASs6C,GAAGlhD,EAAGK,EAAGiB,EAAGG,GACnB,OAAOzB,EAAI,EAAI6G,GAAExG,EAAGiB,EAAGG,GAEzB,SAAS0/C,GAAGnhD,EAAGK,EAAGiB,GAChB,MAAMG,EAAIzB,EAAEwtB,QAAQxN,YAAate,EAAI1B,EAAE+7B,cAAep6B,EAAIwhB,GAAG1hB,GAC7D,MAAO,CACLpB,EAAG6gD,GAAGx/C,EAAE2e,IAAK1e,EAAE0e,IAAK,EAAG/e,GACvBM,EAAGs/C,GAAGx/C,EAAE0e,MAAOze,EAAEye,MAAO,EAAG/f,GAC3BoN,EAAGyzC,GAAGx/C,EAAE4e,OAAQ3e,EAAE2e,OAAQ,EAAGhf,GAC7BqB,EAAGu+C,GAAGx/C,EAAEye,KAAMxe,EAAEwe,KAAM,EAAG9f,IAG7B,SAAS+gD,GAAGphD,EAAGK,EAAGiB,GAChB,MAAQ06B,mBAAoBv6B,GAAMzB,EAAEuiC,SAAS,CAAC,uBAAwB7gC,EAAI1B,EAAEwtB,QAAQ6wB,aAAc18C,EAAIyhB,GAAG1hB,GAAIE,EAAIuC,KAAK4B,IAAI1F,EAAGiB,GAAIoB,EAAI1C,EAAE+7B,cAAep5B,EAAIlB,GAAKd,EAAEe,GACjK,MAAO,CACL8gB,QAAS0+B,IAAIv+C,GAAKD,EAAE2d,KAAO3d,EAAEyd,KAAMxe,EAAE6gB,QAAS,EAAG5gB,GACjD+gB,SAAUu+B,IAAIv+C,GAAKD,EAAE2d,KAAO3d,EAAE0d,MAAOze,EAAEghB,SAAU,EAAG/gB,GACpD6gB,WAAYy+B,IAAIv+C,GAAKD,EAAE4d,QAAU5d,EAAEyd,KAAMxe,EAAE8gB,WAAY,EAAG7gB,GAC1D8gB,YAAaw+B,IAAIv+C,GAAKD,EAAE4d,QAAU5d,EAAE0d,MAAOze,EAAE+gB,YAAa,EAAG9gB,IAGjE,SAASy/C,GAAGrhD,GACV,MAAMK,EAAI4gD,GAAGjhD,GAAIsB,EAAIjB,EAAE+f,MAAQ/f,EAAE8f,KAAM1e,EAAIpB,EAAEigB,OAASjgB,EAAEggB,IAAK3e,EAAIy/C,GAAGnhD,EAAGsB,EAAI,EAAGG,EAAI,GAAIE,EAAIy/C,GAAGphD,EAAGsB,EAAI,EAAGG,EAAI,GAC3G,MAAO,CACL6/C,MAAO,CACLr+C,EAAG5C,EAAE8f,KACLjd,EAAG7C,EAAEggB,IACLkC,EAAGjhB,EACHsF,EAAGnF,EACH0d,OAAQxd,GAEV4/C,MAAO,CACLt+C,EAAG5C,EAAE8f,KAAOze,EAAEiB,EACdO,EAAG7C,EAAEggB,IAAM3e,EAAErB,EACbkiB,EAAGjhB,EAAII,EAAEiB,EAAIjB,EAAEE,EACfgF,EAAGnF,EAAIC,EAAErB,EAAIqB,EAAE+L,EACf0R,OAAQ,CACNqD,QAASre,KAAK6B,IAAI,EAAGrE,EAAE6gB,QAAUre,KAAK6B,IAAItE,EAAErB,EAAGqB,EAAEiB,IACjDggB,SAAUxe,KAAK6B,IAAI,EAAGrE,EAAEghB,SAAWxe,KAAK6B,IAAItE,EAAErB,EAAGqB,EAAEE,IACnD6gB,WAAYte,KAAK6B,IAAI,EAAGrE,EAAE8gB,WAAate,KAAK6B,IAAItE,EAAE+L,EAAG/L,EAAEiB,IACvD+f,YAAave,KAAK6B,IAAI,EAAGrE,EAAE+gB,YAAcve,KAAK6B,IAAItE,EAAE+L,EAAG/L,EAAEE,OAKjE,SAAS4/C,GAAGxhD,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAU,OAANrB,EAAYsB,EAAU,OAANL,EAAYoB,EAAI1C,KAAO0B,GAAKC,IAAMs/C,GAAGjhD,EAAGyB,GAClE,OAAOiB,IAAMhB,GAAKqF,GAAG1G,EAAGqC,EAAEyd,KAAMzd,EAAE0d,UAAYze,GAAKoF,GAAGzF,EAAGoB,EAAE2d,IAAK3d,EAAE4d,SAEpE,SAASmhC,GAAGzhD,GACV,OAAOA,EAAEwiB,SAAWxiB,EAAE2iB,UAAY3iB,EAAEyiB,YAAcziB,EAAE0iB,YAEtD,SAASg/B,GAAG1hD,EAAGK,GACbL,EAAE8f,KAAKzf,EAAE4C,EAAG5C,EAAE6C,EAAG7C,EAAEkiB,EAAGliB,EAAEuG,GAE1B,SAAS+6C,GAAG3hD,EAAGK,EAAGiB,EAAI,IACpB,MAAMG,EAAIzB,EAAEiD,IAAM3B,EAAE2B,GAAK5C,EAAI,EAAGqB,EAAI1B,EAAEkD,IAAM5B,EAAE4B,GAAK7C,EAAI,EAAGsB,GAAK3B,EAAEiD,EAAIjD,EAAEuiB,IAAMjhB,EAAE2B,EAAI3B,EAAEihB,EAAIliB,EAAI,GAAKoB,EAAGG,GAAK5B,EAAEkD,EAAIlD,EAAE4G,IAAMtF,EAAE4B,EAAI5B,EAAEsF,EAAIvG,EAAI,GAAKqB,EAC7I,MAAO,CACLuB,EAAGjD,EAAEiD,EAAIxB,EACTyB,EAAGlD,EAAEkD,EAAIxB,EACT6gB,EAAGviB,EAAEuiB,EAAI5gB,EACTiF,EAAG5G,EAAE4G,EAAIhF,EACTud,OAAQnf,EAAEmf,QAjFd4hC,GAAGhtB,GAAK,QACRgtB,GAAGzkB,SAAW,CACZtc,YAAa,EACb8gC,UAAW,EACXzgB,iBAAkB,EAClB2gB,YAAa,EACb/hC,WAAY,SACZE,OAAQ,EACRD,SAAU,GAEZ6hC,GAAGve,cAAgB,CACjBlnB,gBAAiB,kBACjBC,YAAa,eAwEf,MAAMqmC,WAAWtf,GACf,YAAYjiC,GACVm8B,QAASz0B,KAAKylB,aAAU,EAAQzlB,KAAK6zB,gBAAa,EAAQ7zB,KAAK8zB,UAAO,EAAQ9zB,KAAKmW,WAAQ,EAAQnW,KAAK+W,YAAS,EAAQ/W,KAAKs0B,mBAAgB,EAAQh8B,GAAKC,OAAO+J,OAAOtC,KAAM1H,GAEjL,KAAKA,GACH,MAAQg8B,cAAe/6B,EAAGksB,SAAWjS,YAAa9Z,EAAG6Z,gBAAiB5Z,IAAQqG,MAAQw5C,MAAO5/C,EAAG2/C,MAAO1/C,GAAMy/C,GAAGt5C,MAAOrF,EAAI++C,GAAG7/C,EAAEud,QAAUmD,GAAKo/B,GAC/IrhD,EAAEie,QAAS1c,EAAE2gB,IAAM5gB,EAAE4gB,GAAK3gB,EAAEgF,IAAMjF,EAAEiF,KAAOvG,EAAEkf,YAAa7c,EAAErC,EAAGshD,GAAG//C,EAAGN,EAAGK,IAAKtB,EAAEkgB,OAAQ7d,EAAErC,EAAGshD,GAAGhgD,GAAIL,EAAGM,IAAKvB,EAAEuhB,UAAYngB,EAAGpB,EAAE0f,KAAK,YAAa1f,EAAEkf,YAAa7c,EAAErC,EAAGshD,GAAGhgD,EAAGL,IAAKjB,EAAEuhB,UAAYlgB,EAAGrB,EAAE0f,OAAQ1f,EAAEke,UAE9M,QAAQle,EAAGiB,EAAGG,GACZ,OAAO+/C,GAAGz5C,KAAM1H,EAAGiB,EAAGG,GAExB,SAASpB,EAAGiB,GACV,OAAOkgD,GAAGz5C,KAAM1H,EAAG,KAAMiB,GAE3B,SAASjB,EAAGiB,GACV,OAAOkgD,GAAGz5C,KAAM,KAAM1H,EAAGiB,GAE3B,eAAejB,GACb,MAAQ4C,EAAG3B,EAAG4B,EAAGzB,EAAGo6B,KAAMn6B,EAAGk6B,WAAYj6B,GAAMoG,KAAKw6B,SAAS,CAAC,IAAK,IAAK,OAAQ,cAAeliC,GAC/F,MAAO,CACL4C,EAAGtB,GAAKL,EAAII,GAAK,EAAIJ,EACrB4B,EAAGvB,EAAIF,GAAKA,EAAIC,GAAK,GAGzB,SAASrB,GACP,MAAa,MAANA,EAAY0H,KAAKmW,MAAQ,EAAInW,KAAK+W,OAAS,GAGtD8iC,GAAG7tB,GAAK,MACR6tB,GAAGtlB,SAAW,CACZP,cAAe,QACf/b,YAAa,EACbq+B,aAAc,EACdhiB,cAAe,OACfpd,gBAAY,GAEd2iC,GAAGpf,cAAgB,CACjBlnB,gBAAiB,kBACjBC,YAAa,eAEf,IAAIsmC,GAAqBvhD,OAAO44B,OAAO,CACrCiV,UAAW,KACX2T,WAAYzC,GACZ0C,YAAatB,GACbuB,aAAcjB,GACdkB,WAAYL,KAEd,SAASM,GAAGliD,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAID,EAAEygD,SAAW1gD,EACvB,GAAIE,GAAKL,EACP,OAAOtB,EAAEU,MAAML,EAAGA,EAAIiB,GACxB,MAAMM,EAAI,GAAIc,GAAKpB,EAAI,IAAMK,EAAI,GACjC,IAAIgB,EAAI,EACR,MAAMC,EAAIvC,EAAIiB,EAAI,EAClB,IAAWgI,EAAGE,EAAGkE,EAAGM,EAAG6e,EAAnBjmB,EAAIvG,EACR,IAAKuB,EAAEe,KAAO3C,EAAE4G,GAAI0C,EAAI,EAAGA,EAAI3H,EAAI,EAAG2H,IAAK,CACzC,IAAkBrG,EAAd6pB,EAAI,EAAGrf,EAAI,EACf,MAAMmf,EAAIzoB,KAAKkB,OAAOiE,EAAI,GAAK5G,GAAK,EAAIrC,EAAG6C,EAAIiB,KAAK4B,IAAI5B,KAAKkB,OAAOiE,EAAI,GAAK5G,GAAK,EAAGpB,GAAKjB,EAAG0sB,EAAI7pB,EAAI0pB,EACrG,IAAK3pB,EAAI2pB,EAAG3pB,EAAIC,EAAGD,IACjB6pB,GAAK9sB,EAAEiD,GAAGA,EAAGwK,GAAKzN,EAAEiD,GAAGC,EACzB4pB,GAAKC,EAAGtf,GAAKsf,EACb,MAAMrd,EAAIvL,KAAKkB,MAAMiE,EAAI5G,GAAK,EAAIrC,EAAG2sB,EAAI7oB,KAAK4B,IAAI5B,KAAKkB,OAAOiE,EAAI,GAAK5G,GAAK,EAAGpB,GAAKjB,GAAK4C,EAAGqM,EAAGpM,EAAGqf,GAAMviB,EAAE4G,GAC1G,IAAK8G,EAAIM,GAAK,EAAG/K,EAAIyM,EAAGzM,EAAI+pB,EAAG/pB,IAC7B+K,EAAI,GAAM7J,KAAKyB,KACZ0J,EAAIwd,IAAM9sB,EAAEiD,GAAGC,EAAIqf,IAAMjT,EAAItP,EAAEiD,GAAGA,IAAMwK,EAAI8U,IAC5CvU,EAAIN,IAAMA,EAAIM,EAAGxE,EAAIxJ,EAAEiD,GAAI4pB,EAAI5pB,GACpCrB,EAAEe,KAAO6G,EAAG5C,EAAIimB,EAElB,OAAOjrB,EAAEe,KAAO3C,EAAE4C,GAAIhB,EAExB,SAASwgD,GAAGpiD,EAAGK,EAAGiB,EAAGG,GACnB,IAAkBG,EAAGc,EAAGC,EAAGC,EAAGgE,EAAG0C,EAAGE,EAAGkE,EAAGM,EAAG6e,EAAzCnrB,EAAI,EAAGC,EAAI,EACf,MAAMmrB,EAAI,GAAIrf,EAAIpN,EAAIiB,EAAI,EAAG2B,EAAIjD,EAAEK,GAAG4C,EAAGC,EAAIlD,EAAEyN,GAAGxK,EAAIA,EACtD,IAAKrB,EAAIvB,EAAGuB,EAAIvB,EAAIiB,IAAKM,EAAG,CAC1Bc,EAAI1C,EAAE4B,GAAIe,GAAKD,EAAEO,EAAIA,GAAKC,EAAIzB,EAAGmB,EAAIF,EAAEQ,EACvC,MAAM6pB,EAAQ,EAAJpqB,EACV,GAAIoqB,IAAMnmB,EACRhE,EAAIoL,GAAKA,EAAIpL,EAAG0G,EAAI1H,GAAKgB,EAAIiqB,IAAMA,EAAIjqB,EAAG4G,EAAI5H,GAAIF,GAAKC,EAAID,EAAIgB,EAAEO,KAAOtB,MACrE,CACH,MAAM+N,EAAI9N,EAAI,EACd,IAAK3B,EAAEqJ,KAAOrJ,EAAEuJ,GAAI,CAClB,MAAMwjB,EAAI7oB,KAAK4B,IAAIuD,EAAGE,GAAI8F,EAAInL,KAAK6B,IAAIsD,EAAGE,GAC1CwjB,IAAMtf,GAAKsf,IAAMtd,GAAKod,EAAEvpB,KAAK,IACxBvD,EAAEgtB,GACL/pB,EAAGvB,IACD4N,IAAM5B,GAAK4B,IAAMI,GAAKod,EAAEvpB,KAAK,IAC5BvD,EAAEsP,GACLrM,EAAGvB,IAGPE,EAAI,GAAK8N,IAAMhC,GAAKof,EAAEvpB,KAAKvD,EAAE0P,IAAKod,EAAEvpB,KAAKb,GAAIkE,EAAImmB,EAAGprB,EAAI,EAAGqM,EAAI6e,EAAIjqB,EAAG0G,EAAIE,EAAIkE,EAAI9L,GAGtF,OAAOkrB,EAET,SAASu1B,GAAGriD,GACV,GAAIA,EAAE+gC,WAAY,CAChB,MAAM1gC,EAAIL,EAAEg2B,aACLh2B,EAAE+gC,kBAAmB/gC,EAAEg2B,MAAO11B,OAAOoH,eAAe1H,EAAG,OAAQ,CAAE6H,MAAOxH,KAGnF,SAASiiD,GAAGtiD,GACVA,EAAEoe,KAAK3C,SAAS3T,QAASzH,IACvBgiD,GAAGhiD,KAGP,SAASkiD,GAAGviD,EAAGK,GACb,MAAMiB,EAAIjB,EAAEwB,OACZ,IAAWH,EAAPD,EAAI,EACR,MAAQyH,OAAQvH,GAAM3B,GAAK+F,IAAKnE,EAAGoE,IAAKtD,EAAG2G,WAAY1G,EAAG4G,WAAY3G,GAAMjB,EAAE8H,gBAC9E,OAAO9G,IAAMlB,EAAIoF,GAAEM,GAAG9G,EAAGsB,EAAEyH,KAAMxH,GAAGqF,GAAI,EAAG3F,EAAI,IAASI,EAAJkB,EAAQiE,GAAEM,GAAG9G,EAAGsB,EAAEyH,KAAM1G,GAAGwE,GAAK,EAAGzF,EAAGH,GAAKG,EAAQH,EAAIG,EAAG,CAAEkI,MAAOlI,EAAGmI,MAAOlI,GAEnI,IAAI8gD,GAAK,CACPzuB,GAAI,aACJuI,SAAU,CACRmmB,UAAW,UACXpf,SAAS,GAEXqf,qBAAsB,CAAC1iD,EAAGK,EAAGiB,KAC3B,IAAKA,EAAE+hC,QAEL,YADAif,GAAGtiD,GAGL,MAAMyB,EAAIzB,EAAEke,MACZle,EAAEoe,KAAK3C,SAAS3T,QAAQ,CAACpG,EAAGC,KAC1B,MAAQq0B,MAAOp0B,EAAG6a,UAAW/Z,GAAMhB,EAAGiB,EAAI3C,EAAEo3B,eAAez1B,GAAIiB,EAAIhB,GAAKF,EAAE0c,KAC1E,GAAqC,MAAjCoF,GAAG,CAAC9gB,EAAG1C,EAAEwtB,QAAQ/Q,cAAwB9Z,EAAE0yB,WAAWiB,mBACxD,OACF,MAAM1vB,EAAI5G,EAAEqd,OAAO1a,EAAEk0B,SACrB,GAAe,WAAXjwB,EAAE3C,MAAgC,SAAX2C,EAAE3C,MAAmBjE,EAAEwtB,QAAQvQ,QACxD,OACF,IAAMtT,MAAOL,EAAGM,MAAOJ,GAAM+4C,GAAG5/C,EAAGC,GACnC,MAAM8K,EAAIpM,EAAEqhD,WAAa,EAAIlhD,EAC7B,GAAI+H,GAAKkE,EAEP,YADA20C,GAAG3gD,GAaL,IAAIsM,EACJ,OAXA/N,EAAE2B,KAAOF,EAAEs0B,MAAQpzB,SAAUlB,EAAE0c,KAAM9d,OAAOoH,eAAehG,EAAG,OAAQ,CACpEiG,cAAc,EACdC,YAAY,EACZwjB,IAAK,WACH,OAAOrjB,KAAKg5B,YAEdxV,IAAK,SAASsB,GACZ9kB,KAAKiuB,MAAQnJ,MAITvrB,EAAEmhD,WACR,IAAK,OACHz0C,EAAIk0C,GAAGt/C,EAAG0G,EAAGE,EAAG/H,EAAGH,GACnB,MACF,IAAK,UACH0M,EAAIo0C,GAAGx/C,EAAG0G,EAAGE,EAAG/H,GAChB,MACF,QACE,MAAM,IAAI2kB,MAAM,qCAAqC9kB,EAAEmhD,cAE3D/gD,EAAEq/B,WAAa/yB,KAGnB,QAAQhO,GACNsiD,GAAGtiD,KAGP,SAAS4iD,GAAG5iD,EAAGK,EAAGiB,GAChB,MAAMG,EAAIzB,EAAEktB,SAAUxrB,EAAI1B,EAAEmtB,OAAQxrB,EAAItB,EAAE8sB,OAAQvrB,EAAI,GACtD,IAAK,MAAMc,KAAKjB,EAAG,CACjB,IAAMkI,MAAOhH,EAAG4pB,IAAK3pB,GAAMF,EAC3BE,EAAIigD,GAAGlgD,EAAGC,EAAGlB,GACb,MAAMkF,EAAIk8C,GAAGxhD,EAAGI,EAAEiB,GAAIjB,EAAEkB,GAAIF,EAAE8pB,MAC9B,IAAKnsB,EAAE6sB,SAAU,CACftrB,EAAE2B,KAAK,CACLulC,OAAQpmC,EACR6mB,OAAQ3iB,EACR+C,MAAOjI,EAAEiB,GACT4pB,IAAK7qB,EAAEkB,KAET,SAEF,MAAM0G,EAAI2jB,GAAG5sB,EAAGuG,GAChB,IAAK,MAAM4C,KAAKF,EAAG,CACjB,MAAMoE,EAAIo1C,GAAGxhD,EAAGK,EAAE6H,EAAEG,OAAQhI,EAAE6H,EAAE+iB,KAAM/iB,EAAEgjB,MAAOxe,EAAI2e,GAAGjqB,EAAGhB,EAAGgM,GAC5D,IAAK,MAAMmf,KAAK7e,EACdpM,EAAE2B,KAAK,CACLulC,OAAQjc,EACRtD,OAAQ/f,EACRG,MAAO,CACL,CAACrI,GAAIyhD,GAAGn8C,EAAG8G,EAAG,QAASvJ,KAAK6B,MAE9BumB,IAAK,CACH,CAACjrB,GAAIyhD,GAAGn8C,EAAG8G,EAAG,MAAOvJ,KAAK4B,SAKpC,OAAOnE,EAET,SAASkhD,GAAG9iD,EAAGK,EAAGiB,EAAGG,GACnB,GAAIA,EACF,OACF,IAAIC,EAAIrB,EAAEL,GAAI2B,EAAIL,EAAEtB,GACpB,MAAa,UAANA,IAAkB0B,EAAIgF,EAAEhF,GAAIC,EAAI+E,EAAE/E,IAAK,CAAE+qB,SAAU1sB,EAAG2J,MAAOjI,EAAG6qB,IAAK5qB,GAE9E,SAASqhD,GAAGhjD,EAAGK,GACb,MAAQ4C,EAAG3B,EAAI,KAAM4B,EAAGzB,EAAI,MAASzB,GAAK,GAAI0B,EAAIrB,EAAE8sB,OAAQxrB,EAAI,GAChE,OAAOtB,EAAE6sB,SAASplB,QAAQ,EAAG6B,MAAO/H,EAAG2qB,IAAK7pB,MAC1CA,EAAImgD,GAAGjhD,EAAGc,EAAGhB,GACb,MAAMiB,EAAIjB,EAAEE,GAAIgB,EAAIlB,EAAEgB,GAChB,OAANjB,GAAcE,EAAE4B,KAAK,CAAEN,EAAGN,EAAEM,EAAGC,EAAGzB,IAAME,EAAE4B,KAAK,CAAEN,EAAGL,EAAEK,EAAGC,EAAGzB,KAAc,OAANH,IAAeK,EAAE4B,KAAK,CAAEN,EAAG3B,EAAG4B,EAAGP,EAAEO,IAAMvB,EAAE4B,KAAK,CAAEN,EAAG3B,EAAG4B,EAAGN,EAAEM,OAC/HvB,EAEN,SAASkhD,GAAG7iD,EAAGK,EAAGiB,GAChB,KAAOjB,EAAIL,EAAGK,IAAK,CACjB,MAAMoB,EAAIH,EAAEjB,GACZ,IAAKsF,MAAMlE,EAAEwB,KAAO0C,MAAMlE,EAAEyB,GAC1B,MAEJ,OAAO7C,EAET,SAAS0iD,GAAG/iD,EAAGK,EAAGiB,EAAGG,GACnB,OAAOzB,GAAKK,EAAIoB,EAAEzB,EAAEsB,GAAIjB,EAAEiB,IAAMtB,EAAIA,EAAEsB,GAAKjB,EAAIA,EAAEiB,GAAK,EAExD,SAAS2F,GAAGjH,EAAGK,GACb,IAAIiB,EAAI,GAAIG,GAAI,EAChB,OAAOvB,EAAEF,IAAMyB,GAAI,EAAIH,EAAItB,GAAKsB,EAAI0hD,GAAGhjD,EAAGK,GAAIiB,EAAEO,OAAS,IAAI4+C,GAAG,CAC9DtzB,OAAQ7rB,EACRksB,QAAS,CAAErF,QAAS,GACpBsF,MAAOhsB,EACPksB,UAAWlsB,IACR,KAEP,SAASwhD,GAAGjjD,GACV,OAAOA,IAAgB,IAAXA,EAAE+f,KAEhB,SAASmjC,GAAGljD,EAAGK,EAAGiB,GAChB,IAAII,EAAI1B,EAAEK,GAAG0f,KACb,MAAMpe,EAAI,CAACtB,GACX,IAAIuB,EACJ,IAAKN,EACH,OAAOI,EACT,MAAa,IAANA,IAA8B,IAAlBC,EAAEW,QAAQZ,IAAa,CACxC,IAAKd,EAAEc,GACL,OAAOA,EACT,GAAIE,EAAI5B,EAAE0B,IAAKE,EACb,OAAO,EACT,GAAIA,EAAEqwB,QACJ,OAAOvwB,EACTC,EAAE4B,KAAK7B,GAAIA,EAAIE,EAAEme,KAEnB,OAAO,EAET,SAASojC,GAAGnjD,EAAGK,EAAGiB,GAChB,MAAMG,EAAI2hD,GAAGpjD,GACb,GAAIW,EAAEc,GACJ,OAAOkE,MAAMlE,EAAEoG,QAAcpG,EAC/B,IAAIC,EAAIP,WAAWM,GACnB,OAAOb,EAAEc,IAAMyC,KAAKkB,MAAM3D,KAAOA,EAAI2hD,GAAG5hD,EAAE,GAAIpB,EAAGqB,EAAGJ,GAAK,CAAC,SAAU,QAAS,MAAO,QAAS,SAASgB,QAAQb,IAAM,GAAKA,EAE3H,SAAS4hD,GAAGrjD,EAAGK,EAAGiB,EAAGG,GACnB,OAAc,MAANzB,GAAmB,MAANA,KAAesB,EAAIjB,EAAIiB,KAAIA,IAAMjB,GAAKiB,EAAI,GAAKA,GAAKG,IAASH,EAEpF,SAASgiD,GAAGtjD,EAAGK,GACb,IAAIiB,EAAI,KACR,MAAa,UAANtB,EAAgBsB,EAAIjB,EAAEigB,OAAe,QAANtgB,EAAcsB,EAAIjB,EAAEggB,IAAM1f,EAAEX,GAAKsB,EAAIjB,EAAEqJ,iBAAiB1J,EAAE6H,OAASxH,EAAEo8B,eAAiBn7B,EAAIjB,EAAEo8B,gBAAiBn7B,EAErJ,SAASiiD,GAAGvjD,EAAGK,EAAGiB,GAChB,IAAIG,EACJ,OAAuBA,EAAV,UAANzB,EAAoBsB,EAAU,QAANtB,EAAkBK,EAAEmtB,QAAQ0F,QAAU7yB,EAAE0F,IAAM1F,EAAE2F,IAAMrF,EAAEX,GAASA,EAAE6H,MAAYxH,EAAEqqC,eAAgBjpC,EAElI,SAAS2hD,GAAGpjD,GACV,MAAMK,EAAIL,EAAEwtB,QAASlsB,EAAIjB,EAAE0f,KAC3B,IAAIte,EAAIT,EAAEM,GAAKA,EAAEioB,OAAQjoB,GACzB,YAAa,IAANG,IAAiBA,IAAMpB,EAAEib,kBAAwB,IAAN7Z,GAAkB,OAANA,KAAwB,IAANA,EAAW,SAAWA,GAExG,SAAS+hD,GAAGxjD,GACV,MAAQod,MAAO/c,EAAG4B,MAAOX,EAAG+gC,KAAM5gC,GAAMzB,EAAG0B,EAAI,GAAIC,EAAIF,EAAEyrB,SAAUtrB,EAAIH,EAAE0rB,OAAQzqB,EAAI+gD,GAAGpjD,EAAGiB,GAC3FoB,EAAEa,KAAK0D,GAAG,CAAEhE,EAAG,KAAMC,EAAG7C,EAAEigB,QAAU7e,IACpC,IAAK,IAAIkB,EAAI,EAAGA,EAAIhB,EAAEE,OAAQc,IAAK,CACjC,MAAMC,EAAIjB,EAAEgB,GACZ,IAAK,IAAIiE,EAAIhE,EAAE+G,MAAO/C,GAAKhE,EAAE2pB,IAAK3lB,IAChC88C,GAAGhiD,EAAGE,EAAEgF,GAAIlE,GAEhB,OAAO,IAAI+9C,GAAG,CAAEtzB,OAAQzrB,EAAG8rB,QAAS,KAEtC,SAASi2B,GAAGzjD,EAAGK,GACb,MAAMiB,EAAI,GAAIG,EAAIzB,EAAEo0B,wBAAwB,QAC5C,IAAK,IAAI1yB,EAAI,EAAGA,EAAID,EAAEI,OAAQH,IAAK,CACjC,MAAMC,EAAIF,EAAEC,GACZ,GAAIC,EAAEM,QAAU5B,EACd,MACFsB,EAAE8zB,QAAUn0B,EAAEqiD,QAAQhiD,EAAEmzB,SAE1B,OAAOxzB,EAET,SAASoiD,GAAG1jD,EAAGK,EAAGiB,GAChB,MAAMG,EAAI,GACV,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAEO,OAAQH,IAAK,CACjC,MAAMC,EAAIL,EAAEI,IAAMqoC,MAAOnoC,EAAGooC,KAAMtnC,EAAGkhD,MAAOjhD,GAAMkhD,GAAGliD,EAAGtB,EAAG,KAC3D,MAAOsC,GAAKf,GAAKc,GACf,GAAId,EACFH,EAAEkiD,QAAQhhD,QACP,GAAI3C,EAAEuD,KAAKZ,IAAKD,EACnB,MAGN1C,EAAEuD,QAAQ9B,GAEZ,SAASoiD,GAAG7jD,EAAGK,EAAGiB,GAChB,MAAMG,EAAIzB,EAAE8jD,YAAYzjD,EAAGiB,GAC3B,IAAKG,EACH,MAAO,GACT,MAAMC,EAAID,EAAEH,GAAIK,EAAI3B,EAAEktB,SAAUtrB,EAAI5B,EAAEmtB,OACtC,IAAIzqB,GAAI,EAAIC,GAAI,EAChB,IAAK,IAAIC,EAAI,EAAGA,EAAIjB,EAAEE,OAAQe,IAAK,CACjC,MAAMgE,EAAIjF,EAAEiB,GAAI0G,EAAI1H,EAAEgF,EAAE+C,OAAOrI,GAAIkI,EAAI5H,EAAEgF,EAAE2lB,KAAKjrB,GAChD,GAAIyF,GAAGrF,EAAG4H,EAAGE,GAAI,CACf9G,EAAIhB,IAAM4H,EAAG3G,EAAIjB,IAAM8H,EACvB,OAGJ,MAAO,CAAEugC,MAAOrnC,EAAGsnC,KAAMrnC,EAAGihD,MAAOniD,GAErC,MAAMsiD,GACJ,YAAY1jD,GACV0H,KAAK9E,EAAI5C,EAAE4C,EAAG8E,KAAK7E,EAAI7C,EAAE6C,EAAG6E,KAAKoX,OAAS9e,EAAE8e,OAE9C,YAAY9e,EAAGiB,EAAGG,GAChB,MAAQwB,EAAGvB,EAAGwB,EAAGvB,EAAGwd,OAAQvd,GAAMmG,KAClC,OAAOzG,EAAIA,GAAK,CAAEqI,MAAO,EAAG4iB,IAAKloB,GAAKhE,EAAEof,IAAI/d,EAAGC,EAAGC,EAAGN,EAAEirB,IAAKjrB,EAAEqI,OAAO,IAAMlI,EAAEqiC,OAE/E,YAAYzjC,GACV,MAAQ4C,EAAG3B,EAAG4B,EAAGzB,EAAG0d,OAAQzd,GAAMqG,KAAMpG,EAAItB,EAAEiG,MAC9C,MAAO,CACLrD,EAAG3B,EAAI6C,KAAKsH,IAAI9J,GAAKD,EACrBwB,EAAGzB,EAAI0C,KAAKqG,IAAI7I,GAAKD,EACrB4E,MAAO3E,IAIb,SAASqiD,GAAGhkD,GACV,MAAQ2b,MAAOtb,EAAG0f,KAAMze,EAAG+gC,KAAM5gC,GAAMzB,EACvC,GAAIY,EAAEU,GACJ,OAAO2iD,GAAG5jD,EAAGiB,GACf,GAAU,UAANA,EACF,OAAOkiD,GAAGxjD,GACZ,GAAU,UAANsB,EACF,OAAO,EACT,MAAMI,EAAIwiD,GAAGlkD,GACb,OAAO0B,aAAaqiD,GAAKriD,EAAIuF,GAAGvF,EAAGD,GAErC,SAASwiD,GAAGjkD,EAAGK,GACb,MAAMiB,EAAItB,EAAEo3B,eAAe/2B,GAC3B,OAAOiB,GAAKtB,EAAE++B,iBAAiB1+B,GAAKiB,EAAEwzB,QAAU,KAElD,SAASovB,GAAGlkD,GACV,OAAQA,EAAEod,OAAS,IAAIglB,yBAA2B+hB,GAAGnkD,GAAKokD,GAAGpkD,GAE/D,SAASokD,GAAGpkD,GACV,MAAQod,MAAO/c,EAAI,GAAI0f,KAAMze,GAAMtB,EAAGyB,EAAI6hD,GAAGhiD,EAAGjB,GAChD,GAAIO,EAAEa,GAAI,CACR,MAAMC,EAAIrB,EAAEq7B,eACZ,MAAO,CACLz4B,EAAGvB,EAAID,EAAI,KACXyB,EAAGxB,EAAI,KAAOD,GAGlB,OAAO,KAET,SAAS0iD,GAAGnkD,GACV,MAAQod,MAAO/c,EAAG0f,KAAMze,GAAMtB,EAAGyB,EAAIpB,EAAEmtB,QAAS9rB,EAAIrB,EAAE23B,YAAYn2B,OAAQF,EAAIF,EAAEyxB,QAAU7yB,EAAE2F,IAAM3F,EAAE0F,IAAKnE,EAAI2hD,GAAGjiD,EAAGjB,EAAGsB,GAAIe,EAAI,GAC9H,GAAIjB,EAAEy8B,KAAK8D,SAAU,CACnB,MAAMr/B,EAAItC,EAAE+hC,yBAAyB,EAAGzgC,GACxC,OAAO,IAAIoiD,GAAG,CACZ9gD,EAAGN,EAAEM,EACLC,EAAGP,EAAEO,EACLic,OAAQ9e,EAAEwhC,8BAA8BjgC,KAG5C,IAAK,IAAIe,EAAI,EAAGA,EAAIjB,IAAKiB,EACvBD,EAAEa,KAAKlD,EAAE+hC,yBAAyBz/B,EAAGf,IACvC,OAAOc,EAET,SAAS2hD,GAAGrkD,EAAGK,EAAGiB,GAChB,MAAMG,EAAIuiD,GAAG3jD,IAAMgiC,KAAM3gC,EAAG0b,MAAOzb,EAAGyH,KAAMxH,GAAMvB,EAAGqC,EAAIhB,EAAE8rB,QAAS7qB,EAAID,EAAEqd,KAAMnd,EAAIF,EAAE4Y,iBAAmBgpC,MAAO19C,EAAIhE,EAAG2hD,MAAOj7C,EAAI1G,GAAMD,GAAK,GAC7IlB,GAAKC,EAAEyrB,OAAOtrB,SAAW4O,GAAGzQ,EAAGsB,GAAIkjD,GAAGxkD,EAAG,CAAEqiC,KAAM3gC,EAAG6nB,OAAQ9nB,EAAG6iD,MAAO19C,EAAG29C,MAAOj7C,EAAGm7C,KAAMnjD,EAAG8b,MAAOzb,EAAGyH,KAAMxH,IAAM4e,GAAGxgB,IAEvH,SAASwkD,GAAGxkD,EAAGK,GACb,MAAQgiC,KAAM/gC,EAAGioB,OAAQ9nB,EAAG6iD,MAAO5iD,EAAG6iD,MAAO5iD,EAAG8iD,KAAM7iD,EAAGwb,MAAO1a,GAAMrC,EAAGsC,EAAIrB,EAAEmsB,MAAQ,QAAUptB,EAAE+I,KACnGpJ,EAAEse,OAAc,MAAN3b,GAAahB,IAAMD,IAAMgjD,GAAG1kD,EAAGyB,EAAGG,EAAEye,KAAMskC,GAAG3kD,EAAG,CAAEqiC,KAAM/gC,EAAGioB,OAAQ9nB,EAAG+Z,MAAO9Z,EAAG0b,MAAO1a,EAAGgqB,SAAU/pB,IAAM3C,EAAEue,UAAWve,EAAEse,OAAQomC,GAAG1kD,EAAGyB,EAAGG,EAAE0e,SAAUqkC,GAAG3kD,EAAG,CAAEqiC,KAAM/gC,EAAGioB,OAAQ9nB,EAAG+Z,MAAO7Z,EAAGyb,MAAO1a,EAAGgqB,SAAU/pB,IAAM3C,EAAEue,UAEpO,SAASmmC,GAAG1kD,EAAGK,EAAGiB,GAChB,MAAQ4rB,SAAUzrB,EAAG0rB,OAAQzrB,GAAMrB,EACnC,IAAIsB,GAAI,EAAIC,GAAI,EAChB5B,EAAEuf,YACF,IAAK,MAAM7c,KAAKjB,EAAG,CACjB,MAAQkI,MAAOhH,EAAG4pB,IAAK3pB,GAAMF,EAAGkE,EAAIlF,EAAEiB,GAAI2G,EAAI5H,EAAEmhD,GAAGlgD,EAAGC,EAAGlB,IACzDC,GAAK3B,EAAE2f,OAAO/Y,EAAE3D,EAAG2D,EAAE1D,GAAIvB,GAAI,IAAO3B,EAAE4f,OAAOhZ,EAAE3D,EAAG3B,GAAItB,EAAE4f,OAAOhZ,EAAE3D,EAAG2D,EAAE1D,IAAKtB,IAAMvB,EAAEukD,YAAY5kD,EAAG0C,EAAG,CAAEo9C,KAAMl+C,IAAMA,EAAI5B,EAAE0f,YAAc1f,EAAE4f,OAAOtW,EAAErG,EAAG3B,GAEvJtB,EAAE4f,OAAOvf,EAAE0pC,QAAQ9mC,EAAG3B,GAAItB,EAAE0f,YAAa1f,EAAEugB,OAE7C,SAASokC,GAAG3kD,EAAGK,GACb,MAAQgiC,KAAM/gC,EAAGioB,OAAQ9nB,EAAGirB,SAAUhrB,EAAG8Z,MAAO7Z,EAAGyb,MAAOxb,GAAMvB,EAAGqC,EAAIkgD,GAAGthD,EAAGG,EAAGC,GAChF,IAAK,MAAQonC,OAAQnmC,EAAG4mB,OAAQ3mB,EAAG+G,MAAO/C,EAAG2lB,IAAKjjB,KAAO5G,EAAG,CAC1D,MAAQwZ,OAASZ,gBAAiB9R,EAAI7H,GAAM,IAAOgB,EAAG+K,GAAU,IAANjM,EAC1DzB,EAAEse,OAAQte,EAAE4hB,UAAYpY,EAAGq8B,GAAG7lC,EAAG4B,EAAG8L,GAAKo1C,GAAGphD,EAAGkF,EAAG0C,IAAKtJ,EAAEuf,YACzD,MAAMvR,IAAM1M,EAAEsjD,YAAY5kD,EAAG2C,GAC7B,IAAIkqB,EACJ,GAAInf,EAAG,CACLM,EAAIhO,EAAE0f,YAAcmlC,GAAG7kD,EAAGyB,EAAG6H,EAAG5H,GAChC,MAAMorB,IAAMrrB,EAAEmjD,YAAY5kD,EAAG4C,EAAG,CAAEk9C,KAAM9xC,EAAGklB,SAAS,IACpDrG,EAAI7e,GAAK8e,EAAGD,GAAKg4B,GAAG7kD,EAAGyB,EAAGmF,EAAGlF,GAE/B1B,EAAE0f,YAAa1f,EAAE+f,KAAK8M,EAAI,UAAY,WAAY7sB,EAAEue,WAGxD,SAASsnB,GAAG7lC,EAAGK,EAAGiB,GAChB,MAAQ+e,IAAK5e,EAAG6e,OAAQ5e,GAAMrB,EAAEsb,MAAMgd,WAAajM,SAAU/qB,EAAGgI,MAAO/H,EAAG2qB,IAAK7pB,GAAMpB,GAAK,GACpF,MAANK,IAAc3B,EAAEuf,YAAavf,EAAE8f,KAAKle,EAAGH,EAAGiB,EAAId,EAAGF,EAAID,GAAIzB,EAAEugB,QAE7D,SAASskC,GAAG7kD,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAIrB,EAAEyjD,YAAYxiD,EAAGG,GAC3BC,GAAK1B,EAAE4f,OAAOle,EAAEuB,EAAGvB,EAAEwB,GAEvB,IAAI4hD,GAAK,CACP/wB,GAAI,SACJ,oBAAoB/zB,EAAGK,EAAGiB,GACxB,MAAMG,GAAKzB,EAAEoe,KAAK3C,UAAY,IAAI5Z,OAAQH,EAAI,GAC9C,IAAIC,EAAGC,EAAGc,EAAGC,EACb,IAAKf,EAAI,EAAGA,EAAIH,IAAKG,EACnBD,EAAI3B,EAAEo3B,eAAex1B,GAAIc,EAAIf,EAAEmzB,QAASnyB,EAAI,KAAMD,GAAKA,EAAE8qB,SAAW9qB,aAAa+9C,KAAO99C,EAAI,CAC1FsvB,QAASjyB,EAAE++B,iBAAiBn9B,GAC5BK,MAAOL,EACPme,KAAMojC,GAAGzgD,EAAGd,EAAGH,GACfka,MAAO3b,EACPoJ,KAAMzH,EAAE0zB,WAAW7H,QAAQ/Q,UAC3BW,MAAOzb,EAAE6yB,OACT6N,KAAM3/B,IACJf,EAAEojD,QAAUpiD,EAAGjB,EAAE6B,KAAKZ,GAC5B,IAAKf,EAAI,EAAGA,EAAIH,IAAKG,EACnBe,EAAIjB,EAAEE,GAAOe,IAAgB,IAAXA,EAAEod,OAAiBpd,EAAEod,KAAOmjC,GAAGxhD,EAAGE,EAAGN,EAAE0jD,aAE7D,WAAWhlD,EAAGK,EAAGiB,GACf,MAAMG,EAAmB,eAAfH,EAAE2jD,SAA2BvjD,EAAI1B,EAAE+sC,+BAAgCprC,EAAI3B,EAAE24B,UACnF,IAAK,IAAI/2B,EAAIF,EAAEG,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACtC,MAAMc,EAAIhB,EAAEE,GAAGmjD,QACfriD,IAAMA,EAAE2/B,KAAKnB,oBAAoBv/B,EAAGe,EAAE0G,MAAO3H,GAAKiB,EAAEqd,MAAQskC,GAAGrkD,EAAEsqB,IAAK5nB,EAAGf,MAG7E,mBAAmB3B,EAAGK,EAAGiB,GACvB,GAAmB,uBAAfA,EAAE2jD,SACJ,OACF,MAAMxjD,EAAIzB,EAAE+sC,+BACZ,IAAK,IAAIrrC,EAAID,EAAEI,OAAS,EAAGH,GAAK,IAAKA,EAAG,CACtC,MAAMC,EAAIF,EAAEC,GAAGqjD,QACf9B,GAAGthD,IAAM0iD,GAAGrkD,EAAEsqB,IAAK3oB,EAAG3B,EAAE24B,aAG5B,kBAAkB34B,EAAGK,EAAGiB,GACtB,MAAMG,EAAIpB,EAAEm8C,KAAKuI,SAChB9B,GAAGxhD,IAAqB,sBAAfH,EAAE2jD,UAAoCZ,GAAGrkD,EAAEsqB,IAAK7oB,EAAGzB,EAAE24B,YAEjE2D,SAAU,CACR0oB,WAAW,EACXC,SAAU,sBAGd,MAAMC,GAAK,CAACllD,EAAGK,KACb,IAAM8kD,UAAW7jD,EAAIjB,EAAG+kD,SAAU3jD,EAAIpB,GAAML,EAC5C,OAAOA,EAAEqlD,gBAAkB/jD,EAAI6C,KAAK4B,IAAIzE,EAAGjB,GAAIoB,EAAIzB,EAAEslD,iBAAmBnhD,KAAK4B,IAAItE,EAAGpB,IAAK,CACvF+kD,SAAU3jD,EACV0jD,UAAW7jD,EACXikD,WAAYphD,KAAK6B,IAAI3F,EAAGiB,KAEzBkkD,GAAK,CAACxlD,EAAGK,IAAY,OAANL,GAAoB,OAANK,GAAcL,EAAEgC,eAAiB3B,EAAE2B,cAAgBhC,EAAEiC,QAAU5B,EAAE4B,MACjG,MAAMwjD,WAAWnjB,GACf,YAAYjiC,GACVm8B,QAASz0B,KAAK29C,QAAS,EAAI39C,KAAK49C,eAAiB,GAAI59C,KAAK69C,aAAe,KAAM79C,KAAK89C,cAAe,EAAI99C,KAAK4T,MAAQtb,EAAEsb,MAAO5T,KAAKylB,QAAUntB,EAAEmtB,QAASzlB,KAAKuiB,IAAMjqB,EAAEiqB,IAAKviB,KAAK+9C,iBAAc,EAAQ/9C,KAAKg+C,iBAAc,EAAQh+C,KAAKi+C,gBAAa,EAAQj+C,KAAKiiB,eAAY,EAAQjiB,KAAKyZ,cAAW,EAAQzZ,KAAKsY,SAAM,EAAQtY,KAAKuY,YAAS,EAAQvY,KAAKoY,UAAO,EAAQpY,KAAKqY,WAAQ,EAAQrY,KAAK+W,YAAS,EAAQ/W,KAAKmW,WAAQ,EAAQnW,KAAKw+B,cAAW,EAAQx+B,KAAKoiC,cAAW,EAAQpiC,KAAKqU,YAAS,EAAQrU,KAAKqiC,cAAW,EAE/f,OAAO/pC,EAAGiB,EAAGG,GACXsG,KAAKyZ,SAAWnhB,EAAG0H,KAAKiiB,UAAY1oB,EAAGyG,KAAKw+B,SAAW9kC,EAAGsG,KAAKmgC,gBAAiBngC,KAAKk+C,cAAel+C,KAAKkhC,MAE3G,gBACElhC,KAAK2zB,gBAAkB3zB,KAAKmW,MAAQnW,KAAKyZ,SAAUzZ,KAAKoY,KAAOpY,KAAKw+B,SAASpmB,KAAMpY,KAAKqY,MAAQrY,KAAKmW,QAAUnW,KAAK+W,OAAS/W,KAAKiiB,UAAWjiB,KAAKsY,IAAMtY,KAAKw+B,SAASlmB,IAAKtY,KAAKuY,OAASvY,KAAK+W,QAEhM,cACE,MAAMze,EAAI0H,KAAKylB,QAAQ0S,QAAU,GACjC,IAAI5+B,EAAID,EAAEhB,EAAE6lD,eAAgB,CAACn+C,KAAK4T,OAAQ5T,OAAS,GACnD1H,EAAEmmB,SAAWllB,EAAIA,EAAEklB,OAAQ/kB,GAAMpB,EAAEmmB,OAAO/kB,EAAGsG,KAAK4T,MAAMyC,QAAS/d,EAAEmF,OAASlE,EAAIA,EAAEkE,KAAK,CAAC/D,EAAGC,IAAMrB,EAAEmF,KAAK/D,EAAGC,EAAGqG,KAAK4T,MAAMyC,QAASrW,KAAKylB,QAAQ0F,SAAW5xB,EAAE4xB,UAAWnrB,KAAK+9C,YAAcxkD,EAE5L,MACE,MAAQksB,QAASntB,EAAGiqB,IAAKhpB,GAAMyG,KAC/B,IAAK1H,EAAE0hC,QAEL,YADAh6B,KAAKmW,MAAQnW,KAAK+W,OAAS,GAG7B,MAAMrd,EAAIpB,EAAE6/B,OAAQx+B,EAAI2hB,GAAE5hB,EAAEua,MAAOra,EAAID,EAAEoC,KAAMlC,EAAImG,KAAKo+C,uBAAyBf,SAAU1iD,EAAG6iD,WAAY5iD,GAAMuiD,GAAGzjD,EAAGE,GACtH,IAAIiB,EAAGgE,EACPtF,EAAE0a,KAAOta,EAAEyf,OAAQpZ,KAAK2zB,gBAAkB94B,EAAImF,KAAKyZ,SAAU5a,EAAImB,KAAKq+C,SAASxkD,EAAGD,EAAGe,EAAGC,GAAK,KAAOiE,EAAImB,KAAKiiB,UAAWpnB,EAAImF,KAAKs+C,SAASzkD,EAAGD,EAAGe,EAAGC,GAAK,IAAKoF,KAAKmW,MAAQ/Z,KAAK4B,IAAInD,EAAGvC,EAAEmhB,UAAYzZ,KAAKyZ,UAAWzZ,KAAK+W,OAAS3a,KAAK4B,IAAIa,EAAGvG,EAAE2pB,WAAajiB,KAAKiiB,WAEpQ,SAAS3pB,EAAGiB,EAAGG,EAAGC,GAChB,MAAQ4oB,IAAK3oB,EAAG6f,SAAU5f,EAAG4rB,SAAW0S,QAAUqE,QAAS7hC,KAAUqF,KAAMpF,EAAIoF,KAAK49C,eAAiB,GAAI/iD,EAAImF,KAAKi+C,WAAa,CAAC,GAAIp/C,EAAIlF,EAAIgB,EAC5I,IAAI4G,EAAIjJ,EACRsB,EAAEkgB,UAAY,OAAQlgB,EAAEmgB,aAAe,SACvC,IAAItY,GAAK,EAAGkE,GAAK9G,EACjB,OAAOmB,KAAK+9C,YAAYh+C,QAAQ,CAACkG,EAAG6e,KAClC,MAAMC,EAAIrrB,EAAIH,EAAI,EAAIK,EAAEsc,YAAYjQ,EAAE0yB,MAAMxiB,OACrC,IAAN2O,GAAWjqB,EAAEA,EAAEf,OAAS,GAAKirB,EAAI,EAAIpqB,EAAId,KAAO0H,GAAK1C,EAAGhE,EAAEA,EAAEf,QAAUgrB,EAAI,EAAI,EAAI,IAAM,EAAGnf,GAAK9G,EAAG4C,KAAM7G,EAAEkqB,GAAK,CAAE1M,KAAM,EAAGE,IAAK3S,EAAG44C,IAAK98C,EAAG0U,MAAO4O,EAAGhO,OAAQpd,GAAKkB,EAAEA,EAAEf,OAAS,IAAMirB,EAAIpqB,IACxL4G,EAEN,SAASjJ,EAAGiB,EAAGG,EAAGC,GAChB,MAAQ4oB,IAAK3oB,EAAGqoB,UAAWpoB,EAAG4rB,SAAW0S,QAAUqE,QAAS7hC,KAAUqF,KAAMpF,EAAIoF,KAAK49C,eAAiB,GAAI/iD,EAAImF,KAAKg+C,YAAc,GAAIn/C,EAAIhF,EAAIvB,EAC7I,IAAIiJ,EAAI5G,EAAG8G,EAAI,EAAGkE,EAAI,EAAGM,EAAI,EAAG6e,EAAI,EACpC,OAAO9kB,KAAK+9C,YAAYh+C,QAAQ,CAACglB,EAAGrf,KAClC,MAAMxK,EAAIxB,EAAIH,EAAI,EAAIK,EAAEsc,YAAY6O,EAAE4T,MAAMxiB,MAC5CzQ,EAAI,GAAKC,EAAIhM,EAAI,EAAIgB,EAAIkE,IAAM0C,GAAKE,EAAI9G,EAAGE,EAAEW,KAAK,CAAE2a,MAAO1U,EAAGsV,OAAQpR,IAAMM,GAAKxE,EAAI9G,EAAGmqB,IAAKrjB,EAAIkE,EAAI,GAAI/K,EAAE8K,GAAK,CAAE0S,KAAMnS,EAAGqS,IAAK3S,EAAG64C,IAAK15B,EAAG3O,MAAOjb,EAAG6b,OAAQpd,GAAK8H,EAAIrF,KAAK6B,IAAIwD,EAAGvG,GAAIyK,GAAKhM,EAAIgB,IAC7L4G,GAAKE,EAAG5G,EAAEW,KAAK,CAAE2a,MAAO1U,EAAGsV,OAAQpR,IAAMpE,EAE/C,iBACE,IAAKvB,KAAKylB,QAAQuU,QAChB,OACF,MAAM1hC,EAAI0H,KAAKo+C,uBAAyBR,eAAgBrkD,EAAGksB,SAAW0X,MAAOzjC,EAAGy+B,QAAUqE,QAAS7iC,GAAK8kD,IAAK7kD,IAAQoG,KAAMnG,EAAIgqB,GAAGjqB,EAAGoG,KAAKoY,KAAMpY,KAAKmW,OACrJ,GAAInW,KAAK2zB,eAAgB,CACvB,IAAIh5B,EAAI,EAAGC,EAAImG,GAAErH,EAAGsG,KAAKoY,KAAOze,EAAGqG,KAAKqY,MAAQrY,KAAKi+C,WAAWtjD,IAChE,IAAK,MAAME,KAAKtB,EACdoB,IAAME,EAAE0jD,MAAQ5jD,EAAIE,EAAE0jD,IAAK3jD,EAAImG,GAAErH,EAAGsG,KAAKoY,KAAOze,EAAGqG,KAAKqY,MAAQrY,KAAKi+C,WAAWtjD,KAAME,EAAEyd,KAAOtY,KAAKsY,IAAMhgB,EAAIqB,EAAGkB,EAAEud,KAAOve,EAAE6kD,WAAW7kD,EAAEqB,EAAEN,GAAIC,EAAEsb,OAAQvb,GAAKC,EAAEsb,MAAQxc,MACrK,CACL,IAAIgB,EAAI,EAAGC,EAAImG,GAAErH,EAAGsG,KAAKsY,IAAMhgB,EAAIqB,EAAGqG,KAAKuY,OAASvY,KAAKg+C,YAAYrjD,GAAGoc,QACxE,IAAK,MAAMlc,KAAKtB,EACdsB,EAAE2jD,MAAQ7jD,IAAMA,EAAIE,EAAE2jD,IAAK5jD,EAAImG,GAAErH,EAAGsG,KAAKsY,IAAMhgB,EAAIqB,EAAGqG,KAAKuY,OAASvY,KAAKg+C,YAAYrjD,GAAGoc,SAAUlc,EAAEyd,IAAM1d,EAAGC,EAAEud,MAAQpY,KAAKoY,KAAOze,EAAGkB,EAAEud,KAAOve,EAAE6kD,WAAW7kD,EAAEqB,EAAEL,EAAEud,MAAOvd,EAAEsb,OAAQvb,GAAKC,EAAEkc,OAASpd,GAGzM,eACE,MAAiC,QAA1BqG,KAAKylB,QAAQ2c,UAAgD,WAA1BpiC,KAAKylB,QAAQ2c,SAEzD,OACE,GAAIpiC,KAAKylB,QAAQuU,QAAS,CACxB,MAAM1hC,EAAI0H,KAAKuiB,IACf7Z,GAAGpQ,EAAG0H,MAAOA,KAAK2+C,QAASlmC,GAAGngB,IAGlC,QACE,MAAQmtB,QAASntB,EAAG0lD,YAAazkD,EAAG0kD,WAAYvkD,EAAG6oB,IAAK5oB,GAAMqG,MAAQm9B,MAAOvjC,EAAGu+B,OAAQt+B,GAAMvB,EAAGqC,EAAI+M,GAAE+L,MAAO7Y,EAAIipB,GAAGvrB,EAAEmmD,IAAKz+C,KAAKoY,KAAMpY,KAAKmW,OAAQtb,EAAIygB,GAAEzhB,EAAEoa,OAASR,MAAO5U,EAAG29B,QAASj7B,GAAM1H,EAAG4H,EAAI5G,EAAEkB,KAAM4J,EAAIlE,EAAI,EACrN,IAAIwE,EACJjG,KAAK8kC,YAAanrC,EAAEmgB,UAAYlf,EAAEkf,UAAU,QAASngB,EAAEogB,aAAe,SAAUpgB,EAAE4f,UAAY,GAAK5f,EAAEsa,KAAOpZ,EAAEue,OAC9G,MAAQikC,SAAUv4B,EAAGs4B,UAAWr4B,EAAGy4B,WAAY93C,GAAMy3C,GAAGtjD,EAAG4H,GAAIvG,EAAI,SAAS+pB,EAAG1d,EAAGiT,GAChF,GAAI5c,MAAMknB,IAAMA,GAAK,GAAKlnB,MAAMmnB,IAAMA,EAAI,EACxC,OACFprB,EAAE4c,OACF,MAAM3O,EAAI3O,EAAEuhB,EAAEjB,UAAW,GACzB,GAAI5f,EAAEkgB,UAAY5gB,EAAEuhB,EAAEX,UAAWlf,GAAIhB,EAAE69C,QAAUv+C,EAAEuhB,EAAEg9B,QAAS,QAAS79C,EAAE8qC,eAAiBxrC,EAAEuhB,EAAEiqB,eAAgB,GAAI9qC,EAAEs9C,SAAWh+C,EAAEuhB,EAAEy8B,SAAU,SAAUt9C,EAAE4f,UAAY3R,EAAGjO,EAAE2f,YAAcrgB,EAAEuhB,EAAElB,YAAa3e,GAAIhB,EAAE6qC,YAAYvrC,EAAEuhB,EAAEokC,SAAU,KAAM/kD,EAAEyjD,cAAe,CAC9P,MAAM91C,EAAI,CACR4P,OAAQ2N,EAAI3oB,KAAKyiD,MAAQ,EACzB3nC,WAAYsD,EAAEtD,WACdC,SAAUqD,EAAErD,SACZc,YAAarQ,GACZnC,EAAI7K,EAAEkkD,MAAM75B,EAAGH,EAAI,GAAI/c,EAAIR,EAAI5B,EAClCsR,GAAGtd,EAAG6N,EAAG/B,EAAGsC,EAAGlO,EAAE0jD,iBAAmBz4B,OAC/B,CACL,MAAMtd,EAAID,EAAInL,KAAK6B,KAAKwD,EAAIsjB,GAAK,EAAG,GAAItf,EAAI7K,EAAE8jD,WAAWz5B,EAAGH,GAAI/c,EAAIsT,GAAGb,EAAE87B,cACzE38C,EAAE6d,YAAajf,OAAOmzB,OAAO3jB,GAAGmmC,KAAMrL,GAAY,IAANA,GAAWtoB,GAAG5gB,EAAG,CAC3DuB,EAAGuK,EACHtK,EAAGqM,EACHgT,EAAGsK,EACHjmB,EAAGkmB,EACH3N,OAAQrP,IACLpO,EAAEoe,KAAKtS,EAAG+B,EAAGsd,EAAGC,GAAIprB,EAAEqe,OAAc,IAANpQ,GAAWjO,EAAEue,SAElDve,EAAE6c,WACDqO,EAAI,SAASI,EAAG1d,EAAGiT,GACpBvB,GAAGtf,EAAG6gB,EAAEme,KAAM1T,EAAG1d,EAAI7B,EAAI,EAAG7K,EAAG,CAC7Bmf,cAAeQ,EAAEkT,OACjB5T,UAAWlf,EAAEkf,UAAUU,EAAEV,cAE1B3e,EAAI6E,KAAK2zB,eAAgB3O,EAAIhlB,KAAKo+C,sBACjCn4C,EAAJ9K,EAAQ,CACND,EAAG6F,GAAEnH,EAAGoG,KAAKoY,KAAO7W,EAAGvB,KAAKqY,MAAQ3e,EAAE,IACtCyB,EAAG6E,KAAKsY,IAAM/W,EAAIyjB,EAClBsV,KAAM,GACA,CACNp/B,EAAG8E,KAAKoY,KAAO7W,EACfpG,EAAG4F,GAAEnH,EAAGoG,KAAKsY,IAAM0M,EAAIzjB,EAAGvB,KAAKuY,OAAShf,EAAE,GAAGwd,QAC7CujB,KAAM,GACLxW,GAAG9jB,KAAKuiB,IAAKjqB,EAAEymD,eAClB,MAAMp3C,EAAIjC,EAAInE,EACdvB,KAAK+9C,YAAYh+C,QAAQ,CAACklB,EAAG1d,KAC3B5N,EAAE2f,YAAc2L,EAAE+5B,WAAangD,EAAGlF,EAAEkgB,UAAYoL,EAAE+5B,WAAangD,EAC/D,MAAM2b,EAAI7gB,EAAEuc,YAAY+O,EAAE0T,MAAMxiB,MAAOvO,EAAIhN,EAAEkf,UAAUmL,EAAEnL,YAAcmL,EAAEnL,UAAYjgB,EAAEigB,YAAatS,EAAIsd,EAAInf,EAAI6U,EAChH,IAAI/U,EAAIQ,EAAE/K,EAAG6M,EAAI9B,EAAE9K,EACnBP,EAAEqkD,SAASj/C,KAAKmW,OAAQhb,EAAIoM,EAAI,GAAK9B,EAAI+B,EAAIjG,EAAIvB,KAAKqY,QAAUtQ,EAAI9B,EAAE9K,GAAKwM,EAAG1B,EAAEq0B,OAAQ70B,EAAIQ,EAAE/K,EAAI6F,GAAEnH,EAAGoG,KAAKoY,KAAO7W,EAAGvB,KAAKqY,MAAQ3e,EAAEuM,EAAEq0B,QAAU/yB,EAAI,GAAKQ,EAAIJ,EAAI3H,KAAKuY,SAAW9S,EAAIQ,EAAE/K,EAAIuK,EAAIlM,EAAE0M,EAAEq0B,MAAMnkB,MAAQ5U,EAAG0E,EAAEq0B,OAAQvyB,EAAI9B,EAAE9K,EAAI4F,GAAEnH,EAAGoG,KAAKsY,IAAM0M,EAAIzjB,EAAGvB,KAAKuY,OAAShf,EAAE0M,EAAEq0B,MAAMvjB,SACxR,MAAM8rB,EAAIjoC,EAAEM,EAAEuK,GACdvK,EAAE2nC,EAAG96B,EAAGkd,GAAIxf,EAAIzE,GAAG4G,EAAGnC,EAAIqf,EAAInf,EAAGxK,EAAIsK,EAAI+B,EAAIxH,KAAKqY,MAAO/f,EAAEmmD,KAAM55B,EAAEjqB,EAAEM,EAAEuK,GAAIsC,EAAGkd,GAAI9pB,EAAI8K,EAAE/K,GAAKsM,EAAIjG,EAAI0E,EAAE9K,GAAKwM,IAC1Guc,GAAGlkB,KAAKuiB,IAAKjqB,EAAEymD,eAErB,YACE,MAAMzmD,EAAI0H,KAAKylB,QAASlsB,EAAIjB,EAAEikC,MAAO7iC,EAAI4hB,GAAE/hB,EAAE0a,MAAOta,EAAIkO,GAAEtO,EAAEijC,SAC5D,IAAKjjC,EAAEygC,QACL,OACF,MAAMpgC,EAAIiqB,GAAGvrB,EAAEmmD,IAAKz+C,KAAKoY,KAAMpY,KAAKmW,OAAQtc,EAAImG,KAAKuiB,IAAK5nB,EAAIpB,EAAE6oC,SAAUxnC,EAAIlB,EAAEqC,KAAO,EAAGlB,EAAIlB,EAAE2e,IAAM1d,EACtG,IAAIiE,EAAG0C,EAAIvB,KAAKoY,KAAM3W,EAAIzB,KAAKmW,MAC/B,GAAInW,KAAK2zB,eACPlyB,EAAIrF,KAAK6B,OAAO+B,KAAKi+C,YAAap/C,EAAImB,KAAKsY,IAAMzd,EAAG0G,EAAIR,GAAEzI,EAAE6kC,MAAO57B,EAAGvB,KAAKqY,MAAQ5W,OAChF,CACH,MAAMwE,EAAIjG,KAAKg+C,YAAY/1B,OAAO,CAACnD,EAAGC,IAAM3oB,KAAK6B,IAAI6mB,EAAGC,EAAEhO,QAAS,GACnElY,EAAIhE,EAAIkG,GAAEzI,EAAE6kC,MAAOn9B,KAAKsY,IAAKtY,KAAKuY,OAAStS,EAAI3N,EAAE6/B,OAAOqE,QAAUx8B,KAAKo+C,uBAEzE,MAAMz4C,EAAI5E,GAAEpG,EAAG4G,EAAGA,EAAIE,GACtB5H,EAAEigB,UAAYlgB,EAAEkgB,UAAUhZ,GAAGnG,IAAKd,EAAEkgB,aAAe,SAAUlgB,EAAEyf,YAAc/f,EAAEka,MAAO5Z,EAAEggB,UAAYtgB,EAAEka,MAAO5Z,EAAEoa,KAAOva,EAAE0f,OAAQH,GAAGpf,EAAGN,EAAEo/B,KAAMhzB,EAAG9G,EAAGnF,GAEtJ,sBACE,MAAMpB,EAAI0H,KAAKylB,QAAQ8W,MAAOhjC,EAAI+hB,GAAEhjB,EAAE2b,MAAOva,EAAImO,GAAEvP,EAAEkkC,SACrD,OAAOlkC,EAAE0hC,QAAUzgC,EAAE6a,WAAa1a,EAAEqd,OAAS,EAE/C,iBAAiBze,EAAGiB,GAClB,IAAIG,EAAGC,EAAGC,EACV,GAAIoF,GAAG1G,EAAG0H,KAAKoY,KAAMpY,KAAKqY,QAAUrZ,GAAGzF,EAAGyG,KAAKsY,IAAKtY,KAAKuY,QACvD,IAAK3e,EAAIoG,KAAK49C,eAAgBlkD,EAAI,EAAGA,EAAIE,EAAEE,SAAUJ,EACnD,GAAIC,EAAIC,EAAEF,GAAIsF,GAAG1G,EAAGqB,EAAEye,KAAMze,EAAEye,KAAOze,EAAEwc,QAAUnX,GAAGzF,EAAGI,EAAE2e,IAAK3e,EAAE2e,IAAM3e,EAAEod,QACtE,OAAO/W,KAAK+9C,YAAYrkD,GAE9B,OAAO,KAET,YAAYpB,GACV,MAAMiB,EAAIyG,KAAKylB,QACf,IAAKy5B,GAAG5mD,EAAE4D,KAAM3C,GACd,OACF,MAAMG,EAAIsG,KAAKm/C,iBAAiB7mD,EAAE4C,EAAG5C,EAAE6C,GACvC,GAAe,cAAX7C,EAAE4D,MAAmC,aAAX5D,EAAE4D,KAAqB,CACnD,MAAMvC,EAAIqG,KAAK69C,aAAcjkD,EAAI6jD,GAAG9jD,EAAGD,GACvCC,IAAMC,GAAKN,EAAEC,EAAE6lD,QAAS,CAAC9mD,EAAGqB,EAAGqG,MAAOA,MAAOA,KAAK69C,aAAenkD,EAAGA,IAAME,GAAKN,EAAEC,EAAEyb,QAAS,CAAC1c,EAAGoB,EAAGsG,MAAOA,WAE1GtG,GAAKJ,EAAEC,EAAE0b,QAAS,CAAC3c,EAAGoB,EAAGsG,MAAOA,OAGtC,SAASk/C,GAAGjnD,EAAGK,GACb,SAAiB,cAANL,GAA2B,aAANA,IAAsBK,EAAE0c,UAAW1c,EAAE8mD,YAAY9mD,EAAE2c,SAAkB,UAANhd,GAAuB,YAANA,IAElH,IAAIonD,GAAK,CACPrzB,GAAI,SACJszB,SAAU5B,GACV,MAAMzlD,EAAGK,EAAGiB,GACV,MAAMG,EAAIzB,EAAEygC,OAAS,IAAIglB,GAAG,CAAEn7B,IAAKtqB,EAAEsqB,IAAKkD,QAASlsB,EAAGqa,MAAO3b,IAC7DoP,GAAEijB,UAAUryB,EAAGyB,EAAGH,GAAI8N,GAAEwrC,OAAO56C,EAAGyB,IAEpC,KAAKzB,GACHoP,GAAE4sC,UAAUh8C,EAAGA,EAAEygC,eAAgBzgC,EAAEygC,QAErC,aAAazgC,EAAGK,EAAGiB,GACjB,MAAMG,EAAIzB,EAAEygC,OACZrxB,GAAEijB,UAAUryB,EAAGyB,EAAGH,GAAIG,EAAE+rB,QAAUlsB,GAEpC,YAAYtB,GACV,MAAMK,EAAIL,EAAEygC,OACZpgC,EAAE4lD,cAAe5lD,EAAEinD,kBAErB,WAAWtnD,EAAGK,GACZA,EAAEm9C,QAAUx9C,EAAEygC,OAAO8mB,YAAYlnD,EAAEk9C,QAErCjhB,SAAU,CACRyF,SAAS,EACToI,SAAU,MACVjF,MAAO,SACPkF,UAAU,EACVlX,SAAS,EACT9W,OAAQ,IACR,QAAQpc,EAAGK,EAAGiB,GACZ,MAAMG,EAAIpB,EAAE2B,aAAcN,EAAIJ,EAAEqa,MAChCja,EAAEq9B,iBAAiBt9B,IAAMC,EAAEwwB,KAAKzwB,GAAIpB,EAAEo1B,QAAS,IAAO/zB,EAAEqwB,KAAKtwB,GAAIpB,EAAEo1B,QAAS,IAE9E1Y,QAAS,KACToqC,QAAS,KACTjnB,OAAQ,CACN1kB,MAAQxb,GAAMA,EAAE2b,MAAM6R,QAAQhS,MAC9B4pC,SAAU,GACV7gB,QAAS,GACT,eAAevkC,GACb,MAAMK,EAAIL,EAAEoe,KAAK3C,UAAYykB,QAAUmlB,cAAe/jD,EAAG2d,WAAYxd,EAAGogB,UAAWngB,EAAG8Z,MAAO7Z,IAAQ3B,EAAEygC,OAAOjT,QAC9G,OAAOxtB,EAAEuzB,yBAAyBpxB,IAAKP,IACrC,MAAMc,EAAId,EAAEyzB,WAAWqE,SAASp4B,EAAI,OAAI,GAASqB,EAAIiN,GAAElN,EAAEsd,aACzD,MAAO,CACL0gB,KAAMrgC,EAAEuB,EAAEK,OAAOs2B,MACjB3W,UAAWlf,EAAE4Y,gBACbyrC,UAAWplD,EACX8zB,QAAS7zB,EAAEqwB,QACXstB,QAAS78C,EAAE2rB,eACXs4B,SAAUjkD,EAAE4rB,WACZke,eAAgB9pC,EAAE6rB,iBAClBywB,SAAUt8C,EAAE8rB,gBACZlN,WAAY3e,EAAEub,MAAQvb,EAAEmc,QAAU,EAClCuC,YAAa3e,EAAE6Y,YACf0D,WAAYxd,GAAKiB,EAAEuc,WACnBC,SAAUxc,EAAEwc,SACZ2C,UAAWngB,GAAKgB,EAAEmf,UAClBw8B,aAAc,EACdr8C,aAAcJ,EAAEK,QAEjB8F,QAGPu8B,MAAO,CACL9oB,MAAQxb,GAAMA,EAAE2b,MAAM6R,QAAQhS,MAC9BumB,SAAS,EACToI,SAAU,SACVzJ,KAAM,KAGVH,YAAa,CACX5iB,YAAc3d,IAAOA,EAAE4d,WAAW,MAClCsiB,OAAQ,CACNviB,YAAc3d,IAAO,CAAC,iBAAkB,SAAU,QAAQ6kB,SAAS7kB,MAIzE,MAAMwnD,WAAWllB,GACf,YAAYjiC,GACVm8B,QAASz0B,KAAK4T,MAAQtb,EAAEsb,MAAO5T,KAAKylB,QAAUntB,EAAEmtB,QAASzlB,KAAKuiB,IAAMjqB,EAAEiqB,IAAKviB,KAAK0/C,cAAW,EAAQ1/C,KAAKsY,SAAM,EAAQtY,KAAKuY,YAAS,EAAQvY,KAAKoY,UAAO,EAAQpY,KAAKqY,WAAQ,EAAQrY,KAAKmW,WAAQ,EAAQnW,KAAK+W,YAAS,EAAQ/W,KAAKoiC,cAAW,EAAQpiC,KAAKqU,YAAS,EAAQrU,KAAKqiC,cAAW,EAEhS,OAAO/pC,EAAGiB,GACR,MAAMG,EAAIsG,KAAKylB,QACf,GAAIzlB,KAAKoY,KAAO,EAAGpY,KAAKsY,IAAM,GAAI5e,EAAEsgC,QAElC,YADAh6B,KAAKmW,MAAQnW,KAAK+W,OAAS/W,KAAKqY,MAAQrY,KAAKuY,OAAS,GAGxDvY,KAAKmW,MAAQnW,KAAKqY,MAAQ/f,EAAG0H,KAAK+W,OAAS/W,KAAKuY,OAAShf,EACzD,MAAMI,EAAIxB,EAAEuB,EAAEi/B,MAAQj/B,EAAEi/B,KAAK7+B,OAAS,EACtCkG,KAAK0/C,SAAW73C,GAAEnO,EAAE8iC,SACpB,MAAM5iC,EAAID,EAAI2hB,GAAE5hB,EAAEua,MAAMG,WAAapU,KAAK0/C,SAAS3oC,OACnD/W,KAAK2zB,eAAiB3zB,KAAK+W,OAASnd,EAAIoG,KAAKmW,MAAQvc,EAEvD,eACE,MAAMtB,EAAI0H,KAAKylB,QAAQ2c,SACvB,MAAa,QAAN9pC,GAAqB,WAANA,EAExB,UAAUA,GACR,MAAQggB,IAAK/e,EAAG6e,KAAM1e,EAAG6e,OAAQ5e,EAAG0e,MAAOze,EAAG6rB,QAAS5rB,GAAMmG,KAAMrF,EAAId,EAAEsjC,MACzE,IAAWtiC,EAAGgE,EAAG0C,EAAb3G,EAAI,EACR,OAAOoF,KAAK2zB,gBAAkB90B,EAAIkC,GAAEpG,EAAGjB,EAAGE,GAAI2H,EAAIhI,EAAIjB,EAAGuC,EAAIjB,EAAIF,IAAqB,SAAfG,EAAEuoC,UAAuBvjC,EAAInF,EAAIpB,EAAGiJ,EAAIR,GAAEpG,EAAGhB,EAAGJ,GAAIqB,GAAS,GAALuB,IAAa0C,EAAIjF,EAAItB,EAAGiJ,EAAIR,GAAEpG,EAAGpB,EAAGI,GAAIiB,EAAQ,GAAJuB,GAAUtB,EAAIlB,EAAIJ,GAAI,CAAE8kC,OAAQx/B,EAAGy/B,OAAQ/8B,EAAGkY,SAAU5e,EAAGsc,SAAUvc,GAElP,OACE,MAAMtC,EAAI0H,KAAKuiB,IAAKhpB,EAAIyG,KAAKylB,QAC7B,IAAKlsB,EAAEygC,QACL,OACF,MAAMtgC,EAAI4hB,GAAE/hB,EAAE0a,MAAOra,EAAIF,EAAE0a,WAAa,EAAIpU,KAAK0/C,SAASpnC,KAAO+lB,OAAQxkC,EAAGykC,OAAQ3jC,EAAG8e,SAAU7e,EAAGuc,SAAUtc,GAAMmF,KAAK2/C,UAAU/lD,GACnIqf,GAAG3gB,EAAGiB,EAAEo/B,KAAM,EAAG,EAAGj/B,EAAG,CACrB+Z,MAAOla,EAAEka,MACTgG,SAAU7e,EACVuc,SAAUtc,EACVif,UAAWhZ,GAAGvH,EAAE4jC,OAChBpjB,aAAc,SACdH,YAAa,CAAC/f,EAAGc,MAIvB,SAASilD,GAAG3nD,EAAGK,GACb,MAAMiB,EAAI,IAAIkmD,GAAG,CACfl9B,IAAKtqB,EAAEsqB,IACPkD,QAASntB,EACTsb,MAAO3b,IAEToP,GAAEijB,UAAUryB,EAAGsB,EAAGjB,GAAI+O,GAAEwrC,OAAO56C,EAAGsB,GAAItB,EAAE4nD,WAAatmD,EAEvD,IAAIumD,GAAK,CACP9zB,GAAI,QACJszB,SAAUG,GACV,MAAMxnD,EAAGK,EAAGiB,GACVqmD,GAAG3nD,EAAGsB,IAER,KAAKtB,GACH,MAAMK,EAAIL,EAAE4nD,WACZx4C,GAAE4sC,UAAUh8C,EAAGK,UAAWL,EAAE4nD,YAE9B,aAAa5nD,EAAGK,EAAGiB,GACjB,MAAMG,EAAIzB,EAAE4nD,WACZx4C,GAAEijB,UAAUryB,EAAGyB,EAAGH,GAAIG,EAAE+rB,QAAUlsB,GAEpCg7B,SAAU,CACR4I,MAAO,SACPnD,SAAS,EACT/lB,KAAM,CACJI,OAAQ,QAEVguB,UAAU,EACV7F,QAAS,GACT4F,SAAU,MACVzJ,KAAM,GACNtkB,OAAQ,KAEVomB,cAAe,CACbhnB,MAAO,SAET+kB,YAAa,CACX5iB,aAAa,EACbE,YAAY,IAGhB,MAAMiqC,GAAqB,IAAIC,QAC/B,IAAIC,GAAK,CACPj0B,GAAI,WACJ,MAAM/zB,EAAGK,EAAGiB,GACV,MAAMG,EAAI,IAAI+lD,GAAG,CACfl9B,IAAKtqB,EAAEsqB,IACPkD,QAASlsB,EACTqa,MAAO3b,IAEToP,GAAEijB,UAAUryB,EAAGyB,EAAGH,GAAI8N,GAAEwrC,OAAO56C,EAAGyB,GAAIqmD,GAAGv8B,IAAIvrB,EAAGyB,IAElD,KAAKzB,GACHoP,GAAE4sC,UAAUh8C,EAAG8nD,GAAG18B,IAAIprB,IAAK8nD,GAAGxhC,OAAOtmB,IAEvC,aAAaA,EAAGK,EAAGiB,GACjB,MAAMG,EAAIqmD,GAAG18B,IAAIprB,GACjBoP,GAAEijB,UAAUryB,EAAGyB,EAAGH,GAAIG,EAAE+rB,QAAUlsB,GAEpCg7B,SAAU,CACR4I,MAAO,SACPnD,SAAS,EACT/lB,KAAM,CACJI,OAAQ,UAEVguB,UAAU,EACV7F,QAAS,EACT4F,SAAU,MACVzJ,KAAM,GACNtkB,OAAQ,MAEVomB,cAAe,CACbhnB,MAAO,SAET+kB,YAAa,CACX5iB,aAAa,EACbE,YAAY,IAGhB,MAAMoqC,GAAK,CACT,QAAQjoD,GACN,IAAKA,EAAE6B,OACL,OAAO,EACT,IAAIxB,EAAGiB,EAAGG,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAC5B,IAAKtB,EAAI,EAAGiB,EAAItB,EAAE6B,OAAQxB,EAAIiB,IAAKjB,EAAG,CACpC,MAAMuB,EAAI5B,EAAEK,GAAG80B,QACf,GAAIvzB,GAAKA,EAAEsmD,WAAY,CACrB,MAAMxlD,EAAId,EAAEumD,kBACZ1mD,GAAKiB,EAAEO,EAAGvB,GAAKgB,EAAEQ,IAAKvB,GAG1B,MAAO,CACLsB,EAAGxB,EAAIE,EACPuB,EAAGxB,EAAIC,IAGX,QAAQ3B,EAAGK,GACT,IAAKL,EAAE6B,OACL,OAAO,EACT,IAAoDF,EAAGC,EAAGc,EAAtDpB,EAAIjB,EAAE4C,EAAGxB,EAAIpB,EAAE6C,EAAGxB,EAAIb,OAAO2D,kBACjC,IAAK7C,EAAI,EAAGC,EAAI5B,EAAE6B,OAAQF,EAAIC,IAAKD,EAAG,CACpC,MAAMgB,EAAI3C,EAAE2B,GAAGwzB,QACf,GAAIxyB,GAAKA,EAAEulD,WAAY,CACrB,MAAMtlD,EAAID,EAAE8sC,iBAAkB7oC,EAAIJ,EAAGnG,EAAGuC,GACxCgE,EAAIlF,IAAMA,EAAIkF,EAAGlE,EAAIC,IAGzB,GAAID,EAAG,CACL,MAAMC,EAAID,EAAEylD,kBACZ7mD,EAAIqB,EAAEM,EAAGxB,EAAIkB,EAAEO,EAEjB,MAAO,CACLD,EAAG3B,EACH4B,EAAGzB,KAIT,SAAS2mD,GAAGpoD,EAAGK,GACb,OAAOA,IAAMH,EAAEG,GAAKF,MAAMI,UAAUgD,KAAKhC,MAAMvB,EAAGK,GAAKL,EAAEuD,KAAKlD,IAAKL,EAErE,SAASqoD,GAAGroD,GACV,OAAoB,iBAALA,GAAiBA,aAAasoD,SAAWtoD,EAAEsC,QAAQ,OAC9D,EAAItC,EAAEsD,MAAM,MACbtD,EAEL,SAASuoD,GAAGvoD,EAAGK,GACb,MAAQ80B,QAAS7zB,EAAGU,aAAcP,EAAGQ,MAAOP,GAAMrB,EAAGsB,EAAI3B,EAAEo3B,eAAe31B,GAAG4zB,YAAckD,MAAO32B,EAAGiG,MAAOnF,GAAMf,EAAE6mD,iBAAiB9mD,GACrI,MAAO,CACLia,MAAO3b,EACPu4B,MAAO32B,EACPqzB,OAAQtzB,EAAE22B,UAAU52B,GACpBwzB,IAAKl1B,EAAEoe,KAAK3C,SAASha,GAAG2c,KAAK1c,GAC7Bk/B,eAAgBl+B,EAChBoyB,QAASnzB,EAAEi1B,aACX5B,UAAWtzB,EACXM,aAAcP,EACd0zB,QAAS7zB,GAGb,SAASmnD,GAAGzoD,EAAGK,GACb,MAAMiB,EAAItB,EAAE2b,MAAM2O,KAAOo+B,KAAMjnD,EAAGknD,OAAQjnD,EAAG4iC,MAAO3iC,GAAM3B,GAAKolD,SAAUxjD,EAAGujD,UAAWziD,GAAMrC,EAAGsC,EAAI0gB,GAAEhjB,EAAEuoD,UAAWhmD,EAAIygB,GAAEhjB,EAAEwoD,WAAYjiD,EAAIyc,GAAEhjB,EAAEyoD,YAAax/C,EAAI3H,EAAEE,OAAQ2H,EAAI9H,EAAEG,OAAQ6L,EAAIjM,EAAEI,OAAQmM,EAAI4B,GAAEvP,EAAEkkC,SAC9M,IAAI1X,EAAI7e,EAAE8Q,OAAQgO,EAAI,EAAGrf,EAAIhM,EAAEuuB,OAAO,CAAC9sB,EAAG6pB,IAAM7pB,EAAI6pB,EAAEg8B,OAAOlnD,OAASkrB,EAAEi8B,MAAMnnD,OAASkrB,EAAEk8B,MAAMpnD,OAAQ,GACvG,GAAI4L,GAAKzN,EAAEkpD,WAAWrnD,OAAS7B,EAAEmpD,UAAUtnD,OAAQyH,IAAMujB,GAAKvjB,EAAI1G,EAAEuZ,YAAc7S,EAAI,GAAKjJ,EAAE+oD,aAAe/oD,EAAEgpD,mBAAoB57C,EAAG,CACnI,MAAMvK,EAAI7C,EAAEipD,cAAgBnlD,KAAK6B,IAAItD,EAAGC,EAAEwZ,YAAcxZ,EAAEwZ,WAC1D0Q,GAAKnf,EAAIxK,GAAKuK,EAAIC,GAAK/K,EAAEwZ,YAAc1O,EAAI,GAAKpN,EAAEkpD,YAEpD//C,IAAMqjB,GAAKxsB,EAAEmpD,gBAAkBhgD,EAAI5C,EAAEuV,YAAc3S,EAAI,GAAKnJ,EAAEopD,eAC9D,IAAIxmD,EAAI,EACR,MAAM2pB,EAAI,SAAS1pB,GACjB4pB,EAAI3oB,KAAK6B,IAAI8mB,EAAGxrB,EAAE2c,YAAY/a,GAAGgb,MAAQjb,IAE3C,OAAO3B,EAAEgd,OAAQhd,EAAE0a,KAAOpZ,EAAEue,OAAQ3f,EAAExB,EAAEskC,MAAO1X,GAAItrB,EAAE0a,KAAOrZ,EAAEwe,OAAQ3f,EAAExB,EAAEkpD,WAAW7uB,OAAOr6B,EAAEmpD,WAAYv8B,GAAI3pB,EAAI5C,EAAEipD,cAAgB1nD,EAAI,EAAIvB,EAAEqpD,WAAa,EAAGloD,EAAEC,EAAIyB,IAClK1B,EAAE0B,EAAE6lD,OAAQn8B,GAAIprB,EAAE0B,EAAE8lD,MAAOp8B,GAAIprB,EAAE0B,EAAE+lD,MAAOr8B,KACxC3pB,EAAI,EAAG3B,EAAE0a,KAAOpV,EAAEua,OAAQ3f,EAAExB,EAAE2oD,OAAQ/7B,GAAItrB,EAAEid,UAAWuO,GAAK9e,EAAEkQ,MAAO,CAAEA,MAAO4O,EAAGhO,OAAQ+N,GAE/F,SAAS88B,GAAG3pD,EAAGK,GACb,MAAQ6C,EAAG5B,EAAGwd,OAAQrd,GAAMpB,EAC5B,OAAOiB,EAAIG,EAAI,EAAI,MAAQH,EAAItB,EAAE8e,OAASrd,EAAI,EAAI,SAAW,SAE/D,SAASmoD,GAAG5pD,EAAGK,EAAGiB,EAAGG,GACnB,MAAQwB,EAAGvB,EAAGwc,MAAOvc,GAAMF,EAAGG,EAAIN,EAAEuoD,UAAYvoD,EAAEwoD,aAClD,GAAU,SAAN9pD,GAAgB0B,EAAIC,EAAIC,EAAIvB,EAAE6d,OAAe,UAANle,GAAiB0B,EAAIC,EAAIC,EAAI,EACtE,OAAO,EAEX,SAASmoD,GAAG/pD,EAAGK,EAAGiB,EAAGG,GACnB,MAAQwB,EAAGvB,EAAGwc,MAAOvc,GAAML,GAAK4c,MAAOtc,EAAG+2B,WAAaxY,KAAMzd,EAAG0d,MAAOzd,IAAQ3C,EAC/E,IAAI4C,EAAI,SACR,MAAa,WAANnB,EAAiBmB,EAAIlB,IAAMgB,EAAIC,GAAK,EAAI,OAAS,QAAUjB,GAAKC,EAAI,EAAIiB,EAAI,OAASlB,GAAKE,EAAID,EAAI,IAAMiB,EAAI,SAAUgnD,GAAGhnD,EAAG5C,EAAGK,EAAGiB,KAAOsB,EAAI,UAAWA,EAEjK,SAASonD,GAAGhqD,EAAGK,EAAGiB,GAChB,MAAMG,EAAIH,EAAE2oD,QAAU5pD,EAAE4pD,QAAUN,GAAG3pD,EAAGsB,GACxC,MAAO,CACL4oD,OAAQ5oD,EAAE4oD,QAAU7pD,EAAE6pD,QAAUH,GAAG/pD,EAAGK,EAAGiB,EAAGG,GAC5CwoD,OAAQxoD,GAGZ,SAAS0oD,GAAGnqD,EAAGK,GACb,IAAM4C,EAAG3B,EAAG4c,MAAOzc,GAAMzB,EACzB,MAAa,UAANK,EAAgBiB,GAAKG,EAAU,WAANpB,IAAmBiB,GAAKG,EAAI,GAAIH,EAElE,SAAS8oD,GAAGpqD,EAAGK,EAAGiB,GAChB,IAAM4B,EAAGzB,EAAGqd,OAAQpd,GAAM1B,EAC1B,MAAa,QAANK,EAAcoB,GAAKH,EAAqBG,GAAX,WAANpB,EAAsBqB,EAAIJ,EAASI,EAAI,EAAGD,EAE1E,SAAS4oD,GAAGrqD,EAAGK,EAAGiB,EAAGG,GACnB,MAAQooD,UAAWnoD,EAAGooD,aAAcnoD,EAAG2oD,aAAc1oD,GAAM5B,GAAKkqD,OAAQxnD,EAAGunD,OAAQtnD,GAAMrB,EAAGsB,EAAIlB,EAAIC,GAAK6gB,QAAS5b,EAAG+b,SAAUrZ,EAAGmZ,WAAYjZ,EAAGkZ,YAAahV,GAAM0V,GAAGxhB,GACvK,IAAIoM,EAAIm8C,GAAG9pD,EAAGqC,GACd,MAAMmqB,EAAIu9B,GAAG/pD,EAAGsC,EAAGC,GACnB,MAAa,WAAND,EAAuB,SAAND,EAAesL,GAAKpL,EAAU,UAANF,IAAkBsL,GAAKpL,GAAW,SAANF,EAAesL,GAAK7J,KAAK6B,IAAIY,EAAG4C,GAAK9H,EAAU,UAANgB,IAAkBsL,GAAK7J,KAAK6B,IAAIsD,EAAGoE,GAAKhM,GAAI,CAC/JuB,EAAG4D,GAAEmH,EAAG,EAAGvM,EAAEyc,MAAQ7d,EAAE6d,OACvBhb,EAAG2D,GAAEgmB,EAAG,EAAGprB,EAAEqd,OAASze,EAAEye,SAG5B,SAASyrC,GAAGvqD,EAAGK,EAAGiB,GAChB,MAAMG,EAAImO,GAAEtO,EAAEijC,SACd,MAAa,WAANlkC,EAAiBL,EAAEiD,EAAIjD,EAAEke,MAAQ,EAAU,UAAN7d,EAAgBL,EAAEiD,EAAIjD,EAAEke,MAAQzc,EAAE2e,MAAQpgB,EAAEiD,EAAIxB,EAAE0e,KAEhG,SAASqqC,GAAGxqD,GACV,OAAOooD,GAAG,GAAIC,GAAGroD,IAEnB,SAASyqD,GAAGzqD,EAAGK,EAAGiB,GAChB,OAAOqiB,GAAG3jB,EAAG,CACXy+B,QAASp+B,EACTqqD,aAAcppD,EACd2C,KAAM,YAGV,SAAS0mD,GAAG3qD,EAAGK,GACb,MAAMiB,EAAIjB,GAAKA,EAAEy0B,SAAWz0B,EAAEy0B,QAAQ2J,SAAWp+B,EAAEy0B,QAAQ2J,QAAQC,UACnE,OAAOp9B,EAAItB,EAAEokB,SAAS9iB,GAAKtB,EAE7B,MAAM4qD,WAAWtoB,GACf,YAAYjiC,GACVm8B,QAASz0B,KAAK8iD,QAAU,EAAG9iD,KAAKynB,QAAU,GAAIznB,KAAK+iD,oBAAiB,EAAQ/iD,KAAKgjD,WAAQ,EAAQhjD,KAAKijD,uBAAoB,EAAQjjD,KAAKkjD,cAAgB,GAAIljD,KAAK4qB,iBAAc,EAAQ5qB,KAAKwuB,cAAW,EAAQxuB,KAAK4T,MAAQtb,EAAEsb,OAAStb,EAAEwtB,OAAQ9lB,KAAK8lB,OAAS9lB,KAAK4T,MAAO5T,KAAKylB,QAAUntB,EAAEmtB,QAASzlB,KAAKmjD,gBAAa,EAAQnjD,KAAKu8B,WAAQ,EAAQv8B,KAAKmhD,gBAAa,EAAQnhD,KAAK2gD,UAAO,EAAQ3gD,KAAKohD,eAAY,EAAQphD,KAAK4gD,YAAS,EAAQ5gD,KAAKmiD,YAAS,EAAQniD,KAAKkiD,YAAS,EAAQliD,KAAK9E,OAAI,EAAQ8E,KAAK7E,OAAI,EAAQ6E,KAAK+W,YAAS,EAAQ/W,KAAKmW,WAAQ,EAAQnW,KAAKojD,YAAS,EAAQpjD,KAAKqjD,YAAS,EAAQrjD,KAAKsjD,iBAAc,EAAQtjD,KAAKujD,sBAAmB,EAAQvjD,KAAKwjD,qBAAkB,EAEzqB,WAAWlrD,GACT0H,KAAKylB,QAAUntB,EAAG0H,KAAKijD,uBAAoB,EAAQjjD,KAAKwuB,cAAW,EAErE,qBACE,MAAMl2B,EAAI0H,KAAKijD,kBACf,GAAI3qD,EACF,OAAOA,EACT,MAAMiB,EAAIyG,KAAK4T,MAAOla,EAAIsG,KAAKylB,QAAQlI,WAAWvd,KAAK4W,cAAejd,EAAID,EAAE4hC,SAAW/hC,EAAEksB,QAAQnS,WAAa5Z,EAAEuwB,WAAYrwB,EAAI,IAAIwwB,GAAGpqB,KAAK4T,MAAOja,GACnJ,OAAOA,EAAEsiB,aAAejc,KAAKijD,kBAAoB1qD,OAAO44B,OAAOv3B,IAAKA,EAEtE,aACE,OAAOoG,KAAKwuB,WAAaxuB,KAAKwuB,SAAWk0B,GAAG1iD,KAAK4T,MAAMgD,aAAc5W,KAAMA,KAAKkjD,gBAElF,SAAS5qD,EAAGiB,GACV,MAAQo9B,UAAWj9B,GAAMH,EAAGI,EAAID,EAAE+pD,YAAYjqD,MAAMwG,KAAM,CAAC1H,IAAKsB,EAAIF,EAAE6iC,MAAM/iC,MAAMwG,KAAM,CAAC1H,IAAKuB,EAAIH,EAAEgqD,WAAWlqD,MAAMwG,KAAM,CAAC1H,IAC5H,IAAIqC,EAAI,GACR,OAAOA,EAAI0lD,GAAG1lD,EAAG2lD,GAAG3mD,IAAKgB,EAAI0lD,GAAG1lD,EAAG2lD,GAAG1mD,IAAKe,EAAI0lD,GAAG1lD,EAAG2lD,GAAGzmD,IAAKc,EAE/D,cAAcrC,EAAGiB,GACf,OAAOkpD,GAAGlpD,EAAEo9B,UAAUwqB,WAAW3nD,MAAMwG,KAAM,CAAC1H,KAEhD,QAAQA,EAAGiB,GACT,MAAQo9B,UAAWj9B,GAAMH,EAAGI,EAAI,GAChC,OAAOF,EAAEnB,EAAIsB,IACX,MAAMC,EAAI,CACRmnD,OAAQ,GACRC,MAAO,GACPC,MAAO,IACNvmD,EAAIioD,GAAGlpD,EAAGE,GACbymD,GAAGxmD,EAAEmnD,OAAQV,GAAG3lD,EAAEgpD,YAAYjrD,KAAKsH,KAAMpG,KAAMymD,GAAGxmD,EAAEonD,MAAOtmD,EAAE61B,MAAM93B,KAAKsH,KAAMpG,IAAKymD,GAAGxmD,EAAEqnD,MAAOZ,GAAG3lD,EAAEipD,WAAWlrD,KAAKsH,KAAMpG,KAAMD,EAAE6B,KAAK3B,KACrIF,EAEN,aAAarB,EAAGiB,GACd,OAAOkpD,GAAGlpD,EAAEo9B,UAAUyqB,UAAU5nD,MAAMwG,KAAM,CAAC1H,KAE/C,UAAUA,EAAGiB,GACX,MAAQo9B,UAAWj9B,GAAMH,EAAGI,EAAID,EAAEmqD,aAAarqD,MAAMwG,KAAM,CAAC1H,IAAKsB,EAAIF,EAAEknD,OAAOpnD,MAAMwG,KAAM,CAAC1H,IAAKuB,EAAIH,EAAEoqD,YAAYtqD,MAAMwG,KAAM,CAAC1H,IAC/H,IAAIqC,EAAI,GACR,OAAOA,EAAI0lD,GAAG1lD,EAAG2lD,GAAG3mD,IAAKgB,EAAI0lD,GAAG1lD,EAAG2lD,GAAG1mD,IAAKe,EAAI0lD,GAAG1lD,EAAG2lD,GAAGzmD,IAAKc,EAE/D,aAAarC,GACX,MAAMiB,EAAIyG,KAAKynB,QAAS/tB,EAAIsG,KAAK4T,MAAMyC,KAAM1c,EAAI,GAAIC,EAAI,GAAIC,EAAI,GACjE,IAAYe,EAAGC,EAAXF,EAAI,GACR,IAAKC,EAAI,EAAGC,EAAItB,EAAEO,OAAQc,EAAIC,IAAKD,EACjCD,EAAEa,KAAKglD,GAAGxgD,KAAK4T,MAAOra,EAAEqB,KAC1B,OAAOtC,EAAEmmB,SAAW9jB,EAAIA,EAAE8jB,OAAO,CAAC5f,EAAG0C,EAAGE,IAAMnJ,EAAEmmB,OAAO5f,EAAG0C,EAAGE,EAAG/H,KAAMpB,EAAEyrD,WAAappD,EAAIA,EAAE8C,KAAK,CAACoB,EAAG0C,IAAMjJ,EAAEyrD,SAASllD,EAAG0C,EAAG7H,KAAMD,EAAEkB,EAAIkE,IACrI,MAAM0C,EAAIqhD,GAAGtqD,EAAEq+B,UAAW93B,GAC1BlF,EAAE6B,KAAK+F,EAAEyiD,WAAWtrD,KAAKsH,KAAMnB,IAAKjF,EAAE4B,KAAK+F,EAAE0iD,gBAAgBvrD,KAAKsH,KAAMnB,IAAKhF,EAAE2B,KAAK+F,EAAE2iD,eAAexrD,KAAKsH,KAAMnB,MAC9GmB,KAAKsjD,YAAc3pD,EAAGqG,KAAKujD,iBAAmB3pD,EAAGoG,KAAKwjD,gBAAkB3pD,EAAGmG,KAAKmjD,WAAaxoD,EAAGA,EAEtG,OAAOrC,EAAGiB,GACR,MAAMG,EAAIsG,KAAKylB,QAAQlI,WAAWvd,KAAK4W,cAAejd,EAAIqG,KAAKynB,QAC/D,IAAI7tB,EAAGC,EAAI,GACX,GAAKF,EAAEG,OAIF,CACH,MAAMa,EAAIulD,GAAGxmD,EAAE0oC,UAAU1pC,KAAKsH,KAAMrG,EAAGqG,KAAK+iD,gBAC5ClpD,EAAImG,KAAKmkD,aAAazqD,GAAIsG,KAAKu8B,MAAQv8B,KAAKokD,SAASvqD,EAAGH,GAAIsG,KAAKmhD,WAAanhD,KAAKqkD,cAAcxqD,EAAGH,GAAIsG,KAAK2gD,KAAO3gD,KAAKskD,QAAQzqD,EAAGH,GAAIsG,KAAKohD,UAAYphD,KAAKukD,aAAa1qD,EAAGH,GAAIsG,KAAK4gD,OAAS5gD,KAAKwkD,UAAU3qD,EAAGH,GAClN,MAAMkB,EAAIoF,KAAKgjD,MAAQtC,GAAG1gD,KAAMtG,GAAImB,EAAItC,OAAO+J,OAAO,GAAI3H,EAAGC,GAAIiE,EAAIojD,GAAGjiD,KAAK4T,MAAOla,EAAGmB,GAAI0G,EAAI+gD,GAAG5oD,EAAGmB,EAAGgE,EAAGmB,KAAK4T,OAChH5T,KAAKmiD,OAAStjD,EAAEsjD,OAAQniD,KAAKkiD,OAASrjD,EAAEqjD,OAAQtoD,EAAI,CAClDkpD,QAAS,EACT5nD,EAAGqG,EAAErG,EACLC,EAAGoG,EAAEpG,EACLgb,MAAOvb,EAAEub,MACTY,OAAQnc,EAAEmc,OACVqsC,OAAQzoD,EAAEO,EACVmoD,OAAQ1oD,EAAEQ,QAdK,IAAjB6E,KAAK8iD,UAAkBlpD,EAAI,CACzBkpD,QAAS,IAgBb9iD,KAAKkjD,cAAgBrpD,EAAGmG,KAAKwuB,cAAW,EAAQ50B,GAAKoG,KAAK0xB,qBAAqB3G,OAAO/qB,KAAMpG,GAAItB,GAAKoB,EAAE+qD,UAAY/qD,EAAE+qD,SAAS/rD,KAAKsH,KAAM,CAAE4T,MAAO5T,KAAK4T,MAAO8iB,QAAS12B,KAAMy1C,OAAQl8C,IAEvL,UAAUjB,EAAGiB,EAAGG,EAAGC,GACjB,MAAMC,EAAIoG,KAAK0kD,iBAAiBpsD,EAAGoB,EAAGC,GACtCJ,EAAEse,OAAOje,EAAE8pC,GAAI9pC,EAAE+pC,IAAKpqC,EAAEse,OAAOje,EAAEgqC,GAAIhqC,EAAEiqC,IAAKtqC,EAAEse,OAAOje,EAAE+qD,GAAI/qD,EAAEgrD,IAE/D,iBAAiBtsD,EAAGiB,EAAGG,GACrB,MAAQyoD,OAAQxoD,EAAGuoD,OAAQtoD,GAAMoG,MAAQ8hD,UAAWjoD,EAAG0oD,aAAc5nD,GAAMjB,GAAK+gB,QAAS7f,EAAGggB,SAAU/f,EAAG6f,WAAY7b,EAAG8b,YAAapZ,GAAM8Z,GAAG1gB,IAAMO,EAAGuG,EAAGtG,EAAGwK,GAAMrN,GAAK6d,MAAOlQ,EAAG8Q,OAAQ+N,GAAMvrB,EAChM,IAAIwrB,EAAGrf,EAAGxK,EAAG2pB,EAAG1pB,EAAG6pB,EACnB,MAAa,WAANprB,GAAkBuB,EAAIwK,EAAImf,EAAI,EAAS,SAANnrB,GAAgBorB,EAAItjB,EAAGiE,EAAIqf,EAAIlrB,EAAGgrB,EAAI1pB,EAAItB,EAAGmrB,EAAI7pB,EAAItB,IAAMkrB,EAAItjB,EAAIwE,EAAGP,EAAIqf,EAAIlrB,EAAGgrB,EAAI1pB,EAAItB,EAAGmrB,EAAI7pB,EAAItB,GAAIqB,EAAI6pB,IAAqBrf,EAAT,SAAN/L,EAAmB8H,EAAIrF,KAAK6B,IAAIrD,EAAGiE,GAAKhF,EAAU,UAANF,EAAoB8H,EAAIwE,EAAI7J,KAAK6B,IAAIpD,EAAG0G,GAAK1H,EAAQmG,KAAKojD,OAAc,QAANxpD,GAAeirB,EAAIlf,EAAGxK,EAAI0pB,EAAIhrB,EAAGkrB,EAAIrf,EAAI7L,EAAGqB,EAAIwK,EAAI7L,IAAMgrB,EAAIlf,EAAImf,EAAG3pB,EAAI0pB,EAAIhrB,EAAGkrB,EAAIrf,EAAI7L,EAAGqB,EAAIwK,EAAI7L,GAAImrB,EAAIH,GAAI,CAAE6e,GAAI3e,EAAG6e,GAAIl+B,EAAGi/C,GAAIzpD,EAAGyoC,GAAI9e,EAAGgf,GAAI1oC,EAAGypD,GAAI5/B,GAEla,UAAU1sB,EAAGiB,EAAGG,GACd,MAAMC,EAAIqG,KAAKu8B,MAAO3iC,EAAID,EAAEG,OAC5B,IAAID,EAAGc,EAAGC,EACV,GAAIhB,EAAG,CACL,MAAMiB,EAAIgpB,GAAGnqB,EAAE+kD,IAAKz+C,KAAK9E,EAAG8E,KAAKmW,OACjC,IAAK7d,EAAE4C,EAAIsnD,GAAGxiD,KAAMtG,EAAEmrD,WAAYnrD,GAAIH,EAAEugB,UAAYjf,EAAEif,UAAUpgB,EAAEmrD,YAAatrD,EAAEwgB,aAAe,SAAUlgB,EAAIyhB,GAAE5hB,EAAEonD,WAAYnmD,EAAIjB,EAAE2nD,aAAc9nD,EAAEsgB,UAAYngB,EAAEorD,WAAYvrD,EAAE0a,KAAOpa,EAAEuf,OAAQxe,EAAI,EAAGA,EAAIhB,IAAKgB,EAC/MrB,EAAEmgB,SAAS/f,EAAEiB,GAAIC,EAAEK,EAAE5C,EAAE4C,GAAI5C,EAAE6C,EAAItB,EAAEua,WAAa,GAAI9b,EAAE6C,GAAKtB,EAAEua,WAAazZ,EAAGC,EAAI,IAAMhB,IAAMtB,EAAE6C,GAAKzB,EAAE4nD,kBAAoB3mD,IAGhI,cAAcrC,EAAGiB,EAAGG,EAAGC,EAAGC,GACxB,MAAMC,EAAImG,KAAKsjD,YAAY5pD,GAAIiB,EAAIqF,KAAKujD,iBAAiB7pD,IAAM0jD,UAAWxiD,EAAGyiD,SAAUxiD,EAAG8mD,WAAY9iD,GAAMjF,EAAG2H,EAAI+Z,GAAE1hB,EAAEinD,UAAWp/C,EAAI+gD,GAAGxiD,KAAM,OAAQpG,GAAI+L,EAAIhM,EAAEuB,EAAEuG,GAAIwE,EAAIrL,EAAI2G,EAAE6S,YAAc7S,EAAE6S,WAAaxZ,GAAK,EAAI,EAAGkqB,EAAIvrB,EAAE4B,EAAI8K,EACpO,GAAIrM,EAAE0jD,cAAe,CACnB,MAAMv4B,EAAI,CACR3N,OAAQhb,KAAK4B,IAAInD,EAAGD,GAAK,EACzBsc,WAAYvc,EAAEuc,WACdC,SAAUxc,EAAEwc,SACZc,YAAa,GACZvS,EAAI/L,EAAE+kD,WAAW/4C,EAAG9K,GAAKA,EAAI,EAAGK,EAAI4pB,EAAIlqB,EAAI,EAC/CtC,EAAEghB,YAAc1f,EAAEmrD,mBAAoBzsD,EAAEuhB,UAAYjgB,EAAEmrD,mBAAoB/tC,GAAG1e,EAAGysB,EAAGrf,EAAGxK,GAAI5C,EAAEghB,YAAczf,EAAE2Z,YAAalb,EAAEuhB,UAAYhgB,EAAE0Z,gBAAiByD,GAAG1e,EAAGysB,EAAGrf,EAAGxK,OACjK,CACL5C,EAAEihB,UAAY3gB,EAAEiB,EAAEoe,aAAe7b,KAAK6B,OAAO1F,OAAOmzB,OAAO7xB,EAAEoe,cAAgBpe,EAAEoe,aAAe,EAAG3f,EAAEghB,YAAczf,EAAE2Z,YAAalb,EAAEksC,YAAY3qC,EAAE0sB,YAAc,IAAKjuB,EAAEmsC,eAAiB5qC,EAAE2sB,kBAAoB,EAC5M,MAAMzB,EAAIprB,EAAE+kD,WAAW/4C,EAAG9K,EAAIgE,GAAI6G,EAAI/L,EAAE+kD,WAAW/kD,EAAEmlD,MAAMn5C,EAAG,GAAI9K,EAAIgE,EAAI,GAAI3D,EAAImgB,GAAGxhB,EAAEy8C,cACvF/9C,OAAOmzB,OAAOxwB,GAAGgzC,KAAMrpB,GAAY,IAANA,IAAYvsB,EAAEkf,YAAalf,EAAEuhB,UAAYjgB,EAAEmrD,mBAAoBxqC,GAAGjiB,EAAG,CAChG4C,EAAG6pB,EACH5pB,EAAG2pB,EACHtK,EAAG3f,EACHgE,EAAGjE,EACHwc,OAAQlc,IACN5C,EAAE0f,OAAQ1f,EAAE4f,SAAU5f,EAAEuhB,UAAYhgB,EAAE0Z,gBAAiBjb,EAAEkf,YAAa+C,GAAGjiB,EAAG,CAC9E4C,EAAGwK,EACHvK,EAAG2pB,EAAI,EACPtK,EAAG3f,EAAI,EACPgE,EAAGjE,EAAI,EACPwc,OAAQlc,IACN5C,EAAE0f,SAAW1f,EAAEuhB,UAAYjgB,EAAEmrD,mBAAoBzsD,EAAE+rC,SAAStf,EAAGD,EAAGjqB,EAAGD,GAAItC,EAAE0sD,WAAWjgC,EAAGD,EAAGjqB,EAAGD,GAAItC,EAAEuhB,UAAYhgB,EAAE0Z,gBAAiBjb,EAAE+rC,SAAS3+B,EAAGof,EAAI,EAAGjqB,EAAI,EAAGD,EAAI,IAE1KtC,EAAEuhB,UAAY7Z,KAAKwjD,gBAAgB9pD,GAErC,SAASpB,EAAGiB,EAAGG,GACb,MAAQinD,KAAMhnD,GAAMqG,MAAQwhD,YAAa5nD,EAAGqrD,UAAWprD,EAAG0nD,cAAe5mD,EAAGyiD,UAAWxiD,EAAGyiD,SAAUxiD,EAAG8mD,WAAY9iD,GAAMnF,EAAG6H,EAAI+Z,GAAE5hB,EAAEmnD,UACpI,IAAIp/C,EAAIF,EAAE6S,WAAYzO,EAAI,EAC1B,MAAMM,EAAI4d,GAAGnqB,EAAE+kD,IAAKz+C,KAAK9E,EAAG8E,KAAKmW,OAAQ2O,EAAI,SAASvd,GACpDhO,EAAEmgB,SAASnS,EAAGtB,EAAE/K,EAAE5C,EAAE4C,EAAIyK,GAAIrN,EAAE6C,EAAIsG,EAAI,GAAInJ,EAAE6C,GAAKsG,EAAI7H,GACpDmrB,EAAI9e,EAAE6T,UAAUjgB,GACnB,IAAI6L,EAAGxK,EAAG2pB,EAAG1pB,EAAG6pB,EAAGrd,EAAGsd,EACtB,IAAK1rB,EAAEugB,UAAYjgB,EAAGN,EAAEwgB,aAAe,SAAUxgB,EAAE0a,KAAO1S,EAAE6X,OAAQ9gB,EAAE4C,EAAIsnD,GAAGxiD,KAAM+kB,EAAGrrB,GAAIH,EAAEsgB,UAAYngB,EAAEwrD,UAAWzrD,EAAEuG,KAAKmhD,WAAYr8B,GAAInf,EAAIhL,GAAW,UAANoqB,EAAsB,WAANlrB,EAAiBgB,EAAI,EAAIgE,EAAIhE,EAAI,EAAIgE,EAAI,EAAG1D,EAAI,EAAGwM,EAAIhO,EAAEG,OAAQqB,EAAIwM,IAAKxM,EAAG,CAChP,IAAKuK,EAAI/L,EAAEwB,GAAID,EAAI8E,KAAKwjD,gBAAgBroD,GAAI5B,EAAEsgB,UAAY3e,EAAGzB,EAAEiM,EAAEs7C,OAAQl8B,GAAID,EAAInf,EAAEu7C,MAAOtmD,GAAKkqB,EAAE/qB,SAAWkG,KAAKmlD,cAAc5rD,EAAGjB,EAAG6C,EAAG8K,EAAGvM,GAAI+H,EAAIrF,KAAK6B,IAAIsD,EAAE6S,WAAYxZ,IAAKoqB,EAAI,EAAGC,EAAIJ,EAAE/qB,OAAQkrB,EAAIC,IAAKD,EAC3MF,EAAED,EAAEG,IAAKvjB,EAAIF,EAAE6S,WACjB3a,EAAEiM,EAAEw7C,MAAOp8B,GAEbnf,EAAI,EAAGlE,EAAIF,EAAE6S,WAAY3a,EAAEuG,KAAKohD,UAAWt8B,GAAIxsB,EAAE6C,GAAKvB,EAExD,WAAWtB,EAAGiB,EAAGG,GACf,MAAMC,EAAIqG,KAAK4gD,OAAQhnD,EAAID,EAAEG,OAC7B,IAAID,EAAGc,EACP,GAAIf,EAAG,CACL,MAAMgB,EAAIipB,GAAGnqB,EAAE+kD,IAAKz+C,KAAK9E,EAAG8E,KAAKmW,OACjC,IAAK7d,EAAE4C,EAAIsnD,GAAGxiD,KAAMtG,EAAE0rD,YAAa1rD,GAAIpB,EAAE6C,GAAKzB,EAAE+nD,gBAAiBloD,EAAEugB,UAAYlf,EAAEkf,UAAUpgB,EAAE0rD,aAAc7rD,EAAEwgB,aAAe,SAAUlgB,EAAIyhB,GAAE5hB,EAAEqnD,YAAaxnD,EAAEsgB,UAAYngB,EAAE2rD,YAAa9rD,EAAE0a,KAAOpa,EAAEuf,OAAQze,EAAI,EAAGA,EAAIf,IAAKe,EACzNpB,EAAEmgB,SAAS/f,EAAEgB,GAAIC,EAAEM,EAAE5C,EAAE4C,GAAI5C,EAAE6C,EAAItB,EAAEua,WAAa,GAAI9b,EAAE6C,GAAKtB,EAAEua,WAAa1a,EAAEgoD,eAGlF,eAAeppD,EAAGiB,EAAGG,EAAGC,GACtB,MAAQwoD,OAAQvoD,EAAGsoD,OAAQroD,GAAMmG,MAAQ9E,EAAGP,EAAGQ,EAAGP,GAAMtC,GAAK6d,MAAOtb,EAAGkc,OAAQlY,GAAMnF,GAAK+gB,QAASlZ,EAAGqZ,SAAUnZ,EAAGiZ,WAAY/U,EAAGgV,YAAa1U,GAAMoV,GAAG1hB,EAAE4oD,cAC1JhpD,EAAEsgB,UAAYlgB,EAAE4Z,gBAAiBha,EAAE+f,YAAc3f,EAAE6Z,YAAaja,EAAEggB,UAAY5f,EAAEse,YAAa1e,EAAEie,YAAaje,EAAEqe,OAAOjd,EAAI4G,EAAG3G,GAAU,QAANf,GAAemG,KAAKslD,UAAUhtD,EAAGiB,EAAGG,EAAGC,GAAIJ,EAAEse,OAAOld,EAAIE,EAAI4G,EAAG7G,GAAIrB,EAAEgsD,iBAAiB5qD,EAAIE,EAAGD,EAAGD,EAAIE,EAAGD,EAAI6G,GAAU,WAAN5H,GAAwB,UAAND,GAAiBoG,KAAKslD,UAAUhtD,EAAGiB,EAAGG,EAAGC,GAAIJ,EAAEse,OAAOld,EAAIE,EAAGD,EAAIiE,EAAIoH,GAAI1M,EAAEgsD,iBAAiB5qD,EAAIE,EAAGD,EAAIiE,EAAGlE,EAAIE,EAAIoL,EAAGrL,EAAIiE,GAAU,WAANhF,GAAkBmG,KAAKslD,UAAUhtD,EAAGiB,EAAGG,EAAGC,GAAIJ,EAAEse,OAAOld,EAAIgL,EAAG/K,EAAIiE,GAAItF,EAAEgsD,iBAAiB5qD,EAAGC,EAAIiE,EAAGlE,EAAGC,EAAIiE,EAAI8G,GAAU,WAAN9L,GAAwB,SAAND,GAAgBoG,KAAKslD,UAAUhtD,EAAGiB,EAAGG,EAAGC,GAAIJ,EAAEse,OAAOld,EAAGC,EAAI2G,GAAIhI,EAAEgsD,iBAAiB5qD,EAAGC,EAAGD,EAAI4G,EAAG3G,GAAIrB,EAAEoe,YAAape,EAAEye,OAAQre,EAAEse,YAAc,GAAK1e,EAAE2e,SAExpB,uBAAuB5f,GACrB,MAAMiB,EAAIyG,KAAK4T,MAAOla,EAAIsG,KAAK4qB,YAAajxB,EAAID,GAAKA,EAAEwB,EAAGtB,EAAIF,GAAKA,EAAEyB,EACrE,GAAIxB,GAAKC,EAAG,CACV,MAAMC,EAAIqmD,GAAG5nD,EAAE8pC,UAAU1pC,KAAKsH,KAAMA,KAAKynB,QAASznB,KAAK+iD,gBACvD,IAAKlpD,EACH,OACF,MAAMc,EAAIqF,KAAKgjD,MAAQtC,GAAG1gD,KAAM1H,GAAIsC,EAAIrC,OAAO+J,OAAO,GAAIzI,EAAGmG,KAAKgjD,OAAQnoD,EAAIonD,GAAG1oD,EAAGjB,EAAGsC,GAAIiE,EAAIyjD,GAAGhqD,EAAGsC,EAAGC,EAAGtB,IAC1GI,EAAEwvB,MAAQtqB,EAAE3D,GAAKtB,EAAEuvB,MAAQtqB,EAAE1D,KAAO6E,KAAKmiD,OAAStnD,EAAEsnD,OAAQniD,KAAKkiD,OAASrnD,EAAEqnD,OAAQliD,KAAKmW,MAAQxb,EAAEwb,MAAOnW,KAAK+W,OAASpc,EAAEoc,OAAQ/W,KAAKojD,OAASvpD,EAAEqB,EAAG8E,KAAKqjD,OAASxpD,EAAEsB,EAAG6E,KAAK0xB,qBAAqB3G,OAAO/qB,KAAMnB,KAGpN,cACE,QAASmB,KAAK8iD,QAEhB,KAAKxqD,GACH,MAAMiB,EAAIyG,KAAKylB,QAAQlI,WAAWvd,KAAK4W,cACvC,IAAIld,EAAIsG,KAAK8iD,QACb,IAAKppD,EACH,OACFsG,KAAKwlD,uBAAuBjsD,GAC5B,MAAMI,EAAI,CACRwc,MAAOnW,KAAKmW,MACZY,OAAQ/W,KAAK+W,QACZnd,EAAI,CACLsB,EAAG8E,KAAK9E,EACRC,EAAG6E,KAAK7E,GAEVzB,EAAI0C,KAAKyB,IAAInE,GAAK,KAAO,EAAIA,EAC7B,MAAMG,EAAIgO,GAAEtO,EAAEijC,SAAU7hC,EAAIqF,KAAKu8B,MAAMziC,QAAUkG,KAAKmhD,WAAWrnD,QAAUkG,KAAK2gD,KAAK7mD,QAAUkG,KAAKohD,UAAUtnD,QAAUkG,KAAK4gD,OAAO9mD,OACpIP,EAAE+hC,SAAW3gC,IAAMrC,EAAEie,OAAQje,EAAEmtD,YAAc/rD,EAAGsG,KAAK4kC,eAAehrC,EAAGtB,EAAGqB,EAAGJ,GAAIuqB,GAAGxrB,EAAGiB,EAAEwlD,eAAgBnlD,EAAEuB,GAAKtB,EAAEye,IAAKtY,KAAK8kC,UAAUlrC,EAAGtB,EAAGiB,GAAIyG,KAAK0lD,SAAS9rD,EAAGtB,EAAGiB,GAAIyG,KAAK2lD,WAAW/rD,EAAGtB,EAAGiB,GAAI2qB,GAAG5rB,EAAGiB,EAAEwlD,eAAgBzmD,EAAEke,WAE9N,oBACE,OAAOxW,KAAKynB,SAAW,GAEzB,kBAAkBnvB,EAAGiB,GACnB,MAAMG,EAAIsG,KAAKynB,QAAS9tB,EAAIrB,EAAE8B,IAAI,EAAGH,aAAcU,EAAGT,MAAOU,MAC3D,MAAMC,EAAImF,KAAK4T,MAAMyb,eAAe10B,GACpC,IAAKE,EACH,MAAM,IAAIwjB,MAAM,kCAAoC1jB,GACtD,MAAO,CACLV,aAAcU,EACdyyB,QAASvyB,EAAEwb,KAAKzb,GAChBV,MAAOU,KAEPhB,GAAKI,EAAGN,EAAGC,GAAIE,EAAImG,KAAK4lD,iBAAiBjsD,EAAGJ,IAC/CK,GAAKC,KAAOmG,KAAKynB,QAAU9tB,EAAGqG,KAAK+iD,eAAiBxpD,EAAGyG,KAAK6lD,qBAAsB,EAAI7lD,KAAK+qB,QAAO,IAErG,YAAYzyB,EAAGiB,EAAGG,GAAI,GACpB,GAAIH,GAAKyG,KAAK6lD,oBACZ,OAAO,EACT7lD,KAAK6lD,qBAAsB,EAC3B,MAAMlsD,EAAIqG,KAAKylB,QAAS7rB,EAAIoG,KAAKynB,SAAW,GAAI5tB,EAAImG,KAAK61C,mBAAmBv9C,EAAGsB,EAAGL,EAAGG,GAAIiB,EAAIqF,KAAK4lD,iBAAiB/rD,EAAGvB,GAAIsC,EAAIrB,IAAMS,EAAGH,EAAGD,IAAMe,EAChJ,OAAOC,IAAMoF,KAAKynB,QAAU5tB,GAAIF,EAAE2hC,SAAW3hC,EAAE8qD,YAAczkD,KAAK+iD,eAAiB,CACjF7nD,EAAG5C,EAAE4C,EACLC,EAAG7C,EAAE6C,GACJ6E,KAAK+qB,QAAO,EAAIxxB,KAAMqB,EAE3B,mBAAmBtC,EAAGiB,EAAGG,EAAGC,GAC1B,MAAMC,EAAIoG,KAAKylB,QACf,GAAe,aAAXntB,EAAE4D,KACJ,MAAO,GACT,IAAKvC,EACH,OAAOJ,EACT,MAAMM,EAAImG,KAAK4T,MAAMkiC,0BAA0Bx9C,EAAGsB,EAAEgb,KAAMhb,EAAGF,GAC7D,OAAOE,EAAEuxB,SAAWtxB,EAAEsxB,UAAWtxB,EAEnC,iBAAiBvB,EAAGiB,GAClB,MAAQ6pD,OAAQ1pD,EAAG2pD,OAAQ1pD,EAAG8rB,QAAS7rB,GAAMoG,KAAMnG,EAAIqmD,GAAGtmD,EAAEwoC,UAAU1pC,KAAKsH,KAAM1H,EAAGiB,GACpF,OAAa,IAANM,IAAaH,IAAMG,EAAEqB,GAAKvB,IAAME,EAAEsB,IAG7C0nD,GAAGiD,YAAc5F,GACjB,IAAI6F,GAAK,CACP/5B,GAAI,UACJszB,SAAUuD,GACViD,YAAa5F,GACb,UAAUjoD,EAAGK,EAAGiB,GACdA,IAAMtB,EAAEy+B,QAAU,IAAImsB,GAAG,CAAEjvC,MAAO3b,EAAGwtB,QAASlsB,MAEhD,aAAatB,EAAGK,EAAGiB,GACjBtB,EAAEy+B,SAAWz+B,EAAEy+B,QAAQhI,WAAWn1B,IAEpC,MAAMtB,EAAGK,EAAGiB,GACVtB,EAAEy+B,SAAWz+B,EAAEy+B,QAAQhI,WAAWn1B,IAEpC,UAAUtB,GACR,MAAMK,EAAIL,EAAEy+B,QACZ,GAAIp+B,GAAKA,EAAE0tD,cAAe,CACxB,MAAMzsD,EAAI,CACRm9B,QAASp+B,GAEX,IAAgD,IAA5CL,EAAEspC,cAAc,oBAAqBhoC,GACvC,OACFjB,EAAEsvB,KAAK3vB,EAAEsqB,KAAMtqB,EAAEspC,cAAc,mBAAoBhoC,KAGvD,WAAWtB,EAAGK,GACZ,GAAIL,EAAEy+B,QAAS,CACb,MAAMn9B,EAAIjB,EAAEm9C,OACZx9C,EAAEy+B,QAAQ8oB,YAAYlnD,EAAEk9C,MAAOj8C,EAAGjB,EAAEo9C,eAAiBp9C,EAAEs9C,SAAU,KAGrErhB,SAAU,CACR+G,SAAS,EACTmpB,SAAU,KACVriB,SAAU,UACV7uB,gBAAiB,kBACjBuxC,WAAY,OACZhE,UAAW,CACTzsC,OAAQ,QAEVgtC,aAAc,EACdC,kBAAmB,EACnBuD,WAAY,OACZK,UAAW,OACX1D,YAAa,EACbX,SAAU,GACVoE,UAAW,OACXI,YAAa,OACb3D,cAAe,EACfD,gBAAiB,EACjBV,WAAY,CACV1sC,OAAQ,QAEV+wC,YAAa,OACb5oB,QAAS,EACTulB,aAAc,EACdD,UAAW,EACXS,aAAc,EACdnF,UAAW,CAACnlD,EAAGK,IAAMA,EAAEuoD,SAAS9kD,KAChCshD,SAAU,CAACplD,EAAGK,IAAMA,EAAEuoD,SAAS9kD,KAC/BgpD,mBAAoB,OACpBxD,eAAe,EACfI,WAAY,EACZnuC,YAAa,gBACbyE,YAAa,EACb3E,UAAW,CACTyT,SAAU,IACV8B,OAAQ,gBAEVoB,WAAY,CACVJ,QAAS,CACP3tB,KAAM,SACN0tB,WAAY,CAAC,IAAK,IAAK,QAAS,SAAU,SAAU,WAEtDk5B,QAAS,CACPj6B,OAAQ,SACR9B,SAAU,MAGd4P,UAAW,CACT8sB,YAAa1rD,EACb,MAAME,GACJ,GAAIA,EAAE6B,OAAS,EAAG,CAChB,MAAMxB,EAAIL,EAAE,GAAIsB,EAAIjB,EAAEsb,MAAMyC,KAAK8hB,OAAQz+B,EAAIH,EAAIA,EAAEO,OAAS,EAC5D,GAAIkG,MAAQA,KAAKylB,SAAiC,YAAtBzlB,KAAKylB,QAAQ7Q,KACvC,OAAOtc,EAAEy0B,QAAQyD,OAAS,GAC5B,GAAIl4B,EAAEk4B,MACJ,OAAOl4B,EAAEk4B,MACX,GAAI92B,EAAI,GAAKpB,EAAE20B,UAAYvzB,EACzB,OAAOH,EAAEjB,EAAE20B,WAEf,MAAO,IAETy2B,WAAY3rD,EACZopD,WAAYppD,EACZ4rD,YAAa5rD,EACb,MAAME,GACJ,GAAI+H,MAAQA,KAAKylB,SAAiC,YAAtBzlB,KAAKylB,QAAQ7Q,KACvC,OAAO3c,EAAEu4B,MAAQ,KAAOv4B,EAAE4gC,gBAAkB5gC,EAAE4gC,eAChD,IAAIvgC,EAAIL,EAAE80B,QAAQyD,OAAS,GAC3Bl4B,IAAMA,GAAK,MACX,MAAMiB,EAAItB,EAAE4gC,eACZ,OAAO3gC,EAAEqB,KAAOjB,GAAKiB,GAAIjB,GAE3B,WAAWL,GACT,MAAMsB,EAAItB,EAAE2b,MAAMyb,eAAep3B,EAAEgC,cAAcqzB,WAAWqE,SAAS15B,EAAEg1B,WACvE,MAAO,CACLzZ,YAAaja,EAAEia,YACfD,gBAAiBha,EAAEga,gBACnB0E,YAAa1e,EAAE0e,YACfsO,WAAYhtB,EAAEgtB,WACdC,iBAAkBjtB,EAAEitB,iBACpB8vB,aAAc,IAGlB,iBACE,OAAOt2C,KAAKylB,QAAQy/B,WAEtB,gBAAgBjtD,GACd,MAAMsB,EAAItB,EAAE2b,MAAMyb,eAAep3B,EAAEgC,cAAcqzB,WAAWqE,SAAS15B,EAAEg1B,WACvE,MAAO,CACL/V,WAAY3d,EAAE2d,WACdC,SAAU5d,EAAE4d,WAGhBysC,WAAY7rD,EACZqpD,UAAWrpD,EACX8rD,aAAc9rD,EACd6oD,OAAQ7oD,EACR+rD,YAAa/rD,IAGjB0iC,cAAe,CACbomB,SAAU,OACVE,WAAY,OACZD,UAAW,QAEbtoB,YAAa,CACX5iB,YAAc3d,GAAY,WAANA,GAAwB,aAANA,GAA0B,aAANA,EAC1D6d,YAAY,EACZ6gB,UAAW,CACT/gB,aAAa,EACbE,YAAY,GAEdxC,UAAW,CACTyC,WAAW,GAEbkU,WAAY,CACVlU,UAAW,cAGf85B,uBAAwB,CAAC,gBACxBoW,GAAqB1tD,OAAO44B,OAAO,CACpCiV,UAAW,KACX8f,WAAYzL,GACZ0L,OAAQpJ,GACRqJ,OAAQ/G,GACRgH,SAAUpG,GACVqG,MAAOxG,GACPyG,QAASR,KAEX,MAAMS,GAAK,CAACvuD,EAAGK,EAAGiB,EAAGG,KAAmB,iBAALpB,GAAiBiB,EAAItB,EAAEuD,KAAKlD,GAAK,EAAGoB,EAAEkiD,QAAQ,CAAE1hD,MAAOX,EAAGi3B,MAAOl4B,KAAQsF,MAAMtF,KAAOiB,EAAI,MAAOA,GACpI,SAASktD,GAAGxuD,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAI1B,EAAEsC,QAAQjC,GACpB,IAAW,IAAPqB,EACF,OAAO6sD,GAAGvuD,EAAGK,EAAGiB,EAAGG,GACrB,MAAME,EAAI3B,EAAEyuD,YAAYpuD,GACxB,OAAOqB,IAAMC,EAAIL,EAAII,EAEvB,MAAMgtD,GAAK,CAAC1uD,EAAGK,IAAY,OAANL,EAAa,KAAO6G,GAAE1C,KAAKe,MAAMlF,GAAI,EAAGK,GAC7D,MAAMsuD,WAAWroB,GACf,YAAYjmC,GACVm8B,MAAMn8B,GAAI0H,KAAK6mD,iBAAc,EAAQ7mD,KAAK8mD,YAAc,EAAG9mD,KAAK+mD,aAAe,GAEjF,KAAKzuD,GACH,MAAMiB,EAAIyG,KAAK+mD,aACf,GAAIxtD,EAAEO,OAAQ,CACZ,MAAMJ,EAAIsG,KAAKiwB,YACf,IAAK,MAAQ/1B,MAAOP,EAAG62B,MAAO52B,KAAOL,EACnCG,EAAEC,KAAOC,GAAKF,EAAEwG,OAAOvG,EAAG,GAC5BqG,KAAK+mD,aAAe,GAEtBtyB,MAAMme,KAAKt6C,GAEb,MAAMA,EAAGiB,GACP,GAAIrB,EAAEI,GACJ,OAAO,KACT,MAAMoB,EAAIsG,KAAKiwB,YACf,OAAO12B,EAAIR,SAASQ,IAAMG,EAAEH,KAAOjB,EAAIiB,EAAIktD,GAAG/sD,EAAGpB,EAAGW,EAAEM,EAAGjB,GAAI0H,KAAK+mD,cAAeJ,GAAGptD,EAAGG,EAAEI,OAAS,GAEpG,sBACE,MAAQwH,WAAYhJ,EAAGkJ,WAAYjI,GAAMyG,KAAK0B,gBAC9C,IAAM1D,IAAKtE,EAAGuE,IAAKtE,GAAMqG,KAAK6/B,WAAU,GAChB,UAAxB7/B,KAAKylB,QAAQsW,SAAuBzjC,IAAMoB,EAAI,GAAIH,IAAMI,EAAIqG,KAAKiwB,YAAYn2B,OAAS,IAAKkG,KAAKhC,IAAMtE,EAAGsG,KAAK/B,IAAMtE,EAEtH,aACE,MAAMrB,EAAI0H,KAAKhC,IAAKzE,EAAIyG,KAAK/B,IAAKvE,EAAIsG,KAAKylB,QAAQyQ,OAAQv8B,EAAI,GAC/D,IAAIC,EAAIoG,KAAKiwB,YACbr2B,EAAU,IAANtB,GAAWiB,IAAMK,EAAEE,OAAS,EAAIF,EAAIA,EAAEjB,MAAML,EAAGiB,EAAI,GAAIyG,KAAK8mD,YAAc1qD,KAAK6B,IAAIrE,EAAEE,QAAUJ,EAAI,EAAI,GAAI,GAAIsG,KAAK6mD,YAAc7mD,KAAKhC,KAAOtE,EAAI,GAAM,GAC5J,IAAK,IAAIG,EAAIvB,EAAGuB,GAAKN,EAAGM,IACtBF,EAAE6B,KAAK,CAAEsE,MAAOjG,IAClB,OAAOF,EAET,iBAAiBrB,GACf,MAAMiB,EAAIyG,KAAKiwB,YACf,OAAO33B,GAAK,GAAKA,EAAIiB,EAAEO,OAASP,EAAEjB,GAAKA,EAEzC,YACEm8B,MAAMnK,YAAatqB,KAAK2zB,iBAAmB3zB,KAAKm/B,gBAAkBn/B,KAAKm/B,gBAEzE,iBAAiB7mC,GACf,MAAmB,iBAALA,IAAkBA,EAAI0H,KAAKmf,MAAM7mB,IAAW,OAANA,EAAa83B,IAAMpwB,KAAK21B,oBAAoBr9B,EAAI0H,KAAK6mD,aAAe7mD,KAAK8mD,aAE/H,gBAAgBxuD,GACd,MAAMiB,EAAIyG,KAAK0yB,MACf,OAAOp6B,EAAI,GAAKA,EAAIiB,EAAEO,OAAS,EAAI,KAAOkG,KAAK2B,iBAAiBpI,EAAEjB,GAAGwH,OAEvE,iBAAiBxH,GACf,OAAO8D,KAAKe,MAAM6C,KAAK6mD,YAAc7mD,KAAKgnD,mBAAmB1uD,GAAK0H,KAAK8mD,aAEzE,eACE,OAAO9mD,KAAKuY,QAShB,SAAS0uC,GAAGhvD,EAAGK,GACb,MAAMiB,EAAI,IAAMwiC,OAAQpiC,EAAGutD,KAAMttD,EAAGoE,IAAKnE,EAAGoE,IAAKtD,EAAGwsD,UAAWvsD,EAAGiH,MAAOhH,EAAGusD,SAAUvoD,EAAGwoD,UAAW9lD,EAAG+lD,cAAe7lD,GAAMxJ,EAAG0N,EAAI/L,GAAK,EAAGqM,EAAIpH,EAAI,GAAKb,IAAK8mB,EAAG7mB,IAAK8mB,GAAMzsB,EAAGoN,GAAKxN,EAAE2B,GAAIqB,GAAKhD,EAAEyC,GAAIkqB,GAAK3sB,EAAE2C,GAAIM,GAAK4pB,EAAID,IAAMvjB,EAAI,GAClO,IAAiCoG,EAAGsd,EAAG1d,EAAGiT,EAAtCwK,EAAI9nB,GAAI6nB,EAAID,GAAK7e,EAAIN,GAAKA,EAC9B,GAAIqf,EAAI,QAAUtf,IAAMxK,EACtB,MAAO,CAAC,CAAE4E,MAAOglB,GAAK,CAAEhlB,MAAOilB,IACjCvK,EAAIpe,KAAK0/B,KAAK/W,EAAIC,GAAK5oB,KAAKkB,MAAMwnB,EAAIE,GAAIxK,EAAIvU,IAAM+e,EAAI9nB,EAAGsd,EAAIwK,EAAI/e,EAAIN,GAAKA,GAAIzN,EAAE0C,KAAO+M,EAAIvL,KAAKiB,IAAI,GAAIzC,GAAIoqB,EAAI5oB,KAAK0/B,KAAK9W,EAAIrd,GAAKA,GAAU,UAANhO,GAAiBsrB,EAAI7oB,KAAKkB,MAAMwnB,EAAIE,GAAKA,EAAGzd,EAAInL,KAAK0/B,KAAK/W,EAAIC,GAAKA,IAAMC,EAAIH,EAAGvd,EAAIwd,GAAIrf,GAAKxK,GAAKtB,GAAKkE,GAAInD,EAAId,GAAKD,EAAGorB,EAAI,MAAQxK,EAAIpe,KAAKe,MAAMf,KAAK4B,KAAKrD,EAAId,GAAKmrB,EAAGnmB,IAAKmmB,GAAKrqB,EAAId,GAAK2gB,EAAGyK,EAAIprB,EAAG0N,EAAI5M,GAAKkqB,GAAKI,EAAIvf,EAAI7L,EAAIorB,EAAG1d,EAAIrM,EAAIP,EAAI4M,EAAGiT,EAAI3f,EAAI,EAAGmqB,GAAKzd,EAAI0d,GAAKzK,IAAMA,GAAKjT,EAAI0d,GAAKD,EAAmCxK,EAAhCpd,EAAGod,EAAGpe,KAAKe,MAAMqd,GAAIwK,EAAI,KAAW5oB,KAAKe,MAAMqd,GAASpe,KAAK0/B,KAAKthB,IAC5e,MAAM5S,EAAIxL,KAAK6B,IACbG,EAAG4mB,GACH5mB,EAAG6mB,IAELtd,EAAIvL,KAAKiB,IAAI,GAAInF,EAAE0C,GAAKgN,EAAIhN,GAAIqqB,EAAI7oB,KAAKe,MAAM8nB,EAAItd,GAAKA,EAAGJ,EAAInL,KAAKe,MAAMoK,EAAII,GAAKA,EACnF,IAAIH,EAAI,EACR,IAAK9B,IAAMjE,GAAKwjB,IAAMprB,GAAKN,EAAEiC,KAAK,CAAEsE,MAAOjG,IAAMorB,EAAIprB,GAAK2N,IAAKpK,EAAGhB,KAAKe,OAAO8nB,EAAIzd,EAAIwd,GAAKrd,GAAKA,EAAG9N,EAAG0tD,GAAG1tD,EAAGsB,EAAGlD,KAAOuP,KAAOyd,EAAIprB,GAAK2N,KAAMA,EAAIgT,IAAKhT,EACnJjO,EAAEiC,KAAK,CAAEsE,MAAO1D,KAAKe,OAAO8nB,EAAIzd,EAAIwd,GAAKrd,GAAKA,IAChD,OAAOzM,GAAKuG,GAAK8F,IAAM5M,EAAIpB,EAAEO,QAAUsD,EAAG7D,EAAEA,EAAEO,OAAS,GAAGgG,MAAOnF,EAAG4sD,GAAG5sD,EAAGQ,EAAGlD,IAAMsB,EAAEA,EAAEO,OAAS,GAAGgG,MAAQnF,EAAIpB,EAAEiC,KAAK,CAAEsE,MAAOnF,MAASO,GAAKqM,IAAM5M,IAAMpB,EAAEiC,KAAK,CAAEsE,MAAOyH,IAAMhO,EAEjL,SAASguD,GAAGtvD,EAAGK,GAAKu7B,WAAYt6B,EAAGkjC,YAAa/iC,IAC9C,MAAMC,EAAIuE,EAAGxE,GAAIE,GAAKL,EAAI6C,KAAKqG,IAAI9I,GAAKyC,KAAKsH,IAAI/J,KAAO,KAAME,EAAI,IAAOvB,GAAK,GAAKL,GAAG6B,OACtF,OAAOsC,KAAK4B,IAAI1F,EAAIsB,EAAGC,GAxBzB+sD,GAAG56B,GAAK,WACR46B,GAAGryB,SAAW,CACZ7B,MAAO,CACLuK,SAAU2pB,GAAGpuD,UAAUi4B,mBAuB3B,MAAM+2B,WAAWjpB,GACf,YAAYjmC,GACVm8B,MAAMn8B,GAAI0H,KAAK4B,WAAQ,EAAQ5B,KAAKwkB,SAAM,EAAQxkB,KAAK6mD,iBAAc,EAAQ7mD,KAAKynD,eAAY,EAAQznD,KAAK8mD,YAAc,EAE3H,MAAMxuD,EAAGiB,GACP,OAAOrB,EAAEI,KAAmB,iBAALA,GAAiBA,aAAaQ,UAAYC,UAAUT,GAAK,MAAQA,EAE1F,yBACE,MAAQ+9B,YAAa/9B,GAAM0H,KAAKylB,SAAWnkB,WAAY/H,EAAGiI,WAAY9H,GAAMsG,KAAK0B,gBACjF,IAAM1D,IAAKrE,EAAGsE,IAAKrE,GAAMoG,KACzB,MAAMnG,EAAKe,GAAMjB,EAAIJ,EAAII,EAAIiB,EAAGD,EAAKC,GAAMhB,EAAIF,EAAIE,EAAIgB,EACvD,GAAItC,EAAG,CACL,MAAMsC,EAAIoC,EAAGrD,GAAIkB,EAAImC,EAAGpD,GACxBgB,EAAI,GAAKC,EAAI,EAAIF,EAAE,GAAKC,EAAI,GAAKC,EAAI,GAAKhB,EAAE,GAE9C,GAAIF,IAAMC,EAAG,CACX,IAAIgB,EAAI,GACPhB,GAAKd,OAAO4uD,kBAAoB/tD,GAAKb,OAAO6uD,oBAAsB/sD,EAAIwB,KAAKyB,IAAQ,IAAJjE,IAAYe,EAAEf,EAAIgB,GAAItC,GAAKuB,EAAEF,EAAIiB,GAEnHoF,KAAKhC,IAAMrE,EAAGqG,KAAK/B,IAAMrE,EAE3B,eACE,MAAMtB,EAAI0H,KAAKylB,QAAQiN,MACvB,IAA2C/4B,GAArCwhC,cAAe5hC,EAAGquD,SAAUluD,GAAMpB,EACxC,OAAOoB,GAAKC,EAAIyC,KAAK0/B,KAAK97B,KAAK/B,IAAMvE,GAAK0C,KAAKkB,MAAM0C,KAAKhC,IAAMtE,GAAK,EAAGC,EAAI,MAAQ4hB,QAAQC,KAAK,UAAUxb,KAAKgsB,sBAAsBtyB,mCAAmCC,8BAA+BA,EAAI,OAASA,EAAIqG,KAAK6nD,mBAAoBtuD,EAAIA,GAAK,IAAKA,IAAMI,EAAIyC,KAAK4B,IAAIzE,EAAGI,IAAKA,EAE7R,mBACE,OAAOb,OAAO2D,kBAEhB,aACE,MAAMnE,EAAI0H,KAAKylB,QAASlsB,EAAIjB,EAAEo6B,MAC9B,IAAIh5B,EAAIsG,KAAK8nD,eACbpuD,EAAI0C,KAAK6B,IAAI,EAAGvE,GAChB,MAAMC,EAAI,CACRytD,SAAU1tD,EACVqiC,OAAQzjC,EAAEyjC,OACV/9B,IAAK1F,EAAE0F,IACPC,IAAK3F,EAAE2F,IACPkpD,UAAW5tD,EAAE4tD,UACbD,KAAM3tD,EAAEquD,SACR/lD,MAAOtI,EAAEsI,MACTwlD,UAAWrnD,KAAK+nD,aAChBl0B,WAAY7zB,KAAK2zB,eACjB8I,YAAaljC,EAAEkjC,aAAe,EAC9B6qB,eAAmC,IAApB/tD,EAAE+tD,eAChB1tD,EAAIoG,KAAK8+B,QAAU9+B,KAAMnG,EAAIotD,GAAGttD,EAAGC,GACtC,MAAoB,UAAbtB,EAAEyjC,QAAsBh+B,EAAGlE,EAAGmG,KAAM,SAAU1H,EAAE6yB,SAAWtxB,EAAEsxB,UAAWnrB,KAAK4B,MAAQ5B,KAAK/B,IAAK+B,KAAKwkB,IAAMxkB,KAAKhC,MAAQgC,KAAK4B,MAAQ5B,KAAKhC,IAAKgC,KAAKwkB,IAAMxkB,KAAK/B,KAAMpE,EAE7K,YACE,MAAMvB,EAAI0H,KAAK0yB,MACf,IAAIn5B,EAAIyG,KAAKhC,IAAKtE,EAAIsG,KAAK/B,IAC3B,GAAIw2B,MAAMnK,YAAatqB,KAAKylB,QAAQyQ,QAAU59B,EAAEwB,OAAQ,CACtD,MAAMH,GAAKD,EAAIH,GAAK6C,KAAK6B,IAAI3F,EAAEwB,OAAS,EAAG,GAAK,EAChDP,GAAKI,EAAGD,GAAKC,EAEfqG,KAAK6mD,YAActtD,EAAGyG,KAAKynD,UAAY/tD,EAAGsG,KAAK8mD,YAAcptD,EAAIH,EAEnE,iBAAiBjB,GACf,OAAOmrB,GAAGnrB,EAAG0H,KAAK4T,MAAM6R,QAAQ2S,OAAQp4B,KAAKylB,QAAQiN,MAAMhP,SAG/D,MAAMskC,WAAWR,GACf,sBACE,MAAQxpD,IAAK1F,EAAG2F,IAAK1E,GAAMyG,KAAK6/B,WAAU,GAC1C7/B,KAAKhC,IAAMnF,EAAEP,GAAKA,EAAI,EAAG0H,KAAK/B,IAAMpF,EAAEU,GAAKA,EAAI,EAAGyG,KAAKioD,yBAEzD,mBACE,MAAM3vD,EAAI0H,KAAK2zB,eAAgBp6B,EAAIjB,EAAI0H,KAAKmW,MAAQnW,KAAK+W,OAAQrd,EAAIwE,EAAG8B,KAAKylB,QAAQiN,MAAM+J,aAAc9iC,GAAKrB,EAAI8D,KAAKqG,IAAI/I,GAAK0C,KAAKsH,IAAIhK,KAAO,KAAME,EAAIoG,KAAKwiC,wBAAwB,GACvL,OAAOpmC,KAAK0/B,KAAKviC,EAAI6C,KAAK4B,IAAI,GAAIpE,EAAEwa,WAAaza,IAEnD,iBAAiBrB,GACf,OAAa,OAANA,EAAa83B,IAAMpwB,KAAK21B,oBAAoBr9B,EAAI0H,KAAK6mD,aAAe7mD,KAAK8mD,aAElF,iBAAiBxuD,GACf,OAAO0H,KAAK6mD,YAAc7mD,KAAKgnD,mBAAmB1uD,GAAK0H,KAAK8mD,aAShE,SAASoB,GAAGjwD,GACV,OAAOA,EAAImE,KAAKiB,IAAI,GAAIjB,KAAKkB,MAAMR,EAAG7E,OAAS,EAEjD,SAASkwD,GAAGlwD,EAAGK,GACb,MAAMiB,EAAI6C,KAAKkB,MAAMR,EAAGxE,EAAE2F,MAAOvE,EAAI0C,KAAK0/B,KAAKxjC,EAAE2F,IAAM7B,KAAKiB,IAAI,GAAI9D,IAAKI,EAAI,GAC7E,IAAIC,EAAIZ,EAAEf,EAAE+F,IAAK5B,KAAKiB,IAAI,GAAIjB,KAAKkB,MAAMR,EAAGxE,EAAE0F,QAASnE,EAAIuC,KAAKkB,MAAMR,EAAGlD,IAAKe,EAAIyB,KAAKkB,MAAM1D,EAAIwC,KAAKiB,IAAI,GAAIxD,IAAKe,EAAIf,EAAI,EAAIuC,KAAKiB,IAAI,GAAIjB,KAAKyB,IAAIhE,IAAM,EAC3J,GACEF,EAAE6B,KAAK,CAAEsE,MAAOlG,EAAGyhC,MAAO6sB,GAAGtuD,OAASe,EAAS,KAANA,IAAaA,EAAI,IAAKd,EAAGe,EAAIf,GAAK,EAAI,EAAIe,GAAIhB,EAAIwC,KAAKe,MAAMxC,EAAIyB,KAAKiB,IAAI,GAAIxD,GAAKe,GAAKA,QAC5Hf,EAAIN,GAAKM,IAAMN,GAAKoB,EAAIjB,GAC/B,MAAMmB,EAAI7B,EAAEf,EAAEgG,IAAKrE,GACnB,OAAOD,EAAE6B,KAAK,CAAEsE,MAAOjF,EAAGwgC,MAAO6sB,GAAGtuD,KAAOD,EAhB7CquD,GAAGh8B,GAAK,SACRg8B,GAAGzzB,SAAW,CACZ7B,MAAO,CACLuK,SAAUjC,GAAGC,WAAWF,UAe5B,MAAMqtB,WAAW7pB,GACf,YAAYjmC,GACVm8B,MAAMn8B,GAAI0H,KAAK4B,WAAQ,EAAQ5B,KAAKwkB,SAAM,EAAQxkB,KAAK6mD,iBAAc,EAAQ7mD,KAAK8mD,YAAc,EAElG,MAAMxuD,EAAGiB,GACP,MAAMG,EAAI8tD,GAAGhvD,UAAU2mB,MAAM3lB,MAAMwG,KAAM,CAAC1H,EAAGiB,IAC7C,GAAU,IAANG,EAIJ,OAAOb,EAAEa,IAAMA,EAAI,EAAIA,EAAI,KAHzBsG,KAAKqoD,OAAQ,EAKjB,sBACE,MAAQrqD,IAAK1F,EAAG2F,IAAK1E,GAAMyG,KAAK6/B,WAAU,GAC1C7/B,KAAKhC,IAAMnF,EAAEP,GAAK8D,KAAK6B,IAAI,EAAG3F,GAAK,KAAM0H,KAAK/B,IAAMpF,EAAEU,GAAK6C,KAAK6B,IAAI,EAAG1E,GAAK,KAAMyG,KAAKylB,QAAQ4Q,cAAgBr2B,KAAKqoD,OAAQ,GAAKroD,KAAKioD,yBAExI,yBACE,MAAQ3mD,WAAYhJ,EAAGkJ,WAAYjI,GAAMyG,KAAK0B,gBAC9C,IAAIhI,EAAIsG,KAAKhC,IAAKrE,EAAIqG,KAAK/B,IAC3B,MAAMrE,EAAKgB,GAAMlB,EAAIpB,EAAIoB,EAAIkB,EAAGf,EAAKe,GAAMjB,EAAIJ,EAAII,EAAIiB,EAAGD,EAAI,CAACC,EAAGC,IAAMuB,KAAKiB,IAAI,GAAIjB,KAAKkB,MAAMR,EAAGlC,IAAMC,GACzGnB,IAAMC,IAAMD,GAAK,GAAKE,EAAE,GAAIC,EAAE,MAAQD,EAAEe,EAAEjB,GAAI,IAAKG,EAAEc,EAAEhB,EAAG,MAAOD,GAAK,GAAKE,EAAEe,EAAEhB,GAAI,IAAKA,GAAK,GAAKE,EAAEc,EAAEjB,EAAG,IAAKsG,KAAKqoD,OAASroD,KAAKhC,MAAQgC,KAAKu/B,eAAiB7lC,IAAMiB,EAAEqF,KAAKhC,IAAK,IAAMpE,EAAEe,EAAEjB,GAAI,IAAKsG,KAAKhC,IAAMtE,EAAGsG,KAAK/B,IAAMtE,EAE/N,aACE,MAAMrB,EAAI0H,KAAKylB,QAASlsB,EAAI,CAC1ByE,IAAKgC,KAAKq/B,SACVphC,IAAK+B,KAAKo/B,UACT1lC,EAAIyuD,GAAG5uD,EAAGyG,MACb,MAAoB,UAAb1H,EAAEyjC,QAAsBh+B,EAAGrE,EAAGsG,KAAM,SAAU1H,EAAE6yB,SAAWzxB,EAAEyxB,UAAWnrB,KAAK4B,MAAQ5B,KAAK/B,IAAK+B,KAAKwkB,IAAMxkB,KAAKhC,MAAQgC,KAAK4B,MAAQ5B,KAAKhC,IAAKgC,KAAKwkB,IAAMxkB,KAAK/B,KAAMvE,EAE7K,iBAAiBpB,GACf,YAAa,IAANA,EAAe,IAAMmrB,GAAGnrB,EAAG0H,KAAK4T,MAAM6R,QAAQ2S,OAAQp4B,KAAKylB,QAAQiN,MAAMhP,QAElF,YACE,MAAMprB,EAAI0H,KAAKhC,IACfy2B,MAAMnK,YAAatqB,KAAK6mD,YAAc/pD,EAAGxE,GAAI0H,KAAK8mD,YAAchqD,EAAGkD,KAAK/B,KAAOnB,EAAGxE,GAEpF,iBAAiBA,GACf,YAAc,IAANA,GAAsB,IAANA,KAAaA,EAAI0H,KAAKhC,KAAY,OAAN1F,GAAcsF,MAAMtF,GAAK83B,IAAMpwB,KAAK21B,mBAAmBr9B,IAAM0H,KAAKhC,IAAM,GAAKlB,EAAGxE,GAAK0H,KAAK6mD,aAAe7mD,KAAK8mD,aAEpK,iBAAiBxuD,GACf,MAAMiB,EAAIyG,KAAKgnD,mBAAmB1uD,GAClC,OAAO8D,KAAKiB,IAAI,GAAI2C,KAAK6mD,YAActtD,EAAIyG,KAAK8mD,cAYpD,SAASwB,GAAGrwD,GACV,MAAMK,EAAIL,EAAEy6B,MACZ,GAAIp6B,EAAE0hC,SAAW/hC,EAAE+hC,QAAS,CAC1B,MAAMzgC,EAAIsO,GAAEvP,EAAEilC,iBACd,OAAOtkC,EAAEX,EAAE2b,MAAQ3b,EAAE2b,KAAKlY,KAAM2L,GAAEuM,KAAKlY,MAAQxC,EAAEwd,OAEnD,OAAO,EAET,SAASwxC,GAAGtwD,EAAGK,EAAGiB,GAChB,OAAOA,EAAIpB,EAAEoB,GAAKA,EAAI,CAACA,GAAI,CACzBihB,EAAGpE,GAAGne,EAAGK,EAAE8gB,OAAQ7f,GACnBsF,EAAGtF,EAAEO,OAASxB,EAAE8b,YAGpB,SAASo0C,GAAGvwD,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,OAAO1B,IAAMyB,GAAKzB,IAAM0B,EAAI,CAC1BiI,MAAOtJ,EAAIiB,EAAI,EACfirB,IAAKlsB,EAAIiB,EAAI,GACXtB,EAAIyB,GAAKzB,EAAI0B,EAAI,CACnBiI,MAAOtJ,EAAIiB,EACXirB,IAAKlsB,GACH,CACFsJ,MAAOtJ,EACPksB,IAAKlsB,EAAIiB,GAGb,SAASkvD,GAAGxwD,GACV,MAAMK,EAAI,CACRsC,EAAG3C,EAAEmgB,KAAOngB,EAAEynD,SAAStnC,KACvBve,EAAG5B,EAAEogB,MAAQpgB,EAAEynD,SAASrnC,MACxB/f,EAAGL,EAAEqgB,IAAMrgB,EAAEynD,SAASpnC,IACtB5S,EAAGzN,EAAEsgB,OAAStgB,EAAEynD,SAASnnC,QACxBhf,EAAIhB,OAAO+J,OAAO,GAAIhK,GAAIoB,EAAI,GAAIC,EAAI,GAAIC,EAAI3B,EAAEywD,aAAa5uD,OAAQD,EAAI5B,EAAEwtB,QAAQyU,YAAav/B,EAAId,EAAE8uD,kBAAoBxsD,EAAIvC,EAAI,EACrI,IAAK,IAAIgB,EAAI,EAAGA,EAAIhB,EAAGgB,IAAK,CAC1B,MAAMC,EAAIhB,EAAE0jB,WAAWtlB,EAAE2wD,qBAAqBhuD,IAC9CjB,EAAEiB,GAAKC,EAAE2hC,QACT,MAAM39B,EAAI5G,EAAE4wD,iBAAiBjuD,EAAG3C,EAAE6wD,YAAcnvD,EAAEiB,GAAID,GAAI4G,EAAI+Z,GAAEzgB,EAAEoZ,MAAOxS,EAAI8mD,GAAGtwD,EAAEsqB,IAAKhhB,EAAGtJ,EAAEywD,aAAa9tD,IACzGlB,EAAEkB,GAAK6G,EACP,MAAMkE,EAAIhH,EAAE1G,EAAE0hC,cAAc/+B,GAAKD,GAAIsL,EAAI7J,KAAKe,MAAMgB,EAAGwH,IAAKmf,EAAI0jC,GAAGviD,EAAGpH,EAAE3D,EAAGuG,EAAE+Y,EAAG,EAAG,KAAMuK,EAAIyjC,GAAGviD,EAAGpH,EAAE1D,EAAGsG,EAAE5C,EAAG,GAAI,KACjHkqD,GAAGxvD,EAAGjB,EAAGqN,EAAGmf,EAAGC,GAEjB9sB,EAAE+wD,eACA1wD,EAAEsC,EAAIrB,EAAEqB,EACRrB,EAAEM,EAAIvB,EAAEuB,EACRvB,EAAEA,EAAIiB,EAAEjB,EACRiB,EAAEmM,EAAIpN,EAAEoN,GACPzN,EAAEgxD,iBAAmBC,GAAGjxD,EAAGyB,EAAGC,GAEnC,SAASovD,GAAG9wD,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,MAAMC,EAAIwC,KAAKyB,IAAIzB,KAAKqG,IAAIlJ,IAAKM,EAAIuC,KAAKyB,IAAIzB,KAAKsH,IAAInK,IACvD,IAAIoB,EAAI,EAAGC,EAAI,EACflB,EAAEkI,MAAQtJ,EAAEsC,GAAKD,GAAKrC,EAAEsC,EAAIlB,EAAEkI,OAAShI,EAAG3B,EAAE2C,EAAIwB,KAAK4B,IAAI/F,EAAE2C,EAAGtC,EAAEsC,EAAID,IAAMjB,EAAE8qB,IAAMlsB,EAAEuB,IAAMc,GAAKjB,EAAE8qB,IAAMlsB,EAAEuB,GAAKD,EAAG3B,EAAE4B,EAAIuC,KAAK6B,IAAIhG,EAAE4B,EAAGvB,EAAEuB,EAAIc,IAAKhB,EAAEiI,MAAQtJ,EAAEA,GAAKsC,GAAKtC,EAAEA,EAAIqB,EAAEiI,OAAS/H,EAAG5B,EAAEK,EAAI8D,KAAK4B,IAAI/F,EAAEK,EAAGA,EAAEA,EAAIsC,IAAMjB,EAAE6qB,IAAMlsB,EAAEoN,IAAM9K,GAAKjB,EAAE6qB,IAAMlsB,EAAEoN,GAAK7L,EAAG5B,EAAEyN,EAAItJ,KAAK6B,IAAIhG,EAAEyN,EAAGpN,EAAEoN,EAAI9K,IAE7R,SAASsuD,GAAGjxD,EAAGK,EAAGiB,GAChB,MAAMG,EAAI,GAAIC,EAAI1B,EAAEywD,aAAa5uD,OAAQF,EAAI3B,EAAEwtB,QAAS5rB,EAAIyuD,GAAG1uD,GAAK,EAAGe,EAAI1C,EAAE6wD,YAAaluD,EAAIhB,EAAEsgC,YAAYyuB,kBAAoBxsD,EAAIxC,EAAI,EACxI,IAAK,IAAIkB,EAAI,EAAGA,EAAIlB,EAAGkB,IAAK,CAC1B,MAAMgE,EAAI5G,EAAE4wD,iBAAiBhuD,EAAGF,EAAId,EAAIN,EAAEsB,GAAID,GAAI2G,EAAInF,KAAKe,MAAMgB,EAAGQ,EAAEE,EAAEN,MAAQ5B,KAAM8E,EAAInJ,EAAEuC,GAAI8K,EAAIwjD,GAAGtqD,EAAE1D,EAAGsG,EAAE5C,EAAG0C,GAAI0E,EAAImjD,GAAG7nD,GAAIujB,EAAIukC,GAAGxqD,EAAE3D,EAAGuG,EAAE+Y,EAAGvU,GACjJvM,EAAE8B,KAAK,CACLN,EAAG2D,EAAE3D,EACLC,EAAGwK,EACHmU,UAAW7T,EACXmS,KAAM0M,EACNxM,IAAK3S,EACL0S,MAAOyM,EAAIrjB,EAAE+Y,EACbjC,OAAQ5S,EAAIlE,EAAE5C,IAGlB,OAAOnF,EAET,SAAS0vD,GAAGnxD,GACV,OAAa,IAANA,GAAiB,MAANA,EAAY,SAAWA,EAAI,IAAM,OAAS,QAE9D,SAASoxD,GAAGpxD,EAAGK,EAAGiB,GAChB,MAAa,UAANA,EAAgBtB,GAAKK,EAAU,WAANiB,IAAmBtB,GAAKK,EAAI,GAAIL,EAElE,SAASkxD,GAAGlxD,EAAGK,EAAGiB,GAChB,OAAa,KAANA,GAAkB,MAANA,EAAYtB,GAAKK,EAAI,GAAKiB,EAAI,KAAOA,EAAI,MAAQtB,GAAKK,GAAIL,EAE/E,SAASqxD,GAAGrxD,EAAGK,GACb,MAAQiqB,IAAKhpB,EAAGksB,SAAWyU,YAAaxgC,IAAQzB,EAChD,IAAK,IAAI0B,EAAIrB,EAAI,EAAGqB,GAAK,EAAGA,IAAK,CAC/B,MAAMC,EAAIF,EAAE6jB,WAAWtlB,EAAE2wD,qBAAqBjvD,IAAKE,EAAIyhB,GAAE1hB,EAAEqa,OAAS/Y,EAAGP,EAAGQ,EAAGP,EAAGkf,UAAWjf,EAAGud,KAAMvZ,EAAGyZ,IAAK/W,EAAG8W,MAAO5W,EAAG8W,OAAQ5S,GAAM1N,EAAEgxD,iBAAiBtvD,IAAM2jC,cAAer3B,GAAMrM,EACrL,IAAK1B,EAAE+N,GAAI,CACT,MAAM6e,EAAIzJ,GAAGzhB,EAAE08C,cAAevxB,EAAIld,GAAEjO,EAAE2jC,iBACtChkC,EAAEsgB,UAAY5T,EACd,MAAMP,EAAI7G,EAAIkmB,EAAE3M,KAAMld,EAAIqG,EAAIwjB,EAAEzM,IAAKuM,EAAIpjB,EAAI5C,EAAIkmB,EAAE5O,MAAOhb,EAAIwK,EAAIpE,EAAIwjB,EAAEhO,OACxExe,OAAOmzB,OAAO5G,GAAGopB,KAAMlpB,GAAY,IAANA,IAAYzrB,EAAEie,YAAa+C,GAAGhhB,EAAG,CAC5D2B,EAAGwK,EACHvK,EAAGD,EACHsf,EAAGqK,EACHhmB,EAAG1D,EACHic,OAAQ0N,IACNvrB,EAAEye,QAAUze,EAAE8qC,SAAS3+B,EAAGxK,EAAG2pB,EAAG1pB,GAEtC8d,GACE1f,EACAtB,EAAEywD,aAAa/uD,GACfgB,EACAC,EAAIf,EAAEua,WAAa,EACnBva,EACA,CACE4Z,MAAO7Z,EAAE6Z,MACTqG,UAAWjf,EACXkf,aAAc,YAKtB,SAASwvC,GAAGtxD,EAAGK,EAAGiB,EAAGG,GACnB,MAAQ6oB,IAAK5oB,GAAM1B,EACnB,GAAIsB,EACFI,EAAE+d,IAAIzf,EAAEwhC,QAASxhC,EAAEyhC,QAASphC,EAAG,EAAGgE,OAC/B,CACH,IAAI1C,EAAI3B,EAAE4wD,iBAAiB,EAAGvwD,GAC9BqB,EAAEie,OAAOhe,EAAEsB,EAAGtB,EAAEuB,GAChB,IAAK,IAAItB,EAAI,EAAGA,EAAIH,EAAGG,IACrBD,EAAI3B,EAAE4wD,iBAAiBhvD,EAAGvB,GAAIqB,EAAEke,OAAOje,EAAEsB,EAAGtB,EAAEuB,IAGpD,SAASquD,GAAGvxD,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAI1B,EAAEsqB,IAAK3oB,EAAItB,EAAE2hC,UAAYxmB,MAAO5Z,EAAG0f,UAAW5e,GAAMrC,GAC7DsB,IAAMF,IAAMG,IAAMc,GAAKpB,EAAI,IAAMI,EAAE4c,OAAQ5c,EAAE2f,YAAczf,EAAGF,EAAE4f,UAAY5e,EAAGhB,EAAE6qC,YAAYlsC,EAAEiuB,YAAa5sB,EAAE8qC,eAAiBnsC,EAAEkuB,iBAAkB7sB,EAAE6d,YAAa+xC,GAAGtxD,EAAGsB,EAAGK,EAAGF,GAAIC,EAAEge,YAAahe,EAAEue,SAAUve,EAAE6c,WAElN,SAASizC,GAAGxxD,EAAGK,EAAGiB,GAChB,OAAOqiB,GAAG3jB,EAAG,CACXu4B,MAAOj3B,EACPW,MAAO5B,EACP4D,KAAM,eAxIVksD,GAAGp8B,GAAK,cACRo8B,GAAG7zB,SAAW,CACZ7B,MAAO,CACLuK,SAAUjC,GAAGC,WAAWyuB,YACxBruB,MAAO,CACLC,SAAS,KAsIf,MAAMquB,WAAWnC,GACf,YAAYlvD,GACVm8B,MAAMn8B,GAAI0H,KAAKy5B,aAAU,EAAQz5B,KAAK05B,aAAU,EAAQ15B,KAAK8oD,iBAAc,EAAQ9oD,KAAK0oD,aAAe,GAAI1oD,KAAKipD,iBAAmB,GAErI,gBACE,MAAM3wD,EAAI0H,KAAK0/C,SAAW73C,GAAEygD,GAAGtoD,KAAKylB,SAAW,GAAIlsB,EAAIyG,KAAKmW,MAAQnW,KAAKyZ,SAAWnhB,EAAE6d,MAAOzc,EAAIsG,KAAK+W,OAAS/W,KAAKiiB,UAAY3pB,EAAEye,OAClI/W,KAAKy5B,QAAUr9B,KAAKkB,MAAM0C,KAAKoY,KAAO7e,EAAI,EAAIjB,EAAE8f,MAAOpY,KAAK05B,QAAUt9B,KAAKkB,MAAM0C,KAAKsY,IAAM5e,EAAI,EAAIpB,EAAEggB,KAAMtY,KAAK8oD,YAAc1sD,KAAKkB,MAAMlB,KAAK4B,IAAIzE,EAAGG,GAAK,GAE7J,sBACE,MAAQsE,IAAK1F,EAAG2F,IAAK1E,GAAMyG,KAAK6/B,WAAU,GAC1C7/B,KAAKhC,IAAMnF,EAAEP,KAAOsF,MAAMtF,GAAKA,EAAI,EAAG0H,KAAK/B,IAAMpF,EAAEU,KAAOqE,MAAMrE,GAAKA,EAAI,EAAGyG,KAAKioD,yBAEnF,mBACE,OAAO7rD,KAAK0/B,KAAK97B,KAAK8oD,YAAcR,GAAGtoD,KAAKylB,UAE9C,mBAAmBntB,GACjBkvD,GAAGhvD,UAAU8pC,mBAAmB5pC,KAAKsH,KAAM1H,GAAI0H,KAAK0oD,aAAe1oD,KAAKiwB,YAAY71B,IAAI,CAACb,EAAGG,KAC1F,MAAMC,EAAIL,EAAE0G,KAAKylB,QAAQyU,YAAY+C,SAAU,CAAC1jC,EAAGG,GAAIsG,MACvD,OAAOrG,GAAW,IAANA,EAAUA,EAAI,KACzB8kB,OAAO,CAACllB,EAAGG,IAAMsG,KAAK4T,MAAM8hB,kBAAkBh8B,IAEnD,MACE,MAAMpB,EAAI0H,KAAKylB,QACfntB,EAAE0hC,SAAW1hC,EAAE4hC,YAAYF,QAAUyuB,GAAGzoD,MAAQA,KAAKgpD,eAAe,EAAG,EAAG,EAAG,GAE/E,eAAe1wD,EAAGiB,EAAGG,EAAGC,GACtBqG,KAAKy5B,SAAWr9B,KAAKkB,OAAOhF,EAAIiB,GAAK,GAAIyG,KAAK05B,SAAWt9B,KAAKkB,OAAO5D,EAAIC,GAAK,GAAIqG,KAAK8oD,aAAe1sD,KAAK4B,IAAIgC,KAAK8oD,YAAc,EAAG1sD,KAAK6B,IAAI3F,EAAGiB,EAAGG,EAAGC,IAEzJ,cAAcrB,GACZ,MAAMiB,EAAI+C,GAAK0D,KAAK0oD,aAAa5uD,QAAU,GAAIJ,EAAIsG,KAAKylB,QAAQwS,YAAc,EAC9E,OAAOt5B,EAAErG,EAAIiB,EAAI2E,EAAGxE,IAEtB,8BAA8BpB,GAC5B,GAAIJ,EAAEI,GACJ,OAAO83B,IACT,MAAM72B,EAAIyG,KAAK8oD,aAAe9oD,KAAK/B,IAAM+B,KAAKhC,KAC9C,OAAOgC,KAAKylB,QAAQ0F,SAAWnrB,KAAK/B,IAAM3F,GAAKiB,GAAKjB,EAAI0H,KAAKhC,KAAOzE,EAEtE,8BAA8BjB,GAC5B,GAAIJ,EAAEI,GACJ,OAAO83B,IACT,MAAM72B,EAAIjB,GAAK0H,KAAK8oD,aAAe9oD,KAAK/B,IAAM+B,KAAKhC,MACnD,OAAOgC,KAAKylB,QAAQ0F,QAAUnrB,KAAK/B,IAAM1E,EAAIyG,KAAKhC,IAAMzE,EAE1D,qBAAqBjB,GACnB,MAAMiB,EAAIyG,KAAK0oD,cAAgB,GAC/B,GAAIpwD,GAAK,GAAKA,EAAIiB,EAAEO,OAAQ,CAC1B,MAAMJ,EAAIH,EAAEjB,GACZ,OAAOmxD,GAAGzpD,KAAK4W,aAActe,EAAGoB,IAGpC,iBAAiBpB,EAAGiB,EAAGG,EAAI,GACzB,MAAMC,EAAIqG,KAAK25B,cAAcrhC,GAAKqE,EAAIjD,EACtC,MAAO,CACLwB,EAAGkB,KAAKsH,IAAI/J,GAAKJ,EAAIyG,KAAKy5B,QAC1Bt+B,EAAGiB,KAAKqG,IAAI9I,GAAKJ,EAAIyG,KAAK05B,QAC1Bn7B,MAAO5E,GAGX,yBAAyBrB,EAAGiB,GAC1B,OAAOyG,KAAK6oD,iBAAiBvwD,EAAG0H,KAAK85B,8BAA8BvgC,IAErE,gBAAgBjB,GACd,OAAO0H,KAAKq6B,yBAAyB/hC,GAAK,EAAG0H,KAAK2iC,gBAEpD,sBAAsBrqC,GACpB,MAAQ8f,KAAM7e,EAAG+e,IAAK5e,EAAG2e,MAAO1e,EAAG4e,OAAQ3e,GAAMoG,KAAKipD,iBAAiB3wD,GACvE,MAAO,CACL8f,KAAM7e,EACN+e,IAAK5e,EACL2e,MAAO1e,EACP4e,OAAQ3e,GAGZ,iBACE,MAAQ2Z,gBAAiBjb,EAAG69B,MAAQ8D,SAAU1gC,IAAQyG,KAAKylB,QAC3D,GAAIntB,EAAG,CACL,MAAMoB,EAAIsG,KAAKuiB,IACf7oB,EAAE6c,OAAQ7c,EAAE8d,YAAa+xC,GAAGvpD,KAAMA,KAAK85B,8BAA8B95B,KAAKynD,WAAYluD,EAAGyG,KAAK0oD,aAAa5uD,QAASJ,EAAEie,YAAaje,EAAEmgB,UAAYvhB,EAAGoB,EAAEse,OAAQte,EAAE8c,WAGpK,WACE,MAAMle,EAAI0H,KAAKuiB,IAAKhpB,EAAIyG,KAAKylB,SAAWsU,WAAYrgC,EAAGy8B,KAAMx8B,GAAMJ,EAAGK,EAAIoG,KAAK0oD,aAAa5uD,OAC5F,IAAID,EAAGc,EAAGC,EACV,GAAIrB,EAAE2gC,YAAYF,SAAWsvB,GAAGtpD,KAAMpG,GAAID,EAAEqgC,SAAWh6B,KAAK0yB,MAAM3yB,QAAQ,CAAClF,EAAGgE,KAC5E,GAAU,IAANA,EAAS,CACXlE,EAAIqF,KAAK85B,8BAA8Bj/B,EAAEiF,OACzC,MAAMyB,EAAI5H,EAAE4jB,WAAWvd,KAAK4W,WAAW/X,EAAI,IAC3C2qD,GAAGxpD,KAAMuB,EAAG5G,EAAGf,MAEfF,EAAEsgC,QAAS,CACb,IAAK1hC,EAAEie,OAAQ1c,EAAID,EAAI,EAAGC,GAAK,EAAGA,IAAK,CACrC,MAAMgB,EAAInB,EAAE6jB,WAAWvd,KAAK4oD,qBAAqB/uD,KAAO4Z,MAAO5U,EAAG0a,UAAWhY,GAAM1G,GAClF0G,IAAM1C,IAAMvG,EAAEihB,UAAYhY,EAAGjJ,EAAEghB,YAAcza,EAAGvG,EAAEksC,YAAY3pC,EAAE0rB,YAAajuB,EAAEmsC,eAAiB5pC,EAAE2rB,iBAAkB7rB,EAAIqF,KAAK85B,8BAA8BvgC,EAAEm5B,MAAMvH,QAAUnrB,KAAKhC,IAAMgC,KAAK/B,KAAMrD,EAAIoF,KAAK6oD,iBAAiBhvD,EAAGc,GAAIrC,EAAEkf,YAAalf,EAAEsf,OAAO5X,KAAKy5B,QAASz5B,KAAK05B,SAAUphC,EAAEuf,OAAOjd,EAAEM,EAAGN,EAAEO,GAAI7C,EAAE4f,UAElT5f,EAAEke,WAGN,cAEA,aACE,MAAMle,EAAI0H,KAAKuiB,IAAKhpB,EAAIyG,KAAKylB,QAAS/rB,EAAIH,EAAEm5B,MAC5C,IAAKh5B,EAAEsgC,QACL,OACF,MAAMrgC,EAAIqG,KAAK25B,cAAc,GAC7B,IAAI//B,EAAGC,EACPvB,EAAEie,OAAQje,EAAE+e,UAAUrX,KAAKy5B,QAASz5B,KAAK05B,SAAUphC,EAAEgf,OAAO3d,GAAIrB,EAAEwhB,UAAY,SAAUxhB,EAAEyhB,aAAe,SAAU/Z,KAAK0yB,MAAM3yB,QAAQ,CAACpF,EAAGC,KACxI,GAAU,IAANA,IAAYrB,EAAE4xB,QAChB,OACF,MAAMtwB,EAAInB,EAAE6jB,WAAWvd,KAAK4W,WAAWhc,IAAKiE,EAAIyc,GAAEzgB,EAAEoZ,MACpD,GAAIra,EAAIoG,KAAK85B,8BAA8B95B,KAAK0yB,MAAM93B,GAAGkF,OAAQjF,EAAEwiC,kBAAmB,CACpF/kC,EAAE2b,KAAOpV,EAAEua,OAAQvf,EAAIvB,EAAE4d,YAAYvb,EAAE61B,OAAOra,MAAO7d,EAAEuhB,UAAYhf,EAAEyiC,cACrE,MAAM/7B,EAAIsG,GAAEhN,EAAE0iC,iBACdjlC,EAAE+rC,UACCxqC,EAAI,EAAI0H,EAAE6W,MACVxe,EAAIiF,EAAE9C,KAAO,EAAIwF,EAAE+W,IACpBze,EAAI0H,EAAE4U,MACNtX,EAAE9C,KAAOwF,EAAEwV,QAGfkC,GAAG3gB,EAAGqC,EAAE61B,MAAO,GAAI52B,EAAGiF,EAAG,CACvB4U,MAAO5Y,EAAE4Y,UAETnb,EAAEke,UAER,cAGFmzC,GAAG39B,GAAK,eACR29B,GAAGp1B,SAAW,CACZyF,SAAS,EACT4vB,SAAS,EACTxnB,SAAU,YACVrI,WAAY,CACVC,SAAS,EACTzgB,UAAW,EACXgN,WAAY,GACZC,iBAAkB,GAEpB2P,KAAM,CACJ8D,UAAU,GAEZhC,WAAY,EACZvF,MAAO,CACL2K,mBAAmB,EACnBJ,SAAUjC,GAAGC,WAAWF,SAE1Bb,YAAa,CACXoD,mBAAe,EACfC,gBAAiB,EACjBvD,SAAS,EACT/lB,KAAM,CACJlY,KAAM,IAER,SAAS9D,GACP,OAAOA,GAETukC,QAAS,EACTmsB,mBAAmB,IAGvBgB,GAAGlvB,cAAgB,CACjB,mBAAoB,cACpB,oBAAqB,QACrB,cAAe,SAEjBkvB,GAAGnxB,YAAc,CACfuB,WAAY,CACVhkB,UAAW,SAGf,MAAM8zC,GAAK,CACTC,YAAa,CAAEC,QAAQ,EAAIhuD,KAAM,EAAGiuD,MAAO,KAC3CC,OAAQ,CAAEF,QAAQ,EAAIhuD,KAAM,IAAKiuD,MAAO,IACxCE,OAAQ,CAAEH,QAAQ,EAAIhuD,KAAM,IAAKiuD,MAAO,IACxCG,KAAM,CAAEJ,QAAQ,EAAIhuD,KAAM,KAAMiuD,MAAO,IACvCI,IAAK,CAAEL,QAAQ,EAAIhuD,KAAM,MAAOiuD,MAAO,IACvCK,KAAM,CAAEN,QAAQ,EAAIhuD,KAAM,OAAQiuD,MAAO,GACzCM,MAAO,CAAEP,QAAQ,EAAIhuD,KAAM,OAAQiuD,MAAO,IAC1CO,QAAS,CAAER,QAAQ,EAAIhuD,KAAM,OAAQiuD,MAAO,GAC5CQ,KAAM,CAAET,QAAQ,EAAIhuD,KAAM,SACzB+L,GAAIvP,OAAOwB,KAAK8vD,IACnB,SAASY,GAAGxyD,EAAGK,GACb,OAAOL,EAAIK,EAEb,SAASoyD,GAAGzyD,EAAGK,GACb,GAAIJ,EAAEI,GACJ,OAAO,KACT,MAAMiB,EAAItB,EAAE0yD,UAAYC,OAAQlxD,EAAGyD,MAAOxD,EAAGkxD,WAAYjxD,GAAM3B,EAAE6yD,WACjE,IAAIjxD,EAAIvB,EACR,MAAmB,mBAALoB,IAAoBG,EAAIH,EAAEG,IAAKhB,EAAEgB,KAAOA,EAAgB,iBAALH,EAAgBH,EAAE4lB,MAAMtlB,EAAGH,GAAKH,EAAE4lB,MAAMtlB,IAAW,OAANA,EAAa,MAAQF,IAAME,EAAU,SAANF,IAAiBgE,EAAG/D,KAAY,IAANA,EAAyCL,EAAEwxD,QAAQlxD,EAAGF,GAA1CJ,EAAEwxD,QAAQlxD,EAAG,UAAWD,KAAwBC,GAErO,SAASmxD,GAAG/yD,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAImO,GAAEhO,OACZ,IAAK,IAAIF,EAAIkO,GAAEvN,QAAQtC,GAAI2B,EAAID,EAAI,IAAKC,EAAG,CACzC,MAAMC,EAAIgwD,GAAG/hD,GAAElO,IAAKe,EAAId,EAAEmwD,MAAQnwD,EAAEmwD,MAAQlxD,OAAO4uD,iBACnD,GAAI7tD,EAAEkwD,QAAU3tD,KAAK0/B,MAAMviC,EAAIjB,IAAMqC,EAAId,EAAEkC,QAAUrC,EACnD,OAAOoO,GAAElO,GAEb,OAAOkO,GAAEnO,EAAI,GAEf,SAASsxD,GAAGhzD,EAAGK,EAAGiB,EAAGG,EAAGC,GACtB,IAAK,IAAIC,EAAIkO,GAAEhO,OAAS,EAAGF,GAAKkO,GAAEvN,QAAQhB,GAAIK,IAAK,CACjD,MAAMC,EAAIiO,GAAElO,GACZ,GAAIiwD,GAAGhwD,GAAGkwD,QAAU9xD,EAAE0yD,SAASO,KAAKvxD,EAAGD,EAAGG,IAAMvB,EAAI,EAClD,OAAOuB,EAEX,OAAOiO,GAAEvO,EAAIuO,GAAEvN,QAAQhB,GAAK,GAE9B,SAAS4xD,GAAGlzD,GACV,IAAK,IAAIK,EAAIwP,GAAEvN,QAAQtC,GAAK,EAAGsB,EAAIuO,GAAEhO,OAAQxB,EAAIiB,IAAKjB,EACpD,GAAIuxD,GAAG/hD,GAAExP,IAAIyxD,OACX,OAAOjiD,GAAExP,GAEf,SAAS8yD,GAAGnzD,EAAGK,EAAGiB,GAChB,GAAKA,GAEA,GAAIA,EAAEO,OAAQ,CACjB,MAAQoF,GAAIxF,EAAGyF,GAAIxF,GAAMsF,GAAG1F,EAAGjB,GAAIsB,EAAIL,EAAEG,IAAMpB,EAAIiB,EAAEG,GAAKH,EAAEI,GAC5D1B,EAAE2B,IAAK,QAHP3B,EAAEK,IAAK,EAMX,SAAS+yD,GAAGpzD,EAAGK,EAAGiB,EAAGG,GACnB,MAAMC,EAAI1B,EAAE0yD,SAAU/wD,GAAKD,EAAEoxD,QAAQzyD,EAAE,GAAGwH,MAAOpG,GAAIG,EAAIvB,EAAEA,EAAEwB,OAAS,GAAGgG,MACzE,IAAInF,EAAGC,EACP,IAAKD,EAAIf,EAAGe,GAAKd,EAAGc,GAAKhB,EAAE0G,IAAI1F,EAAG,EAAGjB,GACnCkB,EAAIrB,EAAEoB,GAAIC,GAAK,IAAMtC,EAAEsC,GAAGygC,OAAQ,GACpC,OAAO/iC,EAET,SAASgzD,GAAGrzD,EAAGK,EAAGiB,GAChB,MAAMG,EAAI,GAAIC,EAAI,GAAIC,EAAItB,EAAEwB,OAC5B,IAAID,EAAGc,EACP,IAAKd,EAAI,EAAGA,EAAID,IAAKC,EACnBc,EAAIrC,EAAEuB,GAAIF,EAAEgB,GAAKd,EAAGH,EAAE8B,KAAK,CACzBsE,MAAOnF,EACP0gC,OAAO,IAEX,OAAa,IAANzhC,GAAYL,EAAQ8xD,GAAGpzD,EAAGyB,EAAGC,EAAGJ,GAAhBG,EAEzB,MAAM6xD,WAAWhtB,GACf,YAAYjmC,GACVm8B,MAAMn8B,GAAI0H,KAAKoyB,OAAS,CACtB/b,KAAM,GACN8hB,OAAQ,GACRlN,IAAK,IACJjrB,KAAKwrD,MAAQ,MAAOxrD,KAAKyrD,gBAAa,EAAQzrD,KAAK0rD,SAAW,GAAI1rD,KAAK2rD,aAAc,EAAI3rD,KAAK8qD,gBAAa,EAEhH,KAAKxyD,EAAGiB,GACN,MAAMG,EAAIpB,EAAEszD,OAAStzD,EAAEszD,KAAO,IAAKjyD,EAAIqG,KAAK2qD,SAAW,IAAI5jB,GAAGC,MAAM1uC,EAAEuzD,SAASC,MAC/EnyD,EAAEi5C,KAAKr5C,GAAIuB,EAAGpB,EAAEqyD,eAAgBpyD,EAAEqyD,WAAYhsD,KAAK8qD,WAAa,CAC9DF,OAAQlxD,EAAEkxD,OACVztD,MAAOzD,EAAEyD,MACT0tD,WAAYnxD,EAAEmxD,YACbp2B,MAAMme,KAAKt6C,GAAI0H,KAAK2rD,YAAcpyD,EAAE0yD,WAEzC,MAAM3zD,EAAGiB,GACP,YAAa,IAANjB,EAAe,KAAOoyD,GAAG1qD,KAAM1H,GAExC,eACEm8B,MAAM2V,eAAgBpqC,KAAKoyB,OAAS,CAClC/b,KAAM,GACN8hB,OAAQ,GACRlN,IAAK,IAGT,sBACE,MAAM3yB,EAAI0H,KAAKylB,QAASlsB,EAAIyG,KAAK2qD,SAAUjxD,EAAIpB,EAAEszD,KAAKM,MAAQ,MAC9D,IAAMluD,IAAKrE,EAAGsE,IAAKrE,EAAG0H,WAAYzH,EAAG2H,WAAY7G,GAAMqF,KAAK0B,gBAC5D,SAAS9G,EAAEC,IACRhB,IAAM+D,MAAM/C,EAAEmD,OAASrE,EAAIyC,KAAK4B,IAAIrE,EAAGkB,EAAEmD,OAAQrD,IAAMiD,MAAM/C,EAAEoD,OAASrE,EAAIwC,KAAK6B,IAAIrE,EAAGiB,EAAEoD,QAE3FpE,IAAMc,KAAOC,EAAEoF,KAAKmsD,oBAAkC,UAAb7zD,EAAEyjC,QAAyC,WAAnBzjC,EAAEo6B,MAAMqO,SAAwBnmC,EAAEoF,KAAK6/B,WAAU,KAAOlmC,EAAId,EAAEc,KAAOiE,MAAMjE,GAAKA,GAAKJ,EAAEwxD,QAAQ1jC,KAAKC,MAAO5tB,GAAIE,EAAIf,EAAEe,KAAOgE,MAAMhE,GAAKA,GAAKL,EAAE6yD,MAAM/kC,KAAKC,MAAO5tB,GAAK,EAAGsG,KAAKhC,IAAM5B,KAAK4B,IAAIrE,EAAGC,EAAI,GAAIoG,KAAK/B,IAAM7B,KAAK6B,IAAItE,EAAI,EAAGC,GAEvS,kBACE,MAAMtB,EAAI0H,KAAKqsD,qBACf,IAAI9yD,EAAIT,OAAO2D,kBAAmB/C,EAAIZ,OAAOozB,kBAC7C,OAAO5zB,EAAEwB,SAAWP,EAAIjB,EAAE,GAAIoB,EAAIpB,EAAEA,EAAEwB,OAAS,IAAK,CAAEkE,IAAKzE,EAAG0E,IAAKvE,GAErE,aACE,MAAMpB,EAAI0H,KAAKylB,QAASlsB,EAAIjB,EAAEszD,KAAMlyD,EAAIpB,EAAEo6B,MAAO/4B,EAAiB,WAAbD,EAAEqnC,OAAsB/gC,KAAKqsD,qBAAuBrsD,KAAKssD,YACjG,UAAbh0D,EAAEyjC,QAAsBpiC,EAAEG,SAAWkG,KAAKhC,IAAMgC,KAAKq/B,UAAY1lC,EAAE,GAAIqG,KAAK/B,IAAM+B,KAAKo/B,UAAYzlC,EAAEA,EAAEG,OAAS,IAChH,MAAMF,EAAIoG,KAAKhC,IAAKnE,EAAImG,KAAK/B,IAAKtD,EAAI2E,GAAG3F,EAAGC,EAAGC,GAC/C,OAAOmG,KAAKwrD,MAAQjyD,EAAE2yD,OAASxyD,EAAEojC,SAAWkuB,GAAGzxD,EAAEgzD,QAASvsD,KAAKhC,IAAKgC,KAAK/B,IAAK+B,KAAKwsD,kBAAkB5yD,IAAMqxD,GAAGjrD,KAAMrF,EAAEb,OAAQP,EAAEgzD,QAASvsD,KAAKhC,IAAKgC,KAAK/B,MAAO+B,KAAKyrD,WAAc/xD,EAAE2hC,MAAMC,SAA0B,SAAft7B,KAAKwrD,MAA4BL,GAAGnrD,KAAKwrD,YAAjB,EAAyBxrD,KAAKysD,YAAY9yD,GAAIrB,EAAE6yB,SAAWxwB,EAAEwwB,UAAWmgC,GAAGtrD,KAAMrF,EAAGqF,KAAKyrD,YAExT,gBACEzrD,KAAKylB,QAAQinC,qBAAuB1sD,KAAKysD,YAAYzsD,KAAK0yB,MAAMt4B,IAAK9B,IAAOA,EAAEwH,QAEhF,YAAYxH,GACV,IAAkBqB,EAAGC,EAAjBL,EAAI,EAAGG,EAAI,EACfsG,KAAKylB,QAAQyQ,QAAU59B,EAAEwB,SAAWH,EAAIqG,KAAK2sD,mBAAmBr0D,EAAE,IAAsBiB,EAAJ,IAAbjB,EAAEwB,OAAmB,EAAIH,GAASqG,KAAK2sD,mBAAmBr0D,EAAE,IAAMqB,GAAK,EAAGC,EAAIoG,KAAK2sD,mBAAmBr0D,EAAEA,EAAEwB,OAAS,IAAsBJ,EAAJ,IAAbpB,EAAEwB,OAAmBF,GAASA,EAAIoG,KAAK2sD,mBAAmBr0D,EAAEA,EAAEwB,OAAS,KAAO,GAC7Q,MAAMD,EAAIvB,EAAEwB,OAAS,EAAI,GAAM,IAC/BP,EAAIuF,GAAEvF,EAAG,EAAGM,GAAIH,EAAIoF,GAAEpF,EAAG,EAAGG,GAAImG,KAAK0rD,SAAW,CAAE9pD,MAAOrI,EAAGirB,IAAK9qB,EAAGkzD,OAAQ,GAAKrzD,EAAI,EAAIG,IAE3F,YACE,MAAMpB,EAAI0H,KAAK2qD,SAAUpxD,EAAIyG,KAAKhC,IAAKtE,EAAIsG,KAAK/B,IAAKtE,EAAIqG,KAAKylB,QAAS7rB,EAAID,EAAEiyD,KAAM/xD,EAAID,EAAEsyD,MAAQlB,GAAGpxD,EAAE2yD,QAAShzD,EAAGG,EAAGsG,KAAKwsD,kBAAkBjzD,IAAKoB,EAAI1B,EAAEW,EAAEguD,SAAU,GAAIhtD,EAAU,SAANf,GAAeD,EAAEixD,WAAiBhwD,EAAI8C,EAAG/C,KAAY,IAANA,EAAUiE,EAAI,GACxO,IAAW4C,EAAGkE,EAAVpE,EAAIhI,EACR,GAAIsB,IAAM0G,GAAKjJ,EAAEyyD,QAAQxpD,EAAG,UAAW3G,IAAK2G,GAAKjJ,EAAEyyD,QAAQxpD,EAAG1G,EAAI,MAAQhB,GAAIvB,EAAE4yD,KAAKxxD,EAAGH,EAAGM,GAAK,IAAMc,EACpG,MAAM,IAAI0jB,MAAM9kB,EAAI,QAAUG,EAAI,uCAAyCiB,EAAI,IAAMd,GACvF,MAAMoM,EAAuB,SAAnBtM,EAAE+4B,MAAMqO,QAAqB/gC,KAAK6sD,oBAC5C,IAAKprD,EAAIF,EAAGoE,EAAI,EAAGlE,EAAI/H,EAAG+H,GAAKnJ,EAAE+H,IAAIoB,EAAG9G,EAAGd,GAAI8L,IAC7CylD,GAAGvsD,EAAG4C,EAAGwE,GACX,OAAQxE,IAAM/H,GAAkB,UAAbC,EAAEoiC,QAA4B,IAANp2B,IAAYylD,GAAGvsD,EAAG4C,EAAGwE,GAAI1N,OAAOwB,KAAK8E,GAAGpB,KAAK,CAACqnB,EAAGC,IAAMD,EAAIC,GAAG3qB,IAAK0qB,IAAOA,GAEvH,iBAAiBxsB,GACf,MAAMiB,EAAIyG,KAAK2qD,SAAUjxD,EAAIsG,KAAKylB,QAAQmmC,KAC1C,OAAOlyD,EAAEozD,cAAgBvzD,EAAEmqB,OAAOprB,EAAGoB,EAAEozD,eAAiBvzD,EAAEmqB,OAAOprB,EAAGoB,EAAEqyD,eAAegB,UAEvF,oBAAoBz0D,EAAGiB,EAAGG,EAAGC,GAC3B,MAAMC,EAAIoG,KAAKylB,QAAS5rB,EAAID,EAAEgyD,KAAKG,eAAgBpxD,EAAIqF,KAAKwrD,MAAO5wD,EAAIoF,KAAKyrD,WAAY5wD,EAAIF,GAAKd,EAAEc,GAAIkE,EAAIjE,GAAKf,EAAEe,GAAI2G,EAAI7H,EAAEH,GAAIkI,EAAI7G,GAAKiE,GAAK0C,GAAKA,EAAE85B,MAAO11B,EAAI3F,KAAK2qD,SAASjnC,OAAOprB,EAAGqB,IAAM8H,EAAI5C,EAAIhE,IAAKoL,EAAIrM,EAAE84B,MAAMuK,SACvN,OAAOh3B,EAAI3M,EAAE2M,EAAG,CAACN,EAAGpM,EAAGG,GAAIsG,MAAQ2F,EAErC,mBAAmBrN,GACjB,IAAIiB,EAAGG,EAAGC,EACV,IAAKJ,EAAI,EAAGG,EAAIpB,EAAEwB,OAAQP,EAAIG,IAAKH,EACjCI,EAAIrB,EAAEiB,GAAII,EAAE62B,MAAQxwB,KAAKgtD,oBAAoBrzD,EAAEmG,MAAOvG,EAAGjB,GAE7D,mBAAmBA,GACjB,OAAa,OAANA,EAAa83B,KAAO93B,EAAI0H,KAAKhC,MAAQgC,KAAK/B,IAAM+B,KAAKhC,KAE9D,iBAAiB1F,GACf,MAAMiB,EAAIyG,KAAK0rD,SAAUhyD,EAAIsG,KAAK2sD,mBAAmBr0D,GACrD,OAAO0H,KAAK21B,oBAAoBp8B,EAAEqI,MAAQlI,GAAKH,EAAEqzD,QAEnD,iBAAiBt0D,GACf,MAAMiB,EAAIyG,KAAK0rD,SAAUhyD,EAAIsG,KAAKgnD,mBAAmB1uD,GAAKiB,EAAEqzD,OAASrzD,EAAEirB,IACvE,OAAOxkB,KAAKhC,IAAMtE,GAAKsG,KAAK/B,IAAM+B,KAAKhC,KAEzC,cAAc1F,GACZ,MAAMiB,EAAIyG,KAAKylB,QAAQiN,MAAOh5B,EAAIsG,KAAKuiB,IAAIrM,YAAY5d,GAAG6d,MAAOxc,EAAIuE,EAAG8B,KAAK2zB,eAAiBp6B,EAAEmjC,YAAcnjC,EAAEkjC,aAAc7iC,EAAIwC,KAAKsH,IAAI/J,GAAIE,EAAIuC,KAAKqG,IAAI9I,GAAIgB,EAAIqF,KAAKwiC,wBAAwB,GAAGzmC,KACpM,MAAO,CACLye,EAAG9gB,EAAIE,EAAIe,EAAId,EACfgF,EAAGnF,EAAIG,EAAIc,EAAIf,GAGnB,kBAAkBtB,GAChB,MAAMiB,EAAIyG,KAAKylB,QAAQmmC,KAAMlyD,EAAIH,EAAEwyD,eAAgBpyD,EAAID,EAAEH,EAAE2yD,OAASxyD,EAAEowD,YAAalwD,EAAIoG,KAAKgtD,oBAAoB10D,EAAG,EAAGgzD,GAAGtrD,KAAM,CAAC1H,GAAI0H,KAAKyrD,YAAa9xD,GAAIE,EAAImG,KAAKitD,cAAcrzD,GAAIe,EAAIyB,KAAKkB,MAAM0C,KAAK2zB,eAAiB3zB,KAAKmW,MAAQtc,EAAE2gB,EAAIxa,KAAK+W,OAASld,EAAEgF,GAAK,EAClQ,OAAOlE,EAAI,EAAIA,EAAI,EAErB,oBACE,IAAgCpB,EAAGG,EAA/BpB,EAAI0H,KAAKoyB,OAAO/b,MAAQ,GAC5B,GAAI/d,EAAEwB,OACJ,OAAOxB,EACT,MAAMqB,EAAIqG,KAAKqsB,0BACf,GAAIrsB,KAAK2rD,aAAehyD,EAAEG,OACxB,OAAOkG,KAAKoyB,OAAO/b,KAAO1c,EAAE,GAAG2zB,WAAWiF,mBAAmBvyB,MAC/D,IAAKzG,EAAI,EAAGG,EAAIC,EAAEG,OAAQP,EAAIG,IAAKH,EACjCjB,EAAIA,EAAEg6B,OAAO34B,EAAEJ,GAAG+zB,WAAWiF,mBAAmBvyB,OAClD,OAAOA,KAAKoyB,OAAO/b,KAAOrW,KAAKskB,UAAUhsB,GAE3C,qBACE,MAAMA,EAAI0H,KAAKoyB,OAAO+F,QAAU,GAChC,IAAI5+B,EAAGG,EACP,GAAIpB,EAAEwB,OACJ,OAAOxB,EACT,MAAMqB,EAAIqG,KAAKiwB,YACf,IAAK12B,EAAI,EAAGG,EAAIC,EAAEG,OAAQP,EAAIG,IAAKH,EACjCjB,EAAEkD,KAAKkvD,GAAG1qD,KAAMrG,EAAEJ,KACpB,OAAOyG,KAAKoyB,OAAO+F,OAASn4B,KAAK2rD,YAAcrzD,EAAI0H,KAAKskB,UAAUhsB,GAEpE,UAAUA,GACR,OAAO6H,GAAG7H,EAAEmF,KAAKgtD,MAsBrB,SAASyC,GAAGj1D,EAAGK,EAAGiB,GAChB,IAA6BK,EAAGC,EAAGc,EAAGC,EAAlClB,EAAI,EAAGC,EAAI1B,EAAE6B,OAAS,EAC1BP,GAAKjB,GAAKL,EAAEyB,GAAGwuC,KAAO5vC,GAAKL,EAAE0B,GAAGuuC,OAAUhpC,GAAIxF,EAAGyF,GAAIxF,GAAMyF,GAAGnH,EAAG,MAAOK,MAAO4vC,IAAKtuC,EAAGgyD,KAAMjxD,GAAM1C,EAAEyB,MAAMwuC,IAAKruC,EAAG+xD,KAAMhxD,GAAM3C,EAAE0B,MAAOrB,GAAKL,EAAEyB,GAAGkyD,MAAQtzD,GAAKL,EAAE0B,GAAGiyD,QAAW1sD,GAAIxF,EAAGyF,GAAIxF,GAAMyF,GAAGnH,EAAG,OAAQK,MAAOszD,KAAMhyD,EAAGsuC,IAAKvtC,GAAM1C,EAAEyB,MAAMkyD,KAAM/xD,EAAGquC,IAAKttC,GAAM3C,EAAE0B,KACvQ,MAAMkB,EAAIhB,EAAID,EACd,OAAOiB,EAAIF,GAAKC,EAAID,IAAMrC,EAAIsB,GAAKiB,EAAIF,EAvBzC4wD,GAAGv/B,GAAK,OACRu/B,GAAGh3B,SAAW,CACZwH,OAAQ,OACR8vB,SAAU,GACVD,KAAM,CACJhB,QAAQ,EACRsB,MAAM,EACN/uD,OAAO,EACP0tD,YAAY,EACZ0B,QAAS,cACTR,eAAgB,IAElBr5B,MAAO,CACLqO,OAAQ,OACR1F,MAAO,CACLC,SAAS,KAUf,MAAMxqB,WAAWy6C,GACf,YAAYjzD,GACVm8B,MAAMn8B,GAAI0H,KAAKmtD,OAAS,GAAIntD,KAAKotD,aAAU,EAAQptD,KAAKqtD,iBAAc,EAExE,cACE,MAAM/0D,EAAI0H,KAAKstD,yBAA0B/zD,EAAIyG,KAAKmtD,OAASntD,KAAKutD,iBAAiBj1D,GACjF0H,KAAKotD,QAAUF,GAAG3zD,EAAGyG,KAAKhC,KAAMgC,KAAKqtD,YAAcH,GAAG3zD,EAAGyG,KAAK/B,KAAO+B,KAAKotD,QAAS34B,MAAMg4B,YAAYn0D,GAEvG,iBAAiBA,GACf,MAAQ0F,IAAKzE,EAAG0E,IAAKvE,GAAMsG,KAAMrG,EAAI,GAAIC,EAAI,GAC7C,IAAIC,EAAGc,EAAGC,EAAGC,EAAGgE,EAChB,IAAKhF,EAAI,EAAGc,EAAIrC,EAAEwB,OAAQD,EAAIc,IAAKd,EACjCgB,EAAIvC,EAAEuB,GAAIgB,GAAKtB,GAAKsB,GAAKnB,GAAKC,EAAE6B,KAAKX,GACvC,GAAIlB,EAAEG,OAAS,EACb,MAAO,CACL,CAAE8xD,KAAMryD,EAAG2uC,IAAK,GAChB,CAAE0jB,KAAMlyD,EAAGwuC,IAAK,IAEpB,IAAKruC,EAAI,EAAGc,EAAIhB,EAAEG,OAAQD,EAAIc,IAAKd,EACjCgF,EAAIlF,EAAEE,EAAI,GAAIe,EAAIjB,EAAEE,EAAI,GAAIgB,EAAIlB,EAAEE,GAAIuC,KAAKe,OAAO0B,EAAIjE,GAAK,KAAOC,GAAKjB,EAAE4B,KAAK,CAAEowD,KAAM/wD,EAAGqtC,IAAKruC,GAAKc,EAAI,KACzG,OAAOf,EAET,yBACE,IAAItB,EAAI0H,KAAKoyB,OAAOnH,KAAO,GAC3B,GAAI3yB,EAAEwB,OACJ,OAAOxB,EACT,MAAMiB,EAAIyG,KAAK6sD,oBAAqBnzD,EAAIsG,KAAKqsD,qBAC7C,OAA8B/zD,EAAvBiB,EAAEO,QAAUJ,EAAEI,OAAakG,KAAKskB,UAAU/qB,EAAE+4B,OAAO54B,IAAUH,EAAEO,OAASP,EAAIG,EAAGpB,EAAI0H,KAAKoyB,OAAOnH,IAAM3yB,EAAGA,EAEjH,mBAAmBA,GACjB,OAAQ40D,GAAGltD,KAAKmtD,OAAQ70D,GAAK0H,KAAKotD,SAAWptD,KAAKqtD,YAEpD,iBAAiB/0D,GACf,MAAMiB,EAAIyG,KAAK0rD,SAAUhyD,EAAIsG,KAAKgnD,mBAAmB1uD,GAAKiB,EAAEqzD,OAASrzD,EAAEirB,IACvE,OAAO0oC,GAAGltD,KAAKmtD,OAAQzzD,EAAIsG,KAAKqtD,YAAcrtD,KAAKotD,SAAS,IAGhEt8C,GAAGkb,GAAK,aACRlb,GAAGyjB,SAAWg3B,GAAGh3B,SACjB,IAAIi5B,GAAqBj1D,OAAO44B,OAAO,CACrCiV,UAAW,KACXqnB,cAAe7G,GACf8G,YAAa1F,GACb2F,iBAAkBvF,GAClBwF,kBAAmBjE,GACnBkE,UAAWtC,GACXuC,gBAAiBh9C,KAEnB,MAAMi9C,GAAK,CACT5nB,GACA2T,GACAmM,GACAuH,IACCQ,GAAqBz1D,OAAO44B,OAAuB54B,OAAOoH,eAAe,CAC1EymC,UAAW,KACX6nB,UAAWxlC,GACXylC,WAAY9jC,GACZ2vB,WAAYzC,GACZjR,cAAe7R,GACf0lB,WAAYL,GACZsU,aAAc9jB,GACd+jB,cAAe9jB,GACfhE,iBAAkBhQ,GAClBm3B,cAAe7G,GACfyH,MAAOpd,GACPqd,kBAAmB1gC,GACnBs4B,WAAYzL,GACZ8T,YAAavhB,GACbzG,mBAAoB3P,GACpB43B,QAASj0B,GACT4rB,OAAQpJ,GACR0R,YAAa5mB,GACbue,OAAQ/G,GACR7Y,eAAgB1N,GAChBkhB,YAAatB,GACbgV,YAAa1F,GACb2F,iBAAkBvF,GAClB1hB,cAAevM,GACf8f,aAAcjB,GACdvS,oBAAqBrN,GACrBuN,gBAAiBvM,GACjBwzB,kBAAmBjE,GACnB+E,MAAOnwB,GACPqI,kBAAmBX,GACnBogB,SAAUpG,GACV0O,MAAO3zB,GACP6yB,UAAWtC,GACXuC,gBAAiBh9C,GACjBw1C,MAAOxG,GACPyG,QAASR,GACT6I,UAAW7nB,GACX8nB,gBAAiBthB,GACjBuhB,SAAU1mC,GACVqd,YAAaU,GACb5R,SAAU7sB,GACVqM,SAAU+lC,GACViV,QAAS1nD,GACT8N,QAAS8wC,GACT+I,cAAejB,GACf7W,SAAUlR,GACV1wB,OAAQk4C,IACPzxC,OAAOC,YAAa,CAAElc,MAAO","file":"js/chunk-2d0c915c.1bf7d19d.js","sourcesContent":["/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nfunction ct() {\n}\nconst _o = function() {\n let i = 0;\n return function() {\n return i++;\n };\n}();\nfunction T(i) {\n return i === null || typeof i > \"u\";\n}\nfunction z(i) {\n if (Array.isArray && Array.isArray(i))\n return !0;\n const t = Object.prototype.toString.call(i);\n return t.slice(0, 7) === \"[object\" && t.slice(-6) === \"Array]\";\n}\nfunction D(i) {\n return i !== null && Object.prototype.toString.call(i) === \"[object Object]\";\n}\nconst N = (i) => (typeof i == \"number\" || i instanceof Number) && isFinite(+i);\nfunction Q(i, t) {\n return N(i) ? i : t;\n}\nfunction C(i, t) {\n return typeof i > \"u\" ? t : i;\n}\nconst yo = (i, t) => typeof i == \"string\" && i.endsWith(\"%\") ? parseFloat(i) / 100 : i / t, an = (i, t) => typeof i == \"string\" && i.endsWith(\"%\") ? parseFloat(i) / 100 * t : +i;\nfunction I(i, t, e) {\n if (i && typeof i.call == \"function\")\n return i.apply(e, t);\n}\nfunction E(i, t, e, s) {\n let n, o, r;\n if (z(i))\n if (o = i.length, s)\n for (n = o - 1; n >= 0; n--)\n t.call(e, i[n], n);\n else\n for (n = 0; n < o; n++)\n t.call(e, i[n], n);\n else if (D(i))\n for (r = Object.keys(i), o = r.length, n = 0; n < o; n++)\n t.call(e, i[r[n]], r[n]);\n}\nfunction ze(i, t) {\n let e, s, n, o;\n if (!i || !t || i.length !== t.length)\n return !1;\n for (e = 0, s = i.length; e < s; ++e)\n if (n = i[e], o = t[e], n.datasetIndex !== o.datasetIndex || n.index !== o.index)\n return !1;\n return !0;\n}\nfunction Be(i) {\n if (z(i))\n return i.map(Be);\n if (D(i)) {\n const t = /* @__PURE__ */ Object.create(null), e = Object.keys(i), s = e.length;\n let n = 0;\n for (; n < s; ++n)\n t[e[n]] = Be(i[e[n]]);\n return t;\n }\n return i;\n}\nfunction ln(i) {\n return [\"__proto__\", \"prototype\", \"constructor\"].indexOf(i) === -1;\n}\nfunction vo(i, t, e, s) {\n if (!ln(i))\n return;\n const n = t[i], o = e[i];\n D(n) && D(o) ? ne(n, o, s) : t[i] = Be(o);\n}\nfunction ne(i, t, e) {\n const s = z(t) ? t : [t], n = s.length;\n if (!D(i))\n return i;\n e = e || {};\n const o = e.merger || vo;\n for (let r = 0; r < n; ++r) {\n if (t = s[r], !D(t))\n continue;\n const a = Object.keys(t);\n for (let l = 0, c = a.length; l < c; ++l)\n o(a[l], i, t, e);\n }\n return i;\n}\nfunction Qt(i, t) {\n return ne(i, t, { merger: Mo });\n}\nfunction Mo(i, t, e) {\n if (!ln(i))\n return;\n const s = t[i], n = e[i];\n D(s) && D(n) ? Qt(s, n) : Object.prototype.hasOwnProperty.call(t, i) || (t[i] = Be(n));\n}\nconst Xi = {\n \"\": (i) => i,\n x: (i) => i.x,\n y: (i) => i.y\n};\nfunction _t(i, t) {\n return (Xi[t] || (Xi[t] = ko(t)))(i);\n}\nfunction ko(i) {\n const t = wo(i);\n return (e) => {\n for (const s of t) {\n if (s === \"\")\n break;\n e = e && e[s];\n }\n return e;\n };\n}\nfunction wo(i) {\n const t = i.split(\".\"), e = [];\n let s = \"\";\n for (const n of t)\n s += n, s.endsWith(\"\\\\\") ? s = s.slice(0, -1) + \".\" : (e.push(s), s = \"\");\n return e;\n}\nfunction Oi(i) {\n return i.charAt(0).toUpperCase() + i.slice(1);\n}\nconst et = (i) => typeof i < \"u\", yt = (i) => typeof i == \"function\", Ui = (i, t) => {\n if (i.size !== t.size)\n return !1;\n for (const e of i)\n if (!t.has(e))\n return !1;\n return !0;\n};\nfunction So(i) {\n return i.type === \"mouseup\" || i.type === \"click\" || i.type === \"contextmenu\";\n}\nconst B = Math.PI, F = 2 * B, Po = F + B, Ve = Number.POSITIVE_INFINITY, Co = B / 180, V = B / 2, $t = B / 4, Ki = B * 2 / 3, tt = Math.log10, lt = Math.sign;\nfunction qi(i) {\n const t = Math.round(i);\n i = te(i, t, i / 1e3) ? t : i;\n const e = Math.pow(10, Math.floor(tt(i))), s = i / e;\n return (s <= 1 ? 1 : s <= 2 ? 2 : s <= 5 ? 5 : 10) * e;\n}\nfunction Do(i) {\n const t = [], e = Math.sqrt(i);\n let s;\n for (s = 1; s < e; s++)\n i % s === 0 && (t.push(s), t.push(i / s));\n return e === (e | 0) && t.push(e), t.sort((n, o) => n - o).pop(), t;\n}\nfunction Bt(i) {\n return !isNaN(parseFloat(i)) && isFinite(i);\n}\nfunction te(i, t, e) {\n return Math.abs(i - t) < e;\n}\nfunction Oo(i, t) {\n const e = Math.round(i);\n return e - t <= i && e + t >= i;\n}\nfunction cn(i, t, e) {\n let s, n, o;\n for (s = 0, n = i.length; s < n; s++)\n o = i[s][e], isNaN(o) || (t.min = Math.min(t.min, o), t.max = Math.max(t.max, o));\n}\nfunction nt(i) {\n return i * (B / 180);\n}\nfunction Ai(i) {\n return i * (180 / B);\n}\nfunction Gi(i) {\n if (!N(i))\n return;\n let t = 1, e = 0;\n for (; Math.round(i * t) / t !== i; )\n t *= 10, e++;\n return e;\n}\nfunction hn(i, t) {\n const e = t.x - i.x, s = t.y - i.y, n = Math.sqrt(e * e + s * s);\n let o = Math.atan2(s, e);\n return o < -0.5 * B && (o += F), {\n angle: o,\n distance: n\n };\n}\nfunction bi(i, t) {\n return Math.sqrt(Math.pow(t.x - i.x, 2) + Math.pow(t.y - i.y, 2));\n}\nfunction Ao(i, t) {\n return (i - t + Po) % F - B;\n}\nfunction Z(i) {\n return (i % F + F) % F;\n}\nfunction oe(i, t, e, s) {\n const n = Z(i), o = Z(t), r = Z(e), a = Z(o - n), l = Z(r - n), c = Z(n - o), h = Z(n - r);\n return n === o || n === r || s && o === r || a > l && c < h;\n}\nfunction Y(i, t, e) {\n return Math.max(t, Math.min(e, i));\n}\nfunction To(i) {\n return Y(i, -32768, 32767);\n}\nfunction ut(i, t, e, s = 1e-6) {\n return i >= Math.min(t, e) - s && i <= Math.max(t, e) + s;\n}\nfunction Ti(i, t, e) {\n e = e || ((r) => i[r] < t);\n let s = i.length - 1, n = 0, o;\n for (; s - n > 1; )\n o = n + s >> 1, e(o) ? n = o : s = o;\n return { lo: n, hi: s };\n}\nconst ft = (i, t, e, s) => Ti(i, e, s ? (n) => i[n][t] <= e : (n) => i[n][t] < e), Lo = (i, t, e) => Ti(i, e, (s) => i[s][t] >= e);\nfunction Ro(i, t, e) {\n let s = 0, n = i.length;\n for (; s < n && i[s] < t; )\n s++;\n for (; n > s && i[n - 1] > e; )\n n--;\n return s > 0 || n < i.length ? i.slice(s, n) : i;\n}\nconst dn = [\"push\", \"pop\", \"shift\", \"splice\", \"unshift\"];\nfunction Eo(i, t) {\n if (i._chartjs) {\n i._chartjs.listeners.push(t);\n return;\n }\n Object.defineProperty(i, \"_chartjs\", {\n configurable: !0,\n enumerable: !1,\n value: {\n listeners: [t]\n }\n }), dn.forEach((e) => {\n const s = \"_onData\" + Oi(e), n = i[e];\n Object.defineProperty(i, e, {\n configurable: !0,\n enumerable: !1,\n value(...o) {\n const r = n.apply(this, o);\n return i._chartjs.listeners.forEach((a) => {\n typeof a[s] == \"function\" && a[s](...o);\n }), r;\n }\n });\n });\n}\nfunction Zi(i, t) {\n const e = i._chartjs;\n if (!e)\n return;\n const s = e.listeners, n = s.indexOf(t);\n n !== -1 && s.splice(n, 1), !(s.length > 0) && (dn.forEach((o) => {\n delete i[o];\n }), delete i._chartjs);\n}\nfunction un(i) {\n const t = /* @__PURE__ */ new Set();\n let e, s;\n for (e = 0, s = i.length; e < s; ++e)\n t.add(i[e]);\n return t.size === s ? i : Array.from(t);\n}\nconst fn = function() {\n return typeof window > \"u\" ? function(i) {\n return i();\n } : window.requestAnimationFrame;\n}();\nfunction gn(i, t, e) {\n const s = e || ((r) => Array.prototype.slice.call(r));\n let n = !1, o = [];\n return function(...r) {\n o = s(r), n || (n = !0, fn.call(window, () => {\n n = !1, i.apply(t, o);\n }));\n };\n}\nfunction Fo(i, t) {\n let e;\n return function(...s) {\n return t ? (clearTimeout(e), e = setTimeout(i, t, s)) : i.apply(this, s), t;\n };\n}\nconst Li = (i) => i === \"start\" ? \"left\" : i === \"end\" ? \"right\" : \"center\", U = (i, t, e) => i === \"start\" ? t : i === \"end\" ? e : (t + e) / 2, Io = (i, t, e, s) => i === (s ? \"left\" : \"right\") ? e : i === \"center\" ? (t + e) / 2 : t;\nfunction pn(i, t, e) {\n const s = t.length;\n let n = 0, o = s;\n if (i._sorted) {\n const { iScale: r, _parsed: a } = i, l = r.axis, { min: c, max: h, minDefined: d, maxDefined: u } = r.getUserBounds();\n d && (n = Y(\n Math.min(\n ft(a, r.axis, c).lo,\n e ? s : ft(t, l, r.getPixelForValue(c)).lo\n ),\n 0,\n s - 1\n )), u ? o = Y(\n Math.max(\n ft(a, r.axis, h, !0).hi + 1,\n e ? 0 : ft(t, l, r.getPixelForValue(h), !0).hi + 1\n ),\n n,\n s\n ) - n : o = s - n;\n }\n return { start: n, count: o };\n}\nfunction mn(i) {\n const { xScale: t, yScale: e, _scaleRanges: s } = i, n = {\n xmin: t.min,\n xmax: t.max,\n ymin: e.min,\n ymax: e.max\n };\n if (!s)\n return i._scaleRanges = n, !0;\n const o = s.xmin !== t.min || s.xmax !== t.max || s.ymin !== e.min || s.ymax !== e.max;\n return Object.assign(s, n), o;\n}\nconst we = (i) => i === 0 || i === 1, Ji = (i, t, e) => -(Math.pow(2, 10 * (i -= 1)) * Math.sin((i - t) * F / e)), Qi = (i, t, e) => Math.pow(2, -10 * i) * Math.sin((i - t) * F / e) + 1, ee = {\n linear: (i) => i,\n easeInQuad: (i) => i * i,\n easeOutQuad: (i) => -i * (i - 2),\n easeInOutQuad: (i) => (i /= 0.5) < 1 ? 0.5 * i * i : -0.5 * (--i * (i - 2) - 1),\n easeInCubic: (i) => i * i * i,\n easeOutCubic: (i) => (i -= 1) * i * i + 1,\n easeInOutCubic: (i) => (i /= 0.5) < 1 ? 0.5 * i * i * i : 0.5 * ((i -= 2) * i * i + 2),\n easeInQuart: (i) => i * i * i * i,\n easeOutQuart: (i) => -((i -= 1) * i * i * i - 1),\n easeInOutQuart: (i) => (i /= 0.5) < 1 ? 0.5 * i * i * i * i : -0.5 * ((i -= 2) * i * i * i - 2),\n easeInQuint: (i) => i * i * i * i * i,\n easeOutQuint: (i) => (i -= 1) * i * i * i * i + 1,\n easeInOutQuint: (i) => (i /= 0.5) < 1 ? 0.5 * i * i * i * i * i : 0.5 * ((i -= 2) * i * i * i * i + 2),\n easeInSine: (i) => -Math.cos(i * V) + 1,\n easeOutSine: (i) => Math.sin(i * V),\n easeInOutSine: (i) => -0.5 * (Math.cos(B * i) - 1),\n easeInExpo: (i) => i === 0 ? 0 : Math.pow(2, 10 * (i - 1)),\n easeOutExpo: (i) => i === 1 ? 1 : -Math.pow(2, -10 * i) + 1,\n easeInOutExpo: (i) => we(i) ? i : i < 0.5 ? 0.5 * Math.pow(2, 10 * (i * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (i * 2 - 1)) + 2),\n easeInCirc: (i) => i >= 1 ? i : -(Math.sqrt(1 - i * i) - 1),\n easeOutCirc: (i) => Math.sqrt(1 - (i -= 1) * i),\n easeInOutCirc: (i) => (i /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - i * i) - 1) : 0.5 * (Math.sqrt(1 - (i -= 2) * i) + 1),\n easeInElastic: (i) => we(i) ? i : Ji(i, 0.075, 0.3),\n easeOutElastic: (i) => we(i) ? i : Qi(i, 0.075, 0.3),\n easeInOutElastic(i) {\n return we(i) ? i : i < 0.5 ? 0.5 * Ji(i * 2, 0.1125, 0.45) : 0.5 + 0.5 * Qi(i * 2 - 1, 0.1125, 0.45);\n },\n easeInBack(i) {\n return i * i * ((1.70158 + 1) * i - 1.70158);\n },\n easeOutBack(i) {\n return (i -= 1) * i * ((1.70158 + 1) * i + 1.70158) + 1;\n },\n easeInOutBack(i) {\n let t = 1.70158;\n return (i /= 0.5) < 1 ? 0.5 * (i * i * (((t *= 1.525) + 1) * i - t)) : 0.5 * ((i -= 2) * i * (((t *= 1.525) + 1) * i + t) + 2);\n },\n easeInBounce: (i) => 1 - ee.easeOutBounce(1 - i),\n easeOutBounce(i) {\n return i < 1 / 2.75 ? 7.5625 * i * i : i < 2 / 2.75 ? 7.5625 * (i -= 1.5 / 2.75) * i + 0.75 : i < 2.5 / 2.75 ? 7.5625 * (i -= 2.25 / 2.75) * i + 0.9375 : 7.5625 * (i -= 2.625 / 2.75) * i + 0.984375;\n },\n easeInOutBounce: (i) => i < 0.5 ? ee.easeInBounce(i * 2) * 0.5 : ee.easeOutBounce(i * 2 - 1) * 0.5 + 0.5\n};\n/*!\n * @kurkle/color v0.2.1\n * https://github.com/kurkle/color#readme\n * (c) 2022 Jukka Kurkela\n * Released under the MIT License\n */\nfunction he(i) {\n return i + 0.5 | 0;\n}\nconst mt = (i, t, e) => Math.max(Math.min(i, e), t);\nfunction Gt(i) {\n return mt(he(i * 2.55), 0, 255);\n}\nfunction xt(i) {\n return mt(he(i * 255), 0, 255);\n}\nfunction dt(i) {\n return mt(he(i / 2.55) / 100, 0, 1);\n}\nfunction ts(i) {\n return mt(he(i * 100), 0, 100);\n}\nconst J = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15 }, xi = [...\"0123456789ABCDEF\"], zo = (i) => xi[i & 15], Bo = (i) => xi[(i & 240) >> 4] + xi[i & 15], Se = (i) => (i & 240) >> 4 === (i & 15), Vo = (i) => Se(i.r) && Se(i.g) && Se(i.b) && Se(i.a);\nfunction Wo(i) {\n var t = i.length, e;\n return i[0] === \"#\" && (t === 4 || t === 5 ? e = {\n r: 255 & J[i[1]] * 17,\n g: 255 & J[i[2]] * 17,\n b: 255 & J[i[3]] * 17,\n a: t === 5 ? J[i[4]] * 17 : 255\n } : (t === 7 || t === 9) && (e = {\n r: J[i[1]] << 4 | J[i[2]],\n g: J[i[3]] << 4 | J[i[4]],\n b: J[i[5]] << 4 | J[i[6]],\n a: t === 9 ? J[i[7]] << 4 | J[i[8]] : 255\n })), e;\n}\nconst No = (i, t) => i < 255 ? t(i) : \"\";\nfunction Ho(i) {\n var t = Vo(i) ? zo : Bo;\n return i ? \"#\" + t(i.r) + t(i.g) + t(i.b) + No(i.a, t) : void 0;\n}\nconst jo = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction bn(i, t, e) {\n const s = t * Math.min(e, 1 - e), n = (o, r = (o + i / 30) % 12) => e - s * Math.max(Math.min(r - 3, 9 - r, 1), -1);\n return [n(0), n(8), n(4)];\n}\nfunction $o(i, t, e) {\n const s = (n, o = (n + i / 60) % 6) => e - e * t * Math.max(Math.min(o, 4 - o, 1), 0);\n return [s(5), s(3), s(1)];\n}\nfunction Yo(i, t, e) {\n const s = bn(i, 1, 0.5);\n let n;\n for (t + e > 1 && (n = 1 / (t + e), t *= n, e *= n), n = 0; n < 3; n++)\n s[n] *= 1 - t - e, s[n] += t;\n return s;\n}\nfunction Xo(i, t, e, s, n) {\n return i === n ? (t - e) / s + (t < e ? 6 : 0) : t === n ? (e - i) / s + 2 : (i - t) / s + 4;\n}\nfunction Ri(i) {\n const e = i.r / 255, s = i.g / 255, n = i.b / 255, o = Math.max(e, s, n), r = Math.min(e, s, n), a = (o + r) / 2;\n let l, c, h;\n return o !== r && (h = o - r, c = a > 0.5 ? h / (2 - o - r) : h / (o + r), l = Xo(e, s, n, h, o), l = l * 60 + 0.5), [l | 0, c || 0, a];\n}\nfunction Ei(i, t, e, s) {\n return (Array.isArray(t) ? i(t[0], t[1], t[2]) : i(t, e, s)).map(xt);\n}\nfunction Fi(i, t, e) {\n return Ei(bn, i, t, e);\n}\nfunction Uo(i, t, e) {\n return Ei(Yo, i, t, e);\n}\nfunction Ko(i, t, e) {\n return Ei($o, i, t, e);\n}\nfunction xn(i) {\n return (i % 360 + 360) % 360;\n}\nfunction qo(i) {\n const t = jo.exec(i);\n let e = 255, s;\n if (!t)\n return;\n t[5] !== s && (e = t[6] ? Gt(+t[5]) : xt(+t[5]));\n const n = xn(+t[2]), o = +t[3] / 100, r = +t[4] / 100;\n return t[1] === \"hwb\" ? s = Uo(n, o, r) : t[1] === \"hsv\" ? s = Ko(n, o, r) : s = Fi(n, o, r), {\n r: s[0],\n g: s[1],\n b: s[2],\n a: e\n };\n}\nfunction Go(i, t) {\n var e = Ri(i);\n e[0] = xn(e[0] + t), e = Fi(e), i.r = e[0], i.g = e[1], i.b = e[2];\n}\nfunction Zo(i) {\n if (!i)\n return;\n const t = Ri(i), e = t[0], s = ts(t[1]), n = ts(t[2]);\n return i.a < 255 ? `hsla(${e}, ${s}%, ${n}%, ${dt(i.a)})` : `hsl(${e}, ${s}%, ${n}%)`;\n}\nconst es = {\n x: \"dark\",\n Z: \"light\",\n Y: \"re\",\n X: \"blu\",\n W: \"gr\",\n V: \"medium\",\n U: \"slate\",\n A: \"ee\",\n T: \"ol\",\n S: \"or\",\n B: \"ra\",\n C: \"lateg\",\n D: \"ights\",\n R: \"in\",\n Q: \"turquois\",\n E: \"hi\",\n P: \"ro\",\n O: \"al\",\n N: \"le\",\n M: \"de\",\n L: \"yello\",\n F: \"en\",\n K: \"ch\",\n G: \"arks\",\n H: \"ea\",\n I: \"ightg\",\n J: \"wh\"\n}, is = {\n OiceXe: \"f0f8ff\",\n antiquewEte: \"faebd7\",\n aqua: \"ffff\",\n aquamarRe: \"7fffd4\",\n azuY: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"0\",\n blanKedOmond: \"ffebcd\",\n Xe: \"ff\",\n XeviTet: \"8a2be2\",\n bPwn: \"a52a2a\",\n burlywood: \"deb887\",\n caMtXe: \"5f9ea0\",\n KartYuse: \"7fff00\",\n KocTate: \"d2691e\",\n cSO: \"ff7f50\",\n cSnflowerXe: \"6495ed\",\n cSnsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"ffff\",\n xXe: \"8b\",\n xcyan: \"8b8b\",\n xgTMnPd: \"b8860b\",\n xWay: \"a9a9a9\",\n xgYF: \"6400\",\n xgYy: \"a9a9a9\",\n xkhaki: \"bdb76b\",\n xmagFta: \"8b008b\",\n xTivegYF: \"556b2f\",\n xSange: \"ff8c00\",\n xScEd: \"9932cc\",\n xYd: \"8b0000\",\n xsOmon: \"e9967a\",\n xsHgYF: \"8fbc8f\",\n xUXe: \"483d8b\",\n xUWay: \"2f4f4f\",\n xUgYy: \"2f4f4f\",\n xQe: \"ced1\",\n xviTet: \"9400d3\",\n dAppRk: \"ff1493\",\n dApskyXe: \"bfff\",\n dimWay: \"696969\",\n dimgYy: \"696969\",\n dodgerXe: \"1e90ff\",\n fiYbrick: \"b22222\",\n flSOwEte: \"fffaf0\",\n foYstWAn: \"228b22\",\n fuKsia: \"ff00ff\",\n gaRsbSo: \"dcdcdc\",\n ghostwEte: \"f8f8ff\",\n gTd: \"ffd700\",\n gTMnPd: \"daa520\",\n Way: \"808080\",\n gYF: \"8000\",\n gYFLw: \"adff2f\",\n gYy: \"808080\",\n honeyMw: \"f0fff0\",\n hotpRk: \"ff69b4\",\n RdianYd: \"cd5c5c\",\n Rdigo: \"4b0082\",\n ivSy: \"fffff0\",\n khaki: \"f0e68c\",\n lavFMr: \"e6e6fa\",\n lavFMrXsh: \"fff0f5\",\n lawngYF: \"7cfc00\",\n NmoncEffon: \"fffacd\",\n ZXe: \"add8e6\",\n ZcSO: \"f08080\",\n Zcyan: \"e0ffff\",\n ZgTMnPdLw: \"fafad2\",\n ZWay: \"d3d3d3\",\n ZgYF: \"90ee90\",\n ZgYy: \"d3d3d3\",\n ZpRk: \"ffb6c1\",\n ZsOmon: \"ffa07a\",\n ZsHgYF: \"20b2aa\",\n ZskyXe: \"87cefa\",\n ZUWay: \"778899\",\n ZUgYy: \"778899\",\n ZstAlXe: \"b0c4de\",\n ZLw: \"ffffe0\",\n lime: \"ff00\",\n limegYF: \"32cd32\",\n lRF: \"faf0e6\",\n magFta: \"ff00ff\",\n maPon: \"800000\",\n VaquamarRe: \"66cdaa\",\n VXe: \"cd\",\n VScEd: \"ba55d3\",\n VpurpN: \"9370db\",\n VsHgYF: \"3cb371\",\n VUXe: \"7b68ee\",\n VsprRggYF: \"fa9a\",\n VQe: \"48d1cc\",\n VviTetYd: \"c71585\",\n midnightXe: \"191970\",\n mRtcYam: \"f5fffa\",\n mistyPse: \"ffe4e1\",\n moccasR: \"ffe4b5\",\n navajowEte: \"ffdead\",\n navy: \"80\",\n Tdlace: \"fdf5e6\",\n Tive: \"808000\",\n TivedBb: \"6b8e23\",\n Sange: \"ffa500\",\n SangeYd: \"ff4500\",\n ScEd: \"da70d6\",\n pOegTMnPd: \"eee8aa\",\n pOegYF: \"98fb98\",\n pOeQe: \"afeeee\",\n pOeviTetYd: \"db7093\",\n papayawEp: \"ffefd5\",\n pHKpuff: \"ffdab9\",\n peru: \"cd853f\",\n pRk: \"ffc0cb\",\n plum: \"dda0dd\",\n powMrXe: \"b0e0e6\",\n purpN: \"800080\",\n YbeccapurpN: \"663399\",\n Yd: \"ff0000\",\n Psybrown: \"bc8f8f\",\n PyOXe: \"4169e1\",\n saddNbPwn: \"8b4513\",\n sOmon: \"fa8072\",\n sandybPwn: \"f4a460\",\n sHgYF: \"2e8b57\",\n sHshell: \"fff5ee\",\n siFna: \"a0522d\",\n silver: \"c0c0c0\",\n skyXe: \"87ceeb\",\n UXe: \"6a5acd\",\n UWay: \"708090\",\n UgYy: \"708090\",\n snow: \"fffafa\",\n sprRggYF: \"ff7f\",\n stAlXe: \"4682b4\",\n tan: \"d2b48c\",\n teO: \"8080\",\n tEstN: \"d8bfd8\",\n tomato: \"ff6347\",\n Qe: \"40e0d0\",\n viTet: \"ee82ee\",\n JHt: \"f5deb3\",\n wEte: \"ffffff\",\n wEtesmoke: \"f5f5f5\",\n Lw: \"ffff00\",\n LwgYF: \"9acd32\"\n};\nfunction Jo() {\n const i = {}, t = Object.keys(is), e = Object.keys(es);\n let s, n, o, r, a;\n for (s = 0; s < t.length; s++) {\n for (r = a = t[s], n = 0; n < e.length; n++)\n o = e[n], a = a.replace(o, es[o]);\n o = parseInt(is[r], 16), i[a] = [o >> 16 & 255, o >> 8 & 255, o & 255];\n }\n return i;\n}\nlet Pe;\nfunction Qo(i) {\n Pe || (Pe = Jo(), Pe.transparent = [0, 0, 0, 0]);\n const t = Pe[i.toLowerCase()];\n return t && {\n r: t[0],\n g: t[1],\n b: t[2],\n a: t.length === 4 ? t[3] : 255\n };\n}\nconst tr = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction er(i) {\n const t = tr.exec(i);\n let e = 255, s, n, o;\n if (t) {\n if (t[7] !== s) {\n const r = +t[7];\n e = t[8] ? Gt(r) : mt(r * 255, 0, 255);\n }\n return s = +t[1], n = +t[3], o = +t[5], s = 255 & (t[2] ? Gt(s) : mt(s, 0, 255)), n = 255 & (t[4] ? Gt(n) : mt(n, 0, 255)), o = 255 & (t[6] ? Gt(o) : mt(o, 0, 255)), {\n r: s,\n g: n,\n b: o,\n a: e\n };\n }\n}\nfunction ir(i) {\n return i && (i.a < 255 ? `rgba(${i.r}, ${i.g}, ${i.b}, ${dt(i.a)})` : `rgb(${i.r}, ${i.g}, ${i.b})`);\n}\nconst ni = (i) => i <= 31308e-7 ? i * 12.92 : Math.pow(i, 1 / 2.4) * 1.055 - 0.055, Ft = (i) => i <= 0.04045 ? i / 12.92 : Math.pow((i + 0.055) / 1.055, 2.4);\nfunction sr(i, t, e) {\n const s = Ft(dt(i.r)), n = Ft(dt(i.g)), o = Ft(dt(i.b));\n return {\n r: xt(ni(s + e * (Ft(dt(t.r)) - s))),\n g: xt(ni(n + e * (Ft(dt(t.g)) - n))),\n b: xt(ni(o + e * (Ft(dt(t.b)) - o))),\n a: i.a + e * (t.a - i.a)\n };\n}\nfunction Ce(i, t, e) {\n if (i) {\n let s = Ri(i);\n s[t] = Math.max(0, Math.min(s[t] + s[t] * e, t === 0 ? 360 : 1)), s = Fi(s), i.r = s[0], i.g = s[1], i.b = s[2];\n }\n}\nfunction _n(i, t) {\n return i && Object.assign(t || {}, i);\n}\nfunction ss(i) {\n var t = { r: 0, g: 0, b: 0, a: 255 };\n return Array.isArray(i) ? i.length >= 3 && (t = { r: i[0], g: i[1], b: i[2], a: 255 }, i.length > 3 && (t.a = xt(i[3]))) : (t = _n(i, { r: 0, g: 0, b: 0, a: 1 }), t.a = xt(t.a)), t;\n}\nfunction nr(i) {\n return i.charAt(0) === \"r\" ? er(i) : qo(i);\n}\nclass We {\n constructor(t) {\n if (t instanceof We)\n return t;\n const e = typeof t;\n let s;\n e === \"object\" ? s = ss(t) : e === \"string\" && (s = Wo(t) || Qo(t) || nr(t)), this._rgb = s, this._valid = !!s;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var t = _n(this._rgb);\n return t && (t.a = dt(t.a)), t;\n }\n set rgb(t) {\n this._rgb = ss(t);\n }\n rgbString() {\n return this._valid ? ir(this._rgb) : void 0;\n }\n hexString() {\n return this._valid ? Ho(this._rgb) : void 0;\n }\n hslString() {\n return this._valid ? Zo(this._rgb) : void 0;\n }\n mix(t, e) {\n if (t) {\n const s = this.rgb, n = t.rgb;\n let o;\n const r = e === o ? 0.5 : e, a = 2 * r - 1, l = s.a - n.a, c = ((a * l === -1 ? a : (a + l) / (1 + a * l)) + 1) / 2;\n o = 1 - c, s.r = 255 & c * s.r + o * n.r + 0.5, s.g = 255 & c * s.g + o * n.g + 0.5, s.b = 255 & c * s.b + o * n.b + 0.5, s.a = r * s.a + (1 - r) * n.a, this.rgb = s;\n }\n return this;\n }\n interpolate(t, e) {\n return t && (this._rgb = sr(this._rgb, t._rgb, e)), this;\n }\n clone() {\n return new We(this.rgb);\n }\n alpha(t) {\n return this._rgb.a = xt(t), this;\n }\n clearer(t) {\n const e = this._rgb;\n return e.a *= 1 - t, this;\n }\n greyscale() {\n const t = this._rgb, e = he(t.r * 0.3 + t.g * 0.59 + t.b * 0.11);\n return t.r = t.g = t.b = e, this;\n }\n opaquer(t) {\n const e = this._rgb;\n return e.a *= 1 + t, this;\n }\n negate() {\n const t = this._rgb;\n return t.r = 255 - t.r, t.g = 255 - t.g, t.b = 255 - t.b, this;\n }\n lighten(t) {\n return Ce(this._rgb, 2, t), this;\n }\n darken(t) {\n return Ce(this._rgb, 2, -t), this;\n }\n saturate(t) {\n return Ce(this._rgb, 1, t), this;\n }\n desaturate(t) {\n return Ce(this._rgb, 1, -t), this;\n }\n rotate(t) {\n return Go(this._rgb, t), this;\n }\n}\nfunction yn(i) {\n return new We(i);\n}\nfunction vn(i) {\n if (i && typeof i == \"object\") {\n const t = i.toString();\n return t === \"[object CanvasPattern]\" || t === \"[object CanvasGradient]\";\n }\n return !1;\n}\nfunction ns(i) {\n return vn(i) ? i : yn(i);\n}\nfunction oi(i) {\n return vn(i) ? i : yn(i).saturate(0.5).darken(0.1).hexString();\n}\nconst At = /* @__PURE__ */ Object.create(null), _i = /* @__PURE__ */ Object.create(null);\nfunction ie(i, t) {\n if (!t)\n return i;\n const e = t.split(\".\");\n for (let s = 0, n = e.length; s < n; ++s) {\n const o = e[s];\n i = i[o] || (i[o] = /* @__PURE__ */ Object.create(null));\n }\n return i;\n}\nfunction ri(i, t, e) {\n return typeof t == \"string\" ? ne(ie(i, t), e) : ne(ie(i, \"\"), t);\n}\nclass or {\n constructor(t) {\n this.animation = void 0, this.backgroundColor = \"rgba(0,0,0,0.1)\", this.borderColor = \"rgba(0,0,0,0.1)\", this.color = \"#666\", this.datasets = {}, this.devicePixelRatio = (e) => e.chart.platform.getDevicePixelRatio(), this.elements = {}, this.events = [\n \"mousemove\",\n \"mouseout\",\n \"click\",\n \"touchstart\",\n \"touchmove\"\n ], this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: \"normal\",\n lineHeight: 1.2,\n weight: null\n }, this.hover = {}, this.hoverBackgroundColor = (e, s) => oi(s.backgroundColor), this.hoverBorderColor = (e, s) => oi(s.borderColor), this.hoverColor = (e, s) => oi(s.color), this.indexAxis = \"x\", this.interaction = {\n mode: \"nearest\",\n intersect: !0,\n includeInvisible: !1\n }, this.maintainAspectRatio = !0, this.onHover = null, this.onClick = null, this.parsing = !0, this.plugins = {}, this.responsive = !0, this.scale = void 0, this.scales = {}, this.showLine = !0, this.drawActiveElementsOnTop = !0, this.describe(t);\n }\n set(t, e) {\n return ri(this, t, e);\n }\n get(t) {\n return ie(this, t);\n }\n describe(t, e) {\n return ri(_i, t, e);\n }\n override(t, e) {\n return ri(At, t, e);\n }\n route(t, e, s, n) {\n const o = ie(this, t), r = ie(this, s), a = \"_\" + e;\n Object.defineProperties(o, {\n [a]: {\n value: o[e],\n writable: !0\n },\n [e]: {\n enumerable: !0,\n get() {\n const l = this[a], c = r[n];\n return D(l) ? Object.assign({}, c, l) : C(l, c);\n },\n set(l) {\n this[a] = l;\n }\n }\n });\n }\n}\nvar O = new or({\n _scriptable: (i) => !i.startsWith(\"on\"),\n _indexable: (i) => i !== \"events\",\n hover: {\n _fallback: \"interaction\"\n },\n interaction: {\n _scriptable: !1,\n _indexable: !1\n }\n});\nfunction rr(i) {\n return !i || T(i.size) || T(i.family) ? null : (i.style ? i.style + \" \" : \"\") + (i.weight ? i.weight + \" \" : \"\") + i.size + \"px \" + i.family;\n}\nfunction Ne(i, t, e, s, n) {\n let o = t[n];\n return o || (o = t[n] = i.measureText(n).width, e.push(n)), o > s && (s = o), s;\n}\nfunction ar(i, t, e, s) {\n s = s || {};\n let n = s.data = s.data || {}, o = s.garbageCollect = s.garbageCollect || [];\n s.font !== t && (n = s.data = {}, o = s.garbageCollect = [], s.font = t), i.save(), i.font = t;\n let r = 0;\n const a = e.length;\n let l, c, h, d, u;\n for (l = 0; l < a; l++)\n if (d = e[l], d != null && z(d) !== !0)\n r = Ne(i, n, o, r, d);\n else if (z(d))\n for (c = 0, h = d.length; c < h; c++)\n u = d[c], u != null && !z(u) && (r = Ne(i, n, o, r, u));\n i.restore();\n const f = o.length / 2;\n if (f > e.length) {\n for (l = 0; l < f; l++)\n delete n[o[l]];\n o.splice(0, f);\n }\n return r;\n}\nfunction wt(i, t, e) {\n const s = i.currentDevicePixelRatio, n = e !== 0 ? Math.max(e / 2, 0.5) : 0;\n return Math.round((t - n) * s) / s + n;\n}\nfunction os(i, t) {\n t = t || i.getContext(\"2d\"), t.save(), t.resetTransform(), t.clearRect(0, 0, i.width, i.height), t.restore();\n}\nfunction yi(i, t, e, s) {\n Mn(i, t, e, s, null);\n}\nfunction Mn(i, t, e, s, n) {\n let o, r, a, l, c, h;\n const d = t.pointStyle, u = t.rotation, f = t.radius;\n let g = (u || 0) * Co;\n if (d && typeof d == \"object\" && (o = d.toString(), o === \"[object HTMLImageElement]\" || o === \"[object HTMLCanvasElement]\")) {\n i.save(), i.translate(e, s), i.rotate(g), i.drawImage(d, -d.width / 2, -d.height / 2, d.width, d.height), i.restore();\n return;\n }\n if (!(isNaN(f) || f <= 0)) {\n switch (i.beginPath(), d) {\n default:\n n ? i.ellipse(e, s, n / 2, f, 0, 0, F) : i.arc(e, s, f, 0, F), i.closePath();\n break;\n case \"triangle\":\n i.moveTo(e + Math.sin(g) * f, s - Math.cos(g) * f), g += Ki, i.lineTo(e + Math.sin(g) * f, s - Math.cos(g) * f), g += Ki, i.lineTo(e + Math.sin(g) * f, s - Math.cos(g) * f), i.closePath();\n break;\n case \"rectRounded\":\n c = f * 0.516, l = f - c, r = Math.cos(g + $t) * l, a = Math.sin(g + $t) * l, i.arc(e - r, s - a, c, g - B, g - V), i.arc(e + a, s - r, c, g - V, g), i.arc(e + r, s + a, c, g, g + V), i.arc(e - a, s + r, c, g + V, g + B), i.closePath();\n break;\n case \"rect\":\n if (!u) {\n l = Math.SQRT1_2 * f, h = n ? n / 2 : l, i.rect(e - h, s - l, 2 * h, 2 * l);\n break;\n }\n g += $t;\n case \"rectRot\":\n r = Math.cos(g) * f, a = Math.sin(g) * f, i.moveTo(e - r, s - a), i.lineTo(e + a, s - r), i.lineTo(e + r, s + a), i.lineTo(e - a, s + r), i.closePath();\n break;\n case \"crossRot\":\n g += $t;\n case \"cross\":\n r = Math.cos(g) * f, a = Math.sin(g) * f, i.moveTo(e - r, s - a), i.lineTo(e + r, s + a), i.moveTo(e + a, s - r), i.lineTo(e - a, s + r);\n break;\n case \"star\":\n r = Math.cos(g) * f, a = Math.sin(g) * f, i.moveTo(e - r, s - a), i.lineTo(e + r, s + a), i.moveTo(e + a, s - r), i.lineTo(e - a, s + r), g += $t, r = Math.cos(g) * f, a = Math.sin(g) * f, i.moveTo(e - r, s - a), i.lineTo(e + r, s + a), i.moveTo(e + a, s - r), i.lineTo(e - a, s + r);\n break;\n case \"line\":\n r = n ? n / 2 : Math.cos(g) * f, a = Math.sin(g) * f, i.moveTo(e - r, s - a), i.lineTo(e + r, s + a);\n break;\n case \"dash\":\n i.moveTo(e, s), i.lineTo(e + Math.cos(g) * f, s + Math.sin(g) * f);\n break;\n }\n i.fill(), t.borderWidth > 0 && i.stroke();\n }\n}\nfunction re(i, t, e) {\n return e = e || 0.5, !t || i && i.x > t.left - e && i.x < t.right + e && i.y > t.top - e && i.y < t.bottom + e;\n}\nfunction Xe(i, t) {\n i.save(), i.beginPath(), i.rect(t.left, t.top, t.right - t.left, t.bottom - t.top), i.clip();\n}\nfunction Ue(i) {\n i.restore();\n}\nfunction lr(i, t, e, s, n) {\n if (!t)\n return i.lineTo(e.x, e.y);\n if (n === \"middle\") {\n const o = (t.x + e.x) / 2;\n i.lineTo(o, t.y), i.lineTo(o, e.y);\n } else\n n === \"after\" != !!s ? i.lineTo(t.x, e.y) : i.lineTo(e.x, t.y);\n i.lineTo(e.x, e.y);\n}\nfunction cr(i, t, e, s) {\n if (!t)\n return i.lineTo(e.x, e.y);\n i.bezierCurveTo(\n s ? t.cp1x : t.cp2x,\n s ? t.cp1y : t.cp2y,\n s ? e.cp2x : e.cp1x,\n s ? e.cp2y : e.cp1y,\n e.x,\n e.y\n );\n}\nfunction Tt(i, t, e, s, n, o = {}) {\n const r = z(t) ? t : [t], a = o.strokeWidth > 0 && o.strokeColor !== \"\";\n let l, c;\n for (i.save(), i.font = n.string, hr(i, o), l = 0; l < r.length; ++l)\n c = r[l], a && (o.strokeColor && (i.strokeStyle = o.strokeColor), T(o.strokeWidth) || (i.lineWidth = o.strokeWidth), i.strokeText(c, e, s, o.maxWidth)), i.fillText(c, e, s, o.maxWidth), dr(i, e, s, c, o), s += n.lineHeight;\n i.restore();\n}\nfunction hr(i, t) {\n t.translation && i.translate(t.translation[0], t.translation[1]), T(t.rotation) || i.rotate(t.rotation), t.color && (i.fillStyle = t.color), t.textAlign && (i.textAlign = t.textAlign), t.textBaseline && (i.textBaseline = t.textBaseline);\n}\nfunction dr(i, t, e, s, n) {\n if (n.strikethrough || n.underline) {\n const o = i.measureText(s), r = t - o.actualBoundingBoxLeft, a = t + o.actualBoundingBoxRight, l = e - o.actualBoundingBoxAscent, c = e + o.actualBoundingBoxDescent, h = n.strikethrough ? (l + c) / 2 : c;\n i.strokeStyle = i.fillStyle, i.beginPath(), i.lineWidth = n.decorationWidth || 2, i.moveTo(r, h), i.lineTo(a, h), i.stroke();\n }\n}\nfunction ae(i, t) {\n const { x: e, y: s, w: n, h: o, radius: r } = t;\n i.arc(e + r.topLeft, s + r.topLeft, r.topLeft, -V, B, !0), i.lineTo(e, s + o - r.bottomLeft), i.arc(e + r.bottomLeft, s + o - r.bottomLeft, r.bottomLeft, B, V, !0), i.lineTo(e + n - r.bottomRight, s + o), i.arc(e + n - r.bottomRight, s + o - r.bottomRight, r.bottomRight, V, 0, !0), i.lineTo(e + n, s + r.topRight), i.arc(e + n - r.topRight, s + r.topRight, r.topRight, 0, -V, !0), i.lineTo(e + r.topLeft, s);\n}\nconst ur = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/), fr = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction gr(i, t) {\n const e = (\"\" + i).match(ur);\n if (!e || e[1] === \"normal\")\n return t * 1.2;\n switch (i = +e[2], e[3]) {\n case \"px\":\n return i;\n case \"%\":\n i /= 100;\n break;\n }\n return t * i;\n}\nconst pr = (i) => +i || 0;\nfunction Ii(i, t) {\n const e = {}, s = D(t), n = s ? Object.keys(t) : t, o = D(i) ? s ? (r) => C(i[r], i[t[r]]) : (r) => i[r] : () => i;\n for (const r of n)\n e[r] = pr(o(r));\n return e;\n}\nfunction kn(i) {\n return Ii(i, { top: \"y\", right: \"x\", bottom: \"y\", left: \"x\" });\n}\nfunction Dt(i) {\n return Ii(i, [\"topLeft\", \"topRight\", \"bottomLeft\", \"bottomRight\"]);\n}\nfunction K(i) {\n const t = kn(i);\n return t.width = t.left + t.right, t.height = t.top + t.bottom, t;\n}\nfunction $(i, t) {\n i = i || {}, t = t || O.font;\n let e = C(i.size, t.size);\n typeof e == \"string\" && (e = parseInt(e, 10));\n let s = C(i.style, t.style);\n s && !(\"\" + s).match(fr) && (console.warn('Invalid font style specified: \"' + s + '\"'), s = \"\");\n const n = {\n family: C(i.family, t.family),\n lineHeight: gr(C(i.lineHeight, t.lineHeight), e),\n size: e,\n style: s,\n weight: C(i.weight, t.weight),\n string: \"\"\n };\n return n.string = rr(n), n;\n}\nfunction Zt(i, t, e, s) {\n let n = !0, o, r, a;\n for (o = 0, r = i.length; o < r; ++o)\n if (a = i[o], a !== void 0 && (t !== void 0 && typeof a == \"function\" && (a = a(t), n = !1), e !== void 0 && z(a) && (a = a[e % a.length], n = !1), a !== void 0))\n return s && !n && (s.cacheable = !1), a;\n}\nfunction mr(i, t, e) {\n const { min: s, max: n } = i, o = an(t, (n - s) / 2), r = (a, l) => e && a === 0 ? 0 : a + l;\n return {\n min: r(s, -Math.abs(o)),\n max: r(n, o)\n };\n}\nfunction vt(i, t) {\n return Object.assign(Object.create(i), t);\n}\nfunction zi(i, t = [\"\"], e = i, s, n = () => i[0]) {\n et(s) || (s = Cn(\"_fallback\", i));\n const o = {\n [Symbol.toStringTag]: \"Object\",\n _cacheable: !0,\n _scopes: i,\n _rootScopes: e,\n _fallback: s,\n _getTarget: n,\n override: (r) => zi([r, ...i], t, e, s)\n };\n return new Proxy(o, {\n deleteProperty(r, a) {\n return delete r[a], delete r._keys, delete i[0][a], !0;\n },\n get(r, a) {\n return Sn(\n r,\n a,\n () => wr(a, t, i, r)\n );\n },\n getOwnPropertyDescriptor(r, a) {\n return Reflect.getOwnPropertyDescriptor(r._scopes[0], a);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(i[0]);\n },\n has(r, a) {\n return as(r).includes(a);\n },\n ownKeys(r) {\n return as(r);\n },\n set(r, a, l) {\n const c = r._storage || (r._storage = n());\n return r[a] = c[a] = l, delete r._keys, !0;\n }\n });\n}\nfunction Vt(i, t, e, s) {\n const n = {\n _cacheable: !1,\n _proxy: i,\n _context: t,\n _subProxy: e,\n _stack: /* @__PURE__ */ new Set(),\n _descriptors: wn(i, s),\n setContext: (o) => Vt(i, o, e, s),\n override: (o) => Vt(i.override(o), t, e, s)\n };\n return new Proxy(n, {\n deleteProperty(o, r) {\n return delete o[r], delete i[r], !0;\n },\n get(o, r, a) {\n return Sn(\n o,\n r,\n () => xr(o, r, a)\n );\n },\n getOwnPropertyDescriptor(o, r) {\n return o._descriptors.allKeys ? Reflect.has(i, r) ? { enumerable: !0, configurable: !0 } : void 0 : Reflect.getOwnPropertyDescriptor(i, r);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(i);\n },\n has(o, r) {\n return Reflect.has(i, r);\n },\n ownKeys() {\n return Reflect.ownKeys(i);\n },\n set(o, r, a) {\n return i[r] = a, delete o[r], !0;\n }\n });\n}\nfunction wn(i, t = { scriptable: !0, indexable: !0 }) {\n const { _scriptable: e = t.scriptable, _indexable: s = t.indexable, _allKeys: n = t.allKeys } = i;\n return {\n allKeys: n,\n scriptable: e,\n indexable: s,\n isScriptable: yt(e) ? e : () => e,\n isIndexable: yt(s) ? s : () => s\n };\n}\nconst br = (i, t) => i ? i + Oi(t) : t, Bi = (i, t) => D(t) && i !== \"adapters\" && (Object.getPrototypeOf(t) === null || t.constructor === Object);\nfunction Sn(i, t, e) {\n if (Object.prototype.hasOwnProperty.call(i, t))\n return i[t];\n const s = e();\n return i[t] = s, s;\n}\nfunction xr(i, t, e) {\n const { _proxy: s, _context: n, _subProxy: o, _descriptors: r } = i;\n let a = s[t];\n return yt(a) && r.isScriptable(t) && (a = _r(t, a, i, e)), z(a) && a.length && (a = yr(t, a, i, r.isIndexable)), Bi(t, a) && (a = Vt(a, n, o && o[t], r)), a;\n}\nfunction _r(i, t, e, s) {\n const { _proxy: n, _context: o, _subProxy: r, _stack: a } = e;\n if (a.has(i))\n throw new Error(\"Recursion detected: \" + Array.from(a).join(\"->\") + \"->\" + i);\n return a.add(i), t = t(o, r || s), a.delete(i), Bi(i, t) && (t = Vi(n._scopes, n, i, t)), t;\n}\nfunction yr(i, t, e, s) {\n const { _proxy: n, _context: o, _subProxy: r, _descriptors: a } = e;\n if (et(o.index) && s(i))\n t = t[o.index % t.length];\n else if (D(t[0])) {\n const l = t, c = n._scopes.filter((h) => h !== l);\n t = [];\n for (const h of l) {\n const d = Vi(c, n, i, h);\n t.push(Vt(d, o, r && r[i], a));\n }\n }\n return t;\n}\nfunction Pn(i, t, e) {\n return yt(i) ? i(t, e) : i;\n}\nconst vr = (i, t) => i === !0 ? t : typeof i == \"string\" ? _t(t, i) : void 0;\nfunction Mr(i, t, e, s, n) {\n for (const o of t) {\n const r = vr(e, o);\n if (r) {\n i.add(r);\n const a = Pn(r._fallback, e, n);\n if (et(a) && a !== e && a !== s)\n return a;\n } else if (r === !1 && et(s) && e !== s)\n return null;\n }\n return !1;\n}\nfunction Vi(i, t, e, s) {\n const n = t._rootScopes, o = Pn(t._fallback, e, s), r = [...i, ...n], a = /* @__PURE__ */ new Set();\n a.add(s);\n let l = rs(a, r, e, o || e, s);\n return l === null || et(o) && o !== e && (l = rs(a, r, o, l, s), l === null) ? !1 : zi(\n Array.from(a),\n [\"\"],\n n,\n o,\n () => kr(t, e, s)\n );\n}\nfunction rs(i, t, e, s, n) {\n for (; e; )\n e = Mr(i, t, e, s, n);\n return e;\n}\nfunction kr(i, t, e) {\n const s = i._getTarget();\n t in s || (s[t] = {});\n const n = s[t];\n return z(n) && D(e) ? e : n;\n}\nfunction wr(i, t, e, s) {\n let n;\n for (const o of t)\n if (n = Cn(br(o, i), e), et(n))\n return Bi(i, n) ? Vi(e, s, i, n) : n;\n}\nfunction Cn(i, t) {\n for (const e of t) {\n if (!e)\n continue;\n const s = e[i];\n if (et(s))\n return s;\n }\n}\nfunction as(i) {\n let t = i._keys;\n return t || (t = i._keys = Sr(i._scopes)), t;\n}\nfunction Sr(i) {\n const t = /* @__PURE__ */ new Set();\n for (const e of i)\n for (const s of Object.keys(e).filter((n) => !n.startsWith(\"_\")))\n t.add(s);\n return Array.from(t);\n}\nfunction Dn(i, t, e, s) {\n const { iScale: n } = i, { key: o = \"r\" } = this._parsing, r = new Array(s);\n let a, l, c, h;\n for (a = 0, l = s; a < l; ++a)\n c = a + e, h = t[c], r[a] = {\n r: n.parse(_t(h, o), c)\n };\n return r;\n}\nconst Pr = Number.EPSILON || 1e-14, Wt = (i, t) => t < i.length && !i[t].skip && i[t], On = (i) => i === \"x\" ? \"y\" : \"x\";\nfunction Cr(i, t, e, s) {\n const n = i.skip ? t : i, o = t, r = e.skip ? t : e, a = bi(o, n), l = bi(r, o);\n let c = a / (a + l), h = l / (a + l);\n c = isNaN(c) ? 0 : c, h = isNaN(h) ? 0 : h;\n const d = s * c, u = s * h;\n return {\n previous: {\n x: o.x - d * (r.x - n.x),\n y: o.y - d * (r.y - n.y)\n },\n next: {\n x: o.x + u * (r.x - n.x),\n y: o.y + u * (r.y - n.y)\n }\n };\n}\nfunction Dr(i, t, e) {\n const s = i.length;\n let n, o, r, a, l, c = Wt(i, 0);\n for (let h = 0; h < s - 1; ++h)\n if (l = c, c = Wt(i, h + 1), !(!l || !c)) {\n if (te(t[h], 0, Pr)) {\n e[h] = e[h + 1] = 0;\n continue;\n }\n n = e[h] / t[h], o = e[h + 1] / t[h], a = Math.pow(n, 2) + Math.pow(o, 2), !(a <= 9) && (r = 3 / Math.sqrt(a), e[h] = n * r * t[h], e[h + 1] = o * r * t[h]);\n }\n}\nfunction Or(i, t, e = \"x\") {\n const s = On(e), n = i.length;\n let o, r, a, l = Wt(i, 0);\n for (let c = 0; c < n; ++c) {\n if (r = a, a = l, l = Wt(i, c + 1), !a)\n continue;\n const h = a[e], d = a[s];\n r && (o = (h - r[e]) / 3, a[`cp1${e}`] = h - o, a[`cp1${s}`] = d - o * t[c]), l && (o = (l[e] - h) / 3, a[`cp2${e}`] = h + o, a[`cp2${s}`] = d + o * t[c]);\n }\n}\nfunction Ar(i, t = \"x\") {\n const e = On(t), s = i.length, n = Array(s).fill(0), o = Array(s);\n let r, a, l, c = Wt(i, 0);\n for (r = 0; r < s; ++r)\n if (a = l, l = c, c = Wt(i, r + 1), !!l) {\n if (c) {\n const h = c[t] - l[t];\n n[r] = h !== 0 ? (c[e] - l[e]) / h : 0;\n }\n o[r] = a ? c ? lt(n[r - 1]) !== lt(n[r]) ? 0 : (n[r - 1] + n[r]) / 2 : n[r - 1] : n[r];\n }\n Dr(i, n, o), Or(i, o, t);\n}\nfunction De(i, t, e) {\n return Math.max(Math.min(i, e), t);\n}\nfunction Tr(i, t) {\n let e, s, n, o, r, a = re(i[0], t);\n for (e = 0, s = i.length; e < s; ++e)\n r = o, o = a, a = e < s - 1 && re(i[e + 1], t), o && (n = i[e], r && (n.cp1x = De(n.cp1x, t.left, t.right), n.cp1y = De(n.cp1y, t.top, t.bottom)), a && (n.cp2x = De(n.cp2x, t.left, t.right), n.cp2y = De(n.cp2y, t.top, t.bottom)));\n}\nfunction Lr(i, t, e, s, n) {\n let o, r, a, l;\n if (t.spanGaps && (i = i.filter((c) => !c.skip)), t.cubicInterpolationMode === \"monotone\")\n Ar(i, n);\n else {\n let c = s ? i[i.length - 1] : i[0];\n for (o = 0, r = i.length; o < r; ++o)\n a = i[o], l = Cr(\n c,\n a,\n i[Math.min(o + 1, r - (s ? 0 : 1)) % r],\n t.tension\n ), a.cp1x = l.previous.x, a.cp1y = l.previous.y, a.cp2x = l.next.x, a.cp2y = l.next.y, c = a;\n }\n t.capBezierPoints && Tr(i, e);\n}\nfunction An() {\n return typeof window < \"u\" && typeof document < \"u\";\n}\nfunction Wi(i) {\n let t = i.parentNode;\n return t && t.toString() === \"[object ShadowRoot]\" && (t = t.host), t;\n}\nfunction He(i, t, e) {\n let s;\n return typeof i == \"string\" ? (s = parseInt(i, 10), i.indexOf(\"%\") !== -1 && (s = s / 100 * t.parentNode[e])) : s = i, s;\n}\nconst Ke = (i) => window.getComputedStyle(i, null);\nfunction Rr(i, t) {\n return Ke(i).getPropertyValue(t);\n}\nconst Er = [\"top\", \"right\", \"bottom\", \"left\"];\nfunction Ot(i, t, e) {\n const s = {};\n e = e ? \"-\" + e : \"\";\n for (let n = 0; n < 4; n++) {\n const o = Er[n];\n s[o] = parseFloat(i[t + \"-\" + o + e]) || 0;\n }\n return s.width = s.left + s.right, s.height = s.top + s.bottom, s;\n}\nconst Fr = (i, t, e) => (i > 0 || t > 0) && (!e || !e.shadowRoot);\nfunction Ir(i, t) {\n const e = i.touches, s = e && e.length ? e[0] : i, { offsetX: n, offsetY: o } = s;\n let r = !1, a, l;\n if (Fr(n, o, i.target))\n a = n, l = o;\n else {\n const c = t.getBoundingClientRect();\n a = s.clientX - c.left, l = s.clientY - c.top, r = !0;\n }\n return { x: a, y: l, box: r };\n}\nfunction Pt(i, t) {\n if (\"native\" in i)\n return i;\n const { canvas: e, currentDevicePixelRatio: s } = t, n = Ke(e), o = n.boxSizing === \"border-box\", r = Ot(n, \"padding\"), a = Ot(n, \"border\", \"width\"), { x: l, y: c, box: h } = Ir(i, e), d = r.left + (h && a.left), u = r.top + (h && a.top);\n let { width: f, height: g } = t;\n return o && (f -= r.width + a.width, g -= r.height + a.height), {\n x: Math.round((l - d) / f * e.width / s),\n y: Math.round((c - u) / g * e.height / s)\n };\n}\nfunction zr(i, t, e) {\n let s, n;\n if (t === void 0 || e === void 0) {\n const o = Wi(i);\n if (!o)\n t = i.clientWidth, e = i.clientHeight;\n else {\n const r = o.getBoundingClientRect(), a = Ke(o), l = Ot(a, \"border\", \"width\"), c = Ot(a, \"padding\");\n t = r.width - c.width - l.width, e = r.height - c.height - l.height, s = He(a.maxWidth, o, \"clientWidth\"), n = He(a.maxHeight, o, \"clientHeight\");\n }\n }\n return {\n width: t,\n height: e,\n maxWidth: s || Ve,\n maxHeight: n || Ve\n };\n}\nconst ai = (i) => Math.round(i * 10) / 10;\nfunction Br(i, t, e, s) {\n const n = Ke(i), o = Ot(n, \"margin\"), r = He(n.maxWidth, i, \"clientWidth\") || Ve, a = He(n.maxHeight, i, \"clientHeight\") || Ve, l = zr(i, t, e);\n let { width: c, height: h } = l;\n if (n.boxSizing === \"content-box\") {\n const d = Ot(n, \"border\", \"width\"), u = Ot(n, \"padding\");\n c -= u.width + d.width, h -= u.height + d.height;\n }\n return c = Math.max(0, c - o.width), h = Math.max(0, s ? Math.floor(c / s) : h - o.height), c = ai(Math.min(c, r, l.maxWidth)), h = ai(Math.min(h, a, l.maxHeight)), c && !h && (h = ai(c / 2)), {\n width: c,\n height: h\n };\n}\nfunction ls(i, t, e) {\n const s = t || 1, n = Math.floor(i.height * s), o = Math.floor(i.width * s);\n i.height = n / s, i.width = o / s;\n const r = i.canvas;\n return r.style && (e || !r.style.height && !r.style.width) && (r.style.height = `${i.height}px`, r.style.width = `${i.width}px`), i.currentDevicePixelRatio !== s || r.height !== n || r.width !== o ? (i.currentDevicePixelRatio = s, r.height = n, r.width = o, i.ctx.setTransform(s, 0, 0, s, 0, 0), !0) : !1;\n}\nconst Vr = function() {\n let i = !1;\n try {\n const t = {\n get passive() {\n return i = !0, !1;\n }\n };\n window.addEventListener(\"test\", null, t), window.removeEventListener(\"test\", null, t);\n } catch {\n }\n return i;\n}();\nfunction cs(i, t) {\n const e = Rr(i, t), s = e && e.match(/^(\\d+)(\\.\\d+)?px$/);\n return s ? +s[1] : void 0;\n}\nfunction Ct(i, t, e, s) {\n return {\n x: i.x + e * (t.x - i.x),\n y: i.y + e * (t.y - i.y)\n };\n}\nfunction Wr(i, t, e, s) {\n return {\n x: i.x + e * (t.x - i.x),\n y: s === \"middle\" ? e < 0.5 ? i.y : t.y : s === \"after\" ? e < 1 ? i.y : t.y : e > 0 ? t.y : i.y\n };\n}\nfunction Nr(i, t, e, s) {\n const n = { x: i.cp2x, y: i.cp2y }, o = { x: t.cp1x, y: t.cp1y }, r = Ct(i, n, e), a = Ct(n, o, e), l = Ct(o, t, e), c = Ct(r, a, e), h = Ct(a, l, e);\n return Ct(c, h, e);\n}\nconst hs = /* @__PURE__ */ new Map();\nfunction Hr(i, t) {\n t = t || {};\n const e = i + JSON.stringify(t);\n let s = hs.get(e);\n return s || (s = new Intl.NumberFormat(i, t), hs.set(e, s)), s;\n}\nfunction de(i, t, e) {\n return Hr(t, e).format(i);\n}\nconst jr = function(i, t) {\n return {\n x(e) {\n return i + i + t - e;\n },\n setWidth(e) {\n t = e;\n },\n textAlign(e) {\n return e === \"center\" ? e : e === \"right\" ? \"left\" : \"right\";\n },\n xPlus(e, s) {\n return e - s;\n },\n leftForLtr(e, s) {\n return e - s;\n }\n };\n}, $r = function() {\n return {\n x(i) {\n return i;\n },\n setWidth(i) {\n },\n textAlign(i) {\n return i;\n },\n xPlus(i, t) {\n return i + t;\n },\n leftForLtr(i, t) {\n return i;\n }\n };\n};\nfunction zt(i, t, e) {\n return i ? jr(t, e) : $r();\n}\nfunction Tn(i, t) {\n let e, s;\n (t === \"ltr\" || t === \"rtl\") && (e = i.canvas.style, s = [\n e.getPropertyValue(\"direction\"),\n e.getPropertyPriority(\"direction\")\n ], e.setProperty(\"direction\", t, \"important\"), i.prevTextDirection = s);\n}\nfunction Ln(i, t) {\n t !== void 0 && (delete i.prevTextDirection, i.canvas.style.setProperty(\"direction\", t[0], t[1]));\n}\nfunction Rn(i) {\n return i === \"angle\" ? {\n between: oe,\n compare: Ao,\n normalize: Z\n } : {\n between: ut,\n compare: (t, e) => t - e,\n normalize: (t) => t\n };\n}\nfunction ds({ start: i, end: t, count: e, loop: s, style: n }) {\n return {\n start: i % e,\n end: t % e,\n loop: s && (t - i + 1) % e === 0,\n style: n\n };\n}\nfunction Yr(i, t, e) {\n const { property: s, start: n, end: o } = e, { between: r, normalize: a } = Rn(s), l = t.length;\n let { start: c, end: h, loop: d } = i, u, f;\n if (d) {\n for (c += l, h += l, u = 0, f = l; u < f && r(a(t[c % l][s]), n, o); ++u)\n c--, h--;\n c %= l, h %= l;\n }\n return h < c && (h += l), { start: c, end: h, loop: d, style: i.style };\n}\nfunction En(i, t, e) {\n if (!e)\n return [i];\n const { property: s, start: n, end: o } = e, r = t.length, { compare: a, between: l, normalize: c } = Rn(s), { start: h, end: d, loop: u, style: f } = Yr(i, t, e), g = [];\n let p = !1, m = null, b, x, v;\n const y = () => l(n, v, b) && a(n, v) !== 0, _ = () => a(o, b) === 0 || l(o, v, b), M = () => p || y(), k = () => !p || _();\n for (let S = h, w = h; S <= d; ++S)\n x = t[S % r], !x.skip && (b = c(x[s]), b !== v && (p = l(b, n, o), m === null && M() && (m = a(b, n) === 0 ? S : w), m !== null && k() && (g.push(ds({ start: m, end: S, loop: u, count: r, style: f })), m = null), w = S, v = b));\n return m !== null && g.push(ds({ start: m, end: d, loop: u, count: r, style: f })), g;\n}\nfunction Fn(i, t) {\n const e = [], s = i.segments;\n for (let n = 0; n < s.length; n++) {\n const o = En(s[n], i.points, t);\n o.length && e.push(...o);\n }\n return e;\n}\nfunction Xr(i, t, e, s) {\n let n = 0, o = t - 1;\n if (e && !s)\n for (; n < t && !i[n].skip; )\n n++;\n for (; n < t && i[n].skip; )\n n++;\n for (n %= t, e && (o += n); o > n && i[o % t].skip; )\n o--;\n return o %= t, { start: n, end: o };\n}\nfunction Ur(i, t, e, s) {\n const n = i.length, o = [];\n let r = t, a = i[t], l;\n for (l = t + 1; l <= e; ++l) {\n const c = i[l % n];\n c.skip || c.stop ? a.skip || (s = !1, o.push({ start: t % n, end: (l - 1) % n, loop: s }), t = r = c.stop ? l : null) : (r = l, a.skip && (t = l)), a = c;\n }\n return r !== null && o.push({ start: t % n, end: r % n, loop: s }), o;\n}\nfunction Kr(i, t) {\n const e = i.points, s = i.options.spanGaps, n = e.length;\n if (!n)\n return [];\n const o = !!i._loop, { start: r, end: a } = Xr(e, n, o, s);\n if (s === !0)\n return us(i, [{ start: r, end: a, loop: o }], e, t);\n const l = a < r ? a + n : a, c = !!i._fullLoop && r === 0 && a === n - 1;\n return us(i, Ur(e, r, l, c), e, t);\n}\nfunction us(i, t, e, s) {\n return !s || !s.setContext || !e ? t : qr(i, t, e, s);\n}\nfunction qr(i, t, e, s) {\n const n = i._chart.getContext(), o = fs(i.options), { _datasetIndex: r, options: { spanGaps: a } } = i, l = e.length, c = [];\n let h = o, d = t[0].start, u = d;\n function f(g, p, m, b) {\n const x = a ? -1 : 1;\n if (g !== p) {\n for (g += l; e[g % l].skip; )\n g -= x;\n for (; e[p % l].skip; )\n p += x;\n g % l !== p % l && (c.push({ start: g % l, end: p % l, loop: m, style: b }), h = b, d = p % l);\n }\n }\n for (const g of t) {\n d = a ? d : g.start;\n let p = e[d % l], m;\n for (u = d + 1; u <= g.end; u++) {\n const b = e[u % l];\n m = fs(s.setContext(vt(n, {\n type: \"segment\",\n p0: p,\n p1: b,\n p0DataIndex: (u - 1) % l,\n p1DataIndex: u % l,\n datasetIndex: r\n }))), Gr(m, h) && f(d, u - 1, g.loop, h), p = b, h = m;\n }\n d < u - 1 && f(d, u - 1, g.loop, h);\n }\n return c;\n}\nfunction fs(i) {\n return {\n backgroundColor: i.backgroundColor,\n borderCapStyle: i.borderCapStyle,\n borderDash: i.borderDash,\n borderDashOffset: i.borderDashOffset,\n borderJoinStyle: i.borderJoinStyle,\n borderWidth: i.borderWidth,\n borderColor: i.borderColor\n };\n}\nfunction Gr(i, t) {\n return t && JSON.stringify(i) !== JSON.stringify(t);\n}\n/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nclass Zr {\n constructor() {\n this._request = null, this._charts = /* @__PURE__ */ new Map(), this._running = !1, this._lastDate = void 0;\n }\n _notify(t, e, s, n) {\n const o = e.listeners[n], r = e.duration;\n o.forEach((a) => a({\n chart: t,\n initial: e.initial,\n numSteps: r,\n currentStep: Math.min(s - e.start, r)\n }));\n }\n _refresh() {\n this._request || (this._running = !0, this._request = fn.call(window, () => {\n this._update(), this._request = null, this._running && this._refresh();\n }));\n }\n _update(t = Date.now()) {\n let e = 0;\n this._charts.forEach((s, n) => {\n if (!s.running || !s.items.length)\n return;\n const o = s.items;\n let r = o.length - 1, a = !1, l;\n for (; r >= 0; --r)\n l = o[r], l._active ? (l._total > s.duration && (s.duration = l._total), l.tick(t), a = !0) : (o[r] = o[o.length - 1], o.pop());\n a && (n.draw(), this._notify(n, s, t, \"progress\")), o.length || (s.running = !1, this._notify(n, s, t, \"complete\"), s.initial = !1), e += o.length;\n }), this._lastDate = t, e === 0 && (this._running = !1);\n }\n _getAnims(t) {\n const e = this._charts;\n let s = e.get(t);\n return s || (s = {\n running: !1,\n initial: !0,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n }, e.set(t, s)), s;\n }\n listen(t, e, s) {\n this._getAnims(t).listeners[e].push(s);\n }\n add(t, e) {\n !e || !e.length || this._getAnims(t).items.push(...e);\n }\n has(t) {\n return this._getAnims(t).items.length > 0;\n }\n start(t) {\n const e = this._charts.get(t);\n e && (e.running = !0, e.start = Date.now(), e.duration = e.items.reduce((s, n) => Math.max(s, n._duration), 0), this._refresh());\n }\n running(t) {\n if (!this._running)\n return !1;\n const e = this._charts.get(t);\n return !(!e || !e.running || !e.items.length);\n }\n stop(t) {\n const e = this._charts.get(t);\n if (!e || !e.items.length)\n return;\n const s = e.items;\n let n = s.length - 1;\n for (; n >= 0; --n)\n s[n].cancel();\n e.items = [], this._notify(t, e, Date.now(), \"complete\");\n }\n remove(t) {\n return this._charts.delete(t);\n }\n}\nvar at = new Zr();\nconst gs = \"transparent\", Jr = {\n boolean(i, t, e) {\n return e > 0.5 ? t : i;\n },\n color(i, t, e) {\n const s = ns(i || gs), n = s.valid && ns(t || gs);\n return n && n.valid ? n.mix(s, e).hexString() : t;\n },\n number(i, t, e) {\n return i + (t - i) * e;\n }\n};\nclass In {\n constructor(t, e, s, n) {\n const o = e[s];\n n = Zt([t.to, n, o, t.from]);\n const r = Zt([t.from, o, n]);\n this._active = !0, this._fn = t.fn || Jr[t.type || typeof r], this._easing = ee[t.easing] || ee.linear, this._start = Math.floor(Date.now() + (t.delay || 0)), this._duration = this._total = Math.floor(t.duration), this._loop = !!t.loop, this._target = e, this._prop = s, this._from = r, this._to = n, this._promises = void 0;\n }\n active() {\n return this._active;\n }\n update(t, e, s) {\n if (this._active) {\n this._notify(!1);\n const n = this._target[this._prop], o = s - this._start, r = this._duration - o;\n this._start = s, this._duration = Math.floor(Math.max(r, t.duration)), this._total += o, this._loop = !!t.loop, this._to = Zt([t.to, e, n, t.from]), this._from = Zt([t.from, n, e]);\n }\n }\n cancel() {\n this._active && (this.tick(Date.now()), this._active = !1, this._notify(!1));\n }\n tick(t) {\n const e = t - this._start, s = this._duration, n = this._prop, o = this._from, r = this._loop, a = this._to;\n let l;\n if (this._active = o !== a && (r || e < s), !this._active) {\n this._target[n] = a, this._notify(!0);\n return;\n }\n if (e < 0) {\n this._target[n] = o;\n return;\n }\n l = e / s % 2, l = r && l > 1 ? 2 - l : l, l = this._easing(Math.min(1, Math.max(0, l))), this._target[n] = this._fn(o, a, l);\n }\n wait() {\n const t = this._promises || (this._promises = []);\n return new Promise((e, s) => {\n t.push({ res: e, rej: s });\n });\n }\n _notify(t) {\n const e = t ? \"res\" : \"rej\", s = this._promises || [];\n for (let n = 0; n < s.length; n++)\n s[n][e]();\n }\n}\nconst Qr = [\"x\", \"y\", \"borderWidth\", \"radius\", \"tension\"], ta = [\"color\", \"borderColor\", \"backgroundColor\"];\nO.set(\"animation\", {\n delay: void 0,\n duration: 1e3,\n easing: \"easeOutQuart\",\n fn: void 0,\n from: void 0,\n loop: void 0,\n to: void 0,\n type: void 0\n});\nconst ea = Object.keys(O.animation);\nO.describe(\"animation\", {\n _fallback: !1,\n _indexable: !1,\n _scriptable: (i) => i !== \"onProgress\" && i !== \"onComplete\" && i !== \"fn\"\n});\nO.set(\"animations\", {\n colors: {\n type: \"color\",\n properties: ta\n },\n numbers: {\n type: \"number\",\n properties: Qr\n }\n});\nO.describe(\"animations\", {\n _fallback: \"animation\"\n});\nO.set(\"transitions\", {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: \"transparent\"\n },\n visible: {\n type: \"boolean\",\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: \"transparent\"\n },\n visible: {\n type: \"boolean\",\n easing: \"linear\",\n fn: (i) => i | 0\n }\n }\n }\n});\nclass Ni {\n constructor(t, e) {\n this._chart = t, this._properties = /* @__PURE__ */ new Map(), this.configure(e);\n }\n configure(t) {\n if (!D(t))\n return;\n const e = this._properties;\n Object.getOwnPropertyNames(t).forEach((s) => {\n const n = t[s];\n if (!D(n))\n return;\n const o = {};\n for (const r of ea)\n o[r] = n[r];\n (z(n.properties) && n.properties || [s]).forEach((r) => {\n (r === s || !e.has(r)) && e.set(r, o);\n });\n });\n }\n _animateOptions(t, e) {\n const s = e.options, n = sa(t, s);\n if (!n)\n return [];\n const o = this._createAnimations(n, s);\n return s.$shared && ia(t.options.$animations, s).then(() => {\n t.options = s;\n }, () => {\n }), o;\n }\n _createAnimations(t, e) {\n const s = this._properties, n = [], o = t.$animations || (t.$animations = {}), r = Object.keys(e), a = Date.now();\n let l;\n for (l = r.length - 1; l >= 0; --l) {\n const c = r[l];\n if (c.charAt(0) === \"$\")\n continue;\n if (c === \"options\") {\n n.push(...this._animateOptions(t, e));\n continue;\n }\n const h = e[c];\n let d = o[c];\n const u = s.get(c);\n if (d)\n if (u && d.active()) {\n d.update(u, h, a);\n continue;\n } else\n d.cancel();\n if (!u || !u.duration) {\n t[c] = h;\n continue;\n }\n o[c] = d = new In(u, t, c, h), n.push(d);\n }\n return n;\n }\n update(t, e) {\n if (this._properties.size === 0) {\n Object.assign(t, e);\n return;\n }\n const s = this._createAnimations(t, e);\n if (s.length)\n return at.add(this._chart, s), !0;\n }\n}\nfunction ia(i, t) {\n const e = [], s = Object.keys(t);\n for (let n = 0; n < s.length; n++) {\n const o = i[s[n]];\n o && o.active() && e.push(o.wait());\n }\n return Promise.all(e);\n}\nfunction sa(i, t) {\n if (!t)\n return;\n let e = i.options;\n if (!e) {\n i.options = t;\n return;\n }\n return e.$shared && (i.options = e = Object.assign({}, e, { $shared: !1, $animations: {} })), e;\n}\nfunction ps(i, t) {\n const e = i && i.options || {}, s = e.reverse, n = e.min === void 0 ? t : 0, o = e.max === void 0 ? t : 0;\n return {\n start: s ? o : n,\n end: s ? n : o\n };\n}\nfunction na(i, t, e) {\n if (e === !1)\n return !1;\n const s = ps(i, e), n = ps(t, e);\n return {\n top: n.end,\n right: s.end,\n bottom: n.start,\n left: s.start\n };\n}\nfunction oa(i) {\n let t, e, s, n;\n return D(i) ? (t = i.top, e = i.right, s = i.bottom, n = i.left) : t = e = s = n = i, {\n top: t,\n right: e,\n bottom: s,\n left: n,\n disabled: i === !1\n };\n}\nfunction zn(i, t) {\n const e = [], s = i._getSortedDatasetMetas(t);\n let n, o;\n for (n = 0, o = s.length; n < o; ++n)\n e.push(s[n].index);\n return e;\n}\nfunction ms(i, t, e, s = {}) {\n const n = i.keys, o = s.mode === \"single\";\n let r, a, l, c;\n if (t !== null) {\n for (r = 0, a = n.length; r < a; ++r) {\n if (l = +n[r], l === e) {\n if (s.all)\n continue;\n break;\n }\n c = i.values[l], N(c) && (o || t === 0 || lt(t) === lt(c)) && (t += c);\n }\n return t;\n }\n}\nfunction ra(i) {\n const t = Object.keys(i), e = new Array(t.length);\n let s, n, o;\n for (s = 0, n = t.length; s < n; ++s)\n o = t[s], e[s] = {\n x: o,\n y: i[o]\n };\n return e;\n}\nfunction bs(i, t) {\n const e = i && i.options.stacked;\n return e || e === void 0 && t.stack !== void 0;\n}\nfunction aa(i, t, e) {\n return `${i.id}.${t.id}.${e.stack || e.type}`;\n}\nfunction la(i) {\n const { min: t, max: e, minDefined: s, maxDefined: n } = i.getUserBounds();\n return {\n min: s ? t : Number.NEGATIVE_INFINITY,\n max: n ? e : Number.POSITIVE_INFINITY\n };\n}\nfunction ca(i, t, e) {\n const s = i[t] || (i[t] = {});\n return s[e] || (s[e] = {});\n}\nfunction xs(i, t, e, s) {\n for (const n of t.getMatchingVisibleMetas(s).reverse()) {\n const o = i[n.index];\n if (e && o > 0 || !e && o < 0)\n return n.index;\n }\n return null;\n}\nfunction _s(i, t) {\n const { chart: e, _cachedMeta: s } = i, n = e._stacks || (e._stacks = {}), { iScale: o, vScale: r, index: a } = s, l = o.axis, c = r.axis, h = aa(o, r, s), d = t.length;\n let u;\n for (let f = 0; f < d; ++f) {\n const g = t[f], { [l]: p, [c]: m } = g, b = g._stacks || (g._stacks = {});\n u = b[c] = ca(n, h, p), u[a] = m, u._top = xs(u, r, !0, s.type), u._bottom = xs(u, r, !1, s.type);\n }\n}\nfunction li(i, t) {\n const e = i.scales;\n return Object.keys(e).filter((s) => e[s].axis === t).shift();\n}\nfunction ha(i, t) {\n return vt(\n i,\n {\n active: !1,\n dataset: void 0,\n datasetIndex: t,\n index: t,\n mode: \"default\",\n type: \"dataset\"\n }\n );\n}\nfunction da(i, t, e) {\n return vt(i, {\n active: !1,\n dataIndex: t,\n parsed: void 0,\n raw: void 0,\n element: e,\n index: t,\n mode: \"default\",\n type: \"data\"\n });\n}\nfunction Yt(i, t) {\n const e = i.controller.index, s = i.vScale && i.vScale.axis;\n if (s) {\n t = t || i._parsed;\n for (const n of t) {\n const o = n._stacks;\n if (!o || o[s] === void 0 || o[s][e] === void 0)\n return;\n delete o[s][e];\n }\n }\n}\nconst ci = (i) => i === \"reset\" || i === \"none\", ys = (i, t) => t ? i : Object.assign({}, i), ua = (i, t, e) => i && !t.hidden && t._stacked && { keys: zn(e, !0), values: null };\nclass it {\n constructor(t, e) {\n this.chart = t, this._ctx = t.ctx, this.index = e, this._cachedDataOpts = {}, this._cachedMeta = this.getMeta(), this._type = this._cachedMeta.type, this.options = void 0, this._parsing = !1, this._data = void 0, this._objectData = void 0, this._sharedOptions = void 0, this._drawStart = void 0, this._drawCount = void 0, this.enableOptionSharing = !1, this.supportsDecimation = !1, this.$context = void 0, this._syncList = [], this.initialize();\n }\n initialize() {\n const t = this._cachedMeta;\n this.configure(), this.linkScales(), t._stacked = bs(t.vScale, t), this.addElements();\n }\n updateIndex(t) {\n this.index !== t && Yt(this._cachedMeta), this.index = t;\n }\n linkScales() {\n const t = this.chart, e = this._cachedMeta, s = this.getDataset(), n = (d, u, f, g) => d === \"x\" ? u : d === \"r\" ? g : f, o = e.xAxisID = C(s.xAxisID, li(t, \"x\")), r = e.yAxisID = C(s.yAxisID, li(t, \"y\")), a = e.rAxisID = C(s.rAxisID, li(t, \"r\")), l = e.indexAxis, c = e.iAxisID = n(l, o, r, a), h = e.vAxisID = n(l, r, o, a);\n e.xScale = this.getScaleForId(o), e.yScale = this.getScaleForId(r), e.rScale = this.getScaleForId(a), e.iScale = this.getScaleForId(c), e.vScale = this.getScaleForId(h);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(t) {\n return this.chart.scales[t];\n }\n _getOtherScale(t) {\n const e = this._cachedMeta;\n return t === e.iScale ? e.vScale : e.iScale;\n }\n reset() {\n this._update(\"reset\");\n }\n _destroy() {\n const t = this._cachedMeta;\n this._data && Zi(this._data, this), t._stacked && Yt(t);\n }\n _dataCheck() {\n const t = this.getDataset(), e = t.data || (t.data = []), s = this._data;\n if (D(e))\n this._data = ra(e);\n else if (s !== e) {\n if (s) {\n Zi(s, this);\n const n = this._cachedMeta;\n Yt(n), n._parsed = [];\n }\n e && Object.isExtensible(e) && Eo(e, this), this._syncList = [], this._data = e;\n }\n }\n addElements() {\n const t = this._cachedMeta;\n this._dataCheck(), this.datasetElementType && (t.dataset = new this.datasetElementType());\n }\n buildOrUpdateElements(t) {\n const e = this._cachedMeta, s = this.getDataset();\n let n = !1;\n this._dataCheck();\n const o = e._stacked;\n e._stacked = bs(e.vScale, e), e.stack !== s.stack && (n = !0, Yt(e), e.stack = s.stack), this._resyncElements(t), (n || o !== e._stacked) && _s(this, e._parsed);\n }\n configure() {\n const t = this.chart.config, e = t.datasetScopeKeys(this._type), s = t.getOptionScopes(this.getDataset(), e, !0);\n this.options = t.createResolver(s, this.getContext()), this._parsing = this.options.parsing, this._cachedDataOpts = {};\n }\n parse(t, e) {\n const { _cachedMeta: s, _data: n } = this, { iScale: o, _stacked: r } = s, a = o.axis;\n let l = t === 0 && e === n.length ? !0 : s._sorted, c = t > 0 && s._parsed[t - 1], h, d, u;\n if (this._parsing === !1)\n s._parsed = n, s._sorted = !0, u = n;\n else {\n z(n[t]) ? u = this.parseArrayData(s, n, t, e) : D(n[t]) ? u = this.parseObjectData(s, n, t, e) : u = this.parsePrimitiveData(s, n, t, e);\n const f = () => d[a] === null || c && d[a] < c[a];\n for (h = 0; h < e; ++h)\n s._parsed[h + t] = d = u[h], l && (f() && (l = !1), c = d);\n s._sorted = l;\n }\n r && _s(this, u);\n }\n parsePrimitiveData(t, e, s, n) {\n const { iScale: o, vScale: r } = t, a = o.axis, l = r.axis, c = o.getLabels(), h = o === r, d = new Array(n);\n let u, f, g;\n for (u = 0, f = n; u < f; ++u)\n g = u + s, d[u] = {\n [a]: h || o.parse(c[g], g),\n [l]: r.parse(e[g], g)\n };\n return d;\n }\n parseArrayData(t, e, s, n) {\n const { xScale: o, yScale: r } = t, a = new Array(n);\n let l, c, h, d;\n for (l = 0, c = n; l < c; ++l)\n h = l + s, d = e[h], a[l] = {\n x: o.parse(d[0], h),\n y: r.parse(d[1], h)\n };\n return a;\n }\n parseObjectData(t, e, s, n) {\n const { xScale: o, yScale: r } = t, { xAxisKey: a = \"x\", yAxisKey: l = \"y\" } = this._parsing, c = new Array(n);\n let h, d, u, f;\n for (h = 0, d = n; h < d; ++h)\n u = h + s, f = e[u], c[h] = {\n x: o.parse(_t(f, a), u),\n y: r.parse(_t(f, l), u)\n };\n return c;\n }\n getParsed(t) {\n return this._cachedMeta._parsed[t];\n }\n getDataElement(t) {\n return this._cachedMeta.data[t];\n }\n applyStack(t, e, s) {\n const n = this.chart, o = this._cachedMeta, r = e[t.axis], a = {\n keys: zn(n, !0),\n values: e._stacks[t.axis]\n };\n return ms(a, r, o.index, { mode: s });\n }\n updateRangeFromParsed(t, e, s, n) {\n const o = s[e.axis];\n let r = o === null ? NaN : o;\n const a = n && s._stacks[e.axis];\n n && a && (n.values = a, r = ms(n, o, this._cachedMeta.index)), t.min = Math.min(t.min, r), t.max = Math.max(t.max, r);\n }\n getMinMax(t, e) {\n const s = this._cachedMeta, n = s._parsed, o = s._sorted && t === s.iScale, r = n.length, a = this._getOtherScale(t), l = ua(e, s, this.chart), c = { min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY }, { min: h, max: d } = la(a);\n let u, f;\n function g() {\n f = n[u];\n const p = f[a.axis];\n return !N(f[t.axis]) || h > p || d < p;\n }\n for (u = 0; u < r && !(!g() && (this.updateRangeFromParsed(c, t, f, l), o)); ++u)\n ;\n if (o) {\n for (u = r - 1; u >= 0; --u)\n if (!g()) {\n this.updateRangeFromParsed(c, t, f, l);\n break;\n }\n }\n return c;\n }\n getAllParsedValues(t) {\n const e = this._cachedMeta._parsed, s = [];\n let n, o, r;\n for (n = 0, o = e.length; n < o; ++n)\n r = e[n][t.axis], N(r) && s.push(r);\n return s;\n }\n getMaxOverflow() {\n return !1;\n }\n getLabelAndValue(t) {\n const e = this._cachedMeta, s = e.iScale, n = e.vScale, o = this.getParsed(t);\n return {\n label: s ? \"\" + s.getLabelForValue(o[s.axis]) : \"\",\n value: n ? \"\" + n.getLabelForValue(o[n.axis]) : \"\"\n };\n }\n _update(t) {\n const e = this._cachedMeta;\n this.update(t || \"default\"), e._clip = oa(C(this.options.clip, na(e.xScale, e.yScale, this.getMaxOverflow())));\n }\n update(t) {\n }\n draw() {\n const t = this._ctx, e = this.chart, s = this._cachedMeta, n = s.data || [], o = e.chartArea, r = [], a = this._drawStart || 0, l = this._drawCount || n.length - a, c = this.options.drawActiveElementsOnTop;\n let h;\n for (s.dataset && s.dataset.draw(t, o, a, l), h = a; h < a + l; ++h) {\n const d = n[h];\n d.hidden || (d.active && c ? r.push(d) : d.draw(t, o));\n }\n for (h = 0; h < r.length; ++h)\n r[h].draw(t, o);\n }\n getStyle(t, e) {\n const s = e ? \"active\" : \"default\";\n return t === void 0 && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(s) : this.resolveDataElementOptions(t || 0, s);\n }\n getContext(t, e, s) {\n const n = this.getDataset();\n let o;\n if (t >= 0 && t < this._cachedMeta.data.length) {\n const r = this._cachedMeta.data[t];\n o = r.$context || (r.$context = da(this.getContext(), t, r)), o.parsed = this.getParsed(t), o.raw = n.data[t], o.index = o.dataIndex = t;\n } else\n o = this.$context || (this.$context = ha(this.chart.getContext(), this.index)), o.dataset = n, o.index = o.datasetIndex = this.index;\n return o.active = !!e, o.mode = s, o;\n }\n resolveDatasetElementOptions(t) {\n return this._resolveElementOptions(this.datasetElementType.id, t);\n }\n resolveDataElementOptions(t, e) {\n return this._resolveElementOptions(this.dataElementType.id, e, t);\n }\n _resolveElementOptions(t, e = \"default\", s) {\n const n = e === \"active\", o = this._cachedDataOpts, r = t + \"-\" + e, a = o[r], l = this.enableOptionSharing && et(s);\n if (a)\n return ys(a, l);\n const c = this.chart.config, h = c.datasetElementScopeKeys(this._type, t), d = n ? [`${t}Hover`, \"hover\", t, \"\"] : [t, \"\"], u = c.getOptionScopes(this.getDataset(), h), f = Object.keys(O.elements[t]), g = () => this.getContext(s, n), p = c.resolveNamedOptions(u, f, g, d);\n return p.$shared && (p.$shared = l, o[r] = Object.freeze(ys(p, l))), p;\n }\n _resolveAnimations(t, e, s) {\n const n = this.chart, o = this._cachedDataOpts, r = `animation-${e}`, a = o[r];\n if (a)\n return a;\n let l;\n if (n.options.animation !== !1) {\n const h = this.chart.config, d = h.datasetAnimationScopeKeys(this._type, e), u = h.getOptionScopes(this.getDataset(), d);\n l = h.createResolver(u, this.getContext(t, s, e));\n }\n const c = new Ni(n, l && l.animations);\n return l && l._cacheable && (o[r] = Object.freeze(c)), c;\n }\n getSharedOptions(t) {\n if (t.$shared)\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, t));\n }\n includeOptions(t, e) {\n return !e || ci(t) || this.chart._animationsDisabled;\n }\n _getSharedOptions(t, e) {\n const s = this.resolveDataElementOptions(t, e), n = this._sharedOptions, o = this.getSharedOptions(s), r = this.includeOptions(e, o) || o !== n;\n return this.updateSharedOptions(o, e, s), { sharedOptions: o, includeOptions: r };\n }\n updateElement(t, e, s, n) {\n ci(n) ? Object.assign(t, s) : this._resolveAnimations(e, n).update(t, s);\n }\n updateSharedOptions(t, e, s) {\n t && !ci(e) && this._resolveAnimations(void 0, e).update(t, s);\n }\n _setStyle(t, e, s, n) {\n t.active = n;\n const o = this.getStyle(e, n);\n this._resolveAnimations(e, s, n).update(t, {\n options: !n && this.getSharedOptions(o) || o\n });\n }\n removeHoverStyle(t, e, s) {\n this._setStyle(t, s, \"active\", !1);\n }\n setHoverStyle(t, e, s) {\n this._setStyle(t, s, \"active\", !0);\n }\n _removeDatasetHoverStyle() {\n const t = this._cachedMeta.dataset;\n t && this._setStyle(t, void 0, \"active\", !1);\n }\n _setDatasetHoverStyle() {\n const t = this._cachedMeta.dataset;\n t && this._setStyle(t, void 0, \"active\", !0);\n }\n _resyncElements(t) {\n const e = this._data, s = this._cachedMeta.data;\n for (const [a, l, c] of this._syncList)\n this[a](l, c);\n this._syncList = [];\n const n = s.length, o = e.length, r = Math.min(o, n);\n r && this.parse(0, r), o > n ? this._insertElements(n, o - n, t) : o < n && this._removeElements(o, n - o);\n }\n _insertElements(t, e, s = !0) {\n const n = this._cachedMeta, o = n.data, r = t + e;\n let a;\n const l = (c) => {\n for (c.length += e, a = c.length - 1; a >= r; a--)\n c[a] = c[a - e];\n };\n for (l(o), a = t; a < r; ++a)\n o[a] = new this.dataElementType();\n this._parsing && l(n._parsed), this.parse(t, e), s && this.updateElements(o, t, e, \"reset\");\n }\n updateElements(t, e, s, n) {\n }\n _removeElements(t, e) {\n const s = this._cachedMeta;\n if (this._parsing) {\n const n = s._parsed.splice(t, e);\n s._stacked && Yt(s, n);\n }\n s.data.splice(t, e);\n }\n _sync(t) {\n if (this._parsing)\n this._syncList.push(t);\n else {\n const [e, s, n] = t;\n this[e](s, n);\n }\n this.chart._dataChanges.push([this.index, ...t]);\n }\n _onDataPush() {\n const t = arguments.length;\n this._sync([\"_insertElements\", this.getDataset().data.length - t, t]);\n }\n _onDataPop() {\n this._sync([\"_removeElements\", this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync([\"_removeElements\", 0, 1]);\n }\n _onDataSplice(t, e) {\n e && this._sync([\"_removeElements\", t, e]);\n const s = arguments.length - 2;\n s && this._sync([\"_insertElements\", t, s]);\n }\n _onDataUnshift() {\n this._sync([\"_insertElements\", 0, arguments.length]);\n }\n}\nit.defaults = {};\nit.prototype.datasetElementType = null;\nit.prototype.dataElementType = null;\nfunction fa(i, t) {\n if (!i._cache.$bar) {\n const e = i.getMatchingVisibleMetas(t);\n let s = [];\n for (let n = 0, o = e.length; n < o; n++)\n s = s.concat(e[n].controller.getAllParsedValues(i));\n i._cache.$bar = un(s.sort((n, o) => n - o));\n }\n return i._cache.$bar;\n}\nfunction ga(i) {\n const t = i.iScale, e = fa(t, i.type);\n let s = t._length, n, o, r, a;\n const l = () => {\n r === 32767 || r === -32768 || (et(a) && (s = Math.min(s, Math.abs(r - a) || s)), a = r);\n };\n for (n = 0, o = e.length; n < o; ++n)\n r = t.getPixelForValue(e[n]), l();\n for (a = void 0, n = 0, o = t.ticks.length; n < o; ++n)\n r = t.getPixelForTick(n), l();\n return s;\n}\nfunction pa(i, t, e, s) {\n const n = e.barThickness;\n let o, r;\n return T(n) ? (o = t.min * e.categoryPercentage, r = e.barPercentage) : (o = n * s, r = 1), {\n chunk: o / s,\n ratio: r,\n start: t.pixels[i] - o / 2\n };\n}\nfunction ma(i, t, e, s) {\n const n = t.pixels, o = n[i];\n let r = i > 0 ? n[i - 1] : null, a = i < n.length - 1 ? n[i + 1] : null;\n const l = e.categoryPercentage;\n r === null && (r = o - (a === null ? t.end - t.start : a - o)), a === null && (a = o + o - r);\n const c = o - (o - Math.min(r, a)) / 2 * l;\n return {\n chunk: Math.abs(a - r) / 2 * l / s,\n ratio: e.barPercentage,\n start: c\n };\n}\nfunction ba(i, t, e, s) {\n const n = e.parse(i[0], s), o = e.parse(i[1], s), r = Math.min(n, o), a = Math.max(n, o);\n let l = r, c = a;\n Math.abs(r) > Math.abs(a) && (l = a, c = r), t[e.axis] = c, t._custom = {\n barStart: l,\n barEnd: c,\n start: n,\n end: o,\n min: r,\n max: a\n };\n}\nfunction Bn(i, t, e, s) {\n return z(i) ? ba(i, t, e, s) : t[e.axis] = e.parse(i, s), t;\n}\nfunction vs(i, t, e, s) {\n const n = i.iScale, o = i.vScale, r = n.getLabels(), a = n === o, l = [];\n let c, h, d, u;\n for (c = e, h = e + s; c < h; ++c)\n u = t[c], d = {}, d[n.axis] = a || n.parse(r[c], c), l.push(Bn(u, d, o, c));\n return l;\n}\nfunction hi(i) {\n return i && i.barStart !== void 0 && i.barEnd !== void 0;\n}\nfunction xa(i, t, e) {\n return i !== 0 ? lt(i) : (t.isHorizontal() ? 1 : -1) * (t.min >= e ? 1 : -1);\n}\nfunction _a(i) {\n let t, e, s, n, o;\n return i.horizontal ? (t = i.base > i.x, e = \"left\", s = \"right\") : (t = i.base < i.y, e = \"bottom\", s = \"top\"), t ? (n = \"end\", o = \"start\") : (n = \"start\", o = \"end\"), { start: e, end: s, reverse: t, top: n, bottom: o };\n}\nfunction ya(i, t, e, s) {\n let n = t.borderSkipped;\n const o = {};\n if (!n) {\n i.borderSkipped = o;\n return;\n }\n if (n === !0) {\n i.borderSkipped = { top: !0, right: !0, bottom: !0, left: !0 };\n return;\n }\n const { start: r, end: a, reverse: l, top: c, bottom: h } = _a(i);\n n === \"middle\" && e && (i.enableBorderRadius = !0, (e._top || 0) === s ? n = c : (e._bottom || 0) === s ? n = h : (o[Ms(h, r, a, l)] = !0, n = c)), o[Ms(n, r, a, l)] = !0, i.borderSkipped = o;\n}\nfunction Ms(i, t, e, s) {\n return s ? (i = va(i, t, e), i = ks(i, e, t)) : i = ks(i, t, e), i;\n}\nfunction va(i, t, e) {\n return i === t ? e : i === e ? t : i;\n}\nfunction ks(i, t, e) {\n return i === \"start\" ? t : i === \"end\" ? e : i;\n}\nfunction Ma(i, { inflateAmount: t }, e) {\n i.inflateAmount = t === \"auto\" ? e === 1 ? 0.33 : 0 : t;\n}\nclass ue extends it {\n parsePrimitiveData(t, e, s, n) {\n return vs(t, e, s, n);\n }\n parseArrayData(t, e, s, n) {\n return vs(t, e, s, n);\n }\n parseObjectData(t, e, s, n) {\n const { iScale: o, vScale: r } = t, { xAxisKey: a = \"x\", yAxisKey: l = \"y\" } = this._parsing, c = o.axis === \"x\" ? a : l, h = r.axis === \"x\" ? a : l, d = [];\n let u, f, g, p;\n for (u = s, f = s + n; u < f; ++u)\n p = e[u], g = {}, g[o.axis] = o.parse(_t(p, c), u), d.push(Bn(_t(p, h), g, r, u));\n return d;\n }\n updateRangeFromParsed(t, e, s, n) {\n super.updateRangeFromParsed(t, e, s, n);\n const o = s._custom;\n o && e === this._cachedMeta.vScale && (t.min = Math.min(t.min, o.min), t.max = Math.max(t.max, o.max));\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(t) {\n const e = this._cachedMeta, { iScale: s, vScale: n } = e, o = this.getParsed(t), r = o._custom, a = hi(r) ? \"[\" + r.start + \", \" + r.end + \"]\" : \"\" + n.getLabelForValue(o[n.axis]);\n return {\n label: \"\" + s.getLabelForValue(o[s.axis]),\n value: a\n };\n }\n initialize() {\n this.enableOptionSharing = !0, super.initialize();\n const t = this._cachedMeta;\n t.stack = this.getDataset().stack;\n }\n update(t) {\n const e = this._cachedMeta;\n this.updateElements(e.data, 0, e.data.length, t);\n }\n updateElements(t, e, s, n) {\n const o = n === \"reset\", { index: r, _cachedMeta: { vScale: a } } = this, l = a.getBasePixel(), c = a.isHorizontal(), h = this._getRuler(), { sharedOptions: d, includeOptions: u } = this._getSharedOptions(e, n);\n for (let f = e; f < e + s; f++) {\n const g = this.getParsed(f), p = o || T(g[a.axis]) ? { base: l, head: l } : this._calculateBarValuePixels(f), m = this._calculateBarIndexPixels(f, h), b = (g._stacks || {})[a.axis], x = {\n horizontal: c,\n base: p.base,\n enableBorderRadius: !b || hi(g._custom) || r === b._top || r === b._bottom,\n x: c ? p.head : m.center,\n y: c ? m.center : p.head,\n height: c ? m.size : Math.abs(p.size),\n width: c ? Math.abs(p.size) : m.size\n };\n u && (x.options = d || this.resolveDataElementOptions(f, t[f].active ? \"active\" : n));\n const v = x.options || t[f].options;\n ya(x, v, b, r), Ma(x, v, h.ratio), this.updateElement(t[f], f, x, n);\n }\n }\n _getStacks(t, e) {\n const { iScale: s } = this._cachedMeta, n = s.getMatchingVisibleMetas(this._type).filter((l) => l.controller.options.grouped), o = s.options.stacked, r = [], a = (l) => {\n const c = l.controller.getParsed(e), h = c && c[l.vScale.axis];\n if (T(h) || isNaN(h))\n return !0;\n };\n for (const l of n)\n if (!(e !== void 0 && a(l)) && ((o === !1 || r.indexOf(l.stack) === -1 || o === void 0 && l.stack === void 0) && r.push(l.stack), l.index === t))\n break;\n return r.length || r.push(void 0), r;\n }\n _getStackCount(t) {\n return this._getStacks(void 0, t).length;\n }\n _getStackIndex(t, e, s) {\n const n = this._getStacks(t, s), o = e !== void 0 ? n.indexOf(e) : -1;\n return o === -1 ? n.length - 1 : o;\n }\n _getRuler() {\n const t = this.options, e = this._cachedMeta, s = e.iScale, n = [];\n let o, r;\n for (o = 0, r = e.data.length; o < r; ++o)\n n.push(s.getPixelForValue(this.getParsed(o)[s.axis], o));\n const a = t.barThickness;\n return {\n min: a || ga(e),\n pixels: n,\n start: s._startPixel,\n end: s._endPixel,\n stackCount: this._getStackCount(),\n scale: s,\n grouped: t.grouped,\n ratio: a ? 1 : t.categoryPercentage * t.barPercentage\n };\n }\n _calculateBarValuePixels(t) {\n const { _cachedMeta: { vScale: e, _stacked: s }, options: { base: n, minBarLength: o } } = this, r = n || 0, a = this.getParsed(t), l = a._custom, c = hi(l);\n let h = a[e.axis], d = 0, u = s ? this.applyStack(e, a, s) : h, f, g;\n u !== h && (d = u - h, u = h), c && (h = l.barStart, u = l.barEnd - l.barStart, h !== 0 && lt(h) !== lt(l.barEnd) && (d = 0), d += h);\n const p = !T(n) && !c ? n : d;\n let m = e.getPixelForValue(p);\n if (this.chart.getDataVisibility(t) ? f = e.getPixelForValue(d + u) : f = m, g = f - m, Math.abs(g) < o) {\n g = xa(g, e, r) * o, h === r && (m -= g / 2);\n const b = e.getPixelForDecimal(0), x = e.getPixelForDecimal(1), v = Math.min(b, x), y = Math.max(b, x);\n m = Math.max(Math.min(m, y), v), f = m + g;\n }\n if (m === e.getPixelForValue(r)) {\n const b = lt(g) * e.getLineWidthForValue(r) / 2;\n m += b, g -= b;\n }\n return {\n size: g,\n base: m,\n head: f,\n center: f + g / 2\n };\n }\n _calculateBarIndexPixels(t, e) {\n const s = e.scale, n = this.options, o = n.skipNull, r = C(n.maxBarThickness, 1 / 0);\n let a, l;\n if (e.grouped) {\n const c = o ? this._getStackCount(t) : e.stackCount, h = n.barThickness === \"flex\" ? ma(t, e, n, c) : pa(t, e, n, c), d = this._getStackIndex(this.index, this._cachedMeta.stack, o ? t : void 0);\n a = h.start + h.chunk * d + h.chunk / 2, l = Math.min(r, h.chunk * h.ratio);\n } else\n a = s.getPixelForValue(this.getParsed(t)[s.axis], t), l = Math.min(r, e.min * e.ratio);\n return {\n base: a - l / 2,\n head: a + l / 2,\n center: a,\n size: l\n };\n }\n draw() {\n const t = this._cachedMeta, e = t.vScale, s = t.data, n = s.length;\n let o = 0;\n for (; o < n; ++o)\n this.getParsed(o)[e.axis] !== null && s[o].draw(this._ctx);\n }\n}\nue.id = \"bar\";\nue.defaults = {\n datasetElementType: !1,\n dataElementType: \"bar\",\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: !0,\n animations: {\n numbers: {\n type: \"number\",\n properties: [\"x\", \"y\", \"base\", \"width\", \"height\"]\n }\n }\n};\nue.overrides = {\n scales: {\n _index_: {\n type: \"category\",\n offset: !0,\n grid: {\n offset: !0\n }\n },\n _value_: {\n type: \"linear\",\n beginAtZero: !0\n }\n }\n};\nclass fe extends it {\n initialize() {\n this.enableOptionSharing = !0, super.initialize();\n }\n parsePrimitiveData(t, e, s, n) {\n const o = super.parsePrimitiveData(t, e, s, n);\n for (let r = 0; r < o.length; r++)\n o[r]._custom = this.resolveDataElementOptions(r + s).radius;\n return o;\n }\n parseArrayData(t, e, s, n) {\n const o = super.parseArrayData(t, e, s, n);\n for (let r = 0; r < o.length; r++) {\n const a = e[s + r];\n o[r]._custom = C(a[2], this.resolveDataElementOptions(r + s).radius);\n }\n return o;\n }\n parseObjectData(t, e, s, n) {\n const o = super.parseObjectData(t, e, s, n);\n for (let r = 0; r < o.length; r++) {\n const a = e[s + r];\n o[r]._custom = C(a && a.r && +a.r, this.resolveDataElementOptions(r + s).radius);\n }\n return o;\n }\n getMaxOverflow() {\n const t = this._cachedMeta.data;\n let e = 0;\n for (let s = t.length - 1; s >= 0; --s)\n e = Math.max(e, t[s].size(this.resolveDataElementOptions(s)) / 2);\n return e > 0 && e;\n }\n getLabelAndValue(t) {\n const e = this._cachedMeta, { xScale: s, yScale: n } = e, o = this.getParsed(t), r = s.getLabelForValue(o.x), a = n.getLabelForValue(o.y), l = o._custom;\n return {\n label: e.label,\n value: \"(\" + r + \", \" + a + (l ? \", \" + l : \"\") + \")\"\n };\n }\n update(t) {\n const e = this._cachedMeta.data;\n this.updateElements(e, 0, e.length, t);\n }\n updateElements(t, e, s, n) {\n const o = n === \"reset\", { iScale: r, vScale: a } = this._cachedMeta, { sharedOptions: l, includeOptions: c } = this._getSharedOptions(e, n), h = r.axis, d = a.axis;\n for (let u = e; u < e + s; u++) {\n const f = t[u], g = !o && this.getParsed(u), p = {}, m = p[h] = o ? r.getPixelForDecimal(0.5) : r.getPixelForValue(g[h]), b = p[d] = o ? a.getBasePixel() : a.getPixelForValue(g[d]);\n p.skip = isNaN(m) || isNaN(b), c && (p.options = l || this.resolveDataElementOptions(u, f.active ? \"active\" : n), o && (p.options.radius = 0)), this.updateElement(f, u, p, n);\n }\n }\n resolveDataElementOptions(t, e) {\n const s = this.getParsed(t);\n let n = super.resolveDataElementOptions(t, e);\n n.$shared && (n = Object.assign({}, n, { $shared: !1 }));\n const o = n.radius;\n return e !== \"active\" && (n.radius = 0), n.radius += C(s && s._custom, o), n;\n }\n}\nfe.id = \"bubble\";\nfe.defaults = {\n datasetElementType: !1,\n dataElementType: \"point\",\n animations: {\n numbers: {\n type: \"number\",\n properties: [\"x\", \"y\", \"borderWidth\", \"radius\"]\n }\n }\n};\nfe.overrides = {\n scales: {\n x: {\n type: \"linear\"\n },\n y: {\n type: \"linear\"\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return \"\";\n }\n }\n }\n }\n};\nfunction ka(i, t, e) {\n let s = 1, n = 1, o = 0, r = 0;\n if (t < F) {\n const a = i, l = a + t, c = Math.cos(a), h = Math.sin(a), d = Math.cos(l), u = Math.sin(l), f = (v, y, _) => oe(v, a, l, !0) ? 1 : Math.max(y, y * e, _, _ * e), g = (v, y, _) => oe(v, a, l, !0) ? -1 : Math.min(y, y * e, _, _ * e), p = f(0, c, d), m = f(V, h, u), b = g(B, c, d), x = g(B + V, h, u);\n s = (p - b) / 2, n = (m - x) / 2, o = -(p + b) / 2, r = -(m + x) / 2;\n }\n return { ratioX: s, ratioY: n, offsetX: o, offsetY: r };\n}\nclass Lt extends it {\n constructor(t, e) {\n super(t, e), this.enableOptionSharing = !0, this.innerRadius = void 0, this.outerRadius = void 0, this.offsetX = void 0, this.offsetY = void 0;\n }\n linkScales() {\n }\n parse(t, e) {\n const s = this.getDataset().data, n = this._cachedMeta;\n if (this._parsing === !1)\n n._parsed = s;\n else {\n let o = (l) => +s[l];\n if (D(s[t])) {\n const { key: l = \"value\" } = this._parsing;\n o = (c) => +_t(s[c], l);\n }\n let r, a;\n for (r = t, a = t + e; r < a; ++r)\n n._parsed[r] = o(r);\n }\n }\n _getRotation() {\n return nt(this.options.rotation - 90);\n }\n _getCircumference() {\n return nt(this.options.circumference);\n }\n _getRotationExtents() {\n let t = F, e = -F;\n for (let s = 0; s < this.chart.data.datasets.length; ++s)\n if (this.chart.isDatasetVisible(s)) {\n const n = this.chart.getDatasetMeta(s).controller, o = n._getRotation(), r = n._getCircumference();\n t = Math.min(t, o), e = Math.max(e, o + r);\n }\n return {\n rotation: t,\n circumference: e - t\n };\n }\n update(t) {\n const e = this.chart, { chartArea: s } = e, n = this._cachedMeta, o = n.data, r = this.getMaxBorderWidth() + this.getMaxOffset(o) + this.options.spacing, a = Math.max((Math.min(s.width, s.height) - r) / 2, 0), l = Math.min(yo(this.options.cutout, a), 1), c = this._getRingWeight(this.index), { circumference: h, rotation: d } = this._getRotationExtents(), { ratioX: u, ratioY: f, offsetX: g, offsetY: p } = ka(d, h, l), m = (s.width - r) / u, b = (s.height - r) / f, x = Math.max(Math.min(m, b) / 2, 0), v = an(this.options.radius, x), y = Math.max(v * l, 0), _ = (v - y) / this._getVisibleDatasetWeightTotal();\n this.offsetX = g * v, this.offsetY = p * v, n.total = this.calculateTotal(), this.outerRadius = v - _ * this._getRingWeightOffset(this.index), this.innerRadius = Math.max(this.outerRadius - _ * c, 0), this.updateElements(o, 0, o.length, t);\n }\n _circumference(t, e) {\n const s = this.options, n = this._cachedMeta, o = this._getCircumference();\n return e && s.animation.animateRotate || !this.chart.getDataVisibility(t) || n._parsed[t] === null || n.data[t].hidden ? 0 : this.calculateCircumference(n._parsed[t] * o / F);\n }\n updateElements(t, e, s, n) {\n const o = n === \"reset\", r = this.chart, a = r.chartArea, c = r.options.animation, h = (a.left + a.right) / 2, d = (a.top + a.bottom) / 2, u = o && c.animateScale, f = u ? 0 : this.innerRadius, g = u ? 0 : this.outerRadius, { sharedOptions: p, includeOptions: m } = this._getSharedOptions(e, n);\n let b = this._getRotation(), x;\n for (x = 0; x < e; ++x)\n b += this._circumference(x, o);\n for (x = e; x < e + s; ++x) {\n const v = this._circumference(x, o), y = t[x], _ = {\n x: h + this.offsetX,\n y: d + this.offsetY,\n startAngle: b,\n endAngle: b + v,\n circumference: v,\n outerRadius: g,\n innerRadius: f\n };\n m && (_.options = p || this.resolveDataElementOptions(x, y.active ? \"active\" : n)), b += v, this.updateElement(y, x, _, n);\n }\n }\n calculateTotal() {\n const t = this._cachedMeta, e = t.data;\n let s = 0, n;\n for (n = 0; n < e.length; n++) {\n const o = t._parsed[n];\n o !== null && !isNaN(o) && this.chart.getDataVisibility(n) && !e[n].hidden && (s += Math.abs(o));\n }\n return s;\n }\n calculateCircumference(t) {\n const e = this._cachedMeta.total;\n return e > 0 && !isNaN(t) ? F * (Math.abs(t) / e) : 0;\n }\n getLabelAndValue(t) {\n const e = this._cachedMeta, s = this.chart, n = s.data.labels || [], o = de(e._parsed[t], s.options.locale);\n return {\n label: n[t] || \"\",\n value: o\n };\n }\n getMaxBorderWidth(t) {\n let e = 0;\n const s = this.chart;\n let n, o, r, a, l;\n if (!t) {\n for (n = 0, o = s.data.datasets.length; n < o; ++n)\n if (s.isDatasetVisible(n)) {\n r = s.getDatasetMeta(n), t = r.data, a = r.controller;\n break;\n }\n }\n if (!t)\n return 0;\n for (n = 0, o = t.length; n < o; ++n)\n l = a.resolveDataElementOptions(n), l.borderAlign !== \"inner\" && (e = Math.max(e, l.borderWidth || 0, l.hoverBorderWidth || 0));\n return e;\n }\n getMaxOffset(t) {\n let e = 0;\n for (let s = 0, n = t.length; s < n; ++s) {\n const o = this.resolveDataElementOptions(s);\n e = Math.max(e, o.offset || 0, o.hoverOffset || 0);\n }\n return e;\n }\n _getRingWeightOffset(t) {\n let e = 0;\n for (let s = 0; s < t; ++s)\n this.chart.isDatasetVisible(s) && (e += this._getRingWeight(s));\n return e;\n }\n _getRingWeight(t) {\n return Math.max(C(this.chart.data.datasets[t].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nLt.id = \"doughnut\";\nLt.defaults = {\n datasetElementType: !1,\n dataElementType: \"arc\",\n animation: {\n animateRotate: !0,\n animateScale: !1\n },\n animations: {\n numbers: {\n type: \"number\",\n properties: [\"circumference\", \"endAngle\", \"innerRadius\", \"outerRadius\", \"startAngle\", \"x\", \"y\", \"offset\", \"borderWidth\", \"spacing\"]\n }\n },\n cutout: \"50%\",\n rotation: 0,\n circumference: 360,\n radius: \"100%\",\n spacing: 0,\n indexAxis: \"r\"\n};\nLt.descriptors = {\n _scriptable: (i) => i !== \"spacing\",\n _indexable: (i) => i !== \"spacing\"\n};\nLt.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(i) {\n const t = i.data;\n if (t.labels.length && t.datasets.length) {\n const { labels: { pointStyle: e } } = i.legend.options;\n return t.labels.map((s, n) => {\n const r = i.getDatasetMeta(0).controller.getStyle(n);\n return {\n text: s,\n fillStyle: r.backgroundColor,\n strokeStyle: r.borderColor,\n lineWidth: r.borderWidth,\n pointStyle: e,\n hidden: !i.getDataVisibility(n),\n index: n\n };\n });\n }\n return [];\n }\n },\n onClick(i, t, e) {\n e.chart.toggleDataVisibility(t.index), e.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return \"\";\n },\n label(i) {\n let t = i.label;\n const e = \": \" + i.formattedValue;\n return z(t) ? (t = t.slice(), t[0] += e) : t += e, t;\n }\n }\n }\n }\n};\nclass ge extends it {\n initialize() {\n this.enableOptionSharing = !0, this.supportsDecimation = !0, super.initialize();\n }\n update(t) {\n const e = this._cachedMeta, { dataset: s, data: n = [], _dataset: o } = e, r = this.chart._animationsDisabled;\n let { start: a, count: l } = pn(e, n, r);\n this._drawStart = a, this._drawCount = l, mn(e) && (a = 0, l = n.length), s._chart = this.chart, s._datasetIndex = this.index, s._decimated = !!o._decimated, s.points = n;\n const c = this.resolveDatasetElementOptions(t);\n this.options.showLine || (c.borderWidth = 0), c.segment = this.options.segment, this.updateElement(s, void 0, {\n animated: !r,\n options: c\n }, t), this.updateElements(n, a, l, t);\n }\n updateElements(t, e, s, n) {\n const o = n === \"reset\", { iScale: r, vScale: a, _stacked: l, _dataset: c } = this._cachedMeta, { sharedOptions: h, includeOptions: d } = this._getSharedOptions(e, n), u = r.axis, f = a.axis, { spanGaps: g, segment: p } = this.options, m = Bt(g) ? g : Number.POSITIVE_INFINITY, b = this.chart._animationsDisabled || o || n === \"none\";\n let x = e > 0 && this.getParsed(e - 1);\n for (let v = e; v < e + s; ++v) {\n const y = t[v], _ = this.getParsed(v), M = b ? y : {}, k = T(_[f]), S = M[u] = r.getPixelForValue(_[u], v), w = M[f] = o || k ? a.getBasePixel() : a.getPixelForValue(l ? this.applyStack(a, _, l) : _[f], v);\n M.skip = isNaN(S) || isNaN(w) || k, M.stop = v > 0 && Math.abs(_[u] - x[u]) > m, p && (M.parsed = _, M.raw = c.data[v]), d && (M.options = h || this.resolveDataElementOptions(v, y.active ? \"active\" : n)), b || this.updateElement(y, v, M, n), x = _;\n }\n }\n getMaxOverflow() {\n const t = this._cachedMeta, e = t.dataset, s = e.options && e.options.borderWidth || 0, n = t.data || [];\n if (!n.length)\n return s;\n const o = n[0].size(this.resolveDataElementOptions(0)), r = n[n.length - 1].size(this.resolveDataElementOptions(n.length - 1));\n return Math.max(s, o, r) / 2;\n }\n draw() {\n const t = this._cachedMeta;\n t.dataset.updateControlPoints(this.chart.chartArea, t.iScale.axis), super.draw();\n }\n}\nge.id = \"line\";\nge.defaults = {\n datasetElementType: \"line\",\n dataElementType: \"point\",\n showLine: !0,\n spanGaps: !1\n};\nge.overrides = {\n scales: {\n _index_: {\n type: \"category\"\n },\n _value_: {\n type: \"linear\"\n }\n }\n};\nclass pe extends it {\n constructor(t, e) {\n super(t, e), this.innerRadius = void 0, this.outerRadius = void 0;\n }\n getLabelAndValue(t) {\n const e = this._cachedMeta, s = this.chart, n = s.data.labels || [], o = de(e._parsed[t].r, s.options.locale);\n return {\n label: n[t] || \"\",\n value: o\n };\n }\n parseObjectData(t, e, s, n) {\n return Dn.bind(this)(t, e, s, n);\n }\n update(t) {\n const e = this._cachedMeta.data;\n this._updateRadius(), this.updateElements(e, 0, e.length, t);\n }\n getMinMax() {\n const t = this._cachedMeta, e = { min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY };\n return t.data.forEach((s, n) => {\n const o = this.getParsed(n).r;\n !isNaN(o) && this.chart.getDataVisibility(n) && (o < e.min && (e.min = o), o > e.max && (e.max = o));\n }), e;\n }\n _updateRadius() {\n const t = this.chart, e = t.chartArea, s = t.options, n = Math.min(e.right - e.left, e.bottom - e.top), o = Math.max(n / 2, 0), r = Math.max(s.cutoutPercentage ? o / 100 * s.cutoutPercentage : 1, 0), a = (o - r) / t.getVisibleDatasetCount();\n this.outerRadius = o - a * this.index, this.innerRadius = this.outerRadius - a;\n }\n updateElements(t, e, s, n) {\n const o = n === \"reset\", r = this.chart, l = r.options.animation, c = this._cachedMeta.rScale, h = c.xCenter, d = c.yCenter, u = c.getIndexAngle(0) - 0.5 * B;\n let f = u, g;\n const p = 360 / this.countVisibleElements();\n for (g = 0; g < e; ++g)\n f += this._computeAngle(g, n, p);\n for (g = e; g < e + s; g++) {\n const m = t[g];\n let b = f, x = f + this._computeAngle(g, n, p), v = r.getDataVisibility(g) ? c.getDistanceFromCenterForValue(this.getParsed(g).r) : 0;\n f = x, o && (l.animateScale && (v = 0), l.animateRotate && (b = x = u));\n const y = {\n x: h,\n y: d,\n innerRadius: 0,\n outerRadius: v,\n startAngle: b,\n endAngle: x,\n options: this.resolveDataElementOptions(g, m.active ? \"active\" : n)\n };\n this.updateElement(m, g, y, n);\n }\n }\n countVisibleElements() {\n const t = this._cachedMeta;\n let e = 0;\n return t.data.forEach((s, n) => {\n !isNaN(this.getParsed(n).r) && this.chart.getDataVisibility(n) && e++;\n }), e;\n }\n _computeAngle(t, e, s) {\n return this.chart.getDataVisibility(t) ? nt(this.resolveDataElementOptions(t, e).angle || s) : 0;\n }\n}\npe.id = \"polarArea\";\npe.defaults = {\n dataElementType: \"arc\",\n animation: {\n animateRotate: !0,\n animateScale: !0\n },\n animations: {\n numbers: {\n type: \"number\",\n properties: [\"x\", \"y\", \"startAngle\", \"endAngle\", \"innerRadius\", \"outerRadius\"]\n }\n },\n indexAxis: \"r\",\n startAngle: 0\n};\npe.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(i) {\n const t = i.data;\n if (t.labels.length && t.datasets.length) {\n const { labels: { pointStyle: e } } = i.legend.options;\n return t.labels.map((s, n) => {\n const r = i.getDatasetMeta(0).controller.getStyle(n);\n return {\n text: s,\n fillStyle: r.backgroundColor,\n strokeStyle: r.borderColor,\n lineWidth: r.borderWidth,\n pointStyle: e,\n hidden: !i.getDataVisibility(n),\n index: n\n };\n });\n }\n return [];\n }\n },\n onClick(i, t, e) {\n e.chart.toggleDataVisibility(t.index), e.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return \"\";\n },\n label(i) {\n return i.chart.data.labels[i.dataIndex] + \": \" + i.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: \"radialLinear\",\n angleLines: {\n display: !1\n },\n beginAtZero: !0,\n grid: {\n circular: !0\n },\n pointLabels: {\n display: !1\n },\n startAngle: 0\n }\n }\n};\nclass qe extends Lt {\n}\nqe.id = \"pie\";\nqe.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: \"100%\"\n};\nclass me extends it {\n getLabelAndValue(t) {\n const e = this._cachedMeta.vScale, s = this.getParsed(t);\n return {\n label: e.getLabels()[t],\n value: \"\" + e.getLabelForValue(s[e.axis])\n };\n }\n parseObjectData(t, e, s, n) {\n return Dn.bind(this)(t, e, s, n);\n }\n update(t) {\n const e = this._cachedMeta, s = e.dataset, n = e.data || [], o = e.iScale.getLabels();\n if (s.points = n, t !== \"resize\") {\n const r = this.resolveDatasetElementOptions(t);\n this.options.showLine || (r.borderWidth = 0);\n const a = {\n _loop: !0,\n _fullLoop: o.length === n.length,\n options: r\n };\n this.updateElement(s, void 0, a, t);\n }\n this.updateElements(n, 0, n.length, t);\n }\n updateElements(t, e, s, n) {\n const o = this._cachedMeta.rScale, r = n === \"reset\";\n for (let a = e; a < e + s; a++) {\n const l = t[a], c = this.resolveDataElementOptions(a, l.active ? \"active\" : n), h = o.getPointPositionForValue(a, this.getParsed(a).r), d = r ? o.xCenter : h.x, u = r ? o.yCenter : h.y, f = {\n x: d,\n y: u,\n angle: h.angle,\n skip: isNaN(d) || isNaN(u),\n options: c\n };\n this.updateElement(l, a, f, n);\n }\n }\n}\nme.id = \"radar\";\nme.defaults = {\n datasetElementType: \"line\",\n dataElementType: \"point\",\n indexAxis: \"r\",\n showLine: !0,\n elements: {\n line: {\n fill: \"start\"\n }\n }\n};\nme.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: \"radialLinear\"\n }\n }\n};\nclass st {\n constructor() {\n this.x = void 0, this.y = void 0, this.active = !1, this.options = void 0, this.$animations = void 0;\n }\n tooltipPosition(t) {\n const { x: e, y: s } = this.getProps([\"x\", \"y\"], t);\n return { x: e, y: s };\n }\n hasValue() {\n return Bt(this.x) && Bt(this.y);\n }\n getProps(t, e) {\n const s = this.$animations;\n if (!e || !s)\n return this;\n const n = {};\n return t.forEach((o) => {\n n[o] = s[o] && s[o].active() ? s[o]._to : this[o];\n }), n;\n }\n}\nst.defaults = {};\nst.defaultRoutes = void 0;\nconst Vn = {\n values(i) {\n return z(i) ? i : \"\" + i;\n },\n numeric(i, t, e) {\n if (i === 0)\n return \"0\";\n const s = this.chart.options.locale;\n let n, o = i;\n if (e.length > 1) {\n const c = Math.max(Math.abs(e[0].value), Math.abs(e[e.length - 1].value));\n (c < 1e-4 || c > 1e15) && (n = \"scientific\"), o = wa(i, e);\n }\n const r = tt(Math.abs(o)), a = Math.max(Math.min(-1 * Math.floor(r), 20), 0), l = { notation: n, minimumFractionDigits: a, maximumFractionDigits: a };\n return Object.assign(l, this.options.ticks.format), de(i, s, l);\n },\n logarithmic(i, t, e) {\n if (i === 0)\n return \"0\";\n const s = i / Math.pow(10, Math.floor(tt(i)));\n return s === 1 || s === 2 || s === 5 ? Vn.numeric.call(this, i, t, e) : \"\";\n }\n};\nfunction wa(i, t) {\n let e = t.length > 3 ? t[2].value - t[1].value : t[1].value - t[0].value;\n return Math.abs(e) >= 1 && i !== Math.floor(i) && (e = i - Math.floor(i)), e;\n}\nvar be = { formatters: Vn };\nO.set(\"scale\", {\n display: !0,\n offset: !1,\n reverse: !1,\n beginAtZero: !1,\n bounds: \"ticks\",\n grace: 0,\n grid: {\n display: !0,\n lineWidth: 1,\n drawBorder: !0,\n drawOnChartArea: !0,\n drawTicks: !0,\n tickLength: 8,\n tickWidth: (i, t) => t.lineWidth,\n tickColor: (i, t) => t.color,\n offset: !1,\n borderDash: [],\n borderDashOffset: 0,\n borderWidth: 1\n },\n title: {\n display: !1,\n text: \"\",\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: !1,\n textStrokeWidth: 0,\n textStrokeColor: \"\",\n padding: 3,\n display: !0,\n autoSkip: !0,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: be.formatters.values,\n minor: {},\n major: {},\n align: \"center\",\n crossAlign: \"near\",\n showLabelBackdrop: !1,\n backdropColor: \"rgba(255, 255, 255, 0.75)\",\n backdropPadding: 2\n }\n});\nO.route(\"scale.ticks\", \"color\", \"\", \"color\");\nO.route(\"scale.grid\", \"color\", \"\", \"borderColor\");\nO.route(\"scale.grid\", \"borderColor\", \"\", \"borderColor\");\nO.route(\"scale.title\", \"color\", \"\", \"color\");\nO.describe(\"scale\", {\n _fallback: !1,\n _scriptable: (i) => !i.startsWith(\"before\") && !i.startsWith(\"after\") && i !== \"callback\" && i !== \"parser\",\n _indexable: (i) => i !== \"borderDash\" && i !== \"tickBorderDash\"\n});\nO.describe(\"scales\", {\n _fallback: \"scale\"\n});\nO.describe(\"scale.ticks\", {\n _scriptable: (i) => i !== \"backdropPadding\" && i !== \"callback\",\n _indexable: (i) => i !== \"backdropPadding\"\n});\nfunction Sa(i, t) {\n const e = i.options.ticks, s = e.maxTicksLimit || Pa(i), n = e.major.enabled ? Da(t) : [], o = n.length, r = n[0], a = n[o - 1], l = [];\n if (o > s)\n return Oa(t, l, n, o / s), l;\n const c = Ca(n, t, s);\n if (o > 0) {\n let h, d;\n const u = o > 1 ? Math.round((a - r) / (o - 1)) : null;\n for (Oe(t, l, c, T(u) ? 0 : r - u, r), h = 0, d = o - 1; h < d; h++)\n Oe(t, l, c, n[h], n[h + 1]);\n return Oe(t, l, c, a, T(u) ? t.length : a + u), l;\n }\n return Oe(t, l, c), l;\n}\nfunction Pa(i) {\n const t = i.options.offset, e = i._tickSize(), s = i._length / e + (t ? 0 : 1), n = i._maxLength / e;\n return Math.floor(Math.min(s, n));\n}\nfunction Ca(i, t, e) {\n const s = Aa(i), n = t.length / e;\n if (!s)\n return Math.max(n, 1);\n const o = Do(s);\n for (let r = 0, a = o.length - 1; r < a; r++) {\n const l = o[r];\n if (l > n)\n return l;\n }\n return Math.max(n, 1);\n}\nfunction Da(i) {\n const t = [];\n let e, s;\n for (e = 0, s = i.length; e < s; e++)\n i[e].major && t.push(e);\n return t;\n}\nfunction Oa(i, t, e, s) {\n let n = 0, o = e[0], r;\n for (s = Math.ceil(s), r = 0; r < i.length; r++)\n r === o && (t.push(i[r]), n++, o = e[n * s]);\n}\nfunction Oe(i, t, e, s, n) {\n const o = C(s, 0), r = Math.min(C(n, i.length), i.length);\n let a = 0, l, c, h;\n for (e = Math.ceil(e), n && (l = n - s, e = l / Math.floor(l / e)), h = o; h < 0; )\n a++, h = Math.round(o + a * e);\n for (c = Math.max(o, 0); c < r; c++)\n c === h && (t.push(i[c]), a++, h = Math.round(o + a * e));\n}\nfunction Aa(i) {\n const t = i.length;\n let e, s;\n if (t < 2)\n return !1;\n for (s = i[0], e = 1; e < t; ++e)\n if (i[e] - i[e - 1] !== s)\n return !1;\n return s;\n}\nconst Ta = (i) => i === \"left\" ? \"right\" : i === \"right\" ? \"left\" : i, ws = (i, t, e) => t === \"top\" || t === \"left\" ? i[t] + e : i[t] - e;\nfunction Ss(i, t) {\n const e = [], s = i.length / t, n = i.length;\n let o = 0;\n for (; o < n; o += s)\n e.push(i[Math.floor(o)]);\n return e;\n}\nfunction La(i, t, e) {\n const s = i.ticks.length, n = Math.min(t, s - 1), o = i._startPixel, r = i._endPixel, a = 1e-6;\n let l = i.getPixelForTick(n), c;\n if (!(e && (s === 1 ? c = Math.max(l - o, r - l) : t === 0 ? c = (i.getPixelForTick(1) - l) / 2 : c = (l - i.getPixelForTick(n - 1)) / 2, l += n < t ? c : -c, l < o - a || l > r + a)))\n return l;\n}\nfunction Ra(i, t) {\n E(i, (e) => {\n const s = e.gc, n = s.length / 2;\n let o;\n if (n > t) {\n for (o = 0; o < n; ++o)\n delete e.data[s[o]];\n s.splice(0, n);\n }\n });\n}\nfunction Xt(i) {\n return i.drawTicks ? i.tickLength : 0;\n}\nfunction Ps(i, t) {\n if (!i.display)\n return 0;\n const e = $(i.font, t), s = K(i.padding);\n return (z(i.text) ? i.text.length : 1) * e.lineHeight + s.height;\n}\nfunction Ea(i, t) {\n return vt(i, {\n scale: t,\n type: \"scale\"\n });\n}\nfunction Fa(i, t, e) {\n return vt(i, {\n tick: e,\n index: t,\n type: \"tick\"\n });\n}\nfunction Ia(i, t, e) {\n let s = Li(i);\n return (e && t !== \"right\" || !e && t === \"right\") && (s = Ta(s)), s;\n}\nfunction za(i, t, e, s) {\n const { top: n, left: o, bottom: r, right: a, chart: l } = i, { chartArea: c, scales: h } = l;\n let d = 0, u, f, g;\n const p = r - n, m = a - o;\n if (i.isHorizontal()) {\n if (f = U(s, o, a), D(e)) {\n const b = Object.keys(e)[0], x = e[b];\n g = h[b].getPixelForValue(x) + p - t;\n } else\n e === \"center\" ? g = (c.bottom + c.top) / 2 + p - t : g = ws(i, e, t);\n u = a - o;\n } else {\n if (D(e)) {\n const b = Object.keys(e)[0], x = e[b];\n f = h[b].getPixelForValue(x) - m + t;\n } else\n e === \"center\" ? f = (c.left + c.right) / 2 - m + t : f = ws(i, e, t);\n g = U(s, r, n), d = e === \"left\" ? -V : V;\n }\n return { titleX: f, titleY: g, maxWidth: u, rotation: d };\n}\nclass Mt extends st {\n constructor(t) {\n super(), this.id = t.id, this.type = t.type, this.options = void 0, this.ctx = t.ctx, this.chart = t.chart, this.top = void 0, this.bottom = void 0, this.left = void 0, this.right = void 0, this.width = void 0, this.height = void 0, this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, this.maxWidth = void 0, this.maxHeight = void 0, this.paddingTop = void 0, this.paddingBottom = void 0, this.paddingLeft = void 0, this.paddingRight = void 0, this.axis = void 0, this.labelRotation = void 0, this.min = void 0, this.max = void 0, this._range = void 0, this.ticks = [], this._gridLineItems = null, this._labelItems = null, this._labelSizes = null, this._length = 0, this._maxLength = 0, this._longestTextCache = {}, this._startPixel = void 0, this._endPixel = void 0, this._reversePixels = !1, this._userMax = void 0, this._userMin = void 0, this._suggestedMax = void 0, this._suggestedMin = void 0, this._ticksLength = 0, this._borderValue = 0, this._cache = {}, this._dataLimitsCached = !1, this.$context = void 0;\n }\n init(t) {\n this.options = t.setContext(this.getContext()), this.axis = t.axis, this._userMin = this.parse(t.min), this._userMax = this.parse(t.max), this._suggestedMin = this.parse(t.suggestedMin), this._suggestedMax = this.parse(t.suggestedMax);\n }\n parse(t, e) {\n return t;\n }\n getUserBounds() {\n let { _userMin: t, _userMax: e, _suggestedMin: s, _suggestedMax: n } = this;\n return t = Q(t, Number.POSITIVE_INFINITY), e = Q(e, Number.NEGATIVE_INFINITY), s = Q(s, Number.POSITIVE_INFINITY), n = Q(n, Number.NEGATIVE_INFINITY), {\n min: Q(t, s),\n max: Q(e, n),\n minDefined: N(t),\n maxDefined: N(e)\n };\n }\n getMinMax(t) {\n let { min: e, max: s, minDefined: n, maxDefined: o } = this.getUserBounds(), r;\n if (n && o)\n return { min: e, max: s };\n const a = this.getMatchingVisibleMetas();\n for (let l = 0, c = a.length; l < c; ++l)\n r = a[l].controller.getMinMax(this, t), n || (e = Math.min(e, r.min)), o || (s = Math.max(s, r.max));\n return e = o && e > s ? s : e, s = n && e > s ? e : s, {\n min: Q(e, Q(s, e)),\n max: Q(s, Q(e, s))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const t = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? t.xLabels : t.yLabels) || t.labels || [];\n }\n beforeLayout() {\n this._cache = {}, this._dataLimitsCached = !1;\n }\n beforeUpdate() {\n I(this.options.beforeUpdate, [this]);\n }\n update(t, e, s) {\n const { beginAtZero: n, grace: o, ticks: r } = this.options, a = r.sampleSize;\n this.beforeUpdate(), this.maxWidth = t, this.maxHeight = e, this._margins = s = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, s), this.ticks = null, this._labelSizes = null, this._gridLineItems = null, this._labelItems = null, this.beforeSetDimensions(), this.setDimensions(), this.afterSetDimensions(), this._maxLength = this.isHorizontal() ? this.width + s.left + s.right : this.height + s.top + s.bottom, this._dataLimitsCached || (this.beforeDataLimits(), this.determineDataLimits(), this.afterDataLimits(), this._range = mr(this, o, n), this._dataLimitsCached = !0), this.beforeBuildTicks(), this.ticks = this.buildTicks() || [], this.afterBuildTicks();\n const l = a < this.ticks.length;\n this._convertTicksToLabels(l ? Ss(this.ticks, a) : this.ticks), this.configure(), this.beforeCalculateLabelRotation(), this.calculateLabelRotation(), this.afterCalculateLabelRotation(), r.display && (r.autoSkip || r.source === \"auto\") && (this.ticks = Sa(this, this.ticks), this._labelSizes = null, this.afterAutoSkip()), l && this._convertTicksToLabels(this.ticks), this.beforeFit(), this.fit(), this.afterFit(), this.afterUpdate();\n }\n configure() {\n let t = this.options.reverse, e, s;\n this.isHorizontal() ? (e = this.left, s = this.right) : (e = this.top, s = this.bottom, t = !t), this._startPixel = e, this._endPixel = s, this._reversePixels = t, this._length = s - e, this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n I(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n I(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n this.isHorizontal() ? (this.width = this.maxWidth, this.left = 0, this.right = this.width) : (this.height = this.maxHeight, this.top = 0, this.bottom = this.height), this.paddingLeft = 0, this.paddingTop = 0, this.paddingRight = 0, this.paddingBottom = 0;\n }\n afterSetDimensions() {\n I(this.options.afterSetDimensions, [this]);\n }\n _callHooks(t) {\n this.chart.notifyPlugins(t, this.getContext()), I(this.options[t], [this]);\n }\n beforeDataLimits() {\n this._callHooks(\"beforeDataLimits\");\n }\n determineDataLimits() {\n }\n afterDataLimits() {\n this._callHooks(\"afterDataLimits\");\n }\n beforeBuildTicks() {\n this._callHooks(\"beforeBuildTicks\");\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks(\"afterBuildTicks\");\n }\n beforeTickToLabelConversion() {\n I(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(t) {\n const e = this.options.ticks;\n let s, n, o;\n for (s = 0, n = t.length; s < n; s++)\n o = t[s], o.label = I(e.callback, [o.value, s, t], this);\n }\n afterTickToLabelConversion() {\n I(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n I(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const t = this.options, e = t.ticks, s = this.ticks.length, n = e.minRotation || 0, o = e.maxRotation;\n let r = n, a, l, c;\n if (!this._isVisible() || !e.display || n >= o || s <= 1 || !this.isHorizontal()) {\n this.labelRotation = n;\n return;\n }\n const h = this._getLabelSizes(), d = h.widest.width, u = h.highest.height, f = Y(this.chart.width - d, 0, this.maxWidth);\n a = t.offset ? this.maxWidth / s : f / (s - 1), d + 6 > a && (a = f / (s - (t.offset ? 0.5 : 1)), l = this.maxHeight - Xt(t.grid) - e.padding - Ps(t.title, this.chart.options.font), c = Math.sqrt(d * d + u * u), r = Ai(Math.min(\n Math.asin(Y((h.highest.height + 6) / a, -1, 1)),\n Math.asin(Y(l / c, -1, 1)) - Math.asin(Y(u / c, -1, 1))\n )), r = Math.max(n, Math.min(o, r))), this.labelRotation = r;\n }\n afterCalculateLabelRotation() {\n I(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {\n }\n beforeFit() {\n I(this.options.beforeFit, [this]);\n }\n fit() {\n const t = {\n width: 0,\n height: 0\n }, { chart: e, options: { ticks: s, title: n, grid: o } } = this, r = this._isVisible(), a = this.isHorizontal();\n if (r) {\n const l = Ps(n, e.options.font);\n if (a ? (t.width = this.maxWidth, t.height = Xt(o) + l) : (t.height = this.maxHeight, t.width = Xt(o) + l), s.display && this.ticks.length) {\n const { first: c, last: h, widest: d, highest: u } = this._getLabelSizes(), f = s.padding * 2, g = nt(this.labelRotation), p = Math.cos(g), m = Math.sin(g);\n if (a) {\n const b = s.mirror ? 0 : m * d.width + p * u.height;\n t.height = Math.min(this.maxHeight, t.height + b + f);\n } else {\n const b = s.mirror ? 0 : p * d.width + m * u.height;\n t.width = Math.min(this.maxWidth, t.width + b + f);\n }\n this._calculatePadding(c, h, m, p);\n }\n }\n this._handleMargins(), a ? (this.width = this._length = e.width - this._margins.left - this._margins.right, this.height = t.height) : (this.width = t.width, this.height = this._length = e.height - this._margins.top - this._margins.bottom);\n }\n _calculatePadding(t, e, s, n) {\n const { ticks: { align: o, padding: r }, position: a } = this.options, l = this.labelRotation !== 0, c = a !== \"top\" && this.axis === \"x\";\n if (this.isHorizontal()) {\n const h = this.getPixelForTick(0) - this.left, d = this.right - this.getPixelForTick(this.ticks.length - 1);\n let u = 0, f = 0;\n l ? c ? (u = n * t.width, f = s * e.height) : (u = s * t.height, f = n * e.width) : o === \"start\" ? f = e.width : o === \"end\" ? u = t.width : o !== \"inner\" && (u = t.width / 2, f = e.width / 2), this.paddingLeft = Math.max((u - h + r) * this.width / (this.width - h), 0), this.paddingRight = Math.max((f - d + r) * this.width / (this.width - d), 0);\n } else {\n let h = e.height / 2, d = t.height / 2;\n o === \"start\" ? (h = 0, d = t.height) : o === \"end\" && (h = e.height, d = 0), this.paddingTop = h + r, this.paddingBottom = d + r;\n }\n }\n _handleMargins() {\n this._margins && (this._margins.left = Math.max(this.paddingLeft, this._margins.left), this._margins.top = Math.max(this.paddingTop, this._margins.top), this._margins.right = Math.max(this.paddingRight, this._margins.right), this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom));\n }\n afterFit() {\n I(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const { axis: t, position: e } = this.options;\n return e === \"top\" || e === \"bottom\" || t === \"x\";\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(t) {\n this.beforeTickToLabelConversion(), this.generateTickLabels(t);\n let e, s;\n for (e = 0, s = t.length; e < s; e++)\n T(t[e].label) && (t.splice(e, 1), s--, e--);\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let t = this._labelSizes;\n if (!t) {\n const e = this.options.ticks.sampleSize;\n let s = this.ticks;\n e < s.length && (s = Ss(s, e)), this._labelSizes = t = this._computeLabelSizes(s, s.length);\n }\n return t;\n }\n _computeLabelSizes(t, e) {\n const { ctx: s, _longestTextCache: n } = this, o = [], r = [];\n let a = 0, l = 0, c, h, d, u, f, g, p, m, b, x, v;\n for (c = 0; c < e; ++c) {\n if (u = t[c].label, f = this._resolveTickFontOptions(c), s.font = g = f.string, p = n[g] = n[g] || { data: {}, gc: [] }, m = f.lineHeight, b = x = 0, !T(u) && !z(u))\n b = Ne(s, p.data, p.gc, b, u), x = m;\n else if (z(u))\n for (h = 0, d = u.length; h < d; ++h)\n v = u[h], !T(v) && !z(v) && (b = Ne(s, p.data, p.gc, b, v), x += m);\n o.push(b), r.push(x), a = Math.max(b, a), l = Math.max(x, l);\n }\n Ra(n, e);\n const y = o.indexOf(a), _ = r.indexOf(l), M = (k) => ({ width: o[k] || 0, height: r[k] || 0 });\n return {\n first: M(0),\n last: M(e - 1),\n widest: M(y),\n highest: M(_),\n widths: o,\n heights: r\n };\n }\n getLabelForValue(t) {\n return t;\n }\n getPixelForValue(t, e) {\n return NaN;\n }\n getValueForPixel(t) {\n }\n getPixelForTick(t) {\n const e = this.ticks;\n return t < 0 || t > e.length - 1 ? null : this.getPixelForValue(e[t].value);\n }\n getPixelForDecimal(t) {\n this._reversePixels && (t = 1 - t);\n const e = this._startPixel + t * this._length;\n return To(this._alignToPixels ? wt(this.chart, e, 0) : e);\n }\n getDecimalForPixel(t) {\n const e = (t - this._startPixel) / this._length;\n return this._reversePixels ? 1 - e : e;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const { min: t, max: e } = this;\n return t < 0 && e < 0 ? e : t > 0 && e > 0 ? t : 0;\n }\n getContext(t) {\n const e = this.ticks || [];\n if (t >= 0 && t < e.length) {\n const s = e[t];\n return s.$context || (s.$context = Fa(this.getContext(), t, s));\n }\n return this.$context || (this.$context = Ea(this.chart.getContext(), this));\n }\n _tickSize() {\n const t = this.options.ticks, e = nt(this.labelRotation), s = Math.abs(Math.cos(e)), n = Math.abs(Math.sin(e)), o = this._getLabelSizes(), r = t.autoSkipPadding || 0, a = o ? o.widest.width + r : 0, l = o ? o.highest.height + r : 0;\n return this.isHorizontal() ? l * s > a * n ? a / s : l / n : l * n < a * s ? l / s : a / n;\n }\n _isVisible() {\n const t = this.options.display;\n return t !== \"auto\" ? !!t : this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(t) {\n const e = this.axis, s = this.chart, n = this.options, { grid: o, position: r } = n, a = o.offset, l = this.isHorizontal(), h = this.ticks.length + (a ? 1 : 0), d = Xt(o), u = [], f = o.setContext(this.getContext()), g = f.drawBorder ? f.borderWidth : 0, p = g / 2, m = function(P) {\n return wt(s, P, g);\n };\n let b, x, v, y, _, M, k, S, w, L, R, A;\n if (r === \"top\")\n b = m(this.bottom), M = this.bottom - d, S = b - p, L = m(t.top) + p, A = t.bottom;\n else if (r === \"bottom\")\n b = m(this.top), L = t.top, A = m(t.bottom) - p, M = b + p, S = this.top + d;\n else if (r === \"left\")\n b = m(this.right), _ = this.right - d, k = b - p, w = m(t.left) + p, R = t.right;\n else if (r === \"right\")\n b = m(this.left), w = t.left, R = m(t.right) - p, _ = b + p, k = this.left + d;\n else if (e === \"x\") {\n if (r === \"center\")\n b = m((t.top + t.bottom) / 2 + 0.5);\n else if (D(r)) {\n const P = Object.keys(r)[0], j = r[P];\n b = m(this.chart.scales[P].getPixelForValue(j));\n }\n L = t.top, A = t.bottom, M = b + p, S = M + d;\n } else if (e === \"y\") {\n if (r === \"center\")\n b = m((t.left + t.right) / 2);\n else if (D(r)) {\n const P = Object.keys(r)[0], j = r[P];\n b = m(this.chart.scales[P].getPixelForValue(j));\n }\n _ = b - p, k = _ - d, w = t.left, R = t.right;\n }\n const H = C(n.ticks.maxTicksLimit, h), q = Math.max(1, Math.ceil(h / H));\n for (x = 0; x < h; x += q) {\n const P = o.setContext(this.getContext(x)), j = P.lineWidth, W = P.color, kt = P.borderDash || [], ti = P.borderDashOffset, Rt = P.tickWidth, ke = P.tickColor, Et = P.tickBorderDash || [], jt = P.tickBorderDashOffset;\n v = La(this, x, a), v !== void 0 && (y = wt(s, v, j), l ? _ = k = w = R = y : M = S = L = A = y, u.push({\n tx1: _,\n ty1: M,\n tx2: k,\n ty2: S,\n x1: w,\n y1: L,\n x2: R,\n y2: A,\n width: j,\n color: W,\n borderDash: kt,\n borderDashOffset: ti,\n tickWidth: Rt,\n tickColor: ke,\n tickBorderDash: Et,\n tickBorderDashOffset: jt\n }));\n }\n return this._ticksLength = h, this._borderValue = b, u;\n }\n _computeLabelItems(t) {\n const e = this.axis, s = this.options, { position: n, ticks: o } = s, r = this.isHorizontal(), a = this.ticks, { align: l, crossAlign: c, padding: h, mirror: d } = o, u = Xt(s.grid), f = u + h, g = d ? -h : f, p = -nt(this.labelRotation), m = [];\n let b, x, v, y, _, M, k, S, w, L, R, A, H = \"middle\";\n if (n === \"top\")\n M = this.bottom - g, k = this._getXAxisLabelAlignment();\n else if (n === \"bottom\")\n M = this.top + g, k = this._getXAxisLabelAlignment();\n else if (n === \"left\") {\n const P = this._getYAxisLabelAlignment(u);\n k = P.textAlign, _ = P.x;\n } else if (n === \"right\") {\n const P = this._getYAxisLabelAlignment(u);\n k = P.textAlign, _ = P.x;\n } else if (e === \"x\") {\n if (n === \"center\")\n M = (t.top + t.bottom) / 2 + f;\n else if (D(n)) {\n const P = Object.keys(n)[0], j = n[P];\n M = this.chart.scales[P].getPixelForValue(j) + f;\n }\n k = this._getXAxisLabelAlignment();\n } else if (e === \"y\") {\n if (n === \"center\")\n _ = (t.left + t.right) / 2 - f;\n else if (D(n)) {\n const P = Object.keys(n)[0], j = n[P];\n _ = this.chart.scales[P].getPixelForValue(j);\n }\n k = this._getYAxisLabelAlignment(u).textAlign;\n }\n e === \"y\" && (l === \"start\" ? H = \"top\" : l === \"end\" && (H = \"bottom\"));\n const q = this._getLabelSizes();\n for (b = 0, x = a.length; b < x; ++b) {\n v = a[b], y = v.label;\n const P = o.setContext(this.getContext(b));\n S = this.getPixelForTick(b) + o.labelOffset, w = this._resolveTickFontOptions(b), L = w.lineHeight, R = z(y) ? y.length : 1;\n const j = R / 2, W = P.color, kt = P.textStrokeColor, ti = P.textStrokeWidth;\n let Rt = k;\n r ? (_ = S, k === \"inner\" && (b === x - 1 ? Rt = this.options.reverse ? \"left\" : \"right\" : b === 0 ? Rt = this.options.reverse ? \"right\" : \"left\" : Rt = \"center\"), n === \"top\" ? c === \"near\" || p !== 0 ? A = -R * L + L / 2 : c === \"center\" ? A = -q.highest.height / 2 - j * L + L : A = -q.highest.height + L / 2 : c === \"near\" || p !== 0 ? A = L / 2 : c === \"center\" ? A = q.highest.height / 2 - j * L : A = q.highest.height - R * L, d && (A *= -1)) : (M = S, A = (1 - R) * L / 2);\n let ke;\n if (P.showLabelBackdrop) {\n const Et = K(P.backdropPadding), jt = q.heights[b], ei = q.widths[b];\n let ii = M + A - Et.top, si = _ - Et.left;\n switch (H) {\n case \"middle\":\n ii -= jt / 2;\n break;\n case \"bottom\":\n ii -= jt;\n break;\n }\n switch (k) {\n case \"center\":\n si -= ei / 2;\n break;\n case \"right\":\n si -= ei;\n break;\n }\n ke = {\n left: si,\n top: ii,\n width: ei + Et.width,\n height: jt + Et.height,\n color: P.backdropColor\n };\n }\n m.push({\n rotation: p,\n label: y,\n font: w,\n color: W,\n strokeColor: kt,\n strokeWidth: ti,\n textOffset: A,\n textAlign: Rt,\n textBaseline: H,\n translation: [_, M],\n backdrop: ke\n });\n }\n return m;\n }\n _getXAxisLabelAlignment() {\n const { position: t, ticks: e } = this.options;\n if (-nt(this.labelRotation))\n return t === \"top\" ? \"left\" : \"right\";\n let n = \"center\";\n return e.align === \"start\" ? n = \"left\" : e.align === \"end\" ? n = \"right\" : e.align === \"inner\" && (n = \"inner\"), n;\n }\n _getYAxisLabelAlignment(t) {\n const { position: e, ticks: { crossAlign: s, mirror: n, padding: o } } = this.options, r = this._getLabelSizes(), a = t + o, l = r.widest.width;\n let c, h;\n return e === \"left\" ? n ? (h = this.right + o, s === \"near\" ? c = \"left\" : s === \"center\" ? (c = \"center\", h += l / 2) : (c = \"right\", h += l)) : (h = this.right - a, s === \"near\" ? c = \"right\" : s === \"center\" ? (c = \"center\", h -= l / 2) : (c = \"left\", h = this.left)) : e === \"right\" ? n ? (h = this.left + o, s === \"near\" ? c = \"right\" : s === \"center\" ? (c = \"center\", h -= l / 2) : (c = \"left\", h -= l)) : (h = this.left + a, s === \"near\" ? c = \"left\" : s === \"center\" ? (c = \"center\", h += l / 2) : (c = \"right\", h = this.right)) : c = \"right\", { textAlign: c, x: h };\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror)\n return;\n const t = this.chart, e = this.options.position;\n if (e === \"left\" || e === \"right\")\n return { top: 0, left: this.left, bottom: t.height, right: this.right };\n if (e === \"top\" || e === \"bottom\")\n return { top: this.top, left: 0, bottom: this.bottom, right: t.width };\n }\n drawBackground() {\n const { ctx: t, options: { backgroundColor: e }, left: s, top: n, width: o, height: r } = this;\n e && (t.save(), t.fillStyle = e, t.fillRect(s, n, o, r), t.restore());\n }\n getLineWidthForValue(t) {\n const e = this.options.grid;\n if (!this._isVisible() || !e.display)\n return 0;\n const n = this.ticks.findIndex((o) => o.value === t);\n return n >= 0 ? e.setContext(this.getContext(n)).lineWidth : 0;\n }\n drawGrid(t) {\n const e = this.options.grid, s = this.ctx, n = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(t));\n let o, r;\n const a = (l, c, h) => {\n !h.width || !h.color || (s.save(), s.lineWidth = h.width, s.strokeStyle = h.color, s.setLineDash(h.borderDash || []), s.lineDashOffset = h.borderDashOffset, s.beginPath(), s.moveTo(l.x, l.y), s.lineTo(c.x, c.y), s.stroke(), s.restore());\n };\n if (e.display)\n for (o = 0, r = n.length; o < r; ++o) {\n const l = n[o];\n e.drawOnChartArea && a(\n { x: l.x1, y: l.y1 },\n { x: l.x2, y: l.y2 },\n l\n ), e.drawTicks && a(\n { x: l.tx1, y: l.ty1 },\n { x: l.tx2, y: l.ty2 },\n {\n color: l.tickColor,\n width: l.tickWidth,\n borderDash: l.tickBorderDash,\n borderDashOffset: l.tickBorderDashOffset\n }\n );\n }\n }\n drawBorder() {\n const { chart: t, ctx: e, options: { grid: s } } = this, n = s.setContext(this.getContext()), o = s.drawBorder ? n.borderWidth : 0;\n if (!o)\n return;\n const r = s.setContext(this.getContext(0)).lineWidth, a = this._borderValue;\n let l, c, h, d;\n this.isHorizontal() ? (l = wt(t, this.left, o) - o / 2, c = wt(t, this.right, r) + r / 2, h = d = a) : (h = wt(t, this.top, o) - o / 2, d = wt(t, this.bottom, r) + r / 2, l = c = a), e.save(), e.lineWidth = n.borderWidth, e.strokeStyle = n.borderColor, e.beginPath(), e.moveTo(l, h), e.lineTo(c, d), e.stroke(), e.restore();\n }\n drawLabels(t) {\n if (!this.options.ticks.display)\n return;\n const s = this.ctx, n = this._computeLabelArea();\n n && Xe(s, n);\n const o = this._labelItems || (this._labelItems = this._computeLabelItems(t));\n let r, a;\n for (r = 0, a = o.length; r < a; ++r) {\n const l = o[r], c = l.font, h = l.label;\n l.backdrop && (s.fillStyle = l.backdrop.color, s.fillRect(l.backdrop.left, l.backdrop.top, l.backdrop.width, l.backdrop.height));\n let d = l.textOffset;\n Tt(s, h, 0, d, c, l);\n }\n n && Ue(s);\n }\n drawTitle() {\n const { ctx: t, options: { position: e, title: s, reverse: n } } = this;\n if (!s.display)\n return;\n const o = $(s.font), r = K(s.padding), a = s.align;\n let l = o.lineHeight / 2;\n e === \"bottom\" || e === \"center\" || D(e) ? (l += r.bottom, z(s.text) && (l += o.lineHeight * (s.text.length - 1))) : l += r.top;\n const { titleX: c, titleY: h, maxWidth: d, rotation: u } = za(this, l, e, a);\n Tt(t, s.text, 0, 0, o, {\n color: s.color,\n maxWidth: d,\n rotation: u,\n textAlign: Ia(a, e, n),\n textBaseline: \"middle\",\n translation: [c, h]\n });\n }\n draw(t) {\n this._isVisible() && (this.drawBackground(), this.drawGrid(t), this.drawBorder(), this.drawTitle(), this.drawLabels(t));\n }\n _layers() {\n const t = this.options, e = t.ticks && t.ticks.z || 0, s = C(t.grid && t.grid.z, -1);\n return !this._isVisible() || this.draw !== Mt.prototype.draw ? [{\n z: e,\n draw: (n) => {\n this.draw(n);\n }\n }] : [{\n z: s,\n draw: (n) => {\n this.drawBackground(), this.drawGrid(n), this.drawTitle();\n }\n }, {\n z: s + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: e,\n draw: (n) => {\n this.drawLabels(n);\n }\n }];\n }\n getMatchingVisibleMetas(t) {\n const e = this.chart.getSortedVisibleDatasetMetas(), s = this.axis + \"AxisID\", n = [];\n let o, r;\n for (o = 0, r = e.length; o < r; ++o) {\n const a = e[o];\n a[s] === this.id && (!t || a.type === t) && n.push(a);\n }\n return n;\n }\n _resolveTickFontOptions(t) {\n const e = this.options.ticks.setContext(this.getContext(t));\n return $(e.font);\n }\n _maxDigits() {\n const t = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / t;\n }\n}\nclass Ae {\n constructor(t, e, s) {\n this.type = t, this.scope = e, this.override = s, this.items = /* @__PURE__ */ Object.create(null);\n }\n isForType(t) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, t.prototype);\n }\n register(t) {\n const e = Object.getPrototypeOf(t);\n let s;\n Wa(e) && (s = this.register(e));\n const n = this.items, o = t.id, r = this.scope + \".\" + o;\n if (!o)\n throw new Error(\"class does not have id: \" + t);\n return o in n || (n[o] = t, Ba(t, r, s), this.override && O.override(t.id, t.overrides)), r;\n }\n get(t) {\n return this.items[t];\n }\n unregister(t) {\n const e = this.items, s = t.id, n = this.scope;\n s in e && delete e[s], n && s in O[n] && (delete O[n][s], this.override && delete At[s]);\n }\n}\nfunction Ba(i, t, e) {\n const s = ne(/* @__PURE__ */ Object.create(null), [\n e ? O.get(e) : {},\n O.get(t),\n i.defaults\n ]);\n O.set(t, s), i.defaultRoutes && Va(t, i.defaultRoutes), i.descriptors && O.describe(t, i.descriptors);\n}\nfunction Va(i, t) {\n Object.keys(t).forEach((e) => {\n const s = e.split(\".\"), n = s.pop(), o = [i].concat(s).join(\".\"), r = t[e].split(\".\"), a = r.pop(), l = r.join(\".\");\n O.route(o, n, l, a);\n });\n}\nfunction Wa(i) {\n return \"id\" in i && \"defaults\" in i;\n}\nclass Na {\n constructor() {\n this.controllers = new Ae(it, \"datasets\", !0), this.elements = new Ae(st, \"elements\"), this.plugins = new Ae(Object, \"plugins\"), this.scales = new Ae(Mt, \"scales\"), this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...t) {\n this._each(\"register\", t);\n }\n remove(...t) {\n this._each(\"unregister\", t);\n }\n addControllers(...t) {\n this._each(\"register\", t, this.controllers);\n }\n addElements(...t) {\n this._each(\"register\", t, this.elements);\n }\n addPlugins(...t) {\n this._each(\"register\", t, this.plugins);\n }\n addScales(...t) {\n this._each(\"register\", t, this.scales);\n }\n getController(t) {\n return this._get(t, this.controllers, \"controller\");\n }\n getElement(t) {\n return this._get(t, this.elements, \"element\");\n }\n getPlugin(t) {\n return this._get(t, this.plugins, \"plugin\");\n }\n getScale(t) {\n return this._get(t, this.scales, \"scale\");\n }\n removeControllers(...t) {\n this._each(\"unregister\", t, this.controllers);\n }\n removeElements(...t) {\n this._each(\"unregister\", t, this.elements);\n }\n removePlugins(...t) {\n this._each(\"unregister\", t, this.plugins);\n }\n removeScales(...t) {\n this._each(\"unregister\", t, this.scales);\n }\n _each(t, e, s) {\n [...e].forEach((n) => {\n const o = s || this._getRegistryForType(n);\n s || o.isForType(n) || o === this.plugins && n.id ? this._exec(t, o, n) : E(n, (r) => {\n const a = s || this._getRegistryForType(r);\n this._exec(t, a, r);\n });\n });\n }\n _exec(t, e, s) {\n const n = Oi(t);\n I(s[\"before\" + n], [], s), e[t](s), I(s[\"after\" + n], [], s);\n }\n _getRegistryForType(t) {\n for (let e = 0; e < this._typedRegistries.length; e++) {\n const s = this._typedRegistries[e];\n if (s.isForType(t))\n return s;\n }\n return this.plugins;\n }\n _get(t, e, s) {\n const n = e.get(t);\n if (n === void 0)\n throw new Error('\"' + t + '\" is not a registered ' + s + \".\");\n return n;\n }\n}\nvar ot = new Na();\nclass xe extends it {\n update(t) {\n const e = this._cachedMeta, { data: s = [] } = e, n = this.chart._animationsDisabled;\n let { start: o, count: r } = pn(e, s, n);\n if (this._drawStart = o, this._drawCount = r, mn(e) && (o = 0, r = s.length), this.options.showLine) {\n const { dataset: a, _dataset: l } = e;\n a._chart = this.chart, a._datasetIndex = this.index, a._decimated = !!l._decimated, a.points = s;\n const c = this.resolveDatasetElementOptions(t);\n c.segment = this.options.segment, this.updateElement(a, void 0, {\n animated: !n,\n options: c\n }, t);\n }\n this.updateElements(s, o, r, t);\n }\n addElements() {\n const { showLine: t } = this.options;\n !this.datasetElementType && t && (this.datasetElementType = ot.getElement(\"line\")), super.addElements();\n }\n updateElements(t, e, s, n) {\n const o = n === \"reset\", { iScale: r, vScale: a, _stacked: l, _dataset: c } = this._cachedMeta, h = this.resolveDataElementOptions(e, n), d = this.getSharedOptions(h), u = this.includeOptions(n, d), f = r.axis, g = a.axis, { spanGaps: p, segment: m } = this.options, b = Bt(p) ? p : Number.POSITIVE_INFINITY, x = this.chart._animationsDisabled || o || n === \"none\";\n let v = e > 0 && this.getParsed(e - 1);\n for (let y = e; y < e + s; ++y) {\n const _ = t[y], M = this.getParsed(y), k = x ? _ : {}, S = T(M[g]), w = k[f] = r.getPixelForValue(M[f], y), L = k[g] = o || S ? a.getBasePixel() : a.getPixelForValue(l ? this.applyStack(a, M, l) : M[g], y);\n k.skip = isNaN(w) || isNaN(L) || S, k.stop = y > 0 && Math.abs(M[f] - v[f]) > b, m && (k.parsed = M, k.raw = c.data[y]), u && (k.options = d || this.resolveDataElementOptions(y, _.active ? \"active\" : n)), x || this.updateElement(_, y, k, n), v = M;\n }\n this.updateSharedOptions(d, n, h);\n }\n getMaxOverflow() {\n const t = this._cachedMeta, e = t.data || [];\n if (!this.options.showLine) {\n let a = 0;\n for (let l = e.length - 1; l >= 0; --l)\n a = Math.max(a, e[l].size(this.resolveDataElementOptions(l)) / 2);\n return a > 0 && a;\n }\n const s = t.dataset, n = s.options && s.options.borderWidth || 0;\n if (!e.length)\n return n;\n const o = e[0].size(this.resolveDataElementOptions(0)), r = e[e.length - 1].size(this.resolveDataElementOptions(e.length - 1));\n return Math.max(n, o, r) / 2;\n }\n}\nxe.id = \"scatter\";\nxe.defaults = {\n datasetElementType: !1,\n dataElementType: \"point\",\n showLine: !1,\n fill: !1\n};\nxe.overrides = {\n interaction: {\n mode: \"point\"\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return \"\";\n },\n label(i) {\n return \"(\" + i.label + \", \" + i.formattedValue + \")\";\n }\n }\n }\n },\n scales: {\n x: {\n type: \"linear\"\n },\n y: {\n type: \"linear\"\n }\n }\n};\nvar Wn = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n BarController: ue,\n BubbleController: fe,\n DoughnutController: Lt,\n LineController: ge,\n PolarAreaController: pe,\n PieController: qe,\n RadarController: me,\n ScatterController: xe\n});\nfunction St() {\n throw new Error(\"This method is not implemented: Check that a complete date adapter is provided.\");\n}\nclass vi {\n constructor(t) {\n this.options = t || {};\n }\n init(t) {\n }\n formats() {\n return St();\n }\n parse(t, e) {\n return St();\n }\n format(t, e) {\n return St();\n }\n add(t, e, s) {\n return St();\n }\n diff(t, e, s) {\n return St();\n }\n startOf(t, e, s) {\n return St();\n }\n endOf(t, e) {\n return St();\n }\n}\nvi.override = function(i) {\n Object.assign(vi.prototype, i);\n};\nvar Nn = {\n _date: vi\n};\nfunction Ha(i, t, e, s) {\n const { controller: n, data: o, _sorted: r } = i, a = n._cachedMeta.iScale;\n if (a && t === a.axis && t !== \"r\" && r && o.length) {\n const l = a._reversePixels ? Lo : ft;\n if (s) {\n if (n._sharedOptions) {\n const c = o[0], h = typeof c.getRange == \"function\" && c.getRange(t);\n if (h) {\n const d = l(o, t, e - h), u = l(o, t, e + h);\n return { lo: d.lo, hi: u.hi };\n }\n }\n } else\n return l(o, t, e);\n }\n return { lo: 0, hi: o.length - 1 };\n}\nfunction _e(i, t, e, s, n) {\n const o = i.getSortedVisibleDatasetMetas(), r = e[t];\n for (let a = 0, l = o.length; a < l; ++a) {\n const { index: c, data: h } = o[a], { lo: d, hi: u } = Ha(o[a], t, r, n);\n for (let f = d; f <= u; ++f) {\n const g = h[f];\n g.skip || s(g, c, f);\n }\n }\n}\nfunction ja(i) {\n const t = i.indexOf(\"x\") !== -1, e = i.indexOf(\"y\") !== -1;\n return function(s, n) {\n const o = t ? Math.abs(s.x - n.x) : 0, r = e ? Math.abs(s.y - n.y) : 0;\n return Math.sqrt(Math.pow(o, 2) + Math.pow(r, 2));\n };\n}\nfunction di(i, t, e, s, n) {\n const o = [];\n return !n && !i.isPointInArea(t) || _e(i, e, t, function(a, l, c) {\n !n && !re(a, i.chartArea, 0) || a.inRange(t.x, t.y, s) && o.push({ element: a, datasetIndex: l, index: c });\n }, !0), o;\n}\nfunction $a(i, t, e, s) {\n let n = [];\n function o(r, a, l) {\n const { startAngle: c, endAngle: h } = r.getProps([\"startAngle\", \"endAngle\"], s), { angle: d } = hn(r, { x: t.x, y: t.y });\n oe(d, c, h) && n.push({ element: r, datasetIndex: a, index: l });\n }\n return _e(i, e, t, o), n;\n}\nfunction Ya(i, t, e, s, n, o) {\n let r = [];\n const a = ja(e);\n let l = Number.POSITIVE_INFINITY;\n function c(h, d, u) {\n const f = h.inRange(t.x, t.y, n);\n if (s && !f)\n return;\n const g = h.getCenterPoint(n);\n if (!(!!o || i.isPointInArea(g)) && !f)\n return;\n const m = a(t, g);\n m < l ? (r = [{ element: h, datasetIndex: d, index: u }], l = m) : m === l && r.push({ element: h, datasetIndex: d, index: u });\n }\n return _e(i, e, t, c), r;\n}\nfunction ui(i, t, e, s, n, o) {\n return !o && !i.isPointInArea(t) ? [] : e === \"r\" && !s ? $a(i, t, e, n) : Ya(i, t, e, s, n, o);\n}\nfunction Cs(i, t, e, s, n) {\n const o = [], r = e === \"x\" ? \"inXRange\" : \"inYRange\";\n let a = !1;\n return _e(i, e, t, (l, c, h) => {\n l[r](t[e], n) && (o.push({ element: l, datasetIndex: c, index: h }), a = a || l.inRange(t.x, t.y, n));\n }), s && !a ? [] : o;\n}\nvar Hn = {\n evaluateInteractionItems: _e,\n modes: {\n index(i, t, e, s) {\n const n = Pt(t, i), o = e.axis || \"x\", r = e.includeInvisible || !1, a = e.intersect ? di(i, n, o, s, r) : ui(i, n, o, !1, s, r), l = [];\n return a.length ? (i.getSortedVisibleDatasetMetas().forEach((c) => {\n const h = a[0].index, d = c.data[h];\n d && !d.skip && l.push({ element: d, datasetIndex: c.index, index: h });\n }), l) : [];\n },\n dataset(i, t, e, s) {\n const n = Pt(t, i), o = e.axis || \"xy\", r = e.includeInvisible || !1;\n let a = e.intersect ? di(i, n, o, s, r) : ui(i, n, o, !1, s, r);\n if (a.length > 0) {\n const l = a[0].datasetIndex, c = i.getDatasetMeta(l).data;\n a = [];\n for (let h = 0; h < c.length; ++h)\n a.push({ element: c[h], datasetIndex: l, index: h });\n }\n return a;\n },\n point(i, t, e, s) {\n const n = Pt(t, i), o = e.axis || \"xy\", r = e.includeInvisible || !1;\n return di(i, n, o, s, r);\n },\n nearest(i, t, e, s) {\n const n = Pt(t, i), o = e.axis || \"xy\", r = e.includeInvisible || !1;\n return ui(i, n, o, e.intersect, s, r);\n },\n x(i, t, e, s) {\n const n = Pt(t, i);\n return Cs(i, n, \"x\", e.intersect, s);\n },\n y(i, t, e, s) {\n const n = Pt(t, i);\n return Cs(i, n, \"y\", e.intersect, s);\n }\n }\n};\nconst jn = [\"left\", \"top\", \"right\", \"bottom\"];\nfunction Ut(i, t) {\n return i.filter((e) => e.pos === t);\n}\nfunction Ds(i, t) {\n return i.filter((e) => jn.indexOf(e.pos) === -1 && e.box.axis === t);\n}\nfunction Kt(i, t) {\n return i.sort((e, s) => {\n const n = t ? s : e, o = t ? e : s;\n return n.weight === o.weight ? n.index - o.index : n.weight - o.weight;\n });\n}\nfunction Xa(i) {\n const t = [];\n let e, s, n, o, r, a;\n for (e = 0, s = (i || []).length; e < s; ++e)\n n = i[e], { position: o, options: { stack: r, stackWeight: a = 1 } } = n, t.push({\n index: e,\n box: n,\n pos: o,\n horizontal: n.isHorizontal(),\n weight: n.weight,\n stack: r && o + r,\n stackWeight: a\n });\n return t;\n}\nfunction Ua(i) {\n const t = {};\n for (const e of i) {\n const { stack: s, pos: n, stackWeight: o } = e;\n if (!s || !jn.includes(n))\n continue;\n const r = t[s] || (t[s] = { count: 0, placed: 0, weight: 0, size: 0 });\n r.count++, r.weight += o;\n }\n return t;\n}\nfunction Ka(i, t) {\n const e = Ua(i), { vBoxMaxWidth: s, hBoxMaxHeight: n } = t;\n let o, r, a;\n for (o = 0, r = i.length; o < r; ++o) {\n a = i[o];\n const { fullSize: l } = a.box, c = e[a.stack], h = c && a.stackWeight / c.weight;\n a.horizontal ? (a.width = h ? h * s : l && t.availableWidth, a.height = n) : (a.width = s, a.height = h ? h * n : l && t.availableHeight);\n }\n return e;\n}\nfunction qa(i) {\n const t = Xa(i), e = Kt(t.filter((c) => c.box.fullSize), !0), s = Kt(Ut(t, \"left\"), !0), n = Kt(Ut(t, \"right\")), o = Kt(Ut(t, \"top\"), !0), r = Kt(Ut(t, \"bottom\")), a = Ds(t, \"x\"), l = Ds(t, \"y\");\n return {\n fullSize: e,\n leftAndTop: s.concat(o),\n rightAndBottom: n.concat(l).concat(r).concat(a),\n chartArea: Ut(t, \"chartArea\"),\n vertical: s.concat(n).concat(l),\n horizontal: o.concat(r).concat(a)\n };\n}\nfunction Os(i, t, e, s) {\n return Math.max(i[e], t[e]) + Math.max(i[s], t[s]);\n}\nfunction $n(i, t) {\n i.top = Math.max(i.top, t.top), i.left = Math.max(i.left, t.left), i.bottom = Math.max(i.bottom, t.bottom), i.right = Math.max(i.right, t.right);\n}\nfunction Ga(i, t, e, s) {\n const { pos: n, box: o } = e, r = i.maxPadding;\n if (!D(n)) {\n e.size && (i[n] -= e.size);\n const d = s[e.stack] || { size: 0, count: 1 };\n d.size = Math.max(d.size, e.horizontal ? o.height : o.width), e.size = d.size / d.count, i[n] += e.size;\n }\n o.getPadding && $n(r, o.getPadding());\n const a = Math.max(0, t.outerWidth - Os(r, i, \"left\", \"right\")), l = Math.max(0, t.outerHeight - Os(r, i, \"top\", \"bottom\")), c = a !== i.w, h = l !== i.h;\n return i.w = a, i.h = l, e.horizontal ? { same: c, other: h } : { same: h, other: c };\n}\nfunction Za(i) {\n const t = i.maxPadding;\n function e(s) {\n const n = Math.max(t[s] - i[s], 0);\n return i[s] += n, n;\n }\n i.y += e(\"top\"), i.x += e(\"left\"), e(\"right\"), e(\"bottom\");\n}\nfunction Ja(i, t) {\n const e = t.maxPadding;\n function s(n) {\n const o = { left: 0, top: 0, right: 0, bottom: 0 };\n return n.forEach((r) => {\n o[r] = Math.max(t[r], e[r]);\n }), o;\n }\n return s(i ? [\"left\", \"right\"] : [\"top\", \"bottom\"]);\n}\nfunction Jt(i, t, e, s) {\n const n = [];\n let o, r, a, l, c, h;\n for (o = 0, r = i.length, c = 0; o < r; ++o) {\n a = i[o], l = a.box, l.update(\n a.width || t.w,\n a.height || t.h,\n Ja(a.horizontal, t)\n );\n const { same: d, other: u } = Ga(t, e, a, s);\n c |= d && n.length, h = h || u, l.fullSize || n.push(a);\n }\n return c && Jt(n, t, e, s) || h;\n}\nfunction Te(i, t, e, s, n) {\n i.top = e, i.left = t, i.right = t + s, i.bottom = e + n, i.width = s, i.height = n;\n}\nfunction As(i, t, e, s) {\n const n = e.padding;\n let { x: o, y: r } = t;\n for (const a of i) {\n const l = a.box, c = s[a.stack] || { count: 1, placed: 0, weight: 1 }, h = a.stackWeight / c.weight || 1;\n if (a.horizontal) {\n const d = t.w * h, u = c.size || l.height;\n et(c.start) && (r = c.start), l.fullSize ? Te(l, n.left, r, e.outerWidth - n.right - n.left, u) : Te(l, t.left + c.placed, r, d, u), c.start = r, c.placed += d, r = l.bottom;\n } else {\n const d = t.h * h, u = c.size || l.width;\n et(c.start) && (o = c.start), l.fullSize ? Te(l, o, n.top, u, e.outerHeight - n.bottom - n.top) : Te(l, o, t.top + c.placed, u, d), c.start = o, c.placed += d, o = l.right;\n }\n }\n t.x = o, t.y = r;\n}\nO.set(\"layout\", {\n autoPadding: !0,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar X = {\n addBox(i, t) {\n i.boxes || (i.boxes = []), t.fullSize = t.fullSize || !1, t.position = t.position || \"top\", t.weight = t.weight || 0, t._layers = t._layers || function() {\n return [{\n z: 0,\n draw(e) {\n t.draw(e);\n }\n }];\n }, i.boxes.push(t);\n },\n removeBox(i, t) {\n const e = i.boxes ? i.boxes.indexOf(t) : -1;\n e !== -1 && i.boxes.splice(e, 1);\n },\n configure(i, t, e) {\n t.fullSize = e.fullSize, t.position = e.position, t.weight = e.weight;\n },\n update(i, t, e, s) {\n if (!i)\n return;\n const n = K(i.options.layout.padding), o = Math.max(t - n.width, 0), r = Math.max(e - n.height, 0), a = qa(i.boxes), l = a.vertical, c = a.horizontal;\n E(i.boxes, (p) => {\n typeof p.beforeLayout == \"function\" && p.beforeLayout();\n });\n const h = l.reduce((p, m) => m.box.options && m.box.options.display === !1 ? p : p + 1, 0) || 1, d = Object.freeze({\n outerWidth: t,\n outerHeight: e,\n padding: n,\n availableWidth: o,\n availableHeight: r,\n vBoxMaxWidth: o / 2 / h,\n hBoxMaxHeight: r / 2\n }), u = Object.assign({}, n);\n $n(u, K(s));\n const f = Object.assign({\n maxPadding: u,\n w: o,\n h: r,\n x: n.left,\n y: n.top\n }, n), g = Ka(l.concat(c), d);\n Jt(a.fullSize, f, d, g), Jt(l, f, d, g), Jt(c, f, d, g) && Jt(l, f, d, g), Za(f), As(a.leftAndTop, f, d, g), f.x += f.w, f.y += f.h, As(a.rightAndBottom, f, d, g), i.chartArea = {\n left: f.left,\n top: f.top,\n right: f.left + f.w,\n bottom: f.top + f.h,\n height: f.h,\n width: f.w\n }, E(a.chartArea, (p) => {\n const m = p.box;\n Object.assign(m, i.chartArea), m.update(f.w, f.h, { left: 0, top: 0, right: 0, bottom: 0 });\n });\n }\n};\nclass Hi {\n acquireContext(t, e) {\n }\n releaseContext(t) {\n return !1;\n }\n addEventListener(t, e, s) {\n }\n removeEventListener(t, e, s) {\n }\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(t, e, s, n) {\n return e = Math.max(0, e || t.width), s = s || t.height, {\n width: e,\n height: Math.max(0, n ? Math.floor(e / n) : s)\n };\n }\n isAttached(t) {\n return !0;\n }\n updateConfig(t) {\n }\n}\nclass Yn extends Hi {\n acquireContext(t) {\n return t && t.getContext && t.getContext(\"2d\") || null;\n }\n updateConfig(t) {\n t.options.animation = !1;\n }\n}\nconst Ie = \"$chartjs\", Qa = {\n touchstart: \"mousedown\",\n touchmove: \"mousemove\",\n touchend: \"mouseup\",\n pointerenter: \"mouseenter\",\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointerleave: \"mouseout\",\n pointerout: \"mouseout\"\n}, Ts = (i) => i === null || i === \"\";\nfunction tl(i, t) {\n const e = i.style, s = i.getAttribute(\"height\"), n = i.getAttribute(\"width\");\n if (i[Ie] = {\n initial: {\n height: s,\n width: n,\n style: {\n display: e.display,\n height: e.height,\n width: e.width\n }\n }\n }, e.display = e.display || \"block\", e.boxSizing = e.boxSizing || \"border-box\", Ts(n)) {\n const o = cs(i, \"width\");\n o !== void 0 && (i.width = o);\n }\n if (Ts(s))\n if (i.style.height === \"\")\n i.height = i.width / (t || 2);\n else {\n const o = cs(i, \"height\");\n o !== void 0 && (i.height = o);\n }\n return i;\n}\nconst Xn = Vr ? { passive: !0 } : !1;\nfunction el(i, t, e) {\n i.addEventListener(t, e, Xn);\n}\nfunction il(i, t, e) {\n i.canvas.removeEventListener(t, e, Xn);\n}\nfunction sl(i, t) {\n const e = Qa[i.type] || i.type, { x: s, y: n } = Pt(i, t);\n return {\n type: e,\n chart: t,\n native: i,\n x: s !== void 0 ? s : null,\n y: n !== void 0 ? n : null\n };\n}\nfunction je(i, t) {\n for (const e of i)\n if (e === t || e.contains(t))\n return !0;\n}\nfunction nl(i, t, e) {\n const s = i.canvas, n = new MutationObserver((o) => {\n let r = !1;\n for (const a of o)\n r = r || je(a.addedNodes, s), r = r && !je(a.removedNodes, s);\n r && e();\n });\n return n.observe(document, { childList: !0, subtree: !0 }), n;\n}\nfunction ol(i, t, e) {\n const s = i.canvas, n = new MutationObserver((o) => {\n let r = !1;\n for (const a of o)\n r = r || je(a.removedNodes, s), r = r && !je(a.addedNodes, s);\n r && e();\n });\n return n.observe(document, { childList: !0, subtree: !0 }), n;\n}\nconst le = /* @__PURE__ */ new Map();\nlet Ls = 0;\nfunction Un() {\n const i = window.devicePixelRatio;\n i !== Ls && (Ls = i, le.forEach((t, e) => {\n e.currentDevicePixelRatio !== i && t();\n }));\n}\nfunction rl(i, t) {\n le.size || window.addEventListener(\"resize\", Un), le.set(i, t);\n}\nfunction al(i) {\n le.delete(i), le.size || window.removeEventListener(\"resize\", Un);\n}\nfunction ll(i, t, e) {\n const s = i.canvas, n = s && Wi(s);\n if (!n)\n return;\n const o = gn((a, l) => {\n const c = n.clientWidth;\n e(a, l), c < n.clientWidth && e();\n }, window), r = new ResizeObserver((a) => {\n const l = a[0], c = l.contentRect.width, h = l.contentRect.height;\n c === 0 && h === 0 || o(c, h);\n });\n return r.observe(n), rl(i, o), r;\n}\nfunction fi(i, t, e) {\n e && e.disconnect(), t === \"resize\" && al(i);\n}\nfunction cl(i, t, e) {\n const s = i.canvas, n = gn((o) => {\n i.ctx !== null && e(sl(o, i));\n }, i, (o) => {\n const r = o[0];\n return [r, r.offsetX, r.offsetY];\n });\n return el(s, t, n), n;\n}\nclass Kn extends Hi {\n acquireContext(t, e) {\n const s = t && t.getContext && t.getContext(\"2d\");\n return s && s.canvas === t ? (tl(t, e), s) : null;\n }\n releaseContext(t) {\n const e = t.canvas;\n if (!e[Ie])\n return !1;\n const s = e[Ie].initial;\n [\"height\", \"width\"].forEach((o) => {\n const r = s[o];\n T(r) ? e.removeAttribute(o) : e.setAttribute(o, r);\n });\n const n = s.style || {};\n return Object.keys(n).forEach((o) => {\n e.style[o] = n[o];\n }), e.width = e.width, delete e[Ie], !0;\n }\n addEventListener(t, e, s) {\n this.removeEventListener(t, e);\n const n = t.$proxies || (t.$proxies = {}), r = {\n attach: nl,\n detach: ol,\n resize: ll\n }[e] || cl;\n n[e] = r(t, e, s);\n }\n removeEventListener(t, e) {\n const s = t.$proxies || (t.$proxies = {}), n = s[e];\n if (!n)\n return;\n ({\n attach: fi,\n detach: fi,\n resize: fi\n }[e] || il)(t, e, n), s[e] = void 0;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(t, e, s, n) {\n return Br(t, e, s, n);\n }\n isAttached(t) {\n const e = Wi(t);\n return !!(e && e.isConnected);\n }\n}\nfunction qn(i) {\n return !An() || typeof OffscreenCanvas < \"u\" && i instanceof OffscreenCanvas ? Yn : Kn;\n}\nclass hl {\n constructor() {\n this._init = [];\n }\n notify(t, e, s, n) {\n e === \"beforeInit\" && (this._init = this._createDescriptors(t, !0), this._notify(this._init, t, \"install\"));\n const o = n ? this._descriptors(t).filter(n) : this._descriptors(t), r = this._notify(o, t, e, s);\n return e === \"afterDestroy\" && (this._notify(o, t, \"stop\"), this._notify(this._init, t, \"uninstall\")), r;\n }\n _notify(t, e, s, n) {\n n = n || {};\n for (const o of t) {\n const r = o.plugin, a = r[s], l = [e, n, o.options];\n if (I(a, l, r) === !1 && n.cancelable)\n return !1;\n }\n return !0;\n }\n invalidate() {\n T(this._cache) || (this._oldCache = this._cache, this._cache = void 0);\n }\n _descriptors(t) {\n if (this._cache)\n return this._cache;\n const e = this._cache = this._createDescriptors(t);\n return this._notifyStateChanges(t), e;\n }\n _createDescriptors(t, e) {\n const s = t && t.config, n = C(s.options && s.options.plugins, {}), o = dl(s);\n return n === !1 && !e ? [] : fl(t, o, n, e);\n }\n _notifyStateChanges(t) {\n const e = this._oldCache || [], s = this._cache, n = (o, r) => o.filter((a) => !r.some((l) => a.plugin.id === l.plugin.id));\n this._notify(n(e, s), t, \"stop\"), this._notify(n(s, e), t, \"start\");\n }\n}\nfunction dl(i) {\n const t = {}, e = [], s = Object.keys(ot.plugins.items);\n for (let o = 0; o < s.length; o++)\n e.push(ot.getPlugin(s[o]));\n const n = i.plugins || [];\n for (let o = 0; o < n.length; o++) {\n const r = n[o];\n e.indexOf(r) === -1 && (e.push(r), t[r.id] = !0);\n }\n return { plugins: e, localIds: t };\n}\nfunction ul(i, t) {\n return !t && i === !1 ? null : i === !0 ? {} : i;\n}\nfunction fl(i, { plugins: t, localIds: e }, s, n) {\n const o = [], r = i.getContext();\n for (const a of t) {\n const l = a.id, c = ul(s[l], n);\n c !== null && o.push({\n plugin: a,\n options: gl(i.config, { plugin: a, local: e[l] }, c, r)\n });\n }\n return o;\n}\nfunction gl(i, { plugin: t, local: e }, s, n) {\n const o = i.pluginScopeKeys(t), r = i.getOptionScopes(s, o);\n return e && t.defaults && r.push(t.defaults), i.createResolver(r, n, [\"\"], {\n scriptable: !1,\n indexable: !1,\n allKeys: !0\n });\n}\nfunction Mi(i, t) {\n const e = O.datasets[i] || {};\n return ((t.datasets || {})[i] || {}).indexAxis || t.indexAxis || e.indexAxis || \"x\";\n}\nfunction pl(i, t) {\n let e = i;\n return i === \"_index_\" ? e = t : i === \"_value_\" && (e = t === \"x\" ? \"y\" : \"x\"), e;\n}\nfunction ml(i, t) {\n return i === t ? \"_index_\" : \"_value_\";\n}\nfunction bl(i) {\n if (i === \"top\" || i === \"bottom\")\n return \"x\";\n if (i === \"left\" || i === \"right\")\n return \"y\";\n}\nfunction ki(i, t) {\n return i === \"x\" || i === \"y\" ? i : t.axis || bl(t.position) || i.charAt(0).toLowerCase();\n}\nfunction xl(i, t) {\n const e = At[i.type] || { scales: {} }, s = t.scales || {}, n = Mi(i.type, t), o = /* @__PURE__ */ Object.create(null), r = /* @__PURE__ */ Object.create(null);\n return Object.keys(s).forEach((a) => {\n const l = s[a];\n if (!D(l))\n return console.error(`Invalid scale configuration for scale: ${a}`);\n if (l._proxy)\n return console.warn(`Ignoring resolver passed as options for scale: ${a}`);\n const c = ki(a, l), h = ml(c, n), d = e.scales || {};\n o[c] = o[c] || a, r[a] = Qt(/* @__PURE__ */ Object.create(null), [{ axis: c }, l, d[c], d[h]]);\n }), i.data.datasets.forEach((a) => {\n const l = a.type || i.type, c = a.indexAxis || Mi(l, t), d = (At[l] || {}).scales || {};\n Object.keys(d).forEach((u) => {\n const f = pl(u, c), g = a[f + \"AxisID\"] || o[f] || f;\n r[g] = r[g] || /* @__PURE__ */ Object.create(null), Qt(r[g], [{ axis: f }, s[g], d[u]]);\n });\n }), Object.keys(r).forEach((a) => {\n const l = r[a];\n Qt(l, [O.scales[l.type], O.scale]);\n }), r;\n}\nfunction Gn(i) {\n const t = i.options || (i.options = {});\n t.plugins = C(t.plugins, {}), t.scales = xl(i, t);\n}\nfunction Zn(i) {\n return i = i || {}, i.datasets = i.datasets || [], i.labels = i.labels || [], i;\n}\nfunction _l(i) {\n return i = i || {}, i.data = Zn(i.data), Gn(i), i;\n}\nconst Rs = /* @__PURE__ */ new Map(), Jn = /* @__PURE__ */ new Set();\nfunction Le(i, t) {\n let e = Rs.get(i);\n return e || (e = t(), Rs.set(i, e), Jn.add(e)), e;\n}\nconst qt = (i, t, e) => {\n const s = _t(t, e);\n s !== void 0 && i.add(s);\n};\nclass yl {\n constructor(t) {\n this._config = _l(t), this._scopeCache = /* @__PURE__ */ new Map(), this._resolverCache = /* @__PURE__ */ new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(t) {\n this._config.type = t;\n }\n get data() {\n return this._config.data;\n }\n set data(t) {\n this._config.data = Zn(t);\n }\n get options() {\n return this._config.options;\n }\n set options(t) {\n this._config.options = t;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const t = this._config;\n this.clearCache(), Gn(t);\n }\n clearCache() {\n this._scopeCache.clear(), this._resolverCache.clear();\n }\n datasetScopeKeys(t) {\n return Le(\n t,\n () => [[\n `datasets.${t}`,\n \"\"\n ]]\n );\n }\n datasetAnimationScopeKeys(t, e) {\n return Le(\n `${t}.transition.${e}`,\n () => [\n [\n `datasets.${t}.transitions.${e}`,\n `transitions.${e}`\n ],\n [\n `datasets.${t}`,\n \"\"\n ]\n ]\n );\n }\n datasetElementScopeKeys(t, e) {\n return Le(\n `${t}-${e}`,\n () => [[\n `datasets.${t}.elements.${e}`,\n `datasets.${t}`,\n `elements.${e}`,\n \"\"\n ]]\n );\n }\n pluginScopeKeys(t) {\n const e = t.id, s = this.type;\n return Le(\n `${s}-plugin-${e}`,\n () => [[\n `plugins.${e}`,\n ...t.additionalOptionScopes || []\n ]]\n );\n }\n _cachedScopes(t, e) {\n const s = this._scopeCache;\n let n = s.get(t);\n return (!n || e) && (n = /* @__PURE__ */ new Map(), s.set(t, n)), n;\n }\n getOptionScopes(t, e, s) {\n const { options: n, type: o } = this, r = this._cachedScopes(t, s), a = r.get(e);\n if (a)\n return a;\n const l = /* @__PURE__ */ new Set();\n e.forEach((h) => {\n t && (l.add(t), h.forEach((d) => qt(l, t, d))), h.forEach((d) => qt(l, n, d)), h.forEach((d) => qt(l, At[o] || {}, d)), h.forEach((d) => qt(l, O, d)), h.forEach((d) => qt(l, _i, d));\n });\n const c = Array.from(l);\n return c.length === 0 && c.push(/* @__PURE__ */ Object.create(null)), Jn.has(e) && r.set(e, c), c;\n }\n chartOptionScopes() {\n const { options: t, type: e } = this;\n return [\n t,\n At[e] || {},\n O.datasets[e] || {},\n { type: e },\n O,\n _i\n ];\n }\n resolveNamedOptions(t, e, s, n = [\"\"]) {\n const o = { $shared: !0 }, { resolver: r, subPrefixes: a } = Es(this._resolverCache, t, n);\n let l = r;\n if (Ml(r, e)) {\n o.$shared = !1, s = yt(s) ? s() : s;\n const c = this.createResolver(t, s, a);\n l = Vt(r, s, c);\n }\n for (const c of e)\n o[c] = l[c];\n return o;\n }\n createResolver(t, e, s = [\"\"], n) {\n const { resolver: o } = Es(this._resolverCache, t, s);\n return D(e) ? Vt(o, e, void 0, n) : o;\n }\n}\nfunction Es(i, t, e) {\n let s = i.get(t);\n s || (s = /* @__PURE__ */ new Map(), i.set(t, s));\n const n = e.join();\n let o = s.get(n);\n return o || (o = {\n resolver: zi(t, e),\n subPrefixes: e.filter((a) => !a.toLowerCase().includes(\"hover\"))\n }, s.set(n, o)), o;\n}\nconst vl = (i) => D(i) && Object.getOwnPropertyNames(i).reduce((t, e) => t || yt(i[e]), !1);\nfunction Ml(i, t) {\n const { isScriptable: e, isIndexable: s } = wn(i);\n for (const n of t) {\n const o = e(n), r = s(n), a = (r || o) && i[n];\n if (o && (yt(a) || vl(a)) || r && z(a))\n return !0;\n }\n return !1;\n}\nvar kl = \"3.9.1\";\nconst wl = [\"top\", \"bottom\", \"left\", \"right\", \"chartArea\"];\nfunction Fs(i, t) {\n return i === \"top\" || i === \"bottom\" || wl.indexOf(i) === -1 && t === \"x\";\n}\nfunction Is(i, t) {\n return function(e, s) {\n return e[i] === s[i] ? e[t] - s[t] : e[i] - s[i];\n };\n}\nfunction zs(i) {\n const t = i.chart, e = t.options.animation;\n t.notifyPlugins(\"afterRender\"), I(e && e.onComplete, [i], t);\n}\nfunction Sl(i) {\n const t = i.chart, e = t.options.animation;\n I(e && e.onProgress, [i], t);\n}\nfunction Qn(i) {\n return An() && typeof i == \"string\" ? i = document.getElementById(i) : i && i.length && (i = i[0]), i && i.canvas && (i = i.canvas), i;\n}\nconst $e = {}, to = (i) => {\n const t = Qn(i);\n return Object.values($e).filter((e) => e.canvas === t).pop();\n};\nfunction Pl(i, t, e) {\n const s = Object.keys(i);\n for (const n of s) {\n const o = +n;\n if (o >= t) {\n const r = i[n];\n delete i[n], (e > 0 || o > t) && (i[o + e] = r);\n }\n }\n}\nfunction Cl(i, t, e, s) {\n return !e || i.type === \"mouseout\" ? null : s ? t : i;\n}\nclass ji {\n constructor(t, e) {\n const s = this.config = new yl(e), n = Qn(t), o = to(n);\n if (o)\n throw new Error(\n \"Canvas is already in use. Chart with ID '\" + o.id + \"' must be destroyed before the canvas with ID '\" + o.canvas.id + \"' can be reused.\"\n );\n const r = s.createResolver(s.chartOptionScopes(), this.getContext());\n this.platform = new (s.platform || qn(n))(), this.platform.updateConfig(s);\n const a = this.platform.acquireContext(n, r.aspectRatio), l = a && a.canvas, c = l && l.height, h = l && l.width;\n if (this.id = _o(), this.ctx = a, this.canvas = l, this.width = h, this.height = c, this._options = r, this._aspectRatio = this.aspectRatio, this._layers = [], this._metasets = [], this._stacks = void 0, this.boxes = [], this.currentDevicePixelRatio = void 0, this.chartArea = void 0, this._active = [], this._lastEvent = void 0, this._listeners = {}, this._responsiveListeners = void 0, this._sortedMetasets = [], this.scales = {}, this._plugins = new hl(), this.$proxies = {}, this._hiddenIndices = {}, this.attached = !1, this._animationsDisabled = void 0, this.$context = void 0, this._doResize = Fo((d) => this.update(d), r.resizeDelay || 0), this._dataChanges = [], $e[this.id] = this, !a || !l) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n at.listen(this, \"complete\", zs), at.listen(this, \"progress\", Sl), this._initialize(), this.attached && this.update();\n }\n get aspectRatio() {\n const { options: { aspectRatio: t, maintainAspectRatio: e }, width: s, height: n, _aspectRatio: o } = this;\n return T(t) ? e && o ? o : n ? s / n : null : t;\n }\n get data() {\n return this.config.data;\n }\n set data(t) {\n this.config.data = t;\n }\n get options() {\n return this._options;\n }\n set options(t) {\n this.config.options = t;\n }\n _initialize() {\n return this.notifyPlugins(\"beforeInit\"), this.options.responsive ? this.resize() : ls(this, this.options.devicePixelRatio), this.bindEvents(), this.notifyPlugins(\"afterInit\"), this;\n }\n clear() {\n return os(this.canvas, this.ctx), this;\n }\n stop() {\n return at.stop(this), this;\n }\n resize(t, e) {\n at.running(this) ? this._resizeBeforeDraw = { width: t, height: e } : this._resize(t, e);\n }\n _resize(t, e) {\n const s = this.options, n = this.canvas, o = s.maintainAspectRatio && this.aspectRatio, r = this.platform.getMaximumSize(n, t, e, o), a = s.devicePixelRatio || this.platform.getDevicePixelRatio(), l = this.width ? \"resize\" : \"attach\";\n this.width = r.width, this.height = r.height, this._aspectRatio = this.aspectRatio, ls(this, a, !0) && (this.notifyPlugins(\"resize\", { size: r }), I(s.onResize, [this, r], this), this.attached && this._doResize(l) && this.render());\n }\n ensureScalesHaveIDs() {\n const e = this.options.scales || {};\n E(e, (s, n) => {\n s.id = n;\n });\n }\n buildOrUpdateScales() {\n const t = this.options, e = t.scales, s = this.scales, n = Object.keys(s).reduce((r, a) => (r[a] = !1, r), {});\n let o = [];\n e && (o = o.concat(\n Object.keys(e).map((r) => {\n const a = e[r], l = ki(r, a), c = l === \"r\", h = l === \"x\";\n return {\n options: a,\n dposition: c ? \"chartArea\" : h ? \"bottom\" : \"left\",\n dtype: c ? \"radialLinear\" : h ? \"category\" : \"linear\"\n };\n })\n )), E(o, (r) => {\n const a = r.options, l = a.id, c = ki(l, a), h = C(a.type, r.dtype);\n (a.position === void 0 || Fs(a.position, c) !== Fs(r.dposition)) && (a.position = r.dposition), n[l] = !0;\n let d = null;\n if (l in s && s[l].type === h)\n d = s[l];\n else {\n const u = ot.getScale(h);\n d = new u({\n id: l,\n type: h,\n ctx: this.ctx,\n chart: this\n }), s[d.id] = d;\n }\n d.init(a, t);\n }), E(n, (r, a) => {\n r || delete s[a];\n }), E(s, (r) => {\n X.configure(this, r, r.options), X.addBox(this, r);\n });\n }\n _updateMetasets() {\n const t = this._metasets, e = this.data.datasets.length, s = t.length;\n if (t.sort((n, o) => n.index - o.index), s > e) {\n for (let n = e; n < s; ++n)\n this._destroyDatasetMeta(n);\n t.splice(e, s - e);\n }\n this._sortedMetasets = t.slice(0).sort(Is(\"order\", \"index\"));\n }\n _removeUnreferencedMetasets() {\n const { _metasets: t, data: { datasets: e } } = this;\n t.length > e.length && delete this._stacks, t.forEach((s, n) => {\n e.filter((o) => o === s._dataset).length === 0 && this._destroyDatasetMeta(n);\n });\n }\n buildOrUpdateControllers() {\n const t = [], e = this.data.datasets;\n let s, n;\n for (this._removeUnreferencedMetasets(), s = 0, n = e.length; s < n; s++) {\n const o = e[s];\n let r = this.getDatasetMeta(s);\n const a = o.type || this.config.type;\n if (r.type && r.type !== a && (this._destroyDatasetMeta(s), r = this.getDatasetMeta(s)), r.type = a, r.indexAxis = o.indexAxis || Mi(a, this.options), r.order = o.order || 0, r.index = s, r.label = \"\" + o.label, r.visible = this.isDatasetVisible(s), r.controller)\n r.controller.updateIndex(s), r.controller.linkScales();\n else {\n const l = ot.getController(a), { datasetElementType: c, dataElementType: h } = O.datasets[a];\n Object.assign(l.prototype, {\n dataElementType: ot.getElement(h),\n datasetElementType: c && ot.getElement(c)\n }), r.controller = new l(this, s), t.push(r.controller);\n }\n }\n return this._updateMetasets(), t;\n }\n _resetElements() {\n E(this.data.datasets, (t, e) => {\n this.getDatasetMeta(e).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements(), this.notifyPlugins(\"reset\");\n }\n update(t) {\n const e = this.config;\n e.update();\n const s = this._options = e.createResolver(e.chartOptionScopes(), this.getContext()), n = this._animationsDisabled = !s.animation;\n if (this._updateScales(), this._checkEventBindings(), this._updateHiddenIndices(), this._plugins.invalidate(), this.notifyPlugins(\"beforeUpdate\", { mode: t, cancelable: !0 }) === !1)\n return;\n const o = this.buildOrUpdateControllers();\n this.notifyPlugins(\"beforeElementsUpdate\");\n let r = 0;\n for (let c = 0, h = this.data.datasets.length; c < h; c++) {\n const { controller: d } = this.getDatasetMeta(c), u = !n && o.indexOf(d) === -1;\n d.buildOrUpdateElements(u), r = Math.max(+d.getMaxOverflow(), r);\n }\n r = this._minPadding = s.layout.autoPadding ? r : 0, this._updateLayout(r), n || E(o, (c) => {\n c.reset();\n }), this._updateDatasets(t), this.notifyPlugins(\"afterUpdate\", { mode: t }), this._layers.sort(Is(\"z\", \"_idx\"));\n const { _active: a, _lastEvent: l } = this;\n l ? this._eventHandler(l, !0) : a.length && this._updateHoverStyles(a, a, !0), this.render();\n }\n _updateScales() {\n E(this.scales, (t) => {\n X.removeBox(this, t);\n }), this.ensureScalesHaveIDs(), this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const t = this.options, e = new Set(Object.keys(this._listeners)), s = new Set(t.events);\n (!Ui(e, s) || !!this._responsiveListeners !== t.responsive) && (this.unbindEvents(), this.bindEvents());\n }\n _updateHiddenIndices() {\n const { _hiddenIndices: t } = this, e = this._getUniformDataChanges() || [];\n for (const { method: s, start: n, count: o } of e) {\n const r = s === \"_removeElements\" ? -o : o;\n Pl(t, n, r);\n }\n }\n _getUniformDataChanges() {\n const t = this._dataChanges;\n if (!t || !t.length)\n return;\n this._dataChanges = [];\n const e = this.data.datasets.length, s = (o) => new Set(\n t.filter((r) => r[0] === o).map((r, a) => a + \",\" + r.splice(1).join(\",\"))\n ), n = s(0);\n for (let o = 1; o < e; o++)\n if (!Ui(n, s(o)))\n return;\n return Array.from(n).map((o) => o.split(\",\")).map((o) => ({ method: o[1], start: +o[2], count: +o[3] }));\n }\n _updateLayout(t) {\n if (this.notifyPlugins(\"beforeLayout\", { cancelable: !0 }) === !1)\n return;\n X.update(this, this.width, this.height, t);\n const e = this.chartArea, s = e.width <= 0 || e.height <= 0;\n this._layers = [], E(this.boxes, (n) => {\n s && n.position === \"chartArea\" || (n.configure && n.configure(), this._layers.push(...n._layers()));\n }, this), this._layers.forEach((n, o) => {\n n._idx = o;\n }), this.notifyPlugins(\"afterLayout\");\n }\n _updateDatasets(t) {\n if (this.notifyPlugins(\"beforeDatasetsUpdate\", { mode: t, cancelable: !0 }) !== !1) {\n for (let e = 0, s = this.data.datasets.length; e < s; ++e)\n this.getDatasetMeta(e).controller.configure();\n for (let e = 0, s = this.data.datasets.length; e < s; ++e)\n this._updateDataset(e, yt(t) ? t({ datasetIndex: e }) : t);\n this.notifyPlugins(\"afterDatasetsUpdate\", { mode: t });\n }\n }\n _updateDataset(t, e) {\n const s = this.getDatasetMeta(t), n = { meta: s, index: t, mode: e, cancelable: !0 };\n this.notifyPlugins(\"beforeDatasetUpdate\", n) !== !1 && (s.controller._update(e), n.cancelable = !1, this.notifyPlugins(\"afterDatasetUpdate\", n));\n }\n render() {\n this.notifyPlugins(\"beforeRender\", { cancelable: !0 }) !== !1 && (at.has(this) ? this.attached && !at.running(this) && at.start(this) : (this.draw(), zs({ chart: this })));\n }\n draw() {\n let t;\n if (this._resizeBeforeDraw) {\n const { width: s, height: n } = this._resizeBeforeDraw;\n this._resize(s, n), this._resizeBeforeDraw = null;\n }\n if (this.clear(), this.width <= 0 || this.height <= 0 || this.notifyPlugins(\"beforeDraw\", { cancelable: !0 }) === !1)\n return;\n const e = this._layers;\n for (t = 0; t < e.length && e[t].z <= 0; ++t)\n e[t].draw(this.chartArea);\n for (this._drawDatasets(); t < e.length; ++t)\n e[t].draw(this.chartArea);\n this.notifyPlugins(\"afterDraw\");\n }\n _getSortedDatasetMetas(t) {\n const e = this._sortedMetasets, s = [];\n let n, o;\n for (n = 0, o = e.length; n < o; ++n) {\n const r = e[n];\n (!t || r.visible) && s.push(r);\n }\n return s;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(!0);\n }\n _drawDatasets() {\n if (this.notifyPlugins(\"beforeDatasetsDraw\", { cancelable: !0 }) === !1)\n return;\n const t = this.getSortedVisibleDatasetMetas();\n for (let e = t.length - 1; e >= 0; --e)\n this._drawDataset(t[e]);\n this.notifyPlugins(\"afterDatasetsDraw\");\n }\n _drawDataset(t) {\n const e = this.ctx, s = t._clip, n = !s.disabled, o = this.chartArea, r = {\n meta: t,\n index: t.index,\n cancelable: !0\n };\n this.notifyPlugins(\"beforeDatasetDraw\", r) !== !1 && (n && Xe(e, {\n left: s.left === !1 ? 0 : o.left - s.left,\n right: s.right === !1 ? this.width : o.right + s.right,\n top: s.top === !1 ? 0 : o.top - s.top,\n bottom: s.bottom === !1 ? this.height : o.bottom + s.bottom\n }), t.controller.draw(), n && Ue(e), r.cancelable = !1, this.notifyPlugins(\"afterDatasetDraw\", r));\n }\n isPointInArea(t) {\n return re(t, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(t, e, s, n) {\n const o = Hn.modes[e];\n return typeof o == \"function\" ? o(this, t, s, n) : [];\n }\n getDatasetMeta(t) {\n const e = this.data.datasets[t], s = this._metasets;\n let n = s.filter((o) => o && o._dataset === e).pop();\n return n || (n = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: e && e.order || 0,\n index: t,\n _dataset: e,\n _parsed: [],\n _sorted: !1\n }, s.push(n)), n;\n }\n getContext() {\n return this.$context || (this.$context = vt(null, { chart: this, type: \"chart\" }));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(t) {\n const e = this.data.datasets[t];\n if (!e)\n return !1;\n const s = this.getDatasetMeta(t);\n return typeof s.hidden == \"boolean\" ? !s.hidden : !e.hidden;\n }\n setDatasetVisibility(t, e) {\n const s = this.getDatasetMeta(t);\n s.hidden = !e;\n }\n toggleDataVisibility(t) {\n this._hiddenIndices[t] = !this._hiddenIndices[t];\n }\n getDataVisibility(t) {\n return !this._hiddenIndices[t];\n }\n _updateVisibility(t, e, s) {\n const n = s ? \"show\" : \"hide\", o = this.getDatasetMeta(t), r = o.controller._resolveAnimations(void 0, n);\n et(e) ? (o.data[e].hidden = !s, this.update()) : (this.setDatasetVisibility(t, s), r.update(o, { visible: s }), this.update((a) => a.datasetIndex === t ? n : void 0));\n }\n hide(t, e) {\n this._updateVisibility(t, e, !1);\n }\n show(t, e) {\n this._updateVisibility(t, e, !0);\n }\n _destroyDatasetMeta(t) {\n const e = this._metasets[t];\n e && e.controller && e.controller._destroy(), delete this._metasets[t];\n }\n _stop() {\n let t, e;\n for (this.stop(), at.remove(this), t = 0, e = this.data.datasets.length; t < e; ++t)\n this._destroyDatasetMeta(t);\n }\n destroy() {\n this.notifyPlugins(\"beforeDestroy\");\n const { canvas: t, ctx: e } = this;\n this._stop(), this.config.clearCache(), t && (this.unbindEvents(), os(t, e), this.platform.releaseContext(e), this.canvas = null, this.ctx = null), this.notifyPlugins(\"destroy\"), delete $e[this.id], this.notifyPlugins(\"afterDestroy\");\n }\n toBase64Image(...t) {\n return this.canvas.toDataURL(...t);\n }\n bindEvents() {\n this.bindUserEvents(), this.options.responsive ? this.bindResponsiveEvents() : this.attached = !0;\n }\n bindUserEvents() {\n const t = this._listeners, e = this.platform, s = (o, r) => {\n e.addEventListener(this, o, r), t[o] = r;\n }, n = (o, r, a) => {\n o.offsetX = r, o.offsetY = a, this._eventHandler(o);\n };\n E(this.options.events, (o) => s(o, n));\n }\n bindResponsiveEvents() {\n this._responsiveListeners || (this._responsiveListeners = {});\n const t = this._responsiveListeners, e = this.platform, s = (l, c) => {\n e.addEventListener(this, l, c), t[l] = c;\n }, n = (l, c) => {\n t[l] && (e.removeEventListener(this, l, c), delete t[l]);\n }, o = (l, c) => {\n this.canvas && this.resize(l, c);\n };\n let r;\n const a = () => {\n n(\"attach\", a), this.attached = !0, this.resize(), s(\"resize\", o), s(\"detach\", r);\n };\n r = () => {\n this.attached = !1, n(\"resize\", o), this._stop(), this._resize(0, 0), s(\"attach\", a);\n }, e.isAttached(this.canvas) ? a() : r();\n }\n unbindEvents() {\n E(this._listeners, (t, e) => {\n this.platform.removeEventListener(this, e, t);\n }), this._listeners = {}, E(this._responsiveListeners, (t, e) => {\n this.platform.removeEventListener(this, e, t);\n }), this._responsiveListeners = void 0;\n }\n updateHoverStyle(t, e, s) {\n const n = s ? \"set\" : \"remove\";\n let o, r, a, l;\n for (e === \"dataset\" && (o = this.getDatasetMeta(t[0].datasetIndex), o.controller[\"_\" + n + \"DatasetHoverStyle\"]()), a = 0, l = t.length; a < l; ++a) {\n r = t[a];\n const c = r && this.getDatasetMeta(r.datasetIndex).controller;\n c && c[n + \"HoverStyle\"](r.element, r.datasetIndex, r.index);\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(t) {\n const e = this._active || [], s = t.map(({ datasetIndex: o, index: r }) => {\n const a = this.getDatasetMeta(o);\n if (!a)\n throw new Error(\"No dataset found at index \" + o);\n return {\n datasetIndex: o,\n element: a.data[r],\n index: r\n };\n });\n !ze(s, e) && (this._active = s, this._lastEvent = null, this._updateHoverStyles(s, e));\n }\n notifyPlugins(t, e, s) {\n return this._plugins.notify(this, t, e, s);\n }\n _updateHoverStyles(t, e, s) {\n const n = this.options.hover, o = (l, c) => l.filter((h) => !c.some((d) => h.datasetIndex === d.datasetIndex && h.index === d.index)), r = o(e, t), a = s ? t : o(t, e);\n r.length && this.updateHoverStyle(r, n.mode, !1), a.length && n.mode && this.updateHoverStyle(a, n.mode, !0);\n }\n _eventHandler(t, e) {\n const s = {\n event: t,\n replay: e,\n cancelable: !0,\n inChartArea: this.isPointInArea(t)\n }, n = (r) => (r.options.events || this.options.events).includes(t.native.type);\n if (this.notifyPlugins(\"beforeEvent\", s, n) === !1)\n return;\n const o = this._handleEvent(t, e, s.inChartArea);\n return s.cancelable = !1, this.notifyPlugins(\"afterEvent\", s, n), (o || s.changed) && this.render(), this;\n }\n _handleEvent(t, e, s) {\n const { _active: n = [], options: o } = this, r = e, a = this._getActiveElements(t, n, s, r), l = So(t), c = Cl(t, this._lastEvent, s, l);\n s && (this._lastEvent = null, I(o.onHover, [t, a, this], this), l && I(o.onClick, [t, a, this], this));\n const h = !ze(a, n);\n return (h || e) && (this._active = a, this._updateHoverStyles(a, n, e)), this._lastEvent = c, h;\n }\n _getActiveElements(t, e, s, n) {\n if (t.type === \"mouseout\")\n return [];\n if (!s)\n return e;\n const o = this.options.hover;\n return this.getElementsAtEventForMode(t, o.mode, o, n);\n }\n}\nconst Bs = () => E(ji.instances, (i) => i._plugins.invalidate()), pt = !0;\nObject.defineProperties(ji, {\n defaults: {\n enumerable: pt,\n value: O\n },\n instances: {\n enumerable: pt,\n value: $e\n },\n overrides: {\n enumerable: pt,\n value: At\n },\n registry: {\n enumerable: pt,\n value: ot\n },\n version: {\n enumerable: pt,\n value: kl\n },\n getChart: {\n enumerable: pt,\n value: to\n },\n register: {\n enumerable: pt,\n value: (...i) => {\n ot.add(...i), Bs();\n }\n },\n unregister: {\n enumerable: pt,\n value: (...i) => {\n ot.remove(...i), Bs();\n }\n }\n});\nfunction eo(i, t, e) {\n const { startAngle: s, pixelMargin: n, x: o, y: r, outerRadius: a, innerRadius: l } = t;\n let c = n / a;\n i.beginPath(), i.arc(o, r, a, s - c, e + c), l > n ? (c = n / l, i.arc(o, r, l, e + c, s - c, !0)) : i.arc(o, r, n, e + V, s - V), i.closePath(), i.clip();\n}\nfunction Dl(i) {\n return Ii(i, [\"outerStart\", \"outerEnd\", \"innerStart\", \"innerEnd\"]);\n}\nfunction Ol(i, t, e, s) {\n const n = Dl(i.options.borderRadius), o = (e - t) / 2, r = Math.min(o, s * t / 2), a = (l) => {\n const c = (e - Math.min(o, l)) * s / 2;\n return Y(l, 0, Math.min(o, c));\n };\n return {\n outerStart: a(n.outerStart),\n outerEnd: a(n.outerEnd),\n innerStart: Y(n.innerStart, 0, r),\n innerEnd: Y(n.innerEnd, 0, r)\n };\n}\nfunction It(i, t, e, s) {\n return {\n x: e + i * Math.cos(t),\n y: s + i * Math.sin(t)\n };\n}\nfunction wi(i, t, e, s, n, o) {\n const { x: r, y: a, startAngle: l, pixelMargin: c, innerRadius: h } = t, d = Math.max(t.outerRadius + s + e - c, 0), u = h > 0 ? h + s + e + c : 0;\n let f = 0;\n const g = n - l;\n if (s) {\n const P = h > 0 ? h - s : 0, j = d > 0 ? d - s : 0, W = (P + j) / 2, kt = W !== 0 ? g * W / (W + s) : g;\n f = (g - kt) / 2;\n }\n const p = Math.max(1e-3, g * d - e / B) / d, m = (g - p) / 2, b = l + m + f, x = n - m - f, { outerStart: v, outerEnd: y, innerStart: _, innerEnd: M } = Ol(t, u, d, x - b), k = d - v, S = d - y, w = b + v / k, L = x - y / S, R = u + _, A = u + M, H = b + _ / R, q = x - M / A;\n if (i.beginPath(), o) {\n if (i.arc(r, a, d, w, L), y > 0) {\n const W = It(S, L, r, a);\n i.arc(W.x, W.y, y, L, x + V);\n }\n const P = It(A, x, r, a);\n if (i.lineTo(P.x, P.y), M > 0) {\n const W = It(A, q, r, a);\n i.arc(W.x, W.y, M, x + V, q + Math.PI);\n }\n if (i.arc(r, a, u, x - M / u, b + _ / u, !0), _ > 0) {\n const W = It(R, H, r, a);\n i.arc(W.x, W.y, _, H + Math.PI, b - V);\n }\n const j = It(k, b, r, a);\n if (i.lineTo(j.x, j.y), v > 0) {\n const W = It(k, w, r, a);\n i.arc(W.x, W.y, v, b - V, w);\n }\n } else {\n i.moveTo(r, a);\n const P = Math.cos(w) * d + r, j = Math.sin(w) * d + a;\n i.lineTo(P, j);\n const W = Math.cos(L) * d + r, kt = Math.sin(L) * d + a;\n i.lineTo(W, kt);\n }\n i.closePath();\n}\nfunction Al(i, t, e, s, n) {\n const { fullCircles: o, startAngle: r, circumference: a } = t;\n let l = t.endAngle;\n if (o) {\n wi(i, t, e, s, r + F, n);\n for (let c = 0; c < o; ++c)\n i.fill();\n isNaN(a) || (l = r + a % F, a % F === 0 && (l += F));\n }\n return wi(i, t, e, s, l, n), i.fill(), l;\n}\nfunction Tl(i, t, e) {\n const { x: s, y: n, startAngle: o, pixelMargin: r, fullCircles: a } = t, l = Math.max(t.outerRadius - r, 0), c = t.innerRadius + r;\n let h;\n for (e && eo(i, t, o + F), i.beginPath(), i.arc(s, n, c, o + F, o, !0), h = 0; h < a; ++h)\n i.stroke();\n for (i.beginPath(), i.arc(s, n, l, o, o + F), h = 0; h < a; ++h)\n i.stroke();\n}\nfunction Ll(i, t, e, s, n, o) {\n const { options: r } = t, { borderWidth: a, borderJoinStyle: l } = r, c = r.borderAlign === \"inner\";\n a && (c ? (i.lineWidth = a * 2, i.lineJoin = l || \"round\") : (i.lineWidth = a, i.lineJoin = l || \"bevel\"), t.fullCircles && Tl(i, t, c), c && eo(i, t, n), wi(i, t, e, s, n, o), i.stroke());\n}\nclass ye extends st {\n constructor(t) {\n super(), this.options = void 0, this.circumference = void 0, this.startAngle = void 0, this.endAngle = void 0, this.innerRadius = void 0, this.outerRadius = void 0, this.pixelMargin = 0, this.fullCircles = 0, t && Object.assign(this, t);\n }\n inRange(t, e, s) {\n const n = this.getProps([\"x\", \"y\"], s), { angle: o, distance: r } = hn(n, { x: t, y: e }), { startAngle: a, endAngle: l, innerRadius: c, outerRadius: h, circumference: d } = this.getProps([\n \"startAngle\",\n \"endAngle\",\n \"innerRadius\",\n \"outerRadius\",\n \"circumference\"\n ], s), u = this.options.spacing / 2, g = C(d, l - a) >= F || oe(o, a, l), p = ut(r, c + u, h + u);\n return g && p;\n }\n getCenterPoint(t) {\n const { x: e, y: s, startAngle: n, endAngle: o, innerRadius: r, outerRadius: a } = this.getProps([\n \"x\",\n \"y\",\n \"startAngle\",\n \"endAngle\",\n \"innerRadius\",\n \"outerRadius\",\n \"circumference\"\n ], t), { offset: l, spacing: c } = this.options, h = (n + o) / 2, d = (r + a + c + l) / 2;\n return {\n x: e + Math.cos(h) * d,\n y: s + Math.sin(h) * d\n };\n }\n tooltipPosition(t) {\n return this.getCenterPoint(t);\n }\n draw(t) {\n const { options: e, circumference: s } = this, n = (e.offset || 0) / 2, o = (e.spacing || 0) / 2, r = e.circular;\n if (this.pixelMargin = e.borderAlign === \"inner\" ? 0.33 : 0, this.fullCircles = s > F ? Math.floor(s / F) : 0, s === 0 || this.innerRadius < 0 || this.outerRadius < 0)\n return;\n t.save();\n let a = 0;\n if (n) {\n a = n / 2;\n const c = (this.startAngle + this.endAngle) / 2;\n t.translate(Math.cos(c) * a, Math.sin(c) * a), this.circumference >= B && (a = n);\n }\n t.fillStyle = e.backgroundColor, t.strokeStyle = e.borderColor;\n const l = Al(t, this, a, o, r);\n Ll(t, this, a, o, l, r), t.restore();\n }\n}\nye.id = \"arc\";\nye.defaults = {\n borderAlign: \"center\",\n borderColor: \"#fff\",\n borderJoinStyle: void 0,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: void 0,\n circular: !0\n};\nye.defaultRoutes = {\n backgroundColor: \"backgroundColor\"\n};\nfunction io(i, t, e = t) {\n i.lineCap = C(e.borderCapStyle, t.borderCapStyle), i.setLineDash(C(e.borderDash, t.borderDash)), i.lineDashOffset = C(e.borderDashOffset, t.borderDashOffset), i.lineJoin = C(e.borderJoinStyle, t.borderJoinStyle), i.lineWidth = C(e.borderWidth, t.borderWidth), i.strokeStyle = C(e.borderColor, t.borderColor);\n}\nfunction Rl(i, t, e) {\n i.lineTo(e.x, e.y);\n}\nfunction El(i) {\n return i.stepped ? lr : i.tension || i.cubicInterpolationMode === \"monotone\" ? cr : Rl;\n}\nfunction so(i, t, e = {}) {\n const s = i.length, { start: n = 0, end: o = s - 1 } = e, { start: r, end: a } = t, l = Math.max(n, r), c = Math.min(o, a), h = n < r && o < r || n > a && o > a;\n return {\n count: s,\n start: l,\n loop: t.loop,\n ilen: c < l && !h ? s + c - l : c - l\n };\n}\nfunction Fl(i, t, e, s) {\n const { points: n, options: o } = t, { count: r, start: a, loop: l, ilen: c } = so(n, e, s), h = El(o);\n let { move: d = !0, reverse: u } = s || {}, f, g, p;\n for (f = 0; f <= c; ++f)\n g = n[(a + (u ? c - f : f)) % r], !g.skip && (d ? (i.moveTo(g.x, g.y), d = !1) : h(i, p, g, u, o.stepped), p = g);\n return l && (g = n[(a + (u ? c : 0)) % r], h(i, p, g, u, o.stepped)), !!l;\n}\nfunction Il(i, t, e, s) {\n const n = t.points, { count: o, start: r, ilen: a } = so(n, e, s), { move: l = !0, reverse: c } = s || {};\n let h = 0, d = 0, u, f, g, p, m, b;\n const x = (y) => (r + (c ? a - y : y)) % o, v = () => {\n p !== m && (i.lineTo(h, m), i.lineTo(h, p), i.lineTo(h, b));\n };\n for (l && (f = n[x(0)], i.moveTo(f.x, f.y)), u = 0; u <= a; ++u) {\n if (f = n[x(u)], f.skip)\n continue;\n const y = f.x, _ = f.y, M = y | 0;\n M === g ? (_ < p ? p = _ : _ > m && (m = _), h = (d * h + y) / ++d) : (v(), i.lineTo(y, _), g = M, d = 0, p = m = _), b = _;\n }\n v();\n}\nfunction Si(i) {\n const t = i.options, e = t.borderDash && t.borderDash.length;\n return !i._decimated && !i._loop && !t.tension && t.cubicInterpolationMode !== \"monotone\" && !t.stepped && !e ? Il : Fl;\n}\nfunction zl(i) {\n return i.stepped ? Wr : i.tension || i.cubicInterpolationMode === \"monotone\" ? Nr : Ct;\n}\nfunction Bl(i, t, e, s) {\n let n = t._path;\n n || (n = t._path = new Path2D(), t.path(n, e, s) && n.closePath()), io(i, t.options), i.stroke(n);\n}\nfunction Vl(i, t, e, s) {\n const { segments: n, options: o } = t, r = Si(t);\n for (const a of n)\n io(i, o, a.style), i.beginPath(), r(i, t, a, { start: e, end: e + s - 1 }) && i.closePath(), i.stroke();\n}\nconst Wl = typeof Path2D == \"function\";\nfunction Nl(i, t, e, s) {\n Wl && !t.options.segment ? Bl(i, t, e, s) : Vl(i, t, e, s);\n}\nclass gt extends st {\n constructor(t) {\n super(), this.animated = !0, this.options = void 0, this._chart = void 0, this._loop = void 0, this._fullLoop = void 0, this._path = void 0, this._points = void 0, this._segments = void 0, this._decimated = !1, this._pointsUpdated = !1, this._datasetIndex = void 0, t && Object.assign(this, t);\n }\n updateControlPoints(t, e) {\n const s = this.options;\n if ((s.tension || s.cubicInterpolationMode === \"monotone\") && !s.stepped && !this._pointsUpdated) {\n const n = s.spanGaps ? this._loop : this._fullLoop;\n Lr(this._points, s, t, n, e), this._pointsUpdated = !0;\n }\n }\n set points(t) {\n this._points = t, delete this._segments, delete this._path, this._pointsUpdated = !1;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = Kr(this, this.options.segment));\n }\n first() {\n const t = this.segments, e = this.points;\n return t.length && e[t[0].start];\n }\n last() {\n const t = this.segments, e = this.points, s = t.length;\n return s && e[t[s - 1].end];\n }\n interpolate(t, e) {\n const s = this.options, n = t[e], o = this.points, r = Fn(this, { property: e, start: n, end: n });\n if (!r.length)\n return;\n const a = [], l = zl(s);\n let c, h;\n for (c = 0, h = r.length; c < h; ++c) {\n const { start: d, end: u } = r[c], f = o[d], g = o[u];\n if (f === g) {\n a.push(f);\n continue;\n }\n const p = Math.abs((n - f[e]) / (g[e] - f[e])), m = l(f, g, p, s.stepped);\n m[e] = t[e], a.push(m);\n }\n return a.length === 1 ? a[0] : a;\n }\n pathSegment(t, e, s) {\n return Si(this)(t, this, e, s);\n }\n path(t, e, s) {\n const n = this.segments, o = Si(this);\n let r = this._loop;\n e = e || 0, s = s || this.points.length - e;\n for (const a of n)\n r &= o(t, this, a, { start: e, end: e + s - 1 });\n return !!r;\n }\n draw(t, e, s, n) {\n const o = this.options || {};\n (this.points || []).length && o.borderWidth && (t.save(), Nl(t, this, s, n), t.restore()), this.animated && (this._pointsUpdated = !1, this._path = void 0);\n }\n}\ngt.id = \"line\";\ngt.defaults = {\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: \"miter\",\n borderWidth: 3,\n capBezierPoints: !0,\n cubicInterpolationMode: \"default\",\n fill: !1,\n spanGaps: !1,\n stepped: !1,\n tension: 0\n};\ngt.defaultRoutes = {\n backgroundColor: \"backgroundColor\",\n borderColor: \"borderColor\"\n};\ngt.descriptors = {\n _scriptable: !0,\n _indexable: (i) => i !== \"borderDash\" && i !== \"fill\"\n};\nfunction Vs(i, t, e, s) {\n const n = i.options, { [e]: o } = i.getProps([e], s);\n return Math.abs(t - o) < n.radius + n.hitRadius;\n}\nclass ve extends st {\n constructor(t) {\n super(), this.options = void 0, this.parsed = void 0, this.skip = void 0, this.stop = void 0, t && Object.assign(this, t);\n }\n inRange(t, e, s) {\n const n = this.options, { x: o, y: r } = this.getProps([\"x\", \"y\"], s);\n return Math.pow(t - o, 2) + Math.pow(e - r, 2) < Math.pow(n.hitRadius + n.radius, 2);\n }\n inXRange(t, e) {\n return Vs(this, t, \"x\", e);\n }\n inYRange(t, e) {\n return Vs(this, t, \"y\", e);\n }\n getCenterPoint(t) {\n const { x: e, y: s } = this.getProps([\"x\", \"y\"], t);\n return { x: e, y: s };\n }\n size(t) {\n t = t || this.options || {};\n let e = t.radius || 0;\n e = Math.max(e, e && t.hoverRadius || 0);\n const s = e && t.borderWidth || 0;\n return (e + s) * 2;\n }\n draw(t, e) {\n const s = this.options;\n this.skip || s.radius < 0.1 || !re(this, e, this.size(s) / 2) || (t.strokeStyle = s.borderColor, t.lineWidth = s.borderWidth, t.fillStyle = s.backgroundColor, yi(t, s, this.x, this.y));\n }\n getRange() {\n const t = this.options || {};\n return t.radius + t.hitRadius;\n }\n}\nve.id = \"point\";\nve.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: \"circle\",\n radius: 3,\n rotation: 0\n};\nve.defaultRoutes = {\n backgroundColor: \"backgroundColor\",\n borderColor: \"borderColor\"\n};\nfunction no(i, t) {\n const { x: e, y: s, base: n, width: o, height: r } = i.getProps([\"x\", \"y\", \"base\", \"width\", \"height\"], t);\n let a, l, c, h, d;\n return i.horizontal ? (d = r / 2, a = Math.min(e, n), l = Math.max(e, n), c = s - d, h = s + d) : (d = o / 2, a = e - d, l = e + d, c = Math.min(s, n), h = Math.max(s, n)), { left: a, top: c, right: l, bottom: h };\n}\nfunction bt(i, t, e, s) {\n return i ? 0 : Y(t, e, s);\n}\nfunction Hl(i, t, e) {\n const s = i.options.borderWidth, n = i.borderSkipped, o = kn(s);\n return {\n t: bt(n.top, o.top, 0, e),\n r: bt(n.right, o.right, 0, t),\n b: bt(n.bottom, o.bottom, 0, e),\n l: bt(n.left, o.left, 0, t)\n };\n}\nfunction jl(i, t, e) {\n const { enableBorderRadius: s } = i.getProps([\"enableBorderRadius\"]), n = i.options.borderRadius, o = Dt(n), r = Math.min(t, e), a = i.borderSkipped, l = s || D(n);\n return {\n topLeft: bt(!l || a.top || a.left, o.topLeft, 0, r),\n topRight: bt(!l || a.top || a.right, o.topRight, 0, r),\n bottomLeft: bt(!l || a.bottom || a.left, o.bottomLeft, 0, r),\n bottomRight: bt(!l || a.bottom || a.right, o.bottomRight, 0, r)\n };\n}\nfunction $l(i) {\n const t = no(i), e = t.right - t.left, s = t.bottom - t.top, n = Hl(i, e / 2, s / 2), o = jl(i, e / 2, s / 2);\n return {\n outer: {\n x: t.left,\n y: t.top,\n w: e,\n h: s,\n radius: o\n },\n inner: {\n x: t.left + n.l,\n y: t.top + n.t,\n w: e - n.l - n.r,\n h: s - n.t - n.b,\n radius: {\n topLeft: Math.max(0, o.topLeft - Math.max(n.t, n.l)),\n topRight: Math.max(0, o.topRight - Math.max(n.t, n.r)),\n bottomLeft: Math.max(0, o.bottomLeft - Math.max(n.b, n.l)),\n bottomRight: Math.max(0, o.bottomRight - Math.max(n.b, n.r))\n }\n }\n };\n}\nfunction gi(i, t, e, s) {\n const n = t === null, o = e === null, a = i && !(n && o) && no(i, s);\n return a && (n || ut(t, a.left, a.right)) && (o || ut(e, a.top, a.bottom));\n}\nfunction Yl(i) {\n return i.topLeft || i.topRight || i.bottomLeft || i.bottomRight;\n}\nfunction Xl(i, t) {\n i.rect(t.x, t.y, t.w, t.h);\n}\nfunction pi(i, t, e = {}) {\n const s = i.x !== e.x ? -t : 0, n = i.y !== e.y ? -t : 0, o = (i.x + i.w !== e.x + e.w ? t : 0) - s, r = (i.y + i.h !== e.y + e.h ? t : 0) - n;\n return {\n x: i.x + s,\n y: i.y + n,\n w: i.w + o,\n h: i.h + r,\n radius: i.radius\n };\n}\nclass Me extends st {\n constructor(t) {\n super(), this.options = void 0, this.horizontal = void 0, this.base = void 0, this.width = void 0, this.height = void 0, this.inflateAmount = void 0, t && Object.assign(this, t);\n }\n draw(t) {\n const { inflateAmount: e, options: { borderColor: s, backgroundColor: n } } = this, { inner: o, outer: r } = $l(this), a = Yl(r.radius) ? ae : Xl;\n t.save(), (r.w !== o.w || r.h !== o.h) && (t.beginPath(), a(t, pi(r, e, o)), t.clip(), a(t, pi(o, -e, r)), t.fillStyle = s, t.fill(\"evenodd\")), t.beginPath(), a(t, pi(o, e)), t.fillStyle = n, t.fill(), t.restore();\n }\n inRange(t, e, s) {\n return gi(this, t, e, s);\n }\n inXRange(t, e) {\n return gi(this, t, null, e);\n }\n inYRange(t, e) {\n return gi(this, null, t, e);\n }\n getCenterPoint(t) {\n const { x: e, y: s, base: n, horizontal: o } = this.getProps([\"x\", \"y\", \"base\", \"horizontal\"], t);\n return {\n x: o ? (e + n) / 2 : e,\n y: o ? s : (s + n) / 2\n };\n }\n getRange(t) {\n return t === \"x\" ? this.width / 2 : this.height / 2;\n }\n}\nMe.id = \"bar\";\nMe.defaults = {\n borderSkipped: \"start\",\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: \"auto\",\n pointStyle: void 0\n};\nMe.defaultRoutes = {\n backgroundColor: \"backgroundColor\",\n borderColor: \"borderColor\"\n};\nvar oo = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n ArcElement: ye,\n LineElement: gt,\n PointElement: ve,\n BarElement: Me\n});\nfunction Ul(i, t, e, s, n) {\n const o = n.samples || s;\n if (o >= e)\n return i.slice(t, t + e);\n const r = [], a = (e - 2) / (o - 2);\n let l = 0;\n const c = t + e - 1;\n let h = t, d, u, f, g, p;\n for (r[l++] = i[h], d = 0; d < o - 2; d++) {\n let m = 0, b = 0, x;\n const v = Math.floor((d + 1) * a) + 1 + t, y = Math.min(Math.floor((d + 2) * a) + 1, e) + t, _ = y - v;\n for (x = v; x < y; x++)\n m += i[x].x, b += i[x].y;\n m /= _, b /= _;\n const M = Math.floor(d * a) + 1 + t, k = Math.min(Math.floor((d + 1) * a) + 1, e) + t, { x: S, y: w } = i[h];\n for (f = g = -1, x = M; x < k; x++)\n g = 0.5 * Math.abs(\n (S - m) * (i[x].y - w) - (S - i[x].x) * (b - w)\n ), g > f && (f = g, u = i[x], p = x);\n r[l++] = u, h = p;\n }\n return r[l++] = i[c], r;\n}\nfunction Kl(i, t, e, s) {\n let n = 0, o = 0, r, a, l, c, h, d, u, f, g, p;\n const m = [], b = t + e - 1, x = i[t].x, y = i[b].x - x;\n for (r = t; r < t + e; ++r) {\n a = i[r], l = (a.x - x) / y * s, c = a.y;\n const _ = l | 0;\n if (_ === h)\n c < g ? (g = c, d = r) : c > p && (p = c, u = r), n = (o * n + a.x) / ++o;\n else {\n const M = r - 1;\n if (!T(d) && !T(u)) {\n const k = Math.min(d, u), S = Math.max(d, u);\n k !== f && k !== M && m.push({\n ...i[k],\n x: n\n }), S !== f && S !== M && m.push({\n ...i[S],\n x: n\n });\n }\n r > 0 && M !== f && m.push(i[M]), m.push(a), h = _, o = 0, g = p = c, d = u = f = r;\n }\n }\n return m;\n}\nfunction ro(i) {\n if (i._decimated) {\n const t = i._data;\n delete i._decimated, delete i._data, Object.defineProperty(i, \"data\", { value: t });\n }\n}\nfunction Ws(i) {\n i.data.datasets.forEach((t) => {\n ro(t);\n });\n}\nfunction ql(i, t) {\n const e = t.length;\n let s = 0, n;\n const { iScale: o } = i, { min: r, max: a, minDefined: l, maxDefined: c } = o.getUserBounds();\n return l && (s = Y(ft(t, o.axis, r).lo, 0, e - 1)), c ? n = Y(ft(t, o.axis, a).hi + 1, s, e) - s : n = e - s, { start: s, count: n };\n}\nvar ao = {\n id: \"decimation\",\n defaults: {\n algorithm: \"min-max\",\n enabled: !1\n },\n beforeElementsUpdate: (i, t, e) => {\n if (!e.enabled) {\n Ws(i);\n return;\n }\n const s = i.width;\n i.data.datasets.forEach((n, o) => {\n const { _data: r, indexAxis: a } = n, l = i.getDatasetMeta(o), c = r || n.data;\n if (Zt([a, i.options.indexAxis]) === \"y\" || !l.controller.supportsDecimation)\n return;\n const h = i.scales[l.xAxisID];\n if (h.type !== \"linear\" && h.type !== \"time\" || i.options.parsing)\n return;\n let { start: d, count: u } = ql(l, c);\n const f = e.threshold || 4 * s;\n if (u <= f) {\n ro(n);\n return;\n }\n T(r) && (n._data = c, delete n.data, Object.defineProperty(n, \"data\", {\n configurable: !0,\n enumerable: !0,\n get: function() {\n return this._decimated;\n },\n set: function(p) {\n this._data = p;\n }\n }));\n let g;\n switch (e.algorithm) {\n case \"lttb\":\n g = Ul(c, d, u, s, e);\n break;\n case \"min-max\":\n g = Kl(c, d, u, s);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${e.algorithm}'`);\n }\n n._decimated = g;\n });\n },\n destroy(i) {\n Ws(i);\n }\n};\nfunction Gl(i, t, e) {\n const s = i.segments, n = i.points, o = t.points, r = [];\n for (const a of s) {\n let { start: l, end: c } = a;\n c = $i(l, c, n);\n const h = Pi(e, n[l], n[c], a.loop);\n if (!t.segments) {\n r.push({\n source: a,\n target: h,\n start: n[l],\n end: n[c]\n });\n continue;\n }\n const d = Fn(t, h);\n for (const u of d) {\n const f = Pi(e, o[u.start], o[u.end], u.loop), g = En(a, n, f);\n for (const p of g)\n r.push({\n source: p,\n target: u,\n start: {\n [e]: Ns(h, f, \"start\", Math.max)\n },\n end: {\n [e]: Ns(h, f, \"end\", Math.min)\n }\n });\n }\n }\n return r;\n}\nfunction Pi(i, t, e, s) {\n if (s)\n return;\n let n = t[i], o = e[i];\n return i === \"angle\" && (n = Z(n), o = Z(o)), { property: i, start: n, end: o };\n}\nfunction Zl(i, t) {\n const { x: e = null, y: s = null } = i || {}, n = t.points, o = [];\n return t.segments.forEach(({ start: r, end: a }) => {\n a = $i(r, a, n);\n const l = n[r], c = n[a];\n s !== null ? (o.push({ x: l.x, y: s }), o.push({ x: c.x, y: s })) : e !== null && (o.push({ x: e, y: l.y }), o.push({ x: e, y: c.y }));\n }), o;\n}\nfunction $i(i, t, e) {\n for (; t > i; t--) {\n const s = e[t];\n if (!isNaN(s.x) && !isNaN(s.y))\n break;\n }\n return t;\n}\nfunction Ns(i, t, e, s) {\n return i && t ? s(i[e], t[e]) : i ? i[e] : t ? t[e] : 0;\n}\nfunction lo(i, t) {\n let e = [], s = !1;\n return z(i) ? (s = !0, e = i) : e = Zl(i, t), e.length ? new gt({\n points: e,\n options: { tension: 0 },\n _loop: s,\n _fullLoop: s\n }) : null;\n}\nfunction Hs(i) {\n return i && i.fill !== !1;\n}\nfunction Jl(i, t, e) {\n let n = i[t].fill;\n const o = [t];\n let r;\n if (!e)\n return n;\n for (; n !== !1 && o.indexOf(n) === -1; ) {\n if (!N(n))\n return n;\n if (r = i[n], !r)\n return !1;\n if (r.visible)\n return n;\n o.push(n), n = r.fill;\n }\n return !1;\n}\nfunction Ql(i, t, e) {\n const s = sc(i);\n if (D(s))\n return isNaN(s.value) ? !1 : s;\n let n = parseFloat(s);\n return N(n) && Math.floor(n) === n ? tc(s[0], t, n, e) : [\"origin\", \"start\", \"end\", \"stack\", \"shape\"].indexOf(s) >= 0 && s;\n}\nfunction tc(i, t, e, s) {\n return (i === \"-\" || i === \"+\") && (e = t + e), e === t || e < 0 || e >= s ? !1 : e;\n}\nfunction ec(i, t) {\n let e = null;\n return i === \"start\" ? e = t.bottom : i === \"end\" ? e = t.top : D(i) ? e = t.getPixelForValue(i.value) : t.getBasePixel && (e = t.getBasePixel()), e;\n}\nfunction ic(i, t, e) {\n let s;\n return i === \"start\" ? s = e : i === \"end\" ? s = t.options.reverse ? t.min : t.max : D(i) ? s = i.value : s = t.getBaseValue(), s;\n}\nfunction sc(i) {\n const t = i.options, e = t.fill;\n let s = C(e && e.target, e);\n return s === void 0 && (s = !!t.backgroundColor), s === !1 || s === null ? !1 : s === !0 ? \"origin\" : s;\n}\nfunction nc(i) {\n const { scale: t, index: e, line: s } = i, n = [], o = s.segments, r = s.points, a = oc(t, e);\n a.push(lo({ x: null, y: t.bottom }, s));\n for (let l = 0; l < o.length; l++) {\n const c = o[l];\n for (let h = c.start; h <= c.end; h++)\n rc(n, r[h], a);\n }\n return new gt({ points: n, options: {} });\n}\nfunction oc(i, t) {\n const e = [], s = i.getMatchingVisibleMetas(\"line\");\n for (let n = 0; n < s.length; n++) {\n const o = s[n];\n if (o.index === t)\n break;\n o.hidden || e.unshift(o.dataset);\n }\n return e;\n}\nfunction rc(i, t, e) {\n const s = [];\n for (let n = 0; n < e.length; n++) {\n const o = e[n], { first: r, last: a, point: l } = ac(o, t, \"x\");\n if (!(!l || r && a)) {\n if (r)\n s.unshift(l);\n else if (i.push(l), !a)\n break;\n }\n }\n i.push(...s);\n}\nfunction ac(i, t, e) {\n const s = i.interpolate(t, e);\n if (!s)\n return {};\n const n = s[e], o = i.segments, r = i.points;\n let a = !1, l = !1;\n for (let c = 0; c < o.length; c++) {\n const h = o[c], d = r[h.start][e], u = r[h.end][e];\n if (ut(n, d, u)) {\n a = n === d, l = n === u;\n break;\n }\n }\n return { first: a, last: l, point: s };\n}\nclass co {\n constructor(t) {\n this.x = t.x, this.y = t.y, this.radius = t.radius;\n }\n pathSegment(t, e, s) {\n const { x: n, y: o, radius: r } = this;\n return e = e || { start: 0, end: F }, t.arc(n, o, r, e.end, e.start, !0), !s.bounds;\n }\n interpolate(t) {\n const { x: e, y: s, radius: n } = this, o = t.angle;\n return {\n x: e + Math.cos(o) * n,\n y: s + Math.sin(o) * n,\n angle: o\n };\n }\n}\nfunction lc(i) {\n const { chart: t, fill: e, line: s } = i;\n if (N(e))\n return cc(t, e);\n if (e === \"stack\")\n return nc(i);\n if (e === \"shape\")\n return !0;\n const n = hc(i);\n return n instanceof co ? n : lo(n, s);\n}\nfunction cc(i, t) {\n const e = i.getDatasetMeta(t);\n return e && i.isDatasetVisible(t) ? e.dataset : null;\n}\nfunction hc(i) {\n return (i.scale || {}).getPointPositionForValue ? uc(i) : dc(i);\n}\nfunction dc(i) {\n const { scale: t = {}, fill: e } = i, s = ec(e, t);\n if (N(s)) {\n const n = t.isHorizontal();\n return {\n x: n ? s : null,\n y: n ? null : s\n };\n }\n return null;\n}\nfunction uc(i) {\n const { scale: t, fill: e } = i, s = t.options, n = t.getLabels().length, o = s.reverse ? t.max : t.min, r = ic(e, t, o), a = [];\n if (s.grid.circular) {\n const l = t.getPointPositionForValue(0, o);\n return new co({\n x: l.x,\n y: l.y,\n radius: t.getDistanceFromCenterForValue(r)\n });\n }\n for (let l = 0; l < n; ++l)\n a.push(t.getPointPositionForValue(l, r));\n return a;\n}\nfunction mi(i, t, e) {\n const s = lc(t), { line: n, scale: o, axis: r } = t, a = n.options, l = a.fill, c = a.backgroundColor, { above: h = c, below: d = c } = l || {};\n s && n.points.length && (Xe(i, e), fc(i, { line: n, target: s, above: h, below: d, area: e, scale: o, axis: r }), Ue(i));\n}\nfunction fc(i, t) {\n const { line: e, target: s, above: n, below: o, area: r, scale: a } = t, l = e._loop ? \"angle\" : t.axis;\n i.save(), l === \"x\" && o !== n && (js(i, s, r.top), $s(i, { line: e, target: s, color: n, scale: a, property: l }), i.restore(), i.save(), js(i, s, r.bottom)), $s(i, { line: e, target: s, color: o, scale: a, property: l }), i.restore();\n}\nfunction js(i, t, e) {\n const { segments: s, points: n } = t;\n let o = !0, r = !1;\n i.beginPath();\n for (const a of s) {\n const { start: l, end: c } = a, h = n[l], d = n[$i(l, c, n)];\n o ? (i.moveTo(h.x, h.y), o = !1) : (i.lineTo(h.x, e), i.lineTo(h.x, h.y)), r = !!t.pathSegment(i, a, { move: r }), r ? i.closePath() : i.lineTo(d.x, e);\n }\n i.lineTo(t.first().x, e), i.closePath(), i.clip();\n}\nfunction $s(i, t) {\n const { line: e, target: s, property: n, color: o, scale: r } = t, a = Gl(e, s, n);\n for (const { source: l, target: c, start: h, end: d } of a) {\n const { style: { backgroundColor: u = o } = {} } = l, f = s !== !0;\n i.save(), i.fillStyle = u, gc(i, r, f && Pi(n, h, d)), i.beginPath();\n const g = !!e.pathSegment(i, l);\n let p;\n if (f) {\n g ? i.closePath() : Ys(i, s, d, n);\n const m = !!s.pathSegment(i, c, { move: g, reverse: !0 });\n p = g && m, p || Ys(i, s, h, n);\n }\n i.closePath(), i.fill(p ? \"evenodd\" : \"nonzero\"), i.restore();\n }\n}\nfunction gc(i, t, e) {\n const { top: s, bottom: n } = t.chart.chartArea, { property: o, start: r, end: a } = e || {};\n o === \"x\" && (i.beginPath(), i.rect(r, s, a - r, n - s), i.clip());\n}\nfunction Ys(i, t, e, s) {\n const n = t.interpolate(e, s);\n n && i.lineTo(n.x, n.y);\n}\nvar ho = {\n id: \"filler\",\n afterDatasetsUpdate(i, t, e) {\n const s = (i.data.datasets || []).length, n = [];\n let o, r, a, l;\n for (r = 0; r < s; ++r)\n o = i.getDatasetMeta(r), a = o.dataset, l = null, a && a.options && a instanceof gt && (l = {\n visible: i.isDatasetVisible(r),\n index: r,\n fill: Ql(a, r, s),\n chart: i,\n axis: o.controller.options.indexAxis,\n scale: o.vScale,\n line: a\n }), o.$filler = l, n.push(l);\n for (r = 0; r < s; ++r)\n l = n[r], !(!l || l.fill === !1) && (l.fill = Jl(n, r, e.propagate));\n },\n beforeDraw(i, t, e) {\n const s = e.drawTime === \"beforeDraw\", n = i.getSortedVisibleDatasetMetas(), o = i.chartArea;\n for (let r = n.length - 1; r >= 0; --r) {\n const a = n[r].$filler;\n a && (a.line.updateControlPoints(o, a.axis), s && a.fill && mi(i.ctx, a, o));\n }\n },\n beforeDatasetsDraw(i, t, e) {\n if (e.drawTime !== \"beforeDatasetsDraw\")\n return;\n const s = i.getSortedVisibleDatasetMetas();\n for (let n = s.length - 1; n >= 0; --n) {\n const o = s[n].$filler;\n Hs(o) && mi(i.ctx, o, i.chartArea);\n }\n },\n beforeDatasetDraw(i, t, e) {\n const s = t.meta.$filler;\n !Hs(s) || e.drawTime !== \"beforeDatasetDraw\" || mi(i.ctx, s, i.chartArea);\n },\n defaults: {\n propagate: !0,\n drawTime: \"beforeDatasetDraw\"\n }\n};\nconst Xs = (i, t) => {\n let { boxHeight: e = t, boxWidth: s = t } = i;\n return i.usePointStyle && (e = Math.min(e, t), s = i.pointStyleWidth || Math.min(s, t)), {\n boxWidth: s,\n boxHeight: e,\n itemHeight: Math.max(t, e)\n };\n}, pc = (i, t) => i !== null && t !== null && i.datasetIndex === t.datasetIndex && i.index === t.index;\nclass Us extends st {\n constructor(t) {\n super(), this._added = !1, this.legendHitBoxes = [], this._hoveredItem = null, this.doughnutMode = !1, this.chart = t.chart, this.options = t.options, this.ctx = t.ctx, this.legendItems = void 0, this.columnSizes = void 0, this.lineWidths = void 0, this.maxHeight = void 0, this.maxWidth = void 0, this.top = void 0, this.bottom = void 0, this.left = void 0, this.right = void 0, this.height = void 0, this.width = void 0, this._margins = void 0, this.position = void 0, this.weight = void 0, this.fullSize = void 0;\n }\n update(t, e, s) {\n this.maxWidth = t, this.maxHeight = e, this._margins = s, this.setDimensions(), this.buildLabels(), this.fit();\n }\n setDimensions() {\n this.isHorizontal() ? (this.width = this.maxWidth, this.left = this._margins.left, this.right = this.width) : (this.height = this.maxHeight, this.top = this._margins.top, this.bottom = this.height);\n }\n buildLabels() {\n const t = this.options.labels || {};\n let e = I(t.generateLabels, [this.chart], this) || [];\n t.filter && (e = e.filter((s) => t.filter(s, this.chart.data))), t.sort && (e = e.sort((s, n) => t.sort(s, n, this.chart.data))), this.options.reverse && e.reverse(), this.legendItems = e;\n }\n fit() {\n const { options: t, ctx: e } = this;\n if (!t.display) {\n this.width = this.height = 0;\n return;\n }\n const s = t.labels, n = $(s.font), o = n.size, r = this._computeTitleHeight(), { boxWidth: a, itemHeight: l } = Xs(s, o);\n let c, h;\n e.font = n.string, this.isHorizontal() ? (c = this.maxWidth, h = this._fitRows(r, o, a, l) + 10) : (h = this.maxHeight, c = this._fitCols(r, o, a, l) + 10), this.width = Math.min(c, t.maxWidth || this.maxWidth), this.height = Math.min(h, t.maxHeight || this.maxHeight);\n }\n _fitRows(t, e, s, n) {\n const { ctx: o, maxWidth: r, options: { labels: { padding: a } } } = this, l = this.legendHitBoxes = [], c = this.lineWidths = [0], h = n + a;\n let d = t;\n o.textAlign = \"left\", o.textBaseline = \"middle\";\n let u = -1, f = -h;\n return this.legendItems.forEach((g, p) => {\n const m = s + e / 2 + o.measureText(g.text).width;\n (p === 0 || c[c.length - 1] + m + 2 * a > r) && (d += h, c[c.length - (p > 0 ? 0 : 1)] = 0, f += h, u++), l[p] = { left: 0, top: f, row: u, width: m, height: n }, c[c.length - 1] += m + a;\n }), d;\n }\n _fitCols(t, e, s, n) {\n const { ctx: o, maxHeight: r, options: { labels: { padding: a } } } = this, l = this.legendHitBoxes = [], c = this.columnSizes = [], h = r - t;\n let d = a, u = 0, f = 0, g = 0, p = 0;\n return this.legendItems.forEach((m, b) => {\n const x = s + e / 2 + o.measureText(m.text).width;\n b > 0 && f + n + 2 * a > h && (d += u + a, c.push({ width: u, height: f }), g += u + a, p++, u = f = 0), l[b] = { left: g, top: f, col: p, width: x, height: n }, u = Math.max(u, x), f += n + a;\n }), d += u, c.push({ width: u, height: f }), d;\n }\n adjustHitBoxes() {\n if (!this.options.display)\n return;\n const t = this._computeTitleHeight(), { legendHitBoxes: e, options: { align: s, labels: { padding: n }, rtl: o } } = this, r = zt(o, this.left, this.width);\n if (this.isHorizontal()) {\n let a = 0, l = U(s, this.left + n, this.right - this.lineWidths[a]);\n for (const c of e)\n a !== c.row && (a = c.row, l = U(s, this.left + n, this.right - this.lineWidths[a])), c.top += this.top + t + n, c.left = r.leftForLtr(r.x(l), c.width), l += c.width + n;\n } else {\n let a = 0, l = U(s, this.top + t + n, this.bottom - this.columnSizes[a].height);\n for (const c of e)\n c.col !== a && (a = c.col, l = U(s, this.top + t + n, this.bottom - this.columnSizes[a].height)), c.top = l, c.left += this.left + n, c.left = r.leftForLtr(r.x(c.left), c.width), l += c.height + n;\n }\n }\n isHorizontal() {\n return this.options.position === \"top\" || this.options.position === \"bottom\";\n }\n draw() {\n if (this.options.display) {\n const t = this.ctx;\n Xe(t, this), this._draw(), Ue(t);\n }\n }\n _draw() {\n const { options: t, columnSizes: e, lineWidths: s, ctx: n } = this, { align: o, labels: r } = t, a = O.color, l = zt(t.rtl, this.left, this.width), c = $(r.font), { color: h, padding: d } = r, u = c.size, f = u / 2;\n let g;\n this.drawTitle(), n.textAlign = l.textAlign(\"left\"), n.textBaseline = \"middle\", n.lineWidth = 0.5, n.font = c.string;\n const { boxWidth: p, boxHeight: m, itemHeight: b } = Xs(r, u), x = function(k, S, w) {\n if (isNaN(p) || p <= 0 || isNaN(m) || m < 0)\n return;\n n.save();\n const L = C(w.lineWidth, 1);\n if (n.fillStyle = C(w.fillStyle, a), n.lineCap = C(w.lineCap, \"butt\"), n.lineDashOffset = C(w.lineDashOffset, 0), n.lineJoin = C(w.lineJoin, \"miter\"), n.lineWidth = L, n.strokeStyle = C(w.strokeStyle, a), n.setLineDash(C(w.lineDash, [])), r.usePointStyle) {\n const R = {\n radius: m * Math.SQRT2 / 2,\n pointStyle: w.pointStyle,\n rotation: w.rotation,\n borderWidth: L\n }, A = l.xPlus(k, p / 2), H = S + f;\n Mn(n, R, A, H, r.pointStyleWidth && p);\n } else {\n const R = S + Math.max((u - m) / 2, 0), A = l.leftForLtr(k, p), H = Dt(w.borderRadius);\n n.beginPath(), Object.values(H).some((q) => q !== 0) ? ae(n, {\n x: A,\n y: R,\n w: p,\n h: m,\n radius: H\n }) : n.rect(A, R, p, m), n.fill(), L !== 0 && n.stroke();\n }\n n.restore();\n }, v = function(k, S, w) {\n Tt(n, w.text, k, S + b / 2, c, {\n strikethrough: w.hidden,\n textAlign: l.textAlign(w.textAlign)\n });\n }, y = this.isHorizontal(), _ = this._computeTitleHeight();\n y ? g = {\n x: U(o, this.left + d, this.right - s[0]),\n y: this.top + d + _,\n line: 0\n } : g = {\n x: this.left + d,\n y: U(o, this.top + _ + d, this.bottom - e[0].height),\n line: 0\n }, Tn(this.ctx, t.textDirection);\n const M = b + d;\n this.legendItems.forEach((k, S) => {\n n.strokeStyle = k.fontColor || h, n.fillStyle = k.fontColor || h;\n const w = n.measureText(k.text).width, L = l.textAlign(k.textAlign || (k.textAlign = r.textAlign)), R = p + f + w;\n let A = g.x, H = g.y;\n l.setWidth(this.width), y ? S > 0 && A + R + d > this.right && (H = g.y += M, g.line++, A = g.x = U(o, this.left + d, this.right - s[g.line])) : S > 0 && H + M > this.bottom && (A = g.x = A + e[g.line].width + d, g.line++, H = g.y = U(o, this.top + _ + d, this.bottom - e[g.line].height));\n const q = l.x(A);\n x(q, H, k), A = Io(L, A + p + f, y ? A + R : this.right, t.rtl), v(l.x(A), H, k), y ? g.x += R + d : g.y += M;\n }), Ln(this.ctx, t.textDirection);\n }\n drawTitle() {\n const t = this.options, e = t.title, s = $(e.font), n = K(e.padding);\n if (!e.display)\n return;\n const o = zt(t.rtl, this.left, this.width), r = this.ctx, a = e.position, l = s.size / 2, c = n.top + l;\n let h, d = this.left, u = this.width;\n if (this.isHorizontal())\n u = Math.max(...this.lineWidths), h = this.top + c, d = U(t.align, d, this.right - u);\n else {\n const g = this.columnSizes.reduce((p, m) => Math.max(p, m.height), 0);\n h = c + U(t.align, this.top, this.bottom - g - t.labels.padding - this._computeTitleHeight());\n }\n const f = U(a, d, d + u);\n r.textAlign = o.textAlign(Li(a)), r.textBaseline = \"middle\", r.strokeStyle = e.color, r.fillStyle = e.color, r.font = s.string, Tt(r, e.text, f, h, s);\n }\n _computeTitleHeight() {\n const t = this.options.title, e = $(t.font), s = K(t.padding);\n return t.display ? e.lineHeight + s.height : 0;\n }\n _getLegendItemAt(t, e) {\n let s, n, o;\n if (ut(t, this.left, this.right) && ut(e, this.top, this.bottom)) {\n for (o = this.legendHitBoxes, s = 0; s < o.length; ++s)\n if (n = o[s], ut(t, n.left, n.left + n.width) && ut(e, n.top, n.top + n.height))\n return this.legendItems[s];\n }\n return null;\n }\n handleEvent(t) {\n const e = this.options;\n if (!mc(t.type, e))\n return;\n const s = this._getLegendItemAt(t.x, t.y);\n if (t.type === \"mousemove\" || t.type === \"mouseout\") {\n const n = this._hoveredItem, o = pc(n, s);\n n && !o && I(e.onLeave, [t, n, this], this), this._hoveredItem = s, s && !o && I(e.onHover, [t, s, this], this);\n } else\n s && I(e.onClick, [t, s, this], this);\n }\n}\nfunction mc(i, t) {\n return !!((i === \"mousemove\" || i === \"mouseout\") && (t.onHover || t.onLeave) || t.onClick && (i === \"click\" || i === \"mouseup\"));\n}\nvar uo = {\n id: \"legend\",\n _element: Us,\n start(i, t, e) {\n const s = i.legend = new Us({ ctx: i.ctx, options: e, chart: i });\n X.configure(i, s, e), X.addBox(i, s);\n },\n stop(i) {\n X.removeBox(i, i.legend), delete i.legend;\n },\n beforeUpdate(i, t, e) {\n const s = i.legend;\n X.configure(i, s, e), s.options = e;\n },\n afterUpdate(i) {\n const t = i.legend;\n t.buildLabels(), t.adjustHitBoxes();\n },\n afterEvent(i, t) {\n t.replay || i.legend.handleEvent(t.event);\n },\n defaults: {\n display: !0,\n position: \"top\",\n align: \"center\",\n fullSize: !0,\n reverse: !1,\n weight: 1e3,\n onClick(i, t, e) {\n const s = t.datasetIndex, n = e.chart;\n n.isDatasetVisible(s) ? (n.hide(s), t.hidden = !0) : (n.show(s), t.hidden = !1);\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (i) => i.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(i) {\n const t = i.data.datasets, { labels: { usePointStyle: e, pointStyle: s, textAlign: n, color: o } } = i.legend.options;\n return i._getSortedDatasetMetas().map((r) => {\n const a = r.controller.getStyle(e ? 0 : void 0), l = K(a.borderWidth);\n return {\n text: t[r.index].label,\n fillStyle: a.backgroundColor,\n fontColor: o,\n hidden: !r.visible,\n lineCap: a.borderCapStyle,\n lineDash: a.borderDash,\n lineDashOffset: a.borderDashOffset,\n lineJoin: a.borderJoinStyle,\n lineWidth: (l.width + l.height) / 4,\n strokeStyle: a.borderColor,\n pointStyle: s || a.pointStyle,\n rotation: a.rotation,\n textAlign: n || a.textAlign,\n borderRadius: 0,\n datasetIndex: r.index\n };\n }, this);\n }\n },\n title: {\n color: (i) => i.chart.options.color,\n display: !1,\n position: \"center\",\n text: \"\"\n }\n },\n descriptors: {\n _scriptable: (i) => !i.startsWith(\"on\"),\n labels: {\n _scriptable: (i) => ![\"generateLabels\", \"filter\", \"sort\"].includes(i)\n }\n }\n};\nclass Yi extends st {\n constructor(t) {\n super(), this.chart = t.chart, this.options = t.options, this.ctx = t.ctx, this._padding = void 0, this.top = void 0, this.bottom = void 0, this.left = void 0, this.right = void 0, this.width = void 0, this.height = void 0, this.position = void 0, this.weight = void 0, this.fullSize = void 0;\n }\n update(t, e) {\n const s = this.options;\n if (this.left = 0, this.top = 0, !s.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = t, this.height = this.bottom = e;\n const n = z(s.text) ? s.text.length : 1;\n this._padding = K(s.padding);\n const o = n * $(s.font).lineHeight + this._padding.height;\n this.isHorizontal() ? this.height = o : this.width = o;\n }\n isHorizontal() {\n const t = this.options.position;\n return t === \"top\" || t === \"bottom\";\n }\n _drawArgs(t) {\n const { top: e, left: s, bottom: n, right: o, options: r } = this, a = r.align;\n let l = 0, c, h, d;\n return this.isHorizontal() ? (h = U(a, s, o), d = e + t, c = o - s) : (r.position === \"left\" ? (h = s + t, d = U(a, n, e), l = B * -0.5) : (h = o - t, d = U(a, e, n), l = B * 0.5), c = n - e), { titleX: h, titleY: d, maxWidth: c, rotation: l };\n }\n draw() {\n const t = this.ctx, e = this.options;\n if (!e.display)\n return;\n const s = $(e.font), o = s.lineHeight / 2 + this._padding.top, { titleX: r, titleY: a, maxWidth: l, rotation: c } = this._drawArgs(o);\n Tt(t, e.text, 0, 0, s, {\n color: e.color,\n maxWidth: l,\n rotation: c,\n textAlign: Li(e.align),\n textBaseline: \"middle\",\n translation: [r, a]\n });\n }\n}\nfunction bc(i, t) {\n const e = new Yi({\n ctx: i.ctx,\n options: t,\n chart: i\n });\n X.configure(i, e, t), X.addBox(i, e), i.titleBlock = e;\n}\nvar fo = {\n id: \"title\",\n _element: Yi,\n start(i, t, e) {\n bc(i, e);\n },\n stop(i) {\n const t = i.titleBlock;\n X.removeBox(i, t), delete i.titleBlock;\n },\n beforeUpdate(i, t, e) {\n const s = i.titleBlock;\n X.configure(i, s, e), s.options = e;\n },\n defaults: {\n align: \"center\",\n display: !1,\n font: {\n weight: \"bold\"\n },\n fullSize: !0,\n padding: 10,\n position: \"top\",\n text: \"\",\n weight: 2e3\n },\n defaultRoutes: {\n color: \"color\"\n },\n descriptors: {\n _scriptable: !0,\n _indexable: !1\n }\n};\nconst Re = /* @__PURE__ */ new WeakMap();\nvar go = {\n id: \"subtitle\",\n start(i, t, e) {\n const s = new Yi({\n ctx: i.ctx,\n options: e,\n chart: i\n });\n X.configure(i, s, e), X.addBox(i, s), Re.set(i, s);\n },\n stop(i) {\n X.removeBox(i, Re.get(i)), Re.delete(i);\n },\n beforeUpdate(i, t, e) {\n const s = Re.get(i);\n X.configure(i, s, e), s.options = e;\n },\n defaults: {\n align: \"center\",\n display: !1,\n font: {\n weight: \"normal\"\n },\n fullSize: !0,\n padding: 0,\n position: \"top\",\n text: \"\",\n weight: 1500\n },\n defaultRoutes: {\n color: \"color\"\n },\n descriptors: {\n _scriptable: !0,\n _indexable: !1\n }\n};\nconst se = {\n average(i) {\n if (!i.length)\n return !1;\n let t, e, s = 0, n = 0, o = 0;\n for (t = 0, e = i.length; t < e; ++t) {\n const r = i[t].element;\n if (r && r.hasValue()) {\n const a = r.tooltipPosition();\n s += a.x, n += a.y, ++o;\n }\n }\n return {\n x: s / o,\n y: n / o\n };\n },\n nearest(i, t) {\n if (!i.length)\n return !1;\n let e = t.x, s = t.y, n = Number.POSITIVE_INFINITY, o, r, a;\n for (o = 0, r = i.length; o < r; ++o) {\n const l = i[o].element;\n if (l && l.hasValue()) {\n const c = l.getCenterPoint(), h = bi(t, c);\n h < n && (n = h, a = l);\n }\n }\n if (a) {\n const l = a.tooltipPosition();\n e = l.x, s = l.y;\n }\n return {\n x: e,\n y: s\n };\n }\n};\nfunction rt(i, t) {\n return t && (z(t) ? Array.prototype.push.apply(i, t) : i.push(t)), i;\n}\nfunction ht(i) {\n return (typeof i == \"string\" || i instanceof String) && i.indexOf(`\n`) > -1 ? i.split(`\n`) : i;\n}\nfunction xc(i, t) {\n const { element: e, datasetIndex: s, index: n } = t, o = i.getDatasetMeta(s).controller, { label: r, value: a } = o.getLabelAndValue(n);\n return {\n chart: i,\n label: r,\n parsed: o.getParsed(n),\n raw: i.data.datasets[s].data[n],\n formattedValue: a,\n dataset: o.getDataset(),\n dataIndex: n,\n datasetIndex: s,\n element: e\n };\n}\nfunction Ks(i, t) {\n const e = i.chart.ctx, { body: s, footer: n, title: o } = i, { boxWidth: r, boxHeight: a } = t, l = $(t.bodyFont), c = $(t.titleFont), h = $(t.footerFont), d = o.length, u = n.length, f = s.length, g = K(t.padding);\n let p = g.height, m = 0, b = s.reduce((y, _) => y + _.before.length + _.lines.length + _.after.length, 0);\n if (b += i.beforeBody.length + i.afterBody.length, d && (p += d * c.lineHeight + (d - 1) * t.titleSpacing + t.titleMarginBottom), b) {\n const y = t.displayColors ? Math.max(a, l.lineHeight) : l.lineHeight;\n p += f * y + (b - f) * l.lineHeight + (b - 1) * t.bodySpacing;\n }\n u && (p += t.footerMarginTop + u * h.lineHeight + (u - 1) * t.footerSpacing);\n let x = 0;\n const v = function(y) {\n m = Math.max(m, e.measureText(y).width + x);\n };\n return e.save(), e.font = c.string, E(i.title, v), e.font = l.string, E(i.beforeBody.concat(i.afterBody), v), x = t.displayColors ? r + 2 + t.boxPadding : 0, E(s, (y) => {\n E(y.before, v), E(y.lines, v), E(y.after, v);\n }), x = 0, e.font = h.string, E(i.footer, v), e.restore(), m += g.width, { width: m, height: p };\n}\nfunction _c(i, t) {\n const { y: e, height: s } = t;\n return e < s / 2 ? \"top\" : e > i.height - s / 2 ? \"bottom\" : \"center\";\n}\nfunction yc(i, t, e, s) {\n const { x: n, width: o } = s, r = e.caretSize + e.caretPadding;\n if (i === \"left\" && n + o + r > t.width || i === \"right\" && n - o - r < 0)\n return !0;\n}\nfunction vc(i, t, e, s) {\n const { x: n, width: o } = e, { width: r, chartArea: { left: a, right: l } } = i;\n let c = \"center\";\n return s === \"center\" ? c = n <= (a + l) / 2 ? \"left\" : \"right\" : n <= o / 2 ? c = \"left\" : n >= r - o / 2 && (c = \"right\"), yc(c, i, t, e) && (c = \"center\"), c;\n}\nfunction qs(i, t, e) {\n const s = e.yAlign || t.yAlign || _c(i, e);\n return {\n xAlign: e.xAlign || t.xAlign || vc(i, t, e, s),\n yAlign: s\n };\n}\nfunction Mc(i, t) {\n let { x: e, width: s } = i;\n return t === \"right\" ? e -= s : t === \"center\" && (e -= s / 2), e;\n}\nfunction kc(i, t, e) {\n let { y: s, height: n } = i;\n return t === \"top\" ? s += e : t === \"bottom\" ? s -= n + e : s -= n / 2, s;\n}\nfunction Gs(i, t, e, s) {\n const { caretSize: n, caretPadding: o, cornerRadius: r } = i, { xAlign: a, yAlign: l } = e, c = n + o, { topLeft: h, topRight: d, bottomLeft: u, bottomRight: f } = Dt(r);\n let g = Mc(t, a);\n const p = kc(t, l, c);\n return l === \"center\" ? a === \"left\" ? g += c : a === \"right\" && (g -= c) : a === \"left\" ? g -= Math.max(h, u) + n : a === \"right\" && (g += Math.max(d, f) + n), {\n x: Y(g, 0, s.width - t.width),\n y: Y(p, 0, s.height - t.height)\n };\n}\nfunction Ee(i, t, e) {\n const s = K(e.padding);\n return t === \"center\" ? i.x + i.width / 2 : t === \"right\" ? i.x + i.width - s.right : i.x + s.left;\n}\nfunction Zs(i) {\n return rt([], ht(i));\n}\nfunction wc(i, t, e) {\n return vt(i, {\n tooltip: t,\n tooltipItems: e,\n type: \"tooltip\"\n });\n}\nfunction Js(i, t) {\n const e = t && t.dataset && t.dataset.tooltip && t.dataset.tooltip.callbacks;\n return e ? i.override(e) : i;\n}\nclass Ci extends st {\n constructor(t) {\n super(), this.opacity = 0, this._active = [], this._eventPosition = void 0, this._size = void 0, this._cachedAnimations = void 0, this._tooltipItems = [], this.$animations = void 0, this.$context = void 0, this.chart = t.chart || t._chart, this._chart = this.chart, this.options = t.options, this.dataPoints = void 0, this.title = void 0, this.beforeBody = void 0, this.body = void 0, this.afterBody = void 0, this.footer = void 0, this.xAlign = void 0, this.yAlign = void 0, this.x = void 0, this.y = void 0, this.height = void 0, this.width = void 0, this.caretX = void 0, this.caretY = void 0, this.labelColors = void 0, this.labelPointStyles = void 0, this.labelTextColors = void 0;\n }\n initialize(t) {\n this.options = t, this._cachedAnimations = void 0, this.$context = void 0;\n }\n _resolveAnimations() {\n const t = this._cachedAnimations;\n if (t)\n return t;\n const e = this.chart, s = this.options.setContext(this.getContext()), n = s.enabled && e.options.animation && s.animations, o = new Ni(this.chart, n);\n return n._cacheable && (this._cachedAnimations = Object.freeze(o)), o;\n }\n getContext() {\n return this.$context || (this.$context = wc(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(t, e) {\n const { callbacks: s } = e, n = s.beforeTitle.apply(this, [t]), o = s.title.apply(this, [t]), r = s.afterTitle.apply(this, [t]);\n let a = [];\n return a = rt(a, ht(n)), a = rt(a, ht(o)), a = rt(a, ht(r)), a;\n }\n getBeforeBody(t, e) {\n return Zs(e.callbacks.beforeBody.apply(this, [t]));\n }\n getBody(t, e) {\n const { callbacks: s } = e, n = [];\n return E(t, (o) => {\n const r = {\n before: [],\n lines: [],\n after: []\n }, a = Js(s, o);\n rt(r.before, ht(a.beforeLabel.call(this, o))), rt(r.lines, a.label.call(this, o)), rt(r.after, ht(a.afterLabel.call(this, o))), n.push(r);\n }), n;\n }\n getAfterBody(t, e) {\n return Zs(e.callbacks.afterBody.apply(this, [t]));\n }\n getFooter(t, e) {\n const { callbacks: s } = e, n = s.beforeFooter.apply(this, [t]), o = s.footer.apply(this, [t]), r = s.afterFooter.apply(this, [t]);\n let a = [];\n return a = rt(a, ht(n)), a = rt(a, ht(o)), a = rt(a, ht(r)), a;\n }\n _createItems(t) {\n const e = this._active, s = this.chart.data, n = [], o = [], r = [];\n let a = [], l, c;\n for (l = 0, c = e.length; l < c; ++l)\n a.push(xc(this.chart, e[l]));\n return t.filter && (a = a.filter((h, d, u) => t.filter(h, d, u, s))), t.itemSort && (a = a.sort((h, d) => t.itemSort(h, d, s))), E(a, (h) => {\n const d = Js(t.callbacks, h);\n n.push(d.labelColor.call(this, h)), o.push(d.labelPointStyle.call(this, h)), r.push(d.labelTextColor.call(this, h));\n }), this.labelColors = n, this.labelPointStyles = o, this.labelTextColors = r, this.dataPoints = a, a;\n }\n update(t, e) {\n const s = this.options.setContext(this.getContext()), n = this._active;\n let o, r = [];\n if (!n.length)\n this.opacity !== 0 && (o = {\n opacity: 0\n });\n else {\n const a = se[s.position].call(this, n, this._eventPosition);\n r = this._createItems(s), this.title = this.getTitle(r, s), this.beforeBody = this.getBeforeBody(r, s), this.body = this.getBody(r, s), this.afterBody = this.getAfterBody(r, s), this.footer = this.getFooter(r, s);\n const l = this._size = Ks(this, s), c = Object.assign({}, a, l), h = qs(this.chart, s, c), d = Gs(s, c, h, this.chart);\n this.xAlign = h.xAlign, this.yAlign = h.yAlign, o = {\n opacity: 1,\n x: d.x,\n y: d.y,\n width: l.width,\n height: l.height,\n caretX: a.x,\n caretY: a.y\n };\n }\n this._tooltipItems = r, this.$context = void 0, o && this._resolveAnimations().update(this, o), t && s.external && s.external.call(this, { chart: this.chart, tooltip: this, replay: e });\n }\n drawCaret(t, e, s, n) {\n const o = this.getCaretPosition(t, s, n);\n e.lineTo(o.x1, o.y1), e.lineTo(o.x2, o.y2), e.lineTo(o.x3, o.y3);\n }\n getCaretPosition(t, e, s) {\n const { xAlign: n, yAlign: o } = this, { caretSize: r, cornerRadius: a } = s, { topLeft: l, topRight: c, bottomLeft: h, bottomRight: d } = Dt(a), { x: u, y: f } = t, { width: g, height: p } = e;\n let m, b, x, v, y, _;\n return o === \"center\" ? (y = f + p / 2, n === \"left\" ? (m = u, b = m - r, v = y + r, _ = y - r) : (m = u + g, b = m + r, v = y - r, _ = y + r), x = m) : (n === \"left\" ? b = u + Math.max(l, h) + r : n === \"right\" ? b = u + g - Math.max(c, d) - r : b = this.caretX, o === \"top\" ? (v = f, y = v - r, m = b - r, x = b + r) : (v = f + p, y = v + r, m = b + r, x = b - r), _ = v), { x1: m, x2: b, x3: x, y1: v, y2: y, y3: _ };\n }\n drawTitle(t, e, s) {\n const n = this.title, o = n.length;\n let r, a, l;\n if (o) {\n const c = zt(s.rtl, this.x, this.width);\n for (t.x = Ee(this, s.titleAlign, s), e.textAlign = c.textAlign(s.titleAlign), e.textBaseline = \"middle\", r = $(s.titleFont), a = s.titleSpacing, e.fillStyle = s.titleColor, e.font = r.string, l = 0; l < o; ++l)\n e.fillText(n[l], c.x(t.x), t.y + r.lineHeight / 2), t.y += r.lineHeight + a, l + 1 === o && (t.y += s.titleMarginBottom - a);\n }\n }\n _drawColorBox(t, e, s, n, o) {\n const r = this.labelColors[s], a = this.labelPointStyles[s], { boxHeight: l, boxWidth: c, boxPadding: h } = o, d = $(o.bodyFont), u = Ee(this, \"left\", o), f = n.x(u), g = l < d.lineHeight ? (d.lineHeight - l) / 2 : 0, p = e.y + g;\n if (o.usePointStyle) {\n const m = {\n radius: Math.min(c, l) / 2,\n pointStyle: a.pointStyle,\n rotation: a.rotation,\n borderWidth: 1\n }, b = n.leftForLtr(f, c) + c / 2, x = p + l / 2;\n t.strokeStyle = o.multiKeyBackground, t.fillStyle = o.multiKeyBackground, yi(t, m, b, x), t.strokeStyle = r.borderColor, t.fillStyle = r.backgroundColor, yi(t, m, b, x);\n } else {\n t.lineWidth = D(r.borderWidth) ? Math.max(...Object.values(r.borderWidth)) : r.borderWidth || 1, t.strokeStyle = r.borderColor, t.setLineDash(r.borderDash || []), t.lineDashOffset = r.borderDashOffset || 0;\n const m = n.leftForLtr(f, c - h), b = n.leftForLtr(n.xPlus(f, 1), c - h - 2), x = Dt(r.borderRadius);\n Object.values(x).some((v) => v !== 0) ? (t.beginPath(), t.fillStyle = o.multiKeyBackground, ae(t, {\n x: m,\n y: p,\n w: c,\n h: l,\n radius: x\n }), t.fill(), t.stroke(), t.fillStyle = r.backgroundColor, t.beginPath(), ae(t, {\n x: b,\n y: p + 1,\n w: c - 2,\n h: l - 2,\n radius: x\n }), t.fill()) : (t.fillStyle = o.multiKeyBackground, t.fillRect(m, p, c, l), t.strokeRect(m, p, c, l), t.fillStyle = r.backgroundColor, t.fillRect(b, p + 1, c - 2, l - 2));\n }\n t.fillStyle = this.labelTextColors[s];\n }\n drawBody(t, e, s) {\n const { body: n } = this, { bodySpacing: o, bodyAlign: r, displayColors: a, boxHeight: l, boxWidth: c, boxPadding: h } = s, d = $(s.bodyFont);\n let u = d.lineHeight, f = 0;\n const g = zt(s.rtl, this.x, this.width), p = function(S) {\n e.fillText(S, g.x(t.x + f), t.y + u / 2), t.y += u + o;\n }, m = g.textAlign(r);\n let b, x, v, y, _, M, k;\n for (e.textAlign = r, e.textBaseline = \"middle\", e.font = d.string, t.x = Ee(this, m, s), e.fillStyle = s.bodyColor, E(this.beforeBody, p), f = a && m !== \"right\" ? r === \"center\" ? c / 2 + h : c + 2 + h : 0, y = 0, M = n.length; y < M; ++y) {\n for (b = n[y], x = this.labelTextColors[y], e.fillStyle = x, E(b.before, p), v = b.lines, a && v.length && (this._drawColorBox(e, t, y, g, s), u = Math.max(d.lineHeight, l)), _ = 0, k = v.length; _ < k; ++_)\n p(v[_]), u = d.lineHeight;\n E(b.after, p);\n }\n f = 0, u = d.lineHeight, E(this.afterBody, p), t.y -= o;\n }\n drawFooter(t, e, s) {\n const n = this.footer, o = n.length;\n let r, a;\n if (o) {\n const l = zt(s.rtl, this.x, this.width);\n for (t.x = Ee(this, s.footerAlign, s), t.y += s.footerMarginTop, e.textAlign = l.textAlign(s.footerAlign), e.textBaseline = \"middle\", r = $(s.footerFont), e.fillStyle = s.footerColor, e.font = r.string, a = 0; a < o; ++a)\n e.fillText(n[a], l.x(t.x), t.y + r.lineHeight / 2), t.y += r.lineHeight + s.footerSpacing;\n }\n }\n drawBackground(t, e, s, n) {\n const { xAlign: o, yAlign: r } = this, { x: a, y: l } = t, { width: c, height: h } = s, { topLeft: d, topRight: u, bottomLeft: f, bottomRight: g } = Dt(n.cornerRadius);\n e.fillStyle = n.backgroundColor, e.strokeStyle = n.borderColor, e.lineWidth = n.borderWidth, e.beginPath(), e.moveTo(a + d, l), r === \"top\" && this.drawCaret(t, e, s, n), e.lineTo(a + c - u, l), e.quadraticCurveTo(a + c, l, a + c, l + u), r === \"center\" && o === \"right\" && this.drawCaret(t, e, s, n), e.lineTo(a + c, l + h - g), e.quadraticCurveTo(a + c, l + h, a + c - g, l + h), r === \"bottom\" && this.drawCaret(t, e, s, n), e.lineTo(a + f, l + h), e.quadraticCurveTo(a, l + h, a, l + h - f), r === \"center\" && o === \"left\" && this.drawCaret(t, e, s, n), e.lineTo(a, l + d), e.quadraticCurveTo(a, l, a + d, l), e.closePath(), e.fill(), n.borderWidth > 0 && e.stroke();\n }\n _updateAnimationTarget(t) {\n const e = this.chart, s = this.$animations, n = s && s.x, o = s && s.y;\n if (n || o) {\n const r = se[t.position].call(this, this._active, this._eventPosition);\n if (!r)\n return;\n const a = this._size = Ks(this, t), l = Object.assign({}, r, this._size), c = qs(e, t, l), h = Gs(t, l, c, e);\n (n._to !== h.x || o._to !== h.y) && (this.xAlign = c.xAlign, this.yAlign = c.yAlign, this.width = a.width, this.height = a.height, this.caretX = r.x, this.caretY = r.y, this._resolveAnimations().update(this, h));\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(t) {\n const e = this.options.setContext(this.getContext());\n let s = this.opacity;\n if (!s)\n return;\n this._updateAnimationTarget(e);\n const n = {\n width: this.width,\n height: this.height\n }, o = {\n x: this.x,\n y: this.y\n };\n s = Math.abs(s) < 1e-3 ? 0 : s;\n const r = K(e.padding), a = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n e.enabled && a && (t.save(), t.globalAlpha = s, this.drawBackground(o, t, n, e), Tn(t, e.textDirection), o.y += r.top, this.drawTitle(o, t, e), this.drawBody(o, t, e), this.drawFooter(o, t, e), Ln(t, e.textDirection), t.restore());\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(t, e) {\n const s = this._active, n = t.map(({ datasetIndex: a, index: l }) => {\n const c = this.chart.getDatasetMeta(a);\n if (!c)\n throw new Error(\"Cannot find a dataset at index \" + a);\n return {\n datasetIndex: a,\n element: c.data[l],\n index: l\n };\n }), o = !ze(s, n), r = this._positionChanged(n, e);\n (o || r) && (this._active = n, this._eventPosition = e, this._ignoreReplayEvents = !0, this.update(!0));\n }\n handleEvent(t, e, s = !0) {\n if (e && this._ignoreReplayEvents)\n return !1;\n this._ignoreReplayEvents = !1;\n const n = this.options, o = this._active || [], r = this._getActiveElements(t, o, e, s), a = this._positionChanged(r, t), l = e || !ze(r, o) || a;\n return l && (this._active = r, (n.enabled || n.external) && (this._eventPosition = {\n x: t.x,\n y: t.y\n }, this.update(!0, e))), l;\n }\n _getActiveElements(t, e, s, n) {\n const o = this.options;\n if (t.type === \"mouseout\")\n return [];\n if (!n)\n return e;\n const r = this.chart.getElementsAtEventForMode(t, o.mode, o, s);\n return o.reverse && r.reverse(), r;\n }\n _positionChanged(t, e) {\n const { caretX: s, caretY: n, options: o } = this, r = se[o.position].call(this, t, e);\n return r !== !1 && (s !== r.x || n !== r.y);\n }\n}\nCi.positioners = se;\nvar po = {\n id: \"tooltip\",\n _element: Ci,\n positioners: se,\n afterInit(i, t, e) {\n e && (i.tooltip = new Ci({ chart: i, options: e }));\n },\n beforeUpdate(i, t, e) {\n i.tooltip && i.tooltip.initialize(e);\n },\n reset(i, t, e) {\n i.tooltip && i.tooltip.initialize(e);\n },\n afterDraw(i) {\n const t = i.tooltip;\n if (t && t._willRender()) {\n const e = {\n tooltip: t\n };\n if (i.notifyPlugins(\"beforeTooltipDraw\", e) === !1)\n return;\n t.draw(i.ctx), i.notifyPlugins(\"afterTooltipDraw\", e);\n }\n },\n afterEvent(i, t) {\n if (i.tooltip) {\n const e = t.replay;\n i.tooltip.handleEvent(t.event, e, t.inChartArea) && (t.changed = !0);\n }\n },\n defaults: {\n enabled: !0,\n external: null,\n position: \"average\",\n backgroundColor: \"rgba(0,0,0,0.8)\",\n titleColor: \"#fff\",\n titleFont: {\n weight: \"bold\"\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: \"left\",\n bodyColor: \"#fff\",\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: \"left\",\n footerColor: \"#fff\",\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: \"bold\"\n },\n footerAlign: \"left\",\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (i, t) => t.bodyFont.size,\n boxWidth: (i, t) => t.bodyFont.size,\n multiKeyBackground: \"#fff\",\n displayColors: !0,\n boxPadding: 0,\n borderColor: \"rgba(0,0,0,0)\",\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: \"easeOutQuart\"\n },\n animations: {\n numbers: {\n type: \"number\",\n properties: [\"x\", \"y\", \"width\", \"height\", \"caretX\", \"caretY\"]\n },\n opacity: {\n easing: \"linear\",\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: ct,\n title(i) {\n if (i.length > 0) {\n const t = i[0], e = t.chart.data.labels, s = e ? e.length : 0;\n if (this && this.options && this.options.mode === \"dataset\")\n return t.dataset.label || \"\";\n if (t.label)\n return t.label;\n if (s > 0 && t.dataIndex < s)\n return e[t.dataIndex];\n }\n return \"\";\n },\n afterTitle: ct,\n beforeBody: ct,\n beforeLabel: ct,\n label(i) {\n if (this && this.options && this.options.mode === \"dataset\")\n return i.label + \": \" + i.formattedValue || i.formattedValue;\n let t = i.dataset.label || \"\";\n t && (t += \": \");\n const e = i.formattedValue;\n return T(e) || (t += e), t;\n },\n labelColor(i) {\n const e = i.chart.getDatasetMeta(i.datasetIndex).controller.getStyle(i.dataIndex);\n return {\n borderColor: e.borderColor,\n backgroundColor: e.backgroundColor,\n borderWidth: e.borderWidth,\n borderDash: e.borderDash,\n borderDashOffset: e.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(i) {\n const e = i.chart.getDatasetMeta(i.datasetIndex).controller.getStyle(i.dataIndex);\n return {\n pointStyle: e.pointStyle,\n rotation: e.rotation\n };\n },\n afterLabel: ct,\n afterBody: ct,\n beforeFooter: ct,\n footer: ct,\n afterFooter: ct\n }\n },\n defaultRoutes: {\n bodyFont: \"font\",\n footerFont: \"font\",\n titleFont: \"font\"\n },\n descriptors: {\n _scriptable: (i) => i !== \"filter\" && i !== \"itemSort\" && i !== \"external\",\n _indexable: !1,\n callbacks: {\n _scriptable: !1,\n _indexable: !1\n },\n animation: {\n _fallback: !1\n },\n animations: {\n _fallback: \"animation\"\n }\n },\n additionalOptionScopes: [\"interaction\"]\n}, mo = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n Decimation: ao,\n Filler: ho,\n Legend: uo,\n SubTitle: go,\n Title: fo,\n Tooltip: po\n});\nconst Sc = (i, t, e, s) => (typeof t == \"string\" ? (e = i.push(t) - 1, s.unshift({ index: e, label: t })) : isNaN(t) && (e = null), e);\nfunction Pc(i, t, e, s) {\n const n = i.indexOf(t);\n if (n === -1)\n return Sc(i, t, e, s);\n const o = i.lastIndexOf(t);\n return n !== o ? e : n;\n}\nconst Cc = (i, t) => i === null ? null : Y(Math.round(i), 0, t);\nclass ce extends Mt {\n constructor(t) {\n super(t), this._startValue = void 0, this._valueRange = 0, this._addedLabels = [];\n }\n init(t) {\n const e = this._addedLabels;\n if (e.length) {\n const s = this.getLabels();\n for (const { index: n, label: o } of e)\n s[n] === o && s.splice(n, 1);\n this._addedLabels = [];\n }\n super.init(t);\n }\n parse(t, e) {\n if (T(t))\n return null;\n const s = this.getLabels();\n return e = isFinite(e) && s[e] === t ? e : Pc(s, t, C(e, t), this._addedLabels), Cc(e, s.length - 1);\n }\n determineDataLimits() {\n const { minDefined: t, maxDefined: e } = this.getUserBounds();\n let { min: s, max: n } = this.getMinMax(!0);\n this.options.bounds === \"ticks\" && (t || (s = 0), e || (n = this.getLabels().length - 1)), this.min = s, this.max = n;\n }\n buildTicks() {\n const t = this.min, e = this.max, s = this.options.offset, n = [];\n let o = this.getLabels();\n o = t === 0 && e === o.length - 1 ? o : o.slice(t, e + 1), this._valueRange = Math.max(o.length - (s ? 0 : 1), 1), this._startValue = this.min - (s ? 0.5 : 0);\n for (let r = t; r <= e; r++)\n n.push({ value: r });\n return n;\n }\n getLabelForValue(t) {\n const e = this.getLabels();\n return t >= 0 && t < e.length ? e[t] : t;\n }\n configure() {\n super.configure(), this.isHorizontal() || (this._reversePixels = !this._reversePixels);\n }\n getPixelForValue(t) {\n return typeof t != \"number\" && (t = this.parse(t)), t === null ? NaN : this.getPixelForDecimal((t - this._startValue) / this._valueRange);\n }\n getPixelForTick(t) {\n const e = this.ticks;\n return t < 0 || t > e.length - 1 ? null : this.getPixelForValue(e[t].value);\n }\n getValueForPixel(t) {\n return Math.round(this._startValue + this.getDecimalForPixel(t) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nce.id = \"category\";\nce.defaults = {\n ticks: {\n callback: ce.prototype.getLabelForValue\n }\n};\nfunction Dc(i, t) {\n const e = [], { bounds: n, step: o, min: r, max: a, precision: l, count: c, maxTicks: h, maxDigits: d, includeBounds: u } = i, f = o || 1, g = h - 1, { min: p, max: m } = t, b = !T(r), x = !T(a), v = !T(c), y = (m - p) / (d + 1);\n let _ = qi((m - p) / g / f) * f, M, k, S, w;\n if (_ < 1e-14 && !b && !x)\n return [{ value: p }, { value: m }];\n w = Math.ceil(m / _) - Math.floor(p / _), w > g && (_ = qi(w * _ / g / f) * f), T(l) || (M = Math.pow(10, l), _ = Math.ceil(_ * M) / M), n === \"ticks\" ? (k = Math.floor(p / _) * _, S = Math.ceil(m / _) * _) : (k = p, S = m), b && x && o && Oo((a - r) / o, _ / 1e3) ? (w = Math.round(Math.min((a - r) / _, h)), _ = (a - r) / w, k = r, S = a) : v ? (k = b ? r : k, S = x ? a : S, w = c - 1, _ = (S - k) / w) : (w = (S - k) / _, te(w, Math.round(w), _ / 1e3) ? w = Math.round(w) : w = Math.ceil(w));\n const L = Math.max(\n Gi(_),\n Gi(k)\n );\n M = Math.pow(10, T(l) ? L : l), k = Math.round(k * M) / M, S = Math.round(S * M) / M;\n let R = 0;\n for (b && (u && k !== r ? (e.push({ value: r }), k < r && R++, te(Math.round((k + R * _) * M) / M, r, Qs(r, y, i)) && R++) : k < r && R++); R < w; ++R)\n e.push({ value: Math.round((k + R * _) * M) / M });\n return x && u && S !== a ? e.length && te(e[e.length - 1].value, a, Qs(a, y, i)) ? e[e.length - 1].value = a : e.push({ value: a }) : (!x || S === a) && e.push({ value: S }), e;\n}\nfunction Qs(i, t, { horizontal: e, minRotation: s }) {\n const n = nt(s), o = (e ? Math.sin(n) : Math.cos(n)) || 1e-3, r = 0.75 * t * (\"\" + i).length;\n return Math.min(t / o, r);\n}\nclass Ye extends Mt {\n constructor(t) {\n super(t), this.start = void 0, this.end = void 0, this._startValue = void 0, this._endValue = void 0, this._valueRange = 0;\n }\n parse(t, e) {\n return T(t) || (typeof t == \"number\" || t instanceof Number) && !isFinite(+t) ? null : +t;\n }\n handleTickRangeOptions() {\n const { beginAtZero: t } = this.options, { minDefined: e, maxDefined: s } = this.getUserBounds();\n let { min: n, max: o } = this;\n const r = (l) => n = e ? n : l, a = (l) => o = s ? o : l;\n if (t) {\n const l = lt(n), c = lt(o);\n l < 0 && c < 0 ? a(0) : l > 0 && c > 0 && r(0);\n }\n if (n === o) {\n let l = 1;\n (o >= Number.MAX_SAFE_INTEGER || n <= Number.MIN_SAFE_INTEGER) && (l = Math.abs(o * 0.05)), a(o + l), t || r(n - l);\n }\n this.min = n, this.max = o;\n }\n getTickLimit() {\n const t = this.options.ticks;\n let { maxTicksLimit: e, stepSize: s } = t, n;\n return s ? (n = Math.ceil(this.max / s) - Math.floor(this.min / s) + 1, n > 1e3 && (console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${n} ticks. Limiting to 1000.`), n = 1e3)) : (n = this.computeTickLimit(), e = e || 11), e && (n = Math.min(e, n)), n;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const t = this.options, e = t.ticks;\n let s = this.getTickLimit();\n s = Math.max(2, s);\n const n = {\n maxTicks: s,\n bounds: t.bounds,\n min: t.min,\n max: t.max,\n precision: e.precision,\n step: e.stepSize,\n count: e.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: e.minRotation || 0,\n includeBounds: e.includeBounds !== !1\n }, o = this._range || this, r = Dc(n, o);\n return t.bounds === \"ticks\" && cn(r, this, \"value\"), t.reverse ? (r.reverse(), this.start = this.max, this.end = this.min) : (this.start = this.min, this.end = this.max), r;\n }\n configure() {\n const t = this.ticks;\n let e = this.min, s = this.max;\n if (super.configure(), this.options.offset && t.length) {\n const n = (s - e) / Math.max(t.length - 1, 1) / 2;\n e -= n, s += n;\n }\n this._startValue = e, this._endValue = s, this._valueRange = s - e;\n }\n getLabelForValue(t) {\n return de(t, this.chart.options.locale, this.options.ticks.format);\n }\n}\nclass Ge extends Ye {\n determineDataLimits() {\n const { min: t, max: e } = this.getMinMax(!0);\n this.min = N(t) ? t : 0, this.max = N(e) ? e : 1, this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const t = this.isHorizontal(), e = t ? this.width : this.height, s = nt(this.options.ticks.minRotation), n = (t ? Math.sin(s) : Math.cos(s)) || 1e-3, o = this._resolveTickFontOptions(0);\n return Math.ceil(e / Math.min(40, o.lineHeight / n));\n }\n getPixelForValue(t) {\n return t === null ? NaN : this.getPixelForDecimal((t - this._startValue) / this._valueRange);\n }\n getValueForPixel(t) {\n return this._startValue + this.getDecimalForPixel(t) * this._valueRange;\n }\n}\nGe.id = \"linear\";\nGe.defaults = {\n ticks: {\n callback: be.formatters.numeric\n }\n};\nfunction tn(i) {\n return i / Math.pow(10, Math.floor(tt(i))) === 1;\n}\nfunction Oc(i, t) {\n const e = Math.floor(tt(t.max)), s = Math.ceil(t.max / Math.pow(10, e)), n = [];\n let o = Q(i.min, Math.pow(10, Math.floor(tt(t.min)))), r = Math.floor(tt(o)), a = Math.floor(o / Math.pow(10, r)), l = r < 0 ? Math.pow(10, Math.abs(r)) : 1;\n do\n n.push({ value: o, major: tn(o) }), ++a, a === 10 && (a = 1, ++r, l = r >= 0 ? 1 : l), o = Math.round(a * Math.pow(10, r) * l) / l;\n while (r < e || r === e && a < s);\n const c = Q(i.max, o);\n return n.push({ value: c, major: tn(o) }), n;\n}\nclass Ze extends Mt {\n constructor(t) {\n super(t), this.start = void 0, this.end = void 0, this._startValue = void 0, this._valueRange = 0;\n }\n parse(t, e) {\n const s = Ye.prototype.parse.apply(this, [t, e]);\n if (s === 0) {\n this._zero = !0;\n return;\n }\n return N(s) && s > 0 ? s : null;\n }\n determineDataLimits() {\n const { min: t, max: e } = this.getMinMax(!0);\n this.min = N(t) ? Math.max(0, t) : null, this.max = N(e) ? Math.max(0, e) : null, this.options.beginAtZero && (this._zero = !0), this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const { minDefined: t, maxDefined: e } = this.getUserBounds();\n let s = this.min, n = this.max;\n const o = (l) => s = t ? s : l, r = (l) => n = e ? n : l, a = (l, c) => Math.pow(10, Math.floor(tt(l)) + c);\n s === n && (s <= 0 ? (o(1), r(10)) : (o(a(s, -1)), r(a(n, 1)))), s <= 0 && o(a(n, -1)), n <= 0 && r(a(s, 1)), this._zero && this.min !== this._suggestedMin && s === a(this.min, 0) && o(a(s, -1)), this.min = s, this.max = n;\n }\n buildTicks() {\n const t = this.options, e = {\n min: this._userMin,\n max: this._userMax\n }, s = Oc(e, this);\n return t.bounds === \"ticks\" && cn(s, this, \"value\"), t.reverse ? (s.reverse(), this.start = this.max, this.end = this.min) : (this.start = this.min, this.end = this.max), s;\n }\n getLabelForValue(t) {\n return t === void 0 ? \"0\" : de(t, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const t = this.min;\n super.configure(), this._startValue = tt(t), this._valueRange = tt(this.max) - tt(t);\n }\n getPixelForValue(t) {\n return (t === void 0 || t === 0) && (t = this.min), t === null || isNaN(t) ? NaN : this.getPixelForDecimal(t === this.min ? 0 : (tt(t) - this._startValue) / this._valueRange);\n }\n getValueForPixel(t) {\n const e = this.getDecimalForPixel(t);\n return Math.pow(10, this._startValue + e * this._valueRange);\n }\n}\nZe.id = \"logarithmic\";\nZe.defaults = {\n ticks: {\n callback: be.formatters.logarithmic,\n major: {\n enabled: !0\n }\n }\n};\nfunction Di(i) {\n const t = i.ticks;\n if (t.display && i.display) {\n const e = K(t.backdropPadding);\n return C(t.font && t.font.size, O.font.size) + e.height;\n }\n return 0;\n}\nfunction Ac(i, t, e) {\n return e = z(e) ? e : [e], {\n w: ar(i, t.string, e),\n h: e.length * t.lineHeight\n };\n}\nfunction en(i, t, e, s, n) {\n return i === s || i === n ? {\n start: t - e / 2,\n end: t + e / 2\n } : i < s || i > n ? {\n start: t - e,\n end: t\n } : {\n start: t,\n end: t + e\n };\n}\nfunction Tc(i) {\n const t = {\n l: i.left + i._padding.left,\n r: i.right - i._padding.right,\n t: i.top + i._padding.top,\n b: i.bottom - i._padding.bottom\n }, e = Object.assign({}, t), s = [], n = [], o = i._pointLabels.length, r = i.options.pointLabels, a = r.centerPointLabels ? B / o : 0;\n for (let l = 0; l < o; l++) {\n const c = r.setContext(i.getPointLabelContext(l));\n n[l] = c.padding;\n const h = i.getPointPosition(l, i.drawingArea + n[l], a), d = $(c.font), u = Ac(i.ctx, d, i._pointLabels[l]);\n s[l] = u;\n const f = Z(i.getIndexAngle(l) + a), g = Math.round(Ai(f)), p = en(g, h.x, u.w, 0, 180), m = en(g, h.y, u.h, 90, 270);\n Lc(e, t, f, p, m);\n }\n i.setCenterPoint(\n t.l - e.l,\n e.r - t.r,\n t.t - e.t,\n e.b - t.b\n ), i._pointLabelItems = Rc(i, s, n);\n}\nfunction Lc(i, t, e, s, n) {\n const o = Math.abs(Math.sin(e)), r = Math.abs(Math.cos(e));\n let a = 0, l = 0;\n s.start < t.l ? (a = (t.l - s.start) / o, i.l = Math.min(i.l, t.l - a)) : s.end > t.r && (a = (s.end - t.r) / o, i.r = Math.max(i.r, t.r + a)), n.start < t.t ? (l = (t.t - n.start) / r, i.t = Math.min(i.t, t.t - l)) : n.end > t.b && (l = (n.end - t.b) / r, i.b = Math.max(i.b, t.b + l));\n}\nfunction Rc(i, t, e) {\n const s = [], n = i._pointLabels.length, o = i.options, r = Di(o) / 2, a = i.drawingArea, l = o.pointLabels.centerPointLabels ? B / n : 0;\n for (let c = 0; c < n; c++) {\n const h = i.getPointPosition(c, a + r + e[c], l), d = Math.round(Ai(Z(h.angle + V))), u = t[c], f = Ic(h.y, u.h, d), g = Ec(d), p = Fc(h.x, u.w, g);\n s.push({\n x: h.x,\n y: f,\n textAlign: g,\n left: p,\n top: f,\n right: p + u.w,\n bottom: f + u.h\n });\n }\n return s;\n}\nfunction Ec(i) {\n return i === 0 || i === 180 ? \"center\" : i < 180 ? \"left\" : \"right\";\n}\nfunction Fc(i, t, e) {\n return e === \"right\" ? i -= t : e === \"center\" && (i -= t / 2), i;\n}\nfunction Ic(i, t, e) {\n return e === 90 || e === 270 ? i -= t / 2 : (e > 270 || e < 90) && (i -= t), i;\n}\nfunction zc(i, t) {\n const { ctx: e, options: { pointLabels: s } } = i;\n for (let n = t - 1; n >= 0; n--) {\n const o = s.setContext(i.getPointLabelContext(n)), r = $(o.font), { x: a, y: l, textAlign: c, left: h, top: d, right: u, bottom: f } = i._pointLabelItems[n], { backdropColor: g } = o;\n if (!T(g)) {\n const p = Dt(o.borderRadius), m = K(o.backdropPadding);\n e.fillStyle = g;\n const b = h - m.left, x = d - m.top, v = u - h + m.width, y = f - d + m.height;\n Object.values(p).some((_) => _ !== 0) ? (e.beginPath(), ae(e, {\n x: b,\n y: x,\n w: v,\n h: y,\n radius: p\n }), e.fill()) : e.fillRect(b, x, v, y);\n }\n Tt(\n e,\n i._pointLabels[n],\n a,\n l + r.lineHeight / 2,\n r,\n {\n color: o.color,\n textAlign: c,\n textBaseline: \"middle\"\n }\n );\n }\n}\nfunction bo(i, t, e, s) {\n const { ctx: n } = i;\n if (e)\n n.arc(i.xCenter, i.yCenter, t, 0, F);\n else {\n let o = i.getPointPosition(0, t);\n n.moveTo(o.x, o.y);\n for (let r = 1; r < s; r++)\n o = i.getPointPosition(r, t), n.lineTo(o.x, o.y);\n }\n}\nfunction Bc(i, t, e, s) {\n const n = i.ctx, o = t.circular, { color: r, lineWidth: a } = t;\n !o && !s || !r || !a || e < 0 || (n.save(), n.strokeStyle = r, n.lineWidth = a, n.setLineDash(t.borderDash), n.lineDashOffset = t.borderDashOffset, n.beginPath(), bo(i, e, o, s), n.closePath(), n.stroke(), n.restore());\n}\nfunction Vc(i, t, e) {\n return vt(i, {\n label: e,\n index: t,\n type: \"pointLabel\"\n });\n}\nclass Nt extends Ye {\n constructor(t) {\n super(t), this.xCenter = void 0, this.yCenter = void 0, this.drawingArea = void 0, this._pointLabels = [], this._pointLabelItems = [];\n }\n setDimensions() {\n const t = this._padding = K(Di(this.options) / 2), e = this.width = this.maxWidth - t.width, s = this.height = this.maxHeight - t.height;\n this.xCenter = Math.floor(this.left + e / 2 + t.left), this.yCenter = Math.floor(this.top + s / 2 + t.top), this.drawingArea = Math.floor(Math.min(e, s) / 2);\n }\n determineDataLimits() {\n const { min: t, max: e } = this.getMinMax(!1);\n this.min = N(t) && !isNaN(t) ? t : 0, this.max = N(e) && !isNaN(e) ? e : 0, this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / Di(this.options));\n }\n generateTickLabels(t) {\n Ye.prototype.generateTickLabels.call(this, t), this._pointLabels = this.getLabels().map((e, s) => {\n const n = I(this.options.pointLabels.callback, [e, s], this);\n return n || n === 0 ? n : \"\";\n }).filter((e, s) => this.chart.getDataVisibility(s));\n }\n fit() {\n const t = this.options;\n t.display && t.pointLabels.display ? Tc(this) : this.setCenterPoint(0, 0, 0, 0);\n }\n setCenterPoint(t, e, s, n) {\n this.xCenter += Math.floor((t - e) / 2), this.yCenter += Math.floor((s - n) / 2), this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(t, e, s, n));\n }\n getIndexAngle(t) {\n const e = F / (this._pointLabels.length || 1), s = this.options.startAngle || 0;\n return Z(t * e + nt(s));\n }\n getDistanceFromCenterForValue(t) {\n if (T(t))\n return NaN;\n const e = this.drawingArea / (this.max - this.min);\n return this.options.reverse ? (this.max - t) * e : (t - this.min) * e;\n }\n getValueForDistanceFromCenter(t) {\n if (T(t))\n return NaN;\n const e = t / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - e : this.min + e;\n }\n getPointLabelContext(t) {\n const e = this._pointLabels || [];\n if (t >= 0 && t < e.length) {\n const s = e[t];\n return Vc(this.getContext(), t, s);\n }\n }\n getPointPosition(t, e, s = 0) {\n const n = this.getIndexAngle(t) - V + s;\n return {\n x: Math.cos(n) * e + this.xCenter,\n y: Math.sin(n) * e + this.yCenter,\n angle: n\n };\n }\n getPointPositionForValue(t, e) {\n return this.getPointPosition(t, this.getDistanceFromCenterForValue(e));\n }\n getBasePosition(t) {\n return this.getPointPositionForValue(t || 0, this.getBaseValue());\n }\n getPointLabelPosition(t) {\n const { left: e, top: s, right: n, bottom: o } = this._pointLabelItems[t];\n return {\n left: e,\n top: s,\n right: n,\n bottom: o\n };\n }\n drawBackground() {\n const { backgroundColor: t, grid: { circular: e } } = this.options;\n if (t) {\n const s = this.ctx;\n s.save(), s.beginPath(), bo(this, this.getDistanceFromCenterForValue(this._endValue), e, this._pointLabels.length), s.closePath(), s.fillStyle = t, s.fill(), s.restore();\n }\n }\n drawGrid() {\n const t = this.ctx, e = this.options, { angleLines: s, grid: n } = e, o = this._pointLabels.length;\n let r, a, l;\n if (e.pointLabels.display && zc(this, o), n.display && this.ticks.forEach((c, h) => {\n if (h !== 0) {\n a = this.getDistanceFromCenterForValue(c.value);\n const d = n.setContext(this.getContext(h - 1));\n Bc(this, d, a, o);\n }\n }), s.display) {\n for (t.save(), r = o - 1; r >= 0; r--) {\n const c = s.setContext(this.getPointLabelContext(r)), { color: h, lineWidth: d } = c;\n !d || !h || (t.lineWidth = d, t.strokeStyle = h, t.setLineDash(c.borderDash), t.lineDashOffset = c.borderDashOffset, a = this.getDistanceFromCenterForValue(e.ticks.reverse ? this.min : this.max), l = this.getPointPosition(r, a), t.beginPath(), t.moveTo(this.xCenter, this.yCenter), t.lineTo(l.x, l.y), t.stroke());\n }\n t.restore();\n }\n }\n drawBorder() {\n }\n drawLabels() {\n const t = this.ctx, e = this.options, s = e.ticks;\n if (!s.display)\n return;\n const n = this.getIndexAngle(0);\n let o, r;\n t.save(), t.translate(this.xCenter, this.yCenter), t.rotate(n), t.textAlign = \"center\", t.textBaseline = \"middle\", this.ticks.forEach((a, l) => {\n if (l === 0 && !e.reverse)\n return;\n const c = s.setContext(this.getContext(l)), h = $(c.font);\n if (o = this.getDistanceFromCenterForValue(this.ticks[l].value), c.showLabelBackdrop) {\n t.font = h.string, r = t.measureText(a.label).width, t.fillStyle = c.backdropColor;\n const d = K(c.backdropPadding);\n t.fillRect(\n -r / 2 - d.left,\n -o - h.size / 2 - d.top,\n r + d.width,\n h.size + d.height\n );\n }\n Tt(t, a.label, 0, -o, h, {\n color: c.color\n });\n }), t.restore();\n }\n drawTitle() {\n }\n}\nNt.id = \"radialLinear\";\nNt.defaults = {\n display: !0,\n animate: !0,\n position: \"chartArea\",\n angleLines: {\n display: !0,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0\n },\n grid: {\n circular: !1\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: !0,\n callback: be.formatters.numeric\n },\n pointLabels: {\n backdropColor: void 0,\n backdropPadding: 2,\n display: !0,\n font: {\n size: 10\n },\n callback(i) {\n return i;\n },\n padding: 5,\n centerPointLabels: !1\n }\n};\nNt.defaultRoutes = {\n \"angleLines.color\": \"borderColor\",\n \"pointLabels.color\": \"color\",\n \"ticks.color\": \"color\"\n};\nNt.descriptors = {\n angleLines: {\n _fallback: \"grid\"\n }\n};\nconst Je = {\n millisecond: { common: !0, size: 1, steps: 1e3 },\n second: { common: !0, size: 1e3, steps: 60 },\n minute: { common: !0, size: 6e4, steps: 60 },\n hour: { common: !0, size: 36e5, steps: 24 },\n day: { common: !0, size: 864e5, steps: 30 },\n week: { common: !1, size: 6048e5, steps: 4 },\n month: { common: !0, size: 2628e6, steps: 12 },\n quarter: { common: !1, size: 7884e6, steps: 4 },\n year: { common: !0, size: 3154e7 }\n}, G = Object.keys(Je);\nfunction Wc(i, t) {\n return i - t;\n}\nfunction sn(i, t) {\n if (T(t))\n return null;\n const e = i._adapter, { parser: s, round: n, isoWeekday: o } = i._parseOpts;\n let r = t;\n return typeof s == \"function\" && (r = s(r)), N(r) || (r = typeof s == \"string\" ? e.parse(r, s) : e.parse(r)), r === null ? null : (n && (r = n === \"week\" && (Bt(o) || o === !0) ? e.startOf(r, \"isoWeek\", o) : e.startOf(r, n)), +r);\n}\nfunction nn(i, t, e, s) {\n const n = G.length;\n for (let o = G.indexOf(i); o < n - 1; ++o) {\n const r = Je[G[o]], a = r.steps ? r.steps : Number.MAX_SAFE_INTEGER;\n if (r.common && Math.ceil((e - t) / (a * r.size)) <= s)\n return G[o];\n }\n return G[n - 1];\n}\nfunction Nc(i, t, e, s, n) {\n for (let o = G.length - 1; o >= G.indexOf(e); o--) {\n const r = G[o];\n if (Je[r].common && i._adapter.diff(n, s, r) >= t - 1)\n return r;\n }\n return G[e ? G.indexOf(e) : 0];\n}\nfunction Hc(i) {\n for (let t = G.indexOf(i) + 1, e = G.length; t < e; ++t)\n if (Je[G[t]].common)\n return G[t];\n}\nfunction on(i, t, e) {\n if (!e)\n i[t] = !0;\n else if (e.length) {\n const { lo: s, hi: n } = Ti(e, t), o = e[s] >= t ? e[s] : e[n];\n i[o] = !0;\n }\n}\nfunction jc(i, t, e, s) {\n const n = i._adapter, o = +n.startOf(t[0].value, s), r = t[t.length - 1].value;\n let a, l;\n for (a = o; a <= r; a = +n.add(a, 1, s))\n l = e[a], l >= 0 && (t[l].major = !0);\n return t;\n}\nfunction rn(i, t, e) {\n const s = [], n = {}, o = t.length;\n let r, a;\n for (r = 0; r < o; ++r)\n a = t[r], n[a] = r, s.push({\n value: a,\n major: !1\n });\n return o === 0 || !e ? s : jc(i, s, n, e);\n}\nclass Ht extends Mt {\n constructor(t) {\n super(t), this._cache = {\n data: [],\n labels: [],\n all: []\n }, this._unit = \"day\", this._majorUnit = void 0, this._offsets = {}, this._normalized = !1, this._parseOpts = void 0;\n }\n init(t, e) {\n const s = t.time || (t.time = {}), n = this._adapter = new Nn._date(t.adapters.date);\n n.init(e), Qt(s.displayFormats, n.formats()), this._parseOpts = {\n parser: s.parser,\n round: s.round,\n isoWeekday: s.isoWeekday\n }, super.init(t), this._normalized = e.normalized;\n }\n parse(t, e) {\n return t === void 0 ? null : sn(this, t);\n }\n beforeLayout() {\n super.beforeLayout(), this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const t = this.options, e = this._adapter, s = t.time.unit || \"day\";\n let { min: n, max: o, minDefined: r, maxDefined: a } = this.getUserBounds();\n function l(c) {\n !r && !isNaN(c.min) && (n = Math.min(n, c.min)), !a && !isNaN(c.max) && (o = Math.max(o, c.max));\n }\n (!r || !a) && (l(this._getLabelBounds()), (t.bounds !== \"ticks\" || t.ticks.source !== \"labels\") && l(this.getMinMax(!1))), n = N(n) && !isNaN(n) ? n : +e.startOf(Date.now(), s), o = N(o) && !isNaN(o) ? o : +e.endOf(Date.now(), s) + 1, this.min = Math.min(n, o - 1), this.max = Math.max(n + 1, o);\n }\n _getLabelBounds() {\n const t = this.getLabelTimestamps();\n let e = Number.POSITIVE_INFINITY, s = Number.NEGATIVE_INFINITY;\n return t.length && (e = t[0], s = t[t.length - 1]), { min: e, max: s };\n }\n buildTicks() {\n const t = this.options, e = t.time, s = t.ticks, n = s.source === \"labels\" ? this.getLabelTimestamps() : this._generate();\n t.bounds === \"ticks\" && n.length && (this.min = this._userMin || n[0], this.max = this._userMax || n[n.length - 1]);\n const o = this.min, r = this.max, a = Ro(n, o, r);\n return this._unit = e.unit || (s.autoSkip ? nn(e.minUnit, this.min, this.max, this._getLabelCapacity(o)) : Nc(this, a.length, e.minUnit, this.min, this.max)), this._majorUnit = !s.major.enabled || this._unit === \"year\" ? void 0 : Hc(this._unit), this.initOffsets(n), t.reverse && a.reverse(), rn(this, a, this._majorUnit);\n }\n afterAutoSkip() {\n this.options.offsetAfterAutoskip && this.initOffsets(this.ticks.map((t) => +t.value));\n }\n initOffsets(t) {\n let e = 0, s = 0, n, o;\n this.options.offset && t.length && (n = this.getDecimalForValue(t[0]), t.length === 1 ? e = 1 - n : e = (this.getDecimalForValue(t[1]) - n) / 2, o = this.getDecimalForValue(t[t.length - 1]), t.length === 1 ? s = o : s = (o - this.getDecimalForValue(t[t.length - 2])) / 2);\n const r = t.length < 3 ? 0.5 : 0.25;\n e = Y(e, 0, r), s = Y(s, 0, r), this._offsets = { start: e, end: s, factor: 1 / (e + 1 + s) };\n }\n _generate() {\n const t = this._adapter, e = this.min, s = this.max, n = this.options, o = n.time, r = o.unit || nn(o.minUnit, e, s, this._getLabelCapacity(e)), a = C(o.stepSize, 1), l = r === \"week\" ? o.isoWeekday : !1, c = Bt(l) || l === !0, h = {};\n let d = e, u, f;\n if (c && (d = +t.startOf(d, \"isoWeek\", l)), d = +t.startOf(d, c ? \"day\" : r), t.diff(s, e, r) > 1e5 * a)\n throw new Error(e + \" and \" + s + \" are too far apart with stepSize of \" + a + \" \" + r);\n const g = n.ticks.source === \"data\" && this.getDataTimestamps();\n for (u = d, f = 0; u < s; u = +t.add(u, a, r), f++)\n on(h, u, g);\n return (u === s || n.bounds === \"ticks\" || f === 1) && on(h, u, g), Object.keys(h).sort((p, m) => p - m).map((p) => +p);\n }\n getLabelForValue(t) {\n const e = this._adapter, s = this.options.time;\n return s.tooltipFormat ? e.format(t, s.tooltipFormat) : e.format(t, s.displayFormats.datetime);\n }\n _tickFormatFunction(t, e, s, n) {\n const o = this.options, r = o.time.displayFormats, a = this._unit, l = this._majorUnit, c = a && r[a], h = l && r[l], d = s[e], u = l && h && d && d.major, f = this._adapter.format(t, n || (u ? h : c)), g = o.ticks.callback;\n return g ? I(g, [f, e, s], this) : f;\n }\n generateTickLabels(t) {\n let e, s, n;\n for (e = 0, s = t.length; e < s; ++e)\n n = t[e], n.label = this._tickFormatFunction(n.value, e, t);\n }\n getDecimalForValue(t) {\n return t === null ? NaN : (t - this.min) / (this.max - this.min);\n }\n getPixelForValue(t) {\n const e = this._offsets, s = this.getDecimalForValue(t);\n return this.getPixelForDecimal((e.start + s) * e.factor);\n }\n getValueForPixel(t) {\n const e = this._offsets, s = this.getDecimalForPixel(t) / e.factor - e.end;\n return this.min + s * (this.max - this.min);\n }\n _getLabelSize(t) {\n const e = this.options.ticks, s = this.ctx.measureText(t).width, n = nt(this.isHorizontal() ? e.maxRotation : e.minRotation), o = Math.cos(n), r = Math.sin(n), a = this._resolveTickFontOptions(0).size;\n return {\n w: s * o + a * r,\n h: s * r + a * o\n };\n }\n _getLabelCapacity(t) {\n const e = this.options.time, s = e.displayFormats, n = s[e.unit] || s.millisecond, o = this._tickFormatFunction(t, 0, rn(this, [t], this._majorUnit), n), r = this._getLabelSize(o), a = Math.floor(this.isHorizontal() ? this.width / r.w : this.height / r.h) - 1;\n return a > 0 ? a : 1;\n }\n getDataTimestamps() {\n let t = this._cache.data || [], e, s;\n if (t.length)\n return t;\n const n = this.getMatchingVisibleMetas();\n if (this._normalized && n.length)\n return this._cache.data = n[0].controller.getAllParsedValues(this);\n for (e = 0, s = n.length; e < s; ++e)\n t = t.concat(n[e].controller.getAllParsedValues(this));\n return this._cache.data = this.normalize(t);\n }\n getLabelTimestamps() {\n const t = this._cache.labels || [];\n let e, s;\n if (t.length)\n return t;\n const n = this.getLabels();\n for (e = 0, s = n.length; e < s; ++e)\n t.push(sn(this, n[e]));\n return this._cache.labels = this._normalized ? t : this.normalize(t);\n }\n normalize(t) {\n return un(t.sort(Wc));\n }\n}\nHt.id = \"time\";\nHt.defaults = {\n bounds: \"data\",\n adapters: {},\n time: {\n parser: !1,\n unit: !1,\n round: !1,\n isoWeekday: !1,\n minUnit: \"millisecond\",\n displayFormats: {}\n },\n ticks: {\n source: \"auto\",\n major: {\n enabled: !1\n }\n }\n};\nfunction Fe(i, t, e) {\n let s = 0, n = i.length - 1, o, r, a, l;\n e ? (t >= i[s].pos && t <= i[n].pos && ({ lo: s, hi: n } = ft(i, \"pos\", t)), { pos: o, time: a } = i[s], { pos: r, time: l } = i[n]) : (t >= i[s].time && t <= i[n].time && ({ lo: s, hi: n } = ft(i, \"time\", t)), { time: o, pos: a } = i[s], { time: r, pos: l } = i[n]);\n const c = r - o;\n return c ? a + (l - a) * (t - o) / c : a;\n}\nclass Qe extends Ht {\n constructor(t) {\n super(t), this._table = [], this._minPos = void 0, this._tableRange = void 0;\n }\n initOffsets() {\n const t = this._getTimestampsForTable(), e = this._table = this.buildLookupTable(t);\n this._minPos = Fe(e, this.min), this._tableRange = Fe(e, this.max) - this._minPos, super.initOffsets(t);\n }\n buildLookupTable(t) {\n const { min: e, max: s } = this, n = [], o = [];\n let r, a, l, c, h;\n for (r = 0, a = t.length; r < a; ++r)\n c = t[r], c >= e && c <= s && n.push(c);\n if (n.length < 2)\n return [\n { time: e, pos: 0 },\n { time: s, pos: 1 }\n ];\n for (r = 0, a = n.length; r < a; ++r)\n h = n[r + 1], l = n[r - 1], c = n[r], Math.round((h + l) / 2) !== c && o.push({ time: c, pos: r / (a - 1) });\n return o;\n }\n _getTimestampsForTable() {\n let t = this._cache.all || [];\n if (t.length)\n return t;\n const e = this.getDataTimestamps(), s = this.getLabelTimestamps();\n return e.length && s.length ? t = this.normalize(e.concat(s)) : t = e.length ? e : s, t = this._cache.all = t, t;\n }\n getDecimalForValue(t) {\n return (Fe(this._table, t) - this._minPos) / this._tableRange;\n }\n getValueForPixel(t) {\n const e = this._offsets, s = this.getDecimalForPixel(t) / e.factor - e.end;\n return Fe(this._table, s * this._tableRange + this._minPos, !0);\n }\n}\nQe.id = \"timeseries\";\nQe.defaults = Ht.defaults;\nvar xo = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n CategoryScale: ce,\n LinearScale: Ge,\n LogarithmicScale: Ze,\n RadialLinearScale: Nt,\n TimeScale: Ht,\n TimeSeriesScale: Qe\n});\nconst $c = [\n Wn,\n oo,\n mo,\n xo\n], Yc = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Animation: In,\n Animations: Ni,\n ArcElement: ye,\n BarController: ue,\n BarElement: Me,\n BasePlatform: Hi,\n BasicPlatform: Yn,\n BubbleController: fe,\n CategoryScale: ce,\n Chart: ji,\n DatasetController: it,\n Decimation: ao,\n DomPlatform: Kn,\n DoughnutController: Lt,\n Element: st,\n Filler: ho,\n Interaction: Hn,\n Legend: uo,\n LineController: ge,\n LineElement: gt,\n LinearScale: Ge,\n LogarithmicScale: Ze,\n PieController: qe,\n PointElement: ve,\n PolarAreaController: pe,\n RadarController: me,\n RadialLinearScale: Nt,\n Scale: Mt,\n ScatterController: xe,\n SubTitle: go,\n Ticks: be,\n TimeScale: Ht,\n TimeSeriesScale: Qe,\n Title: fo,\n Tooltip: po,\n _adapters: Nn,\n _detectPlatform: qn,\n animator: at,\n controllers: Wn,\n defaults: O,\n elements: oo,\n layouts: X,\n plugins: mo,\n registerables: $c,\n registry: ot,\n scales: xo\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n ye as A,\n Me as B,\n ve as P,\n K as a,\n D as b,\n I as c,\n O as d,\n E as e,\n Yc as f,\n T as i,\n ne as m,\n Zt as r,\n $ as t,\n C as v\n};\n//# sourceMappingURL=chart.es.js.map\n"],"sourceRoot":""}