X_attachedController_animationControllerssizepixels sizeToPixels isAttached pixelsToSize animateTojumpToreset_assertAttached_attach_onExtentReplaced_detach_disposeAnimationControllersinitialChildSize minChildSize maxChildSizeexpandsnap snapSizessnapAnimationDuration controllershouldCloseOnMinExtentbuilder createStateextent minExtent maxExtent initialExtentcontextdebugFillDescription_cancelActivityminSizemaxSize initialSize _currentSizeavailablePixels hasDragged hasChangedisAtMinisAtMax currentSize currentPixelspixelSnapSizes startActivity addPixelDelta updateSizedisposecopyWith_scrollController_extent initState_impliedSnapSizesdidUpdateWidgetdidChangeDependenciesbuild_replaceExtent_snapSizeErrorMessageonPositionDetachedcreateScrollPositionpositiondetach_dragCancelCallback getExtent_ballisticControllerslistShouldScrollabsorb beginActivityapplyUserOffset_getCurrentSnapSize _isAtSnapSize _shouldSnap goBallisticdragchild _notifier _wasCalled sendReset _sendReset shouldResetvelocity minimumSpeed_pixelSnapSizedxisDonex _getSnapSize ScrollableWidgetBuilderDraggableScrollableControllerDraggableScrollableSheetDraggableScrollableNotification_DraggableSheetExtent_DraggableScrollableSheetState)_DraggableScrollableSheetScrollController'_DraggableScrollableSheetScrollPositionDraggableScrollableActuator!_DraggableScrollableActuatorState_ResetNotifier_InheritedResetNotifier_SnappingSimulation€Ð BuildContextScrollControllerAxisscrollController ScrollViewSingleChildScrollViewListViewGridViewWidgetStatebuild ListenableChangeNotifier kFlutterMemoryAllocationsEnabledmaybeDispatchObjectCreationSetAnimationControllerdoubleextent currentSize currentPixels sizeToPixelsScrollPositionbool hasClients pixelsToSizesnapFuture WidgetTester pumpAndSettlevoidDurationCurvedurationzero unboundedvsyncpositioncontextvalueaddgoIdle hasDragged hasChanged startActivity onCanceled isAnimatingstop addListener updateSizenotificationContext animateTo clampDoubleminSizemaxSizecurveinitialChildSizereset _currentSizenotifyListenersonPositionDetached disposeExtentdisposeremoveListeneranimationControllerclear ScrollablejumpToListTileScaffoldScrollBehaviorPointerDeviceKindmouse dragDevicesStatefulWidgetCenterListoverride NotificationNotificationListenerdepthsetStateFloatingActionButtonViewportNotificationMixinStringdebugFillDescription ValueNotifierinfinitydebugMaybeDispatchCreated VoidCallbackmaptoListcall minExtent maxExtent initialExtentshouldCloseOnMinExtentdispatchdebugMaybeDispatchDisposed snapSizessnapAnimationDuration initialSize initStatewidget minChildSize maxChildSize controller_attachintindexlengthisEmptyfirstlastdidUpdateWidget_detachdidChangeDependencies shouldResetValueListenableBuildervalueListenablebuilder LayoutBuilderBoxConstraintsavailablePixels constraintsbiggestheightFractionallySizedBox heightFactor alignment Alignment bottomCenterchildexpandSizedBoxcopyWith_onExtentReplacedWidgetsBindinginstanceaddPostFrameCallback positions elementAt goBallistic debugLabelasMapkeystoStringPrimaryScrollController ScrollPhysics ScrollContextphysicsapplyToAlwaysScrollableScrollPhysics oldPosition getExtent_cancelActivityoffset millisecondsCurveslineardetachScrollActivityViewportScrollPositionWithSingleContextpixelsabsorb_dragCancelCallbackballisticController beginActivityisAtMinisAtMax addPixelDeltaapplyUserOffsetfirstWhereOrNullsnapSizeabs toleranceFordistance SimulationinitialVelocity pixelSnapSizepixelSnapSizes toleranceClampingScrollSimulationvelocityobjectRuntimeTypesign isCompleted animateWithwhenCompleteOrCancelcontainsremoveDragDragStartDetailsdrag"dependOnInheritedWidgetOfExactType _sendResetnotifier hasListenersInheritedNotifier sendResetInheritedWidget _wasCalledinMillisecondsminmax indexWheresize ChangeNotifierStatefulWidget NotificationViewportNotificationMixinStateScrollControllerScrollPositionWithSingleContextInheritedNotifier SimulationècÜZž±³Â¸îËüf ‚‚0‚3math‚3 dart:math‚="package:collection/collection.dart‚kpackage:flutter/foundation.dart‚–package:flutter/gestures.dart‚Á basic.dart‚× binding.dart‚ïframework.dartƒ inherited_notifier.dartƒ,layout_builder.dartƒKnotification_listener.dartƒqscroll_activity.dartƒ‘scroll_context.dartƒ°scroll_controller.dartƒÒscroll_notification.dartƒöscroll_physics.dart„scroll_position.dart„5(scroll_position_with_single_context.dart„iscroll_simulation.dart„‹value_listenable_builder.dartÀd‰ÀºK„¶=€ˆ€§€©€Ú���K�x�œ�¿�ð‚‚‚‚:‚<‚j‚•‚¾‚À‚ւ+ƒJƒpƒ�ƒ¯ƒÑƒõ„„4„h„Š„³„µ„÷…E……„…Ô†#†<†_†®†°†Ü†á‡3‡ƒ‡Òˆ ˆˆ`ˆ¯ˆ´ˆþ‰N‰˜‰çŠ4ŠkŠ©Šå‹ ‹7‹p‹w‹|‹~‹ÁŒŒŒnŒƒŒ›ŒÐŒÕŒ×��)�A�x�}��Ö�üŽŽPŽUŽWŽºŽÝŽä�3�����ê�ì�I�q�‰�Ç�Ì�Α‘X‘_‘±’’’$’q’Ó“H“O“ž“¾“Å”&”]”d”­”ò••z•’•·•ß–3–n–¥–­–â——b———Ë—û˜˜n˜ž˜Å˜Ð˜Ú˜â™ ™;™_™¤™®™·™ášEš`šuš}š‚š„šÑ› ››_›¦›­›üœOœhœoœÍ��"�:�_�¦�éžžKžž¬ž¹žüŸŸ Ÿ ŸsŸ…Ÿ�ŸÀŸÅŸÇŸãŸð  g Â Ê Ï Ñ¡¡,¡P¡š¡¢¡Ï¢¢h¢m¢o¢±££U£m£¹¤ ¤U¤Œ¤¦¤­¤²¤´¤ä¤þ¥,¥:¥‹¥’¥·¥Ø¥Ý¥ß¦¦\¦‚¦‰¦­¦²¦µ¦·§§H§M§‘§–§Ú¨+¨}¨‚¨Ï© ©©X©ª©ùªGª�ªà«««e«±«÷¬E¬e¬j¬³­­U­Z­ª­ú®H®b®g®|®�®Ð¯¯l¯·° °)°.°›°è°í±B±‚±ý²²b²g²Ô²å³³l³�³ ³Â³á³ÿ´´0´E´f´|´¥´Á´æµ µ=µoµÇµÉ¶¶8¶?¶ˆ¶Ù·/·6·Y·{·}·Î·ì·ó¸¸5¸7¸ˆ¸¦¸­¸Ð¸î¸ð¹B¹Q¹X¹¤¹óº"º)ºKºaºcº±ºÔºÛ»-»»Ð»×¼"¼†¼�¼Ü½½h½”½¨½ª½è½ï¾>¾Š¾¡¾¨¾õ¿H¿“¿ª¿±À@À@>À@EÀ@’À@áÀA3ÀAUÀAWÀAŠÀA‘ÀAáÀBÀB@ÀBBÀB�ÀBÃÀBÅÀCÀC;ÀCBÀC�ÀCÆÀCìÀCîÀD<ÀDˆÀD ÀDÊÀDÌÀDÙÀE/ÀE2ÀE4ÀEÀE¼ÀEÝÀEâÀF2ÀF{ÀFÃÀG ÀGYÀG¤ÀGÏÀGÔÀH"ÀHrÀHÄÀIÀI]ÀI®ÀIÿÀJ;ÀJ˜ÀJêÀJúÀKÀKSÀK¤ÀKÉÀKäÀLÀL ÀLBÀL^ÀL‡ÀL©ÀLËÀLðÀMÀMAÀMmÀMoÀM¼ÀMÔÀMÖÀN ÀN&ÀN(ÀNNÀNiÀNkÀNžÀN½ÀN¿ÀOÀO ÀO\ÀOªÀOÞÀOýÀOÿÀPOÀPŒÀP“ÀPÝÀQÀQÀQÀQKÀQyÀQ�ÀQöÀQþÀRÀRÀRÀREÀR{ÀR«ÀR°ÀRýÀSMÀSRÀS¥ÀSªÀSÕÀT"ÀTAÀT\ÀTxÀT”ÀT­ÀTËÀTëÀU ÀU5ÀULÀUcÀUŒÀUªÀUÈÀUðÀVÀVbÀV�ÀV·ÀVâÀW4ÀW9ÀW;ÀW]ÀW_ÀWxÀW‘ÀW¥ÀWÆÀWðÀX ÀX3ÀX`ÀX{ÀX}ÀXÅÀXÙÀXÛÀY*ÀY9ÀYƒÀY“ÀYÝÀZ,ÀZ|ÀZÊÀZòÀ[À[À[>À[tÀ[vÀ[§À[èÀ[êÀ\6À\8À\ˆÀ\¿À\ÆÀ]À]gÀ]xÀ]´À]ÒÀ]õÀ]úÀ]üÀ^GÀ^�À^ˆÀ^ÓÀ_À_ZÀ_…À_£À_ÀÀ`À`3À`KÀ`cÀ`„À`“À`šÀ`×À`ÜÀ`ÞÀa)ÀaIÀaPÀa¢Àa¹ÀaôÀb<ÀbjÀbyÀb€Àb§ÀbÍÀbèÀcÀcÀcBÀc[Àc’Àc¬Àc±Àc³ÀcÛÀd ÀdÀdÀd8ÀdfÀdkÀdmÀd�Àd°ÀdÍÀdÒÀdÔÀdøÀeÀe4ÀeMÀesÀe•ÀeÄÀeïÀe÷ÀfÀf3ÀfLÀf_Àf|Àf±ÀfÒÀg#ÀgAÀglÀgÃÀgÍÀgìÀh ÀhBÀhJÀhOÀhRÀhTÀh¤ÀhéÀiÀiÀiÀi5ÀiMÀisÀi˜Ài½Ài×ÀiþÀj:ÀjgÀj¥Àj­ÀkÀk6Àk;Àk=ÀkcÀk³ÀkìÀkûÀlHÀl´Àl¾ÀlÍÀm ÀmbÀmlÀmsÀmÁÀnÀnEÀnLÀnbÀn²ÀnÏÀoÀo&Ào+Ào-Ào:Ào‚Ào©ÀoßÀpÀp=ÀpDÀpdÀpiÀpkÀpxÀpšÀp¾Àp÷ÀqÀq Àq%Àq'Àq4Àq\ÀqˆÀq¶ÀqÆÀrÀrhÀrÃÀrýÀs)Às]Às|ÀsŽÀsÛÀsëÀsùÀt3Àt;Àt@ÀtBÀtOÀtcÀt‰Àt£Àt±ÀtéÀtðÀuÀu(Àu-Àu/ÀuvÀu±ÀuÙÀuþÀv#Àv=ÀvdÀv ÀvÍÀw ÀwÀwaÀw¸ÀwáÀx-ÀxOÀxŠÀx©ÀxÁÀyÀyAÀy�ÀyÙÀz(ÀzzÀz®ÀzùÀ{MÀ{‘À{ÍÀ| À|0À|;À|sÀ|zÀ|À|�À|µÀ|æÀ} À}nÀ}–À}ÅÀ}ÒÀ}ôÀ~ À~kÀ~‘À~–À~™À~›À~íÀÀÀiÀ»ÀöÀûÀ€ À€À€jÀ€ƒÀ€ÇÀ�À�.À�zÀ�ÀÀ�ÂÀ�ãÀ‚À‚ À‚À‚XÀ‚tÀ‚�À‚²À‚¹À‚îÀƒ6ÀƒOÀƒpÀƒ�Àƒ˜Àƒ�ÀƒŸÀƒ¬ÀƒåÀ„À„<À„AÀ„CÀ„PÀ„‹À„ÍÀ„ÏÀ„áÀ…À…&À…FÀ…�À…¯À…ëÀ†À†]À†dÀ†·À†¼À†¾À†ËÀ†õÀ‡À‡3À‡8À‡;À‡=À‡wÀ‡©À‡®À‡þÀˆMÀˆˆÀˆÒÀˆñÀˆöÀ‰À‰ À‰hÀ‰ÁÀ‰îÀŠ ÀŠ(ÀŠ@ÀŠ^ÀŠeÀŠgÀŠ�ÀŠÂÀ‹À‹CÀ‹EÀ‹yÀ‹{À‹ˆÀ‹¯À‹ÉÀ‹óÀ‹õÀŒ3ÀŒBÀŒIÀŒKÀŒyÀŒ±ÀŒÚÀŒáÀŒæÀŒèÀŒõÀ�*À�[À�¯À�ÒÀ�ÙÀŽÀŽÀŽÀŽÀŽ<ÀŽZÀŽ‹À޹ÀŽèÀ�+À�9À�^À�eÀ�jÀ�lÀ�¼À�ëÀ�À�PÀ�‡À�ÌÀ�ÕÀ�ÚÀ�ÜÀ‘À‘À‘gÀ‘iÀ‘vÀ‘ŠÀ‘ÞÀ’À’ À’/À’EÀ’JÀ’LÀ’YÀ’€À’°À’áÀ“À“4À“CÀ“JÀ“�À“¿À“àÀ“âÀ” À”!À”jÀ”“À”¼À”àÀ•À•MÀ•}À•‡À••À•äÀ–6À–dÀ–£À–ÌÀ–éÀ—À—#À—*À—,À—€À—ÑÀ—îÀ—öÀ˜+À˜-À˜^À˜qÀ˜·À˜èÀ™*À™}À™ÏÀšÀš>ÀšRÀš~ÀšÖÀšüÀ›!À›VÀ› À›ñÀœÀœJÀœkÀœ±Àœ¼ÀœÛÀœäÀœëÀœíÀ�À�!À�\À� À�ÞÀžÀžÀžÀž#Àž%Àž2Àž|ÀžÎÀžýÀŸ2ÀŸ7ÀŸ:ÀŸ<ÀŸŠÀŸ¿ÀŸÄÀ À cÀ ´À õÀ úÀ¡GÀ¡—À¡êÀ¢4À¢†À¢ÈÀ£À£SÀ£~À£…À£¯À£÷À£ùÀ¤JÀ¤ŠÀ¤¡À¤£À¤òÀ¥À¥À¥cÀ¥¬À¥¾À¥ëÀ¦À¦jÀ¦—À¦œÀ¦žÀ¦«À§À§ À§ À§bÀ§˜À§šÀ§§À§ÏÀ¨À¨#À¨%À¨2À¨FÀ¨`À¨vÀ¨{À¨~À¨€À¨ÈÀ©À©1À©GÀ©tÀ©­À©´À©¹À©»À©íÀ©ôÀª(ÀªDÀªFÀªxÀªÀª¯ÀªÅÀªßÀªôÀªûÀ«À«+À«=À«BÀ«EÀ«GÀ«’À«áÀ¬UÀ¬·À¬¹À¬èÀ¬êÀ­6À­OÀ­VÀ­žÀ­ÑÀ­öÀ®FÀ®aÀ®vÀ®}À®­À¯À¯KÀ¯€À¯—À¯œÀ¯ŸÀ¯¡À¯ÑÀ¯êÀ°À°-À°WÀ°}À°“À°›À°ßÀ°áÀ±7À±”À±›À±ñÀ²DÀ²oÀ²«À²¹À²ôÀ²ûÀ³À³À³À³;À³=À³ŠÀ³ªÀ³ØÀ³ÚÀ³ÿÀ´À´À´*À´CÀ´TÀ´[À´qÀ´vÀ´xÀ´…À´£À´ÊÀ´ÏÀ´ÑÀ´ÞÀ´ùÀµ5ÀµqÀµ¬ÀµåÀ¶À¶ À¶#À¶(À¶*À¶tÀ¶¼À¶ÙÀ·'À·†À·§À·ËÀ·ÒÀ¸À¸VÀ¸ŽÀ¸æÀ¹"À¹@À¹PÀ¹jÀ¹sÀ¹zÀ¹ºÀ¹ÜÀºÀºÀºCÀºHÀºK�^/// @docImport 'package:flutter/material.dart'; /// @docImport 'package:flutter_test/flutter_test.dart'; /// /// @docImport 'primary_scroll_controller.dart'; /// @docImport 'scroll_configuration.dart'; /// @docImport 'scroll_view.dart'; /// @docImport 'scrollable.dart'; /// @docImport 'single_child_scroll_view.dart'; /// @docImport 'viewport.dart';‚‚4‚3‚<‚j‚•‚À‚ւ+ƒJƒpƒ�ƒ¯ƒÑƒõ„„4„h„Š †° ŠqŠqƒª/// Controls a [DraggableScrollableSheet]. /// /// Draggable scrollable controllers are typically stored as member variables in /// [State] objects and are reused in each [State.build]. Controllers can only /// be used to control one sheet at a time. A controller can be reused with a /// new sheet if the previous sheet has been disposed. /// /// The controller's methods cannot be used until after the controller has been /// passed into a [DraggableScrollableSheet] and the sheet has run initState. /// /// A [DraggableScrollableController] is a [Listenable]. It notifies its /// listeners whenever an attached sheet changes sizes. It does not notify its /// listeners when a sheet is first attached or when an attached sheet's /// parameters change without affecting the sheet's current size. It does not /// fire when [pixels] changes without [size] changing. For example, if the /// constraints provided to an attached sheet change.Š«€ÏŠçŠç‹8/// Creates a controller for [DraggableScrollableSheet].‹€>‹«‹«‹ÃN‹â‹âŒŒ‹úŒ‹ûŒ€»Œ{Œ{T/// Get the current size (as a fraction of the parent height) of the attached sheet.ŒÙ€¢��7/// Get the current pixel height of the attached sheet.ŽY���›�›�&/// Returns Whether any [DraggableScrollableController] objects have attached themselves to the /// [DraggableScrollableSheet]. /// /// If this is false, then members that interact with the [ScrollPosition], /// such as [sizeToPixels], [size], [animateTo], and [jumpTo], must not be /// called. ��€Ò�ß�ßS/// Convert a sheet's size (fractional value of parent container height) to pixels.�ì �ô�ó�î€Ü�R�RY/// Convert a sheet's pixel height to size (fractional value of parent container height).�_ �g�f�Љ°•&•&„ /// Animates the attached sheet from its current size to the given [size], a /// fractional value of the parent container's height. /// /// Any active sheet animation is canceled. If the sheet's internal scrollable /// is currently animating (e.g. responding to a user fling), that animation is /// canceled as well. /// /// An animation will be interrupted whenever the user attempts to scroll /// manually, whenever another activity is started, or when the sheet hits its /// max or min size (e.g. if you animate to 1 but the max size is .8, the /// animation will stop playing when it reaches .8). /// /// The duration must not be zero. To jump to a particular value without an /// animation, use [jumpTo]. /// /// The sheet will not snap after calling [animateTo] even if [DraggableScrollableSheet.snap] /// is true. Snapping only occurs after user drags. /// /// When calling [animateTo] in widget tests, `await`ing the returned /// [Future] may cause the test to hang and timeout. Instead, use /// [WidgetTester.pumpAndSettle].•0 •8•7•>•Q•P•Z•j•iš†„�� � ‚[/// Jumps the attached sheet from its current size to the given [size], a /// fractional value of the parent container's height. /// /// If [size] is outside of a the attached sheet's min or max child size, /// [jumpTo] will jump the sheet to the nearest valid size instead. /// /// Any active sheet animation is canceled. If the sheet's inner scrollable /// is currently animating (e.g. responding to a user fling), that animation is /// canceled as well. /// /// The sheet will not snap after calling [jumpTo] even if [DraggableScrollableSheet.snap] /// is true. Snapping only occurs after user drags.� ��Ÿ €¶ŸzŸzd/// Reset the attached sheet to its initial size (see: [DraggableScrollableSheet.initialChildSize]).ŸÉ�ŸÎŸÎ Ó�˜ Ø Ø à:¡ ¡ ¢q‚?¢v¢v¢ˆ$¢Ÿ¢ž¤¶�%¤»¤»¤Ä¤Ê¤É¤Ù¥á€Ï¥æ¥æ¦·žy²ë²ë‹ö/// A container for a [Scrollable] that responds to drag gestures by resizing /// the scrollable until a limit is reached, and then scrolling. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=Hgw819mL_78} /// /// This widget can be dragged along the vertical axis between its /// [minChildSize], which defaults to `0.25` and [maxChildSize], which defaults /// to `1.0`. These sizes are percentages of the height of the parent container. /// /// The widget coordinates resizing and scrolling of the widget returned by /// builder as the user drags along the horizontal axis. /// /// The widget will initially be displayed at its initialChildSize which /// defaults to `0.5`, meaning half the height of its parent. Dragging will work /// between the range of minChildSize and maxChildSize (as percentages of the /// parent container's height) as long as the builder creates a widget which /// uses the provided [ScrollController]. If the widget created by the /// [ScrollableWidgetBuilder] does not use the provided [ScrollController], the /// sheet will remain at the initialChildSize. /// /// By default, the widget will stay at whatever size the user drags it to. To /// make the widget snap to specific sizes whenever they lift their finger /// during a drag, set [snap] to `true`. The sheet will snap between /// [minChildSize] and [maxChildSize]. Use [snapSizes] to add more sizes for /// the sheet to snap between. /// /// The snapping effect is only applied on user drags. Programmatically /// manipulating the sheet size via [DraggableScrollableController.animateTo] or /// [DraggableScrollableController.jumpTo] will ignore [snap] and [snapSizes]. /// /// By default, the widget will expand its non-occupied area to fill available /// space in the parent. If this is not desired, e.g. because the parent wants /// to position sheet based on the space it is taking, the [expand] property /// may be set to false. /// /// {@tool dartpad} /// /// This is a sample widget which shows a [ListView] that has 25 [ListTile]s. /// It starts out as taking up half the body of the [Scaffold], and can be /// dragged up to the full height of the scaffold or down to 25% of the height /// of the scaffold. Upon reaching full height, the list contents will be /// scrolled up or down, until they reach the top of the list again and the user /// drags the sheet back down. /// /// On desktop and web running on desktop platforms, dragging to scroll with a mouse is disabled by default /// to align with the natural behavior found in other desktop applications. /// /// This behavior is dictated by the [ScrollBehavior], and can be changed by adding /// [PointerDeviceKind.mouse] to [ScrollBehavior.dragDevices]. /// For more info on this, please refer to https://docs.flutter.dev/release/breaking-changes/default-scroll-behavior-drag /// /// Alternatively, this example illustrates how to add a drag handle for desktop applications. /// /// ** See code in examples/api/lib/widgets/draggable_scrollable_sheet/draggable_scrollable_sheet.0.dart ** /// {@end-tool}³ ‚¥³t³t³ŒJ/// Creates a widget that can be dragged and scrolled in a single gesture. ³” ³›³š³¤³ª³©³Æ³Ì³Ë³å³ë³ê´´ ´´´"´!´4´:´9´I´O´N´j´p´o´€"´†´…´©´¸´·*³¼³Ú³ù´´(´ž´È´Î´â´Ü´Ï´ß´í´óµµ´ôµµµµ9µ&µµ)µDµJµkµ\µKµ_µvµ|µÃµ›µ“µ}µ–µ´µžµ¶µ¾µ¿ µË�­·h·h�w/// The initial fractional value of the parent container's height to use when /// displaying the widget. /// /// Rebuilding the sheet with a new [initialChildSize] will only move /// the sheet to the new value if the sheet has not yet been dragged since it /// was first built or since the last call to [DraggableScrollableActuator.reset]. /// /// The default value is `0.5`.·€³¸&¸&€�/// The minimum fractional value of the parent container's height to use when /// displaying the widget. /// /// The default value is `0.25`.¸9€²¸ß¸ß€Œ/// The maximum fractional value of the parent container's height to use when /// displaying the widget. /// /// The default value is `1.0`.¸ò�lºXºX�B/// Whether the widget should expand to fill the available space in its parent /// or not. /// /// In most cases, this should be true. However, in the case of a parent /// widget that will position this one based on its desired size (such as a /// [Center]), this should be set to false. /// /// The default value is true.ºeƒ@½¡½¡ƒ/// Whether the widget should snap between [snapSizes] when the user lifts /// their finger during a drag. /// /// If the user's finger was still moving when they lifted it, the widget will /// snap to the next snap size (see [snapSizes]) in the direction of the drag. /// If their finger was still, the widget will snap to the nearest snap size. /// /// Snapping is not applied when the sheet is programmatically moved by /// calling [DraggableScrollableController.animateTo] or [DraggableScrollableController.jumpTo]. /// /// Rebuilding the sheet with snap newly enabled will immediately trigger a /// snap unless the sheet has not yet been dragged away from /// [initialChildSize] since first being built or since the last call to /// [DraggableScrollableActuator.reset].½¬ƒ¦ÀAIÀAIƒU/// A list of target sizes that the widget should snap to. /// /// Snap sizes are fractional values of the parent container's height. They /// must be listed in increasing order and be between [minChildSize] and /// [maxChildSize]. /// /// The [minChildSize] and [maxChildSize] are implicitly included in snap /// sizes and do not need to be specified here. For example, `snapSizes = [.5]` /// will result in a sheet that snaps between [minChildSize], `.5`, and /// [maxChildSize]. /// /// Any modifications to the [snapSizes] list will not take effect until the /// `build` function containing this widget is run again. /// /// Rebuilding with a modified or new list will trigger a snap unless the /// sheet has not yet been dragged away from [initialChildSize] since first /// being built or since the last call to [DraggableScrollableActuator.reset].ÀAY€äÀB(ÀB(€²/// Defines a duration for the snap animations. /// /// If it's not set, then the animation duration is the distance to the snap /// target divided by the velocity of the widget.ÀBD|ÀB¶ÀB¶I/// A controller that can be used to programmatically control this sheet.ÀBÇ�"ÀCÓÀCÓ€ñ/// Whether the sheet, when dragged (or flung) to its minimum size, should /// cause its parent sheet to close. /// /// Set on emitted [DraggableScrollableNotification]s. It is up to parent /// classes to properly read and handle this value.ÀCð€×ÀDÀÀDÀ€¨/// The builder that creates a child to display in this widget, which will /// use the provided [ScrollController] to enable dragging and scrolling /// of the contents.ÀDÎ_ÀDûÀDûÀDÎÀDÏÀE4ŒÐÀJAÀJA„ò/// A [Notification] related to the extent, which is the size, and scroll /// offset, which is the position of the child list, of the /// [DraggableScrollableSheet]. /// /// [DraggableScrollableSheet] widgets notify their ancestors when the size of /// the sheet changes. When the extent of the sheet changes via a drag, /// this notification bubbles up through the tree, which means a given /// [NotificationListener] will receive notifications for all descendant /// [DraggableScrollableSheet] widgets. To focus on notifications from the /// nearest [DraggableScrollableSheet] descendant, check that the [depth] /// property of the notification is zero. /// /// When an extent notification is received by a [NotificationListener], the /// listener will already have completed build and layout, and it is therefore /// too late for that widget to call [State.setState]. Any attempt to adjust the /// build or layout based on an extent notification would result in a layout /// that lagged one frame behind, which is a poor user experience. Extent /// notifications are used primarily to drive animations. The [Scaffold] widget /// listens for extent notifications and responds by driving animations for the /// [FloatingActionButton] as the bottom sheet scrolls up.ÀJš‚ÑÀK¦ÀK¦ÀKÅ€ü/// Creates a notification that the extent of a [DraggableScrollableSheet] has /// changed. /// /// All parameters are required. The [minExtent] must be >= 0. The [maxExtent] /// must be <= 1.0. The [extent] must be between [minExtent] and [maxExtent].ÀKÍÀKÜÀKÛÀKèÀK÷ÀKöÀLÀLÀLÀL$ÀL3ÀL2ÀLFÀLUÀLTÀLb"ÀLhÀLg%ÀL€ÀLŽÀL”ÀL¥ÀL™ÀL•ÀLœÀL°ÀL¶ÀLÇÀLÁÀL·ÀLÄÀLÒÀLØÀLìÀLãÀLÙÀLæÀL÷ÀLýÀMÀMÀLþÀM ÀM#ÀM)ÀM=ÀM1ÀM*ÀM4ÀMHÀMNÀMiÀM]ÀMOÀM`ÀMq`ÀMËÀMËI/// The current value of the extent, between [minExtent] and [maxExtent].ÀMØKÀNÀN1/// The minimum value of [extent], which is >= 0.ÀN*<ÀN]ÀN]"/// The maximum value of [extent].ÀNmMÀN­ÀN­//// The initially requested value for [extent].ÀNÁ�9ÀOóÀOó�/// The build context of the widget that fired this notification. /// /// This can be used to find the sheet's render objects to determine the size /// of the viewport, for instance. A listener can only assume this context /// is live when it first gets the notification.ÀP€ÿÀPêÀPê€Ñ/// Whether the widget that fired this notification, when dragged (or flung) /// to minExtent, should cause its parent sheet to close. /// /// It is up to parent classes to properly read and handle this value.ÀQ€úÀQÀQÀQ.ÀQ<ÀQ;ÀQÀQÀR–HÀT(ÀT(‚/// Manages state between [_DraggableScrollableSheetState], /// [_DraggableScrollableSheetScrollController], and /// [_DraggableScrollableSheetScrollPosition]. /// /// The State knows the pixels available along the axis the widget wants to /// scroll, but expects to get a fraction of those pixels to render the sheet. /// /// The ScrollPosition knows the number of pixels a user wants to move the sheet. /// /// The [currentSize] will never be null. /// The [availablePixels] will never be null, but may be `double.infinity`.ÀTC‚ôÀTCÀTCÀTX ÀT`ÀToÀTnÀT|ÀT‹ÀTŠÀT˜ÀT§ÀT¦ÀT±ÀTÀÀT¿ÀTÏÀTÞÀTÝÀTïÀTõÀTôÀU"ÀU(ÀU'ÀU9ÀU@ÀU?ÀUPÀUWÀUVÀUg"ÀUmÀUl3ÀU…ÀU“ÀU™ÀU¦ÀU¢ÀUšÀU¥ÀU±ÀU·ÀUÄÀUÀÀU¸ÀUÃÀUÏÀUÕÀUìÀUÞÀUÖÀUáÀU÷ÀUýÀVÀV ÀUþÀV ÀV,ÀVÀV:ÀV.ÀV=ÀVJÀVQÀVKÀVRÀV^ÀVSÀVyÀViÀV{ÀV�ÀV‚ÀVŸÀV”ÀV¬ÀV¡ÀV¯ÀVÉÀV¾ÀVÖÀVËÀVÙ ÀW=ÀWKÀWKÀWaÀWnÀWnÀWzÀW‡ÀW‡ÀW“ÀWžÀWžÀW§ÀWºÀWºÀWÈ%ÀWØÀWØÀWòÀWÿÀWÿÀX!ÀXÀXÀX5(ÀXQÀXQÀXbÀXiÀXiÀXÇÀXÌÀXÌÀZôÀZùÀZùÀ[ 2À[À[À[@2À[IÀ[IÀ[x-À[ƒÀ[ƒÀ[©=À[´À[´À[ìHÀ[ýÀ[ýÀ\:�¾À]À]�-/// Start an activity that affects the sheet and register a cancel call back /// that will be called if another activity starts. /// /// The `onCanceled` callback will get called even if the subsequent activity /// started after this one finished, so `onCanceled` must be safe to call at /// any time.À]Ž À]¥À]¤À]þ‚ÜÀ_%À_%�/// The scroll position gets inputs in terms of pixels, but the size is /// expected to be expressed as a number between 0..1. /// /// This should only be called to respond to a user drag. To update the /// size in response to a programmatic call, use [updateSize] directly.À_3 À_;À_:À_AÀ_OÀ_NÀ`à‚ÏÀaÀÀaÀ€Ë/// Set the size to the new value. [newSize] should be a number between /// [minSize] and [maxSize]. /// /// This can be triggered by a programmatic (e.g. controller triggered) change /// or a user drag.ÀaËÀaÓÀaÒÀaÛÀaéÀaèÀcµYÀc¼Àc¼ÀcÉ ÀcÑÀcÐÀdUÀdÀdÀd( Àd0Àd/ÀdoaÀdtÀdtÀdÖƒwÀdìÀdìÀdüÀe Àe ÀeÀe+Àe*Àe8ÀeGÀeFÀeQÀehÀegÀewÀeˆÀe‡Àe™(Àe­Àe¬ÀeÈ$Àe×ÀeÖÀhT–CÀhZÀhZÀh¦@ÀhÕÀhÕÀhë"ÀiÀiÀi‚%Ài&Ài&ÀiÀiÀk?ƒêÀkLÀkLÀo/�8ÀoAÀoAÀoQ,ÀouÀotÀo/Ào0Àpm€¶ÀpÀpÀpmÀpnÀq)ƒÀq=Àq=ÀqCÀqQÀqPÀq)Àq*ÀtD€çÀtVÀtVÀtDÀtEÀu1‡LÀu6Àu6ÀuE,ÀuiÀuhÀ|ƒ‚À|ŠÀ|ŠÀ| À|¥À|¤À~›ˆžÀ�4À�4‚„/// A [ScrollController] suitable for use in a [ScrollableWidgetBuilder] created /// by a [DraggableScrollableSheet]. /// /// If a [DraggableScrollableSheet] contains content that is exceeds the height /// of its container, this controller will allow the sheet to both be dragged to /// fill the container and then scroll the child content. /// /// See also: /// /// * [_DraggableScrollableSheetScrollPosition], which manages the positioning logic for /// this controller. /// * [PrimaryScrollController], which can be used to establish a /// [_DraggableScrollableSheetScrollController] as the primary controller for /// descendants.À�|BÀ�|À�|À�¥À�§À�¶À�µÀ�ÄÀ�ÚÀ�ÚÀ�å À�óÀ�óÀ„E€†À„~À„~À„EÀ„FÀ‚ ��À‚AÀ‚AÀ‚\À‚kÀ‚jÀ‚xÀ‚‡À‚†À‚”À‚¥À‚¤À‚ À‚ Àƒ¡€žÀƒ³Àƒ³ÀƒÈÀƒÖÀƒÕÀƒ¡Àƒ¢À„Ñ�éÀ„ÖÀ„ÖÀ†ÀvÀ†ÒÀ†ÒÀ†ÙÀ†éÀ†èÀ†ÀÀ†ÁÀ‡=—ûÀ‰nÀ‰n‚/// A scroll position that manages scroll activities for /// [_DraggableScrollableSheetScrollController]. /// /// This class is a concrete subclass of [ScrollPosition] logic that handles a /// single [ScrollContext], such as a [Scrollable]. An instance of this class /// manages [ScrollActivity] instances, which changes the /// [_DraggableSheetExtent.currentSize] or visible content offset in the /// [Scrollable]'s [Viewport] /// /// See also: /// /// * [_DraggableScrollableSheetScrollController], which uses this as its [ScrollPosition].À‰Ã€ À‰ÃÀ‰ÃÀ‰êÀ‰òÀŠÀŠÀŠÀŠÀŠÀŠ,ÀŠ3ÀŠ2ÀŠDÀŠSÀŠRÀŠi!ÀŠwÀŠwÀŠ�0ÀжÀжÀŠÄNÀŠãÀŠãÀ‹À‹ÀŠûÀ‹ÀŠüÀ‹*À‹ À‹ À‹G0À‹aÀ‹a À‹}�gÀ‹�À‹�À‹–À‹¦À‹¥À‹}À‹~ÀŒê�ÀŒüÀŒüÀ� À�À�ÀŒêÀŒëÀŽ �_ÀŽÀŽÀŽ+ ÀŽ3ÀŽ2ÀŽ ÀŽ À�í€ëÀ�õÀ�õÀ�Þ6À�ãÀ�ãÀ‘KÀ‘À‘À‘k€ÝÀ‘}À‘}À‘kÀ‘lÀ’N‹ÓÀ’`À’`À’lÀ’tÀ’sÀ’NÀ’OÀž'�Àž9Àž9Àž>ÀžPÀžOÀžXÀžfÀžeÀž'Àž(ÀŸ<‡ÌÀ¢ÎÀ¢Îƒ}/// A widget that can notify a descendent [DraggableScrollableSheet] that it /// should reset its position to the initial state. /// /// The [Scaffold] uses this widget to notify a persistent bottom sheet that /// the user has tapped back if the sheet has started to cover more of the body /// than when at its initial position. This is important for users of assistive /// technology, where dragging may be difficult to communicate. /// /// This is just a wrapper on top of [DraggableScrollableController]. It is /// primarily useful for controlling a sheet in a part of the widget tree that /// the current code does not control (e.g. library code trying to affect a sheet /// in library users' code). Generally, it's easier to control the sheet /// directly by creating a controller and passing the controller to the sheet in /// its constructor (see [DraggableScrollableSheet.controller]).À£€ïÀ£·À£·À£Ò€ž/// Creates a widget that can notify descendent [DraggableScrollableSheet]s /// to reset to their initial position. /// /// The [child] parameter is required.À£Ô À£ÛÀ£ÚÀ£ßÀ£îÀ£íÀ£û€£À¤™À¤™€Š/// This child's [DraggableScrollableSheet] descendant will be reset when the /// [reset] method is applied to a context that includes it.À¤¥�õÀ¥ÌÀ¥Ì�/// Notifies any descendant [DraggableScrollableSheet] that it should reset /// to its initial position. /// /// Returns `true` if a [DraggableScrollableActuator] is available and /// some [DraggableScrollableSheet] is listening for updates, `false` /// otherwise.À¥ÒÀ¥àÀ¥ßÀ¦ eÀ¦ÐÀ¦ÐÀ¦ À¦¡À§ �pÀ§À§À§d1À§yÀ§yÀ§…À§“À§”À§œ€…À§°À§°À§¶À§ÄÀ§ÃÀ§œÀ§�À¨'RÀ¨9À¨9À¨'À¨(À¨€‚ÃÀ©À©/// A [ChangeNotifier] to use with [_InheritedResetNotifier] to notify /// descendants that they should reset to initial state.À©3€„À©3À©3À©AÀ©½€„Àª/Àª/c/// Whether someone called [sendReset] or not. /// /// This flag should be reset after checking it.Àª<ÀªH€øÀª¶Àª¶_/// Fires a reset notification to descendants. /// /// Returns false if there are no listeners.À«G„VÀ«MÀ«MÀ«”�!À¬]À¬]À¬t€¼/// Creates an [InheritedNotifier] that the [DraggableScrollableSheet] will /// listen to for an indication that it should reset itself back to [DraggableScrollableSheet.initialChildSize].À¬vÀ¬†À¬…À¬Œ&À¬«À¬ªÀ¬»+À¬ÀÀ¬ÀÀ¬ì‚®À­¬À­¬€§/// Specifies whether the [DraggableScrollableSheet] should reset to its /// initial position. /// /// Returns true if the notifier requested a reset, false otherwise.À­¸À­ÆÀ­ÅÀ¯¡Š¨À¯§À¯§À¯Óƒ+À¯ÓÀ¯ÓÀ¯æÀ¯îÀ¯ýÀ¯üÀ° À°À°À°1#À°HÀ°GÀ°[À°fÀ°eÀ°�À°ˆÀ°‡À³À³À³À³À³0À³0À³¬)À³ÀÀ³ÀÀ³ÏÀ³Ü À³îÀ³îÀ´qÀ´À´À´ À´"À´!À´À´À´zSÀ´ŒÀ´ŒÀ´“ À´›À´šÀ´zÀ´{À´Ó�SÀ´çÀ´çÀ´é À´ñÀ´ðÀ´ÓÀ´ÔÀ¶ÛƒkÀ¶âÀ¶âÀ¶ïÀ¶÷À¶öÀ·À·À·„µ�÷†D†D�/// The signature of a method that provides a [BuildContext] and /// [ScrollController] for building a widget that may overflow the draggable /// [Axis] of the containing [DraggableScrollableSheet]. /// /// Users should apply the [scrollController] to a [ScrollView] subclass, such /// as a [SingleChildScrollView], [ListView] or [GridView], to have the whole /// sheet be draggable.†s†�†€†‰!†›†š€²package:flutter/material.dart€ã&package:flutter_test/flutter_test.dart�"primary_scroll_controller.dart�Tscroll_configuration.dart��scroll_view.dart�¥scrollable.dart�Èsingle_child_scroll_view.dart�ù viewport.dart„¶=€ˆ€§€©€Ú���K�x�œ�¿�ð‚‚‚‚:‚<‚j‚•‚¾‚À‚ւ+ƒJƒpƒ�ƒ¯ƒÑƒõ„„4„h„Š„³„µ„÷…E……„…Ô†#†<†_†®†°†Ü†á‡3‡ƒ‡Òˆ ˆˆ`ˆ¯ˆ´ˆþ‰N‰˜‰çŠ4ŠkŠ©Šå‹ ‹7‹p‹w‹|‹~‹ÁŒŒŒnŒƒŒ›ŒÐŒÕŒ×��)�A�x�}��Ö�üŽŽPŽUŽWŽºŽÝŽä�3�����ê�ì�I�q�‰�Ç�Ì�Α‘X‘_‘±’’’$’q’Ó“H“O“ž“¾“Å”&”]”d”­”ò••z•’•·•ß–3–n–¥–­–â——b———Ë—û˜˜n˜ž˜Å˜Ð˜Ú˜â™ ™;™_™¤™®™·™ášEš`šuš}š‚š„šÑ› ››_›¦›­›üœOœhœoœÍ��"�:�_�¦�éžžKžž¬ž¹žüŸŸ Ÿ ŸsŸ…Ÿ�ŸÀŸÅŸÇŸãŸð  g Â Ê Ï Ñ¡¡,¡P¡š¡¢¡Ï¢¢h¢m¢o¢±££U£m£¹¤ ¤U¤Œ¤¦¤­¤²¤´¤ä¤þ¥,¥:¥‹¥’¥·¥Ø¥Ý¥ß¦¦\¦‚¦‰¦­¦²¦µ¦·§§H§M§‘§–§Ú¨+¨}¨‚¨Ï© ©©X©ª©ùªGª�ªà«««e«±«÷¬E¬e¬j¬³­­U­Z­ª­ú®H®b®g®|®�®Ð¯¯l¯·° °)°.°›°è°í±B±‚±ý²²b²g²Ô²å³³l³�³ ³Â³á³ÿ´´0´E´f´|´¥´Á´æµ µ=µoµÇµÉ¶¶8¶?¶ˆ¶Ù·/·6·Y·{·}·Î·ì·ó¸¸5¸7¸ˆ¸¦¸­¸Ð¸î¸ð¹B¹Q¹X¹¤¹óº"º)ºKºaºcº±ºÔºÛ»-»»Ð»×¼"¼†¼�¼Ü½½h½”½¨½ª½è½ï¾>¾Š¾¡¾¨¾õ¿H¿“¿ª¿±À@À@>À@EÀ@’À@áÀA3ÀAUÀAWÀAŠÀA‘ÀAáÀBÀB@ÀBBÀB�ÀBÃÀBÅÀCÀC;ÀCBÀC�ÀCÆÀCìÀCîÀD<ÀDˆÀD ÀDÊÀDÌÀDÙÀE/ÀE2ÀE4ÀEÀE¼ÀEÝÀEâÀF2ÀF{ÀFÃÀG ÀGYÀG¤ÀGÏÀGÔÀH"ÀHrÀHÄÀIÀI]ÀI®ÀIÿÀJ;ÀJ˜ÀJêÀJúÀKÀKSÀK¤ÀKÉÀKäÀLÀL ÀLBÀL^ÀL‡ÀL©ÀLËÀLðÀMÀMAÀMmÀMoÀM¼ÀMÔÀMÖÀN ÀN&ÀN(ÀNNÀNiÀNkÀNžÀN½ÀN¿ÀOÀO ÀO\ÀOªÀOÞÀOýÀOÿÀPOÀPŒÀP“ÀPÝÀQÀQÀQÀQKÀQyÀQ�ÀQöÀQþÀRÀRÀRÀREÀR{ÀR«ÀR°ÀRýÀSMÀSRÀS¥ÀSªÀSÕÀT"ÀTAÀT\ÀTxÀT”ÀT­ÀTËÀTëÀU ÀU5ÀULÀUcÀUŒÀUªÀUÈÀUðÀVÀVbÀV�ÀV·ÀVâÀW4ÀW9ÀW;ÀW]ÀW_ÀWxÀW‘ÀW¥ÀWÆÀWðÀX ÀX3ÀX`ÀX{ÀX}ÀXÅÀXÙÀXÛÀY*ÀY9ÀYƒÀY“ÀYÝÀZ,ÀZ|ÀZÊÀZòÀ[À[À[>À[tÀ[vÀ[§À[èÀ[êÀ\6À\8À\ˆÀ\¿À\ÆÀ]À]gÀ]xÀ]´À]ÒÀ]õÀ]úÀ]üÀ^GÀ^�À^ˆÀ^ÓÀ_À_ZÀ_…À_£À_ÀÀ`À`3À`KÀ`cÀ`„À`“À`šÀ`×À`ÜÀ`ÞÀa)ÀaIÀaPÀa¢Àa¹ÀaôÀb<ÀbjÀbyÀb€Àb§ÀbÍÀbèÀcÀcÀcBÀc[Àc’Àc¬Àc±Àc³ÀcÛÀd ÀdÀdÀd8ÀdfÀdkÀdmÀd�Àd°ÀdÍÀdÒÀdÔÀdøÀeÀe4ÀeMÀesÀe•ÀeÄÀeïÀe÷ÀfÀf3ÀfLÀf_Àf|Àf±ÀfÒÀg#ÀgAÀglÀgÃÀgÍÀgìÀh ÀhBÀhJÀhOÀhRÀhTÀh¤ÀhéÀiÀiÀiÀi5ÀiMÀisÀi˜Ài½Ài×ÀiþÀj:ÀjgÀj¥Àj­ÀkÀk6Àk;Àk=ÀkcÀk³ÀkìÀkûÀlHÀl´Àl¾ÀlÍÀm ÀmbÀmlÀmsÀmÁÀnÀnEÀnLÀnbÀn²ÀnÏÀoÀo&Ào+Ào-Ào:Ào‚Ào©ÀoßÀpÀp=ÀpDÀpdÀpiÀpkÀpxÀpšÀp¾Àp÷ÀqÀq Àq%Àq'Àq4Àq\ÀqˆÀq¶ÀqÆÀrÀrhÀrÃÀrýÀs)Às]Às|ÀsŽÀsÛÀsëÀsùÀt3Àt;Àt@ÀtBÀtOÀtcÀt‰Àt£Àt±ÀtéÀtðÀuÀu(Àu-Àu/ÀuvÀu±ÀuÙÀuþÀv#Àv=ÀvdÀv ÀvÍÀw ÀwÀwaÀw¸ÀwáÀx-ÀxOÀxŠÀx©ÀxÁÀyÀyAÀy�ÀyÙÀz(ÀzzÀz®ÀzùÀ{MÀ{‘À{ÍÀ| À|0À|;À|sÀ|zÀ|À|�À|µÀ|æÀ} À}nÀ}–À}ÅÀ}ÒÀ}ôÀ~ À~kÀ~‘À~–À~™À~›À~íÀÀÀiÀ»ÀöÀûÀ€ À€À€jÀ€ƒÀ€ÇÀ�À�.À�zÀ�ÀÀ�ÂÀ�ãÀ‚À‚ À‚À‚XÀ‚tÀ‚�À‚²À‚¹À‚îÀƒ6ÀƒOÀƒpÀƒ�Àƒ˜Àƒ�ÀƒŸÀƒ¬ÀƒåÀ„À„<À„AÀ„CÀ„PÀ„‹À„ÍÀ„ÏÀ„áÀ…À…&À…FÀ…�À…¯À…ëÀ†À†]À†dÀ†·À†¼À†¾À†ËÀ†õÀ‡À‡3À‡8À‡;À‡=À‡wÀ‡©À‡®À‡þÀˆMÀˆˆÀˆÒÀˆñÀˆöÀ‰À‰ À‰hÀ‰ÁÀ‰îÀŠ ÀŠ(ÀŠ@ÀŠ^ÀŠeÀŠgÀŠ�ÀŠÂÀ‹À‹CÀ‹EÀ‹yÀ‹{À‹ˆÀ‹¯À‹ÉÀ‹óÀ‹õÀŒ3ÀŒBÀŒIÀŒKÀŒyÀŒ±ÀŒÚÀŒáÀŒæÀŒèÀŒõÀ�*À�[À�¯À�ÒÀ�ÙÀŽÀŽÀŽÀŽÀŽ<ÀŽZÀŽ‹À޹ÀŽèÀ�+À�9À�^À�eÀ�jÀ�lÀ�¼À�ëÀ�À�PÀ�‡À�ÌÀ�ÕÀ�ÚÀ�ÜÀ‘À‘À‘gÀ‘iÀ‘vÀ‘ŠÀ‘ÞÀ’À’ À’/À’EÀ’JÀ’LÀ’YÀ’€À’°À’áÀ“À“4À“CÀ“JÀ“�À“¿À“àÀ“âÀ” À”!À”jÀ”“À”¼À”àÀ•À•MÀ•}À•‡À••À•äÀ–6À–dÀ–£À–ÌÀ–éÀ—À—#À—*À—,À—€À—ÑÀ—îÀ—öÀ˜+À˜-À˜^À˜qÀ˜·À˜èÀ™*À™}À™ÏÀšÀš>ÀšRÀš~ÀšÖÀšüÀ›!À›VÀ› À›ñÀœÀœJÀœkÀœ±Àœ¼ÀœÛÀœäÀœëÀœíÀ�À�!À�\À� À�ÞÀžÀžÀžÀž#Àž%Àž2Àž|ÀžÎÀžýÀŸ2ÀŸ7ÀŸ:ÀŸ<ÀŸŠÀŸ¿ÀŸÄÀ À cÀ ´À õÀ úÀ¡GÀ¡—À¡êÀ¢4À¢†À¢ÈÀ£À£SÀ£~À£…À£¯À£÷À£ùÀ¤JÀ¤ŠÀ¤¡À¤£À¤òÀ¥À¥À¥cÀ¥¬À¥¾À¥ëÀ¦À¦jÀ¦—À¦œÀ¦žÀ¦«À§À§ À§ À§bÀ§˜À§šÀ§§À§ÏÀ¨À¨#À¨%À¨2À¨FÀ¨`À¨vÀ¨{À¨~À¨€À¨ÈÀ©À©1À©GÀ©tÀ©­À©´À©¹À©»À©íÀ©ôÀª(ÀªDÀªFÀªxÀªÀª¯ÀªÅÀªßÀªôÀªûÀ«À«+À«=À«BÀ«EÀ«GÀ«’À«áÀ¬UÀ¬·À¬¹À¬èÀ¬êÀ­6À­OÀ­VÀ­žÀ­ÑÀ­öÀ®FÀ®aÀ®vÀ®}À®­À¯À¯KÀ¯€À¯—À¯œÀ¯ŸÀ¯¡À¯ÑÀ¯êÀ°À°-À°WÀ°}À°“À°›À°ßÀ°áÀ±7À±”À±›À±ñÀ²DÀ²oÀ²«À²¹À²ôÀ²ûÀ³À³À³À³;À³=À³ŠÀ³ªÀ³ØÀ³ÚÀ³ÿÀ´À´À´*À´CÀ´TÀ´[À´qÀ´vÀ´xÀ´…À´£À´ÊÀ´ÏÀ´ÑÀ´ÞÀ´ùÀµ5ÀµqÀµ¬ÀµåÀ¶À¶ À¶#À¶(À¶*À¶tÀ¶¼À¶ÙÀ·'À·†À·§À·ËÀ·ÒÀ¸À¸VÀ¸ŽÀ¸æÀ¹"À¹@À¹PÀ¹jÀ¹sÀ¹zÀ¹ºÀ¹ÜÀºÀºÀºCÀºHÀºK DraggableScrollableControllerDraggableScrollableSheetDraggableScrollableNotification_DraggableSheetExtent_DraggableScrollableSheetState)_DraggableScrollableSheetScrollController'_DraggableScrollableSheetScrollPositionDraggableScrollableActuator!_DraggableScrollableActuatorState_ResetNotifier_InheritedResetNotifier_SnappingSimulation\¥