From a6101ce895397ad0fef3c7bbc9533157b40a10f2 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sat, 30 May 2020 11:29:04 +0530 Subject: [PATCH 01/49] Finished Carousel --- lib/screens/HomeScreen.dart | 185 ++++++++++++++++++------------------ 1 file changed, 95 insertions(+), 90 deletions(-) diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 0fb6ba7..4986cf8 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -212,110 +212,115 @@ class _HomeScreenState extends State with TickerProviderStateMixin { } if (snapshot.connectionState == ConnectionState.done) { List data = snapshot.data; - return PageView( - controller: _pageController, + return Stack( + alignment: Alignment.bottomLeft, children: [ - for (int i = 0; i < 5; i++) - Stack( - alignment: Alignment.bottomLeft, - children: [ + PageView( + controller: _pageController, + children: [ + for (int i = 0; i < 5; i++) InkWell( onTap: () { - Navigator.of(context).pushNamed('/newsarticle', arguments: {'index': i + 100, 'news': data[i]}); + Navigator.of(context).pushNamed('/newsarticle', + arguments: {'index': i + 100, 'news': data[i]}); }, - child: Container( - child: CachedNetworkImage( - height: MediaQuery.of(context).size.height * 0.35, - imageUrl: data[i].imageUrl, - fit: BoxFit.cover, - placeholder: (BuildContext context, String url) => - Image.asset( - 'assets/images/news_default.png', - fit: BoxFit.cover, + child: Stack( + alignment: Alignment.bottomLeft, + children: [ + Container( + child: CachedNetworkImage( + height: MediaQuery.of(context).size.height * 0.35, + imageUrl: data[i].imageUrl, + fit: BoxFit.cover, + placeholder: (BuildContext context, String url) => + Image.asset( + 'assets/images/news_default.png', + fit: BoxFit.cover, + ), + ), ), - ), - ), - ), - Align( - alignment: Alignment.bottomCenter, - child: Container( - height: MediaQuery.of(context).size.height * 0.12, - color: Colors.black.withOpacity(0.4), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: - const EdgeInsets.symmetric(horizontal: 12.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, + Container( + color: Colors.black.withOpacity(0.4), + padding: + EdgeInsets.only(bottom: MediaQuery.of(context).size.height * 0.02, left: 12.0, right: 12.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Flexible( + child: Text( + data[i].title, + style: TextStyle( + fontWeight: FontWeight.w300, + fontSize: 16, + color: Colors.white + ), + ), + ), + Row( children: [ - Flexible( + Padding( + padding: const EdgeInsets.only(right: 4.0), child: Text( - data[i].title, - style: TextStyle( - fontWeight: FontWeight.w300, - fontSize: 16, - color: Colors.white - ), + data[i].source, + style: TextStyle(fontSize: 14, color: Colors.amberAccent), ), ), - Row( - children: [ - Padding( - padding: const EdgeInsets.only(right: 4.0), - child: Text( - data[i].source, - style: TextStyle(fontSize: 14, color: Colors.amberAccent), - ), - ), - Text( - '1hr', - style: TextStyle( - fontSize: 14, - color: Colors.amberAccent), - ) - ], + Text( + '1hr', + style: TextStyle( + fontSize: 14, + color: Colors.amberAccent), ) ], - ), - ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - for (int i = 0; i < 5; i++) - Padding( - padding: EdgeInsets.symmetric(horizontal: 4.0), - child: Container( - height: 10, - width: 10, - decoration: BoxDecoration( - color: carouselIndex == i - ? Theme.of(context).primaryColor - : Colors.white, - borderRadius: BorderRadius.circular(10.0)), - ), - ) - ], - ), - ], - ), - ), + ) + ], + ), + ) + ], ), ), - ], - ) + ], + onPageChanged: (int index) { + setState(() { + carouselIndex = index; + }); + }, + ), + Align( + alignment: Alignment.bottomCenter, + child: Container( + height: MediaQuery.of(context).size.height * 0.02, + color: Colors.black.withOpacity(0.1), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + for (int i = 0; i < 5; i++) + Padding( + padding: EdgeInsets.symmetric(horizontal: 4.0), + child: InkWell( + onTap: () { + _pageController.animateToPage(i, duration: Duration(milliseconds: 200), curve: Curves.easeIn); + }, + child: Container( + height: 10, + width: 10, + decoration: BoxDecoration( + color: carouselIndex == i + ? Theme.of(context).primaryColor + : Colors.white, + borderRadius: BorderRadius.circular(10.0)), + ), + ), + ) + ], + ), + ), + ) ], - onPageChanged: (int index) { - setState(() { - carouselIndex = index; - }); - }, ); } }, From 53571483edb2f3abea169988a03746eca1955e03 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Tue, 2 Jun 2020 16:38:58 +0530 Subject: [PATCH 02/49] Integrated HomeView model and app provider --- ios/Flutter/Generated 12.xcconfig | 10 ++ ios/Flutter/flutter_export_environment 12.sh | 11 ++ lib/Provider/AppProvider.dart | 22 +++ lib/Provider/HomeViewModel.dart | 16 ++ lib/commons/BottomNavbar.dart | 19 ++- lib/main.dart | 11 +- lib/screens/FavouriteScreen1.dart | 5 - lib/screens/FavouriteScreen2.dart | 11 +- lib/screens/HomeScreen.dart | 162 +++++++++--------- lib/screens/News.dart | 169 +++++++++++++++++-- lib/{helper => services}/CustomRouter.dart | 0 lib/services/DatabaseHelper.dart | 54 ++++++ lib/{helper => services}/FlushbarHelper.dart | 0 lib/services/GetItLocator.dart | 14 ++ lib/{helper => services}/LocalStorage.dart | 0 lib/{helper => services}/NewsService.dart | 0 lib/{helper => services}/TeamService.dart | 5 +- pubspec.lock | 9 +- pubspec.yaml | 3 + 19 files changed, 397 insertions(+), 124 deletions(-) create mode 100644 ios/Flutter/Generated 12.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 12.sh create mode 100644 lib/Provider/HomeViewModel.dart rename lib/{helper => services}/CustomRouter.dart (100%) create mode 100644 lib/services/DatabaseHelper.dart rename lib/{helper => services}/FlushbarHelper.dart (100%) create mode 100644 lib/services/GetItLocator.dart rename lib/{helper => services}/LocalStorage.dart (100%) rename lib/{helper => services}/NewsService.dart (100%) rename lib/{helper => services}/TeamService.dart (88%) diff --git a/ios/Flutter/Generated 12.xcconfig b/ios/Flutter/Generated 12.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 12.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 12.sh b/ios/Flutter/flutter_export_environment 12.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 12.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index 9cffcdf..cc23f75 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -1,10 +1,32 @@ import 'package:flutter/material.dart'; +import '../services/NewsService.dart'; +import '../services/LocalStorage.dart'; +import '../services/GetItLocator.dart'; +import '../models/News.dart'; class AppProvider extends ChangeNotifier { int _navbarIndex; + List _newsList; + List _favouriteNewsList; AppProvider(this._navbarIndex); int get navbarIndex => _navbarIndex; void set navbarIndex(int index) { _navbarIndex = index; + notifyListeners(); } + NewsService _newsService = locator(); + Future loadAllNews() async{ + _newsList = await _newsService.fetchNews('football'); + notifyListeners(); + } + + Future loadFavouriteNews() async { + String teamName = await LocalStorage.getString('teamName'); + _favouriteNewsList = await _newsService.fetchNews(teamName); + notifyListeners(); + } + + List get newsList => _newsList; + List get favouriteNewsList => _favouriteNewsList; + } \ No newline at end of file diff --git a/lib/Provider/HomeViewModel.dart b/lib/Provider/HomeViewModel.dart new file mode 100644 index 0000000..567d29a --- /dev/null +++ b/lib/Provider/HomeViewModel.dart @@ -0,0 +1,16 @@ +import 'package:flutter/foundation.dart'; +import 'package:sportsmojo/models/News.dart'; +import 'package:sportsmojo/services/GetItLocator.dart'; +import 'package:sportsmojo/services/NewsService.dart'; +import '../services/LocalStorage.dart'; + +class HomeViewModel extends ChangeNotifier { + int _carouselIndex; + HomeViewModel(this._carouselIndex); + + int get carouselIndex => _carouselIndex; + void set carouselIndex(int index) { + _carouselIndex = index; + notifyListeners(); + } +} \ No newline at end of file diff --git a/lib/commons/BottomNavbar.dart b/lib/commons/BottomNavbar.dart index c997b94..48d084e 100644 --- a/lib/commons/BottomNavbar.dart +++ b/lib/commons/BottomNavbar.dart @@ -31,15 +31,16 @@ class BottomNavbar extends StatelessWidget { title: Text('Login', style: _bottomNavBarStyle,) ) ]; - final appProvider = Provider.of(context); - return BottomNavigationBar( - type: BottomNavigationBarType.fixed, - items: bottomNavbarItems, - onTap: (int index) { - appProvider.navbarIndex = index; - Navigator.of(context).pushReplacementNamed(routes[index]); - }, - currentIndex: appProvider.navbarIndex, + return Consumer( + builder: (context, model, child) => BottomNavigationBar( + type: BottomNavigationBarType.fixed, + items: bottomNavbarItems, + onTap: (int index) { + model.navbarIndex = index; + Navigator.of(context).pushReplacementNamed(routes[index]); + }, + currentIndex: model.navbarIndex, + ), ); } } \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index dd7b1e6..04a292d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,18 +2,23 @@ import 'package:flutter/material.dart'; import 'screens/HomeScreen.dart'; import 'package:provider/provider.dart'; import 'Provider/AppProvider.dart'; -import 'helper/CustomRouter.dart'; -import 'screens/FavouriteScreen1.dart'; +import 'services/CustomRouter.dart'; +import 'services/GetItLocator.dart'; +import 'Provider/AppProvider.dart'; + void main() { + setupLocator(); final ThemeData theme = ThemeData( primaryColor: Color(0xFF50C878), primaryColorDark: Color(0XFFA0A5AA) ); + AppProvider appProvider = locator(); + runApp( MultiProvider( providers: [ ChangeNotifierProvider( - create: (context) => AppProvider(0), + create: (context) => appProvider, ) ], child: MaterialApp( diff --git a/lib/screens/FavouriteScreen1.dart b/lib/screens/FavouriteScreen1.dart index e060b13..094f941 100644 --- a/lib/screens/FavouriteScreen1.dart +++ b/lib/screens/FavouriteScreen1.dart @@ -1,11 +1,6 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; -import 'package:pk_skeleton/pk_skeleton.dart'; -import 'package:sportsmojo/commons/custom_icons.dart'; -import '../commons/BottomNavbar.dart'; import '../constants.dart'; -import '../models/Team.dart'; -import '../helper/TeamService.dart'; class FavouriteLeague extends StatefulWidget { @override diff --git a/lib/screens/FavouriteScreen2.dart b/lib/screens/FavouriteScreen2.dart index cd57415..7724fc8 100644 --- a/lib/screens/FavouriteScreen2.dart +++ b/lib/screens/FavouriteScreen2.dart @@ -1,13 +1,11 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; -import 'package:pk_skeleton/pk_skeleton.dart'; import 'package:sportsmojo/commons/custom_icons.dart'; -import '../commons/BottomNavbar.dart'; -import '../constants.dart'; import '../models/Team.dart'; -import '../helper/TeamService.dart'; -import '../helper/LocalStorage.dart'; +import '../services/TeamService.dart'; +import '../services/LocalStorage.dart'; +import '../services/GetItLocator.dart'; class FavouriteTeam extends StatefulWidget { final int leagueId; @@ -25,9 +23,10 @@ class _FavouriteTeamState extends State { @override void initState() { + TeamService _teamService = locator(); super.initState(); setState(() { - futureTeamList = TeamService(id: widget.leagueId).fetchTeams(); + futureTeamList = _teamService.fetchTeams(id: widget.leagueId); }); } diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 4986cf8..b22b6d2 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -1,11 +1,15 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import '../commons/BottomNavbar.dart'; import '../commons/NewsCard.dart'; -import '../helper/NewsService.dart'; import '../models/News.dart'; import 'package:pk_skeleton/pk_skeleton.dart'; -import '../helper/FlushbarHelper.dart'; +import '../services/FlushbarHelper.dart'; +import '../Provider/HomeViewModel.dart'; +import '../services/GetItLocator.dart'; +import '../Provider/AppProvider.dart'; +import 'package:pu'; class HomeScreen extends StatefulWidget { @override @@ -16,34 +20,44 @@ class HomeScreen extends StatefulWidget { class _HomeScreenState extends State with TickerProviderStateMixin { final _pageController = PageController(initialPage: 0); - Future> futureNewsList; - Future> futureFavouriteNewsList; + RefreshController _refreshController = RefreshController(initialRefresh: false); + String teamName; @override void initState() { + final initialState = Provider.of(context, listen: false); + if(initialState.newsList == null) { + initialState.loadAllNews(); + } + if(initialState.loadFavouriteNews() == null) { + initialState.loadFavouriteNews(); + } super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) => showAlert()); - setState(() { - futureFavouriteNewsList = NewsService().fetchNews('Real madrid'); - futureNewsList = NewsService().fetchNews('Football'); - }); } - int carouselIndex = 0; + + HomeViewModel _viewModel = locator(); @override Widget build(BuildContext context) { + final AppProvider appProvider = Provider.of(context); return Scaffold( bottomNavigationBar: BottomNavbar(), - body: SafeArea( - child: SingleChildScrollView( - child: Container( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible(fit: FlexFit.loose, child: carousel()), - UpcomingMatchesSection(), - NewsSection() - ], + body: ChangeNotifierProvider( + create: (context) => _viewModel, + child: Consumer( + builder: (context, model, child) => SafeArea( + child: SingleChildScrollView( + child: Container( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible(fit: FlexFit.loose, child: carousel(model: model, appProvider: appProvider)), + UpcomingMatchesSection(), + NewsSection(model: model, appProvider: appProvider) + ], + ), + ), ), ), ), @@ -131,7 +145,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { ); } - Widget NewsSection() { + Widget NewsSection({HomeViewModel model, AppProvider appProvider}) { return Padding( padding: const EdgeInsets.all(8.0), child: Card( @@ -146,11 +160,19 @@ class _HomeScreenState extends State with TickerProviderStateMixin { textAlign: TextAlign.left, ), ), - FutureBuilder>( - future: futureNewsList, - builder: (BuildContext context, AsyncSnapshot snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return ListView.builder( + appProvider.newsList != null ? ListView.separated( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: appProvider.newsList.length, + separatorBuilder: (BuildContext context, int index) { + return Divider(); + }, + itemBuilder: (BuildContext context, int index) { + return NewsCard( + index: index, + news: appProvider.newsList[index], + ); + }) : ListView.builder( itemCount: 5, shrinkWrap: true, physics: NeverScrollableScrollPhysics(), @@ -159,60 +181,18 @@ class _HomeScreenState extends State with TickerProviderStateMixin { isCircularImage: true, isBottomLinesActive: true, ); - }); - } - if (snapshot.connectionState == ConnectionState.done) { - return ListView.separated( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: snapshot.data.length, - separatorBuilder: (BuildContext context, int index) { - return Divider(); - }, - itemBuilder: (BuildContext context, int index) { - return NewsCard( - index: index, - news: snapshot.data[index], - ); - }); - } - }, - ) + }) ], ), ), ); } - Widget carousel() { + Widget carousel({HomeViewModel model, AppProvider appProvider}) { + List favouriteNewsList = appProvider.favouriteNewsList; return Container( height: MediaQuery.of(context).size.height * 0.35, - child: FutureBuilder( - future: futureFavouriteNewsList, - builder: (BuildContext context, AsyncSnapshot snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return PageView( - controller: _pageController, - children: [ - for (int i = 0; i < 5; i++) - Container( - height: MediaQuery.of(context).size.height * 0.35, - child: Image.asset( - 'assets/images/news_default.png', - fit: BoxFit.cover, - ), - ), - ], - onPageChanged: (int index) { - setState(() { - carouselIndex = index; - }); - }, - ); - } - if (snapshot.connectionState == ConnectionState.done) { - List data = snapshot.data; - return Stack( + child: favouriteNewsList != null ? Stack( alignment: Alignment.bottomLeft, children: [ PageView( @@ -222,7 +202,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { InkWell( onTap: () { Navigator.of(context).pushNamed('/newsarticle', - arguments: {'index': i + 100, 'news': data[i]}); + arguments: {'index': i + 100, 'news': favouriteNewsList[i]}); }, child: Stack( alignment: Alignment.bottomLeft, @@ -230,7 +210,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { Container( child: CachedNetworkImage( height: MediaQuery.of(context).size.height * 0.35, - imageUrl: data[i].imageUrl, + imageUrl: favouriteNewsList[i].imageUrl, fit: BoxFit.cover, placeholder: (BuildContext context, String url) => Image.asset( @@ -251,7 +231,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { children: [ Flexible( child: Text( - data[i].title, + favouriteNewsList[i].title, style: TextStyle( fontWeight: FontWeight.w300, fontSize: 16, @@ -264,7 +244,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { Padding( padding: const EdgeInsets.only(right: 4.0), child: Text( - data[i].source, + favouriteNewsList[i].source, style: TextStyle(fontSize: 14, color: Colors.amberAccent), ), ), @@ -284,9 +264,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { ), ], onPageChanged: (int index) { - setState(() { - carouselIndex = index; - }); + model.carouselIndex = index; }, ), Align( @@ -309,7 +287,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { height: 10, width: 10, decoration: BoxDecoration( - color: carouselIndex == i + color: model.carouselIndex == i ? Theme.of(context).primaryColor : Colors.white, borderRadius: BorderRadius.circular(10.0)), @@ -321,10 +299,22 @@ class _HomeScreenState extends State with TickerProviderStateMixin { ), ) ], - ); - } + ) : PageView( + controller: _pageController, + children: [ + for (int i = 0; i < 5; i++) + Container( + height: MediaQuery.of(context).size.height * 0.35, + child: Image.asset( + 'assets/images/news_default.png', + fit: BoxFit.cover, + ), + ), + ], + onPageChanged: (int index) { + model.carouselIndex = index; }, - ), + ) ); } @@ -337,4 +327,12 @@ class _HomeScreenState extends State with TickerProviderStateMixin { seconds: 3); } } + + Future _onRefresh() async { + + } + + Future _onLoading() async { + + } } diff --git a/lib/screens/News.dart b/lib/screens/News.dart index c2017f5..8137aca 100644 --- a/lib/screens/News.dart +++ b/lib/screens/News.dart @@ -1,25 +1,164 @@ import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import '../commons/BottomNavbar.dart'; +import '../models/News.dart'; +import '../services/GetItLocator.dart'; +import '../commons/NewsCard.dart'; +import 'package:pk_skeleton/pk_skeleton.dart'; +import '../services/LocalStorage.dart'; +import '../Provider/AppProvider.dart'; + +class NewsScreen extends StatefulWidget { + @override + _NewsScreenState createState() => _NewsScreenState(); +} + +class _NewsScreenState extends State with TickerProviderStateMixin { + TabController _tabController; + String teamName; + void initState(){ + final initialState = Provider.of(context, listen: false); + if(initialState.newsList == null) { + initialState.loadAllNews(); + } + if(initialState.loadFavouriteNews() == null) { + initialState.loadFavouriteNews(); + } + super.initState(); + _tabController = TabController(vsync: this, length: 2); + LocalStorage.getString('teamName').then((value) { + setState(() { + teamName = value; + }); + }); + } -class NewsScreen extends StatelessWidget { Widget build(BuildContext context) { - return Scaffold( - bottomNavigationBar: BottomNavbar(), - backgroundColor: Colors.blueAccent, - body: Center( - child: Card( - child: Container( - padding: EdgeInsets.all(8.0), - child: SelectableText( - 'News', - style: TextStyle( - fontSize: 30, - fontWeight: FontWeight.w500 - ), + return Consumer( + builder: (context, model, child) => Scaffold( + bottomNavigationBar: BottomNavbar(), + appBar: PreferredSize( + preferredSize: Size.fromHeight(100.0), + child: AppBar( + backgroundColor: Theme.of(context).primaryColor, + title: Text('News', style: TextStyle(color: Colors.white),), + bottom: TabBar( + controller: _tabController, + tabs: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text('All', style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.w400),), + ), + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text('$teamName', style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.w400),), + ) + ], + indicatorSize: TabBarIndicatorSize.tab, + indicator: UnderlineTabIndicator( + borderSide: BorderSide( + width: 3.0, + color: Colors.white)) ), ), ), - ) + body: TabBarView( + controller: _tabController, + children: [ + allNews(model: model), + favouriteTeamNews(model: model) + ], + ) + ), + ); + } + + Widget allNews({AppProvider model}) { + return SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + 'Latest News', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500), + textAlign: TextAlign.left, + ), + ), + model.newsList == null ? ListView.builder( + itemCount: 5, + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }) : ListView.separated( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: model.newsList.length, + separatorBuilder: (BuildContext context, int index) { + return Divider(); + }, + itemBuilder: (BuildContext context, int index) { + return NewsCard( + index: index, + news: model.newsList[index], + ); + }) + ], + ), + ), + ); + } + + Widget favouriteTeamNews({AppProvider model}) { + return SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Card( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + 'Latest News', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500), + textAlign: TextAlign.left, + ), + ), + model.favouriteNewsList == null ? ListView.builder( + itemCount: 5, + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }) + : ListView.separated( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: model.favouriteNewsList.length, + separatorBuilder: (BuildContext context, int index) { + return Divider(); + }, + itemBuilder: (BuildContext context, int index) { + return NewsCard( + index: index, + news: model.favouriteNewsList[index], + ); + }) + ], + ), + ), + ), ); } } \ No newline at end of file diff --git a/lib/helper/CustomRouter.dart b/lib/services/CustomRouter.dart similarity index 100% rename from lib/helper/CustomRouter.dart rename to lib/services/CustomRouter.dart diff --git a/lib/services/DatabaseHelper.dart b/lib/services/DatabaseHelper.dart new file mode 100644 index 0000000..1656a4e --- /dev/null +++ b/lib/services/DatabaseHelper.dart @@ -0,0 +1,54 @@ +import 'dart:io'; +import 'package:path/path.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:sqflite/sqflite.dart'; + +class DatabaseHelper { + static final String _databaseName = 'News.db'; + static final int _databaseVersion = 1; + static final String table = 'news'; + static Database _database; + Future get database async { + if(_database != null) return _database; + _database = await _initDatabase(); + return _database; + } + + DatabaseHelper._privateConstructor(); + static final DatabaseHelper instance = DatabaseHelper._privateConstructor(); + + Future _initDatabase() async { + Directory documentsDirectory = await getApplicationDocumentsDirectory(); + String path = join(documentsDirectory.path, _databaseName); + return await openDatabase(path, version: _databaseVersion, onCreate: _onCreate); + } + + Future _onCreate(Database db, int version) async { + await db.execute(''' + CREATE TABLE $table( + id INTEGER PRIMARY KEY, + source TEXT NOT NULL, + title TEXT NOT NULL, + content TEXT NOT NULL, + url TEXT NOT NULL, + imageUrl TEXT NOT NULL, + publishedAt TEXT NOT NULL, + ) + '''); + } + + // Inserts a row in the database where each key in the Map is a column name + // and the value is the column value. The return value is the id of the + // inserted row. + Future insert(Map row) async { + Database db = await instance.database; + return await db.insert(table, row); + } + + // All of the rows are returned as a list of maps, where each map is + // a key-value list of columns. + Future>> queryAllRows() async { + Database db = await instance.database; + return await db.query(table); + } +} \ No newline at end of file diff --git a/lib/helper/FlushbarHelper.dart b/lib/services/FlushbarHelper.dart similarity index 100% rename from lib/helper/FlushbarHelper.dart rename to lib/services/FlushbarHelper.dart diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart new file mode 100644 index 0000000..2a31026 --- /dev/null +++ b/lib/services/GetItLocator.dart @@ -0,0 +1,14 @@ +import 'NewsService.dart'; +import 'TeamService.dart'; +import 'package:get_it/get_it.dart'; +import '../Provider/HomeViewModel.dart'; +import '../Provider/AppProvider.dart'; + +GetIt locator = GetIt.instance; + +void setupLocator() { + locator.registerLazySingleton(() => NewsService()); + locator.registerLazySingleton(() => TeamService()); + locator.registerFactory(() => HomeViewModel(0)); + locator.registerFactory(() => AppProvider(0)); +} \ No newline at end of file diff --git a/lib/helper/LocalStorage.dart b/lib/services/LocalStorage.dart similarity index 100% rename from lib/helper/LocalStorage.dart rename to lib/services/LocalStorage.dart diff --git a/lib/helper/NewsService.dart b/lib/services/NewsService.dart similarity index 100% rename from lib/helper/NewsService.dart rename to lib/services/NewsService.dart diff --git a/lib/helper/TeamService.dart b/lib/services/TeamService.dart similarity index 88% rename from lib/helper/TeamService.dart rename to lib/services/TeamService.dart index 2df53b4..f6c0aa6 100644 --- a/lib/helper/TeamService.dart +++ b/lib/services/TeamService.dart @@ -1,15 +1,14 @@ import 'package:dio/dio.dart'; +import 'package:flutter/material.dart'; import '../models/Team.dart'; import '../secret.dart'; class TeamService { - int id; - TeamService({this.id}); static BaseOptions options = new BaseOptions(headers: { 'x-rapidapi-host': 'v3.football.api-sports.io', 'x-rapidapi-key': scoreApiKey }); final dio = new Dio(options); - Future> fetchTeams() async { + Future> fetchTeams({@required int id}) async { List teamList = []; try { final response = diff --git a/pubspec.lock b/pubspec.lock index f3bbd8c..e7c6c2e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -128,6 +128,13 @@ packages: description: flutter source: sdk version: "0.0.0" + get_it: + dependency: "direct main" + description: + name: get_it + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.2" http: dependency: transitive description: @@ -309,7 +316,7 @@ packages: source: hosted version: "1.5.5" sqflite: - dependency: transitive + dependency: "direct main" description: name: sqflite url: "https://pub.dartlang.org" diff --git a/pubspec.yaml b/pubspec.yaml index 1b9f182..adc5f80 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -32,6 +32,9 @@ dependencies: url_launcher: ^5.4.7 flushbar: ^1.10.4 flutter_spinkit: ^4.1.2+1 + sqflite: ^1.3.0 + get_it: ^4.0.2 + pull_to_refresh: ^1.5.7 dev_dependencies: flutter_test: sdk: flutter From ebdfbb2b72cfecb3def786c16defd92b69c58fa8 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Fri, 26 Jun 2020 22:59:21 +0530 Subject: [PATCH 03/49] Added tabs to score page --- lib/Provider/AppProvider.dart | 10 ++ lib/main.dart | 1 - lib/models/Match.dart | 10 ++ lib/screens/HomeScreen.dart | 45 ++++++--- lib/screens/News.dart | 37 +++++-- lib/screens/Score.dart | 176 ++++++++++++++++++++++------------ pubspec.lock | 7 ++ 7 files changed, 204 insertions(+), 82 deletions(-) create mode 100644 lib/models/Match.dart diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index cc23f75..25dff36 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -29,4 +29,14 @@ class AppProvider extends ChangeNotifier { List get newsList => _newsList; List get favouriteNewsList => _favouriteNewsList; + void set newsList(List news) { + _newsList = news; + notifyListeners(); + } + + void set favouriteNewsList(List news) { + _favouriteNewsList = news.sublist(0, 4); + notifyListeners(); + } + } \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 04a292d..b0eff66 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,7 +4,6 @@ import 'package:provider/provider.dart'; import 'Provider/AppProvider.dart'; import 'services/CustomRouter.dart'; import 'services/GetItLocator.dart'; -import 'Provider/AppProvider.dart'; void main() { setupLocator(); diff --git a/lib/models/Match.dart b/lib/models/Match.dart new file mode 100644 index 0000000..a96a8d1 --- /dev/null +++ b/lib/models/Match.dart @@ -0,0 +1,10 @@ +class Match{ + String competition; + String date; + String time; + String status; + String homeTeam; + String awayTeam; + int homeScore; + int awayScore; +} \ No newline at end of file diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index b22b6d2..6829960 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -9,7 +9,7 @@ import '../services/FlushbarHelper.dart'; import '../Provider/HomeViewModel.dart'; import '../services/GetItLocator.dart'; import '../Provider/AppProvider.dart'; -import 'package:pu'; +import 'package:pull_to_refresh/pull_to_refresh.dart'; class HomeScreen extends StatefulWidget { @override @@ -46,16 +46,27 @@ class _HomeScreenState extends State with TickerProviderStateMixin { body: ChangeNotifierProvider( create: (context) => _viewModel, child: Consumer( - builder: (context, model, child) => SafeArea( - child: SingleChildScrollView( - child: Container( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible(fit: FlexFit.loose, child: carousel(model: model, appProvider: appProvider)), - UpcomingMatchesSection(), - NewsSection(model: model, appProvider: appProvider) - ], + builder: (context, model, child) => SmartRefresher( + controller: _refreshController, + enablePullDown: true, + onLoading: () async{ + _onLoading(appProvider: appProvider); + }, + onRefresh: () async{ + _onRefresh(appProvider: appProvider); + }, + header: WaterDropHeader(), + child: SafeArea( + child: SingleChildScrollView( + child: Container( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible(fit: FlexFit.loose, child: carousel(model: model, appProvider: appProvider)), + UpcomingMatchesSection(), + NewsSection(model: model, appProvider: appProvider) + ], + ), ), ), ), @@ -328,11 +339,15 @@ class _HomeScreenState extends State with TickerProviderStateMixin { } } - Future _onRefresh() async { - + Future _onLoading({AppProvider appProvider}) async { + appProvider.newsList = null; + appProvider.favouriteNewsList = null; + _refreshController.loadComplete(); } - Future _onLoading() async { - + Future _onRefresh({AppProvider appProvider}) async { + await appProvider.loadFavouriteNews(); + await appProvider.loadAllNews(); + _refreshController.refreshCompleted(); } } diff --git a/lib/screens/News.dart b/lib/screens/News.dart index 8137aca..a2c45a1 100644 --- a/lib/screens/News.dart +++ b/lib/screens/News.dart @@ -7,6 +7,7 @@ import '../commons/NewsCard.dart'; import 'package:pk_skeleton/pk_skeleton.dart'; import '../services/LocalStorage.dart'; import '../Provider/AppProvider.dart'; +import 'package:pull_to_refresh/pull_to_refresh.dart'; class NewsScreen extends StatefulWidget { @override @@ -16,6 +17,7 @@ class NewsScreen extends StatefulWidget { class _NewsScreenState extends State with TickerProviderStateMixin { TabController _tabController; String teamName; + RefreshController _refreshController = RefreshController(initialRefresh: false); void initState(){ final initialState = Provider.of(context, listen: false); if(initialState.newsList == null) { @@ -62,12 +64,23 @@ class _NewsScreenState extends State with TickerProviderStateMixin { ), ), ), - body: TabBarView( - controller: _tabController, - children: [ - allNews(model: model), - favouriteTeamNews(model: model) - ], + body: SmartRefresher( + controller: _refreshController, + onRefresh: () { + _onRefresh(appProvider: model); + }, + onLoading: () { + _onLoading(appProvider: model); + }, + header: WaterDropHeader(), + enablePullDown: true, + child: TabBarView( + controller: _tabController, + children: [ + allNews(model: model), + favouriteTeamNews(model: model) + ], + ), ) ), ); @@ -161,4 +174,16 @@ class _NewsScreenState extends State with TickerProviderStateMixin { ), ); } + + Future _onLoading({AppProvider appProvider}) async { + appProvider.newsList = null; + appProvider.favouriteNewsList = null; + _refreshController.loadComplete(); + } + + Future _onRefresh({AppProvider appProvider}) async { + await appProvider.loadFavouriteNews(); + await appProvider.loadAllNews(); + _refreshController.refreshCompleted(); + } } \ No newline at end of file diff --git a/lib/screens/Score.dart b/lib/screens/Score.dart index 76d2dcc..86184b6 100644 --- a/lib/screens/Score.dart +++ b/lib/screens/Score.dart @@ -2,41 +2,91 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import '../commons/BottomNavbar.dart'; import '../commons/custom_icons.dart'; +import '../services/LocalStorage.dart'; class ScoreScreen extends StatefulWidget { @override _ScoreScreenState createState() => _ScoreScreenState(); } -class _ScoreScreenState extends State with TickerProviderStateMixin { +class _ScoreScreenState extends State + with TickerProviderStateMixin { + TabController _tabController; + String teamName; Animation animation; AnimationController _animationController; List _cardExpanded = List.generate(8, (index) => false); @override void initState() { super.initState(); - _animationController = AnimationController(vsync: this, duration: Duration(seconds: 1)); - animation = Tween(begin: 20.0, end: 0.0).animate(_animationController) - ..addListener(() { - setState(() {}); - }) - ..addStatusListener((status) { - if (status == AnimationStatus.completed) { - _animationController.reverse(); - } else if (status == AnimationStatus.dismissed) { - _animationController.forward(); - } - }); + _animationController = + AnimationController(vsync: this, duration: Duration(seconds: 1)); + animation = + Tween(begin: 20.0, end: 0.0).animate(_animationController) + ..addListener(() { + setState(() {}); + }) + ..addStatusListener((status) { + if (status == AnimationStatus.completed) { + _animationController.reverse(); + } else if (status == AnimationStatus.dismissed) { + _animationController.forward(); + } + }); _animationController.forward(); + _tabController = TabController(vsync: this, length: 2); + LocalStorage.getString('teamName').then((value) { + setState(() { + teamName = value; + }); + }); } + @override void dispose() { _animationController.dispose(); super.dispose(); } + Widget build(BuildContext context) { return Scaffold( bottomNavigationBar: BottomNavbar(), + appBar: PreferredSize( + preferredSize: Size.fromHeight(100.0), + child: AppBar( + backgroundColor: Theme.of(context).primaryColor, + title: Text( + 'Scores', + style: TextStyle(color: Colors.white), + ), + bottom: TabBar( + controller: _tabController, + tabs: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + 'All', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ), + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + '$teamName', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ) + ], + indicatorSize: TabBarIndicatorSize.tab, + indicator: UnderlineTabIndicator( + borderSide: BorderSide(width: 3.0, color: Colors.white))), + )), body: SafeArea( child: SingleChildScrollView( child: Container( @@ -53,7 +103,7 @@ class _ScoreScreenState extends State with TickerProviderStateMixin child: InkWell( onTap: () { List newList = - List.generate(8, (index) => false); + List.generate(8, (index) => false); newList[index] = !_cardExpanded[index]; setState(() { _cardExpanded = newList; @@ -68,7 +118,8 @@ class _ScoreScreenState extends State with TickerProviderStateMixin Text('La Liga'), Spacer(), Column( - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, children: [ Container( width: 20.0, @@ -87,22 +138,22 @@ class _ScoreScreenState extends State with TickerProviderStateMixin ], ), Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), + padding: const EdgeInsets.symmetric( + horizontal: 16.0), child: Row( children: [ Column( mainAxisAlignment: - MainAxisAlignment.spaceBetween, + MainAxisAlignment.spaceBetween, children: [ Padding( - padding: - const EdgeInsets.only(bottom: 4.0), + padding: const EdgeInsets.only( + bottom: 4.0), child: Container( height: 60, child: CachedNetworkImage( imageUrl: - 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/Real-Madrid-icon.png')), + 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/Real-Madrid-icon.png')), ), Text('Real Madrid') ], @@ -110,7 +161,7 @@ class _ScoreScreenState extends State with TickerProviderStateMixin Expanded( child: Row( mainAxisAlignment: - MainAxisAlignment.center, + MainAxisAlignment.center, children: [ Text( '5 - 4', @@ -122,13 +173,13 @@ class _ScoreScreenState extends State with TickerProviderStateMixin Column( children: [ Padding( - padding: - const EdgeInsets.only(bottom: 8.0), + padding: const EdgeInsets.only( + bottom: 8.0), child: Container( height: 60, child: CachedNetworkImage( imageUrl: - 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/FC-Barcelona-icon.png')), + 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/FC-Barcelona-icon.png')), ), Text('FC Barcelona') ], @@ -138,25 +189,26 @@ class _ScoreScreenState extends State with TickerProviderStateMixin ), if (_cardExpanded[index]) Padding( - padding: - EdgeInsets.symmetric(horizontal: 16.0), + padding: EdgeInsets.symmetric( + horizontal: 16.0), child: Row( mainAxisAlignment: - MainAxisAlignment.spaceBetween, + MainAxisAlignment.spaceBetween, children: [ Column( children: [ Row( mainAxisAlignment: - MainAxisAlignment.start, + MainAxisAlignment.start, children: [ Padding( - padding: - EdgeInsets.only(right: 2.0), + padding: EdgeInsets.only( + right: 2.0), child: Text( 'Benzema 4', style: TextStyle( - color: Color(0xff808080), + color: + Color(0xff808080), fontSize: 12), ), ), @@ -166,15 +218,16 @@ class _ScoreScreenState extends State with TickerProviderStateMixin ), Row( mainAxisAlignment: - MainAxisAlignment.start, + MainAxisAlignment.start, children: [ Padding( - padding: - EdgeInsets.only(right: 2.0), + padding: EdgeInsets.only( + right: 2.0), child: Text( 'Ramos 35', style: TextStyle( - color: Color(0xff808080), + color: + Color(0xff808080), fontSize: 12), ), ), @@ -184,15 +237,16 @@ class _ScoreScreenState extends State with TickerProviderStateMixin ), Row( mainAxisAlignment: - MainAxisAlignment.start, + MainAxisAlignment.start, children: [ Padding( - padding: - EdgeInsets.only(right: 2.0), + padding: EdgeInsets.only( + right: 2.0), child: Text( 'Modric 48', style: TextStyle( - color: Color(0xff808080), + color: + Color(0xff808080), fontSize: 12), ), ), @@ -202,15 +256,16 @@ class _ScoreScreenState extends State with TickerProviderStateMixin ), Row( mainAxisAlignment: - MainAxisAlignment.start, + MainAxisAlignment.start, children: [ Padding( - padding: - EdgeInsets.only(right: 2.0), + padding: EdgeInsets.only( + right: 2.0), child: Text( 'Vinicius 74\'', style: TextStyle( - color: Color(0xff808080), + color: + Color(0xff808080), fontSize: 12), ), ), @@ -220,15 +275,16 @@ class _ScoreScreenState extends State with TickerProviderStateMixin ), Row( mainAxisAlignment: - MainAxisAlignment.start, + MainAxisAlignment.start, children: [ Padding( - padding: - EdgeInsets.only(right: 2.0), + padding: EdgeInsets.only( + right: 2.0), child: Text( 'Mariano 81', style: TextStyle( - color: Color(0xff808080), + color: + Color(0xff808080), fontSize: 12), ), ), @@ -242,7 +298,7 @@ class _ScoreScreenState extends State with TickerProviderStateMixin children: [ Row( mainAxisAlignment: - MainAxisAlignment.end, + MainAxisAlignment.end, children: [ Icon(MyFlutterApp.football, size: 14), @@ -252,15 +308,15 @@ class _ScoreScreenState extends State with TickerProviderStateMixin child: Text( 'Messi 12', style: TextStyle( - color: - Color(0xff808080), + color: Color( + 0xff808080), fontSize: 12), )), ], ), Row( mainAxisAlignment: - MainAxisAlignment.end, + MainAxisAlignment.end, children: [ Icon(MyFlutterApp.football, size: 14), @@ -270,15 +326,15 @@ class _ScoreScreenState extends State with TickerProviderStateMixin child: Text( 'Messi 15', style: TextStyle( - color: - Color(0xff808080), + color: Color( + 0xff808080), fontSize: 12), )), ], ), Row( mainAxisAlignment: - MainAxisAlignment.end, + MainAxisAlignment.end, children: [ Icon(MyFlutterApp.football, size: 14), @@ -288,15 +344,15 @@ class _ScoreScreenState extends State with TickerProviderStateMixin child: Text( 'Suarez 43', style: TextStyle( - color: - Color(0xff808080), + color: Color( + 0xff808080), fontSize: 12), )), ], ), Row( mainAxisAlignment: - MainAxisAlignment.end, + MainAxisAlignment.end, children: [ Icon(MyFlutterApp.football, size: 14), @@ -306,8 +362,8 @@ class _ScoreScreenState extends State with TickerProviderStateMixin child: Text( 'Vidal 67', style: TextStyle( - color: - Color(0xff808080), + color: Color( + 0xff808080), fontSize: 12), )), ], diff --git a/pubspec.lock b/pubspec.lock index e7c6c2e..8ea3fc1 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -261,6 +261,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.0.5+1" + pull_to_refresh: + dependency: "direct main" + description: + name: pull_to_refresh + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.8" quiver: dependency: transitive description: From 5a6ac114c4c9aee452e9711ab5862b6e26baf3a1 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Tue, 30 Jun 2020 02:37:47 +0530 Subject: [PATCH 04/49] Added scores to provider and Implemented score section on homescreen --- lib/Provider/AppProvider.dart | 17 ++ lib/models/Match.dart | 10 - lib/models/Score.dart | 28 +++ lib/screens/HomeScreen.dart | 379 ++++++++++++++++++-------------- lib/screens/Score.dart | 386 -------------------------------- lib/screens/ScoreScreen.dart | 390 +++++++++++++++++++++++++++++++++ lib/services/CustomRouter.dart | 2 +- lib/services/GetItLocator.dart | 2 + lib/services/ScoreService.dart | 44 ++++ 9 files changed, 692 insertions(+), 566 deletions(-) delete mode 100644 lib/models/Match.dart create mode 100644 lib/models/Score.dart delete mode 100644 lib/screens/Score.dart create mode 100644 lib/screens/ScoreScreen.dart create mode 100644 lib/services/ScoreService.dart diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index 25dff36..7872c8c 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -1,4 +1,6 @@ import 'package:flutter/material.dart'; +import 'package:sportsmojo/models/Score.dart'; +import 'package:sportsmojo/services/ScoreService.dart'; import '../services/NewsService.dart'; import '../services/LocalStorage.dart'; import '../services/GetItLocator.dart'; @@ -7,6 +9,7 @@ class AppProvider extends ChangeNotifier { int _navbarIndex; List _newsList; List _favouriteNewsList; + List _favouriteTeamScores; AppProvider(this._navbarIndex); int get navbarIndex => _navbarIndex; @@ -15,6 +18,8 @@ class AppProvider extends ChangeNotifier { notifyListeners(); } NewsService _newsService = locator(); + ScoreService _scoreService = locator(); + Future loadAllNews() async{ _newsList = await _newsService.fetchNews('football'); notifyListeners(); @@ -26,8 +31,15 @@ class AppProvider extends ChangeNotifier { notifyListeners(); } + Future loadFavouriteScores() async { + String teamId = await LocalStorage.getString('teamId'); + _favouriteTeamScores = await _scoreService.fetchScoresByTeam(id: teamId); + notifyListeners(); + } + List get newsList => _newsList; List get favouriteNewsList => _favouriteNewsList; + List get favouriteTeamScores => _favouriteTeamScores; void set newsList(List news) { _newsList = news; @@ -39,4 +51,9 @@ class AppProvider extends ChangeNotifier { notifyListeners(); } + void set favouriteTeamScores(List scores) { + _favouriteTeamScores = scores; + notifyListeners(); + } + } \ No newline at end of file diff --git a/lib/models/Match.dart b/lib/models/Match.dart deleted file mode 100644 index a96a8d1..0000000 --- a/lib/models/Match.dart +++ /dev/null @@ -1,10 +0,0 @@ -class Match{ - String competition; - String date; - String time; - String status; - String homeTeam; - String awayTeam; - int homeScore; - int awayScore; -} \ No newline at end of file diff --git a/lib/models/Score.dart b/lib/models/Score.dart new file mode 100644 index 0000000..d483857 --- /dev/null +++ b/lib/models/Score.dart @@ -0,0 +1,28 @@ +class Score{ + String competition; + String venue; + String date; + String time; + String status; + String homeTeam; + String awayTeam; + String homeTeamLogo; + String awayTeamLogo; + int minuteElapsed; + int homeScore; + int awayScore; + Score({this.competition,this.venue, this.date, this.time, this.status, this.homeTeam, this.awayTeam, this.homeTeamLogo, this.awayTeamLogo, this.homeScore, this.awayScore, this.minuteElapsed}); + Score.fromJson(Map parsedJson): + competition = parsedJson['league']['name'], + venue = parsedJson['fixture']['venue']['name'], + date = parsedJson['fixture']['date'].substring(0, 10), + time = parsedJson['fixture']['date'].substring(11, 16), + status = parsedJson['fixture']['status']['short'], + homeTeam = parsedJson['teams']['home']['name'], + awayTeam = parsedJson['teams']['away']['name'], + homeTeamLogo = parsedJson['teams']['home']['logo'], + awayTeamLogo = parsedJson['teams']['away']['logo'], + homeScore = parsedJson['goals']['home'], + awayScore = parsedJson['goals']['away'], + minuteElapsed = parsedJson['fixture']['status']['elapsed']; +} \ No newline at end of file diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 6829960..6ed1fec 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -1,6 +1,7 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:sportsmojo/models/Score.dart'; import '../commons/BottomNavbar.dart'; import '../commons/NewsCard.dart'; import '../models/News.dart'; @@ -20,22 +21,25 @@ class HomeScreen extends StatefulWidget { class _HomeScreenState extends State with TickerProviderStateMixin { final _pageController = PageController(initialPage: 0); - RefreshController _refreshController = RefreshController(initialRefresh: false); + RefreshController _refreshController = + RefreshController(initialRefresh: false); String teamName; @override void initState() { final initialState = Provider.of(context, listen: false); - if(initialState.newsList == null) { + if (initialState.newsList == null) { initialState.loadAllNews(); } - if(initialState.loadFavouriteNews() == null) { + if (initialState.favouriteNewsList == null) { initialState.loadFavouriteNews(); } + if (initialState.favouriteTeamScores == null) { + initialState.loadFavouriteScores(); + } super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) => showAlert()); } - HomeViewModel _viewModel = locator(); @override @@ -49,10 +53,10 @@ class _HomeScreenState extends State with TickerProviderStateMixin { builder: (context, model, child) => SmartRefresher( controller: _refreshController, enablePullDown: true, - onLoading: () async{ + onLoading: () async { _onLoading(appProvider: appProvider); }, - onRefresh: () async{ + onRefresh: () async { _onRefresh(appProvider: appProvider); }, header: WaterDropHeader(), @@ -62,8 +66,16 @@ class _HomeScreenState extends State with TickerProviderStateMixin { child: Column( mainAxisSize: MainAxisSize.min, children: [ - Flexible(fit: FlexFit.loose, child: carousel(model: model, appProvider: appProvider)), - UpcomingMatchesSection(), + Flexible( + fit: FlexFit.loose, + child: carousel( + model: model, appProvider: appProvider)), + appProvider.favouriteTeamScores != null + ? UpcomingMatchesSection(appProvider: appProvider) + : PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ), NewsSection(model: model, appProvider: appProvider) ], ), @@ -75,33 +87,48 @@ class _HomeScreenState extends State with TickerProviderStateMixin { )); } - Widget UpcomingMatchesSection() { + Widget UpcomingMatchesSection({AppProvider appProvider}) { + final List matches = appProvider.favouriteTeamScores; + final int latestMatchIndex = + matches.lastIndexWhere((score) => score.status == "FT"); + final Score latestMatch = matches[latestMatchIndex]; return Padding( padding: const EdgeInsets.all(8.0), child: Column( - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text( - 'Upcoming/Live Matches', - style: TextStyle(fontSize: 14, fontWeight: FontWeight.w400), + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + 'Upcoming/Live Matches', + style: TextStyle(fontSize: 16, fontWeight: FontWeight.w500), + textAlign: TextAlign.center, + ), ), Card( child: Padding( - padding: const EdgeInsets.all(8.0), + padding: const EdgeInsets.all(12.0), child: Column( children: [ - Row( - children: [ - Text('La Liga'), - Spacer(), - Container( - width: 20.0, - child: Text( - "73'", - style: TextStyle(color: Colors.red), + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Row( + children: [ + Text( + '${latestMatch.competition} - ${latestMatch.date}, ${latestMatch.time}', + style: + TextStyle(fontSize: 14, color: Color(0X8A000000)), ), - ) - ], + Spacer(), + Container( + width: 20.0, + child: Text( + latestMatch.status, + style: TextStyle(color: Colors.red), + ), + ) + ], + ), ), Padding( padding: const EdgeInsets.symmetric(horizontal: 16.0), @@ -115,10 +142,9 @@ class _HomeScreenState extends State with TickerProviderStateMixin { child: Container( height: 60, child: CachedNetworkImage( - imageUrl: - 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/Real-Madrid-icon.png')), + imageUrl: latestMatch.homeTeamLogo)), ), - Text('Real Madrid') + Text(latestMatch.homeTeam) ], ), Expanded( @@ -126,7 +152,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - '5 - 4', + '${latestMatch.homeScore} - ${latestMatch.awayScore}', style: TextStyle(fontSize: 30), ), ], @@ -139,10 +165,9 @@ class _HomeScreenState extends State with TickerProviderStateMixin { child: Container( height: 60, child: CachedNetworkImage( - imageUrl: - 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/FC-Barcelona-icon.png')), + imageUrl: latestMatch.awayTeamLogo)), ), - Text('FC Barcelona') + Text(latestMatch.awayTeam) ], ) ], @@ -171,28 +196,30 @@ class _HomeScreenState extends State with TickerProviderStateMixin { textAlign: TextAlign.left, ), ), - appProvider.newsList != null ? ListView.separated( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: appProvider.newsList.length, - separatorBuilder: (BuildContext context, int index) { - return Divider(); - }, - itemBuilder: (BuildContext context, int index) { - return NewsCard( - index: index, - news: appProvider.newsList[index], - ); - }) : ListView.builder( - itemCount: 5, - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }) + appProvider.newsList != null + ? ListView.separated( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: appProvider.newsList.length, + separatorBuilder: (BuildContext context, int index) { + return Divider(); + }, + itemBuilder: (BuildContext context, int index) { + return NewsCard( + index: index, + news: appProvider.newsList[index], + ); + }) + : ListView.builder( + itemCount: 5, + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }) ], ), ), @@ -202,131 +229,145 @@ class _HomeScreenState extends State with TickerProviderStateMixin { Widget carousel({HomeViewModel model, AppProvider appProvider}) { List favouriteNewsList = appProvider.favouriteNewsList; return Container( - height: MediaQuery.of(context).size.height * 0.35, - child: favouriteNewsList != null ? Stack( - alignment: Alignment.bottomLeft, - children: [ - PageView( - controller: _pageController, - children: [ - for (int i = 0; i < 5; i++) - InkWell( - onTap: () { - Navigator.of(context).pushNamed('/newsarticle', - arguments: {'index': i + 100, 'news': favouriteNewsList[i]}); - }, - child: Stack( - alignment: Alignment.bottomLeft, - children: [ - Container( - child: CachedNetworkImage( - height: MediaQuery.of(context).size.height * 0.35, - imageUrl: favouriteNewsList[i].imageUrl, - fit: BoxFit.cover, - placeholder: (BuildContext context, String url) => - Image.asset( - 'assets/images/news_default.png', + height: MediaQuery.of(context).size.height * 0.35, + child: favouriteNewsList != null + ? Stack( + alignment: Alignment.bottomLeft, + children: [ + PageView( + controller: _pageController, + children: [ + for (int i = 0; i < 5; i++) + InkWell( + onTap: () { + Navigator.of(context).pushNamed('/newsarticle', + arguments: { + 'index': i + 100, + 'news': favouriteNewsList[i] + }); + }, + child: Stack( + alignment: Alignment.bottomLeft, + children: [ + Container( + child: CachedNetworkImage( + height: + MediaQuery.of(context).size.height * 0.35, + imageUrl: favouriteNewsList[i].imageUrl, fit: BoxFit.cover, + placeholder: + (BuildContext context, String url) => + Image.asset( + 'assets/images/news_default.png', + fit: BoxFit.cover, + ), ), ), - ), - Container( - color: Colors.black.withOpacity(0.4), - padding: - EdgeInsets.only(bottom: MediaQuery.of(context).size.height * 0.02, left: 12.0, right: 12.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Flexible( - child: Text( - favouriteNewsList[i].title, - style: TextStyle( - fontWeight: FontWeight.w300, - fontSize: 16, - color: Colors.white + Container( + color: Colors.black.withOpacity(0.4), + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).size.height * + 0.02, + left: 12.0, + right: 12.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Flexible( + child: Text( + favouriteNewsList[i].title, + style: TextStyle( + fontWeight: FontWeight.w300, + fontSize: 16, + color: Colors.white), ), ), - ), - Row( - children: [ - Padding( - padding: const EdgeInsets.only(right: 4.0), - child: Text( - favouriteNewsList[i].source, - style: TextStyle(fontSize: 14, color: Colors.amberAccent), + Row( + children: [ + Padding( + padding: + const EdgeInsets.only(right: 4.0), + child: Text( + favouriteNewsList[i].source, + style: TextStyle( + fontSize: 14, + color: Colors.amberAccent), + ), ), - ), - Text( - '1hr', - style: TextStyle( - fontSize: 14, - color: Colors.amberAccent), - ) - ], - ) - ], + Text( + '1hr', + style: TextStyle( + fontSize: 14, + color: Colors.amberAccent), + ) + ], + ) + ], + ), + ) + ], + ), + ), + ], + onPageChanged: (int index) { + model.carouselIndex = index; + }, + ), + Align( + alignment: Alignment.bottomCenter, + child: Container( + height: MediaQuery.of(context).size.height * 0.02, + color: Colors.black.withOpacity(0.1), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + for (int i = 0; i < 5; i++) + Padding( + padding: EdgeInsets.symmetric(horizontal: 4.0), + child: InkWell( + onTap: () { + _pageController.animateToPage(i, + duration: Duration(milliseconds: 200), + curve: Curves.easeIn); + }, + child: Container( + height: 10, + width: 10, + decoration: BoxDecoration( + color: model.carouselIndex == i + ? Theme.of(context).primaryColor + : Colors.white, + borderRadius: + BorderRadius.circular(10.0)), + ), ), ) - ], - ), + ], ), - ], - onPageChanged: (int index) { - model.carouselIndex = index; - }, - ), - Align( - alignment: Alignment.bottomCenter, - child: Container( - height: MediaQuery.of(context).size.height * 0.02, - color: Colors.black.withOpacity(0.1), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - for (int i = 0; i < 5; i++) - Padding( - padding: EdgeInsets.symmetric(horizontal: 4.0), - child: InkWell( - onTap: () { - _pageController.animateToPage(i, duration: Duration(milliseconds: 200), curve: Curves.easeIn); - }, - child: Container( - height: 10, - width: 10, - decoration: BoxDecoration( - color: model.carouselIndex == i - ? Theme.of(context).primaryColor - : Colors.white, - borderRadius: BorderRadius.circular(10.0)), - ), - ), - ) - ], ), - ), - ) - ], - ) : PageView( - controller: _pageController, - children: [ - for (int i = 0; i < 5; i++) - Container( - height: MediaQuery.of(context).size.height * 0.35, - child: Image.asset( - 'assets/images/news_default.png', - fit: BoxFit.cover, - ), - ), - ], - onPageChanged: (int index) { - model.carouselIndex = index; - }, - ) - ); + ) + ], + ) + : PageView( + controller: _pageController, + children: [ + for (int i = 0; i < 5; i++) + Container( + height: MediaQuery.of(context).size.height * 0.35, + child: Image.asset( + 'assets/images/news_default.png', + fit: BoxFit.cover, + ), + ), + ], + onPageChanged: (int index) { + model.carouselIndex = index; + }, + )); } void showAlert() { diff --git a/lib/screens/Score.dart b/lib/screens/Score.dart deleted file mode 100644 index 86184b6..0000000 --- a/lib/screens/Score.dart +++ /dev/null @@ -1,386 +0,0 @@ -import 'package:cached_network_image/cached_network_image.dart'; -import 'package:flutter/material.dart'; -import '../commons/BottomNavbar.dart'; -import '../commons/custom_icons.dart'; -import '../services/LocalStorage.dart'; - -class ScoreScreen extends StatefulWidget { - @override - _ScoreScreenState createState() => _ScoreScreenState(); -} - -class _ScoreScreenState extends State - with TickerProviderStateMixin { - TabController _tabController; - String teamName; - Animation animation; - AnimationController _animationController; - List _cardExpanded = List.generate(8, (index) => false); - @override - void initState() { - super.initState(); - _animationController = - AnimationController(vsync: this, duration: Duration(seconds: 1)); - animation = - Tween(begin: 20.0, end: 0.0).animate(_animationController) - ..addListener(() { - setState(() {}); - }) - ..addStatusListener((status) { - if (status == AnimationStatus.completed) { - _animationController.reverse(); - } else if (status == AnimationStatus.dismissed) { - _animationController.forward(); - } - }); - _animationController.forward(); - _tabController = TabController(vsync: this, length: 2); - LocalStorage.getString('teamName').then((value) { - setState(() { - teamName = value; - }); - }); - } - - @override - void dispose() { - _animationController.dispose(); - super.dispose(); - } - - Widget build(BuildContext context) { - return Scaffold( - bottomNavigationBar: BottomNavbar(), - appBar: PreferredSize( - preferredSize: Size.fromHeight(100.0), - child: AppBar( - backgroundColor: Theme.of(context).primaryColor, - title: Text( - 'Scores', - style: TextStyle(color: Colors.white), - ), - bottom: TabBar( - controller: _tabController, - tabs: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Text( - 'All', - style: TextStyle( - color: Colors.white, - fontSize: 18, - fontWeight: FontWeight.w400), - ), - ), - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Text( - '$teamName', - style: TextStyle( - color: Colors.white, - fontSize: 18, - fontWeight: FontWeight.w400), - ), - ) - ], - indicatorSize: TabBarIndicatorSize.tab, - indicator: UnderlineTabIndicator( - borderSide: BorderSide(width: 3.0, color: Colors.white))), - )), - body: SafeArea( - child: SingleChildScrollView( - child: Container( - margin: EdgeInsets.only(top: 30.0), - child: ListView.builder( - shrinkWrap: true, - itemCount: 8, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - return Card( - child: AnimatedContainer( - duration: const Duration(milliseconds: 500), - curve: Curves.easeOut, - child: InkWell( - onTap: () { - List newList = - List.generate(8, (index) => false); - newList[index] = !_cardExpanded[index]; - setState(() { - _cardExpanded = newList; - }); - }, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - children: [ - Row( - children: [ - Text('La Liga'), - Spacer(), - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Container( - width: 20.0, - child: Text( - "73'", - style: TextStyle(color: Colors.red), - ), - ), - Container( - width: animation.value, - height: 2.0, - color: Colors.red, - ) - ], - ) - ], - ), - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 16.0), - child: Row( - children: [ - Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: const EdgeInsets.only( - bottom: 4.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: - 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/Real-Madrid-icon.png')), - ), - Text('Real Madrid') - ], - ), - Expanded( - child: Row( - mainAxisAlignment: - MainAxisAlignment.center, - children: [ - Text( - '5 - 4', - style: TextStyle(fontSize: 30), - ), - ], - ), - ), - Column( - children: [ - Padding( - padding: const EdgeInsets.only( - bottom: 8.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: - 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/FC-Barcelona-icon.png')), - ), - Text('FC Barcelona') - ], - ) - ], - ), - ), - if (_cardExpanded[index]) - Padding( - padding: EdgeInsets.symmetric( - horizontal: 16.0), - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Column( - children: [ - Row( - mainAxisAlignment: - MainAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only( - right: 2.0), - child: Text( - 'Benzema 4', - style: TextStyle( - color: - Color(0xff808080), - fontSize: 12), - ), - ), - Icon(MyFlutterApp.football, - size: 14), - ], - ), - Row( - mainAxisAlignment: - MainAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only( - right: 2.0), - child: Text( - 'Ramos 35', - style: TextStyle( - color: - Color(0xff808080), - fontSize: 12), - ), - ), - Icon(MyFlutterApp.football, - size: 14), - ], - ), - Row( - mainAxisAlignment: - MainAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only( - right: 2.0), - child: Text( - 'Modric 48', - style: TextStyle( - color: - Color(0xff808080), - fontSize: 12), - ), - ), - Icon(MyFlutterApp.football, - size: 14), - ], - ), - Row( - mainAxisAlignment: - MainAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only( - right: 2.0), - child: Text( - 'Vinicius 74\'', - style: TextStyle( - color: - Color(0xff808080), - fontSize: 12), - ), - ), - Icon(MyFlutterApp.football, - size: 14), - ], - ), - Row( - mainAxisAlignment: - MainAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only( - right: 2.0), - child: Text( - 'Mariano 81', - style: TextStyle( - color: - Color(0xff808080), - fontSize: 12), - ), - ), - Icon(MyFlutterApp.football, - size: 14), - ], - ) - ], - ), - Column( - children: [ - Row( - mainAxisAlignment: - MainAxisAlignment.end, - children: [ - Icon(MyFlutterApp.football, - size: 14), - Padding( - padding: EdgeInsets.only( - left: 2.0), - child: Text( - 'Messi 12', - style: TextStyle( - color: Color( - 0xff808080), - fontSize: 12), - )), - ], - ), - Row( - mainAxisAlignment: - MainAxisAlignment.end, - children: [ - Icon(MyFlutterApp.football, - size: 14), - Padding( - padding: EdgeInsets.only( - left: 2.0), - child: Text( - 'Messi 15', - style: TextStyle( - color: Color( - 0xff808080), - fontSize: 12), - )), - ], - ), - Row( - mainAxisAlignment: - MainAxisAlignment.end, - children: [ - Icon(MyFlutterApp.football, - size: 14), - Padding( - padding: EdgeInsets.only( - left: 2.0), - child: Text( - 'Suarez 43', - style: TextStyle( - color: Color( - 0xff808080), - fontSize: 12), - )), - ], - ), - Row( - mainAxisAlignment: - MainAxisAlignment.end, - children: [ - Icon(MyFlutterApp.football, - size: 14), - Padding( - padding: EdgeInsets.only( - left: 2.0), - child: Text( - 'Vidal 67', - style: TextStyle( - color: Color( - 0xff808080), - fontSize: 12), - )), - ], - ) - ], - ) - ], - )), - ], - ), - ), - ), - ), - ); - }), - ), - ), - )); - } -} diff --git a/lib/screens/ScoreScreen.dart b/lib/screens/ScoreScreen.dart new file mode 100644 index 0000000..33a08f0 --- /dev/null +++ b/lib/screens/ScoreScreen.dart @@ -0,0 +1,390 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import '../commons/BottomNavbar.dart'; +import '../commons/custom_icons.dart'; +import '../services/LocalStorage.dart'; + +class ScoreScreen extends StatefulWidget { + @override + _ScoreScreenState createState() => _ScoreScreenState(); +} + +class _ScoreScreenState extends State + with TickerProviderStateMixin { + TabController _tabController; + String teamName; + Animation animation; + AnimationController _animationController; + List _cardExpanded = List.generate(8, (index) => false); + @override + void initState() { + super.initState(); + _animationController = + AnimationController(vsync: this, duration: Duration(seconds: 1)); + animation = + Tween(begin: 20.0, end: 0.0).animate(_animationController) + ..addListener(() { + setState(() {}); + }) + ..addStatusListener((status) { + if (status == AnimationStatus.completed) { + _animationController.reverse(); + } else if (status == AnimationStatus.dismissed) { + _animationController.forward(); + } + }); + _animationController.forward(); + _tabController = TabController(vsync: this, length: 2); + LocalStorage.getString('teamName').then((value) { + setState(() { + teamName = value; + }); + }); + } + + @override + void dispose() { + _animationController.dispose(); + super.dispose(); + } + + Widget build(BuildContext context) { + return Scaffold( + bottomNavigationBar: BottomNavbar(), + appBar: PreferredSize( + preferredSize: Size.fromHeight(100.0), + child: AppBar( + backgroundColor: Theme.of(context).primaryColor, + title: Text( + 'Scores', + style: TextStyle(color: Colors.white), + ), + bottom: TabBar( + controller: _tabController, + tabs: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + 'All', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ), + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + '$teamName', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ) + ], + indicatorSize: TabBarIndicatorSize.tab, + indicator: UnderlineTabIndicator( + borderSide: BorderSide(width: 3.0, color: Colors.white))), + )), + body: SafeArea( + child: SingleChildScrollView( + child: Container( + margin: EdgeInsets.only(top: 30.0), + child: ListView.builder( + shrinkWrap: true, + itemCount: 8, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return Card( + child: AnimatedContainer( + duration: const Duration(milliseconds: 500), + curve: Curves.easeOut, + child: InkWell( + onTap: () { + List newList = + List.generate(8, (index) => false); + newList[index] = !_cardExpanded[index]; + setState(() { + _cardExpanded = newList; + }); + }, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + children: [ + Row( + children: [ + Text('La Liga'), + Spacer(), + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Container( + width: 20.0, + child: Text( + "73'", + style: TextStyle(color: Colors.red), + ), + ), + Container( + width: animation.value, + height: 2.0, + color: Colors.red, + ) + ], + ) + ], + ), + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16.0), + child: Row( + children: [ + Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.only( + bottom: 4.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: + 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/Real-Madrid-icon.png')), + ), + Text('Real Madrid') + ], + ), + Expanded( + child: Row( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Text( + '5 - 4', + style: TextStyle(fontSize: 30), + ), + ], + ), + ), + Column( + children: [ + Padding( + padding: const EdgeInsets.only( + bottom: 8.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: + 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/FC-Barcelona-icon.png')), + ), + Text('FC Barcelona') + ], + ) + ], + ), + ), +// if (_cardExpanded[index]) +// scorers(), + ], + ), + ), + ), + ), + ); + }), + ), + ), + )); + } + + Widget scorers() { + return Padding( + padding: EdgeInsets.symmetric( + horizontal: 16.0), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Column( + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only( + right: 2.0), + child: Text( + 'Benzema 4', + style: TextStyle( + color: + Color(0xff808080), + fontSize: 12), + ), + ), + Icon(MyFlutterApp.football, + size: 14), + ], + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only( + right: 2.0), + child: Text( + 'Ramos 35', + style: TextStyle( + color: + Color(0xff808080), + fontSize: 12), + ), + ), + Icon(MyFlutterApp.football, + size: 14), + ], + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only( + right: 2.0), + child: Text( + 'Modric 48', + style: TextStyle( + color: + Color(0xff808080), + fontSize: 12), + ), + ), + Icon(MyFlutterApp.football, + size: 14), + ], + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only( + right: 2.0), + child: Text( + 'Vinicius 74\'', + style: TextStyle( + color: + Color(0xff808080), + fontSize: 12), + ), + ), + Icon(MyFlutterApp.football, + size: 14), + ], + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only( + right: 2.0), + child: Text( + 'Mariano 81', + style: TextStyle( + color: + Color(0xff808080), + fontSize: 12), + ), + ), + Icon(MyFlutterApp.football, + size: 14), + ], + ) + ], + ), + Column( + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.end, + children: [ + Icon(MyFlutterApp.football, + size: 14), + Padding( + padding: EdgeInsets.only( + left: 2.0), + child: Text( + 'Messi 12', + style: TextStyle( + color: Color( + 0xff808080), + fontSize: 12), + )), + ], + ), + Row( + mainAxisAlignment: + MainAxisAlignment.end, + children: [ + Icon(MyFlutterApp.football, + size: 14), + Padding( + padding: EdgeInsets.only( + left: 2.0), + child: Text( + 'Messi 15', + style: TextStyle( + color: Color( + 0xff808080), + fontSize: 12), + )), + ], + ), + Row( + mainAxisAlignment: + MainAxisAlignment.end, + children: [ + Icon(MyFlutterApp.football, + size: 14), + Padding( + padding: EdgeInsets.only( + left: 2.0), + child: Text( + 'Suarez 43', + style: TextStyle( + color: Color( + 0xff808080), + fontSize: 12), + )), + ], + ), + Row( + mainAxisAlignment: + MainAxisAlignment.end, + children: [ + Icon(MyFlutterApp.football, + size: 14), + Padding( + padding: EdgeInsets.only( + left: 2.0), + child: Text( + 'Vidal 67', + style: TextStyle( + color: Color( + 0xff808080), + fontSize: 12), + )), + ], + ) + ], + ) + ], + )); + } +} diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index 898e365..7d60a7a 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -1,6 +1,6 @@ import 'package:flutter/cupertino.dart'; import '../screens/HomeScreen.dart'; -import '../screens/Score.dart'; +import '../screens/ScoreScreen.dart'; import '../screens/News.dart'; import '../screens/Login.dart'; import '../screens/NewsArticle.dart'; diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index 2a31026..8cbb179 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -1,5 +1,6 @@ import 'NewsService.dart'; import 'TeamService.dart'; +import 'ScoreService.dart'; import 'package:get_it/get_it.dart'; import '../Provider/HomeViewModel.dart'; import '../Provider/AppProvider.dart'; @@ -9,6 +10,7 @@ GetIt locator = GetIt.instance; void setupLocator() { locator.registerLazySingleton(() => NewsService()); locator.registerLazySingleton(() => TeamService()); + locator.registerLazySingleton(() => ScoreService()); locator.registerFactory(() => HomeViewModel(0)); locator.registerFactory(() => AppProvider(0)); } \ No newline at end of file diff --git a/lib/services/ScoreService.dart b/lib/services/ScoreService.dart new file mode 100644 index 0000000..61c57d4 --- /dev/null +++ b/lib/services/ScoreService.dart @@ -0,0 +1,44 @@ +import 'package:dio/dio.dart'; +import 'package:flutter/material.dart'; +import '../models/Score.dart'; +import '../secret.dart'; +class ScoreService { + static BaseOptions options = new BaseOptions(headers: { + 'x-rapidapi-host': 'v3.football.api-sports.io', + 'x-rapidapi-key': scoreApiKey + }); + final dio = new Dio(options); + Future> fetchScoresByLeague({@required String id}) async { + List scoresList = []; + try { + final response = + await dio.get('https://v3.football.api-sports.io/fixtures?league=${id}&season=2019&timezone=Asia/Kolkata'); + if (response.statusCode == 200) { + final unparsedJson = response.data['response'].toList(); + for (int i = unparsedJson.length - 1; i >= 0 ; i--) { + scoresList.add(Score.fromJson(unparsedJson[i])); + } + } + return scoresList; + } on DioError catch (e) { + return null; + } + } + + Future> fetchScoresByTeam({@required String id}) async { + List scoresList = []; + try { + final response = + await dio.get('https://v3.football.api-sports.io/fixtures?team=${id}&season=2019&timezone=Asia/Kolkata'); + if (response.statusCode == 200) { + final unparsedJson = response.data['response'].toList(); + for (int i = unparsedJson.length - 1; i >= 0 ; i--) { + scoresList.add(Score.fromJson(unparsedJson[i])); + } + } + return scoresList; + } on DioError catch (e) { + return null; + } + } +} From 30fe0727842d4cb8b630bd6dd73b811f1b15cba3 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Wed, 1 Jul 2020 00:30:37 +0530 Subject: [PATCH 05/49] Added favourite team score in the score screen --- lib/models/Score.dart | 9 +- lib/screens/HomeScreen.dart | 7 +- lib/screens/News.dart | 25 +- lib/screens/ScoreScreen.dart | 479 +++++++++++++++++++++-------------- pubspec.lock | 2 +- pubspec.yaml | 1 + 6 files changed, 305 insertions(+), 218 deletions(-) diff --git a/lib/models/Score.dart b/lib/models/Score.dart index d483857..d2ee6ee 100644 --- a/lib/models/Score.dart +++ b/lib/models/Score.dart @@ -1,8 +1,8 @@ +import 'package:intl/intl.dart'; class Score{ String competition; String venue; - String date; - String time; + String date_time; String status; String homeTeam; String awayTeam; @@ -11,12 +11,11 @@ class Score{ int minuteElapsed; int homeScore; int awayScore; - Score({this.competition,this.venue, this.date, this.time, this.status, this.homeTeam, this.awayTeam, this.homeTeamLogo, this.awayTeamLogo, this.homeScore, this.awayScore, this.minuteElapsed}); + Score({this.competition,this.venue, this.date_time, this.status, this.homeTeam, this.awayTeam, this.homeTeamLogo, this.awayTeamLogo, this.homeScore, this.awayScore, this.minuteElapsed}); Score.fromJson(Map parsedJson): competition = parsedJson['league']['name'], venue = parsedJson['fixture']['venue']['name'], - date = parsedJson['fixture']['date'].substring(0, 10), - time = parsedJson['fixture']['date'].substring(11, 16), + date_time = new DateFormat('E, d MMMM, jm').format(DateTime.parse(parsedJson['fixture']['date'])), status = parsedJson['fixture']['status']['short'], homeTeam = parsedJson['teams']['home']['name'], awayTeam = parsedJson['teams']['away']['name'], diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 6ed1fec..dd24b37 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -89,9 +89,8 @@ class _HomeScreenState extends State with TickerProviderStateMixin { Widget UpcomingMatchesSection({AppProvider appProvider}) { final List matches = appProvider.favouriteTeamScores; - final int latestMatchIndex = - matches.lastIndexWhere((score) => score.status == "FT"); - final Score latestMatch = matches[latestMatchIndex]; + final Score latestMatch = + matches.firstWhere((score) => score.status == "FT"); return Padding( padding: const EdgeInsets.all(8.0), child: Column( @@ -115,7 +114,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { child: Row( children: [ Text( - '${latestMatch.competition} - ${latestMatch.date}, ${latestMatch.time}', + '${latestMatch.competition} - ${latestMatch.date_time}', style: TextStyle(fontSize: 14, color: Color(0X8A000000)), ), diff --git a/lib/screens/News.dart b/lib/screens/News.dart index a2c45a1..10488b6 100644 --- a/lib/screens/News.dart +++ b/lib/screens/News.dart @@ -23,7 +23,7 @@ class _NewsScreenState extends State with TickerProviderStateMixin { if(initialState.newsList == null) { initialState.loadAllNews(); } - if(initialState.loadFavouriteNews() == null) { + if(initialState.favouriteNewsList == null) { initialState.loadFavouriteNews(); } super.initState(); @@ -64,23 +64,12 @@ class _NewsScreenState extends State with TickerProviderStateMixin { ), ), ), - body: SmartRefresher( - controller: _refreshController, - onRefresh: () { - _onRefresh(appProvider: model); - }, - onLoading: () { - _onLoading(appProvider: model); - }, - header: WaterDropHeader(), - enablePullDown: true, - child: TabBarView( - controller: _tabController, - children: [ - allNews(model: model), - favouriteTeamNews(model: model) - ], - ), + body: TabBarView( + controller: _tabController, + children: [ + allNews(model: model), + favouriteTeamNews(model: model) + ], ) ), ); diff --git a/lib/screens/ScoreScreen.dart b/lib/screens/ScoreScreen.dart index 33a08f0..132b96b 100644 --- a/lib/screens/ScoreScreen.dart +++ b/lib/screens/ScoreScreen.dart @@ -1,5 +1,8 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:sportsmojo/Provider/AppProvider.dart'; +import 'package:sportsmojo/models/Score.dart'; import '../commons/BottomNavbar.dart'; import '../commons/custom_icons.dart'; import '../services/LocalStorage.dart'; @@ -19,6 +22,11 @@ class _ScoreScreenState extends State @override void initState() { super.initState(); + final AppProvider appProvider = + Provider.of(context, listen: false); + if (appProvider.favouriteTeamScores == null) { + appProvider.loadFavouriteScores(); + } _animationController = AnimationController(vsync: this, duration: Duration(seconds: 1)); animation = @@ -49,6 +57,7 @@ class _ScoreScreenState extends State } Widget build(BuildContext context) { + final AppProvider appProvider = Provider.of(context); return Scaffold( bottomNavigationBar: BottomNavbar(), appBar: PreferredSize( @@ -87,223 +96,333 @@ class _ScoreScreenState extends State indicator: UnderlineTabIndicator( borderSide: BorderSide(width: 3.0, color: Colors.white))), )), - body: SafeArea( - child: SingleChildScrollView( - child: Container( - margin: EdgeInsets.only(top: 30.0), - child: ListView.builder( - shrinkWrap: true, - itemCount: 8, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - return Card( - child: AnimatedContainer( - duration: const Duration(milliseconds: 500), - curve: Curves.easeOut, - child: InkWell( - onTap: () { - List newList = - List.generate(8, (index) => false); - newList[index] = !_cardExpanded[index]; - setState(() { - _cardExpanded = newList; - }); - }, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( + body: TabBarView( + controller: _tabController, + children: [ + allScores(), + favouriteScores(appProvider: appProvider) + ], + )); + } + + Widget allScores() { + return SingleChildScrollView( + child: Container( + margin: EdgeInsets.only(top: 30.0), + child: ListView.builder( + shrinkWrap: true, + itemCount: 8, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return Card( + child: AnimatedContainer( + duration: const Duration(milliseconds: 500), + curve: Curves.easeOut, + child: InkWell( + onTap: () { + List newList = + List.generate(8, (index) => false); + newList[index] = !_cardExpanded[index]; + setState(() { + _cardExpanded = newList; + }); + }, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + children: [ + Row( + children: [ + Text('La Liga'), + Spacer(), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 20.0, + child: Text( + "73'", + style: TextStyle(color: Colors.red), + ), + ), + Container( + width: animation.value, + height: 2.0, + color: Colors.red, + ) + ], + ) + ], + ), + Padding( + padding: + const EdgeInsets.symmetric(horizontal: 16.0), + child: Row( children: [ - Row( + Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, children: [ - Text('La Liga'), - Spacer(), - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Container( - width: 20.0, - child: Text( - "73'", - style: TextStyle(color: Colors.red), - ), - ), - Container( - width: animation.value, - height: 2.0, - color: Colors.red, - ) - ], - ) + Padding( + padding: + const EdgeInsets.only(bottom: 4.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: + 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/Real-Madrid-icon.png')), + ), + Text('Real Madrid') ], ), - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 16.0), + Expanded( child: Row( + mainAxisAlignment: MainAxisAlignment.center, children: [ - Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: const EdgeInsets.only( - bottom: 4.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: - 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/Real-Madrid-icon.png')), - ), - Text('Real Madrid') - ], - ), - Expanded( - child: Row( - mainAxisAlignment: - MainAxisAlignment.center, - children: [ - Text( - '5 - 4', - style: TextStyle(fontSize: 30), - ), - ], - ), + Text( + '5 - 4', + style: TextStyle(fontSize: 30), ), - Column( - children: [ - Padding( - padding: const EdgeInsets.only( - bottom: 8.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: - 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/FC-Barcelona-icon.png')), - ), - Text('FC Barcelona') - ], - ) ], ), ), + Column( + children: [ + Padding( + padding: + const EdgeInsets.only(bottom: 8.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: + 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/FC-Barcelona-icon.png')), + ), + Text('FC Barcelona') + ], + ) + ], + ), + ), // if (_cardExpanded[index]) // scorers(), + ], + ), + ), + ), + ), + ); + }), + ), + ); + } + + Widget favouriteScores({AppProvider appProvider}) { + return SingleChildScrollView( + child: Container( + margin: EdgeInsets.only(top: 30.0), + child: ListView.builder( + shrinkWrap: true, + itemCount: appProvider.favouriteTeamScores.length, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + final Score score = appProvider.favouriteTeamScores[index]; + return Card( + child: AnimatedContainer( + duration: const Duration(milliseconds: 500), + curve: Curves.easeOut, + child: InkWell( + onTap: () { +// List newList = +// List.generate(8, (index) => false); +// newList[index] = !_cardExpanded[index]; +// setState(() { +// _cardExpanded = newList; +// }); + }, + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Column( + children: [ + Row( + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + '${score.competition} - ${score.date_time}', + style: TextStyle( + fontSize: 12, color: Color(0X8A000000)), + ), + ), + Spacer(), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 20.0, + child: Text( + (score.minuteElapsed != null && + score.minuteElapsed != 90 && + score.minuteElapsed != 120) + ? "${score.minuteElapsed}'" + : "${score.status}", + style: TextStyle(color: Colors.red), + ), + ), + if (score.minuteElapsed != null && + score.minuteElapsed != 90 && + score.minuteElapsed != 120) + Container( + width: animation.value, + height: 2.0, + color: Colors.red, + ) + ], + ) + ], + ), + Padding( + padding: + const EdgeInsets.symmetric(horizontal: 16.0), + child: Row( + children: [ + Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: + const EdgeInsets.only(bottom: 4.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: score.homeTeamLogo)), + ), + FittedBox(child: Text(score.homeTeam)) + ], + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + (score.minuteElapsed != null) + ? Text( + '${score.homeScore} - ${score.awayScore}', + style: TextStyle(fontSize: 30), + ) + : Text( + 'VS', + style: TextStyle( + fontSize: 18, + color: Color(0X8A000000)), + ), + ], + ), + ), + Column( + children: [ + Padding( + padding: + const EdgeInsets.only(bottom: 8.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: score.awayTeamLogo)), + ), + FittedBox(child: Text(score.awayTeam)) + ], + ) ], ), ), - ), +// if (_cardExpanded[index]) +// scorers(), + ], ), - ); - }), - ), - ), - )); + ), + ), + ), + ); + }), + ), + ); } Widget scorers() { return Padding( - padding: EdgeInsets.symmetric( - horizontal: 16.0), + padding: EdgeInsets.symmetric(horizontal: 16.0), child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Column( children: [ Row( - mainAxisAlignment: - MainAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, children: [ Padding( - padding: EdgeInsets.only( - right: 2.0), + padding: EdgeInsets.only(right: 2.0), child: Text( 'Benzema 4', - style: TextStyle( - color: - Color(0xff808080), - fontSize: 12), + style: + TextStyle(color: Color(0xff808080), fontSize: 12), ), ), - Icon(MyFlutterApp.football, - size: 14), + Icon(MyFlutterApp.football, size: 14), ], ), Row( - mainAxisAlignment: - MainAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, children: [ Padding( - padding: EdgeInsets.only( - right: 2.0), + padding: EdgeInsets.only(right: 2.0), child: Text( 'Ramos 35', - style: TextStyle( - color: - Color(0xff808080), - fontSize: 12), + style: + TextStyle(color: Color(0xff808080), fontSize: 12), ), ), - Icon(MyFlutterApp.football, - size: 14), + Icon(MyFlutterApp.football, size: 14), ], ), Row( - mainAxisAlignment: - MainAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, children: [ Padding( - padding: EdgeInsets.only( - right: 2.0), + padding: EdgeInsets.only(right: 2.0), child: Text( 'Modric 48', - style: TextStyle( - color: - Color(0xff808080), - fontSize: 12), + style: + TextStyle(color: Color(0xff808080), fontSize: 12), ), ), - Icon(MyFlutterApp.football, - size: 14), + Icon(MyFlutterApp.football, size: 14), ], ), Row( - mainAxisAlignment: - MainAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, children: [ Padding( - padding: EdgeInsets.only( - right: 2.0), + padding: EdgeInsets.only(right: 2.0), child: Text( 'Vinicius 74\'', - style: TextStyle( - color: - Color(0xff808080), - fontSize: 12), + style: + TextStyle(color: Color(0xff808080), fontSize: 12), ), ), - Icon(MyFlutterApp.football, - size: 14), + Icon(MyFlutterApp.football, size: 14), ], ), Row( - mainAxisAlignment: - MainAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, children: [ Padding( - padding: EdgeInsets.only( - right: 2.0), + padding: EdgeInsets.only(right: 2.0), child: Text( 'Mariano 81', - style: TextStyle( - color: - Color(0xff808080), - fontSize: 12), + style: + TextStyle(color: Color(0xff808080), fontSize: 12), ), ), - Icon(MyFlutterApp.football, - size: 14), + Icon(MyFlutterApp.football, size: 14), ], ) ], @@ -311,74 +430,54 @@ class _ScoreScreenState extends State Column( children: [ Row( - mainAxisAlignment: - MainAxisAlignment.end, + mainAxisAlignment: MainAxisAlignment.end, children: [ - Icon(MyFlutterApp.football, - size: 14), + Icon(MyFlutterApp.football, size: 14), Padding( - padding: EdgeInsets.only( - left: 2.0), + padding: EdgeInsets.only(left: 2.0), child: Text( 'Messi 12', - style: TextStyle( - color: Color( - 0xff808080), - fontSize: 12), + style: + TextStyle(color: Color(0xff808080), fontSize: 12), )), ], ), Row( - mainAxisAlignment: - MainAxisAlignment.end, + mainAxisAlignment: MainAxisAlignment.end, children: [ - Icon(MyFlutterApp.football, - size: 14), + Icon(MyFlutterApp.football, size: 14), Padding( - padding: EdgeInsets.only( - left: 2.0), + padding: EdgeInsets.only(left: 2.0), child: Text( 'Messi 15', - style: TextStyle( - color: Color( - 0xff808080), - fontSize: 12), + style: + TextStyle(color: Color(0xff808080), fontSize: 12), )), ], ), Row( - mainAxisAlignment: - MainAxisAlignment.end, + mainAxisAlignment: MainAxisAlignment.end, children: [ - Icon(MyFlutterApp.football, - size: 14), + Icon(MyFlutterApp.football, size: 14), Padding( - padding: EdgeInsets.only( - left: 2.0), + padding: EdgeInsets.only(left: 2.0), child: Text( 'Suarez 43', - style: TextStyle( - color: Color( - 0xff808080), - fontSize: 12), + style: + TextStyle(color: Color(0xff808080), fontSize: 12), )), ], ), Row( - mainAxisAlignment: - MainAxisAlignment.end, + mainAxisAlignment: MainAxisAlignment.end, children: [ - Icon(MyFlutterApp.football, - size: 14), + Icon(MyFlutterApp.football, size: 14), Padding( - padding: EdgeInsets.only( - left: 2.0), + padding: EdgeInsets.only(left: 2.0), child: Text( 'Vidal 67', - style: TextStyle( - color: Color( - 0xff808080), - fontSize: 12), + style: + TextStyle(color: Color(0xff808080), fontSize: 12), )), ], ) diff --git a/pubspec.lock b/pubspec.lock index 8ea3fc1..9af97fa 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -157,7 +157,7 @@ packages: source: hosted version: "2.1.4" intl: - dependency: transitive + dependency: "direct main" description: name: intl url: "https://pub.dartlang.org" diff --git a/pubspec.yaml b/pubspec.yaml index adc5f80..620c5ea 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -35,6 +35,7 @@ dependencies: sqflite: ^1.3.0 get_it: ^4.0.2 pull_to_refresh: ^1.5.7 + intl: ^0.16.1 dev_dependencies: flutter_test: sdk: flutter From 0a26dc9dc5f9f7e31a6a185ef23776b5d5621fd4 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sun, 5 Jul 2020 00:45:58 +0530 Subject: [PATCH 06/49] Added lazy loading logic to league wise scores --- ios/Flutter/Generated 13.xcconfig | 10 + ios/Flutter/flutter_export_environment 13.sh | 11 + lib/Provider/AppProvider.dart | 12 + lib/commons/ScoreCard.dart | 167 +++++++++++ lib/models/Score.dart | 2 +- lib/screens/HomeScreen.dart | 3 + lib/screens/ScoreScreen.dart | 278 +------------------ lib/widgets/AllScores.dart | 120 ++++++++ lib/widgets/FavouriteScores.dart | 43 +++ 9 files changed, 372 insertions(+), 274 deletions(-) create mode 100644 ios/Flutter/Generated 13.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 13.sh create mode 100644 lib/commons/ScoreCard.dart create mode 100644 lib/widgets/AllScores.dart create mode 100644 lib/widgets/FavouriteScores.dart diff --git a/ios/Flutter/Generated 13.xcconfig b/ios/Flutter/Generated 13.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 13.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 13.sh b/ios/Flutter/flutter_export_environment 13.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 13.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index 7872c8c..00c235c 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -9,6 +9,8 @@ class AppProvider extends ChangeNotifier { int _navbarIndex; List _newsList; List _favouriteNewsList; + List _leagueWiseScores; + List _favouriteTeamScores; AppProvider(this._navbarIndex); int get navbarIndex => _navbarIndex; @@ -31,6 +33,11 @@ class AppProvider extends ChangeNotifier { notifyListeners(); } + Future loadLeagueWiseScores() async { + _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: '140'); + notifyListeners(); + } + Future loadFavouriteScores() async { String teamId = await LocalStorage.getString('teamId'); _favouriteTeamScores = await _scoreService.fetchScoresByTeam(id: teamId); @@ -40,6 +47,7 @@ class AppProvider extends ChangeNotifier { List get newsList => _newsList; List get favouriteNewsList => _favouriteNewsList; List get favouriteTeamScores => _favouriteTeamScores; + List get leagueWiseScores => _leagueWiseScores; void set newsList(List news) { _newsList = news; @@ -56,4 +64,8 @@ class AppProvider extends ChangeNotifier { notifyListeners(); } + void set leagueWiseScores(List scores) { + _leagueWiseScores = scores; + notifyListeners(); + } } \ No newline at end of file diff --git a/lib/commons/ScoreCard.dart b/lib/commons/ScoreCard.dart new file mode 100644 index 0000000..28ccca6 --- /dev/null +++ b/lib/commons/ScoreCard.dart @@ -0,0 +1,167 @@ +import 'package:flutter/material.dart'; +import '../models/Score.dart'; +import 'package:cached_network_image/cached_network_image.dart'; +import 'custom_icons.dart'; + +class ScoreCard extends StatefulWidget { + final Score score; + ScoreCard({this.score}); + + @override + _ScoreCardState createState() => _ScoreCardState(); +} + +class _ScoreCardState extends State with TickerProviderStateMixin { + Animation animation; + AnimationController _animationController; + + @override + void initState() { + _animationController = + AnimationController(vsync: this, duration: Duration(seconds: 1)); + animation = + Tween(begin: 20.0, end: 0.0).animate(_animationController) + ..addListener(() { + setState(() {}); + }) + ..addStatusListener((status) { + if (status == AnimationStatus.completed) { + _animationController.reverse(); + } else if (status == AnimationStatus.dismissed) { + _animationController.forward(); + } + }); + _animationController.forward(); + } + + @override + void dispose() { + _animationController.dispose(); + super.dispose(); + } + + Widget build(BuildContext context) { + return Card( + child: AnimatedContainer( + duration: const Duration(milliseconds: 500), + curve: Curves.easeOut, + child: InkWell( + onTap: () { +// List newList = +// List.generate(8, (index) => false); +// newList[index] = !_cardExpanded[index]; +// setState(() { +// _cardExpanded = newList; +// }); + }, + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Column( + children: [ + Row( + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + '${widget.score.competition} - ${widget.score.date_time}', + style: TextStyle( + fontSize: 12, color: Color(0X8A000000)), + ), + ), + Spacer(), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 20.0, + child: Text( + (widget.score.minuteElapsed != null && + widget.score.minuteElapsed != 90 && + widget.score.minuteElapsed != 120) + ? "${widget.score.minuteElapsed}'" + : "${widget.score.status}", + style: TextStyle(color: Colors.red), + ), + ), + if (widget.score.minuteElapsed != null && + widget.score.minuteElapsed != 90 && + widget.score.minuteElapsed != 120) + Container( + width: animation.value, + height: 2.0, + color: Colors.red, + ) + ], + ) + ], + ), + Padding( + padding: + const EdgeInsets.symmetric(horizontal: 16.0), + child: Row( + children: [ + Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: + const EdgeInsets.only(bottom: 4.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.homeTeamLogo, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + ), + FittedBox(child: Text(widget.score.homeTeam)) + ], + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + (widget.score.minuteElapsed != null) + ? Text( + '${widget.score.homeScore} - ${widget.score.awayScore}', + style: TextStyle(fontSize: 30), + ) + : Text( + 'VS', + style: TextStyle( + fontSize: 18, + color: Color(0X8A000000)), + ), + ], + ), + ), + Column( + children: [ + Padding( + padding: + const EdgeInsets.only(bottom: 8.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.awayTeamLogo, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + ), + FittedBox(child: Text(widget.score.awayTeam)) + ], + ) + ], + ), + ), +// if (_cardExpanded[index]) +// scorers(), + ], + ), + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/models/Score.dart b/lib/models/Score.dart index d2ee6ee..8b5c230 100644 --- a/lib/models/Score.dart +++ b/lib/models/Score.dart @@ -15,7 +15,7 @@ class Score{ Score.fromJson(Map parsedJson): competition = parsedJson['league']['name'], venue = parsedJson['fixture']['venue']['name'], - date_time = new DateFormat('E, d MMMM, jm').format(DateTime.parse(parsedJson['fixture']['date'])), + date_time = new DateFormat('E, d MMMM, hh:mm aaa').format(DateTime.parse('${parsedJson['fixture']['date'].substring(0, 19)}Z')), status = parsedJson['fixture']['status']['short'], homeTeam = parsedJson['teams']['home']['name'], awayTeam = parsedJson['teams']['away']['name'], diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index dd24b37..046368f 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -36,6 +36,9 @@ class _HomeScreenState extends State with TickerProviderStateMixin { if (initialState.favouriteTeamScores == null) { initialState.loadFavouriteScores(); } + if (initialState.leagueWiseScores == null) { + initialState.loadLeagueWiseScores(); + } super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) => showAlert()); } diff --git a/lib/screens/ScoreScreen.dart b/lib/screens/ScoreScreen.dart index 132b96b..018c442 100644 --- a/lib/screens/ScoreScreen.dart +++ b/lib/screens/ScoreScreen.dart @@ -1,11 +1,11 @@ -import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:sportsmojo/Provider/AppProvider.dart'; -import 'package:sportsmojo/models/Score.dart'; import '../commons/BottomNavbar.dart'; import '../commons/custom_icons.dart'; import '../services/LocalStorage.dart'; +import '../widgets/AllScores.dart'; +import '../widgets/FavouriteScores.dart'; class ScoreScreen extends StatefulWidget { @override @@ -16,32 +16,10 @@ class _ScoreScreenState extends State with TickerProviderStateMixin { TabController _tabController; String teamName; - Animation animation; - AnimationController _animationController; List _cardExpanded = List.generate(8, (index) => false); @override void initState() { super.initState(); - final AppProvider appProvider = - Provider.of(context, listen: false); - if (appProvider.favouriteTeamScores == null) { - appProvider.loadFavouriteScores(); - } - _animationController = - AnimationController(vsync: this, duration: Duration(seconds: 1)); - animation = - Tween(begin: 20.0, end: 0.0).animate(_animationController) - ..addListener(() { - setState(() {}); - }) - ..addStatusListener((status) { - if (status == AnimationStatus.completed) { - _animationController.reverse(); - } else if (status == AnimationStatus.dismissed) { - _animationController.forward(); - } - }); - _animationController.forward(); _tabController = TabController(vsync: this, length: 2); LocalStorage.getString('teamName').then((value) { setState(() { @@ -50,11 +28,7 @@ class _ScoreScreenState extends State }); } - @override - void dispose() { - _animationController.dispose(); - super.dispose(); - } + Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); @@ -99,254 +73,12 @@ class _ScoreScreenState extends State body: TabBarView( controller: _tabController, children: [ - allScores(), - favouriteScores(appProvider: appProvider) + AllScores(), + FavouriteScores() ], )); } - Widget allScores() { - return SingleChildScrollView( - child: Container( - margin: EdgeInsets.only(top: 30.0), - child: ListView.builder( - shrinkWrap: true, - itemCount: 8, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - return Card( - child: AnimatedContainer( - duration: const Duration(milliseconds: 500), - curve: Curves.easeOut, - child: InkWell( - onTap: () { - List newList = - List.generate(8, (index) => false); - newList[index] = !_cardExpanded[index]; - setState(() { - _cardExpanded = newList; - }); - }, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - children: [ - Row( - children: [ - Text('La Liga'), - Spacer(), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - width: 20.0, - child: Text( - "73'", - style: TextStyle(color: Colors.red), - ), - ), - Container( - width: animation.value, - height: 2.0, - color: Colors.red, - ) - ], - ) - ], - ), - Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), - child: Row( - children: [ - Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: - const EdgeInsets.only(bottom: 4.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: - 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/Real-Madrid-icon.png')), - ), - Text('Real Madrid') - ], - ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - '5 - 4', - style: TextStyle(fontSize: 30), - ), - ], - ), - ), - Column( - children: [ - Padding( - padding: - const EdgeInsets.only(bottom: 8.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: - 'https://icons.iconarchive.com/icons/giannis-zographos/spanish-football-club/256/FC-Barcelona-icon.png')), - ), - Text('FC Barcelona') - ], - ) - ], - ), - ), -// if (_cardExpanded[index]) -// scorers(), - ], - ), - ), - ), - ), - ); - }), - ), - ); - } - - Widget favouriteScores({AppProvider appProvider}) { - return SingleChildScrollView( - child: Container( - margin: EdgeInsets.only(top: 30.0), - child: ListView.builder( - shrinkWrap: true, - itemCount: appProvider.favouriteTeamScores.length, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - final Score score = appProvider.favouriteTeamScores[index]; - return Card( - child: AnimatedContainer( - duration: const Duration(milliseconds: 500), - curve: Curves.easeOut, - child: InkWell( - onTap: () { -// List newList = -// List.generate(8, (index) => false); -// newList[index] = !_cardExpanded[index]; -// setState(() { -// _cardExpanded = newList; -// }); - }, - child: Padding( - padding: const EdgeInsets.all(12.0), - child: Column( - children: [ - Row( - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Text( - '${score.competition} - ${score.date_time}', - style: TextStyle( - fontSize: 12, color: Color(0X8A000000)), - ), - ), - Spacer(), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - width: 20.0, - child: Text( - (score.minuteElapsed != null && - score.minuteElapsed != 90 && - score.minuteElapsed != 120) - ? "${score.minuteElapsed}'" - : "${score.status}", - style: TextStyle(color: Colors.red), - ), - ), - if (score.minuteElapsed != null && - score.minuteElapsed != 90 && - score.minuteElapsed != 120) - Container( - width: animation.value, - height: 2.0, - color: Colors.red, - ) - ], - ) - ], - ), - Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), - child: Row( - children: [ - Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: - const EdgeInsets.only(bottom: 4.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: score.homeTeamLogo)), - ), - FittedBox(child: Text(score.homeTeam)) - ], - ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - (score.minuteElapsed != null) - ? Text( - '${score.homeScore} - ${score.awayScore}', - style: TextStyle(fontSize: 30), - ) - : Text( - 'VS', - style: TextStyle( - fontSize: 18, - color: Color(0X8A000000)), - ), - ], - ), - ), - Column( - children: [ - Padding( - padding: - const EdgeInsets.only(bottom: 8.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: score.awayTeamLogo)), - ), - FittedBox(child: Text(score.awayTeam)) - ], - ) - ], - ), - ), -// if (_cardExpanded[index]) -// scorers(), - ], - ), - ), - ), - ), - ); - }), - ), - ); - } - Widget scorers() { return Padding( padding: EdgeInsets.symmetric(horizontal: 16.0), diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart new file mode 100644 index 0000000..17d19fa --- /dev/null +++ b/lib/widgets/AllScores.dart @@ -0,0 +1,120 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:pk_skeleton/pk_skeleton.dart'; +import 'package:provider/provider.dart'; +import '../Provider/AppProvider.dart'; +import '../models/Score.dart'; +import '../commons/ScoreCard.dart'; + +class AllScores extends StatefulWidget { + @override + _AllScoresState createState() => _AllScoresState(); +} + +class _AllScoresState extends State { + ScrollController _scrollController = ScrollController(); + final GlobalKey _allScoresListlKey = GlobalKey(); + int _lastRetrievedLindex = 9; + int _totalNoOfScores; + int _listInitalCount = 11; + List _scores; + @override + void initState() { + super.initState(); + final AppProvider appProvider = + Provider.of(context, listen: false); + if (appProvider.leagueWiseScores == null) { + appProvider.loadLeagueWiseScores(); + } + final List _leagueWiseScores = appProvider.leagueWiseScores; + _totalNoOfScores = _leagueWiseScores.length; + _scrollController.addListener(() { + if ((_scrollController.position.maxScrollExtent - + _scrollController.position.pixels == + 0.0) && + _lastRetrievedLindex < _totalNoOfScores - 1) { + print('${_scrollController.position.maxScrollExtent - + _scrollController.position.pixels}'); + _getMoreScores(_leagueWiseScores); + } + }); + setState(() { + if (_totalNoOfScores > 10) { + _scores = _leagueWiseScores.sublist(0, 10); + } else { + _scores = _leagueWiseScores; + } + }); + } + + @override + void dispose() { + super.dispose(); + _scrollController.dispose(); + } + + @override + Widget build(BuildContext context) { + final AppProvider appProvider = Provider.of(context); + return SingleChildScrollView( + controller: _scrollController, + child: Container( + margin: EdgeInsets.only(top: 30.0), + child: _scores != null + ? AnimatedList( + key: _allScoresListlKey, + shrinkWrap: true, + initialItemCount: _listInitalCount, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index, + Animation animation) { + if (index < _listInitalCount - 1) { + final Score score = _scores[index]; + return SlideTransition( + position: Tween( + begin: const Offset(-1, 0), end: Offset.zero) + .animate(animation), + child: ScoreCard( + score: score, + ), + ); + } + return SizedBox( + height: 80, + child: SpinKitFadingCube(color: Theme.of(context).primaryColor, size: 50,), + ); + }) + : ListView.builder( + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), + ), + ); + } + + void _getMoreScores(List scores) { + setState(() { + if (_lastRetrievedLindex < (_totalNoOfScores - 11)) { + for (int i = 1; i <= 10; i++) { + _allScoresListlKey.currentState.insertItem(_lastRetrievedLindex + i); + _listInitalCount+=1; + } + _scores.addAll( + scores.sublist(_lastRetrievedLindex + 1 , _lastRetrievedLindex + 11)); + _lastRetrievedLindex += 10; + } else { + for (int i = 1; i < (_totalNoOfScores - _lastRetrievedLindex); i++) { + _allScoresListlKey.currentState.insertItem(_lastRetrievedLindex + i); + _listInitalCount+=1; + } + _scores.addAll(scores.sublist(_lastRetrievedLindex + 1)); + _lastRetrievedLindex = _totalNoOfScores - 1; + } + }); + } +} diff --git a/lib/widgets/FavouriteScores.dart b/lib/widgets/FavouriteScores.dart new file mode 100644 index 0000000..afdde96 --- /dev/null +++ b/lib/widgets/FavouriteScores.dart @@ -0,0 +1,43 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../Provider/AppProvider.dart'; +import '../models/Score.dart'; +import '../commons/ScoreCard.dart'; + +class FavouriteScores extends StatefulWidget { + @override + _FavouriteScoresState createState() => _FavouriteScoresState(); +} + +class _FavouriteScoresState extends State { + @override + void initState() { + super.initState(); + final AppProvider appProvider = + Provider.of(context, listen: false); + if (appProvider.favouriteTeamScores == null) { + appProvider.loadFavouriteScores(); + } + } + + @override + Widget build(BuildContext context) { + final AppProvider appProvider = Provider.of(context); + return SingleChildScrollView( + child: Container( + margin: EdgeInsets.only(top: 30.0), + child: ListView.builder( + shrinkWrap: true, + itemCount: 10, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + final Score score = appProvider.favouriteTeamScores[index]; + return ScoreCard( + score: score, + ); + ; + }), + ), + ); + } +} From 50091662c548f87f0b8a79b970ed5788706e4299 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sun, 5 Jul 2020 01:19:36 +0530 Subject: [PATCH 07/49] Added lazy loading logic to favourite team score tab --- lib/widgets/AllScores.dart | 52 +++++++++------------ lib/widgets/FavouriteScores.dart | 79 ++++++++++++++++++++++++++++++-- 2 files changed, 96 insertions(+), 35 deletions(-) diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index 17d19fa..bc49622 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -13,10 +13,8 @@ class AllScores extends StatefulWidget { class _AllScoresState extends State { ScrollController _scrollController = ScrollController(); - final GlobalKey _allScoresListlKey = GlobalKey(); int _lastRetrievedLindex = 9; int _totalNoOfScores; - int _listInitalCount = 11; List _scores; @override void initState() { @@ -33,8 +31,6 @@ class _AllScoresState extends State { _scrollController.position.pixels == 0.0) && _lastRetrievedLindex < _totalNoOfScores - 1) { - print('${_scrollController.position.maxScrollExtent - - _scrollController.position.pixels}'); _getMoreScores(_leagueWiseScores); } }); @@ -61,27 +57,31 @@ class _AllScoresState extends State { child: Container( margin: EdgeInsets.only(top: 30.0), child: _scores != null - ? AnimatedList( - key: _allScoresListlKey, + ? ListView.builder( shrinkWrap: true, - initialItemCount: _listInitalCount, + itemCount: _lastRetrievedLindex + 2, physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index, - Animation animation) { - if (index < _listInitalCount - 1) { - final Score score = _scores[index]; - return SlideTransition( - position: Tween( - begin: const Offset(-1, 0), end: Offset.zero) - .animate(animation), - child: ScoreCard( - score: score, - ), - ); + itemBuilder: (BuildContext context, int index) { + if(index == _lastRetrievedLindex + 1) { + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: SizedBox( + height: 40, + child: Chip( + elevation: 2, + backgroundColor: Colors.white, + avatar: CircleAvatar( + backgroundColor: Colors.white, + child: Icon(Icons.arrow_upward), + ), + label: Text('Swipe up to load more', style: TextStyle(fontSize: 14, fontWeight: FontWeight.w300),), + ), + ), + ); } - return SizedBox( - height: 80, - child: SpinKitFadingCube(color: Theme.of(context).primaryColor, size: 50,), + final Score score = _scores[index]; + return ScoreCard( + score: score, ); }) : ListView.builder( @@ -100,18 +100,10 @@ class _AllScoresState extends State { void _getMoreScores(List scores) { setState(() { if (_lastRetrievedLindex < (_totalNoOfScores - 11)) { - for (int i = 1; i <= 10; i++) { - _allScoresListlKey.currentState.insertItem(_lastRetrievedLindex + i); - _listInitalCount+=1; - } _scores.addAll( scores.sublist(_lastRetrievedLindex + 1 , _lastRetrievedLindex + 11)); _lastRetrievedLindex += 10; } else { - for (int i = 1; i < (_totalNoOfScores - _lastRetrievedLindex); i++) { - _allScoresListlKey.currentState.insertItem(_lastRetrievedLindex + i); - _listInitalCount+=1; - } _scores.addAll(scores.sublist(_lastRetrievedLindex + 1)); _lastRetrievedLindex = _totalNoOfScores - 1; } diff --git a/lib/widgets/FavouriteScores.dart b/lib/widgets/FavouriteScores.dart index afdde96..5e303f8 100644 --- a/lib/widgets/FavouriteScores.dart +++ b/lib/widgets/FavouriteScores.dart @@ -1,4 +1,6 @@ import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:pk_skeleton/pk_skeleton.dart'; import 'package:provider/provider.dart'; import '../Provider/AppProvider.dart'; import '../models/Score.dart'; @@ -10,34 +12,101 @@ class FavouriteScores extends StatefulWidget { } class _FavouriteScoresState extends State { + ScrollController _scrollController = ScrollController(); + int _lastRetrievedLindex = 9; + int _totalNoOfScores; + List _scores; @override void initState() { super.initState(); final AppProvider appProvider = - Provider.of(context, listen: false); + Provider.of(context, listen: false); if (appProvider.favouriteTeamScores == null) { appProvider.loadFavouriteScores(); } + final List _favouriteTeamScores = appProvider.favouriteTeamScores; + _totalNoOfScores = _favouriteTeamScores.length; + _scrollController.addListener(() { + if ((_scrollController.position.maxScrollExtent - + _scrollController.position.pixels == + 0.0) && + _lastRetrievedLindex < _totalNoOfScores - 1) { + _getMoreScores(_favouriteTeamScores); + } + }); + setState(() { + if (_totalNoOfScores > 10) { + _scores = _favouriteTeamScores.sublist(0, 10); + } else { + _scores = _favouriteTeamScores; + } + }); + } + + @override + void dispose() { + super.dispose(); + _scrollController.dispose(); } @override Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); return SingleChildScrollView( + controller: _scrollController, child: Container( margin: EdgeInsets.only(top: 30.0), - child: ListView.builder( + child: _scores != null + ? ListView.builder( shrinkWrap: true, - itemCount: 10, + itemCount: _lastRetrievedLindex + 2, physics: NeverScrollableScrollPhysics(), itemBuilder: (BuildContext context, int index) { - final Score score = appProvider.favouriteTeamScores[index]; + if(index == _lastRetrievedLindex + 1) { + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: SizedBox( + height: 40, + child: Chip( + elevation: 2, + backgroundColor: Colors.white, + avatar: CircleAvatar( + backgroundColor: Colors.white, + child: Icon(Icons.arrow_upward), + ), + label: Text('Swipe up to load more', style: TextStyle(fontSize: 14, fontWeight: FontWeight.w300),), + ), + ), + ); + } + final Score score = _scores[index]; return ScoreCard( score: score, ); - ; + }) + : ListView.builder( + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); }), ), ); } + + void _getMoreScores(List scores) { + setState(() { + if (_lastRetrievedLindex < (_totalNoOfScores - 11)) { + _scores.addAll( + scores.sublist(_lastRetrievedLindex + 1 , _lastRetrievedLindex + 11)); + _lastRetrievedLindex += 10; + } else { + _scores.addAll(scores.sublist(_lastRetrievedLindex + 1)); + _lastRetrievedLindex = _totalNoOfScores - 1; + } + }); + } } From c8a30a567a16a032598ef8ab9d00959d80aafa7b Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sun, 5 Jul 2020 03:17:48 +0530 Subject: [PATCH 08/49] Added viewmodel to all scores view --- lib/Provider/AllScoresViewModel.dart | 25 ++++ lib/Provider/FavouriteScoresViewModel.dart | 5 + lib/services/GetItLocator.dart | 5 + lib/widgets/AllScores.dart | 134 ++++++++++++--------- 4 files changed, 111 insertions(+), 58 deletions(-) create mode 100644 lib/Provider/AllScoresViewModel.dart create mode 100644 lib/Provider/FavouriteScoresViewModel.dart diff --git a/lib/Provider/AllScoresViewModel.dart b/lib/Provider/AllScoresViewModel.dart new file mode 100644 index 0000000..0bfc700 --- /dev/null +++ b/lib/Provider/AllScoresViewModel.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; +import '../models/Score.dart'; +class AllScoresViewModel extends ChangeNotifier { + List _scores; + int _lastRetrievedIndex; + + AllScoresViewModel(_scores, _lastRetrievedIndex); + + + List get allScores => _scores; + + void set allScores(List scores) { + _scores = scores; + notifyListeners(); + } + + int get lastRetrievedIndex => _lastRetrievedIndex; + + void set lastRetrievedIndex(int index) { + _lastRetrievedIndex = index; + notifyListeners(); + } + + +} \ No newline at end of file diff --git a/lib/Provider/FavouriteScoresViewModel.dart b/lib/Provider/FavouriteScoresViewModel.dart new file mode 100644 index 0000000..db8a219 --- /dev/null +++ b/lib/Provider/FavouriteScoresViewModel.dart @@ -0,0 +1,5 @@ +import 'package:flutter/foundation.dart'; + +class FavouriteScoresViewModel extends ChangeNotifier { + +} \ No newline at end of file diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index 8cbb179..c93df5d 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -1,9 +1,12 @@ +import 'package:sportsmojo/models/Score.dart'; import 'NewsService.dart'; import 'TeamService.dart'; import 'ScoreService.dart'; import 'package:get_it/get_it.dart'; import '../Provider/HomeViewModel.dart'; import '../Provider/AppProvider.dart'; +import '../Provider/AllScoresViewModel.dart'; +import '../Provider/FavouriteScoresViewModel.dart'; GetIt locator = GetIt.instance; @@ -12,5 +15,7 @@ void setupLocator() { locator.registerLazySingleton(() => TeamService()); locator.registerLazySingleton(() => ScoreService()); locator.registerFactory(() => HomeViewModel(0)); + locator.registerFactoryParam, int>((scores, index) => AllScoresViewModel(scores, index)); + locator.registerFactory(() => FavouriteScoresViewModel()); locator.registerFactory(() => AppProvider(0)); } \ No newline at end of file diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index bc49622..ed8d63d 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -5,6 +5,8 @@ import 'package:provider/provider.dart'; import '../Provider/AppProvider.dart'; import '../models/Score.dart'; import '../commons/ScoreCard.dart'; +import '../services/GetItLocator.dart'; +import '../Provider/AllScoresViewModel.dart'; class AllScores extends StatefulWidget { @override @@ -13,9 +15,8 @@ class AllScores extends StatefulWidget { class _AllScoresState extends State { ScrollController _scrollController = ScrollController(); - int _lastRetrievedLindex = 9; int _totalNoOfScores; - List _scores; + AllScoresViewModel _viewModel; @override void initState() { super.initState(); @@ -26,20 +27,24 @@ class _AllScoresState extends State { } final List _leagueWiseScores = appProvider.leagueWiseScores; _totalNoOfScores = _leagueWiseScores.length; - _scrollController.addListener(() { - if ((_scrollController.position.maxScrollExtent - - _scrollController.position.pixels == - 0.0) && - _lastRetrievedLindex < _totalNoOfScores - 1) { - _getMoreScores(_leagueWiseScores); - } - }); - setState(() { - if (_totalNoOfScores > 10) { - _scores = _leagueWiseScores.sublist(0, 10); - } else { - _scores = _leagueWiseScores; - } + if (_totalNoOfScores > 10) { + _viewModel = locator( + param1: _leagueWiseScores.sublist(0, 10), param2: 9); + } else { + _viewModel = locator( + param1: _leagueWiseScores, param2: _totalNoOfScores - 1); + } + WidgetsBinding.instance.addPostFrameCallback((_) { + _scrollController.addListener(() { + final AllScoresViewModel allScoresProvider = + Provider.of(context, listen: false); + if ((_scrollController.position.maxScrollExtent - + _scrollController.position.pixels == + 0.0) && + allScoresProvider.lastRetrievedIndex < _totalNoOfScores - 1) { + _getMoreScores(allScoresProvider, _leagueWiseScores); + } + }); }); } @@ -54,58 +59,71 @@ class _AllScoresState extends State { final AppProvider appProvider = Provider.of(context); return SingleChildScrollView( controller: _scrollController, - child: Container( - margin: EdgeInsets.only(top: 30.0), - child: _scores != null - ? ListView.builder( - shrinkWrap: true, - itemCount: _lastRetrievedLindex + 2, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - if(index == _lastRetrievedLindex + 1) { - return Padding( - padding: const EdgeInsets.only(bottom: 16.0), - child: SizedBox( - height: 40, - child: Chip( - elevation: 2, - backgroundColor: Colors.white, - avatar: CircleAvatar( + child: ChangeNotifierProvider( + create: (context) => _viewModel, + child: Consumer( + builder: (context, model, child) => Container( + margin: EdgeInsets.only(top: 30.0), + child: model.allScores != null + ? ListView.builder( + shrinkWrap: true, + itemCount: model.lastRetrievedIndex + 2, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + if (index == model.lastRetrievedIndex + 1) { + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: SizedBox( + height: 40, + child: Chip( + elevation: 2, backgroundColor: Colors.white, - child: Icon(Icons.arrow_upward), + avatar: CircleAvatar( + backgroundColor: Colors.white, + child: Icon(Icons.arrow_upward), + ), + label: Text( + 'Swipe up to load more', + style: TextStyle( + fontSize: 14, fontWeight: FontWeight.w300), + ), ), - label: Text('Swipe up to load more', style: TextStyle(fontSize: 14, fontWeight: FontWeight.w300),), ), - ), + ); + } + final Score score = model.allScores[index]; + return ScoreCard( + score: score, + ); + }) + : ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, ); - } - final Score score = _scores[index]; - return ScoreCard( - score: score, - ); - }) - : ListView.builder( - physics: NeverScrollableScrollPhysics(), - itemCount: 10, - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }), + }), + ), + ), ), ); } - void _getMoreScores(List scores) { + void _getMoreScores( + AllScoresViewModel allScoresProvider, List scores) { setState(() { - if (_lastRetrievedLindex < (_totalNoOfScores - 11)) { - _scores.addAll( - scores.sublist(_lastRetrievedLindex + 1 , _lastRetrievedLindex + 11)); - _lastRetrievedLindex += 10; + if (allScoresProvider.lastRetrievedIndex < (_totalNoOfScores - 11)) { + allScoresProvider.allScores.addAll(scores.sublist( + allScoresProvider.lastRetrievedIndex + 1, + allScoresProvider.lastRetrievedIndex + 11)); + allScoresProvider.lastRetrievedIndex += 10; } else { - _scores.addAll(scores.sublist(_lastRetrievedLindex + 1)); - _lastRetrievedLindex = _totalNoOfScores - 1; + allScoresProvider.allScores + .addAll(scores.sublist(allScoresProvider.lastRetrievedIndex + 1)); + allScoresProvider.lastRetrievedIndex = _totalNoOfScores - 1; } }); } From e47027f712fd7008851cc2bb7d309570e38ac129 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Tue, 7 Jul 2020 02:28:54 +0530 Subject: [PATCH 09/49] Modified favourite screen to store leagueid in thr localstorage --- ios/Flutter/Generated 14.xcconfig | 10 ++ ios/Flutter/Generated 15.xcconfig | 10 ++ ios/Flutter/flutter_export_environment 14.sh | 11 ++ ios/Flutter/flutter_export_environment 15.sh | 11 ++ lib/Provider/AllScoresViewModel.dart | 2 +- lib/Provider/AppProvider.dart | 3 +- lib/Provider/FavouriteScoresViewModel.dart | 24 ++- lib/screens/FavouriteScreen2.dart | 1 + lib/screens/HomeScreen.dart | 47 +++--- lib/services/GetItLocator.dart | 2 +- lib/widgets/AllScores.dart | 148 ++++++++++--------- 11 files changed, 164 insertions(+), 105 deletions(-) create mode 100644 ios/Flutter/Generated 14.xcconfig create mode 100644 ios/Flutter/Generated 15.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 14.sh create mode 100755 ios/Flutter/flutter_export_environment 15.sh diff --git a/ios/Flutter/Generated 14.xcconfig b/ios/Flutter/Generated 14.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 14.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/Generated 15.xcconfig b/ios/Flutter/Generated 15.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 15.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 14.sh b/ios/Flutter/flutter_export_environment 14.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 14.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/ios/Flutter/flutter_export_environment 15.sh b/ios/Flutter/flutter_export_environment 15.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 15.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/Provider/AllScoresViewModel.dart b/lib/Provider/AllScoresViewModel.dart index 0bfc700..dba52a8 100644 --- a/lib/Provider/AllScoresViewModel.dart +++ b/lib/Provider/AllScoresViewModel.dart @@ -4,7 +4,7 @@ class AllScoresViewModel extends ChangeNotifier { List _scores; int _lastRetrievedIndex; - AllScoresViewModel(_scores, _lastRetrievedIndex); + AllScoresViewModel(this._scores, this._lastRetrievedIndex); List get allScores => _scores; diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index 00c235c..d51474c 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -34,7 +34,8 @@ class AppProvider extends ChangeNotifier { } Future loadLeagueWiseScores() async { - _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: '140'); + String leagueId = await LocalStorage.getString('leagueId'); + _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: leagueId); notifyListeners(); } diff --git a/lib/Provider/FavouriteScoresViewModel.dart b/lib/Provider/FavouriteScoresViewModel.dart index db8a219..004a366 100644 --- a/lib/Provider/FavouriteScoresViewModel.dart +++ b/lib/Provider/FavouriteScoresViewModel.dart @@ -1,5 +1,25 @@ -import 'package:flutter/foundation.dart'; - +import 'package:flutter/material.dart'; +import '../models/Score.dart'; class FavouriteScoresViewModel extends ChangeNotifier { + List _scores; + int _lastRetrievedIndex; + + FavouriteScoresViewModel(this._scores, this._lastRetrievedIndex); + + + List get allScores => _scores; + + void set allScores(List scores) { + _scores = scores; + notifyListeners(); + } + + int get lastRetrievedIndex => _lastRetrievedIndex; + + void set lastRetrievedIndex(int index) { + _lastRetrievedIndex = index; + notifyListeners(); + } + } \ No newline at end of file diff --git a/lib/screens/FavouriteScreen2.dart b/lib/screens/FavouriteScreen2.dart index 7724fc8..635fb4f 100644 --- a/lib/screens/FavouriteScreen2.dart +++ b/lib/screens/FavouriteScreen2.dart @@ -186,6 +186,7 @@ class _FavouriteTeamState extends State { onTap: () { LocalStorage.setString('teamName', team.name); LocalStorage.setString('teamId', '${team.id}'); + LocalStorage.setString('leagueId', '${widget.leagueId}'); Navigator.of(context) .pushReplacementNamed('/home', arguments: { 'favouriteTeamMessage': { diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 046368f..5293782 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -53,35 +53,24 @@ class _HomeScreenState extends State with TickerProviderStateMixin { body: ChangeNotifierProvider( create: (context) => _viewModel, child: Consumer( - builder: (context, model, child) => SmartRefresher( - controller: _refreshController, - enablePullDown: true, - onLoading: () async { - _onLoading(appProvider: appProvider); - }, - onRefresh: () async { - _onRefresh(appProvider: appProvider); - }, - header: WaterDropHeader(), - child: SafeArea( - child: SingleChildScrollView( - child: Container( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible( - fit: FlexFit.loose, - child: carousel( - model: model, appProvider: appProvider)), - appProvider.favouriteTeamScores != null - ? UpcomingMatchesSection(appProvider: appProvider) - : PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ), - NewsSection(model: model, appProvider: appProvider) - ], - ), + builder: (context, model, child) => SafeArea( + child: SingleChildScrollView( + child: Container( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + fit: FlexFit.loose, + child: carousel( + model: model, appProvider: appProvider)), + appProvider.favouriteTeamScores != null + ? UpcomingMatchesSection(appProvider: appProvider) + : PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ), + NewsSection(model: model, appProvider: appProvider) + ], ), ), ), diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index c93df5d..c7408c1 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -16,6 +16,6 @@ void setupLocator() { locator.registerLazySingleton(() => ScoreService()); locator.registerFactory(() => HomeViewModel(0)); locator.registerFactoryParam, int>((scores, index) => AllScoresViewModel(scores, index)); - locator.registerFactory(() => FavouriteScoresViewModel()); + locator.registerFactoryParam, int>((scores, index) => FavouriteScoresViewModel(scores, index)); locator.registerFactory(() => AppProvider(0)); } \ No newline at end of file diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index ed8d63d..c4dbc02 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -17,35 +17,18 @@ class _AllScoresState extends State { ScrollController _scrollController = ScrollController(); int _totalNoOfScores; AllScoresViewModel _viewModel; + List _leagueWiseScores; @override void initState() { super.initState(); final AppProvider appProvider = Provider.of(context, listen: false); if (appProvider.leagueWiseScores == null) { - appProvider.loadLeagueWiseScores(); + appProvider.loadLeagueWiseScores().whenComplete(() => _setScores(appProvider: appProvider)); } - final List _leagueWiseScores = appProvider.leagueWiseScores; - _totalNoOfScores = _leagueWiseScores.length; - if (_totalNoOfScores > 10) { - _viewModel = locator( - param1: _leagueWiseScores.sublist(0, 10), param2: 9); - } else { - _viewModel = locator( - param1: _leagueWiseScores, param2: _totalNoOfScores - 1); + else { + _setScores(appProvider: appProvider); } - WidgetsBinding.instance.addPostFrameCallback((_) { - _scrollController.addListener(() { - final AllScoresViewModel allScoresProvider = - Provider.of(context, listen: false); - if ((_scrollController.position.maxScrollExtent - - _scrollController.position.pixels == - 0.0) && - allScoresProvider.lastRetrievedIndex < _totalNoOfScores - 1) { - _getMoreScores(allScoresProvider, _leagueWiseScores); - } - }); - }); } @override @@ -62,68 +45,91 @@ class _AllScoresState extends State { child: ChangeNotifierProvider( create: (context) => _viewModel, child: Consumer( - builder: (context, model, child) => Container( - margin: EdgeInsets.only(top: 30.0), - child: model.allScores != null - ? ListView.builder( - shrinkWrap: true, - itemCount: model.lastRetrievedIndex + 2, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - if (index == model.lastRetrievedIndex + 1) { - return Padding( - padding: const EdgeInsets.only(bottom: 16.0), - child: SizedBox( - height: 40, - child: Chip( - elevation: 2, - backgroundColor: Colors.white, - avatar: CircleAvatar( + builder: (context, model, child) { + _scrollController.addListener(() { + if ((_scrollController.position.maxScrollExtent - + _scrollController.position.pixels == + 0.0) && + model.lastRetrievedIndex < _totalNoOfScores - 1) { + _getMoreScores(model, _leagueWiseScores); + } + }); + return Container( + margin: EdgeInsets.only(top: 30.0), + child: (model != null && model.allScores != null) + ? ListView.builder( + shrinkWrap: true, + itemCount: model.lastRetrievedIndex + 2, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + if (index == model.lastRetrievedIndex + 1) { + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: SizedBox( + height: 40, + child: Chip( + elevation: 2, backgroundColor: Colors.white, - child: Icon(Icons.arrow_upward), - ), - label: Text( - 'Swipe up to load more', - style: TextStyle( - fontSize: 14, fontWeight: FontWeight.w300), + avatar: CircleAvatar( + backgroundColor: Colors.white, + child: Icon(Icons.arrow_upward), + ), + label: Text( + 'Swipe up to load more', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w300), + ), ), ), - ), + ); + } + final Score score = model.allScores[index]; + return ScoreCard( + score: score, ); - } - final Score score = model.allScores[index]; - return ScoreCard( - score: score, - ); - }) - : ListView.builder( - physics: NeverScrollableScrollPhysics(), - shrinkWrap: true, - itemCount: 10, - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }), - ), + }) + : ListView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), + ); + }, ), ), ); } void _getMoreScores( - AllScoresViewModel allScoresProvider, List scores) { + AllScoresViewModel model, List scores) { + if (model.lastRetrievedIndex < (_totalNoOfScores - 11)) { + model.allScores.addAll(scores.sublist( + model.lastRetrievedIndex + 1, + model.lastRetrievedIndex + 11)); + model.lastRetrievedIndex += 10; + } else { + model.allScores + .addAll(scores.sublist(model.lastRetrievedIndex + 1)); + model.lastRetrievedIndex = _totalNoOfScores - 1; + } + } + + void _setScores({AppProvider appProvider}) { + _leagueWiseScores = appProvider.leagueWiseScores; + _totalNoOfScores = _leagueWiseScores.length; setState(() { - if (allScoresProvider.lastRetrievedIndex < (_totalNoOfScores - 11)) { - allScoresProvider.allScores.addAll(scores.sublist( - allScoresProvider.lastRetrievedIndex + 1, - allScoresProvider.lastRetrievedIndex + 11)); - allScoresProvider.lastRetrievedIndex += 10; + if (_totalNoOfScores > 10) { + _viewModel = locator( + param1: _leagueWiseScores.sublist(0, 10), param2: 9); } else { - allScoresProvider.allScores - .addAll(scores.sublist(allScoresProvider.lastRetrievedIndex + 1)); - allScoresProvider.lastRetrievedIndex = _totalNoOfScores - 1; + _viewModel = locator( + param1: _leagueWiseScores, param2: _totalNoOfScores - 1); } }); } From ee35c433a7b97cb5233a355f5d00e212d1d55316 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Tue, 7 Jul 2020 16:09:45 +0530 Subject: [PATCH 10/49] Removed viewmodel from all scores screen --- lib/commons/ScoreCard.dart | 3 +- lib/models/Score.dart | 4 +- lib/screens/HomeScreen.dart | 76 +--------------- lib/services/ScoreService.dart | 10 +- lib/widgets/AllScores.dart | 152 ++++++++++++++----------------- lib/widgets/FavouriteScores.dart | 45 +++++---- 6 files changed, 110 insertions(+), 180 deletions(-) diff --git a/lib/commons/ScoreCard.dart b/lib/commons/ScoreCard.dart index 28ccca6..dcb5d1f 100644 --- a/lib/commons/ScoreCard.dart +++ b/lib/commons/ScoreCard.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; import '../models/Score.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'custom_icons.dart'; @@ -63,7 +64,7 @@ class _ScoreCardState extends State with TickerProviderStateMixin { Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Text( - '${widget.score.competition} - ${widget.score.date_time}', + '${widget.score.competition} - ${DateFormat('E, d MMMM, hh:mm aaa').format(widget.score.date_time)}', style: TextStyle( fontSize: 12, color: Color(0X8A000000)), ), diff --git a/lib/models/Score.dart b/lib/models/Score.dart index 8b5c230..641ec3f 100644 --- a/lib/models/Score.dart +++ b/lib/models/Score.dart @@ -2,7 +2,7 @@ import 'package:intl/intl.dart'; class Score{ String competition; String venue; - String date_time; + DateTime date_time; String status; String homeTeam; String awayTeam; @@ -15,7 +15,7 @@ class Score{ Score.fromJson(Map parsedJson): competition = parsedJson['league']['name'], venue = parsedJson['fixture']['venue']['name'], - date_time = new DateFormat('E, d MMMM, hh:mm aaa').format(DateTime.parse('${parsedJson['fixture']['date'].substring(0, 19)}Z')), + date_time = DateTime.parse('${parsedJson['fixture']['date'].substring(0, 19)}Z'), status = parsedJson['fixture']['status']['short'], homeTeam = parsedJson['teams']['home']['name'], awayTeam = parsedJson['teams']['away']['name'], diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 5293782..664e8d1 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -1,6 +1,7 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:sportsmojo/commons/ScoreCard.dart'; import 'package:sportsmojo/models/Score.dart'; import '../commons/BottomNavbar.dart'; import '../commons/NewsCard.dart'; @@ -81,7 +82,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { Widget UpcomingMatchesSection({AppProvider appProvider}) { final List matches = appProvider.favouriteTeamScores; - final Score latestMatch = + final Score latestScore = matches.firstWhere((score) => score.status == "FT"); return Padding( padding: const EdgeInsets.all(8.0), @@ -96,78 +97,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { textAlign: TextAlign.center, ), ), - Card( - child: Padding( - padding: const EdgeInsets.all(12.0), - child: Column( - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Row( - children: [ - Text( - '${latestMatch.competition} - ${latestMatch.date_time}', - style: - TextStyle(fontSize: 14, color: Color(0X8A000000)), - ), - Spacer(), - Container( - width: 20.0, - child: Text( - latestMatch.status, - style: TextStyle(color: Colors.red), - ), - ) - ], - ), - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0), - child: Row( - children: [ - Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 4.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: latestMatch.homeTeamLogo)), - ), - Text(latestMatch.homeTeam) - ], - ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - '${latestMatch.homeScore} - ${latestMatch.awayScore}', - style: TextStyle(fontSize: 30), - ), - ], - ), - ), - Column( - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: latestMatch.awayTeamLogo)), - ), - Text(latestMatch.awayTeam) - ], - ) - ], - ), - ) - ], - ), - ), - ), + ScoreCard(score: latestScore,) ]), ); } diff --git a/lib/services/ScoreService.dart b/lib/services/ScoreService.dart index 61c57d4..3999436 100644 --- a/lib/services/ScoreService.dart +++ b/lib/services/ScoreService.dart @@ -15,10 +15,13 @@ class ScoreService { await dio.get('https://v3.football.api-sports.io/fixtures?league=${id}&season=2019&timezone=Asia/Kolkata'); if (response.statusCode == 200) { final unparsedJson = response.data['response'].toList(); - for (int i = unparsedJson.length - 1; i >= 0 ; i--) { + for (int i = 0; i < unparsedJson.length; i++) { scoresList.add(Score.fromJson(unparsedJson[i])); } } + scoresList.sort((a,b) { + return b.date_time.compareTo(a.date_time); + }); return scoresList; } on DioError catch (e) { return null; @@ -32,10 +35,13 @@ class ScoreService { await dio.get('https://v3.football.api-sports.io/fixtures?team=${id}&season=2019&timezone=Asia/Kolkata'); if (response.statusCode == 200) { final unparsedJson = response.data['response'].toList(); - for (int i = unparsedJson.length - 1; i >= 0 ; i--) { + for (int i = 0; i < unparsedJson.length; i++) { scoresList.add(Score.fromJson(unparsedJson[i])); } } + scoresList.sort((a,b) { + return b.date_time.compareTo(a.date_time); + }); return scoresList; } on DioError catch (e) { return null; diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index c4dbc02..2472cc1 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -5,8 +5,6 @@ import 'package:provider/provider.dart'; import '../Provider/AppProvider.dart'; import '../models/Score.dart'; import '../commons/ScoreCard.dart'; -import '../services/GetItLocator.dart'; -import '../Provider/AllScoresViewModel.dart'; class AllScores extends StatefulWidget { @override @@ -15,19 +13,21 @@ class AllScores extends StatefulWidget { class _AllScoresState extends State { ScrollController _scrollController = ScrollController(); + int _lastRetrievedLindex = 9; int _totalNoOfScores; - AllScoresViewModel _viewModel; - List _leagueWiseScores; + List _scores; @override void initState() { super.initState(); final AppProvider appProvider = - Provider.of(context, listen: false); + Provider.of(context, listen: false); if (appProvider.leagueWiseScores == null) { - appProvider.loadLeagueWiseScores().whenComplete(() => _setScores(appProvider: appProvider)); + appProvider.loadLeagueWiseScores().whenComplete(() { + _setScores(appProvider); + }); } else { - _setScores(appProvider: appProvider); + _setScores(appProvider); } } @@ -39,97 +39,81 @@ class _AllScoresState extends State { @override Widget build(BuildContext context) { - final AppProvider appProvider = Provider.of(context); return SingleChildScrollView( controller: _scrollController, - child: ChangeNotifierProvider( - create: (context) => _viewModel, - child: Consumer( - builder: (context, model, child) { - _scrollController.addListener(() { - if ((_scrollController.position.maxScrollExtent - - _scrollController.position.pixels == - 0.0) && - model.lastRetrievedIndex < _totalNoOfScores - 1) { - _getMoreScores(model, _leagueWiseScores); + child: Container( + margin: EdgeInsets.only(top: 30.0), + child: _scores != null + ? ListView.builder( + shrinkWrap: true, + itemCount: _lastRetrievedLindex + 2, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + if(index == _lastRetrievedLindex + 1) { + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: SizedBox( + height: 40, + child: Chip( + elevation: 2, + backgroundColor: Colors.white, + avatar: CircleAvatar( + backgroundColor: Colors.white, + child: Icon(Icons.arrow_upward), + ), + label: Text('Swipe up to load more', style: TextStyle(fontSize: 14, fontWeight: FontWeight.w300),), + ), + ), + ); } - }); - return Container( - margin: EdgeInsets.only(top: 30.0), - child: (model != null && model.allScores != null) - ? ListView.builder( - shrinkWrap: true, - itemCount: model.lastRetrievedIndex + 2, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - if (index == model.lastRetrievedIndex + 1) { - return Padding( - padding: const EdgeInsets.only(bottom: 16.0), - child: SizedBox( - height: 40, - child: Chip( - elevation: 2, - backgroundColor: Colors.white, - avatar: CircleAvatar( - backgroundColor: Colors.white, - child: Icon(Icons.arrow_upward), - ), - label: Text( - 'Swipe up to load more', - style: TextStyle( - fontSize: 14, - fontWeight: FontWeight.w300), - ), - ), - ), - ); - } - final Score score = model.allScores[index]; - return ScoreCard( - score: score, - ); - }) - : ListView.builder( - physics: NeverScrollableScrollPhysics(), - shrinkWrap: true, - itemCount: 10, - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }), - ); - }, - ), + final Score score = _scores[index]; + return ScoreCard( + score: score, + ); + }) + : ListView.builder( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), ), ); } - void _getMoreScores( - AllScoresViewModel model, List scores) { - if (model.lastRetrievedIndex < (_totalNoOfScores - 11)) { - model.allScores.addAll(scores.sublist( - model.lastRetrievedIndex + 1, - model.lastRetrievedIndex + 11)); - model.lastRetrievedIndex += 10; + void _getMoreScores(List scores) { + setState(() { + if (_lastRetrievedLindex < (_totalNoOfScores - 11)) { + _scores.addAll( + scores.sublist(_lastRetrievedLindex + 1 , _lastRetrievedLindex + 11)); + _lastRetrievedLindex += 10; } else { - model.allScores - .addAll(scores.sublist(model.lastRetrievedIndex + 1)); - model.lastRetrievedIndex = _totalNoOfScores - 1; + _scores.addAll(scores.sublist(_lastRetrievedLindex + 1)); + _lastRetrievedLindex = _totalNoOfScores - 1; } + }); } - void _setScores({AppProvider appProvider}) { - _leagueWiseScores = appProvider.leagueWiseScores; - _totalNoOfScores = _leagueWiseScores.length; + void _setScores(AppProvider appProvider) { + final List allScores = appProvider.leagueWiseScores; + _totalNoOfScores = allScores.length; setState(() { if (_totalNoOfScores > 10) { - _viewModel = locator( - param1: _leagueWiseScores.sublist(0, 10), param2: 9); + _scores = allScores.sublist(0, 10); } else { - _viewModel = locator( - param1: _leagueWiseScores, param2: _totalNoOfScores - 1); + _scores = allScores; + } + }); + _scrollController.addListener(() { + if ((_scrollController.position.maxScrollExtent - + _scrollController.position.pixels == + 0.0) && + _lastRetrievedLindex < _totalNoOfScores - 1) { + _getMoreScores(allScores); } }); } diff --git a/lib/widgets/FavouriteScores.dart b/lib/widgets/FavouriteScores.dart index 5e303f8..dabc85e 100644 --- a/lib/widgets/FavouriteScores.dart +++ b/lib/widgets/FavouriteScores.dart @@ -22,25 +22,13 @@ class _FavouriteScoresState extends State { final AppProvider appProvider = Provider.of(context, listen: false); if (appProvider.favouriteTeamScores == null) { - appProvider.loadFavouriteScores(); + appProvider.loadFavouriteScores().whenComplete(() { + _setScores(appProvider); + }); + } + else { + _setScores(appProvider); } - final List _favouriteTeamScores = appProvider.favouriteTeamScores; - _totalNoOfScores = _favouriteTeamScores.length; - _scrollController.addListener(() { - if ((_scrollController.position.maxScrollExtent - - _scrollController.position.pixels == - 0.0) && - _lastRetrievedLindex < _totalNoOfScores - 1) { - _getMoreScores(_favouriteTeamScores); - } - }); - setState(() { - if (_totalNoOfScores > 10) { - _scores = _favouriteTeamScores.sublist(0, 10); - } else { - _scores = _favouriteTeamScores; - } - }); } @override @@ -85,6 +73,7 @@ class _FavouriteScoresState extends State { ); }) : ListView.builder( + shrinkWrap: true, physics: NeverScrollableScrollPhysics(), itemCount: 10, itemBuilder: (BuildContext context, int index) { @@ -109,4 +98,24 @@ class _FavouriteScoresState extends State { } }); } + + List _setScores(AppProvider appProvider) { + final List favouriteTeamScores = appProvider.favouriteTeamScores; + _totalNoOfScores = favouriteTeamScores.length; + setState(() { + if (_totalNoOfScores > 10) { + _scores = favouriteTeamScores.sublist(0, 10); + } else { + _scores = favouriteTeamScores; + } + }); + _scrollController.addListener(() { + if ((_scrollController.position.maxScrollExtent - + _scrollController.position.pixels == + 0.0) && + _lastRetrievedLindex < _totalNoOfScores - 1) { + _getMoreScores(favouriteTeamScores); + } + }); + } } From 37d55d53315ad488fdb3ca0c9d9ad324a350acac Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Wed, 8 Jul 2020 02:13:27 +0530 Subject: [PATCH 11/49] Added stat screen for each fixture --- lib/commons/ScoreCard.dart | 199 ++++++++++++------------- lib/models/Score.dart | 4 +- lib/screens/FixtureStat.dart | 263 +++++++++++++++++++++++++++++++++ lib/screens/HomeScreen.dart | 12 -- lib/services/CustomRouter.dart | 12 +- 5 files changed, 372 insertions(+), 118 deletions(-) create mode 100644 lib/screens/FixtureStat.dart diff --git a/lib/commons/ScoreCard.dart b/lib/commons/ScoreCard.dart index dcb5d1f..de60503 100644 --- a/lib/commons/ScoreCard.dart +++ b/lib/commons/ScoreCard.dart @@ -43,123 +43,114 @@ class _ScoreCardState extends State with TickerProviderStateMixin { Widget build(BuildContext context) { return Card( - child: AnimatedContainer( - duration: const Duration(milliseconds: 500), - curve: Curves.easeOut, - child: InkWell( - onTap: () { -// List newList = -// List.generate(8, (index) => false); -// newList[index] = !_cardExpanded[index]; -// setState(() { -// _cardExpanded = newList; -// }); - }, - child: Padding( - padding: const EdgeInsets.all(12.0), - child: Column( - children: [ - Row( - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Text( - '${widget.score.competition} - ${DateFormat('E, d MMMM, hh:mm aaa').format(widget.score.date_time)}', - style: TextStyle( - fontSize: 12, color: Color(0X8A000000)), - ), + child: InkWell( + onTap: () { + Navigator.of(context).pushNamed('/fixturestat', arguments: {'score': widget.score} ); + }, + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Column( + children: [ + Row( + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + '${widget.score.competition} - ${DateFormat('E, d MMMM, hh:mm aaa').format(widget.score.date_time)}', + style: TextStyle( + fontSize: 12, color: Color(0X8A000000)), ), - Spacer(), + ), + Spacer(), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 20.0, + child: Text( + (widget.score.minuteElapsed != null && + widget.score.minuteElapsed != 90 && + widget.score.minuteElapsed != 120) + ? "${widget.score.minuteElapsed}'" + : "${widget.score.status}", + style: TextStyle(color: Colors.red), + ), + ), + if (widget.score.minuteElapsed != null && + widget.score.minuteElapsed != 90 && + widget.score.minuteElapsed != 120) + Container( + width: animation.value, + height: 2.0, + color: Colors.red, + ) + ], + ) + ], + ), + Padding( + padding: + const EdgeInsets.symmetric(horizontal: 16.0), + child: Row( + children: [ Column( - crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, children: [ - Container( - width: 20.0, - child: Text( - (widget.score.minuteElapsed != null && - widget.score.minuteElapsed != 90 && - widget.score.minuteElapsed != 120) - ? "${widget.score.minuteElapsed}'" - : "${widget.score.status}", - style: TextStyle(color: Colors.red), - ), + Padding( + padding: + const EdgeInsets.only(bottom: 4.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.homeTeamLogo, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), ), - if (widget.score.minuteElapsed != null && - widget.score.minuteElapsed != 90 && - widget.score.minuteElapsed != 120) - Container( - width: animation.value, - height: 2.0, - color: Colors.red, - ) + FittedBox(child: Text(widget.score.homeTeam)) ], - ) - ], - ), - Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), - child: Row( - children: [ - Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, children: [ - Padding( - padding: - const EdgeInsets.only(bottom: 4.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: widget.score.homeTeamLogo, - placeholder: - (BuildContext context, String url) => - Icon(MyFlutterApp.football))), + (widget.score.minuteElapsed != null) + ? Text( + '${widget.score.homeScore} - ${widget.score.awayScore}', + style: TextStyle(fontSize: 30), + ) + : Text( + 'VS', + style: TextStyle( + fontSize: 18, + color: Color(0X8A000000)), ), - FittedBox(child: Text(widget.score.homeTeam)) ], ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - (widget.score.minuteElapsed != null) - ? Text( - '${widget.score.homeScore} - ${widget.score.awayScore}', - style: TextStyle(fontSize: 30), - ) - : Text( - 'VS', - style: TextStyle( - fontSize: 18, - color: Color(0X8A000000)), - ), - ], + ), + Column( + children: [ + Padding( + padding: + const EdgeInsets.only(bottom: 8.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.awayTeamLogo, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), ), - ), - Column( - children: [ - Padding( - padding: - const EdgeInsets.only(bottom: 8.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: widget.score.awayTeamLogo, - placeholder: - (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - ), - FittedBox(child: Text(widget.score.awayTeam)) - ], - ) - ], - ), + FittedBox(child: Text(widget.score.awayTeam)) + ], + ) + ], ), + ), // if (_cardExpanded[index]) // scorers(), - ], - ), + ], ), ), ), diff --git a/lib/models/Score.dart b/lib/models/Score.dart index 641ec3f..12e8548 100644 --- a/lib/models/Score.dart +++ b/lib/models/Score.dart @@ -1,5 +1,6 @@ import 'package:intl/intl.dart'; class Score{ + int id; String competition; String venue; DateTime date_time; @@ -11,8 +12,9 @@ class Score{ int minuteElapsed; int homeScore; int awayScore; - Score({this.competition,this.venue, this.date_time, this.status, this.homeTeam, this.awayTeam, this.homeTeamLogo, this.awayTeamLogo, this.homeScore, this.awayScore, this.minuteElapsed}); + Score({this.id, this.competition,this.venue, this.date_time, this.status, this.homeTeam, this.awayTeam, this.homeTeamLogo, this.awayTeamLogo, this.homeScore, this.awayScore, this.minuteElapsed}); Score.fromJson(Map parsedJson): + id = parsedJson['fixture']['id'], competition = parsedJson['league']['name'], venue = parsedJson['fixture']['venue']['name'], date_time = DateTime.parse('${parsedJson['fixture']['date'].substring(0, 19)}Z'), diff --git a/lib/screens/FixtureStat.dart b/lib/screens/FixtureStat.dart new file mode 100644 index 0000000..ff1032a --- /dev/null +++ b/lib/screens/FixtureStat.dart @@ -0,0 +1,263 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:sportsmojo/commons/custom_icons.dart'; +import '../models/Score.dart'; + +class FixtureStat extends StatelessWidget { + final Score score; + FixtureStat({this.score}); + + @override + Widget build(BuildContext context) { + return SafeArea( + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.transparent, + elevation: 0, + ), + body: SingleChildScrollView( + child: Padding( + padding: + const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0), + child: Column( + children: [ + Row( + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 4.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: score.homeTeamLogo, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + ), + FittedBox(child: Text(score.homeTeam)), + ], + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + (score.minuteElapsed != null) + ? Text( + '${score.homeScore} - ${score.awayScore}', + style: TextStyle(fontSize: 30), + ) + : Text( + 'VS', + style: TextStyle( + fontSize: 18, color: Color(0XAA000000)), + ), + ], + ), + ), + Column( + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: score.awayTeamLogo, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + ), + FittedBox(child: Text(score.awayTeam)) + ], + ) + ], + ), + Divider( + thickness: 0.7, + ), + scorers(), + Divider( + thickness: 0.7, + ), + stats() + ], + ), + ), + ), + ), + ); + } + + Widget stats() { + return Padding( + padding: const EdgeInsets.all(12.0), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + height: 25, + child: CachedNetworkImage( + imageUrl: score.homeTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + Text('Team Stats'), + Container( + height: 25, + child: CachedNetworkImage( + imageUrl: score.awayTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))) + ], + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text('6', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('Shots', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('8', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text('1', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('Shots on target', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('4', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text('43%', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('Possession', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('57%', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text('12', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('Fouls', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('8', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text('4', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('Yellow Cards', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('3', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text('0', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('Red Cards', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('0', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text('3', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('Offsides', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('1', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text('3', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('Corners', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), + Text('2', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) + ], + ), + ) + ], + ), + ); + } + + Widget scorers() { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + children: [ + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Messi 12'(P)", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.left,), + ), + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Pique 26'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.left,), + ), + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Suarez 42'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.left,), + ), + ], + ), + Container( + height: 15, + child: Icon(MyFlutterApp.football, color: Color(0XAA000000),), + ), + Column( + children: [ + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Ramos 22'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), + ), + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Hazard 26'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), + ), + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Ramos 44'(P)", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), + ), + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Vinicius 84'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), + ), + ], + ) + ], + ); + } +} diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 664e8d1..7b62000 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -300,16 +300,4 @@ class _HomeScreenState extends State with TickerProviderStateMixin { seconds: 3); } } - - Future _onLoading({AppProvider appProvider}) async { - appProvider.newsList = null; - appProvider.favouriteNewsList = null; - _refreshController.loadComplete(); - } - - Future _onRefresh({AppProvider appProvider}) async { - await appProvider.loadFavouriteNews(); - await appProvider.loadAllNews(); - _refreshController.refreshCompleted(); - } } diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index 7d60a7a..1110b56 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -1,4 +1,6 @@ import 'package:flutter/cupertino.dart'; +import 'package:sportsmojo/models/Score.dart'; +import 'package:sportsmojo/screens/FixtureStat.dart'; import '../screens/HomeScreen.dart'; import '../screens/ScoreScreen.dart'; import '../screens/News.dart'; @@ -15,7 +17,8 @@ class Router { '/news', '/login', '/newsarticle', - '/selectteam' + '/selectteam', + '/fixturestat' ]; if (validRoutes.contains(settings.name)) { return customRoutes(settings.name, settings.arguments); @@ -27,6 +30,7 @@ class Router { int index = null; int leagueId = null; Map favouriteTeamMessage = null; + Score score = null; if (args != null) { if (args.containsKey('index')) { index = args['index']; @@ -40,6 +44,9 @@ class Router { if (args.containsKey('favouriteTeamMessage')) { favouriteTeamMessage = args['favouriteTeamMessage']; } + if (args.containsKey('score')) { + score = args['score']; + } } Map screens = { '/home': HomeScreen( @@ -54,6 +61,9 @@ class Router { ), '/selectteam': FavouriteTeam( leagueId: leagueId, + ), + '/fixturestat': FixtureStat( + score: score, ) }; From b894f8bad5dda2cdfe402e6bfbf2bbdeab81af69 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Wed, 8 Jul 2020 21:51:05 +0530 Subject: [PATCH 12/49] Added fetch data to stat screen --- lib/Provider/MatchStatViewModel.dart | 20 ++ lib/commons/ScoreCard.dart | 2 +- lib/main.dart | 1 + lib/models/MatchStat.dart | 30 +++ lib/screens/FixtureStat.dart | 263 -------------------- lib/screens/MatchStatScreen.dart | 215 +++++++++++++++++ lib/services/CustomRouter.dart | 6 +- lib/services/GetItLocator.dart | 4 + lib/services/StatService.dart | 27 +++ lib/widgets/Stats.dart | 348 +++++++++++++++++++++++++++ 10 files changed, 649 insertions(+), 267 deletions(-) create mode 100644 lib/Provider/MatchStatViewModel.dart create mode 100644 lib/models/MatchStat.dart delete mode 100644 lib/screens/FixtureStat.dart create mode 100644 lib/screens/MatchStatScreen.dart create mode 100644 lib/services/StatService.dart create mode 100644 lib/widgets/Stats.dart diff --git a/lib/Provider/MatchStatViewModel.dart b/lib/Provider/MatchStatViewModel.dart new file mode 100644 index 0000000..89370a4 --- /dev/null +++ b/lib/Provider/MatchStatViewModel.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; +import '../models/MatchStat.dart'; +import '../services/StatService.dart'; +import '../services/GetItLocator.dart'; +class MatchStatViewModel extends ChangeNotifier { + Map _stats; + MatchStatViewModel(this._stats); + StatService _statService = locator(); + + Future loadStats({@required int fixtureId}) async{ + _stats = await _statService.fetchStats(id: fixtureId); + notifyListeners(); + } + + Map get stats => _stats; + void set stats(Map stats) { + _stats = stats; + notifyListeners(); + } +} \ No newline at end of file diff --git a/lib/commons/ScoreCard.dart b/lib/commons/ScoreCard.dart index de60503..bd2aaeb 100644 --- a/lib/commons/ScoreCard.dart +++ b/lib/commons/ScoreCard.dart @@ -45,7 +45,7 @@ class _ScoreCardState extends State with TickerProviderStateMixin { return Card( child: InkWell( onTap: () { - Navigator.of(context).pushNamed('/fixturestat', arguments: {'score': widget.score} ); + Navigator.of(context).pushNamed('/matchstat', arguments: {'score': widget.score} ); }, child: Padding( padding: const EdgeInsets.all(12.0), diff --git a/lib/main.dart b/lib/main.dart index b0eff66..821ba4b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:sportsmojo/screens/FavouriteScreen1.dart'; import 'screens/HomeScreen.dart'; import 'package:provider/provider.dart'; import 'Provider/AppProvider.dart'; diff --git a/lib/models/MatchStat.dart b/lib/models/MatchStat.dart new file mode 100644 index 0000000..acc39e9 --- /dev/null +++ b/lib/models/MatchStat.dart @@ -0,0 +1,30 @@ + +class MatchStat { + int totalShots; + int shotsOnTarget; + String possession; + int fouls; + int yellowCards; + int redCards; + int offsides; + int corners; + int saves; + int totalPasses; + String accuratePasses; + + MatchStat( + {this.totalShots, this.shotsOnTarget, this.possession, this.fouls, this.yellowCards, this.redCards, this.offsides, this.corners, this.saves, this.accuratePasses, this.totalPasses}); + + MatchStat.fromJson(List parsedJson) + : totalShots = parsedJson[2]["value"] ?? 0, + shotsOnTarget = parsedJson[0]["value"] ?? 0, + possession = parsedJson[9]["value"], + fouls = parsedJson[6]["value"] ?? 0, + yellowCards = parsedJson[10]["value"] ?? 0, + redCards = parsedJson[11]["value"] ?? 0, + offsides = parsedJson[8]["value"] ?? 0, + corners = parsedJson[7]["value"] ?? 0, + saves = parsedJson[12]["value"] ?? 0, + totalPasses = parsedJson[13]["value"] ?? 0, + accuratePasses = parsedJson[15]["value"]; +} \ No newline at end of file diff --git a/lib/screens/FixtureStat.dart b/lib/screens/FixtureStat.dart deleted file mode 100644 index ff1032a..0000000 --- a/lib/screens/FixtureStat.dart +++ /dev/null @@ -1,263 +0,0 @@ -import 'package:cached_network_image/cached_network_image.dart'; -import 'package:flutter/material.dart'; -import 'package:sportsmojo/commons/custom_icons.dart'; -import '../models/Score.dart'; - -class FixtureStat extends StatelessWidget { - final Score score; - FixtureStat({this.score}); - - @override - Widget build(BuildContext context) { - return SafeArea( - child: Scaffold( - appBar: AppBar( - backgroundColor: Colors.transparent, - elevation: 0, - ), - body: SingleChildScrollView( - child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0), - child: Column( - children: [ - Row( - children: [ - Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 4.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: score.homeTeamLogo, - placeholder: - (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - ), - FittedBox(child: Text(score.homeTeam)), - ], - ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - (score.minuteElapsed != null) - ? Text( - '${score.homeScore} - ${score.awayScore}', - style: TextStyle(fontSize: 30), - ) - : Text( - 'VS', - style: TextStyle( - fontSize: 18, color: Color(0XAA000000)), - ), - ], - ), - ), - Column( - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: score.awayTeamLogo, - placeholder: - (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - ), - FittedBox(child: Text(score.awayTeam)) - ], - ) - ], - ), - Divider( - thickness: 0.7, - ), - scorers(), - Divider( - thickness: 0.7, - ), - stats() - ], - ), - ), - ), - ), - ); - } - - Widget stats() { - return Padding( - padding: const EdgeInsets.all(12.0), - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Container( - height: 25, - child: CachedNetworkImage( - imageUrl: score.homeTeamLogo, - placeholder: (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - Text('Team Stats'), - Container( - height: 25, - child: CachedNetworkImage( - imageUrl: score.awayTeamLogo, - placeholder: (BuildContext context, String url) => - Icon(MyFlutterApp.football))) - ], - ), - Padding( - padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text('6', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('Shots', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('8', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) - ], - ), - ), - Padding( - padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text('1', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('Shots on target', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('4', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) - ], - ), - ), - Padding( - padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text('43%', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('Possession', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('57%', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) - ], - ), - ), - Padding( - padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text('12', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('Fouls', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('8', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) - ], - ), - ), - Padding( - padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text('4', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('Yellow Cards', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('3', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) - ], - ), - ), - Padding( - padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text('0', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('Red Cards', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('0', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) - ], - ), - ), - Padding( - padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text('3', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('Offsides', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('1', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) - ], - ), - ), - Padding( - padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text('3', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('Corners', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,), - Text('2', style: TextStyle(fontSize: 14), textAlign: TextAlign.center,) - ], - ), - ) - ], - ), - ); - } - - Widget scorers() { - return Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - children: [ - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Messi 12'(P)", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.left,), - ), - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Pique 26'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.left,), - ), - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Suarez 42'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.left,), - ), - ], - ), - Container( - height: 15, - child: Icon(MyFlutterApp.football, color: Color(0XAA000000),), - ), - Column( - children: [ - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Ramos 22'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), - ), - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Hazard 26'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), - ), - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Ramos 44'(P)", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), - ), - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Vinicius 84'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), - ), - ], - ) - ], - ); - } -} diff --git a/lib/screens/MatchStatScreen.dart b/lib/screens/MatchStatScreen.dart new file mode 100644 index 0000000..dc93255 --- /dev/null +++ b/lib/screens/MatchStatScreen.dart @@ -0,0 +1,215 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:sportsmojo/Provider/MatchStatViewModel.dart'; +import 'package:sportsmojo/commons/custom_icons.dart'; +import '../models/Score.dart'; +import '../widgets/Stats.dart'; +import '../services/GetItLocator.dart'; +import 'package:provider/provider.dart'; + +class MatchStatScreen extends StatefulWidget { + final Score score; + MatchStatScreen({this.score}); + + @override + _MatchStatScreenState createState() => _MatchStatScreenState(); +} + +class _MatchStatScreenState extends State with TickerProviderStateMixin { + final MatchStatViewModel _matchStatViewModel = locator(); + Animation animation; + AnimationController _animationController; + + @override + void initState() { + _animationController = + AnimationController(vsync: this, duration: Duration(seconds: 1)); + animation = + Tween(begin: 20.0, end: 0.0).animate(_animationController) + ..addListener(() { + setState(() {}); + }) + ..addStatusListener((status) { + if (status == AnimationStatus.completed) { + _animationController.reverse(); + } else if (status == AnimationStatus.dismissed) { + _animationController.forward(); + } + }); + _animationController.forward(); + } + + @override + void dispose() { + _animationController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return SafeArea( + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.transparent, + elevation: 0, + ), + body: SingleChildScrollView( + child: Padding( + padding: + const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0), + child: Column( + children: [ + Row( + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + '${widget.score.competition} - ${DateFormat('E, d MMMM, hh:mm aaa').format(widget.score.date_time)}', + style: TextStyle( + fontSize: 12, color: Color(0X8A000000)), + ), + ), + Spacer(), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 20.0, + child: Text( + (widget.score.minuteElapsed != null && + widget.score.minuteElapsed != 90 && + widget.score.minuteElapsed != 120) + ? "${widget.score.minuteElapsed}'" + : "${widget.score.status}", + style: TextStyle(color: Colors.red), + ), + ), + if (widget.score.minuteElapsed != null && + widget.score.minuteElapsed != 90 && + widget.score.minuteElapsed != 120) + Container( + width: animation.value, + height: 2.0, + color: Colors.red, + ) + ], + ) + ], + ), + Row( + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 4.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.homeTeamLogo, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + ), + FittedBox(child: Text(widget.score.homeTeam)), + ], + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + (widget.score.minuteElapsed != null) + ? Text( + '${widget.score.homeScore} - ${widget.score.awayScore}', + style: TextStyle(fontSize: 30), + ) + : Text( + 'VS', + style: TextStyle( + fontSize: 18, color: Color(0XAA000000)), + ), + ], + ), + ), + Column( + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.awayTeamLogo, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + ), + FittedBox(child: Text(widget.score.awayTeam)) + ], + ) + ], + ), + Divider( + thickness: 0.7, + ), + scorers(), + Divider( + thickness: 0.7, + ), + Stats(score: widget.score,) + ], + ), + ), + ), + ), + ); + } + + Widget scorers() { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + children: [ + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Messi 12'(P)", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.left,), + ), + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Pique 26'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.left,), + ), + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Suarez 42'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.left,), + ), + ], + ), + Container( + height: 15, + child: Icon(MyFlutterApp.football, color: Color(0XAA000000),), + ), + Column( + children: [ + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Ramos 22'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), + ), + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Hazard 26'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), + ), + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Ramos 44'(P)", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), + ), + Padding( + padding: const EdgeInsets.all(2.0), + child: Text("Vinicius 84'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), + ), + ], + ) + ], + ); + } +} diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index 1110b56..059bd2a 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -1,6 +1,6 @@ import 'package:flutter/cupertino.dart'; import 'package:sportsmojo/models/Score.dart'; -import 'package:sportsmojo/screens/FixtureStat.dart'; +import 'package:sportsmojo/screens/MatchStatScreen.dart'; import '../screens/HomeScreen.dart'; import '../screens/ScoreScreen.dart'; import '../screens/News.dart'; @@ -18,7 +18,7 @@ class Router { '/login', '/newsarticle', '/selectteam', - '/fixturestat' + '/matchstat' ]; if (validRoutes.contains(settings.name)) { return customRoutes(settings.name, settings.arguments); @@ -62,7 +62,7 @@ class Router { '/selectteam': FavouriteTeam( leagueId: leagueId, ), - '/fixturestat': FixtureStat( + '/matchstat': MatchStatScreen( score: score, ) }; diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index c7408c1..2e04aa6 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -2,11 +2,13 @@ import 'package:sportsmojo/models/Score.dart'; import 'NewsService.dart'; import 'TeamService.dart'; import 'ScoreService.dart'; +import 'StatService.dart'; import 'package:get_it/get_it.dart'; import '../Provider/HomeViewModel.dart'; import '../Provider/AppProvider.dart'; import '../Provider/AllScoresViewModel.dart'; import '../Provider/FavouriteScoresViewModel.dart'; +import '../Provider/MatchStatViewModel.dart'; GetIt locator = GetIt.instance; @@ -14,7 +16,9 @@ void setupLocator() { locator.registerLazySingleton(() => NewsService()); locator.registerLazySingleton(() => TeamService()); locator.registerLazySingleton(() => ScoreService()); + locator.registerLazySingleton(() => StatService()); locator.registerFactory(() => HomeViewModel(0)); + locator.registerFactory(() => MatchStatViewModel(null)); locator.registerFactoryParam, int>((scores, index) => AllScoresViewModel(scores, index)); locator.registerFactoryParam, int>((scores, index) => FavouriteScoresViewModel(scores, index)); locator.registerFactory(() => AppProvider(0)); diff --git a/lib/services/StatService.dart b/lib/services/StatService.dart new file mode 100644 index 0000000..f447ab3 --- /dev/null +++ b/lib/services/StatService.dart @@ -0,0 +1,27 @@ +import 'package:dio/dio.dart'; +import 'package:flutter/material.dart'; +import '../models/MatchStat.dart'; +import '../secret.dart'; +class StatService { + static BaseOptions options = new BaseOptions(headers: { + 'x-rapidapi-host': 'v3.football.api-sports.io', + 'x-rapidapi-key': scoreApiKey + }); + final dio = new Dio(options); + + Future> fetchStats({@required int id}) async{ + Map stats = {}; + try { + final response = + await dio.get('https://v3.football.api-sports.io/fixtures/statistics?fixture=${id}'); + if (response.statusCode == 200) { + final unparsedJson = response.data['response'].toList(); + stats["home"] = MatchStat.fromJson(unparsedJson[0]["statistics"]); + stats["away"] = MatchStat.fromJson(unparsedJson[1]["statistics"]); + return stats; + } + } on DioError catch (e) { + return stats; + } + } +} \ No newline at end of file diff --git a/lib/widgets/Stats.dart b/lib/widgets/Stats.dart new file mode 100644 index 0000000..336eb27 --- /dev/null +++ b/lib/widgets/Stats.dart @@ -0,0 +1,348 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:pk_skeleton/pk_skeleton.dart'; +import '../services/GetItLocator.dart'; +import 'package:provider/provider.dart'; +import '../models/MatchStat.dart'; +import 'package:sportsmojo/Provider/MatchStatViewModel.dart'; +import '../commons/custom_icons.dart'; +import '../models/Score.dart'; +import '../services/StatService.dart'; + +class Stats extends StatefulWidget { + final Score score; + Stats({this.score}); + + @override + _StatsState createState() => _StatsState(); +} + +class _StatsState extends State { + StatService _statService = locator(); + Future> futureMatchStat; + @override + void initState() { + super.initState(); + setState(() { + futureMatchStat = _statService.fetchStats(id: widget.score.id); + }); + } + + @override + Widget build(BuildContext context) { + return Card( + child: Padding( + padding: const EdgeInsets.all(12.0), + child: FutureBuilder>( + future: futureMatchStat, + builder: (BuildContext context, AsyncSnapshot snapshot) { + if (snapshot.connectionState == ConnectionState.done) { + final stats = snapshot.data; + return Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + height: 25, + child: CachedNetworkImage( + imageUrl: widget.score.homeTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + Text('Team Stats'), + Container( + height: 25, + child: CachedNetworkImage( + imageUrl: widget.score.awayTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))) + ], + ), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].totalShots}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Shots', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].totalShots}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].shotsOnTarget}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Shots on target', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].shotsOnTarget}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].possession}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Possession', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].possession}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].totalPasses}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Total Passes', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].totalPasses}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].accuratePasses}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Accurate Passes', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].accuratePasses}%', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].fouls}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Fouls', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].fouls}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].yellowCards}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Yellow Cards', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].yellowCards}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].redCards}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Red Cards', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].redCards}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].offsides}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Offsides', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].offsides}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].corners}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Corners', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].corners}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].saves}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Saves', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].saves}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ) + ], + ); + } + if (snapshot.connectionState == ConnectionState.waiting) { + return PKCardPageSkeleton( + totalLines: 10, + ); + } + }), + ), + ); + } +} From eb8b3198dfc80a6142242767cc4a34a555a47a67 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Thu, 9 Jul 2020 01:29:27 +0530 Subject: [PATCH 13/49] Added goal scorers to stat screen --- ios/Flutter/flutter_export_environment 16.sh | 11 +++ lib/Provider/MatchEventViewModel.dart | 22 +++++ lib/models/MatchEvent.dart | 16 ++++ lib/screens/MatchStatScreen.dart | 60 ++------------ lib/services/GetItLocator.dart | 4 + lib/services/MatchEventService.dart | 28 +++++++ lib/widgets/Scorers.dart | 86 ++++++++++++++++++++ lib/widgets/Stats.dart | 2 +- 8 files changed, 176 insertions(+), 53 deletions(-) create mode 100755 ios/Flutter/flutter_export_environment 16.sh create mode 100644 lib/Provider/MatchEventViewModel.dart create mode 100644 lib/models/MatchEvent.dart create mode 100644 lib/services/MatchEventService.dart create mode 100644 lib/widgets/Scorers.dart diff --git a/ios/Flutter/flutter_export_environment 16.sh b/ios/Flutter/flutter_export_environment 16.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 16.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/Provider/MatchEventViewModel.dart b/lib/Provider/MatchEventViewModel.dart new file mode 100644 index 0000000..91dc558 --- /dev/null +++ b/lib/Provider/MatchEventViewModel.dart @@ -0,0 +1,22 @@ +import 'package:flutter/material.dart'; +import 'package:sportsmojo/models/MatchEvent.dart'; +import 'package:sportsmojo/services/MatchEventService.dart'; +import '../models/MatchStat.dart'; +import '../services/MatchEventService.dart'; +import '../services/GetItLocator.dart'; +class MatchEventViewModel extends ChangeNotifier { + List _events; + MatchEventViewModel(this._events); + MatchEventService _eventService = locator(); + + Future loadEvents({@required int fixtureId}) async{ + _events = await _eventService.fetchEvents(fixtureId: fixtureId); + notifyListeners(); + } + + List get events => _events; + void set stats(List events) { + _events = events; + notifyListeners(); + } +} \ No newline at end of file diff --git a/lib/models/MatchEvent.dart b/lib/models/MatchEvent.dart new file mode 100644 index 0000000..b620c4c --- /dev/null +++ b/lib/models/MatchEvent.dart @@ -0,0 +1,16 @@ +class MatchEvent { + String type; + int minute; + String player1; + String player2; + String detail; + String team; + MatchEvent({this.type, this.minute, this.player1, this.player2, this.detail, this.team}); + MatchEvent.fromJson(Map unparsedJson) + : type = unparsedJson["type"], + minute = unparsedJson["time"]["elapsed"], + player1 = unparsedJson["player"]["name"], + player2 = unparsedJson["assist"]["name"], + detail = unparsedJson["detail"], + team = unparsedJson["team"]["name"]; +} \ No newline at end of file diff --git a/lib/screens/MatchStatScreen.dart b/lib/screens/MatchStatScreen.dart index dc93255..09ba18b 100644 --- a/lib/screens/MatchStatScreen.dart +++ b/lib/screens/MatchStatScreen.dart @@ -1,12 +1,13 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; -import 'package:sportsmojo/Provider/MatchStatViewModel.dart'; +import '../Provider/MatchEventViewModel.dart'; import 'package:sportsmojo/commons/custom_icons.dart'; import '../models/Score.dart'; import '../widgets/Stats.dart'; import '../services/GetItLocator.dart'; import 'package:provider/provider.dart'; +import '../widgets/Scorers.dart'; class MatchStatScreen extends StatefulWidget { final Score score; @@ -17,7 +18,7 @@ class MatchStatScreen extends StatefulWidget { } class _MatchStatScreenState extends State with TickerProviderStateMixin { - final MatchStatViewModel _matchStatViewModel = locator(); + final MatchEventViewModel _matchEventViewModel = locator(); Animation animation; AnimationController _animationController; @@ -57,7 +58,7 @@ class _MatchStatScreenState extends State with TickerProviderSt body: SingleChildScrollView( child: Padding( padding: - const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0), + const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0), child: Column( children: [ Row( @@ -152,7 +153,10 @@ class _MatchStatScreenState extends State with TickerProviderSt Divider( thickness: 0.7, ), - scorers(), + ChangeNotifierProvider( + create: (context) => _matchEventViewModel, + child: Scorer(score: widget.score,), + ), Divider( thickness: 0.7, ), @@ -164,52 +168,4 @@ class _MatchStatScreenState extends State with TickerProviderSt ), ); } - - Widget scorers() { - return Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - children: [ - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Messi 12'(P)", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.left,), - ), - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Pique 26'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.left,), - ), - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Suarez 42'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.left,), - ), - ], - ), - Container( - height: 15, - child: Icon(MyFlutterApp.football, color: Color(0XAA000000),), - ), - Column( - children: [ - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Ramos 22'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), - ), - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Hazard 26'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), - ), - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Ramos 44'(P)", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), - ), - Padding( - padding: const EdgeInsets.all(2.0), - child: Text("Vinicius 84'", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), textAlign: TextAlign.right,), - ), - ], - ) - ], - ); - } } diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index 2e04aa6..a297437 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -3,12 +3,14 @@ import 'NewsService.dart'; import 'TeamService.dart'; import 'ScoreService.dart'; import 'StatService.dart'; +import 'MatchEventService.dart'; import 'package:get_it/get_it.dart'; import '../Provider/HomeViewModel.dart'; import '../Provider/AppProvider.dart'; import '../Provider/AllScoresViewModel.dart'; import '../Provider/FavouriteScoresViewModel.dart'; import '../Provider/MatchStatViewModel.dart'; +import '../Provider/MatchEventViewModel.dart'; GetIt locator = GetIt.instance; @@ -17,8 +19,10 @@ void setupLocator() { locator.registerLazySingleton(() => TeamService()); locator.registerLazySingleton(() => ScoreService()); locator.registerLazySingleton(() => StatService()); + locator.registerLazySingleton(() => MatchEventService()); locator.registerFactory(() => HomeViewModel(0)); locator.registerFactory(() => MatchStatViewModel(null)); + locator.registerFactory(() => MatchEventViewModel(null)); locator.registerFactoryParam, int>((scores, index) => AllScoresViewModel(scores, index)); locator.registerFactoryParam, int>((scores, index) => FavouriteScoresViewModel(scores, index)); locator.registerFactory(() => AppProvider(0)); diff --git a/lib/services/MatchEventService.dart b/lib/services/MatchEventService.dart new file mode 100644 index 0000000..511b430 --- /dev/null +++ b/lib/services/MatchEventService.dart @@ -0,0 +1,28 @@ +import 'package:dio/dio.dart'; +import 'package:flutter/material.dart'; +import '../models/MatchEvent.dart'; +import '../secret.dart'; +class MatchEventService { + static BaseOptions options = BaseOptions(headers: { + 'x-rapidapi-host': 'v3.football.api-sports.io', + 'x-rapidapi-key': scoreApiKey + }); + + final Dio dio = new Dio(options); + + Future> fetchEvents({@required int fixtureId}) async{ + List events = []; + try { + final response = await dio.get('https://v3.football.api-sports.io/fixtures/events?fixture=${fixtureId}'); + if(response.statusCode == 200) { + final unparsedJson = response.data['response'].toList(); + for(int i = 0; i < unparsedJson.length; i++) { + events.add(MatchEvent.fromJson(unparsedJson[i])); + } + } + return events; + } on DioError catch (e) { + return null; + } + } +} \ No newline at end of file diff --git a/lib/widgets/Scorers.dart b/lib/widgets/Scorers.dart new file mode 100644 index 0000000..2456461 --- /dev/null +++ b/lib/widgets/Scorers.dart @@ -0,0 +1,86 @@ +import 'package:flutter/material.dart'; +import 'package:pk_skeleton/pk_skeleton.dart'; +import 'package:provider/provider.dart'; +import 'package:sportsmojo/Provider/HomeViewModel.dart'; +import '../models/MatchEvent.dart'; +import '../commons/custom_icons.dart'; +import '../models/Score.dart'; +import '../Provider/MatchEventViewModel.dart'; +class Scorer extends StatefulWidget { + Score score; + Scorer({this.score}); + + @override + _ScorerState createState() => _ScorerState(); +} + +class _ScorerState extends State { + + @override + void initState() { + super.initState(); + final MatchEventViewModel initialState = Provider.of(context, listen: false); + if(initialState.events == null) { + initialState.loadEvents(fixtureId: widget.score.id); + } + } + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, model, child) { + return (model.events != null) ? Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + children: getHomeGoals(model: model), + ), + Container( + height: 10, + child: Icon( + MyFlutterApp.football, + color: Color(0XAA000000), + ), + ), + Column( + children: getAwayGoals(model: model), + ) + ], + ) : PKCardSkeleton(); + }, + ); + } + + List getHomeGoals({MatchEventViewModel model}) { + final List homeTeamGoals = model.events + .where( + (event) => (event.team == widget.score.homeTeam && event.type == "Goal")) + .map((event) { + return Padding( + padding: const EdgeInsets.all(2.0), + child: Text( + "${event.player1} ${event.minute}'${(event.detail == "Penalty") ? "(P)" : (event.detail == "Own Goal") ? "(OG)" : ""}", + style: TextStyle(fontSize: 14, color: Color(0XAA000000)), + textAlign: TextAlign.right, + ), + ); + }).toList(); + return (homeTeamGoals.length > 0) ? homeTeamGoals : [Container()]; + } + + List getAwayGoals({MatchEventViewModel model}) { + final List awayTeamGoals = model.events + .where( + (event) => (event.team == widget.score.awayTeam && event.type == "Goal")) + .map((event) { + return Padding( + padding: const EdgeInsets.all(2.0), + child: Text( + "${event.player1} ${event.minute}'${(event.detail == "Penalty") ? "(P)" : (event.detail == "Own Goal") ? "(OG)" : ""}", + style: TextStyle(fontSize: 14, color: Color(0XAA000000)), + textAlign: TextAlign.right, + ), + ); + }).toList(); + return (awayTeamGoals.length > 0) ? awayTeamGoals : [Container()]; + } +} diff --git a/lib/widgets/Stats.dart b/lib/widgets/Stats.dart index 336eb27..2a38a4b 100644 --- a/lib/widgets/Stats.dart +++ b/lib/widgets/Stats.dart @@ -176,7 +176,7 @@ class _StatsState extends State { textAlign: TextAlign.center, ), Text( - '${stats["away"].accuratePasses}%', + '${stats["away"].accuratePasses}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ) From 6f6e38deac05400532524fba993ffb169cd798cd Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Thu, 9 Jul 2020 20:44:49 +0530 Subject: [PATCH 14/49] Added check to verify whether favourite team is stored in local storage or not --- android/app/src/main/AndroidManifest.xml | 1 + ios/Flutter/Generated 16.xcconfig | 10 + ios/Flutter/Generated 17.xcconfig | 10 + ios/Flutter/Generated 18.xcconfig | 10 + ios/Flutter/flutter_export_environment 17.sh | 11 + ios/Flutter/flutter_export_environment 18.sh | 11 + ios/Flutter/flutter_export_environment 19.sh | 11 + lib/main.dart | 5 +- lib/screens/FavouriteScreen1.dart | 2 +- lib/screens/FavouriteScreen2.dart | 4 +- lib/screens/MatchStatScreen.dart | 400 +++++++++++++++++-- lib/screens/News.dart | 9 +- lib/screens/ScoreScreen.dart | 9 +- lib/services/CustomRouter.dart | 5 + lib/start.dart | 38 ++ lib/widgets/Scorers.dart | 78 ++-- 16 files changed, 558 insertions(+), 56 deletions(-) create mode 100644 ios/Flutter/Generated 16.xcconfig create mode 100644 ios/Flutter/Generated 17.xcconfig create mode 100644 ios/Flutter/Generated 18.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 17.sh create mode 100755 ios/Flutter/flutter_export_environment 18.sh create mode 100755 ios/Flutter/flutter_export_environment 19.sh create mode 100644 lib/start.dart diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 522d4da..9400b6c 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -44,4 +44,5 @@ android:name="flutterEmbedding" android:value="2" /> + diff --git a/ios/Flutter/Generated 16.xcconfig b/ios/Flutter/Generated 16.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 16.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/Generated 17.xcconfig b/ios/Flutter/Generated 17.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 17.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/Generated 18.xcconfig b/ios/Flutter/Generated 18.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 18.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 17.sh b/ios/Flutter/flutter_export_environment 17.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 17.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/ios/Flutter/flutter_export_environment 18.sh b/ios/Flutter/flutter_export_environment 18.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 18.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/ios/Flutter/flutter_export_environment 19.sh b/ios/Flutter/flutter_export_environment 19.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 19.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/main.dart b/lib/main.dart index 821ba4b..5e9d675 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:sportsmojo/screens/FavouriteScreen1.dart'; -import 'screens/HomeScreen.dart'; +import 'start.dart'; import 'package:provider/provider.dart'; import 'Provider/AppProvider.dart'; import 'services/CustomRouter.dart'; @@ -24,7 +23,7 @@ void main() { child: MaterialApp( debugShowCheckedModeBanner: false, theme: theme, - home: HomeScreen(), + home: Start(), onGenerateRoute: Router().generateRoutes, navigatorObservers: [ HeroController() diff --git a/lib/screens/FavouriteScreen1.dart b/lib/screens/FavouriteScreen1.dart index 094f941..cbba8d9 100644 --- a/lib/screens/FavouriteScreen1.dart +++ b/lib/screens/FavouriteScreen1.dart @@ -126,7 +126,7 @@ class _FavouriteLeagueState extends State { child: InkWell( onTap: () { Navigator.of(context).pushNamed('/selectteam', - arguments: {'leagueId': league.value["id"]}); + arguments: {'leagueId': league.value["id"], 'leagueName': league.key}); }, child: Container( height: 40, diff --git a/lib/screens/FavouriteScreen2.dart b/lib/screens/FavouriteScreen2.dart index 635fb4f..0746ab7 100644 --- a/lib/screens/FavouriteScreen2.dart +++ b/lib/screens/FavouriteScreen2.dart @@ -9,7 +9,8 @@ import '../services/GetItLocator.dart'; class FavouriteTeam extends StatefulWidget { final int leagueId; - FavouriteTeam({this.leagueId}); + final String leagueName; + FavouriteTeam({this.leagueId, this.leagueName}); @override _FavouriteTeamState createState() => _FavouriteTeamState(); @@ -186,6 +187,7 @@ class _FavouriteTeamState extends State { onTap: () { LocalStorage.setString('teamName', team.name); LocalStorage.setString('teamId', '${team.id}'); + LocalStorage.setString('leagueName', '${widget.leagueName}'); LocalStorage.setString('leagueId', '${widget.leagueId}'); Navigator.of(context) .pushReplacementNamed('/home', arguments: { diff --git a/lib/screens/MatchStatScreen.dart b/lib/screens/MatchStatScreen.dart index 09ba18b..a06d4a0 100644 --- a/lib/screens/MatchStatScreen.dart +++ b/lib/screens/MatchStatScreen.dart @@ -17,8 +17,10 @@ class MatchStatScreen extends StatefulWidget { _MatchStatScreenState createState() => _MatchStatScreenState(); } -class _MatchStatScreenState extends State with TickerProviderStateMixin { - final MatchEventViewModel _matchEventViewModel = locator(); +class _MatchStatScreenState extends State + with TickerProviderStateMixin { + final MatchEventViewModel _matchEventViewModel = + locator(); Animation animation; AnimationController _animationController; @@ -27,17 +29,17 @@ class _MatchStatScreenState extends State with TickerProviderSt _animationController = AnimationController(vsync: this, duration: Duration(seconds: 1)); animation = - Tween(begin: 20.0, end: 0.0).animate(_animationController) - ..addListener(() { - setState(() {}); - }) - ..addStatusListener((status) { - if (status == AnimationStatus.completed) { - _animationController.reverse(); - } else if (status == AnimationStatus.dismissed) { - _animationController.forward(); - } - }); + Tween(begin: 20.0, end: 0.0).animate(_animationController) + ..addListener(() { + setState(() {}); + }) + ..addStatusListener((status) { + if (status == AnimationStatus.completed) { + _animationController.reverse(); + } else if (status == AnimationStatus.dismissed) { + _animationController.forward(); + } + }); _animationController.forward(); } @@ -58,7 +60,7 @@ class _MatchStatScreenState extends State with TickerProviderSt body: SingleChildScrollView( child: Padding( padding: - const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0), + const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0), child: Column( children: [ Row( @@ -67,8 +69,8 @@ class _MatchStatScreenState extends State with TickerProviderSt padding: const EdgeInsets.only(bottom: 8.0), child: Text( '${widget.score.competition} - ${DateFormat('E, d MMMM, hh:mm aaa').format(widget.score.date_time)}', - style: TextStyle( - fontSize: 12, color: Color(0X8A000000)), + style: + TextStyle(fontSize: 12, color: Color(0X8A000000)), ), ), Spacer(), @@ -79,8 +81,8 @@ class _MatchStatScreenState extends State with TickerProviderSt width: 20.0, child: Text( (widget.score.minuteElapsed != null && - widget.score.minuteElapsed != 90 && - widget.score.minuteElapsed != 120) + widget.score.minuteElapsed != 90 && + widget.score.minuteElapsed != 120) ? "${widget.score.minuteElapsed}'" : "${widget.score.status}", style: TextStyle(color: Colors.red), @@ -153,14 +155,22 @@ class _MatchStatScreenState extends State with TickerProviderSt Divider( thickness: 0.7, ), - ChangeNotifierProvider( - create: (context) => _matchEventViewModel, - child: Scorer(score: widget.score,), - ), + (widget.score.status != 'NS') + ? ChangeNotifierProvider( + create: (context) => _matchEventViewModel, + child: Scorer( + score: widget.score, + ), + ) + : getScorer(), Divider( thickness: 0.7, ), - Stats(score: widget.score,) + (widget.score.status != 'NS') + ? Stats( + score: widget.score, + ) + : getStats() ], ), ), @@ -168,4 +178,348 @@ class _MatchStatScreenState extends State with TickerProviderSt ), ); } + + Widget getScorer() { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + ConstrainedBox( + constraints: BoxConstraints( + minHeight: 50, minWidth: MediaQuery.of(context).size.width * 0.4), + child: Container( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [Container()], + ), + ), + ), + Container( + height: 10, + child: Icon( + MyFlutterApp.football, + color: Color(0XAA000000), + size: 20, + ), + ), + ConstrainedBox( + constraints: BoxConstraints( + minHeight: 50, minWidth: MediaQuery.of(context).size.width * 0.4), + child: Container( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.end, + children: [Container()], + ), + ), + ) + ], + ); + } + + Widget getStats() { + return Card( + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + height: 25, + child: CachedNetworkImage( + imageUrl: widget.score.homeTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + Text('Team Stats'), + Container( + height: 25, + child: CachedNetworkImage( + imageUrl: widget.score.awayTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))) + ], + ), + Padding( + padding: + const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Shots', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: + const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Shots on target', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: + const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Possession', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: + const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Total Passes', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: + const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Accurate Passes', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: + const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Fouls', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: + const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Yellow Cards', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: + const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Red Cards', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: + const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Offsides', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: + const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Corners', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ), + Padding( + padding: + const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Saves', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'N/A', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ) + ], + ), + ), + ); + } } diff --git a/lib/screens/News.dart b/lib/screens/News.dart index 10488b6..007b819 100644 --- a/lib/screens/News.dart +++ b/lib/screens/News.dart @@ -17,6 +17,7 @@ class NewsScreen extends StatefulWidget { class _NewsScreenState extends State with TickerProviderStateMixin { TabController _tabController; String teamName; + String leagueName; RefreshController _refreshController = RefreshController(initialRefresh: false); void initState(){ final initialState = Provider.of(context, listen: false); @@ -33,6 +34,11 @@ class _NewsScreenState extends State with TickerProviderStateMixin { teamName = value; }); }); + LocalStorage.getString('leagueName').then((value) { + setState(() { + leagueName = value; + }); + }); } Widget build(BuildContext context) { @@ -42,6 +48,7 @@ class _NewsScreenState extends State with TickerProviderStateMixin { appBar: PreferredSize( preferredSize: Size.fromHeight(100.0), child: AppBar( + leading: Container(), backgroundColor: Theme.of(context).primaryColor, title: Text('News', style: TextStyle(color: Colors.white),), bottom: TabBar( @@ -49,7 +56,7 @@ class _NewsScreenState extends State with TickerProviderStateMixin { tabs: [ Padding( padding: const EdgeInsets.only(bottom: 8.0), - child: Text('All', style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.w400),), + child: Text('$leagueName', style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.w400),), ), Padding( padding: const EdgeInsets.only(bottom: 8.0), diff --git a/lib/screens/ScoreScreen.dart b/lib/screens/ScoreScreen.dart index 018c442..bc7e59d 100644 --- a/lib/screens/ScoreScreen.dart +++ b/lib/screens/ScoreScreen.dart @@ -16,6 +16,7 @@ class _ScoreScreenState extends State with TickerProviderStateMixin { TabController _tabController; String teamName; + String leagueName; List _cardExpanded = List.generate(8, (index) => false); @override void initState() { @@ -26,6 +27,11 @@ class _ScoreScreenState extends State teamName = value; }); }); + LocalStorage.getString('leagueName').then((value) { + setState(() { + leagueName = value; + }); + }); } @@ -37,6 +43,7 @@ class _ScoreScreenState extends State appBar: PreferredSize( preferredSize: Size.fromHeight(100.0), child: AppBar( + leading: Container(), backgroundColor: Theme.of(context).primaryColor, title: Text( 'Scores', @@ -48,7 +55,7 @@ class _ScoreScreenState extends State Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Text( - 'All', + '$leagueName', style: TextStyle( color: Colors.white, fontSize: 18, diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index 059bd2a..3fa261a 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -29,6 +29,7 @@ class Router { News news = null; int index = null; int leagueId = null; + String leagueName; Map favouriteTeamMessage = null; Score score = null; if (args != null) { @@ -41,6 +42,9 @@ class Router { if (args.containsKey('leagueId')) { leagueId = args['leagueId']; } + if (args.containsKey('leagueName')) { + leagueName = args['leagueName']; + } if (args.containsKey('favouriteTeamMessage')) { favouriteTeamMessage = args['favouriteTeamMessage']; } @@ -61,6 +65,7 @@ class Router { ), '/selectteam': FavouriteTeam( leagueId: leagueId, + leagueName: leagueName ), '/matchstat': MatchStatScreen( score: score, diff --git a/lib/start.dart b/lib/start.dart new file mode 100644 index 0000000..5a0fbc0 --- /dev/null +++ b/lib/start.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; +import 'services/LocalStorage.dart'; +import 'screens/FavouriteScreen1.dart'; +import 'dart:async'; + + +class Start extends StatefulWidget { + StartState createState() => StartState(); +} + +class StartState extends State { + Future checkTeam() async { + final String teamName = await LocalStorage.getString('teamName'); + if (teamName != null) { + Navigator.of(context).pushReplacementNamed('/home'); + } else { + Navigator.of(context).pushReplacement(new MaterialPageRoute( + builder: (context) => FavouriteLeague())); + } + } + + @override + void initState() { + super.initState(); + checkTeam(); + } + + @override + Widget build(BuildContext context) { + return Container( + height: MediaQuery.of(context).size.height, + color: Colors.white, + child: Center( + child: CircularProgressIndicator(), + ), + ); + } +} \ No newline at end of file diff --git a/lib/widgets/Scorers.dart b/lib/widgets/Scorers.dart index 2456461..0bf808d 100644 --- a/lib/widgets/Scorers.dart +++ b/lib/widgets/Scorers.dart @@ -6,6 +6,7 @@ import '../models/MatchEvent.dart'; import '../commons/custom_icons.dart'; import '../models/Score.dart'; import '../Provider/MatchEventViewModel.dart'; + class Scorer extends StatefulWidget { Score score; Scorer({this.score}); @@ -15,52 +16,77 @@ class Scorer extends StatefulWidget { } class _ScorerState extends State { - @override void initState() { super.initState(); - final MatchEventViewModel initialState = Provider.of(context, listen: false); - if(initialState.events == null) { + final MatchEventViewModel initialState = + Provider.of(context, listen: false); + if (initialState.events == null) { initialState.loadEvents(fixtureId: widget.score.id); } } + @override Widget build(BuildContext context) { return Consumer( builder: (context, model, child) { - return (model.events != null) ? Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - children: getHomeGoals(model: model), - ), - Container( - height: 10, - child: Icon( - MyFlutterApp.football, - color: Color(0XAA000000), - ), - ), - Column( - children: getAwayGoals(model: model), - ) - ], - ) : PKCardSkeleton(); + return (model.events != null) + ? Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + ConstrainedBox( + constraints: BoxConstraints( + minHeight: 50, + minWidth: MediaQuery.of(context).size.width * 0.4), + child: Container( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: getHomeGoals(model: model), + ), + ), + ), + Container( + height: 10, + child: Icon( + MyFlutterApp.football, + color: Color(0XAA000000), + size: 20, + ), + ), + ConstrainedBox( + constraints: BoxConstraints( + minHeight: 50, + minWidth: MediaQuery.of(context).size.width * 0.4), + child: Container( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.end, + children: getAwayGoals(model: model), + ), + ), + ) + ], + ) + : Card( + child: PKCardPageSkeleton(totalLines: 2,), + ); }, ); } List getHomeGoals({MatchEventViewModel model}) { final List homeTeamGoals = model.events - .where( - (event) => (event.team == widget.score.homeTeam && event.type == "Goal")) + .where((event) => + (event.team == widget.score.homeTeam && event.type == "Goal")) .map((event) { return Padding( padding: const EdgeInsets.all(2.0), child: Text( "${event.player1} ${event.minute}'${(event.detail == "Penalty") ? "(P)" : (event.detail == "Own Goal") ? "(OG)" : ""}", style: TextStyle(fontSize: 14, color: Color(0XAA000000)), - textAlign: TextAlign.right, + textAlign: TextAlign.left, ), ); }).toList(); @@ -69,8 +95,8 @@ class _ScorerState extends State { List getAwayGoals({MatchEventViewModel model}) { final List awayTeamGoals = model.events - .where( - (event) => (event.team == widget.score.awayTeam && event.type == "Goal")) + .where((event) => + (event.team == widget.score.awayTeam && event.type == "Goal")) .map((event) { return Padding( padding: const EdgeInsets.all(2.0), From ca10a5bfa46e77f2ea47765fecbe7d9b252b9cbc Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sat, 11 Jul 2020 15:09:44 +0530 Subject: [PATCH 15/49] Changed stats widget from future builder to viewmodel --- lib/Provider/MatchStatViewModel.dart | 2 +- lib/screens/MatchStatScreen.dart | 11 +- lib/services/StatService.dart | 4 +- lib/widgets/Stats.dart | 599 +++++++++++++-------------- 4 files changed, 310 insertions(+), 306 deletions(-) diff --git a/lib/Provider/MatchStatViewModel.dart b/lib/Provider/MatchStatViewModel.dart index 89370a4..ddcbe96 100644 --- a/lib/Provider/MatchStatViewModel.dart +++ b/lib/Provider/MatchStatViewModel.dart @@ -8,7 +8,7 @@ class MatchStatViewModel extends ChangeNotifier { StatService _statService = locator(); Future loadStats({@required int fixtureId}) async{ - _stats = await _statService.fetchStats(id: fixtureId); + _stats = await _statService.fetchStats(fixtureId: fixtureId); notifyListeners(); } diff --git a/lib/screens/MatchStatScreen.dart b/lib/screens/MatchStatScreen.dart index a06d4a0..c832eab 100644 --- a/lib/screens/MatchStatScreen.dart +++ b/lib/screens/MatchStatScreen.dart @@ -1,6 +1,7 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; +import 'package:sportsmojo/Provider/MatchStatViewModel.dart'; import '../Provider/MatchEventViewModel.dart'; import 'package:sportsmojo/commons/custom_icons.dart'; import '../models/Score.dart'; @@ -21,6 +22,7 @@ class _MatchStatScreenState extends State with TickerProviderStateMixin { final MatchEventViewModel _matchEventViewModel = locator(); + final MatchStatViewModel _matchStatViewModel = locator(); Animation animation; AnimationController _animationController; @@ -167,9 +169,12 @@ class _MatchStatScreenState extends State thickness: 0.7, ), (widget.score.status != 'NS') - ? Stats( - score: widget.score, - ) + ? ChangeNotifierProvider( + create: (contet) => _matchStatViewModel, + child: Stats( + score: widget.score, + ), + ) : getStats() ], ), diff --git a/lib/services/StatService.dart b/lib/services/StatService.dart index f447ab3..6b0b1a5 100644 --- a/lib/services/StatService.dart +++ b/lib/services/StatService.dart @@ -9,11 +9,11 @@ class StatService { }); final dio = new Dio(options); - Future> fetchStats({@required int id}) async{ + Future> fetchStats({@required int fixtureId}) async{ Map stats = {}; try { final response = - await dio.get('https://v3.football.api-sports.io/fixtures/statistics?fixture=${id}'); + await dio.get('https://v3.football.api-sports.io/fixtures/statistics?fixture=${fixtureId}'); if (response.statusCode == 200) { final unparsedJson = response.data['response'].toList(); stats["home"] = MatchStat.fromJson(unparsedJson[0]["statistics"]); diff --git a/lib/widgets/Stats.dart b/lib/widgets/Stats.dart index 2a38a4b..3e52145 100644 --- a/lib/widgets/Stats.dart +++ b/lib/widgets/Stats.dart @@ -18,14 +18,13 @@ class Stats extends StatefulWidget { } class _StatsState extends State { - StatService _statService = locator(); - Future> futureMatchStat; @override void initState() { super.initState(); - setState(() { - futureMatchStat = _statService.fetchStats(id: widget.score.id); - }); + final MatchStatViewModel initialState = Provider.of(context, listen: false); + if(initialState.stats == null) { + initialState.loadStats(fixtureId: widget.score.id); + } } @override @@ -33,315 +32,315 @@ class _StatsState extends State { return Card( child: Padding( padding: const EdgeInsets.all(12.0), - child: FutureBuilder>( - future: futureMatchStat, - builder: (BuildContext context, AsyncSnapshot snapshot) { - if (snapshot.connectionState == ConnectionState.done) { - final stats = snapshot.data; - return Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Container( - height: 25, - child: CachedNetworkImage( - imageUrl: widget.score.homeTeamLogo, - placeholder: (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - Text('Team Stats'), - Container( - height: 25, - child: CachedNetworkImage( - imageUrl: widget.score.awayTeamLogo, - placeholder: (BuildContext context, String url) => - Icon(MyFlutterApp.football))) - ], - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( + child: Consumer( + builder: (context, model, child) { + if(model != null && model.stats != null) { + final stats = model.stats; + return Column( + children: [ + Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text( - '${stats["home"].totalShots}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Shots', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].totalShots}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) + Container( + height: 25, + child: CachedNetworkImage( + imageUrl: widget.score.homeTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + Text('Team Stats'), + Container( + height: 25, + child: CachedNetworkImage( + imageUrl: widget.score.awayTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))) ], ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].shotsOnTarget}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Shots on target', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].shotsOnTarget}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].totalShots}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Shots', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].totalShots}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].possession}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Possession', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].possession}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].shotsOnTarget}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Shots on target', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].shotsOnTarget}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].totalPasses}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Total Passes', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].totalPasses}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].possession}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Possession', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].possession}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].accuratePasses}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Accurate Passes', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].accuratePasses}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].totalPasses}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Total Passes', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].totalPasses}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].fouls}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Fouls', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].fouls}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].accuratePasses}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Accurate Passes', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].accuratePasses}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].yellowCards}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Yellow Cards', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].yellowCards}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].fouls}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Fouls', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].fouls}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].redCards}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Red Cards', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].redCards}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].yellowCards}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Yellow Cards', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].yellowCards}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].offsides}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Offsides', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].offsides}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].redCards}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Red Cards', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].redCards}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].corners}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Corners', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].corners}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].offsides}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Offsides', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].offsides}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].saves}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Saves', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].saves}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].corners}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Corners', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].corners}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ) - ], - ); - } - if (snapshot.connectionState == ConnectionState.waiting) { - return PKCardPageSkeleton( - totalLines: 10, - ); - } - }), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].saves}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Saves', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].saves}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ) + ], + ); + } + else { + return PKCardPageSkeleton( + totalLines: 10, + ); + } + }, + ), ), ); } From 1b94c2948c54c9515e21a2f90f8fb87739d764e2 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Mon, 13 Jul 2020 17:20:37 +0530 Subject: [PATCH 16/49] Added date seperation between league scores --- lib/Provider/AllScoresViewModel.dart | 19 +--- lib/screens/News.dart | 8 +- lib/screens/ScoreScreen.dart | 102 +++++++++--------- lib/services/GetItLocator.dart | 2 +- lib/widgets/AllScores.dart | 150 ++++++++++++++++++--------- lib/widgets/LeagueDropdown.dart | 40 +++++++ lib/widgets/SettingsDialog.dart | 27 +++++ 7 files changed, 229 insertions(+), 119 deletions(-) create mode 100644 lib/widgets/LeagueDropdown.dart create mode 100644 lib/widgets/SettingsDialog.dart diff --git a/lib/Provider/AllScoresViewModel.dart b/lib/Provider/AllScoresViewModel.dart index dba52a8..d534556 100644 --- a/lib/Provider/AllScoresViewModel.dart +++ b/lib/Provider/AllScoresViewModel.dart @@ -1,25 +1,16 @@ import 'package:flutter/material.dart'; import '../models/Score.dart'; class AllScoresViewModel extends ChangeNotifier { - List _scores; - int _lastRetrievedIndex; + String _selectedLeague; - AllScoresViewModel(this._scores, this._lastRetrievedIndex); + AllScoresViewModel(this._selectedLeague); - List get allScores => _scores; + String get selectedLeague => _selectedLeague; - void set allScores(List scores) { - _scores = scores; + void set selectedLeague(String league) { + _selectedLeague = league; notifyListeners(); } - int get lastRetrievedIndex => _lastRetrievedIndex; - - void set lastRetrievedIndex(int index) { - _lastRetrievedIndex = index; - notifyListeners(); - } - - } \ No newline at end of file diff --git a/lib/screens/News.dart b/lib/screens/News.dart index 007b819..0e8f6dc 100644 --- a/lib/screens/News.dart +++ b/lib/screens/News.dart @@ -17,7 +17,6 @@ class NewsScreen extends StatefulWidget { class _NewsScreenState extends State with TickerProviderStateMixin { TabController _tabController; String teamName; - String leagueName; RefreshController _refreshController = RefreshController(initialRefresh: false); void initState(){ final initialState = Provider.of(context, listen: false); @@ -34,11 +33,6 @@ class _NewsScreenState extends State with TickerProviderStateMixin { teamName = value; }); }); - LocalStorage.getString('leagueName').then((value) { - setState(() { - leagueName = value; - }); - }); } Widget build(BuildContext context) { @@ -56,7 +50,7 @@ class _NewsScreenState extends State with TickerProviderStateMixin { tabs: [ Padding( padding: const EdgeInsets.only(bottom: 8.0), - child: Text('$leagueName', style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.w400),), + child: Text('All', style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.w400),), ), Padding( padding: const EdgeInsets.only(bottom: 8.0), diff --git a/lib/screens/ScoreScreen.dart b/lib/screens/ScoreScreen.dart index bc7e59d..d8c7bc6 100644 --- a/lib/screens/ScoreScreen.dart +++ b/lib/screens/ScoreScreen.dart @@ -6,6 +6,8 @@ import '../commons/custom_icons.dart'; import '../services/LocalStorage.dart'; import '../widgets/AllScores.dart'; import '../widgets/FavouriteScores.dart'; +import '../services/GetItLocator.dart'; +import '../Provider/AllScoresViewModel.dart'; class ScoreScreen extends StatefulWidget { @override @@ -17,7 +19,7 @@ class _ScoreScreenState extends State TabController _tabController; String teamName; String leagueName; - List _cardExpanded = List.generate(8, (index) => false); + AllScoresViewModel _allScoresViewModel; @override void initState() { super.initState(); @@ -29,7 +31,7 @@ class _ScoreScreenState extends State }); LocalStorage.getString('leagueName').then((value) { setState(() { - leagueName = value; + _allScoresViewModel = locator(param1: value); }); }); } @@ -38,52 +40,58 @@ class _ScoreScreenState extends State Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); - return Scaffold( - bottomNavigationBar: BottomNavbar(), - appBar: PreferredSize( - preferredSize: Size.fromHeight(100.0), - child: AppBar( - leading: Container(), - backgroundColor: Theme.of(context).primaryColor, - title: Text( - 'Scores', - style: TextStyle(color: Colors.white), - ), - bottom: TabBar( - controller: _tabController, - tabs: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Text( - '$leagueName', - style: TextStyle( - color: Colors.white, - fontSize: 18, - fontWeight: FontWeight.w400), - ), - ), - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Text( - '$teamName', - style: TextStyle( - color: Colors.white, - fontSize: 18, - fontWeight: FontWeight.w400), + return ChangeNotifierProvider( + create: (context) => _allScoresViewModel, + child: Scaffold( + bottomNavigationBar: BottomNavbar(), + backgroundColor: Color(0xfff1f1f1), + appBar: PreferredSize( + preferredSize: Size.fromHeight(100.0), + child: AppBar( + leading: Container(), + backgroundColor: Theme.of(context).primaryColor, + title: Text( + 'Scores', + style: TextStyle(color: Colors.white), + ), + bottom: TabBar( + controller: _tabController, + tabs: [ + Consumer( + builder: (context, model, child) => Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + (model != null) ? '${model.selectedLeague}' : 'All', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ), ), - ) - ], - indicatorSize: TabBarIndicatorSize.tab, - indicator: UnderlineTabIndicator( - borderSide: BorderSide(width: 3.0, color: Colors.white))), - )), - body: TabBarView( - controller: _tabController, - children: [ - AllScores(), - FavouriteScores() - ], - )); + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + '$teamName', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ) + ], + indicatorSize: TabBarIndicatorSize.tab, + indicator: UnderlineTabIndicator( + borderSide: BorderSide(width: 3.0, color: Colors.white))), + )), + body: TabBarView( + controller: _tabController, + children: [ + AllScores(), + FavouriteScores() + ], + )), + ); } Widget scorers() { diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index a297437..972117a 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -23,7 +23,7 @@ void setupLocator() { locator.registerFactory(() => HomeViewModel(0)); locator.registerFactory(() => MatchStatViewModel(null)); locator.registerFactory(() => MatchEventViewModel(null)); - locator.registerFactoryParam, int>((scores, index) => AllScoresViewModel(scores, index)); + locator.registerFactoryParam((league, _) => AllScoresViewModel(league)); locator.registerFactoryParam, int>((scores, index) => FavouriteScoresViewModel(scores, index)); locator.registerFactory(() => AppProvider(0)); } \ No newline at end of file diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index 2472cc1..b83bb09 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -1,10 +1,11 @@ import 'package:flutter/material.dart'; -import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:intl/intl.dart'; import 'package:pk_skeleton/pk_skeleton.dart'; import 'package:provider/provider.dart'; import '../Provider/AppProvider.dart'; import '../models/Score.dart'; import '../commons/ScoreCard.dart'; +import 'SettingsDialog.dart'; class AllScores extends StatefulWidget { @override @@ -16,17 +17,17 @@ class _AllScoresState extends State { int _lastRetrievedLindex = 9; int _totalNoOfScores; List _scores; + @override void initState() { super.initState(); final AppProvider appProvider = - Provider.of(context, listen: false); + Provider.of(context, listen: false); if (appProvider.leagueWiseScores == null) { appProvider.loadLeagueWiseScores().whenComplete(() { _setScores(appProvider); }); - } - else { + } else { _setScores(appProvider); } } @@ -39,48 +40,87 @@ class _AllScoresState extends State { @override Widget build(BuildContext context) { - return SingleChildScrollView( - controller: _scrollController, - child: Container( - margin: EdgeInsets.only(top: 30.0), - child: _scores != null - ? ListView.builder( - shrinkWrap: true, - itemCount: _lastRetrievedLindex + 2, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - if(index == _lastRetrievedLindex + 1) { - return Padding( - padding: const EdgeInsets.only(bottom: 16.0), - child: SizedBox( - height: 40, - child: Chip( - elevation: 2, - backgroundColor: Colors.white, - avatar: CircleAvatar( - backgroundColor: Colors.white, - child: Icon(Icons.arrow_upward), - ), - label: Text('Swipe up to load more', style: TextStyle(fontSize: 14, fontWeight: FontWeight.w300),), - ), - ), - ); - } - final Score score = _scores[index]; - return ScoreCard( - score: score, - ); - }) - : ListView.builder( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: 10, - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }), + return Scaffold( + floatingActionButton: FloatingActionButton( + child: Icon(Icons.settings), + backgroundColor: Theme.of(context).primaryColor, + onPressed: () { + onSettingPressed(); + }, + ), + body: SingleChildScrollView( + controller: _scrollController, + child: Container( + margin: EdgeInsets.only(top: 10.0), + child: _scores != null + ? ListView.builder( + shrinkWrap: true, + itemCount: _lastRetrievedLindex + 2, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + if (index == _lastRetrievedLindex + 1) { + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: SizedBox( + height: 40, + child: Chip( + elevation: 2, + backgroundColor: Colors.white, + avatar: CircleAvatar( + backgroundColor: Colors.white, + child: Icon(Icons.arrow_upward), + ), + label: Text( + 'Swipe up to load more', + style: TextStyle( + fontSize: 14, fontWeight: FontWeight.w300), + ), + ), + ), + ); + } + final Score score = _scores[index]; + if (index != 0 && + score.date_time + .difference(_scores[index - 1].date_time) + .inDays == + 0) { + return ScoreCard( + score: score, + ); + } else { + return Padding( + padding: EdgeInsets.only(top: 8.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: + const EdgeInsets.symmetric(horizontal: 8.0), + child: Text( + '${DateFormat('E, d MMMM').format(score.date_time)}', + style: TextStyle(fontSize: 20), + ), + ), + ScoreCard( + score: score, + ) + ], + ), + ); + } + }) + : ListView.builder( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), + ), ), ); } @@ -88,8 +128,8 @@ class _AllScoresState extends State { void _getMoreScores(List scores) { setState(() { if (_lastRetrievedLindex < (_totalNoOfScores - 11)) { - _scores.addAll( - scores.sublist(_lastRetrievedLindex + 1 , _lastRetrievedLindex + 11)); + _scores.addAll(scores.sublist( + _lastRetrievedLindex + 1, _lastRetrievedLindex + 11)); _lastRetrievedLindex += 10; } else { _scores.addAll(scores.sublist(_lastRetrievedLindex + 1)); @@ -110,11 +150,21 @@ class _AllScoresState extends State { }); _scrollController.addListener(() { if ((_scrollController.position.maxScrollExtent - - _scrollController.position.pixels == - 0.0) && + _scrollController.position.pixels == + 0.0) && _lastRetrievedLindex < _totalNoOfScores - 1) { _getMoreScores(allScores); } }); } + + void onSettingPressed() { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + content: SettingsDialog() + ); + }); + } } diff --git a/lib/widgets/LeagueDropdown.dart b/lib/widgets/LeagueDropdown.dart new file mode 100644 index 0000000..2e6a311 --- /dev/null +++ b/lib/widgets/LeagueDropdown.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../Provider/AllScoresViewModel.dart'; +class LeagueDropdown extends StatefulWidget { + final List items; + LeagueDropdown({this.items}); + @override + _LeagueDropdownState createState() => _LeagueDropdownState(); +} + +class _LeagueDropdownState extends State { + Widget build(BuildContext context) { + return Consumer( + builder: (context, model, child) => Theme( + data: Theme.of(context) + .copyWith(canvasColor: Theme.of(context).primaryColor), + child: Container( + decoration: BoxDecoration( + border: Border.all(color: Theme.of(context).primaryColor, width: 1), + color:Theme.of(context).primaryColor, + ), + child: DropdownButtonHideUnderline( + child: ButtonTheme( + alignedDropdown: true, + child: DropdownButton( + iconEnabledColor: Colors.white, + value: model.selectedLeague, + items: widget.items, + style: TextStyle(color: Colors.white, fontSize: 11), + onChanged: (String value) { + model.selectedLeague = value; + }, + ), + ), + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/widgets/SettingsDialog.dart b/lib/widgets/SettingsDialog.dart new file mode 100644 index 0000000..00af2a0 --- /dev/null +++ b/lib/widgets/SettingsDialog.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; +import '../widgets/LeagueDropdown.dart'; +import '../constants.dart'; +class SettingsDialog extends StatefulWidget{ + + @override + _SettingsDialogState createState() => _SettingsDialogState(); +} + +class _SettingsDialogState extends State { + List leaguesIems = leagues.entries + .map>((entry) => DropdownMenuItem( + value: entry.key, + child: Text(entry.key), + )) + .toList(); + @override + Widget build(BuildContext context) { + return Column( + children: [ + LeagueDropdown( + items: leaguesIems, + ) + ], + ); + } +} \ No newline at end of file From f50e756a8dc2e12061473eae5cb474b2539ccd7f Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Wed, 15 Jul 2020 02:30:50 +0530 Subject: [PATCH 17/49] Added functionality to show date as today, tomorrow and yesterday --- ios/Flutter/Generated 19.xcconfig | 10 +++ ios/Flutter/flutter_export_environment 20.sh | 11 +++ lib/Provider/AllScoresViewModel.dart | 11 --- lib/Provider/AppProvider.dart | 24 ++++- lib/commons/ScoreCard.dart | 19 +++- lib/constants.dart | 8 +- lib/main.dart | 7 +- lib/screens/FavouriteScreen2.dart | 8 +- lib/screens/MatchStatScreen.dart | 19 +++- lib/screens/ScoreScreen.dart | 93 +++++++++----------- lib/services/GetItLocator.dart | 3 +- lib/widgets/AllScores.dart | 36 +++++--- lib/widgets/LeagueDropdown.dart | 8 +- lib/widgets/Scorers.dart | 4 +- lib/widgets/SettingsDialog.dart | 1 - 15 files changed, 169 insertions(+), 93 deletions(-) create mode 100644 ios/Flutter/Generated 19.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 20.sh diff --git a/ios/Flutter/Generated 19.xcconfig b/ios/Flutter/Generated 19.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 19.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 20.sh b/ios/Flutter/flutter_export_environment 20.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 20.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/Provider/AllScoresViewModel.dart b/lib/Provider/AllScoresViewModel.dart index d534556..0beea53 100644 --- a/lib/Provider/AllScoresViewModel.dart +++ b/lib/Provider/AllScoresViewModel.dart @@ -1,16 +1,5 @@ import 'package:flutter/material.dart'; import '../models/Score.dart'; class AllScoresViewModel extends ChangeNotifier { - String _selectedLeague; - - AllScoresViewModel(this._selectedLeague); - - - String get selectedLeague => _selectedLeague; - - void set selectedLeague(String league) { - _selectedLeague = league; - notifyListeners(); - } } \ No newline at end of file diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index d51474c..b468fb8 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -5,6 +5,7 @@ import '../services/NewsService.dart'; import '../services/LocalStorage.dart'; import '../services/GetItLocator.dart'; import '../models/News.dart'; +import '../constants.dart'; class AppProvider extends ChangeNotifier { int _navbarIndex; List _newsList; @@ -12,9 +13,18 @@ class AppProvider extends ChangeNotifier { List _leagueWiseScores; List _favouriteTeamScores; - AppProvider(this._navbarIndex); + + String _selectedLeague; + AppProvider(this._navbarIndex, this._selectedLeague); int get navbarIndex => _navbarIndex; + String get selectedLeague => _selectedLeague; + + void set selectedLeague(String league) { + _selectedLeague = league; + notifyListeners(); + } + void set navbarIndex(int index) { _navbarIndex = index; notifyListeners(); @@ -33,9 +43,15 @@ class AppProvider extends ChangeNotifier { notifyListeners(); } - Future loadLeagueWiseScores() async { - String leagueId = await LocalStorage.getString('leagueId'); - _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: leagueId); + Future loadLeagueWiseScores({String leagueName}) async { + if(leagueName == null) { + String storedLeagueId = await LocalStorage.getString('leagueId'); + _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: storedLeagueId); + } + else { + String leagueId = '${leagues[leagueName]['id']}'; + _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: leagueId); + } notifyListeners(); } diff --git a/lib/commons/ScoreCard.dart b/lib/commons/ScoreCard.dart index bd2aaeb..b08868f 100644 --- a/lib/commons/ScoreCard.dart +++ b/lib/commons/ScoreCard.dart @@ -3,6 +3,7 @@ import 'package:intl/intl.dart'; import '../models/Score.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'custom_icons.dart'; +import '../constants.dart'; class ScoreCard extends StatefulWidget { final Score score; @@ -56,7 +57,7 @@ class _ScoreCardState extends State with TickerProviderStateMixin { Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Text( - '${widget.score.competition} - ${DateFormat('E, d MMMM, hh:mm aaa').format(widget.score.date_time)}', + '${widget.score.competition} - ${convertDateTime(date_time: widget.score.date_time)}', style: TextStyle( fontSize: 12, color: Color(0X8A000000)), ), @@ -156,4 +157,20 @@ class _ScoreCardState extends State with TickerProviderStateMixin { ), ); } + + String convertDateTime({DateTime date_time}) { + int dayDifferenceCount = dayDifference(date_time1: DateTime.now(), date_time2: date_time); + if(dayDifferenceCount == 0) { + return 'Today, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); + } + else if(dayDifferenceCount == 1) { + return 'Yesterday, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); + } + else if(dayDifferenceCount == -1) { + return 'Tomorrow, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); + } + else { + return DateFormat('E, d MMMM, hh:mm aaa').format(date_time); + } + } } \ No newline at end of file diff --git a/lib/constants.dart b/lib/constants.dart index d19d431..f18e80f 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -43,4 +43,10 @@ final Map leagues = { "id": 3, "logo": "https://media.api-sports.io/football/leagues/3.png" }, -}; \ No newline at end of file +}; + +int dayDifference({DateTime date_time1, DateTime date_time2}) { + final date1 = DateTime(date_time1.year, date_time1.month, date_time1.day); + final date2 = DateTime(date_time2.year, date_time2.month, date_time2.day); + return date1.difference(date2).inDays; +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 5e9d675..dca03fd 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,14 +4,17 @@ import 'package:provider/provider.dart'; import 'Provider/AppProvider.dart'; import 'services/CustomRouter.dart'; import 'services/GetItLocator.dart'; +import 'services/LocalStorage.dart'; -void main() { +void main() async{ setupLocator(); final ThemeData theme = ThemeData( primaryColor: Color(0xFF50C878), primaryColorDark: Color(0XFFA0A5AA) ); - AppProvider appProvider = locator(); + WidgetsFlutterBinding.ensureInitialized(); + final leagueName = await LocalStorage.getString('leagueName'); + AppProvider appProvider = locator(param1: leagueName); runApp( MultiProvider( diff --git a/lib/screens/FavouriteScreen2.dart b/lib/screens/FavouriteScreen2.dart index 0746ab7..8731d95 100644 --- a/lib/screens/FavouriteScreen2.dart +++ b/lib/screens/FavouriteScreen2.dart @@ -1,6 +1,8 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:provider/provider.dart'; +import 'package:sportsmojo/Provider/AppProvider.dart'; import 'package:sportsmojo/commons/custom_icons.dart'; import '../models/Team.dart'; import '../services/TeamService.dart'; @@ -33,6 +35,7 @@ class _FavouriteTeamState extends State { @override Widget build(BuildContext context) { + final AppProvider appProvider = Provider.of(context); return SafeArea( child: Scaffold( extendBodyBehindAppBar: true, @@ -151,7 +154,7 @@ class _FavouriteTeamState extends State { ), ), teamList.length > 0 - ? teamListView() + ? teamListView(appProvider) : Column( mainAxisAlignment: MainAxisAlignment.center, children: [ @@ -178,7 +181,7 @@ class _FavouriteTeamState extends State { ); } - Widget teamListView() { + Widget teamListView(AppProvider appProvider) { return Column( children: teamList .map((team) => Padding( @@ -189,6 +192,7 @@ class _FavouriteTeamState extends State { LocalStorage.setString('teamId', '${team.id}'); LocalStorage.setString('leagueName', '${widget.leagueName}'); LocalStorage.setString('leagueId', '${widget.leagueId}'); + appProvider.selectedLeague = widget.leagueName; Navigator.of(context) .pushReplacementNamed('/home', arguments: { 'favouriteTeamMessage': { diff --git a/lib/screens/MatchStatScreen.dart b/lib/screens/MatchStatScreen.dart index c832eab..3319f30 100644 --- a/lib/screens/MatchStatScreen.dart +++ b/lib/screens/MatchStatScreen.dart @@ -9,6 +9,7 @@ import '../widgets/Stats.dart'; import '../services/GetItLocator.dart'; import 'package:provider/provider.dart'; import '../widgets/Scorers.dart'; +import '../constants.dart'; class MatchStatScreen extends StatefulWidget { final Score score; @@ -70,7 +71,7 @@ class _MatchStatScreenState extends State Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Text( - '${widget.score.competition} - ${DateFormat('E, d MMMM, hh:mm aaa').format(widget.score.date_time)}', + '${widget.score.competition} - ${convertDateTime(date_time: widget.score.date_time)}', style: TextStyle(fontSize: 12, color: Color(0X8A000000)), ), @@ -527,4 +528,20 @@ class _MatchStatScreenState extends State ), ); } + + String convertDateTime({DateTime date_time}) { + int dayDifferenceCount = dayDifference(date_time1: DateTime.now(), date_time2: date_time); + if(dayDifferenceCount == 0) { + return 'Today, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); + } + else if(dayDifferenceCount == 1) { + return 'Yesterday, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); + } + else if(dayDifferenceCount == -1) { + return 'Tomorrow, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); + } + else { + return DateFormat('E, d MMMM, hh:mm aaa').format(date_time); + } + } } diff --git a/lib/screens/ScoreScreen.dart b/lib/screens/ScoreScreen.dart index d8c7bc6..b2cb8c6 100644 --- a/lib/screens/ScoreScreen.dart +++ b/lib/screens/ScoreScreen.dart @@ -6,8 +6,6 @@ import '../commons/custom_icons.dart'; import '../services/LocalStorage.dart'; import '../widgets/AllScores.dart'; import '../widgets/FavouriteScores.dart'; -import '../services/GetItLocator.dart'; -import '../Provider/AllScoresViewModel.dart'; class ScoreScreen extends StatefulWidget { @override @@ -19,7 +17,6 @@ class _ScoreScreenState extends State TabController _tabController; String teamName; String leagueName; - AllScoresViewModel _allScoresViewModel; @override void initState() { super.initState(); @@ -29,69 +26,59 @@ class _ScoreScreenState extends State teamName = value; }); }); - LocalStorage.getString('leagueName').then((value) { - setState(() { - _allScoresViewModel = locator(param1: value); - }); - }); } Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); - return ChangeNotifierProvider( - create: (context) => _allScoresViewModel, - child: Scaffold( - bottomNavigationBar: BottomNavbar(), - backgroundColor: Color(0xfff1f1f1), - appBar: PreferredSize( - preferredSize: Size.fromHeight(100.0), - child: AppBar( - leading: Container(), - backgroundColor: Theme.of(context).primaryColor, - title: Text( - 'Scores', - style: TextStyle(color: Colors.white), - ), - bottom: TabBar( - controller: _tabController, - tabs: [ - Consumer( - builder: (context, model, child) => Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Text( - (model != null) ? '${model.selectedLeague}' : 'All', - style: TextStyle( - color: Colors.white, - fontSize: 18, - fontWeight: FontWeight.w400), - ), - ), - ), - Padding( + return Scaffold( + bottomNavigationBar: BottomNavbar(), + backgroundColor: Color(0xfff1f1f1), + appBar: PreferredSize( + preferredSize: Size.fromHeight(100.0), + child: AppBar( + leading: Container(), + backgroundColor: Theme.of(context).primaryColor, + title: Text( + 'Scores', + style: TextStyle(color: Colors.white), + ), + bottom: TabBar( + controller: _tabController, + tabs: [ + Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Text( - '$teamName', + appProvider.selectedLeague, style: TextStyle( color: Colors.white, fontSize: 18, fontWeight: FontWeight.w400), ), - ) - ], - indicatorSize: TabBarIndicatorSize.tab, - indicator: UnderlineTabIndicator( - borderSide: BorderSide(width: 3.0, color: Colors.white))), - )), - body: TabBarView( - controller: _tabController, - children: [ - AllScores(), - FavouriteScores() - ], - )), - ); + ), + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + '$teamName', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ) + ], + indicatorSize: TabBarIndicatorSize.tab, + indicator: UnderlineTabIndicator( + borderSide: BorderSide(width: 3.0, color: Colors.white))), + )), + body: TabBarView( + controller: _tabController, + children: [ + AllScores(), + FavouriteScores() + ], + )); } Widget scorers() { diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index 972117a..807d223 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -23,7 +23,6 @@ void setupLocator() { locator.registerFactory(() => HomeViewModel(0)); locator.registerFactory(() => MatchStatViewModel(null)); locator.registerFactory(() => MatchEventViewModel(null)); - locator.registerFactoryParam((league, _) => AllScoresViewModel(league)); locator.registerFactoryParam, int>((scores, index) => FavouriteScoresViewModel(scores, index)); - locator.registerFactory(() => AppProvider(0)); + locator.registerFactoryParam((leagueName, _) => AppProvider(0, leagueName)); } \ No newline at end of file diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index b83bb09..f536cd9 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -6,6 +6,7 @@ import '../Provider/AppProvider.dart'; import '../models/Score.dart'; import '../commons/ScoreCard.dart'; import 'SettingsDialog.dart'; +import '../constants.dart'; class AllScores extends StatefulWidget { @override @@ -40,6 +41,7 @@ class _AllScoresState extends State { @override Widget build(BuildContext context) { + final AppProvider appProvider = Provider.of(context); return Scaffold( floatingActionButton: FloatingActionButton( child: Icon(Icons.settings), @@ -52,7 +54,7 @@ class _AllScoresState extends State { controller: _scrollController, child: Container( margin: EdgeInsets.only(top: 10.0), - child: _scores != null + child: ( appProvider.leagueWiseScores !=null && _scores != null) ? ListView.builder( shrinkWrap: true, itemCount: _lastRetrievedLindex + 2, @@ -81,24 +83,24 @@ class _AllScoresState extends State { } final Score score = _scores[index]; if (index != 0 && - score.date_time - .difference(_scores[index - 1].date_time) - .inDays == + dayDifference( + date_time1: score.date_time, + date_time2: _scores[index - 1].date_time) == 0) { return ScoreCard( score: score, ); } else { return Padding( - padding: EdgeInsets.only(top: 8.0), + padding: EdgeInsets.only(top: 12.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: - const EdgeInsets.symmetric(horizontal: 8.0), + const EdgeInsets.symmetric(horizontal: 12.0), child: Text( - '${DateFormat('E, d MMMM').format(score.date_time)}', + '${convertDateTime(date_time: score.date_time)}', style: TextStyle(fontSize: 20), ), ), @@ -159,12 +161,26 @@ class _AllScoresState extends State { } void onSettingPressed() { - showDialog( + showModalBottomSheet( context: context, builder: (BuildContext context) { - return AlertDialog( - content: SettingsDialog() + return Container( + child: SettingsDialog(), ); }); } + + String convertDateTime({DateTime date_time}) { + int dayDifferenceCount = + dayDifference(date_time1: DateTime.now(), date_time2: date_time); + if (dayDifferenceCount == 0) { + return 'Today'; + } else if (dayDifferenceCount == 1) { + return 'Yesterday'; + } else if (dayDifferenceCount == -1) { + return 'Tomorrow'; + } else { + return DateFormat('E, d MMMM').format(date_time); + } + } } diff --git a/lib/widgets/LeagueDropdown.dart b/lib/widgets/LeagueDropdown.dart index 2e6a311..c55a52f 100644 --- a/lib/widgets/LeagueDropdown.dart +++ b/lib/widgets/LeagueDropdown.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../Provider/AllScoresViewModel.dart'; +import '../Provider/AppProvider.dart'; class LeagueDropdown extends StatefulWidget { final List items; LeagueDropdown({this.items}); @@ -10,7 +10,7 @@ class LeagueDropdown extends StatefulWidget { class _LeagueDropdownState extends State { Widget build(BuildContext context) { - return Consumer( + return Consumer( builder: (context, model, child) => Theme( data: Theme.of(context) .copyWith(canvasColor: Theme.of(context).primaryColor), @@ -27,8 +27,10 @@ class _LeagueDropdownState extends State { value: model.selectedLeague, items: widget.items, style: TextStyle(color: Colors.white, fontSize: 11), - onChanged: (String value) { + onChanged: (String value) async{ model.selectedLeague = value; + model.leagueWiseScores = null; + await model.loadLeagueWiseScores(leagueName: value); }, ), ), diff --git a/lib/widgets/Scorers.dart b/lib/widgets/Scorers.dart index 0bf808d..2830943 100644 --- a/lib/widgets/Scorers.dart +++ b/lib/widgets/Scorers.dart @@ -41,7 +41,7 @@ class _ScorerState extends State { minWidth: MediaQuery.of(context).size.width * 0.4), child: Container( child: Column( - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: getHomeGoals(model: model), ), @@ -61,7 +61,7 @@ class _ScorerState extends State { minWidth: MediaQuery.of(context).size.width * 0.4), child: Container( child: Column( - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.end, children: getAwayGoals(model: model), ), diff --git a/lib/widgets/SettingsDialog.dart b/lib/widgets/SettingsDialog.dart index 00af2a0..991751e 100644 --- a/lib/widgets/SettingsDialog.dart +++ b/lib/widgets/SettingsDialog.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import '../widgets/LeagueDropdown.dart'; import '../constants.dart'; class SettingsDialog extends StatefulWidget{ - @override _SettingsDialogState createState() => _SettingsDialogState(); } From 654ad25d37fe2ccfcc64e0c4638655b4e4c720fe Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Wed, 15 Jul 2020 15:29:27 +0530 Subject: [PATCH 18/49] Corrected option to change the league --- lib/widgets/LeagueDropdown.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/widgets/LeagueDropdown.dart b/lib/widgets/LeagueDropdown.dart index c55a52f..bee04d2 100644 --- a/lib/widgets/LeagueDropdown.dart +++ b/lib/widgets/LeagueDropdown.dart @@ -31,6 +31,7 @@ class _LeagueDropdownState extends State { model.selectedLeague = value; model.leagueWiseScores = null; await model.loadLeagueWiseScores(leagueName: value); + Navigator.of(context).pushReplacementNamed('/score'); }, ), ), From 44758ca575b28ac0b19b89c878312ca0380b0350 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Wed, 15 Jul 2020 17:08:49 +0530 Subject: [PATCH 19/49] Added datepicker to bottomsheet --- lib/Provider/AppProvider.dart | 25 ++++++++++++++++- lib/widgets/SettingsDialog.dart | 50 +++++++++++++++++++++++++++++---- 2 files changed, 68 insertions(+), 7 deletions(-) diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index b468fb8..fa93d46 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -7,15 +7,17 @@ import '../services/GetItLocator.dart'; import '../models/News.dart'; import '../constants.dart'; class AppProvider extends ChangeNotifier { + AppProvider(this._navbarIndex, this._selectedLeague); int _navbarIndex; List _newsList; List _favouriteNewsList; List _leagueWiseScores; + DateTime _startDate; + DateTime _endDate; List _favouriteTeamScores; String _selectedLeague; - AppProvider(this._navbarIndex, this._selectedLeague); int get navbarIndex => _navbarIndex; String get selectedLeague => _selectedLeague; @@ -52,6 +54,10 @@ class AppProvider extends ChangeNotifier { String leagueId = '${leagues[leagueName]['id']}'; _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: leagueId); } + final firstDate = leagueWiseScores[0].date_time; + _startDate = DateTime(firstDate.year, firstDate.month, firstDate.day); + final lastDate = leagueWiseScores.last.date_time; + _endDate = DateTime(lastDate.year, lastDate.month, lastDate.day); notifyListeners(); } @@ -83,6 +89,23 @@ class AppProvider extends ChangeNotifier { void set leagueWiseScores(List scores) { _leagueWiseScores = scores; + final firstDate = leagueWiseScores[0].date_time; + _startDate = DateTime(firstDate.year, firstDate.month, firstDate.day); + final lastDate = leagueWiseScores.last.date_time; + _endDate = DateTime(lastDate.year, lastDate.month, lastDate.day); + notifyListeners(); + } + + DateTime get startDate => _startDate; + DateTime get endDate => _endDate; + + void set startDate(DateTime date) { + _startDate = date; + notifyListeners(); + } + + void set endDate(DateTime date) { + _startDate = date; notifyListeners(); } } \ No newline at end of file diff --git a/lib/widgets/SettingsDialog.dart b/lib/widgets/SettingsDialog.dart index 991751e..50d030f 100644 --- a/lib/widgets/SettingsDialog.dart +++ b/lib/widgets/SettingsDialog.dart @@ -1,6 +1,9 @@ import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:provider/provider.dart'; import '../widgets/LeagueDropdown.dart'; import '../constants.dart'; +import '../Provider/AppProvider.dart'; class SettingsDialog extends StatefulWidget{ @override _SettingsDialogState createState() => _SettingsDialogState(); @@ -15,12 +18,47 @@ class _SettingsDialogState extends State { .toList(); @override Widget build(BuildContext context) { - return Column( - children: [ - LeagueDropdown( - items: leaguesIems, - ) - ], + return Consumer( + builder: (context, model, child) => Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text('Select League:', style: TextStyle(fontSize: 18),), + LeagueDropdown( + items: leaguesIems, + ), + ], + ), + Divider(thickness: 0.7), + InkWell( + onTap: () { + showDatePicker(context: context, initialDate: model.startDate, firstDate: model.startDate, lastDate: model.endDate); + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text('${DateFormat('d-M-y').format(model.startDate)}'), + Icon(Icons.date_range) + ], + ), + ), + Divider(thickness: 0.7,), + InkWell( + onTap: () { + showDatePicker(context: context, initialDate: model.startDate, firstDate: model.startDate, lastDate: model.endDate); + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text('${DateFormat('d-M-y').format(model.endDate)}'), + Icon(Icons.date_range) + ], + ), + ) + ], + ), ); } } \ No newline at end of file From 31f5647e7edfbf22a449499370fb98f3ec88bb7a Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Wed, 15 Jul 2020 17:17:31 +0530 Subject: [PATCH 20/49] Modified startdate and enddate --- lib/Provider/AppProvider.dart | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index fa93d46..8a14904 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -54,9 +54,9 @@ class AppProvider extends ChangeNotifier { String leagueId = '${leagues[leagueName]['id']}'; _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: leagueId); } - final firstDate = leagueWiseScores[0].date_time; + final firstDate = leagueWiseScores.last.date_time; _startDate = DateTime(firstDate.year, firstDate.month, firstDate.day); - final lastDate = leagueWiseScores.last.date_time; + final lastDate = leagueWiseScores[0].date_time; _endDate = DateTime(lastDate.year, lastDate.month, lastDate.day); notifyListeners(); } @@ -89,10 +89,12 @@ class AppProvider extends ChangeNotifier { void set leagueWiseScores(List scores) { _leagueWiseScores = scores; - final firstDate = leagueWiseScores[0].date_time; - _startDate = DateTime(firstDate.year, firstDate.month, firstDate.day); - final lastDate = leagueWiseScores.last.date_time; - _endDate = DateTime(lastDate.year, lastDate.month, lastDate.day); + if(scores != null) { + final firstDate = leagueWiseScores.last.date_time; + _startDate = DateTime(firstDate.year, firstDate.month, firstDate.day); + final lastDate = leagueWiseScores[0].date_time; + _endDate = DateTime(lastDate.year, lastDate.month, lastDate.day); + } notifyListeners(); } From 50625833bda047f4fa8019d5d78c5c1eb9a309b0 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Thu, 16 Jul 2020 03:13:30 +0530 Subject: [PATCH 21/49] Added save button to bottomsheet --- ios/Flutter/Generated 20.xcconfig | 10 + ios/Flutter/flutter_export_environment 21.sh | 11 ++ lib/constants.dart | 6 + lib/widgets/AllScores.dart | 10 +- lib/widgets/LeagueDropdown.dart | 17 +- lib/widgets/SettingsDialog.dart | 196 ++++++++++++++++--- 6 files changed, 208 insertions(+), 42 deletions(-) create mode 100644 ios/Flutter/Generated 20.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 21.sh diff --git a/ios/Flutter/Generated 20.xcconfig b/ios/Flutter/Generated 20.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 20.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 21.sh b/ios/Flutter/flutter_export_environment 21.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 21.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/constants.dart b/lib/constants.dart index f18e80f..3f78a1d 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -1,3 +1,5 @@ +import 'package:sportsmojo/models/Score.dart'; + final Map leagues = { "Bundesliga": { "id": 78, @@ -49,4 +51,8 @@ int dayDifference({DateTime date_time1, DateTime date_time2}) { final date1 = DateTime(date_time1.year, date_time1.month, date_time1.day); final date2 = DateTime(date_time2.year, date_time2.month, date_time2.day); return date1.difference(date2).inDays; +} + +List filterScores({List scores, DateTime after, DateTime before}) { + return scores.where((score) => dayDifference(date_time1: score.date_time, date_time2: after) >=0 && dayDifference(date_time1: score.date_time, date_time2: before) <= 0).toList(); } \ No newline at end of file diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index f536cd9..e9d5a19 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -54,7 +54,7 @@ class _AllScoresState extends State { controller: _scrollController, child: Container( margin: EdgeInsets.only(top: 10.0), - child: ( appProvider.leagueWiseScores !=null && _scores != null) + child: (appProvider.leagueWiseScores != null && _scores != null) ? ListView.builder( shrinkWrap: true, itemCount: _lastRetrievedLindex + 2, @@ -141,7 +141,12 @@ class _AllScoresState extends State { } void _setScores(AppProvider appProvider) { - final List allScores = appProvider.leagueWiseScores; + DateTime now = DateTime.now(); + now = DateTime(now.year, now.month, now.day); + final List allScores = filterScores( + scores: appProvider.leagueWiseScores, + after: now.subtract(Duration(days: 30)), + before: now.add(Duration(days: 7))); _totalNoOfScores = allScores.length; setState(() { if (_totalNoOfScores > 10) { @@ -165,6 +170,7 @@ class _AllScoresState extends State { context: context, builder: (BuildContext context) { return Container( + height: 250, child: SettingsDialog(), ); }); diff --git a/lib/widgets/LeagueDropdown.dart b/lib/widgets/LeagueDropdown.dart index bee04d2..285745e 100644 --- a/lib/widgets/LeagueDropdown.dart +++ b/lib/widgets/LeagueDropdown.dart @@ -3,15 +3,16 @@ import 'package:provider/provider.dart'; import '../Provider/AppProvider.dart'; class LeagueDropdown extends StatefulWidget { final List items; - LeagueDropdown({this.items}); + Function(String) onChange; + String selectedLeague; + LeagueDropdown({this.items, this.onChange, this.selectedLeague}); @override _LeagueDropdownState createState() => _LeagueDropdownState(); } class _LeagueDropdownState extends State { Widget build(BuildContext context) { - return Consumer( - builder: (context, model, child) => Theme( + return Theme( data: Theme.of(context) .copyWith(canvasColor: Theme.of(context).primaryColor), child: Container( @@ -24,20 +25,14 @@ class _LeagueDropdownState extends State { alignedDropdown: true, child: DropdownButton( iconEnabledColor: Colors.white, - value: model.selectedLeague, + value: widget.selectedLeague, items: widget.items, style: TextStyle(color: Colors.white, fontSize: 11), - onChanged: (String value) async{ - model.selectedLeague = value; - model.leagueWiseScores = null; - await model.loadLeagueWiseScores(leagueName: value); - Navigator.of(context).pushReplacementNamed('/score'); - }, + onChanged: widget.onChange, ), ), ), ), - ), ); } } \ No newline at end of file diff --git a/lib/widgets/SettingsDialog.dart b/lib/widgets/SettingsDialog.dart index 50d030f..e287d0a 100644 --- a/lib/widgets/SettingsDialog.dart +++ b/lib/widgets/SettingsDialog.dart @@ -4,56 +4,188 @@ import 'package:provider/provider.dart'; import '../widgets/LeagueDropdown.dart'; import '../constants.dart'; import '../Provider/AppProvider.dart'; -class SettingsDialog extends StatefulWidget{ + +class SettingsDialog extends StatefulWidget { @override _SettingsDialogState createState() => _SettingsDialogState(); } class _SettingsDialogState extends State { + String dropdownValue; + DateTime startDate, endDate; List leaguesIems = leagues.entries .map>((entry) => DropdownMenuItem( - value: entry.key, - child: Text(entry.key), - )) + value: entry.key, + child: Text(entry.key), + )) .toList(); + + @override + void initState() { + final AppProvider appProvider = + Provider.of(context, listen: false); + DateTime now = DateTime.now(); + now = DateTime(now.year, now.month, now.day); + setState(() { + dropdownValue = appProvider.selectedLeague; + startDate = dayDifference( + date_time1: appProvider.startDate, + date_time2: now.subtract(Duration(days: 30))) < + 0 + ? now.subtract(Duration(days: 30)) + : appProvider.startDate; + endDate = dayDifference( + date_time1: appProvider.endDate, + date_time2: now.add(Duration(days: 7))) > + 0 + ? now.add(Duration(days: 7)) + : appProvider.endDate; + }); + super.initState(); + } + @override Widget build(BuildContext context) { return Consumer( builder: (context, model, child) => Column( children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text('Select League:', style: TextStyle(fontSize: 18),), - LeagueDropdown( - items: leaguesIems, - ), - ], + Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'Select League:', + style: TextStyle(fontSize: 18), + ), + LeagueDropdown( + items: leaguesIems, + onChange: onDropdownChange, + selectedLeague: dropdownValue, + ), + ], + ), ), Divider(thickness: 0.7), - InkWell( - onTap: () { - showDatePicker(context: context, initialDate: model.startDate, firstDate: model.startDate, lastDate: model.endDate); - }, + Padding( + padding: const EdgeInsets.all(8.0), child: Row( - mainAxisAlignment: MainAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ - Text('${DateFormat('d-M-y').format(model.startDate)}'), - Icon(Icons.date_range) + InkWell( + onTap: () async { + final DateTime date = await showDatePicker( + context: context, + initialDate: startDate, + firstDate: model.startDate, + lastDate: model.endDate); + if (date != null) { + setState(() { + startDate = date; + }); + } + }, + child: Container( + decoration: BoxDecoration( + border: Border.all(width: 2, color: Colors.black), + borderRadius: BorderRadius.circular(4.0)), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: Icon(Icons.date_range), + ), + Text( + '${DateFormat('d-M-y').format(startDate)}', + style: TextStyle(fontSize: 18), + ), + ], + ), + ), + ), + ), + Text( + '-', + style: TextStyle(fontSize: 30), + ), + InkWell( + onTap: () async { + final DateTime date = await showDatePicker( + context: context, + initialDate: endDate, + firstDate: model.startDate, + lastDate: model.endDate); + if (date != null) { + setState(() { + endDate = date; + }); + } + }, + child: Container( + decoration: BoxDecoration( + border: Border.all(width: 2, color: Colors.black), + borderRadius: BorderRadius.circular(4.0)), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: Icon(Icons.date_range), + ), + Text( + '${DateFormat('d-M-y').format(endDate)}', + style: TextStyle(fontSize: 18), + ), + ], + ), + ), + ), + ) ], ), ), - Divider(thickness: 0.7,), - InkWell( - onTap: () { - showDatePicker(context: context, initialDate: model.startDate, firstDate: model.startDate, lastDate: model.endDate); - }, + Divider(thickness: 0.7), + Padding( + padding: const EdgeInsets.all(8.0), child: Row( - mainAxisAlignment: MainAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.end, children: [ - Text('${DateFormat('d-M-y').format(model.endDate)}'), - Icon(Icons.date_range) + ButtonTheme( + height: 40, + minWidth: 100, + child: RaisedButton( + shape: RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(20.0), + ), + color: Theme.of(context).primaryColor, + child: Text( + 'Save', + style: TextStyle(color: Colors.white), + ), + onPressed: () async { + if (model.selectedLeague == dropdownValue && + model.startDate == startDate && + model.endDate == endDate) { + Navigator.of(context).pop(); + } else { + if (model.selectedLeague != dropdownValue) { + model.selectedLeague = dropdownValue; + model.leagueWiseScores = null; + await model.loadLeagueWiseScores( + leagueName: dropdownValue); + Navigator.of(context).pushReplacementNamed('/score'); + } + if(model.endDate) + } + }, + ), + ), ], ), ) @@ -61,4 +193,10 @@ class _SettingsDialogState extends State { ), ); } -} \ No newline at end of file + + void onDropdownChange(String value) { + setState(() { + dropdownValue = value; + }); + } +} From 7525f222d0cb2a5bed92b6bee9f732028a325a66 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sat, 18 Jul 2020 00:40:30 +0530 Subject: [PATCH 22/49] Implemented filter scores by date --- lib/Provider/AppProvider.dart | 14 ++--------- lib/constants.dart | 9 +++++++ lib/screens/HomeScreen.dart | 41 +++++++++++++++++++++++++++----- lib/services/GetItLocator.dart | 3 ++- lib/widgets/AllScores.dart | 12 ++++++---- lib/widgets/FavouriteScores.dart | 6 +++-- lib/widgets/SettingsDialog.dart | 34 +++++++++++++++----------- 7 files changed, 79 insertions(+), 40 deletions(-) diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index 8a14904..5c62602 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -7,7 +7,7 @@ import '../services/GetItLocator.dart'; import '../models/News.dart'; import '../constants.dart'; class AppProvider extends ChangeNotifier { - AppProvider(this._navbarIndex, this._selectedLeague); + AppProvider(this._navbarIndex, this._selectedLeague, this._startDate, this._endDate); int _navbarIndex; List _newsList; List _favouriteNewsList; @@ -54,10 +54,6 @@ class AppProvider extends ChangeNotifier { String leagueId = '${leagues[leagueName]['id']}'; _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: leagueId); } - final firstDate = leagueWiseScores.last.date_time; - _startDate = DateTime(firstDate.year, firstDate.month, firstDate.day); - final lastDate = leagueWiseScores[0].date_time; - _endDate = DateTime(lastDate.year, lastDate.month, lastDate.day); notifyListeners(); } @@ -89,12 +85,6 @@ class AppProvider extends ChangeNotifier { void set leagueWiseScores(List scores) { _leagueWiseScores = scores; - if(scores != null) { - final firstDate = leagueWiseScores.last.date_time; - _startDate = DateTime(firstDate.year, firstDate.month, firstDate.day); - final lastDate = leagueWiseScores[0].date_time; - _endDate = DateTime(lastDate.year, lastDate.month, lastDate.day); - } notifyListeners(); } @@ -107,7 +97,7 @@ class AppProvider extends ChangeNotifier { } void set endDate(DateTime date) { - _startDate = date; + _endDate = date; notifyListeners(); } } \ No newline at end of file diff --git a/lib/constants.dart b/lib/constants.dart index 3f78a1d..967990b 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -55,4 +55,13 @@ int dayDifference({DateTime date_time1, DateTime date_time2}) { List filterScores({List scores, DateTime after, DateTime before}) { return scores.where((score) => dayDifference(date_time1: score.date_time, date_time2: after) >=0 && dayDifference(date_time1: score.date_time, date_time2: before) <= 0).toList(); +} + +Map getFirstAndLastDate(List scores) { + Map dates = {}; + final firstDate = scores.last.date_time; + dates["firstDate"] = DateTime(firstDate.year, firstDate.month, firstDate.day); + final lastDate = scores[0].date_time; + dates["lastDate"] = DateTime(lastDate.year, lastDate.month, lastDate.day); + return dates; } \ No newline at end of file diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 7b62000..980a189 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -62,8 +62,8 @@ class _HomeScreenState extends State with TickerProviderStateMixin { children: [ Flexible( fit: FlexFit.loose, - child: carousel( - model: model, appProvider: appProvider)), + child: + carousel(model: model, appProvider: appProvider)), appProvider.favouriteTeamScores != null ? UpcomingMatchesSection(appProvider: appProvider) : PKCardSkeleton( @@ -82,8 +82,35 @@ class _HomeScreenState extends State with TickerProviderStateMixin { Widget UpcomingMatchesSection({AppProvider appProvider}) { final List matches = appProvider.favouriteTeamScores; - final Score latestScore = - matches.firstWhere((score) => score.status == "FT"); + Score score; + String caption; + final Score liveMatch = matches.firstWhere( + (score) => + score.status != "FT" && + score.status != "PEN" && + score.homeScore != null, + orElse: () => null); + if (liveMatch == null) { + final int index = matches + .indexWhere((score) => score.status == "FT" || score.status == "PEN"); + final Score latestScore = matches[index]; + if (index > 0) { + final Score nextScore = matches[index - 1]; + if (nextScore.date_time.difference(DateTime.now()).inSeconds < + DateTime.now().difference(latestScore.date_time).inSeconds) { + score = nextScore; + caption = 'Upcoming Match'; + } else { + score = latestScore; + caption = 'Latest Match'; + } + } else { + score = latestScore; + } + } else { + score = liveMatch; + caption = 'Live Match'; + } return Padding( padding: const EdgeInsets.all(8.0), child: Column( @@ -92,12 +119,14 @@ class _HomeScreenState extends State with TickerProviderStateMixin { Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Text( - 'Upcoming/Live Matches', + caption, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w500), textAlign: TextAlign.center, ), ), - ScoreCard(score: latestScore,) + ScoreCard( + score: score, + ) ]), ); } diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index 807d223..c37ef91 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -15,6 +15,7 @@ import '../Provider/MatchEventViewModel.dart'; GetIt locator = GetIt.instance; void setupLocator() { + DateTime now = DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day); locator.registerLazySingleton(() => NewsService()); locator.registerLazySingleton(() => TeamService()); locator.registerLazySingleton(() => ScoreService()); @@ -24,5 +25,5 @@ void setupLocator() { locator.registerFactory(() => MatchStatViewModel(null)); locator.registerFactory(() => MatchEventViewModel(null)); locator.registerFactoryParam, int>((scores, index) => FavouriteScoresViewModel(scores, index)); - locator.registerFactoryParam((leagueName, _) => AppProvider(0, leagueName)); + locator.registerFactoryParam((leagueName, _) => AppProvider(0, leagueName, now.subtract(Duration(days: 30)), now.add(Duration(days: 7)))); } \ No newline at end of file diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index e9d5a19..dca20a5 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -15,7 +15,7 @@ class AllScores extends StatefulWidget { class _AllScoresState extends State { ScrollController _scrollController = ScrollController(); - int _lastRetrievedLindex = 9; + int _lastRetrievedLindex; int _totalNoOfScores; List _scores; @@ -60,8 +60,8 @@ class _AllScoresState extends State { itemCount: _lastRetrievedLindex + 2, physics: NeverScrollableScrollPhysics(), itemBuilder: (BuildContext context, int index) { - if (index == _lastRetrievedLindex + 1) { - return Padding( + if (index == _lastRetrievedLindex + 1 ) { + return index == _totalNoOfScores ? Container() : Padding( padding: const EdgeInsets.only(bottom: 16.0), child: SizedBox( height: 40, @@ -145,14 +145,16 @@ class _AllScoresState extends State { now = DateTime(now.year, now.month, now.day); final List allScores = filterScores( scores: appProvider.leagueWiseScores, - after: now.subtract(Duration(days: 30)), - before: now.add(Duration(days: 7))); + after: appProvider.startDate, + before: appProvider.endDate); _totalNoOfScores = allScores.length; setState(() { if (_totalNoOfScores > 10) { _scores = allScores.sublist(0, 10); + _lastRetrievedLindex = 9; } else { _scores = allScores; + _lastRetrievedLindex = _totalNoOfScores - 1; } }); _scrollController.addListener(() { diff --git a/lib/widgets/FavouriteScores.dart b/lib/widgets/FavouriteScores.dart index dabc85e..0828b9e 100644 --- a/lib/widgets/FavouriteScores.dart +++ b/lib/widgets/FavouriteScores.dart @@ -13,7 +13,7 @@ class FavouriteScores extends StatefulWidget { class _FavouriteScoresState extends State { ScrollController _scrollController = ScrollController(); - int _lastRetrievedLindex = 9; + int _lastRetrievedLindex; int _totalNoOfScores; List _scores; @override @@ -51,7 +51,7 @@ class _FavouriteScoresState extends State { physics: NeverScrollableScrollPhysics(), itemBuilder: (BuildContext context, int index) { if(index == _lastRetrievedLindex + 1) { - return Padding( + return index == _totalNoOfScores ? Container() : Padding( padding: const EdgeInsets.only(bottom: 16.0), child: SizedBox( height: 40, @@ -105,8 +105,10 @@ class _FavouriteScoresState extends State { setState(() { if (_totalNoOfScores > 10) { _scores = favouriteTeamScores.sublist(0, 10); + _lastRetrievedLindex = 9; } else { _scores = favouriteTeamScores; + _lastRetrievedLindex = _totalNoOfScores - 1; } }); _scrollController.addListener(() { diff --git a/lib/widgets/SettingsDialog.dart b/lib/widgets/SettingsDialog.dart index e287d0a..1b1eb89 100644 --- a/lib/widgets/SettingsDialog.dart +++ b/lib/widgets/SettingsDialog.dart @@ -29,17 +29,17 @@ class _SettingsDialogState extends State { setState(() { dropdownValue = appProvider.selectedLeague; startDate = dayDifference( - date_time1: appProvider.startDate, - date_time2: now.subtract(Duration(days: 30))) < + date_time1: getFirstAndLastDate(appProvider.leagueWiseScores)["firstDate"], + date_time2: appProvider.startDate) < 0 - ? now.subtract(Duration(days: 30)) - : appProvider.startDate; + ? appProvider.startDate + : getFirstAndLastDate(appProvider.leagueWiseScores)["firstDate"]; endDate = dayDifference( - date_time1: appProvider.endDate, - date_time2: now.add(Duration(days: 7))) > + date_time1: getFirstAndLastDate(appProvider.leagueWiseScores)["lastDate"], + date_time2: appProvider.endDate) > 0 - ? now.add(Duration(days: 7)) - : appProvider.endDate; + ? appProvider.endDate + : getFirstAndLastDate(appProvider.leagueWiseScores)["lastDate"]; }); super.initState(); } @@ -78,8 +78,8 @@ class _SettingsDialogState extends State { final DateTime date = await showDatePicker( context: context, initialDate: startDate, - firstDate: model.startDate, - lastDate: model.endDate); + firstDate: getFirstAndLastDate(model.leagueWiseScores)["firstDate"], + lastDate: getFirstAndLastDate(model.leagueWiseScores)["lastDate"]); if (date != null) { setState(() { startDate = date; @@ -117,8 +117,8 @@ class _SettingsDialogState extends State { final DateTime date = await showDatePicker( context: context, initialDate: endDate, - firstDate: model.startDate, - lastDate: model.endDate); + firstDate: getFirstAndLastDate(model.leagueWiseScores)["firstDate"], + lastDate: getFirstAndLastDate(model.leagueWiseScores)["lastDate"]); if (date != null) { setState(() { endDate = date; @@ -174,14 +174,20 @@ class _SettingsDialogState extends State { model.endDate == endDate) { Navigator.of(context).pop(); } else { - if (model.selectedLeague != dropdownValue) { + if (model.selectedLeague != dropdownValue ) { model.selectedLeague = dropdownValue; + model.startDate = startDate; + model.endDate = endDate; model.leagueWiseScores = null; await model.loadLeagueWiseScores( leagueName: dropdownValue); Navigator.of(context).pushReplacementNamed('/score'); } - if(model.endDate) + else { + model.startDate = startDate; + model.endDate = endDate; + Navigator.of(context).pushReplacementNamed('/score'); + } } }, ), From 6da83ce20601e1eea1cb976b5ba11bb004819b29 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sat, 18 Jul 2020 01:07:30 +0530 Subject: [PATCH 23/49] Added leaguetable model --- ios/Flutter/Generated 21.xcconfig | 10 ++++++++ ios/Flutter/flutter_export_environment 22.sh | 11 +++++++++ lib/models/LeagueTable.dart | 26 ++++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 ios/Flutter/Generated 21.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 22.sh create mode 100644 lib/models/LeagueTable.dart diff --git a/ios/Flutter/Generated 21.xcconfig b/ios/Flutter/Generated 21.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 21.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 22.sh b/ios/Flutter/flutter_export_environment 22.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 22.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/models/LeagueTable.dart b/lib/models/LeagueTable.dart new file mode 100644 index 0000000..b51ce73 --- /dev/null +++ b/lib/models/LeagueTable.dart @@ -0,0 +1,26 @@ +class LeagueTable { + int position; + String teamName; + String teamLogo; + int matchesPlayed; + int wins; + int draws; + int loses; + int points; + int goalsFor; + int goalsAgainst; + String form; + LeagueTable(this.position, this.teamName, this.teamLogo, this.matchesPlayed, this.wins, this.draws, this.loses, this.points, this.goalsFor, this.goalsAgainst, this.form); + LeagueTable.fromJson(Map unparsedJson) + : position = unparsedJson["rank"], + teamName = unparsedJson["team"]["name"], + teamLogo = unparsedJson["team"]["logo"], + matchesPlayed = unparsedJson["all"]["played"], + wins = unparsedJson["all"]["win"], + draws = unparsedJson["all"]["draw"], + loses = unparsedJson["all"]["lose"], + points = unparsedJson["points"], + goalsFor = unparsedJson["all"]["goals"]["for"], + goalsAgainst = unparsedJson["all"]["goals"]["against"], + form = unparsedJson["form"]; +} \ No newline at end of file From aeec363c83da3c13391a78bb0e46ccd991c35148 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sat, 18 Jul 2020 15:13:34 +0530 Subject: [PATCH 24/49] Added leaguetable service --- lib/models/LeagueTable.dart | 6 +++--- lib/services/GetItLocator.dart | 8 ++++---- lib/services/HttpService.dart | 13 +++++++++++++ lib/services/LeagueTableService.dart | 24 ++++++++++++++++++++++++ lib/services/MatchEventService.dart | 9 ++------- lib/services/ScoreService.dart | 8 ++------ lib/services/StatService.dart | 8 ++------ lib/services/TeamService.dart | 8 ++------ 8 files changed, 52 insertions(+), 32 deletions(-) create mode 100644 lib/services/HttpService.dart create mode 100644 lib/services/LeagueTableService.dart diff --git a/lib/models/LeagueTable.dart b/lib/models/LeagueTable.dart index b51ce73..5c43bda 100644 --- a/lib/models/LeagueTable.dart +++ b/lib/models/LeagueTable.dart @@ -1,4 +1,4 @@ -class LeagueTable { +class LeagueTableEntry { int position; String teamName; String teamLogo; @@ -10,8 +10,8 @@ class LeagueTable { int goalsFor; int goalsAgainst; String form; - LeagueTable(this.position, this.teamName, this.teamLogo, this.matchesPlayed, this.wins, this.draws, this.loses, this.points, this.goalsFor, this.goalsAgainst, this.form); - LeagueTable.fromJson(Map unparsedJson) + LeagueTableEntry({this.position, this.teamName, this.teamLogo, this.matchesPlayed, this.wins, this.draws, this.loses, this.points, this.goalsFor, this.goalsAgainst, this.form}); + LeagueTableEntry.fromJson(Map unparsedJson) : position = unparsedJson["rank"], teamName = unparsedJson["team"]["name"], teamLogo = unparsedJson["team"]["logo"], diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index c37ef91..de49ad1 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -1,17 +1,16 @@ -import 'package:sportsmojo/models/Score.dart'; +import 'package:get_it/get_it.dart'; +import '../models/Score.dart'; import 'NewsService.dart'; import 'TeamService.dart'; import 'ScoreService.dart'; import 'StatService.dart'; import 'MatchEventService.dart'; -import 'package:get_it/get_it.dart'; +import 'LeagueTableService.dart'; import '../Provider/HomeViewModel.dart'; import '../Provider/AppProvider.dart'; -import '../Provider/AllScoresViewModel.dart'; import '../Provider/FavouriteScoresViewModel.dart'; import '../Provider/MatchStatViewModel.dart'; import '../Provider/MatchEventViewModel.dart'; - GetIt locator = GetIt.instance; void setupLocator() { @@ -21,6 +20,7 @@ void setupLocator() { locator.registerLazySingleton(() => ScoreService()); locator.registerLazySingleton(() => StatService()); locator.registerLazySingleton(() => MatchEventService()); + locator.registerLazySingleton(() => LeagueTableService()); locator.registerFactory(() => HomeViewModel(0)); locator.registerFactory(() => MatchStatViewModel(null)); locator.registerFactory(() => MatchEventViewModel(null)); diff --git a/lib/services/HttpService.dart b/lib/services/HttpService.dart new file mode 100644 index 0000000..42b42f1 --- /dev/null +++ b/lib/services/HttpService.dart @@ -0,0 +1,13 @@ +import 'package:dio/dio.dart'; +import '../secret.dart'; + +class HttpService { + static Dio getApiClient() { + BaseOptions options = new BaseOptions(headers: { + 'x-rapidapi-host': 'v3.football.api-sports.io', + 'x-rapidapi-key': scoreApiKey + }); + final _dio = new Dio(options); + return _dio; + } +} \ No newline at end of file diff --git a/lib/services/LeagueTableService.dart b/lib/services/LeagueTableService.dart new file mode 100644 index 0000000..1a43635 --- /dev/null +++ b/lib/services/LeagueTableService.dart @@ -0,0 +1,24 @@ +import 'package:dio/dio.dart'; +import 'package:flutter/material.dart'; +import 'HttpService.dart'; +import '../models/LeagueTable.dart'; + +class LeagueTableService { + final Dio dio = HttpService.getApiClient(); + + Future> fetchLeagueTable({@required String id}) async{ + List _leagueTableEntries = []; + try { + final response = await dio.get('https://v3.football.api-sports.io/standings?season=2019&league=${id}'); + if (response.statusCode == 200) { + final unparsedJson = response.data['response']['league']['standings'][0].toList(); + for (int i = 0; i < unparsedJson.length; i++) { + _leagueTableEntries.add(LeagueTableEntry.fromJson(unparsedJson[i])); + } + } + return _leagueTableEntries; + } on DioError catch (e) { + return null; + } + } +} \ No newline at end of file diff --git a/lib/services/MatchEventService.dart b/lib/services/MatchEventService.dart index 511b430..89f4033 100644 --- a/lib/services/MatchEventService.dart +++ b/lib/services/MatchEventService.dart @@ -1,14 +1,9 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import '../models/MatchEvent.dart'; -import '../secret.dart'; +import 'HttpService.dart'; class MatchEventService { - static BaseOptions options = BaseOptions(headers: { - 'x-rapidapi-host': 'v3.football.api-sports.io', - 'x-rapidapi-key': scoreApiKey - }); - - final Dio dio = new Dio(options); + final Dio dio = HttpService.getApiClient(); Future> fetchEvents({@required int fixtureId}) async{ List events = []; diff --git a/lib/services/ScoreService.dart b/lib/services/ScoreService.dart index 3999436..3fcce76 100644 --- a/lib/services/ScoreService.dart +++ b/lib/services/ScoreService.dart @@ -1,13 +1,9 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import '../models/Score.dart'; -import '../secret.dart'; +import 'HttpService.dart'; class ScoreService { - static BaseOptions options = new BaseOptions(headers: { - 'x-rapidapi-host': 'v3.football.api-sports.io', - 'x-rapidapi-key': scoreApiKey - }); - final dio = new Dio(options); + final Dio dio = HttpService.getApiClient(); Future> fetchScoresByLeague({@required String id}) async { List scoresList = []; try { diff --git a/lib/services/StatService.dart b/lib/services/StatService.dart index 6b0b1a5..17469a6 100644 --- a/lib/services/StatService.dart +++ b/lib/services/StatService.dart @@ -1,13 +1,9 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import '../models/MatchStat.dart'; -import '../secret.dart'; +import 'HttpService.dart'; class StatService { - static BaseOptions options = new BaseOptions(headers: { - 'x-rapidapi-host': 'v3.football.api-sports.io', - 'x-rapidapi-key': scoreApiKey - }); - final dio = new Dio(options); + final Dio dio = HttpService.getApiClient(); Future> fetchStats({@required int fixtureId}) async{ Map stats = {}; diff --git a/lib/services/TeamService.dart b/lib/services/TeamService.dart index f6c0aa6..4da4f5e 100644 --- a/lib/services/TeamService.dart +++ b/lib/services/TeamService.dart @@ -1,13 +1,9 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import '../models/Team.dart'; -import '../secret.dart'; +import 'HttpService.dart'; class TeamService { - static BaseOptions options = new BaseOptions(headers: { - 'x-rapidapi-host': 'v3.football.api-sports.io', - 'x-rapidapi-key': scoreApiKey - }); - final dio = new Dio(options); + final Dio dio = HttpService.getApiClient(); Future> fetchTeams({@required int id}) async { List teamList = []; try { From aa5caad3a911a2464cdc56b68ca6c56246370954 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sun, 19 Jul 2020 01:48:04 +0530 Subject: [PATCH 25/49] Completed league table --- lib/Provider/AppProvider.dart | 101 +++-- lib/commons/BottomNavbar.dart | 7 +- lib/screens/LeagueTableScreen.dart | 72 ++++ lib/screens/MatchStatScreen.dart | 2 +- lib/services/CustomRouter.dart | 3 + lib/services/LeagueTableService.dart | 2 +- lib/widgets/LeagueDropdown.dart | 54 +-- lib/widgets/LeagueTableWiget.dart | 566 +++++++++++++++++++++++++++ 8 files changed, 743 insertions(+), 64 deletions(-) create mode 100644 lib/screens/LeagueTableScreen.dart create mode 100644 lib/widgets/LeagueTableWiget.dart diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index 5c62602..d230519 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -6,22 +6,38 @@ import '../services/LocalStorage.dart'; import '../services/GetItLocator.dart'; import '../models/News.dart'; import '../constants.dart'; +import '../models/LeagueTable.dart'; +import '../services/LeagueTableService.dart'; class AppProvider extends ChangeNotifier { AppProvider(this._navbarIndex, this._selectedLeague, this._startDate, this._endDate); int _navbarIndex; List _newsList; List _favouriteNewsList; List _leagueWiseScores; + List _leagueTableEntries; DateTime _startDate; DateTime _endDate; - List _favouriteTeamScores; + NewsService _newsService = locator(); + ScoreService _scoreService = locator(); + LeagueTableService _leagueTableService = locator(); + String _selectedLeague; int get navbarIndex => _navbarIndex; String get selectedLeague => _selectedLeague; + List get newsList => _newsList; + List get favouriteNewsList => _favouriteNewsList; + List get favouriteTeamScores => _favouriteTeamScores; + List get leagueWiseScores => _leagueWiseScores; + + DateTime get startDate => _startDate; + DateTime get endDate => _endDate; + + List get leagueTableEntries => _leagueTableEntries; + void set selectedLeague(String league) { _selectedLeague = league; notifyListeners(); @@ -31,73 +47,80 @@ class AppProvider extends ChangeNotifier { _navbarIndex = index; notifyListeners(); } - NewsService _newsService = locator(); - ScoreService _scoreService = locator(); - - Future loadAllNews() async{ - _newsList = await _newsService.fetchNews('football'); + + void set newsList(List news) { + _newsList = news; notifyListeners(); } - Future loadFavouriteNews() async { - String teamName = await LocalStorage.getString('teamName'); - _favouriteNewsList = await _newsService.fetchNews(teamName); + void set favouriteNewsList(List news) { + _favouriteNewsList = news.sublist(0, 4); notifyListeners(); } - Future loadLeagueWiseScores({String leagueName}) async { - if(leagueName == null) { - String storedLeagueId = await LocalStorage.getString('leagueId'); - _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: storedLeagueId); - } - else { - String leagueId = '${leagues[leagueName]['id']}'; - _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: leagueId); - } + void set favouriteTeamScores(List scores) { + _favouriteTeamScores = scores; notifyListeners(); } - Future loadFavouriteScores() async { - String teamId = await LocalStorage.getString('teamId'); - _favouriteTeamScores = await _scoreService.fetchScoresByTeam(id: teamId); + void set leagueWiseScores(List scores) { + _leagueWiseScores = scores; notifyListeners(); } - List get newsList => _newsList; - List get favouriteNewsList => _favouriteNewsList; - List get favouriteTeamScores => _favouriteTeamScores; - List get leagueWiseScores => _leagueWiseScores; + void set startDate(DateTime date) { + _startDate = date; + notifyListeners(); + } - void set newsList(List news) { - _newsList = news; + void set endDate(DateTime date) { + _endDate = date; notifyListeners(); } - void set favouriteNewsList(List news) { - _favouriteNewsList = news.sublist(0, 4); + void set leagueTableEntries(List newLeagueTable) { + _leagueTableEntries = newLeagueTable; notifyListeners(); } - void set favouriteTeamScores(List scores) { - _favouriteTeamScores = scores; + Future loadAllNews() async{ + _newsList = await _newsService.fetchNews('football'); notifyListeners(); } - void set leagueWiseScores(List scores) { - _leagueWiseScores = scores; + Future loadFavouriteNews() async { + String teamName = await LocalStorage.getString('teamName'); + _favouriteNewsList = await _newsService.fetchNews(teamName); notifyListeners(); } - DateTime get startDate => _startDate; - DateTime get endDate => _endDate; + Future loadLeagueWiseScores({String leagueName}) async { + if(leagueName == null) { + String storedLeagueId = await LocalStorage.getString('leagueId'); + _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: storedLeagueId); + } + else { + String leagueId = '${leagues[leagueName]['id']}'; + _leagueWiseScores = await _scoreService.fetchScoresByLeague(id: leagueId); + } + notifyListeners(); + } - void set startDate(DateTime date) { - _startDate = date; + Future loadFavouriteScores() async { + String teamId = await LocalStorage.getString('teamId'); + _favouriteTeamScores = await _scoreService.fetchScoresByTeam(id: teamId); notifyListeners(); } - void set endDate(DateTime date) { - _endDate = date; + Future loadLeagueTable({String leagueName}) async { + if(leagueName == null) { + String storedLeagueId = await LocalStorage.getString('leagueId'); + _leagueTableEntries = await _leagueTableService.fetchLeagueTable(id: storedLeagueId); + } + else { + String leagueId = '${leagues[leagueName]['id']}'; + _leagueTableEntries = await _leagueTableService.fetchLeagueTable(id: leagueId); + } notifyListeners(); } } \ No newline at end of file diff --git a/lib/commons/BottomNavbar.dart b/lib/commons/BottomNavbar.dart index 48d084e..31de0bb 100644 --- a/lib/commons/BottomNavbar.dart +++ b/lib/commons/BottomNavbar.dart @@ -7,7 +7,7 @@ class BottomNavbar extends StatelessWidget { fontWeight: FontWeight.w400, color: Colors.black, ); - final List routes = ['/home', '/score', '/news', '/login']; + final List routes = ['/home', '/score', '/table', '/news', '/login']; Widget build(BuildContext context){ final List bottomNavbarItems = [ new BottomNavigationBarItem( @@ -20,6 +20,11 @@ class BottomNavbar extends StatelessWidget { icon: Icon(MyFlutterApp.score), title: Text('Score', style: _bottomNavBarStyle,) ), + new BottomNavigationBarItem( + activeIcon: Icon(Icons.table_chart, color: Colors.orange,), + icon: Icon(Icons.table_chart), + title: Text('Table', style: _bottomNavBarStyle,) + ), new BottomNavigationBarItem( activeIcon: Icon(MyFlutterApp.news, color: Colors.orange,), icon: Icon(MyFlutterApp.news), diff --git a/lib/screens/LeagueTableScreen.dart b/lib/screens/LeagueTableScreen.dart new file mode 100644 index 0000000..581b5b5 --- /dev/null +++ b/lib/screens/LeagueTableScreen.dart @@ -0,0 +1,72 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../Provider/AppProvider.dart'; +import '../commons/BottomNavbar.dart'; +import '../widgets/LeagueTableWiget.dart'; + +class LeagueTableScreen extends StatefulWidget { + @override + _LeagueTableScreenState createState() => _LeagueTableScreenState(); +} + +class _LeagueTableScreenState extends State + with TickerProviderStateMixin { + TabController _tabController; + + @override + void initState() { + _tabController = TabController(vsync: this, length: 2); + } + + @override + Widget build(BuildContext context) { + final AppProvider appProvider = Provider.of(context); + return Scaffold( + bottomNavigationBar: BottomNavbar(), + backgroundColor: Color(0xfff1f1f1), + appBar: PreferredSize( + preferredSize: Size.fromHeight(100.0), + child: AppBar( + leading: Container(), + backgroundColor: Theme.of(context).primaryColor, + title: Text( + 'League Stats', + style: TextStyle(color: Colors.white), + ), + bottom: TabBar( + controller: _tabController, + tabs: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + 'Table', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ), + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + 'Top Scorer', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ) + ], + indicatorSize: TabBarIndicatorSize.tab, + indicator: UnderlineTabIndicator( + borderSide: BorderSide(width: 3.0, color: Colors.white))), + )), + body: TabBarView( + controller: _tabController, + children: [ + LeagueTableWidget(), + Container() + ], + )); + } +} diff --git a/lib/screens/MatchStatScreen.dart b/lib/screens/MatchStatScreen.dart index 3319f30..409da5f 100644 --- a/lib/screens/MatchStatScreen.dart +++ b/lib/screens/MatchStatScreen.dart @@ -1,7 +1,7 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; -import 'package:sportsmojo/Provider/MatchStatViewModel.dart'; +import '../Provider/MatchStatViewModel.dart'; import '../Provider/MatchEventViewModel.dart'; import 'package:sportsmojo/commons/custom_icons.dart'; import '../models/Score.dart'; diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index 3fa261a..855402f 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -8,12 +8,14 @@ import '../screens/Login.dart'; import '../screens/NewsArticle.dart'; import '../models/News.dart'; import '../screens/FavouriteScreen2.dart'; +import '../screens/LeagueTableScreen.dart'; class Router { Route generateRoutes(RouteSettings settings) { final List validRoutes = [ '/home', '/score', + '/table', '/news', '/login', '/newsarticle', @@ -57,6 +59,7 @@ class Router { message: favouriteTeamMessage, ), '/score': ScoreScreen(), + '/table': LeagueTableScreen(), '/news': NewsScreen(), '/login': LoginScreen(), '/newsarticle': NewsArticleScreen( diff --git a/lib/services/LeagueTableService.dart b/lib/services/LeagueTableService.dart index 1a43635..b6cf520 100644 --- a/lib/services/LeagueTableService.dart +++ b/lib/services/LeagueTableService.dart @@ -11,7 +11,7 @@ class LeagueTableService { try { final response = await dio.get('https://v3.football.api-sports.io/standings?season=2019&league=${id}'); if (response.statusCode == 200) { - final unparsedJson = response.data['response']['league']['standings'][0].toList(); + final unparsedJson = response.data['response'][0]['league']['standings'][0].toList(); for (int i = 0; i < unparsedJson.length; i++) { _leagueTableEntries.add(LeagueTableEntry.fromJson(unparsedJson[i])); } diff --git a/lib/widgets/LeagueDropdown.dart b/lib/widgets/LeagueDropdown.dart index 285745e..f83d3f7 100644 --- a/lib/widgets/LeagueDropdown.dart +++ b/lib/widgets/LeagueDropdown.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../Provider/AppProvider.dart'; + class LeagueDropdown extends StatefulWidget { final List items; Function(String) onChange; @@ -12,27 +13,36 @@ class LeagueDropdown extends StatefulWidget { class _LeagueDropdownState extends State { Widget build(BuildContext context) { - return Theme( - data: Theme.of(context) - .copyWith(canvasColor: Theme.of(context).primaryColor), - child: Container( - decoration: BoxDecoration( - border: Border.all(color: Theme.of(context).primaryColor, width: 1), - color:Theme.of(context).primaryColor, - ), - child: DropdownButtonHideUnderline( - child: ButtonTheme( - alignedDropdown: true, - child: DropdownButton( - iconEnabledColor: Colors.white, - value: widget.selectedLeague, - items: widget.items, - style: TextStyle(color: Colors.white, fontSize: 11), - onChanged: widget.onChange, + return Consumer( + builder: (context, model, child) => Theme( + data: Theme.of(context) + .copyWith(canvasColor: Theme.of(context).primaryColor), + child: Container( + decoration: BoxDecoration( + border: Border.all( + color: Theme.of(context).primaryColor, width: 1), + color: Theme.of(context).primaryColor, + ), + child: DropdownButtonHideUnderline( + child: ButtonTheme( + alignedDropdown: true, + child: DropdownButton( + iconEnabledColor: Colors.white, + value: widget.selectedLeague, + items: widget.items, + style: TextStyle(color: Colors.white, fontSize: 11), + onChanged: (widget.onChange != null) + ? widget.onChange + : (String value) async { + model.selectedLeague = value; + model.leagueTableEntries = null; + await model.loadLeagueTable( + leagueName: value); + }, + ), + ), + ), ), - ), - ), - ), - ); + )); } -} \ No newline at end of file +} diff --git a/lib/widgets/LeagueTableWiget.dart b/lib/widgets/LeagueTableWiget.dart new file mode 100644 index 0000000..0e01fe2 --- /dev/null +++ b/lib/widgets/LeagueTableWiget.dart @@ -0,0 +1,566 @@ +import 'package:flutter/material.dart'; +import 'package:pk_skeleton/pk_skeleton.dart'; +import 'package:provider/provider.dart'; +import 'package:cached_network_image/cached_network_image.dart'; +import '../Provider/AppProvider.dart'; +import '../commons/custom_icons.dart'; +import '../constants.dart'; +import '../widgets/LeagueDropdown.dart'; +class LeagueTableWidget extends StatefulWidget { + @override + _LeagueTableWidgetState createState() => _LeagueTableWidgetState(); +} + +class _LeagueTableWidgetState extends State { + List leaguesIems = leagues.entries + .map>((entry) => DropdownMenuItem( + value: entry.key, + child: Text(entry.key), + )) + .toList(); + + @override + void initState() { + final AppProvider appProvider = + Provider.of(context, listen: false); + if (appProvider.leagueTableEntries == null) { + appProvider.loadLeagueTable(); + } + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, model, child) => SingleChildScrollView( + child: model.leagueTableEntries != null + ? Container( + margin: EdgeInsets.only(top: 10.0), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + children: [ + LeagueDropdown( + items: leaguesIems, + selectedLeague: model.selectedLeague, + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'League Standing', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.w500), + ), + ], + ), + ), + Card( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Container( + width: + MediaQuery.of(context).size.width * 1.3, + child: ListView.builder( + shrinkWrap: true, + itemCount: + model.leagueTableEntries.length, + physics: NeverScrollableScrollPhysics(), + itemBuilder: + (BuildContext context, int index) { + if (index == 0) { + return Column( + children: [ + Row( + children: [ + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.07, + child: Text(' ')), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.35, + child: Text( + 'Team', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'MP', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'W', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'L', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'D', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'Pts.', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'GF', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'GA', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'GD', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )) + ], + ), + Padding( + padding: const EdgeInsets + .symmetric(vertical: 8.0), + child: Row( + children: [ + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.07, + child: Text( + '${model.leagueTableEntries[index].position}.', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.35, + child: Row( + children: [ + Container( + width: 16, + child: CachedNetworkImage( + imageUrl: model + .leagueTableEntries[ + index] + .teamLogo, + placeholder: (BuildContext + context, + String + url) => + Icon(MyFlutterApp + .football)), + ), + Text( + '${model.leagueTableEntries[index].teamName}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign + .center, + ), + ], + ), + ), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].matchesPlayed}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].wins}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].draws}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].loses}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].points}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].goalsFor}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ), + + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].goalsAgainst}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ), + + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].goalsFor - model.leagueTableEntries[index].goalsAgainst}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ), + ], + ), + ) + ], + ); + } + return Padding( + padding: const EdgeInsets.symmetric( + vertical: 8.0), + child: Row( + children: [ + Container( + width: MediaQuery.of(context) + .size + .width * + 0.07, + child: Text( + '${model.leagueTableEntries[index].position}.', + style: + TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context) + .size + .width * + 0.35, + child: Row( + children: [ + Container( + width: 16, + child: CachedNetworkImage( + imageUrl: model + .leagueTableEntries[ + index] + .teamLogo, + placeholder: (BuildContext + context, + String + url) => + Icon(MyFlutterApp + .football)), + ), + Text( + '${model.leagueTableEntries[index].teamName}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ], + ), + ), + Container( + width: MediaQuery.of(context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].matchesPlayed}', + style: + TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].wins}', + style: + TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].draws}', + style: + TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].loses}', + style: + TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].points}', + style: + TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].goalsFor}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ), + + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].goalsAgainst}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ), + + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + '${model.leagueTableEntries[index].goalsFor - model.leagueTableEntries[index].goalsAgainst}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.center, + ), + ), + ], + ), + ); + }), + ), + ), + ), + ), + ], + ), + ), + ) + : PKCardPageSkeleton( + totalLines: 15, + ), + )); + } +} From 0a6f69039866b5b381bdcaa6c0f882c0c760e8fe Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Mon, 20 Jul 2020 00:32:18 +0530 Subject: [PATCH 26/49] Moved all scores to league screen and changed scores to matches with scores from favourite team only --- ios/Flutter/Generated 22.xcconfig | 10 + ios/Flutter/Generated 23.xcconfig | 10 + ios/Flutter/flutter_export_environment 23.sh | 11 + ios/Flutter/flutter_export_environment 24.sh | 11 + lib/commons/BottomNavbar.dart | 6 +- lib/commons/ScoreCard.dart | 70 +++--- lib/constants.dart | 1 + lib/screens/HomeScreen.dart | 1 + lib/screens/LeagueTableScreen.dart | 21 +- lib/screens/ScoreScreen.dart | 155 +------------ lib/services/CustomRouter.dart | 4 +- lib/widgets/AllScores.dart | 214 +++++++++++------- lib/widgets/FavouriteScoresPast.dart | 132 +++++++++++ ...ores.dart => FavouriteScoresUpcoming.dart} | 13 +- lib/widgets/LeagueDropdown.dart | 34 +-- lib/widgets/LeagueTableWiget.dart | 208 +++++++++-------- lib/widgets/SettingsDialog.dart | 53 +---- pubspec.lock | 7 + pubspec.yaml | 1 + 19 files changed, 527 insertions(+), 435 deletions(-) create mode 100644 ios/Flutter/Generated 22.xcconfig create mode 100644 ios/Flutter/Generated 23.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 23.sh create mode 100755 ios/Flutter/flutter_export_environment 24.sh create mode 100644 lib/widgets/FavouriteScoresPast.dart rename lib/widgets/{FavouriteScores.dart => FavouriteScoresUpcoming.dart} (89%) diff --git a/ios/Flutter/Generated 22.xcconfig b/ios/Flutter/Generated 22.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 22.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/Generated 23.xcconfig b/ios/Flutter/Generated 23.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 23.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 23.sh b/ios/Flutter/flutter_export_environment 23.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 23.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/ios/Flutter/flutter_export_environment 24.sh b/ios/Flutter/flutter_export_environment 24.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 24.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/commons/BottomNavbar.dart b/lib/commons/BottomNavbar.dart index 31de0bb..fa97f5b 100644 --- a/lib/commons/BottomNavbar.dart +++ b/lib/commons/BottomNavbar.dart @@ -7,7 +7,7 @@ class BottomNavbar extends StatelessWidget { fontWeight: FontWeight.w400, color: Colors.black, ); - final List routes = ['/home', '/score', '/table', '/news', '/login']; + final List routes = ['/home', '/score', '/league', '/news', '/login']; Widget build(BuildContext context){ final List bottomNavbarItems = [ new BottomNavigationBarItem( @@ -18,12 +18,12 @@ class BottomNavbar extends StatelessWidget { new BottomNavigationBarItem( activeIcon: Icon(MyFlutterApp.score, color: Colors.orange,), icon: Icon(MyFlutterApp.score), - title: Text('Score', style: _bottomNavBarStyle,) + title: Text('Matches', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( activeIcon: Icon(Icons.table_chart, color: Colors.orange,), icon: Icon(Icons.table_chart), - title: Text('Table', style: _bottomNavBarStyle,) + title: Text('League', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( activeIcon: Icon(MyFlutterApp.news, color: Colors.orange,), diff --git a/lib/commons/ScoreCard.dart b/lib/commons/ScoreCard.dart index b08868f..4a3d906 100644 --- a/lib/commons/ScoreCard.dart +++ b/lib/commons/ScoreCard.dart @@ -94,23 +94,26 @@ class _ScoreCardState extends State with TickerProviderStateMixin { const EdgeInsets.symmetric(horizontal: 16.0), child: Row( children: [ - Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: - const EdgeInsets.only(bottom: 4.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: widget.score.homeTeamLogo, - placeholder: - (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - ), - FittedBox(child: Text(widget.score.homeTeam)) - ], + Container( + width: MediaQuery.of(context).size.width * 0.2, + child: Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: + const EdgeInsets.only(bottom: 4.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.homeTeamLogo, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + ), + FittedBox(child: Text(widget.score.homeTeam), fit: BoxFit.fitWidth,) + ], + ), ), Expanded( child: Row( @@ -130,21 +133,24 @@ class _ScoreCardState extends State with TickerProviderStateMixin { ], ), ), - Column( - children: [ - Padding( - padding: - const EdgeInsets.only(bottom: 8.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: widget.score.awayTeamLogo, - placeholder: - (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - ), - FittedBox(child: Text(widget.score.awayTeam)) - ], + Container( + width: MediaQuery.of(context).size.width * 0.2, + child: Column( + children: [ + Padding( + padding: + const EdgeInsets.only(bottom: 8.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.awayTeamLogo, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + ), + FittedBox(child: Text(widget.score.awayTeam), fit: BoxFit.fitWidth,) + ], + ), ) ], ), diff --git a/lib/constants.dart b/lib/constants.dart index 967990b..4626fce 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -47,6 +47,7 @@ final Map leagues = { }, }; + int dayDifference({DateTime date_time1, DateTime date_time2}) { final date1 = DateTime(date_time1.year, date_time1.month, date_time1.day); final date2 = DateTime(date_time2.year, date_time2.month, date_time2.day); diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 980a189..c6965c9 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -106,6 +106,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { } } else { score = latestScore; + caption = 'Latest Match'; } } else { score = liveMatch; diff --git a/lib/screens/LeagueTableScreen.dart b/lib/screens/LeagueTableScreen.dart index 581b5b5..0de0d4c 100644 --- a/lib/screens/LeagueTableScreen.dart +++ b/lib/screens/LeagueTableScreen.dart @@ -3,6 +3,7 @@ import 'package:provider/provider.dart'; import '../Provider/AppProvider.dart'; import '../commons/BottomNavbar.dart'; import '../widgets/LeagueTableWiget.dart'; +import '../widgets/AllScores.dart'; class LeagueTableScreen extends StatefulWidget { @override @@ -15,7 +16,7 @@ class _LeagueTableScreenState extends State @override void initState() { - _tabController = TabController(vsync: this, length: 2); + _tabController = TabController(vsync: this, length: 3); } @override @@ -23,26 +24,35 @@ class _LeagueTableScreenState extends State final AppProvider appProvider = Provider.of(context); return Scaffold( bottomNavigationBar: BottomNavbar(), - backgroundColor: Color(0xfff1f1f1), appBar: PreferredSize( preferredSize: Size.fromHeight(100.0), child: AppBar( leading: Container(), backgroundColor: Theme.of(context).primaryColor, title: Text( - 'League Stats', + 'League', style: TextStyle(color: Colors.white), ), bottom: TabBar( controller: _tabController, tabs: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + 'Matchday', + style: TextStyle( + color: Colors.white, + fontSize: 15, + fontWeight: FontWeight.w400), + ), + ), Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Text( 'Table', style: TextStyle( color: Colors.white, - fontSize: 18, + fontSize: 15, fontWeight: FontWeight.w400), ), ), @@ -52,7 +62,7 @@ class _LeagueTableScreenState extends State 'Top Scorer', style: TextStyle( color: Colors.white, - fontSize: 18, + fontSize: 15, fontWeight: FontWeight.w400), ), ) @@ -64,6 +74,7 @@ class _LeagueTableScreenState extends State body: TabBarView( controller: _tabController, children: [ + AllScores(), LeagueTableWidget(), Container() ], diff --git a/lib/screens/ScoreScreen.dart b/lib/screens/ScoreScreen.dart index b2cb8c6..5001246 100644 --- a/lib/screens/ScoreScreen.dart +++ b/lib/screens/ScoreScreen.dart @@ -5,7 +5,9 @@ import '../commons/BottomNavbar.dart'; import '../commons/custom_icons.dart'; import '../services/LocalStorage.dart'; import '../widgets/AllScores.dart'; -import '../widgets/FavouriteScores.dart'; +import '../widgets/FavouriteScoresPast.dart'; +import '../widgets/FavouriteScoresUpcoming.dart'; + class ScoreScreen extends StatefulWidget { @override @@ -16,7 +18,6 @@ class _ScoreScreenState extends State with TickerProviderStateMixin { TabController _tabController; String teamName; - String leagueName; @override void initState() { super.initState(); @@ -41,7 +42,7 @@ class _ScoreScreenState extends State leading: Container(), backgroundColor: Theme.of(context).primaryColor, title: Text( - 'Scores', + '$teamName', style: TextStyle(color: Colors.white), ), bottom: TabBar( @@ -50,7 +51,7 @@ class _ScoreScreenState extends State Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Text( - appProvider.selectedLeague, + 'Latest', style: TextStyle( color: Colors.white, fontSize: 18, @@ -60,7 +61,7 @@ class _ScoreScreenState extends State Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Text( - '$teamName', + 'Upcoming', style: TextStyle( color: Colors.white, fontSize: 18, @@ -75,148 +76,8 @@ class _ScoreScreenState extends State body: TabBarView( controller: _tabController, children: [ - AllScores(), - FavouriteScores() - ], - )); - } - - Widget scorers() { - return Padding( - padding: EdgeInsets.symmetric(horizontal: 16.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only(right: 2.0), - child: Text( - 'Benzema 4', - style: - TextStyle(color: Color(0xff808080), fontSize: 12), - ), - ), - Icon(MyFlutterApp.football, size: 14), - ], - ), - Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only(right: 2.0), - child: Text( - 'Ramos 35', - style: - TextStyle(color: Color(0xff808080), fontSize: 12), - ), - ), - Icon(MyFlutterApp.football, size: 14), - ], - ), - Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only(right: 2.0), - child: Text( - 'Modric 48', - style: - TextStyle(color: Color(0xff808080), fontSize: 12), - ), - ), - Icon(MyFlutterApp.football, size: 14), - ], - ), - Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only(right: 2.0), - child: Text( - 'Vinicius 74\'', - style: - TextStyle(color: Color(0xff808080), fontSize: 12), - ), - ), - Icon(MyFlutterApp.football, size: 14), - ], - ), - Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only(right: 2.0), - child: Text( - 'Mariano 81', - style: - TextStyle(color: Color(0xff808080), fontSize: 12), - ), - ), - Icon(MyFlutterApp.football, size: 14), - ], - ) - ], - ), - Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Icon(MyFlutterApp.football, size: 14), - Padding( - padding: EdgeInsets.only(left: 2.0), - child: Text( - 'Messi 12', - style: - TextStyle(color: Color(0xff808080), fontSize: 12), - )), - ], - ), - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Icon(MyFlutterApp.football, size: 14), - Padding( - padding: EdgeInsets.only(left: 2.0), - child: Text( - 'Messi 15', - style: - TextStyle(color: Color(0xff808080), fontSize: 12), - )), - ], - ), - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Icon(MyFlutterApp.football, size: 14), - Padding( - padding: EdgeInsets.only(left: 2.0), - child: Text( - 'Suarez 43', - style: - TextStyle(color: Color(0xff808080), fontSize: 12), - )), - ], - ), - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Icon(MyFlutterApp.football, size: 14), - Padding( - padding: EdgeInsets.only(left: 2.0), - child: Text( - 'Vidal 67', - style: - TextStyle(color: Color(0xff808080), fontSize: 12), - )), - ], - ) - ], - ) + FavouriteScoresPast(), + FavouriteScoresUpcoming() ], )); } diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index 855402f..10520e9 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -15,7 +15,7 @@ class Router { final List validRoutes = [ '/home', '/score', - '/table', + '/league', '/news', '/login', '/newsarticle', @@ -59,7 +59,7 @@ class Router { message: favouriteTeamMessage, ), '/score': ScoreScreen(), - '/table': LeagueTableScreen(), + '/league': LeagueTableScreen(), '/news': NewsScreen(), '/login': LoginScreen(), '/newsarticle': NewsArticleScreen( diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index dca20a5..ed4719c 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -7,6 +7,8 @@ import '../models/Score.dart'; import '../commons/ScoreCard.dart'; import 'SettingsDialog.dart'; import '../constants.dart'; +import '../widgets/LeagueDropdown.dart'; +import '../Provider/AppProvider.dart'; class AllScores extends StatefulWidget { @override @@ -18,6 +20,12 @@ class _AllScoresState extends State { int _lastRetrievedLindex; int _totalNoOfScores; List _scores; + List leaguesItems = leagues.entries + .map>((entry) => DropdownMenuItem( + value: entry.key, + child: Text(entry.key), + )) + .toList(); @override void initState() { @@ -25,9 +33,17 @@ class _AllScoresState extends State { final AppProvider appProvider = Provider.of(context, listen: false); if (appProvider.leagueWiseScores == null) { - appProvider.loadLeagueWiseScores().whenComplete(() { - _setScores(appProvider); - }); + if (appProvider.selectedLeague == null) { + appProvider.loadLeagueWiseScores().whenComplete(() { + _setScores(appProvider); + }); + } else { + appProvider + .loadLeagueWiseScores(leagueName: appProvider.selectedLeague) + .whenComplete(() { + _setScores(appProvider); + }); + } } else { _setScores(appProvider); } @@ -41,90 +57,122 @@ class _AllScoresState extends State { @override Widget build(BuildContext context) { - final AppProvider appProvider = Provider.of(context); - return Scaffold( - floatingActionButton: FloatingActionButton( - child: Icon(Icons.settings), - backgroundColor: Theme.of(context).primaryColor, - onPressed: () { - onSettingPressed(); - }, - ), - body: SingleChildScrollView( - controller: _scrollController, - child: Container( - margin: EdgeInsets.only(top: 10.0), - child: (appProvider.leagueWiseScores != null && _scores != null) - ? ListView.builder( - shrinkWrap: true, - itemCount: _lastRetrievedLindex + 2, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - if (index == _lastRetrievedLindex + 1 ) { - return index == _totalNoOfScores ? Container() : Padding( - padding: const EdgeInsets.only(bottom: 16.0), - child: SizedBox( - height: 40, - child: Chip( - elevation: 2, - backgroundColor: Colors.white, - avatar: CircleAvatar( - backgroundColor: Colors.white, - child: Icon(Icons.arrow_upward), - ), - label: Text( - 'Swipe up to load more', - style: TextStyle( - fontSize: 14, fontWeight: FontWeight.w300), - ), - ), - ), - ); - } - final Score score = _scores[index]; - if (index != 0 && - dayDifference( - date_time1: score.date_time, - date_time2: _scores[index - 1].date_time) == - 0) { - return ScoreCard( - score: score, - ); - } else { - return Padding( - padding: EdgeInsets.only(top: 12.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, + return Consumer( + builder: (context, model, child) => SingleChildScrollView( + controller: _scrollController, + child: Container( + margin: EdgeInsets.only(top: 10.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only( + left: 8.0, right: 8.0, top: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Padding( - padding: - const EdgeInsets.symmetric(horizontal: 12.0), - child: Text( - '${convertDateTime(date_time: score.date_time)}', - style: TextStyle(fontSize: 20), - ), + LeagueDropdown( + items: leaguesItems, + selectedLeague: model.selectedLeague, + backgroundColor: Color(0xfffafafa), + fontColor: Colors.black, + purpose: "score", ), - ScoreCard( - score: score, + FlatButton( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Icon(Icons.filter_list), + Text('Filter') + ], + ), + color: Color(0xfffafafa), + onPressed: () { + onSettingPressed(); + }, ) ], ), - ); - } - }) - : ListView.builder( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: 10, - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }), - ), - ), - ); + ), + (model.leagueWiseScores != null && _scores != null) + ? ListView.builder( + shrinkWrap: true, + itemCount: _lastRetrievedLindex + 2, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + if (index == _lastRetrievedLindex + 1) { + return index == _totalNoOfScores + ? Container() + : Padding( + padding: const EdgeInsets.only( + bottom: 16.0), + child: SizedBox( + height: 40, + child: Chip( + elevation: 2, + backgroundColor: Colors.white, + avatar: CircleAvatar( + backgroundColor: Colors.white, + child: Icon(Icons.arrow_upward), + ), + label: Text( + 'Swipe up to load more', + style: TextStyle( + fontSize: 14, + fontWeight: + FontWeight.w300), + ), + ), + ), + ); + } + final Score score = _scores[index]; + if (index != 0 && + dayDifference( + date_time1: score.date_time, + date_time2: + _scores[index - 1].date_time) == + 0) { + return ScoreCard( + score: score, + ); + } else { + return Padding( + padding: EdgeInsets.only(top: 12.0), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 12.0), + child: Text( + '${convertDateTime(date_time: score.date_time)}', + style: TextStyle(fontSize: 20), + ), + ), + ScoreCard( + score: score, + ) + ], + ), + ); + } + }) + : ListView.builder( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), + ], + ), + ), + )); } void _getMoreScores(List scores) { @@ -172,7 +220,7 @@ class _AllScoresState extends State { context: context, builder: (BuildContext context) { return Container( - height: 250, + height: 150, child: SettingsDialog(), ); }); diff --git a/lib/widgets/FavouriteScoresPast.dart b/lib/widgets/FavouriteScoresPast.dart new file mode 100644 index 0000000..54d110f --- /dev/null +++ b/lib/widgets/FavouriteScoresPast.dart @@ -0,0 +1,132 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:pk_skeleton/pk_skeleton.dart'; +import 'package:provider/provider.dart'; +import '../Provider/AppProvider.dart'; +import '../models/Score.dart'; +import '../commons/ScoreCard.dart'; + +class FavouriteScoresPast extends StatefulWidget { + @override + _FavouriteScoresPastState createState() => _FavouriteScoresPastState(); +} + +class _FavouriteScoresPastState extends State { + ScrollController _scrollController = ScrollController(); + int _lastRetrievedLindex; + int _totalNoOfScores; + List _scores; + @override + void initState() { + super.initState(); + final AppProvider appProvider = + Provider.of(context, listen: false); + if (appProvider.favouriteTeamScores == null) { + appProvider.loadFavouriteScores().whenComplete(() { + _setScores(appProvider); + }); + } else { + _setScores(appProvider); + } + } + + @override + void dispose() { + super.dispose(); + _scrollController.dispose(); + } + + @override + Widget build(BuildContext context) { + final AppProvider appProvider = Provider.of(context); + return SingleChildScrollView( + controller: _scrollController, + child: Container( + margin: EdgeInsets.only(top: 30.0), + child: _scores != null + ? ListView.builder( + shrinkWrap: true, + itemCount: _lastRetrievedLindex + 2, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + if (index == _lastRetrievedLindex + 1) { + return index == _totalNoOfScores + ? Container() + : Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: SizedBox( + height: 40, + child: Chip( + elevation: 2, + backgroundColor: Colors.white, + avatar: CircleAvatar( + backgroundColor: Colors.white, + child: Icon(Icons.arrow_upward), + ), + label: Text( + 'Swipe up to load more', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w300), + ), + ), + ), + ); + } + final Score score = _scores[index]; + return ScoreCard( + score: score, + ); + }) + : ListView.builder( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), + ), + ); + } + + void _getMoreScores(List scores) { + setState(() { + if (_lastRetrievedLindex < (_totalNoOfScores - 11)) { + _scores.addAll(scores.sublist( + _lastRetrievedLindex + 1, _lastRetrievedLindex + 11)); + _lastRetrievedLindex += 10; + } else { + _scores.addAll(scores.sublist(_lastRetrievedLindex + 1)); + _lastRetrievedLindex = _totalNoOfScores - 1; + } + }); + } + + List _setScores(AppProvider appProvider) { + List favouriteTeamScores = appProvider.favouriteTeamScores + .where((score) => + score.date_time.difference(DateTime.now()).inSeconds <= 0) + .toList(); + _totalNoOfScores = favouriteTeamScores.length; + setState(() { + if (_totalNoOfScores > 10) { + _scores = favouriteTeamScores.sublist(0, 10); + _lastRetrievedLindex = 9; + } else { + _scores = favouriteTeamScores; + _lastRetrievedLindex = _totalNoOfScores - 1; + } + }); + _scrollController.addListener(() { + if ((_scrollController.position.maxScrollExtent - + _scrollController.position.pixels == + 0.0) && + _lastRetrievedLindex < _totalNoOfScores - 1) { + _getMoreScores(favouriteTeamScores); + } + }); + } +} diff --git a/lib/widgets/FavouriteScores.dart b/lib/widgets/FavouriteScoresUpcoming.dart similarity index 89% rename from lib/widgets/FavouriteScores.dart rename to lib/widgets/FavouriteScoresUpcoming.dart index 0828b9e..f62afd6 100644 --- a/lib/widgets/FavouriteScores.dart +++ b/lib/widgets/FavouriteScoresUpcoming.dart @@ -6,12 +6,12 @@ import '../Provider/AppProvider.dart'; import '../models/Score.dart'; import '../commons/ScoreCard.dart'; -class FavouriteScores extends StatefulWidget { +class FavouriteScoresUpcoming extends StatefulWidget { @override - _FavouriteScoresState createState() => _FavouriteScoresState(); + _FavouriteScoresUpcomingState createState() => _FavouriteScoresUpcomingState(); } -class _FavouriteScoresState extends State { +class _FavouriteScoresUpcomingState extends State { ScrollController _scrollController = ScrollController(); int _lastRetrievedLindex; int _totalNoOfScores; @@ -73,7 +73,7 @@ class _FavouriteScoresState extends State { ); }) : ListView.builder( - shrinkWrap: true, + shrinkWrap: true, physics: NeverScrollableScrollPhysics(), itemCount: 10, itemBuilder: (BuildContext context, int index) { @@ -100,7 +100,10 @@ class _FavouriteScoresState extends State { } List _setScores(AppProvider appProvider) { - final List favouriteTeamScores = appProvider.favouriteTeamScores; + final List favouriteTeamScores = appProvider.favouriteTeamScores.where((score) => score.date_time.difference(DateTime.now()).inSeconds > 0).toList(); + favouriteTeamScores.sort((a, b) { + return a.date_time.compareTo(b.date_time); + }); _totalNoOfScores = favouriteTeamScores.length; setState(() { if (_totalNoOfScores > 10) { diff --git a/lib/widgets/LeagueDropdown.dart b/lib/widgets/LeagueDropdown.dart index f83d3f7..69946c4 100644 --- a/lib/widgets/LeagueDropdown.dart +++ b/lib/widgets/LeagueDropdown.dart @@ -4,9 +4,11 @@ import '../Provider/AppProvider.dart'; class LeagueDropdown extends StatefulWidget { final List items; - Function(String) onChange; String selectedLeague; - LeagueDropdown({this.items, this.onChange, this.selectedLeague}); + Color backgroundColor; + Color fontColor; + String purpose; + LeagueDropdown({this.items, this.selectedLeague, this.purpose, this.backgroundColor, this.fontColor}); @override _LeagueDropdownState createState() => _LeagueDropdownState(); } @@ -16,28 +18,34 @@ class _LeagueDropdownState extends State { return Consumer( builder: (context, model, child) => Theme( data: Theme.of(context) - .copyWith(canvasColor: Theme.of(context).primaryColor), + .copyWith(canvasColor: widget.backgroundColor), child: Container( decoration: BoxDecoration( - border: Border.all( - color: Theme.of(context).primaryColor, width: 1), - color: Theme.of(context).primaryColor, + color: widget.backgroundColor, ), child: DropdownButtonHideUnderline( child: ButtonTheme( alignedDropdown: true, child: DropdownButton( - iconEnabledColor: Colors.white, + iconEnabledColor: widget.fontColor, value: widget.selectedLeague, items: widget.items, - style: TextStyle(color: Colors.white, fontSize: 11), - onChanged: (widget.onChange != null) - ? widget.onChange - : (String value) async { + style: TextStyle(color: widget.fontColor, fontSize: 11, fontWeight: FontWeight.w500), + onChanged: (String value) async { model.selectedLeague = value; model.leagueTableEntries = null; - await model.loadLeagueTable( - leagueName: value); + model.leagueWiseScores = null; + if(widget.purpose == "table") { + await model.loadLeagueTable( + leagueName: value); + await model.loadLeagueWiseScores(leagueName: value); + } + if(widget.purpose == "score") { + await model.loadLeagueWiseScores(leagueName: value); + await model.loadLeagueTable( + leagueName: value); + Navigator.of(context).pushReplacementNamed('/league'); + } }, ), ), diff --git a/lib/widgets/LeagueTableWiget.dart b/lib/widgets/LeagueTableWiget.dart index 0e01fe2..d4a0e4a 100644 --- a/lib/widgets/LeagueTableWiget.dart +++ b/lib/widgets/LeagueTableWiget.dart @@ -6,17 +6,19 @@ import '../Provider/AppProvider.dart'; import '../commons/custom_icons.dart'; import '../constants.dart'; import '../widgets/LeagueDropdown.dart'; +import 'package:auto_size_text/auto_size_text.dart'; + class LeagueTableWidget extends StatefulWidget { @override _LeagueTableWidgetState createState() => _LeagueTableWidgetState(); } class _LeagueTableWidgetState extends State { - List leaguesIems = leagues.entries + List leaguesItems = leagues.entries .map>((entry) => DropdownMenuItem( - value: entry.key, - child: Text(entry.key), - )) + value: entry.key, + child: Text(entry.key), + )) .toList(); @override @@ -24,7 +26,12 @@ class _LeagueTableWidgetState extends State { final AppProvider appProvider = Provider.of(context, listen: false); if (appProvider.leagueTableEntries == null) { - appProvider.loadLeagueTable(); + if(appProvider.selectedLeague == null) { + appProvider.loadLeagueTable(); + } + else { + appProvider.loadLeagueTable(leagueName: appProvider.selectedLeague); + } } super.initState(); } @@ -33,32 +40,25 @@ class _LeagueTableWidgetState extends State { Widget build(BuildContext context) { return Consumer( builder: (context, model, child) => SingleChildScrollView( - child: model.leagueTableEntries != null - ? Container( + child: Container( margin: EdgeInsets.only(top: 10.0), child: Padding( padding: const EdgeInsets.all(4.0), child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - LeagueDropdown( - items: leaguesIems, - selectedLeague: model.selectedLeague, - ), Padding( - padding: const EdgeInsets.symmetric(vertical: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - 'League Standing', - style: TextStyle( - fontSize: 20, - fontWeight: FontWeight.w500), - ), - ], + padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0), + child: LeagueDropdown( + items: leaguesItems, + selectedLeague: model.selectedLeague, + backgroundColor: Color(0xfffafafa), + fontColor: Colors.black, + purpose: "table", ), ), - Card( + model.leagueTableEntries != null + ? Card( child: Padding( padding: const EdgeInsets.all(8.0), child: SingleChildScrollView( @@ -92,13 +92,13 @@ class _LeagueTableWidgetState extends State { .width * 0.35, child: Text( - 'Team', + 'Club', style: TextStyle( fontSize: 15, color: Color( 0X8A000000)), textAlign: - TextAlign.center, + TextAlign.left, )), Container( width: MediaQuery.of( @@ -177,9 +177,9 @@ class _LeagueTableWidgetState extends State { )), Container( width: MediaQuery.of( - context) - .size - .width * + context) + .size + .width * 0.1, child: Text( 'GF', @@ -188,13 +188,13 @@ class _LeagueTableWidgetState extends State { color: Color( 0X8A000000)), textAlign: - TextAlign.center, + TextAlign.center, )), Container( width: MediaQuery.of( - context) - .size - .width * + context) + .size + .width * 0.1, child: Text( 'GA', @@ -203,13 +203,13 @@ class _LeagueTableWidgetState extends State { color: Color( 0X8A000000)), textAlign: - TextAlign.center, + TextAlign.center, )), Container( width: MediaQuery.of( - context) - .size - .width * + context) + .size + .width * 0.1, child: Text( 'GD', @@ -218,7 +218,7 @@ class _LeagueTableWidgetState extends State { color: Color( 0X8A000000)), textAlign: - TextAlign.center, + TextAlign.center, )) ], ), @@ -261,15 +261,28 @@ class _LeagueTableWidgetState extends State { String url) => Icon(MyFlutterApp - .football)), + .football, size: 16,),), ), - Text( - '${model.leagueTableEntries[index].teamName}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign - .center, + Expanded( + child: AutoSizeText( + '${model.leagueTableEntries[index].teamName}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.left, + maxLines: 1, + overflowReplacement: + FittedBox( + fit: BoxFit.fitWidth, + child: Text( + '${model.leagueTableEntries[index].teamName}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.left, + ), + ), + ), ), ], ), @@ -346,46 +359,44 @@ class _LeagueTableWidgetState extends State { ), Container( width: MediaQuery.of( - context) - .size - .width * + context) + .size + .width * 0.1, child: Text( '${model.leagueTableEntries[index].goalsFor}', style: TextStyle( fontSize: 15), textAlign: - TextAlign.center, + TextAlign.center, ), ), - Container( width: MediaQuery.of( - context) - .size - .width * + context) + .size + .width * 0.1, child: Text( '${model.leagueTableEntries[index].goalsAgainst}', style: TextStyle( fontSize: 15), textAlign: - TextAlign.center, + TextAlign.center, ), ), - Container( width: MediaQuery.of( - context) - .size - .width * + context) + .size + .width * 0.1, child: Text( '${model.leagueTableEntries[index].goalsFor - model.leagueTableEntries[index].goalsAgainst}', style: TextStyle( fontSize: 15), textAlign: - TextAlign.center, + TextAlign.center, ), ), ], @@ -417,6 +428,8 @@ class _LeagueTableWidgetState extends State { .width * 0.35, child: Row( + mainAxisAlignment: + MainAxisAlignment.start, children: [ Container( width: 16, @@ -430,14 +443,28 @@ class _LeagueTableWidgetState extends State { String url) => Icon(MyFlutterApp - .football)), + .football, size: 16,)), ), - Text( - '${model.leagueTableEntries[index].teamName}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, + Expanded( + child: AutoSizeText( + '${model.leagueTableEntries[index].teamName}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.left, + maxLines: 1, + overflowReplacement: + FittedBox( + fit: BoxFit.fitWidth, + child: Text( + '${model.leagueTableEntries[index].teamName}', + style: TextStyle( + fontSize: 15), + textAlign: + TextAlign.left, + ), + ), + ), ), ], ), @@ -503,47 +530,39 @@ class _LeagueTableWidgetState extends State { ), ), Container( - width: MediaQuery.of( - context) - .size - .width * + width: MediaQuery.of(context) + .size + .width * 0.1, child: Text( '${model.leagueTableEntries[index].goalsFor}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, + style: + TextStyle(fontSize: 15), + textAlign: TextAlign.center, ), ), - Container( - width: MediaQuery.of( - context) - .size - .width * + width: MediaQuery.of(context) + .size + .width * 0.1, child: Text( '${model.leagueTableEntries[index].goalsAgainst}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, + style: + TextStyle(fontSize: 15), + textAlign: TextAlign.center, ), ), - Container( - width: MediaQuery.of( - context) - .size - .width * + width: MediaQuery.of(context) + .size + .width * 0.1, child: Text( '${model.leagueTableEntries[index].goalsFor - model.leagueTableEntries[index].goalsAgainst}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, + style: + TextStyle(fontSize: 15), + textAlign: TextAlign.center, ), ), ], @@ -553,13 +572,12 @@ class _LeagueTableWidgetState extends State { ), ), ), + ) : PKCardPageSkeleton( + totalLines: 15, ), ], ), ), - ) - : PKCardPageSkeleton( - totalLines: 15, ), )); } diff --git a/lib/widgets/SettingsDialog.dart b/lib/widgets/SettingsDialog.dart index 1b1eb89..55af854 100644 --- a/lib/widgets/SettingsDialog.dart +++ b/lib/widgets/SettingsDialog.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; -import '../widgets/LeagueDropdown.dart'; import '../constants.dart'; import '../Provider/AppProvider.dart'; @@ -11,14 +10,7 @@ class SettingsDialog extends StatefulWidget { } class _SettingsDialogState extends State { - String dropdownValue; DateTime startDate, endDate; - List leaguesIems = leagues.entries - .map>((entry) => DropdownMenuItem( - value: entry.key, - child: Text(entry.key), - )) - .toList(); @override void initState() { @@ -27,7 +19,6 @@ class _SettingsDialogState extends State { DateTime now = DateTime.now(); now = DateTime(now.year, now.month, now.day); setState(() { - dropdownValue = appProvider.selectedLeague; startDate = dayDifference( date_time1: getFirstAndLastDate(appProvider.leagueWiseScores)["firstDate"], date_time2: appProvider.startDate) < @@ -50,26 +41,7 @@ class _SettingsDialogState extends State { builder: (context, model, child) => Column( children: [ Padding( - padding: const EdgeInsets.all(8.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - 'Select League:', - style: TextStyle(fontSize: 18), - ), - LeagueDropdown( - items: leaguesIems, - onChange: onDropdownChange, - selectedLeague: dropdownValue, - ), - ], - ), - ), - Divider(thickness: 0.7), - Padding( - padding: const EdgeInsets.all(8.0), + padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 12.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ @@ -150,7 +122,6 @@ class _SettingsDialogState extends State { ], ), ), - Divider(thickness: 0.7), Padding( padding: const EdgeInsets.all(8.0), child: Row( @@ -169,25 +140,13 @@ class _SettingsDialogState extends State { style: TextStyle(color: Colors.white), ), onPressed: () async { - if (model.selectedLeague == dropdownValue && - model.startDate == startDate && + if (model.startDate == startDate && model.endDate == endDate) { Navigator.of(context).pop(); } else { - if (model.selectedLeague != dropdownValue ) { - model.selectedLeague = dropdownValue; - model.startDate = startDate; - model.endDate = endDate; - model.leagueWiseScores = null; - await model.loadLeagueWiseScores( - leagueName: dropdownValue); - Navigator.of(context).pushReplacementNamed('/score'); - } - else { model.startDate = startDate; model.endDate = endDate; - Navigator.of(context).pushReplacementNamed('/score'); - } + Navigator.of(context).pushReplacementNamed('/league'); } }, ), @@ -199,10 +158,4 @@ class _SettingsDialogState extends State { ), ); } - - void onDropdownChange(String value) { - setState(() { - dropdownValue = value; - }); - } } diff --git a/pubspec.lock b/pubspec.lock index 9af97fa..4509f15 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -22,6 +22,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.4.0" + auto_size_text: + dependency: "direct main" + description: + name: auto_size_text + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" boolean_selector: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 620c5ea..cefeca3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -36,6 +36,7 @@ dependencies: get_it: ^4.0.2 pull_to_refresh: ^1.5.7 intl: ^0.16.1 + auto_size_text: ^2.1.0 dev_dependencies: flutter_test: sdk: flutter From 5cd9b945268add8eae906f126e2e07d9d0ba391c Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Tue, 21 Jul 2020 11:43:06 +0530 Subject: [PATCH 27/49] Added player model and topscorer service --- assets/images/user-placeholder.jpg | Bin 0 -> 4981 bytes lib/models/Player.dart | 23 ++++++++++++++++++++++ lib/services/LeagueTableService.dart | 3 +++ lib/services/TopScorerService.dart | 28 +++++++++++++++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 assets/images/user-placeholder.jpg create mode 100644 lib/models/Player.dart create mode 100644 lib/services/TopScorerService.dart diff --git a/assets/images/user-placeholder.jpg b/assets/images/user-placeholder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2fb936bdc5a556ec5248fb567d232f47d8f7a3f3 GIT binary patch literal 4981 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 literal 0 HcmV?d00001 diff --git a/lib/models/Player.dart b/lib/models/Player.dart new file mode 100644 index 0000000..5e5a584 --- /dev/null +++ b/lib/models/Player.dart @@ -0,0 +1,23 @@ +class Player { + int rank; + int id; + String name; + String photoUrl; + int appearance; + int goals; + int penaltyGoals; + int assists; + String teamName; + String teamLogo; + Player({this.rank, this.id, this.name, this.photoUrl, this.appearance, this.goals, this.penaltyGoals, this.assists, this.teamName, this.teamLogo}); + Player.fromJson(Map unparsedJson) + : id = unparsedJson["player"]["id"], + name = unparsedJson["player"]["name"], + photoUrl = unparsedJson["player"]["photo"], + appearance = unparsedJson["statistics"]["games"]["appearences"], + goals = unparsedJson["statistics"]["goals"]["total"], + penaltyGoals = unparsedJson["statistics"]["penalty"]["scored"], + assists = unparsedJson["statistics"]["goals"]["assists"], + teamName = unparsedJson["statistics"]["team"]["name"], + teamLogo = unparsedJson["statistics"]["team"]["logo"]; +} \ No newline at end of file diff --git a/lib/services/LeagueTableService.dart b/lib/services/LeagueTableService.dart index b6cf520..79fa946 100644 --- a/lib/services/LeagueTableService.dart +++ b/lib/services/LeagueTableService.dart @@ -16,6 +16,9 @@ class LeagueTableService { _leagueTableEntries.add(LeagueTableEntry.fromJson(unparsedJson[i])); } } + _leagueTableEntries.sort((a,b) { + return a.position.compareTo(b.position); + }); return _leagueTableEntries; } on DioError catch (e) { return null; diff --git a/lib/services/TopScorerService.dart b/lib/services/TopScorerService.dart new file mode 100644 index 0000000..d4d92f0 --- /dev/null +++ b/lib/services/TopScorerService.dart @@ -0,0 +1,28 @@ +import '../models/Player.dart'; +import 'HttpService.dart'; +import 'package:dio/dio.dart'; + +class TopScorerService { + final Dio dio = HttpService.getApiClient(); + Future> fetchTopScorer({String leagueId}) async { + List topScorers = []; + try { + final response = await dio.get( + 'https://v3.football.api-sports.io/players/topscorers?season=2019&league=$leagueId'); + if (response.statusCode == 200) { + final unparsedJson = response.data['response'].toList(); + for (int i = 0; i < unparsedJson.length; i++) { + Player player = Player.fromJson(unparsedJson[i]); + player.rank = i + 1; + topScorers.add(player); + } + } + topScorers.sort((a, b) { + return a.rank.compareTo(b.rank); + }); + return topScorers; + } on DioError catch (e) { + return null; + } + } +} From e6eec1e32df07fc66d0df7470e228c35b5f86510 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Wed, 22 Jul 2020 01:52:00 +0530 Subject: [PATCH 28/49] Added firebase auth --- android/app/build.gradle | 2 + android/app/google-services.json | 48 ++ android/build.gradle | 1 + assets/images/google_logo.png | Bin 0 -> 4659 bytes lib/Provider/AppProvider.dart | 26 +- lib/commons/BottomNavbar.dart | 8 +- lib/constants.dart | 10 + lib/models/Player.dart | 12 +- lib/models/User.dart | 7 + lib/screens/DashboardScreen.dart | 40 ++ lib/screens/LeagueTableScreen.dart | 3 +- lib/services/CustomRouter.dart | 6 +- lib/services/GetItLocator.dart | 2 + lib/services/LoginService.dart | 43 ++ lib/widgets/AllScores.dart | 2 +- lib/widgets/LeagueDropdown.dart | 32 +- lib/widgets/LeagueTableWiget.dart | 810 +++++++++++------------------ lib/widgets/TopScorer.dart | 196 +++++++ pubspec.lock | 70 +++ pubspec.yaml | 2 + 20 files changed, 777 insertions(+), 543 deletions(-) create mode 100644 android/app/google-services.json create mode 100644 assets/images/google_logo.png create mode 100644 lib/models/User.dart create mode 100644 lib/screens/DashboardScreen.dart create mode 100644 lib/services/LoginService.dart create mode 100644 lib/widgets/TopScorer.dart diff --git a/android/app/build.gradle b/android/app/build.gradle index 71057c7..832cf4d 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -61,3 +61,5 @@ flutter { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" } + +apply plugin: 'com.google.gms.google-services' diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 0000000..39ca12f --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,48 @@ +{ + "project_info": { + "project_number": "941839892238", + "firebase_url": "https://football-mojo.firebaseio.com", + "project_id": "football-mojo", + "storage_bucket": "football-mojo.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:941839892238:android:cf75eb4875370f0cac215f", + "android_client_info": { + "package_name": "com.example.sportsmojo" + } + }, + "oauth_client": [ + { + "client_id": "941839892238-5brsr913u4pbe9cppcq6ch0s507msjjt.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.example.sportsmojo", + "certificate_hash": "6ab1580b9c5164660d0fed14658959d0002689c2" + } + }, + { + "client_id": "941839892238-156mnil47ubu5nmgvgpj64c5g7flg6vp.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyAvqa03yfFA8iiMuUdfvYUAiqPeLG4O_ek" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "941839892238-156mnil47ubu5nmgvgpj64c5g7flg6vp.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle index 3100ad2..4273368 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -8,6 +8,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.5.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath 'com.google.gms:google-services:4.3.3' } } diff --git a/assets/images/google_logo.png b/assets/images/google_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3c2f1107c36447c22b8160848eedebd87f4218ce GIT binary patch literal 4659 zcmZ`-WmME}u>NgOQcH-Wl$3xhjYup=Ez;fHA+^%6zzQoM(v7sVu5_~?g3<^I2uP!V zh=6om{`cGcaL;?@ea_4?&zCuK&YYPSI$Emaw-|2$06>mZQ_{OZ^o>Ok6W;uZM|k`V zK%Esd6#(G3MxZ|DIrYmzp z5ZXOaRRXU6dxf3lsQ^Hwj#N@G2>iZd8H6%$%(!0I?W|JQLnd*7qGo2)?CVKP(Kh%b zC9eDN4hnc9v!rOzk`b2z`}&4_KWJu?^XOheiR{8rOC$F^4r&j&&oOLI=v-Bm8C|jJ z5G32V(a`yyi)5R209jUL)v5mDl2ocAz-wV~w|%HtR#84(v~n``J3=4W;i0B|jG3@W zfUcUsdVv`QToe@r9$ZKOm891M#9)j)E=1mOX#JE^G5T^$y0-F8rS!D*h0^7+>eNE0 zA9Rix35-N8nZPv(;a^_eXHr1HsELrvkhd^Xs``?ug?nhN-iNTp^A(!scrb}NHya(A z5s_-4^pEPv5B}%Fthxq=FOYzB^y~DpDG7tI+tl&dxKCr8^H1!3@<<43ysxmw{PN-? zOV2GdUi;LVuN(GtP~#gF?$n~~`!1**2C63<3mS8vzsmBu#n}zjY6y}j5Sv6_jUd9; zx-NqegzYtnBN~BlykMU0 znmb&U&Qi~6e3wM$k>nKx@mYaQ&DJwSDgI4`JK@elgT-Cq@vJnl8CyS@$9OlI&1y-7 zqz;j`24ClHc7&x_sEFt~nBI0}Zs-m6Z)omZ*PpYxy3s-|0Ai4t^OqR?bG-4FU7Yj& z`(m4`@nilj3TdzyHy648cjkAHmZ83hc5pJ+2&2*8&^D&>#`?z8jv7TdB5prjR-KjU45i{e^3Qf(dfzsd6$;R7Jt?;zJ zn>9t+JT`7$-YimVcmlCmCZ`r+c3nbMrM=}e%5vt8)yQlgrpRUpyyuwmL_Yq0<*>K| zl}RdN1b^f$&A*o%54f$QJ1Tsu+2`|8#y zGsCA|ksT0+FW@5&T;;ASoh6zd=Dj zQ~3Qp;oJ`HD{~HM!F-WC^nqHu4E<(xacAgcn+E!gc~9mPg(xB zzPnX6xypf)5PU!)piTwNm7@2i)*&g3!VYpxmRH^W`Z$2a_0Q&P%v$Aii@{;AQ;r&f z1CInWF$EG8B1;Y{zp0ed=MMiRt3su6nI$z0`*fp!UOJ%{3F41wnRYhGXFAj0%+bV3 zS^Rm<<^WN9{>n%aLeMqvUu8c*aD9dNUFYJ=Mx7l`*+kcT%|xa*Rd%=ODIwTB!cg{y zL(}mxay*FRw+o8Vk)yyB2h!uNE^5siLG~%frM8p44TBAb*whRxiHek{-}i?OMs{-G zKmKD#&e0Ed!i`5HK`%Mnyn@Quv$Dh|%tC~JQ*n4e;k@+tU2)Ks9<`N2?_)wxR}6X} z=C*N%vLzK>$M->)S=x$D1ZD3^^@Su+q)18J&?0F=r!4hSsM)+j&kApXkBqxy<$k1% zRDpG>#HE~FI0%7B_U#&=Q2-B$5(0|~OX3qBZ*TVaKK$^vcz>E*i5X3^c*PRs@?ICe zD-1^Mt_hNRXB(^Dsw+M+`u!NDe%$pbfIiEyGX^Pgk=9!HW}7 zh>4jpZSW1(za+de4RaQd$Mm6JXHJQ zXmAOx6LW9X(;ebS!qFV)YPEdwrD(5#mC+9$CUogaqLoo8*(ou1SSy8>Ni3j&|IWoo zkTnW{M|?UJa|K6JZclxxNx}h6Akz+GuHW5zn@-xH{&wx$+gN{z;prw9GA&jsi`Hoj z7n%w$_%*#{@O~y1#bI}P2dCBfYc;OmTkaB(6xf>rlTn)IFn-t>G_&^^hWdS%+&?6w z3-jcr+x1^cH9jijK%YB3GxF*o0_N6&mF6SBcDP9vMem+cDJ_thu$@Y<{((Q8SwE@5_>VlIb zGT(FEdNXulv5q|Ky_TIJO5;M6RfCTI@kwiQVS9?tQ2ZQ5dFWtIbINGebzSB42w`@( z7J1TEeWnVkF^>I(aqd`Ax#lqw2IwI22f8|Q4B?8YW4&D!j1KAYpDrirhe-dIeX8dS z{yUUXa9B=`weVpc#6?)4lrfonL|;(dx_W3ls{1~}7NYMmBKnyk1TkE*tT}nu4{L0X zdUbp(MrO+Oo3y$pkwuTOtLdm?GZ;dJ&R#*5zmVE4jS*DwQ{3A4R(_A&mJOsm{FRG| zd?x5{+XbzR#Q5Kuscl;hj3qAG#mn>ljjNL@umvgs%J zAJ?T_r5AKW)M0)NT7zzz{tel3k|}>}KsGq7?_FXnPo=;Z5}-)hwcSN}-dh}P30Eud zv&Q&OE~{*VXC4sOkb<%*KcHHBsDWh5UzKC1)@6DaH~rc;*E}pX`>rH2M3EqpMfzn# zD$q}p35-{!*0I0oCg;&AvJW}poLr1?hvY>mG)h;-Z?HHq!fCG(DA?7ulmXuuGcWkU z(?aSbU7;*wv->nwY82I8q=)Ea`^(q)kK_|{ayupt^ir`-s>u3Nk<#R*N*u7l+FRV# zg$}PrN%{z@WWSbFC&ycpNW0^#xU#u!i8xNZ0=L&ADJt|Ff;6=bOa3edjUzs@ zoI+tIpWjg}B{&VVWo$}qCPD#rq$R}?LkX-fFl;USLz0i*P)RWJB-_$K9&-v9Fc=9V zMo+TFQAnvSMfRINh>Sp-9R3?y9FT+P>P2h%aNFxe!kiZl& z{{tPv*xqE$%=s&oD1w!1HW3ei*W+6^O@Qpz@Yiu5iq_GP^+bj6Mu;eELmtiR)_!1JrQJpxaHd% z=?m&Yf0TN?L+*y2zmsPJMm{_QGCO+@v7(H}k_%DV3*oa%{P;lo{#=GtLg?ABgKaQ5 zA}!G@xAc+6t|7^|W%AX}V-=nsF08Stxz5G9XN~Sm#eBS4pDd-?x>pP8T6ctj%`*wc zjxvE*>5zM9uCJFMbTlwNNLS;Yop@)C$HK>GY(OLj873qwU%mL6GpoIIM+=7P<~Oxp zPiKu;;D7)8wAtDv`sAwL;kRGH)Z8~dExu#zAxqfgB3?VJN;VmP+JZushx^ue*v~9m z(IAkMw~Qr6uTE;{vT84&8ZZaG-0XH2jR=r@kp8)b)9Ky9>r-Mv*@)BL?Km2-C9TS< z5H=PSyp&|xAZC7e%7#dO=kqr)h5az-2G+vT*=2_5E)@XW&+M`!EM6cMAdL~(d)qRf zpc>_Sn3Sz2(fBqU{0O83{e-kh0H<#*a-=?KHwJFLeBSkjs!%nI%M?fQQ?IBjVeBHkf9#7 z(QuZ4C;=K8&=-1?d$*vLxVD`#BV#ra{xeD^Pm=c1O)b?Jdb7s}G8|;v_KkJWCc|>? z*O49(e8J8%i@YI@JOt_<7@M2sq*4VhTcHJ|DZ+y*97-;aWy$VQ_L^C#+$~&e;-ZYN z_2u3hNYeS4L3xL+>6gg&fMLqV)s9pk%1GYI^6Pg}{cH^zi)09Ya$#N4@D_;L;sw2=7+?-Bs~c9Dw_7&_6dr&CuyKWw7e)i=CI(T^1rer zrt~)z_0F;M4K~$UBUm6Amqn(1lSR_HDgKJrxEnRzW{7Jzay#los%Z(FJ?r}!wyhd^ zZ_jHXj2|=eGzA}E=lVK6iS#(?ZO1_yWcWZ`LM3$kIA$uAIx{oqW-ACVo_%vtYRDX$ zloRoMJlxw&!+z!WmqV)EKuOMJ`-S+zXU}mG0;tIM4Ji9Qqk^O%>y7?(XG>MRKT!AtbWAlF zov!s{$g`UAt<_=7*pE%^=+*st!sN7f3f+FYm!@5`Nu)!&vq$f>k?R5V3~4y7RVu>Q z5F25i-|>{EFuuW+xZhC+ac4>>WzDabrrS7R-2!q#qAYz8@RR-&#NdN?80FUc^M^L) zzj?Y_J#dDb^GbzZi4#Y-+7g1fYiiBv4#gLw;}O>@Cl@t)0_(fPE$#qh7yLJl!%~~s z)X1d7-QAUzvhSzko09E1%nS%B1Nr3a!c_Gq=y(^DZ4S>-ZF_+O;YTi+PZpx~lup0Y zrbmkP;hc9?{6td~E=W;jF;{w=Vl>N!cBhN$#~zPtq0wX!GrnejqUhPDi0}<5Xki8E z`Bzk{%H~PQ0W3G0uT{W}&z!Bb3XFdN-R#={2MrmIFJOFAo1h$QQI68~zK%Blh`>eQf^Z2zVKD=^n6#L _favouriteTeamScores; + String _selectedLeague; + List _topScorers; NewsService _newsService = locator(); ScoreService _scoreService = locator(); LeagueTableService _leagueTableService = locator(); + TopScorerService _topScorerService = locator(); - String _selectedLeague; int get navbarIndex => _navbarIndex; String get selectedLeague => _selectedLeague; @@ -37,6 +41,7 @@ class AppProvider extends ChangeNotifier { DateTime get endDate => _endDate; List get leagueTableEntries => _leagueTableEntries; + List get topScorers => _topScorers; void set selectedLeague(String league) { _selectedLeague = league; @@ -83,6 +88,11 @@ class AppProvider extends ChangeNotifier { notifyListeners(); } + void set topScorers(List scorers) { + _topScorers = scorers; + notifyListeners(); + } + Future loadAllNews() async{ _newsList = await _newsService.fetchNews('football'); notifyListeners(); @@ -123,4 +133,18 @@ class AppProvider extends ChangeNotifier { } notifyListeners(); } + + Future loadTopScorers({String leagueName}) async { + if(leagueName == null) { + String storedLeagueId = await LocalStorage.getString('leagueId'); + _topScorers = await _topScorerService.fetchTopScorer(leagueId: storedLeagueId); + } + else { + String leagueId = '${leagues[leagueName]['id']}'; + _topScorers = await _topScorerService.fetchTopScorer(leagueId: leagueId); + } + notifyListeners(); + } + + } \ No newline at end of file diff --git a/lib/commons/BottomNavbar.dart b/lib/commons/BottomNavbar.dart index fa97f5b..f16db98 100644 --- a/lib/commons/BottomNavbar.dart +++ b/lib/commons/BottomNavbar.dart @@ -7,7 +7,7 @@ class BottomNavbar extends StatelessWidget { fontWeight: FontWeight.w400, color: Colors.black, ); - final List routes = ['/home', '/score', '/league', '/news', '/login']; + final List routes = ['/home', '/score', '/league', '/news', '/dashboard']; Widget build(BuildContext context){ final List bottomNavbarItems = [ new BottomNavigationBarItem( @@ -31,9 +31,9 @@ class BottomNavbar extends StatelessWidget { title: Text('News', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( - activeIcon: Icon(Icons.account_circle, color: Colors.orange,), - icon: Icon(Icons.account_circle), - title: Text('Login', style: _bottomNavBarStyle,) + activeIcon: Icon(Icons.dashboard, color: Colors.orange,), + icon: Icon(Icons.dashboard), + title: Text('Dasboard', style: _bottomNavBarStyle,) ) ]; return Consumer( diff --git a/lib/constants.dart b/lib/constants.dart index 4626fce..2307184 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -1,4 +1,5 @@ import 'package:sportsmojo/models/Score.dart'; +import 'package:flutter/material.dart'; final Map leagues = { "Bundesliga": { @@ -65,4 +66,13 @@ Map getFirstAndLastDate(List scores) { final lastDate = scores[0].date_time; dates["lastDate"] = DateTime(lastDate.year, lastDate.month, lastDate.day); return dates; +} + +List getLeagueItems() { + return leagues.entries + .map>((entry) => DropdownMenuItem( + value: entry.key, + child: Text(entry.key), + )) + .toList(); } \ No newline at end of file diff --git a/lib/models/Player.dart b/lib/models/Player.dart index 5e5a584..5fae148 100644 --- a/lib/models/Player.dart +++ b/lib/models/Player.dart @@ -14,10 +14,10 @@ class Player { : id = unparsedJson["player"]["id"], name = unparsedJson["player"]["name"], photoUrl = unparsedJson["player"]["photo"], - appearance = unparsedJson["statistics"]["games"]["appearences"], - goals = unparsedJson["statistics"]["goals"]["total"], - penaltyGoals = unparsedJson["statistics"]["penalty"]["scored"], - assists = unparsedJson["statistics"]["goals"]["assists"], - teamName = unparsedJson["statistics"]["team"]["name"], - teamLogo = unparsedJson["statistics"]["team"]["logo"]; + appearance = unparsedJson["statistics"][0]["games"]["appearences"] ?? 0, + goals = unparsedJson["statistics"][0]["goals"]["total"] ?? 0, + penaltyGoals = unparsedJson["statistics"][0]["penalty"]["scored"] ?? 0, + assists = unparsedJson["statistics"][0]["goals"]["assists"] ?? 0, + teamName = unparsedJson["statistics"][0]["team"]["name"], + teamLogo = unparsedJson["statistics"][0]["team"]["logo"]; } \ No newline at end of file diff --git a/lib/models/User.dart b/lib/models/User.dart new file mode 100644 index 0000000..bd52cab --- /dev/null +++ b/lib/models/User.dart @@ -0,0 +1,7 @@ + +class User { + String name; + String email; + String profilePic; + User({this.name, this.email, this.profilePic}); +} \ No newline at end of file diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart new file mode 100644 index 0000000..27a7bf4 --- /dev/null +++ b/lib/screens/DashboardScreen.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; +import '../services/LoginService.dart'; +import '../models/User.dart'; +import '../commons/BottomNavbar.dart'; + +class DashboardScreen extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + bottomNavigationBar: BottomNavbar(), + body: Container( + child: Center( + child: Container( + width: MediaQuery.of(context).size.width * 0.7, + child: RaisedButton( + onPressed: () async{ + final User user = await LoginService().signInWithGoogle(); + print('${user.email} ${user.name} ${user.profilePic}'); + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + color: Colors.white, + height: 30, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset('assets/images/google_logo.png'), + )), + Text('Sign in with Google', style: TextStyle(color: Colors.white),) + ], + ), + color: Color(0xff4285f4), + ), + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/LeagueTableScreen.dart b/lib/screens/LeagueTableScreen.dart index 0de0d4c..05b5fa7 100644 --- a/lib/screens/LeagueTableScreen.dart +++ b/lib/screens/LeagueTableScreen.dart @@ -4,6 +4,7 @@ import '../Provider/AppProvider.dart'; import '../commons/BottomNavbar.dart'; import '../widgets/LeagueTableWiget.dart'; import '../widgets/AllScores.dart'; +import '../widgets/TopScorer.dart'; class LeagueTableScreen extends StatefulWidget { @override @@ -76,7 +77,7 @@ class _LeagueTableScreenState extends State children: [ AllScores(), LeagueTableWidget(), - Container() + TopScorers() ], )); } diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index 10520e9..52b3a15 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -4,11 +4,11 @@ import 'package:sportsmojo/screens/MatchStatScreen.dart'; import '../screens/HomeScreen.dart'; import '../screens/ScoreScreen.dart'; import '../screens/News.dart'; -import '../screens/Login.dart'; import '../screens/NewsArticle.dart'; import '../models/News.dart'; import '../screens/FavouriteScreen2.dart'; import '../screens/LeagueTableScreen.dart'; +import '../screens/DashboardScreen.dart'; class Router { Route generateRoutes(RouteSettings settings) { @@ -17,7 +17,7 @@ class Router { '/score', '/league', '/news', - '/login', + '/dashboard', '/newsarticle', '/selectteam', '/matchstat' @@ -61,7 +61,7 @@ class Router { '/score': ScoreScreen(), '/league': LeagueTableScreen(), '/news': NewsScreen(), - '/login': LoginScreen(), + '/dashboard': DashboardScreen(), '/newsarticle': NewsArticleScreen( index: index, news: news, diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index de49ad1..f087681 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -6,6 +6,7 @@ import 'ScoreService.dart'; import 'StatService.dart'; import 'MatchEventService.dart'; import 'LeagueTableService.dart'; +import 'TopScorerService.dart'; import '../Provider/HomeViewModel.dart'; import '../Provider/AppProvider.dart'; import '../Provider/FavouriteScoresViewModel.dart'; @@ -21,6 +22,7 @@ void setupLocator() { locator.registerLazySingleton(() => StatService()); locator.registerLazySingleton(() => MatchEventService()); locator.registerLazySingleton(() => LeagueTableService()); + locator.registerLazySingleton(() => TopScorerService()); locator.registerFactory(() => HomeViewModel(0)); locator.registerFactory(() => MatchStatViewModel(null)); locator.registerFactory(() => MatchEventViewModel(null)); diff --git a/lib/services/LoginService.dart b/lib/services/LoginService.dart new file mode 100644 index 0000000..df567b1 --- /dev/null +++ b/lib/services/LoginService.dart @@ -0,0 +1,43 @@ +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:google_sign_in/google_sign_in.dart'; +import '../models/User.dart'; + +class LoginService { + final FirebaseAuth _auth = FirebaseAuth.instance; + final GoogleSignIn googleSignIn = GoogleSignIn(); + String name; + String email; + String imageUrl; + + Future signInWithGoogle() async { + final GoogleSignInAccount googleSignInAccount = await googleSignIn.signIn(); + final GoogleSignInAuthentication googleSignInAuthentication = + await googleSignInAccount.authentication; + + final AuthCredential credential = GoogleAuthProvider.getCredential( + accessToken: googleSignInAuthentication.accessToken, + idToken: googleSignInAuthentication.idToken); + + final AuthResult authResult = await _auth.signInWithCredential(credential); + final FirebaseUser user = authResult.user; + assert(!user.isAnonymous); + assert(await user.getIdToken() != null); + + final FirebaseUser currentUser = await _auth.currentUser(); + assert(user.uid == currentUser.uid); + assert(user.email != null); + assert(user.displayName != null); + assert(user.photoUrl != null); + name = user.displayName; + email = user.email; + imageUrl = user.photoUrl; + if (name.contains(" ")) { + name = name.substring(0, name.indexOf(" ")); + } + return User(name: name, email: email, profilePic: imageUrl); + } + + void signOutGoogle() async { + await googleSignIn.signOut(); + } +} \ No newline at end of file diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index ed4719c..2a0b40c 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -72,7 +72,7 @@ class _AllScoresState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ LeagueDropdown( - items: leaguesItems, + items: getLeagueItems(), selectedLeague: model.selectedLeague, backgroundColor: Color(0xfffafafa), fontColor: Colors.black, diff --git a/lib/widgets/LeagueDropdown.dart b/lib/widgets/LeagueDropdown.dart index 69946c4..f53ef47 100644 --- a/lib/widgets/LeagueDropdown.dart +++ b/lib/widgets/LeagueDropdown.dart @@ -32,19 +32,25 @@ class _LeagueDropdownState extends State { items: widget.items, style: TextStyle(color: widget.fontColor, fontSize: 11, fontWeight: FontWeight.w500), onChanged: (String value) async { - model.selectedLeague = value; - model.leagueTableEntries = null; - model.leagueWiseScores = null; - if(widget.purpose == "table") { - await model.loadLeagueTable( - leagueName: value); - await model.loadLeagueWiseScores(leagueName: value); - } - if(widget.purpose == "score") { - await model.loadLeagueWiseScores(leagueName: value); - await model.loadLeagueTable( - leagueName: value); - Navigator.of(context).pushReplacementNamed('/league'); + if(model.selectedLeague != value) { + model.selectedLeague = value; + model.leagueTableEntries = null; + model.leagueWiseScores = null; + model.topScorers = null; + if(widget.purpose == "topscorer") { + await model.loadTopScorers(leagueName: value); + } + if(widget.purpose == "table") { + await model.loadLeagueTable( + leagueName: value); + await model.loadLeagueWiseScores(leagueName: value); + } + if(widget.purpose == "score") { + await model.loadLeagueWiseScores(leagueName: value); + await model.loadLeagueTable( + leagueName: value); + Navigator.of(context).pushReplacementNamed('/league'); + } } }, ), diff --git a/lib/widgets/LeagueTableWiget.dart b/lib/widgets/LeagueTableWiget.dart index d4a0e4a..ab93292 100644 --- a/lib/widgets/LeagueTableWiget.dart +++ b/lib/widgets/LeagueTableWiget.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:pk_skeleton/pk_skeleton.dart'; import 'package:provider/provider.dart'; import 'package:cached_network_image/cached_network_image.dart'; +import 'package:sportsmojo/models/LeagueTable.dart'; import '../Provider/AppProvider.dart'; import '../commons/custom_icons.dart'; import '../constants.dart'; @@ -14,22 +15,15 @@ class LeagueTableWidget extends StatefulWidget { } class _LeagueTableWidgetState extends State { - List leaguesItems = leagues.entries - .map>((entry) => DropdownMenuItem( - value: entry.key, - child: Text(entry.key), - )) - .toList(); @override void initState() { final AppProvider appProvider = Provider.of(context, listen: false); if (appProvider.leagueTableEntries == null) { - if(appProvider.selectedLeague == null) { + if (appProvider.selectedLeague == null) { appProvider.loadLeagueTable(); - } - else { + } else { appProvider.loadLeagueTable(leagueName: appProvider.selectedLeague); } } @@ -41,24 +35,25 @@ class _LeagueTableWidgetState extends State { return Consumer( builder: (context, model, child) => SingleChildScrollView( child: Container( - margin: EdgeInsets.only(top: 10.0), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0), - child: LeagueDropdown( - items: leaguesItems, - selectedLeague: model.selectedLeague, - backgroundColor: Color(0xfffafafa), - fontColor: Colors.black, - purpose: "table", - ), - ), - model.leagueTableEntries != null - ? Card( + margin: EdgeInsets.only(top: 10.0), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8.0, vertical: 4.0), + child: LeagueDropdown( + items: getLeagueItems(), + selectedLeague: model.selectedLeague, + backgroundColor: Color(0xfffafafa), + fontColor: Colors.black, + purpose: "table", + ), + ), + model.leagueTableEntries != null + ? Card( child: Padding( padding: const EdgeInsets.all(8.0), child: SingleChildScrollView( @@ -76,509 +71,296 @@ class _LeagueTableWidgetState extends State { if (index == 0) { return Column( children: [ - Row( - children: [ - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.07, - child: Text(' ')), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.35, - child: Text( - 'Club', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.left, - )), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - 'MP', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, - )), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - 'W', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, - )), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - 'L', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, - )), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - 'D', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, - )), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - 'Pts.', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, - )), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - 'GF', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, - )), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - 'GA', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, - )), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - 'GD', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, - )) - ], - ), + tableHeader(), Padding( padding: const EdgeInsets .symmetric(vertical: 8.0), - child: Row( - children: [ - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.07, - child: Text( - '${model.leagueTableEntries[index].position}.', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, - ), - ), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.35, - child: Row( - children: [ - Container( - width: 16, - child: CachedNetworkImage( - imageUrl: model - .leagueTableEntries[ - index] - .teamLogo, - placeholder: (BuildContext - context, - String - url) => - Icon(MyFlutterApp - .football, size: 16,),), - ), - Expanded( - child: AutoSizeText( - '${model.leagueTableEntries[index].teamName}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.left, - maxLines: 1, - overflowReplacement: - FittedBox( - fit: BoxFit.fitWidth, - child: Text( - '${model.leagueTableEntries[index].teamName}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.left, - ), - ), - ), - ), - ], - ), - ), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].matchesPlayed}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, - ), - ), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].wins}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, - ), - ), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].draws}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, - ), - ), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].loses}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, - ), - ), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].points}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, - ), - ), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].goalsFor}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, - ), - ), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].goalsAgainst}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, - ), - ), - Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].goalsFor - model.leagueTableEntries[index].goalsAgainst}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.center, - ), - ), - ], - ), + child: tableRow( + model.leagueTableEntries[ + index]), ) ], ); } return Padding( - padding: const EdgeInsets.symmetric( + padding: EdgeInsets.symmetric( vertical: 8.0), - child: Row( - children: [ - Container( - width: MediaQuery.of(context) - .size - .width * - 0.07, - child: Text( - '${model.leagueTableEntries[index].position}.', - style: - TextStyle(fontSize: 15), - textAlign: TextAlign.center, - ), - ), - Container( - width: MediaQuery.of(context) - .size - .width * - 0.35, - child: Row( - mainAxisAlignment: - MainAxisAlignment.start, - children: [ - Container( - width: 16, - child: CachedNetworkImage( - imageUrl: model - .leagueTableEntries[ - index] - .teamLogo, - placeholder: (BuildContext - context, - String - url) => - Icon(MyFlutterApp - .football, size: 16,)), - ), - Expanded( - child: AutoSizeText( - '${model.leagueTableEntries[index].teamName}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.left, - maxLines: 1, - overflowReplacement: - FittedBox( - fit: BoxFit.fitWidth, - child: Text( - '${model.leagueTableEntries[index].teamName}', - style: TextStyle( - fontSize: 15), - textAlign: - TextAlign.left, - ), - ), - ), - ), - ], - ), - ), - Container( - width: MediaQuery.of(context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].matchesPlayed}', - style: - TextStyle(fontSize: 15), - textAlign: TextAlign.center, - ), - ), - Container( - width: MediaQuery.of(context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].wins}', - style: - TextStyle(fontSize: 15), - textAlign: TextAlign.center, - ), - ), - Container( - width: MediaQuery.of(context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].draws}', - style: - TextStyle(fontSize: 15), - textAlign: TextAlign.center, - ), - ), - Container( - width: MediaQuery.of(context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].loses}', - style: - TextStyle(fontSize: 15), - textAlign: TextAlign.center, - ), - ), - Container( - width: MediaQuery.of(context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].points}', - style: - TextStyle(fontSize: 15), - textAlign: TextAlign.center, - ), - ), - Container( - width: MediaQuery.of(context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].goalsFor}', - style: - TextStyle(fontSize: 15), - textAlign: TextAlign.center, - ), - ), - Container( - width: MediaQuery.of(context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].goalsAgainst}', - style: - TextStyle(fontSize: 15), - textAlign: TextAlign.center, - ), - ), - Container( - width: MediaQuery.of(context) - .size - .width * - 0.1, - child: Text( - '${model.leagueTableEntries[index].goalsFor - model.leagueTableEntries[index].goalsAgainst}', - style: - TextStyle(fontSize: 15), - textAlign: TextAlign.center, - ), - ), - ], - ), + child: tableRow(model + .leagueTableEntries[index]), ); }), ), ), ), - ) : PKCardPageSkeleton( + ) + : PKCardPageSkeleton( totalLines: 15, ), - ], - ), - ), - ), + ], + ), + ), + ), )); } + + Widget tableHeader() { + return Row( + children: [ + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.07, + child: Text(' ')), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.35, + child: Text( + 'Club', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.left, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'MP', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'W', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'L', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'D', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'Pts.', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'GF', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'GA', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )), + Container( + width: MediaQuery.of( + context) + .size + .width * + 0.1, + child: Text( + 'GD', + style: TextStyle( + fontSize: 15, + color: Color( + 0X8A000000)), + textAlign: + TextAlign.center, + )) + ], + ); + } + + Widget tableRow(LeagueTableEntry leagueTableEntry) { + return Row( + children: [ + Container( + width: MediaQuery.of(context).size.width * 0.07, + child: Text( + '${leagueTableEntry.position}.', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.35, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Container( + width: 16, + child: CachedNetworkImage( + imageUrl: leagueTableEntry.teamLogo, + placeholder: (BuildContext context, String url) => Icon( + MyFlutterApp.football, + size: 16, + )), + ), + Expanded( + child: AutoSizeText( + '${leagueTableEntry.teamName}', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.left, + maxLines: 1, + overflowReplacement: FittedBox( + fit: BoxFit.fitWidth, + child: Text( + '${leagueTableEntry.teamName}', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.left, + ), + ), + ), + ), + ], + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.1, + child: Text( + '${leagueTableEntry.matchesPlayed}', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.1, + child: Text( + '${leagueTableEntry.wins}', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.1, + child: Text( + '${leagueTableEntry.draws}', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.1, + child: Text( + '${leagueTableEntry.loses}', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.1, + child: Text( + '${leagueTableEntry.points}', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.1, + child: Text( + '${leagueTableEntry.goalsFor}', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.1, + child: Text( + '${leagueTableEntry.goalsAgainst}', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.1, + child: Text( + '${leagueTableEntry.goalsFor - leagueTableEntry.goalsAgainst}', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + ], + ); + } } diff --git a/lib/widgets/TopScorer.dart b/lib/widgets/TopScorer.dart new file mode 100644 index 0000000..9089a1a --- /dev/null +++ b/lib/widgets/TopScorer.dart @@ -0,0 +1,196 @@ +import 'package:auto_size_text/auto_size_text.dart'; +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:pk_skeleton/pk_skeleton.dart'; +import 'package:provider/provider.dart'; +import '../models/Player.dart'; +import '../Provider/AppProvider.dart'; +import 'LeagueDropdown.dart'; +import '../constants.dart'; + +class TopScorers extends StatefulWidget { + @override + _TopScorersState createState() => _TopScorersState(); +} + +class _TopScorersState extends State { + @override + void initState() { + final AppProvider appProvider = + Provider.of(context, listen: false); + if (appProvider.topScorers == null) { + if (appProvider.selectedLeague == null) { + appProvider.loadTopScorers(); + } else { + appProvider.loadTopScorers(leagueName: appProvider.selectedLeague); + } + } + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, model, child) => SingleChildScrollView( + child: Container( + margin: EdgeInsets.only(top: 10.0), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8.0, vertical: 4.0), + child: LeagueDropdown( + items: getLeagueItems(), + selectedLeague: model.selectedLeague, + backgroundColor: Color(0xfffafafa), + fontColor: Colors.black, + purpose: "topscorer", + ), + ), + model.topScorers != null + ? Card( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 2.0), + child: ListView.builder( + shrinkWrap: true, + itemCount: model.topScorers.length, + physics: NeverScrollableScrollPhysics(), + itemBuilder: + (BuildContext context, int index) { + if (index == 0) { + return Column( + children: [ + tableHeader(), + Padding( + padding: + const EdgeInsets.symmetric( + vertical: 8.0), + child: tableRow( + model.topScorers[index]), + ) + ], + ); + } + return Padding( + padding: + EdgeInsets.symmetric(vertical: 8.0), + child: + tableRow(model.topScorers[index]), + ); + }), + ), + ) + : PKCardPageSkeleton( + totalLines: 15, + ), + ], + ), + ), + ), + )); + } + + Widget tableHeader() { + return Row( + children: [ + Container( + width: MediaQuery.of(context).size.width * 0.07, child: Text(' ')), + Container( + width: MediaQuery.of(context).size.width * 0.45, + child: Text( + 'Player', + style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + textAlign: TextAlign.left, + )), + Container( + width: MediaQuery.of(context).size.width * 0.21, + child: Text( + 'Goals(P)', + style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + textAlign: TextAlign.center, + )), + Container( + width: MediaQuery.of(context).size.width * 0.21, + child: Text( + 'Assists', + style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + textAlign: TextAlign.center, + )), + ], + ); + } + + Widget tableRow(Player topScorer) { + return Row( + children: [ + Container( + width: MediaQuery.of(context).size.width * 0.07, + child: Text( + '${topScorer.rank}.', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.43, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: Container( + width: 30, + child: CachedNetworkImage( + imageUrl: topScorer.photoUrl, + placeholder: (BuildContext context, String url) => + Image.asset('assets/images/user-placeholder.jpg')), + ), + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + AutoSizeText( + '${topScorer.name}', + style: TextStyle(fontSize: 16), + textAlign: TextAlign.left, + maxLines: 1, + overflowReplacement: FittedBox( + fit: BoxFit.fitWidth, + child: Text( + '${topScorer.name}', + style: TextStyle(fontSize: 16), + textAlign: TextAlign.left, + ), + ), + ), + Text('${topScorer.teamName}', style: TextStyle(fontSize: 13, color: Color(0X8A000000)),) + ], + ), + ), + ], + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.2, + child: Text( + '${topScorer.goals}(${topScorer.penaltyGoals})', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.2, + child: Text( + '${topScorer.assists}', + style: TextStyle(fontSize: 15), + textAlign: TextAlign.center, + ), + ), + ], + ); + } +} diff --git a/pubspec.lock b/pubspec.lock index 4509f15..4d9e437 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -99,6 +99,55 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "5.1.0" + firebase: + dependency: transitive + description: + name: firebase + url: "https://pub.dartlang.org" + source: hosted + version: "7.3.0" + firebase_auth: + dependency: "direct main" + description: + name: firebase_auth + url: "https://pub.dartlang.org" + source: hosted + version: "0.16.1" + firebase_auth_platform_interface: + dependency: transitive + description: + name: firebase_auth_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.8" + firebase_auth_web: + dependency: transitive + description: + name: firebase_auth_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3+1" + firebase_core: + dependency: transitive + description: + name: firebase_core + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.5" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1+2" flushbar: dependency: "direct main" description: @@ -142,6 +191,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.0.2" + google_sign_in: + dependency: "direct main" + description: + name: google_sign_in + url: "https://pub.dartlang.org" + source: hosted + version: "4.5.1" + google_sign_in_platform_interface: + dependency: transitive + description: + name: google_sign_in_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.2" + google_sign_in_web: + dependency: transitive + description: + name: google_sign_in_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.1+1" http: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index cefeca3..8fbd949 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -37,6 +37,8 @@ dependencies: pull_to_refresh: ^1.5.7 intl: ^0.16.1 auto_size_text: ^2.1.0 + firebase_auth: ^0.16.1 + google_sign_in: ^4.5.1 dev_dependencies: flutter_test: sdk: flutter From c27560866c344e7548aa27f43a069015976f2779 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Thu, 23 Jul 2020 02:07:11 +0530 Subject: [PATCH 29/49] Added firebase service for sign in ang sign out and current user --- android/app/build.gradle | 1 + ios/Flutter/Generated 24.xcconfig | 10 ++ lib/Provider/AppProvider.dart | 11 +- lib/main.dart | 5 +- lib/models/User.dart | 3 +- lib/screens/DashboardScreen.dart | 109 ++++++++++++++---- ...LoginService.dart => FirebaseService.dart} | 33 ++++-- lib/services/GetItLocator.dart | 5 +- pubspec.lock | 21 ++++ pubspec.yaml | 1 + 10 files changed, 165 insertions(+), 34 deletions(-) create mode 100644 ios/Flutter/Generated 24.xcconfig rename lib/services/{LoginService.dart => FirebaseService.dart} (62%) diff --git a/android/app/build.gradle b/android/app/build.gradle index 832cf4d..135d037 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -43,6 +43,7 @@ android { targetSdkVersion 28 versionCode flutterVersionCode.toInteger() versionName flutterVersionName + multiDexEnabled true } buildTypes { diff --git a/ios/Flutter/Generated 24.xcconfig b/ios/Flutter/Generated 24.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 24.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index 373d074..e31148a 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -10,8 +10,10 @@ import '../models/LeagueTable.dart'; import '../services/LeagueTableService.dart'; import '../services/TopScorerService.dart'; import '../models/Player.dart'; +import '../models/User.dart'; +import '../services/FirebaseService.dart'; class AppProvider extends ChangeNotifier { - AppProvider(this._navbarIndex, this._selectedLeague, this._startDate, this._endDate); + AppProvider(this._navbarIndex, this._selectedLeague, this._startDate, this._endDate, this._currentUser); int _navbarIndex; List _newsList; List _favouriteNewsList; @@ -22,6 +24,7 @@ class AppProvider extends ChangeNotifier { List _favouriteTeamScores; String _selectedLeague; List _topScorers; + User _currentUser; NewsService _newsService = locator(); ScoreService _scoreService = locator(); @@ -42,6 +45,7 @@ class AppProvider extends ChangeNotifier { List get leagueTableEntries => _leagueTableEntries; List get topScorers => _topScorers; + User get currentUser => _currentUser; void set selectedLeague(String league) { _selectedLeague = league; @@ -83,6 +87,11 @@ class AppProvider extends ChangeNotifier { notifyListeners(); } + void set currentUser(User user) { + _currentUser = user; + notifyListeners(); + } + void set leagueTableEntries(List newLeagueTable) { _leagueTableEntries = newLeagueTable; notifyListeners(); diff --git a/lib/main.dart b/lib/main.dart index dca03fd..322b228 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -5,6 +5,7 @@ import 'Provider/AppProvider.dart'; import 'services/CustomRouter.dart'; import 'services/GetItLocator.dart'; import 'services/LocalStorage.dart'; +import 'services/FirebaseService.dart'; void main() async{ setupLocator(); @@ -14,7 +15,9 @@ void main() async{ ); WidgetsFlutterBinding.ensureInitialized(); final leagueName = await LocalStorage.getString('leagueName'); - AppProvider appProvider = locator(param1: leagueName); + FirebaseService firebaseService = locator(); + final currentUser = await firebaseService.getCurrentUser(); + AppProvider appProvider = locator(param1: leagueName, param2: currentUser); runApp( MultiProvider( diff --git a/lib/models/User.dart b/lib/models/User.dart index bd52cab..3e9de5c 100644 --- a/lib/models/User.dart +++ b/lib/models/User.dart @@ -1,7 +1,8 @@ class User { + String uid; String name; String email; String profilePic; - User({this.name, this.email, this.profilePic}); + User({this.uid, this.name, this.email, this.profilePic}); } \ No newline at end of file diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index 27a7bf4..79f6dbf 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -1,38 +1,101 @@ +import 'package:auto_size_text/auto_size_text.dart'; +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; -import '../services/LoginService.dart'; +import 'package:provider/provider.dart'; +import '../services/FirebaseService.dart'; import '../models/User.dart'; import '../commons/BottomNavbar.dart'; +import '../Provider/AppProvider.dart'; +import '../services/GetItLocator.dart'; class DashboardScreen extends StatelessWidget { + FirebaseService firebaseService = locator(); @override Widget build(BuildContext context) { - return Scaffold( - bottomNavigationBar: BottomNavbar(), - body: Container( - child: Center( - child: Container( - width: MediaQuery.of(context).size.width * 0.7, - child: RaisedButton( - onPressed: () async{ - final User user = await LoginService().signInWithGoogle(); - print('${user.email} ${user.name} ${user.profilePic}'); - }, - child: Row( + return SafeArea( + child: Scaffold( + bottomNavigationBar: BottomNavbar(), + body: Consumer( + builder: (context, model, child) => Container( + child: (model.currentUser != null) ? Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Container( - color: Colors.white, - height: 30, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset('assets/images/google_logo.png'), - )), - Text('Sign in with Google', style: TextStyle(color: Colors.white),) + Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: Container( + height: 40, + child: ClipRRect( + borderRadius: + BorderRadius.circular(12.0), + child: CachedNetworkImage( + imageUrl: model.currentUser.profilePic, + placeholder: (BuildContext context, String url) => + Image.asset('assets/images/user-placeholder.jpg')), + ), + ), + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + AutoSizeText( + '${model.currentUser.name}', + style: TextStyle(fontSize: 18), + textAlign: TextAlign.left, + maxLines: 1, + ), + Text('${model.currentUser.email}', style: TextStyle(fontSize: 13, color: Color(0X8A000000)),) + ], + ), + ), + ], + ), + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + RaisedButton( + onPressed: () async{ + await firebaseService.signOutGoogle(); + model.currentUser = null; + }, + child: Text('Logout'), + ) + ], + ) ], + ): + Center( + child: Container( + width: MediaQuery.of(context).size.width * 0.7, + child: RaisedButton( + onPressed: () async{ + final User user = await firebaseService.signInWithGoogle(); + model.currentUser = user; + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + color: Colors.white, + height: 30, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset('assets/images/google_logo.png'), + )), + Text('Sign in with Google', style: TextStyle(color: Colors.white),) + ], + ), + color: Color(0xff4285f4), + ), + ), ), - color: Color(0xff4285f4), ), - ), ), ), ); diff --git a/lib/services/LoginService.dart b/lib/services/FirebaseService.dart similarity index 62% rename from lib/services/LoginService.dart rename to lib/services/FirebaseService.dart index df567b1..fbc1ce9 100644 --- a/lib/services/LoginService.dart +++ b/lib/services/FirebaseService.dart @@ -2,13 +2,34 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:google_sign_in/google_sign_in.dart'; import '../models/User.dart'; -class LoginService { - final FirebaseAuth _auth = FirebaseAuth.instance; - final GoogleSignIn googleSignIn = GoogleSignIn(); +class FirebaseService { + FirebaseAuth _auth; + GoogleSignIn googleSignIn; String name; String email; String imageUrl; + FirebaseService() { + _auth = FirebaseAuth.instance; + googleSignIn = GoogleSignIn(); + } + + Future getCurrentUser() async { + String name; + User currentUser = null; + final FirebaseUser _firebaseUser = await _auth.currentUser(); + if (_firebaseUser != null) { + name = _firebaseUser.displayName; + currentUser = User( + uid: _firebaseUser.uid, + name: name, + email: _firebaseUser.email, + profilePic: _firebaseUser.photoUrl); + } + return currentUser; + } + + Future signInWithGoogle() async { final GoogleSignInAccount googleSignInAccount = await googleSignIn.signIn(); final GoogleSignInAuthentication googleSignInAuthentication = @@ -31,13 +52,11 @@ class LoginService { name = user.displayName; email = user.email; imageUrl = user.photoUrl; - if (name.contains(" ")) { - name = name.substring(0, name.indexOf(" ")); - } - return User(name: name, email: email, profilePic: imageUrl); + return User(uid: user.uid, name: name, email: email, profilePic: imageUrl); } void signOutGoogle() async { + await _auth.signOut(); await googleSignIn.signOut(); } } \ No newline at end of file diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index f087681..24e1c58 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -12,6 +12,8 @@ import '../Provider/AppProvider.dart'; import '../Provider/FavouriteScoresViewModel.dart'; import '../Provider/MatchStatViewModel.dart'; import '../Provider/MatchEventViewModel.dart'; +import '../models/User.dart'; +import 'FirebaseService.dart'; GetIt locator = GetIt.instance; void setupLocator() { @@ -23,9 +25,10 @@ void setupLocator() { locator.registerLazySingleton(() => MatchEventService()); locator.registerLazySingleton(() => LeagueTableService()); locator.registerLazySingleton(() => TopScorerService()); + locator.registerLazySingleton(() => FirebaseService()); locator.registerFactory(() => HomeViewModel(0)); locator.registerFactory(() => MatchStatViewModel(null)); locator.registerFactory(() => MatchEventViewModel(null)); locator.registerFactoryParam, int>((scores, index) => FavouriteScoresViewModel(scores, index)); - locator.registerFactoryParam((leagueName, _) => AppProvider(0, leagueName, now.subtract(Duration(days: 30)), now.add(Duration(days: 7)))); + locator.registerFactoryParam((leagueName, currentUser) => AppProvider(0, leagueName, now.subtract(Duration(days: 30)), now.add(Duration(days: 7)), currentUser)); } \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 4d9e437..c25e3ec 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -57,6 +57,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.1" + cloud_firestore: + dependency: "direct main" + description: + name: cloud_firestore + url: "https://pub.dartlang.org" + source: hosted + version: "0.13.7" + cloud_firestore_platform_interface: + dependency: transitive + description: + name: cloud_firestore_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.2" + cloud_firestore_web: + dependency: transitive + description: + name: cloud_firestore_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1+2" collection: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 8fbd949..c5309f3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -39,6 +39,7 @@ dependencies: auto_size_text: ^2.1.0 firebase_auth: ^0.16.1 google_sign_in: ^4.5.1 + cloud_firestore: ^0.13.7 dev_dependencies: flutter_test: sdk: flutter From a6506ee5b3a1e266d402e5b8b21ea430a2b05c30 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Fri, 24 Jul 2020 02:32:18 +0530 Subject: [PATCH 30/49] Modified dashboard screen --- lib/Provider/AppProvider.dart | 7 +- lib/screens/DashboardScreen.dart | 266 ++++++++++++++++++++++-------- lib/screens/FavouriteScreen2.dart | 6 + lib/services/CustomRouter.dart | 7 +- lib/start.dart | 3 +- 5 files changed, 212 insertions(+), 77 deletions(-) diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index e31148a..36651ca 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -63,7 +63,12 @@ class AppProvider extends ChangeNotifier { } void set favouriteNewsList(List news) { - _favouriteNewsList = news.sublist(0, 4); + if(news != null) { + _favouriteNewsList = news.sublist(0, 4); + } + else { + _favouriteNewsList = news; + } notifyListeners(); } diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index 79f6dbf..95d4aec 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -7,97 +7,219 @@ import '../models/User.dart'; import '../commons/BottomNavbar.dart'; import '../Provider/AppProvider.dart'; import '../services/GetItLocator.dart'; +import '../commons/custom_icons.dart'; +import '../services/LocalStorage.dart'; -class DashboardScreen extends StatelessWidget { +class DashboardScreen extends StatefulWidget { + @override + _DashboardScreenState createState() => _DashboardScreenState(); +} + +class _DashboardScreenState extends State { FirebaseService firebaseService = locator(); + + String teamLogo, teamName; + + @override + void initState() { + LocalStorage.getString('teamName').then((value) { + setState(() { + teamName = value; + }); + }); + LocalStorage.getString('teamLogo').then((value) { + teamLogo = value; + }); + super.initState(); + } + @override Widget build(BuildContext context) { return SafeArea( child: Scaffold( + backgroundColor: Theme.of(context).primaryColor, bottomNavigationBar: BottomNavbar(), body: Consumer( builder: (context, model, child) => Container( - child: (model.currentUser != null) ? Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(right: 4.0), - child: Container( - height: 40, - child: ClipRRect( - borderRadius: - BorderRadius.circular(12.0), - child: CachedNetworkImage( - imageUrl: model.currentUser.profilePic, - placeholder: (BuildContext context, String url) => - Image.asset('assets/images/user-placeholder.jpg')), + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + topRight: Radius.circular(20.0), + topLeft: Radius.circular(20.0)), + color: Colors.white), + margin: EdgeInsets.only(top: 40.0), + child: (model.currentUser != null) + ? Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only( + top: 30.0, left: 8.0, right: 8.0, bottom: 8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(right: 8.0), + child: Container( + width: 50, + child: ClipRRect( + borderRadius: BorderRadius.circular(12.0), + child: CachedNetworkImage( + imageUrl: model.currentUser.profilePic, + placeholder: (BuildContext context, + String url) => + Image.asset( + 'assets/images/user-placeholder.jpg')), + ), + ), + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + AutoSizeText( + '${model.currentUser.name}', + style: TextStyle(fontSize: 20), + textAlign: TextAlign.left, + maxLines: 1, + ), + Text( + '${model.currentUser.email}', + style: TextStyle( + fontSize: 12, color: Color(0X8A000000)), + ) + ], + ), ), - ), + ], ), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AutoSizeText( - '${model.currentUser.name}', - style: TextStyle(fontSize: 18), - textAlign: TextAlign.left, - maxLines: 1, + ), + Divider( + thickness: 0.7, + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 8.0), + child: Stack( + children: [ + Container( + width: MediaQuery.of(context).size.width * 0.8, + decoration: BoxDecoration( + boxShadow: [ + BoxShadow( + color: Colors.white.withOpacity(0.8), + offset: Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.black.withOpacity(0.1), + offset: Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ], + color: Color(0xFFFFFFFF), + borderRadius: BorderRadius.circular(12.0), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.symmetric(vertical: 30.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 4.0), + child: Container( + height: 40, + child: teamLogo != null + ? CachedNetworkImage( + imageUrl: teamLogo, + placeholder: + (BuildContext context, + String url) => + Icon( + MyFlutterApp.football, + size: 40, + )) + : Icon( + MyFlutterApp.football, + size: 40, + )), + ), + Text( + teamName, + style: TextStyle(fontSize: 18), + ) + ], + ), + ) + ], ), - Text('${model.currentUser.email}', style: TextStyle(fontSize: 13, color: Color(0X8A000000)),) - ], - ), + ), + Positioned( + top: 4, + right: 4, + child: InkWell( + onTap: () { + Navigator.of(context).pushReplacementNamed('/selectleague'); + }, + child: Icon( + Icons.edit, + color: Color(0x7a000000), + size: 20, + ), + ), + ) + ], ), - ], - ), - ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - RaisedButton( - onPressed: () async{ - await firebaseService.signOutGoogle(); - model.currentUser = null; - }, - child: Text('Logout'), + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + RaisedButton( + onPressed: () async { + await firebaseService.signOutGoogle(); + model.currentUser = null; + }, + child: Text('Logout'), + ) + ], ) ], ) - ], - ): - Center( - child: Container( - width: MediaQuery.of(context).size.width * 0.7, - child: RaisedButton( - onPressed: () async{ - final User user = await firebaseService.signInWithGoogle(); - model.currentUser = user; - }, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Container( - color: Colors.white, - height: 30, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset('assets/images/google_logo.png'), - )), - Text('Sign in with Google', style: TextStyle(color: Colors.white),) - ], + : Center( + child: Container( + width: MediaQuery.of(context).size.width * 0.7, + child: RaisedButton( + onPressed: () async { + final User user = + await firebaseService.signInWithGoogle(); + model.currentUser = user; + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + color: Colors.white, + height: 30, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset( + 'assets/images/google_logo.png'), + )), + Text( + 'Sign in with Google', + style: TextStyle(color: Colors.white), + ) + ], + ), + color: Color(0xff4285f4), + ), ), - color: Color(0xff4285f4), ), - ), - ), - ), + ), ), ), ); } -} \ No newline at end of file +} diff --git a/lib/screens/FavouriteScreen2.dart b/lib/screens/FavouriteScreen2.dart index 8731d95..389e271 100644 --- a/lib/screens/FavouriteScreen2.dart +++ b/lib/screens/FavouriteScreen2.dart @@ -190,9 +190,15 @@ class _FavouriteTeamState extends State { onTap: () { LocalStorage.setString('teamName', team.name); LocalStorage.setString('teamId', '${team.id}'); + LocalStorage.setString('teamLogo', team.logo); LocalStorage.setString('leagueName', '${widget.leagueName}'); LocalStorage.setString('leagueId', '${widget.leagueId}'); appProvider.selectedLeague = widget.leagueName; + appProvider.leagueWiseScores = null; + appProvider.favouriteTeamScores = null; + appProvider.newsList = null; + appProvider.favouriteNewsList = null; + appProvider.navbarIndex = 0; Navigator.of(context) .pushReplacementNamed('/home', arguments: { 'favouriteTeamMessage': { diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index 52b3a15..badc9a9 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -9,6 +9,7 @@ import '../models/News.dart'; import '../screens/FavouriteScreen2.dart'; import '../screens/LeagueTableScreen.dart'; import '../screens/DashboardScreen.dart'; +import '../screens/FavouriteScreen1.dart'; class Router { Route generateRoutes(RouteSettings settings) { @@ -20,7 +21,8 @@ class Router { '/dashboard', '/newsarticle', '/selectteam', - '/matchstat' + '/matchstat', + '/selectleague' ]; if (validRoutes.contains(settings.name)) { return customRoutes(settings.name, settings.arguments); @@ -72,7 +74,8 @@ class Router { ), '/matchstat': MatchStatScreen( score: score, - ) + ), + '/selectleague': FavouriteLeague() }; return PageRouteBuilder( diff --git a/lib/start.dart b/lib/start.dart index 5a0fbc0..ca93690 100644 --- a/lib/start.dart +++ b/lib/start.dart @@ -14,8 +14,7 @@ class StartState extends State { if (teamName != null) { Navigator.of(context).pushReplacementNamed('/home'); } else { - Navigator.of(context).pushReplacement(new MaterialPageRoute( - builder: (context) => FavouriteLeague())); + Navigator.of(context).pushReplacementNamed('/selectleague'); } } From a065a62345c11dc90cfa34ba3ae5302785c0af39 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sat, 25 Jul 2020 02:17:56 +0530 Subject: [PATCH 31/49] Completed dashboard screen --- lib/screens/DashboardScreen.dart | 400 ++++++++++++++++++++---------- lib/screens/FavouriteScreen2.dart | 1 + 2 files changed, 267 insertions(+), 134 deletions(-) diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index 95d4aec..0f540eb 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -9,6 +9,7 @@ import '../Provider/AppProvider.dart'; import '../services/GetItLocator.dart'; import '../commons/custom_icons.dart'; import '../services/LocalStorage.dart'; +import '../constants.dart'; class DashboardScreen extends StatefulWidget { @override @@ -18,7 +19,7 @@ class DashboardScreen extends StatefulWidget { class _DashboardScreenState extends State { FirebaseService firebaseService = locator(); - String teamLogo, teamName; + String teamLogo, teamName, leagueName, leagueLogo; @override void initState() { @@ -30,6 +31,10 @@ class _DashboardScreenState extends State { LocalStorage.getString('teamLogo').then((value) { teamLogo = value; }); + LocalStorage.getString('leagueName').then((value) { + leagueName = value; + leagueLogo = leagues[leagueName]["logo"]; + }); super.initState(); } @@ -47,14 +52,14 @@ class _DashboardScreenState extends State { topLeft: Radius.circular(20.0)), color: Colors.white), margin: EdgeInsets.only(top: 40.0), - child: (model.currentUser != null) - ? Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only( - top: 30.0, left: 8.0, right: 8.0, bottom: 8.0), - child: Row( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only( + top: 30.0, left: 8.0, right: 8.0, bottom: 8.0), + child: (model.currentUser != null) + ? Row( mainAxisAlignment: MainAxisAlignment.start, children: [ Padding( @@ -73,150 +78,277 @@ class _DashboardScreenState extends State { ), ), Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, children: [ - AutoSizeText( - '${model.currentUser.name}', - style: TextStyle(fontSize: 20), - textAlign: TextAlign.left, - maxLines: 1, + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AutoSizeText( + '${model.currentUser.name}', + style: TextStyle(fontSize: 20), + textAlign: TextAlign.left, + maxLines: 1, + ), + Text( + '${model.currentUser.email}', + style: TextStyle( + fontSize: 12, + color: Color(0X8A000000)), + ) + ], ), - Text( - '${model.currentUser.email}', - style: TextStyle( - fontSize: 12, color: Color(0X8A000000)), + ButtonTheme( + height: 30, + minWidth: 75, + child: RaisedButton( + color: Theme.of(context).primaryColor, + shape: RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular(15.0), + ), + onPressed: () async { + await firebaseService.signOutGoogle(); + model.currentUser = null; + }, + child: Text( + 'Logout', + style: TextStyle( + color: Colors.white, fontSize: 14), + ), + ), ) ], ), ), ], - ), - ), - Divider( - thickness: 0.7, - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 8.0), - child: Stack( + ) + : Row( + mainAxisAlignment: MainAxisAlignment.center, children: [ Container( - width: MediaQuery.of(context).size.width * 0.8, - decoration: BoxDecoration( - boxShadow: [ - BoxShadow( - color: Colors.white.withOpacity(0.8), - offset: Offset(-6.0, -6.0), - blurRadius: 16.0, - ), - BoxShadow( - color: Colors.black.withOpacity(0.1), - offset: Offset(6.0, 6.0), - blurRadius: 16.0, - ), - ], - color: Color(0xFFFFFFFF), - borderRadius: BorderRadius.circular(12.0), - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.symmetric(vertical: 30.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 4.0), - child: Container( - height: 40, - child: teamLogo != null - ? CachedNetworkImage( - imageUrl: teamLogo, - placeholder: - (BuildContext context, - String url) => - Icon( - MyFlutterApp.football, - size: 40, - )) - : Icon( - MyFlutterApp.football, - size: 40, - )), - ), - Text( - teamName, - style: TextStyle(fontSize: 18), - ) - ], - ), - ) - ], - ), - ), - Positioned( - top: 4, - right: 4, - child: InkWell( - onTap: () { - Navigator.of(context).pushReplacementNamed('/selectleague'); + width: MediaQuery.of(context).size.width * 0.5, + child: RaisedButton( + onPressed: () async { + final User user = + await firebaseService.signInWithGoogle(); + model.currentUser = user; }, - child: Icon( - Icons.edit, - color: Color(0x7a000000), - size: 20, + padding: EdgeInsets.symmetric(horizontal:4.0), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Container( + color: Colors.white, + height: 30, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset( + 'assets/images/google_logo.png'), + )), + Padding( + padding: const EdgeInsets.all(8.0), + child: AutoSizeText( + 'Sign in with Google', + style: TextStyle(color: Colors.white), + ), + ) + ], ), + color: Color(0xff4285f4), ), ) ], ), + ), + Divider( + thickness: 0.7, + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Stack( + children: [ + Container( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20.0, vertical: 8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text( + 'Your Favourites', + style: TextStyle( + fontSize: 20, + color: Color(0X8A000000)), + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.all(12.0), + child: Container( + width: + MediaQuery.of(context).size.width * 0.8, + decoration: BoxDecoration( + boxShadow: [ + BoxShadow( + color: Colors.white.withOpacity(0.8), + offset: Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.black.withOpacity(0.1), + offset: Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ], + color: Color(0xFFFFFFFF), + borderRadius: BorderRadius.circular(12.0), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + vertical: 30.0), + child: Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only( + bottom: 4.0), + child: Container( + height: 40, + child: leagueLogo != null + ? CachedNetworkImage( + imageUrl: leagueLogo, + placeholder: + (BuildContext + context, + String + url) => + Icon( + MyFlutterApp + .football, + size: 40, + )) + : Icon( + MyFlutterApp.football, + size: 40, + )), + ), + Text( + leagueName, + style: TextStyle(fontSize: 18), + ) + ], + ), + ) + ], + ), + ), + ), + Padding( + padding: const EdgeInsets.all(12.0), + child: Container( + width: + MediaQuery.of(context).size.width * 0.8, + decoration: BoxDecoration( + boxShadow: [ + BoxShadow( + color: Colors.white.withOpacity(0.8), + offset: Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.black.withOpacity(0.1), + offset: Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ], + color: Color(0xFFFFFFFF), + borderRadius: BorderRadius.circular(12.0), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + vertical: 30.0), + child: Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only( + bottom: 4.0), + child: Container( + height: 40, + child: teamLogo != null + ? CachedNetworkImage( + imageUrl: teamLogo, + placeholder: + (BuildContext + context, + String + url) => + Icon( + MyFlutterApp + .football, + size: 40, + )) + : Icon( + MyFlutterApp.football, + size: 40, + )), + ), + Text( + teamName, + style: TextStyle(fontSize: 18), + ) + ], + ), + ) + ], + ), + ), + ) + ], + ), + ), ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - RaisedButton( - onPressed: () async { - await firebaseService.signOutGoogle(); - model.currentUser = null; - }, - child: Text('Logout'), - ) - ], + Positioned( + top: 12, + right: 12, + child: InkWell( + onTap: () { + Navigator.of(context) + .pushReplacementNamed('/selectleague'); + }, + child: Icon( + Icons.edit, + color: Color(0x7a000000), + size: 25, + ), + ), ) ], - ) - : Center( - child: Container( - width: MediaQuery.of(context).size.width * 0.7, - child: RaisedButton( - onPressed: () async { - final User user = - await firebaseService.signInWithGoogle(); - model.currentUser = user; - }, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Container( - color: Colors.white, - height: 30, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - 'assets/images/google_logo.png'), - )), - Text( - 'Sign in with Google', - style: TextStyle(color: Colors.white), - ) - ], - ), - color: Color(0xff4285f4), - ), - ), ), + ), + ], + ), ), ), ), diff --git a/lib/screens/FavouriteScreen2.dart b/lib/screens/FavouriteScreen2.dart index 389e271..db2ce90 100644 --- a/lib/screens/FavouriteScreen2.dart +++ b/lib/screens/FavouriteScreen2.dart @@ -198,6 +198,7 @@ class _FavouriteTeamState extends State { appProvider.favouriteTeamScores = null; appProvider.newsList = null; appProvider.favouriteNewsList = null; + appProvider.leagueTableEntries = null; appProvider.navbarIndex = 0; Navigator.of(context) .pushReplacementNamed('/home', arguments: { From ae53b8466ecd0795e5f8cbeaa0f47ba177a1df66 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Mon, 27 Jul 2020 02:51:38 +0530 Subject: [PATCH 32/49] Added cloud firestore --- assets/images/football_cover.svg | 1 + lib/main.dart | 4 +- lib/screens/DashboardScreen.dart | 25 +++++- lib/screens/StartScreen.dart | 119 +++++++++++++++++++++++++++++ lib/services/FirestoreService.dart | 15 ++++ lib/services/GetItLocator.dart | 2 + 6 files changed, 162 insertions(+), 4 deletions(-) create mode 100644 assets/images/football_cover.svg create mode 100644 lib/screens/StartScreen.dart create mode 100644 lib/services/FirestoreService.dart diff --git a/assets/images/football_cover.svg b/assets/images/football_cover.svg new file mode 100644 index 0000000..afe461b --- /dev/null +++ b/assets/images/football_cover.svg @@ -0,0 +1 @@ +game day \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 322b228..52cbb62 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -6,7 +6,7 @@ import 'services/CustomRouter.dart'; import 'services/GetItLocator.dart'; import 'services/LocalStorage.dart'; import 'services/FirebaseService.dart'; - +import 'screens/StartScreen.dart'; void main() async{ setupLocator(); final ThemeData theme = ThemeData( @@ -29,7 +29,7 @@ void main() async{ child: MaterialApp( debugShowCheckedModeBanner: false, theme: theme, - home: Start(), + home: StartScreen(), onGenerateRoute: Router().generateRoutes, navigatorObservers: [ HeroController() diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index 0f540eb..c6d9381 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -9,6 +9,7 @@ import '../Provider/AppProvider.dart'; import '../services/GetItLocator.dart'; import '../commons/custom_icons.dart'; import '../services/LocalStorage.dart'; +import '../services/FirestoreService.dart'; import '../constants.dart'; class DashboardScreen extends StatefulWidget { @@ -18,7 +19,7 @@ class DashboardScreen extends StatefulWidget { class _DashboardScreenState extends State { FirebaseService firebaseService = locator(); - + FirestoreService firestoreService = locator(); String teamLogo, teamName, leagueName, leagueLogo; @override @@ -135,8 +136,28 @@ class _DashboardScreenState extends State { final User user = await firebaseService.signInWithGoogle(); model.currentUser = user; + final Map data = { + 'name': user.name, + 'email': user.email, + 'teamName': await LocalStorage.getString( + 'teamName', + ), + 'teamId': await LocalStorage.getString( + 'teamId', + ), + 'teamLogo': await LocalStorage.getString( + 'teamLogo', + ), + 'leagueName': await LocalStorage.getString( + 'leagueName'), + 'leagueId': await LocalStorage.getString( + 'leagueId', + ) + }; + await firestoreService.setData( + userId: user.uid, data: data); }, - padding: EdgeInsets.symmetric(horizontal:4.0), + padding: EdgeInsets.symmetric(horizontal: 4.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, diff --git a/lib/screens/StartScreen.dart b/lib/screens/StartScreen.dart new file mode 100644 index 0000000..7ed6e4b --- /dev/null +++ b/lib/screens/StartScreen.dart @@ -0,0 +1,119 @@ +import 'package:auto_size_text/auto_size_text.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../services/FirebaseService.dart'; +import '../services/FirestoreService.dart'; +import '../services/LocalStorage.dart'; +import '../services/GetItLocator.dart'; +import '../Provider/AppProvider.dart'; +import '../models/User.dart'; + +class StartScreen extends StatelessWidget { + FirebaseService firebaseService = locator(); + FirestoreService firestoreService = locator(); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Consumer( + builder: (context, model, child) => Padding( + padding: const EdgeInsets.all(12.0), + child: Container( + color: Colors.white, + child: Container( + height: MediaQuery.of(context).size.height, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + height: MediaQuery.of(context).size.height * 0.5, + child: Image.asset('assets/images/football_cover.svg'), + ), + Text( + 'Football just it was meant to be', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 30, fontWeight: FontWeight.w600), + ), + Flexible( + child: Container( + padding: EdgeInsets.symmetric(horizontal: 30.0), + child: Text( + 'You can get football scores and news directly from your home...', + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.w400, + color: Color(0xff34648c), + ), + ), + )), + Padding( + padding: EdgeInsets.all(8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: MediaQuery.of(context).size.width * 0.5, + child: RaisedButton( + onPressed: () async { + final User user = + await firebaseService.signInWithGoogle(); + model.currentUser = user; + final Map data = { + 'name': user.name, + 'email': user.email, + 'teamName': await LocalStorage.getString( + 'teamName', + ), + 'teamId': await LocalStorage.getString( + 'teamId', + ), + 'teamLogo': await LocalStorage.getString( + 'teamLogo', + ), + 'leagueName': + await LocalStorage.getString('leagueName'), + 'leagueId': await LocalStorage.getString( + 'leagueId', + ) + }; + await firestoreService.setData( + userId: user.uid, data: data); + }, + padding: EdgeInsets.symmetric(horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + color: Colors.white, + height: 30, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset( + 'assets/images/google_logo.png'), + )), + Padding( + padding: const EdgeInsets.all(8.0), + child: AutoSizeText( + 'Sign in with Google', + style: TextStyle(color: Colors.white), + ), + ) + ], + ), + color: Color(0xff4285f4), + ), + ) + ], + ), + ) + ], + ), + ), + ), + ), + ), + ); + } +} diff --git a/lib/services/FirestoreService.dart b/lib/services/FirestoreService.dart new file mode 100644 index 0000000..853f927 --- /dev/null +++ b/lib/services/FirestoreService.dart @@ -0,0 +1,15 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; + +class FirestoreService { + Firestore _db; + FirestoreService() { + _db = Firestore.instance; + } + + Future setData({String userId, Map data}) async { + await _db + .collection('users') + .document(userId) + .setData(data, merge: true); + } +} diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index 24e1c58..24ef957 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -14,6 +14,7 @@ import '../Provider/MatchStatViewModel.dart'; import '../Provider/MatchEventViewModel.dart'; import '../models/User.dart'; import 'FirebaseService.dart'; +import 'FirestoreService.dart'; GetIt locator = GetIt.instance; void setupLocator() { @@ -26,6 +27,7 @@ void setupLocator() { locator.registerLazySingleton(() => LeagueTableService()); locator.registerLazySingleton(() => TopScorerService()); locator.registerLazySingleton(() => FirebaseService()); + locator.registerLazySingleton(() => FirestoreService()); locator.registerFactory(() => HomeViewModel(0)); locator.registerFactory(() => MatchStatViewModel(null)); locator.registerFactory(() => MatchEventViewModel(null)); From 10eba621b6c9a720d1ab955d692f57f75314029e Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Mon, 27 Jul 2020 03:05:53 +0530 Subject: [PATCH 33/49] Modified start screen --- assets/images/football_cover.png | Bin 0 -> 72144 bytes assets/images/football_cover.svg | 1 - lib/screens/StartScreen.dart | 46 ++++++++++++++++++++----------- 3 files changed, 30 insertions(+), 17 deletions(-) create mode 100644 assets/images/football_cover.png delete mode 100644 assets/images/football_cover.svg diff --git a/assets/images/football_cover.png b/assets/images/football_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..94a593f642b01a035bc2768e80c661f36ee159a9 GIT binary patch literal 72144 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 day \ No newline at end of file diff --git a/lib/screens/StartScreen.dart b/lib/screens/StartScreen.dart index 7ed6e4b..986685a 100644 --- a/lib/screens/StartScreen.dart +++ b/lib/screens/StartScreen.dart @@ -23,31 +23,31 @@ class StartScreen extends StatelessWidget { child: Container( height: MediaQuery.of(context).size.height, child: Column( - mainAxisAlignment: MainAxisAlignment.spaceAround, + mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( height: MediaQuery.of(context).size.height * 0.5, - child: Image.asset('assets/images/football_cover.svg'), + child: Image.asset('assets/images/football_cover.png'), ), Text( 'Football just it was meant to be', textAlign: TextAlign.center, style: TextStyle(fontSize: 30, fontWeight: FontWeight.w600), ), - Flexible( - child: Container( - padding: EdgeInsets.symmetric(horizontal: 30.0), - child: Text( - 'You can get football scores and news directly from your home...', - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 15, - fontWeight: FontWeight.w400, - color: Color(0xff34648c), - ), - ), - )), +// Flexible( +// child: Container( +// padding: EdgeInsets.symmetric(horizontal: 30.0), +// child: Text( +// 'You can get football scores and news directly from your home...', +// textAlign: TextAlign.center, +// style: TextStyle( +// fontSize: 15, +// fontWeight: FontWeight.w400, +// color: Color(0xff34648c), +// ), +// ), +// )), Padding( padding: EdgeInsets.all(8.0), child: Row( @@ -107,7 +107,21 @@ class StartScreen extends StatelessWidget { ) ], ), - ) + ), + Divider(thickness: 0.7, color: Theme.of(context).primaryColor,), + Flexible( + child: Container( + padding: EdgeInsets.symmetric(horizontal: 30.0), + child: Text( + 'Continue as guest...', + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w400, + color: Color(0xff34648c), + ), + ), + )) ], ), ), From 8270030b70f9d14929c9cfb584f8d28a9bb2f71e Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Mon, 27 Jul 2020 23:46:56 +0530 Subject: [PATCH 34/49] Added cloud firestore get and set data logic in app --- lib/main.dart | 3 +- lib/screens/DashboardScreen.dart | 12 +- lib/screens/FavouriteScreen2.dart | 90 +++++++++----- lib/screens/IntroductionScreen.dart | 175 ++++++++++++++++++++++++++++ lib/screens/StartScreen.dart | 133 --------------------- lib/services/CustomRouter.dart | 7 +- lib/services/FirestoreService.dart | 6 + lib/start.dart | 9 +- 8 files changed, 266 insertions(+), 169 deletions(-) create mode 100644 lib/screens/IntroductionScreen.dart delete mode 100644 lib/screens/StartScreen.dart diff --git a/lib/main.dart b/lib/main.dart index 52cbb62..9d2c0bf 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -6,7 +6,6 @@ import 'services/CustomRouter.dart'; import 'services/GetItLocator.dart'; import 'services/LocalStorage.dart'; import 'services/FirebaseService.dart'; -import 'screens/StartScreen.dart'; void main() async{ setupLocator(); final ThemeData theme = ThemeData( @@ -29,7 +28,7 @@ void main() async{ child: MaterialApp( debugShowCheckedModeBanner: false, theme: theme, - home: StartScreen(), + home: Start(), onGenerateRoute: Router().generateRoutes, navigatorObservers: [ HeroController() diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index c6d9381..18e4f2a 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -20,6 +20,7 @@ class DashboardScreen extends StatefulWidget { class _DashboardScreenState extends State { FirebaseService firebaseService = locator(); FirestoreService firestoreService = locator(); + bool inProgress = false; String teamLogo, teamName, leagueName, leagueLogo; @override @@ -133,6 +134,9 @@ class _DashboardScreenState extends State { width: MediaQuery.of(context).size.width * 0.5, child: RaisedButton( onPressed: () async { + setState(() { + inProgress = true; + }); final User user = await firebaseService.signInWithGoogle(); model.currentUser = user; @@ -156,9 +160,15 @@ class _DashboardScreenState extends State { }; await firestoreService.setData( userId: user.uid, data: data); + setState(() { + inProgress = false; + }); }, padding: EdgeInsets.symmetric(horizontal: 4.0), - child: Row( + child: inProgress ? CircularProgressIndicator( + valueColor: + new AlwaysStoppedAnimation(Color(0xfff5f5f5)), + ) : Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ diff --git a/lib/screens/FavouriteScreen2.dart b/lib/screens/FavouriteScreen2.dart index db2ce90..15ab52d 100644 --- a/lib/screens/FavouriteScreen2.dart +++ b/lib/screens/FavouriteScreen2.dart @@ -4,10 +4,12 @@ import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:provider/provider.dart'; import 'package:sportsmojo/Provider/AppProvider.dart'; import 'package:sportsmojo/commons/custom_icons.dart'; +import 'package:sportsmojo/models/User.dart'; import '../models/Team.dart'; import '../services/TeamService.dart'; import '../services/LocalStorage.dart'; import '../services/GetItLocator.dart'; +import '../services/FirestoreService.dart'; class FavouriteTeam extends StatefulWidget { final int leagueId; @@ -23,6 +25,7 @@ class _FavouriteTeamState extends State { List originalTeamList; Future> futureTeamList; final TextEditingController _controller = new TextEditingController(); + final FirestoreService _firestoreService = locator(); @override void initState() { @@ -60,9 +63,18 @@ class _FavouriteTeamState extends State { children: [ Padding( padding: const EdgeInsets.only(bottom: 16.0), - child: Text('Loading teams', style: TextStyle(fontSize: 22, fontWeight: FontWeight.w400, color: Colors.white,),), + child: Text( + 'Loading teams', + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.w400, + color: Colors.white, + ), + ), ), - SpinKitFadingCube(color: Colors.white,) + SpinKitFadingCube( + color: Colors.white, + ) ], ), ); @@ -71,8 +83,8 @@ class _FavouriteTeamState extends State { originalTeamList = snapshot.data; teamList = originalTeamList .where((team) => team.name - .toLowerCase() - .contains(_controller.text.toLowerCase())) + .toLowerCase() + .contains(_controller.text.toLowerCase())) .toList(); return Column( children: [ @@ -125,11 +137,12 @@ class _FavouriteTeamState extends State { style: TextStyle(fontSize: 18), onChanged: (String val) { setState(() { - teamList = originalTeamList - .where((team) => team.name - .toLowerCase() - .contains(_controller.text.toLowerCase())) - .toList(); + teamList = originalTeamList + .where((team) => team.name + .toLowerCase() + .contains(_controller.text + .toLowerCase())) + .toList(); }); }, ), @@ -187,26 +200,8 @@ class _FavouriteTeamState extends State { .map((team) => Padding( padding: const EdgeInsets.all(8.0), child: InkWell( - onTap: () { - LocalStorage.setString('teamName', team.name); - LocalStorage.setString('teamId', '${team.id}'); - LocalStorage.setString('teamLogo', team.logo); - LocalStorage.setString('leagueName', '${widget.leagueName}'); - LocalStorage.setString('leagueId', '${widget.leagueId}'); - appProvider.selectedLeague = widget.leagueName; - appProvider.leagueWiseScores = null; - appProvider.favouriteTeamScores = null; - appProvider.newsList = null; - appProvider.favouriteNewsList = null; - appProvider.leagueTableEntries = null; - appProvider.navbarIndex = 0; - Navigator.of(context) - .pushReplacementNamed('/home', arguments: { - 'favouriteTeamMessage': { - 'title': 'Success', - 'content': '${team.name} added as your favourite team' - } - }); + onTap: () async { + await handleTap(team: team, appProvider: appProvider); }, child: Container( height: 40, @@ -240,4 +235,41 @@ class _FavouriteTeamState extends State { )) .toList()); } + + Future handleTap({Team team, AppProvider appProvider}) async { + { + LocalStorage.setString('teamName', team.name); + LocalStorage.setString('teamId', '${team.id}'); + LocalStorage.setString('teamLogo', team.logo); + LocalStorage.setString('leagueName', '${widget.leagueName}'); + LocalStorage.setString('leagueId', '${widget.leagueId}'); + appProvider.selectedLeague = widget.leagueName; + appProvider.leagueWiseScores = null; + appProvider.favouriteTeamScores = null; + appProvider.newsList = null; + appProvider.favouriteNewsList = null; + appProvider.leagueTableEntries = null; + appProvider.navbarIndex = 0; + if (appProvider.currentUser != null) { + final User user = appProvider.currentUser; + final Map data = { + 'name': user.name, + 'email': user.email, + 'teamName': team.name, + 'teamId': '${team.id}', + 'teamLogo': team.logo, + 'leagueName': '${widget.leagueName}', + 'leagueId': '${widget.leagueId}' + }; + await _firestoreService.setData(userId: user.uid, data: data); + } + Navigator.of(context).pushReplacementNamed('/home', arguments: { + 'favouriteTeamMessage': { + 'title': 'Success', + 'content': '${team.name} added as your favourite team' + } + }); + } + ; + } } diff --git a/lib/screens/IntroductionScreen.dart b/lib/screens/IntroductionScreen.dart new file mode 100644 index 0000000..e4fd2c8 --- /dev/null +++ b/lib/screens/IntroductionScreen.dart @@ -0,0 +1,175 @@ +import 'package:auto_size_text/auto_size_text.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../services/FirebaseService.dart'; +import '../services/FirestoreService.dart'; +import '../services/LocalStorage.dart'; +import '../services/GetItLocator.dart'; +import '../Provider/AppProvider.dart'; +import '../models/User.dart'; + +class IntroductionScreen extends StatefulWidget { + @override + _IntroductionScreenState createState() => _IntroductionScreenState(); +} + +class _IntroductionScreenState extends State { + FirebaseService firebaseService = locator(); + + FirestoreService firestoreService = locator(); + + bool inProgress = false; + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Consumer( + builder: (context, model, child) => Padding( + padding: const EdgeInsets.all(12.0), + child: Container( + color: Colors.white, + child: Container( + height: MediaQuery.of(context).size.height, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + height: MediaQuery.of(context).size.height * 0.6, + child: Image.asset('assets/images/football_cover.png'), + ), + Text( + 'Football just it was meant to be', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 30, fontWeight: FontWeight.w600), + ), + Flexible( + child: Container( + padding: EdgeInsets.symmetric(horizontal: 30.0), + child: Text( + 'You can get football scores and news directly from your home...', + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.w400, + color: Color(0xff34648c), + ), + ), + )), + Column( + children: [ + Padding( + padding: EdgeInsets.all(4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: MediaQuery.of(context).size.width * 0.5, + child: RaisedButton( + onPressed: () async { + setState(() { + inProgress = true; + }); + final User user = + await firebaseService.signInWithGoogle(); + model.currentUser = user; + final Map data = + await firestoreService.getData( + userId: user.uid); + if (data.containsKey('teamName') && + data['teamName'] != null && + data.containsKey('teamId') && + data['teamId'] != null && + data.containsKey('teamLogo') && + data['teamLogo'] != null && + data.containsKey('leagueName') && + data['leagueName'] != null && + data.containsKey('leagueId') && + data['leagueId'] != null) { + LocalStorage.setString( + 'teamName', data['teamName']); + LocalStorage.setString( + 'teamId', data['teamId']); + LocalStorage.setString( + 'teamLogo', data['teamLogo']); + LocalStorage.setString( + 'leagueName', data['leagueName']); + LocalStorage.setString( + 'leagueId', data['leagueId']); + model.selectedLeague = data['leagueName']; + model.leagueWiseScores = null; + model.favouriteTeamScores = null; + model.newsList = null; + model.favouriteNewsList = null; + model.leagueTableEntries = null; + model.navbarIndex = 0; + Navigator.of(context) + .pushReplacementNamed('/home', arguments: { + 'favouriteTeamMessage': { + 'title': 'Success', + 'content': '${data['teamName']} added as your favourite team' + } + }); + } else { + Navigator.of(context) + .pushReplacementNamed('/selectleague'); + } + }, + padding: EdgeInsets.symmetric(horizontal: 4.0), + child: inProgress ? CircularProgressIndicator( + valueColor: + new AlwaysStoppedAnimation(Color(0xfff5f5f5)), + ) : Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Container( + color: Colors.white, + height: 30, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset( + 'assets/images/google_logo.png'), + )), + Padding( + padding: const EdgeInsets.all(8.0), + child: AutoSizeText( + 'Sign in with Google', + style: TextStyle(color: Colors.white), + ), + ) + ], + ), + color: Color(0xff4285f4), + ), + ) + ], + ), + ), + RaisedButton( + onPressed: () { + Navigator.of(context) + .pushReplacementNamed('/selectleague'); + }, + color: Theme.of(context).primaryColor, + child: Text( + 'Continue as guest', + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w400, + color: Colors.white, + ), + ), + ), + ], + ) + ], + ), + ), + ), + ), + ), + ); + } +} diff --git a/lib/screens/StartScreen.dart b/lib/screens/StartScreen.dart deleted file mode 100644 index 986685a..0000000 --- a/lib/screens/StartScreen.dart +++ /dev/null @@ -1,133 +0,0 @@ -import 'package:auto_size_text/auto_size_text.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import '../services/FirebaseService.dart'; -import '../services/FirestoreService.dart'; -import '../services/LocalStorage.dart'; -import '../services/GetItLocator.dart'; -import '../Provider/AppProvider.dart'; -import '../models/User.dart'; - -class StartScreen extends StatelessWidget { - FirebaseService firebaseService = locator(); - FirestoreService firestoreService = locator(); - - @override - Widget build(BuildContext context) { - return Scaffold( - body: Consumer( - builder: (context, model, child) => Padding( - padding: const EdgeInsets.all(12.0), - child: Container( - color: Colors.white, - child: Container( - height: MediaQuery.of(context).size.height, - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Container( - height: MediaQuery.of(context).size.height * 0.5, - child: Image.asset('assets/images/football_cover.png'), - ), - Text( - 'Football just it was meant to be', - textAlign: TextAlign.center, - style: TextStyle(fontSize: 30, fontWeight: FontWeight.w600), - ), -// Flexible( -// child: Container( -// padding: EdgeInsets.symmetric(horizontal: 30.0), -// child: Text( -// 'You can get football scores and news directly from your home...', -// textAlign: TextAlign.center, -// style: TextStyle( -// fontSize: 15, -// fontWeight: FontWeight.w400, -// color: Color(0xff34648c), -// ), -// ), -// )), - Padding( - padding: EdgeInsets.all(8.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - width: MediaQuery.of(context).size.width * 0.5, - child: RaisedButton( - onPressed: () async { - final User user = - await firebaseService.signInWithGoogle(); - model.currentUser = user; - final Map data = { - 'name': user.name, - 'email': user.email, - 'teamName': await LocalStorage.getString( - 'teamName', - ), - 'teamId': await LocalStorage.getString( - 'teamId', - ), - 'teamLogo': await LocalStorage.getString( - 'teamLogo', - ), - 'leagueName': - await LocalStorage.getString('leagueName'), - 'leagueId': await LocalStorage.getString( - 'leagueId', - ) - }; - await firestoreService.setData( - userId: user.uid, data: data); - }, - padding: EdgeInsets.symmetric(horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Container( - color: Colors.white, - height: 30, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - 'assets/images/google_logo.png'), - )), - Padding( - padding: const EdgeInsets.all(8.0), - child: AutoSizeText( - 'Sign in with Google', - style: TextStyle(color: Colors.white), - ), - ) - ], - ), - color: Color(0xff4285f4), - ), - ) - ], - ), - ), - Divider(thickness: 0.7, color: Theme.of(context).primaryColor,), - Flexible( - child: Container( - padding: EdgeInsets.symmetric(horizontal: 30.0), - child: Text( - 'Continue as guest...', - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 18, - fontWeight: FontWeight.w400, - color: Color(0xff34648c), - ), - ), - )) - ], - ), - ), - ), - ), - ), - ); - } -} diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index badc9a9..10721f1 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -10,6 +10,7 @@ import '../screens/FavouriteScreen2.dart'; import '../screens/LeagueTableScreen.dart'; import '../screens/DashboardScreen.dart'; import '../screens/FavouriteScreen1.dart'; +import '../screens/IntroductionScreen.dart'; class Router { Route generateRoutes(RouteSettings settings) { @@ -22,7 +23,8 @@ class Router { '/newsarticle', '/selectteam', '/matchstat', - '/selectleague' + '/selectleague', + '/introduction' ]; if (validRoutes.contains(settings.name)) { return customRoutes(settings.name, settings.arguments); @@ -75,7 +77,8 @@ class Router { '/matchstat': MatchStatScreen( score: score, ), - '/selectleague': FavouriteLeague() + '/selectleague': FavouriteLeague(), + '/introduction': IntroductionScreen() }; return PageRouteBuilder( diff --git a/lib/services/FirestoreService.dart b/lib/services/FirestoreService.dart index 853f927..bb83216 100644 --- a/lib/services/FirestoreService.dart +++ b/lib/services/FirestoreService.dart @@ -12,4 +12,10 @@ class FirestoreService { .document(userId) .setData(data, merge: true); } + + Future> getData({String userId}) async { + final DocumentSnapshot document = await _db.collection('users').document(userId).get(); + print(document); + return document.data; + } } diff --git a/lib/start.dart b/lib/start.dart index ca93690..dc4b1ec 100644 --- a/lib/start.dart +++ b/lib/start.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'services/LocalStorage.dart'; -import 'screens/FavouriteScreen1.dart'; import 'dart:async'; +import 'screens/IntroductionScreen.dart'; class Start extends StatefulWidget { @@ -10,11 +10,16 @@ class Start extends StatefulWidget { class StartState extends State { Future checkTeam() async { + LocalStorage.setString('teamName', null); + LocalStorage.setString('teamId', null); + LocalStorage.setString('teamLogo', null); + LocalStorage.setString('leagueName', null); + LocalStorage.setString('leagueId', null); final String teamName = await LocalStorage.getString('teamName'); if (teamName != null) { Navigator.of(context).pushReplacementNamed('/home'); } else { - Navigator.of(context).pushReplacementNamed('/selectleague'); + Navigator.of(context).pushReplacementNamed('/introduction'); } } From 7500904a8620d923a99f90d590b2decb9e0b0cf3 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Tue, 28 Jul 2020 00:58:55 +0530 Subject: [PATCH 35/49] Added loading overlay --- lib/main.dart | 19 +++++++++++-------- lib/screens/FavouriteScreen2.dart | 14 ++++++++++++++ lib/start.dart | 5 ----- pubspec.lock | 7 +++++++ pubspec.yaml | 1 + 5 files changed, 33 insertions(+), 13 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 9d2c0bf..de2dab8 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'start.dart'; import 'package:provider/provider.dart'; import 'Provider/AppProvider.dart'; @@ -25,14 +26,16 @@ void main() async{ create: (context) => appProvider, ) ], - child: MaterialApp( - debugShowCheckedModeBanner: false, - theme: theme, - home: Start(), - onGenerateRoute: Router().generateRoutes, - navigatorObservers: [ - HeroController() - ], + child: FlutterEasyLoading( + child: MaterialApp( + debugShowCheckedModeBanner: false, + theme: theme, + home: Start(), + onGenerateRoute: Router().generateRoutes, + navigatorObservers: [ + HeroController() + ], + ), ), ) ); diff --git a/lib/screens/FavouriteScreen2.dart b/lib/screens/FavouriteScreen2.dart index 15ab52d..eaffdf0 100644 --- a/lib/screens/FavouriteScreen2.dart +++ b/lib/screens/FavouriteScreen2.dart @@ -2,6 +2,7 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:provider/provider.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:sportsmojo/Provider/AppProvider.dart'; import 'package:sportsmojo/commons/custom_icons.dart'; import 'package:sportsmojo/models/User.dart'; @@ -251,6 +252,18 @@ class _FavouriteTeamState extends State { appProvider.leagueTableEntries = null; appProvider.navbarIndex = 0; if (appProvider.currentUser != null) { + EasyLoading.instance + ..displayDuration = const Duration(milliseconds: 2000) + ..indicatorType = EasyLoadingIndicatorType.chasingDots + ..loadingStyle = EasyLoadingStyle.custom + ..indicatorSize = 45.0 + ..radius = 10.0 + ..backgroundColor = Theme.of(context).primaryColor + ..indicatorColor = Colors.white + ..maskColor = Colors.blue.withOpacity(0.5) + ..progressColor = Theme.of(context).primaryColor + ..textColor = Colors.white; + EasyLoading.show(status: 'Syncing data'); final User user = appProvider.currentUser; final Map data = { 'name': user.name, @@ -262,6 +275,7 @@ class _FavouriteTeamState extends State { 'leagueId': '${widget.leagueId}' }; await _firestoreService.setData(userId: user.uid, data: data); + EasyLoading.dismiss(); } Navigator.of(context).pushReplacementNamed('/home', arguments: { 'favouriteTeamMessage': { diff --git a/lib/start.dart b/lib/start.dart index dc4b1ec..ee211e5 100644 --- a/lib/start.dart +++ b/lib/start.dart @@ -10,11 +10,6 @@ class Start extends StatefulWidget { class StartState extends State { Future checkTeam() async { - LocalStorage.setString('teamName', null); - LocalStorage.setString('teamId', null); - LocalStorage.setString('teamLogo', null); - LocalStorage.setString('leagueName', null); - LocalStorage.setString('leagueId', null); final String teamName = await LocalStorage.getString('teamName'); if (teamName != null) { Navigator.of(context).pushReplacementNamed('/home'); diff --git a/pubspec.lock b/pubspec.lock index c25e3ec..795041b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -188,6 +188,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.2.2" + flutter_easyloading: + dependency: "direct main" + description: + name: flutter_easyloading + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.4" flutter_spinkit: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index c5309f3..3dac4b0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -40,6 +40,7 @@ dependencies: firebase_auth: ^0.16.1 google_sign_in: ^4.5.1 cloud_firestore: ^0.13.7 + flutter_easyloading: ^1.0.1 dev_dependencies: flutter_test: sdk: flutter From 02e1804c2b7b57049c502b1e440a473663800513 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Wed, 29 Jul 2020 02:00:43 +0530 Subject: [PATCH 36/49] Added firebase remote config and better news source --- ios/Flutter/Generated 25.xcconfig | 10 ++++++ ios/Flutter/flutter_export_environment 25.sh | 11 +++++++ lib/Provider/AppProvider.dart | 5 +-- lib/main.dart | 5 ++- lib/models/News.dart | 14 ++++---- lib/screens/DashboardScreen.dart | 5 +++ lib/screens/FavouriteScreen1.dart | 5 +++ lib/screens/FavouriteScreen2.dart | 5 +++ lib/screens/HomeScreen.dart | 5 +++ lib/screens/IntroductionScreen.dart | 5 +++ lib/screens/LeagueTableScreen.dart | 5 +++ lib/screens/News.dart | 5 +++ lib/screens/NewsArticle.dart | 5 +-- lib/screens/ScoreScreen.dart | 5 +++ lib/services/FirestoreService.dart | 1 - lib/services/GetItLocator.dart | 5 ++- lib/services/HttpService.dart | 8 +++-- lib/services/LeagueTableService.dart | 6 +++- lib/services/MatchEventService.dart | 2 +- lib/services/NewsService.dart | 19 +++++++---- lib/services/RemoteConfigService.dart | 34 ++++++++++++++++++++ lib/services/ScoreService.dart | 10 ++++-- lib/services/StatService.dart | 3 +- lib/services/TeamService.dart | 8 ++++- lib/services/TopScorerService.dart | 7 +++- lib/start.dart | 5 +++ lib/widgets/LeagueDropdown.dart | 6 ++++ lib/widgets/LeagueTableWiget.dart | 5 +++ lib/widgets/Scorers.dart | 5 +++ lib/widgets/SettingsDialog.dart | 5 +++ lib/widgets/Stats.dart | 5 +++ lib/widgets/TopScorer.dart | 5 +++ pubspec.lock | 7 ++++ pubspec.yaml | 1 + 34 files changed, 208 insertions(+), 29 deletions(-) create mode 100644 ios/Flutter/Generated 25.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 25.sh create mode 100644 lib/services/RemoteConfigService.dart diff --git a/ios/Flutter/Generated 25.xcconfig b/ios/Flutter/Generated 25.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 25.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 25.sh b/ios/Flutter/flutter_export_environment 25.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 25.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index 36651ca..9f33c29 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -11,7 +11,8 @@ import '../services/LeagueTableService.dart'; import '../services/TopScorerService.dart'; import '../models/Player.dart'; import '../models/User.dart'; -import '../services/FirebaseService.dart'; +import '../services/RemoteConfigService.dart'; + class AppProvider extends ChangeNotifier { AppProvider(this._navbarIndex, this._selectedLeague, this._startDate, this._endDate, this._currentUser); int _navbarIndex; @@ -108,7 +109,7 @@ class AppProvider extends ChangeNotifier { } Future loadAllNews() async{ - _newsList = await _newsService.fetchNews('football'); + _newsList = await _newsService.fetchNews('european football'); notifyListeners(); } diff --git a/lib/main.dart b/lib/main.dart index de2dab8..804121b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -7,15 +7,18 @@ import 'services/CustomRouter.dart'; import 'services/GetItLocator.dart'; import 'services/LocalStorage.dart'; import 'services/FirebaseService.dart'; +import 'services/RemoteConfigService.dart'; void main() async{ - setupLocator(); final ThemeData theme = ThemeData( primaryColor: Color(0xFF50C878), primaryColorDark: Color(0XFFA0A5AA) ); WidgetsFlutterBinding.ensureInitialized(); + await setupLocator(); final leagueName = await LocalStorage.getString('leagueName'); FirebaseService firebaseService = locator(); + final RemoteConfigService _remoteConfigService = locator(); + await _remoteConfigService.initialise(); final currentUser = await firebaseService.getCurrentUser(); AppProvider appProvider = locator(param1: leagueName, param2: currentUser); diff --git a/lib/models/News.dart b/lib/models/News.dart index 2521474..ff003a2 100644 --- a/lib/models/News.dart +++ b/lib/models/News.dart @@ -1,16 +1,18 @@ class News { String source; +// String sourceLogo; String title; String content; String url; String imageUrl; - String publishedAt; + DateTime publishedAt; News({this.source, this.title, this.content, this.url, this.imageUrl, this.publishedAt}); News.fromJson(Map parsedJson) - : source = parsedJson['source']['name'], - title = parsedJson['title'], - content = parsedJson['content'], + : source = parsedJson['provider'][0]['name'], +// sourceLogo = parsedJson['provider'][0]['image']['thumbnail']['contentUrl'], + title = parsedJson['name'], + content = parsedJson['description'], url = parsedJson['url'], - imageUrl = parsedJson['urlToImage'], - publishedAt = parsedJson['publishedAt']; + imageUrl = parsedJson['image'] != null ? parsedJson['image']['thumbnail']['contentUrl'] : 'https://www.lissah.com/lissahadmin/uploads/news/default.png', + publishedAt = DateTime.parse(parsedJson['datePublished']); } \ No newline at end of file diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index 18e4f2a..bff95d0 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -40,6 +40,11 @@ class _DashboardScreenState extends State { super.initState(); } + @override + void dispose() { + super.dispose(); + } + @override Widget build(BuildContext context) { return SafeArea( diff --git a/lib/screens/FavouriteScreen1.dart b/lib/screens/FavouriteScreen1.dart index cbba8d9..1403042 100644 --- a/lib/screens/FavouriteScreen1.dart +++ b/lib/screens/FavouriteScreen1.dart @@ -16,6 +16,11 @@ class _FavouriteLeagueState extends State { leagueList = leagues.entries.toList(); } + @override + void dispose() { + super.dispose(); + } + @override Widget build(BuildContext context) { return SafeArea( diff --git a/lib/screens/FavouriteScreen2.dart b/lib/screens/FavouriteScreen2.dart index eaffdf0..ee60c05 100644 --- a/lib/screens/FavouriteScreen2.dart +++ b/lib/screens/FavouriteScreen2.dart @@ -37,6 +37,11 @@ class _FavouriteTeamState extends State { }); } + @override + void dispose() { + super.dispose(); + } + @override Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index c6965c9..4f8acae 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -44,6 +44,11 @@ class _HomeScreenState extends State with TickerProviderStateMixin { WidgetsBinding.instance.addPostFrameCallback((_) => showAlert()); } + @override + void dispose() { + super.dispose(); + } + HomeViewModel _viewModel = locator(); @override diff --git a/lib/screens/IntroductionScreen.dart b/lib/screens/IntroductionScreen.dart index e4fd2c8..98ddc7f 100644 --- a/lib/screens/IntroductionScreen.dart +++ b/lib/screens/IntroductionScreen.dart @@ -20,6 +20,11 @@ class _IntroductionScreenState extends State { bool inProgress = false; + @override + void dispose() { + super.dispose(); + } + @override Widget build(BuildContext context) { return Scaffold( diff --git a/lib/screens/LeagueTableScreen.dart b/lib/screens/LeagueTableScreen.dart index 05b5fa7..c688331 100644 --- a/lib/screens/LeagueTableScreen.dart +++ b/lib/screens/LeagueTableScreen.dart @@ -20,6 +20,11 @@ class _LeagueTableScreenState extends State _tabController = TabController(vsync: this, length: 3); } + @override + void dispose() { + super.dispose(); + } + @override Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); diff --git a/lib/screens/News.dart b/lib/screens/News.dart index 0e8f6dc..2b31fd0 100644 --- a/lib/screens/News.dart +++ b/lib/screens/News.dart @@ -35,6 +35,11 @@ class _NewsScreenState extends State with TickerProviderStateMixin { }); } + @override + void dispose() { + super.dispose(); + } + Widget build(BuildContext context) { return Consumer( builder: (context, model, child) => Scaffold( diff --git a/lib/screens/NewsArticle.dart b/lib/screens/NewsArticle.dart index babee7d..2836c2b 100644 --- a/lib/screens/NewsArticle.dart +++ b/lib/screens/NewsArticle.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:cached_network_image/cached_network_image.dart'; +import 'package:intl/intl.dart'; import '../models/News.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -60,7 +61,7 @@ class NewsArticleScreen extends StatelessWidget { style: TextStyle(fontSize: 16), ), Text( - news.publishedAt, + DateFormat('E, d MMMM, hh:mm aaa').format(news.publishedAt), style: TextStyle( fontSize: 14, fontWeight: FontWeight.w400, @@ -86,7 +87,7 @@ class NewsArticleScreen extends StatelessWidget { ), Flexible( child: Text( - '${news.content}${news.content}${news.content}${news.content}', + '${news.content}', style: TextStyle( fontSize: 18, wordSpacing: 1.1, diff --git a/lib/screens/ScoreScreen.dart b/lib/screens/ScoreScreen.dart index 5001246..1ac02b8 100644 --- a/lib/screens/ScoreScreen.dart +++ b/lib/screens/ScoreScreen.dart @@ -29,6 +29,11 @@ class _ScoreScreenState extends State }); } + @override + void dispose() { + super.dispose(); + } + Widget build(BuildContext context) { diff --git a/lib/services/FirestoreService.dart b/lib/services/FirestoreService.dart index bb83216..5cbd5df 100644 --- a/lib/services/FirestoreService.dart +++ b/lib/services/FirestoreService.dart @@ -15,7 +15,6 @@ class FirestoreService { Future> getData({String userId}) async { final DocumentSnapshot document = await _db.collection('users').document(userId).get(); - print(document); return document.data; } } diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index 24ef957..8f5e3a7 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -15,10 +15,12 @@ import '../Provider/MatchEventViewModel.dart'; import '../models/User.dart'; import 'FirebaseService.dart'; import 'FirestoreService.dart'; +import 'RemoteConfigService.dart'; GetIt locator = GetIt.instance; -void setupLocator() { +Future setupLocator() async{ DateTime now = DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day); + RemoteConfigService remoteConfigService = await RemoteConfigService.getInstance(); locator.registerLazySingleton(() => NewsService()); locator.registerLazySingleton(() => TeamService()); locator.registerLazySingleton(() => ScoreService()); @@ -28,6 +30,7 @@ void setupLocator() { locator.registerLazySingleton(() => TopScorerService()); locator.registerLazySingleton(() => FirebaseService()); locator.registerLazySingleton(() => FirestoreService()); + locator.registerSingleton(remoteConfigService); locator.registerFactory(() => HomeViewModel(0)); locator.registerFactory(() => MatchStatViewModel(null)); locator.registerFactory(() => MatchEventViewModel(null)); diff --git a/lib/services/HttpService.dart b/lib/services/HttpService.dart index 42b42f1..f06fc49 100644 --- a/lib/services/HttpService.dart +++ b/lib/services/HttpService.dart @@ -1,12 +1,14 @@ import 'package:dio/dio.dart'; -import '../secret.dart'; +import 'RemoteConfigService.dart'; +import 'GetItLocator.dart'; class HttpService { static Dio getApiClient() { + final RemoteConfigService _remoteConfigService = locator(); BaseOptions options = new BaseOptions(headers: { 'x-rapidapi-host': 'v3.football.api-sports.io', - 'x-rapidapi-key': scoreApiKey - }); + 'x-rapidapi-key': _remoteConfigService.getString(key: 'scoreApiKey') + }, baseUrl: 'https://v3.football.api-sports.io/'); final _dio = new Dio(options); return _dio; } diff --git a/lib/services/LeagueTableService.dart b/lib/services/LeagueTableService.dart index 79fa946..18b1585 100644 --- a/lib/services/LeagueTableService.dart +++ b/lib/services/LeagueTableService.dart @@ -2,14 +2,18 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'HttpService.dart'; import '../models/LeagueTable.dart'; +import 'GetItLocator.dart'; +import 'RemoteConfigService.dart'; class LeagueTableService { final Dio dio = HttpService.getApiClient(); + final RemoteConfigService _remoteConfig = locator(); Future> fetchLeagueTable({@required String id}) async{ + final String season = _remoteConfig.getString(key: 'season'); List _leagueTableEntries = []; try { - final response = await dio.get('https://v3.football.api-sports.io/standings?season=2019&league=${id}'); + final response = await dio.get('standings?season=$season&league=${id}'); if (response.statusCode == 200) { final unparsedJson = response.data['response'][0]['league']['standings'][0].toList(); for (int i = 0; i < unparsedJson.length; i++) { diff --git a/lib/services/MatchEventService.dart b/lib/services/MatchEventService.dart index 89f4033..2c603a7 100644 --- a/lib/services/MatchEventService.dart +++ b/lib/services/MatchEventService.dart @@ -8,7 +8,7 @@ class MatchEventService { Future> fetchEvents({@required int fixtureId}) async{ List events = []; try { - final response = await dio.get('https://v3.football.api-sports.io/fixtures/events?fixture=${fixtureId}'); + final response = await dio.get('fixtures/events?fixture=${fixtureId}'); if(response.statusCode == 200) { final unparsedJson = response.data['response'].toList(); for(int i = 0; i < unparsedJson.length; i++) { diff --git a/lib/services/NewsService.dart b/lib/services/NewsService.dart index 8922cfa..179a1cc 100644 --- a/lib/services/NewsService.dart +++ b/lib/services/NewsService.dart @@ -1,19 +1,26 @@ import 'package:dio/dio.dart'; import '../models/News.dart'; -import '../secret.dart'; +import 'GetItLocator.dart'; +import 'RemoteConfigService.dart'; + class NewsService { - final dio = new Dio(); Future> fetchNews(String query) async { + final RemoteConfigService _remoteConfigService = + locator(); + BaseOptions options = BaseOptions(headers: { + 'Ocp-Apim-Subscription-Key': + _remoteConfigService.getString(key: 'newsApiKey') + }); + final dio = new Dio(options); List newsList = []; try { - final response = await dio.get('https://newsapi.org/v2/everything', + final response = await dio.get( + 'https://aniket.cognitiveservices.azure.com/bing/v7.0/news/search', queryParameters: { - 'language': 'en', 'q': query, - 'apiKey': newsApiKey }); if (response.statusCode == 200) { - final unparsedNews = response.data['articles'].toList(); + final unparsedNews = response.data['value'].toList(); for (int i = 0; i < unparsedNews.length; i++) { newsList.add(News.fromJson(unparsedNews[i])); } diff --git a/lib/services/RemoteConfigService.dart b/lib/services/RemoteConfigService.dart new file mode 100644 index 0000000..1a09c38 --- /dev/null +++ b/lib/services/RemoteConfigService.dart @@ -0,0 +1,34 @@ +import 'package:firebase_remote_config/firebase_remote_config.dart'; + +class RemoteConfigService { + final RemoteConfig _remoteConfig; + + static RemoteConfigService _instance; + static Future getInstance() async { + if (_instance == null) { + _instance = RemoteConfigService( + remoteConfig: await RemoteConfig.instance, + ); + } + + return _instance; + } + + RemoteConfigService({RemoteConfig remoteConfig}) + : _remoteConfig = remoteConfig; + + Future initialise() async{ + final Map defaults = { + 'season': 2019, + 'scoreApiKey': "", + 'newsApiKey': "" + }; + await _remoteConfig.setDefaults(defaults); + await _remoteConfig.fetch(expiration: Duration(hours: 1)); + await _remoteConfig.activateFetched(); + } + + String getString({String key}){ + return _remoteConfig.getString(key); + } +} \ No newline at end of file diff --git a/lib/services/ScoreService.dart b/lib/services/ScoreService.dart index 3fcce76..3a00de4 100644 --- a/lib/services/ScoreService.dart +++ b/lib/services/ScoreService.dart @@ -1,14 +1,19 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import '../models/Score.dart'; +import 'RemoteConfigService.dart'; +import 'GetItLocator.dart'; import 'HttpService.dart'; class ScoreService { final Dio dio = HttpService.getApiClient(); + final RemoteConfigService _remoteConfig = locator(); + Future> fetchScoresByLeague({@required String id}) async { + final String season = _remoteConfig.getString(key: 'season'); List scoresList = []; try { final response = - await dio.get('https://v3.football.api-sports.io/fixtures?league=${id}&season=2019&timezone=Asia/Kolkata'); + await dio.get('fixtures?league=${id}&season=$season&timezone=Asia/Kolkata'); if (response.statusCode == 200) { final unparsedJson = response.data['response'].toList(); for (int i = 0; i < unparsedJson.length; i++) { @@ -25,10 +30,11 @@ class ScoreService { } Future> fetchScoresByTeam({@required String id}) async { + final String season = _remoteConfig.getString(key: 'season'); List scoresList = []; try { final response = - await dio.get('https://v3.football.api-sports.io/fixtures?team=${id}&season=2019&timezone=Asia/Kolkata'); + await dio.get('fixtures?team=${id}&season=$season&timezone=Asia/Kolkata'); if (response.statusCode == 200) { final unparsedJson = response.data['response'].toList(); for (int i = 0; i < unparsedJson.length; i++) { diff --git a/lib/services/StatService.dart b/lib/services/StatService.dart index 17469a6..f8921a8 100644 --- a/lib/services/StatService.dart +++ b/lib/services/StatService.dart @@ -2,6 +2,7 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import '../models/MatchStat.dart'; import 'HttpService.dart'; + class StatService { final Dio dio = HttpService.getApiClient(); @@ -9,7 +10,7 @@ class StatService { Map stats = {}; try { final response = - await dio.get('https://v3.football.api-sports.io/fixtures/statistics?fixture=${fixtureId}'); + await dio.get('fixtures/statistics?fixture=${fixtureId}'); if (response.statusCode == 200) { final unparsedJson = response.data['response'].toList(); stats["home"] = MatchStat.fromJson(unparsedJson[0]["statistics"]); diff --git a/lib/services/TeamService.dart b/lib/services/TeamService.dart index 4da4f5e..389feb5 100644 --- a/lib/services/TeamService.dart +++ b/lib/services/TeamService.dart @@ -2,13 +2,19 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import '../models/Team.dart'; import 'HttpService.dart'; +import 'GetItLocator.dart'; +import 'RemoteConfigService.dart'; + class TeamService { final Dio dio = HttpService.getApiClient(); + final RemoteConfigService _remoteConfig = locator(); + Future> fetchTeams({@required int id}) async { + final String season = _remoteConfig.getString(key: 'season'); List teamList = []; try { final response = - await dio.get('https://v3.football.api-sports.io/teams?league=${id}&season=2019'); + await dio.get('teams?league=${id}&season=$season'); if (response.statusCode == 200) { final unparsedJson = response.data['response'].toList(); for (int i = 0; i < unparsedJson.length; i++) { diff --git a/lib/services/TopScorerService.dart b/lib/services/TopScorerService.dart index d4d92f0..9510741 100644 --- a/lib/services/TopScorerService.dart +++ b/lib/services/TopScorerService.dart @@ -1,14 +1,19 @@ import '../models/Player.dart'; import 'HttpService.dart'; import 'package:dio/dio.dart'; +import 'GetItLocator.dart'; +import 'RemoteConfigService.dart'; class TopScorerService { final Dio dio = HttpService.getApiClient(); + final RemoteConfigService _remoteConfig = locator(); + Future> fetchTopScorer({String leagueId}) async { + final String season = _remoteConfig.getString(key: 'season'); List topScorers = []; try { final response = await dio.get( - 'https://v3.football.api-sports.io/players/topscorers?season=2019&league=$leagueId'); + 'players/topscorers?season=$season&league=$leagueId'); if (response.statusCode == 200) { final unparsedJson = response.data['response'].toList(); for (int i = 0; i < unparsedJson.length; i++) { diff --git a/lib/start.dart b/lib/start.dart index ee211e5..b4a5e10 100644 --- a/lib/start.dart +++ b/lib/start.dart @@ -24,6 +24,11 @@ class StartState extends State { checkTeam(); } + @override + void dispose() { + super.dispose(); + } + @override Widget build(BuildContext context) { return Container( diff --git a/lib/widgets/LeagueDropdown.dart b/lib/widgets/LeagueDropdown.dart index f53ef47..128d385 100644 --- a/lib/widgets/LeagueDropdown.dart +++ b/lib/widgets/LeagueDropdown.dart @@ -14,6 +14,12 @@ class LeagueDropdown extends StatefulWidget { } class _LeagueDropdownState extends State { + + @override + void dispose() { + super.dispose(); + } + Widget build(BuildContext context) { return Consumer( builder: (context, model, child) => Theme( diff --git a/lib/widgets/LeagueTableWiget.dart b/lib/widgets/LeagueTableWiget.dart index ab93292..3e0137c 100644 --- a/lib/widgets/LeagueTableWiget.dart +++ b/lib/widgets/LeagueTableWiget.dart @@ -30,6 +30,11 @@ class _LeagueTableWidgetState extends State { super.initState(); } + @override + void dispose() { + super.dispose(); + } + @override Widget build(BuildContext context) { return Consumer( diff --git a/lib/widgets/Scorers.dart b/lib/widgets/Scorers.dart index 2830943..c87fa61 100644 --- a/lib/widgets/Scorers.dart +++ b/lib/widgets/Scorers.dart @@ -26,6 +26,11 @@ class _ScorerState extends State { } } + @override + void dispose() { + super.dispose(); + } + @override Widget build(BuildContext context) { return Consumer( diff --git a/lib/widgets/SettingsDialog.dart b/lib/widgets/SettingsDialog.dart index 55af854..3a7fff3 100644 --- a/lib/widgets/SettingsDialog.dart +++ b/lib/widgets/SettingsDialog.dart @@ -35,6 +35,11 @@ class _SettingsDialogState extends State { super.initState(); } + @override + void dispose() { + super.dispose(); + } + @override Widget build(BuildContext context) { return Consumer( diff --git a/lib/widgets/Stats.dart b/lib/widgets/Stats.dart index 3e52145..5af03fc 100644 --- a/lib/widgets/Stats.dart +++ b/lib/widgets/Stats.dart @@ -27,6 +27,11 @@ class _StatsState extends State { } } + @override + void dispose() { + super.dispose(); + } + @override Widget build(BuildContext context) { return Card( diff --git a/lib/widgets/TopScorer.dart b/lib/widgets/TopScorer.dart index 9089a1a..d2abb1a 100644 --- a/lib/widgets/TopScorer.dart +++ b/lib/widgets/TopScorer.dart @@ -28,6 +28,11 @@ class _TopScorersState extends State { super.initState(); } + @override + void dispose() { + super.dispose(); + } + @override Widget build(BuildContext context) { return Consumer( diff --git a/pubspec.lock b/pubspec.lock index 795041b..2257415 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -169,6 +169,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.1+2" + firebase_remote_config: + dependency: "direct main" + description: + name: firebase_remote_config + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.1+1" flushbar: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 3dac4b0..680a161 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -41,6 +41,7 @@ dependencies: google_sign_in: ^4.5.1 cloud_firestore: ^0.13.7 flutter_easyloading: ^1.0.1 + firebase_remote_config: ^0.3.1+1 dev_dependencies: flutter_test: sdk: flutter From 4b2d3fe9ddc6da3b66f98f8fc958747152e231e4 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Thu, 30 Jul 2020 00:12:43 +0530 Subject: [PATCH 37/49] Modified news card and article --- assets/images/news_source_default.png | Bin 0 -> 2411 bytes lib/Provider/AppProvider.dart | 6 ++- lib/commons/NewsCard.dart | 36 +++++++++------- lib/models/News.dart | 31 ++++++++----- lib/screens/NewsArticle.dart | 60 +++++++++++++++++++------- lib/services/NewsService.dart | 5 +++ 6 files changed, 95 insertions(+), 43 deletions(-) create mode 100644 assets/images/news_source_default.png diff --git a/assets/images/news_source_default.png b/assets/images/news_source_default.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a9b4f09dbae6655cafca5e399b69c30b78eb9d GIT binary patch literal 2411 zcmb`Jdpy(oAIG|o;^XW?_GZvp zeM~?gX*pXf3m1ByaG*Q@VU3a+>=?P6em*v@_S~h)nC%Js@6}A|W)%P8s;dbWYA!&m zGC3MPXeAU_r%<@^#A5K97GbpVsz4ZYrf3uK z-+q=K>7_FrZeEp&BE0AunE2LHZ-B_EGcb0tDXDx90QMG+QYIU@B&iL=Q>_!xI2a00I4N|p z!^IBK&?d&J*QlNt36c(2F5X&CSi)P(@C)UUxa*^nD%{oY1$Qzm<)N-hQtgk^bB}eV z-|fE|^U7*QeG8vUxOaVVt?qH{_hRV&QxQpBdwJo`Gp$Z*24$oNT>}gc)3rKfFhsB7 z*770lN8g0rZ6f+`W{;U>!zEsxDUWd(Y~VCe-p$rmK$lg6vZUE>8J`Bf zSu-21tlxt^RG(Eqg8&!^3VTDMPd zL?CA-4!FF*MtGYGcA}1-Q~_HmmUwiFh~0XJk6Wh%7%8B`0;i2d#x0`yu|FtEqcP)A zNS79q?CPRq09G?-BfZlo&;l`&qXh+u=FM0c7NVA(D|;Oc1BTW7)hU+=aEXcP$M%tn z73Ybmi_?l0^C}P4JQI4ov^x^WIylM2C(PkCAFw)N%Gal10CdVGQ`dt08D7xg9 zHWc_=AXkJ~+9dltRv}5vIpk2>_A{_wD3*I4Tt1wWV6<)YNgoZlilybl&?%I}_M-4Q zW$4Lvb=|+cYKKeYQdd4Qf%88M)X?AZ=h?$h-o=cu3N6E}+G;pV$301E zgEf`?j%u&qR#V?q*E!?qw@LbR!SZ61$476IL^gA!XN=Twu$uC${ceZ}>(zI+A@*~f zt{(c>!fCcxM+2K-xz&>9DR!e_n3i^yHSzy>6ALCzowzo%WJy`NY6%+kg&zx>jyE6R z=P#U4f}yu7qLg*Y!`I8!HT~5eoZ2K-G-Y?db-<9gGD!L0}vcgvNnj=)bFf4g>A&Wq@jG zjiqFSWxw6iSqaYyj70&OhhQkgT+L5@VhS%0>4W*DP;sZ=JSf7@4dUt}8|R;Mo8+)d zU=jKH^|>D6?xH!d)&^ET5x{+oKRgoOOnl;B^^~ApLUs4TrOQtpHR=wVa%)J##FZ=* zUk%CU^{_y>_h-lB2jt29ZI6cyIJvzzy^bUsB8 z+K(W{r1|9le=fgmX@s~{pd#Kbn@W$ptsI2BQg%2T|4;sWQSx8SI;iKXMvg+(w^><2 z0e@YS@aNOU0xeYh!RcnWNO~w$#Nm}EM{niR#yNi_EF%69?QvVQMYF`8d>@qmXt_{@ zXEvOv?^Fn-awC_Vr}XNY9nplvl@Vz)vh4E zsnn~hn`!mhua%lr4+b6U!=AG(Re%ESaW=9^&vzN+|BTEeUrKua2~0x2=f2*g7A_fp7Ehh-ZeZfw=~c{58_8dhVx5g=5gZ{do+WlEts?Oh_5Dd zdHtLo_kKB&JphwQ`+D^v7A_yDICWzsM;=kb62}rVa?`6W6^S8?AzgggW%FiG;6Gv4 zm!IaH4@M4*M>T~+b##EyBHMkauI)8Ps4F9f`czO!J4uPLgUV= z*$it`E|<(KJI-Dl@l<$_3 literal 0 HcmV?d00001 diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index 9f33c29..5d100b1 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -109,13 +109,15 @@ class AppProvider extends ChangeNotifier { } Future loadAllNews() async{ - _newsList = await _newsService.fetchNews('european football'); + List allNews = await _newsService.fetchNews('european football'); + _newsList = allNews.where((news) => news.imageUrl != null).toList(); notifyListeners(); } Future loadFavouriteNews() async { String teamName = await LocalStorage.getString('teamName'); - _favouriteNewsList = await _newsService.fetchNews(teamName); + List favouriteNews = await _newsService.fetchNews(teamName);; + _favouriteNewsList = favouriteNews.where((news) => news.imageUrl != null).toList(); notifyListeners(); } diff --git a/lib/commons/NewsCard.dart b/lib/commons/NewsCard.dart index 6e025d0..660ccdd 100644 --- a/lib/commons/NewsCard.dart +++ b/lib/commons/NewsCard.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:cached_network_image/cached_network_image.dart'; import '../models/News.dart'; @@ -26,7 +27,7 @@ class NewsCard extends StatelessWidget { imageUrl: news.imageUrl, fit: BoxFit.cover, - placeholder: (BuildContext context, String url) => Image.asset('assets/images/news_default.png'), + placeholder: (BuildContext context, String url) => Image.asset('assets/images/news_source_default.png'), ), ), ), @@ -47,22 +48,25 @@ class NewsCard extends StatelessWidget { news.title, ), ), - Row( - children: [ - Padding( - padding: const EdgeInsets.only(right: 4.0), - child: Text( - news.source, - style: TextStyle(fontSize: 11), + FittedBox( + fit: BoxFit.fitWidth, + child: Row( + children: [ + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: Text( + news.source, + style: TextStyle(fontSize: 11), + ), ), - ), - Text( - '1hr', - style: TextStyle( - fontSize: 11, - color: Color(0xff808080)), - ) - ], + Text( + '1hr', + style: TextStyle( + fontSize: 11, + color: Color(0xff808080)), + ) + ], + ), ) ], ), diff --git a/lib/models/News.dart b/lib/models/News.dart index ff003a2..82b35ee 100644 --- a/lib/models/News.dart +++ b/lib/models/News.dart @@ -1,18 +1,29 @@ class News { String source; -// String sourceLogo; + String sourceLogo; String title; String content; String url; String imageUrl; DateTime publishedAt; - News({this.source, this.title, this.content, this.url, this.imageUrl, this.publishedAt}); + News( + {this.source, + this.sourceLogo, + this.title, + this.content, + this.url, + this.imageUrl, + this.publishedAt}); News.fromJson(Map parsedJson) - : source = parsedJson['provider'][0]['name'], -// sourceLogo = parsedJson['provider'][0]['image']['thumbnail']['contentUrl'], - title = parsedJson['name'], - content = parsedJson['description'], - url = parsedJson['url'], - imageUrl = parsedJson['image'] != null ? parsedJson['image']['thumbnail']['contentUrl'] : 'https://www.lissah.com/lissahadmin/uploads/news/default.png', - publishedAt = DateTime.parse(parsedJson['datePublished']); -} \ No newline at end of file + : source = parsedJson['provider'][0]['name'], + sourceLogo = parsedJson['provider'][0]['image'] != null + ? parsedJson['provider'][0]['image']['thumbnail']['contentUrl'] + : null, + title = parsedJson['name'], + content = parsedJson['description'], + url = parsedJson['url'], + imageUrl = parsedJson['image'] != null + ? parsedJson['image']['contentUrl'] + : null, + publishedAt = DateTime.parse(parsedJson['datePublished']); +} diff --git a/lib/screens/NewsArticle.dart b/lib/screens/NewsArticle.dart index 2836c2b..79ebe3f 100644 --- a/lib/screens/NewsArticle.dart +++ b/lib/screens/NewsArticle.dart @@ -52,22 +52,52 @@ class NewsArticleScreen extends StatelessWidget { Padding( padding: const EdgeInsets.only(bottom: 8.0), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, children: [ - Text( - news.source, - style: TextStyle(fontSize: 16), + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: Container( + width: 50, + child: (news.sourceLogo != null) ? CachedNetworkImage( + imageUrl: news.sourceLogo, + fit: BoxFit.cover, + placeholder: + (BuildContext context, + String url) => + Image.asset( + 'assets/images/news_source_default.png', + width: 50, + fit: BoxFit.cover, + ), + ) : Image.asset( + 'assets/images/news_source_default.png', + width: 50, + fit: BoxFit.cover, + ), + ), + ), + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + news.source, + style: TextStyle(fontSize: 16), + ), + Text( + DateFormat( + 'E, d MMMM, hh:mm aaa') + .format(news.publishedAt), + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w400, + color: Theme.of(context) + .primaryColorDark), + ) + ], ), - Text( - DateFormat('E, d MMMM, hh:mm aaa').format(news.publishedAt), - style: TextStyle( - fontSize: 14, - fontWeight: FontWeight.w400, - color: Theme.of(context) - .primaryColorDark), - ) ], ), ), @@ -81,7 +111,7 @@ class NewsArticleScreen extends StatelessWidget { fontWeight: FontWeight.w500, fontSize: 22, wordSpacing: 1.1, - height: 1.3), + height: 1.1), ), ), ), diff --git a/lib/services/NewsService.dart b/lib/services/NewsService.dart index 179a1cc..bf9065e 100644 --- a/lib/services/NewsService.dart +++ b/lib/services/NewsService.dart @@ -18,6 +18,11 @@ class NewsService { 'https://aniket.cognitiveservices.azure.com/bing/v7.0/news/search', queryParameters: { 'q': query, + 'mkt': 'en-GB', + 'originalImg': 'true', + 'count': '100', + 'freshness': 'week', + 'sortBy': 'date' }); if (response.statusCode == 200) { final unparsedNews = response.data['value'].toList(); From fe9d23f0c2ca9ba12d50634c3a5c7932b0cb2efc Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Thu, 30 Jul 2020 02:42:34 +0530 Subject: [PATCH 38/49] Added no internet screen --- ios/Flutter/Generated 26.xcconfig | 10 ++ ios/Flutter/Generated 27.xcconfig | 10 ++ ios/Flutter/flutter_export_environment 26.sh | 11 ++ ios/Flutter/flutter_export_environment 27.sh | 11 ++ lib/commons/CustomRaisedButton.dart | 37 +++++++ lib/main.dart | 63 ++++++----- lib/screens/DashboardScreen.dart | 25 ++--- lib/screens/NoInternetScreen.dart | 107 +++++++++++++++++++ lib/services/CustomRouter.dart | 3 + lib/services/HttpService.dart | 2 +- lib/services/NewsService.dart | 3 +- lib/services/RemoteConfigService.dart | 4 +- lib/widgets/SettingsDialog.dart | 35 +++--- pubspec.lock | 7 ++ pubspec.yaml | 1 + 15 files changed, 259 insertions(+), 70 deletions(-) create mode 100644 ios/Flutter/Generated 26.xcconfig create mode 100644 ios/Flutter/Generated 27.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 26.sh create mode 100755 ios/Flutter/flutter_export_environment 27.sh create mode 100644 lib/commons/CustomRaisedButton.dart create mode 100644 lib/screens/NoInternetScreen.dart diff --git a/ios/Flutter/Generated 26.xcconfig b/ios/Flutter/Generated 26.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 26.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/Generated 27.xcconfig b/ios/Flutter/Generated 27.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 27.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 26.sh b/ios/Flutter/flutter_export_environment 26.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 26.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/ios/Flutter/flutter_export_environment 27.sh b/ios/Flutter/flutter_export_environment 27.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 27.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/commons/CustomRaisedButton.dart b/lib/commons/CustomRaisedButton.dart new file mode 100644 index 0000000..fc59306 --- /dev/null +++ b/lib/commons/CustomRaisedButton.dart @@ -0,0 +1,37 @@ +import 'package:flutter/material.dart'; + +class CustomRaisedButton extends StatelessWidget { + String label; + bool inProgress; + VoidCallback onPressed; + double height, minWidth; + CustomRaisedButton( + {this.label, + this.inProgress = false, + this.height, + this.minWidth, + this.onPressed}); + @override + Widget build(BuildContext context) { + return ButtonTheme( + height: height, + minWidth: minWidth, + child: RaisedButton( + shape: RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(20.0), + ), + color: Theme.of(context).primaryColor, + child: inProgress + ? CircularProgressIndicator( + valueColor: + new AlwaysStoppedAnimation(Color(0xfff5f5f5)), + ) + : Text( + '$label', + style: TextStyle(color: Colors.white), + ), + onPressed: onPressed, + ), + ); + } +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 804121b..1927bdd 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; +import 'package:sportsmojo/models/User.dart'; import 'start.dart'; import 'package:provider/provider.dart'; import 'Provider/AppProvider.dart'; @@ -8,38 +9,44 @@ import 'services/GetItLocator.dart'; import 'services/LocalStorage.dart'; import 'services/FirebaseService.dart'; import 'services/RemoteConfigService.dart'; -void main() async{ +import 'package:data_connection_checker/data_connection_checker.dart'; +import 'screens/NoInternetScreen.dart'; + +void main() async { final ThemeData theme = ThemeData( - primaryColor: Color(0xFF50C878), - primaryColorDark: Color(0XFFA0A5AA) - ); + primaryColor: Color(0xFF50C878), primaryColorDark: Color(0XFFA0A5AA)); WidgetsFlutterBinding.ensureInitialized(); await setupLocator(); final leagueName = await LocalStorage.getString('leagueName'); + User currentUser = null; FirebaseService firebaseService = locator(); - final RemoteConfigService _remoteConfigService = locator(); - await _remoteConfigService.initialise(); - final currentUser = await firebaseService.getCurrentUser(); - AppProvider appProvider = locator(param1: leagueName, param2: currentUser); + final RemoteConfigService _remoteConfigService = + locator(); + final result = await DataConnectionChecker().hasConnection; + if (result) { + await _remoteConfigService.initialise(); + currentUser = await firebaseService.getCurrentUser(); + } + + AppProvider appProvider = + locator(param1: leagueName, param2: currentUser); - runApp( - MultiProvider( - providers: [ - ChangeNotifierProvider( - create: (context) => appProvider, - ) - ], - child: FlutterEasyLoading( - child: MaterialApp( - debugShowCheckedModeBanner: false, - theme: theme, - home: Start(), - onGenerateRoute: Router().generateRoutes, - navigatorObservers: [ - HeroController() - ], - ), + runApp(MultiProvider( + providers: [ + ChangeNotifierProvider( + create: (context) => appProvider, + ) + ], + child: FlutterEasyLoading( + child: MaterialApp( + debugShowCheckedModeBanner: false, + theme: theme, + home: WillPopScope( + onWillPop: () => Future.value(false), + child: result ? Start() : NoInternetScreen()), + onGenerateRoute: Router().generateRoutes, + navigatorObservers: [HeroController()], ), - ) - ); -} \ No newline at end of file + ), + )); +} diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index bff95d0..d0bd4fb 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -11,6 +11,7 @@ import '../commons/custom_icons.dart'; import '../services/LocalStorage.dart'; import '../services/FirestoreService.dart'; import '../constants.dart'; +import '../commons/CustomRaisedButton.dart'; class DashboardScreen extends StatefulWidget { @override @@ -107,25 +108,15 @@ class _DashboardScreenState extends State { ) ], ), - ButtonTheme( + CustomRaisedButton( height: 30, minWidth: 75, - child: RaisedButton( - color: Theme.of(context).primaryColor, - shape: RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular(15.0), - ), - onPressed: () async { - await firebaseService.signOutGoogle(); - model.currentUser = null; - }, - child: Text( - 'Logout', - style: TextStyle( - color: Colors.white, fontSize: 14), - ), - ), + label: 'Logout', + onPressed: () async { + await firebaseService.signOutGoogle(); + model.currentUser = null; + }, + inProgress: false, ) ], ), diff --git a/lib/screens/NoInternetScreen.dart b/lib/screens/NoInternetScreen.dart new file mode 100644 index 0000000..5ac8e61 --- /dev/null +++ b/lib/screens/NoInternetScreen.dart @@ -0,0 +1,107 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../start.dart'; +import 'package:data_connection_checker/data_connection_checker.dart'; +import 'package:flushbar/flushbar.dart'; +import '../services/GetItLocator.dart'; +import '../services/RemoteConfigService.dart'; +import '../services/FirebaseService.dart'; +import '../commons/CustomRaisedButton.dart'; +import '../Provider/AppProvider.dart'; + +class NoInternetScreen extends StatefulWidget { + @override + _NoInternetScreenState createState() => _NoInternetScreenState(); +} + +class _NoInternetScreenState extends State { + FirebaseService firebaseService = locator(); + final RemoteConfigService _remoteConfigService = + locator(); + bool inProgress = false; + @override + Widget build(BuildContext context) { + final appProvider = Provider.of(context); + return Scaffold( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: Container( + width: MediaQuery.of(context).size.width * 0.6, + child: Image.asset('assets/images/nointernet.png'), + ), + ), + Padding( + padding: const EdgeInsets.only(top:8.0, bottom: 4.0), + child: Text( + "No internet available", + style: TextStyle( + fontSize: 24, + color: Colors.black, + fontWeight: FontWeight.w500), + ), + ), + Padding( + padding: const EdgeInsets.only(bottom: 8.0, left: 14.0, right: 14.0), + child: Text( + "You are offline. Please turn on your mobile data to get updates.", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + color: Theme.of(context).primaryColorDark, + fontWeight: FontWeight.w300), + ), + ), + CustomRaisedButton( + label: 'Refresh', + minWidth: 100, + height: 40, + inProgress: inProgress, + onPressed: () async{ + setState(() { + inProgress = true; + }); + bool result = await DataConnectionChecker().hasConnection; + + if(result == true) { + await _remoteConfigService.initialise(); + final currentUser = await firebaseService.getCurrentUser(); + appProvider.currentUser = currentUser; + setState(() { + inProgress = false; + }); + Navigator.of(context).pushReplacement(new MaterialPageRoute( + builder: (context) => Start())); + } + else { + setState(() { + inProgress = false; + }); + Flushbar( + icon: Icon( + Icons.error, + size: 35, + color: Colors.white, + ), + title: "Error", + message: 'You are offline', + flushbarPosition: FlushbarPosition.TOP, + backgroundColor: Colors.red, + duration: Duration(seconds: 3), + flushbarStyle: FlushbarStyle.FLOATING, + showProgressIndicator: true, + progressIndicatorBackgroundColor: Colors.white, + ).show(context); + } + }, + ) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index 10721f1..4755ec1 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -11,10 +11,12 @@ import '../screens/LeagueTableScreen.dart'; import '../screens/DashboardScreen.dart'; import '../screens/FavouriteScreen1.dart'; import '../screens/IntroductionScreen.dart'; +import '../start.dart'; class Router { Route generateRoutes(RouteSettings settings) { final List validRoutes = [ + '/start', '/home', '/score', '/league', @@ -59,6 +61,7 @@ class Router { } } Map screens = { + '/start': Start(), '/home': HomeScreen( message: favouriteTeamMessage, ), diff --git a/lib/services/HttpService.dart b/lib/services/HttpService.dart index f06fc49..0977b6c 100644 --- a/lib/services/HttpService.dart +++ b/lib/services/HttpService.dart @@ -8,7 +8,7 @@ class HttpService { BaseOptions options = new BaseOptions(headers: { 'x-rapidapi-host': 'v3.football.api-sports.io', 'x-rapidapi-key': _remoteConfigService.getString(key: 'scoreApiKey') - }, baseUrl: 'https://v3.football.api-sports.io/'); + }, baseUrl: _remoteConfigService.getString(key: 'scoreUrl')); final _dio = new Dio(options); return _dio; } diff --git a/lib/services/NewsService.dart b/lib/services/NewsService.dart index bf9065e..8fc654d 100644 --- a/lib/services/NewsService.dart +++ b/lib/services/NewsService.dart @@ -15,10 +15,9 @@ class NewsService { List newsList = []; try { final response = await dio.get( - 'https://aniket.cognitiveservices.azure.com/bing/v7.0/news/search', + _remoteConfigService.getString(key: 'newsUrl'), queryParameters: { 'q': query, - 'mkt': 'en-GB', 'originalImg': 'true', 'count': '100', 'freshness': 'week', diff --git a/lib/services/RemoteConfigService.dart b/lib/services/RemoteConfigService.dart index 1a09c38..aa665ab 100644 --- a/lib/services/RemoteConfigService.dart +++ b/lib/services/RemoteConfigService.dart @@ -21,7 +21,9 @@ class RemoteConfigService { final Map defaults = { 'season': 2019, 'scoreApiKey': "", - 'newsApiKey': "" + 'newsApiKey': "", + 'scoreUrl': "", + 'newsUrl': "" }; await _remoteConfig.setDefaults(defaults); await _remoteConfig.fetch(expiration: Duration(hours: 1)); diff --git a/lib/widgets/SettingsDialog.dart b/lib/widgets/SettingsDialog.dart index 3a7fff3..85eef18 100644 --- a/lib/widgets/SettingsDialog.dart +++ b/lib/widgets/SettingsDialog.dart @@ -3,6 +3,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import '../constants.dart'; import '../Provider/AppProvider.dart'; +import '../commons/CustomRaisedButton.dart'; class SettingsDialog extends StatefulWidget { @override @@ -132,29 +133,21 @@ class _SettingsDialogState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ - ButtonTheme( + CustomRaisedButton( height: 40, minWidth: 100, - child: RaisedButton( - shape: RoundedRectangleBorder( - borderRadius: new BorderRadius.circular(20.0), - ), - color: Theme.of(context).primaryColor, - child: Text( - 'Save', - style: TextStyle(color: Colors.white), - ), - onPressed: () async { - if (model.startDate == startDate && - model.endDate == endDate) { - Navigator.of(context).pop(); - } else { - model.startDate = startDate; - model.endDate = endDate; - Navigator.of(context).pushReplacementNamed('/league'); - } - }, - ), + label: 'Save', + inProgress: false, + onPressed: () async { + if (model.startDate == startDate && + model.endDate == endDate) { + Navigator.of(context).pop(); + } else { + model.startDate = startDate; + model.endDate = endDate; + Navigator.of(context).pushReplacementNamed('/league'); + } + }, ), ], ), diff --git a/pubspec.lock b/pubspec.lock index 2257415..ccfeb2c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -106,6 +106,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.3" + data_connection_checker: + dependency: "direct main" + description: + name: data_connection_checker + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.4" dio: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 680a161..d880d2c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -42,6 +42,7 @@ dependencies: cloud_firestore: ^0.13.7 flutter_easyloading: ^1.0.1 firebase_remote_config: ^0.3.1+1 + data_connection_checker: ^0.3.4 dev_dependencies: flutter_test: sdk: flutter From f28812ebadfdd3ec64f0f504995e028192897131 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Thu, 30 Jul 2020 02:44:28 +0530 Subject: [PATCH 39/49] Modified no internet screen --- lib/screens/NoInternetScreen.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/screens/NoInternetScreen.dart b/lib/screens/NoInternetScreen.dart index 5ac8e61..83c589f 100644 --- a/lib/screens/NoInternetScreen.dart +++ b/lib/screens/NoInternetScreen.dart @@ -74,8 +74,7 @@ class _NoInternetScreenState extends State { setState(() { inProgress = false; }); - Navigator.of(context).pushReplacement(new MaterialPageRoute( - builder: (context) => Start())); + Navigator.of(context).pushReplacementNamed('/start'); } else { setState(() { From 3eae859c828b151d8314229ea8decfbb3540f8f2 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Fri, 31 Jul 2020 00:47:40 +0530 Subject: [PATCH 40/49] Added network aaware widget --- assets/images/empty.png | Bin 0 -> 59939 bytes assets/images/nointernet.png | Bin 0 -> 65000 bytes ios/Flutter/Generated 28.xcconfig | 10 + ios/Flutter/flutter_export_environment 28.sh | 11 + lib/commons/NetworkAwareWidget.dart | 59 +++++ lib/commons/NewsCard.dart | 21 +- lib/commons/NoContent.dart | 48 ++++ lib/main.dart | 5 + lib/screens/HomeScreen.dart | 67 ++++-- lib/screens/NoInternetScreen.dart | 21 +- lib/services/CustomRouter.dart | 26 ++- lib/services/GetItLocator.dart | 2 + lib/services/NetworkStatusService.dart | 21 ++ lib/services/NewsService.dart | 4 +- lib/widgets/AllScores.dart | 227 ++++++++++--------- lib/widgets/FavouriteScoresPast.dart | 79 ++++--- lib/widgets/FavouriteScoresUpcoming.dart | 110 +++++---- lib/widgets/LeagueTableWiget.dart | 219 ++++++------------ lib/widgets/TopScorer.dart | 76 ++++--- pubspec.lock | 28 +++ pubspec.yaml | 1 + 21 files changed, 614 insertions(+), 421 deletions(-) create mode 100644 assets/images/empty.png create mode 100644 assets/images/nointernet.png create mode 100644 ios/Flutter/Generated 28.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 28.sh create mode 100644 lib/commons/NetworkAwareWidget.dart create mode 100644 lib/commons/NoContent.dart create mode 100644 lib/services/NetworkStatusService.dart diff --git a/assets/images/empty.png b/assets/images/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..d8b2af2631ffcad3e0340992aa6e432913d13d17 GIT binary patch literal 59939 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

%_2(&_?%uI3__&%XcAQxwR)$g-eN!?gy2{j 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxhdpi/splash.png b/android/app/src/main/res/drawable-xxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..6a2210b7e6d233727881e419451c3be6f50b5fc5 GIT binary patch literal 91706 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

-T2y@aq{HcS@; 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 L{+WI>?DzixK_}$q literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml index 304732f..12fb7fe 100644 --- a/android/app/src/main/res/drawable/launch_background.xml +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -1,7 +1,7 @@ - + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/launcher_icon.png b/android/app/src/main/res/mipmap-hdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4869c89998e3f757a5c4231cd049b83b6ceeff8a GIT binary patch literal 2830 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/launcher_icon.png b/android/app/src/main/res/mipmap-mdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..635c389a8aff919e7abdb173e0f5e466647b188f GIT binary patch literal 1733 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2831c8e02d490d2b45f7b899589c0dca95796090 GIT binary patch literal 9065 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 R40(kHP*Kp7ua~uo_#gVc2220| literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..fdd3d7d --- /dev/null +++ b/android/app/src/main/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #50C878 + \ No newline at end of file diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..43b2c37 --- /dev/null +++ b/android/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + fcm_default_channel + \ No newline at end of file diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index 1f83a33..9e98ac5 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -14,5 +14,7 @@ This Theme is only used starting with V2 of Flutter's Android embedding. --> - + \ No newline at end of file diff --git a/assets/images/app_icon.png b/assets/images/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..333fe8ffa9dafc6248256c0f22775a2f9a8e55e9 GIT binary patch literal 21718 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 MSlU~ZobrtQA10OQ0ssI2 literal 0 HcmV?d00001 diff --git a/assets/images/football_cover.png b/assets/images/football_cover.png index 94a593f642b01a035bc2768e80c661f36ee159a9..143c9cdb89dfef7f1ca6785e1d0b6b748fdabadb 100644 GIT binary patch literal 151287 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 L=IKf~6`c7eG;V3D literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png index 9da19eacad3b03bb08bbddbbf4ac48dd78b3d838..965dc12749c20a3a4c31d367c9d488fe5738fa2b 100644 GIT binary patch literal 29252 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 literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png index 9da19eacad3b03bb08bbddbbf4ac48dd78b3d838..29047ddd50ccfc46a80e1f56b1676c336728a421 100644 GIT binary patch literal 57812 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 L{+WI>?DzixK_}$q literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard index f2e259c..22aaa9e 100644 --- a/ios/Runner/Base.lproj/LaunchScreen.storyboard +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -19,7 +19,7 @@ - + @@ -32,6 +32,6 @@ - + - + \ No newline at end of file diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 1288c3c..1192e7c 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -41,5 +41,8 @@ UIViewControllerBasedStatusBarAppearance + UIStatusBarHidden + + - + \ No newline at end of file diff --git a/lib/commons/BottomNavbar.dart b/lib/commons/BottomNavbar.dart index 25a367f..e29b9f6 100644 --- a/lib/commons/BottomNavbar.dart +++ b/lib/commons/BottomNavbar.dart @@ -33,9 +33,9 @@ class BottomNavbar extends StatelessWidget { title: Text('News', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( - activeIcon: Icon(Icons.dashboard, color: Theme.of(context).primaryColor,), - icon: Icon(Icons.dashboard), - title: Text('Dasboard', style: _bottomNavBarStyle,) + activeIcon: Icon(Icons.settings, color: Theme.of(context).primaryColor,), + icon: Icon(Icons.settings), + title: Text('Settings', style: _bottomNavBarStyle,) ) ]; return Consumer( diff --git a/lib/commons/ScoreCard.dart b/lib/commons/ScoreCard.dart index dd718e8..7bfdd2b 100644 --- a/lib/commons/ScoreCard.dart +++ b/lib/commons/ScoreCard.dart @@ -64,22 +64,19 @@ class _ScoreCardState extends State with TickerProviderStateMixin { ), Spacer(), Column( - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.end, children: [ Container( - width: 20.0, + width: 40.0, child: Text( - (widget.score.minuteElapsed != null && - widget.score.minuteElapsed != 90 && - widget.score.minuteElapsed != 120) + (widget.score.status == 'LV') ? "${widget.score.minuteElapsed}'" : "${widget.score.status}", - style: TextStyle(color: Colors.red), + style: TextStyle(color: Colors.red, fontSize: widget.score.status == 'LV' ? 14 : 12), + textAlign: TextAlign.right, ), ), - if (widget.score.minuteElapsed != null && - widget.score.minuteElapsed != 90 && - widget.score.minuteElapsed != 120) + if (widget.score.status == 'LV') Container( width: animation.value, height: 2.0, diff --git a/lib/models/Score.dart b/lib/models/Score.dart index 12e8548..80093e0 100644 --- a/lib/models/Score.dart +++ b/lib/models/Score.dart @@ -1,5 +1,6 @@ import 'package:intl/intl.dart'; -class Score{ + +class Score { int id; String competition; String venue; @@ -12,13 +13,26 @@ class Score{ int minuteElapsed; int homeScore; int awayScore; - Score({this.id, this.competition,this.venue, this.date_time, this.status, this.homeTeam, this.awayTeam, this.homeTeamLogo, this.awayTeamLogo, this.homeScore, this.awayScore, this.minuteElapsed}); - Score.fromJson(Map parsedJson): - id = parsedJson['fixture']['id'], + Score( + {this.id, + this.competition, + this.venue, + this.date_time, + this.status, + this.homeTeam, + this.awayTeam, + this.homeTeamLogo, + this.awayTeamLogo, + this.homeScore, + this.awayScore, + this.minuteElapsed}); + Score.fromJson(Map parsedJson) + : id = parsedJson['fixture']['id'], competition = parsedJson['league']['name'], venue = parsedJson['fixture']['venue']['name'], - date_time = DateTime.parse('${parsedJson['fixture']['date'].substring(0, 19)}Z'), - status = parsedJson['fixture']['status']['short'], + date_time = DateTime.parse( + '${parsedJson['fixture']['date'].substring(0, 19)}Z'), + status = possibleStatus[parsedJson['fixture']['status']['short']], homeTeam = parsedJson['teams']['home']['name'], awayTeam = parsedJson['teams']['away']['name'], homeTeamLogo = parsedJson['teams']['home']['logo'], @@ -26,4 +40,24 @@ class Score{ homeScore = parsedJson['goals']['home'], awayScore = parsedJson['goals']['away'], minuteElapsed = parsedJson['fixture']['status']['elapsed']; -} \ No newline at end of file + static final Map possibleStatus = { + 'TBD': 'NS', + 'NS': 'NS', + '1H': 'LV', + 'HT': 'HT', + '2H': 'LV', + 'ET': 'LV', + 'P': 'LV', + 'FT': 'FT', + 'AET': 'FT', + 'PEN': 'FT', + 'BT': 'LV', + 'SUSP': 'SUSP', + 'INT': 'INT', + 'PST': 'PST', + 'CANC': 'CANC', + 'ABD': 'ABD', + 'AWD': 'AWD', + 'WO': 'WO' + }; +} diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index e979e76..7b7e6da 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -17,6 +17,7 @@ import '../constants.dart'; import '../commons/CustomRaisedButton.dart'; import '../services/FirebaseMessagingService.dart'; import '../Provider/ThemeProvider.dart'; +import 'dart:math' show pi; class DashboardScreen extends StatefulWidget { @override _DashboardScreenState createState() => _DashboardScreenState(); @@ -392,11 +393,11 @@ class _DashboardScreenState extends State { child: InkWell( onTap: () { Navigator.of(context) - .pushReplacementNamed('/selectleague'); + .pushNamed('/selectleague'); }, child: Icon( Icons.edit, - color: themeModel.appTheme == AppTheme.Light ? Color(0X7A0000) : Color(0XFFF5F5F5), + color: themeModel.appTheme == AppTheme.Light ? Color(0X7A000000) : Color(0XFFF5F5F5), size: 25, ), ), diff --git a/lib/screens/FavouriteScreen1.dart b/lib/screens/FavouriteScreen1.dart index 1403042..2c25108 100644 --- a/lib/screens/FavouriteScreen1.dart +++ b/lib/screens/FavouriteScreen1.dart @@ -1,6 +1,8 @@ import 'package:cached_network_image/cached_network_image.dart'; +import 'package:provider/provider.dart'; import 'package:flutter/material.dart'; import '../constants.dart'; +import '../Provider/ThemeProvider.dart'; class FavouriteLeague extends StatefulWidget { @override @@ -23,119 +25,131 @@ class _FavouriteLeagueState extends State { @override Widget build(BuildContext context) { - return SafeArea( - child: Scaffold( - body: Column( - children: [ - Container( - color: Theme.of(context).primaryColor, - child: Padding( - padding: EdgeInsets.only(top: 20.0, bottom: 10.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, + return Consumer( + builder: (context, themeModel, child) => SafeArea( + child: Scaffold( + body: Column( children: [ - Padding( - padding: EdgeInsets.symmetric(vertical: 10.0), - child: Text( - 'Select your favourite team', - style: TextStyle( - color: Colors.white, - fontSize: 24, - fontWeight: FontWeight.w500), - ), - ), - Padding( - padding: EdgeInsets.symmetric( - horizontal: MediaQuery.of(context).size.width * 0.1, - vertical: 10.0), - child: Material( - elevation: 12, - child: Container( - child: TextFormField( - cursorColor: Theme.of(context).primaryColor, - decoration: InputDecoration( - hintText: 'Search leagues', - suffixIcon: Icon( - Icons.search, - color: Theme.of(context).primaryColorDark, + Container( + color: Theme.of(context).primaryColor, + child: Padding( + padding: EdgeInsets.only(top: 20.0, bottom: 10.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: EdgeInsets.symmetric(vertical: 10.0), + child: Text( + 'Select your favourite team', + style: TextStyle( + color: Colors.white, + fontSize: 24, + fontWeight: FontWeight.w500), ), - border: InputBorder.none, - focusedBorder: InputBorder.none, - enabledBorder: InputBorder.none, - errorBorder: InputBorder.none, - disabledBorder: InputBorder.none, - contentPadding: EdgeInsets.only( - left: 15, bottom: 11, top: 11, right: 15), ), - style: TextStyle(fontSize: 18), - onChanged: (String val) { - setState(() { - leagueList = leagues.entries - .where((league) => league.key - .toLowerCase() - .contains(val.toLowerCase())) - .toList(); - }); - }, - ), + Padding( + padding: EdgeInsets.symmetric( + horizontal: + MediaQuery.of(context).size.width * 0.1, + vertical: 10.0), + child: Material( + elevation: 12, + child: Container( + child: TextFormField( + cursorColor: Theme.of(context).primaryColor, + decoration: InputDecoration( + hintText: 'Search leagues', + hintStyle: TextStyle( + color: Theme.of(context).primaryColorDark + ), + suffixIcon: Icon( + Icons.search, + color: + Theme.of(context).primaryColorDark, + ), + border: InputBorder.none, + focusedBorder: InputBorder.none, + enabledBorder: InputBorder.none, + errorBorder: InputBorder.none, + disabledBorder: InputBorder.none, + contentPadding: EdgeInsets.only( + left: 15, + bottom: 11, + top: 11, + right: 15), + ), + style: TextStyle(fontSize: 18), + onChanged: (String val) { + setState(() { + leagueList = leagues.entries + .where((league) => league.key + .toLowerCase() + .contains(val.toLowerCase())) + .toList(); + }); + }, + ), + ), + ), + ), + ], ), ), ), - ], - ), - ), - ), - Expanded( - child: SingleChildScrollView( - child: Column( - children: [ - Padding( - padding: const EdgeInsets.symmetric(vertical: 10.0), - child: Text( - 'Select league', - style: TextStyle(fontSize: 18), - textAlign: TextAlign.center, - ), - ), - leagueList.length > 0 - ? Column( - children: showLeagues(context), - ) - : Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - 'No league matched your query', + Expanded( + child: SingleChildScrollView( + child: Column( + children: [ + Padding( + padding: + const EdgeInsets.symmetric(vertical: 10.0), + child: Text( + 'Select league', + style: TextStyle(fontSize: 18), textAlign: TextAlign.center, - style: TextStyle( - fontWeight: FontWeight.w300, - fontSize: 20, - color: Theme.of(context).primaryColorDark), - ) - ], - ) + ), + ), + leagueList.length > 0 + ? Column( + children: showLeagues(context: context, themeModel: themeModel), + ) + : Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'No league matched your query', + textAlign: TextAlign.center, + style: TextStyle( + fontWeight: FontWeight.w300, + fontSize: 20, + color: Theme.of(context) + .primaryColorDark), + ) + ], + ) + ], + ), + ), + ) ], ), ), - ) - ], - ), - ), - ); + )); } - List showLeagues(BuildContext context) { + List showLeagues({BuildContext context, ThemeProvider themeModel}) { return leagueList .map((league) => Padding( padding: const EdgeInsets.all(8.0), child: InkWell( onTap: () { - Navigator.of(context).pushNamed('/selectteam', - arguments: {'leagueId': league.value["id"], 'leagueName': league.key}); + Navigator.of(context).pushNamed('/selectteam', arguments: { + 'leagueId': league.value["id"], + 'leagueName': league.key + }); }, child: Container( height: 40, - color: Colors.white, child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ @@ -144,6 +158,7 @@ class _FavouriteLeagueState extends State { child: Container( height: 40, width: 40, + color: themeModel.appTheme == AppTheme.Light ? Colors.transparent : Colors.white, child: CachedNetworkImage( imageUrl: league.value["logo"], fit: BoxFit.contain, diff --git a/lib/screens/FavouriteScreen2.dart b/lib/screens/FavouriteScreen2.dart index adff6e4..655494a 100644 --- a/lib/screens/FavouriteScreen2.dart +++ b/lib/screens/FavouriteScreen2.dart @@ -12,6 +12,7 @@ import '../services/LocalStorage.dart'; import '../services/GetItLocator.dart'; import '../services/FirestoreService.dart'; import '../services/FirebaseMessagingService.dart'; +import '../Provider/ThemeProvider.dart'; class FavouriteTeam extends StatefulWidget { final int leagueId; @@ -28,7 +29,8 @@ class _FavouriteTeamState extends State { Future> futureTeamList; final TextEditingController _controller = new TextEditingController(); final FirestoreService _firestoreService = locator(); - final FirebaseMessagingService _fcmService = locator(); + final FirebaseMessagingService _fcmService = + locator(); @override void initState() { @@ -47,162 +49,170 @@ class _FavouriteTeamState extends State { @override Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); - return SafeArea( - child: Scaffold( - extendBodyBehindAppBar: true, - appBar: PreferredSize( - preferredSize: Size.fromHeight(40.0), - child: AppBar( - elevation: 0, - backgroundColor: Colors.transparent, - iconTheme: IconThemeData(color: Colors.white), - ), - ), - body: FutureBuilder>( - future: futureTeamList, - builder: (BuildContext context, AsyncSnapshot snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return Container( - color: Theme.of(context).primaryColor, - height: MediaQuery.of(context).size.height, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 16.0), - child: Text( - 'Loading teams', - style: TextStyle( - fontSize: 22, - fontWeight: FontWeight.w400, - color: Colors.white, - ), - ), - ), - SpinKitFadingCube( - color: Colors.white, - ) - ], + return Consumer( + builder: (context, themeModel, child) => SafeArea( + child: Scaffold( + extendBodyBehindAppBar: true, + appBar: PreferredSize( + preferredSize: Size.fromHeight(40.0), + child: AppBar( + elevation: 0, + backgroundColor: Colors.transparent, + iconTheme: IconThemeData(color: Colors.white), ), - ); - } - if (snapshot.connectionState == ConnectionState.done) { - originalTeamList = snapshot.data; - teamList = originalTeamList - .where((team) => team.name - .toLowerCase() - .contains(_controller.text.toLowerCase())) - .toList(); - return Column( - children: [ - Container( - color: Theme.of(context).primaryColor, - child: Padding( - padding: EdgeInsets.only(top: 30.0, bottom: 10.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Padding( - padding: EdgeInsets.only(bottom: 10.0), - child: Text( - 'Select your favourite team', - style: TextStyle( + ), + body: FutureBuilder>( + future: futureTeamList, + builder: (BuildContext context, AsyncSnapshot snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return Container( + color: Theme.of(context).primaryColor, + height: MediaQuery.of(context).size.height, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Text( + 'Loading teams', + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.w400, color: Colors.white, - fontSize: 24, - fontWeight: FontWeight.w500), - ), - ), - Padding( - padding: EdgeInsets.symmetric( - horizontal: - MediaQuery.of(context).size.width * 0.1, - vertical: 10.0), - child: Material( - elevation: 12, - child: Container( - child: TextField( - controller: _controller, - cursorColor: Theme.of(context).primaryColor, - decoration: InputDecoration( - hintText: 'Search teams', - suffixIcon: Icon( - Icons.search, - color: - Theme.of(context).primaryColorDark, - ), - border: InputBorder.none, - focusedBorder: InputBorder.none, - enabledBorder: InputBorder.none, - errorBorder: InputBorder.none, - disabledBorder: InputBorder.none, - contentPadding: EdgeInsets.only( - left: 15, - bottom: 11, - top: 11, - right: 15), - ), - style: TextStyle(fontSize: 18), - onChanged: (String val) { - setState(() { - teamList = originalTeamList - .where((team) => team.name - .toLowerCase() - .contains(_controller.text - .toLowerCase())) - .toList(); - }); - }, ), ), ), - ), - ], - ), - ), - ), - Expanded( - child: SingleChildScrollView( - child: Column( + SpinKitFadingCube( + color: Colors.white, + ) + ], + ), + ); + } + if (snapshot.connectionState == ConnectionState.done) { + originalTeamList = snapshot.data; + teamList = originalTeamList + .where((team) => team.name + .toLowerCase() + .contains(_controller.text.toLowerCase())) + .toList(); + return Column( children: [ - Padding( - padding: - const EdgeInsets.symmetric(vertical: 10.0), - child: Text( - 'Select your favourite club', - style: TextStyle(fontSize: 18), - textAlign: TextAlign.center, + Container( + color: Theme.of(context).primaryColor, + child: Padding( + padding: + EdgeInsets.only(top: 30.0, bottom: 10.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: EdgeInsets.only(bottom: 10.0), + child: Text( + 'Select your favourite team', + style: TextStyle( + color: Colors.white, + fontSize: 24, + fontWeight: FontWeight.w500), + ), + ), + Padding( + padding: EdgeInsets.symmetric( + horizontal: MediaQuery.of(context) + .size + .width * + 0.1, + vertical: 10.0), + child: Material( + elevation: 12, + child: Container( + child: TextField( + controller: _controller, + cursorColor: + Theme.of(context).primaryColor, + decoration: InputDecoration( + hintText: 'Search teams', + hintStyle: TextStyle(color: Theme.of(context).primaryColorDark), + suffixIcon: Icon( + Icons.search, + color: Theme.of(context) + .primaryColorDark, + ), + border: InputBorder.none, + focusedBorder: InputBorder.none, + enabledBorder: InputBorder.none, + errorBorder: InputBorder.none, + disabledBorder: InputBorder.none, + contentPadding: EdgeInsets.only( + left: 15, + bottom: 11, + top: 11, + right: 15), + ), + style: TextStyle(fontSize: 18), + onChanged: (String val) { + setState(() { + teamList = originalTeamList + .where((team) => team.name + .toLowerCase() + .contains(_controller + .text + .toLowerCase())) + .toList(); + }); + }, + ), + ), + ), + ), + ], + ), ), ), - teamList.length > 0 - ? teamListView(appProvider) - : Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - 'No team matched your query', + Expanded( + child: SingleChildScrollView( + child: Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric( + vertical: 10.0), + child: Text( + 'Select your favourite club', + style: TextStyle(fontSize: 18), textAlign: TextAlign.center, - style: TextStyle( - fontWeight: FontWeight.w300, - fontSize: 20, - color: Theme.of(context) - .primaryColorDark), - ) - ], - ) + ), + ), + teamList.length > 0 + ? teamListView(appProvider: appProvider, themeModel: themeModel) + : Column( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Text( + 'No team matched your query', + textAlign: TextAlign.center, + style: TextStyle( + fontWeight: FontWeight.w300, + fontSize: 20, + color: Theme.of(context) + .primaryColorDark), + ) + ], + ) + ], + ), + ), + ) ], - ), - ), - ) - ], - ); - } - }), - ), - ); + ); + } + }), + ), + )); } - Widget teamListView(AppProvider appProvider) { + Widget teamListView({AppProvider appProvider, ThemeProvider themeModel}) { return Column( children: teamList .map((team) => Padding( @@ -213,7 +223,6 @@ class _FavouriteTeamState extends State { }, child: Container( height: 40, - color: Colors.white, child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ @@ -222,12 +231,14 @@ class _FavouriteTeamState extends State { child: Container( height: 40, width: 40, - child: CachedNetworkImage( - imageUrl: team.logo, - fit: BoxFit.contain, - placeholder: - (BuildContext context, String url) => - Icon(MyFlutterApp.football), + child: Container( + child: CachedNetworkImage( + imageUrl: team.logo, + fit: BoxFit.contain, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football), + ), ), ), ), @@ -284,7 +295,7 @@ class _FavouriteTeamState extends State { await _firestoreService.setData(userId: user.uid, data: data); EasyLoading.dismiss(); } - await _fcmService.subscribeToTopic(topic : team.name.replaceAll(' ', '')); + await _fcmService.subscribeToTopic(topic: team.name.replaceAll(' ', '')); Navigator.of(context).pushReplacementNamed('/home', arguments: { 'favouriteTeamMessage': { 'title': 'Success', diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index a1f1a58..1f7cee5 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -77,7 +77,6 @@ class _HomeScreenState extends State with TickerProviderStateMixin { EasyLoading.show(status: 'Fetching latest content'); await _handleRefresh(appProvider: appProvider); EasyLoading.dismiss(); - }, child: SingleChildScrollView( child: Container( @@ -118,22 +117,22 @@ class _HomeScreenState extends State with TickerProviderStateMixin { final List matches = appProvider.favouriteTeamScores; Score score; String caption; - final Score liveMatch = matches.firstWhere( - (score) => - score.status != "FT" && - score.status != "PEN" && - score.homeScore != null, - orElse: () => null); + final Score liveMatch = + matches.firstWhere((score) => score.status == "LV", orElse: () => null); if (liveMatch == null) { - final int index = matches - .indexWhere((score) => score.status == "FT" || score.status == "PEN"); + final int index = matches.indexWhere((score) => score.status == "FT"); final Score latestScore = matches[index]; if (index > 0) { final Score nextScore = matches[index - 1]; if (nextScore.date_time.difference(DateTime.now()).inSeconds < DateTime.now().difference(latestScore.date_time).inSeconds) { - score = nextScore; - caption = 'Upcoming Match'; + if(nextScore.date_time.difference(DateTime.now()).inSeconds < 0) { + score = nextScore; + caption = 'Latest Match'; + } else { + score = nextScore; + caption = 'Upcoming Match'; + } } else { score = latestScore; caption = 'Latest Match'; @@ -221,6 +220,14 @@ class _HomeScreenState extends State with TickerProviderStateMixin { Widget carousel({HomeViewModel model, AppProvider appProvider}) { List favouriteNewsList = appProvider.favouriteNewsList; + List allNewsList = appProvider.newsList; + int totalCount; + int circleCount; + if(favouriteNewsList != null) { + totalCount = + favouriteNewsList.length > 5 ? 5 : favouriteNewsList.length; + circleCount = totalCount == 0 ? 5 : totalCount; + } return Container( height: MediaQuery.of(context).size.height * 0.35, child: favouriteNewsList != null @@ -229,84 +236,174 @@ class _HomeScreenState extends State with TickerProviderStateMixin { children: [ PageView( controller: _pageController, - children: [ - for (int i = 0; i < 5; i++) - InkWell( - onTap: () { - Navigator.of(context).pushNamed('/newsarticle', - arguments: { - 'index': i + 100, - 'news': favouriteNewsList[i] - }); - }, - child: Stack( - alignment: Alignment.bottomLeft, - children: [ - Container( - child: CachedNetworkImage( - height: - MediaQuery.of(context).size.height * 0.35, - imageUrl: favouriteNewsList[i].imageUrl, - fit: BoxFit.cover, - placeholder: - (BuildContext context, String url) => - Image.asset( - 'assets/images/news_default.png', - fit: BoxFit.cover, - ), + children: (totalCount != 0) + ? [ + for (int i = 0; i < totalCount; i++) + InkWell( + onTap: () { + Navigator.of(context) + .pushNamed('/newsarticle', arguments: { + 'index': i + 100, + 'news': favouriteNewsList[i] + }); + }, + child: Stack( + alignment: Alignment.bottomLeft, + children: [ + Container( + child: CachedNetworkImage( + height: + MediaQuery.of(context).size.height * + 0.35, + imageUrl: favouriteNewsList[i].imageUrl, + fit: BoxFit.cover, + placeholder: (BuildContext context, + String url) => + Image.asset( + 'assets/images/news_default.png', + fit: BoxFit.cover, + ), + ), + ), + Container( + color: Colors.black.withOpacity(0.4), + padding: EdgeInsets.only( + bottom: MediaQuery.of(context) + .size + .height * + 0.02, + left: 12.0, + right: 12.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Flexible( + child: Text( + favouriteNewsList[i].title, + style: TextStyle( + fontWeight: FontWeight.w300, + fontSize: 16, + color: Colors.white), + ), + ), + Row( + children: [ + Padding( + padding: const EdgeInsets.only( + right: 4.0), + child: Text( + favouriteNewsList[i].source, + style: TextStyle( + fontSize: 14, + color: + Colors.amberAccent), + ), + ), + Text( + convertDateTime( + dateTime: + favouriteNewsList[i] + .publishedAt), + style: TextStyle( + fontSize: 14, + color: Colors.amberAccent), + ) + ], + ) + ], + ), + ) + ], ), ), - Container( - color: Colors.black.withOpacity(0.4), - padding: EdgeInsets.only( - bottom: MediaQuery.of(context).size.height * - 0.02, - left: 12.0, - right: 12.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, + ] + : [ + for (int i = 0; i < 5; i++) + InkWell( + onTap: () { + Navigator.of(context) + .pushNamed('/newsarticle', arguments: { + 'index': i + 100, + 'news': allNewsList[i] + }); + }, + child: Stack( + alignment: Alignment.bottomLeft, children: [ - Flexible( - child: Text( - favouriteNewsList[i].title, - style: TextStyle( - fontWeight: FontWeight.w300, - fontSize: 16, - color: Colors.white), + Container( + child: CachedNetworkImage( + height: + MediaQuery.of(context).size.height * + 0.35, + imageUrl: allNewsList[i].imageUrl, + fit: BoxFit.cover, + placeholder: (BuildContext context, + String url) => + Image.asset( + 'assets/images/news_default.png', + fit: BoxFit.cover, + ), ), ), - Row( - children: [ - Padding( - padding: - const EdgeInsets.only(right: 4.0), - child: Text( - favouriteNewsList[i].source, - style: TextStyle( - fontSize: 14, - color: Colors.amberAccent), + Container( + color: Colors.black.withOpacity(0.4), + padding: EdgeInsets.only( + bottom: MediaQuery.of(context) + .size + .height * + 0.02, + left: 12.0, + right: 12.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Flexible( + child: Text( + allNewsList[i].title, + style: TextStyle( + fontWeight: FontWeight.w300, + fontSize: 16, + color: Colors.white), + ), ), - ), - Text( - convertDateTime( - dateTime: favouriteNewsList[i] - .publishedAt), - style: TextStyle( - fontSize: 14, - color: Colors.amberAccent), - ) - ], + Row( + children: [ + Padding( + padding: const EdgeInsets.only( + right: 4.0), + child: Text( + allNewsList[i].source, + style: TextStyle( + fontSize: 14, + color: + Colors.amberAccent), + ), + ), + Text( + convertDateTime( + dateTime: allNewsList[i] + .publishedAt), + style: TextStyle( + fontSize: 14, + color: Colors.amberAccent), + ) + ], + ) + ], + ), ) ], ), - ) - ], - ), - ), - ], + ), + ], onPageChanged: (int index) { model.carouselIndex = index; }, @@ -320,7 +417,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ - for (int i = 0; i < 5; i++) + for (int i = 0; i < circleCount; i++) Padding( padding: EdgeInsets.symmetric(horizontal: 4.0), child: InkWell( diff --git a/lib/screens/MatchStatScreen.dart b/lib/screens/MatchStatScreen.dart index 3d90b9a..1e10bf0 100644 --- a/lib/screens/MatchStatScreen.dart +++ b/lib/screens/MatchStatScreen.dart @@ -97,22 +97,19 @@ class _MatchStatScreenState extends State ), Spacer(), Column( - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.end, children: [ Container( - width: 20.0, + width: 40.0, child: Text( - (widget.score.minuteElapsed != null && - widget.score.minuteElapsed != 90 && - widget.score.minuteElapsed != 120) + (widget.score.status == 'LV') ? "${widget.score.minuteElapsed}'" : "${widget.score.status}", - style: TextStyle(color: Colors.red), + style: TextStyle(color: Colors.red, fontSize: widget.score.status == 'LV' ? 14 : 12), + textAlign: TextAlign.right, ), ), - if (widget.score.minuteElapsed != null && - widget.score.minuteElapsed != 90 && - widget.score.minuteElapsed != 120) + if (widget.score.status == 'LV') Container( width: animation.value, height: 2.0, diff --git a/lib/services/FirebaseMessagingService.dart b/lib/services/FirebaseMessagingService.dart index 87e883f..dd59181 100644 --- a/lib/services/FirebaseMessagingService.dart +++ b/lib/services/FirebaseMessagingService.dart @@ -13,19 +13,16 @@ class FirebaseMessagingService { } _fcm.configure( onMessage: (Map message) async { - print("onMessage: $message"); _routerService.navigationKey.currentState - .pushReplacementNamed('/score'); + .pushReplacementNamed('${message['data']['route']}'); }, onLaunch: (Map message) async { - print("onLaunch: $message"); _routerService.navigationKey.currentState - .pushReplacementNamed('/score'); + .pushReplacementNamed('${message['data']['route']}'); }, onResume: (Map message) async { - print("onResume: $message"); _routerService.navigationKey.currentState - .pushReplacementNamed('/score'); + .pushNamed('${message['data']['route']}'); }, ); } diff --git a/pubspec.lock b/pubspec.lock index f7f21d7..2106e63 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -85,6 +85,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.14.11" + color: + dependency: transitive + description: + name: color + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" connectivity: dependency: "direct main" description: @@ -251,6 +258,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.4" + flutter_launcher_icons: + dependency: "direct dev" + description: + name: flutter_launcher_icons + url: "https://pub.dartlang.org" + source: hosted + version: "0.7.5" + flutter_native_splash: + dependency: "direct dev" + description: + name: flutter_native_splash + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.9" flutter_spinkit: dependency: "direct main" description: @@ -595,6 +616,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.5.0" + yaml: + dependency: transitive + description: + name: yaml + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.1" sdks: dart: ">=2.7.2 <3.0.0" flutter: ">=1.12.13+hotfix.5 <2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index fdf9ce4..2718fa3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -47,9 +47,16 @@ dependencies: share: ^0.6.4+3 day_night_switcher: ^0.1.1 dev_dependencies: + flutter_launcher_icons: ^0.7.5 + flutter_native_splash: ^0.1.9 flutter_test: sdk: flutter +flutter_icons: + android: "launcher_icon" + ios: true + image_path: "assets/images/app_icon.png" + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec From 18c731a3e4ce47ef4de2a6bf6d2db8d0bb8dadf8 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Thu, 6 Aug 2020 03:44:27 +0530 Subject: [PATCH 47/49] First production build --- .gitignore | 1 + android/app/build.gradle | 22 +- android/app/src/main/AndroidManifest.xml | 4 +- .../main/res/mipmap-hdpi/launcher_icon.png | Bin 2830 -> 9127 bytes .../main/res/mipmap-mdpi/launcher_icon.png | Bin 1733 -> 9127 bytes .../main/res/mipmap-xhdpi/launcher_icon.png | Bin 3932 -> 9127 bytes .../main/res/mipmap-xxhdpi/launcher_icon.png | Bin 6356 -> 9127 bytes .../main/res/mipmap-xxxhdpi/launcher_icon.png | Bin 9065 -> 9127 bytes android/build.gradle | 4 + android/gradle.properties | 1 + assets/images/app_icon.png | Bin 21718 -> 0 bytes assets/images/icon_only.png | Bin 19066 -> 0 bytes assets/images/moon.png | Bin 0 -> 21625 bytes assets/images/notfound.png | Bin 0 -> 118835 bytes assets/images/sun.png | Bin 0 -> 22868 bytes ios/Flutter/.Generated.xcconfig.icloud | Bin 0 -> 168 bytes .../.flutter_export_environment.sh.icloud | Bin 0 -> 179 bytes ios/Flutter/Generated 33.xcconfig | 10 + ios/Flutter/Generated 34.xcconfig | 10 + ios/Flutter/flutter_export_environment 33.sh | 11 + ios/Flutter/flutter_export_environment 34.sh | 11 + .../Icon-App-1024x1024@1x.png | Bin 103707 -> 106801 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 606 -> 625 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 1384 -> 1371 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 2268 -> 2333 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 912 -> 954 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 2157 -> 2175 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 3585 -> 3627 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 1384 -> 1371 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 3210 -> 3281 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 5136 -> 5305 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 1762 -> 1867 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 4117 -> 4217 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 2127 -> 2184 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 4908 -> 4956 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 5136 -> 5305 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 8346 -> 8504 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 2830 -> 2869 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 6356 -> 6520 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 3031 -> 3081 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 6795 -> 7026 bytes .../Icon-App-83.5x83.5@2x.png | Bin 7569 -> 7737 bytes lib/App.dart | 5 + lib/Provider/AppProvider.dart | 10 +- lib/commons/BottomNavbar.dart | 11 +- lib/commons/GlobalKeys.dart | 22 + lib/commons/HomeBottomNavbar.dart | 54 + lib/commons/NetworkAwareWidget.dart | 3 +- lib/commons/NoContent.dart | 64 +- lib/commons/ScoreCard.dart | 1 + lib/main.dart | 23 +- lib/models/News.dart | 2 +- lib/screens/DashboardScreen.dart | 1112 ++++++++++------- lib/screens/HomeScreen.dart | 33 +- lib/screens/IntroductionScreen.dart | 6 +- lib/screens/LeagueTableScreen.dart | 2 +- lib/screens/NewsArticle.dart | 2 +- lib/screens/NewsScreen.dart | 240 ++++ lib/screens/NoInternetScreen.dart | 1 - lib/screens/NotFound.dart | 59 + lib/screens/ScoreScreen.dart | 2 +- lib/services/AnalyticsService.dart | 5 + lib/services/CustomRouter.dart | 9 +- lib/services/GetItLocator.dart | 2 + lib/services/tutorial.dart | 84 ++ lib/start.dart | 10 +- pubspec.lock | 77 +- pubspec.yaml | 8 +- 68 files changed, 1354 insertions(+), 567 deletions(-) delete mode 100644 assets/images/app_icon.png delete mode 100644 assets/images/icon_only.png create mode 100644 assets/images/moon.png create mode 100644 assets/images/notfound.png create mode 100644 assets/images/sun.png create mode 100644 ios/Flutter/.Generated.xcconfig.icloud create mode 100755 ios/Flutter/.flutter_export_environment.sh.icloud create mode 100644 ios/Flutter/Generated 33.xcconfig create mode 100644 ios/Flutter/Generated 34.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 33.sh create mode 100755 ios/Flutter/flutter_export_environment 34.sh create mode 100644 lib/commons/GlobalKeys.dart create mode 100644 lib/commons/HomeBottomNavbar.dart create mode 100644 lib/screens/NewsScreen.dart create mode 100644 lib/screens/NotFound.dart create mode 100644 lib/services/AnalyticsService.dart create mode 100644 lib/services/tutorial.dart diff --git a/.gitignore b/.gitignore index 7eb6f91..8693f0c 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,4 @@ app.*.map.json !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages lib/secret.dart +android/key.properties diff --git a/android/app/build.gradle b/android/app/build.gradle index 135d037..02afdaa 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -25,6 +25,12 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" +def keystoreProperties = new Properties() +def keystorePropertiesFile = rootProject.file('key.properties') +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +} + android { compileSdkVersion 28 @@ -38,19 +44,24 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.sportsmojo" + applicationId "com.footballmojo" minSdkVersion 16 targetSdkVersion 28 versionCode flutterVersionCode.toInteger() versionName flutterVersionName multiDexEnabled true } - + signingConfigs { + release { + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + storePassword keystoreProperties['storePassword'] + } + } buildTypes { release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug + signingConfig signingConfigs.release } } } @@ -63,4 +74,5 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" } +apply plugin: 'io.fabric' apply plugin: 'com.google.gms.google-services' diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index af92c6c..35fea6d 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.footballmojo"> @ z_Yd5)?uT>EmtNIf)u+1m-c`|RD)P8k6j%TN;3_J}Y9PM7{~io9#9QN+BRT*uI4jCZ zY5IcxWTX3PS}hFY7hM}GyvU}fWsNCV>P3r*Er6SY*lKcvoGM#?uXz1Ia^PaN8jM#^ zS7SlaAeN>G;Uk&}kS6NBhK+1kzT!>)+{Wv%PBSS=_x|M9_s;#UQkv_r*J7S2j6|th zHJ6wQjBn{tB@66}00qrB5+J%F35iynUjtyQki&w@&MSZt%P3d?A}xmhhe55}$aX*+ z*4skM9!Sh37M;Xvn(m&q#?;^Od@~`RWiD-;@Sbb5i-1;ULgT(m*A@1+M6v6TZ269Z z%7&{;yXm(g+36N^sJ*B{Tw9jyLg%mk^S(H~XmdtJn<3@dSBrolaj-vR#OSjgyGF!^ zk^o=}_e;TyWWnX*#cYDKchBT*V6iV3m`>H>Cy~4!?+_CafaT+wZOhqV+r=iWnaI1*KjAe>oo6avBhYABrMIwCh&9P2Nfj?z}a6;C-dDR z&&y}&=bt#`|3VuMJspm`P%0qe^Gu- zhAs#65TG1@+?Cd%aC(%{&hRY++WqJ|6d!_!j}`3w^7$Y>g^0mHhfL3GRaoqek8JS$ z%&ADb@ck7PH3;G4hlEU>g!M*B{7e6d>s`tbk397Kr>g2-)@Qov#`zD83xiiMTGZY* zQ}c_@RjZ3fLT7(q>J9Ca7R9&2=c-G1HSvgv=vG8hC`2*_YgT2`aqsOip&;&5^$@$N zr!qP&1uQsn$mK3`ePYsA9DJ44B(w@bdyK$~A!84@C5)JJywVoz?jo(o7TqA|Hzc(8 zZVsqkRH*{+0X&>@)uQMmi-V>_vz`5u+3oth34s-(TzMhfH=cFHhGj3js!kdFI0m^Q zW*&)_8fQ7@GUNEu1%z_H)_DJ=C`Wkb4JcaY=Y)_PLwiL6%jALZ095r(Rg(4o0gH$; z(%8qQ#LYlnSqB>tv941Y?GQ&$r+jH-j-+wFX~gQrr~;^tN0%?UdphM9JSK8)dj70? zis4Rku;6kU-TC}sPa~7Mw$&ig{0>>yYG=%0BfWm zX!srzT5*GMyt#)w?eyY*j%pkGd&-MUh65q5;7tdd3~Nj}Qdsclk2vr0*~}+)v$fwl zU>ADG8*%<2liQwX7iD#-F4~V=RXNw@lv9FZS>k??%l#hv{1fpbd@1fJqsPK20@46c z`spAYNX|?KD^P7(UZY*&#xI@Rn!I+LV5-o6ki>!$*4@;q zwx+pL;Ll*U#g>ht6xRJ#5F1Q>)S`tiyo^BU4T4ir9xAwuIIxNbKO3>=xS2YgOnlKw zx-X0+0gxsC^lix(&shXKJN$RV`ZMJs3+FFo(RJ`?NY3RJCahF27vnb(>rBjl%1xb) z)Ngzv>ZW?*)wj3MHGs>+-(Y#4*zEfDuAHajmZhr2&&^tYXZ5beP1o0u2!0bPBv={_ z$I|rH^0M6FboUv~px?b>855cLxvfPO(mrp?!{zY80 zxi)Kw%PD!gsVhI#6lkb!aw1S)p4b!ZOpkG# zQKG5uBl$mk*x@gRf3cS}9X+3Lo;oG=G;H`|MD575^vbJ0Jqalfbq1a^k@!>h$BCqj z>6b36Gm?`&y=iS3r|dsFFTLMex)(^Le#(NR47o+ODZW2UNu=w7>QvUaV6XuCv{R^` zQ=c69&`la|HmUsu9Y9CZ6ep_Lirf8im-lTHNb2@wZrk5f=k9$~ERwP(N9vQ1rf^>g z)(4zajTLk72V9AxE1EYFGo5cuItxm2?Q#CDzv;6XWGgQ#&a#i^t0Ro7!M=E9om|_| zA|{ST*+CJi^Mx!why2db{tcGoYY(EA9$!${?Snd=%knhaoz8Yi{!q)s#x6pts>7w) zS}n)V*Hv-Jty>1y!D>gB%~I;T8UPA0{m@iY9?4ym?e2Mw;0o85L$F_0(|`gx0)|Dik3qINj{dh11_M$cvHU}hB!#~ z15@OhY*G##AJ@HDtWhL4oEpR)3}d+J(!ErOGY#$P_-3d$W=7_J4LYeB%BFF{(uuCF zx(Pi(y!1R-+Mud2dhKj*fE@QD07Y*3SXOqZB(pe zT7b_K-WBpnh=^qeCpg#dYO`9C%@K<0yS8k`G&Ao;Y-|5xnNO5E8af&%ADv+Cp~(P5 zt;J)Kj|yF|1lN=7oTy%0!{%k0`@nIU7@{r)P6GIGbty?wEXVvB8Tj}Qk~z*$s@-^E z0cA^{byYQ3k@~NUvZCfs!Q!29Ul(`(x`GN17vLad-%wpP&4DW|k;D8;heJ!ZH@`gdadkEqQ4?Y?9;}!uwmu{kPHH$2!>8(`)Me05y*a$e+xT@D2U9dd{xP1hpTy|H^uL{6oi+rWGBxlq41jDkEs?I% z;su772`?T-HU)HC-?VNFME1On7H3mCJl2-`lTnvX>~COYf*D8cE|=M=*fLjyd1rrs za$?n~ZOKB7fEhC1`|%`y`(xYumTQ>e>9NVg>hS~~jdC*LKC#~v3>MdrtcelHHLA!f z=o&i7Ethb`1f{(?U~i|}{IuQkI*JS2{W#9AS9NssbGklx{A2EjhyQZkR7hU5?A|t>GJ0 zNT-6{P@bRx$CD{OOn@=fQfrV#I#tj4{7791E^K~$!=0BeZU0IkU%QQhlMb-eMqL;4 zX8P0TdM63T;_tc9Fr(C5DSLhqxQAafuE}?86SRw0NhTpFuBo_h#!9!iw0YnE0tM)R zq5%Gp#L~bG3!x}y#|LXKV>>1J0TMNrAI}GMpexc z{cJYJfE9`)vcJJe#pL$SrlpHkPM<^_h>`HYyHR`QBAdTKmb2MJcC)WvsC->M|A9Ka z5+1(J{P$@hehd>Xz+vQcO!tA7g#XKI!2aAfM5B(IOSh#GHq>Yv6{NF)TxU zpiVFc>W_^c>Yf=>Uf(!qJseRT@;5pogy=8Ycx%qD>yWXV?bQBaRN!P9X4ySR_@g=X zr=$D3otbZG-GaY8GpQyu_Q0H9#DX2+O4xv;$k}bU$?}eF6rE^_co@d`7+!*rqc3S_q9f9aSiAZ_qMek@0NH9I(>uxsB{i;ndU$=Z(B4YvkC0Pfl zP(uycO}S|bei8jdup9hY3nu0uEU`p8yvIlqfcjJTbfu?Qtw34#rw-UN9jYXHt#dX_ zb8V6_9ab)GJ+AwkA3|dKHA;^E2LDG9Ti)56QP3%KAKZ|g27Mj!DG+@+5*@a2hxWgP zAQO$L(I$X=Wk}z-E$lW;ZSpbFCgrSL)0O)EZ}nodL0d^xsC@L?=^~>-SW?iZ%l@-A z(LChW9wOa}{tT$S7zc6Nws~4~ngx8%g3v9F%HFDPgQ$SW4iIY`J@C3%L==MjC}cwI z_gbuV->EUuPwA<@8Fk|TP+F8g0JJEBFu_-ws~$L0)421_L>F#OpgPy{!kU{;wpJI9 z%BVcCF#L|xOs#66POZaPH(^5qfSqxiD?W2inD|UTp9dV_udu!3Sp*z_f8*wE+1SIlwcSTeFNQKA-cgLmX zE~yK)_x_3f8)Ay=3(3rd!;fXS#wJ$Fb4tDm8<_2g1Dz~T`B;(zfpE_l& zx{T{ml(;7`X~xsD?rcwg=fSLc$Fz$(rH)n!$^7g&qo2Rm6rJweV<78-Mf&21V{ikN-^56fV?{Ao(zv(FN zm$e;SC%|M|F)_-4B5aN%tC_;tr_TkxSLe`t-Bz$%&QQw*y~>^ef_qnscZO?Iuf2^7 zcl!kn?fiBSP3OVmQ*V+Z!5TPJU zqbIv2=X+_%?2{0xTwh>b*y>-Ezc-;Ba~)meXTB)E%Ig_i^kzg812g#;Y;neOus_H_ z+G)GdfOC09EN91lP4Ei6j0FLitzECLJudbRFG|C3Hd#53A4>eKU4IyvGY#Xi&e+j? z8zkNFZ0Eas=jH{GI$~|Ps7Yvfs&EveoaUFO_#q6_L1YP8T3_l0v2tM;9S+wI0hLz< z^5Gm-{$RQY>u+2VY){fL#3BwRy&f0#Pv)W3IGZtnw0|gqpKISP&dR@GV}D{-OG+fa zdp}6iU#FUnK3lUZgxoQZij-uzta1*~0GgJVG?Vw;B{oqpw$CKT=vIE}+MeB>wLYjP z4?1DyQhQUjF!G?0ZP(ldh9;HEdIE_9&E%(5b^4R;eF=V!C?@M8@BIvo`2_3 zz(&0$MhbC;w1qscSVl9vLqPQ-MCJrJz$Upr@$tt9{7BXe_9H4=@}F|!RWI`s$x!`7 zFCN0$^N#f($U`Wjy$#;uvvR<^#wjsKE}3HKlQ~$d$i9?&dewG8iQwRPkWX=I_g?ZD>?%TX zP2PwrmkeOHKX{5*JGu*t6^go2+V#Hc^iAb2Re5q27u}$IZK(D6a~0_@AJj!nL<8`I z(@?WcwL}Kn)W*G#^^cgsF~hf<2hZ3HN{|Oa$(~ZAZ0dVEKlcpGytkGXLpm%sd+pJV zV%U7qux`<1Vot>Z2pbC6QgJ<`?ncCp#Sv~1NXoPa- zP1lWTm^$P!T=KgS3%v}X2OD}7WzO;;@+hQAp-jRxQoka0JxwsWpzE99l;)CQ$+b}Z z8lhpznqN~gbRx^;JizSZY*6{EkU35QDUMUyQ6}Q1=19~<3$AXediC3|o;U%UT5%Z{ z-PW!Csc#`o4E}eQxfABU9!bU(+&PKcAB=I0RYL96_D}IcLsc<{umDIVX57*=J$(LD zN86QnN3ZqclD5D~FxBo4ZwEgFOCPM?X~epP-`Wh}W*z)R=pNSi^$_N{ip`Mko^5rM z1R>(5oEZ<47sC%3=)csP!7Q0#g@ z9+Oy_cU&Fe!#^?5cTpfR9~A9r(a$Ju0#I7z*YUKo^Ub{&R*M5n7sdE3AvTKUfOj3Y zHi$L9?x>LOJX5A8o%CS_z8!}*nrGy7+mvtbQ#(A2f?sTq%(;)k&sVi-m~8c5JzZH8 zcP{PPb`-%61osyjM)y-9I#Le@vd9HKIa3DSo*O>f*Uwr^Gi;z*%%@d0aH+|->Wt3M z%`MY=|5Ytl8r#QXxQZB1I`~v(LCi$RBA|&QTPt_*S${oHg%0z$n5 zZ=yZBx$WtIk#DzWz4(_FgC)>*p$~5kQlGcZL=MhBQXb~4)@Ei?;&;)oOyeK>#e$y= z3QzWFDOR$2$3nO1dYil5+Tqe&{ge23!7iVb zLn=whBx0I+XayYk##$vx9lFM>`-M&5;PbFt`sd&8dLOcXW5$?=#zPwOE`afP6{b)y%7CpKB; z9EY$hV_-v1>KqG4AJUR=8nnnRLs*WXpx3*BK~f}%(GJ{fNtmmv}8fxyn$bZ4S*m$s;#hB9N7|e?3Efund7?h zh`)aDp4gUmrmq_Q0{^{<_ml{p>B6vDYkrOXRY9}DBy4f_${%NyvnFk*ChTk^9~-r1%4|zSW(AYt zp1uJ$VYMQL<8r;1a1vbT#-=!UZ7eVeT{Rv_Yx_|f_Yvd9y+F97WKHTi3E2X ztu&vsaQQBe4y(I8&yQm;jWBn&7}EEWxY7XM5u6Gce(;p8Gbcnic?$V#9`AC{MpxAeqWpJf0HR(*O z=0-+ZyG7Y)GvuBdc-5LP-G+B!9k7Co#{uY`9XMbH5$=X!WA!vBQgDkBH4gUE&^clT zCXLL8?4z%yaIl1((jR&JH;k=is(4Oef9zO)r~8O`O-33RaPYb?Q`RIJ_T=1En-)dh zn|b*p_4ri>wo!)!H^u4{J8R9$eSs#gn@O2W`%wpCJhBvajgh?)T(Q)zTwMiXnSiK) z%sxyNs4^Rtabp#B$|wt?&6Nje)b1^W$FB^b*yDD-R^aA)qt)kQYkLsU6C!Y#T%fw& z{&DoLe&xixCY3h8jfD|Qqppt=(zw?U^*~!BRv678EK+C4THG}gjguW=E_Y*mi7-%Au;v@Uhmyd7$v6NrLJVgg%HOUjTQUqgkW2~2E z5lZK`#F}8qv0+#&SC&q@p*Lys$U7{rS^6ZDj7dii=mXP6|h z{uahEd*f>`cy7$5Yk$qIhyts%3|$cKb|vYiuR*Kj@BV7W9rDecOM z)E!@%+7vsH5hta;D$9U#Qx{qq6sbP8_G)tX%DW}aDE-T zqK}2X>qIFSXsq-=#zPQE>cPa$hf*7(;zOBSIzHWlwB+!uOU)i%74Fb>WC=cRlj30* z8MYRN-O8EQH?l+QhoFaFfmH$%PI2880)f!u1B%mMb5b@(PWY!~%=EzXkJcP7nIM$5 zO!0E+FZ!Auc3~J=rUyyLKh1oCx@G*{yNb6`q|*bvgdIXH2lYx*Id6XQKUytwZH;pO zDA-2#L?=#I>8*BT^#%i)+T{8V0C{K-NQ`i(VCY4pKAgI_t*PZ4zSYsiV~YPz?Rteo zw0sjfU8)$lfX1Ou#q+wXvw8nOYsZ3v`JsI{NGR@2716k2mgC=Zev1+U-6pU%DbR!| z)ieo_>A+=|$$O;5F@Vp=7qN+KIon~h61XAjN|vF?yr8@c(rjsto&4agA}>3ejbY*PSBXTJcNAi{0pW80f+H_25@!DTp(#JtLwBga)@!VDi)M|HD-1QdQONwW3 zxgS1n)3lWkCd+?(R|{sh@X6;zUe!Ac^z~RWGNGOOQJBRS#iKH0*nDQb*&*9OF1vh< zL8>O=MV*t=*e~b4kLTGD>VuJ|o-RiDu%ZkgwI>g~+dN6B)Ey6*G!7VPwDxCsm~5SU zdyHMs_%pm4<~~BOwi;JlNMm1FV&KzhdggX>hp3AcEj}tKEw0Spv}6K#CJ924x@yLe zS;;Pfr#rP&>Hf<+Qaox*AP~HgjAi_@_3rORH`br_c6x_g3)y+;OUgi9@;CnSwz+g9 z?|ZxY{b>YCG*qfMk1f3)#FqIka5zPD(VM0-$Mp^V+_Pin|NgC73j#F#U`?i@xO6nn zC8=%-Xf)}-1T^rcnl~p>*v5l79<~^oM+x$w)wQq0v}x<9x&3*%pjvJ+NJNKin;wVt zUD$d(@=y4Vd}ZMdchIoGNfwppTcDH z1w+=pqJK$SspE6(7tf0t->UZm2iraSe9$I;xs2i^Er8pPdS1KaWdwOagYs7#O^VAK zKjsVSb}2{$vx96!6KAV*o&`!4xkB8~sX|bQQ)CvC=aKRIIBzz~k|$!uK;Mp>b+TFM*EW%HbL^$zg7eoIH1V5kk<+TH(@*{#Ka5tZzE>m_FRbm3#*Lv^kI)ow=KB=(vRl+(hyMeR|w0X!wC(X3ULpsypsndsa zrb$W(&>@$yAuKfK(9?J=-3On?!r-&(P;}$7DI?149rb<`*eX z^&to7=<1}HNFB|L9Y<%HzYY3v9~gp?qKu@Dh@>`;o64M3G|rGsHEuioqw))?X>Xtx z%}@P*6Xfagh}Ru;C+I-KSz41?KwmXpqDpriMeqaU$$R8i63ObWm*u!2Cn%CsWQvLt&lF7pjnt;mSbY|0RT@6&2C}mH#IlXis-o$wifuy0 ze4*k;N4JCp8zCboU1Oq^=6RIIWJC_49x*x{jnbuy_dl>JABY?vGdh_xswi33sVG6o zEG0{l<_LRXaoNc2X&;mvUt~w8i2uQB^+rx~Dorqqq%Advu6TD+b%1;nz@{k)NxeaRz=0OuVo_#P=ug`i8E+l!#6$T ztW2IqBiL>rwh06|+EjWe^%)wc&!%Jci?rFgPmbmGf$Rh!$~8wNP?7Vb@K`I7pJ3If zrB7?WWGOHT1N#DROJ|kwhZ(VBdu-N)mLKF^x`6BiEoar*WxGqxnzRBsYQI3=Iq!(? zY#mL)9>Kj!ftMU4sh1o#Wm|J^$VyOt%)=tmMJ!Wjo==DE=Y_lOjq&;%$)3!M>#et0 zGWG1$R6_D_9C$c9LENdPt3f*lSqMr{$I#-$*&;UCRK1rLCd^>(Q`L_gU`ouGfcD+e z>7>h!GFp(3Pab|CA1k(D$(F5feE&+c?XgPh)ji)XATZHD086wc-9F zs6a@Jnr=ER^iN9>b@2oB8{k00e+K-|9ODGiMMg_LMpK7_jk=i@CC(JdtBO@juhO!L zs;J6s<6~D+wl;;1H(n0PIRQZGbQgI z(y@*M!t2i4!CJB;1dX7tShSI7PK(K<1)6+5ArJkV?ayF;XJEtwM?s$21N)0F%cBu|A#)v)s5hoCPt(dp@Jd=)wbK|t%}d+^{iC^{V!La zNo%uL)4Hl%92nk`X?6F8ECh9Rby0**|7yB%?2z^qtJc#WGFQ-t)&ru8p)_P6$d?>o zib1;P@&$s*)$IL7=`!eJPGRIMko7yZ5(h!o0k&kgK%03CleFGaOt)OtAgs(k6d_2* zsmDN4H59aaI%s+FzBvXJwyA@vcSi*E=-;F+6kU>L86`;(f=_J)v}%I*DZ4oKNzJtXSco9>Ym4;P9M zWKd}(|MqP2b()|bDe6S1`P_EZaPqr~)^jX$$x+(px2S2m*(T{!(Xyo@iV%d_kQ9`( zd@qV^dOqQK@l!=T3B@o3iRjlib~yS-5*mo89uC%$4h9q<=pk)d&wJPtoU|`oe3DzN zciYFUEDcCcP@OzvKPR@KMKnEjEEOcp5+ir0ApSINGVQXR64gt&pa?-IvSSEgbM=1F z<$y{oNt#VhCrs~g{~xhEsq1JI?@{o-!>R>!^8)IG<|8!_6`B`Nf;yHn{UTBCmJ^B) zbfvY7X1VjI!d)vq!xL?-JtEpS=#`-fc%tcU9r-7QQKGipo1EU5pD>N%9|slLPAai< zWe7sc7~ND~Tw~jEqqRbGK)k=h1S@LKzCg(Y9t;0D*l@zebQHot(RoqW)V0-doa)s2%9T@sTHi9tEgVJi6CP}oKeQP?ox=eC(I;q@M zO z7PCvo;KDM~W3-z;$FqxmhNTQx%HJKe>&2`yjPz{dcqaJZu*p$Tgiz7Zx(tfs2LjBJ zmKy;}5rVUY_0i{Znjw@?`v2Dp~bw){3Lx~-9KnFJ6fATv1*+dNpW(t zjIi)H$2^F42AT_s=6wzaCUu-x(|c^w=EYADlWhCz&x*bp9KdUtFVJ6ZZDxtJOWNO% z3Bp|Si@cDnHAe<4T)}NGWzU4R%_n@-yd??H2vxjdD5a_Fx}gG?GV>yy?G;+s=+X`a zOHGf6xC*I=?_2;z{*VNttBY_#3Wh`w+%jSq3}rU6tM&!#5n48oEbm0CFOYuViDKHH zvkEConhVCN(g1ikf^Dd5&| zGH05v3GcMC?!>TDfD%qvOM)=Dihba=s7_W;B*lNP_*}e)O@h(Jy!Lr^_fjF5px#9( z5CxTZzJ0D}>AcUj=6=CW+X;Fl{aIEgyBI$(?@WPG-%I<8yH77aYn=z6XLE z&I<7y4g!vY5P`m9*-mS7Uh3HfxBAyRTi6iFbJt%eF{D88j;oex-F8aumLg1zAu0~l z9HE>Ta;ouW`6hA4V5+!Zv_W(}{}(Z2f>7N0z8G@|$|^cZ3P@gD^pU5GKeE g!UXw2m>@s+FNLOLpy5yBSpWb407*qoM6N<$g1D1WzW@LL diff --git a/android/app/src/main/res/mipmap-mdpi/launcher_icon.png b/android/app/src/main/res/mipmap-mdpi/launcher_icon.png index 635c389a8aff919e7abdb173e0f5e466647b188f..62a0351c817381b67a2249664f47dd8d88fc2650 100644 GIT binary patch literal 9127 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 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png index 2831c8e02d490d2b45f7b899589c0dca95796090..62a0351c817381b67a2249664f47dd8d88fc2650 100644 GIT binary patch literal 9127 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 R40(kHP*Kp7ua~uo_#gVc2220| diff --git a/android/build.gradle b/android/build.gradle index 4273368..bf07dc3 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -9,6 +9,7 @@ buildscript { classpath 'com.android.tools.build:gradle:3.5.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.3' + classpath 'io.fabric.tools:gradle:1.26.1' } } @@ -16,6 +17,9 @@ allprojects { repositories { google() jcenter() + maven { + url 'https://maven.fabric.io/public' + } } } diff --git a/android/gradle.properties b/android/gradle.properties index 38c8d45..ca7c63c 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -2,3 +2,4 @@ org.gradle.jvmargs=-Xmx1536M android.enableR8=true android.useAndroidX=true android.enableJetifier=true +android.bundle.enableUncompressedNativeLibs=false diff --git a/assets/images/app_icon.png b/assets/images/app_icon.png deleted file mode 100644 index 333fe8ffa9dafc6248256c0f22775a2f9a8e55e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21718 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 MSlU~ZobrtQA10OQ0ssI2 diff --git a/assets/images/icon_only.png b/assets/images/icon_only.png deleted file mode 100644 index 0879bb178a84f6a2ee146f99c2f4ed89b4427ec7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19066 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 diff --git a/assets/images/moon.png b/assets/images/moon.png new file mode 100644 index 0000000000000000000000000000000000000000..3222d5519ac8d051e30e2af643c50cd851fbbd2b GIT binary patch literal 21625 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Ŭaai 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 wdCuI}TKv_I>{eS&~E_yPgJlL!HUYn$4v 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 literal 0 HcmV?d00001 diff --git a/assets/images/sun.png b/assets/images/sun.png new file mode 100644 index 0000000000000000000000000000000000000000..dc2fbf70694f893a673ee63746921b5eab33c4a2 GIT binary patch literal 22868 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 Y>IwY&km5PVUH~j+m#mFy3|!*=1L%jbHvj+t literal 0 HcmV?d00001 diff --git a/ios/Flutter/.Generated.xcconfig.icloud b/ios/Flutter/.Generated.xcconfig.icloud new file mode 100644 index 0000000000000000000000000000000000000000..8afe7da87155134b1f2f91ee359a77d56fc40017 GIT binary patch literal 168 zcmYc)$jK}&F)+By$i&RT$`<1n92(@~mzbOComv?$AOPmNW#*&?XI4RkB;Z0psm1xF zMaiill?4zfA@|h0)S|?a)D*pn<@GFY_)rKXqWBo=Y-%jkQ>CozBl OBO`=nV29E$su2LDfi6%0 literal 0 HcmV?d00001 diff --git a/ios/Flutter/.flutter_export_environment.sh.icloud b/ios/Flutter/.flutter_export_environment.sh.icloud new file mode 100755 index 0000000000000000000000000000000000000000..7c97250c9aa52c44a7f942718e6fddc162f648ad GIT binary patch literal 179 zcmYc)$jK}&F)+By$i&RT$`<1n92(@~mzbOComv?$AOPmNW#*&?XI4RkB;Z0psm1xF zMaiill?4zf*|eO}l9JS-_|%Gm{GyWh)V#9HqWrwv)VvbC;tWA1$9Mr5th$3z(@S#_ Zi#YgY^u4lj8Nh&%5kfPtLunY*0|0#!GVK5W literal 0 HcmV?d00001 diff --git a/ios/Flutter/Generated 33.xcconfig b/ios/Flutter/Generated 33.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 33.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/Generated 34.xcconfig b/ios/Flutter/Generated 34.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 34.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 33.sh b/ios/Flutter/flutter_export_environment 33.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 33.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/ios/Flutter/flutter_export_environment 34.sh b/ios/Flutter/flutter_export_environment 34.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 34.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png index 66dfd2708fa11ae834a548f5d60bcb4320b5aa29..5c066750627c87b74fbe8b450402ddaf6da8ad87 100644 GIT binary patch literal 106801 zcmeFZ`9GBJ7e9X65-K7TSz4q>R3z)DltT6)>xi;1m3^C0+9aluC1ojF48}IbKBRad z*&9r@WH-h>W48NytM}*o`2GdopFTgChsWcd>%Pu)opYY&d7fut%}fmT@=Ndo0I>JQ zb$tr};D$bO1G{%Ye^642F#tyv?S}p(t5A-m(b;g4XWA@PQX|Gz`0CvPE4X8No_m`& z*7VD>DXK17=MZA7^L)lT^8E5Vf5*GGsj-JyOh4eQ;n4#9KNN%bPuI;499;4LwHgb` zfD~|84O#*KR1!72f~RIdHpoP*-XGup@1K#!|NaG1x&H5m|7(PuyYPQ+!vC*En6Wx7 zyceIE`-#u!sl7JS$zQTw8uy%l(3YssKfX+njMb<6v#NvfuA3(PcInB4u}wU#Sk#Yx zzM&{Yg00(?Fg8|hg71vm(P-}J}Cglkr+tY{UFMX!_+gvRm+ z^6xx49;|-9pQ5*MUKrqQ=MmhvI>@rCn}maQ)u;B~>roiKRN*tdqMKx0oN{=#dV`an z4I04_3*y;cO&dZ%iSlp z3ahSgLYw0Ix2f!ohDUUlqqBodr>ih`$#-g`>)2t#2hG+kHywe6U9^E@c6aXAOA1WM zOhYM739g=tdb$~_j3P$i`!~RXw3+%tzZe}(AllRb`clC8>E~;iOZZh(3c)XA-R275 zSUG*Kzn0wKqNx**l(NDgOw4?3TaAZ9EBQ4ORlC zE(2nbIeK_<>qD~YzT$xr+H&;1SOB1%{AW_xL-C~Pjl$9YoXYKM_SR+8{5b|Z3H=HB z*nK;?Kkk}KRhq+wBd6qK0MmChS*O5nBxX$@!eY3xZSv=wYFm^Ihx6~76i^a+vF{o< zhWzDwSXsn**7zT6_&3mctK6~O;UIOC;k6&3IYcte`mt+tSAyyJ-Rerpzq}7`7jS6a z)-&Qcv=@jLd<}gCkb0T_CGH)ff=xK}YsD6&v~6#Sy``HhMIDu_P15guv;8>JkSO++=cy0G>=@s@1)6 zD4)L5tj_3uudnL%`g$#XT{fda5@)nkR68BPAq{s5I~omT$&FWkH^6C*V;W59@}kai zgZKw2B*1whg0|CNv&k z{pG)Xm<6Fu*;XpPQ}d@15=TonHwt+{O->=5?a+~sBOV&RUCJlqd6=OaLt_Kfs7qOI zH~|&xzYUanp!x}gBgAv!OD60>mRa?@5@p?C8+KDOdCmUBujIt5FuAOsel+5JY}lQo z;4ZuLs-S~>fXcIfkE`%hc(?P^WjNwxUZ^*0qU7pLra_tE0Y_4^zB3^^T4u=GQ1TM)Tw(@;Jn{(o=QN+AQAqKa;Tg*Q$J|XUN zBvR_w>*pxPt2d(E^6&a?aRRBwAmahRiB}3Bzk|QmFk&@%w8Jk{D6TvE6--*q{-)B9 z%!?2o4f7QdkwC+y&V?$es*b6~I6&pxzXzWy42*aYCX&E7$k2n0-Qz12%d6X;oHo(J z7Q2~2mIhD66ud$%XZKgSRjbu1C3A763jFWMWMXl>76gU>hp;9nu$ZhwByuc$fV z@2L7gkxKfjz*f#$M{wG+sYY)=CGg)vdiq@pudnak3J6vUXjTNFi(0w4(NRqqF>Y_| zOYX{1lIafRl+Cr|)C|Hrejm(PSxde@eib+<@z>u(WTlM4Bk0Ayo^}^{lL%Eqt``H( zHRW!+xO&VS99g7Njk?Kj-?kCQ1U_z+_kU01<-4uESr<>i%l@+$mhe~M?04HTc~-mW z#4p7MyP^2kYi%K5?XA9)1+Vg|TV`+o&OiTN#e>I`vW@hoq?uqzC~0}7#O_S;A?j$F zWSPfz!dQwWW=k+GBualGzfUB>DN1L#ZWl27?-UQ7;&>&<@!5@qI{B;8`(0dyP?N{p zq73?(z3NOhKzCYF6J$MaIuio`ZhJrq6y8*>b+&(sdQWf*2_X6$$ykq8{e6YwVD7Es z3$6#nEsVBqE*B1xZbraKGl5VLf5HtNchkY*<8fQ0-%53fb-(3-&%*KRL^8WJStgdL z+1|Iv{ohbp&`wlCaNnY+LS{%k_1F5XdTreWzw477`0?MIR%DLQWW=N>HUb+WIwqoOTw9`TbXRo1 z)&G5wa9CX;!NumBck+u9tx+LvW4AFr)Q)Z+OqDwn*-P#!Z+B8f04@oU>ZFFH@%Je> z^+}4Z%&N|===Fc;3Xx*)S(zi--#3Hw4+Sq&1 zZXntYPVzoH92_<7G#G5`$kr5@Fr+_HIRNY)c3KJn~iFw{t{Z ze~;+eNm0(OTp=@s71L|K#p3nbqEg%}uxsOcIKV1A1q|Hyy3g+J;$y@Mwjh*xZy_fi zqRu3*>NnNxssjd;?j6D1Q7>QoIagJm2mpDaf0Ob44*kT&Xp^`(mrAx^yf9!;{6eR| zX9PxJjUtlm2d7}lcuX*X`Q`VKCYyVx&9~_6DNg0QWU_UM7j`jX>yB!O4Dj^P-)pzq zvyN%_$>T}r4=Tq*By=k=K?~4HyP_48$tiEdKyvuX_;PTQF(mdN1GfX9 zTDIQHnTpLtJWvamjNy)MG>D6RL_k5V7Jce}hbi1!&HHA7`}wt7>=37YX?ID!()90O z+=3)z9?$oaR0*z7{2F*Bo!iV`-KVb1A1fJAm1akqh^iFO%U8|$)IRpR_0J>th#Cwk z-}3hUvzdj;yS>eX3*QZf*(kpQOprBKHmayo!J9iH{{fbq#BsnOGDE!UH2aotBbyMBDG&m+Y3mzaARj*{B<^q_e3ii-`zc>wy z4ZU9pXNjN}y&t1L5CD z0P%6eFLV&m#$ZjaH2MxweF$NHlD4nqZ??-AQ0gpUrQbr?-wPWXZH7HMAOt7F3q*VB z|8<|oF08P%JIDR@UjuY)^GRh1LFCW2Wii&n?kt2go_u>cSEsOk4NuhEo4E)c4hP-v z(*dkp>%ov+9_HD>YW0eJ6yVkkF;+K+v&8?lsKhqXcgff-%LD@r0gnt+MWZXVQ@MT= zyj?AIq4P*6)?SM_Ji7~|^tJsw+T76kT1ieo<~UHvrPsz?azgyHq!Ego&jq+%`uBoX zH>|ZZ)y9v# z@%nG4Bsq-b|K^F*Thl^sDe4JJ{s!nJ7+QKHc&Z7r0msraBkRXg%$_|==C@{ya?6{G z>uC$Shj2v~{EaPu$kilN*KdpjwwT?G@n1^mv#djePgc-zroUD|jY@=`yueA09?c_V zLb3YHxz-Pwz)|fdyHwJv!=V#${&eyn%5i+%8bla&Ytv+obN{GV05PcZkq%N)b9~W1 zo=E|kyUYyK>8F6QuV%|!z#hrJmrWx#%O-C9z=~J$Scu4DgjWzz>D+G}o?6(m;&QUO zQR5tCHd}tHy4m4XMzI9Re*WB90c*SUzNVwRtG7&z5S205cW{~c_rnx>KDA_FfqnanIzO zINHz;1-p-os2K)l)8ixmyo3Ls=$*nfY4q2pc5v*b{YZ$!vnt3D@^MQ3Whl#WLA(xF zk$7Q2Frm&8-e_~kpMFu#pTnsSWJWH#64NGKy_?7T?-8uFQP#ud4Kuwpk<9L1GWtrT zX7P%SW?3k6Wx{o^dpPE~(P_gz=4j5R&>VaXqizrDM zB(BVSEZsOt=@%~#JD&$Dooe6dWQ{NGD;&OEu@uLNy{kO(WZ(^&_ro(28g+0BENpZ| zcPf)FRcF?s5{>QmGgYJY8;NQvkB{+jIN$o0fnO&{hkN1*qy%@@MPTOi73a7c0z+32^l{fn@?c+#Cs zc&kgfbA0(mv<2qeavc|t`43p^F^99V!tT7sIWjc3*(jYzAt&Xi!M1@P(S*n7?6PPG zQg^nUZ*b)#{C*qVeDZ65M>0z(a>;Wyo5OkJZ#+mnqU6tltrXI;I}|gwLA%`GLBqkq z;@o8ILs^bMP3TNqn|PqYrCi5#^W92v1FQiLZos+v@BY3E;Xq6}+uuMiinl3DK~1so zBTVY%$l%h|@yFm*YFU3(ajhMQpq=}|-?;%eAOH6d&^4&|{AZu8(x4^uluT~E34mMj z7HoPlP%f&w{_YN*;E0fy^%)F?Y>U=RFvD^IPtkwV*`A)CV7B!jmsb}P^Q|%H2Rukg zEYh5`l?XJddiZa;gNQ*q*?c;ejBoUVaR3wj|2D|cz^(VqeFL2)iV^%+=tLff@+Q35 zli@s986~KTl6Uwu)?h8Mj%%>V>DBoFmSf z`w{cbg>g7H{_lPGbBu}$$rl8RFXY723nPhIQd&OA5<#|Pl1F`BTKTVROiz{Kt8 zCwC$4C zo&EQmG)JB8){Y>4s2gtv_q)?%k`cGgN#JJ()vI3pXRDj6voC9K4BLb-;8mcZ;G{C~ zK_Zl{r52(X7H8vb8S+JYC`2NDK-a42!2bYB+B<}ySbaD$!^$5UBGE7%I68SIzrPLU zfh%&HkC&>y-cSY=m&J18k;nD4IMNzVV!iw&c&p&!IQgWml?VPV;7Pp#>+^&o`! zyl<}jM2*h+X!}B7s!n1oU+yVgJ2T{_(?C<{zl-1!<5g+5jC6h}z_Jvp{O=WnoIL*_Y3{(UAKW^-9aN}1R-QH_&}8b>w?M=tqeE&L zAEf~K1mLhgh!u?b$_YIE7aVqbv^pf+g{MW>uXR6D01djz$qF2Lcj~Mmg7nFK^Sz|Mx-PR>bq!$j$w^34g-@MDF>A-OL!M6Wkz#2tQomjZW@6C8Xm6zq~?l?e_LBQvJdcU2&Pru3>MX zqR=LcvAM-4)mxlHANx6*0{`JG&cbsT7VOYX`sF5Ut}CdTh#V*ya`Po-*dXk)b<(Cl zx7bGI?OS;%!1E96fm>}r@`xzOZz+Hu_#cdL=C;}bVnGp}=Ic|*vos)cCBfE?j}aO|NIuU;dHzv&qt0H?r* ziOFH`G_`S9C=8y7TQXH=Z98S-Hz>&MCuF*Dxa&aXkMBKYFSkQmU&M~>i>A(dQ?kV- zBP;|Ev-_H1(WkEc^)c>UQouXQ1P-4dO{iA($wxYyV(g{o1UW6_xV(<+E>@uVC)ZCC zh%cNf!f9GoIfM@sAk>|2f&m%gJ9r!OJ%IG}TQB4<|D zn*FBZ4l5QhJsW(GGs^d~IAz~%b*U@)+3c;B%p`j_N=tMeD-zdwTDkAb`ifC( za*Nxr76i1@{+aA34_J5_(-kRKnpcjF1#WI=Nn;$ybY7msY;*uC@=U`kvTec zg6@ZR@8~nlr_!*JX!B4@HA=8Of5{O!bNgk zjnR0o1!-A5kH}Bd1P(BXnn5sEc9!j0iqs54{;9BaArm8zH3)$-=i0v~B;V%~s4cPC zfmBG_*bd^UN=rdfH+`xL`qIfZ^@$W;3!)3oMO&P$O~xu_!Hkol;u->r#GU6aYQgQi zrF{k?PdR0i){g6)ufHk9!A4F-ZJe!tFh)7(K_k7tLKZVyDakRYM@*V-6OZ(w?7zcI zqn7zMl9p~6DbdOQYH#^7sfk|sZuU5xOwfk&@ia2=s=LWmsv|g6G4Pi-^?X+ix?Vu(*cTi2hwqVB-6Tgv;VdKm4ekr+*`QKZ_odiZmpJvC zvuY(ag034_vbR2kT>9g4%{0Ld9$_(BX@irJiEp}NezZuabHvM~ z+39Ks#CQM`n4Qq-{9}`oDzs!EBE3Q_q|ZBfql|r7wbNIc>`SMGn3%L;z(xwVFGw@Z zNN3xP`cbPpu-o22dptzy5?n2N5dP{q&ejIeZ@B2^gE;rFP5i4Gr;qW{8{X`R*~igP zLdd^!1;LFC4|QDX?0P)~1nKZjK7l)3%pTH2T$}GH2dK z5S@w5CR0ritGm5F`t&r{98e_reS<5Uw|uP$u~ zSA@;CAwLNJmJG#QJp>0O>zmI08;5zn6>b=q45cA6-a1@=jLH{k54X51xoJNij5TV~ zY)j{g;dvx+tml6C!oJT>vPuR@w$E_*4*5TEuIo1iJ_qQfbBBYW;5u<17f<*h>|8#Y zDlwP$0#%f`)H7RLSlTE}uceV9V;%gpCyKnlI*HM|ZiYXE6K`){Rp#i)<8mI@2*}QP zBc@WAJ;mbIJ05AeSwUP}xSlZY#M!hh3)LM>FD*-TKYPd!2KGekUV^VKbrre$XxLUJ zeSPG3U3vK1KzTQL_KF^}fP)+sr@w3d30`t!F#Vob5O8vc`XjpP0-ngcFeI5(!r7Zi zQ8!|<8?aZ)32m}b^(1GrE@CH|RhM}s2_<(-b$zFPlYTsbs%xaU?megzpL)2`Fhi*0 zY39QZcafX3XXEU2nTJmvNj?F2T*r>bIX^x1Sem=S&X`CVl0nLJhT|%1rn{dw!%!cD z4pvr21d*QhkHJpYcGDv_H7Z+XYlf6Un?^}zdIlXH5;Dj7He7erWq9v3GviG^iHf}*|RtSfx$xw4v z+mmFCEn%Y@C}U55J@@DGCJ-+A>n8jsSGu1x>GY4E%v``PW9~MD9C!SJ*-o>ebS=u$ zm6jS{XhwZFg;pDiIv_iY@Dr!za6ZiyLE^N0Nkx>QhQ5FZ>rsBZdLxsPWxEi6LdZCw z%eg%VYE-f0MT@=_Y6{yIq zx4`lQt$GY7zAhZ`woOl7JEfvw0?g5B?pfv{0>}rIq4vo^{6fT5zKce-=^Is^}3%-XitjLQh67=2sSHcJQ0^u zbjGT&ha!1sF}BQ0qOhN)yY(4LY+YfYc{H%0zQIVKv!4U4*kPEPU)}wQb#@`Me+{NF z5cM$`Nq%t=BXT8H!xZ@1hkWsPRf${WNvIpNko$A`qw4=wi?*FB8oQ?nh#Hu#^qGZq zDnFf9iTW+npAS(lljGf3eeVPCT!x@~9r${}r$j2#V9>QIMW(7FV^7vJ>Op0lBW8Z% zIXW27k9_G?8o>qR?cV`zy019_p1Cxk00Qjo-?;7MQX|0SpV&*nuW87beCYZc6 z9~4#8yt|1Z%1%Y^-q3Y>%f~9nqXbxWin$)b$}UD2^EUl4+e8RRpuZFkPck^2t9Cr$ zd$H41<=}b^7~Lcysz|1YK~fsA&l2a{Xg;*czku80bIN?lW-X#~(+Wqt*-76(rVX1u zOQ|TmErYn$o}nMwk^A%hXu>Da#Y!!o*O@}TWMEFUsIMeFJ(W*zGBw#fTv+}>t=4W} z_Bm8mI{TecvD|cuTiYcX1@{&$opm`RxWX&S{Gj~HDD0^0PwbXp^6DwsP^}ahY6mOp zn5^_iBwCvF;ed#SmRC~L;jAm-P5M0-pU!|$yn6V61;+gABJLlTY0}GTf(D_2923l) zYxcdq**c2Hng4ep>(H3-Zf1%Ik6=f565VOgskyO`)))kb?p=s#XUYecKwrQ3K5lt`F^~`P){KK{=XdC^Dj!eJUD6oIVUSv^=tRVG1GXEY(h#q zLZf`RZwECw&q0AL`dzLyh64_3%o{(_Q2O{ZJa(7q^Hr4|Gn(`q~p ziLq~gci9hTO=Udqvt64G9#kl<<^6O}+Lzo-f1UYlN=nwkZ*VEdwR?g5G(=$jdQU}b z%-cfq6@(|Tc=#?i@UNIj)!e_>wY1>i2VW0YR%=;ItWSQvl|Zgbb=v9zQ~EKJu{wOf z%M`co*{{dWHMt!1XLMQY)_q@@DEQ8V0kOQ~@V}hgdYSAn)Xj+L5YXB)&Kq=hF6UL? zM$4IxeyBx4qiK*FV5cU-^*@GLCFsC+#piv-DBa}M7a3xhO((a=;WS}D{EG-Zj-8|1 z{4>b-u_(!v4h0rcmgfWu!~PhEWW|5>Z-Xbj>tJ9!y7h=>~y6A8oqfx4to&6ycPi`4LfKYB;C zSKa$HPrMce1Xe#xUzRm=@e19b5s7pcuVHrSy*9tQ$`M)MGLd;Ln3XMKzz0Y%Y`oyb zhaZ6w1^{QO%g!YeF@jt0FlvxV2!hRoRgY3HCd(^>KAKX)nAejt1stY~M8E8qHQ*lrvL zjsY#%XX5OU{QvP#_Rt-?Sj2Jy#QkSjt$!diTkN55U{t2HCsBo(6seO9-1brd^u=GH}h=CMalOI-I^ z0?l#|3?s+07TKm-#1>v_fA!*F-@WtFT>oqknfyGnSZY(D!OmxW72!W+gYi9)ya&H= zUkx^eO4cmdz)0#z)^x`y1az(BH2f+YF|USeZLU0SxE*iOKVEXdNop!rPcL?N7h>^0 zy&zd2TWp?}b&AZn8-}(!o&O@>{lZ$!$=3B?dHijtotg3S<%c(SdN*A#jqVUJXtTw# z+g~C%vO(y-SXn%hp@VJQnjlEA_W*7jP`+$(H~)4{IzB=a4Bz_XXjmM27g52$Oy)2OsuWeJeecx3FPY?m>!=VF!na zeUI9UV=PJpDFw7coF+wEb6(TRTfP1pcq6EPImKzHVj#H81i?f#b(8oyQgR+%CzfF~z8k-}@xo?!;4=0C zxNhf?m(|dlIY?Fbbzg3oyja(D1?n5qKM>weptNt@k6Zt{-V56b~^?0;flA0x>rnqAiSvto5Fg#o5^NRXqm2u1hF+q_X zKjwp?HQ3R|2?f8ghEj2TDvB1pIq1HVd_u0=6BT<);I+D*^W*9@805KFVMX~~+%&{) zLs2WTlkf;t2m&)ZZQCa7oHh`KR2?oPSVQ_|5Ow&B^iW#Vc! z3EO~<`{rCsJSiP{cU+O#mV{hjrYbGu*(Mw)KKRHw7>I0a#u+w)VB?zBjz%m{HE4mM z_?lL_*5?ieNqGg^AFIa$Du;HW?}tK9{x#eshV^o}OcMUJ?fODaGAq4m5Yb#S;sw!f zTdZd7Mkj1oE`eBuO-ZsI?H+N_0Im`Ln~h4;M27xb{zm*PXxic2*Y-*JMGGzrIUhjPi9AlRC}jsxag zz5^!Q^@?5VG>%l{(?MKt58jVD5+;|hek;Xz!RBy#OhmA<12!QoY5%x4ka`+|1I{J|X?Y7^*V5h0j}7k}sb_#L zVg~%CWduQijaI}$S=4fe$+W@wy3rmg=Zs1kex07m$Cq`VhrLmabUXto;~2m965Je( zm27{%^#$9Kz}D9dg%n!Qf@dy%8&L->kpa~#(Hd%>^H@R|W?;(~M?u}n=cm2gZTg*{ zeiXEy$oE@uJ3=nQvEPCdopVFAF4~KHHHpbXU0O;8R`0>2?>vkvs|iZ-0`AE4F(*v$ z5@HLvaYinPV`J-8PdxYE#!?BC4a>tr%x8+i8t+f5)aiUmaV?^-?Kd~?~A%ngIVnz}&%`UG9 z0y}0ZnY&Tp7O(tFz8`kLe*|_qaw-YzFJym`?}CuD)8l9mK}D4tOsB9P*A5ikO8kaw zvgzLk_~MAC4zF5{jLg2fmdNh>O-1S#JOV8flUUw^oow8~LjJCA^}mpcN?y6v&=;J1Ob0(|*Z*pNN(^cqmlC7Xe}cnoOURRJ!T)uz|^7{z|#1$(I_wlUsGRV>UP*p@9nmaE!D zQ~(Z&LH?$~dsJ*wzFX31n{XH9Q0=-c_OPT90H@7vEk2vk=7R^ zVaulH!T#`K&gk1a#r=6>CD3jug<``dv?Fl#!<|(bPCA>E&uMuthTpe3g&t*%D1tB< z9cayq#F3!>kH~(*W<4El9!=i*E6&k;9}V$-ntdh=4M<$fi%X>6ihH{FLRfUwL)o@h zYb)U1pV{qS?v8bV-^ZbTDFyg1qfFM^;EgWEFRa`m2^@Q!Lk_4@22_loSl6_tUt|W- zk)Cn?S-%D{e*5~L*NuBL^`OoRl6x#6sK~W2J04J4b^Wo#K?!(u${QYgk3aQBcZE%f z&$mcxY8E+PKMj1rU5Zs}(8dNw$U&?zXjbj%-JUC=2y*#DtOw+9y6cDqJX3_p)ztoX z$+ZrY>bwBEWcxb^&-^(0Ur{!9yFHTgY1&jYg%YuyB|7o@EVgAv^~Uk~yN$JM`mueYNt??)`JjnkB?)YAg-|B$sTweFh=0}|I{U(=zYd53-{_;4aL{n(yr+JT_P}K$b zXLF%nzTIg~6j?Yy_g&3{(n;h2*^$gnoBUS^2bGRLXbjOGIruwRmd2j$vessOyjI+k^Ac0>2#5?h0h{c^P>R$u&Bd_0jE7L?T$)Nn>56`U$QPX zSrv&trgF0FrB}T7X9^z}>5z$_+|SN}IE&v@M`cLykzo}HCspMqDMgG9RfN}V_sTj7 z>>8wF(I3sZqHcc5*VaYTJHg;I-k-~6+q}`HJIWNd#|pt-?eLWyb)w(&g{APVzE}#0 z9ISKD`l^FK<#JNyu&IIR5=>C0D^m1kX2^MNcH#BH^&`UZhi%S2yl?o_+2%b(V2nd0 zV+sh8>a7Q5cY}@hM%k62ctosVGwsyqxdo@5n{9DU*OhDw;H%uxwY!*sF?Ow7!Q=}) zYOS+W#*OMrHqjv}Pp}UYnEkPGF=t|^L5y_nXI(Ect;$Ik_Ylj6jc#!^sX%pE^r0;N zcM8EHvTVo6r%=jDkmvmI>6>HW2CT$qBvWvi!C4#@COpdj(4c@IAe-^r_7SM{mD_Bw zPBZu|x0$SVGNT8}9RJ}z1Uvm}bM=Va@o-TP-H*F|sZO^w*J_}Rw=yyiQa1Z9Fp!Xt zF1)8CC2f)zWYB({B{`yYPc5PuDN}OWyZxI87+)o?Od4z0C~TaPKQZSEM5Ct;2?F1N z^tNLD(WI3-EEB(Dze?#TEmKscCGxeg^nEV6n@#+>B1CdVaR^hty%RxJ=W<6Hk4e^JgbLpzr@=Np{CJ2`2Jd1Rl}@zV8coX4ls+=P6j!e^8dzD zJ*BF&L6+lcm7@vvsov4xgi9v(?Au=cin;|9uJ(P5nta`Y<~hV zPEA)MSDmmTdN)q-^hm%x(X!QW5fkPe1!1638p5rqE@O0=o8dy3cOXST zoi6zm<)~pfjTktAk?($wlN#T`{sfx6wLh($_23>wy`W|-zZ)!a7~>l!9+fwjGifFybXqKege8{8v#zyY z)@)w8HX{HNfCqs@|9cX8M|7dg#u>>&NB%+tx3E3u)vG?79=fdU-m6^16x=Ww`b_)O zWqf*`s30d1&iCwdrq2X*@>n`YgNRYBG!0{)-&Zo6y=KIq#vmejqpuyS{m$lUa^KOt zSl;QOW4D}rS)lJ^vXWd}ej`dzJM3qkkJKi$o<6cKO>Ue^g`&;Tvm63^4?D-5=w8aD zhhD$45t&&yPyd+n$c|0uL{MF?h%y(Czs43Y1y9ocs`$1oUt#yh;QqWpi+%RK(YZJ2 z4()9PPY1+BTnjRuZ@Cv?g`93C2y=3Sz{=g7^nai?F$BI`xe1yqzmVq;mgn9bvtXOu zUkV{q#{68Y3^iYVR>gb%K(vs<+)v48bKw^sI7xOt#D4s_eHGGB;AxPMbfZl4Ed=HX zXTTmt$nR}S^e=`(TE9&b+i1REu*KC#{?Ocb-<#%Z;on9^c?fRvVyiKNtk<((g`aW} z5v69BuNRf&8Trx*hLTNC-z|{ zse-`FjtV`MGmY=ei3e4$odirLY@+h41*%Lw#SeQW4t`&Pl2+K}9(hY#FXk=O%mZ>- zqn<^FoOHHHa^k2!nn)t5OD)=qA%qjG6w#ab4AQsjI;rflTd>(j%nxo@Y**)Dm?QQb zT%9t+;q{4FL(GhTF$XXk2VphihgPcdgXiFsGZ4+HgbV%62=k7}pC(t>F{!gL3`^n# z$wSN+dz`dJv4x*9&1A`q)DhW(=1CTVX3lSD_cL$E0sKFAqZh9+)lP1=-;J zReM2p(1ZV~J=9}4QKMUVi+$X{`G-5pl{WuG!2!x2?2!64##;NB*`RTq9h;JrNy3Z- zqnbwpKO`0NJ0E$y-VIORXBeo@FnE@JEi=>4OY&!D^X{*nnyhJ;!W^$va(9r6 zS@C%q5z7f@iJDzy7$_`wM@k!Ham>z>ck3NtA{iB6qcA|M5NDMIp0D#Gw%&s3f8$*{ z6;bnpvP!6&jhOb+;O5ZeT*-M+{m9PuhjkBFPH(-?V#M>c-??WpD|>IyneEXpYFIl3 z8Vo~M4wv!WPyD1B<*S>^r6;xDE59+-ZY>KYZW>{6H9{=<#wSbNUGLXnv#Nm3nSo0I z(6~^e%`_~a{l&3D=Hm04@dJl(7<(R(>vb>0zQ zJ5#y~Fu#k7!NRR^WkM-IT6g6bKJN(4CJ1#TgZkuYnkl>F-sqWJ8|@=21!G`%Wcc$d zP3U&&GDJ`RnKB)=+D7ap?tz22^ZH~^;(jbLCvir5`)HpZhJd;wQKAp1Aa*>Q`^7W) zCCwRAzG#Sf4?c!pzVVQ{`J=+0WM221FPd;zyVNdU_h|%kdtj_S&EnBiISU$JLfY4> z_381X25P2ROr5QjgWcA@$`{iKX?Si<)>8KL&Vc42_>*%siv&%`mWj`Hu5uPMy_tkk zVy(*s7jgS3>^KbOGAh!}|OSoIOu8DK+7 zAATmk_9S#`fQoq{{|g%4Bss3T%fniVX{W3@o0zB)&%IsUbr5EGA9w-K(&M&BKU;(P6(0>|Ae(gb$!7;dw&fu z@nXSoHwW43n^6%CVRzAA$fa=U79DnAjKcI2q0b)Yw;i!e>@9`hHJ2-7b&tTbvFUq5 zg+t~vrs}T!@sahp!Uja43xuIrTnzbq;I;2?(aW6Zfj1{;0qfzZbNzXwZdIoe`$+bdj=dqsu=OM zyoe>Nm(|SpXp=b-O>UZld-yhC@4)Ma!~eA#C~zj8nCFYGhsH11)yjBYf71T=s4vTA5%jD8p#j=X6GNjH?F_I_>~pt9QDBJ)fmjN>1* zqPOhjAZ6Z{sgMU)13-oH*9Xk+g{y}Qx`)9FbmK?BOt=$c25gzRgJ)w53re1965H$aos z^9W(3DRmxjVR!W$x3hkNgef;vaKK;UX0@S#{(Dx@MYCb%zB;Z z=|$?Qh}hKpjVe2zK{^OczCm+S(uYkyg<#(LD}tEDsfpt;9Vnb79)gd^It0>>6wd`4 z&WhT1Y#(lAb<^KNThB-&30OJHVItea-QS&Wvdh-!%yu3sh%++8VH=^bc~*^Ia|`P& zrHJ>2w8fj=7R93nNi671;@!0Y6^@O^PD=AO=fzpvfKqE*hS_2X{ym$U;d!?c8b9;F z-VZ(Va8>2=UX)obvjsYA-|Ok-xl5tb1i!k;06L@Bl`-2uAemPz34A-?@_`q!!0AxO zaVpOXO#4*|w=75Wjl9h6Z~D#XPHkwo;6OAUU67dKk?=zLeZw~RLS8QE!yP_Z!1zqY zDm0l`aLKWFA^ZVWejR$D`c05E9axyKxJ0q2`)v=x4-uD80h}qmcR!sHEL59C9jo(G z4_Jhnej1w>ufT=gA5pA>%N`oyW0F?f_8PZKfG>o_M?1Ia76X|)Z*PgA|}d!$!{&-%ap+&n?tAZhvv~htG8DD z2m73+{;Nw2^x_4aAM9|fXDwE+$L0^HjJG?k?u$+o3k%Y|M;^Kq`l+}E%*7N6e-XO4}%{a1XE+tWXx#>h1s;fmXu}YXL@2Cmam+doBGA z2wRciL`j){UdW#tD~!3M9xr}c{>5a3ed(QZx64dNoPfyxLLhBTvY|ZF?qg=<{WHvn zlo8h8&201ZT@cS?ti6+0uN7`77vR)!KG1Ar<~!KDho--y|KTvG?3}Wz8eBHMwu!jy zd;Hg|PbL2LP7kpA#P|`_Z-*;KXz|%icB?TQ_)w^cEcn)oIf&{O?6Vs! z8Ww_yf7g|AEr5PdA?S54s`NxKAb&K{bU!OsRG z)1pip1gT%>q+<2Jcd`oCpYHvu+1oBo@9N(Zpw33^A**ee_xTz-5OX9nw10@&0fN84 zZ(DSO=X)6emH@V}A^6n57ov46uaffso5%diU3^%e!!VUGQb091=Aq8ie-zRNjE%PR zEL1V46l($$L&831@~ZfSztk>*!0x0qQhxs~Ak}y$VedIG({?~r{zdTlx@FR8KLi4u zHVOTLXGAw(kWT(r!WWU{8@t&JYcjeba2jqNyteg*7bKn+_f^9=4_nSGY-$WL@(-OX zSp6?VqJD+PrKN-^xF?w7Fs`E!HSyVYwTvshQPzu0TrBjXNA05^D7@@63T*Midb1NR zM4$X9k@J<83ySv4Ym0v4E)f!DIlexfwl@LfijLixWo(s&1i&Y_pJEEG*1fA+5@;|P zd4-)oh`Q_4AniuitVx&5H2s{m(XI7;AUbZGUWH;Ik8t<8`<}3oY~WnB*_2|eH|sFE zvkj#6_XNy}Z{_8tXBL(C7&F}{^DOL5gNAF)P9UgK~%!bc7X z1F0JP?7@cY*EucL!!icxd^)eWffX?*Zyw~rF)&_8Xc{OjvAeBeZ2yX`P5~04*TiwY zs87Y)Yd=%bLl&<-yljmcL$uAES|Rokpedp8+xP59gjO-H^jfldr*2192SIGLKtOMh z_TwNVd{y3ON9*>EsCgq($eeYx%_N#U_$ur6s`WNBg^i4|So5(!AL9X-65WQ-u~pJc z$!jBYFn9~Rau@N6+5!E5!Q-ZyKh5Ap&gqZ>%S&xyW9|M!l(>*3yRA>kDoat)GAGXN z8nDLtPMTg`0aIFdw~XfB+3agG-~NAS`VL1b|M&glI5<{TWTZn1DOsU}V?|{rd+!}t z*~d!CESqfED|=*@E!(j&B73icbDZb*cz?dXzuwew$bzS%MLU2Y(au??05Iwn| zsw$!l!Y7_M&KB*t93w#Uf~#XE6TEq@XV?42lB5){9>CZ2wG^mm9=bG%O)j=-Ppizn zU-{x_F)1E+;JDOS*RXZu4Y)FbF`+$Z23O;-mpJO0agI{=5&Ao1^62n;M8;+&QFJxl ze3GI}S?r}o{uk~-v<)cx`Cn6<{Bz!=nMWYJV?V7}%N(@!la%*w@HB8K-%DsY*uQo1 zR!?bV8`R+Ju83@>QseAHq%*?hZ~P{66Yk2CS^_(hE_e2`xCr8=k~Du&pKZwz@Ls<| z5TKjGdP^^?@NP0Q!IbUI3LF(A4}P_f>_qR;f{8zZTE0BEC^>uK+fv(NJtVu|YKYvA zJkMb`aXeM;|0M`^(sW+7tRLa8pm3MKQ--hKMi!3C{}6%v?o|&17@DgGFLuKugAc%A zcZ)r|;}QWeSzUkY2l|f~9Sz4q;+;#O5GAVrCNm`-$nqSs22}MExKc0xc7y}l0Jig8 zvXD4dsw%{K2-Ur5y|*rDToJxusUNX6G&#w{!IJe2~pI;=8$~PMle%@>IH*T7(waRw{$@GOU z<>mknhvX^WW;gbk9`z#&G#D2*tXV zU)3(WRla%EvOIgOJX-9dz_ksVzScKll+r$|X4bx?0k+?w?xd|8RMswo{2*lPir1%5 z|GBo#(Xy?oe^hQU=_@bp{u0}&jg}cMY17p|D(3iFt|=oUz2#DAv$dg#6+sR9>(~FQ z+CF$bhm4N3G0lPkcEzi`$Zt6N#2v(zr&c8_NyPi> zJ6|m77sm5A0T2L#)L7`%$3OG5lb!PAChU0Ze$pPD;Pg*vUj2Nz1NN!B@)kS%h1$@$ z4J&8Da-xfI_N&J9JM#&^SRv(Eg>LPYH-P!ZcL|=>!%{$j{mf}lIe_}$J*Y-KWq3M@ zi=G~(h(2;@T8(x$Om%Bi$bZ^m{(=Bv{NGpAB@<2)P^{Q@4Xup3xs&@=`TwepW^mIwpSo7o?H&vdGCil$sG6`0ksJPC z!`33M9@p0dvD*o)n~RbWo8zk~y}u7KwW5-F&XazAJ{gLqxs8?}AKc+MW~5o?_!I^o zq-Jzm<376)>3w}!x9O|VQKB1YHDU9$8?jcydWBB^*KsDB+1D@w@PT6Z4;{)#N!1+4 z9?1l2M)A%?@{HI+Rn-cRz5n&MwP24cY{u;N9%e5Ur@3&N5pJncg2U9}Fnai!R4GHU zU|zrui*$(p;Ge;zb@r;z{I84MFS73smXKB|AOoTCqIL>T^*{dtigp*5_TWu007>4M zwfWspL_{$8@9fy^ww5?&~cSfj~6- z{#AvtHi2&WhkCtC7W?yh1<>}u%t8Tgc@Ym>`2fB9r4QPY2+Xam6vm?@ zrqMw%j_2A1ynS|!f{)NPS~mJ!wyT7Sw(noZe2 zV}q+SXzh9b5d$63Ea-W(vmHt@J3`0VadM~ekFC$ID?a%&w{jyK2vwf28!WOHUz!ES znEz{!mr41n-uVr1i2Hl$=ie@|?L%O4)fEj*#q_mO)B?q^w-uofq4fgIlWTWXAtCnC z*1u!@|7Xt8_C#Iy3`FTJYdvS*Sn*}lA3K?}svq(+CagK4F<@7!Pmg0wBOlr66*QH> zuzTSjw8DgW%YRhP1%N%iHeg}zP*wZ%3s#Ib?$O9dl-{Y%{tnRQFml-1UPko={L1B3 zoP82@veq`C0;no3oclJ@Lb#kp_bzm2?DEkx-c6C6S#`kuC!eD@OJjPb)8^>0<^4#| z4Fp+rSgyQ~f<@^~SE6QtUOI+&EjWH{8x(64H03b1m_tVYt;EzM{DY| zJD7n3)qh~YeXUk_)IEu+jLyr~U$W=loMkNWE)Y=nPl0|fm2c%C{7;F|JQAl1p!v^s z{xdANPp&Mo_T#Uc7{BD3rFzfOasr|@*vuly%;m#VW`)!2+MWJm&>uv$*@;Z8CP{6= z_AUfJd+5~sbSYPZlsF!xdG3bH&=TD-KE=P`>-3wr1`$D_p1+7Q5H|;lC=ZB9-gu|5 z2~vD_qBPg?+cyvQxp%hPxADb5Q!L+sO5*5zw%p`hXwnr4u}HpgZVb8&EneuYe(^K@ zvC$2rJqxeKdz=k}jWv|bhkOUm2gn@l_ zuh;te7R?puHW*U2?twjtu~()azU&i0uTKnB7&NM<<1$R33c)w1)`Qg0NuJzIfM=D-edoK@{^38 z98~-k;gLmGnM9fJn$0QT2uiH&55P8~=0<-IC~m>XM*H1`&F6>M>MC%FT=R94X+`&v z29MFLlSBC5{5MM!tD8;(2 zd=X#a*jsmNrU9J2XnQKY7nb%=^|dN(q|GVPzWAOVAfW$fGbg|peUBG1(XWdDMoz?8 zmAw?Ap?-$<=@-{J%=I}Wy(5Y@kp+1BcKg3^*C1(endQb$43PKdiH3c=rg*S2&+clu zjh$#JYE2hIO~$WI%Z;#SW=59{pcNF#05_RH`(9|lIJ|oNRr%({o6F&%v?UNjao6i5 zWyQSXnCm_npC%>q0=?7#pEcwUMQI;0F$XL%elrL_`s^*u)z&)ri4gE}J-a{SBHrDy zmWP=a&9bw@pC_kiFOV+`qPx3wpOCCVpkJGrL!utUlGWa!9lt0vc^UU0Ft_@f@n1;d=Lo+OMN#t3JLE_Pk6dLzKe#yH$?V znvI<)bsV>Qr0*wH|BY^_mw_`$a6_nNdW74p-by~X8!hO1$S*OwRUD1EoXJCL36&16 zrsE9GOG3Tto+z@cg$inZ1#97I&P)UMn0xGPPaHerDjKt7h(t;rs5dhv0ZU%jx&T81 zUFqj>Qj4v63lrZn%8<9(@4=o99u`|G>T$i3s+S!`Sm1{Q>?^gI5Ggo28YV3Q zZPjj|*Hw{-A+>h)fVU$>JQy(;S9eWO&pIZ93F+BYjfZBnMdFYVGNs zS#9RVG?SW;X*~*rR=&3(VzV%S7sYF7GH%ah>v$z*T5@eKD>O}hCGGmWl%c4c9BpmM z^BL{pUy>nRg1~kVF8YL}?lIM=3nY9Y=_NG;Mszg~f;=FvVL!@C`}NFKaa~#7W%Y&` zw;!;tO#b(;+CK%IdMK2+!kG<_{SW(dryrm8U-Oa}%a0@$1d8*^fV!GOS*et2x)j3; zc8r?8wx^XyLu^XnE=fd-$*cDPfT6pgbyjS#`BuZ@l3N z&-BM?#xNs47`A8C{DHm6eBziLx9`_2O@fuQwqYvcXtF@*t$!G5BgAifc&d`xzc3(pz#0KNJ3>Xj!yt1Q-#7#H0p6A?zUrG!E2UN^PxQ{n=D2!^QN5 znAMm!?HTfObkhJYoGNAQ)4KKC(xdf3PFmekgzNpo?!V!RqE-ACJ{r23%Sib3DGR|Z zH{tz84(9*}b!;jXGrYl`8kZ=hIqk@5tHm7Zu5L&rnBti6Ncw~@EvWKqx-hC(i20a< zE&2p+*NJIG4x#*LB{-zRX!;9vn~fHQrJgZ#Rrr@V7Lx=o98N?`AY$z(WP0|qt~P`= zq}{FSh3zV0+WmMcC)bS{yF)i^2Mbl@A8+EVvvx38)*8kDqcA+*(f!J#^pQwQWX$;o z7U3CM$t2}fzKhRCM1GTxwZ7}hE6dgXn8kGm7slrV{$bp zHvS{566YmsK}i*1^DA&0$pah75z?)>^*&PPFP7Fyczti88~jt=KzSY^~?DQp>{KrUaM&6_jp_%d}z zFC@k((M<>}b3P_W^>{OXq8FJ%GUM#rwg*GS_M~^hgx5FfNNQ~iiEkm~k4-<3 zPab*a-z|NEb))=s3CGVG9(_MI=q$-$Z2n|VBnJtr@RY1-zDM}jS%n*ma8oh;74Roj z$Jx8}N#jPDzmxdn;A)FjVpbo;Edu4TrH~kV8G-<6nTG^S95b@X(bX90lX@xUnEeT}pPf1>BIFOHULYx@NZPF&6OU_6ME1>YrhMuj6an{L&&hvriqP4cKt#UT zl<Cp_*~Jg7-DYL#5ir|Lba+!*6zl+Qy68V%0_o)5~_ z{B#%mp0k;p@eEHsRW6+?+M=<*Y&E}p7>CJdJizi^ip_l(%A(C)7{C6S@O5d|27D@5 z>&5+!YQ6TaPxC%3URDS~vLQ2c#A!_vsVV_$l=QGKWa;+eNY9&|E$n@BTB%Iz7P$XS zMw=D6?$@;jOLu&CShMu+i1{#x+Q0@Mm3dXJuYq$BKy%7YVm*IH%_e5%Vjy#6u!LrD8 zTAG_2Pv;+N>xMuiBj-JjFwoC}w#E)WKWuXPvQ}Q!OKjC;U*cAIuM^9(|80DT*TGV^ zp_TSqi|Mbme_xQCe?9xP7wO4rKoD3{v+TojhwTioa7^>=$?Sk` z3D49zZzXkpx)e)ZtXv~nux9pUz3)ntr}kJ<;;RU`XiZ{S($U=) zlZ9La!N3;H*aE47=${@O$K!^VoUt(lG_af=@u#DFuN4Bq7a5t}IKJJqY^T}Jrrh{Z z4i9oG$?u&Puwj*OCC)c4{*ZRI+D%Km?W}6>IEq@6bkC0E5TO8!pN|gUP%H&yQp3^8Vtv`_{!b&OmqI95^o1^@ zW6HALI6Wb)TE3i2bT%+ndN|~^^<3OHUJQd;SYYfxSuFQ+KAv}E-3V;c7s6Xf$k`%c zBT={fhZcvM=%WcQ=UI(wafI|{Y2Z0!r&dlFs}lRQ_`YG@=38=PB@o_2OfW3+(E+e6>pS0E;3LLH+!kE#4B>u7MDb9`I5 z7WagUzX3z8ijC?w<5;(nq<~@GEl!MvqoU}Cb$!cyz>#geJ>p;(=cINY&aMubXQOQW z*1W8vPpdU7>tt-|?>B50a)@nug5Jt(|FO5Fr|nXlLf;*@jR!3pCx3ovLFLN()B9c9 z{Zt{C`Hy6tklm(GiUBb}%C$OIQI=CgJ^?9^0UeUplUdS<<_XSH8dl;|oRZ!!xa$$- zL&0bpe6=>m!?zUg^W%NujXxt9jCveg%ofocv+pBDn>ItWAlr2+kNRC%3h3Ni^b{pg z1EoD<+d(Q^jB-u0Bd!+;=domTQxs#zd$ZEhyh`1}b*ZAMt}@xz2DVRUy1&#B3W>eG z@y+4ss5>vK@K5_IYbMRQtDEn8I-UeRJ^$jbcx{BrV5K~+PuD+-0yt>$X74+G@cbxv zhK^VLQu$?O61pVh@V5PVvlR97^ptJG2~*&qt=;L5yC*7(!{s>_b45{nKe;C*s;=EC z6fjjpcd3^I1o6+dnch<9^^M@E{Ni;}nJ=jTf`nF+D5Y)%xUagmmHrV@3VDpvZ` zV~P$2)DpkpHy~5sx0Fq^yKx@Z?|V!4hHqI$mE=p@_bhRj`;}S? z>I9i@6)h9FkA8Y}f?*Z+=|_*m_~EcLTXBuG$SFc;pNhbww53=QvVw){Lsq|xUHHg8 ze|_M+>IRPy_ztsr2aiD9;c`!tR=sdAlR^5&q{JlYB5H(9rnu%w;x6{;qAZKO3P=WY z*t=w4zgFl<{0c%3Nj&KyZu6^)d-yd!`uwMut8 zf*F#sz;ZliH0~|k!yQchc>Cjrd+RDgjE_ogjy9Zpq)U#vVJW5?Q)s1*?udvTC%f0A zE&RUb-h9(9y%UMEX5oousRD|D^PsoB=}`vmHGg^5*Z6vkuyP*y-7ZsNBkCdVbPp^r zKj>sSTya_*YlLPGC!HcZ-}f%K{mA@#GW|VFN`WxN-B#pDAzJJ#*3GH?XAHHVq#A@R zB!abPl|${?8gEV<;_fm0FZIB5{x=}uO@f*hQwu_)ZgWaIRFQpZihb;`rS=|J2k41f z)e-y_Di_LGTS29I-W#gyUlmv(X&f@I3R^_zHj7ROpIe{P1p_Q>Za~KKl{;&&R3~u9 zsuM}Gug;!|TM1kQeW6*8GvIvxN9F0T~NXvE7cRwsJO z3zBEsb8ux)k%TF6r<6g)h!Zsh39GK2{#?@A>^wW9mx1sCl=e%{6J&{LnBV*XXT zK^WjvyjA(;H#r@o2ebS&0k2xfcGTQ{jlGj?0Nx3q3PeUIE>XIOXhfDYY`M$*24$QO z_z!|t%ITF1e{T3Erf~)-Zc#ZkHZ*4hf5CtqU7)KicvwbeIW;JR{!^NDz z)3?kIK&b*&AYuu|<6J zX}I(<8|g==^oFlO8n7@iSu+Rluq~brq`dm1DZEHIsF7wQ9DkCw3xT_+IYej^5typ303M z`1&9p;j77WUK#=hUpz;D*>sgY<9U8E>PV+z>8E+%(UFXu{IiIoWPm^CgR;@%L$Xw* zxKH!$q}z|_!UTv)xqC-1Gvuzv#da!P+nQ84TG!)HJaAub$ssg}c2{aVvIL}q+_m6Q9EGQloKfxaEE^HZ4I@@f8z64k#z zSWP%&^6;*ULHRXS#v%eB4Y^dC61x8``PsDwtd z+4Rx8>Uq9iHq&vgQRy6VJENOdW|hDA);uD?r9+8o+P!{@BUqy$Q~N|8LDkn^^Pat~ zM3bVxL~6+E@0|QYafP^l9XrfxM6!Hgbo@PsOt=O3)Qqg>3(RUx4kgDgW#NyEI(!wJ zQWbJ9F8JbwSySJQl`5)31D}@B=;&*B@beO*mZ{IF&-illG+}Mra&tiGdf4}j5;KyCvcFmQc$%j z{BX8oOe3c?Vj5>)eTQDeM0g-vB(*qd5A)LSX=8hlM@loL_N>F49kWf&9%5BP^hMHn zcivI-uN!(7(U_%bKlN3h-f+YpK*tYx8wDO6dnRto-{ptM_9CH>Frh#!fWbbec1dLG zjxG_H6jFK+sHW4}Jtoaoo9%`qZ=Znu)3JYhDYb|?bz*gdP?NlYD!F|(yXUCfdGc@X zUkHvUFJS&;a?ANO2h4_%f95oC`8m4-+fnpUE9nr6OwZX>4NJ?^;ng3=K9;+n-1(Hr1OEo>lQz5{5VDhE>(ZI{ zz`1BFNK(eaf7rh@^`pc{_DxdJdtiXexoq?~5_-fDACoW4Lyo>Mnx| zxexFIyX#x9xJ zo1RJ(uDUk4Yr2P=)Up6=VWzry8bjs3-_VStgie_9tA`Y9+q&!UeUE{#ZyhM_xnK2``TE(1Yv=2+ z3axXXE*xSrwdZ2G`DJ)cB_mTonP{zSXPcA!jMu}sUz4^0V3wE;qdS5?q-QbA%Z)4!}_S#Bq z86t@vlEI9fyNEiu!_jNRGF6>2YF0$vYyf9}M|4#uJg1JZcB#%sF6Vw*w5VPIFz?qk zhbe-8NH^n6Yky>w;VE?;xBEaKc16QcUnIpxmiN2(AnxfCub7l8;LuNrj zu9|kSg*L1=unD!z%wa}?YBh0D>?k3pe#2gUeXzS{C2>NhHm9SF>*xp9PQ6jn@2#d8 z9upE?`2v+Td(FK^<=aFcT(CfXHIU)fw8uv zeFHM+pLtz2OSLJj6<&CsPZIqy^lR*O{*-BjGtLfq8ceUBMk8Ze@^4Ntl^FaN3Bwn=> z(cNI{$hTXXc~%Bf9U0BRmFoHbN6T0KfklrlR-Y{=nnHAnqJ9GQENY@ zil;n~^vn8_UMlo8%f5L4Sm;BH?^8t+VPa>wzKRf3RrH5&$;eYOj!B=%LCD6&utowQ zz4xy0OotoQpB|VJt$x>X@{{yqQ8Vam zv3=+%Af!g0(DV3}OYvb=ZI&bKv2l6EuU4G5^2c_*ymIfGN~CRj0mwxkY8m)d^l8wj zpy}u$ZKoF$6#7WI6D*g9x}82oNk4%8dn4i}xwKlu;fpx^meM!tJ4Q#(`|o{z!Ngf; zw2CkzmS^bLK_IA7gm*CV;_Sh&Wf{*K4#KB3lqN|sU4Bd2M@XCzgHJ5yI$kxKX!2)` z5&5_@)?zAO$gRS^L-y{Zt6ty}M41rdMB;Yjzs@BJoy2mo7N5s@)OFlD3ZaMz#xq?V z?cd$oDylg7Uo>TO5OX_r*fAkmwpu8cSgEaD7zTyHmPLrnWqOFN$}WRc|LKSr=bUdq zx|L4Qz>BH1458FpunVx%7*A%hLQU}-CLB;nOGQ9hEkwll>%BE}V*zph(onA{$hqu; zEDD6cMYr`AIz8qKB&YEv=YIA;tG$Q=KSuU+o$uQ_9;>+e&rL!xy0TIMm8iJmzx924 zx7l-~!0mQIW#7X$;ePMkuG1b0o=$Z$t6!4mHvcOIbVh_q@{5g9Z`g5}`lRjqfNu&( zUafGPu_vL)pAVjJS!BuD*|ZKuLuB&2d=SF={X~qwRY!@wt(rJ&#>O7|7rQ+3agvY@ zmtXT~$-cc~&kJcHqtw*DMa*u&KlcX&8;L|-_C%Oz1V8wB?x()K7=57dQHUua4zx43 zV2#6CgDQI#&N-E1L40r*HjN~zH|bZz7gSu2lL*!LI@xr&DModZcu*XPT-92sd(S1- z&L(WqNerIDxyyyu=;HhJ%y**I;8vF>>dwdE7pyK%!o{tSIL0(=xFraJyd0u#4faQ(EA z_4d?;`+jx}ESsQ=PUom@z#Wnf@kD+l%iJNh^6RJ(vd?!HFB8gyN)`XbCAj$-J%zIe zUsak7F=PIIq?PPXD5qT8iTf_Zo_F|}YTd0@J`vHh{iC)7nBCDh{X}eU8hR7(PC3W8 z1!G%k*#U0Uxa7Hd&leI+s`euxM`$nND0&4*!o3)69Qnb0wD37^x}sDRv!eRVxY~eT zB5Q{|^~Ss??JCA&^2eK_UfWBEp&F_Wu`gL`(U*t#{VMIxzQGPS^q5J^R<|&DHZNyYrZ2+LHjt{PT6~}Dq%nT$ zqWM!m5(6Og2mjgrZH`95A-0YcFMGalv{U`7cn@bMZ~_!g47ifn87aa zrgwCNqGLITNZD^lU*&P^Q*N1wG%VSfs>pJTtriCZ)-I=j1rhON^s|4|n=%z4-ew2I zxj7>e2P^fNy8A-TkwC zUePiYx^+=92(qYdr827?bIEb%CEHQc^xRm@if7vtvShIKG>v09ZG6G&X8Wad0+Wo6 zTFt+?6gaht*xSLG$S)_8L>gp2%1~mH``eGTg`0$mx%*b%0(Dyc$(lN1s~4k>5};g?%oOOQLl1ciDV3&%2Qg%2j_%|II8)^4z|My0JyH}drqm9RPG!y1T&?&qin9h^ig*|U8y9z(fajm&r63A+Zj zG5$LM{0`+kl);mt)wz9wBo~z79{l>^_EGC?06o6vMn}11uC|JhDCDhr5gc=1%!Mqj z2pm8PiN2#UV#leN<5rdjf-Z!qX^A>cV9n!nI(WX39fDk5 zkpF-N*?lPc>ZklW=milq+R@cf!cO~9Sa-wHnh6gn5A6k0Y-lSXHN*tsIrY$9lZicq z;)nLE4s-3;y4)*YJSWQd+`v3;X z*GBv|DF61c$FkIBT7s6{B`CL8HeB=OkX_TzXg|6ijE*Wo$9y6kemmHv=jwkLFd=jy zTMM9+e#AXFk~pZ^7c-66mUWfb6-{|`{k2_M9@%Y6M|Ku}{hRC-ZdW1aoXi2Ib_jg< z>*~(c)#akLu!K3Z>_Scru$?Io6Iv$qT(k-W3SM)to1@u`R1oDBu>cvHGoaNPKRhc( z^&4j{^syU4u!y?VJUL5O*P)J*g$7;|%<`lJi~X4O;rJ*|=EvDPHk|6Xzg6`J>C@u| zY&X4dm?I*?yCAc#XfhSH|I0Byt4?}&?_>tf^Vj|Nr;65#>(ztkoh2LAEkB#Loky2< zstSzXpKvhV6+4?_Q*x-gRud1=l=l#&{@7{%?6ErpZNz$aDm`}MqSoKoAecm%bA*i8 z)iGp`kOwkM3?^p(#gaoJ=?rsqLX^XsiY(kbQ}2zyK@F1-^kf9^S$|SLPM~9etV>H_ z)f@)od|~enr3ivw$c!9CSE4NNoxSi&a98Z}ovF>n85h~FekV#sq2z9%{b11FFP%6t ztoM)~8S|HyNLdd+Ps4NnN`S>3B(Mpe-gbGQHEV zwv10fs}W=&;N$8vqRBn>K9Dli1bXrafH+{Y2AT0A7EFP(Oc#M=-yPQ)2GhGzBP9ya zqplas9f>f^Nh)VRcaZ%*c~?N@NI?cp`rleY9bTsYOE{KN^ZC3ntV|up*Z68I5(qhOwhr9bK0jmU`dR=^(Qs; z!rsugI-Um)^74Y;Hu%l_l2OmkTz08SlqAM&Urv5($lJC}y5vs&-8?W zBUmSLZeg#1%twda#<#?=H+8c}OPK!%Y0z{Zn+Z_7(j&nWe|;GlWysQ&GrwdJky zYrE3?RKap^vc#;=a*2fy{}6P*Fbd)?g1Xm?J|&C@AN(cA^EYJ8f1*3UL(rGXK5jQ3Cwk9&N_(WSa;I;Tq|VwLj8v4` zsA$-dPUe~q9oCwNXDdx2v|cK90q%blk_CsxG(laDmFp?MdZ{dmQrHm`0%VDUDEpj_ z4kCzw0$)?^XK(@?#3vQ4Mr}LtMo$wnPfGaAHG^j2#T59md^KUN``->UhdUo(2Q*|w z4RSU&rKKSU;!zafO+ig$o)L4v{gaU6k%P*Gqr$lDnG#zxC0r2aUx(`1eW6AW018tQ zf(B5sMXT7?6Jdqy%C0~G$xqW&gq2bfJs@6J(vIS)MH*`j=VLz$@IZaP`py* zWw*Yh2#Gh~yT$WO;ez?bhmGGk?*?l7ik}YqE#GCYZR@FJmLSw zkiEzdS@PlZ?n{)=Q`mN@#5;UOaj~6b$SZsxfiDLAvENz<2flAQcp7ci0y@0Ev({Gz zj8?T*P#KtDPDrwaR4%` zIuE|Ld=vVl-WWX?!MB_`A@B4Ud_d(KWe4rr_!%;tOMFx{G&(Uo{%33e*@yoOUQ5wy zq{%GAK3`Q?3@A_CB$(8^-ury#ly#QV^;EQ;fA@%R z=OS%>y(tgW@L(6)u_ETQgeC0Y3 z_T+xt7F>ppI=n80L@@E|t1PcVE+xt5N_|R#^&;lt?BZ^<`X6{6bSg1GrJBdSh=jn5 z^g*p*0GM>hNfSZDAu)G1&||ma!bEb-t~uPE#bnM=r@nCLxMjKe2pheKbQ1Zp)-94o z#PY;pV18m!IEU^SSGA3LEwu-@YzB%e4cYDij@B^J22%d~TMrNURi6!E%1B{P@kEEk zA6I38c>XGoq5R{1f~|Htwv+A0=RhV6s!iGLjYeFrm8qN7NC`4f^{x3BlZ-H+1)Hpg zKW(vq?nl%CLl8;C-sR;omTLgrHcUT3?BVqCxtgI#hJVIUh`B>eN5>EOf|52*G#y<@ zd9sw>1Pnt`N_V2Qj?r5JWZ`XZ*AwKJZ~s#nG(zdz?qOe^Y7%z zOvhpdwTs~uHxZXR&958+mC6`0kIm7|^?B6t&`~602;_`rJ2ZGNGhSS8;lU!wMO?S6 zIx%|+K+IrQ%gy3hWSw=6-0$B7Nx^tj7(s{}0W2)(AgZtUs*1hcW=a3d)F)ulHZ8f# zWwVnu%U%2tk6eu57EWx-sQJjeRqI;F1mWbyWoyd0>CUxsN8P7)$9m0%oY<&+Wa%Vd zGfSzp)u-ECJ(dzL|EHoEe45#q{S6JVIN3_e9L;w9#l~tJ%@g=%RlPjEeY0k{ z*Va8WpEC$=OAcob@g={4lgR|RdX3I4S`R&T9Jd`ix|-uybrBXuYN6+#j`TM`_wmPL zLZ!le(8Zc^0WD%#+H#-1irsCaM_dp_Af?oe=e6AcB5Iq!{F?f?nW6NPCpQ;poaaS@ zR$&Ig7ruW}7SH8`381I|2V@Y+fbjE_~`VX(>DxA z$!1BCvRYZolUWd|pOTxB$m<^!76w{2heR;j-1S~yIrjiXj;X|5HQZy!QtGhY!gI&% zh#P_Q{=R{#&uwD1Fm?~rz73Dm^2r~D#Ee|AXmZkd*`+EYmxS7J9Gu&1bS@)S+hX4Nby9hdRsHO@1@-av}B{iV(TS{d=`hD~9f} zlH($7etG5KHj3GMe>Gzx4Z}Nhh2B*&L!P(bkOWIxPT^v!7o-Q537&o}B1I-z$Nga0 zs(A1|A)E@D3~+V!2Z)Rx85fmpJ4Gw@4J#oB={&x)^Plg;9Ko43nonawn?)yI{_ zF*J&jfwPMeT+P?${;Z3I$X9CUh2@F+9d#uYp+aXh`E%@Ji)K3h58>7m+fGj;SdK3- z_vk+GXP45Zg(m#N8|Y4~WqMmZpl9M8WyHjDC$*vUp0S3B|0c@0Ny@}YeM4ZA(*CW@ zMctU#UuIc2`%2e;dryxulh3_~dD!^%B$8>!KH=uwqHe2Lv1?FB7qT>W?cXyGT`O8T zv0J}4&E4P`))Bs9c8S7A0H%-RUc&_YSAhneXIvaZRf-oE9pF=Zx{J#jrqbC|K`4uh zI{goaYoq$~1bq(;0aB0vz4_l!1SJ<%idI#+Z@0u~Ur++Si8^{RCBgV9PqvHE;>cqe z=N4Pwxc>8XaIc(Ey2Xu^LelH(&R-GdA9RO2?Y+vZaLDmmi_-67EST=}Idxb$uM#WQ zGLhF8-SN$9XWBXg_*k0USr(2DHIH=6MXLLruk~UL%)ur6zt8hP#LDugcP>vqlBPdM z=5McXf1@QvF|Kwynjs)`;fv?M$icfExK#%$9Zq(*ZQ08z2*{s)MoBvq>~e|eWnt}p&lC1mQ2HjXjKRArZAU#RTQp4L9WyE>~*8>9CW(XDyC<*Vw zx~GQ!?#nytK?Hw3VWk9_O+dy@kMnOsi*b0RLBzt0!>t}YbL~NZE#QpfG^wZD;%gi} z>Ni)uWf2;y+EegK)Se6KU($@Q*B3k7tMqsPZm<>ot5rV_lC3Kd+F3e|uH48a-Nk0L zyIL7>(h*T+V)VIY>b!?}Y%2_Q$E%egc|pompIN^hXu|QIFF)Lyb0Sy$CwktkcYzG6 zT^IqMmgDKVWZf`7d=l=Hdr$0%SGr-sht+pUWq`$a;4*U3&;pO~&OB5wQx z3St(!eBIi&!X;5B?mZ7|EW6og!edOw4rfv}6czxVsuq(S-sF?6$jp2)@O;}`iMkGn zoEsDZnoOZajOy%+3IPsOJ=u055>|>My)SR?^ccAC*bwluOz|%&Ko)izC8RUIVWg=G zP9%4e%H1a}8^4(mP>^aq8rIiFhAOmUK$3u62lxF<#vfF#{UD{L!DZZd4EfzOSJ?mN z=(*O`>>)^`1rakD2F(K@O25eU+M%XoI}bu4ZtEC}uwbuLI2oJzm9t`#C$S(b-oRUb z|28;%(6{I#i+p!(Cm#FN^rYXf_+Dx$kN+m=`>vzp@VG2Bb1VCmy~XH#t11>4E`55X zcCcIey;S#JfywYX5uO_A@7Lzwj-$B^i5&*#hkTL^Nq?Mg&Z|1Le z-7dR_rfhH7sqR`WOGV8c)?}!<)GZ393rQoDfIP54MgDq;p-#VtzQSQ`ZJzyr(Ux4K zJb1`sX0NW6Ts~~+7pn~#c)rqNv;$8i7BuTKA7{JC_Bc2!VDIDhh1=}{+JNMAK71jK zsgCgeKWzHV+J3#DXqRbTx)?+gJ*%N-G800c*{mAz8vwNuhqp0m#mp|8XYWeN6WjN3 zMQM${m+mS zZaN z`V%!E(r|p)X&rL)1LRjf@X(^w?>36JS;M?FRz*{5^ysh$Hu{84>cj0e!@x||%enWS zT9or_DmQD?iH0Rgwbr{sVq+1NRR2EAaqv>12T%jM*qY3F+aeCkR-g5W4BVG|{Q}vy z_>Q3U2Bf@bdsenJDcx+oW z6{kJZ({H+3$HN?%U8cXx&_xvW*9yej1n#x>NWO-dI4~5^8Pw%y5dIEwl{KkPN*8Dc zWa%mScb#Ii31(>2Qpf?q$N1L561xQ?YlA|DuQ&$?a-^Jh+ea+WfxJ=J$D|mjDa}8C zTIc&NI0yg77RF0`Z*)%wAoxvK=~aBbYSV z^s*b*gLSR>>3Jf2<{aS zhixdGCMB57nzerd+*Fz-=-_Uj0?yC$`)Xo6WZr*>h#lQy+RdR8P^iKwZZLVpqe{vE z{>%Pr&LIlKWgB&FF!WP89AI$%V0KWpaP+g!O8Xv@|HA64Si9Y@g!|Vx@!ti1?hW%5LhJ;cJ}g~r@g{8hNk$-=N0iA6xebx@7(eFAO7@_L~p7iu$IqQylrIt5rfG_B=yb$-oA#eX?oSby8N#-ufEt z)+aS+Zv?zxe|N3#a!q55XaBl)SJb-=Md=>RHnE0T@h_?;yu84N-U77c1`<5BO;;@X zN~)S_K<)hxuke5UVJ7@0oht$Lq`OtC9(}MCBH{fiVS5A_6cQvgB}4tVVV3949X`e- zhA5&EcjlQKDuE7BOgkGj5)n^|q)+du8pwW-+D1(ey_8x-L=zs>p*Ae>-=B1QN(;{X zJgzu?w+0IBj9tT?A4r6g1`-;5PnfP`D-jkbrZtVZ*CR5xWVMdc6w*KzGaoq^?s$v zn`Hr`(H@&XDFpq?RI9X$hQ=aZ2&)wy3~dxNy9r>1Mpk(g=>*TF`61CaV7nMii|6ud z;Y`ZnWya+wAyREE#wxPp`w4C?qVzqB{sB~DRK#NKTjP+{oNII3=RiYckwgR608WAU zM=f>4ehRYpK?>%{X>`Ob#(Rxu$%K>D^jfBNrFd{PLSjt+69v#_ie;{^Sg=3gebUs5 zfLPhcnoRNkKc22Tp6dVmzwfm!8Q09-D^e)3viFLHP)6A!GE2t2q!8KJA|uJ(BcUiO zA$w%cY?5`|`+HqJ-``*Lc+~qf&v>5aIp=j#R}|74-c%h$y1bv+z)4kbD*O}2iSjlG zvP6j8&*;Wch~rj;c(0D^a$H!v*}roOTV~{E?YR@&{Szhb4rthg5)f46R~LQ#uymY= z6Tl+_2E2t}B3(1qeYIU!Uu#G5ckR)Z-((Hf}6yL;@Wbrr1`tjKX42b#9HqAJcg?kxB2Wkevh1pDsozU<)MVhEf@%*6QP zfVip?ZKQ#T0tXAAq{rnT@L}Bla$DyFJ}d1L|2A&w{M(L)&x|z4DYGW>SIJ%e9-}@y z$`9?GWh~YV6pLXzBq<>w#DP*mEIU$MJGdAJ%3FNQ4s-Z(k(_wHY8VJa!kV|20Xjzy zjRsouuXuava*$8)&-u_pAXpRcy~3Hq+&jpQqpH&L0>)@60fZm-sGd)V0($U^!UPsn z;d(XMH}G&h0p)8XjE1jbarhFJYdv59!dOq)P`la5Cw5jq(q?r5n@8iC^!{hH}HSSWEeni}5S zsS|e(@0UB2$$xiw{OpFY8wFV(Tr@RpS@!rkhJA~C#CfCZ_|N-)CoM_gsw9L*2&~0C zd#CHUp82S6OXS!NO?XsH!sef+eV|h+WZ=h`N*g{x%0_?)sa+FI&J6$e+*_;MTU*?} z^T?1G%Ux5*4XHQHI2}nhXE$+-f-Vf~&1V9j0?9N*Co9lqGU3;i^7xeN5(v8E6Q7}&P-Z}A=)Tl_VILf6^fFU?Q!2MlaS3NKnN-%zKIKLXt(7G0Zzn36?_m;TydymrOYqkuQ9 zcEsF^m8b|D631C@7nH0FGxSEq>8ni+OAdq!i-R=-URzJCz^B#m(LO5dz9RKWL z;~jR;b3%w^+Rao9%MO@>heYE1A9!px@&ycouZFO!UbIvtO|%ZTv{N_KTenbWK_iXCEhj0}}RlMWxcFfm0dozrmO zTMuq%msg!@%306JDQbOl9cs5HNW?|>=$+dx{C7C_^sU*i7}V3Ebop%HT_hPV|M8Z+ zxp}qf+p?aQ-gTWZGZ`#6$1uv%ZL8(2cH|vZv)0>)RH;cmWe$A6Ew*-x=Nh5*G2rz< zW$}l8@bW~@ZKP)M^XoY4+kuK<+X1=ydggbH7N(-G`lo^!gYRmw&OwJ6^}B{`9+{e- z%NF??d^y?DO(-U@={ZRE-Wb1{y8dL40yHyq z0&pbvL}y3k-#hE|O5UPcWB<-p>a{2JZ0kKDpCs~q^maejDsj;F4h0tCqUtnu#GA5m zaf~NRt*nbD9qn*ZYA2fV6TuT)N!+#aDH(?0Cl1FN2rgdtQ~S(oMw(Xb<}CS7qTgt< za(<+!UH75#@wWqj%6NF_M68;j{!2t;__*X{=W-dV)h za~%#HvdIrJ*trNu#c^izbk~@D%g07y_N(+j%Wyswbe920wIM!su%4H`s&xIx_c&J%X13wA&4s#w}g* z1&*!;pYHdxL~J;Xc0qz|B)uw<7FFz*ppZD}uw~)yH0GiT_yASvjb>o3qnspXikH$8 zX0qJcGa{g&3f)+woA10BL{N2eb45pitrgs2z@Pf@ojGV4QbWq%a zy#@_w>3hr9Ak!54q>5tHdBbTjZB8{RUBX-FX4JBx=c5y@=&QfSWQ)Q2tpi(68ikctYR`g`4I0XiShTK z`ZANZM){La4qEwPH(DhypuTrTvX)*#~o&|BTQTlkmz+9q zrv7&+)b3rS1;|+3_H1ses($g9_6{I&Z*9-t(7_r~M2lt!@Cr364kQ*2$l!|$ zKh7!eziK9o#?N`}bj~^kX#v_Kj19wrkBf=MiQf0!KRcVf3mK{r&G!f5Zszg37C7xh z?Py3l-hJtB3KrX5gbx#x+g|{1%DbAAGi_Zp&tZa!$7D}|5EOwCsmH`2g2Zui-X@aF zzKbJ?zlX|>K;@)hGFo>ijLf(y@G-`CN3;UuIo~V>rRvnpgTX~F3184#5|; zbpK;p_HdwhveV_w7d%=odwF`3jhXYPF~TFz>9-?PlSK~!^kBUn-zs7*uUYBle^-AZ zWlb{5`g5becsGH=)Aa`#40sl*;4ukMZB^1|CswhNF!>Ew{OS+DSs!b#qvyR{KEl;_BSro9EiCZenwLKjPq{^1W=48*RKWQsOmz-RuvM{ z;?v^#3Kh8KR6B|~K;uIUQ zW|%LlOV_6ZRjz|G3g2B&;08&EN>>#|I&CIL~rHz}o}FABJf>xZia` zjcI!b(A2@q5t|og%7Ojk%oOObl)>Kp{QYc`Ow9PxwT@6S!FgtJR`73ybm1!2Vt?@E zS#!Ugd#WHl#9GxQvk0oWH+_>)2smC@{7(fif~$R{O%I(>7FQmf(uXg%uvp~Kk+Uu6 zp8g+Z+i2ff0$mT9!Z-|HQ;OPYLau6F> zjr*!);gsPg_df?wWvEC0@KBh`;?xp+hmuZm*Mga`pF0&26c{YpowEev7Oj-OC%e=L zKNbEYVN$ROnl|72eSD;qe~aa8XFMc$c?%O2J+63I9l7fpS=v0Ww9U!N`wSR_v#!c6nCDaU7DMHIP@n&E7(&>94 zs?j<0i6Gwtyx+hchZWXc{~1us_Vm7$XDQnuySQpnY}D_MPZ#CE;KAglqM;fc|0ep| zKm-73w_%pj60&QzxaalV{BQg*?;^y~k2 zI0^suuti=%c_Th$IQsWcO#B4d75s&^)8pe*F6ytZOj1rVB9<1kB#}_;)f1lmXve(b zTwD?~9j36>4+KV;8=p-QAVg5H-Jc*32O4fc)nx0g2@DJu ze4hv}Uo>3ee~uI`gM5Z5(RAzDgA5ujm6_I}b`p9hGPmD`2&fs-ogS~In!%dJZpm8u z?e`tE3t%J1H#S)4Yc4J5>s`T#Vx5jeR?3OMbt39$@XE!j%=#^LT2ipYmZ@{2moDMYbiT*YysG$2}w z0enLTsPq3fCh%)p)|m(|lf`EmO;FEINT!nw0=r+a$np1(BKT=tQmh!ooK1k5z(Y*_ z-|*W}Q<_EN$fj|oe=B%Ji8;kTs?hwkm<83BP2<Z^F5;ib1Ry4P~wI|N4vZ`FmiJ=~GHayf3hp`qkaXU|VN zlOory`X+(5Q|$jP(11byGglB2>U1%S9H-Au8m}LYRsGR-bGgEppHut$tcr||@&=`j zz{A!7B$DK#<>MQj%Him25!iyh*>$m_V_W=M_Nh*F2PXFj_MxlnUIGXP^vCEap8Y%r z1y9_4KS!j+@V5PS7AMusTRX+|T&^Dr+-HpjE=F_X&*RJ(!5VOVOZVNKK#Nvf*i$3+ zHU_Ut_0MollJU{UI^VTcVoGOYtNP%y&TiEy#{ezr{C0BWdwqio=ve#pGm8`In0E=F zx}Z8pT7c(Pn4c)S9#B-cxcAM)o3~;sX@QSQ0Nlu-#$k5kx!@@EV>lHBSiJSb*-64H zdTLTbKtmt3eY@V#z1( z9q{{~qdc=SpgWAa8Dv5L?{N8zzFEMJ>#?A5oSxtp|1wu_GrMRKjc7(%Y-_7<@|BuR zCzhT3MiHkyGq&@1_cn2gTQ!5xF-+o#HZ`{JWD$p_dh7Pz{rkhR=+X;YMFgZCei7l? zkJ-HiFaJY@#OQf`G8=VZ(=O^CC`-AD-~~EoG5r%@VD3Qdx7=_6sllKLWzdM}P-32meVIi%W`*suD@30jvg1&%Qk+K2>0TW(N>K^wyW$ zEPsr8?t(LMdd{#z)jo2Z0LZFxZIggzkzzlH_ z=`=Ot)H)Au{u#&t*@{y2(`%B#H<2oThX}=wi)bkxRx^|2eW9dG%9!z%6yvJs&@$0i z5N%s4y^$RK4lRiedusmHCUHP+_uZlI(_1EQfDS~C2DcFdi4iY8H6CKkt4EHG-jgF2 zZ6}eKCB4kui=QsCP4%w{aP7b89vo^eEqpxsYHlC;E;-jXP3osyU-)T;9#P{Y2 za*v)>cCvIeaeeJ>7-`+6BCE&4>go>6yRG}SG-`*SUbJWL(Wo=)2PED&&pweW_)2r&R3NR$JJTLK zOQ^ac1cBf;1dvG)ydNTxYw`v;AInfj^r`OYb~}Bnvu$y5(9uiW1I|mC8y|Hdn5@>4 zasw68ei|<7BI+0q;B-HxI#ql)1BMfmTZ0=49<`hLYy2_SF-@ZZ8{_?Yc9`F9!ZI^+ zall*Ev9^`-x!P3nfqab3C279WbBaXGhM#!fuI7tQSI~ev)Fk|Gg+h=mE$z-M)q@T{i+@dFtAF9TeuL=;xPy8vp5d+kuPVy9I>MG$B)Uoe^54CK~#l0Oz z@>D^byr=t%b-Px?L_j1wpGj*U`?7wo`1bF5BUmpje!f%2gUc$^CJ0q~0^aZfLe@Xc zG1m<|5rHzZkOR0v5F7G6;sXjws6rSuK_-kh)v9D0#H3u-8X-ATCI*T(wy65nn{EUEUkJ=v z&gqgwMqpcJoJb{yo!zxqQe84fOLat@&(|iAd(%V)z5BmiG=6#C1YoFW#Ptt^h{^h!p>~5T(|53ClTD)|!`U-c zISVz?LcnUZ_nrwAbQBZk&5eYBuMjl9O-55b0p*J#*QcyiFpeFL1DL`_V1l8KR|QsqFN?yS}Dy6F~0WLOC0S}v(nq2 z%uEuKu3kTYKgF{i!0pkUx;?jEkF;`H@wg-dg66_>;905NOTJ9;Hmjn8=@Z+MiB6sZ zlb9Bl@O&tY^%H$MUg?4-_)cNr*Ub5muu*1vT>-$|q{PSjWFW=;M7fahjrH=|h7^ii_=V!T7x0!)7kW;Hh6_W8Fvf%9DrX%d@m=w_i=BW2H&0aPIv#sp zDB<0@j-LhTUU52E=tC{tu24W~?&zCN2?VQ>L?9|3a!U(~Nbg>YNQQkN)Esfs8YSH$ zl5!LNH64$ayK96`!a>lWgcKY}D6+wc;&jF@FhevnZa~?A_y3jfwr)PBp}?gbr0apP z&}!TK#fra$CufTcWvk$|;qyv(`b#_1YP3b35Bv*UiHhW-&)-cM2IqcIw@qm(02%?l z?Oit_04DU%_B8Y$41}UR430AJsaq>zj2tk+AlfsfC^bk;z~|S%LlU4sqS6n4_{xnG z8_c9!yg|)Mte0?t`Gv2L98bPX~{A$Dd%CpOsm?;JZn;Rhn zmGg_X%Q9)T*2dF{M-mpvlbUGi>v)Uv>8zOe0H+M#)TsTM)_4*5F&(fPs^tGob)EJ4 zS5c@Ec*u5R8eP)TN*ZWRzCx0pD74jT3lZ973ohHm?2maIaUfV>G5)n7L>Olh9L+Q< zqj4X!X14ot&gINI*lO|5N}K5FbuAr5HWd5C4t_88tbco8_6&a*b&RLNrG)&;Ly%M* zD+GFDzjI)^1>)2?WF0O@nRG}qt%M4IvY5#6Hw#o#5vy>c!85? z+~|4pLpg!|?I6!jThMZ+_pT=R5$j)DroVQ6KgbXQc9i<`tt-`Ni|Y{UGYIK^V20B;VAn)4ev}Q$F`i;_Cb6^iDfPHcIAdrNvM8SL-D?o%l^^7yke7GkBd6H*-V*uH>lGfJP%JlfrkzhbM=`w(PbABUVhGXDm z=reG`^Vl)op)1-wkN*vxkHo{($g_B?fEaMsyAVI=u!sVWRG96)bcA#%mQT+rLgIAq%FWvxHVubQjo6wH7iy|R@b=~D*WWxq(h=4><=&mF4sI9m_fzov zBNrmXt-@Q*n_=F~Tj@E9wYFq_C}$vFE4zQ71Ao-tsW#Yw8Y**o*xjohEgT;s1Absi zWwJx_B7J`!T3SE^yfL(Bd@Ebg2ncfffzqiNBNTrcIWk6O*+&4X)6zMY+X9EUBhIaP zf5PL%;r-Ul`oDyL2oO7!GVs}T0h@2##i9bBkKzYE|F>O#Y45ICuM0p7+NDlM1n2cO zu9Ehdt^nB%r!<#D2^U|D(A!c9u(j`}o)8?lYI5ij&^<%YbEc1Y{26eeVc>g;(_2IU z;+IxmAD}Ip8m}C49{kSEo$4W%C{c46oVJ-U56tGmm<0RD%RdjEL@-}q?^5@;@$a61 z4BnGy{ylZ`)bMPaGc86ofyd|v^S>1^3ONFjG7|T=xjv99-1rPuiZ9$c1JE>F0N$^~ zgUYm4leap+2QaP={~iDJcMQOfj(7KB7X}J1Ci8f^q}d;A-)`Vkm}mckRGh+m8kCD} zG13|<#GjDnnZ*sJt>ASE!ZpOj)PCbjL%K_w?GF7lbzd`@f8?bXkYCh=lRk{Q_}-Sd znnsU*=Vk;BxAvLDgU2U!VWpQjbBH^+UZ~*XCp+7opa0exkCJ~U7p?!?@VF(yt|~uCQV~;4IOw-=hWpsCk;DNiFJ)XU6lL_yfp@p=-E}>XEw7 z4WrIai`Cf-SldteYJrbdH8FK+>DxCr@AAg?9`DX%!FDBF1Q{x4Mc4!oM9SqZ0gFa^ z2G8O5))TO-V64fI{|!kT9FXhKkvIDiv((`$U8ZL{;2Uh zm1;ebwiOV>uMVWS-FJrdL7qXT6$%7_96m2Lm1mA(h#Yd)_K`C&OL7<@YBO z%vLqSVRjCcsn5m>S=%}4)XGx4C>ZpJo!?D$lcM2@%^cB=PGgvB5=>;df2TT!!c8sF zpMa2sK6!xGHJ}+VLnjIAss`bvCHbzDx*jICNyjG}y_<~Nk$n(hI3?#fPI2A`C`|%L zmRcN@utQ?aC7+K%T@~lV$sQYqlO8?`$M17n>LP?6E?5rg4OIBJP|4F|JaKy)byN5+ z-2!5_U^w*;oni>i!B3lk=2k2z-_?W5kAIS)AHf1hHRX^JD2C`~4ey9Z{660wi&fd( z>?Z|=V)Fkl1sXajiua!H`C5LFp~mwkNBW_;;)fQtQb(*T<|OW!5&_}T94*Z`)ka~c zmhkn#J_$ygo-O9K=sO|;1d5JsXRrFOZUT=%&4d5D6#4gkj@tPqG5)Kn{n*4x+Kj=V zW*bGcMXt>XMKLV&_-4h&hXK54eH2hTiBx#cQXKk#mpODfqr2)mU&bY!R*u-$osF!< zCf#g`?4Uysx!H`5aDb+B5XAV~FL-XCsv5H44U_e6wTT=;2*TrbAO%Hp#QV$ z@=9I`CMvS&Mxz-mxG0g75@(a_`=t3SKB%c}|xNUSiXz922QJu=+e@ zYI9fq{P5sEs&TAdU>SU5e@5_e8z~YYMay#Q8U%;S%D~_cKELBNa4_2Q{Ws;{<7F@Bse~qwtgM&)FdmlclP;&`M6!cgs_czK}P*D<+Z|hWYX0hY~3bR4- zpBf%Pq1!jJxyJ{24mCC^{4N$cK$h8qz0Hl|Ikwo>e%Xchh_|FDoqT-a0=Q|#FLqe! zeqADiE{$+*$%%oV>5U+7CM~sM$B6;95b1vTzXP0oAo@HiQq~sxq@WFGckH*>_w^9x zch`HE=Lv@&s!ZLTgB9xc^>#Op{N;h7Cx^Y(=8qphHt*^~g;cHoAPiF)^t7;@run)! z{2~J!T)6&!7v9=ptd7}anrSkcd=vG}YyB(7*MBIIblh$;seyq&bFmB@DTi=EH6t+Q z`cN>jypC>a6K!IsLLmwTjO^SwAle(0|7~54(0S)TF^{d|@OUV!Fy7lbzajS>>eEme zHSS6Op#oJJWK_VnXR34#77D5ILrIa5e?8&kAyPt0$_=hCRgIZFX}MJda^-XYOFf!2)rcr9spv z&BZy|KMd`Jw7^AlEd8pNAp`bjLjHdPqHRCre&s0Gci)S3zC$(d;ih7wJzj1;+ArZ} z4p&3_{oa^tDT4$cci8(&kKvrO&1KcOgA0-QW$L6hGa9{-vHU3q|z_22_zr5j$F&tv>CR!zwfjT#n2ZwV=-Kubl5tdj4!&+|KbECpEY!09Dg8lcG0p z)}F@1egS$X3Y&z@`!|^pjIp)_`9C2u3Ht!b`_LPPbiDYm{3kx{RJ9dYjjFWbzt6i- zpBsdILGV4id(-iDmFy(dblr3rd&<&|??yPoC2We1+dEna75P|E3T6PIX)S?n2z%l| zSkb8^`^zNnci@-Os0Tc&3iMv z)L60fU5;?_PBbr{wR}jgLbwb}*{vJ&G(bcUD+?i~QFl+^l^`&F_ZPgS{7W6cbG%I~ zlQUy_5r+H~r8wR4r^$S>Uw{9t*F}x0hIwW+`kyBeGO&Tc=)rZUo%m^bN@Cvjh4jOo zgE%&vEFJu%vI8l$?7)!BE5j?)Lpes&9An_S-VJsHVAk#e2>_K-Y3LBh_H>!ZY_@9kd8-^vJ@Z zsiP_Rc-bTVY%5Dbx&Cw!cn7#A>7!W=j%k_-zdsbBzWdinf*q(NTI}jOF_QCU<>^}L>gXscI<_w+0dlyWasrg`FC_Seamx|h4Ax8HQQHGDjp zfJ-x7;E+k0nJQ%0EHmjVmM2SmEUtD!O?q@RBTM3 zft>*Q21cBTDWUYTV3n;(WKr5YGv5WtPO1T6B~W%i@Smm(6DD|nKHn#e`ccv{6gBSd za8I6L`05&!FqU1Vt%(JRO&#>_V4;p8r|lNoKICN&{csN2cwaHyqYls>&Clfzt&v`W zjh*ipXdb7T;Enm}smK7?q3WfRop)_Yc|)+OTK(GiTcLuy2ARCfa8%LU6h#E##l)Hc zF2gGsD(zG+`pwcIOG!z7oY(T*!|TT;WE6JYmIX~Ud|(*=|BXlQAnSo$1|7HU%JEq( zpN%I5_Plf!L{8+_Hs*zqSe7^b()sjPsW@p6PWuXM5#dxEY(uH~>KfL(;+%)iw1zrA zxnK18{eH{fIW35zB>xAgUMc!5MsRiyofEQm8waoW_Q-(42*ufko8eqCk)@`SeehRi zkf!EEqyqbhqEw|`LHVTm zBgu}2i{a#AqSpeO%lt#f#RIPMuy3(t?P%)#Y;j(uu!EMPCGbYmK8y!vNC>R2<_Jgp z&5Eo;GQHpnzwi%#-TfcHIEVgGSo24H`d+!o=-p2^mp$YC{_I@~$*g#9TmgXqWW+Oj zfaTl0PxD277J3YjeOmPh3y|}+=E=wD(k+Sq!kzj*KO&XMV)ke#r&qAcd(Yq#c6H(UXd&zJ9~pPq z=AThkks@TmxsRAAbG`PaKGdbRQ6N~O$U7~rT)xV<<^S&EB{=XLpa18BzpSfof(DiS zH9MY*cRe?n3@(egVHpDbn?^op7MUcz*@=vVV|Z`KFhKXebF1vs1V*p33%Y2lorWmk zmS=!Hirw>s>#x`*@Z^K^UO+@o*k!uta8FdSf5-m*6LauGLx?Uhe4TYlEzGo@2tA7{ z7S*`_uh2@QL6>El>OqDWHwO`VciOiUcSA#C-pk#*=T4(x?6Ww$Lt7y}v$~nWFWE+w zP}84W7`f(m6fY_}Cot1XmzK+{MxmPqcZv^X@@7!;0qAjf8%Nzae8f>OpOzCxDve{I zY9iPcL+W?*x5itu5SbLLX;$6opQQjkbMy50jt~u_6h|0S!mX}--*Qr}L;|xD+ky+D z&kW`1hZn5e^o+D+)iD{5OBzU;4@V0(oa#~HjCTdles|%eZftPbp_o>!nCDm@1NVtIWH|E<=;e@u8$@$|h|dN_ z+1m`7W8c;CYZ&RjdRY)trKZ&9vy)c0Ern#VgjuZ?H|bIW9Lhd`p4h4XLKk)l z<9!mPFgVo8*UB3^&+_Gc@v(5~y?Y;TIvGkmdod?df0&@#rk*=cxQtNbL>~Mkpr=x| znYhNQ@+LyMgj$4VAo=uF!T%p_`Cs01x8#V(H?O`lR46&~!1y^he2KxAfHP~ORP zY;6eOSoz!ik$V3Q1%;~J*!n@XCR(8)#VfzcvD}JK_}B8e*X7h%cTD?G5UVWVvB+_? z&DT&=8dX!V+6k~g9PMOD;jeY7jpB@Sj9SI@rRGEH#sZt1S# z%`9W2L`jW-U}owy=drOE7nvFNNBh~2o_tJQR52r5{8wCh5!ZRSL*2)sf<%gP%W8fg z>_JCGYb6~E{jRK-U|{pUnqgYO;Ycv}(FV*r-)EIzk9ubs!a4n;`a9gv1#rKVrJp*E zMyo75fPuZ+_k|j5{fq$$AZM$xmz=Lnh%5RN7;t%(g9ayki%u11DVUoL%_wS~`yf(( z8IWsdDhzqz;sTR$g2YG<4+>JF11x#ds4d*hW&1YC7-c_9?W;UPrVWIb1G`>IeblnZ zn9&1o-qb-gm#E#suvrri+@pxJ1k}YT+VzLk$8ez(Z*`r>+d|Q)ME^WJKlVw#K4_uZ zVRlL{ThGo$ozK2%=y8!m`GVJm=%=|w#nP#_UflhChQGf)W^a0H(YJy6%IcdIk`Olx zd}0*asXdI=prl!+ax|&Zi&7{4@dSPzd+mg{Re_A{!z0y`m`&%ony{X_m{i!ekItVz z_(1LVmeohj56GcaMW5Ac19!tNi=k|#NXvG zKs13#-uiRuQr`%uWgXZ!{O8FZ4mTVnhBbJ-~84ywExBnio>3`Cqlt<>IeF28lF){5p^^2#Sf)=@6wPBJ@)kD zYF3~dvi@8y;5%sL>z~H6CdNYPD^)I$6&UI=inhV|xT~)(lqnvh5TUEF!+iz%p#>1&;ml+p7s~s2f?Jh>pu=On^GsBr zRtD9(nsCQk{PX-H#jKq;nM2O;L6x>@ml9LiQvIv;6jLY;(>M9cr9af$Z1^QVUJJFQ z%WAMMP+wxJz@tE)REq@Q6y$sSvOn~66ZKU0IevT`((*t~ocCOq);fmD@v+5x=bWVA z2j^telW&;RTDC!V)8OVghbj}O_5$+dD-Q;-ee;XT)XJfWXS#sS>@jzs&m%x%IFSvA z8wFPj9Q7*QA zc^MO8J}vcC5AEYQPi~p^u&6=U>5ZA!olFQFK}6j1TTbelVYeINSt%i?L7seh>f8x> zx0!+AZAM%UHl=nqj)!pd2OY7*)<8gMhsES--?yvWlx5wNp3;xm{((TK#ecm5OMk@rf>9?sb*gQ14 zLTQO>+m9wfHdtG-UR)Na3R*L16T*loyWQ^UDw8$>mggM7+R+pxEH9MS;2NC{5HxrC zGfM@rUFNOGwhFt}7<`}Jv#@V2gi$>N18~7N;b6y4IxA>zy|?YT=ff%H(;YD*L|2LHk=$rAJgQM78I? ze|?URrWEqtNRO3XF!Q$B+w>+^nkkYJ2m8fy*EZZ&#x)rO;0XG)jtb0#+jy)RNumZ z0v5wJMf5g+n&p{^aG_L`Z+3RRFZ%~+hm{>MHvBMN@GqhB9&>GtiF7ZdlCv@X?q#)^ zpSaA$%dr*pqtLf=wT#3qT4CnmD;x^vlxeiBM)*o%jk&;VI+si)7@uu*I>$mKds|{O62P)BjWb$UpCyy{e(zDr!F? zQ2(jU$MqEN`t6Dwp;%J>`O<{`-)n=mX4-wPWZ=DSPxecB+;IFQW`#j5R*D8()r^Xm zmO-=_^y9acJgXWaR5kcWq*Y)+?FG=~Odxp$K&`U>c@?n-xM3!nNGRF~aw97vf7f6p-RtsC zkJQL`%FsZN`9Z{Ae<`TfEhCh&!~SWndD&7Sb;AWw*Cq$7h+M{vZ(j8Ch%3Q&I7-fk z`pLbl8>y8Oo8`EGQ+XF3c_FxXMpy9?v_oJp@-!jo*QKj(S8cs4hA}g?((lmo-d`AA z0kVEk($gKvEPe4XalO-$k^uY!(ss{`>6jx9V&wiXR=!ph@Z!#B zg}%#e#&-nf1?MGbAw}yR<7{_hmO&=pP>Gy%s>;|u4+Enq4~mx%AN~+OPkDu-dLeOm zb1eGXulJ@6Wg{#FIJP1kV*gn{M0G1dCKT1 z{z$21OTqoR^&z%Bl5*3@nApQ3Nx(UdR_Xtp`lc%{Q)M*+V~V2e(Dl?!hap$O zoTT91AOB-56Ub0Mo~l^4!5^F?8!wT3iOOox%$}SM1p0yU9LJPQtN6ZqaxQ)c4m95gzxLtlzn7C<{A8wn6)DXMA%1*%#96=PI!i1XUXp+Htf+fDS@jI@}R(|S@_DLV44PazU_sIJ9fRnMAuokw}j zNVT*3qdd0$7UHq%yrbnJ$3{5tTLJ7VH%Gqw(U`w)4@1v@Ho+YVJWvP?`J(SW5)t<^ zz+Jgm8$@s-JQ&;?i<_&s&vL{(U)QX$3H9(&X-ErW6~mP*8RWt(Qy4@!eCT7D*;Wg$ zKj8>pEw{yvdwI0@)r@UhWjpS*^|)zJ7&w>KAn!N4M1CW4rm;_^l6%R)1l|~gVN!3* z-AcI`)rJszm8odWz&cd!Zoe>}^Y(7IOgMCxppA}*eO~%6Gl$X_qG6f)mp#D}+iSLd z^Md>n<2B6X4q&d-dShNT2Q!X+WVbgk|C!v^ur{6!6+`Vf^@f$ zz15;h@3o$KGs`9QF@+%p?EaiWRW!Qv%LnQ|$Rp%9s=L8JR$l$wwBRz44EC|w^vH*U zYYOMGSS{wnzC7Hhr^fvJ;Un8nMJBD7l-|kt}R`Pq@W|Vhjn#Ev5DUf8AW0)k;DsL23 zt212*Fv_3n?o5nuK#>1WDMzrk0G7PloSypR92EXdkG}5PJxc5+GR<#K*kH(6q=#_< z$@Xh{U*PUfe4k#@S$Je}>Cwuw>l5FVNqG)J<`V~kFo|C>*3r7VGTUBd$Di7=R{)XF zK#i<<7_c$^wY)HK|Mt^tQS>a_+!dJ?7xTbNa5_NTalHKmE&xe-5dNJE*}VVo2V??E zIge!OE$Msn@_4#8G=Px!D}ClS#Hul65jv8hITzAU>>72zF!Y99FQPhIB3=>dh^ z!uIINV*aJo{nt->Bwv{dDhdP)O}x$C%}5&*m7=4l5BpM~z|uxw7Qh-MQZ>Ud^6*o_ zoxaeoiaKkeikN%8`d_TuLU+Ge-Ung(Z+_^m;`a%a;IVO{;+hm%wda|KAbmg+K{W6{ zl!aq>n|Nf%<0nNMYy+~UyZvMCneI<0{x0%Q=>3qp`O-cPKc$OdbY}H|Rw0Jebhj@? z)tZ6im(!VgBt`efw2G*bKy`#d@5jC9tCxc>B~*KUpIpu4F?W@`jka?B^6mGDymc!_ zFbLR+1O-7B@^JMNzs4anF zg#I^m>r0ZCUfZj@_;m8bPbQA?e2_(M!8+OUqV|?kBV;~B`r9FD8$!2*Z77gQ3d(0% z20kM3#aeX?!c&&ey9Lt34;7mJ5qJgx&D+x_6Z=k?@rq zh`6s0OKqM4cs%$6K1`Y^Zu}rc(=Q5+ATm+_+!i^UrG$}OAGwN)gpFIOGJh57m}~#~XgO$MSS?Jl!<7^tSei}^ zU2Bexqertiug*A0dBd^jR^Gyymk;c`X5$Wm8HA_dr5*&%iI61e^sZyqFAprT*(36> z<@h1P9#n;Y_U zL-SFXERf#GulaNLZEg)4Jw?6*vkXJ2lfQoiGaaLTM+0@fhk9X_abQRcLjBuP_^T$0 zyJ)Gm=n|Uh)GH8ClqKim`k7{;L&6OiB|7l|CWFa1^rk^LY~5RJY(r!Gq!86yru2nG zniOH~m!6i0>S~COX>WFLQ5Kk3dUn67V`;X&p3i{SN011#a@0}akuH)dh?3j;m4N5J zj3Jb}SgF!#%5|P2iQ7LBsu8fiw9(&?O{6@8ORQfMqV!9tM+Aesv;&^Fy}%WF<)mBw zIOL&Vx3H>ie4vWa>wJj0IDfIy$=y-Gg4|`LmQoyEnh#kKB<+TDb7ag_u`Y|XOi}=m zJbB>7lBt>LgD4a8Hy;r+c)am@0-Z+vh0$s`MEa>*2H?bA$V>A6NLrGhWx2B*wVHVz zAoZv(+CCccbVfE^X&$dY|IW&3W@c82lWy%Vsu;(UNI(RIauJRwAs)R=&fYvPsuXo; ztCSiAz;$~QRYUpn{h$t=9LzPZ3D{Sh!i~w*F-6Z4*IR@VDZtQHd?#`Hd zTFXau`5F8%x#(i>U_jC?PWp4^{sW6ryYJ6^fBw!?clJCmzQ6e?=sd_LlAQW!lE6I< z*T3t4Ci=*Ko?unsV(%tdK?>{C4Ml|VMAq`2jKpP--4|zJ87@Y(a%>zi`Ny&VR-B*yqz#mpGYQ4syVVr$-GZn?ATswli+^G>HZ^_O=%7-4DxIZYpkR|?Te#PC^hb3@YTm{N;~QYB`HpDHR=ep4_1mF>mSWDHcP2=$_=e7Ct)OZ z?+0jKFAL}Xa*&I9>5VN?IlMm+-DIcmarea#5RE!kzq?u>!%Fy7fIieIFM#T4}0((_wL#1@KKqZ1c@G08V{0bOBK!U8-=v;AB_Z9ndWg4A@|#cJm~W=#l&@oPJ*xql%q~yEW)=MTd1B z;>8N*D)wA&5{V>C*K)}rvk8{M>90|+zndaGP=Q&))sT4yfg4ThI|wr=Vi;vnq4}!t zqTl7jnyYK&10O#2w}kUh0?O=^rbklI3|unNjfDYHYEp5{6+H4z=NUZtW%2jrTG(Td ztJvWnC|MZ(dxbt6`&MVl8R=bP9Xvgb$--Qz`Ji0NH+la_XxocSMFa}rst0X_Ra_F~ z<%x-?*w|X77{Z2=LBE^(T2SGsB3KPCS=cM8b~43x2qM}V`{2lrsh1QDhVJR< z`AvObwWpDh-z4Gm2E8}kB|ffMp=e0g|>^2YGFF=?2X7cp-Yr~MSq<#*@pKCR?Ec)m#KL|SH!+#tiS zvU)`5Hq$>g?)tN2;!GzRHK*~SYB4GJS3UIu!0!feq@LSyt!JTr#$MokPxiR|;z(KK z-!!Xu*l(Pf2cW6t7D2djLN;}WMmdxu%pS(sfmHnUCV^UW8T}CJQ&C?si%_oRX!gT- zI;#d~cd!0XV1)wDrCl=JvcGn9d24gDC*?_|(^QJO>VDwCX7K0w(s#ua!DH`Oq9UL6 zvT~fTfkZ?+@xp6+P4*2Hbt#M6&@!<$%porcN>u9VAVU*O-*PhpNlokS`x?3GqnObs zB0=>N>fZrd;$j6J*otj2Gn>#UyTtV)tKueS_Nm0#_dk!a4=U^c>5;=hCXbhvgW_1E zvK(Q(SE*tM0hbnG_K`X+OVxQtO6h=2W*X^otj?%}xwd&>4_mG}!PzkKq1gBN76%2D zXH`9F9e%B{OSn?2r0Rl1WBmEKkOMid$ukkCAO6ux3#$p&`CkcBgPxm11h z^YJd28x5K=#*3!B1r-8t?PiI=BK1dp`TAa+|zLeSebg%FhK|g z3U;eg)I#Uu0IIwX1@4bJO1dotOa`WflXq&Ue#mD)A(a>m_=JAW3d5(`z!dvGjGtv3 zw=bCQBC>~bze80-Jish}H}M&&{#T`MuXTJSP1x2;t2?H6f^U++pR%V&Bx8Ft0e*pW z+i&BM+*@(hv&SAPzTaZ#E-p=t+vnK8No73_mXXF)@CF#YAkuf< z`dEXD$rr_p5t1BmYhV&e`qxwgr-lel`iqwo-fA5IGUEi`UW)T8sE>tJB8wUB#)Ojj zevB7_U7n>V745DzKAeE%igznhK#ce1)cSaZ`*0BGUVfBm+`IvXj}qAbW)>_*uV~jS zKUqCpX(ab#ie2CT6;|2aLm+G19MC2j_~SI$2wEL;3HaF6mS(`;P9qdfc~4f7Rvhi= zPIoHsr6-7KVYGVU{e|;&o1MQhSIA%71hJt_K%O`ZEE_r-!g#Q3(Y*GKUmc!gsg4g4 zV}N-!Nf%>IeV+00n%$6>I+fPkD#lUwM3EE7A*^3@CkPOgKE zak~cZ7!lM`>L>bjV+IiG7x{wy?yEw#&gc)BfCBud-`lXH(=t^2R_a=AJ6JGQU*U)h zAH{^~b=UMgxo~`G^5M~o=BEd&P8V;&fxYPRs__W;oP)yMr}EpyTd=7v6otD>SdGd2 zWDtr^f*<^W2YzfE1u>96-jl^y)MGEL<7*R0D$j1_dP;Xg4O`AXtgZ0p#=B1M9fSharj=%H{0oF;&%E#!y1FBc3==R;ATPA!(zwT3m? zCo1!s0iY*oW-#LAs%3Hi{bUkYB-KFWL zetlE+M`;AR^DxtJpuOM8$TAD=sj<3#e7h$M9zN6Ur@L`mU7`0BCo3MVc##`{A7ZjO z+>z`7_P(>e*64@SBCnXtAi%}P^&iu=S4HvaOSaq+_2;4$aS{T|(=QBeqr&zFmFN)} zotLNQ-$VAXzSk#mhYCq%4OiNNt`x^JPJ{R4;AlDcF`=PCy)LtNvhSZNb%8q@^2w1+ zjRH_AV?!D?%$2fk8eYCsFv`Hu!h+pitfJlI3uZYA;5-30@XayAcSP!ohcHX+cs+|Z zNq3+mMg}R8l|~@D;*b*W%KsG3?dANVWushpT;0AL{*hbSM)kpmxNZ2=ZKHYJJaN8a z<1;A$C;UK)T##N5^B{JnSq02OA{QC|gPRl^$XVR{YlG>#TwO|39L5Y}M0>SmT$UVv z>+m=FcoFjotD<8-mt#>jwS~BQ{yj+wyymAPGI3zE5lkE{0mJEZ*MlweMYc8uR`kBm zNKzh6v1II`o9pX?OF0kxyNrDkviAJh1D7GXO6%PLi$Alj@;iFKyCO}*|J{+oB!>Iz z!`rQYI`6xH!Yo~$m2_FV#z1Oe{XPqE_^F}qJ^Yq3=sTk&c1?+Ayj$*I+lxv+91Du( ze3kd(c*GZ7S$i?Ndr6oiUPiJv_iKu2psfmn@h^>iEDcZ%iC6vCj)8Tyaim1-{etXY zHlNw3zuOFY*5iSkxYn@08AGJCjtJ(x(o9)U(%>0(@@ohzt_r|-v|cY(l@yBG)=x;p zh$2p4X{vHDs|C8I7F3u|VaLMa3ak@iOEiOM}f^EELvcQ$O0VexJ%Y{)@g&didv)nZJ1DkGdyw{#L_pz-zqJ zpz+T!MIf~(zbMLUQ&TU#E*E=?j?c=qYYFI$c`YoKmuSeP!UL&>%TC*LTGd{EJI&={ zs!i=cC7BP^=?Z4oZZTg9aK1m2OCgRj%E`HK^kc|Dk+MPweDzQ zlOX|PP*ZwaBZ8=3vvZUzXyx$K82@8n)~V+lxP+^Bti{C7=Og3 zT`i~bYR#70BkYei8ZqB~o8tE-?`63X4i7yLk$z9|>4(vE2s*i2+6PgKFxRUz(!0EP zdY)gc8EHwO8VSx;qYx)#^@*Fb_&0ixbePvpQqF4A8<8*DHg!NrH7Q_90|1=ghrHX}V(R*_j3OdJmeinSj`QjZD` zNYULW0jDRk4!YG2blq^JW8%dMN=ae>;`?>ln}8+di!Oeu!pmExeum=hC{Chil#BIK z3?q!vq`+K^L|N$2$3iK5FPykelK1TQ5r-za(`^P9Uu~m+!MW(&t?T^&UC19j*Xf~7 z6eJFmQQAlN0a@grle8m63vf%VxGPu*%Ff#@H~x4TAHT`lTGIW>mOnQQQjvvvGak#$ zCbF1fsSHkSo`m%67Z=_(8^}!x>;PQ!D5Kgxa=Q;JA26KGU1dB++1qXaL_=>`Y;H$I zg#Ad93JpV~f;0-deos!;a}qc2RK}*W^@Dm(ga|3)q)&DR>hP?kr_DmYT(%zj zyf~-li%R;~m5e}#wfv9M`xo6%_ILbK;c#k3!`L1>p)X5^9WO0@0oCkUTA-`5VIALG zmeO+nXM}0PpHW_04kmT*LxypjSKhgKTwge-wpYNR3tCYbH*5`GPp5G1R0JYmlatnW z8eOm1(^4f$OHO#C%G78m@`D*~`ZDg+$2S47$uivJkBhZd6x%V8`@||@q@Q!s4ZUhp zD_Hqww=WL!=w*P83~J^rg6&c(hv!8)x;f+gkyTe5fDin~lEr2&AM<>Ad-~Kk6%)+{{X7y^o7e1R0I~FyMekBJmlZgLu)QX8GMnlR< z3)@{WLW&;8K*Y^~#zVSo2i>d#^RW~j12-143nHCVz-?03XjnBtlkjXJ7bGbwPdQU} zN*re9_(3i!GZ&ZR+_d9Su=yoyx5vj4k~FH>nFL7;Ntw__KA82q{zbmEeCZ_ z1)(VOuGRF=)-blZwTA;Yn^xj~?6#85aHsf?vqJ=91&o^_UnNPeDO#g%GdaKXkC;po z!yJet8|O<_Qqng$M)TK^%)YxefoK#$dc|`UOus%(e(`;(PjFI3hm6Er>Jir{*5tJ^Q8oz6h<@v%)(4Tk(CCi(pSLT+fD0G%NU7O`4)MieJ2 zNq#g3#d^cpAdKuT20xqu` z7US3aNg}z02%{zeHfI{wTP=Q!VwD^dWLH~g%1`Yj+>Q$68a+X$5137s;G{qI`lEXy zDgc^VKGpRpXQM^P_ji4suk&VvtG~1apxfc|W)};$XCnZFM>47K9}gq}LKLcKiVsSj zLtCA6Z1^ldI9HQYoLO&I63FM}A@h}}Ax!VroKpx26C{yMx`YBcY{J1Ze{VPGW(1(m z1xO0oj!G4%8lr-C0yq)3hR&=Mgf?OgarhpUL9Ki$QbDkEPbs{m3nTT|h;>F>PM0mg6g zfyY;sE?gFOk|^x@Y(C0{1VDeai&7!T-;)^iMS2KWe%|`iFzmIIQ81bzP)W1tlrI!D zin{HND}Vo^zH{rh4JE*}T>iIE#56b~Q(~dX)#&&`B0tcrUMN@UKcxoEWV19`po0$! zKp=YAJroHFIu`O?P@O%<=t&dq@x}xTWjs#YW6X_`A_{od>1+*=Pc~XoG(gqHWN)%` zuN=SDjaff=M~Z|FwvMxgwg}WxZ=bQ{fpee~K1BE2raJ-P3u3_k4qJ?3V5#J(-{B%) z98~UW9(82P2V#CQ=84B_`oh@J@T^fO)D}r=BW{Ti=P@C4u020~yS@7&bbe&~0;1~*{-pkbZ@VG;#vAAHQ;AW?=xyJL|b2c@pX z?w&9*RyrXUuA<=v-zPLk?BzG z4EA9$SgCD7FVxHyVBe44_59Y$zv}QKA&Ub&G25t0JKYlJnwlWpN8Gkh5a}}VY?&2i zoHjMGJpRm2SQeb120Wh@;P78mYH*;B7zePGW&g%7XDsfZeEN8>Vk6K*J7I8vsp6H>cHXt@<}FgX=R9g1 zFLwx#I$rCUO|9cKS?aZRT}ND@IO>_J3{JP^nZ~{R_2JMZ9OPw`7~z-5JB1gu@h^dk z9TV1nduSsAD$I0P(a(^2i^>?9p}qRK;R|Y9{i?WWCC&(tuFSm7(_W#kW<+OC#A$+f zClKa+lj+D2@n1wPQo`Ld-4Mp#`#WJNr~la4qVS-qUbK22PTM#U1-L;rX*RixLNdbar*orm!sX4z=5dxNV=r<4LKP%Hjg?e*)?B}%^$xRE1v7>qf zRvdzKpEpG%m2Q8H>&Ikc62>E)mW@2@s*$eNv1_X1r~f0zkD-THk&~3j#3oA^Y;7`z zCthj5Ax(tbSZCe7U#7*@pc9L$o1Fo@hw(q)m3sHc8|HtR%xYA^R`suyBnK(#Qru@Y z5dS%7K&z<_+^N?10z6JAR|@y}!kC91Yg=53&5#xnzoB?TsLlYvW+Li zQe>J}{jDgszxJ6(h^VECS#IAFX|kekjx?SIVYa5osYj z2C3HOx3ITU&Lmz$Lxhj*5iAH)|DcSId;Y2Jzm=o^w{pquD`zTaToK2WP9PTf8k>Xh zzuT!pXvY!d7%ymC93+|5(Q~J{e4saKr_=Uf>2%j%l3%mZq3*I(ab+H-t<|__l`(7X z&)3xredi-rUp-Ph>)i@@ZC!N(L?n;(GJtzT|9k(QzuiVN! z^8>JO#M%AuN2xs(guo9O=~FxGa))#W14f*-e^hj7-^AQv*m83_wh5LGp#08sm&m#S z^#RF=|3BTuO>DK`S5|MJ?U*2%fl`|W$B*KG@If%_Zij}za^ovfuSJdS*Gui=WkYf2 zAtcY7nswh8U6iwpac#Q0x!0Ou%}*7bK^BwPe6 z>g@l;2?c^FIkZyF8DU(;>80*4l9{DImeLsf0_2eQ>?77=S@4M-s54Mj&=+ZrrL4t< zaKV=XZ#KWxG}HBG;sybfOy}H%+{zE^e%R6|oL8zkJ!PA%h-`~-Co)uwW+kF_1d z%*dMX6M!Riy)u{leDUO@9>8Wdeg9h=9DYzF1GXab$x`0#O^308J#6B5NFt8MV(?rM z4hW})fQ#l&(n_jPZ@yNLUtV)uIU=oT<+08;fOXRywz07&fBSp! zmt}$Z>m7e5oPd{u2KN7B>631ce?!k7!U5rds?Q5$vZ@w7SbDx;uC9J<{R?OF?RH9% zrMF7Urn;$%;bnbK+{U3%D#7ugFG^S?=?QL!_lkQcxD#@%R-bGevbg@MLk0~7>6W*? zL?ws8PGp7IBDPw)aNTL$wYw8f=3-I6wRm6wArgTEmL~Oo4D4!@jX1pfiI6u;!dqxNP^gdJpv?B-N~1E)b$835 zU+r-?%(%G6_l%NXmIT_3-F|EUWM~CffUov{3xiIAwT;CZOr%V~2FjVK1A4k$6wA!$ z#0}I1p>Cy?Fs^)w0??q4Az2A!sp<1WHgD3wE0pN1lK9XqT?$;S2Gau7P|hq&3H#<8nlddWzXJ??1Yh~ z@;3h(Uj{x2ox*y3%dB%Q;&;gQ#h7aUG#bD_xvo!uckMDY5pc^EkVFYnG>WGzq*PGK zwnW{_RhRy^joa!fh@#sSr#s7{B}3t6C&s_h(w=fcj>jTmTqyaYM{uNy`O}#RqrPJc zF=c$#fCZdaRld*lJ434xg6Il=#nBTayggGv34)zk;iJcS*Bnyc;15{cNE;smLe_xP z>{O^IZ1IV=p*`xj`OtVz=JC+qo5L4ebc)yZ*3bIIgu2&$?*h8efxG`QB^s$Y3jPHJ zbyGu0-@cfVK>DJE5`~tLc|_7o9#8PY1ez2O<}nQYEz7PuaeY2)X)AOSQIr7|6oVv4 zz%f8ODdsc7x`J&ll*<~Iiit0r(TS3GbXYF#;m+_OXqpA_x^pO|68Ut#l{kJ&IIr;_ob* z>D|>?<;b>2qov#tin|Z}T&iA_Kd#ZASyf=)G?Arij@`qNE$MibJ2cf>7yav;jwLMK zu3tKB#VhYOT4ygR3%g&z0Ye@yuyF+c}aYF`5)-!{- z%Lf6Rhpr+zS4A+X;9lYi{ST@`C$%a;X&CaYQvI!tVd^IIwe$wZkHq1DJOjoP6R+9k zA3$G4&H@lMLG)Aesbl&re>MuYn!1;&u-s7#2|3?k7KBIJ6Ls~?deToMD4ch@V!A~5 zQmUwu^=8fi`0mTGN|8N{RiU?1wMcFuYj#@!@yc2x32K5UOKx=1VXl(g`BSH(y5yUg z>|^rHkoQs-0IsnK{_op1$UA&7$ip%cRIz--Ou6*&WTa>6yP}hxS$T>nZ_)HnDbUjE zAESWTEV!9I(N|^v7`3sP6SvijZGv2rx`%rJgp(3=s_tN6_h6-x=@&G&)kHtQ;iVXU z{+}lMnGOJce-HO@)B)t)1(;m3cltEjK5b3YBR(IU-am9dF}GIx@OZ(~a7e4tV$um1 zM*}R8e?#0JD`pfcD_{B29H>6zZ=iGhF?#XF_PQPij5<({aypV?g)GgCxDtIEH#zy~kig zewzK7WXspf1zgf1q0XS~t%pjXkV&~;+K(H87{01(D4NslrngPOf)Z`%fbbIdZz^le zJP$~`a!|=;tap|$6wn;J-V^!}I)ArPoaflUP*_ec4RKRN0m3&t;RJJkekZggyGR&M zM%JWNxHoJ(3_c9YiO4hGtl?Pw0`BiAW&aMKe@3H1VS!6ypY$+x!^66Y&*qALoEb!+ zL+@~YK74bRPWsZcEn2{ZD@!)XtNz)P0H5?GB;F~rVfAx4rYTZ*BiRY_HE@Hzn29~` z`U6Ob;e$0l$0D zM8M=O2O0}4cL0pzlq>(oZe8#C`aH@b-j5Gd_xV*MSe0R~%XDRnLx0DI`3gED`_Xc0 z%$tcm=S1hu)ce{aVXfL!z-!ffr{4MRL#N<+veN5wlg8Ul8`N=2f z7{mGqlq3yHm+7ExX#jlwJAjXF-G2OZuHmQff;ZFaJ3n-j$_P(G!ZnQlIMtBir7XUnFwtN^qsxr^}+^x?&gSO`C4=;RU`YLMM)cV<#ToT+W z?h171#i;*%qx3|no|()v4q9aOb~bWlT;QPHXKzmK%mQQS8G8-tePCfXtrsdMN$^XV zzTE@buH+^ZD*Z0s7GwdYf>MZth>u~mY_3t^UYefAz$2M^_5tzwL*%F1!ah(O3Suw$ zKK1%4GRdm-A>i&o!a3}jsUB4 zYO8g1EF9ivz*~2po?(DM?r@!#`9-Ju6i6wBN3zFce$c)~&OSPP4{?Y7f)5h{a`1?J{#A~ZM zQ#T7fy$ifaj+VvxBcVES9|f7y9mP{|lg$f3Ph+x`8dQ7&<40zPu)f<0%#0;+N`0`d zk*jJy)PWDC_Ry&gxrZ5?O^DB(C|*~;4ZF`;um8)ZYp{CnkikeYfQFYoxUJcrbC!Xr zu1E89G1)PI5j`}6IVbFnF2~gFLH;T65JJ-~->HE?8KSlOLOq4$jF{0YvN}MCujn+H z6w5oql4gzg7(ha^S#vtE&}RphMita)jjaT$ULIbhDiFByE3Fo3V)tVv-IYyeQ=zSL z4q}j-%OC}4nz%DgYwQ_cTjPF!QlK3@|1rFqu>mOZlwI-v?W>9vCL@MI?Hh+{|zFc4!pZ52)Z!bd%#OoQH8q)-n&%NaSq0>k!vpu2&|8wstLf}x`*<={tZ zT!7YBN7|fC04GDHlJcS90bq>uch^Zd`gisFpI3n_hIITkPq%u4-KFZsN`Z2esaA|?p!c_?n<@#-UJagGfQCE# z^QYaz>ivzv^}i#D(YsjN`#w6h4|p?1C8g5j0&oT^1)@Kz%l)Yg3c$zcX0f_v9;7qQKobm@ zBVC&6D!>(csQ?@LWMM7p-97B>r5;*nHBBg~OmfsD`ruljMMq@+31p*TMevOlK3Khk9gvp>!sG_ct$<{~~PF>lMnH zBR5(5Yg^;gp2FVZ_TC3Nqq#Ds*ZK7Cx?3VBd>fpSboQS(*KNrAUN&||6CNiY?D?K| zlJlb6&6%BD+0$xdQ0k#JJ}i~#I;#Q9#9$lf$X^6ozg53<^M=Oq3Ue|#jA)T9V?Ra| zyNt>Mq0xgbLZM@MB`TB|K`-vp84%`mTu}W*jZ;!o^2dEIQTeZPmJM|}{K+F++?4F| z=`N;m%C(S`n1r;^nv(f1fiiMjEM^~adGV{`uwwqeLk(x4zq=V2QSZVnK(H=%$s#Wl zpmQnRXJAQP>XgJ$rx9Wbhllk-y)y@YE80VQao*VR0Rx)>axX-T%4_~sRcQ*iw8y%g zV6Z@?Q!WMrZBz5oxtsp|I}%O*O(TM^a@5%yRr0%^%hC;M@=OO*(s!fXc2A5%HGcK) z%{@?aHxsT+997t=pQzb?^{L-OuKGJ*&GWAQSCTJk_cFW8$}JMdVFH}ILRIh%7{cvb zUGB3+x6uN6MJ~V$>$~CdQ?y3{G0ptJEc^^>fq=%{$rZyHTlki7@} zZkjTUUzMc9l@i3fiZg8|R9Q$=y97X)qkE`JWy;!aO|qC2)3QBBNk;UgX7ckG z_Lr(zPAEtsf#z2gI8{GIIAJ$!&hz148#E0E`Uo~+FbwNrQ1_?$*}Okc(v=lU4n$Az ztJ^?~_Orl?h(utDD4>d5nife$Rw{s5J+fDdsU9YH3B5nq`RSnqhrsmejZ92*epsX= zM~Rs?#p)B3TRCSD1NE{O|6c{TRGfwwJ4x^@ZHsrW%hA%#gf@pB-U_fu$5;EZJ#j7x zEWX4EWXl=Ec*m0sx80DonBYH$?7{#-91mimRIc>TZ*^#1WcDb^IoJ&OA>hH-$Z6-i zvMe?<1`ZkuXnJM@2a|1~fa)2vrR8RbxJ3`F81DNyeV{-Od53!{-TSShjue^WDLIP1 z(2?{fW7qz3YuOJJ`st0V_l(BV`zSmnyGMEl7(vHW;@tw9#9F|h{@TVgo&{-rs6Ig7 zoU*hPKVjWFFXZjdA~1V*NPr=-hmvgP1`X3#Qy=OXD#55AvtL##5epLGgltroxT+6~ zhphV+ff+Xfc$otpy1S0>a+jc1M6g+he0G+hNwHOI?=O+)cz#`Dgr-ApM!&J;b7f{u z<=cg0%ho0-vzttr>Tc1QT5DHX0El4uKK!V&(ij5TNfN<-*YQQPzk13hF1bb&z&D5OJkpYltr}E+rxQOBp%Z*%<@4#vbT}rS3Tl}D7a*$MGfqBSOTEO#G3>1m zJ&=EO>(LX7V-c^i1vqRUTMRBSpNR1T+!FFQhV#0IapQ>|X#V zgzCzSwoe6Vig`Pt>-1CQyqHa}=KV<&SWeNC-O-}K;CpD1{|<*E_emRpL=x}`Ufb3 zpQNYcE)XNdEB`8Z^J?Ya+Lmh%bLY-W6@~7G3>Clbl{x*Xn$XBTu=>Dd05+E*aYjDA{)+lBTJ^+|M zm^{tX+&JEWd#-R)qs92B0s{e#kg7h;E&)WwJ$SYL?Qv$!cK$1u1XYpeW;F(P<8(4jXz~~0>T6+ng7cV5M50Yz<_v`*|hLB9xfWJ^WMC_rk=Y8T4kwHWB@+{~_ zlw^T9Jbvp+5IquOZ=sr2#Z=KwakF3wC$)dI;~@VOKMb2CQOq?0aCWeiMk^D~rdUWv z_c6&I_k=Ybq}BywSC@2Xjyh~ZekiX7p7;T;korU-#drc;T6xO{g1l6=7vEIzw+bH3 z%ZtoEhZuj<+A!1tqYf?=`}<@_~g zJ21|@}1*3gr<9p)Tdzo9g8cPYrn7*g1}v)1oF zkJ+u6;%i>GRuF-K!;yLv-2{Q{7RLBDwj2lE2;o-|F2vmVfQx_)NfK9*Xl3$H`0o%g zxKFGqbTQ>1Ief^2U$9AC{~JRW@X?d-e;-Y8m7N?qmP_s{gCIevti8t@7!)n*8vmsB z5%tBRrRjjlBS%ZZQYnM=$sRyT1+1h*);BaSTfEvEB~lely{O#}fG75{D5YcN{XWnu z6M^Zx7Sp$uTn(zp@6bgU1_zXbpN42Dqysb@-?q_3CrlWq5|bhZFwO$(f{bKP$^69Y z(-j-e>h3Z~09$;HP-=j%qz&E6sq7HTlw9RTaw>+Ksw(T#sk{V$1P3TlyoF_00|Lr;Nuao(q4gO zm zGPieyL!t@*YXEx&J6*iwy3=GEMvD^P>Msk&kZKKY<=1cSEc#NXL?AQ`O2U}5^ew+_ zPv>Q3U@IQ{B~Ew1QB*hGYr z2JosQ*i1>$T>X5qk0nWEV~$Bp?~YBW$=+?n^lXH>=0b|=*{tPvaqbv*HD!?1)R65RsmDv89~z-%nA!HuHvYNU6Q^-rOCx<@ z5B(@in2)M^80YZLUmPG?0?3c84Dt1VcJTyC)ULmlTxcMXbpxwIML!=SRlEdvcKjgO zFQXlnds3(;LZyWeHYSBE+t^bAYGO~2Ku-WQ(bK!+^6YYxi}Q@i^+2J1nvHu9V!$>G zkbi2fpdVvfV|swPgs5mGwb30h2sNdpQ{{giD|yNLv&FSOjfhY()uf!)vO1qcm=Ux`pdK7QKHNXlHL+k1a< z2wqEedRZ1%??pd<*B?7zyN%fRY88ZTMou&3fi9JrCG?F~68lUncCn zkp3IYAdMUd>pbsFr3WHBnee{Uzaf6r!Gg5pwEqL24hP(-yp1Kv8Z)>3WU8sxb|=Fk zt5pXUQC>%W+F4_CYf5jSwLr=ukt=R50+BRXB_RiJ+Wewk<{YY1w*?F-(}5wFAn%Hm z3@6ft{Eo|n=37(i+ZZcz{=)&NLI|(ZA32}5Ru*>!5p_g%9Qk_Tu;Z$~@EhsexFoY1 z`|LM&>!Qv&ieI-p0~WGTgn(60D_oyYA2HQdW1s`Y;M1qop36j^&v$S(xGZqHce=l0{ zE=Q@%uDgWp60&gvWuXpS&s2V*q5)xX zB!OkzMmtm=#uzzAA;KOXf?^0;mmMAZk9t30{)A&{{}n7t;THe)oS<_!WC`(RIL%f= zG7h7fhi$dO;D`Y^OnvrRX}x5#)!CTXuEq0;+j&s}ca$TW$@C+(31;M)vdts%RS$k| z`X0r}78wnce8;yXZ%JuaI?{A=%Sze>SqS*T!phsE2P=@es&+rD_ zNUni8bpi=vg7eoQnB=iYJLWF}Nzd##xMn16MithHFJ(LI2Vsu`TgR6)3JyA@^@mWo zOsrPSDh4rc4- z&aaqpV3@oKxcN#KC5?(1kJr2XnFz$rR-hP+?gpNY+lp$IcDI-+h%`G-PiV!6WDns3 z-Y4xwjV%XB_Iq&LW|p+Yu*q6)YiY5)es$2=LQh{qN?!xLUbtL$-4oNLlX~jSjMGhC z*>)&rX-tWsyp)JFPL-2ah{cYDL1*;aN9Pst-XahS0BVG<*a>e-iZ>df^?Sldw3(3mcp_i4pQ~{r9;#w6)#64;WEjrJE^r;vcsOa#z_(iQ6A&*uTVBb97cZ7}WXl z#GTl4k1|=UKryJhWid(fx0dG8%XFMW+Mix0?fL6tO+nd>g3#n^Hj^LTp+&ROa{OoeLv#>R@8rA&?{KG%r&yH`6hL8itUM-q$4^%xJ&1@ zENqpe6oq|L?qb!LzVfj%&r#vGX}GGqg^}py?Kn(VK}v2#mu%>Qh0ZxMmbtpCCU@1Y z2P-fbst%r!&VDFV=`Mi#z2lR=1M;v5I=eb<;dOgi#?$jv++oEEucw0%WixiGZ}J(1 z2o6U)2wLjM@pndwpFi0|nr-;LilkmUPYGp}I<_pSVh>dV3d`Nf{w)}DEa8oU!uP{Z z9lG)oWADm5bJ$E0)LU`jc)xoE|6Xpv&t$xw4{ALHiK&geLGi>Da>q?FX@j`qL?}qc z+0b)wINALFH$SrDwP z;jWxeNcixWfca~lmagWCU#7H|0`Hf?Lf`(# zL7&tyQQu_6u+D1ox7FBTT{VQwI9Sj@=h@C(Jv$Ueltul~7f&Yw3@w2a5VQZLPkokA zJ55fiqOheOl29u~eWMZ<SkA$JNC3nxiZ7r1J7sMfInTPJ9n)r6hOo`f&4ZIN-tjCBfhilTX@B z;@FjgkaoJ?&6&3kfWP}odmJOQkQ+U$GoFW!5*m1ii^Tm2M!_% zMCkr{EqvNT8oW@^_%v+fvEFRXFPSdvr>-H`>gbgpwp{dRMBiGS=~~7I=kRcO?ZGzi zU$u~=CS)c7tDVN*&&_gtjk$d>TGMGvV3SzsES)>$f4K7iDpy`TfstV z&Io_o@R_{L^WfO^V@zZBx{zyS$Py#olY+0dEe%VavYO$i`EU#S;>E0|cLrrdcxiZQ z+^4PgSw*-YHGM4Qaq9P}t{6sRFOiquCHHJ8q94j^6ZUahQ;d%oy+Eutmuo_PXJNr)-oK_;V4$A~a z+KL#w&2R02JY5|xuP1|82~LNhEX z3DS2}iwLc5hgjm< z{`D8DiKVCCU?JDB1#6M)(%0_w}^h&Gof}7{emGV%NUhpIYuE6>?Bq z;Tc7^wLONZSuu>*TuMm9X|q!ww^EsNlX$jj&$%2zsU&#y1)PAOr}fw2L8hO|qbz#H zR>j6+@p;z3Ir?+EdLb9+d} zEHYBCdLwPd`PUfP#Ce90DPpVA5qSGIkI>jwT6kDy9U6(i`4?S=js`T0Zw9Siw4k z@~?OIlV~#W#>bzU2Hw-Oye)%n=AI$27tWpr>9IHuWVA;Q8hSmQE4j>KRtk(T*YJ^t zxdn(-Jtlzv^6@BuX5F%*5hF1_7K9Hg2}(Tzv2UM6B|m=I$he4oHfO+}TX#A9QeYV! zBN}72v2&vk`s@VqKJJZX8twoxkJDsx*=Z(s0(iv@gfb^RJim()SAUs|xkR0F~SYtYmgQn~XWgSAWKkhxjXVaS-p%ErHJRa6E- z4VNt+Jy91`6`V@UxS^1-<+zA9wHTq;F2vBB;GGL;h!eO|IVz)fu&DQq=*x(oulz4T z{1BO_F*0`XQ=ir4_2nLo)u5nUElIV7I*LV#5OF1*eNF}Y1TId{QBU?`8w^C;Rmx$vCrViej@3z^2 zf`fmBVd&knjxz;=yW)B@-H0Kbi#jxS3*WuNP!X_!V(QyuYhKVLxPrwnNm#!Zoq4&N zgULW%11;@cP~mT%l5|i5luS3cqwG1Jbkyy4fy{uSA>Q{lF)CQ_(7WbhygEa@}8LTU%|vy!As(On=v4H|hQ`C5UE% z^e8^_j*lhp(a}oOwtp=05)nxR9dc4azujn-5j&@xi?lp=b82{-O7PK$49lQQGeDPs8}bR$E-MtLp&Q}Pq7&+p}r9h+Y5Bp&bj{nWSo!p45^m_+Jt z(yS9!mjZ6SHwSD+A`D~Lk6d>%$hYOh((m2VRw7w0y@I3EVvH)M>~NDjr<8&7+x}_% z)9H5j>tih}8<%&%SAIuG=A(YWun%tyZkMeKqi?M5H|Ejd#C=(l==RX``-XhiRg6(v zb{tUah;FqBYh2bqto;zNI^sbZdY9(EDhu#Hs_%@L`8_!m_iQ0^klG4~sJfDf2swIG z&$$x`n@di^DCl+*_zX&Ev8B+oyqVhkhLOlF&QpJ^1xmqLZ)aZB;19EAz)kffXLg5i znfBfmJj;*$9)7C*2U4qbpl~o&#{5auv%tTrd<@!kHP$4tTPWVOcU+!EPKn14`6@~C z3??`=XuWFlC+|ltyi`o<2VeiI&nGK8cLzpD{nOR-qn}3Fd(G)kLL{Y{KE-E+e~l=; zl6yK{-^e3xi_H#wwsn(f@9;lT}zGvQ;WB82m7I-seqiPGX)!&bAtFuzP2s7P#-!!@Tt{HvjHI>+zlcZ!*URy&GJpc4dz|I+`;9(1YPdH7Wk@$ox@kHN>4n3c~V z1=F$(Px`rUqFuEDt+urg0z5l`PKF@RSx#ygFpZA_C8|PO+ zf!|F?=0T`1k%l{&J-NelY49JL7NMA$$PQr?@Ia+K(Ep#BCq+$$v^`m(DGI%}QmPOvIXRp@o9h=lO|wb|WxQ%X*epS|<@y}~@0Nc!aVc3ww-E+^je z3m6Tj9xQ=&^0t)_$aC@nx|;YDx@314XiQ(A6Ow-imuG+lk%ZWdk2B=e8pkGatHd28Gt?_>Ni#)Pla z_gXCJu-_2YA7`={NF3W0>>`0Hm=1U+hlJvXVAyJc5XRG2x9OUB<#@qg-E)vamnPOo zc2;e8W5t72S|rsrOz1|*AY`P3S5b=Mu~73@{+DWspON;5>FgcZ6|OdHMicy`Porwl zU2rtX#6g#oF`1~kvs#ZxzL#@-W8ITGS`v7tfsL8y5d^;b#|LV+3)4?T4^czs+41-X zvLVl(w&j-K>cYLj)yEbgkKYe^1qJj2W?x?2)eKNLLxs5#1Ff&>2#-S!)(sG4T?J3p zq}D{r3yT&yNZZ)TLsD)!(%?F`c9r=tX%}8XmS_Aq#9@6H)0oPyCnMIsUD8Czk1?)2 z@b86rhRw6NkdqwSLu|EgA#>+S;$QU<4Gde7(w2{xP$#+fKRlcvTLU5nn{*{S=z3-2 zvbwlO?k&!w7;diW!%LyMmpc$j`17}0gL%Zelu$w79~rD<5OZp`iQtw=g!73QoqGD0 ztALHT;EPUOIui^ugJ1ButUyV%?SxK5%->8@|GZ04gM)GW7>|ePZOip=O*+x`m+4tc za-{>b5H`+aK?g~rXTwsx4(*&5UebShfcV7E+7lZ^6a0PRqtYyboglu07jB|{TA@f= zRdOP0r0G^}T+Y=0dYCooN6d>0(AEE#a7A1yRo}ZxLURMse6=X;-gcBG^vn+FXMpjx z9Fc3YIa^H`+}XlFw7b^aYY^Dy{~)fAMMO>TAr_puOy2NXeHue57XSzQpo<{(eO|fe zhA|2yhb zCXS8d=I>N7vu&00-H%;yR$@cc<=2i3b29t;KIEycT%T#%q` z+`Uiex;n*0@Pw|di8pXf6X)o^0oF#(_3V4V#CL8#oONAjCW$b)zeu0b((6;8f;Dr> zAm#iS)W0Mq-Z0G_YwW_byS;>?z zMY_=WABVClILoDS`Hu^Qmhwi^kJmhN(karZ8Xynkswczvr?rL)MC!nj2A%MOZrQ7p zBlvn9pax)wP~&?QB80<dMl?}@qu2XGyqk9l{c^S7sOQ_mLh(}{Hur- zrQJZJ;jUrDFZp*wunm))R|RT3WN#FABHr{~7uAITFl~d`c__Dr1f{?6X2?Bb<`DNq z)t3f~#s#*qFHvD_9BOT4FkUxi2;MsClp{7`DTimWeXnZjGv(h{VpF~zzb{SbDEO6! z%<4(P!|TMh0)-;%q6EuYzZzMjvRsWzUuhMAXR%}4`nZDLjUknvO4QbD+z+$qhOkl+ zy!Y%_)mXbOCa`6aaOqO59wo(;pjFn4!8CpOY&aFgkq9_lb>X(C01}|G`&yZ!ia|=m z@0Z#i6IT9Hw*P*;LV1_a(4Ya_!g9EywwG`Q>6z3*o??h$jL{<7#BR`4wH`vSk`;6` zzEu4)&@7)RDltMoadl2Q5lY=4y7~7-Rrkl7vc~E`@~tI)x$L-3kAfXR?Jc%BxvPml zX^c{Xt#0meBFMoH&TEZ4G-wGg*)$MScZjGj8oImy8RB7#Kxxvu2~R&xKl zd@U8 z1)XB*z7#a|3!jm@mv<*;_(_ajM-@d6Lkg1Wd~O8?qUW>@pX9t@o7}LYH<+5*fvatI z-tNpVR!@9VB9pdsWD;|sUpx=N1nqyZkWohu)6v0jALnK1s|X(PE`OHFDLN8a*{Rux zt-qBub0^kSM-p%h)|4IK*@5Tp+wpm5#Yn$F;r8pSc&DkS#KK0ix$6eDdO7$r&$WV3 ze7HZx+0v;vgdz7{!XsCX;_I_lN;?qFb32>-%Ft?l9fXrluJ?mY2jrA(elYEBQZkOr zX7cePAB*Vo;+eYNu+1?Cx4|a#+;BQql>f~`NiM*gw2_;$Wj?VGy5%%?KSwiLb@RLojet$PCPRE!N9HFR_) z9?Rj9MMr`y1vEy$UF5_ zEzWmS%L@JXlsE&agM=eN%ykFY|9vaboV||G;5=NxaXdiaw03LO-ym6l&wnYE&xc2V zW~yaXV{Vu4Dn7_F)ZrwY?>7D?I^FH~9L=5n6i@b3+O!{=Dgp<@CNd zm}mGeW(%=_+rPHfi*P1Q$3<9fG|(!2MfES@Ky+`fpAc& zW2YBP#suW3;GuhG9 z9hzy!8d+_v55LYWPjgCu!1;y~KJQ zeOWUWqO|!#u8xgox$BSfIQo@_wR(;s90*npCW`T~E*q9s(2>xtKh0We6X1a4wW?sP zyUu`uRuuaMhWrsj;bc0jpC?K>O)kDUG`(4~yTy>YjeHYB(Q&?%S)tLUXH0!1dH@{L z!KlsoVZTA8Zn@~seV*X(x)kptxFCk)F~^AGrhD@rTQBCa&5m{ZrGVR?wdC(#`deLn zUrhO9iemLt$g@A|pKmOGe(u+3$T(VZmK~qq1ir$6o&!>xO-@XuqyCg_W{lvcfH8uI zrOk@|DcG()sUZ%9q2*u#LxNP?l<#GVMgv!z5yXj0ZZ@p>eD(i>0-o6%i zp;Q$~A#FfPpHJvcw16pl#r{vNSid6cy2MYi!c@yiocrp`pJ85IYyKX$hzLQ*u4wyP zZ`;&fR%nA`qN;tqiv#$&l|cyKf4lbMi%eSuoq?p$nIPhCdQKCMH|*sdg+(I7w4SP9$>E5v8#dM2Qux*FsWG;H?y->0FqVb{^ zEc@)KQX#C7H=|F`#nT(~*EOK* zxPb8V&M{rThf*Pt6Zmc7B~pL(uyfLJ%&x=-4^3#SKEM|XwF)GJ$p4EjP{vig{w3x_K4cwa5&0RT2eE)JsO1~ zwqn=XzJp>{g^~QXOJfUpbxAp33`8ob{j&L_C&izyu}5bL0-=-X`jgTC+@GIs*>W6? zu%P5GC|_2^Undt5w44TniH|BL5`~N6=Z~vSXjAay%OX041No7w!)`Cmk3Zjq0m#m` zRkXPj?And#s9*1xqF)6L75gj{A}$2=^W$?8(boN@3RG*#Q=i(iR1vieyw$%fs~%VJ za#7U>26P$F47;2>ZRYcB?Pqnp@6r01ucWS7zx(rs4%)gIKGNLAnVIP>h} zfvNSGYC5gJc*_%<^$WxRy>(9$MKyTxiFAK<;kd`g3E(@46uiV!59oq6m#bhjk%J^U z(=Y}nl1KNzmT9W%%eSFqa}MdvTM(0+NYRMo#A z=W(av(T^&;^E+3GX%7iKw1U(BYyog|e~}|S;Hd9*%8@`^)2)lE+7o8P5}RJ7XaNqL zLDmF;wjvEmcORh({!H1%Co>b)muM6PX-P3qgPKVsGoH1KMW96E;EefWP+Gqzx{q-( zrHLBG=4cLqb7Q{iiTbL9ZeTT4;)fH&vgJk2E$gLrG00@=3Z{=3-M&6lI_Gb2SlMab zYPwKGmz``U&KA}psYpE8Rdo9~^=|HDs=g=Ca2nNrFF9yaWoyMosSo>wn&B%3`DAFH zUYEmzHrnrKVi^miLXSy{X68amE0u$3i#6q$eBXLVP5mljFZl1m5eC0X3o?%x;5B^r zZCn^GR?C1&fF*G~6_4Mn?FmDMn9%O*gxkjzj4@C5SgnW$o zEt%tQMqa;hKS2tR$D3y-d~2oTL9z7pv3HnOtbVT-*DfEr>#xxU+Yj0F%2WKwp>=S} zYEKDDLHsMzP99U7x}1ksMeVhx3S_#?*D+FTq+71*8pKA?D-DnxqcR_>zhV?Qv_5Vi zE@fabpSt9$?4SG($Moz#gi>R-C_M+0&giMA6!zGWX*WdB%jT%ReIWDjj6Dc- zMCP=%oUl%nb&_>tP?Qk=FOgUz--pN&5Q>xxYi9PwJ$YLjB<62tiu#+Er-*PI_Jo(n zqin93#WFW^n1X&@@&fYA+^x` zszd;`)4+@R;kcxZm9(>g!^a}ep`=EO7a~nTO!-=(@8P*8NX+f~iw4X30ON@?q(mT# zWAJZXl)5&e`~yWLQ^{mSmz(ilX_36#(S%v|WM1ks3)me})_=I`_~1V{V;F{93sJ3j zGhDc%5Ve&ovnddi z**~r|O7))7pH?5O6n$)m-N zCCRI15B(C4!O9PQ@Ku|Z{&_+CwH^{16~WC&@EuXbnQ$oPpmr`JPn{t{h>DVVjc zHkQ$)MDXP%6X(N5zA9F733gcujAeBe}yXewF8tD4H5A z1*meqHB`w?7r>XxjwyRqG^>Z}GyO@Mp+mX)D@L3OdZU?Tai(pwrUsebi2EbmN+pB) zWO$+Bq&CgB`ZTrSa^=Al=t(0~`XCCQI82H4-#)8eqUWTBor`OB2Yg%r(tN*W0G z{Y}mlBhpDlds($yWpV&l_%9Yah?mbYhEeh>{3j7DR!{f^(h0-7k#Re9q#GL<&3~qS zSu7UYE?Hiu6lHUoEF-H`E8(nX#C`0ryG1nDUB6nk5J==t<(8o$n})vfn7wp+9k|Vg=A~vK5)~o`T(i7u`-sk^qp?S4I!xeRAjB8eo@eLOh)~tipYex)<_atx$b2u%3bChNs0|>jjf`ORsm6 zaZ?E`ezkeA8e`0c-YO4?oKs9V?|8WAA=72-B*8mowVA=%&6y* z=2%ret~WCI-`!)1-{~(z`WtV$4_&inTm(+TG>}HU+_6JjrFX6rgx1e19WTM9KgfbL z2)JnUpY2*@HH3J+poFg^H0%B;bmRL>?7y2#bAZ;7y6_HfWTh}_a@VVSTkZgmSegzqmY8x^xbCvi?TlBuw8bmOC*LR2vwOgEppJOznRxaKnQRv(RC={E7G`- z5y>~Fmr3z9k(;8W{xEJglOS(HYT3ay=_!-X!U*hp=*EFGii&8l=KT&?76Mt-n|;Ev z!d0l)P7XUMa*|bF`$xdo7`}Q+s{Yc<{dGvg&aTbEmOj>PMwk(>>~ZGvMaOT>P8Y$Zlv;k+Vq6=MrC68cVFTS*XMN^yhHKZ>>{R~9d84GUgF2K zz1!jA!RSQwBR86yd=tgT!i>R)G>x9fC>bW3z2N!t_mYl-7VbQjzx>g^iw{kI7WwCQ z+joUBkICO!JnOO_6*3 zh4Nt<1*#zJ=s#kL4EGJ28NMh|Q1n9^jFb}!gxk|Cc`6LVJ6h4f_;SXzgmR`c;GSFLv~JvTP;j)9>o97*5`i#AN0XaH&M7pC=u_q zHq$(-X46GH>;1^PAchV#_1{F)9L^#$R^s=M7(cL*^;u7o=oZTYAnfL%@46;-vnOxnadU~<8xxiT8T{cZdng)ht> zV|dE zmSh>$yFOp*K}iED&qFTlI6NR@UrKBs%S!gOrY74^iiwJo>r;KD}ImH_KbfM|AV7ZPX#JkvXtz7I>iB`47(Nlu{tFo4F z$552!w$52s%yBxtR)%@f=UFOGy(FwH7uUrH0l4Dbr<6Z9saAK-6Q)3~xTA;wu@kAn z=FSLZ@;WM+9MPwdKN17s4}{C#ogPiWVAR$i8+u6(&m}~6jt`?^;A}{=a2KCjLvG>v zxKzG5=Bo7zTY5IbG1ZU9#??11pF0U`17L>-Oz1uICH%oneT!y%y1uj3gE1CT&p!8W zG~)%2^4ju}MSnHoQJ{W`;q1my=J`cP$GAU@Pp#P5zX&sdi08TL$j$0pfxgW=^ zUD^6%{ZBk9IGP*iO;~+evi@U8l)~Mj>jK%Zd_sGz@+=;gJuQ)gpmtDONWH0EStvn! zUGG`4kjEt^ilW`ambf;e_-@mE(h~r>l_#~zmc|ISMDGt{&{~}n+?Ean|D(xSy|_o6 z!8oqyBuN>!?lEb+$n&PqjvO-qm<<=zW>-Yd3XOx>0>CX8We@fZ1ZM`^4W{)F5(69c zOy&2IeiB62GawwzgsdAU+u{X^=b^imk`toMxRUq`cy2+3Ip z5K0U}G|s>m#}QUS>lbF43mR`55NZ%F%4sG9Scr4trn{FKy1YVbv>vyFA> zQwGZDsHCRlo0f7%j_4_HMUcjyk~23N*`s-?P3j&tpko}q8Ia`Mi~HDQ*q1+|gCOE!$(n#*Jkl?Iy`V0vP@9HPaUtE zU*BJBR)T6EPI@S%3Xv#pGm4QJF43)n0qmCEk9R;|k4=uvrzg4nP7yg5U(wmoIU<59 zS%8F;Z0xp;KfwCR5J12IvHZ)TAR;pHLB%S0o#v5qfsrs+G3CV=6}7)z;8(9A{7Nx7Kwp)!W( zw(M^{%g8R31&TQdg(De{u+?t}6(RNCiKW_zr`Oci%qcwCsLts(<^fj9Zi$Lrcdh+w zq`KT8b4;LU@$ia{1iDQH0ix`*&V)lRHs4%?qxf8LV`hf*xjFG&!7B^huWy& z&}r>5kMbvh*FE+8;3P@6%WTYbn~SHIe8d1c>TNv%t62+H^d(X^F|;U5V<|}A#*Xp? zNEQE|y29Rn(lt|0#Y2)2^8T;q`55=^v}@k1^YnW!ItLqclpq88xWgO+Ew3LxZ*R=*9i_c!iz?UeS z23owIG>Vr1O2fGmY=z^4*~hf?92jL*_;1WRNz3^J#OyR|0Kc`Yw9D;=Ih(`HO1jmM zcOOKpu1RN#1?{e=y=da6S$i_-(^pCMex{~v?~FwD3^k$>wHFh*wlG^tV@I`1yKTI4 z>u9+mPwz+ua(UCrcVfFj0Ywo>Dm~spX>LQr9*i{!DbeQmy}P)SX$lRB0HC!A?efikQctDP#1kY(#!e_T9-U@2;OXbne3 zP$u+xopm`a<|Fy!SLE zex4vK2sJ}M$!2dY&x?i0iKM)!Gi-GH(^g7&|0)HkcfR0tue5Gf*sy-<%=VS4{!Qe@tlnREVQnh1$`rHk3Axb8%Hf@yi!&2Hk}!w zj|;;<>(T-sE7vMl8!?}Ljn-=Oe+2K?xI{tZo_9Y#Bm|-+c=)@lc^C9YX59&VHD6La zS{6-^RJSEhK|@RF(=ojpl>`?Ft}mD_3X^lj7Rs)~tscZakX+@JcNxtIJeuVMhP!=${ z@Fq*HE@%c|)zfish}_!bu3HL^X0-RS!$AS6t_2A?=3Wgovc+QZcK zAq6uXhVKt@;+d-MTVynDgIgRRFs;PI~E<7j?(hZKg0uktgplR{rasreN`GunewLaA1(2i z!ToW;ID0E*tn@0N*PS0P{98O1ig94Mdo9~2aQG^5rP9>qMjD~auQYa_?|GK+dl9$) zeE~>_RG6>#9GLA)jC+?32%#!WBBdsnFYE~NW~PqkOjwnqkaBRyBj|BJ#~s=xtHB?5 zpUrRuCwZfdBH_2dba zxdd9nuz&d4nEVsZn`m8fN@gleKpGhA%a85Cl+tbi!5#b)dTz2h578Zp7cGLdzu)RU zq;9X1?joOEaly-S@Wh6mDG09=*%gIH%T*5 zf(DS?$3*?>fK<5X8%u~WKTW#h{iOthuc>Yn3X)}@s;t zcG9o820}_Pg>Nu&38#`nQBW=|`i0iO$Gj9}#X0^5}t zf_tjf1%kRd)nTZjRTNk2^K5szeQ?aw8X9x=^*x_eCKi-ns&lM(o`YWX1e}_UdZ>Fp z-{g&upp($t4kNowSi}S0^OzOC*q;KoKiFx)vhxKR(xJIwrYgYH&wRTSo8ByVzZ9?J zf*=nr`{}o{do_oa#dyJ{!NwfNdRV9go{`+{ooC-8GFKrj3roXtLs8d%z+1*(OqHA& z^=Ct^SWo}`j?y+s+yM4-gv(7b!N{3zcOVm6l-J`? z4Ghi^R$m@kNkRuF7*p(lJb37@s({c}Ij7F)Efxp6`7@p7Gg^V2!)`&L^V1;GY>}91q3Iz&{us&{$j92~qAU z#tsG%5r$UnB>9S&12L6aC1s}wh=b8O)JTzEm8C3tis6Bn6#FoUiKQBeYN!&Q+G9=m zy6N-k25=&Q7}}bbG^RLMUt?~%L^y}uGQJx2&_@TNYg4YFpOpEyS6@)S=^z(L1e!Sg zCADm}pS}G#X04rk{Alpq!%TyVCL#^a4faD0E*O%&d9|O!LkXwpt&y}MrK^{9A_Zuj zX+xAOyF^;z0`beDLna4N<|c_4!eyz%HzX$w&;}~YQ@dBsrs?bJ6F7&IC560)SYJ-P z6s7M)D!6x&w-tiy8+n)g;}1L_c22&+dxb|z(Nje6nIyarwM1W4#epUoq66Ow^QZ0U zt4UY2l{CRb84(1QMyuMDr%&e_Y7(N90L?%EDNZtRBcTV~Jf?>$FLvdg=bJs^N2-oq zwm;_ZO7){={gv`{=|c;Dyr}o5nl~)1a{J#nCJvUqx2_j|v3|~=)Nyy;FSCC{Qh*_cFIUb^_Zj=&i?)i7I4B&TO4M7r^I^Sj>4y|&7af)D@1yX#F(?_q6{h2e)B|X zB@-554|@0B<;WpHd@nXCM$Oymz3la1H*6_)Jd+)I+4Q6MH?+c8jWWImcxI;HxN zN!;UqMXY}#>f;U;K7Ctg^0Mysd&5e$V{O8z3&8)~=fLxKcVWuc&F`l{McwghY}0Xn z6Qe=BL}Y0w;7Zlo$IeQOku7WaCAfRt@a}6?5!2);8pCEmOJtirmu!kw#=3n$L#MpZ6Uhea=6mxRYja{r* zw>U#f(XCpbe&Hn14W_TBkJfFV7BY9Q%_WVdNQ z1D4VN_7%>So_}^+-`MG#so8>9>D6?BiW_M5-Tgy#gw#}nqbBEzpG^CbQPL*KJQ4+2 zWh|m9_GMIg`4`xs8droqW0UtFGS}66trM-$Ih6I$8ma%S$)Loa7mH<`6>Wh-v|VNF zSb&@g=k0KYL;Lj{k-YWMv}CBqyT_#TJ~;R}75`aB;rrTLmf10+)HwwnIa_Gd_g)Z{ zzsYJDfCMnra6LW$?l!HtSHnmNeo4j?BIh2rM@&M~mE*&10487aUmK3?e$!;?d3R4^ zPw`tcAH7?+f-ewM#^@++DX2~Qy~$uHW8;Yn59{lv95_-V__cBE`w@U z(da1b5$Mo3ueZxo%u70WN2A0-(r|5$z%bsY#YO5$gI*L=e|Ct5M0SF^K`wTvg*AjZ z?MwJcpCF9P;LEm(CE`b|l#6L868i=514yGf!!F98f!>U?WM!A^%o-!Wwgvp^a5Nt- z)y<4ALUZ8w{=W16Gh5Rp^+dZa@^UWJD0U+1TvQiakC+XKkwga(B24tiU6!U%tX`SP z^rG2J4uU4k(sDKjG+<(p*h<^Umbn>ZU^_sNn3eS|hFc|)&o|VXyc{)*^ONY{xl8!L zm9j}4B0f@%px;<7G~G+FO&luNNdGQb_IVZE=lbSP>@9NMs?i?!?%_7H^T{#0=|W~D z^l9MiJ5^x)#eP${;=d(Pl)}$^4o-qwBQ`culz*S=8cg@pGTg|wtzBHM&GXXa@W+vi zZbuQg=djJnpDp3(n`b#0d(+0!7&JK5umq;nG%$?AuAs)#ab<~n$33>Gm`DI^eH->l z$K9xrFvKeCxxQhLuX$cD3J9(8GmJs@u8AcKUrQh2 zhkp)gnayPci;BH0phjBOFwKyo93eMNzsuN#fktxuxpiv#rb6fU+t*{ozA4MeLa{oT zo)XdV)@wI!mr|_>Rp?f}pj7e9j`#{Pp!sEh;7vwr<8j~Cs>PuQmAdKyAs%DRQCQ7~ z4`I>&(67cwjUt)E^M>Kou*!4{!lK0mGMtt`n>G#qi> zYnc;uB9Nl}jj;P9jK=^uk`Bn^>^mH^*+ z7!10Ykdjjeu#Z$l&hLz8RmeN-+`-m>d2wT3e&wjA==fpYf6?b#Nz^%riyrpOV1%0yJQ!kuOqCt8BT$f>~eHhw~R=LDg1r7^;am-;C`F@LSR9%)T?{rp-_K1ON~!W>)<%!HPUcaaK6pLUlz zJl-Zu2wCD3`%`8YVzf#%iNUncU;geDwV<=4u#S>l-tTgAazG3|K3Tdx$W>-=V=-UC zZmq=2*+))W71j8w_OFSyX2%+nF7?Mb*u!2JV#tmw62` zMBEr9#2@#(Izw5QIY0f8dJ~RKK#iXhB|(JbyEG9h2L9SrFw~P)XcGm}q~>4C+x+E5 z*Z#EV-i-exU$G*_9R>;k54o&**emlF8g)DeJgCT1krJa7oL^L8>dM z05nva@|rvCMijnguy>7Y*)SW^M8Ez=;&lrn$q5tpuqlU&+zXVSn%e7D+vO>Y4)i-I zGlrEB_kx}fO3(z2Ix7?7gn_n>H`IODGcDVkV@FC7Co_kD>Nd@e#YdesV|{IW)2;02 z53UthDXPQ;OlHa$&#lW?(w{y;+%`ORr+8nK{JKcpRo7xp_v(i`GVN1lRs@ThA1ynERfwhx@+>Jqb zb0#IUs)mbO=#=jh>`($$-x^ZmI7xqC_xepLa%H2nU1?K{Zv?GIve=I)Svk{Y%@DrjAgvCuIFX;tP5wEgWMA7wGw0VpD>Uo6Wvf*bBgMi zthJ#Qf@F~R^M-zW*6sFQA1`*#!CpGaBJ|2mbL65d8PCkZu#)}gQ8Y0@C%T&-N?tri z&Y>*1CnI3yV#}Gzv0&tNQtG;HknzM2M*ao8wZ{cJNcB}FQV5;`KK2!<@}ko_WN5dymm$fMNdjDmze$p9!l$@9}J2{kF|zjg$EpoeQ8Ds?&tW*^&;7EwLoJ96#u0-U%fXI3=IQjt7r z_|h-qKkMAG-GEbW?Smk$BX323b=EOWY|Y*`{hJWCVg+hp7I@Nif#>?a*yKdSrlAM& zYh+T#vb*+L$!u;E!O%+`H*3fJ>dJtq9RleWXf}|qn+t8kXnV)4jhJXEEgbC}TfVoi z+AQa|nYCD>P~!K@$ykqh>=U=zuzh|>Byd4|3t@&Z}P{!fWMmvzWnsz%#4Y~ z?)1kQg!TrBxK+Y?7!_k^-+A`Xpdx*SM2XVA-`}Q~f;ri{oYW7ujCEXmk{0gI=2Gs=st1X!$HI>Xg;dJpE}#U6Kae;fFggkMagHkzqpWif(LWD1%@iuS$+Hpvb$w^4sSO!|5W zvj<@c=y=F!+)gMRj3-O7(fh=C(M0ddwx$k;=e`6BSPQd z$zLJ4TU?OGV*~$s>bxTz;@?NMnF8&1FT349mO0@9_XY;Yasu6~Pv5ct2xoR)ek;9@ zH3q!wpQdtKPs+cQ>o2WrOR4nZXrblMS$t?BjQLF5b5E!8Q)k?YS@VDd4{b%Mz*)PP z9Ucro;}i-tx9w^P?a75>lezyBc@U0=)GS`VFVcA~*OMxw9GF_6V*Zx?7c_o$oZTS6 zm$K?7N|R{*Vhd4S{fyj_`y0-(=Z0i7@Lq_cUs#poDi6*AO7k9R3`q2kvz9-fqgVH8|5VSEv3&A75!Q)N6;vgCDq>U7B$1$ z-I8xY@putge59=uzT@lRc2dkDN zko=djLbBFdMzl4$PG~YwF;@*TNUc3@;+_OtbIg7bmP==CvEEE#>2)F&G;fAXWBraF zJu@jC?SQk{OL_SfafT=DwyW8Gx>b)=ae;{o?FZi8sjD6D;Lm<)1*p<9m6=-=4}+^$ zhe|g{cGbxdMKp;RJT!<&dN|xT;1B&dozta=u>LH^KW(oa?`>Z>T|k5Mzmx3sgxkKG ztzS8kL?wxZT(j*0fy1X5rD;!?Esh}KukObfkfJg_rwN}WZT3}`VzTzDMbC;artz!z z`(n!ci^yd8qVg(#TcIr?JXHGX|Mopc_J z9MEekHm=fl#mJNmeV>Dc47!_=h+U;%9*NJ4r^aDHBjf7Eo3pbsq3ujKn0moC!o7v! zMoRBU{!RtWxe~~&Xw`tGUG23t+dM#G{wo4nl&UoWRi*+p^$Z$JEt0SCTuf=;r=^^^ zz^sIk#$zlodtVVG{jq1Vkrc&-T}~ZfpcEgshbpy&Iv1q%o%b`I0x{WrqxkzgAmlK! z>Uzftk4Nj1qsS~S8L1;d(2B)g9}u5UM^Z!;U5P-N2Q(6w#twLKb{h_-{`+l-s7gO3 zHuMFn?cfqlw8#64Y8_IFP^Ga7)S7`r4RP$?qfH|TXhN*pBHCH5o!dByPMGjVq^v+& zzKZw$OV~eP$HY(rFNV%&w|ra8BoeGM^VzGIaK8hB2@ut~bcuzrfM44OyO>G!GUiJR z2|<1*I01>2Ju107lZF;%7=P}b0h@iv6$`CVI>mEH&dK{?x1c%$rXq0gEpNpFyYjx}VssUQ)|^P0&K z{VMy=E#OBX{7yL&AT6DUWwH^E%04uC-rx9}YdaEcN=D*5Fa4Z#$Tj!}tPS2>LhIh5 z7;sPBVPyy?;)CMI3m!%$B^O8@{84aLm;#=EsBduot6#fmO_F>^6RD4J-2&qHCr2dCZ zZ%4E7B$s`;&+h$Q03rCdB*xgK^+}9BkUsKhs)Pt8w`=i3!ACc5mi{*e_uDm+y0hWh>Bp2##mrsDV3 z--b)E7l&Y_Crk`>GDT-d$i+J&^F6-lg%56d8ADCCpVsSc5B};2kg1EQP@6eLEh$jK zlunSW*TWC)SH?oJ%4k#v1s>p{#o9WnFeS^$`K;T%G=BR5yMlq@OmkZ%Kdptbw4KiW zzv1U9H&hLychnI*)STFT=x~0v*06qpKn^2#?X;7{(7j!i#F8BQEdsy8fd)uoj9 z!=j!6eKKV3!)C=$^>>RE6>*#A&63oItdH60Kk@MPhxwWD3U&$7gZz&n*X*4?Q|BHO060vUy%q zJjA_?QG6J-brjnyOd?`6(D`ea;SR>5#~*;jj|wU_T3A?InUP4hE+2+areBq^9_Y(%s`bi|<+ znR9+_!TGds@+Y%bEcA-PSqj*TC83uK4^|}<&NK1xvaE(p*Ru*pum44^KF7M1Je4IO zXGN#Zhb${T`!Vme_xY3}|KT%V4ArH4$^JjLQ{S!vSz z^oR=dfiFhZ?-pBjM<&DX2{5+46m0!dso4-W9(v2n^_vrk<31B}o}w-pCg5ntgih`) z<}g+SU&y_tFxnpem#lJKa9yP?Ecz#8)mor~{NGGEOoK@y2##(2I>p1el)AilL>bLK zdMTVpGtaQP_N@xjzWe%^BLV$EOQi62nxM-1{dr1X;6F9N3nj#gj~eZU&nLo0$4lOk zy>@H#koC{vA{+%|{IGMWcvxUJ@b5^KS32`=a=_|$OcyC$l31&URSV9xIIya(nEgBr zY2RWCFeW@-tJ4IRUD5TzJ!Hf8RtrAS6kfI%yjJu+UHV-f{^}lnpW&M4{3FYK!${=J z_<963nyN-Hj6q8-kBoG_j@5^Ng9IZpMpZK@a$8KTkxw|%TJxtPdTSrSz{5C0jQ7ek zjgjG{k(yx6QUi^145AhhvlVpP=*FJYno5S&v;2*l*5nNr)O_Axcwg`c?Fg>V{y&WP z->f&b-Ky0}QU;tw7!|45X;XJAdY>J!R+q7b0Ke6WmKTPjC}lImUOXI8o6V?b7h}o7 z+YnKNkx$;2R>z)gzGTdPzc1_i@UWBexyPHIRZ#>)r>g->K!%e0z<_L?1^eH%KM^sd zcCU3v0UT`%7*~YS;fUuC7b|1e=n3*(bQLl@NJ$#=R_d2;&z01OIu23qZlz{|>HtVJ zm5SmyiQO-8@oga2rxTQ@F)=;~d&W44lK*<+!d0mMP`u_>y2F5g$rLw+)DVivPVm&% zv`nKY#k~f~t2TClV%p9{B)4gh=-OZ3jG{%YTiBVnB&ttPZLEq-j5&rt1m@D4Y(wvm zqo)sUG9*34W2qb?^>u%4c4ZY(DvG}xg>=yENZE;1x#tSRs3w~+=z+BbW3NHnc7gI9 zJ;)8oMkeS~GvH7+tr=Z72Qrj3b)u~bUveyVZYe#s`F#ndmSCOc+hpMD(G}-92PRV# zYUc0C=G$0w^M0K^A0|3@@2I@9o!7cx6GoLy7%H{)Ihx~KSW!sPXW%o-PeRC6VKy5w z6q0cPmJud~Ghs;o5;x*-^G{yik-HhzWMei|Rz5O`&8rDRD&-hzKpAqk?#whL4TUx| zD%ymv*R*?C!mJ_enE8~g&3^OO_&e@Jfnq!NdZUz%NBQW?)gNFJ%Qx&)WL*EEMS%c-VW57r^F{vdu<~;2Sp45@Qj3qqd_6KC6P9(y zVT!upKOWxBY{L7LyqhJ4_rHNd#$pB}#T1Ts);St*qQ`CDktEfKdE8I(1KB)i-K#xa6#uUV>k-zdV`#!zBFx8c3u;860Si z`a4@dGp;9UB9(owfe0IM*7=NDKKpGsSjMK}9GhRBVXU!3QE-{>eP)eB|C!RWzE+dyo-}(GuixoM+t7?|TGNESTGRH^(^6=Wtp!*6YYC zu2ydj&!5w3E&KSXKajS;QzNzT0ucjVw{RYPdZu)9{hUJ5(|Bpm@qoRX@dJa%swVXnzRXR8La+V3l3b#-cauH#Vk^9Jx!KU zR^2BSjM0J^Wm*i*Ry)K0cF#N^k$yiapZCReKX~uy+o>kKp;_!p;oItG`RoX=Ut;LE z04Q=FSgYZkd;p~hh(D7X#=075Gz(PnxzR`fIz|q&e3fTcq!^H4nGU#Aj&E^Kf2sCS z;-|%_KE6!++1a8{9?z=;d;hHQ@5fQ(SfzNsS6;M+yE08L*0Vw{+oN)}Azuczi0%u< zugzDd8PK)F6}n|wmc#uyt1-vpYLS{72Hl;qL`_6e`cT0*GbJKyj<}poR{aYxsQOr; zvI>?fbAv0$?Uu8nL;)6GWnOy9aHSEi@!bHiZE7@BUh2EhELY(hi(;Jk8|^(U_ZX)T zRdzfK#fgF0j;H9*9WWm9dw{g=32z)jABAGe{9RmeBSI_rvUvJUTSZcKN=5*gD!JDN#yxv~h}1O9ziU`HY}Ob(j4EY1wD z^py-tWwge(s?ZOsGyf+?$SWJVd~;dBrqtDDLiq@@Z(!M^{pe2;PXJs6rvzY~EkyNl(2p z8WcTF0*Ej^mYvXQEi(dE6QA`y889UqR>W!%2z)2Cp+#zsaN|A`G+ zACTGkILBY0U_4Rq#iY+*@GQ>O_P~C>hdJZn66_bQ3wsS#XrpS7NM>g7Ey(nH z!o2_5I_!sRfh26!selvfSv%8-qU4Dmdv?v<2r=XwIweH_dMzl5pPwzl zwa{pcPPCh_JKW}eN_>%gDQ7Zq(RGcHn!j)b1{&ll1lh6_m!-xj!G1FJ3WV21Rg47LK)i5ncBbFjaB3)H9aOD zJZoPxidOec%#OO-=D#MOUL>QwG$T0$!$U?>7BFSnNxvz@OSflVXgGZDZZ-;X6Y;fI z=)?@BZER;?U(@`(ierd$hH`KF@Cf$?IqGv<)5gC#Y}N{pG?o0b)$nx9PbKMCS`bAj z`EA`$9w&#LLRS5n@GHXeiq=MDj(tDfK9_zt|D8-{h4w9Hn+mb%+w4tqCyM)bn`B=e zflE*V@41u=OAfSvUaB$(UAOAAQ#GA)}lIpSCZ9HM#s;bjo$YnM*N^=SCdTxOn;=HT1 z=0m>+#aHbUXmBF-xfXdM|0Re{F(`Guf0>XDHyD}YqPuXjVFuoUAD$43h0w+ zR?FG4afNHskE#_u%;jSG+eg1AweSPWi2dKSsI6l;ji@6~b+V}AD1`rb|NJ9(@hdfJU) zWZxFz8W3Vcs2W|)HJ# zJypG*Vl-UUB%O;NXeEnt^f4d(fst9(WqgZIL!Qa)2;8G>vHAmhFidKZ+7a}3C%ycv z3k&v-iXQAcH4;sD)J*5nY+3H*2Jb^#C~P{B5i!N(c0C@Zm&0A|`pVJ@`4ySpW}kn1 za$zvUrwPsJI|o6~F%6br=hMYMW~aY!(NT!>SmoaBb`yGQih`f>TTf3i39mQKuzCMB zTqn5cMDv(BAG8P!?;OV}nyv^=FkgD=M-8)!fY7}{EqVs`vPTdiQfjGEmmt)rEA!yX zrKlYA(XAZ-V+;JE!e7e6w3XTx&l{rk*8MR_Kx*{pZq8G>h}FMGvD7x+sw>gs#9rO7 z4&VRnMCXdIL*1DvhXWwXLD=Zx{k*?3?Mf0O*wSH_FH$w?HH=Z}ZlnH5E_`>N0{f}4 zLT@2INL=w9tW{&Cd`O+JLgy8IR`^dv8VWb)w6lZtK!LzXINWMtHRrNQKO|ir?>fou z;GfpD&UQaxH%_ujx1-^`OJca(FY0CaE;>beWY9DZ>H8$-FZcixkoW7k&E!9k&@|hm zEnAIB24UEVDoI>rmc1dF#X>ylO1INrb%F`Tc(&)U+;aM~1WJ7rz)q9q+30XO_0+FT z@2EA^vMPQ)-ilmNnFar!#G8MzHiTP|Uq9|c=bvkMe@l?gb$G9p1hQg#W{*8Ccwu&e z5N~umkl)&0HZ!&5Ri-bGXj-ek-E^!0D!e`&?CkW|1+CDnbu}I(i8(y;S)&i``qJ?^ zRKnkIXLu%7=ZY_#BC7xAFQ-_)#VfX)Xt$vENiokSA}s5@n7%gI)Eh*Yvme6MLkT(Z zzO0_BgQsFBslSlXnzo57?nV8iekz_K6DqIwv~qSo+yFEH6k1ZYPL5 z7qbiq+jv~9ZEn9@sEOLq`v7jFCoS~7Yj~IhgKn|^aADSW-}n*WJ#6IhHSbrCZ;EvA z(*+p!Orp}N3Vp#3!f?T7!4FGypZBF4WwA9sc4hE-?7nj&xbTL0S<0X{4WuyFLyK9{aRU$wt0U5j!B~i0~`#I*rv9#Dj?Z9~x~C z8X;OWnLN{yIsmdTgehGFJ`x-gUaqE(F5-+{fj$i&zi*Bz9`!CHeIaN02Iu7?Wd+j} z(WIXslPEp(0jgKF2bH!qW8~(0C4mSSl;%)ED9#Vk4lNYeOOg}4>E-k9{JnNkovh;7 zl#s&CU%rg`K1MV-`ZhaRRHwa8XhQ@Y-eCh_c3lWs`VJu#uOXV41~CG+KfOwMSb1 z%ZO|mRm8~_g`15>DP)upgiw-a5XixSrMCu0WY>JbrtSf$oHpG~+gKWf=(4`G>55Cf zcoi4@Jw-TT9^u+?DD+iYne=1GdrU9KN!goy*vVzDq{b6uA&7+}Ss(}dZ$ef-FXp;! z+?=4+L|!pCGq!Ui2a;UZyWbvSClIw9dS6tqt~UzM9ot~SaM$mRWF_CECD5%Thozfa&Ie%#M%86QE1@#;1$;=UjbHes{i z3hTBNR)RA~cxe7z$GVS!Y+}Vo{W^L&Si`KuGS}Dx6PkNX*Ys0AJ59bTny{UTkRXgV z;M{o?)sX~b>5z?q^s9rvvc&aBWv@trEl53|Y#FkC4I~qnx_4^?HoJp-`8uaJ0ztpi zNthnvx#%&V@2DiyvDgAxTn;cs+HhdD`ow?(hMHqI82Xp3Xy!1IB$=XmZm0Kfvyop0 ztIhRZp<67OI%;&pRmxJqennoeZ@PY~9*MiW_sH_#(_rbX#v(d( zS*YDgs!s+clN*>i9FiUNSO9;YRzpS3-Vmn~h4GXY#In`Kh~A(bCNjBbtxqzJ*w0Uv zwVeE+r<@6B-2wt}?nk;2Gq;Ct&(UhS0DF^(R+3bwFOHc(g2mz!yuZF_yA{GGTb={p zsrHM0FEV?nmQ}roV7A8WKsQubu#-l2jt2K-P;a`zE7M;hyC(>lU)4$L_in5&JbOpT z2!Mpniww~<&2#S}eL65kF$hxkL72IcglA)R+=tDwxIV#eo^)F{>20a*efl9TG+zIo z*At@zS4rxu1P|OmyqHe=gPpCOn%D?*86j%+Aq=3e_}esV4ssS-xS1qomXi+#i8u=) zFOY-Pl(`RkA>UahWifG@&bFIAWxdJt-+OKss>9zFUIy8Svpn~3$Y zyzr(yoBy9ahMK$F))M*Bc>0w@A*y}QG5z=0PRE6i;jpMAy^{-+iBgdSNZbzi-Dok^ zrzo;^Nu$N*ukofP_zhQ)&c$#P#(LwNBLQ|7^}*u{7iIzD4~`J<J-yO@TdKl!HV^lC)I>2Vs z!i#ab0+1*`+UEeC2c8N3HgwzHaoSJp_#^wFJxzM8xOZOGRncjs7D?O+UF{D+VoctbWrN1V!*Do=?yvR>k{eaW(rX%b&rdR89 z)8Zl|6>9hef;G!S{gyqf)b=c3E$WEiCWJTW=cI7CODkv0CN@75?yALs2G1B_Zydvf zV8TMkfh85gc?Msea#Q7m*w%q}$0IHEor0ZGjDBGlm=2mU*bSrxGh(J*Pl!DNHQi<< zdtTC65dU!vhtVaoDyq*hr~xpA?R?f?yinGQKIfa}$G3cKl(MXSLmu$zto#TszTP)^ z2{k-yeePh4<-!q{#fWBw7`pbL3d0I8M?*Biw(#Fa zvQw*pNc_v^elJmk-SXsyYXo8Nz} zxXt_J`*O5kd3GNzzA2-%C|k|Vbl7N)u3<{!gk ziuwi?$eI--6_>zL^fEL&ft0Y9NSpbud_aHDfJ3<#C*4&G)u;cC1o`wzEzH)EC5hzR z=%>nC<{$0TOY$4gbGokO;sN=)&KlCd-}huVH855VHHOX08Bq*EGg6zjIErcJ@E&_I zt6MNHY_*ZIx$?d6`}Jt6e)>j?G_BWIv%6x9A^mpMOf%T8rHY13TJvH!6|IgWu2IvH z(P_~d8VG7F!vVn?y}Rv@4;8`^5n}j|q$n;*!nO9u743(F0}66pqU%wkr#_o_gCNhE zSxcLeM4YQQt)rx9Pw}nqtVxtffQnNpbj(S1)kC~v=|6IDb*98H!#h7o+Q2t%Ltg8_2;3qV3$*pT#HF`}ZA-Lb;c=+M7O6Xr`Iw z8(w|j&gU=lZ4hq!QUW%fW8v(sN-_$L>yye8d3UsCFfthX_Qd@HokNyQ(Z-m8_^gS@ zc|Wgugj zxcZC5FL?a6xV$CULm|pQobva!PXQE+d=BkTb)?9!XzBx%+v9O26S4n0Oo*3Cjn+y6 zO(SBrcl2&j#Q63-r4(CM_&zis5CwN znX4a9oAT-$_vEe3Ec#^Y>eLqPHcVx5?9MQ|#st(fr0>0vLqYwnIo(^u#I zibpQ_lqECEHe7YqRURe`#p2HcZ+5t>8FxPds2!3rf;yWT;Dc1k0Wg8zQc7FCwXyBHy6|=c!dvt*_7-jJ3c)}o-JG>++)Z!sNFkl9PpdV!e z_fFqpO0%QE90sh*?)@nwE~Nk8kmVv;#0v4Q+M{-BZ{pDHtzu4&j1ni}SqRHlXqz^N7`Ix4E(vf9$Z zhv9nXETTp)O$~Gpx8G}_t)pG5IcOcaZ^u{5;qA*eR_ODe#pvctpv;bA-)Rx;>l7;u zq{v_b6xk_40ygU3Gze`cYBhzRIxqTq1;rz;at;2 z^82TB_T)JO<>dF~uBNTq+xd;W>zDr?$W74!fM4n>JsiI@+)tYNXQS;~DnK8rU6oH2 zxyH_w?MdU?-X@v7kY;{{cg(lDCNGtjil{UQb8CMuk2nU7C_050w}jfk)Xt zaW6F^5<|Y8--Y{X-TS0d{iyL@cNEwMP6){3L*_E6ZxGM>Bsnl()MWvNP9MgJocJ+T zB!GnU1`^II;syH}Mi}o)i=Iii(ON*Bi7f^IG_;KJL*z(igj!l|Td*O59Q<-Gj!w5D z+XTnIbQmZB)+*JL5*0$dX_i%qPos+|b5e`sXz!1n=CBMqq@n*2!~q?lY^Q~rtdoAd z&BKOy={q%JBF*+E)jM0ac}@Swh;|8K6h_h0V)$t&(}ngg>BU(ZS~T0fd)Bft!^e0e zoVrh1cIf7c56Uu$^!RVE0OKzO#mM3VYAKR}03h<>A5TZlZda5OO#v|^#)_yXG3bCq z>!sXI%qco1fzHS942{Dq&%YXXfNmgQ0zN$>__CD@{7se;Eq5nRs%E}vYBE76^=3H08j=!fDg}$89HC> zU9m!M{i2BjJ{nTTMu^p=)cIn?l1wWm6Wd}IqPf{FwMnF@r8_L*K_QSG8*yF6Kj|1}Z#QBkAd~jt~Aa_r`K4U#GDeD+9lTF(_vBEOLj+4H^g1+bd?o250FX+XICRLqq1^=~ z0j`t|7CKz3KE$(5-gt=G&qrPe;zKyH+haeR=-amDOWqfX2ha zj@;cUGH`acnvAxr(?w^hHXn%~Q?NH=IW9%SB#3>EwRL!GAT=%&c6v*Z<_0cZQgQVhsb?@;xw(-{G z$r(-2)|k7hep&`n`@}K{fZa%yk>dmUf2|)FcVn&S?4i(&RlR|(SGF#RT)yO&+J=ul zB`lb$%8_BfRm7+=beuXwxB%d2gY>d>zopWaWCr~bv7HDlXa5y_QlxEv;6@DhcI;{T z5v)DMLh%(pHRJHCM$BoJnl z*9zGF8#EQC?E6cL0RwVheY*(PE$1Y^CJzWu?7Y-3TNTpJ9KA6)sLUiv3!quCI9Wwj zRVTK@K`$qX@p?}^QIs!K$e$3svhy>ofu>wDceclv{oHzq3jjO3yEr2VX+sSR%~iBN ze6$fC7~Onv2m;9|G7`#Hw#)aRw?Er)}*x9u~Jv7xpH z`4vVRkRnlGCrx_LQr*-Dj<5-5;%KjwuZ8X6!J;7ud0y2bOo3WOXnx<|BC3)Wk5G)V z#xDeeVvF%=b)<*WP+JN|E6CQNz&4g5bFn@bT~g;fsQ|3J3SJLY#VAPt_>)ASRM@-1 z5X>|A4FM;D85P5cNe<)sl!b6S!r@K3B$(m0*i^M}gj91O)bY~x9zV4B8UfnP>bHCM z;H!52#}4N~(9?3J!*(c;`sAFW=<=}GRJwD+D7{<(@cSVgBXOxM(w5b~2P-e<38A_v z7()B@`Z#}5S-!s`w+^{a`A0No={%2LM!YY$2s_htJMc8J5M%b$NqmG=w0oYBJP!Fu z?K*DDKA(ZR@`|u`rBj$ed!s5l##61S1gUf>#MR_<*+$=oVeQhme^4H9V9I;YJB}7!)f|d z=w8UEE|D3I2=Q-w0fLRhsvM0^-CyMW;80ZCv=Kj)B&hJ;b*N*MI<3A-ttH=p^GaQp zQz*BlggU6?meW76TOaYm^QSn_AKk^Hx6MfH%fFHPtNZ{oaw0r^!s-)%Bi!!U(arD} zC3bvR(U^&sJPA+)+$(RxlD$;WfOt8z5X^&o3b@p`h5FN28+l zI2vcGKdOhNh*i2bA`o%Y$5x-19^v?+37@TC+O?yyw^o+8qHeU?~$%5p`uXlKuxPa8n1 z_3_;lyOGuuT*hK@>TQ3W=ENNH;j*3^r%WQz_2?N3P?lK4i<S576S%a<7WRN*K9u>KME4~m$eU*W@vPI=k@9Cd-!oC7v!$S-a z80>skeBKn?ozg2>vLcV!-|JJdxmR&Yg=P0z#!j$wx{X${g8pe+DYlx9FCrlsI6Sz} z?$(GnLz3Tj4Z!|q;yoysuoB4Z9ayP$%JkWzO`zzgB5)UA8pA4lnCh4J;@M@;1VSy{j|?>1AW zTrUpJd2tsGo$RIb26BT;@5K}{T*lomxpp2MAMv@j@^b;r&E?u6%6}eCt75?nNgz%8 z2*dSHk$CarO|amwp(kQLHafpF~qprPoERi@AbWc#vd_Q1&jf=y`rDfbFECr zxMhY%Q`9EEOxenZR5NXZM>xVAd>0qb1Bg0Q7%+eZnfO>UWyd$amm0i>JDfNHfL?-> zr8q->;|9ItXHr^WhZexU)>b-Kf9VJAwD1==xV$^c z?P_a`Il7vJo@VS{?y*5sxvy7_R%6GZU}rxG9vBe{eZSznqSTu{>k&f}+@cS6R4^P`|&8AQb>CIOqnR{|bWUOwUJ;MU;|J zwAKXvP&?(jp)1BNxT*}QBCEo2;w%}Sm{#YN=?zU@4URn;kH;`jBH6Y}84{TfR42Fv zRVKId_xcUn?8rUctceB(CF|`iO>QiSd>{MCb!6l{iSLiD!ljV3NO`;QSceR3l_DW$ z4$y(VC%uJYTN$?f94c?16vc$4R}bAfpMp|aWJv~WSMwKr9Uk1ap<0ozQ52&LqOz%nT>i9d~gNz*@TM}sES5j+6*^cD{ z4KVCrIfTJ@&5vI59Mim&R_vNGbtyogSA#A%U7P?0eVKmSQY5EV^_uL_GLuX@Ci>8p z7+&1xA1Eo=(=3Lzb-b*pwFq=)oxhI7jw0x?&cIBs3NPsE5Kt`{>S8 z_l>AjTYoG&Z9-?tH`}N(r-uVYy(XV@79}s?ZrVEgpyjD{0Q=m{>{3mqlJaxTS>gMu?ZsIiyBZON~jltVmDJ%7u{m$4*0V> zC3fNf{GM`=fop5U>2!BeCGa8qaz@l)p}55`sKf(NZHNyZXdEE0ag)IltgRAj_rmDh z28#+L+H+YJbU4%n_eMT#H;%*v@_0KIT~%>W>|W4cq1uZB?UtvXUWLD*4Y}0!IdI=; zoL2aqU#fC*yx%AgLX<9;3Z`NZF$E#7VhSE$(>2wfqlkx4iZsN5Epr%FEC*ei z(q5>-b*$#IYU}Ka>ks7xtsIIl4qkwvX3{9unU)d&ykdvO zh<`Id4)(9!)f52}#L@=0gX9vIlS7Ce7VHIFfv1}F{>;zMW+sD{r_)jvBCRP`b+ zoHZ5F;1H^UGX{)(thaO$Lr`;m7SS*VP-1fk*I2)Ny=k{lG-HkdqKXdZvggXlzS%QQ zKg?)BKx!`+C8EmC=|f^Z>Ul$UYlkp0Bdnd5N-6)ytaqJ#SUE3sVH*ma&&fpRbbc4I zFyEpZ|AGy?kgeW!?^eux7j4r2?N<{S-&MU;e;!vc=xgFwMlXdS!Q-U|ZSKDg8eaPg zQ|+a2`E+Db=3_eg!t)M|o|H4wC29L}{)iE0@AyFcGnN^H#p;^XpJ<{=_0X=qJ&DWf zsJsL1ypiRv;lFZcp*R{NagcMzP)##iEakm_+KUEKd+3%{GwuYA>`A&jQZVm|NXxMP zR>)h8p7J`Nv`kjr!4cdtFjE9Y0w`nQxl|$>@jq>ZmEWEoFUnS5yRW5As)vRC$4S9Qbq;W_ud%P>UVJfwvtaPcYB_l@i0@r zQ2NpOG_vWocmZu;HO)$4?|~?NRC5o-a~J2oXW8oa@a^fnzx@{N?kN63ZdP+JG1J@> z4B$UCx47^%^2Ztm)lNB{Gtqxo(I5KeM*u0`$b&^_SRLE-uKCRRuUXts1ui_j5O0~v zNsnUB08hT&)i{-;br?Bllfy6C3KGmCJt`(x;jK9>-+D`J%qlZZbe(^(HhZ7$G`|DQ zB2SKK1a_jAeXfEz`G9@XxdSJ^`-)ON6uQ~vene0>-H9a3a^!-<1E|NHvd)jIo@Qro{I+I)a?WpA2lD}OU6%?oB! z%)7!~L``~o$g-#JbT++MJDq7TzehK3GjeNff%#I!5p5)B`HCC=);C1`bq936)*^A%p$Y?Wi^vgplS}b~=i1n^bCewKyLx-pBK^J6XgvTtO-MgNBE@iU{P7CGPUD1#V5SL&{wGN=5%2gMJWo$x zUmv)>wo7zPxV#ABFXu&&u4A36J%TE!uqjai4&Ulm66DOxZY`Q(s98IGJ=-25d=mGw z>38i}jBr#jfpiZWq&fUA#&k9{k$t}BHuJ}2O(A;;-HR91q0e_-`cA9J&2G0my-T%^ za^=Jpe!vl`w_`scp%)oQ%Y(0>_tj5)D>sxxIBdxBJLVnR7^Lko_w)~~^U?4d!MXG4 z9!&?B+}GV*bjs9Q->Idlp^7cDilF8Q@QtQVh)V_bXWk(?P)2L4P|~B{3yjT1x<5!( z2)3`%liCfeHmSilFmk90isJyaTBh-6Jqu{mMAR3D;^?tYwf+ux?%DXoXZ+2-cJ^lz z{Yufd?{K-6kF{T|fBLjLh&ro#eBsaZ>{AMeI@OMdJkR9NAd?pJuC&LdT`o0z=SVZo zZ+B7len(F-5fO=hA2j_%53)PBaefVpiRD!Kgo^mSZ*-EHcsgHSOL%ygG`z`D+-PJk zyAWEt$nAM6--)ItDk1amuS)K|MmApk%BuHlA%OM7NLk(kmo`Uc=KJ~&D)%nU)(Tm1 z+KMI5MmaSx{X{^K?+m_oUXtg!(;qx$tTdS(L5Jo3<$B+ni|Hx5a!fUD24=i(6RaIQ z_sH{2eLC{3{fia@RLF!0bvq!uQ0 zHdN@NUb?9yX=pjog{q_bxA+rVTEd7rc_seNtW29fBt*WK?XdJ54)HsGrpxu>dZwc% z+5M);XZc{hYU92L$3oB%gL1GB4x0UR+7Z3&v&M{8@_Kk?_Du!dt~T(w_kJlm25Q1< zQw6iVRMJZiUz+l!OSy0FWa&Z0D&?i&Nk)+`H>jHKqq;eK`}6Sv_HiwNyw-D;R>K^R zYoC69`yx89j5(znf7jn2S--a!%gt@2i7;n`E`Lf6e!MMh0ROjLI`wnVWS%Nusof^O zbNl^K`5=e!H}ES)r)pw8@O|y{B8Nf;uCIarNhFXO?;~~eG5(#+gzV)A7ziEcIgKFR zUumy>1#*wWC28?Tt{qE-n?Cd$>Wy+H_A_<%oU;No$3Iul=K6i*ECDEw+Wx{I~7oage%tF;tX9J!g6AYr8YTG7mDX?{#rVS z#e@BZfd`CAQEZWA>6XVtZi_e|z~Vq+EPu=`dHJmyt|PV9eA=iybVF&w_?nuEBDbTR z&rrygwh*Cb66Si_A^(tP<-;5D=&hoQ);IQ~6Rh=-UT$k@Up{hg?si`(N(mWV_VC+os(TL(hwt1z0aI&!49)^fh%*EXMXtT$p0?Lt zGCJZpV&enK%!^oVq|#OmAQyxqh>PEBX1K{4Q<;0Lhqe z42`#Bn34j-`IX-+e++@qoD0Mrx~Oo8~npVG6cpZsX<^5ev+E_n#I9smi3aDPS zKGekdp#%wd^6??D)6EZ1+ksSG&_7whFJej_)$DU_f8^c=OORqqbUB#O`R`OQjbAAO z%u*i+?t9oa7Oo(-p=V+No`_PK~LZK@Ft zP8IwReLq=W{TdJ@8oGTVEwro0w?E^w*M3b!d;9eW9j1e-Edxp zjy-;6Vrjz(D}y^u`C?de!jx8plsM`%GY~x9*QrDO!$p3APLZMBdK@oi_x6_@q-gFY zuMv(7SjxH1RLTe)^#b`a{Q+X=KLPDWt#o*5ucQ?rI=N6)sjb$N1g+DJ`2gX&Tk`I< z^&YslX`ePPUjA(|S+4pXmF&vwtKVp4*Ck6wCS05hEMZruoiYMo3`X$1CDhqEzN;QN za(A;bJ_(R2V*B6;(a^pP2m-GnJy6s)`CUfdst}!0?7x;(9|n^ho=I7qUPZ8qoryol zUa6x4lUM-q9L(JKe!p?WG=Sf(eouQPMc9}LUE z3-nzBB`;%cMfah)QdC~wTi7vH*V{K<`Ll3fBrP-;=~l|{pAm$E81nh=Ai~vu4pRJg zx7A01V$5R47z&PQ-QCxv=`qAV3JX1i2Y7gIvSYA}14);cMOBXSAz$F=*$?=pn&A4nA#swZ2XG-tHGxA%fmv@~(Ix9Pyw3&0m3w1W<@p zWbWvkSAxvsV@{k{qz`MACUGoXyl&yWvR|4~iWE#KzhuH@mP%Sza{`e2{&`>)3IK(# zF@Zup8g0z|^LP6?zVjg)PQ}!G$v`Tb`AGmNERAE{uWgqMBYn{yTwdVQ?r!?@TLGYV zzsv2xL+@J6Hta_~5V-689o7*{Jmx#CW`GXPwvHumk#8z<5xIQN2yA(LQ9?mfB6RTe z?v2J5@qo1L^LtCX2YSrfH9g6`OAplu&y@I*fK;`W@?%Jsedpt+MYw7wYu;8{|F2?D zgI}&N*Yyb5Svc8baTm+_*z|f1yj6@7x8tWZZv0pu`f4y1XTrtee)bRa!tVVJxBu^5 zyY4w{4xYp<%7#|!wPKRRyx-21!t}ZJG#*aSe`@x$7Hh?dbh_!hTVV|!n1DE+R_BNM z+!OmI7K5u^qy%=FD<$f&Sjdbtq7f<&t|*4cgb|}Pj7b`GpuBCRHy$6RJS3_<{4O}}E{5i})=|Dw4B%xVD8h3$T*Jp07d`@F z)ODqFge6H_LlgWEL}8N&m=5f*30H@77KS0Me#eA5d(9Ky*|81*dJG^cngqkDZds~! zay6K&YUgt67}jEo_CBT)$EcVVt23O~V*BqEA!CpJ0nlgRSll5}+t5qOtENfEn`evR z=VMi>_eOZa=}w2a9=wWN#lX9pI)oC`geUj2N2p}_V?y#I?uCG+K*)09klyKSXp=0 zTHoTds}{q!8=3+Kh!B1xm7j{log%y`qzTmq%|~sGb**1l5BA-7Qn^5gq4KZk^3~y& z5KR_1G`*Z(bCgsh(bssb8 z&sVFsn4PS2xT$7rMyQy9a5VU1$anDbd8wLLru;6(U+Etzqr+jFjO2p?YBh#3$y8IHlT@^~p+ ziCi}&`0wuY|L!gXtYqectqZDvOniQhE$84U*3H({Rg0c`PlvvuX(lnM)w<_N-Xv{r|VqQPENd;ajFEB z9u{zS@Q)4!3hmykEgU?Z`Eb|);#Y8$!;xYPHsqc9SyF(HNFe2}|FXz5BUQOs;qaR& zZpgwV;EnOzn_e@C`=a35uM3p8ndOGx7SBG*L4!9zX2H#m1}6A-4u~U5P;K`%vVWHE zZj__bi_TVE%{D05i^TvTFzUb@k2=hhn|RbjcVvI`)`D8 z@H*0^%)HAU+%j%AuN;3DxYUH(3Zzyb=yppKBGp4}7P zhhBe_7I<*hAtqe?yR(psbo2JTtTgBp-q&p>V%PjW43xa8W*^qpXaj>OR?^KAGSJJ+ zx>Ozn9^@=b#q`9QB!zE(!Lkc8K>JV~=l}fEe^3UFUYF5Y$84tUYd#pD10AFw_^JO4 zXGNWK-tcfn9#8VnUQY!7Vp{2KouOgfP3~yz2i=;<)zx`y>684HTQn@t6zy@b@c5qS zt0S%RHdX@3@4%BlCjo>Q4gc*;`*uquh@hn)IUd2v3;TO0@0PRz?cIz{{4a&;KFplk znSyC*MUKmF&-H1%w;tsaHSf!eMf!E)u+ejkfm3r;R&WP9;$}mPm&(D{pbe+PW3#&d zZ8!$iyKCRxcY}94BHFvfUg5;r*`D_B0HNwo@41c-frGGJVtKJ7_&NX>11;AlES4>} zyZDOMP4pmzt>IERZqP2_h{j_X?rA44pnO$kNH2@{7(Y^r#JsUiyX_%wV?bxu!nf=lKtwpT0lw@_Nl&@9TV@%W)p(ae88L{ffBgeo+7b#Eq|B zv;qJD=vM(?n-KH^EvNhlfW4kFzG!3<0$Uo}3X*k8#?3wdxB180y^2;Bl#;9wf!H8< zc@lB5<2TqOL4HmwC+ad5rWY6Y`}bb6-0QkK0N_UH0lC=%ikANvZD08iBXG%T_u0d@ zCCKC7K_;5xqt6dL2>`4MNY@?EAe`F`>eo_*`TqRT`=H35pTIrf|NioSjllDT|LY0= ze;NU^@0A$gy|3x}q1DqJU-q^Ka6=hm`+ELV6dBRHDV=RMZd8y4a~TAZZDWmxMi_kUh-7+m}h z05EA6d0E26WQLiZZ0v~> z8)WnE81tVy9!9AOY=|xj4@4n05ev9LS#H(6YN|-|tDS6YHhqci77~f0`V{31vwrRa z0Ad_3DK@{hYHfOH>Zt(tDcTYweN$(7DZZ_qVW$@qz@zedacSHi6aN}^CBWWXG7%Wc zLx93yX`)!p39KA2|5l#A2X`I5Z-Vf-F$#AZCc4>OCrL);qm@NLQlzMgj3X{l8)N1c2tezpnA=pN=k)@>Oo`gYHLYJhO<3NAb-i4b=;{-TjoxilvME)uJ1Pn&rX!z*Fzc*_Z`ytSW&s)AXs;l512TA z6f!$->}BDU$JQm1Qt_}v(#}n3?MUCu-F(xd%V3U)ar=31S=cb z{G>edav^X%|2IoPrtTP5PWnPEy~oI_c>WG&SI{MB%M$pY3Hcom_>Z0ljw@#{VD8RRoMQh z{9)ljriXI$EdL3Sp5?$d;s9{@PuvtMZYBi$r>YR(Oeaz)Q%(}xyqi7bz@I-cp~|F| zsaV8^ME!2{VfE);B=6;6=eeQ%V}oAsi$G1_A6tEWoxI`3*HlPyXw|~5f;E*3)-)}e z1i>=y;_fyBF~hZ84{ZKvzcg(4C3e_ou0M55>Ixt5LvuIpO>f_~*g_f4Qsde$uyh5u z8=^&3si;b;*92;ucGW-DJw8>bDmSd6?wkHjCls5(%+vIO(g(d+hxwXI{<_OOn=SRn zhfsT#wc|Y)7q%YitN9E^pr`cJq-Ol3?3Nzw3bfvMY~T~)cjfIAjj$N?s+JyL$N8sUhq&3}!rm^Nwm`*}uGIqHC65kFQFMKY(S7#z}|x@jJ2 zfx&+4`1{F=N$wdaWDnTZjvQy2&wy(SYq@D>1dC^-*<2N`8x^Fguxhsw-|kodsEGdK zn=&#sT%xEc!)Ys1U(IXy-pzsIBi37>Kl6a?hjK5;!6npO6TL*#Tvo4&WUwv{vzOck z^!;^fnQw6b{y@t49>OiqCiD&}X?f(l<8M`9)Blkwj8dCJ3su{U5FFs(B_Yr7%+Q=U z3t$Q$J40!4d+{&nCDtlGE4Sfpu$Z#*7V-*EiX0TNSY3Yl&A;lk4Rr-S$9P|Bdi?)< zWI`&VnmZ>=#TF$nUAYBp@@u2xh9{LapSH$iyW=Yt0$@9IAMgQhy#L(4_kXqnW1YCo zO0)t@$?~K?feqJZTXia)&K8%lYf2oQp~LIiJT|rmK=+3f&tp$Vr4LVMEK$37%qKCEcZ#t^YZ9KY; ziOHU#NOxHNtmbR*rp8qV75AB5*}M;%xCd1e0H_fZJxfp_XG8UhIGWLt@W;V7w=A5y19)O$o@grTZmVjZ@cRjwSAB0M)&9H?{jIIda()-6EGVk2C84NI>@)J^~lYegdUV5&0_+Z3s z^Yb(?H*ms>1739wF(e=yD{}5EH*OG#7YHVn3|F|AT86S^)G5)L8Eo7(k5w6O`NBgqp3Qx@K?f2DFVYfLz;fZ}=c; z#EA7p8@8^JCQ?Q=sB*U{9~*oJd92jjkq)%4UGb-9%3GnRBl$Q<=vaT!!I3P^ny3;U zmbE`ge;1AAwZ7>%=1fF#+`P!w!^xRvf|lmK7SUE8B7cW-Hu@TmF^i5swe?QXBsHmK zqGI28jvZjUS?K1`a^C89sW@jJ#|h9V_~TE{nh$N_E>21nPH^kIQ9S5X-d6XiX5-pVGICo?*BErp$L!xs$ULW z5&HK&NRSf!Mse%w-tuS%anFg2;$6`oExgfrfO|8wv8vHce&l@7tpwAw!G#=V;bU9} z%XptT@CD(}txj^Ymq4$aFi-+&_Wk|hW!|pI z#!k?98qXOS-Jvc|y2<+0{tz@Ap^Vs7PqqQciM8ZLrvR9V-$_%T2L`x&{u@p(!NmQb zG}`y;0qkW}X82(m=s>OI;JH6`=p7I0EpVtOa+fAh4;&{{yoL(6rJq--1?RV6f`OxV zb)h&om)Q!PmKxV3f6l>QGIf))KbZ&q+cm{a3pO<@pXBm~~K~xKe>x`cK1O^3kljyQ; z9d#%RIy!~>e7f>p+(H39j4DPpFG#bpsf?*v6yZ7kv0Z;ZEr{Ss-tf>RbTNx&K>6n> z3~Npdwc30sD_|-EMl@#eX`U-P=$#@+9~r&z@2wT!{)03kQwDIc`Qzd)Dkmy^*6j_F zKp(m*L*CWgixA)$KAFp4Q+9AUPFWZVv*)9^$RK62cEfTp7LB5Aq^^Q>_?2qxqB=F@tFlKBX|N$%3ycS;w4&jTGu!8fKHa?q zvcF_*gPi1V^Ke*s!s}2xqL-J?S1#v^mr9{1*zv}jrag!%-@`{X~W_^U{QST5Pp%x!Ca+zQHDcZ z%pv4J5Wb&SCysikJuhIv=W?>tUQzAF$&_jn$8r;!@}ttBV(h?Rp%7MMj@=BQ(T8xR zikiZ#(uWdt+uFycZ2Y-cT9F)AHPTzn^vwJ;aeuSF&AJ*C;1~ZFII0ZMpo$Fo2UFNQ zS$`>g#GBH?&^sQbH-CU-(P%V*+pyFqU85HI;*N<`Io~K3ZVe2#87*^nWH2@;rQsCv zz(w#8Z8J*b6NoiO|87Uuhi`?lNiV%%Cx#*%e%gtGGGi|$<!v7w5#NqhL9uVvqsqfg#WZfH-B9L|PaGQf81RHsW!*xyV8xu<$9NmkxHjIlB za5I<`A&9qxOR0{=^S{yZO6!QUWda=`(#QtwbFWHjf-vHBj|QUed271 zosQB_pe_=RCHeN(rlnW1+UB=nEy>0hhr) z>ER8ZI|msK`i0$7PxGP9eO1P>wGDcg(fbgKeYCm22t(r-f5%Gv=l2MMwH51>^Nh0& zjJiMwGiZ5Cl+(ij4CTTf+ll5g(R-u8jGZ?;dO_p7Ag_n`5xUkz+V!aKBV*m5UL*~* zxt4m8rpu0mASd?};G+4*KG$IQ9*;3{kO$cn$S>j6<;NS&(Kqzk3{0~mqc@LA+wJv6 zMn20MtCLW$p@7~sFyQjvzIbm>ZJ1!c`v7sGiSmnod%ddOVtVL=^NXidZ+_VQekuZp zOWGWN_~Q71!0R~rNxuKnvhB5aSt{Bn1UdyfGZVgS0qk_Q1^#4v-(o>YDs<)6HS{Aj(eJr=pdxd0m$~Abk;~utVdlm`KLMIOD zKP-#nHx>n&+y0u?<Odo$m1zxgM3%&0|pzK6w# zZsN@h+xBXjyX-EAf9GMR%@17r=TFMnbFGNk)f+3p?c3j+X0uXt4ny`*XEuM@%3fLn z62Y7m!hDrd`S?j8K(+ZG#8f&aNcrgT!Lm5wT&ree&CsG z;K}j`^6|R?IbKHI%ge}^T^27J5`TpE9B}G61?rSfhH;wvFYkF%m;@5A z9MABKBcvZV<~5AJV_AfnkKeZJ`o_{=v3x2T7vQN^5*a=+^zqS7w#Uwiv&Q}(p#~7W zJ!XFDU2G%w&=(b$@9EQ0z(nrfTK4ePwinW`3Wd`?I(bEo->qv@(HKZ=vP9%ce!~v# z9~bnsIER1EE>}I8v~<=`?ROP8z5e472n9b$WF>f1XKf;M^aM;p{vhj?BmVsIl<93b z*KaR?XUl8b0pjyN*;HVyy)qc6JV!e?KqyeEc_DWWFDJj4w-{<5&}T{DH%u_*7s2b& zib-XRH@2O^S5Cj)R&)Q&yLIN1Wc&8*0PyNB&=asOi-Z!vV-bv|z!%Zwz_dFiz==)s z_g~(d>Yk1eYW^4A4fu}z^(_rA*x765jdI{IByhb5a(OMK5l5TV9kKD7yD)3}04UvF zJNCyNj`$D1-YT*(tvey3Z_>SF#`0C^9!k&?S1o=#fmTyuv7;r#4Z0s4#ymeMdutnj zgo*^zlL=G`x@<*=HPg4lZ0IN|XwRSjgtgx)uE?^7uoD>}W_Xgx$??+`;LBjVS<6=ir=B^+RpEN+komH-FtubHtp8aIM3gb~cn382d%&zh z^zK#zKd!Fk`3b^UmR=sNY_$XeUqE0Of2og{5JyRh2;XqPx>g%{2FdJdRMnYGaR&LRD*o5`} zT;jai$E}*FE3l?JGFe^hqA3u{u2An@CAX}_4@Oqzfy zae?7q+dOEBFi;C`-cq2W@$XhDC62lESh$D_nAHX4oqD+Bs}AG$N<|5_tiTprZ~-S`=f6$fRF;`~ zo_vG6!E*^PUb#vJS+Y|>`e28Jf6k!Sh+iDU^c|D`6GgJW`oJ}@Oh9JvmO<8`fV@B# zhd$AAvP>#EM;0zl_ zq=ZUe))U|`M~S_;gzdnqXMemvyzruegStvMUZ?3OEbCJgx=6obu2Xw(4YguzSeR|N zXtt2P1zPF8uzVh$30#d;0905J)%A9KhH}yo_9m@D(?39BrUT`kKYx9EAmX z-l7Flgfpyts6q7LFJo6EQmuuX z&s*U`zGdkMzSSk-D!|G&2`}nSJ~($`}ues3&4dwnw=$Q9;YAk8lEs%w5n z6UiB2lM#q~sdv`Agk_{roVHugOK{_GzAkmJB>4=R)9)TRQV`Ax|3F-QT2ok>;hT1G zfEHTw3RQk(rk+t#c{dorNhr!Zy041gr3aP;Lq7nXNtl5|jmuT4z?);dm}#~se5Q0? zH4MO3moEogBEKy?-6y)J>~~Ut+e)i?4>rk+`)JHxm*b0}v2LlYY?y32@zQE{*0@*5 zgz}nM!gvqv^G&`- zK-M>S)47zuJ{Gw@>x_O>q?%M>d$^OhNko1l8e)NJk2)x7hd7+va5#TdJDY)Q8?ABeaOBuJ-EjvB6)6XE+0Tn|m#^Yo%PEbCsCgt?>>&F- zX3T2aW(xZpD;-%)4@2O6>Xb$(!9x9Y;y4E7%qGV;Pl|6YRoJI6Rr#d{17%BM9NO2j z5EwaVSdEpLXY3I(F}!1h>eiEc{pFhy>mzb2iG7uwEVyFuLtOx54k09M4d0B3R_!#n z!aTRI?P4oj-OlRHQ0;24;(x!ZB9}gaese$ILeH)rkC2}C@a-)LPx&6VouN{We8jZvHE0 z852Ch38X~z=wuB;th=?j)B|?DQD6PGkujBK>r;lt{Ebd)La*7g&uwye0}mGmK$hdCAMQsGk1lAGW!`clz^%DAH__Ry70 zZr?6xg|Jo2B{^9|C}Q^fNif!>FFTIWC8CEubv#lE((1A&3O@u*!0q9~{8;u%S82ji zrTLM8sHE$UDk}Y)&5$wZvbIPKdBcs)C_WbpKlLW-pTxG}hmnQz%3CL8++|SHbB1j) zdqWI78a|@-ldAd*XrKO-QH@l;zcZ%^9vcYEv&?VH3a_cHH(FNb=8Tc$r6H)qE0q|< z+_1{Rk@&;;2t&%JsMliWbcI1z>?p)Ls2^L6**XA@I8_3FMxG} zH>VHTA>b*Ur{|IDjT{1MlCa$UFqXr)fxZdXavqMKEj_LhE0|SdH^$u#C_Ii8haIq} zj(fp(Lh)As|Fb*dnD4yy10%9?OK1HH=|_c&R^pfO=&SehwG zbqCYymXYUaIENM>Q{ze)<#z^r<9*wJRE@>Xj)9-SPgcK zV-0a>*fBV~#o%mrX31IW9CU9X`_*Nm=_uBh%rn8~Hqm{$v?rhzql2vE@~E3*dfI zb}VZ_#;}x7y6QBn(fo_;Dh?4Ryfl0{>lbCJkW)eTLpR=7h^R?dV#WKlDsQbcfrl_i z_lar|HYXWe8|37}i&YG;7gq`%JM15i+i*MmsbkQA6`8O zs5ij3DDLj~D^(mm!21tTj$YBEP|Gi&xkbq`56sXlD}8M9${dZQ zH=Q#jg3-ZgJ}rD6hF0Ly7`7sx>tUpIu{@q1{u+1r{NgrD-Kq682J5-R@G(GPx->vm z02meGmCK0tpENY6g7VjXAP?cHB2Wq&U9~I|f*gDSxhT1*T+?kO2z{|TZgXN=^F*W& zEEdUj)6NuyI6>RrUJ>)C@MqHE{KYwD^4s#UEzyl=&&y95&!Z&|U4f7quO4IG{(7}W zw&R?+{}vg-SiZQCMoc`i$r>XM%35BiodhJEi!hETQ|u zN?gvJu07|YR30sZA0gU(@rOm+W!*b+hoCXywLO2n`V|G6LcG*ixHWU4Xi6D_?7@k0 zBhX%%NJh(wuq1fYq>DH!er$0Lel{GNPB3^kB}T5wlJrkyHE*>1`iZ=Tx)8~kZ-;3t z@ZfRoc-Bl*&sV)|^TJ7CgiCjo+w5X+qqrfZ`yEQm)-|}WW0H^W)j}@k((!M)EKbwL8K9)K_AnNCG!E?l6O?=9^g?@c(a+(y59A|{Za*p7j9pm z*<^FcL_0JJzzdat&;*Y)*G^;vE|fytZSmUY5{q6p9lJ8y>f3p48BjKM`Ss_0lCg6M z@z9*$4*7NUl9At7T!`Nb>FRg$kgG^=J;r8xo~+3zDSlX-C;2Ie!0{g`B&iHJ*1}rAA#Z z$b^qazAJ1}V)|{`|N7v$bG}ULc^KAyr0m1`kJK^7JRF)^T;>%R>nll7W*gA_qmhdK zQ1)3AK3ZqBdC<{#)>BRGqqvKJzw>ZHL`L2$M&&31wK2Sq6V#*gv1Psgg`O5X^_{r* zqRjp?GV9ex0H(T~Ebxlgg1JoHaSf_K*&)>D=7KpJlesR01Cm~iWlM5E-6nAuJ#j{{ z$8izIpDjBxtGFxwQ+(0n97yTS_2IJoHuhO z2m>CcYj!n%;fT)?bKZ6(>&8=$$pDlAnlyWyz2&U#u|aIWkYfQJ&c8DaB_WNV{(kIZ zpkQ}OgiC5+u3Zo6cetQMQvMK*ozgHy_7Sj^x!sg}N@;VWvI+nx%R^$iG%FHfBp|;JX&a^{9rkQTwqnG)MOuod?g64ueZFx2p{X8 z!ky+wQ>j8<|Jw~17aukJuH^UgsoO2LRC^P?346uOjcF<4R$+|0Q1e_*GvQwK%mDbx zw@?3nN$0;l`_iLN8$}lfdd}9XGl#j+$mLmf@dMjoVn=FvX}Hsn^-SAQYyXY}zKgC+ zNCO2f!8Uar2g}kuxUSIluyS<;qPn7r36+hEpIQdzff{|D4<4DJ)>+iXNR87(ygm_O(eO$E@W(cB1AJ%Eh67;Ub2(N* z#qlblLDO=a2vE(No=(^o)ZqeM3uh&im`PCzU^O|VtNXWvF0jr>1m8vzwqH}`Y*#rR zP$kVb;1pQV1M^iCas`vFMp!s*s9}oIIr8aS#4jKb;x?dO76Kuh1+YXm;uoNy%R4dA zWG-DR-Q1dqfA6C>ii2j8XcB4;!Tr=l-RK5E2FfK&@hAR3cX*L*n_a2->yE9p?pvo^ zB}^#>+DFkb0+=qg$2Tk=moS()OkV8fO+I$$J27~p6!Sr@$*zeX7?7g|>wLP|OrJ#&V?8NrFx+ip7L zIfLgNlOi%&5O+~9j@^FmDAb0@_!i}}7tNp2z@J4$dlxw1D^nQii?wBK)DyF-Rq5C@ z?A!Qgn}|9iWMb?S1C?<+JtBw!wrIU`3sIYYj0GQcJ;74ZKS$|v|JoA5ugU>L%Ooh(xDfTIt`!rA3F}7Y^pRMj33FQJRBB z;;N=Mga@}tFPC^rEp0Ffb(|;TkHAIb@rFjzi3Eq->60d}L-{Z}FzRQ{CT4dYMkSr` zR2`MjvwtUmImTMSn=j=tP0jg+4#^Es;65}q;L^@RZrgLRP)1LMHt){4uMBax?y4mk zeJ3%LY>bm6cWLk()b2PVxMU@+xVZo%{_!CVG$!)b)qrQ!mi<`&;I7TF=S-bW=TuId zR@!C&PvC=Q>SnCMnn{OCYN_h)yAI*G1W#&M8X;2~BBObo)^-HV=x&nl&BmLcW8~7@ zT%dp|==67Tj>}9-yfrn4B5NC#b}?T%#B`6}ei^3GZ6CwY$J9QjPr#@!s0U zY^67hYq$I>g$fBAehb|Fo%kg?69oa*h(_!P2j(Khd$WcsNoX@gWGiU7P+HyZ?%yQj z>Gl~!JOWFx^;G7?D7X*FD;$BcW(`!~!tpbMeaRVtl%Ujmb4+t`ZNVxo+$A-i->^bc zGh$gqARA&rk?*_5?8_&vBx*jh5$U*jMQLO*^m4b3{lW$`_Y1OTant#Mihp^jMPJmU zyd896p=QAeD*jQ`$W3Lu!M!pE2T5)G*p9B>%JaX;!S2or@Wu2D{j&o<=hE{gLL+4ZsdJ+2Olr((cqBl zFpUp9e@c&z$hcyw;8j$1kDRJKwkj;A9cfK}zLwIx7qjoTC8$(;PgAuva z1V_1@D9Ef=D`G3}D`*B0&}1&6{TCWI&0|P^)Wl>j?%^V~K=XmN!!n9?C)*{)KB$Uv z^~U;-)4`#TeQKq_pIhk;@DAJ|lq6@pQ3;)*$Z6i$%H7!vG25Ipt=!hERj{nm8w_36 zt4~8!Y2i6nzUKrO_dj2+9tnUr{m(%TaZ#gJyNv;j4(KkMpD7is%6m)1Qy6AjnJ7ox zuQ_$k961|qpk?D8wOp)r@KVaxD&(N1Q~f6!uL%=~Bup5dpVJ`Amk%r0G4zzbM)jqM;Y$}-Y&040$kcPV<4chcW!ic9^kzncdB&t>E#HZpapM0?_qUpk$t!Ahsa6IS^D6_&BA_|J? zq$~bX(dZIp`1laswNsmWt~FpUaEJFM+kakKJMTyjXe-RtKT$$z>5VO!l~zA@rKl=u z%w~%ivknQN7#_DtkgOmgYw&0Wb)~W5*2|q@)n>0ix;65dXeOrU%Oz~aNn^ORwp&k5 zrQHoWKHJ3J-TU*UBy{9*rTsc0pgWHX_iCzYVHEf%!2b8#?=il&l^w64QK1tp+y_Np zTY_CB?zfWNs=dwkJE8WOR zE2IoxqY_e_HCGri=NRKZiLJgvsu^3|(XR(D4)!3nh{e&Dx0PGjO5D13q731BT}zE* z#QIew-*uy>A~BZ@R~n~3MCas(+?+wRy}YigWo}h?VIg$wIW&z5KP3pzcqF_AfB!fn zjuCqZ>W4dyR0_B1IR`deDB){ss zG)>rH(XF`ubKaJqXs?#_1-Lo!?cRPe{H)Z+U75H_#hY)!M%HzXs;Aa7ZgX-Pw?ha( zgC+r}@$yRU8@22e>6IbvoNy@r^`QovKX%MVhrt~$g8d;2dX=bZ25+pI9D4rV1XD7= zuB`s0jhbVNj@qi_El8YcEEcGo-{~y5F{mXtR=Dn=eEv+aX1&w8j?R2~>;(AyxFWXk zRki@&$YZCj9Y)OdUoVcIi)$5UHTjd3-BMw`yPUpJa>s_dWqr=UvXVzCDh;%#tA(~_ z!d1buZ($fe%Xwt|+-(KmD`gud({%5=va#hdJP%UFeeMukvCZGu6Wiw2>F(Bou4>9Y zVhCp5J3OkW!W>QPRS@Zb23DDxK@pdq+&iv8mH#`ny!I}lMuU7pC7gyk4HmLdL5EfC zv3QbhIe~~Jq5CtLmm1aP^As(-A*_ZtFStW)dZ548-9Xi4uaZ~W(QWDz=n_H|>cK4GH*>^3tnG>JKFyO6sdf7` zw)WmR?&mpEb3e!N6B;X5Tbpq~JM5t4XA4QRg2H;ld-^-5o$@?=4x68LH33n%>zAh2 zX27*i3Bs=bW zK)3-@@V?oIT3dGm%&ojjPOfgqV4SM6KtuMC_fTI_#~-gE>tv2hoTVQDygb$)2wv8&ugO4Yth(`6~!hW#sPqMywI0HNLbvou|=eLr^z zDTqKR!K*rQ-uTiOrMSr;GvUc+LeccjupRaCTrW;!%l%EPZt{!X(|TfPT;iMUbODSx zZ#16!SZx&Xv9Famy>pYo7pCv{MWRpa6RvAvF*n(%q^ma+ZN|b5PM~ZQJRel-1Dup% zWloy_^P}}=g7f{OWa06J?C#@|xMt8I%4OqoW2Uv5y=>tY;8!|EltQP#QtXyJ#}#Ck-yHB*)I^~B&euZ8kAx%Ws2vNO5tj#-Blm5DhSpfr}}WoMoKDN+a?Al+LDAuTsfjr7C^ zA-KYGuH;I@7TSxT>Ab~JvH3D^Y;=b_tKRh$;?uLQo~yd|Ud;xpgb6p#6JhS{gu+c- zgLS8EpXrYN#|5Th=G{}CJ_;4mRmyU2%Jk?D4A>h@pZi`4Qm;Pi_KY&TJ`K?wCEs5- zY@4Kw=;HOHa4cs^`e)<5`hRVA8_MkzJ+Jwz_)UGp1wIYYEpE5JmQon9`$UO!a)Ujt z_VA;2bcFbmlZf9*juzUO%p#jHPhTG<#}Dyzr2MKI9QSXL<3^3=Nl>SlT(G`~i1 zt_VX?cyV6xb=jYacw$nOjM^?u9c~R*bUcT?p>G{yCOuS#8Ejpvm`&r>g2>Z4x*f;= zEfTM_-YA@-`SQ!Cb^_ma13CXe1UUI8q39;s}2r;8*u z6YF0)$(-so$K93~eX(OcX(ksvQXi79{N!;2lL)w>X=8y7*9xoBe}r%J zV3iWiJ=|1i(Vz!pze|08^!zPiO7oDH{0PJ{uQ*%L(1Tv-I0>lE{JB((!XiaO3;c4? zR4h-Nef_4}JWI*ff`%&?hIE%a1z}U7a>nE$;m)h?X|@vDF8~+EFXKY;oMeG-3gbD6 z&bP~oCbQhDQS{owvd|E5K@LET_`OsZC_kd*r@lk_&Cjh^ae3py6!^Q-E}Knzq_NGR;)>--7q0DeGAufkA5f1<(QXXOGa0}100t$8!6-LR)&yJ-)MXh^ z`eEln-p5Q?3#i)7Rpo?>`Q>2yzoFMxth9~t(!x3*x)m#nTS|c%(L3W8wFQ75yLo8F z$R?*~M=n=dyCGV;*gwUL)2-w`lEO(D*%J+$6r zoFmmKEvXqI=#a&KyL*vM+A!f+3vx``nH&}RNPM!^?_aL4iTm5vQB1v{D;^X5SP zr#iUPGs68P<`>X@q$cLdxy%OwQz{V#UFUrVJ`Nk~c=-F30<*noYE8GRSNVtSshf&$ zS8~kU3wTU33bsXm%;lhu2&@|qF0Hh|)+_LGd>eh0_i*QFrIMJsh1*J3T7zHc+>wKc za+Au6H_8#{#fTxwfnjIX(Dkd1e9d^C5^T?T>ECr2ZruZ-`V?|?jZnmu=;~I2l|iyG zNUGd)%JfkMO*S&heJplGlGyR6o0NB5P1rk87nprtj+pMn7ys%be|+;}xbb||sda1- z3f1x<0*V!(IX0q|*lk-fP${SP?cjwFQysN1;l5~jpZuZoHuMC`*P7qz{JYNi6?_nY zbYMJ!`WUA0&YJOX9*6v0eM@Kj^UDD{(c1&#rB#zDoz;*`GfD2j^(!EzExqu$C|e8f zsNGn6NHMrX%W`6E-qis<9q&i)l?;{tu;Pjs*7v(HzMhO0muM7e^7^9fQ5okw*fY^& z8{$wkh@18>CeOa;!nUoC<~)pBxqv8cYZ_A%za!#zeDXa!nm(? z7%NLMxD=kay-N_KAVV0rQO14!8)^&NYnBllaMfO!HnY029roi27A;_?SYqP19sn*L zU_#`-Dj3rTDT?U=h8@)}wv&qAWjiRdix+ZlJ_Il%-qi5xP*#a83=EzLA7|nQhvPNt z<-!L?f476zDb0^a%a4m|t;^mgSj+A>Bc_bCDe#O(HGtoa4Y{ zGeh;uf>@E4>$g6@fazveV7?(@+xT?%wxNo4^!V)5Q@CqB6@Hyw;c1VJha9^=!*0J zts>b!;UCW2GLuF2yt~uZrVF!qYs3231yZ^tFTBilI4+W#p*jO_OyV; zs(_*G7Wi(pnVYvI&t73CP7BDNo(C+%z%pnX3iF#Mrulk9OD&89LOVQ2Zqjy{!TmTy zP+Z0y^4rF-(TYbj|LN4AIIM(-Hn2Bu=c$W5Q1K-W}uZe+#;j7;LM7~|ZtwnhJq>NDh4$QB_VR>e)Wpxjvzu?+zwa>ZU zubDZa3=aQJt%SdP1r>s4%DnU&tI4Jq{eCf~KKeTzj4zzpAGOg=__E zgW$>CtCCelf|FPbFSm}twT>p{_GX`RyJV2;%>*!F``d*AQ9|aC%GnjtYNWYT^7Pa< zC6Hf~J&i_@$q;3ds@b88T^M4voq4N871J|-45 zi%J4lIwVxytxB-3H<3juWsq^#Y2C4cmz$Q&pn^uVr*px>&=St zI?cJ&>!CIZHs1v~vX6|xocsyv0WFu4(hJazoJLcWDbN7thYm#SA$*#BhG(B=L`IsD z`|L{!VA;&K)Zq}gG^|;LHwU|IC`~Q2E{e_@3_+}wSAZ=Jp$HCoJmNN_TNpB$yHngf zT3BS{@txNaSrvQ`4;D3*KImmJLl~f>qo0A6;rpY=Rkj;_MNbR4$}(0ooEpZ+BD_G6UX;mV2!%nQZX1^!QqPK8fPIY+gp>s9DQM_9+IMVd06kFQo?!UQw=+1w1%sdP* zm8K8`xy_pZK7+;N8}AK=5W%nT7%gQde+B_kIYYD-2im`a1|3HtvXOc24UlAI5WML& zrguP1c9Xc)DWs|=Do=!ZT9!{9oJlD?g>;;ZdM#VY1#R~rCUDcji&;I>|3K~enIXQH z3V`UG-04C#_;EF!eGhC#(A|FQHb=fhM)x5v~&X10eaar~sq>*7rxwo9tD3m$NbxuN!mO zC_}fNdVzf2KS@mvXr}TAx!Z=SjS`~44Xd~;8){Qa*Q(Ols9n+1C|R5rE^92Veg zm{Ot)B8TjpGvbNE_GV0?#W}=R^IqnVAh`cVzEQa8$JdLqLql80^dK_t{o8vy(%}~v77n5z505#KPQ#4DIXuy6&zpb=R%tU`$&+g z97E<+EC-w46`+`bjQMF`J$xV@p530RRt6DREu4?SZ>BZ3pq#gr?Ma!O?h)cIVM421 z)D*P>wsH?~L<7M_mlB}806B2eJ5gSXcKvB}(_uqnAksjr>Et0sHRYq?8*^5XBwd%| zY!p>Ze*SaO98Qeo8>2*8cj#_k-|&ci)a72ZYEDZ~e}@6fKfSGfx2tJRE8klAYM{*( zc*nvU+&_YU2o{H&fJWWEa9mAt31{s;6d|vI0yW4CO@VKsZzTV94i01oh$}&fi;FEx z(BDKlG{z=5NmZVB_>pYz`>l}f8o0qcU6l7h=R)zsj2WwkKRD28RI%Y>PDs})$&8(& zt{$C>lblpeTWTO`p3?KX3R26|akXTQ3ak&v9F;e^ojAu-vvfZ)<%CxVn^$%Kr1ioGK|iEdxJCS(cO&ykga9}d0|m*k@4`s$88`q%`sRq zPeOZX{;Mt$rgykz+(&*x88oNL)1?nOl7$4J3h>&y!GW4bz$T0k7()H%h_Erols42LhCuX|Gj8E;g?z_6}!4&p}yh&t^qbXpABp4XFJe%#i8aHJ0lCOi$+fBWvqhBTzjZKWM8Avw=|gY3IVVl;g8 z@M&4evt;PluZQmj-kfpg5Npw#bCe~t2~?E!@b;{py)2wdW#a%##8hjxZslF)0soT0 z-YxqK79@kK!B>EVizK)Dpg*+YS9!0$xo%lFgv8TJdWWs83TG?iGk0oTNiIb=pDX zO+_2b%m4H>$Jk<3|?Sm)v0q#Ws-=x#}rrd zDeK8@1Xud=oavQ+wt**Ah2TW{w1TJO*#N(Si-4 zFe+`= z4;>uaIp_6z`TQQ=Kj56#dOq*_y081X?k6A=p;Tw7*LeV^01e;;hVym zc7I&c;}t$g6K%_-d_*KJK~5yWY+y$zErhf28|1z|NnCwlOslqnqv&#`&67FNuiOVc zFg_X3z_h{j>$goVyzB4^rTsF%J!Bv(GT@O>%SYDB`)Rc&-}d_Q?%T|kujL6!6~pyI zhRR8x>Sww|F>(`Hq!hqpvM}^LJat)I|4GA8^8)wI6KwEgbsag&7 z>K$Khr$gJcNUq0?M&{LEB8$AnjXO>|Z^zj9B;GT3N0z}$G8jb1?Y>{AQ^I$e+B|n= z+)AQ6&~)05^0RcT_Ny+HllKLj~~%5eH}~OB8!J;UAQ20Q9cKtB%qXN`}R>K?lyRx|G8Y|co<$A(Gi{P2kS4Fv+50D zsOp$7?p!nYUsYx^*?b@*y!GK&2L8BxP5*5IRG3LARAQjOQmr$xX7gwv}Yw*_dP(B$thM`fptfOPhOqpeHa)o_To*ZOs^Q&2S)8p z!1t)o`2TKKPS^b62wwf=!I>O(QK;9A zdk`1Df7>mqx?`?F&pN4}jf}L;`$$$)`u$F?{sL&DFq*0E0m=2V=1zwREAl{*R?oJ> z1k@ypx9oANR>%#l5#tI_p){}&uYPM zWwr{xlhxw;vVCU5#CpueEBD+C3zQ11iGg-#2C{Nt01i4tcW-ycBTRNkV8gO)9}sSh z7*Y8#`Hq_EEMY6N=lRpaXG|Tnqjpb;10E;PN^n7*Uc5Y+zS9?|PYt7R+jbu?{N^A; zSnJ1S)m1C$u(@Dwg4c3=Q+tn%Wux4JSPB}e;emIo4%k|v)=*dzcqPPW7r?pbD?R({ z{rVXkd%|wyKso9o~K!|}=1H4RW|JLgabO*>&4U=a&flUzq zrZ5#EH1pm9*+|4J4w5l4b4Og8_$HVLE}%C))Z*=~c`@<@_$ zLN*ry&c9d(XFptI-r0uL@TfJI>}|4<9sP5R!cStcpO;(jeO?3Mg-y9J%R02p5m>>dNV5DpmxLk<4VcJ&Ke)C^E)da=GJb*EU zgWo`Qu`TvK@%i~0x25SRCiD;|e7wW7N)v<(>ABq06+gvL)Q9?bRXBo?>GjmgVO*qxfS+{D!F~o_>?@Fr&0gN?1V2;oJRqVMG7E`7daZ9&{nbY zF}I9F+M1ZjTo^UO7a~@~79$Q}`%AXhfWQR+{s~xs`aJ((_9I^T0YAU=l71QhS3IA- z#=<2G;6^ba_o}AC?57(*YmE9ez%~>Me2^JSccY<&*zI4aC&a!8@8%K;E7vo2z&IHT zA0%fhUNt$aXBs(gBK@hCIRxSaH+pV85q&@f`?%Y)uhC-LxY7w|r2&%#`%rSAGaF_? z@eR_hpWhjg`l9~yO!n29)@yGII}_;FJIhDRshM8?C^!8&v9aK zMB{=MwMpH)uNpC-8ru-a@rU%21y7)VdQ`KN(_HMzqSPud29hpZKaXK)&q5C0^5V)8D4! z=7Eg;m9CrydmsAbUyN){5oat>%Cf@pWhQx-59)>{aOYy>WBrO`ghd%g{M@N2tFjs-=ZGDZ-JoI zOZGVOUq3b|$QHF+hlKdvyogO&k7%pvj&^KlD`fZkxd}`hWrAhYo6mh(>RdpNy>esw z?-+|P&*o$k?UzGDti+JDWU9fz)Wy^eP=%*R%SsGul`gZ<(}qZ&3?m?#1CWmY#-jf? zH#mWOKt9Ebk*qw%=q{R|HD$MwX)c{NL$5n*U@fa^b&IovMI6N7g+BbKdVM(2mHP2L z0^A-nKQ*$=K7CpjzL^cJ{IhPVP5Itv-aUxZX0kQy9O^cv3{h(4;e335glj#YG27d^DR_#>wUAO`6ac}Pc+2WLgzQ5 zf`0-%d9pBpeV4aWKvMS=0@HoU4d7B;?ecH~2tP?pQJ)(E!qSTs9)SFE$Kc;GDu~L5 zhRFED-ZVn1vQX9eDcmGD&LrMg-YBsIG~Be2=4@WkwM{ZGjvGByN9^cDjY2Ui`{_(& zPZP1??1YlZ@!X@&NWQsCV*d9IS6&c15og>Z^bjgwk1F56?xU;T@8LtU1?KU83)^uY za|-i&)KeRpNbW;TrQ5KQ%OsOSvvQR19{U>ws7*<})5Xtn4BNX}0NW7Rtb!Fv!%z7C zJ~v+l{cPvWAsB?!M(LDcn7d$ZGbkR+yK6_q7mdBpuc&+=S2lTJY!5e|`HoaC;IcO0 zXa7{b=)E%whY_bOReYL3Y*<|RH#^dLp%!dnvZ~xSvp&y;ZF z0!$&SYUus#>k&h$4X9hrBcY#joW)z+xK2JqKO$N{*la3zYB$;AMjqfy-T<*^i=q!!S!pW+~+cFotkLP^0e>2 zsyMJQHBTY|p~apU_|x;Va&}6s)v=29+!3Tn?Upef4S1PgmlW8Gy>fG+?Z|~IBl@u| zZmX?-vzM=T#uIcW1x6+ks0K1Sg*)3e9*R)-CjIh#FyLaZ8vUl7g#x0fY1To!>CGu| z_cF*vTfj&C8OB3}z5(GYNqUpoZba+(+T~x@WIN>!;AWAx;Z@4008uV)aX*J=oTMLT zhCwD4Q*HRYnLMSW@S&}s?Xn6{KdLR(yQI_QC zP6h!Tk|7B}5sZ9t^=#|M@y%G0fenH~)^P?WTohMEc~IXjK1>%6#4mhW&^!wFE>(BU zT(5U$B*J7D`qM+-_nwU&PJc9k++Cf8zUdp9Gz=_s!UHyNr>ejn1^U`4Yea?r8wRrZ zhcr}-&vn}JkB|6v+0EOjmy@Tpm;6WbKgbWB>2KZQjA`mGtGO3DSt;kU`14S59MM+9 zbg;s=0$s-vuRuELxbbG<8W8xsdYUEqzn^C*w-f5=mlfuHxF3@Nw(tj}xjK{12z1ZO zMY>Lg0hf;L8}#Yjb)VjBc!)z(H3O&|1HV7T`K+z6#c%h6Bl^&-v2DY-o{Rp1Nx1*w zZpy}2HQ9GDi1m?xr|{4GUx;}ek~)p{b32^B&v#P@W_V?(N4A|m?kY#P(m_NZu9O?K zVgBLa+|_emw4)k<{f0i{qz zjNI)No;mH*REiK>c$#Vh=Rctyqa^{ zqrv}HVv;Cm>E~)sAtqFf#U5!CYeSjqdqY+&i?x&dIv6$xPa*Ob_&p7wjo-S+II<*C zv;Kk)+MXD>*jptSI!PM|pzfQ=7{zk@K6qd4B!tJrz|&|fa-*Zn9Dj!?%X&gpZ}`Z} zeUx2}TNvjn(vppZGqEU+EC8O6B}~ToRffdB*)ckTwn~G}9>w!V()~8Z9)Dd1%u_R0X?F^Ysdlw%G+f+V33fbeRLi+ z6A!;eJK&tg@GOu*MZgiCv$ldpIOsxE){I(pElTdf#J?|s*e!(x^<;y$2tR?T18A#Q?~Q} zzmQAa;sO;D8r0O&B~cn*d{26k*uu7e;FZAkr?`JQPRwsks`ej}tl-6Dm*;4Y`y!U* zmjsT*RX$*rn+bp*Dko=ZbQ%|F8!%PaWRIz~!3QHKe)9;txi&9DdDXgSbpO!F$Fyed zQq}D>JKKX|KE;LKW>gR6|BBE5#!N;on7-O3R!DtTtLa}V|1ATrcX3G}2o4b=6mjbq zpY*Sta+KHG>l;uGjC<#MKaQqW96B#|?F@ak5oD(9Amf1gmr-0D>_I}qkBCt$*4@KB zR?*igDHX@dC>e_7+N;hrv^wy8)vXm3u7~Pcw)$1a%uC0eb==6ue%TwyFb9$nHRR1k zF}OZ>n>+rX^U9wEre;OiMt*V1&6_{}_}21gZp7=cu!Um;M{SG2j|fq*NcTKe5QFWm zN!J8Oh#SsT@Ns;-S?b%bgtBhy6dg;&+1q=xXqnKwJItw3mA;%{6JTv3XlvRuzAv1~ zOZUD$+EYcff(Dz2VI2-~{8?o!FIUG_p8#vcaLN0<$0u&T{|Ew_S1;vVgIX^v()SskC^+~PivfOTT$s=!oD77#|d_iP#$zD zVruOPM{Z7!0Mcl-UnVlMtv_0dIq3%YtZ(jhFtAm(%58r>hAJO*@~34; zjMKpr$4ntMNMVuv*ib!0tQN!5gBJU)q^5LILqi}RndH+CdW7|)zq+?l;yHYbUyV3XgybG7HmQ4-0V*YEJs&!~-=4E}Xw&sl!1K_chS>MY z&em@8ziDIOxjV7@^cK+sW*dg(tEaOm`2;Q(Mzvsx0?_P|cM>B}de zetG!L+HJ?8^Xi?;rE)^`H3K;wGUUx;XQkLc>a;7Yvg|ynOLFZt!06TQ9#wdA#Y9BX zn+=7F71!sKC9K^q@!=3?IP=d6E;%Db%&8XoTu;gJ>s^qNeI9ILgZN`m(Gqs`?j}WB z6Oj>!9=Jh%74U4wtjE1G>-z&BUaQtmn)Bw*AgSNjV~U*UHF~yL;@Rm>cwg-4+;a(o4C#N<3Rw z=Q=%%2G#!6-{vA}V(lT(Zyx0FPe*KeHrE!>xTGF9EL~>|$~Kf(oFf4CKc&OAe*`y~ zZNke^4*A;lEM#T9Q4K16K>?+0MGXvJzfZxF$eyxs9+ov1R$d~WIV5s~I|34+?EHl^ zqj$_mkrcA|3GZ#Jw>eN{8CkC8%Oi;uQjCdH<}WXQmiJeF=35f*5L!JHQ&oen_HaTB z@}dibFg=jgIK6G3Ej6f`xmBV>B=p&ykuqU%{(id8hf3ymGUkbwAsF|qb*f=A5vl;A zM1H!=M-DBv#^g)>uL{JYL|?YLR&Ow_YU^mC|C+gt6*AHV)DX?qB zq(Berh4>tcvtcxVslmr2Z=CmBQKjGc3sDsoNiB3h63-*@30PmW74EwQQUE~+4ZVKX zJ(&GUY)H~Wu8j6}+Cyb^S*)i`x4n=X zx2n=Jo;^ne?pW2Aha{qNtHS-;x7+TXx%l-yh}*1`x8sYA+drFiURR@=dk3q$>#+tU z<~1^JQ%#Gf#{AP3%szyBcyBip6)7cZ+R_2syErN$a3cGk?Vlhu>52poR>q;;k1I2; zW2NF&xVqQQT%g!j5sm|XNu7tx@j8^$>WB!Yn-* zWf3-^U(!6%kr+WrfxY@WpKrIWT^nTy5!BG+qlpil>w0dtkbo)}OJi+w8~nuTQ9Kth zQ=QvD{a-_Mn3N^KT&!D-BYqn$y|87x*%G}T&(R!DY9)Lnsh4OvY#70W_~sGsohsY- zaF+Q2JB!vP{O_&}fV|6Be)xlU@vCVpRn}~04drCfpwvjivx>_t+g;orrZPG3!c@Y9 zQolS*R2|~^b7;|Bd_YR}!;l#hWmhL)e2zgAcIROJNefYq-OMB7YVcDXSgWn$x#F?a zmThZ#!BcuTtN9+QU;}GJ2bP{3Lff@;h^=0i$fCKEQZq@$TS&Utl^+c04Sx<^)j9bf z0e9sVO3@ThKKZraHTR`3qMl9iHOE?uoFgAwjM^)jxkNx*Dxsr z8n(vl>3+u(Kben_Q%}D(Z9uQ%fPW|pqM8xrn^GQMM z$}Xbf>dPDOoDhEGKu_!dBO}mO9I&#+byIq7st5<8=x+ZvQeJ!c+eNPJdF7mg%|ZO+&IQp3sYIa zjfkh4xn9yg_OW6%vf`dB$UCL2eKWjU?3oPv=@Q0?ES=;8<*xO5kpc@cBuj|hj-6-J zcJag|+JNmGtb%aM6@v{Lc-Rd>mD~51Z#INmpI$L^a~dOx4o2}jKA+D$ZDrTs)h&I0MvcG23wD&`aDcxy0XN&`v=v3cmueWdiDszok zU-wNmr)6)nQl-Q%4sMy3#$exNU-07hu2!M_D=Z~rUT>z4HqCx<-Dk`XEa!vaAWV)( zQl>2|VVC_mwwMLOStz1#PG!QF;%!nMwKhNzPr6HMfU!B}fwIlgk=hL_eH|GInX<8q z9&I&z*fo9iS#rihGb)?Q-Aa(!8wJ@A6UZ~FpX)Vlwd5TH`H=Tfh)NkvO;!o8viSP7 z?X12iJOwUI15X`r&{qr-XtNx6#dBU;bPZ^bhD0Ae-H>h5ogRT%uCo-Z113&d&f=#{ zK5H=SdiMw_p9A`z?I6<`=Vs8752q|RQ||RP%v61UExV6eTi05r)L}L}~ zSD;-Cjd2*T$~rDSJkN|VkO788EFcvXR7+)9G_1H7#?~?~1nHwCLJiH1BFf#~qalZAt7WeT9=SSOY^uB&w$;>$t`|+OR z!?Q>Dw|^936~xqb++m(a4kz#sXygyvPu)R+PgYLjgBRiaN7L6gJ(m`rEd1QHUj1My z&J#W^f=Bq+s|?VgY4=)3fZ;%RLy1s%H|odppZ5)?c?{kxoK_Bf-qz}|$W|HJZY`tn zvX`5~1QghtxKt=r-p!?g7#Nz?D$G&NkQ>C|a%MdS9$gXR7)j7js+yJS)bn|RDKuR34B2D^e z5~{79bd&1p1W+=V0IC~h*Q+cobj;8w3CHp39cE6F_UbDh0UZF&1asd68quB5_;BL` z9z~Sr!cb$1Uns>?6AMd`&Qr2&669@aG0Qu2p?4<1xPXnC%CQMod;(6T(A zp0UIw9)YOue}LqV&?J6Yfc9n%u1v(@3^5>IEk~@DkrQVHQPaxnub*LlbnA90vX1frr90$B;MZ4dND`ufI0M=8-M!5 zaj0$_+JlX-yU|BVimm#6FQ6zHaq&KGd@CXeG`GV=$#tkfN>I%#)6Da;`yyS_AAWj}GB|Vck z$+p=ot~K#gmm;-OpZ~jBwVoFm`qMzIHh4LZ+QY)9+^M`2qIyU!0@h9!NVf2^8NHo) zPy|R-;K~vI>DRf0;nxz1A~V|T9&%Tohwpvx%;Z=)9IE2ZZcvO5OZH~6s}7VvL9&GC z3E|H|gR}C+_%W~bwF;I04$sd`TW#XCN%hjvfXmZFXFMKh#NLc8w0*MUKv-? z(F@d|tqP`bFeTYOIo94~q=8qw?siUdg7u#)253AfV_|t_ASXJ>>b@j5sB_v zu(BIbZdKW_KwL#baGhvO7BHK^MN+mdfBkzVWNz)jrNZ-Q59*oph1$tgo|{NCjOQA+ zd0zdlBa3Nb7^J7}xLM=*aDUt#=g5=6FO?$1Y!|0f3)$ic^^m3E4HoIHK$4+dzq5FH&(Uzb;c`7ziUSkvx{` z_3+SCd=6bY;b!Qw$WmoMYN(4p3qFdV(4h6(04fg+7kKedS(>M9;*7q&rCZ#)u(+4Z zX;f7l-K3M94Fi?hhPoH7b4%F??NOA8Kb|>t=l3IPY%^|YQ$d`2mqrj<61AyZ0wrfE zYt;oa^kZj{mBu-nq4OhkFV|v3DMD)T(^7K_>YB$%7qDAFZmEcsTO-?`x#{ZNOpeA- z(G*k#1~zDRyz}3A)na_Uw8MLqDK%(jO`TCp)6Ga8cohuuZv2(Jt4-QzkAF`s(6F|m z%0VH_7J?254md;gYy!r5Z;wa~j>A^6K}8P!2Fl$1_iq{R6cC_lN&{r7cEe|J-$;#m zMOQ^<8SSu(QsjNK^h??A`XH?fb}0k-*kS425!`T&1ZudvPpAI*efm&k!NTwhCXj() z&MI^*Mh)H=8t&%(kz^HKe3ON<_w4YDb^3+lb6KClA*4Z+mYgs5dM2F4?p3g#+K-U4dwshSk&{)uONY zGu+gc`|i*PZO`+|B~C7c5W*<0UCDeO_|Wsk{VXWrS~-9GBaOdDg4QcDo4@|P#ZTXj zCa)rbC{HcAvEAXJXhY+b(a7gu-4;jgoi_U#|2 z(#U2oa6oR&yf%=L_KpRH(1C!ox7%+O$(;r&%+8$#fxI180VvYseDv**Yo|>3aBFw| z+fXT^P^zEZSfwhFQdhKT_RZj@u~eBN(HIHd!t)OB<<2XL0C72Yl*E5S$5MXe+>|xm zNCK+PPAYf{@@sQ+?S3V+$2D#KbX)~%-?3%0-m2RTAuGW~*{8Bh#*#dxF>V0cnXJ9p zp+j>fi~1Tg`P8TQv-jPTrY2$NjMf_bd(1n(XrAkRBtx&4cWqv?K#Z@>drwNfioIQy zCoV#XN%DIwFHW2N7q>Lkn)^^4AND-o>Ays*KdP)c3S?AiLX>W_dESTEc!=}tV%D+) zEIuqfeV-1gy~Q&n!m1AGz8n43)l?)Y;U;;m3eqejp_@J{5yg5P>ya2(50cy$CGhKzK-z%~s#E z_+u!J#n<$eiHW>ur3@9H*rNJ&T0v$n{%$u5lV5&#BidbHN%7$9+^WYjn8+&k)|WW%6CNN@5}BnO996} zWoTmDO78iu`QQH>iTbEnW>ph;({_{lL z+9VNEC5LoZWQvb67FZ5Fz6`m&CPRt3p>gRnOidGW!I;j|N(xLwWV}GC1epOS`}X(t1<-Z`=4&=}J_W;gp(m7#ytTUy^7VL# z;XW--^c%AWt;N>$p%4rw!HTkT^ytQ`JVu``dyA>FOKCyvZgi1-f9Z$mMnsPls_IN|@{ zn#U%Com{fq&w>KLJui7(G_U*a+T|X$ljb6Mp zsr;N;GyL7U%9YW>3t*(ok_G&3)nul4FaDi&`a@1Cc5(dF^O0HgwrQzsxR)pbY~Iyv z+s!`>P}+R~kiX=7_8R>qodnpXz~1__G|v|Vuh|~#B63=fmjzGrOHh5@>koa_;#VEm zS?h*D2gB4R+)$2mw)N%Nx`V_M(5sW4dAxpTwLh=*C-|B0! z)~nKJ7rsROI~(NxtrAzvnQ5C?aG8133r9WfEyO#I?Q75z}e6+U{6sW+WZ$jVA;rB#QX#;Y}{#Z84) zd@|qC*ksu*x9**j8V$jUphC2$3J8KY(`NdB@W_M?8SCm|xwl>y0j2TxWC3Xl73cAS zY`Yn)rPknGP81F?Q4%(#%|qSEN$JE*MVDW9-Rk=Ku%F;!w1#E?3%G$w1rNY3x6+?j zQJonNS)tI@w>CGkg>(;!FFBFe-o${Iskm^EJzi173TB@Wd z9rY>hDF}Atqywe!5*mL>%X_mnu`H42ex^Ut8E6MyqFHVE5=<#57uE+mp=$KGkC(>7 zs38fM)KXfAW_;v2> zkp%)Dc%+&PQG>L$Lr9Doc>jaL2P9Vsp{eGhVa!6r0A=G)+PRR=p~8!tF!TID8ph^G z(9N0zsd>2TLZi^oi9MC?!h>DnAlh1S9@?L`qBR4!F7knkuS1O|BXKH=ps_QW3r+Av z&-|8>;n-2;iaWkHH*)pVzW;=^f)|g|a}T5pBON-o3^Q;oIaira9HR7WJ?g1teTaRw zn^D(UAR?VVbE%u({8Kl4ZJahbv}>znHdJ`s_RQsPcvDEU_SX)>xzqNaq0}CuS-FF*p?F4d0eGhw>*V_Qs6tpEJSO!(af;Gh%eKk95BCl7& zUr7CEqk8!P<^xwm&8>$!-uF*$GNo$$6`+eP-<5l78A{dhZDGU}zLD%m7}kh`Mph4t zFx9G)XF1Rl#v*ByNmU7ICQ~-Mx8^=BT0jpSx_U6H%W%7q^LKYS!-@qz=?tf(Yoh;I zB8Q9qdH~$_NWzqUhTgd8_cje<-T)`8Ozit1wZGrJl>a(yJ&~Ptze0Ri(SL*w}&Q$U94;B*NYN!Np z6;(hzaP=!1cw*ebz;(rZWXsBF`*M8+Tk~s32R!FQrT;%GK0NTFjSp1ri7AX+$tsA- z;%|ob62w-^MFkK1LmE^*0X>o6Ho}EYEUAZ66to?i)TJA3H?t-g6f+h-daNx*pgm~Gf6EczTib4` zZ7Gbl<($k6VqjEyxV#Jd8V_VU^MesDX;6B6li*{SGyQpTZlJbGu7hprKR`m`XnlSDOalPa;aNSq7IzZ~{Mi2`jq*@QLs^oMd|NT42jggsv~=zwu50x5Lw^Ys%}oo9rDnUjeFvU4Xj^tE(F{midmbLo;*B z#+bVgrQiAy)ED^tIb(PSGG1&$ukzrj#Fb*NE3%UZ{1Ny3PI{_#9+gz3iQNUyLNs%P z`weQ*-C#V*=={ta--m9z^}%u0*g*KbZBAOT%j#yxdCzuQXZ3A5>H~!@d~)E$^CBy6 zU>O8+%WM$25pgsx!;RL?r?-^Mn8sW^%BN@<%`@8T=WkGkHxyBvR@Mo?eOlAT8jlAu zVk5!;(|}TB30v!VukA=Wr1b`-dD=oF;=RE>YGHb80Ei0>XUpBlm+FfN=51EI_|88W zuAhndp+~VdE`9yn%PljYOT*n5`b3+si`f42QeNn9F}(+K#=tVFG+7S!d=1{#CW1r< zwz+A<#W?|JimbYL(kDg$eLp_Ygi{kudvkSgsC_##b~R6)AX6LBih8c2R6UwKExYKO zOrP@JrUxjc7ShJaRsGoU_xP7^iNNANf;8`(#{BTHLGK18p;7I{%fM`V)k)WI@F3Fv z&!sjTpd zcsKX7J^lIlx1+lv#A5-mLBdKgJAXcaKQPl*>(>~hIPWgL z!tRHASU>LY<7s{3r>dMkk6WXe92TrjjinYF_MOO$x5eL1gOAbFSsn<3i` zv>lZUw-s3|n+dX8upmwIsBjVtKf;zx!(q4ZW+iDXZWU-xzY%TcsG=GV8$k_*kJ_Ov z-6rti5aq$B{9;mA>y25{JspSK$c3w3s}HNmYWUCQm`8UnDt==>^tjKF->8Pd7LgSF znL+ZAv_p0d53D3_+HO|zjp~h=7&?nLZ zBRB*ar?+k(lIYv3)F;)ka(hsN&8+>vY7fZmx*t#2^$hB8@u?%fM;E;k7ULzC)~@!m zio4e@$%p@$2vs#{>Yb6XnN>!8@P<3;U<-kGvvFhhU;LXYDp@i8OyFO`qKD&z)4x@}eDmuX*vtzM zmAj6S;rol&9uLT6_iB;E>h|eiMVzI=As2;tsMl$b)-PhBzryg2rnJBX9QWwFHPzqG zt1SbGM$nxvv$ozmZ9g+78Aq1+L(bIJ){O!R%0G!8Fipc33YY{5E!|4-J*2`T;#Gzk zZyS&X;strXJh^WG*u*O#Ie(v_3JA4xAtC@Z*KI|x^~ zbYpNC_@MW;=d9Gmcef|Ni$2N%lnK-^t|_p!w9iSZ7Q=dJ!bEe1?>IwFwuvRT;%~iZ zEM8gyE_p2OyX|XgYAz-Ot7(1_@1l*}7GDLbxgQvl+eOcO&})RXjeak(kN@NAcpWnk{a%7Z{h4y3yz_H&FDD{r~5nA2s(ZF20NGBE&yi52`$CZ z4^^7BOM0*|?&AuHu z1|G>Kyiy`uV;-$s&b`9?ElBnchkoi0TT^h<_;`RSH)C6)ymH$9@z>`}(qU*@N+y}d z@6_VkieW1_DmaX0^lht~S1*j+N19e0?eR1mfcApT`+T!P`#6u?9A6EWgn|R;;<^*8EhRG@*xmOyA6&efX&1{ocv^CwJ#6+2^2f%H=u(fLTL`nxQ}q#|uj z{=fPn{rhuD2E0*z>JeswFM{iI$kh!02~%e&#q5IEC>32~L&bJ-9>~F6i>7*1vV;nEqaycR|?0<>ail zU-jI&jF9*Lu5)`rL;9>NxQK7ZMC+|mwW*=(XoHY#_j2eIIYloCs}yV3$w`2^nxIqV z#g9H_BFGdQVOrUS&a1o5tn_O z^GO8U48gDd2T#=^$~<xZaZBZ9nH_Z`V)_^GL?M*r<~Q5y^8M<41E#+B6N-rm zp3VQY9mqv|mf`Urd-FBLSrj7IzCy%LKnzKd6>aJ~5LjIGSrEGu;$PG8;rXa6+*4}} zTFC(ahDyc>i-2Uv)-np?9YQInmy*7%8DD+FyFcFdalROX7-e~S>rHE7!-3Ot{! z8C24Eoc~e57LK#5;v0WYL`Tb8$>MPt(dBZ_vA7jW8=L)n zoozk$Ba~3Q)-P+Q5CIkr3s1y3>~K3@FHj&u@ZnYZ@W@&2Xf&|6B^FpuW{O_kT@+EA z8_e%_oBNZ4&(Fbuiepk4BIh3_VBs7AiT1(szmFRWN_8SFu6k*CSr_#+@oH)Y9ESvJ zYAV0ZcEa_Bg`3rsKFV{;4-%}!K|#gacoF%M!gsxqo)wO~YjO1dw0fEsynb>nNQjHL z_k`g;S-rr&q>;(S(2H@)ZFhcdiusi!y>`hF zeX4@`a3qb#y6m&CYQDNg{Z+L~xAh^pwy=PJYI zYH#83Y)|EPo>ShcF z&0d)bx#&a>V)^`!d64c@{L6TOdK$I-24j)7ZSLxYXDgw7DZ zEUoYK4Zy&=_+P9uQJ8fbkHr>1S_&-oATraG}DWs#RNpVp^%nNf4 z1&Zc}a%9Jb^11zvkvCu!C1YcKL*}KGf1mM%)+*#BrTJcbOl0rY(b%6w+3_sOjc>~D zInLJYf5Of>M)8PhxMRE+2X%b46+LrT2h5Swka;S`K$#4x96R%RI$zcod_TyKV-O%Z zByGes=`DxFmVLcfLIU9qN_@wH*Bg79As*4d9G6jkKcEqI!SY^B(6+HWR$L%?Dqb#DfP+{xHFLxd?EZ};=qQUP60z2Z@Ba;6XjDdsl z4zq!khmS`%voP5oI!m25Z{ASHfEl0t@_VP>wTkwPL3qhg7aqIOa}*a>uUIA1i|5|e zemqwDE*EkSg%c(gO5z&L5{8eW0h;SN2?Sz`^!|IG8r?@GBH$6EC89(!4le_ot&WIe zS30_YpFiXYD>E-u`M5a=;NzfQ{_j%eEAjGVnN&+hSyKobIQ<5CL}dU{IvvA!s(}K= z`aU|7#IO`SNMK5B4M@==^xXR=PJEGki$RS3T;pp`f1idI2w`p}`U7qc?Y3a#No;4w z$G<_&4@XVM&mCws`eg>$Gg&4Jf$pZi4ictB|=Vc(S8! zd87zLya`%PWhfd=!Nd3(6wqML+X@6(7xh-sBRqZj!I;OmI)l*vx6Ai=_LYW8HGy`Y z;Pp36=~8;_ery)Fv!??EL;zrXI^#kCJFC~11_z-+#06AXeoFsm>%(04=iwUbL5RZ+ z$0W5)&=t>OFZl%hx^=*I&;%6bNJpzWMWbQPN(DF|e#Rlxoe?nd&ISKixbgY2LhR{n zHbTSnbjsM5ZuCXa;J>)}hXJsh!g;#04#O?f#&B;!XrhX*b~`=fI!a&a(%|69gFR#X{L^r?m8_4s) zMIjJ-R8G#J0#eQorq=p}u;z-(UDg-o84=NQsq;|n*R9vQQWYOF9=gE166y{Y@+J47 z^23LK3xTmQinpBmpA?%u%N5&lB85>=^_(u05B>$3NHw2Jw8UJU&~Bj(LWkmxykv0pyix%d+%2P2jsD<9D9Qhy5^4yncbdA z4ttime1`3^dk$Bu8lIUdh_2wzQ7^%FqPwN10ttsl)^2zzB-HUaaT^qNfj&QBSsFi* z0+7k+I~Y&=Wm?mbqojnx7|FDDZf~ir)YXEMgx1W}AWbVnnf5FDPdQf~EPak?gvM;2 z%K7T*V3O>yh8cAUtA?844;mdeG#Pg%$6u#$Puu13HP?S4_lvXRxup=iyYrD2UUo&j zQhy~qKWC`{CU3gr=WpX$F#V{tKte#B|3Ss7&F`cyfiipD=FqKRP`|<@G!mvZ|EP?; zRt(Xm=J*4lrl_bXjy;FzQOSGV&OD9qO)46q(=JU*XBQC=ctVP^W2L@+b>tN@#@Jzb z%Tc;dbySKd{7S`)mmq{?S@KU6abfL~@up~fQ;c~4&;n4egt0q@z7_M^wPB4k3QN-5 z`W#-aOi&xyR4_6!lnnF3+q|b-Fs;_^Esg@zU zaHH^+JOSTt(BJW&gszne3lpMy!$0;Z9(K$i2lUiEtv$o1bXmU{=ZJzhX@X5L$Yhzf zcLMsfKnnFPIuo~CT*^&~9zeF`Gi5_z9fHUBJ)67R2tEVP?W6;qg%m`tD6>IKBZ426 zcPNrqeFt$bwWdeh*NRKI^=An?dQ_*s1IbB7_-`3kz%n!$rI?b(22^367b;w#+o31= z)#mEA6#Pqx2_4BE8l8bGuBEVQiWQEkcsk%rR)kMUCVJ_r6=<84-E}JyMo3JpJ=Op& zM*~|66-82T+Ok1jj|h@~>ZpfFb?qw_VL zz>545O7!?~axAignw^7#ksBx%Rqu;CgHwepvG%L)hmrFl%QHxBt)4CQ+XL85u&~Hr z88O>xjkA3!5xB0XY>9P~5!kGp%7c~}W7nb_3mLA8%m>!;iEjEHo}Gys8vM}9+ubVN zPBVpWJihFsEO{R!7)oSYJz#!HIPLukn0Se64<@s)Mae<6_iU7S&(r3UehB8>NslOc zU05i>IwoDAk{K`A^w?KJZu-!o%6`zeIpXAHR9wR|tpezJ*Jl1)2u^D{_A)A`(-3S=) z`PiKj*`EglLVQGuyRH zEaqDfpm%{ev0y>at+sbZN+1b+R4(Sa+zq6yo%kZ!shAZ9PDD~h=Z5|{e*FOQI98eT zT?2*BjmWloY{;I)a+Il}%SXARUVjsUqEG*8mQXuwz65)CTqL&ExSw=RPSL#6; z%j?#gUsTzfoJ0pASvA%Xn{}{fZfWPJ9Va=i?f$CZ0H>C11qgw?&Cl=F4>G92ou8_7 z%-yzL{R<7)>b`;9x_ulL5b%d+YZd&(b0-H)c%lT382UlPxx4xn;M2eNgD)L0Hg z-{v9~VR=JIN-7a2HW@7DTq%~$hx4HAYzUL^b!+Yzz}#CoSdCzOxx8d(n;|v^Rqgi3 zL_4)1JBe>ym%sHkr~?A&2$pehnfY#ckFf8d0@@DPu^rY?_7dGyseMC!{7gEWus$Ai z&9>oFWpF z^elS8JTL1hCQ#{F#L3k9I`IGclO^I#8-~#*Z$^M+Qei>It-FtR!?K`Y=@f2ojV^0@ znvurUV+XADxy-sR8V;eIoab3XN()9Nqvq0o(qLg9AJ*aY2FNegTEAF$=5)^h1Q=k^ zLuW5HSbKk*a_-gg0^Y-w$+`{L)>m`gC#D$il-$KrM0uU1b-N~maXoSnGU*-nQ?(F( zB)0v}cotH6qmDURVIsqezmUOSY&2Bl_V0jvCD#G!d5MhKN0`@a=~gxMFG~ljA8gkS zPDZ1TwZ>q>*zDpj(-vSXR67REp`4B~r<43cMT`!zwF43IA@vAilN;!RiVs5xa2tw5 zr{4fGzg2}56aNiR0q@m;JV=o_q&MkfK94=gutQNJvku2ThAseOcTQD^M$=GH>3g{Z zg6TYW;FsFpvN`y2bL)}C3ZnOR-AmR5Ol5C`J5g!TRuYJ-!q|Eg4dQ2(hJYP(r4wwQ zGtw{}S0T2v=~4fd=1h|whKF7YY5b$tA*fdguIAtID3HS&tw_j@*(}_R;fK%N* z1ViuLBq(4Y@BNPx;^3#cgmw^mL5QB2hPbpo6Ib#_n_xrEMCMaGn3Oc2T|sRvcGQc` z^1$Kf>~9!AZ9o6l=lB?9HlB=cR9)Ck2fS)36V{3RQ0zGi^Fg#hyc1tlPS|=2olf>GuNfFi+ zx}JRB@wP-5t>(MB;IDp2$Xkj#J&oaUHg?h^*)xH+6u&j88|jz37Os(v-(^>hDM|)ADd{-XtCut3XV{!b*c%ZArWo;1+0%F zH5V(9i=SSG3+IiOK9R#Up?H>RmETk%sLx{N@Qf`az`T@4-J6>QZ}|RQ7J`6MOF}jf z%;d0MObJGQhauQ+*X#u|%jMQ%`QBTagid_A?s1&+!LcNqyvxt zAjGasHMu`z-?osR<$)RbZS?S>?(ZG$<@d9;Ft(7q3Vo{X#wJo-({W-@cJakf*P?(m z;XbDdKIaYWVjV7C4?B&!ad6Hi7X>sHoQNfEc=pbPslq6}IP*Z}O*2ynOt$gny@{X8 z2-nwWiFo~yP3GkxVn4j^S@>XsrLe9^gE)DeRiGP)b|frxp~a%*vo8J6OgK0YtJw%L z9+=l&@Oq9@Me%077_9-|D>6(b0?L9b4|`36y%}7d7B-3tDsi9VoR8{7 zW-rUv`lVi7y9Fen#ByPt-dQFYOi59q{uB2pZckXh;7Ryef?pObka&`BpoNb8j z$4XPgp_q-9TLBYGYog?M@_PBZ4xY$2h4AZCEFezSKn(+jB_Jx?LPb0FQr58n^A8dJXUU;L3`FnjQ{qQHS+YuzO9S%g zqs55Sl>{@rX9@DGKk#C1QdpA8KOiH=m=O|1mb{k6VZe&0_g@HYWanA^L;c-K$S2W$ zRS@F6*+U|_q!y%~FUE#iW#}Ln2C2D#`C8s1;C3|r#cBm-n*MH&_DJ(mVcK@q{ihs^ zw>ui^(iSxfQewM&t^4bS+H0Hyffv=a7{=;j8kVU`rCQQn3^yixf1I@Uy@(qXaFYQi zK=R7R$s#O~Mc(aBW8DH;CLF}d!0!T-h_UkLyyVZ6CD%BEuZV0Be?2_P=pzLG zIN34c2O}VkcoY??`%_=VKG*)&_ z1zeCA_-mVg;HVHEj#?3fO@jdANL$n*Lr!l#O=P%j*mtLT_O^OK>1-9mbJfI3;69V-#3mSQRqH6jAa1dbf zxRY1$bf~6v)QcElqVSS5g_ZOOM=fF?2JQywyI>{rTA^1pub%APoY5piI|iuc{=n1P z{yv`zK*+)%7NY<%q)%-GE4T%00^3W(?+0Zclir-MJ!b7K~gM++2J6yGd7EUlupj#8tduN}_jwWHNNf)m;Of z%k`?*2j2gCfcfF$U4#ueW{(I~7U|=u3VQx=#WJHsu$PyBs@WSTQ2W4KNDVZ@j~Qr& zCga5B2Xj!X^QQvh6-@`ALjj=*@oxOmqJyjhte@_PeOQb5SOSv{r;j2$HD(MK z3K<%?$d<$dK!y6h*S^4oJuRT_c#zNt1#DjChr72&(?|J(H-1TCaq)S8Fi?fSH1AArBVN8R>5c31hk(c&Uv&MlsLEH0Z$@hJ5N-n+|!;KCAN3fNz83PLCupw6|yOW(=B_QMKiC3|vYRDzu7?QK&scP-=z=ZwO{G@AuS?e*@WCSp z0Yzg4f)6BIGzASsA?=mgZ%nv7U4;XZ;pk&U9dliXwGm=rhvk^CAFpK` zj*mLB8ETw&oPu*LUSp^jhC|60xU5xUoG<*THQ7Zx^^JJNcakeL5^DFEQun<(TWUdl zP#tk|G~lOWoq6ZI5CYKKoHiXd<-=4?EAT#!3bG4PQGO5NTr(^cm>tXUObTct&XyTT z`yL11J_sg;#n7O(j33mQ_kB{6VBCMo4QS$vW%=4_{g9-Mwaxr0%ayt-P=Y5|_Vmfm zlf{jqj<}<#4{@i%VOL;aNj8m@N?`BoxhP=6&x9b}i@!}S=C#dNh2|w1H~qQE)jg!U$AP^D$@B(+h$8umm{#UH8}}5 z*QiTdi~yV8e*@E6rpQ^w*m5w+R&dwJTqlLq%T<924O+O{PCj$ru?1&=)nJZxTx?C?5O7k@H#qJYQC=(EYkYXTeW-NCn`EzBc*U*MP#x;o}@7Zb<3c+qS?w#1$`tPVI=_EhRSV?BU~7s4T({4A3x(=!4CB$uSh z*S`CAOMrU_xqTsWyeqO(hmH&MqhPu@q_m1L#He}{MW1Wu`OrpC7w+)taGwgNM-mnk zq+#6A%CM)FV88=hk_OhM0e+;?q;>^Zx}3~? zRj|Fkt)S$xSl{D5>lchF?NyHm&;W-olV7+u#aoNlxwc*N1UtDt1C=Bv0(rs(eAEck zdSjDa2olAbfg(}%ZXd#e3CR}m;5=MFA8}y;jV1?Qf3`H%4a|;?|j~2}T)_-en2(QNyUc7tq zNl=wEH@GLT2APE?Ba$Z@8(krjD-#ZslVXNf+sfvFsJR6#9Jm{%|Frbd$OXIhVlLt8 zIyYtP-uGKD+Xx%iS;<696*zlzABzO>KmgA19Be_<)&CwM;)VdNUkgT*bcPe@=J+>JCIwjb1)&B&XoE~Sk z0*Pcl1N_3*qa!S@{k>9zM(v&f9z|1uP=2<^i=b1W0dp&Jk?;3FBi)fX%uT!;F9+Ac^UzxN)KuRY-y5^axa*V+wb=m^;!E5l4L1%iYDDUbPb& zElC#LVwK1nu*ZD-aL}QGb_Espisl_yZ=mu|TQpy_oGZs{CKWl3LZHr-5VV5jZRM(P z4WQ})yvRi7k-==f6j2-L$h4zhNyCzLU;{90JPDVJ4%%1~_fk*5l?({`7UjITV9W!E z9&E-1@M>U6I%^~Pu;V4BbnvSwkj7%M=SJX(>v6HxM(G>!ZRok1uvjHWiBB*RwB~~5 zYQ*2fmUsznko#0Q4=ya3V)OCdaIA9#vBbAxBIhb5PUQzK1UTGWLE3+<(y zMq?4FL2Wqg7|jcROy{Z|?DcUmW8JCy1Js+!*@e=GVLH^RmouaJ2N=ek00+SF3tknt zP+tWJg58%3Qx+R1NC9wNz}4j)$Qp<6kS}PV*cG~N-4ZsyyPNSfij2U~GXM9=$=a`y zTnoG#(y%=|oUuqyWQo;TvTGOeZMso96H}w_!vFOfXX?(=*BFh8+6l>UkO61;jV+=T zRvgoqSTXEkQ&JO}qeS86mDSgCpi_Fe8dStoN(Px$6_~kk#J;neT}4U zUw|B1dPxWK+;W-W9SI37u7G9Y&=7~u zDzRfW2@MJA%RH$&J_a5Sx0DB2pF%@pl~Oybk?2}l9HO5D^k4fPj_TO?-h{yUvdsR{ z>$dE*m(VMG>R+&5p`3*`uc>ekWW!?=Q1S~e-T6b(zj=MMAyo$eqV(eI3=po@_qX)R zuGN+dI!>?_?6-_g@f6`HPUMi&$^xPG)0Pd%werjO4 zK3@77$OKw+7#9kOYh>@=QB*X0k^>)}N>WwXmiV~Zy zVl)kzt^jS~K0jlRWc?mN0PC^Nb5{YMkiwYJ*PY525k8DNf_mSjS>gY`BluB%N6#_& zow0C}VGk>}vYmvWsT=;#8FQZh63TzdPHZo1=|eV`!_99dkYN{IUf}@h34~a$e&fPy z{^{F^A6<`5jY zc$U!*Ijp3)z0h`uEB09X!}(_mcMuPwgE2EqVt5h{ONU$>a316F@$6YkNv~r1JQoR` zx*mn~AH7jSMaRSL674+FfXfrH`%-c!g(r6FA)=8u$8yglCbkyTH;qmD6HdcC1jdlO z9K7;vwKI4`S1tM1Y}-V9hmt z70p~m=5n)9&Q~}E~ z2OKs~qT6Ioihil zO7$iRk`X~LUx*z;)ohnO`x}Zz#s_X^&)-AuoyW&5uj1YJQ$uMS4SCTYV!re#A5~Pn z;-pw`YZIru8_?|i-*88;)WjT5vGw%aA?Jy+-3liRLQ`T~qtJ1RVn;Ow$~|iy$-!qL zeJ8+E7=3DZowsfY@wR~OdYqAk{3ymnJLd5}Y0onCyzOVT8OcJFc$%VJ-YS<&QZUJ^VJQ1L<>GxP z;$ay%&q&`NWjnVoo;w5vx1WH|F~KeqKM|h!Bs{n1Kx2Jdc3LgY#AO;m$cZ2CU!sSd z?b?5{-65;nRQG4fJj+;({&2?b?82n{{8BPs&(@%e9@$t54T>Cb7h~@E=MlGZC5Fi! zzS|nC+xBQ|4;t~vJMe#mtU1kR;P9oiQ^JQ~H7Gzjd4k+@mI~w8qCMCA9)W}L6v-_s z9t{m#(0Ta$Y=S^W-J6tY;Cs}~cbg-MqvXu+Sj9!lhjrzMco;@~+|qe`;nNkD`QMN; zx~_}1J^+Z`n&Lkj+JvR96BUhRvz7~qn5`V=4#n&tY^6guX-Y$4zMmn5%C7KPZ=bi~ zPM_2Y3YML$`##`)!gJakxnG+hFV8ofIr}M_>b2nPP~WbsEH1n6yO{q8>|@V?(s2Pt z?s!&3)N09@);`H+JuNC&%D{@qYwC{F>$NQc=y4}diRsvqT`&t)dwwbKbD~ax^VD6aeYv9 z!1QJzqCFRfR!(b$a?4Ajo~^z9!fO6YHU-?FsY8CZd`3-|)&XX8Ad+q`9M$4^c+@Qo zkG6j*yn^hm<-VPt@>rhT_xPm(tMZzZDPp zhSpZQ+-YIeUrAg18Tfa|V3=A@d3nlU?*7dK<_H?2T+j7M?m_)VBpz>_rfJh4{!Mb* ztMRbLl~g8G+6F%_HI*?sEwi!6G>Oz)!npwk$ z|8}uW665P-^GrN0F#6#2VLd&rHPi_$(I2bvMUbb{+zS`w6hxa~43^6A-71#GE?LatEC^&)5&~FRSP6IgmdUHebO2?R;da)Nz>fP>%?IzjmqnHeZf= zmi4gH54paF_+T`h|BZ&@E0DQuO$jbn?3!X zUc+h72IF78(w25*A+020PAHbpRFF_$cdj1}iFJ_U&4nih`!uIt9+>KFHoTXgo@>lm zUM!^9eD<<8`+4cc=no=JU&WFX7HK~dh-qsLlvYFORn z_6orY6Z*yipgI&Y_F8C_{iz(*vd+_*59b>vQ-y!j#)U8G7|rnxAj>OE8lZcgleC{C znTU<<87bbPyZ-g6t@@s*b*=0A^S9C^&rmY34>%<3O#>He_rOEIl%)%4gk291K#7Qa zx!935ZJC?;CKI0ed#sJSBAW!eu(r;xx;d63?huL|dQg7t%MRjuq6kbeIGtd^_HCWj zAjP=Wd$BS(A$J&737ek%H?&1z(9bHShl~1B5fxkhoQhNZZwp6rO)StcyoQ;ZTD)J6 zDnpDN@IW>6<_td@=4kcK3uINn;&)MFYaVImm8~a43s(H1vlvbH#hZaeZX1x*Q*ttP z-!kfd8za9@A1Nsj&VQQ>2F%`w$)@D1_*i#5Wb@4=?%>UWVLL`sf58U+CKd994qTIYgFdB#&q5{743YqU)cQ1}NjQBY8UuxX+EnAgvL{%mJ1&h6asj=*<5i z0m%)E0sW(}zivkgFIz*t`3r~0YV-YqmVZEnTe}W9uyJ^vX@;z=bY)tGlky!^~p0(aGrb+xQ^Cx#qo~U%~OoOiO{`(%;_U^9^C}dhO3h2+3 ze}Q*rddI%^W7B8+KeSI>X%04=&jk0oo4$X55#W2Z2tCeETMer~$0a|0Y@d;>y1jM2 zRA;TWll=0xw_i40me^_#O%=EEsy_j`YuZ^Q}>H>@$?D1g|H&|U~J+R8x@%)j0VR;om4$} z2VTzvNMIaE0}k$4=4xKw$M$d>Ywaxc&Bz7Be=u+V)@-yS=vsJh)&0oSFFQQa{!1ZD zso%$%OUx_{=d#Iail_px57fUGU!Ri-7c7HA3RY4nHWPQp#V$`2v<9~yvqq7$8p*QV z{1l2P*&i&|->csm6Mhd6-RMqff9WE5-KQK&FA-j;+H`P{Z&qBK@oh2NpA27jr+7&N zed!@r(n~UyiKlzHdW7u0x5GSxF5eB1L!mM)Z*JHdgzG)5qq{pU*Q@8c9oO!>XK;yY zZ!mDuoO$$X{RDuGZ{v0RP{%j3930637m zuya2Oh<>mv>7M|uXNEkVkX-$6*a z`EQ1G6lE)~`6;PM;Fn7k1uhj!A2h5MY3ENDIliBMQl^9OIp(crWe;FeuZSBtsU@Hz zEa14#R}_%@!L4{<>zO4QPvl9KDo^2;&F6YgEgix0 z(3G*agr-c4b?UxthZ=IU6hn%g#P8Cg?I!&4<+@1Rd zvqLic&kA6u`&{p~JWM9gY5VmgEKAZmmvK2F0**!A_aZivL>$icMgnvBVQgwAqfEuJ zM?WiAI-ttI0qC*bM>E>F$C)#=k_N(A^XFpRxJG=>{*G#bDDs~+_x$GfO=$g00-F^` zreWzgml!won5w>(J9?HqS~F%b-%Y(17U!6&{D@MN5hbrA$eA-M`0K5~F(;;U%^$>b zeJHI6 z#*U5e1IGEK5ZhAGh)FKa+|{2Bo8$mJAd|77e;#g3`vw^WeC)V6CN?yJL@%W1j3RfmFEBW4l?&YN}@Q01fGyR?IHdC!P;%LKfVG1>Svfhzks1J+unk9%OF5bydWzDQhocd~#N>npWUh>gP&4Fio3MVIE;1(Z$tb3Sdf} z4~zJV3Vc&h5Kx#b8dp}7gf2;`JC=io)yq>iD-m?=N{m_%z1QQ{h454eupcC_ z;OmbsC9fg%Ta@Z<ozcZxgk={B9qZNH~n_k6Z)vvp@bJgzf%ta-Ug zy+p~R*l)e%9Xgj~ceC`sFJqgort!v0-8do>VU_QZlp6cTy2N6juR0tKE-YFzt#FpEaK3y+9P?e%M}m+y<4xXIO(R=GPfrD*fue)&)&`d=!EOwr?(w z*bN?P=!!_{&6IG}x7kr;>{_W72A8Y`k2-kN?@w4!b~FrGa>1A|YI8j#muO;NjxnQ{ zP@Qn!wGo{X-7=T7E<`kBsM>B_Oh<$yVRVo8#~oYMF^-s0Aa?9JM;YrXL@6T85b;h!W>G@p%jcg8za>pSyi7jRFBrruory;DPP z*j)Z8vv>`&7V?!gDb)Qmo|DZLR~h!3faD6^28(~-8RCoFX|BWkZ{+VFQX=Fo(Vv@* zo95PkJPftAz3n;>iR^A<9%NOAevLwK8Nwz$!;eRo;kyUxBXs!jILwDJCU&bsc&%Ap2u7}C3epm(`F@$qk{yMKb_`G#} zxiGdCXPkQek^7gVgCXZ1#ybILU(Zt3yQSBzXyXp|F=FX}OIS7K_(SRN;W&c`cVe&nmPe%Yj-b zEK$Me#3r_E(t>%Es1cc1Mc$MEITYM@7ecvvlzQDJ0ZEN%WnI4K=-KsgZ(huv#CGA5 z7TcT2@`u~5L~)J8R3UhmUX)rIB)qBvq=_}Eg{7{yVn6Dhi1&>jpRFwG;3yil-j{f= z9rdB4SC@q8O+j;kcK34EYo(9U6)9Zt@`aWi2h?m>)+-4DxH@4l$B zi@Ad0oW4HJA)k+ONS&^OHOU<{+;#4&<`>lNQfS^rAZucvu$#Okt7nUOSbp{*t>O3+ zgUfa$7?wT{qZ~q6n+ZI`82;QC{v{*0Z0DUL;r+!YROkrY3nV8o^QXU&r{RcEnJ09p z>e#TbmL|Z~avDLGq{YCzhj}rA_IZ7r+^(kKtLJ?bMTX2OrxNgn)F~+ydH%jXT8IifhM)8vOl_H5Hmp=pg%~!(IXK_C_cp+OonH^832I zQcUOYx}+*U0lyvvMKR$3K!EBVr84C|vV&7~WxadMW)>%n!XYtq>xa-@_FaE$7$l6E zP}+_)o3<5ZT`(rvWA6@>WtmbqN8{sP%h6x^F|N-$i1V1Fa6-?GK>{=Cc9jA@xcLcD zvQfkBmZRVIjud7B%Vqg6T+(<@eLg~6Z|D)S)}dSGy8}01!tVWBhz30Q2XI2(X5> zxe9FP?jQVnC_WJwk@RbsmxVR-HB&C;B5x%{f(hcSD2ep1QaqaH*zOk((zw;!boAlg z(UwB4_aiD{rC5tGRfIpEj|ZM((8 z7YP4um=<|62be=u^bY+m^GzC>kfmLSO>#WM&=FvXNDQ2`p%0X)ycgm1;hkB$*7=z( zJNEaKS>qOX0!P2bHl17t@Ltu{dxT9lzDFcpwMWnf%!!5p7URpxw;YgL!vUl!1C*!*~2a)u5*W;DXl^gO5<%w?E zAQr>koJf*-8c(wBOl6ZY-+5lA!jPp5e_dQ+;SBj)*PSj&xn8&Q$GYppAjh&?--ePgsO2Wj1ZFfSyH7 zvt42q>eH1{%KP?I?{caG^sf3UV4k1OPd*zIRG3LA1DVjQaIbn4hyx0gXwIMT2MXO> zCTRMJz={+{?|gY=mgQ)N+qe%TRsWsT`!I3w&A1_9VkMHr-EN^aPzu63wmMnrUT#Dt z)Ht~v7)$fIa1;5A?Dcowq+`(LJ2e)U*fgyU=dQB82EH8so{f1XCBV)VHN*b~CW$-8 zY`t6<_9bqh(8=$Ovd2`#bk;*l-5JirPceJ-!+1+8-MHPBom2NKj);Dr#FHjY={OCc zms%|?#GT|Nz_Zg=OxHrdbX)Oj7X$YFN)0aq7CRn81^taT(lcR3=wijz*ZM%H88 zzQz@UYx<6Ja7)geM7-0SygHW0Iy@^+I=_kF`#)*do`h*%s?1`3m>u_nTeOZDXC7-HoZ0-eq^H5 zIdSL5Y*FoDV|ZootlK>k<$1R%9)`<;KfpO0%KSBOO?BO9Y9+ zqc7(N9?!IFyV1o4Eoug54z{^ZUu*9Sogi7Ew@WcmUsSPby!J1ahO?n-lMj%ys=oqc zNzuA1nO%qpBdO`9u~ei;H*Kw=SmffOoAzw%o)Xc`soE!F`QZq1%W1n#nSgjWkzLkW z=0HLnZMblZD9Vt+KL_Ti{$;#xt1?R}c-b*gQ08xvehCd**$DqOmxL95ss|FutZgcv z_YBq8wZuYV#{5vGG{569!{^)9EXY2L>*R|Ngwa_>@|`?Re6rBeD5o*oJ1O@P0FEiU za^Wp5-Px!3?!6EFrR9*9v0i@183fMx+)HZZy6^xsB=FsS^CvwTK^Hv^z$ktlcWz#z zvi@|~z@wwuP|ti?TYrNV@s3?qb&fak-<}uZA;&IFe-K%dy|QQ#LNu6QRR%+%` zYx)Dvmv7mA(<+fMklLEY+34P%R4IHlv8P^aCGa(dGkKt_SEnh?JI?&3=xmKZM+Jfw zM3VD^MPrF89`ff;i;N0?Bbg!7a#G96o(>Qv{~gD3`1M@5$Iv7BlmNA?D5U45BoS+U z`wFZKK1*(nA%eb*7dd^W!h9T2sT^{nt)%plc{5I~g`Rpb*omVy>yb9W`eZwd*2C(I zHI7s##3(0$QX$8<=#EicJp4mp6)ec>GsI;~W^Tl^{C@eT}*ha|Gx)(?O&ZP1gPR_7L46#1<4>>kw7xmHOLr zuBCx_s3C-0@2GJxFdJG66A<>L+)+S0BVkv(l%jB`Oq8qyYcip1iaYQ)N~w4`Xum#T zSE|7Ipx@w_ogB$0T#jUUXRZIX33@hRFKi$6Ch_U zn`vVm!%O9~C&HURD-Pwnzx9UooSv|r6#&kwC807&J{-7ep8!QDiOa{YVfI$5&GSu` z*$e`CBlc*>p{GeM=?#zc;^Ix3=sR^z-CS-^i%N5C->Z#vY?MpLVg@5Dla3I7X-&`4I_91d zI(ENIvuIEA+%eDg_i70!CvoZA{UvRgbg1`}L2vBy2Z@52Y1fxsvT18cnP_OARe%G4bqEmT~Ct-c{S6&yqYKrs=t)?;kAB5xX@MB01vzyI3e?HpL(`# zHf>nk!BCk=Zs7~SZM*FY2Wf@(^9uId$*ZfzS*%GDc?-@So|hzS zRKBr9*%9SP4<+q2ls%p&uk%DqcU$eRWll5NzHXT6uWzQ3&-V(I!zWTa@rkJc~r|G;|?z!Hr~{NY=8_ z1+g*fx^d)01tv`4+{H&tCI=QIk9T-)HsMuU5&b0ICRI^$FywAMtAmgFXloUO*?aU_ zX?(AtN_)FC_T5r0{*i%WZNxSCh?mz83mB{EZy%&?ev+S=mdboECakp*u#kk)4RBt2 z!SJsQU80nnQZQk%)0HQn2*_6w_T-MlmJ~v<+3Wdmt3rHFr-h%x$eqMHHy;YsN|o#F z`=LtgZ?lH*DG0I?%-w%Y%6ik{Bpn1)yQzgY*_Gp&dtq$pdk-XzLCX5E>tNdTbV&$D zuqv$B8xuvhGH0J@nk$VbmGJ&KSj!krFgo zkHf+NQwA%eIB|DGkIc*G;Hsf4Z+a{o32hn=9<%t7Q+Q)QX;Ic%ceABf3bwA};*2_g zs=NgrzM8a;oJST8+@flzvMvfD2fa{sUWMw5e43MD>MUL~Fdeu6 zF)u!FSLRZswO)-}y&S<{bNp?;SLlU!=L#F?@jy?MvP{ygHq7L(EGf0n`+7uD!gYzd zNai)VjCHZt|3lMtI70pZe;H*|$j&&UjO=8OLkeZoN1540WoOSbvvxfaP*XU|ldz!@&eCE^KfKquf-n={ig9#Sr1$Lom0!R?hQvKVSlhmT(>EIQ= z-<7AlujD9X$sUL1E=Vg*(sOy8RB0wjj0J2xmztDO| zlm}}|C+%vp!k2kc1y7Gd+GbZP&h!!rhulfp{a)^a+#^RuQpflVlhkQ@_eLr#GN!zv zo@4jr$c2L*4<@S1?5lyV2jgG7orz-MKN&q*i-M3v@sW>OEU!CqE z!;CPD`&#|nY{~+C)C-t+MP%-ZcNQ6zSF(TVA|aT{1-2t$fG~o3K^U?Oobm+EV+d;X@#p(z9xqO0mHJbr zyj=K41ut=P&_#Gud;dIHd3m3$Q8Gu{Oh2u+@d6-8RN-7f)-i<~#Or2afC3hzX8eDS zos#!*&Fjrsk)Q%U^6O1RsJh+!ldA*gXph|b(@;V^*@H&=y!c3m6)CBF;G#ouwzZF6o80E zE1xe$&VP%MJF0w>OIDvi+nw*dFO6%%e}3u}Z#dH6erbFbt9gJ+v^*m-^QxMa2}xXq zmY>%4rf@ORw)ECaUyZQ*sepJ|`$0~DhLi6O-5&kTOa`&8nSH_b4w`pJO5PX@Zs&_W zf5Fm>WM}gpD#Tvq0J_`>?aX=-Irk=sWZt8YSbvTw!m@)T9B>u{E%ycQ%WcU`#DvV7 z3@eT=tTdMISjo-GuMl%+#QZn}6YghlpRm%7A+S^+xYs7C2t1_GZ zUb9Pr#CpqmF%JS&maVvw2{TKW$bfewJs#8zU`s2Vr50z-q(RA|yzcbm(3`OWSp3Pn z(R2tO_pR=}@J?C7SbYWz{{i<@oa*85 z``DBL;gigpE>+hh?AwB6&jO+X{%hk)zPD>AytVExYG+eP-@nL9O}BzS73&0^?xxe- z@SxFdfTbEAp{!bmKy;JjC2<+$t*bE;FR zvQWBu$AJZ4kceQ@bEzp^kGv)!McT5;WILolZHy7?bfIkaRL6_Mc zo5CYSlK5bWr68sWRvKYb&hqh{89O>~NW=c6(dqf<<^{GZxA(fJ^^M-;tdn~VCELbd zkDd*=%Z;uy3U}pM$vEj8P8>8Xbq>n6-}ih(vKV!Y7-3U!em_8dgO3zm0`XVXBk5r6 zq!k%qbf$YTq;-F$HRDXkAG;L^{BHHel!b}+vPrH}tbgbi zM$&gM_H6g+N*^OMLwV70j!?FowZOKiL$RzxC`qC!ZjiC>Zq@jKt z$N9LUzP~8OA!f4BxRd!3#>k>@Op*FF6F4t={ts06Ol;^|y@Z%|;>e)Le(Jis!BcAn zsUS=ZJyYUMhs+poI_?c!YYAfRN#^@#T4q9L(LY1`3aunn7AKWw@FxIj&Bsb?sB%tT zqFn^j5rS(i4qYdn$k*Ohj5KsJa+c6Dt^cMeHG!tVRhu=f=3_w6hO@G1#|tM)HuK$!Fz z@Bx1!&aW5?YaMI7ez%5gVPVq#^QW785P`SD_k;_Sdvwpx@=o1v=h3Z@9`>XK3$o2Ctc;nX6H@Vz5_~Lsoi<(MX9D#1fawzO@&i-+P=K7dO}ps4 zUxik|y=R)&x%kLs_A{+l`Pr_<63?h6q$Xax3v-BRhK!-?qvM>3}u0-aD);w~Ekc0OSKB-Gf9|Fa*<8|LltPe7uoT=AZoR2ojrxyVSneh4<~;2S(L_u3~Q2WWj-j zuf8_gfJ-wDNfG>8t%FPfcrK&V*EjjP&uVPVctSnTlSn{2{#F3cHMuDcu?(8vSqA*0 z-X+ua;aa&Sa}eRJ+b%U&^ZcSW&78-KtOs89k`F~$J?qu=nrWb0Vf!J{L>Ho!#Ixv1 zZXDwiJXk3Bb{0S`88j9+GHZLCaQ#<%_QQG!x{gmhMr0o7|AG=h$M%%?`P)km-+))*M8_LVvc z@l*Kf+LqGQFEN~`4x!tR!+F+s;9n9!c=X<)t0XDnVv&@|EN&Pf20}zX`(fVLB=Acd z1u%FKd)x$tk!s+pVE+3m^tCey&{e%wC24Fo{6hE;qfNg|!+fd4|DYcx5IX~*ofKHs) z&qDY(nz^T7g>LH>AB<+9`p~~hPXlU@8FTr|;HiZBnx_Cx1k1z)v6t1;92BSg=+{6l^)PpvE z!wyfjuR&zZzhoug2hX>PqDQe$+}68Mj`Wm)jSc@x!~|UDd7dQM=;&J|)GRK@0QkX;MiY zp0{k92zZOs8SI%N@VNX2CxE!x^5dyn-GzoW`7a+q_4H=V>oY^w;_@v z1bM2@6G_r)QQjP~mof2$>9^bD_Z>515JiZJ{3m9LTp&@!Gc1fbkO${N^BAUm59kv> zw~!gBD>=6_E0tAEP8XDFJ*;#A2FFzBE~2R_S${c~G}t-->uD1<*L$NTAzDn}aSt{j z14FLJv$#-dER!0{gCO*JOD3WB6%U3MV=H6nIy?DiSG;p)#@MbqzTgrl@u!yIcm}PJ zEzbyj52MC2fIleWucRUp!~;`h)5Yp^21r$>8!CEjjcjhoAZ}6`b_kjKpt~lp#fl9{ zIUbSkIz-{8}Dv~ib*U2pR(u?ChCU)iMINMEWCi@6G~bL+-7 z6O?7&T=}I-)pZu$51rULYtO5HmiA`ESxIVUr0oJq5kS0CY3Mr*DXLvrI)6bR%L}gE z$lbd^LqHNV{Z^gM{(kNL%em|XE_0Xdt*dpQl|9_uZbDwa?iO9cR#RfbY;DC&?gs>v zLj|)-bq#}AY{0Mo00TP$V6d0b7kkN;AFjxkcNSZ}8~>-J#Qa%_^K^Pd9VD-W`vyV( z`F$NcfNpjF?Y3~HA)7gV;$jkVYZDJ(c1G$F3eOev3jdZ0x!PL-Ou|H>&5yo=ZQQ)U z@2MxTu{~2&VS-WH_&2D-^LjWXM5A35+A8WuWktcK1~UdsVp%>fBi%W|wke~4!V@-k z4Q>v__8iXxIxgrhShuFFNzHG7LudVg748> zI^1zGSzwX7kS8V&XV}w6!N_6*F57=+5Yr;SyD!71x&&_Dt-1M$Aqs{Oy)R_Uph;qt zKZ~oOHDw(l#NglqdJPChggcDO$1Y!Oc3-VdR%l5>3UJJ~GUs;?LN_FU-PFgwecmZu zP&wpy3DyA&&I`5WLU!phWgO;)X%CG;)~CuKSyuKG*UcYQURbMSunQS5AG)`Vm(M!( z%}4~MHx$KFyti!KZlK|O(R)hsU`vyBVbGzGoYPhTh`Ylfqu+a!a6s0qRCWdGT{1giYNvBVQ1%#OM1`!i@hZi4`t6_$?wNgb0w5&T7id(*#j zx9KnuWS}@Xv)QPs$>^>CW0s1{F{r_e=22LRf+-YDF3>;eVRxkBUW5;5qTrsd1tfFM zE_G>ZMGG9k+ckOKqjA{0QJ5V8CL}(MBgeANKHu9`{gbslZz*eN5`^jmz!S%iyiN}V z`IP7%c6MzK_*CgUF9o(NN&){C5Gj4kDx}TukhjD@m3^}1%&;@G`A5q3DR(Fxrgwuc z!S#_+kM49D3H1fpscYpX^WLDOojD099kqP@zQzsgKqw25QY+V?tU85Jn=Zkn+3Ln< zQb3rTN?D}d9D>;MdZ8s??H&O7th!`NH}T8EAJGF^zp{R1`WsnP4YAbAg0E%o-}<5V z_()H<5okc(?VT~?d=Cv=N2XD5mtIo;+9emva!PdkL2#G2#FH}Bu%QENos z=|lCCox+`7-A7JiHdEHC@{-V&^qe<<%{wR+D~aPvKk5A5ms#d~ z!O7|>s5&^xH-6jS$+;pX^Qwk?uuXG!xh}mof!zFn%iQoj<$8kn84T%9E$Oyh-tV`F zy8*RDTHV^Y9UT|l8!K^Ny%vsv*1)Lwq@6zC>@@lz&jdZr^2u08I$JG%w8vkGB7jm^ zCKozDGk(P7a2=cuJN}|bd5PUOz_Ur&(P2};6Ua}1KtTayTaC+AFww1r-0ll~GyKnV z=@Ny+v5y^YBs#qDWeRlu)y=0l%A4?8Y8SZs5B8)iREeGo5fQ)@591RSWpND8GkP?5 z({22+e2mK_y(@3n3aV_+r<@s(WR}goUY_?vAP?OItG9Q1-E`0nfS1r=c6#{OuUrGS znB2cDMmfAr4@hN5(vUP#=B&Lga;`$lk>J{(rETs6P|!csTlb|X(f+M&lxJ2&!NY_x zNbC`48+2}TqkA|Fjr$UbKVYlOyJ-IWxYK(Re@QPY%@Yq33v_i6E_(AW;4bSy+qP5= zTQzUrGw1d-;w49dJ+}Dm`WeYpW{jo+u=5MOrZ+VC7F^5D|JHJ72h1=?^1y6;0ZbAE z43mhkKerwh2i}wuGcG#jh3<4UztpqbBmftdfO5Cj-vGpWmCl-j#6e9w6g%)r2dOU~Bc^X(aCs7ryzlOHlS4+DifPU$V>MDy5u z(J7Xcz|YrxbrifA8NkFUQ?2Q2v=a*63eDzwXz_&TyO5y_C4W)-=%>@~+mjwH!VZ|v zCY30*^Mi*ZAyvIDCD|cNF^u#I1+;-^RPt%%RN~ZqQqB!R@LbM)ehlBCddfrwt{}O; zO`v$xf9q7lDpJ+T!Mz>piM2=qD1+-Oixm%ZSI*>m<6f_gy&-EGT5t9t+dW~{ufB2> zyqw0e&x=ztxmQ`kxkJlOLXdQ z9~|#lpb5O86F_t{5$sUB5ou}LbH&w6lb}h6_kSW&Iuc6R;%N`JMo&j}%HXwcCAq?{ z#<8(hzu?ZoXJfEiDiwsy9K+=cIYIqLAR}Bd<~38n(o<|2%l;SzfBY5|;amGItCCk! zmM$4&q|ro|(PL2q^(ElAqB@8;cYPnr&c`2qyWd^_FX=megxna}CdR6+RHY^R?-@)U z*&oAqy9#crf`?%CUwnC;to$M$9slr8nTvz*1u%mP3%}KpzBEa6y-;I0E?hGBu;bQZ zX0190@)$FwP807-&LHBU{jmN}z=G++48U<(v3xQ5APEQ5G_9!^%FL$0f@U7Nc}O2B z_Gq-X<0rTF0*J2bUzzcr9+ki9yaQSmBc+*{kD$(hiuq$Cc$}-;aOHvo@@38NnW>)5wZG=e)he3+k68mzh0? z8}A@KLmaZvy|#sC`bgjlOS)2R$nzEl&5Q)MP8qhXhKcv*Sea+F*WD!`E!vKtjRP_5 zscevR7#=3}WOnoW13qu-G!NlFe$~8w(_CZUd0hcGJ6bkwcyvDElKmTTKaxnWn1;og zj{}k@v)4~&+^U}63$D93)R__Tq@QNh7yDt!JFRX`^a$?m4>~H}vUGcxL46m;Vm{sD z`ZUn|Q|>2%w&l%Fi)Y8CV7mSIjK%U~$#~5y80)KytaFxHx3A+TCrmZV?B=i#ZPyff zrix)MjZiCeAxVT{n8`WW!azh`A3K*+QT)TrwBIhmI-kseUN`j%6Y>Q37;Nk0KC2df zKF*Ps($aSIkB!$aP}W^?HZOEEpUq6<7;$>h`RBgVfC{rfoeO2$=OP^}09J!sNDfNx zgkG8^#$mDr*L|uV^|=Gsz73v)9Espbmi1eAvbn1)a=0_Mia1mgU0IT;%^QYzrqei2o+22`0Hg6!1bf(|Wv^ZX zON1|bm8yuh!hoD;xe>!L$fIt6telwFG_%jBknr`@ncw)Pv)Z-~pxDMH?Z8=Tbh{qp;MeC6VBj1)l&j1wTX}~dy@Y#YQj4e3 zfR*Py?z|3SCr1Ah(UAg_L>llaYKKTV`tk|6O6NNc>m5hjdk{q#6ib%UrD^7dn=5=j z$}9s24v!tTBA-HOwLmvo4AbgX2^JN_jDXEBMljdfr72~lK?v&SWVAQ zn9{8EI~4DV-=j&;jaNVa3%;cwiLy*N$Cf)-{^DI7timKdL#;!vJlQ#)75|y6)&7Kf zbP61CJH~e$o$J`Zks+)7MREg2Ic2l5{ic%6=g0hvK<|nBQLkFU#-sBG4 zlO;P?X)-|}T3iy|dcXH%hX`ro=c#9m;BM1T5muTE&LQIe)2fA#S&b%uDs;QLgoJ9?WO#;dqV4s-nW%Oq zZ)v+&r@zY^d@eQX0Vwvl@o9K(YVtEOQhEi-)oxkBo*Gv=JN;3p z`k*FaVEn07eHRicFUH3Vt}&)Jpz^W~lo&WYAky*PTZn z*$2q86f7qF5c0BHJCe6au0{8I0WZhldz>>YiZW=#P8z{8T1N8a`1vL<|J#&z(1mxZ zJGX;|T7`b1=I9^Y+7Y=*`9%Y9ehrt4BloI$U~tQF=M&Z2^A&a1j90Vxar6KXcsi~C z-q*8jDq+ zrmy!z8OotSCU1Yj=6B#>9uUR?Fur`SD0lzi()o|#{P&}xRA+8BrweDsrAZ#od%9-H?0!`B{3x-y`&D$cP`B6L<_>rKE}`iDA6 znK`D~IR|D@%fV=Q%&wWX1$=5)G$i;B6Q$AO;4D-6k7FPw4NZV9f>Pv_c>A}{3hrL` zIR3gW$JB}dJzjz*SetDum{Z+my6C7oH!{=vzCWgt#Rdf2WfJ?c133C!Mo$D-mIgWt z!6POG#L=}lF4K1eVS40!)F3L%2ogky#{uKXP zVgC&1QS`lmTTtc#Sk=b#a(0pW* zQF;=z+z~_S7TiSY^$TWc++>JC3^`BYNZBrW5PenNr#nil3)I0}6O*cT1KoPM#O@oA zF&}==eYS)A8rD@YYs6?Hhf|IKgJ%DIF|&WCeeiQRGo{UY5no2^yUbhe+J7i@=DS?@ zQ=#|qW1OYY8&omC_;j)-7yZVf!hS^59s_CP$euof_uPMe)u#es^$MuMd_zFfp*wRY zE~b@ui)Fzrd|A5L%2$)quEZwTCp3JoOtb&&>nxOkh}SpWi=e-D|AHR{!3|p7&XiIo z;hNec?vkD#t{yBS4&pm?;(tdP)+EW~53>FW?wzSq$qA&id$3Wt>O0+gr769UY^v@D z^hBuH2<<1_dK`R==7J>U(!39Fh}Yxri5p^^)Y_outG@3~?(}!gy3{m_GO#bj{B_SS z<*MlnzB<>5ePq=>nzb9<_;1H&Pu~Uyx+Y9WmTvb*NF<(Y69uor)_#R>(Mm;@wD!t3uEPB#ADqH!=`V)g6khQvIY2mnf`Q>Q-jhuLYM537 zm8FXKD+hZcp7WgSdWnK5Wf zCJc5akE$XolJ)2|Yah?M|9&r8btZMc{q!ES=QRL)VM~AgkZ!btPC8R@ZgYmj3Vn_} zXcnh?{Z;j9rhX#dsrFZtpu;gj*u$-mP_KdG%ZqIEa535Oo{{r3s}7{;H7mo+Hr~tf z=gZPDn_&A5ZoFcc*esk(3SfMzm5yxNZ8Yg0J3+)~q&KQ{k>0DVaQ#VIcJCQqIPq~d zn)!zo60v$uxvcL$VXYJUaX5X-0^x1n={%Nj<9z7(8?I1yX%rq6;x7sn-wNHg%0TMw6;#@#Idzzx= z#tGkWy_hSQ_s*`6M@_1D#KAxqM_AnoO9$HF+!KZnewD*OB9Hj2}Mv=T=}&%01uM`zhQq9lr@`f=%|J8PwSN6j8se$^H#I zqWjVX54j5pZSJbUw_W<(t=1sZ(1^=!8G^k6diTo+?__7iOA9h^$cVbC9jdtlk$i#jN7#Itp zXN;y?x-kW$Lb1ZtPFY7N)9&|RW(F_jZ~tYf*8aQ^aN%{UQMo(>zdS$ks<*I`A5YKK z`&m;PU?gA19g}{F`D$Cho?P4Rr$Eu@8Gex1%6BKx8IvB}&>s@RBtEKxpYYnAnX{ir zJBvJvsG!&)e(raV^LP6b-QC<8sJ2InmcK`$@f8>Lj>55EOS&r?+R5F&5eg$HAE3PZ z5zO>Jv$`zLo5ec>d4W~$wau zpg*X&v^X<=sijuv`CUZ?P5?r!FTxUfR>*!dNMC6>EjfK+27_(MCLk91Ftk2|$1nLV zU#oy(V7ehM<(N3gT`isllXbvEMLOtrk#(K-ohBe>n6JLC?$Az@cQdUmLg&vtQ7aavcHLw~$?-nqrjzmH3=yWGhV zBV7E8uPyMl^6*eUXZA$Fs$jsKY5ZEV{H;8uBsn$8;L9>!CL^_lL>MM^F{% zMyAqcCQ)>O=BAGqvd`|~4l-BpkI8LD-(sK?^3)=rzrf$zt3_Dh?gU%|I6xW_TB+Tb z;upb^wr+4<(v)83u@RvPXKiJvi+C0Hl_<*a>zo}G9=m8Q;~D0tM-7c0>?VsfAW#9K zb5q%p2o=LRGtE47eHEMdrd-#@FrQGZ*4X#BG|8b`$C9ZtX5j4S;CD_fum+A0o9+74d~DoU4~BfXcIMk@|J`6* zDV_cdeFWQ++`f3TV|9V`cOwM*gsc@nlwokb^eoYUhm}ct+V({sq-vx0t2YCX>=4oq zt#PMj0Yn0SRM6$pV*71*O}}Zs=1`mPZ~CzdXpLtsm7sS4;r)NDD+5#Kj8*-WanP^!)RuwJ-iYW&9z z`d|Ve_Oia!u2)1MGz_y;z>5sxz2ZU z&UX>t(%`)4)aNp(EHId8)j$ET!dD8y`Vr9eC)mnD%^cw9G?!vv4_9xA!`W`)H77EY zsS;k%jB_ZmcP@Hz#0Ne@%UDKv$ z;O@)PxdrFIW;%YRN0eB%b*c0!luy?j+#PMcS1@(9i=B+3I+)($4HLUF`^*r}qm)i? zQK>A&dZ}yJdVBr^>X>URa0)4e%phIYfC>*{zGH&m6L&Gi#oX16N`M!gR6X^D2 zXy(dqivPL{w9PX#T|Dvp_H?WOi~^#gy?&1H(OzvRiSkn@_MoDF#?eb@K*@R;h2J=| zl;z$k;GSFOPRnHS{_{P2rw9W==!@=?Lv9xaLsr1-Ha`vX*|HbIG{k%80{y9@Et#D@ zY1MTKAxz`qtxlKJZ^7Ltu8uYRHmXY`YMv|1hnr7rGA`Hf*$2oN2nhAeRaVW$)NlM@W6{gp7&W%m((Pd zAx#y2v=#b-GgUL$6eXgWk3?oRY@-_bns^r075GHx*c$D&p*2a+j<0rSh`9CZe3UQ| zktxp?aeS$GJkXz4Dh`H2HGL#02Xx2R?&W}_VG05pbW5c=1JtOtql7wSrH`=NPo5~MZF3dhkBtXBq{ zak2Tt>wH9c!~{>nu^hCH$hgq0_YrrONOnL7(2-{cYxX}s{3(|Lk--8#ax(w~ORVHX zmZsP*o>Z6BFBLglnm`Oy6JS>XXBk*Rr08^uGU&$U46yFm@tA0gcYXBSI*t9(MT%g3 z3mqej&$i{eM+3&~h$}7NP>r>bU4-og{ghTWI>mxg4od--8NKCQJ%~%T)(JWaSNL)t zwIuc1Q}71WYOnc;i+C>5&Sx8oMq-pH>VGx(8<|Tj&imZZ1926)yubc}(*%$7@BKOw z-xfTmQ96f->0~5DfF~+!;O-q(bG58lm#4Z(dt7R5sFf(McyH3P{bH8DD1_|l`&J8l zl=?I#^xzf10gg_XXqI!mRo@Vpq%>>liCjYob-0@EwEMR4mFrN!^m`*YVRL-Mjh6y` zN?l(KbnP=$yTRPSvnNxP(h*+_SH~d^*$Yh)SJn2!8fuCcZhTJNyQ-2~Z>OSp11F!z zsC!i%dj&()E~9+}-78yN<8uWC`yfVpehB96M1_;7qn}#u6|=|nAwDcLP=}L;&Krh} z(dsHmG$#6V#3+5pkdXY-OtMf+*JjH%1e=PjH_Q|L4H&ha*tNjNe9vEhQnVWbW~V~3Pmh^e61U+Bc^!|CC zR{4uMQ1^u@Yb5L!q?dA;di@T~994Kw{_HMkTP$HM+LMOf+=EI#^QOP0!iSl})^d!^ z+F-*8sHoQnQt|W+v?>p5&3K$xXBmVR9jUykfxM|bqWi?BDzgg3F zwlhjwJb9S3!^nRk^fBJyp2^1vcRx;cX=Z9b_*Xpff!%?x&7cZxk^N?J<$RWYEcbIKGG%qs4d#LOMR_4 z1iucMhrwH_kHRk%yX(Q@8v>0mSh>z<|aSh0_KCh+FPNQ_{U zv)T5seVG~fRR6MRqKrcsSu3YD^RoIc<`^~*wk`_XRPv60azv?6N_kP?r^gki`*pt8 zjS0=`wH~|odm4zdqCcHL{zm7?eszT?-vc34jYPgp+`i@ThKXgDh=SMiYdyY~ukp_= zHd)iy=l?uVFF%dnOIY-f6g=jp_xB(s5~P1Hx!e?|E>hbBoN{)a8^4pwI>KJErE>oy z%;O#}$}nRa*~d_8G3zN@&H3=GaMxo-aQaq5WPr;f)_m74w2#o%>3}`!hn|ZOsa$H& zb@qaPhNkSR`AZX=V3QBP9N7qhBnRz_jhly@|lmv)1=;`yX`7c~GOvVpaP$N8_)v4VtNI;q#ph;uKFGS03zOw3_X zN5TV5s;Qw(^uTBACEA74(}5;EG|o(Q@{0XW`qv(N8*-Hx7eR9+vm>wMC+nA6!9N;e zFZT37reKK>UAb^^DBr@)3+uMw!%HcP(mQU=8>f85P#9t+)E|pMjqPUCgs$lZFzSwRKG{U~_`qIDKWI$uZrOdd1EQ8aiWWD3pfaj_-1I3&D)76D%Tqo$UN3HPl zZ)p2>_mOsxhWg1c1`iy#^N-*EkBq;)VcUO)oPtC{Wp*4S2eYU&@4Wk|iV)vs-51~7 zZcuctDPibAss8Y~MWRtYemU!)f+fJENws-fwIPyxf;E{?MkcQF+0yQL1Rark3z%58L?~bSF=2uullelDe@mlL&Iq?P4n>T&5WG z-K&o4O5LHAq$vY^%b>8=zp977g=i%RuHP$_8rpy z6hF}i3SXIy)^W?3FB=N{&PU@8mUD=E$s(#DtoMoL261`A`XQNSc806oivbN&@$_j; z1G+4zxViE|bXG5HkbuJ>89 zSc{<-Q+3~UIKJSbNDt(7Nw)l>>%{nWvWYYs`X$&Pc*;7<$U09kbUxWROV04z=Mvb$Ea&H}H@XS`nPBwebvS_=m zdeeFRkNnjLgoW(+^H2PH{*Pe_xoo!|9>wCDzJ${HT`<4n;5BI7jLC-eHSE8@w$YT# zKlsgmT5)+K@aD6USDe5!!&OSTE*iS5IvOy}qvq2`gA3fY85Bb76h0=#cRu-E?+=P4 zA-A2QK`$N#vmdu-FCd*KRE!rVe{e*?L1O;_7?^ezHWa6q0}Q#Qk|d;neuKau1zg+r zmIVh1>cfsuu$w$^UH**$h3UZC}`BMIoph|^#XgnRQ37!mfhc%0} za_9qu`k~<{`(;@{7fd6)1lT9N(3Yr`?~t(mVBU(>Cy9FQhaS|wm9OpI zExBmG!xRzmlyy&C;Pl7Sig*e+w&Bu)0J+(19p2>{_DDnW$9^Xe?yEw%bal0S=0=^bEB63=) zJ}PiQ5=)$O(2=ls`P!x~-$3AOf!1(qNd;*>B)oxOOBmTby@|YlB)^bTyz;pl4BAkS znm#9DJ93h!P=)js;*;I>|1?{JLPFE z(;W*#vT)ipw<#U({B4=nXUE3niX*-)l$f_qZoP6}q5SXjP0j%%7j?JqN0K|30d}cV zITEqqnv>mv=vSeO##rxBK@)FWp2mt&DrZPh_<>GEbYA<@ZwK~?0&S}5zs$d!)J-=Q&y0zan!a_B&A@9A&JB8+V_a%z}_gj?(R0+ypfztWijw< zzDqQ5>--xn(Vic)GgQVU^w#9T%Hq8yDSna}Rgao}c;ZuK&H_2}>Rm|3c!v@Pc^yke zi_@c8%3LM5%u1ftwzka+3uF9iCo4#-npZS_QS@%f0LBT_%i%9UxP`X*3!(eqxB2z}&x=>nkOA!KPfZeJ5I{pn^L*#-5(&v)uaI`zP-8$dl3WxasXQQnnOjrU^JVaKhJ~ed zjr1lfA!2dzvtPQG#8Mr+h-IN?6|eFIt_Uj)HP3zLoMff;B@b5%DjG_ab8R^osJGL# z*;RmCRs?cZp|Zg_^a8dJz5U0w?w zLH##TMn+1T1tmoXzW512j}tmi`?!uw<20l|P(>kz$++J)n^FCC^zVbM=UmV6C+Vf} zCdoJcPywuD7lcw4u7S}&yviJmIt?>?;mR!s*j9_>ugi{d-Yl~(D{r0$1b41?ltjZ8 zt{b@K{Tv{42l*M&UNbeSbYe)f9f$I6cf#%*0MLt;f0z^L0YAj|gMrB|pn#`yqWKv zo9qGES+#KHMHi1>MUqT3QR#kF)`=f%Izi>mm6iPu)z&IuzNjwM{So6y$n7!08ct3*YWK~e^*JXXAV&2{4HqZNV(RAJ{Vot&m>Fi+CD*&O4RkFP!z7;CO=J|+SX3&rgm?*Zjc z-@RPB_)(uZ=I~vnG`1pC7gCZw!Wv)M+OmhYXYw5mA)}QIJsNF4DCF}+$1&+YlDE1Z zC9DvQDX)WHqE1rnqeHyI?Mdz8$HhwIS6pm{HTS|e_r$9bw*@F zi8WZ>&oyoDN4QY*s3i8x??Yy5fORoOhCFpf%jLqE7_+PKe6CNnPgW#Z2v72dQC3 zxw~<=G}!Ma{(QUFQT&XYBpEp?QRSe2&;pWiZ#K$Gvv#!Sr&=%|I_a9E zBu?^74F9B<N3ht1HSs|Y+37GK*SFaB_1oKj9LldQolpO;EKy@VldnLw&cfW!9~;^X~+tKNoR7Eg62 z;2jAAIVbGH*w=xs*XEtecT(Zd85RQ_r6TbLAEmh`Jd(+*)uF#knyns0RT*1R%26g# zU}g7xjj5Em)+;q%(<%Vb1$-oJ?iMb$NmYk}Vft#{nDFc|8r{UlZwKY=&}3H3-401e zP%aiN1kX=}odkK1QpBGezVp>tkZi5F&~<@2hZ5#? zJWd}wPxiuI4a}i8@ibt;_C9ytMip>B9(b#_O{1d5JLQ+-Z-f358o0f^N+dtiI?328 ztcs7GHciKuMeu8yPvq+n4Mf1Y)r@8l^y!bEp$_)-nAU}dpb;TWb z?}B-o;jEX>`;I#iVvroexIdtmj@x>?Ys*tWYTUz7n>-1}7lB+z>^L4B$G>-63#4n9 zX(nY0XttsR=c6cIKtb-TAc8pTS5@pi5GZa2al>tRnea4MH0MN}akc1A?dD&Iw}m%gpCBub=0Kz>sZe zR>zKs*HCk>N)0awW_w!|6K|^^)#7m>`M*?rSz1jAiK+lr#TzevSN#bVDjvO}3GdCz z^jTq;(BLD+v#2T^>VKTp`;dc7xDms)8N{NcleyzElL&DacD||TlCZPEEPUF~+1U?` zpYJ40P7; znt?*O5q-%K-w;wauulNcn%^iGJ}F!V=u$)YfCHFE7OLmwnr~m1z^=(c1@wDPgEw){ zmcU8zK8X2(*1q6z(`BR0sbcR-S)9%fe~2YG11=E*m8%AAcO`7Oie+IIya2AE*G_m~r$o*3tL= zF}^1=dbd;Sli_h$PQEJ!_LGspeX-@lXbOqZ&mRag3A}U59D~;!oazsMaQVJuUJ28X z`|hLXTS8LaIvE0;w8RQnZ$Y94MvehjSv6F(^dFI)kWI@>F$six~02@k`n2Z4nb17VF>94QIHM+>5vxbQeY$` z2SHkC5Qdm|!}ojd{Rj8ld(Sy*uf6tK<%A@##pvrK?~jZ3m;>eDnUaE~VMno*Vecj> zBjm;qq{~uK6pYt%T=GoLRBgyH%3%bQ`c;@yyLPfF+J-z8Q^)cynU#fsj|a-QG;?=> zIDOoR-G)S<#Cz=^gW^@-=LE|8VyNGTcMTN1wOt1d*Ty1BgvW>UcEhe zxg(9)rnESF4r?f-0JS;QEk3$b8|E6 z%o|q3_`lQEUf4@>Jq=9F1XQW-)-USCbz6vH9%iYz5R5~)Pw$M5T2)5oa8?t^?bx*f zzJ~>Sb(KxokrX@KH*Z_Qr&tp zuaL2#DY$Le81g>X0HYX4;mo{k*e-`p1G#c?SV$(6Mxdly9g>22mjLV5h3oW}!Li?a zQS>)flP8uxIS|u!^{mU>K#uHLsI-CHYAoz#!=pdlGu(-2Qj_)y4A{C1zu9`(S z7Y|O)6RCeATVK?j^EaOwGd`k^Q=5!HsD^p<7A*W>Ncx$0kFxS%8AHTFduw>aPR(2; zu~;=BV5IQZencs12->IB^Mbq!ZL$=&br#I8tHLy@^oN>IaDm9y=|CgO&~Qlc{`;_1lN9QW7>w zwGb{cofn?m|;G zdnF25rcZ89CK7{s5@A!C;b7sjjStvxdrn^7X?xyd8? z!UJ#O#VNxnzu(Xyrbt!9Iux+D)Kab~Xu?L%`NS^AUV4fbx0|%38fInn2qrE#4km1qLnWaYRS z>eG*JL6TaPKq+TWnqr6Lz}p{F81z}2E?Y9g%gr=i&ubEFF#3#ftd3gC4iXb;vxB>A zD5!^x-KJs=HzjDXRt8VSs_-1J?f8LsF^Ai3zmlW!Q0J=+6aVxQarHhc?;Kun-%PY~ z95y|fNA?WgP>otUkT+^rh3PZ+Ot&eIZm5t{|<}`PJB3~72+RJ=Z7rZ?k_o-`6FeNJ{30IIpO38Q2{iI zvdTL@T+uA;PjDxuVrJ&$6ux{>Z^@9d4^5ex3vpowPtS;!(e*<2vnfyZp+?W(1{j|! z=)U3z2j4ff!MysuxLCjUQt{R_yL)-kLR}@Sz$ke`KPR~B4BsvoWk>sud?lzK-=^`9 zny@^_sraHoR~p!hr=&EUi1`cOpc*Uy&m$((S!pgE*+A^=QS4jy1S*oznIS*eN|55k z9RF1i0a2+y3ro8S{n-^;N;K17Y|R8Da1jxX5s7Dw)8b6ZJcy*Rx0Q`yvVoCc->e_>5zxk zswajKByj!=%mz~kIETMq^+z_S{&~%q&HKWeSj@BjXTv&vED0wNhd zt9~6WdCyjnv?;@pX~BPN&bH{f6eCC!O^XjILM?T_%t3ateW>8jSNV(h^!ZQZrIu}{ z94fHi!PT-!V+j6zLd;TCN@rwhQ~1F5&Nx$^4@Uo4?K?WYT8 zE<4sN$L)o97Wq4LXBRQ=l(0AflgO7sfF7nC$zG7XGIfy?MRT3(MN-Y>DT=rV1=J{B zuI&$Gxvcu3WFO-tL=a`lkMw#3;&-DW0K%;}P}4dk@zjyUd3xWpCNvNl#j$8C$@O$s zq$8bby(aYh3*qRtE^giWi$SL@)2uh3gNywc%5WPwcCJH6mlYdR_-B%}rUv zdBeBC!5S@;&iW*Qr!N?WVZJoH;XH&1z8bWkk8T0P>{~gyb7oI*8F>s9|o+O1U=)*uyT5i z`JDRtXL=U6tz?U@GGg zhmeDb%cX@=)f}^1jHg~Yy2^2{oKblA%X}UJSbFn>yNN47rQ$EG`QN-EFqGoEKoex^ z^Hb$v&>@pPAN%V(nU~ICE1t-*=CZ!-i1?kqj;_PboVHHy!%Ibc6%QlGjhXc3E)~i7 zdm$e^J56M6PTVc_H~MkP^T9-@7t?SlK|0xN_a)sR-u+jOl1W|Eaun`YG&1SB*ZEyVWn`peO`aPZMMmsX? zhjjEQ@%gpI8lPrE=oSs0NE0R{1Pkaim^H<_l>Y;4MLu)`VF1}W_TQ}6e6VGX4Szbz zL5vQAU!5}GJ;Vm}5<2t{BNCoB>B~VnQH`8Fo|+9{V*LD7;upXH zQI4_EKYRG2_5l+wlz-75#mmP7>rB{qqfs^up=$Ay2=>gQDw($jOf?h)X{~)Tk5@6- zM*48B==g?i7d~qtTo56{UF7FjeBwHKYo3Jk&JJat_-g^l#~zy@TM)ys&%%BmEhs|D zG|5@wAFTGea5?JRKD0e5I6>)k@5%kD02DvIuF^xIw*NH*fVczl6=+X4u8QWy5CTbY2x|(5&NJ-%;y`eqIHI(Xr_4k!#dnfVZe1e#bAujP=ea0GtII?gkmIi!x{bx; z0)4-q_&A?@>%M!nS26>V`uh448f3`wV`X9GMEm`_8IV>>xz;D!YUd>du$}-@-=!^& zW%J4f2@~zf=j-Xc5RpB&*&v=c??(Oz;CB8!)%!~2v8S3=!d`bFZ(z#DW5@Dmu)?f_ zkN@f;GP-vvi~0+8BaE;MUb>le!9=#VE{s88ME z?S|=J5R0%2qO8mH0%iMmdjA@o?a($=&WV(!6)Twjf+|rj?#?}m2~o15zRo-Xnn46^ zA1F8)D$3BVt7x+9sMPW?f8QxD2Wh)&6K3?mp{I#7csqNHx;#L8r)(1?lMXnTW`oC| zi{E<#C2`gaze)YF0qX%R3P~#K*Wn;)Y-WMWUr?(l` zE@{4Kep2M^19Tx9E`y2pzLFcGotu9Lmy-MEO~V~k{Q}Y0Y@a|&?Gbkw8$12te*d7< z*9}ROAG}H+_g-#y&#G|ZLo5Qq|weC)T?jsTOCD|iteAS`n9 z&n0!HE|}fRw&Xe9h!qv{qIR#>`bJ>gU_`c56dlcfA8YXD6cZc0p)&i?lTE2f7NfxhZ}VotcpD<*WtRd#uzaDBl139_l3TygF1_f-CU!~uzM+8 zBtj}q=)_hpl2{JahxVpXD%XnA!iXw)Mnp;R^(JeSBbBl zjuzeW{d&X}P}u?UJk~<;d^6o$qHZBN0H+qVu*Amw||4FMrq~cIC*yZFPnj z?n1Nv_8G_4?~VQ{jVMCNCm$)aq&|G_$(@R^ys%}sd@0FWrl0wLi^Ka(HdLSRC~-z; z%$p_={=& z(7By;ctYuis8-ZuleRyKT^rwupZ15j?V&`moUk0`KOlgzJY;2z4v5O+coibE57D|jy6a{P{#`Zq!vVGOFq;eYdqR*M2 z(?R-TY=ZHr-wd0g=wIP{y0)g25~bSdo1M}75!5!cE_lkJDY%P1x@ppxb0N2nxsGzH z_gnW}YfG2;rpBf&dVj$gH*AKbfyyiy%@`tQRw3UOhFP@OLGJ>^ zg&OU9(r6L1B}kx@_)H`GOuZWWDw&R1^NyE|_m8E$p!%oim@5N6L&r4N;zMTD}lw%g@S;Pdx9e zOzQWD)Qgl@?WVSx-*|5Q_8I-0nHyc$X^5Gq?9}xOp(5{{tvKs)0v42T)jczAlBs#2 zEUG1Siz@soV(~&K=u66pKB0!Bu#`$Wc|L=+Ai(N2;IV`lmD&Z$(*CD2RozuDJwkK& zP?9o_isX5}79MLnZRouPc%AbTVtkhNM98rTVzy7b9T40f>VeZCF2RFE27y)zTU=}1 z+Vr{E#_r+OVvb=jSMNh1?EH!yFMP!&Z`v2!EG(5LEc!g+XvUs+M3jMI`P*xWj7J9^ zB(AFHIGMJo7y1*xF}!!RP1LbdDP`H~*xZ;1!m()+Ny^ ztYXZtT*u3e{O7tKEZ8ESiQ7^rVAy&wc!77qRfZ?G3 zfR$M>VKB4qmuoBEzZIJ{qBx=_cF^3}(OFr6z@w($Y_>uxNXI}1)XpPZqBLQqo^RcB z^O9olF+#WRg*mY)QjIE_^O= zLQs(PPuWP+N(7y(Q!W*L4BwvuCZ3>1XTaRLC~;CAI=>T^?hQfU^0&TEBY7DhnyK%c zzce^$T@_tc-(NIZ3LWROx(cb&KiVFsjqr>_y44T>;5g=2<2=~=XRlJkZpwx9Bx$IK z6IWuMEAZYk-_UvMem8mg-;A>eR_4E!3sQ>}mC$b_rNNYcKnVmSpEU>mz`s6ebUy)W zy5{*9OsB#ZzlROhmaA2HV%YWjdO+lUVNhY7{LRC~pKr;7{zF;9_&NvS2% z0AspzpW|CqSf_Wwx~)&x0eRtK^1Frk=Sq?E@~HFE9$~EDMNe4MV@$e+Fsk(^_va+z z-YD66sKbdV-YmlbygED^bdrOpw%lyzdnO7F8NI7vdDc!_JHmfI`STTcH_XHzznHbrH=Nue`k&S>@&Sec^PY#_GsXINFtp8FbR1mBAM4(^x%X-Cm^Yn%j}Byl#^QytNAjMZ$s zayl|5fqLyOQ~4l9rZ82(QIN9tb2eAYQ+QzdkiY8N`F39#VzUx&n}Z>cIF&XVFLNK| z?fk9AhmDJYodm*hn?Ty`G8e!bbKwlGD+b3?Jt+5GCNaR5?<=oo6%N!&cUWF+-hO0x zQ!gCwiEy*4i2dARv^~){h?!aRhHU_K63%)C*S-Bw z3xjHQjhqc1Mg{2BBiSdy3iI1aqggUeri7J(Vwc#Xx%dmYC@UnN)uQi66==FaiO$?D zYW_g1Gq3nh*CkN;@U$CrVOtMSf+{Vc%881`hP1kL=|b+cLw_}{=S+&ofkWHz$ac3n z^pFM4a(~P`qSZ8 z&1D9FS&fHJ5j8N8kT1ISyTC&95+wWeeckbFA)_DiXgtEqs;wI=+u+cZX!Yh#Jy!bQ zAkt2!kSn}7E=LSUg(|Mgp5yJSxrpBq%0tugzgYq(4%mx+rYL4YN%kggLlEF8gIY4- z8!S=Buv~3y^Z_yu;6GLJh+_vLN_e6rYyNzxmLE7u$b<6-E_Mm2Dn;Y0a`5d)X}5lT z?s}u%&~4CBdxYFX>OdU zr?&xjAH{43*b+M0j^Uk2Z}uMDkN4EKPnYZccYY1_6qRTc_W*q}JWW#x!1GQJY?4;Z z3FHJ=atT~J;c$bevuNlg`a1`)@P_jqiw^5WYK%Uhbx29ToO?l=Sfx~LsY*KP@)|4K zLzKt-J#R2V@g0R756dT(F49I-K6Fyj(hr}=cNYJAhFT@?d1!1Uz|2!W->)YO#osqH zyKw~`D$aJy__g&zl7?!cGDKoTqS#?yo4p94Ru;ObD?}=u7OB@~>p&X;c5x0Ra3gPX z$HLhSh_c1Y?-H5gg-u%8BXtRk~P)v1&gPa_aNh@OJmPmc?wN7LusNW3a@0PW+UWzCngJGKda* z7hS)ZmpXA~k_1|&tWnBeE0gmzK0z1C^wHt+e;~;|=(2Xx#_7F>TJyS_9p2vG%XcGS z0nZ+EqqROnX&+S!PPmWkHub3%)Tf<$wOJ@rQ`i%`@JUYRKBL`8>i2f8Chj{j>&gPpYb?NS#;43A#y)jd_N6h}dsY z#!ykC{%^z|_X@>Q$ucXw%t)qGquj+u-QlihY{87h?)m1c+}%YH)(&)3`2BZz@q1&c z(fb+YC@tq10+#0A5T6Dgn!bl|Zs2ZuH#=8@1U4(!JmeBGh=jY?_5~F`xFn=9=jb%mW%W-|f)n_~^vj{y` z;!?68f_=QW?dtreIlugvJaFSfZ<<)PU8aF!q2fdYotlE4p4NRw$&FL5XO`aR8mq5I z-i>@+a&5P>bnmL#c7L0O?S3&QIdpw2GagYXoZ1@2hFulwLOSssFRlb^Jkv>N9{tgm zBKQZcfT*Hf_VbHDrb2q`fecHx=k&I}7>^a6#?^b+17aC4~_%vVoI)O&tn$lg8IrjEv&eWIntwvDqCvVsr=Te}bo`7i= zLGmzzqOP4W**qxw&$TNq>?pQD135->=3{R+=SYoJ=KHM#e6oh@B$8*@7t1j8@ClKPT4)|>S zdYzg`{<3a{Y&jCM9u(u}sr{tEC^f~Gelg0OvAPnS<6PDye$Pw+dEG6RqD2(h&M^WM z;WniHzIer%h#a`swv0dlOAMwuy8xE4)moMYkd!%IF6Z{PiyV4kle}mc;4Wzt{%j7r z$(10-5P&xe?mC%$%AH?j5EWWq6z$eG+w2!Z4<@>j2I>=EyEPWGDNT;EeRLaT>fQ_! zu984c%xF4yPcKy+>FBK0Sk6TXrn)~`LJ`Y-$7u;>A~YfSWM1p27kfB#Iq689&$oB@ z^wRZ*DPWc#eHWEyV5y7p7HqJe@3SY!;On$b4-U!GHTL<3eA;uoGovF*up-C8lNJ&C zs+`?V)pNrhTlqbM=t8zPra-w|N8ejtLE;LxDAHLbzq*=E&08vQ(5SP<^1Q+xB$bR2 zvvzzD-IuXkn3d>Sp(L~!I(qoxDGlohj^v;~^?rluRJTg&@=2e$-(Y-c!?&-N=<;hS zsze)9ru0mzgln`6RH1l#FN~H1VgkfY2j3NtAHD_)c;&17_EwUjFM5rknZDff%Z7}a zeu|W@*MmLs^`ZMJ0ZZtEqx8RMHJ;mQwi#v%r*P1IaWQ1F{V##-5q$m%Y`fgNgSsJr z+02IFVI4Tw`Ku|Z|BO_W@ML;?EsERr*Kw)XplQtmypG8u4?F;{V2}7G?XNF#ghk`{Jo>)4$8ALpho~J59sej=&12Z-SfWt>O^2U%0U}(YO0}2bzkeh* zGvPN7kf}2DoI2c$d<0*FKUw~}phfI>^7>V_I)<9w1F}|(`UGU!LKnrb96h+mh4RU0 z^s*Q7{q~d8Tn6+YASpS4Y`sHyPIMMf6pYCb(>Cx^(S<+OYwomq9_asE zcinV%AUj-^ef;Ma1(*v`!X76?QJAHR?e;bF5=~8N>fpaSGt3n43(CuS$>upKsPIkY zUq%hTP7YurXFT8HnTn-yc4B35NcdwMu)@7v-7XHs49|?jTen=ppEK>L4MM5;7pUPqOKf#~GRIgE)!LErO1(b7#~pRQMu&BkuAzzP)>C=XhC8lO??duy=50L}8ipWg z-Or1II8N3SmF^5zJ7y+yZzqbwp55Snem3_ym|5SPOt?K1n6x&0s7QMP8~c(CiwZO* zoDEAPUuKRKVEjngdK<{}N-XYbk}b}0D^3pyuOZRgqNDHq@WB($47&1o!~DyBoxaRc zR||ENIynIdPW}H2AamN(T({X{E;uSlk)7N&Y5QzEi5~F#&5pJT>Xv?!uon?snIK5S ze}Cq&sh(S0I<+&ac&le+^f+-?!6d?2g4Dg*tKWAEEsg9@Pht_w?h%98*5@{a8Rje? z7%5N|K)Q;qACY&zqNTJJL5mZaAq^#51d{3HY*A!=aqf&btsaW>8MqZO$BhAnR%mGGpc*jpDWd2$JkYVAR8C>8Of7y;Im=c<{F;w`%0o;Kl17h}XLp zz$5=4(*|zd%1cOXKdIuati-L=yNLfY{!X@$h(OgW3Q4JlZ z+UaJpx=+qdiCU&@ryC;~NIz4q&YtFrORe&hy-DRE4f0JAwuo|n`r~9!hGE+Y50iK- z546TfEYyd6xJp=#04l5f+MH`ymS4?7b;+{j&(LsK?fvEtXOcqQ6?9Xifvb(_3<-E` z*3BKjd%KglLpuIz4La2zGp29Zk?Ji?NO8>c1 z5^SU}OtUY!Tz^v6Qb1o^v9@d|Hp-TPQ(<_2-;23b$uz{+Tk;g>nyo;3L4h|jwwC>`<`X|wh` zn_2v(yGBeoutUAXue0@v?u(FD9ys$rQ2tKy!j(Yy*NR@ERQM_jdvcaMi+8mTdU&6R3&=QGPPzGfmzPxw`c0&iok6NvyMYY|XA!;Jd-Sy8 z)ke|3tNWDu6!eyWlFeZ_g)$Owq(W;Jbh$L9q#K!X)km|z=)@sH_h=5NE%Xn;66g6} z2G=!CkefC5@aDcWC0(>Fh{{_wt`gZC>dXX|lw=u&l5(OF%3_7Y=CzT%xT7@8&wt7J zS6F1lz1VIweg~s8ym~bi57wAX-!Fy<4F;ZxMErpbYG8trvGI9vh<0jHr7%XH*(_0g z`S*>cTrTy^9=K5B*z~($IJ?Nmv-n%^46xB}3mLT)H8$cAz-AoFG1R7KX5}M?1|wTI zdAzCpWEy^3SR*L;yKmX?S(1i6+2n%j9BjBhjSfjr{oMVxPUp*38vzEV3Ip zlZXEj9l@WVOOEoenxt& z5O;foMY_Ic2X!6`cMG$+M6p=lr_b zgX_47It<66mxniy7nyOGc8eR{tH&HI+bdfkau*QJy8F!1`Qz$LRoZwbBX{^6VUbYG z=FP`_2!Vt>`DS@^b^yd9ULo%#WF$kNt9%=ELf#jC-Rx;it&(>Bc!FsH}MjpkS z^UpAP@hDy-3ynN^0L<GVY+K2-_eW_x?(#V$?w-1l-{TR=)Ty_lUjTu)!~u zV+@mksYd+Zrs8keCX7SjwAh(e2Y=wjmp8X~SQvMz=Xj+Plb#|Hj&Agkkz+Q(UG?s) z6=YKJbTKf(E?ODbEDnkM+D(Zr&`TQ0q>eI|5^DC z9p44V4YfOH_*gywVpTLzEw=5Cu-$*Ro--A$(QBWTkRuQ&=w;bnobK~f5EbE=YLK?z zv{_&HAuwZ3EKqd@n)Hd(^|`oe`U-{eQU_Q!=v#u<5_qaWwTbTnmKCo6`(k$K)$nC| zCcHGlsqXB0O86qF;Z{dpIs?!cMx_!0M2KEYWm7l${8c0H5#tdT{OGKc^)9_r@x63L z`4h(8Tt~UsWL2wh-8bwZpQM*&-xRff#7NHIIl-|6_?n^PcnKC>&GP{GD82Zb{9iH*#yvgNseSGWPy+hSYZJK*!bWprJ ztnDcKo)xy-H=!uWE>_%W>Wlggv1g$bdcnHi39k)+!)nK~6+nQ;_RZFxurXj&U?H*V zK{`E;p_MBZCQ{R7D2M*bFL+JQ#2j7D}Tu z7n8-6ZJg}j&wV~dS4mP#HVjBwck-PYOIy9gH^|(%i@mjN5rOWL6&>%>JJezu?aVrr z{rGk~;uRt$D_>i5E7s}DZAsF#_kIOx%-n<>EVYNMI9TqZ}R8nwTiQ59YaP!X9OJN|ZG)uAHs=bPM& zf%%s@Or<`zjDTtpwN4T2sQ&4@eMI9)Y?ti=k|9Lzk@OAFt|_z*y4^9eF)@brak|+2 zx%Dn=KSyJ4L}u#k9gMlSiT>~olJ_074(`d(B$U&d()^n#a%z_Gs0P;6Q< zg-|UHfO-BvyB@# zw#^6^R{k+iV*T@~+D>&mTShe|`H5KY8am{=4e3vPBNvMEl>cuQca&c6#vLGQhE%M9 ziUg>O0ttW9j`OQUSM95(8`O)_v}j+i$1}COsIU1KNlaRBllAS|{=b=c6^-_R#kw-1 zuf>`?u_i^`Wgs}-CX7qisYqwT?Z7m+&rXuH*ayT^3n2=Z;xz$tns|kV#eEP@qjW!S z=#Kl-!^M&nJPhsVO~(d8zRC$AX~WPHvlxlg1jU)P#M2c%``$9VGoS(Pj({TmTg>he zvm8|-=4~lPYB@6i$N14c%~sU|$<2x9kpHwo^!YyU54d**%x*=lQ4I{bL7o1~@XKE< zJ#OoJO(t!he0e#Md|y3lMnjhRVbaz;b}U8B>zh9U6?#2LAO*i$4*VeX51y2s_!jWc zHW4faQ2H?79^B6z$c;e1Ac!r5EDd?Swv_9jnYdNem_+5{x1QDAvI0`z$3{!y;f1XS zNcjtBwr-=cv*|wSCR=k>zG?e3&*eJgp9RDLz0Mm#cw<`8@=_>DG#v-hKcl0{JeSP^{cgWY2Kj5Py3o{K> zDqh!NZhT0TPDxsK+`rGC47^s4>AA{Dn0vp7h^YR$AL$qRW8Au!a#%^W6_zb%|1`=& z{--2;)uZRxdgZtBZLeAg_JP|{Q^iKtk=Yh!V4*X%Zw0I_qwy!XQ=d|7 z%p9GG&Pwcs&wsm3uzM4;Q_%FfMLA%R=_N!!%cTII9W`N<$p(g322f zAxGTPx}(+yy#QM;gCF)iVs7PTIv{vI zH(dIPoU|zMM&g_>Np70!0}Yz+_2JJG{q`GLlfu3A1d>`A0>EMixbgxO#F9-LwoJo-vQyhZE+PFIz$NI7e4 zcCH$s>N+)CQJ+hB{MXfa_H7u)-}O}&pw?NxHfBsP%kH)aGmx1(`(-%AD`sJ4;r!)5 zOGOgtnxg9+^aODApwxRg)M2Zm8vAc_TbBQh?&1d(Caz@9fDVX11vu(#EjlY-g-^sD z%QmDct*3VS-zyml$Gk<08v2++91`ZO7*;^x)~EoF``;+Uzcj6HxKEvffUNqZe-Vx+ zN%!BENhLKB3@S{JatBR@&C1CdWjIo{J4g&Rf&O0x-bTu}=iqY-atiDLb9tAvIK!6J zB^*FpbWcAQn#yNTO*BhC@>zZkT&cl?cx=9W>v?w?GNNy2rE$)qCWeNlFdD%dm7U7_L7=w(Tc6*aCb{a1Xx%b=d3PIw#knSS_A#>WdrYjZkL%GaH)Z`#$sUFJH8vqn%46t5Z2kmf)Axx zM1|M9{$O6u`?lAR#%BnDA%jYdmq|bZ$6Ou(-aXs)vT6pae?*)2Pe06Ly%-zgnllR) z{Fhxyb|!&jX>{@c0P_RSo#eyiLn52DOISu;{NkUS zn#N?ghFwpu!bTLDz1RzHXa5>DGK3iD{xOkI8a*_P_IPl{`NLuJQ)c&Ur+XC!A%0qX zHP?t9z(xCl_GEmxqD535*rr&ycqo|cE~72~vnfcGdg%Mix)*&FxXw4~kL1i`y0*i( zM(mWcb+R(8&)4$~(|?6=q~uJJ*NrLE39N)=mUFl`g7Bq!NW@60MME3&Wr&lR#ODDw;dVxbXQ zU$mei?o`FU!T=QQoY8gnchOHZp`p}PsUk4BfA~B5a~(2&d@FLeJ5eVCeyY9@ZH69X z7uMyM7DXaGoPvO7PA`!6uhvN`=*E#9){4zuC^y&d5xmDYkX==+qGEm@Det0Eo~xEF z*CrQJ1%=Ap=Uh*9DN$4>V)<}9t`2(mkcDo zr2PxSMm2*QhVAm7^L#l48vefQ5%=(Dp{Zv-5w}&ubO;1J+uR z^hhTr%qkmUQUXU^9mR&3S%IX|jV{1p2RFErsG4cmd|Bd{1ReIovhEJQGlF5T9;LfG zK~aC8zV*6s9Q^}50c0G|hoN>yCnZk>Z)-@tH1 zdOh=t4131Qt?rR4CPN0rd=86BN1eFvC2o{I(kx|d@p;GkudOljq0-c1otX$}fnL{^OYHKkqNX8|8Y((4xue4?M$&Df%*l=q6EF*YI zok6_mmzXgYnUpeG^6vjb%fY&Y6WKEG@`Dpa!U|eTwusPMA8;)oeD$PoFw~{-oWT?@ zAkMup`sku8=1W!@q5mU&*Jet(Nsu3Mir3kZcP#;mk0mrwi$YJ|^zVW!$fLY)N|xL} zBCm|$?yaVE1wd>!fXzNt?+N%0m3x4IT!o-{h@~KnL|ojb!84YRIcj!D+^Z!;%>>@} zyi;`8`o5Uqvcf5b+L2v4p2b1uoT7^>A_0!OZf_|;CX|Q3%|s|@$HVz(|26yXLg_i5 z?Ci@ac_Vg~PrCzwGz4Zw<-&v)z#VnZLWVNN1d{=LtK( zzF{#fV;|}k+?akC zH<$|9po4)3B%%j_@u>yZ@>%*>@THyaEb)Lw-ossM20!J;hs>Ewc3VS8w+FIOF0p|5 zql;&|*C(3}VvSS$XG zfLG3R1~pGmHKV&-MuU2^SiMBXheBJ?rk(JsQP%`>TsCz5qRjF#`gU#T184q6OVi;~ zIpubceRR02_z`>lJ`C$NYvH{hs$Kz1d0pt-$a-0Q2@wE2&5Qk(MEz3n_oV)6s|DCg z^oDX63%jm;u8~^wT%asCKUB#EFe{t$+Rp=r)Rb!* z|IF6qf7<)Xx2U?P?=z%?fFL2QqJV&aC=CNhihu}$NVf`-(lG<5bSNz;NGJ``F({ow zch}HE=frckpZ8yQzdiE-t_xu))>p-yS-##6+ zR9y1mo#)-wbQ_1a)+6gr-_lE! zPrKbJ6quFsvS8}?%lKoZ&W({8VjtY9u7XXdz$3Dc@z=V?D~COeIZP2C*)f61u3MAO$JdE=m-Cadhz4NM|s zsvT!WrJ}jj#==xJJd0fCH|G`ZC_qRAzie0ueF;d-P|RQnZioavSpplSJxD}-F*V_y zZ_I)SH&`LG@n4bCd;zNg>ak-5?wB3(Q{jm5Ilottj$$^@t*bMNs2W}*7hwH^mp(88 zU0y}4#X`+<3Yx>qRP|4tV^x|X}DN$}ajOAph)s1)oeJWWr~{bG1+E~ETYdXO*I<3mfENt<(> zWrqjyd9XrDLWJIk-@hPNC>ypM|5`}vi_W2y83keXEsTjFQ>!20=bm@9W@w2x&DN=# zfO6r2s0}&XMeiBoZAC}%xBybSF(mo5~Yf3ZUc?LbB1 zM@)+UrMp0dm#p7Tw`L5Q+*ib}78{uvgvK`hU4vgLK6rkSr;x2=bjjPhml|Q3w5oL| z%u1~4zUZXjC0~xvk@&;ng2#53;b(qH9jih4@DILShWk*;yWY011dGctKH6(qV2h2v zOhZvnpUJ|fi)r!j@%`~%7oYHtS;sGprmC1APi*sS5DFpn^5_?XjO&kvU*&Egz9m=7 zlrgnSUr#GVD?B=Jb2HnNuYJkg@+6GwWM-lc4qoBXe>|UTXeRj*I?#)*ioWjiLG9!3 z;Y{YnmvoY~s#@CEm%RVA||=s8f*} zY6#zc4pT4!t4kD3InO)JFVwu}u#YZAY;e3JF(GrKsXEfB#y#yrdX%2m_EbqpESXMv zYr!miH*9vYzYWgSy@zP4t8Q;52DAL|xdp;9*I%V-h*|{}d!~Q5w#l*6M8EVyVF~s| zaOzUYpHV@YQWe9C+fPR)UP`(6h3#eZOz)Q1a?F|>uj{3_?NQ0eH~Zx!%jrM_^S}}t zwy#1;@4F)smf0BKahULF(BfX_Wwqw|#+6i|2#6{6^puk$?vA{vs>}&)Q0NsmoR4*kT+%SZDQ_T;)gq3 z4fn++Rk9K8iuK#Iv-;z2$c3^Op9xFi3Jp?4e&K)iokrhN#ss*ki$EDwG1-b7V719C z_6;Wr`ip@-xobSI-)3Y-@bj0a3L)?>*>p@Fhp+W}p$|-yUh;ja$0ks@b9UB*}%`+fQ3s)EsP4J?36VFCRBgbTU z7vNWpeD)*12WeEXmi&30bUouNL_Cnku3~gioV~hf|r>fky~EOb?$f?&_SkjU*nhi z{@c-!JH$G#-}}Ct`LY;!zqMH*I?Rlo+iM0#Y7N%Rg}QQMdIuN*9-9{*7oBa>=D{)% zY?6<~ZwkW-&&Vb9k&S3c!pecv5HN|;A3D2naXcxKn-KN+8_L1>T{V*eJ1y2k_dpf|j43B8x^fbq&$ z5(Bhf)L?ri)dvm*oxX7Y*AkUn_yN-EDwUDMxv(wqnuTr?ig;_3>)gtFNkj^*iB0my?sbBX!7!-(N zMwG&8O(Ht>j>o%wc8$&ZxL2q3uB}&+2j6K{em8GXklb2hT=G`YX@_<`sN1d^D%;w# zvox65Ov@usQeUne5)Q_t>z+OC__U4j5_gqVHO>!@5l7V^h=w8{H8rp1gRP6mPZJ+< zd=q9zUsY9=?}^iO;-v1qfr7Ur7ZkF8p@(F$_pLyyvf5bo` z)BXDV>Fn7k_wu>ZmP%tditjzAp#XFLD*n5v+jKnPrAZ@+m*jOKU-dP0oho`x`gX(2 zB4GZX+jj!8Xr20`^8)6IkymJv{XNil`WRoPI40A>U#mZ<;x4>3t~os&6Tv;B=+df7 zVJoZ3M&k9pyACHIhNkmV=GQByaCj)OVdLup&svn^y!W)&_8YD{RH`tIxT^`q?uPz8FgGTHZMPV&6L zS!dVUU^3+cu#N|6s0U1`hopcJ;&tYq7fDG2=e7uGSJR*=EaDoY$mC-OREIhyvJ@>*GC&XyCsxzWLoIAtX2t zqrSL?kqmHnITt70X2zoasD^e>0hL zl9~OyJ&z(%43Q6Bx-dU(B?m?y_O4F1U)QhRmnH`g^m;ooos)Bp>v}ry1@ArZDxN`S zIG46DyaU+L?_4KYy`y*=t9tSYdEQ{}F?+Zao+EJB7 zO7Ah#fiI9iYe`gLk5tv{@#p#`b%7uCcpeeU3S2-BzOZQOc1^U$3vE=XWo||k-u=A! z!}$t_4kAeCOfI)4K;~L-7R{1PjN)EX)LJODU#aSX4BBzcXUK|*Fi=%SG1Nf$y(d`!K57p$|RjTweCRgpXEX96L5Ywl0S`Ysbi(hk$yU^7t# zY4p_f8df~LXA3F+80+6)VhpRa+x%OwoK1_~s=}X^R*Xxy*WNta?p0+ZCmS)|v5?pm z{H?Jh4hFYBT=69_fqdQb-t=W0)F<-RQT>>YQm3BIg`>uUB z9;DX}=i-=gN^oGjNmn|QV=?>oVY;XUS}Ep~(at&pLu%KYMfB;zZG{l@qKwY3S4e%U zr4)1W6b9FWNOk3a!TInJv73kDC@6jP%x}bx-Fo#J_QBU)rbgA`M3wi_?-z}zR^JQr zSwA7|&aLy~>i^rD)bV9&c%LouuF?fB=0;#yh_DFIisYTma%PZ0&CFY}pof^{{!802 zhHO9|ef)`USvz2F#6lrWx1?~@<0n7aw7872qmShaC8;`_n;V`A5>hM zX->Adc0J7~B~nAW`ljt<^C#_!50Lf0%qsg%SI!$V6^CA8gU~qsvuonG`E6@rxUddn zU~);E?dSRF!am!R$r-J?eD|?=fpZbzX%HJgLg*TgD(>t2;Bm+E2tfXtGlJ{{mbhJ2 zK-EA)sL{op%~dEe>YS*SWAs}ogq`=IDN@HG!AfWE?nd5p|295TPWm7DBHPW7oDX(4 zbC$?ro5T)jH$JKEI~BWvFxS2u%IqMH${Ms(d(OiUr_8Ur9^})6m1e|qTy7=@!swo9 z+DYEy?#+x(iZT`B>s8+Kt?-^KMpX{INO~3i7p!S;=BqJthL}FrO5tT2ozZ)>B~MJo z3S8H)e6Q!^EgCBf21EF@^>kSb#`b4?hT)=dEeGRa{_Nk$+q8L;0a}7#XqwTC(nBI`akzD_%UCh9uYIvAAugr&8 z=bxTIFMx#?%?)<$36vh_wjAQ@7vh9}aUUkF}u6Yf~^j=weAL~#% zIK>qm_2?vJ^mSj|Y{Uc&U+Nget_K*D%orB)aBvtW|K?tG{f4Okn9DEHtY);=(ym=m zbO(i?!gKhMJcUYP?Iq9b({M839wD&xZ`ohh>C4bKj-yL2cAmK_q@`B#F~trp!m@i0Jc$6~VwFuNm^>J+Fnzc8TV zM<_2MFJL%aL%G%3zM5PTBQFNyN?qkBi}Ih?r>@8RMg5!SE*HhmJG7Zf@wnUTp3Hi` zmcH>Hn1KVau`BI}ZF1X>6fA<0(JhWrH){Ug82YFwsZ}sR$YUZAx8KH@JNuS603f{+ z@AMlF7DASXl~LlZAe8?GU#Xx7UH75YdtG^N;kD??f64;}CD((?1c{@xas*t>OQ6YIT=oS1J<^20b!4W`CLD4N9>4Y zho=6zk#4iLv;U-e=YG61hzdRL-lMYX=iK7Q|6%I(jUw7BK@9_Id|2f5Q} zgVjR9wDvPW5xV~{vbcFg(r4~Cx(<^qI?ZAKA%vVsO!$dCNgrFfz6sqK%U%-Y(*PAp z+5g_5n&b4Pa5hitLMU*OZlqj>Pb%TaRshzh$@!kOQ)dtwCg=(n^8d9w`tK z#$E2PVC72l!%GZ5U$U3}F_ijlglTvE*lI^3)Tv1@T?$t(t0La|`3frrJ5L8Izr6L> ziqn0=^7L2AFV{AIT<5@x5C_nitGV$pKXKUA=0##?PQBhvgL+m*Kv3KrAYOlMBxyQ} zS?f3%dAz*7DEs`gX0z@&V!qN?ES4kH5zG#m0jtaSh>nJil&>H}8}A7bO1oE#(uplE z!v`6{T!u8iX~%`PT4?z`Zzq?th&K-iBsC0sZQkjJvJI8Qer!nIQW<<*zdUh&7vJLf zl?ql)N{iRqd$X|r7ZqSiF(?2!X<~s?PwLgR0joEi!(ZrU-hLfb%6;7Hi+yvp(jV65 zgm>T|2g>4#I?P3jC(VO&X|h>F85#r%&o8Urw~>L1QlJ!k%+9lp&eNQEmJ;vyhxpFw zox4FyEA)N*jy2>!KAVt9RELG$NU5m$-4~CjqOxwkV4nz;#D9X8)f<_~<(N}5!kiUZ|A@(X%6t=T+BZ987t6`)n$TH+zrM4d z=p`9^5AY3jD|0uSYOX3p_1+)-0b(dAfNTMF(_TmS2P$h!g-_+dZK~lYJt$g1x=RC5 z1z!5kUKvTV+fCZbSE@z?K4(|ry#DDKxDsjzt@9H9xBZW)e}0{^l-z+{`>w$xU5=x+ z4xyP<0F~BV9_hQ$9PTK*JJB=vr=GK*asM5dp3Sye?=8QHha7d-%`&O{)THMHBY)@S zq7c=1YPx@V(SoEcAi8+2(5fiyRbxp7N@~&f>&#VX|Dp!Vhlf@71?Qx#xb>RFLcab5 zv5MM=?FkjicpS8>3RxrWAEA6+5-F^z#Rh9=ap9Q{Z_X-$p~+&nRcbOu_mMg2e(X_$ zRDRl2+xaQxx6g7@4R$k>@71M#+A61b0b|iM&hslIWoLxh@$`G=>9IcZYtoC#Z*ay9 zfY5-?SA%jc`e;si;7j6_Hw^afw(TZt^U9jO$}ysEwfK51<5t6`NRokMYCR57dwsO_ z@yHml#lIjCX#E?t0Uu%;iJSLosEhQ7uFy;^#O2+a3?@D3R&Sj0SG;9`(C#zKB_aqgss6m-vVr>Js~s{3oLRG|McKR z-2v14coSmyV!#pNP01uv2bg^}&4b=Lr;`D%rEV9i{kaE!$|N>nl)dP(|Hq3EXb++I z_3kuZnx*r|PARd3erLS1M)Io*u?XC4I# zXP;YU<;`#XG1)_cou7@S%IJ~OwhyL5Os+2FtGO8NuZJ9b3;on1IwX1r#0aX4W}PUc zYi(nM!7X7u^9O3Yruo2QX}{NF8X%w!T)5;y@82f@cYNt~3)My1 z!H-C=2hrMWQZ%nJ?X8T3yze+a-5@3gWUbn%biLIwAxn;5wXwwdp$vlKG4pl(ePIK^ zw6jnMU*zxUlGGY7f%8dp*zvb-u)(W5jVw~L_E^={SqtB(J}&MV3Ya+x_#4k?nQjc5 z-bdt0Mh7ey6s?3Y#zCsq1X=c*mO%oO74)+X36BCGd@vq!e|H??1PHGTT#fPNHZs|6#;MZ0UVj zVJVSkmIUHUc;Cmj>Ey2H)1+VtCm~RRj}BF}-QYTHrB!6!?_rl;T)X2=)c3P}2U%TC z>VWWO&8NYR*YYj>2z^v`om|Bt{coOm0sXtdqu=+CNu+!nUvYGXJ!e`+U_yUuWM@Ts zZiAzbEu-b|eLqJ1r$hZG;F>&>wn<-EKRh{iGNu;$hHo2*=)%xy(E8p4w83gZ5P1NU z0YB9C%Klj2h1X!ft3sn87yR13{-3gtFD*UWcl8}dX3?Ktc^K8y69Cu4)nG6o&AB4h z`ez@Q$bm*wGdC7-j#_)_++rbr+dJ|Rsq1Ug&4{(V%~xz(=Q!UbwKFzb;6j^md4^x;Va_InLmJUCQm;=r_jPD zuB?Uo-?BCE{(tB>*DOD^9sThu-d>JSD6)S5==B|ky{_R6{nDW-ZTD>Ots$-D*H-?n ziMoP>-#FPoFg9__`s*=T1U@fRJn&o`m@SXN?#&oIZF0hQ5SE zq>SF#ep_ZHuDR{3ej>xxf2b1gN9A%8n0c^vXL`7v_sUX|%DPef(~^izY0=ladr5Ev zXod7~nq>Z!Yk(tYW6J=ggues=IfRJtXxK#plN8^ zNT=}FYQSlyf{nrep6x5RU%el!iW^`o8hi@&~6^)3|IlF0|2Cs24g-+g{KrYxgip?ZJ( z{dj`(dK?26KB6h1UKd!{GVfMh!h`uBcI>?5*9Nc34aDx}hw0h7k=bo?8E!%c^MT;^ z71|JR*A!+r-ZsaCJR;w#{qq3@1+z4htnv&CNh9I_%q*B~gO{m$DoUvf!mc}LZ4qZ| zSD{-}gh}5AW}e4T<>0a%9zMSi=1$epcq0#Qe<4C^&!ZYOefkdxZ#=#EWFqA8TOvcI zz$lqE_%sa@bo|2@9)#XZhyKI|ow-^jW4fOzX+lh(@ zL~nd;5K)E)H`o8GJC__BdB^=!t9@y#PerYi<{k#uKF*>Qm2?E%Jh7dcq1FXvko&D6 zK5^fjNt2bTH>+k0&i%RneLPn?8Sj?53O?6F4y8w0Ui%L$rkbFZAvorhGO3IAmcI_Q z?XV}+`|85yS6xLc#5r;Qx-!JgvL0LH_HvCe5ppk+>5x1oya%v+s)5-2ga2Ltbx73j zyft3MYUaPPreZIce)hIy{PYujvdAzreE-yRPizgF9jTZ`bIzn))64-E21b5+Wp$iFa}`TX9{d{#yRK^GZku z1(E<{_fp`28VUgr(?`x;i+iULlgy}3T?Ff!DYTiTHo|P}zFfz?MP3;zvH8PbQv;1R zw>cS^af|YCW>)gzhya<8p^n^#QPm`nJMFBZ@A&0XQ&NC|J-yZA#t=>WhM>i zSb@QY*Wn7QdTi^sp|_6|2s$pKhDcdWy*@Ng?+QAnevnh3G64WLORi{ z`PAoc2RiO&b+zW-+y6LE&Br}v#5t%khh&D1oofS08X8scr>3O4(~32>;OMfibFPM~ zK>;D}_M}3{A4nHtW@;Hy7~W`$+*6v3qi14!33%EPCp3JwS^BRO{J4Vh<|-U(jx!#9}CrOLloL22EX zlBfU30g>IrueJ$H=rgPHV)@bLe8TSF@mlWP&oKKv=^Cngc0)u3RCxcBE*t#e@wX*W zXVjHhM-!+c_zlJdlT^KuBf-}-k3S}dM|RiV<}lv6CFbxRusJvUn~`I*=V9YJWLTMe z{N1g&;)g~9 zX1U-PJW2gipGB z>(jx1jlv!FzI<^lB--@+Ng$E8R%FkWjNV1lY@%y+g9;A&n|cDm(*_D1~!>se3@0zq+$e z#-Zs&lW<~WjTpEZP>Cnk;_yIzBtR#9&SxUOZQ4>Nbogyr3{mDhdz(OyU& zNC&~%OhD?_7!hih8uQwV>TX`r>iQIGadURqnd=Htn&Z@zWWJp-kGlI0zCk5@@^=^g zU0|WeYDj`V4|s0z2GP7CSUV&%=8fEUCQQq@IM2G{2?6?7!eCT{y~%*rb0^Imq=l&d z4#*=k0CD$s1$WhDyxo0i~e*kN6xhVVD< zVzV+z<;Nhu0BhmlR=0q&({iA1XMBT6jpY)UP!&j%!NYX+y_bU`)rM z(IvrJ%UgrPrkK-82G{FjQhe5eu-$#6CDy@OOwpslH~j<73mZpAXOd`mvwRQsXfE9G z3$oj?4|&Mm*A3N=2jJB%36Hdvtwi~KDye=KO+*~O{!rZy)*F1)^_pDSgi%3Qy#gS> z94C6%WQ2HQcSR`5Hb^`*J#M$p2!hNKk3O|S8tP~Hh~TlB1|{frmBwl9B4qa_zIvH) z)x`FMT9Vz+*?m6Ql~S@ukBs(UdE0Zn+Q;n&LOW`|M}Q>b2+AXXudXv(wcT^=McL|* zm6M8~VTZEYgKxQ;Sfw94#UBI~Xadbr&My#|nEj)agYZ4E0*fpA27bT?sU z3^T@43dfXi$_8DgGCuRNhNJVn1-SZy*RA{~hkgb-B^i!rZuYIyI{R}ZFP>Tj*^?Tm zvO2{JHLao2wQZpDs(P23QH$a?EPB+|r&ndY+v1-w*tH4Q;D)HoD}%JUGELe&LY5TN0W-70Bw6JQ`GhzUt84g zJ&DNpfURcS!P@F$ow3Kh>5g~tI~x{@t2NB+^2XaJKQvzEypC1>?Bzc4$sJ%JEvY}( znKkGe+=j7PEITiUVqqD#b2i!?Y@JVm)~xm)>^W(CURGbn55O~cNX3wwfyd#)!DV6+ z{KO~Rd>+pXec6K&XH(L~R*@u~cc8ZPnDMixlQwlw3Gd2n=c?}ry?=pmAT!08x@QzW zEH+w2o}w*oJfOha#wPCjHgITh`|R6e9;HW}T2w#8xi%3PaX%oP3$<57y66A()b+n@ z6FwU3wvVr`yeu1?3^AN#(YJt2mUlLOkSMfi#7TI#=>q^%+ubgzKy8EM?ETqK{*i{l zD9b5f3T&=r z?Ey^l1PLrmdJ3Kt#OkYVDkKA*|CLte|j`}*`q>Rm+zItH^J%kic#EgeN=c;q7;;#Q|g9yTAkHK zq45O5P1e-RL=TI~DLD4R9(KyZOs{7ooSutF{`$gr!nELb1918g^?UeCC!IVcK~F1Dm((PN*5t5$x9%>C#4E)7rg7*k z2>PXaaeC1iM>9fIBeo>F=ApQ1QW zp^9FQw9(A`s=CL9>47mtn8_iSP*KT+U-1E2E2;@}mbVlFH z@aRZgj}*HA&eOtIBtrmzmV5X>*X=guW0ihXQ_pS- z|AFJFXisMIC7;J~#YK0tPosmMipOzJ*gLQ{L)~aQmyM?FJ>5D+)$R@3xjo$OY(n!*GugZ{_zUe@{>7+&Uc=nh zW&ffI%nTKO{Sjat8*kNxF)ISiKF)JwF$gCSpp&8C`B!yrxx5^@1;*}W=YB$XY(m!` zpt()lw6`n3(?Ag#**FxM^w|$FD_{tbU7wApKaMwsc=${oqYRxZibdb-#GldvD~&b` z_{kwe{ae(08aw|SN5bX6@MNidN~&P`uykSi06zgRS73lmAbfR_$8Fu&?Iin9kfypW zWi>zXaX!o$l~FrctDQTOc=Mbf+P}8HuE-r5SkFFvjNJ5;49V{CmjjxIE{pADr9>S? zd!!mFib5tW5MmO)(OT(=58*~X*DLF--#RDbbxl#zWaSh`iM>>vm#qy4^C<#hxWmhi zu5EjFd3PSGGT2Mg^Q41AjH`8}>7Z5+8Q_UNNIV`qdfX)L#}wUBZ;hV_#!e6N-H&_95yI3r~M?qB(~fUs(i zfSQ}hbkS?eNm{6V@u{46{^`j>r8{&}nEC$c-h=hz)Q8i8c_bf8+Jr^W>XQTmoAHc8 zr-N@ufxV|qe5I&;^yc=(p|cLWF8v_HzSYVE5T$mtL+4ZawfnJF7E)^3W8&wcxB4 zb=V5m(%)^fu`QzfK1fEBW1EGz27CknK!5VomNb8S(d8OYQ+|M%oV0&Q0GG}?hJL_Q zHR#Qt=R=SCHw%6QXpA|eeSq+=0Y3=AQJx|YK>y8JYxX&p@+cR3RC=Ov+00>l5jrL9 z*hN9E{%;XFt!^EeAx|~BQOTBb4FDRF0l3}rhGz*YpH5#v`KBLiRkP4dkGXL-tz+HZ zecZCXPTK|oKDr?k{Nmkc@2;&u&%B#WDiy;nRa>O9MKz<-{HAu_Q-cN~HIsAe$95Bk zfdk*^)G!JF*z+R*iqmYD6IUC?(>BbvpHnSUZ)L>4+PhBzpj`Nx-`G}Cs`TEaCkCJ2 zyhQ{UNufj_lFN;C18E8W5YwCOvvYkDyK^BX1%|oHVjFSr)S%Ki6JFOF$`xvq79S_6 z$pE0n0vu{hily04HG-E8KHv{$T*=|I&&-(x9o&)|#bx!(NvhCw;^0k0kFb zAi?TnAO)FPWoq`fcN^>Z8p3ky%7(lzoUA2y`2*ZW{Z9ZqCw3aLR^cVhjNr*5v=VFf zT0{(*7v`I(h1~KU_ua6MJ+zEP7 zhiCaPDN)Nt-w(-w@R?1g`g#MK+bgcV(o?)0TvRs8J^pV&n%tuUN{{-bAn95s%dj*| zg{t+c4MA*mTLL@vF2}ciCgCRbRbQb)d4xn-fpMnciW(q z0?WV@eI&qiM9%X|Li7@T(`CjQLcCL~C(Nl7x2x;+NB7jEnPkAtCIL5_76L@NjFCCL zu_0I)gQv_!zJ7NKYL=>g!SF*bQobS+-9v+;soAz)K%Q`6#-&s7)qLNT0lDQ~h7O`# zt*B+eAjh6@P;!<{8Y5OzPIj$noC>N9Bnj?Uyt_qvcD(mX6CClD6Pzcm0IxF2$v*bk zsrVbL%0*Ci{ex1;sDRR8`CCD7rPJ8_wO1QNJc}JiT*?*B5o@tM{vjYKeeM96W#u&e zi=IBiEuNBd;h?oWv-=@F5cGF8fazJ596B@Ul!ViH%8a(4!HWN-|Njo6;LKY>y+2zX z)Uq>?0dP^oS zsonMyYv@mk;otKP?xI;0Ls8nsXC7I`Ymk*Ef}~so0MPRcB*dyBCNH*ef~lx|aLU&D zwMjqZt>7R(+;vB<;3I+k$FZz1gTg8w;i7qH#&(CNEH5`mcc4cN9BDn6Qm_aLi|yys zmeoxz>~d8-f(3ehX&waI`W>sD&5X;5`xY*lS0qn}1DT^I(Bn}?yYrKf**c)VV184; z11Mc5>a;^hhQ?0v*c=)(q_U4f!#B%0KxyFwAp%NcK07irOU1U-%+A(r2OrL@><1&F zwU$Bc%)LA-Ui9S)0RhlVOA9nBxI@6f9lJ-IUk-f|u}*U-pvAws62zT7>q4vG5SpYL zUj#0r)Czp4P@2B8xJ)E=!#TpX&j8{$?%1f;x-+MTu{qB66axK{$$X47$jqy^0r+Qr zPgj}++!0rMg&OEC@-5Vw`X{f3l6tW&fKI@bnoiYi0lOpDZU=*Mw*l00uag8c37Ptp zg}-Y({E8gm0Ki})9PMm;M*Z7)1Ly=e!}0DSoA`;h zB}!nHfu!7qw-C5NKtdP*nCP_eYuaYJ@S9O}Y$>D4Ifi@&?M9ImjkH+3>f18Z0B~jK zcxpHhix)itnA)G!bJ!(f;d8ML1v1lxf zOzz-sKYYjfTx%(1vEsE|No$GTt^n2@E`8x7#L}+j*T?J*?kn&(0DSk@97iew>0*-o z>c!ZLL$8_jLIFR(=@Cn7_`W}@hL(jaBly_n@*6-iOX_t(>9BZhLH1)0i+Z2CqEcJn z`!sF`yWa+7jdV&wM9b!5n`0J`7)Ic$kxUXhJ(h`d|Fbkb7(Vek9FNpP3w!`#*r>HS z1ef!P07>w{W|P-|1&;j9muDYEA3)^lN5ckvX|pG}yu)=McTcL89blK` z94E+cPpJD{NkRFJcee=Mf=VCYXMq5i5LN>5)X41b$Y%km93|EI zS@WCmSOzfFs8`2|AyUBoaqbnA^d*yypET?`$KxLvd z|MVol-)pO)v;$IREA1*hWCS-+lTi}de`)D5WviU3|QdqRzUOu`S)R` z$9jI&i>U!}lT<=7k>G}6^~By3jjc*gh;_!}_kG_~Jy}V|&u*Aw+(0c5>Av*Se|wy_ z8C<$QJIE+G{K>9{&GwSfiLu!)bsaq%6cIkhxWjImN}gSc$}`U62S-US+&~h_d8-8{}X4&RhFRSTO&StGrL|T37xtT!*^s`u!rK? zFLI$=6x`wJl)*_X!lYB;V(y^mr8y9wkCV7R{&)Gz=IqZ$!U$9>2fpY3F(F!&VV7DN z*|T|pjhC|3$8UG*5Q<6`7qvHZT-?}z&3a+;gJVPEl(S*Hx`m>-v?di=NJRDmy*?7ZnHgf2C3?ZRDg9w3S z(MiD)4s$brl14dPhxF0on&El_NizR1Ogd)Hy!QU8Dq?nK3n~$Uip9FDI>RK+IY70; z00E5P{1+88Fm1*uyyIT}O}v-iOg$UNDKtO)q6id=5%KO&$s$dIU&weo{}}$!Syk_i zPBapFnc;{z)S?0o&=V=Fqn~j-`ou5>{CVY|uhA4%gbCc9?qF#>|JZ7qegPh8LOO*O zwibsU^+6HkrZ5v+(|O^|(@Bk(0<6~75`NH=+dY?5IPKLvPVjMOvLK}c`3GFja2uGy zbtD9CaAs=`g}D)##Z}?>_gr7$2iMy?41vvROhxR4&zI4BOs&x|atT&^2HKGRZ~%Dt zSGqrHodtR5?Hca?g#g7(AsyOydJ3)-o^uzR0)Uf%au)#P2tiK)05U=S27U&BD=`ne z1-}M<9>cGG0?cy%{Q`wE`1!wKS5){vl7K|`|Ia0L6>3kKwn?v;(I}$u5>??fid{nB rk$Cq>>MOgihRFbf#!a{2_wkU$hzP#pA6VdT@I1CJej?17SFji8!2_wOVbr+NIQPNz=4R>YFgj z%9d`CKH(*A-aPLw|L1w1C+wMbH|l7kvF(I82D)h%?hjtYf`9Z24^l6o)ph4UmSV6= z*g-}J9L3^Z@�*3XW!>=?;Oto(TH9Q4Gh2tY=lP;ri@D1h`IQl>Fub>|i069|Ge> zRuLhpCG_w<@C=75@v|8H@&ui%7b}{)Jz$)u>S8@emvdIgL04DfT~f;6M0WxVMdNjT zdV4^gfPbthxYmCTG(}nKQ-x1>{By!CD0|?Xl(z0S_g=u^zwJxSD#<41X^;TPe%aU^&E6}^f{afbNUnt=jo z{PVj{;Z^P}VnW2qky(qk=bz$q_!wfIFlJX%4Pb(N$gERYuOR9UAyr;%2J(yxM}r4R zzB(|Ld{N${dgAxghR~*qpK-{y2S(k%_jSq}z&|w!BXf^%Yv3YyqSg$#m6`sN;)m8b mT&#$={Bf)$Xe(>`ANwyyWXSQeXw=dG0000 delta 581 zcmV-L0=oV21l|OYB!4AIL_t(|0j-ojXcJK!$G>-ZmrLxWHOAPqC8Sbax`-kaH>Zl= z;Gp6pbaZo&;wmmq4z&&r4o*@;>EfV^=paP|v7+D~YHE|3#MaB7n%tkQ~F<3ugJp-e%iW}oI_*Bo~UVq^UT(pbZ709FzM#2e< z(#7-n{30Ae$&w7$b9w`&)g%r^Mlh2)Eyjjx;d=HyhS&g_JHP^g2{wobN&I1LLbq#( zD=`{}aVa&8x!faYp(wVTMt8uBI*eFo57x{Q6q#W!)BIP$Fl7EO*B?t!h~u5zh*a|^F3?**hxIXCRTfVcCH z5tbBaEQ*3fCOHOG7(>=9bo^#VU|KzZq%wqWMgdc?41bn?uMn8QqCT#g#h@D6ffJEY zWC>)sHuh09lLO;8lQ@Ans`fkW%T^34aU9hS!Sb4TSy}c^jt^8x+WF*3Jk?)gjE>xf zU8cRL<5un=rsKzHZa+RZaz2nRWYD5jr!L_6zs~!>u&m&ic37O#JG3>n$20v+o3yvJ zF9gj{=05qbe}FYw>E_x4TuomP)ta6i*sHQb&R0JK_pn3~XIJh9f_96(|FQo7iH^t! TW*zf$00000NkvXXu0mjf*_Ryu diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png index 558583adb602ef7e3e28556a4a0d3034ddc65a97..f8ebf6ff4b17723e05e3754d73db0b5b67bb9d24 100644 GIT binary patch delta 1352 zcmV-O1-JU>3fl^hB!41FL_t(|0qt08Oq*30et;Irot8@}V-yD4xNWeTgJlEabvmP) z{?ND|>Y~P&Xkwy9<1gJGml#c!I89tMac0J7oY|&;WE&&f1U8Vdz%E<|3@DV+0)^h| z`yNNLu>xOPiuZQ&Fz4Tt`&+TB*i~iU&T)Y zH3$g_L0CvAqQex+Pf#U~MOJhgQX-VdiB3nHEE;;75%N$OKJPpVhubN}6~*OX#5(TN z+yN2HkIh1AgntU#5(}{@A@`o|hb(#zxe&T?V$#tz*|R(Zi{n>g!fwWCeG{T&3ahAF312R#W)q5@f82S$~NmeO2OqWu%(&Gy$!qF4(EE zmz-dXED}2si_vYqh0PSwKXreL=e$Gf;iHh}xi^i*PxSVj)#rc?_P@~y+UFx#Z369xJB)q9Y zN_gjZL4SrkM26=yYyE*fx$Kbr`si-G1+&sUw~Snx@SC( zJJ=lGZ!xU0S7vM6uTZM{MNzsR21IGF|01T2>nvPw^`h7 z7B_KwWuhB<(!A#$SM{fPui@~`6L%F;@Cn`~$A91uFN9Ds25)3Oi`*D3zU@7ZDd)^G z5WEA?q={0%+F4E-czU!6GcK#o>-bGjMmw|+EKVzazI6&GhR=)4cq+A&dU5^o^kN44 zy18KaVaHseEI=1^o3T42saD@ig_VP5lXQ^|h@h6-GHV^@8oOi$?+_Qp&Xld_AW2e^ zPk$_<)@XIv#C@HQc0VA3#|F=$a-?3k zey!s-LHq4o;t;Z}uO(2jlDr-fPFoBjkHm^9d*_d3i@3(o5Q5f*D9 zup8f}-G#i^OjHinW56HRDXrX ziE3R84<~QJ(f%4S{`yoO4i&wJQL7PsGdk%6nFt$ECNgX_knTm|A!Qy+bWl1&nl_8} z$zFWW_7xsW-hwx?_FyL+kWLO?pm)Z+&KpW;QjxS#7+;P8=jmrRj*tqhl1?y-H10sb zTVmUP9Xul@oTQw)V7MZjiZ|4ZUVp?ibr0T2+dN|!F7k&)DjaTme9+>2O{Jo<%=3;{ zf*M7Vu<%^5UlhKLzeXBSE5W9pH?)e+VyM%%pj26i2GUD5!k>`y*?;YO=>#tsuL)8d zHvY#zsxgoXPLYjtBFv4|iag{HTd3PeCdeWBy62c^WiO^bDrDs(HU0U*>p>5iO*h16 zF)UcctYz%``0SyS$IYAg!Nh_Dxn+IS{>^f6@rnokum+0zp5VVT=o6+~7IBRL0000< KMNUMnLSTaHOp5ma delta 1365 zcmV-b1*-bn3g`-uB!4eSL_t(|0qvMwOq*pC$N&BQq%9vUq0k{PU}2yeY;4ZO59Z9g zFd8*e(ZuY^#29ak30Gds#CT)$!b{`g6pb@+H<}@gv5kEY#$XHwlVOC8DFsI9cS~F9 zISr4-V zu{oGzdZ;7{1d(AtlU$E&DhtdC6H3$t(91NqA9g_|k>aa=ex=wgbTX?x7ryymO84Fn zV5P<;py~}fP=BKnMQE1Df`;=7IJsY$NGpl=LON`L;Q19If{8LD6pPKcDAo9z?F zwUow6tu5g-o`@g*`4A2ms-dPxhbYzi=^mHezi%$!K|>7<6vP#}@#8c=$Lx*xIUZ0h zktMv2iy{)^Qi;JR)uBL{gB#wFWQR>2&>8WF6y+I>Xm|FC0a;3k9M9+MOL$Gc_fMQ~ zv?L9)A%DPIH0ONLAZDZ9`267(^G?AF$Ws_s{C=AH;E9Pd8-hy-kTn{bh<~rvmf&6M zi_pkaD}EP^Me*gm({M$7nFU;~DqV3xI96~z425KKR?(F15{tzkkx0b%A-{dqxu=t< z(X_1*-#C6lr|V|s0GHrcoZ_{_P5M~=5tLJZ{C{DxU92Qq4!B$#rS-%Q#69w$u?81r z`!PqhD^;Zp$PrpgfoKS)r#sO;+bfp3hU{8uPuJt-Vaoy81pHTAz1^PMsMS}%9&%uY zdglUA485LVY^QV&2gWl4Xj7Tt40|Y&G8p7qajcCZ^y5?qS^Qdz5J-;Pfc;rjl-e+i zw}DZUSs~VC|4Ka=jn@hg4Wz_&k(${2eF4Hk*~-`DH(>2 z#dSMlfSgY8pOVPwW3N}PDZ+SYO2D!9=qnK-tAEvfE8SsI1LXZgT~-Aw6qWO?1+!q3 z>7b>GX0s3=*D^+PuY#PmRhf(H-eKC!`G3=fO9_yp!EJ+!pgwDduu+fc%7iE6{m9o7 zEtm{DsX)pxMeFd=18h`D0rEs2r0t@6ac%7-3)N^jgfnDTUo}64A}W|B+Z&=8Uv%}0 z^J|Ht{wB@aBBhyrf0Lp^&SGJ4tQHojf30D307UN~wcV$1B1vg5^22+zsCj z*u~BH?ZI1?!#GSE^|RD&xCbT@?_c)P6uCr^d%y5yoOAZ!^YNd^p_kwSML#LPLfRgF zRQxujb(Gr4RkG_lg%|Ac{2_W;B7d>{_tWaZ>5eQ`cp`=AoR=Pw-!9yvjTT!n-pedi zeo}xIr3p%@oFcXz$BU1N34bMtR>5x(kT`I0F?_G*4(h1rI;nAw1n%KO+iUpL{(bU* z1HQjRM4mD3f=z9K&Z}7$E*0?ubG27e-^^7Q@Y(pORd;y_0r@Gvb+n45>`oQ)lcKG( z&RnCWn>fAch%0@)YF`y_NjzyE)t6Gin8f=RE|yGdO+c>LPwdT^Vo9inZ&){~2OjWW XJJ%3YYL4eb00000NkvXXu0mjf;q;)~ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png index 73a239f47bfae8b43f254cca764ca6f2f61f9d4b..455b2b5cc231efe787c343fdfb9097c7b6fbaa43 100644 GIT binary patch delta 2322 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 P00000NkvXXu0mjf5&O1+ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png index 9cc0bc1291f39cde8038bf6d0df4748b0ab37785..12f0a49397d28251c97d294c15fa44f87881998b 100644 GIT binary patch delta 2162 zcmV-&2#xpc5dRR6B!5OpL_t(|0qt66Y*SYhK2DrC!(_+V0|+4yC|V zh^qTfX(d#I+KT?DTKWTt{%C0_AVyiGfLIBm&;&}LtROZ7$a3}`Uh(KTry+_%n&)xD z{w&M(^Ly9#d-sg*oNM{ab1N+H5Lo~@Z9^Q$W*7Df{$&L){2L^K! z>{9>f^!U#V(Kzo&uvjc`spd8$`gDU^^|`S2{%)8OGE~U;&kRwS3?Qem5Wcy)1ycMI z;U*HTGipGTntyrXL}mEs<{b_R%4ldb>7h_t241cn5bhBK-`?HI=bWp)(dv9L=yakK zMQ4VMgr3S62=NF2mAfAYo3_}LcNnUh>aC8sySVXF$UKCM(hgDs`$MQlAeb;>_Veul zebDbZLa#2daG>Oj)v*PU6W~JiEg|#i6rwXiN3cm|sDHEhvoGdFX`(Uw>gl3@)Sx8J zq1Wmjz>WHcLgpl#C=qHfYTn_zEohQsr7ny3O-YH`#gDA(7( zv9b&No=mqjNy?KX@uWaaL$~}4I z>aoh$Q*;U%jXHQcdNOP;JO+B4XlsnZR3mqBl^nBBTMpxb2ePOj6L!TMY{m!4!%9Of zXi?}p3WtfhqG>5GnP)c^u~{vNo&tM|GFY}*{QypOR`@8%@$xh!@a3&vK!a+jGvF}M zT7P3BtC@+a!7wd!7;Gs>hpMK!$IhD-HVRY<{|?8}<4Uc*x2@Ai5}fi;il`^bFG7W( z268pUR^QQTQ+k;yQGHOw^5esOP^_zTW-5|!Iv8m%IGnAzZgniuQw7W87C^LDh~)LB zDlS82Wwzvb&O*3g2u9KVed5R9iK<8n)qjS1Sod(h=qa=d;Y6w0pa^UWQR*U4etkYx z6n%^{dNb6zayVIW2~*El$xG>Gd>S{8O?(^5zRra6L}k{cG3CI?sv&j_@n-mFi0}x; zptKk2+oUH^5N^8uZe75~&D-wlQUVg8hcc3V_M*V5MsiEbZ1I4G|t;h+mxgbr*yo3{_ zwq-}iuDu6eV<|>amQoOPAE+pxNPkT|B5GV)@R86Z23NC6*t~=jjrIyscP?1T?vXTssqv!HbK#EK>berls}Nh8mR7z6u@GND*d0BQ~4LJe`sUgp~t!tq9BAQnOhQ?W*7#dH1xUFlN}z=7lX`w zj>Z&xD3ws(hq`;zsHT$cbbsa5$Ld+paEd6kHK&CR=b*B^@HiLRISv1rEv;0r!Vh|P z>B{~{M7HFoa|fO}d`n}da$A$?(I)|iiBb=jqA9gd49zQ;UV08Ds0PE;x*V9IN&&4| zkEYxkOE)=|VpsT8<>n8QLWc0UYF&lhze|?UQyI-U_+CSS%|(DiM1N`jlG-SziZiW_ zmm6xpTkgR(f%>{jqNhTT!k52W-eY0QdH+=3bcp2ZA;Y-QMixT;OuAT$Zm?T@Qu126 ziN@pIr2S1Y)wURh{z#M9qdtYn!ot26grA26_O&|Cmact!V-wco?BaNEu;g$4yeVlV zcPfsTU+D09yNC|NSnajIm_r5|;j&0CDN?$<~X zC4X3PV;wAtnh3MPQh8IhyLSZtn6?x5O4b^yH2?qr delta 2144 zcmV-m2%q==5bY3|}!wd`z`=ThQSS$#*U{xqC)v8sa zrqQHL(==_<#s(tL9GcDJ-|Gyq5Diuj!e!vun zMPgc+AN%tX%lh57uKFOfSdDhyd5gV3g5$ZYgUc*Wz%=zs5G3=*U}A*{=yP$3$U*NP z;}Zo1O~pN*Y3G+~)8S;V@7#e$h|bqchH^_SoNm6xK7R+w)Ph9ge7dfa8K?S=1({e1 zg*d*{Qq5&e+=<33qM^xZfUCy);De_3iaG)OBuc??!MOWjUV-po*dk~|v5?z%9`2bd zxvh&k(L`k|Y^}{>R_M5ciZ|0LK{a|A4%?NHQm6BJ@^!SO`0&DH@$%{O|!6XOd|8M&*DxDkz# z2eXAvNl^ zmq-RH&_wInn;^gOGMej5*s9C3BS`^f9Qv*hNPpjcTfP;8}XNfP?jCpw(uwyN@anNAzlmsgmtxd!L8I3oa8S`Id!# zn1Ak{h|x3^w$~oVw9wk`z6AkOAplKqFc{Hff2!Q$F_Hwge3T+;LDLmzz|>K0(b-*- zGvCdCO#g|4&e7S~34c@{U~_m9ZU-Y1Rv716ZrObo;iZL-!WTohTq`&}ukj*WY`x>| zG6cb0FleQI@a2fNm>?HIZF?g#|DgbPqJJ{6g!!B!M3pEal6+&~eCuuA%jgF#M9I%c z!V#+4>fu!LRTK?rg5wlegMJ*o1a_fJ++SbFV<`iI3(;

^;6-MfvB<*kvd(!sLNW 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 wTp7_#u8im=S0hGrlPe>-$(0e^{AfU*ifKnDM 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 FV1n)(?O*@^ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png index 558583adb602ef7e3e28556a4a0d3034ddc65a97..f8ebf6ff4b17723e05e3754d73db0b5b67bb9d24 100644 GIT binary patch delta 1352 zcmV-O1-JU>3fl^hB!41FL_t(|0qt08Oq*30et;Irot8@}V-yD4xNWeTgJlEabvmP) z{?ND|>Y~P&Xkwy9<1gJGml#c!I89tMac0J7oY|&;WE&&f1U8Vdz%E<|3@DV+0)^h| z`yNNLu>xOPiuZQ&Fz4Tt`&+TB*i~iU&T)Y zH3$g_L0CvAqQex+Pf#U~MOJhgQX-VdiB3nHEE;;75%N$OKJPpVhubN}6~*OX#5(TN z+yN2HkIh1AgntU#5(}{@A@`o|hb(#zxe&T?V$#tz*|R(Zi{n>g!fwWCeG{T&3ahAF312R#W)q5@f82S$~NmeO2OqWu%(&Gy$!qF4(EE zmz-dXED}2si_vYqh0PSwKXreL=e$Gf;iHh}xi^i*PxSVj)#rc?_P@~y+UFx#Z369xJB)q9Y zN_gjZL4SrkM26=yYyE*fx$Kbr`si-G1+&sUw~Snx@SC( zJJ=lGZ!xU0S7vM6uTZM{MNzsR21IGF|01T2>nvPw^`h7 z7B_KwWuhB<(!A#$SM{fPui@~`6L%F;@Cn`~$A91uFN9Ds25)3Oi`*D3zU@7ZDd)^G z5WEA?q={0%+F4E-czU!6GcK#o>-bGjMmw|+EKVzazI6&GhR=)4cq+A&dU5^o^kN44 zy18KaVaHseEI=1^o3T42saD@ig_VP5lXQ^|h@h6-GHV^@8oOi$?+_Qp&Xld_AW2e^ zPk$_<)@XIv#C@HQc0VA3#|F=$a-?3k zey!s-LHq4o;t;Z}uO(2jlDr-fPFoBjkHm^9d*_d3i@3(o5Q5f*D9 zup8f}-G#i^OjHinW56HRDXrX ziE3R84<~QJ(f%4S{`yoO4i&wJQL7PsGdk%6nFt$ECNgX_knTm|A!Qy+bWl1&nl_8} z$zFWW_7xsW-hwx?_FyL+kWLO?pm)Z+&KpW;QjxS#7+;P8=jmrRj*tqhl1?y-H10sb zTVmUP9Xul@oTQw)V7MZjiZ|4ZUVp?ibr0T2+dN|!F7k&)DjaTme9+>2O{Jo<%=3;{ zf*M7Vu<%^5UlhKLzeXBSE5W9pH?)e+VyM%%pj26i2GUD5!k>`y*?;YO=>#tsuL)8d zHvY#zsxgoXPLYjtBFv4|iag{HTd3PeCdeWBy62c^WiO^bDrDs(HU0U*>p>5iO*h16 zF)UcctYz%``0SyS$IYAg!Nh_Dxn+IS{>^f6@rnokum+0zp5VVT=o6+~7IBRL0000< KMNUMnLSTaHOp5ma delta 1365 zcmV-b1*-bn3g`-uB!4eSL_t(|0qvMwOq*pC$N&BQq%9vUq0k{PU}2yeY;4ZO59Z9g zFd8*e(ZuY^#29ak30Gds#CT)$!b{`g6pb@+H<}@gv5kEY#$XHwlVOC8DFsI9cS~F9 zISr4-V zu{oGzdZ;7{1d(AtlU$E&DhtdC6H3$t(91NqA9g_|k>aa=ex=wgbTX?x7ryymO84Fn zV5P<;py~}fP=BKnMQE1Df`;=7IJsY$NGpl=LON`L;Q19If{8LD6pPKcDAo9z?F zwUow6tu5g-o`@g*`4A2ms-dPxhbYzi=^mHezi%$!K|>7<6vP#}@#8c=$Lx*xIUZ0h zktMv2iy{)^Qi;JR)uBL{gB#wFWQR>2&>8WF6y+I>Xm|FC0a;3k9M9+MOL$Gc_fMQ~ zv?L9)A%DPIH0ONLAZDZ9`267(^G?AF$Ws_s{C=AH;E9Pd8-hy-kTn{bh<~rvmf&6M zi_pkaD}EP^Me*gm({M$7nFU;~DqV3xI96~z425KKR?(F15{tzkkx0b%A-{dqxu=t< z(X_1*-#C6lr|V|s0GHrcoZ_{_P5M~=5tLJZ{C{DxU92Qq4!B$#rS-%Q#69w$u?81r z`!PqhD^;Zp$PrpgfoKS)r#sO;+bfp3hU{8uPuJt-Vaoy81pHTAz1^PMsMS}%9&%uY zdglUA485LVY^QV&2gWl4Xj7Tt40|Y&G8p7qajcCZ^y5?qS^Qdz5J-;Pfc;rjl-e+i zw}DZUSs~VC|4Ka=jn@hg4Wz_&k(${2eF4Hk*~-`DH(>2 z#dSMlfSgY8pOVPwW3N}PDZ+SYO2D!9=qnK-tAEvfE8SsI1LXZgT~-Aw6qWO?1+!q3 z>7b>GX0s3=*D^+PuY#PmRhf(H-eKC!`G3=fO9_yp!EJ+!pgwDduu+fc%7iE6{m9o7 zEtm{DsX)pxMeFd=18h`D0rEs2r0t@6ac%7-3)N^jgfnDTUo}64A}W|B+Z&=8Uv%}0 z^J|Ht{wB@aBBhyrf0Lp^&SGJ4tQHojf30D307UN~wcV$1B1vg5^22+zsCj z*u~BH?ZI1?!#GSE^|RD&xCbT@?_c)P6uCr^d%y5yoOAZ!^YNd^p_kwSML#LPLfRgF zRQxujb(Gr4RkG_lg%|Ac{2_W;B7d>{_tWaZ>5eQ`cp`=AoR=Pw-!9yvjTT!n-pedi zeo}xIr3p%@oFcXz$BU1N34bMtR>5x(kT`I0F?_G*4(h1rI;nAw1n%KO+iUpL{(bU* z1HQjRM4mD3f=z9K&Z}7$E*0?ubG27e-^^7Q@Y(pORd;y_0r@Gvb+n45>`oQ)lcKG( z&RnCWn>fAch%0@)YF`y_NjzyE)t6Gin8f=RE|yGdO+c>LPwdT^Vo9inZ&){~2OjWW XJJ%3YYL4eb00000NkvXXu0mjf;q;)~ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png index 5bf21b79386e8e0c5093f54e97ff497d95277ff0..14af50627c7e885e814664bfa282b4a231f35201 100644 GIT binary patch delta 3277 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png index 6717481c1cfc177a65f90a44c8ac4c5243d5b305..bcf1dbbcba749d49ef5e81456d7f8c27b40ebcfe 100644 GIT binary patch literal 5305 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 literal 5136 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 delta 1747 zcmV;^1}yo@4&n`vBYy^|Nkl0+IA5q4&m!Kl*V zPHz*waUX|wz$f|pCWT0mJ`eBYyat6rA>Pk6%)lF2tFgbe0ug#h!K4t$)>zRO>Bo`w zN^Hqmg-@HlL!Q=-ER6-8fi6kkIVnW+N-a)y)}W%Z8khWkqI<9x#d;S4gME^}b3%x) zp(Ta_rZQK-v7G#VXJrO{y5D}OZ=VUKeou6Ez0ov1}9I*^tP zvJhF8QG!G5m+-QsRH)I(t{R~}d-JwJqa6Dd`|`I#sZin+o!c4iN!y0BiLA2BqgB0! zwblh_?)T#F;A8Q57a13i1cQ&==(#UQsL0VuO*4_HHsd;d788I}AejiO3}H=M1FPCZyJ5k3 z3fAFRVV*0pcRchC2Ju;Nl7h>Oz4=?oMdI(q z@156#ILHmj!OmocV~c$iwq>t@iX=52?ozpaz0=~fjHhTS(q&@-^&*%3w}%=juDMiGq17$a=O7Y|;4vjh zEftdvt!?Po4{fJ#zpq(zjee?dx%uM8YZFzy5hB8!A}7~$^NTD*D*bgLKa_V=iGTNO zf%bX1EzUk;>A#HPv+4c1|5bz|T`#03g!v&w*%%r6X8$U21v zYp9b9P#J%y{bIVe9s$WjmSoI^i+?h7Atg4J(t#&F&WX`UF~X&OraA+^Jt;?)Q;)(^ zlS(m=lRk)xhm?urYVBghYkKa9o||20q3L;4Q-}D9ZHX9t&M_9y4qX;5##n8cF9N!n znz4yON<^~A=*6bu5pK~D_KQI087{B>N3PvsR`q`F>w=h(TI1TlLopgn7Jn=b+o_u7 zvC(xB3vPc|u4N&@2CcI#!mr+uzMV(z#YDLEE`K8t;ohIK{(9>Y=|nhKx6u}J()y~kTo}u8x`1MW=Ta=G zePav@I7jfGOkn!_5G1lCgy;@9cVzFE(`U&kH$Tp!K=?dIdFcdA`+ZzIe%u@g(VY-jdWI6 z=89(MpHMs1O^1^*h{5C^1Y5*kvM8q{xzt<&FS+aiN~k@k(iiwKWT`j8j>Qy pjZZ2;J{g$)&xfgoX(Ce%{{lkFzJkBB)UN;l002ovPDHLkV1i`BP*eZ_ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png index 4add12faad12b170f219df9dc49df20416bf861d..7ad51921ba913ad25b027b943fe9235b0c14acfa 100644 GIT binary patch literal 4217 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 delta 2114 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 literal 5136 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png index 4869c89998e3f757a5c4231cd049b83b6ceeff8a..7869721f7463495653427810992433d6117f944b 100644 GIT binary patch delta 2862 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 YFNLOLpy5yBSpWb407*qoM6N<$g4u3a3jhEB diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png index cadea0b5293d5c0681cf795ff2d73b325272d8b1..771ec6d646352acae67468cdb0846c93a06a91a1 100644 GIT binary patch literal 6520 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 o^=bLtN;t}^>EL33TTb23iL?#sf;u}G(GQ`~~D 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png index 0c18e0701b5e4672f1762c360ede34e7452b4baa..03ccd99545bdbfba6e8b43b897c3e5b45eecb5f7 100644 GIT binary patch delta 3075 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 R8wmga002ovPDHLkV1gmC<5d6v delta 3025 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png index 923c7c2162da8132dbdea1a34eaae7ee1f0c830b..d2f5add5bc136451fa84f458055f8c14f40f5215 100644 GIT binary patch literal 7737 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 V<@dM`4_Criuaq?*^@^5}{{!$2^CJKN literal 7569 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 + analytics = analyticsService.analytics; FirebaseService firebaseService = locator(); final RemoteConfigService _remoteConfigService = locator(); diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index 29e79c0..f4f1b4b 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -117,15 +117,21 @@ class AppProvider extends ChangeNotifier { } Future loadAllNews() async{ + String placeholderUrl = 'https://res.cloudinary.com/doy9hqxr1/image/upload/q_70/v1596572656/Football-Class-Cover-Page_sjrsaq.jpg'; List allNews = await _newsService.fetchNews('european football'); - _newsList = allNews.where((news) => news.imageUrl != null).toList(); + List allNewsFirst = allNews.where((news) => news.imageUrl != placeholderUrl).toList(); + List allNewsSecond = allNews.where((news) => news.imageUrl == placeholderUrl).toList(); + _newsList = allNewsFirst + allNewsSecond; notifyListeners(); } Future loadFavouriteNews() async { + String placeholderUrl = 'https://res.cloudinary.com/doy9hqxr1/image/upload/q_70/v1596572656/Football-Class-Cover-Page_sjrsaq.jpg'; String teamName = await LocalStorage.getString('teamName'); List favouriteNews = await _newsService.fetchNews(teamName);; - _favouriteNewsList = favouriteNews.where((news) => news.imageUrl != null).toList(); + List favouriteNewsFirst = favouriteNews.where((news) => news.imageUrl != placeholderUrl).toList(); + List favouriteNewsSecond = favouriteNews.where((news) => news.imageUrl == placeholderUrl).toList(); + _favouriteNewsList = favouriteNewsFirst + favouriteNewsSecond; notifyListeners(); } diff --git a/lib/commons/BottomNavbar.dart b/lib/commons/BottomNavbar.dart index e29b9f6..49dfe6f 100644 --- a/lib/commons/BottomNavbar.dart +++ b/lib/commons/BottomNavbar.dart @@ -3,6 +3,7 @@ import 'package:provider/provider.dart'; import 'custom_icons.dart'; import '../Provider/AppProvider.dart'; import '../Provider/ThemeProvider.dart'; +import 'GlobalKeys.dart'; class BottomNavbar extends StatelessWidget { final List routes = ['/home', '/score', '/league', '/news', '/dashboard']; Widget build(BuildContext context){ @@ -14,27 +15,27 @@ class BottomNavbar extends StatelessWidget { final List bottomNavbarItems = [ new BottomNavigationBarItem( activeIcon: Icon(MyFlutterApp.home__1_, color: Theme.of(context).primaryColor,), - icon: Icon(MyFlutterApp.home__1_), + icon: Icon(MyFlutterApp.home__1_,), title: Text('Home', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( activeIcon: Icon(MyFlutterApp.score, color: Theme.of(context).primaryColor,), - icon: Icon(MyFlutterApp.score), + icon: Icon(MyFlutterApp.score,), title: Text('Matches', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( activeIcon: Icon(Icons.table_chart, color: Theme.of(context).primaryColor,), - icon: Icon(Icons.table_chart), + icon: Icon(Icons.table_chart,), title: Text('League', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( activeIcon: Icon(MyFlutterApp.news, color: Theme.of(context).primaryColor,), - icon: Icon(MyFlutterApp.news), + icon: Icon(MyFlutterApp.news,), title: Text('News', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( activeIcon: Icon(Icons.settings, color: Theme.of(context).primaryColor,), - icon: Icon(Icons.settings), + icon: Icon(Icons.settings,), title: Text('Settings', style: _bottomNavBarStyle,) ) ]; diff --git a/lib/commons/GlobalKeys.dart b/lib/commons/GlobalKeys.dart new file mode 100644 index 0000000..ef1eb66 --- /dev/null +++ b/lib/commons/GlobalKeys.dart @@ -0,0 +1,22 @@ +import 'package:flutter/material.dart'; + +class GlobalKeys { + static final GlobalKey carouselKey = GlobalKey(debugLabel: 'carouselKey'); + static final GlobalKey matchCardKey = GlobalKey(debugLabel: 'matchCardKey'); + static final GlobalKey allNewsCardKey = GlobalKey(debugLabel: 'allNewsCardKey'); + static final GlobalKey homeScreenKey = GlobalKey(debugLabel: 'homeScreenKey'); + static final GlobalKey scoreScreenKey = GlobalKey(debugLabel: 'scoreScreenKey'); + static final GlobalKey leagueScreenKey = GlobalKey(debugLabel: 'leagueScreenKey'); + static final GlobalKey newsScreenKey = GlobalKey(debugLabel: 'newsScreenKey'); + static final GlobalKey dashboardScreenKey = GlobalKey(debugLabel: 'dashboardScreenKey'); + static final List globalKeys = [ + carouselKey, + matchCardKey, + allNewsCardKey, + homeScreenKey, + scoreScreenKey, + leagueScreenKey, + newsScreenKey, + dashboardScreenKey + ]; +} diff --git a/lib/commons/HomeBottomNavbar.dart b/lib/commons/HomeBottomNavbar.dart new file mode 100644 index 0000000..cf000ce --- /dev/null +++ b/lib/commons/HomeBottomNavbar.dart @@ -0,0 +1,54 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'custom_icons.dart'; +import '../Provider/AppProvider.dart'; +import '../Provider/ThemeProvider.dart'; +import 'GlobalKeys.dart'; +class HomeBottomNavbar extends StatelessWidget { + final List routes = ['/home', '/score', '/league', '/news', '/dashboard']; + Widget build(BuildContext context){ + final ThemeProvider _themeProvider = Provider.of(context); + final _bottomNavBarStyle = TextStyle( + fontWeight: FontWeight.w400, + color: _themeProvider.appTheme == AppTheme.Light ? Colors.black : Colors.white, + ); + final List bottomNavbarItems = [ + new BottomNavigationBarItem( + activeIcon: Icon(MyFlutterApp.home__1_, key: GlobalKeys.homeScreenKey, color: Theme.of(context).primaryColor,), + icon: Icon(MyFlutterApp.home__1_,), + title: Text('Home', style: _bottomNavBarStyle,) + ), + new BottomNavigationBarItem( + activeIcon: Icon(MyFlutterApp.score, color: Theme.of(context).primaryColor,), + icon: Icon(MyFlutterApp.score, key: GlobalKeys.scoreScreenKey,), + title: Text('Matches', style: _bottomNavBarStyle,) + ), + new BottomNavigationBarItem( + activeIcon: Icon(Icons.table_chart, color: Theme.of(context).primaryColor,), + icon: Icon(Icons.table_chart, key: GlobalKeys.leagueScreenKey,), + title: Text('League', style: _bottomNavBarStyle,) + ), + new BottomNavigationBarItem( + activeIcon: Icon(MyFlutterApp.news, color: Theme.of(context).primaryColor,), + icon: Icon(MyFlutterApp.news, key: GlobalKeys.newsScreenKey,), + title: Text('News', style: _bottomNavBarStyle,) + ), + new BottomNavigationBarItem( + activeIcon: Icon(Icons.settings, color: Theme.of(context).primaryColor,), + icon: Icon(Icons.settings, key: GlobalKeys.dashboardScreenKey,), + title: Text('Settings', style: _bottomNavBarStyle,) + ) + ]; + return Consumer( + builder: (context, model, child) => BottomNavigationBar( + type: BottomNavigationBarType.fixed, + items: bottomNavbarItems, + onTap: (int index) { + model.navbarIndex = index; + Navigator.of(context).pushReplacementNamed(routes[index]); + }, + currentIndex: model.navbarIndex, + ), + ); + } +} \ No newline at end of file diff --git a/lib/commons/NetworkAwareWidget.dart b/lib/commons/NetworkAwareWidget.dart index aa43e4c..2487d14 100644 --- a/lib/commons/NetworkAwareWidget.dart +++ b/lib/commons/NetworkAwareWidget.dart @@ -12,7 +12,7 @@ class NetworkAwareWidget extends StatelessWidget { return Consumer(builder: (context, model, oldChild) { if (model == NetworkStatus.Offline) { return Scaffold( - backgroundColor: Colors.white, + bottomNavigationBar: BottomNavbar(), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, @@ -31,7 +31,6 @@ class NetworkAwareWidget extends StatelessWidget { "No internet available", style: TextStyle( fontSize: 24, - color: Colors.black, fontWeight: FontWeight.w500), ), ), diff --git a/lib/commons/NoContent.dart b/lib/commons/NoContent.dart index df26dea..f64bcb2 100644 --- a/lib/commons/NoContent.dart +++ b/lib/commons/NoContent.dart @@ -8,40 +8,42 @@ class NoContent extends StatelessWidget { @override Widget build(BuildContext context) { return Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Container( - height: MediaQuery.of(context).size.width * 0.6, - child: Image.asset('assets/images/empty.png'), + child: Padding( + padding: EdgeInsets.only(top: MediaQuery.of(context).size.height * 0.1), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Container( + height: MediaQuery.of(context).size.width * 0.6, + child: Image.asset('assets/images/empty.png'), + ), ), - ), - Padding( - padding: const EdgeInsets.only(top: 2.0, bottom: 4.0), - child: Text( - title, - style: TextStyle( - fontSize: 24, - color: Colors.black, - fontWeight: FontWeight.w500), + Padding( + padding: const EdgeInsets.only(top: 8.0, bottom: 4.0), + child: Text( + title, + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.w500), + ), ), - ), - Padding( - padding: - const EdgeInsets.only(bottom: 8.0, left: 14.0, right: 14.0), - child: Text( - description, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 18, - color: Theme.of(context).primaryColorDark, - fontWeight: FontWeight.w300), + Padding( + padding: + const EdgeInsets.only(bottom: 8.0, left: 14.0, right: 14.0), + child: Text( + description, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).primaryColorDark, + fontWeight: FontWeight.w300), + ), ), - ), - ], + ], + ), ), ); } diff --git a/lib/commons/ScoreCard.dart b/lib/commons/ScoreCard.dart index 7bfdd2b..6043af2 100644 --- a/lib/commons/ScoreCard.dart +++ b/lib/commons/ScoreCard.dart @@ -4,6 +4,7 @@ import '../models/Score.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'custom_icons.dart'; import '../constants.dart'; +import 'GlobalKeys.dart'; class ScoreCard extends StatefulWidget { final Score score; diff --git a/lib/main.dart b/lib/main.dart index 9ef3987..d9a277a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,20 +1,12 @@ +import 'package:firebase_analytics/observer.dart'; import 'package:flutter/material.dart'; +import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; -import 'package:sportsmojo/models/User.dart'; import 'start.dart'; import 'package:provider/provider.dart'; -import 'Provider/AppProvider.dart'; -import 'services/CustomRouter.dart'; -import 'services/GetItLocator.dart'; -import 'services/LocalStorage.dart'; -import 'services/FirebaseService.dart'; -import 'services/RemoteConfigService.dart'; -import 'package:data_connection_checker/data_connection_checker.dart'; import 'screens/NoInternetScreen.dart'; import 'services/NetworkStatusService.dart'; -import 'services/FirebaseMessagingService.dart'; import 'Provider/ThemeProvider.dart'; -import 'services/LocalStorage.dart'; import 'App.dart'; void main() async { @@ -29,7 +21,7 @@ void main() async { WidgetsFlutterBinding.ensureInitialized(); await App.initialiseApp(); - + FlutterError.onError = Crashlytics.instance.recordFlutterError; runApp(MultiProvider( providers: [ ChangeNotifierProvider( @@ -49,13 +41,18 @@ void main() async { debugShowCheckedModeBanner: false, theme: lightTheme, darkTheme: darkTheme, - themeMode: model.appTheme == AppTheme.Light ? ThemeMode.light : ThemeMode.dark, + themeMode: model.appTheme == AppTheme.Light + ? ThemeMode.light + : ThemeMode.dark, navigatorKey: App.routerService.navigationKey, home: WillPopScope( onWillPop: () => Future.value(false), child: App.result ? Start() : NoInternetScreen()), onGenerateRoute: App.routerService.generateRoutes, - navigatorObservers: [HeroController()], + navigatorObservers: [ + HeroController(), + FirebaseAnalyticsObserver(analytics: App.analytics) + ], ), ), ), diff --git a/lib/models/News.dart b/lib/models/News.dart index 82b35ee..f116c1e 100644 --- a/lib/models/News.dart +++ b/lib/models/News.dart @@ -24,6 +24,6 @@ class News { url = parsedJson['url'], imageUrl = parsedJson['image'] != null ? parsedJson['image']['contentUrl'] - : null, + : 'https://res.cloudinary.com/doy9hqxr1/image/upload/q_70/v1596572656/Football-Class-Cover-Page_sjrsaq.jpg', publishedAt = DateTime.parse(parsedJson['datePublished']); } diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index 7b7e6da..99b7616 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -1,3 +1,5 @@ +import 'dart:async'; + import 'package:auto_size_text/auto_size_text.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; @@ -17,21 +19,40 @@ import '../constants.dart'; import '../commons/CustomRaisedButton.dart'; import '../services/FirebaseMessagingService.dart'; import '../Provider/ThemeProvider.dart'; -import 'dart:math' show pi; +import '../services/FlushbarHelper.dart'; + class DashboardScreen extends StatefulWidget { @override _DashboardScreenState createState() => _DashboardScreenState(); } -class _DashboardScreenState extends State { +class _DashboardScreenState extends State + with TickerProviderStateMixin { + AnimationController _sunController; + AnimationController _moonController; + Animation _moonAnimation; + final FirebaseService _firebaseService = locator(); final FirestoreService _firestoreService = locator(); - final FirebaseMessagingService _fcmService = locator(); + final FirebaseMessagingService _fcmService = + locator(); bool inProgress = false; String teamLogo, teamName, leagueName, leagueLogo; @override void initState() { + _sunController = new AnimationController( + vsync: this, + duration: new Duration(milliseconds: 1300), + ); + _moonController = new AnimationController( + duration: Duration(milliseconds: 1000), vsync: this) + ..addListener(() => setState(() {})); + _moonAnimation = Tween(begin: Offset(1.5, 0.0), end: Offset.zero) + .animate(CurvedAnimation( + parent: _moonController, + curve: Cubic(0, 1, .78, .98), + )); LocalStorage.getString('teamName').then((value) { setState(() { teamName = value; @@ -50,6 +71,8 @@ class _DashboardScreenState extends State { @override void dispose() { super.dispose(); + _sunController.dispose(); + _moonController.dispose(); } @override @@ -61,502 +84,645 @@ class _DashboardScreenState extends State { body: Consumer( builder: (context, model, child) => Consumer( builder: (context, themeModel, child) => SingleChildScrollView( - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.only( - topRight: Radius.circular(20.0), - topLeft: Radius.circular(20.0)), - color: themeModel.appTheme == AppTheme.Light ? Colors.white : Color(0XFF1D1D1D)), - margin: EdgeInsets.only(top: 40.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only( - top: 30.0, left: 8.0, right: 8.0, bottom: 8.0), - child: (model.currentUser != null) - ? Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(right: 8.0), - child: Container( - width: 50, - child: ClipRRect( - borderRadius: BorderRadius.circular(12.0), - child: CachedNetworkImage( - imageUrl: model.currentUser.profilePic, - placeholder: (BuildContext context, - String url) => - Image.asset( - 'assets/images/user-placeholder.jpg')), - ), - ), - ), - Expanded( - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: - CrossAxisAlignment.start, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + topRight: Radius.circular(20.0), + topLeft: Radius.circular(20.0)), + color: themeModel.appTheme == AppTheme.Light + ? Colors.white + : Color(0XFF1D1D1D)), + margin: EdgeInsets.only(top: 40.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only( + top: 30.0, left: 8.0, right: 8.0, bottom: 8.0), + child: (model.currentUser != null) + ? Row( + mainAxisAlignment: MainAxisAlignment.start, children: [ - AutoSizeText( - '${model.currentUser.name}', - style: TextStyle(fontSize: 20), - textAlign: TextAlign.left, - maxLines: 1, - ), - Text( - '${model.currentUser.email}', - style: TextStyle( - fontSize: 12, - color: Theme.of(context).primaryColorDark), - ) - ], - ), - CustomRaisedButton( - height: 30, - minWidth: 75, - label: 'Logout', - onPressed: () async { - await _firebaseService.signOutGoogle(); - model.currentUser = null; - }, - inProgress: false, - ) - ], - ), - ), - ], - ) - : Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - width: MediaQuery.of(context).size.width * 0.5, - child: RaisedButton( - onPressed: () async { - setState(() { - inProgress = true; - }); - final User user = - await _firebaseService.signInWithGoogle(); - model.currentUser = user; - final Map data = { - 'name': user.name, - 'email': user.email, - 'teamName': await LocalStorage.getString( - 'teamName', - ), - 'teamId': await LocalStorage.getString( - 'teamId', - ), - 'teamLogo': await LocalStorage.getString( - 'teamLogo', - ), - 'leagueName': await LocalStorage.getString( - 'leagueName'), - 'leagueId': await LocalStorage.getString( - 'leagueId', - ), - 'fcmToken': await _fcmService.getToken() - }; - await _firestoreService.setData( - userId: user.uid, data: data); - setState(() { - inProgress = false; - }); - }, - padding: EdgeInsets.symmetric(horizontal: 4.0), - child: inProgress ? CircularProgressIndicator( - valueColor: - new AlwaysStoppedAnimation(Color(0xfff5f5f5)), - ) : Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Container( - color: Colors.white, - height: 30, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - 'assets/images/google_logo.png'), - )), - Padding( - padding: const EdgeInsets.all(8.0), - child: AutoSizeText( - 'Sign in with Google', - style: TextStyle(color: Colors.white), - ), - ) - ], - ), - color: Color(0xff4285f4), - ), - ) - ], - ), - ), - Divider( - thickness: 0.7, - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Stack( - children: [ - Container( - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 12.0), - child: Column( - children: [ - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 20.0, vertical: 8.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Text( - 'Your Favourites', - style: TextStyle( - fontSize: 20, - color: Theme.of(context).primaryColorDark), + Padding( + padding: + const EdgeInsets.only(right: 8.0), + child: Container( + width: 50, + child: ClipRRect( + borderRadius: + BorderRadius.circular(12.0), + child: CachedNetworkImage( + imageUrl: model + .currentUser.profilePic, + placeholder: (BuildContext + context, + String url) => + Image.asset( + 'assets/images/user-placeholder.jpg')), ), - ], - ), - ), - Padding( - padding: const EdgeInsets.all(12.0), - child: Container( - width: - MediaQuery.of(context).size.width * 0.8, - decoration: BoxDecoration( - boxShadow: themeModel.appTheme == AppTheme.Light ? [ - BoxShadow( - color: Colors.white.withOpacity(0.8), - offset: Offset(-6.0, -6.0), - blurRadius: 16.0, - ), - BoxShadow( - color: Colors.black.withOpacity(0.1), - offset: Offset(6.0, 6.0), - blurRadius: 16.0, - ), - ] : [ - BoxShadow( - color: Colors.black.withOpacity(0.8), - offset: Offset(-6.0, -6.0), - blurRadius: 16.0, - ), - BoxShadow( - color: Colors.white.withOpacity(0.1), - offset: Offset(6.0, 6.0), - blurRadius: 16.0, - ), - ], - color: themeModel.appTheme == AppTheme.Light ? Colors.white : Color(0XFF1D1D1D), - borderRadius: BorderRadius.circular(12.0), ), + ), + Expanded( child: Row( - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, children: [ - Padding( - padding: const EdgeInsets.symmetric( - vertical: 30.0), - child: Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: - CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only( - bottom: 4.0), - child: Container( - height: 40, - child: leagueLogo != null - ? CachedNetworkImage( - imageUrl: leagueLogo, - placeholder: - (BuildContext - context, - String - url) => - Icon( - MyFlutterApp - .football, - size: 40, - )) - : Icon( - MyFlutterApp.football, - size: 40, - )), - ), - Text( - leagueName, - style: TextStyle(fontSize: 18), - ) - ], - ), + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AutoSizeText( + '${model.currentUser.name}', + style: + TextStyle(fontSize: 20), + textAlign: TextAlign.left, + maxLines: 1, + ), + Text( + '${model.currentUser.email}', + style: TextStyle( + fontSize: 12, + color: Theme.of(context) + .primaryColorDark), + ) + ], + ), + CustomRaisedButton( + height: 30, + minWidth: 75, + label: 'Logout', + onPressed: () async { + await _firebaseService + .signOutGoogle(); + model.currentUser = null; + }, + inProgress: false, ) ], ), ), - ), - Padding( - padding: const EdgeInsets.all(12.0), - child: Container( + ], + ) + : Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( width: - MediaQuery.of(context).size.width * 0.8, - decoration: BoxDecoration( - boxShadow: themeModel.appTheme == AppTheme.Light ? [ - BoxShadow( - color: Colors.white.withOpacity(0.8), - offset: Offset(-6.0, -6.0), - blurRadius: 16.0, - ), - BoxShadow( - color: Colors.black.withOpacity(0.1), - offset: Offset(6.0, 6.0), - blurRadius: 16.0, - ), - ] : [ - BoxShadow( - color: Colors.black.withOpacity(0.8), - offset: Offset(-6.0, -6.0), - blurRadius: 16.0, + MediaQuery.of(context).size.width * + 0.5, + child: RaisedButton( + onPressed: () async { + setState(() { + inProgress = true; + }); + final User user = + await _firebaseService + .signInWithGoogle(); + model.currentUser = user; + final Map data = { + 'name': user.name, + 'email': user.email, + 'teamName': + await LocalStorage.getString( + 'teamName', + ), + 'teamId': + await LocalStorage.getString( + 'teamId', + ), + 'teamLogo': + await LocalStorage.getString( + 'teamLogo', + ), + 'leagueName': + await LocalStorage.getString( + 'leagueName'), + 'leagueId': + await LocalStorage.getString( + 'leagueId', + ), + 'fcmToken': + await _fcmService.getToken() + }; + await _firestoreService.setData( + userId: user.uid, data: data); + setState(() { + inProgress = false; + }); + }, + padding: EdgeInsets.symmetric( + horizontal: 4.0), + child: inProgress + ? CircularProgressIndicator( + valueColor: + new AlwaysStoppedAnimation< + Color>( + Color(0xfff5f5f5)), + ) + : Row( + mainAxisAlignment: + MainAxisAlignment + .spaceBetween, + children: [ + Container( + color: Colors.white, + height: 30, + child: Padding( + padding: + const EdgeInsets + .all(8.0), + child: Image.asset( + 'assets/images/google_logo.png'), + )), + Padding( + padding: + const EdgeInsets.all( + 8.0), + child: AutoSizeText( + 'Sign in with Google', + style: TextStyle( + color: + Colors.white), + ), + ) + ], + ), + color: Color(0xff4285f4), + ), + ) + ], + ), + ), + Divider( + thickness: 0.7, + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Stack( + children: [ + Container( + child: Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20.0, vertical: 8.0), + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + Text( + 'Your Favourites', + style: TextStyle( + fontSize: 20, + color: Theme.of(context) + .primaryColorDark), + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.all(12.0), + child: Container( + width: MediaQuery.of(context) + .size + .width * + 0.8, + decoration: BoxDecoration( + boxShadow: themeModel.appTheme == + AppTheme.Light + ? [ + BoxShadow( + color: Colors.white + .withOpacity(0.8), + offset: + Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.black + .withOpacity(0.1), + offset: + Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ] + : [ + BoxShadow( + color: Colors.black + .withOpacity(0.8), + offset: + Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.white + .withOpacity(0.1), + offset: + Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ], + color: themeModel.appTheme == + AppTheme.Light + ? Colors.white + : Color(0XFF1D1D1D), + borderRadius: + BorderRadius.circular(12.0), ), - BoxShadow( - color: Colors.white.withOpacity(0.1), - offset: Offset(6.0, 6.0), - blurRadius: 16.0, + child: Row( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets + .symmetric( + vertical: 30.0), + child: Column( + mainAxisAlignment: + MainAxisAlignment + .spaceBetween, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Padding( + padding: + const EdgeInsets + .only( + bottom: 4.0), + child: Container( + height: 40, + child: leagueLogo != + null + ? CachedNetworkImage( + imageUrl: + leagueLogo, + placeholder: + (BuildContext context, + String url) => + Icon( + MyFlutterApp.football, + size: 40, + )) + : Icon( + MyFlutterApp + .football, + size: 40, + )), + ), + Text( + leagueName, + style: TextStyle( + fontSize: 18), + ) + ], + ), + ) + ], ), - ], - color: themeModel.appTheme == AppTheme.Light ? Colors.white : Color(0XFF1D1D1D), - borderRadius: BorderRadius.circular(12.0), + ), ), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.symmetric( - vertical: 30.0), - child: Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: - CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only( - bottom: 4.0), - child: Container( - height: 40, - child: teamLogo != null - ? CachedNetworkImage( - imageUrl: teamLogo, - placeholder: - (BuildContext - context, - String - url) => - Icon( - MyFlutterApp - .football, - size: 40, - )) - : Icon( - MyFlutterApp.football, - size: 40, - )), + Padding( + padding: const EdgeInsets.all(12.0), + child: Container( + width: MediaQuery.of(context) + .size + .width * + 0.8, + decoration: BoxDecoration( + boxShadow: themeModel.appTheme == + AppTheme.Light + ? [ + BoxShadow( + color: Colors.white + .withOpacity(0.8), + offset: + Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.black + .withOpacity(0.1), + offset: + Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ] + : [ + BoxShadow( + color: Colors.black + .withOpacity(0.8), + offset: + Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.white + .withOpacity(0.1), + offset: + Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ], + color: themeModel.appTheme == + AppTheme.Light + ? Colors.white + : Color(0XFF1D1D1D), + borderRadius: + BorderRadius.circular(12.0), + ), + child: Row( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets + .symmetric( + vertical: 30.0), + child: Column( + mainAxisAlignment: + MainAxisAlignment + .spaceBetween, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Padding( + padding: + const EdgeInsets + .only( + bottom: 4.0), + child: Container( + height: 40, + child: teamLogo != + null + ? CachedNetworkImage( + imageUrl: + teamLogo, + placeholder: + (BuildContext context, + String url) => + Icon( + MyFlutterApp.football, + size: 40, + )) + : Icon( + MyFlutterApp + .football, + size: 40, + )), + ), + Text( + teamName, + style: TextStyle( + fontSize: 18), + ) + ], ), - Text( - teamName, - style: TextStyle(fontSize: 18), - ) - ], - ), - ) - ], - ), - ), - ) - ], + ) + ], + ), + ), + ) + ], + ), + ), ), - ), + Positioned( + top: 12, + right: 12, + child: InkWell( + onTap: () { + Navigator.of(context) + .pushNamed('/selectleague'); + }, + child: Icon( + Icons.edit, + color: + themeModel.appTheme == AppTheme.Light + ? Color(0X7A000000) + : Color(0XFFF5F5F5), + size: 25, + ), + ), + ) + ], ), - Positioned( - top: 12, - right: 12, - child: InkWell( - onTap: () { - Navigator.of(context) - .pushNamed('/selectleague'); - }, - child: Icon( - Icons.edit, - color: themeModel.appTheme == AppTheme.Light ? Color(0X7A000000) : Color(0XFFF5F5F5), - size: 25, + ), + Container( + height: MediaQuery.of(context).size.height / 12, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 50, + child: Icon( + Icons.wb_sunny, + color: Color(0xff808080), + size: 30, + ), ), - ), - ) - ], - ), - ), - Container( - height: - MediaQuery.of(context).size.height / - 12, - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Container( - width: 50, - child: Icon( - Icons.wb_sunny, - color: Color(0xff808080), - size: 30, - ), - ), - Expanded( - child: Padding( - padding: const EdgeInsets.only( - left: 12.0), - child: Text( - 'Theme', - style: TextStyle( - color: Color(0xff808080), - fontSize: 20, - fontWeight: - FontWeight.w300), + Expanded( + child: Padding( + padding: const EdgeInsets.only(left: 12.0), + child: Text( + 'Theme', + style: TextStyle( + color: Color(0xff808080), + fontSize: 20, + fontWeight: FontWeight.w300), + ), + ), ), - ), + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: DayNightSwitcher( + isDarkModeEnabled: + themeModel.appTheme == AppTheme.Dark, + onStateChanged: (bool value) async { + if (!value) { + themeModel.appTheme = AppTheme.Light; + await LocalStorage.setString( + 'appTheme', "light"); + showSun(); + } else { + themeModel.appTheme = AppTheme.Dark; + await LocalStorage.setString( + 'appTheme', "dark"); + showMoon(); + } + }, + ), + ) + ], ), - Padding( - padding: const EdgeInsets.only(right: 4.0), - child: DayNightSwitcher( - isDarkModeEnabled: themeModel.appTheme == AppTheme.Dark, - onStateChanged: (bool value) async{ - if(!value) { - themeModel.appTheme = AppTheme.Light; - await LocalStorage.setString('appTheme', "light"); - } else { - themeModel.appTheme = AppTheme.Dark; - await LocalStorage.setString('appTheme', "dark"); - } - }, - ), - ) - ], - ), - ), - Container( - height: - MediaQuery.of(context).size.height / - 12, - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Container( - width: 50, - child: Icon( - Icons.notifications_active, - color: Color(0xff808080), - size: 30, - ), + ), + Container( + height: MediaQuery.of(context).size.height / 12, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 50, + child: Icon( + Icons.notifications_active, + color: Color(0xff808080), + size: 30, + ), + ), + Expanded( + child: Padding( + padding: const EdgeInsets.only(left: 12.0), + child: Text( + 'Push notifications', + style: TextStyle( + color: Color(0xff808080), + fontSize: 20, + fontWeight: FontWeight.w300), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: CupertinoSwitch( + activeColor: + Theme.of(context).primaryColor, + trackColor: Color(0xff56727c), + value: model.notificationEnabled, + onChanged: (bool value) async { + model.notificationEnabled = + !model.notificationEnabled; + if (value) { + FlushHelper.flushbarAlert(context: context, title: 'Success', message: 'Push Notications Enabled', seconds: 2); + LocalStorage.setString( + 'notificationEnabled', "yes"); + await _fcmService.subscribeToTopic( + topic: + teamName.replaceAll(' ', '')); + } else { + FlushHelper.flushbarAlert(context: context, title: 'Success', message: 'Push Notications Disabled', seconds: 2); + LocalStorage.setString( + 'notificationEnabled', "no"); + await _fcmService + .unsubscribeFromTopic( + topic: teamName.replaceAll( + ' ', '')); + await LocalStorage.setString( + 'lastTopic', null); + } + }), + ) + ], ), - Expanded( - child: Padding( - padding: const EdgeInsets.only( - left: 12.0), - child: Text( - 'Push notifications', - style: TextStyle( + ), + Container( + height: MediaQuery.of(context).size.height / 12, + child: InkWell( + onTap: () { + Share.share( + 'Check out this app where you can get latest football news and scores.\nhttps://play.google.com/store/apps/details?id=com.footballmojo'); + }, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 50, + child: Icon( + Icons.share, color: Color(0xff808080), - fontSize: 20, - fontWeight: - FontWeight.w300), - ), + size: 30, + ), + ), + Expanded( + child: Padding( + padding: + const EdgeInsets.only(left: 12.0), + child: Text( + 'Share this app', + style: TextStyle( + color: Color(0xff808080), + fontSize: 20, + fontWeight: FontWeight.w300), + ), + ), + ), + Container( + width: 50, + child: Icon( + Icons.chevron_right, + color: Theme.of(context).primaryColor, + size: 30, + ), + ) + ], ), ), - Padding( - padding: const EdgeInsets.only(right: 4.0), - child: CupertinoSwitch( - activeColor: Theme.of(context).primaryColor, - trackColor: Color(0xff56727c), - value: model.notificationEnabled, onChanged: (bool value) async{ - model.notificationEnabled = !model.notificationEnabled; - if(value) { - LocalStorage.setString('notificationEnabled', "yes"); - await _fcmService.subscribeToTopic(topic: teamName.replaceAll(' ', '')); - } else { - LocalStorage.setString('notificationEnabled', "no"); - await _fcmService.unsubscribeFromTopic(topic: teamName.replaceAll(' ', '')); - await LocalStorage.setString('lastTopic', null); - } - }), - ) - ], - ), + ) + ], ), - Container( - height: - MediaQuery.of(context).size.height / - 12, - child: InkWell( - onTap: () { - Share.share('Check out this app where you can get latest football news and scores.\nhttps://play.google.com/store?hl=en_IN'); - }, - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Container( - width: 50, - child: Icon( - Icons.share, - color: Color(0xff808080), - size: 30, - ), - ), - Expanded( - child: Padding( - padding: const EdgeInsets.only( - left: 12.0), - child: Text( - 'Share this app', - style: TextStyle( - color: Color(0xff808080), - fontSize: 20, - fontWeight: - FontWeight.w300), - ), - ), - ), - Container( - width: 50, - child: Icon( - Icons.chevron_right, - color: Theme.of(context) - .primaryColor, - size: 30, - ), - ) - ], - ), - ), - ) - ], - ), - ), - ) - ), + ), + )), ), ), ); } + + void showSun() { + _sunController.repeat(); + Timer timer = Timer(Duration(milliseconds: 1300), () { + Navigator.of(context, rootNavigator: true).pop(); + _sunController.stop(); + }); + showDialog( + context: context, + builder: (BuildContext context) => AnimatedBuilder( + animation: _sunController, + child: Container( + padding: EdgeInsets.symmetric(horizontal: MediaQuery.of(context).size.width * 0.25), + child: Image.asset('assets/images/sun.png'), + ), + builder: (BuildContext context, Widget _widget) { + return Transform.rotate( + angle: _sunController.value * 3.14, + child: _widget, + ); + }), + ).then((value) { + // dispose the timer in case something else has triggered the dismiss. + timer?.cancel(); + timer = null; + }); + ; + } + + void showMoon() { + _moonController.reset(); + _moonController.forward(); + Timer timer = Timer(Duration(milliseconds: 1300), () { + Navigator.of(context, rootNavigator: true).pop(); + }); + showDialog( + context: context, + barrierDismissible: true, + builder: (BuildContext context) => Container( + padding: EdgeInsets.symmetric(horizontal: MediaQuery.of(context).size.width * 0.3), + child: Center( + child: SlideTransition( + position: _moonAnimation, + child: Container( + child: Image.asset('assets/images/moon.png'), + ), + ), + ), + )).then((value) { + // dispose the timer in case something else has triggered the dismiss. + timer?.cancel(); + timer = null; + }); + ; + } } diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 1f7cee5..f282d8e 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -13,6 +13,10 @@ import '../Provider/HomeViewModel.dart'; import '../services/GetItLocator.dart'; import '../Provider/AppProvider.dart'; import '../Provider/ThemeProvider.dart'; +import '../services/tutorial.dart'; +import '../commons/GlobalKeys.dart'; +import '../services/LocalStorage.dart'; +import '../commons/HomeBottomNavbar.dart'; class HomeScreen extends StatefulWidget { @override @@ -27,6 +31,8 @@ class _HomeScreenState extends State with TickerProviderStateMixin { @override void initState() { final initialState = Provider.of(context, listen: false); + final tutorial = Tutorial(); + tutorial.initTargets(GlobalKeys.globalKeys); if (initialState.newsList == null) { initialState.loadAllNews(); } @@ -37,10 +43,19 @@ class _HomeScreenState extends State with TickerProviderStateMixin { initialState.loadFavouriteScores(); } if (initialState.leagueWiseScores == null) { - initialState.loadLeagueWiseScores(); + initialState.loadLeagueWiseScores().then((value) { + LocalStorage.getString('tutorialShown').then((value) { + if (value == null || value == "no") { + tutorial.showAfterLayout(context); + LocalStorage.setString('tutorialShown', "yes"); + } + }); + }); } super.initState(); - WidgetsBinding.instance.addPostFrameCallback((_) => showAlert()); + WidgetsBinding.instance.addPostFrameCallback((_) { + showAlert(); + }); } @override @@ -54,7 +69,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); return Scaffold( - bottomNavigationBar: BottomNavbar(), + bottomNavigationBar: HomeBottomNavbar(), body: Consumer( builder: (context, themeModel, child) => ChangeNotifierProvider( @@ -126,7 +141,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { final Score nextScore = matches[index - 1]; if (nextScore.date_time.difference(DateTime.now()).inSeconds < DateTime.now().difference(latestScore.date_time).inSeconds) { - if(nextScore.date_time.difference(DateTime.now()).inSeconds < 0) { + if (nextScore.date_time.difference(DateTime.now()).inSeconds < 0) { score = nextScore; caption = 'Latest Match'; } else { @@ -146,6 +161,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { caption = 'Live Match'; } return Padding( + key: GlobalKeys.matchCardKey, padding: const EdgeInsets.all(8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.center, @@ -172,6 +188,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { return Padding( padding: const EdgeInsets.all(8.0), child: Card( + key: GlobalKeys.allNewsCardKey, child: Column( mainAxisSize: MainAxisSize.min, children: [ @@ -223,16 +240,16 @@ class _HomeScreenState extends State with TickerProviderStateMixin { List allNewsList = appProvider.newsList; int totalCount; int circleCount; - if(favouriteNewsList != null) { - totalCount = - favouriteNewsList.length > 5 ? 5 : favouriteNewsList.length; + if (favouriteNewsList != null) { + totalCount = favouriteNewsList.length > 5 ? 5 : favouriteNewsList.length; circleCount = totalCount == 0 ? 5 : totalCount; } return Container( height: MediaQuery.of(context).size.height * 0.35, + key: GlobalKeys.carouselKey, child: favouriteNewsList != null ? Stack( - alignment: Alignment.bottomLeft, + alignment: Alignment.bottomLeft, children: [ PageView( controller: _pageController, diff --git a/lib/screens/IntroductionScreen.dart b/lib/screens/IntroductionScreen.dart index 60ea9db..55be605 100644 --- a/lib/screens/IntroductionScreen.dart +++ b/lib/screens/IntroductionScreen.dart @@ -47,15 +47,15 @@ class _IntroductionScreenState extends State { child: Image.asset('assets/images/football_cover.png'), ), Text( - 'Football just it was meant to be', + 'Welcome to Football Mojo', textAlign: TextAlign.center, style: TextStyle(fontSize: 30, fontWeight: FontWeight.w600), ), Flexible( child: Container( - padding: EdgeInsets.symmetric(horizontal: 30.0), + padding: EdgeInsets.symmetric(horizontal: 20.0), child: Text( - 'You can get football scores and news directly from your home...', + 'Your football companion who keeps you updated about football latest happenings', textAlign: TextAlign.center, style: TextStyle( fontSize: 15, diff --git a/lib/screens/LeagueTableScreen.dart b/lib/screens/LeagueTableScreen.dart index c688331..2b4f116 100644 --- a/lib/screens/LeagueTableScreen.dart +++ b/lib/screens/LeagueTableScreen.dart @@ -33,7 +33,7 @@ class _LeagueTableScreenState extends State appBar: PreferredSize( preferredSize: Size.fromHeight(100.0), child: AppBar( - leading: Container(), + automaticallyImplyLeading: false, backgroundColor: Theme.of(context).primaryColor, title: Text( 'League', diff --git a/lib/screens/NewsArticle.dart b/lib/screens/NewsArticle.dart index 75481bd..4939a70 100644 --- a/lib/screens/NewsArticle.dart +++ b/lib/screens/NewsArticle.dart @@ -193,7 +193,7 @@ class NewsArticleScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - 'Tap here to read full article', + 'Tap here to read full story', style: TextStyle( fontSize: 22, fontWeight: FontWeight.w400, diff --git a/lib/screens/NewsScreen.dart b/lib/screens/NewsScreen.dart new file mode 100644 index 0000000..998ca19 --- /dev/null +++ b/lib/screens/NewsScreen.dart @@ -0,0 +1,240 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; +import 'package:provider/provider.dart'; +import '../commons/BottomNavbar.dart'; +import '../commons/NewsCard.dart'; +import 'package:pk_skeleton/pk_skeleton.dart'; +import '../services/LocalStorage.dart'; +import '../Provider/AppProvider.dart'; +import '../Provider/ThemeProvider.dart'; + +class NewsScreen extends StatefulWidget { + @override + _NewsScreenState createState() => _NewsScreenState(); +} + +class _NewsScreenState extends State with TickerProviderStateMixin { + TabController _tabController; + String teamName; + void initState() { + final initialState = Provider.of(context, listen: false); + if (initialState.newsList == null) { + initialState.loadAllNews(); + } + if (initialState.favouriteNewsList == null) { + initialState.loadFavouriteNews(); + } + super.initState(); + _tabController = TabController(vsync: this, length: 2); + LocalStorage.getString('teamName').then((value) { + setState(() { + teamName = value; + }); + }); + } + + @override + void dispose() { + super.dispose(); + } + + Widget build(BuildContext context) { + return Consumer( + builder: (context, model, child) => Consumer( + builder: (context, themeModel, child) => Scaffold( + bottomNavigationBar: BottomNavbar(), + appBar: PreferredSize( + preferredSize: Size.fromHeight(100.0), + child: AppBar( + backgroundColor: Theme.of(context).primaryColor, + automaticallyImplyLeading: false, + title: Text( + 'News', + style: TextStyle(color: Colors.white), + ), + bottom: TabBar( + controller: _tabController, + tabs: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + 'All', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ), + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + '$teamName', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ) + ], + indicatorSize: TabBarIndicatorSize.tab, + indicator: UnderlineTabIndicator( + borderSide: + BorderSide(width: 3.0, color: Colors.white))), + ), + ), + body: TabBarView( + controller: _tabController, + children: [ + allNews(model: model, themeModel: themeModel), + favouriteTeamNews(model: model, themeModel: themeModel) + ], + )), + ), + ); + } + + Widget allNews({AppProvider model, ThemeProvider themeModel}) { + return RefreshIndicator( + onRefresh: () async { + EasyLoading.instance + ..displayDuration = const Duration(milliseconds: 2000) + ..indicatorType = EasyLoadingIndicatorType.chasingDots + ..loadingStyle = EasyLoadingStyle.custom + ..indicatorSize = 45.0 + ..radius = 10.0 + ..backgroundColor = Theme.of(context).primaryColor + ..indicatorColor = Colors.white + ..maskColor = Colors.blue.withOpacity(0.5) + ..progressColor = Theme.of(context).primaryColor + ..textColor = Colors.white; + EasyLoading.show(status: 'Fetching latest news'); + await _handleAllNewsRefresh(appProvider: model); + EasyLoading.dismiss(); + }, + child: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + 'Latest News', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500), + textAlign: TextAlign.left, + ), + ), + model.newsList == null + ? ListView.builder( + itemCount: 5, + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return themeModel.appTheme == AppTheme.Light + ? PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ) + : PKDarkCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }) + : ListView.separated( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: model.newsList.length, + separatorBuilder: (BuildContext context, int index) { + return Divider(); + }, + itemBuilder: (BuildContext context, int index) { + return NewsCard( + index: index, + news: model.newsList[index], + ); + }) + ], + ), + ), + ), + ); + } + + Widget favouriteTeamNews({AppProvider model, ThemeProvider themeModel}) { + return RefreshIndicator( + onRefresh: () async { + EasyLoading.instance + ..displayDuration = const Duration(milliseconds: 2000) + ..indicatorType = EasyLoadingIndicatorType.chasingDots + ..loadingStyle = EasyLoadingStyle.custom + ..indicatorSize = 45.0 + ..radius = 10.0 + ..backgroundColor = Theme.of(context).primaryColor + ..indicatorColor = Colors.white + ..maskColor = Colors.blue.withOpacity(0.5) + ..progressColor = Theme.of(context).primaryColor + ..textColor = Colors.white; + EasyLoading.show(status: 'Fetching latest news'); + await _handleFavouriteNewsRefresh(appProvider: model); + EasyLoading.dismiss(); + + }, + child: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + 'Latest News', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500), + textAlign: TextAlign.left, + ), + ), + model.favouriteNewsList == null + ? ListView.builder( + itemCount: 5, + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return themeModel.appTheme == AppTheme.Light + ? PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ) + : PKDarkCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }) + : ListView.separated( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: model.favouriteNewsList.length, + separatorBuilder: (BuildContext context, int index) { + return Divider(); + }, + itemBuilder: (BuildContext context, int index) { + return NewsCard( + index: index, + news: model.favouriteNewsList[index], + ); + }) + ], + ), + ), + ), + ); + } + + Future _handleAllNewsRefresh({AppProvider appProvider}) async { + await appProvider.loadAllNews(); + } + + Future _handleFavouriteNewsRefresh({AppProvider appProvider}) async { + await appProvider.loadFavouriteNews(); + } +} diff --git a/lib/screens/NoInternetScreen.dart b/lib/screens/NoInternetScreen.dart index ce3c7ed..fccc145 100644 --- a/lib/screens/NoInternetScreen.dart +++ b/lib/screens/NoInternetScreen.dart @@ -45,7 +45,6 @@ class _NoInternetScreenState extends State { "No internet available", style: TextStyle( fontSize: 24, - color: Colors.black, fontWeight: FontWeight.w500), ), ), diff --git a/lib/screens/NotFound.dart b/lib/screens/NotFound.dart new file mode 100644 index 0000000..28bee6c --- /dev/null +++ b/lib/screens/NotFound.dart @@ -0,0 +1,59 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../commons/CustomRaisedButton.dart'; +import '../commons/BottomNavbar.dart'; +import '../Provider/AppProvider.dart'; + +class NotFound extends StatelessWidget { + @override + Widget build(BuildContext context) { + final AppProvider appProvider = Provider.of(context); + return Scaffold( + bottomNavigationBar: BottomNavbar(), + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: Container( + width: MediaQuery.of(context).size.width * 0.6, + child: Image.asset('assets/images/notfound.png'), + ), + ), + Padding( + padding: const EdgeInsets.only(top:8.0, bottom: 4.0), + child: Text( + "Looks like you are lost", + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.w500), + ), + ), + Padding( + padding: const EdgeInsets.only(bottom: 8.0, left: 14.0, right: 14.0), + child: Text( + "Page you are looking for isn't available.", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + color: Theme.of(context).primaryColorDark, + fontWeight: FontWeight.w300), + ), + ), + CustomRaisedButton( + label: 'Return to home', + minWidth: 100, + height: 40, + onPressed: () { + appProvider.navbarIndex = 0; + Navigator.of(context).pushReplacementNamed('/home'); + }, + ) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/ScoreScreen.dart b/lib/screens/ScoreScreen.dart index 5fc61e1..9e9414b 100644 --- a/lib/screens/ScoreScreen.dart +++ b/lib/screens/ScoreScreen.dart @@ -43,7 +43,7 @@ class _ScoreScreenState extends State appBar: PreferredSize( preferredSize: Size.fromHeight(100.0), child: AppBar( - leading: Container(), + automaticallyImplyLeading: false, backgroundColor: Theme.of(context).primaryColor, title: Text( '$teamName', diff --git a/lib/services/AnalyticsService.dart b/lib/services/AnalyticsService.dart new file mode 100644 index 0000000..e0b74fc --- /dev/null +++ b/lib/services/AnalyticsService.dart @@ -0,0 +1,5 @@ +import 'package:firebase_analytics/firebase_analytics.dart'; + +class AnalyticsService { + FirebaseAnalytics analytics = FirebaseAnalytics(); +} \ No newline at end of file diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index a15aa2f..df08aa8 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -3,7 +3,7 @@ import 'package:sportsmojo/models/Score.dart'; import 'package:sportsmojo/screens/MatchStatScreen.dart'; import '../screens/HomeScreen.dart'; import '../screens/ScoreScreen.dart'; -import '../screens/News.dart'; +import '../screens/NewsScreen.dart'; import '../screens/NewsArticle.dart'; import '../models/News.dart'; import '../screens/FavouriteScreen2.dart'; @@ -14,6 +14,7 @@ import '../screens/IntroductionScreen.dart'; import '../start.dart'; import '../screens/NoInternetScreen.dart'; import '../commons/NetworkAwareWidget.dart'; +import '../screens/NotFound.dart'; class RouterService { final GlobalKey navigationKey = GlobalKey(); @@ -34,6 +35,10 @@ class RouterService { ]; if (validRoutes.contains(settings.name)) { return customRoutes(settings.name, settings.arguments); + } else { + return MaterialPageRoute(builder: (_) { + return NotFound(); + }); } } @@ -108,6 +113,6 @@ class RouterService { opacity: anim, child: NetworkAwareWidget(child: child)); }, transitionDuration: - Duration(milliseconds: route == '/newsarticle' ? 500 : 300)); + Duration(milliseconds: route == '/newsarticle' ? 500 : 250)); } } diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index a8b6683..fb81c48 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -20,6 +20,7 @@ import 'NetworkStatusService.dart'; import 'FirebaseMessagingService.dart'; import 'CustomRouter.dart'; import '../Provider/ThemeProvider.dart'; +import 'AnalyticsService.dart'; GetIt locator = GetIt.instance; @@ -37,6 +38,7 @@ Future setupLocator() async { locator.registerLazySingleton(() => TopScorerService()); locator.registerLazySingleton(() => FirebaseService()); locator.registerLazySingleton(() => FirestoreService()); + locator.registerLazySingleton(() => AnalyticsService()); locator.registerLazySingleton( () => NetworkStatusService()); locator.registerSingleton(remoteConfigService); diff --git a/lib/services/tutorial.dart b/lib/services/tutorial.dart new file mode 100644 index 0000000..67643fa --- /dev/null +++ b/lib/services/tutorial.dart @@ -0,0 +1,84 @@ +import 'package:tutorial_coach_mark/animated_focus_light.dart'; +import 'package:tutorial_coach_mark/tutorial_coach_mark.dart'; +import 'package:flutter/material.dart'; + +class Tutorial { + List targets = List(); + void initTargets(List keys) { + List targetContent = [ + [ + "This carousel will show top news related to your favourite team.", + AlignContent.bottom, + ], + [ + "Relevant matches related to your favourite team will be shown here", + AlignContent.bottom, + ], + [ + "This section will show general footballing news.", + AlignContent.top, + ], + [ + "This is your home screen", + AlignContent.top, + ], + [ + "This screen will show you all the matches for your favourite team", + AlignContent.top, + ], + [ + "This screen will show you matchdays, table and topscorers for a league.", + AlignContent.top, + ], + [ + "This screen is for all the footballing news", + AlignContent.top, + ], + [ + "This is your dashboard screen for managing sign-in, changing theme and other prefrences for the app.", + AlignContent.top, + ] + ]; + for (int i = 0; i < targetContent.length; i++) { + targets.add(TargetFocus( + identify: "Target ${i}", + keyTarget: keys[i], + contents: [ + ContentTarget( + align: targetContent[i][1], + child: Container( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + targetContent[i][0], + style: TextStyle( + fontWeight: FontWeight.w400, + color: Colors.white, + fontSize: 18.0), + ), + ], + ), + )) + ], + shape: ShapeLightFocus.RRect, + )); + } + } + + void showAfterLayout(BuildContext context) { + Future.delayed(Duration(milliseconds: 100), () { + TutorialCoachMark(context, + targets: targets, + colorShadow: Color(0xff0A4B7D), + textSkip: "SKIP", + paddingFocus: 10, + opacityShadow: 0.8, + finish: () {}, + clickTarget: (target) {}, + clickSkip: () {}) + ..show(); + }); + } +} \ No newline at end of file diff --git a/lib/start.dart b/lib/start.dart index 930fd12..64976d2 100644 --- a/lib/start.dart +++ b/lib/start.dart @@ -9,13 +9,19 @@ class Start extends StatefulWidget { class StartState extends State { Future checkTeam() async { + final String firstOpen = await LocalStorage.getString('firstOpen'); final String teamName = await LocalStorage.getString('teamName'); - if (teamName != null) { - Navigator.of(context).pushReplacementNamed('/home'); + if (firstOpen != null && firstOpen == "no") { + if(teamName == null) { + Navigator.of(context).pushReplacementNamed('/selectleague'); + } else { + Navigator.of(context).pushReplacementNamed('/home'); + } } else { await LocalStorage.setString('appTheme', "light"); await LocalStorage.setString("notificationEnabled", "yes"); await LocalStorage.setString('lastTopic', null); + await LocalStorage.setString('firstOpen', 'no'); Navigator.of(context).pushReplacementNamed('/introduction'); } } diff --git a/pubspec.lock b/pubspec.lock index 2106e63..5724cfb 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -21,7 +21,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.4.0" + version: "2.4.2" auto_size_text: dependency: "direct main" description: @@ -35,7 +35,7 @@ packages: name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "2.0.0" cached_network_image: dependency: "direct main" description: @@ -43,13 +43,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.2.0+1" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0-nullsafety" charcode: dependency: transitive description: name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" + version: "1.1.3" clock: dependency: transitive description: @@ -84,7 +91,7 @@ packages: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.14.11" + version: "1.15.0-nullsafety" color: dependency: transitive description: @@ -162,6 +169,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.0.9" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" file: dependency: transitive description: @@ -176,6 +190,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "7.3.0" + firebase_analytics: + dependency: "direct main" + description: + name: firebase_analytics + url: "https://pub.dartlang.org" + source: hosted + version: "5.0.16" + firebase_analytics_platform_interface: + dependency: transitive + description: + name: firebase_analytics_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + firebase_analytics_web: + dependency: transitive + description: + name: firebase_analytics_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1" firebase_auth: dependency: "direct main" description: @@ -218,6 +253,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.1+2" + firebase_crashlytics: + dependency: "direct main" + description: + name: firebase_crashlytics + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.4+1" firebase_messaging: dependency: "direct main" description: @@ -358,14 +400,14 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.6" + version: "0.12.8" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.1.8" + version: "1.3.0-nullsafety" nested: dependency: transitive description: @@ -379,7 +421,7 @@ packages: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.6.4" + version: "1.7.0" path_provider: dependency: transitive description: @@ -503,7 +545,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.5.5" + version: "1.7.0" sqflite: dependency: "direct main" description: @@ -524,7 +566,7 @@ packages: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.9.3" + version: "1.9.5" stream_channel: dependency: transitive description: @@ -559,14 +601,23 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.15" + version: "0.2.17" + tutorial_coach_mark: + dependency: "direct main" + description: + path: "." + ref: previous_next_functionality + resolved-ref: "0a3498233cfb349388200126c2de260918f32430" + url: "https://github.com/tanweer919/tutorial_coach_mark.git" + source: git + version: "0.3.0" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.1.6" + version: "1.3.0-nullsafety" url_launcher: dependency: "direct main" description: @@ -608,7 +659,7 @@ packages: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.0.8" + version: "2.1.0-nullsafety" xml: dependency: transitive description: @@ -624,5 +675,5 @@ packages: source: hosted version: "2.2.1" sdks: - dart: ">=2.7.2 <3.0.0" + dart: ">=2.9.0-18.0 <2.9.0" flutter: ">=1.12.13+hotfix.5 <2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 2718fa3..a6ae5e2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -46,6 +46,12 @@ dependencies: firebase_messaging: ^6.0.16 share: ^0.6.4+3 day_night_switcher: ^0.1.1 + firebase_analytics: ^5.0.16 + firebase_crashlytics: ^0.1.4+1 + tutorial_coach_mark: + git: + url: https://github.com/tanweer919/tutorial_coach_mark.git + ref: previous_next_functionality dev_dependencies: flutter_launcher_icons: ^0.7.5 flutter_native_splash: ^0.1.9 @@ -55,7 +61,7 @@ dev_dependencies: flutter_icons: android: "launcher_icon" ios: true - image_path: "assets/images/app_icon.png" + image_path: "assets/images/app_icon2.png" # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec From 409123a51a8225e28e64f790fe6952a80711df31 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Fri, 7 Aug 2020 23:01:10 +0530 Subject: [PATCH 48/49] Playstore deployment --- android/app/build.gradle | 3 +- android/app/google-services.json | 8 +- android/app/src/debug/AndroidManifest.xml | 2 +- android/app/src/main/AndroidManifest.xml | 1 + .../MainActivity.kt | 2 +- .../app/src/main/res/drawable-hdpi/splash.png | Bin 50820 -> 79681 bytes .../app/src/main/res/drawable-mdpi/splash.png | Bin 29252 -> 64964 bytes .../src/main/res/drawable-xhdpi/splash.png | Bin 76649 -> 118372 bytes .../src/main/res/drawable-xxhdpi/splash.png | Bin 91706 -> 146071 bytes .../src/main/res/drawable-xxxhdpi/splash.png | Bin 57812 -> 185899 bytes android/app/src/profile/AndroidManifest.xml | 2 +- android/build.gradle | 3 + assets/images/splash_screen.png | Bin 0 -> 264850 bytes .../LaunchImage.imageset/LaunchImage.png | Bin 21877 -> 34790 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 29252 -> 64964 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 57812 -> 185899 bytes ios/Runner/Base.lproj/LaunchScreen.storyboard | 2 +- lib/commons/ScoreCard.dart | 99 ++++++++++-------- lib/screens/HomeScreen.dart | 8 +- lib/screens/IntroductionScreen.dart | 2 +- lib/screens/NewsArticle.dart | 7 +- lib/widgets/LeagueDropdown.dart | 1 - lib/widgets/Stats.dart | 68 ++++++------ pubspec.yaml | 2 +- 24 files changed, 114 insertions(+), 96 deletions(-) rename android/app/src/main/kotlin/com/{example/sportsmojo => footballmojo}/MainActivity.kt (85%) create mode 100644 assets/images/splash_screen.png diff --git a/android/app/build.gradle b/android/app/build.gradle index 02afdaa..a97ca2c 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -43,10 +43,9 @@ android { } defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.footballmojo" minSdkVersion 16 - targetSdkVersion 28 + targetSdkVersion 29 versionCode flutterVersionCode.toInteger() versionName flutterVersionName multiDexEnabled true diff --git a/android/app/google-services.json b/android/app/google-services.json index 39ca12f..353d450 100644 --- a/android/app/google-services.json +++ b/android/app/google-services.json @@ -8,17 +8,17 @@ "client": [ { "client_info": { - "mobilesdk_app_id": "1:941839892238:android:cf75eb4875370f0cac215f", + "mobilesdk_app_id": "1:941839892238:android:d0657eb268d58fe8ac215f", "android_client_info": { - "package_name": "com.example.sportsmojo" + "package_name": "com.footballmojo" } }, "oauth_client": [ { - "client_id": "941839892238-5brsr913u4pbe9cppcq6ch0s507msjjt.apps.googleusercontent.com", + "client_id": "941839892238-4kjeusgddi8jd3euohqngn9quts111bh.apps.googleusercontent.com", "client_type": 1, "android_info": { - "package_name": "com.example.sportsmojo", + "package_name": "com.footballmojo", "certificate_hash": "6ab1580b9c5164660d0fed14658959d0002689c2" } }, diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index 53e2b44..bb5c3bb 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.footballmojo"> diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 35fea6d..024df9f 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -15,6 +15,7 @@ android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" + android:screenOrientation="portrait" android:windowSoftInputMode="adjustResize"> diff --git a/android/build.gradle b/android/build.gradle index bf07dc3..5040176 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -3,6 +3,9 @@ buildscript { repositories { google() jcenter() + maven { + url 'https://maven.fabric.io/public' + } } dependencies { diff --git a/assets/images/splash_screen.png b/assets/images/splash_screen.png new file mode 100644 index 0000000000000000000000000000000000000000..2f9150691af86b90420c6436df99e5471051d1d1 GIT binary patch literal 264850 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�Iju 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 literal 21877 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 L=IKf~6`c7eG;V3D diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png index 965dc12749c20a3a4c31d367c9d488fe5738fa2b..c0876cd57c2205024d4f0eabee7f6818956dd8f6 100644 GIT binary patch literal 64964 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 literal 29252 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 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png index 29047ddd50ccfc46a80e1f56b1676c336728a421..0ed6dc6945dcc5870f68d708bdb926603f497a48 100644 GIT binary patch literal 185899 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�P8+COq}TNt;))9#)5d zE^wGM!DZL>v+q7j`$hF$E}rl5%4-ZbLdLN5A!Fg z6%GNUdVdxR1141tG>+t9G9*fh30ZLvtp$a>+I*+&W5uCp)EQ^8d}V`)a!I}7x25*Z z5=dT_)lcSkrlAp0{@a5D^(fGHbf5b7NQQ`Dipo343>Yr>{fAX2@b~OH$-+Zb{dTqKl#7cy+3Cm| za&SK^9ihc|RS_o`#F+8#TOKQYTJIb%tj!upYLx=x?#dG!KX>3jO_Kt9C?b{}L*Ch8 z&>;O{1vx@I%Jc>Mp{w`I`SW-l$WsDJ-98q33)@cp#EqCf2XdC+p7*WGC}Muc zEKIT4FX=aolM)BMs`onUe5wzWk0J?ZKXXwX+?2M z75=FE9ZfMf4N%qZ;qefl9M0Q#FWd$x_TM8|LqOpwF2zdr3W>S<6ZL%PTt@?eVHhe1i(0@$N!?5B$(h?KcjfEXkzTJ* z-SM}0IuYn}kJ#4b1#fm(!eO+4+{bPftcVA>J~=y!M@n~m4IZj=uox*UvNpnw59;IF zvf-i-qC$LNZK0aKXj;pLDAej`)s9-8tOv0a;dG{st@}Eit?h-Oc^d7cY41KZ4SPm!CKR|C_C-!Rg*us)A7^5Xh10-1eX zv9m23nHi$x8YUnurPL;+3c=iq&On|2AuS5M+Q)uv)qSFNosCsLtjvTOsDz7ttM3)x z($+cwF4K8~?7)mwls%ohj6NM;?}{j>|L#R8ZkR`>CnPO_jhb}4{v(ZlUPwMwkr|$0 z_3@TQhW2QCwT)ruRFxhl2p<%2tAQQTU)go_eCDn}eR~8%Xf$Me@*PIZX2}xoBb_(I z&gCAY?%tb#Wo@S&j2;P-v3RZUOM=z0a8)A{r=X$wIHbQu!FVQ-Mm^0`nOMLzoQi2j zPA4WHOl`r~xbZ+Ie{n1^ZdBoXC0HC^t8f=@&gKfwPW*x^!kG)pNXk;7E5H3b&Gww2 zp)zhrS#xn6u2{Z#@(EZ6t zx7CUJ!dytug50qQeUZnk>dx2U1DKKIqdz;p_O}iB9f^^vmAZ^KCMj36~z4R-_ zc}>E64Z85?iU%3(^zr_iV7ZYM*(+GlF@1@(4@V(pG41YZAMF}osWFK--6s?m5ZmEo z>B%A9vI+!p16H(GQ!UIW&fB;ke|OD}DOwQ1_}9e|_#%z+1uh>ku*6wFSQDl<4f|S! zvys&d`ij)^F>0kX#n%3}`vX#OeR3+c;%y|hxZ4t5a0xk3KlMs5(0O8$(5`x04+SdK zK1t-k({p|XIA4T@_uHUb-H+S1ZE$@QXP~w68;%xig|T4TNQJV`Y@a@Dqa$Fnx67`) zV{}v=NO>nbJnb~fD<<_PC0ydc3|CHAx|ok=FB(WLgy1bEz2Dbl=HBTt-KT9C8ZBx0uoD}2e`|DsVF zE+SSg#sXE*!XXH}4SqKWR5wUpXJ=j$i7cs+a)0L>7pB4wx|RAKby9yXd>QCJ#e=#4 z0M|F?1b&8kj=R~wOwOAS`~p(Gva0oSY^K}v_D+%R+{r(9)YV%&lO6UzXT)hzT`uoqH&X{#Gb6dnt}U3+ zu(Eg0m+VMVRtacSEs)vf`H&tQUo(Hn!2aEZaa>U`HV|E>ph3q^cq`PRDs&y=y7=D) z;eTDMJF!&G+M7&QwEcd?X7QBpFZY_7oz&u$WtZYm&IV+Lg@XtrcRuA7m#b}07Rv>V zG$DlQ_iNWH)`PU|<>d08wkla*XVxyT=(+RBW|K9D!Ff1xH{fHRiT+78iMfVg9qb(h?F42Fyqg92(emaTym}+h`C_qyv{SbYJEX>MG^)m%9c84v zon2~6U;XkAn?d&lH|c!sU+=PAx2Ik;j#$s&E}3!3L&NSR4HcO?%VvPpX^Lm<`iqVm zjWUoE-KlwnM2U$~!(pAUaCxe)czMg+ICr(i1}T>(i5mnQXq_Nuz?s3JGyCs-IV!)_bg+dFSe&s=Vm1w&aqt0sOP-z-=q8B<2N|{1 z)z)9t_53`7z}qU+sRq$obQkJ{z68IhU$4DL`?daTW@BIn;3L#hpwB+~w23^zijJsz z*-(TxQnGl9_u$p!n?l3Mf>B}|G6xxkO7{|QqR_txg8IhH|Jw~o%KxjTNN)$@Y3z%jA};A8w|GQ7<(Eo_N3@(aNFJkb^Y z0x8=;br(X4VX(8yck$NF`@pq^wZ*^7b~J;{zd84rFU zOOg34sSidqt*580k85w^@(y!@Hguc%RUVFL{+hn~CV0OU0CH%=BmD#Z!ANPAv!=7k zsQOAu6jCCSC40&?n|t#oDk7Y0bj=1h8@Cpha%pn)3~fOD0Wk3(RW6A1(sr;e(>AGH zkDywAJ=nFOOqsTdiEULv1+ZsCB5sdlEV;MPuFJ`1)bDZ6sc%8Q8|vvgmXIHx_xyia z2D7--WAb*8_L(}cVq~=!s{prsq^m2x1(Wv~wEhXqjBm48Gpq2l+)osYP92{DW3BXYZSi^u|8NIdP$=C1NI0c|M!3y` zseqV}dCpT4DwNGTe3CZQvLnb^rh44(xC^zDf<7H#>(utwvDW@`-=XS>>@ycsX}rX; znVC6E>Wa&**G|MN15K)oApDb?0(iFYrPmUS-k4PMG*L^Rv(%!$t{;ZPpy?cpAz;Y)@=rU#xXEMBh6ks9ot^*{FU~>v$}pV=2lKe26$NIVI`2_Tlse? z(IgLRQiNLeP(L5fZRGt}i+tQZO++<^g~iam&-1)(7JPNr^2^4!UEGmn(^&-VNAVie ze)Usz(CSO8nl+Q;pcRAb`?~!S%g?l#0p4qEmf-r!2HN{>5b@duf_YM{=69HSh<@;J zuxK)I;>n`?MIurtL?Od8_$2*CU_RwyOU9h$8>jU)ZiIh8vwy^(cTDdKEkaSAV5%w* znNl$tbln_gE5^SdL7-($YEJV=p?TTRYazd?I}f)G!By_Q8ECLSaVw(ZN*+_Sb>T$I zB<5_SqW5~}j}v;QTj*+FSddR%q_6$CZ>NO27ce8o1t)3Ki20~pVGY90@(7NMWwv1M zS}<=KEVS~_A1;>eo65-8w}P8-`P} z0x@daSFui9_f~0gS}&5Ja=&nrH}Z_)zI$TUGi^b(|IC-@92)lX3(*X+fodfinAqqt zZ(V~H%-;AsqaIyUmhFk0(6OuQr+=sXSpD2S%?>%Up^{7ux;1}_xnA03MtkZJ;kO#H zzaH9m>ucxh+=7P$x0}D=6Mwt-_#9NJ%pJZbmQ!my2z=s#(|F7YF~k3o2F_5RqXVa$ zwO!}u3k8!P*EX$(<=$@}+#!DV8I3Ml|KCJ=Jw%U%R!?o~7*zt}x3lM7>vT9_KB^x}p7nyco&%Gyox^hAj|54?jyMYD)#8%tGUB~|a2Z$k0c zoX73ufrm!>1Vi__Ty52qp|Qa5q;KZQF+C|whbWAgGSQ$2C*FD?#z_CF9OvzBL>r{d zmJ*p{TO;e}u3-F_!@Og(gkEc#qA+SX=LOFDLeoQkLQE+L#mj24LO$Ew4~CicADs26Oyja!QhVmliF~+W7VbGXpkL(9fBMhsohAuqB=zR&id~AknHwyUSpk&kkb4Y%_jbxf zA%vmG>%%4$XB>7idh2D)FTXw-FZ97q5y$TWC00g%J0H~IY{{-e`9oKt^ZybF`Z}0U zsyrN4;l+J^T{C}{xl^n?TFQJEZ{Ay~i(l?lZqDI5%yQ_RY=NDDy;Vzlz?}{(RM0%i=sXbsKn> zTJ*DGNntO+>Z6~jKI^yxG{*UE{|l=q^8Ia-wT{QYQT^M$yZ#z|d12~Xg#GT|b29~) zzb3ri*@3R>Ho-|&7#;A`-0ulVt`Q7Xaj~7^&A{69 zj3)WdfG|%P4`;Daqs(816Nhe%-p|0OYCH-UEkPVfwAhpG-DLId{|04tBwL?TrkU(E5ql9#~ZuIW5+6N3#%MKb# zBHIq0u-a>=c^J`f$>VKPz@Rr>{psIQuD5aw8mFAtl;EkMb%Xw&4-uqP2)-n zYt0WLExhZ`+|4rh_KUxbD(Zb9^<7x zW0XJE&nDKO&dEvFcBqq_g-PG1zzo)VNu=VRq(UhkJu9=BT~3F7U+?%hCG_CnELiXQ zt6xT#)N;q0{crayD!q5v2FJbky*oI44V7}6Hy~B&^y7q`!d<=Z%_DF3fA@8SJ6Aqb z3^P1ZrY=T+z-Q;ru;tcG*231lH-u*#Hzp2o#^vzWkh3`kDw5WFS6(5h-XP!+iPf~w zp08_H4!Zc*Yg~R4hd+NLA?Wj$F+^Rr!!gi|!;4lGSNr1Y>}2V;Ep84TSLWoWxjBDv zjG&<3($4P=I=@}%HzrL9U02hIc(|2Zd;XJLj!zC=_K)8gpXzw`RO8T|lS((d+lpEz zJ&tOO#lPy^|5vtU)Zl)l_FB-;-=MLs!@5T~3eHT5#OJB3pLq^WZ56xPhD&Al7A9W8 zq~*Fg&RkZrFp>+cN&Tt0GjaY$-iL*ynA6_JvB*hFqOey+-})d9^%j5z^G=wqJt%nO zDZ2h@*^iq(kNGNf{IqguGa4#&Q+8&@t@o#02)J@bHuqig$m!#(8>RT9Tg`6kWu3d7 z=kSimD=H#iQ9C7SRG_zij>C$lMoOtv?1Mx)$!aq?zogG?OW*v+Ut*_64d@n+%l7S1 z+Clnyz|a;Fr|@>NXlb#c{Uu(Y%}2Nf_0)8ZA=VT{G_%^!T~_Q-^r$C99q2 z2(Y41jmj<_^_cnzi}Q+Z&hgydH_N2o7@-sR@yuhx0rvT?`m8Q~7^MaL8ak~V_UqnR z$|78~K{y;QXTF-fX2zY0kOf^Pk-Ui6`nhrjWWyOfC}~$GWU$>{xjR53)ZojnjsTS` z1NDt+SkKD`SxAd_G8X!Y7qOJ=s!VZ-u&*IDhQG}NP8V;7_GMX$s7F}DOU0jUP2Dua3xYH_W~h zl=8h2S6Na|_OkOkq#vl?I#jtU*r;V{^~L_$C!+q=$NZFI4w|>pHH3?5ixBptI zKLf5IIhq{)Dt5^t?Q=r$#v)R4 zptSM+#q(BnLpP7uIgQsJPhNcG7JP#3%Q{>*F!ZC*H>oEh?q#eZ=BUjmkZkD{QE?eT zmZiXBLXoFbMow!si7-b>!rL!A9e9@WunR9LK*u@LEWl=Tr2;SQ6}jhblc`bJLwMLKD`)&MpD+iBZ z%8+TQErA`vB)_Jc`|lq%zaDX7_`1O;hzK4sj05z(G<@`J0%oUcCkY;)HfLzb80MK_ z>!~LXAhhI0d{SFql}UtL9=9R9(O{@vMX!IpXduf*PdE2)4t_`xO1seMa(8)^ZAU>Orq2yXY&Y8hG)TYw@@# z;o=7&N^K2(<>t2v$-YZmO~-kWON>JG^+Q8`*y*o#5>IybqMWSf^*suow+64wPd?XW z-iW_@xta6!Sjp+>y35baR025_ErJCL?Hrql+SMtYX0MSdefMbSQPRzwK+^yY zyR>2QS|Uq+p=ifm{LS{~n_z?8_8&yW?%4}3R7?L^A$FznSby7;N5qLXHget3DMBIm z#AmqjoX$RMN!-KIV`4A|+!?$0ix8aZBG0w)@?3`7NArLoDg}|Wgd8|R^2_zQ+5WpH z^q}#QWl)Nt#9plBZ)M-cOq(L9l9t{q{^Zp9!-GJvF5l;K$<1CMbt13PB;}$1ZtD13 zgBvC}G8F?Is<-fuP!db|#Fg!{`7YV>_L}i&wPhaZwsrO*^{+k@JD%0(>D!xJJ41DcmGc$MUMf+KXY5Z4cko3 zX2Gi7@rwTnIi9Gjc{a7u%HPa0$LISC=865^|5i#oZH85)z)TOL$r#gp+1 zEhG1Cmw5H57M1l7H019x=O)P?&haywTSRx)+JBAS$GN#Ua=-QMlKuQ;#siu?Ku2{jm(9SyW~i#&S?$iZHZoRuBGvhiTW6nmJJSJ{C<*T#pD zb;opzz~-qQ9vn9gSd1_V8Z5oT(tG7c{Rto<{~}4kgPU1V2p>l%oP!aTiR2)Xe1B^A zaQU?$s#Zzp4g;S)518(lg)j2`h<*gR#4-t#Qhjg8Cxy=rBBmbxrZEY2t9rtwH(w>V z-TD#q-Gx-c-oP{SMPmNBKzc$plee5VP1O3roa*i^b<*&-FTC7twHMt`hSxoJW!p%U zn!-d+Q4M&SULaxg9grWN#Oy3!gn~LlcvbEenQTzMJ*GG+oQ2?cZ0iSKerfvyUww3k zH{AtBD?%pY%G7-+nWj5faP8m|sICUcXj)lwxvn^){+7zor?EFIlVEw+!m_A-_N0Zb0x<*kqt{10>N! z^DXv9oO^3+;5Z%zItV}V)9U!4LXq3S=6>I-x+H&%A$8Ph-~H+r4#NcPc7p6ln`(qg z)1`FP;dc2Dx}&R-+%CzUA$nrSs&ve1o9hMw766jkJ6L>C7B58({|z_p>3RR5>rwXP z&EVx#+g-P+Ltim3U*M-kgMb|a#_`7<+lF?4%-&BI0+K^PK{Y!EMZ1s*Jof?NK1}$VFjAI9iQ<_)c!jD1pduq#Gp7U_MR!VwMHuI6G+l)kpk{_A`5^sc1X zY&N?KYSU>k@Gz%JngP2DbF29iwF>_Un1RGWwHK2;jPl;Se#+HdkWEWm%y>=)y&xGk zqJZ2=kWOXSN1IU{IL)IFHn0wT9KnUqSspOHmy-I9GH`1BqC#<{tAJ0KzDFv{;OqX# zBjIx%)_6KCh6&0ieb;-SXyF_7TL1u z72wV@QWX+_GX$*W+0R4Nuq+sG0m)j-@2jmJ*uFr@t)!O3rM0K`oLNPEv-a%Q@9w91 zjlzB@B9E)%C?)gVz{mNSA(N{Vm}6|eHeL|jRpk*GvSW-K+dkKn=bu%ubkrDfbp;$q z+`jOmKd34o>RA7=k6ixF?0U5ffAa@wdj2NfXKx0bPZB(M1qRM_+}ySfLu~OHiaM9s zUTi7GhP^D);d*+zsDKe@A8_Gky1=Bu3$nm%9Y^phbc^(pS?-@$j)oB33A-h;fpOvn zmjpQ7>9_UmvJ<8sa0>Xqt!%-r==(-^%gejy_$=MS-YGhV+U#QXzE=PS(Uxi8avl!f zLLN1S0LABqtU@vdV!xEJYD?dNg3_#CfBOb`iosqndigeUp*-j+%T%&{pL_QH->|nr z5dWCn{rN^*zsrTR*C__MdNqDOKoXy`hgcr0?y#dpBcKJ=SV2vRsi_Ow+#ME-w~XLF%Bj;lf`{@ zwZXwA)$Q-8UIl{sZd7QBSnspE>L6mPmClF>XNzj!5wJLklSS-9RvGg-HL@@eBG3Ps!2RI+WNH)=#W|3FK5(n(+BH-yc4>4uI zqI|F`M7CouR2IgXBjA70zFB>mb;9yT2WiVHh}gu^+KgKjMiVpL8M%9#uFTCTX<6>Y-AE~Z(q;ocWQl2TWz;Gu zKda9JdT$(jKMl1AeeRh4nMwLb)~(MN<* z4Ll5%B|5z<0p@=CI>$a5&>r_$o4--90{=SM&yI)Nn zO=?RdZMy{$Vxwv^V7i=DxxJzKOZ_$`^V7gCl2MB{8@TXYnPHw(5L>;)E$OoL^vWd_2;V8H#}|)g(a7-h1=ZqZ6j^4g02|cd4dP{`Q_sPPcLFP z<1+X$o~I&J*j-GJd4Hg|qH=7rzProHlh1ShE;1qLH7$(u1A};Br}=y7BWEqi!X5?n zY5sth>yJIIp8jJ2ocr@Mq&T{=|o6*M{i|CTJt-~VT*AjnBQ!nywrI5;+9PTB`qsvBxfQV7u%M$G_zuFe&+TFj$P{O^o7qfD zZXx&PeV%Yq8bHYDH_ejNllPHvrngm}BjF{TFqToW_u<0|aaQ9!TauF_$h(#s@2^xS zGBL}mvrVl};@Vn6)+_pt!>K3bIkG|}&px>>Mui1teR*K{N0+8v|IC$H@d??X5tK-R z5q5pO@el5F9g!P@Zyox~ZW5hGr8>i8Q*c5mNq;%LN;R7{Ia}nVYSShWhVaRAX>Ed2 zP)?Oj^wg+3csL91kKR|9X-EJHhsqc}a zs(QYM#f!fy{)Sa)tk$_8tanbC6Fzv;@s6L&!C8{T<>ZX5e{Pk?He>D?f>Q5SOT1+$ z3(>g_`9$jbw}KLk?+2oMThR=An3}Wg@@@pyn2>1MA#1sGVy!K3ufcDSXxvU$%YDa% zmPVID@1^QwHIW|J9&W+PTk9+G1K>>Kt#^%2iWmdpW!_9_Lh6Fxc|!TTZM#6h2H zFRN^U%d<{w^52v;l?nNiB!!=9aVu?!w6zOUqYb|%?P z>|g&j@#3|_u(hTR1`EB&d;p+7G90+~M}^{{ME^BTI--%Pf)S%^GCx*(SBpyr!qNx$ zc5|n%V4Psunlfe{uV+H>i_sdsZNg-sGzbpj!Winu{M}!*i z0l#ZXV!sYlEs&tR?my_k3`jfTEi5?l|M0y^{J(tf7hXZhCk+4IGyNq5Y=iOq6S?ll z)f|t6TJKu*Jpfc-^-SdJiBj>+V-J3PN^#CJ>7i|yRo(jk3|;CtXCBQ#82aW zcRw~LBSeWR?YzJk4l>@LZ_{V2)L!~B+~wTzbx|8fd1_8|l+0pQ5}L~?NBc^HPs)$5 zu5aez?4XPxM2B=btwPnO4}L4D67avaW}^m&SmDl1Uw+im(4+evmfw*ljlQBy zz2&SxwfpU3KHS3BB?$p)Z2g{Q)O7;5_)4KU(mNX`?~o3h-5&JQ zHZMr}*Msx|DVY~220q4Ol$gBaReydmnDvIZs$Z8&wkLlE63DE1Jzjy?EN#qYf+UVa z6HWwZ4xYS~zSv*A`{b?3?+SNcStibJvPj}i`S*I@#0A<>Ug)J-FFzDtw~A&$CRu@9 z>oGqt?OCYV@f|@t47LL%12X#o+=MEeHfv{%>zm~>Q^pGv0SPAP&gRp!cVw;%(M7du z1F(tGA$E3Whqm=Q_gpLqQ%x$A2nr41(lKBJlkYU^Y;rjD@xgJuh7& zQ=k#*#3A=N_ifoL8j#?@%CQ90ua$an_zxNV z-~voC9rvo58AB?hFAy)FvPU(+7Ip0YR#D}@6-Usd^^Z#4Q~W?Wi@whf+JyM%tp2L& zAM1BKtYZN~hbbq2+`)J5t@YaQfKfTa`bgR!3;=*;uQbF5f2dY7vpa0~&aPBjF^2^k zD3N#E-hNr6g>$Tl%Wq2n2Jer#!Ju9j(Yz-6kjbpSq}99X$oHBz7@;7xl;>o{`JTIq z^o*v%DBlzigACqvS$I-Iw30LXsZm7eY#C7qpKl`V&w)eW9-OL#KjX~bu5Y4x-j9TtRA3k+E=qit099B1dqcn{E zWUyo;k`)PV(hIA$pK>?9-dwomYSsBd5cie|$W?)HMDE-xScW2#UDtm@Nm20areAQC zbd^C9zl{jbzF-F~!XR7Oh2G+NJIZfVCwcXki*T}3Dg*kxc_S~2x+_%U+7_(L{igj| z?r0OnN8>kdvl1;nHGQkjEyD3yulZRM!q(9*XGSt6oJra_j-L7%=#CbF3C-MRu@j#% z>O7;x=lJXMLWbzb=a=7$D)u|bZzO55tj+Lj$}jc66K+;iTIq&=y#xvDi!+|sB$Pnu<15ZTA4@V3cxp=@`jFZndBgj;(w z>{LvLJl<%$9aM}qg5luXYj+J(T~mL|XNZjs_ZBrk&J>}}k$%)JlFk-!t3gNR4f3Vv zj_X&v)KAOzg%qcHUuXb+Ysu8-AFaB{;OF`6sN5@ z%#S;@nnX7gFkX2eSG{<(hDMmBhcNG`0Yd{6d0Ot}KCQa5CC!htW8v&XlBJnVDuDU^ z$8lf^=AZ9#%)?v!+6B(f9!O#jIcFR$LKPVet<)zajWQ}OmXh$!y?DgGYFsz!9J^#H z`VMzb-zJc>u9tA6W(eyv(Y8OANz2tWk7n6Y+w&mBRO{kn%hc$5@OE*n>^wF1f7Wo7 zOd&CmO-u0e>jLn840>K|#&gdaocxRQ6TypbX8o}cL|?if=4HVbigd&HfzNu2pk;Qg zg8QnRN&Oca5U$?IFWFby{lSjIj)Fa>oWFhXEaji7AIG$iHtL#OV0u?O9KRaSL0H#9 zo_Rg3ahRv3mx6MRFm^E1pN8xkU$oncW4*|o1aF!5Nk_tM#edaIeeLk(^yP{m=lpc{ zwH6ERYjRStt>-R<>zoF{f>YH=H=z(WccR1FEOibgkCt7Ie)!qA6}YF_GfNaGttf`q zD-a!XNmJp;nJhj~biD-hAKW&pw30(U0GZI1RNdH;O94|#ObXD>qK;1X?)h&YUAcQp|ls0Q8T1efQT4sS4(%(-pb;Ci6tE(C;lI~Xr`e+M%zZK(t$E3n9 zvme}c6mLZKyQLW_LWG4!niEUO(%EX*+e|rLQ2H&(!K?3uWuCo8v``iaj(q)3KK=ib z&$0KEC6pF$iPfpd=92>KnTxK2z@9AT ze(?D2-uusUujhQWz!Z6gYiq-D(As2R_=R6KfeWQs%x1yJc1=`|@uSM93GLQ=h2GG$ zuj4!g``@(hb~udhlYFl!dp9x;ftR zwdQhl>+{>1M`^9hTERosh)e&Fz3M4nv4rFo>g1yqsJkno|Dq^)u`4w&}RL$>xm$OzX$#+!A@@!s@=H8h#Mk+-7Nes`78tV6zw zF)HlFR@Ks8=UXmch`eH|nM<~H*)0q_y#N*2^W;8csrHZcl^PQ=WXK)pE)e+x-}_(I zR}w%;;~u!zkDNnmr!!dSGQIlW%x78ibRQYwR)WMYvPbV6(x8Q{cgfse53P4~mfMkw z{ZPWf)v*H1#G={M=^Nk{f;$7n^b=N->d~-x>U0^+2pKY18*-!RNq}SI^4UCRNs=LT z!D|mHNfb5>s`VR{<;VZ!h$;^v1{519iVv1lfWoZUx8DG}{h_N?3XIRM3W7;Z@BKhb#lLW>Hw*hf~HuzZOzq zf%nJH7S>ECw2j<*?6hugn%54o8(db)a&w&LJt!fk31my;u2r7(aSZDp>W!SLX{uSY zKpKpm&T=FK5>yDh#%=}*NNw`5J^p>eBjJD6dBeqxNL{Wja*Ecch)9xy$ZK5;VK{9F zC`u7Vnb94%r)M_8TXLm_R!nk9SA7PIFLYEcOw}P0&;VWNA{j&hgRm_a^epVmU^q(E zeH5!IZk{O{K&uF(h{k$5D*FK)KFL$$>&{Tw1MAS32_I%X8V|U!PUsROcl2e%fj@*?r%^CRm1?DkD9Como*b^Wgq!D#&?-B)M z{L@2OD@rVF|iy)Yz^dd#D^Hj zLc+zUDktA(WeY|oIG^BfvPr4|aE}t;3OCbl2!=k&k`gL&NyEVT9Q)`bg$g%~X?L z_goiC_I8!v(}$%>x15K}Q}~>!P|tNXv5P@+|OSD9^nGJK9d-A~3VpS4mfz0w^a9ym`>?~bl=-J#shPt^Cww6W|hJh+;dA>OEu=O={k z;dMS3k{frht$%rS#k8<+;%%F?p4)rda}L~qlkjofk8JJ1w_x|o2Lu33k~p1gFp$b? z`Q_+^7hyDXo)B-ycqk}kGj8ayCBy|rU-T)th4kl9s=|7w*Q;Ss6n5rJr2PDXoX1Df zjeVbBGrvm&mY7a#DEvkN3#U-hCRft_Mb7hxHzuDeCO;5In%h;3@`Qt8Pkb~~YtDg% zwi&Lp!85*!ZasLBeBl4>x|ta`8YlndgcMFAS8XDNWRe0=*UWt-c+xM<@hKU>W|=v5 zS?lR(41li)keQD@%n>vOe1_>Wnps#^G^#*>cA96m668e-9=_CNq^tB%zB{lqcpfZN ze;TcQS0LZJ@WTtWpmxuFMT$5fOEmD4t=Y^|AqCIw6f%FAdWEKGCj=e2f(R$ClTm7F zS?hH5;PYRfeXwaQ@d$p4;=r7F5K$&bfEzT+0)`z)OP5qci@eZbryQxP9vXg+mnh~h z3ZC)C?4G7zf7+>uJs#X&dSU1`Te+DeA=3a||E5<$jDUR`P*^sZ(({$6z<+REd9JyfKdF5u$P z0GpK>7r3PrH+!PNu~~t8E@0a9$>c;*5Og`qA4j@M-9)NYDReI)KzCZsWSBmN#3hpD zjc_(MPq8UjF>pD?aP`DlGks2#3qk|Xr~jcFgE$L!bab&59>V-s9$ejfpYl2^F_1;a zSHe@)<8v55$gQsl0T2Jhw}n{yM0bVtD9-Xy{n?Lw>JC5mrCt8wmN9@!7$IyZ z87uI&Jg&`!^`E(9-HJeF53i1wbcX?O&At}h>Q5R>kP`ziV4t^y`;3G(KtpGtL@H-Z z*0Le!Uphc5HarhECLt=Hodau~^#PufB^1XJg1aK3L+RK4oPtOh93gYD?HNIZ)d$}y zPzV$(ciuWrE=)*^pMWsWnTy2=wMX^Du0Ge=>-EyvnUK1rEBYamQtEna_lJskz7!Bg zYzTAgsR)pU8&G7QBz-7|LTE@-r2+VLsXFH`4tKMivSlzY2W@_`Z(w7|#ChL(S>!vs zHHJyyZU%$6|9A~oNbKE-|9-(Atva&M)av&x%CK^d$oMh1?lPG+_g$Kbz=>1L^LcHV z13eC#fbdss3#)r2-Ba1L9U6|H!I6_A!qIBRlQW7g+S3af>XyTHO&0K#gkxcly}I{z zzd+g+dfh5yVXcYwT9L?Au+4#Y`gKbG85xo+^g-gK1vii3TWhuJ9GeQK`SBz&vX}E| zpe?qY`r%MhmkqicniHmW~-G-JNhQ8H}Oc=(~Ib{HxTb{`a zXV>Rxp<0(*=K1!4=fYP^Hr|z&Rk+ExCG5rR$npq7>zfQqBRo5$(V)&)DhqaG5K4{;OH&i^)L=JA-RAlwJj8}e zSpcQRAfzgcAw}5p7tDjhI^p$piuUX7!choE9OE4F$QBPGD{g^Jp)rgP-K`HGN=RdS=^4~l%m?L!JLA!0wKi8YFrx)r>L7u7|!3CG-M8ytx&3-=+sX3z|uaLg{e zBk-ZyiNef5JJ&%F4T-ap;gdE*OJF~E_-rFB68Qp`y=|PBm`M&~2#Lm}TTN3&G0>R% zd3+cw1o(}`yfSdPxGVn2Tp6!M8A^jeB%6CryXvHdZ@}D>D4wR3{Y}sND4q@pVLk!} zH=niVSRdhfqW=C*?;m%?%h$R4QHz;6j`s^!DTtm1aXc25&+Kr0JJzq~_bD06TE2Ut zA8xluh^T)?%tvGo{t+)&+F+83MU3rvo~)SC_W>Gu0>4wy z(RH6>M7F|{yZAg=-1dQys_Qd1#Tdp%Gg4Z=fjt&ZP#&95ay2|R^R(j#ihUKW+lD(j zn?6ch_s)u=V)t&!zB=L;wjC(}5%jQtU5}*Hkav|fmxUS5g^hw8v57wws>(yHb?LWv!zK+PdS@%1Ta;Xt3aW{MJ!)V&H(fxxj zoD$1nZBHqVuts!;!88Xh@dqy`gt4BoAwm11UQMV8JQq=S)&>=_RFjARvY1JLWZAoO zr(QtD6)#QwGI~%2RD9Zc>?^*1;6Ay^04)t-m*ng_RU$ZA_E5G@dw^<}gXd+dt;oYq zviv1Iw>%1)C>WN>=WmI=H{&M2Z??$hO`j|x#!j5ZsSkNebs{>to}h()e!8;_!i=fg z?q*1Qi%o8pO%1I`NWOG50WkEG56%R$31%mfJD007PAMAMYiFgrWtiNZNw@ozP|7X;l82kM0C0cR z+`i5mzlN)g+Lm=b_?flIrgR@YW8FuB6=_ZU#x&Ba4B2S#3#{J!`l8`_vISN9M{mOx z3b^+FDf5xbE|USJWaizIfn;(fq$548K@uM&Xxs3)pfdfZJNUfy3B@}dUAw0{{aSi= z?}MHAg6C^a9W32t8C<4Honr|$M>RHJ2-(`_kgfY*zH2hX`U~Tke7;lY#u8DdcOg;3 z?3i~ZxCfPole3I=Y?jMqFAhopP?G!QruyUAB6Ar&-CUcOc5-Z|l8vcPyUXI$mFm z?Z5bTB2m&i=bO+FG>&PTP0evGhGhAb{c0Kn=d}|aaWPd34 zN8m{vVSmG@X+WB$hR@+80D3Bp3T>Y>6iX=7U>=E~_R3mZwCUc~>y=Y~v9&G3!p*mm zD+I1Q^wmKRX~kK1^MdGUkfm|G&cJW-qnEKdS+MvAj$N=+)UrDIh~^ z;{}pq~Mu{FDACB89yI#Kp;!Lp&w@uvb zx*0w~;`SLg&?yoXM%$71AG-PcrHM(7V^4h#ew6gOJl$;5%u9@?3|f^_b{%c&8jx81 zF7kDk1*NcE^Ha^zWvIZmBdhV_K9tKG-Sxiz;ZQ)my&{d^P2=jqcNTk$w%L7|dY#)! z-Bra5IS8wvfW7WQPuH2V+Boh<7<4CEIG=Y(`MOASX$UBZJ1g(aI_eQ6&%Cg%nE%1- znzV*E$~|v54YcX-4>-GMQy;H=ADziI(gQYplB8hs?N#D9l;9z;HtP8wH`Y$-c>7P{ zCS2gD%fJHnIaeMe!|?o*IQ2UJ_G4aZAk!<|_`YSFYz-b7$LWdklU7Dpmdsb7t31agqyrgLPs zv~KvAw$@?F-8zLcHiRSHQBjl2ypT0?Uq9GM0{5En92gz<|J17$mLpCdE44W6qjzxX zb*jDGFbRnLDB;}pF}_gBNR(I(B?%0EfBJQuPX0gcA$$8TDRp-)WjC2$)z@A9QPMxA z&5kJB{OSZqGYWKD#tSsXZ7n$W`v&<;DY-T~Q9ylOlX`v~5!tS{+CFTC)9t_K$1x&OH#8ifOJM)7d=Te79_s0{ zD;}dcXT~E>Ls*P!RXq$-hr2CY4|3k9q6Bmxt`joi z>n!Yj)GrF@pZ9ZnWSHAuEeYgdItjrXTLR%%tzOWyWQUh0u$FpU*30#hgp!63Vf-2z-00^B)D; z`x_vJKZVItE+KS~Pd>sOA#zW6C>b<_@_ghs*86zA8X^%4U_L18k)yS&C^ntQLirUa z2Y7KkPb(tsD<+a=425{Ig!Ul?;pbWg8!VDPws-S;T#I>IP3wGXoeF`dE#Bz0mAj6l zv{u3|e$`sBMfY$q;Wu}bt*QMG4M|9O&^ld?yB3$<$`2;S95B)3AOc37tUDX6*cEZM zf1?p^aT<-z-h8+K>Zclc-~%2#KV*Cs^anka&KCdQ1%!!WJsb55bda!lL<21+O%Da` z@v)#hqAu@YFB%F|{pd?~fjXbJ{6#|w4()^ydIl|an_K?F-ze}u zOInzWI&bQ3gG8uI;hhvyxQJ7Jx>H@#!=qeI>PCHUxt_tiO5TM$H%!sk^gW{ze>p@s zYwih6Q;i9_IJzsbrc2Y{Mb?Mq=6Th5v6vARM&G7;zU>F6C*Mdr5GL0z6}Wak*xP&( zCRK4yB*RVaGS`gs1)!bbpC0U8e;(x-(=mHrmf2>|uATX^H|T19-#0);*M;E`<8t9U z=Ex+?1o*fxg%0B^y-Cv;7LVzO&{g_t8w@yJ(GpIx_1CRQ|G9NV?$;JwDG>dvFVOkG zSGs$txw}%lda_dmMy5!A79OV8xepCBfL_0S?Cx9d)FH4MKde|-?JDU`M8Y^_nqeH-2a_gV zTuy^H-WYW?&FdtM|G?dO7TV5t{PE-b}5Ol>DMv4xYEq&XP|G{h^scyE~^;C6o+i_L57eTw`=0N z1eHkkl$xFwdp+B@2O%C`L+k(@g3#?VmhYq zR^;4|Oaf8YA0Wit2$aQIcz?|FpgPAWcy()9jn~!&S*!D)+zIcF5fyi>Dnx>QJT&)~ z+Y>Xybt$k*{f{ci%KfEEmAK>*#mRlYN+=KgLY}>7kSHljvQT%2gF}qrZlt8(>VvPt zXe&A)tS7TY)}To`s=FOA7x#?-=A+UmS}DxXgk-v9#mXWI{}xOXJ9_{$6~SYRIY0aI z`D?Yh;i+%l*S+J1jF2O|BFk}TZ@B~RR8*2YV-gi>8*FDOSf&=14 ztj0Pq%J|2sjN5!DKOQoz)RuR}|D6~1`d_poyl(gxK;l%$C>cGKLhJ7o%`x}gZ_)s$ zl!c#^aos$wQFQGk7F~b%i0l=^`EWo+O_SnW=I(hwhx4Wggf9 z4&BoaUgFZPVaSIn7=ia6=k>wWF^FL%p}7wMfQ%ac zJXcT2$Y;@WAcWO!BY%X7ox#rd&Hq@?e)PXn`jtG~eMae%{;5@Ab#`^R*Aj6E%X1G4 zdh}Y75xWVg-g2wnIS5`4NImR34(sMAVCM>!P1iql7*+`jU=8EB($g2s)sM-;0n=vr ze+_axc!|?$PTLANltL+FR!133We(Ys4iFICoj41P-MXviGLuo!x)Mi{{VY)b*S$6Z ze(i~RpGO!yW~p#cQVR3)@wvEh^qlAdhgnk#;eQ08o$8-^7Uq4csmJr7jZ`6vw436Q zHAcFG#%r=XihQ=fhZnfnO3w8D{H%n~(CiUJR@h?W>c@xHl?9a1^3@YvDBOpBFOJ_u znz!Z#d2itIBF|d8CtyDXfOx`cK7LI-$cTcH+IRq_;m z`#gW-ejH;lR*-8d7UpQ4q7)?|;@9PnCGdiw12Tt~wEP{AZ(MG@Lf&&WNylA=g@mThD7{? zDiKHhuxaROSCaCHyKFG+A~N=PUD-w$k4-DA3Biz!FzY?H=^QcY?Rb)QPVWu}1!^2D zsx45w7pZTA^G2$og&0M0OUH?MjF|em9=~NNx?KP4HSA?AG)X+{7`zsD`xP3VC}Tzf z$k3+$6%&KVdRJT2i@b-9Ov;G0A&uoZe%he@UsaOjAMxZR>`Tdv>kETK*d^X29-x#w zvXIr4hFg(vS_|Qoy>px9XwATHHM?;=r*9+HoL3ErW0xux#AJfZr>NZ^u}{NI~t@oN>b!#s`xfr9lGh< z-o(R^xH)P3zLlK;#-xu^wQ;@NjWIHIx$%Zq1Pcl7gS#J2R45o>3^|`89@fvf(sT6Z zk?Ki3m=Be}&8q9{VnLl4K`~8j#&s;mruY@br17yR4|ZIFZ{bC(8Kjpq=o5YK(4RTU zvSIVIkNVC`te-IztjS_4Z}l(p1vVz#tYcu*gaBKX*FnQpQL|l3!$XR5(}!W61pm2Vto0I}{k{{$Bv~ORmzPop3@xK0uKBqQC66$xKmKn_lsrkqZ5gt0eg}`yzfTC z_k%gSlUc%fUU7#Ea=!7~Dk9IIGV472(4)N#Nib1|d`}=};)Bq3_9oBKn!CP?t{y@U zrg$ZOAQ)E)l{gAas(OW#u*gs>e-kyqH)zjJoH;9NYl#SYCnHDMM$mR_jzk5vj}E*= zi9y8$XskXDc>l*mvLgS%8F$RPJ3IP#Cj;V)BL1umi*fvubfrj_amx@WH6#h%YKGft z>JP{xZsD>Vmfcn$#R%XsZGczocKYAhHRVHqF(cs;Ig#vmc{B781p#rWx(>PUBI0&k1Iu_Mldw@`~X!hm~ zU2(pb^OinGiw87(+4yCey5%m%JTfxM{=UAj>W`f+Qs0_fvP@ipHbtBZUFHiBIWs># zZ5+=>x>4RGX8RMS80WNFd5_n35yK(MNs9?D_~!dKR97cKqizcuhqIJ&$(0tBR{%m1 z{h%BVD`-!;yeQ{OpgE%$kx!Z09wRk`l(UNNi%n+#kqb%EVR!=mZkmj2_y_3es8X0B zr{}LAbDVEC_d7K<11pmF?4f?`=HuI;3a*fZszlCqYfQ-Kz@F8}PT=Eb_*PPt{^o6e z0&&Rwzjfj!5ix}|CG-Kdt}A3;yir!9QLf>+;IogL4_s+vcglfrA(_Ii^XM^=uVU{* z_`qNAu1(C~))N)V4vl+^F#bIZcvt$aET5Ep&EVxGi5qEXm`%4UG|Ixm!o2Dx_~YhR z@#aD^B%-KMj2pR9vWetNyhF568ya_MeQ!3K8w7`GrgvQ z&LQg8$av;>2BB@x4x(Rs0qH>EEI5NXAvj}TVHiKVO!e!K#0qDqSRfJ32`$P%zY`a| z>q!rDL>f`FX!N&*UV{HD#pYiMsP40X5&)EjUFhi>bG|r5uI&S?~pc@un^4 zHET6wyI2`TujiBDui#EIkmI8&hQC7YUw~c{OnA!gOR?Uhan;^GLJvQ^5CLv(21=Yd z0!5WD~`EczcSV;KKFm}SA#HH5Ef$p(>)#-loVB`plv}O_`z2CF?rgZh_(||D{ zMuTZqyT8x&X7QDqEtaqFg_nHOY%VarY?;BV<_1@lNmj3w_d~+)j8GzR%4O(WU;+%i zq}O|y(r5aRXz@XWDb1LiT!xRIX^N@yAIxkgN{ah|5@FwcodEh2%{(wI{;Ha)5IT-fSYd zjc{k4Zg=T|Y~j;%^YN%pB@&w^v)?+oF$rLRj3kl$|$nv|GCeH!eA$ z68l9Xiy|v$ZWISEXI5v^2RgJ`z+pdrk~1LRT-V&QWj-IBq`>le@tyiyotRR+w7bI* zD5<3F5xZ`WtJcS3L5Fh3m;~-b9r5h`dSILh_ag#6tp2D-3j7I*^_P8Mh9Dn&zG!+P z$^M>};eBno*uh5TLs331`)ar#$9WtX1{+rtd%yp4>`!1`3_6U=kqad*3k_5@`QWZ& zT{MUM?l<1L@$^Pf<1+4JoPHLyRD|I&>u@95dO1p98(FN~?yX;6cXU><1I-u177lpz zYTav0Kc9_DShGj8sIf>9r2wi@^*I*SLf05nV2)lsk$(&i_a9~*S9i`-^rO0ZS6A!0 zcjL*lhu+-K<$Ghu{&*}w$Cnz$yy%lUXj&u}nSAWlCTWE6px0~7 zte))$X}?Cd5vl-N%^{z_p zQBr8w==5(89r!rcDVU1pA0DKTIpCRzv4}J@Ax7R+Yp62XU1E%J*C^f9mBRO`WOhQ5 z&rKIml{wRLF|YQfDf;zX1Y*z`0D3+mwc@&6T({Ja(?HX8bXvnA1ZQd(vogjXf~UMS z?EwozB8WMnsDH6i`ak=fOssGJ<3*{oF+!tqZKCeianggg;RDQ1T{@Yy8J6A0qfGCG zLe(G}XyF4}P3JTCK# z^l4%mVPf|EAtOZKKH9QWT2B7J+UlO1)#gDRit-^MLORNo4q)806}aWbp|IMuJ3AhQ zK)yL7<^B=RubnkUCjHJxSPX6z7uIWv?Pah}6g*E&xpy-@ntGNmgCG_gpmC%ehZVUqa9NE& z+BFvW1pMY?!(K{%^L7D#B_ZL)haV1ni@U;>Xd5^@2{`~xG5qljODgoAViyT~!H$Ri ztB}ScDpYsDJF$xLsFjW#i6$mIpCUY6bWE7!Ngw8N>Q&Hae%MIpiU-piam@7|J97iB zLG3y^%ziZB7CDYjx`(5>tvCD8vi@feS5HQ@v@ELeJX6t3^o4DV&Iz*l6IpQc@G(+lPdEZ1QzIoQijtm-zCeoRWmjbhhAG%Q|5MZ1J%#yqp zbfSt5MhV`syg#R27ri~Cx8I}6l~nvfo*)4`+8)OvI9t!{QREnT3E(`vu7!&?CZ|dn z^$y9#d>OrXEd1T*)Khy_$d7*3>s@yg$4NTeB;k5X@8*vTt=8WmeAr9zpKuuzzIJPg zE4n^w`rQuC*8Cg{Zwd`FphB8KP}f`a+@Hu zayb1Q5a%b9w-CqFoJ)KB38mYBl?apZf2h)RdjIYudHDG~TXoLsk9+l#r(i!;#nd+T z8m6^B$m6awvu(sU-tn56gBE*7&A2It8_ddN@gpoCW~sr)s*koMfJN$_Dx@_FdPS{I z1gG7J!4weSk^g5E$MWXzWWl!^Q^@5F%)W69qQ>W8>Oh1bnT6RtijhSTl^%BVO@yua z@z1o7tM{_tg8H=?rb_y^1I!lKn=WzXNaya+En&_CQvb=;-ggIB2urk!3!~)nH#z)z zMWViGi^wXA<9EN&*Hq;nFVd;;{|IQYx+WWHMJYihiO6IMHGn#lb(1){2x_c85iZ+eLXbN-5mnb(%oGG(j^TdNOy-I zT@n%lLkvhsNtcp>)DY6m3=Pgm$DgC;Jn!%Qc7L4N_rBKNdtLipYYA5owWVwQ8`G;! z-21J^ub|-?gnbf(R$tLbWID%ircj%kyE4)PT6i8J)Gz$suQ4dRJ9gasb$+J5ab?=b zEsOsZZW>O8?|sidAjg$KRcXf#5A$GJiYB!3vfqq5A=5hPPEi8jF-b0U=Ko?=N5xtB z7Hp@9j^?TldQOA3wS8TY6Pm|}znBFNB>*q5EzqL~X_{ihL<{C`qFe9{XV(XFBPAR4 zJ{eg5(vQ_;uH5OYK?o5R;q_otULJ=f5Z{y9J$MIQ@a#-agfo->`VARwKKSMcE=89oX-~rGtg`;2zVz(EWm~*{Zk$<>YzrT1L zJG6zRQ%+iV^fF+B@e||?CRnCysip|(;N_E?$=JYGB zm^liGSJ#_SOhkp;n_0p=73K=@#*c*1g0EZ{k2DIm*{a=60(H*Pf~538{5)}9-mNnI zhrZ1~n4@GMw2Qluo}@5?y9fBr^&OlzYS=u}p<_I0fn5Yr$+vy$2}icj{nyu!qV47HH>)Bm#A-Y!lYji3Hwo3D=v?} z?cm$|d~Y1k`8EOY~Z!+fL9=t6<#IZyAv3KtWlFDzjVFrZ;&zMH2<9ibR8R_v| zQ<2Rd1aES+S2~gg8r5Qe;AYIp8!oEdcz^YItGt`%8YI0nt#x5QG!Gg2ZF`S_G@(Ju0Mr#J@WyA*@I{5xYhp4B zkColgCsfMaGpQr^9GI#if^X=nbf2c11J5KgJGid4?xb68Vvbz7qB7@0h~|F>G7TUy zIMftvET2$ZZS(~@D2Gz)oqz-ej+W(_I7QQZe+IVYMd8^!BD^F#aPUdpD^={Fb&YL!E29=s{8hhg$ayEhlqw#?V1G zsJ$)!A+j=0;{T-wZe@a?E4zb9-Z#jTE1JZaQQsCjZk7?tClA)g^d}vhqlU@Es=fgC zgO|l><4$&*HHVb53$6k}d9djEFj3Lp*#zsFN2D)jB2di*%Pwc-cAR@W8^(e`Vhl|Q z-mV|_cB8F~)EbmA?08gkEPf%oSyrP5HqpRZ>~(lIC}@5;_Bm3pB5BnLMRe!QB34)? zLqbED1)GL|b5UeiTNobFJ%>b68*5?i)6=|Q+OB@zwU?6Z zO}2j0Djz30NzxrL;AZnmwNC6CmKtj2-*h^LFKo6$8FlG15JGVA>Ch;4+UW=$oXA&M zXz1ykWTG(=;;q4hJBNOu#~>@^Qq*gJ*3EF9#>=spTgFSl9e#&zYQPzAQ9X$+b5OE) z%y``*d%axTA|TF9qp*?emj){Qbe?W3-5*cZQxT_3RpaC-z`mFlBuLfHF~PbW2^_k=+E(LExd$2+Ipynkit0 z$g@fHcsxVzFjL5#Nzsyz5=L$LQzT9M*HtWS6GH_h*;R@?h35#)#n1bD{&B#g?rwFg zM-5AOI_=V>EYXGqneM81A^h@IlP316sE72<@^-LxumZ0aYE8kydlireBR|Hltj2gh zD7OpG=lv4(E?ayQCqYRzEHZ+Z>DbfhJ5WSU0Mw&)eQTnJP)@dMSX7N@~oY|vL9Chzqplzux^8; z+}g75YV1Vpo@>L(?zzEdD#K(?cjP!dPwyFf4;dNr^G(^%Ic1K}*|2wJWaUb-pE?@j zyR9@~Lw6i2a!c#M$0X_z70Mp`c!*Cw5KEuHVFgVHyOoiqtG?xSkjJF;cc{OiZRK_V z>s80nBO2F?E8hwy4LY^Jr_Mh_z}_k`drQ-|Y-lWhYt>FnyY2?JSb!Xt>0j|-#>n1e zZohVx*C95KD#i&uYi^ym5RFe@+OhyyrxG7s(t)``!m|^9xgNuFHJSk{wTghg+{Amp z0DzT+nRA-dPKu0UXF_}=SR2_BsYr)_{OcXsViy-b^|0Ul&sEzuyhUQiH2^=qh`tX? zBb_|49!r)am}9>>uqGdV7T~BnUgyBHPAZ%+Mj}>Sm}HP)%o1i>S`NzH{|&jGIgL_K4#$^~^I=NH~-u$La>$b?%AH2+!$o1`30HT1$D zcmJs_vzsCa?aXmRf7lW$q^;EZ`L3)&bfdO4q=YnoqF`GZWxro1x+h%JU5<`n&6@}| z6j0QoCAFfo+lW6?M4O|0Li1Z1a*(qp*0N#r{vHMkSi%mzr@0K7MZLuN+%f^ZcF>=a zrXS^yx#&*cOv8(z@j`mvy)Bzjh>bKU_ST{x3q9mYa22~vb|Jl9vvz&q%%d^%47R&s zKM$&|ptlHsM zPw0b5)FpSe#Ks~!=^OBPbn!O%RBB~F84jHHE;4RK;eR%n8TqtMRG2pg3L*7#_0W=Pbop_$oGd|L{bJEsVTGQddaNc0Iq<1 z!ho~WCSpun_g`X^mEi(G%X9SQLU$pSQ!?a*$J&xB=O6XCYhB#TMzzF>HB&ki@w3zJ zeWs^)N0T4LQCpvAnK2sq0aNyHrIRnpgJ}gxf4E4WNn?hitC0+=*iMPWOq7sFLpNnY zT1fKuh%fqA-~W zJ(^}MBdxF|NStyU4^`U@b`FzhJ<Mve*!QL_K|UUjy}tI~FE(o=>LMhllM|FXtE(vD zXtfMaZnvDJ<(l+-AxMg^V+;Ra z@~*MLYQ)6#qPH3=nUfya13wtyKjr!XNWOd?X!XH#~SU83#5ybV7h^lZft#MMA@ z76rdTTT5`?_C2A*6h{eajCA(6er&h;TRRioZfyw%< z$=w(#zGo14_`D6ZH5_UF=#+xb0#g3C8GX(ZS0&+5!u-Hvz7#%3!MBv{dg@mdUuYCz zDLVFaZ%?SDQOnfsjA^44Nxsf@`}Z>sEo^;qv!EwDXA#fBp+y4>cdbjl5_$i`*xTM7 zu=p49jdTr)hI|y=G+nN(`HN3>aaRgv(~0Amy!AJIp5LP>Ve9YYa9p#m2Sy9>efN>) zBH=lBd85d7o7)SWmE~QMD^Cs6?vv}a*R<-9<^Tj5s!jEo={FIdnxHU(RCZlJkbIa@ z9&917i0#0VCfXf2RGYf?V{cBXlmur$M^GmqXG3&86cLi_Htkv_2lNw`btGKbWfqXJ zqH9YpVr+TA^QIyEaS=Lo2>_cy<5h-Aif^uzSF9edqe@4~`Kcyr2Z2Od>DzQ!VTp)4cHVG&>;B6zj5+%L4&SQ zzpe!bR&1qoHWP6p6b}3L^g#GiA)fohud}L#L3h<28s70z?Q|EdreqcmCJNL*{Ai>a1lQzQ> z2cE=L?u96Z3Y3puWTt<83M>&N*jm5zvdbdkzACW|y)UJOO*Mc;Rv6Hlq+`&M#6CHl z9I0u^jB#Fj=t2r&z#(o<7D4athud1Y1MapMrxJWhhrm)&7Cy*8BfZ{(1iJ5>j5tqU zra#n(O%8|FvVK=ANZs;$$NjOk^cT9MzDa)gWX(-L5H8DN#FQ1t9*+ZXth2iWi1CQUGe#I90gWaz5v z<3RdF^bPG(gwYvgs!rwadSq&tAIM&LfU;T^JbO9=b*Rfyi(5;Z{Ws&Syg8=BtBw@y0$p4PK3{woNDJr)6_Hk4B4Ltss@g%?!VomI%EAdI8 zd_AKmHIumJ#Uwt!mIBsvv`3QC$v`b+k82%%(3ViE`5QglH+>_X_47t5}KD;nl6 zaXI$0n_ki9x8#JlFXJQL-5?`PX5T)qT=pe<;(&Vy_Y6la^hq6xYEQoa6!7~GT4a&v zRhJFhkPX2_KWALtXDrsR?mHal_-?DG4XmdQ(mC&AbQ>{qQ_+~IyltiB4YE9u!gIm| zP${7q-BNRMR8w&LI**)R_U*4Mx-7AK6NEM?{PXXTp8a1JXJwAXC%AM0NTbg9*bOv9 ze6v*WyFA54B8iXpFl`Z3Pl@t3@>j6 zBy+Wu4)eImOdW|L!w-ZS3fsC8-i4a?R?@-(x10<)1>a|~GhO8NoMnYk*Hib@GV!8F z?Vfk<&0bxIEkKM+*rkPWSqN#crRVfRGi{vQWlwgcA8LL38jGt&*|pyI=CPh|H3{Hs z@EDJ~v1=Gh>XmrB^?iRsa4eB5K{CG8ZF||&SJCrP`84>2M7tsLU7)TY%%2+pn;`ut_)ljx;w|()pd=^# zOlaN@`L6K}R#U0$whT1%eoMsy^qvTcm?(b5z8&o=HkBs~88s+%JW#D`kFZiPW$y4% zMHU1U+slo+7!D)-OuRrX-M&>@CwE2n7pp)H89I6#DI<<~kXLfi7G01}uz# z_4Lc(V4@Dfy=+!2{MYA#G-2pKUNVpt)%(>+8)tviMD)yaTdDSjV@d`C%Qx!y?ONjQ zS3fC}yY2M)t3#J8W)6MTHQVa});!v<(xS}oMIT6b$JmuWI?0kr$XJ~xCtsn5EGdmd z&~J(GG?wc8j^qF3ogwi_LLZ?cWUu1F3HR1R|TtebQf$F0Uy2vC7)kX*q%BqvQpl5wAOulL&_E~ z^-a4ce`ictY|B&H;>*qKKS^5tR`EZ?4BeZ-= zmRAvgjV3=qn>Kz_8UnXh!A}mlb`^?iytGp#(I-+ZUN@rk@%Og1{>nS)CJH3)gA_Px zg{@&D!Y)uO6t)L5?G{B*vtMzYF@UG0s(2tJJF@uNLD%+_ZCz5dzjuT0r8XqBv4WMo z0r4OtRg}yEj7i6C1l>_#kR$uSwDZ`Vp=iJyZr6c78Ts2b>1YsE`0BL5m`WUbAUQE@ zORi-dM&Q7x8Ndm_c=Zbz<{|t9fM8tX6me0x0Lx*4=sd%kogy7LiStMI18XzJ*(o*z z8WQy4J(njHd|==F3&?{LEo+(S!E)C^{j4h=J$nk+GWoZnPNvEk#gL@MbDJC1rQPe* z1?vc0JnK7XPQ|_#6=g^Ze2_zd+K7SCB%!Vz3!_2r{xnU`L*j5`|I~K7>o=~wUS(G$ zBH(6G;E5KYweIKvN~;BuYC|B+hRxBH2PIM>la$48#OPkHMk&;S1jE*7*=rc{!`@b9 z?=xsO=4XnH@gHhREns$G(c%+F(iJDpU=@)~Ac*Q~!CsR{KF?#oW_kli z+6i;#fGQd&ZYyWm9t_$u@YIs|?~CTKN>K?KSMoC}sSS zPn|0R>wBNyd$SK<&RT@(_JAGP-^RDMdko5J?|2p5*}xY5rlZ3D(lKjr(>QLWmA|so z|FI?>k5eOch_IH-K>Ec#y)xbQ=~F`gKC`P>XV!1zjW}%uTN$EAnd0m9zx^$tRNI{i zkS0WlFn>)#eH&0$e1evRai3kv6^vR$LnE$!s0<=M(8SjXyuRRX@tIA4FRa7qM{Q4$ zu9|}T4rdE@ld@aG<9X4Oj9bxtWJU`!|)Nq9E(A>(k6So$lp zS_y+x8s0S$qBC@{u7{QOG;mfqaOI$A(qK4j4wRI9!l;A0$(veWX)q(odnWYJN=I)P zVmqih(@J#osGLn~mCPG9RFxMnIOM8l|Lay9RKZDK*K%v$^OOTe99u37g5kpp@4|+K z)KvOU+0-3i#=-}NetwXPsW~uFSIPpVEjofu4>7C$c0Cprl;OgE02871DW5nzt~IIa z8D?gyR22&lL1sRY5r1CAkjjiHDxb#3ru2FJwe&tl;LOh)RTye^zR99|>~-@* z2~|e9V;pL>yb8RazFqm(RX0c3=)lA)PmZTw#_8<&4cjpU)`>dK7H~i`w z>cwt9hUrUE?)~`PU<*N3@mB))56pt)GAAHTFL|ryWeu|A@4_G*%(&g1u@PLy#(~}M z=Ay_?Z@mj(Pk3|WJjO2EgV5F+X$q?alwPbOSb1+;L27Y=Gb~YJ#3v)MQ>2!772Bqn zmDJmV5BlpqgwTyH2R@^mq}~u(nl1L_3LaScE`c@9QThv#O`(>84C7DWAW?H5S=7+!ybaV`9?>uLw8^3_F4RXneYcZ?Gg^@kF}`Ca6mWvulVXarGo9% z*EAng^H^#f>P*=3Bovp2ExkZUF`OQ@LY(z8@4l4$s~e z167cI&K3pS0`9`6zKyp_|D>5fqurRtA#9b4}#h}PR^_o|uGwl76 z%TKr?Sv%b&i7VhZA&Uj6{2^jotmXRwG(LKa8HqQ5COHU&VC!Gv8Aec~sA zB}*N{OHbQZ0pUhX+gqKB^^ zB@TJ=0w=GHdNqsTPtsX9u20TSg?{9>76z?OWSJqpBq6-TChJBE>GGMX0#lJ4-ESy^@A;DEXo05O+7Jin%HL_n@A>BJy+c+|dK$>lues zisUZ!5}{q9%HlhOWTLj64)H4T^@;LzFmH%tsFW(9>YYS5drHKFnpK*ej0C;t%`6!nk z^A8aPG5GK=``S&Y_67XNODK&vyz9Vq2jLAI<@D zmlB9HP6~)kAZpW1FT4tSKNt5ICM9L26zD!ZRR>17dw09d^L^$jrziOW_Xh7Wu^Jk7 zD1v~8YF#`nbYpzR0)PC5lBXx)B82vN*Zy-U3+3ybQgAG|py|p72tx(HIGZj$4S(3X zA4cgBt7PS*nYTJs`%y=2v+~wn4rRX@EGS??ZN!R>FdVMk(Q@ zCG6689X1c>cII9(h%x+SsQB^FM(`XcvXO{4+T_`d4{OM(b&W3VO>;>Ict8dz59MN# zQDwxT7Le0;9}+Gk-p6(%6pC_#($c^dGb=D=SzMyj&aTP+gAq<1k9)G5;1|#HkeE+tUQwCXWH!%A{H3m7J+Y1!zDo$t&!nf?% zj-lXN^ZZ4!jx$|k)31ObkRcQ<7X^*;U~Kc9p~VH;_l4{QvnTF{7`+dg@Pb&Gv+f2l zfc(#o{A?mv`dWLfM?%Rcw5ZwRxvX2A%YYdR*lzkC^=<@@ZU7DgtTgICD5>gO+9|iK zM7o>4vleM#5XHbvdnrEy0NUY0Mk-x$)cLS{-hHU?-85e)Yv^Sm_}5)0((F>!D{6NV zTM6#Bw@oS2jB3VadEpKP-<&*5*F&1+ebkbp*(EgMu^eN(a;N9rz=tY1>4h^pG_O+_!8SfbCuo=e!X~Rpj9_gEahsTW zsgq~IUcHsQ7eQAylV{26-Q6S5O+MH=4Yon zM$uS_PRS2`1K`_ho7|xRD z{UrFY&D4CmnYnb)dIWpuvY2Z0(cv}yk*U;yD;<^($RS)nKK08^xjL#OtI9kW??Ar3 zH5obx(14>6TzBF~TX7e}PKryG_KLwbGX`({0fxq&d8)+sm&z6pwQ96}Wu;;Jrx;Iy z(fkJ^VNV_#$CmY$HtIH#uVbwAC_MJnD1P0O5L_QR6@_0C41v*KDXOWwHm6ps>A(I2 zi?^7Fytnl~@H_^Qi4061OY2}ct58Uh_%-$JQ(RpzamStonb@SDdl(;t4xbcZ9;ULi zZ^dPcEVmTAdaAyJohiL-D+slPO)PZ50R)Bdjk!*y_u4Pfe%ku}=+lIEvfW-h_3Y5S zJOzkN2KVSFa1%<3hQ*nuF~tub)5R^Nm4#bdt+)TZ(x~G6_sY~lZlmXdFuUGJqJ38M zI+P9u?UMBaldk03P>IJYmwh!ropoz4WbCBhwnzg1OeG1Jfi6ICWu0#nhbqC)nywfj&#@Ol@T4?x(g+>T*1-ccGSoh>JUpJJBcJC7+xknNbf|&m$gOF~hH%C}6BD za1pl)-q9>eucZw;8ZO_h4AksB%W(KAq^6RrdikxO9}U{GkV~{E-fPtlxiLQY89yKX3?+?Ke!G{+p|4P z83eR&e6O^6aVmbEc$wU5+3U!JG|}~j6T4N(N-)wMZ8FVNcIPML$%WPO(XUNZ!4~(I za6dl_NC`C+AI(~NbURD8=zuS6T*ywO+q@Z?2k|ESsOs_skh<@_g}zKy49#Vi)-# z?pPD4Nb1g&cT)Oc#|kwj%q=d{h6Fj9B8lJcWkN`r9TPUXXNiW-fqZ7Lo+dxEt`1e2 zEzolP=-Y2u9Rlkqycs3#kH4FdP|oRHOi$(Z;oqhd1JuG&beiz)eG4urV3SlL^;zUY2KMsWzt}RSz z-ws}R6?fmg0bCPdK@)jn^_sjL)dE9Q)h4yZqj|O*0i~^W&*bH#!u5|kJ{F9s8ZO@_ zUl(`TQD{UfuU?HMl~CEvH9cK`7-b;wnQ}ajKlUK;+sRw!dxY=gU>~#URQ8u_9 zy(Ntk;dzbIKK5)wI(O-LQE3&1qA#)sS~|pE6@(bFc->aFU!mn59`yPO8|F99PafCx zV+q5?Es~5;a{I^)!+{$#ZtA;_EQZVl7y+@7_k$91w2LAYf9>wQf)O=$-jAfh zro^YC>{WX5eGy9yBA2(h>4%Q}J*OGedI0W8rb#kSSI$qa>v>L^ia(#rJ)5eBZhwhl z+8ISJ=1prT?63egar68TqmH)WjHMegRl44epqU`;g1xAZHuTl5DGHHgQB6#=IGE`(8l zq~192N{kKdWmomQ#$W@F9xTPksZp9914(FpEn5`#KCgGFkeQeosPhdTdaOGst~ z(cc9HBdhk|*9?WKLn56_pK|X!OO&*o6)FB#qh5Yf{U;Pd@jOuUEf9 zrC=#9d?)&1-gm}Vs=zmGHLG%F=$2M8Y``jX!7*Y2%{JHvDNxh@;jQMgYme2*2kHFj z8WV23Wo3{e$;+}-=L#ZP{A5etWV*-gkTtgb&``*bmK-kx{3O+dEWiKlD+1Kqt%UC` zZg0l(_U@L9QT%qTgQaZ-{0b&cYTerHkl%3EOV*Oea~nLUR)0fd(wKBd`ljwKXrD_t5sbP_`Y@@9FP zm;-~st~kvwHg_5WvVubx#c4{|>$LvglNy5v!p*F}*2y5#GY_flw{-3@5;ed1Fu2Kj z!My6!L;6@3V(22-w`Os+@`{iQ1C@z+sRCmwmw%88BEtM%mEku?hf}gd+FBYlS*ok7HkZ)V zQN(GT0n6DZbr9*LC~ss*-Xn#4wYlUHiG%a#TtV)qck9U&{A8y9cbgXKCEao)AoQfM zqcyyEkC$77X(eAIjcN%lnygI%y>Ut#^viE|)<=GEj%>>DWMoD3{R+hbQoxTWL&wkA zq1;)jMXJ}qg3S8PDhtEOzn%iGzg_5DDAb--yRFwdt>tKOFF-9zcq(oMjjx@0&h0}E z6P7uD7LKwOMym_PiGwU^u}XZ+dbzLe7J28~xOR-=zcY1+IhRgj_US4Tcp2It4T6`+ zyN{TpwuZpVJw5BLb$xAZQ8K&9_Y4=_w(HU@jHZI@!f|riU^EQ=jBH2h!ZtooV)feavw;HyIZq3ezBRZ_N|C5~j|-qf6C$whqE zPV&ExNm*q1oT~?4%sHnW<-&A$r@?9XfWpF1Q`BpyrPdm^qy_Nw zhF!5-F*XocaRl*^`Y!mxUXPCWb={WGUEt!>0gt-&C&si1;##@ZQ|M;zkQinzZ*oF>?C3ylEcAU5KEuYsWSg4f_jLWn2bUgK8O;= z)=nhEn61qnvNWgK`FjldE5*<=Ed$|NK=KQsxy?^4_5l>SM1Y@upttpGPy@cgc^qv0 zH7$tw3rez0+Z@N}U3l4Ul7XBfGJyFez4>q@$Dwx8aKmerL^Ct;^Kj?jW@D%$>ZC0c zyQ9&ITBNPDK$n2;gM3QKtl6B=ygyH}`x|pmj{j24wz9+?GqA6I`E08QKo!R9KK5uc zd-PjTC91>>qA6m_ZE_NHsiUziTf%W^)_1Vg+GDB`*!gws<0Hd~n_i!S)GKpy^6uYF zlm9l^EI8~V=w!l^Jx4}=KjeSsFrf}hYSDLwqTCHc|70*6iF(~cG8>T`>K@PJ-IOOyi708;a}sEs@?n%rn-rSg2+!BYeIEH<_@ED$sS z>g1q;W+VpjbC2u0BVXUTx=z;}442zvzqZ!=*&3SQw&O?7PI7bG-WPKmpC$a+#Ln4? z;!IG6;X|)BJEx7QI}5*yTRIS}2bE-W_+C>jrGAaIeCI!$E%Dv8NPsHKPI#;rI2a9z zp$JEK<|j*R3*tXl*j{MJh9z!A*i8}+QO1~q8K+zFP3ip^lvvGkBMrw<~;qC(Pgf8~DpMXTA2Ds*o67IHf+!lT$o@K>%IjgE2ByEf$1)poq;hTq41Z2q zyZlN2aA2O5t#=}^N=`rSH-DcB-|+=LDez$>7bEvNHfG2y{Y)pzf6bzJS5(1qJUj17 za`DCt3oDre&(`h*k2@ub`ep6%#T^5I=}l{s$=f$AcwwC#;5MAzg0&X7%cIJEald0? z)YEPPM?W{I#j9nBq&)(#U~l8R371#y2q?vvYl52&LdR!Zn{%p#SBsy_VB}i%kkS@66%i8o1cbqZ{nW$rEW3 z*%T_@)rGG7HH@Mm$J*+ih$#u#0KIU8U@8En_Wqav!2QA^!mH6kjkEP#M&L6P1ryr2 zEp`IlBfj&8_bD9Dff(YOwnXbM zgW2V7X?aKEyW=xYJ|DrWhrcW^(p9Th+v9GvyIJJ3x88B})xt@CNoOw@eTqs3} z90=Ep)>CiahKTn$zx|0wjBVMMyIUvA99i<%JKMOnH>#dA!Ctxjkces(_cgqE&VpoTOTdASz{aka^qLH%Hn6AB#mc6*Vm{4~fY8EbqI281>uy*iQb5 zP^i-WT_l345n?5VrIZhu&SHdWz=^Z}akR+&D_C7isc`m;uyB9_oZ>=_aiGO>%-Wy{ zBM>KatS!%Hiv-7UwR}Pjlc_j8=tITd72pmgw;)@v9*F&EGv(h|iE{6=xB+D2F65;S z>F+GN47Miel7PE?7=T(qN$JXjvvUB1v*L2i~TOf9z$iBPkdO}g2CX6b~2?{!fNFED|kSK3yO>}!C0Pidw_SXyp-_$TQ z4n3JvN!iXn2wp9!3!W{k{YR60c;K(6TAM@vJwIF=wHoqpE3y}M$7xJjhVkTEZWGtl z?& zM_Ec9PhrgZYp00Ml;9V`?-)dyR~tdz0_Lld-Uvo=Kga9rBFj6V<7d(^d$@ng3eP@d zujTycK)aB%MA26b!(+Fcp3S*h-R<m?=xrGE^U}dKBc{cABH;zC73c znF^^W2IB&zv&JHx@qlTSB);&|`NAl8dA35NrE}9{V?==bZSv}HyVtl)HpcTvagU@> z-;nAqvadk}i$TdNJ!2Q~Bjms7{z$>2|Mh;DkK>XZlAaeRM{g=nf`-4U_bAEQqYjUY zPA`@`z#h1|giBy6wTiQI9qVY276QjU30keIqUvM_=nq7&#nelGA*?e>zgl)ahj%=6 zQr=T?=v(#fmv|f{n55S}aUH*8lI`$zE&J^j_jdS3@6G)czXaUsxc*4+WaSVRw*pI= zx>B@XJ<(^vMnmUo2sbDERfG2Io{9b;y3TIPk;(?YJ~F?LL>(@P=8U zXky4Mv6$};{&^=fx#TLTdEw0w&CTbeI1i7uG>F)7Ymv%tY%lE~@p0Aq_HgZfN7;f2 zAY|;u2RtA@a21?B=oS=JBJwBRwc>vSyHj1>Nq$`otXT3RC{oHik6XA~k|@IGjOx&j z#c+*KqCPcDb_rWmS;i)P)KS*Nx)tX=wR3QWoH$ER&Sj-kNcUVk*@qi@Cj`?0WUrZ4d>r(O{2v~rbI zYduqAYHQn<8!xa1XmxP3%@S%eFtKAR(F_^s*H9}2_z!gpSpu!u>B!u#s7g8u`(u`Y znf{VGu7;07?HlZObOxzwBUL#&QA285XMvQDD*OY`l)bl~%P)gBRDq8Y8v)CHRmk|| zW$k;cp(RaGr#UD7hwb@$f%jK@XD+rZ_~)XQiph(^`fnu4V?Cp~e!lTlg#DyHfGACW zPpTK}Iq!wy`DYKFjM`^-0Uu!*(Tb&LGt?m+OX@vlyPn?oGKa&*ynAHENm2~ktq z%O(2K(1y4n&zMP+uhFS9=C|I@y56I~bp`6vks=tXjayl0tAvNBb_f%)_YSE4+JUW_^7ixg{$~lx@od&as|Byd3uEt9A30_fq~^hr z7&{3wE=X+RvLw+3eAJ+707C}$gL(JM|7VIfPr!d$+y3~4RcL02C20;BS?Z>{QWk0z z;#>L7kidE`)p8vQo$C2(>|pI9eduSzW?b?!MSRL?Ch-Jci;tMuyX1Su9$Iw@mZoucRV?3JNIu)Uu%P`bvHy=7xFx0d%7My8i+xuq}Aa^H9S3_re4^GHlx7U+b<{|BjGyZ{_e+n zpPbHfb8je;(|S8aE&@9B$AEZL9chcs>X1LA)V*w}ZBkjM8X zs@Y%gY>IlWj}&PR)rT+Ph4CV?62}tq@k`5r1O2y<8EZK4*Sa4;hIr505a@^@?<)hFCdjtG_#h*RP&!4v4R7Wmr~imE2@Uz+x3PCWdP#Le3J(NkjTv{C(pX zj#o7bl(_j?HxwD;)*DGm+1&z7Fk4ai#USY^$6rSEU!P@GwjoT>7GF(EqZhae+9-R*uInWBCna#t|zO!B=zE%*Anb9KUXLF^@(ttYcl{*mtO9=9{JV~ z5@Dt<<}B#|Zl=cmZPo2TxB++oLucAik=n0o_D|j2{-l5*`1l_^lcsXw5emOvuI1u2 z+Ls&{T0{iCp44VaHt%1ixYOg?ewN@ed+wPYm;CXndI>kOIh;7f<->Uf5Usqv*V-Kh zQouB{(x-34Pv3eyt8`a?+~i)M12y+4Xs;gVl2jh&jX9*#roAt3n;@mr!CwC2+(jZy zV!dRiYtawI7ixm7LwtJSKK&iSh4uy+*sMMg;*gZUvn$cx3A-NP`}E(!AEmt&qG8g( zQR15)9EUv~1kSF^pQ`k<1mh`Y%74^+q0&9IOIo{dwQO52W5LWn1}fKbe>{EL zkW_D#cwn;?aQ}r5m88yH184o~zRr9?gv6*xJM5s#;;pCO{MgxGg2rlIzaw+b4^;;uF-iBBw_HanAEEpQ zr&xdC6rJH~vK@bzTj#EP6?6N!fAbfAQ6W>!<6b42pB0o-8G>-?@ z&oo~X!sVBT_Yxun*sC$8$du_z@Vn+o#Ys0Ry^%6H9- z8U{W+T3$7z(mku0#c?A9rs#J_XocvP-+K`%wF{e%5zZ{-hM7cNi755#u;sOaWd;RSqMgGUU03o9`_9%`r8Z z#8zj}1@hq8De4JPOs_1BUpkxg59ui?y9mBkSf1SUB|9^Do(E-}zVCH~dcbJRHMxIs zz0Av}eNz*Q>p{H3Sfj3GK7mn5t3z8jrhfaJcY0>i(%C&VnKvpf&nE1=B8r3q?mw$2 zX@)LoA?V+A%r0&9Txq{Iz`E(Q$j(b9$AP>_6vVl8ZJbqDw=0;+IiQ_C=r;ecAj>a~ zs)LaAjcwdY98oTF+esV6Cs81<)>KmCs5I<#MD}0D)ZdT#Isd>5%2aeB#ng30+lZ3O zOU>Hq{%6KNt_vzJ^RdT9nm!w@)IMXc!o;-*dr7riGkrBZW1u@>-OOM@zp{}iUfeNh zy@D>dC!~-X_sA(ai@f*o7vwxWkjpK{8!8(p-o^z-^_v_dwX%7oHHakH4a#qcu*evC z+L^^qWWU24B}(z+v>^6lBg1!KJ=S8u5dWR>ArB>lU1MwjqUv6zsQoaG%o1;5?B@B8*XrhrN_a;Ourm!nP#;nT|@2y}aY z=ilRY+IIX|8@@+CL$(>rbGlvB%ZowQ0ujkT5qqnB6Rv8mb$um<-uXI892jPW@y|e` zJ*wB5XpT2MR2C(^F>uFK3&jwKUD^!QK6ocBK6<|*mSe8voBlGo$L>uwt^6=~OhVpe zK{<*xgkgNsD{s&}L1a&0-4^;=4d+km?0HuV(0WY2)TCY#MWIE}_=(Nuir!g~(fhta zCbo(8?1a7npHryc!jpB=yae?(nnSkzw=6_65GN@-XD z3F+>TZcvbJSGt?U1you@O1fL5Te?GX32ABAML=R{5Z)#J&+7*sKmBgaoH=vm?j3g_ zXL%e2iBu)vlfp>*FP2LG(i(Kq{-$6ByS(jGhoIH_*h`=vAFfXS6BEi@b$)GH^g5nl z4m=|VQ3hQfHFOtg7olTm%o^dw9q`_U>Y?{{9VuJ-lDMc9NcwnZ`jSGwKX+ck{Zk#; zWkHrg9hLpk2L#PM!pR7y`Q*%oS{*t~CxIk=IrW|Y3V&^H@=!c(w=I^p6VplSE%HEi zNzEmHpb`U+f)~k0SOq?l6D*rT4P)3!c!7D9svw0HFUDNNS28XeIVJNaeHtJw)4z)#=X`^NUL0# z9p2IQB!-Zh02Cr1R4h^yIj>UdPWnNKwgNy>S477j0498yNOiKz5F%2ev9RPpyzl;N zIb#5DZBWZ%>A@!Cy%~A|{$4+V{)Oqu7c2C?YE%G~*cKrSp)NKtdeWrFE15dB@&ot~ z#M;H?#comkh|AZ1CG3uG^giWPx9?hZ^qzPq+n-q&&*4pkj z*i;-yjVN%CdQ?#6$YBE22PPhgC4Nne8`Gen%>`&KgW)(;ub$_<`#fVH$9|qqaFGcZ z^7{fG^EOso8|GOm>Dri}CNbu4RlWspN1FT7rN+%Fvr?ay0{zjVFaybwqX9~!^o1il ze;9}5=+IGTlknmaWKmEw?mJTNK}J_jCQOPcJ=81BX4bWG{SrwFO&^70juS;PWW3W^ zUXXRoSXasUFcHs}{3BXa&~d(Ue~^0)2Wmx#_cf~w)r#K!;<#O>*o$v&Af*}cYY{FCi@kT`luVr#&Awt6F+1521(o zGObS)lnrz3)>cI#);-$7`O+6Bq{4$e-6ijiR_{OS+oR3?(l%zu2KnH@%oi^s3+EZ4 zZnvJ0XGL~!8YC?gW*13BDghP7T_F_SHMU57c_ot1SJ&%LZm!+ILEpc(&M%dv`lRJx ztw7a1Yn`R`>b8;&Ge@>hWaa^f@c|JsP&ZELlx>LiKA8T6LNkgK%K3M~cZ3FT;+CA9 z?hTVDn$5nkMWP7$gg^~lt+eCwY1t;Dg4#!?^byNO5I$F`yXl(!XNiRD$~5(+UPKwR z-5AvI#vdvlvOE_eV>jXx>WCVnRnC(+#27WG?pc|5$0qXp_2lx|*y@cQ?hz9ECFYk! z432`blwwFo718yH^+$iIucsHw59_{9SPf??{(JopE#-W$OZ;Qyx9DSgij#-JQAM(T z`OC$-s;0VQ$0>CerpMcB`7#Y())*(0i1!-eSF&uV3XY|FxpDA`Zh(H?{l8s}QrMc3 zSgA(LB1wJ{nq`n&`TMx8;IYG%xSb-BPlf_d6GLY)Jzn@bp0A1nr&?8AM-^kw`>X+V z$RDX#m@H3C{MDcau$aA(bC*z=nkJ%YHM9MaBfp6F^(?=L{);1hpKnkFnfQ+kw}q-7 z$!JZX(DtS32=6M}eV!W90g~Oh_j2b(nWw6^Ui06a;JNTbd?6cgi8|q34-#Amy<-i0o_PdJwF4O@pgtLlW|g@P?070|$3L2wBRKd{-xaP;-nwZJ^O}S( zQt2LBBtAvDf>R*u3LAsGaZ}`sc?I#k zo!8@qm-iy9&W-HWPNPu~G(a>#f&aI&qXdPEMRu|DB=dnoPp|_Fku|O9- zQpj%;B$SmBwJ~0gN)09bH2)x~FXAGuy|Zu}H6RieWGM;MMh9pD)r?GqT%9GuPm3#X z8tX^qw2mi^X#bp2DFc#I=V;D50w_^LY~9r{>&@TtNx+UodL5he_`K(;h2qGlzaU>4 zLxRkI%_bS7lbYUDyH7KFYAwX%SYiDX-QnrTxZ&BH!No)-1JU@u*lvmeTbS zBd;i2>QKf?RM{R6U*eb06OiIgy_ENrrb6Nl_;~8* zsc2?JnDI{&xQX{9JhfPUfXv}((oS2W$jVt|`}nv4PMF`HrY|59;@cee?SJfmk}zd< z0o~Xj2OSFs^wNtkJgl?n>nY}QN6ZNK(9yPn+T*q{%%S)33de3&yy!!_7Hnb~#-2Hn z=?0fmuRes>_=xcfeSaTNtz}*!k}C(U{wGPiQ;PsAI7$oOnJ+!Kr5ZvWd zJo_HMh-5@V^m3#F2}I#_Y6UB9ryq7RZW8Cf%hbEtRbLS8%+QMM)k`aG+flHGod4fP z9;%z)T9%n`kU8!@=wVz(h5+=M1m=h z{h6q4*$mn4QU|2Tmna&##LSH&+7p!z%%T+cSV`LJd%Z&TkuBQm-dVOam_k9@0xwOy3EV6h@g z-Y^G9{6dmcq>t zembS9(iLt@bMUN_4ZPS|x#aw_DZ5Cygq*t+?*H==qLcNaeM64cfE2E!!eiC!o-11OW&8+l{>Jd8W^Ky<(yIHQc|4w{5K z-$A~*-V03917D53J)%qNT-iT!5OT5)rRSnt_)x$0_G_@d;aF(48+g~)%(a%}1jxd2!Z#Fu@-8f+T*q&KW&O->iWS8e* z7j>J*Lq}0T)@f>_dI=kov`fC!dv8XU>*T^oStE5CKKsa zb-B7XD+?#uyxWPbuUHIS6Awq6>CmFnq>)fSgkpM zw-sRy9)LBxko#Nqhj2xQ$BCo5N#QB+=rE~Ds!ziX$3O-TT+7WWYOhV1950>djMxf< zKJ17?c6foS`9i;PPO_GUGXYr%H)tvqCBeCaooj(Ro+|C<>Y62Gwt*z$Io;?$ydwmKOuKtsOcYCS0{ zl(<&yQae7ma;QHOQ@bb`3p%LB^KN$BM;1pM#@~#B**Wg$abGLiox?_Dkg@Z@*(?ix z6YbY~iCdw}E)REoI~8+lo0vXaAMOZFJz?u!d+qxA!ZlD~*ki#%ERvyHDrer{Ha zQJUbmqd~yAGn^l5&OZv|b0b>rLve9ZnVD8>hL-$tAnuM30hZN4ITcSm9 zuzOeYrd?x_ek;X9K0Ilr6S_6C>`jO4oK(O3`m+Sll-oI@Zc<`6UN9R{5c^H~IFP@2 zPYf^urx!l%8_B6gHr#rpd$iu@N0gN^(y3&hazGjsw2R^*r2IM z6f!w)<&$wsSNiJiq)z0p*<2V}RxWyaLp~(!XQRcMC*yi+8OK1d*7{-rE6JF?(Vxx+fkEXBs7AYYMz1S(v2Nsurc#Bupi}z%7!I zc)av70}pBBQ|WN4+lYTqa_2i(XV}a>Q&m_ab*v$czH2?J`X3s{iB1?b-$UR0Wn-~A zR7oWkbansZJh>EMEs!*v`-$8{eemb z`@W*=Jdj{QmVE{|mWD)@PJ*zYB_vP9HpTAiEPY=8tr#;W2%}_8*zid*P+eIpwLoA1 z9h1RvHPfAWJUxzZf2K_?r`JKfJV=<8%X-BU%%xy;Cj5pVV+j7uxP3a+@Dpqj5Z)-l z&AH=zL1P$9VN`1J%y~IE?&<78vh7c+GwO3=JQypI&;(Yh^y;P@fjk`Nrw%UtRm{ zK~W}wob~8$)C%tah>K68F~D%FQIPK8QsD7I&ZY?47D-t=4QD*wLb2h{2S@T|sawL# z@!$?JX(b;JW`wsuGrJrVv)V((*~AuiyJ4M3-}N;drwbTudx%C^d1^nTxI|6WN6F+G zxSJy+%_%cCjRSRQ%*>>b`0`eWN$4*L7gcknFyd8Yw{?JczWqTbSr^P$uo@r50ajr! zb=qXK`ipL*yMNVpwZiNW<0g^Bs(<>QKZUqpFv~$a>!C|IHXnMcGz+{6FzUWnmwf&v z%X&!kA&S9-FdFj&5&x165wK!6+L$q(wP~ez4Y94PryA&>oO2c96xmJ87|}@{t^L6u z7Lq1YXnZAv5e;@08{i8pC(I0)^g!A22pE?Oz>hg=`sA%u;IWyUb00i79^LOm!r+pg zXUt-1zLuTKON#mD)HJF%$kMut(UTv79u0mv`J6Vx*3nWCzh6uy{5ld7p!459a+Nsr zQ>Y}TZe$uEw|p0OHdb3j7WKP|%WoBRT8sIm?f`y31OlS!S%)uh`c3XRXt1M-O`)0A zoL~$>`F=dVv)3a8SzXr+2l(?5GL_ipoZqE09LUZyx8yG2GuDWfm9w5=Zg6MX*v-q@ zKPQ&=#nh~xeDBDvB$2bNO$e8BRu8vH_8r;a>}#NV8E(d2q6quRVNozw+j5$ewka{R zKR=M>@7w6bUQgh&tY>H{#glBrGKMzWlQcI*>N?(mVgFYml-WUT_mc*%2d-XVXyjIC z!TP9arOC8KSdIBpvj-{*inuTv=;L_-M(rBtJ$NY8Rv2Ob!^vF$jtDZ1k81pSi9J< zuhfbd4PvmI(`82nu|-45D`LjTr};-$w0|$BMZ)g|{3w-s8s5i1o1OV18J34kT3p29 znyf;YFoQ@an~*zWtL#6E@aenJxfqtgG<@A)_+OvKs}5 zqGqFcF6*or4bhjzz$ul;1n|3>1EKyoo<4g%Lgc^Eg3brYp`oF0fD+8ju0&nPe_ZFZ zvwCvpq!HPU2KU%5vzC&$2=qzF46aIw8;@TigO@>yn-O;NIbO2|YO=Dj?h4Nyv(-?lvkJB>7VZm*vbUs&KtyY%ODuRq+VdX@ zvhjJ-8Z>3^CVePll)ArFlWm$@n7;g8=Fzh$j0DL-gc=?-p=&zknc@1MnX<087Yj zKL3@cE-D;Dg9)P~eD;hD2O!XstqhnnDqfiGd79jn$Qx;1q5dM0)G-)JRvP6cpoyKC zcX2kTfb1%BSt(Su0DmKEhQPQvU0-?J%$wtIR791+&hTOlhm~}mjAJY!JFM8SF?z^? z*lj^b8)DV_@s^LCZ`Hb}U8f9nR1P#OCLmQX#JX0tKk<10u)z+r^5sgr2ppGK`hk;p z*0-00{ATE1x$X?_oBueAx|@VB$60tSGHQ0X_Xhg&bQnW@kzq5`x_k2CG zI;+Bcb&(M%8X3!B{X_vMe6D))t&;$h8;c*s`+AP|^)JkTG1H=`T(=iO4sC;H2WYdz zju45ZSPyH-0&>PMmA6`ZnuOCrMnDh5Q~MWLu`_+4n^uJjQ7>khFm9*jE=l%+82P>5 z@7H=uYNm?@Isz8eS+{H2)ER21l&+ZukiT4-2Wz7a4?xIYj4L32fR!fssp7R$qB*L; z0!%S)3tWogUWQVwD(QCXfT4d?(62_AZ)T`aCI8VfhZrgvH&lS(u<&-do$(q!UR|QI zEw|G6)Sn}G#N99@To)j|;u?DPj2MbtC1Jf=r7DSeKeI?7lw03JlP4jq#vo=&`87T( zzXNeZUiWC4IblDybmo?Q))3szAEF|G;X#QC|As@rh?hp{+d=ot_;b`UFLDxuzwg%x zR61zsCsQpp)_4&)KBB!~&&P9t>wJ*ps01JnFY16HaK_3Xm;-&-&fizX_1ch@AENjw zUj`{4kCCoH_s;wzVsO*?Q3E4XC3SU}GUu9&)#ok!6P0-*Yg=$ zygR73-&_HZp~2rvJYy4$1TW-%1Z`T-QQUn8Zo+-*?dOUy7fRFf(>&`jkguZyFi99GvH8C zM%wBre3{h4z(BBYnM=E%^IQ53e(3|6CsGM)7%8Wl~bm$-kIw#{-OQ5@t zZm@5@y#sn!&mGWX2vjxk1rL*YlHp|bMq9;lR#HfZMEutK{6e?h7G=OSi2PB{`s*(R ziTEW4I>AM_j5Y0kpglId!H-g;AG8O1)A6xXZ$Sl4bGP1eMVnL6{K~k?8Kb|OYNSr| z1KsEmxFaB|0jy-dfsHrulutO6Qqonft5kof2!gfrx9doJUH6pov)Ng;_Dgw%Hqmrw zHwJchRcLQ~zc=LGPpyaC7M=}m@rQCGMB?C-z5_F4$|uEe&{nhC5&vljl$YrmkSWE@ z12($vVCqFGD0~&eR>Nl!FL~5h$*zn zsMA)}3;w2+r|I@I_L~iSjX$NRC&IismHHzb(QXwybm*tMK4P=lu;0Xw9j7w=f$d9@ znM2U5zG`ZF7X=^qT@_!saho(_7APt8CI-=+f4zeQ-)BieJD`q1Oe!ywT^*W6{_+Gt zrf?kPQzqJK>KH4n{N(jWHTe@I8?3?*?8)fSt+AlUO&5yJb)gn8_oc^GOEBA88}pb^ zC2Qe%BMDE66zImPWsKxP2^-)K#YIiGALz*4Yx5{E?c$qLb|0VnbmGblYSJ~R{O4|} z5&eho;z%JQaFc-$vJaVtZOC`PH&tl|Ry+)b_wk7@SEL0~V+lm??0zPdoata^kc-4d z(bFeZVhdMnY4O@yph*97(mNf)S6i(Rm>x(tWG`P760@UD7tpCAbqn`0ZhHkRKjaw# zj>-k!q2bAYX!y`Wv)N@f0UI9Bv!rkLGUcHz6B*8g4fCh?v)9;Z{EoHuzcUvtOI1Eb zv{Y0$dMlB7#mSV$r@OGmjvrVCZxe8r3>Z?sB4Olv!UEzd!DVFCPvu%E78F9zgzx=q z<+)j>&)fe7QP=H5G}x0rW$Lm`R`RYQuOHp~8#v5)3?=P)4adPy(Fd5r~bNI1{OE#UC zu46{E1-1kvlto&be<{5yForgKGryXffz*dlD5{V(8|pT^Sgr<456sO4^)?Q#mg6U0 zgj$$k-L6isH^cLmGbl;JVx^PY9!28}r zJ%cs=lalr9)bi2YkZt!2R}t%X9uGD<%Arff-lW{NwuBQ&sa6InyO%zwrx9Mtm0&tm(tjpdv4$*D?F zH$*lw^nOa+SPJm-ouyF6J|88E#ej}wG`eHs=;uM7O-yFlsgPMuw@3jUaHCy@+N;26 zqnG;hR>BK!2?vM7L%d$BHGIuB;p~0;i$YwzKs(5Wn%m`-=zzt^kN#d)iB1u~jd7g6 zyayE8!VRqFn}xhDQm%LH3=FH)r6poHK@Zh{?e=)GNLoNS=PgU_whzkHY^hjywOb6a zk5Ltet#SinOQOG%!NHqRrFeYrOI3v}BOBh2OJoAS*xh_T`{XXj9bzjvO;XRwK()~)FYtHkF%xzgrTyqyY?P$Ut1G*{pesTyG7UGs7YDXr{C%g5q`onk- z4&v&JtOPOoJj;!BxeECVesA2)(S{qa;?Z`{4KQb)fNoj*VVIIL(=uX$e4C%7v8KH% zF3h^8|IlPhkY=oBkyN8juz9A(Qjnw3IR~MEy1BrWKla=jyTbTq{^$m8VO)s$=rjfr zeWg~NU!Hi^9C|nYsld&14DP%Gz$bTpl%Z$AKHIc2LGrGqy_9WRC&}YMTCEN}RY6)! zo!9E6_62n6dBozPJI!-DM~K{dk7rH~x+QD1dP-7leYt6Uw!MxFJXhlQftEnBVi-(AVl9icKmj<>WI6OXVM`zD~Q>fdDH5W*bq3$DD+%>X_~pY_kuB9 z?qO-Fn7VGNh6VKOPxR)#jGII}XXE6VCU%Y;X*9mEDx!T}1UqNTgVQ}JsYfJmgZ9>0 zQtm^TG|#$N1u|}|4Vjm5PZthBuLmCi&hdJTl1NQ)!Gh9@tN>>0!W|*%X8uFSvdQOd zQFl4mh@AzhDN|Ms#`x^@_QBb#t(Ch(Lr6a$X=8U^o+&Fp$CcoQT1MQDK}W=;VqKTh zT>k`M5YBXV*~K^!T3!+84I=6@z?+P| zHbyX8;NyF(IY8^xh(%~@#&pZ4?wROY3cGS$VKE1)bPX1~Os`ZqVw8fUtl||*L7kvR z`1detb)|9eo>)3(N_}-CIV#+o#;3V-89aj6i0FC8Jx2=28HK4lrqHuGVhZcuV2xot zqRLmj49|({<^Jd?{Z8O^$HZ;#{SXCv^=(CM0J53zsxwrFLSm|?<7bD1%V%72=JAj@ zK$2iV#!%1tZsXArxV(PFdfue4Tvblx@3yM6-I`iFWVCCutCecbLjpku-0~bj8Wu&gBT|UW=hUi5nwsk{#{l=v> z(6q_kO}~S$>1XsL@yT2ewaqHcU{JHb?)2AH4+#A;2H%|S^^zLw(qMH76)f?eKqS^T z9LTFy!S`zsiD#j04{t?|(R)%I@(dEMWTkJvm!vMKJ3Wx{&}CRJ(Vg3!gZ%J_mX9d| zD9HO-&@|LxTpQ)^2@X**Pgj%47ieygWv-@tV@C9#AtCs!?t^CaO zM2;g$>{8`#4ue2ZyxbiwY=^@MST8XYHYdAr>$H&=_ltcNUS2b7)>=y;0aRt#R{AI3 zQXGRlZZ?IM*UEo6xOcYS;JI@4eM!I}oxJv_As_{ZAYEaGv;$T$Qf2aE?+uYL$-~Y zWpVU5-sT4ZpQKBTgxJtw`}w7YiMdQ!Qt`w{py{(h9htAFF z^1VmZHR|e2A(IbtSypUfUK+4iuSJkGF0jn4eq#+MuKW^k6KuEcQyPHcDO+0IyWy22 zHVHj6jg(85v~m!_gR2|_6|nq3vWu4;HeqRCUt30|J|zFI=lGW)5SN=fSUTc}ecSoW z1Alq!Y=^f8aFTr3^5^oz#NwrXVV+Wh(6XP_GT3n03n%2-rLv4Bm!{@^9ULM}IsnxkTdTm^bA3nf zSb~!EX2_SY9ljf{F{S)(^p67ikeB&sUWjY+9TBtSI+DuM%%El#ytjL*f*zaGXYU;o zDF6EINKi_-8!Rrr?4oUVyUM|Nyg|*9^0GJdH>BNfYp+XbZyui3L?e=gR7@lo)n#td zPhX3BijAUgq{bqYAJ_Ssgy!o{SU>J4g3Hhrw^wv?wMme+Wk!@tci~TRV?%!Tsu2rf zS!e$XG>;q%a>1RHp0o6Rjkm!aN! z#naeyq8EabwwaR?I*m?KIFB65&OI$^P)9rSmJ$4G9%c?UX^sT6ZljBGXjTjm&*@k} z$JFk*xR9Z_B+SNJ2x}p_vvfx#JB*&a`r5?TfQTxeBw^0}U#0Vi=kTGo5zqO2Z{E%5 z6$Gu-p;BxHIIbN%MX7Ed?^&4(>)gugEkl@)GKoz*6|rTWlu8Cs^LKq zXA?`*NPAA4VW1UNUNKKOIt3D6zy5Hc|8?r~VV-VHy9s-^r-9fJQVwG?VJ<6hku+ry zmL99Oxgk70-uK)3QPy^n>@{On?TZ~{EMt8`)aoKf=U?D#O#9#0m$VlEOh0-YcLRqg zc{_SW?WEA!vt;GPK9|Hnyai8`U6Du*M%gd7GJ&|z{fec~tY0+R_hQ5QpHAs%gWqyXW;(BBCi?gY}gfAh9|Al#;3HJ;YR{Y5@vttWo}oBd7m6R zC~Ci0_};`X^T5~;M+-wV(^$T9HoU#cr*#YkBg)sPXjd@N${?CIq70@NH?m|=2 z+Eh#t*H6j9?bjs4n_3A|(_?MDCZbtrrV2L}i!a}8Lv<66Q&^u+k!T}HXh*+(3BC~U z5&N=RQn1N&jSJ?bKex}1+JcPUy)!gN?B^Z=uNK;s%DESZMT}FSYmsWk$CVAAt-$~K zwu**NeCHJgA$pjjgV{HstHnO`P6cMb?tLp=MShVH5frOZS7jMIau|03MaS-a4zG+8 zv|o#ldpJ!bJcl*jx7Bac>tpw!u*w>7yphAsnhuZ$YNa?!gCs&dMHK8{FWW_hMgpY-P=?mt#fIrR7%|}d0KF-q5;s^7gx|z zCbB@*G~px&n*79YC}pG*wyZ`edYG@mR6QSr)MIoSGVweS8k|T9>$k%dwGPM&sW@qmE|M`}i<5eKxgod$k33T4^n5I3I?KOh>T0U;kbb4gFcf zgEOVKAY1TYQ3yZwkq0Q(RNSB7AjqSo<(Ht3@@er0cfX+>gMb9qfX>oDsIemMovS_l z&+w2E;3L4Me|*>=t=PDvr#QB4562fAGU@ToqxQ5B$}z4}AiMh;upO3<_wPPC<~Tto z)sF)}L&J}o-<7{1sQV}-w6JrE4pJ}=&PD%-sUxn6+8pmr0sRgcC|USxF&q;=dTu@N zNrd#g#PHQ7=ow6+;ZAz_mo|0?=7D^&oqc>{`c&=%k)rN_SClPfWIuzdZMcoLdFwE; zg>FHdTvcCL1G4+e!}*HWw~T7^-`ybXRpNPSk^w7-6So=WqZ_IoKL%7jR|y;2CEc z0w{?qw9crbVe;(~lT8bbM}L$gcPkU)-(j}k+u%(7{0s}E1ElJ@ejXo9z!4Ns5DlYY z0zW}UF)b(wY`OgRf{kj?dc)i37}oJIo>?~Y>W8BaNO_gxC385j#OTn<(b(!x|LQaU zn0gp$(2awg1l<`FUR;#0%}%i646 z&t9#|k2Q7_pk`5CMC)Gm;jqXe(yQowQluVU4OMFJP1&+aWNJ7%byF6Z*+XD65~#^=C^%+UhLg zAsDZ=w4*c}DJ1P^bNI92JoahY5*zl(p{;)H8VGr(E_)kteEzejKLWNTzu!B~{u3LP zbc)pHabh%p^*>o4mUW^K6>%5!f2Bm`aMT0qrXK!j$Bidd-Rb90p`}kXA#TD>y-+GP z4Cxw72(tzfi}l``s>JjAtuLP;GOO{CVa$rqLGJv>pYP5CiFTz=eQ?JJUKAjp!VVt! zk*iS9seSOa@RzdGrn0y~tDGlP2L=72flUETO{oDKia!$kXKm8lWfJ_50@t$hy2}K4 z$$FIBBT`x$f}y*Jrg2|rV26LSCdyTUqvsSPFbXB{6C0ZyglEfBk*xDkI?dvy=9ZCOKtU zZ~Kkhd2Fl~n5UQu{na-vJ>Dw6G)@-&+|o8*u9!v5BKizI>1d6~M;uUCHSMxKu>lN9 zRo6)%5W|b3g0v!mHWcpopB6UM+Or2v^qX7)V@-1~>2H3=38SIL&LUjl8veYDM-G;n ziJ`Gex34CV5%67C6f*XlY(0v%G47)+Yg-=C+oGi(C*;_DJ`UBw+}_CWOXuUr&^Q|x z!utkl!O4(bSc8nAKe{a>{=Hve1owmSJ>mEV4pd&23##toN`4?C4W5MMbp+{<&_A(Y zC?Tn-dI}Ed7j&BQ{nNjZhaL}$2XfS|eipcrj9;DsY(v0XE`RXU4?N@REV$qY9_ANy zq_<1bxi|A*bxEe3G!Gr0OqBuAB_iMmT{g1w{Kzag%!*fFEDpA_CbE2T6^Oe&91{FB-=+$m7 z;6&xdSH1o#L|F&C$JGZsK^bn(lhSfz_c6lwJcf+>|mE%2~!Bg^%cVFhSR%FCUR*Kq~WPpN*d&`|?%g<+n zYOr>fU5I}dWetG0y=ms`UN@XlqFScPO->nXT62U0`hV;B?sPAM@bWyq&9;5<67y7v zJP}?S7&fRTnJ!`n%+g#Gy-$-^;cE?jrw@+`CnQ1!z2D^bZuks`z!tycISxVca%F{2 zKxnBzPsf%iE*GV)*$-(up~07b>?cv&6<<-LnWw64h2vr)B~pbKO9u zpckW$EYfa^eQ0Fhd?twk$9ySuJO&l77WR}@DKbM{{fd2u6OORpAlWJK(}#&s&5<^vH%F^y2=@(pCF{hk`iOi!-A+ zB(9;v<#vYEr9WXsmp&d*XPf;f7w0Ls9Hv%W6&5PbSAMWoxRDZHauMDNHo(YxqrCH-6j7diXvA&$sfq#`TGGwk95QGF6T02-3eZX*^EQO;xNO@_zb zyof!Cw*2=6S)H+vMzn_4rv)WnIQ}JlCW(vmbPy3xd8}?`>fiK87Ex{qt@{w2PvbQMSp4(nKW^P zz(O3kXet^y>;4^&mO?UkPz)*G$g_@Ka377fQRA8n~X-UphBRq#Fk>Ny(+img?OFe}N@^B^kjDc((!b!Qc zB7Ulq$~JS{S%Ql z8Yyfc&KTP!u_wW&*5!kB8D~5W)Tbgh1*h}>I3T?L(&imu$H{MJqYn}A=;!3FEaBLW zhj!K_J(DVm5|eUR<32y7noAyz6ucsNWVF$rt9EkkYVGyv&u~dzZ zdz%7CJh)FI-3kkjDdzC%WFvdQ&GKXCpDSEtOz;Hq5G*O~SDz}kep>1KanWWzgev%k z04?1v5u%a)V5S-hjH^#_s3VeAXLv#SrnRJqK!5RLZ#RN+Zwll?$FC>7a(?=Ts5;Xj|n}g?g@Y1Bmd~Vh9hWo5Rw2f9VJCZm=4s&EcQ1vYDftjyJI*|0Q zYLE4vSR_iw0K?VX{-f(dk);G-J_tZJaHLf(KhZxC`36L_|=#g!4!*h=PX{@L%m zAG#5RqkD6+jHdA#YJ~`)EqWbVWMS%>`lg!M@Spzwqv^r&#Yu~|@}Y+!P*W;^XhQjv zjkbE2q`>@KSP3g_a(sl;5i~I27WqCFy1Hn^dRey$xOV-@IZn8i(wr{c^1G2EBT25> z5q%3cUENN|?iJp@rxEzO2zSe)->w}mAw@Ih700h=7*Ys%zO{#?*8?ciQMr^X(><*lf8ek1 zp-h$MdPFOrpMAg4II>{q@r4KP!yz5uDpG(^A#-3+WevA+C>Pz`_uO=uN2z)`4&5B4 zxvh;)y}!det2ek#5-8MIP7+S;SCoye%*Qd39w4x_B{jbPbG^#gP4l@lSSu zRYfo7??=~DTTiamjYGWBMxm#F7e=@#LR%9RE;Cx?FTws{t?yR$ff;I}s&gLe!CmX) zENwHP`52yd0n{+}cIh?oH^>)%w*zmeILrNz*hyn==Vc>PX2^DdOc_Iyeg5@EZ>$Q& zhbefO3QH87V;&S}c4wuHU?mp32Q99eT8Uq^#saRlo-KXDJm0JMy#>q<$6!k9#xH0a zR7mxtzVhQ-2A;5r*|AjXP-G%<>Hr-6K2rwdV0l~&0fWFxem0PF0x$!j_TichDXWjt z_uiM%5|{CNo~vgoIO3+)u?npn@EoxrhAjGpb0Hk^X1FDYIL*dU*gz!G#S&OA5m~*G z&HH+CXuut&ck|r(Y-r_151bOPIW4Id*u)HUb1K+p8zw~nNwbazpyFgKVqDFI?@L@b z*i2{c=9(=Tp^2@fU#A;okdZx-^w!Ohwl4@`a%agIQ6!R}&sJ#D*IO~QqQ2U#qmfLN z!^@DNO5nIW%r*6yL~9)+y4ut()0(>O6~rznq~)%D2-h4K6P@yPP z%L#eCPZRIALJP0l%`n9G!<=v93iz3~eGRiJtk{?T&iV|3{GD4j(KRBs*I!&!XiKdH z()0^Pi@avLT zbI-hF-I;1H(igqzf8}8e$U67I&dIn`#J@B!EN~>8E?4)qreQQ0OhbMbY(cIFh+=qdD#s+_)t3T0@o+~Mj`o`@_6{1_gao z?@X0&l*z^TDKafT2nbahi)34_>P<3T@u=(4KnVK@ZSEu3R(@r-(?NuBPSZ+>{BTi5 z<`~ker3%th^5sEPpTFuVnALrUP6}ikPnRI3Y(C?9C1C%3T!YgvKq+&h4*0PBH%^4n z6D}u{Lv_Y4_)qd{i1gF+2~CDk5)xm z(6fQy1W8}nHL@FWDUNziXxqt*MN3r0Z1n`~L5_lu#FwR0;bqttp?|fNw^k4TYzeB5 zPg=B{adRdpom41MNDO>+nqW9Z^_h9I0BKu>gyqOZ=B%T(mWui5=?EPHLPoR3%O~l` zFXWmPcqJqe6D!)Lv^3;57YV_;xc)vwd%pbLetgqI7kWFv0@H4Q#ah>*&;zFch17M} zGjQthvI(i~GvslcQ{5vJluS@`$Ge6rUv|)@$#Wis6f<4$gzj9k@3A`z_LfK>4ZV#p zH)yY^IYJ=PYi33^5b_7n>)WzwagZ276W-Em|7$hjjL6A~m1-SPCK7IX@hJTD`oFEC zf4)k~RZ&wv#8|NVE-t;TXqUc)3*o4+ImqfNTt*Z^8y-`Rz4bHy(P|-s^0j~12Lp5-1bm`Pd^!&BPJSxs|L}rM&LBNyZ z65>5n=nR$w|64H*Fs{>YAEA_Kn-9>}S!haFyd? z)=h?H-)iii%6n|#+vut2k+B3W({fGv-c8BxnhY_hIOrEj-t+GAg|fFJI(^jo5VRw4 zY+t=6D9_$N3us2vx&(*mDT=hIB5I=OqD6LFO<^$R-3BcF^C-SVQe(gLA5Up-jK1Xl zSUWmD4ThE$eE3e@3FB!O8~$4`Bu}n;tl{#F7eB9ozCLh?4#J>KNoeKU)+n)JOuBdT z%-h21`rvAAY#2O{zF*9`j2<-1!Wru6p(589IJb1r;Qr<^hRR+rxg1Jw2cA%YFqZz@;qr#N$N$_0|~Gx z&`vfM3WFU6h7%z(_EFvYdI0s0@=jY0=M{rG9V=&pAc>(fubK7z!ywqbU zSeo5a)%BmH)q;jTx$DA)L2ZlQk*qemOujqgGty&29lv)C&zcum5p%ecJ=^oIfwyyk z&Z=nY2zzj=M$|16^2F$Ad){+A8}#ic##9$wN&tt{sg&_kG8y+J$g!c8KjL9<*gY$1 zFtu7(_NP)feY~_vb-npuI*sDT+RJs=yIwu9xQxDhZb^R*Nw4RNjBjXSF#aL;TGkXz z{qAZnbYr4Q$)-7R)|-5l-iP@xkzH;C>W7D&Q4$Evs}Wuwm%w22?TXfMklpc=7=)QB z!YUpXXi_i7PC6(C$U@%6j_5|)!gAueO*OJHPC{7|&GrNx0+?z)4vmbK@|Q=ndufG? zoA^{0d1TbWB`N=)0rrZz<6%fMDDw~dg55xz*fj#y>H5j+nHOQ1{QMILgE3KQK z=AR_jWbm*_U%qJzb;DOW!7Gx`=*8}%5Y~WIiHtDnkNDHzzk6>D+T{a!*8KU|_L?dZ zcZBdxH9Q`P&|z>WDk8_j2i~Pklm?{EpJ}USzHyOx{pj%_WgI`uBNNGx`zj-xVY-13 zIod`uDSPIA>|GJ+&5bXD?mNb?hVRj!%a|@){*FHafiP|5Ao_mUbhY!PS8B)Ej8!P< zaU{t*?Jhy$@WtKNBG~LWqRM$cKjPdP7TP_HB$<3dW%+Gc5lBG7?e14THhD5--xN^p z`}_FlWchoqJ3IKBHn@pf($NWTgLaA8sf+|$azxB8N##MBq)Cq^(h|a~XeNLwJIc1g zbbey+{eN9=>O8Cu+;o*5?BI5EnN5nOx8=Qz74!a?U}@;|1&G9c=$`&v{$T56~PB$W<{p+!ns zM5VjCyG3#c>24H|?(P`6rF(z@$zkYxNAJDQ|NX>##UvY=`A+`xi7D2E?Z&i zI{CSWz8{Z<_Hn@!YFp`(HY;*uSlCYOBDyRK7)$-Ss%Wgz#q39&?<7+@IJ>9N&r_dt3v)glTl( zd3fc-jZr~#n=%OpbyoJRV#eH7V#`M~Slf*{+A8u=8tgM!`+sbOul*!i?WqU02 zpbc2=8X7pICVxsmo}tWuTI8AWeS{;&J`@d?p2(2DdHJOKq24o|FK`up>w4@(owFD6 z*}h-5_*weppYHyHLFg9k8bl)`3nqe#fE4(!S`n>mRPMaZSZrrF?*DpA-=-yvle1bf z%30Z5xYxv!y=kKJwC5)+tMJcH;nik}Qsl(k3K&F#eWtD5| zur|#_nkpqcJ+7@5%6EQ;$5(kxStbv!d`2yv2?Yk{aR5YgIT*ZgldqoofuWkFC5js1 z9DeLrM$02d`vGwau~M8MO^+6h;Yu|vg*|{0vv;gS99}}}p!u`A=F#laLK`DQ)*H>?_aJ_sPHC9k(SqHQn8`sSx)2S`i#`6|Lu%1Jc)o?@0VDs zO^aw>;V)d82V%pNoy4n63(*cElL>Wm4rh}5cF?wubCkxO>1Je71%8#?u+J0d7UN(j zZ;gpy>2uDJB#{+riPKeoV@^CYvCOkME0}woQ}9b$bg$7ah5{^t!|j3{3l=+U^%gC1 z;0!?LUiYl&lJ1WWbi>^r#-fqevjd`(Vw)4F|ydTsX*2uqdjt)sBs z9?AXB7-QstX0^S|gKIq$I{n|s{?c-y|9xmtJY+tb1wgaZ|FS)*Fjo2~&3{EV`MCZ^ zzF5!!?(fxwvE=*&Jjd+AUuZs#nzb>`eT_91?=C77kc(LS`AiHt=eav?{Eb^Qw_~Q z-A#@++{0$C5bxf%)>NLpNRw$ZhrREGm)UV4a5BZX+?%Q;MM}p%D;0y7<2VPD_r>>) zt;s9f?ai$_mgw)b{zUS4|K@EeCU;>D_+19g`d;F1ubHjU#ul=G(1h9LkYdJ6r1Erm zQyD82NP#DfKv=ErRA3J<J9U-{b#4 zU01Y8x2OZ$z5QnNIZO0zVo=hc6qLYF;IzppTSgMM1qXRDs0Gpt{Xc6{jMy^A+G zRv>O!1CRE?_gfecE8IF#yyEZ68Bw0EscQml(%Y52)(m_5#|@tU>jnW_-if6OZ~W$} zzChof-pRx{s~Xwwwd&b*;SvL&bv_jE#<#o0o`wA7aS-Z!Q93*BbyhGs8p${7$sUa; zGn~XYvZFT=JM`<-w_#h6B+D1K)$x|N@dM_&?(C&J#IaWRHeh{5&lE+G4LZHA_KVEw z>8@zVyhxnrj?-$Bqk;h8d)QH!^V`{OJDvX55P`oT__Ke=un#@P68)o}4A@ns&jN$> zakWY*6jH^Ck~kZ4~_7ZlrCl%?uZ3&!%FCpd8p(AwhBnBqLK^M1?YX*)Yc(2dmU#<)LOAG6{y#9V-@J-a5MYV~~PZTWr z>9}y6!GDGVIoYCjbxF;Vg$?LjYd}|O3Jn{27~OG~>D@!d*6p>hoLO^76deWr2np-kTIKS4RAk&|%Xztvy$W%wA ziUyBFb}Jc)Yl3T?suspm>EDer@on93zw zcHQbkSM@?Xu-%tY%C|8%wvpW|9jtaDgOu+&1WF@kM1*ayGi#~PZMv$N{e0>Mqj~+L zMH(P4#}m=<^V=jgO!2}Rx9&&Z_89mo;let0Ezv16X_DnWa{_f=*2p6FzKZrIUU`vN zg_v*6f2B&eUZy6o-4vtv|8V;H9Rbf!dEe15+?!hGD#nktJEN3=G^*T9JjUUBSRt>% zP$rk>b@$+tUmcp4EO>MEnB|diXN7i%U2tXQ*By|6BQJ z{S;uE=jjAPyN=k*N9OdLPA5^E?*$&DUZW60e`S$v^>t47TTuPwMfKPAbX1@VN`cR` z@_}=wP+;J~Hst8|hTblp^yAgu!hoCb04$EZ2{i3s&V3lXq8Q$DDSpn55~X5wqB zy9wLvE$Upa>g5(0nU%>{NeB$0G2&8f}tW)p!*m>CwD#B3FRCCrLfge_)up z=%YP-4IsJUt0q7zkP=`-v7unZj$Jb;;xQH{HuK%u_K5AUe^r&55LYNVNj_Q+K&dRB9c*xWMKIk^7j?T&OEHyelQgpkV{t#D!<y*UAj$P0>@ZMzA54bf<9tHk73gCsczs|9X%|8JE9#oJ+UAZCu&a}u>NjxALUL-42 zFC3hhIgNNkiLN#x{0~LctVIrtlC3`M8Y>mGcyOY%cvgS>k$dK-^|(V+3MWaAjlmrk zbVvuFNeqv8bf7v)Vzka?D!P_mKbQ2V2`v*g6&ThT$EWvMs;5c1IBUQ%x&iymqVtL{ zTb626sjItWt%4||(o*6_wQA8(2Z&V5wuo@$#9fDM<@{<;!&jj|i_+kcZ^P;5yB-0U#QDgWu_Ic6xPSg(5u$vLR zi#?AN-+L1P+!Ph)*1^2`4))-(->9G>QP51ONBrbUbi07E8TT3x)Yi$VAX1QHB!msw z`abyg(cvKaho(kv24hHRBrAR~w;J&{;*`kos-E|+qOxn-i1c@8cNuRHZRau&9;T8} z1#C@)EhmpNM0c-1M}9(7V3pYTDo@1o;)b~cfX*>p{vMnl4OASW3#+vn)XWROswcWw zqy&v~9!mW*Z}ZnkRJORbq6u>y8IK--M1hkpQ2IJiwW#tH7zGzgUv9^m_HEl3yWYx{ zPm;$fKTDvRdSRQoW2l(%OE#Wd4nTXwb)uejz<`2}g>(xq|i4{!{ z5M2AqxJj1%0%{9#T$`zueyC7&{YY>vpFjDGYqigkv<-Kb!8yvn{hq&_B0A0c;k%Zv zUQ;)MaGMX{8xNIdJU00!#hV-QZ<$9X_L1hxY!>iOW|W-Zaig_?=hw(p&Vew8T#scA z?_T!S@uC8GoK3c?KGMTY%IpVrE6LWoMOo(wGpv!8IuEK zfz15Ia*css+nL0W^Kv4(?D^%IR9^SDI+9sg=`)PNrGq_)>cO=e%8(;Q0D5V+?LoyX zXnM2*2cu9H`qkyiQo>i8prbt#cBA9jqJd1bOSWiA17$DM+kJ~5=L6dA9B*zSRJE1Q z9j_acH|@>|F|tfB1;q?LF(0Y)lhy!3eEgMCFDgI&EkTL=OFTtmKjJHtNLiIAMGra` zQU(r3qN0@#h7P;xhaceW7-@U{=F2?Y12nJ@1Gc<@Rof0|{5Yy@Rq49gSxL`%*L&ps zn|lmM946&|Nly;V5>9`INW3gy@W(CEp4y5g`F1R@@vdv0+2WB;)&8;fZ@6_qU)+yQ zT}rM}ZP7OEB3D^}%RQ|&XGPA_@h05mE9S84ornk>nf619i>q^l`H2y#Z>k5f<`$wy z(t7^cjmGk`$Ot-os&Dvow1rceh?f>%RN&;ll2EMl+Xu}i*X8Z%bc>flMqhG{CD-`jK?&Mn6GJ*S2TC^1ZmRG4b);;{>HW zU0)GWoZll?`Pa`^#7zB`94?iWfo(-VZAVY+gn3wK!pEk~m(J@FzDjiLV_knc@EZRm zblC(=2`eyJ(J5Tm*6b!EY+-W6id|7muM(GP`Fo86xA26-dGo!lH6IRMclY&=PWA4b ztAeTx%6a@VzRCGFJ4|N{38ynK);+a|PMsUsVk&+fZ(DIk3`$D+mkU zrR}6a-aVHWh=Cp#S|Ef!mgdc@Wd)!9v^9cb6#~)yV&-8?AWA`4TR`{S-=xhnQOvs* z`_h97o;1at<(c7~$fQ{mHD3&D%lLSC(~9O-uLV7FV;1HG+?)vfgkx|s5GAg8c-!)= z8i%PXYZcsHW$_YxYrai=bfROFs_bS39;ll3VU@txH=*^$-XBskl&@%oi+Dw7`@Us) zdTX(;Atq|!@c!2ocX2=qP|YW{DJeO+Ia_sW`O@dlq_XFW|E{ZQCT+s=X^Q_0uKBJn zpIU)5GJ)oQ;Lna$rfOs(0uTHbc+2CgbI3y)n0 z$O4q!Zg~6os_Vb+GJP30>gfBdeU@-@VE{$s(1o&>+3=-U6pS$N=$ctfk64$3R(F)e zXVkb;BBevuGdpeo?k<{QOLaAkY?_X#vrD}6t%_?GYo6nE+0}>%qEhW)9{du6UvTBs z+z-*ACbZf{_UG(~|2yIr;QZxtw;4DrL24-iZQOC*GoY??QG5PLBqGd$ak4&vJ(IG} zq8u|j0KrQOdA`t7;{ctk7QWwA?a{zSN+uo;?SANn)wg!irXr57K1VO@82VSKuQQ8P zc)Sx_Z^EWB^XVBFTsJ1*vLf{5mz}d?sbS3J<`!aAoscGB*?+6Cf3!urF16yD-0Llx z4W4AOfwLZ6@T{JD>>b}&L>|2)zUQ<#&UZ{s^~Me%czW@zyp;7l$TtWX8X!{0zuzo< z&#CH(Alxz$Y#zAzdfPxBx>8DeQqZM)U_bs?M(19z=_^#!9IwthgL{I-poV=T`2$8i zA(ck0XF^@4T1@uFq?0EMBpqf zx~%Y_0Rj#ZKuAVVd*HE$>aIkvQk|upV<<>dszpn>#rm;sJ(b^FDZDvD(@Fr>QcJL3 zF^Cjr)N}2C8=3Y)W*y_gps%x>1BMF}zXw!59rNo?V-;@5;!g>-{UDl{H$jVi)pX^of$hgNk`cE#TTS$%HtGZ6uLmi`bhXT5LG zGT6o0rgE=7xe_>auRgtkC+;43=)K)}E+2_83H9*kSDD^~?cK=s_zAqb`UuD_ISm`{ zMOU0QI-Xm+)kc9_UBxn;^xxzBaXkHh9q%bdB(o}`s8!OM^+F*dsVlddX>PP-9Rkq| z9Q+C0n$tuU1xU}8GXsP{>D~MYhMkyaV=!muQ+XLi+G5~na*z! zvv%}7#Z!!528gx8uO_KK*dCKhyGO}S2Ax>-E-%n-1fam6MaYdY2+--}f|mbPSjj7uW2 za*I^>(}<&xN&Ft|RiaMNX#Y|w@n_TE4?Wm}SoFvo>)rH>h{-P5QyY^*IccEbtOdt7#U%yxu)W+qW0!61Iz5VrD0CEzgY zQ{|u7-NWG&uHr{2byShcy|^z=Glg8(1;+4#1rBFVbqU|2qeGuyqf1wJq@j#z4(CCn z%;A<>aO;(gvzBftD3{$6OmcK~cK70^hq&0dmV&+poXj|A9sz=5Did{Y84YW``{^D- zna|&flE@k}rRuDF4=TnHyk0X2J@p`qQrA8LDt%^CN{u2nFPSH^>BVOc!cx?`eBK^8 zY(6^59tja&hmR3Piyh&@?W;lr6A8Xin(qq=Dr-6>3%Yj6kSF<9C(?m4F znW&bA&7J8tyU>AbGYYxnEaB}ZE)_Z@Z49c zFPPu3ApeHvw!CDj{v~HnuM(3poJ(X{?L%d|Vae4+;S`df+)+18UCAcWPMlncpLJ6z zX-EIEMxuk;Go6<$3Q*c(ryy`4Fvs!Xh23446=i*18N1K(dZ!fe4Ng~qsgxP$a#KgE zLBP!?c6?y-t>B$?=bkF|0HD(ohxAGHd@YMy7KY53lA5scXbpt%b>`b)es!jFP>~od zTp8%0j%0_?hLUa5K;}6iX#shaW;Cf$t5rAra>D5KeF*RT&}e1C;1l?If8?+|%|NIS z@i9qix>z(DRa8i_@pt0^^zKowC`qn{Z20!O1U0N^7!TUM@6096UlVKl^wIw_($t8g zJe2251{<4M(<_f#2HKXZ1ob$4>l5FuZe(!0dH~I;X2xB%uqo?K9PrKTxSUrf$wmZ8 z1rm?yfRn0Gb(Mt_wDgIw8)~TLw(g0C$-v*D?hW~U8G_JW3zL3!2fecQ`)C-gbA8&@ z6uGeg%MGY{{~F-2n|_NqwtJh&CgQ98s9X&Y!Upj6#WAekNX zBm;}+gV$6IDM^P?X3sCL+TK!e>C&FEQcfOJZY!y;!HwAO>TUGq;-oAkAcMILO)nYj z3yzcVD1UfSj%o+0T5=TN_zK#=J!7CPZ06V8-o%6_R75jI#+3I%x>4=>X70iz4&}^T z11ulYg9wCaBk`NFNPJWVU{0DLr3$Q(Dscf`-16&FtNjdK?C^?o03f)gvjR3%``!iuRZP&PJwqz8=nV8cd+Ys zmk#4mag)%@9F1PA(LSw`R$Z%l$fF= zkO-z4PV%70p!$gHH$`(CazF4j#D;g?Kb8u!y>yUa=V98AbSa& z8fv+bOm3I*R;k!YZ;b1YE8ej~Ay7=e^pEbsgIqa!2O*tuGfsPSO27;-0^~}WA>-&e zCKxSnkk$AuI`Y{VWkw718r(Y9vhCT~K9t5PeNrfL!6;qB6YQ+sKw4ps0#TF{0h7)F zh-;UZHtsvt4lBBrOZt>FjN)OhTJiBcZ=R?x@ri~H2^QSj|2Ta$w0=TxF~oIWH6<%K zI9zTI09+#DRzIN=kOtbYCVQEBX9_T>cx|X72o1}5ZcOXeVrlKBm0)$1d<~Fs<10!K z(7HpXcSF@h~5|Yp*rq!$h~Fgq!as0rtTri%zU9kid8i3HQyI@lv3mUx8U++BXT8-Yg30dzIR zVKnK;-#O0r2c-|u%A}Y$>ueQe(+cIrXkt$b{dO8{vj({Asy~S$9gy1}H=BtAqHA;n zfz=)Jd`J{S_`%4rwcdzruAZ^D)eQFCH?Zlo&+{8Iuew{sqh5BC*N33u{^SCE%g6O9guiGWH znf&dZbC{9meVy0L$|V`~+lV6nY_~T?Gg6@0dxU&Mx=f(Mgke3;WjQod44YNDn_MUm zlaQ#;COCF1fsXa@$ou1OPo@$%>eJbKm|>4Y1*B_?{M6T?yZsYID+3@)<&yn(dn(`p z7@2MeHV$P7n7>bSRxmXBHZS^dh~J9>rxvx+;{rIQABc2qeU!9*Pvj#bA(yB#Zpdw0SQ6@!VCk|DM>}$E@BCo%MqJq$Fg&hjaUB zzQk!1r+mm(^8R_`_MSLPOmI=6spxgX*}{*r4JVnAiv#m5hS7C9)xZKUwv(A;#qH$A zYaw4ZO#O21xuQ80tH4Ecx}8+Va6}y^>!~zuuCw2y=m4Pz~G~o5#18bWKE8o$fF|RspmbTyD`V7-1i(+3=zr; zMHj;N1J1e&lS8wAR%*>mw_~Eh91*1B0#Xzvcf2*v3*_m_Zn{l6R@upKIrr=r92LUD z$NsX9Ti5p}nty?&`{L&v@I^mQWMKQ+f^ZA_*rluGBpAKOMLPwKERGkHh~&KTn@Z4@H5_cM0zN(Ntg zd%f5HU`zl}nGi@949WU|``|mVwraMVw0Epo$}d*`GqNG3u~gXp?UU9;kNpy$bWpdg zi34Z8^rDYt94kZ}I0ir+QSF4_;`3Fd2?icKZ1NPbdLrDXd2E{l{mUH91H04u)?ElI zkm25j_R*(~8ZfPrkeyUS;*HG1T5bPc$tZ9{;+uNRktRbU$L-m#)GF@(@(mSH!2f4T@(HmbR$To!;lpxN zr6v#rhcRfigs!ORlxyCVU(a*gOYAfeRkO!@J^@&WEBh>62$20`rG%Cp1OZ8gC0yoK z%*nMEDPyj|J2vp3*luoe`-!ZgFoLsh^7&Fd>&$EIl)UbP8n~;^fp%3VJS3%^!zfY| zDr_QXP5>|s7bUt2c=1#46Y@Y=Tdq-Txu!$8A%XoABIbBIs)|P=ZlvCCq@y)b%M@tl z1%BB}iXGYe6>#*;)wp|3td&DfTZ%Xlrv{hkZLQ;Ri=oYDn9+SGe%ZKUK)k|s3GC_* zxstKMwq?&2GiLxYU(!qb)xiGLKXAvkrxS6j+4JF-g?T0aAk&u0|Lo?Qq2)}jKG#sy zPJ*F8avFW{p30bA>(6V148vg7*^G621%9TN>M7c&&!PG1Fe;F(!8`*3XEt1KZ@C=i z=a>^?Q-=EE7!s(J2f zqL&Ad7vn%>uIqm%XlQ3qsZ~X{pdXJ^I$&QkpfVBuV9S$M;S>|gKglt&mE2cdh0MgY5G2n* z5uvJ@g|_BrNESD!mzr!SA*h5ClSV1Nz58nrdNnD(i3W?x;-O;ydHMHR2JHy{V++1$ zi7^fCq-Jlb5wTdECVXLEWtVx>x`S7f+--_)nb~{q-9EZ5k?Rq1sM3Nq{Da28ee1mu zhyWq{Y^{f_?#3%=Na0he{msj%{2uDyCrjmW*n?kuJmh9D!Ip{JLyRv@06tGyd%S8|jVO`cQ#_{j*4hD3m`Xopwy4=43fL0}zzh++@o zQ%Ci8NOe$m`iypQz`uwS{6EVvtJv^G`x!xQXCY%d4ihVHr1GTTPjkVo^tkyxlod6r z+p^vO&+z?iBXd@_a2*|5Xu5Yq(Nrn0RGYqMMeU%9C)OD6Wg~1P=ihgI|7L-N|0wK( zGiOJyzsH_^(}{cQF~~|pFl^-#n6YvwcBa0e{UQH}P}apBc73n_Rpf`ns5ym+JfFBxb@|BqF9pqEH&&xGy>55Kq?<28Ge_To!oe~Q`$IeQR2 zA&1Lw8lG9qm3AyR7EM6QeZfZF-IC)fE5Gp51N-f9OS8Rx4E+emQQ@rf6FH&63pU z!Wl@*1IRAeqAAGq3^p4GCo_Pj=(GvQND`qnf9eTzh(gaJ!26BqHb@}k!H(T>ql^F7GcMpxJmkA5{YzwYUoAzj2|psaqzYWpN{`>W9Egc%#_W^i8>4k*hFlwR+y zXmv1$0-@wQll3+wX&e04YG?juwUia#w9L?Mw4aqlT(&v8$Jdhf08Pxk_a}GojJx06d?A2W?DN?<#R$#d4 z-D1;D?)4!y@Cn9*+%T?Pp3L6gVtd^?!K&+)f=}X(1XumFz^aQM7H%(&(ouh67DExUh z3JK}(R_Yno^0YqW_3AtOnmR++v2`L;tjMVVr?fUWPsjYg1(>oi(LeH}qf$ulKhQmT z@*n7~1c0(NzSecvQgP+*{rLPMOf8o-P2SDsn(#wO*AHy+$(y>Ri~v*vtLN9{D~oL6 zsl9u15S@ySEo>4_sC#HUd?;vPPGjIpb+mXchI+r_1X3l|aKF}oZi5>*Y`8)-fDHYhh4w!drb z>xt+68>sfI41N2mgd-yj;A2MHLO@=8A5ITCUg*| zkphANV8e1HRLA@t8*^@nepYaG-vB4@ztETn{yGX*ll?u8Ev zYBH+evI;vbJ;8F`f4&9D0}^m>_Y1&MqhcmfBw2E)E`r9?FgY9p_>I`<*k@7(xVB9E z-hGu?icRInOI{V#_ujkH3f^zyU_C_7%=YyKc?MRy3Y@Q*_jWlEpv`M|i`;EGeRIsp z8-`T$+gs^7n5jecd3ySZxcjhvAAx7q^+we$Z*qIr!)GM-VHw+u%b}M(4OxCsXCr~m zPabniXO<-}=&+<8j5x5oHnS)TFhO7XsbRb=JxhD?x#6wK25Se^B@>RpC!qox^4xzP(rPICrNfv>+!H26b2z^#aCrT2d|3fid+MCR=&5CN%Su+RV)g;%dCAi zE&v_{X<~jeWBh9w;`hm*B5T>DVs?2Q}ZV54;G% z#$j&?4P;*Xthm>jZ{=T()xC4zU7f_iTdTXJJ8$Jto5IedN%ZbS4+$22InRnZs`m{AN9%n3QK2;156~ht?13Y zE7;5R-2=h=KMLED#nM$_0I&pSBD6>xCaS9E!5s~*0@cUELECd%gDLf;4Z5nQ(kvch zd!j4!b8R?Q=ByQ!(8PLPl25~|yc~w7N(Pl`6-B>!?QCkktwGunLC{@NXz)z*DbRxf~W?cJ*x|0AI;BM@f z;K};reHf_V340ysW@GP{yxy!5+59O|1*x%f*RXfIs!Vd36xSGk5 z;1%A(R{D(pGNIE0Yv~7EjPy|)t)b*zE02ffM2wLIt6VDEl`9H(luKs-`0enr@3~I3 zj5AGp3Q`2(DX{#DWG=8V9`R2QkW2r6JY+z2AeYO232l1Fe^?OT;%e`v@w?s+db5=F z-mD3}a7UATQhg$PaIf@C?p#pwF+NPO!vbnA2N62-M?{_1D)o&2ASp!ZXm}jhCmNbj z6d+vGwr;`-ZeMfJqq|-M^%+yfoOKiP_)9{~U^YZF>AmpfF8#N#CM|WQrNoHrBz*cl z+vaGm&by{(K36|m032>QOxg_@40ngsO>GxHnJFZwLkwe|EL?0LN}`vM+|XV2phVUQ z-UwxBs27M9xI-JoT@rc{_!5d89l~Inpv@T#nOvWrT-Q_9Y*DYZ09GhJq7jF{iw_BJBb<3+|KZ%Z5N)pzI94h(yRt{ z$DHI?l#Y9Hn4|pS5#t>Tto8AAKguP!cnuzlDvNxBc-*q49`7qcSw{OKiq7f9{L(-0 zH~489rSzZJ^R;`_+8VkI5!`aYWlqB*0`a2EfPJ%GRdYYF5tQeaiyr>UFjxFYeVfr^ z49&^Y@%Lk;CVy4SYSA$d)%;_pEIp1T#~4v%AMLXsJdV`O6XTpwR8cXy!}kuM+e~!) zXZ+_ez~RpmQl>ZXEul&Iqxtr|qA~tOyY9GvAk($BMalz=~3Nl(t-EsZhJ zUB*S$66HlOd8gf&mJm_0(j&+kw4OwxHHMDi?P1oR0Eu1F=`^FXMhle4x|EE7qRgWC zX~He8^8-gx=DMqwvg~Grz*0K!u<1tV`G*efY;niQc7q8I={<|xW5)qnSI77A>EIRC z_kR--jrjjD9$&Puv1bD*OHZSNUen?_inj|^f9SXSVA`PLfG>_)5K1r*V`2~|6BADM z<4YixB?;?s6TN8l6NLN^*3i%v_Sl^`a5avuWUT;+hEvg_^#j3flnmdP=D}p%@4?;q9p{y+Zrs;dL?Qkk>=PkMb+_Zdi(@@jac;&}zl|hIh8V^1dha zqmE8QWxZilD1g8p5yG;ShJSekI*m zpsxInVYCzfheB7VABfPOdk>m!-|FAz`mB(gLLd7gM#COuEMnJk6|>b7PC(20&l< zGm^84TpNC6TD`K0Bh$z?f=~5UFuC{pWVwi6Q%RXdk#1>+a%ESbG|FnsvM!j=zFpMy zHY>w$((-hEaHbPo%~wpbI=HS>_fG7xZ+$dUIST9)`hEq{7IYA8Pxf#St4?c1WGS)o zINtB}NrdiaD`pv4faEl>nrnMAa(cTB0=!(p0!#W{Xc}*1o~b*iH22AV1fN)}@4433 z#CG3(+umfixsYQYv@jMaSi@-}>t6lH>0W#6&gXRL@Eh6gVkphQ-YPr)Tklf)pA1!- z>wlNvp*({tw<@Dlk=MvIpprJxHu-d^m=;(Z+1X+03Ju=EUYL<7F(k;MVB)@XF}?jU zy!0_XlKN)HlS{Cd_!!zcC`Z$$0uaaRT~E6(81DNTN#}X9&kp71yEn%#D+iCyuG*D} z9O6}-Ndq#Ue8Ew7zz319LO+G@V}+ECOl^IFh z4V(=+T1yl}?(b(o{VWmI0qM)tow5!seO?NSn{U-balEI@lgTvNFG8l#gkJ(~g1*-d z3oP;2aS>NB9C)l-vct^PTAyq@%b92Cz#W5S90y@!6m6LNrn z4|V(VN~TH3kIy8+npuYYn)pbGc@%l=Rh{SS!UFAq)=4@&%i_VV`s*x#4&tzZ_D|ud zKuOm+!*^}IzT16fM^Jy?mp`I4`KI}yJvzS9h>l#u9s_txx2j}!_az~=#!MZswG&P) z-m*5y)!j?JOG9Fx{t@67f=Y#JC0vL$mxogPR>|rGal@W@WeKQ06@Xcevjy$0?iw{~ zb8t+WIdp>p@uWXdN+%W=ZyZ+{h7*nP5$hl2;MhNGq# za1J%P8^`cvutEquy(iEdi2MW<`Q>~OTO&`KcR8bbE1u#qhfbZVeA>`eG3?r?9@rF~ zvsj$;5||8FuB%S$y;uGUI&?^Q|Mj zgfRB*$*tIs)>E=p)9=ZPocyn<{ZUAqtEp0+wI}&*$G=#{nt*>G1~7SM6nI_DM$Q8r zO5Zwt{F1{Z75_M9id`eO z-n_8p@M**MbLbalNub^tzkc}?-Yki7p4F_{iHYTC*X0*;XBykWM z2U?*}IP5*Cqqb``LAdWls(fAbXY^FafXG7ahjGormP3o?*7LVbqAEOhxU9acv8KqVifPs5UmL!kh5m(_*A%j>n2HHxDA!N{H5@WPI66?TE8dO7`XQkw(`akjV)bvL*r#GM{%F79s2kI(&6 z!jIPr`oHtK)|jFV+_ez5(ij%WENJUqPgOdS3rq z3f;l1S^3*+GncXarL&y>%6)_aupa-0_&A%-y&v@`97vd!v(KU-cqsIEG^3j)atkc= ze725==HuO!T8t@e?^-`_996@N>=1{IDiTweYO6u)RfU#mk^2w$2jOXX8kKinhdg8u z6{qfeVE137=`|LV7M%R_9g zyE>?61NN)0T}`JzK>$c;H^L;u3=8?7_IwCu&>aG*_{N;s_($~B6Rit`6Z)0cxmU$O zF-U+V+`xFiC%{zgVDZFLvZF>Pkd0tV4)3WoKHQnuVeZR})1bB5KTzx|@?V+6`vnq0 zG^){pxK6Ysf3dBH)A6fwo@w(ayLuO`_zJ6k#TD(|2|aV$l9;vkgdeLu>D-T zV$c&`@W&-4Aj^iwCtiwiW?L~w-00dl%F0jOJ#h!;x@CtU`r3S}xAxjGg_f0Fdr;+` zo>ojKlfRKx4g9LAVR%pf1Gz9M3LZKc)eM=dVsN4rCvd9AYKUB;S3u3>5s~1W4oUDDILu8uzL$a`*(XG zbo{zJ9ciN*T~2kN>AQc+AOZhFWR!O^tRz&%=rzv_&{7U`Dl3x+Bu);irY5U7$-C^t z{Q&BlHaCxhv;C7UlN zFue9T8hN{n&}j8pev1X0&6qCE#jLX32EWR11G(`sI!OzuzRA>neS$}q` z!1VVOlJj*mNtr+IN3XO?D{pa$dU>NsMfvG?G>=zudIu+R*}ZZQG#}6COFj@&_0Vta zCpLOlLt3>V8r>MvZBXx!=Kv%7R7THi*ldBb1!qiD-NC2!GFsn z`oMR>xAHwkt987RE^Tk7XZ>9Ae5ItyK`jc;YGn01ncl8^_mg*@zuSik)p>q$KgTMx z%yOWTS4g$^MRhfp^{`zUF=#@)3+*{ka833h{!*=xZ;r`+eQvl|4F1AyXBAsc&f7($Ho-T5 z_}Kl4#xsuKvr*rbY0uD5rKFv+qo2Pw9>Bp-=T~dEuleK6Rumc4=p)kw_lmBJAHBn$ zs;K4idUt4NKIFMU{o~j-2AGNA9&rQ$_f258# z-LhkIFpHSKSUi;>Muq`z5NeUTRTvsSIeuOWr@pzaefh=@=%Xe}hf|j_OCIMS5dSVh zF`is9#9^bNkn)Gifa7`FroqGeQok`TC9Mmm_@k)z=v)kv}Mo(BiFF-9de{rvBTnrEu6o%#K;XWc62(HZHjdzl~$h)u$B%xx3{d>}$2? zUE%r*4z#}-&bKP>{r^hDUQs4LI-n#k*MLxseD-%m{*wbfXu&GdADt?iJiyb}rMX9L z3`e}K%)&C-)~M#hp|dK>!-Fp;elmBtjH5oErW9`R0$jXX)!rJy_~ zJK|fgf1fdiZ)zCZ6-KNMa&If1Vi8JEQF3`u1N}QS3*b&Ez^Re|)8mFKO?@MCBK#VXYDetL=7T)XX zAA!totF=TCyoCD~&Ld4|(v4ImRP9GCl-A9uJO*Dc1SqmLcI=SB4Ew;cZ`3x;wfmahAv- z2QyI7YX2kQu(#2~OPBL!+@IOkxp5gU+clGd1IN@BZt<)92%6Ll_5W%I_ZI{_=J})H z+kcdO!r&?)qlNl(#Lso*X?4wr&!K9UDJ%P0@<}8?a}6%@n{r-HdLf>)i4DRM9HSHa z4{0Fyab*31z=Oo}mtXdKv`4h8%GV0G(|5Phea-9-uc|LR8O%p~Y`4JMqN^DmPODVB zIRB5Qs}5`O{rX~npnwR7BY%K2(luI?5lVvyQaUBEfJ^_k6TWcgUYwymqIel?+Nf5{igOiJ~h@PYwr z)W&2&3u*HX9GL0&?d*?%0cKrO`)z45pWPA^m9nGkxZkeT=X_0eRgMFu#V~9`*RGYa zl}vgXn*G+7!xR-}F8cJ_;0+>i?^7xPXX+G9n{nPyR)?oFKQbiWH&HZfQZ7J1l$jb$ z;U}GXqYXQ-D$cg&#tpcc<>N<73%pB^*_ABFFzmI;^os-ag)g0m!Sgj$T&Pl7sZwdr zvk@H4=@RsK?d3_V$?QmPT+76AjAW)2b<1-FNbcV`V2wl(EgMDrAL_k`+ZB(7w6;dGl8EqB8Lg!Me9Uf)=~# z@-<4Y%MMX7LbuJWG5LAk4ojXQv&%|m-V$5D7+^eh3MpteDZH1~^Dw8o{F#Gf5-SRf zq)gt&3{X@|^szkUl>H^`O}Mpq?_Q2TR`YgZKRk1a7G|GQ21in35*<`t_*tjyUny_?oaukuy% zQh4|*ZPUL=Aa#b$*qqKi2QNg{BwXZBz5jw_U9r^wanHJ+~ zvhK4B7nzm!RM=X2JDEF^oU2VR(7NX;CF9tP)9|teoW#@WaXx1iU5g2Hc#4_^>+u50 z<{FT%wx8hA7PWqzLoOBx*>t}xlgO^;oU-4GaLA6DsgR}=>}9v0RH<;;=mFQb9fC%8?g z1shxgMTHpaf=AzBoE(w2!@a`L5$ePU}J>VsZm9W0CS3|vL6W5cEe8MKGzYL(Q&5q_xA2ZpeW92h%W-xEF zzppNWJ9GKUGcD|xcU59tL{If+uY5V+@9O9_3U|3lb%tgEt96s~s>1s-AMW|~1v0Mf zuovAkxLRGj+6{Oy`G5w?mZJa{J4n?dXi|G`gBckkh#y0(*;Cxju>f%x{Qy|a<_B;8 z&jgYRG~xH!fqG7T3=V6@Xb7ELHg@pd6hY-YeYQ~zOiL6}w^-mGKWqMmu=@eJ&KedF zalc-$Oz7CqL1fcO;z%Nca4ub>!C1TjLpPYU;#%pad)@K=PhL?*rRF^)%FNnjOvKo) z_sEPNY&=Hwq=|vQP5jS)uZm7<`T4EQh={_<&1e<2*!I}~uASjDgCTzP^>95w?`M65 zEn77U%N{$8j(=8BV~!@ey^RaoCT8CgnrUq{rw@5KIz|@FH5z&-=!Iw+ zzaDyELOQ+fUHs0P32VZ*E2m@LI~g?g${5Z3<|PNcM$kDN=A*rsqY{0Y-wn|NFN^LN zpahSkpSSpU<=K-{o-D@BWN9Dw*>?4*V#Hb0&qD^jzh`3qeV!0slYcAaLB%DvBR*7( zLU|2i>kgeB5MOicBBPjsO|v{2qiE74_({m~X8ToHo-C1eg%3P%-+V67xrsEXpF?{; zPV~dhYQ(_mfh9icC7e-)M+x^ANT;7&>^$S=u+HggA(Y6trZgHDh9hk9p&S$1*Lo>w zh-nJpvm1Qc;g#t$!Pab|=(=ixsO#&&&P)lyrZOMRnLfI(SwGnDiq5HPerr(M! z^0a;jQoh!Ad9OPQfldTRENu?8_z1sOjwh&n*;Lz^Q`D0Ka0>WTRS`}1^s{%d)Bdnx z*xCo@8MZY0`x(huNotzSdvhEAiz>2f)~CjvEze=fVLn3K$)5XZ-4NK}`cEonK3Cro zXXc%7@f`}sdPFC;?Bdc6ncP#5jsOgAObE`2{}(rq1wg=ps^r(`tjjHKiK^A}e}7 zpd$pa`qO;co5Oc#yhjQ?r>^|o7vGzB^RJyYjQ|PVq|O|_G$NwZvl5~;efm1b3!owl z1J|twCnga1#Xt4A9KyBUffH0RKKZA=DJo+74wvqia)%Q2dh7Lu3c@^+YqjALwnCtIGWA$1^M(FecVGX+= zJB0>Bw)!jT-P)i`kYi!o>B89ZUKd7w4;>ul$u{ZvA^WV)QEKT(a=F{KhVu@!M}^KS z-NjO|I9>ho-DQG$a#bpkBw*5Ys8^t*zbL^M@h{?tFO)BGzCYRzt|w)e*GLKM*E^JP1S0XH#d<=bWS1}RsRdp! z(=M$q8AotWmpvbC_ksTx{t1-41LnZjepB7Hw)Yo{*5z0u+NC0d~BU0Y+%NHmiYuJt69U~%8;!eMdw z+$MO|-}cx4ir$`uMMw_kpsV>=#0*eOKuLz`vFT;=IIKPEdG07-$duUe#oT`6pFr{c zU&!OnM%$LXxA84dAnC)*OX_BwiVFDGYt(Auv~A3ox0)yLNON&D|JM7NH}+nLc(5)( z3F*~Eq-L`{0yXl27CGH@n6ahLp$J;ur)S1YWsu1&Ur61Kw}e(zbH}A(bdEs;i9z9j zv8#e^6L8fAozS{Q9BW`uwD>Tb6Bjdb`K{^{GN8Q>s~ zgS!5k0R)xA7?btxXOh+Fy-6;4zDP&>>ek3txuiFG-xM1Q&h&4frRYp5l}|I4`0Zr zpaG06UwM#9n}Vc`A57MXr8eJJbewYe^(dvXn$lZ3iR^UWhcRF}eQCru#>RT2kx-3k zSK;RMdlov+5PFliCW(~Ii?{LS8lPVeO_;>aSRX9-|JiN*tV1wHukdct zIAdI6mvRygNHe(uN>9BE#5v%azxf`xqA$D!#j89U*t)e7cl-chl(Amlb4>t;0Y!;A z93`CwiCEv{7rwIJl_)*&C*qdY5J5K`HaG|}bAK**J(~*lWM90q4MC&2T#}Oqfh+iV z!g1sOs}BZdCMKNSoxLG$j|lkW^)N4#;ur2^a2s!agSbs;1g1kxv%r?_H72))La+qN zI-66 zY-KCy2Zp6LQ^#1#gp{g!p6obF^SmvW%;wOm#t##aXt3|NINLlZ9)M<_wWgZC1t&T^ zK5BG<@7EG2mBB&5!2dT$2H-DdJk>#I7Af&{v-hyBrtFBlZVqVe>5|jbzx7VYAV29`}A$-g_w5e;Z zNANTMVb-{obbLyoa)5M^lfJFH&vsSLTRstQR#xxWClGX=7{53%dJ=%1pl}o$NkJLw z!;wq%eBbjW@O3jU3y#z48ZzvLh@TiVnY0$(IhnWY+8M`_Mfeb7q{}M$4x+E>9)L}o z?KDIsFpc%A=bfdt?|P@W=I)%L#tb@Shv%*Oqu!tgcK$lFi`(>I@5O8xp&(AuuiLV&e1d~(!FZi%S`wqdt4l%FQG&x?BW z`tI{Dr!RgZx}krn$1%Ja?X^~E+DYHy$?-M4X#GZsaHIKX@o96+*Ru~pfb;z49?cP3 zpe{$M4R|MH%~``1H_wukb9%g59FZ9rL-y2VO1Vte*T1g+baE|xV@JDUFQv=M7%jFr z*DOl!D?#2MH`%=XE!=4(GM5%ESv%gxh<%wpv+bL3)@qn&w6Z2DmHD_%;rmpkeB5~E zPCtKpkAG0B8mWde-+&>*`*JvlNE zYm#TKej@A|M}E3UbHl_M1s^j|weP?s0h*rtK5W^)7=xps-+#eTdQXJR)6lF7T6A;y$3Dk4aQTk{xzQ;FUQTzmsQQOv}^ z=NzkDQG_Pg)r1W-f_v=!zeWvK4qX`GBM4@VQJ^&R-v6gmZ%ELR@A>ZKiUQ?nM$ zHd=QRWN%)0CjFWkYrrt^CUguCWj7xjCr&jy#}oTj-7y?GAd?!v2DIrNYPOh%RCJ`t88uDN?dBUw*b%8D+Mf>5>*rA){(t zHZ&D78OyF;M88RV^5g2qb{SB%1;1n%k;kZlDiINJl3j7c!~7G$q6}k_N0V8y#m`^! zKib`VA7T?77A3Sd#64FWR3x1(*sZsoLiti~xtR&8jf>!C&3K#>F|y%D@w{z4@3Q?# znTzYYMAF?B$+73k_5PD*hwMit!|p$bN4W=Rt>%)ipX3vGTBRJ#o3%mK(yRraL>C)5 z2vE9z&RiV0jK1qG(>7-=ZF~%^qg4x;F!XQG#Cbjc&7LWg6Z}Ocatbo}DR#{|MD!Zh z_t5VmO3veZc%@GHUQfz!WPU+zzEJkD__D3J0)T|)!L?3Yof^hJzgWZA2!vHhM$);W ziz}0d70rOx9M_hPY(=uKE+0PLIne>1jU8IFxwEI)uEQHM_j?;{*Ijqg{2son-%nx{ z6Dk;0>xi=G7##?wDXAIqMVU6AUQ|J20??i)cBH9HhOs8O$XgdS5AgX_`EdZ9P_Fq@ zS&)oty&VePGw;Q^Gq?0|Ue$r8=uIG++sZDd{jP!S58$%zi-}hUTWf(Jpw+V9}TwnKX z0jQachlifBm3$7kXIKDYSgA!C-kgK9Sjd+YO1&4y8te#2m_0s{+&AlhBVSqnKw4h> zpkRYY^)N&c5qF`F1X>g7a#2;&=jbkJb;SvV%gb_0$8m_Hvdlo~# zCcwiE^C%{v%z8)lxFPpn_4wJX&Qo?~0R&l?y+=#XiC#l-JoBM5*^Bd|$h2s$9myp@ z4-`Iyx5kYhVAsq(@>J9f(K+_tqWyiZhd2Iu%SwmBf{*uWd;D`&;7E}%iL@=Se3=%a z?;@LB_5^5nj7tVN+Rvl0q2YEY`f5fg?SkM4SkajMeSxEH(p0c>y~m+mjyQgYt8xH) z&yHOr=f|x#EKj?gqhU~ilGT?Ja8m0yrF66F#i|3WED7xRWFUh6G52cC!1~0c;ae8j z1aiNlR|}E5a-73!?M!VTnZfF`>Pbq7sCIo(=g8o!DZyMqm8s}doZubO6nae+((f$6 z$WrAh@!?(jq~MEjZ+x3jtd+I~bw+K>P7yjZDiSpCoXIEGy4j9TN*`j zM`sPzG&#s=f_UFQ)b1deNfR`{0I4(iLw8)iCS2?V`ry7f9az&km5?P3NZqau#beTI zC41}R0!#Me%jN*ADp>qyh^z7FYAf-`kAg0nfuMxi(lOG#mR%pm4jcoWi}anT3Lbjp zdCNk<@zM>d7Y&}XL$dvL`r9sv*&R5zd#qI=w=}uONV^eQe0A=Bzu^wkUjqcW%Pp(V z-b_v7NU&^}#TMJa6RDZ(qXv zM>!A2bG{VTzqabxwkbzn!Qdpkll>O!Rx z)(|<(>U8FZU$B)Pln@)HYx-sX7o}A>K;D}BJ zgUN1AyOOfQZ-gonHE}10CKEVw;T0_Ras&*YF2p5Oi4dLWJ#TdkW|2sI^$Brt$4tq# zny$u#TV#M%T?CXTw(O;~g}6Qj{&dN&cbix%SksuuF(snUg*WHy<3Y1d(JZ3Db9}iJW##9P z6FoBskm^U%F9ln!vOjas#Lqc7EZUO3ZUyd$lf`86EMZmQ?=a#!pDzXV-CNn*8|1L; z^1l!&5~aenLzFQDEz%WEL@f8nRheDaEsN>YK!3o281d)+U&y^ao0#uzBw6 zAu>I6_6|d*so?qp=aaoL1 z_{H+SuZBW1XBOB;lIF&1wOUB_qFEruA@RVH^(mcbf0;?(2q>6l_91N~`p@Cz6#f`D zQ(k?8p$8R})M>9N;|8$0F&ni#>fb9%uDcocIaB1Q`I4cGMrO>)uAGcg%5CU_{O^$f zr^{3exm&51fyoc2*@o(GEgXGKb??B%OL`Nfl@c{?Ayr88StKUv+D2_)fecHlBT7`u$@hI*O2-Ms#neR`6|2 z6y7_LxZjjqmpOtP1Rx^F(Wei88(Ite*+-ZK=U^Xrg6Pet=%6IM}f zz|~XP8u*LN6*9ecHMql(GSlcj2i39x-JMn@Gr=3&vTX~Gns+~0%olHZ=-d>i7SXF& z{FuU|A-y;Bntp$5%0Y%!59n9f8l0|+=}1EZ_$O|t4>FtJ3*6tTH@=M1T+wA5w4KWo zh1QI&IMKd%l-Xx8ytVeBY$Qw4i@%8_=_)fSB;YY?hJB!Zb$+Jyqc(L_@Q?%2m9!|h z$H73j#mq^%%=vX_IYt+i1M+BI%%GXkb^T21$63mM^g(;sg>&y=mn?gHWOgCb=o zxF8iRDnL+}rX)Y#{&^~lhNsBk&K!ti<3p5pQ;zP>h-;hdce^*r4lbN_ouo;A9t9ys z4=As>r01%uC(aV8r=z$EPYlX$h|SzIEZR|>I4dhX87S|`qxv-Y6>!V92H1R1 zYY^3C)hTcn|6!~IiE7?F41M!3K;ktP!8nHsQ~OHMQ+PWHZ5b^qRuMUjJiSX|Z9+$Q zy#2GZ?)qEq=vAZR+aGtQT8JGpK(aiK3u6 zd`MSO#?rmf#8y8pRAxVRiYGM|k9$&>q)DHE8MU{E*-3^8Qt8c6hRr6&!Ot&dH^6ZF zQsMc1at>-nn2h=c^_2+!$q8LKt7;J&?fVr^4lqT!CA7^@^1>|@D_*qIBq}SF>8b0x zo_+2x2EsTw((5|OrV~nMK&8`f(F=VFtrCvtfS3MiRT`x5Gn;!skp;iw9l#({{+c64 zA`Klz?+7X$o<|MhEO^~pz==V>1rds+PP*pspGc5Q@0gx}LH5H46;Jl}>M@;fG_9p= zrDN7)8Aj-X7Ql(R<}aZo3bbR`UCp<*tOJgUo;@=!&QrkqEl99CYN|K3j7xUlvPA8r z^LKAb=UHmz6hs}>3WW1TPicp%XP9KE&7P|ht>+=MBRt9wOnQ^sW-dQKn3~@C1)LT-y8e!75>I>Ext}ZXu6ktC@vGR`MiY|$Rv4IRB=Im_G@)-U z$~8$|PFfytJ845@X>Ykt$Yw#szMLA_EZ{<>Q7|JjVIbA=Xm*3`mQmjA^iLjS&(=?T zud&%~D0sn>M1BD~1AcnL_nf-(Z4X^14{7To)Nrab*H|CDlz9(aU+i~-fD8<;e#TqC_PtU^$455Jo`QT-NDb>&{-D@^dk}xxrcL z1Am6R3`IA~R#&NT)QC&QKOsf@6B3`M^qt@X>3q0{6HvJG1gcxqpb~_w#3o6^QZz@R zV5Ck}A|x=`b~}vJOuU?so79-{Xwkem>HY<>@y-6ge0L2$3~-1vQZhTdw7jAGHNs~EKQ?jj^qln8 zX1M-SF%&5&~<6lx@7QfZ!A<{GCpODsvKle8T zs+h4pu{=;~gR$_HNbIJGCG4!l=UB>e_?g7B z&?f3FLGImq#~)e5Q!#33Ii-M0Uvww4^6SX+9ZDjVOy{cc8<+|=X1%NSKdw`uj^(Z9 z3Hs%*(feWVp1g`l3lJ!NWMkBM?jEZjMMjfqvX0&PB3?)4g)Doq8rZ<~#A<)5^lbHD z-Z8B-=l)}gw;|65&tj_8KdrkhK9bC2Fj=s?08`+1LzgtQTq2Xl+CMm|)k zQZ1Ag(Js?#{m2`>uvcBiw`*~X;v3qKW{-XtCwJ0ce+lfHi#J+JjC$ahkSfXhL8z=vPHAc zitrmaezz)p-_L-o4mkesCgLY4jknQ3G44g=q0tW~z5?efx7M83lNT$C*yn%km>6$c z(JFqkLjfx|kV7@Zp8hwGe`Vqz@K+{|sDP;1!eGgCCXF2p)JA6{WRpagT!c3DW35Vx zYPWi*2KPh0W#@T|xvt#k>yDvSkrXB6;lncT>pwel?t9)3G7=P#3|^+MJvlgRq*4!V zUR-d4J#~|ikHwiRIK&;0-e>iAFj34%`$Q-pHTp6`gDwr93}L!K#2UsffMRBreGHHHanPO&c<)~K4N6=m>pkGIMj}Zhh_$2U?z1%ALzWQ;4_pq^iC5 z+{umJLvdx*s$iHny&>9tjih{bteq1+y6Mf38?aTnoHWhzQm+v`jPt6}D@0()*vdS6 z@g{z0C#~nQ?wBv%(HVSf%dH>j!8mHTE-28?Y&)mIe{xPWCg?L?y=)fSHebhWe|$C> zl{90mdDS?1;Kz`mCZoP~+&8tX8G{LQrqh1TG4RN<>X|ou%lv>_ei8D&+M6c)^d|Un z-MxShqAv4KCzWSDatrTxt)_|1rwuf4Z1{aMM|fOk+}CT6E2>1NSwV`QCC9dIK;)<8 zKlac+9%YvA55l*!<99#pSQG@ah;&=ea|%>V|J5vpf3L0L-O8K3@9x|z+Jm{u9$6ph zGE?s!CcOReEJIjDURmZk1A5Sk4A5s0J(a~17d>1)TZ(95nhBpQfk1g})xS?TJZFAf z{4;?l;$!)ix~n6AS*AorC~Q(7wtWjf(8-J1D0W=U@Y(kxhQXzSr*Umc7}{Uw)-aAy z5{|)F<&+@pI91#J#(a8aofx%!r*4Tb_m0;^eNl>0uaRcGUA7Q-^MqJu@{!XX{GiFf zQh!Cg-^jIPn5|78NZ&UD6(Zd}_LFvRFug&fhYZ=_Nu2Df2323|#5>bE@Y}sfcjmgY zo<~2Bs;5iw6Wjyx{;J^Gf{O`9Bc8?ft}^rk7b}EgxMZKpFsjqhYxKCt=xu8|x^;%i zvDz80$GCPJE#&9Y3F{A-l+%ROYv)V~aSTeeeMl+$S#1DT|A!|}@@FE@thE1WB6j|X zL97B8lh&ACKivWwml%OGzYuLI=?+b1KuQ6M?JF*D zi4yn=%-bHiH<3ZCB&|_1O@PMh(8%~%Iss%9vCqy@A_IRQ&JlNA*BW6Oj@ zFlWtb(6;>W1T18H855d}rihA({w6DB9Z;@fnA?MWcRd_yt2WGaN%L-8~6Nx^R&O1ET6ywG;NSYTuh56ma&)=EQlK9(`3R8cMaW zkvvs}$U(e~YS~ahE4W;b2K~gO+sIOZf#g)mG!4lK$C*#_Em>g62Nd!90h~L*XGn5< z#8g0beh3#XG8MId@I%{qLe^3en*DYMua!Ns;c)8oDFDCNR|9f8v@@Y|Gp0e|~>~FFt&iCLUZnnkopCNEo>}SFl-nvWC4UP;f9v7|hqX@dSz@ zZfORk2F1@=vDVxT53cv)V|C$wHRT zurWKRw)=Mwgn!A4#O(5PzhAT*%iZXeO~X9b(_CWilp>5ltL&$9qUg@S0o;9Kq&@A1 z2xU?LTjtnN^NX(ziQ{>F5@C}ixnFRz?z%zFBZZVBOhy*OU4*ImPf+2$4ZU`2>Licm5DC&W=n3Q+O6BqFTbU9MsR(pp-))Yvjn%4 zR;dN=e5#&p{39OF?Wp-J29eVLUj6?DQ2}D)X21qc0-C(vG;{&v2s~Qb2~k zUYPvo@EV3ytYJp>bs8Gi+m8Nh8SH>F5 z!iARDX@tP)Y1$1u%JOfWq0({{7AZQX#lkuS7d4FQ4^0ve8#m~HdkGsK1&UPHA#0TH z=!L;7jM1wbjWCZJH4ex;9+ur$-W9bQu9YofQE4iEJdg*Ph#wYLo0uKd zqu3pjZa>I9C*ik-KJ+?W8HCcA11U)p+_rE4Ge-T@odO^#xsPM!g+TAgL$>SyH@`kZ zVheB}i(RVBOBY_d$N|Hq!k8UTp2*?!Mhus#4sY??89@2O^bnDr6A?!@E-a1i4Bi$CE&^PcK{nOML-(bmv-Z$oR1JTh553e zh0uozzH=X-)vLIx^z3n*fnfDhQOMb{Dtk)uoQrsgRK_Bw-J5wYBcZo%M@xo(YTr6w zq@l_r3cDyz1j(u4B{KC%Za@0Kx1ytySlmk}YqswIZymNg(zC;-Oj#p>Elzn3`h zvVv({e*eog$3NnkV|WoL_8)okG@H|a6o3X(_gp_#8uZ3DZ0w82izP@|ht65;3+h}7 zbSja=QH)fzn}PNL*_ta95Xpj%4=VHxx;MW4@3GD2;Puu|(IcwdTgE&Sd)inz+pUe&B_*J)M$l(y-q^VHl_DaJydo9)0eU zgJxB>*Jqdc_V?}IQuxi^>+YBeSE6iOz7eCOzVW%j*ak-EcFufrJz(Im@$geS`Bsp& z-^|XJfkWYlFZD2sA9>7qmO&@brq5M-KV%sW**v{HyRA%2({lXg2S1)=4qwhKVR@~e zy^#6g4=W#h&U4~OiLqr_DE$(7K$W@JZ}t*6zbUuP9`TpH!I=HE_uJN&ywZt;!Bh|T zV|f5nSv>Cb>eq<`Yyy)n#w38N4?j*nQoBR}M&db1K@vtn5ODWHBC*Q2Sqoi3SHaup zwmc7zzV(+IGx3`5ikdw!GWeDN51bKae(2{~gOwoZj2^NR!{p%FPDw$HlOFApI@AV6 z>pc;eB#UwMgBC))jb@EMa*qeN&r>uKrdF}C@iu(^fA+k+yx+mpSqzK=c5|6Gqph@P zq$jW8+AJ2<##hC5z)ln@Ou@xdbA_5%gY9AMAL{m{8_s-DVadn}!VR1fkPr#E_!jzk zk@9E6yC=Suai~$7ui$kH4Z9X3S&v%`NAl|ss5qgG)pvUybxj) zMk<_f4pUUZ3Sp`rLpDx$EKfnyLXN9d$2_!mue3Q|L5wHBK>TtplQ;pgT9T2V7-N#$ z)^8vvoY)D!l($s%X1C=%6HmR z9di64vxKZ7K{0&8TMYX*4wz#5^Ri%4su6RX&Uby>oolqAmPnioB0%~mi73|KyRN+5 z<^xcKw)}B8D(40~L3qMXdpUW8m@0*fC8G>bOCcJZjEU_pUh_e=ioof-GVEfVvoIos z;U;=y@xE#&ds7y>(e#Y4sPkkBqSx(?li8=JyZcI`Bxt=rvc|39YizW^sH0V7s^*L=LDw}KV`#nTe$%<>Ac33G8kwF{V174aQT;})rdRf$YbvyHm z%KZv13HNu4{k}$hN4VJ8@XXaHe2_NN;7S>Au0i(KC?o5Uf3+r9^C6EG2^E`6jHvBX z2nQQo()AzyI$yYG%|mu6K8?Osg)y*90Kp#_Udr4O7E|8Ah9X)@)Vqa9TB$}OF=w&v z_J?KD^7}daf~H>7nSl3SmB}2GH>U#8?K)15oTvxO?z0Ew=jyIufb@6h%d4wAO}eo) z^*1dYaVpWH2EjR@sJYU!LAENu_Nk@iNm%Wei@~!chaZHjh7AVoz2QA^gycPJJy6EY zP;#ff?B;JDj?%c~PhR!0G?)x*CKK&dCFJBE%#oL$#kX30bCy|^t}klHXkwtba$m3z zkh*NY4V86;iVZ+TRFd9@5UZMqvD!-_7^fxTCgV(=M}@a7)}0c8l~=u22vOxE*uU<6 z{-1Q7YF6HD6^Q~rx|W)qu5RbR?kOPhN$S&+o^=?Os(1TtKB%uZ#Qz>)A{Ra>)Ua6{ ziH6OdHtgv(nA>-LdCt9%pGlz@;MkZpt~Fpyv~ILWcMHa24ewTsfs6D9BcnA7Ez)i) z?zms@hF)p8aK=WFneV58Y$}uAuBDTtnb7elY@qUW( z3t#9>M*XfMeC`x&bxJfutBc$M4UTgh<1oimKNy#*%ho%&sH4$ecp=o0I;j6S(s^&?TuO*!Oi%*R=<~=LlV9U$~2eM0R!@&Hm>rRrc z5`cjtw)Z9JgZkW)L~<%wh*^e7tBxJTzOVl9O*d961~uQ`-m6oKV9Z6fi!7zcD=KHqq{~H>MyI=PKrWzI^swa%Eo9&geRr za*B7)JACGpvAa5V?^`Ylu=|84$0WVz1VnY?d5&}kRk2z8514aD@*&^V#3 z$r^KojjkDL=-WnsvIden9x){E>$gNk&>T)R@{>*IX$WG^sWR&YoWrjZy@e<=hp0(81zB8AKiwwfQ+B zZhyd4$;Bv|o=GESnTE>M2TkCXtzhcq&W2ty_0#AfCK@M%H;jnCmG#I}a)~j3H!WKK z099ZghN-;=`8#O{XGS?)n(3zK>#)F1(hLm4>LivK#2)EKVV1!J9@n`9E4D0S; zC4Ae`j*5p&TE3RwkIfe{2XcR%mv-Qugvbt3Z!ZLmB5B?EFrToZ4#*w7Z=u0*^FltU zsZ8Bx_ABr|K%i>pZyrZZV0M#`Bw=trFDhQ}ZULN@d`%YTOPVoxOR{yxEkEnq#r-3rrouyLopZFW*{PT@q0-8-CKh3?0RoQwkIb*=CA<`hq0} zljP(W-r6J|gePq1g#0Q?rLYwfXV}c{${H?0rL8?J8hyiBpQCC#D-6)_I@XP`np0$G zMbmD{d!NymaDdr1DvRxEfY}M&3%JMIb9Qse92<4cj8VE6ZQEa#Y@#MUMm5qgS%8s~ zsT$3RK3oee(czUab(@#(=R_W8W9FGs`WT{1%P!y9rmUwfUN1ap41l8$h{KaXXhMCX z7OYgH^;trte{nAEMuo$iU9D$ zq(>isAaltC44N4CaMKI`*_no!&8C~$M^JOi55$cp++77oBxr?lysn7cqzBGpcnXGi zZd4=v8;ll4*U&BZ>OCLsFZ+UqHu^ICfC=LbNWIsG?T%8Qrq34`ruWrBUx$LTGKC~Q z{$x;pRj)}4Lc&&8XFl>L5I0y0FZ9o~ecFjap#RGR(R==A6#6T!fWMS0Huy=8u%bd^ z##V}-0GUL(9#pzWcToD91W}ku?{=L#kh$-YPl{T9{Afp*NWb3W;uFv@XjRdXf0DPHb;9;C?-aIGc*})Tp>lh$nTb=~$~;pZ^SBJD z)jEPZJN#NU_EC)p{ZfcX=wWupq!jJAL~_Xe5ta=#nmUrj*3y!c72$c*8Qc@mB`18X zv3G7J{6o*WHc(xxrIg1(2=`@%$9N*>isnjzN1p%4e6cD zHLsmPWcr{ceXK^s1PSuC>H8 zh+oflf6snXgf`~x7`38r!4R!Rqbja~%Wy|}^0pS>C!Sk#1h}y6fZE zu34IHZ{F!#$=4l`<9FN@k`{UXh{U+dzSW8Bi8! zk8>KEY%CWXxuega$^?cGj(B}5XlE~}Wab*_^+~cteLZl&K7u-(TK_F@Gte?ug?Pm* zMl_bUSF)s1T_rY{KYQpg_}ko;F^JB$-^h6(gG^BTB-dZZ3-*yC0x(a&-C=s9m1A$x zJJG&2TL6_bIZ05xUo7r{#G*hb>zfDH zL8v#M=@ndP-P`j6(sW2h@&MqA&uo{qnl)*?KD+w()@t(?1d^DMuH^>1xLvue7BYiV}=Wo{c+oETC_u_8vN3Na4k(4PkNXt=i88TTm_tqRYh?BYS zQnTEe9vr#`a=AHwZR;%%Z5*6>8(xO*r~5%k)I(`j@viP|*OD(}ZH{lPIl2Dwt+hmN zXa<^;BQA82>e z<)`|XHKFBOJzvIo4I@7{jhP)Je&te*D2FT+Tf{wyy>#azy?WOp?R|P}h<~9ZIU=o= znaOwF}>CEc|!b?GOnPGu5@ko5_Z49tDX_hTaabsNc z1&v_ndO#4LO-#Grpn@F>(R*7jB*AwE zU41@6keq%|U)mJYN63nr!Ovc>qqW%hl(+B z!NQo_jp&e66&-aFT9j;3I2aD)4%g4FFj;q5Pfg%^ytoy)EDu}(b$g0vi(bJ1f zd;^lzp+ssQ?C{CGmcTHbijRDhk?78v1L>D8>P)MKK93cBm@zG4xVcMd_uoGBZs+N* zH-D&zUC!>K{@X+q*QekH!2yd*MM==Eb?3vWu^Sj(v`&2ykNRMmbE>zIy?67h`Nakc zW`F0~z3(owRC}?qh{Xso1-j1k0k2qvuH0?suHg`hTbnB@7Pyw_d!5b!R0mbWGrW60 z^(DIu>ieZ&2IA|ou`=rH)O%_SWE}s;(^m#W*>>G3HAo9Xcb9;4cY}0yD&0f3bTHAJXZQ2E9`=1@a(7-;iNk6wuz4(UQrp?`^OW9__Iv=;mdK!86 z#jOIkoqF_z*#YRmXV1S#N9I;Z_Svbn@Up$PfX&6US0Fr>6BIu16j75!YczYQ4Hy+6 za_38X6B^CAk!{)koSGGaM-g=k-nFfK46SvZPiv1~(okly#hPp$+Zr^0CrW!g4tLws z`{?>i@>4PIn|FlU;paD9@M^5EkvHAZHyCa^cR8ksEgGy!1uC)SKYo*vv+X3GJ{LblfDCrGyb{>rH(Q*WPTCNTM+8RrsBL`iB|l8@ zon&1-Xt@y`P<`*+`asV4|J%UK<^FU5KO(>D5k;})9}vV8s+nYh-R|G}ETgWSu#bp^PrznKYhknL{M0-eeD zclL>V{of8}67u_P=owrog_g(3_*{H0_3NPNm$X{3-_WkzD0u8raD0?b-*VNVXNPLT z`p?D~%LaSUsNAmsj?yEDr(^01_`K}^q2SRI-8A|zbg3c)k^NU>^f_gTvAUi3zF%p@ z^rsyk4BxnSa{eaTNuzs`Gh{-UgH6=e>9Ze{m5a_Jr?c$-Q0i8C*l6E+q+U3}w&_t9 zYdzpzc-oVYqk1?veCEZ}$`WB6Fv76^wCBji#%m4r2CgSdI{3c1B^}wjWWIeO%M%9s zl1pj=FS0tN{dg*doFY1y`CQ z_csA(?U+6?zpfW-(!An->!sFqE!$}H(P9?Bb*FMqbf>hLh3}g9v}EPHBdq(g=Usf@ z(>q4&E>DDqdgzSpP(AL}xf$AGtJ&(N!Nk>jm+=Q-%*c};^|m*5O@Aok4JxL{rHi?` z^;pLtrTvsqjk@fEylmBxsK^XC~d!GE@szXwTj zF#lDNG?D*T!eL%Rew^-ZIRu3y$l#+)KbPTlkQ&bOs%_DviM*J#B&F9sp`HyeZdt$C zD#e+aVrJ6vtwHkRR`eEn7R!a!lu3^51xnB?L+CW<2Gv1zW!A7vxRE>&16W;emw z9(d^TL^L){n`A&P5bS5TWmp6LQa6pxN2Q5MMPe+ zrX5heC0z`li36lYyf(4j%O$ZFG5CQ-*R@^qL&XiPl?WDLqf-tvxZuSc{J$K zrw~E+AOc(~nKejqrw@$5sM+)E=*`H{`angQDJjpOC=}j{mq+wPQy^YAkmS$|=?mXa z_m1S~=zD?hT?qN`Vody=abCiB!eE!qdyf4rJ8)n&_9T#Prf5egChWK1) zy70_(F)y2^zgOXqK!V&PzEmio3c+RS;+9RX(;(~zBHK96hMVo(lgo2f7J=wQBQ&{^d_IdJ;7|4N5Ez44hkHtkv_-dmcNSl1 z{f>Hx5C9jZe??HT=j!#P5c!zK$Je1F+ln^PM{#WH@zT0r`|8<29H55g_$${wJ1^BU z2?@&`?3U4k6_}DQ!biQpor{H@V%lb6SLxmwt%Aw6I|-8`m7@*XcMn+)f`J;EFtE7D z>6r0oCa(H%PX+@*C*BdSChGRLmOm1_8{{ysRGy0|$ zz%5I4z>A{c)02JC*Gp+eJ2SqN-iG>B3(QKTE?zp~}%(jpK0|XoEDCe#+t6yu~ZHlOWQM z0|yB%U_;@Z0sJU$eWBS*_=}I?OoTh-;RyMuu0nGmPrQERO?>uey~1Gmg*bf&rrTF= zBc$>wc(q)+n)434>F(<+ zesubX3kM6i12!M-0}HhZs9CT1;ku_Rii9owM&F#(yrB+8F$T@5Wwa8I@YvSex6Yrr zCA!;aeO&|nD*9h>#VnE8S&k)098SH!L4mfOJ5KRuNePvjht}Dw*WxIRHGBMqPB}yn zk#DZ0Vf~=-{34?Q0+xIskwb!SUcQ9oCgLON6Zp4q+gIYH^AtG(c8Q_E`9USQNukLi zY5gJftQ1Pqe`FuLcj}wA#eicnbTRZyx8~}l;zN0{%5KEN(lnIxs5#3cd+onNP4%g# zf5hmunTTV7Y4SgbUF{*awdSHto^h7!>!;t=cH7&W_p3wqT?&^wqn}3pH1#0300AgK zNkO4ll%T;J$6xEp`_g-xnFddp%uQ6ueEqIcpF*WfG)ImohI$m)o%WzJlrJsI*ChSor<+(V8bzYc{a&VmV%7rq`_MN6a-MTW^!fs<{}H{bWss9KBeq`5_Upl?FY z6EdMd@$VgMgr;0vDmjW{meDRNs$^D>d9Od-;LWhiEIDtQkhQz6x!aQHp<1G?B>~3* zf<{PR`8N%|D-uQAI=S$MTR6139EYg_BT4-D4V(nVd-pBI0EnHZlxw+aNOkWokd%4oxRKd6w5M0*e7TX8 zm%58JRQU{Kd0t@D@sj8$g6y#_xq*~<*zwv=nSemxU~%;5%?gJTBZ56;fp&T({;AFvT30v4~F0HrkBcL`%(pkOS@p-m3Ha1jW*k6wtqNizF776Aw%Y@S0e z=af34s8KYrXK8-VV^LHn)6ir?bTRP_fP8^bQbM1A+UP${pk+Ui%e z(KH;-Ko_3xeomM&0glatR(k$jiK(X$E@8c5g%;>vR!*RhXCeQMZd1PypaF{#+sjj! zFQBiikN2)Sly_=54tZJ0xoTz|d^enpu{1r@lAjXs#g^<}v4>jdZg7#c`4sR(+;*J=&!02%{_AzCQeEL;9iWU`1J8$80N1 zoh~b>eL`NFYY+wJA9dUHueQ_n!9y2vQ4TpB+!=!_fZxl+* zu5{*T?)H;>M7(4rz~ zR+Kmkjt@*P@`N87TL}n$Q88mF}&PZvDDEr6$5gR{C02k zo*UR-%g7MvXrQVVQFZu^@DO_NT}BJ=qP8-~cjpd`SPC)aK`2cx-YsTXVB$_Rq>cDD zfB}PrC+GK-*RQ^l30eRLus=wH?aexkG?y&RJLYeKzVv;DTKwBDgLROuz15H4VkZ># z{E5cuMEQ47K!d9ApK}nwodb2lIX}JKr%GJU>14tyH*VjXvH;DA)oBPqW>3OT{eD2S z2T@li&*|Ry6Aw1$I%)9y6utiv&4=(r>pbUxC%?tJd!%jFPbw^SOh;Yaer=kCG{bwh zUY%LmlHJ0qc&pv96Y%wv~l%lXkk_TTepmo%LKL)2c>gH~v;7#b0I+oX z9b!1S4z=w@Q4RNpLWLO*Nf1hScHA-!T8GZ`M;HCeYG|PYB?rDa=Y75huZC6`heZ64 zBG{&Sly<@`45@jvHLfo5dq*|QK|2yEUB7BSekPBBmxk^-yRFSwQo|4lN)RfyK1_56 zbJ5tZ@R%#x42y1jZYu(B3l{IqJBJ!+h{MT2FOLjIe~#%NO# zW#9K8A1-+=R|kK;!R5;=BoUKt3x%d_ek;dvaq>-04+^JsIg{&FKzv=whgk|9I}F^{ zr$_&B{$oY~8*PtT3J*31Q02JDrg|RB_M(~6l9Ay%a0fPiWyw-mKSW4k^gA}@s>&V1 z1QdT798U@Q+sn^vHKJU4ue(&vN893U*2D?ByX%1{kMA!ZH(Jox^}Q97vK&OlM-gy! z`bA1M4WE(&Pk}xprn8Q@lAT?t9PaV9M zpiw6vP9U`>CR;-G6{zCp?q|q^iyg)6Se*NYYliBy-Y3%s*t4x4(67vgX!bgOP=)3SvHgKa z8O}BD8UD?q_lEzQM;n2PwuBL`RoD||Ur?KB`4Jbp$ExXdv5V!9+jY>N?MRt)9;(7O ziJKWaYJ=Be#s@HpC(hKx&KAH#@>yjOY?sm%{E0OxcaB%jf3jj{f0)lTY;OE4Au$b! z?MNWeU#U{?N2Lu73_nY8)n;-W@(h?hVL#j35zjNo@_H-6O<`^Af<9-4tp37CMKCdv zJei{R>HN)DR!B(kA^iZ^xN`mDMoB)qgEU#Ji4=+nci#+I`_{^kFV1GGQ^m0(^KE%8 zDU|wigC)^7K^m7J%(uc-j2s#({Pj_1vsu%IV)3B^CC16kJR@J~qqI!6L`Q>7WIJVO z?8NS~_2(y2(DqfEay=^?1TEz(zz^)_6+FQY_d+(O3YVZuvw9=Xsw(3(w9`D-e3mrQ zZ0ZhKy@~%2|JY3xI~}*qJW(ycQ8)bLbtPe}=5YLhCA3f+O_o`7+M)fO4yi4#Wnn5g zj^Y&ox$g8Qgo_`Qb&4m}i3gLEJnIdQRnlygwRhKRE2ftuXLsDOJ4}uB} z9x;>4iJ?IlTzEMhRKlT5!>(w!JV&HTn@f$hlpJwD+bInZshqAm-(m)O=pXYGU;^#6 zrR<|<$;Z<6ujyt4$A$S!&Pk>Voq;34#LV{ZuCI*BUnV4-#mOrJBU3DcgN#u+8dnDU zZ?%*McpZ~?^lEZR%jx?&i}p$}MH~K{j8;h4p*>@!@%ZjsWjqI|h?Bt=GQ#>)P4A2) zIUTA_RamcKCe;>3$1>{RtOk^xO1dJ|Q5FT}4X4q?yeBDI&UF{WM|!mxB+(!R59D~j z-RpkXcrwM?e-BvSa+oIzIR8$xh@f=q#alnMUlvrP`L&7R;O9!0zPX_SlZj*hmDVTj z&&%`yGD3juGZb9F#2Ryv!N9Q?{j80gLAg$Nd*xx=n`e z^xL)NN3`qhT0W$TriL4s$fI(OhL(fzHj}Cd+mkjm*V{lyWAvjHb-c4+lPwOPW-f{G zbWgyqzcKKJzb9y`3#nT2%Y5mjRUn8Ub{K7sF)neA@8(AtQSFWp?3r1$Y5!S_RONhV z))}RpvFXlBOvRU&Q@m1yPh^Zlb%DY`!!Q{FNHzv)Dz9c($yHucTqv9hfw1 zf4hxM@W;u2JM}WU(6y>l%x#hS&Xvlkk|3ekDaeczRdT<`5zw@OVhfDXQYch5ot&zq zS2#;E-M&JFVI&Xjo1vOnQp?LlqzQ+X%l;H^b$)5qyW#MFVHF}z7mRo_6M~#4EVmrF+YO6 zPMZ#dR|Kl_ar6@jr~lXtX=8re%a}M^)}sPdZl*NyosQ=?O4L1$pPH>0+Fib8DgIs% zn0Y=3Uc#koc8zTu;H=yJ&HLwN5ndx7_Lp*pvC~^MNEf1-WN!4l&2l8VfVp(fX^^>?&UWMRpjoCkr0Qua6yQ;Rp9FavVTvcK#YBWMF0Cbt}V~Ni(`VD`H z3g`n5cnB_-TeAAX>1Bi}ua0@4cp}85%w(r#xb&DA@kYZu8mL;Ams~(VNEQ5o%X7I} z|AOhSX7a+2;~PpnNA4`)MR!RNgNCu+C7Ha_ZPXDd{;Fnm54{N4))Ux z0g>Q^Lyc#LNEiNyd^oDuVU?FroITY+vpdaR`MhNRvOErob4cZ#b|gsgqRI9E)Ayx( z)@OYUPAMW&d-mTzW)tvVia=!r@ZKm&aC>k$Lae_)+&24yO^Ch&+o8!^8y2E+Cyu_@ zH5cBWT?OkiazH%hrrn>K_s%t7_CuTlu|Wm5USl!M0k8JS;%vH6iP?c^wz{wvJ{4~I z4hzIHTxKO0VoqA&)9lUpGwf68UkiM};txAHm^+Ky;m8HVvN)09w^z?Oc!9?DMDYYE zN1-^RnFsNg&0Bi?zU+30mwNGtC@{e*Yheu(JfXkO@xNiEG#NLJ@cUk+ZR^!M);LS7 zrn}nn%dT83i0-&_@@q)hXi$tYViRjp6CF3}BJNyVqcVIef~4p!{A8m2gbdfa@O~OA z@Kbofi#OK3FQFRfGYZQcARepZG3oA;)qJd}^R{uJlCh59=`6*PAr-JchtZcl@2tO)mPF=fFr&ZXVtS?r*-j|^dhi!`)!wb zD_-CK7nvv1EV~GKN}k;PPyqto>qdg^PK|QTtncA@Vmme0$~b3pId6Mv@G4_2T3*yp zW+kj5qf;hWz>dXR`-ts=Mxcm}{Vob_DCI`vw|bk;V3=hG@q6^c-^v*HJa%{;cG3Ff zQnM3HcG%^sjl|x2Sy{aB@^EaYSC#F&Pq)DEU6G!mO|AB#+}K~ulk`H8yWiBVU63r# z2=yl8-joRhagxy%S0!Gm5CFy+SW>@g!z8&_xvZ)vEjWIOv`M!xIQfLyr!#h!?(PpPf+G#3h}WCJrJ@EXixr-huJwEkGWStrUcPLj!VAMM@#UAX zd#D9s1Lpy|zx5<-UlXvDkKv%94FI&3ni?$jQIXh`+er|Ke1BE}qPxj-*w}x-5aNGm zA9b&6+M7ebau9kr?<%SpIJ(J+`-49e&u>Lm?$c#Q$=f#n@P?1DCr9FS!jJ{TR4$%Yl4s)6fwO~t;=-pPUbJyK<5XyN__|jO zf4yFrpD{N0vf{MtIr6yGWL%Nyq(PH^OB5_T?7jL&%4}?^IPuzGuR=KJ`|6)e6*W?+ z8`ahQ)8=!1EzI~Fzwv|knz!xxScHW^1|L2m+;fXW?0CyUZlb`S=xU89z>~nt`SU34 zhfi8?@>F5?G*IbmM_rz_oU+y3tKPjQ!DY6myqv^Z%GMmiwQU&1=X}&^oQ=$gQ%F6y zeOEQH?HBl{tq@@_*K@xEqd!qLGWMfwU@!~|MCV#W6-Q9^Ben0x?8cm zL5OxzeIUZESj7H5a2|iT8pi+LXijEtVQ}vV5E>w-oV0YnGkp=7SC#3iB&8>~zbbpd zJ#chY<17Q}5RMbh;k1(M%rd7~6Q#+ljPMFZufPh@MGso}O?@d4Ucwph=~n-Q)I9Ti zCBBz%Xffr5{>xaEVJ19E1cVFo5t;N`$mXV<7w5_v?B)ZdS9fLC{^Vvr@|5!!UJ8^AI&O?cu2wCH1B0|+ys!s zTqX1oPy~JmJ@cW{hd;7UaXB1cE}7v4d<(4%%{0eOZ}=@o;XR+l2o|w9MhuHIuBN1N zJ{9GS@f~179OBj0xDE3+xB%_tn_HzUqh!`o=)auh6aF$Zj^7Np;AA0u(9}`yeJGEe zmLE6jKj~+o;#q>>*;#vEXwpITq_bY3Y0X8eTxRK@8ADNz@B#dds1rXP$!CK?vL>=` z^TQt{?6xr{%>Yd{mcKDk2>id8%x*43h&ZtGr$ryQm1SJw-8YJai=SpW7S_#;pITMh znIFthofbUeRUj)aI}n4_<#L$tB@O1I$2l41oTYskEwxBmD8!EAUtbAyJeJ;`mk#m4 zJ_PNZaq6Yr#85*Et#7&+cE862A$QKweeh4 z*4mQlMbK$VAC+%5Vxyg=*&h>DOiF-eX=>3`6F(MP}_yMn?}B=>PH{H`XQC#^Qa?3H)_ zW9<^*Y#s-)ZG~BjwqFqVFMlTfukVQYnF|!D-8=gZ6WX5I_aH9%cfH-QSw8n5$z1z{ z-rg3rB10x^qxeo}c0ga2wwQc-P1Pp_rWaA>`t^nBSVHt7Ptbj)YF0j)td> zFsE8EeJhl5Nc9sQw3J(eNEy^WKDF$?+L+4<(^E!LCbgjz+FC{P)JdxYKS0JW+g3Cf zX^+|u8+92LR2ow()-rlm4&z)CCq;F|#SB)*Z)fgxjGLYO=Gsq6GjA6b1mPOUNH(1q z!}lHKBGMLhHIaiE(9{hZ9dt4HaWS5~(+>Lm3kUcJ9dx*al{8EpDaLBL)>FSFnO2Kx zi!ohX*GWU%ar>c6`j+_cG}xT=q$i7@g}iNpO46Bmn#Q#E*OWoUq+kyN&uY5O01NIP zZzd!#%(D}A8YJQM48fN7l4z|Yxkg9t)j$!#X1@j4mEi5ZR8jeh53!xcIS3KAmiNOC z?tdVtu`0^Fr@-%sPW4qFc?_D^l0CX_`HEln@Bdf$Zz6l5$XesAq4YLF>I_SI+Ghg4cC|@szui3WiR7Us8WQF!F6V})ChwKC(f)yo zWH;-`LGm?nf!~59qfRUn@AgtR_sa?t0N`gc&cyBg$h*M0pa3u-YzLDsDy#NHk8@O| z3_?B%45W+6je;~iUq0Prx#NYpX5#~Tx^$=8BPMvg@3q^UA|v8NK;q z+=Xesqi$2UW6!1P5>NNhd~awCd&0w4U^G;1j;}4wbP^V5+d(yGKUDv%K=r)EMb)@c z!+4Dv;fa?_0ZOeIowoqd=M}k8&;nzpWwERNZzK1CD>;&S{kt&+bf4RVDpX2_v=(4r zrGYO&8i@wciqzwx(g&Q=0AbGnSCWbKL>iP{%fUYeXR8Gg%(JSn5oih*} zHVA%zCO+tUT%Pz-_^P~eYqns3x8#V^1#-vuBUMnv&tt^Eq2Rr! z9KThZcYTqxoPMsBO!N2(yU}2gd%kiD<(NTt0~UEMFfbnH!Wx(TYI}xm2B2y1i9Ev| z$rghz#@$muag4cX`XhVzvI|^c5W)^E$cNtBrJ`{It?5MPd0Vz2)HI=Jjg7N+nkcg@ z=`J`$aP!C+iS9c^@@8XO%*Qjk9)Rve^(?It@6EQhz}Zlsgc@2z{`jzz2~(qNLO6=U zuyYpR&&+caUD=XYf8|36am_zaWG#^Pf8>jBR(iNRvo%Mw1SWqbtjGJc5sR#?#i`$t z()r>8*u#4f1^K8E75i`G?DCRc>h&)LVa6Lg5+~+&RhIWe{(eFZg`2F00SS+#9i2MU z>TR-i>tN^p3!!AY_(IGxx1kvd52bl4rM6jKNgCqSY9@q*)Lbkzr^3W}C))7=Xk#91 zmzK3zMt0fW>Udc;InwOTVFiPW2fAg7_SOj%o0B3v(hSU{vo4$LG34M(M8#eV+x2M4 z=p{a;?W^48!q(dG0%yu$v+8yl7cK_hoFOgMUsbtxO=Lqb9<5RkqlCU-QA?UG^WN6Y z`ikMNu{}!04v9NN4eE?EA5Shh9CA zs<+BPd)WPD^p^uk|F6|9lL*O+Fd()@nOzC_3KkvQ3ya@UgLl;ml%kEpVw>pQt1S+C zYqA%xwcXGNPir~SuYXPSM9-=rV%*H#Ix;4Pd3@H0C(8Ir)B@$kZNQ8CC*R)A4XV4! zoKTPLX+;E&cRviL@lcOchesBr3cJHB&U3T5a+>|O@VJgbq<_4ks@sYSB4yiI!~;Xl z-EI6}qp)n-GhI{pbLi32x7tyoknMnW9K<2@U`1r9XJKT}#t6OgSqm1nj*0n4xG#&KFA*-TF}Ryh z|AXSgvP^jRQGlV@W1E`55yk3^{L)fzW8*ruL7>-sS>6@Z@Wl!eTY5nhP16sHe%X1h z)}hc80O^|_UQXgn*F8qmdGq4T8v=V{qA>_zPQ^UYw3G(-*j-yTnC@Lt_t~eT+(o+clai`B9YEmxszt6M0>ZiI zXvsdO9MO&x6`$Ih!%k`1;@8Tj5fOoag?^5}!j5c{V3EfhN*+CG9<8sNq6MFOxW%{` znGt9M5rIA;LR;{N>Bl@Q^>-1c#82~oe%lP~wWnv^^5PF19?cbyB8w z$b)Xk-DPh;iJl5lo`(QpkBSk)JJg_GlV4o9^##B@Lr?B>;0gVYh6pOtI-!Nl2^RxHO+0DFWINNAm>ClK&}JCDyfOSA=Vlo{BtYmRr9c438b zsJ1imu5bwjn2ZCIIfoPUhR2T%!|*IfY(>KgQj}B@QThMyHr0RB1LwO~pLn`a!e50d z3ci^ipJSjm$K4V^+i@ym*vdW{xChk~u*s{R68(HS=RsRh&Okc?5-N#R*+OENVgA!Q z!FA6Y!{dE7^nJrJqRAwhkruYIapXaQGoW*Q{NJ-roN$=l&o7ACvaHqUU2t~M0+LvPQh=dT*&PU(}Wk)dP1 z)`?ujV(Ag~Cuz~`mOkJhal-Rall#D*I*fV=AVW4MXKJ|zl!1hOLQ!|~rE+na`myno zIAV`gqmU8z9AASXWK5}#L}P%s92)J%`UIkbOgnPTW(~ zXeu@FZdZqvGM)L`6#)0?goGHX<36C*@PyPwSwx@|{r_{QNB?1_x~z5k@z|G_{i8Fl ze3SQEVTHWQ?gW%YNjU{jPL&_Uu0{~S$zl2ox$zTn1;L}zH&i61A6`Q|IVxjWi1x?f zOZJ2YOmaN=LLTm$b{{o(mFgGt)y%ReIAFdKJY|!Y=N5$7xve4?Ik0}oLz`qsyvovw z6+r2nmPrf-IL9{AtI%2ektrzhb&i7Aq)>h(>I1ZC>8V?VJ&OdU$Xj#~`Bpw&XjD!! zxW8-Jj1;*H#gt_%e*Vgh5bUli>w7fl6tGe7H%;v$y*|&ooc$S{+M@N!;+ONLyuoSr zj*6WCtCuHy_wD@I2zeE#Z05J#KdDLLYLIphxsy{SK&!66tiRkt4!`DU;dKEKJ9r}P zun$({DMRQF=iQ|^tt)FKULD-st3$GlI*|9z`d+&?*e(2~CsHE%Qt4;2yb z01x6KnjzT3_zBbndBUP~bBCO&D286$pXV32uk2WKX|%>`zps|coMa%Ff@$%@pvgQEiZK&bHCTLq3rgV)BtLx(QkS9nc-w5zPdGfIR$wqOcXYYJGh>lp zVPR3T07r>5A|^va&hS*_0>UhG<=U)t4l6 z)2RcG<4NujlumGpMbK_?3<+%(ImW|o_IV5*!SQ&aOkd=|2|O@tHZ9_`8TbYW>}bkr214b%lu1#^Q;Yx`{6>^#TD){pW65=kIR+e!$8#&@$g z|CBzu8F~ad)o)B&GdSjZO%|!uNa~5Ew5jzR@r?bUE3lZU1oK= zNA{AlD_*C$T}Qod_dPIcXmX+9ku};RD|w2$Sza+`_9`7}e6cEALOv4%ErDM_N>0OF zf%p$!-ymr2E>~h`Jy$LtJ~Swv(98Rm-_lC6i$NlxB>+~?P}L6}E0*@X2GsDals)8j zEe>z|yK)@7{BuimmU`(hM!bQgOM(Ex#@y7?=!7pccAZc`nE;>7m^CKuqkHBYCu>J%q`)Em9H5fTWRG{=IiYiu?LyT zjrOnlVwFwMJ~g}YAgk@GnD1N^q2+-oIbMp_@^Q(8LTp#6u&IK001swV z$FtA=ZL2A>#xZ z=(B6z@x8uH2zvPbS>+9oTSnSgA}ov)-i{`uKe!ZUKFv6?1mhyTGNTgp&w}H@~-b`HD|Tq~?V}(3cKhnjkaotcAd1oCRqN_4!Nw<8)yE zkIFm`AW7QW$T+HBN4F*r+T_nvgFIywP}ioNIt@ax=WkU&|e^+a7K8p$f;{Mc7e2J%-&4vj!Fjqt1k*?BYxWXW&+R_M|vy)QK@`_Vxhe?Z=oA`^$pnV3O;6k4{`A#+O^KhqoJlpu~ z70UUmEU8>{QI<)iaI^<}0gg98FLcnW#4?UNbCZTecU!Bm|HnR+&fUH-06Z$B%kYSYs0+2=J2dRF!VsR%=GakCT5cn*$=gFNe;R-)z&E=BED` z06R` ze9j4(36CCFKDbUTDI*jC0T-4{__pNN(lMnsx(%?xRx4-Ir}#2oxp?q_cR0jdoy{m9 z)NuXS@%{66qaTTY@tvA`(;dS9W?!w@5p^tl=nJu0-)7_<7Kd+0K*SQY~WmmU9Iw~!x%zm*}s zIsJ(|#8SR$1HYu4*;N>rRe@xE)=0+a2ROOxtN3X@T1 z58btn7~W(|f|x9ETS#C=tslD9LX+9A`<*x<__bpl=gJ88RnXI56)1U0fuE{1M-5L1 zPso~9y<+zGEI9n=w6MzhNSLd$FEr_@_RZE!Ons(qk{KOcDsV&wS&kD#n5wn0u_3HL z9Y&;p@4;c$_X0Hr+li$qsFCjqWzAiM^2P00{95(|1G$7^j)6A`eX4ajPf?I_*IBhf z=-I1HCa0$Z>9QI6Ta03f%b*eXVsRbv<$7q>EAN)#&jHeb%%&fhyQ>-C|ECjpFC+vYyTSsvx&p)i{5j7`SZL=8(Zsdq&&1h@zChVD zQJssNU$%`byqpMUt+{xD?2v*ScAclKmW1yxu8!Q&61jKX#35dI2gFbPo$`2E7?d9# zqcX*%%)#fepT*$DTb(Nv9Ws73iN(YBxoKbq)I&LO>~`MD(TO!_tLnnF$Y6}puA0e3 z+Nx%Nz!QWQ$1(y)yo+O*=8=a8@1xe)bNhRUO+?%d@6LZjA%^x-q^@jv-qLeU}~&uFIe=72(Y7u?)v4DOOQLPCsHI& zJx!DhXCeMHC>A}n;OY8NEzh;|6Mo{vfEVM20gp|DBNwH+fv5E91orz_K`-ubN$yz} zWvEj%e?XF>jP#sy$9^AgLoTaz5+T#<`OQw7jgjz@#84po8syD)ubJrW!3af zI!bJ=wIow}hqN44BE$5uWN42>x>;S4O#?^EMP!R77MN(q%JSMwR+`akdjx-Bw~dFM z|EaAz-jnb?3iCUip@tD%qd)(OL6sozLnXN8z8lxFU}Y;0fEAHd6fjd7?Qw+en20eu zPoqd{BzcMSdf|%>VkF&{lxK*dn8)#$ zyM*MbFCKq{`MNf+^v}&5n|0ikL^K$~TF$YX*pPx_at?w0Ra}Rj7Cc;mXHFMnzut8v zM!36x<5gq$ww%v*pui*2QtP|CHSI^sn)evhGF^(?-7#%@a*@ zC&h2ds7^FK_}>7MG;NQ`iYoY!>FP!IAHTFKPkSwP4XGsi>4fbz4q>Mw=iJK1Qlv)X zsqthczVoJf8Pwj)K+w9NyulL0=<@`IUrxH?V%KEGWMe!cGkg_PW9FsI(98LOp3hMt z4m&&m?IjzqsMb_2SR?$ydeOEC*$&0^L8HiN#|8h@hb{aOF2h1(znz1eQdOW!Cz;~D zy4Lz&a7Np~;`399-zIS&)vlo`IMVG!+*naXRT|!aB0qU($`p4$cA;k=A(&VPtdm=m z$z&25I>-OI&=l27^SZu0&mCJrv^Ssbw3mM@5RH0RJPZ@DrpBv}?G6^fkf1Mxl`@^5=46q$!O}meH0lNILx)ZX$m7 zkrhMLPm%IaeUD~90iH4>Pg=Lp5+u*SEtVT;MVw4EDY?}=4V3*PZyw+{o?$uR99dB` zrGPn8nEAD~s_k*D@?ejc)2HEqicV#&xV|iI7(7PO15K0Mpj{R))`DZFbiyQIKqXW%gUEq zOs9;cr)g>O#qhcdTOG3#qwc*EsZaR?au;4TKEQtpeJ-5$fB#&#-Zhv|g`&2sQ;*Lj z2Qe9GKE$3aoFe2sU!DnQ`*iUb>e0I#BIWF`4-QPrK+NN_OsL@9nR;_Joqg6xX%8|FZL#f!A1yL$wxK+v!s6h$E#Gw{ z8GLzzDnP54CtBSReh63u%7)8hx)N?W9+OLj4$(~q#(bQ0z{KNJC)_B30o^XXV>*%F z__T5dQCA5id}&C!yve&E#6RXwoLU9gD9*FbkR3+yk7r$Zt>zguG##FWM<<@$?OrEX zs_O~37A%@A7H800*xl+7y$UB_FOWDGHTmoZ^OeXMdV)N&8c@i=sE1{gWKu$ufEc5k zElN6n?LX_!WzVRLo=g=)d7}O^1uZXEOd8e-!927X-gH)%DBCWCHL6z2oAr>B>6xkF z2+mvO_!Q2fHOA!6ZxCzm-c5_1 z!rRpKBi+a$@K=Bol5zBIejL;hQI}|S#J`gOp{PfVZcx?Ny%%Y`e%ky|lRKTTs!|3jR*+k$Etn~<*P*nXht zb$@gLihP+B9T9#vz{dvt)tvf6`r8HO{>9wb$&M=x`DXLncBEgIN$9g;g-9c)IPxWa z>goiCZ>H-~8ugdlL9-hU25MSfLq@2z69B8lP0b$sR+_`1#K~X-fYg^L#iZ|nvX#n@ zxm^=i>}OxSJW}J05Pg@$l=ubHIYfk*wkoHZu06YweiiVvCmo{Qh6U8K11g60Z0Jp{D4z=d523_<|3As|9XwAzgH#@~-6O$|6(*kvK#s@m zo;&4zC_P&CG5L$@8w)^4cfXcC7<s=SQQ?-G?X{;g9tvU1d=q_+2LY4T}?O2V8M!OPi}(_ zwuMW}lc_BS3jLMe+e|Lo5%kEYBlEPSwY=8`FaFIx<=?MpRnvU%J{%+4Ir&qn;guAW zn11QZOaB2S_F+c7eGNI-;61d(U}+S<4tUudLV;|sx9W~d9tRj8%Wbv-%F^BCm=N^Q zPadC@^k8OsDhWM4Is4q=51a916wFU>SKrwy_Xjl-(%rnB+g4Fz+D~Ga`o}oKcKvVo z5`bc$y{Xf{SlN(zxQ)vd>^u5{d5LS9I*T3ALLbMW0aeUq#loNYkzXKqMmv!G+d{=A9`pah$?k7odKC^mto)ql}j?`xLN|?Wq z97f*9Ka5hy0x6t|X$J13Rl?fc%J~Ks_X3&PFKKHkczEG9fUsCS5A1LRkCR5-(ETTq z#EGSW9cbe7v5AD0#n$?pFc-JXGYJ3Kk_@~#1z%!Oj6?^nj|a&6qphD`@H1RnCUe6* z8LC%1uhQD(GJ(=p^n>U4Mohf6#ivJiQyZ~;b3NG0d`at-g{IL|cc%)6LR3qYq_6FS z7f-D!7V#giKr2Q3;c8a@23no}G_QN_gmDKZl?71kHr4>qFUuDY^Fa9vG4jkJ5m3mb zYV;_Xsz{sg{gZ9n!CYB(r@Z#VElmEek~-K6V5_Zlu!6{-?^)pFoi}j5)5Vep2d<^} z&4aS53BZejG6?+?ptLwPkdo*Z{ZT9=S32SUG4)nqacxc4DDD&?jreu>!Yh*9 z02gd?Dq(+*=KNhmM4VD6kwUYGJ~iO?iVFMfGeUeC$P}pdq#1o2LSN`}RURAZ8$eJ# z()mcU&30#ORqrY_l+|CQD%E)&DIn-2#-7`K;VF`XcXP{FX|xRg7ZV`; zA12_%lGMWcS+=?wQi5oPy?gZ<4C{cgG;ui)mmIKot_6y z@kV9saVNTbmUU03Lu!ytofpk68Quy{U%)eR!-JtK0vfEEf%mz7c8Mk!veD8VP zT(YpzkKgIgIpkMp^4bLggb-y-lDdBJ9;K3)Esv5)D2PJRpxII4#|}vxu-VN{43$VGN(FoeMh=kkFAK5Rfj2qe8 zQqI5X$@p|2FBuK+tN{j`?=ktviS2ViD~{*>9z%piKQ7`c%^g+2jtKFE7Q|x-T>rPS z@bZ75Ur*(R1ICuKz2e|3>0s^SsFkuA++1d#DCLO1Pr$D)zDH7i2;%8yIFiLFts} zjUW$IAw(^rXGx7MpYI)F*Y8WIPt+&$5+-J3F*umGr($zzN-;7c8%qR*K3;@H-gJvS zJN*VLwQoC=e|feS>8&+F0=euDoKJe!sx#(m!mM2g&?Zs%CrWHE$l}Sl4OEeGSM4@S z-7U6H-#w!hLz~bqKRP+>tqWa3bH`X`8ij`o$qQ{ONwwe00>WC}4kJWhYnn)U0`?OB zQ-{F+Uugy=T$@68)4(TarUdVi7mqv)$5E zmsK*E@+VSP=NGcqUN&Sl+k4K5VMoN>W$Q1)Ll2JY(;Xot0i~wLy6Rv*JQx#tSwPA- zMmXuD!28~K>aLI1t(*V7 z_ajX6E30ohsvZPqh@mwW@Ob8-IEgvfY(9U$zD3Ai>emU~1P^13Q2nK+2|!h3za zzc49?;p-HWXiYCRPyfMV&kO_N^Ev*Kq+{Fc&GNkicxSP4x9Y>J+dL9W`z0B7R@`M1eWIz-=85^qH~Zz!t|ukn3?|b2`Jj_&eN7n zeN78NTt2MegIRXy_z3O`wW{hqGd$^g?05u-yy#!q@$d1W{;uz16~FqsR3TlhJ&Y@C zttz^FZE}wsY)696E8dwmX?%4CmBuJ5kiU78AQy>0=Hp{`PXvVge2GLn&?B3U`#C0A z&@?b%WbnbV9&)4{1i0G|p8pwDM7Fvu?X71PbitdL-Zsc8m*PVP;3UW^s4LL0xMM0o zwP9KMFmc~;et(_-b0j7(#>g2KVG+6SNAR<|+{3SzC_9nUHO*JB2$>rE{Rb(|>;8+L zoLJM=-Bmh6xoK*+VXmN4%=%D0wzBIx;{}9Qc4E`I3{bYyAo|DY-y{6z^ds%!6|vo$ zJxw1jjJ2o9`MFkihg^11WF=A==z0i3Cy){Cr7wKnM=6*ifcGQUWWNLfc9U5Zlgpy_QQPI{A}1R^*RuZd<6xF)y29rd!SfEI z5V=!av-NvPNja`smK^u=Wn%b-DzEM$9)qGmDcdGyVF8$4=41=apD_b||K_$H0P~<* z%q}q**4K)GPi+`@@xIKb=z^=ZK0-Dzdjo+#KOiinK1Noc(;1!}y{+734$%&lag(A= z`POUm$iV)g#-&e}9x^kInqP|Dzo#_18d7`6NB3m~tf+G}>pD;($NxMCqy&2T@nvsZ ziQ{$bu(gGHV67u6hzhXI?jb+1Zw83L zMUM5N)Ng^1Bf{{jcR55xy+loh&ahRz;KKv-F2(4|`qjh9u$4Y*A4>dl>V=#VF%-&T zVF!K0{!!|9$6g)NgCVcpkM^OVe6rzIlQhZ4el=_We)6^ zw^$K#7K4t9bU=X~?R4G#S6Bt!tV<2^XxuDvsLY*C|%&?-5sbo2>5b%RDbM5q7`pCC>U)QCLCz6~b@C(Cb>vdsaQ^Svct8(!FanzejFw}T3jmsp? zz55S|s`=9V&o^J=_P?l0(mN@twZ+nUX?4b?pr`gA}Ay zCSxFr(SMBKzs6ITO|wJ3+81M+pt(knBc>7T7JJ*fH+?LO)$}!26!FrNmiUADHmGI9 zVg%|p?`UGH3C0b@8&b>*+N%QekES+%>P&ZI@6za-m9p|n;3YQ0K~6K=oqO%8{@%T# zR7IWS-`;oiR*JFJ`2E4xYYs^q{rKm?4(jjf`#(_0oqfQ7uKfcZvP48P!y+lAl!-nR zhAsLLTceqtI-wq%todK*L)Q!iA+|JWXfhIA?{h3y*)O#nB|H45O2vrEt+A$5%PBig z0-@i>N(jugApESIUPI&}=cYEWd$mt~c{1SM)yrzi^{3@4nmg6rg+; z6+-4x`>>B8i&MEbMOc<6g z4hQSSn%XNn@viS(87Hoc_}l^>deQ`cz9eZ-Rl{f17y6|}brS9#+53E2Sj_W$kC151 zJ`CN0a6^>e>>4}`UNJeh?X@oZmteXK} zpwNdGww5#a{SNDI`Y&u@hgCf8Kx`Z4%WN8&0;lU3N0zWsI%$nUCW$nIiO336tdz!Y zdO516)V$#}CVxVtJg2lm!Y8^&lKb`_VfnUF9Fni3aaqrY?DWuM zPha+UE#{?Nq4D2WyoFJdG1X2`vxkol9W>C`!OP>RGtR1rRul$U;Q#01{=XoDXcO4q zGnX5fAN5H&=nT%6^Y8W3mnkyDfo<(*#;Nge^r*>t+yiI)!*xLVKSe_!yMtXAi@p){ zW}t|bOJRR~$@;ywFbR&}2GpCSvIe-8_wwfntc>*UrH!y9tY{1AC^w-qI%}2%$Q+Vr zh{L$(14@nj+{Z($@KV}`E}U1)-F?_3T8w#l=A(9#3pq|u+ylz!y-?0&h#}91XC&F2 zW-^}NlcpDaJoa4|?Lenwu5$mufxH3Mmr7(Cz zb%5Y^Ey`k#?_md!%yFy#epk9O^n#qLj{y|% z`kL4!R}utMv0htq6ww3VpRy2LETyUbzk471@WK{WTA0jg2pW3f6)zZm>TKNPG%V7R z6%d_S&_6xg2$I#{$yhnaMGrywMKe@tOsG6`=3O-c)sbHW=ND=n1wJ11e38+>U=oWg zkoLfk9fo-q;^ zKkvo~&XxAv{4~IO#GKIElcKGwF~A+JlYlRT$Rko z%@dM#&9laDZ(K1^zqPzm0=c5UJ^-VjnUM0ecT0I_92n*=xVNDm!@GjUhVEyXCgm4$ z|4y8^&{%*N0pW)H#xlKTFRSJB5X;)F((ne-n-naW+B)Y5{|~cQLo5KQ4G^)!s8vm= zn`DsBwpR;g^nSadgwyNq1nMYTw$fO4Z2>(3ihNPDOAjHy5sLKW9?`qabQygbZ8naZ zZ{uyy1plwA>tRZJjB+q+Im&6~*OuW%m-Tn6?EkS(fj1E8@Yy z7_yy%2^Uq7{;&G{4+hp^(Uwsv31+}_nnO;TT&!Uu{-r;bi783DteW=eP~H@h4z>(7%_h`F{-IGxkAyq^R#&DJ)`2 zh@%U|=hukNQvA3n&nVz}8Dkp<)Q2jD;?asD#PZ@DW7y=wfN*TaX@E~*7k;K8OQE)K zgH&i9Di#)f9~ps@1KbU!RLEI8gN;D6rQO%LEtAh7O(l`A8rMFNPx`|-l({lM}m+Ykad-Q@YnP)?D`f{$NW+73+WIY!$#RYd7 zAy@6i%sM3p^&Q$9v+tbz_>_fc8sfBL5o~*p{RgkrBE6A#d!sNLC-gdUHj=Y%*W+kB zA72mUJPql*PUd_$-SC3%dcLxlu3lh@**BpW0+Beq8rSZZA89>%| z^P?-bS|HI}IeR3$tn`K9j*#aV`MxQ^)=U$u#;117`#^QctP4bg%R56ji*6C#)#3g^ zSSi92A7fc5kv}B)$u0bBE%JTtHH1YcH5!{dNalHcw9Y*EXb5J@ggj)ymXMblQwRTC z#5ejBplS$djQG9IuYnPmN`1JHTVtsT$*dWlW#IF&z59LR#RK#jkklm3EsP;NhfPc- z9+@_kQS)KbfzNc>OWv=s7TSL|4OZC&JVs%HMn(M1kA;ulI~&$2+xNMecDY(K6fbFA za=p1q8$t>g3Svwve?At-GFRmQI-v-}#jGgRCxg$Gey>3x2gJ>nQx02cjo9U@Be1>3 z&KJJ%>P)@y>r4v&V${V~##-=RJ+rCv_-QhF1FYcreR|o$(b_i)rAt}ISpwpOATdl*46DpWgJu6Xj9fI6r)&W5&u)m z;s4K_l|+_TMBn=6ol*TDnZ0(_mluiIs3TXA%JS~HiXho?UVz8Qf~_L%;=j=|u%vg0 z`Nc>_mI^L;H_XPY3`sa`RkwBLzeivz>(%Os~QDcLk$_8zwV|lcM!L;eol{g6az2 z{2G!xj!GvH3e>SphZKL7xY0@Q1)fvTBfmJSPk!nocz9=OPOk!n9lX)E5 z_YK24@&0Sq-swm~L57>d*?k_YFNvME$TSxk@o_FyL8k#Is>O%1}CS_#O0fUwt zL*Rwm`P%qE(uY5k2-$>HTDMbC?c$8L@fwKr4Dd!ea~i9qsR+aa6_Nu6@b> zGE@4JVrQ?&>_t7JA27Kxz6ev9H>?t)4yQv>RBc-Jp3aj#ZQzU8oW>W zZk+tTM^@Kwt@Rt)_2urqs{q42G6Nnq791lmZ|sfKMq__pUYL4WoW$Q!PxS~nnRURg z;@a=tW%u3URZm&|>^ zL}X2MIl;tuPDY77)1;-RfnTse|C3<1OdZTLQCRqr{7iu9^i*>c-XT8=4nDKs`)J$f_RY}MLGUB#0Nluq`_Z;<9z0N1< z>&-&En&o2IJai){eVSS;pDrpJ6(7Gto1lo+;L_?MP5$U08~Xl)eS$mRAu)_c3}8B6PUr=Kv;_^cA#9pZ%MqppSGJ=k}VWxt;09T8@MJC z=CR_>R)yC*f|Hj7jcwi2tD?+J#9i^mvl^E#FzeqaM00aWYnLl=V6Y8-7$s!gHhAP>*VgLD+e4##Ki@sC0@?6RI z)&BP1p)Jk-Q_Jb=$he6n$ccU}%G_W^}Xew9+evp{#g z%AA7?pcJO&DlJDQm=-q2my}FPRZ@t=c4jqi#e1*b=Q-pteWl6$(9$=g!^Cqhu(Cz* zxK{fs>XY=HwDpn9RB)}-XRgqrmZmn`LUQP{oKK59@>t-Qys=M$n`Y0hs?T{vi`gGv z$uzgRvJQ}B<2A5=J3izZn6jYZ81oaY;zjZ**@Je`yPTJD9O{~6VJhEOD4*j$->Nn; zS@n4c9I$4ma;mUdSJTxUei#%|4iabm)chEhKLxPCMAt%T)#kQNkYbEeQ)5JYaqNR1 zYGtN%JEc;j`NX8bPG*)~<5e13Al)h0y>KweP~D$pGi7Nr+WMSr!Jg88+aitRPM{bo zts*=xhL&iMj{>o!2Rv*`)C3N@$-3GAI%`~pweei>)(+ za9#T>LZKS$SD@)-AQZ$z9KUi!p z-mlk0sv6*;l;DqWqeoBeXC)5rVr6hUABgje0{2vV^YsBV$-N%*yMqYG8VmX-@`p8* zEbNoP(Bzg`m%no=MTDe%V;t}gle(gMNdm!FcCMA^1gMRnCQ|Ds!P)toe`#Jo?R%BvQWMFP06I-_TM#s=ch0G zJy+Eh;g}oDV8-`Ho_OAOZTxa39V0m#YzSuf@~`}z=|A~4KJ~9S% z{Mw~Q#Ibw#`~gK@UFbeSM&r-*3O@4rr_Z1hrL=$t64%{SomZ@c&V0)GUqeGff#-|l z);2=O@C4pMeG6iyrM)Y2$$s31Xj)L&$k{9-j4M@d&c-{6*jY^hlRS$yUAJjx+~18V zWt;DX@@4b(KF6XX&SBcf+!NZ=(dzuJZsmdw@Wc8UYt?T@j4e>R=KKa)%jV{FHPgu^ z2zHB${;sc4epK%0XOxY}!A-vR_V$CYzNuPGb~GR+;wOJ_Pb+~lUuLo{yBX;3l?+RY z65Zj?P&j92XU7-x+G*J(;ro3b)*7BZ0%`G0l4NpHw=9W=9hbBT4WVtl-HV8!H#%-S zV@7d^!;CC-I2I&c96Ae2Y&bWR5(92xdx}bQL*O&)K$L|u(mn^Am7CC$EAd0TPC8b4 z9p04-OQ~^~y_FGgY)cowVikpzl|u}Fph(zYc&qb?;x&M5cYqee7_HTT$N5CI(xR9Y z_U&4xh>PMVZZMl9suJeyaHVX+Utj1ct(nT&4X?j)8%uwxQ1yO=>uAwpY%HArw9r3+ z!1;$$JxW;gg7@#UU5kgmMj6Y_fEzvv@cOfrq9YmZbMHDKN`#3T9Avg!e2uYx**bG~ z*UJo#?*$!6Q`xS0VdWIm-Boef))AN7hm~;Hxz5NsS11hGX}y%UJlofV`%Wg|+V!z$ z@+PuEX{|k|>tue_{)z=af570~=J}gWWZQ{+eGw3$=tvc~-QGayB*)+QdHrP_Cn~_< z{EJJh5PU4O5W@><<&Uh*hs|CkPgm~%pxp8v)-lI0Yw_xmzBtA_ySG7WVj6AL9vHV!Q zHj;SS>glh6M{4%)d9n0~6k)$n`WvfN0AWi8_i z;g`%1S#+ccW8&ZD>ox-5a{0%nh=Vh+j5VxNOQrC zxEWp?9OR!T$$9gaf48ZXaGDO4LWgLm1lIQEbcHGHc~9bf`*9F?ObAfZwkZw~z+r2t zvhOC$7Y<%eW7R1rsyS7`T^vb_qhMsd;ECC^?ve(+VHlr8^??Mda>G@wE&MIfQZ|tJMB2XP2u4zsW5>qNEsZrNc7l#F z9!5B)D62p(&qPy5e?69$8&4DwY#68DAV|eMy03M{Pc9MH-La%yIl@ZN!D145{~e6a z!X771x#Qcjju)%_>c0qDOuBY*#;bHb1hfLIP(j}YcV?MHpyakj!_+5k%zS#+-G!8M zv!5QI{Q`SNCa2Y+e7wAwPb}t-F*7Q_0OlAE+%^lIkeNEu&(O(FQdy5)B?DYnO3`Fp zsN)Il(~Eid_xk7SIKTl-j$+8mpjYD!F$I~p|5^p>^XKyXmD$@b>XXC{Ka|v(hmK>~ zblX2lB1zK8UlHsm8TS%&i3>CFJs1tSF(CJ8Nf07B5vXmR`0csc`W*SP&}%n z5jtHGnf}UMk@_~S{H%^xUC{=EA2^~}EVNhS7d;!xV_J4T6(?o6!Iv{$@u)+tLB~r{ zaO9g8*EX^-I(2fI&VxEngYe>QiU(>(ezGuPdQ+xAFg6YhSx7n9IZfIXXFYP2>b!~r ziK1fUX$*0&H+Rvv09S-B0-9tK3iJ`;x4O>}+0EEuAnx>C9J~43BpU80MNr)3J$@Jm zP0g*zirIC7r(Mpfe|$kX<4=iyTzlHG+oJ>fez6<`P}(*tZ7{yMP_5H0t?luN7EY&_ zLHCSM#x{bcDH0Or2u_se8(8xeP++u{N;@04GKzD35@$J=OEE0)qJ#E1^?s{83*}@C z`O_y3{PYrLT>k=G9yuS^X>?>&wiFH2_w-2Nd(Bj~glj!TJ#S3B`gv`KPdQW5u9$u- zeAay#0D^O36XxqN3Ys4T=B&JePXfn&z$zk9?#Smu{d3G+%zg-`DN6(epV%ytWr(f? zRp&hKCj+)ychSXv&IOsy+C$8v5!f1ZfT?@cqkcRNS}A)j3K}dBfVc{Y^{`i3r?+6~ zbgPuTK$g#oKDoNdTLZppfACXj!@YbWl|z|h>vI=Y+}^MUnjtFBpn2yPf7?B3*06ha zZSpOO00mk&G%8lmZd|1Cck4bl+VT6^X0ALwLem5%m`@+{ix^@sBv>QI9$}&oH zQb}ly`U_8D;XFN6V%xP65lE5AcFV1)C>w2+tofYq?;rd9j=u@8l#Wj63g!3Hue>dZ zNq*hqpX?kWW=(%6JSu4-ok&kV&#l*0DEd5AANZ2R&xsm9Od- zDe=$aV(Uxbh{I&8a35Z0oZlLr`QOGLSK}i}NR;9J@4K?!z0C>=7T@M*027P4p7JQ-u;)s5NzwdqBu5C@NaQwNPF{x!uz|C7*keU6mXv&kQ*tEryv z3uk7%OG+8-C+7Nv7lw@s3A>7v*za3T&0f1sOCwV~FX!sTo~{nbCR1e<|-ZZdcc zcX_nRd6q#Qkv3}pk2Ap2Pa$qQcSVEbFD{hWu1-Im6(1k(*3_6WB&~UrFqND8vfEZ< zbDK|J9V%Fzd55ob^)?J_qUQR@S+SzeCoB}Oo2XdZr(+hQ+;9q%+o(C%=xX;U=8@0o ziWL>#e;eQ0Xk2{99*|ikx)XIPm~*dp-WT`grFe!)>LlQ}JodI{b&7!Wr9=~nNXl6_ zPeiYd^09CJ)k`J({|9x7;H+A~A5R1geq21y&no0qg|_7-%ePOM9y{*CxmU5P5|%!! z2A261#d65PA0MWy+syow^qR3aPh%-4HJPzLluy2;zKJz0W@C0GR@giI}t&4$=U*YtW=8&3Px~`=UK*%EkDgRX;||+fHr8 zT?z5sxgrpIEPE*eqXBuc|f};^Weqw5 zjAWvKQys62_~Q4mv(Sdg)c#|5J4QLLK%r(6=#fi{3C#(Vn!g+VKh zk5B7UoPz&4nCbZquz$c{m{UoA^QD z4klY1;a284TSET7KB_F!g@Gqx=?<}9%`vQ6M$J5!ilV1!Gygn@6D|NV%*GMv$RnxG zH(l3KpEf8?i=^yQFW(M4Ux_6AAOT@r=k<{0mtX#Ld0-X)zlToPBr&@cR99#jrg2!c zX?V<&I*W1h)_<~zeYAdn6uv)!=I-+L0ZoII>(Ucy^U}~n>-Fkd1k{Uo@H9J}Dj5Wg zvvRzdSPl-Z*@ia9(2yaqy%yV%c;+v!<53X7lL4FM>tCFF!lJ>QA9rpLDx3fAe2xc5cErBX=cWc#B0jtc!Qs`g29|81Hg*gi z{p?Eb91lt#63%&G6SE3px1$3!lN>Df{=whe^^lBi%O5ZWm0#+tE`4skU8@cn-~T5H zaQ8xeufLCJv97b~ z6p{D$P{1P?8^Tqqc>8oo;u$bz6ye97dJc`^Cin1am5J;+Srx6z*nikxXI~|fK|Zg; znXLQ1Kz=uCeewq;O*5Z?X2vSd@5S(3R|J-sb0)Y0`WIv3@Pq3#0(qKs{3^ljb!JW- zx8rTk2eM866bFlt!0bB37$pGd&$X_&wQloz-Z!4zJxQO=`l{hB7T<>;;p?oY?;|Re z*7xR8lwM;i1m^CS+0FPw}3wN&c6weR9`zpNQY$Krjgslsa=G%pa>`8Wpij z2j$c0TxQb>C9=zp@pamY>|vB6E@98@J*KVFV=(&U0xONc*z71*F?q0COng8`F0aeP zjfx92ud5;*I$@@;XKg7^kY0ZDwnDSdzQbXq7XzPFJf3XbrC!V~$7%AefJFS?V8990 z68279C!R$d-;beN=y}j9$hx(4+5Sw`Lx}5+hSG@g{z)*5uc=8U;coZ*d6&-y;pBJQ zTYKPqC`);5FwuD-zTyDftnFT-btdyS9%!Pi%#m3`46RBYy6bzl6fYc8o2;u!pIh0h zc{99%dU@S@`>@cw;i@&X$J~LRs^|6fN>1aWZLB{pHUsJgby4Kl`<(8CF^J=K2-Mr)L3KQj+6@q5eu*8@7LC9&X$=$^r)}pR5xTnzcpxRR z$L7D(ihid$2qso#7Y*Lgz&d9-E7Bdu78TzE$dy)@tf!TDXH#J`m`R?eg&isEo`gxQ z?<8t!sdx_w0`NR))~lp_KGBbC<*V=nXL6mv!d#F1jlCA7zuP*CACBdSpg?dz>wQ@t z6~Skz3`z~zS_f_1hg`Y-9J^xyP-lR#5{l&)hg;F=n1RO@g#AFLqMV-D_K4w=>nSQO zCe3aA+zB5N^^!yhmfH`*^XQ%P4yL=S+#?k?6kYnXxgY!B5@RO{SVX;=VhgWS({~}8 z`lBwpT4sbhr6k81Om!;<>OuKS=QAJM+5V|S$vT)apY|e+h9$vPoT(ZV8{gU6DRe*3 zjv^vC>EU#k*6ma72n7odsV`-c^}5;Uv49Yuef7>n|7xi4yj|N(P#f@AO6==v(fQ2y z*5dK)@5V)x#skNTp4~%Ec0~=-&wCxIu0dU}+E{GYnkU|*s@`4`ccEeU0d$~hVnM< z>?zV@75(++Bi93JuLpFdm)P+-b?PVx<35&0$_`c570CyEao0u>YRdQP=raNRPyVu` zis)2pd!;@1=sr6lOITSzC4eBzhkJwA3T}2WG)-Ik-GJXZBHe?Ks~t*y?j6HFj-EM# z)t7YoY)`mTBh4|E{JiYaYJkuqy_>I7UY=HuDEW10^uY;qi_tn3_Kk<5&S~9AMFh*V zo;R1v)eOsnBeR~pqT;iXt=I<$^Hln}xIkz$c7gRXzx!Jaw1HzTh#0as*>W2 zXY<3IsPICdP6SQ#jKRgD|5|e?@OD}CTMpf%@Sg!9T7h^~?!_%`-DiY;9t9W^kKSyM zp=9$s7d9fyV+Nlva;xJzbur6jEuS>jo?y7`Pv=$6KHjD_nl3GRVm(x$Z#r{C7TLKdiu-{}01K8?B=>{+}Zl>be_EnQLUUp7GD~->4R!<4U{1<1>$F>1AWNz>&eJN_BgpH5(hmCmGFWNL=QF>w0DrcF! zRTAL2JwXCuj;x!^R(dqM@bSksnFC==Pb3wH{#>>{pT6mL=5*57Rs zBK9$f`%k@nIxZlU%~^=`6Y&*wVh`2i8Ftb`xzF45*3=kh`UUtAApQ!@HNbMrSlBY2 z=3k;lz+fBN{x0vhToHaRi#vnqRdoS=r)20|`dT zFU7tURQdk7gt$HYd9#XN^X^Q5INEKUD4I-O+>Ys1Bl_s@(F?OkY9TYf9P&z zn)Sl#{Pll=t0bL$_6)G%W6N1pa@TD3U}y8vBXaTw^Xw|MH)mw18an;mbpR;vR0!)` zM@|QV`v_xce8*a%%=Ac))@WP5uwii&%I4s^c2tU8SLbm2>#zQU4-VamEfZTlqNsNQ zdLCJT=;s;9;Vj>eyQrS?7>Ae2G_YLIGB;~2z0*JI?7UHek({3u+>194FHIg(eX z9)-WN4cJiw(-1BBYOa+Vd27%ilG-!Z339eJy0uuBczzEbAzdS#QqI;6Aq9*F~P!` z%2M)2!sr3tKO<(#@!FNbIIzFE=&A=|HGT(WxK2$qIY8u5`TPtTFQIT&EuLKPb}s7x z+f#2LP*uvo>z@?Lc~yt5_)KB=%jErtvljwk-#-0A(D3}9fh41MbB3k-*`?hjO16#! z^1md{-=m+eRIhE&3#}(Wtr{W|)>P=E524bXH{;`l7N1S6kJ_As%)f%BKtW_a4?{74 zE>iKNbk{)fu{fr_CG%o%ZMYXI&)(b!ID<;qfcn9Sv=$TMNvwf%pi$fA!-Ge;&TxMw z@s79fwfT?h_rzIyzgSAL+D`VeDZQ(nr|Mn?%j%aBBT%?tN~@nIdc&~%T^S{;sS-Oa z4ImgM{8KLqXKcUQ@{`xU$7IFzfMg%S3@n-%DeTK|&90?F@0oORU-pZ~0$d1pjR;f& z85|bD8Tf<|O(#vXij&u7jeU#?dxn-ilWFHhhgCV%p-cf&3n=~$jS2bnXm&MaBRcD- zaLcJVfm%G1WeeYtja!=M8*gD^U&Y+#wz>jl0-O_o=$csGIB)vY=~9TBUc-w{0Nddz zVhxUFmv3=Q{2*UL4`(4ipEfi|-;}Kz2@hg}P_?CS(JzUnA5?m>7C5et+3u%6p?4Pk z92sRI980Vk9xYg91`{^N3ZxXM5*5FTMrB&q3LJx8WmmJn9&q8O;?&GE?e#*{TNwk?=nptL+@Ze4yRE5=)?kP*qH$urT1#`*kT< zbhB7==k1ipGtPy(H8b2~UJ`}t6DvtlM)!($aMtI4GZ~r{u*!Vq(Mp!1WfV{dZZd2C zUW{UAFHQEoMKkwnti}Ob6er~!f!hbYboSVFF%`p%DrwbD-|yK-lhKtuC}CHrI}Q(O z9iJWMyI2uc4b!ABE>*MjaNnoDg?ej_Bko^-D*Z7*1YDHWy@)!Vv=_Q0QDqH_jpw#% z%~zTO`%D>G5xMSDa;xK5nIB?irSY;^5#8{e?C=F4zg!-q*I6Iw5BMoitV86Te6BgH za7=sj0^)hY;ipVvUd+ zm>TbK&EGU3bj4*2+;5BRkPjKY2JY+-#-f|r2qScTL~24C(Kk@f(ENF5w6F78w&j+> z(}8Y`OgW!8U?IZ{^L6z}noM@MIk8E(gV#s(89yM{!KOx&TmGAsB@;0W%r&gI4|CF7;)(fEW86w@0{aK`A57PZY4Jq~g<& z^%=9_cHdmi3WHDumP7TKA~SuKkXZ!wqs|q@k`}KhWzSSHFGC4D!8J@TXaAmSUT#}f z7*kvR{wn)v1|_KOB+NTLa1muF^_T%+hQuysz6oFAWkRpZ%%G_KK2GW%*1X_f);x~w zk}$!vW)ZBc?%yPefr451LwTZ#S+ZugbEyri2S>#zap5C{_oR>Drj#q9jPGm~Q77pk zwz_Z}*E*nVdp&5BsB%9H+J=ad9vV*^8yjSNmYx(nS#BJz@JP?tmo-d>eqznobQrT(Ik^kmc5uz;G#8Zi0{z5>0@dnD$r z4t5lc9vO-Q(pc;!jr0wC^;)4WTN0UB5FO9WRq?`hje%N}M8JWzL1%k_q*0V?#{ zVsi|#zk<@IDYRwTLj^$*${yDQZHsqBw9jm=rDn#JbYSDL{nUC7dagwXJtxV2UF_7t z{MH0T>2^nYGs`h`W373-c-h0u`|Tah5c{{NOb{lDzM_$q*&cpHO~MK}c%Fr-(apY>RR0Q}Z|H$$Q_x(c}t&UD>ke z+i=xDi2d3Ot#JSn(I(ZgO9p~dp3Ben>1%j&47EyTBSXHwzxfO+dQeva=XCa6!}*Qw zm{Kk$f=J=SealPhvZrjrhgZe}MK65FxrEV&$q_L^#ORJso_RzM7sE9tkq=}}ZY#x) zLVdIgb>~)xcJfXzmOXuAmiZwp@0Ez-ZY5Oj-J=vftP-ck9Ik;`ebFJxQNXTBMwX`; z{F9f(m&NtqZdBQE#DKL|z8iJ`DDNCK}M!C{SHT`!G@Sr7%`LYvG|$M_Dq_@svsTHs><$67}sqUv3RdFT1VX^U$P%ogKx}Ne@~@ zX&uVs`-}$znK9RDNtI+(gL*Fa4noa*lP%&x&O&Y#)V`lKjC>0#i{h=*TRanpqisYd zEV+m8rt4(>7qC9q>*m0v2Npt6vZr~7gzx5+k^!H!8|*44;GH+^I?FXvyO_ezn6_5NAH?6ODQ;YZuX{;GZfGz38JZ^!z{e z-ZLD|uHPFL5=0k4^p+rM5WV+^o&?boC3+ua^xkWM6YQ140%XbCV6{}P(vD&=*rfF$Nrp)?1{i7nNtH^MB2RFYt_(}b~T?V*Kk z3S^lgayN7Ys^GepyWPZH?3F#=o*0AtNmqSn$1|a})FKS{*w$@sX7L)Vcg)*=HiDE2=z3J@cpXVN z)7)l0qJ{!AUGZf73D{)9oM(%_echuRbT#Oj7Zb_K+}d$oW|;Wl5HT?tzyu|Vh3D}G z;zl_)fzEK`eMF+xJiPA<#*f-U+*{W7e=3KSD7q+LOjhU);T+~dJazPnBz~b)g0Lc~ z-&1VqQsB4F$<5BCl1Eabp=xOjJ=Nhja`HaE2%ItRGy(|JUIvAI!cQGQkEsRH%Hi%x zgyxZ}tvie7IL?b(Z#_?6G6Jb(zUiqMLH?GonsfOMaNCeNG2=Ta8{BHL)rThjs-kSu z#2-2K9>01SPNHN4t<#+=$s_ydJ*^1YgCdtOu5+(3Qnv;Lqm&#&1>$UfRc!_@4p|Vp zbit~>DAuNG-CQ>O87OhUdmfBINl=QUN~rr)yB6*{FIq|vSBQry5Ls5pcyX>6>vehJ zF}e<|+scLCdCx%=NmsNi@`b7|3DpWEQZgs@C zw~`}Iw5=ICaOE!F>=cY5yyl<%Eza?R8d6)T0zPI$d+AlQY0hSfDSVEJaxNVO zmrr6`@NgcRl3!@5v*<^^kg|QzP{E3^7J}5Xy40jl$x4>qPYj8G6}T8{OtQbS;IJS;4iJX zGsRR2YZj{iWS0{geA<_1XjjDLmL!mdhNju(ks@V@=MY~Tesd0+NKSp_)j1fLc@wP7 zY&8`Y2pA+(nltH)H^t96vCa5-a(+G%Z26Fm`p=a=YQys1Hk74S2+BBVsYvuHg69fd z9kWk&a)k&;H#4578-FF}b?g@6kIOIRdLg9}DjU%LxW_PQRGvbG8zeUM0oZi3Z<)Ee zDAGq|Sc}6Tk}M54{fu4eL>JEXw0v~KCV9~qSLe{)lTGAz2O8+ctd-wa0k?8)FGj^A zF1sd$DYMWnxmYO@3x{A6RM+8lIu2x>Ke^{R)tv-DKRa2?wkxU)0LaE&d`_xh?4N$q zQq|{EC%SGub2#!+lIfX<*F&-6N|Yj=7M8)uS6%#CX{*CmQZ5Kl)>{zmCckCexo%>A zWM4V0&zH_0JEWip}ND_ z6sPrSPO5!SqP3S-gFN}#-8QQ**tV6}keb0RGGU+~RHEenx+95OwswMRa zAk4qWu*(HFiign?erSjs%$3K+m^uf!wvQ#d?QM)C_oQLR*keQjbkI4NUKqB+bfRc6Bxx1Gq}ks2Yim3Klsp&kDQML zJbW1n(u((O{yv;(TUYxMyKWA@l{)qDtRt1>5uNQ(f_n|&C}Xw#alT(FnL}vw)=xI# zwV)@jumY>qDiO>z%~e$!hx-b7vK5L62NDp(5k2>WrV*2Gp2f_y1Gp$RE@v0o zvvjIHE;aJYiJj+--;=(l&ndJr``k>I07J?E8EE%JS`q#q*dw_j##RTBmYcanKvmEhm0abpij@NlwvnrRA%CLVgB;S&(#9>W zF%9n))8wqtt0Q5$hWrTUNvwxdIOg&%n=KLr~5pl+0ef02gasnM@IRf>fF@g8O6{7+CIM~wfz{!L1!|1XeFLxO} zSdeDZ4J4#(yzy7)>{Au}j@p6o2z1qy$hv&>-_|6nD<<(wDkIirTI02^sOCP^JlnP1 zfm}$_mIungYicg?#dZqWCp7sOjMUY08Zs+JEMsjq7moO2MKV+r4tsQWS247CUSu{%E6n6`8p!R6IlJzTvem;tqoS*{y}_?dEFpcd}zld#u%BH>MJQchx) zyl833eS?Dzk_m_TQKLrHEs# z<@}Oh7DixfieW+vwb`E#-gm}|ECY+zo(})8wvzO~1yX*4Jjrc$*kEOH1cDLM==cCY zq4jXr0@b;jTFV_N|K_5SW+in{BZ`KFR70}viQIJQuoFsW zUS1TdV^cVUwObZy&evdJbqf|I&xG_-r62R&owv&r<0ysnaX^M`hs?#aalF_qG6sznA@`VXK0KjweH(0>iN3NdG)p? z*SjSLcKP$)h>7o*Q{|3^ayj$_xtTl zqxDWAE!E9|VnxYBPdY)CFRuXJ(AQ!W)kEw{}w<#8GF))!#pnwRiq?$nmXtoO9pe^gKkByihP z85JOljiE9~IukC&fzcDj)Bhzp^aEE>m7tJu3v{j%p5z)IwjSwor#_<8Rqna#OItH;@=eUrf27x5gJ)Q~j`-t~MKH=R5`(tva`SOkN&T*^juHsU#p(o)n6e|pk^ zj7vYY)NLO2nQB<+((>6dB=vMVyEmT(UvDcfHTIW(5avIbA0)zf?)CMksWoLUedFG4 zq6;12^3>hHVdTE5Nw?xUNQ|PFG$vTxW0uRp*F2-n>JPDB;#=aU=amFw0V~&6CTEfn zYP7C}6YuP8R1QO(LEPJR#+36ATXF32u`5iaRk3A(qTkcT?nFnsiz>D|Rb%n%JP|aR zc(n2fiAQ-usg9vp9Fel}}soG@VjN`QT8jK{h!n6@|w z;soQe?ob88iIj=cA|YXlE9`C}Ua-+f>BPG1^6jmArPeLxa)?S@IqwZ&G}C6sevHpX63@Q$&;jiEm*dzPfietNT5#5D$nC3DaQ z^*Y(e)nT|g5{PYp85mz32x5yaTcwWVIkF$eb(iKzi%4v{qfNMM0 zLXb4pMZC2&Tr_%J=%FPN>Bl&fclu58NAl8v^uwOyxTcpJ$8ONEjV(P(Q}Ca11`*My zc@2iPEjqx-79i=2s@C?}DFFwO*^+3YaYLe1KQ_eaS=PB^Qo}^=|LEiJD2-YeN()Ez zT~75tZ8#&IL}H$n*l(DBUw+w^OV0VVpn}4Lk>8q2EFFs!tPWXSmXBvqHt-w-OSshz zJ|ixJ#1dTu+V z)%_=GjYER^_h-F|mM50IM(GEnfxlTe`mw5Ig0eg(rBDt~*zUKKPTWfccYmfxInD6~8YcD7 zm1dST%IFIh3&RSk=nGu93D=}uz;Q>fe&V-m5#g@!*UB(A^r^XIRncQo%D8jE=u*|V z!m?{Pp$mbrMqDyU)S4Q9-1N*JrSD0o_XG3%ndU_0JXZAFq54PB72m5QWF*aJHkAuD zb7A`*NLEjt@Mdwg-i2C_(V)UsXY$*+6=$KBpe`AJLjNn3UdZ}P@OlYX9uGA}P;28) z0scFB$KAoAzOpWtLWd^EPt0O;nC=Fgw)6CUQg;Ls=ClMG@JC$xw(WFFud##bu~mvw zN|fcjD9zwHmliTcx#it+mDqTP=ydEy`KOPooOuwSHDNk;KGHOu)z;<8-C>S??UJkt zZ0UPbrVk&1uv~SxzrGd6WnO{G0C%Wsh@LUlICGNWITpK&OFCuVbG1ulE!zS#1!rfJ ze4}FycW5*RC&S(?wt!OD(~S-1dOL(c3%Zht8q1I=Pwvs5rSF#FKN{G|8#z>-NB)Y5 zDolfgb4vfPjD(>asU7s&l2J^KE!AK^D3Kij=W{D8Y_j6qPh%>|| zXjvU15c~;X=$1ae)ktp`Ig+e)H}dY9e>lD-*1-c|C|?30dpXH$?j+3UL!&S$sOC?3 z*m^W$Z@v8zuaV?9Jr{hDk-+o<>rhpucG3p>m!ld}<8leo*$8^l41zH0kpY@>#*{ew zb#Yl!Ts&$wQB5h*m&>0M3ySHLjU`AxekBctl%HY*SsS~YsnW*E1%l3<$yN)Zq`}6A zn=5nUTGrRTwBc=nq=qoyCPMA>R)9DWRf)iNJst5K^D|FT*KMB{U%UsSK1nru7@o=_drFQL!g)6$K zL!4~2f@4ZPUS3UkX6#l;2-IU+;4H)DOJ!a3YF=6*7A|+(SvLBi?#6;aik+d_UEuh{ zleJo3g5W>$&&ZK^>BjhbCl2ObwK&dtPz!KAS1`^E-t5j}l!epn=EEY`RPk)F zhq1cp<=Dkf4@8RH(5PqN&Pyx+XVa%lUtb?rHmBwnC`8alCmFLDcw79K8X`$1crW1% zUuKSC$Ng>M(f1+u<>fz^30W8_)qE0WcQ!a9({?~ltX0~gqlT*l3$z`S{rO!_)VKd} zyEbU2gs~bzhEd7Nw2I}zlA)!scQQ*295Tury5Mh!usIDU)!PDzfw4{?{fvTO&LA<) zRKKU?SAYb5aAzuPu&eQTzn53wy9x{PVMy`*9Y*J6ew{%e-tNk4|$)~2EM@M?u z#Iy(W)~)k1p4R&zeSrs|=lk-rS+CB$@>;p@gWT-%>_DR)T-ZbUD&JEsQh995g7t-k z)6?R&el8kJpWD73Zat>@HqxKlTxl-a^e(OUg>zX|{dUFIUuq)v8n}LpNZd2Z8#mEl zpbT^;UwI^t2Y37s|X^?00;9jXcN; zA$=t`)2l)=YmWPe`r{ZaM;(?$$fJ4t#Aa3DJ_2@^$!F3UCv8hWoUI>+EZ2 z4s}u3zQRMsZnK4jLrt5kiF!Y8Zy1mT?o&GIue98%Ms2(|SM3mV>VHbj8ohpaPB++m zUcbJw!PvVD1ja?BQNvnrMp=F9)9`wc(K##ImXLoP=&M-kLjuLI$OnIpY)*kbC*WgmTLT@W4nL@}rh(C@i zTq~SRUm=61()t+8jyKS#%F9tksbfgty4PnJCu&CNC~mSlGA39gt9D~jTAg0S>~7v` zw@->lsFW0D7cZ5;v;wtXqhP3wU`|*!ar(P^y_VtM5RWBw%h+q2781nzq5gq;$zET zL*{Sq^>F*GF8AIaG(cydx?`45mVpgU4Wf+Jd%oHQHQLITN7i_xGhLF#x%2U>VIz_r zS@EvaE5jpwnnY{=~wf8a4>Btxp%rbfc#aCormk$M(LP==C&+()CjA@ zR-+vV5({}vC668U2FkZ?W4hnc5VQB_&@X-uZ}FsFHYxNdL=7M_SB!BwIRjA=u48(r z_j5CxsOHQQoFX5C2*3No?0F}gValym{=Kw|*cHI279!0gxIjrKcSP=!leW-D{jaCLl zehoQTo3T1f$wf4#4*7FtI@OJ(*s~nkUWQ?2xUVlL$i?1zGybLF4pbsb1SRr31;&zA`Q6?Jq$AT+)7s} zj8C zJGfmgq;~MNQsh8EaJqOFX&3wmE`Q{+^C5ttY9Z(UhvGMCMjl%IMo_+d;xw~45euG{Q zkzmt4ondzV>b6J+?Y~YN8?veuJE~7pI?^4syS)4u>)qz%&%v=X((f*bDN@{An2CX%cO~Y z;sDM|JJ9R%(Z!6<ZM*0hIf~WPEtzG88jF9}TrWIm>XE zfc3Pwpmyr3=`7}@swNrR%Tk_6JL}=LBfaH?>aU10g0~FcY@R+|yFQ(JLSU6RP%5=3 zA}`$2=|=i)K1mt78ZOJ?r|Y(F$?(7;yn%HVcZCJcCeu?4K3Ujg6@%~9LW3sWe%rFU zY8J`kXTuOcOwn2S5D9WE_M0}WTm(N8dvpORgf#wc7WPnLc(FUM=R=X%+EcgMec+m8 z%KQcJvoDsOXH(=rf!FGEtmInRVu! zqb4s=d$QMEgX%Gy$40f28;`~14&A3Y z9QwUHnkvFkr~e(iNIvUB58{8ipg=g-JNcHH<#+yJKVJ81W-7l}4G-Mh(SD~G+yC8h z<1?;qBlH#VYpT75HwcU;6_m%VYs~%j@yHCEs##0loN2PG9-ehT4@-&i_KXY-E3DaE z?KDGD>)H$zOOxvqu~My$un5OF;(G}bT*IBPIH9u$(s?QwlAnrIr6Ir_#Vj|0AD|=g zR-uZFpCCxIH6;sswaYVn{Z`T<` zZ+%z(5rYWf=J*G3Y}Ay-f;Vo|3=V%p9$v|__`om=4cQ@qT;~>UjP`7`{D$(bAbP%3 z4DUhT+I9(MCfP`+)zFf-FY4r|wL_j(L)!?Ok7)D~-yh50dT~yo0aMgNK!A;FWAwy^ z#rGd9sPvObHp`v&0@fVzN%(TpP{`zh8EGzPpxM3vk%`u_`ITKnC=Cmhw-S3dmar1^ZeTZ%>7Jaewm)@xX9tQwbK3`-h>GaYd5b(a30nkH90XxTLamXPBf>Yp!UqX z!ssXFWFUMpgcSD=`8Sx(nY*251<6Gb1CZ*I58;E4_RfrsNl2;Hz#Z7MJ*{S zDy<7caA4K3GD#=nMaw`f%HceMoponn7iWXAtcBwN#8F$H>V?0|AQ@BT(+f%; zLSc21p6d*S1LlpVW1kt$wrjp{q>#Htm$LVc!v6^kHdiszeGDn=O2Rd@kd3f!Ph3fO zYW1QN6A!AT7FRY`meedmB7JwMIYy^Ia~``yvl)Nzq$!t;L~^djEw*BOw#4-Yk1J;F zOLc)GsoyW=j9=R-Nuj@@FS{#)^eNG+4a;OW(MuTJ#~EAQT789F zbv?E1O0Dxu1Lzaxm-GE{4IkX?m*%crogq>pvnh@CggyjcZ~fxi&4Q46G4}GdC>Q*0fwz3Pp|HXWDiCObsfmpg42}b^_J9(50b`C zw7>E(41}_6E)PmXvSr!jdJ~>rx0z?Gn{jFz)R@Z-bE(SJdf*!xuBzCAb)@wSN6Zm= z_@SPDI&{nBy`$}1F?W>6GVTNb#h>f&9X}!c>_ysHg=fOgGoFAif?~xk?hT7~@E{@3 zeawb1SxUY*p5DNhv{9aYC;=yt@IX?}#0iKsen4kw+m{JL`s zDgIAo&Uyn}Y;E_d4>I#z87wGN+j(@mkcW5!3xT0bh4{y4Gm0*|HYrPGj~JY@46Rz) zOCq4Uh8>|w1NPQDP%TflS`H-B!CrvVDYBk|Vm|*k-4g3V40?Yvt@c z=!$0axm)Sgliaq=BW=eapWLx|_Lpxpa~g1<5l)oXcuISV1GswpUOHGoy>c_1g?Y_6 zWd$*lI2fy1g%o|YbXN;syJU=c-ZrycF3pW|mN1H>TzTr_%uwsb5?qIoD+(Hm^+t5d zV86UE@hydwAZ65#!CUJ)d)T0B#P0o>6dXX$)(NLR0!xTSn2XX4@L#<9kc`mmbX=d z91=lCN~mVrW^M7UmCOMq}Gf+v)$vr z0!{)+b2Q_L?op5!Uc03( z*h`8mYdpIQ_TM5X^Q(n!ef5|%I+K#3?SfNw5Z_&Dh=37|#fgyQEbh1ozUxLEk^gJu zIJYZj%WgT|M2GIX;qtp_xH}iJ*+Y$*4=VSWUs^mobZKBVsOQ0*YQQKzV0k4n1Aru& z&iu(ze~pWqo4e%U0T#0WzThcL&sbCQwptY#1CihjFYU!4*;JZ}Dh-^lQp3*L#84qz zpsFmi$;-P1)!W@LCX79#6l-A=`+=;(Ny2;a>0h*9Gt}K)x?s%dC}Uh0B^06f%7ylM zEXL-3Jm_;ss+N?*^U9n>F6fB)+w2Qc#;W4fv-{+Yf>%b)hr5Xgl3j828i^()1{v4NY@n&=RAybSC{S%+nDqO#+B&!C$2}gcxB@jxhXm?7yQSTc3m_e$Yzv}M z&d?4*&3RGze{c#(b1M{Uj#ws$NHSu&5S{B4+c#;@B}1f`5q-Oi87+qng^VL4g!Ukn zzqFytlzK(>YB;fI>G+LBZ7)0pW82KcZI0%r+lnEydR%j$$beZG$4Kpini?F{Z1tGD zCDE>*Quc4b1kYI9YS?A~l?P3gg0oa~>!Xjh{oAe$GYSdVEC3uf8SaH(u2SPerF-us zHT|_{p}s66aQ4seAZ&Qi$7WGa3!6EsPR^xe5@)w4xFz~?oChh$z);V7d%(5TJ+a;s zfxa*>E{DG-U6Hu$+7gs4kpcV!!KFjZa-Vmuw{<>_Bg?VveWk`rm{No1T|?JY z#By3yGu!OG{k7mkRnb)-p)q18eBo^{2MaC=GNk8_nz5cbbBXuYlCF;!+=%FJg1-1; zXU1QF5`}YL4+f8WTgo{I>E2~2R_hkCTsYv0?MPZ??mH=Oz<0Pd#Ls zkU;Gvlr4`-Vgg~4iYjTO@8M(N!`BPdpXyvN-21^MA&6V$LN}RGu(M{Ba##RW>^7Y# zhyzitQ!hz32dDQ{aIjojF0SKAj=r-OAm%`MfAAp#cd;zPb13am|oyI^(qRaCn`^Z0w>cJF-dshFj`WECTF6Av~l zPwW+Fk>jN;>0=f#X$SbmK(^0ZLFK&MKS*0?y{#t*63Xdf!z^0v55l-Hfq2RlxSn3Z zE}LH6Db8~ngZ3uIVC%k}W%MA*j)ZdTiAOFXW#O}qIy5>CW?tCPXOV^2H2o2rqAYPb zYM~>+++vj_Sipwk>l&8b7#Di579|bymKaHJSTa%92~oMubLMlKU{yy^HqZh}vRlgp7`e$~ zl!rq#41aBR!hM{O^htRl8HVg)td)s*vjuWC!j1~E{t9?ueUq6I`VV#)#G(eAphUSo z+AK(B-JiYF&Rs{Vo&)JVs>Ih$)-{2>hSE2!vhMeSmyhDd?p@gH*Q%z3xg?~KOB=R# z*usnJH!ltGdR8c`V-J4b7sr7mifyplkg8dB5zDsFB5XX2k70@6Gp7^6&NT^`*$yUY zSppVkP;Uy5`Y)nncCc?1UzEPr2u~@qy`V~(mNSr}iG!stZmF`{alIzxq&YFAV49_9 zscM{r+9lhaykRa&@`*%-vmG+ZTnZ~WC$V1X7>jZr2sdBNG$=6uI%pawoGYZfnX}-S zjt@!uhrQjo``28dNj3C~O%nanrKyC|tf(R@kEqg|&TyT%rOLylp!T4|JZ6(aEgovW z2ZF#$TN9y6{O}c`a^R5aC$|Q$gYYh03hQUq$`~cXIijgL3QcOw%=y3R>9xB>KX=9c zl(=(RVroMUl#B=&eQhU4r_6gj8?h zL{Jxph3rQNs-@UbY8MB;F~ZxsaQ2dzb0S8uF^jFOi`i(g|I6bluRkB63>_YP!2*PgiAY^3kr{Rn8^+ z154e2h3Ic}EKBdDu`*xq{J=*A?=Z!IP^x>DH9Y!UVL~f*W|AUhi-9}dDT!%`sGeX# z3+XvGC9=7`#^x-BQS|G0|618r-2R^6mF>Vb3g-6Al(^ZN*CebH&@e;yJa94wmfKU$ZZO2u^nBw(G#DJ>(u6p( zU}<6uAp+|!DYS6c*{I@ir}Eu@FiQ`KUzH|b0i>93WZu1!rz8CbO}c;K0lMN|e5FD6 zW5g%^*gWntqCsNA!8h8f6zG-Ysq|#(C9oLr*^}RwJ`E?o-|Iv{ft5XSYg<$KmN}hn zfOIim?H$mQ0=Oi1PbM@7G*C4lPUZc#+}$yH@=%nu>TAFV(GQs;Z7~f#L=>%xTO4s_ zG)-!y?#oF?s8s!WoiYn;@b)lnxv0=T9Sy;m{ed{~Jg>KTuAHH)2b=ct2`al-b}RoI zHG^l!Zek(tI(kxIMwKljS(W!rqq^FINCNFKa=pqc)v?->Pm=xP-yCD(p0BdqZDJFG zZ-_5r5XQp1&fG_iE`5DOEE+avW9sIokp=cL5>if=#D}b0KAKh3{78k5OVI|8Pa*a<~!N;q{;X}S}Qfh>< zRpi$V<+`EU%}veL(>!`#-RoRthxdz6esGiG5kW>*xNTx8gaOiM>nLZjdEMx6Gt~~- zt+Lv@@#nfa`KG!*qDY#hKF-ME!i}4iFN;=PEBgUw2zj+%BwoFEbNrwxl>s=3rv?qU;?LTM}V2vgU!7)HHWqI%Vuy?+>C1Uo}8BouTFB{32NgJIB3RI~Kx2 z`LnIMjTi3zXf&Ayhq})!GMF5+r&&O6xxIi!Mbh9}d0 zgFp?%TKiC?D1z46$G{qjl`fI~47(J*hYZxXEU5Dce`!7Ljnda}4= znUQVgD+b7Lt80c238QMpw*5zWE9Q>c=+9O@?+p-vRfE-z(ir6Y8tE55k(Ls=HTfjg z$Gp9yf*|CQvz+u1j47ocb-;cj=-~R`v~LUb${-n+JsJJ=5uNLKo!xIxLx#Zr9WKjr z93o7XB`1Adr4?lH(KXBbwc6%9Jm?$- zvRP+np!dssdbrp9in`FJFrTEv1#_+1Q38q~MD&5n!c+vDR}TnDGpz( z7V%Wyr|*l_GYXTrLF*ueJ0dBWJktIIl{E24j(y*ZmDvyRewoNkUxnj?Gl~BA%eU2k z?++s9*S7>;-sQ32eDlXd+>#lPC7(H>PF7*76x;Mz(J&=n5nC}O`+=hdi;K$Y-m0Xm zBZ7iZoq*yjU7U|BX}^{Pn6o$cq=Oq(_$8zi+Q(5=Dv6_ar1VWtD&uV@#o2A6n{492y>r)efl8r1%c)xs)VbomL^2P@>g_L zPn$2y1jO;-S676<7wDCVX_u_0+7?pi3^@y>waPY=<8Q&%XJQUCS*H-e=|79+(Yq6N z-pKb9^JVH@Z^7I+-r~mH2&-uIHt06IV*bw`UxOa^<>M`gtJwDLQ-d7~fe*p0(Ctm& zsVNnmI()i~N8Rq6EYrePVz%R;9FFj48RUTlg~QO$(7cuITB7}-S&PChhc{$;)6l_O z&VbSCa2{VHIN2fI5adq>LZH>B!9fIOc~NWFGd=BkzVGITu_(5{agDR@rEIMvC^*4x9V8*#AhQYV?E zdfIW|+D0W_mxg>zRp4a_&VWf~a-B`Y6#%bJTKBwLFWE(KZzzknrc82c&t0;Q=h%h% z05K0v-CMMxIIx{^C+XbUz>QW#PTej8mA$Zbp4>t}=XcCY%#Q4B;wli;Qry7}WV zipJ~D1N7%N-}h0hMSc8(QPZG4QZoLS*WdIEQW)3Y@kH6EvC+_8VE_9bFERBx#J(N~ zjXDAUzhnjfP6Gb9k9Uf6@2{gohWZH6|JO?DpG)XJS(5kq z=byTx|GBLGck0Q1e@Xo(;qJer^iMHw6|vjHOgC`tC@1hAV- zRZ8RL|8KgD5w6jz!`Gn=8k(cj{{{g0ciQv+n#cdwNa=sP+xWjmQvajf#(zoaucXS` zp5t}m8}t`q{BIfU|4UN;vFWe>V7C$R2$E-UqdyD&w*ReH`k$L+{Qt8V@rza*{f1A9 zW*Gmej_co9*8i`h4hWBT?#@&emyjSE4@w!5(_a-aB-?`D(_bBALR*k+Z9c{H z)*l-?rr=vHJ7*Fw;8*m%2KY`DQrPC=xUTiyH3u~A-?>frCKKH%%)fs4@6L~P)uQ6D z^4n}4!DsYa{e6jjn{Fr!M*G(fsJg}f4L=UuRBKP4+~C4c#GC(=?eITFmY*t$wUJ-4 z>dn55ap$>(QYLPMwE^nKxG_8k%Ee2$FTMjYCc(QfT52U@4{wg?10KH%n1kUbZ2~t7 zuU7Z-?Hu6?B)9%VhVNmn_xxVgFR^rq2J`3B2V=u+E$`@CtbL4?eUA&GOwTF?w_Uxl zyk4DN=y0jE7?z%#Nbcv$ZaC)gOJ*$V^ZZKoJ4cJf+C89ag~+DgzH>>5Fr@^HQ+3zCj#jrl09;45pS&XdAmDy5%Rz5Oz&y zp37h7s(U$-;Kat|!sP{*z~2;ihX}lnP(`ll9M`DE(GBIsQBy2ty^B|0IJHOapdCax z_@UHGz;!Tv?(kQ@abaMr^DP5*eJ4ZlaLSReI1d9)!tbW5~%-M;JX zKMo^b@8dK1?xo}acENkLFsx@;2357(c9W7Lo2h$&OW@Tgb%Be!{wKZHHMHy)!+$CMfjB|{CTGHIuD<^`yAN(GKkkM*-&KQ?ICQp+t~ zT@Kb7sxbYYJmrA)z1jRB>OVtkWk#bJm#_<_qS&(ra8n5jCrxji6DQh`(cSB^pPl`r zl#YlWP`%O5;X(l56LCz1_N<)ZKI&fpf1B~cabExND+;tVK_(Pf`4c#fp;*>~jQK2L zCtv?w$z8-M;QE2A``5@N@;&0haHE}6d;=_gR1_GiL5=olKKi=mDALJq<7GoCg}A~) zdvsm80EDAdF<-LT{c((X?P>C7K>yNCwY{c$u`#CI%Fr*f)4VfR9y z=~`+{;xd{{Y;7$*(i#$=Gy4)6HF}I27guv?juxLrd`E*yof`DQ*sF1P6LqPBsq54p z7TTw}GTmvNC^Wq@d^Gw;#Ar2pzXBo-6T%erFL=?=rlyivkYDC@k|;TwgG!{3cOD1F2ViRE&*_n5a}+<(dLEHpFZ`3uc(s7PZ(n+A%7raj_AM7_*1AvwUG5|) z=nsXOUUSr<2sP06hu4N#DvV-F$qJ>UfP>eA<$1k03qelqTQb%jmmGkR5)o4b4PC5kNzvaHuV=o_-;tm3X0+Z5mz`p4>@ zRnNL1Hbf$Z-t#^1LHy~AR1HHXXY~`^o|#7u1KfLHFwn%kvBU!=_|T7wV*OHK;atWv zc<7Uuh&^2zW!)}i`V04MO73pl7{FU0{GTX$ogE~n;j*D5zPiBQ4qv`E2(!p$$xkE$ zB*%TL@PO{l4C!cV%+^^nZFy%zU|X~u16nL}G<_bm&6Bbq zQ!d_GJop^?2T6`}EjWs58fBkQHw+_wJahVnX|}d1A$0QsL8qhgEzZZ@@YOlRSfUH* zmR$I=r&G9#K&lT@Vwd{| z@zk!B(@O;BWz}jIa(3Ur8-DazhjcmQ?P9%^-yWFUG(^;0aAeJgK zOHskY)C)2Tl7&IJyH=^?n@{O@5`d?@W{s;G3a494d8=q`i3VEKunEw(j&|`el(#pl z%vG^i%-GMt2&lqEoxzYo{Ql{IoE#I66?F9a_uRdRo7Q z^8i5C*SQk7hCvuNClux(hjvw=%Cv!t(v&%c)OW#~<-(uVaC%OP7Jj+Zg};d_q;wRcO~~h<#9ZJz1iX3Wwqjc zY52PK_M(9bw{B^$O2Q`k;EGvig>dWs49py9r8;n4%5^to4i@9NoKnn9EVz_VR2Frz zUo#+Zv0h2@OssIxrw|04i(Y%q*Xary`xn+oB%{B->PFKvthc>tH0`WT;eES%6942j zJKce~fu*Fv-Tt1g#{B%cZr@TOM4!BHx+_zrr>1B(l!OYGoNfzNrT4=Hh|w>$Gal*4 z?FO?at*2J3l(u|_mgm#fd)gtZwVwL}{4*+9J~(1iLF3$V-1&BrQnSWnfW1i;w&!eK zL54!=l1&T#K1#jIUvef5oPU0Ap_o!gy4`xh!o20NU(=k~&svzvW`kdt0DYk-u?FuO zcI_?Gw$QWFZfsJ|;$k`#yqAn(J!nMUh!E4DmURk4`Xys1rGKLS)a%XyWB@}`>8~%P zX&)Ki^*G)qZEB#9f2%o-KUuqH)~_OA_2_h8+0{%ldTQylqD#|KrkM}xQp;8hH2nJ= zynWIPMmxWiQyAAIZtZIwcEAM|BJKM`SFECl(Cmlw)kJ8?*9?jm@1Nj^gJgHl)Bb;X|_DnSPHu4eaK`UGPwI53Tz& zz?cc3b-85ow>URUB{s)9_0dTZd|p-;lG0=1jw831UlFM!UPEwbRnNn26-!Zt!||g5 z1&`c0i6V*EV@cC8S&R>_2oG#6G{R>!VePb?nYW^XixR@>VTa@%E%(gAPT2=u9M@)X zk@{;~PJ4&RrTYV^_2#LXy1Q8`Iwl32@>2&xmW>moY=3rD`NI|RnE_C*TLP)=mj7Oz z39QR+zXGRjTKDAGF9Rm#M*+n-eRh!#N+-UaUpjC)PLA;8NO>`?>uIXZrn|*U*iP+Q zoiuovO%fHXEY6ioVUSJ;d{)+(tviTONRX!!FoG7O z8AVG3;_36HMt-x1Lt>GDJK>QU^izLmIZi%BUX<(CPWWg!u}t<^?>GWqZii1c_f&`l zRsdV+Ra~v#9j?W?%!LvUHSa>B}V_+A6`gG%INIW7n>xHt8SK0aWk zj@Wq4pbWhEpyyM0#j)KXm_`rN&DfC{l~^}ygKa09Bu~9Y(X>sT7=wEbt-ghp)m{0+3mZVR3YY{uNiq7`zpq(BwXoD+l zEjyD&YX&MTMjx^2)^H`qmo}s}r?2?$1ZSt4o!GV~cVLGGx&wVJZJS!dI~R?L&g>X| zypTe$dT_aGwcz0%Dd!h*OQ#{*6B(1Z`Mz~0FbwQ~29b@X++KrNvbX5hGGi+w&})bI zl^?|WVc>X8gTP-H0Zm9Krjbq*gN$g5WqhvB8BXQ6ic>}UBgr<$zi_S!mr4sSh)FJBcsVEjVs64-{NVn;BAt!c?>d8jh z*hgtZ8x^PcUdP~a#$31j`CKh8&7JbD(}Q6?pUVBI7_jWyUb_){j7y!<0~&#!Hvnba zm>DcP(AMmm*Af|^hzt$3R_;sQaq$vhlUR#MBG;xjRGwaIa_tInW+;U^TF^SWlqJH| z7r!{QkO87`=Z0)gqttQ5M0UomDiX*3b7b|#AMV+IbO_~6qC&Q z>;~P!U%T}2(69L1ajckNhX%}8j_|9?h$vS2J<~hfzl7>lojrz2wy$iJfY17w^_i|X z_{B`4!c=YeXLki#Uhu0fWU*;m2_ zi|BYFNyJj^ST{c}!}wgEdcItHm;|_Q1jJ%ET6t_g4668ePn_C+D1W+_{H@kAtZR9z z&Eswbc)}!0Aeh8u1fI!&Ug4@7wCP>N?u27+`dCi42B@w9xUD%#FjhmTs|_Pf-|e=Y z8cpV)1}7uS?S_)etp+oD!Tl!g+7p=y6!xUeO6ikP!gg(CiBAQZJ*Cg|Npv)@u9O)m z3|MBGk8ne~HCTV@Uf1A1Xufc|^LwJf{siUtDQh1@xYqHS2q4OqEVCKPdffU;Zzn-N z1;o=XATJn`^Gf7&^WZy=fRE7E>XjPsaR*wmO_a#w`;FDY>4j&FR!&OGIUf{@*oglu zJpmr19pC6edqKqmauUB{g@#%cQWZEHUD;l`b@@7+E^EX`KIp~WE}3y11aJ6)df@oc zNef$Ob1Y_NjupgSX4#i*&OyLvvO!hpzxPfMOI5hXt^Ixu?3buF^N9;KG+HOy1iw>WRcIK@R&=S~ zei0(iQk2{1cx#RSDS6q*zkdVZ(Aui}4T_c50?QPrBd#kc=7c?UpdsFyyTf~CXB06-%*^msOE~Sv7MO7 z96lo?m}j(S9}WJRq4JzgP61$Q_C%_<+UKUuZa3YH^*JhoxDwxe>k$JLrqhWD)E>r) zNZVKNH^3FAn~TZMThb&E3muhJbGsc{Y*-tyu)E-sjV6xn!(H|GiIAs$e2B$F)zRrp zkxz&jt8g9qj-9{)I=Xth`_~iNfwMDFuYH@VEH1wd;Zqt*D*O9ck&|E2LS1%TmA_Kd zu6aVHOm5dB6gS<`!j)U--dpZ9or$2tSuz@H%&{d7+;ud^*TY8cvz*r&P{WR&w^Wx@#eu z975$zOekE#((4lvTyk4lX5TP6zmwChhVLZyQwq!Cq~|l@cj-Q2f(e_iW0Eb(NP18p zx_Qu*ywtvz-R?)PK0_FP^Hs;`MTG{^t)^vGCOa-8AG?wo`@mII{%R7YK6@HWH2Cb# zhQgp1TT0;+L|k-;p%HJoew#1(QQdO)S(17n#+SC2da>wQ*{?8tBkR6&P@J)bF;|wz zGnUaWJ#3nUFNoH?&zrLSk*|`0qXF8o8BabfJc)GB-Q?Z6M!$2|Q`HM84xJvwj>d zw=fuMx&B(4H1Apn3rr(C>4$vt+4FuS0TgA|(^oB)LLZD>+3jpbC{y zx9#u?F)_B8+1d;KHQ!@~PY3v!jqHHdsIOdFqz=&_Km7Lhm>6lFiT?X-0o41U_`tfl z)!h4ScB&XLBe~9DjaU&ywYKK8OH-Aew+`7(@B;9w@2+v&7ENZ$LPK|h{g`EW%4w*)(wNO)3aX2DS)&DdgZ>S^C-eflgJ~z{ zRyC-2R;*caA4D?KT{NI2>}Hxs7*Y-sYU0PBGt>l#*{SoSM1J}-6yXuX_Dc~QfW~fy z_15zKv#Hvo0j)I;AGv3fAGB(tw;!GPk8ww?C;MYBa}I_4AfBA*b6NFto&B4sXb?^o zj0QnV^Jq%uDrT(e{A>z*2zuQtCBpOC6FY;aGga$V{DDF~*O^VV0QbAmF9UtB=(mcI zk4w(%H5G#yBX+;_e^Gg+tNqk#o_r(~6dE1Vt>FDj1@y)Mna@wMRq#~F8JlG&taCo( zZ*X#3KQYg9nlLKv+ z=lf(jty{pE=&}NlAbMQ>(bx)|bTSRZl}j*5^DLeYK66TsXWHM8i}~XA>Gje#ORCB% ze68jKq7f~XWO%Q`;aqaI%3of!7#4k5Z(_*HsoaTo!3%d9+)|EF&e82$kR7(JVbj>5 zIrUkYH4*D!Rl9J7>@4>a-3^IX6Uw4ogXlff9S|CXEla|H8gXQ#=nSc3(vThifRq&b z##V`yoGY6-P!-!X2D2svD0J5Rb2B}4qZU{JCFw1cA;D+yFbRPbf*Y03*X_(%Fn-G^#_;=eJ5wVLG+ z1LY%qo43clG`ocb?DsDEw6bLahLY+J+gI8v$#a$|S<*%3Ra4`Iv#Uj+lb79IO&y~Q zd%ALHw$0Dac%iV+iGIXz6=1On6To7awR+WI;8iUm;k3kVZ$)#;*qdu<9KiXO)PDI; zyZVb_xO%;uBmNr!xR*}G{S&t>z65;R${8AzGvk$JYb;G%A5)sCdZaN`Cj-sJ>c!v( z-PyjIH!l!JPMwBo2;s=d@VwZS_0np$AN_{;;FU|@G?FV<%|p|R1Y7vk;cSQ~(J+B8 zZ6^4qnP&~|S4T(z!@rFH_MB}{vxY1j9K4>vL2}1{+Qq09N$G7ausAyMrT-=fI!V2r zn*3CZ>|L zcV8Oy2SE&qVrqT+V`k!6@(Qdsi^V~r``ubXuYd2<1dz*K0`Df&Ev~$H!(1;b*Zt-< zAl?!yJ)V65A9roU9UrGS37ITeZv45l(`#3T#0J!3*)&gJ1c3BUm9Q|xdTphBo|sj* zC-}W`Xfpye2xj47AH3$8#UmTDw=vyp6J|@ospROyq`oZ$uQhhT9wVuy7tSpDkT#w) za#@z%+odlu?;U>;pi(2J4c#2ySO(%qYR(|o-2G1RQO*f|*hn9@cD%>GbV(!dfHW;) zv@Vu9N$86|TCkW=V1P2IK@d7)?C~33mO91UHfIX~)IxWb0xxV3BOlyra3+sCa*oL$ zr8?%uRCDq6F^XEdXGj>D5bI3o=Q`MjG4Zhq-D2pUV_T6E!?&Q|T&c z-!f_{kg4RaBdfB%2o+(jA9kSb3dyuZrmxGk`rje&4qnE{LE1LhFDMH=@v0SKsoUY{ zpp&mr>v4^&7WA#TEcM0)hK0oPLtsKCky@2s8tP>(G|lEVAi@N)n?-TU1)rYJv>fi0 z<`tZ$Xs4U|X=j$1*ImjK!^aVcA2-pREIjp?$Ot3eocqPD9zR$W5O|%P@((-BMG=d@ zZYMkbEWi(Xr6w8e!u!<5}y68F_`_Nml^jVH?6FT=6doP&?a zZrnZDr|EsqXjr$X@kE$NkIQe)ADdapkx$bbUMh+=%HMdS{!)g>uQ>P*EoAvo_7#7l z$A(LJ=NwCGn~p2rJDXD-91t$gT<^BUIl3|4PQX~{6_=!0NURzPi7g4IQjTN250{=a zW*xrMH|waR-BLGk3S|Uz3?rPw{e@Mbx@geg-~)Wzlp}2?qlI7+@H*U#)L6lsM?RYu zG4a|S-4;4}zZ9%fn15FhlCw25OEcwGefl?;iP!16%JlO3RMLy$gdu!`I{a_a-|h3) z6UJmcAj~DG{mM|+uslqkEyR}SDTKhCYl2b@@J3%#)`H6PWep6MNx8NV759$Li3yZ;Kc1#ORopw^y_ ze*9D~L|);{#_zEX_i6z7wsBHp`A)ok(J3{%@#o5)UNi(jLz@!qTg9=_ymtn)MPQvh z$F<6LK&KCO-?Pl^nGu7O?cp9=tx^kvpzvIq9H~qK1TZ zxdAmTXJQ-5%W+eAg*<*v$+k@lSQX`VgEpu8{Bl=-oSZ6YG)R6iyr6XWjY3he2^utx zS(Br!TfGhaFc6X08-k5k9tzB0>Pz>(^kn7g&ODzfcHWY=8*UqWXYU)g{@MLzviYZZ zbwje5-S@7k3Vfev*hAgsxL|Ld?hzH))U(S)KxBtHiZDO z7j6Dep+^bkfzYn77((~fdt#)w91$#g=E%KoE=97DGeyWeP^a^vw{T8 zXT78S?0xCrF8z2jc6Q-2o|12S)s)6?e*qAo%Pv&arctC4!p14ezw}T8;kWXGa5lA` zKSzI(#o#K^@M9D;uDEAkQ1qPZ%xnAa3Ttj3M{`n&qoI`Jtw)(9FS8u!ju+0ir)!&0 zlhBj@ar$tDa?b96a1S{jEU#vB#|54!05U}T8`-7|eHvYkJ{pUS@BGzF!Ya21T~nDV zsGj{eamd5?+t8?5ZG@@F!psIlp1tpI_FaTmra7-sOVd#{v+Rse=hslo?B}ma4AlX~ zt7J*YC=`25GwLWk)T=CIL?i(5vGQEx+oR<$5Q5i4Gc_54wigg$Pa6`C4`m(=!s$fL z()MVk`)%BWw%j;#*;iNN6+wwcA!R>X1rn5=F;*LEb8VS?FlVRa;uj2~XnJB3w}s|W zjDovs&@a5ymLWb(h;wJ#;BOx+d%vIAPAMBB_gcQUx!b z`0qFb2qfu8wvW5cG!M+oj_~K!reoIj%>cae=VV<)?#k zmBZ@`7y26oj)<1)e$CxKttDh|)<*0*&Kz*VX@a_j>*Hg*bjh~EDg8Ld+#mEXp#fcm zxT5`?n!|T+w<1uG>_Dc1th?2BSv48yajDU&|BQr6x`Kg`d{-)>rbvzF-F}Av$k%{l zSf=s#(wOApytbYDB0bvxBbE`D^7H9pY~N|hask_$`ek-g+5UC! z-ejt?$tbEhy{HnFH-UxV?$I{1ox!G&SeC-Ba3 zRD8FB2Ibl5_@iycoxXm1VK>dt|s6PYGFgUX8D4;Jwm zdx|{}$P)zAb(zwwfh?lug6qT&FZ&O+MpI%HE*1927!8_3)6SZ~4u0Q*ZS_4-z8RqR zs&VQ44(Qwec0LCy!5_2`%20w%YhR_!a6=WZV=Us*tev$29$Uv%CPx)V|oe= z9b5duv*l;fh-s7%|AcgiKBn|fdA3b$~vMPJKg_s({_5bsMZZ(;l1 z75gnzMCc_*#-d@Swv>GLnR)Zp{Kyyeh7fI|9Yz@IZvSBv3YGP~!Izu5J+^hB zq`H99*-IRK5|TYet41YFKzW>7Hoq(TwfK#$Z&Et9xp3qpSS$%u>4jA=X^gd4pO_B) zPatwC|FOgN=RNi36;_j(b*ub6JK-|>SgKflWFG=Wy*p)gt=oQ3cbf(KANF~>-l~7&X zd1W6#U87~g|BNb8IuULqVwaY&u4!dOD| zZ&2?qo7x}?kf{LkqL=X0y+4`7#mdT|FUd8yFdyV{Z}=zI0fc~Pm!%RrJy$m)1eR0Z zvaLq`z_r6-l%kNDKT&C>TuDa*I1XFJiw0G*lDeGF2v+%w>`oIX#T6uOfYLGO$JkmA zbX>%~G=yU#4vu1a-v-WK>NUanJZBfTnw++_8g+Ft>s|&po?=TKlY`@at#;j74}rCO zx!+UB{*3_=KD$i{X=41P+54zEeNK6|yqY$62+yMh{4LljVV8tl3Ibm^vGgNuG1)*n z*>OEuVaTdx*3FEG7e~l$5ygez8*6_6wOSvE8FJP!ijrRQV4=|VN0m&=Q}mtg%p`fi zBJ-!m^^eX%?fij-gM}C4ITC^r8c+Wek|IrHl*JjCIfz)Vs^1jMZ!GTLHKKZagVw^wPTDIKN9)&NXb zX1PWwlG!h^j&%7`E~L&#$`;SX5@X0BROZhTP;XfjoxiX3$hiJCQumRvWdGJ!i=B_b zS);j(FLUQJNNU9zC`EEP(TFcY6cEcD2K#Uukiz_09W*9*TRia&Qg;*|`_w#6J}S#Y z#QD4Vu7*1eTH4es#s<{eZF3NQg^7dT&RAp#sE8=*BIX9Z1zMl_i>{%nL?+{bx>_Cc z8>bum>>*JiIsc$bQODE zEIffar`8^}c>&D(5YNunq8HzL$v@_le(uy%26JD;&fma>`=Kp7M3(M_?$F!qmD%sK zBUDV9_so-)j2th*NAVey$OKPWejd<`4v1)iYlXiVd)pX}ek66j5vvgX3#n#ug zz9*9}nMyf=3cCzFdLmVoekyIXiku$APQO3oiN0A4#0>n`+vhg}61r9QrgNp9vG|c^ zOI1qXIGn#Z*c$a!ZL;Mb+j}?tt4}PQp&EWv`;pC~Z74OfTNDHoE!!b=Zwg1VQtHps zT3n_V9=^ggL;l7ksdoV>Kw_~1iz`lJPQ(V}PE~E_jR-$_NR-<1f)cYr;=H$PxWnf^ z^vfo?dvTr^C8^YFp!T|3SG}3)czad+_Qrk`5K-wb=$5Yg5m2i%1io%o`Zsm~c+p`( zOmS`OR+KY8E=y<#n!?{4a-BXPrnPXdj<-G1v@OWMFMdiYtIkzXH(z-zN}T6@g?eqq ztTiQSS|zr_S(IIU?PYic-ez>$j9atKP1~q3RG?e8pU*8MJntf3ri=Q?L<}cX-@Sel z?bS}j;WX4!>~ky6E4P&F=71~nMCjOxOOWXy#TXqYuUbj6qWC#8?}G`ZvV3JBoNlg7cU4gMjXxv)dvi&oA{y{#CDtRkze{stBtxu5*sg zl)+L1^1Xj#XivB2+PPr6n=I=aMCcQ87Y6tNr?tq*qHk)re;cZrl9AcD2Cq{r$(@mI z?r>hWPnJ+`EY1o?ZblyvJX`oRP=43V#*f#x37I|qd{*hrRsIBUSV>~5i(Nnw+;4Ed z=;B(<#H&r6ZG2o)H2q<#S^#_CYcmIa*!XwKhsmhHANz|z_z$Ed=2d9L(&-%y4t%B^ zdtLM~gpAH*T5JdQ`wS?~;*U5ZBg6mdA z_R_UbvPqnO@hzZ<1NDEOjRy;0g0(cJhE~;5~K%y=1 z&P|nJ-QBIuZPbE5(5<#mOvr?s>~O9hbT92z=?Q??k$M6*b{VK$uTutUQ7)$plbtSu z)JP?14FEeT#40_|MH?ki;Qf%Yy038U;#EvdB2cQkmEghy5PhR!&h5Tq0Pmq#9m}cy zQoP!3)xLk=Wy~55Zy&xNP*###e%A3Cr4B-xX^045Y()e*1YWnR_ZC(2``WM`DLA-Z zFbXz>R@nBLWr3z$+R5ytVInpz8(6ppiyq{NxdQE)I-`zQ$!!Vzx~tD=Sg$Tuf0_2O z^>gcZMcH+p5b+DKR6lh}b0NGv_^#**cxA6>*i%^*q6*VmlR|J$|_4Rc{xq zW~&}^Efwh*#R806!9hT9D+58%9^Sca*Vdp?rqQf)Y&7s-{6qnpt9b^tF(50i3U;|yF)D$tbj8LqTF?723 zTVrdAFd|i%H#aDel%^elsF5r2P+~|qvze4OEgvEXNH`j#G<+y?%V#P4cU>X{T+a37 zV_Aok&`z)mNkQ$JU%>)fCO%SYy239n9_U3G`iax%zYh^x6BkJ)ya3fD6t}@@CQ8!X za2pYmkzF}0W_2>3V*8!84kIRYt9%^D;X$PccfEaG6WUtyVr!th;0K^jBO_Kg>g+>l|ae~_SfrxUbs#E%AQ~R__AMU*IG3KY&ycJ7W^6-lz`quXXuK+9? zAs7;K9(@=>)GP%*H2E1h>sN5fp>FZpsDS4F?vF6tE_FETz2K^)$$gbzIml%Y+~?3@ zvl_9u)th_$=e=8k_j%_ZTw=X#IFV|9I|u zChsD@n*8|}xT@>fWBDGfCEB&!6*&3F=2%%h(Q}M>pb~8d8HR8<`{W{Pj16CA+@@VY z;2N{T^mDNh{XBR4?ARk!E0f4 zjco{Ea@y`Nd(|bV%BGBnuNzvFmAfY8nKwBTLTH0$GTH?8wkHV?CVHbTx>Nnf+SOK{ z357%kPAhcu;o<^$ptwB-&s2g^}Q6in~d=#MNYVWQO)V=`gRjlBSUEH&Ec{{9E2 zDTbbf#pH<=GpAL_(VmE7ccZjHOxd#$C^jNpfu)dYCzUoLy87mu*J>Jl1q?Dw;P)~( zrF}4jYk+^esE?btll&kz^ob~ZH==SVCKNe!zad~Wq>1veH}gr`+cYmm@3a6>3s;pl zrC71f5?@HckvJdV(^XddB$$KDq~4U^i1h3qQdHw61up z`bvG?AGXmQxRiwhk5`SC(0iQYC~bgal6uZ|zF7B5|8 zd-2KDv(}A^4fGIQnFai^i)b0o>cfgs;-Z$6-y3WKPbQ0cu3IS?0E~uh2Ls<~suo8d zXO;4|z(0Bcgx2=3Alf_Cg%wEF*lCvyUsLvDlrkf^#|1jL&8JQ+Qf)t7HVBst0m!|n zclt3Bgi!k_+tBxR0K$JNbODtoXs0u%3w!|zoq zTr3O*tEY*36~sC7g%_o9PRZMfQ@_MksHx?s(>5$&`$}ten=&9|IL^&_Xf)ZruH1gX zJ9v#xqBki~`g-|9`G*b)`Do;(_{+-j`foP&EIAK{5<3EcL1W=S!w!&X+fG08^jfLH z+~N>dy3ao+*A(p20OoAKkDbjL`i3uz6nmxF@F-V>nrqY4f`-VMOa-j5|u$u8YSOb@060y)aR`)Z; z;TkTt_kbt^@Zoi0Dsqjk;k3XZUZN;~%0xjk!`=Pjo-Z{A8+`;0cI)yh$3JBNPm8&I z@p@YrRpG@FKw$T_T5vguJ=}d#kXG}?tghcm=BG#kbCA!J{CoSLhftV}pRI+2*YrD3pa4x*o6}Si=4=>QGsnpkH+ObkuDeN!>D2BfbMb08lL$cpjrM?OaR>3ra|ZyF!sbc;CH#RqE-U?&FI1DX2DMUWbfc}OY|OYo%6QVSgd(q@r4xX zM{+EtiCaRY_piG>5~?%z!BZ2rQmvu3!!|j(dNlIk7okfADTHOPhH{FIXHb=wnqoR) zy=YeY8DfDp6SzGwBWvlHxoSDXSO9=&1;6L}OlCeK(?T`Vtb#^bW%;dMGEh5yprA2K z%Vd(|W#!3j3-{sIubgow$W(z)q;(7L%hIG5|}@7vLT&Z%5e3I@@6jkE~06>6=#V=WXdxdEK| z3j+7ru|S8QyPqnpY2aMDUluK3ITtVW=s*R}X2Mp4o}VAeWi!4bo1Sw!hm=02*iPo# z-wzCD^y}=orG%g`2vVAPj+JdxYPPK0_?zX8ann~ADEBu+jdJ6{XC13r^I%p(pl0Ys zOWN1zx~v?3hbPu7z|G`Ju9^|wo8O)XOXLLXvgJLE5#`-ViA%M#n+I(D4{!776R~kF2-kl0;pe%(UzQyE-g5og-%g&@dco@11RKW!B zI!`Z2vU2E(JPQE=j#GRDv zEfDAza^$10Z)T#IvqJ7I4Cc>esJi(18L;SQO9=6)LF4HG2Zv{Li|_7iNlCNU>F!RI zf4C#6!Ppwn**m-07`Ql)Q{&h%AXlz{=k>~(vUXoih+E&!e z{?lgqEJbDQW%sc_2+8qWpFDumfEG(VZ`xT&_@N^Ij=b zefc#94^!>+Khn8XE6Wdw`@L%-jFHiIxotpqqaH$>>G1uZcKszqo1F`J$Cfq!sO<*6 z2Ri16>8xu1yH9#ba*ufc1%snD()TLC@%2EXy6=DfnNyehHhiH&2UvPcy8liyesiHL zPWB5h>iI* z0lOST*uVFz3;38gz(1|>u6$B3 z^zS+0Zm0!OutG5!QQT&&)=WpW3SgL3nQ8h& zyHVz3WWvVYONMD=zYs^lDU{tpQG^!IaXoe4JtTY!gyc7yzSw8{?>!1{n9OK!Cv?1L zS)RNonft$1LE#?sp0 zPq9A_S5wQ6dZ^)o%swhM@jIdO33K zUl8FwBnSV?{74MEF6g`O%{Rh-?|qfI0sed9^Dg)g^y8Yv{pU7tEc_QT|D_Aq5B^J)5cFS}fS~_M<9nB zga6<9nBga66YJ!_*KjLZ=>&JYdn57f4wMHFk>ImAXT{7xnVwCY#k7k-5fM z8)A%qkzJj0=aY0HIn97r{Xa{EU1U+SJpRx`fpc59X35U;BR89 z)a5+XBd@H;Yf89HPMf{u=47Z}erN+kNR*`y4T^4Zcpf$c>Si>XzzpioX{n)mAW8h8 z1MZT^jsuAqIBzfSPap$%***Ii^-S<8`i%Vr!MLroiPp5L7PXo{?xP+$ATF!dv6_Ti z9jwX_6iaeIfyIv#{MGi5?9y0q5MGGV`h}PfsOeMThT?!c<0lUtY&zJdp{7<@W;8~Q zIuXL1ww|1_K@qy3rg&MJ^iuOGbC#HJjVI{5IB0;#wMIejyw-mpGW2rL8zNo05@%Z$ zW=-g#nl8S1L=y7V)>c%Yz5$xKCu^F2V??RbUS2tEX}dwgAq8rDB%=yLb{RzCJNTSh zZ`LDQcL_l>m5tywO+hj7>-MhHx=7uecalYC<{U`Gt}Z{K;-v~6ZhNy20wNToaRt3PU-_&svs-zQFfGmNbmBY~uuP zna0FC>&cRkMfUWj#d3M%fr-DC1-^~krfPotwT+5Um4U4D6k=j|7%$v!a)HCwk=W_@ z1A*a(1PxT%1i>JPHj!jhK(AiHLYG2h+3=>?>batti)xpfYy0XlNS$vfmcWo3qk=j& z=|SK99a~>*hhxAXsj_iK5H%{sUVD=_YZTGUx8{fI7Nwo)+yE5@%5LG(j>D0cmuw~! z%pyGB^e9ksiPfT(n}jIFUk3c}jZF@FWI`4Scv%rtkG&SQV{pbFkQ@gM3!L23I-Bz%Mv;KL|3QS z11WsB!^1(Tsb|x2`Y2YCyNgRVohYpf5Mee#1{&+lhQKi9IJHp)D-KBhNj?RxiyP}5S%PTKEo`@a2vB_%j%GLef@1;KD_x2C( z{rT731~q%j6h5(mGEhvEZRyKBX_My!$Gm+H))|!FAeeLFo06oTzT3A~`Oe8V@1SQo z?~0u3v=gnq{(S#jRZia}#ym}Y>1k50c0NN=S!+i8U}Z%LXjmP17Bx+iU#wTIBRZyH zL$#O|N?oPG$Y6isqF}* zyhnkjy1!hAPt#rf95Vm)%fGYj>%Sl{k(rF}sH0p|L9B>xoEFi@Ij}#>zdR z*U07+$`yaLFm_x3IeNO|TP=OQspgpPmr&@ojeie!%6^8!G0I^(XJn8gY8$yqGec{o ztZquJwE>|M_3;W@@zLiOw^tP{@YJnc^ESvq4IS_rz*J~Iyr`H2gu}k-#rZ4pA)c3W za}sG*ia6WZb9uv|UqhMqcmLzjH{oq}&7+r=z(;jPg!MUz1F;sH`xzTtFZSwehW_2& ztG~C$lq}JzI%*f@q9|VB=@>h0VTaml4!O7t$f=%S;#LDO7dGU{zf3~RQ_GW+U~yj)8vfr z{e)$%m0^9z^&#PHyx|Krr%!E{y~8f=2d<76A6Xmn$(BpBb_U7y*tno~E`pNco|qDV zG7ksNvLVKMow2TdBgYyDms(T6T8kPQ@K>!8F)v;Qd^mHlP(M36MX_Uw)_00hlVjOF zN^F1m7DYknStfAy<;9iQU$ey9CpzNF?gay{v!b5#m@f~WtLZ+^P-6fXLR`1%3Uj@P z#Mww~PrYO%&d;6Nsr^Z|gr1`X?rI&Am1t{Ap?=x<_=$KU1n=Sla!x6YF%WH$u&uFb zS~%|gq!)4T;P5nL9(eGd1iuw_G1L)ur8b{i;@xmobi_X|q&PRQEu zq*C3ihx~*Ou&MrfWYz0(C}`4O_RyND${cPO#&Mh)ny{_GgdjPvrKm#MuYM|3L0gOz|&^dnzsdhkjz&@I7fwu_fqgWZctm5m=~%jNHEvv@__K}%$Wef;@b zaVb9W6Fr-4p7sX+m{+;HbtClLblu5V-*KgSM=ueEIV$4gs<%~lbO^zTztq?OT~hxy zT;OaFldFuMKXIzV`|cUlL89Hp+7R}%v$Up({{^(N79Ai|*Rsv?;`iw{G!q*_pT4`_ z)!vGZ&#f1YD11hIDr{-wdtmVC!G4bZ(&Z1?1Wn-Y47&$H%YIzibYg5x!sn2mx~!GE z#;;V*&eTcwcvh&8Pci@M{8TI607ZLi6v)LKVs^hAc+h~$rfz{F&+LGVZ^Y;*2wmj+ z!zWco#iz90BPy3AD&iL9FAcs!Cs~fVr|K>ocGb+#axfqwd;+GuDeA71w5 z&pV3z4wEzbgK^%)uAQOx2QL?W^wuPAdE55Wc_ zhiKVTUp8DS99<;MuLQi*m{OhJch^JLzj%X+F)>?!t#i88@e+zDzVr`3+6BM*Go?|( zM+-~zlBXsv)GRc@R=YDdZr3=6n`h@h-2b$&mmxKCmsnG7U>4Ak&(%v65byC!h8weO9e)b$<4o zuN;dQZs_=cev7j|ns`P2fKvE`BMGEE+lf7gh@V1}Ub05LcTrEDu{-_5#o=yJ4mlQA zn9}0Jut^dO9U3i#O9hQD^1S8CdldKy02a>?_lv8B|qm> zeXkc7!Ma3230k>3%wp529R|db4#uge^WQ?|TC%COX_pBNov&;rso?E~Ubo3^!Qj%N z4wf!SxQ{s$MY~>yAU?ToLJu) zg5)oDUvhOpiZ-r(-n2wNjQ&9#e)c+FyQI>6!NhO`+g?p0P~S`5V!JJ4@~%jOK>2@u zD0y|0oedkK?wRd)`c?5nxP^wD#m3bI;Qk(XY`GdAbt6&1I8QwL3B{chKgCEs8?lenWxfq|3cci4zXd^WFrEFx)jZo!UEv#E%Z|=q>&>HqDcAa^O z+DKOAr;!NrCfiFM4L%#}HmL})wNlk}dBKmQfIM%drtndopS;$cn)YpEdHxKw1N)$? z?C1NO)3go_*Ox=NPgT)g`EhO}1VkxCDUn;X7(~Q{y_(vn;j}uK(lX3zlL`{?uFIvZ z{Q3vM75Jz5_L- zd2#!@`~_ZR)m%KwiB}i3a?{bis&+|K_%?xwDbO`rxpJ{pOP{h)=qnH{ScEc3KBOBN zL@35a_LR+S?>cy}V_n-v-exBg-?+9%=W_Nr5t2Yk_#yFVB4*Xtw7Qafrz)s(BIE^0 zkI^esckY|r1fkYt^Qco5Aq0Q@jP%Aw2ZtMIZ7c7dBzHs?m$ugoQ7c!QuZW`$wFmf` z+du98HK|phNIjLxjk9^`SE1IpQ&Arv)~Z9YryE6qv$RsBVu?w8#sa$X5Ao@us_u!9 zz5Kvp!>9nl`_vR@k^>u{;g)q@y?m-)i^N}xKB|^ya)y@UJbd6eo0BaT`UG;7R?3Cu-4-)u)mkl7Up7{C)NrusP!SVd zX}7o?g34s8cBa{ZM;xp?OepIkj^{s_Pu93i5Go!uP7%&@ zh#2ep6Bp8kKc5CNyVUw|`k3G0a_^68mZ*Y87feSMo<%)-8wwk(A(!c7~g6 zq#w7$e)uzMjk{v*ywC48DCF%nOGGU46UZDb8&#nxsQ0RvDPZ#Rpa9413e>nu^}NDR z(j@pJ-3g?WgM7D{6-75Vnoy{~UfAKfkCaHxU`8lM{KLbrqeqSTev;>lg>bf5+%7pS znjKl0E%=}9C(u3OI{Pxu;i$fA@qk->7p|FoXYgc}K-4*TjN%pEUsWKefBOOJpXjgm zh>Y$-&pO~;PG7wE=pq{DS=#Rxu_K2t6!z0rl!2+Vr8&GPTwn?rP;51&5g&pP!nij4ZL~x5BsW z!hVg4Ur}jXgJK&#O1xD$_D9D-X#NhjU&+U-Zh6=)J$4uG@q`;3J^{|hRgJtFkO|+1 zrfW31b!it5iNAyvf0i{%Rmz||Hh5*ScA%xRk5}$kPQ0cKHe%P>$?`hxYn)1*uUWiX z>Y5E(#m5dL|H;d;e&(muQFX@*H&>U;e>f4M>U|z|*k-|B4ODxZPR5&%=l){=7Jh^K z6m@5Cd{j$F+WpmzG&l>zy`b<_(1dJP~6>lvF)S&*srI8u!wo<#ANp*88 zc;Wv-&OLAzw$zem+eQNCu^+G`yl@@EnmvY-zwj7OK+oT*>9IMqM2VKO!8&|u2{#L^ zhuN9g`gOK~9^rspm2YA&KqI@;BUY>4CP>1#*@F7U0r!X;_?<3<5>E88@wSg%Y^1N3 zQ8r>$HXGKxPjWTjpzv|D9dLoj31+oVwNga}J_|f!CDmZntr>kl@Osu8iurftYxTqO z4xOTLJJBFaJTzrxn8-U<5$eI>fm(Zue{?RjPCBFCW3H$ zs;rgb*igKB^#C)S>+4>P=FDw|hTCP+Wy15|>R@#k6PCHg*WAGcKK1jm4bn?z2v?gu zt1r?Ai~DFv&*_VlSr+QB+Wz?5IL3Pv=v}`^>N|)3Q$GvFaj@qLJWV&maAaXuOu}`a zKdX2(XG3(*g>KPv$CnR@KlFA*Q08AAwPvtx1R`y&5wC@~;a_e;RaNJ=3?<*^(feW& z(nXe_rXF0b46J%TasoIeC89CDo}@=Ss5mh&5vYwZhPsAik=fqf_X=*-Al{S0N@7hZ zAg6kn_1KQNz!t+1;ourAb|_2Br@d+%M4A4D4vSv)>9!pF1C2;W?CacKa^g;0tDw@d z(xQUp22Gxp_0?~(;9>#LjkPO2V4^&^COq0=$Mc~OP{+knq&k18Z$Nk1Z=7eKMuI0M zXWyvI<*j54Com)Qj|7x9lX@L7ea$H8>j$cV%;HIuIo>GTf5;!oys+*iW1t%4_*F>x zup!}2zL0gt0$t9!yN7{hh@GAe=w}X1j75&6ci%})0d@je+?X+tp|Nl4q0iE0S&pH~ zBl@We5x9Zqf^cIhsF%Cr$7u}Er?}0eXwBCv$+4U9XE8Rv-&(e489(M$Ogh5+AL|;l zH(55l_=kydNY+Cr7D{ir)5e_=ol86h4)4(QXQS7#QbJ-GG2gjm;6Ag-hjXf)z zB!nYQN=bj!{bi$++^6)HM_nqdL)m(4VORJ*#MdP!YFq=+WG#DxIs$3+>gA#FV;Lkz z-~Hr_6*vXmM$Zm)ja!Zjg&LKvbmAN9fax@-sb98T@7h%w8w%oWY07>SH?#akpdlPyC=?B_Uy@Hws`kH0yfUaWqW~*##)6ur~ z*_GtTbC|RagQ^WN9kONkyMjS$MdJrbf<;MXvQ~Ib)i6Llo~wg%8~qj#hYOJRg&k_-$PnwSr&lGGhqUD zq#V5b71g{354eSB*~mXZiHP3K=_1YpvPx4I@9b+t4q$R>dyuKa zT&6S%0GB%(N6=fWoJP5%yH!#gTac{)^GtR>qsE zLUSo&r^SA;Gj8ERA*C#2R|74QsddGv!QQOV(pNw8sK}H@*#)8GWlKrF{(%KA%3#p2 z56cT_^|;`%LVO))aD1x67fUeW-Z4MQNIct3ugX{K@Iz?U;6_ps?xmIz8IdtFo9k~v zZEO?<+9hzF>BkWz3`kBQA4BVNvKRK$__hZGo-2=^Ks^l?@;`%&*6754S)2A__c?IH z#cgsfaE-h`>wE0GnFZ=ch*hFpqjA{x?U7MKRL<*uw%l#>@2uYdXatN7?^w3rLsxfl zDWjpA$95Xyp8f#$%Lrj5$v*v5O~1}$9)4iLU}+9&+9cZw-#eDgc~cU7A5QUi1@bSo;2niBYss;99%L8O|wqq*< z6?w|ElwH}ao8@y%aPMB-nhk$H%F+Z)N*2?5_{$Df=T7bBj@ccze^^|YWu-_J%*#uD zzi3r&w+EaF1>Yjweg>l&UDr4h85+;}J^MyUP8_$*BK(()P`WJHkZB1wyB6buxmibm zZ}j@I1S6W5v-(7121xOsyY8wO6uT@Ug+H|LrX4`5ytK-AtTt0E^(bAgS8^W*V8p(a zx8fAc`QIjJSe60FY;W1tQEe&F@htDCvhn}Y7a6EVb`ymG$IeYBg;!3hf1@+N^Qa%& zQ&x6?_8IQUXiUPg;N{!NXZ%Ex$3s#>#!?z&zAmC&ufSx;U`-^Jo8%c7*nh6!@v=k> z3AYE0=PgIR?qG2|3eVZpbQ4YY{#7Y()-<&giLlbq-kZr<(uBC>#EK8&$uo&Ns4PUI z@L9gFMS6LTDwUMXxD8C!Xh^`QizC}ac731qzRs7-DG)w0)CWqHkg8NXl zxd|oY52B9bj#(l}jPq^W2APM*y8SR4Mi=*+EorMk*=Nzr_gs57$?|Ghb@&(HEVPCb zo~y+5JHMHC*^y;Rn{~|5Q&()1lhY5sSV2-RFx#J7xL=2nPAWS~|MMgc6k*TZ)EQ~S zyJM8@O;Ycd=}|`oOPlJR*bb=aqHW3KYd>~=236dasi5YBS2l0Z`a}-WGTJw+K`X^BKQ-ni?Gd-<4m9B$Wg_T?#ZnKwS1#i=-fzL>p;{}Wz)8KX z+f4uiB+~%BY9)>suyL|*Ez^3>azpo9a_lWYNf++#RYV~qynB%|l^nXezdSbo9?H4HM&i(ttElc$n{IFr<`ipua00 z^sf&lPn-f+D@O#ts%JF~_`=eDp9EH#w|h#NtJ{;Z1+H!V!c&oGfkj_1 z=YWFG5rZ!Lfh&>rkkKdM{;#~}VSmG{$dAMQ5Wl)Kj`0z)#(5)^m3i>J7o zpl@Vt`(624-PHk{lxlno>=(O+HB#TFQq#GEu_PT3L|rf}7>&SIzq?=IUQy#%J3rFe zxNCmjZL@ZF9sJVKX4cZ`HWuXwhdT;0{)pkdiB#VrsysBgUls{`R)D;?fAw?!1IP%} zMT1~CkAeheTcJ##2W~t5d&6H1gV=yd)Lw+&K5FIrpP{BI+3x4ebHIpaCEhz9c?nM$ z6px%(@cl2tkkjES+NVIL$`62UHG;6 zs{<@hGuYl&eA&^t_rU@JBDZ}8O|B9Bpz2EvEtoHwSJLm}!Lb|1?*rwUVCAB&(ro#Lf85S#P7W>_jubkFQO9Ol8l+|7&Z; zAjbr>rTv^z|~p zq_J*48B};>+IbpN**Kln7l#xnRPI@H(ryL}l%bL#0;kEe2)F8qhDQ!$x8Y&8U{ns= zx&a6ahzFqDSXXqLPj@n09(=z%Z((t?ws(M7HbTM=Edf|gSY1hxrn)Y10Jl^kGMRKK zy;!`8-ut}TD#BsJ{W zxs!kb`b-9(#^@lx*Rq<1S_F(i$0u)zDSvU3bilb}Ff+f~B5LA0Z)|wBM zRKC5)7Xx~F7yDHsA~kA6OTHwp7dsk#g~hv&?=pAtoi~hmcLR~rM_;WL&XdC!uG2HN zkv^#U{M)hV-QdUrI4%{gdPD-9E64eYs)BVKFAUUAlCj4HrLrszP+Y9Lri(b zHLK#E2uZXrGVKJ}zsT_0As|e!YsK%swzMhzs!xysQ-J9gfDyhdha004E&vo4fbE3n zw7`<;vBMR=tdSlkF3zfHE*yS-`fo+W!w2+DP^Pgg;0>*Tr|4_b7B51V)7|tEljmlh zdPFd_i#6F+I1TeW0D*o1=O>Qr;=9zZFs98^4<`i|7(ba(h8ZQBxcbL-yvH`7IgN?Y zVDb(JZf3e{&5t_9z8(#nCC3CF8kh*)N>j>u5zlAEv$`ED!B_=xxZPxhn|Yeny3lS>nqIJipj%Mz}HkQ{=?CNJEt@zvDNjCF(=w^S-qlJrC3 z#+kblJYdDoh@V0+KgjNS@x|bLVa{O96*BMDiJ~00;coX2L6=etaH893?#f^9*}05MdT}q48CaqK zN1M@O8N)yoZKVyCb{UGroG2a6Bp4(=|B1zQwZ4ceJG1uOtFq6%cQQZlJ5P2LvR;@1 zo~s=MPszaGWGyRHZIs;5iVy)F)Wf8{DUJqcv8;rR+6vYz00LnDjER@6VKH)t zK|oNdEl2mS{CLmuZ>B3b<>uqRAL}jC??5wqm*k$N4e~8u&I(w+tQ)%t`flCmg=dOT@Vd2lr$q{il2fUnb!(kGXs6!Y2dbV9Sr>n2 zJE|Iah`E+CGEMie0(ap)1!AKZS#z2C!@US7G2a08x1`Nd5lq-W$Zo~l)>vQ9ZE<^M z(OR+t%svZvp2rye202M?I1Ga2;=R zpF&N9>Dz*K#xUSu&4se&fK$}pN-ZEYg4^<@eIQix_H!mnJQ?OmJPX=OyKRX!PviE4u8mkXd^G!?JlVZa58C?3=Xy>bf--+*Mzu@Rqjs#qqul#E z#8%@S5JZ=)bTJudiCYmz(CIG0QGmn=?BlOw^kN?9m5)&dW{k5u5TRgs2LRZ<T{| z0TMdslvygT5Y+)sUr9xXCsb%D-zIllauc!FFX2CUk_@ddOekU2|MfD|JK3NH~JbApDh^om(jO{3B(OyKSo_I{j*o^L4K zXtc~YQWDF!!{{e;mF|dQ0&&krdL+N5`3B3o$WKBmV8M>b3tv4?y{rw;q_u2LdA`AN zv;0onr-Qp%XGmIbCS(w5@0G1yeexVA9J-=qKil;iDg=zMK^hx$10YKiR$k<90W6%e zY%FDN0o<~~;`U3VKuWlw$lu|H%fZR#s4Do(PJx zny+-__$%GJ#-}$cGD7|YWQwEH&~J@DWAvGzPhB(PjI1v%zHk>E8IRO&Hr{OiPj?&+ z)&Yjfc0i{1G|mDj`e?Fv7b+YBunmCvj8H%_B+u{r4Q8`}KIR*s7l#a}GDJR9V*A$_RRX4m3#SI}*62e*_mwjD;`%;X&YYnq$eH zz&l$oqsomlEpJ*rQ_TIJgo78VX;S}Du&u3^y8h!}01jrA&p(@=z6qnQ1z7l?`^HTh zNXwyr9UB&9H4&4EYMNjbTU8jCA3?fITetywi3OmhfV0BnaanJf(*S1x9((VX8q)Ig zErz68nzS&on3D{{D)`9_YqH6I6`2`5F}DI7hr8EGOio%F>G8rEi~$D`@-q~pBb#X< zd|5#W35@Uj^^g&J|6T`(6oAS>WP`NvTK3Q+Pe;tabU5adR}wx$(r5M*Zn&9w{F0qv zKLW+nnzr&E5dj2+!5tTndHGOaFBq1SgPt48Zfdb&Q2NDO;ow$MFk;cR*hGYbqq&N> z6}nWnE{Eq`GvC{y< zd9sNCiqSqS8A}4W7=rMfGCPaOa8Mltime#`*-O{-JWYt_c6r@30gR31`jw6@t`bjfG#w{9k?of{&i1vOD8KuHqQS=lJKMtg0$8| z9{_#;Qs<2cju9xGR_n zkUb`7u@Ej_Ts*J)7FS7bVo+X1js-}#T7GQn;!D?T&Ft+UZNyc zRxs{m!p-4=+Ke0v)U+@z0&odK{-Bk}RFaM0t{y$HIDY&{}GPyS<26N`IRQZhL(Eg*#Pq@IDT*z~tD! zVv8$CNpQ~g^Im7K(0I7Z>o#a4=>bsfu+zIvjQfcRvSxpS+YUu&uydWM2AAOmm#GnQ zAF%e3pjtnq2UKkl>*B?>n%P_ETZBa$p#F7%)l^lkf;L6?W?N5!fi9Q>9q|RQBYj<< z0!=myl;Ked%mBR}zgjx9C)7p3dJ=@#mw6kZLFIL>YGhLpQ36LGpqkv5mjiZLPg1}% zBV4k;wSTa>$)TYU1b$s{o6-dQ>mslC>&6fL0aHbND$l@Nl4T!A`d zLDVn|R4hlzgSr*fXybp|F&jL#sjs zJ0H91PK}TOJ5?~)1W>i<*}%|eAHCh&cAq>OT$1SOyF$8t^)Tq@!nlq=B%k#U{QACm zD(WbfvsPh1*Xh`x(`Y$ge*y4LOGZ#khir$FsnLRT&MZ$BTEdOo8p(KEHBaj_@)-y1 zRPxY`ScwbvrBtJBn9`~q!O-3hKGB*!;C z%yEzK{2c0vl8v6lr{HP@{D2^sUDaR#_wY!Z1&GrQObk=5Y^ypBOK}*|iR@%8r8XE? zdJtFNud*TwC6R$kZ%qK2V8%@$eiD{cV23m4nS)kX$!H&pFzCJG&%?U!0Ttd)vhf%7 z$0j}JB{1-_A2?p1r`Qrivhh7e)|qLSZ@jQ1USr&rB}SfU`0OmhhTw1mLHxEtk`Pu` zzLq5jV={XG-152a9hJ7y@yP6cpJRz!!{mdCt=)$^bB6W=>s2sR1$DzU=*7V4aafNC zQsuw{9Cjhr5v#X4dLHlMM-GBwRAu{XbK5%(Q(n$#i^V9mL7lMXV)yR}G(^{4+G)dOj4bYiYe;8M#ISaA3ru|1yE_iU?KsyrKj|Ln+p>`JB z(RmEiVT(Vkv%;ww#;msi3l?|9wFc{G5&E^1y2o!+x^}|?v&kU%Ru34{ULGRf@mgwo zl3kf-AGnVd3=^Pbt4IC0*DC@`u+BoG5P}9V1DJpIQ!GNS>OHZQi_dc@*sfyyfNJCJv>fpdTXK7*?lEDf`@`qm7UM2X`R6 zcpR=)`>5I;i_z0HL#|YqvpI;ix6C$jbN#uIRhfJ{oRk_|-Z6>dSTq}#*)cp-h>m*o z`q}thjM%}Mh6gL7E&Q)Pei>ylW|LmW9WM^YC+FRLJ#SBSBY39Tc*rOTu&^B~;Xb~`q5jE<8y(D);V;y0koh#AytiWOb z12~RR5mpWa!=tt3w*#Mlq%Mo1SkQ=z8K@f;H^S?NQA!4{SZk^o*yZ0EX8qDwc2d>2 zK%N`@6LV&1q%b0_SxYrfA+=lMwr^dAhb>wi6t7`efxM0vG`IcTw4&<-yT#RaASf@^ zYaUd7gHY07Bo5B`BXaLkj0<2`Vgl44nq*jx8yZ{UG}-DEYC^Q`<+~$Sd4fjOy$9 z@2L*gcw4Cj7I}qYRkFTU>6rTgrc*PNpK+o_C;5j{JGnUVWeR6_7F>tXSm)PAA}{%3 zu1-aR>bwiwoV?=z^TKwp- z{1w7I0|Xtykx>x8$)F`us>N5Vda%j?<#guLb+7vCm(}p1o1Py^g1IZR{Ax#Ix)*^8j}1+XaR;a`jZOpS&0dNt znei$dQE2G42*tARAGNesWniw_vt9tmyqn=sm$4znMi!2lJJQ(O&et*om`X3dJnoTE zKi-h)J7&L+g^~hR?fOkpSapj)QAlcZowV z<^hwT**&&je#9TS`uhzm`sZ5h95kvm^xoyaP{uno-*raCpJ)@ z{i0Xp&$`ScuOBT#Q=Wg(_QQ9d-ArlT)4Tt#AGSCi>eWf|Aa5|vzeD&{LSbQ4@7j*1 znIVZh{?hcA>unFAhZ>DF*)0?*|9xp7v*5T=#c=MGqO3kqLto%PKdw`Y@unDK{1A1# zwUe8Cx5MuEg3H|Yb2D7ZZho?%yZ`n1se7i z*@kE%dB+#jeRqV5?4m?_3!&miS0TIlI`>RkR_SDK z7f;W+KaERorcbjwVl`eX<>|Cgc^hcgDT`{z3FnwNXQ-9&+i-?vFIqi@%|c zSXyjdX);6J4-UQLeqJq4nui0?>H_?4d4lv1y)6)p_phsYA-YIe*oCco93cYt5;{vh zaAvqUz1RS=O1F#K&9Y(cczq`bU`oSl4F%n&?0$ne@hhG8gYKBn$upFBmCerRT#HA} z&L?*Buhk9H%>D=t9*8|pm%I`Q!RjA|>E2zAs?u@)4sFGEuu~;P8wnr(=~j_J$`gDEoiUY7bt?tw&YPaq(x&J}r9XH|o1LA5GioYthOvAcyCabGAr;SPmb{vW`2OLOMZ&)y zIERphj&t{?mAXX!0}E`rk|ti*{xdYR#=`I~hPqw_hEk~IV^z#fW zKKD9Sg5D`NEV;d^8c}D<#bzvsimZmHuUdg7et7OGB}q|H3_n?Eogqnzf}tCV zFIK-#rKTv(nB~F-T{rX*^<_xjZJ+>BQfqM9%>Ofl?_j>rBmM0+341v2)3bp) zt}OLvI+7X)oYQ`OaNym~p))J>h#vAa4Ri=fk!^pvde8y8FFaJLS?KUPl+bfNVAR=0 zFfo#!Y#F}Ox~KbBoIWmXu!L4@{eCbA$8LLAP>ZYZ&i>veiASLrw5-|Z(U7ZxkJIr7oJ)B`_Cp8sD|FZcC3 z6y;O_Vhj`Qbq%|=`B)xsy5B2NtBre)QvjbY79%d-GA z-75<2YLRS?+R2NY*dq^wi#GFhsvX{Z1<2fEoki~N<8b5-;ors-J662OPI79?Z%MSP znrY;qkR$_>i+vpGX#JxF%CukAp{24FfsxCwHuCI~%cP{08e{y7oyWFKP?M2tP%J(@ zCH(#2Y|+!S22A#D^3*AE2G-CMtqHemMNOFQa-tbUjI~oQ-l5F9%S{tATcW;1JM%t#dK^)+#f{K2EM9vK{-!?2dR= zv$17Ct+-cIliYpAUxC@dI^{1oES=Z2Ex`~vb`RAWgMnpns9AC>eN00^=V^UpV9l?9 z%gJJP(zCN8!t&DBGzGh1LKej6;=I;W! z2;cTV8<9A%O$U)@NViRN?3dJn1!%DV~27{hIqgjLO4R#y^7Y`q$W^xI!GdkC) zcNn{^)Z+p#GNjdtbl(!at1d%JfAXlvB)wrNh{CJZ@jR>oLGkMz=ol+56IPq@nrN;r zI%qS?x;Cl**p_Gk4to=Zr&%dc|ZWw%J6)x znqC(W?Z`?YAXm=ocNflA8%vio9^1YZP?QQ&(wszlnJIlke%{Y4(@6aj<>GfshI5nU zn&Uz@PBH8H@lMM{{TAt+T=0uocKR~8mdfls7<&0foG4(O}b^*q^qqp$PAk+zYN z{v5XVv*Sf|xAloL<)E+nw}#{}tf81rFPZtSxnq8qZD~VU%5ee~OMba|G+>Dael_A$ z$9wbvgSnB~LLh)g&hvt%;t;(}c@Yi)J?rtso5QqVHvJSh3-`NzD!}YIdqvaU7`0@l}3*MSk zMr|_ZH2u5iZQJA%iZOK#Xw!|*;x5@@Iedy8pgK}!>RGYhauuCt@|^S78YkL;K%R)? zjV|OOZ4j{!BH7DDPhE#UFpckM2^Kq9nlz?};{{+31+L0kob!y|T|qHg_lp%Vxx+nX zX$Oa&VbpeC7RuZaC~pxgn;dqZMSxxgIoyO8e1*KVh2)5;cMJ{^l*5i?znZ=g zdWVq>^WL2LDP`^6q{b(?8R|}j#8E+F^6O<78VMw-ZC`O+lhJDwye%&hXV{yHJe$tL$s`wn_F>u?BPYJhE+soNq;=taMk!m(Dc%!mrVhROTr`^Z@V#f5np2hrDUnVT}~jP7xt^X>@$e< z*gXHCSi!#4X6l75qfz2USxA3#JA4ww4gei$X3G)k!i-?!+FBWBWY@UrG-j-kk?J*3mS}F?E9G}^bkgU8+?$K&7^pO6{knU#} zOrrzE^YrAD)UuRRs?re6%&vzs?)@|R1fNpO`pSA9WK!Cnq_E>VE4yzX5t%_jDYtwHbGm-$4J>pZYWo*W6HrSRp5T znUGu9n`tWT(*PKv`)LB58ebI}_>-sT%PJp6L_r@7i#$7gf3$#s_*jrhxN|F{!Zv%z zxnMzs+M{*cxy)6Gs$>YDzGuZT#MgD1jFqu;a4i~9nr*mzBk;#mvXZ`cw!p<#9Z`=H zHzcc@)#06S%hZAK3*Q$b?_Xw}M24_<$(%*;@8Z#**0n6wUxg_`YU6Y%;kuSLR$q6P-bzy+ zo+=F-DIPmA!iAfqb)0g{o`SHzz?#9E%0etH|2?4x?!&U@RgBBqkJCcOO2>rC9a9de z`{@Haa)gZ+C;E5U*>sSI2c5=YoXZ3$cRvx)IErYD&}b)fzcIs-h*3Eab(9I7bcH0v z&}l%j)h6p82Wen0^)16Q!b=_lOK^MyRBVkB&EJ>_VB9sh#^$RkMHJ@~5z$_wX~rpK z{VJ~rJB4qunfT!MNBXG)#e2dV9+ka~<}ajE;mw4~st03EXHB_qBm-Y@$b(@c+l=FA zC$V@N?PwqZYGsZIaaW%Y?xerj6;O~0V8)jKDWD(O2>kqis|&Wif2zT+pWc- zqObXw93iP*Ff!u^d~ZGUP~7iCER|L{l~(fsU0^?2Up+E-BkVD%M|HQdmEj9dAudpX zPZro2A7=6OJMH{=hO@k>6mVRwk^_9DoUR-AA6i&u&f;T<8YfjkEOUOz+>?+ zN7E;CagpqAzj&mAYk4Yu9DU%dPqy0N@@dM-W9eci{^|a}>*1+B{06d^p=DeOrtj;1 z&4_T$muKjdv6g$5NdcX2IKG-C#hp1LJ!V)2Eq)u@DpE27ZdiGdxIuWb*gbxvgVg}^ zL>}C*y1TAzq^L1>yW;5T2M1@{3}+} z&VJd<#l^ampOh3%Y4|gN`bOm z_V|Ep9(xg2&DpcOh172*XrfuqMjc>+Iy}8TT(!mWb9`C(c59g-tQXR`T5wx*VTCZY!$ zU0&gBVoGOP&gINI;)Sniuj?dr&yH)$LfB=0c3%i2m0K7We+(#+_bi+{*f z@9sFH^!&VNqPZlRXs50ivrZj%?kf(Z%~jVSOt^!`&5LurqvxoX>cL;O;JgDy@TD(_ z8@%+1M=M@j3q(j6rwS6Gt3SI9TdBpr3%F+D__ez?`}c%6t$RSqwpUgY^!(SssfabQ z4W}2NPoy2yE8WMj%-GMVz>dd;+w~7)6Z(1l)IRKJjpuisbzEfb&zOO2sL4%cF5AyX zjr>l3U4-V122b;61nF%6>AlwgjtWXus?w1ny+|)1N>y5Dp+kfKp(cbDNC^CQ zoacTY?&tgaZ9dI)$(fUV_E~$a^(%Xy(Uy<((2}eSs*t|p>RtIuOO58#uY>BHMMWMw z0BTst(IX=i^>a=72mT_h2Or{ivajhX?>A#`A`Ym9$9A~eY34hP)w-M~#$LBdMLQI)*ZxOJ#N!Y3J*%=NlU@GsL_aFrI<0FMA!qX13b4^6T#N^;wDu%j1q)d~OR- z-Xrh&Xw(@5e)UUb#yg@;BXz^XqK9yy(YP|>Xq)R_U1!LqjvhoV7Xj))PEmwlzAgr0`$cI?oW=QRPBdv6d_>Vx z+Pj@VC>eCPZTs+)=kY^pLSpqYe0i*LJG6x(x_oX9&h!P7l>t?Y_!7yUK>@V+zDGt$ zn{35r(rUu4WYP;4?jOwRWyH_GeFF=&CrB=bS=K#3xvFt;m&#KE zTh8?Hb-!d#(O9lUFZ#IkUEfvO-HMkOE$6CAca0<0p}xmH5s6l78mA2%Dtj??4;Sa> z0M9KhyF1JqC26513j>))7bdC@Nakh?$94XHbYu~<_l@mCR8y^SAX{1WiT>l=c}P0F zTB?1D3WZKBfQ^}aK4;P#aDNRj*gfdyHx11_6AdR5zrW-eR%kC#>QH`&|W6p*09 za@++^w&>PqlC_frKe)N@j+HYod4kH3FlPr}mxFs0UcYGmkM;fMR01Ut$ zig7XN3b>nm-8(4S8I^S3Tiz!YY|r0Aa`SZhusJTcK_peOQxN9fPUh3=w^V{t01Lb# zX;a-dLln0X&NAXpw;}t-HI}0fC3fe#c~E<;IIWuQ(R1?a$C6k``lZGor8~m0pUpiE zh!jQ~Z{f3bI4IC(E2-Cj>gJy|vRnJkvNYfF#>>UwVQsDL>60aHp7~=BjMvff(saHg zVgL_d5L{Y&4P4WnUM-mr&7Bc03x^%=4T0m7RgBxv<9pJ_i*TZN*o`&pzXW<~pc& zY@B`6jYRrPXKHvEk2pxm*-#%}j4hVyq_Bzc37rza2cmu`M!=B+zoH^BJoLGF;P}r*s+}@w3 zb)v&MqdHcC>m;NyA4yxcZ&8=6L;9PK&tVN?ZytCz+R@vzIy*r?*rs5LDxd25AlsaE zU)cpfxvN2&BD&kvF+!?CJR)f<+@02tWk%#~TiSKhCIjg9()b;SN)Hm94*xHW_!@kw4%+RVY*gHPfjz0&z{@ic>p( z3LGjbq8kTwxO+vLyz+B1%ucanLXWrq{9>Y-YpXCMb1Am*&O`+UT z&AK|RrmKoY$pfmnTic_12bs@ylYrx_it`xw&9qtpXAl{Eo%ZJRE*jejeBoMLN`TiH z3x8D?0IWGW=ym2flaGL>yI;EU)|;!`^uQ^9S0&Zz@M@}GYK6MnE}bqfq#wP zA+S?m=^Z=Os1^9pvS7S=S6%R26QD*-3A?U~p`L*pdOuE79ml?z%l1yPh!XxB>BEKP zc*B=|3Ldwy8MgX54$CttU0`+ah`i6&^`j?J*eYs`p+GX-POda1tD$aJpL@A;VYqJ9 zr)FFF`e9xh+R*sJP-(zuc7+U3jgn`|w1gx%lCrOn?RZ#kHkSb!vZVWc<24xJ60L2B z_whDSxYxJfrAJj2rYaWbL=rxCa;LxhJ*HpY_^V=7B3Y|iGGNQ13#_Op2__lde(oS3z3rk0WGn<7)&i!@&|n;ldN>``E4k*HwEP|e zVDOP;B5pa`jdEXqn*2b9;~x15HR$MxIt{;%&hyW;-s7SpSb+oCcaCSy6>ndgH5!54 zc*R$@yr~qkYbMUbEP8mfk%8t=oJWWtp($>J302j~rwQHCbw%=q7J?s zCAw#a{(Q+osOk`yr2s)-Bq;V3+54IG2=Fs!+Q~wozE~CcSPllvxwL%oIpkUZwM3WW z%W?T-M_{-Au{(c5jRTF~>rs{k_w0`m0M9DWZ`7buwj=2jd78Op=Hk$^8NI3{O7v4THnhEFm6rLA790=JVsn1o;1WsT7gtA?&>3 z)Tg^j(T=OiswByDj8e6P_}wPORtfJ%qAQ1kPreMbbBt81BXZZOZwdFal+kMB1v+4# zcNwPi{qsav;tGbNr=cX2_Zy4cc$uRHQJA>!t&$J=bue*&)|5mG*+k5s>)5! zC&ugP+EfN|*wz4r102OwfW(bxfkK!YS#w>UYg_KQunQXBFmlH8pd=jrY?vFk&?Jwa zQQ?_2w!_wo(G^i}$9;76Sy01NytFWL!Y&TAFCetk!NH#HBI(QCyB|;WUW_RNJ#yhH zIr|=f85uc1mM#bT*Fr>(_tPdfSZdZcS5~BsvT9ktRD4NR42GDof1+DCbg5Ug?yCr=t4gK4B(^n=)Ujj_5sLdtr)_sGW%9Q%$Oi<)g41W!Ftvw!*oInG zr(I{f6m)l_lLx(jn!t!?y;Bc72m3c5!^eAbNzJvhj-!hnOv@WJ=7Aa6AFedktTL!! z05Qj7bNGDCGy2Sxe*FQ%Kr&zlI&`=KIC%`?xS*?(o<%5z+8FNzAXcbJ*i-|h+krBU z`5@ZY6j@=sxDx|(-P}mH8W3@Z;t`W}b0qC|qd$OA^Z2yB{Ec=&r+PIbN3w!8* z`tNaP(~|2b@NK+s^skRVjahIx+DB=1B(Pe#>TP$qa|^XMX`tLF zhx+5cwt@9O07UE93fJ&W(_S)IT)@V3XaQdx`{n@}Wr`R-;5$_a8gVGn;Hs~W@dFg_+HA^tX{j$MYNacCmrQLGKl?C(%xpZ#Pg-L(m21I zIezR}%z`me3ySvLyUt;Tf5mK9YRsm-8sx$)d8QR&uF z_r;UHYMsJ>Q2H}G?+T<}_Vf3HKg;2c_r2}S=Nq$lhAd#ek z(o+NHR(MRWWhR3ccz;)1E}0Ujt{4s7fb#7KrOPYGLsLv96 zN~fOy308a+BN4EQj>mF`^c{xFu!I3mD+rQ#aP z`{s>yo{uEF%`)I#1zDVoA&bYR1Q^j8W`LzK-tEm0D0YQ2E}yGXBxVG?AL`j(PYO;4 zO-2ccVBfwDsGGh^W=gfm6faJKA3+q-d%VME{{^g(*p^ngic<}rCdkOe6Co37y&0;^ zy>l|;Rvnnxn*EG~^e3=6vV!DGnK8VUWy7E|#;_f`@<|TbjNS5%_y-zTHDVjiWO^T~ zDG)0l_*YRrtYQu9N9y~yT*WO{l%@_&OsiqqA(s%5=Umd5wkiTZNxVx!a!biosnVDW z;3CV40=#y?ZzE9IHb^PU@vYkH(nZMLK33B!7A#CE7XVKFO3{mT!0AlVz z{>eeH73^685_i!HRtj{WNcJfpxlJE`x03S0nH2LIg{cMa)}I9f>2Lge4!V#6jx237 zeL4<2e2HnxK^6qhwNe2W*UNMUMOEDsX+9o!SKG836e0;Ck zN}J3QOuYg@8V5HwEJBSdoQ1%g{Q=Aw2ZqCS;sLL>jz-xP4D72U>Dwf3nNyv)cM%p7 zSsc*#Y_1E&$+E!EcUqosyotPUKLDJe@SBBrsg$AS2M{rZ$`T%|ZA2wQh`DlqY;sbwU2VVh~zfK)LrNZ+i#g=nG0M?4+exQO~po5fu zpky?45Q7v_8yo>Za0!sKYFvBk9B(V#Im(Knf{eXA28}#l`g*ykEpi`jjr$|S{usv~&p7bfnGYnBOjCRlUvle* zfyf!)uHFRR?n>-BNDwLR&A9=*6w>wTe(zdCt<2Gh%xA~n7j=SIR_B@Uv{z)gbya5C zBmnfav4ZQjUcg{6SJZNBPo97{>Pl;*)I*(25?Lu0L*ox3o0Y^;+Z6IvO9Nunj~3E< z+=OPrmn;ApZHku84{NA586Yr5ae?C=QeXj=CVdCO|(!2YH)rG+^?BIJ_$A%ih`Ls8~h~Ql&mPOd6s|8CFh`a;GFM!jlEdgJCUf|BV zBtvje`tRX3otFU@YO)`rNB(*Q{2ba8)pHX$4S(`aycaMi5<|7@DPJR!cRGI8aBF8X zRbVJ{?;1T^Hq+i!q4&peae-aU7r=d=ALq034cFv@&~$Ls{Z-I+N*GUkm@3(oBR<6k zFB%0S0Tu@?>TGNKqoP3<0P z0Le7>3^=pkzkhqI3j7T>b^rY)$Q&wu7KdbA4k~cb#Bn6ve-}3R8ff*PDgd1X0&zY5 z)fD+w1$zI&VVc8UMDTda(0n%7xeS5O9e=kkgedDUqB|p(jeTsi3;p7sYY4|{`wJgR z&O_6u_8bb$sgcJ}rMZ<0&pJ zo=oA~;s^c!PZVN$ymkxs0@tN3XI24`b46960{vH495th%9~-!pt>m#+o@r-6wFyl1 zK)`OQPUy5t9`h>!n^gbL;b!3ff>6GFmAMQ&6WZ8iPG`JwvLz<*B_(YGThejoCgs{6 z$N#~$0o0WAuX>bE+JO5W%U_V>-|6pN=Y_m~axUd&_m8WJ$^SStfon3*$@gnQ=T9tP zK>sJiFCUMYZexQqwf+C#S8$=VBG@kpwl^MkdRI;Td_&FSatKcVo*7mZ2@>Ybb==I8 zal6LPfGOY75HthN1%~inzOs-SH_*M14oN>orqyJBE*4Wd2>>?%lMODdN<5ae`gbj; zwkdc5pi|I+(6;aAfss?(#tGnb07yvU@meq0k>UZ!ZCdFhU|aki4;)20u;4Z83uHQ% z>0v)gUURSivCy4D^aVfD|6eOFnqCe4gQAeCOY8nmDiuxzM;TIZgr(S)OVD9=vMdfD z{cwbly|fvif>sYGH{m@VL(yWCn5B@8+56JqlnI%}n)hD=skYxy@BrvnR}Y~SR?=2K z1JK8$W;t+!jlYgh`RKbm_gwbgg~lApvvnMQui)C>@k06U@2`ve`w#!l$FVOr{2LDc zhQq(%a4b0<2Jd43=qoMkqu=|P{ybLYP68Cgc=nv?7~>_)w%kk4EDqr@#eYiKSxS!ys`$hI?4daMKcBz6 zNGaiz^W6R;`u}^2f9C>}`hVj>{_4MLs{!^o+4egGj`dK4ZGr>Gte56Hz>7zo->&|GVgup|C6zG z)-~t#rGY!d-4%LS@m1oyw`}t~H9yivh*{3{g)eDd51CswDLTc;v0|!~)a<_!{w$)! zfZbzta5UJ++hZ(vPu_$m`3d^hqR~V6jNO;b;M#*Cb3_*OX4F}TX)=W67tXlOrj>6yI8GO|cdybL|8HE~YqkACjB8JK_4=9FD^bIQ;6&97E!*e#Y& z#V59rXu)&zRMCa1W>8)PjO?|%JnyaE$zv{$3sQDEh%q%2v=fH722#4skUzfAr7)Z! zFf)0xPfRXl9V9bJkMe@uR^nGF6o2eLamIU-FAs>ng5Zbxuc$j@Tfk1kH<4euIwI{!X&5}c3J5hOyda|*TLqjDV-4gSpfk2eb zQIM!gKX`+Tk>dOZC|Uxz0uwD>eLvQemK_`q|Lpff#J1gMi@K1B;LJJ{g7i!Oe!!cb zq&!uY)=(S`yDl!^TpLo&8|^T4mnSF)L{O0eY&By|6_}$>&q}T0oSz)o`1DXi{db&? z{r$6kX!bKOLtKkuIcAU$%S#mW8*jV&UfFy*B)Z%UHPWyvRqk_C?mE`fu&Ydl+PCxn ztehgSP3R5ULVoT2GmJ*pHoIBYRcx_CMug;IXb>!QE^P^m^{*NL2a#~#m;cDTAWNLL zX-z!CulT%#oyted|189{rLNrL!St!6t#~lrQ2+ zQkg=R7wd|g1d`Nhi zmPPutWfpTtn1H2FmfryUp-Ci1|0PKxEq~2V7w4h}Fsj$!!HdWY(( zZ-rR6=~!45w>b^RG3!~`n_iEtP@QEYI!+p+T^Bl&gwDiMldYjJqn1q*hdX6|)1$rm zi#Bau9GRQ9WIi*W`qnpB&w=7Pv%{<@J%^&xouLQIMBA?qcTS2IK}w?{TtOU}P#qn? z+cAfSTvV*&RoB=?FzdSzV$-EB)=uz*ozes5qi(_nbGWqWg`)+$5Qi!{z{v;iXQ8(s zUcWVZ*zD}0H|Db^pB?-rE);s&b?&nKss6k8k$Iu8-U~J~8SEexuz*aXtt}-*w|*|h zQ;?d@#pp66wY+xc4zH0t)dCh*yQrkcUh4JuA_baTdRS9Nj_}F+O<#MA&}{#Q)|)ZA z?K`;XvO?VIbdjFB8QFiQqyfJ4;{(^MJpJkTS0oy~U5}=O!{V;dnyz3yhsl>|vxg-b zuSs`elz7X+nEGqNneL`O^Ai+@?iJsyb~0v?Di_+uB^=%pG5u%=v$53wx>aAkofMc8)<(3J0sM(1PX%KT>45u*Ek{Y}xk(bC5s&+y% z-hs1khr*SvXh>T8AfkKWKfGHqhRT~?wK8NQ1pfX37C)mvSG zUCLCQzgG)X zU!u|Mabin`*R~W|;EuXgPP5CVLc4!|Zj)E9i2N?W z{^d$c?bD{~Q(qUOT}gQvwZp~Z^bcsvQ8GI_<}>{~xizc=91<-cpuXW^y4AV?qm?U~ zj3l7n!B<&3;Z1el2G3>_>F7q)>ZF_eTC8RVunV)R4#8|3)6GrSEVD$~?h6zMZ3?bQ z^9Rn>>FTmk_trC@Oc^+0-N8 z8CUsuTe(E&!o9o2J0n9^@VldgrvXsk*4L`7db&q8+Wv^#?*Uo&Njh~acPRM?v; z4Cd+D|K>u(5(6R#OYz?v*FyU4T5i1ltQ#=ir&fG)Fdwbct}vlXorz99i?Jp~3wU2!{kXje^=Qj zD~j`J{h}9`{c+h;!B|2zg1>{Hr+UcaxsG#Q(hmw=S#2rm zNF6P|$JSj35{sn=is6t@SsQ9JiW*v)P1T&MArm}iE=`awlm?*i5{!a(BiZgs2m0-- zdo2qIB>N2&vxXZk_6m%c!tEA!%xyCs%m%RH9JXC;@B4Vkq_WAIjn)5ofUZRG+dW1| z$yFRE^7VQk65ILdaMU2} zxMqhvq_4N>wgi#aEKm?ApIX2s*dYzu8XxRPV3C*m3N>iG`gyg$&I#R`(OX|pSB@;6 zBLRyeNpF@@7mCSges2W^osujD&WXxxGg?K-?(57ZyCn(x-_~KCae1=WtsMl; zQLT))7_;5$3yIpfX!L;Z(tWr7{OiRi@4sxa!-l?Eq~T(Epf*fWe?86))2g!=9-sX+ z`)F3Es5v2*tdFZe7} z#@|RBRd&;hFt&YH*?DA3WNi(ZA+yNDqr-D=%{83Yri$V1A_{k(EZ?yJBewvNA3ulc z^VRkp{~^R86Up(8n**127hsxzFRO~c+)po5jYPhjU~mgQu?LH1hhT+Y%tk$lDb zZ|uz3HR<8^ z4U-Gr9>pGXo>JgMLM)@Dvie1T-4^%*q9x6p`||)eJ2;D81AENe9!;c z9yT;X#Q(PNJJ9rU>~hxMDrkFd%zAC44QkO@IFHXsMESa|YPUZ>+d46@=|MAsq9jPtAn zCw>^&SM`X>8g?_%E_Rc;Iy_=`N_@X?BRHK5kK#CglX=QUbMII2YHNnf;U}$?2WBF> zO(0cUpW`AqRb22h7WW)#b}~oJo@!5{c1!d+VBzGc_KR6a#tTxTP_DrvhT~Py(_y;| zSx)vF0nack^AO3zt#=|s?WyS<+d%|Im(N0M)v0}2rDRQw-jpM8-H@F_{G}>!Ob@~q z17QhCZhzAwE4&&y=e?uL_^Md^(Y^);$#c1O3Uzmx;b*OrSVU2$30tDBdSB4Q{P)wy zh=|WHzd5Vf?jjcrd+sye@cYm5eDzvtM^WtQ<1hioaX9*8tzzvC^Tj^adveB8^>_K0 zM6;{zO7yk;N8K<^Y!H`Wid@}xme%Zq?m_UecGz~=_|b~$C=PbsD@Y|a|E zP`46kdCVUlnMq#@_MME~81A!)7>`aNc!lvNl#%aD3Z_rBF(8#LFqux>k;rv&EP!gb zuyP){5=CZliNV!XqKI|zo5oUygM$-N_T4YnXVXjD&0CxK+eO1C?MJg&;w?-(Od zaP+VAoWrgw1iRvUtQ!7exJljk_P2~aio2Yq(zs4K7G}`-z_v$?ue?Izib-}063jCwFH)@snpZ}GaF z@eFKkkKm{dFPq(8A8O5>Od6e1v?pWgzAYZ!Ds?&R&Ye{+T0*Rc<9@;G0qHW*w?5a&4yqP9(V5^L|Edc0t!HMwSdzj~ z85>l+?#29amf1tKK1TojA3_lqS1Z2OPs5orebmZi(U|HT$0v+{Xc9;@&|)qb zjfVXhShOiSxfUU(+YMsN5VQsUYvBVnNxG}JA_weQGeaopo&2O-+k$v6~$2?-oEW-fkkrQ^}8RI7K~a z6KduuxQs{Sjbujqyc@n8IQl5nFWJy^K0m`H;LgGN*RmT4SHp40;Qiqv0TsLUh#(k! z>qy;(1C1!WA#b-)E%^;davGqpEPc5D3RzZ0R^G!P}gzj+grd`?wnoyqZkE5WKUEX*KI1!RC=Gj8zD} ztK|Xyn9AJ9^%s|3WoYn`Ee20VXU{22LftLg~_0}73x;!)C!d`Wpmoh+#W~7 zIGgGAyx`SNAKb@AV z6T7EwDV3mVbK||ww4cTdjyf;=ahZ`u4TSXdYWzv1z%txV#CGXHfliaqpPddRG@yYv z&*+(lYQGZm2|s4A%ZFof?C?4d`uO+5>P>H5kz-o{&w~oaL1o>J|NTUHug4K?y0~By zVlH28RcCT1XIW~`LG9_ITgx|O!i8X#$|33D5vmE720Pnb+>!c+GaaPx1{mY5^wf64 zh@m^&eibz5I~i^GI-SgF1Z91U#2xlh=M~tpheCUoo`@N@jb!YE1axeT1EC(#hy9o|>~clp$DtKjBW}`3Kb>Z7k#Bg|xx!PoF9{=KkJg79sdOr&%Vj z_XQw=ji<^ZGlOQ!4X!R1JS=V`KFxbC63)Ga|3g9`^OFVf7ha*C0e36Eg9z9wFSD@c3SSmfK8ozSGHusRW(-?X7Ft%$EwMbBvTf}3{= z=H_MFTg-(5uE=+82!xvQ%oV5kzuq3G9hpu53-8TYOMSB#@cd9<&Ss5<0JtMTUqDc3O-k8tM4R9^DsxLXDh6Zvij2Z+S?!-{~;^g1^i z9e(qiRxi{2YcyD)@|9%dy>j)PztUd8>(WdC)087Rcdh_J91E&hz&C8u3mQu|IoXMG zQ+n~YaDFk(W1awztb&WT~nu{`RU+6U8pmD`o-Hgofr<4}w59x!VHDG#r za6=O|uQQxvfrA&Bej@442RBpq{iww> zGTW%(lXIilzDde7LavY9mtX0Z-4(c^qv6JyYv2CuYr5{5p;2wKE><1KD;rZ}!c=l; z&LSg?JlQ(ms&%-o2xx(+XDYMzZRrt<@1@@5t58-LLt$NdLWIY3ynLqB^9ACy;2bAbj3wu zUAZ7OPMPrC#5`c(nV_4sLEwe<_oD6nK~7l?N4v3#NDqoiF>p#UXopGYueL2SD(}}H z$YG3GY{IXYu+1J_4i9m!M~#bdY~9A|5>>d`Llj65StXl?hD8gFBf>YfixRTEed(?QT!OOYSRPkXkqYpD`u=Ecok(h%j%HpPB{Ln5ASseS!M2-s9PQjc9Z zY^7=mg&MVvo#2X{U>>ZMJ>f|+ZB3i5-}7gh$P0^mth2n1tq3uP>_>c#fljGHbMeWOkv@-vJ@%vWbz;)E(ZzB(1N z=4@hho3w)3$k#54hR=DcT*&Ob;Qy?V^)7Eyq--}$CO0h$yQ%1Ar0dTgLva~4{gHrd z_4P$mjdD*bUuKkG1xOgw7ev|Ndi<`Pxqb_tP{5A3645MDsVn21cqyj?(_NubCd~D} zQR!-2QR7mKPnmNSzuZ8##%K2!S>!^yG$MVEx5%vWm8mh8x^DN9#}m|ppH6KCeQ>FL z5en1#)9HawL>6AKhW{MKv!|#&ipe!iZf=-D${wwt`c}n7?2LO&gShOGmYA1ZRIPno zL7ao!>#+NWhb5QoC-h1x%OJ^7pv0r^SXw*KWYCTJxxw-y4Fr*ghgObX6o(ZfSL)N$ zMH}fvEzWon&$)NeEcG3>wnW95F$iFdKQ=L4uL`f5d87hiHyNw{HF|34QZ-e77;i98 zK2wF${cU$FG4CI|%d%b|pvqlTmASgQo9zMa?RNyYmralP#NdZBuMt)|M(ZvvQUlV1 z1k5Z~b@e@)AM+bHOcR$8?Q;5CYR6sNv>;8s^q;jEF3|gHGEH(cYt!&WQK0ud>-jnr zmjNfI(qtpI3 zQ~s*6m~Qgrb-`%{urKXZy5W;nwn8M{!(rF*B9sn5fAy-x-#upRV7Z&4EZZ5!CC{7IBy0 zE#^(Z<&&XDOI%*pD2CJMf^c5x z?WX?LY1N2Pb(JwM6;hQevD|&0W$d3!jflk%04p7XACHr;cs3rijj&e;?W>+Tl6GTJs_ll55< zhgA1cWulf+)C*8ic`2<45Be41?U^2bo@|7@gH-K`D9fOY=F%uHndqRYLi<;tyo!P66CJkTPx>ckY?kppv zBANT2#k1rmxz{`+ZlNEG!khwq^8=Jkh{>Y9f$pqsXRJhW1?KpAg+hDPv4X_;O`{gj z7$yylQ0F#rWL?FdoSQa@c@4O=srQFQ1qX`HJ1`M=?mbL|HKlF&J;{DK0d~Gauamf| zFEQ#AeyLmPq4bVUY!{ST0I8$50|RR6S&enyTRkor>BAW2RvX5fXIB<_W|vRQwN7`d zF#UYDx)$x{MV)DBR-lVD)I${gEe(M0jDN#6H4q}Km4O<>1c%|`|aprM0!wK{8k zA)N`ZizahFqSuROJz^*I>m8h8>^WqoV8Rk1vJQJwl2rZ6lRT!GzsCC5-Bk860OJkI z*drQ?J6gL-#pw7A+?3VRZvX3$*8%&)8PmQE^4GEqwS9HqXmYtXZm|Ke+vL-Y=C9TK zos{V(^=_HvMB|ip&WoVuz7~)~6H5zsVKoN-lf&e7=FT}uFF&E>MX&YvpYFHn`2(60 zCS=MHg_2wD%8}J@$S{3veQyKd1XyniQLXU3DT+)MtLSMFPW@*u^Zoj|_i;nOJfdo# z>F$<5s*Gf*r6@%1teu1TEKL{N4f=r;*Hj9fnYLIEiw^JX8`c!!*n-z%`@lU8nzi^R z>u;?|R@J^97)}Cko}UuG{4+rxS>(+m7N<6Ls^$8c<+W1Rzvjn78f=6DlGY8i`8vdM z5ShuO$V$;N77x=sMRxVRQVt(wcUDy&S-qt4CYE05$sL~#lPib*%W^jB=#>h_o3)p0 z>SSQ(Ple55iS^0}9=iusHQWAUnnjJGqhcX5KzGoenoh11Mq?sa=_kdlmWJ;-Y_ydN zZz*8)y_c#j1)n;9(ZR8OEra9(n@31t0{%pxKI;3dj%6P;%Fsve9G7H`m|7j*_61n% z#9NWHjIoMBB{_P=jPMiRfWLx!2fDMT+EM~QR>yl)nq@(b`akQ_!cvyniX#)S9`6wE zm|t;Usa?dlIs+@r$b03V>wM$;#?R1OzW#cLG{ALGP_}n41GP2NVimNS=`R?c2t^xI z`e@_*W6DVWl(b|q{kLwFJ7J<9>Z*rlzSf??ZOU`H(A{EIba}L=Dp|mG7RnQWXpGc0?s^r z3}(G{n!=044)>}00e&a^;yomgtnZi$FTBkaNY*Lq%BWRqxPQ>DoxuxR_pMk6RW9Sp zEwS$|pjj0Y-@mTWw;|z-yT9`75rrExJ>i+^Hr>Th%%&>9>ZPm28WD=1tqgm5M<8e6 zqADBgp4)@P+ok*;8gFQ;1NKjbl6aJwYj!(l>Asl64J#T)Zjgmase`NMw-#ttPFtJ{ zr9%W6@qD-EW6+9V5;vAxW-xz#G^6v=u0W|(>Xw;~G{R$|D%i-^-o`7}BUz{Em;Z9UP@JG6)OB%ZHm_3_nSJ_o(N5VH zc$WUKfKC(j8pZSwnST%DQh(4#$j1N;`1|K3g_RaB&}s47Th25shTV)>^TTEAFW$B5 zUjmS^+|Xfz)kZDYsW+yT6X?f-Ocvh=ot3DovUPiL=BqE+m7QRksczdqg8}I?Ne^YJ zB4s7vvA1@8FUI_7r9URVs0HMwcyCpg)Hk~gm+j@0c)h_vPPzt15+f;U467c|EO(pg zDnCEHx7O$#NbC`NQVlxfXI;y~SwmlUJ$y#94JOONkl;H$0S#BfA|!`Y93iLe7@X9SYAkl2R%QfSxF%PF!N=*#RLcj6fG>j~p z2I5aB@S?;Kn}GdgIoI04@6-6r;nvXmZG%kXrQIk-bgQ47K-{(6-65?bQBY=DI#!RC!(&z z@|Ri1T%^);Q{L1#B0#l}DzH6Y!Q9>|rG0!nrs**|j!C!E{jLeAQFXbN+rpLvRNeDt zCLT&|71>{I-k$53^-&M<@?9UJR%IOmPLA&OWEob_=Is;eSXj89!# zP2d;Y0v?sjk#=z!!#bAsH@1h)vv6uk0l4Q;H!+FF z(0no;z8^IHV<>{T-)i4|ZVi*|Ty`Mq!p8ZExcvq{L8Q5D-78zSzTD;A0N3Bcxrzs= zwSXTBjW{w3@Hy$IXENq?kdelB<3oAJpN~)8j;PaG{X5&XLR-vm^?r7BNlAC)#7Ip| zb=q>FxEFJ^7c+a#=eMdlSDyWmbm!|kg_n;LZ_GdVGXMap*rue{Ge?(%HD4z+Z3Phc zGc*=^sP9e%%*YU?Nm#-G;t1sz*e7|g?e2(aH8FCYY6$Gt7NHr*yPD@&hx+`9x=Su~ zFRT}}db0{fHtJ5Cp6rf47uQv#tleGQM}>U!rI*KNyM)IDzAOhm_)LDL@yD>8ZMrm} zZ8Hj~C;DOK!&O+Sq`AA_NY)pTB*t1l>7oc-lL}Olyvq{Gc#+d{={>ggFz{dqZDux8 zKaYNtPPJ{Nl=jS&^s&+~!^LNDK1;#7qn6lIs*TOL+RjEjHJcoTzu4 zj_Iz%$W%xl{<1WzhY_=88DfG=h1~HS{M{)!1FLU;G$8k5R&9}za}6DZ#Ok2;X8nV2 zF;L{$pskv8UFV{XwwRJVm3gB9zbc%8wxjQGT9P?_F<>?2=rczZ}M!1C%~Z z`mwEAdOoo!iWrnxe;=1@JDx{;xfaLUJhI}Xn_`rT@i+6zYHWyl-ia{QJhT|#?ao*W za;yJJ$op#F8G38Yd91qrY3kjIPaO;Wb{;8om>qYFWLJ^X&i-?Z56W!RrMaX&&_Dkw zo2R}IvWF@W+FU$QZ+>)i)aUTsAx5?+^)Np!v`LWeCjO&PvvCF9rUC+OXZjR`4)XeA zO`)jlwhgD3B5$o8>Xbuju@P*2RSe~i!Z8}9#KrBv8k%kTQnXM~nD|cigOAn?g*6&4 zcD76Gu2!+CvhhOBsD_;R6*A259o4w~_vWECYGUPW9P!#*l|)3cQyp?ZG-Jt5ta#*7 zw^#TZNp7c<#sAmdnZG5K{c#-Ir_E`c$rnuSg|$6B9QAMvlh)xUgj>jWr*26f zBmgFqM6J)P7-QfN=ggrIWGQ9g-Msvb%=Z;i+zHWFoy|3=PX9Gm_iy49Hb8LN!LLztt#I~;e zRZbU-)mA&3ouHm8Mxhb-B&9M4=GFUd3aXjO9q@~C7$Nk38mDF9iB1Q-UcUUg@6WgN zp+pShbJRU@?WGGD$YDjoN-k+z%aCQ|~TZHQWoEG>A4t$zRXc#XJLD?9WHttQ*b~1(V zvkHDtCL{(SbHm?P>F(WoWt;MlJEWhFK=9w2yZX3R^m!dQ(7GCy5?i#TyXwQ=8IDyZ z_oW}71ZGyu6>0*+Tyht!&{~{7J=R}*)5P1D-q=W3+|ddAcJnu%NjOkgYi;6ib>zs~ zIT3TSI}51mup74BvEydE%|p#QW^^Ftq}bVtecqpI6(SbV9{oNs+~pxr2W~oqwVSN? zv;buXAe46)9j)BL8;=X{gvIw8I@PYwltf@10dtygL>$dF&HcsD*dWiL*ZOXaV&L5% z@i5#bygW^vd6uc6{ba$?*@)uXb!5gxX^fw7u1*mkRH#uKHvqDwSOSZse*+^lmT~y4 zjd8wnX>OaL2UVzWM=vHAxu&#qm`OXJTPanI%2xM1S#F=p!|S>n__bI9LHNE4to)&f zMA4~4II(+lFKoQBOv>b+-A&IALSSZshXvVdXJs8|$H09X`vly=tg_mtjoQbKHRXYp zx2&CFj!}KbB!XR{xfIvx>>*RShK|y{yk6*#CTk+SE9say*;CJgCZ9E~D6!hvZUhvI z^aSQpFqS@ApDpalJX zc5vcp!pIgFTJA99<9Uz#T)9A!Mj+iD4-tBA57^4Lj1GTiii+8Fn8*86;i79x*8Qfm z{y4<-@qmP;!C0I2*t&e7JIf)VZ!S{9kTmk$$8fOGm@88Kx7 zLAJK6=Tf7zAC}8AC!KXB>M`||hFQPeS3W4sjMWL|7tPe#COjuw^cN=69%jD!8kuq> zX3n@%>rIMtu1s?`#;%GQ&aznD+-G&UNsx{wav#8Abv1^qRA_$=2JlK4-%(f=>CHdh zf15dC$Z5njd<|YY9c3V_zcbd2iuPa}7UL6mT$QNIm;watOqHPomd78~=lo1X#SN$% z>RC2$QINr8*os3STFFQ;c@p1JVQ<@&kCUX{z4<6JvF{*FM_OBEoA39 zY*6Ul?PvRqVF@>?Nwm))0d6%PA6Cv3WW$G2H1-YU3j>$R_7-Pd-O>{O3}eePY@iUE z<2r8iT&MU4A;tQxasJ{*8q*WSb}M#oTsRfk{Kr?KbOJ1$-yQ~MoIg3&U1^^~C2H?c z5DW%$2XyrH$|lyl(wR8@wzB$^6>S?-?XY33z#ozL>EQK5DE3Dc-oGq%mKVacDGRz7 zMHoNRWqu|wq|azl)hfqB_fJZJNlylVdgnuWD#G$(?t~se==)uqTWkSDWFAd4;}8c1 zEgXAx_TGrLe3Q*`#Ja81H3q+!5@nGm{_%XZ$%E=9QsPL(b7B4Q*xR$tOezxLwpb_X z^JItl+r`ZIOni1}LpO{hb1K}3`t6Y&e~iop$mTiB9E@W2_`%g)z8P`g1@#5w@B$x3 zb=q~AVt5vbYpR#56_u1wX0K8xT6F_()Iy0-l-Y3Txy{E^Eg9~nzQC!M2SR%qYG1jU zz$H>IQrUceUdg?ZRI)a;*iakCY5D?E_ZHVDyqFI`1{d88Os+nKn9K`v5k6bFcaR9y zhq)HWTGXbl+_DDxmAQ#UYu3t;6ggQFnDG^`Qi)}hVK)!guM_gE8Q0}{>Hg;yuj%I3 zjy$5DKo+Or-<;|CsS7Hzjyz}VUR(3T&ECEd=vdr0j&@hh6Pjfn724-7wT)1FYsU-0 zTN|?0mb`qh=0gdjtJu-@%0PK2nRQv*mN1oP0rqQ?4MHau^+cUss*K*lby;|};t=g= zU~cI^AMr)c)WU_%_u;|cCOt0ciP7<>!o9{=1e%Q2V>*L9fn{wg)${qwK0>H8+snnJ zeLV>H%J4JASiB})?D+k>qoH%%U%u^}bKUc=`}M4qkyAC_iLP@_bprp<0ke>?73|fY zs+MDUInm|`v4r=0qYk67y+2`gcU{mmNlyH0B9f$3LLf;$mSASd55;jJjE%hw&@p_S z$3H|shnlyrYu{NuYyV(@c4NBe&RFF}bBRZtX_!*O0+&bGLlfg6aJyg(c5Y(6@Q`0b zV#^?$B`QSE`8#9Pmqc${3I-SWOy_CZ^$AF!_EibRpWHY;mZEb*^C2@JWO1@{q9i}c zz;D}gi}=O|b8{%I-V4l9OA-ktXl zN~RfrG@Gb~Cho%ip7cHDoYi{f^RD;Ms%guf>Xqs(k^qdAeB zlnRpqo_w%ZjcV^xJjlGrqJ+0@zg3hya4R}H*$RekmX~sqCU0+N&l1IT;7iS|TueA_ zfQ5r8^Ph%LQ|g$MxPe|aZTojfwp%_VaCU&FhtFuAE5GB>3etlQ#T{YHe!Ml7-@QO8 zw~Cp_s^F>hjdzbm{%9t=S7V2+fvI=&u1dKTZNE1y$}Yxxr>v{W1-n@~G!Yz(8c6c2 z6BR)7*ouD{aXyRa4D<2P*)WwDU#r0U$k&|kEwr>$U8)TeMRFW`uT+Yq9EZF<-pu81 zm?#ygvfyc{f(nx~;>-^MjLBP5+LY6;;nWY;MiLH|?LQ_CGDvp^xCr-4{usb=1cwB8 zzUY0|#3+8dAmR;ZNVKVo(iiHeE#>prP7+e;jw2ph~PHT~###y&Ge}qgDC*y?c+}pr6iUXfGkg=+K6G)3n;GA{5vcxbOPjJ7m0#G zBY-6V;?4F<-r4TCan3<<8wS;=ndOe4eNKSPAW-^6Y{3E}3li~~$%yFUZdI=Vt${6N zcU;{fdwpKnF_cLpI7hYJIMzhF(G+6~ipcts-vLjYt@6y~?I4{EPU?b-3S6NbbN~e0 zPj@2)z0RWB16j6KZz1*7+CfM;t9od~7e@(%V5Jp#-3cvlRa8Ztl8%R%u?<20=6-2# zw6#)>!x4=^+oAz)3<7Pl%GuBj+IY|a*iZy&yB6P|?f6?>0!RQ#KloqaE0+i>Yr?^p zxRqBg9sg4EeiT~V<;X(}%ZEW>JHA=k=oOZ()z3>i+w``>f=!^d@BeGCyr2mzGIB)% z&JDEB`>UnUl6}Yf{#@HtCtm=3`u(AX6)&82eUWZkqByf!w6fC;*$)gzIou#@htZdY zH`Xzg;+somNYPlek>AiT)Ufh}lhuC@bu*)*=SJF0J8=E*z#KGt=_Y8?mzN)Z;HsIh zElEP{aV3>>!W@Qu0kVY7XW-X_{jp`K<@;&<8nm6FUeyyhaXUEDJGx;}3i!7UuB$Fm zEP!)(X2hgyGorS0OdtQG7=1dpE+T$_q$ofs+(0gSzr3UVDMfL3?#)=pl44(fzf==w z`MRvbaz9ue2g@8-=D;!smN~G@fn^RXb6}YR%N$td!2bsarYNbdW}-7YWC_5i1fBHo L{+WI>?DzixK_}$q diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard index 22aaa9e..ecd41af 100644 --- a/ios/Runner/Base.lproj/LaunchScreen.storyboard +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -32,6 +32,6 @@ - + \ No newline at end of file diff --git a/lib/commons/ScoreCard.dart b/lib/commons/ScoreCard.dart index 6043af2..491c7b0 100644 --- a/lib/commons/ScoreCard.dart +++ b/lib/commons/ScoreCard.dart @@ -23,17 +23,17 @@ class _ScoreCardState extends State with TickerProviderStateMixin { _animationController = AnimationController(vsync: this, duration: Duration(seconds: 1)); animation = - Tween(begin: 20.0, end: 0.0).animate(_animationController) - ..addListener(() { - setState(() {}); - }) - ..addStatusListener((status) { - if (status == AnimationStatus.completed) { - _animationController.reverse(); - } else if (status == AnimationStatus.dismissed) { - _animationController.forward(); - } - }); + Tween(begin: 20.0, end: 0.0).animate(_animationController) + ..addListener(() { + setState(() {}); + }) + ..addStatusListener((status) { + if (status == AnimationStatus.completed) { + _animationController.reverse(); + } else if (status == AnimationStatus.dismissed) { + _animationController.forward(); + } + }); _animationController.forward(); } @@ -47,7 +47,8 @@ class _ScoreCardState extends State with TickerProviderStateMixin { return Card( child: InkWell( onTap: () { - Navigator.of(context).pushNamed('/matchstat', arguments: {'score': widget.score} ); + Navigator.of(context) + .pushNamed('/matchstat', arguments: {'score': widget.score}); }, child: Padding( padding: const EdgeInsets.all(12.0), @@ -60,7 +61,8 @@ class _ScoreCardState extends State with TickerProviderStateMixin { child: Text( '${widget.score.competition} - ${convertDateTime(date_time: widget.score.date_time)}', style: TextStyle( - fontSize: 12, color: Theme.of(context).primaryColorDark), + fontSize: (widget.score.competition.startsWith('UEFA')) ? 11: 12, + color: Theme.of(context).primaryColorDark), ), ), Spacer(), @@ -73,7 +75,9 @@ class _ScoreCardState extends State with TickerProviderStateMixin { (widget.score.status == 'LV') ? "${widget.score.minuteElapsed}'" : "${widget.score.status}", - style: TextStyle(color: Colors.red, fontSize: widget.score.status == 'LV' ? 14 : 12), + style: TextStyle( + color: Colors.red, + fontSize: widget.score.status == 'LV' ? 14 : 12), textAlign: TextAlign.right, ), ), @@ -88,28 +92,28 @@ class _ScoreCardState extends State with TickerProviderStateMixin { ], ), Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), + padding: const EdgeInsets.symmetric(horizontal: 16.0), child: Row( children: [ Container( width: MediaQuery.of(context).size.width * 0.2, child: Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Padding( - padding: - const EdgeInsets.only(bottom: 4.0), + padding: const EdgeInsets.only(bottom: 4.0), child: Container( height: 60, child: CachedNetworkImage( imageUrl: widget.score.homeTeamLogo, placeholder: (BuildContext context, String url) => - Icon(MyFlutterApp.football))), + Icon(MyFlutterApp.football))), ), - FittedBox(child: Text(widget.score.homeTeam), fit: BoxFit.fitWidth,) + FittedBox( + child: Text(widget.score.homeTeam), + fit: BoxFit.fitWidth, + ) ], ), ), @@ -119,15 +123,16 @@ class _ScoreCardState extends State with TickerProviderStateMixin { children: [ (widget.score.minuteElapsed != null) ? Text( - '${widget.score.homeScore} - ${widget.score.awayScore}', - style: TextStyle(fontSize: 30), - ) + '${widget.score.homeScore} - ${widget.score.awayScore}', + style: TextStyle(fontSize: 30), + ) : Text( - 'VS', - style: TextStyle( - fontSize: 18, - color: Theme.of(context).primaryColorDark), - ), + 'VS', + style: TextStyle( + fontSize: 18, + color: + Theme.of(context).primaryColorDark), + ), ], ), ), @@ -136,17 +141,19 @@ class _ScoreCardState extends State with TickerProviderStateMixin { child: Column( children: [ Padding( - padding: - const EdgeInsets.only(bottom: 8.0), + padding: const EdgeInsets.only(bottom: 8.0), child: Container( height: 60, child: CachedNetworkImage( imageUrl: widget.score.awayTeamLogo, placeholder: (BuildContext context, String url) => - Icon(MyFlutterApp.football))), + Icon(MyFlutterApp.football))), ), - FittedBox(child: Text(widget.score.awayTeam), fit: BoxFit.fitWidth,) + FittedBox( + child: Text(widget.score.awayTeam), + fit: BoxFit.fitWidth, + ) ], ), ) @@ -163,18 +170,18 @@ class _ScoreCardState extends State with TickerProviderStateMixin { } String convertDateTime({DateTime date_time}) { - int dayDifferenceCount = dayDifference(date_time1: DateTime.now(), date_time2: date_time); - if(dayDifferenceCount == 0) { - return 'Today, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); - } - else if(dayDifferenceCount == 1) { - return 'Yesterday, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); - } - else if(dayDifferenceCount == -1) { - return 'Tomorrow, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); - } - else { + int dayDifferenceCount = + dayDifference(date_time1: DateTime.now(), date_time2: date_time); + if (dayDifferenceCount == 0) { + return 'Today, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); + } else if (dayDifferenceCount == 1) { + return 'Yesterday, ' + + DateFormat('hh:mm aaa').format(widget.score.date_time); + } else if (dayDifferenceCount == -1) { + return 'Tomorrow, ' + + DateFormat('hh:mm aaa').format(widget.score.date_time); + } else { return DateFormat('E, d MMMM, hh:mm aaa').format(date_time); } } -} \ No newline at end of file +} diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index f282d8e..11d7950 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -40,10 +40,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { initialState.loadFavouriteNews(); } if (initialState.favouriteTeamScores == null) { - initialState.loadFavouriteScores(); - } - if (initialState.leagueWiseScores == null) { - initialState.loadLeagueWiseScores().then((value) { + initialState.loadFavouriteScores().then((value) { LocalStorage.getString('tutorialShown').then((value) { if (value == null || value == "no") { tutorial.showAfterLayout(context); @@ -52,6 +49,9 @@ class _HomeScreenState extends State with TickerProviderStateMixin { }); }); } + if (initialState.leagueWiseScores == null) { + initialState.loadLeagueWiseScores(); + } super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { showAlert(); diff --git a/lib/screens/IntroductionScreen.dart b/lib/screens/IntroductionScreen.dart index 55be605..3f091b3 100644 --- a/lib/screens/IntroductionScreen.dart +++ b/lib/screens/IntroductionScreen.dart @@ -55,7 +55,7 @@ class _IntroductionScreenState extends State { child: Container( padding: EdgeInsets.symmetric(horizontal: 20.0), child: Text( - 'Your football companion who keeps you updated about football latest happenings', + 'The football companion which keeps updated about latest scores and news.', textAlign: TextAlign.center, style: TextStyle( fontSize: 15, diff --git a/lib/screens/NewsArticle.dart b/lib/screens/NewsArticle.dart index 4939a70..05e3baf 100644 --- a/lib/screens/NewsArticle.dart +++ b/lib/screens/NewsArticle.dart @@ -54,7 +54,12 @@ class NewsArticleScreen extends StatelessWidget { fit: BoxFit.cover, placeholder: (BuildContext context, String url) => - CircularProgressIndicator(), + Image.asset( + 'assets/images/news_default.png', + width: 50, + fit: BoxFit + .cover, + ), ), ), ), diff --git a/lib/widgets/LeagueDropdown.dart b/lib/widgets/LeagueDropdown.dart index 128d385..4c169ec 100644 --- a/lib/widgets/LeagueDropdown.dart +++ b/lib/widgets/LeagueDropdown.dart @@ -52,7 +52,6 @@ class _LeagueDropdownState extends State { await model.loadLeagueWiseScores(leagueName: value); } if(widget.purpose == "score") { - await model.loadLeagueWiseScores(leagueName: value); await model.loadLeagueTable( leagueName: value); Navigator.of(context).pushReplacementNamed('/league'); diff --git a/lib/widgets/Stats.dart b/lib/widgets/Stats.dart index 85236b8..fde7ddb 100644 --- a/lib/widgets/Stats.dart +++ b/lib/widgets/Stats.dart @@ -22,8 +22,9 @@ class _StatsState extends State { @override void initState() { super.initState(); - final MatchStatViewModel initialState = Provider.of(context, listen: false); - if(initialState.stats == null) { + final MatchStatViewModel initialState = + Provider.of(context, listen: false); + if (initialState.stats == null) { initialState.loadStats(fixtureId: widget.score.id); } } @@ -41,7 +42,7 @@ class _StatsState extends State { padding: const EdgeInsets.all(12.0), child: Consumer( builder: (context, model, child) { - if(model != null && model.stats != null) { + if (model != null && model.stats != null) { final stats = model.stats; return Column( children: [ @@ -52,15 +53,17 @@ class _StatsState extends State { height: 25, child: CachedNetworkImage( imageUrl: widget.score.homeTeamLogo, - placeholder: (BuildContext context, String url) => - Icon(MyFlutterApp.football))), + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), Text('Team Stats'), Container( height: 25, child: CachedNetworkImage( imageUrl: widget.score.awayTeamLogo, - placeholder: (BuildContext context, String url) => - Icon(MyFlutterApp.football))) + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))) ], ), Padding( @@ -71,7 +74,7 @@ class _StatsState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - '${stats["home"].totalShots}', + '${stats["home"].totalShots.isNaN ? 'N/A' : stats["home"].totalShots}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ), @@ -81,7 +84,7 @@ class _StatsState extends State { textAlign: TextAlign.center, ), Text( - '${stats["away"].totalShots}', + '${stats["away"].totalShots.isNaN ? 'N/A' : stats["away"].totalShots}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ) @@ -96,7 +99,7 @@ class _StatsState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - '${stats["home"].shotsOnTarget}', + '${stats["home"].shotsOnTarget.isNaN ? 'N/A' : stats["home"].shotsOnTarget}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ), @@ -106,7 +109,7 @@ class _StatsState extends State { textAlign: TextAlign.center, ), Text( - '${stats["away"].shotsOnTarget}', + '${stats["away"].shotsOnTarget.isNaN ? 'N/A' : stats["away"].shotsOnTarget}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ) @@ -146,7 +149,7 @@ class _StatsState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - '${stats["home"].totalPasses}', + '${stats["home"].totalPasses.isNaN ? 'N/A' : stats["home"].totalPasses}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ), @@ -156,7 +159,7 @@ class _StatsState extends State { textAlign: TextAlign.center, ), Text( - '${stats["away"].totalPasses}', + '${stats["away"].totalPasses.isNaN ? 'N/A' : stats["away"].totalPasses}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ) @@ -196,7 +199,7 @@ class _StatsState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - '${stats["home"].fouls}', + '${stats["home"].fouls.isNaN ? 'N/A' : stats["home"].fouls}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ), @@ -206,7 +209,7 @@ class _StatsState extends State { textAlign: TextAlign.center, ), Text( - '${stats["away"].fouls}', + '${stats["away"].fouls.isNaN ? 'N/A' : stats["away"].fouls}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ) @@ -221,7 +224,7 @@ class _StatsState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - '${stats["home"].yellowCards}', + '${stats["home"].yellowCards.isNaN ? 'N/A' : stats["home"].yellowCards}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ), @@ -231,7 +234,7 @@ class _StatsState extends State { textAlign: TextAlign.center, ), Text( - '${stats["away"].yellowCards}', + '${stats["away"].yellowCards.isNaN ? 'N/A' : stats["away"].yellowCards}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ) @@ -246,7 +249,7 @@ class _StatsState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - '${stats["home"].redCards}', + '${stats["home"].redCards.isNaN ? 'N/A' : stats["home"].redCards}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ), @@ -256,7 +259,7 @@ class _StatsState extends State { textAlign: TextAlign.center, ), Text( - '${stats["away"].redCards}', + '${stats["away"].redCards.isNaN ? 'N/A' : stats["away"].redCards}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ) @@ -271,7 +274,7 @@ class _StatsState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - '${stats["home"].offsides}', + '${stats["home"].offsides.isNaN ? 'N/A' : stats["home"].offsides}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ), @@ -281,7 +284,7 @@ class _StatsState extends State { textAlign: TextAlign.center, ), Text( - '${stats["away"].offsides}', + '${stats["away"].offsides.isNaN ? 'N/A' : stats["away"].offsides}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ) @@ -296,7 +299,7 @@ class _StatsState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - '${stats["home"].corners}', + '${stats["home"].corners.isNaN ? 'N/A' : stats["home"].corners}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ), @@ -306,7 +309,7 @@ class _StatsState extends State { textAlign: TextAlign.center, ), Text( - '${stats["away"].corners}', + '${stats["away"].corners.isNaN ? 'N/A' : stats["away"].corners}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ) @@ -321,7 +324,7 @@ class _StatsState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - '${stats["home"].saves}', + '${stats["home"].saves.isNaN ? 'N/A' : stats["home"].saves}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ), @@ -331,7 +334,7 @@ class _StatsState extends State { textAlign: TextAlign.center, ), Text( - '${stats["away"].saves}', + '${stats["away"].saves.isNaN ? 'N/A' : stats["away"].saves}', style: TextStyle(fontSize: 14), textAlign: TextAlign.center, ) @@ -340,13 +343,14 @@ class _StatsState extends State { ) ], ); - } - else { - return themeModel.appTheme == AppTheme.Light ? PKCardPageSkeleton( - totalLines: 10, - ) : PKDarkCardPageSkeleton( - totalLines: 10, - ); + } else { + return themeModel.appTheme == AppTheme.Light + ? PKCardPageSkeleton( + totalLines: 10, + ) + : PKDarkCardPageSkeleton( + totalLines: 10, + ); } }, ), diff --git a/pubspec.yaml b/pubspec.yaml index a6ae5e2..010e288 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,7 +11,7 @@ description: A new Flutter project. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.0+1 +version: 1.0.0+2 environment: sdk: ">=2.5.2 <3.0.0" From 4e1af2fb3d502f8eadc86bd0569b8a1e5966d28f Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Mon, 10 Aug 2020 04:16:54 +0530 Subject: [PATCH 49/49] Fixed home double tapping issue and default previousdate was changed to 90 days --- lib/commons/BottomNavbar.dart | 5 +- lib/commons/GlobalKeys.dart | 10 --- lib/commons/HomeBottomNavbar.dart | 54 ---------------- lib/main.dart | 1 + lib/screens/DashboardScreen.dart | 89 +++++++++++++++++++++++---- lib/screens/FavouriteScreen1.dart | 4 ++ lib/screens/FavouriteScreen2.dart | 13 +++- lib/screens/HomeScreen.dart | 20 +++--- lib/screens/IntroductionScreen.dart | 3 +- lib/screens/MatchStatScreen.dart | 60 ++++++++++-------- lib/services/CustomRouter.dart | 5 ++ lib/services/GetItLocator.dart | 2 +- lib/services/RemoteConfigService.dart | 39 ++++++++---- lib/services/tutorial.dart | 20 ------ lib/widgets/SettingsDialog.dart | 23 ++++--- pubspec.yaml | 2 +- 16 files changed, 189 insertions(+), 161 deletions(-) delete mode 100644 lib/commons/HomeBottomNavbar.dart diff --git a/lib/commons/BottomNavbar.dart b/lib/commons/BottomNavbar.dart index 49dfe6f..4003136 100644 --- a/lib/commons/BottomNavbar.dart +++ b/lib/commons/BottomNavbar.dart @@ -3,7 +3,6 @@ import 'package:provider/provider.dart'; import 'custom_icons.dart'; import '../Provider/AppProvider.dart'; import '../Provider/ThemeProvider.dart'; -import 'GlobalKeys.dart'; class BottomNavbar extends StatelessWidget { final List routes = ['/home', '/score', '/league', '/news', '/dashboard']; Widget build(BuildContext context){ @@ -24,8 +23,8 @@ class BottomNavbar extends StatelessWidget { title: Text('Matches', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( - activeIcon: Icon(Icons.table_chart, color: Theme.of(context).primaryColor,), - icon: Icon(Icons.table_chart,), + activeIcon: Icon(MyFlutterApp.football, color: Theme.of(context).primaryColor,), + icon: Icon(MyFlutterApp.football,), title: Text('League', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( diff --git a/lib/commons/GlobalKeys.dart b/lib/commons/GlobalKeys.dart index ef1eb66..e410dc6 100644 --- a/lib/commons/GlobalKeys.dart +++ b/lib/commons/GlobalKeys.dart @@ -4,19 +4,9 @@ class GlobalKeys { static final GlobalKey carouselKey = GlobalKey(debugLabel: 'carouselKey'); static final GlobalKey matchCardKey = GlobalKey(debugLabel: 'matchCardKey'); static final GlobalKey allNewsCardKey = GlobalKey(debugLabel: 'allNewsCardKey'); - static final GlobalKey homeScreenKey = GlobalKey(debugLabel: 'homeScreenKey'); - static final GlobalKey scoreScreenKey = GlobalKey(debugLabel: 'scoreScreenKey'); - static final GlobalKey leagueScreenKey = GlobalKey(debugLabel: 'leagueScreenKey'); - static final GlobalKey newsScreenKey = GlobalKey(debugLabel: 'newsScreenKey'); - static final GlobalKey dashboardScreenKey = GlobalKey(debugLabel: 'dashboardScreenKey'); static final List globalKeys = [ carouselKey, matchCardKey, allNewsCardKey, - homeScreenKey, - scoreScreenKey, - leagueScreenKey, - newsScreenKey, - dashboardScreenKey ]; } diff --git a/lib/commons/HomeBottomNavbar.dart b/lib/commons/HomeBottomNavbar.dart deleted file mode 100644 index cf000ce..0000000 --- a/lib/commons/HomeBottomNavbar.dart +++ /dev/null @@ -1,54 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'custom_icons.dart'; -import '../Provider/AppProvider.dart'; -import '../Provider/ThemeProvider.dart'; -import 'GlobalKeys.dart'; -class HomeBottomNavbar extends StatelessWidget { - final List routes = ['/home', '/score', '/league', '/news', '/dashboard']; - Widget build(BuildContext context){ - final ThemeProvider _themeProvider = Provider.of(context); - final _bottomNavBarStyle = TextStyle( - fontWeight: FontWeight.w400, - color: _themeProvider.appTheme == AppTheme.Light ? Colors.black : Colors.white, - ); - final List bottomNavbarItems = [ - new BottomNavigationBarItem( - activeIcon: Icon(MyFlutterApp.home__1_, key: GlobalKeys.homeScreenKey, color: Theme.of(context).primaryColor,), - icon: Icon(MyFlutterApp.home__1_,), - title: Text('Home', style: _bottomNavBarStyle,) - ), - new BottomNavigationBarItem( - activeIcon: Icon(MyFlutterApp.score, color: Theme.of(context).primaryColor,), - icon: Icon(MyFlutterApp.score, key: GlobalKeys.scoreScreenKey,), - title: Text('Matches', style: _bottomNavBarStyle,) - ), - new BottomNavigationBarItem( - activeIcon: Icon(Icons.table_chart, color: Theme.of(context).primaryColor,), - icon: Icon(Icons.table_chart, key: GlobalKeys.leagueScreenKey,), - title: Text('League', style: _bottomNavBarStyle,) - ), - new BottomNavigationBarItem( - activeIcon: Icon(MyFlutterApp.news, color: Theme.of(context).primaryColor,), - icon: Icon(MyFlutterApp.news, key: GlobalKeys.newsScreenKey,), - title: Text('News', style: _bottomNavBarStyle,) - ), - new BottomNavigationBarItem( - activeIcon: Icon(Icons.settings, color: Theme.of(context).primaryColor,), - icon: Icon(Icons.settings, key: GlobalKeys.dashboardScreenKey,), - title: Text('Settings', style: _bottomNavBarStyle,) - ) - ]; - return Consumer( - builder: (context, model, child) => BottomNavigationBar( - type: BottomNavigationBarType.fixed, - items: bottomNavbarItems, - onTap: (int index) { - model.navbarIndex = index; - Navigator.of(context).pushReplacementNamed(routes[index]); - }, - currentIndex: model.navbarIndex, - ), - ); - } -} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index d9a277a..5d4ccbd 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -21,6 +21,7 @@ void main() async { WidgetsFlutterBinding.ensureInitialized(); await App.initialiseApp(); + Crashlytics.instance.enableInDevMode = true; FlutterError.onError = Crashlytics.instance.recordFlutterError; runApp(MultiProvider( providers: [ diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index 99b7616..49df81b 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -20,6 +20,7 @@ import '../commons/CustomRaisedButton.dart'; import '../services/FirebaseMessagingService.dart'; import '../Provider/ThemeProvider.dart'; import '../services/FlushbarHelper.dart'; +import 'package:url_launcher/url_launcher.dart'; class DashboardScreen extends StatefulWidget { @override @@ -596,14 +597,24 @@ class _DashboardScreenState extends State model.notificationEnabled = !model.notificationEnabled; if (value) { - FlushHelper.flushbarAlert(context: context, title: 'Success', message: 'Push Notications Enabled', seconds: 2); + FlushHelper.flushbarAlert( + context: context, + title: 'Success', + message: + 'Push Notications Enabled', + seconds: 2); LocalStorage.setString( 'notificationEnabled', "yes"); await _fcmService.subscribeToTopic( topic: teamName.replaceAll(' ', '')); } else { - FlushHelper.flushbarAlert(context: context, title: 'Success', message: 'Push Notications Disabled', seconds: 2); + FlushHelper.flushbarAlert( + context: context, + title: 'Success', + message: + 'Push Notications Disabled', + seconds: 2); LocalStorage.setString( 'notificationEnabled', "no"); await _fcmService @@ -618,6 +629,50 @@ class _DashboardScreenState extends State ], ), ), + Container( + height: MediaQuery.of(context).size.height / 12, + child: InkWell( + onTap: () async { + await launchUrl( + 'https://play.google.com/store/apps/details?id=com.footballmojo'); + }, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 50, + child: Icon( + Icons.star_border, + color: Color(0xff808080), + size: 30, + ), + ), + Expanded( + child: Padding( + padding: + const EdgeInsets.only(left: 12.0), + child: Text( + 'Rate this app on play store', + style: TextStyle( + color: Color(0xff808080), + fontSize: 20, + fontWeight: FontWeight.w300), + ), + ), + ), + Container( + width: 50, + child: Icon( + Icons.chevron_right, + color: Theme.of(context).primaryColor, + size: 30, + ), + ) + ], + ), + ), + ), Container( height: MediaQuery.of(context).size.height / 12, child: InkWell( @@ -682,7 +737,8 @@ class _DashboardScreenState extends State builder: (BuildContext context) => AnimatedBuilder( animation: _sunController, child: Container( - padding: EdgeInsets.symmetric(horizontal: MediaQuery.of(context).size.width * 0.25), + padding: EdgeInsets.symmetric( + horizontal: MediaQuery.of(context).size.width * 0.25), child: Image.asset('assets/images/sun.png'), ), builder: (BuildContext context, Widget _widget) { @@ -709,20 +765,29 @@ class _DashboardScreenState extends State context: context, barrierDismissible: true, builder: (BuildContext context) => Container( - padding: EdgeInsets.symmetric(horizontal: MediaQuery.of(context).size.width * 0.3), - child: Center( - child: SlideTransition( - position: _moonAnimation, - child: Container( - child: Image.asset('assets/images/moon.png'), + padding: EdgeInsets.symmetric( + horizontal: MediaQuery.of(context).size.width * 0.3), + child: Center( + child: SlideTransition( + position: _moonAnimation, + child: Container( + child: Image.asset('assets/images/moon.png'), + ), + ), ), - ), - ), - )).then((value) { + )).then((value) { // dispose the timer in case something else has triggered the dismiss. timer?.cancel(); timer = null; }); ; } + + Future launchUrl(String url) async { + if (await canLaunch(url)) { + await launch(url); + } else { + throw 'Could not launch $url'; + } + } } diff --git a/lib/screens/FavouriteScreen1.dart b/lib/screens/FavouriteScreen1.dart index 2c25108..8496ed9 100644 --- a/lib/screens/FavouriteScreen1.dart +++ b/lib/screens/FavouriteScreen1.dart @@ -3,6 +3,7 @@ import 'package:provider/provider.dart'; import 'package:flutter/material.dart'; import '../constants.dart'; import '../Provider/ThemeProvider.dart'; +import '../commons/custom_icons.dart'; class FavouriteLeague extends StatefulWidget { @override @@ -162,6 +163,9 @@ class _FavouriteLeagueState extends State { child: CachedNetworkImage( imageUrl: league.value["logo"], fit: BoxFit.contain, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football), ), ), ), diff --git a/lib/screens/FavouriteScreen2.dart b/lib/screens/FavouriteScreen2.dart index 655494a..4447298 100644 --- a/lib/screens/FavouriteScreen2.dart +++ b/lib/screens/FavouriteScreen2.dart @@ -13,6 +13,7 @@ import '../services/GetItLocator.dart'; import '../services/FirestoreService.dart'; import '../services/FirebaseMessagingService.dart'; import '../Provider/ThemeProvider.dart'; +import '../services/LocalStorage.dart'; class FavouriteTeam extends StatefulWidget { final int leagueId; @@ -31,6 +32,7 @@ class _FavouriteTeamState extends State { final FirestoreService _firestoreService = locator(); final FirebaseMessagingService _fcmService = locator(); + bool showTutorial = false; @override void initState() { @@ -39,6 +41,14 @@ class _FavouriteTeamState extends State { setState(() { futureTeamList = _teamService.fetchTeams(id: widget.leagueId); }); + LocalStorage.getString('showTutorial').then((value) { + if(value == null || value == "yes") { + setState(() { + showTutorial = true; + }); + LocalStorage.setString('showTutorial', 'no'); + } + }); } @override @@ -300,7 +310,8 @@ class _FavouriteTeamState extends State { 'favouriteTeamMessage': { 'title': 'Success', 'content': '${team.name} added as your favourite team' - } + }, + 'showTutorial': showTutorial }); } ; diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 11d7950..50ddb89 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -2,8 +2,8 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:provider/provider.dart'; -import 'package:sportsmojo/commons/ScoreCard.dart'; -import 'package:sportsmojo/models/Score.dart'; +import '../commons/ScoreCard.dart'; +import '../models/Score.dart'; import '../commons/BottomNavbar.dart'; import '../commons/NewsCard.dart'; import '../models/News.dart'; @@ -16,12 +16,11 @@ import '../Provider/ThemeProvider.dart'; import '../services/tutorial.dart'; import '../commons/GlobalKeys.dart'; import '../services/LocalStorage.dart'; -import '../commons/HomeBottomNavbar.dart'; - class HomeScreen extends StatefulWidget { @override final Map message; - HomeScreen({this.message}); + bool showTutorial; + HomeScreen({this.message, this.showTutorial}); _HomeScreenState createState() => _HomeScreenState(); } @@ -42,9 +41,8 @@ class _HomeScreenState extends State with TickerProviderStateMixin { if (initialState.favouriteTeamScores == null) { initialState.loadFavouriteScores().then((value) { LocalStorage.getString('tutorialShown').then((value) { - if (value == null || value == "no") { + if (widget.showTutorial) { tutorial.showAfterLayout(context); - LocalStorage.setString('tutorialShown', "yes"); } }); }); @@ -69,7 +67,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); return Scaffold( - bottomNavigationBar: HomeBottomNavbar(), + bottomNavigationBar: BottomNavbar(), body: Consumer( builder: (context, themeModel, child) => ChangeNotifierProvider( @@ -161,7 +159,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { caption = 'Live Match'; } return Padding( - key: GlobalKeys.matchCardKey, + key: widget.showTutorial ? GlobalKeys.matchCardKey : null, padding: const EdgeInsets.all(8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.center, @@ -188,7 +186,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { return Padding( padding: const EdgeInsets.all(8.0), child: Card( - key: GlobalKeys.allNewsCardKey, + key: widget.showTutorial ? GlobalKeys.allNewsCardKey : null, child: Column( mainAxisSize: MainAxisSize.min, children: [ @@ -246,7 +244,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { } return Container( height: MediaQuery.of(context).size.height * 0.35, - key: GlobalKeys.carouselKey, + key: widget.showTutorial ? GlobalKeys.carouselKey : null, child: favouriteNewsList != null ? Stack( alignment: Alignment.bottomLeft, diff --git a/lib/screens/IntroductionScreen.dart b/lib/screens/IntroductionScreen.dart index 3f091b3..2e7cf17 100644 --- a/lib/screens/IntroductionScreen.dart +++ b/lib/screens/IntroductionScreen.dart @@ -123,7 +123,8 @@ class _IntroductionScreenState extends State { 'title': 'Success', 'content': '${data['teamName']} added as your favourite team' - } + }, + 'showTutorial': true }); } else { Navigator.of(context) diff --git a/lib/screens/MatchStatScreen.dart b/lib/screens/MatchStatScreen.dart index 1e10bf0..e144e29 100644 --- a/lib/screens/MatchStatScreen.dart +++ b/lib/screens/MatchStatScreen.dart @@ -121,20 +121,23 @@ class _MatchStatScreenState extends State ), Row( children: [ - Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 4.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: widget.score.homeTeamLogo, - placeholder: (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - ), - FittedBox(child: Text(widget.score.homeTeam)), - ], + Container( + width: MediaQuery.of(context).size.width * 0.2, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 4.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.homeTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + ), + FittedBox(child: Text(widget.score.homeTeam), fit: BoxFit.fitWidth), + ], + ), ), Expanded( child: Row( @@ -156,19 +159,22 @@ class _MatchStatScreenState extends State ], ), ), - Column( - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: widget.score.awayTeamLogo, - placeholder: (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - ), - FittedBox(child: Text(widget.score.awayTeam)) - ], + Container( + width: MediaQuery.of(context).size.width * 0.2, + child: Column( + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.awayTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + ), + FittedBox(child: Text(widget.score.awayTeam), fit: BoxFit.fitWidth,) + ], + ), ) ], ), diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index df08aa8..7988b29 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -50,6 +50,7 @@ class RouterService { String from; Map favouriteTeamMessage = null; Score score = null; + bool showTutorial = false; if (args != null) { if (args.containsKey('index')) { index = args['index']; @@ -72,11 +73,15 @@ class RouterService { if (args.containsKey('from')) { from = args['from']; } + if (args.containsKey('showTutorial')) { + showTutorial = args['showTutorial']; + } } Map screens = { '/start': Start(), '/home': HomeScreen( message: favouriteTeamMessage, + showTutorial: showTutorial ), '/score': ScoreScreen(), '/league': LeagueTableScreen(), diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index fb81c48..2103ed0 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -55,7 +55,7 @@ Future setupLocator() async { 0, map['leagueName'], map['notificationEnabled'], - now.subtract(Duration(days: 30)), + now.subtract(Duration(days: 90)), now.add(Duration(days: 7)), currentUser)); locator.registerFactoryParam( diff --git a/lib/services/RemoteConfigService.dart b/lib/services/RemoteConfigService.dart index 1e996d5..018aee3 100644 --- a/lib/services/RemoteConfigService.dart +++ b/lib/services/RemoteConfigService.dart @@ -1,4 +1,5 @@ import 'package:firebase_remote_config/firebase_remote_config.dart'; +import '../secret.dart'; class RemoteConfigService { final RemoteConfig _remoteConfig; @@ -17,21 +18,35 @@ class RemoteConfigService { RemoteConfigService({RemoteConfig remoteConfig}) : _remoteConfig = remoteConfig; - Future initialise() async{ + Future initialise() async { + try { + activateAndFetch(); + } on FetchThrottledException catch (exception) { + try { + activateAndFetch(); + } catch (e) {} + } catch (exception) { + try { + activateAndFetch(); + } catch (e) {} + } + } + + String getString({String key}) { + return _remoteConfig.getString(key); + } + + Future activateAndFetch() async { final Map defaults = { 'season': 2019, - 'scoreApiKey': "", - 'newsApiKey': "", - 'scoreUrl': "", - 'newsUrl': "", - 'xRapidapiHost': "" + 'scoreApiKey': scoreApiKey, + 'newsApiKey': newsApiKey, + 'scoreUrl': scoreUrl, + 'newsUrl': newsUrl, + 'xRapidapiHost': xRapidApiHost }; await _remoteConfig.setDefaults(defaults); - await _remoteConfig.fetch(expiration: Duration(hours: 1)); + await _remoteConfig.fetch(expiration: Duration(hours: 5)); await _remoteConfig.activateFetched(); } - - String getString({String key}){ - return _remoteConfig.getString(key); - } -} \ No newline at end of file +} diff --git a/lib/services/tutorial.dart b/lib/services/tutorial.dart index 67643fa..973f7de 100644 --- a/lib/services/tutorial.dart +++ b/lib/services/tutorial.dart @@ -18,26 +18,6 @@ class Tutorial { "This section will show general footballing news.", AlignContent.top, ], - [ - "This is your home screen", - AlignContent.top, - ], - [ - "This screen will show you all the matches for your favourite team", - AlignContent.top, - ], - [ - "This screen will show you matchdays, table and topscorers for a league.", - AlignContent.top, - ], - [ - "This screen is for all the footballing news", - AlignContent.top, - ], - [ - "This is your dashboard screen for managing sign-in, changing theme and other prefrences for the app.", - AlignContent.top, - ] ]; for (int i = 0; i < targetContent.length; i++) { targets.add(TargetFocus( diff --git a/lib/widgets/SettingsDialog.dart b/lib/widgets/SettingsDialog.dart index 8035d6a..0161b0c 100644 --- a/lib/widgets/SettingsDialog.dart +++ b/lib/widgets/SettingsDialog.dart @@ -7,7 +7,7 @@ import '../commons/CustomRaisedButton.dart'; class SettingsDialog extends StatefulWidget { final Color borderColor; - SettingsDialog({Key key, this.borderColor}) : super(key:key); + SettingsDialog({Key key, this.borderColor}) : super(key: key); @override _SettingsDialogState createState() => _SettingsDialogState(); } @@ -23,13 +23,15 @@ class _SettingsDialogState extends State { now = DateTime(now.year, now.month, now.day); setState(() { startDate = dayDifference( - date_time1: getFirstAndLastDate(appProvider.leagueWiseScores)["firstDate"], + date_time1: getFirstAndLastDate( + appProvider.leagueWiseScores)["firstDate"], date_time2: appProvider.startDate) < 0 ? appProvider.startDate : getFirstAndLastDate(appProvider.leagueWiseScores)["firstDate"]; endDate = dayDifference( - date_time1: getFirstAndLastDate(appProvider.leagueWiseScores)["lastDate"], + date_time1: getFirstAndLastDate( + appProvider.leagueWiseScores)["lastDate"], date_time2: appProvider.endDate) > 0 ? appProvider.endDate @@ -49,7 +51,8 @@ class _SettingsDialogState extends State { builder: (context, model, child) => Column( children: [ Padding( - padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 12.0), + padding: + const EdgeInsets.symmetric(horizontal: 8.0, vertical: 12.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ @@ -58,8 +61,10 @@ class _SettingsDialogState extends State { final DateTime date = await showDatePicker( context: context, initialDate: startDate, - firstDate: getFirstAndLastDate(model.leagueWiseScores)["firstDate"], - lastDate: getFirstAndLastDate(model.leagueWiseScores)["lastDate"]); + firstDate: getFirstAndLastDate( + model.leagueWiseScores)["firstDate"], + lastDate: getFirstAndLastDate( + model.leagueWiseScores)["lastDate"]); if (date != null) { setState(() { startDate = date; @@ -97,8 +102,10 @@ class _SettingsDialogState extends State { final DateTime date = await showDatePicker( context: context, initialDate: endDate, - firstDate: getFirstAndLastDate(model.leagueWiseScores)["firstDate"], - lastDate: getFirstAndLastDate(model.leagueWiseScores)["lastDate"]); + firstDate: getFirstAndLastDate( + model.leagueWiseScores)["firstDate"], + lastDate: getFirstAndLastDate( + model.leagueWiseScores)["lastDate"]); if (date != null) { setState(() { endDate = date; diff --git a/pubspec.yaml b/pubspec.yaml index 010e288..6d5ad8d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,7 +11,7 @@ description: A new Flutter project. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.0+2 +version: 1.0.2+4 environment: sdk: ">=2.5.2 <3.0.0"

E`pjHB3jUd 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 aI3wh>C^_-4IH`mzpeU;%lP7KT?*9SV+8X)* literal 72144 zcmeFYg;UhsA24d7q9BO02rSYi-Jr0bNGwRV(zSG_N-d3aE+O5yG$3U%ZxK}zUQ1z_rYII_6-&$3FeI(H?Sn%Lf_xGacB6(joa1tZ-Eu<)gAE5 zjR#h5)ogFvc!-Dock@PkBGHW-6gMQHuN9ppHak=O#kzg`was+V}?nv;Su{Zn7i2bLbaQ-Gy@9ze25;|*5@Xi}eB~zz&Dqbw{1Yu}z)2m0R%W2d z-_y&>v%`qVzd!POLOJx}0SB2oLrkt53FPa48+aFN4XALrij;!&M<;YVlj1u`vGa5^ zY2a~{Xk$VvUtD^%T8plw1XnWw`C#{9zE)hlL0LPUEWur{0VwpVB7fL7xD!Y5+DQb5 zYkJVKzx9BG@N4i9t<=B0R}AqJ_1$uf%sKFE?H0Y#*qi^Q;rrUlx*QFhs2|8&@qc&U z!zG_r{2ZZg+`>L!^_DrsAeat(0rYr`Js7!?++|Qr=zxx<*$(J7a#VVQgNLGJ*|KDBHEh;wevq!o0QoGy#B_h_x z=_rLF;oCTu5618wz9KD}L4Y`-C_Yk%;$s^*`?OO-=FKtmGO+i4{}x_a=k5tLP9nK3 zmu0`y9DiHz32pFU1Kk}ivYXt2-0$=6|GR`CBQspkYFBFfqWhWFKNr7pZ12Xwj^Jav z-3gP=)-J#?{K5jh0HLJ>t8Vrjs=vo$r$f720Ii*OFSYkm@+a?_Z5k3C`gb@0X*Aha zAG7gf*adjH5opT5(M`Y2g*TA=btnhPF7229$Zg`}W*_z+jf*FhgGtgU1D}W%3?puE zz&V98MuB?%TMrjfNO#x2x2l<#$d^RuiW-;QO=BZK0J6~he^IPO%b%)m@gjfS5Um*i z+M|>l$<|(e^7%VtoX<#dRhm=Nd>(>N=x^m&C0~7#+SlbA;9xh}sg>Z#w`plWKH8i9 zyM-N3!0To>hVE*Fjpvj=xsPNu_yDM-aDc48q~~c**95-<5gaC}295iV)2gAP55W9W z;fHcOw&sh9J5Vw2r~j@Umqdh%BI0}6v3!PA=@KfyQGj)#ltRR0bC}bo?A02%zv7?A z`~I4fCyya%=_d5wg&XCNC(1KA>^IW(IBYg1asV5E96!9#=NW^Ak`I_)_>AT}B?+|l z2b=(es3sGY;0;{T4;RtUaB|tS{=143Fac4wP9WfZ2+jknRWT-PGh&(3Mx^jsRnb@i z%3g9{;pSpemeM`_M=#y$fwQ zRPpv*9})ikk9dA365wJFxJp1VL~s68_;}pF2O_tTi0mJ)=rXMTSqoS(91%#52|{e* z{(BcD*DuLFB3yfUZFm#q0MrBs7ci4IfI!&^k|uvU^(Jnh4KW6qb)RkqcP+4$FtK^c++VdNA5+X@)S|w9yM&a^6e8o!uUN5f!G3k0e@1k*i}2jCL-n=KJ=sP zS@o%k<1itmum7*(_bL(bw*jp0@U7GSS9!avMgbcu<6KlIc0 zu5b{@&Or?mh(cY7b5#hP0a{J8MAA}$n8C!Z{o5*x;>?%|aNMtG)PVH*?*wC8iSq$T002z&AigBx%Sk`Nk7Ph3VYs87vkpYPQw}c85lg8V;97fb`;K znSt>T#OPg14fWw}YJN8aA~Qaa6njcU#^4lVNnvE|CQ!Fmr<^9I<`&y~>m*R9K8uBf zs~WmQ*eq+4~T!aPdUiR&-AXmrep& z-vU_-w^sDU(w^agdq4QOrvK0=FvbzaBJUN4Lfd*<3m&fzyvzS{2T-Z{q;alYR^lgP zyTUjD?f{LwH8U@vN~3F7=y@gDuRhc@XB+Q!U~2m4Vvazd-p{7%vYAc8M&1#S@kC-{ ztTmyL%lG{pp~&I1sEEHMb~uQG3+E@~$=+7pe{X5{<#l}mHAx2HZ8RUA?rRsWMyNAK z=ND&SLej(np2RtL$(<<>v-1(7y#_&Z>_l!ucXzc?2glpwN4Nv8NAJm~M7C#hF+K9Q z1pqPmQgT^xlq#SmyN6&Rk8r=HL4V3Z*v+x!g&0Nb*JwJzSTC4UU5@HB90V`PMEv&2 z&KfQi&V=>_w#rSI!3E}Qr*ZxtVNrr>9+Z&xk?p_11r~ea!vjmsqJbn@q25DoKes#& z!h{UZeL4ZkFE?|L$k&BCc|ryv&Dm|;2!yfdZI6l}e@e;j@tVEvx*n$BU`u4XQFbUU zEOme94sc&}_^XHX>O{rI9EMQfoa9|^`Lf)2;P<;ppUJ^grBUv>N00_^{?)yv$sOf| zor61+;j|El!`#@InInM`=j`u&sj$!E#KUWP9dvXcUQPBpY=;#U!M;fX!5Zg&mIHbz z8E^T>WN6y_RgdSym~I9O*!Bcw#nqX7UDF`E6$t(PmJ*UyjUl>R(6gJ{7nnn97|AwGWkIDOMX9-9z^2g~iuIM-)H zm`C<5lDyK%4{&jNcyUZm+iB;^D%*wqg&751RS^jKzjtaTUGUx=+v)qB|AefQf)WC` zox1k%6c~w_uk_d2Dno`qdbI2x#?;6oPlG-AAvZ3A#V`xTE8U9HC}MJ+IBIjh*y8Pcaa-0jhArJ%Uyb zErHS+s8&85Tk#6ch_B0+3J0^mmyuZDJ6ekT)1P$idPU+<1v8{DD6rWD@43z&&PoJ4 zzB!Ng>RvWH5P^t}B_-ad`l`xl+6`-Z@}tnigstkCV*Kq%`?v{j0$>HNfHwoNggRH@ z?(Cuzi-BUl=PpN6ah7{6fpo)N5DKF!?=d_A@{P(`T(2+gZ!0$9;pB2C6G`k)A>lY9 z0HTY>`Phwzi(6osq2VOdq|((MOJD4Q|G>cteH=p%i57gh&n$_&GDI_@NsF>h8|zQ% zhfmvLJgOzV{Zrg*rw@R~el&<$$vo z8YH{CPFhjL;M(Q+F30>ReMD}y;UhFNjFKaNy!Y)c4c{)X%Aru-$l&lp7*h)&u?cPC z#AlY{TyuX*Me=@O37em$A*WS72C}B0B2tQ)r87uwR$$gFeBRodt}SJ77xyXd!27eZ z8u(?|NCT|xsO)z70n*~lw`XW=It-3&4$rETIO2056_^W2vF~mbhn9B=#;nV-uI;T= z)w|~s?Uvmt&bs4ud`3~yfYxjGw1L5lK39=n^kRBCx<-CkD=ctERSJkMM$}$u)5wTI zD-za*hWgd1(s^2-e{Yd9ky&|GCQ*WTXAyfqL|r|Iz1#|-eGK`@v*j7BLW$R;5W8oC zEgnf&XQVg52^YU492Jy7;9hZ@CC@VzsgRTL`RlHuOV*bH92_u?rw)KBLXq*^|{{{QBVuPb$wp-*4u&x zh--5Gd$7{v#u3po;T%411VV`XK9--7{VNwLW%+Au;A1}B!Jby7?jUJyHX@#(he9`# zetbeqFpjiC;ayY)U9@-6j_p8nr-;h!i7@bH;hhOiURnW9D$2(Xh&tvT0t|mm2P;Vv z3dcDBSL4p|PTva`_2Ikk?P0VB6L$|IJx<_C_9c8~WBU{boey#|IZ0KZ$)-!xoaL6( zDfls87G9u?gUe=%ammoCX3bJ~wJz5_cOOlB+x#+oZgiQQ-ECCS_Ws}Vm;zC0VT}*b z3<$}kSzRog{?Um^)ofG{BlZcM5-N?GtiXApMR@m1w@Q&3z)vj}NG1_M+yrRr_YwYcCWXg3j|HP!e7e z=f?SlsW=NS!`aShsYNPCT5r5FpK&)q6n&aJKN4{1p4iva!h)lK_g6e>sl7nPBsI^5 z6Nx+4FT%Q#$pJCFJ`k~$XP4>2I1orYC4C(87xgQDzGn2??kb{Z-C0j9dV|A1B%+9)1}y0kU&rEw9&l5Mw68;N!0% zw19QbFr|bz6g=A_O3o`SDoNxrB!QL;j*{ZO?rA*0bj?F^H&6+Qt8Rd4LGJfTi$#7h zl^PfK>-~6PEZhT>@8twA(_eC`>p2}b*(&1wgW5lP_u1$7Uj721nmY+WDwlypCVbry z3;flO0aZr@L#d!IF1fWu;x9O|q;sEwG6yR0nj=}nJ@ahF9U`%R2S_W<3Q?OPJL)o` zuO9kFQHkDwE=uRTF31)Ff#52Nk&yb#SzhiidSVE@alZ-jResfV01SbV%WW_q9L~i< zsyV20y|I}KY~PBL=?E|c8Ud9flenw&05X&H>s)OK1gjfA3PEfJ!TEmf(QeA+#d4!= z)?cM1_}+cgh6}imdalTYS#VoJA>zJ?=7H$-)%lJECXhAi%IV(M`3P zlCa(m%C;I{0%$~O7wtMh4ScL({$y&nt0_^N3O1?aT`+0RINrI7_9(Gd8+2V=Ej9QM zvrj~OTKAR(x(E?XZX+ToQNX`Yb$*~1GgOm2QLa+NDHu6<-r~T7R_~}4Lz-#+_6x^W z@9CxSxb#b3jy5c(`@x|4ke`JLjx;T=%Ws-nn)s7ok8pg!xHNCO1$bJY(o|r}RKvLM zYabz~p~ViHxi;Yh4)o~J6v;fpmi?xiz?adrQ=&+z9#!Zug4GVj0$YYBV5<^Sk0tsC_*Z!C&NE2GXhpx2T|OA9Mpdsn})=WSOBCV`>U4r&#`_k&_6*!5|P&nd)G z0P03KeTl?wpT_w8UUYkF&{n&B)Yz|ckrZ@i`e~4b)E6*~<+YK+$}Q5IK3=I?`-`9H zf0+l{)TgsyZ+4)*lM&Gb_yV`pL!?ReH*v5^N=5atq+8nc8gnO5)nc{u?B#aI^V6QV za}5YtFA{{`@wLv7!6!*gS;O$@=O2DhxR!uoc#C(ExZg?CT)eslR@G%c^Mg2eU-aWt z1N}9>(yMG*aSO+*7XjN9?rP`p(NJiMViIPIN5|0jj><=$f$+8@6e85EvySYC7T2tB zi|jbE4Qw4Pl_o6}4;EA%Q-4~$w< zuj-|cgB^Oqew5cPJF+AoFbdFJJd*H%DS*a|$Q_aota1Q$wZDYD3{ukGw?@5f2jV%| z=3YDeDXURdnrv)im(M08UWRkOhnu;!asUnfM`hmI-#Kg156=|GutDGna?UK|&|l%V ziKSOzCK#f{EXo=KsbaQvP#29G1fm-de+z>KHdKfoej?-h3RvcfXrDdO-=7U%S*tVD z-EPph#K5b{UZ`i6Uct<*{cv>#%_Wp;A>8SdbHmG~Q74!U^ecv*a`J2>37XZL5PZwa zU05;Q8{x%g;6Vy8V{glFxJAeK^C^r3Qr$BFmTEqc-K=tvw4rn@F%2Xjk zfpXPgU4B>ly51icqw5K(Gq^7~0RQ38qvZW&4%Yw|>yk_jYPy4 zx^6B8nN%5g#j;6mHAidjM|S>koOC)`*d{|~Cp}MvwW3Y(zOMyW6z&R!3tC^DB@!#dj~bX$Uw#%$BjWqXVU$aEGkUW&l%$6SSEDQ}%12)|RIWDba@lhmY<81Sa2F|b*fy`X z2$W@IFHT*%vJm82%b)4?u*W~e#XU+eAL*fCJf8flIUA^U3lp^4))S{NnWg$l=6scy zYVt(&UQ*BmuZPjv`sH?%J6h(vDF8YvUN&`YJfv>DYUpRlQbRjhpvbEK>TlNg!Yi3O z(XW+-3D5^xas^|K<7E;Dj18BxRRi&JLv4ytDWk#f7i8OUl`NuOR_4R7GX@v^@FL7L znBAEPx)oWMPKMHfs!eqENpCT3CypSQZUS8~{-QJ2rCfb1VA1mUauGE0|Got%na`r0 zM#*ET3s=oiN+U%WWyv<|u2yF>On1w!1nhbkRIvWUT5^|L((~RGotNhTpp*z=qApG;6-Bli5&adpG3rhEZdVNV(%Z znE(VrE2kNmT=@RYQ{hLaBUgkVFRGVVy_>vj;NlHCE3yjY`tvATzIh~|XH-|zdii4S zYjEIU+U6d^X4xG5r)cgXup%HYK)&5 zV|@}~m=&}U_Hx5Zce7pgL^H?A-pOd6=;#yQ^?Cbib$k#{JrCDd#!S11HtKq2n<#4r z0mo-kj4DzwV?vZxvibBaiZq|%*^IQYn!WN9q;F0SillE|1$I4pw8Xp4AXO)9?X3(t zyLvxG$k?a2Gmc(U(!IXp4f{>`Bc(vu_5JQB!}IAphZVO&3cioZRs329&I`prL;W11 zS#kQF(`pkYrYiySBrGdoSNb!$rF=VA)Z`AL(%lK8^GReHEm05s$HrI&a)H`humqs% zkJ%XRNFgl0$4-AQ>Ni`8YVv4C4(2jg++L~3RA)Xq9L)}ki+m}ilNXK}Q8LBq==cWT z>Dq~@EU)`W)^PSq`>SUuTr<*F9NJR;=C#ns%orp*PJu?LD28BT*!O;t8AzH5=Z8X? zk>0Qf4L4X+d9Zgx9+sr1YP9M>wfX0ow#o((15J&OQz)gBH^b92ryC0woJmr+fsPaLZK0YBUY#BmuMD*iBtFR_s2st3xAvnx?Pa4D zomPAr|A0@KZXc>;W3|s%71RL=M40{r@6i3u_ujC^6)E~d7&8Biv$_@)Aacj zvfoXTGU_JVZRWaqsaE3nX1`L%gHD;{J!|Q`A;4wC%6kX)4$v<3#vV4S?lXeR6m_*3 zFuA>d^u0y49bYL*_jpORd9}_YZE$8ji8gdtdM4d6;-1T_-I4B~FI_3!OXFtnpTDKzs zg~~wsSy{=~=R7#V^H^B81%+Jf%tTRwS{a%fJsb4`x@&@a>*6X8g)KF4r+6ye<9HOe z8p9Pycq(TSNXPn%0Re_1w7P8kGoS)UMT(o)rRL;vGPx;NRrM!~4YiGYUum_~@`1rB zVvpRXVr(;W>&LeBv;!LY=)!`jcgYfkFw!;5sxzCv0VzCL~Lcw(Fm zYTP5@-`5(sW_8%Qg-k;7uXtC_m2ywvgOy-DPVfa4O_lZ$luh454XQ;dz#} z0XoP=-^6=T_u0joX-9meH@!8L;Kqjtz<&Sch0}TLo%Cs=WzkxmJfaN=P&vN4el&D} z(Uj$7V%oXO)vBSVzi$^~tHx7=&r%UvR+F1|H~C}-ft4pvcaW`mSunXxwX?3L>?=}<@gnBpgxSufmi)LI`a09p z{wiDRqmiMT_nNX4I)3>wR%pws>n_nSc2{$i(S`uiZkhK=qUozk%_Y&kV1Bi{p(?Ha zczYL)X9J~+bgDNY!vfXn+iNf*QTJY12^y&@up{N$R8#wrF+FTCMfdz^PPk~2Pv2b* zaWxY^$IM`rZxfPpD7RFnYtFs%@uI&7P-9_?fQgqktnKU9Qn8=g#gKxG-hyf^PL0!z zmL;|%Us#;1rRG{yM(2~g)7SfzTQjpLh2LAGe-A4a(0bmQA4>H~c5iSas%;KP_y`*k za2K7jo9KNv^ZY8KS)kVA{lym=_o=fo)4ZtD4NSuS;mmKotMK!NuTTkxR)#6j!P>XN zrq!s2x~tLHJBfk}*nbi);YB(D83(gW*WDRtwI~qz!~N>|PE*zahRBtBm8ny`1WjKq z1Ix7G$uZVmm$1B5Zr-k%n@+yk?0gcbN^3M0*(@=i+}2Zm(<+yGUEKdcRu41gypr;* z{Q{{Rk7|3I_o5oEpfa!UyyuLAzwTf`O*gD;q*_5qE3ajtF9}U3*ZZ?W_wEcqKOS>*H}kZ_U;72uMTw)^@K4bXt1M zAeP2c0tsXO0z7y{oUni9 zuB<8C`290!aCd2S?wi_8&z6;bVJw=6YWuxSW}PahW~ZWr5zzSOJcHNaZK7Z}L}}Ee zHAr&iMPL3+23uKDR+^>kNyj~&Rhg_GfUilBB6^2yz@yTshsS)X>9UVA)u3^E@4nc5=nPwFpYftKGd`MPC;Y-eXVsv644v%r+i+X8s&Tv!C!ja%)D)P9Jsbn zQ@hT_jgy(;4ZKybr-|?C&Va8c2WqAUI()VqNoaCIRTYCJOvwb)=1mZ#6P7w4t3lW^ zwlu}*9zSI}a4j)LjaNy)hn;t1r>vd#1WRslSZw1|aIAj2XX;&-BkBG&H&0PBkwS+gfXg2m>jFNFrm~c^(<3O*B`&(C-*%g$A$L$c8zB0k(V>ex*c_exz}zY>fK4X3&}x|k^&AE6Dde& zp?3KBpQI!A6Kc3EMqcCD*lh*`cod=Dm|F*ismf6#tCxeJvZHBj&x# zliwFy>A%daQ$uiYMBu|Olrra0!KN%0mq(rA&$vM9_H=-b%ogmm>19?Qm|vKQ_fx(lPeu2=56`@Yl-Zi?Nn0j4e7VwC)Apv6OV z^qR$r097Y#u3f|}x5l*ME}|}z7qXLQ^4vi7cm(CX#+a<9``p`XQ!zQ+aVLJfY7 z*i8H9g|XYFDpAQNh-pg0pd{-9Sb)xPNe7s+Lma*}hWv%{&_jffYoi*jw+`iT@uq8_ zMGCK%?}s_pIleJhy_%v)CgsZn0LF8E+;DdQc}H?44U5re*)PScj)Reh*7N2nt$y9# zYBjr&;ZE+SM%aw#%MD`x-p!ANTWCN~c4$9!{6ew}PA&p+Hffa+RGGW7t~}^Z>@E9< zhM=RZgI>^r7$BMR#|=XEz-njrbzaBySSPDF5g>LK5knRq70h8kT7=aIhiq<;Q z$) z1(BqIS47ye@CzWT%Nhjz-45b~%|l@?&AR-hGus@m=|w-?4GczV*xE*n?p|Wc2J;4A z75ZucJ+||GKpJ*Wk0y#~CEkGk{qzzWu!RY){7Atv41_NRn;~?ei>lGe3QeBl`G%q; zc*J0Wl_t-kpRkO6fj$_2dQL2$72ndEet(^1Oz$ZtNru;BZ&+CqcJk^AL!p3-r`(ij7C{rB`=p9g(|CzjxiCqL$aHv%>sIp znw(tL%N4O*gqb9wf=nUgDAoOET$)kPKC(%aB>mrWmH5bQ8$DekSE1)vo^4hLq%e-K zjPK@^?NvqeqD1C>o6vyP$z?#K$Th|DrxosJzy5)jm4h-dPf7c_jfv$sq#D!Wob;Gd&A?lyU1&1fd%jn>v%isFO4p04Z0McP7ujymAL1yjBbg zn+OhK-08neqhuC-;s^Tl9Wk~>yn*Ww%q#M@gv71}!wR}!|Q z!ZPk+>%%@POYA`VORfPrLfyb>3-JI7$L%2A;wjzvgB7k4BaMY4Z_SlyaE)Vj51EI& z)zL~W`NRF6hYYr;N~bR*rHY87~lN|sD$aMlydu;(;6*F#niyhU2)<#L*QmJ=fL z1Q%hA_~siFs02NWt(olSl~N+*uPSO@7*SzGv+tN>i|O&~9IA-IND(~PwiFh$3i6fF z;MmL^6qAw~KK#H;LP?Ub13SGV_5i$#crWap2x*rg%M#7;3D1)50?mbi&6XHO0&CzH z;RX|1Mys?kJs&oMTs;P#DtlxaDMcBC8%^8510J7k#JWkH-dQv@nYS@#Q;4q7YJC56 zrtJNxW<7L9MZK}k!JjG+VN9;0U8NN!z`xkRQFz&9GS8VQ6BVt>fJ0o|~M@9zZi zFY9RcT--ux=xtQNaCSaI&xlI~X-!VfFRpN+8PnA?udqIlnM`r<9X;@TfKf%K(M^5u zzJ<>+IG0b~e~I3+_k&yz$@P@?ybdo2d&hh0ml^!teNr4NgTq3@izN>Gku~osOcQ@f zq=CWkVMcG8{e*6BZ0xhu(tA01t5X+6u|rZm3*)IR8zpM$@FgEGg;$-@4C9gT+ofk_ zWl8f z2?TiKZxue<#ljs5>U9ScSQa}YNXe-}<6$Tk?k(^v?hrz-SYs}vv2j>lWB%FcdYEMX z!0j`yb2+>s%Wnh>E4WF|hD&?5G)O(T2UfH;9Hw5ly)&zzchy+^wvPkOr%^W9Pq<`` zFWE*_Ikw&Eu+>G997o1+Trcl6Ka+t%Yn`2sZ_QwcbXf>x{;2I&F-u;`Ili3rHPLXRm+4PqCwoA$-CuYrW*(s6YQFwe^s$3G|5;X3YYrhSD9Tu8cP4X9m6 zObg!v5!fZ?1~RW_Ro$Cblk7E&cOyq#wxR_`O8YS3 zqy;(tRzMqjj7cJdco2bY&kL9w3SC*8Gcz*`{wrDzwa&=;v|2B+P(7mvXYQDx)C9goLuwP zD@%2E4fXMqiFu%ICQb1<#O;ejabJMAmf%T&X(g$Q*4FVaZR-Q|g`>!lX!2u0$K&l} zkxQE3CE}B=z5_a_H$t{wgSeX07KuH7u%GBtemqsv1t$_7u}CI~={y#yf*=Py1!{+#&f-`l{I^%^`|_-Xgc(oZ)tYsiEsyk zpkf-o#`)?jRj0Q|r`B_?iFqii;JJ{g$0&k$v5h63*JCgJfm96BWX)FAw=7xhM%N1^ zdnK=L2YrhHw%^(|!bBLKNA7n>mo^#n?dCKK!@u6A2g59q@4}1(_E)BiK7Hh#IDN^J z`s21ek6q7+1T?OO$Qz@{6ok7G%6r!{;WGj-*)xx`#y?!;DzvVRj>2d8p1tXNQu^+rw(EbXhWSzjQZ4La+W66_YJ1%xq{u&ab;>v_a>ugrD84*=R6IS2qW6}F9othnDlO}m6oQQzy58MR z;CX(2DniA{zqfdOeZ?vf8sBKy7pKB%2A@k87r-`75+UEbiVC&x3$^waD##toxjEtB zv-=<}J;P_CRB5Jxo^SE$@LQF`M9@6PpY%z6>T8!i2PxEXl133b@9%*L7N()BLNL5d zBX&DZHy!P+U?(tj8EtgOCF1-rm`U#Gd|Et>YHpv+6fom4BN6Tkey*b+-)B@c6QR&# zl>7+8AH20}e`daKGH+687Qr#w=L-EnKST|hET-eOKhvQTse@w#W=1f3yQ|5ooudoI zcJR35fw_S$F?=$SVj69K=Den3r zfFi%>d((Wl^*S zg=wsat%OQL_5xK>RZO+&!Gy|{2TF_5P1F}5QO%+;La!IDH(N%l+bTNb)5l2I`gsOC zig?H@rYh z`8Kj4-z*;77Rh6%l1=faH-6;8rqt-qS+iyL=;AXrxASjr@ZDB$D@b=W>rEYjZLrzy zoA1#6=}@n*i4k&mz*2qu>oT35WVtV#@#M@&YG#=mEBSnTVx#9!@LnPq`V9 z|3o0-a{r(%m=s&RUcy4gdAGNQS>3zu058kwox58*$tg?n<5Y)dXN` zl6ZtsElG87sb=+?- zDr&%eH2A0ZgWp;~k6@)G0qAhvH%0B9rO@H}gKiwx%J^(qc}sE(M_XEbcjNWhRN0v$ z?_HdW?YN=JZe@+^(Cd@AX2&hw`J51S6sE=E(4x=kPnmA>YoeIyN#iHaFAyxuxm&lllg1JW5%v46 zwxL*~&c`hxS9=>EflzlYH6Du4TgBY}ssF+gNyb%JH(pIBeKGQEuyIn(HG!l9#~b!G zaK(@xqHNQ5yku9Y7dSaJ^3pMK)>qK0c`CFTv15m|?0$*mpV{HuS^s4gg(cl9m<{Z@YU0Mdf223o%QqEGo` zOGs}^w;-c|@qobSg{O8Rf7hZi-Z$U>-U1BYedqvQM)(Rf8xWF!!J-)n=^B8-ybzLaBf^>CRTDAw*NQ3C$;V*v!A-6Ey{M5YKj5^J9*#W)FxS7T-PS^y>x3BEBfQp zq-*wAO@(Lr@}r)_epYwMY%b!q$RE^%RjZQeZsJtSFIoeTj)!5C5Y6CrRaqGZsF$+4 ztzffRo(g)XKI6;Q&ezm;yKNX8`*E>%nJ{_TMJPCt2BF34I?8{KrmyPH^;rLUCq|%( zka5Gw&}`6BA4oqg>STuNDom56Fv~dUy^?{Aa8F*(G_g@9i#=`arTIiqXDrK*Q;{@Znt+TOmiR47D4)54%d;`Urh?0TAo`eFZ-_b z(Qj96gG2WtyWX@Y? z(^_c3BI~&>zn;}LmN_>bEdB}F9VtDd)iqTqm|k95qQAPj(20ybg@=jk7}0qO3p!1k z7<~?c8)Oi$aw&c+q%qh9*={|RDCkj)u?7a4wS+tCo(QZYZ>I zeBL(iyTiQMI^ujC!;`OJS>Ys71lc0-)h@)34J-APf@Mn1}|W1Dmo#k z4zm6!JJ%~1aeFe~w|9j?R_d!i3?_bnp&SRd36(3_3#@vtuSMQ>6~w@vp>t_CSy>zD zQVl>rb?#0AH2+l>YcO~y^+i36&HMD zICBnjNRAhMRYlrPTj3(4mW8unpD*KhP<6jE$~tFV=xh=sn?LT~nFpgIY!0_Sl6tRS z=cOw6I9ATgu~oV?6&nxoF0E59tc%-ECksCjKq1)F;{E!f0*7-I&tM`8ws2^eM#L>sCFd`xdrF7J)S*w)iA1l^VnqbB>_LwT$OoyS}}BEd-e(F(Cqty zSWYg2bKwxsEJ8Z*?(y?TG;o81qC{MTrGVk#EnTB&@dKWzwf51f=9pEcP1ox>PPlR~ zla&pkW9dHn#(XMxo>WHdRVQY5y&lF)Jrx!EldzXOo_65 z5*na{8Kq`-z|ZCaU1?qok~ICfg9?_AjjeX9YWwUQXAF&jemX_k!69d$hhXz+*@p^+?%v|-ykz{Li2_8rB*=h}Q$YgQuAlxSd$ugu=C1dhJ zG#9*w9y2oxAOO%jt4FZzVl(NUcmpI*J-4ciDcw5FDa^OjDvgOUV zS)LLIe8g*1x5UfBSeU{l74#XOFa>496}EN9$ik(xdBgj7nMwv#$2FMcp+wB|JKMSjclqf*$1qo4#j+;wR8G zGkL8HmZAX+dms4k(=b*N{M4{>1z1IPuHqb%`{k>v(A9^EcY^;U)mD-Y>H0m^DR=j? zQJmG3#cGK(3{4bYDZhH^fA0dj?97ON@ux+&kzphm_$w4qp3}8RRqO7dv1zL-<+%u> z{1l4Q$)V%ZGEq%_R@4<;X2_NY34HVho2gU0g4N?Kj+6n9Ntc#mvd;Qin5_dvrd>x` zfqt(tt2P~KS^n5Lp^#N83QS(4ECp?puk&9n{$v<^hcso2O#blt6!grm4*hp$?zzK| zxtIg>vX+I^MbICTTr1U1Aw)ug%}0I`*ou8>_7;_E3M!MeJQF)fFzv=e>n{|UhyARp z9f<|ch21&|@70`FoNQ)WyZ0r7cA=w)4d42+9Gir^rm$tuz)}q|{|l=Ak&s*5*Ck?R z!JQpzwZ_4*g>wVz6>s&+>J8cw>jKr1x7`UWhA{aqUfNJeUg0;?BfW`XdC^{l>P!}M zFH>gD|2U@CyGE!{8Cp3|IIMt_AJFM&E@HT-cXc{8L>%V^8fS_y|1#unXTi+3NPL2v zmyv@X!T@w{mYjnD`jYUYA_l#)GvWuyM}3TmLly=G9#bbYCp$f>cV2Hc6*WAQ*$k>Z z_N(U>?iaQkTAp|aJThya)>1(L?>gt#oT9q!_9Zp7k7wNGrZ2R?%do&*$_L z^)sp&9HfPsj>EQodT)xx8+gu^tnpXx>k<}fS0s!RJA&%=Sa_6rjNA}3Z-6)aWvhD_xe&pTh6`zWDU{p*`V0a`TC;#dZA`v+`ID znr`+%-lvLVzNM@gH#0ENzmr#q_|W^835NaU)l!{+(KTH=122a8lBveXZ}={B;rAY9 z93U}dUCFg)lVj=54W-xW{n`Qm(sKRpXMCkJHBpA~HMP*35*~9{$r#P?KtN^Xy(F%Y zIhT(-y}+4p1%gq>`9D3fZGGqya6=;xdVV6#5#CT7L(dif?(h`+mH*1Rto&D2=80mdqY@877gfeYKgcCb07} zb>kHZI|oWVM(N1~0D>YhAsi@QyR_iD2^LIZH>Qb3_f(KzaBoSr@!7PB=fATBcf= z`l&F#Gn;(mDP!Ngw>iRBrtaf_yF7ve0)}B_oUpbL<}zuB@`Lvu)Gpowww3l=AsnF< zM(sErD$u%pXI+K{dfVB^YzpsxR?|0I(OABDm=MpbV)NrRt5_ErHS3rA8YB+y)drA) zPz;_3Z0~XJp0Dfi8MOB9&Ce+O-HC}~{GjLWM$}I&;@3xA7t5O>D2bmRuO@yyKVA2F z@z#f~qU%*LXx(W^W4OxLrHC8t7;W13I6Bxf*#2h$zP-5lHYuXBOsu8jv5dasEhjhQ z%z%93Kg_+QkI&p22HS^;0G$|`iuQ{)iSlH6O+oVM+QUg>IPtws?{q>T^jTP}?xaRI zB~1iU?DWtvJ^!;0-a?+|)>p%>UnF(QHblN1sNRhpVL)EN{J%A!rTG?}nf!lwb)Dyo zjtZ-2Mn=K{&c1mZ6^P%O8eY#Fi97xj3H;Ve11q2Q;y?QgvV;UZL93pCi!Y7Jm5*i- z^MUIcDOXn^N|$74;$V>q9Tq$JiQwO;oLvV!)ac&#CkF_Kg1l!vq zeyU};$!QN1PK*FRe)nQ{=F~K^Q^|Af!Rpf;{R5$PV&ag_?cE0F^Q8suwApyqQwH=b z>v^%TQ=e`;xAmY9HRZ<0nh;dl?}zKAY%&jw@@^6cN2*ZIBl9XXcW6|qK|h(fBpC`- zaL>aFH$%adoNg;oiI)|RMrRK`V|^{pPb1Hle}RUPuC4G7{>!{&PNhLx&)Y#+80_M> zWBE^igTdnPZ*eU5K|#;cMp0H}@O7Z9(0SCG&%v4Rm+RISur}akHeiRrJ5Q@(=+69QQ0_`|K!y2W`^F35v%kI>YzY<2v>UUgu4B&KrZY8@-*yxQt#TY8fWWc z0HT!2L&MVT3D*gaqQ59?|2$W+w+`la{a6rmD@E4TKf{vf$8!Y)!fdMMy)q70OA~F_ zQqR9d;nF}o8t14W-B$ScpaHpH>N!A+fBUZ+B>D`9hS^js2Y2ssp3e~EL z9FxMM zNcz74>6Q4rJmerJhox#2V1CVJI282sC+PX;1wgLv5u5s1jekyEL%-@i1959YzdBNK zeQWCK2hvwzSo8YlM%`&M7st!nY$(khF%K*q7&eRmztBc1juNxWAsaWE;TsTihyphQ zg!H&EltREbKL4)<87Ke(3&J_xPCEIKogOX5&FSUnYc*}O{yYQlh3mIJ_P~xiBGAJg%^;Om0kdv0ukH~&^wOKQjKtIONB#nU+=|ALI8af@ z*sc!oj1Na_^A_8Sp%4JZ;vDMgjfq@1+*QDx2IWWxU5XP#g7eQBp{qt+t$YsY zsY!tcS5d+gDSkO#&forb11u?M^DnpMvBi9=B;C=)yifO~19e-i#-U#8cMKh;mO$KR zSqz$3IM)e+&WMBH!W{+AKn)<*I=Tv|FUgDeE8lqsqxbF|RIYS&-q@%FKFu28iiw-l z6*C)XOJTT5+XQ?ZPar*meH5Bc&T0bKEhWC;-+#EsIgF-hTagsn69b2D_tWgdzd5vZ z$=g8>hiY8ofwHN9va%Z(j4H*U%-5$?W8m|}^H%?|-)N2Y>7l!~3IsUFst3a$AIM);4tlT2O@D!i*r@N8rpxc<| zJLLekQ|qXp7qK@KQ=8E%hV?OS*jYXbz@TlPsXiLk+jpNXKSfPUIq$Yk@9~SX*sRl( zq6U&Kbd}{~_+L$KSO({lAJ zK>+V1%#iMUp-~nEwyNIY7Ygu&oXd$FI2!6V^)mo2K+pxc9&~5q9-(0MK=2u`<)TX0k3w7u?TGK>{P{g@r=8-O!7t?`L$P}#wjE(qwk zjTc2|#@Kf{|1DFd`>y6^9u>$)^ZT0~_rpssYTTpN8X?C&Brt$KA)d1jyvbX;$^;TR zh`XfySwxd9&g0$c(?7g=3+twSE}9nOb$hxJPmNM}_slQiTy?Nf=81nX0B2dh<@tkFqKfndf3_pJaYbO=Bxtu`k$ODBN-A{5W|FUG%pDudDPGfWb zWsF-=e#U<$bKYsXYhbQ(70GFDJy_m^;1*O}In4+0+Aj?vGCkh3?HXYNsCW5ZMj*Wk zvQO+FUI-5P;jb%aXLgt`mkfV@>(0f_u8-_KPZ0Mych;+y+O9WF06U+-VMBiQR)uaTU;8@v*SkxD2|X)pWV&c^|DHus|1{rf4+ z6U5$Y1f56qv6itWS?IAP=5WEa>!p!FYq5%*IMBB-H!yDR$P^0PjACBW&*1K#c)xYe zeG0^=W(P%lul0woh1z`0hR=PRyWdVTfgL*n9uLYM>-B;%PL`8^1&=>u4SwP2t?goT z`q>6ODnf2VD^N+y+m80re;+`_sGrHxtG%okW+q>3-~8d$od-c&8zEqC#jvAX1qZ$J z+d_O@+~X%JtAO>+xVxwukVvO{l}D;o!+ASA;3q4&rQ-8@?0I;Ast)O_BYvAY1oj_=FS%rzbJXM?x%+ zb{+^yZ*vo4p*XQgk(l=;3)1M^i zy745o?t5ht%z;j?1jHu=5bAfOkD$S>_$_zDS}k2(QIU-*1YFO0|9hdJLN-}!4# z$GTO02YC<+MRi==>QFe;x+@E!Acy#8+bSw>BPBQ9*2cBdE#R`?+@8@tZ?VJnRvN_z zV^Abe?~QJ_*F;D9TyV4kL!K@~G?I+Ev}P_Yi(>>#Pn!KxOTwtzTs8imbe zwkMJmOF~OqJQjQR#YCDw|LkbG%4y^VW79jPS}xctbg#9ss;4CZ3t=nxLlnXkPT=sTtjIW4b7zK)aQ z{Q%hgLk5^YGOS*(-Oj?>`qbyBZFnI;@g4Y~heUz*Y!@hjS9wSbUylwZ)F|$>&oiDe zoDg1i-N%z-vss$HeEr{%2OphoZ3@Ioc+EY<9yz+XjfVcjSAI{=s*0?r7;qja@7q(^ z4#(Eg1~J0VSF%E9UBFSAb#3S`B@e!qjmhR z#5Gr;L^0r73WsV~aAyap+6<_SW|G$-39mR7B|17f1%U3k#d8 z-B4JN#?Hn!$D>2g!jH)%kuCi#Vx0s0ZI*RDz6<&5w%f#r5J`D6C z9uW6Wwyi9xeM%pFXJWA_`DPK)7nU{XxU*hm;}oE>KvtzPH*~%dw^smjwZl1X!=q|l z9PZK1*>n{kXq!K=@}%Vsb$rMT&$ z%_|G~qDY?QzaC}gDBQ0COini8oa^kBJ=`26S(x_^9GkR2NsF^}53QY5O_#Sc#r0VFWL6R6M+5%bpJl6pjgZ_&~NLV8lSJ_TSCk_p-!aYI9$>o=JkMXbOT&T#QG}sv#$yWsYyP5(vm#C`}&1MSuQqa zStI%;>07!uHpNdIR_AMo9G3n2@OG`q-Ok#7kXUB!&7NCh0^dDb$P@$2jMoOqTTfR8 zLV93x-1h_XHLnOJKH%C6hs>Mru;=y~o#JQYGEcxRquNqSPw@y476;qjwft6eD@n=u z@>HP|_z9sC&PU8+hnHp_+c=C`*B2-4nvruURm2V3u4!lkyNUy%i`MajB=HbO>-8!2 zEXtlchx-hsZz6OqL|8OvmZiU)eO5?ts_7=wkTAjrBET z`iltiD#89X4Wl#SN z#TLFFQKhtQz*w&@rmN{5Ek0>!D$V0GrKP2ct-HL^-tB$pURh3CZla_wL9>*FlBt2b zmKUeJg!2RSr&*2y#U;@8#%Bm9v`V-i*t2}rH)8hf@|nZ1mt%eQ5>w+z8JCm|7+^E* z+V9NFQ80sOK^XsZZN32!h~B)!NzujrS=F0fwZwb(J)@e^(Wt%uKo8-A_jul4Y|K?8 z^pcmIhFfN&0!zAUH4~+cwY4T^r}dzG)5CWA#sniZcQ(o~m~zRG<0_@2_O7GjJKo4R zf&O>q`FV4ryd>YcO(77P|MdHddj*b?>9%|q`-#~`k{3~4C3bFEXFwg?&nkp!b!1yW zE$qBFZGg63%tS@eog%4CEzn6ul}%6Mez}sR5Aw>1$P##GR9he^QT`^;)9KQ5tm-}VMKI0Wdzaz!1Xe2&4+p!``ShNI4iL-XL>}gLee)O;Hk?iaj0$ieJ?u)SMh9%s%x#tX@68NOV1SQ5 zTYK8K@>PjT*=&i7fW7K?tLB#Vm~oN{`tN&3h>a5+t&4;G>iT-Mj?_-Y(7` z1|t8psyNu-7WL`wiFesLK-c*HUVxW$KxpbnmUV_5J=}a&F(N5Kw>6tyn2&kzB8s8w zkI;yPp!B1$xo7EQ*BAy=y>aSty$ih0uMa?uAQS*YVDl6XFXtw>`+MfcBKFS6$-5QS zNDA^BVKWz_IrG(^H$yc)%TM>c?|+r~Mek6OUDfBqciPqe@4!KE3}a51oteMXk~AbT6o#zF#8d z%ny26k||n+clzfyr)W~V`ih4CazOW4Zt+PnZR-~GWlBU!B9@EURMExnDIwgFM_;yA zq7`3%=QSHwYFyt33QaKt=Su=e6SsxJtJBa*)%}Lti#0KE3v{KSC1qc-2WFy65Q96z&sZJm%os8PnCZ5exC)Ys`;}`XQ5A z=dDs$@Ivd0`lFVuai#uo_E=<<-Y^l1gtqAf@44uLL_TyjW6#$d|19HAUJY2NiSV;@ zvsb-&H-UCUW?8QLCx4@hT>@U*rz7ph3=Tr)-bU*Jafe+-e5f3kmO99_c=FY}U(BM$W}&&hAtcjaumPDW`cu9&VJ``cl5LiPmp?q8#u{V>Zf z{gz1=620O2gPZxAQQLK}JZ4YYxQ~ELN_NR-D7tJif!E^xUiI^pwz<4SstwCWB&dxq zcVv!{k((o`mAU5ZfDxnj-L7krArW2m)(}WauISr?m}I)k>z&!i$o;yuZOjasI33H(}QwkF?? zErv1I)7#%|_gx$VUOMT}$i0i2f@;dsFVl*$!_TYW_ivnF9E31a3#w!DjKfpc{`Gn$ z(LxzK;f`Af#+4uJVd-i9$Q-YLt0Sr>b2wAbOyze1D}JmdM9!I;VJh<^Zj~;+GuZz; z>RXGN%VVgiTcznP>N@|^{BUN1bOt!11vi-ufv-KnKik*1iKt_&CEzB4%%lErEHo>P zy4P0y6%jKIYhBIT({;_2zgqfTKaRECFB-PyJftSY`ct)}f~Y-kZ~x%xTqi^U1KP6Y z1>@IkRinLN$JMfQ6%Tax)^9zZ>%R|DgFbbAaYDYCLekUZT!_-B99xXXNDII3xHR2! zaF%UqEc__`nH5u9ykOyWq2uAkpxw8$wz8qLzSyhVz9TZS`nEYBna-HY|JdP`5C`#N z$Kl=k$H`6D(uz_#WLO%Mm<}onrJJdfQGFX*{))V1qnt^cZfRmZ0HuF#h`MfLW+dC3cP((I75M8SifaRuq&Ut_?se zs_}6B9+B0Q=aEZ%~5Oof&=jh~A*%43GQl&?a=0`l#h6`Oc)nP7qdN1B4~#MA04@Oxw9NMR+r{Pq2b zVtrson(9hR!M8hm2v?xJc>t=U7gDA;Bd0RgF~H%4?w zmb;ZhQ=>^8oA$|G3f>a9;`@5$Lw#GZgZ+608J{|hFm%=Fc%6ydkxyoJ?(=VsgzS21 z@6Lm9*N*)F17aJ6n=l2JFX+ZCkdLGK3dlq#R=ZWUaYpN@1CjO(5#QW|NckIbO!neD zq^4p|_Q2iHiG!gHTEmSD)h=yNF6#AMBzr9A2;Sg&Rd-gu^+?_i!`X!|WMk~cCOvos z1$_wWg090HS$J^Ye(A$N6l?K>u4`ERb(~){Em3@d?L=F^M7iJ~B~Ab&u&QO+hwf5J z`hB?}`CHixXhd02gcee4N>$=KV#hu>>+-34H5oSTIiCP`ze3tRQkw ziUp#$81N`{v^=%zdiDbETj$w= z>aFn*uX|yOP%fQlr?M!!^bUtF`18>(3pp#gVI-Q3|Op{8a9=zqNQhXSHW^c_~x|t6tf&{K0cpGmV96ht+ZY zlYU2GE`=YT!7pa1U+nMifB5Ypq~PcABK_mQvPoI1D2R8 zcfR}Db9b@o(5#?aGrj{{Z?QT~O*PGmWAh)N9xu0_>|+66VK!ru$5q=IdP_UTZ9;E9 zEt7gRU3(=}P9mn!>FO(@G0=XSfU_(lfQPqEnv9lmwK1# z{O)7ME0Few_FB7KECp$W7^hx4#R@u(+?F*}r7g^zQQEL=hi4H#{35{$5Sep0?06-s6iR5>D|LWgp;G=AJ_eteQ%uBsRdVg!t zE59-aAwP*OEb1u-Bz&}O*kD{Uf}MDIwA!iNv7V7mz8V3LF={bfgAd`ox1Snnh6!0o9?+h`jMPd zERH{aWPyeIhel}Zeg9uFP%ii1Sqy_pzWN7_+gVCX)xL!no;i*Wo>Xn4pI}`&&bbmG zzx!QQaHxilJ=|!G{&$dn<(YDMH#AM^%?>IFx|2-X$rDvt>+hcixO?<9hiV{f`IlY} ztZa0ls6rgt#}26!C+cuf)_GyesT4$fhp#+ffXkE3df}-DBtO2gljoj~V|881$t^;I z6|$_heJeg1=isY}z|t5Fs1My;jv7u1mp#*;pWTZlxUB>TQ?`c!fVmpyGg3Dr0=vbx_(|mFa6o~Ie#cs!& z2V==^vrha`M1H>rGj+<_IMZQA%XtTR_5O4e@jVtGG2w=S{%%;Gz_2*cM{A((M(jws z6X|tuuz$Ax=-B4?JnH&)OIy2g`T|se1lp6&SvANO?kV75jl55Sruf~x6d4NXmVpxt zg;pmGa%fPS(jK-6rIj;xZk5o-c9i%XRyUD*B##}KlqbR$##)jVivJKG31##L}-Rtw8<$^Dw&BA**Ez4EC*ERP5SZ6%#s+3Cu>VNd!aeqm>THq!Os% zv@9s;e1t2rW;8%eSZWmLWxX7lVB=v7Ue%&0K(kPc--gWR1PxbIl+zUGJlrRHRyNeX zaZ2QX$emwnvCrZdXRhm^E{{1g*XCDgw0~~tsU@{Nf%Q3kPw}@rR{-QHmJ4QKKo&jW z$3wwbLa&1T|B-2`1YK*1l}Zob7$@D(DpM~I${WhZ znxQ(*m-N8h9gJ|6#rb!(>c}ki4q?K#jN6d;ksH>Vrsq4Ng<v<9NksV4t(B=E)D}3fMDrfA}** zn7Ag6NLdq2SVk}l1W$DVt>PV}DgNKj*Gw3ULP)Adqalm6W?s)f!Lm_*4*mL7-UIQS zi3A4FB#lT71A^?%BPw((IuYN@3;;uz+U8qO?FJWP`27kda;{T}!=Nm?wa6W!{1)f) z8p9O5rAM~&<;99zF*{V$#pFj2h7R6@ZOfdXD1ev0a7R9@OE6BHX-p@K?TlEBWeE(4 zYB7nKgahxvhgeMOJo3Jyfd@CzBBUR%1+?BBzWp#tPyzFTJmy_Hp$}E>t!BdKeoynkq z5D)~8M@mGn7EkaZ$0jZg#i(7<>L6L#lkq>^aNDf; z`EPdU!)aV)#Znf;Y9@Q>)Re4m%CeiXUajVOk^s!)vYGQr!uC#+$d#O7(;(4R?@@O0-#yzOt~$}<5lG&giYHWmx?Sat({5lQ=|dglf^!AzWqhV@E~~=F~Tih6T@&?Tl9U&adB-KPGN)fpFaS^jc_#cqU?u0oZtGH zQwb-N@y-UcWn(~u^gre1a}5Ve9&UOf@>r^W)(HoYD9^@J2bs?oI*89#qu6epvNbgg zlmpuw7vGKPH+95?GT%#U@rKIe2H>KnLG%t6mj-kWw$nBKuPN@LMKJ*+kE&c}F z4m1^<=^_e*ZSoPcH(3W8dxqo5MZpgV7!FQJ&=D@SqsTY@)jXEPpfO&K3ni2Op>qo8 z>q4WFWR)RiUmS!w()^sm!~Dqtf6KC<_mHB8Q|Au{ZF=vd`M^)1Q)4el%@WIM9wgsn z#TeVM$Kn*2jh6cH(1D|u?j&eHLp9yO?Nq~kdRG?t*lpJVNB8mW$Rr;@jHm~32ewDXnzR_0WVQOn`(kqC_((qQ_LR8*HvWc zqNZ(I_PB2z&Qp9z`YHmNw-ae3d|uOMSKBSesEk0aWUx)`I};A1#gs&h!>QsE40EI=ouB^F^@0TcH%js7s_)w`*;$+r))ekt2grFN0e}; z)%NLS4Iq0c_lzIm8Hn)CKwS?*wGwkOLrtf5``zEYc|WBgq05!ublasxV=yyEO;f_u z5z6;#V_bYF+s18ai(!8zqtzvItU8U|UfrM$=!v<$sk5m<1`{`7%Ai;#`@P`FB8dtD zG~%;ZMp69YO1`ic`YuhvXw5%1S91NKe@t9>-cb-n!N#^$AlP$kMnd%V7Z)s|gquiZ z&f$9!B21fJg>+o>OvXVGa&1~W>(=$=iTq>?rgoSQ&O1wSeL+9O{I&qVrb(0dSV&*l zLaq~rsBAP}Iy9eS2t}>M?2Z%|IPuM>gTPxK@ z$gBYuE}(nb+v|xRB)3 z>b#n4FCFu7le)N45Qkh^kmStXtc@<4TgdUdbrGR`x#TE7z57jKj17ATE!Q0T=iNGq zsZ)$!3^DHzm^38Ia^b1wIB9%o94Fd=txZzxP@vFBiCziS=qCY4qeX7?U78q?zu54m zO?=;gy!8iOAs=uYlBrns-bM5Si7s}ypnhkl=bVGWNwqDRl!D$1z=-MM$$5E6(Do;z zty^0Hso+CSahTN;>_pr4fEL2fYe2W0sLOLAstoRf`eIAQI0 zKBRiSWM5q`zV|Qbq}JZ`pY#+tsqegc0Y$(2s7eFj#+#6RFH_<`$(xpz4bAe~CwPSu z_NC?IVIu6x@o6!j&9~lpsU%VF(-4DbLW*~@Mb;8cGQL`661x~LkWY}PVat~aUL@J> zrJn!>9cILwBL1H)-j`Yw5RhP6zq1dZ%nH+*UANg%0LkbxzA5J;s%4gSk?P9 zn7mgi+3AaHM|;EVFVN&Fb6jFW)qs871_-2I>00LVG8QIE`I+MbL2qPq zjpB+W%SJl2UXF2dlD7@K#G;jZv0#ggaMxF-VvM(xlj4^A#n+YSot5yMZN8XSg}Rwy z(+a@qSbL0cB}x%i`6#Ho@6qDWf~0nDidi!u0WfrknO!Sj+^k83Y`3@+{cY_ zp32TC-^pp#kw8xAF8Z!jJiLk<%Wg!LfEtzOmJzq%H0VJBuRitWRT#6-N^9cR7ZM=+ zWR+I7hd##wcP2)B8&sX?Ryr%A^~z~i?KC8fLx(m7+D@>s9aisRAn`zm7@Rpm?P6(Y z4o}XvP|7)=$&K#Fhs`%s)L0~{`L)!zL?ly zg>Ady6F0gN7#n(Z8p8l+!S)ReHCE9VMDzbb0BpG#JV3ZAx%B?6pFm=uktGZq((}d6 z5445%IM`n5gBPA4ciWn=(W8|zMA=H}VJ!p`C3aB?XBU$*PbK;LBG{jfrr`56y6mP8 zDi7||L!$k|FK-w)UqthPK*rgb&!tu_w3a&tZ(Uh`mWq*PN;GlEF_B zA}NdVVut|Xu0&JOv`J-&N3akNmh7KAHfzw44bkyvbu(j_8jENaq7JL&Mh~2LQGJM9 za*@9)<)D$XS2YyiviXYQ^%s`r1oIaYK=;HZMY2jCICG#*MYx_)EGoXcgT4m+1n%Fo zWeydfNMO7$Uk$0{Mp3B$W39+&P)EeC?aIXS5F(LFoR*6Ribo7}lzhQ9$neh_g}>c# zjYs2yY;Z784=loAho^>wqS`bQKM}?UNGR;TILp=iQ8t{{a->cSQ``5CReUiKRxT%q zxQtgCJqKZ>YIZ1rFOi2Q^7hpI978w2y3$f#u8 z7i2V202Gaxh>vlJ$K=~y*4~vQ&O$9@1G2seeiUO92s>Kdz!lb;kzTqIq+lERVG97n}VT=l0e3SHufiym2YcW zM(SRffg<=Y{MNH)g(SGX*HC{nc&qQ6NYg?V_eE*SUt@CMwhFi-i$b7SIBzgugcmPM z$bwPM!%zUx!P~CL#Jq*bGE+oOhP0Z1(GM|)GI76)DGHgoykQ;BQ|*(c>3!jDvNk1( z29@@Liw-+;Beo`Imss~eScAWej!L|vDTo%AjKtQq{ zv{$-*=GrkpXfYAK_Rg{(0t?fHM!7H|R{WBy6m(NmGx)xLCdu<+KSUpA7I+)4!R>iH z`x47?EdjCjWV^kBpjSTVh_pz5;_?Quk4xuAu1!}X+b79bVa6)~!NSLKYAYj}?WaAG z)DuZ9Lf$Al1R+^X@%HkUl9Qjy^eJ1_q7@@Z9sKSA>YIHOj!sZpAB!J8Hnrc6>J19* znk181u4-6^4i>NUo|`&mNBI9}GxOhoS4Pe_Z(k zR_Nq3x``q&`Jp2J?b}A<7JV)OS1`UTu-#vZit%Rg#$*M4MEy5JZC_G`C$RJsHor{M z*fgN1;PH1z5VL7k zX1Zy-F&kLq>$HoMwbDldeF_}5EP=Mk3K9!5QsjtY&XBdShR&FFp$LV}8i1!FF?l1q z#4qI&v-RL5T7xj1nHg*XTwJmmiPsa4WLyznRnB>IHvrewFiPG%MVSiqF)i} zv$8`C0cj&qguG5lHf0kK6bt(II}(Hj*EWowm9gMrZ*2^_kUtI1$t&K742=tW-aRUy za`%v={7{X-En8R$RmqJj=?eo|D7@(qQRq`7H~~A~mE;)YGV#S&`XRd>;~(u>E0Al* z;nCQ*BNd^n{>+Z_;Mucfjj>8BjnNCy^dn@K`?0PN&jobSxTt6WTROAooKM$|=>pbV@z8(OT4CP99zB81(1s?QwPn~IJ30U!S!z(emT}1+wp6g znV^U3Mmano;a7*x*>g8}1v0b13S%sYk_0-uf>g^o{nkFSC#!BaDkgtKqua^;ZTpoO z37cZtWyfAn)!PO%*d}2y^UnPu2@9odG>ILKpGK~Fj>qXzQTEs7Gu^$V4P-RkFW1|qZ% zW##ZSu@%P;JJwNYK3uC#!UB6{texGe@d_xblKrV3RuPdZtZuu|0MSH*R0%*?K-*w? z;m@DoNsx8Oj=2JG+g6m1}MRQ>8YT1&70B-h7BCT#>^7crUV$ z<%Z3DU1)o#xV8!a);>O`6Hwo}%9R^a%}f>ht{s;Q38k%hta2EGQ>2C9RpRHAtZt3Xbr4&2I8gnlAz@258$zLfzVjBOx$o1PkY z!u{>=7%oYN;V>tIi%TKzkq&*dT>rNPn`Lmsel zYsziFIljb8^0XS9_zjN1U{r7Vp(@Ru{mN}m*DZ;oiARG#&MtVot*lRK)c?)$2Y-T= zDRH4g>i5k*AW7bL#u>s*^^F@fzS76`TL26BHvQv=vQ5{9-uaI3xf|DHFIdG{O2;PO zj7z}m_?>ZqC+adgN(Uk0}1#b(dc#K4kPIEQQw%ZU)@yVT=)!Q!#`fIOQhE*4*L!Z zlta45MR$KhI3Jd|RotmIT8N47ep({%h@;;^Ef0$Qeo?WEgCF&2#MS-NkRUQ{Ibdn- ziH6RIpefyCK@MWAfTVDdZU*f<^$|=s#n$xZnT}-qiG79};4|3A;6q(ByorW`FtQ24 zEG*DJm&C|4!0pVH-nz6G&PT>!P}{gMJtLlK7CDgJ`-w=|BS76v=Xg(>XfP3pkZ;Q%w<B&Nl6EKur!zXJ@?oyhDsv(p^%P9^W&H@n{4 zNxPpoUB0}~u;|&MF3FBwc4d~lvN^5J`0XS^A^S^=0YGpj?tG!!t}&+x&J8Ot`h_;i zFD(?O)$`?^7IiChz96h^be#QuxTraR#y^`WDw!M`lM#dWQqnoRf1OS7-Mn(yQvlBI zI9?@>!+8?)HDxL#$EWN{c`3=)sE2=$s;#_1qrYSNr<2ZmlH-o)yE^91IHFJ2eO4L` zuB6NuL3toVQb@d3uttFPrNl&GcM=gf)>C+)0gzbWND-Qnx ze>7q%7e7V`WrSB{vX2u(P@z(*JMU4s{^-Dfe)0h9nNHNGBQ87KqdlI0I-nT3nuH$bc6Fd_E~A0{J)sDA8*2sKk5!{6u%j(E7Qd%{wju!=>S%U**#j|;=|oRz9xO#zjLONIJ6G=jhyimM^s~bXX#MYr#jZZpjVdtxcz?j z=gcH%M^jszYCrg1mgZl2=*Z0*h98dpRm`4St9rw}U?4cx-mJv^(k0juR zRpx^u(2O(JhDY5VM3P7I+393|^mJ}hI^TD9uX9Wc2*DmAx8%oOG#(+-uTo!Ts>oPg1qa_vpZb8yQ&O|l%Vo_}cAGGAB)DNS52Q2XAw$o0hB zlUwcN<@e#<8#23li4{J)1wA{`tL$LHv1*Eu*~%1k*Gt;}a5Bvr$aSIhSh7DQ(CnlJ zZ}qDHUpQ_smPQEyOwSz~NMX@{zW@AXk}hy_OlY1*C6}V|(P-thZ=`P|J8dp3@A>3! zx&Gb3b^R>+QC}keZgpT4)R-AiPS}E;kQa`uvf6sKWJ)+!VfQbwMV@?rdQX@FoTlEL%3j7v)C>Z~ z`6D?d=ozX#!pt690QBQ7+!3gf()mdL)9&C7(g40L6lzgWs{)A>g zZeu8>+E`e6vS4NrMJvbZcgjBZo=VJQp&iKWRYeZB z`@bCxw5t_u&%O3v^<|Tah?fNEjA!tTrE>Ixfxag1VZ>OTmmYv-=ZF{1QxmbU$6b4y zRB5GDEqITywQaJqJcyWHHMSUw6A?)!iMsJ%G^|f)WN^?JCe8c6^N!UM{9dq+y)5*c z83YQ8jRcNKNAT)Z>&_`nYCDUr$1Cw0WT;%+7ISxAE{5n40x~Iem@sh4qePbm%5UUl zD!Zz*LbrRI<3U~WH}P0hr3RLb0tdaOd!H`gPmsKe0_=76M!7h4hxU`oRDlH}Pq+3# zS2jzb*N)CZuC;O+;CZ6RF|rF1U7c{rlOIV1GRTyxG1Ppu`923o`p;Av>0oS}!Phy= z2C)T=a|jDQ$g0UP=-!Ax&Ul*q?F6sN+9|*ZXvxp3E5jI%JZcyjeal&(UzvyK0TM_g zBy9jXxmLRTB6{sCsJ6_#;_;LlHLgrQC*s;yeW_&k9uSLcO#kqM@(TUDqO4fN=a*wm z)AW}SqSSXPfg4F(&x1PZpaXSy{EibfRd%l=wQ=e{63r&0QIZeH70YWfGSw|qh@RoQ ztY~@P)hrt|MMW=%+>U?c*ovoZqU???H?I62QC}Tb<@1C~2?7d=C=E(?cY`3!0V!#a z?(PF9-Q9KQZlp`;?(XjHL!JBb``-Jxf1dNlyE{A2&O9?aJ4gYF06BM1bOBQ%9@E>!ukgaQYZblhX56Wd@N>( z*BUV^`>7Bv`u_?qerdA3Tl*NYg%nzYM}ogwUbyWR&pk#`r|U;oRz4;UC=IEhIji(h!hCaz{WhEjb1p*a(z9Q%j9Z?s_w zUZ|?@p_YW9()*?gfU|N>YQkeR_PN;K)oHGFn<%`a!8#$t>)Fy2{5Etm2jd<{5b)mU!Nkw?()fhKGO3bOI57hH*fK-}Qhf%qsI_?y z9xnD?ph_IOzY|i}b=Vg6KUlrBa)-n!j-}POWOqx{aulMup_nu+*OPgBpPZxYrwYA; zGko@3U=GdYWf{xWT0Vr@oFl|S};HxO`8gj zf2(^sN-sGb?e1=mySD)aD#+0>Yb#sZ5~u zE8z%cY4D}Geql#1Hos$pvb%?MWNFCeoJuq0RZ6BCTBq^zvk;Tj)(hlJdMj5l6m#MK z?uCVm;s9aSlRx-VCz_Mn#Ph$2rN9Lv5XHz%V3^9#QnS>eiq&G5FW*MHsVW)QH)#wi zA)$I8A*r$3uYwBg%R#yi1>7 zp3$Y#sl-;2i9!0HOZzo(@hny^dtPn@x=6dryKKV84U?;IN)(_Fi=!|zkmG0$=V+9# zy)S~PJ^e!nIt3I`ykl`@+gxN>rXQc%>V{?egi;u_zo2R3x2Bk^cj}DXSKxb%k)YIl zaO>|7U$abe>D?-)F4+3Re_`;&f+1bkG6BidO;!$6HNaqB;j;oZl>Egl?Vh)5&~8$` zN&Uh$9I`!1IR9KqLlqmV2YtXD0oARD%Ejm}|^A$Ort$ys`C8G_<-Pq%TU5 zb&_6my$S7uathbvx{4R{C|Ns_OTyv-Uu+2)Y4rYUq}Egh&;2S2(t)-xDrNlhe%n&< zh|p84z-<`W>DoI8h=f^2)@uO<-0MI@x z4Qkdn!Fgl9BQ-~_=%?7XC;w4e$z4e0Y!u{pDu8a^VIcx-g@LWJ)3uZaq=Glm zRZK1SvPYD3Q>&@qh4%QMsm|s{b{m2#L*H%Iin7}&3kA4pw>rAB9n{K+sg;=CE)(;e zwR~2;WK%H$O+$nzREshvt&Ub9mveHprb^RplE(??XsLeb@=TMDs+%QXPH_usMqV2e zqRj(arH8A9)ay9f{_E`OYj4PViE0Qa&vq0I+GtLL&ciIG=AYRVrOa3-T66ZU)tnHeDP zv)EWpLa1wq7n_7A)VyvrlspRk7)c6^E{&(%8gOr9Slrp2_}dQWLh zJ!j^_qrYDhoUij&YHn7K24&jOk~b4utB>)c{nX!K0vu^Apz-txbwO<+2RS9dr|DC3nM?@%gM^RKjJQd^}}>${+e z%5ZXlG$#48GVEcDEU_C>p|Q&|J~W~Ay7=CH*sU(*pyb&#SEMmQSxI3#R9hM9(<+!i zHNDCm>-mS?(*ekkeIBfm1eP-JnjC1Nyw`7CX+tF&>BBvLnprFM{$hW__NxihkS9LL zyngY4w~s131R^Rz%ZjAu=c(G0^%~&&{}4RNanngw3zp{}+XvFmRNl&{CzD8!_xL=c>cv{!|$q6G{k_-p3n=BR!0Zrq+ zjb>@ATx}w`IV@;RW;OO~UIegRNZ@Qcxop+Gx=7K2<_u20^~g`@q)drt3LYCrOyy6v zWSfc8SJK}u`0NOjv}0CFZ~(P#0DwWeX;y->@`1!7!At6&B}YD3wvViOFg}i*M;S=? z${)SuZtmV~>LcUostu|sq1FCLa!ZHIXBQTStG4vH;ZLVYxqw&s{;!tj0n6d1`C{7R!nE>M{*`y%z>6dN z33=*gDGL}?=@w+ZVeN?lIm^y{#M7@YJ;Zf=L)HhJp=iV*SS3FB#A_m|$h~eY7cV7$|FU-_# z{%}T82n{cg;zzr<77hfYh)dS8V{lRLt}~U;IVU5y4fUd2utmnS74+ z7`KbaE2oxVw&f^JP3;zp-A6>J<+g`{IZo9o3+meC;O3 zht21)lQh131_fdoNmiAkAMS{2KY81YDhrVu1Uf)nTUIiT7+} zo{1Vgi&{!2%haBa{o8#`4&_mO8fKHZNqw3}3u+a{SLp_+e00p7xB6YmcxSINuQaKK z1FkO$xJyn!@H8t(DOw<-mjH1EK63OIG|TuVcm{}Tb>HCb7ajY$VBT_OoVvR-KlS>4 zGZP<1V=}8O%(|FbJSN>oTjgXmeA6aDv!q>7?n*KAA;XRDURhx$qp-ptDSoED&~5qD2ynoI_mrIA{`Ad_#VWQv zvM~PT|CGh-D4EYZgZn$>00U4K>QWkG6vRMan6FY8pFywB7W6FZ9<_xTx%>!UA10aSzxce_nW}jlYgEgt zVdr+-{U@H&uC^9i6k7Q8m)euPi8-0eh4U5avKUYVW{_n%Y9zwBUXHrN^0YGYK*~$| zGv>-7!~7)pCRH9a4(CqA&8TV_!k=;P2bJhAlI! zz|oa(!D5LVKBhjI&Gt|Jqh*&mBSEE_jc=O0q`MaoiV2dP!X|RQ)AP$G7B(lBLyQ2fUZWj)v3x`xXE4QYtPoX=6F4w*0Db+lY)!a_A z^Py(Lie93fZ!ymOQ*r;$;_g5OHKke?0RP;ab>=gNMBM>xh4ke5#tj-=rgPO2~Yzzg& z7U0GXJ^^+`LsnLA>`NqYckE>XbDF20*_yHZr0GqRrQ>7n9GBj2L zN?W7^DT&mqV=OahjcH4YL8|BAnKekP5pvwt#D~-FC1`G;`o^fxg?0t<4-)apdifu= z?Og$&URxtOtzeP76Fsq-gj*Zg270pUa^;qI@a1EFkKwZk@?Zf@iEa7?bQZQ$=$(EG z#{ISc*QaldAqoc-i^APBz;)>(8xzVv!*r_g=AX@|s6^6dW!+thaT6v5XNUjHNI|=& zY%boDoc2Ffk-#dR^iv7epH_UH{+&j#<1jlUs2Evb5* z*#G_+$9}ft{acf;4J2+1LYw?8^SH+=FYxBGS-M>q1+}W9`5KdN$^38aT*PL72XTsW zkBWa>!pflG`k|)D&`8?QuLpIs<8PFQKHl26gy?Po*IUWo{38FBi2zjkgg}NUfQ|^_ z#K*kYLY<42-Cel zPm{0`x2aruV;M_s1DEGNRkDWQ`OCj;=#sc_JhGY73_y9o29Ct-|a4}5kUcjX(sa~_FcxnclaCaKLFopAn^H;JZQ&v zk9|3$^p5uF0oF33cw;!e(J|7`__g@|ZZOxOQG;zNsWjf?uX(+X3n38IosGRSw*ZER zB{Jy%Lq-X2kuQXi)#UaapMj5Y-BVv~O{QvBXH*x=3laZms9bG*`mGHAKOOvg1nL}c zNqvDc$~gC-irPE8y?L>X>d{4V!r$8CQKLr5v~+=+iV4_EjN}eH_Bm{L#u-4>bay*{ zPojV?0w*a5ZmYJ5Na7w7Du!Eo#}g3UcXs8OT+Mu$Z+AXP`VIHn_j5MCI3vj7UFzp# zIz5|hl;Ir8ho`%!q3wo`p7=%}z@0@BHodUG0HiW&poC{L0J|IX{q@^3c!g0>A1z-r*!8 z$kQu-KpNXBbiWhhC^Dv$d*6QMiEFk=Nft*)-QD6SUf-GIogDnurMe757 z7nVAPLT7;F+}j%oyqcq$n<)wa3Ufd1L@z6MVx7tD1C#YLz6dhG?nxH02QrX=JIG(Y z!sW7XhLnu3FrU4mXREb!^TfGF#!7+=*Gj$z$u} z2Yj5dH%hYPd~9azHqiv4Fn;U@Nhq+^1K2`U7n5U0t1i(#n9sE)oYnwMeDmXGf3wHm zgt5O_v(c7+0IL`67oMw02B)Dg6ry$ z^9#>dUO}D!n*qCrcm$owAk#m9JvTX(9au0U)BQIUKM4iGxdJTf`dsLRKH6$X*%! zQt#yDQbu)smle|_6ZPiuDeJRGgG_a9faDtN7RH^gdh@3i0~bF@{3l$Wg%e+Z?2B@N zMk2TwZzM&$h&W>5mVu;?h>jJqMGMQ0X>+{aZAQ&4uG5lD^`D!k3$sS4qwdb;VHrW%cE6DjMy+a+~jP!0c)UuC0r2XajUlBemeO<;(>AcM>BIXKT4( zv@KONf-t4h9w!o@CpLvgc0%B6pE?!g@mh$BXo85&p^ACPmLm{q3p)W0I*=*)O3w9- zmu2(D{T$XrhI1U!)oyQ2gJKI;T)|V18B>k1cr|KFqe~+R%dI(ncfalqgL7({m3Evd zBwurQx?S$es?-weN8_!bUcBFGm0AYO2=)&HfWF6uKz=4l;J5Y+oVl{KX*qaq8hb(CMDKDFIsJdImI+ z;#AHo;3+YQln`wDsQ4ge>!lFK&k&-WyuMdPA&@lH`WvJqOzN{7 z-(Z&}=$k;;`UrDoXBku|i}J?}d0~YoP|zFIKlH{P3~;_;AXh0epm4Ng7o*<|(kvMs znp;ed`kSNq?O>$s*}bCQc0>w%c@cYxVU4c@8|&P^sIK167%h3dYwzftLd%p~+BzXn zC-`caO#b)y_-iT|$RqW+`y+#zYyRhhXOH!D6@LdFcmMsy=y=VBO>=Ysta)3yds%VW znBQraS=7(QSJ2M)k(&)z#&7t%PHOYjZ~m~~?w=-prhxk&Mn1;@)xN+4w^qt?Ejcqa z&tny4`qo&C$$iXYvW+8b2nK{6tJXV8xOhOwq4?xR9K5*cxh*@rzCE+^prF&(R+xe z1}IUn3e8v{5^^)Vlr+9LLx`}(lL8U0Hrx3y4`Ela)0nFcrR$b=xo_+pU6#{$n(dOH zEeI-l*Lqa{QI$DPD=*}UO+$~)p&?Ao^vHHR4nK)FbCjAQ0%B6i?}}PAYXi z|78ty_CVTj>D$IFe)B5uqtv|L+G_i@P6YleWJ+=ZTHvH|+ zM5=oLo~b?Nd<@|-7vBN2@Q#ceD@+yni<<>l1#y;M zaRj~J_#>R>-X`1T%5mKwb$_;gRZGVfII%6o@@Hu>^4_$5EJ2?Qg^#DQ&5Wvri<& z?Op~w^$&EpXk&82u|*W(nX{Z&Pv_-33Vuz@c_oKG8c($5JrrU}jxmeA-mkOXcD|QO zVS?|Cli!AAID>Az5?;vP;SB<3$u9@&IHg*O-d0nIoc1b`Bf>2Q0NLO!5*Drk;Lhu> zJa22GL`5E|v8=oO)A7oHD@Jp{%RWoH^Q%LbrcpkMwz@ib=?2qg>xkE0h7Ly@ly_gmx1vg0@YAMdg1M1 zE}^f9wK#eg5|}|j3fiq#Ic+lD6)W=b*dPc$CjnEYskr0pO=CHi5_xJt$|HZWIai|5 zgO$57vkLbzm+Q&$-uWZ(uF@-y>|o%;jB{n{CTE62{K(6)*<;=8rUZq4L-#dh%91f3 zw>dNosKA5W&i<1)x#r?$%=55(?~3f|>elF{o}#q&6XW@ML4<-);I0P>O=q>xhq(DftEcr%MR}o|IqyRl5s<65{1Z1U}iz+qY|s3I&e&zPuDA6>88oYl4b5Er zYoR;6y{h^zujIX)X2akOBIbql>^wgV8Y(xriuQ49`u|H3frl5s@Dv;88pYB*3bc2( zt6p|G*t$hGF$R%91RU&ddTNs&ZVlxaVu;D4W>Zg!e86}gjkhv}k|?aAcL%n%8Jj7? zkL~~6g*%kCtbFv?qc_{Vv2`C3}gq<*R6+V=xxUGqv_R4kMX-GS7+LhO&BIQx#cDsX@2M`_L?gWO;Sl8uhH1U}rD z)$5C3VS0iOo4AcvLqG>PY!Jqb@*}_P8R^GIbC$Q^69$3XJ?6=&ZelAB@uCu&7yfw+ z-7A#;_GTCJB|#l~@+V^y$ru+`xE?Kj4p?FAO~ryqmd3+oKk~p;D$e$=r^#{6*JSIc zVQLct8YBF{uoP3f`kIM@ZSgw~ET*;ZyuHGKj8muESOn7nAkR-Hc|LB%u3z}^EOPI6 z8CU9QJC7J^yadI?79YD=YpV-F9k}h`{&NRE^ZwS+xdXrwxK=`92!%Lvdf9j&7tugy zby`xI+}$X3Bo9Kyd_A^E9txcZ-5)4#Pm(mJJg;iTEB-_@m;OV}JC&<%F6ee|;4M8K ztch&+aKWQ+TAk~SA@KeA!8GUaMFUb`{`w*E#pHrC=!ov1U_1%zQDXkX4T8}!UP(MH zL~{EblV0Y^@Z|JoC)&Ef#_mL2iz)HqVAYZ}tmH!>@%2k8C=&z~6g#u2#wB0lD_3@e zM^cZ;11DVnrH=}sN?KO#=h*}mP(~^7pa(E{5TsSk=u-LeWK;PjJUM*akb3V%&SAM# zY3l0il~uA9;Vr?FH2U>T;Vkk{6uvFQ0;JG9xkG)e`C{`Zccdk3AXwTn&rhyFeXbiV7aCfV= zX7DAWhe8r|bQDDnRbI=m3F)li3_G~9ZM^3YFQI3J5FYb)de1QMOB(Gev(X1tJ)~Ok z0kq#Vt*_~-uaFc%jaou&>1LRA4{;PF;_{TU-dc?pa2#b==p2K zWhyKCZN&s1{;WP-=b#)ea}zw@RiJzDYgl`f!uIAhdrSD_ZPp_qzuDxMT5w2cvn}0& zMEOR~`2=5MmR{j!)9gVuEHbj%K3V+O*L$v@^4zY;ZXrU2`y3mLYIqLN5&;AJ#qzy) zbd$?M2nD_RCE=#S=QwGIO!5~!}A(bIP#c5*oVwFtVSn}t% zx~gf)M!ipr=d5wVHi_okV&M4u%~IbIK4I@`82c%m^qo`Gz!{~!a=uNZ5pA2b*lyd5$%-wbo3_)|nUUey} zayM~hG_f+}Fl7~8j*^^|T7~O&Z)ztd?rl50SgO%c2fKP5926#}NwN*!Qx0qSx^~K? zHrlH@o_Mvz9&rsKDFSaPb^$R9Zui61pouP90qQ-}=aTvkvOhB;ue5`1nvs(jgbw{? zj6g0Ca3F8Mdc0IXE&^F*>U=I_6vLSWFGm_Ltj3G(L1@_6NN_ir`(Zx4RBotG2sGpa zUX2_BmOGK(O2ww&3h9BC0iS^YPF<{(0p?V*=}o0}Wv&v3jdPP{mI@XL>`O9eE(WO1 zEb+U0dcYUPuR zI@bU7140H&oGP7-}%(^hA^3OJBxgA*FEH&y6tMW(nwkDUvGvl4d{;lT~-q1#T*2`mXE%cT*^xDH(ttDpIRO#~DYLe0VDii}|OQ18;SD>n*{zRTSM z`sv!q)8YaPAz5#0$j=|AOG`d>pF!GhC%d;fdgR0;KCdpwFVtR-UjM4E?rGRB;QY7M zae;PlxA=C^Ww!nGxh~u3P{N8$U}mb0gW2+|8o#Dhn`c07`;4}lnwIz0ptfKgK3-;0 z{OC^;8%mMcKQ?Qb)TK(e({y3DSVa1mR?jWZ`&mYvVMd^i*49|&Yu}=)B|^VrILPO3 zuURo^x}KgU@ek^_QP4!!6=!0oHa%H+QBm&rshOXkE!*a_nGn`_FYS7$bM=zrgSbqG zQoQjN-uMO4#4Z*SNBtz$UWF{&89zM4h*D_QeIBgmk$tR$%`0}IeGV_mIKQ5Sc7~m7 zN!>~Ai6>qCi*v_DaQ+2)=gThe3Sxm~J2ZdzuYol>OyV?ekFmX9#y_!so4#GVb-=Ew=;Se z0>EWP(mqzr);dph*Ikg@Hd=4Q%szSi=ab+{{45>=hx%7BA6)Mhy5<|DP$wY_6D$|? z%^?Uu;|~*-`yR*1>fN~=a;Z;rslR7oYc+UwYc$#QT%%JNJ4{@7{JdD5O?nfA&jK6 z_U+A4coN;u?D31syZ&MfLomFLXt%@7n(5C;0X6YaPrT&zj?5Y|XwNPs{$jrdep zhp(cRy+X`=h6*@`ago)`qXI%}8=@YbpVYKvD3S)ny6slV$90SCoddhN&%3LCjEH-L z1vEdiBWqf&b-~?%wJ+fFJ?Ia^bEZoAAc11Uxt;>!jj@Hfuis)$wplnhyvslY`{1@h zoh`8iyNtMIHTzorA*#HUfW-GNApmFu zIr+Z@jbUvL53lM(zS>J;0JF0)+$$EndtCJngX2pqJ74q;2Sn%7a(NLQlz!u+ih!7{ zm)$$eHR&yEY|7jOhVM=jgMWN`)~Fj65MVmrTx9bu9+3SL*!L z;}a4gz>g*!cf|0%F8Nd=g1-r98|ud& zuV0FA()N)tEokgbHKPJs7_diWz%5EL9bQPJR4;?+>(|`yu058sQ!a&sg0Nd51MV}L zn$BBpI6!n2YXpr>6FWtLq0=8c7tASXC8pPcmL%TYU4v=1e2HU|@CSxZboU~MBufpSg|60JUfeoy~>nq3^gR}g{2lSut z&7W|_=cvI;GUnwUb-dTx>@I04@iwh8Pv7(ks%*oadlg2qn!BA4`3+j+*e%V_Aitlf z;&{zCxw5Vd9UosW>;{VZ_D_Z}U5?LwnI7FCDl^o9!~!imlS)$@!tplILL~p~e)g#?@?Uv|sADx5`X9MksEc258nmRR z`>xFum}7vSR3hyZbKPg=hBXwA?1l497P$Rj-ncxQ(coB8fpPGKk{ zrsqve1r&^Jb&UW#QoCz&kL6mbM@S3Q^crLwwe&Zu$?313>FKf@kx7U|>{zhu zmM0}>HRI(P{O}LzO=FS*5!xeb{~il`vh8s zJud#*D-}g9gPfvU_PFxx&rL@2zw}Lw*6$mY`QAeY=7`8{OwC+s6{W#<=JnB{$>aX} z*|oYHnWEdqdgz}p79Ugkmm03x+ETBox{${aztBIZke$pvG+-^RYVz~pm|Sc-wk^S; zfpLe8fS|YgY_rV2L6vVZu!DaOCmrMIdV4xC60J|_g0mz_wBffH9125`)aj^TZ> z7nAJ{47W*z^=laSv|*47e%;hOd{yo@@QX2nN$z$jLm<6)4tg#_agy z*4|^hUD?Q6nRTYrY22iHGdmNv!OtKOez;F8s%LIywz=0gu~4F-HZZ}=f*FpXq;0Z2 z**o35+Ar!fZAdV~RdkNn1lGS+rhQ-bUcyXr{r}Yh{Boy53@QBuxa2Dw<>#dpYsLp= zR3i4N#)SNGZ0+=F^(Sfwm9lgh7?p*)5n!kXHqgt;n6w{#+d#7!H#J({E~9&=6<%(QUs2?oth;#~zC4P~_$c{#0C zCpQ{tnUy5MAHq9F>hp0jpZCtxE=X?~1wu-}FpOx9myKH%6dBwvwKi1tbf%9gIPS|Z zTTx?!1rQvs7}zK3i2R$0>X#XvE_zJH@ymtre-z|FMm2)x|NWrV*G6AdH!B^PsZ}Fz z4o+k-TXZIiZyMVeM`W#1=*oH?=Tt>s>ia%0ux}+k0EZZ1baYcf z1qV8BYvRAO0g`gwNB~6<@>YKZzyaN{;g`vqn@VBJA~Ol4J8aYlT4!TI;sk$w?FJRz z6jJl1(tf*|`XQVq@5C0j{=_15hKY*kzzo$-oKnR@;*Gal?34_st#rDrZH}KjEw$uD z;xPZ)D#&JD#0m};si_y|!C$VfwTcfG;3kp|)F_;U?bvJE%NgF`r`>c-jw`Bt*j`#XjI`lQ_j4H4^Li*3+wi24R4BE#3EjW#{+fUFeGwr4vhm;R@WNOH^p9 z4`*N9aA2#$1KcbrZ{JLKm;rqDSAEIce-^xlByW%laCD@QoT6L2IruD=>0njjD+*9Y zG9CznoRl^GXodYjyLC0QM-Vjw*ovgI$VC<;-TCRgb+lhH-YMYTewhzB zxJ{d6a;Mx!WeEVq!u;g#0tuQYQut95v8U<4#y}_kXo!Olbb%_Slw-B)EjLXP4r zG9?pelBBHujnT{6{BN1#Rh{Ft`x<)4n^FLOIW=K6r(2H$lTKS(gj)r4`=Nvt*Woy^*bbW3`H+ z6QADCwvC^77VB@^h{Z*^4@vD;?Um=Vtc(gB{f$UyB zkc4NGdm@}s?tD$ifl?aKF+=K-ip<5Oh^@S}B;rsbdDOao(w4E6F+HYtaqmivzXvIj z6!~=^>C-CqY2~8oSE5dFgL2>NnFpI&Xbg&aQ84w%>bLacR07*8xcOi4hb4A@h*1quV9~uBcL(Q0TX%_^Y&wKT)x8c6dG(D1h&m!d zYJ5dYOUkGhKgiczBWV~Ul`Q+e`8B##avR6aW}IiGu3|JUyvsa-nB9GT-}pR0ReZCA zfteGdM*YyUV@Ky2LcF5c%IJQ+Nzk=o>J`BcO9sC>WHuwbSpxX0Fxoiw*>1H*6BSFE z2oVv&@0lbMI&>0rHsU1bwslejU^o&!S2j372tT9J%+Q?g4I0xMo9 zv$EkAdq9;!py)vt!qe!sl!CAD2%SE>=Z&*9yS~4Be`N%HG?C|=(Vw`&_8S5$a1<$0 zzs;6r3|KjXPGQgve^`z_nA=4IJ1J&BP& zSZP|^e5Up7v1P2eKCTA~M3PnUHMO5jQh2BR`daI0_lO=EAAd;2Qz9-X^iylg0sO|t z=*0|VX=sTV#IFKzKQP8P zcGdRf&8{U8=(@{6?MdMwPSdIDm&!;7Ct9r-sGlv$OPQXNV}8AsBqr){9c9>Rd~g4EU8jjSl}31n^&5spM;0eb z%b#E{DI=%ce5)XMPgZyJ@6gau`Vo}|zVjk@H+n2o85v7Au+LC5xC)T;L{9k*e9cP% z|KdL|u%ogP=Tfya0|e?{Vn6~8zE1P!tE<=l7%Jc0`N3DR^g|Zm1@{k1Dlhu!6Pxat z;RKap9H{k+dDvo)SrL2FWKz;TCl_BZq$CON8kEyi3_g3UvrWo4O&1<{Sg z1Bq0U)O(sx(iHqYrE2{LuFl<1u%nR2_5Hd)983+rpoU68;=#Unk*{+16A}nbFGbkP;eWn z_8WM3>i*2jIr4WZ>;0hOrmBiFi9n@0lQ%J~w=e(lt<@!2Rbn-DD5-Sl*w9sEm#770 zB|nGVb;?~v>0!xiJ=@qJ=|y%6_Uf3a-Fs1k7liev-1mIH1KU=-?wrd8f_P>E1KE~T zKquEm5C(8gkOLwzL|b=YIVhE!SzM`NlQbA3EZ!b-NVt zRpG@zDrVc1(m&6SjfLu4D#D@K;BEDQo?c)<|Cg#}XtKbwSTiDJcx)}L+N5VBf@Ro> zjZMH!>zvJcTcGIsx5U`;l{e?B;0iUSz&cpbECoqnFlh+-c!|&OFqs0_JVYy38@fC8 z84Xjt_2fXffNWgnOQSl@XoD&8e^zU1@4^w3<2#;{AX5B%ePot1WWns#pLGna^os~5|j8RQ_N=3!8LG33!UR4sljf>Chu#?a$L=JW_J!bU@ z2hWVG*^03$UjlqWaxpv_Q|C|G;a@#lx6~$LnZtu90e1q-LQKFLi$tK*XS881wZR{! zy!_$UJnm-7ZTbr~@H~EjcDPrAd*SZFBATTC{V_HAG6ye+64>rd^rQyFJD$MZ?1iW(GQ@d3!Z+n;9hH8}JD&pbMtn1Lfh)-K+ zyQ3a4n5Pt68^-zBA*>e=5XolKt}`-%{tH?^KJtuE-hne<81-kOGM!niCSjipr&k1! zT^n0hmBBC6jLZ^V(B&+y&pU-uF1+5}1P+|9?VWpt2s!3s((`(rdUiM)TUaQHJ8FY= z3$0psd5Odt)IVW!_H!|=vD-~^!im9%+-hTY)!^&{q+%{ z>eZe=TxvdtXTR6C7$I-dfJF4G(G{9jXGyahOW_}9kF~5#X|@!XyB@WFj@~rk?Spa; z?h*x+mHeecBtO{Bjo)mx6EEwE4-_)T!Ga!Fi_simobIlP^hMR*lFa%|*U+2n;a@#i z2aGo1J07FmU%l7nZBB81-Dw;2+2jR?xvUI~m8MS)y$s)I`*`94JVvrSFhf)k9J%T} zYe{&$udR?wzCom)c}iXERtT`Mok(d}SoT+zA1Xqmh1l6|S+E32cH`jzC-Te*{${_E zThZWudfOB0H-tpB&ca6$9gjH+cDNNNy}RabKc2xN@~2yEob5sJ{u2 z|KaCNnGaE_9Y5>MZsmH{`41z<`AN^!(c6Kh=$cK;j1cLV%0ZI28qj0|-b-cb9ZY*CC}_x8?Bg}z z;N-v2e8i_z6ZdQx@Bb88Ile>y)AqWnMfb6kyMkzh!5xg9@JL}jX@y0rE+w#qqmjNa zVb0fbW&Z-lj`gZ-1RWeu68LB8YtOL}J3Bj>beiLmldsuN-Fli*W^OVRG`n_};R1kj z!!Z_mb2i`BoTRaKlDbb8ZigQD-IJf;H!h?!n{N1zHB7l?9=E8dyMofOg?b&kZclIf zu=-%gtpSBiR5V5!kI&8DK@NQhd;8oGkv0-CY@D3JUu;ij@_UlssdjOs}U;yZZ$dzs`^B@<)uDV9E4$toxSxF2e#7z}Fa+Tudy4vQp= zYi#87XuxgfT(>r1M5!ctl4N~$<8cf;FQ_7#rSD(bKASSeu}N=1BdQ8AJ%SyO{iP1q zp^HyE6!A}MZ9VKBUBK?b1Olv?@+kj_G=n>XM$(9^li5oTj{fKS#JE|z47L8Jr>BJ$ zR<;xAnr{d1$p%t(-OZZ4Q-|;W6+uwyl3l)gua8G8l5t#8E&}U@kE>!YPV^;;IO~>U zi)A8%>4JVY#}3&)FT0rC?vZwK z;^M%s%c*1C99hd0-z{$`r*lk5?Wh5J^l9nw0|HInId|vNq7wHd}O6OhbA@bElSjbjFJ%WiSoRbzF>#Y&5m%0 zm!6)-|JB@}pHX9PJh*$$2~+^qK5*gLc%JyCZGrk6iPZ_pgq zcc`jw1#)<7WKXQHm>VluX79qW4UpJgZUiXh9U_p&#B<6;%rY~p`ePXa+%vZp<5LRc zS1B zfyMD8`I6tgFey^a_CbF0pIlFAP1^H+2dt@iT3M5_L8tTH{6H4uilvVoB$w;lwv~5h zbyLuW-xhc?p)i{2`u5M*16&^!OtL=_IFvjru~-?e=Pb0}?v$D)MJbAk@{hO-LO;Cirz0}aIMKrMyk4(*eLi;MR|kyNcRdb?TLJ!L$) zM5v`POGAqdt5auBGliH0P~Imx(ri+ptKk9SXwmoP(079YV>hafH!yDJ*{FjauPGmr z0Z}kNi_^d3>nZJ}4P+hb{F@Ax;Q=WccqQvK55{fC9TCSpdF0nwtwnHvWka4ARRly; zR{mVN{fdWUTdQs^Ne1M=dvK88QqMXNO;A%JQ@yoc`11u};B?zescJjS)s0|bs&-e9 z5+zh14CF1Uv^ri*JqTb5-8!hj17R6N%^R78wD7h-N{3`kuAisosB?pNc;MhF8Eg7o zYhuM}8UYp-EWEg$n!7=IpOXZQs+(-yd(sm)kk~`yu+P}&4GW@4*POJLLr&`rNUl#d zL={BHhvJAjRDZF*e=^Q6(9)ddE`vO3bx-CCsc`rhZ)XjS`0nvn5h6Rg1e5>6Wt?or zV-LmVPZf37ZT8<|ca|0!YF6AuppPf)?xw!alHqnmW7>E2cr7V{*upY^xGLfj7@ zFUiPSKy-m)5SGM8hvUIc6w;BQ4c9g41<5F<%Wgf$s)8Q8PNhmw4xCwQ9YRx+G6~8G zH>!&qnF7K#O*-=%VJc^Apmz#y-UyPXcr51EO*uX-78{3rbufWLRZ)qJg7uNd$&%A> zP=Dkh5+H?Dr=ABPqxzzCwowHi9KHrSf_z8SVY)|pWRJRk*x-00v-VY0=Q;Mq zxd_>NEKR1z4Xnu*bWWttBRxT@pN1JXy^i95s$PCn`*>IA4A#8=llbdBE;p+!W?|K_8L`mq`roZN6t85;hrjA= zkWe{MKgF4DLkj}OfS?&yT6b%EBhF$E-@o$JaG-Fob;YHLP!fMi6CO*K>mvYRmaV85 z9C-lzkKGPhcOA5+FP1@em7qz9icCbfz5zeMA6#yz2;C{++-H*9-8)L;d+%TwuZ~I%P->qTZFfa%qBLNm$n7HG0o8u$ zDEvz9BYv9d*T&X6Em83=ffKsxf&3y$tMXYs78l6p)Td4M%Rw^f@ga7>y07P?@p6}D zi$Jj#JnXqT_k&H3qaH;wrMP7HIfSNUolW2p;S9g@_*+LGUKyy^ahq*YESLxUC8d$| z9cXpdNr4j^)hl^=()kxtlkW|PZ>SHzMzbG(MJAMg*1g;gqx(h9amp#Q_Pkh7qYgWi zVYe&qfazw}PMqTt1i$zS=%csP{*idZ$im$rAWKWW#=7j01D#e3VxXo=cDQ|G>M?<8 zn^-0%W1%2e_`B`;K{);Vnrphk7#WO;JS@+HPlV7?a71KodBzZ-BtWn@Lo(9IElFBl zQn$D;FyU?X-FXsqu@1*^KOAxGa$QIH469tZe$(jNg2bCTc}%px&}8rg-5m1;@PISI zTZ@X$ZaaIB)5NKs)EV0Gm!CsUgBbO$i%~(0Bd&S@>ZbS)YuiJ(7wl~3d9IucV2$G3 zRTq;9ks$kPx z)4AEP5hj`i;Ud0HqZ|DvrFtI8ZnPg#nd4RXX1F?+t$>mW41xDO=P3CmGYIwUi%Z*i z=Lb+5;@a6|27Cm zgH==~N{ZmQY43@EIc#9T0CNy@?5dC3&Xq7e!`t+E^pztPq3&%r-OEOrk_&dJ)}#BD zt|UIGrnl>p>bW_lyt6-LZ4=k7P_4A4{@gHR4-2YgzdJm=-UGSch{A5+;f1!Mmg?R* z3I|}nxzFqq?675}wZwrx#YMM_)7}>YXk6rBaSZ&O`vSRD(C<E9nZ@QYM z@>2s4RcDVG?v%(%ZkOB-`B)J^NEvDhg7{y6rxoO6Ukt<&6%-c%klkUsJwMEP`XeL} z-<8oRef$bDl^iMTL-g#aWp*dxtJC^RbhRx9?|}f)Gea+Ax5oWQoqzP~eyh+z=+I6V zug=Jxkpr$j0&*wiGLI#X!8aZ_QWcCd#U1HjL8{{h$}sSZvm!q>#-FCob^sCV_YlqV zdDHy^=Vcn)EXmn}%2k;*>{;?pzasj9uxJR@o&w-%TO4N$AYyIj+I^gNh^WrWY|nVYn4ZT z=mqUqmH1m02RFHBtO<&GzZf*Mc6>Y-C5t+>M86{=-d<9G1lQGO`Ag#-Hv|~V0r7FL z4uBVKZnCe*0eM`0>e*(~ZEj{ScXxkzVwg6s#o%L~Ba~1mE2BXAmUDqs*WhBPJBI7- zhxUAc<`vuT5ao;C6T23Fx7h9J!f1M;ah~aF+p4l?T|1-PdEl*yzelk2{jBPJPkK%Y ze@-V5D_vZYm1}{DL3MaR|BWA@sY!`$dck@veAd*+X$99k z&w^eNfj4T`Q@=21$A{g%>jSa+dyO+A*x-$Tvv#+r(fh^WQ6Y3h;JWF+(Pr@EefXH6RMMIu zExr4xt|Z=$JnDhu4xp9ti|1rFpe04HL^`$K25)M3K=$Nx)NgDyA0>Y~?)Y@KgpVb& zjf{)sYJWU)m~As_OQn91e_ggZGQ;dq#{PGK-4X=~EqGus0V~!tSkP?}`en=M9v?YD zpsyc>;1yjAZs}}5974Ze_B}%0L9U=u2(F228hGg`a!jgE3cn`4DM| zBC2ohi0;yG?zJrE*^ohU;(9q&4<7fwcGTc#|4D5bMQFriqii(*T;M_AEL_fVp8*)| zLDommrM-eAsoQ%y+%RPkwu&QwhyvxCkT5=l6?vwiGVf=Nwb3Q$#|U=5ikw#up^5y# z_ega{5OEdW2aI3Y!ejeRZAr=*ql0RT;}!1==SRrb_K+A^;$m&y+8}7&KRNs$sCK7h z&E>prJ)3^>WLeHyZyy02yP;r>{d=oH&7X=|-WA?WM>|+ppH1qE_UppoMJ;TA+*dau zs10?*ykKzyF966Kom!j=Y~x}{n1>QtN|V-!*a0p^5(>tO;+msrks1i!_09wzk;B=9 z2n-r!%rQA>N`1C3)&|X_LfC%5*%d7PcQ<0C)b;YzWq*vnM3^!wf9A!Re4HS42X;kM ziDR7oAQ0SBwR^=5llpq+nxzAT6bciKV1i@l3KY@No?HWI?L?9GaZo*KmIF{RNf0@jOcB4ax~^$0y?0#<*Tvx|J~{>KFMv}Apkz( zuk#HKsr*m}D@Y7t`pt^!Y_}4&%k6j*=};;LVfEEM4=E3h@U%(sA(ycI?(Pt!H~v=J zPJEFDwpv$lLtr3E)rMDJ(p+FnCqc0O+x@4ak@B_bJ=n%{Ny1lp)9K(q*rxbe4fU&q z>(oL*+FC`jdrRTiMT)`qc40QIa5*dC!Fjk7bvqEOD0{soM98gJWLzKn(-rT&I(Oc- z=ckqlT=px)8VT}NsDfXXIYnC04^3*&aiT5 zKbwyn)NV+{Hbwn!b&3YD=q(&z0#MdX@1%%iC-1Fz|ROc?eoF0E)_JU4-KhTQ9QV=n(xtrdF!k~?@!`5l2SW(XR zq;9@t=t<3GHO6bU%XC{SE=A%!cx6;u#s+}o!rCI_1JeGV3y|AY^%kYaNL*f;Y5$ha zIxg+v4kG_}uoQZL!{0#fs>eRTZ*g>h5xz^}PaKwSh29?5kQzkpvdwp1NZ?P@N}T)g z*IzP&KUKR;D=W5v4`mocbx+ukWh4cinD5^+OJs0Ak8I6uHC#_9aWy>#D_zSikMRC|98~!c;f>;ikyXKFqVNGWwADI26BFBa)0CYg<^|{oG00 zOy7I$&Mzy;qpIFljMwzU@;AAX$x!8eBqJcgDLxuFk$SQ&jCr=|%B1jnF?rc#g0<>? zcBr2oi&v(gkh6ELpw%+!tip)<`56{W)ss_)6P_SoYA_FwykMXt>9I4Quo1fKA|)Ja z(^E8C_4{>T1E!AE>#BQL7OgF3gQ@yZf!u9m{Z;$4ouh|ANyL+1Ii>T$uoPqQ3Y7;1OOiYyJk*;3z93t!V^(CEZL>m-wV-~@EX+8s@219}9)21YwoRw2HFbxc9%Et-a(!#c z&WguMJB@bp@S3`hE>LY4i7v;5KgQ^|2$Wt-=G|ED3Oy3^vYX9qzPV2HN>Mm0dX@c? z^yQkqeA>>WVk9axFfeCn%zm<}KOI!KiP#=wf-RyR8<2#@e{~C@$=JEXiL&x{svn&O z;GQ;Pv|JEB<(BvN(@#0B{#}CWItc?uLFThe8I_!3yFtn^5>ky~a3(SDTGW>y6|~ID zOY~2#$ypNE{YNQAobA)jV=Lk=K_)w=t8dC` z)tVM!b+?9Q5(c)1T&P74ARsAaNnDPl~Vlc8sM4HXiq%{feRb^Y`zUo;p=Y_{Q*b zMYZqe&JR_70Uc!Qd|}-yg8_1W{7M-8VRAB6%^y%s6#zU}VLWDkgA69*^>UCfZ~7je zf~3~Y=jZK6b`#e9{d{sb?w5nvv4D}f)6+riBR~YN%WgboH@R|}i22p_6EF|o$$>40 ztj^>@Vr#vi`Xd5o7&l=8B}_RcR&z|HRc%dIXk{x<+G45hN>8YwM%U83JB5XKP7SG; z(70g@5E;Sge*Cb_rIVBB_-|O!HhDn|sviJY275bpDr_dST6dy=ZjbrIWNr^r-75}U zh4it|KUVAPl6E7ulYOOK*jXOB?E-#+&%^d;aCyOYRDfGbyQ|WjJ$*k%nau_$KvAcbzh2`AsURyE96eieTL}zkn)tbuCVJHm#p^PnD zU%8(#R|`9^LlyT=ec#Qd`ftAlQ@5DYZ^zTly-&O!YS(`c>JDAkjSdU(zom$2rvCnA z^`os9=pPq(S!7>GiC(L=e9gjNFOeF_&g7TibV)tT*pv0i!#nzVfS6}1;B-R4 zISm5RfFU>XSnL9=dePwj(UR4O}}bR@I!Zq=bI!`-*2G102k})&UMl4-cYWJ-NjLm6mr?QP|+# zUSoxEJC|GNq^tTC)30ia2<_o0tro|=2tQgJca+BUFi{rqhHsWKI9-goVs9F^esm60 z=U6Kb6b35q0M60Y%d|s5X#m+B10vlZC9ARcI{}XXr%m4-Tx#c?x zWUPg^}jy#j)-p~ zbJAiRD#lm``v?H4P)HtyGB!s9%@q)9YVE{V>?L>Ybc3{HI-8?2r4Z+V=2Y{u!5~aG z299G}F35u)D*`#Ty!m;}dtc;z5T$!ZRK)*pjcoVs_14xX@nNPQ%3rF9%mgE~e-ubj zo)3@2YHo6T?!6)Ba1=j`GL;(#BSLfeOg=jQA-tn_mx(f#RBaU9xqjJsk9_kKV^P54 z#_RMC@eC*y2y#)7;~I!yzL?mDZ@8=8#vGIohK6oqvSkY&O^>^p4n?9IWxGQ8#q$PQ z(K9k+CGQ{Od=?i^xY~;q+fiCXS3T2E)|Bg6t-IFdeWX%eoZR?})^1c{e?~M-{P?vp z+pmM{tIk>R*+8h3h+&&VPYg9nx`qb)+@@{N`csNiF1pFTZ-lHNN#~|n4Q2i;mF9dJ?YduOE8mz_4T9kaFM6%$J1;w z5EHGXvbCI2*)CL6<=_{BX=)!7_S}tALpcJsKOMX8jXrSl8@*po#74@rmBKex=dWRx zby`>DwHq3VD6^j;FuTMr@>YE31HOT|zK$`LwkYm5`W2GceDgjOJ~#HVS~f43`_$_y4ZWzX3^g!PFDv!6}x+m zhNH}U?{>E+?opui(px)z*J7q7@N*sTp?ON-Xy6sBixpA&vSKL9x#5% zvhRqXs@vifg%4h7R1y;I>x$|ru1iI|frK!!x>TZ8VM4&zlNKg+dx-q=liHvXl78*- zW@I;X*}>BMg#3QFmV1Ri@n>d3@GgJBK*#fNY0EU58|wGQMXtxoT~1FHA2}wccL**o z=P_!6fh{}f45_Zn>AsyAZ}E6M8E9#DXZ%=eY!9OZYfZuNTZ>?=_wTGV#7yF%h2@@w z6jWdq4pk9!4yY~8>q_H&>}Aw}XZty0p(+D`i=@`Ke{9jOimVt?JZ|Rv*-{OG-C<$f597|Stm>Wz;*En5oM*LyPjjFJn}xD zsz!}Q8h`XlN8lU3qua2h7%Z2lPkE{VYjY+!H^%&Vo)E~O7k8r0a5zJTRF415D+_1l z`upo|X-`{KA`$(|j1oX!6S@m;p%6Q<(P+l;r+AyUq(@+ZWzv!wWeLrGt)f4ppJ2OW)R{d27S=6y0V@G9KeHTBl5Sw z{9F6$<3%sK2fu9AhcuJLJHs=VRRI%BSk{a{MN#uytQqsOLMB zLC?AD0NG{dQ2&nx4gB$dP|Krmub{Xp;->#o@{?+YiD+Qw{{(BpGZ$w5zC1T?+Ymm} zzh`4p>iF&)6M^n%xkox#$dG{@I1sjE@sR4wV~IIiE4AmMuARF?+xhn@4b~;1h}t*9 z{r$0is{|lvD2cK&vWV#SHD_ZpFVNDlRxKQWB`gG6j3lpm(kiMs7JB@@N;;;A57d1phB4Q*ym51## z)fbBMznz}Az;=^}D;3{sE$BJ#v=}ES(Hj`{0NG$_eoSpr`q!$pknQEFrh7pFe(G1n zx9KzJdgXe;7)CIqwS5V5-3I8S{Oi>%ro;W?I+88U_Q*#EnaT#Iot=h|U2_0omRZRG zb(`096CqO%44ywTBSZ{Qz;g22tG2RiV7SIBR z=l>P}EV^_kmQY5U-&g=_aL?Q6wv6+9WMSNhkB)Y5?WA4@^8RsChiT&FDvPy%{dpbI zIiBiAI?jC)J@sjEE3b<(O)n-Wwb|dwwZ?E%R}Bk{(^?WwrDD~x6~6UNDR3+}S=w3I z=`iy9(Ch_rsS6;KtxavM2*9cL8{4Oa?|vIK^=d~3n{fjhEehRgy}G1I1Mm0x(lTm+ z^L*^t&kAWDgNlnnj1P4A3%j&zYWxGSM^$W@C{e0|wLzhNV}KEgNxa4SGa@l60iIO= ze;E$YqQu{Khi2dFT?^AgC$>w7bL9c5l=)N%9k}4{|uOCN@}W7Z&5nyQ-cw%)*XeALS_2(6?d>m+o+zuRekiasxg!5)rM*CPqsSX z+mZ%+{ERXTgd}l{+Z!+7r36+k**KiougGH)4b8hQlLCBcb5T)EwOv0KgdJJ6e*&Lq zV@;{Pd7veUwedbUq|yrJ0;6G>Cns=NbMs5hT-=Taniil+Y8Y^{i(dyQkJ zZah%WJ6S8&#sdpJY^cn!%injg#IsMnHA&x$Lwhn;zP0ac_nIEv4YqckSqHi}!u0gf zB=IBY@k5KhCHv72x0zA%#rk71?qN*tnjQ2EIMmY8{FJ>G9D1TI27S8K&1?nWzPcV2 z#&-T)d05jlFdpgsSO*NqyV!>XmC3UEH}_7ymNphA_NXLd^OH8Kes%h9(ONmD8iJr8 z950UMWZF<_xz5BfX5#BKpMIn_I)gfO&W8E>Dp4Z2c03S*wxh#xd346gFjG6wm*Scb zFb|G@LXfEVIgby=rmK`B@{5*WxMNM3qp+P+*{7_<0~3Lfbu)r;B{X)&=@_XR7N*xf z8Ai_ZC~_>WT-+z@Th}}GEXrv`9#{8Ck;-+3*qMQmBi-L@p))ob;DzpfO#N`{(W=Ytpuw0D0W5hfjMK@CLGHEC{E@HC*edG)PRD%j z>BdC<*Dxkui3^q7#8!pGEwy0>je=T^_42#@=$Mg~>MsVsNH9W;^**OglZ%23!I$BgjqGnIx`0l_-1OYSX0EVTpq%~`)C)OF_JlTM zdQ1Dcx6qdUl3r8Pet>kiD=DyJp|BQH=^!0_&NCc;i)j4$yfSsEnHF;^*WM$9Cc+K#`;V;+K6Wg0iO`-%^gsN zZKLnJx}vpnGG{iAg4CT9yIWJ$T}s5FT{u|-Q@(trA-o0GHYh@gD~#1ew9fcsFI8_kg!L!iLL zbr=MNQ4~vw_}>#oBUU05j#R|vOXSi&9U}cP`G?@Iji1*hM|W0z@bUI^A?2n9Ui$|3kIRkB z##rX|bS9wp#(Qg}e6YCA)TbIeBzV%plU+4LArW7BY?(Fx>US}&J2Gkgb^opHK_ln} zB$@$$oDE*`iw-qZ0^Ld#eNP$W40-gh4w&(6E6H}lFAXA8!iaX*BbLuS4N$}+gM z6D={T3e{y_$o*YW+iRt{PL`WRSo#u`Wro5b-qUIV1hMt3G-Ps}dT^v`{~HS&Aijsu z1YD{UP#}O^e|r+obXgkmle%u%?Yu~}==Zx%gp91;Q#!E6s;pXa55mfLZ-3-R<7`Qy zvrcFx@EeH*I9+t@mX?_QT}f=6w~24fpPhdCp+uw6x_?j+KDt-g)Ly`js>Z^FHbX#jN>$_14TT z)qpDcaK|jtR(u<^r9ImH2FIVRn_NEyBi1H0`Z6e^@WdndSet1C!J3-zxh=Jrw-GhD z-)yhLDNnb{5)mEju+gI;Hh$B!# zE`6~F(?HhjItH7ZWuoGE`*9+e-{Y?J$nEdfaQZ!&`(3v9<=+hQv08fILON!faPC<=M&_Ay1 zI*15dju!gLd_jN{TsyDau?Ms#xnE}^e-5$Y(Sfy5iiyQoHBJ&Z4T}tnhPng)M9ao` z^-Z8kW6z0Pcqt{mBmN=;ds#d-_UQ-JBru0ro}Wqp%@qJPe{+zLG?FYP-ciNpB;?$uc_7&(I?RCP4ktO6L}z^hkGFAW9**q^VDRpCo(kEj9+7dlM;RMHm{ z)x~WQ0E@Va4p%8G{c0;AD~0nVq{Q74Fg9^byPO~W7~VExfhL1k;7Sji>rZQuix4UoYU>~f|0gPI<$lPN_pq77Qhaw53|K_Vt$IMA zvEd4=gAxeXZ!p{`O7SF_HS?GLV(WUqro`LA1=s8%S2J_T_913`P5O z)ym^iyV_C(A~zz$SCjJXKMnpOCa#k=`>pT|Rg>epTe2GiG|F3?xz#*qh077Tlx6s5 zo;r2Nh|}3hWgYb~K=Ckl;Hnca=TJGm=*lmwJnAuL2*;rGrNsP!Ti3#Y%1Jr+V=RU& zxZ-Ue_Na9lzP9--%uW(dpn_~yyjqRgn6x`@w{}O4pt3mf;*(~p`Vz+7?^rY%#b3_T@D5DkU%B$i~sTBkaMY{|W7b`?+6&@rWVQ zw{axUSVj|*!E8A4vLO4d!Svn1?JV^5&gE(pa*&Dje|{bN2|8b7(n#4vKV>YFvbLTX_w&fbhO zZ|=(}^@#g&w!ei-<8~V9uhUs{j>mQ3Gl^^NAk&1Gc2+Vkol85?&?Lo0{ISEdD1sU( zlLdGJ?0&tvuu_jSVqzMRMBYJw){WPB&kTP45kcQkrE&}JDC}LUkp6$>rETW%me`!v zGVd?-@%ZAPNnxXj;Z}&sBN`DuTw1TPcW0rdWMHYIt21D_n6`MBu(T`|D$gL1t^`R1 z!82`Y>UGwUDbT{&vP)c%GvxrU!eQ!Y?&(l2+y`oatsTzOCa?hU)oJ#vQ?az9mNAv_ z8&A=K11|N6{BlW;0_@_O)a3Km;@d@TmB(hQZ6=jX6rLr7pGi1puXKu0I0nG00=fXV zmLYkm#6xFRB9hC2ENuLu|NB>GMekJzPionvx_q1cvKLA7>g&D3hPBC;i-R%rUo3M$ z;c4fjHCXtC2&LlzQG#xqZV0v0e~!TIqv;Jyf?!V0o6hng`?_T+8h?HfD0wZUZl$*^ zpzx)lYMpRDX?|S8-Z|4)og%l+KeFn%s}bCGXYvPis z&?_k<^=@6YL2D5^U4~>k8pSG z9#(xZ=j+)F*qD4-TT=q2y@*2e`73v6x7Yz|67?DAhG+B8d#XENL~a)FMY!WMA#Kx- zXDDQdj;^jn(N2H$hy~}qDXGLqyD2k}rzZSILGKP65TKlri{tl) za2SG6gw1{V+Zqf|i$~Ag(&O=LW*_%s>j6*aY#iz-gYGwa@5DILD^IVz_U3cZ4|F%sf0U0&l8aW(Y`d%&C*nuuJjyh-cpC?r`7XXI< zV`kFXPfsOaafMay-4XwXfR$OHy|?6uP}QJN6hc#HXJoHo)1BMSkyGKrubl0no62p)hP)TCfY6rh2cUyui$#v9-$PExmjy6E32-oJK6l|L zWe$BCbNN3a9j#MfC?O#5$RtIDm76||YW-Q4%=m5qlpb|CN34t1x9iK`|x}@vmdNZ8h!ZgdMQSa1P9x zfZGF(+zS>^Q!$l`N8>N_rlF#>R@S27$x^qtf2OBg^x-oBvziNIzF1#0 zy772$?Eyckz9A$+9nZGtMQ*xKt3jF?l&sy~H?BhpI3VlxoZou+ zJahLf=AW-Gc;_a@k%Qb?+q*0wEQv-*WJ~WgO9kG z!}0bXD*!RH9gC}@Las7QbAD!m5qwjp+>bg9X?73FP?u?se}J4?v&U(G^0A8@;u01U z42g3+nW_-0-o-+^eFa%uV*N_!B0-xJhWC;3%k zjvQ55xD>Y?e|ABItS`{XN$AXc?MuL){3c>Q;x}&%idK=W8cDrl_h{*t@-dnK*m>x4 z-ac0bz>%k`ErjlxJbS8;4?8{{46ISLRT$4GtzU4K#zPs)0EMA}M|*m^E-$MA!rBr+ z%0pl;HcTeW2o%@gX^U{*`ub}}EFqF;KaRGFU^F+Nz>4X;ZxTBOqF2ND^Z@N1&;()7 z^7w9xfM2jAcdRG5b=5Ji3SXLgUS;W}jM1doVqQcAXRC0Ia6ut8EfK_3;E>-tX+VEqG0WQ-Q{Hz#$&0 z_tG~_t_L6T|HA858;-z4af-4qccndx1g~_QuC{fFyyeD)NW_9BE^$l2s8J&li(b$I zAsD_XxE?xxlIEvavkLNVP{BWff?B+*Xgza;D2kmw_)qrumKH8Gj{`ken_84e0^{+IOw-)7MoR9XIb88S zS`Q6Efl?Cb*h8i|4v@_%MN91=m+1)~(xzpjCgjCcN{)$=-YT*j;hW|3#VQ{tbOWzl zE?zY&NBq07mTKh1OF@N%q^`0N01~|kE@Q`Ba}Gm0ZS%t;M5wXeg_lLOK{<7fA(G`( zCX%yLr>mxDM7;rma-v<;!Lo9v5Wj!|>sN^5H!~b&mxImC2!`Tn`O)!`t#L}> zz8zu6!7Tr8A`;WdXf2Lpvh=uASw zW!4X{0tD_LuG0uBtOY@K%Iyhd^vN1^6-IoYTGtRoYyM?NV}>mI4cD}(+%$JW%)7Mn zYrT&|zCq%ZB)o!hetY!;jLy3z#-R8Yyz1IdvH)Ne9s4|^wFWXZN+`{)gGR6{nAb`* z0WfteH_Lij=~#B4DaRK1+5rJO8yj@ge?bW#uZDXusQXX8V_y4cKqDtG^C>MA3Lo=W zG@Gds0{ZjRjY_BUC^Lk+-*{)WA6^@TWbk25;$B_)ERcD0km2LWoD=#7U%04ogOg(f zJZ#q$o1=_F`9Tb5F9ib>HQryke)GdhwW@srI)h;Md*Q1Ix8d%+*i%=u$_6JYmB-i| z?@txx*Q&+5|Fp8Xvd9O4_TLrg8~1Cy5)XW{G#Jg#c{)H3YmziBUte2|4figc--(x! zar68#QRNihL$m2ig0y?2^Q|0m#3(p5BZvSii@5S7k@>PA$}~qV>H)T_eHsXDvrK&1 z{xwGIBCx6X`sTb3DsIo88tBkF_!1d421DF#e6BG|DSP^&cUosir$@7 z(5U0lk!}^!Snw zp?Tf2Qb^P1=jo0_ z`uGtUMrdL!xO$dz6cs0H|Dj^R#O8aUJ2wNTmFiG9v@qKxu=DXl7l28OrpXB4xZSUH zI6y)wfS$;KJS|nPF3{jWOZLgydbx^Yaq$u&UfA2(nw%eK61&~SC%WyRuA;)M#V2wj zZridbzdR$nxFWvF;u@utR4HB4fZtItTOwdH?+$p}AGj}vv^_1BVXuik`>8Fqi1|Ny zf`ecTI~ON+vZ7Yu6P)=qbP#iWk>Yxl-&cPcCGLKh_~PC7fG_!+aV8#CM!H+DaP zm~`s$Fed7Xy!xVuLVU$x>8GbT0|GL(3x3X5AUmQdeDyK$*ifw=`k0n|H}l2)=T6?r zY>aJ0czBl)#D5z&y*FK4Pv0d1Q=qYa?9==o;x z(&NKnQ*+u z#4n^kYnC`tK`HN5A7IJ|v&vlU&_7B6%689W9D3HSzR#Vb&%a6zBu_G!69KFxpos|3 zV%C=9e{(I}H^(knDRCK|r@%`gbiXU1!})$>YC_@#SxN^q2BBi`^4Y)F<<*B3=~LJ$7{yJ_Jb)y;iQx~?K9it8P$(hCl?(a8c0?sS}VJ+KXKrt z93SCk#mvl1b9S&nYyR}{mY_s4*gtdu{?yD&y|!(KzZ~6F{}a%t$o*%OpMR*SprGv) ziAPg__(mI%fY1wn&nj;_+_oT9qO%(W@J#p~**=SQI%dpJt2gESvwCaY~2yh20 zV*H%bVyVB`&AIw^g-yi!pVZfLl9TbE1x%;E{Qkh4E3tS~S7+m1I_Z~`-vJq4N}0h; zBo07bX&KIFMEH$n?jNy1)MJtl?t}ea3I;T%q#yBPA7(H&|E;dHa2u=a*g^ao(;k_U z8L4%~#&UwD96U?#OKuoUS`e#mE=^RdXohUuj!sJO%Ql2cHcYY3m3ZgRKvyx$ch!1I zl%JlSUS|&B>(D-CI?5fniQKk($7h;RzRNS_c2;sx+YGWbPX!w}T}(#B5+1+cy$3;( zQN;-u5x=C5RVl?As5E^S&Zr~(zTWwpw8p=-u#obKUch?cNt7(xAy6B!MLnG#{Hfu( zd>~%hoBoMgY<&}&Q-b{vt#HD7?{b0=M!vwv3tQIE)8li-j z0;K~P7)o@m`6xbHPEu{x`p9}7_P)nJh0jefuZ~n+*^#}3ih#?+#8zp^#pya*Z(lc= z=$&EZmY`Owj39;W@>kuanCA24AC$GFF7J%U=QF(>jf^gKT+qB6&n(X#*W`{2kUFV9 zu}{tDMswrdICVKcex$5c9;nzCvv}@Iq%vPe51mA!P>= z9po!6!GI(E?{Z_$e+-kF&RrKQBV+w%TDSQw9%rMWBvHhwlQL}fs%U}M8w}!|^>Dj) zdxj92KcnlCu}Iael?*bq~eAamlf=U{nRFrZ0& z?L%KICadOYjX5dAIwtOmg=M+81@JBYOxxt;gNUAxx~^(rm_&LCp$#!7JNr$=)Xq+V zgwAQl`9&314LYzoWCudR^hw1XF>9(u4>e|8eI!pvgC5fl>=@>gACTjF4s>)Xf0E~Y zIWA(RyKc9<2jMqMbbr_s_{{9JysH2<+h^p6%3Twh+qy+HZReaW^$ z(*ZGl@M$8)XBegkYt-Ef6}f<(AI@_4WO1cCZ2=AS<^Fl~rOJ#E~^iUnTI z_u+LPW2uc_=8n3=UOzmFOD_svJ95|xF4UXS-oK}*dp>?1w=63wo0k1%%!E{rCLWct zGCe)rWwCkgdb5Q6z8RW7vz8wx%$)jFB%sy?FQcPPHZtyO27dLw#lGK0H9oqJv|dV* zAkxnj7cpHouMwvL{Yk6HT`|?`or|5JfXy@5I9c|{J{`UZA}aSLNpZLRhBujvUbuT1-sG|%Q&*#>)9b~P!anvEv6 zTmm)6JkZJzr*ZA|3ki5=8^S`Pu9xH6kj zdzF~7O2#9Z;^k0f)Yx3p?T?I8>&G^XknYLYOcYP}Fg>t}-ur^W!iY`|>~CwW)82w zBU(O{!lpY7EY7Is=Q$0u`@$GN9rwTi##5(?%z7`HZ{Nya>{FYPv8JYF@V1o+w#u+l zlXD?H z1hSKttSz(J$-I=UZjze1ctH^YlMK@ElBSC&=z@wVAQ?i5xF7Bh9cTLApLfom=e+NE zzUO)0^W%KqVU;mx8`GbF^CntuZ1Dy}=N}k_i?V=*!sYf_HJgx7yQ~CfeDdi-elq8y zUkE_m*6_5$1)xBqn`tYBk*j95-fTWiMzb_2ChfiUvST&`H}#R#Kr5lyIRE%PR^>6X zl-@+n$D_j#~qq((pb+OEE=TVDq81Oe}!L61rpizv9+xO z9wvRnpf(U#7*!|f?>G1J?gu5;`hF52@q*3AH2#?#WrzU_+*psk$(F3XUD!wI_il-(Cc~oF6H}+gW z2!SeKRbx55oia<{&C7Oxtjxw8lTEq#HCKQ0N|^Cgbf1hcz$K!>~iTNbW>c%!F9HB@?mGvK#Rd9c>xPabl!r;lVS=Ad7|{RvJk|`(52-btNSi zRt*o|*ou4ifIcDBlur6bTy1XzIydmn@#9pMHST-r$xg-wG$^yV<51Jp?kb(4$_fep zx!_sG!DwH?#kbpVYij74nXk@RmuOde73MHIq99a)=fRee#p7z5Ujr3sh7nPmfCW|20bmza+4=| zV`8)o-m~d0r{cl(_O%nF$Q?2tECz!|phu>L!zTm-lsFH5!R>*bQmzq;crx+d+&^p` zbr>D3fn@cFv-8WxA^s`^=EDdzfu~sgr&ubjEH9r|{WCsD)$5}-MhvTIxtH`)H$8^g z?v3gr7PjW?5AT`|XhYJfEmisvL_0=o)S74QU>Y^+6@rQURR?gFaXXe#VK`cyN`EWq zab(awikME>-Zs@^m7CQf3TFC=2ddr>l>M2QkpbG4$Kd`8-EVM2^Nc$(GgH=`TxgVY z_U_{DTeq@YBw9z*8`p_B9uSuN@Vfe7%btRL^u1H0hVo`z_JrSRN9A zz|5!IK?aY|8t%reS27c@7CYFEe9)VRR8y%!urQ9n>M{zYg>oGp zh(z`|_r(^JKDV>C-w8vlAF$%{(1}34;B{c5vAMnLSuCId{D2+~C!)1(20Qb#0X*>1 z0G0v*`9A=nA&|we2w8?(0$BhrLKdzTaoqy<@ars*>NjcZ-04fc&|dk}d%O;qmn! zm<0F*fyTrV5U>zDSCZF%XStIXmp%z=P!@mA@>?PF>T1wU5)#TW|5Z}8&y~Y0MPqMM z@RVh}sb+w8r?XnO;&^+m#U0~jP8CW3Vj&;|-+r;g7%tm{caZ+ie<4dB3BrdV|9hwj zA&@WV`QS}R^q<#53x!Fpzkv`C(NaNBkDjtw{O?7UjrjlkOcmM#0#O~4#;Y;>??ter z4Z(lEeo9CPf)cTh5nq1~j2Aw9_y3>fzr6VWHq%NU?N3>SEF7P&7lbg$VY;C0c>Eb= zG5G3uTuU74jXy*PBwgW;M&#szTUk)TgrH7)EJ_RvVae&q5U_Hy>JEnfGd3T|muZ&? zx%_vEt?OpnrH62T&m{DF=_Ow%3QX2aT+U2H)v5_`^NE3@f0&tje!n`M za~FrN!dXzUz!0(0Ckg~aT%bReQ)MTdf*~hccN$O7QO2#oAn5CraUXE}OGu+Z1F~CeBQN#H8>c7)PX18b_5G+4Ik zd?6jMS~`=#NCMCh__5>A#n~Qm&{-#Wey{uL^5RVTfNvI(=LHbI4io5n-$MtY0~rb5 z$R!pb?%$yd)j4iQPrzBU!wJGI!=Km!9I*qb$3jEC`?Q`K{X7MhKf@PZ*d zsi8!_n~Fo(;QE;xvS(pjE{7Y+=;pn)5h&cK!k z^369gMBo4!^aO|y%t5nZf*P?~ovX#+dL;vvUoD;L5rJ{sY;J(@GNsn`ZvQ+V*lrEH zAa;QswcrSHhZf7M&_GZF%@6sadyYW?w8uP;%6HyhJQIiFew%f^2M754(FYTP`)KMt z;Ru;ptU63025vVAx6kGAsj=JIRY2LO5}x$~W7s_RUh=k?r?pW3vOylor85<57t zxL?zn@1r@2H9Z=>v>8-us(Y-&xSpreZ}URk-<2^1_p0f zZNK(PJ{_>ETYS5~23OMjq&_x2z#pz6Ry6V3xaoM0sY++vmuYK7u)C(-M=_80bdFu=bq=*1~s3^8+MvhWW|4sidTZ)pbA-4sY{ z;krtK#+y4VEqBb)R!?iq!shCx%ItC)oo=oUX#l=!3U+*(=sT_2FS@Ctc%yYVwy$|d zd28x-w7uU$2&!F}lsudO^nehZMKEb%a^=NZVFrrX%oljnKlC$#$57Z+6md3#>K3tG_Z6Q^*~&igKy+^pN6Yswd} zDv>4hkTG+ahp}#~%qFHQzH%b!0-xni{Zjmq`Gr}J682m&x=_nnt&K2j2E08&Ii+cS zvo79uhyBEhb}1h1K5JG0C}4qvs6wFzktaC8NH@J=L~Ae<>7 z_C70$nefrs(%~t{w zFY6bsFdpLq;;s`c&#VT1(fRp5(}sWuK{7-%Es#PE!j{?&pO1URLmFs|^GtRTwkM6T z7FrUxt5YXjUr4zM7^u~0T_I3D)pXnUGhugayxOZ${OpCAAFNhzSp(Q@4ec+QU>ER4 z(^Di$<+hr$>ra!!yC<#|D^1PlV&^U#_3^ojdXgktVOFb9zQ-!{#(DfvD$@?}!;HXN zGP?k~fGH`~VjGCqKvK;j?N_}}m zKVXew@9j!X*6@tGX4bPtbu8UFlv$28P^TBHp@n6r<;4n8hqW5UbWl(Ty`TC(+HaST z>J8Zwdv*URjFftK)<}Vz+}izV%Ud7D-=Wexo3^*a%C7tYGbZgOElN#@>{#VmaN|+m z%m=B;&Ek4}In zkhUsGbG;&y@3uoPPUW3l3{B3NoT986A81Vh{$Z-*g@pz62hvx%@AEE#uqs+R;P8C) z?M=K)T(N*Z>M;WJ{~A?cNo{ChdyceK`90OKGhLwOQ}((cRJUbEPq@wXc{@`2# za0}0vEC?@&&ZimriyoT%{t-59(E{c?Rw0nzL$WoM-3?35MC4T!R_R*TQm}4JA!jwh z8R65mBlyW9$txdR>Qf@XP=RMSBW zZoiq*LZzjpb75Kc6G@FZG9_kLSp-6rEE?S~@z8>*&WNc{L4q)IfF6E{d~7zvL1kWH z=wW$#dwXqG0;;ttKaE`wb82PHFWzyn;ofB*NIG%9*SG1bGyqYgZJf$AA=un(^1X35 zY>~NI%tGS$i_j1Ls`ivuT!uq>l5WkQWZg$+3M@*1p>@$z?Rk`I6wz}_+hMQ4;JhmJ z)2CNlVo3K}iezUY>d<+zFk!%_FtT3C(h*|X;An|Et#q{g<_(QXZF8s>?Gj2Lg?aWyB_k}eqb~V?_DxkxBPl6M&lnDe= zV8(oi!`cPlLpi>_Af%=h+{r;!)Cf8^al4uvEEaDZJ`iM31VQ^hiWn78AH%odZ`^}! z7NmMN4}3UJi7KDo)Q<44&8*t|TKg|{q2vje15l_>Z#}%+K|%6boc5+4{F&K%GG494 zW>y&)eL^40M;TUY0{(pl_x{WRJ9R5!uDxDExtV)Sek@F*5TGWWhFqRmAm?PWD{Uig)kkO ztSuHE6;+&2t$lOSzu?YlXsBt&Ulw6+Z)bU2qXjIWz_-ZYCMalb!m>NqHN9Vht@6Eo z&_#b;?P!$?)LbZAdrh!Ydme)krg%d2^8lvrKyLtH$s!2PkB`4;O0$m~=4+{Nr04Uy zyxcH2nVJ0(()UsHETFi0qV_|8Od%KeAK*#tIc_WWv{1O-$qVwnXZk`gLw=gg$llmg zU~DQ)1-$a+wj#u=TNa8tF6pG-)rF%u3$yVT{2G42ye{xLsAc%{I$R(Tvcu5a zYUsfLIs}}W|NOg3A;Op(yY;}2?UGV*o?o5w%zmkuC!5yrM<<5W7+k5JP~C1xXmJ#`%xaDqBu8}LXQ2o02*cpI=MicLb%LwxwBXqN(_2OWEmnh@h zg^N>>;E(rb~p8S3~)G}Pd!u4fC(_)1JdEDG$9_CZAnig@-6eD1=?qqvL zb-Ro~lT&bvELSQ>bw!8SpVB=4YSKk9qz(w3>V!)`ibO>--Y@k7H~N~G`pv;mOH#!q zIs*yj?i;m&HJr>b?;hX(jed5o!1PwiO;Qj0=~4i8=s9?}dk|4lQp)AJ=iUGKU^X9( zef_}C&#(Wy)?6Mr0|(7RYfJXi%B4K4W_*uj5&;M`5YzsIYTs53AtTM6>RMwYXy0yn zPME&3`rI)s?Zd^^1mXh?)AOZ3Q!e%2-#b?UcC9k%DS`+wU&{k{RYMi$#sg$OydR%r zBl*>Draoh}@9HQ(lMk4mOox{c{^#)7GdYLr==tA) zI$XhdAMSRM+EzD@*mN@5=$GS>pWroO_7Cwym*@R;QsEa&@~PliLPGV=f=g>WEwcEH z`6n7JS0KxLy?LB~%y5?L+R+eNJvAP-{Edo}cb^+Sef!LU&#^TVQ~i~`O{8?V@1$Jb z4R7XC(mH5R<}0%i`CDybwRbr@6p$ui`fM7o>*U}sl6A83`>(kaeOpTvQ5~L-mIFR^ z1Z+ksV5s58P@@Xlh^n2nb1}fGi_KS@_y*>l|E1~r!*O|+?=w`2;3tLADYo!rEt$m> zT^-QW^ht;|smAJC?M$2HCCmu<6F&{}w2}g>gVd?U+C+Hd52jrl{Z~Psq=W{Cazsep z+x=ly03qEl#x~m`URTvT^@Y#$*$bz>OM^NEQ0%4R{jTC4>)R=hXM)zn{7hC(efr&= zj|)wTt(d-*nzjH4fz-j~~Y>-1KuJn>`j{ImEk^G1bb&9*Uh($BxvUN$o5 z7R=!n+Wl5v=^j1>`1V>;R7FwrLOay-XaDZ$rQ1T9o7P(wN{hFsu0(3KS&xLF#@c<9)wGml>{dJHr-qk`%*QyXiqlZ*!y%?$e z0<(&8Y2#kc&>(-F=-&Ty&ZockF}gRy;A77-4YEWt`f%CWoi<0f-Qes?T2JoM+JtCH zu}_(_3zlwwVRS7hkIsw5tuKlK@U~-2*Phl-L}+2geW~J%_`)Q&-XA-1*$Erb>T>Ev z#bJ~ES$*bs)-27eusO*nHgB%5x)y%$uzzjprC(sA-6l97>#MM01sHeR&;@l9PJ1Vp zHapF%t;e3$D=Y4ekS&QTVg`=Y+0u=r^_A(?3T<3a-5We3#pQ^*Hyn;-d?oq8 zVUu&{6#ON@d)7bvc&$j5T#}>B@zlioT}@Qmjw6j_3r42Y4f*p7yGs+;S>n=Zt^^-I znIAEMpfB1318bPs@Zg(y%M)|*dS_c4UUu1VC$nZT-@bxh z@3Z9xz2e2Q#ajGp6&csj99PW*G&2Y)5_iX;E@Ix+8^O0|`UWt?2wvU{+Q1R7Uk~M4 zm>Kx{>vK5Uv)muAzI9n^aTOEKc)@>aGIgW5e@7!JA;RzTZul-tMCIybDkHUXdTe2x zh>Gj9tDLTRV&3g|wM+6`QqEuJ|#ZLE=M zl2Q^F$o{n_kXD=#jlV6o{^PkF0FA)ROa_eLO)mZhS^!dSv1l<#zjC?2tWv~G73Y-?Wl=B- z=4D?qyVt`oG|?b4vG9nHA)1C(+A(dVNQ#4lo>2yV=XL2Fs6Z3dzCdlkCFcgyS(ZfPDdMR=KWZ| z<|q#(rPGky7g`WCB7A*MZqC($UkzDfk>S!r>-Xs2Z~~KO8FRBTROhr6znicl_6*;G zTb)1Tyil200f5#(W0px=;Ik+}x>WH`nTS^$DT4Q57_xhucZXuS;yN&&P{w}I^fP*& z`_ceo!DA9QHN^yyp*xWopM5oCy7BG%(<*H2N^+r>JOR-aFdhRFd7xm;jwfZ_FrW>> zQUXWB*V&u;n8-n@B7N|@8yNSkxaU!MbAziRQb(fh%szXBe&hT0{3Vce-3tGYSB zpRUSP_m+X5CN(>5b*8nNRyaMxgZ<9Tv}P|ejiJ+T_8QS+hJXVVkR=NGR_QR8qSGWh z0&(>VA#W6xYWboWt7n#^Rdrn5+08vBzmu&=BOB%A{^Mjxnc7 z>X!rAqVx(GCfu$B5efLANWvuTAaxR9Oc)&v{%$WNXVO95xinEru~_NThn;nzvszT< zhZrd$OBVJUp5|P@i%;%G4&GLOW=E`{=O#!MCGmW-H%9J znESPsOr3wyTV`%%8ZQ~~m7zG=$?YzE;Q;sT4Q(1wK9F-`q?V&fCeWB~?#lnvf;+)Z zVYFUL(Ht?_TNd3Vj53i7V|+QSu_vkpVF3~?`6F&wk1X=Hptm$Iy?4Tw?KY}n;JDp6 z(fT2X;I2bWF8Bws^ch$La7W^ba>4ywJNCoM0d%V}D?{e!+qPZzF=HozPu25Jac|10 ziCz=MtM3Z*aPj>f8hUyI!@5SXgHv&)t{Ut=PjwE8#de8dcVxJfQ^d2dDJwNwjV)5uAUiVcG#{}WTD3}~=Tux$ zy{3&VrzeoeWKS-=xC?}SvG2}UOkwK7%i1jf=% zGvfnD*On<8m0b@AA!jcD;pMtJ#m7NMu>N5P=F45yA9|mtljAJH+$Gk#wW2;7`+>uGqSC`z z_tgOK&cdq|+S78V*pt_1)Wzi#+S3LQ>*LxTG$P7l1ZoH6Rq+z045Y4VY*M|78oq0s z9%_!IIl{{eA&9uAJt!==!5N=f>sfnl=l!myBZL)Cik=B{|2w=pIZR9lP6f0v!(Nj- zkLs0_sfA*_at*(`)BEd6n{jw(O5etJgJ=S4%V^=s2xWjG(n}7n)>SCgd=zUu4TSmma9+QuHX8oaS6W}lz;1fYXazglQj6pEevk?MxMs!xFUkry_ z;m^d<^msrl`w;*?LNkFf#o~|nZv5%o3ub;GhYifs*-7pYMo9R1j-17gt{3M|BEl2~ zVFi?fwVuu_qsJ1pdJEkq38ckIf-%=z7fj);?>Lv3D1K4tAM%!f#~dMLFHL>@!9K_=KIj; zFvDsN>~1K299(&lBXVK%-J?v5y!o%-LyK-}hd*&GncW!Rw_j%Gay>AouUwlop> zjJyOg`Q1lrl$6ju@*C{Z+p*d8BB%60L{2ga?ldZek=7FgX7qH+5$qvij-{tqcs3y zu90Ky;da4OQX?mPev$#3|26?AHzY7?`DsD|$3&$b6$B2b;H<`}PA*-Q$SweZK67U` z&3q2IK&8Eja=uNJTO%8l=V03n>~XNGB7&a=wVf+c&%kOJY+mc<>bmk6J-Afib_-xF zom~lSAkon9z(d;Dpedc|!J8w1*?A#XFN=FfTbEjkEub ze3;}5MoKGW*k19c-8~xt^3w(VDaR`wJGp$$w?V3*GmR7klXj1 zu~|#+T-1PHlkJK}WdUot!lo4ZMkGGr&NYTH_WvmBNrGdG8s092wQQ;x@`HzfvS-0$ z1KDXDuLs#ZnIeR`($VS8T*RZ+J480uD5-&=Mh0Mtu=FtaZP$M?c0z!-y}^#2J_4K_ ziPCLC&cfe)u)DhR!uNm&B5|XOEWna`zjE$h>~&+hg7E?4ty+Z%*xABo64DNFt5Cyu8?BCit3{ zASg@=yu;tzPo4^Z|;>(~B460GXJ2NXOl{tz8{yw-LY!nV5R0 zT733Eo_Qg>=}HQibD_5|LXeyPNZU|e3A!LCqBuf*%vi0)%mi3!X9|$379z_4adP?l zdo*()>y~q3F=If&e?$oYYmy|M{qw(d|6F|ke&ci3#^0=(IWW$J-lA1*2sI@bJeYmX zn3i0Qm7qc8j;`#<0BjFzAaR8QnbhtG_sr-J{K-_#X?9t4R)G(NjvRX*MitnRq*t7? zca;g`lfH>;znC>GWo(3%rL}Twnd)5uMg8E%`B?#^%c+hp0B6gk?vDiaABke9YcM8u<6X*dhGWEbU*fQW z&HI;QulZ}x=OeR2m?>aNz;-(Z0%50(X`Weap*Z5t(=UP7%vn61u{?b8Sk0{@ICV|w z{JKWIGp*MMsOrL9hoWVb{7KxhNYiOu1}#6h36P~07{N&nuq#MydTzDaO`|$Xa+w_R znlhfP&Z)bhY(Gj+`~agYvLjVi0YUOApY*pYHQ5HtzB?f40Yr)AXOb%)O#f3fOLhb% zgJyfC_O#FiNO~H;F)dR+HAuOk>x;p_82H(!bWW;gl6*WxcijNz^-9ndI<9)f*V5$m zBI&`y-M9ezbT{dDkNN+X;|$=Snl+rTF>@T(BYOEK@2|#PRjNR%&8pH|;sGn@@Jz@@bQO4!{Rix)e+$CmeH=Dfxh(#|*(xVmDNb?nxi&MuW{ zg2xmXTb!n2e+qK~0 zJXKM2)j=8D@cwEIGqg3nNgj?YU-u_++!s{?E=}I|k)`jfv)r zKx~^_U~NAJijdx0>~tQb+luI62P|sXQ)$47;JKR2M^2Q>-QQz|VdUz6InkcI18!NL z{N%sY1|P$^cCiAxr@uqgqxJwC(LuUNK)rh@_?8}=A?(SqogLQhT|;BP(@%jM6h#>J z%!#E{?WVO$D$g4vdLdfq&$MZZflf6FsEEt(yQQqIYf%Nz#~UgZmR(f`QM)*rH}Gji z=T$*RZG$LTLFbd&48DGurVhRLem{)ftI`81Ct$Zf(}v)7mNOL*r{cGDc>tdly`Lc^ zYs*!WLG)#rT zO~A-@XXTOfs$zen$<$k|$Neme9 ziuuhsZ$1P%&FF@i0D{ncu4EuUO>;E%EuB_#oo&@36*_dbG(=V;LF>`@e%}Cj6atZ! z6_QB)j)X`M(2=|9^W&U^HH}W_pFV+fci|y5b?kyI#sV!4?y;>>uczXEp2j|p9p75* z52v=R24u+U`>@_=N`%l=R&!te5h~bua@IL^eA@MGwjdrXWpHYF1m6Ps)3^#BQTEOS;~Tx z-$UQ1(AeoB=$h~c_{zh8*P|GXBwDf@JrYnNAg%F9j$pNklbO00G_FWi%43MeI|l5v zb9cWp)i{ulSE3~Sj=GY5xV_U{D>IQ1z#k*h!yrG{`hjdvId5pn90(E+nhHk+jN zR5c4Ete(x$qp;3bOt4o05{XG~_-5}ZzY^Hs{M?gtk8P^iuDxhuv-~B+aE^r`3<9U(P<;FB? zQ`_sh^E-2mOi{HIFeO^{V?I)Ua*9qaZJ4qRoGKu$Q=9IFQ}Gwbv_S)=nY@v!6anOz6OvFOv961YuW&R|^WZG}P^5 zXeDTiD@b>#Iqg zoW03Jb2MuA)xMpO?q;FwE%R+d_EgXRQ}V~>g=)11Ec$ID3f%BSG=~JoOh)w&(WX38 z)zWmmwVg)|jdttT9mf|a#v8N%9YH5sZf7+)X6`y<%EL*i(rYe;ve_B0!|NC=fSzFC zW5ReP+V7yI(#jRN7NfdG6smg0Q$~tot=MHHMMji|Qn_B3XMKv`zX>xN2coX5T%T82 z#D&Qy)7=})7DLV6Y?M*%R&bY|>UnDp-5*1Mb<3)0hhR>7-*$3+npw}xaO9mrs?vLr zw%V;8zWU4W&(LJ}5_Cai<O_R1htDoj0?DFypu4TOx|u6W0QLyW<)k&%b^J7nQg{S}fLd-# zChhBHQhOd^>t4-fHN?@n1E>6J_Klu9+!=g)9Sn_$Avj_}AX%E{A^0Fn`&;Uw-FjCB z1)|2L3%@O7=l)=xKq~IlRJFPDs&yX_#+Crsb3E%niJi!lCtVE}UKXIiLF*aW?SJ%x zgIay#-yReDzkUVZ@i^lR-OxgppVb|s8F5Z!09My}{lj01RS?K`c{Pcf5ZcLDbiENb z)F5IN+}nAYeU}xOLxYOO8%SI%0YMc0o?N~d2MZyJ*PI#O0+RN=8(jq(II*^3$?f-* ztjXfBUKAhS`K4HN>8!#OK+!fuMBL}%7b6ko&VRD6IrTdusj`ft=QdQm@pO(G*(LgYBI#;oTWW%gG<<$a zhD7U}=yxqwGPN*#AKD>;NP7nBc%yZ4F_hnsF&h`y`K7r$&<+S8hR{1D?zp0XmUVD5_QlKZ^ZhpJ@UNwr&c1*F{4$Y!3#8Q%@J!{<~&4oROxy7%X zbXY(XfTrE15+5N9ycFoK)gW1@H(V@(L>9&cS7gtQE{uY=cz}#k6Yg*vue?Gf<#PpZKUc%WA>l&acA6x?) z%oAMM0}eI(r-GoUt!+aw{TOcW>rpJDcqCCs4x7+Uq#{3Xr2u7(U~>{ zE;S=7GoaO;f+$d6vdaipgKAyf0+_Uz#1{+u^Y~p=MmhE_LDw5$`$lgbL8FVrhKl~C zt8FH{n)<}T`t~IXv#N|DOJ1fp#^9#>z_;b!!XwrLhFurD=fp+rto?$2B1)2^p4X?h zIP#NCACt(p{GRsVW)-ixmnS5(Q}n6mjqt7HBMU<}-!y37SJ3@OySvec4rO7j8w19! z6Ww3se#}9SIdPCIJPqpZXk3@9s>EH-fIH>L`YLlr#jv}_xGtH6N z2eIQoy711k$~}GC>%Lj6Ketift@kx?~DajTyx2^msMAFkALt{Qk^G97-s>9h|1#B!-ONX6e zeSUOStL$rw0`MU7h*4d%{12S+%dE619E@|I*Knv4coLMp^ISH}M*&I~na{pf#83>< z^Y(Y9h~t-1D5fCYST(fdBgLg5YSOCW=Nm*~-p*OqHAULv0V#W~s^Xv`F`MoGQ@Sg) zo}cmMV`gY==<1vI_g@?55z{83ZqB~bgmmBVtQ+{DpL^g9zYEilM`O zKXFd)X5VNu_8g}~YBMu21#ir_$SrZZ?VAfS^yM}pRqq-$cFZUAwE5oWT)Ni+7v5|< zbxN;U5WLV>u5CV_hDfDDht+7Mj%F!*xlXQ!1i^KeV}1N zBI!VL9mGq^9NBj7ldp*YEr0AKILq$h7V4pBX<6BCAldzf{5|aNVdKaHB(L9R+;;mP z^f+aI+8+j1_vo;SY=*Exaq%$!8`kO3$ANEc*YYJLKA3zj;Dim#7se2?ZN&5hbjdVn zNv^rJtq12dBmLgSO;RfDbgtV&oBv4xox+V!6F`^HH8yt0qQ&xf?cr!)qAty(IeQVs zsfMLAhW$pdp-Vpyl!h#t?dw9;!YA+XIr4%HQ(K7CAwm3bYKc&>*?#wFK@7Z$()7r; zn-(t9eJ{EgccK*L#E;9!d~-?~V{t|a|TA@r(lhy!Mjk9@+G zGqvh!6q4J%JrSNDdBo;=Ljl@N`}JqFWr_i2G_E1dj}K-gyZ|)0zj|TS)B<|Z`--Py zbF0P*yOI6HMSv{B(`9Ml!*{Se^Qe>7To64$3psew6b4$z7?+ERNK+l??`S4W{Qk)uhYIt{n6%r}r+ zf4ICKWqyIR4_xRKrv+|*A9R(JJQuL5Dz)3XH;#K?fo=y3QCKb2jW-fe)ZQA|cM!K? z;H#2G{ksngzc4c~WZhrkuZEM9W!%EEIL+8Jk;yY7t*@G=a3JL~{GqFToWFz`YZluE z=+~Fz&IPJt5lf5thl9z6dOw{)e@fh`OjC0tscY`#xd?QAx_}m3L0Gv)@oh;-p6^vU z2gx}L96;5ny$_mCVa@d>HImfFrX}QCq{JZ=8(DqQC;E?-kJ^ti$e-FX2%0K&H1mkw ze?ZAa4emslkrmkO;4Do@&}+e})t#W{JvZAJ<(d18RR_X`+19ufc9rIFH`fQ>?%Qs* z>slt**RW+cH>F9sB~fqPdNOBaI47bZJbcI7Qg(&+ec^zIQ$R)+NYbH~0mLQ$DF=DT z*XC<)voMJp9phE1U1qwFT4v=pvS?}^7~DFEv|BIUHvW0XdnV5WcfO&D8etUeTzPzB zV#B#mRRe6cu~jC!`}0RBi9~r&-;OKKD$j<`d>@P_mE5yr25X|y&Q4!^wb(y8^NtbGKZZ$bkl3JdmI{)11)B+GGovfQMy zx?9iTe#Z=bsa=Tyd*8o*r^MuZv|9%{l)Mtj<2+&t&9p^$R~}!C|Lk=a-1Wgf+aznB zb=0sfJ~>01Evf|Ti2S?dYofn#7c)vzXP#H|i6)&fAj3-AsyMMP=+6l|64D$*HMq@{ z(H3D&7|dg(s=+JTn%q}Rvf3f3px}_U_-x{d|EE7XUhV3&B*m5z4}LUzoURlesr>BL z5>)I~7}=j;7Zmt7-&?=g`*}X8_oIgYL|5AKl<9=3*YETOMfX))1gi57wq>Of6$QlQ zM?lKw*{>Maj|}SFH*seUGdmyT5Q?uQ!2vfh^X!7mKKpInzS*iQP*qky2f$$38qEMa5Aj85&}BlKlX)GTLcEL_ezY4-QB`{`L~;=|Ul-SiQ* zjkFEy%~_=BN&h&+pgv~ro-0Y97|+!GW=rh=t=oEzkClwPI7wB#Id6(5Hg(T@?(R(Y zSi>#C=Dt02{dj=dT2+7^@rlRGi@%p1s8^N zB{z%k{52z!@noY?VgOObpc-TUI9c?IYI^uCR&IqxUW+k_>+DCZvg3aH2ZK+sWb~g| zWRZiMB1Lh{o@O^n@|j&tq~>n%Ij*Ipv2U2#Xe9)lAtR1Vg96Ph_3-oz;Y?c88G+JO z<5HscF>6?KNI~aL;{N;1a6R+HLn^S{YMCMjHY$B?nl~h~QF26aQS{GUUhbQF#>{wU z3AZ3uo2cR2GHX)FK1tz*A~r8fu-h_LaI)ob4Ry_054%+p#YbC3>C}7aazi?KtEJ3f z^8-|$i@gTWvS`DG@K_f>Fz-qi$e@VA)jq|*VW4X-y3R;2hXBfqF*iwRWAqXyjguBFIqFi z6MmnzxEK?9adFY4k~g1Fn6n(ue_K9D<)khXi%5GC-u1*2mc}768Ca$CkGJ0SsxTOJ zvg#czWbS%nWR9wJD=NV?a+T7{C2#&L72@_eBb7t=>zuQVtBr))al_Xuj-;G|{#WKdMXuerX7>;!=Kqv^QNBk$u0KEytet z+FFqg#=G{<;GA6~<}_B%wiSZ3Mq{dFXoK0t zm5UwZfo#0v`LUs}qTFjkPs+D3H4Hd~!Oq}go5c&JzsIkKfU~k zxLX8@x?nU^3^11P;HPcQ4=fxHVE(B)zh=p(j%<2ls6s>e!jgLi@zoj_FD%wUVFmVe z3uCVJvO3iL!hk(pcd z&4+WamE0^i>>W|ja}~#rdYwjg%X3VY3D2$DXAj=Vqhx|~(MikQi35J>6RTnx$b?;I zXJm<}A-?PZkRQqo-CJD{qF?VIp4x3~AkM@zd!2&YqIEW3wX!#sjfA;f&Ba4g>9TdgQBCbDoq`wtU%NRj3ELPUY2c^+eEx9+jRAip=X z$|RJ7{&k#QITBpAewoneovb;JTE1?>p$pS~YqD2+mbx z%h&BEO-cy<(4#Ya!tbC4J*jJ&`!hM1FIjSX2?5JmN z5C#$zrYRbo+7^&XnoS(4-U|=z;rAPP(e-)JqlW<=+E1-2-rLn4host5ACnRTS?u!SAPI*@AQg6&|MWV%xH7ebmnk?USdIP# z&Z8T(V5a|);IKUP! z`eDtBd`cHA+6AFx+Mjs3PQPF{{95&Q+KehG<+Ykl!JliJxmO`;z-eQa`bXMcjH5Bn zgbyWGsN_eMq{GWUar1w#mnI792Rq=+cHh+i3F1a)Irv4rilrZfbt9{zrR?kGjxblH zaARflfcMiI?)@ek@4!SFG^n8k()I|;f<}xe{)dBwxuyIWM&lc{WE|Y~ku^Zd?PTyE zMn&y0$$zfkcmgE9$X{nnpJmNSvn_c2I(Puw`4J`vd|$er_HRC+OGQxfTQ13 zC?iV}XnQM7t9UIvXy}llV1jxuS zh!lQS5!Gv%rAV2bs8VGrMGxSwpZ%xB&oZ-9$-;R{b)6u?iAa?u9jFssKf?j#6{Cjd zac@M_w^&-FfR-@eijg7Upi`a03jOEd;Nw`5(kIvVWRL@drv09x_fc-g-nP+wYA7Z$ z3G_Qtl>^7n>Ta7)P7XgQn}}B@jw=^`DrNv&KtNRv)Pm|j0agj0F(Zc@W@6+zEhW!Q z{?DZ14KWn5@2)PPle3&ar^;0Ke=kLO$^fjeNXEH+anb<3;A1GcdlnT{=5$Q~F_4cV zF8o11W1U_L`yHIrOm%imz}@Qv(6nLm)R=|eb$`qpB17Q*S^gI5^<61Fz!ed0%0i8~ z*N0tII$K)*1Wdui0DE-(A<#m+I32~OWoMJVIQ>^2IJyt%Ne12r3%6XKg`8IvkQvC@ z%-BEpe`WxRsdYf>WoIm&x?uHd;B5Ts1_obH&@wcx29ANOX5pPzUr~`!c0{WwFTtS; z9O%FkSN1Y1Z{g~>{LS=f<#SN#V`%&c492-PHXQx76}Twme%#)wtDKCp7=bo3Fogpx z2!A1IcU$QskNavVsR@ffabW@+Tr)R2umn8NhX@_cqD`Pm*{)Tj{}C{g}7l zAx?n?2T(?;mX_I;@VagPtq|2o6K70*_f^YtUOOn=0B1z@+Rv_tR!O|>zA|b1^?cxx z%^&~Y{{R2hRzGgf4$ZUL&lm6~<;(&W#10BTE9Nn-eX88mc70#z&c~`(e$@b1y_W$e z)|N!hYV|(ywfvl2ex~88HlWGSq0Ns`DzEgE;?|Ykd3AJRFe5COV`nxW1H}-~SJ3@) zT#!?2E{Fmhq+NVL0vv%24syUvzx~qwpkx44y9+q~S)R%##S9KkffK-_4Xl0w;9Oy=8;A9TSrWc^2M5bD1@Bp0v@(XaVectijYm}jCL1}8# jv!HMrVKLkIpMB>t^;P`8Gv5Kvlw$C7^>bP0l+XkK5-!2y literal 0 HcmV?d00001 diff --git a/assets/images/nointernet.png b/assets/images/nointernet.png index 8f015586f3b64556f010aaf837ee05ce13825503..6b54ef9905df1ad901799e2efb4d5445fded55ce 100644 GIT binary patch literal 41834 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 DS@y6L literal 65000 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 diff --git a/flutter_native_splash.yaml b/flutter_native_splash.yaml new file mode 100644 index 0000000..cca702d --- /dev/null +++ b/flutter_native_splash.yaml @@ -0,0 +1,5 @@ +flutter_native_splash: + image: assets/images/splash_screen.png + color: "50C878" + android: true + fill: true \ No newline at end of file diff --git a/ios/Flutter/Generated 32.xcconfig b/ios/Flutter/Generated 32.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 32.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 32.sh b/ios/Flutter/flutter_export_environment 32.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 32.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 70693e4..9471096 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -7,7 +7,10 @@ import Flutter _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { + var flutter_native_splash = 1 + UIApplication.shared.isStatusBarHidden = false + GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } -} +} \ No newline at end of file diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png index dc9ada4725e9b0ddb1deab583e5b5102493aa332..66dfd2708fa11ae834a548f5d60bcb4320b5aa29 100644 GIT binary patch literal 103707 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 rk$Cq>>MOgihRFbf#!a{2_wkU$hzP#pAR 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 U2xcAga{vGU07*qoM6N<$f>cTz!~g&Q delta 540 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 delta 1572 zcmV+<2HW}E5wr}DBYy?^Nklc)UfJ<2uenUn3ARN>mf|M z+(eagCX~wv_9N9Br6dE4W@{R1X8yU75JVAXqB_2?1W&7xoYHg zkR5NEVWsUG^?wLzRHH9Aa#eCDK9NvdPE(De9-HaQc(6~^lpTe2pm3&x9G1K5Xawdi z4F*DRWI%>vgEBPFqaRR51|&E>B!fiay027YsK+Vrn=1PqDKdi{m<&P1nQ3_Gw<%cH zHU+slT8moWCbIKH=(W3t1j5BNfsIKQ#Mzi(J59kx zT!xVJ&SKqb4XjdxWQV7$IrZ-{l-x3`7M}qzHsPzP1S_$c=96h(q%b9ZXPvcV z;D5oPsau6Q(U`-YLD*G41z_cgz)a99av0W_U=aHAj?mj@2KZI50efIA zO8^kn_?FjaZ_hfbhSh@3^GzxJx*P{Jc7Hi*OHPZ!wvEV2a9XKq###zPPeRs75i0(W zU?doBGb9yqT58~qn?wQ4oCi3oWdc^W%JAgTVR)*l33@Ky3ip4Rqz14Wx_gwsGYGq) zMY~B;*z8j>WF8xV`^#!USYHDVZf}I{OZGzBnutHA1D(}!4{};5>;)mO27l7F zHh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG;P%vktHcXwTj~+IE(~px)3*MY z77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC(zYC$g|@+I+kY;dg_dE>scBf& zbP1Nc@Hz<3R)V`=AGkc;8CXqdi+`PV3Vc;#lxQO~AoO*}pfE+=*r3ffZ_YMC zflq>i%a-`Xw)YRuK;MUtq{SGa7vtY^gg0bKSp&F>y|A>h5qhqSvgdtV{(lh0c$xz5 z;*U?KQl%W)htLmD=yhL!@aldLHW(=H00^&qu7J0mA5v0IaX@pn_bKobsC(e>(nAjI zzjyto3Dmc!oOxjlw&JZqeL%+vsN0Zy8@1@rs~rRNAqO?umG&QV WYK#ibz}*4>0000)L_t(|0lk*%OOsI?$G^KcH>ca2(=9bGnWg0=3bE{>MbQni z7Y0EQ^fKs0FC(abq1(F%>s3KS1R6?2S(sLK@e1A(^FEz>+}w0?TfcK)(%jspJ^F=* zXV1>r`Rx3@zu)gX^7CJA`mo88Z#Ga=XpBS-w{L0lpr`evsDCn)W7K8F-I14=U9xRF zG*6X*T1zv2+4_(YqZ1#ROp6w%v#~{?hlwt`$BDYxujqCRLkbCYsJ2F2BWkEl7LQD& z5oxgoTu8167;Ci;Krh!ILz%+iqCvBiCQQ2p=;ZMbmh8~d-LDE=F%D}B@o2mT3tpEv z&|Ptvd@&Ea_E8tVTo05TnJdj7!|t9_Jr%pnfq=L&@y2 z;^|~PX54egQKn*GVN5)zTBZzm{w#Fz?^vR-YkEmQdTer3Yefy6aLwW&h46r8H;h!j zFU%i!mw#%XAB0w><|j>~&@L`?&^d-q$8UmLsI5zot4ilJsh1}pBi4wwmKNTz{u?T% z=D?0E*5n(74(@A_ItP<(3pM$E`n-)FW3BW3(f;@FP_x zT(=KWiIjY8AZYOKchdatwjPX8ZC^E=;^h<;dPG~q6Qy>h2?cT4aQWPnECb8qH8aiV zb&TM$@dTYdS@^l4*DA<@l7u|ILw5gU4Nk5gC<}{LuI3r}c;Zc{K=3ATd#F0(n2W;Q zVsh)|VQ+A>;#^W$kmo_r>WMmBORdD7`0aEuO8K$2RyC97?3E@>VZgJgcR}MpP!^Ua z1iq18g)*wi#<`9)L%s0v`dv*S6RFEFgzJ6xu}FSygjOw?jRJ;+ZlwMK(iv7VCO;oI P00000NkvXXu0mjfPjj|P delta 1003 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 literal 1716 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png index 2ccbfd967d9697cd4b83225558af2911e9571c9b..558583adb602ef7e3e28556a4a0d3034ddc65a97 100644 GIT binary patch delta 1366 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 a0{1_&;gnn2jcRKE0000yKV+a z$E71Zl3vGMu4ylK9oLlxk`&Se8WM6)5=IyytUyC3J3tC%84?@3jR&^nJ=FJk&r)Uk zm+&v?|7BnG_F`j^k@P{hYe~+o-OV*SJPw0@pLnP2boE`WUEIL zm=qKvkFDlbS%0o^0a5aNf5lnaQ+k4CM~|i6L9vwEa96W2^k@Q`%q{Y`_3lwRTydU$ zlDwQ}o{6^I{Y;M6w>FZ&H(1j#^k@PNzCkkkF0<1B-YnQn&26Lt5&of6QB$qy7`i=y zVSXVr)XjD27h^P10T1Ak-c(B(>+bc*KG*& z_wi$=Fpv@gqA4aIQbLkAeoP3ACSM<4#m{Um{?tmI5=F<;ra*FzKtB$v z2O0X%_1Zi1RKjffkUeoVFJY~rJAtum*A~Z467uRe%&t~7N$&EwLi~a_&Woes z#tM2aX_0&}nYG!J-%v_l)fc#X=!(#tz?Jc{>3{v=Lss(A!w1s>&KRm&YV9sbM}UXU zh?`ESp%2LHd%N&scMsVibR`fsd#9nq8d^LOkxIk)#(#5r6SYt)rLh+d@(G~t_gX+c zK0aMK=Zd&#;=zH;ws=ra=t|(M=rOduZH7E*e3+vA!+6H*wPvapO*bXC?J9YIg*@O~ z^?wa_4!3L9*Xu$Hj1%Zg)iqhVb2vvu7V*!LBc0xt7OGqvxF0Upe9bev!ulNMU_|JH z9O^_#E_|lyDpj$Wa5pq3Fv8EkvuYs6dq(=W{FKTZ8fLSZ zKj}k1@0}sf{W$QxQ(sIctFBO9`CW-KSAQihr8Rlm+j)I=KvM!?^A>VE_ND0-yq5<8dclKEuU7rJzBN^m=YC@nq49yYT! zhi5o#VCF`rtGW*Ae(x3^)U;gR6=>o_kb{EAB{W%LJJ=|D=*L7qpS+BMR1^__ z?RSq!A;Qzp)C>P9cZ=Qm0b7Mxw=`}F1=s|`UBSWfb9Aucoa+O012iSjUVkYm#y^77 zwS_du&|CF6k*-;K9^C=D7ZVUz|Ek|gN#oR_rlp?V;26?g7~~1)P9O>f5l#flz-`Vh z8awnoJPq9m#1g#3d8@sKxFZY=?MFZDy@K8=I!I;BRT_*=J#;4!H;%N*83KXfq5bK% zDc_Zh2E|iPLsJ4J$yX>%&3}#_HN9 z=SJT9Y~p;W?0i&u++&VK_az(?5TUAI>IgW`{Fw1HBCJ1cDn6u1vEY8toj@(LDvhm8 zv?6w@q;`dkWo|#eBj`?GfRB4Gi6X&k`8x@7`q^F!XmiP@niUR|pnp4ozHVB+!0D>1 z(&4knJ2n*Vqvw(q)5hZcx{;_qfuyW+Q3KTVJ}CJY-KfiLcN`j+Hw$-5S5K+$tOax@ z5XDY4fPBqXT!hf5s<}pbD+O%tsymd)P*{alaAwpP>A`3Xk9gs(0=e(YIU8ww#89bp zgUAErXK7+Ys#KqATYr=bv}H||(n!(+x)az(h57(wA#>SRewq$dd_gM{W{V>0A4Q)? zCi9Cv8JrsCaAtGO+N?*B0?qbqcePbzS)e z5Dr1fl~tQZ|E{_$$Dn<|X9tAzrs+{>GPB`0VgsURYspc{*MF(lsyl&e@^;YU@iXWz zc^_Dhp_TcAUJGehXo@_?(tMqrKx112>dAyzbhS38lk%XI%#_8B1pg~yr^)BuF5Ro! zy#Trs2&3PzKZ0X_&HGS9LUWDj5)fNd1`mf1p#~0=?a4MU3m@m%343|K1669>2}CvJ znnH6M&7ljXEPpci1xXtcKy!R@S5gxpbm3lTK7+YC3Lv(4D~X5kqKg z!R}7SQDm4KJ&xWg+#}CX_Wx%5box6#?^q~6EIBheO^On473|ei1ARZ}LLh|RP>+rY z8${<#H#xxVEDXI&%hDc_TF|Eug!Y&&|8sUeVt zG(-!Dntv;BD}h*IkZ2?a#nS%rGwt@Mff!^IkZ)jFVwMdIL0i)-ays&ICqFNgX{1 zTUaV2$YGI|LD=nRM`cIg22r}2$A;drg#pC|+}P237u60|5ak~#-v8T)^P~cVn13^a z9Ui_UXt+^;#cwO%|92cpsevj2v5D{3{hpRBsKAw)9P4XvAakPA<#!CQ+>TdWq8tah zKu16*1HB+J7h_uiw$<#skkVpWP_(cF=cbl=GIr1;VshA%Alri~0wLW^u-RgYxDI5Y z5b$)uT-kN`huqDo24D|cN{)z#5`VJ~%ebt`c`XbA`GSU0Ij2Qt46_5p`*Wv8jpSfBnLexhQno0(SA0;_#qS5$Mt6ybFsmoB&4zLoC~dkY zJ31|Z+yrqUno(+?ia^A1V>)a_NaC#HiTGJog}kRV%l3eomdZ{7gh?)5|&U%2HUyfwP~DwizA`n`~fjx-0MnBV~h^hdDwzSq}F%KylcwgAySx@Ea-!Rr45TuSB8 z4YMT>u^aleUIM#_FRHU72cB=7Aj0uNUKXBKjOq=S2!t&`yU`On#k&hU{=+*x9bN)m sgqJ`U;U&;TcnNe7UIJZ&mp~WsUjn@a+FQtfgmaf zE#=YDCq`qUBt#QpG%*H6QHY765~R=qZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1 zK4#~5?#|rh?sS)(-JQqX*}ciXJ56_Hdw=^s_srbAdqxlvG=BhaYkq$ewHUPpbsRN- z8b*0hBN-yE`ach%PN2R+y^b1xyS^vYaA%P{0B)C}TGSVIY9nx4Q57f`g-BQ=3(v)D zPe=Wtd7%(WQXl0E1}1Cz!nR|m!dOgn!NW%nYBh5}NtNti2g*!8Xk4x|Mj*C>NiaUs%#fyzU5=HSJJNOHlQqY?|vw)nU< z2QMMS`lwSJ2Hx}P6M{KbaT{e*9AT%9eI(=l&SYCYM|Ig4rI}dB5qd~wj*Nx4QJx9# zIBAs8%j_7~&YS~r*CZ9*v7r#G>JGqH=K`>%Cppo5K7Ymi`@M4Hq%TE)WY?~6BEcUM zP<~#WN8ug07J`z4J}B(;!E97f5}JKL(X{rPu)SY0B9!TP_yhs?Hm~6u1@Dj#7NDxT zd{CK$s#MKEfIkjM={PS|7%w9Lck&33!aK^qBS6Xz>sN&;;@I6+q^RQ>aFs$@8v%HZ zxenykd4DOxJ773GmQ_Cic%3JJhC0t2cx>|vJcVusIB!%F90{+}8hG3QU4KNeK zmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u7JyDj7`6d)qVp^R=%j>UIY6f+3`+qz zIc!Y_=+uN^3BYV|o+$vGo-j-Wm<R zS$}xdX~O$Yg=geSue3vW@1PX^2Pqgc;1#9_uPTP~j9w;ZND^rqkiuhAB8Yn75d}l( zInN4shMvYGf|$&hM>@LV6yMG>^v=H@#E$v_c z;k|a$2M;%S5%$e6j53blnKqfwHmE=(;D0K+l7~0B^#+XJeFJ88=!a+rJX5E$s1u7i z^}~Beg*Rc3BE1mpf@k`KYV%(b?7W;BJgR~O5bcC#>Xg1L$DatG2}6PBj|(s2#67Vg z+6~Y250zrAhS%%7L{8)Zp6LKbxe`)?r-it%>n6kA|=8iMUiFYvM zoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS*ZdmT`g5-`BuJs`0LVhz+D9NN za3<=6m;cQLaF?tCv8)zcRSh66*na@qY=&sd0?S|&MDJ}O7BnNgc7XiN=fOQ^B?u*J zL9DI^H_BDH3B*!+A=rxG>mqY4 zM0QLJ!^4D;-*^T*Q{Mn##xf8~RwJw$1h^p#P^_xgK)hf%MBBgS5EEjH3V*NRG`OEE z2jS^OAQmnMao*=3me)q$QMnh|=R_{PXcGmoX#^&90F0|Y3GPY7AWSX;aVEO2bPYO> zfNO|?7lCL~ICJw=F9o6u+b&CRf6WQVn}V*J@g73MF|WE&Q4DY~AzGMNxcahTP(8<~ zYxxy~;u`S0v;|xX8%Kq#E`Nv?IgtPy0ghS(;=XPW=B@(|LUC0$=muzUVhIp{y>Vup z?1QLwwr<}U5az8<4WhY;g|fOr0JhT0Ri2zkJ6pFm4T$E2Gd)NL0r)J0wVqVe+n)AbQCx)yh9;w+J6?NF5LmoecS@ieAKL8%bVd@+-KT{ zyI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^EkL$}tsQt5>QA^;QgjgMV83iI%^s)DX_K`0jg!)|u7T5Zs=Fm=Ip`s2bC17?Wgj52`x{ zF)qCGsQXk_u6PxE^HG=RsaTF(1Rkk+UXZAgubV0N&N?xah2Uh3^Cs#l56?g(R{cTq zPGkefkY@O5Mm?BRZGDI?1^+6lFUF-zrk8epU5e@jgzSZmO!^dsW~2|GVECyy)O> zdr61iBG}g#pu@A!3HEd71p7I3g8dvi!F~>%U_XaWu%AOG*w3L8?B~!4_H*b2`#E%i zT|fZ;yC!xbO^?2m(!&zS5Ex30-7QqyUP+(Se@O=$@<^=?eVt$@2oDUSd(#%uCC1zV z&qoDC(AbDJonQx;9({>Za?L1ZVpk@ApB^uI&BIsa9&~~oU{rXf)A#iD_R_ApqqMPN zH$9rOisFK!sJ5%o3s>hFbb=kg7-Z=Gy}P%Y3fn8l6dX;_!A5zmi2wgm*}IhARwn<) z&m2Pv)i&t_YXWUO9sR#QRkVptw-!-6uh1ul{ggU;yXfhn*Queqx&J*K{9FVpWom*> zumeEJ0-Cy8gGkV$1f5_9hztsspU0cd40!(S>U}of zpA-@&%9fgN(GrZUG$uHbn!DQutwg{WXkfx(>4CFrsj9QyrDG<9MAP|>YNaoANVsSS zj%6~_LQOO#B8w(RjuMZQ84X>{RKN;TH4_QPMp~GOQu)2_)f}Qq7s&-6mqPufli4t8}IY&lVB9RLw?G)bfr$mjS|EtA*l;XHS=6=dwp|5Cu{<-%bc4{vu;3eN=Z$mE;1NA{eF%qC1BgzM?m(KDPOu z@=n)erYkV9*#lb`jt&4~;U}p#i92#f%|QwZ2o#dHR_|BroJvD81mmmxS=u5x(UNbM zT%fS6LIMB*0Rf7fcXW6r9clVnZmyrFFQL&9nN-?dEhZPp|DV#gRU7OFG(+&b_$w(Q zD2&z@?;P+vw#$3d7ty51kt~zjsjIhJ(esXGCGJ#9A^kS%hy7bNoEfiF>~!*%>VPH) z#!8uQno3U>Z4yPwj1b;3@8eY!5)dLDCnVP(!(vs+Tp_xH#DiR1v4^>wUSeu}TQAsy43P(8tL9bO$fk)E)~lz^G^OI}r2NiUp#XTYikKrS#oa`JqcA4d{xY4G%`G$9xZrT z{x9TaE~67{18=C@?eK4>M2%MbdJvTOsP2nF&u4`t(|BWUpAS5iT6;PukG1{J*qkeD zFIW6J+<|Hd9&SjZCekeL zew;c_oC<#{f6wVLkXGZ0o6#NAbT-h#1%Hzp52Ui8O|5K}LEfL_)!NBgJAC2`O*18$ zw5943`nI)HZc?4#J}gh1LlYxM(1wa#62(DU46rm|wrqpQJ9fp+wN6r30$7RgXdQ3< zcF=1GbUcu`TuijQ=6t$7ZVFZN4T0STVM|}arvxYShsR2b4~eF!QDa42`eWfM{jNda zn%GGapnsxhJ+GEl`vjwIx}WG-OQ`^F(%zra^Vyi zukZ?nxL7;#m*N8L?ENm70Y^(nU@*0_QiWu^%8q)f=&a+<&?V172IDjN5Ss zx0ms@yV2(BQ=`VwV$&?C6mT`@4lFQDmoHr@Ah7WkZ_ikX$lbCw$`F7+ol;D&Q8Gsm zfH>V!%)3yFY|myf<16@#;L|Nd^rPe(Xny=uNlAsBTi?|rUtnff65Ww40{0My@(i^!qhWZp)*YLC(fwTIn0 z)|ITJO^zC+*tPAcKSpO-OB6evub>(;2^#2l)<91*pQCqbK6UGFr$&#XyHb9j*tNjC zK?;sPKs5w^*7%h;5ZqBp;N7}~x8?80U9MPwA6b#lmTVT&#~+{?f`M&rtXw3fBkl|D zky1ci(SNaCP|2o_zd%(4y8^f?7nr7rIpipr-CaPbT37b2_?i6)nj#opq@SlR7MGyX zSYPp>hzWm#rU5*e2#m8Tv8G_;5htmNvSSe?Q z8PnLzI@EZI&ROJq`3p2dFlv6DE#52vh%2MVDtc_x3IBW63fZRNL9=Y#pmk`5VBkc{ zIZ6#PDNZneT><7D;&5I#fll zGjG&o#u1bf8t?JzK(ah)pk6$`UGt`sst9%lWG#9NaH8CkdLt!;#!6QmHP;_Gf~E*g z4)tz+Qy|ObB?+@>On8>Wh1FKQ?+P?Ua73Azhpd9Gm_96QMB^u-dU{J8$OPp-vXXo_H8 z^npZj`*S5*B)`G;gmyNblAjvYB)T;-4wnM8C>hCf)H)wiNi_DqVx72o4VL?Byb$fsQ#_ zSyQgJ(ZA9X-?o*~^QGI^R$d_0k2NZs*8pgSU__BZ6-;Qih0=~{sh~i86f!%`I*BeF zYd%AtH=d%K6KB)&=il+@wOuGQL$Fdd@P0ONat&$HaMTjDYz84Nj2vy8>u}>~>7e5b zpEjJN)oF_qxi(KgGXy6qP^E{=4Yc4#SAZ#zqv=M|RLVA_NY@;cr~DxPN+I_vmZ`5* z>~iUt=%v-r*D^wl&Q}a)S>-#(Nn1TPp_lyU`18#yll5dbILwK^9 zy4&dK;!Ubg^U(~!Yf3iDYJ&OlQrV6{uV;rPOW&*{tB4bl2wph9oeHd)q5MnQP4e0^ z#jo4#)MEx59q-qEE{fMt4~;0D+j_ySZ{Nwe(Fsi4KaOpQJ9JFg_;CAxn8|i5bzCimZi_wyAQD1Q7fM zsv>x1^mw{0X^vDCpphr?lhF=vqm$m0Q9pv?B@P)&%0D0sa2}s~p5&jekqOMbd8G;J@qCcsCt;@F~HlQh@spKjGv@t6s~M z24!hS^+B4)3KpV3mVlOvX=g@Wy=cPnT*>CXMD;k)pkdN9+3Aj#Ye=R0Gj5d#(uXSc zBP#))5DbN8AuBU8Sg8TASfQOZwom|RGmm87DFdj?qg&D9e__H5X{H9HX%F8RtJ4-s zyI%m4QS9YP!EcQ@59`X_(^PBz3x!VzUYT+OB?QONL;35Rj)H?7ik?|3*tSL6L%12C zRU<$EI~OC@AIrUq!da0r0}9%j;j3kfN2^~9jl?d2MxpRo!}Re5xtU>!qGyaX=1@{d z4BzH~;^#(@+g`pQJ<%V;>ja}wcWzjUI1lV;wbuBwAy3?o_oXit+4*Gg#(pOT>|;xE z%|O4(%cDli!y0GWN{99#+ywerLg9n9ZkgNtIa>!sZRIqPZ%BCF4mO;WF$FCO&Oh`j z!BBiwvdl#vDp$z`AeRx0N2|i$=f5~$VDp85F;iNRqC8qgZ^H0YWj4 z0_~$PzUR*5x%6Q63fZ0P=@0J0YXsvihU@P${!r%jg{}h1RF)x0ZVKyZ+=m)YQ5f66 zXrmwI;#gT@pRD!KA7*)IW{8mNI z?-hcf@%}3-HVD+an(G80oo0UgG|FajakoEK@XDa~yvIry9!TkVG-s7d$A$d&25?Q# z7vN+;O%oFI@Idl{trdzJ0e~3$u=WUxlA-s?^ff`tlF?=snWF8!=(5YFj|deR!*EwE$KUOA==FD|(hdPIVv+uCqd# z5CA#7nE&>vV%xp6-GN65hQhmo!~Y_8I8RpLU*7D!H_4=kS!Z>H}eX#NA9G^5h7zi zFto=5Oah4YM1Lx*VrbX4>|syBQfI*DLeK;#V7nJ)nj?)L76-^h{CcQRgy89Hz*~1) zk7LalN`qxODlQyZ6-aT#;HblmUwfr5Gg4;Z$pXnE_}p-d8UjK^@$(cgL>dI)=6}6% zPyfx1pYWAqn+8C>wFrZ4-_zSG<9vn+MF_@hUt74zG@Ul^hw16loR=ld5t1Lwf61%e zeZ!*1M0@H6rU)Tr2w5f-owZVWYF6}6sW{w_DptThn$J3Q z0X>d&nw@z*ZCsc0X#PAb&SI z7-R1a6d@SHE3oz10`5j6!QGa0t*qqyHs4O;^d^v~x219~-JW!veC|qKu}CYzG&hK- zQmb}}&E0K6FqE+(g=Q2hLNGEZ>=A4Rrga8VkbH=X2?%$>HTe*mYp{jQl^4)Y9xqxi zzr$aRg15MkC{e~-nXc+86d@Sn+c4I~6}7&-_u|-|ErFJZNajQ2%M9e3VON7WHNiMs zRxZ4D*qW8hE>VPF)YGC9+!E6)N(_y4_+DR6m{YS&hCygb1^B|7xQIREP5LSTqUwMS0ByG$C@>px5Al zN8vPNk`B+pqv67mj!K$9g9!$Zn64A-d3cmyc&!ldx7Fvls;l0{U+7R89wivt^zY8S zKnqPXB>0USW_Y%cl)hDCeV4TgkEiT_R8+-ltuo$Upo-cg9iD?uu%AOG*w3L8?B~!4 y_H*b2`#E%i{Tw>Meh!^rKZj1RpF=0u&+-58lw*h$;Ijq*0000oFh3q0M zFesq&64WThn3$;G69TfjsAv=f2G9}pgSx99+!YO}2Uveik)GA5ewEg1Va|1@=x;Pyj3t}zC)T-c zzoz+u9TyK|)jteh(` z;D6}gLagCR0hn*76kN#wCv*`b8GyswI1s7kNaT!{fEXv;5ofK|nu3vU_1cRKLBd@TQ@Ei6F6QJ?HM!O!+{x(L<6rNAv)=55QOzlPWhqI{ zjSR5c$#aW1xy}c;$06La(Y*xlX>0w3EDGGn02k}7*%ZplRLFsw%E3MJO@BuPkU#Ja zcbp(_BL!RxGHHe;wff^+2G>u>ah(dq7O)#K0ekx={yBF*$P%aJSOMmjHHmAxvW0cp zt8@K;ETVH`1(=8Ie(Z;Hy+9V#xv>Mxz*+%0w;aeKJ2#eqVJL7nrpksp7|5bKS2)0a zId?FSYb0>4P=MLsl6(J^Q-5;@54jg=+fq2sO~Hz-hVXEO0L<$0j+BKdGX;Npqt{os zJmk~Y_Q1L83|RfW)5G^!;(u>i7{EI*HIqAp9`Cbzna*hHhI2Lm9I{{?%y{Hgdzxli z7Fd?00Ed;L$qk&zI`y$@{Dn;5j(iW`=!aXNV*G=kjb8%Qi`UtJMSq7ZT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah-w13P)xT`>~eFoJC!>{2X zL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw>F+gN+i+VD?gMXwcIhn8 zrz`>e>J^TI3E-MW>VM=sWZual)ns9B%8_$25BcpOz+KP;+J(1(UiAp*Q=dc!FQL}*R43bTaVm7wy#IrC-VD&k-4FWYMd;wg6!1z8a3SP;O>P#-$->_l zEAM2>hI~v3$Y(TlIdJE^0@|6AK_7#uc{~E1^f2gGJ^}i)rGJ>FDPRt4F~}m-WGQZK zw?8N6;NJH#XeW;Webf!0kG=!+v2#G5xX^L14Y#o*Tz9&z7NjOib92f(6aq==Ntoo74a!u6w~r!$mq|FDi7h6+6fTa4$$0Y>@Y*O}J#< z8ic&ucAQ^e_cw)#3uFTLcly|p7IMmPAXha6205mSA%EQja0eR?DV=N%;eS$2zHI*MpiObUuA|j7`m5?j`@^G6SO!-;(G1aCOu{sGli$ zGck~Eqx{gt?U$`9P3JRJO>}Ku- zRew#6AKb$jGi@lro`A;#P%m@cnyJP&(r%f}Zq^V3mIc=hnLfVXHRn=pj;2#4v8WiM zav|%So5|ksmkM-bV7H;F_%f>b72G`eFJ!d@wTC-#ALO^GRCtHl=K|Y}dX%fTm0A$N zzc4;N3AGsYM~OOND&T_#%8wZzWYfL@by`|620=mAU7(LZ-At!cdlWCvu@AK#bt~#< z9;~k^d5}}7VXmK@h?&@_rUHYJ9zD=M%4AFQ`}k8OC$9ssPq=LnkwKG P00000NkvXXu0mjf?|2$u diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..01e83352e8b2ed46a638b04d12765d36f41d50eb GIT binary patch literal 1762 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 P00000NkvXXu0mjf?|2$u diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png index 75b2d164a5a98e212cca15ea7bf2ab5de5108680..5245d586e5ffd0704b60e0aab6053d4ffd2074e0 100644 GIT binary patch literal 8346 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 literal 3831 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..4869c89998e3f757a5c4231cd049b83b6ceeff8a GIT binary patch literal 2830 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cadea0b5293d5c0681cf795ff2d73b325272d8b1 GIT binary patch literal 6356 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png index c4df70d39da7941ef3f6dcb7f06a192d8dcb308d..0c18e0701b5e4672f1762c360ede34e7452b4baa 100644 GIT binary patch delta 3026 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 delta 1874 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 delta 3291 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 iW8fObdxY8})QA;97vHued^LF5D3Jr`{bc9 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

h7W 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 literal 0 HcmV?d00001 diff --git a/ios/Flutter/Generated 28.xcconfig b/ios/Flutter/Generated 28.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 28.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 28.sh b/ios/Flutter/flutter_export_environment 28.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 28.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/commons/NetworkAwareWidget.dart b/lib/commons/NetworkAwareWidget.dart new file mode 100644 index 0000000..aa43e4c --- /dev/null +++ b/lib/commons/NetworkAwareWidget.dart @@ -0,0 +1,59 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../services/NetworkStatusService.dart'; +import '../commons/BottomNavbar.dart'; + +class NetworkAwareWidget extends StatelessWidget { + final Widget child; + NetworkAwareWidget({Key key, this.child}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Consumer(builder: (context, model, oldChild) { + if (model == NetworkStatus.Offline) { + return Scaffold( + backgroundColor: Colors.white, + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Container( + height: MediaQuery.of(context).size.width * 0.6, + child: Image.asset('assets/images/nointernet.png'), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 2.0, bottom: 4.0), + child: Text( + "No internet available", + style: TextStyle( + fontSize: 24, + color: Colors.black, + fontWeight: FontWeight.w500), + ), + ), + Padding( + padding: + const EdgeInsets.only(bottom: 8.0, left: 14.0, right: 14.0), + child: Text( + "You are offline. Please turn on your mobile data to get updates.", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + color: Theme.of(context).primaryColorDark, + fontWeight: FontWeight.w300), + ), + ), + ], + ), + ), + ); + } else { + return child; + } + }); + } +} diff --git a/lib/commons/NewsCard.dart b/lib/commons/NewsCard.dart index 660ccdd..4c62f2b 100644 --- a/lib/commons/NewsCard.dart +++ b/lib/commons/NewsCard.dart @@ -46,6 +46,8 @@ class NewsCard extends StatelessWidget { Flexible( child: Text( news.title, + overflow: TextOverflow.ellipsis, + maxLines: 4, ), ), FittedBox( @@ -60,7 +62,7 @@ class NewsCard extends StatelessWidget { ), ), Text( - '1hr', + convertDateTime(dateTime: news.publishedAt), style: TextStyle( fontSize: 11, color: Color(0xff808080)), @@ -78,4 +80,21 @@ class NewsCard extends StatelessWidget { ), ); } + + String convertDateTime({DateTime dateTime}) { + DateTime now = DateTime.now(); + int diffMin = now.difference(dateTime).inMinutes; + int diffHr = now.difference(dateTime).inHours; + int diffDay = now.difference(dateTime).inDays; + + if(diffMin < 60) { + return '$diffMin mins'; + } + else if(diffMin < 1440) { + return '$diffHr hrs'; + } + else { + return '$diffDay days'; + } + } } \ No newline at end of file diff --git a/lib/commons/NoContent.dart b/lib/commons/NoContent.dart new file mode 100644 index 0000000..df26dea --- /dev/null +++ b/lib/commons/NoContent.dart @@ -0,0 +1,48 @@ +import 'package:flutter/material.dart'; + +class NoContent extends StatelessWidget { + final String title; + final String description; + NoContent({Key key, this.title, this.description}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Container( + height: MediaQuery.of(context).size.width * 0.6, + child: Image.asset('assets/images/empty.png'), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 2.0, bottom: 4.0), + child: Text( + title, + style: TextStyle( + fontSize: 24, + color: Colors.black, + fontWeight: FontWeight.w500), + ), + ), + Padding( + padding: + const EdgeInsets.only(bottom: 8.0, left: 14.0, right: 14.0), + child: Text( + description, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + color: Theme.of(context).primaryColorDark, + fontWeight: FontWeight.w300), + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 1927bdd..6f6152d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -11,6 +11,7 @@ import 'services/FirebaseService.dart'; import 'services/RemoteConfigService.dart'; import 'package:data_connection_checker/data_connection_checker.dart'; import 'screens/NoInternetScreen.dart'; +import 'services/NetworkStatusService.dart'; void main() async { final ThemeData theme = ThemeData( @@ -22,6 +23,7 @@ void main() async { FirebaseService firebaseService = locator(); final RemoteConfigService _remoteConfigService = locator(); + final NetworkStatusService _networkStatusService = locator(); final result = await DataConnectionChecker().hasConnection; if (result) { await _remoteConfigService.initialise(); @@ -35,6 +37,9 @@ void main() async { providers: [ ChangeNotifierProvider( create: (context) => appProvider, + ), + StreamProvider( + create: (context) => _networkStatusService.networkStatusController.stream, ) ], child: FlutterEasyLoading( diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 4f8acae..1113ca2 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -12,7 +12,7 @@ import '../Provider/HomeViewModel.dart'; import '../services/GetItLocator.dart'; import '../Provider/AppProvider.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; - +import '../commons/NetworkAwareWidget.dart'; class HomeScreen extends StatefulWidget { @override final Map message; @@ -55,34 +55,34 @@ class _HomeScreenState extends State with TickerProviderStateMixin { Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); return Scaffold( - bottomNavigationBar: BottomNavbar(), - body: ChangeNotifierProvider( - create: (context) => _viewModel, - child: Consumer( - builder: (context, model, child) => SafeArea( - child: SingleChildScrollView( - child: Container( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible( - fit: FlexFit.loose, - child: - carousel(model: model, appProvider: appProvider)), - appProvider.favouriteTeamScores != null - ? UpcomingMatchesSection(appProvider: appProvider) - : PKCardSkeleton( + bottomNavigationBar: BottomNavbar(), + body: ChangeNotifierProvider( + create: (context) => _viewModel, + child: Consumer( + builder: (context, model, child) => SafeArea( + child: SingleChildScrollView( + child: Container( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + fit: FlexFit.loose, + child: + carousel(model: model, appProvider: appProvider)), + appProvider.favouriteTeamScores != null + ? UpcomingMatchesSection(appProvider: appProvider) + : PKCardSkeleton( isCircularImage: true, isBottomLinesActive: true, ), - NewsSection(model: model, appProvider: appProvider) - ], + NewsSection(model: model, appProvider: appProvider) + ], + ), + ), + ), ), ), - ), - ), - ), - )); + )); } Widget UpcomingMatchesSection({AppProvider appProvider}) { @@ -254,7 +254,7 @@ class _HomeScreenState extends State with TickerProviderStateMixin { ), ), Text( - '1hr', + convertDateTime(dateTime: favouriteNewsList[i].publishedAt), style: TextStyle( fontSize: 14, color: Colors.amberAccent), @@ -326,6 +326,23 @@ class _HomeScreenState extends State with TickerProviderStateMixin { )); } + String convertDateTime({DateTime dateTime}) { + DateTime now = DateTime.now(); + int diffMin = now.difference(dateTime).inMinutes; + int diffHr = now.difference(dateTime).inHours; + int diffDay = now.difference(dateTime).inDays; + + if(diffMin < 60) { + return '$diffMin mins'; + } + else if(diffMin < 1440) { + return '$diffHr hrs'; + } + else { + return '$diffDay days'; + } + } + void showAlert() { if (widget.message != null) { FlushHelper.flushbarAlert( diff --git a/lib/screens/NoInternetScreen.dart b/lib/screens/NoInternetScreen.dart index 83c589f..f734ef8 100644 --- a/lib/screens/NoInternetScreen.dart +++ b/lib/screens/NoInternetScreen.dart @@ -1,15 +1,16 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../start.dart'; import 'package:data_connection_checker/data_connection_checker.dart'; -import 'package:flushbar/flushbar.dart'; import '../services/GetItLocator.dart'; import '../services/RemoteConfigService.dart'; import '../services/FirebaseService.dart'; import '../commons/CustomRaisedButton.dart'; import '../Provider/AppProvider.dart'; +import '../services/FlushbarHelper.dart'; class NoInternetScreen extends StatefulWidget { + final String from; + NoInternetScreen({this.from}); @override _NoInternetScreenState createState() => _NoInternetScreenState(); } @@ -80,21 +81,7 @@ class _NoInternetScreenState extends State { setState(() { inProgress = false; }); - Flushbar( - icon: Icon( - Icons.error, - size: 35, - color: Colors.white, - ), - title: "Error", - message: 'You are offline', - flushbarPosition: FlushbarPosition.TOP, - backgroundColor: Colors.red, - duration: Duration(seconds: 3), - flushbarStyle: FlushbarStyle.FLOATING, - showProgressIndicator: true, - progressIndicatorBackgroundColor: Colors.white, - ).show(context); + FlushHelper.flushbarAlert(context: context, title: 'Error', message: 'You are offline', seconds: 3); } }, ) diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index 4755ec1..d8a4676 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -12,6 +12,8 @@ import '../screens/DashboardScreen.dart'; import '../screens/FavouriteScreen1.dart'; import '../screens/IntroductionScreen.dart'; import '../start.dart'; +import '../screens/NoInternetScreen.dart'; +import '../commons/NetworkAwareWidget.dart'; class Router { Route generateRoutes(RouteSettings settings) { @@ -26,7 +28,8 @@ class Router { '/selectteam', '/matchstat', '/selectleague', - '/introduction' + '/introduction', + '/nointernet' ]; if (validRoutes.contains(settings.name)) { return customRoutes(settings.name, settings.arguments); @@ -38,6 +41,7 @@ class Router { int index = null; int leagueId = null; String leagueName; + String from; Map favouriteTeamMessage = null; Score score = null; if (args != null) { @@ -59,6 +63,9 @@ class Router { if (args.containsKey('score')) { score = args['score']; } + if (args.containsKey('from')) { + from = args['from']; + } } Map screens = { '/start': Start(), @@ -73,15 +80,15 @@ class Router { index: index, news: news, ), - '/selectteam': FavouriteTeam( - leagueId: leagueId, - leagueName: leagueName - ), + '/selectteam': FavouriteTeam(leagueId: leagueId, leagueName: leagueName), '/matchstat': MatchStatScreen( score: score, ), '/selectleague': FavouriteLeague(), - '/introduction': IntroductionScreen() + '/introduction': IntroductionScreen(), + '/nointernet': NoInternetScreen( + from: from, + ) }; return PageRouteBuilder( @@ -92,9 +99,12 @@ class Router { position: Tween( begin: const Offset(-1.0, 0.0), end: Offset.zero) .animate(anim), - child: child, + child: NetworkAwareWidget( + child: child, + ), ) - : FadeTransition(opacity: anim, child: child); + : FadeTransition( + opacity: anim, child: NetworkAwareWidget(child: child)); }, transitionDuration: Duration(milliseconds: route == '/newsarticle' ? 500 : 300)); diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index 8f5e3a7..10df44e 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -16,6 +16,7 @@ import '../models/User.dart'; import 'FirebaseService.dart'; import 'FirestoreService.dart'; import 'RemoteConfigService.dart'; +import 'NetworkStatusService.dart'; GetIt locator = GetIt.instance; Future setupLocator() async{ @@ -30,6 +31,7 @@ Future setupLocator() async{ locator.registerLazySingleton(() => TopScorerService()); locator.registerLazySingleton(() => FirebaseService()); locator.registerLazySingleton(() => FirestoreService()); + locator.registerLazySingleton(() => NetworkStatusService()); locator.registerSingleton(remoteConfigService); locator.registerFactory(() => HomeViewModel(0)); locator.registerFactory(() => MatchStatViewModel(null)); diff --git a/lib/services/NetworkStatusService.dart b/lib/services/NetworkStatusService.dart new file mode 100644 index 0000000..ed01cc7 --- /dev/null +++ b/lib/services/NetworkStatusService.dart @@ -0,0 +1,21 @@ +import 'dart:async'; +import 'package:connectivity/connectivity.dart'; +import 'package:data_connection_checker/data_connection_checker.dart'; + +enum NetworkStatus { Online, Offline } + +class NetworkStatusService { + StreamController networkStatusController = + StreamController(); + + NetworkStatusService() { + Connectivity().onConnectivityChanged.listen((status) async{ + networkStatusController.add(await _getNetworkStatus(status)); + }); + } + + Future _getNetworkStatus(ConnectivityResult status) async { + final result = await DataConnectionChecker().hasConnection; + return (status == ConnectivityResult.mobile || status == ConnectivityResult.wifi) && result ? NetworkStatus.Online : NetworkStatus.Offline; + } +} \ No newline at end of file diff --git a/lib/services/NewsService.dart b/lib/services/NewsService.dart index 8fc654d..74b58af 100644 --- a/lib/services/NewsService.dart +++ b/lib/services/NewsService.dart @@ -18,10 +18,10 @@ class NewsService { _remoteConfigService.getString(key: 'newsUrl'), queryParameters: { 'q': query, + 'mkt': 'en-IN', 'originalImg': 'true', 'count': '100', - 'freshness': 'week', - 'sortBy': 'date' + 'freshness': 'week' }); if (response.statusCode == 200) { final unparsedNews = response.data['value'].toList(); diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index 2a0b40c..e5c1087 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:pk_skeleton/pk_skeleton.dart'; import 'package:provider/provider.dart'; +import 'package:sportsmojo/commons/NoContent.dart'; import '../Provider/AppProvider.dart'; import '../models/Score.dart'; import '../commons/ScoreCard.dart'; @@ -58,121 +59,125 @@ class _AllScoresState extends State { @override Widget build(BuildContext context) { return Consumer( - builder: (context, model, child) => SingleChildScrollView( - controller: _scrollController, - child: Container( - margin: EdgeInsets.only(top: 10.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only( - left: 8.0, right: 8.0, top: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LeagueDropdown( - items: getLeagueItems(), - selectedLeague: model.selectedLeague, - backgroundColor: Color(0xfffafafa), - fontColor: Colors.black, - purpose: "score", + builder: (context, model, child) => SingleChildScrollView( + controller: _scrollController, + child: Container( + margin: EdgeInsets.only(top: 10.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only( + left: 8.0, right: 8.0, top: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + LeagueDropdown( + items: getLeagueItems(), + selectedLeague: model.selectedLeague, + backgroundColor: Color(0xfffafafa), + fontColor: Colors.black, + purpose: "score", + ), + FlatButton( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Icon(Icons.filter_list), + Text('Filter') + ], ), - FlatButton( - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Icon(Icons.filter_list), - Text('Filter') - ], - ), - color: Color(0xfffafafa), - onPressed: () { - onSettingPressed(); - }, - ) - ], + color: Color(0xfffafafa), + onPressed: () { + onSettingPressed(); + }, + ) + ], + ), + ), + (model.leagueWiseScores != null && _scores != null) + ? _totalNoOfScores > 0 + ? scoreList() + : NoContent( + title: 'No matches found', + description: + 'There are no league matches matching your query', + ) + : ListView.builder( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), + ], + ), + ), + )); + } + + Widget scoreList() { + return ListView.builder( + shrinkWrap: true, + itemCount: _lastRetrievedLindex + 2, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + if (index == _lastRetrievedLindex + 1) { + return index == _totalNoOfScores + ? Container() + : Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: SizedBox( + height: 40, + child: Chip( + elevation: 2, + backgroundColor: Colors.white, + avatar: CircleAvatar( + backgroundColor: Colors.white, + child: Icon(Icons.arrow_upward), + ), + label: Text( + 'Swipe up to load more', + style: TextStyle( + fontSize: 14, fontWeight: FontWeight.w300), ), ), - (model.leagueWiseScores != null && _scores != null) - ? ListView.builder( - shrinkWrap: true, - itemCount: _lastRetrievedLindex + 2, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - if (index == _lastRetrievedLindex + 1) { - return index == _totalNoOfScores - ? Container() - : Padding( - padding: const EdgeInsets.only( - bottom: 16.0), - child: SizedBox( - height: 40, - child: Chip( - elevation: 2, - backgroundColor: Colors.white, - avatar: CircleAvatar( - backgroundColor: Colors.white, - child: Icon(Icons.arrow_upward), - ), - label: Text( - 'Swipe up to load more', - style: TextStyle( - fontSize: 14, - fontWeight: - FontWeight.w300), - ), - ), - ), - ); - } - final Score score = _scores[index]; - if (index != 0 && - dayDifference( - date_time1: score.date_time, - date_time2: - _scores[index - 1].date_time) == - 0) { - return ScoreCard( - score: score, - ); - } else { - return Padding( - padding: EdgeInsets.only(top: 12.0), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 12.0), - child: Text( - '${convertDateTime(date_time: score.date_time)}', - style: TextStyle(fontSize: 20), - ), - ), - ScoreCard( - score: score, - ) - ], - ), - ); - } - }) - : ListView.builder( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: 10, - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }), - ], + ), + ); + } + final Score score = _scores[index]; + if (index != 0 && + dayDifference( + date_time1: score.date_time, + date_time2: _scores[index - 1].date_time) == + 0) { + return ScoreCard( + score: score, + ); + } else { + return Padding( + padding: EdgeInsets.only(top: 12.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 12.0), + child: Text( + '${convertDateTime(date_time: score.date_time)}', + style: TextStyle(fontSize: 20), + ), ), - ), - )); + ScoreCard( + score: score, + ) + ], + ), + ); + } + }); } void _getMoreScores(List scores) { diff --git a/lib/widgets/FavouriteScoresPast.dart b/lib/widgets/FavouriteScoresPast.dart index 54d110f..c828699 100644 --- a/lib/widgets/FavouriteScoresPast.dart +++ b/lib/widgets/FavouriteScoresPast.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:pk_skeleton/pk_skeleton.dart'; import 'package:provider/provider.dart'; import '../Provider/AppProvider.dart'; import '../models/Score.dart'; import '../commons/ScoreCard.dart'; +import '../commons/NoContent.dart'; class FavouriteScoresPast extends StatefulWidget { @override @@ -44,40 +44,13 @@ class _FavouriteScoresPastState extends State { child: Container( margin: EdgeInsets.only(top: 30.0), child: _scores != null - ? ListView.builder( - shrinkWrap: true, - itemCount: _lastRetrievedLindex + 2, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - if (index == _lastRetrievedLindex + 1) { - return index == _totalNoOfScores - ? Container() - : Padding( - padding: const EdgeInsets.only(bottom: 16.0), - child: SizedBox( - height: 40, - child: Chip( - elevation: 2, - backgroundColor: Colors.white, - avatar: CircleAvatar( - backgroundColor: Colors.white, - child: Icon(Icons.arrow_upward), - ), - label: Text( - 'Swipe up to load more', - style: TextStyle( - fontSize: 14, - fontWeight: FontWeight.w300), - ), - ), - ), - ); - } - final Score score = _scores[index]; - return ScoreCard( - score: score, - ); - }) + ? _totalNoOfScores > 0 + ? scoreList() + : NoContent( + title: 'No matches found', + description: + 'There are no past league matches matching your query', + ) : ListView.builder( shrinkWrap: true, physics: NeverScrollableScrollPhysics(), @@ -92,6 +65,42 @@ class _FavouriteScoresPastState extends State { ); } + Widget scoreList() { + return ListView.builder( + shrinkWrap: true, + itemCount: _lastRetrievedLindex + 2, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + if (index == _lastRetrievedLindex + 1) { + return index == _totalNoOfScores + ? Container() + : Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: SizedBox( + height: 40, + child: Chip( + elevation: 2, + backgroundColor: Colors.white, + avatar: CircleAvatar( + backgroundColor: Colors.white, + child: Icon(Icons.arrow_upward), + ), + label: Text( + 'Swipe up to load more', + style: TextStyle( + fontSize: 14, fontWeight: FontWeight.w300), + ), + ), + ), + ); + } + final Score score = _scores[index]; + return ScoreCard( + score: score, + ); + }); + } + void _getMoreScores(List scores) { setState(() { if (_lastRetrievedLindex < (_totalNoOfScores - 11)) { diff --git a/lib/widgets/FavouriteScoresUpcoming.dart b/lib/widgets/FavouriteScoresUpcoming.dart index f62afd6..ce9a3fb 100644 --- a/lib/widgets/FavouriteScoresUpcoming.dart +++ b/lib/widgets/FavouriteScoresUpcoming.dart @@ -2,13 +2,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:pk_skeleton/pk_skeleton.dart'; import 'package:provider/provider.dart'; +import 'package:sportsmojo/commons/NoContent.dart'; import '../Provider/AppProvider.dart'; import '../models/Score.dart'; import '../commons/ScoreCard.dart'; class FavouriteScoresUpcoming extends StatefulWidget { @override - _FavouriteScoresUpcomingState createState() => _FavouriteScoresUpcomingState(); + _FavouriteScoresUpcomingState createState() => + _FavouriteScoresUpcomingState(); } class _FavouriteScoresUpcomingState extends State { @@ -20,13 +22,12 @@ class _FavouriteScoresUpcomingState extends State { void initState() { super.initState(); final AppProvider appProvider = - Provider.of(context, listen: false); + Provider.of(context, listen: false); if (appProvider.favouriteTeamScores == null) { appProvider.loadFavouriteScores().whenComplete(() { _setScores(appProvider); }); - } - else { + } else { _setScores(appProvider); } } @@ -45,52 +46,68 @@ class _FavouriteScoresUpcomingState extends State { child: Container( margin: EdgeInsets.only(top: 30.0), child: _scores != null - ? ListView.builder( - shrinkWrap: true, - itemCount: _lastRetrievedLindex + 2, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - if(index == _lastRetrievedLindex + 1) { - return index == _totalNoOfScores ? Container() : Padding( - padding: const EdgeInsets.only(bottom: 16.0), - child: SizedBox( - height: 40, - child: Chip( - elevation: 2, - backgroundColor: Colors.white, - avatar: CircleAvatar( - backgroundColor: Colors.white, - child: Icon(Icons.arrow_upward), - ), - label: Text('Swipe up to load more', style: TextStyle(fontSize: 14, fontWeight: FontWeight.w300),), - ), - ), - ); - } - final Score score = _scores[index]; - return ScoreCard( - score: score, - ); - }) + ? _totalNoOfScores > 0 + ? scoreList() + : NoContent( + title: 'No matches found', + description: + 'There are no upcoming league matches matching your query', + ) : ListView.builder( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: 10, - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }), + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), ), ); } + Widget scoreList() { + return ListView.builder( + shrinkWrap: true, + itemCount: _lastRetrievedLindex + 2, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + if (index == _lastRetrievedLindex + 1) { + return index == _totalNoOfScores + ? Container() + : Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: SizedBox( + height: 40, + child: Chip( + elevation: 2, + backgroundColor: Colors.white, + avatar: CircleAvatar( + backgroundColor: Colors.white, + child: Icon(Icons.arrow_upward), + ), + label: Text( + 'Swipe up to load more', + style: TextStyle( + fontSize: 14, fontWeight: FontWeight.w300), + ), + ), + ), + ); + } + final Score score = _scores[index]; + return ScoreCard( + score: score, + ); + }); + } + void _getMoreScores(List scores) { setState(() { if (_lastRetrievedLindex < (_totalNoOfScores - 11)) { - _scores.addAll( - scores.sublist(_lastRetrievedLindex + 1 , _lastRetrievedLindex + 11)); + _scores.addAll(scores.sublist( + _lastRetrievedLindex + 1, _lastRetrievedLindex + 11)); _lastRetrievedLindex += 10; } else { _scores.addAll(scores.sublist(_lastRetrievedLindex + 1)); @@ -100,7 +117,10 @@ class _FavouriteScoresUpcomingState extends State { } List _setScores(AppProvider appProvider) { - final List favouriteTeamScores = appProvider.favouriteTeamScores.where((score) => score.date_time.difference(DateTime.now()).inSeconds > 0).toList(); + final List favouriteTeamScores = appProvider.favouriteTeamScores + .where( + (score) => score.date_time.difference(DateTime.now()).inSeconds > 0) + .toList(); favouriteTeamScores.sort((a, b) { return a.date_time.compareTo(b.date_time); }); @@ -116,8 +136,8 @@ class _FavouriteScoresUpcomingState extends State { }); _scrollController.addListener(() { if ((_scrollController.position.maxScrollExtent - - _scrollController.position.pixels == - 0.0) && + _scrollController.position.pixels == + 0.0) && _lastRetrievedLindex < _totalNoOfScores - 1) { _getMoreScores(favouriteTeamScores); } diff --git a/lib/widgets/LeagueTableWiget.dart b/lib/widgets/LeagueTableWiget.dart index 3e0137c..d297e38 100644 --- a/lib/widgets/LeagueTableWiget.dart +++ b/lib/widgets/LeagueTableWiget.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:pk_skeleton/pk_skeleton.dart'; import 'package:provider/provider.dart'; import 'package:cached_network_image/cached_network_image.dart'; +import 'package:sportsmojo/commons/NoContent.dart'; import 'package:sportsmojo/models/LeagueTable.dart'; import '../Provider/AppProvider.dart'; import '../commons/custom_icons.dart'; @@ -15,7 +16,6 @@ class LeagueTableWidget extends StatefulWidget { } class _LeagueTableWidgetState extends State { - @override void initState() { final AppProvider appProvider = @@ -58,46 +58,54 @@ class _LeagueTableWidgetState extends State { ), ), model.leagueTableEntries != null - ? Card( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: Container( - width: - MediaQuery.of(context).size.width * 1.3, - child: ListView.builder( - shrinkWrap: true, - itemCount: - model.leagueTableEntries.length, - physics: NeverScrollableScrollPhysics(), - itemBuilder: - (BuildContext context, int index) { - if (index == 0) { - return Column( - children: [ - tableHeader(), - Padding( - padding: const EdgeInsets - .symmetric(vertical: 8.0), - child: tableRow( - model.leagueTableEntries[ + ? (model.leagueTableEntries.length > 0 + ? Card( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Container( + width: + MediaQuery.of(context).size.width * + 1.3, + child: ListView.builder( + shrinkWrap: true, + itemCount: + model.leagueTableEntries.length, + physics: + NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, + int index) { + if (index == 0) { + return Column( + children: [ + tableHeader(), + Padding( + padding: const EdgeInsets + .symmetric( + vertical: 8.0), + child: tableRow(model + .leagueTableEntries[ index]), - ) - ], - ); - } - return Padding( - padding: EdgeInsets.symmetric( - vertical: 8.0), - child: tableRow(model - .leagueTableEntries[index]), - ); - }), + ) + ], + ); + } + return Padding( + padding: EdgeInsets.symmetric( + vertical: 8.0), + child: tableRow(model + .leagueTableEntries[index]), + ); + }), + ), + ), ), - ), - ), - ) + ) + : NoContent( + title: 'No league table found', + description: + 'There are no league table matching your query')) : PKCardPageSkeleton( totalLines: 15, ), @@ -112,146 +120,69 @@ class _LeagueTableWidgetState extends State { return Row( children: [ Container( - width: MediaQuery.of( - context) - .size - .width * - 0.07, - child: Text(' ')), + width: MediaQuery.of(context).size.width * 0.07, child: Text(' ')), Container( - width: MediaQuery.of( - context) - .size - .width * - 0.35, + width: MediaQuery.of(context).size.width * 0.35, child: Text( 'Club', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.left, + style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + textAlign: TextAlign.left, )), Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, + width: MediaQuery.of(context).size.width * 0.1, child: Text( 'MP', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, + style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + textAlign: TextAlign.center, )), Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, + width: MediaQuery.of(context).size.width * 0.1, child: Text( 'W', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, + style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + textAlign: TextAlign.center, )), Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, + width: MediaQuery.of(context).size.width * 0.1, child: Text( 'L', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, + style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + textAlign: TextAlign.center, )), Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, + width: MediaQuery.of(context).size.width * 0.1, child: Text( 'D', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, + style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + textAlign: TextAlign.center, )), Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, + width: MediaQuery.of(context).size.width * 0.1, child: Text( 'Pts.', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, + style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + textAlign: TextAlign.center, )), Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, + width: MediaQuery.of(context).size.width * 0.1, child: Text( 'GF', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, + style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + textAlign: TextAlign.center, )), Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, + width: MediaQuery.of(context).size.width * 0.1, child: Text( 'GA', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, + style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + textAlign: TextAlign.center, )), Container( - width: MediaQuery.of( - context) - .size - .width * - 0.1, + width: MediaQuery.of(context).size.width * 0.1, child: Text( 'GD', - style: TextStyle( - fontSize: 15, - color: Color( - 0X8A000000)), - textAlign: - TextAlign.center, + style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + textAlign: TextAlign.center, )) ], ); diff --git a/lib/widgets/TopScorer.dart b/lib/widgets/TopScorer.dart index d2abb1a..7548d1d 100644 --- a/lib/widgets/TopScorer.dart +++ b/lib/widgets/TopScorer.dart @@ -3,6 +3,7 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:pk_skeleton/pk_skeleton.dart'; import 'package:provider/provider.dart'; +import 'package:sportsmojo/commons/NoContent.dart'; import '../models/Player.dart'; import '../Provider/AppProvider.dart'; import 'LeagueDropdown.dart'; @@ -56,38 +57,44 @@ class _TopScorersState extends State { ), ), model.topScorers != null - ? Card( - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 2.0), - child: ListView.builder( - shrinkWrap: true, - itemCount: model.topScorers.length, - physics: NeverScrollableScrollPhysics(), - itemBuilder: - (BuildContext context, int index) { - if (index == 0) { - return Column( - children: [ - tableHeader(), - Padding( - padding: - const EdgeInsets.symmetric( - vertical: 8.0), - child: tableRow( - model.topScorers[index]), - ) - ], - ); - } - return Padding( - padding: - EdgeInsets.symmetric(vertical: 8.0), - child: - tableRow(model.topScorers[index]), - ); - }), - ), - ) + ? model.topScorers.length > 0 + ? Card( + child: Padding( + padding: const EdgeInsets.symmetric( + vertical: 8.0, horizontal: 2.0), + child: ListView.builder( + shrinkWrap: true, + itemCount: model.topScorers.length, + physics: NeverScrollableScrollPhysics(), + itemBuilder: + (BuildContext context, int index) { + if (index == 0) { + return Column( + children: [ + tableHeader(), + Padding( + padding: const EdgeInsets + .symmetric(vertical: 8.0), + child: tableRow( + model.topScorers[index]), + ) + ], + ); + } + return Padding( + padding: EdgeInsets.symmetric( + vertical: 8.0), + child: tableRow( + model.topScorers[index]), + ); + }), + ), + ) + : NoContent( + title: 'Top scorers not found', + description: + 'Cannot find league topscorers matching your query', + ) : PKCardPageSkeleton( totalLines: 15, ), @@ -172,7 +179,10 @@ class _TopScorersState extends State { ), ), ), - Text('${topScorer.teamName}', style: TextStyle(fontSize: 13, color: Color(0X8A000000)),) + Text( + '${topScorer.teamName}', + style: TextStyle(fontSize: 13, color: Color(0X8A000000)), + ) ], ), ), diff --git a/pubspec.lock b/pubspec.lock index ccfeb2c..4e297cc 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -85,6 +85,34 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.14.11" + connectivity: + dependency: "direct main" + description: + name: connectivity + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.9" + connectivity_for_web: + dependency: transitive + description: + name: connectivity_for_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.1" + connectivity_macos: + dependency: transitive + description: + name: connectivity_macos + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.0+3" + connectivity_platform_interface: + dependency: transitive + description: + name: connectivity_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.6" convert: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index d880d2c..950c40c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -43,6 +43,7 @@ dependencies: flutter_easyloading: ^1.0.1 firebase_remote_config: ^0.3.1+1 data_connection_checker: ^0.3.4 + connectivity: ^0.4.9 dev_dependencies: flutter_test: sdk: flutter From 1b8218e5b85679d58e09006a727b0121182e61f2 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Fri, 31 Jul 2020 23:43:25 +0530 Subject: [PATCH 41/49] Added firebase cloud messaging, dark theme prototype and share button --- android/app/src/main/AndroidManifest.xml | 4 + lib/commons/BottomNavbar.dart | 10 +- lib/commons/NewsCard.dart | 2 +- lib/commons/ScoreCard.dart | 4 +- lib/main.dart | 29 ++- lib/screens/DashboardScreen.dart | 21 +- lib/screens/FavouriteScreen2.dart | 3 + lib/screens/HomeScreen.dart | 79 +++---- lib/screens/IntroductionScreen.dart | 83 +++++--- lib/screens/Login.dart | 25 --- lib/screens/MatchStatScreen.dart | 227 +++++++++++---------- lib/screens/News.dart | 126 ++++++------ lib/screens/NewsArticle.dart | 12 +- lib/screens/NoInternetScreen.dart | 4 + lib/services/CustomRouter.dart | 5 +- lib/services/FirebaseMessagingService.dart | 37 ++++ lib/services/GetItLocator.dart | 5 + lib/services/HttpService.dart | 2 +- lib/services/RemoteConfigService.dart | 3 +- lib/widgets/AllScores.dart | 119 ++++++----- lib/widgets/FavouriteScoresPast.dart | 54 +++-- lib/widgets/LeagueTableWiget.dart | 18 +- lib/widgets/TopScorer.dart | 8 +- pubspec.lock | 21 +- pubspec.yaml | 3 +- 25 files changed, 513 insertions(+), 391 deletions(-) delete mode 100644 lib/screens/Login.dart create mode 100644 lib/services/FirebaseMessagingService.dart diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 9400b6c..e94a200 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -37,6 +37,10 @@ + + + + diff --git a/lib/commons/BottomNavbar.dart b/lib/commons/BottomNavbar.dart index f16db98..8cccc19 100644 --- a/lib/commons/BottomNavbar.dart +++ b/lib/commons/BottomNavbar.dart @@ -11,27 +11,27 @@ class BottomNavbar extends StatelessWidget { Widget build(BuildContext context){ final List bottomNavbarItems = [ new BottomNavigationBarItem( - activeIcon: Icon(MyFlutterApp.home__1_, color: Colors.orange,), + activeIcon: Icon(MyFlutterApp.home__1_, color: Theme.of(context).primaryColor,), icon: Icon(MyFlutterApp.home__1_), title: Text('Home', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( - activeIcon: Icon(MyFlutterApp.score, color: Colors.orange,), + activeIcon: Icon(MyFlutterApp.score, color: Theme.of(context).primaryColor,), icon: Icon(MyFlutterApp.score), title: Text('Matches', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( - activeIcon: Icon(Icons.table_chart, color: Colors.orange,), + activeIcon: Icon(Icons.table_chart, color: Theme.of(context).primaryColor,), icon: Icon(Icons.table_chart), title: Text('League', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( - activeIcon: Icon(MyFlutterApp.news, color: Colors.orange,), + activeIcon: Icon(MyFlutterApp.news, color: Theme.of(context).primaryColor,), icon: Icon(MyFlutterApp.news), title: Text('News', style: _bottomNavBarStyle,) ), new BottomNavigationBarItem( - activeIcon: Icon(Icons.dashboard, color: Colors.orange,), + activeIcon: Icon(Icons.dashboard, color: Theme.of(context).primaryColor,), icon: Icon(Icons.dashboard), title: Text('Dasboard', style: _bottomNavBarStyle,) ) diff --git a/lib/commons/NewsCard.dart b/lib/commons/NewsCard.dart index 4c62f2b..5a2ff28 100644 --- a/lib/commons/NewsCard.dart +++ b/lib/commons/NewsCard.dart @@ -65,7 +65,7 @@ class NewsCard extends StatelessWidget { convertDateTime(dateTime: news.publishedAt), style: TextStyle( fontSize: 11, - color: Color(0xff808080)), + color: Theme.of(context).primaryColorDark), ) ], ), diff --git a/lib/commons/ScoreCard.dart b/lib/commons/ScoreCard.dart index 4a3d906..dd718e8 100644 --- a/lib/commons/ScoreCard.dart +++ b/lib/commons/ScoreCard.dart @@ -59,7 +59,7 @@ class _ScoreCardState extends State with TickerProviderStateMixin { child: Text( '${widget.score.competition} - ${convertDateTime(date_time: widget.score.date_time)}', style: TextStyle( - fontSize: 12, color: Color(0X8A000000)), + fontSize: 12, color: Theme.of(context).primaryColorDark), ), ), Spacer(), @@ -128,7 +128,7 @@ class _ScoreCardState extends State with TickerProviderStateMixin { 'VS', style: TextStyle( fontSize: 18, - color: Color(0X8A000000)), + color: Theme.of(context).primaryColorDark), ), ], ), diff --git a/lib/main.dart b/lib/main.dart index 6f6152d..56f11f5 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -12,10 +12,18 @@ import 'services/RemoteConfigService.dart'; import 'package:data_connection_checker/data_connection_checker.dart'; import 'screens/NoInternetScreen.dart'; import 'services/NetworkStatusService.dart'; +import 'services/FirebaseMessagingService.dart'; void main() async { - final ThemeData theme = ThemeData( - primaryColor: Color(0xFF50C878), primaryColorDark: Color(0XFFA0A5AA)); + final ThemeData lightTheme = ThemeData( + primaryColor: Color(0xFF50C878), + primaryColorDark: Color(0X8A000000), + brightness: Brightness.light); + final ThemeData darkTheme = ThemeData( + primaryColor: Color(0xFF1D1D1D), + primaryColorDark: Color(0XFFF1F1F1), + brightness: Brightness.dark); + WidgetsFlutterBinding.ensureInitialized(); await setupLocator(); final leagueName = await LocalStorage.getString('leagueName'); @@ -23,9 +31,14 @@ void main() async { FirebaseService firebaseService = locator(); final RemoteConfigService _remoteConfigService = locator(); - final NetworkStatusService _networkStatusService = locator(); + final NetworkStatusService _networkStatusService = + locator(); + final FirebaseMessagingService _fcmService = + locator(); + final RouterService _routerService = locator(); final result = await DataConnectionChecker().hasConnection; if (result) { + await _fcmService.initialise(); await _remoteConfigService.initialise(); currentUser = await firebaseService.getCurrentUser(); } @@ -39,17 +52,21 @@ void main() async { create: (context) => appProvider, ), StreamProvider( - create: (context) => _networkStatusService.networkStatusController.stream, + create: (context) => + _networkStatusService.networkStatusController.stream, ) ], child: FlutterEasyLoading( child: MaterialApp( debugShowCheckedModeBanner: false, - theme: theme, + theme: lightTheme, + darkTheme: darkTheme, + themeMode: ThemeMode.dark, + navigatorKey: _routerService.navigationKey, home: WillPopScope( onWillPop: () => Future.value(false), child: result ? Start() : NoInternetScreen()), - onGenerateRoute: Router().generateRoutes, + onGenerateRoute: _routerService.generateRoutes, navigatorObservers: [HeroController()], ), ), diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index d0bd4fb..39ad76a 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -12,6 +12,7 @@ import '../services/LocalStorage.dart'; import '../services/FirestoreService.dart'; import '../constants.dart'; import '../commons/CustomRaisedButton.dart'; +import '../services/FirebaseMessagingService.dart'; class DashboardScreen extends StatefulWidget { @override @@ -19,8 +20,9 @@ class DashboardScreen extends StatefulWidget { } class _DashboardScreenState extends State { - FirebaseService firebaseService = locator(); - FirestoreService firestoreService = locator(); + final FirebaseService _firebaseService = locator(); + final FirestoreService _firestoreService = locator(); + final FirebaseMessagingService _fcmService = locator(); bool inProgress = false; String teamLogo, teamName, leagueName, leagueLogo; @@ -58,7 +60,7 @@ class _DashboardScreenState extends State { borderRadius: BorderRadius.only( topRight: Radius.circular(20.0), topLeft: Radius.circular(20.0)), - color: Colors.white), + color: Theme.of(context).primaryColor), margin: EdgeInsets.only(top: 40.0), child: Column( mainAxisAlignment: MainAxisAlignment.start, @@ -104,7 +106,7 @@ class _DashboardScreenState extends State { '${model.currentUser.email}', style: TextStyle( fontSize: 12, - color: Color(0X8A000000)), + color: Theme.of(context).primaryColorDark), ) ], ), @@ -113,7 +115,7 @@ class _DashboardScreenState extends State { minWidth: 75, label: 'Logout', onPressed: () async { - await firebaseService.signOutGoogle(); + await _firebaseService.signOutGoogle(); model.currentUser = null; }, inProgress: false, @@ -134,7 +136,7 @@ class _DashboardScreenState extends State { inProgress = true; }); final User user = - await firebaseService.signInWithGoogle(); + await _firebaseService.signInWithGoogle(); model.currentUser = user; final Map data = { 'name': user.name, @@ -152,9 +154,10 @@ class _DashboardScreenState extends State { 'leagueName'), 'leagueId': await LocalStorage.getString( 'leagueId', - ) + ), + 'fcmToken': await _fcmService.getToken() }; - await firestoreService.setData( + await _firestoreService.setData( userId: user.uid, data: data); setState(() { inProgress = false; @@ -213,7 +216,7 @@ class _DashboardScreenState extends State { 'Your Favourites', style: TextStyle( fontSize: 20, - color: Color(0X8A000000)), + color: Theme.of(context).primaryColorDark), ), ], ), diff --git a/lib/screens/FavouriteScreen2.dart b/lib/screens/FavouriteScreen2.dart index ee60c05..adff6e4 100644 --- a/lib/screens/FavouriteScreen2.dart +++ b/lib/screens/FavouriteScreen2.dart @@ -11,6 +11,7 @@ import '../services/TeamService.dart'; import '../services/LocalStorage.dart'; import '../services/GetItLocator.dart'; import '../services/FirestoreService.dart'; +import '../services/FirebaseMessagingService.dart'; class FavouriteTeam extends StatefulWidget { final int leagueId; @@ -27,6 +28,7 @@ class _FavouriteTeamState extends State { Future> futureTeamList; final TextEditingController _controller = new TextEditingController(); final FirestoreService _firestoreService = locator(); + final FirebaseMessagingService _fcmService = locator(); @override void initState() { @@ -282,6 +284,7 @@ class _FavouriteTeamState extends State { await _firestoreService.setData(userId: user.uid, data: data); EasyLoading.dismiss(); } + await _fcmService.subscribeToTopic(topic : team.name.replaceAll(' ', '')); Navigator.of(context).pushReplacementNamed('/home', arguments: { 'favouriteTeamMessage': { 'title': 'Success', diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 1113ca2..6555a3a 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -11,8 +11,7 @@ import '../services/FlushbarHelper.dart'; import '../Provider/HomeViewModel.dart'; import '../services/GetItLocator.dart'; import '../Provider/AppProvider.dart'; -import 'package:pull_to_refresh/pull_to_refresh.dart'; -import '../commons/NetworkAwareWidget.dart'; + class HomeScreen extends StatefulWidget { @override final Map message; @@ -22,8 +21,6 @@ class HomeScreen extends StatefulWidget { class _HomeScreenState extends State with TickerProviderStateMixin { final _pageController = PageController(initialPage: 0); - RefreshController _refreshController = - RefreshController(initialRefresh: false); String teamName; @override void initState() { @@ -55,34 +52,39 @@ class _HomeScreenState extends State with TickerProviderStateMixin { Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); return Scaffold( - bottomNavigationBar: BottomNavbar(), - body: ChangeNotifierProvider( - create: (context) => _viewModel, - child: Consumer( - builder: (context, model, child) => SafeArea( - child: SingleChildScrollView( - child: Container( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible( - fit: FlexFit.loose, - child: - carousel(model: model, appProvider: appProvider)), - appProvider.favouriteTeamScores != null - ? UpcomingMatchesSection(appProvider: appProvider) - : PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ), - NewsSection(model: model, appProvider: appProvider) - ], - ), - ), + bottomNavigationBar: BottomNavbar(), + body: ChangeNotifierProvider( + create: (context) => _viewModel, + child: Consumer( + builder: (context, model, child) => SafeArea( + child: RefreshIndicator( + onRefresh: () async { + await _handleRefresh(appProvider: appProvider); + }, + child: SingleChildScrollView( + child: Container( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + fit: FlexFit.loose, + child: carousel( + model: model, appProvider: appProvider)), + appProvider.favouriteTeamScores != null + ? UpcomingMatchesSection(appProvider: appProvider) + : PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ), + NewsSection(model: model, appProvider: appProvider) + ], ), ), ), - )); + ), + ), + ), + )); } Widget UpcomingMatchesSection({AppProvider appProvider}) { @@ -254,7 +256,9 @@ class _HomeScreenState extends State with TickerProviderStateMixin { ), ), Text( - convertDateTime(dateTime: favouriteNewsList[i].publishedAt), + convertDateTime( + dateTime: favouriteNewsList[i] + .publishedAt), style: TextStyle( fontSize: 14, color: Colors.amberAccent), @@ -332,13 +336,11 @@ class _HomeScreenState extends State with TickerProviderStateMixin { int diffHr = now.difference(dateTime).inHours; int diffDay = now.difference(dateTime).inDays; - if(diffMin < 60) { + if (diffMin < 60) { return '$diffMin mins'; - } - else if(diffMin < 1440) { + } else if (diffMin < 1440) { return '$diffHr hrs'; - } - else { + } else { return '$diffDay days'; } } @@ -352,4 +354,11 @@ class _HomeScreenState extends State with TickerProviderStateMixin { seconds: 3); } } + + Future _handleRefresh({AppProvider appProvider}) async { + await appProvider.loadAllNews(); + await appProvider.loadFavouriteNews(); + await appProvider.loadFavouriteScores(); + await appProvider.loadLeagueWiseScores(); + } } diff --git a/lib/screens/IntroductionScreen.dart b/lib/screens/IntroductionScreen.dart index 98ddc7f..60ea9db 100644 --- a/lib/screens/IntroductionScreen.dart +++ b/lib/screens/IntroductionScreen.dart @@ -7,6 +7,7 @@ import '../services/LocalStorage.dart'; import '../services/GetItLocator.dart'; import '../Provider/AppProvider.dart'; import '../models/User.dart'; +import '../services/FirebaseMessagingService.dart'; class IntroductionScreen extends StatefulWidget { @override @@ -14,10 +15,12 @@ class IntroductionScreen extends StatefulWidget { } class _IntroductionScreenState extends State { - FirebaseService firebaseService = locator(); + final FirebaseService _firebaseService = locator(); - FirestoreService firestoreService = locator(); + final FirestoreService _firestoreService = locator(); + final FirebaseMessagingService _fcmService = + locator(); bool inProgress = false; @override @@ -76,10 +79,15 @@ class _IntroductionScreenState extends State { inProgress = true; }); final User user = - await firebaseService.signInWithGoogle(); + await _firebaseService.signInWithGoogle(); model.currentUser = user; + await _firestoreService.setData( + userId: user.uid, + data: { + 'fcmToken': await _fcmService.getToken() + }); final Map data = - await firestoreService.getData( + await _firestoreService.getData( userId: user.uid); if (data.containsKey('teamName') && data['teamName'] != null && @@ -108,43 +116,50 @@ class _IntroductionScreenState extends State { model.favouriteNewsList = null; model.leagueTableEntries = null; model.navbarIndex = 0; - Navigator.of(context) - .pushReplacementNamed('/home', arguments: { - 'favouriteTeamMessage': { - 'title': 'Success', - 'content': '${data['teamName']} added as your favourite team' - } - }); + Navigator.of(context).pushReplacementNamed( + '/home', + arguments: { + 'favouriteTeamMessage': { + 'title': 'Success', + 'content': + '${data['teamName']} added as your favourite team' + } + }); } else { Navigator.of(context) .pushReplacementNamed('/selectleague'); } }, padding: EdgeInsets.symmetric(horizontal: 4.0), - child: inProgress ? CircularProgressIndicator( - valueColor: - new AlwaysStoppedAnimation(Color(0xfff5f5f5)), - ) : Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Container( - color: Colors.white, - height: 30, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - 'assets/images/google_logo.png'), - )), - Padding( - padding: const EdgeInsets.all(8.0), - child: AutoSizeText( - 'Sign in with Google', - style: TextStyle(color: Colors.white), + child: inProgress + ? CircularProgressIndicator( + valueColor: + new AlwaysStoppedAnimation( + Color(0xfff5f5f5)), + ) + : Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Container( + color: Colors.white, + height: 30, + child: Padding( + padding: + const EdgeInsets.all(8.0), + child: Image.asset( + 'assets/images/google_logo.png'), + )), + Padding( + padding: const EdgeInsets.all(8.0), + child: AutoSizeText( + 'Sign in with Google', + style: TextStyle( + color: Colors.white), + ), + ) + ], ), - ) - ], - ), color: Color(0xff4285f4), ), ) diff --git a/lib/screens/Login.dart b/lib/screens/Login.dart deleted file mode 100644 index 340ea0b..0000000 --- a/lib/screens/Login.dart +++ /dev/null @@ -1,25 +0,0 @@ -import 'package:flutter/material.dart'; -import '../commons/BottomNavbar.dart'; - -class LoginScreen extends StatelessWidget { - Widget build(BuildContext context) { - return Scaffold( - bottomNavigationBar: BottomNavbar(), - backgroundColor: Colors.blueAccent, - body: Center( - child: Card( - child: Container( - padding: EdgeInsets.all(8.0), - child: SelectableText( - 'Login', - style: TextStyle( - fontSize: 30, - fontWeight: FontWeight.w500 - ), - ), - ), - ), - ) - ); - } -} \ No newline at end of file diff --git a/lib/screens/MatchStatScreen.dart b/lib/screens/MatchStatScreen.dart index 409da5f..9719d63 100644 --- a/lib/screens/MatchStatScreen.dart +++ b/lib/screens/MatchStatScreen.dart @@ -60,124 +60,129 @@ class _MatchStatScreenState extends State backgroundColor: Colors.transparent, elevation: 0, ), - body: SingleChildScrollView( - child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0), - child: Column( - children: [ - Row( - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Text( - '${widget.score.competition} - ${convertDateTime(date_time: widget.score.date_time)}', - style: - TextStyle(fontSize: 12, color: Color(0X8A000000)), - ), - ), - Spacer(), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - width: 20.0, - child: Text( - (widget.score.minuteElapsed != null && - widget.score.minuteElapsed != 90 && - widget.score.minuteElapsed != 120) - ? "${widget.score.minuteElapsed}'" - : "${widget.score.status}", - style: TextStyle(color: Colors.red), - ), + body: RefreshIndicator( + onRefresh: () async { + + }, + child: SingleChildScrollView( + child: Padding( + padding: + const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0), + child: Column( + children: [ + Row( + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + '${widget.score.competition} - ${convertDateTime(date_time: widget.score.date_time)}', + style: + TextStyle(fontSize: 12, color: Theme.of(context).primaryColorDark), ), - if (widget.score.minuteElapsed != null && - widget.score.minuteElapsed != 90 && - widget.score.minuteElapsed != 120) + ), + Spacer(), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ Container( - width: animation.value, - height: 2.0, - color: Colors.red, - ) - ], - ) - ], - ), - Row( - children: [ - Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 4.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: widget.score.homeTeamLogo, - placeholder: - (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - ), - FittedBox(child: Text(widget.score.homeTeam)), - ], - ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, + width: 20.0, + child: Text( + (widget.score.minuteElapsed != null && + widget.score.minuteElapsed != 90 && + widget.score.minuteElapsed != 120) + ? "${widget.score.minuteElapsed}'" + : "${widget.score.status}", + style: TextStyle(color: Colors.red), + ), + ), + if (widget.score.minuteElapsed != null && + widget.score.minuteElapsed != 90 && + widget.score.minuteElapsed != 120) + Container( + width: animation.value, + height: 2.0, + color: Colors.red, + ) + ], + ) + ], + ), + Row( + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - (widget.score.minuteElapsed != null) - ? Text( - '${widget.score.homeScore} - ${widget.score.awayScore}', - style: TextStyle(fontSize: 30), - ) - : Text( - 'VS', - style: TextStyle( - fontSize: 18, color: Color(0XAA000000)), - ), + Padding( + padding: const EdgeInsets.only(bottom: 4.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.homeTeamLogo, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + ), + FittedBox(child: Text(widget.score.homeTeam)), ], ), - ), - Column( - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: widget.score.awayTeamLogo, - placeholder: - (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - ), - FittedBox(child: Text(widget.score.awayTeam)) - ], - ) - ], - ), - Divider( - thickness: 0.7, - ), - (widget.score.status != 'NS') - ? ChangeNotifierProvider( - create: (context) => _matchEventViewModel, - child: Scorer( - score: widget.score, + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + (widget.score.minuteElapsed != null) + ? Text( + '${widget.score.homeScore} - ${widget.score.awayScore}', + style: TextStyle(fontSize: 30), + ) + : Text( + 'VS', + style: TextStyle( + fontSize: 18, color: Color(0XAA000000)), + ), + ], ), + ), + Column( + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.awayTeamLogo, + placeholder: + (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + ), + FittedBox(child: Text(widget.score.awayTeam)) + ], ) - : getScorer(), - Divider( - thickness: 0.7, - ), - (widget.score.status != 'NS') - ? ChangeNotifierProvider( - create: (contet) => _matchStatViewModel, - child: Stats( - score: widget.score, - ), - ) - : getStats() - ], + ], + ), + Divider( + thickness: 0.7, + ), + (widget.score.status != 'NS') + ? ChangeNotifierProvider( + create: (context) => _matchEventViewModel, + child: Scorer( + score: widget.score, + ), + ) + : getScorer(), + Divider( + thickness: 0.7, + ), + (widget.score.status != 'NS') + ? ChangeNotifierProvider( + create: (contet) => _matchStatViewModel, + child: Stats( + score: widget.score, + ), + ) + : getStats() + ], + ), ), ), ), diff --git a/lib/screens/News.dart b/lib/screens/News.dart index 2b31fd0..c1b73e6 100644 --- a/lib/screens/News.dart +++ b/lib/screens/News.dart @@ -7,7 +7,6 @@ import '../commons/NewsCard.dart'; import 'package:pk_skeleton/pk_skeleton.dart'; import '../services/LocalStorage.dart'; import '../Provider/AppProvider.dart'; -import 'package:pull_to_refresh/pull_to_refresh.dart'; class NewsScreen extends StatefulWidget { @override @@ -17,7 +16,6 @@ class NewsScreen extends StatefulWidget { class _NewsScreenState extends State with TickerProviderStateMixin { TabController _tabController; String teamName; - RefreshController _refreshController = RefreshController(initialRefresh: false); void initState(){ final initialState = Provider.of(context, listen: false); if(initialState.newsList == null) { @@ -82,53 +80,13 @@ class _NewsScreenState extends State with TickerProviderStateMixin { } Widget allNews({AppProvider model}) { - return SingleChildScrollView( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - 'Latest News', - style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500), - textAlign: TextAlign.left, - ), - ), - model.newsList == null ? ListView.builder( - itemCount: 5, - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }) : ListView.separated( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: model.newsList.length, - separatorBuilder: (BuildContext context, int index) { - return Divider(); - }, - itemBuilder: (BuildContext context, int index) { - return NewsCard( - index: index, - news: model.newsList[index], - ); - }) - ], - ), - ), - ); - } - - Widget favouriteTeamNews({AppProvider model}) { - return SingleChildScrollView( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Card( + return RefreshIndicator( + onRefresh: () async { + await _handleAllNewsRefresh(appProvider: model); + }, + child: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(8.0), child: Column( mainAxisSize: MainAxisSize.min, children: [ @@ -140,7 +98,7 @@ class _NewsScreenState extends State with TickerProviderStateMixin { textAlign: TextAlign.left, ), ), - model.favouriteNewsList == null ? ListView.builder( + model.newsList == null ? ListView.builder( itemCount: 5, shrinkWrap: true, physics: NeverScrollableScrollPhysics(), @@ -149,18 +107,17 @@ class _NewsScreenState extends State with TickerProviderStateMixin { isCircularImage: true, isBottomLinesActive: true, ); - }) - : ListView.separated( + }) : ListView.separated( shrinkWrap: true, physics: NeverScrollableScrollPhysics(), - itemCount: model.favouriteNewsList.length, + itemCount: model.newsList.length, separatorBuilder: (BuildContext context, int index) { return Divider(); }, itemBuilder: (BuildContext context, int index) { return NewsCard( index: index, - news: model.favouriteNewsList[index], + news: model.newsList[index], ); }) ], @@ -170,15 +127,62 @@ class _NewsScreenState extends State with TickerProviderStateMixin { ); } - Future _onLoading({AppProvider appProvider}) async { - appProvider.newsList = null; - appProvider.favouriteNewsList = null; - _refreshController.loadComplete(); + Widget favouriteTeamNews({AppProvider model}) { + return RefreshIndicator( + onRefresh: () async { + await _handleFavouriteNewsRefresh(appProvider: model); + }, + child: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Card( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + 'Latest News', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500), + textAlign: TextAlign.left, + ), + ), + model.favouriteNewsList == null ? ListView.builder( + itemCount: 5, + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }) + : ListView.separated( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: model.favouriteNewsList.length, + separatorBuilder: (BuildContext context, int index) { + return Divider(); + }, + itemBuilder: (BuildContext context, int index) { + return NewsCard( + index: index, + news: model.favouriteNewsList[index], + ); + }) + ], + ), + ), + ), + ), + ); + } + + Future _handleAllNewsRefresh({AppProvider appProvider}) async { + await appProvider.loadAllNews(); } - Future _onRefresh({AppProvider appProvider}) async { + Future _handleFavouriteNewsRefresh({AppProvider appProvider}) async { await appProvider.loadFavouriteNews(); - await appProvider.loadAllNews(); - _refreshController.refreshCompleted(); } } \ No newline at end of file diff --git a/lib/screens/NewsArticle.dart b/lib/screens/NewsArticle.dart index 79ebe3f..0a04f0f 100644 --- a/lib/screens/NewsArticle.dart +++ b/lib/screens/NewsArticle.dart @@ -3,6 +3,7 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:intl/intl.dart'; import '../models/News.dart'; import 'package:url_launcher/url_launcher.dart'; +import 'package:share/share.dart'; class NewsArticleScreen extends StatelessWidget { final int index; @@ -13,9 +14,18 @@ class NewsArticleScreen extends StatelessWidget { child: Scaffold( extendBodyBehindAppBar: true, appBar: AppBar( - backgroundColor: Colors.transparent, + backgroundColor: Color(0x04000000), elevation: 0, iconTheme: IconThemeData(color: Colors.white), + actions: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: InkWell(child: Icon(Icons.share), + onTap: () { + Share.share('${news.title}\n${news.url}'); + },), + ) + ], ), body: LayoutBuilder(builder: (context, constraint) { return Stack( diff --git a/lib/screens/NoInternetScreen.dart b/lib/screens/NoInternetScreen.dart index f734ef8..ce3c7ed 100644 --- a/lib/screens/NoInternetScreen.dart +++ b/lib/screens/NoInternetScreen.dart @@ -7,6 +7,7 @@ import '../services/FirebaseService.dart'; import '../commons/CustomRaisedButton.dart'; import '../Provider/AppProvider.dart'; import '../services/FlushbarHelper.dart'; +import '../services/FirebaseMessagingService.dart'; class NoInternetScreen extends StatefulWidget { final String from; @@ -19,6 +20,8 @@ class _NoInternetScreenState extends State { FirebaseService firebaseService = locator(); final RemoteConfigService _remoteConfigService = locator(); + final FirebaseMessagingService _fcmService = locator(); + bool inProgress = false; @override Widget build(BuildContext context) { @@ -69,6 +72,7 @@ class _NoInternetScreenState extends State { bool result = await DataConnectionChecker().hasConnection; if(result == true) { + await _fcmService.initialise(); await _remoteConfigService.initialise(); final currentUser = await firebaseService.getCurrentUser(); appProvider.currentUser = currentUser; diff --git a/lib/services/CustomRouter.dart b/lib/services/CustomRouter.dart index d8a4676..a15aa2f 100644 --- a/lib/services/CustomRouter.dart +++ b/lib/services/CustomRouter.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; import 'package:sportsmojo/models/Score.dart'; import 'package:sportsmojo/screens/MatchStatScreen.dart'; import '../screens/HomeScreen.dart'; @@ -15,7 +15,8 @@ import '../start.dart'; import '../screens/NoInternetScreen.dart'; import '../commons/NetworkAwareWidget.dart'; -class Router { +class RouterService { + final GlobalKey navigationKey = GlobalKey(); Route generateRoutes(RouteSettings settings) { final List validRoutes = [ '/start', diff --git a/lib/services/FirebaseMessagingService.dart b/lib/services/FirebaseMessagingService.dart new file mode 100644 index 0000000..5c9bf32 --- /dev/null +++ b/lib/services/FirebaseMessagingService.dart @@ -0,0 +1,37 @@ +import 'dart:io'; +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'CustomRouter.dart'; +import 'GetItLocator.dart'; + +class FirebaseMessagingService { + final FirebaseMessaging _fcm = FirebaseMessaging(); + final RouterService _routerService = locator(); + Future initialise() async { + if (Platform.isIOS) { + _fcm.requestNotificationPermissions(IosNotificationSettings()); + } + _fcm.configure( + onMessage: (Map message) async { + print("onMessage: $message"); + _routerService.navigationKey.currentState.pushReplacementNamed('/score'); + }, + onLaunch: (Map message) async { + print("onLaunch: $message"); + _routerService.navigationKey.currentState.pushReplacementNamed('/score'); + }, + onResume: (Map message) async { + print("onResume: $message"); + _routerService.navigationKey.currentState.pushReplacementNamed('/score'); + }, + ); + } + + Future subscribeToTopic({String topic}) async { + await _fcm.subscribeToTopic(topic); + } + + Future getToken() async { + final String token = await _fcm.getToken(); + return token; + } +} \ No newline at end of file diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index 10df44e..ef1a7db 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -17,6 +17,9 @@ import 'FirebaseService.dart'; import 'FirestoreService.dart'; import 'RemoteConfigService.dart'; import 'NetworkStatusService.dart'; +import 'FirebaseMessagingService.dart'; +import 'CustomRouter.dart'; + GetIt locator = GetIt.instance; Future setupLocator() async{ @@ -33,6 +36,8 @@ Future setupLocator() async{ locator.registerLazySingleton(() => FirestoreService()); locator.registerLazySingleton(() => NetworkStatusService()); locator.registerSingleton(remoteConfigService); + locator.registerLazySingleton(() => FirebaseMessagingService()); + locator.registerLazySingleton(() => RouterService()); locator.registerFactory(() => HomeViewModel(0)); locator.registerFactory(() => MatchStatViewModel(null)); locator.registerFactory(() => MatchEventViewModel(null)); diff --git a/lib/services/HttpService.dart b/lib/services/HttpService.dart index 0977b6c..c64e61f 100644 --- a/lib/services/HttpService.dart +++ b/lib/services/HttpService.dart @@ -6,7 +6,7 @@ class HttpService { static Dio getApiClient() { final RemoteConfigService _remoteConfigService = locator(); BaseOptions options = new BaseOptions(headers: { - 'x-rapidapi-host': 'v3.football.api-sports.io', + 'x-rapidapi-host': _remoteConfigService.getString(key: 'xRapidapiHost'), 'x-rapidapi-key': _remoteConfigService.getString(key: 'scoreApiKey') }, baseUrl: _remoteConfigService.getString(key: 'scoreUrl')); final _dio = new Dio(options); diff --git a/lib/services/RemoteConfigService.dart b/lib/services/RemoteConfigService.dart index aa665ab..1e996d5 100644 --- a/lib/services/RemoteConfigService.dart +++ b/lib/services/RemoteConfigService.dart @@ -23,7 +23,8 @@ class RemoteConfigService { 'scoreApiKey': "", 'newsApiKey': "", 'scoreUrl': "", - 'newsUrl': "" + 'newsUrl': "", + 'xRapidapiHost': "" }; await _remoteConfig.setDefaults(defaults); await _remoteConfig.fetch(expiration: Duration(hours: 1)); diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index e5c1087..934cfdc 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -59,64 +59,69 @@ class _AllScoresState extends State { @override Widget build(BuildContext context) { return Consumer( - builder: (context, model, child) => SingleChildScrollView( - controller: _scrollController, - child: Container( - margin: EdgeInsets.only(top: 10.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only( - left: 8.0, right: 8.0, top: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LeagueDropdown( - items: getLeagueItems(), - selectedLeague: model.selectedLeague, - backgroundColor: Color(0xfffafafa), - fontColor: Colors.black, - purpose: "score", - ), - FlatButton( - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Icon(Icons.filter_list), - Text('Filter') - ], + builder: (context, model, child) => RefreshIndicator( + onRefresh: () async { + await _handleRefresh(model: model); + }, + child: SingleChildScrollView( + controller: _scrollController, + child: Container( + margin: EdgeInsets.only(top: 10.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only( + left: 8.0, right: 8.0, top: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + LeagueDropdown( + items: getLeagueItems(), + selectedLeague: model.selectedLeague, + backgroundColor: Color(0xfffafafa), + fontColor: Colors.black, + purpose: "score", ), - color: Color(0xfffafafa), - onPressed: () { - onSettingPressed(); - }, - ) - ], + FlatButton( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Icon(Icons.filter_list), + Text('Filter') + ], + ), + color: Color(0xfffafafa), + onPressed: () { + onSettingPressed(); + }, + ) + ], + ), ), - ), - (model.leagueWiseScores != null && _scores != null) - ? _totalNoOfScores > 0 - ? scoreList() - : NoContent( - title: 'No matches found', - description: - 'There are no league matches matching your query', - ) - : ListView.builder( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: 10, - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }), - ], + (model.leagueWiseScores != null && _scores != null) + ? _totalNoOfScores > 0 + ? scoreList() + : NoContent( + title: 'No matches found', + description: + 'There are no league matches matching your query', + ) + : ListView.builder( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), + ], + ), ), ), - )); + )); } Widget scoreList() { @@ -244,4 +249,10 @@ class _AllScoresState extends State { return DateFormat('E, d MMMM').format(date_time); } } + + Future _handleRefresh({AppProvider model}) async { + await model.loadLeagueTable( + leagueName: model.selectedLeague); + Navigator.of(context).pushReplacementNamed('/league'); + } } diff --git a/lib/widgets/FavouriteScoresPast.dart b/lib/widgets/FavouriteScoresPast.dart index c828699..d6ddced 100644 --- a/lib/widgets/FavouriteScoresPast.dart +++ b/lib/widgets/FavouriteScoresPast.dart @@ -39,28 +39,33 @@ class _FavouriteScoresPastState extends State { @override Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); - return SingleChildScrollView( - controller: _scrollController, - child: Container( - margin: EdgeInsets.only(top: 30.0), - child: _scores != null - ? _totalNoOfScores > 0 - ? scoreList() - : NoContent( - title: 'No matches found', - description: - 'There are no past league matches matching your query', - ) - : ListView.builder( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: 10, - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }), + return RefreshIndicator( + onRefresh: () async { + await _handleRefresh(appProvider: appProvider); + }, + child: SingleChildScrollView( + controller: _scrollController, + child: Container( + margin: EdgeInsets.only(top: 30.0), + child: _scores != null + ? _totalNoOfScores > 0 + ? scoreList() + : NoContent( + title: 'No matches found', + description: + 'There are no past league matches matching your query', + ) + : ListView.builder( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), + ), ), ); } @@ -138,4 +143,9 @@ class _FavouriteScoresPastState extends State { } }); } + + Future _handleRefresh({AppProvider appProvider}) async { + await appProvider.loadFavouriteScores(); + Navigator.of(context).pushReplacementNamed('/score'); + } } diff --git a/lib/widgets/LeagueTableWiget.dart b/lib/widgets/LeagueTableWiget.dart index d297e38..543d51d 100644 --- a/lib/widgets/LeagueTableWiget.dart +++ b/lib/widgets/LeagueTableWiget.dart @@ -125,63 +125,63 @@ class _LeagueTableWidgetState extends State { width: MediaQuery.of(context).size.width * 0.35, child: Text( 'Club', - style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.left, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'MP', - style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'W', - style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'L', - style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'D', - style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'Pts.', - style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'GF', - style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'GA', - style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'GD', - style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )) ], diff --git a/lib/widgets/TopScorer.dart b/lib/widgets/TopScorer.dart index 7548d1d..04268d9 100644 --- a/lib/widgets/TopScorer.dart +++ b/lib/widgets/TopScorer.dart @@ -114,21 +114,21 @@ class _TopScorersState extends State { width: MediaQuery.of(context).size.width * 0.45, child: Text( 'Player', - style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.left, )), Container( width: MediaQuery.of(context).size.width * 0.21, child: Text( 'Goals(P)', - style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.21, child: Text( 'Assists', - style: TextStyle(fontSize: 15, color: Color(0X8A000000)), + style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), ], @@ -181,7 +181,7 @@ class _TopScorersState extends State { ), Text( '${topScorer.teamName}', - style: TextStyle(fontSize: 13, color: Color(0X8A000000)), + style: TextStyle(fontSize: 13, color: Theme.of(context).primaryColorDark), ) ], ), diff --git a/pubspec.lock b/pubspec.lock index 4e297cc..29159cc 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -204,6 +204,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.1+2" + firebase_messaging: + dependency: "direct main" + description: + name: firebase_messaging + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.16" firebase_remote_config: dependency: "direct main" description: @@ -408,13 +415,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.0.5+1" - pull_to_refresh: - dependency: "direct main" - description: - name: pull_to_refresh - url: "https://pub.dartlang.org" - source: hosted - version: "1.5.8" quiver: dependency: transitive description: @@ -429,6 +429,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.24.0" + share: + dependency: "direct main" + description: + name: share + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.4+3" shared_preferences: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 950c40c..0fbb21c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -34,7 +34,6 @@ dependencies: flutter_spinkit: ^4.1.2+1 sqflite: ^1.3.0 get_it: ^4.0.2 - pull_to_refresh: ^1.5.7 intl: ^0.16.1 auto_size_text: ^2.1.0 firebase_auth: ^0.16.1 @@ -44,6 +43,8 @@ dependencies: firebase_remote_config: ^0.3.1+1 data_connection_checker: ^0.3.4 connectivity: ^0.4.9 + firebase_messaging: ^6.0.16 + share: ^0.6.4+3 dev_dependencies: flutter_test: sdk: flutter From c829358cbf9c615a458074850dc04655897af180 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sat, 1 Aug 2020 22:03:43 +0530 Subject: [PATCH 42/49] Added theme provider --- ios/Flutter/Generated 29.xcconfig | 10 ++++ ios/Flutter/flutter_export_environment 29.sh | 11 ++++ lib/App.dart | 43 +++++++++++++++ lib/Provider/ThemeProvider.dart | 13 +++++ lib/main.dart | 57 ++++++++------------ lib/services/GetItLocator.dart | 2 + lib/start.dart | 2 +- pubspec.lock | 7 +++ pubspec.yaml | 1 + 9 files changed, 111 insertions(+), 35 deletions(-) create mode 100644 ios/Flutter/Generated 29.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 29.sh create mode 100644 lib/App.dart create mode 100644 lib/Provider/ThemeProvider.dart diff --git a/ios/Flutter/Generated 29.xcconfig b/ios/Flutter/Generated 29.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 29.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 29.sh b/ios/Flutter/flutter_export_environment 29.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 29.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/App.dart b/lib/App.dart new file mode 100644 index 0000000..35c0335 --- /dev/null +++ b/lib/App.dart @@ -0,0 +1,43 @@ +import 'package:sportsmojo/models/User.dart'; +import 'Provider/AppProvider.dart'; +import 'services/CustomRouter.dart'; +import 'services/GetItLocator.dart'; +import 'services/LocalStorage.dart'; +import 'services/FirebaseService.dart'; +import 'services/RemoteConfigService.dart'; +import 'package:data_connection_checker/data_connection_checker.dart'; +import 'services/NetworkStatusService.dart'; +import 'services/FirebaseMessagingService.dart'; +import 'Provider/ThemeProvider.dart'; + +class App { + static ThemeProvider themeProvider; + static AppProvider appProvider; + static RouterService routerService; + static NetworkStatusService networkStatusService; + static bool result; + + static Future initialiseApp() async { + await setupLocator(); + final leagueName = await LocalStorage.getString('leagueName'); + User currentUser = null; + FirebaseService firebaseService = locator(); + final RemoteConfigService _remoteConfigService = + locator(); + networkStatusService = + locator(); + final FirebaseMessagingService _fcmService = + locator(); + routerService = locator(); + result = await DataConnectionChecker().hasConnection; + if (result) { + await _fcmService.initialise(); + await _remoteConfigService.initialise(); + currentUser = await firebaseService.getCurrentUser(); + } + final _theme = await LocalStorage.getString('appTheme'); + appProvider = + locator(param1: leagueName, param2: currentUser); + themeProvider = locator(param1: _theme == "dark" ? AppTheme.Dark : AppTheme.Light); + } +} \ No newline at end of file diff --git a/lib/Provider/ThemeProvider.dart b/lib/Provider/ThemeProvider.dart new file mode 100644 index 0000000..e895e28 --- /dev/null +++ b/lib/Provider/ThemeProvider.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; + +enum AppTheme {Light, Dark} +class ThemeProvider extends ChangeNotifier { + AppTheme _appTheme; + ThemeProvider(this._appTheme); + AppTheme get appTheme => _appTheme; + + void set appTheme(AppTheme theme) { + _appTheme = theme; + notifyListeners(); + } +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 56f11f5..06d8ad4 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -13,6 +13,9 @@ import 'package:data_connection_checker/data_connection_checker.dart'; import 'screens/NoInternetScreen.dart'; import 'services/NetworkStatusService.dart'; import 'services/FirebaseMessagingService.dart'; +import 'Provider/ThemeProvider.dart'; +import 'services/LocalStorage.dart'; +import 'App.dart'; void main() async { final ThemeData lightTheme = ThemeData( @@ -20,54 +23,40 @@ void main() async { primaryColorDark: Color(0X8A000000), brightness: Brightness.light); final ThemeData darkTheme = ThemeData( - primaryColor: Color(0xFF1D1D1D), + primaryColor: Color(0xFF54B2FB), primaryColorDark: Color(0XFFF1F1F1), brightness: Brightness.dark); WidgetsFlutterBinding.ensureInitialized(); - await setupLocator(); - final leagueName = await LocalStorage.getString('leagueName'); - User currentUser = null; - FirebaseService firebaseService = locator(); - final RemoteConfigService _remoteConfigService = - locator(); - final NetworkStatusService _networkStatusService = - locator(); - final FirebaseMessagingService _fcmService = - locator(); - final RouterService _routerService = locator(); - final result = await DataConnectionChecker().hasConnection; - if (result) { - await _fcmService.initialise(); - await _remoteConfigService.initialise(); - currentUser = await firebaseService.getCurrentUser(); - } - - AppProvider appProvider = - locator(param1: leagueName, param2: currentUser); + await App.initialiseApp(); runApp(MultiProvider( providers: [ ChangeNotifierProvider( - create: (context) => appProvider, + create: (context) => App.appProvider, ), StreamProvider( create: (context) => - _networkStatusService.networkStatusController.stream, + App.networkStatusService.networkStatusController.stream, + ), + ChangeNotifierProvider( + create: (context) => App.themeProvider, ) ], child: FlutterEasyLoading( - child: MaterialApp( - debugShowCheckedModeBanner: false, - theme: lightTheme, - darkTheme: darkTheme, - themeMode: ThemeMode.dark, - navigatorKey: _routerService.navigationKey, - home: WillPopScope( - onWillPop: () => Future.value(false), - child: result ? Start() : NoInternetScreen()), - onGenerateRoute: _routerService.generateRoutes, - navigatorObservers: [HeroController()], + child: Consumer( + builder: (context, model, child) => MaterialApp( + debugShowCheckedModeBanner: false, + theme: lightTheme, + darkTheme: darkTheme, + themeMode: model.appTheme == AppTheme.Light ? ThemeMode.light : ThemeMode.dark, + navigatorKey: App.routerService.navigationKey, + home: WillPopScope( + onWillPop: () => Future.value(false), + child: App.result ? Start() : NoInternetScreen()), + onGenerateRoute: App.routerService.generateRoutes, + navigatorObservers: [HeroController()], + ), ), ), )); diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index ef1a7db..2902141 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -19,6 +19,7 @@ import 'RemoteConfigService.dart'; import 'NetworkStatusService.dart'; import 'FirebaseMessagingService.dart'; import 'CustomRouter.dart'; +import '../Provider/ThemeProvider.dart'; GetIt locator = GetIt.instance; @@ -43,4 +44,5 @@ Future setupLocator() async{ locator.registerFactory(() => MatchEventViewModel(null)); locator.registerFactoryParam, int>((scores, index) => FavouriteScoresViewModel(scores, index)); locator.registerFactoryParam((leagueName, currentUser) => AppProvider(0, leagueName, now.subtract(Duration(days: 30)), now.add(Duration(days: 7)), currentUser)); + locator.registerFactoryParam((theme, _) => ThemeProvider(theme)); } \ No newline at end of file diff --git a/lib/start.dart b/lib/start.dart index b4a5e10..d963af7 100644 --- a/lib/start.dart +++ b/lib/start.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'services/LocalStorage.dart'; import 'dart:async'; -import 'screens/IntroductionScreen.dart'; class Start extends StatefulWidget { @@ -14,6 +13,7 @@ class StartState extends State { if (teamName != null) { Navigator.of(context).pushReplacementNamed('/home'); } else { + await LocalStorage.setString('appTheme', "light"); Navigator.of(context).pushReplacementNamed('/introduction'); } } diff --git a/pubspec.lock b/pubspec.lock index 29159cc..96c09c7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -324,6 +324,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.6.1+1" + lite_rolling_switch: + dependency: "direct main" + description: + name: lite_rolling_switch + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1" matcher: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0fbb21c..70c4cc7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -45,6 +45,7 @@ dependencies: connectivity: ^0.4.9 firebase_messaging: ^6.0.16 share: ^0.6.4+3 + lite_rolling_switch: ^0.1.1 dev_dependencies: flutter_test: sdk: flutter From cf6b59d87675e9c5df7fc9b85aabf81506f58349 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sun, 2 Aug 2020 00:25:33 +0530 Subject: [PATCH 43/49] Added theme toggle button to dashboard --- lib/commons/BottomNavbar.dart | 10 +- lib/screens/DashboardScreen.dart | 704 ++++++++++++--------- lib/screens/HomeScreen.dart | 88 ++- lib/screens/News.dart | 196 +++--- lib/services/FirebaseMessagingService.dart | 4 + lib/widgets/AllScores.dart | 137 ++-- lib/widgets/FavouriteScoresPast.dart | 61 +- lib/widgets/FavouriteScoresUpcoming.dart | 55 +- lib/widgets/LeagueTableWiget.dart | 183 +++--- lib/widgets/Scorers.dart | 91 +-- lib/widgets/Stats.dart | 599 +++++++++--------- lib/widgets/TopScorer.dart | 129 ++-- pubspec.lock | 14 +- pubspec.yaml | 2 +- 14 files changed, 1250 insertions(+), 1023 deletions(-) diff --git a/lib/commons/BottomNavbar.dart b/lib/commons/BottomNavbar.dart index 8cccc19..25a367f 100644 --- a/lib/commons/BottomNavbar.dart +++ b/lib/commons/BottomNavbar.dart @@ -2,13 +2,15 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'custom_icons.dart'; import '../Provider/AppProvider.dart'; +import '../Provider/ThemeProvider.dart'; class BottomNavbar extends StatelessWidget { - static final _bottomNavBarStyle = TextStyle( - fontWeight: FontWeight.w400, - color: Colors.black, - ); final List routes = ['/home', '/score', '/league', '/news', '/dashboard']; Widget build(BuildContext context){ + final ThemeProvider _themeProvider = Provider.of(context); + final _bottomNavBarStyle = TextStyle( + fontWeight: FontWeight.w400, + color: _themeProvider.appTheme == AppTheme.Light ? Colors.black : Colors.white, + ); final List bottomNavbarItems = [ new BottomNavigationBarItem( activeIcon: Icon(MyFlutterApp.home__1_, color: Theme.of(context).primaryColor,), diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index 39ad76a..200e03c 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -1,6 +1,7 @@ import 'package:auto_size_text/auto_size_text.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; import 'package:provider/provider.dart'; import '../services/FirebaseService.dart'; import '../models/User.dart'; @@ -13,7 +14,8 @@ import '../services/FirestoreService.dart'; import '../constants.dart'; import '../commons/CustomRaisedButton.dart'; import '../services/FirebaseMessagingService.dart'; - +import '../Provider/ThemeProvider.dart'; +import 'package:day_night_switcher/day_night_switcher.dart'; class DashboardScreen extends StatefulWidget { @override _DashboardScreenState createState() => _DashboardScreenState(); @@ -55,330 +57,442 @@ class _DashboardScreenState extends State { backgroundColor: Theme.of(context).primaryColor, bottomNavigationBar: BottomNavbar(), body: Consumer( - builder: (context, model, child) => Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.only( - topRight: Radius.circular(20.0), - topLeft: Radius.circular(20.0)), - color: Theme.of(context).primaryColor), - margin: EdgeInsets.only(top: 40.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only( - top: 30.0, left: 8.0, right: 8.0, bottom: 8.0), - child: (model.currentUser != null) - ? Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(right: 8.0), - child: Container( - width: 50, - child: ClipRRect( - borderRadius: BorderRadius.circular(12.0), - child: CachedNetworkImage( - imageUrl: model.currentUser.profilePic, - placeholder: (BuildContext context, - String url) => - Image.asset( - 'assets/images/user-placeholder.jpg')), - ), - ), - ), - Expanded( - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AutoSizeText( - '${model.currentUser.name}', - style: TextStyle(fontSize: 20), - textAlign: TextAlign.left, - maxLines: 1, - ), - Text( - '${model.currentUser.email}', - style: TextStyle( - fontSize: 12, - color: Theme.of(context).primaryColorDark), - ) - ], - ), - CustomRaisedButton( - height: 30, - minWidth: 75, - label: 'Logout', - onPressed: () async { - await _firebaseService.signOutGoogle(); - model.currentUser = null; - }, - inProgress: false, - ) - ], + builder: (context, model, child) => Consumer( + builder: (context, themeModel, child) => Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + topRight: Radius.circular(20.0), + topLeft: Radius.circular(20.0)), + color: themeModel.appTheme == AppTheme.Light ? Colors.white : Color(0XFF1D1D1D)), + margin: EdgeInsets.only(top: 40.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only( + top: 30.0, left: 8.0, right: 8.0, bottom: 8.0), + child: (model.currentUser != null) + ? Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(right: 8.0), + child: Container( + width: 50, + child: ClipRRect( + borderRadius: BorderRadius.circular(12.0), + child: CachedNetworkImage( + imageUrl: model.currentUser.profilePic, + placeholder: (BuildContext context, + String url) => + Image.asset( + 'assets/images/user-placeholder.jpg')), ), ), - ], - ) - : Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - width: MediaQuery.of(context).size.width * 0.5, - child: RaisedButton( - onPressed: () async { - setState(() { - inProgress = true; - }); - final User user = - await _firebaseService.signInWithGoogle(); - model.currentUser = user; - final Map data = { - 'name': user.name, - 'email': user.email, - 'teamName': await LocalStorage.getString( - 'teamName', - ), - 'teamId': await LocalStorage.getString( - 'teamId', - ), - 'teamLogo': await LocalStorage.getString( - 'teamLogo', - ), - 'leagueName': await LocalStorage.getString( - 'leagueName'), - 'leagueId': await LocalStorage.getString( - 'leagueId', - ), - 'fcmToken': await _fcmService.getToken() - }; - await _firestoreService.setData( - userId: user.uid, data: data); - setState(() { - inProgress = false; - }); - }, - padding: EdgeInsets.symmetric(horizontal: 4.0), - child: inProgress ? CircularProgressIndicator( - valueColor: - new AlwaysStoppedAnimation(Color(0xfff5f5f5)), - ) : Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Container( - color: Colors.white, - height: 30, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - 'assets/images/google_logo.png'), - )), - Padding( - padding: const EdgeInsets.all(8.0), - child: AutoSizeText( - 'Sign in with Google', - style: TextStyle(color: Colors.white), - ), - ) - ], - ), - color: Color(0xff4285f4), - ), - ) - ], - ), - ), - Divider( - thickness: 0.7, - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Stack( - children: [ - Container( - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 12.0), - child: Column( - children: [ - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 20.0, vertical: 8.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.start, + ), + Expanded( + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.start, children: [ + AutoSizeText( + '${model.currentUser.name}', + style: TextStyle(fontSize: 20), + textAlign: TextAlign.left, + maxLines: 1, + ), Text( - 'Your Favourites', + '${model.currentUser.email}', style: TextStyle( - fontSize: 20, + fontSize: 12, color: Theme.of(context).primaryColorDark), - ), + ) ], ), + CustomRaisedButton( + height: 30, + minWidth: 75, + label: 'Logout', + onPressed: () async { + await _firebaseService.signOutGoogle(); + model.currentUser = null; + }, + inProgress: false, + ) + ], + ), + ), + ], + ) + : Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: MediaQuery.of(context).size.width * 0.5, + child: RaisedButton( + onPressed: () async { + setState(() { + inProgress = true; + }); + final User user = + await _firebaseService.signInWithGoogle(); + model.currentUser = user; + final Map data = { + 'name': user.name, + 'email': user.email, + 'teamName': await LocalStorage.getString( + 'teamName', + ), + 'teamId': await LocalStorage.getString( + 'teamId', + ), + 'teamLogo': await LocalStorage.getString( + 'teamLogo', + ), + 'leagueName': await LocalStorage.getString( + 'leagueName'), + 'leagueId': await LocalStorage.getString( + 'leagueId', + ), + 'fcmToken': await _fcmService.getToken() + }; + await _firestoreService.setData( + userId: user.uid, data: data); + setState(() { + inProgress = false; + }); + }, + padding: EdgeInsets.symmetric(horizontal: 4.0), + child: inProgress ? CircularProgressIndicator( + valueColor: + new AlwaysStoppedAnimation(Color(0xfff5f5f5)), + ) : Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Container( + color: Colors.white, + height: 30, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset( + 'assets/images/google_logo.png'), + )), + Padding( + padding: const EdgeInsets.all(8.0), + child: AutoSizeText( + 'Sign in with Google', + style: TextStyle(color: Colors.white), + ), + ) + ], ), - Padding( - padding: const EdgeInsets.all(12.0), - child: Container( - width: + color: Color(0xff4285f4), + ), + ) + ], + ), + ), + Divider( + thickness: 0.7, + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Stack( + children: [ + Container( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20.0, vertical: 8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text( + 'Your Favourites', + style: TextStyle( + fontSize: 20, + color: Theme.of(context).primaryColorDark), + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.all(12.0), + child: Container( + width: MediaQuery.of(context).size.width * 0.8, - decoration: BoxDecoration( - boxShadow: [ - BoxShadow( - color: Colors.white.withOpacity(0.8), - offset: Offset(-6.0, -6.0), - blurRadius: 16.0, + decoration: BoxDecoration( + boxShadow: themeModel.appTheme == AppTheme.Light ? [ + BoxShadow( + color: Colors.white.withOpacity(0.8), + offset: Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.black.withOpacity(0.1), + offset: Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ] : [ + BoxShadow( + color: Colors.black.withOpacity(0.8), + offset: Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.white.withOpacity(0.1), + offset: Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ], + color: themeModel.appTheme == AppTheme.Light ? Colors.white : Color(0XFF1D1D1D), + borderRadius: BorderRadius.circular(12.0), ), - BoxShadow( - color: Colors.black.withOpacity(0.1), - offset: Offset(6.0, 6.0), - blurRadius: 16.0, - ), - ], - color: Color(0xFFFFFFFF), - borderRadius: BorderRadius.circular(12.0), - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.symmetric( - vertical: 30.0), - child: Column( - mainAxisAlignment: + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + vertical: 30.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: + crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only( - bottom: 4.0), - child: Container( - height: 40, - child: leagueLogo != null - ? CachedNetworkImage( + children: [ + Padding( + padding: const EdgeInsets.only( + bottom: 4.0), + child: Container( + height: 40, + child: leagueLogo != null + ? CachedNetworkImage( imageUrl: leagueLogo, placeholder: (BuildContext - context, - String - url) => - Icon( - MyFlutterApp - .football, - size: 40, - )) - : Icon( - MyFlutterApp.football, - size: 40, - )), + context, + String + url) => + Icon( + MyFlutterApp + .football, + size: 40, + )) + : Icon( + MyFlutterApp.football, + size: 40, + )), + ), + Text( + leagueName, + style: TextStyle(fontSize: 18), + ) + ], ), - Text( - leagueName, - style: TextStyle(fontSize: 18), - ) - ], - ), - ) - ], + ) + ], + ), + ), ), - ), - ), - Padding( - padding: const EdgeInsets.all(12.0), - child: Container( - width: + Padding( + padding: const EdgeInsets.all(12.0), + child: Container( + width: MediaQuery.of(context).size.width * 0.8, - decoration: BoxDecoration( - boxShadow: [ - BoxShadow( - color: Colors.white.withOpacity(0.8), - offset: Offset(-6.0, -6.0), - blurRadius: 16.0, - ), - BoxShadow( - color: Colors.black.withOpacity(0.1), - offset: Offset(6.0, 6.0), - blurRadius: 16.0, + decoration: BoxDecoration( + boxShadow: themeModel.appTheme == AppTheme.Light ? [ + BoxShadow( + color: Colors.white.withOpacity(0.8), + offset: Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.black.withOpacity(0.1), + offset: Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ] : [ + BoxShadow( + color: Colors.black.withOpacity(0.8), + offset: Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.white.withOpacity(0.1), + offset: Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ], + color: themeModel.appTheme == AppTheme.Light ? Colors.white : Color(0XFF1D1D1D), + borderRadius: BorderRadius.circular(12.0), ), - ], - color: Color(0xFFFFFFFF), - borderRadius: BorderRadius.circular(12.0), - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.symmetric( - vertical: 30.0), - child: Column( - mainAxisAlignment: + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + vertical: 30.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: + crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only( - bottom: 4.0), - child: Container( - height: 40, - child: teamLogo != null - ? CachedNetworkImage( + children: [ + Padding( + padding: const EdgeInsets.only( + bottom: 4.0), + child: Container( + height: 40, + child: teamLogo != null + ? CachedNetworkImage( imageUrl: teamLogo, placeholder: (BuildContext - context, - String - url) => - Icon( - MyFlutterApp - .football, - size: 40, - )) - : Icon( - MyFlutterApp.football, - size: 40, - )), + context, + String + url) => + Icon( + MyFlutterApp + .football, + size: 40, + )) + : Icon( + MyFlutterApp.football, + size: 40, + )), + ), + Text( + teamName, + style: TextStyle(fontSize: 18), + ) + ], ), - Text( - teamName, - style: TextStyle(fontSize: 18), - ) - ], - ), - ) - ], - ), - ), - ) - ], + ) + ], + ), + ), + ) + ], + ), + ), ), - ), + Positioned( + top: 12, + right: 12, + child: InkWell( + onTap: () { + Navigator.of(context) + .pushReplacementNamed('/selectleague'); + }, + child: Icon( + Icons.edit, + color: themeModel.appTheme == AppTheme.Light ? Color(0X7A0000) : Color(0XFFF5F5F5), + size: 25, + ), + ), + ) + ], ), - Positioned( - top: 12, - right: 12, - child: InkWell( - onTap: () { - Navigator.of(context) - .pushReplacementNamed('/selectleague'); - }, - child: Icon( - Icons.edit, - color: Color(0x7a000000), - size: 25, + ), + Container( + height: + MediaQuery.of(context).size.height / + 12, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 50, + child: Icon( + Icons.wb_sunny, + color: Color(0xff808080), + size: 30, + ), ), - ), - ) - ], - ), + Expanded( + child: Padding( + padding: const EdgeInsets.only( + left: 12.0), + child: Text( + 'Theme', + style: TextStyle( + color: Color(0xff808080), + fontSize: 20, + fontWeight: + FontWeight.w300), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: DayNightSwitcher( + isDarkModeEnabled: themeModel.appTheme == AppTheme.Dark, + onStateChanged: (bool value) async{ + if(!value) { + themeModel.appTheme = AppTheme.Light; + await LocalStorage.setString('appTheme', "light"); + } else { + themeModel.appTheme = AppTheme.Dark; + await LocalStorage.setString('appTheme', "dark"); + } + }, + ), + ) + ], + ), + ), + Container( + height: + MediaQuery.of(context).size.height / + 12, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 50, + child: Icon( + Icons.notifications_active, + color: Color(0xff808080), + size: 30, + ), + ), + Expanded( + child: Padding( + padding: const EdgeInsets.only( + left: 12.0), + child: Text( + 'Push notifications', + style: TextStyle( + color: Color(0xff808080), + fontSize: 20, + fontWeight: + FontWeight.w300), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: CupertinoSwitch( + activeColor: Theme.of(context).primaryColor, + trackColor: Colors.black, + value: true, onChanged: null), + ) + ], + ), + ) + ], ), - ], - ), + ) ), ), ), diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 6555a3a..240c5f7 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -11,6 +11,7 @@ import '../services/FlushbarHelper.dart'; import '../Provider/HomeViewModel.dart'; import '../services/GetItLocator.dart'; import '../Provider/AppProvider.dart'; +import '../Provider/ThemeProvider.dart'; class HomeScreen extends StatefulWidget { @override @@ -53,31 +54,42 @@ class _HomeScreenState extends State with TickerProviderStateMixin { final AppProvider appProvider = Provider.of(context); return Scaffold( bottomNavigationBar: BottomNavbar(), - body: ChangeNotifierProvider( - create: (context) => _viewModel, - child: Consumer( - builder: (context, model, child) => SafeArea( - child: RefreshIndicator( - onRefresh: () async { - await _handleRefresh(appProvider: appProvider); - }, - child: SingleChildScrollView( - child: Container( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible( - fit: FlexFit.loose, - child: carousel( - model: model, appProvider: appProvider)), - appProvider.favouriteTeamScores != null - ? UpcomingMatchesSection(appProvider: appProvider) - : PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ), - NewsSection(model: model, appProvider: appProvider) - ], + body: Consumer( + builder: (context, themeModel, child) => + ChangeNotifierProvider( + create: (context) => _viewModel, + child: Consumer( + builder: (context, model, child) => SafeArea( + child: RefreshIndicator( + onRefresh: () async { + await _handleRefresh(appProvider: appProvider); + }, + child: SingleChildScrollView( + child: Container( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + fit: FlexFit.loose, + child: carousel( + model: model, appProvider: appProvider)), + appProvider.favouriteTeamScores != null + ? UpcomingMatchesSection(appProvider: appProvider) + : themeModel.appTheme == AppTheme.Light + ? PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ) + : PKDarkCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ), + NewsSection( + model: model, + themeModel: themeModel, + appProvider: appProvider) + ], + ), ), ), ), @@ -139,7 +151,10 @@ class _HomeScreenState extends State with TickerProviderStateMixin { ); } - Widget NewsSection({HomeViewModel model, AppProvider appProvider}) { + Widget NewsSection( + {HomeViewModel model, + ThemeProvider themeModel, + AppProvider appProvider}) { return Padding( padding: const EdgeInsets.all(8.0), child: Card( @@ -173,10 +188,15 @@ class _HomeScreenState extends State with TickerProviderStateMixin { shrinkWrap: true, physics: NeverScrollableScrollPhysics(), itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); + return themeModel.appTheme == AppTheme.Light + ? PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ) + : PKDarkCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); }) ], ), @@ -356,9 +376,9 @@ class _HomeScreenState extends State with TickerProviderStateMixin { } Future _handleRefresh({AppProvider appProvider}) async { - await appProvider.loadAllNews(); - await appProvider.loadFavouriteNews(); - await appProvider.loadFavouriteScores(); - await appProvider.loadLeagueWiseScores(); + await appProvider.loadAllNews(); + await appProvider.loadFavouriteNews(); + await appProvider.loadFavouriteScores(); + await appProvider.loadLeagueWiseScores(); } } diff --git a/lib/screens/News.dart b/lib/screens/News.dart index c1b73e6..78ccd86 100644 --- a/lib/screens/News.dart +++ b/lib/screens/News.dart @@ -1,12 +1,11 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../commons/BottomNavbar.dart'; -import '../models/News.dart'; -import '../services/GetItLocator.dart'; import '../commons/NewsCard.dart'; import 'package:pk_skeleton/pk_skeleton.dart'; import '../services/LocalStorage.dart'; import '../Provider/AppProvider.dart'; +import '../Provider/ThemeProvider.dart'; class NewsScreen extends StatefulWidget { @override @@ -16,12 +15,12 @@ class NewsScreen extends StatefulWidget { class _NewsScreenState extends State with TickerProviderStateMixin { TabController _tabController; String teamName; - void initState(){ + void initState() { final initialState = Provider.of(context, listen: false); - if(initialState.newsList == null) { + if (initialState.newsList == null) { initialState.loadAllNews(); } - if(initialState.favouriteNewsList == null) { + if (initialState.favouriteNewsList == null) { initialState.loadFavouriteNews(); } super.initState(); @@ -40,46 +39,60 @@ class _NewsScreenState extends State with TickerProviderStateMixin { Widget build(BuildContext context) { return Consumer( - builder: (context, model, child) => Scaffold( - bottomNavigationBar: BottomNavbar(), - appBar: PreferredSize( - preferredSize: Size.fromHeight(100.0), - child: AppBar( - leading: Container(), - backgroundColor: Theme.of(context).primaryColor, - title: Text('News', style: TextStyle(color: Colors.white),), - bottom: TabBar( - controller: _tabController, - tabs: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Text('All', style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.w400),), - ), - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Text('$teamName', style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.w400),), - ) - ], - indicatorSize: TabBarIndicatorSize.tab, - indicator: UnderlineTabIndicator( - borderSide: BorderSide( - width: 3.0, - color: Colors.white)) + builder: (context, model, child) => Consumer( + builder: (context, themeModel, child) => Scaffold( + bottomNavigationBar: BottomNavbar(), + appBar: PreferredSize( + preferredSize: Size.fromHeight(100.0), + child: AppBar( + leading: Container(), + backgroundColor: Theme.of(context).primaryColor, + title: Text( + 'News', + style: TextStyle(color: Colors.white), + ), + bottom: TabBar( + controller: _tabController, + tabs: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + 'All', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ), + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + '$teamName', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w400), + ), + ) + ], + indicatorSize: TabBarIndicatorSize.tab, + indicator: UnderlineTabIndicator( + borderSide: + BorderSide(width: 3.0, color: Colors.white))), ), ), - ), - body: TabBarView( - controller: _tabController, - children: [ - allNews(model: model), - favouriteTeamNews(model: model) - ], - ) + body: TabBarView( + controller: _tabController, + children: [ + allNews(model: model, themeModel: themeModel), + favouriteTeamNews(model: model, themeModel: themeModel) + ], + )), ), ); } - Widget allNews({AppProvider model}) { + Widget allNews({AppProvider model, ThemeProvider themeModel}) { return RefreshIndicator( onRefresh: () async { await _handleAllNewsRefresh(appProvider: model); @@ -98,28 +111,35 @@ class _NewsScreenState extends State with TickerProviderStateMixin { textAlign: TextAlign.left, ), ), - model.newsList == null ? ListView.builder( - itemCount: 5, - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }) : ListView.separated( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: model.newsList.length, - separatorBuilder: (BuildContext context, int index) { - return Divider(); - }, - itemBuilder: (BuildContext context, int index) { - return NewsCard( - index: index, - news: model.newsList[index], - ); - }) + model.newsList == null + ? ListView.builder( + itemCount: 5, + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return themeModel.appTheme == AppTheme.Light + ? PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ) + : PKDarkCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }) + : ListView.separated( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: model.newsList.length, + separatorBuilder: (BuildContext context, int index) { + return Divider(); + }, + itemBuilder: (BuildContext context, int index) { + return NewsCard( + index: index, + news: model.newsList[index], + ); + }) ], ), ), @@ -127,7 +147,7 @@ class _NewsScreenState extends State with TickerProviderStateMixin { ); } - Widget favouriteTeamNews({AppProvider model}) { + Widget favouriteTeamNews({AppProvider model, ThemeProvider themeModel}) { return RefreshIndicator( onRefresh: () async { await _handleFavouriteNewsRefresh(appProvider: model); @@ -147,29 +167,35 @@ class _NewsScreenState extends State with TickerProviderStateMixin { textAlign: TextAlign.left, ), ), - model.favouriteNewsList == null ? ListView.builder( - itemCount: 5, - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }) + model.favouriteNewsList == null + ? ListView.builder( + itemCount: 5, + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return themeModel.appTheme == AppTheme.Light + ? PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ) + : PKDarkCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }) : ListView.separated( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: model.favouriteNewsList.length, - separatorBuilder: (BuildContext context, int index) { - return Divider(); - }, - itemBuilder: (BuildContext context, int index) { - return NewsCard( - index: index, - news: model.favouriteNewsList[index], - ); - }) + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: model.favouriteNewsList.length, + separatorBuilder: (BuildContext context, int index) { + return Divider(); + }, + itemBuilder: (BuildContext context, int index) { + return NewsCard( + index: index, + news: model.favouriteNewsList[index], + ); + }) ], ), ), @@ -185,4 +211,4 @@ class _NewsScreenState extends State with TickerProviderStateMixin { Future _handleFavouriteNewsRefresh({AppProvider appProvider}) async { await appProvider.loadFavouriteNews(); } -} \ No newline at end of file +} diff --git a/lib/services/FirebaseMessagingService.dart b/lib/services/FirebaseMessagingService.dart index 5c9bf32..ca4d4de 100644 --- a/lib/services/FirebaseMessagingService.dart +++ b/lib/services/FirebaseMessagingService.dart @@ -30,6 +30,10 @@ class FirebaseMessagingService { await _fcm.subscribeToTopic(topic); } + Future unsubscribeFromTopic({String topic}) async { + await _fcm.unsubscribeFromTopic(topic); + } + Future getToken() async { final String token = await _fcm.getToken(); return token; diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index 934cfdc..2138f4f 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -9,7 +9,7 @@ import '../commons/ScoreCard.dart'; import 'SettingsDialog.dart'; import '../constants.dart'; import '../widgets/LeagueDropdown.dart'; -import '../Provider/AppProvider.dart'; +import '../Provider/ThemeProvider.dart'; class AllScores extends StatefulWidget { @override @@ -60,68 +60,80 @@ class _AllScoresState extends State { Widget build(BuildContext context) { return Consumer( builder: (context, model, child) => RefreshIndicator( - onRefresh: () async { - await _handleRefresh(model: model); - }, - child: SingleChildScrollView( - controller: _scrollController, - child: Container( - margin: EdgeInsets.only(top: 10.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only( - left: 8.0, right: 8.0, top: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LeagueDropdown( - items: getLeagueItems(), - selectedLeague: model.selectedLeague, - backgroundColor: Color(0xfffafafa), - fontColor: Colors.black, - purpose: "score", - ), - FlatButton( - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Icon(Icons.filter_list), - Text('Filter') - ], + onRefresh: () async { + await _handleRefresh(model: model); + }, + child: Consumer( + builder: (context, themeModel, child) => + SingleChildScrollView( + controller: _scrollController, + child: Container( + margin: EdgeInsets.only(top: 10.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only( + left: 8.0, right: 8.0, top: 4.0), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + LeagueDropdown( + items: getLeagueItems(), + selectedLeague: model.selectedLeague, + backgroundColor: Color(0xfffafafa), + fontColor: Colors.black, + purpose: "score", + ), + FlatButton( + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + Icon(Icons.filter_list), + Text('Filter') + ], + ), + color: Color(0xfffafafa), + onPressed: () { + onSettingPressed(); + }, + ) + ], + ), ), - color: Color(0xfffafafa), - onPressed: () { - onSettingPressed(); - }, - ) - ], + (model.leagueWiseScores != null && + _scores != null) + ? _totalNoOfScores > 0 + ? scoreList() + : NoContent( + title: 'No matches found', + description: + 'There are no league matches matching your query', + ) + : ListView.builder( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: + (BuildContext context, int index) { + return themeModel.appTheme == + AppTheme.Light + ? PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ) + : PKDarkCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), + ], + ), ), - ), - (model.leagueWiseScores != null && _scores != null) - ? _totalNoOfScores > 0 - ? scoreList() - : NoContent( - title: 'No matches found', - description: - 'There are no league matches matching your query', - ) - : ListView.builder( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: 10, - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }), - ], - ), - ), - ), - )); + )), + )); } Widget scoreList() { @@ -251,8 +263,7 @@ class _AllScoresState extends State { } Future _handleRefresh({AppProvider model}) async { - await model.loadLeagueTable( - leagueName: model.selectedLeague); + await model.loadLeagueTable(leagueName: model.selectedLeague); Navigator.of(context).pushReplacementNamed('/league'); } } diff --git a/lib/widgets/FavouriteScoresPast.dart b/lib/widgets/FavouriteScoresPast.dart index d6ddced..4417f15 100644 --- a/lib/widgets/FavouriteScoresPast.dart +++ b/lib/widgets/FavouriteScoresPast.dart @@ -5,6 +5,7 @@ import '../Provider/AppProvider.dart'; import '../models/Score.dart'; import '../commons/ScoreCard.dart'; import '../commons/NoContent.dart'; +import '../Provider/ThemeProvider.dart'; class FavouriteScoresPast extends StatefulWidget { @override @@ -40,34 +41,38 @@ class _FavouriteScoresPastState extends State { Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); return RefreshIndicator( - onRefresh: () async { - await _handleRefresh(appProvider: appProvider); - }, - child: SingleChildScrollView( - controller: _scrollController, - child: Container( - margin: EdgeInsets.only(top: 30.0), - child: _scores != null - ? _totalNoOfScores > 0 - ? scoreList() - : NoContent( - title: 'No matches found', - description: - 'There are no past league matches matching your query', - ) - : ListView.builder( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: 10, - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }), - ), - ), - ); + onRefresh: () async { + await _handleRefresh(appProvider: appProvider); + }, + child: Consumer( + builder: (context, themeModel, child) => SingleChildScrollView( + controller: _scrollController, + child: Container( + margin: EdgeInsets.only(top: 30.0), + child: _scores != null + ? _totalNoOfScores > 0 + ? scoreList() + : NoContent( + title: 'No matches found', + description: + 'There are no past league matches matching your query', + ) + : ListView.builder( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return themeModel.appTheme == AppTheme.Light ? PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ) : PKDarkCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), + ), + ), + )); } Widget scoreList() { diff --git a/lib/widgets/FavouriteScoresUpcoming.dart b/lib/widgets/FavouriteScoresUpcoming.dart index ce9a3fb..3698d14 100644 --- a/lib/widgets/FavouriteScoresUpcoming.dart +++ b/lib/widgets/FavouriteScoresUpcoming.dart @@ -6,6 +6,7 @@ import 'package:sportsmojo/commons/NoContent.dart'; import '../Provider/AppProvider.dart'; import '../models/Score.dart'; import '../commons/ScoreCard.dart'; +import '../Provider/ThemeProvider.dart'; class FavouriteScoresUpcoming extends StatefulWidget { @override @@ -41,30 +42,36 @@ class _FavouriteScoresUpcomingState extends State { @override Widget build(BuildContext context) { final AppProvider appProvider = Provider.of(context); - return SingleChildScrollView( - controller: _scrollController, - child: Container( - margin: EdgeInsets.only(top: 30.0), - child: _scores != null - ? _totalNoOfScores > 0 - ? scoreList() - : NoContent( - title: 'No matches found', - description: - 'There are no upcoming league matches matching your query', - ) - : ListView.builder( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: 10, - itemBuilder: (BuildContext context, int index) { - return PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }), - ), - ); + return Consumer( + builder: (context, themeModel, child) => SingleChildScrollView( + controller: _scrollController, + child: Container( + margin: EdgeInsets.only(top: 30.0), + child: _scores != null + ? _totalNoOfScores > 0 + ? scoreList() + : NoContent( + title: 'No matches found', + description: + 'There are no upcoming league matches matching your query', + ) + : ListView.builder( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: 10, + itemBuilder: (BuildContext context, int index) { + return themeModel.appTheme == AppTheme.Light + ? PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ) + : PKDarkCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }), + ), + )); } Widget scoreList() { diff --git a/lib/widgets/LeagueTableWiget.dart b/lib/widgets/LeagueTableWiget.dart index 543d51d..7be1d15 100644 --- a/lib/widgets/LeagueTableWiget.dart +++ b/lib/widgets/LeagueTableWiget.dart @@ -9,6 +9,7 @@ import '../commons/custom_icons.dart'; import '../constants.dart'; import '../widgets/LeagueDropdown.dart'; import 'package:auto_size_text/auto_size_text.dart'; +import '../Provider/ThemeProvider.dart'; class LeagueTableWidget extends StatefulWidget { @override @@ -38,82 +39,91 @@ class _LeagueTableWidgetState extends State { @override Widget build(BuildContext context) { return Consumer( - builder: (context, model, child) => SingleChildScrollView( - child: Container( - margin: EdgeInsets.only(top: 10.0), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 8.0, vertical: 4.0), - child: LeagueDropdown( - items: getLeagueItems(), - selectedLeague: model.selectedLeague, - backgroundColor: Color(0xfffafafa), - fontColor: Colors.black, - purpose: "table", - ), - ), - model.leagueTableEntries != null - ? (model.leagueTableEntries.length > 0 - ? Card( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: Container( - width: - MediaQuery.of(context).size.width * + builder: (context, model, child) => Consumer( + builder: (context, themeModel, child) => SingleChildScrollView( + child: Container( + margin: EdgeInsets.only(top: 10.0), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8.0, vertical: 4.0), + child: LeagueDropdown( + items: getLeagueItems(), + selectedLeague: model.selectedLeague, + backgroundColor: Color(0xfffafafa), + fontColor: Colors.black, + purpose: "table", + ), + ), + model.leagueTableEntries != null + ? (model.leagueTableEntries.length > 0 + ? Card( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Container( + width: MediaQuery.of(context) + .size + .width * 1.3, - child: ListView.builder( - shrinkWrap: true, - itemCount: - model.leagueTableEntries.length, - physics: - NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, - int index) { - if (index == 0) { - return Column( - children: [ - tableHeader(), - Padding( - padding: const EdgeInsets - .symmetric( - vertical: 8.0), - child: tableRow(model - .leagueTableEntries[ - index]), - ) - ], - ); - } - return Padding( - padding: EdgeInsets.symmetric( - vertical: 8.0), - child: tableRow(model - .leagueTableEntries[index]), - ); - }), + child: ListView.builder( + shrinkWrap: true, + itemCount: model + .leagueTableEntries.length, + physics: + NeverScrollableScrollPhysics(), + itemBuilder: + (BuildContext context, + int index) { + if (index == 0) { + return Column( + children: [ + tableHeader(), + Padding( + padding: + const EdgeInsets + .symmetric( + vertical: + 8.0), + child: tableRow(model + .leagueTableEntries[ + index]), + ) + ], + ); + } + return Padding( + padding: + EdgeInsets.symmetric( + vertical: 8.0), + child: tableRow(model + .leagueTableEntries[ + index]), + ); + }), + ), + ), ), - ), - ), - ) - : NoContent( - title: 'No league table found', - description: - 'There are no league table matching your query')) - : PKCardPageSkeleton( - totalLines: 15, - ), - ], + ) + : NoContent( + title: 'No league table found', + description: + 'There are no league table matching your query')) + : themeModel.appTheme == AppTheme.Light ? PKCardPageSkeleton( + totalLines: 15, + ) : PKDarkCardPageSkeleton( + totalLines: 15, + ), + ], + ), + ), ), - ), - ), - )); + ))); } Widget tableHeader() { @@ -125,63 +135,72 @@ class _LeagueTableWidgetState extends State { width: MediaQuery.of(context).size.width * 0.35, child: Text( 'Club', - style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), + style: TextStyle( + fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.left, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'MP', - style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), + style: TextStyle( + fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'W', - style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), + style: TextStyle( + fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'L', - style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), + style: TextStyle( + fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'D', - style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), + style: TextStyle( + fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'Pts.', - style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), + style: TextStyle( + fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'GF', - style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), + style: TextStyle( + fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'GA', - style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), + style: TextStyle( + fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )), Container( width: MediaQuery.of(context).size.width * 0.1, child: Text( 'GD', - style: TextStyle(fontSize: 15, color: Theme.of(context).primaryColorDark), + style: TextStyle( + fontSize: 15, color: Theme.of(context).primaryColorDark), textAlign: TextAlign.center, )) ], diff --git a/lib/widgets/Scorers.dart b/lib/widgets/Scorers.dart index c87fa61..69939e8 100644 --- a/lib/widgets/Scorers.dart +++ b/lib/widgets/Scorers.dart @@ -6,6 +6,7 @@ import '../models/MatchEvent.dart'; import '../commons/custom_icons.dart'; import '../models/Score.dart'; import '../Provider/MatchEventViewModel.dart'; +import '../Provider/ThemeProvider.dart'; class Scorer extends StatefulWidget { Score score; @@ -33,51 +34,59 @@ class _ScorerState extends State { @override Widget build(BuildContext context) { - return Consumer( - builder: (context, model, child) { - return (model.events != null) - ? Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - ConstrainedBox( - constraints: BoxConstraints( - minHeight: 50, - minWidth: MediaQuery.of(context).size.width * 0.4), - child: Container( - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: getHomeGoals(model: model), + return Consumer( + builder: (context, themeModel, child) => Consumer( + builder: (context, model, child) { + return (model.events != null) + ? Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + ConstrainedBox( + constraints: BoxConstraints( + minHeight: 50, + minWidth: MediaQuery.of(context).size.width * 0.4), + child: Container( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: getHomeGoals(model: model), + ), ), ), - ), - Container( - height: 10, - child: Icon( - MyFlutterApp.football, - color: Color(0XAA000000), - size: 20, - ), - ), - ConstrainedBox( - constraints: BoxConstraints( - minHeight: 50, - minWidth: MediaQuery.of(context).size.width * 0.4), - child: Container( - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.end, - children: getAwayGoals(model: model), + Container( + height: 10, + child: Icon( + MyFlutterApp.football, + color: Color(0XAA000000), + size: 20, ), ), - ) - ], - ) - : Card( - child: PKCardPageSkeleton(totalLines: 2,), - ); - }, + ConstrainedBox( + constraints: BoxConstraints( + minHeight: 50, + minWidth: MediaQuery.of(context).size.width * 0.4), + child: Container( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.end, + children: getAwayGoals(model: model), + ), + ), + ) + ], + ) + : Card( + child: themeModel.appTheme == AppTheme.Light + ? PKCardPageSkeleton( + totalLines: 2, + ) + : PKDarkCardPageSkeleton( + totalLines: 2, + ), + ); + }, + ), ); } diff --git a/lib/widgets/Stats.dart b/lib/widgets/Stats.dart index 5af03fc..85236b8 100644 --- a/lib/widgets/Stats.dart +++ b/lib/widgets/Stats.dart @@ -8,6 +8,7 @@ import 'package:sportsmojo/Provider/MatchStatViewModel.dart'; import '../commons/custom_icons.dart'; import '../models/Score.dart'; import '../services/StatService.dart'; +import '../Provider/ThemeProvider.dart'; class Stats extends StatefulWidget { final Score score; @@ -34,317 +35,321 @@ class _StatsState extends State { @override Widget build(BuildContext context) { - return Card( - child: Padding( - padding: const EdgeInsets.all(12.0), - child: Consumer( - builder: (context, model, child) { - if(model != null && model.stats != null) { - final stats = model.stats; - return Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Container( - height: 25, - child: CachedNetworkImage( - imageUrl: widget.score.homeTeamLogo, - placeholder: (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - Text('Team Stats'), - Container( - height: 25, - child: CachedNetworkImage( - imageUrl: widget.score.awayTeamLogo, - placeholder: (BuildContext context, String url) => - Icon(MyFlutterApp.football))) - ], - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( + return Consumer( + builder: (context, themeModel, child) => Card( + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Consumer( + builder: (context, model, child) { + if(model != null && model.stats != null) { + final stats = model.stats; + return Column( + children: [ + Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text( - '${stats["home"].totalShots}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Shots', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].totalShots}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) + Container( + height: 25, + child: CachedNetworkImage( + imageUrl: widget.score.homeTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))), + Text('Team Stats'), + Container( + height: 25, + child: CachedNetworkImage( + imageUrl: widget.score.awayTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))) ], ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].shotsOnTarget}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Shots on target', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].shotsOnTarget}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].totalShots}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Shots', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].totalShots}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].possession}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Possession', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].possession}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].shotsOnTarget}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Shots on target', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].shotsOnTarget}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].totalPasses}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Total Passes', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].totalPasses}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].possession}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Possession', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].possession}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].accuratePasses}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Accurate Passes', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].accuratePasses}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].totalPasses}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Total Passes', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].totalPasses}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].fouls}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Fouls', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].fouls}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].accuratePasses}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Accurate Passes', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].accuratePasses}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].yellowCards}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Yellow Cards', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].yellowCards}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].fouls}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Fouls', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].fouls}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].redCards}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Red Cards', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].redCards}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].yellowCards}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Yellow Cards', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].yellowCards}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].offsides}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Offsides', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].offsides}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].redCards}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Red Cards', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].redCards}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].corners}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Corners', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].corners}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].offsides}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Offsides', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].offsides}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - '${stats["home"].saves}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Saves', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - '${stats["away"].saves}', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].corners}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Corners', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].corners}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), ), - ) - ], - ); - } - else { - return PKCardPageSkeleton( - totalLines: 10, - ); - } - }, + Padding( + padding: const EdgeInsets.symmetric( + vertical: 12.0, horizontal: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + '${stats["home"].saves}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + 'Saves', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + Text( + '${stats["away"].saves}', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ) + ], + ), + ) + ], + ); + } + else { + return themeModel.appTheme == AppTheme.Light ? PKCardPageSkeleton( + totalLines: 10, + ) : PKDarkCardPageSkeleton( + totalLines: 10, + ); + } + }, + ), ), ), ); diff --git a/lib/widgets/TopScorer.dart b/lib/widgets/TopScorer.dart index 04268d9..e977a7e 100644 --- a/lib/widgets/TopScorer.dart +++ b/lib/widgets/TopScorer.dart @@ -8,6 +8,7 @@ import '../models/Player.dart'; import '../Provider/AppProvider.dart'; import 'LeagueDropdown.dart'; import '../constants.dart'; +import '../Provider/ThemeProvider.dart'; class TopScorers extends StatefulWidget { @override @@ -37,72 +38,76 @@ class _TopScorersState extends State { @override Widget build(BuildContext context) { return Consumer( - builder: (context, model, child) => SingleChildScrollView( - child: Container( - margin: EdgeInsets.only(top: 10.0), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( + builder: (context, model, child) => Consumer( + builder: (context, themeModel, child) => SingleChildScrollView( + child: Container( + margin: EdgeInsets.only(top: 10.0), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8.0, vertical: 4.0), + child: LeagueDropdown( + items: getLeagueItems(), + selectedLeague: model.selectedLeague, + backgroundColor: Color(0xfffafafa), + fontColor: Colors.black, + purpose: "topscorer", + ), + ), + model.topScorers != null + ? model.topScorers.length > 0 + ? Card( + child: Padding( padding: const EdgeInsets.symmetric( - horizontal: 8.0, vertical: 4.0), - child: LeagueDropdown( - items: getLeagueItems(), - selectedLeague: model.selectedLeague, - backgroundColor: Color(0xfffafafa), - fontColor: Colors.black, - purpose: "topscorer", - ), + vertical: 8.0, horizontal: 2.0), + child: ListView.builder( + shrinkWrap: true, + itemCount: model.topScorers.length, + physics: NeverScrollableScrollPhysics(), + itemBuilder: + (BuildContext context, int index) { + if (index == 0) { + return Column( + children: [ + tableHeader(), + Padding( + padding: const EdgeInsets + .symmetric(vertical: 8.0), + child: tableRow( + model.topScorers[index]), + ) + ], + ); + } + return Padding( + padding: EdgeInsets.symmetric( + vertical: 8.0), + child: tableRow( + model.topScorers[index]), + ); + }), ), - model.topScorers != null - ? model.topScorers.length > 0 - ? Card( - child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 8.0, horizontal: 2.0), - child: ListView.builder( - shrinkWrap: true, - itemCount: model.topScorers.length, - physics: NeverScrollableScrollPhysics(), - itemBuilder: - (BuildContext context, int index) { - if (index == 0) { - return Column( - children: [ - tableHeader(), - Padding( - padding: const EdgeInsets - .symmetric(vertical: 8.0), - child: tableRow( - model.topScorers[index]), - ) - ], - ); - } - return Padding( - padding: EdgeInsets.symmetric( - vertical: 8.0), - child: tableRow( - model.topScorers[index]), - ); - }), - ), - ) - : NoContent( - title: 'Top scorers not found', - description: - 'Cannot find league topscorers matching your query', - ) - : PKCardPageSkeleton( - totalLines: 15, - ), - ], - ), + ) + : NoContent( + title: 'Top scorers not found', + description: + 'Cannot find league topscorers matching your query', + ) + : themeModel.appTheme == AppTheme.Light ? PKCardPageSkeleton( + totalLines: 15, + ) : PKDarkCardPageSkeleton( + totalLines: 15, + ), + ], ), ), - )); + ), + ), + )); } Widget tableHeader() { diff --git a/pubspec.lock b/pubspec.lock index 96c09c7..f7f21d7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -141,6 +141,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.3.4" + day_night_switcher: + dependency: "direct main" + description: + name: day_night_switcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1" dio: dependency: "direct main" description: @@ -324,13 +331,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.6.1+1" - lite_rolling_switch: - dependency: "direct main" - description: - name: lite_rolling_switch - url: "https://pub.dartlang.org" - source: hosted - version: "0.1.1" matcher: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 70c4cc7..fdf9ce4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -45,7 +45,7 @@ dependencies: connectivity: ^0.4.9 firebase_messaging: ^6.0.16 share: ^0.6.4+3 - lite_rolling_switch: ^0.1.1 + day_night_switcher: ^0.1.1 dev_dependencies: flutter_test: sdk: flutter From 18f7afb655ae48909d8d24eaf0aa79d2a66e1214 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sun, 2 Aug 2020 02:02:06 +0530 Subject: [PATCH 44/49] Completed dark mode --- ios/Flutter/Generated 30.xcconfig | 10 + ios/Flutter/flutter_export_environment 30.sh | 11 + lib/main.dart | 2 +- lib/screens/DashboardScreen.dart | 854 ++++++++++--------- lib/screens/HomeScreen.dart | 15 + lib/screens/MatchStatScreen.dart | 600 ++++--------- lib/screens/News.dart | 110 ++- lib/screens/NewsArticle.dart | 351 ++++---- lib/screens/ScoreScreen.dart | 1 - lib/widgets/AllScores.dart | 37 +- lib/widgets/FavouriteScoresPast.dart | 14 + lib/widgets/LeagueTableWiget.dart | 4 +- lib/widgets/Scorers.dart | 14 +- lib/widgets/SettingsDialog.dart | 6 +- lib/widgets/TopScorer.dart | 4 +- 15 files changed, 965 insertions(+), 1068 deletions(-) create mode 100644 ios/Flutter/Generated 30.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 30.sh diff --git a/ios/Flutter/Generated 30.xcconfig b/ios/Flutter/Generated 30.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 30.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 30.sh b/ios/Flutter/flutter_export_environment 30.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 30.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/main.dart b/lib/main.dart index 06d8ad4..9ef3987 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -24,7 +24,7 @@ void main() async { brightness: Brightness.light); final ThemeData darkTheme = ThemeData( primaryColor: Color(0xFF54B2FB), - primaryColorDark: Color(0XFFF1F1F1), + primaryColorDark: Color(0XFFD1D1D1), brightness: Brightness.dark); WidgetsFlutterBinding.ensureInitialized(); diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index 200e03c..8113823 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -3,6 +3,7 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:provider/provider.dart'; +import 'package:share/share.dart'; import '../services/FirebaseService.dart'; import '../models/User.dart'; import '../commons/BottomNavbar.dart'; @@ -58,439 +59,488 @@ class _DashboardScreenState extends State { bottomNavigationBar: BottomNavbar(), body: Consumer( builder: (context, model, child) => Consumer( - builder: (context, themeModel, child) => Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.only( - topRight: Radius.circular(20.0), - topLeft: Radius.circular(20.0)), - color: themeModel.appTheme == AppTheme.Light ? Colors.white : Color(0XFF1D1D1D)), - margin: EdgeInsets.only(top: 40.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only( - top: 30.0, left: 8.0, right: 8.0, bottom: 8.0), - child: (model.currentUser != null) - ? Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(right: 8.0), - child: Container( - width: 50, - child: ClipRRect( - borderRadius: BorderRadius.circular(12.0), - child: CachedNetworkImage( - imageUrl: model.currentUser.profilePic, - placeholder: (BuildContext context, - String url) => - Image.asset( - 'assets/images/user-placeholder.jpg')), - ), - ), - ), - Expanded( - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AutoSizeText( - '${model.currentUser.name}', - style: TextStyle(fontSize: 20), - textAlign: TextAlign.left, - maxLines: 1, - ), - Text( - '${model.currentUser.email}', - style: TextStyle( - fontSize: 12, - color: Theme.of(context).primaryColorDark), - ) - ], + builder: (context, themeModel, child) => SingleChildScrollView( + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + topRight: Radius.circular(20.0), + topLeft: Radius.circular(20.0)), + color: themeModel.appTheme == AppTheme.Light ? Colors.white : Color(0XFF1D1D1D)), + margin: EdgeInsets.only(top: 40.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only( + top: 30.0, left: 8.0, right: 8.0, bottom: 8.0), + child: (model.currentUser != null) + ? Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(right: 8.0), + child: Container( + width: 50, + child: ClipRRect( + borderRadius: BorderRadius.circular(12.0), + child: CachedNetworkImage( + imageUrl: model.currentUser.profilePic, + placeholder: (BuildContext context, + String url) => + Image.asset( + 'assets/images/user-placeholder.jpg')), ), - CustomRaisedButton( - height: 30, - minWidth: 75, - label: 'Logout', - onPressed: () async { - await _firebaseService.signOutGoogle(); - model.currentUser = null; - }, - inProgress: false, - ) - ], + ), ), - ), - ], - ) - : Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - width: MediaQuery.of(context).size.width * 0.5, - child: RaisedButton( - onPressed: () async { - setState(() { - inProgress = true; - }); - final User user = - await _firebaseService.signInWithGoogle(); - model.currentUser = user; - final Map data = { - 'name': user.name, - 'email': user.email, - 'teamName': await LocalStorage.getString( - 'teamName', - ), - 'teamId': await LocalStorage.getString( - 'teamId', - ), - 'teamLogo': await LocalStorage.getString( - 'teamLogo', - ), - 'leagueName': await LocalStorage.getString( - 'leagueName'), - 'leagueId': await LocalStorage.getString( - 'leagueId', - ), - 'fcmToken': await _fcmService.getToken() - }; - await _firestoreService.setData( - userId: user.uid, data: data); - setState(() { - inProgress = false; - }); - }, - padding: EdgeInsets.symmetric(horizontal: 4.0), - child: inProgress ? CircularProgressIndicator( - valueColor: - new AlwaysStoppedAnimation(Color(0xfff5f5f5)), - ) : Row( + Expanded( + child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Container( - color: Colors.white, - height: 30, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - 'assets/images/google_logo.png'), - )), - Padding( - padding: const EdgeInsets.all(8.0), - child: AutoSizeText( - 'Sign in with Google', - style: TextStyle(color: Colors.white), - ), + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AutoSizeText( + '${model.currentUser.name}', + style: TextStyle(fontSize: 20), + textAlign: TextAlign.left, + maxLines: 1, + ), + Text( + '${model.currentUser.email}', + style: TextStyle( + fontSize: 12, + color: Theme.of(context).primaryColorDark), + ) + ], + ), + CustomRaisedButton( + height: 30, + minWidth: 75, + label: 'Logout', + onPressed: () async { + await _firebaseService.signOutGoogle(); + model.currentUser = null; + }, + inProgress: false, ) ], ), - color: Color(0xff4285f4), ), - ) - ], - ), - ), - Divider( - thickness: 0.7, - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Stack( - children: [ - Container( - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 12.0), - child: Column( - children: [ - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 20.0, vertical: 8.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Text( - 'Your Favourites', - style: TextStyle( - fontSize: 20, - color: Theme.of(context).primaryColorDark), - ), - ], + ], + ) + : Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: MediaQuery.of(context).size.width * 0.5, + child: RaisedButton( + onPressed: () async { + setState(() { + inProgress = true; + }); + final User user = + await _firebaseService.signInWithGoogle(); + model.currentUser = user; + final Map data = { + 'name': user.name, + 'email': user.email, + 'teamName': await LocalStorage.getString( + 'teamName', ), - ), - Padding( - padding: const EdgeInsets.all(12.0), - child: Container( - width: - MediaQuery.of(context).size.width * 0.8, - decoration: BoxDecoration( - boxShadow: themeModel.appTheme == AppTheme.Light ? [ - BoxShadow( - color: Colors.white.withOpacity(0.8), - offset: Offset(-6.0, -6.0), - blurRadius: 16.0, - ), - BoxShadow( - color: Colors.black.withOpacity(0.1), - offset: Offset(6.0, 6.0), - blurRadius: 16.0, - ), - ] : [ - BoxShadow( - color: Colors.black.withOpacity(0.8), - offset: Offset(-6.0, -6.0), - blurRadius: 16.0, - ), - BoxShadow( - color: Colors.white.withOpacity(0.1), - offset: Offset(6.0, 6.0), - blurRadius: 16.0, - ), - ], - color: themeModel.appTheme == AppTheme.Light ? Colors.white : Color(0XFF1D1D1D), - borderRadius: BorderRadius.circular(12.0), + 'teamId': await LocalStorage.getString( + 'teamId', + ), + 'teamLogo': await LocalStorage.getString( + 'teamLogo', + ), + 'leagueName': await LocalStorage.getString( + 'leagueName'), + 'leagueId': await LocalStorage.getString( + 'leagueId', + ), + 'fcmToken': await _fcmService.getToken() + }; + await _firestoreService.setData( + userId: user.uid, data: data); + setState(() { + inProgress = false; + }); + }, + padding: EdgeInsets.symmetric(horizontal: 4.0), + child: inProgress ? CircularProgressIndicator( + valueColor: + new AlwaysStoppedAnimation(Color(0xfff5f5f5)), + ) : Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Container( + color: Colors.white, + height: 30, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset( + 'assets/images/google_logo.png'), + )), + Padding( + padding: const EdgeInsets.all(8.0), + child: AutoSizeText( + 'Sign in with Google', + style: TextStyle(color: Colors.white), ), + ) + ], + ), + color: Color(0xff4285f4), + ), + ) + ], + ), + ), + Divider( + thickness: 0.7, + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Stack( + children: [ + Container( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20.0, vertical: 8.0), child: Row( - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.start, children: [ - Padding( - padding: const EdgeInsets.symmetric( - vertical: 30.0), - child: Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: - CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only( - bottom: 4.0), - child: Container( - height: 40, - child: leagueLogo != null - ? CachedNetworkImage( - imageUrl: leagueLogo, - placeholder: - (BuildContext - context, - String - url) => - Icon( - MyFlutterApp - .football, - size: 40, - )) - : Icon( - MyFlutterApp.football, - size: 40, - )), - ), - Text( - leagueName, - style: TextStyle(fontSize: 18), - ) - ], - ), - ) - ], - ), - ), - ), - Padding( - padding: const EdgeInsets.all(12.0), - child: Container( - width: - MediaQuery.of(context).size.width * 0.8, - decoration: BoxDecoration( - boxShadow: themeModel.appTheme == AppTheme.Light ? [ - BoxShadow( - color: Colors.white.withOpacity(0.8), - offset: Offset(-6.0, -6.0), - blurRadius: 16.0, - ), - BoxShadow( - color: Colors.black.withOpacity(0.1), - offset: Offset(6.0, 6.0), - blurRadius: 16.0, - ), - ] : [ - BoxShadow( - color: Colors.black.withOpacity(0.8), - offset: Offset(-6.0, -6.0), - blurRadius: 16.0, - ), - BoxShadow( - color: Colors.white.withOpacity(0.1), - offset: Offset(6.0, 6.0), - blurRadius: 16.0, + Text( + 'Your Favourites', + style: TextStyle( + fontSize: 20, + color: Theme.of(context).primaryColorDark), ), ], - color: themeModel.appTheme == AppTheme.Light ? Colors.white : Color(0XFF1D1D1D), - borderRadius: BorderRadius.circular(12.0), ), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.symmetric( - vertical: 30.0), - child: Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: - CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only( - bottom: 4.0), - child: Container( - height: 40, - child: teamLogo != null - ? CachedNetworkImage( - imageUrl: teamLogo, - placeholder: - (BuildContext - context, - String - url) => - Icon( - MyFlutterApp - .football, - size: 40, - )) - : Icon( - MyFlutterApp.football, - size: 40, - )), - ), - Text( - teamName, - style: TextStyle(fontSize: 18), - ) - ], + ), + Padding( + padding: const EdgeInsets.all(12.0), + child: Container( + width: + MediaQuery.of(context).size.width * 0.8, + decoration: BoxDecoration( + boxShadow: themeModel.appTheme == AppTheme.Light ? [ + BoxShadow( + color: Colors.white.withOpacity(0.8), + offset: Offset(-6.0, -6.0), + blurRadius: 16.0, ), - ) - ], + BoxShadow( + color: Colors.black.withOpacity(0.1), + offset: Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ] : [ + BoxShadow( + color: Colors.black.withOpacity(0.8), + offset: Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.white.withOpacity(0.1), + offset: Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ], + color: themeModel.appTheme == AppTheme.Light ? Colors.white : Color(0XFF1D1D1D), + borderRadius: BorderRadius.circular(12.0), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + vertical: 30.0), + child: Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only( + bottom: 4.0), + child: Container( + height: 40, + child: leagueLogo != null + ? CachedNetworkImage( + imageUrl: leagueLogo, + placeholder: + (BuildContext + context, + String + url) => + Icon( + MyFlutterApp + .football, + size: 40, + )) + : Icon( + MyFlutterApp.football, + size: 40, + )), + ), + Text( + leagueName, + style: TextStyle(fontSize: 18), + ) + ], + ), + ) + ], + ), ), ), - ) - ], + Padding( + padding: const EdgeInsets.all(12.0), + child: Container( + width: + MediaQuery.of(context).size.width * 0.8, + decoration: BoxDecoration( + boxShadow: themeModel.appTheme == AppTheme.Light ? [ + BoxShadow( + color: Colors.white.withOpacity(0.8), + offset: Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.black.withOpacity(0.1), + offset: Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ] : [ + BoxShadow( + color: Colors.black.withOpacity(0.8), + offset: Offset(-6.0, -6.0), + blurRadius: 16.0, + ), + BoxShadow( + color: Colors.white.withOpacity(0.1), + offset: Offset(6.0, 6.0), + blurRadius: 16.0, + ), + ], + color: themeModel.appTheme == AppTheme.Light ? Colors.white : Color(0XFF1D1D1D), + borderRadius: BorderRadius.circular(12.0), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + vertical: 30.0), + child: Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only( + bottom: 4.0), + child: Container( + height: 40, + child: teamLogo != null + ? CachedNetworkImage( + imageUrl: teamLogo, + placeholder: + (BuildContext + context, + String + url) => + Icon( + MyFlutterApp + .football, + size: 40, + )) + : Icon( + MyFlutterApp.football, + size: 40, + )), + ), + Text( + teamName, + style: TextStyle(fontSize: 18), + ) + ], + ), + ) + ], + ), + ), + ) + ], + ), ), ), - ), - Positioned( - top: 12, - right: 12, - child: InkWell( - onTap: () { - Navigator.of(context) - .pushReplacementNamed('/selectleague'); - }, - child: Icon( - Icons.edit, - color: themeModel.appTheme == AppTheme.Light ? Color(0X7A0000) : Color(0XFFF5F5F5), - size: 25, + Positioned( + top: 12, + right: 12, + child: InkWell( + onTap: () { + Navigator.of(context) + .pushReplacementNamed('/selectleague'); + }, + child: Icon( + Icons.edit, + color: themeModel.appTheme == AppTheme.Light ? Color(0X7A0000) : Color(0XFFF5F5F5), + size: 25, + ), ), - ), - ) - ], + ) + ], + ), ), - ), - Container( - height: - MediaQuery.of(context).size.height / - 12, - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Container( - width: 50, - child: Icon( - Icons.wb_sunny, - color: Color(0xff808080), - size: 30, - ), - ), - Expanded( - child: Padding( - padding: const EdgeInsets.only( - left: 12.0), - child: Text( - 'Theme', - style: TextStyle( - color: Color(0xff808080), - fontSize: 20, - fontWeight: - FontWeight.w300), + Container( + height: + MediaQuery.of(context).size.height / + 12, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 50, + child: Icon( + Icons.wb_sunny, + color: Color(0xff808080), + size: 30, ), ), - ), - Padding( - padding: const EdgeInsets.only(right: 4.0), - child: DayNightSwitcher( - isDarkModeEnabled: themeModel.appTheme == AppTheme.Dark, - onStateChanged: (bool value) async{ - if(!value) { - themeModel.appTheme = AppTheme.Light; - await LocalStorage.setString('appTheme', "light"); - } else { - themeModel.appTheme = AppTheme.Dark; - await LocalStorage.setString('appTheme', "dark"); - } - }, + Expanded( + child: Padding( + padding: const EdgeInsets.only( + left: 12.0), + child: Text( + 'Theme', + style: TextStyle( + color: Color(0xff808080), + fontSize: 20, + fontWeight: + FontWeight.w300), + ), + ), ), - ) - ], + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: DayNightSwitcher( + isDarkModeEnabled: themeModel.appTheme == AppTheme.Dark, + onStateChanged: (bool value) async{ + if(!value) { + themeModel.appTheme = AppTheme.Light; + await LocalStorage.setString('appTheme', "light"); + } else { + themeModel.appTheme = AppTheme.Dark; + await LocalStorage.setString('appTheme', "dark"); + } + }, + ), + ) + ], + ), ), - ), - Container( - height: - MediaQuery.of(context).size.height / - 12, - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Container( - width: 50, - child: Icon( - Icons.notifications_active, - color: Color(0xff808080), - size: 30, + Container( + height: + MediaQuery.of(context).size.height / + 12, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 50, + child: Icon( + Icons.notifications_active, + color: Color(0xff808080), + size: 30, + ), ), - ), - Expanded( - child: Padding( - padding: const EdgeInsets.only( - left: 12.0), - child: Text( - 'Push notifications', - style: TextStyle( - color: Color(0xff808080), - fontSize: 20, - fontWeight: - FontWeight.w300), + Expanded( + child: Padding( + padding: const EdgeInsets.only( + left: 12.0), + child: Text( + 'Push notifications', + style: TextStyle( + color: Color(0xff808080), + fontSize: 20, + fontWeight: + FontWeight.w300), + ), ), ), - ), - Padding( - padding: const EdgeInsets.only(right: 4.0), - child: CupertinoSwitch( - activeColor: Theme.of(context).primaryColor, - trackColor: Colors.black, - value: true, onChanged: null), - ) - ], + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: CupertinoSwitch( + activeColor: Theme.of(context).primaryColor, + trackColor: Colors.black, + value: true, onChanged: null), + ) + ], + ), ), - ) - ], + Container( + height: + MediaQuery.of(context).size.height / + 12, + child: InkWell( + onTap: () { + Share.share('Check out this app where you can get latest football news and scores.\nhttps://play.google.com/store?hl=en_IN'); + }, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 50, + child: Icon( + Icons.share, + color: Color(0xff808080), + size: 30, + ), + ), + Expanded( + child: Padding( + padding: const EdgeInsets.only( + left: 12.0), + child: Text( + 'Share this app', + style: TextStyle( + color: Color(0xff808080), + fontSize: 20, + fontWeight: + FontWeight.w300), + ), + ), + ), + Container( + width: 50, + child: Icon( + Icons.chevron_right, + color: Theme.of(context) + .primaryColor, + size: 30, + ), + ) + ], + ), + ), + ) + ], + ), ), ) ), diff --git a/lib/screens/HomeScreen.dart b/lib/screens/HomeScreen.dart index 240c5f7..a1f1a58 100644 --- a/lib/screens/HomeScreen.dart +++ b/lib/screens/HomeScreen.dart @@ -1,5 +1,6 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:provider/provider.dart'; import 'package:sportsmojo/commons/ScoreCard.dart'; import 'package:sportsmojo/models/Score.dart'; @@ -62,7 +63,21 @@ class _HomeScreenState extends State with TickerProviderStateMixin { builder: (context, model, child) => SafeArea( child: RefreshIndicator( onRefresh: () async { + EasyLoading.instance + ..displayDuration = const Duration(milliseconds: 2000) + ..indicatorType = EasyLoadingIndicatorType.chasingDots + ..loadingStyle = EasyLoadingStyle.custom + ..indicatorSize = 45.0 + ..radius = 10.0 + ..backgroundColor = Theme.of(context).primaryColor + ..indicatorColor = Colors.white + ..maskColor = Colors.blue.withOpacity(0.5) + ..progressColor = Theme.of(context).primaryColor + ..textColor = Colors.white; + EasyLoading.show(status: 'Fetching latest content'); await _handleRefresh(appProvider: appProvider); + EasyLoading.dismiss(); + }, child: SingleChildScrollView( child: Container( diff --git a/lib/screens/MatchStatScreen.dart b/lib/screens/MatchStatScreen.dart index 9719d63..3d90b9a 100644 --- a/lib/screens/MatchStatScreen.dart +++ b/lib/screens/MatchStatScreen.dart @@ -10,6 +10,7 @@ import '../services/GetItLocator.dart'; import 'package:provider/provider.dart'; import '../widgets/Scorers.dart'; import '../constants.dart'; +import '../Provider/ThemeProvider.dart'; class MatchStatScreen extends StatefulWidget { final Score score; @@ -54,178 +55,165 @@ class _MatchStatScreenState extends State @override Widget build(BuildContext context) { - return SafeArea( - child: Scaffold( - appBar: AppBar( - backgroundColor: Colors.transparent, - elevation: 0, - ), - body: RefreshIndicator( - onRefresh: () async { + return Consumer( + builder: (context, themeModel, child) => SafeArea( + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.transparent, + elevation: 0, + iconTheme: IconThemeData( + color: themeModel.appTheme == AppTheme.Light + ? Colors.black + : Colors.white), + ), + body: RefreshIndicator( + onRefresh: () async {}, + child: (widget.score.status != 'NS') + ? SingleChildScrollView( + child: statSections(themeModel: themeModel), + ) + : Container( + child: statSections(themeModel: themeModel), + ), + ), + ), + )); + } - }, - child: SingleChildScrollView( - child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0), - child: Column( + Widget statSections({ThemeProvider themeModel}) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0), + child: Column( + children: [ + Row( + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + '${widget.score.competition} - ${convertDateTime(date_time: widget.score.date_time)}', + style: TextStyle( + fontSize: 12, color: Theme.of(context).primaryColorDark), + ), + ), + Spacer(), + Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Row( - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Text( - '${widget.score.competition} - ${convertDateTime(date_time: widget.score.date_time)}', - style: - TextStyle(fontSize: 12, color: Theme.of(context).primaryColorDark), - ), - ), - Spacer(), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - width: 20.0, - child: Text( - (widget.score.minuteElapsed != null && - widget.score.minuteElapsed != 90 && - widget.score.minuteElapsed != 120) - ? "${widget.score.minuteElapsed}'" - : "${widget.score.status}", - style: TextStyle(color: Colors.red), - ), - ), - if (widget.score.minuteElapsed != null && + Container( + width: 20.0, + child: Text( + (widget.score.minuteElapsed != null && widget.score.minuteElapsed != 90 && widget.score.minuteElapsed != 120) - Container( - width: animation.value, - height: 2.0, - color: Colors.red, - ) - ], - ) - ], + ? "${widget.score.minuteElapsed}'" + : "${widget.score.status}", + style: TextStyle(color: Colors.red), + ), ), - Row( - children: [ - Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 4.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: widget.score.homeTeamLogo, - placeholder: - (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - ), - FittedBox(child: Text(widget.score.homeTeam)), - ], - ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - (widget.score.minuteElapsed != null) - ? Text( - '${widget.score.homeScore} - ${widget.score.awayScore}', - style: TextStyle(fontSize: 30), - ) - : Text( - 'VS', - style: TextStyle( - fontSize: 18, color: Color(0XAA000000)), - ), - ], - ), - ), - Column( - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: Container( - height: 60, - child: CachedNetworkImage( - imageUrl: widget.score.awayTeamLogo, - placeholder: - (BuildContext context, String url) => - Icon(MyFlutterApp.football))), - ), - FittedBox(child: Text(widget.score.awayTeam)) - ], - ) - ], - ), - Divider( - thickness: 0.7, + if (widget.score.minuteElapsed != null && + widget.score.minuteElapsed != 90 && + widget.score.minuteElapsed != 120) + Container( + width: animation.value, + height: 2.0, + color: Colors.red, + ) + ], + ) + ], + ), + Row( + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 4.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.homeTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))), ), - (widget.score.status != 'NS') - ? ChangeNotifierProvider( - create: (context) => _matchEventViewModel, - child: Scorer( - score: widget.score, + FittedBox(child: Text(widget.score.homeTeam)), + ], + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + (widget.score.minuteElapsed != null) + ? Text( + '${widget.score.homeScore} - ${widget.score.awayScore}', + style: TextStyle(fontSize: 30), + ) + : Text( + 'VS', + style: TextStyle( + fontSize: 18, + color: themeModel.appTheme == AppTheme.Light + ? Color(0XAA000000) + : Colors.white), ), - ) - : getScorer(), - Divider( - thickness: 0.7, + ], + ), + ), + Column( + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Container( + height: 60, + child: CachedNetworkImage( + imageUrl: widget.score.awayTeamLogo, + placeholder: (BuildContext context, String url) => + Icon(MyFlutterApp.football))), ), - (widget.score.status != 'NS') - ? ChangeNotifierProvider( - create: (contet) => _matchStatViewModel, - child: Stats( - score: widget.score, - ), - ) - : getStats() + FittedBox(child: Text(widget.score.awayTeam)) ], - ), - ), + ) + ], ), - ), + Divider( + thickness: 0.7, + ), + (widget.score.status != 'NS') + ? ChangeNotifierProvider( + create: (context) => _matchEventViewModel, + child: Scorer( + score: widget.score, + ), + ) + : getScorer(), + Divider( + thickness: 0.7, + ), + (widget.score.status != 'NS') + ? ChangeNotifierProvider( + create: (contet) => _matchStatViewModel, + child: Stats( + score: widget.score, + ), + ) + : Expanded( + child: getStats(), + ) + ], ), ); } Widget getScorer() { - return Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - ConstrainedBox( - constraints: BoxConstraints( - minHeight: 50, minWidth: MediaQuery.of(context).size.width * 0.4), - child: Container( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.start, - children: [Container()], - ), - ), - ), - Container( - height: 10, - child: Icon( - MyFlutterApp.football, - color: Color(0XAA000000), - size: 20, - ), + return ConstrainedBox( + constraints: BoxConstraints(minHeight: 80), + child: Center( + child: Text( + 'Match not started', + style: TextStyle( + fontSize: 18, color: Theme.of(context).primaryColorDark), ), - ConstrainedBox( - constraints: BoxConstraints( - minHeight: 50, minWidth: MediaQuery.of(context).size.width * 0.4), - child: Container( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.end, - children: [Container()], - ), - ), - ) - ], + ), ); } @@ -253,279 +241,13 @@ class _MatchStatScreenState extends State Icon(MyFlutterApp.football))) ], ), - Padding( - padding: - const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Shots', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], - ), - ), - Padding( - padding: - const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Shots on target', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], - ), - ), - Padding( - padding: - const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Possession', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], - ), - ), - Padding( - padding: - const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Total Passes', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], - ), - ), - Padding( - padding: - const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Accurate Passes', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], - ), - ), - Padding( - padding: - const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Fouls', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], - ), - ), - Padding( - padding: - const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Yellow Cards', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], - ), - ), - Padding( - padding: - const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Red Cards', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], - ), - ), - Padding( - padding: - const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Offsides', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], - ), - ), - Padding( - padding: - const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Corners', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], - ), - ), - Padding( - padding: - const EdgeInsets.symmetric(vertical: 12.0, horizontal: 4.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'Saves', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ), - Text( - 'N/A', - style: TextStyle(fontSize: 14), - textAlign: TextAlign.center, - ) - ], + Expanded( + child: Center( + child: Text( + 'Match not started', + style: TextStyle( + fontSize: 22, color: Theme.of(context).primaryColorDark), + ), ), ) ], @@ -535,17 +257,17 @@ class _MatchStatScreenState extends State } String convertDateTime({DateTime date_time}) { - int dayDifferenceCount = dayDifference(date_time1: DateTime.now(), date_time2: date_time); - if(dayDifferenceCount == 0) { + int dayDifferenceCount = + dayDifference(date_time1: DateTime.now(), date_time2: date_time); + if (dayDifferenceCount == 0) { return 'Today, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); - } - else if(dayDifferenceCount == 1) { - return 'Yesterday, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); - } - else if(dayDifferenceCount == -1) { - return 'Tomorrow, ' + DateFormat('hh:mm aaa').format(widget.score.date_time); - } - else { + } else if (dayDifferenceCount == 1) { + return 'Yesterday, ' + + DateFormat('hh:mm aaa').format(widget.score.date_time); + } else if (dayDifferenceCount == -1) { + return 'Tomorrow, ' + + DateFormat('hh:mm aaa').format(widget.score.date_time); + } else { return DateFormat('E, d MMMM, hh:mm aaa').format(date_time); } } diff --git a/lib/screens/News.dart b/lib/screens/News.dart index 78ccd86..57c29dd 100644 --- a/lib/screens/News.dart +++ b/lib/screens/News.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:provider/provider.dart'; import '../commons/BottomNavbar.dart'; import '../commons/NewsCard.dart'; @@ -95,7 +96,20 @@ class _NewsScreenState extends State with TickerProviderStateMixin { Widget allNews({AppProvider model, ThemeProvider themeModel}) { return RefreshIndicator( onRefresh: () async { + EasyLoading.instance + ..displayDuration = const Duration(milliseconds: 2000) + ..indicatorType = EasyLoadingIndicatorType.chasingDots + ..loadingStyle = EasyLoadingStyle.custom + ..indicatorSize = 45.0 + ..radius = 10.0 + ..backgroundColor = Theme.of(context).primaryColor + ..indicatorColor = Colors.white + ..maskColor = Colors.blue.withOpacity(0.5) + ..progressColor = Theme.of(context).primaryColor + ..textColor = Colors.white; + EasyLoading.show(status: 'Fetching latest news'); await _handleAllNewsRefresh(appProvider: model); + EasyLoading.dismiss(); }, child: SingleChildScrollView( child: Padding( @@ -150,54 +164,66 @@ class _NewsScreenState extends State with TickerProviderStateMixin { Widget favouriteTeamNews({AppProvider model, ThemeProvider themeModel}) { return RefreshIndicator( onRefresh: () async { + EasyLoading.instance + ..displayDuration = const Duration(milliseconds: 2000) + ..indicatorType = EasyLoadingIndicatorType.chasingDots + ..loadingStyle = EasyLoadingStyle.custom + ..indicatorSize = 45.0 + ..radius = 10.0 + ..backgroundColor = Theme.of(context).primaryColor + ..indicatorColor = Colors.white + ..maskColor = Colors.blue.withOpacity(0.5) + ..progressColor = Theme.of(context).primaryColor + ..textColor = Colors.white; + EasyLoading.show(status: 'Fetching latest news'); await _handleFavouriteNewsRefresh(appProvider: model); + EasyLoading.dismiss(); + }, child: SingleChildScrollView( child: Padding( padding: const EdgeInsets.all(8.0), - child: Card( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - 'Latest News', - style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500), - textAlign: TextAlign.left, - ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + 'Latest News', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500), + textAlign: TextAlign.left, ), - model.favouriteNewsList == null - ? ListView.builder( - itemCount: 5, - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - return themeModel.appTheme == AppTheme.Light - ? PKCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ) - : PKDarkCardSkeleton( - isCircularImage: true, - isBottomLinesActive: true, - ); - }) - : ListView.separated( - shrinkWrap: true, - physics: NeverScrollableScrollPhysics(), - itemCount: model.favouriteNewsList.length, - separatorBuilder: (BuildContext context, int index) { - return Divider(); - }, - itemBuilder: (BuildContext context, int index) { - return NewsCard( - index: index, - news: model.favouriteNewsList[index], - ); - }) - ], - ), + ), + model.favouriteNewsList == null + ? ListView.builder( + itemCount: 5, + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return themeModel.appTheme == AppTheme.Light + ? PKCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ) + : PKDarkCardSkeleton( + isCircularImage: true, + isBottomLinesActive: true, + ); + }) + : ListView.separated( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + itemCount: model.favouriteNewsList.length, + separatorBuilder: (BuildContext context, int index) { + return Divider(); + }, + itemBuilder: (BuildContext context, int index) { + return NewsCard( + index: index, + news: model.favouriteNewsList[index], + ); + }) + ], ), ), ), diff --git a/lib/screens/NewsArticle.dart b/lib/screens/NewsArticle.dart index 0a04f0f..75481bd 100644 --- a/lib/screens/NewsArticle.dart +++ b/lib/screens/NewsArticle.dart @@ -4,188 +4,211 @@ import 'package:intl/intl.dart'; import '../models/News.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:share/share.dart'; +import '../Provider/ThemeProvider.dart'; +import 'package:provider/provider.dart'; class NewsArticleScreen extends StatelessWidget { final int index; final News news; NewsArticleScreen({this.index, this.news}); Widget build(BuildContext context) { - return SafeArea( - child: Scaffold( - extendBodyBehindAppBar: true, - appBar: AppBar( - backgroundColor: Color(0x04000000), - elevation: 0, - iconTheme: IconThemeData(color: Colors.white), - actions: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: InkWell(child: Icon(Icons.share), - onTap: () { - Share.share('${news.title}\n${news.url}'); - },), - ) - ], - ), - body: LayoutBuilder(builder: (context, constraint) { - return Stack( - children: [ - SingleChildScrollView( - child: ConstrainedBox( - constraints: - BoxConstraints(minHeight: constraint.maxHeight), - child: IntrinsicHeight( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Container( - height: MediaQuery.of(context).size.height * 0.3, - width: MediaQuery.of(context).size.width, - child: Hero( - tag: 'hero${index}', - child: CachedNetworkImage( - imageUrl: news.imageUrl, - fit: BoxFit.cover, - placeholder: - (BuildContext context, String url) => - CircularProgressIndicator(), - ), - ), - ), - Expanded( - child: Container( - child: Padding( - padding: const EdgeInsets.all(12.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: - const EdgeInsets.only(bottom: 8.0), - child: Row( - mainAxisAlignment: - MainAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(right: 4.0), - child: Container( - width: 50, - child: (news.sourceLogo != null) ? CachedNetworkImage( - imageUrl: news.sourceLogo, - fit: BoxFit.cover, - placeholder: - (BuildContext context, - String url) => - Image.asset( - 'assets/images/news_source_default.png', - width: 50, - fit: BoxFit.cover, - ), - ) : Image.asset( - 'assets/images/news_source_default.png', - width: 50, - fit: BoxFit.cover, + return Consumer( + builder: (context, themeModel, child) => SafeArea( + child: Scaffold( + extendBodyBehindAppBar: true, + appBar: AppBar( + backgroundColor: Color(0x04000000), + elevation: 0, + iconTheme: IconThemeData(color: Colors.white), + actions: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: InkWell( + child: Icon(Icons.share), + onTap: () { + Share.share('${news.title}\n${news.url}'); + }, + ), + ) + ], + ), + body: LayoutBuilder(builder: (context, constraint) { + return Stack( + children: [ + SingleChildScrollView( + child: ConstrainedBox( + constraints: + BoxConstraints(minHeight: constraint.maxHeight), + child: IntrinsicHeight( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + height: MediaQuery.of(context).size.height * + 0.3, + width: MediaQuery.of(context).size.width, + child: Hero( + tag: 'hero${index}', + child: CachedNetworkImage( + imageUrl: news.imageUrl, + fit: BoxFit.cover, + placeholder: (BuildContext context, + String url) => + CircularProgressIndicator(), + ), + ), + ), + Expanded( + child: Container( + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only( + bottom: 8.0), + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + Padding( + padding: + const EdgeInsets.only( + right: 4.0), + child: Container( + width: 50, + child: (news.sourceLogo != + null) + ? CachedNetworkImage( + imageUrl: news + .sourceLogo, + fit: BoxFit.cover, + placeholder: (BuildContext + context, + String + url) => + Image.asset( + 'assets/images/news_source_default.png', + width: 50, + fit: BoxFit + .cover, + ), + ) + : Image.asset( + 'assets/images/news_source_default.png', + width: 50, + fit: BoxFit.cover, + ), + ), + ), + Column( + crossAxisAlignment: + CrossAxisAlignment + .start, + children: [ + Text( + news.source, + style: TextStyle( + fontSize: 16), + ), + Text( + DateFormat( + 'E, d MMMM, hh:mm aaa') + .format(news + .publishedAt), + style: TextStyle( + fontSize: 14, + fontWeight: + FontWeight.w400, + color: Theme.of( + context) + .primaryColorDark), + ) + ], + ), + ], ), ), - ), - Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - news.source, - style: TextStyle(fontSize: 16), + Flexible( + child: Padding( + padding: const EdgeInsets.only( + bottom: 8.0), + child: Text( + news.title, + style: TextStyle( + fontWeight: + FontWeight.w500, + fontSize: 22, + wordSpacing: 1.1, + height: 1.1), + ), ), - Text( - DateFormat( - 'E, d MMMM, hh:mm aaa') - .format(news.publishedAt), + ), + Flexible( + child: Text( + '${news.content}', style: TextStyle( - fontSize: 14, - fontWeight: FontWeight.w400, - color: Theme.of(context) - .primaryColorDark), - ) - ], - ), - ], - ), - ), - Flexible( - child: Padding( - padding: - const EdgeInsets.only(bottom: 8.0), - child: Text( - news.title, - style: TextStyle( - fontWeight: FontWeight.w500, - fontSize: 22, - wordSpacing: 1.1, - height: 1.1), + color: themeModel.appTheme == AppTheme.Light ? Colors.black : Color(0xffdfdfdf), + fontSize: 18, + wordSpacing: 1.1, + height: 1.1, + fontWeight: FontWeight.w400 + ), + textAlign: TextAlign.left, + ), + ) + ], ), ), ), - Flexible( - child: Text( - '${news.content}', - style: TextStyle( - fontSize: 18, - wordSpacing: 1.1, - height: 1.3, - ), - textAlign: TextAlign.left, - ), - ) - ], - ), + ) + ], ), ), - ) - ], - ), - ), - ), - ), - Align( - alignment: Alignment.bottomCenter, - child: InkWell( - onTap: () async { - launchUrl(news.url); - }, - child: Container( - decoration: BoxDecoration( - color: Theme.of(context).primaryColor, - boxShadow: [ - BoxShadow( - color: Colors.grey, - offset: Offset(0.0, 0.0), //(x,y) - blurRadius: 12.0, ), - ], - ), - width: MediaQuery.of(context).size.width, - height: MediaQuery.of(context).size.height * 0.08, - child: Row( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - 'Tap here to read full article', - style: TextStyle( - fontSize: 22, - fontWeight: FontWeight.w400, - color: Colors.white, + ), + Align( + alignment: Alignment.bottomCenter, + child: InkWell( + onTap: () async { + launchUrl(news.url); + }, + child: Container( + decoration: BoxDecoration( + color: Theme.of(context).primaryColor, + boxShadow: [ + if(themeModel.appTheme == AppTheme.Light) BoxShadow( + color: Colors.white54, + offset: Offset(0.0, 0.0), //(x,y) + blurRadius: 12.0, + ), + ], + ), + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height * 0.08, + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Tap here to read full article', + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.w400, + color: Colors.white, + ), + ), + ], + ), ), ), - ], - ), - ), - ), - ) - ], - ); - })), - ); + ) + ], + ); + })), + )); } void launchUrl(String url) async { diff --git a/lib/screens/ScoreScreen.dart b/lib/screens/ScoreScreen.dart index 1ac02b8..5fc61e1 100644 --- a/lib/screens/ScoreScreen.dart +++ b/lib/screens/ScoreScreen.dart @@ -40,7 +40,6 @@ class _ScoreScreenState extends State final AppProvider appProvider = Provider.of(context); return Scaffold( bottomNavigationBar: BottomNavbar(), - backgroundColor: Color(0xfff1f1f1), appBar: PreferredSize( preferredSize: Size.fromHeight(100.0), child: AppBar( diff --git a/lib/widgets/AllScores.dart b/lib/widgets/AllScores.dart index 2138f4f..a2b0ae9 100644 --- a/lib/widgets/AllScores.dart +++ b/lib/widgets/AllScores.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:intl/intl.dart'; import 'package:pk_skeleton/pk_skeleton.dart'; import 'package:provider/provider.dart'; @@ -61,7 +62,20 @@ class _AllScoresState extends State { return Consumer( builder: (context, model, child) => RefreshIndicator( onRefresh: () async { + EasyLoading.instance + ..displayDuration = const Duration(milliseconds: 2000) + ..indicatorType = EasyLoadingIndicatorType.chasingDots + ..loadingStyle = EasyLoadingStyle.custom + ..indicatorSize = 45.0 + ..radius = 10.0 + ..backgroundColor = Theme.of(context).primaryColor + ..indicatorColor = Colors.white + ..maskColor = Colors.blue.withOpacity(0.5) + ..progressColor = Theme.of(context).primaryColor + ..textColor = Colors.white; + EasyLoading.show(status: 'Fetching latest scores'); await _handleRefresh(model: model); + EasyLoading.dismiss(); }, child: Consumer( builder: (context, themeModel, child) => @@ -82,8 +96,11 @@ class _AllScoresState extends State { LeagueDropdown( items: getLeagueItems(), selectedLeague: model.selectedLeague, - backgroundColor: Color(0xfffafafa), - fontColor: Colors.black, + backgroundColor: + themeModel.appTheme == AppTheme.Light + ? Color(0xfffafafa) + : Color(0xff1d1d1d), + fontColor: themeModel.appTheme == AppTheme.Light ? Colors.black : Colors.white, purpose: "score", ), FlatButton( @@ -95,9 +112,13 @@ class _AllScoresState extends State { Text('Filter') ], ), - color: Color(0xfffafafa), + color: + themeModel.appTheme == AppTheme.Light + ? Color(0xfffafafa) + : Color(0xff1d1d1d), onPressed: () { - onSettingPressed(); + onSettingPressed( + themeModel: themeModel); }, ) ], @@ -237,13 +258,17 @@ class _AllScoresState extends State { }); } - void onSettingPressed() { + void onSettingPressed({ThemeProvider themeModel}) { showModalBottomSheet( context: context, builder: (BuildContext context) { return Container( height: 150, - child: SettingsDialog(), + child: SettingsDialog( + borderColor: themeModel.appTheme == AppTheme.Light + ? Colors.black + : Colors.white, + ), ); }); } diff --git a/lib/widgets/FavouriteScoresPast.dart b/lib/widgets/FavouriteScoresPast.dart index 4417f15..71ec733 100644 --- a/lib/widgets/FavouriteScoresPast.dart +++ b/lib/widgets/FavouriteScoresPast.dart @@ -6,6 +6,7 @@ import '../models/Score.dart'; import '../commons/ScoreCard.dart'; import '../commons/NoContent.dart'; import '../Provider/ThemeProvider.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; class FavouriteScoresPast extends StatefulWidget { @override @@ -42,7 +43,20 @@ class _FavouriteScoresPastState extends State { final AppProvider appProvider = Provider.of(context); return RefreshIndicator( onRefresh: () async { + EasyLoading.instance + ..displayDuration = const Duration(milliseconds: 2000) + ..indicatorType = EasyLoadingIndicatorType.chasingDots + ..loadingStyle = EasyLoadingStyle.custom + ..indicatorSize = 45.0 + ..radius = 10.0 + ..backgroundColor = Theme.of(context).primaryColor + ..indicatorColor = Colors.white + ..maskColor = Colors.blue.withOpacity(0.5) + ..progressColor = Theme.of(context).primaryColor + ..textColor = Colors.white; + EasyLoading.show(status: 'Fetching latest scores'); await _handleRefresh(appProvider: appProvider); + EasyLoading.dismiss(); }, child: Consumer( builder: (context, themeModel, child) => SingleChildScrollView( diff --git a/lib/widgets/LeagueTableWiget.dart b/lib/widgets/LeagueTableWiget.dart index 7be1d15..28107ad 100644 --- a/lib/widgets/LeagueTableWiget.dart +++ b/lib/widgets/LeagueTableWiget.dart @@ -54,8 +54,8 @@ class _LeagueTableWidgetState extends State { child: LeagueDropdown( items: getLeagueItems(), selectedLeague: model.selectedLeague, - backgroundColor: Color(0xfffafafa), - fontColor: Colors.black, + backgroundColor: themeModel.appTheme == AppTheme.Light ? Color(0xfffafafa) : Color(0xff1d1d1d), + fontColor: themeModel.appTheme == AppTheme.Light ? Colors.black : Colors.white, purpose: "table", ), ), diff --git a/lib/widgets/Scorers.dart b/lib/widgets/Scorers.dart index 69939e8..07f4c3d 100644 --- a/lib/widgets/Scorers.dart +++ b/lib/widgets/Scorers.dart @@ -50,7 +50,7 @@ class _ScorerState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, - children: getHomeGoals(model: model), + children: getHomeGoals(model: model, themeModel: themeModel), ), ), ), @@ -58,7 +58,7 @@ class _ScorerState extends State { height: 10, child: Icon( MyFlutterApp.football, - color: Color(0XAA000000), + color: themeModel.appTheme == AppTheme.Light ? Color(0XAA000000) : Colors.white, size: 20, ), ), @@ -70,7 +70,7 @@ class _ScorerState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.end, - children: getAwayGoals(model: model), + children: getAwayGoals(model: model, themeModel: themeModel), ), ), ) @@ -90,7 +90,7 @@ class _ScorerState extends State { ); } - List getHomeGoals({MatchEventViewModel model}) { + List getHomeGoals({MatchEventViewModel model, ThemeProvider themeModel}) { final List homeTeamGoals = model.events .where((event) => (event.team == widget.score.homeTeam && event.type == "Goal")) @@ -99,7 +99,7 @@ class _ScorerState extends State { padding: const EdgeInsets.all(2.0), child: Text( "${event.player1} ${event.minute}'${(event.detail == "Penalty") ? "(P)" : (event.detail == "Own Goal") ? "(OG)" : ""}", - style: TextStyle(fontSize: 14, color: Color(0XAA000000)), + style: TextStyle(fontSize: 14, color: themeModel.appTheme == AppTheme.Light ? Color(0XAA000000): Colors.white), textAlign: TextAlign.left, ), ); @@ -107,7 +107,7 @@ class _ScorerState extends State { return (homeTeamGoals.length > 0) ? homeTeamGoals : [Container()]; } - List getAwayGoals({MatchEventViewModel model}) { + List getAwayGoals({MatchEventViewModel model, ThemeProvider themeModel}) { final List awayTeamGoals = model.events .where((event) => (event.team == widget.score.awayTeam && event.type == "Goal")) @@ -116,7 +116,7 @@ class _ScorerState extends State { padding: const EdgeInsets.all(2.0), child: Text( "${event.player1} ${event.minute}'${(event.detail == "Penalty") ? "(P)" : (event.detail == "Own Goal") ? "(OG)" : ""}", - style: TextStyle(fontSize: 14, color: Color(0XAA000000)), + style: TextStyle(fontSize: 14, color: themeModel.appTheme == AppTheme.Light ? Color(0XAA000000) : Colors.white), textAlign: TextAlign.right, ), ); diff --git a/lib/widgets/SettingsDialog.dart b/lib/widgets/SettingsDialog.dart index 85eef18..8035d6a 100644 --- a/lib/widgets/SettingsDialog.dart +++ b/lib/widgets/SettingsDialog.dart @@ -6,6 +6,8 @@ import '../Provider/AppProvider.dart'; import '../commons/CustomRaisedButton.dart'; class SettingsDialog extends StatefulWidget { + final Color borderColor; + SettingsDialog({Key key, this.borderColor}) : super(key:key); @override _SettingsDialogState createState() => _SettingsDialogState(); } @@ -66,7 +68,7 @@ class _SettingsDialogState extends State { }, child: Container( decoration: BoxDecoration( - border: Border.all(width: 2, color: Colors.black), + border: Border.all(width: 2, color: widget.borderColor), borderRadius: BorderRadius.circular(4.0)), child: Padding( padding: const EdgeInsets.all(8.0), @@ -105,7 +107,7 @@ class _SettingsDialogState extends State { }, child: Container( decoration: BoxDecoration( - border: Border.all(width: 2, color: Colors.black), + border: Border.all(width: 2, color: widget.borderColor), borderRadius: BorderRadius.circular(4.0)), child: Padding( padding: const EdgeInsets.all(8.0), diff --git a/lib/widgets/TopScorer.dart b/lib/widgets/TopScorer.dart index e977a7e..5517e31 100644 --- a/lib/widgets/TopScorer.dart +++ b/lib/widgets/TopScorer.dart @@ -53,8 +53,8 @@ class _TopScorersState extends State { child: LeagueDropdown( items: getLeagueItems(), selectedLeague: model.selectedLeague, - backgroundColor: Color(0xfffafafa), - fontColor: Colors.black, + backgroundColor: themeModel.appTheme == AppTheme.Light ? Color(0xfffafafa) : Color(0xff1d1d1d), + fontColor: themeModel.appTheme == AppTheme.Light ? Colors.black : Colors.white, purpose: "topscorer", ), ), From 240aaf79e012973140c1c17b238d45b37142e190 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Sun, 2 Aug 2020 14:47:45 +0530 Subject: [PATCH 45/49] Completed push notification --- ios/Flutter/Generated 31.xcconfig | 10 +++++++ ios/Flutter/flutter_export_environment 31.sh | 11 +++++++ lib/App.dart | 24 ++++++++++----- lib/Provider/AppProvider.dart | 10 ++++++- lib/screens/DashboardScreen.dart | 16 ++++++++-- lib/services/FirebaseMessagingService.dart | 17 ++++++++--- lib/services/GetItLocator.dart | 31 ++++++++++++++------ lib/services/LocalStorage.dart | 11 +++++++ lib/start.dart | 2 ++ 9 files changed, 107 insertions(+), 25 deletions(-) create mode 100644 ios/Flutter/Generated 31.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 31.sh diff --git a/ios/Flutter/Generated 31.xcconfig b/ios/Flutter/Generated 31.xcconfig new file mode 100644 index 0000000..6be192b --- /dev/null +++ b/ios/Flutter/Generated 31.xcconfig @@ -0,0 +1,10 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter +FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo +FLUTTER_TARGET=lib/main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build/ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 diff --git a/ios/Flutter/flutter_export_environment 31.sh b/ios/Flutter/flutter_export_environment 31.sh new file mode 100755 index 0000000..f185760 --- /dev/null +++ b/ios/Flutter/flutter_export_environment 31.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/tanweeranwar/Downloads/flutter/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/tanweeranwar/Documents/flutter/sportsmojo" +export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build/ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=/Users/tanweeranwar/Downloads/flutter/flutter/bin/cache/artifacts/engine/ios" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" diff --git a/lib/App.dart b/lib/App.dart index 35c0335..d2c0956 100644 --- a/lib/App.dart +++ b/lib/App.dart @@ -20,14 +20,19 @@ class App { static Future initialiseApp() async { await setupLocator(); final leagueName = await LocalStorage.getString('leagueName'); + final notificationEnabledPreference = + await LocalStorage.getString('notificationEnabled'); + final bool notificationEnabled = notificationEnabledPreference == null || + notificationEnabledPreference == "yes" + ? true + : false; User currentUser = null; FirebaseService firebaseService = locator(); final RemoteConfigService _remoteConfigService = - locator(); - networkStatusService = - locator(); + locator(); + networkStatusService = locator(); final FirebaseMessagingService _fcmService = - locator(); + locator(); routerService = locator(); result = await DataConnectionChecker().hasConnection; if (result) { @@ -36,8 +41,11 @@ class App { currentUser = await firebaseService.getCurrentUser(); } final _theme = await LocalStorage.getString('appTheme'); - appProvider = - locator(param1: leagueName, param2: currentUser); - themeProvider = locator(param1: _theme == "dark" ? AppTheme.Dark : AppTheme.Light); + appProvider = locator(param1: { + 'leagueName': leagueName, + 'notificationEnabled': notificationEnabled + }, param2: currentUser); + themeProvider = locator( + param1: _theme == "dark" ? AppTheme.Dark : AppTheme.Light); } -} \ No newline at end of file +} diff --git a/lib/Provider/AppProvider.dart b/lib/Provider/AppProvider.dart index 5d100b1..29e79c0 100644 --- a/lib/Provider/AppProvider.dart +++ b/lib/Provider/AppProvider.dart @@ -14,7 +14,7 @@ import '../models/User.dart'; import '../services/RemoteConfigService.dart'; class AppProvider extends ChangeNotifier { - AppProvider(this._navbarIndex, this._selectedLeague, this._startDate, this._endDate, this._currentUser); + AppProvider(this._navbarIndex, this._selectedLeague, this._notificationEnabled, this._startDate, this._endDate, this._currentUser); int _navbarIndex; List _newsList; List _favouriteNewsList; @@ -26,6 +26,7 @@ class AppProvider extends ChangeNotifier { String _selectedLeague; List _topScorers; User _currentUser; + bool _notificationEnabled; NewsService _newsService = locator(); ScoreService _scoreService = locator(); @@ -48,6 +49,8 @@ class AppProvider extends ChangeNotifier { List get topScorers => _topScorers; User get currentUser => _currentUser; + bool get notificationEnabled => _notificationEnabled; + void set selectedLeague(String league) { _selectedLeague = league; notifyListeners(); @@ -108,6 +111,11 @@ class AppProvider extends ChangeNotifier { notifyListeners(); } + void set notificationEnabled(bool value) { + _notificationEnabled = value; + notifyListeners(); + } + Future loadAllNews() async{ List allNews = await _newsService.fetchNews('european football'); _newsList = allNews.where((news) => news.imageUrl != null).toList(); diff --git a/lib/screens/DashboardScreen.dart b/lib/screens/DashboardScreen.dart index 8113823..e979e76 100644 --- a/lib/screens/DashboardScreen.dart +++ b/lib/screens/DashboardScreen.dart @@ -3,6 +3,7 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:provider/provider.dart'; +import 'package:day_night_switcher/day_night_switcher.dart'; import 'package:share/share.dart'; import '../services/FirebaseService.dart'; import '../models/User.dart'; @@ -16,7 +17,6 @@ import '../constants.dart'; import '../commons/CustomRaisedButton.dart'; import '../services/FirebaseMessagingService.dart'; import '../Provider/ThemeProvider.dart'; -import 'package:day_night_switcher/day_night_switcher.dart'; class DashboardScreen extends StatefulWidget { @override _DashboardScreenState createState() => _DashboardScreenState(); @@ -486,8 +486,18 @@ class _DashboardScreenState extends State { padding: const EdgeInsets.only(right: 4.0), child: CupertinoSwitch( activeColor: Theme.of(context).primaryColor, - trackColor: Colors.black, - value: true, onChanged: null), + trackColor: Color(0xff56727c), + value: model.notificationEnabled, onChanged: (bool value) async{ + model.notificationEnabled = !model.notificationEnabled; + if(value) { + LocalStorage.setString('notificationEnabled', "yes"); + await _fcmService.subscribeToTopic(topic: teamName.replaceAll(' ', '')); + } else { + LocalStorage.setString('notificationEnabled', "no"); + await _fcmService.unsubscribeFromTopic(topic: teamName.replaceAll(' ', '')); + await LocalStorage.setString('lastTopic', null); + } + }), ) ], ), diff --git a/lib/services/FirebaseMessagingService.dart b/lib/services/FirebaseMessagingService.dart index ca4d4de..87e883f 100644 --- a/lib/services/FirebaseMessagingService.dart +++ b/lib/services/FirebaseMessagingService.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'CustomRouter.dart'; import 'GetItLocator.dart'; +import 'LocalStorage.dart'; class FirebaseMessagingService { final FirebaseMessaging _fcm = FirebaseMessaging(); @@ -13,21 +14,29 @@ class FirebaseMessagingService { _fcm.configure( onMessage: (Map message) async { print("onMessage: $message"); - _routerService.navigationKey.currentState.pushReplacementNamed('/score'); + _routerService.navigationKey.currentState + .pushReplacementNamed('/score'); }, onLaunch: (Map message) async { print("onLaunch: $message"); - _routerService.navigationKey.currentState.pushReplacementNamed('/score'); + _routerService.navigationKey.currentState + .pushReplacementNamed('/score'); }, onResume: (Map message) async { print("onResume: $message"); - _routerService.navigationKey.currentState.pushReplacementNamed('/score'); + _routerService.navigationKey.currentState + .pushReplacementNamed('/score'); }, ); } Future subscribeToTopic({String topic}) async { await _fcm.subscribeToTopic(topic); + final String lastTopic = await LocalStorage.getString('lastTopic'); + if (lastTopic != null) { + await _fcm.unsubscribeFromTopic(lastTopic); + } + await LocalStorage.setString('lastTopic', topic); } Future unsubscribeFromTopic({String topic}) async { @@ -38,4 +47,4 @@ class FirebaseMessagingService { final String token = await _fcm.getToken(); return token; } -} \ No newline at end of file +} diff --git a/lib/services/GetItLocator.dart b/lib/services/GetItLocator.dart index 2902141..a8b6683 100644 --- a/lib/services/GetItLocator.dart +++ b/lib/services/GetItLocator.dart @@ -23,9 +23,11 @@ import '../Provider/ThemeProvider.dart'; GetIt locator = GetIt.instance; -Future setupLocator() async{ - DateTime now = DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day); - RemoteConfigService remoteConfigService = await RemoteConfigService.getInstance(); +Future setupLocator() async { + DateTime now = + DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day); + RemoteConfigService remoteConfigService = + await RemoteConfigService.getInstance(); locator.registerLazySingleton(() => NewsService()); locator.registerLazySingleton(() => TeamService()); locator.registerLazySingleton(() => ScoreService()); @@ -35,14 +37,25 @@ Future setupLocator() async{ locator.registerLazySingleton(() => TopScorerService()); locator.registerLazySingleton(() => FirebaseService()); locator.registerLazySingleton(() => FirestoreService()); - locator.registerLazySingleton(() => NetworkStatusService()); + locator.registerLazySingleton( + () => NetworkStatusService()); locator.registerSingleton(remoteConfigService); - locator.registerLazySingleton(() => FirebaseMessagingService()); + locator.registerLazySingleton( + () => FirebaseMessagingService()); locator.registerLazySingleton(() => RouterService()); locator.registerFactory(() => HomeViewModel(0)); locator.registerFactory(() => MatchStatViewModel(null)); locator.registerFactory(() => MatchEventViewModel(null)); - locator.registerFactoryParam, int>((scores, index) => FavouriteScoresViewModel(scores, index)); - locator.registerFactoryParam((leagueName, currentUser) => AppProvider(0, leagueName, now.subtract(Duration(days: 30)), now.add(Duration(days: 7)), currentUser)); - locator.registerFactoryParam((theme, _) => ThemeProvider(theme)); -} \ No newline at end of file + locator.registerFactoryParam, int>( + (scores, index) => FavouriteScoresViewModel(scores, index)); + locator.registerFactoryParam, User>( + (map, currentUser) => AppProvider( + 0, + map['leagueName'], + map['notificationEnabled'], + now.subtract(Duration(days: 30)), + now.add(Duration(days: 7)), + currentUser)); + locator.registerFactoryParam( + (theme, _) => ThemeProvider(theme)); +} diff --git a/lib/services/LocalStorage.dart b/lib/services/LocalStorage.dart index 5aa7f58..68acc1b 100644 --- a/lib/services/LocalStorage.dart +++ b/lib/services/LocalStorage.dart @@ -7,8 +7,19 @@ class LocalStorage { return value; } + static Future> getStringList(String key) async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + final List value = (prefs.getStringList(key) ?? null); + return value; + } + static Future setString(String key, String value) async{ SharedPreferences prefs = await SharedPreferences.getInstance(); await prefs.setString(key, value); } + + static Future setStringList(String key, List value) async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + await prefs.setStringList(key, value); + } } \ No newline at end of file diff --git a/lib/start.dart b/lib/start.dart index d963af7..930fd12 100644 --- a/lib/start.dart +++ b/lib/start.dart @@ -14,6 +14,8 @@ class StartState extends State { Navigator.of(context).pushReplacementNamed('/home'); } else { await LocalStorage.setString('appTheme', "light"); + await LocalStorage.setString("notificationEnabled", "yes"); + await LocalStorage.setString('lastTopic', null); Navigator.of(context).pushReplacementNamed('/introduction'); } } From dfb3704aa3bd95df6af1e2afe0b7870187ae92f8 Mon Sep 17 00:00:00 2001 From: Tanweer Anwar Date: Mon, 3 Aug 2020 04:04:52 +0530 Subject: [PATCH 46/49] Added app icon and splash screen --- android/app/src/main/AndroidManifest.xml | 7 +- .../com/example/sportsmojo/MainActivity.kt | 5 +- .../app/src/main/res/drawable-hdpi/splash.png | Bin 0 -> 50820 bytes .../app/src/main/res/drawable-mdpi/splash.png | Bin 0 -> 29252 bytes .../src/main/res/drawable-xhdpi/splash.png | Bin 0 -> 76649 bytes .../src/main/res/drawable-xxhdpi/splash.png | Bin 0 -> 91706 bytes .../src/main/res/drawable-xxxhdpi/splash.png | Bin 0 -> 57812 bytes .../main/res/drawable/launch_background.xml | 6 +- .../main/res/mipmap-hdpi/launcher_icon.png | Bin 0 -> 2830 bytes .../main/res/mipmap-mdpi/launcher_icon.png | Bin 0 -> 1733 bytes .../main/res/mipmap-xhdpi/launcher_icon.png | Bin 0 -> 3932 bytes .../main/res/mipmap-xxhdpi/launcher_icon.png | Bin 0 -> 6356 bytes .../main/res/mipmap-xxxhdpi/launcher_icon.png | Bin 0 -> 9065 bytes android/app/src/main/res/values/colors.xml | 4 + android/app/src/main/res/values/strings.xml | 4 + android/app/src/main/res/values/styles.xml | 4 +- assets/images/app_icon.png | Bin 0 -> 21718 bytes assets/images/football_cover.png | Bin 72144 -> 151287 bytes assets/images/icon_only.png | Bin 0 -> 19066 bytes assets/images/nointernet.png | Bin 65000 -> 41834 bytes flutter_native_splash.yaml | 5 + ios/Flutter/Generated 32.xcconfig | 10 + ios/Flutter/flutter_export_environment 32.sh | 11 + ios/Runner/AppDelegate.swift | 5 +- .../Icon-App-1024x1024@1x.png | Bin 10932 -> 103707 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 564 -> 606 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 1283 -> 1384 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 1588 -> 2268 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 1025 -> 912 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 1716 -> 2157 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 1920 -> 3585 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 1283 -> 1384 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 1895 -> 3210 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 2665 -> 5136 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 0 -> 1762 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 0 -> 4117 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 0 -> 2127 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 0 -> 4908 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 2665 -> 5136 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 3831 -> 8346 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 0 -> 2830 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 0 -> 6356 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 1888 -> 3031 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 3294 -> 6795 bytes .../Icon-App-83.5x83.5@2x.png | Bin 3612 -> 7569 bytes .../LaunchImage.imageset/LaunchImage.png | Bin 68 -> 21877 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 68 -> 29252 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 68 -> 57812 bytes ios/Runner/Base.lproj/LaunchScreen.storyboard | 6 +- ios/Runner/Info.plist | 5 +- lib/commons/BottomNavbar.dart | 6 +- lib/commons/ScoreCard.dart | 15 +- lib/models/Score.dart | 48 ++- lib/screens/DashboardScreen.dart | 5 +- lib/screens/FavouriteScreen1.dart | 201 ++++++----- lib/screens/FavouriteScreen2.dart | 317 +++++++++--------- lib/screens/HomeScreen.dart | 259 +++++++++----- lib/screens/MatchStatScreen.dart | 15 +- lib/services/FirebaseMessagingService.dart | 9 +- pubspec.lock | 28 ++ pubspec.yaml | 7 + 61 files changed, 609 insertions(+), 373 deletions(-) create mode 100644 android/app/src/main/res/drawable-hdpi/splash.png create mode 100644 android/app/src/main/res/drawable-mdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/splash.png create mode 100644 android/app/src/main/res/mipmap-hdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-mdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/values/colors.xml create mode 100644 android/app/src/main/res/values/strings.xml create mode 100644 assets/images/app_icon.png create mode 100644 assets/images/icon_only.png create mode 100644 flutter_native_splash.yaml create mode 100644 ios/Flutter/Generated 32.xcconfig create mode 100755 ios/Flutter/flutter_export_environment 32.sh create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index e94a200..af92c6c 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -8,7 +8,7 @@ + android:icon="@mipmap/launcher_icon"> + @@ -49,4 +52,4 @@ android:value="2" /> - + \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/example/sportsmojo/MainActivity.kt b/android/app/src/main/kotlin/com/example/sportsmojo/MainActivity.kt index 6161e59..138f83a 100644 --- a/android/app/src/main/kotlin/com/example/sportsmojo/MainActivity.kt +++ b/android/app/src/main/kotlin/com/example/sportsmojo/MainActivity.kt @@ -2,5 +2,8 @@ package com.example.sportsmojo import io.flutter.embedding.android.FlutterActivity +import android.os.Build +import android.view.ViewTreeObserver +import android.view.WindowManager class MainActivity: FlutterActivity() { -} +} \ No newline at end of file diff --git a/android/app/src/main/res/drawable-hdpi/splash.png b/android/app/src/main/res/drawable-hdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..d49afb1eb235432c062285816b9f4436e8c928f4 GIT binary patch literal 50820 zcmeFZ^;=YH8#X+kh=Pa;0+J$IX^=)zMOr{&=unXE?h-*lKtw=tBnB87hHgc=q#05e z=^S9FA>Mm@zvKNMzTTftGSe|J?$+(AH@0)Al(G(I6CYKLRZqKgMod?r zQzE`7x@!z*Et#ej)a_|Gm8oR!l+hz*en6No4 zk_1h9z8Szpd@cX-AaSQ{50@!LAiDA=je7Ly-y`WAoRr#@f8T<0dayXIXKp& z=+)cczeEVHLm;2&2(CgPUC|Ii2;{FEga86@VF?1))ZKXofdtK5e*l3zbNJuo|Fg{h zoZx@q@xM&)za06$a`6A_Ldp5PIZOC()Gqo8*4NCjzdE10Fmh^d-3np%sk&hKY2fnY zE{cYpDJC-_Zk2H-N`S=(K6s8fY{iI5Po?iWLdy6-GoX8o-DzgFR+`bFSrR8j6kAwT zlj}dXp#gb1dgO3cv_bUts_qE>x-5BvomlA^HyuHpQF(V%&)LY7K8g}%U&kUf>*m@x zd>PQFMZ&^#Gk{VOeT8$+3&JT2AqbMq=PC?Wfxq6h+Guh%Xsar(DtOdj2iN+VkQB3S zcYlI`Y{DG*h&61mec^%yH6+bfX&OsbmIfYJt3-^ot zakB(PJ6&L4#y>1~D1dtG5j3U*PDiBF3)9&3%0H>Dt#*(fYCCypCTrxEdon($iR5nf zJ={Sz{fOrid#Zg<23h_u2+~TJ!=Ynh@5@H|z#27TQ`umld`8~TOf@f#)1u!DC|+HF z^eKY-aw;sKr+pb?x1h!9M#j(sC!WIQ#>dTd=e^FFvl++xBhoxRq7WqL$eivc{p?)w zaVwG|ubE-=wXJEtbU)403u(i2W3oP8{R~>SH;lGIeuiH<&gXZIna@^-?oCkDj0v2EOhOiBz9E6+@4dr4C$TG)6-LN_b1M#+B~6g zc==!P3kuxRx`N@_oA5pPE9dTha^Ai7TUV z_r;ktE*m9x+Os!*8GqS6j$7<5pR(+C zz02b_^bArI6EU0LsGbSy2zAD+SBnY_tB*Pbli|JUOZ{F-k(%68Wz+a4wHSF5cB@7K zr-uPECx&TEO;5H?DcUU2y6hijv|3mT_uLir6CVXZyeXbRzUP2=79ao8-Q7*Y9U4n& z=8rl2Q+~XSf_47>wOcd|Z+g(F#Qe_5Pn4E(L#pnqV`>%?<;6b8d<8ht=Spqij@;q$ z#80nc+BeSS7rRM$JEpI6^7u|?lwXMQx$xZ5x(ExrKTlpP589@*1JZ<<^})75F^C5y&Ju@iDp(1 z(#If%NECzLzVQ<+l&aF=#WvB+KRrj=U3j0UdFI!c=_^>$ zn6&7UvEj{WOn3YMcRJQgULhBR(16P7$bSSCejMz)^gP_5 zW{~2s)PWk%>mT|OeS?9-@TduWWk^$u3O%zLdfWi~DLoiHBsmT<8W)(8-V*+Zi+xA; zqd_?-5ClKb?9Q*hFF(Ed)P6L`^r>X1SvGo0Nkf#dD;|F%gzNF@ud%_Pce9^X_e!|wC`k{86 zyI-@v&Qa1TJ!}bVhww{1jf0k)x)0jwK(|QVQ~_Ujb7PKP)B_4d)OYxxn=<23!v*Vm zCztnCGtqx{>%8iAnwDrDw-zu1d)}3p-Cu{!26(v$4t#QJ-?$>bxZOdw+%y}ZaeS;Y zxS`Cz*jfMv!PdK6xe+E)p90EOb{h$D9POUWF`cm)uLTAo+OFujw)EVK%;3-VHRgTcgOGIz+AF4Y4kBVydIJ!q_jP@*-b7ZMZMy3z9ckc zWpN;3y&l#_(G){fNb9$b|9Tz7lC{gXt>}1Z_2wb6cs#V!OiVpYR}Eh!NVBqZ zBx^sKG-#Y9n6#fQiCO+LR8;;)U)|*NyjoigM)34$g$E&JSpW#7*BS=K3|05WbQ+Cz zCZ9Emdp$H>_Z9i5&K(=cHkkNENJsEhgCT?<@<9-!YynPjkQjMt#lfISruM1h*WX{P z^RcQi?FLsm7u)A*&|SaR8b8)qk==vus_RJ??w^|WUcbT>3L$I_tI4Zwa(h4bWMhw7 z>A9IrLcZXJvrmq|hDCE?rA|%9cmay;_rx$G)thsWH^GrvAb2PrTQ>9)wU!~`7aw`eW`mA(3veF2Z zrq0q+mbsUI)qyYXG2sxck`S%8`t)^;2p!tc+_RIFRVh~TE^&iN!+NJ)@o5J!(ySnL z{fJVK_Dwd30Nskyy{SnfSE8b|91egk%jh8ca zk1eXAqQcG&u{UNo+}C>~ev8Lvrf>+Q@mXBlgZZ$tM2$z;_rT^#sk z&}k?M9VqI0N4pGT_Ijc4QR@ao1v96mxa-pq)12?G)k$vNga3K5KUdJ>(J}egYmFu< zZa6OIZXFASnH~Z~DN3u1Mz9xhocpoceBHKX)+qC?UWpc+Ir{OXvnAyqmfSpbAWtc{ zsOjKRh28jpBdA5l%CGNV+UvQGr}5eks|sARzOUKV?yz7FUu=mJ< zC7niwx^tQ2yJk}_wq=fBn@dd?M%CIH%tFscYiVSJ`BN1kt4mA((tKT=Xm@ zGoOnyHf1kXJTMOxm4h*5X+9Y6($8>31RFuuEUOb=$h)qc)}5Lcxij6&hzyY|ZTAgf zHM26!SzX|2xQNJHVY&au+m@q(vfXg^@@Q$V5)->Z4)ziY z|2<@U?!1QDu$7*pD{FC>SlafO6_aui1{tfkch^}_zd~40ik>XN9cHMlqiysjJSZBJ zQeDg8<*h9td%f;ykWye@8&se$o8E$oCqLa93TrwH?sZncbvK|>#4Zj+zWNZw-WA9m zC^1FPtxY;IQi{uKEDWld7E@BT^tu#qf;?E%n+1Hv5-xTWbaf9T*0mHHT;Q*#)pC^l|!s#wIla zhgy!&hwI~Z_jBqi*H!EIxzW%0yhS zRsyu+ib~C|>h*rq(LVHumWC-3^ojfQw9f!^)}?Mk@=f)+=KWc>tkh-)?$A#lZ5eG1 z*ez%0HWsYDbx=Tv`>mg5SUeAt8+U-9pvXsuqtzxD564^dQ5l#Edbz7l(jkOp?=}7? z+$$R-aWWYYs<`sE7>up8x&( z?$xh%AWS;c!~&D%TOqk1?`e0zWBwxE{t2#c(qr9g64D8H@+(X2fGVDr#InFKbD;Gng6oQYEKg2yX!>{DvJ2<(O*vcQ?=RU zi4?8;2hrzI0vRC;pf+X4Sfc-i_b<1ugZj?(Twfd8zhz=PI$SW)mX2x|k`GfghY5um zFbogZ9b953e@`W|E6Cowzz#?!yPtqe))89XObF~O4O}>GSaH4PNTT`s_TRPiRWtT? zHyH<2?M8+R7P^P%<+{g|#=3|3>#OcQ8?I=Po;yS6F&}RQqn*oeRqy49@OSvb0S|Mi z5i+EkpFC9#D9<8oCollg{4?`0%)Ll*}-#?~s{_K$Fd#qfX#<5rB0excwCTvo@$y*!Q z1M`qdB6<@vrT{X=_kMV*vu~R_CVAPwvI#B0&qv#`8SoUeInp2?qAzaHbxjnEBH>Lo zn!*$n`XOkU{+jltXc3ErY#%vvPqvKZVsb{CZGEbESu^kq(y~&Ee+}l5@T_Rz)$P_} zr$)Zrw-W9Pud5e4?Ogn1J1d5dT80vm5-bz?!5p!;$zi832_{t7w3{c@7mKi1blXaW zKNG7Gj6j;;KAXT18l5HA~cvhOe%6G!=D3md#?9Kf=~&DIlt>@ zuXN3-i1eidE0bLtacP0MH{EX84ygJbN5J(7Lg;kg8rErMz!-x|CGYb-N5sV(&#Rt4 znaE(U4)GOSI&`8NFInft_zi`8Yh$XM;oGR73<&&<`Bb3OngTkPKD37SNCWNBp!d15 z|4xUe>ZNX5t2;-+VsuPG-Oi}(J6{!p(F7gKB^PRrgn$e^ha-GV=_TbQWok_UZrQg` z5_XPJ=uLMGi)}9dVTU~NRFzh5?Rq#zD?w!v{gK3bGy2`KF>L9#u6h#D^hX1S%fEH* zcE@&pJDZxMHZM<{_U(~8;*!Jnd5@ZEHqD51*+Hz_T>JGT0o6Z80Ao(yJO`!Gu1;B9 zL+#F9xgo>QNbVu8eLb(#n4ha%>72wlpUo69ERj7(0)>5X_;hRK+lCY)2T>A2mE6+; zT3X+UOOlWaY6K0PW)8(bX{Ds7ZL;#-Tx<6+^oY~BEN>FdL#PmtSjcjUHjsu9O$%Oe zsq0jdpRjUloVtA8D7E`mSllI-(ua3e-ru{w66Wo=`pyGV^avbN7BMx}GIh9Q1qRVb zHkik3q5qEM0!ung$u;(yTcz{RgD2xnORM1*gHxAm03O*dvIyR{2Dl7ys$;a85JPyx z0pHX63}%w3++&1K$0-u^h5VWtxA!NAH|UFbPG@o(Obyumv=X5K!wY_Hrd%6anCyXh zi${7o%H%NvX-XFkZn(tBJLef4bjYw^=o0DWN_FGG3@5K7abfNmMY~ zHD;nW+yF&bL}!qb3(oQvmm91XfBxB7>T4XuB9m9KqZ1{_qdhnN$nB-tAY#z5UfkBo z>k;CM{uG)ImP|&hdFMmY=^T=tTsQve?Kf@8kJP0{Tx>U!F%F*ki+jth-vekh5^lXgRx0d7h^Kr=g1c0j0%` zZ9O~gG**AdXxGf`lY3{N1oq{O$tlWU{iuCAg?mU>o#~$W5^PhRHWeiM@@B8B{TfVU zMMEnssDyNL($<%L)dcoRjH%x|ajODR z3R)e}fZ1~!j~p94&~d??8lP6{_#0LqO?II~M{xttd68BdFk8`0NvenptRFeQt>g`u z#w`~(Y$qPxG_;Rrg(m6qVNx=~d!&u9TLBg({)H)F>9(KPR zi}wOJH?C0|!)4+!4g9^Pv`{pGjVGE&RhqzY?2GXYGq||2Ny)SizYfbU#I|+g+ecyT z^uw-yT^NRvXr&;+v;^7*%|v(jWnScpA_tz$Yrzm=z1NkZ7Jdd~JuY z(HrV~dy?}^R3IpaY-QSZD)Euu%~vIxuD9L@-FX&7X6b0}3x@IOqTb8(vypusUws|~ zi^uw>bX8+L@xzJj$dK7m|2_W#)v7`Z+p}K#KzeucG3Dk<3K`2JKPHH6Xdpo_nYpFA z0e${7U4t@ftR@4K7yD+6OwA!l;iHPu+@5+XuF_ty zN>+nH{j6%!HP$AsnZxydm|yy->x^y}`{;_U`=*ntrAA+$Po#3Rm7X#o$K_NvF^K z>Q54Dk(kqabeu>yM8lmAlIt%{{`G<>XHY==D{n_#9O;mBd4+%@q%ZHrcsyioo#aaL}ii(Zs?)Iw3 zjonK=R}i2={8&g5k$%GI2T+WThy_=S-5?$2)u8SEOxuj{dLS>DjIx^Qu@yCRur#*w z065EIWs_KW6>oR#0I#QsH|<}FOziX??&hq#ZsSjoRvm09B!xk20gz&M-5pNRG3w?d z-+zFLEy5i@uLXtXvlVtFZk;)AoI3~Z2kT9=3RggacYzU$d5b9A8bGXK&p6H+j1aBeD|601|0bz$dLZ_Ry%xOsNDXNuilL z+3{w2N1Lwj-jA$u7Uz9BH4>Gpoo40$(Qdz2+IX#O3fQkc>D0b&^Mp^BFGGmVuVVki z+`ouYR3qd^qti58xyL4lrEAY)_HSChR0}v+;=dCynXeX zKfO%OzN3@P{nOmOz-Vvgs%*R3-&RW~!K0k!{(YhKdCyl4#{TQ~$yxHWrXqcl4dTU} zJ3*-_&-t|5bBfNn_Oh$8!$n!$M4c|y@!YSv(^M)j;Iy;%&@0MW^E~4xV=8J`qb@}9 zV-(}HXUxERjc})lg9G(k_FVxM$*LC`BAbD87wxqr9-T!S8bk$JHbRJYV8vG$0ATW1Q;Els zj3oc}cs8Kafw?9DyHNWMRIj=F5{#hz@3nYL#R;vOQlF(Vneq!9pWM~>xT!pRw-g|; zzcQOW(a{&=Nd8*c`dka&%-BIU2D8}|azeTk2w{=3r?4TD$oNi%2Wl;Dz{~896+M$w z!z!+ry)e>92tR^NSHw(e!u4VR%b|CS$Hz9yHLPc{jC2~1tISU7HqVlK{$rw((mZ$# zApr?{LuviM2*5nC16&OTB*eUjEp(u*=Jh#bfmToHkubp=njba)_8Ba~sr5DlcrPq@ z)m=70HD~h+1eZ6~Eq2s0X{SRZy@;l&=|$Jn?E%`G178!}&KuD41_=zsnt5*8v7mZc5dWL)HaddqB{90w zo4c5h{lQ=5vdtT5!fB4B)=`c--V!(;i;y2<^ip3MQUxCvavN{^^ZGKz6lLA#4|<4? z04JTc3$NOf!%5>N@2MsB2YxN+KUv$zEJ{EuIYb3Ep*hv1;VI*zIOF~W79oWhgAwC{ zC$(%_Wcoeet+9ANYNQlnw5j9XwwaRNsINS*;TyK=Y*GH|8i`0fz0*d) zQYhy4pMZF)W?Bt#Oees{vV0p`Rx|w`N|sI+q@bUj?lz1iwzm`C@Y?HAgZS5P>Qr56t1Qk?blQtVlEd!gXO$KKjywCZ^KE zz}uw>w}O@)20?76z(iot`)S>RD^ARqgmKWLg^>cqJ~mdDy-;7=N@+PAXKQ)mp;xfKxgYQ#3E23#0d#aD-EKnC)G!&@W9FP@csj$m}DYKp1h(WE{-fNFt}8(^e5UO z93sxE8Y+y%Smg&g>xM|-Pxx!!w~&8Sjen#``C>`YX=$I_lZ3dPWE9KP!W(>FCPIc?xDGL4rg&iMJ& zT9ONQ!ttEqvDC#_3pWUT3*0 zSUbrx{e07}iIenYXEsm;6?Ox_PB}f{=hHt8XgrW$Fc}?gMGSv3F=r3UYc0#J=Qgl$ zS7sMAL15nL>nAXZN85rFhD$RRVY->#vu*2Yt|_QJn)K6FRx3frVi2CJ(WNLqs2kWQ zeXK6r=30BHkm+j}R0S~7@f_*dL%1GJ3QToKq4m-v)vyw6Bia76qhwXu*jum&CXX`< zMRdQWm~~^-!c^AB=YA4}hoznuio%+^8aoa64%pe{*w8I8qfogVv`w3Zs6?n(L$ima zAatB}bwy)RLBI>~aKa#@vtm$_&MkM{5j3fKG-?9ui2517;hW0q0`W1d4aVU+>Hao~ zEfi(Wc;DJzUB+2Lo7U;*K2iJ5N9=e?AoFo&;{&Dr95t!qHF-+{fzHc20MuxNqf+gf zEo?MghUiw|s+K?67A{OO5a64RzP_q3N( zV|f3<{LICYUhreAj91mp`SIHoWMT8nww6JGNPBRYzbttOr-FckYeI}Mk9Es%W|Tb1 zwfHE*y@U)Ldw32@vf zIzxo2N*cY8IE^&Rwe-2wS<2JcxSUdMUuqNGKwHA=Lqj(OZ#_NygDHZ&V&oC(d^I>- zNpJJ$#j_N}6VEI2{f9`2Nk3b^`nBavvS5V9vlD$ZW_T-_GLZ43uw;bv(1#x^MY7H5Ka~Ks{?8KMR6=wHP zHRARYy@@E)N+mtJq{+x$j-YQ@G371Z312h5;o-K*(*NwQs@PEeI*oh{q2>c-ksODK80@%RV+eP2~w zE_MXejIm*JqxVj8hi@!MPan!7OK?VmshGl&q*AfpMc1s&_O^$gI}f|=t<3U*<{hNw zv#~l8^G6N_oT(MdK?s(U>Ynk<{k|+>0XPSAtxi-_%HMjSA%qp=_EO4gr^rtFsEDHa zaZ|W+&SzK;hNm)ROrC`S^I~3ngizs&aVNr*zSR#n1N7LC-OI0fDQ42}#CfDL^jLAi zRZpOD)XOPTBR1p;nJ=2j?!rwN$q!xEO)oHlUki&e5-`ab-I`k7H$6Z5sf;T6^=Qre ztFT92o~BQUM=Z9zd_h33JV=o4%PGoGbzL-rqda=hOX@K1w|f12c_G(Y>U%$TZ}aij zPuvyMuBhAh?Pr6Dc3} zJLG6&Sa+bw^&MbX)%B%Dai@nFJN}%$AH6a)juo2jN{zX>YX3aYI6C+*{r9=i#6D)I z>!k3MK|AW80S?yzGeIO{Pgnu~3fZ+t$Xpd!kJf0u(F}OMV@jG(LGt31O3O!?{nfCE zT$_14+E@X?%iq5ggyR!q0MvD)SXGidY|9&(;L1W>(JYa)DMU(a7!1z!uxUS)LwHu7 zdH5iX-E*5gIpU zenc#A(c~<@w>I*rx2vU;kfPlVFTu=tWgcyXN*lA=;ptoxYuu}G`AiF?8$%HqWs1tB z7u9GHy-B^olET@z(A$xG{Crd`+ul{HZ~Y!}=N0gl_6xTJ)}JgF=`EQ4v`$I(%f(d{ z#Vs0Yh+tza$sAArR!}k1)DjY0?K1MIIpDM>?`VQU_$S269dG)5OSmh^@5MpNpbQ2Q zmDzk-KrmEoYr>ZvUt$hoE6A#BQAW`?XbZ>hxJ*r*dyzU*Sa|FCSoO!m8QcH*>7}N8 zE};qIvwq28p%5_f{pG;UD6q=y+b3Sk)xkRB(+7E{(QqlE`MG_s(ZPISH-zI)So(3V zsIcG>?NQakbG=;bDdHw?yRHgD>&X6sK|{0D##2x_%XTM!qeO*Wgl%=b0!LI(8AS-@ zhY8~`b`~H1?=1VTSt)EOmKn z9YpDN75o~!DWf@#RSJW+P$?#j>|a_koc4m?bGcRj<>U4|L-)f{JjBVa1up@zl#{0^ zX@tu0FQ3I)3j!{}hRy$NjCU`F(3s zyg;N=q+06B`I%v9r(np5bl`EIY6BNEKK0~GTxu}PJxKZL?LP%t397rAbrVzU2{|4* zj?wjzDVr6QcYJil&Azj5Al3DRk4yycyw?0-V;ojxm0`yuv0P=#$yi5Qa;tt|DC2lz zzhywUHqXLoqa83Jl#(CFINcuxX6>W0KJw*xUW>7mrN^se0>roA6LvmE4y7o1-@<8R zfs+6(5TG_8eNc6K&$X47@+BnZi29Z}@;^n6hjH7s1-E=*)oyzxP^lvmUP-faFuE^zWnWsQ(Lbg3M_=h3c5OstNp0IT zN^Rt4h^6IGlqzc^&t9%<4lW-5M%j&5UO5igSxMo~*rsHg^_wy}*7WBTGROd7clkk%E+fB+KtaD|%9}omTR+h1 zIzCO~CO0<_l!qBpYiQ0vV{xXIfUpkvtm>@O#ib?8v;AV{k^}J;0Gw)9i$TAo-q(&v zAs{FLs)rIb>^B8-V@E{GWATM=Vz~0xYwwn3f5f9AdQ-13CBFC(YR+DsnzOEEEnvUy z`C0WaH!S-=bqik=6Mf*#4>!62u~UwyC|`YRryG5*O3$n}C-cBv458-hyw1}s#k19G zU1(^iH$^FNO_|^gSFW_w;+!?vy?P~5XMJ^>@wWQU@92!f> zuTj<_C=hQU^@UR5+T$=&Qx|?xjwEC9wLL+zI18ByNlgL5F1jo7*_n+z)moPUuud}f z2IRcR>|h^cMnJf1{qPs0Fcv~+IL-i%$N8o@82*-9al89fEGjQPwftLG{eLi~rq4oF zI3PSh-RO1U;Pf}tsS)73UyrP}*FRQ3bw7{syNTEb{V((aplJsyCIq8qKzn7nV>JjcPhq+&R?&ruh`i%CaQ`?9u%jW zq(Y6Xn%qTUgOa3%cRTl#22Vyn z09U4Ow&YoCG@5&q{uhmVJ>P%{iLuNzx|l_(nJ3MUl}S%KCNR1d9asVl*bNnu;6gB( z?icW;HveMn4@je3W0Ua939}Mt8}iw7l7fw%q@A6gB*T8Cp35WmYGsv!Etxf5t0+^B z#Pw+A^`pD{Ce%`9MTKUPvE7OSO#b_uXoc8@-<{XK0sr9AE#MFmRNoBS1}x2BOftTc z2^c%?slUZ!jot?U#!6bUsX3g)0g*MOFJPjxzuFbZ1xW&<#QQ4H+A51jIw7v$0w*ro z^(G_%F$R>7_OrYM)+JWqyfp#!AZ|siJ9b*qaL}PPh^`3Uh@D}1u-|#xi)%*5mG=+5 z24-UnIO)(E1{V)DE+oemnprRn86xOWC;9Pn?C{4%zm|nC@!$LzimM{oDOG?zTC2;HV&tNmviapV8?81vAMOy7xhJG z;S+BF4T+8(seUSHlS_oif->su9(~wx61N?Tv-=u2W61)Ytjoi6*s1sxh$i&RmE>qG zS(@}8avkJo}PfG>^T`{#QP zE==deL1yG0(wO^flt`PrRe-u{GI#dutPCxJ;(E!UoFc}h_G>RJZZzp>(|(|Gn-Gc* zsc|ioPN;aRYwxvhtaP(oo)R!omT*V&Zu*g={~*WmkUHf?ZIM5 zCU3>y(>|-Dk~s+HO9%lEXTq)@o+|;k^t=AfT+me|L#b+jhBNiv8WYo}5qNy)9$*SKyRi1 zhDq%*e>Xq`vH>)rhC`0NbKw!)5j4p(=~a|AxquqlRM`HuB8&$KQ?4}w>MboJ&#@Em z){N7I`hb`nD|FL1P9IS-+$t@zkQ{cg9LI(DHO^cHoQ<92=~PBN{U>lD-80-V!2I}) zs6{#lo`sC7`QPQILN5bxDdq+Hhn)DP_ zxzsd+GnN?f_c9VeUezT7Zu(<5;!@Ly*Fs+3BjNB-PS2|-G8TYnDIJwtPTepeVRCgB zQ;R(Zal2R?Y!=0MssAPMyT9|kzq*08`w|`Uo%Q4GH-okqmrGx~U<9A_WWB3#Sg(?m zejq^_eE-tG+*R0iNJ|}Nuj^QB*W=(RbH44plO5>CHlS*~dpJ1V@(ntZvX&l9fwDNR zT=366mYcTBF6rx&XB@6*ZV@{w#4CJ;WC$j2gX5}eR23ExcfETjK$D&=>FjrGsFg^l zXs!o<3jebS<@MR}JPQMfxr-BP>G`Kqc)YWHD02jLWDUYrMZ`i{d<P|y z*xdD3AqJA(uqVQN#w4|+ogb+!7a(090gzhT4^LPR8OQ~5u*XlU`g38C2 zo#`#T7E;TpP`%jUi)6qF)AT1`fe=SV)P$r}%}7-1;0Z*Sp5Uskvq0)9_7hfKR?mCJ zutr2`n!mxIOF;4?y1h9Xxp4O7(qeL-)f9=PT;)l42l2r^<%YFcx3b9I*3 zwqrfJ2h=g$ePs0GLW3o&$M#*}i-HG-KvB2CCEeGfFo=xSf|C6s&+a8{Ve^mA@h1V@(<1hh%r}CaakX)l)VLj zUZgJ=xsK0r8?tlH_M)-EO4RG48~+J8`T;z+wscMIk*6!a@KeTgGfB+52~s}(r}`lA z2y@}B1E8=-k!vv)I|n8Ma;V#B7C{$o(@7O@D*-y*3Kxy1D@^Ve!m813l#-M|WI)U5 zf=M5djtQ(f@71}W4h&Z;ir=;`f=VjKu_Ha#{3WrJHB!j=d|sE63Y<0IBf zTZ#IU3$L7$7^~7L%7mqakrHX?DWgBvb>>8r30}bq&zeM>_(7#o8lSuyw0PsevyzNW zz_2y%DoOlyQ^vzHlX@eG+|eh1&fE|V+AN+;42`Y)8|jCS^s~y1IxnEa0nzj4A$~BN z+Q9T~Cn3!wmCeI;Y-V8Gbsz(>`-svFU>1-V*x==G26+$^NT75rpymnAX0zKxy}l$5 z)_nKIo=#C*ZbY<1&Xr$eeI#tXc>%quD_5MLf>~QmMQ?|lmjhI>ptmrRaX9Q?Vg(kH zp>h0;%^y-$55x(*e-lq_7h^g$78C3J%Zuxw$823dzg;00@{_oA9Smb!>h5|_Lz4y; z0OX|WUANB9=k`&c8{hq9bykmaI*1_$Musf^QwkY*t85~yV*?wpakb43mP2i*UHo*d zb2`uILjy4c8xmz#5v6$5i1w0A!m;`UQZGRWqRop}`6S5ejcSj+Ym(eX{YjtIiMOmL z@64R@jAXn9(E)l9!_ex2L@u{)SY1iE$8u<(@$@^I(FDmLhzMw~sPL;O+m4Owj5f{O z4*By&2Try5j($((Xhdo8U?R|u=Y!>lG6)b)m}@0LI}TH-j{)Lnp5AZUTL@MVsNs=1 zrH4&S(wlzT#}Hi^Abj)QEOLkfOB~T)@g%ySqJWLl=b4|Wm7gfs5iqUZLC;v}47Cyb z;Q%%iz-!jHvAD&#TsmYkqmYH9b^?$x<548%{GHiV`i+S0EaI!JP#}cJ1-lu+%La=j zVH;?$wJ@YVrgiZ7+e3TNOB_(lNBQskLdB8t2|qPH_zZSX@L~_3CUBNVyX!f|g358| zTl4}5-(yTXTJBPJoSGVf(*k8gP*gRvs$-(YPqsH@BEvLlh$k zMEQ@2Zcx<4NwqvOdZkDe{1lzMJ%P8bGWf<{&qfY;e}Od!0CDz;viU)ZNWs{=V2`kg z;H{q10hG)85J_+rAMhpU=0M4!mb_Z>2M##1#wI4n#(O}_T4C>1VP5yz<3UodijB~$ zkC0Y=(B6=30qr3mn>c}pEdtD})RH$LiFjt(O1wb$-)&BsYs_A>xCXg{-3?*E{%bld zKnDEp=Rk~-OOrwq0d&vxSxHH^B5Qye%C2;ZK2Kg8|5CkRzWZhh77|FAtSxf%A$s>1 z?V5$AiTCzNKW6zBNk8W9B*bqIfsGKLj5<)T6vnADKxN54Ml}x~CQkxw;KkWNtl9tP z99O|BXELk@iZs_RWm+fMmsa!n3)SZVnODUMhU){+Cx-(m7}$zw#Zy;d9(Jp*8YP`1 z90~ya@>(|td>qV{#`P2H6<3VmV5+l4W#K9_fl~sgjBU8>y1d2dhD*iqub;yn-j?{qEbkx@uUDzsd z^iF+7Yz=WNwIn@+2RO`foQ3qZ&5X&x6W#X>sSe?Q#HS)hZ zRX5hJW|qA~)by^1%%&6dw21C|@;#9Pu?P_s1P{7py{0Or%S6k$UNNwSmmdatocX3u z5mEw?-?xR7sV&rIXG}_U*2kaxATz|CR-_ysW^{($4k83~U>nps>5D9`ipMU6{ae@x zbGqMpu=Sn-bl?m&`gm|9;LhM-qdLBtfm;72GBGl&w(hNCwPO&L-CfNQYzyH#1ME^2 zW;9ermi)#W84yP^aEjKkb+B2H1v+yeh`%REsr_0%CZT>tdd9`~CJ_Gv1@Dl+I1>e* z-obCkxFkrbSt%6-Uf)j=t@86Zec1l~w{>*lw;`#nNs{JB#u(+w0^X+xyzHMW?lEpW z(+?=1ffDY}&svWP;dy+wuuT+sVdAD9bUX|G9N#K?N zbME*pjuzls|Mwc=^}YbRch>jE!E#-DGZ319Mgr|?3FGilfNXpL%E2L^dWm8rEPSSH zE+b6$#plP_$M{R3fmjb}$^U}f0f)hc(ippoT@nJh1p3ZV#rKSN;;a|HwiYAPv_mOL z|1VXr0RpFZmAQ-r{`wS*!BK!`D*KQ0O)~JMM-7G5RFYS<%X#hU#Q|h{C(wU;O_bkF zDS<2K5pV(}eNH<30d&C@4}LQbFDac|A8J7ki2g*dNd^SCR!2640cK|#YQGk zJD&8Pn9>4s@rJztl=xgjAn|re0%HmQUVRXaAU5E%5^>+Zm zfE6gF(t{T26*->k%&lR|CPw&$&^MqrIytuMWk4OVyL|=9R+BukwZKsyN3E~TfuLu^ z*HcV)#KVuIuW7&*P~wl+h5%|XyG4W5gNmIUt6Cmla_PDNTlNorRa=>0i9;x05|b(_ zFswKFnt%kXyS3hx9Pt;$cWby)u-SKb;=2;Si0A&SYYN#*PcKmoBY%WTU8Vn!NBFaV z|Gmb`Nd0_&lSYNTyVDg*GmonUtRMGOHd*h%x6%)k^Wp>6&r=Q#HHTGK1|~&ZEyawt zbE*@5c{D0jSMAWTM@}h3-aR6FAZ+?}{xa^F8B06S1IXg#$eaHN9?Vhmvg6L22fP`D z1m53v@mduvG`pkz+!Vt6@S%PX-JI{9#g4q<5ffcQL4ev#=F^Ai>nRt7ry^R}KUep| z!%2v)T)%T?NaFh<)Wqp!z|o&`YgmX=@cla<$Xv^vZPXMfe|C#0hmbsc`7-o9!H4j0 ztC$yYpWRMyf0=wQAI_BpcC2Lak2^NZCrof2Dk9D6CfzaSu%jdg^%j8-x79P>K$x@M z*J#sG-tDKdkmC6?|Fz{NEM;m3BYIR>wx_+rx>vA&17%R5n08Hm2CZg$l&QENedM1K zq51e>5BtprFST~>Cbi%0{~Ngyljc^Xbor~RsO6fG^b<{&cL!Ni`f^pbD`ZoOdvh7( zz2_JXEpDiW{pH+xx_a*}RpQ#CEO^AfGbfhVETD@TRJKo<^2?r3$4`}JepcqOEe%H9 z`Va$6tVeVX)jB2l7oYC4bN_L>b~?%VAw2QFYquXh%<8-@`*V14>$6!&q07iL_jZ}% zT&d7qm)=K%_S`|Mze)s@tA?Ipb?Y);9*U0J{xH+%PjNfN{r5BZ_CtMBnrGqR;TE^U zufkcM{I^3!uil&YK7N6yWx1B>O*3Odkyy?S=PZ}%xu@@oo&yi>f_EV_l|hTqS4TBU zKRSO1x3UK2d-yQr`NtL=?8&#Su>HE@z>xWTjpm4^7q?$zjJ^n$afH&1FzHxFg|oq) z1l_)KM+Lq6$N9u*RaY*SLi*Nyg!&;8X2d(*x<`4ufMUn&#eKe+nMK(80}kipR+ zd5)3L+jd$tRLOrQ$Uf4%2)F9~_t4=_AN_2yPvXjzUD~FrRy$+EK2LBQBAS@Xi`pOG zQ@#D7mOd(cj{$$PdxAGt)#^%m**y#0PJPWyW0u@UZZQ8%+-W}herAnY(q+vxZ5uU< z&b1Mu*gIkf?3y~ca|eFq-%pDu%((Yf7AW}dy4n6<`9@Kd>%$rbn^!-zps`tah~ZO0G2<>73XcnhgN4}Ya<^PJ_sl}^W=1kAKc+r%T5sb|vE z%(tv(vL{@3V(9$tIy9 zt|p$q$!~7%%f8{y|9RKqg|Wvrl?=x7aynqR{P~uVbEw23i7(PC@#Ra` zHpmO`?GnZRCS;o>{jJ2+PtBy4N-;j=HrOi6`JpB0&ZLCht`vzfAZ4hU+lNpcsj;}7%&KFr$}*l{`UCR5m%*&qz* zX7T^dcV%;JV8>80Iq(PpJkp~|YdN4o5|ZesVvFt_IHXhgWn{eO16(b-wjo!Z1? zjuYg+wS!^OKL1#YQ*syfE;eNX7c3FsmgHDq{s1DI4E5n7kFE5cb;~Q+YbU9Dd3jcJKsjfw6vkF2?Q(gL&Ek zZ0s}J8&n?$I1)OB5jgeN1kxic%$`((G2vDgc-#K&IXJX~5t@HSOy)a`=vkM+@5yH6ST&h)u}-m%Zk#eK5F>Q7-3i)6&VN@`xsI8v@WU(SqSl!P}Ia9BEKGCI!FIbndGsUU{8!=tRunQVp4l3^U z)Ey@kWjAfUdvuH2N2=E<+~i)qMB)RR=tlp>Yl0{`j}_vOV`(x57@yxSTC(U~>m&EN zCjpuTpUn4i{F@qAXArb&{fAzcNSsNog@Mf{)iJDZ9+lPlr+YS3?;iJlO4uu)($G$^ zg*w%5)=3tkmn*8quOSrpLOh531xPJrUJCl+U*+>nSuw=eweq1`!-67~hW5Zw)Z7_i zWM6w_#|kbY?o_#L)R!t}c-Va{J{;31s8PYWuj*e6`ont8Tffspk?p%_-i*H)Gr8~oi>7yM!?sr@ zBkf>v#(N+9_lh@q(tgTwech7vat>{>QM)Gm#j!%DTYH*=&z6~)mhJJw=WC=fT`Mdr zOSz>6J=jNkuhyur5+BITehz1^{vVdEf}yIe=^{u;gMf5*Np}cHBT9F7cc(N+cXxNo zr39oqE}hcdT;U3Qhv)r%0QYeA*|TP?HM3{82eAzJ<8-p#7i@)Tr8{>?+>MKATtRW* zW^3THxAS#Ei*>^l?_){{&-@0b$SG7OAW(71W=#Mc%E<|$?yNE8T|5R{G|vC};QbT$ zK)>VWc!CjIsdSN+RaxroZTKQnRVMMJqgFoH{e=}O;MM9{#do`qT(`J)k>~kxgrCXxn&Ob=ud7mLA^JN@76xLR|(T}-TI^Ihfkr*Z;Or2AY$lYSUL?_YWNa3 zpPz~#-2D6%Jj;1RJqdeFRFvLAz&>M?u|`hq%{ZGI76dYk2pNCY{o(*BqWuXo+HsQK zPu`h2k(oM<8A>C!Q|P~MkbaoF(^ zO66*F1Xgnwqbn5p^}01><7hN#S$i|9cns3k6u-Ii>eUl7t*pWkjm=a%U!-;wgeJ~| zN2k$Gt_reKlVOOS4u)s2zRjv>1vhT2eB2rI5NcgfuCotNxk_H)3NY%_ zV~yP$jXc(JE0udNJA(`;6B`Ki7UitUYE->5kd$nX1&G_b#BV6%b7k0dS<~8yd#ha% zTLgn2v>rChW4rCMc8v7J&fidA$xum?5OE}|kr#9e;*jhu#oOl^)bG=5)t@Al?X2T) ziKHA!YJEC(!|Irdny55+!t%fpV75}!@gSM6ZY}`5aahp_hB~c)(y1hUd3@E^FFAvbwO4IzOjAnit*QRGV(NcQILVNv zKt2c|zz!*L{e`-2%@ScW_oPBYq#}aYB$oFh`&*M()7g-?WHQQs@05?q#AG-@$|!E; zeS~|j52Wr-t*eXW7fO`ApqJHikCL&?w1l0aZ-01AH0CG%S_WX6OHChQf=fve3y^t3 zGEHj3-ym~J-DIRJnH#XMC7;E+r4AOe9(;qqK3#u#(QqDukkc`_VPQ>#ynZosk#&8e z+7Vz0L!m)$!2JKh+L%m+>fdMW_AtLha%EVnhCfPvuzl(8g8T;P`YExokptrQ$&P1# zuez5AE^ASyLr|$JoUx%DG54L`d#l+Cn5##byDSl z+8(QJ(vi05v(;tDu{ha`zgZ6}KGw|IYwrH^>5kmD&z>>Ut4mZ^_m9i!A{D^+%x&{+ zX1mE=TK5B)In`-XhVHC~diG9IMbZ6*!G@0P!o(X&mFTB==y_^m)s-<{a4|Dk##9Yu zvJ1q9-1HP&my8UG`p&&PI<#}SF^LsdI%91v9r+j4E9TRpv{K%Ei6zU?rWa3dKe;GHjL2Uh@HZT#GUP{ETSO-n~p44;~GuHMe!FRk5jfhd25{jK{yLZfU&pYYDl zN-8cWc7Ew6$x|^=u#JoOW|%H79^oQFM~?HDhe21KYaa&_>aYhtsTbQ+M5fM!KuR4c#%CWUTmvm}#@* zqPIBt#+f`dudfeDh#X~nPzHC${?Jq9B>#Ukg8RN~vOvV`OIoCi3~UlkB{3ty@!w`b zh*3|U=HYfOd|9uEnwqSJYISNr!7h_IOnshMnn@G;VP%Xy{@Kb_fG3_0{{A~SSKpPF zol%Pxo11kAWuacrOuY1DyTdS$L|Y(KX%vQ(@3-8|I~C8cdiAlAZ$q(JRMU<7kh(WD zyF+0*M|JB`l?#@QW>2g|K!Hs?sw6Q|3SgNh|?nAIzhe-Re3Qvp`#a7eI&1^zY?12D_qY>Vg z1vlG3D8?^xq7whQADfdMjg5RB%=rCin+9TYzuXqWiVrB$ZRhLaV_I<;3{HaXId4PV zpV)lttH^<*HUA$`igX{S<({ZPWfO@RVn)2D-AX!{6w7-@>QXY=T!@t`#0=IhfXA+W z2^ei)-!tSU+BkiZ0X;q4SYJcQjv>zEMQ?g;svGTEfY~b1 zPU3=X907WtO>Cpp90h>z@_!j%FYzGtN61y>G%!07w{e(g!RvDVG>P` zzlGMPnsK36;N3*}b_ML58U+7o@0d-6WykViVbA<*X$k71eT8X{|m2WLK_p`K2Lk=Jm zVd$sukkW@5Xb9K!NjoWcINI(@Qv?Dkuh}D`g7joL{4!#;Gtw;e+c1nG{EL9|U_B~V`Oc5INZ8c zZHY}Hn_d5-{^FU4_lGs&*!KP*`i4&GhIW)~9nGIvAwFg51SbrGd!c^kg?VER`fbLx^Jda_s`hYqxV7T9sXd?~VBthR=5tq@o zn2{3|l}u7{4lU#IS?imf~(mwR6wasGeB0|Bf6Co2xOE58)093!f@{_QZgB51@WacejrSH=P zB3UKcv!o=K@P9uGsCik)o=Lzl(12tm7;VwG!&jU4m~t(!zmuYXc7Z{%j&-fvr4hkg z;h`XzOz;XDm-V&`>K8@JaaZ+h@)lg8t7kT*ZGOP0nxQVS9$!9JW~w3IO4FiKmSt)t z?8*ou9vC0d)OV+LfEn`A9JfPgLa?T+V-GAD@_!)oRh+xQ*E*|A{;X=4u3YF&;YfWs zy`Jq8d=NAP8J1q}U+{HV$%bmi?Gj+K17lXPhLG_S0S}gfN6)B#HR+4Yu~Ne|#^Sb)KT+l)WvKJY|RVtoNc{GB8{R`*)fAgjd!+SuDjJSUFaB!(n7iKt%CN)VtL`B+%!~_h4bQ;wFf%03`Hhtwo3`fU~ zQ4ikRFU5Wm%@s@ZFSYw-PRArpL=9crfooTy@estGiB-ELqG~49$aTe)3(tT7WTJ_u z6`#(n_LA@GdIoVn`!dM1)jQ&)0ckaIAHR$uBeZgugbOj zs9F1(2u$jzOERf(UJWofS3->nhYCkT?8m&)I&6@JLt9O32Zmam{p0z;0BS_744scW z?---}ziteVVWzfbh$BGi3b=TPe_y!^EL6svHwb@p{4pt3mrdr72AG#t!u!TzZ(whO zdTRy`6)MT`qC$%GP)H8>0#^L=?6~3_H-aN9Km8Yb?`?YIZq?Pc>D4{*4Z?0rZyuag zQix@i$VuiA#{L#RH=lTGXVDwCmM>`5@|bD-9!Hm?rJ5CGryOdjchM)xKNuUwGDIdd z7nl~i3T@0`$O|TaB>zYsKq|msXUi%hnauOLUmb}BqPfy52do@_uLsPy2m%q{(NpfH z#*Cb|U;_7~1~5Qge=577-f`)!262CVpO02Os0fE-=pCXTmzVuy$|=%<<@)8zXg>ID^>RnQF_m25jS;_hH@11^(X1eeZi)+ijTX{ zze_FI4%FdK$b69BB^s9-zp!5YRa#mJE5U`TJ*7(4D_jO1vmP+CVFf>dt&o!+iL}DI z2jCK8i$Q0D}7e-;5e*uMYl9k{WG)@6-X zi2Mn4@Vt;s6KzAxRV*d+s<16nC6wDamsW~$Wy2L8UbZ(VGLOdIQ~4_v?)jEs+>=_r zjs7(2VLce~T0!XLnji&=HLvDoIeESh#0K!ja#|>k8u}%M8XcvY!bNa(POElhhr)hB z8%$4YHk4+)nVH-BSW*IJV^i3+;YiL6s@BSQj_KSZ;vS86v#l5SaxI7sfoOd-@>#r? z6u7O=Lf<3T9{Y0vu8&ZQXgaHHK+zRCEuV{wffOL1%wDm}S|u{Hr%Mn03;n zh|6|1&}d?5N8db28-omMk2$xDbZSN=ZcL@$`vZ89#D~{chv-zN0e0<@5TtYyKFBpmU<#(niBf=;&#-Ai3DmS@P{82vWd1M{cwxU~y za1I^>mJmy1r4zEdw3L#a!!V71R1Anjofeo-8?db&-Xb&mJ1|I~x!!99Obb*4Ou4vn zLz`$QDS^#0>O+rjGv5cFy1L|wcQ@jZ!(-^cr6J$s)jprWnAkm7hbHCl_k85D(z$PX7IA9!I3%l95&Mm!EO-sy8#DO*!;eB^9G*;* z{;RN%Uf1{LBCrX_-1&pprMge5WY(x(T7p0;hd(;Vl2ikQNvzztul9Wx-v2EVF?jB2OPc;{nsDVbv&fx&s)Od?s`!s$Y)|0bi|~u#4VqqZT#C$lJH)pKJw3as`c4Lu{8D!jqVS^Y`|A>@!p5K6lq{)RHw&IZK$VX5tgr~ z+c$i`VGN`O;UA`n-ae~=nm7A_S{WG=31%ufpU249q%ebEI-R)52u679h|DyLQ6zI8 z0XEi*?SD>vFLov1Cvfvg;k2th(VL^F#l9L$RlW2Gs}+Rk=;6B88(TB*YW9qCt7>#^ z$+wDNQ_SrhUdRR(fIvxBD_bH4nv~`X8T+_G^`}u05zaV3MC|>La)}|PU!{S{w~a%& z|K~-P@2S~!`#ATm=MHk}5{Fmn%UEZJzu^Yuu(51|wp9%Y7}5R`(G;)4J3gYj(x&sX0#iNj&rYjkztU z5K!eY+^1p>gm3-|K0b=?LC?!rw2`tY|ExD!f-)HZ#b&<@*i>>^19`AzdQ|BK^hG=|C*XBrGu8-g;17 zV=MCzWbUdL+JdL=ekIN+t)04E5+@0-77gT{pS)`!Tt6EwtPrs*<9>lRPJM$jr; z@0E1Qlw5FwT#CjQA&n1neS?c8X)PZYSg8uaMG*^#m&uj>zgiWI5VUiYIHB!Wp6qS1 z*W5)^A98&C*ACqDrioN@F)ntk!A!Las|Ua&{b$9AH#7K0Eto3Q0xZLPckX8&vgZAf zeeGB!4Eqv`o=URR)EJY~W879DV(=kA0RuZ7b@G@Si^tI~&(Sv7?q03(heILh8K~7; zK#ljZLpy%V{B!;Ky_YEQmSpdC|b_& zl8+psZqj;eOXG5@vR;xV1P<=H1y5vJ%t7e-BRRQYK@^zLrAxapR4Y*3A>5PHj*x9p z5bzrHxer!%H0#W9jJF?tcK;>pWbKn~%^!pEtTK9a+jiJCa?=Q(&xn7!_#II>8u~HH z#heU-valow;6xmhD`p+44s!_UOnW|Ng2j`XxwoB%WouOBrp53Wu7A(d_kMlITPwGl)SCWp{?9t z2tXp{w!WH$Zj$g7>eZ2Qqcr!fl*7llSvx3FY7AGU>iThee*&nOh1&w$*yUx@F4tl?hqIW#i;V|qtoD<3kd{l*353aelk({}#7v#?z z-3Q|(K+h7r71&EFki_;DVIlqVk_L#zet9P7dfj>4jhoI#!nUnOy?|oowa(doN29uC^cf+=l1EE4m>4CIsTaM33KnYD~IS#Nhv1^ zWI#C-*Tq5aXKRV&=Da>Qgx_Vli+jl(Y5?;ETIl1nf^T-tj2CtGkcS>CpfkVDzurY( zL!lRJe?J_BJTVFq+a$pv-3wBOVT44N$?<$45;0GdkAc6^5BS=kp(ZN7mIZr(>PwS{ zmN(It0q_*#*B6Cfu0ShRaXbG4pXX>I`~IFageGy}#`4a+(##;H^!R6x@aVKLW*!PB z%(ps?(?W9weUccny8)+s zGMfnt%j}i1O`yOcf^0-OoxAf#)_KWE;WU+9;CBG z;YNjk%^#LN@c~1`h|o(=8NX?2gDtCb9|iA~4Am=`K0$ zZ}tROm*tn&`ZORzc_KEbTCD`s!zn3ndA@Y4?%vGYR2Cl_|03@mm@6>XHtr}c>Lt1V zmS2!Zm)O21lO9yTE->)7yb?Dx4WKj%Ze{@$wrT$qP$VM5TDC5M)O0bqsLIka-A6L% zLn~Nqvs=?0HwQtOMZMVRVSTC4jQRudkrb?di97dD(=w#|Ux}WJiAJExw!Zf36ZhAI z5oKG2V@;B2gcJ{7VP~+526qe*I_P)XFcf3WsLpz$ZES;iUpnRq0BuFUW&VSqQ0(@Q z_Rh3q)ikH(+Zlhaxu+{7qH5MVYl^oeVPKcLg<_kq4Z5G|cDY~fAauk;sv54U5prNG zp#>hOwHCWJRZh?v(eE9Q;j-GFDdb0xVbVih_!l`PL;7e789Z$Am8sC8Y{e{py!*swNxoDY8kbb7&QcztcKOT3czM=Vf2;sL(?YII&f?|Z z#t(%c2s6yg+>;EHZlQ-!oF69=ftPN6c=zC!L8b@OX_khGa0wU zTrmkC>$s(ZCd zn4uXMT=+sYeg>0qo9PYx!azHT-77W3Mp#DMw+74914e+V0Pe|OJ)^p2n{8l7iHWtA zB5V78S5?kj1T$|yTbyxAi9TT$xN`o?SFm^o#AUs>mwyxK6^`Lbb1{#wvy{Fm%FdY8 z;s|*aO}bXKjHom~RkqAm$XCj{*)e4z$gkmjh2KZEQD*BnIrd9Umvp!w|-lPEB}Z zKx}!uQa9}CO(nG&WLioL#P*(!7ymErAL2qAThn_ZpSb*sYGfzY440R5Ek4y_AP`Ne zgko@E3GIVQdDIbc?s+7AinqKAB<-8o$q8?^?|`m~_U;zy^iNi;%obttSTv@h`^GpFFzT1mH(=6SQG z-gLu{(^rpuB7J+MeuNwgYv8pLuSDFSP~@``u88k;pf88B6dJX(_&Ia-`aeC#wyI@x z+aIywWv-~tY~J=2Pvo2pC(PD^RPGEK)ej*UA?XLrFz;6zg!RS;q_}auXYpcxy&&t- zB!!3^yj#TK6in}8m|Hdrt)M-6LWS33gu!Nc@4sPMc47K6%Tl|63 z^n>bCTjj5CSc1d;V8Bci%X_?l!P-Lr5<{X}DuUNQJDt^;$X39Lrg$);{I<}#&<{Vx zo>tPRj;RWd;ety1-8RTZ#{CH(PShrldzo={v)aQjP}A$%5OR7s(VDQ3l7AW*x*Po~ ztyB*)Gjv&w4vN`BQk>B_4RoOG@wt31ocJ|8``xjlf1}!e!+j;`rGsm3@pGC`>Gx3= zyY6uCfj684GrVFl4e)W`?H!Oud+d|AQ_W=KCJyGFbVEKN_QA>>WRlt44_+YY|17{V zECla+wSB3XuhDPHo{F=Vce2 z6~Fb$1V$_tbOg*o*f2L}2Z@bZ`}*(N)x6m36t=J_i=**bjP;oS)rTMHF&Kz1GmvQX zqsTX=HD>Ma$bO1MF2X+vp8q8qMhqVMUH9b0TCafIB}=-vEreqn7b%)@SkqYh^V3;) zMnnj8;xrdFoOqEtr`4w#Ptt=`!CuybThG4_E4DVu!rqvkBmz~L?PK#j2}_GL^J$}` zLjt(&m{PSrHdE)$c@VG)KLbXgYJPnuQr>wT$D-22JIT+y=w($Vo~*wbqXAlK%*-QG zvBBf^;w@hU!kf8n@sa1L5GMP(OBP(9d8iw^oa~^dF`s$e&co^3Xj*ivpNn$)SzzYG z)i`Ch_WtN&wuMiq<(1J^j}8h9pzW;h;a)aeKMzE^`${zEuh-Z8u4t2Q-za!q&vR)T zb91mz<`$%sBYR!95cC76TwD1Yu~S3h>93e-we<%k484g(^0})3y2toTeF>I8`z}H# zLSw^%R!PKf9)c~Q)w}}*+6tRJ1@_kzFwCsmR@KY)x^{zg*=7`$RVtfCtnKpS#4(Ye z>2_ID%sR}snMdfTQFNzj0d4QIzzXlYUo>55aXCs=szXUnC$uZ7R7#4kbjL9%L-ONc zu}T1s^4lA2`^x0B?2hJ7K<6E@Sev!&u+SN(*8E*+p}ND+Jgv2g!Y{E8{iUkOgLbW~ zanQ`+-C{f*aqExYGYar7*7_0ivwU+ZjC(IA3_b>aWke!FBB@IjrEs&Vh7FhVYx}oe zsmk~GuUrc)M?$WJ{F@Oy`1wh#JUUFp;f8ztqe_csUjp zhh=JP)NUJ6e-CdVd$txgu76)n*AcUIHM}5K7CskMEXR%D=o)ibP3IxB`UXXA8m=2` z^7wdhSpj{X5$@dmw0czuwIx#at0U(ouke5y9 z@iR+TMat(JGrMidj6Bix+eTzbdCimV__CF@v4z@T*+oQT8CBp&4R%I`4vRyLrs(#| zNh2kRsZv-jngB{;*}+d_V(lZwc&aW71>P&goSCCPXDuEG@p7&vZLChdDi15j&`RU& zp#2Hw{IbcGsTiKa`7F{rR^*QAT}lufI6=D|PHL9)Po2?~@e z6FQ5cc@ENxSWQQ|&`%0@Wr&%3?UP;RIMqERA3(d}Re?E?vr_*w4esEv6VTTjDu1e~ z<4*Es^}@|)NwN3|+O5qFe?1DjiaFDn@W-rc*3O!=KYS2_8zkX&;K^ASn%h}?=cQe! z!?tkv@J8$}(0xx`a8f&D5V}Ys$tQ=0f@M^-h(b$#+&669khGvyGo-WGe*xjj5J6RxrzpF5-Cj z#!7yb2-S+NddChg z2kl>CcoU!DJF6Wz$0#Lc;d$aoPgSi5%2+5I;=qOgr!I=iE0$9l8y#~iyz<;Oz#Rn% z6ixpqzydiPGt&i4M0;8T$|-7$Ez7v(Fzg;{vlx0PB7}QiOXDhVTcS8oXhV8canH1< zsk>2J%0|Qfl++1s(%U(&aIUdQL#Hw~gCB3qQMs~v=35L15p)zCXEx>au(fs?WDESC z%<1Ms=7_m4g_W3@e*U`ie-v;FeyYtiF-QIYbMg9xX6^gyLgKti4+b8-JQD7;ov{ra z4WG_3rEA~GBR&%fnC~qN3(+|q65d^Hrm>ej5}6rNKWcCq919rA`FHmcYwfcFqc$b$%{0zu z?9Yq8JMr;=)eocn>C5Rw1*aln(a5F^Qt>dq$a=kh@x>2htw$*8FJK&j%%_!2W4$Zm z9u2I3wVyM(33;g39L@?cFDIj{S8L%r4fiaw>}xnlJ2ThaJr`?sv7ZBYmXEY%h39R& zlMeNBPUJMgx&F$UwrFkC8d7nOk5q9V5C^!nszJ2dQyv#KgP*>nPiLjhfnl-idvG41 zgbvZy7NbORslzBFJ|!+cc{jr0sDZI;VijJqmEs!@8Wuxf+v zoE25~qE$PZjfqBKO;-DS1Lw|lFD*Y{Z@bF43Y@F$qD&X*NktHu_D~k#-MRlsDqpN{ zGmz>@25(%$RWv>R^Z3C+2yMB?VUyqryQ1M&tq&*O{sh-2YGIc32fax9y(;#Veri?F zyh=xx=)xm*iPsy9*PSxmn;RB)r8lW|Vpt}$(GAv>Rrq`&pE{aCGd8hr&sJj45&k&t zeao_rxR=jaZbf=p@0eVGYyp#OscgnT06QlRr_w0Dw{jh+2yJG1V9N@)0G%?v2W{&z zSst;ZUeD3yN_S1~<$`+kSw^Mdi}8R3-*tuC^{K4Af_iv^ze4>^4@Hb0%8ivI z(pY^yYOLrT8d~Z=D3;HC$y}RkrX2G^sZcljIti{sLL!cEozRpc8zm8Dc!fKZSy}Y| zK>EUY2!u{-a$Uy~@D8RD2YcPEEP?R=y}-x;>S7I2H=LWhlB%b3m+3)WHrKPXi5wpV zw^UW-1TE$^!65l6-*)~bpHW-$n7i&+%Q@C@CZW!5Ne{ab#`db01Wz&qW3j4My?9== zg~w&j+8&RQdqI!xPNYoBW98`wuephnI5l<@a@^O4711!@A55j%jH-`jXJ;bkgmL={ zEj@Ogp7YZx!ksw@j2_O$o|kBaHgW~TGTdpUYVEf5H_rOK4}biURVj!DXE&P>5)6~m z0ID>72w^l|Q8F?#{p!rwr$cF+#VVTt)@N}OG5@3-gWl{`r}ky#w^7LRIZadMX;giW z`jq_2n5o+gtXHF-&ilA`GAsaGM!vUrKiv48f4|?({(OFsvG2#s6KRi?->3Wg?D&O( z$#R~9D10;`{C&j~nlFc$DLN$e2?j+tt+9|iPEHZ+`zo=SBSO5=QAc_`^g@Bi(UCI-tOXVPoIzJ~Xhb=XKVOqq1u1j6e8-*a zk9Ia3K#1be^wdq+x788d`Vi5Hu`Je}i>1%uuH?W0?|ABW9M`61GeTNA&BG2EdQV#c z-7a-U?}XA}gN5yEOY2kwQ`m;{81VNOz98w!@g~^NRPFfPIsd$9ZeQ8p{S)1fB^`$_ zRI?twdnE@7Go zU->)vO8_aL!KFuN=~_2C_9Lh{sl(o|yVA9Nd?LpjgcesOpP(HMGPQtUc}*hg6aGR_ zKD93DE)~0NIXUw+fs@cHY^(K5@T&XKBW{=Vd}aa|yngYw9P9z?Ot^^`~g54^~d3Y@);b z!zfQV@}Y9>V%4ut#H05`jYZ9+Rv^w`lMUw!Q)^7E%1Xv3D@DTJf)F zofVew)J3O=E2ekN>z`4GAK>%H{zl;Ls)cTxUQ{@Q4-7zyHlY$~C#szGOx487a zmblbsR|P82k?v&`h&MA!I#rvh{l{RWfWhzK-TI^LVfM@+|N5&j2BBXS+$hdA6LV4- zHbo&{J24QArt=K)KUOJ<-1(LEjCm&*`YdjjibL=%vj%i`?=;|cF)WpxH78K+aX4R_Jvy+;n-0kjip|)J!T6#VE zNh09d9ICd_wcGDsE+Q^czG4}F_y(%}CfISJ7_DD^V3C*$Npa$fg!&v}$9SmeTY>1~>Iylf1c4b|RW9AB z#pv3Rl92I3u#I2bfDgaAta(9ai*Xk}ZR#9NTE?WI$f{CG`Bl@Kha>*$f=r^lpnXMi z2Pu#D;=?I4_*szp9<)pSLv}07nN_%nEXDrc_uH2i2~&AAGdGRhWlVDhqDfh4)QS>s zR)HnV*8S$)P|c)mi?B`ictRu0qFC89nuBp28FTNtFVR2L9t8Y5WRID3OnP>iD33(H zZ_%K;8IyX~uB+}%?miKhSZWad;9d;1O~YCwXh)P?bcJDZD$U6|{1FwB)g5ncNLg2`pAtR;A(n+7^y-FtV(KFr8r?R>z1S>3(VMZ9bp4?ae4G!1<8W!+UzAnU< zTIcUHhTgiXuhF?`(~K@}Y-*g2KtV|eR0?5yJhod(FHxfHbZG`MEkd_tg&?gZN04=-Ng9^lf^{LsQOH(oYGzn&VQM(x;hU z!UDiuUz2G+dnUx9rmI4|$KqX^K3$;=$kU?!o+=|#)vi=cBk!7SQ6hDauZ;mcYPV2% zI7xL^fCKyh%j68yfd)v}u#Yn-rrzv+(BpxDehycxWl*7oN%&&%9+MIVB_?*UK{bhFd6EOzc#` zEIF6D8d8P)Q~-#~)ZrpBJ~N`0Ny~VHYD9d>L15<%IUn#8IDnXCHvT}7sOFnzpEnW7 zzi?PiR@De?X-r8SoL|&Q(Zj0;r5potW{yN~BLC(`-N>JB#^W>3P38=SlyBoR_`z2q zZ#9cc^4-W1(-11X_1pbM!FaKZ0?lkm=UyX?c!`Rff`=B zmz$(PG`nb14$Sb76@aC~JY%hEvU_X-BiM1eRF40`jNm>SD!^y`4v*PY&ORqmb|neS zlkWt=0&5yW_UzD4eh=ZMfDl=as-{hn;gjI~O0!kkLL-J7PWd_a(z2f_kJ~w|CpG<< zPP~HrQ#>J$$7w=LO>eY~C7)NJT@^zQ%71z76XWo^M->R6;j`&%Jpi>##GcxFOIKD?@*uaUU1*WH!9V%jTp5`N2B?wqcMHnOI zqA@q(_Pb*Ka-1ns0s0a!{-iIzM52yS&*)J{QeM_PsC^(9fovV6UXFKCknC^JW8#mp zoUs#MH1jZtj&_@)t=w&qxmBufX-U1JPg>`P0+eIX`#>^@|8Fn0(cHyhsx!}f{8xsmQQ-|mjzvdpfH~a1?eZlEaEdk6Go3C4$_>n49zVpHfd3CO>jdH9R^=&k|JI=i4?(z$tEi zZ=JuK_PqVZiu5?1htAOQu5!QEozAy8lc^w5zX7FSCZoDc(48;HHS9hAg>+4FN=m8~ z!Vm41>VV&Lb48uR`!X*XnONEcG$1 zLk)de4i9_s(E#CpL=V$41~Mkc>MUYe_)?`3pKubA>3g#zkc7zu@&~RUxZATCS8fz* zV%3xAniZa*shK+z4%2wj(8nHu~4kCOxJRi|N|DsT}; zOh7>5wviNUe(9ySEH}3;LdZ3J40Kv!bbVldFCH-s15EpDwmn~CvXjs=5rmUAdy#$o%&2|V_b z)`eSN|Nf+~GX6II+4KGc2UD5UJ7f9oldxHhO zj%?lc+TVPtIC(i*e#84n`XF~9d?kYVTUIY1csY)}+b}fskVFSKF5LfI_F%=&JB{6P z07l`Q@;K*~&jDN`^dp-)PaghlFP+7Lay{Ldtp;+3u+5v}>EU`;REQ%5B2pl*2=$GY z{+fR5;w2@tZk$E_`F6)kBq>AlF~0$-`|uP$@0>p6e$F#B5atY{Pkbn7C3h8zK~5-w zexJ+H^u~bS%|T|*z014eB(S2gBxS{QS%qA?=EU+vYkApaoSE(i7gDkX9)F!zlvZCQ z?~@SHg0H$o92p?Y>Gdnq5)rt3?L6wFK%JE%-DO+Tg#E)<~NiF4hwgl2Cp zZKWYtT8W~oTqYzJ#dV*~s{@wC!+wtjb*o&T>|5*wgBN>hBL{^;(|F6 zdB1-7;Cmp#zv3a4iLhE?^K)u`5JPQB#sD=I`=Ifw{I5={IK#`(P)JI%>;0kc5%&~~^cg-C(UT2HE_-KEXycCYpKC&B03 z%}5X}ljD&b%%xnK^Z7|d(*3M`#kjv;0eTH-39qmLjSkz7nU9b_OPtC6r?NfGmv(wG ztaxt#xZD6hxqeWxuKRyLt!awvQO#Lv6bC5`x4(B!@w=G8KzW~h;^+Y552STeK+oH4;R ziP9eFRl_vYv4~q#h#TlDBs!F7O(QKPFCNXHdl3)bwdL>s}OHi7>kvlRq|eLF;X8 z*Rk(RV3Ywb76wLg-~y=F076$wpKI}Avks6xl?v;djU%UI{08nTO!86(2TEzU@Hekc z$x#qj?uL?u+5#?XYMDUmz^1Vr4dEdaT|-ofjz%daU@605c9&fkT@F1;+SDmhSy~)7|0Oe<;O_9j<-0QeNr_ zYnt7I%>A<*UE1nG#AzwaNok<_tg!HHIhSY4e1)VMF{0!S(>ip((J4rHZ26* z!=FC1fB8E-G&2|p>Rl&$LOmoo;@#dELW`5%lsW7YhxzyB&D+a-8g!c-zWE5`>hQy`9{SF(>Cl-5`P zRWjDWSeIOR+UQB9tZBZlIt0apQBXEHm^m3`OK3|qAOtVRD=BuIwa|Xoo~Yz%`gl4t z8x}>h+BR4`LjgFAn2mON;iih)us6LGU>zV!&75z0vv!pj2kYv38mUf}fZj7D6QBnG z!hpS(D%t)JMqC87I2*<&$$-#iRTHslt>9O};V4l!c|0s>O zHEJ4?9(#u%936;j}oKcUMoC#7u@g-4@?G}D;o z-NK#-dVs;KFd|^r8}G<@696P!;&VY0?=VY=KCkw<6528$^QoGgaW~OXh6DG7MPo)c zD-D;;L&Nc0oL^*si}LXh@c`MNOD0W5N;?ck9FH&f@t-GIss)G#m^DU@h57@1WI0Gf zTueWpcHT5)rvj@wsriW~~)3*st0+o3VO&%RC}C_7UH|aSj&4$kp9jCTzmX z8!);72ULNZiKV3KrI>;V(*Q_GumU)Ra}ZJcC3>J{Bdf0+OMEKG02Dzvpc3Q~Zo z{-LOe6bMDXvzHt~OAa&ds-{tDK^CT1>4QA~KsYg=$ffFyqaF_{8v_ITJ8&U(Q5&Ld z>}+>Msgfj;0C=u2Vx7RMe*pEEB{5uiem)ui6qI)7|F!qs|7?D5+)*u6MXN*AY-`ls zTSTpDDQ(r>RjX!+JyKP)My;Z1Q`CyRgDwq%*eOCvqn zJNJE^>s;e~z0Y-6@N$gX&c6VK1byQJI^sQdH^O@=jlgs!u8XBu3M>4gc-zRxG+PXk zEnav-@6N`Y0f7WA129TNdIt7S)A$+_87Q}w#04V;`pZ(%BY+-kAW%&#=!{w6VsPX1 z1`7wb%q>2NJA!bej7q7_{$6%cZt`&pH$4dS$qHB`{0`%F%)1l4VFTzsrbV|esuhZ! zNEryMO?5n%s~HarOT9vKwx-g##Wt6Kb-Q`Z#=7Zg?A+KrYrV6Ey~1e|1>!O)v>=cj zEzQ|?wATB(F4NbIasz_?sRGmW5sG4BY%JRRag;ftI(ExBbigE!0|e5y0cOdd0afk) zxY}Ps*TX;Rg-X|lruLF*5gSoIDwEFy18771Q_`NYS`12dmI&7a~N#?5u$fN zX1h`i=IT^nW!3xi|4LDGXZiD1eU7vlpHl?FR?GH57P%gmJpklm93xb7F9w1_Y`FPz2T;UQ;pb!&i~wA}h}T`4+dz(xFf9cFy&ePFptHX7*Td*U0a;eJ+-tx|^g8mh z^={-kjDWFh&GR4-s0`3Mz8gTY!?~hzh4?dx(bvt$7`HjM9oYVh(Be+*nVo?bUr zHycb`6HBRthCe#Jo81dqzOOkm_rFvXT9()8&HG=xQ&jXS#1jNc`h5Brr|8lQ6Hq>I z!g4n|{F&5bumOQCSp$cpeGtU#?B$A#$soBWK^Hg6cN=7TAE22J1A#o=sdxM|8`8krxN@w;ju!wL^WZel zEC7;GCGZemM-J6zih)@MU@W*Ey8|qi^|uM4SJd`N6AyB#?*XNwg#^cnBelWaV;!Xx zEdB*7@{0OrAl5ee{D};_lN2x+DIW(tU7DdCIo@ZqM%CMaN_Fyf|MQg_t5WrR$`wyO zCQBIAi@bRC-F?R|>?f^{XMQ&WcS1E?qK@kg_f+`5*@I3%5&j36UmcPk<3|Uqr+I*5 ziUlh4Euxik^8cmUvnPMp^$bFI#JwnW&ZN9loE#5(X0xWoOM53$T3D6?(C2+%zOT-4 zuuG!ggBbi#mo*sK53Dub*;6G0fhqw-0zNgT{UiYs285NTmu~<4_@5B|(}e$)!+$p6 zKg0N+cX)m36aRCO|38JG`yk_^SPDn^#BYk^0^vUF){JHtfa1Sh{$Q@~z{4|&Kt0BN z=jlGSOVM|-hz_+srdSi%)9}Y&oO{pLYa5RdcnP9!7_ye>ne|?d+v5 zU&^zk&CS~Y0N~c7>rpI!QIvN5!jCtuTWaxNKIW!#ZxL-iBawjxeqLJWE3vU_b2YZ6 z;X3e8ds`^2u7^QXrG)KLX!RSGPNSLFlyie2;s+#kO{v$vek`8{y}t4JvnBf;@~CGm zOCan3l!O36uav3#&NxxM*rl@_hCAvpq3;);zDq6a4>h-vwcPj1dDl0;QdeQjAo-IK z^bg>5>%JUUT9g*)5?BuN8L1cLVv*zdubcFsWL`k)?Y>W!*zl{|xyZZ2 z=&UQRcY%ga=`=#TE-KQgE?loy9Fz}UL$)dF=7TjL5|6C+ersGdeK+k0!9x3u zucqLru!gn=`^HsjMd%Eu2>_KqH7~SRRE2s)lRgyWCUyC1c6UoD-UihGY-qj~=z~;X zipqM#rJ5h&*gcUUu*n=O)t}zz{4H5cSEIk7_)S- zMF8W|a1?KqnXAxEo=ns8Gbr0-rhMt_GB((g(`lgR<(zcQ1O#jHGAHlJJtz2SmbbZF zBg9bA{K52OQtc1_9qE^Qe+06CIzelpPn4=zmk>~CT(o>IJU}+eGP-q5iN89xBG%FF z#b%?gdVRIE1)a)#*rz8(pUv+YW#b6jrnVKwHjM|$wjmw((1AhXA6*2?6y`@a?g}7{o{(&Cm zK-?2Ndh*z5lE67{1ODAaJEAbhxI&i2Vjp*S{y527vVRckUl@*y2iA`@-p(Fjce zbLh-LHqCtRY_M;r<@y40=}n*5r^-UnlqEG2wB57Yn7UNcm@zpj`udfbsh7MeZ(GW^QMSn;S;q_2lU-nb-ZWJ*o%S|FxVvTB}OS{y& z+MHl{X0R!t_tg(%!Z=}})3=Ls)N=D6a+p1uXB>Q+Cwor-oycA;Du@k*?hkDL7Ror= zaY)qe^kp7$7@sy}q3YYXPqU@%Jd<51IgyYcx43QYJa=3< zS-(M4X#WJA8!bBgv@)2-f)0+WyqiM|{Y$-Dh#Xm@x3xSJl$MidyB4^eeUHM%7OEaT zx|xl&CV4;OnT~!FZ$+j=@i2&lW_vv}$iz0zRWFXVcZxr{wZSrMcR)m`d8Dsv%Y-bn%`zQ%u7>t@ClzrP2CnCmCj-7+T^O(tk$RUMDxSn?2qT zmBqS;JYGYP`sNcP`bdVVm-dj%n5+tkG!`YC9t?H&PHl}#Q>Yi&wilnHUX6Mh(F-7h zzn-|76odwCA&UhR4pI`lS4Q5Z@$W2hppKs%JK;z_Z>pN8M9x=>liz++MBZd<<6Bw! z%;Y42G-alWmhE%8+>M(cX_JPQNn~^YOm7MdPrwYEz~qQvlZW-IhsRx(2lnJ_8SjS; zBIED1a9t2c>yuf?PINvAXoXS@&+>WC@cH`~srlDhsq~%dhsVS>ESZlmwfXfzZC!eC zd`Hv>p5F^f8e7PEFDcZG4sj`_w2cR&lBD&bF4>U%|8Y`&y@%7BU=gHl(a`u|mVg<= zp&%Q=`gpyk;}+9qoD5_3z5UWJlE2-6hHN8I+i+J*58BWxp6sg~XL1}{Qnz-S40y|a zbT6az2^`n_cvtz>Gtz}+XSab`Fe^C??JF7(foL_JY$&jt^ ztSS|G)AszKSsP+wpB>YthIe54&Le1Lac>=s?^JR6Hy=8+NHvrQEe+jSKKXUjdZx8_ z->3dWXoTO%Q}%6W=%AR-bDWavc6W2^txGItFX;ydpHus+XNs`l3Ma-BUf2(dq7x^j zhQz8OtxMe6x$8HIzV?aBxRrI7nRaT;T7+aCt*(vcZdB76aRt6*Rojhh7-h$<+C=y7 zUNqV;rcKA(gKsz}4qHlOSq3~hP?>>we+ikR8=S&E-03*)G&eN-5I&Rx)m94nD zJn!-(ru4H7Gr?@;Xc0mB^y7+6BNH@pjxAWfI-Az#Q6PiKEkbC9si?xWIjB;mNBz#r z1^=1*i(3K4BGxNtb4J~ZiufC0RmyiPGL7a|WVB&Tu=c+{w@ceQ4ajc#%BPZqnD4=g z4g;Gz56)pI%T8L=Y49nawvd-Ib=OedYmY+m@}(;PtlmiILF@29twb}AWMrs?ZHsnw}Z*zn%Mhe?HAMvoAIu_4GLh8NaIQn|8m z(tVESqwyd~=0?>3k?2;W-9>M4f!vNH?ohx(Py2ZCe6#dX6}z&M!%TgiGz&{pOinBb z9Ad>37Mk?NNK!;v`Ea)D48D z&oKBYjGwB2ao_c811aN`-+hP{T6W}Yy2F}y7QhUNidjsp7`NS?r7RA7* z(*#!PKFof4T+e83IHWOVkodW&*U$jGboTK5HAI6f8HvZPx^~6yUl@7L2~j5Nnjx9^ zL;wJtzIn`MX(e0*IJYK)g*s;C%D7X-yt&Ev4O63XB^F3#_? z6-$rykk-2}Lx&ZK#rMuXk~nunu>|+~kU4hm3yX-2UNzg4=EZHT1_?hdv&8khK3dzI z-zNB?dz!@$<6W`%rIOEkCTN=A+HREFIDdTJoDLw+J$?4^8Grv+6IPi zM6?svh=SJjCi&i=Y(*kHJqRoy>;Q_gLIHY!o-=Fo;R zx#rnodKTS>@5`*0tS_*NzJ3<;=hu-win+_wg?4f_yhrY}%Y&yg9Aipj^W;~8cc?*b zn^1~**8qFIC-ls_u5*fMgT$3Lg_-xdI&ln{wdZ+n>U8v*ac`(y^N#jV4YX&#`J2z^|KLL%_aTdk8d^?PxLN4A^`|ZLnyIxQP(Ol19jX&B93?1oD_2N7m_U3MRe)QM9Mbrylf+sqWi=|EBenw6p!~2Kyk|(d$OnvaN z==Rxwhe@xcnkKLVOX=@JT;FV2@QZAO^gJk5wC^?&hu9_7)gZazGrsM?@PBu% zQ_aWS(UbIzH1gRo4wiZ-rhAzYm0r zjs_8w*;IV?=IG_$`k(wEU5=}ZB?vFcwq_JS((3c{Z20;s%)bBe@{-T`t3q(*n_<$s zjp`|!G26B;=#;2w_Aw`YF}V1Vf-FJwo+4C!PEe314c#9WFhogHLgr(PsbZ8rkAsrS zZ04896CL(kMI(+JZm7rr|A~?B!Nrhd4jlMdmr!Lj<#>y-5ZkwS&-ur0A89}?qnBls zdzV5Q-pF{m@^-?~O(JpC!N4C#sOyS7x+<$%?gC;8m}Q*LVtvVglLHE22jh-5!~PL5 zn+4%G#GOhcW(Tl7Hu723Kyb!ORSV3qznC#yr`g!Ju5M^lucNRWp?do<~e#>!#&i z_xDvKE6u0dcNBzX5~4s{e}2!AH0h5$q2x5rCT2_oJQYqF_Fe2tIkz2Zxl3w^A7-7j zxf$e1P`t743su2GnXc=_MiQx`?0Gm@cVlZ*hP;|SFjPO#dll#^taZjOyjzfQS zd=JQ5sB}ql{h=8A5L1t57CcgEB4lEe8mr2whgkk5@e!;%@5i#&Mwf)xb-!}ywpeXB z2eNVWXcr-znQSU1vt6Oz0;EIo$iI$;tUu~Y37^cPuejslJvAoSYv%<|E~!rhx=51E z=Hs3y{oZ;Bmi;p}@XscMn>_DFUK&#sxEWIN(}Wt$ z?f6y?Z>m<+V=DgsyfgbhjKa!HazJ(e9J$fp&sTZ-pB_t0wFSmK4HnsS@pj_E69cP> zo%=XOYo}Y#P1pqc*zY$POp{`l_m`LV&2k1%wOT(2^D$2!4f06fs?EAgc!7esfR-LnPg!XH z>89HWgYm0s0y#O1B||}8$dn9BITT{ZX94a%SPp0Ncy}YN+)2FHmScsQWc7?`W6>+6(wY>)0<<)956Y;_id)tpXgh^uYCug0#Hbi~P$_ zmctWut}X9uer~$Ep4fETGBfLc3DLUrI!f%b@}cx0I7Gm2KOf8WYfl(>R8&6nq&J26 zAlI_)go`3_H?EB&jAf)tFa~$U*{-wCnb28g>_D0B`)jM+$cYk5`YXdSe4Z{UbEBR^ zlUuw*>xaUc$8U4e*q)BJ+O|(;$YS7mo==>o(EY zEZC8Rj1mN=z*>I|=&QxVi!&N2B!~ogKL3_BeOZ?>1-i?!smjGoHS7Ss^}SgUhm{{FvLrBoxog&&%tdg(uR)1PjYVgc?}j` zw%4Z;GjW+ZdCBg(xXB>J*!v5(2)Hs3cCY4>$_9lLjHy4uPTJRfp9DuZcwJQP$Rp~K z*nNk)#SR8UK8Z^-t}_yp^l|(w;QZ%Qi-^;G9iqx(z7G#|LhohptVqXOzLdzY&81qK zp|_4R6p06HWl*%TDxo4HZ1%<}Q;B9T_nH8ZN0Wy+19U8$D6D?bbj!Ifmdd` z+)Ct4na4W4X84-7J5h1%rh17A5;3c^G*H#98Ge-Y@=b;@w{O40Chb#zOjxsK?re9k zvEp?xm}k9vD;fN*grTHD#vmxGf~Yb zhj0zFHVL)YwT&DC&mh2+tB$MecsGxsj{7XRAttknKDi?r7rd%E^trt^IATfYmhXF< z`9G|;uL{p(6?MsYLQ(_t+ozODsJGTB7B;GeCh3C#9eLu-?)rZVIn)~f=oocO>NoQ7 z80Uu@zmWanQigQ~TlG#P4k%y{--EDna8ebaDg)R4Hrh5X%tHR7?SiuI!9liVj)Qyh zPjIPKo~eR+7c%J4O)D%X5SOP#$2&A&OPSC5|FWYVg*aJ>I3H%6=5cV+xTD~S^S&h* zyiqUKesm10Dp{Bv6Suy8eL&ic+!0I}tKd_(BY%$x=G|6390bctCyRIAJ(~RItRrf| z?G^d}z$tEG?zLXm`hyGlAu6#q*D*+y5VBkdhJX#pSv2wI!06Ru1fc>$*O5mD@A^#Q zCifNO1z$Kg1wk`giQ8k?y}>IiL25Rq8`D9k-ADou-7Z=W#@pyZ6dDJ><<$~P ze`XZ+pV_ex7tbUdVuSbgLIgK_J8+-4S-7J8YK{Zq)I=dl*z#FOP4SBe}PAdwUk@#vZz=8<`{0b}PyLcK3e zB<~MdZiVNSmwOX{*J91;2S;nm>>Qu}Ga$WsdsAJuQB1*pBlsJKL*!oE94NAka0S;mfywWFJ@m2=NCQz7HN88eaAf{sNpUpF-}u2~y3_U+M{J3lxM-DuZW zAE9|?!vvne@kOx*0o8=5pm@FhG<6A6nsHyT_MGn~sihQQCOsSKa6iYuc4D$=jQq-= z+h|G&td4*KL!u#v;9%S?VLYEb!vZ(>pEASQU`Jdc>g z03rDh-*N4)_uw?nSEEPCHm*$IE1RTj%|L&J)OUxlZt32gA-wL2c2?IPs>dPBZUl(C z01oV8XXtY2wiimx@!=F*ktxwnX1Vy9-hh}@TiGt|1C~IJgn!2f!@5plwprrT=7Md( zI$Z8nrj5U`Km5K>8bXOJq)C=W$gh#K;7WE@>Z270NGT!vTXD0ut9L7D*DG@NetSlU z>)BGU^M(x>Bk;x5Zm3*CIpoPoXce=tpG?iPjspy_W`EDlIXkbm6NA5QKsu76w0B69 z#$8WXu~j~}Lmrt+Y)voY3OVum+VThcqxjz6>itmU>KgKs3V~Z1l6sCiR%-d&H8K99 zh)k~w6!NasQ67>fY2#8{0;mi~MSs1QkD*|GLNd^3SXUaJf}{M7R4za>S0!$A>h3h zt7p;}qn{6~1=#x3F>xA+rU92fiId6LBT`VCS8Da6skyN)8@g!rdgvB_bZPH(Y$Oh@ zQFkJEP~X0W$c&khOKBk~)uPn5`U6z}j0&FEEIfiw!XN^?TT{(jr64Pp6#&Tbk8H&lJEoe493@1{ZD?(9a6+L5^g81^6jr~7_4h2l zQ}y;t^<@r{6-Z>^qdg^yq8m5ljq{FOw~$|?OZi@!vNt|W@wB2I%@QAYy{o@4?|Oc? z4-8Wx`D4Th1w$;)x!zItI*Ipp726v0Gc*IsYOXzkwV%*CX_i}}uPP|FP%?m-t6Ha5 zg$=-R0w2Hh5$+e&mt9ugm)M|09ARS7ZQ`gpYM6oc&3)NG%#z934qM{mF2tWE%*c~- z`&y&dciPLf1$Upnx8%usyd0h^p^Sg6Wgh!QraKQu%G*{Fd|N4QePbN6%E9eDXnNvt zNKcc>4%D$ghY_USoD%`B>^ciIW&F}R&3FEnPktxceqz5)CAkbG6bHDU)FDC+8-0AM zntxk-cR9yS!RFPhRx~{Xhg&2x8&70cuBgeH8)6=+>RVbsR`y=#7YOjZoQ* zUGSkjp3~cHeX&F^diq#S;U*j^fmOqE=11LP?cJ=P?7qxNI$??1kYtOwz4vSsRf6^W ziqemGcFIG2n{E=;uyt+{+omTj)};%tvhYwA2w}RToK@3RVZiOnJ-^r#DMd~qaIhz} z8>)$RmElAIDEFgCX(hDdO-N@!vi+484Ocg9oby#KX=q9)98yPVA}3b63Vm8Dg)BKo zYNILwT5OM3{u;h;-QtwFYiT7rZIo%j#0>$HTM$D{NUs$e30cX|lV8-O)drKl7Di1y zzVESv1vcb8AY>gJ92l&P52_7kBlw zR3O%&;TJsJ`q+A>>FtG7b;M=$q?87p$k~)+=8JM#%T=lsX4jQyEvihOeas|Ye75}v z9LB`aW?%376?wE1h*qi(P(PWW%c&*j)f;AJ+1wf{2~hr{fL!Lx+qgWWo*!8uj=wRT z1LIy-5{qdw3|iH@EZz|tj38BVLV`@fq1%^xAED*5M*VuyVbMj} zHA5AV3b}(NZx0buU>mQ)!#(E`$NPHO5yi)d*c@U^r>C`lk=smwA7`2a*txI{Zp(8| zFFky36Af&E8T&}hNi%hL7_~~6z*L%k_6yR(+f|S4<;WN}G>p}DRSZr&-kM`s%gfvI0c=o#xl z!q`q79ShT^sfDC7?cac{QoIo>F^Iu;e9~1>F!BC@`P!1m<6{~oRW4u$;B~Ih< z%4sj?8+!-6cK4KD;b`7QS*C_wnE{W9yk^BBb%Z;5h*5sHu;3+-_W06XQahzQ=qeLL zGFru-j6dfTy>^xrprC_5d}-ZLzWU~N3d6!bXn5OBNwd86j>V2Wq!U<3K=n=ItLN-? z-_mH`it?J9W>9l}ebt{jK`!c~DL2tY_dWZWo42 zAUk}2M%-S+BfH?!?|r#p;kh$9XW%*jjYDOzck6p#-~n{n0n~L%9rW7GtJNYQ0LP3h zDsrCxyRg`Vq&Zdx2BtQ)9n5Bjb2d9GAgkgOrn3^deQG-&h98Hib@q3CU~#@b-`!iW zb-Xs(gghtD3*4!*JA3?P%9^T1XJ-a7ze<8?ehECEUX_vL>A`A-@C iTL}MIhW|IK2mvh$)N9_{Y3Kt1p9k6oT5t`!H~$A2g}mng literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-mdpi/splash.png b/android/app/src/main/res/drawable-mdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..965dc12749c20a3a4c31d367c9d488fe5738fa2b GIT binary patch literal 29252 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xhdpi/splash.png b/android/app/src/main/res/drawable-xhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..50b0ab08a139f2a5465cb341e4b1b2aa0c93da27 GIT binary patch literal 76649 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