From 2d748684ba2739dce2c71e67345df81cdcf26fa4 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 17 Dec 2021 20:26:27 +0000 Subject: [PATCH] 5.5.0 - updates --- LabelStoreMax/CHANGELOG.md | 9 ++ LabelStoreMax/README.md | 2 +- LabelStoreMax/lang/de.json | 3 +- LabelStoreMax/lang/en.json | 3 +- LabelStoreMax/lang/es.json | 3 +- LabelStoreMax/lang/fr.json | 3 +- LabelStoreMax/lang/hi.json | 3 +- LabelStoreMax/lang/it.json | 3 +- LabelStoreMax/lang/pt.json | 3 +- LabelStoreMax/lang/zh.json | 3 +- .../account_order_detail_controller.dart | 4 +- .../browse_category_controller.dart | 4 +- .../controllers/browse_search_controller.dart | 4 +- .../checkout_status_controller.dart | 4 +- .../lib/app/controllers/controller.dart | 8 +- .../product_detail_controller.dart | 4 +- .../product_image_viewer_controller.dart | 4 +- LabelStoreMax/lib/bootstrap/app.dart | 4 +- LabelStoreMax/lib/bootstrap/boot.dart | 76 ++++++++++++++++ LabelStoreMax/lib/bootstrap/helpers.dart | 6 +- LabelStoreMax/lib/bootstrap/setup.dart | 10 --- LabelStoreMax/lib/config/app_currency.dart | 2 +- LabelStoreMax/lib/config/app_font.dart | 2 +- .../lib/config/app_payment_gateways.dart | 2 +- LabelStoreMax/lib/main.dart | 36 +------- .../lib/resources/pages/account_register.dart | 19 +++- .../lib/resources/themes/dark_theme.dart | 10 +++ .../lib/resources/themes/light_theme.dart | 10 +++ .../themes/styles/dark_theme_colors.dart | 13 +-- .../themes/styles/light_theme_colors.dart | 14 +-- .../resources/widgets/home_drawer_widget.dart | 68 ++++++++++---- .../public/assets/images/facebook.png | Bin 0 -> 12832 bytes .../public/assets/images/instagram.png | Bin 0 -> 29481 bytes .../public/assets/images/twitter.png | Bin 0 -> 15969 bytes .../public/assets/images/youtube.png | Bin 0 -> 35684 bytes LabelStoreMax/pubspec.lock | 84 ++++++++++++++++-- LabelStoreMax/pubspec.yaml | 22 +++-- README.md | 2 +- 38 files changed, 324 insertions(+), 123 deletions(-) create mode 100644 LabelStoreMax/lib/bootstrap/boot.dart delete mode 100644 LabelStoreMax/lib/bootstrap/setup.dart create mode 100644 LabelStoreMax/public/assets/images/facebook.png create mode 100644 LabelStoreMax/public/assets/images/instagram.png create mode 100644 LabelStoreMax/public/assets/images/twitter.png create mode 100644 LabelStoreMax/public/assets/images/youtube.png diff --git a/LabelStoreMax/CHANGELOG.md b/LabelStoreMax/CHANGELOG.md index 12240aa..feb65bc 100644 --- a/LabelStoreMax/CHANGELOG.md +++ b/LabelStoreMax/CHANGELOG.md @@ -1,3 +1,12 @@ +## [5.5.0] - 2021-12-17 + +* Change font from WooSignal dashboard +* Change font colors from WooSignal dashboard +* Add social media links from WooSignal dashboard +* Notification stubs added to boot.dart +* Upgrade WooSignal API to v3.0.0 +* Pubspec.yaml dependency updates + ## [5.4.0] - 2021-12-10 * New localization keys added diff --git a/LabelStoreMax/README.md b/LabelStoreMax/README.md index 43d0df4..7833a82 100644 --- a/LabelStoreMax/README.md +++ b/LabelStoreMax/README.md @@ -4,7 +4,7 @@ # WooCommerce App: Label StoreMax -### Label StoreMax - v5.4.0 +### Label StoreMax - v5.5.0 [Official WooSignal WooCommerce App](https://woosignal.com) diff --git a/LabelStoreMax/lang/de.json b/LabelStoreMax/lang/de.json index 5eced5f..c655290 100644 --- a/LabelStoreMax/lang/de.json +++ b/LabelStoreMax/lang/de.json @@ -190,5 +190,6 @@ "Please enter a valid billing email": "Bitte geben Sie eine gültige Rechnungs-E-Mail-Adresse ein", "Please enter a valid shipping email": "Bitte geben Sie eine gültige Versand-E-Mail ein", "Free postage": "Portofrei", - "PROCESSING": "WIRD BEARBEITET" + "PROCESSING": "WIRD BEARBEITET", + "Social": "Sozial" } \ No newline at end of file diff --git a/LabelStoreMax/lang/en.json b/LabelStoreMax/lang/en.json index e1485d0..3f36bc3 100644 --- a/LabelStoreMax/lang/en.json +++ b/LabelStoreMax/lang/en.json @@ -190,5 +190,6 @@ "Please enter a valid billing email": "Please enter a valid billing email", "Please enter a valid shipping email": "Please enter a valid shipping email", "Free postage": "Free postage", - "PROCESSING": "PROCESSING" + "PROCESSING": "PROCESSING", + "Social": "Social" } \ No newline at end of file diff --git a/LabelStoreMax/lang/es.json b/LabelStoreMax/lang/es.json index a29c0b2..480a5c7 100644 --- a/LabelStoreMax/lang/es.json +++ b/LabelStoreMax/lang/es.json @@ -190,5 +190,6 @@ "Please enter a valid billing email": "Ingrese un correo electrónico de facturación válido", "Please enter a valid shipping email": "Ingrese un correo electrónico de envío válido", "Free postage": "Gastos de envío gratis", - "PROCESSING": "PROCESANDO" + "PROCESSING": "PROCESANDO", + "Social": "Social" } \ No newline at end of file diff --git a/LabelStoreMax/lang/fr.json b/LabelStoreMax/lang/fr.json index 4edea95..a8002df 100644 --- a/LabelStoreMax/lang/fr.json +++ b/LabelStoreMax/lang/fr.json @@ -190,5 +190,6 @@ "Please enter a valid billing email": "Veuillez saisir une adresse e-mail de facturation valide", "Please enter a valid shipping email": "Veuillez saisir un e-mail de livraison valide", "Free postage": "Sans frais de port", - "PROCESSING": "EN TRAITEMENT" + "PROCESSING": "EN TRAITEMENT", + "Social": "Social" } \ No newline at end of file diff --git a/LabelStoreMax/lang/hi.json b/LabelStoreMax/lang/hi.json index f2a95d9..87dcd1f 100644 --- a/LabelStoreMax/lang/hi.json +++ b/LabelStoreMax/lang/hi.json @@ -190,5 +190,6 @@ "Please enter a valid billing email": "krpaya ek maany biling eemel darj karen", "Please enter a valid shipping email": "krpaya ek maany shiping eemel darj karen", "Free postage": "mupht daak", - "PROCESSING": "prasanskaran" + "PROCESSING": "prasanskaran", + "Social": "saamaajik" } \ No newline at end of file diff --git a/LabelStoreMax/lang/it.json b/LabelStoreMax/lang/it.json index 04f3418..6cdf235 100644 --- a/LabelStoreMax/lang/it.json +++ b/LabelStoreMax/lang/it.json @@ -190,5 +190,6 @@ "Please enter a valid billing email": "Si prega di inserire un'e-mail di fatturazione valida", "Please enter a valid shipping email": "Si prega di inserire un'e-mail di spedizione valida", "Free postage": "Spedizione gratuita", - "PROCESSING": "IN LAVORAZIONE" + "PROCESSING": "IN LAVORAZIONE", + "Social": "Sociale" } \ No newline at end of file diff --git a/LabelStoreMax/lang/pt.json b/LabelStoreMax/lang/pt.json index f67416f..d34bdeb 100644 --- a/LabelStoreMax/lang/pt.json +++ b/LabelStoreMax/lang/pt.json @@ -190,5 +190,6 @@ "Please enter a valid billing email": "Por favor, insira um e-mail de faturamento válido", "Please enter a valid shipping email": "Por favor, insira um e-mail de envio válido", "Free postage": "Postagem grátis", - "PROCESSING": "EM PROCESSAMENTO" + "PROCESSING": "EM PROCESSAMENTO", + "Social": "Social" } \ No newline at end of file diff --git a/LabelStoreMax/lang/zh.json b/LabelStoreMax/lang/zh.json index c0523cf..33f961e 100644 --- a/LabelStoreMax/lang/zh.json +++ b/LabelStoreMax/lang/zh.json @@ -190,5 +190,6 @@ "Please enter a valid billing email": "请输入有效的结算电子邮件", "Please enter a valid shipping email": "请输入有效的送货电子邮件", "Free postage": "免邮费", - "PROCESSING": "加工" + "PROCESSING": "加工", + "Social": "社会的" } \ No newline at end of file diff --git a/LabelStoreMax/lib/app/controllers/account_order_detail_controller.dart b/LabelStoreMax/lib/app/controllers/account_order_detail_controller.dart index 807c60b..4fac185 100644 --- a/LabelStoreMax/lib/app/controllers/account_order_detail_controller.dart +++ b/LabelStoreMax/lib/app/controllers/account_order_detail_controller.dart @@ -13,5 +13,7 @@ import 'package:flutter/widgets.dart'; class AccountOrderDetailController extends Controller { @override - construct(BuildContext context) {} + construct(BuildContext context) { + super.construct(context); + } } diff --git a/LabelStoreMax/lib/app/controllers/browse_category_controller.dart b/LabelStoreMax/lib/app/controllers/browse_category_controller.dart index 4ef91d9..0bbfcc0 100644 --- a/LabelStoreMax/lib/app/controllers/browse_category_controller.dart +++ b/LabelStoreMax/lib/app/controllers/browse_category_controller.dart @@ -13,5 +13,7 @@ import 'package:flutter/widgets.dart'; class BrowseCategoryController extends Controller { @override - construct(BuildContext context) {} + construct(BuildContext context) { + super.construct(context); + } } diff --git a/LabelStoreMax/lib/app/controllers/browse_search_controller.dart b/LabelStoreMax/lib/app/controllers/browse_search_controller.dart index 445338a..e2e0bd7 100644 --- a/LabelStoreMax/lib/app/controllers/browse_search_controller.dart +++ b/LabelStoreMax/lib/app/controllers/browse_search_controller.dart @@ -13,5 +13,7 @@ import 'package:flutter/widgets.dart'; class BrowseSearchController extends Controller { @override - construct(BuildContext context) {} + construct(BuildContext context) { + super.construct(context); + } } diff --git a/LabelStoreMax/lib/app/controllers/checkout_status_controller.dart b/LabelStoreMax/lib/app/controllers/checkout_status_controller.dart index 16e5058..a98fef7 100644 --- a/LabelStoreMax/lib/app/controllers/checkout_status_controller.dart +++ b/LabelStoreMax/lib/app/controllers/checkout_status_controller.dart @@ -13,5 +13,7 @@ import 'package:flutter/widgets.dart'; class CheckoutStatusController extends Controller { @override - construct(BuildContext context) {} + construct(BuildContext context) { + super.construct(context); + } } diff --git a/LabelStoreMax/lib/app/controllers/controller.dart b/LabelStoreMax/lib/app/controllers/controller.dart index d3f0e05..0ee065f 100644 --- a/LabelStoreMax/lib/app/controllers/controller.dart +++ b/LabelStoreMax/lib/app/controllers/controller.dart @@ -8,10 +8,16 @@ // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +import 'package:flutter/material.dart'; import 'package:nylo_support/controllers/controller.dart'; /// Base Controller for the Nylo -/// See more on controllers here - https://nylo.dev/docs/1.x/controllers +/// See more on controllers here - https://nylo.dev/docs/2.x/controllers class Controller extends BaseController { Controller(); + + @override + construct(BuildContext context) { + super.construct(context); + } } diff --git a/LabelStoreMax/lib/app/controllers/product_detail_controller.dart b/LabelStoreMax/lib/app/controllers/product_detail_controller.dart index 8e2c73c..cf15f02 100644 --- a/LabelStoreMax/lib/app/controllers/product_detail_controller.dart +++ b/LabelStoreMax/lib/app/controllers/product_detail_controller.dart @@ -16,7 +16,9 @@ import 'package:flutter/widgets.dart'; class ProductDetailController extends Controller { @override - construct(BuildContext context) {} + construct(BuildContext context) { + super.construct(context); + } viewExternalProduct(Product product) { if (product.externalUrl != null && product.externalUrl.isNotEmpty) { diff --git a/LabelStoreMax/lib/app/controllers/product_image_viewer_controller.dart b/LabelStoreMax/lib/app/controllers/product_image_viewer_controller.dart index 8837864..a596851 100644 --- a/LabelStoreMax/lib/app/controllers/product_image_viewer_controller.dart +++ b/LabelStoreMax/lib/app/controllers/product_image_viewer_controller.dart @@ -13,5 +13,7 @@ import 'package:flutter/widgets.dart'; class ProductImageViewerController extends Controller { @override - construct(BuildContext context) {} + construct(BuildContext context) { + super.construct(context); + } } diff --git a/LabelStoreMax/lib/bootstrap/app.dart b/LabelStoreMax/lib/bootstrap/app.dart index 7bcc0f3..2042eac 100644 --- a/LabelStoreMax/lib/bootstrap/app.dart +++ b/LabelStoreMax/lib/bootstrap/app.dart @@ -34,7 +34,7 @@ class AppBuild extends StatelessWidget { Key key, this.initialRoute, this.title, - @required this.locale, + this.locale, this.themeData, @required this.onGenerateRoute, this.navigatorKey, @@ -66,7 +66,7 @@ class AppBuild extends StatelessWidget { child: ThemeConsumer( child: Builder( builder: (themeContext) => ValueListenableBuilder( - valueListenable: ValueNotifier(locale), + valueListenable: ValueNotifier(locale ?? NyLocalization.instance.locale), builder: (context, Locale locale, _) => MaterialApp( navigatorKey: navigatorKey, themeMode: themeMode, diff --git a/LabelStoreMax/lib/bootstrap/boot.dart b/LabelStoreMax/lib/bootstrap/boot.dart new file mode 100644 index 0000000..1174ba2 --- /dev/null +++ b/LabelStoreMax/lib/bootstrap/boot.dart @@ -0,0 +1,76 @@ +// import 'package:firebase_core/firebase_core.dart'; +// import 'package:firebase_messaging/firebase_messaging.dart'; +// import 'package:flutter_app/firebase_options.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_app/bootstrap/app_helper.dart'; +import 'package:flutter_app/bootstrap/helpers.dart'; +import 'package:flutter_app/config/app_localization.dart'; +import 'package:nylo_framework/nylo_framework.dart'; +import 'package:woosignal/models/response/woosignal_app.dart'; +import 'package:woosignal/woosignal.dart'; +import 'package:wp_json_api/wp_json_api.dart'; + +/// boot application +Future boot() async { + + await SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + ]); + + await WooSignal.instance.init(appKey: getEnv('APP_KEY'), debugMode: getEnv('APP_DEBUG')); + + // Notifications + /// await Firebase.initializeApp( + /// options: DefaultFirebaseOptions.currentPlatform, + /// ); + /// + /// FirebaseMessaging messaging = FirebaseMessaging.instance; + /// + /// NotificationSettings settings = await messaging.requestPermission( + /// alert: true, + /// announcement: false, + /// badge: true, + /// carPlay: false, + /// criticalAlert: false, + /// provisional: false, + /// sound: true, + /// ); + /// + /// if (settings.authorizationStatus == AuthorizationStatus.authorized) { + /// String token = await messaging.getToken(); + /// WooSignal.instance.setFcmToken(token); + /// AppHelper.instance.fcmToken = token; + /// } + + // WooSignal Setup + WooSignalApp wooSignalApp = await appWooSignal((api) => api.getApp()); + Locale locale = Locale('en'); + + if (wooSignalApp != null) { + AppHelper.instance.appConfig = wooSignalApp; + + if (wooSignalApp.wpLoginEnabled == 1) { + WPJsonAPI.instance.initWith( + baseUrl: wooSignalApp.wpLoginBaseUrl, + shouldDebug: getEnv('APP_DEBUG'), + wpJsonPath: wooSignalApp.wpLoginWpApiPath, + ); + } + + if (getEnv('DEFAULT_LOCALE', defaultValue: null) == null && wooSignalApp.locale != null) { + locale = Locale(wooSignalApp.locale); + } else { + locale = Locale(envVal('DEFAULT_LOCALE', defaultValue: 'en')); + } + } + + /// NyLocalization + await NyLocalization.instance.init( + localeType: localeType, + languageCode: locale.languageCode, + languagesList: languagesList, + assetsDirectory: assetsDirectory, + valuesAsMap: valuesAsMap + ); +} \ No newline at end of file diff --git a/LabelStoreMax/lib/bootstrap/helpers.dart b/LabelStoreMax/lib/bootstrap/helpers.dart index 5e5a1b1..e4b8a0b 100644 --- a/LabelStoreMax/lib/bootstrap/helpers.dart +++ b/LabelStoreMax/lib/bootstrap/helpers.dart @@ -45,11 +45,7 @@ Future getUser() async => (await NyStorage.read(SharedKey.authUser, model: User())); appWooSignal(Function(WooSignal) api) async { - WooSignal wooSignal = await WooSignal.getInstance(config: { - "appKey": getEnv('APP_KEY'), - "debugMode": getEnv('APP_DEBUG', defaultValue: true) - }); - return await api(wooSignal); + return await api(WooSignal.instance); } /// helper to find correct color from the [context]. diff --git a/LabelStoreMax/lib/bootstrap/setup.dart b/LabelStoreMax/lib/bootstrap/setup.dart deleted file mode 100644 index eed7323..0000000 --- a/LabelStoreMax/lib/bootstrap/setup.dart +++ /dev/null @@ -1,10 +0,0 @@ -import 'package:flutter/services.dart'; - -/// boot application -Future boot() async { - - await SystemChrome.setPreferredOrientations([ - DeviceOrientation.portraitUp, - ]); - -} \ No newline at end of file diff --git a/LabelStoreMax/lib/config/app_currency.dart b/LabelStoreMax/lib/config/app_currency.dart index c9ef124..ede8603 100644 --- a/LabelStoreMax/lib/config/app_currency.dart +++ b/LabelStoreMax/lib/config/app_currency.dart @@ -3,7 +3,7 @@ | CURRENCY | | Configure which currency you want to use. -| Docs here: https://woosignal.com/docs/app/ios/label-storemax +| Docs here: https://woosignal.com/docs/app/label-storemax |-------------------------------------------------------------------------- */ diff --git a/LabelStoreMax/lib/config/app_font.dart b/LabelStoreMax/lib/config/app_font.dart index f7288d1..171c945 100644 --- a/LabelStoreMax/lib/config/app_font.dart +++ b/LabelStoreMax/lib/config/app_font.dart @@ -13,7 +13,7 @@ import 'package:google_fonts/google_fonts.dart'; |-------------------------------------------------------------------------- */ -final TextStyle appFont = GoogleFonts.poppins(); +TextStyle appFont = GoogleFonts.poppins(); // e.g. custom font in pubspec.yaml - https://flutter.dev/docs/cookbook/design/fonts // final TextStyle appThemeFont = TextStyle(fontFamily: "ZenTokyoZoo"); \ No newline at end of file diff --git a/LabelStoreMax/lib/config/app_payment_gateways.dart b/LabelStoreMax/lib/config/app_payment_gateways.dart index 3907872..86414fc 100644 --- a/LabelStoreMax/lib/config/app_payment_gateways.dart +++ b/LabelStoreMax/lib/config/app_payment_gateways.dart @@ -9,7 +9,7 @@ import 'package:flutter_app/bootstrap/helpers.dart'; | PAYMENT GATEWAYS | | Configure which payment gateways you want to use. -| Docs here: https://woosignal.com/docs/app/ios/label-storemax +| Docs here: https://woosignal.com/docs/app/label-storemax |-------------------------------------------------------------------------- */ diff --git a/LabelStoreMax/lib/main.dart b/LabelStoreMax/lib/main.dart index 4d7f6a7..ca2b071 100644 --- a/LabelStoreMax/lib/main.dart +++ b/LabelStoreMax/lib/main.dart @@ -1,52 +1,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_app/bootstrap/app.dart'; import 'package:flutter_app/bootstrap/app_helper.dart'; -import 'package:flutter_app/bootstrap/helpers.dart'; -import 'package:flutter_app/bootstrap/setup.dart'; -import 'package:flutter_app/config/app_localization.dart'; +import 'package:flutter_app/bootstrap/boot.dart'; import 'package:flutter_app/routes/router.dart'; import 'package:nylo_framework/nylo_framework.dart'; -import 'package:woosignal/models/response/woosignal_app.dart'; -import 'package:wp_json_api/wp_json_api.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); Nylo nylo = await Nylo.init(router: appRouter(), setup: boot); - String initialRoute = '/no-connection'; - WooSignalApp wooSignalApp = await appWooSignal((api) => api.getApp()); - Locale locale; - - if (wooSignalApp != null) { - initialRoute = "/home"; - AppHelper.instance.appConfig = wooSignalApp; - AppHelper.instance.themeType = wooSignalApp.theme; - - if (wooSignalApp.wpLoginEnabled == 1) { - WPJsonAPI.instance.initWith( - baseUrl: wooSignalApp.wpLoginBaseUrl, - shouldDebug: (wooSignalApp.appDebug == 1), - wpJsonPath: wooSignalApp.wpLoginWpApiPath, - ); - } - - locale = Locale((getEnv('DEFAULT_LOCALE', defaultValue: null) == null && wooSignalApp.locale != null) ? wooSignalApp.locale : envVal('DEFAULT_LOCALE', defaultValue: 'en')); - } - - /// NyLocalization - await NyLocalization.instance.init( - localeType: localeType, - languageCode: locale != null ? locale.languageCode : Locale(getEnv('DEFAULT_LOCALE', defaultValue: 'en')), - languagesList: languagesList, - assetsDirectory: assetsDirectory, - valuesAsMap: valuesAsMap - ); + String initialRoute = AppHelper.instance.appConfig != null ? '/home' : '/no-connection'; runApp( AppBuild( navigatorKey: nylo.router.navigatorKey, onGenerateRoute: nylo.router.generator(), - locale: locale, initialRoute: initialRoute, debugShowCheckedModeBanner: false, ), diff --git a/LabelStoreMax/lib/resources/pages/account_register.dart b/LabelStoreMax/lib/resources/pages/account_register.dart index f6c9b1e..7215dcb 100644 --- a/LabelStoreMax/lib/resources/pages/account_register.dart +++ b/LabelStoreMax/lib/resources/pages/account_register.dart @@ -9,6 +9,8 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +import 'dart:math'; + import 'package:flutter/material.dart'; import 'package:flutter_app/app/models/user.dart'; import 'package:flutter_app/bootstrap/app_helper.dart'; @@ -18,7 +20,6 @@ import 'package:flutter_app/resources/widgets/buttons.dart'; import 'package:flutter_app/resources/widgets/safearea_widget.dart'; import 'package:flutter_app/resources/widgets/woosignal_ui.dart'; import 'package:nylo_framework/nylo_framework.dart'; -import 'package:woosignal/helpers/shared_pref.dart'; import 'package:woosignal/models/response/woosignal_app.dart'; import 'package:wp_json_api/exceptions/empty_username_exception.dart'; import 'package:wp_json_api/exceptions/existing_user_email_exception.dart'; @@ -176,7 +177,7 @@ class _AccountRegistrationPageState extends State { }); String username = - (email.replaceAll(new RegExp(r'([@.])'), "")) + randomStr(4); + (email.replaceAll(new RegExp(r'([@.])'), "")) + _randomStr(4); WPUserRegisterResponse wpUserRegisterResponse; try { @@ -265,13 +266,23 @@ class _AccountRegistrationPageState extends State { ); } + String _randomStr(int strLen) { + const chars = "abcdefghijklmnopqrstuvwxyz0123456789"; + Random rnd = Random(DateTime.now().millisecondsSinceEpoch); + String result = ""; + for (var i = 0; i < strLen; i++) { + result += chars[rnd.nextInt(chars.length)]; + } + return result; + } + void _viewTermsConditions() { Navigator.pop(context); - openBrowserTab(url: _wooSignalApp.appTermslink); + openBrowserTab(url: _wooSignalApp.appTermsLink); } void _viewPrivacyPolicy() { Navigator.pop(context); - openBrowserTab(url: _wooSignalApp.appPrivacylink); + openBrowserTab(url: _wooSignalApp.appPrivacyLink); } } diff --git a/LabelStoreMax/lib/resources/themes/dark_theme.dart b/LabelStoreMax/lib/resources/themes/dark_theme.dart index 5aaae1f..ff69480 100644 --- a/LabelStoreMax/lib/resources/themes/dark_theme.dart +++ b/LabelStoreMax/lib/resources/themes/dark_theme.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_app/bootstrap/app_helper.dart'; import 'package:flutter_app/config/app_font.dart'; import 'package:flutter_app/resources/themes/styles/base_styles.dart'; import 'package:flutter_app/resources/themes/text_theme/default_text_theme.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:nylo_framework/nylo_framework.dart'; /* @@ -14,6 +16,14 @@ import 'package:nylo_framework/nylo_framework.dart'; */ ThemeData darkTheme(BaseColorStyles darkColors) { + try { + appFont = GoogleFonts.getFont(AppHelper.instance.appConfig.themeFont ?? "Poppins"); + } on Exception catch(e) { + if (getEnv('APP_DEBUG') == true) { + NyLogger.error(e.toString()); + } + } + TextTheme darkTheme = getAppTextTheme(appFont, defaultTextTheme.merge(_darkTextTheme(darkColors))); return ThemeData( diff --git a/LabelStoreMax/lib/resources/themes/light_theme.dart b/LabelStoreMax/lib/resources/themes/light_theme.dart index 7c92f4f..7dff123 100644 --- a/LabelStoreMax/lib/resources/themes/light_theme.dart +++ b/LabelStoreMax/lib/resources/themes/light_theme.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_app/bootstrap/app_helper.dart'; import 'package:flutter_app/config/app_font.dart'; import 'package:flutter_app/resources/themes/styles/base_styles.dart'; import 'package:flutter_app/resources/themes/text_theme/default_text_theme.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:nylo_framework/nylo_framework.dart'; /* @@ -14,6 +16,14 @@ import 'package:nylo_framework/nylo_framework.dart'; */ ThemeData lightTheme(BaseColorStyles lightColors) { + try { + appFont = GoogleFonts.getFont(AppHelper.instance.appConfig.themeFont ?? "Poppins"); + } on Exception catch(e) { + if (getEnv('APP_DEBUG') == true) { + NyLogger.error(e.toString()); + } + } + TextTheme lightTheme = getAppTextTheme(appFont, defaultTextTheme.merge(_lightTextTheme(lightColors))); diff --git a/LabelStoreMax/lib/resources/themes/styles/dark_theme_colors.dart b/LabelStoreMax/lib/resources/themes/styles/dark_theme_colors.dart index 1419a16..b1e6473 100644 --- a/LabelStoreMax/lib/resources/themes/styles/dark_theme_colors.dart +++ b/LabelStoreMax/lib/resources/themes/styles/dark_theme_colors.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_app/bootstrap/app_helper.dart'; import 'package:flutter_app/resources/themes/styles/base_styles.dart'; /* @@ -9,24 +10,24 @@ import 'package:flutter_app/resources/themes/styles/base_styles.dart'; class DarkThemeColors implements BaseColorStyles { // general - Color get background => const Color(0xFF212121); + Color get background => Color(int.parse(AppHelper.instance.appConfig.themeColors['dark']['background'])); Color get backgroundContainer => const Color(0xFF4a4a4a); - Color get primaryContent => const Color(0xFFE1E1E1); + Color get primaryContent => Color(int.parse(AppHelper.instance.appConfig.themeColors['dark']['primary_text'])); Color get primaryAccent => const Color(0xFF818181); Color get surfaceBackground => Color(0xFF818181); Color get surfaceContent => Colors.black; // app bar - Color get appBarBackground => const Color(0xFF2C2C2C); - Color get appBarPrimaryContent => Colors.white; + Color get appBarBackground => Color(int.parse(AppHelper.instance.appConfig.themeColors['dark']['app_bar_background'])); + Color get appBarPrimaryContent => Color(int.parse(AppHelper.instance.appConfig.themeColors['dark']['app_bar_text'])); Color get inputPrimaryContent => Colors.white; // buttons - Color get buttonBackground => Colors.white60; - Color get buttonPrimaryContent => const Color(0xFF232c33); + Color get buttonBackground => Color(int.parse(AppHelper.instance.appConfig.themeColors['dark']['button_background'])); + Color get buttonPrimaryContent => Color(int.parse(AppHelper.instance.appConfig.themeColors['dark']['button_text'])); // bottom tab bar Color get bottomTabBarBackground => const Color(0xFF232c33); diff --git a/LabelStoreMax/lib/resources/themes/styles/light_theme_colors.dart b/LabelStoreMax/lib/resources/themes/styles/light_theme_colors.dart index c021c24..f3bc31f 100644 --- a/LabelStoreMax/lib/resources/themes/styles/light_theme_colors.dart +++ b/LabelStoreMax/lib/resources/themes/styles/light_theme_colors.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_app/bootstrap/app_helper.dart'; import 'package:flutter_app/resources/themes/styles/base_styles.dart'; /* @@ -9,23 +10,24 @@ import 'package:flutter_app/resources/themes/styles/base_styles.dart'; class LightThemeColors implements BaseColorStyles { // general - Color get background => const Color(0xFFFFFFFF); + + Color get background => Color(int.parse(AppHelper.instance.appConfig.themeColors['light']['background'])); Color get backgroundContainer => Colors.white; - Color get primaryContent => const Color(0xFF000000); + Color get primaryContent => Color(int.parse(AppHelper.instance.appConfig.themeColors['light']['primary_text'])); Color get primaryAccent => const Color(0xFF87c694); Color get surfaceBackground => Colors.white; Color get surfaceContent => Colors.black; // app bar - Color get appBarBackground => Colors.white; - Color get appBarPrimaryContent => const Color(0xFF3a3d40); + Color get appBarBackground => Color(int.parse(AppHelper.instance.appConfig.themeColors['light']['app_bar_background'])); + Color get appBarPrimaryContent => Color(int.parse(AppHelper.instance.appConfig.themeColors['light']['app_bar_text'])); Color get inputPrimaryContent => Colors.black; // buttons - Color get buttonBackground => const Color(0xFF529cda); - Color get buttonPrimaryContent => Colors.white; + Color get buttonBackground => Color(int.parse(AppHelper.instance.appConfig.themeColors['light']['button_background'])); + Color get buttonPrimaryContent => Color(int.parse(AppHelper.instance.appConfig.themeColors['light']['button_text'])); // bottom tab bar Color get bottomTabBarBackground => Colors.white; diff --git a/LabelStoreMax/lib/resources/widgets/home_drawer_widget.dart b/LabelStoreMax/lib/resources/widgets/home_drawer_widget.dart index e061988..4583adf 100644 --- a/LabelStoreMax/lib/resources/widgets/home_drawer_widget.dart +++ b/LabelStoreMax/lib/resources/widgets/home_drawer_widget.dart @@ -10,6 +10,7 @@ import 'package:flutter/material.dart'; +import 'package:flutter_app/bootstrap/app_helper.dart'; import 'package:flutter_app/bootstrap/helpers.dart'; import 'package:flutter_app/bootstrap/shared_pref/sp_auth.dart'; import 'package:flutter_app/resources/widgets/app_version_widget.dart'; @@ -17,6 +18,7 @@ import 'package:flutter_app/resources/widgets/woosignal_ui.dart'; import 'package:nylo_framework/theme/helper/ny_theme.dart'; import 'package:nylo_support/helpers/helper.dart'; import 'package:woosignal/models/response/woosignal_app.dart'; +import 'package:url_launcher/url_launcher.dart'; class HomeDrawerWidget extends StatefulWidget { const HomeDrawerWidget({Key key, @required this.wooSignalApp}) @@ -29,6 +31,16 @@ class HomeDrawerWidget extends StatefulWidget { } class _HomeDrawerWidgetState extends State { + + Map _socialLinks = {}; + + + @override + void initState() { + super.initState(); + _socialLinks = AppHelper.instance.appConfig.socialLinks ?? {}; + } + @override Widget build(BuildContext context) { bool isDark = (Theme.of(context).brightness == Brightness.dark); @@ -66,27 +78,27 @@ class _HomeDrawerWidgetState extends State { leading: Icon(Icons.shopping_cart), onTap: _actionCart, ), - if (widget.wooSignalApp.appTermslink != null && widget.wooSignalApp.appPrivacylink != null) - Padding( - child: Text( - trans("About Us"), - style: Theme.of(context).textTheme.subtitle2, + if (widget.wooSignalApp.appTermsLink != null && widget.wooSignalApp.appPrivacyLink != null) + Padding( + child: Text( + trans("About Us"), + style: Theme.of(context).textTheme.subtitle2, + ), + padding: EdgeInsets.only(left: 16, top: 8, bottom: 8), ), - padding: EdgeInsets.only(left: 16, top: 8, bottom: 8), - ), - if (widget.wooSignalApp.appTermslink != null && - widget.wooSignalApp.appTermslink.isNotEmpty) + if (widget.wooSignalApp.appTermsLink != null && + widget.wooSignalApp.appTermsLink.isNotEmpty) ListTile( title: Text(trans("Terms and conditions"), - style: Theme.of(context).textTheme.bodyText2.copyWith( - fontSize: 16 - ),), + style: Theme.of(context).textTheme.bodyText2.copyWith( + fontSize: 16 + ),), leading: Icon(Icons.menu_book_rounded), trailing: Icon(Icons.keyboard_arrow_right_rounded), onTap: _actionTerms, ), - if (widget.wooSignalApp.appPrivacylink != null && - widget.wooSignalApp.appPrivacylink.isNotEmpty) + if (widget.wooSignalApp.appPrivacyLink != null && + widget.wooSignalApp.appPrivacyLink.isNotEmpty) ListTile( title: Text(trans("Privacy policy"), style: Theme.of(context).textTheme.bodyText2.copyWith( fontSize: 16 @@ -99,7 +111,7 @@ class _HomeDrawerWidgetState extends State { title: Text( trans((isDark ? "Light Mode" : "Dark Mode")), style: Theme.of(context).textTheme.bodyText2.copyWith( - fontSize: 16 + fontSize: 16 ) ), leading: Icon(Icons.brightness_4_rounded), @@ -109,6 +121,26 @@ class _HomeDrawerWidgetState extends State { }); }, ), + if (_socialLinks.isNotEmpty) + Padding( + child: Text( + trans("Social"), + style: Theme.of(context).textTheme.subtitle2, + ), + padding: EdgeInsets.only(left: 16, top: 8, bottom: 8), + ), + ..._socialLinks.entries.where((element) => element != null && element.value != "").map((socialLink) => ListTile( + title: Text( + capitalize(socialLink.key), + style: Theme.of(context).textTheme.bodyText2.copyWith( + fontSize: 16 + ) + ), + leading: Image.asset(getImageAsset(socialLink.key) + '.png', height: 25, width: 25), + onTap: () async { + await launch(socialLink.value); + }, + )).toList(), ListTile( title: AppVersionWidget(), ), @@ -118,9 +150,9 @@ class _HomeDrawerWidgetState extends State { ); } - _actionTerms() => openBrowserTab(url: widget.wooSignalApp.appTermslink); + _actionTerms() => openBrowserTab(url: widget.wooSignalApp.appTermsLink); - _actionPrivacy() => openBrowserTab(url: widget.wooSignalApp.appPrivacylink); + _actionPrivacy() => openBrowserTab(url: widget.wooSignalApp.appPrivacyLink); _actionProfile() async { Navigator.pop(context); @@ -136,4 +168,6 @@ class _HomeDrawerWidgetState extends State { Navigator.pop(context); Navigator.pushNamed(context, "/cart"); } + + String capitalize(String s) => s[0].toUpperCase() + s.substring(1); } diff --git a/LabelStoreMax/public/assets/images/facebook.png b/LabelStoreMax/public/assets/images/facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..1983426f3ee4a5aa389ce81c52bfcbd484312b5f GIT binary patch literal 12832 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
Vye;~)D0ME; zbBa*<=-Q1-2it}2$>W@MPF8|v^HIoLAD4}zxUX3=3-Dw;lkYNFGY7MEO-`NN+K?VT zcs2GE^B_X8V{Z(D%e>?%ncA^QK{q24lzp6vk4#7$YA09(F5QQxigBKMIT@+^%x=HW zX~6z(|BerRH|-h5@#Tvvld`9jqFducnd`13qR%(v2Hft6?!cn3$ny!mii+gr`<`In zp0@3pU#0jKZ}BWOD~+EwVd!mhr~YY`@!tpqHWw(J>Izb|rdPl%fq$m7(##-@S$ z#u_51<~0i*m^w@*`0~%S4p`HlKU20zewllhJkGguMrx_=`iIRlPc8s3qT7se*FN?; zPM%_M7htcu(I?2o#Bku{o~s4XeJvBz^%yQp@(IB%C!T>9Snm;3$r`pUwGa;C7g3$KUEX&_k?QOg!n?BwuFLE?+EOGo@;v{XZ*GB4bW)P8U+e0y5&O84j;BgnD_K<*mPDh%#d)NIx&NS)1F zuHdC;G;}@Hvl_(;RS@h8?+ld7eJ-_#+E_HPG8 za0y3FB;Dza{I3!8RK>v3vkn-@W8%+Rg|e2})+g}$N7|{?XUA)oCl8lV%`7XeaUYm! z*iNT4HosVB5p^svleF(IcAmJPlvA9ZSo1fnP!4m}Q1susDe`x0b++2~H2%ZM zOK6M`ep2?5kl>4m;u%5ictm`f4%7VuWgs0WDGA$u#U~L`f#wk*>{lR$zCvbv-jYOq zp3c^lK4!Gz_W1j`u#v>;w>%>rqTzdNQT5?1H9TQBHc+W~KPSgcqL6c7=_YJrol`U? z^tA;Zo%e{qwjhmN3D9gl;PB1P$?q(`|Bfd3@K00ZyL~nG#ZscaB!Tt6%X87J@H)et z8uK6DM?}g<^>ngzR{8?9SLb5xCbTH_|M}ME%%t4$jBmk;V)Avqbak=oVjbtT51<#0 zjLeS!LAb?fLQXohEXeqI=Hr&aDJ(KkcBMy$`uS9QaiO0HKdL)FNau_;q8Bk|UxF{; zH6|-;3ho#zcb@3d{wa`dcO~g!pfxD9(1>uS6?2~?60@jjpXAFX$1p1>RyB+W?s_3a zVNBm7Lc=grO}E=FjGtx6-iPwmFv83gE5vO^-||!Qv^|Ud8U3Z_)DJ?Nn~_7!mT*uq z*Bo8@H%eNj)NOwqr1{#jw@AFf9r{Eog3Ee73{M;CxC$=r^kol?qO0=Q7aP=nXGnqf zE3)VKK7ymcuBxEVG%;TKJ#P!O8R@5`FNXGAP_&r9pL^c;*$UG&Rl!kGZcQ_ydT*Ti z{td&gX7XJx0_T4}!z9Q}1B;$nrH>9XdJW%9#TfmoAWnyiTu4OhVQ1%*)t^kdbd5rD zbM+2hY_myL`1zg}e+nFfYX86^o#7igA*PsLNq73m;!F63gO&w!tJCd-?zLts)dUtv zt?(UXb)70$U)jcgdw)qu@_j_{93BUL-Tm*5tv|()UxfgK`A4lXQ8Q-YK017yKy-uO z`Jk5?RsphF3{nc5Im2Nsf2RsKy(maE-7Jyq3X^vxw&r#Q;FQZ_$O13FbrZ(NV19y= z(@nl|tlcFKmZ>w^X`E~OH=E&zb*i>$x*_%k9^Gv4bsHqE%zl;8qNF`{KA= zny^tyBr75t_-D1KS;9Oq;H5Y-;dsNR)X_$H&PKz^L<18TVv%?{(?P$V)IRk`Bd&uK zd+rCv{jHBr80wezV2`i5*r<*Dvz!3JEV^Je*Dbmh_Tk3H>V}N>(P3I}_Sy~$VtbCA zODw{KC~N1ud}{&4Gwdqw)7Sa5bwBlIhRN8^bPYeBbUvTb*{{4VnH17;NbO)u;lsl- zWCBQU$mAHOi~U)@a)cJ!?R`~axy~l1;=Yn+lgCWyAoL*9`9{TZ$wQ81MSq`D%tu#= zOfxfl7*>e+K3Sx_#W4zFW3@d^4Ae~w3^*rnyJrfFO9W@Eb9da^x7beOtzu6{GnMF# z?eCNuOa$-vC3$rJc(yk|3)+x3 zsiaV-%@3d^ri&0_8AaEx*wFLLF^mX_rk{a454Xq_kk{JinYFCd3`J`qyFLMU%>TKsatf><{6bWx znQ4g4FKU(dL#cEP;2kB%U1$^I5alLq#)L=s;!{m-A|v;v*;^C>hR31sfs{ zdo8{cjLPW3^;zC{6^bm{fyf@W9X|C+=zq{U*da-NSX3%KI4jffrQt*yApm0vlm7GpI`LZ$`RJCddCz__L#e?J|gv! zY5WP)yzXNA9)guESSXswJ{BCX!PAW3qoD} z$7h4wZ(r7FzG=$%KU``j?#ls{yrC72S%_9gv_Z4aiE>F2aL@%y@cC@q92<{D$29GI zNxgJ=Z+oeudvL?HnM2LA31~Fcz2jMh%BDa@s6>QL$ZiiH4j6y{be~n z6$ZIon0K1M$ft%2kji~{b{-i|LEZ)v2cgK0l%i|~5~!GcvjvWCCkTcUs%D0IWP%-gIg4rdr9TjQiX@^rO zq5!vIevgH|nTl;BbP?2dfMKKpH==Eb`E<=c`b-jfwZnsb&TR346!sE}7RP&SUR1tJ8zh}u1cld1|VL3uWfW!e>Q!gS5IMgz+dz}a(w12z9ipDOP&)_H>$z8dKV13Y_5Z@frn7O6*Cs9vLu%3O(~|3_EZso6n* z>?Mzn1lJw7^-MKB^U`!^l98B`OFs0?pXj>e;7fluIpP1|d~QQ2BQVro2iO-u448oh z>N#bIUp5?Y3#Cn>P-#85vu|uzq;VPmLd<8q7R1qk&xmW(TpjH8Y)>|}wfj5c(0BK6 zVQ0c}F^rnr!|$$a-!S`<|r+}3d=r<*_VPtX7s zo+~W(3o6^)25KAhYP$Q%`z`yR$oT!%1!Gl26ieIJzzZ)4yJ?`s1Id$c@Tm#rD6Eg z%W6_uI0-3=XXGhp#=EaTY5hk_Gue~s-hv_-OAzTkqYCEiL`0(lOBdZ&m@`fQ@(>xN z{E}NT0CfM_MULmUk>`Eift&MDbqAUFOj0nMeRXpIMvBbYoH4xAX4o5`AmVC85*&GK z=|d3DYb8aXSRhTAL}lR8Db-j7b$D{=e<8b&aXd$YUNwjzliNQ+QCqEhC*MM&Re4Xf z%%ni0(5-U?V)Y?kp%d!F!NdiZ)xR(GnfFi`lpNK7RQ66L?UfWOMns(5es&|6hx^q) z#a-~%$-HDZ(Zd7~6AriVm(!os#)knr=^(-~DWSxx*`~>N+F$(DHKQkv3Ml=k6SPvR zqSy~Aql%qFukDkd<_pD{rfhMthD9rBcR_L0G-kSRw+VYs5r})e_H?;YS_}Q71)cX~ za)QfXmki};l^nfcyP!GJ)Akx>`!rK%R_y(g+MNh zHe8ZP1Rf4b-qbG-+8UL9pC~6QxVoUzn)zS~uD)uW50s9*bGtbNzQat%jpM5hUh0CD zmu59yaUpQQtQCd*bnu-b>F7qDxc#^(1`a2KrIP|rZ+W;#xEsZb7-3x zoP{OJ2EF&b+6TTV0tQ*2qr;@gc;fr1xMuCyW)O!2InWj%Ua0%S zKkeAU5e~8Z5Yg0g;#%XJG25*J0OjrPZwRLrI&*2LR^7)TUu=7f1804Km;zY%+Z)>CDM+ z6|>=<^dPsTfp^ai&%>XmsLR6%pmO!?c>kJ{OYcu4Iq{Itb^Z->&uskWzOU;-BA_4$ zpx%hxF4Xmls_Rdwd&x!-u(KaBy+vc@T7A^(H2f;$9soeCk^fnTR)H9Jf`M+5CTzPR zM58DLOq+tTvos5^nkLp_K6WR0Ca~&CY)=0}ajTzXO+)cja-U}tBff_Mz+DezJ&=lG z&)fFPFA8n4mur^z@G7`CVMwdKrXp6}#4AIF9h72rfJ-HMrvOys_=fE>=jHfC^*}Aj z#!NdEl1EDPFh4?X^Mb}!6Xp#Q5e0yM@vQO7QcFLU-mN%8#FMPbczB$`t zSmDx=ja-a;RtE}i@ARy!{lK4+1MY(wwWCzjsQXF`R*2*UiNcKmB76RZ$Gz|VIQQ3_FXx__6d@reGPyE8 z-Ij}U?XbEAd<3ilx0+$K)(q<}k^ibK>j%JNU=w9q?XccP{>bkjHh9#3xNj zqNwj8{SF|JY=bOzfIopf-~jE92(&vwJyN1NYEwDOpo`_gFqH{x$36sqr#$LXImhCd zY3v=&g>&NE(j3<~XVhKi8n~9Hbv;#tgoK=584nf<82cp{_)IgXM=wAV$AHaCmV6JwLXC$IfAL%u9?nvbUUZjg|zZYnHz%i9Aed$i)#>o>Uq~47s?L*GDvh0`Hoq#&O8a(UF;jpa1FWVy^u@ z_mq2!-z(hfA|xc_<>lwWpm@v=#5=Uz4xJf?k$~un>NSy$c+$@pzcwBZK`ZjEnX9O(s%y@Po zAs0rPacA6XYeC7?CFvK=n3;l_!IISv~;Y)nnslWj4_6 zygNUi%IN6iy>990Cpo2p@$US7rnj#Td3HR*A|&KZ6+Gk!p4aaqy$9mhX24gk|BV*| zSi+I#0Pwf!MRuONm^W>6F|5=s7u>ev*nqgxt$L5jq*_Olkd13)1LjVrCswmx3DWKN zsz;ytq_f)w?xi!0V13B>7hE3-7|RSE>Kni}c+mf7Wiaw~L^P+bHAJdcN{ASgs(I8`uGn+MMBn76Jfb>c{p~Q zp14)z0@m`})SpnBtQY1r}mIZwa&Pn@@K?@}657*Ves2zh}T5J_{SOOYwFwHb}TPI-GDYEYSpT|Q!3w$QfuKsahp$G|itDgk$KVLf%g>Kc-s@0XKUQ8x=4zPJO=un3D_s@0kpJxXSs6u)E94c+ z55T0X=Kf~ydP6Kdulgl~{Sbnzp>*Hb?7fq2(zH#}rirzd8uml*gNVd}B2^TNNEH=b zW2muO5LOKVi^N)D6_kDuX+x0`YqT1tv?ONc&dly~+tjUzx^9=YB+caCvMgcp^f@yF zKko1Md(Yf#cX#f+^S*Gn_rCA@{5#Kc&OQI0^VG$7PhG&zAUM<8nXuSl_*SE_QHe-R z5dwpX=3|m<929v3(I(l_&|gShs9V~mu@ECt5cSO8*ScK0wh!t#1ujVqrTVl@l%Y9E zRCckkZLgJkV(l#Sx~sdcz*QIB{x5L1=OYu=mya*r-@IjW& z@GWUvG~phk10_Zc#-u)y*9;6TiHSnF1dKWdyk+l>yH}Cl7^Ti@m-k; zJ@X94rITR;zk;a9MEIJI3%F8)KlhC!Rs@uyJ#r*4!}Z2|#fjn^_eDzOaVoB24aHiD zHMLaN)@OR%)m@h^=<{%0#2<&(4=@solu0UhkBG|IpuqU@`udQR(!F{h6l*x=^fZvx zyjN4(zq~1$CY&TR~`S$Vs)d~w0CwJE0T~^fY+WA^JFu%Vp z$Or0zS@-{(AQlRo)O%!1x1Pa7r9(M;po5Qa$1@NP7>@UTaaM+Wqcf?b#tZ3fSmPVa z19GP96A$j>IZUX@=!LCn zEu<>4SLi}wBduh(9Q_UHhmXyY=c9J7Iktsx+Z0U7Oo*A9wWpv?NRm$FH8vPlOCc3( zw}o=tU-b}*LG;W*6() z?RD4QxavZ`sxGcLrajWWTtF<6EN&nBlX>chA^5WaThpwxf9HPXWd!mvWVBb+#h1ae zlwoL}NnNJA?##&5F11tLEU6@p6K9zBv0Q$CC`n*67O`XMyj}#Z>Y9zU8*6yE>5l22 z>1(N(zot(32kS(iQ3B@0Mk)`fIaojeqGoAsD3qf>OeG9|pMR4LDU}XHBGUGtl8h&L zG_0aQt3W$4NdO~?oCpC&3|K5-s#CycvFc1{ylhV!6KA@GJQT{9T z>Y;75(E+HhCUXK9Jo;n;E`diIYzjOugK3SBr#8_B@aa#v7P}w7hNPf=8e5+G%S!GS zhbu(Mf1v8qOWMwJwN7Wd6*fll7fMx*?{8`vF=H?h}Kef7!HcFdvrg zG~!+v7<V4jj6*uJukuoaU=eo3QEc)&ozEJ{242`F!QHCWOcVGlD z3_f@Q3=z@*r;dT-rk+YUoI>z{@A@3&0;mk0;k)EoR~)Eqitx*AW2_Xz6hQsQJUTlR zexnZWxov1X_)c{Y4tOjg310$SZNaI{wcf>SP2aUrvpYWCpTD|J@<-~Vu8)Y-?z=T4 z(|ceJ^e@UP8Qv47i2CuI7?Mq<7XUR$)C7FjJ#r{RY7V!@-bBgwE;z&Z^*z*)1in(F zKgLb<16P;_E#vn#YEnI)d=Jm`KoI|ZWZr2mASv6h3o3I7akXCIzF7OK{eG{zrsP^~ z4!yBX?!%-4CR->HkCNCr?4b{Mp0?3<^#?FR&@x&c-&I9Jozw@fhKf3>4g^0w5UARR za&-#Cng7-hf-FQJPpgw}`yt#*oB6%QeI@|A*`>zSMy&n1mfqOwuF1dZg1e>u`#f4F zZ9|N}oTnY}mWIq&Do6Z$y=J=NE`ZHC@K*|sS7BqIXhipplY8~~_W`z?JIT#@Q{ zd2toA5j3(o*X7vS)oXZg5Gi5q4No8+I|U-f0`;mK-Z!dZJCWM325;QOC#jRHN~s&( zosgqh7pVWs)P#LH^hBs&p+yr|4PfCKcK z@uL!s2bA|7+qo-(tAO?T-aVCOI;OQ7S4Dng1wD$BYmx&JoTseSjxbu@N3+|*Az0GM z>=2%rX(oalRh;2C+iz&RXbbHSV|I8{rigpOELD0PXihNHgL2X~@R7`Oj$be$x-a#4 zoTZW;#v?W{HV62+FF&qO_l5e-(dCY5UD<1RaQ@ng_&*63uJh1g;!Nt=%$=Px8nO*Y zPIo0>`KLAQqYkaJ$&<+`!IG3mYDDUh)RZv5huZQ`XLcSRF-dY_Fy8P?87Bp!GJ}`4 zDNhy!|N8kwyS#pYKYyNMo_bpUB&~^$lhX3}@4Ox#bSnMx{qlxwAK6X|m?a&bqg^4*-HuN^M1o_FGVhvi+h_Zf zv;LAJ!8Gp_`b>64Vys%1FeiPcb3}6`^-?}}l7xvl?mDi5raDRM(%Y;;4O|YRA=weU zk_}_ zx)Mi*5Fp0EDy_EZ=QuN_C-WuWwM|h2**k5G?7NMt3!xr%Hmys>tZJN9HL!=x3KJRt z1_L1DWs<^{q!q6k!q(-=Z$T1OE=m8mJoUpG=+Q?l%ilR)6{H8WZO4*7S3G!CNj;3L zW}|O-MnuJV<{<@f-Y_ezcqu7Y_0fJJeK)j4i9;XoOiUBnS1PyLxC)zA7~(tc;rAbB zRS|l$!iEWW%p=xwPY{@imDH38`4qam_fG0c0ftyA@9bf?FVB25wH;dm7?<%>szU?i zT8Ny3bs5J=8R{#KN$q(y-LT#N=)*MvG{>38PhyWUYhlQ$-{j(Iqr%ZHPV1s0*bnWC zK({asCdOYsQFimFi4F2uMYH>Il8WCN;SHq2B3>O_Em9Bj9-sC6XWYaogH2&9LhBNDA;A3$DCfQ<)F?H8R%|gR7vmpt&w0 z{v!4U##Vx5oD=8{BlX1W64nK@1=q=9rr=6^x&sB&d+5UqP(RwxvXZY#?%A*h|D5(3 zQW@H+LpVTLi3@5Jr)XP`67#r{5D8Y7{GK~%SDCQOu;A`V{TLfd?&uqhlWd992I@us zt@&WWa1}HcwAbxDd>vUAVzXxKf3j!DsU1NGPo)d1TG^;~i2ahceC)hN5WC$1xBt=r zVsyj+G>FqKO7?vD;7GKuwk|EF>V$8@{nm6n0bbQq1{t6XR#k944^ZZTB@b1v6*vG@ z&l1!)EPQWlzfkvN;_BH7cXe4F#<(IKMuoGPO-fHQF-#?0jEQko8H>-p>7vnf&z&;D zEC*I&Q>XagR3aR89Hi~we!_UwB@U)))e&kBu5;sI3~)q6hG^Z-! zSdKQ6{O+1Zi~7OL0reELgF5is_r;%z?C)WmXj}U)dD4L=IrYUK+pZovH;V^&7;TyZ>F(IuoWV54DS#a58oq=}yl8JDyS4FcX>vTy5ou4;t-tSFabx62(a$ zftZmPCr#yodwNupxchT^QSy(f<^8{&XI%C~6it0h?E%0*J!8QbIZK4L?ZY+v_KdN! zR^WN78bUz%w}|1HlqtULhQ=F^F&x3K&nu>F`s2>jsbEzsIs!~`zE35tf;NLjhX?og z5n^%hW1OWH#}g&{sIur}o_wDe5AUh^#O3o?FFWCwTmb!>@;m&jHA{jg7_{&EuDH_N z=#o8CGXXens%#DF=S+VD=OgpM3F>s-Bo{tOyz+jQ4_%28SnnJtXiPKd8*2xAK6A{ zV^gpJjcG(P9qww{){WOmUaahxuhdiPgDCT8d!8Thg8Jk4{Xwdj$E+R2bDqtD+qM#V zW?S^-5GFE3xT>_;>`^29%G~^Qal|$z)a_TZMnlr)3AxT@rI4Sdi*i~|I?49J2!?lS`@TDM(yA89m@P3|oTi(J(LOOtnS+dRQYvY&>ruNDAE(|?!(@b+ zD`W84FOm~_)Il>^h7Y~L0av-ACpV+i$LCN6=D5H{?s1^WTtYARa0L?f>Ij`C{ z=~9V7x9pG;!5-Nq0cN&m4*)t zX5XGwk@B93j5DNSwX0dI0@A&qXA17S&7q#hbm>F_T#zQIs2o<1Gf8IL?AG>-S){{$ z=4wyksO+Hyga`X>qPmiSUu}MV&n4~aWJif+rN}ZMsC~%q`2((oeta4y=hS`4yrJ!Z zaZE3+f`)^Zd$W8k&GoOVgI>ryW2zc@@f=Z(!}Wx=$I zlIkRJ91EEwF5C++F=2!&Q9I3+54Zme{qPC=xIbhY!#%2lH-oDeOI0GuC1p|q5ni&K z?yVcSRT9E|qb_luN&0qpKs{55tL=LWi*x1W=f~yedAJf!mkrPyue^FF z6+c?1Lh>xx7pS24@M|aU$CTr0aG}Dn`p)bHl~%+Zse?S1##iz0L=*YAp47x}oNw_-RA;SU`{YyEWcB3U z%A7&@d2(gQAwmXg&+K$PkYi%HaaGHntKX0GX6dR(Ia~*|M)6K+i}8#EWn2O^cHjG8 zQT?s~q<-6t#!YFP7!%4mX6*M7QqW)Of)4OoaBNx=8=J!}dJ2T3_uQDXcroB9KdgcJ zLDASr8XNW=t4CSqtIxktmWj}nYqei`^92C!VBQ1=Q;(~l?V$1AEL=-Xe_tKcC&L{| zgbQGfpJe~^xvi3LhV*1$igNaDW^Gd@-NP_XbK}~}Hzw!LU08v~jg%i7^3!Ho)D7Uu z^bfz;uI7>@QgAE1hft1un^Hr>E>ftsuWD)^Qk_~72I9Baux0{R_1%s7P7QUKfvr1r zKz9!t+Ik~imG-O)cxES)-qA@1jCcpBE%NS&^rs#_Oqz}1@*x^KrWCPWO@OrNRYG;u ziv-8@B)|k^k|!pA5ae|uB11jYAGNoktt@6u=L~B_?RknT#gUekae|1+S>nS>nBZpu zSKBoHlf7xaRu0VXuY){Ak_x05^6ZJKCZ3em^ccFWK{ph0#z>8;;!|mKlP~(G_8)Ht z5p_w$Yc;-mTN9Xtyi0vFI{^sKWD_I&r-oQczbq;ux37*9^ff<&PwUIVUzAZ=l?!dl z^W3KByr}rDebF@CUQ?JET-Cmus<6K|jaNm&zB-5pDr^9G7p;D%D?Kw@Yq_LeDdUrx zx%4eGk@jdXl+n%3sol<&@y1&%)0Te58**g~j3d-(7&zmKRVN?)?HI0>k#e4aQhD?v zEw9Wq!87gk6v;=&qoEJpt~fimYC<&}+&^rl>=28E3Uv@iDj}>3qXDr{+oR*yihdQRmUR? zI?pjLnH}=8@_c$}Wq<&}o2an3hk0WOK+@Z&7t2NTd$knfmHKjA4&|Ab&{fjRx0<2+ zjN+;pJT|O6pf@eoawOzy2Co9i+aLt!VxsKXZX7Tvwkh2N+~Sh=M$?3WN?EHW^Y;lAFaU!UHxT^+8SJ`H4hP)Ua;In|-PU1=;km<@1rSsL6X z-pu}xN7z#!p=M7Nbwkw4`0fvuXz?&=KM4nPdW+3JM&JD@Et(^JyzmoW-l$bj>#6Og z&7+)n^t>0$XFF(2!bj^&F<}j!DUoD5v$#4Pyx_Io1Yb*YgRAQx9;}_-Fb4B+;+6a) z$wa2HTHd3>$7uOU0jO8RW$RS0TR?KCsx_k8B!G#5o!@araAEox{%K5TN9VzUdeXeq zsLlaZ>)SS#CpH-1$EtAJj?Z?W{Y^s~cnn@L#XH`(KC8HD`WwLuDopOSojS<(Z60^c zUa(}pAE`I|+$V+0wwmNjhSbs|B%(>YbgJTIOa#9e}^`wJ(91TBfnvZ4&28cDPBV&au~bFW{>GxeAjN zn-wn1I%yxM9X^La(qKimw^85fQng1-(L0KKcE>8xwGOnUeV2OkpgfEPV;4g>x6hvn zT3(Hxp4lj)&p`V#zUpm>Nb;BK3DxRer#cN$;62=HnDLEa9<=6t)C((iwA$8&3PelOjD zfB`y5@R*r|dmu`*3!riFeKoM7A7~@9G59()9ZjB;PWuS(#70EPxRtFO&JCYzc@fE= zO?}M`;t8`y|IB(~T=BiU?wt;VpgP4aI`g>NN{2o;TF*7??fSKN{on^`=bk}_ovT|I zl0S0WA9bz>5@h>$ko?##`j=2IpL1ci2MUg~BW)lE5X@Tot^IR>u7XDwW{~3wW6=3Y zZFIn={qm{@UJdUc*KnV&@gGLm%D_2PAbWdxAOJVqDzlo zqB42?6l$Ri(W_*tQe;7^`mWEqK+nf#;c9qr@as<;I@H^>t9EKo2mbYC43-XJppIwB&J=lC4xmU!yR>mQ^Xz2C zb8+3O&W_0=_p%uFrHs!^8NgB0tj;A~K<=M@da0LG4KUCIkdv{rT*AJJq+uu{x?%0I*9{1u|yc6%%GPg(B zs3Yo%I-~ArBif2KqwVNJ^dOy;A%T_%e_zj;Eh-Qc(CDt`H-$ok{Y5DrYGgn1i1+| zwg4d5=f+mG(x3Il%*K0U)Q-Rm1K+c=4^?G7IKM?~hXUSImiv`)3<7T4W*}f9L9{{O zU-^+AEnhuySNYnH{djrmC+;r)_5PnJr+)V5%Qt@Em&((>{Gsy9ul+{(pWphO@_+aK zUOD{-A1!D8=vevYpFU8|{@I_GZ+-j|<=cPtH|0Bj`>FEm-~U5-?lTXU=RW(7<-4DI zq&)vmpD)jU{?W4j=)acrfB8aL|H8kQ7yj+B^1@>a<%NYWmKVSHrSjsJzFc1X^5f;D z$Db%KJ@KFAr6(85%Zp3p<>7L9d1bY{vU(Z}d(^f~$-V~DZDm||>ojDHZ;3#kvI1Ahb4g;5g)4*-uIB*>}2Xl?5sx3#{bFg0`>AvZ&@rQaJ#3hRr%w)>`71AF)y6*@ z;r9}e9iOR3P7Hr)hj9iS-$gkpDNEi{MqvSKR;Stti&0F8$^Bn zzn?A_zInF1`rYTt#`*K*wbx!N1=l#g@#)`j&;5H^W}JHYlgs%s{(k;mJ|=2A9f$Nc za36CJa}jeAa}#qEa}{$Ia~E?Ma~X4b`uD%b-ML5kRaE)D7mLLoE|!bMLh>W>>tJ9& zBF0fh5n&J!kwLC9=)JNO5fycuJ7UBc=IV8H6d83`UX3pVbQpBJJ`i81BO=6iOqx#T zLEZ^@laL2_bUK}+)6`UT;%rWR_HR?aol4BiS*yB#=bSoq>eQ*)XFtFDgYg~TkluBA z=jq*#&4IabE~Gh;<_1MMVwurW-YtrWwML9Qm4>)#9M=p7)CW_N8jbh7vFC7ZGfq7D z*x0G1B6pK3(iLzN9SOYOsH?G_1z>!tXr#l+F!aF$)|)l)j4xv5T}zgZP4K;sZH$wBOBmUr=L^jzuPj_%o$-gSEC>D{L}kmf>~6LD@VNpmF4l{9A(QA=|u&86-^EX$mJ4}USy zN{CE4V_f^#!^By&W9hy6K+GUgSsPYDQr`^XSmbx94>{c!7;r!arj(IQ2j06$Jed2! zbJJuS6IF&ES&=4a*~0V_4_xPL(@U6q&&PA+*ZGMn&-po1tKAx7mF7;ILywHjrPUw$ zNSOO)=cYNvfMvQSJXJ)5RUga%*8`otc^>s}AJ&50QDQ7Do zTQdVk6PhA}JJHh-Ax4p2-^3kH1qh)0D#+yE{gSR@^LM@*zna@2W;jF`gAkc@z1$i4 zTv(6$_VeL77xA&{v0uEmXH4BE{SCnAp4;5YRYXCV*Rj98-<{)y)5=2dnsyeL{W@~ z1+RS7n38wj(2)1bUZO|Ad6N*Z*nQCZg8DA~klp86;-cMOo2cNtn>%8g6}VgePIGO` z4}TOETyj~OgNhr8xsD8jmx+3+sm7*NLpi>uBAR{b*8;mbMRt-K$o66vB2LKi7n7O=4oVTe^V!;vxHs z|L#86&t$ZN`h^@@xw5`oB(~ezy>eAjkF3uT?-es{jFZ ztfP3r-yPe0+M(pGUL0?_dbUZ{A;>nYpS`y`9btc*PorNQU}GJ@m&Xp4s+&f{c&F-dak{R+lq7YIS4`qApjf` z))+-HB9iL45CCu9Ch?(OS#OWnZkrNKIg|i>pHslaExH=qmPdb8+MZv*&30-i+e^-u5?jYOnD_F(5B}~} zB=5?=vLpJd%{%`>D!o&oYmdzc5Me>u$t4iP;;R0P7P1MQY4zxgsfUPIO=zV6#)r(L zsK|7zduU5N#0cU)ai9!HT4G-_`6qq77F>FHa%yz>?O^kZ2%ay!LtJrN_*mB_8s1}$ zbExCdGuni%{9Il4l+n@Tpqq56onkeaDMyVHwTPYR)5W;jmJv+>FZ_(i5e0X7f2+4u zl~_$b{)D8zx+XS0j5sIeJkxWqA#hR(kPCINJ`yzbocyMH1a(`v_`6oJ=?rd%`Q_-9n)uEw{Ij>O?UP`FL$_q6l`2Uw zg;=xZz1w4PYug^2#>MJi7$pk#k_qq8OC2nSQhGnny*$=X)N@#3J^e5Ez!bl;ZVfM{ zB{%tPr8z6agD_37-ZPxc#_30{K^0O-3}kxDBY+K694=|+zF3Z~C=RwK#T$;OseTaD zi->ar6#<RkOfV5DUXp<_8qLOQZn`;nDRYvSD`c&D9;ZsbGG4aQ#o!UQyw6&C z-mN<^NU0H9r`o&Jvs~auR0d*b+`D!4M7JU-rVAeLsQfKmV-D0;Z-`2`{0Hmr&{;eq^Z zfs}Pl?788#FI!@f!*jg&8vMpq*Q45_cky#C?7!n4#Xe3bT^a#OL@}Sp$o+Diq&?1Y z?%n~MHj_vY;~&He#0H!be7EEnQBdjdiZo=%4bUIYkFVi-by;j|gh?0mB&ejkYE-zE zI$pU*uY zKI}WVO0SEDcdXLfO>-CtS#$?%K#wyMbjwPdBJF4fF$QCLE)6pZZMF2h<4a^>QbE-IU*z zpiCj|cVqBd5zE7eEW%kTQhR)>O4{i5IlW_*=5CzBpN?~RLX!aiTut^HP~*@e6X*|c z+t4EuoRGR~WUbPZCP!KmVb|STf2-Y!otQ7yKPAfx*}<$c!1qCx6+IBsaDoF0XZ`~6 zd&`$3g*yx{ec`P}ISOx_pnvl}S8Zol?>Ko35*5bBKUQfDr@1WLlqw!_pX(Gw zKQDwwxHrW9B2lrCHV%116RnA*buh7mSH>F+72tW(V#r`kX7aF|;I!;FdC~|d6j`U) z=VfnuhsXTy`8rzqB#+L<6Pi=v_r>$&MAQ=-Sxa|^dKJ(j+yu;T!Ss(+n#*G7vNC~l z{V{?BaNoK<%tRv9p>C+B?wE6PDAAmQ!M?gvRhY+pD@~Os#5E-xWL|jMBHtjK;e^YQ z>!FYb;fheV3C5$-L`UgrVe)*ZYaI1(-XkVC{H|E9zN>&gbjfbRkI?Geoahz)wl{zK zJ84dnFkxS_tak?(sHe%pKHJicHLgK>clxq9KjW0A#Rk@E@k7K#7ZH$|p5Y5+E7ye> z3A;)EF9vn;D*-D?#O+RIVILSA>(wyXd-OaGXHB(_HGIr`t_$3}<6WQ7)UR*%+5b#w zE~h!&{P<@UI6Z?6I4Rk;lBE(JyhGkY=%ShPK#u2SeWE>1>tOE)M7##aW8g^3Ip*n? z2hcICAq&&&%6;h0fb+ienztl{Wevni{O^+G_d>6fTMWy^L9gDew9nmM>rq%+qP4?9 z>9(?ZVo|+gmF9Aq(|~XSS45~MN;PI88T^KiBNz%BM%ik6B+;JkxT|r`JUU)HmDV>< zS%&5?vyGg~_9^G)fzfbH$O?n7<+?T?k7H&PZ$g8EHr1<}KY-fPHaGwE<%G68w56cE z;=a{*9}cyEBj)lT$7;i^x66kg=%K)#qYov;G`ZGtV*<0mv~%>?f@M&3k4m&>#<=lE zcLRfbd@R!;2129*VL=CMjAuBHF_W!*J&$$hLw|c>gpYa1nh1v)quoAN-$Ll^o9Ed) zM8)e{c0`GVRa{{FW0mG~N@y zJYu5V*K+4kFHv%ERK>pwEV|}cdqqtLtdD!F;+$Ta<~E1|I46X-;e$`9M29D5iaS^v z%~WJG)-kQwaH2uo5UlIPoj|3O^j5bp)Jfz>RXI3l7vTmrcvzz>yY8>T=&oU}3Ebny zV-Xt91g#ay(rxkzhr+lTXI2BU*?TX~ai5XGKUOKVSjvakARzQp>=^vaHOl12s0WA| z17TF!&T=lI0P5y%%2LpuIR2Q}@gInnxgHxxuX2?DAtGD?p_R_(NlY`qJv_L)ocskr zxAy2~KG#h$gK|BMAG*Xdf%R+rpnV2Gb?bV3p)2LZ)1EO-ZdhpVJH-A$j#Zr7pCx=u ztMQ?ieKHedH0UhatjoAULd+o3bfX>#8#7jYudj9T(IviDr^T{ZE=G)yG^*~CZKNB% z7OhRHZ{zkb!2~^SrB7RbcK^Yeuv4k!C|D}e)Csw!njN99Qbi+iah(V+3|i6sj6%VQaCh=jn~QHg^1P3eQf zYnjG6s|$aw(o|s}bh}rr@`y$b3t`oSsWp`G-g-3Z#0Z#L;lbZz6RV!HQ~clqeb7H;9YH4>S(Q-_ zIw+>Amsmk$!9hJKnbVt`Yg!^^pY^8+%pa4<4I#p7%AtD8+qSOlwhgxD&-dpE?pjjwXSgty!K`C+LCEo-Te^Z?I3jcwVLrGgi4iRjdW<8|$ zhI&TztY-#x+!Mdy72h6=<-!i`482L=K1JdO$qmu<9uAu1enhUOQk>rGG{q9rUCoCk z=!_o2jNRJK~ho1%3W6WgJM?t+@WZVxXd=!SzcYO0G$s zYl?E2@eFxDQ!&=K8by2KOT;s9O~{dkK|vrTi4oIj1D~4M z)d=8h?+5L>=X=(os$rdT;~mwDcm@)Uk@-LX*3g-~ts=&*5 z+%<$?z46We$<@xD{DQFJhQCX|aEbdW83Pa6YIlhn$~i30;;$V(RBFsXIoPq<_VWkB ztkcdEZbcN|SbHE`mR}{MDrraOxB$K>nC_{_zQK9rAO=*tC*_uKJn&{md=go@95buo zbVedYg&yM%QD-*G7*4|_Ju}V#@!IhNs0KtOO@9gJ1FRcFX zN5k%wt9-};{B4|b;o~2wq!>PN(cgz^W0mIkz@*6?(#4wu3Iza}DnUy1;M5KAj@Eyi z<8d-I*EfjO+;;n@c+)!(>j!xh0nu5?X{7Cu&ci)F^L~XFJks6c0l^L8+Qc=S9d<2P zSOPubNyX)<=Ygl;=Fc`w4vYSDW1iCk&wlQhGIw~{a&f%1xwmpfa{2#S;-TL{$i6$~ zfWbXh7^|WA3({O~t_%E!`lbMu25mi63?SG9+P zNcup+KxH`UKsP1FkmgH@h?~%B+3`(HQ4-?moU_kKafIC{Udxdm{rVe+KUAGGS~iEp zaE?T{=AHM_u{?OYSFetQ>xl~a7psem9*nUv@wR+Cy<&Zpu}a+VoEMw}!eNSohzo?Y zLr#p>lMADc3IxndE5xgO`GIp`yBpo+|iypjlE4|c?_E^5<=wfg9GpZ!gc~bVPxBO+{*#i zQaeXuEfL$}#9PP9-9J`oj;Fbv-W9C-me@stmc<@sZbNJXYqGO6MscsfoIv6d*NKI( zh%;8K@S^yDgIc_wBu;FT`=XK_O16eb*yuP@g)wFjmIt_7WO0Nbijg}=!J*xT*&G_n zjvs%jM(TEp!?GjovmBH2&i(VS;r1^l!o~LeAvZO|berh=In-JNvi?{JkYAeXolC0X z3eKvT=$X}<|MFKBECffY@_Lx<+%M;%_}f0F>9Ax%+RE3)?_@$>aLHw1(>K4JzV3P- z{o-s5j4(@_g!FnlXw$C6qs>3Eg3JNnp!p0K`T{Q(<<)c5a&qJ~b z`X`(g7G3eW@c55^67~%adNVJ3^l&xDsT^3)-s&f8Ex#_k2V_e(f}OLEd>auhi1pQ& z5n$PYU}Bv%XaL2_PAaJ>PsVVc3TR?s6EiCu!19_HI-tsO4l#jb1*OeKSPwZb-BX@G z`b)39u9PrT_|jJ3D11s>5A3dRSQNXVghid~JtQ61;@7`n4E^$ny(749;TU_YqJAr@ z&1E^-cYU~Oja8iMZ_AbH5b5B--Z4ppg=+_C3Iqxc;;65RempPrraqa&y0=*o7Cscn zyG(&i0+klOy7Q?RO7(JFvh}`~X zogNll`M<*UU;HxZRlExHI_?QPUp>cTeFKAktX90|hHU+kGuGD`IU*XoI-xE&V3Jut zJLo#qzIQ(c)^R7Mq^SdoUn}0RigW!RGdCiYQQ*4mwxFE?eONq3gBiq1DQt6KMx<5I!+pXD@xtX~|8PSM zMipp-4c7#wpqDz*ezPuuqjR{{=Hilj=~m0NpS;DIOtru4UJIAcbnho*8HWWOU}JJq zr0A62j%Myzr#?G=`QI0IEm|CcEgsbfMlX*@;B_^#3!z?}Ohb0R)_&p^n+VB!vt z+*`MHw(mICKd-2CkkOgRhWUP>3xlV-3M*qN;|u7A8LHD>AIs!Kur7{eEBvT5C>RDR zYEj_*MWSJmR>-TZwfhqW{ktOn>B-bXJjyK;m`a-Yw|kaYu!-9C|-zSUe9uXU;)~LlbqQ8a-JV7B6wuyW10KHmqcL2kB7aF zJ(jSzx{cNJ1h7}Y&T^|3JUX;)b(CqYH^Bz*F0qd_L(xq|3?+m);ANy9pk<^$%>d>| z)ILLT|H?$Lu8m~`zqZy13x?vwK>oGv#{>dQ^TG|*B`9Hx^CV@n+Vq8&`OS% ze!vnYR!(e?7(#VLK3f(IJkU($0999d8*ycNi z0R&cCCNU7z0mK3L=AHbku{gN(U-(kkv+mJ?#oE<)c_EBF7+9X-oDY1SG}mQ(G1gs{ z1|6{LX2_&vrSzIcg61hH@cCwqGSaL~^ij&bDxt$e3GvC?B$ytb-mpL_L{Md;{jL9g zUjbY13~KcwCwP^^4nRL_Bv{ZvSRigDED1kSVj$71&y8UEl<;=JD_<2h-u2ZO?z7n+ zlV@+)ttttN-Y^9m}AgaF=?2-Y-snF1++ zE)T+O(b-J5M9@QC_6tzB63=Fiv988F~ISQ#1c@UUKg?Mg{nSM6dUzWAX=7m(Xuc1=aFk| zk+57D>M&Kiys2yYa2fTWbT1VJjqocFG{dk04{Yd6d4IUi;CxC;w)%q~j#-jchk)^} z97*7Rhc)j_f@O~tV|Ia=#rz4jdWh?j;vd(lFfv9|4LSYC5{I>2C@sV~`eEQ9@I?e$ zDGGAb(dBHkE&D7hAb+Yy0}bH+lj#Sl%@!yH2( zE(u`6z#`X4fc2V>-kb=RLzm=&cfoNd%(goO>;S9qTiP4(*?9rS;tT_ zQN1L6*_sH}aFZniv;;dXoDAezJeZY@MMOfw=`geWrGoP^FmhfvENAjmuS-KI+JJSw z8@-4R=9wH8Lvr$LDHIRN(@4=z559hwTNXYW<4&8pt#`dU3_r4>%u&?u*X506^jj(U zn;cg8SQ$V9Di>`!eDWRYj_5j!jR8X=9{9sOv5`?}P;Lyp5Gk>+oSFWKF=e@uUG}A( z?t5X2DcN}(6N2U5$|tRd06K`23mMhquw=5TN>5H=ercJi+|EFp3b+9{3*#e*h18g* z$M1~_3p=p;-aPXY)^ zUBnlI;Ti2oe-xbrI%@*k>pH4Z*NE)iB$Rycws2%pPjiYBg5^sJP(yj{H*4F(%9~M| zRzh9TYFmR;E1@k~l5;le+Md|*J7w-k2^bQgvd6eS-dW9i_{Dw^3GK1Ub%j*pz}jwn zs92X-vS>IlKswPMI-iaatYMj)GLfJVgVm>(;v*hN&I4y!=h#5at+TV&JRdY^bpAP)lDn%a8Eq2J)@jd zt^+V0^=%X!4Fsr*JA zd5;+(JAjk5ITEUoEsuK>-Qu`gEl|#pbxVLe=%ftIX#uzZ82m&LmU?|U`mDU8oN$TA zNvW*St{iJ16$`D%T$3_UF*%MVcXx)_7?|zY*W(2V2cudj*f~;P>dNFgX#;IT>F!zN zMjf{zzm7wwAF_rztQ=yR-pJsPptmq!kP$SCcO~sN+*qRM_wWT5g$=je5%#R#P=SNO zzIPlw#LdfXxi~D{K+?9kT^d>FYQ%zk07zs)+9LPoy@?Vb=ax(Gv*Ak6XU8K^?(OL3 zLGNanplnNgJiuY`0r7Igt)Y-mdG!`(!{s#SH@}x$Yl(z9XRX6y%RY#akLf&LYvbTF3Cj9$RI6r%_NneBI}Vz^VkX?w?a zQrtsFy>JX(M$JbjdLk(}2Lc98OBMe>Ifacx_7=8D7+0D25NV>R+dBchJ~Q2j4&5q* zz3K67w+13DAT|toMu>f?6DYXh?0q4WYTmgQghxN~xdf3c{q`xxDE6w#x z_t+4#Xz`Wfl%h;WQB#L)q{TO&hG3La^9l@%0r*K=4-zm!EZ`)Sb1MD~&zaO$IK6D( z*$xH(zxM<9IlP+9bKO|!Y6jDG>xX64f#WDey0(HmYGA)>I7}^y0n$cOnLhW0=Z3W( z`*;{$u_8jo>??JsmC_yfU9EKVR^9UZ@whAH-1cAmsu^>utsyb67_J3v=%&Q#DD7u@ zEF?%400Tu2-Kdu<-lhN2Hv#aw2l@sL&V}4d#__;)LC*0y>M}rSGqF@CF6vAF;9;8} zl53^la->psLmoTh1Isr(G>7q>y3Ufv`hZR=??wtm`GM1)6ITDjhr`hP1(qLGeSM!l zK}8LYtTu!)A(H8EEo+mj`7{faZ$2UMTG0nC-fn+ASa0A1nk}cFwNp%C<Q4-q;m>-MW5dd9FKjDQsE=|H|-N&#J(glIU3K(deIBs2! zk(s(vyx+w@?Zdt?M4r`T!i@HrlnrI)goS~38!QXOBu~gnPmPpl%-+?L8P{13( zk7nL|9jpr(a&Qc|THxMNa!I^chwDKtmcCLy{3do<39m)O0=}SHj3IQFcGi?6`Yn6= zUxgjNn;xFnyVp0i<A9GUH_)SG5i`+-}CI7b@&n7-SXEN&4E$K8&D_M-6U z%1ZB(&^Z&ql5r!q3>+gBYe|kn3`__L%ieO`9}-767I4wKJ5-inKk|a#cg{`hQaUtI zs%L5w#0MMVzwMSl#)I4${j+q~C?nhpbYg$1`gq}$@xmcl^jc+=-8b->4J)BhKP!lZ zqIJsP1`nLy__eQlGpjiKY{1St>fpE6eZo2hf`yL*e>WAbjTk`cCR1Q?LQvTL>)(jz zhjFMrZsl$cej`k`{q$t!c8%4>ul`#Q$6p|e(gF-{PQ-7b^a1xBF{C7VM2P^W1ve*p z4GhJ5T$u>g#j$LKNQOdjjh^c8iiXakAbyY>mHgHm76~gOZH5hZe5EwB0>>&~zLye^ zl6DFSTscI|0fGhY3cs^Czz>ZOuvw=*J1n~5b^8$%w(oF=K-j8;CHZmJ>-$^Tx;p<@ zZMgl*j8G9`g|(&P-5H5+890pqXA9mO`v7c&gw)vI8p}nAU`>u?y--)Fs4Lv{pkorG z#(C_k)LSEf49pfYI%Q~t2R!=O&zF61d9H+uL2)=XmWr#jg0XXv5GG|9PvkwAm{=(= zc?>~e=T7Us^+S~WV^~{<=^-@L#_G|jp9gaQm~#X*KLy4a;LQOOM9Il+59$S|o?2@1 zkwl{=M?b6yC&UxWK|r9Fpq_)r!9LYN_(F?4t4i3u^Q;K>u$12YC ze-3@r{W3ERU|)o|D3*Qt+)?M;bWqLKIf<0Cn<@QiKockSrG2eaPUx9=+=)lW3kUWe zG+Yco6~S79vVy3!AWG;Q76u(uoVpf0HCc2@{6~N6m%ZN&7L^wb!YjJk{h&xlU#tw- z74XTCP%Ze22=(%fZ^ba0O`ZDSIcA)zZs{xKrpwNiZ--*6(p;AX&L{-=ErbNhcEsm4 z&w(hRULy)c?nTj3MMI_krSyMbMx<3eX^T7e!U(_50w@u2gNT9=ZO8jHBvEumIqPwW%{2fI9}GAO-a(ap_7zSwr0eDT#iLbUM}1AZ!&8?@3gL z_EaHQt@e~G>YgH+k+vsu{6fdkVRQ=A99$Z5AtGd?tywOT#mZquu88YhPS|{T?EG*z zhFe31pm6?$;n7b|-H%B%I*PuSM5I1aD%y7FhH9kws%6=%Hdc#X^IED%bPJyBOTlp{ z$8p?7X3#k;^STV!uVEONA_VKC_7xeiqN8Xgp5dlKnN?Iu!dqk!{31>YkuyUE=%6M( zTk@duFS^9xQzge;oR>eLW~~GT_5vrtg3Cxk`JD6o7lyST|6~|mwk$lcZy)+yF%yj6 z`PLpQxBnbA)^WstRv#W zoz66`Na#z z=INJ{!;&)V^hsk1++B;8bZYmHiB@p<#Wb5RdEZynu}X71&2K%<$# zJt=Na@U%z0R0iX@7d?r?>YW(NLVBr}d%pMa;c*<^?kGUFWIi==Yi2b1+;h%LR;&to z7MH({L*#K~X))Wd9Y-aWaQ0cx53BzE17Y{twMq0V=O);G{qP!p(0R?o52fPjVIQl# z8#jfyFFMayyB)y>9HW~-Cb1e*Y9y|P8mS>LmH~(0rIiBWv=5jz4j~s6Uf(Bw9j-x&3 zk+lGNS`(3B-hxn1bsp$%wV&Sehiz_e?@_VBoknJjA57Wz2((=r}t^>tA*qRXr5>vI2rc zfKVFtn3ekao_vc9T?8eX9Ry8F0y6l5fJmE!!9YP>X{+JNZ@Ku-I_=C9h-*!xni-iL zlhRy39?-Y~vGwphm$B7J^X?B`b~peZ^5^lxBj5i(n(JCPjR6gmt9I0DD6%nZhwBxp zAGSqHq_mMGPri@@Yh3U6go~vp>6nofSk6*c&GZad3uQoKAu-B8!a&#nkAZ|0{k^9~ zOssqS=5PM4>q+hR)AA;v@MhYv`t1|9{T9(9!n%n14iUZ5Sfx3h=K6uP3YQ}4eHjl- z;*>|15PpVWeUjG_4#+|?8ppE&2%C|b@5&g}`At z6sw#UBA8$|yxDR5gvkz0_TXGOCV#QA-*3wICk=HO4T?8EvG@9MdGX{uV}<{5jvLlG z)qM!Sizryjh(Cnil>y9&bohu+(Q&gD#&WDeuzHV)cXMkem<+k1F=r zI5{-2!dDA**WC0^WeeJ`%PLXMdvK9FVwZ<-S#`Ya_!n$_e=YBrc|~0B$HJX*f6d4K ziD5I1v{^zR7&D3#Z6IbUQGqmt_JFO0dujffO@rKB{jCYdfMEUp#NMRGnv%pqu!B12 z7brRua5l!XhVf3^Y5RH}Q~L18yWfk6QU$BKz7JRZkRkhgZM1>9NMv6~7QgKw;9h0FWW=`ok}MIXt%yv14JqMN_|zwM8aJ-RcVYg9A?V z!^$`;we`m;&FzOTdbDZLs|AkqS@g_-3&7yCM{Z)Az42nfF`%^!1J|G3`cIufjh zdd^N<*8K#kM^D zt9Wt}qHV{smGsS{#P^8ZCFNifoz^fq_}?MNq1srbxt;Po_A#ZNk+3u)6yjn8YdjL7 z5;nOL=$;Tv^i9@1jBw&_d4Hlw<`yg8G}fT)TS2z7L{Z-p(|Y`b z6ddXgv+yg8Jz{6+m)oHybD<8@)j8GA$LR7m^Q#E#-+nIEKUSl|!)cB~hty{P_z~Hc z2nn)}dUhkj11bX^PfFumCRX@UJ>gu%MdLr`Utot4<@1lNqeDH%I6C!`^~Y-KzyCCoglOfL z*ucg)7C3bZhbI3`4*=r2Lq`T(Go`9TgT}WfJ|)4L-a7f1c)<^{kQt&Vw4lSvtanl$ z4+RS$(p0Mf&xC)abyAA7k;=ON_nFeXe%{zYTXeI})l~dC5FT95a4^s1s8hi(;BZWJ z_RoR8<{ztdpZavBZo#^ebGj2J#YrZy;5u%!k<~%FSs&0AkXOFf*E;#=o{}wIc)d_c zc$mw+kyXb8?#i&Bk*!DW1&apzBoAsO0$ujjw+oP;&$3qmHPU^&25gH5S+lOr$uCaV z!m0A6@M0Z*6hPH^wQp!wSoW5;Gv9&yHw#3Q+xI5n| z9xuP%kBETZ)pS^Xht-OryMH|W4!ZuaN^^SdIp;&SBncv*gHq!NN#GhHA$_?-w=8Q8 z_iJ7!bx?AKV>rqOq#W1QWTU-? z^hGEru5mrYPWGqAa(pqtnmO*7DY@!YbQ~fctP9fdT!b`I+vCAypKL6SOaDaN%)kQ= z99#c|Tfs3@fHwBJ1bE<3o+?+NSCp;eP40*K^%yz42(q60`{s(>UX`(0|M^?97(lr7 zz=_*hXS$W0nZfli9a(d1Q`(?(mK~3@XU4ek&|jHbyzsJEMq(+lCeT8WWy8UB43wts z3py_Pa}eDyQ#y*CYsnkmoRBr`#coeFhiTn`Tq?gE3&ADw`J76*)q&~p1MlHF2TYI0 z%IEKof2`76j&u4NIBWv;iQ*S_Qa|7!aWP5)v7700b@%)gc|oBUsia z+SB9NVk38g_&}T^*1Mj=klYj71En|FRuaF4UJKXvwzjx`+03u8P;#;DI`dVLPSsmKX0J25wzP z`C=$JUqS#qxLsCV9`}zGic@FhPnlKTztXzcFYK3ltd?H$R)v@}bi!Ey_#W4*=%tu} zIXlMCoVHjFbpSsQ)XXt_DA61@!Rl|dTd{%pS&lFQec8CpQqSO?EPNe3pP91HY_n)P z;$D{~2(97UgF4P&U7xbLT!brV*Okb@YM1}(i-$E6)pqL;TyoqyR%s3khC9~})FFs6 zfdeSqk3?ky@I4co4px1g@t{>R(VAFVZh|#u+_IU#5VIwL=+Mb>j%~<#H+(TEUJ{T~JO+dSQdKk(%cVkj+yv|7luc&< zeo*RQsBjX1ksx8yh>t=2;kyN8d{&2{3XgvF^9@kH3h*iA9F*VP!JjSJPiV@Yk^OZL zANOY6+xtEarQ@k*tkRrKbJq-W>Enl+I%MIJ;8p||2L?1#U)BKf>y$Ut0t9XMN17n) zm3NzQ;z>uvo7@a^@aJ=!qw3-KX)W@NP{nOuo>h@`F`F@E(p68E-Ia{<%(F= z_i}Cpgs2*4r~R*?%&sNw+57&i(|*WgdvjP%i^eL=*)(?x@+Ghk=c-L$y`l_OMd3Ae zp~dp%xhIZ4s;9;lJ25G-Y~ZYDuB4v_Eq-toRR>Axb1<1E2tG8)j7VD;JLo4^I&6d9zNR8E zm01%{51an~Hxrv(!X;RX*6WyA8#K`2Du8RddXFMki&X`#mCgDH_Evi@N{^c=;-ExxM^_$z_1wHiZ z=ngTYkYB7E?0YB-Jo_x&g-G@dICCRJPUEt$j==!1O%~pZlGJcKe$9;IpV3ow>uXJD z#fMlf9YmI8ruxbQp{aY42O*I|s%${VG@vp7;+MhT;J;+mx!~nt`)_`m%*6$wl^e(1 z;e%AvPA!X?!J~y8|zooLDbV`mAcG?vwJL7 zaMr2M#`-CA&}1%8Jq;Jz<^7oal*9`R1(*i*eN&<-hmK&i+E0rezFTezkT1=ZUsbHj ze<42f$pS${HV-@a62O6?$7+a<(w9WE5)4fOMtfppUpJWC-MB+|tz@{y8Q@$Rx8}XK z9~!zmn7JDqFqA@0$7|&9KW8kvmMje`ro1l_t22aKk#(X$m(zgNQc-(>j>2`&SRc)7 z(YQ`jJ?Mw@jlPlsr+jy81IP@uxvWd#1B^C0#Vj2si~GB$xJchdAE&ak-^KQ@%ttK2I>*1(`b>2R)A zJYr@Ad?Io7iK|MP%9-DQskDSZNhTbG-XL$M=$x4eM{u%)KncN-d&#lJwVe=EbYRc+ zXrd+cDHP$8kBwy-Fm9N-t6Atrg~3+EMp51oa#iYOUll0brH<6gynuDQpjm%1DLiuh zd&AbB{XFd3xwDotVYkUlrTF}myj+YolnBQw8W-v(CH1G3cObN~Z+jox7&dKS%7{5-zq6!It=R{bzf#-VvL4(IxUuC4+p`DrG0fQdoo8&a6o22r3&h$ z<}1W`^`&BZx59$;>w0RoQ3Dpbc&zpf4UKuMKmOyNgcUdZU6}p6vqOLHsj#T2&`M2Xk#IkV z!_DtcZFrZBQ~YuLAAM@lc22peJ-55ig06Y|6Jen^_q_G*J6`T~dj++2}E zXL`3OUHrbmond6#wlK0~OW3<{W7zZP`mlTDs&$6 zQ=+c^;D^JyTRs&w+Z4H0!Jmi zongAk>So1oq?2nj(UioRlZYkZ7(Mfpn4T$?l%lCUF;47MPEA(I{pFND3H{GX<@C@W z#nFK?&Ps-W=r8u-xENj<9)8&?!h%=6DlGgTSBAx}yJ~E)EWP%+u>75W9Ugi2l(6!B zH-=Ro_=m9OBR9o`^~snW_%mVs=e`&=eChVE;f{X^kKK7!*!Z=tkA)^}{?^@TA&!Z< zTfYCp@c0jZln7}`?;m~BeipXf|G*eg-S&%LhV8%lb=VP|Y~i&kws6EKFsL+Z>wra2T31H|(4}XN=Pre5gMR&g@IqjuC<#zx`d<{_Ee4 zwY&WnzY5!?{UYA$!F12$7dOVWJ|6p#`jh&#$>rd8GAf~yKs^q_|zgb>4Y?Rzg-%=)eU&$T6w?%X*WHuvj% z?6daX>#ooL`up8mfBSdkIm$Cl5Daeq`Csh*@1OkX?*IJZAC;WDiMsXQul~XA`@i#h zhBW(IyZ`wcU*7$XFa7%NwHII7{rBfzm>9R;`=xV}7`%5r^SKg2Q0QG~Z+$ioHYYYW zWsb^Rl{qVOH=RSIjwMVYCKeOExVC4YsqlJ2KybV4tRp2xm}3w(1@(>$HP25ZEeg-r z7&ZIVJYDBgM{FieuN%e*V%V9QCVbv@o}5ojEGxT-ZM z+DFFTCKK(Pah8o+m}S|>1>N%U&pcHar=^HIJ&_{c`Sj1)M*sZoJ5N6|vBO;b+|Tb` z{rt1LSD*RCS%20(|3dk`{9YJtQKbuWn4Ej%sn6PVo-QdT<+^tLPZuXgx!3fbcJCPj zapo~)99i&kPAgzJF&Wp@8DKYMk~X1+LtryhrW|9P^Ayx8An8)|@^h)qA=GFAXtiVg zt8W|cXdXqg0Tn6hS{9SlBjyPcMF9HNe|JtEYoo=gvqU}YeGJGuM9^HTgW>YDgNREV zyqy_SrnKlPZY&QT>cZtJL>NmOq&tS0FkOj%DBM`#dHjAH9|IAs(+=p*#~PN{D1iN~ z!4zR`7u26#UGk^16h1DT+hkE5W(i)SBR*dVR8cX**RWPnM z9)~{@q?u6qmGw6nm>JeL$K4%DT3NqmpU?LeceN00tL;wO;IH;EHwpi`Dln92ru3Fn z5E7k>qgqailSN!D*kOWO)}JSOIq|A0?{edp?lvcBxaV)Gd>S_cJ+)95#eKEZ$+@Mw zoQ{ta2vWus0h(I|C`K?yNS87~8=hlze9yw8l%8|UspY4Y@rH4G`ed^x?UHpHz%RjhD*(Y zwe8jJxDD*PAO_%DQOLr7W7aoSLyD{PCI)b`o=_LeGWW@1{k6na-SOOhfzAL*}dz~-!D0>?6>b&Ki({2vjP6H4fI~7yE9>voSSY^ z8t@tE9tezoI!rbfOsbZKV}v*l=Au<6oj59JfPcI;N~0gUqjCyTpM)xa4pm$kpZT7+ z{y3ke1tMc|tniFU95(F<<@hiMQoTMLw7NH5F}$lqZCk6OqXj{*z|V+HNp&vAq0Y*P z`6foZl@pU*KpNbsXNPbCsG7`A%xwesPI+O-G?YCEhE>oI*CRvM%%&F}QP4}AuTq_S zqsU`*Bz91(up#sDs7=jSDcTd^8504yQ19@Z%T24D!V9b)Z5Fk?IR*JUYXttFM;Ur@ zbHWyr^ZR)!(KGWTmRDfI)41LSP_r6xsZ380m2tUf8QLN1$4N$*Zx|6IDD4g$LoR7S z?Zx#73j|{{Rd)uzDhS?D^gR195(SfUOfPF{rxec&yHN<>P3&3zN3yK6`oNAqyW1Rq zW`lm+9_0R>7$Qgm0RF;zS?|!*OeY$D3&;CH;j!8v$;v!fEa*^yx#5vJ3HTknf{9R# zBaMBN@HqAs_g6+^+AWBqPcIZbuvq-?n)z|Qc|c=sO2)E*rqj;vdUH^k>8&Tn?Ou>Sdi1hQmm0qz%BG$`+PSEE^F033kx5dG)EVjeJZ%@D z{U|#}ldp4VB?UqqhTC*L=^{ptg#|>i2af z?B8Lr$%JTl_c|uj3e;3CEU2LHE;^HfLj?HVWRjpGf`YS@5=tKao+@jwtsvudfWTW zL2To8p^0H9t^c9RPaC?iGoOOMS`k63Mx8e0jhwC0rfx4O)dDhqcC{SuLlW*3@QCyoRi0UL3P7Fa>ks<pGfJ_EWY zKSqR*q(QTk0D+$bmAWQD=CNmxhB05RisHOIN$&wy9D%n%!ozQZKDa;EsVMbcXI>25 zi4ZZ%L#x>yf3Z2}%^u`2>lce^s6qMQT?&NHY)`qzj4F{&CT&$<3hFof+f6$Ss4hJM z=L-xCHmqO>ca;_fUqo8>#3Kt>Ml1_uuT<&6*r0CGpilUm7Ag}|*T4k9FadO!tqZ4> z2rcM>y(QeErOnUp9T)>>fts8|EAa6LNp~q|wPWuu_NyBQQxzoB>dx8&UWIg#MyFG~ z=xKz6&J77Bg@D0*eIt|MLCqAk5|KhNR`1DVow+HGVJKf_ozF)4==YI9tEhL-3MnP1 zYv=D_D@?~j8m2Z*9_RFfJxNH?-Z9?JuP?ysa31FzpPd0M4Xv)0J>D!+vq?W^#JQ7Z znrC(vY(7XOIivV@ssfQOHS%wIx_mu9JfL7fd>*tzfYuoMmQG2ip1vd+k z(ZWCo&l5|1X>1~fE2vi*$OYs_4Y`z9?S!!LLqNDOc^sb?o>pKcKXl zy}x9yCz@q$HW|-azX9$|7pYntWJp0m0j7J9*dXc)rU!R0ykg3`LI@CzZh(%I2rveC z4`mvUDonsR+L0eCRN6Vh5;)hCIOq)q%}HZ9uLqY_ z_WO;pmz!m8_Mk_MIIom))e2jhxo|nY4+$T0rvL$~;+P1+PaBZVq^Hyvu-e^lj@X&B zXhl%xR6;Y;|bNC`MykTmE)W||feDwt=7&M_esMj%ZM7SZk5{Lm4q5&nB`SZP2Q0FDS1w_M4W^IF;hs6x z@S8MzgCRjG#C3tQrJ0L_fnf|4UvnnSXJwIE&Lt&U=5dlium_K24#f*vrK&YlKv55{ zg$kr4;+9xtl=?B>2a8sdJv;j5R(t00<}kJG)r}KI%uTw-ePUT&E4tBXZ=e^DaV^$) zpWwcR#KMj0*Khe97qSlLu+F-4gypG(Nx+2;)edfO?>Lu0a-Cv^q)SDWby_j!j`T_) zhq&pW!U6^+A9v|Afb%(YCI#0JX&-R(!!-{Qt)}N}+V{(Cx2mwF92?66HAT!7f=zQM=_-a7ONMtk>YA!G&Ua&QDnYi|*@f3uB6l*sGE+BE(v03V-}v4^J7inr-qk)l1DO=zVSF4lT9tl~XjS%V_f&IO z+vT=BV#IjKh;cih3*_EA5l@oZ1+b~X1Q5%W6$vE+BVs|1yek1X7z?I?Nd-vC4WkjHEW;G{F3&6xlU$jmtnzXhhm<9sYW zo?68j(3~-ar8|>27_{mqd$fDWiYFfqyH%}?Eu7zo@p{pX^E^7#EA-d=w>(`0Oaysd zU|v`}ENW3jg{0>$#SntAJz+M;&PSDNjzwd8qh@6MUId2Ho|Q4!d8J<3W1dR)zohFdcU?LsW%VW{-xU}L8ad=gh`4p_9c%WAMzuZA`Tgk_;psjq&d1iQoJgg-V=`k9l%>(^87n;Dki2fV9la z1qIybYCKC>F|e3)$V-(mkdn-TdXAQ(}v1w&_g4VzF-sq>6GdT3)w98%BjNA27 zM$GT+SrAbYAWA4Bi3J0wc<``L$wXwieMmciX9mONZ*%~lx=;PzI7F?384BF))Z0jy zY0%2;E*J;Kip?*x2vTnqeuD?Eh9XdX#(6;(IZjGi`aGvqct8DZacMO@?|c19cWV5T zqh@HK8F8PozUkVuAg6jmD%diva%IAB*kVN@++Ol*78^&7^UYgFD?!eN@KAT7I5F6R&V_Mxa zMzEXEyLDw3LJI4IO^Es`u(AjEo~TEsUCQVZXpPsbV_40L4q1uZ*UXUKDq?}<#W`q9 zo^|=GLi)%tx3p_scY+`aEHRu9S^{k&KhEj3khHS<-Yk2u8JceIjm{KF>p3IVtt`EP zfMe`h#AnyiiB4_Nk>g-)6uFgT1K>PJdqkcT8xDYiv=`PBXn9Kd%-9Ix-GV*K|Z;yYvOs+$F9l+F}x>8lnVy_@QSr6$#l<0^7 z79=UDQfd@cevkPKAqS|z2oO8Kst8Xfy{lBQXrqKD4W-+vHcuitEEcV%g=2pE-O(XQ zyLnjc@@gq!(Y;n6EKoEu+pK_0$vu6nDw3->V`X6HBCazKfv=8p5!i=#C#Yx$p8yR; zV1ASsKr3Z4t3RKp<%jn`u*4Wxm52<1L5_9j%boyVN|64UP79hJ{9Nf^AhRU>7K2vP z<4S(-Yul@%A$;NEw0><=nAUmgJB|kw&>#hllW%wgeAC2zrvOU$tA^vCxDw6 zTYT;|y4hn8WCF~m%iaSMjPG+Sd8dnaf98ySDdR^fjH}1~$~lxFFr+ykRq!X}$AqH0 z!14F*LkHZ?p8hClHA4XY`gYqLYlikv)x%>pLEj*F8X1vqeo6s(_eG@w>1654_A{aAQ2Nq2hQ zXylIcRb}J5Y#fi2R(;u1Yomc#eL^u>j~4=4zXvE-pnLUm~n(TS_j0YOf*?Fcht1*?d;QmT`HIN;rQaGJT#3NhmM30JJijRZ#;6 z$;#S(*|esH_|Z;C9SN}}-g`p25Hf~pg(|;ALnq;qWs<8OBh&~iY*F%FL@x9CLLw8T z*OBZipn*ZFDAftjJpY}!a-;|DOB&Wd3OQC@2U44mPDK?bK)9gq3$1o+o-YhGE3|#_ z9-g0wwgG?)6Aq&*HY~~^X^8{XlXX=UsuOu75+I0*$ZdrvK_I!(>AH`MTNg=XYL8zF zu6ZD4ikwWOtO(DpcX-CqT7UEwMtf3J`+&v?uODcI98#cn_-n9v?HjG!zqz_1YvNo|SH4V0Pq85vl-;AbSmw;4ngSp`z@$GeqAckjMyz7m}nQ4KeB4pE;D# zj|&|O+Zi^Vf%l*x+i8Wo&NeOBN>vWU5`rOLBqnpt{53Fl{4vyEll$Ch;!FTz3m#s^ z|7AhH`$enUlR)etbYZ_6BjQUMPsu$D1s`Dur%H$P22lvZdT?{2fB-ShDShF6#g0Kx zKYxv0A*cmu7zAk1hcSpccKnX&mTw@yQB&H?W4@>+GyhScXoB95BK1beETqt04EFv65^1E{{+V15@0RJlE3-=vyJP= z6Q|tgiBe}qJB%r)Yb?@`!zByct529#Wlub3dt}HBT%G1ZV~g>$*6B^7s={PqNKZJ1&(6SL*x2CI zpbCfly0rEr?O42DE-i;T0_YEyR^^ZSTLsp*8QQ^Um)F-Pg)L^)cy9OZB^0qY6(&?o zoW-J(NTa=X9H(8?WST5gP)Q$Bs+umWN`OD#RJ=y@`a-o8=|HI6htwxgECU`}s8-o^ zor%Y=65fyF=A2Q&PM_!D(#l?Mmo@*->l;T04E6)q#^%B;bq}pyx6Xek;!;s+pr?+B z%qnYNN7Hjr)3DE!AkDA@LP3y3h@z?OZ}f07GF#nW&R1DgB7-g+DY^y5tB3cm`hfx~vld5(V4~I#kbK z_-AlySp1^U0PHFXRF7&?7WGb88S6xp5c!W<-KB)8uY_RXm5$fr0_8s? z1O9YAqD~)T`LjNAm*c+a2Ie`0%HgxIOg^O(Nf^U0cH|L!pR6(>7PTq9R_fekW{ddh0?IJYCI5y2!_mmXk9VqlQE&yk9y z%6n;A-L~T{mNnW8ZD`K4HXgIZ@uDrL>-M@6{&C@21``YRARSkgU}HstD`1o>24&iD zs(A6d7bGgy^&@OakRU|<9fDS~%z^M8Nz4N66>z|y0j}W;AI=X1`?5q<#2f>*y8>BM zwH`^Ub`q{|eYz%x*s7sb+V;xEaa%BdW(&wMwo-&k8piprj0LQFTT_*&auL6r(i0PG zD*%N#eiHAm90B~y6q7&?I5L>#g6pB&I@5wk7mksM-wZbh=m}{pOgXbNeG2VHPR%ZeiJ}Bt(sKTI(7*)!-#QWh%uYMnLIsyH2^!ID*AK6 z3&@_UgQ9XX#t-^ot~l>C6?R%~YcQ%0?P0Yyt#7T4j+(^v1zVWkDY08HBqIzVmAH6( zP%m>P=M0SbiWrB6NoK{HjDZSRVMtp_GW4FKtSU!A&N%6?5FSK1?IbSdUf7I`XeOSOP!r|GAp<17cb=der4)`; z$3k&DjN)b$=zRRK48Olm3M~M95YNbBrI7A$9927b|58aZ%|Ye-hu2^}ur)JVJ1<)w zjOs(%C;L`=`lKz$^R^)0$EFR?xG`FO92po@Eo|a^16j{JghW_?G=*x|H2P=d#uyQw z)ZFv?3GZ8_NJQ@)*iVq~0Osf86=mHe=%RO~>k#1r$L6rkZmTS7<-Dz(!A>=_{cnan z)VzIqJi46<9?+^b=^DV ziG=e5V@8Mu(HI!sAtYiP&pv}Rx>nZ6_UVmdWz7t2X#3k(wWk>7N4B89YMbIcd%u%L zu$K-D_}P1?hX{9w)oKDL96<&hCyFs*ES!Nc<^i)ljtuKuK*l&N5Y5g)q?relkUTy{ z;8uYKs}Vbl1!b8Bm}Bz$?+HWn`|gyrFkKVfsH~Bp4Q-*?+duKsh6J%OvW@UH>(~34 zjmwj5iSzEib+C_wjf2#gDudW_d>5_<%yL!{^086Pq_jlI39fvoR!~Wuu?gIHM3C>H z6Q8w39Yz$?9fQ_LN|!kO<7jKMIWH0F*1uNP!rLc4H6SVsZSmXYN_Wf__Lr?+vc4nY zmqP7B9l+QNd?vgXd3ZTsp@;?-Dw@i>V?uOAl_N|GuSdI+e#ZE$Ic>r8MP~xD2j%XR zxgM7}x4CbIHnfA*HrGatE#hOgsGqlm{_RNx-rWAgf(}p%fpHGV6>Q-A+LEF5D#{#? z(#pOS%b3CYh>QWKv3?F2dMqd*%GrmSlqk#9qjFB?--AwI`nP6t`+S+}t-(e$v}I_v z2_Lsb{RLa-e>pCm#kRZa8yV5$s8qx1%#7P&@Mtyc07#hF=&);X^RhrgEK?6A6BCjV zC@Li^dRFNPbja(Vwy|Qjk0sC@*F(_g-7<$I;IquB(PKdU9NO}>?RM1Krua=;?BBP3 zpHhyBl!iJ2<8}pML8&)N^#XI!=XL;~qdErW0A{Ew5eWo@3IiwYFdnLr9Baw-`+k|b zGKbC3hIUxm=7}du8M32&sdmzi{@6D5_LO;LhU#3M>NQMqwGd}s(u)!s164Irf%X=5 zqK>1u2M|Oh#!S#>OhA5rkdl=|Z z=m7ziEP3VMGtZHzrNo@~Yl5jH5Xm}U(rsxfQ^3dNO!mHg{;<%z(0(!pYirHWhBma1 z(6*jDQ;hX5*k&pQ-hZ_Xc~@bwvz&V;kOkbZE)trBeMkZ0F{FXlW$1*DE0@~Hh(gJF z+TnPte}A{obV}Rqg{>!tl37C=+Cz%#T02?_X4*!3$~Nw+*8g!@o_xl@5M&vciiZoZ z%oJG-D ze@2U&Q`#7fTBFt4=&aFhU{FIF+M{fJ^GvgC_3CVM{)%nP^Va{y-e0r62jba5=>Tsm zRY5WnSshwes)h}W;C%W0OIIG!36r{3p1shZ&|*T9=I5HB4Q*%(+ODjeX|}D>N{PJg zS2ouA!o*fbzi+)5l;5&Vf2~L#h~ujEE(iLPOeW7I^n5;*IuxVnQRw!E zR-Umu>)4*TJo}aQOf$5h4ebE8cSoZm+imxRZT2(c)k(SjmnQg3Q={{DjZs{&-~P)! ze`ud?+v}Z~_spf6G@-f+`1HXmm?eE@!L6po&B8fumob#FlrfdDl`)pFmNDCR&z5H> z&+_hQDAzu;p&iP$dHj?GvYt6<%;B@fB%bSwdw+HGiZO}vv$Fmd?YDoJRTH{0RXGcQ zVRyqm|6gG=c5E?h@5~@}?%M0^@>@Bkw_|7LTq)Nm*RszS%e80sc*Ph|x#x3b3}q}f grorAcv>&zq2Y`=FhygrszyJUM07*qoM6N<$g1qC-wEzGB literal 0 HcmV?d00001 diff --git a/LabelStoreMax/pubspec.lock b/LabelStoreMax/pubspec.lock index d2e887a..4a56cd3 100644 --- a/LabelStoreMax/pubspec.lock +++ b/LabelStoreMax/pubspec.lock @@ -70,7 +70,7 @@ packages: name: cached_network_image url: "https://pub.dartlang.org" source: hosted - version: "3.1.0+1" + version: "3.2.0" cached_network_image_platform_interface: dependency: transitive description: @@ -154,7 +154,7 @@ packages: name: device_info url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.0.3" device_info_platform_interface: dependency: transitive description: @@ -168,7 +168,7 @@ packages: name: dio url: "https://pub.dartlang.org" source: hosted - version: "4.0.1" + version: "4.0.4" fake_async: dependency: transitive description: @@ -222,7 +222,7 @@ packages: name: flutter_cache_manager url: "https://pub.dartlang.org" source: hosted - version: "3.1.2" + version: "3.3.0" flutter_dotenv: dependency: transitive description: @@ -461,14 +461,14 @@ packages: name: nylo_framework url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.3" nylo_support: dependency: transitive description: name: nylo_support url: "https://pub.dartlang.org" source: hosted - version: "2.2.1" + version: "2.3.1" octo_image: dependency: transitive description: @@ -615,6 +615,20 @@ packages: name: shared_preferences url: "https://pub.dartlang.org" source: hosted + version: "2.0.11" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.9" + shared_preferences_ios: + dependency: transitive + description: + name: shared_preferences_ios + url: "https://pub.dartlang.org" + source: hosted version: "2.0.8" shared_preferences_linux: dependency: transitive @@ -768,6 +782,62 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.3.0" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.17" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.13" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.13" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.5" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" uuid: dependency: transitive description: @@ -837,7 +907,7 @@ packages: name: woosignal url: "https://pub.dartlang.org" source: hosted - version: "2.2.1" + version: "3.0.0" wp_json_api: dependency: "direct main" description: diff --git a/LabelStoreMax/pubspec.yaml b/LabelStoreMax/pubspec.yaml index c194a93..afde5ca 100644 --- a/LabelStoreMax/pubspec.yaml +++ b/LabelStoreMax/pubspec.yaml @@ -1,7 +1,7 @@ # Official WooSignal App Template for WooCommerce # Label StoreMax -# Version: 5.4.0 +# Version: 5.5.0 # Author: Anthony Gordon # Homepage: https://woosignal.com # Documentation: https://woosignal.com/docs/app/label-storemax @@ -29,11 +29,11 @@ dependencies: analyzer: ^1.5.0 intl: ^0.17.0 page_transition: ^2.0.4 - nylo_framework: ^2.1.1 - woosignal: ^2.2.1 + nylo_framework: ^2.1.3 + woosignal: ^3.0.0 flutter_stripe: ^2.0.2 wp_json_api: ^3.1.3 - cached_network_image: ^3.1.0+1 + cached_network_image: ^3.2.0 package_info: ^2.0.2 money_formatter: ^0.0.3 platform_alert_dialog: ^1.0.0+2 @@ -41,6 +41,7 @@ dependencies: webview_flutter: ^2.3.1 pull_to_refresh: 2.0.0 flutter_swiper: ^1.1.6 + url_launcher: ^6.0.17 flutter_styled_toast: ^2.0.0 animate_do: ^2.0.0 bubble_tab_indicator: ^0.1.5 @@ -52,6 +53,8 @@ dependencies: auto_size_text: ^3.0.0 html: ^0.15.0 flutter_staggered_grid_view: ^0.4.1 +# firebase_messaging: ^11.2.3 +# firebase_core: ^1.10.5 flutter: sdk: flutter flutter_localizations: @@ -84,13 +87,8 @@ flutter: # To add assets to your application, add an assets section, like this: assets: - public/assets/fonts/ - - public/assets/images/camion.gif - - public/assets/images/credit_cards.png - - public/assets/images/shipping_icon.png - - public/assets/images/dark_powered_by_stripe.png - - public/assets/images/cash_on_delivery.jpeg - - public/assets/images/razorpay.png - - public/assets/images/paypal_logo.png - - public/assets/json/default_shipping.json + - public/ + - public/assets/json/ + - public/assets/images/ - lang/ - .env diff --git a/README.md b/README.md index 0873a36..9828319 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ # WooCommerce App: Label StoreMax -### Label StoreMax - v5.4.0 +### Label StoreMax - v5.5.0 [Official WooSignal WooCommerce App](https://woosignal.com)