x_owner_canBeUsedByParentminWidthmaxWidth minHeight maxHeightcopyWithdeflateloosenenforcetightenflippedwidthConstraintsheightConstraintsconstrainWidthconstrainHeight_debugPropagateDebugSize constrainconstrainDimensions,constrainSizeAndAttemptToPreserveAspectRatiobiggestsmallest hasTightWidthhasTightHeightisTighthasBoundedWidthhasBoundedHeighthasInfiniteWidthhasInfiniteHeight isSatisfiedBy*/~/%lerp isNormalizeddebugAssertIsValid normalize==hashCodetoStringaddWithPaintTransformaddWithPaintOffsetaddWithRawTransformaddWithOutOfBandPosition localPositionoffset noBaseline+minOf dryLayoutbaselinememoizedebugFillTimelineArguments eventLabel_cachedIntrinsicDimensions_cachedDryLayoutSizes_cachedAlphabeticBaseline_cachedIdeoBaselineclearsetupParentData_layoutCacheStorage_debugIntrinsicsDepth_computeIntrinsics_computeWithTimelinegetMinIntrinsicWidthcomputeMinIntrinsicWidthgetMaxIntrinsicWidthcomputeMaxIntrinsicWidthgetMinIntrinsicHeightcomputeMinIntrinsicHeightgetMaxIntrinsicHeightcomputeMaxIntrinsicHeight getDryLayout_computingThisDryLayout_computeDryLayoutcomputeDryLayoutgetDryBaseline_computingThisDryBaseline_computeDryBaselinecomputeDryBaseline_debugDryLayoutCalculationValiddebugCannotComputeDryLayouthasSizesize_sizedebugAdoptSizesemanticBoundsdebugResetSize_debugDoingBaseline_debugSetDoingBaselinegetDistanceToBaselinegetDistanceToActualBaselinecomputeDistanceToActualBaseline constraintsdebugAssertDoesMeetConstraints_debugVerifyDryBaselinesmarkNeedsLayout performResize performLayouthitTest hitTestSelfhitTestChildrenapplyPaintTransform globalToLocal localToGlobal paintBounds handleEvent_debugActivePointersdebugHandleEvent debugPaintdebugPaintSizedebugPaintBaselinesdebugPaintPointersdebugFillProperties+defaultComputeDistanceToFirstActualBaseline-defaultComputeDistanceToHighestActualBaselinedefaultHitTestChildren defaultPaintgetChildrenAsList _DebugSizeBoxConstraints BoxHitTestBoxHitTestWithOutOfBandPositionBoxHitTestResultBoxHitTestEntry BoxParentDataContainerBoxParentDataBaselineOffset_CachedLayoutCalculation _DryLayout _Baseline_IntrinsicDimension_LayoutCacheStorage RenderBoxRenderBoxContainerDefaultsMixin€ùViewConstraints lerpDoubleSizecopyboolwidthheightdoubleinfinitytightForFinitelooseexpand ConstraintstightForminWidthmaxWidth minHeight maxHeightEdgeInsetsGeometry horizontalverticalmax clampDouble_owner_canBeUsedByParentisEmptyoverridesizetoDouble identicaldebugAssertIsValidisFiniteInformationCollectorvoidDiagnosticsNode FlutterError fromPartsinformationCollectorDiagnosticsPropertystyleDiagnosticsTreeStyle errorPropertyisNaNListString isNotEmptylengthadd removeLastsinglejoin ErrorSummaryisAppliedConstraint isInfiniteObject runtimeTypeinthashtoStringAsFixedaddWithPaintTransformhitTestOffsetRenderSliverSingleBoxAdapterhitTestBoxChild RenderSliver HitTestResult RenderObject HitTestEntrywrapSliverHitTestResult PointerEventremovePerspectiveTransformhitTestChildrenMatrix4 transform tryInvertpositionzerooffset pushOffset popTransform MatrixUtilstransformPoint pushTransform paintOffsetpaintTransform rawTransformtargetdescribeIdentity ParentDataContainerRenderObjectMixinContainerParentDataMixin noBaselinelhsrhscomputeDryLayoutlayoutMap_cachedDryLayoutSizes putIfAbsent TextBaseline$2 alphabetic_cachedAlphabeticBaseline ideographic_cachedIdeoBaseline$1_cachedIntrinsicDimensionsnameclearmarkNeedsPaint RenderImageRenderParagraphRenderProxyBoxRenderShiftedBoxRenderObjectWithChildMixin RenderOpacityalwaysNeedsCompositingvisitChildrenForSemanticsopacity parentData dropChild adoptChildattachdetachredepthChildren redepthChild visitChildrendebugDescribeChildren sizedByParentisTightpaintPaintingContextcanvas TextPainter paintImagemarkNeedsCompositingBitsUpdate paintChilddefaultHitTestChildrendescribeApproximatePaintClipdescribeSemanticsConfigurationdebugCheckIntrinsicSizesdebugCheckingIntrinsicsdebugDoingThisResize#debugEnhanceLayoutTimelineArgumentstoDiagnosticsNodetoTimelineArgumentsdebugFillTimelineArguments kReleaseModedebugProfileLayoutsEnabledFlutterTimeline startSync eventLabel argumentsmemoize finishSync mustCallSuperErrorDescription ErrorHintbiggest LayoutBuilderRenderViewportBase!debugThrowIfNotCheckingIntrinsics protectedvisibleForOverriding dryLayouterrorobjectRuntimeTypebaselinecomputeDistanceToActualBaselinereasonparentdebugActiveLayout debugDoingThisLayoutWithCallbackdebugDoingThisLayout_computingThisDryLayout_computingThisDryBaseline StateError shortHashownerdebugDoingLayoutdescribeForErrordebugCanParentUseSizeRectdebugNeedsLayout PipelineOwnerdebugActivePaintdebugDoingThisPaintonlyRealpair+defaultComputeDistanceToFirstActualBaseline constraintshasBoundedWidthhasBoundedHeight isSatisfiedByvaluesmethodReturnedNullmethodReturnedNonNullmarkParentNeedsLayoutmarkNeedsLayoutaddWithPaintOffsetaddWithRawTransformcontains translatedxdygetTransformToancestorinvertVector3perspectiveTransformdotxyPointerDownEventdebugPaintPointersEnabled handleEventPointerUpEventPointerCancelEventdebugPaintSizeEnableddebugPaintBaselinesEnabledvisibleForTestingPaint PaintingStylestroke strokeWidthcolorColordrawRectdeflatePathmoveTolineTodrawPathdepthDiagnosticPropertiesBuilderdebugFillProperties missingIfNull ChildTypeParentDataType firstChildgetDistanceToActualBaseline nextSiblingminOf defaultPaint lastChild transformedpreviousSibling Size Constraints HitTestResult HitTestEntry ParentData BoxParentDataContainerParentDataMixin_CachedLayoutCalculation RenderObjectContainerRenderObjectMixin Ksø¨=0r[Ì͸ÅÜ�±�Ã�Æmath�Æ dart:math�ä‚ViewConstraints lerpDouble�Î�Þ�áui�ádart:ui‚ package:flutter/foundation.dart‚5package:flutter/gestures.dart‚`'package:vector_math/vector_math_64.dart‚• debug.dart‚« object.dartÀffÀ5ƒ�A=€ˆ€§€©€Ù€Þ€ü��@�d�ƒ�¤�®�°�Í‚‚ ‚4‚]‚_‚’‚”‚ª‚Á‚Â܃ƒ.ƒMƒOƒƒƒ¤ƒö„„3„6„8„r„w„DŽ܄á……D…I…‡…Œ…Ȇ† †H†M†j†o†¾‡‡B‡G‡™‡ãˆ4ˆ9ˆ‚ˆ¤ˆ©ˆó‰B‰Ž‰“‰áŠ.Š|ЏнŠÑŠÖ‹&‹\‹§‹Ú‹ßŒ+Œ}Œ¶Œ»��0�5�‚�ÒŽ ŽŽ`ޝŽéŽî�=�y�Å�Û��B�\�v�œ�·�Þ�å�ç‘0‘S‘q‘�‘¯‘ϑђ’’0’7’‚’Ï’ã“%“E“q“““Á“Ô”.”5”F”M”˜”é••7•]•˜•ß––g–i–¶–Ù–ð——&—F—H—”—›—蘘S˜˜«˜Ù™™ ™O™•™½™åšš9š;štšŽš�šÉšÐšó› ››I›d›f› ›§›Ê›å›çœMœjœ�œ˜œ°œÈœÐœì��D�s�¢�ª�¯�±žž9ž\ž�žºŸŸPŸlŸ�ŸÓŸø = E J L ¦ Ã æ¡,¡1¡3¡…¡¾¡ö¢¢f¢º££j£r£w£y£É¤¤3¤p¤Œ¤à¥4¥Ž¥è¥ð¥õ¥÷¦?¦_¦{¦—¦³¦Ï¦ë¦ó¦ø¦ú§B§_§¿§Á¨ ¨&¨‹¨�¨Ý©©>©a©•©š©œ©íªªQªtª«ª°ª²ªíªþ««k«t«ˆ«“«§«¬«®«ý¬ ¬'¬8¬?¬„¬¶¬Õ­(­9­q­…­�­¤­©­«­ú®)®0®‚®©®ä¯&¯+¯-¯}¯„¯·°°°m°”°Ö°ê± ±±V±l±y±�±–±˜±±±Ð±×±Ù±ù²²K²M²j²ƒ²¨²¯²±²Ð²ë³³³³6³O³t³{³}³œ³·³Ü³ã³å´.´?´w´‹´–´ª´¯´±´éµ+µ-µfµ¯µ±¶¶4¶6¶‡¶½¶¿···M·O·Œ·“·¤·«·ï¸7¸Y¸”¸–¸Ô¸Û¸ì¸ó¹8¹‚¹¤¹á¹ãºººkº¹» »X»~»…»–»�»â¼)¼I¼†¼ˆ¼º¼Á½½]½®½ü¾"¾)¾:¾A¾‡¾Ð¾ð¿/¿1¿j¿�¿°¿Ø¿ýÀ@$À@IÀ@NÀ@PÀ@�À@»À@×À@ûÀAÀAEÀAkÀAsÀAxÀAzÀAÆÀAôÀBÀB4ÀBXÀB~ÀB¤ÀB¬ÀB±ÀB³ÀCÀCNÀCjÀCœÀCÎÀDÀD6ÀD>ÀDCÀDEÀD”ÀDÁÀDÝÀEÀE#ÀEHÀEmÀEuÀEzÀE|ÀE´ÀE»ÀFÀF7ÀF>ÀFbÀF³ÀFÏÀFàÀFçÀFýÀGÀGÀG0ÀGMÀGTÀGyÀGžÀG«ÀGâÀH/ÀH‚ÀHŠÀH—ÀHÎÀIÀInÀIvÀIƒÀI¼ÀJ ÀJ^ÀJfÀJsÀJ¬ÀJûÀKNÀKVÀKrÀKÖÀL:ÀLLÀL­ÀL¿ÀM ÀM(ÀM-ÀM/ÀMoÀM²ÀMÞÀMåÀN*ÀN[ÀNbÀN©ÀNíÀO2ÀOMÀOZÀOuÀOØÀOÝÀOßÀOìÀP ÀP0ÀPaÀPiÀPzÀP¬ÀPåÀPùÀQAÀQqÀQ ÀQ³ÀQëÀQùÀRÀRÀRÀRfÀR¡ÀRÌÀR÷ÀS$ÀSQÀS]ÀS�ÀS»ÀTÀTÀT\ÀT‡ÀTµÀTäÀTðÀUÀUÀU“ÀU¡ÀU­ÀU¶ÀUæÀUûÀVÀVtÀV‚ÀVŽÀV—ÀV´ÀWÀWÀW.ÀW‚ÀW‹ÀWÆÀWÛÀX<ÀXHÀXQÀXsÀXÎÀX×ÀXûÀYWÀY`ÀY‚ÀY¾ÀZ#ÀZ.ÀZRÀZ£ÀZ®ÀZÓÀ[%À[0À[9À[VÀ[jÀ[uÀ[�À[”À[–À[ÌÀ[ÓÀ\%À\nÀ\ŽÀ\§À\»À\ÂÀ] À]WÀ]sÀ]ŽÀ]ÊÀ]çÀ^(À^0À^5À^7À^DÀ^hÀ^‹À^®À^ÂÀ^ÉÀ^öÀ_ À_À_VÀ_}À_¤À_ËÀ_ôÀ`À` À`"À`/À`EÀ`hÀ`«À`°À`²À`¿À`ÖÀaÀaeÀa™Àa ÀaºÀaâÀaýÀb&Àb`ÀbgÀb¢Àb»ÀbíÀböÀcBÀcIÀcKÀcˆÀcÈÀdÀdÀd Àd ÀdAÀdFÀd‘Àd¨Àd­Àd¼ÀdÁÀeÀe%ÀetÀevÀeºÀeòÀe÷Àf?ÀfnÀfsÀf‚Àf‡ÀfÔÀfëÀg>Àg@Àg{Àg€ÀgÐÀgíÀhÀheÀh†ÀhˆÀhÎÀiÀiÀi_Ài°ÀjÀjÀjYÀj¨ÀjÝÀjäÀjõÀjüÀkIÀklÀkºÀlÀl=Àl?ÀlŠÀl¨Àl¯ÀlùÀmCÀmbÀmiÀm·ÀméÀn(ÀnqÀnÁÀnÏÀnÖÀo%ÀosÀoÁÀp ÀpÀp#ÀpnÀp»Àq ÀqXÀq_Àq§Àq®ÀqÅÀrÀr=ÀrDÀrSÀr‡ÀrËÀrÒÀråÀs-ÀsaÀslÀssÀs†ÀsÝÀt Àt:Àt[ÀtžÀtçÀt÷ÀuÀuÀuÀu$Àu7Àu>ÀuOÀuVÀu§ÀuÜÀv-ÀvrÀv’Àv´ÀvÓÀvõÀvýÀwÀwuÀw•ÀwÝÀwôÀwýÀxÀxaÀxfÀxhÀx³ÀxÇÀxÎÀyÀybÀy�ÀyˆÀyØÀzÀzÀz\ÀzcÀz«Àz²ÀzÃÀzÊÀ{À{aÀ{~À{œÀ{»À{ÝÀ{åÀ|<À|WÀ|sÀ|zÀ|¶À|ÑÀ|èÀ|ïÀ}À}À} À}TÀ}rÀ}yÀ}ÃÀ~ À~,À~3À~‚À~ÆÀ~ÍÀÀZÀaÀ©À°ÀÁÀÈÀ€À€>À€\À€~À€�À€¿À€ÇÀ€ïÀ�HÀ�fÀ�‡À�ŽÀ�ÊÀ�èÀ�ÿÀ‚À‚À‚À‚ À‚iÀ‚“À‚šÀ‚äÀƒ,Àƒ?ÀƒFÀƒŽÀƒ•ÀƒÛÀ„À„À„`À„€À„‡À„ÑÀ…À…XÀ…_À…§À…ÈÀ…ÏÀ…ýÀ†À†À†À†pÀ†³À†ÖÀ†ðÀ‡À‡*À‡aÀ‡iÀ‡vÀ‡ÈÀˆÀˆrÀˆ·Àˆ¿ÀˆßÀ‰À‰(À‰LÀ‰ZÀ‰�À‰æÀŠ3ÀŠZÀŠaÀŠˆÀŠ�ÀаÀеÀЏÀŠºÀŠåÀ‹À‹CÀ‹yÀ‹{À‹ÅÀ‹äÀ‹æÀ‹óÀŒ9ÀŒ<ÀŒ>ÀŒwÀŒ|ÀŒ‘ÀŒÖÀ� À�jÀ�£À�¨À�ñÀŽÀŽ,ÀŽ}ÀŽ�ÀŽŸÀެÀŽÖÀŽÙÀŽÛÀ�(À�KÀ�PÀ�™À�»À�À�IÀ�KÀ�’À�ÉÀ‘À‘+À‘2À‘{À‘ËÀ’À’8À’zÀ’|À’ÍÀ“À“BÀ“jÀ“­À“²À“´À”À”À”$À”nÀ”½À”ëÀ•À•@À•ŒÀ•ÅÀ•õÀ•ýÀ–À–À–À–]À–bÀ–±À—À—UÀ—§À—ôÀ˜À˜À˜dÀ˜µÀ™À™QÀ™—À™¬À™±ÀšÀšKÀš‘ÀšÚÀ›À›AÀ›CÀ›¦À›¨ÀœÀœBÀœnÀœ€Àœ†Àœ±Àœ´Àœ¶À� À�!À�#À�0À�AÀ�hÀ�ƒÀ�°À�·ÀžÀž Àž>ÀžFÀžKÀžMÀžZÀž�Àž¹ÀžÔÀžÛÀŸ#ÀŸ(ÀŸ*ÀŸ7ÀŸ�ÀŸ�ÀŸ’ÀŸ©À À À À )À DÀ kÀ –À ÝÀ äÀ¡/À¡QÀ¡©À¡ÌÀ¢À¢&À¢YÀ¢ŒÀ¢‘À¢“À¢ À¢ÓÀ¢ÿÀ£*À£1À£OÀ£zÀ£¤À£©À£«À£¸À¤À¤À¤À¤eÀ¤¢À¤òÀ¤ÿÀ¥ À¥À¥(À¥*À¥7À¥�À¦À¦>À¦CÀ¦EÀ¦RÀ¦…À¦±À¦ÄÀ¦ËÀ¦éÀ§À§?À§DÀ§FÀ§SÀ§§À§ªÀ§¬À§ÏÀ¨À¨OÀ¨’À¨ÏÀ¨ÑÀ©À©CÀ©UÀ©pÀ©©À©çÀª$ÀªYÀª[ÀªpÀª—ÀªÃÀªîÀ«À«À«0À«5À«8À«:À«tÀ«yÀ«ÈÀ¬À¬gÀ¬¶À¬êÀ¬ïÀ­@À­‘À­ÞÀ­þÀ®À®QÀ®¢À®ñÀ¯AÀ¯�À¯†À¯«À¯°À¯ýÀ°OÀ°šÀ°ŸÀ°ëÀ°ðÀ±1À±6À±…À±ÖÀ²"À²?À²DÀ²•À²šÀ²§À²ÍÀ³À³BÀ³_À³pÀ³yÀ³�À³©À³°À³¹À³¾À´À´]À´¢À´ºÀ´¿Àµ Àµ[Àµ–Àµ›Àµ­Àµ²À¶À¶QÀ¶jÀ¶oÀ¶¹À¶¾À· À·^À·¯À·ÛÀ·àÀ¸À¸FÀ¸KÀ¸™À¸žÀ¸ÅÀ¸ÊÀ¸éÀ¸îÀ¹BÀ¹’À¹ÛÀºÀºÀºbÀº«ÀºýÀ»LÀ»œÀ»ÀÀ»ÅÀ¼À¼bÀ¼gÀ¼pÀ¼æÀ½À½"À½CÀ½HÀ½”À½ãÀ¾5À¾TÀ¾YÀ¾bÀ¾ÜÀ¿À¿À¿NÀ¿SÀ¿¥À¿öÀÀÀÀÀÀ`ÀÀ«ÀÀóÀÁAÀÁFÀÁ•ÀÁçÀÂ5ÀÂxÀÂ}À¨À­ÀÂýÀÃLÀÂÀÇÀÃÔÀÄÀÄ[ÀÄ`ÀÄmÀÄ”ÀÄÈÀÄÖÀÄÝÀÄæÀÄëÀÅ<ÀņÀÅÎÀÅÓÀÅþÀÆÀÆ=ÀÆ�ÀÆàÀÇ*ÀÇ{ÀdzÀǸÀÈ ÀÈNÀÈ–ÀÈÙÀÉ(ÀÉfÀÉ´ÀÊÀÊ;ÀÊ@ÀÊMÀÊ’ÀÊËÀÊÒÀÊÛÀÊàÀË2ÀË�ÀËÏÀËìÀËñÀÌAÀÌFÀÌSÀÌÀÌ«ÀÌèÀÍ+ÀÍ9ÀÍ@ÀÍIÀÍNÀÍœÀÍìÀÎ:ÀÎ`ÀÎeÀÎrÀΞÀÎÂÀÎßÀÏ0ÀÏeÀÏ™ÀÏÅÀÏÌÀÏÕÀÏÚÀÐÀÐÀÐRÀТÀÐôÀÑ:ÀÑjÀÑoÀÑ´ÀѹÀÑýÀÒÀÒRÀÒWÀÒ§ÀÒ¬ÀÒüÀÓÀÓÀÓgÀÓ®ÀÓ³ÀÔÀÔÀÔ!ÀÔmÀÔŒÀÔ‘ÀÔ¡ÀÔ¦ÀÔðÀÕ;ÀÕˆÀÕ¦ÀÕ«ÀÕúÀÖJÀÖ–ÀÖËÀÖÐÀ×À×jÀ×·À×øÀ×ýÀØ ÀØÀØ>ÀØCÀØRÀØ‹ÀدÀضÀØ¿ÀØÄÀÙÀÙ ÀÙZÀÙ§ÀÙÌÀÙÑÀÙøÀÙýÀÚOÀÚ›ÀÚâÀÛ2ÀÛ„ÀÛÑÀÛßÀÛäÀÜ3ÀÜ…ÀÜÔÀÝ$ÀÝGÀÝLÀÝœÀÝéÀÞ5ÀÞ{ÀÞÈÀÞÍÀßÀßqÀ߸Àß½ÀßèÀßíÀà?Àà�ÀàÞÀá,ÀárÀáÃÀâÀâLÀâQÀâcÀâhÀâ¶ÀãÀã>Àã‹ÀãÛÀä(ÀäsÀäÃÀäâÀäçÀåÀå Àå`ÀåeÀå²ÀæÀæQÀæ£ÀæôÀçFÀç˜ÀçÌÀçÑÀè!ÀèoÀè�Àè¢Àè¾ÀèÃÀéÀé`ÀéªÀéÝÀéâÀê0Àê}ÀêÍÀëÀëkÀë¼ÀëÞÀëãÀë÷ÀëüÀìJÀì‘ÀìàÀí+Àí0ÀíƒÀíÕÀî&Àî;Àî@Àî�ÀîßÀï#ÀïrÀïÁÀðÀðcÀð¬ÀðóÀñÀñ Àñ[Àñ£ÀñóÀòCÀò•ÀòçÀó1Àó�ÀóÓÀôÀôÀôOÀôTÀôgÀôlÀô¢ÀôèÀõ7Àõ…ÀõÕÀöÀöEÀöJÀölÀöqÀöÃÀ÷À÷FÀ÷KÀ÷™À÷ëÀø$ÀøaÀø Àø¥ÀøöÀùAÀùiÀùnÀù¯ÀùúÀúIÀú›ÀúìÀû4ÀûeÀûrÀûªÀûÙÀüÀü ÀüÀüÀü\Àü^Àü‡ÀüÃÀüöÀýÀý.Àý5ÀýBÀýˆÀýßÀýýÀþÀþOÀþuÀþ±ÀþÅÀþÐÀÿ)Àÿ.Àÿ0ÀÿnÀÿ¡Àÿ³ÀÿÙÀÿàÀÀ#ÀPÀÀ»ÀàÀ3ÀGÀRÀlÀ³ÀÀÀ=ÀDÀ“À­ÀÐÀÀ>ÀGÀNÀbÀgÀiÀ´ÀùÀÀRÀŸÀðÀÀÀRÀ¤ÀäÀëÀ:ÀAÀ”À¦ÀÖÀçÀÀ;À‘ÀôÀ À]À¯ÀèÀöÀ À À À +À ‹À �À ’À áÀ !À (À yÀ ÃÀ À À \À ¡À ïÀ 3À ƒÀ ŠÀ ÐÀ À BÀ IÀ šÀ ¡À îÀ?ÀsÀzÀÁÀÈÀÀdÀ‰À�À£ÀªÀºÀÁÀÀEÀLÀ˜ÀêÀÀ À_À±ÀÿÀMÀžÀêÀ*À1À|ÀÇÀÀÀ3À:À‰ÀÙÀ)ÀxÀšÀ¡ÀóÀ@À�ÀÐÀ×ÀÀÀcÀ³ÀÀLÀšÀ°À·ÀÀZÀ¦ÀÐÀ×À%ÀEÀ…ÀŒÀ±À¸À À[À¬ÀýÀAÀ“ÀáÀôÀûÀHÀšÀ¡À²À¹ÀÀSÀaÀ•À¦À«À­À÷ÀEÀ‰À�ÀâÀ /À €À �À —À âÀ!4À!tÀ!{À!ÊÀ!ÑÀ"À"+À"=À"mÀ"~À"™À"ÒÀ#(À#‹À#¡À#ôÀ$FÀ$À$�À$šÀ$£À$·À$ÂÀ%"À%'À%)À%xÀ%¸À%¿À&À&`À&²À&èÀ&ïÀ'5À'‚À'ÒÀ'ÙÀ()À(hÀ(‹À(’À(ãÀ(êÀ)<À)ˆÀ)ÚÀ*À* À*YÀ*ªÀ*ÞÀ*åÀ+,À+3À+‚À+ÏÀ+ôÀ+ûÀ, À,À,SÀ,lÀ,zÀ,®À,¿À,ÄÀ,ÆÀ-À-WÀ-^À-­À-ûÀ.KÀ.[À.bÀ.­À.ÿÀ/?À/FÀ/•À/œÀ/ÓÀ/÷À0 À09À0JÀ0dÀ0�À0óÀ1WÀ1mÀ1¿À2À2KÀ2YÀ2fÀ2oÀ2ƒÀ2ŽÀ2ïÀ2ôÀ2öÀ3FÀ3‡À3ŽÀ3ÞÀ4.À4cÀ4jÀ4·À4üÀ5JÀ5ŽÀ5ÝÀ5äÀ6*À6vÀ6›À6¢À6òÀ6ùÀ7FÀ7—À7ËÀ7ÒÀ8À8 À8oÀ8¼À8áÀ8èÀ8ùÀ9À9@À9‘À9ÜÀ9õÀ:À:7À:HÀ:MÀ:OÀ:›À:çÀ;+À;2À;�À;ÏÀ<À À>À>8À>qÀ>ÇÀ?+À?AÀ?“À?æÀ@À@-À@:À@CÀ@WÀ@bÀ@ÃÀ@ÈÀ@ÊÀAÀA[ÀAbÀA²ÀBÀBPÀB†ÀB�ÀBÓÀC!ÀCqÀCxÀCÇÀDÀD*ÀD1ÀD�ÀDˆÀDÚÀE&ÀExÀE£ÀEªÀE÷ÀFHÀF|ÀFƒÀFÊÀFÑÀG ÀGmÀG’ÀG™ÀGªÀG±ÀGñÀH ÀHÀHLÀH]ÀHbÀHdÀH¯ÀHÑÀHØÀI'ÀIpÀI„ÀI‹ÀIÖÀJ(ÀJhÀJoÀJÀÀKÀKSÀKZÀK©ÀK°ÀKûÀL ÀLJÀL®ÀL³ÀLµÀLÞÀMÀM'ÀMPÀMwÀM‹ÀM–ÀMÎÀMßÀNÀN/ÀNCÀNNÀNbÀNgÀNiÀN°ÀNèÀNïÀO?ÀO�ÀOÈÀPÀPÀP_ÀP¡ÀPÖÀPÝÀQ-ÀQhÀQoÀQÀÀRÀRSÀRZÀRƒÀRŠÀRÖÀS(ÀSVÀS]ÀS®ÀSôÀTBÀTfÀTÀT�ÀTÎÀTÛÀTÿÀU9ÀURÀU»ÀUÉÀUßÀV5ÀV¤ÀV²ÀV¿ÀVÉÀVÑÀVèÀVíÀVïÀW@ÀW‘ÀWµÀW¼ÀXÀXdÀX´ÀYÀYNÀYUÀY�ÀYéÀZ:ÀZ†ÀZÖÀZôÀZûÀ[KÀ[�À[îÀ\?À\’À\ÅÀ\ÌÀ]À]mÀ]ÀÀ^À^QÀ^ªÀ^ÎÀ_À_'À_<À_eÀ_¹À`À`gÀ`“À` À`ÏÀaÀaÀa;Àa@ÀaBÀamÀaºÀaËÀaöÀbÀb3Àb>Àb—Àb¨ÀbÒÀbüÀcÀcÀc/Àc4Àc6ÀcnÀcuÀcÄÀdÀdCÀdJÀd˜ÀdèÀe:Àe�ÀeÝÀf/Àf‚ÀfÏÀg ÀghÀg¦Àg­ÀgýÀhLÀhœÀhêÀi9ÀiMÀiTÀi£ÀióÀjDÀj•ÀjâÀk Àk9ÀkGÀk¤Àk±ÀkÕÀlÀl(Àl“Àl¡Àl·Àm Àm|ÀmŠÀm—Àm¡Àm©Àm»ÀmÀÀmÂÀmùÀmûÀnMÀnžÀn¥ÀnõÀoGÀo”Ào¨Ào¯ÀoßÀoæÀo÷ÀoþÀpPÀpuÀpÂÀpôÀqÀq9ÀqXÀqzÀqµÀqÐÀr1ÀrAÀrÀrŽÀr™Àr¹ÀrÐÀrÙÀs ÀsÀs(Às:Às?ÀsAÀsŠÀs°Às²ÀsíÀsôÀtAÀt�ÀtÛÀtâÀu2Àu„ÀuÖÀuæÀuùÀv4ÀvEÀvfÀv‡Àv­ÀvàÀw,ÀwJÀwsÀwÍÀwõÀxÀx>ÀxcÀxµÀxÆÀxäÀy1Ày‚ÀyÒÀz#ÀzrÀzÐÀzÜÀ{À{5À{MÀ{©À{«À{¼À{èÀ|À|lÀ|ÚÀ}CÀ}OÀ}QÀ}‡À}®À}ÆÀ~$À~5À~cÀ~eÀ~ŽÀ~íÀ]ÀÆÀÒÀòÀûÀ€À€À€/À€‹À€�À€’À€¢À€¤À€öÀ�QÀ�—À�¥À�¿À�ýÀ‚2À‚CÀ‚¥À‚»À‚ÄÀ‚êÀƒ.ÀƒrÀƒ|ÀƒŸÀƒ¿ÀƒÙÀ„:À„FÀ„VÀ„pÀ„�À…À…(À…4À…mÀ…‰À…¨À†À†+À†9À†DÀ†MÀ†iÀ†ƒÀ† À‡À‡À‡)À‡9À‡SÀ‡pÀ‡àÀ‡îÀ‡úÀˆÀˆ5Àˆ@ÀˆQÀˆwÀˆ‹Àˆ–ÀˆªÀˆ»ÀˆäÀˆøÀ‰À‰À‰ À‰7À‰>À‰�À‰âÀŠ4ÀŠ}ÀŠ„ÀŠÖÀ‹(À‹zÀ‹ÌÀŒÀŒ9ÀŒ^ÀŒxÀŒ‰ÀŒ«ÀŒÐÀŒþÀ�;À�’À�ÒÀŽ(ÀŽIÀŽ›ÀŽêÀ�>À�gÀ�yÀ�“À�åÀ�6À�…À�¶À�ÈÀ�âÀ‘5À‘†À‘ÚÀ’3À’`À’rÀ’ƒÀ’�À’¼À’ùÀ“QÀ“‘À“ñÀ”À”hÀ”¼À• À•dÀ•ºÀ•óÀ–À–À–#À–.À–7À–wÀ–‹À––À–ªÀ–¯À–±À–¾À–ðÀ–òÀ–ÿÀ—À—\À—�À—’À—”À—ÀÀ—ôÀ˜À˜(À˜-À˜/À˜À˜ÊÀ˜ÑÀ™À™jÀ™ºÀšÀšIÀš‰Àš�Àš×À›À›ZÀ›aÀ›«À›ëÀ›òÀœÀœ ÀœRÀœ‡ÀœÚÀœçÀ�À�„À�ŒÀ�ÔÀ�áÀžÀž-ÀžcÀž¼ÀžñÀŸJÀŸ�ÀŸÄÀŸÒÀŸÚÀ À  À +À bÀ sÀ ¡À ¨À ÐÀ ëÀ òÀ¡À¡ À¡ À¡SÀ¡ZÀ¡¤À¡öÀ¢À¢&À¢8À¢xÀ¢…À¢¡À£!À£)À£IÀ£sÀ£“À£ÃÀ¤À¤À¤À¤À¤nÀ¤¼À¤ÛÀ¤âÀ¥3À¥wÀ¥—À¥žÀ¥íÀ¦8À¦KÀ¦RÀ¦ŸÀ¦ìÀ¦üÀ§UÀ§\À§¬À§ÆÀ§ÍÀ¨À¨aÀ¨³À¨üÀ©À©#À©gÀ©tÀ©�ÀªÀªÀª*Àª/Àª1ÀªtÀª�ÀªËÀªÍÀªÚÀ«À«À«-À«VÀ«tÀ«œÀ¬ À¬À¬+À¬SÀ¬ÃÀ¬ÑÀ¬ÜÀ­À­_À­tÀ­‘À­ýÀ® À®6À®cÀ®vÀ®®À®¼À®ÉÀ®ÒÀ¯À¯ À¯fÀ¯ÀÀ¯ÝÀ°-À°}À°¾À°ÌÀ°ØÀ±À±'À±zÀ±©À±¶À±¸À±ÔÀ±øÀ²JÀ²ZÀ²hÀ²sÀ²¡À²ÃÀ³À³FÀ³SÀ³UÀ³qÀ³•À³èÀ³øÀ´À´À´JÀ´eÀ´•À´ÛÀ´õÀµ-Àµ;ÀµaÀµ‘Àµ¥ÀµÝÀµëÀ¶KÀ¶XÀ¶aÀ¶šÀ¶ËÀ·À·LÀ·|À·˜À·²À·êÀ·øÀ¸XÀ¸nÀ¸ÃÀ¹2À¹@À¹MÀ¹VÀ¹}À¹­À¹åÀºÀº`ÀºbÀº�ÀºµÀºÍÀºëÀºøÀ»/À»LÀ»gÀ»ÄÀ»ÔÀ»áÀ¼À¼À¼~À¼ŽÀ¼›À¼µÀ¼ÀÀ¼ÂÀ¼éÀ½À½MÀ½eÀ½ƒÀ½�À½éÀ¾BÀ¾^À¾yÀ¾šÀ¿ À¿2À¿BÀ¿OÀ¿ZÀ¿\À¿kÀ¿�À¿²À¿ÕÀ¿ëÀÀ ÀÀÀÀ;ÀÀ_ÀÀƒÀÀšÀÀ¸ÀÀÆÀÀôÀÁÀÁ?ÀÁdÀÁ|ÀÁ¢ÀÁ²ÀÁ¿ÀÁîÀÂÀÂ:ÀÂ`ÀÂyÀžÀ®À»ÀÃÀÃ2ÀÃkÀÃvÀÃxÀÜÀÃóÀÄ.ÀÄIÀÄÓÀÄãÀÅÀÅ`ÀÅ�ÀÅ·ÀÅÏÀÆ'ÀƘÀƨÀÆ·ÀÆÂÀÆÄÀÇÀÇ4ÀÇjÀÇ�ÀÇœÀÇÒÀÇçÀÈ ÀÈ+ÀÈuÀȰÀÈËÀÉUÀÉeÀÉ„ÀÉàÀÊLÀÊ\ÀʦÀʾÀËÀˇÀË—À˦À˱À˺ÀËÎÀËÙÀËÞÀËàÀÌÀÌÀÌWÀÌ�À̱ÀÍÀÍrÀÍ~À͈ÀÍŠÀÍÌÀÎÀÎ:ÀÎkÀÎ�ÀδÀÎÃÀÏÀÏNÀÏcÀÏœÀϧÀÏßÀÐ/ÀÐDÀÐOÀÐ�ÀÐÜÀÐÿÀÑNÀÑžÀÑÙÀÑôÀÒqÀÒÆÀÒÖÀÒõÀÓ–ÀÔÀÔÀÔ/ÀÔ>ÀÔPÀÔ‹ÀÔ¦ÀÕ#ÀÕxÀÕˆÀÕÓÀÕòÀÖ:ÀÖ–À×@À×vÀןÀ×ÄÀ×ÔÀ×îÀ×ýÀØÀØÀØ%ÀØ0ÀØ5ÀØ7ÀØDÀØ`ÀØ´ÀÙÀÙWÀÙ–ÀÙžÀÙðÀÚBÀÚ–ÀÚèÀÛ7ÀÛKÀÛSÀÛžÀÛïÀÜBÀÜ|ÀÜœÀÜ«ÀܲÀÜÐÀÜÕÀÜ×ÀÝÀÝÀÝiÀݺÀÝéÀÝöÀÞÀÞWÀÞ‚ÀÞžÀÞ£ÀÞ¥ÀÞ²ÀÞÌÀÞÝÀÞúÀß3ÀßÀß•ÀßåÀà8ÀàyÀà‡Àà”Àà�Àà±Àà¼ÀàÁÀàÃÀáÀáÀádÀá²ÀáýÀâKÀâRÀâ›ÀâêÀã<ÀãVÀã]Àã¬ÀãÝÀä,Àä}ÀäÆÀäÍÀåÀåqÀåÁÀæÀæaÀæ–ÀæÝÀæîÀçÀç&ÀçaÀçºÀèÀè-Àè€Àè¿ÀéÀéÀé(ÀéLÀéžÀéôÀê>ÀêNÀê]ÀêhÀê¡ÀêèÀë:ÀëWÀë›ÀëÀÀëÎÀëäÀìÀìYÀì¥Àì³ÀìÀÀìÉÀìÝÀìèÀíÀíaÀí—Àí­Àí¶Àí½ÀíÐÀíÕÀí×Àî Àî>ÀîEÀî�Àî®ÀîµÀîþÀïMÀïŸÀï¹ÀïÀÀð ÀðJÀðXÀð‡Àð‰ÀðÖÀðíÀðôÀñEÀñ`ÀñgÀñµÀòÀò/Àò6ÀòÀòÎÀóÀójÀóqÀóÀÀóñÀôCÀô”ÀôÝÀôäÀõ-ÀõnÀõ|ÀõÓÀõÕÀö%ÀöXÀö_Àö©ÀööÀ÷7À÷>À÷�À÷àÀø!Àø.ÀøsÀø–Àø§ÀøØÀùÀùbÀù¤ÀùÇÀú,Àú:ÀúŠÀú ÀûÀûYÀûÁÀü(Àü�Àü›Àü¨Àü±ÀüÅÀüÐÀýÀýRÀý‚Àý‡Àý‰ÀýÜÀþÀþÀþeÀþ¨Àþ¯Àþ÷Àÿ/Àÿ6ÀÿˆÀÿÙÀÀÀ]ÀŸÀêÀ:À‡ÀÓÀ$ÀqÀÀÀÀQÀŸÀïÀ?ÀxÀ¤À»ÀÖÀÝÀ À[À®ÀÀ=À[À`ÀbÀ²ÀéÀðÀ@À‘ÀÌÀÓÀ$ÀuÀÆÀ À QÀ VÀ XÀ ¥À ¬À þÀ PÀ ŸÀ µÀ ¼À À _À ®À ÕÀ ÜÀ -À :À iÀ kÀ ½À ÄÀ À sÀ ÅÀ ÌÀÀVÀ]ÀlÀ—À§À®ÀÁÀÀ8À_ÀjÀqÀ�ÀŠÀ•À¢ÀãÀ ÀÀÀ1À3ÀxÀÀÆÀ ÀÀ#ÀNÀ^ÀeÀxÀ¼ÀïÀÀ!À(À8ÀAÀLÀSÀ¤ÀçÀ*À;ÀcÀ�À³ÀÀ'À2ÀMÀVÀjÀuÀ‡ÀŒÀŽÀ›ÀØÀéÀAÀ•ÀãÀ3ÀƒÀ¤À®ÀüÀKÀ›ÀîÀ9À`À‡À¬ÀµÀÙÀÀ À5ÀdÀmÀ•ÀÃÀÌÀàÀëÀðÀòÀ0À7À�À�À¥ÀæÀ÷ÀÀ%ÀQÀrÀ¢ÀçÀûÀÀ À ÀDÀKÀšÀ¨ÀîÀÿÀÀ-ÀYÀ|ÀŽÀ­ÀÀ/À_ÀwÀ¯ÀôÀ#À,ÀJÀ«ÀËÀûÀ À KÀ �À ¿À ÈÀ ÜÀ çÀ ìÀ îÀ!;À!hÀ!oÀ!½À!ÄÀ"À"SÀ"aÀ"¦À"·À"ÞÀ#CÀ#{À#„À#˜À#£À#¨À#ªÀ#·À#ýÀ$)À$}À$‚À$…À$‡À$ÓÀ% À%À%_À%§À%¹À%áÀ&À&=À&@À&ˆÀ&ÈÀ&ÏÀ'À'@À'�À'°À'ÔÀ'ñÀ(DÀ(�À(¬À(àÀ(éÀ)À)À).À)3À)5À)rÀ)yÀ)ÊÀ)êÀ*<À*\À*™À*½À*ÚÀ+-À+UÀ+¹À+ìÀ,À,À,?À,DÀ,FÀ,”À,›À,èÀ-2À-9À-JÀ-QÀ-šÀ-ºÀ.À.3À.PÀ.¡À.ôÀ/)À/RÀ/oÀ/±À/öÀ07À0CÀ0MÀ0aÀ0wÀ0€À0°À0·À0ÊÀ0ÏÀ0ÑÀ1À1À1&À1-À1~À1¼À1ûÀ2À2<À2�À2ÒÀ2þÀ3À3 À3 À3QÀ3XÀ3¦À3õÀ4À4FÀ4yÀ4�À4ºÀ5 À54À5`À5gÀ5{À5€À5ƒ€ò/// @docImport 'package:flutter/widgets.dart'; /// /// @docImport 'image.dart'; /// @docImport 'paragraph.dart'; /// @docImport 'proxy_box.dart'; /// @docImport 'shifted_box.dart'; /// @docImport 'sliver.dart'; /// @docImport 'viewport.dart';�°�Ç�Æ�Í�â�á�ä‚‚ ‚4‚_‚”‚ª ƒƒ€±ƒ‰ƒ‰ƒ¦Nƒ¦ƒ¦ƒ°ƒ± ƒ¸ƒ·ƒ¿ ƒÅƒÄƒÌƒÒƒÑƒçƒìƒíƒñƒòƒø„„„„„„8À_Ð�á�á‹c/// Immutable layout constraints for [RenderBox] layout. /// /// A [Size] respects a [BoxConstraints] if, and only if, all of the following /// relations hold: /// /// * [minWidth] <= [Size.width] <= [maxWidth] /// * [minHeight] <= [Size.height] <= [maxHeight] /// /// The constraints themselves must satisfy these relations: /// /// * 0.0 <= [minWidth] <= [maxWidth] <= [double.infinity] /// * 0.0 <= [minHeight] <= [maxHeight] <= [double.infinity] /// /// [double.infinity] is a legal value for each constraint. /// /// ## The box layout model /// /// Render objects in the Flutter framework are laid out by a one-pass layout /// model which walks down the render tree passing constraints, then walks back /// up the render tree passing concrete geometry. /// /// For boxes, the constraints are [BoxConstraints], which, as described herein, /// consist of four numbers: a minimum width [minWidth], a maximum width /// [maxWidth], a minimum height [minHeight], and a maximum height [maxHeight]. /// /// The geometry for boxes consists of a [Size], which must satisfy the /// constraints described above. /// /// Each [RenderBox] (the objects that provide the layout models for box /// widgets) receives [BoxConstraints] from its parent, then lays out each of /// its children, then picks a [Size] that satisfies the [BoxConstraints]. /// /// Render objects position their children independently of laying them out. /// Frequently, the parent will use the children's sizes to determine their /// position. A child does not know its position and will not necessarily be /// laid out again, or repainted, if its position changes. /// /// ## Terminology /// /// When the minimum constraints and the maximum constraint in an axis are the /// same, that axis is _tightly_ constrained. See: [ /// BoxConstraints.tightFor], [BoxConstraints.tightForFinite], [tighten], /// [hasTightWidth], [hasTightHeight], [isTight]. /// /// An axis with a minimum constraint of 0.0 is _loose_ (regardless of the /// maximum constraint; if it is also 0.0, then the axis is simultaneously tight /// and loose!). See: [BoxConstraints.loose], [loosen]. /// /// An axis whose maximum constraint is not infinite is _bounded_. See: /// [hasBoundedWidth], [hasBoundedHeight]. /// /// An axis whose maximum constraint is infinite is _unbounded_. An axis is /// _expanding_ if it is tightly infinite (its minimum and maximum constraints /// are both infinite). See: [BoxConstraints.expand]. /// /// An axis whose _minimum_ constraint is infinite is just said to be _infinite_ /// (since by definition the maximum constraint must also be infinite in that /// case). See: [hasInfiniteWidth], [hasInfiniteHeight]. /// /// A size is _constrained_ when it satisfies a [BoxConstraints] description. /// See: [constrain], [constrainWidth], [constrainHeight], /// [constrainDimensions], [constrainSizeAndAttemptToPreserveAspectRatio], /// [isSatisfiedBy].� €Ú�J�J�X7/// Creates box constraints with the given constraints.�`�f�e�z�€�� �¦�¥�» �Á�À�p�Š���‘�±�Ì�Ò�Ó�é€ä‘2‘@‘A‘F‘AE/// Creates box constraints that is respected only by the given size.‘G ‘M‘L‘b‘Y‘d‘h‘i‘€‘w‘‚‘†‘‡‘Ÿ‘•‘¡‘¥‘¦‘¿‘µ‘Á‘őƑÓ�ì’ë’ù’ú“’ú€ü/// Creates box constraints that require the given width or height. /// /// See also: /// /// * [BoxConstraints.tightForFinite], which is similar but instead of /// being tight if the value is non-null, is tight if the value is not /// infinite.“ “ “ ““““4“+“<“6“?“T“K“\“V“_“e“f“�“w“Š“ƒ“�“£“™“¬“¥“¯“µ“¶“Å‚ ”ñ”ÿ•••�/// Creates box constraints that require the given width or height, except if /// they are infinite. /// /// See also: /// /// * [BoxConstraints.tightFor], which is similar but instead of being /// tight if the value is not infinite, is tight if the value is non-null.••••;•C•B6•%•+•,•K•Q•R•m•d•ˆ•�•u•o•x•~••Š•’•¨•Ÿ•Õ˕°•ª•³•¹•º•Å•Í•Ó•Ô•ð•æ– –•ù•ò•ü–––––.–$–J–S–7–0–:–@–A–L–U–[–\–k€Ù–¸–Æ–Ç–Ì–ÇI/// Creates box constraints that forbid sizes larger than the given size.–Í –Ó–Ò–è–ß–ê–ÿ–ö—————— —6—,—8—<—=—J�»˜˜)˜*˜0˜*€¾/// Creates box constraints that expand to fill another box constraints. /// /// If width or height is given, the constraints will require exactly the /// given value in the given dimension.˜2 ˜;˜:˜A˜J˜I˜b˜Y˜j˜d˜m˜s˜t˜Ž˜…˜–˜�˜™˜Ÿ˜ ˜»˜±˜Ä˜½˜Ç˜Í˜Î˜é˜ß˜ò˜ë˜õ˜û˜ü™ �,™Q™_™`™s™`B/// Creates box constraints that match the given view constraints.™t™ˆ™‡™¤™›™¦™±™²™Ì™Ã™Î™Ù™Ú™õ™ë™÷ššššš!š,š-š=Nšƒšƒ5/// The minimum width that satisfies the constraints.š’x››Y/// The maximum width that satisfies the constraints. /// /// Might be [double.infinity].›P›X›X6/// The minimum height that satisfies the constraints.›hz›Ù›ÙZ/// The maximum height that satisfies the constraints. /// /// Might be [double.infinity]. ¥ù€ý¦T¦TD/// A box constraints with the width and height constraints flipped.´³v´ô´ô4/// The biggest size that satisfies the constraints.µ/~µqµq5/// The smallest size that satisfies the constraints.µ³¶ ¶ L/// Whether there is exactly one width value that satisfies the constraints.¶8€ƒ¶’¶’M/// Whether there is exactly one height value that satisfies the constraints.¶Á€Š· · E/// Whether there is exactly one size that satisfies the constraints.· · ·Q�A¸d¸d€ô/// Whether there is an upper bound on the maximum width. /// /// See also: /// /// * [hasBoundedHeight], the equivalent for the vertical axis. /// * [hasInfiniteWidth], which describes whether the minimum width /// constraint is infinite.¸˜�G¹¯¹¯€ø/// Whether there is an upper bound on the maximum height. /// /// See also: /// /// * [hasBoundedWidth], the equivalent for the horizontal axis. /// * [hasInfiniteHeight], which describes whether the minimum height /// constraint is infinite.¹å‚Ÿ¼T¼T‚>/// Whether the width constraint is infinite. /// /// Such a constraint is used to indicate that a box should grow as large as /// some other constraint (in this case, horizontally). If constraints are /// infinite, then they must have other (non-infinite) constraints [enforce]d /// upon them, or must be [tighten]ed, before they can be used to derive a /// [Size] for a [RenderBox.size]. /// /// See also: /// /// * [hasInfiniteHeight], the equivalent for the vertical axis. /// * [hasBoundedWidth], which describes whether the maximum width /// constraint is finite.¼Š‚£¾û¾û‚@/// Whether the height constraint is infinite. /// /// Such a constraint is used to indicate that a box should grow as large as /// some other constraint (in this case, vertically). If constraints are /// infinite, then they must have other (non-infinite) constraints [enforce]d /// upon them, or must be [tighten]ed, before they can be used to derive a /// [Size] for a [RenderBox.size]. /// /// See also: /// /// * [hasInfiniteWidth], the equivalent for the horizontal axis. /// * [hasBoundedHeight], which describes whether the maximum height /// constraint is finite.ÀM1‚ªÀOeÀOe�ü/// Returns whether the object's constraints are normalized. /// Constraints are normalized if the minimums are less than or /// equal to the corresponding maximums. /// /// For example, a BoxConstraints object with a minWidth of 100.0 /// and a maxWidth of 90.0 is not normalized. /// /// Most of the APIs on BoxConstraints expect the constraints to be /// normalized and have undefined behavior when they are not. In /// debug mode, many of these APIs will assert if the constraints /// are not normalized.ÀOOÀOPÀ`$€ŠÀ`9À`9À`$À`%›é�Äœ^œ^b/// Creates a copy of this box constraints but with the given fields replaced with the new values.œnœwœvœ…œŽœ�œœœ¥œ¤œ´œ½œ¼�³‚•žžN/// Returns new box constraints that are smaller by the given edge dimensions.žž0ž/ N€á · ·V/// Returns new box constraints that remove the minimum width and height requirements.¡5‚@¡Ï¡Ï€„/// Returns new box constraints that respect the given constraints while being /// as close as possible to the original constraints.¡×¡ç¡æ£{‚x¤D¤D€°/// Returns new box constraints with a tight width and/or height as close to /// the given width and height as possible while still respecting the original /// box constraints.¤M ¤V¤U¤\¤e¤d¦ü€Á§p§p^/// Returns box constraints with the same width constraints but with /// unconstrained height.§Ã€Æ¨7¨7^/// Returns box constraints with the same height constraints but with /// unconstrained width.¨�� © © m/// Returns the width that both satisfies the constraints and is as close as /// possible to the given width.©©"©!©)©/©0©ž�ªªo/// Returns the height that both satisfies the constraints and is as close as /// possible to the given height.ª,ª4ª3ª<ªBªCª´€öª¹ª¹ªÒ ªØª×ªÝ ªãªâ«°�÷¬½¬½€ò/// Returns the size that both satisfies the constraints and is as close as /// possible to the given size. /// /// See also: /// /// * [constrainDimensions], which applies the same algorithm to /// separately provided widths and heights.¬Ç ¬Í¬Ì­­�|®°®°€î/// Returns the size that both satisfies the constraints and is as close as /// possible to the given width and height. /// /// When you already have a [Size], prefer [constrain], which applies the same /// algorithm to a [Size] directly.®Ä ®Ì®Ë®Ò ®Ú®Ù¯/…~°›°›�Q/// Returns a size that attempts to meet the following conditions, in order: /// /// * The size must satisfy these constraints. /// * The aspect ratio of the returned size matches the aspect ratio of the /// given size. /// * The returned size is as big as possible while still being equal to or /// smaller than the given size.°È °Î°Í¿3�¿q¿q5/// Whether the given size satisfies the constraints.¿ ¿…¿„À@R�$À@§À@§9/// Scales each constraint parameter by the given factor.À@© À@±À@°ÀA|�3ÀAàÀAàH/// Scales each constraint parameter by the inverse of the given factor.ÀAâ ÀAêÀAéÀBµ�ŒÀC9ÀC9h/// Scales each constraint parameter by the inverse of the given factor, rounded to the nearest integer.ÀC< ÀCDÀCCÀDG�1ÀD®ÀD®K/// Computes the remainder of each constraint parameter by the given value.ÀD° ÀD¸ÀD·ÀE~‡­ÀF{ÀF{€Ó/// Linearly interpolate between two BoxConstraints. /// /// If either is null, this function interpolates from a [BoxConstraints] /// object whose fields are all set to 0.0. /// /// {@macro dart.ui.shadow.lerp}ÀF€ÀF‘ÀF�ÀF“ÀF¤ÀF£ÀF¦ÀF®ÀF­ÀOዱÀOóÀOóÀP ÀPÀPÀP4*ÀPKÀPJÀOáÀOâÀP(À[˜‚›À\À\€Ë/// Returns a box constraints that [isNormalized]. /// /// The returned [maxWidth] is at least as large as the [minWidth]. Similarly, /// the returned [maxHeight] is at least as large as the [minHeight].À^9�åÀ^TÀ^TÀ^W À^_À^^À^9À^:À`´ƒQÀ`ÈÀ`ÈÀ`´À`µÀg@£vÀgóÀgó€¨/// The result of performing a hit test on [RenderBox]es. /// /// An instance of this class is provided to [RenderBox.hitTest] to record the /// result of the hit test.ÀheÀhgÀhgÀhwD/// Creates an empty hit test result for hit testing on [RenderBox].Àh|Àh�Àh‚ÀhŠƒ±ÀlÀlÀlÀlÀlƒJ/// Wraps `result` to create a [HitTestResult] that implements the /// [BoxHitTestResult] protocol for hit testing on [RenderBox]es. /// /// This method is used by [RenderObject]s that adapt between the /// [RenderBox]-world and the non-[RenderBox]-world to convert a (subtype of) /// [HitTestResult] to a [BoxHitTestResult] for hit testing on [RenderBox]es. /// /// The [HitTestEntry] instances added to the returned [BoxHitTestResult] are /// also added to the wrapped `result` (both share the same underlying data /// structure to store [HitTestEntry] instances). /// /// See also: /// /// * [HitTestResult.wrap], which turns a [BoxHitTestResult] back into a /// generic [HitTestResult]. /// * [SliverHitTestResult.wrap], which turns a [BoxHitTestResult] into a /// [SliverHitTestResult] for hit testing on [RenderSliver] children.Àl Àl%Àl$Àl.Àl3Àl4Àl8Àl9ÀlAŒ#ÀvyÀvy‰~/// Transforms `position` to the local coordinate system of a child for /// hit-testing the child. /// /// The actual hit testing of the child needs to be implemented in the /// provided `hitTest` callback, which is invoked with the transformed /// `position` as argument. /// /// The provided paint `transform` (which describes the transform from the /// child to the parent in 3D) is processed by /// [PointerEvent.removePerspectiveTransform] to remove the /// perspective component and inverted before it is used to transform /// `position` from the coordinate system of the parent to the system of the /// child. /// /// If `transform` is null it will be treated as the identity transform and /// `position` is provided to the `hitTest` callback as-is. If `transform` /// cannot be inverted, the `hitTest` callback is not invoked and false is /// returned. Otherwise, the return value of the `hitTest` callback is /// returned. /// /// The `position` argument may be null, which will be forwarded to the /// `hitTest` callback as-is. Using null as the position can be useful if /// the child speaks a different hit test protocol than the parent and the /// position is not required to do the actual hit testing in that protocol. /// /// The function returns the return value of the `hitTest` callback. /// /// {@tool snippet} /// This method is used in [RenderBox.hitTestChildren] when the child and /// parent don't share the same origin. /// /// ```dart /// abstract class RenderFoo extends RenderBox { /// final Matrix4 _effectiveTransform = Matrix4.rotationZ(50); /// /// @override /// void applyPaintTransform(RenderBox child, Matrix4 transform) { /// transform.multiply(_effectiveTransform); /// } /// /// @override /// bool hitTestChildren(BoxHitTestResult result, { required Offset position }) { /// return result.addWithPaintTransform( /// transform: _effectiveTransform, /// position: position, /// hitTest: (BoxHitTestResult result, Offset position) { /// return super.hitTestChildren(result, position: position); /// }, /// ); /// } /// } /// ``` /// {@end-tool} /// /// See also: /// /// * [addWithPaintOffset], which can be used for `transform`s that are just /// simple matrix translations by an [Offset]. /// * [addWithRawTransform], which takes a transform matrix that is directly /// used to transform the position without any pre-processing.Àv–Àv©Àv¨Àv¸ÀvÉÀvÈÀv×ÀvìÀvëÀxj„›À{hÀ{h‚Â/// Convenience method for hit testing children, that are translated by /// an [Offset]. /// /// The actual hit testing of the child needs to be implemented in the /// provided `hitTest` callback, which is invoked with the transformed /// `position` as argument. /// /// This method can be used as a convenience over [addWithPaintTransform] if /// a parent paints a child at an `offset`. /// /// A null value for `offset` is treated as if [Offset.zero] was provided. /// /// The function returns the return value of the `hitTest` callback. /// /// See also: /// /// * [addWithPaintTransform], which takes a generic paint transform matrix and /// documents the intended usage of this API in more detail.À{‚À{”À{“À{ À{±À{°À{¿À{ÔÀ{ÓÀ} …À€EÀ€E‚û/// Transforms `position` to the local coordinate system of a child for /// hit-testing the child. /// /// The actual hit testing of the child needs to be implemented in the /// provided `hitTest` callback, which is invoked with the transformed /// `position` as argument. /// /// Unlike [addWithPaintTransform], the provided `transform` matrix is used /// directly to transform `position` without any pre-processing. /// /// If `transform` is null it will be treated as the identity transform ad /// `position` is provided to the `hitTest` callback as-is. /// /// The function returns the return value of the `hitTest` callback. /// /// See also: /// /// * [addWithPaintTransform], which accomplishes the same thing, but takes a /// _paint_ transform matrix.À€`À€sÀ€rÀ€‚À€“À€’À€¡À€¶À€µÀ‚"ˆ‘À†ºÀ†º„>/// Pass-through method for adding a hit test while manually managing /// the position transformation logic. /// /// The actual hit testing of the child needs to be implemented in the /// provided `hitTest` callback. The position needs to be handled by /// the caller. /// /// The function returns the return value of the `hitTest` callback. /// /// A `paintOffset`, `paintTransform`, or `rawTransform` should be /// passed to the method to update the hit test stack. /// /// * `paintOffset` has the semantics of the `offset` passed to /// [addWithPaintOffset]. /// /// * `paintTransform` has the semantics of the `transform` passed to /// [addWithPaintTransform], except that it must be invertible; it /// is the responsibility of the caller to ensure this. /// /// * `rawTransform` has the semantics of the `transform` passed to /// [addWithRawTransform]. /// /// Exactly one of these must be non-null. /// /// See also: /// /// * [addWithPaintTransform], which takes a generic paint transform matrix and /// documents the intended usage of this API in more detail.À†ÚÀ†ãÀ†âÀ†ôÀ†þÀ†ýÀ‡À‡À‡À‡.0À‡XÀ‡WÀŠº�€ÀŠëÀŠë)/// A hit test entry used by [RenderBox].À‹ WÀ‹EÀ‹EÀ‹T!/// Creates a box hit test entry.À‹U À‹\À‹[À‹cÀ‹iÀ‹hÀ‹}dÀ‹ÔÀ‹ÔF/// The position of the hit test in the local coordinates of [target].À‹èOÀ‹üÀ‹üÀ‹èÀ‹éÀŒ>‚™ÀŽÀŽ�¹/// Parent data used by [RenderBox] and its subclasses. /// /// {@tool dartpad} /// Parent data is used to communicate to a render object about its /// children. In this example, there are two render objects that perform /// text layout. They use parent data to identify the kind of child they /// are laying out, and space the children accordingly. /// /// ** See code in examples/api/lib/rendering/box/parent_data.0.dart ** /// {@end-tool}ÀŽ.lÀކÀކM/// The offset at which to paint the child in the parent's coordinate system.ÀŽ�ÀŽ•ÀŽ–ÀŽ¡3À޵À޵ÀŽ¡ÀŽ¢ÀŽÛ�lÀ�ÊÀ�Ê€Ú/// Abstract [ParentData] subclass for [RenderBox] subclasses that want the /// [ContainerRenderObjectMixin]. /// /// This is a convenience class that mixes in the relevant classes with /// the relevant type arguments.À�áÀ�áÀ�áÀ–†«Àš Àš „v/// An interface that represents a memoized layout computation run by a [RenderBox]. /// /// Each subclass is inhabited by a single object. Each object represents the /// signature of a memoized layout computation run by [RenderBox]. For instance, /// the [dryLayout] object of the [_DryLayout] subclass represents the signature /// of the [RenderBox.computeDryLayout] method: it takes a [BoxConstraints] (the /// subclass's `Input` type parameter) and returns a [Size] (the subclass's /// `Output` type parameter). /// /// Subclasses do not own their own cache storage. Rather, their [memoize] /// implementation takes a `cacheStorage`. If a prior computation with the same /// input values has already been memoized in `cacheStorage`, it returns the /// memoized value without running `computer`. Otherwise the method runs the /// `computer` to compute the return value, and caches the result to /// `cacheStorage`. /// /// The layout cache storage is typically cleared in `markNeedsLayout`, but is /// usually kept across [RenderObject.layout] calls because the incoming /// [BoxConstraints] is always an input of every layout computation.Àš¹Àš¹Àš¹ÀšÏÀšÏÀšÏÀšÜ0ÀšôÀšôÀ›À› À› À›-À›(À›(À›3À›<À›=À›E_À›LÀ›LÀ›T À›iÀ›hÀ›v À›}À›|À›ƒÀ››À›šÀœsÀœ%Àœ%ÀœF%Àœ[ÀœZÀœr ÀœyÀœxÀœˆ'Àœ�Àœ�ÀœšÀœ¥Àœ¤Àœ¶‚ØÀœÂÀœÂÀ� À�À�À�À�%�$À�7À�7À�E À�ZÀ�YÀ�lÀ�|À�{À�‡&À�¦À�¥À�%À�&ÀžO€×ÀžpÀžpÀž‘%Àž¦Àž¥Àž½ÀžÍÀžÌÀžOÀžPÀŸ,_ÀŸ@ÀŸ@ÀŸKÀŸVÀŸUÀŸ,ÀŸ-ÀŸ’„ÀŸžÀŸžÀ À  À  À À ‚qÀ :À :À H À ]À \À o$À �À ŽÀ š@À ÓÀ ÒÀ À À¢•�À¢¶À¢¶À¢×%À¢ìÀ¢ëÀ£$À£#À£"À¢•À¢–À£­aÀ£ÁÀ£ÁÀ£ÌÀ£×À£ÖÀ£­À£®À§¬ƒŠÀ§¸À§¸À§ÑFÀ§ýÀ§ýÀ¨0À¨7À¨7À¨Q>À¨vÀ¨vÀ¨”8À¨¹À¨¹À©E�îÀ©JÀ©JÀ«:ÀyIÀûCÀûCÀN\/// A render object in a 2D Cartesian coordinate system. /// /// The [size] of each box is expressed as a width and a height. Each box has /// its own coordinate system in which its upper left corner is placed at (0, /// 0). The lower right corner of the box is therefore at (width, height). The /// box contains all the points including the upper left corner and extending /// to, but not including, the lower right corner. /// /// Box layout is performed by passing a [BoxConstraints] object down the tree. /// The box constraints establish a min and max value for the child's width and /// height. In determining its size, the child must respect the constraints /// given to it by its parent. /// /// This protocol is sufficient for expressing a number of common box layout /// data flows. For example, to implement a width-in-height-out data flow, call /// your child's [layout] function with a set of box constraints with a tight /// width value (and pass true for parentUsesSize). After the child determines /// its height, use the child's height to determine your size. /// /// ## Writing a RenderBox subclass /// /// One would implement a new [RenderBox] subclass to describe a new layout /// model, new paint model, new hit-testing model, or new semantics model, while /// remaining in the Cartesian space defined by the [RenderBox] protocol. /// /// To create a new protocol, consider subclassing [RenderObject] instead. /// /// ### Constructors and properties of a new RenderBox subclass /// /// The constructor will typically take a named argument for each property of /// the class. The value is then passed to a private field of the class and the /// constructor asserts its correctness (e.g. if it should not be null, it /// asserts it's not null). /// /// Properties have the form of a getter/setter/field group like the following: /// /// ```dart /// AxisDirection get axis => _axis; /// AxisDirection _axis = AxisDirection.down; // or initialized in constructor /// set axis(AxisDirection value) { /// if (value == _axis) { /// return; /// } /// _axis = value; /// markNeedsLayout(); /// } /// ``` /// /// The setter will typically finish with either a call to [markNeedsLayout], if /// the layout uses this property, or [markNeedsPaint], if only the painter /// function does. (No need to call both, [markNeedsLayout] implies /// [markNeedsPaint].) /// /// Consider layout and paint to be expensive; be conservative about calling /// [markNeedsLayout] or [markNeedsPaint]. They should only be called if the /// layout (or paint, respectively) has actually changed. /// /// ### Children /// /// If a render object is a leaf, that is, it cannot have any children, then /// ignore this section. (Examples of leaf render objects are [RenderImage] and /// [RenderParagraph].) /// /// For render objects with children, there are four possible scenarios: /// /// * A single [RenderBox] child. In this scenario, consider inheriting from /// [RenderProxyBox] (if the render object sizes itself to match the child) or /// [RenderShiftedBox] (if the child will be smaller than the box and the box /// will align the child inside itself). /// /// * A single child, but it isn't a [RenderBox]. Use the /// [RenderObjectWithChildMixin] mixin. /// /// * A single list of children. Use the [ContainerRenderObjectMixin] mixin. /// /// * A more complicated child model. /// /// #### Using RenderProxyBox /// /// By default, a [RenderProxyBox] render object sizes itself to fit its child, or /// to be as small as possible if there is no child; it passes all hit testing /// and painting on to the child, and intrinsic dimensions and baseline /// measurements similarly are proxied to the child. /// /// A subclass of [RenderProxyBox] just needs to override the parts of the /// [RenderBox] protocol that matter. For example, [RenderOpacity] just /// overrides the paint method (and [alwaysNeedsCompositing] to reflect what the /// paint method does, and the [visitChildrenForSemantics] method so that the /// child is hidden from accessibility tools when it's invisible), and adds an /// [RenderOpacity.opacity] field. /// /// [RenderProxyBox] assumes that the child is the size of the parent and /// positioned at 0,0. If this is not true, then use [RenderShiftedBox] instead. /// /// See /// [proxy_box.dart](https://github.com/flutter/flutter/blob/main/packages/flutter/lib/src/rendering/proxy_box.dart) /// for examples of inheriting from [RenderProxyBox]. /// /// #### Using RenderShiftedBox /// /// By default, a [RenderShiftedBox] acts much like a [RenderProxyBox] but /// without assuming that the child is positioned at 0,0 (the actual position /// recorded in the child's [parentData] field is used), and without providing a /// default layout algorithm. /// /// See /// [shifted_box.dart](https://github.com/flutter/flutter/blob/main/packages/flutter/lib/src/rendering/shifted_box.dart) /// for examples of inheriting from [RenderShiftedBox]. /// /// #### Kinds of children and child-specific data /// /// A [RenderBox] doesn't have to have [RenderBox] children. One can use another /// subclass of [RenderObject] for a [RenderBox]'s children. See the discussion /// at [RenderObject]. /// /// Children can have additional data owned by the parent but stored on the /// child using the [parentData] field. The class used for that data must /// inherit from [ParentData]. The [setupParentData] method is used to /// initialize the [parentData] field of a child when the child is attached. /// /// By convention, [RenderBox] objects that have [RenderBox] children use the /// [BoxParentData] class, which has a [BoxParentData.offset] field to store the /// position of the child relative to the parent. ([RenderProxyBox] does not /// need this offset and therefore is an exception to this rule.) /// /// #### Using RenderObjectWithChildMixin /// /// If a render object has a single child but it isn't a [RenderBox], then the /// [RenderObjectWithChildMixin] class, which is a mixin that will handle the /// boilerplate of managing a child, will be useful. /// /// It's a generic class with one type argument, the type of the child. For /// example, if you are building a `RenderFoo` class which takes a single /// `RenderBar` child, you would use the mixin as follows: /// /// ```dart /// class RenderFoo extends RenderBox /// with RenderObjectWithChildMixin { /// // ... /// } /// ``` /// /// Since the `RenderFoo` class itself is still a [RenderBox] in this case, you /// still have to implement the [RenderBox] layout algorithm, as well as /// features like intrinsics and baselines, painting, and hit testing. /// /// #### Using ContainerRenderObjectMixin /// /// If a render box can have multiple children, then the /// [ContainerRenderObjectMixin] mixin can be used to handle the boilerplate. It /// uses a linked list to model the children in a manner that is easy to mutate /// dynamically and that can be walked efficiently. Random access is not /// efficient in this model; if you need random access to the children consider /// the next section on more complicated child models. /// /// The [ContainerRenderObjectMixin] class has two type arguments. The first is /// the type of the child objects. The second is the type for their /// [parentData]. The class used for [parentData] must itself have the /// [ContainerParentDataMixin] class mixed into it; this is where /// [ContainerRenderObjectMixin] stores the linked list. A [ParentData] class /// can extend [ContainerBoxParentData]; this is essentially /// [BoxParentData] mixed with [ContainerParentDataMixin]. For example, if a /// `RenderFoo` class wanted to have a linked list of [RenderBox] children, one /// might create a `FooParentData` class as follows: /// /// ```dart /// class FooParentData extends ContainerBoxParentData { /// // (any fields you might need for these children) /// } /// ``` /// /// When using [ContainerRenderObjectMixin] in a [RenderBox], consider mixing in /// [RenderBoxContainerDefaultsMixin], which provides a collection of utility /// methods that implement common parts of the [RenderBox] protocol (such as /// painting the children). /// /// The declaration of the `RenderFoo` class itself would thus look like this: /// /// ```dart /// // continuing from previous example... /// class RenderFoo extends RenderBox with /// ContainerRenderObjectMixin, /// RenderBoxContainerDefaultsMixin { /// // ... /// } /// ``` /// /// When walking the children (e.g. during layout), the following pattern is /// commonly used (in this case assuming that the children are all [RenderBox] /// objects and that this render object uses `FooParentData` objects for its /// children's [parentData] fields): /// /// ```dart /// // continuing from previous example... /// RenderBox? child = firstChild; /// while (child != null) { /// final FooParentData childParentData = child.parentData! as FooParentData; /// // ...operate on child and childParentData... /// assert(child.parentData == childParentData); /// child = childParentData.nextSibling; /// } /// ``` /// /// #### More complicated child models /// /// Render objects can have more complicated models, for example a map of /// children keyed on an enum, or a 2D grid of efficiently randomly-accessible /// children, or multiple lists of children, etc. If a render object has a model /// that can't be handled by the mixins above, it must implement the /// [RenderObject] child protocol, as follows: /// /// * Any time a child is removed, call [dropChild] with the child. /// /// * Any time a child is added, call [adoptChild] with the child. /// /// * Implement the [attach] method such that it calls [attach] on each child. /// /// * Implement the [detach] method such that it calls [detach] on each child. /// /// * Implement the [redepthChildren] method such that it calls [redepthChild] /// on each child. /// /// * Implement the [visitChildren] method such that it calls its argument for /// each child, typically in paint order (back-most to front-most). /// /// * Implement [debugDescribeChildren] such that it outputs a [DiagnosticsNode] /// for each child. /// /// Implementing these seven bullet points is essentially all that the two /// aforementioned mixins do. /// /// ### Layout /// /// [RenderBox] classes implement a layout algorithm. They have a set of /// constraints provided to them, and they size themselves based on those /// constraints and whatever other inputs they may have (for example, their /// children or properties). /// /// When implementing a [RenderBox] subclass, one must make a choice. Does it /// size itself exclusively based on the constraints, or does it use any other /// information in sizing itself? An example of sizing purely based on the /// constraints would be growing to fit the parent. /// /// Sizing purely based on the constraints allows the system to make some /// significant optimizations. Classes that use this approach should override /// [sizedByParent] to return true, and then override [computeDryLayout] to /// compute the [Size] using nothing but the constraints, e.g.: /// /// ```dart /// @override /// bool get sizedByParent => true; /// /// @override /// Size computeDryLayout(BoxConstraints constraints) { /// return constraints.smallest; /// } /// ``` /// /// Otherwise, the size is set in the [performLayout] function. /// /// The [performLayout] function is where render boxes decide, if they are not /// [sizedByParent], what [size] they should be, and also where they decide /// where their children should be. /// /// #### Layout of RenderBox children /// /// The [performLayout] function should call the [layout] function of each (box) /// child, passing it a [BoxConstraints] object describing the constraints /// within which the child can render. Passing tight constraints (see /// [BoxConstraints.isTight]) to the child will allow the rendering library to /// apply some optimizations, as it knows that if the constraints are tight, the /// child's dimensions cannot change even if the layout of the child itself /// changes. /// /// If the [performLayout] function will use the child's size to affect other /// aspects of the layout, for example if the render box sizes itself around the /// child, or positions several children based on the size of those children, /// then it must specify the `parentUsesSize` argument to the child's [layout] /// function, setting it to true. /// /// This flag turns off some optimizations; algorithms that do not rely on the /// children's sizes will be more efficient. (In particular, relying on the /// child's [size] means that if the child is marked dirty for layout, the /// parent will probably also be marked dirty for layout, unless the /// [constraints] given by the parent to the child were tight constraints.) /// /// For [RenderBox] classes that do not inherit from [RenderProxyBox], once they /// have laid out their children, they should also position them, by setting the /// [BoxParentData.offset] field of each child's [parentData] object. /// /// #### Layout of non-RenderBox children /// /// The children of a [RenderBox] do not have to be [RenderBox]es themselves. If /// they use another protocol (as discussed at [RenderObject]), then instead of /// [BoxConstraints], the parent would pass in the appropriate [Constraints] /// subclass, and instead of reading the child's size, the parent would read /// whatever the output of [layout] is for that layout protocol. The /// `parentUsesSize` flag is still used to indicate whether the parent is going /// to read that output, and optimizations still kick in if the child has tight /// constraints (as defined by [Constraints.isTight]). /// /// ### Painting /// /// To describe how a render box paints, implement the [paint] method. It is /// given a [PaintingContext] object and an [Offset]. The painting context /// provides methods to affect the layer tree as well as a /// [PaintingContext.canvas] which can be used to add drawing commands. The /// canvas object should not be cached across calls to the [PaintingContext]'s /// methods; every time a method on [PaintingContext] is called, there is a /// chance that the canvas will change identity. The offset specifies the /// position of the top left corner of the box in the coordinate system of the /// [PaintingContext.canvas]. /// /// To draw text on a canvas, use a [TextPainter]. /// /// To draw an image to a canvas, use the [paintImage] method. /// /// A [RenderBox] that uses methods on [PaintingContext] that introduce new /// layers should override the [alwaysNeedsCompositing] getter and set it to /// true. If the object sometimes does and sometimes does not, it can have that /// getter return true in some cases and false in others. In that case, whenever /// the return value would change, call [markNeedsCompositingBitsUpdate]. (This /// is done automatically when a child is added or removed, so you don't have to /// call it explicitly if the [alwaysNeedsCompositing] getter only changes value /// based on the presence or absence of children.) /// /// Anytime anything changes on the object that would cause the [paint] method /// to paint something different (but would not cause the layout to change), /// the object should call [markNeedsPaint]. /// /// #### Painting children /// /// The [paint] method's `context` argument has a [PaintingContext.paintChild] /// method, which should be called for each child that is to be painted. It /// should be given a reference to the child, and an [Offset] giving the /// position of the child relative to the parent. /// /// If the [paint] method applies a transform to the painting context before /// painting children (or generally applies an additional offset beyond the /// offset it was itself given as an argument), then the [applyPaintTransform] /// method should also be overridden. That method must adjust the matrix that it /// is given in the same manner as it transformed the painting context and /// offset before painting the given child. This is used by the [globalToLocal] /// and [localToGlobal] methods. /// /// #### Hit Tests /// /// Hit testing for render boxes is implemented by the [hitTest] method. The /// default implementation of this method defers to [hitTestSelf] and /// [hitTestChildren]. When implementing hit testing, you can either override /// these latter two methods, or ignore them and just override [hitTest]. /// /// The [hitTest] method itself is given an [Offset], and must return true if the /// object or one of its children has absorbed the hit (preventing objects below /// this one from being hit), or false if the hit can continue to other objects /// below this one. /// /// For each child [RenderBox], the [hitTest] method on the child should be /// called with the same [HitTestResult] argument and with the point transformed /// into the child's coordinate space (in the same manner that the /// [applyPaintTransform] method would). The default implementation defers to /// [hitTestChildren] to call the children. [RenderBoxContainerDefaultsMixin] /// provides a [RenderBoxContainerDefaultsMixin.defaultHitTestChildren] method /// that does this assuming that the children are axis-aligned, not transformed, /// and positioned according to the [BoxParentData.offset] field of the /// [parentData]; more elaborate boxes can override [hitTestChildren] /// accordingly. /// /// If the object is hit, then it should also add itself to the [HitTestResult] /// object that is given as an argument to the [hitTest] method, using /// [HitTestResult.add]. The default implementation defers to [hitTestSelf] to /// determine if the box is hit. If the object adds itself before the children /// can add themselves, then it will be as if the object was above the children. /// If it adds itself after the children, then it will be as if it was below the /// children. Entries added to the [HitTestResult] object should use the /// [BoxHitTestEntry] class. The entries are subsequently walked by the system /// in the order they were added, and for each entry, the target's [handleEvent] /// method is called, passing in the [HitTestEntry] object. /// /// Hit testing cannot rely on painting having happened. /// /// ### Semantics /// /// For a render box to be accessible, implement the /// [describeApproximatePaintClip], [visitChildrenForSemantics], and /// [describeSemanticsConfiguration] methods. The default implementations are /// sufficient for objects that only affect layout, but nodes that represent /// interactive components or information (diagrams, text, images, etc) should /// provide more complete implementations. For more information, see the /// documentation for these members. /// /// ### Intrinsics and Baselines /// /// The layout, painting, hit testing, and semantics protocols are common to all /// render objects. [RenderBox] objects must implement two additional protocols: /// intrinsic sizing and baseline measurements. /// /// There are four methods to implement for intrinsic sizing, to compute the /// minimum and maximum intrinsic width and height of the box. The documentation /// for these methods discusses the protocol in detail: /// [computeMinIntrinsicWidth], [computeMaxIntrinsicWidth], /// [computeMinIntrinsicHeight], [computeMaxIntrinsicHeight]. /// /// Be sure to set [debugCheckIntrinsicSizes] to true in your unit tests if you /// do override any of these methods, which will add additional checks to /// help validate your implementation. /// /// In addition, if the box has any children, it must implement /// [computeDistanceToActualBaseline]. [RenderProxyBox] provides a simple /// implementation that forwards to the child; [RenderShiftedBox] provides an /// implementation that offsets the child's baseline information by the position /// of the child relative to the parent. If you do not inherited from either of /// these classes, however, you must implement the algorithm yourself.ÀüEÀü.Àü.ÀüDÀüWÀüXÀü`$ÀükÀükÀüƒÀL·$ÀL¼ÀL¼ÀLÖÀaD&ÀaIÀaIÀaeÀmÄ2ÀmÐÀmÐÀmòÀ€” À€šÀ€šÀ—–'À—¢À—¢À—¸ÀÀÀÀ-ÀsCkÀs•Às•E/// Whether this render object has undergone layout and has a [size].Às´ŒÚÀuñÀuñ‚/// The size of this render box computed during layout. /// /// This value is stale whenever this object is marked as needing layout. /// During [performLayout], do not read the size of a child unless you pass /// true for parentUsesSize when calling the child's [layout] function. /// /// The size of a box should be set only during the box's [performLayout] or /// [performResize] functions. If you wish to change the size of a box outside /// of those functions, call [markNeedsLayout] instead to schedule a layout of /// the box.À–³;À–ÉÀ–ÉÀ–³À–´Àª3€–Àª–Àª–?/// The box constraints most recently received from the parent.ÀªvÀªwÀ Zƒ À EÀ E‚­/// Returns a rectangle that contains all the pixels painted by this box. /// /// The paint bounds can be larger or smaller than [size], which is the amount /// of space this box takes up during layout. For example, if this box casts a /// shadow, that shadow might extend beyond the space allocated to this box /// during layout. /// /// The paint bounds are used to size the buffers into which this box paints. /// If the box attempts to paints outside its paint bounds, there might not be /// enough memory allocated to represent the box's visual appearance, which /// can lead to undefined behavior. /// /// The returned paint bounds are in the local coordinate system of this box.À /À 0À€¦ˆ`À�«À�«€é/// Setting the size, in debug mode, triggers some analysis of the render box, /// as implemented by [debugAssertDoesMeetConstraints], including calling the intrinsic /// sizing methods and checking that they meet certain invariants.À�° À�¶À�µÀ�™À�š*Àûg€§ÀûyÀûyÀû‰Àû¡Àû ÀûgÀûhÀü‰‚£Àü�Àü�Àü£Àü£Àü£Àü¹Àü¹Àü¹ÀüÇ,ÀüðÀüïÀüú ÀýÀýÀý Àý$Àý#Àÿ2„3Àÿ9Àÿ9ÀÿNÀÿNÀÿNÀÿdÀÿdÀÿdÀÿr,Àÿ›ÀÿšÀÿ¥ Àÿ¬Àÿ«Àÿ·ÀÿÏÀÿÎÀk†#À¯À¯‚ý/// Returns the minimum width that this box could be without failing to /// correctly paint its contents within itself, without clipping. /// /// The height argument may give a specific height to assume. The given height /// can be infinite, meaning that the intrinsic width in an unconstrained /// environment is being requested. The given height should never be negative /// or null. /// /// This function should only be called on one's children. Calling this /// function couples the child with the parent so that when the child's layout /// changes, the parent is notified (via [markNeedsLayout]). /// /// Calling this function is expensive as it can result in O(N^2) behavior. /// /// Do not override this method. Instead, implement [computeMinIntrinsicWidth].ÀÄ ÀÌÀËÀ–À—À ”•ÀjÀj“—/// Computes the value returned by [getMinIntrinsicWidth]. Do not call this /// function directly, instead, call [getMinIntrinsicWidth]. /// /// Override in subclasses that implement [performLayout]. This method should /// return the minimum width that this box could be without failing to /// correctly paint its contents within itself, without clipping. /// /// If the layout algorithm is independent of the context (e.g. it always /// tries to be a particular size), or if the layout algorithm is /// width-in-height-out, or if the layout algorithm uses both the incoming /// width and height constraints (e.g. it always sizes itself to /// [BoxConstraints.biggest]), then the `height` argument should be ignored. /// /// If the layout algorithm is strictly height-in-width-out, or is /// height-in-width-out when the width is unconstrained, then the height /// argument is the height to use. /// /// The `height` argument will never be negative or null. It may be infinite. /// /// If this algorithm depends on the intrinsic dimensions of a child, the /// intrinsic dimensions of that child should be obtained using the functions /// whose names start with `get`, not `compute`. /// /// This function should never return a negative or infinite value. /// /// Be sure to set [debugCheckIntrinsicSizes] to true in your unit tests if /// you do override this method, which will add additional checks to help /// validate your implementation. /// /// ## Examples /// /// ### Text /// /// English text is the canonical example of a width-in-height-out algorithm. /// The `height` argument is therefore ignored. /// /// Consider the string "Hello World". The _maximum_ intrinsic width (as /// returned from [computeMaxIntrinsicWidth]) would be the width of the string /// with no line breaks. /// /// The minimum intrinsic width would be the width of the widest word, "Hello" /// or "World". If the text is rendered in an even narrower width, however, it /// might still not overflow. For example, maybe the rendering would put a /// line-break half-way through the words, as in "Helâ�žloâ�žWorâ�žld". However, /// this wouldn't be a _correct_ rendering, and [computeMinIntrinsicWidth] is /// defined as returning the minimum width that the box could be without /// failing to _correctly_ paint the contents within itself. /// /// The minimum intrinsic _height_ for a given width _smaller_ than the /// minimum intrinsic width could therefore be greater than the minimum /// intrinsic height for the minimum intrinsic width. /// /// ### Viewports (e.g. scrolling lists) /// /// Some render boxes are intended to clip their children. For example, the /// render box for a scrolling list might always size itself to its parents' /// size (or rather, to the maximum incoming constraints), regardless of the /// children's sizes, and then clip the children and position them based on /// the current scroll offset. /// /// The intrinsic dimensions in these cases still depend on the children, even /// though the layout algorithm sizes the box in a way independent of the /// children. It is the size that is needed to paint the box's contents (in /// this case, the children) _without clipping_ that matters. /// /// ### When the intrinsic dimensions cannot be known /// /// There are cases where render objects do not have an efficient way to /// compute their intrinsic dimensions. For example, it may be prohibitively /// expensive to reify and measure every child of a lazy viewport (viewports /// generally only instantiate the actually visible children), or the /// dimensions may be computed by a callback about which the render object /// cannot reason. /// /// In such cases, it may be impossible (or at least impractical) to actually /// return a valid answer. In such cases, the intrinsic functions should throw /// when [RenderObject.debugCheckingIntrinsics] is false and asserts are /// enabled, and return 0.0 otherwise. /// /// See the implementations of [LayoutBuilder] or [RenderViewportBase] for /// examples (in particular, /// [RenderViewportBase.debugThrowIfNotCheckingIntrinsics]). /// /// ### Aspect-ratio-driven boxes /// /// Some boxes always return a fixed size based on the constraints. For these /// boxes, the intrinsic functions should return the appropriate size when the /// incoming `height` or `width` argument is finite, treating that as a tight /// constraint in the respective direction and treating the other direction's /// constraints as unbounded. This is because the definitions of /// [computeMinIntrinsicWidth] and [computeMinIntrinsicHeight] are in terms of /// what the dimensions _could be_, and such boxes can only be one size in /// such cases. /// /// When the incoming argument is not finite, then they should return the /// actual intrinsic dimensions based on the contents, as any other box would. /// /// See also: /// /// * [computeMaxIntrinsicWidth], which computes the smallest width beyond /// which increasing the width never decreases the preferred height.Àƒ À‹ÀŠÀUÀVÀ¯†vÀ"FÀ"FƒJ/// Returns the smallest width beyond which increasing the width never /// decreases the preferred height. The preferred height is the value that /// would be returned by [getMinIntrinsicHeight] for that width. /// /// The height argument may give a specific height to assume. The given height /// can be infinite, meaning that the intrinsic width in an unconstrained /// environment is being requested. The given height should never be negative /// or null. /// /// This function should only be called on one's children. Calling this /// function couples the child with the parent so that when the child's layout /// changes, the parent is notified (via [markNeedsLayout]). /// /// Calling this function is expensive as it can result in O(N^2) behavior. /// /// Do not override this method. Instead, implement /// [computeMaxIntrinsicWidth].À"[ À"cÀ"bÀ"-À".À%+‡—À,ƒÀ,ƒ†½/// Computes the value returned by [getMaxIntrinsicWidth]. Do not call this /// function directly, instead, call [getMaxIntrinsicWidth]. /// /// Override in subclasses that implement [performLayout]. This should return /// the smallest width beyond which increasing the width never decreases the /// preferred height. The preferred height is the value that would be returned /// by [computeMinIntrinsicHeight] for that width. /// /// If the layout algorithm is strictly height-in-width-out, or is /// height-in-width-out when the width is unconstrained, then this should /// return the same value as [computeMinIntrinsicWidth] for the same height. /// /// Otherwise, the height argument should be ignored, and the returned value /// should be equal to or bigger than the value returned by /// [computeMinIntrinsicWidth]. /// /// The `height` argument will never be negative or null. It may be infinite. /// /// The value returned by this method might not match the size that the object /// would actually take. For example, a [RenderBox] subclass that always /// exactly sizes itself using [BoxConstraints.biggest] might well size itself /// bigger than its max intrinsic size. /// /// If this algorithm depends on the intrinsic dimensions of a child, the /// intrinsic dimensions of that child should be obtained using the functions /// whose names start with `get`, not `compute`. /// /// This function should never return a negative or infinite value. /// /// Be sure to set [debugCheckIntrinsicSizes] to true in your unit tests if /// you do override this method, which will add additional checks to help /// validate your implementation. /// /// See also: /// /// * [computeMinIntrinsicWidth], which has usage examples.À,œ À,¤À,£À,UÀ,VÀ,nÀ,oÀ,Ȇ*À0À0ƒ/// Returns the minimum height that this box could be without failing to /// correctly paint its contents within itself, without clipping. /// /// The width argument may give a specific width to assume. The given width /// can be infinite, meaning that the intrinsic height in an unconstrained /// environment is being requested. The given width should never be negative /// or null. /// /// This function should only be called on one's children. Calling this /// function couples the child with the parent so that when the child's layout /// changes, the parent is notified (via [markNeedsLayout]). /// /// Calling this function is expensive as it can result in O(N^2) behavior. /// /// Do not override this method. Instead, implement /// [computeMinIntrinsicHeight].À0( À00À0/À/ùÀ/úÀ2ø‡SÀ: À: †/// Computes the value returned by [getMinIntrinsicHeight]. Do not call this /// function directly, instead, call [getMinIntrinsicHeight]. /// /// Override in subclasses that implement [performLayout]. Should return the /// minimum height that this box could be without failing to correctly paint /// its contents within itself, without clipping. /// /// If the layout algorithm is independent of the context (e.g. it always /// tries to be a particular size), or if the layout algorithm is /// height-in-width-out, or if the layout algorithm uses both the incoming /// height and width constraints (e.g. it always sizes itself to /// [BoxConstraints.biggest]), then the `width` argument should be ignored. /// /// If the layout algorithm is strictly width-in-height-out, or is /// width-in-height-out when the height is unconstrained, then the width /// argument is the width to use. /// /// The `width` argument will never be negative or null. It may be infinite. /// /// If this algorithm depends on the intrinsic dimensions of a child, the /// intrinsic dimensions of that child should be obtained using the functions /// whose names start with `get`, not `compute`. /// /// This function should never return a negative or infinite value. /// /// Be sure to set [debugCheckIntrinsicSizes] to true in your unit tests if /// you do override this method, which will add additional checks to help /// validate your implementation. /// /// See also: /// /// * [computeMinIntrinsicWidth], which has usage examples. /// * [computeMaxIntrinsicHeight], which computes the smallest height beyond /// which increasing the height never decreases the preferred width.À:& À:.À:-À9ÞÀ9ßÀ9÷À9øÀ:Q†uÀ=æÀ=æƒH/// Returns the smallest height beyond which increasing the height never /// decreases the preferred width. The preferred width is the value that /// would be returned by [getMinIntrinsicWidth] for that height. /// /// The width argument may give a specific width to assume. The given width /// can be infinite, meaning that the intrinsic height in an unconstrained /// environment is being requested. The given width should never be negative /// or null. /// /// This function should only be called on one's children. Calling this /// function couples the child with the parent so that when the child's layout /// changes, the parent is notified (via [markNeedsLayout]). /// /// Calling this function is expensive as it can result in O(N^2) behavior. /// /// Do not override this method. Instead, implement /// [computeMaxIntrinsicHeight].À=ü À>À>À=ÍÀ=ÎÀ@̇”ÀH!ÀH!†º/// Computes the value returned by [getMaxIntrinsicHeight]. Do not call this /// function directly, instead, call [getMaxIntrinsicHeight]. /// /// Override in subclasses that implement [performLayout]. Should return the /// smallest height beyond which increasing the height never decreases the /// preferred width. The preferred width is the value that would be returned /// by [computeMinIntrinsicWidth] for that height. /// /// If the layout algorithm is strictly width-in-height-out, or is /// width-in-height-out when the height is unconstrained, then this should /// return the same value as [computeMinIntrinsicHeight] for the same width. /// /// Otherwise, the width argument should be ignored, and the returned value /// should be equal to or bigger than the value returned by /// [computeMinIntrinsicHeight]. /// /// The `width` argument will never be negative or null. It may be infinite. /// /// The value returned by this method might not match the size that the object /// would actually take. For example, a [RenderBox] subclass that always /// exactly sizes itself using [BoxConstraints.biggest] might well size itself /// bigger than its max intrinsic size. /// /// If this algorithm depends on the intrinsic dimensions of a child, the /// intrinsic dimensions of that child should be obtained using the functions /// whose names start with `get`, not `compute`. /// /// This function should never return a negative or infinite value. /// /// Be sure to set [debugCheckIntrinsicSizes] to true in your unit tests if /// you do override this method, which will add additional checks to help /// validate your implementation. /// /// See also: /// /// * [computeMinIntrinsicWidth], which has usage examples.ÀH; ÀHCÀHBÀGóÀGôÀH ÀH ÀHf„KÀLÀLƒ`/// Returns the [Size] that this [RenderBox] would like to be given the /// provided [BoxConstraints]. /// /// The size returned by this method is guaranteed to be the same size that /// this [RenderBox] computes for itself during layout given the same /// constraints. /// /// This function should only be called on one's children. Calling this /// function couples the child with the parent so that when the child's layout /// changes, the parent is notified (via [markNeedsLayout]). /// /// This layout is called "dry" layout as opposed to the regular "wet" layout /// run performed by [performLayout] because it computes the desired size for /// the given constraints without changing any internal state. /// /// Calling this function is expensive as it can result in O(N^2) behavior. /// /// Do not override this method. Instead, implement [computeDryLayout].ÀL!$ÀL;ÀL:ÀKýÀKþÀLà�…ÀLåÀLåÀL÷ÀMÀMÀNkˆ€ÀT”ÀT”…¥/// Computes the value returned by [getDryLayout]. Do not call this /// function directly, instead, call [getDryLayout]. /// /// Override in subclasses that implement [performLayout] or [performResize] /// or when setting [sizedByParent] to true without overriding /// [performResize]. This method should return the [Size] that this /// [RenderBox] would like to be given the provided [BoxConstraints]. /// /// The size returned by this method must match the [size] that the /// [RenderBox] will compute for itself in [performLayout] (or /// [performResize], if [sizedByParent] is true). /// /// If this algorithm depends on the size of a child, the size of that child /// should be obtained using its [getDryLayout] method. /// /// This layout is called "dry" layout as opposed to the regular "wet" layout /// run performed by [performLayout] because it computes the desired size for /// the given constraints without changing any internal state. /// /// ### When the size cannot be known /// /// There are cases where render objects do not have an efficient way to /// compute their size. For example, the size may computed by a callback about /// which the render object cannot reason. /// /// In such cases, it may be impossible (or at least impractical) to actually /// return a valid answer. In such cases, the function should call /// [debugCannotComputeDryLayout] from within an assert and return a dummy /// value of `const Size(0, 0)`.ÀT¥$ÀT¿ÀT¾ÀThÀTiÀT�ÀT‚ÀVñŠMÀ^[À^[‡ /// Returns the distance from the top of the box to the first baseline of the /// box's contents for the given `constraints`, or `null` if this [RenderBox] /// does not have any baselines. /// /// This method calls [computeDryBaseline] under the hood and caches the result. /// [RenderBox] subclasses typically don't overridden [getDryBaseline]. Instead, /// consider overriding [computeDryBaseline] such that it returns a baseline /// location that is consistent with [getDistanceToActualBaseline]. See the /// documentation for the [computeDryBaseline] method for more details. /// /// This method is usually called by the [computeDryBaseline] or the /// [computeDryLayout] implementation of a parent [RenderBox] to get the /// baseline location of a [RenderBox] child. Unlike [getDistanceToBaseline], /// this method takes a [BoxConstraints] as an argument and computes the /// baseline location as if the [RenderBox] was laid out by the parent using /// that [BoxConstraints]. /// /// The "dry" in the method name means this method, like [getDryLayout], has /// no observable side effects when called, as opposed to "wet" layout methods /// such as [performLayout] (which changes this [RenderBox]'s [size], and the /// offsets of its children if any). Since this method does not depend on the /// current layout, unlike [getDistanceToBaseline], it's ok to call this method /// when this [RenderBox]'s layout is outdated. /// /// Similar to the intrinsic width/height and [getDryLayout], calling this /// function in [performLayout] is expensive, as it can result in O(N^2) layout /// performance, where N is the number of render objects in the render subtree. /// Typically this method should be only called by the parent [RenderBox]'s /// [computeDryBaseline] or [computeDryLayout] implementation.À^j$À^„À^ƒÀ^�À^žÀ^�Àao�ÃÀa~Àa~Àa’#Àa²Àa±Àc8ІÀkQÀkQ‡Œ/// Computes the value returned by [getDryBaseline]. /// /// This method is for overriding only and shouldn't be called directly. To /// get this [RenderBox]'s speculative baseline location for the given /// `constraints`, call [getDryBaseline] instead. /// /// The "dry" in the method name means the implementation must not produce /// observable side effects when called. For example, it must not change the /// [size] of the [RenderBox], or its children's paint offsets, otherwise that /// would results in UI changes when [paint] is called, or hit-testing behavior /// changes when [hitTest] is called. Moreover, accessing the current layout /// of this [RenderBox] or child [RenderBox]es (including accessing [size], or /// `child.size`) usually indicates a bug in the implementation, as the current /// layout is typically calculated using a set of [BoxConstraints] that's /// different from the `constraints` given as the first parameter. To get the /// size of this [RenderBox] or a child [RenderBox] in this method's /// implementation, use the [getDryLayout] method instead. /// /// The implementation must return a value that represents the distance from /// the top of the box to the first baseline of the box's contents, for the /// given `constraints`, or `null` if the [RenderBox] has no baselines. It's /// the same exact value [RenderBox.computeDistanceToActualBaseline] would /// return, when this [RenderBox] was laid out at `constraints` in the same /// exact state. /// /// Not all [RenderBox]es support dry baseline computation. For example, to /// compute the dry baseline of a [LayoutBuilder], its `builder` may have to /// be called with different constraints, which may have side effects such as /// updating the widget tree, violating the "dry" contract. In such cases the /// [RenderBox] must call [debugCannotComputeDryLayout] in an assert, and /// return a dummy baseline offset value (such as `null`).Àkd$Àk~Àk}ÀkŠÀk˜Àk—Àk"Àk#Àk;Àk<Àmý…@Àp|Àp|‚O/// Called from [computeDryLayout] or [computeDryBaseline] within an assert if /// the given [RenderBox] subclass does not support calculating a dry layout. /// /// When asserts are enabled and [debugCheckingIntrinsics] is not true, this /// method will either throw the provided [FlutterError] or it will create and /// throw a [FlutterError] with the provided `reason`. Otherwise, it will /// return true. /// /// One of the arguments has to be provided. /// /// See also: /// /// * [computeDryLayout], which lists some reasons why it may not be feasible /// to compute the dry layout.Àp™Àp¢Àp¡Àp©Àp¸Àp·À‰ �¡ÀŒ@ÀŒ@ƒ/// Claims ownership of the given [Size]. /// /// In debug mode, the [RenderBox] class verifies that [Size] objects obtained /// from other [RenderBox] objects are only used according to the semantics of /// the [RenderBox] protocol, namely that a [Size] from a [RenderBox] can only /// be used by its parent, and then only if `parentUsesSize` was set. /// /// Sometimes, a [Size] that can validly be used ends up no longer being valid /// over time. The common example is a [Size] taken from a child that is later /// removed from the parent. In such cases, this method can be called to first /// check whether the size can legitimately be used, and if so, to then create /// a new [Size] that can be used going forward, regardless of what happens to /// the original owner.ÀŒO ÀŒUÀŒTÀ–ô€œÀ—À—À–ôÀ–õÀ—ÂiÀ—ÎÀ—ÎÀ—å À—ëÀ—êÀ˜1ˆØÀœ‘Àœ‘„/// Returns the distance from the y-coordinate of the position of the box to /// the y-coordinate of the first given baseline in the box's contents. /// /// Used by certain layout models to align adjacent boxes on a common /// baseline, regardless of padding, font size differences, etc. If there is /// no baseline, this function returns the distance from the y-coordinate of /// the position of the box to the y-coordinate of the bottom of the box /// (i.e., the height of the box) unless the caller passes true /// for `onlyReal`, in which case the function returns null. /// /// Only call this function after calling [layout] on this box. You /// are only allowed to call this from the parent of this box during /// that parent's [performLayout] or [paint] functions. /// /// When implementing a [RenderBox] subclass, to override the baseline /// computation, override [computeDistanceToActualBaseline]. /// /// See also: /// /// * [getDryBaseline], which returns the baseline location of this /// [RenderBox] at a certain [BoxConstraints].Àœ§ÀœµÀœ´Àœ¿ÀœÅÀœÄÀœÏÀ¡ƒ À¢BÀ¢B€û/// Calls [computeDistanceToActualBaseline] and caches the result. /// /// This function must only be called from [getDistanceToBaseline] and /// [computeDistanceToActualBaseline]. Do not call this function directly from /// outside those two methods.À¢^À¢lÀ¢kÀ¢À¢À¢(À¢)À¤ † À©-À©-„•/// Returns the distance from the y-coordinate of the position of the box to /// the y-coordinate of the first given baseline in the box's contents, if /// any, or null otherwise. /// /// Do not call this function directly. If you need to know the baseline of a /// child from an invocation of [performLayout] or [paint], call /// [getDistanceToBaseline]. /// /// Subclasses should override this method to supply the distances to their /// baselines. When implementing this method, there are generally three /// strategies: /// /// * For classes that use the [ContainerRenderObjectMixin] child model, /// consider mixing in the [RenderBoxContainerDefaultsMixin] class and /// using /// [RenderBoxContainerDefaultsMixin.defaultComputeDistanceToFirstActualBaseline]. /// /// * For classes that define a particular baseline themselves, return that /// value directly. /// /// * For classes that have a child to which they wish to defer the /// computation, call [getDistanceToActualBaseline] on the child (not /// [computeDistanceToActualBaseline], the internal implementation, and not /// [getDistanceToBaseline], the public entry point for this API).À©MÀ©[À©ZÀ¨þÀ¨ÿÀ©À©ÀªÏ¡ ÀªáÀªáÀªÏÀªÐÀËâŒQÀËçÀËçÀØ9„šÀØKÀØKÀØ9ÀØ:ÀÜÙ�ÈÀÝýÀÝý�/// {@macro flutter.rendering.RenderObject.performResize} /// /// By default this method sets [size] to the result of [computeDryLayout] /// called with the current [constraints]. Instead of overriding this method, /// consider overriding [computeDryLayout].ÀÝëÀÝìÀÞ§‚ÀÞ¹ÀÞ¹ÀÞ§ÀÞ¨ÀàÅ�Àæ�Àæ�…Š/// Determines the set of render objects located at the given position. /// /// Returns true, and adds any render objects that contain the point to the /// given hit test result, if this render object or one of its descendants /// absorbs the hit (preventing objects below this one from being hit). /// Returns false if the hit can continue to other objects below this one. /// /// The caller is responsible for transforming [position] from global /// coordinates to its location relative to the origin of this [RenderBox]. /// This [RenderBox] is responsible for checking whether the given position is /// within its bounds. /// /// If transforming is necessary, [BoxHitTestResult.addWithPaintTransform], /// [BoxHitTestResult.addWithPaintOffset], or /// [BoxHitTestResult.addWithRawTransform] need to be invoked by the caller /// to record the required transform operations in the [HitTestResult]. These /// methods will also help with applying the transform to `position`. /// /// Hit testing requires layout to be up-to-date but does not require painting /// to be up-to-date. That means a render object can rely upon [performLayout] /// having been called in [hitTest] but cannot rely upon [paint] having been /// called. For example, a render object might be a child of a [RenderOpacity] /// object, which calls [hitTest] on its children when its opacity is zero /// even though it does not [paint] its children.Àæ¥Àæ·Àæ¶Àæ¿ÀæÐÀæÏÀíÙ‚¬Àð_Àð_‚K/// Override this method if this render object can be hit even if its /// children were not hit. /// /// Returns true if the specified `position` should be considered a hit /// on this render object. /// /// The caller is responsible for transforming [position] from global /// coordinates to its location relative to the origin of this [RenderBox]. /// This [RenderBox] is responsible for checking whether the given position is /// within its bounds. /// /// Used by [hitTest]. If you override [hitTest] and do not call this /// function, then you don't need to implement this function.ÀðkÀðsÀðrÀðLÀðMÀð‹…FÀõƒÀõƒ„Ÿ/// Override this method to check whether any children are located at the /// given position. /// /// Subclasses should return true if at least one child reported a hit at the /// specified position. /// /// Typically children should be hit-tested in reverse paint order so that /// hit tests at locations where children overlap hit the child that is /// visually "on top" (i.e., paints later). /// /// The caller is responsible for transforming [position] from global /// coordinates to its location relative to the origin of this [RenderBox]. /// Likewise, this [RenderBox] is responsible for transforming the position /// that it passes to its children when it calls [hitTest] on each child. /// /// If transforming is necessary, [BoxHitTestResult.addWithPaintTransform], /// [BoxHitTestResult.addWithPaintOffset], or /// [BoxHitTestResult.addWithRawTransform] need to be invoked by subclasses to /// record the required transform operations in the [BoxHitTestResult]. These /// methods will also help with applying the transform to `position`. /// /// Used by [hitTest]. If you override [hitTest] and do not call this /// function, then you don't need to implement this function.Àõ“Àõ¥Àõ¤Àõ­Àõ¾Àõ½ÀõpÀõqÀõׇ®Àø5Àø5‚-/// Multiply the transform from the parent's coordinate system to this box's /// coordinate system into the given transform. /// /// This function is used to convert coordinate systems between boxes. /// Subclasses that apply transforms during painting should override this /// function to factor those transforms into the calculation. /// /// The [RenderBox] implementation takes care of adjusting the matrix for the /// position of the given child as determined during layout and stored on the /// child's [parentData] in the [BoxParentData.offset] field.ÀøIÀøWÀøVÀø]ÀøfÀøeÀø#Àø$Àý‹ˆÓÀfÀf‚©/// Convert the given point from the global coordinate system in logical pixels /// to the local coordinate system for this box. /// /// This method will un-project the point from the screen onto the widget, /// which makes it different from [MatrixUtils.transformPoint]. /// /// If the transform from global coordinates to local coordinates is /// degenerate, this function returns [Offset.zero]. /// /// If `ancestor` is non-null, this function converts the given point from the /// coordinate system of `ancestor` (which must be an ancestor of this render /// object) instead of from the global coordinate system. /// /// This method is implemented in terms of [getTransformTo].Àt À|À{ÀƒÀ’À‘Àd‚ðÀÏÀÏ‚E/// Convert the given point from the local coordinate system for this box to /// the global coordinate system in logical pixels. /// /// If `ancestor` is non-null, this function converts the given point to the /// coordinate system of `ancestor` (which must be an ancestor of this render /// object) instead of to the global coordinate system. /// /// This method is implemented in terms of [getTransformTo]. If the transform /// matrix puts the given `point` on the line at infinity (for instance, when /// the transform matrix is the zero matrix), this method returns (NaN, NaN).ÀÝ ÀåÀäÀìÀûÀúÀ mƒŸÀ©À©‚ç/// Override this method to handle pointer events that hit this render object. /// /// For [RenderBox] objects, the `entry` argument is a [BoxHitTestEntry]. From this /// object you can determine the [PointerDownEvent]'s position in local coordinates. /// (This is useful because [PointerEvent.position] is in global coordinates.) /// /// Implementations of this method should call [debugHandleEvent] as follows, /// so that they support [debugPaintPointersEnabled]: /// /// ```dart /// class RenderFoo extends RenderBox { /// // ... /// /// @override /// void handleEvent(PointerEvent event, HitTestEntry entry) { /// assert(debugHandleEvent(event, entry)); /// // ... handle the event ... /// } /// /// // ... /// } /// ```ÀµÀÃÀÂÀÉÀÚÀÙÀ—À˜À5„UÀîÀî‚t/// Implements the [debugPaintPointersEnabled] debugging feature. /// /// [RenderBox] subclasses that implement [handleEvent] should call /// [debugHandleEvent] from their [handleEvent] method, as follows: /// /// ```dart /// class RenderFoo extends RenderBox { /// // ... /// /// @override /// void handleEvent(PointerEvent event, HitTestEntry entry) { /// assert(debugHandleEvent(event, entry)); /// // ... handle the event ... /// } /// /// // ... /// } /// ``` /// /// If you call this for a [PointerDownEvent], make sure you also call it for /// the corresponding [PointerUpEvent] or [PointerCancelEvent].ÀÿÀ À ÀÀ!À À�…^À¢À¢À­À¾À½ÀÆ ÀÎÀÍÀ�À‘Àô‚À¬À¬€…/// In debug mode, paints a border around this render box. /// /// Called for every [RenderBox] when [debugPaintSizeEnabled] is true.À»ÀÌÀËÀÔ ÀÜÀÛÀƒÀ„À‘À’À„ÛÀ¯À¯€ƒ/// In debug mode, paints a line for each baseline. /// /// Called for every [RenderBox] when [debugPaintBaselinesEnabled] is true.ÀÃÀÔÀÓÀÜ ÀäÀãÀœÀ�À ð‚¶À"hÀ"h�O/// In debug mode, paints a rectangle if this render box has counted more /// pointer downs than pointer up events. /// /// Called for every [RenderBox] when [debugPaintPointersEnabled] is true. /// /// By default, events are not counted. For details on how to ensure that /// events are counted for your class, see [debugHandleEvent].À"{À"ŒÀ"‹À"” À"œÀ"›À"UÀ"VÀ#¬€ÔÀ#¾À#¾À#Ò&À#ïÀ#îÀ#¬À#­À¤¢ƒÀ¤§À¤§À¤ôÀ¤ôÀ¤ôÀ¥À¥À¥À¥ À¥À¥À¥ À¥À¥À¥,�À¥@À¥@À¥H À¥]À¥\À¥j À¥rÀ¥qÀ¥x À¥‘À¥�À¥,À¥-À¦G€ûÀ¦hÀ¦hÀ¦‰%À¦žÀ¦�À¦µ À¦½À¦¼À¦GÀ¦HÀ§H]À§\À§\À§gÀ§rÀ§qÀ§HÀ§IÀ�K…¸À�§À�§E/// A wrapper that represents the baseline location of a `RenderBox`.À�µÀ�§À�§À�µÀ�¶À�¾À�¾À�Ë�¬À’VÀ’V�Y/// A value that indicates that the associated `RenderBox` does not have any /// baselines. /// /// [BaselineOffset.noBaseline] is an identity element in most binary /// operations involving two [BaselineOffset]s (such as [minOf]), for render /// objects with no baselines typically do not contribute to the baseline /// offset of their parents.À’cÀ’qÀ’vÀ’rÀ’~�2À“.À“.€‘/// Returns a new baseline location that is `offset` pixels further away from /// the origin than `this`, or unchanged if `this` is [noBaseline].À“0 À“8À“7À“¶‚JÀ”üÀ”ü�$/// Compares this [BaselineOffset] and `other`, and returns whichever is closer /// to the origin. /// /// When both `this` and `other` are [noBaseline], this method returns /// [noBaseline]. When one of them is [noBaseline], this method returns the /// other operand that's not [noBaseline].À•À•À•Àd �fÀe-Àe-�/// Method signature for hit testing a [RenderBox]. /// /// Used by [BoxHitTestResult.addWithPaintTransform] to hit test children /// of a [RenderBox]. /// /// See also: /// /// * [RenderBox.hitTest], which documents more details around hit testing /// [RenderBox]es.ÀeHÀeZÀeYÀeaÀeiÀehÀev�ÆÀfóÀfó�j/// Method signature for hit testing a [RenderBox] with a manually /// managed position (one that is passed out-of-band). /// /// Used by [RenderSliverSingleBoxAdapter.hitTestBoxChild] to hit test /// [RenderBox] children of a [RenderSliver]. /// /// See also: /// /// * [RenderBox.hitTest], which documents more details around hit testing /// [RenderBox]es.Àg#Àg5Àg4À$‡�úÀ%¿À%¿�+/// A mixin that provides useful default behaviors for boxes with children /// managed by the [ContainerRenderObjectMixin] mixin. /// /// By convention, this class doesn't override any members of the superclass. /// Instead, it provides helpful functions that subclasses can call as /// appropriate.À%ãÀ%ãÀ%ãÀ&8À&À&À&Š‚§À'JÀ'J€«/// Returns the baseline of the first child with a baseline. /// /// Useful when the children are displayed vertically in the same order they /// appear in the child list.À'vÀ'„À'ƒÀ)7ƒ À)ôÀ)ô€¨/// Returns the minimum baseline value among every child. /// /// Useful when the vertical position of the children isn't determined by the /// order in the child list.À*"À*0À*/À,H„…À-ÁÀ-Á�X/// Performs a hit test on each child by walking the child list backwards. /// /// Stops walking once after the first child reports that it contains the /// given point. Returns whether any children contain the given point. /// /// See also: /// /// * [defaultPaint], which paints the children appropriate for this /// hit-testing strategy.À-ØÀ-êÀ-éÀ-òÀ.À.À0Ó‚5À1ÃÀ1ÀØ/// Paints each child by walking the child list forwards. /// /// See also: /// /// * [defaultHitTestChildren], which implements hit-testing of the children /// in a manner appropriate for this painting strategy.À1ÐÀ1áÀ1àÀ1é À1ñÀ1ðÀ3‚pÀ4/À4/�/// Returns a list containing the children of this render object. /// /// This function is useful when you need random-access to the children of /// this render object. If you're accessing the children in order, consider /// walking the child list directly.€²package:flutter/widgets.dart€ç image.dart�paragraph.dart�'proxy_box.dart�Ishifted_box.dart�m sliver.dart�Œ viewport.dart�A=€ˆ€§€©€Ù€Þ€ü��@�d�ƒ�¤�®�°�Í‚‚ ‚4‚]‚_‚’‚”‚ª‚Á‚Â܃ƒ.ƒMƒOƒƒƒ¤ƒö„„3„6„8„r„w„DŽ܄á……D…I…‡…Œ…Ȇ† †H†M†j†o†¾‡‡B‡G‡™‡ãˆ4ˆ9ˆ‚ˆ¤ˆ©ˆó‰B‰Ž‰“‰áŠ.Š|ЏнŠÑŠÖ‹&‹\‹§‹Ú‹ßŒ+Œ}Œ¶Œ»��0�5�‚�ÒŽ ŽŽ`ޝŽéŽî�=�y�Å�Û��B�\�v�œ�·�Þ�å�ç‘0‘S‘q‘�‘¯‘ϑђ’’0’7’‚’Ï’ã“%“E“q“““Á“Ô”.”5”F”M”˜”é••7•]•˜•ß––g–i–¶–Ù–ð——&—F—H—”—›—蘘S˜˜«˜Ù™™ ™O™•™½™åšš9š;štšŽš�šÉšÐšó› ››I›d›f› ›§›Ê›å›çœMœjœ�œ˜œ°œÈœÐœì��D�s�¢�ª�¯�±žž9ž\ž�žºŸŸPŸlŸ�ŸÓŸø = E J L ¦ Ã æ¡,¡1¡3¡…¡¾¡ö¢¢f¢º££j£r£w£y£É¤¤3¤p¤Œ¤à¥4¥Ž¥è¥ð¥õ¥÷¦?¦_¦{¦—¦³¦Ï¦ë¦ó¦ø¦ú§B§_§¿§Á¨ ¨&¨‹¨�¨Ý©©>©a©•©š©œ©íªªQªtª«ª°ª²ªíªþ««k«t«ˆ«“«§«¬«®«ý¬ ¬'¬8¬?¬„¬¶¬Õ­(­9­q­…­�­¤­©­«­ú®)®0®‚®©®ä¯&¯+¯-¯}¯„¯·°°°m°”°Ö°ê± ±±V±l±y±�±–±˜±±±Ð±×±Ù±ù²²K²M²j²ƒ²¨²¯²±²Ð²ë³³³³6³O³t³{³}³œ³·³Ü³ã³å´.´?´w´‹´–´ª´¯´±´éµ+µ-µfµ¯µ±¶¶4¶6¶‡¶½¶¿···M·O·Œ·“·¤·«·ï¸7¸Y¸”¸–¸Ô¸Û¸ì¸ó¹8¹‚¹¤¹á¹ãºººkº¹» »X»~»…»–»�»â¼)¼I¼†¼ˆ¼º¼Á½½]½®½ü¾"¾)¾:¾A¾‡¾Ð¾ð¿/¿1¿j¿�¿°¿Ø¿ýÀ@$À@IÀ@NÀ@PÀ@�À@»À@×À@ûÀAÀAEÀAkÀAsÀAxÀAzÀAÆÀAôÀBÀB4ÀBXÀB~ÀB¤ÀB¬ÀB±ÀB³ÀCÀCNÀCjÀCœÀCÎÀDÀD6ÀD>ÀDCÀDEÀD”ÀDÁÀDÝÀEÀE#ÀEHÀEmÀEuÀEzÀE|ÀE´ÀE»ÀFÀF7ÀF>ÀFbÀF³ÀFÏÀFàÀFçÀFýÀGÀGÀG0ÀGMÀGTÀGyÀGžÀG«ÀGâÀH/ÀH‚ÀHŠÀH—ÀHÎÀIÀInÀIvÀIƒÀI¼ÀJ ÀJ^ÀJfÀJsÀJ¬ÀJûÀKNÀKVÀKrÀKÖÀL:ÀLLÀL­ÀL¿ÀM ÀM(ÀM-ÀM/ÀMoÀM²ÀMÞÀMåÀN*ÀN[ÀNbÀN©ÀNíÀO2ÀOMÀOZÀOuÀOØÀOÝÀOßÀOìÀP ÀP0ÀPaÀPiÀPzÀP¬ÀPåÀPùÀQAÀQqÀQ ÀQ³ÀQëÀQùÀRÀRÀRÀRfÀR¡ÀRÌÀR÷ÀS$ÀSQÀS]ÀS�ÀS»ÀTÀTÀT\ÀT‡ÀTµÀTäÀTðÀUÀUÀU“ÀU¡ÀU­ÀU¶ÀUæÀUûÀVÀVtÀV‚ÀVŽÀV—ÀV´ÀWÀWÀW.ÀW‚ÀW‹ÀWÆÀWÛÀX<ÀXHÀXQÀXsÀXÎÀX×ÀXûÀYWÀY`ÀY‚ÀY¾ÀZ#ÀZ.ÀZRÀZ£ÀZ®ÀZÓÀ[%À[0À[9À[VÀ[jÀ[uÀ[�À[”À[–À[ÌÀ[ÓÀ\%À\nÀ\ŽÀ\§À\»À\ÂÀ] À]WÀ]sÀ]ŽÀ]ÊÀ]çÀ^(À^0À^5À^7À^DÀ^hÀ^‹À^®À^ÂÀ^ÉÀ^öÀ_ À_À_VÀ_}À_¤À_ËÀ_ôÀ`À` À`"À`/À`EÀ`hÀ`«À`°À`²À`¿À`ÖÀaÀaeÀa™Àa ÀaºÀaâÀaýÀb&Àb`ÀbgÀb¢Àb»ÀbíÀböÀcBÀcIÀcKÀcˆÀcÈÀdÀdÀd Àd ÀdAÀdFÀd‘Àd¨Àd­Àd¼ÀdÁÀeÀe%ÀetÀevÀeºÀeòÀe÷Àf?ÀfnÀfsÀf‚Àf‡ÀfÔÀfëÀg>Àg@Àg{Àg€ÀgÐÀgíÀhÀheÀh†ÀhˆÀhÎÀiÀiÀi_Ài°ÀjÀjÀjYÀj¨ÀjÝÀjäÀjõÀjüÀkIÀklÀkºÀlÀl=Àl?ÀlŠÀl¨Àl¯ÀlùÀmCÀmbÀmiÀm·ÀméÀn(ÀnqÀnÁÀnÏÀnÖÀo%ÀosÀoÁÀp ÀpÀp#ÀpnÀp»Àq ÀqXÀq_Àq§Àq®ÀqÅÀrÀr=ÀrDÀrSÀr‡ÀrËÀrÒÀråÀs-ÀsaÀslÀssÀs†ÀsÝÀt Àt:Àt[ÀtžÀtçÀt÷ÀuÀuÀuÀu$Àu7Àu>ÀuOÀuVÀu§ÀuÜÀv-ÀvrÀv’Àv´ÀvÓÀvõÀvýÀwÀwuÀw•ÀwÝÀwôÀwýÀxÀxaÀxfÀxhÀx³ÀxÇÀxÎÀyÀybÀy�ÀyˆÀyØÀzÀzÀz\ÀzcÀz«Àz²ÀzÃÀzÊÀ{À{aÀ{~À{œÀ{»À{ÝÀ{åÀ|<À|WÀ|sÀ|zÀ|¶À|ÑÀ|èÀ|ïÀ}À}À} À}TÀ}rÀ}yÀ}ÃÀ~ À~,À~3À~‚À~ÆÀ~ÍÀÀZÀaÀ©À°ÀÁÀÈÀ€À€>À€\À€~À€�À€¿À€ÇÀ€ïÀ�HÀ�fÀ�‡À�ŽÀ�ÊÀ�èÀ�ÿÀ‚À‚À‚À‚ À‚iÀ‚“À‚šÀ‚äÀƒ,Àƒ?ÀƒFÀƒŽÀƒ•ÀƒÛÀ„À„À„`À„€À„‡À„ÑÀ…À…XÀ…_À…§À…ÈÀ…ÏÀ…ýÀ†À†À†À†pÀ†³À†ÖÀ†ðÀ‡À‡*À‡aÀ‡iÀ‡vÀ‡ÈÀˆÀˆrÀˆ·Àˆ¿ÀˆßÀ‰À‰(À‰LÀ‰ZÀ‰�À‰æÀŠ3ÀŠZÀŠaÀŠˆÀŠ�ÀаÀеÀЏÀŠºÀŠåÀ‹À‹CÀ‹yÀ‹{À‹ÅÀ‹äÀ‹æÀ‹óÀŒ9ÀŒ<ÀŒ>ÀŒwÀŒ|ÀŒ‘ÀŒÖÀ� À�jÀ�£À�¨À�ñÀŽÀŽ,ÀŽ}ÀŽ�ÀŽŸÀެÀŽÖÀŽÙÀŽÛÀ�(À�KÀ�PÀ�™À�»À�À�IÀ�KÀ�’À�ÉÀ‘À‘+À‘2À‘{À‘ËÀ’À’8À’zÀ’|À’ÍÀ“À“BÀ“jÀ“­À“²À“´À”À”À”$À”nÀ”½À”ëÀ•À•@À•ŒÀ•ÅÀ•õÀ•ýÀ–À–À–À–]À–bÀ–±À—À—UÀ—§À—ôÀ˜À˜À˜dÀ˜µÀ™À™QÀ™—À™¬À™±ÀšÀšKÀš‘ÀšÚÀ›À›AÀ›CÀ›¦À›¨ÀœÀœBÀœnÀœ€Àœ†Àœ±Àœ´Àœ¶À� À�!À�#À�0À�AÀ�hÀ�ƒÀ�°À�·ÀžÀž Àž>ÀžFÀžKÀžMÀžZÀž�Àž¹ÀžÔÀžÛÀŸ#ÀŸ(ÀŸ*ÀŸ7ÀŸ�ÀŸ�ÀŸ’ÀŸ©À À À À )À DÀ kÀ –À ÝÀ äÀ¡/À¡QÀ¡©À¡ÌÀ¢À¢&À¢YÀ¢ŒÀ¢‘À¢“À¢ À¢ÓÀ¢ÿÀ£*À£1À£OÀ£zÀ£¤À£©À£«À£¸À¤À¤À¤À¤eÀ¤¢À¤òÀ¤ÿÀ¥ À¥À¥(À¥*À¥7À¥�À¦À¦>À¦CÀ¦EÀ¦RÀ¦…À¦±À¦ÄÀ¦ËÀ¦éÀ§À§?À§DÀ§FÀ§SÀ§§À§ªÀ§¬À§ÏÀ¨À¨OÀ¨’À¨ÏÀ¨ÑÀ©À©CÀ©UÀ©pÀ©©À©çÀª$ÀªYÀª[ÀªpÀª—ÀªÃÀªîÀ«À«À«0À«5À«8À«:À«tÀ«yÀ«ÈÀ¬À¬gÀ¬¶À¬êÀ¬ïÀ­@À­‘À­ÞÀ­þÀ®À®QÀ®¢À®ñÀ¯AÀ¯�À¯†À¯«À¯°À¯ýÀ°OÀ°šÀ°ŸÀ°ëÀ°ðÀ±1À±6À±…À±ÖÀ²"À²?À²DÀ²•À²šÀ²§À²ÍÀ³À³BÀ³_À³pÀ³yÀ³�À³©À³°À³¹À³¾À´À´]À´¢À´ºÀ´¿Àµ Àµ[Àµ–Àµ›Àµ­Àµ²À¶À¶QÀ¶jÀ¶oÀ¶¹À¶¾À· À·^À·¯À·ÛÀ·àÀ¸À¸FÀ¸KÀ¸™À¸žÀ¸ÅÀ¸ÊÀ¸éÀ¸îÀ¹BÀ¹’À¹ÛÀºÀºÀºbÀº«ÀºýÀ»LÀ»œÀ»ÀÀ»ÅÀ¼À¼bÀ¼gÀ¼pÀ¼æÀ½À½"À½CÀ½HÀ½”À½ãÀ¾5À¾TÀ¾YÀ¾bÀ¾ÜÀ¿À¿À¿NÀ¿SÀ¿¥À¿öÀÀÀÀÀÀ`ÀÀ«ÀÀóÀÁAÀÁFÀÁ•ÀÁçÀÂ5ÀÂxÀÂ}À¨À­ÀÂýÀÃLÀÂÀÇÀÃÔÀÄÀÄ[ÀÄ`ÀÄmÀÄ”ÀÄÈÀÄÖÀÄÝÀÄæÀÄëÀÅ<ÀņÀÅÎÀÅÓÀÅþÀÆÀÆ=ÀÆ�ÀÆàÀÇ*ÀÇ{ÀdzÀǸÀÈ ÀÈNÀÈ–ÀÈÙÀÉ(ÀÉfÀÉ´ÀÊÀÊ;ÀÊ@ÀÊMÀÊ’ÀÊËÀÊÒÀÊÛÀÊàÀË2ÀË�ÀËÏÀËìÀËñÀÌAÀÌFÀÌSÀÌÀÌ«ÀÌèÀÍ+ÀÍ9ÀÍ@ÀÍIÀÍNÀÍœÀÍìÀÎ:ÀÎ`ÀÎeÀÎrÀΞÀÎÂÀÎßÀÏ0ÀÏeÀÏ™ÀÏÅÀÏÌÀÏÕÀÏÚÀÐÀÐÀÐRÀТÀÐôÀÑ:ÀÑjÀÑoÀÑ´ÀѹÀÑýÀÒÀÒRÀÒWÀÒ§ÀÒ¬ÀÒüÀÓÀÓÀÓgÀÓ®ÀÓ³ÀÔÀÔÀÔ!ÀÔmÀÔŒÀÔ‘ÀÔ¡ÀÔ¦ÀÔðÀÕ;ÀÕˆÀÕ¦ÀÕ«ÀÕúÀÖJÀÖ–ÀÖËÀÖÐÀ×À×jÀ×·À×øÀ×ýÀØ ÀØÀØ>ÀØCÀØRÀØ‹ÀدÀضÀØ¿ÀØÄÀÙÀÙ ÀÙZÀÙ§ÀÙÌÀÙÑÀÙøÀÙýÀÚOÀÚ›ÀÚâÀÛ2ÀÛ„ÀÛÑÀÛßÀÛäÀÜ3ÀÜ…ÀÜÔÀÝ$ÀÝGÀÝLÀÝœÀÝéÀÞ5ÀÞ{ÀÞÈÀÞÍÀßÀßqÀ߸Àß½ÀßèÀßíÀà?Àà�ÀàÞÀá,ÀárÀáÃÀâÀâLÀâQÀâcÀâhÀâ¶ÀãÀã>Àã‹ÀãÛÀä(ÀäsÀäÃÀäâÀäçÀåÀå Àå`ÀåeÀå²ÀæÀæQÀæ£ÀæôÀçFÀç˜ÀçÌÀçÑÀè!ÀèoÀè�Àè¢Àè¾ÀèÃÀéÀé`ÀéªÀéÝÀéâÀê0Àê}ÀêÍÀëÀëkÀë¼ÀëÞÀëãÀë÷ÀëüÀìJÀì‘ÀìàÀí+Àí0ÀíƒÀíÕÀî&Àî;Àî@Àî�ÀîßÀï#ÀïrÀïÁÀðÀðcÀð¬ÀðóÀñÀñ Àñ[Àñ£ÀñóÀòCÀò•ÀòçÀó1Àó�ÀóÓÀôÀôÀôOÀôTÀôgÀôlÀô¢ÀôèÀõ7Àõ…ÀõÕÀöÀöEÀöJÀölÀöqÀöÃÀ÷À÷FÀ÷KÀ÷™À÷ëÀø$ÀøaÀø Àø¥ÀøöÀùAÀùiÀùnÀù¯ÀùúÀúIÀú›ÀúìÀû4ÀûeÀûrÀûªÀûÙÀüÀü ÀüÀüÀü\Àü^Àü‡ÀüÃÀüöÀýÀý.Àý5ÀýBÀýˆÀýßÀýýÀþÀþOÀþuÀþ±ÀþÅÀþÐÀÿ)Àÿ.Àÿ0ÀÿnÀÿ¡Àÿ³ÀÿÙÀÿàÀÀ#ÀPÀÀ»ÀàÀ3ÀGÀRÀlÀ³ÀÀÀ=ÀDÀ“À­ÀÐÀÀ>ÀGÀNÀbÀgÀiÀ´ÀùÀÀRÀŸÀðÀÀÀRÀ¤ÀäÀëÀ:ÀAÀ”À¦ÀÖÀçÀÀ;À‘ÀôÀ À]À¯ÀèÀöÀ À À À +À ‹À �À ’À áÀ !À (À yÀ ÃÀ À À \À ¡À ïÀ 3À ƒÀ ŠÀ ÐÀ À BÀ IÀ šÀ ¡À îÀ?ÀsÀzÀÁÀÈÀÀdÀ‰À�À£ÀªÀºÀÁÀÀEÀLÀ˜ÀêÀÀ À_À±ÀÿÀMÀžÀêÀ*À1À|ÀÇÀÀÀ3À:À‰ÀÙÀ)ÀxÀšÀ¡ÀóÀ@À�ÀÐÀ×ÀÀÀcÀ³ÀÀLÀšÀ°À·ÀÀZÀ¦ÀÐÀ×À%ÀEÀ…ÀŒÀ±À¸À À[À¬ÀýÀAÀ“ÀáÀôÀûÀHÀšÀ¡À²À¹ÀÀSÀaÀ•À¦À«À­À÷ÀEÀ‰À�ÀâÀ /À €À �À —À âÀ!4À!tÀ!{À!ÊÀ!ÑÀ"À"+À"=À"mÀ"~À"™À"ÒÀ#(À#‹À#¡À#ôÀ$FÀ$À$�À$šÀ$£À$·À$ÂÀ%"À%'À%)À%xÀ%¸À%¿À&À&`À&²À&èÀ&ïÀ'5À'‚À'ÒÀ'ÙÀ()À(hÀ(‹À(’À(ãÀ(êÀ)<À)ˆÀ)ÚÀ*À* À*YÀ*ªÀ*ÞÀ*åÀ+,À+3À+‚À+ÏÀ+ôÀ+ûÀ, À,À,SÀ,lÀ,zÀ,®À,¿À,ÄÀ,ÆÀ-À-WÀ-^À-­À-ûÀ.KÀ.[À.bÀ.­À.ÿÀ/?À/FÀ/•À/œÀ/ÓÀ/÷À0 À09À0JÀ0dÀ0�À0óÀ1WÀ1mÀ1¿À2À2KÀ2YÀ2fÀ2oÀ2ƒÀ2ŽÀ2ïÀ2ôÀ2öÀ3FÀ3‡À3ŽÀ3ÞÀ4.À4cÀ4jÀ4·À4üÀ5JÀ5ŽÀ5ÝÀ5äÀ6*À6vÀ6›À6¢À6òÀ6ùÀ7FÀ7—À7ËÀ7ÒÀ8À8 À8oÀ8¼À8áÀ8èÀ8ùÀ9À9@À9‘À9ÜÀ9õÀ:À:7À:HÀ:MÀ:OÀ:›À:çÀ;+À;2À;�À;ÏÀ<À À>À>8À>qÀ>ÇÀ?+À?AÀ?“À?æÀ@À@-À@:À@CÀ@WÀ@bÀ@ÃÀ@ÈÀ@ÊÀAÀA[ÀAbÀA²ÀBÀBPÀB†ÀB�ÀBÓÀC!ÀCqÀCxÀCÇÀDÀD*ÀD1ÀD�ÀDˆÀDÚÀE&ÀExÀE£ÀEªÀE÷ÀFHÀF|ÀFƒÀFÊÀFÑÀG ÀGmÀG’ÀG™ÀGªÀG±ÀGñÀH ÀHÀHLÀH]ÀHbÀHdÀH¯ÀHÑÀHØÀI'ÀIpÀI„ÀI‹ÀIÖÀJ(ÀJhÀJoÀJÀÀKÀKSÀKZÀK©ÀK°ÀKûÀL ÀLJÀL®ÀL³ÀLµÀLÞÀMÀM'ÀMPÀMwÀM‹ÀM–ÀMÎÀMßÀNÀN/ÀNCÀNNÀNbÀNgÀNiÀN°ÀNèÀNïÀO?ÀO�ÀOÈÀPÀPÀP_ÀP¡ÀPÖÀPÝÀQ-ÀQhÀQoÀQÀÀRÀRSÀRZÀRƒÀRŠÀRÖÀS(ÀSVÀS]ÀS®ÀSôÀTBÀTfÀTÀT�ÀTÎÀTÛÀTÿÀU9ÀURÀU»ÀUÉÀUßÀV5ÀV¤ÀV²ÀV¿ÀVÉÀVÑÀVèÀVíÀVïÀW@ÀW‘ÀWµÀW¼ÀXÀXdÀX´ÀYÀYNÀYUÀY�ÀYéÀZ:ÀZ†ÀZÖÀZôÀZûÀ[KÀ[�À[îÀ\?À\’À\ÅÀ\ÌÀ]À]mÀ]ÀÀ^À^QÀ^ªÀ^ÎÀ_À_'À_<À_eÀ_¹À`À`gÀ`“À` À`ÏÀaÀaÀa;Àa@ÀaBÀamÀaºÀaËÀaöÀbÀb3Àb>Àb—Àb¨ÀbÒÀbüÀcÀcÀc/Àc4Àc6ÀcnÀcuÀcÄÀdÀdCÀdJÀd˜ÀdèÀe:Àe�ÀeÝÀf/Àf‚ÀfÏÀg ÀghÀg¦Àg­ÀgýÀhLÀhœÀhêÀi9ÀiMÀiTÀi£ÀióÀjDÀj•ÀjâÀk Àk9ÀkGÀk¤Àk±ÀkÕÀlÀl(Àl“Àl¡Àl·Àm Àm|ÀmŠÀm—Àm¡Àm©Àm»ÀmÀÀmÂÀmùÀmûÀnMÀnžÀn¥ÀnõÀoGÀo”Ào¨Ào¯ÀoßÀoæÀo÷ÀoþÀpPÀpuÀpÂÀpôÀqÀq9ÀqXÀqzÀqµÀqÐÀr1ÀrAÀrÀrŽÀr™Àr¹ÀrÐÀrÙÀs ÀsÀs(Às:Às?ÀsAÀsŠÀs°Às²ÀsíÀsôÀtAÀt�ÀtÛÀtâÀu2Àu„ÀuÖÀuæÀuùÀv4ÀvEÀvfÀv‡Àv­ÀvàÀw,ÀwJÀwsÀwÍÀwõÀxÀx>ÀxcÀxµÀxÆÀxäÀy1Ày‚ÀyÒÀz#ÀzrÀzÐÀzÜÀ{À{5À{MÀ{©À{«À{¼À{èÀ|À|lÀ|ÚÀ}CÀ}OÀ}QÀ}‡À}®À}ÆÀ~$À~5À~cÀ~eÀ~ŽÀ~íÀ]ÀÆÀÒÀòÀûÀ€À€À€/À€‹À€�À€’À€¢À€¤À€öÀ�QÀ�—À�¥À�¿À�ýÀ‚2À‚CÀ‚¥À‚»À‚ÄÀ‚êÀƒ.ÀƒrÀƒ|ÀƒŸÀƒ¿ÀƒÙÀ„:À„FÀ„VÀ„pÀ„�À…À…(À…4À…mÀ…‰À…¨À†À†+À†9À†DÀ†MÀ†iÀ†ƒÀ† À‡À‡À‡)À‡9À‡SÀ‡pÀ‡àÀ‡îÀ‡úÀˆÀˆ5Àˆ@ÀˆQÀˆwÀˆ‹Àˆ–ÀˆªÀˆ»ÀˆäÀˆøÀ‰À‰À‰ À‰7À‰>À‰�À‰âÀŠ4ÀŠ}ÀŠ„ÀŠÖÀ‹(À‹zÀ‹ÌÀŒÀŒ9ÀŒ^ÀŒxÀŒ‰ÀŒ«ÀŒÐÀŒþÀ�;À�’À�ÒÀŽ(ÀŽIÀŽ›ÀŽêÀ�>À�gÀ�yÀ�“À�åÀ�6À�…À�¶À�ÈÀ�âÀ‘5À‘†À‘ÚÀ’3À’`À’rÀ’ƒÀ’�À’¼À’ùÀ“QÀ“‘À“ñÀ”À”hÀ”¼À• À•dÀ•ºÀ•óÀ–À–À–#À–.À–7À–wÀ–‹À––À–ªÀ–¯À–±À–¾À–ðÀ–òÀ–ÿÀ—À—\À—�À—’À—”À—ÀÀ—ôÀ˜À˜(À˜-À˜/À˜À˜ÊÀ˜ÑÀ™À™jÀ™ºÀšÀšIÀš‰Àš�Àš×À›À›ZÀ›aÀ›«À›ëÀ›òÀœÀœ ÀœRÀœ‡ÀœÚÀœçÀ�À�„À�ŒÀ�ÔÀ�áÀžÀž-ÀžcÀž¼ÀžñÀŸJÀŸ�ÀŸÄÀŸÒÀŸÚÀ À  À +À bÀ sÀ ¡À ¨À ÐÀ ëÀ òÀ¡À¡ À¡ À¡SÀ¡ZÀ¡¤À¡öÀ¢À¢&À¢8À¢xÀ¢…À¢¡À£!À£)À£IÀ£sÀ£“À£ÃÀ¤À¤À¤À¤À¤nÀ¤¼À¤ÛÀ¤âÀ¥3À¥wÀ¥—À¥žÀ¥íÀ¦8À¦KÀ¦RÀ¦ŸÀ¦ìÀ¦üÀ§UÀ§\À§¬À§ÆÀ§ÍÀ¨À¨aÀ¨³À¨üÀ©À©#À©gÀ©tÀ©�ÀªÀªÀª*Àª/Àª1ÀªtÀª�ÀªËÀªÍÀªÚÀ«À«À«-À«VÀ«tÀ«œÀ¬ À¬À¬+À¬SÀ¬ÃÀ¬ÑÀ¬ÜÀ­À­_À­tÀ­‘À­ýÀ® À®6À®cÀ®vÀ®®À®¼À®ÉÀ®ÒÀ¯À¯ À¯fÀ¯ÀÀ¯ÝÀ°-À°}À°¾À°ÌÀ°ØÀ±À±'À±zÀ±©À±¶À±¸À±ÔÀ±øÀ²JÀ²ZÀ²hÀ²sÀ²¡À²ÃÀ³À³FÀ³SÀ³UÀ³qÀ³•À³èÀ³øÀ´À´À´JÀ´eÀ´•À´ÛÀ´õÀµ-Àµ;ÀµaÀµ‘Àµ¥ÀµÝÀµëÀ¶KÀ¶XÀ¶aÀ¶šÀ¶ËÀ·À·LÀ·|À·˜À·²À·êÀ·øÀ¸XÀ¸nÀ¸ÃÀ¹2À¹@À¹MÀ¹VÀ¹}À¹­À¹åÀºÀº`ÀºbÀº�ÀºµÀºÍÀºëÀºøÀ»/À»LÀ»gÀ»ÄÀ»ÔÀ»áÀ¼À¼À¼~À¼ŽÀ¼›À¼µÀ¼ÀÀ¼ÂÀ¼éÀ½À½MÀ½eÀ½ƒÀ½�À½éÀ¾BÀ¾^À¾yÀ¾šÀ¿ À¿2À¿BÀ¿OÀ¿ZÀ¿\À¿kÀ¿�À¿²À¿ÕÀ¿ëÀÀ ÀÀÀÀ;ÀÀ_ÀÀƒÀÀšÀÀ¸ÀÀÆÀÀôÀÁÀÁ?ÀÁdÀÁ|ÀÁ¢ÀÁ²ÀÁ¿ÀÁîÀÂÀÂ:ÀÂ`ÀÂyÀžÀ®À»ÀÃÀÃ2ÀÃkÀÃvÀÃxÀÜÀÃóÀÄ.ÀÄIÀÄÓÀÄãÀÅÀÅ`ÀÅ�ÀÅ·ÀÅÏÀÆ'ÀƘÀƨÀÆ·ÀÆÂÀÆÄÀÇÀÇ4ÀÇjÀÇ�ÀÇœÀÇÒÀÇçÀÈ ÀÈ+ÀÈuÀȰÀÈËÀÉUÀÉeÀÉ„ÀÉàÀÊLÀÊ\ÀʦÀʾÀËÀˇÀË—À˦À˱À˺ÀËÎÀËÙÀËÞÀËàÀÌÀÌÀÌWÀÌ�À̱ÀÍÀÍrÀÍ~À͈ÀÍŠÀÍÌÀÎÀÎ:ÀÎkÀÎ�ÀδÀÎÃÀÏÀÏNÀÏcÀÏœÀϧÀÏßÀÐ/ÀÐDÀÐOÀÐ�ÀÐÜÀÐÿÀÑNÀÑžÀÑÙÀÑôÀÒqÀÒÆÀÒÖÀÒõÀÓ–ÀÔÀÔÀÔ/ÀÔ>ÀÔPÀÔ‹ÀÔ¦ÀÕ#ÀÕxÀÕˆÀÕÓÀÕòÀÖ:ÀÖ–À×@À×vÀןÀ×ÄÀ×ÔÀ×îÀ×ýÀØÀØÀØ%ÀØ0ÀØ5ÀØ7ÀØDÀØ`ÀØ´ÀÙÀÙWÀÙ–ÀÙžÀÙðÀÚBÀÚ–ÀÚèÀÛ7ÀÛKÀÛSÀÛžÀÛïÀÜBÀÜ|ÀÜœÀÜ«ÀܲÀÜÐÀÜÕÀÜ×ÀÝÀÝÀÝiÀݺÀÝéÀÝöÀÞÀÞWÀÞ‚ÀÞžÀÞ£ÀÞ¥ÀÞ²ÀÞÌÀÞÝÀÞúÀß3ÀßÀß•ÀßåÀà8ÀàyÀà‡Àà”Àà�Àà±Àà¼ÀàÁÀàÃÀáÀáÀádÀá²ÀáýÀâKÀâRÀâ›ÀâêÀã<ÀãVÀã]Àã¬ÀãÝÀä,Àä}ÀäÆÀäÍÀåÀåqÀåÁÀæÀæaÀæ–ÀæÝÀæîÀçÀç&ÀçaÀçºÀèÀè-Àè€Àè¿ÀéÀéÀé(ÀéLÀéžÀéôÀê>ÀêNÀê]ÀêhÀê¡ÀêèÀë:ÀëWÀë›ÀëÀÀëÎÀëäÀìÀìYÀì¥Àì³ÀìÀÀìÉÀìÝÀìèÀíÀíaÀí—Àí­Àí¶Àí½ÀíÐÀíÕÀí×Àî Àî>ÀîEÀî�Àî®ÀîµÀîþÀïMÀïŸÀï¹ÀïÀÀð ÀðJÀðXÀð‡Àð‰ÀðÖÀðíÀðôÀñEÀñ`ÀñgÀñµÀòÀò/Àò6ÀòÀòÎÀóÀójÀóqÀóÀÀóñÀôCÀô”ÀôÝÀôäÀõ-ÀõnÀõ|ÀõÓÀõÕÀö%ÀöXÀö_Àö©ÀööÀ÷7À÷>À÷�À÷àÀø!Àø.ÀøsÀø–Àø§ÀøØÀùÀùbÀù¤ÀùÇÀú,Àú:ÀúŠÀú ÀûÀûYÀûÁÀü(Àü�Àü›Àü¨Àü±ÀüÅÀüÐÀýÀýRÀý‚Àý‡Àý‰ÀýÜÀþÀþÀþeÀþ¨Àþ¯Àþ÷Àÿ/Àÿ6ÀÿˆÀÿÙÀÀÀ]ÀŸÀêÀ:À‡ÀÓÀ$ÀqÀÀÀÀQÀŸÀïÀ?ÀxÀ¤À»ÀÖÀÝÀ À[À®ÀÀ=À[À`ÀbÀ²ÀéÀðÀ@À‘ÀÌÀÓÀ$ÀuÀÆÀ À QÀ VÀ XÀ ¥À ¬À þÀ PÀ ŸÀ µÀ ¼À À _À ®À ÕÀ ÜÀ -À :À iÀ kÀ ½À ÄÀ À sÀ ÅÀ ÌÀÀVÀ]ÀlÀ—À§À®ÀÁÀÀ8À_ÀjÀqÀ�ÀŠÀ•À¢ÀãÀ ÀÀÀ1À3ÀxÀÀÆÀ ÀÀ#ÀNÀ^ÀeÀxÀ¼ÀïÀÀ!À(À8ÀAÀLÀSÀ¤ÀçÀ*À;ÀcÀ�À³ÀÀ'À2ÀMÀVÀjÀuÀ‡ÀŒÀŽÀ›ÀØÀéÀAÀ•ÀãÀ3ÀƒÀ¤À®ÀüÀKÀ›ÀîÀ9À`À‡À¬ÀµÀÙÀÀ À5ÀdÀmÀ•ÀÃÀÌÀàÀëÀðÀòÀ0À7À�À�À¥ÀæÀ÷ÀÀ%ÀQÀrÀ¢ÀçÀûÀÀ À ÀDÀKÀšÀ¨ÀîÀÿÀÀ-ÀYÀ|ÀŽÀ­ÀÀ/À_ÀwÀ¯ÀôÀ#À,ÀJÀ«ÀËÀûÀ À KÀ �À ¿À ÈÀ ÜÀ çÀ ìÀ îÀ!;À!hÀ!oÀ!½À!ÄÀ"À"SÀ"aÀ"¦À"·À"ÞÀ#CÀ#{À#„À#˜À#£À#¨À#ªÀ#·À#ýÀ$)À$}À$‚À$…À$‡À$ÓÀ% À%À%_À%§À%¹À%áÀ&À&=À&@À&ˆÀ&ÈÀ&ÏÀ'À'@À'�À'°À'ÔÀ'ñÀ(DÀ(�À(¬À(àÀ(éÀ)À)À).À)3À)5À)rÀ)yÀ)ÊÀ)êÀ*<À*\À*™À*½À*ÚÀ+-À+UÀ+¹À+ìÀ,À,À,?À,DÀ,FÀ,”À,›À,èÀ-2À-9À-JÀ-QÀ-šÀ-ºÀ.À.3À.PÀ.¡À.ôÀ/)À/RÀ/oÀ/±À/öÀ07À0CÀ0MÀ0aÀ0wÀ0€À0°À0·À0ÊÀ0ÏÀ0ÑÀ1À1À1&À1-À1~À1¼À1ûÀ2À2<À2�À2ÒÀ2þÀ3À3 À3 À3QÀ3XÀ3¦À3õÀ4À4FÀ4yÀ4�À4ºÀ5 À54À5`À5gÀ5{À5€À5ƒ _DebugSizeBoxConstraintsBoxHitTestResultBoxHitTestEntry BoxParentDataContainerBoxParentData_CachedLayoutCalculation _DryLayout _Baseline_IntrinsicDimension_LayoutCacheStorage RenderBoxRenderBoxContainerDefaultsMixin!