}gridData titlesDatarangeAnnotationsminXmaxX baselineXminYmaxY baselineYclipDatabackgroundColor verticalDiffhorizontalDiffextraLinesDatarotationQuarterTurnspropstouchChartCoordinatelefttoprightbottomrotateByQuarterTurnsoutsideborderinsideminmaxparentAxisSize axisPositionappliedInterval sideTitlesformattedValueaxisSide showTitlesgetTitlesWidget reservedSizeinterval minIncluded maxIncludedlerpcopyWithenableddistanceFromEdge axisNameSizeaxisNameWidgetdrawBelowEverythingsideTitleAlignmentshowAxisTitlesshowSideTitlesshow leftTitles topTitles rightTitles bottomTitlesxyxErroryErrortoStringnullSpotzeroisNull isNotNull==hashCodelowerByupperBydrawHorizontalLinehorizontalIntervalgetDrawingHorizontalLinecheckToShowHorizontalLinedrawVerticalLineverticalIntervalgetDrawingVerticalLinecheckToShowVerticalLinecolorgradient strokeWidth dashArrayspotoffsethorizontalRangeAnnotationsverticalRangeAnnotationsy1y2x1x2image sizedPicturelabel strokeCapcopyVerticalLineWith labelResolverdefaultLineLabelResolverpicturewidthheighthorizontalLines verticalLinesextraLinesOnTopdrawgetSize mainColorhitTestradius strokeColor_lerpsizepainter lineColor lineWidth capLengthcrossAlignmentshowErrorTextserrorTextStyleerrorTextDirection _linePaint_drawDirectErrorLine_drawErrorTextpaintverticalLineProviderhorizontalLineProvider _imagePaint_drawHorizontalLine_drawVerticalLine+ AxisChartDataAxisBaseTouchResponseAxisSideSideTitleAlignment TitleMetaGetTitleWidgetFunctiondefaultGetTitle SideTitlesSideTitleFitInsideData AxisTitles FlTitlesDataFlSpot FlErrorRange FlGridDataCheckToShowGrid showAllGridsGetDrawingGridLinedefaultGridLineFlLine TouchedSpotRangeAnnotationsHorizontalRangeAnnotationVerticalRangeAnnotationHorizontalLine VerticalLineHorizontalLineLabelVerticalLineLabel SizedPictureExtraLinesData FlDotPainterFlDotCirclePainterFlDotSquarePainterFlDotCrossPainterFlErrorIndicatorDataGetSpotRangeErrorPainter _defaultGetSpotRangeErrorPainterFlSpotErrorRangePainterFlSimpleErrorPainterFlSpotErrorRangeCallbackInputValueInCanvasProviderAxisSpotIndicatorAxisSpotIndicatorPainterAxisLinesIndicatorPainter€ÝImage BaseChartDataEquatableMixindouble FlClipDataColornoneColors transparentintoverrideListObject borderDataBaseTouchResponseOffsetvaluesindexOflengthStringWidgetgetTitlesWidget formatNumberSideTitleWidgetmetachildTextformattedValue getTitlesboolTweenlerp showTitles reservedSize lerpDoubleinterval minIncluded maxIncluded fromTitleMetaspaceenableddistanceFromEdgeparentAxisSize axisPositionaxisNameoutsideaxisNameWidget axisNameSize sideTitlesdrawBelowEverythingsideTitleAlignmentshow leftTitles rightTitles bottomTitles topTitles immutablexyxErroryErrornannullSpot identicalisNaNhashCodelowerByupperByAxisChartPainterdrawHorizontalLinehorizontalIntervalgetDrawingHorizontalLinecheckToShowHorizontalLinedrawVerticalLineverticalIntervalgetDrawingVerticalLinecheckToShowVerticalLinevaluecolorblueGrey strokeWidth dashArrayblackGradientgradient lerpIntListhorizontalRangeAnnotations!lerpHorizontalRangeAnnotationListverticalRangeAnnotationslerpVerticalRangeAnnotationListwhitey1y2x1x2 LineChart LineChartDataextraLinesData StrokeCapbuttlabelimage sizedPicture strokeCap FlLineLabel alignmentpaddingstyle directionall AlignmenttopLeftLabelDirection horizontaldefaultLineLabelResolvertoStringAsFixed EdgeInsets TextStyle labelResolver fontWeight FontWeightboldfontSize bottomRightPictureextraLinesOnTophorizontalLineslerpHorizontalLineList verticalLineslerpVerticalLineListvoidCanvasSizedefaultScatterTooltipItemhitTestRect fromCentercenterwidthheightinflatecontainsgreenfromRGBOa drawCirclePaint PaintingStylestrokefill fromRadiusradius strokeColordistanceabsdrawRect fromCirclesquaresizePathmoveTodxdyrelativeMoveTorelativeLineTodrawPathBarChartPieChartBarChartRodData toYErrorRangetoYpainterinput$LineChartSpotErrorRangeCallbackInputT TextDirectionltrshifttopbottomcanvasrect isHorizontalisLowertextUtilsminYmaxY textStyleleftrightminXmaxXdrawLine TextPainterTextSpan textDirectionlayoutpaint BuildContext CanvasWrappersetColorOrGradientForLinefromtotransparentIfWidthIsZerodrawDashedLinesave translate drawPicturepicturerestore drawImagemergegetThemeAwareTextStyledrawText withinRectfromLTRBverticaldrawVerticalTexthorizontalLineProviderverticalLineProvider BaseChartDataEquatableMixinBaseTouchResponseFlLine FlLineLabel FlDotPainterFlSpotErrorRangePainterAxisSpotIndicatorPainterf:ÄYfÁSR¹˜ |“U dart:ui, package:equatable/equatable.dartWpackage:fl_chart/fl_chart.dart€€Bpackage:fl_chart/src/chart/base/axis_chart/axis_chart_painter.dart€Í4package:fl_chart/src/extensions/paint_extension.dart� .package:fl_chart/src/utils/canvas_wrapper.dart�E$package:fl_chart/src/utils/lerp.dart�t%package:fl_chart/src/utils/utils.dart�Ê�ÔImage�¤package:flutter/material.dartÀ¾=À*R‰Ÿ*+V€Ì� �D�s�£�Ö�ׂ ‚U‚Œ‚É‚ûƒ/ƒxƒŠƒ¤ƒÂƒê„„„1„I„a„x„’„®„Ä„è… …>…‡…«…φ†H†‹†¨†É†ô†õ‡ ‡‡9‡N‡c‡}‡~‡Ã‡à‡áˆˆ:ˆ;ˆaˆ‹ˆŒˆ²ˆÞˆß‰‰E‰F‰ƒ‰¥‰¦‰Û‰çŠŠŠ,ŠFŠTŠbŠuŠƒŠ‘Š¤Š¶ŠÏŠãŠû‹‹"‹$‹%‹n‹¯‹É‹ëŒŒŒŒ_Œ„Œ†Œ‡ŒªŒºŒÂŒÉŒÒŒÜŒÝ��5��ƒ�…�†�ÐŽŽŽ<ŽNŽ\ŽsŽŠŽ¬ŽÌŽï� �/�K�s�‚�§�è�ó�ô� ���3�G�H�k�Š�‹�¹�â�ÿ‘‘6‘V‘W‘‘ž‘Ÿ‘ì’ ’ ’P’k’l’¨’®’ì““““V“¦“§“Þ“â”(”_”y”‰”𔵔¼”Á”ÔĔü•#•Z•••›•ã–4–a–’–Þ———c—”—š—ë˜6˜K˜h˜”˜°˜Ã˜à˜ý™C™D™x™‘™’™âšššMš›šê››F›G›„›µ›Ò›Óœ$œoœ‰œŠœÒœý���`�‹�¥�¦�éž7žYž…žËŸŸ(ŸLŸUŸVŸ�Ÿ³ŸËŸá  ( > U l t † ¹ û¡4¡a¡—¡Í¡Ö¡×¢ ¢¢7¢K¢d¢z¢Œ¢¡¢¶¢¿¢Á¢Â¢õ£££R£Š£Ã£ö¤+¤Q¤W¤Ž¤È¥¥ ¥:¥¥…¥À¦¦!¦<¦\¦~¦¢¦¨¦©¦Û§§?§‹§£§À§Û§ô§ý§þ¨>¨†¨¶¨Ì¨å©©©,©F©r©Ÿ©È©Ñ©ÒªªªªkªŒª�ª°ªÏªÐªþ«3«P«Q«]«|«�«§«¿«Õ«Þ«à«á¬(¬O¬Ž¬¨¬®¬÷¬ý­F­[­t­�­º­ß®®® ®H®e®f®«®ü¯¯¯T¯s¯t¯Ì¯Ò°,°N°O°�°¿°À±±M±N±‘±®±ë±ì²/²}²§²í³1³e³—³ ³¡³Ú³þ´´2´L´h´‡´³´»´Íµ µEµxµÆ¶¶¶¶P¶\¶{¶“¶©¶½¶Ú¶ö¶ÿ···<·e·›·â¸$¸;¸Q¸y¸—¸±¸Ë¸Ô¸Û¹¹ ¹:¹T¹]¹d¹�¹«¹Å¹ß¹è¹ïºº7ºQºkºtº{º�º‚º•º´ºÒºò»»»Y»¡»µ»Ë¼¼V¼ ¼á¼ê¼ë½(½L½f½v½’½­½Ê½è½ð¾¾%¾X¾ˆ¾¾¾÷¿¿¿6¿B¿a¿o¿ƒ¿–¿«¿Á¿Ê¿Ì¿ÍÀ@À@À@-À@oÀ@šÀ@ À@àÀA ÀAÀA)ÀA7ÀAHÀAYÀA_ÀA`ÀArÀA„ÀA¢ÀAÀÀAÁÀAòÀBÀB0ÀBDÀBSÀBbÀB|ÀB–ÀBžÀB¬ÀBÁÀBÖÀBýÀC$ÀC-ÀC.ÀC]ÀCiÀCžÀCŸÀCØÀDÀDÀD6ÀDaÀDbÀDŠÀD¯ÀD°ÀDÝÀDþÀDÿÀE>ÀEsÀE“ÀE£ÀE©ÀEªÀEÊÀEÚÀEàÀEáÀEôÀFÀF4ÀFlÀF¤ÀF«ÀF¯ÀF°ÀFíÀFùÀGÀGIÀGeÀGyÀGÀG€ÀGÀÀGÓÀGÙÀGÚÀGõÀH ÀH/ÀHOÀHSÀHTÀHlÀHxÀHŽÀHÑÀHÓÀHÔÀI#ÀI'ÀItÀI¸ÀIôÀJÀJ4ÀJOÀJjÀJ¨ÀJæÀJçÀKÀKIÀKvÀK�ÀK¨ÀKâÀKãÀL3ÀL„ÀLœÀL�ÀLæÀM7ÀMOÀMPÀM€ÀMÊÀMìÀNÀN>ÀNuÀN~ÀN„ÀN…ÀN“ÀN—ÀN˜ÀN¤ÀNÕÀN×ÀNØÀNûÀO"ÀOkÀO ÀO¦ÀO÷ÀP<ÀP‘ÀPõÀQÀQuÀQØÀRÀRRÀRXÀR§ÀRêÀS=ÀS¡ÀSºÀTÀT€ÀT¨ÀTöÀU ÀU!ÀUEÀUbÀU—ÀUÊÀUìÀVÀV:ÀVkÀV{ÀVžÀVÚÀVåÀVõÀWÀWPÀW[ÀW\ÀW¢ÀWµÀW¶ÀWïÀXÀXÀXiÀX�ÀXŽÀXÝÀYÀYÀYsÀY¦ÀY§ÀYÞÀYýÀYþÀZTÀZvÀZwÀZÆÀZùÀZúÀ[ZÀ[‹À[ŒÀ[ÏÀ\À\3À\eÀ\�À\ÈÀ]À]FÀ]tÀ]ÅÀ]ÿÀ^;À^DÀ^EÀ^~À^¢À^ºÀ^ÊÀ^èÀ_À_:À_jÀ_†À_¤À_ÔÀ`À` À`À`=À`ˆÀ`ÓÀ`õÀa<Àa_Àa¨ÀaíÀb2ÀbRÀb•Àb¶ÀbûÀcÀcÀc:ÀcFÀceÀcsÀc�Àc«ÀcÍÀcðÀd Àd$ÀdDÀdeÀdnÀdpÀdqÀd¢ÀdÙÀdÚÀdïÀeÀeÀeJÀeNÀe‰ÀeÑÀf ÀfÀf6ÀflÀfŠÀf¢Àf»ÀfÂÀfÃÀfàÀgÀg.Àg[Àg£ÀgÝÀh)ÀhXÀhiÀh{ÀhŽÀh¨Àh¼ÀhÔÀiÀiÀi?ÀiUÀiVÀi~ÀišÀi›ÀiÀÀiÜÀiÝÀjÀj ÀjDÀj�Àj¿ÀjÝÀjÞÀkÀk[Àk‹ÀkÇÀl ÀlGÀlPÀlQÀl‚Àl¦ÀlºÀlÌÀläÀlýÀmÀmÀm-ÀmQÀm~Àm´ÀmäÀmíÀmîÀn#Àn/ÀnNÀn]ÀnoÀn„Àn—Àn Àn¢Àn£ÀnæÀoÀoVÀoˆÀoŽÀoÅÀoøÀpÀpÀp'Àp,Àp-ÀpdÀp–Àp«Àp¬ÀpâÀqÀq,Àq-ÀqbÀqnÀq�Àq›Àq«Àq´Àq¶Àq·ÀqÿÀr,ÀrwÀrÎÀréÀsÀsGÀsMÀsNÀs’ÀsÒÀsÓÀtÀt<ÀtTÀtlÀtzÀt�Àt™ÀtàÀuÀu0Àu=ÀuIÀuŒÀu²ÀuØÀuåÀuñÀuúÀuûÀv@ÀvdÀv‚ÀvÃÀwÀwÀw ÀwDÀw�Àw±ÀwøÀxÀxÀx7ÀxCÀxbÀx†Àx¨Àx±Àx³Àx´ÀxëÀy!ÀyzÀyÂÀyàÀyöÀz ÀzÀz1ÀzIÀz’Àz“ÀzÉÀzÜÀzÝÀ{À{$À{%À{qÀ{«À{öÀ|.À|DÀ|EÀ|”À|ËÀ}À}NÀ}jÀ}kÀ}½À}æÀ~À~(À~6À~=À~^À~†À~®À~ÞÀÀ#À$À{ÀŸÀÆÀÖÀæÀøÀ€À€À€9À€TÀ€oÀ€“À€ÀÀ€ÉÀ€ÊÀ€ÿÀ� À�*À�6À�BÀ�QÀ�cÀ�lÀ�nÀ�oÀ�¨À�ÜÀ‚3À‚{À‚—À‚­À‚ÃÀ‚ÕÀ‚èÀƒÀƒIÀƒJÀƒ‚Àƒ•Àƒ–ÀƒÌÀƒßÀƒàÀ„*À„dÀ„¯À„çÀ„ýÀ„þÀ…KÀ…‚À…ÍÀ†À†!À†"À†rÀ†™À†¸À†×À†åÀ†ìÀ‡ À‡3À‡[À‡‹À‡ÇÀ‡ÐÀ‡ÑÀˆ$ÀˆHÀˆmÀˆ}Àˆ�ÀˆŸÀˆ·Àˆ¿ÀˆÞÀˆùÀ‰À‰8À‰eÀ‰nÀ‰oÀ‰¤À‰°À‰ÏÀ‰ÛÀ‰çÀ‰öÀŠÀŠÀŠÀŠÀŠGÀŠKÀŠ ÀŠôÀ‹.À‹|À‹¹À‹ðÀ‹öÀŒÀŒÀŒ}ÀŒƒÀŒÖÀŒþÀ�À�&À�FÀ�WÀ�kÀ�‚À�—À�§À�¾À�ãÀŽÀŽÀŽTÀŽfÀŽgÀޱÀŽÇÀŽÈÀ�À�2À�3À�[À�~À�À�ÈÀ� À�(À�)À�pÀ�¾À�ÔÀ�ùÀ‘7À‘gÀ‘£À‘æÀ’#À’;À’aÀ’�À’ŠÀ’‹À’ÀÀ’ÌÀ’ëÀ’öÀ“À“À“)À“<À“KÀ“aÀ“tÀ“}À“À“€À“±À“µÀ”À”\À””À”àÀ•À•TÀ•ZÀ•|À•‚À•áÀ•çÀ–<À–dÀ–uÀ–ŠÀ–¨À–¹À–ÍÀ–äÀ–ùÀ— À— À—EÀ—rÀ—sÀ—´À—ÆÀ—ÇÀ˜À˜)À˜*À˜rÀ˜–À˜—À˜¿À˜àÀ˜áÀ™*À™mÀ™ŠÀ™‹À™ÐÀšÀš,ÀšQÀš�Àš½ÀšùÀ›<À›yÀ›‘À›·À›×À›àÀ›áÀœÀœAÀœgÀœvÀœ”Àœ¦Àœ¿ÀœÙÀœëÀ� À�%À�-À�AÀ�YÀ�}À�¡À�×ÀžÀž+ÀždÀž”Àž�ÀžžÀžÓÀžßÀžþÀŸ ÀŸÀŸ'ÀŸ<ÀŸOÀŸ^ÀŸtÀŸ‡ÀŸ�ÀŸ’ÀŸ“ÀŸ½À À WÀ ¢À ¿À ùÀ¡*À¡XÀ¡´À¡ÌÀ¡ùÀ¢ À¢3À¢KÀ¢|À¢ÃÀ¢ÉÀ¢ÊÀ¢îÀ£%À£&À£aÀ£¢À£ÃÀ£ÄÀ¤À¤3À¤NÀ¤iÀ¤wÀ¤~À¤™À¤»À¤ÞÀ¥À¥À¥À¥NÀ¥�À¥·À¥ÍÀ¥íÀ¥öÀ¥÷À¦,À¦8À¦WÀ¦nÀ¦|À¦�À¦œÀ¦¯À¦ÂÀ¦ËÀ¦ÍÀ¦ÎÀ¦öÀ§8À§ŒÀ§×À§ôÀ¨.À¨_À¨�À¨éÀ¨ÿÀ©,À©OÀ©jÀ©�À©¡À©¨À©ÕÀ©íÀªÀªcÀªiÀªjÀªŽÀªÃÀªÄÀªýÀ«<À«]À«^À«¨À«ÉÀ«âÀ«ûÀ¬ À¬À¬)À¬KÀ¬nÀ¬‘À¬žÀ¬ªÀ¬ÞÀ­À­GÀ­]À­}À­†À­‡À­¼À­ÈÀ­çÀ­þÀ® À®À®,À®?À®RÀ®[À®]À®^À®šÀ®žÀ®¯À®»À®æÀ¯À¯cÀ¯ªÀ¯ÆÀ¯ÍÀ¯ÕÀ¯þÀ°$À°KÀ°^À°lÀ°žÀ°íÀ±À±$À±cÀ±šÀ±›À±·À±ÐÀ±ÑÀ±ïÀ²À²À²"À²6À²7À²lÀ²xÀ²—À²¨À²·À²ÇÀ²ÐÀ²ÒÀ²ÓÀ³À³FÀ³ŠÀ³¿À³õÀ´%À´+À´‡À´µÀ´ÎÀ´óÀµÀµ7Àµ=Àµ>ÀµlÀµ–Àµ´ÀµµÀµüÀ¶JÀ¶`À¶ŒÀ¶½À¶ÚÀ¶÷À·À·À·=À·XÀ·sÀ·€À·ŒÀ·•À·–À·ËÀ·×À·öÀ¸À¸&À¸?À¸HÀ¸JÀ¸KÀ¸™À¸ËÀ¸ãÀ¸äÀ¹"À¹bÀ¹cÀ¹«À¹ÈÀ¹ÉÀºÀº(Àº)ÀºhÀºiÀº«Àº×À»$À»4À»EÀ»YÀ»lÀ»‡À»�À»­À»ÓÀ»éÀ¼À¼À¼$À¼`À¼ŒÀ¼�À¼’À¼“À¼ÖÀ¼êÀ½À½]À½‘À½ÅÀ½øÀ¾@À¾WÀ¾vÀ¾ŠÀ¾ÇÀ¾ãÀ¿À¿À¿.À¿CÀ¿DÀ¿nÀ¿…À¿†À¿³À¿ÎÀ¿ÏÀ¿üÀÀÀÀÀÀUÀÀaÀÀ¢ÀÀØÀÀñÀÁ ÀÁ-ÀÁ=ÀÁ]ÀÁƒÀÁ­ÀÁ¶ÀÁ¼ÀÁÓÀÁéÀÁ÷ÀÂÀÂÀÂCÀÂJÀÂNÀÂOÀ–À¢ÀÂèÀÂéÀÂõÀÃÀÃÀÃ2ÀÃLÀÃfÀÃtÀÃ{ÀÕÀÃÆÀÃùÀÄ<ÀÄÀĈÀĉÀÄ•ÀÄÕÀÅÀÅ%ÀÅ+ÀÅFÀÅJÀÅKÀÅWÀÅgÀÅxÀÅŒÀÅŸÀźÀÅÀÀÅøÀÆ'ÀÆ+ÀÆ,ÀÆaÀÆmÀÆŒÀÆ›ÀÆ«ÀÆÀÀÆÕÀÆÞÀÆàÀÆáÀÇ$ÀÇ8ÀÇhÀÇ«ÀÇÛÀÈÀÈBÀÈŠÀÈ¡ÀÈÀÀÈÕÀÉÀÉ.ÀÉ4ÀÉ5ÀÉ`ÀÉuÀÉvÀÉžÀɳÀÉ´ÀÉáÀÉüÀÉýÀÊ*ÀÊFÀÊGÀʃÀÊ�ÀÊÐÀËÀËÀË6ÀËXÀËŠÀË•ÀË¥ÀËÅÀËëÀÌÀÌÀÌ$ÀÌ9ÀÌPÀÌpÀÌŠÀÌ“ÀÌ¡À̹ÀÌßÀÌæÀÌêÀÌëÀÍ2ÀÍ>ÀÍ~ÀÍÀÍ‹ÀÍ«ÀͬÀÍáÀÍíÀÎ ÀÎÀÎ)ÀÎ>ÀÎSÀÎ\ÀÎ]ÀÎyÀΓÀέÀλÀÎÂÀÎÜÀÏ ÀÏ;ÀÏ~ÀÏÁÀÏÊÀÏËÀÏ×ÀÐÀÐWÀÐgÀÐmÀЈÀÐŒÀÐŽÀÐ�ÀÐÒÀÐíÀÑÀÑ|ÀÑ·ÀÑÍÀÑìÀÒÀÒÀÒÀÒÀÒIÀÒ^ÀÒ_ÀÒ’ÀÒ§ÀÒ¨ÀÒÎÀÒäÀÒåÀÓ ÀÓ,ÀÓmÀÓ…ÀÓºÀÓçÀÔ ÀÔ?ÀÔkÀÔ�ÀÔ‘ÀÔ«ÀÔÐÀÔìÀÕÀÕÀÕ&ÀÕ*ÀÕ+ÀÕrÀÕ~ÀÕ¯ÀÕ°ÀÕ¼ÀÕÜÀÕÝÀÕøÀÖÀÖ*ÀÖ8ÀÖ?ÀÖXÀÖ‰ÀÖ·ÀÖèÀÖñÀÖòÀÖþÀ×>À×|À׌À×’À×­À×±ÀײÀ×çÀ×óÀØÀØ!ÀØ/ÀØ>ÀØGÀØIÀØJÀØ„À؈ÀØØÀÙÀÙÀÙfÀÙ©ÀÙõÀÙùÀÚEÀÚ–ÀÚšÀÚÎÀÛÀÛÀÛKÀÛ–ÀÛæÀÜ1ÀÜuÀÜ�ÀÜ®ÀÜÄÀÜùÀÜÿÀÝÀÝ4ÀÝGÀÝHÀÝ�ÀÝÎÀÝûÀÝüÀÞ5ÀÞ…ÀÞ¤ÀÞÃÀÞÑÀÞØÀÞ÷Àß Àß)Àß2Àß3Àß?Àß^ÀßlÀß}À߆À߈À߉Àß×Àà"Àà&Àà[Àà¬ÀàöÀáÀá)Àá,Àá-ÀátÀáÃÀáýÀâ$Àâ)ÀâEÀâFÀâ’ÀâÚÀâÞÀã*Àã:Àã>ÀãŽÀã²Àã¶ÀäÀäCÀäfÀägÀä§Àä­ÀäåÀå,ÀåfÀå¦ÀåäÀæ3Àæ€Àæ—ÀæäÀçÀç Àç[ÀçhÀç{Àç–Àç©ÀçÅÀçæÀçëÀçíÀçîÀè*Àè.Àè~Àè¾ÀèÂÀéÀéÀécÀégÀé¯ÀéÌÀéÐÀêÀêoÀêˆÀê«ÀêÅÀêßÀêüÀëÀëHÀëcÀëwÀë~Àë¯Àë¶ÀëÏÀëéÀì Àì/Àì;ÀìnÀì­Àì´Àì¸Àì¹ÀìÜÀìõÀìöÀíÀí7Àí8ÀígÀí�Àí‚ÀíªÀíÜÀíûÀíüÀî,ÀîIÀîJÀîmÀî�Àî�Àî·ÀîáÀîâÀïÀïÀïÀïÀï.ÀïIÀï\ÀïxÀï™ÀïŸÀïÙÀðÀð1ÀðMÀð]ÀðŠÀðºÀðÃÀðÄÀðàÀðñÀñ Àñ#Àñ9ÀñXÀñqÀñ—Àñ·Àñ×ÀòÀòÀò8ÀòCÀòDÀòUÀòmÀò‡Àò�Àò¼ÀòÖÀòüÀóÀó<ÀókÀóxÀó�Àó¨Àó°Àó¶Àó·ÀóôÀôÀô.Àô>ÀôlÀô›Àô¤Àô¥ÀôÁÀôÒÀôêÀõÀõÀõ8ÀõQÀõwÀõ—Àõ·ÀõæÀõóÀöÀö#Àö$Àö5ÀöMÀögÀö}Àö›ÀöµÀöÛÀöûÀ÷À÷JÀ÷WÀ÷|À÷‡À÷�À÷•À÷™À÷šÀ÷ßÀø ÀøCÀøDÀø^Àø–ÀøÈÀøÕÀù Àù?ÀùEÀùFÀù[ÀùgÀùqÀùƒÀùŠÀù‹Àù³ÀùíÀúÀú'ÀúAÀúNÀúfÀúzÀú¦ÀúÐÀúæÀúðÀû ÀûÀûGÀûmÀûƒÀûŽÀû›Àû¨ÀûÁÀûÕÀüÀü+ÀüAÀüKÀüeÀüyÀü¡ÀüÇÀüÝÀüèÀüîÀüòÀüóÀý Àý'Àý?Àý_ÀýzÀý”Àý¶Àý½ÀýàÀýöÀþ Àþ$Àþ-ÀþUÀþfÀþgÀþ€ÀþŸÀþ±ÀþåÀÿÀÿ8Àÿ9ÀÿXÀÿˆÀÿšÀÿ¾ÀÿòÀÿóÀÀÀ$À3ÀBÀKÀRÀVÀWÀcÀ‚À•À¨À»ÀÓÀëÀÀÀ(À*À+À_ÀŒÀ�ÀáÀÀgÀ«À¬ÀïÀðÀ5ÀRÀVÀ ÀÝÀáÀ)ÀfÀ±ÀÒÀÖÀÀAÀEÀƒÀ¤ÀÒÀîÀúÀÀ!À'À(À;ÀNÀxÀyÀÃÀäÀýÀÀ$À+ÀDÀhÀŒÀ»ÀÄÀÅÀúÀÀ%À0À;ÀLÀUÀWÀXÀ˜ÀœÀßÀ À À EÀ �À ±À ÛÀ ÿÀ À À .À HÀ [À nÀ ˜À ÅÀ òÀ À À À jÀ ‹À «À ¹À ¾À ÀÀ ÁÀ À À PÀ “À ±À ÙÀ À À À JÀ KÀ �À �À ÆÀ äÀ åÀÀ;À<ÀXÀrÀ“À¬À½ÀÌÀÒÀáÀÀÀ/ÀCÀSÀ[À€À§ÀÊÀîÀïÀÀÀ'À9ÀOÀVÀWÀ|À°ÀåÀÀ/À0ÀDÀUÀÀ±ÀÆÀÌÀÍÀëÀÀFÀŠÀ©À¾ÀÛÀðÀùÀÿÀÀÀ;ÀOÀ˜ÀËÀÌÀéÀÀQÀZÀ[ÀyÀ�À·ÀÊÀËÀìÀÀ6ÀFÀnÀ‹À³ÀéÀÀ@ÀQÀ`ÀmÀ“À½ÀÍÀõÀÀFÀ{À¢ÀÇÀØÀçÀôÀüÀÀÀÀ!À;À\ÀsÀ„À“À™ÀÂÀÃÀÒÀõÀ À À4ÀDÀLÀsÀ˜À»ÀßÀàÀÀÀÀ*À@ÀGÀHÀmÀ¡ÀÖÀÿÀ2À3ÀGÀXÀ‚À´ÀÉÀÏÀÐÀîÀÀIÀkÀ©ÀÈÀÝÀúÀÀÀÀÀ:ÀZÀnÀ·ÀêÀëÀÀ1ÀpÀyÀzÀ˜À¬ÀÖÀéÀêÀ À3ÀUÀeÀ�ÀªÀÞÀ À +À _À pÀ À ŒÀ ²À ÜÀ ìÀ!À!1À!ZÀ!�À!³À!æÀ!÷À"À"À"À"!À"%À"&À"2À"@À"ZÀ"mÀ"€À"ªÀ"×À#À#%À#+À#fÀ#�À#ÈÀ#ÛÀ$À$;À$VÀ$…À$²À$»À$×À%À%3À%<À%WÀ%hÀ%À%—À%¥À%´À%½À%ÃÀ%ÄÀ%ÝÀ&"À&5À&qÀ&‘À&«À&ÖÀ'À'À'+À'VÀ'…À'ŽÀ'�À'¨À'¹À'ÐÀ'æÀ'óÀ(À( À(À(À(À(iÀ(ŒÀ(­À(»À(ÂÀ(ãÀ)À)SÀ)\À)]À)’À)žÀ)¿À)ßÀ)íÀ)óÀ*À*.À*4À*LÀ*PÀ*R +V€Ì� �D�s�£�Ê�Ô �׉Lƒ>ƒ>�W/// This is the base class for axis base charts data /// that contains a [FlGridData] that holds data for showing grid lines, /// also we have [minX], [maxX], [minY], [maxY] values /// we use them to determine how much is the scale of chart, /// and calculate x and y according to the scale. /// each child have to set it in their constructor.ƒzƒƒzƒzƒ‡ƒŽƒ›ƒšƒ¨ƒ·ƒ¶ƒÆ"ƒÙƒØƒîƒýƒü„„„„„'„&„5„D„C„M„\„[„e„n„m„|„‰„ˆ„–„ž„�„²„¹„¸„Ȅل؄ì„ò„ñ4…………'……*…0…:…;…W…F…j…Y…m…s…ƒ…„…™…�…¥…›…¨…½…³…É…¿…Ì…à…×…ë…â…î…ô…þ…ÿ†††††1†!†4†:†;†_†P†p†a†s†y†‡†ˆ †�†ž†ž†ª†½†½†Ë'†â†â†÷‡‡‡ ‡‡‡!‡.‡.‡;‡H‡H‡P‡]‡]‡e‡r‡r‡€^‡Ö‡ÖB/// clip the chart to the border (prevent draw outside the border)‡ãUˆ)ˆ)7/// A background color which is drawn behind the chart.ˆáb‰5‰5�z�z /// parent axis max width/height��p�ñ�ñR/// The position (in pixel) that applied to /// this drawing title along its axis.‘R‘E‘E3/// The interval that applied to this drawing title‘YC‘’‘’%/// Reference of [SideTitles] object.‘¡h‘û‘ûJ/// Formatted value that is suitable to show, for example 100, 2k, 5m, ...’[’a’aA/// Determines the axis side of titles (left, top, right, bottom)’n€ž’ø’øy/// Chart is rotated by 90 degrees clockwise in each turn /// /// default is zero, which means chart is normal and upward”Ä�ü••7/// Holds data for showing label values on axis numbers•%„˜>˜>˜H‚ô/// It draws some title on an axis, per axis values, /// [showTitles] determines showing or hiding this side, /// /// Texts are depend on the axis value, you can override [getTitles], /// it gives you an axis value (double value) and a [TitleMeta] which contains /// additional information about the axis. /// Then you should return a [Widget] to show. /// It allows you to do anything you want, For example you can show icons /// instead of texts, because it accepts a [Widget] /// /// [reservedSize] determines the maximum space that your titles need, /// (All titles will stretch using this value) /// /// Texts are showing with provided [interval]. If you don't provide anything, /// we try to find a suitable value to set as [interval] under the hood.˜O˜U˜T˜l&˜r˜q˜˜˜ž˜�˜´ ˜º˜¹˜Ç˜Í˜Ì˜ä˜ê˜é ˜a˜ƒ˜¬˜Ú˜÷™™ ™™@™™ ™™™FI™…™…1/// Determines showing or hiding this side titles™”�°›5›5�u/// You can override it to pass your custom widget to show in each axis value /// We recommend you to use [SideTitleWidget]. /// /// If you decide to implement your custom widget /// (instead of [SideTitleWidget]), you have to take care of the alignment, /// space to the chart and also the rotation (if you are rotating the chart, /// for example for Horizontal Bar Chart)›I€‡›Ä›Äi/// It determines the maximum space that your titles need, /// (All titles will stretch using this value)›Õ€²œœ€—/// Texts are showing with provided [interval]. If you don't provide anything, /// we try to find a suitable value to set as [interval] under the hood.œŒ€‰� � n/// If true (default), a title for the minimum data value is included /// independent of the sampling interval�€‰�˜�˜n/// If true (default), a title for the maximum data value is included /// independent of the sampling interval¡Ù€å¢,¢,2/// Used for equality check, see [EquatableMixin].¢¢�¨�¬�ý�ý@/// Lerps a [SideTitles] based on [t] value, check [Tween.lerp].ž žž ž žžžž&ž%ŸX‚}ŸÀŸÀX/// Copies current [SideTitles] to a new [SideTitles], /// and replaces provided values.ŸÏŸÖŸÕŸå'ŸþŸý    , 5 4 B I H Y ` _¢Â‰£É£É�/// Force child widget to be positioned inside its /// corresponding axis bounding box /// /// To makes things simpler, it's recommended to use /// [SideTitleFitInsideData.fromTitleMeta] and pass the /// TitleMeta provided from [SideTitles.getTitlesWidget]£ø‚¯¦¦¦�ñ/// Force child widget to be positioned inside its /// corresponding axis bounding box /// /// To makes things simpler, it's recommended to use /// [SideTitleFitInsideData.fromTitleMeta] and pass the /// TitleMeta provided from [SideTitles.getTitlesWidget] /// /// Some translations will be applied to force /// children to be positioned inside the parent axis bounding box. /// /// Will override the [SideTitleWidget.space] and caused /// spacing between [SideTitles] children might be not equal.¦%¦4¦3¦@¦O¦N¦`¦o¦n¦‚¦‘¦�¦«�Q§I§_§`§g§`€�/// Create a disabled [SideTitleFitInsideData]. /// If used, the child widget wouldn't be fitted /// inside its corresponding axis bounding box¨�Ш�¨¦¨§¨´¨§€ƒ/// Help to Create [SideTitleFitInsideData] from [TitleMeta]. /// [TitleMeta] is provided by [SideTitles.getTitlesWidget] function.¨º¨Å¨Ä¨Ð¨Ö¨Õ¨é¨ñ¨ð¨ß©©ÔHªª3/// Whether to enable fit inside to SideTitleWidgetª!iªzªzI/// Distance between child widget and its closest corresponding axis edgeª�>ª¿ª¿ /// Parent axis max width/heightªÒ|«B«B^/// The position (in pixel) that applied to /// the child widget along its corresponding axis.«S€Š«q«q«S«T«á‹¬.¬.F/// Holds data for showing each side titles (left, top, right, bottom)¬Q�Í­N­N­X€ê/// you can provide [axisName] if you want to show a general /// label on this axis, /// /// [axisNameSize] determines the maximum size that [axisName] can use /// /// [sideTitles] property is responsible to show your axis side labels­_­e­d­x­~­}­”$­š­™­¾­Ä­Ã­ã4­é­è ­Œ­¦­¬­¶­·­Ù­ý®®®"A®W®W%/// Determines the size of [axisName]®h€²¯ ¯ €‘/// It shows the name of axis, for example your x-axis shows year, /// then you might want to show it using [axisNameWidget] property as a widget¯R¯g¯g4/// It is responsible to show your axis side labels.¯v€Ö°9°9€±/// If titles are showing on top of your tooltip, you can draw them below everything. /// /// In the future, we will convert tooltips to a widget, that would solve this problem.°Ql°«°«>/// Where the [SideTitles] are drawn in relation to the chart.°Â€Š±±@/// If there is something to show as axisTitles, it returns true±P€š±œ±œ@/// If there is something to show as sideTitles, it returns true¶€á¶p¶p2/// Used for equality check, see [EquatableMixin].¶R¶S±î�±²C²C@/// Lerps a [AxisTitles] based on [t] value, check [Tween.lerp].²H ²T²S²V ²b²a²d²l²k³£‚v´ ´ X/// Copies current [SideTitles] to a new [SideTitles], /// and replaces provided values.´´#´"´6´?´>´P´]´\´l´s´r´‹&´ ´Ÿ·ˆÉ·B·B9/// Holds data for showing titles on each side of charts.·gƒ¸,¸,¸8€¸/// [show] determines showing or hiding all titles, /// [leftTitles], [topTitles], [rightTitles], [bottomTitles] defines /// side titles of left, top, right, bottom sides respectively.¸?¸E¸D¸U€„¸[¸Z¸ß€ƒ¸å¸ä¹h€…¹n¹m¹ó€†¹ù¹ø=¸K¸g¸m¸w¸Ø¸‰¸¸‹¸•¸Ñ¸«¸Ÿ¸­¸Ã¸¹¸Å¸ð¸ö¹¹a¹¹¹¹¹Z¹4¹(¹6¹L¹B¹N¹{¹�¹‹¹ì¹�¹“¹Ÿ¹©¹å¹¿¹³¹Á¹×¹Í¹Ùºº ººxº)ºº+º5ºqºKº?ºMºcºYºeº„º�º�º—º¨º¨º¶ºÇºÇºÔºåºåºô»»¿€Æ¿V¿V2/// Used for equality check, see [EquatableMixin].¿8¿9»�Ó»o»oB/// Lerps a [FlTitlesData] based on [t] value, check [Tween.lerp].»t»‚»�»„»’»‘»”»œ»›¼í‚½[½[\/// Copies current [FlTitlesData] to a new [FlTitlesData], /// and replaces provided values.½j ½q½p½z½‡½†½–½£½¢½±½¾½½½Î½Û½Ú¿Í‰À@$À@$E/// Represents a conceptual position in cartesian (axis based) space.À@/�/ÀAÀAÀA€Õ/// [x] determines cartesian (axis based) horizontally position /// 0 means most left point of the chart /// /// [y] determines cartesian (axis based) vertically position /// 0 means most bottom point of the chartÀA!ÀA'ÀA&ÀA-ÀA3ÀA2ÀA; ÀAAÀA@ÀAL ÀARÀAQÀAbÀAoÀAoÀAtÀA�ÀA�ÀA†ÀAšÀAšÀA¤ÀA¸ÀA¸ÀC¡vÀCîÀCî6/// Used for splitting lines, or maybe other concepts. ÀCùÀCÿÀDÀDÀDÀDÀD ÀDÀDÀDCÀDLÀDL/// Sets zero for x and yÀDSÀDYÀD^ÀDZÀD]ÀHVzÀH‚ÀH‚/// Override hashCodeÀHnÀHoÀAÃ�iÀB9ÀB9P/// Copies current [FlSpot] to a new [FlSpot], /// and replaces provided values.ÀBH ÀBQÀBPÀBW ÀB`ÀB_ÀBfÀBuÀBtÀB€ÀB�ÀBŽÀC0mÀCrÀCr,///Prints x and y coordinates of FlSpot listÀC_ÀC`ÀDdJÀD‘ÀD‘%/// Determines if [x] or [y] is null.ÀD²KÀDäÀDä*/// Determines if [x] and [y] is not null.ÀE�­ÀENÀEN+ÀVDÀVCÀUÀU?ÀU†ÀU¼ÀUæÀV)ÀV]ÀVsÀVyÀVœÀVâÀV˜ÀV…ÀV›ÀV¨ÀVíÀVóÀWÀWXÀWÀVÿÀWÀW ÀW^UÀW¯ÀW¯C/// Determines showing or hiding all horizontal and vertical lines.ÀW¸VÀWüÀWü6/// Determines showing or hiding all horizontal lines.ÀXxÀXyÀXyU/// Determines interval between horizontal lines, left it null to be auto calculated.ÀX�€€ÀXøÀXøL/// Gives you a y value, and gets a [FlLine] that represents specified line.ÀY€�ÀY‹ÀY‹]/// Gives you a y value, and gets a boolean that determines showing or hiding specified line.ÀY©RÀYëÀYë4/// Determines showing or hiding all vertical lines.ÀZtÀZdÀZdS/// Determines interval between vertical lines, left it null to be auto calculated.ÀZy~ÀZáÀZáL/// Gives you a x value, and gets a [FlLine] that represents specified line.ÀZü€�À[rÀ[r]/// Gives you a x value, and gets a boolean that determines showing or hiding specified line.Àc�fÀcZÀcZ2/// Used for equality check, see [EquatableMixin].Àc<Àc=À[Ž‚µÀ[ãÀ[ã@/// Lerps a [FlGridData] based on [t] value, check [Tween.lerp].À[è À[ôÀ[óÀ[ö À\À\À\À\ À\ À^G„¼À^¯À^¯X/// Copies current [FlGridData] to a new [FlGridData], /// and replaces provided values. À^¾ À^ÅÀ^ÄÀ^ÎÀ^ÕÀ^ÔÀ^ìÀ^õÀ^ôÀ_ ,À_!À_ À_>*À_PÀ_OÀ_nÀ_uÀ_tÀ_ŠÀ_“À_’À_¨*À_½À_¼À_Ø(À_êÀ_éÀfÇÞÀfæÀfæ/// Defines style of a line.Àg‚Àh`Àh`Àhf�H/// Renders a line, color it by [color], /// thickness is defined by [strokeWidth], /// and if you want to have dashed line, you should fill [dashArray], /// it is a circular array of dash offsets and lengths. /// For example, the array `[5, 10]` would result in dashes 5 pixels long /// followed by blank spaces 10 pixels long.Àhm ÀhuÀhtÀh Àh…Àh„Àh’Àh˜Àh—Àh¬Àh²Àh±Àh¥ÀhÉÀhÃÀhÑÀhËÀhàÀiÀiÀiÀháÀiÀhðÀhèÀhâÀhëÀhüÀhóÀhÿÀiÀi ÀiÀiÀi 3ÀiNÀiN/// Defines color of the line.ÀiX@Ài�Ài�%/// Defines the gradient of the line.Ài�=ÀiÏÀiÏ"/// Defines thickness of the line.Ài߀üÀjÒÀjÒ€×/// Defines dash effect of the line. /// /// it is a circular array of dash offsets and lengths. /// For example, the array `[5, 10]` would result in dashes 5 pixels long /// followed by blank spaces 10 pixels long.Àmð€¯ÀnCÀnC2/// Used for equality check, see [EquatableMixin].Àn%Àn&Àjà�oÀk-Àk-Àz8ÀzFÀz@ÀzUÀz�ÀzzÀz‰ÀzVÀzxÀzeÀz]ÀzWÀz`ÀzqÀzhÀztÀz|Àz‚ÀzƒÀz‹Àz•EÀzØÀzØ3/// Determines starting point in vertical (y) axis.ÀzßCÀ{ À{ 1/// Determines ending point in vertical (y) axis.À{'�À|=À|=�/// If provided, this [HorizontalRangeAnnotation] draws with this [color] /// Otherwise we use [gradient] to draw the background. /// It draws with [gradient] if you provide both [color] and [gradient]. /// If none is provided, it draws with a white color.À|G�!À}`À}`�/// If provided, this [HorizontalRangeAnnotation] draws with this [gradient] /// Otherwise we use [color] to draw the background. /// It draws with [gradient] if you provide both [color] and [gradient]. /// If none is provided, it draws with a white color.À€Ì€ŸÀ�À�2/// Used for equality check, see [EquatableMixin].À�À�À}m�µÀ}àÀ}àO/// Lerps a [HorizontalRangeAnnotation] based on [t] value, check [Tween.lerp].À}êÀ~À~À~ À~&À~%À~,À~4À~3À&�¢À»À»v/// Copies current [HorizontalRangeAnnotation] to a new [HorizontalRangeAnnotation], /// and replaces provided values.ÀÊ ÀÓÀÒÀÚ ÀãÀâÀê ÀòÀñÀüÀ€À€À�oˆ£À�®À�®8/// Defines an annotation region in x (horizontal) axis.À�Þ�jÀ‚}À‚}À‚”€š/// Annotates a vertical region from most bottom to most top point of the chart, and /// from [x1] to [x2], and fills the area with [color] or [gradient].À‚›À‚ªÀ‚©À‚±À‚ÀÀ‚¿À‚Ç À‚ÏÀ‚ÎÀ‚Ù À‚ßÀ‚ÞÀ‚õÀ‚ïÀ‚ýÀ‚÷Àƒ ÀƒFÀƒ1Àƒ@Àƒ Àƒ/ÀƒÀƒÀƒÀƒÀƒ(ÀƒÀƒ+Àƒ3Àƒ9Àƒ:ÀƒBÀƒLGÀƒ‘Àƒ‘5/// Determines starting point in horizontal (x) axis.Àƒ˜EÀƒÛÀƒÛ3/// Determines ending point in horizontal (x) axis.Àƒâ�À„öÀ„ö€þ/// If provided, this [VerticalRangeAnnotation] draws with this [color] /// Otherwise we use [gradient] to draw the background. /// It draws with [gradient] if you provide both [color] and [gradient]. /// If none is provided, it draws with a white color.À…�À†À†€þ/// If provided, this [VerticalRangeAnnotation] draws with this [gradient] /// Otherwise we use [color] to draw the background. /// It draws with [gradient] if you provide both [color] and [gradient]. /// If none is provided, it draws with a white color.À‰q€ŸÀ‰ÄÀ‰Ä2/// Used for equality check, see [EquatableMixin].À‰¦À‰§À†$�«À†“À†“M/// Lerps a [VerticalRangeAnnotation] based on [t] value, check [Tween.lerp].À†�À†¶À†µÀ†¼À†ÕÀ†ÔÀ†ÛÀ†ãÀ†âÀ‡Ó�šÀˆbÀˆbr/// Copies current [VerticalRangeAnnotation] to a new [VerticalRangeAnnotation], /// and replaces provided values.Àˆq ÀˆzÀˆyÀˆ� ÀˆŠÀˆ‰Àˆ‘ Àˆ™Àˆ˜Àˆ£Àˆ®Àˆ­ÀЉjÀŠúÀŠú€ß/// Holds data for drawing extra horizontal lines. /// /// [LineChart] draws some [HorizontalLine] (set by [LineChartData.extraLinesData]), /// in below or above of everything, it draws from left to right side of the chart.À‹0‚áÀ�À�À��»/// [LineChart] draws horizontal lines from left to right side of the chart /// in the provided [y] value, and color it using [color]. /// You can define the thickness using [strokeWidth] /// /// It draws a [label] over it. /// /// You can have a dashed line by filling [dashArray] with dash size and space respectively. /// /// It draws an image in left side of the chart, use [sizedPicture] for vectors, /// or [image] for any kind of image. À�À�$À�#À�*À�@À�?À�J À�QÀ�PÀ�[À�bÀ�aÀ�oÀ�vÀ�uÀ�†À��À�ŒÀ�› À�¡À� À�«À�±À�°À�ÂÀ�ÈÀ�Ç À�ÓÀ�ÜÀ�ÝÀ�ðÀ�êÀ�øÀ�òÀ�ûÀŽÀŽÀŽOÀŽcÀŽc>/// Draws from left to right of the chart using the [y] value.ÀŽi\ÀŽÀÀŽÀG/// Use it for any kind of image, to draw it in left side of the chart.ÀŽÊfÀ�$À�$C/// Use it for vector images, to draw it in left side of the chart.À�5GÀ�wÀ�w%/// Draws a text label over the line.À��€¥À�À�€‡/// if not drawing dash line, then this is the StrokeCap for the line. /// i.e. if the two ends of the line is round or butt or square.À’�€ïÀ’àÀ’à2/// Used for equality check, see [EquatableMixin].À’ÂÀ’ÃÀ�+‚^À�ˆÀ�ˆD/// Lerps a [HorizontalLine] based on [t] value, check [Tween.lerp].À��À��À�œÀ�ŸÀ�¯À�®À�±À�¹À�¸À“€ŒÀ”bÀ”b€Û/// Holds data for drawing extra vertical lines. /// /// [LineChart] draws some [VerticalLine] (set by [LineChartData.extraLinesData]), /// in below or above of everything, it draws from bottom to top side of the chart.À”–‚ÛÀ–fÀ–fÀ–r�»/// [LineChart] draws vertical lines from bottom to top side of the chart /// in the provided [x] value, and color it using [color]. /// You can define the thickness using [strokeWidth] /// /// It draws a [label] over it. /// /// You can have a dashed line by filling [dashArray] with dash size and space respectively. /// /// It draws an image in bottom side of the chart, use [sizedPicture] for vectors, /// or [image] for any kind of image. À–yÀ–ˆÀ–‡À–ŽÀ–¢À–¡À–¬ À–³À–²À–½À–ÄÀ–ÃÀ–ÑÀ–ØÀ–×À–èÀ–ïÀ–îÀ–ý À—À—À— À—À—À—$À—*À—) À—5À—>À—?À—RÀ—LÀ—ZÀ—TÀ—]À—nÀ—oÀ—uOÀ—ÃÀ—Ã>/// Draws from bottom to top of the chart using the [x] value.À—É^À˜"À˜"I/// Use it for any kind of image, to draw it in bottom side of the chart.À˜,hÀ˜ˆÀ˜ˆE/// Use it for vector images, to draw it in bottom side of the chart.À˜™EÀ˜ÙÀ˜Ù%/// Draws a text label over the line.À˜ã€¥À™À™€‡/// if not drawing dash line, then this is the StrokeCap for the line. /// i.e. if the two ends of the line is round or butt or square.Àž €ïÀžóÀžó2/// Used for equality check, see [EquatableMixin].ÀžÕÀžÖÀ™�‚RÀ™æÀ™æB/// Lerps a [VerticalLine] based on [t] value, check [Tween.lerp].À™ëÀ™ùÀ™øÀ™ûÀš ÀšÀš ÀšÀšÀ›ã‚¹ÀœPÀœP[/// Copies current [VerticalLine] to a new [VerticalLine] /// and replaces provided values.Àœk ÀœtÀœsÀœzÀœŽÀœ�Àœ˜ Àœ ÀœŸÀœªÀœ³Àœ²ÀœÃÀœÏÀœÎÀœÝ ÀœåÀœäÀœïÀœþÀœýÀ�À�À�ÀŸ“‡9ÀŸÃÀŸÃ)/// Draws a title on the [HorizontalLine]À ‚ÅÀ¡¶À¡¶À¡É�¤/// Draws a title on the [HorizontalLine], align it with [alignment] over the line, /// applies [padding] for spaces, and applies [style for changing color, /// size, ... of the text. /// Drawing text will retrieve through [labelResolver], /// you can override it with your custom data. /// [show] determines showing label or not. /// [direction] determines if the direction of the text should be horizontal or vertical.À¡Ð'À¡×À¡ÖÀ¡ý À¢À¢À¢#À¢À¢À¢7À¢>À¢=À¢O+À¢VÀ¢UÀ¢€AÀ¢†À¢…À¡àÀ¡æÀ¡ðÀ¡ñÀ¡ôÀ¡öÀ¡õÀ¢ À¢)À¢*À¢DÀ¢aÀ¢oÀ¢pÀ¢•À¢¨À¢©À¢ÌWÀ£À£!/// Resolves a label for showing.À¥ù€ÑÀ¦LÀ¦L2/// Used for equality check, see [EquatableMixin].À¦.À¦/À£(€šÀ£qÀ£q8/// Returns the [HorizontalLine.y] as the drawing label.À£ŠÀ£šÀ£™À£Æ‚/À¤-À¤-I/// Lerps a [HorizontalLineLabel] based on [t] value, check [Tween.lerp].À¤7À¤LÀ¤KÀ¤RÀ¤gÀ¤fÀ¤mÀ¤uÀ¤tÀ¦Î‡ŽÀ¦üÀ¦ü'/// Draws a title on the [VerticalLine]À§:ƒ.À¨ëÀ¨ëÀ¨ü�¢/// Draws a title on the [VerticalLine], align it with [alignment] over the line, /// applies [padding] for spaces, and applies [style for changing color, /// size, ... of the text. /// Drawing text will retrieve through [labelResolver], /// you can override it with your custom data. /// [show] determines showing label or not. /// [direction] determines if the direction of the text should be horizontal or vertical.À©'À© À© À©0vÀ©7À©6À©¬'À©³À©²À©ÙÀ©àÀ©ßÀ©ñ+À©øÀ©÷Àª"?Àª(Àª'"À©À©À©#À©$À©'À©)À©(À©>À©DÀ©MÀ©¥À©ZÀ©UÀ©\À©bÀ©cÀ©zÀ©pÀ©|À©†À©‡À©›À©“À©�À©¾À©ÇÀ©ÈÀ©æÀªÀªÀªÀª7ÀªHÀªIÀªlUÀª´Àª´!/// Resolves a label for showing.À­‰€ÑÀ­ÜÀ­Ü2/// Used for equality check, see [EquatableMixin].À­¾À­¿ÀªÆ€–À« À« 6/// Returns the [VerticalLine.x] as the drawing label.À«&À«4À«3À«`‚%À«ÃÀ«ÃG/// Lerps a [VerticalLineLabel] based on [t] value, check [Tween.lerp].À«ÍÀ«àÀ«ßÀ«æÀ«ùÀ«øÀ«ÿÀ¬À¬À®^„sÀ¯ÛÀ¯Û�v/// Holds data for showing a vector image inside the chart. /// /// for example: /// ```dart /// Future loadSvg() async { /// const String rawSvg = 'your svg string'; /// final DrawableRoot svgRoot = await svg.fromSvgString(rawSvg, rawSvg); /// final sizedPicture = SizedPicture(svgRoot.toPicture(), 14, 14); /// return sizedPicture; /// } /// ```À°�™À±eÀ±eÀ±q�R/// [picture] is the showing image, /// it can retrieve from a svg icon, /// for example: /// ```dart /// const String rawSvg = 'your svg string'; /// final DrawableRoot svgRoot = await svg.fromSvgString(rawSvg, rawSvg); /// final picture = svgRoot.toPicture() /// ``` /// [width] and [height] determines the size of our picture.À±r À±xÀ±wÀ±€ À±†À±…À±Œ À±’À±‘À±�1À±ÇÀ±Ç/// Is the showing image.À±Ó-À±ûÀ±û/// width of our [picture].À²/À².À²./// height of our [picture].À²9€–À²ŒÀ²Œ2/// Used for equality check, see [EquatableMixin].À²nÀ²oÀ²Ó…vÀ³!À³!G/// Draws some straight horizontal or vertical lines in the [LineChart]À³H�ôÀ´½À´½À´Ë�`/// [LineChart] draws some straight horizontal or vertical lines, /// you should set [LineChartData.extraLinesData]. /// Draws horizontal lines using [horizontalLines], /// and vertical lines using [verticalLines]. /// /// If [extraLinesOnTop] sets true, it draws the line above the main bar lines, otherwise /// it draws them below the main bar lines.À´ÒÀ´ØÀ´×À´÷À´ýÀ´üÀµÀµ ÀµÀ´éÀ´ïÀ´ðÀµ ÀµÀµÀµ1Àµ@*Àµ[Àµ[Àµn&Àµ‡Àµ‡Àµ˜Àµ£Àµ£À·˜€¯À·ëÀ·ë2/// Used for equality check, see [EquatableMixin].À·ÍÀ·ÎÀµ·�ÝÀ¶À¶D/// Lerps a [ExtraLinesData] based on [t] value, check [Tween.lerp].À¶À¶)À¶(À¶+À¶;À¶:À¶=À¶EÀ¶DÀ¸K„FÀ¸¨À¸¨M/// This class contains the interface that all DotPainters should conform to.À¸ÍÀ¸ÓÀ¸ÓÀ¸ßÀ¹Ë\ÀºÀºE/// Used to show default UIs, for example [defaultScatterTooltipItem]À¸æ{À¹)À¹);/// This method should be overridden to draw the dot shape.À¹. À¹6À¹5À¹= À¹EÀ¹DÀ¹JÀ¹RÀ¹QÀ¹ebÀ¹²À¹²E/// This method should be overridden to return the size of the shape.À¹º À¹ÂÀ¹ÁÀº+<Àº8Àº8Àº=ÀºKÀºJÀºMÀº[ÀºZÀº]ÀºeÀºdÀºk‚$À»+À»+€´/// Used to implement touch behaviour of this dot, for example, /// it behaves like a square of [getSize] /// Check [FlDotCirclePainter.hitTest] for an example of an implementationÀ»8 À»@À»?À»IÀ»QÀ»PÀ»] À»eÀ»dÀ»pÀ»xÀ»wÀ¼“ŠLÀ¼ðÀ¼ðV/// This class is an implementation of a [FlDotPainter] that draws /// a circled shapeÀ½�åÀ¾BÀ¾BÀ¾T�/// The color of the circle is determined determined by [color], /// [radius] determines the radius of the circle. /// You can have a stroke line around the circle, /// by setting the thickness with [strokeWidth], /// and you can change the color of of the stroke with [strokeColor].À¾[À¾aÀ¾`À¾zÀ¾ƒÀ¾‚À¾Ž7À¾”À¾“À¾ËÀ¾ÑÀ¾ÐÀ¾hÀ¾nÀ¾oÀ¾¡À¾§À¾¬À¾­À¾µÀ¾ÄÀ¾¶À¾ºÀ¾¿À¾ÃÀ¾ÞÀ¾ñÀ¾êÀ¾úÀ¾óÀ¾ýÀ¿<À¿<À¿<(/// The fill color to use for the circleÀ¿F=À¿}À¿}'/// Customizes the radius of the circleÀ¿ˆDÀ¿ÁÀ¿Á*/// The stroke color to use for the circleÀ¿ÑEÀÀ ÀÀ */// The stroke width to use for the circleÀÂë)ÀÃÀÃÀÂëÀÂìÀÆ.€¯ÀÆ�ÀÆ�2/// Used for equality check, see [EquatableMixin].ÀÆcÀÆdÀÀ‚2ÀÀhÀÀh9/// Implementation of the parent class to draw the circleÀÀm ÀÀuÀÀtÀÀ| ÀÀ„ÀÀƒÀÀ‰ÀÀ‘ÀÀ�ÀÀWÀÀXÀÂQ€–À©À©D/// Implementation of the parent class to get the size of the circleÀ± À¹À¸À˜À™ÀÃ�oÀÃ+ÀÃ+ÀÃ6ÀÃJÀÃIÀÃPÀÃdÀÃcÀÃjÀÃrÀÃqÀÄ‹€¾ÀĤÀĤÀÄ©ÀÄ·ÀĶÀĹÀÄÇÀÄÆÀÄÉÀÄÑÀÄÐÀÄ‹ÀÄŒÀÅM€ÝÀÅ^ÀÅ^ÀÅk ÀÅsÀÅrÀÅ|ÀÅ„ÀŃÀÅ� ÀŘÀÅ—ÀÅ£ÀÅ«ÀŪÀÅMÀÅNÀÆá‰¬ÀÇ>ÀÇ>V/// This class is an implementation of a [FlDotPainter] that draws /// a squared shapeÀÇj�ÉÀÈŒÀÈŒÀÈž�/// The color of the square is determined determined by [color], /// [size] determines the size of the square. /// You can have a stroke line around the square, /// by setting the thickness with [strokeWidth], /// and you can change the color of of the stroke with [strokeColor].ÀÈ¥ÀÈ«ÀȪÀÈÄÀÈÊÀÈÉÀÈÙ7ÀÈßÀÈÞÀÉÀÉÀÉÀȲÀȸÀȹÀÈÐÀÈìÀÈòÀÈ÷ÀÈøÀÉÀÉÀÉÀÉÀÉ ÀÉÀÉ)ÀÉ7<ÀÉnÀÉn(/// The fill color to use for the squareÀÉx9ÀÉ­ÀÉ­%/// Customizes the size of the squareÀɶDÀÉïÀÉï*/// The stroke color to use for the squareÀÉÿEÀÊ9ÀÊ9*/// The stroke width to use for the squareÀÍ�)ÀÍ—ÀÍ—ÀÍ�ÀÍ‚ÀÍ®€­ÀÎÀÎ2/// Used for equality check, see [EquatableMixin].ÀÍãÀÍäÀÊI‚ ÀÊ–ÀÊ–9/// Implementation of the parent class to draw the squareÀÊ› ÀÊ£ÀÊ¢Àʪ ÀʲÀʱÀÊ·ÀÊ¿ÀʾÀÊ…ÀʆÀÌí€�ÀÍEÀÍED/// Implementation of the parent class to get the size of the squareÀÍM ÀÍUÀÍTÀÍ4ÀÍ5ÀÎ_�jÀÎrÀÎrÀÎ}ÀΑÀÎ�ÀΗÀΫÀΪÀαÀιÀθÀÏÍ€¾ÀÏæÀÏæÀÏëÀÏùÀÏøÀÏûÀÐ ÀÐÀÐ ÀÐÀÐÀÏÍÀÏÎÀÐ�‡¹ÀÐóÀÐó]/// This class is an implementation of a [FlDotPainter] that draws /// a cross (X mark) shapeÀÑ€þÀѹÀѹÀÑÊ€–/// The [color] and [width] properties determines the color and thickness of the cross shape, /// [size] determines the width and height of the shape.ÀÑÑÀÑ×ÀÑÖÀÑðÀÑöÀÑõÀÒÀÒ ÀÒ ÀÑÞÀÑäÀÑåÀÑüÀÒÀÒ <ÀÒWÀÒW(/// The fill color to use for the X markÀÒaDÀÒ¡ÀÒ¡0/// Determines size (width and height) of shape.ÀÒª8ÀÒÝÀÒÝ#/// Determines thickness of X mark.ÀÕ²)ÀÕÈÀÕÈÀÕ²ÀÕ³À×´€’ÀØÀØ2/// Used for equality check, see [EquatableMixin].À×éÀ×êÀÒç‚BÀÓ3ÀÓ38/// Implementation of the parent class to draw the crossÀÓ8 ÀÓ@ÀÓ?ÀÓG ÀÓOÀÓNÀÓTÀÓ\ÀÓ[ÀÓ"ÀÓ#ÀÕ-€�ÀÕ…ÀÕ…D/// Implementation of the parent class to get the size of the circleÀÕ� ÀÕ•ÀÕ”ÀÕtÀÕuÀÕß�ÀÕñÀÕñÀÕüÀÖÀÖÀÖÀÖ(ÀÖ'ÀÖ.ÀÖ6ÀÖ5ÀÖô€¼À× À× À×À× À×À×"À×0À×/À×2À×:À×9ÀÖôÀÖõÀØJ‡=ÀÜ7ÀÜ7ƒæ/// Holds the information about the error range of a spot /// /// We support horizontal and vertical error range/indicator for our axis based /// charts such as [LineChart], [BarChart] and [PieChart] /// /// For example, in [LineChart] you can add [FlSpot.xError] and [FlSpot.yError] /// in your data points, so we can draw error indicators for them. /// And it works relative to the point that you are setting the error range /// /// For [BarChart], you can set the [BarChartRodData.toYErrorRange] to have /// vertical error range for each bar. (relative to [BarChartRodData.toY] value) /// /// [show] is tru by default, it means that we show /// the error indicator lines (if you provide them in [FlSpot]s) /// /// [painter] is a callback that allows you to return a /// [FlSpotErrorRangePainter] per each data point which is responsible for /// drawing the error indicator. You can use the default [FlSimpleErrorPainter] /// or create your own by extending our abstract [FlSpotErrorRangePainter]ÀÜL'ÀÜLÀÜLÀÜ‘mÀÜ—ÀÜ—ÀÜ«ÀܲÀܸÀÜ·ÀÜÈ/ÀÜÎÀÜÍÀܾÀÜ×ÀÝCÀÝAÀÝA1/// Determines showing the error indicator or notÀÝJ€¯ÀÝòÀÝò€�/// A callback that allows you to return a [FlSpotErrorRangePainter] /// per each data point (for example [FlSpot] in line chart)Àß5PÀßSÀßSÀß5Àß6ÀÝþ�3ÀÞVÀÞV6/// Lerps a [FlErrorIndicatorData] based on [t] value.ÀÞ['ÀÞ[ÀÞ[ÀÞ‰ÀÞ¢ÀÞ¡ÀÞ¨ÀÞÁÀÞÀÀÞÇÀÞÏÀÞÎÀâF…¦ÀäÀä�¿/// The abstract painter that is responsible for drawing the error range of /// a point in our axis based charts such as [LineChart] and [BarChart] /// /// It has a [draw] method that you should override to draw the error range /// as you like /// /// The default implementation is [FlSpotErrorRangePainter]. It is a simple and /// common error indicator painter. /// /// You can see how does it look in the [example app](https://app.flchart.dev/)ÀäE ÀäKÀäKÀäbÀäiƒ�ÀçbÀçb‚×/// Draws the error range of a point in our axis based charts /// /// [canvas] is the canvas that you should draw on it /// [offsetInCanvas] is the absolute position/offset of the point in /// the canvas that you can use it as your center point /// [origin] is the relative point point that you should draw /// the error range on it (it is based on the chart values) /// [errorRelativeRect] is the relative rect that you should draw the error, /// it is absolute and you can shift it with [offsetInCanvas] to draw your /// shape inside it. /// [axisChartData] is the axis chart data that you can use it to get more /// information about the chart /// /// You can take a look at our default implementation [FlSimpleErrorPainter]Àçl ÀçtÀçsÀçÀç‡Àç†Àçš Àç¢Àç¡Àç­Àç³Àç²ÀçÉÀçØÀç×Àçî™;Àê$Àê$‚//// The default implementation of [FlSpotErrorRangePainter] /// /// It draws a simple and common error indicator for the error range of a point /// in our axis based charts such as [LineChart] and [BarChart] /// /// You can see how does it look in the [example app](https://app.flchart.dev/) /// /// You can customize the lines using [lineColor], [lineWidth], [capLength], /// /// You can customize the text using [showErrorTexts], [errorTextStyle] /// and [errorTextDirection] /// /// You can customize the alignment of the error lines using [crossAlignment]Àêq‚FÀêqÀêqÀê…ÀêŒÀê’Àê‘Àê¯ÀêµÀê´ÀêÉÀêÏÀêÎÀêãÀêéÀêèÀëÀëÀëÀë![Àë'Àë&Àë‚+ÀëˆÀë‡Àê�Àê£Àê¤ÀêÀÀêÚÀêùÀëÀë7Àë=ÀëFÀë{ÀëSÀëNÀëUÀë[Àë\ÀëqÀëiÀësÀëœÀë©ÀëªÀì»8ÀìêÀìê /// The color of the error linesÀìø=Àí,Àí,$/// The thickness of the error linesÀí:EÀívÀív,/// The length of the cap of the error linesÀí„uÀíëÀíëU/// The alignment of the error lines, /// it should be between -1 (start) and 1 (end)ÀíþIÀî9Àî9-/// Determines showing the error texts or notÀîLAÀîÀî /// The style of the error textsÀî’MÀîÍÀîÍ$/// The direction of the error textsÀîäÀîõÀîõÀY€ÎÀwÀwÀYÀZÀÀïÀïÀï Àï'Àï&Àï2Àï:Àï9ÀïM ÀïUÀïTÀï`ÀïfÀïeÀï|Àï‹ÀïŠÀïÀïÀ÷œ…UÀ÷¡À÷¡À÷¶ À÷¾À÷½À÷Å À÷ÍÀ÷ÌÀ÷Ò À÷ÚÀ÷ÙÀüõƒ`ÀüúÀüúÀýÀý ÀýÀý+Àý:Àý9ÀýCÀýRÀýQÀýcÀýrÀýqÀý~Àý�ÀýŽÀý˜Àý¬Àý«À+�ÀvÀv�;/// The abstract class that is used as the input of /// the [GetSpotRangeErrorPainter] callback. /// /// So as you know, we have this feature in our axis-based charts and each chart /// has its own input type, for example in [LineChart] /// it is [LineChartSpotErrorRangeCallbackInput] (which contains the [FlSpot])Àð…fÀªÀª‚³/// The class to hold the information about showing a specific point /// in the axis-based charts /// /// You can use the [x] and [y] properties to set the point, Otherwise it /// uses the touch point (if `handleBuiltinTouches` is true) /// /// There's a [painter] property that manages the drawing of the point. /// We have a default implementation of the painter which is /// [AxisLinesIndicatorPainter], it draws a horizontal and a vertical line /// that goes through the point. /// /// You can override the [painter] by implementing your own /// [AxisSpotIndicatorPainter] implementation. /// /// For more information, look at our default implementation: /// [AxisLinesIndicatorPainter].ÀÔRÀÚÀÚÀëÀòÀøÀ÷ÀþÀÀÀ ÀÀÀ*À8À8À=ÀKÀKÀP&ÀoÀoÀÇ€�ÀÀ2/// Used for equality check, see [EquatableMixin].ÀüÀýÀ{�HÀÞÀÞG/// Lerps a [AxisSpotIndicator] based on [t] value, check [Tween.lerp].ÀèÀûÀúÀÀÀÀÀ"À!ÀXƒgÀ ÀÀ À�X/// The abstract class that is used to draw the point indicator /// /// You can create your own custom painter by extending this class /// and implementing the [paint] method. /// /// You can also use the default implementation which is /// [AxisLinesIndicatorPainter], it draws a horizontal and a vertical line /// that goes through the point.À Ý!À ãÀ ãÀ ûÀ �À 'À '/// Draws the point indicatorÀ 2À @À ?À L À TÀ SÀ _ À eÀ dÀ r$À …À „À œ'À ³À ²À É'À àÀ ßÀ öÀ À À €¢À …À …N/// Lerps a [AxisSpotIndicatorPainter] based on [t] value, check [Tween.lerp].À �À ©À ¨À ¯À ·À ¶À Áž�À VÀ V€Ž/// The default implementation of the [AxisSpotIndicatorPainter] /// /// It draws a horizontal and a vertical line that goes through the pointÀ •sÀ •À •À ®À µ"À ÄÀ ÃÀ Ý$À ìÀ ëÀ <À 4À 4À M@À wÀ wÀ ’PÀ ÎÀ Î3/// The paint object that is used to draw the linesÀ ÛÀ àÀ áÀ çRÀ$À$4/// The paint object that is used to draw the imagesÀ2À7À8À>‰ÇÀCÀCÀ\ÀjÀiÀvÀ…À„À—À§À¦À° À¸À·ÀÁ ÀÉÀÈÀ ŠÀÀÀ%À3À2À?ÀNÀMÀ`ÀnÀmÀw ÀÀ~Àˆ À�À�À"(…íÀ"9À"9À"DÀ"RÀ"QÀ"^ À"fÀ"eÀ"q À"wÀ"vÀ"„$À"—À"–À"®'À"ÅÀ"ÄÀ"Û'À"òÀ"ñÀ#À#À#À"(À")À(�BÀ(…À(…O/// Lerps a [AxisLinesIndicatorPainter] based on [t] value, check [Tween.lerp].À(�À(«À(ªÀ(±À(¹À(¸À)_€ðÀ)¹À)¹2/// Used for equality check, see [EquatableMixin].À)ÃÀ)ÝÀ)ÜÀ)ãÀ)ëÀ)êÀ)”À)•Œ‡€ýŒ¯Œ¯"/// Represents a side of the chartŒ¼Œ¼Œ¼ŒÄŒÄŒÄŒËŒËŒËŒÔŒÔŒÔŒß€£ŒèŒèŒý���†}�Õ�ÕI/// Represents where the [SideTitles] are drawn in relation to the chart.�ê�ê�ê�ó�ó�ó�û�û�û“§�”/”/€€/// The default [SideTitles.getTitlesWidget] function. /// /// formats the axis number to a shorter string using [formatNumber].”? ”G”F”M”X”WÀdÚ=ÀdôÀdô/// Shows all lines.Àe Àe ÀeÀf€³Àf=Àf='/// Returns a grey line for all values.ÀfM ÀfUÀfTÀá-�ÀáÛÀáÛ€•/// The default [GetSpotRangeErrorPainter] for [FlErrorIndicatorData], /// it draws a simple and typical error indicator using [FlSimpleErrorPainter]Àáÿ#ÀâÀâ“€”“^“^D/// It gives you the axis value and gets a String value based on it.“‡ “�“Ž“•“ “ŸÀdqgÀdªÀdª0/// Determines showing or hiding specified line.ÀdÊ ÀdÒÀdÑÀe€óÀeÙÀeÙ€·/// Determines the appearance of specified line. /// /// It gives you an axis [value] (horizontal or vertical), /// you should pass a [FlLine] that represents style of specified line.Àeþ ÀfÀfÀ߉�¢Àà´Àà´�"/// A callback that allows you to return a [FlSpotErrorRangePainter] based on /// the provided specific data point (for example [FlSpot] in [LineChart]) /// /// So [input] is different based on the chart type, /// for example in [LineChart] it will be [LineChartSpotErrorRangeCallbackInput]ÀàÍ'ÀàÍÀàÍÀá Àá#Àá"À¬BÀ´À´ÀÜÀäÀ㉟*+V€Ì� �D�s�£�Ö�ׂ ‚U‚Œ‚É‚ûƒ/ƒxƒŠƒ¤ƒÂƒê„„„1„I„a„x„’„®„Ä„è… …>…‡…«…φ†H†‹†¨†É†ô†õ‡ ‡‡9‡N‡c‡}‡~‡Ã‡à‡áˆˆ:ˆ;ˆaˆ‹ˆŒˆ²ˆÞˆß‰‰E‰F‰ƒ‰¥‰¦‰Û‰çŠŠŠ,ŠFŠTŠbŠuŠƒŠ‘Š¤Š¶ŠÏŠãŠû‹‹"‹$‹%‹n‹¯‹É‹ëŒŒŒŒ_Œ„Œ†Œ‡ŒªŒºŒÂŒÉŒÒŒÜŒÝ��5��ƒ�…�†�ÐŽŽŽ<ŽNŽ\ŽsŽŠŽ¬ŽÌŽï� �/�K�s�‚�§�è�ó�ô� ���3�G�H�k�Š�‹�¹�â�ÿ‘‘6‘V‘W‘‘ž‘Ÿ‘ì’ ’ ’P’k’l’¨’®’ì““““V“¦“§“Þ“â”(”_”y”‰”𔵔¼”Á”ÔĔü•#•Z•••›•ã–4–a–’–Þ———c—”—š—ë˜6˜K˜h˜”˜°˜Ã˜à˜ý™C™D™x™‘™’™âšššMš›šê››F›G›„›µ›Ò›Óœ$œoœ‰œŠœÒœý���`�‹�¥�¦�éž7žYž…žËŸŸ(ŸLŸUŸVŸ�Ÿ³ŸËŸá  ( > U l t † ¹ û¡4¡a¡—¡Í¡Ö¡×¢ ¢¢7¢K¢d¢z¢Œ¢¡¢¶¢¿¢Á¢Â¢õ£££R£Š£Ã£ö¤+¤Q¤W¤Ž¤È¥¥ ¥:¥¥…¥À¦¦!¦<¦\¦~¦¢¦¨¦©¦Û§§?§‹§£§À§Û§ô§ý§þ¨>¨†¨¶¨Ì¨å©©©,©F©r©Ÿ©È©Ñ©ÒªªªªkªŒª�ª°ªÏªÐªþ«3«P«Q«]«|«�«§«¿«Õ«Þ«à«á¬(¬O¬Ž¬¨¬®¬÷¬ý­F­[­t­�­º­ß®®® ®H®e®f®«®ü¯¯¯T¯s¯t¯Ì¯Ò°,°N°O°�°¿°À±±M±N±‘±®±ë±ì²/²}²§²í³1³e³—³ ³¡³Ú³þ´´2´L´h´‡´³´»´Íµ µEµxµÆ¶¶¶¶P¶\¶{¶“¶©¶½¶Ú¶ö¶ÿ···<·e·›·â¸$¸;¸Q¸y¸—¸±¸Ë¸Ô¸Û¹¹ ¹:¹T¹]¹d¹�¹«¹Å¹ß¹è¹ïºº7ºQºkºtº{º�º‚º•º´ºÒºò»»»Y»¡»µ»Ë¼¼V¼ ¼á¼ê¼ë½(½L½f½v½’½­½Ê½è½ð¾¾%¾X¾ˆ¾¾¾÷¿¿¿6¿B¿a¿o¿ƒ¿–¿«¿Á¿Ê¿Ì¿ÍÀ@À@À@-À@oÀ@šÀ@ À@àÀA ÀAÀA)ÀA7ÀAHÀAYÀA_ÀA`ÀArÀA„ÀA¢ÀAÀÀAÁÀAòÀBÀB0ÀBDÀBSÀBbÀB|ÀB–ÀBžÀB¬ÀBÁÀBÖÀBýÀC$ÀC-ÀC.ÀC]ÀCiÀCžÀCŸÀCØÀDÀDÀD6ÀDaÀDbÀDŠÀD¯ÀD°ÀDÝÀDþÀDÿÀE>ÀEsÀE“ÀE£ÀE©ÀEªÀEÊÀEÚÀEàÀEáÀEôÀFÀF4ÀFlÀF¤ÀF«ÀF¯ÀF°ÀFíÀFùÀGÀGIÀGeÀGyÀGÀG€ÀGÀÀGÓÀGÙÀGÚÀGõÀH ÀH/ÀHOÀHSÀHTÀHlÀHxÀHŽÀHÑÀHÓÀHÔÀI#ÀI'ÀItÀI¸ÀIôÀJÀJ4ÀJOÀJjÀJ¨ÀJæÀJçÀKÀKIÀKvÀK�ÀK¨ÀKâÀKãÀL3ÀL„ÀLœÀL�ÀLæÀM7ÀMOÀMPÀM€ÀMÊÀMìÀNÀN>ÀNuÀN~ÀN„ÀN…ÀN“ÀN—ÀN˜ÀN¤ÀNÕÀN×ÀNØÀNûÀO"ÀOkÀO ÀO¦ÀO÷ÀP<ÀP‘ÀPõÀQÀQuÀQØÀRÀRRÀRXÀR§ÀRêÀS=ÀS¡ÀSºÀTÀT€ÀT¨ÀTöÀU ÀU!ÀUEÀUbÀU—ÀUÊÀUìÀVÀV:ÀVkÀV{ÀVžÀVÚÀVåÀVõÀWÀWPÀW[ÀW\ÀW¢ÀWµÀW¶ÀWïÀXÀXÀXiÀX�ÀXŽÀXÝÀYÀYÀYsÀY¦ÀY§ÀYÞÀYýÀYþÀZTÀZvÀZwÀZÆÀZùÀZúÀ[ZÀ[‹À[ŒÀ[ÏÀ\À\3À\eÀ\�À\ÈÀ]À]FÀ]tÀ]ÅÀ]ÿÀ^;À^DÀ^EÀ^~À^¢À^ºÀ^ÊÀ^èÀ_À_:À_jÀ_†À_¤À_ÔÀ`À` À`À`=À`ˆÀ`ÓÀ`õÀa<Àa_Àa¨ÀaíÀb2ÀbRÀb•Àb¶ÀbûÀcÀcÀc:ÀcFÀceÀcsÀc�Àc«ÀcÍÀcðÀd Àd$ÀdDÀdeÀdnÀdpÀdqÀd¢ÀdÙÀdÚÀdïÀeÀeÀeJÀeNÀe‰ÀeÑÀf ÀfÀf6ÀflÀfŠÀf¢Àf»ÀfÂÀfÃÀfàÀgÀg.Àg[Àg£ÀgÝÀh)ÀhXÀhiÀh{ÀhŽÀh¨Àh¼ÀhÔÀiÀiÀi?ÀiUÀiVÀi~ÀišÀi›ÀiÀÀiÜÀiÝÀjÀj ÀjDÀj�Àj¿ÀjÝÀjÞÀkÀk[Àk‹ÀkÇÀl ÀlGÀlPÀlQÀl‚Àl¦ÀlºÀlÌÀläÀlýÀmÀmÀm-ÀmQÀm~Àm´ÀmäÀmíÀmîÀn#Àn/ÀnNÀn]ÀnoÀn„Àn—Àn Àn¢Àn£ÀnæÀoÀoVÀoˆÀoŽÀoÅÀoøÀpÀpÀp'Àp,Àp-ÀpdÀp–Àp«Àp¬ÀpâÀqÀq,Àq-ÀqbÀqnÀq�Àq›Àq«Àq´Àq¶Àq·ÀqÿÀr,ÀrwÀrÎÀréÀsÀsGÀsMÀsNÀs’ÀsÒÀsÓÀtÀt<ÀtTÀtlÀtzÀt�Àt™ÀtàÀuÀu0Àu=ÀuIÀuŒÀu²ÀuØÀuåÀuñÀuúÀuûÀv@ÀvdÀv‚ÀvÃÀwÀwÀw ÀwDÀw�Àw±ÀwøÀxÀxÀx7ÀxCÀxbÀx†Àx¨Àx±Àx³Àx´ÀxëÀy!ÀyzÀyÂÀyàÀyöÀz ÀzÀz1ÀzIÀz’Àz“ÀzÉÀzÜÀzÝÀ{À{$À{%À{qÀ{«À{öÀ|.À|DÀ|EÀ|”À|ËÀ}À}NÀ}jÀ}kÀ}½À}æÀ~À~(À~6À~=À~^À~†À~®À~ÞÀÀ#À$À{ÀŸÀÆÀÖÀæÀøÀ€À€À€9À€TÀ€oÀ€“À€ÀÀ€ÉÀ€ÊÀ€ÿÀ� À�*À�6À�BÀ�QÀ�cÀ�lÀ�nÀ�oÀ�¨À�ÜÀ‚3À‚{À‚—À‚­À‚ÃÀ‚ÕÀ‚èÀƒÀƒIÀƒJÀƒ‚Àƒ•Àƒ–ÀƒÌÀƒßÀƒàÀ„*À„dÀ„¯À„çÀ„ýÀ„þÀ…KÀ…‚À…ÍÀ†À†!À†"À†rÀ†™À†¸À†×À†åÀ†ìÀ‡ À‡3À‡[À‡‹À‡ÇÀ‡ÐÀ‡ÑÀˆ$ÀˆHÀˆmÀˆ}Àˆ�ÀˆŸÀˆ·Àˆ¿ÀˆÞÀˆùÀ‰À‰8À‰eÀ‰nÀ‰oÀ‰¤À‰°À‰ÏÀ‰ÛÀ‰çÀ‰öÀŠÀŠÀŠÀŠÀŠGÀŠKÀŠ ÀŠôÀ‹.À‹|À‹¹À‹ðÀ‹öÀŒÀŒÀŒ}ÀŒƒÀŒÖÀŒþÀ�À�&À�FÀ�WÀ�kÀ�‚À�—À�§À�¾À�ãÀŽÀŽÀŽTÀŽfÀŽgÀޱÀŽÇÀŽÈÀ�À�2À�3À�[À�~À�À�ÈÀ� À�(À�)À�pÀ�¾À�ÔÀ�ùÀ‘7À‘gÀ‘£À‘æÀ’#À’;À’aÀ’�À’ŠÀ’‹À’ÀÀ’ÌÀ’ëÀ’öÀ“À“À“)À“<À“KÀ“aÀ“tÀ“}À“À“€À“±À“µÀ”À”\À””À”àÀ•À•TÀ•ZÀ•|À•‚À•áÀ•çÀ–<À–dÀ–uÀ–ŠÀ–¨À–¹À–ÍÀ–äÀ–ùÀ— À— À—EÀ—rÀ—sÀ—´À—ÆÀ—ÇÀ˜À˜)À˜*À˜rÀ˜–À˜—À˜¿À˜àÀ˜áÀ™*À™mÀ™ŠÀ™‹À™ÐÀšÀš,ÀšQÀš�Àš½ÀšùÀ›<À›yÀ›‘À›·À›×À›àÀ›áÀœÀœAÀœgÀœvÀœ”Àœ¦Àœ¿ÀœÙÀœëÀ� À�%À�-À�AÀ�YÀ�}À�¡À�×ÀžÀž+ÀždÀž”Àž�ÀžžÀžÓÀžßÀžþÀŸ ÀŸÀŸ'ÀŸ<ÀŸOÀŸ^ÀŸtÀŸ‡ÀŸ�ÀŸ’ÀŸ“ÀŸ½À À WÀ ¢À ¿À ùÀ¡*À¡XÀ¡´À¡ÌÀ¡ùÀ¢ À¢3À¢KÀ¢|À¢ÃÀ¢ÉÀ¢ÊÀ¢îÀ£%À£&À£aÀ£¢À£ÃÀ£ÄÀ¤À¤3À¤NÀ¤iÀ¤wÀ¤~À¤™À¤»À¤ÞÀ¥À¥À¥À¥NÀ¥�À¥·À¥ÍÀ¥íÀ¥öÀ¥÷À¦,À¦8À¦WÀ¦nÀ¦|À¦�À¦œÀ¦¯À¦ÂÀ¦ËÀ¦ÍÀ¦ÎÀ¦öÀ§8À§ŒÀ§×À§ôÀ¨.À¨_À¨�À¨éÀ¨ÿÀ©,À©OÀ©jÀ©�À©¡À©¨À©ÕÀ©íÀªÀªcÀªiÀªjÀªŽÀªÃÀªÄÀªýÀ«<À«]À«^À«¨À«ÉÀ«âÀ«ûÀ¬ À¬À¬)À¬KÀ¬nÀ¬‘À¬žÀ¬ªÀ¬ÞÀ­À­GÀ­]À­}À­†À­‡À­¼À­ÈÀ­çÀ­þÀ® À®À®,À®?À®RÀ®[À®]À®^À®šÀ®žÀ®¯À®»À®æÀ¯À¯cÀ¯ªÀ¯ÆÀ¯ÍÀ¯ÕÀ¯þÀ°$À°KÀ°^À°lÀ°žÀ°íÀ±À±$À±cÀ±šÀ±›À±·À±ÐÀ±ÑÀ±ïÀ²À²À²"À²6À²7À²lÀ²xÀ²—À²¨À²·À²ÇÀ²ÐÀ²ÒÀ²ÓÀ³À³FÀ³ŠÀ³¿À³õÀ´%À´+À´‡À´µÀ´ÎÀ´óÀµÀµ7Àµ=Àµ>ÀµlÀµ–Àµ´ÀµµÀµüÀ¶JÀ¶`À¶ŒÀ¶½À¶ÚÀ¶÷À·À·À·=À·XÀ·sÀ·€À·ŒÀ·•À·–À·ËÀ·×À·öÀ¸À¸&À¸?À¸HÀ¸JÀ¸KÀ¸™À¸ËÀ¸ãÀ¸äÀ¹"À¹bÀ¹cÀ¹«À¹ÈÀ¹ÉÀºÀº(Àº)ÀºhÀºiÀº«Àº×À»$À»4À»EÀ»YÀ»lÀ»‡À»�À»­À»ÓÀ»éÀ¼À¼À¼$À¼`À¼ŒÀ¼�À¼’À¼“À¼ÖÀ¼êÀ½À½]À½‘À½ÅÀ½øÀ¾@À¾WÀ¾vÀ¾ŠÀ¾ÇÀ¾ãÀ¿À¿À¿.À¿CÀ¿DÀ¿nÀ¿…À¿†À¿³À¿ÎÀ¿ÏÀ¿üÀÀÀÀÀÀUÀÀaÀÀ¢ÀÀØÀÀñÀÁ ÀÁ-ÀÁ=ÀÁ]ÀÁƒÀÁ­ÀÁ¶ÀÁ¼ÀÁÓÀÁéÀÁ÷ÀÂÀÂÀÂCÀÂJÀÂNÀÂOÀ–À¢ÀÂèÀÂéÀÂõÀÃÀÃÀÃ2ÀÃLÀÃfÀÃtÀÃ{ÀÕÀÃÆÀÃùÀÄ<ÀÄÀĈÀĉÀÄ•ÀÄÕÀÅÀÅ%ÀÅ+ÀÅFÀÅJÀÅKÀÅWÀÅgÀÅxÀÅŒÀÅŸÀźÀÅÀÀÅøÀÆ'ÀÆ+ÀÆ,ÀÆaÀÆmÀÆŒÀÆ›ÀÆ«ÀÆÀÀÆÕÀÆÞÀÆàÀÆáÀÇ$ÀÇ8ÀÇhÀÇ«ÀÇÛÀÈÀÈBÀÈŠÀÈ¡ÀÈÀÀÈÕÀÉÀÉ.ÀÉ4ÀÉ5ÀÉ`ÀÉuÀÉvÀÉžÀɳÀÉ´ÀÉáÀÉüÀÉýÀÊ*ÀÊFÀÊGÀʃÀÊ�ÀÊÐÀËÀËÀË6ÀËXÀËŠÀË•ÀË¥ÀËÅÀËëÀÌÀÌÀÌ$ÀÌ9ÀÌPÀÌpÀÌŠÀÌ“ÀÌ¡À̹ÀÌßÀÌæÀÌêÀÌëÀÍ2ÀÍ>ÀÍ~ÀÍÀÍ‹ÀÍ«ÀͬÀÍáÀÍíÀÎ ÀÎÀÎ)ÀÎ>ÀÎSÀÎ\ÀÎ]ÀÎyÀΓÀέÀλÀÎÂÀÎÜÀÏ ÀÏ;ÀÏ~ÀÏÁÀÏÊÀÏËÀÏ×ÀÐÀÐWÀÐgÀÐmÀЈÀÐŒÀÐŽÀÐ�ÀÐÒÀÐíÀÑÀÑ|ÀÑ·ÀÑÍÀÑìÀÒÀÒÀÒÀÒÀÒIÀÒ^ÀÒ_ÀÒ’ÀÒ§ÀÒ¨ÀÒÎÀÒäÀÒåÀÓ ÀÓ,ÀÓmÀÓ…ÀÓºÀÓçÀÔ ÀÔ?ÀÔkÀÔ�ÀÔ‘ÀÔ«ÀÔÐÀÔìÀÕÀÕÀÕ&ÀÕ*ÀÕ+ÀÕrÀÕ~ÀÕ¯ÀÕ°ÀÕ¼ÀÕÜÀÕÝÀÕøÀÖÀÖ*ÀÖ8ÀÖ?ÀÖXÀÖ‰ÀÖ·ÀÖèÀÖñÀÖòÀÖþÀ×>À×|À׌À×’À×­À×±ÀײÀ×çÀ×óÀØÀØ!ÀØ/ÀØ>ÀØGÀØIÀØJÀØ„À؈ÀØØÀÙÀÙÀÙfÀÙ©ÀÙõÀÙùÀÚEÀÚ–ÀÚšÀÚÎÀÛÀÛÀÛKÀÛ–ÀÛæÀÜ1ÀÜuÀÜ�ÀÜ®ÀÜÄÀÜùÀÜÿÀÝÀÝ4ÀÝGÀÝHÀÝ�ÀÝÎÀÝûÀÝüÀÞ5ÀÞ…ÀÞ¤ÀÞÃÀÞÑÀÞØÀÞ÷Àß Àß)Àß2Àß3Àß?Àß^ÀßlÀß}À߆À߈À߉Àß×Àà"Àà&Àà[Àà¬ÀàöÀáÀá)Àá,Àá-ÀátÀáÃÀáýÀâ$Àâ)ÀâEÀâFÀâ’ÀâÚÀâÞÀã*Àã:Àã>ÀãŽÀã²Àã¶ÀäÀäCÀäfÀägÀä§Àä­ÀäåÀå,ÀåfÀå¦ÀåäÀæ3Àæ€Àæ—ÀæäÀçÀç Àç[ÀçhÀç{Àç–Àç©ÀçÅÀçæÀçëÀçíÀçîÀè*Àè.Àè~Àè¾ÀèÂÀéÀéÀécÀégÀé¯ÀéÌÀéÐÀêÀêoÀêˆÀê«ÀêÅÀêßÀêüÀëÀëHÀëcÀëwÀë~Àë¯Àë¶ÀëÏÀëéÀì Àì/Àì;ÀìnÀì­Àì´Àì¸Àì¹ÀìÜÀìõÀìöÀíÀí7Àí8ÀígÀí�Àí‚ÀíªÀíÜÀíûÀíüÀî,ÀîIÀîJÀîmÀî�Àî�Àî·ÀîáÀîâÀïÀïÀïÀïÀï.ÀïIÀï\ÀïxÀï™ÀïŸÀïÙÀðÀð1ÀðMÀð]ÀðŠÀðºÀðÃÀðÄÀðàÀðñÀñ Àñ#Àñ9ÀñXÀñqÀñ—Àñ·Àñ×ÀòÀòÀò8ÀòCÀòDÀòUÀòmÀò‡Àò�Àò¼ÀòÖÀòüÀóÀó<ÀókÀóxÀó�Àó¨Àó°Àó¶Àó·ÀóôÀôÀô.Àô>ÀôlÀô›Àô¤Àô¥ÀôÁÀôÒÀôêÀõÀõÀõ8ÀõQÀõwÀõ—Àõ·ÀõæÀõóÀöÀö#Àö$Àö5ÀöMÀögÀö}Àö›ÀöµÀöÛÀöûÀ÷À÷JÀ÷WÀ÷|À÷‡À÷�À÷•À÷™À÷šÀ÷ßÀø ÀøCÀøDÀø^Àø–ÀøÈÀøÕÀù Àù?ÀùEÀùFÀù[ÀùgÀùqÀùƒÀùŠÀù‹Àù³ÀùíÀúÀú'ÀúAÀúNÀúfÀúzÀú¦ÀúÐÀúæÀúðÀû ÀûÀûGÀûmÀûƒÀûŽÀû›Àû¨ÀûÁÀûÕÀüÀü+ÀüAÀüKÀüeÀüyÀü¡ÀüÇÀüÝÀüèÀüîÀüòÀüóÀý Àý'Àý?Àý_ÀýzÀý”Àý¶Àý½ÀýàÀýöÀþ Àþ$Àþ-ÀþUÀþfÀþgÀþ€ÀþŸÀþ±ÀþåÀÿÀÿ8Àÿ9ÀÿXÀÿˆÀÿšÀÿ¾ÀÿòÀÿóÀÀÀ$À3ÀBÀKÀRÀVÀWÀcÀ‚À•À¨À»ÀÓÀëÀÀÀ(À*À+À_ÀŒÀ�ÀáÀÀgÀ«À¬ÀïÀðÀ5ÀRÀVÀ ÀÝÀáÀ)ÀfÀ±ÀÒÀÖÀÀAÀEÀƒÀ¤ÀÒÀîÀúÀÀ!À'À(À;ÀNÀxÀyÀÃÀäÀýÀÀ$À+ÀDÀhÀŒÀ»ÀÄÀÅÀúÀÀ%À0À;ÀLÀUÀWÀXÀ˜ÀœÀßÀ À À EÀ �À ±À ÛÀ ÿÀ À À .À HÀ [À nÀ ˜À ÅÀ òÀ À À À jÀ ‹À «À ¹À ¾À ÀÀ ÁÀ À À PÀ “À ±À ÙÀ À À À JÀ KÀ �À �À ÆÀ äÀ åÀÀ;À<ÀXÀrÀ“À¬À½ÀÌÀÒÀáÀÀÀ/ÀCÀSÀ[À€À§ÀÊÀîÀïÀÀÀ'À9ÀOÀVÀWÀ|À°ÀåÀÀ/À0ÀDÀUÀÀ±ÀÆÀÌÀÍÀëÀÀFÀŠÀ©À¾ÀÛÀðÀùÀÿÀÀÀ;ÀOÀ˜ÀËÀÌÀéÀÀQÀZÀ[ÀyÀ�À·ÀÊÀËÀìÀÀ6ÀFÀnÀ‹À³ÀéÀÀ@ÀQÀ`ÀmÀ“À½ÀÍÀõÀÀFÀ{À¢ÀÇÀØÀçÀôÀüÀÀÀÀ!À;À\ÀsÀ„À“À™ÀÂÀÃÀÒÀõÀ À À4ÀDÀLÀsÀ˜À»ÀßÀàÀÀÀÀ*À@ÀGÀHÀmÀ¡ÀÖÀÿÀ2À3ÀGÀXÀ‚À´ÀÉÀÏÀÐÀîÀÀIÀkÀ©ÀÈÀÝÀúÀÀÀÀÀ:ÀZÀnÀ·ÀêÀëÀÀ1ÀpÀyÀzÀ˜À¬ÀÖÀéÀêÀ À3ÀUÀeÀ�ÀªÀÞÀ À +À _À pÀ À ŒÀ ²À ÜÀ ìÀ!À!1À!ZÀ!�À!³À!æÀ!÷À"À"À"À"!À"%À"&À"2À"@À"ZÀ"mÀ"€À"ªÀ"×À#À#%À#+À#fÀ#�À#ÈÀ#ÛÀ$À$;À$VÀ$…À$²À$»À$×À%À%3À%<À%WÀ%hÀ%À%—À%¥À%´À%½À%ÃÀ%ÄÀ%ÝÀ&"À&5À&qÀ&‘À&«À&ÖÀ'À'À'+À'VÀ'…À'ŽÀ'�À'¨À'¹À'ÐÀ'æÀ'óÀ(À( À(À(À(À(iÀ(ŒÀ(­À(»À(ÂÀ(ãÀ)À)SÀ)\À)]À)’À)žÀ)¿À)ßÀ)íÀ)óÀ*À*.À*4À*LÀ*PÀ*R& AxisChartDataAxisBaseTouchResponseAxisSideSideTitleAlignment TitleMetadefaultGetTitle SideTitlesSideTitleFitInsideData AxisTitles FlTitlesDataFlSpot FlErrorRange FlGridData showAllGridsdefaultGridLineFlLine TouchedSpotRangeAnnotationsHorizontalRangeAnnotationVerticalRangeAnnotationHorizontalLine VerticalLineHorizontalLineLabelVerticalLineLabel SizedPictureExtraLinesData FlDotPainterFlDotCirclePainterFlDotSquarePainterFlDotCrossPainterFlErrorIndicatorData _defaultGetSpotRangeErrorPainterFlSpotErrorRangePainterFlSimpleErrorPainterFlSpotErrorRangeCallbackInputAxisSpotIndicatorAxisSpotIndicatorPainterAxisLinesIndicatorPainterÈL