From 0a500df5619a876ac55ed5cc90ab83bdd5dca06c Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 06:02:34 +0100 Subject: [PATCH 01/25] chore: init --- analysis_options.yaml | 3 + lib/app/app.dart | 1 + lib/app/bloc/app_bloc.dart | 453 +++++++++++ lib/app/bloc/app_event.dart | 115 +++ lib/app/bloc/app_state.dart | 122 +++ lib/app/config/app_config.dart | 30 + lib/app/config/app_environment.dart | 24 + lib/app/config/config.dart | 2 + lib/app/view/app.dart | 307 ++++++++ lib/app/view/app_shell.dart | 77 ++ .../bloc/authentication_bloc.dart | 181 +++++ .../bloc/authentication_event.dart | 78 ++ .../bloc/authentication_state.dart | 74 ++ .../view/authentication_page.dart | 181 +++++ .../view/email_code_verification_page.dart | 215 +++++ .../view/request_code_page.dart | 229 ++++++ lib/bloc_observer.dart | 19 + lib/bootstrap.dart | 223 ++++++ lib/l10n/app_localizations.dart | 140 ++++ lib/l10n/app_localizations_ar.dart | 13 + lib/l10n/app_localizations_en.dart | 13 + lib/l10n/arb/app_ar.arb | 6 + lib/l10n/arb/app_en.arb | 6 + lib/l10n/l10n.dart | 6 + lib/main.dart | 44 +- lib/router/router.dart | 735 ++++++++++++++++++ lib/router/routes.dart | 6 + lib/shared/constants/app_spacing.dart | 40 + lib/shared/constants/constants.dart | 5 + .../localization/ar_timeago_messages.dart | 43 + .../localization/en_timeago_messages.dart | 43 + lib/shared/shared.dart | 10 + lib/shared/theme/app_theme.dart | 211 +++++ lib/shared/theme/theme.dart | 5 + lib/shared/utils/date_formatter.dart | 15 + lib/shared/utils/utils.dart | 4 + lib/shared/widgets/failure_state_widget.dart | 51 ++ lib/shared/widgets/initial_state_widget.dart | 29 + lib/shared/widgets/loading_state_widget.dart | 33 + lib/shared/widgets/widgets.dart | 7 + pubspec.lock | 8 + pubspec.yaml | 2 + web/favicon.png | Bin 917 -> 765 bytes web/icons/Icon-192.png | Bin 5292 -> 56879 bytes web/icons/Icon-512.png | Bin 8252 -> 279423 bytes web/icons/Icon-maskable-192.png | Bin 5594 -> 56879 bytes web/icons/Icon-maskable-512.png | Bin 20998 -> 279423 bytes web/icons/favicon.png | Bin 0 -> 1091 bytes web/index.html | 137 +++- web/manifest.json | 12 +- 50 files changed, 3929 insertions(+), 29 deletions(-) create mode 100644 lib/app/app.dart create mode 100644 lib/app/bloc/app_bloc.dart create mode 100644 lib/app/bloc/app_event.dart create mode 100644 lib/app/bloc/app_state.dart create mode 100644 lib/app/config/app_config.dart create mode 100644 lib/app/config/app_environment.dart create mode 100644 lib/app/config/config.dart create mode 100644 lib/app/view/app.dart create mode 100644 lib/app/view/app_shell.dart create mode 100644 lib/authentication/bloc/authentication_bloc.dart create mode 100644 lib/authentication/bloc/authentication_event.dart create mode 100644 lib/authentication/bloc/authentication_state.dart create mode 100644 lib/authentication/view/authentication_page.dart create mode 100644 lib/authentication/view/email_code_verification_page.dart create mode 100644 lib/authentication/view/request_code_page.dart create mode 100644 lib/bloc_observer.dart create mode 100644 lib/bootstrap.dart create mode 100644 lib/l10n/app_localizations.dart create mode 100644 lib/l10n/app_localizations_ar.dart create mode 100644 lib/l10n/app_localizations_en.dart create mode 100644 lib/l10n/arb/app_ar.arb create mode 100644 lib/l10n/arb/app_en.arb create mode 100644 lib/l10n/l10n.dart create mode 100644 lib/router/router.dart create mode 100644 lib/router/routes.dart create mode 100644 lib/shared/constants/app_spacing.dart create mode 100644 lib/shared/constants/constants.dart create mode 100644 lib/shared/localization/ar_timeago_messages.dart create mode 100644 lib/shared/localization/en_timeago_messages.dart create mode 100644 lib/shared/shared.dart create mode 100644 lib/shared/theme/app_theme.dart create mode 100644 lib/shared/theme/theme.dart create mode 100644 lib/shared/utils/date_formatter.dart create mode 100644 lib/shared/utils/utils.dart create mode 100644 lib/shared/widgets/failure_state_widget.dart create mode 100644 lib/shared/widgets/initial_state_widget.dart create mode 100644 lib/shared/widgets/loading_state_widget.dart create mode 100644 lib/shared/widgets/widgets.dart create mode 100644 web/icons/favicon.png diff --git a/analysis_options.yaml b/analysis_options.yaml index 15574759..e324f571 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,3 +1,6 @@ +analyzer: + errors: + avoid_print: ignore include: package:very_good_analysis/analysis_options.9.0.0.yaml linter: rules: diff --git a/lib/app/app.dart b/lib/app/app.dart new file mode 100644 index 00000000..f23ab3c8 --- /dev/null +++ b/lib/app/app.dart @@ -0,0 +1 @@ +export 'view/app.dart'; diff --git a/lib/app/bloc/app_bloc.dart b/lib/app/bloc/app_bloc.dart new file mode 100644 index 00000000..d256a55b --- /dev/null +++ b/lib/app/bloc/app_bloc.dart @@ -0,0 +1,453 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:equatable/equatable.dart'; +import 'package:flex_color_scheme/flex_color_scheme.dart'; +import 'package:flutter/material.dart'; +import 'package:ht_auth_repository/ht_auth_repository.dart'; +import 'package:ht_data_repository/ht_data_repository.dart'; +import 'package:ht_main/app/config/config.dart' as local_config; +import 'package:ht_main/shared/services/demo_data_migration_service.dart'; +import 'package:ht_shared/ht_shared.dart'; + +part 'app_event.dart'; +part 'app_state.dart'; + +class AppBloc extends Bloc { + AppBloc({ + required HtAuthRepository authenticationRepository, + required HtDataRepository userAppSettingsRepository, + required HtDataRepository appConfigRepository, + required local_config.AppEnvironment environment, + this.demoDataMigrationService, + }) : _authenticationRepository = authenticationRepository, + _userAppSettingsRepository = userAppSettingsRepository, + _appConfigRepository = appConfigRepository, + _environment = environment, + super( + AppState( + settings: const UserAppSettings(id: 'default'), + selectedBottomNavigationIndex: 0, + appConfig: null, + environment: environment, + ), + ) { + on(_onAppUserChanged); + on(_onAppSettingsRefreshed); + on(_onAppConfigFetchRequested); + on(_onAppUserAccountActionShown); + on(_onLogoutRequested); + on(_onThemeModeChanged); + on(_onFlexSchemeChanged); + on(_onFontFamilyChanged); + on(_onAppTextScaleFactorChanged); + + // Listen directly to the auth state changes stream + _userSubscription = _authenticationRepository.authStateChanges.listen( + (User? user) => add(AppUserChanged(user)), + ); + } + + final HtAuthRepository _authenticationRepository; + final HtDataRepository _userAppSettingsRepository; + final HtDataRepository _appConfigRepository; + final local_config.AppEnvironment _environment; + final DemoDataMigrationService? demoDataMigrationService; + late final StreamSubscription _userSubscription; + + /// Handles user changes and loads initial settings once user is available. + Future _onAppUserChanged( + AppUserChanged event, + Emitter emit, + ) async { + // Determine the AppStatus based on the user object and its role + final AppStatus status; + final oldUser = state.user; + + switch (event.user?.role) { + case null: + status = AppStatus.unauthenticated; + case UserRole.standardUser: + status = AppStatus.authenticated; + case UserRole.guestUser: // Explicitly map guestUser to anonymous + status = AppStatus.anonymous; + // ignore: no_default_cases + default: // Fallback for any other roles not explicitly handled + status = AppStatus.anonymous; + } + + // Emit user and status update first + emit(state.copyWith(status: status, user: event.user)); + + if (event.user != null) { + // User is present (authenticated or anonymous) + add(const AppSettingsRefreshed()); + add(const AppConfigFetchRequested()); + + // Check for anonymous to authenticated transition for data migration + if (oldUser != null && + oldUser.role == UserRole.guestUser && + event.user!.role == UserRole.standardUser) { + print( + '[AppBloc] Anonymous user ${oldUser.id} transitioned to ' + 'authenticated user ${event.user!.id}. Attempting data migration.', + ); + // This block handles data migration specifically for the demo environment. + // In production/development, this logic is typically handled by the backend. + if (demoDataMigrationService != null && + _environment == local_config.AppEnvironment.demo) { + print( + '[AppBloc] Demo mode: Awaiting data migration from anonymous ' + 'user ${oldUser.id} to authenticated user ${event.user!.id}.', + ); + // Await the migration to ensure it completes before refreshing settings. + await demoDataMigrationService!.migrateAnonymousData( + oldUserId: oldUser.id, + newUserId: event.user!.id, + ); + // After successful migration, explicitly refresh app settings + // to load the newly migrated data into the AppBloc's state. + add(const AppSettingsRefreshed()); + print( + '[AppBloc] Demo mode: Data migration completed and settings ' + 'refresh triggered for user ${event.user!.id}.', + ); + } else { + print( + '[AppBloc] DemoDataMigrationService not available or not in demo ' + 'environment. Skipping client-side data migration.', + ); + } + } + } else { + // User is null (unauthenticated or logged out) + emit( + state.copyWith( + appConfig: null, + clearAppConfig: true, + status: AppStatus.unauthenticated, + ), + ); + } + } + + /// Handles refreshing/loading app settings (theme, font). + Future _onAppSettingsRefreshed( + AppSettingsRefreshed event, + Emitter emit, + ) async { + // Avoid loading if user is unauthenticated (shouldn't happen if logic is correct) + if (state.status == AppStatus.unauthenticated || state.user == null) { + return; + } + + try { + // Fetch relevant settings using the new generic repository + // Use the current user's ID to fetch user-specific settings + final userAppSettings = await _userAppSettingsRepository.read( + id: state.user!.id, + userId: state.user!.id, + ); + + // Map settings from UserAppSettings to AppState properties + final newThemeMode = _mapAppBaseTheme( + userAppSettings.displaySettings.baseTheme, + ); + final newFlexScheme = _mapAppAccentTheme( + userAppSettings.displaySettings.accentTheme, + ); + final newFontFamily = _mapFontFamily( + userAppSettings.displaySettings.fontFamily, + ); + final newAppTextScaleFactor = _mapTextScaleFactor( + userAppSettings.displaySettings.textScaleFactor, + ); + // Map language code to Locale + final newLocale = Locale(userAppSettings.language); + + print( + '[AppBloc] _onAppSettingsRefreshed: userAppSettings.fontFamily: ${userAppSettings.displaySettings.fontFamily}', + ); + print( + '[AppBloc] _onAppSettingsRefreshed: userAppSettings.fontWeight: ${userAppSettings.displaySettings.fontWeight}', + ); + print( + '[AppBloc] _onAppSettingsRefreshed: newFontFamily mapped to: $newFontFamily', + ); + + emit( + state.copyWith( + themeMode: newThemeMode, + flexScheme: newFlexScheme, + appTextScaleFactor: newAppTextScaleFactor, + fontFamily: newFontFamily, + settings: userAppSettings, + locale: newLocale, + ), + ); + } on NotFoundException { + // User settings not found (e.g., first time user), use defaults + print('User app settings not found, using defaults.'); + // Emit state with default settings + emit( + state.copyWith( + themeMode: ThemeMode.system, + flexScheme: FlexScheme.material, + appTextScaleFactor: AppTextScaleFactor.medium, + locale: const Locale('en'), + settings: UserAppSettings(id: state.user!.id), + ), + ); + } catch (e) { + // Handle other potential errors during settings fetch + // Optionally emit a failure state or log the error + print('Error loading user app settings in AppBloc: $e'); + // Keep the existing theme/font state on error, but ensure settings is not null + emit(state.copyWith(settings: state.settings)); + } + } + + // Add handlers for settings changes (dispatching events from UI) + void _onLogoutRequested(AppLogoutRequested event, Emitter emit) { + unawaited(_authenticationRepository.signOut()); + } + + void _onThemeModeChanged(AppThemeModeChanged event, Emitter emit) { + // Update settings and emit new state + final updatedSettings = state.settings.copyWith( + displaySettings: state.settings.displaySettings.copyWith( + baseTheme: event.themeMode == ThemeMode.light + ? AppBaseTheme.light + : (event.themeMode == ThemeMode.dark + ? AppBaseTheme.dark + : AppBaseTheme.system), + ), + ); + emit(state.copyWith(settings: updatedSettings, themeMode: event.themeMode)); + // Optionally save settings to repository here + // unawaited(_userAppSettingsRepository.update(id: updatedSettings.id, item: updatedSettings)); + } + + void _onFlexSchemeChanged( + AppFlexSchemeChanged event, + Emitter emit, + ) { + // Update settings and emit new state + final updatedSettings = state.settings.copyWith( + displaySettings: state.settings.displaySettings.copyWith( + accentTheme: event.flexScheme == FlexScheme.blue + ? AppAccentTheme.defaultBlue + : (event.flexScheme == FlexScheme.red + ? AppAccentTheme.newsRed + : AppAccentTheme.graphiteGray), + ), + ); + emit( + state.copyWith(settings: updatedSettings, flexScheme: event.flexScheme), + ); + // Optionally save settings to repository here + // unawaited(_userAppSettingsRepository.update(id: updatedSettings.id, item: updatedSettings)); + } + + void _onFontFamilyChanged( + AppFontFamilyChanged event, + Emitter emit, + ) { + // Update settings and emit new state + final updatedSettings = state.settings.copyWith( + displaySettings: state.settings.displaySettings.copyWith( + fontFamily: event.fontFamily ?? 'SystemDefault', + ), + ); + emit( + state.copyWith(settings: updatedSettings, fontFamily: event.fontFamily), + ); + // Optionally save settings to repository here + // unawaited(_userAppSettingsRepository.update(id: updatedSettings.id, item: updatedSettings)); + } + + void _onAppTextScaleFactorChanged( + AppTextScaleFactorChanged event, + Emitter emit, + ) { + // Update settings and emit new state + final updatedSettings = state.settings.copyWith( + displaySettings: state.settings.displaySettings.copyWith( + textScaleFactor: event.appTextScaleFactor, + ), + ); + emit( + state.copyWith( + settings: updatedSettings, + appTextScaleFactor: event.appTextScaleFactor, + ), + ); + // Optionally save settings to repository here + // unawaited(_userAppSettingsRepository.update(id: updatedSettings.id, item: updatedSettings)); + } + + // --- Settings Mapping Helpers --- + + ThemeMode _mapAppBaseTheme(AppBaseTheme mode) { + switch (mode) { + case AppBaseTheme.light: + return ThemeMode.light; + case AppBaseTheme.dark: + return ThemeMode.dark; + case AppBaseTheme.system: + return ThemeMode.system; + } + } + + FlexScheme _mapAppAccentTheme(AppAccentTheme name) { + switch (name) { + case AppAccentTheme.defaultBlue: + return FlexScheme.blue; + case AppAccentTheme.newsRed: + return FlexScheme.red; + case AppAccentTheme.graphiteGray: + return FlexScheme.material; + } + } + + String? _mapFontFamily(String fontFamilyString) { + // If the input is 'SystemDefault', return null so FlexColorScheme uses its default. + if (fontFamilyString == 'SystemDefault') { + print( + '[AppBloc] _mapFontFamily: Input is SystemDefault, returning null.', + ); + return null; + } + // Otherwise, return the font family string directly. + // The GoogleFonts.xyz().fontFamily getters often return strings like "Roboto-Regular", + // but FlexColorScheme's fontFamily parameter or GoogleFonts.xyzTextTheme() expect simple names. + print( + '[AppBloc] _mapFontFamily: Input is $fontFamilyString, returning as is.', + ); + return fontFamilyString; + } + + // Map AppTextScaleFactor to AppTextScaleFactor (no change needed) + AppTextScaleFactor _mapTextScaleFactor(AppTextScaleFactor factor) { + return factor; + } + + @override + Future close() { + _userSubscription.cancel(); + return super.close(); + } + + Future _onAppConfigFetchRequested( + AppConfigFetchRequested event, + Emitter emit, + ) async { + // Guard: Only fetch if a user (authenticated or anonymous) is present. + if (state.user == null) { + print( + '[AppBloc] User is null. Skipping AppConfig fetch because it requires authentication.', + ); + // If AppConfig was somehow present without a user, clear it. + // And ensure status isn't stuck on configFetching if this event was dispatched erroneously. + if (state.appConfig != null || state.status == AppStatus.configFetching) { + emit( + state.copyWith( + appConfig: null, + clearAppConfig: true, + status: AppStatus.unauthenticated, + ), + ); + } + return; + } + + // Avoid refetching if already loaded for the current user session, unless explicitly trying to recover from a failed state. + if (state.appConfig != null && + state.status != AppStatus.configFetchFailed) { + print( + '[AppBloc] AppConfig already loaded for user ${state.user?.id} and not in a failed state. Skipping fetch.', + ); + return; + } + + print( + '[AppBloc] Attempting to fetch AppConfig for user: ${state.user!.id}...', + ); + emit( + state.copyWith( + status: AppStatus.configFetching, + appConfig: null, + clearAppConfig: true, + ), + ); + + try { + final appConfig = await _appConfigRepository.read(id: 'app_config'); + print( + '[AppBloc] AppConfig fetched successfully. ID: ${appConfig.id} for user: ${state.user!.id}', + ); + + // Determine the correct status based on the existing user's role. + // This ensures that successfully fetching config doesn't revert auth status to 'initial'. + final newStatusBasedOnUser = state.user!.role == UserRole.standardUser + ? AppStatus.authenticated + : AppStatus.anonymous; + emit(state.copyWith(appConfig: appConfig, status: newStatusBasedOnUser)); + } on HtHttpException catch (e) { + print( + '[AppBloc] Failed to fetch AppConfig (HtHttpException) for user ${state.user?.id}: ${e.runtimeType} - ${e.message}', + ); + emit( + state.copyWith( + status: AppStatus.configFetchFailed, + appConfig: null, + clearAppConfig: true, + ), + ); + } catch (e, s) { + print( + '[AppBloc] Unexpected error fetching AppConfig for user ${state.user?.id}: $e', + ); + print('[AppBloc] Stacktrace: $s'); + emit( + state.copyWith( + status: AppStatus.configFetchFailed, + appConfig: null, + clearAppConfig: true, + ), + ); + } + } + + Future _onAppUserAccountActionShown( + AppUserAccountActionShown event, + Emitter emit, + ) async { + if (state.user != null && state.user!.id == event.userId) { + final now = DateTime.now(); + // Optimistically update the local user state. + // Corrected parameter name for copyWith as per User model in models.txt + final updatedUser = state.user!.copyWith(lastEngagementShownAt: now); + + // Emit the change so UI can react if needed, and other BLoCs get the update. + // This also ensures that FeedInjectorService will see the updated timestamp immediately. + emit(state.copyWith(user: updatedUser)); + + // TODO: Persist this change to the backend. + // This would typically involve calling a method on a repository, e.g.: + // try { + // await _authenticationRepository.updateUserLastActionTimestamp(event.userId, now); + // // If the repository's authStateChanges stream doesn't automatically emit + // // the updated user, you might need to re-fetch or handle it here. + // // For now, we've optimistically updated the local state. + // } catch (e) { + // // Handle error, potentially revert optimistic update or show an error. + // print('Failed to update lastAccountActionShownAt on backend: $e'); + // // Optionally revert: emit(state.copyWith(user: state.user)); + // } + print( + '[AppBloc] User ${event.userId} AccountAction shown. Last shown timestamp updated locally to $now. Backend update pending.', + ); + } + } +} diff --git a/lib/app/bloc/app_event.dart b/lib/app/bloc/app_event.dart new file mode 100644 index 00000000..46997225 --- /dev/null +++ b/lib/app/bloc/app_event.dart @@ -0,0 +1,115 @@ +part of 'app_bloc.dart'; + +abstract class AppEvent extends Equatable { + const AppEvent(); + + @override + List get props => []; +} + +@Deprecated('Use SettingsBloc events instead') +class AppThemeChanged extends AppEvent { + // + // ignore: deprecated_consistency + const AppThemeChanged(); +} + +class AppUserChanged extends AppEvent { + const AppUserChanged(this.user); + + final User? user; + + @override + List get props => [user]; +} + +/// {@template app_settings_refreshed} +/// Internal event to trigger reloading of settings within AppBloc. +/// Added when user changes or upon explicit request. +/// {@endtemplate} +class AppSettingsRefreshed extends AppEvent { + /// {@macro app_settings_refreshed} + const AppSettingsRefreshed(); +} + +/// {@template app_logout_requested} +/// Event to request user logout. +/// {@endtemplate} +class AppLogoutRequested extends AppEvent { + /// {@macro app_logout_requested} + const AppLogoutRequested(); +} + +/// {@template app_theme_mode_changed} +/// Event to change the application's theme mode. +/// {@endtemplate} +class AppThemeModeChanged extends AppEvent { + /// {@macro app_theme_mode_changed} + const AppThemeModeChanged(this.themeMode); + + final ThemeMode themeMode; + + @override + List get props => [themeMode]; +} + +/// {@template app_flex_scheme_changed} +/// Event to change the application's FlexColorScheme. +/// {@endtemplate} +class AppFlexSchemeChanged extends AppEvent { + /// {@macro app_flex_scheme_changed} + const AppFlexSchemeChanged(this.flexScheme); + + final FlexScheme flexScheme; + + @override + List get props => [flexScheme]; +} + +/// {@template app_font_family_changed} +/// Event to change the application's font family. +/// {@endtemplate} +class AppFontFamilyChanged extends AppEvent { + /// {@macro app_font_family_changed} + const AppFontFamilyChanged(this.fontFamily); + + final String? fontFamily; + + @override + List get props => [fontFamily]; +} + +/// {@template app_text_scale_factor_changed} +/// Event to change the application's text scale factor. +/// {@endtemplate} +class AppTextScaleFactorChanged extends AppEvent { + /// {@macro app_text_scale_factor_changed} + const AppTextScaleFactorChanged(this.appTextScaleFactor); + + final AppTextScaleFactor appTextScaleFactor; + + @override + List get props => [appTextScaleFactor]; +} + +/// {@template app_config_fetch_requested} +/// Event to trigger fetching of the global AppConfig. +/// {@endtemplate} +class AppConfigFetchRequested extends AppEvent { + /// {@macro app_config_fetch_requested} + const AppConfigFetchRequested(); +} + +/// {@template app_user_account_action_shown} +/// Event triggered when an AccountAction has been shown to the user, +/// prompting an update to their `lastAccountActionShownAt` timestamp. +/// {@endtemplate} +class AppUserAccountActionShown extends AppEvent { + /// {@macro app_user_account_action_shown} + const AppUserAccountActionShown({required this.userId}); + + final String userId; + + @override + List get props => [userId]; +} diff --git a/lib/app/bloc/app_state.dart b/lib/app/bloc/app_state.dart new file mode 100644 index 00000000..ed011a45 --- /dev/null +++ b/lib/app/bloc/app_state.dart @@ -0,0 +1,122 @@ +part of 'app_bloc.dart'; + +/// Represents the application's authentication status. +enum AppStatus { + /// The application is initializing and the status is unknown. + initial, + + /// The user is authenticated. + authenticated, + + /// The user is unauthenticated. + unauthenticated, + + /// The user is anonymous (signed in using an anonymous provider). + anonymous, + + /// Fetching the essential AppConfig. + configFetching, + + /// Fetching the essential AppConfig failed. + configFetchFailed, +} + +class AppState extends Equatable { + /// {@macro app_state} + const AppState({ + required this.settings, + required this.selectedBottomNavigationIndex, + this.themeMode = ThemeMode.system, + this.appTextScaleFactor = AppTextScaleFactor.medium, + this.flexScheme = FlexScheme.material, + this.fontFamily, + this.status = AppStatus.initial, + this.user, + this.locale, + this.appConfig, + this.environment, + }); + + /// The index of the currently selected item in the bottom navigation bar. + final int selectedBottomNavigationIndex; + + /// The overall theme mode (light, dark, system). + final ThemeMode themeMode; + + /// The text scale factor for the app's UI. + final AppTextScaleFactor appTextScaleFactor; + + /// The active color scheme defined by FlexColorScheme. + final FlexScheme flexScheme; + + /// The active font family name (e.g., from Google Fonts). + /// Null uses the default font family defined in the FlexColorScheme theme. + final String? fontFamily; + + /// The current authentication status of the application. + final AppStatus status; + + /// The current user details. Null if unauthenticated. + final User? user; + + /// User-specific application settings. + final UserAppSettings settings; + + /// The current application locale. + final Locale? locale; + + /// The global application configuration (remote config). + final AppConfig? appConfig; + + /// The current application environment (e.g., production, development, demo). + final local_config.AppEnvironment? environment; + + /// Creates a copy of the current state with updated values. + AppState copyWith({ + int? selectedBottomNavigationIndex, + ThemeMode? themeMode, + FlexScheme? flexScheme, + String? fontFamily, + AppTextScaleFactor? appTextScaleFactor, + AppStatus? status, + User? user, + UserAppSettings? settings, + Locale? locale, + AppConfig? appConfig, + local_config.AppEnvironment? environment, + bool clearFontFamily = false, + bool clearLocale = false, + bool clearAppConfig = false, + bool clearEnvironment = false, + }) { + return AppState( + selectedBottomNavigationIndex: + selectedBottomNavigationIndex ?? this.selectedBottomNavigationIndex, + themeMode: themeMode ?? this.themeMode, + flexScheme: flexScheme ?? this.flexScheme, + fontFamily: clearFontFamily ? null : fontFamily ?? this.fontFamily, + appTextScaleFactor: appTextScaleFactor ?? this.appTextScaleFactor, + status: status ?? this.status, + user: user ?? this.user, + settings: settings ?? this.settings, + locale: clearLocale ? null : locale ?? this.locale, + appConfig: clearAppConfig ? null : appConfig ?? this.appConfig, + environment: clearEnvironment ? null : environment ?? this.environment, + ); + } + + @override + List get props => [ + selectedBottomNavigationIndex, + themeMode, + flexScheme, + fontFamily, + appTextScaleFactor, + status, + user, + settings, + locale, + appConfig, + environment, + ]; +} diff --git a/lib/app/config/app_config.dart b/lib/app/config/app_config.dart new file mode 100644 index 00000000..9310dc63 --- /dev/null +++ b/lib/app/config/app_config.dart @@ -0,0 +1,30 @@ +import 'package:ht_main/app/config/app_environment.dart'; + +class AppConfig { + const AppConfig({ + required this.environment, + required this.baseUrl, + // Add other environment-specific configs here (e.g., analytics keys) + }); + + // Factory constructors for different environments + factory AppConfig.production() => const AppConfig( + environment: AppEnvironment.production, + // Todo(you): Replace with actual production URL + baseUrl: 'http://api.yourproductiondomain.com', + ); + + factory AppConfig.demo() => const AppConfig( + environment: AppEnvironment.demo, + baseUrl: '', // No API access needed for in-memory demo + ); + + factory AppConfig.development() => const AppConfig( + // For local Dart Frog API + environment: AppEnvironment.development, + baseUrl: 'http://localhost:8080', // Default Dart Frog local URL + ); + + final AppEnvironment environment; + final String baseUrl; +} diff --git a/lib/app/config/app_environment.dart b/lib/app/config/app_environment.dart new file mode 100644 index 00000000..afeca55e --- /dev/null +++ b/lib/app/config/app_environment.dart @@ -0,0 +1,24 @@ +/// Defines the different application environments. +enum AppEnvironment { + /// Represents the production environment. + /// + /// This environment is used for the live application, connecting to + /// production backend services and configurations. + production, + + /// Represents a development environment connecting to a local API. + /// + /// This environment is used during local development, typically connecting + /// to a locally running Dart Frog backend API. + development, + + /// Represents a demonstration environment with in-memory data. + /// + /// This environment is designed for showcasing the application's user + /// interface and features without requiring any external backend services. + /// All data operations are handled by mock data stored directly in memory, + /// eliminating the need for API access. + demo, + + // Add other environments like staging, etc. as needed +} diff --git a/lib/app/config/config.dart b/lib/app/config/config.dart new file mode 100644 index 00000000..6195435a --- /dev/null +++ b/lib/app/config/config.dart @@ -0,0 +1,2 @@ +export 'app_config.dart'; +export 'app_environment.dart'; diff --git a/lib/app/view/app.dart b/lib/app/view/app.dart new file mode 100644 index 00000000..d3adeb7e --- /dev/null +++ b/lib/app/view/app.dart @@ -0,0 +1,307 @@ +// +// ignore_for_file: deprecated_member_use + +import 'package:flex_color_scheme/flex_color_scheme.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:go_router/go_router.dart'; +import 'package:ht_auth_repository/ht_auth_repository.dart'; +import 'package:ht_data_repository/ht_data_repository.dart'; +import 'package:ht_kv_storage_service/ht_kv_storage_service.dart'; +import 'package:ht_main/app/bloc/app_bloc.dart'; +import 'package:ht_main/app/config/app_environment.dart'; +import 'package:ht_main/authentication/bloc/authentication_bloc.dart'; +import 'package:ht_main/l10n/app_localizations.dart'; +import 'package:ht_main/l10n/l10n.dart'; +import 'package:ht_main/router/router.dart'; +import 'package:ht_main/shared/services/demo_data_migration_service.dart'; +import 'package:ht_main/shared/theme/app_theme.dart'; +import 'package:ht_main/shared/widgets/failure_state_widget.dart'; +import 'package:ht_main/shared/widgets/loading_state_widget.dart'; +import 'package:ht_shared/ht_shared.dart'; + +class App extends StatelessWidget { + const App({ + required HtAuthRepository htAuthenticationRepository, + required HtDataRepository htHeadlinesRepository, + required HtDataRepository htCategoriesRepository, + required HtDataRepository htCountriesRepository, + required HtDataRepository htSourcesRepository, + required HtDataRepository htUserAppSettingsRepository, + required HtDataRepository + htUserContentPreferencesRepository, + required HtDataRepository htAppConfigRepository, + required HtKVStorageService kvStorageService, + required AppEnvironment environment, + this.demoDataMigrationService, + super.key, + }) : _htAuthenticationRepository = htAuthenticationRepository, + _htHeadlinesRepository = htHeadlinesRepository, + _htCategoriesRepository = htCategoriesRepository, + _htCountriesRepository = htCountriesRepository, + _htSourcesRepository = htSourcesRepository, + _htUserAppSettingsRepository = htUserAppSettingsRepository, + _htUserContentPreferencesRepository = htUserContentPreferencesRepository, + _htAppConfigRepository = htAppConfigRepository, + _kvStorageService = kvStorageService, + _environment = environment; + + final HtAuthRepository _htAuthenticationRepository; + final HtDataRepository _htHeadlinesRepository; + final HtDataRepository _htCategoriesRepository; + final HtDataRepository _htCountriesRepository; + final HtDataRepository _htSourcesRepository; + final HtDataRepository _htUserAppSettingsRepository; + final HtDataRepository + _htUserContentPreferencesRepository; + final HtDataRepository _htAppConfigRepository; + final HtKVStorageService _kvStorageService; + final AppEnvironment _environment; + final DemoDataMigrationService? demoDataMigrationService; + + @override + Widget build(BuildContext context) { + return MultiRepositoryProvider( + providers: [ + RepositoryProvider.value(value: _htAuthenticationRepository), + RepositoryProvider.value(value: _htHeadlinesRepository), + RepositoryProvider.value(value: _htCategoriesRepository), + RepositoryProvider.value(value: _htCountriesRepository), + RepositoryProvider.value(value: _htSourcesRepository), + RepositoryProvider.value(value: _htUserAppSettingsRepository), + RepositoryProvider.value(value: _htUserContentPreferencesRepository), + RepositoryProvider.value(value: _htAppConfigRepository), + RepositoryProvider.value(value: _kvStorageService), + ], + child: MultiBlocProvider( + providers: [ + BlocProvider( + create: (context) => AppBloc( + authenticationRepository: context.read(), + userAppSettingsRepository: context + .read>(), + appConfigRepository: context.read>(), + environment: _environment, + demoDataMigrationService: demoDataMigrationService, + ), + ), + BlocProvider( + create: (context) => AuthenticationBloc( + authenticationRepository: context.read(), + ), + ), + ], + child: _AppView( + htAuthenticationRepository: _htAuthenticationRepository, + htHeadlinesRepository: _htHeadlinesRepository, + htCategoriesRepository: _htCategoriesRepository, + htCountriesRepository: _htCountriesRepository, + htSourcesRepository: _htSourcesRepository, + htUserAppSettingsRepository: _htUserAppSettingsRepository, + htUserContentPreferencesRepository: + _htUserContentPreferencesRepository, + htAppConfigRepository: _htAppConfigRepository, + environment: _environment, + ), + ), + ); + } +} + +class _AppView extends StatefulWidget { + const _AppView({ + required this.htAuthenticationRepository, + required this.htHeadlinesRepository, + required this.htCategoriesRepository, + required this.htCountriesRepository, + required this.htSourcesRepository, + required this.htUserAppSettingsRepository, + required this.htUserContentPreferencesRepository, + required this.htAppConfigRepository, + required this.environment, + }); + + final HtAuthRepository htAuthenticationRepository; + final HtDataRepository htHeadlinesRepository; + final HtDataRepository htCategoriesRepository; + final HtDataRepository htCountriesRepository; + final HtDataRepository htSourcesRepository; + final HtDataRepository htUserAppSettingsRepository; + final HtDataRepository + htUserContentPreferencesRepository; + final HtDataRepository htAppConfigRepository; + final AppEnvironment environment; + + @override + State<_AppView> createState() => _AppViewState(); +} + +class _AppViewState extends State<_AppView> { + late final GoRouter _router; + // Standard notifier that GoRouter listens to. + late final ValueNotifier _statusNotifier; + // Removed Dynamic Links subscription + + @override + void initState() { + super.initState(); + final appBloc = context.read(); + // Initialize the notifier with the BLoC's current state + _statusNotifier = ValueNotifier(appBloc.state.status); + _router = createRouter( + authStatusNotifier: _statusNotifier, + htAuthenticationRepository: widget.htAuthenticationRepository, + htHeadlinesRepository: widget.htHeadlinesRepository, + htCategoriesRepository: widget.htCategoriesRepository, + htCountriesRepository: widget.htCountriesRepository, + htSourcesRepository: widget.htSourcesRepository, + htUserAppSettingsRepository: widget.htUserAppSettingsRepository, + htUserContentPreferencesRepository: + widget.htUserContentPreferencesRepository, + htAppConfigRepository: widget.htAppConfigRepository, + environment: widget.environment, + ); + + // Removed Dynamic Link Initialization + } + + @override + void dispose() { + _statusNotifier.dispose(); + // Removed Dynamic Links subscription cancellation + super.dispose(); + } + + // Removed _initDynamicLinks and _handleDynamicLink methods + + @override + Widget build(BuildContext context) { + // Wrap the part of the tree that needs to react to AppBloc state changes + // (specifically for updating the ValueNotifier) with a BlocListener. + // The BlocBuilder remains for theme changes. + return BlocListener( + // Listen for status changes to update the GoRouter's ValueNotifier + listenWhen: (previous, current) => previous.status != current.status, + listener: (context, state) { + _statusNotifier.value = state.status; + }, + child: BlocBuilder( + // Rebuild the UI based on AppBloc's state (theme, locale, and critical app statuses) + builder: (context, state) { + // Defer l10n access until inside a MaterialApp context + + // Handle critical AppConfig loading states globally + if (state.status == AppStatus.configFetching) { + return MaterialApp( + debugShowCheckedModeBanner: false, + theme: lightTheme( + scheme: FlexScheme.material, + appTextScaleFactor: AppTextScaleFactor.medium, + appFontWeight: AppFontWeight.regular, + fontFamily: null, + ), + darkTheme: darkTheme( + scheme: FlexScheme.material, + appTextScaleFactor: AppTextScaleFactor.medium, + appFontWeight: AppFontWeight.regular, + fontFamily: null, // System default font + ), + themeMode: state + .themeMode, // Still respect light/dark if available from system + localizationsDelegates: AppLocalizations.localizationsDelegates, + supportedLocales: AppLocalizations.supportedLocales, + home: Scaffold( + body: Builder( + // Use Builder to get context under MaterialApp + builder: (innerContext) { + final l10n = innerContext.l10n; + return LoadingStateWidget( + icon: Icons.settings_applications_outlined, + headline: l10n.headlinesFeedLoadingHeadline, + subheadline: l10n.pleaseWait, + ); + }, + ), + ), + ); + } + + if (state.status == AppStatus.configFetchFailed) { + return MaterialApp( + debugShowCheckedModeBanner: false, + theme: lightTheme( + scheme: FlexScheme.material, + appTextScaleFactor: AppTextScaleFactor.medium, + appFontWeight: AppFontWeight.regular, + fontFamily: null, + ), + darkTheme: darkTheme( + scheme: FlexScheme.material, + appTextScaleFactor: AppTextScaleFactor.medium, + appFontWeight: AppFontWeight.regular, + fontFamily: null, + ), + themeMode: state.themeMode, + localizationsDelegates: AppLocalizations.localizationsDelegates, + supportedLocales: AppLocalizations.supportedLocales, + home: Scaffold( + body: Builder( + // Use Builder to get context under MaterialApp + builder: (innerContext) { + final l10n = innerContext.l10n; + return FailureStateWidget( + message: l10n.unknownError, + retryButtonText: 'Retry', + onRetry: () { + // Use outer context for BLoC access + context.read().add( + const AppConfigFetchRequested(), + ); + }, + ); + }, + ), + ), + ); + } + + // If config is loaded (or not in a failed/fetching state for config), proceed with main app UI + // It's safe to access l10n here if needed for print statements, + // as this path implies we are about to build the main MaterialApp.router + // which provides localizations. + // final l10n = context.l10n; + print('[_AppViewState] Building MaterialApp.router'); + print('[_AppViewState] state.fontFamily: ${state.fontFamily}'); + print( + '[_AppViewState] state.settings.displaySettings.fontFamily: ${state.settings.displaySettings.fontFamily}', + ); + print( + '[_AppViewState] state.settings.displaySettings.fontWeight: ${state.settings.displaySettings.fontWeight}', + ); + return MaterialApp.router( + debugShowCheckedModeBanner: false, + themeMode: state.themeMode, + theme: lightTheme( + scheme: state.flexScheme, + appTextScaleFactor: + state.settings.displaySettings.textScaleFactor, + appFontWeight: state.settings.displaySettings.fontWeight, + fontFamily: state.settings.displaySettings.fontFamily, + ), + darkTheme: darkTheme( + scheme: state.flexScheme, + appTextScaleFactor: + state.settings.displaySettings.textScaleFactor, + appFontWeight: state.settings.displaySettings.fontWeight, + fontFamily: state.settings.displaySettings.fontFamily, + ), + routerConfig: _router, + locale: state.locale, + localizationsDelegates: AppLocalizations.localizationsDelegates, + supportedLocales: AppLocalizations.supportedLocales, + ); + }, + ), + ); + } +} diff --git a/lib/app/view/app_shell.dart b/lib/app/view/app_shell.dart new file mode 100644 index 00000000..08ad06a7 --- /dev/null +++ b/lib/app/view/app_shell.dart @@ -0,0 +1,77 @@ +// +// ignore_for_file: lines_longer_than_80_chars + +import 'package:flutter/material.dart'; +import 'package:flutter_adaptive_scaffold/flutter_adaptive_scaffold.dart'; +import 'package:go_router/go_router.dart'; +import 'package:ht_main/l10n/l10n.dart'; + +/// A responsive scaffold shell for the main application sections. +/// +/// Uses [AdaptiveScaffold] to provide appropriate navigation +/// (bottom bar, rail, or drawer) based on screen size. +class AppShell extends StatelessWidget { + /// Creates an [AppShell]. + /// + /// Requires a [navigationShell] to manage the nested navigators + /// for each section. + const AppShell({required this.navigationShell, super.key}); + + /// The [StatefulNavigationShell] provided by [GoRouter] for managing nested + /// navigators in a stateful way. + final StatefulNavigationShell navigationShell; + + // Corrected callback signature if needed, though the original looks standard. + // Let's ensure the AdaptiveScaffold call uses the correct signature. + // The primary issue was likely the missing import. + + void _goBranch(int index) { + // Navigate to the corresponding branch using the index. + // The `saveState` parameter is crucial for preserving the state + // of each navigation branch (e.g., scroll position). + navigationShell.goBranch( + index, + // Navigate to the initial location of the branch if the user taps + // the same active destination again. Otherwise, defaults to false. + initialLocation: index == navigationShell.currentIndex, + ); + } + + @override + Widget build(BuildContext context) { + final l10n = context.l10n; + + return AdaptiveScaffold( + useDrawer: false, + // Use the index from the navigationShell to sync the selected destination. + selectedIndex: navigationShell.currentIndex, + // Callback when a destination is selected. + // Ensure the parameter type is explicitly int. + onSelectedIndexChange: _goBranch, + // Define the navigation destinations. + destinations: [ + NavigationDestination( + // Make const + icon: const Icon(Icons.article_outlined), + selectedIcon: const Icon(Icons.article), + label: l10n.bottomNavFeedLabel, + ), + NavigationDestination( + // Make const + icon: const Icon(Icons.search_outlined), + selectedIcon: const Icon(Icons.search), + label: l10n.bottomNavSearchLabel, + ), + NavigationDestination( + // Make const + icon: const Icon(Icons.account_circle_outlined), + selectedIcon: const Icon(Icons.account_circle), + label: l10n.bottomNavAccountLabel, + ), + ], + // The body displays the widget tree for the currently selected branch. + // The [NavigationShell] widget handles building the appropriate page. + body: (_) => navigationShell, + ); + } +} diff --git a/lib/authentication/bloc/authentication_bloc.dart b/lib/authentication/bloc/authentication_bloc.dart new file mode 100644 index 00000000..95656807 --- /dev/null +++ b/lib/authentication/bloc/authentication_bloc.dart @@ -0,0 +1,181 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:equatable/equatable.dart'; +import 'package:ht_auth_repository/ht_auth_repository.dart'; +import 'package:ht_shared/ht_shared.dart' + show + AuthenticationException, + HtHttpException, + InvalidInputException, + NetworkException, + OperationFailedException, + ServerException, + User; + +part 'authentication_event.dart'; +part 'authentication_state.dart'; + +/// {@template authentication_bloc} +/// Bloc responsible for managing the authentication state of the application. +/// {@endtemplate} +class AuthenticationBloc + extends Bloc { + /// {@macro authentication_bloc} + AuthenticationBloc({required HtAuthRepository authenticationRepository}) + : _authenticationRepository = authenticationRepository, + super(AuthenticationInitial()) { + // Listen to authentication state changes from the repository + _userAuthSubscription = _authenticationRepository.authStateChanges.listen( + (user) => add(_AuthenticationUserChanged(user: user)), + ); + + on<_AuthenticationUserChanged>(_onAuthenticationUserChanged); + on( + _onAuthenticationRequestSignInCodeRequested, + ); + on(_onAuthenticationVerifyCodeRequested); + on( + _onAuthenticationAnonymousSignInRequested, + ); + on(_onAuthenticationSignOutRequested); + } + + final HtAuthRepository _authenticationRepository; + late final StreamSubscription _userAuthSubscription; + + /// Handles [_AuthenticationUserChanged] events. + Future _onAuthenticationUserChanged( + _AuthenticationUserChanged event, + Emitter emit, + ) async { + if (event.user != null) { + emit(AuthenticationAuthenticated(user: event.user!)); + } else { + emit(AuthenticationUnauthenticated()); + } + } + + /// Handles [AuthenticationRequestSignInCodeRequested] events. + Future _onAuthenticationRequestSignInCodeRequested( + AuthenticationRequestSignInCodeRequested event, + Emitter emit, + ) async { + // Validate email format (basic check) + if (event.email.isEmpty || !event.email.contains('@')) { + emit(const AuthenticationFailure('Please enter a valid email address.')); + return; + } + emit(AuthenticationRequestCodeLoading()); + try { + await _authenticationRepository.requestSignInCode(event.email); + emit(AuthenticationCodeSentSuccess(email: event.email)); + } on InvalidInputException catch (e) { + emit(AuthenticationFailure('Invalid input: ${e.message}')); + } on NetworkException catch (_) { + emit(const AuthenticationFailure('Network error occurred.')); + } on ServerException catch (e) { + emit(AuthenticationFailure('Server error: ${e.message}')); + } on OperationFailedException catch (e) { + emit(AuthenticationFailure('Operation failed: ${e.message}')); + } on HtHttpException catch (e) { + // Catch any other HtHttpException subtypes + final message = e.message.isNotEmpty + ? e.message + : 'An unspecified HTTP error occurred.'; + emit(AuthenticationFailure('HTTP error: $message')); + } catch (e) { + // Catch any other unexpected errors + emit(AuthenticationFailure('An unexpected error occurred: $e')); + // Optionally log the stackTrace here + } + } + + /// Handles [AuthenticationVerifyCodeRequested] events. + Future _onAuthenticationVerifyCodeRequested( + AuthenticationVerifyCodeRequested event, + Emitter emit, + ) async { + emit(AuthenticationLoading()); + try { + await _authenticationRepository.verifySignInCode(event.email, event.code); + // On success, the _AuthenticationUserChanged listener will handle + // emitting AuthenticationAuthenticated. + } on InvalidInputException catch (e) { + emit(AuthenticationFailure(e.message)); + } on AuthenticationException catch (e) { + emit(AuthenticationFailure(e.message)); + } on NetworkException catch (_) { + emit(const AuthenticationFailure('Network error occurred.')); + } on ServerException catch (e) { + emit(AuthenticationFailure('Server error: ${e.message}')); + } on OperationFailedException catch (e) { + emit(AuthenticationFailure('Operation failed: ${e.message}')); + } on HtHttpException catch (e) { + // Catch any other HtHttpException subtypes + emit(AuthenticationFailure('HTTP error: ${e.message}')); + } catch (e) { + // Catch any other unexpected errors + emit(AuthenticationFailure('An unexpected error occurred: $e')); + // Optionally log the stackTrace here + } + } + + /// Handles [AuthenticationAnonymousSignInRequested] events. + Future _onAuthenticationAnonymousSignInRequested( + AuthenticationAnonymousSignInRequested event, + Emitter emit, + ) async { + emit(AuthenticationLoading()); + try { + await _authenticationRepository.signInAnonymously(); + // On success, the _AuthenticationUserChanged listener will handle + // emitting AuthenticationAuthenticated. + } on NetworkException catch (_) { + emit(const AuthenticationFailure('Network error occurred.')); + } on ServerException catch (e) { + emit(AuthenticationFailure('Server error: ${e.message}')); + } on OperationFailedException catch (e) { + emit(AuthenticationFailure('Operation failed: ${e.message}')); + } on HtHttpException catch (e) { + // Catch any other HtHttpException subtypes + emit(AuthenticationFailure('HTTP error: ${e.message}')); + } catch (e) { + emit(AuthenticationFailure('An unexpected error occurred: $e')); + } + } + + /// Handles [AuthenticationSignOutRequested] events. + Future _onAuthenticationSignOutRequested( + AuthenticationSignOutRequested event, + Emitter emit, + ) async { + emit(AuthenticationLoading()); + try { + await _authenticationRepository.signOut(); + // On success, the _AuthenticationUserChanged listener will handle + // emitting AuthenticationUnauthenticated. + // No need to emit AuthenticationLoading() before calling signOut if + // the authStateChanges listener handles the subsequent state update. + // However, if immediate feedback is desired, it can be kept. + // For now, let's assume the listener is sufficient. + } on NetworkException catch (_) { + emit(const AuthenticationFailure('Network error occurred.')); + } on ServerException catch (e) { + emit(AuthenticationFailure('Server error: ${e.message}')); + } on OperationFailedException catch (e) { + emit(AuthenticationFailure('Operation failed: ${e.message}')); + } on HtHttpException catch (e) { + // Catch any other HtHttpException subtypes + emit(AuthenticationFailure('HTTP error: ${e.message}')); + } catch (e) { + emit(AuthenticationFailure('An unexpected error occurred: $e')); + } + } + + @override + Future close() { + _userAuthSubscription.cancel(); + return super.close(); + } +} diff --git a/lib/authentication/bloc/authentication_event.dart b/lib/authentication/bloc/authentication_event.dart new file mode 100644 index 00000000..ac8e7608 --- /dev/null +++ b/lib/authentication/bloc/authentication_event.dart @@ -0,0 +1,78 @@ +part of 'authentication_bloc.dart'; + +/// {@template authentication_event} +/// Base class for authentication events. +/// {@endtemplate} +sealed class AuthenticationEvent extends Equatable { + /// {@macro authentication_event} + const AuthenticationEvent(); + + @override + List get props => []; +} + +/// {@template authentication_request_sign_in_code_requested} +/// Event triggered when the user requests a sign-in code to be sent +/// to their email. +/// {@endtemplate} +final class AuthenticationRequestSignInCodeRequested + extends AuthenticationEvent { + /// {@macro authentication_request_sign_in_code_requested} + const AuthenticationRequestSignInCodeRequested({required this.email}); + + /// The user's email address. + final String email; + + @override + List get props => [email]; +} + +/// {@template authentication_verify_code_requested} +/// Event triggered when the user attempts to sign in using an email and code. +/// {@endtemplate} +final class AuthenticationVerifyCodeRequested extends AuthenticationEvent { + /// {@macro authentication_verify_code_requested} + const AuthenticationVerifyCodeRequested({ + required this.email, + required this.code, + }); + + /// The user's email address. + final String email; + + /// The verification code received by the user. + final String code; + + @override + List get props => [email, code]; +} + +/// {@template authentication_anonymous_sign_in_requested} +/// Event triggered when the user requests to sign in anonymously. +/// {@endtemplate} +final class AuthenticationAnonymousSignInRequested extends AuthenticationEvent { + /// {@macro authentication_anonymous_sign_in_requested} + const AuthenticationAnonymousSignInRequested(); +} + +/// {@template authentication_sign_out_requested} +/// Event triggered when the user requests to sign out. +/// {@endtemplate} +final class AuthenticationSignOutRequested extends AuthenticationEvent { + /// {@macro authentication_sign_out_requested} + const AuthenticationSignOutRequested(); +} + +/// {@template _authentication_user_changed} +/// Internal event triggered when the authentication state changes. +/// {@endtemplate} +final class _AuthenticationUserChanged extends AuthenticationEvent { + /// {@macro _authentication_user_changed} + const _AuthenticationUserChanged({required this.user}); + + /// The current authenticated user, or null if unauthenticated. + final User? user; + + @override + List get props => [user]; +} diff --git a/lib/authentication/bloc/authentication_state.dart b/lib/authentication/bloc/authentication_state.dart new file mode 100644 index 00000000..67c16504 --- /dev/null +++ b/lib/authentication/bloc/authentication_state.dart @@ -0,0 +1,74 @@ +part of 'authentication_bloc.dart'; + +/// {@template authentication_state} +/// Base class for authentication states. +/// {@endtemplate} +sealed class AuthenticationState extends Equatable { + /// {@macro authentication_state} + const AuthenticationState(); + + @override + List get props => []; +} + +/// {@template authentication_initial} +/// The initial authentication state. +/// {@endtemplate} +final class AuthenticationInitial extends AuthenticationState {} + +/// {@template authentication_loading} +/// A state indicating that an authentication operation is in progress. +/// {@endtemplate} +final class AuthenticationLoading extends AuthenticationState {} + +/// {@template authentication_authenticated} +/// Represents a successful authentication. +/// {@endtemplate} +final class AuthenticationAuthenticated extends AuthenticationState { + /// {@macro authentication_authenticated} + const AuthenticationAuthenticated({required this.user}); + + /// The authenticated [User] object. + final User user; + + @override + List get props => [user]; +} + +/// {@template authentication_unauthenticated} +/// Represents an unauthenticated state. +/// {@endtemplate} +final class AuthenticationUnauthenticated extends AuthenticationState {} + +/// {@template authentication_request_code_loading} +/// State indicating that the sign-in code is being requested. +/// {@endtemplate} +final class AuthenticationRequestCodeLoading extends AuthenticationState {} + +/// {@template authentication_code_sent_success} +/// State indicating that the sign-in code was sent successfully. +/// {@endtemplate} +final class AuthenticationCodeSentSuccess extends AuthenticationState { + /// {@macro authentication_code_sent_success} + const AuthenticationCodeSentSuccess({required this.email}); + + /// The email address the code was sent to. + final String email; + + @override + List get props => [email]; +} + +/// {@template authentication_failure} +/// Represents an authentication failure. +/// {@endtemplate} +final class AuthenticationFailure extends AuthenticationState { + /// {@macro authentication_failure} + const AuthenticationFailure(this.errorMessage); + + /// The error message describing the authentication failure. + final String errorMessage; + + @override + List get props => [errorMessage]; +} diff --git a/lib/authentication/view/authentication_page.dart b/lib/authentication/view/authentication_page.dart new file mode 100644 index 00000000..09b2cc0b --- /dev/null +++ b/lib/authentication/view/authentication_page.dart @@ -0,0 +1,181 @@ +// +// ignore_for_file: lines_longer_than_80_chars + +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:go_router/go_router.dart'; +import 'package:ht_dashboard/authentication/bloc/authentication_bloc.dart'; +import 'package:ht_dashboard/l10n/l10n.dart'; +import 'package:ht_dashboard/router/routes.dart'; +import 'package:ht_dashboard/shared/constants/app_spacing.dart'; + +/// {@template authentication_page} +/// Displays authentication options (Google, Email, Anonymous) based on context. +/// +/// This page can be used for both initial sign-in and for connecting an +/// existing anonymous account. +/// {@endtemplate} +class AuthenticationPage extends StatelessWidget { + /// {@macro authentication_page} + const AuthenticationPage({ + required this.headline, + required this.subHeadline, + required this.showAnonymousButton, + required this.isLinkingContext, + super.key, + }); + + /// The main title displayed on the page. + final String headline; + + /// The descriptive text displayed below the headline. + final String subHeadline; + + /// Whether to show the "Continue Anonymously" button. + final bool showAnonymousButton; + + /// Whether this page is being shown in the account linking context. + final bool isLinkingContext; + + @override + Widget build(BuildContext context) { + final l10n = context.l10n; + final textTheme = Theme.of(context).textTheme; + final colorScheme = Theme.of(context).colorScheme; + + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.transparent, + elevation: 0, + // Conditionally add the leading close button only in linking context + leading: isLinkingContext + ? IconButton( + icon: const Icon(Icons.close), + tooltip: MaterialLocalizations.of(context).closeButtonTooltip, + onPressed: () { + // Navigate back to the account page when close is pressed + context.goNamed(Routes.accountName); + }, + ) + : null, + ), + body: SafeArea( + child: BlocConsumer( + // Listener remains crucial for feedback (errors) + listener: (context, state) { + if (state is AuthenticationFailure) { + ScaffoldMessenger.of(context) + ..hideCurrentSnackBar() + ..showSnackBar( + SnackBar( + content: Text( + // Provide a more user-friendly error message if possible + state.errorMessage, + ), + backgroundColor: colorScheme.error, + ), + ); + } + // Success states (Google/Anonymous) are typically handled by + // the AppBloc listening to repository changes and triggering redirects. + // Email link success is handled in the dedicated email flow pages. + }, + builder: (context, state) { + final isLoading = state is AuthenticationLoading; + + return Padding( + padding: const EdgeInsets.all(AppSpacing.paddingLarge), + child: Center( + child: SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // --- Icon --- + Padding( + padding: const EdgeInsets.only(bottom: AppSpacing.xl), + child: Icon( + isLinkingContext ? Icons.sync : Icons.newspaper, + size: AppSpacing.xxl * 2, + color: colorScheme.primary, + ), + ), + // const SizedBox(height: AppSpacing.lg), + // --- Headline and Subheadline --- + Text( + headline, + style: textTheme.headlineMedium?.copyWith( + fontWeight: FontWeight.bold, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: AppSpacing.md), + Text( + subHeadline, + style: textTheme.bodyLarge?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: AppSpacing.xxl), + + // --- Email Sign-In Button --- + ElevatedButton.icon( + icon: const Icon(Icons.email_outlined), + onPressed: isLoading + ? null + : () { + context.goNamed( + isLinkingContext + ? Routes.linkingRequestCodeName + : Routes.requestCodeName, + ); + }, + label: Text(l10n.authenticationEmailSignInButton), + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric( + vertical: AppSpacing.md, + ), + textStyle: textTheme.labelLarge, + ), + ), + const SizedBox(height: AppSpacing.lg), + + // --- Anonymous Sign-In Button (Conditional) --- + if (showAnonymousButton) ...[ + OutlinedButton.icon( + icon: const Icon(Icons.person_outline), + onPressed: isLoading + ? null + : () => context.read().add( + const AuthenticationAnonymousSignInRequested(), + ), + label: Text(l10n.authenticationAnonymousSignInButton), + style: OutlinedButton.styleFrom( + padding: const EdgeInsets.symmetric( + vertical: AppSpacing.md, + ), + textStyle: textTheme.labelLarge, + ), + ), + ], + + // --- Loading Indicator --- + if (isLoading && + state is! AuthenticationRequestCodeLoading) ...[ + const Padding( + padding: EdgeInsets.only(top: AppSpacing.xl), + child: Center(child: CircularProgressIndicator()), + ), + ], + ], + ), + ), + ), + ); + }, + ), + ), + ); + } +} diff --git a/lib/authentication/view/email_code_verification_page.dart b/lib/authentication/view/email_code_verification_page.dart new file mode 100644 index 00000000..78fd6061 --- /dev/null +++ b/lib/authentication/view/email_code_verification_page.dart @@ -0,0 +1,215 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:ht_dashboard/app/bloc/app_bloc.dart'; +import 'package:ht_dashboard/app/config/config.dart'; +import 'package:ht_dashboard/authentication/bloc/authentication_bloc.dart'; +import 'package:ht_dashboard/l10n/l10n.dart'; +import 'package:ht_dashboard/shared/constants/app_spacing.dart'; + +/// {@template email_code_verification_page} +/// Page where the user enters the 6-digit code sent to their email +/// to complete the sign-in or account linking process. +/// {@endtemplate} +class EmailCodeVerificationPage extends StatelessWidget { + /// {@macro email_code_verification_page} + const EmailCodeVerificationPage({required this.email, super.key}); + + /// The email address the sign-in code was sent to. + final String email; + + @override + Widget build(BuildContext context) { + final l10n = context.l10n; + final textTheme = Theme.of(context).textTheme; + final colorScheme = Theme.of(context).colorScheme; + + return Scaffold( + appBar: AppBar(title: Text(l10n.emailCodeSentPageTitle)), + body: SafeArea( + child: BlocConsumer( + listener: (context, state) { + if (state is AuthenticationFailure) { + ScaffoldMessenger.of(context) + ..hideCurrentSnackBar() + ..showSnackBar( + SnackBar( + content: Text(state.errorMessage), + backgroundColor: colorScheme.error, + ), + ); + } + // Successful authentication is handled by AppBloc redirecting. + }, + builder: (context, state) { + final isLoading = state is AuthenticationLoading; + + return Padding( + padding: const EdgeInsets.all(AppSpacing.paddingLarge), + child: Center( + child: SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Icon( + Icons.mark_email_read_outlined, + size: AppSpacing.xxl * 2, + color: colorScheme.primary, + ), + const SizedBox(height: AppSpacing.xl), + Text( + l10n.emailCodeSentConfirmation(email), + style: textTheme.headlineSmall?.copyWith( + fontWeight: FontWeight.bold, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: AppSpacing.lg), + Text( + l10n.emailCodeSentInstructions, + style: textTheme.bodyLarge?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + textAlign: TextAlign.center, + ), + // Display demo code if in demo environment + BlocSelector( + selector: (state) => state.environment, + builder: (context, environment) { + if (environment == AppEnvironment.demo) { + return Column( + children: [ + const SizedBox(height: AppSpacing.md), + Text( + l10n.demoVerificationCodeMessage('123456'), + style: textTheme.bodyMedium?.copyWith( + color: colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + textAlign: TextAlign.center, + ), + ], + ); + } + return const SizedBox.shrink(); + }, + ), + const SizedBox(height: AppSpacing.xl), + _EmailCodeVerificationForm( + email: email, + isLoading: isLoading, + ), + ], + ), + ), + ), + ); + }, + ), + ), + ); + } +} + +class _EmailCodeVerificationForm extends StatefulWidget { + const _EmailCodeVerificationForm({ + required this.email, + required this.isLoading, + }); + + final String email; + final bool isLoading; + + @override + State<_EmailCodeVerificationForm> createState() => + _EmailCodeVerificationFormState(); +} + +class _EmailCodeVerificationFormState + extends State<_EmailCodeVerificationForm> { + final _formKey = GlobalKey(); + final _codeController = TextEditingController(); + + @override + void dispose() { + _codeController.dispose(); + super.dispose(); + } + + void _submitForm() { + if (_formKey.currentState!.validate()) { + context.read().add( + AuthenticationVerifyCodeRequested( + email: widget.email, + code: _codeController.text.trim(), + ), + ); + } + } + + @override + Widget build(BuildContext context) { + final l10n = context.l10n; + final textTheme = Theme.of(context).textTheme; + + return Form( + key: _formKey, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + // No horizontal padding needed if column is stretched + // padding: const EdgeInsets.symmetric(horizontal: AppSpacing.md), + padding: EdgeInsets.zero, + child: TextFormField( + controller: _codeController, + decoration: InputDecoration( + labelText: l10n.emailCodeVerificationHint, + // border: const OutlineInputBorder(), + counterText: '', + ), + keyboardType: TextInputType.number, + inputFormatters: [FilteringTextInputFormatter.digitsOnly], + maxLength: 6, + textAlign: TextAlign.center, + style: textTheme.headlineSmall, + enabled: !widget.isLoading, + validator: (value) { + if (value == null || value.isEmpty) { + return l10n.emailCodeValidationEmptyError; + } + if (value.length != 6) { + return l10n.emailCodeValidationLengthError; + } + return null; + }, + onFieldSubmitted: widget.isLoading ? null : (_) => _submitForm(), + ), + ), + const SizedBox(height: AppSpacing.xxl), + ElevatedButton( + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric( + vertical: AppSpacing.md, + horizontal: AppSpacing.lg, + ), + textStyle: textTheme.labelLarge, + ), + onPressed: widget.isLoading ? null : _submitForm, + child: widget.isLoading + ? const SizedBox( + height: AppSpacing.xl, + width: AppSpacing.xl, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.white, + ), + ) + : Text(l10n.emailCodeVerificationButtonLabel), + ), + ], + ), + ); + } +} diff --git a/lib/authentication/view/request_code_page.dart b/lib/authentication/view/request_code_page.dart new file mode 100644 index 00000000..8ebada2a --- /dev/null +++ b/lib/authentication/view/request_code_page.dart @@ -0,0 +1,229 @@ +// +// ignore_for_file: lines_longer_than_80_chars + +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:go_router/go_router.dart'; +import 'package:ht_dashboard/authentication/bloc/authentication_bloc.dart'; +import 'package:ht_dashboard/l10n/l10n.dart'; +import 'package:ht_dashboard/router/routes.dart'; +import 'package:ht_dashboard/shared/constants/app_spacing.dart'; + +/// {@template request_code_page} +/// Page for initiating the email code sign-in process. +/// Explains the passwordless flow and collects the user's email to send a +/// verification code. +/// {@endtemplate} +class RequestCodePage extends StatelessWidget { + /// {@macro request_code_page} + const RequestCodePage({required this.isLinkingContext, super.key}); + + /// Whether this page is being shown in the account linking context. + final bool isLinkingContext; + + @override + Widget build(BuildContext context) { + // AuthenticationBloc is assumed to be provided by a parent route. + // Pass the linking context flag down to the view. + return _RequestCodeView(isLinkingContext: isLinkingContext); + } +} + +class _RequestCodeView extends StatelessWidget { + // Accept the flag from the parent page. + const _RequestCodeView({required this.isLinkingContext}); + + final bool isLinkingContext; + + @override + Widget build(BuildContext context) { + final l10n = context.l10n; + final colorScheme = Theme.of(context).colorScheme; + final textTheme = Theme.of(context).textTheme; + + return Scaffold( + appBar: AppBar( + title: Text(l10n.emailSignInPageTitle), + // Add a custom leading back button to control navigation based on context. + leading: IconButton( + icon: const Icon(Icons.arrow_back), + tooltip: MaterialLocalizations.of(context).backButtonTooltip, + onPressed: () { + // Navigate back differently based on the context. + if (isLinkingContext) { + // If linking, go back to Auth page preserving the linking query param. + context.goNamed( + Routes.authenticationName, + queryParameters: isLinkingContext + ? {'context': 'linking'} + : const {}, + ); + } else { + // If normal sign-in, just go back to the Auth page. + context.goNamed(Routes.authenticationName); + } + }, + ), + ), + body: SafeArea( + child: BlocConsumer( + listener: (context, state) { + if (state is AuthenticationFailure) { + ScaffoldMessenger.of(context) + ..hideCurrentSnackBar() + ..showSnackBar( + SnackBar( + content: Text(state.errorMessage), + backgroundColor: colorScheme.error, + ), + ); + } else if (state is AuthenticationCodeSentSuccess) { + // Navigate to the code verification page on success, passing the email + context.goNamed( + isLinkingContext + ? Routes.linkingVerifyCodeName + : Routes.verifyCodeName, + pathParameters: {'email': state.email}, + ); + } + }, + // BuildWhen prevents unnecessary rebuilds if only listening + buildWhen: (previous, current) => + current is AuthenticationInitial || + current is AuthenticationRequestCodeLoading || + current is AuthenticationFailure, + builder: (context, state) { + final isLoading = state is AuthenticationRequestCodeLoading; + + return Padding( + padding: const EdgeInsets.all(AppSpacing.paddingLarge), + child: Center( + child: SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // --- Icon --- + Padding( + padding: const EdgeInsets.only(bottom: AppSpacing.xl), + child: Icon( + Icons.email_outlined, + size: AppSpacing.xxl * 2, + color: colorScheme.primary, + ), + ), + // const SizedBox(height: AppSpacing.lg), + // --- Explanation Text --- + Text( + l10n.requestCodePageHeadline, + style: textTheme.headlineSmall?.copyWith( + fontWeight: FontWeight.bold, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: AppSpacing.md), + Text( + l10n.requestCodePageSubheadline, + style: textTheme.bodyLarge?.copyWith( + color: colorScheme.onSurfaceVariant, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: AppSpacing.xxl), + _EmailLinkForm(isLoading: isLoading), + ], + ), + ), + ), + ); + }, + ), + ), + ); + } +} + +/// --- Reusable Email Form Widget --- /// + +class _EmailLinkForm extends StatefulWidget { + const _EmailLinkForm({required this.isLoading}); + + final bool isLoading; + + @override + State<_EmailLinkForm> createState() => _EmailLinkFormState(); +} + +class _EmailLinkFormState extends State<_EmailLinkForm> { + final _emailController = TextEditingController(); + final _formKey = GlobalKey(); + + @override + void dispose() { + _emailController.dispose(); + super.dispose(); + } + + void _submitForm() { + if (_formKey.currentState!.validate()) { + context.read().add( + AuthenticationRequestSignInCodeRequested( + email: _emailController.text.trim(), + ), + ); + } + } + + @override + Widget build(BuildContext context) { + final l10n = context.l10n; + final textTheme = Theme.of(context).textTheme; + final colorScheme = Theme.of(context).colorScheme; + + return Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + TextFormField( + controller: _emailController, + decoration: InputDecoration( + labelText: l10n.requestCodeEmailLabel, + hintText: l10n.requestCodeEmailHint, + // border: const OutlineInputBorder(), + ), + keyboardType: TextInputType.emailAddress, + autocorrect: false, + textInputAction: TextInputAction.done, + enabled: !widget.isLoading, + validator: (value) { + if (value == null || value.isEmpty || !value.contains('@')) { + return l10n.accountLinkingEmailValidationError; + } + return null; + }, + onFieldSubmitted: (_) => _submitForm(), + ), + const SizedBox(height: AppSpacing.lg), + ElevatedButton( + onPressed: widget.isLoading ? null : _submitForm, + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: AppSpacing.md), + textStyle: textTheme.labelLarge, + ), + child: widget.isLoading + ? SizedBox( + height: AppSpacing.xl, + width: AppSpacing.xl, + child: CircularProgressIndicator( + strokeWidth: 2, + color: colorScheme.onPrimary, + ), + ) + : Text(l10n.requestCodeSendCodeButton), + ), + ], + ), + ); + } +} diff --git a/lib/bloc_observer.dart b/lib/bloc_observer.dart new file mode 100644 index 00000000..97afcf43 --- /dev/null +++ b/lib/bloc_observer.dart @@ -0,0 +1,19 @@ +import 'dart:developer'; + +import 'package:bloc/bloc.dart'; + +class AppBlocObserver extends BlocObserver { + const AppBlocObserver(); + + @override + void onChange(BlocBase bloc, Change change) { + super.onChange(bloc, change); + log('onChange(${bloc.runtimeType}, $change)'); + } + + @override + void onError(BlocBase bloc, Object error, StackTrace stackTrace) { + log('onError(${bloc.runtimeType}, $error, $stackTrace)'); + super.onError(bloc, error, stackTrace); + } +} diff --git a/lib/bootstrap.dart b/lib/bootstrap.dart new file mode 100644 index 00000000..0a56d908 --- /dev/null +++ b/lib/bootstrap.dart @@ -0,0 +1,223 @@ +import 'package:flutter/foundation.dart' show kIsWeb; +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:ht_auth_api/ht_auth_api.dart'; +import 'package:ht_auth_client/ht_auth_client.dart'; +import 'package:ht_auth_inmemory/ht_auth_inmemory.dart'; +import 'package:ht_auth_repository/ht_auth_repository.dart'; +import 'package:ht_dashboard/app/app.dart'; +import 'package:ht_dashboard/app/config/config.dart' as app_config; +import 'package:ht_dashboard/bloc_observer.dart'; +import 'package:ht_dashboard/shared/localization/ar_timeago_messages.dart'; +import 'package:ht_dashboard/shared/localization/en_timeago_messages.dart'; +import 'package:ht_data_api/ht_data_api.dart'; +import 'package:ht_data_client/ht_data_client.dart'; +import 'package:ht_data_inmemory/ht_data_inmemory.dart'; +import 'package:ht_data_repository/ht_data_repository.dart'; +import 'package:ht_http_client/ht_http_client.dart'; +import 'package:ht_kv_storage_shared_preferences/ht_kv_storage_shared_preferences.dart'; +import 'package:ht_shared/ht_shared.dart'; +import 'package:timeago/timeago.dart' as timeago; + +Future bootstrap( + app_config.AppConfig appConfig, + app_config.AppEnvironment environment, +) async { + WidgetsFlutterBinding.ensureInitialized(); + Bloc.observer = const AppBlocObserver(); + + timeago.setLocaleMessages('en', EnTimeagoMessages()); + timeago.setLocaleMessages('ar', ArTimeagoMessages()); + + final kvStorage = await HtKvStorageSharedPreferences.getInstance(); + + late final HtAuthClient authClient; + late final HtAuthRepository authenticationRepository; + HtHttpClient? httpClient; + + if (appConfig.environment == app_config.AppEnvironment.demo) { + authClient = HtAuthInmemory(); + authenticationRepository = HtAuthRepository( + authClient: authClient, + storageService: kvStorage, + ); + } else { + // For production and development environments, an HTTP client is needed. + httpClient = HtHttpClient( + baseUrl: appConfig.baseUrl, + tokenProvider: () => authenticationRepository.getAuthToken(), + isWeb: kIsWeb, + ); + authClient = HtAuthApi(httpClient: httpClient); + authenticationRepository = HtAuthRepository( + authClient: authClient, + storageService: kvStorage, + ); + } + + // Conditional data client instantiation based on environment + HtDataClient headlinesClient; + HtDataClient categoriesClient; + HtDataClient countriesClient; + HtDataClient sourcesClient; + HtDataClient userContentPreferencesClient; + HtDataClient userAppSettingsClient; + HtDataClient appConfigClient; + + if (appConfig.environment == app_config.AppEnvironment.demo) { + headlinesClient = HtDataInMemory( + toJson: (i) => i.toJson(), + getId: (i) => i.id, + initialData: headlinesFixturesData.map(Headline.fromJson).toList(), + ); + categoriesClient = HtDataInMemory( + toJson: (i) => i.toJson(), + getId: (i) => i.id, + initialData: categoriesFixturesData.map(Category.fromJson).toList(), + ); + countriesClient = HtDataInMemory( + toJson: (i) => i.toJson(), + getId: (i) => i.id, + initialData: countriesFixturesData.map(Country.fromJson).toList(), + ); + sourcesClient = HtDataInMemory( + toJson: (i) => i.toJson(), + getId: (i) => i.id, + initialData: sourcesFixturesData.map(Source.fromJson).toList(), + ); + userContentPreferencesClient = HtDataInMemory( + toJson: (i) => i.toJson(), + getId: (i) => i.id, + ); + userAppSettingsClient = HtDataInMemory( + toJson: (i) => i.toJson(), + getId: (i) => i.id, + ); + appConfigClient = HtDataInMemory( + toJson: (i) => i.toJson(), + getId: (i) => i.id, + initialData: [AppConfig.fromJson(appConfigFixtureData)], + ); + } else if (appConfig.environment == app_config.AppEnvironment.development) { + headlinesClient = HtDataApi( + httpClient: httpClient!, + modelName: 'headline', + fromJson: Headline.fromJson, + toJson: (headline) => headline.toJson(), + ); + categoriesClient = HtDataApi( + httpClient: httpClient, + modelName: 'category', + fromJson: Category.fromJson, + toJson: (category) => category.toJson(), + ); + countriesClient = HtDataApi( + httpClient: httpClient, + modelName: 'country', + fromJson: Country.fromJson, + toJson: (country) => country.toJson(), + ); + sourcesClient = HtDataApi( + httpClient: httpClient, + modelName: 'source', + fromJson: Source.fromJson, + toJson: (source) => source.toJson(), + ); + userContentPreferencesClient = HtDataApi( + httpClient: httpClient, + modelName: 'user_content_preferences', + fromJson: UserContentPreferences.fromJson, + toJson: (prefs) => prefs.toJson(), + ); + userAppSettingsClient = HtDataApi( + httpClient: httpClient, + modelName: 'user_app_settings', + fromJson: UserAppSettings.fromJson, + toJson: (settings) => settings.toJson(), + ); + appConfigClient = HtDataApi( + httpClient: httpClient, + modelName: 'app_config', + fromJson: AppConfig.fromJson, + toJson: (config) => config.toJson(), + ); + } else { + // Default to API clients for production + headlinesClient = HtDataApi( + httpClient: httpClient!, + modelName: 'headline', + fromJson: Headline.fromJson, + toJson: (headline) => headline.toJson(), + ); + categoriesClient = HtDataApi( + httpClient: httpClient, + modelName: 'category', + fromJson: Category.fromJson, + toJson: (category) => category.toJson(), + ); + countriesClient = HtDataApi( + httpClient: httpClient, + modelName: 'country', + fromJson: Country.fromJson, + toJson: (country) => country.toJson(), + ); + sourcesClient = HtDataApi( + httpClient: httpClient, + modelName: 'source', + fromJson: Source.fromJson, + toJson: (source) => source.toJson(), + ); + userContentPreferencesClient = HtDataApi( + httpClient: httpClient, + modelName: 'user_content_preferences', + fromJson: UserContentPreferences.fromJson, + toJson: (prefs) => prefs.toJson(), + ); + userAppSettingsClient = HtDataApi( + httpClient: httpClient, + modelName: 'user_app_settings', + fromJson: UserAppSettings.fromJson, + toJson: (settings) => settings.toJson(), + ); + appConfigClient = HtDataApi( + httpClient: httpClient, + modelName: 'app_config', + fromJson: AppConfig.fromJson, + toJson: (config) => config.toJson(), + ); + } + + final headlinesRepository = HtDataRepository( + dataClient: headlinesClient, + ); + final categoriesRepository = HtDataRepository( + dataClient: categoriesClient, + ); + final countriesRepository = HtDataRepository( + dataClient: countriesClient, + ); + final sourcesRepository = HtDataRepository(dataClient: sourcesClient); + final userContentPreferencesRepository = + HtDataRepository( + dataClient: userContentPreferencesClient, + ); + final userAppSettingsRepository = HtDataRepository( + dataClient: userAppSettingsClient, + ); + final appConfigRepository = HtDataRepository( + dataClient: appConfigClient, + ); + + return App( + htAuthenticationRepository: authenticationRepository, + htHeadlinesRepository: headlinesRepository, + htCategoriesRepository: categoriesRepository, + htCountriesRepository: countriesRepository, + htSourcesRepository: sourcesRepository, + htUserAppSettingsRepository: userAppSettingsRepository, + htUserContentPreferencesRepository: userContentPreferencesRepository, + htAppConfigRepository: appConfigRepository, + kvStorageService: kvStorage, + environment: environment, + ); +} diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart new file mode 100644 index 00000000..f3949c9d --- /dev/null +++ b/lib/l10n/app_localizations.dart @@ -0,0 +1,140 @@ +import 'dart:async'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:intl/intl.dart' as intl; + +import 'app_localizations_ar.dart'; +import 'app_localizations_en.dart'; + +// ignore_for_file: type=lint + +/// Callers can lookup localized strings with an instance of AppLocalizations +/// returned by `AppLocalizations.of(context)`. +/// +/// Applications need to include `AppLocalizations.delegate()` in their app's +/// `localizationDelegates` list, and the locales they support in the app's +/// `supportedLocales` list. For example: +/// +/// ```dart +/// import 'l10n/app_localizations.dart'; +/// +/// return MaterialApp( +/// localizationsDelegates: AppLocalizations.localizationsDelegates, +/// supportedLocales: AppLocalizations.supportedLocales, +/// home: MyApplicationHome(), +/// ); +/// ``` +/// +/// ## Update pubspec.yaml +/// +/// Please make sure to update your pubspec.yaml to include the following +/// packages: +/// +/// ```yaml +/// dependencies: +/// # Internationalization support. +/// flutter_localizations: +/// sdk: flutter +/// intl: any # Use the pinned version from flutter_localizations +/// +/// # Rest of dependencies +/// ``` +/// +/// ## iOS Applications +/// +/// iOS applications define key application metadata, including supported +/// locales, in an Info.plist file that is built into the application bundle. +/// To configure the locales supported by your app, you’ll need to edit this +/// file. +/// +/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file. +/// Then, in the Project Navigator, open the Info.plist file under the Runner +/// project’s Runner folder. +/// +/// Next, select the Information Property List item, select Add Item from the +/// Editor menu, then select Localizations from the pop-up menu. +/// +/// Select and expand the newly-created Localizations item then, for each +/// locale your application supports, add a new item and select the locale +/// you wish to add from the pop-up menu in the Value field. This list should +/// be consistent with the languages listed in the AppLocalizations.supportedLocales +/// property. +abstract class AppLocalizations { + AppLocalizations(String locale) + : localeName = intl.Intl.canonicalizedLocale(locale.toString()); + + final String localeName; + + static AppLocalizations of(BuildContext context) { + return Localizations.of(context, AppLocalizations)!; + } + + static const LocalizationsDelegate delegate = + _AppLocalizationsDelegate(); + + /// A list of this localizations delegate along with the default localizations + /// delegates. + /// + /// Returns a list of localizations delegates containing this delegate along with + /// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, + /// and GlobalWidgetsLocalizations.delegate. + /// + /// Additional delegates can be added by appending to this list in + /// MaterialApp. This list does not have to be used at all if a custom list + /// of delegates is preferred or required. + static const List> localizationsDelegates = + >[ + delegate, + GlobalMaterialLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ]; + + /// A list of this localizations delegate's supported locales. + static const List supportedLocales = [ + Locale('ar'), + Locale('en'), + ]; + + /// The conventional newborn programmer greeting + /// + /// In en, this message translates to: + /// **'Hello World!'** + String get helloWorld; +} + +class _AppLocalizationsDelegate + extends LocalizationsDelegate { + const _AppLocalizationsDelegate(); + + @override + Future load(Locale locale) { + return SynchronousFuture(lookupAppLocalizations(locale)); + } + + @override + bool isSupported(Locale locale) => + ['ar', 'en'].contains(locale.languageCode); + + @override + bool shouldReload(_AppLocalizationsDelegate old) => false; +} + +AppLocalizations lookupAppLocalizations(Locale locale) { + // Lookup logic when only language code is specified. + switch (locale.languageCode) { + case 'ar': + return AppLocalizationsAr(); + case 'en': + return AppLocalizationsEn(); + } + + throw FlutterError( + 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' + 'an issue with the localizations generation tool. Please file an issue ' + 'on GitHub with a reproducible sample app and the gen-l10n configuration ' + 'that was used.', + ); +} diff --git a/lib/l10n/app_localizations_ar.dart b/lib/l10n/app_localizations_ar.dart new file mode 100644 index 00000000..73d021c8 --- /dev/null +++ b/lib/l10n/app_localizations_ar.dart @@ -0,0 +1,13 @@ +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Arabic (`ar`). +class AppLocalizationsAr extends AppLocalizations { + AppLocalizationsAr([String locale = 'ar']) : super(locale); + + @override + String get helloWorld => 'Hello World!'; +} diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart new file mode 100644 index 00000000..2c753f4e --- /dev/null +++ b/lib/l10n/app_localizations_en.dart @@ -0,0 +1,13 @@ +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for English (`en`). +class AppLocalizationsEn extends AppLocalizations { + AppLocalizationsEn([String locale = 'en']) : super(locale); + + @override + String get helloWorld => 'Hello World!'; +} diff --git a/lib/l10n/arb/app_ar.arb b/lib/l10n/arb/app_ar.arb new file mode 100644 index 00000000..46fffaed --- /dev/null +++ b/lib/l10n/arb/app_ar.arb @@ -0,0 +1,6 @@ +{ + "helloWorld": "Hello World!", + "@helloWorld": { + "description": "The conventional newborn programmer greeting" + } +} \ No newline at end of file diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb new file mode 100644 index 00000000..46fffaed --- /dev/null +++ b/lib/l10n/arb/app_en.arb @@ -0,0 +1,6 @@ +{ + "helloWorld": "Hello World!", + "@helloWorld": { + "description": "The conventional newborn programmer greeting" + } +} \ No newline at end of file diff --git a/lib/l10n/l10n.dart b/lib/l10n/l10n.dart new file mode 100644 index 00000000..e0bd0275 --- /dev/null +++ b/lib/l10n/l10n.dart @@ -0,0 +1,6 @@ +import 'package:flutter/widgets.dart'; +import 'package:ht_dashboard/l10n/app_localizations.dart'; + +extension AppLocalizationsX on BuildContext { + AppLocalizations get l10n => AppLocalizations.of(this); +} diff --git a/lib/main.dart b/lib/main.dart index a7256585..268cbdc5 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,20 +1,40 @@ +import 'dart:js_interop'; + +import 'package:device_preview/device_preview.dart'; +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:ht_dashboard/app/config/config.dart'; +import 'package:ht_dashboard/bootstrap.dart'; -void main() { - runApp(const MainApp()); -} +// Define the current application environment (production/development/demo). +const AppEnvironment appEnvironment = AppEnvironment.demo; + +@JS('removeSplashFromWeb') +external void removeSplashFromWeb(); -class MainApp extends StatelessWidget { - const MainApp({super.key}); +void main() async { + final appConfig = switch (appEnvironment) { + AppEnvironment.production => AppConfig.production(), + AppEnvironment.development => AppConfig.development(), + AppEnvironment.demo => AppConfig.demo(), + }; + + final appWidget = await bootstrap(appConfig, appEnvironment); + + // Only remove the splash screen on web after the app is ready. + if (kIsWeb) { + removeSplashFromWeb(); + } - @override - Widget build(BuildContext context) { - return const MaterialApp( - home: Scaffold( - body: Center( - child: Text('Hello World!'), - ), + if (appConfig.environment == AppEnvironment.demo) { + runApp( + DevicePreview( + builder: (context) => appWidget, + tools: const [DeviceSection()], + backgroundColor: Colors.black87, ), ); + } else { + runApp(appWidget); } } diff --git a/lib/router/router.dart b/lib/router/router.dart new file mode 100644 index 00000000..400f3f42 --- /dev/null +++ b/lib/router/router.dart @@ -0,0 +1,735 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:go_router/go_router.dart'; +import 'package:ht_auth_repository/ht_auth_repository.dart'; +import 'package:ht_data_repository/ht_data_repository.dart'; +import 'package:ht_dashboard/app/bloc/app_bloc.dart'; +import 'package:ht_dashboard/app/config/config.dart' as local_config; +import 'package:ht_dashboard/app/view/app_shell.dart'; +import 'package:ht_dashboard/authentication/bloc/authentication_bloc.dart'; +import 'package:ht_dashboard/authentication/view/authentication_page.dart'; +import 'package:ht_dashboard/authentication/view/email_code_verification_page.dart'; +import 'package:ht_dashboard/authentication/view/request_code_page.dart'; +import 'package:ht_dashboard/l10n/l10n.dart'; +import 'package:ht_dashboard/router/routes.dart'; +import 'package:ht_shared/ht_shared.dart'; + +/// Creates and configures the GoRouter instance for the application. +/// +/// Requires an [authStatusNotifier] to trigger route re-evaluation when +/// authentication state changes. +GoRouter createRouter({ + required ValueNotifier authStatusNotifier, + required HtAuthRepository htAuthenticationRepository, + required HtDataRepository htHeadlinesRepository, + required HtDataRepository htCategoriesRepository, + required HtDataRepository htCountriesRepository, + required HtDataRepository htSourcesRepository, + required HtDataRepository htUserAppSettingsRepository, + required HtDataRepository + htUserContentPreferencesRepository, + required HtDataRepository htAppConfigRepository, + required local_config.AppEnvironment environment, +}) { + // Instantiate AccountBloc once to be shared + final accountBloc = AccountBloc( + authenticationRepository: htAuthenticationRepository, + userContentPreferencesRepository: htUserContentPreferencesRepository, + environment: environment, + ); + + return GoRouter( + refreshListenable: authStatusNotifier, + initialLocation: Routes.feed, + debugLogDiagnostics: true, + // --- Redirect Logic --- + redirect: (BuildContext context, GoRouterState state) { + final appStatus = context.read().state.status; + final appConfig = context.read().state.appConfig; + final currentLocation = state.matchedLocation; + final currentUri = state.uri; + + print( + 'GoRouter Redirect Check:\n' + ' Current Location (Matched): $currentLocation\n' + ' Current URI (Full): $currentUri\n' + ' AppStatus: $appStatus\n' + ' AppConfig isNull: ${appConfig == null}', + ); + + // --- Define Key Paths --- + const authenticationPath = Routes.authentication; + const feedPath = Routes.feed; + final isGoingToAuth = currentLocation.startsWith(authenticationPath); + + // --- Case 0: App is Initializing or Config is being fetched/failed --- + if (appStatus == AppStatus.initial || + appStatus == AppStatus.configFetching || + appStatus == AppStatus.configFetchFailed) { + // If AppStatus is initial and trying to go to a non-auth page (e.g. initial /feed) + // redirect to auth immediately to settle auth status first. + if (appStatus == AppStatus.initial && !isGoingToAuth) { + print( + ' Redirect Decision: AppStatus is INITIAL and not going to auth. Redirecting to $authenticationPath to settle auth first.', + ); + return authenticationPath; + } + // For configFetching or configFetchFailed, or initial going to auth, + // let the App widget's builder handle the UI (loading/error screen). + print( + ' Redirect Decision: AppStatus is $appStatus. Allowing App widget to handle display or navigation to auth.', + ); + return null; + } + + // --- Case 1: Unauthenticated User (after initial phase, config not relevant yet for this decision) --- + if (appStatus == AppStatus.unauthenticated) { + print(' Redirect Decision: User is UNauthenticated.'); + if (!isGoingToAuth) { + print( + ' Action: Not going to auth. Redirecting to $authenticationPath', + ); + return authenticationPath; + } + print(' Action: Already going to auth. Allowing navigation.'); + return null; + } + + // --- Case 2: Anonymous or Authenticated User --- + // (Covers AppStatus.anonymous and AppStatus.authenticated) + // At this point, AppConfig should be loaded or its loading/error state is handled by App widget. + // The main concern here is preventing authenticated users from re-entering basic auth flows. + if (appStatus == AppStatus.anonymous || + appStatus == AppStatus.authenticated) { + print(' Redirect Decision: User is $appStatus.'); + + final isLinkingContextQueryPresent = + state.uri.queryParameters['context'] == 'linking'; + final isLinkingPathSegmentPresent = currentLocation.contains( + '/linking/', + ); + + // Determine if the current location is part of any linking flow (either via query or path segment) + final isAnyLinkingContext = + isLinkingContextQueryPresent || isLinkingPathSegmentPresent; + + // If an authenticated/anonymous user is on any authentication-related path: + if (currentLocation.startsWith(authenticationPath)) { + print( + ' Debug: Auth path detected. Current Location: $currentLocation', + ); + print( + ' Debug: URI Query Parameters: ${state.uri.queryParameters}', + ); + print( + ' Debug: isLinkingContextQueryPresent: $isLinkingContextQueryPresent', + ); + print( + ' Debug: isLinkingPathSegmentPresent: $isLinkingPathSegmentPresent', + ); + print( + ' Debug: isAnyLinkingContext evaluated to: $isAnyLinkingContext', + ); + + // If the user is authenticated, always redirect away from auth paths. + if (appStatus == AppStatus.authenticated) { + print( + ' Action: Authenticated user on auth path ($currentLocation). Redirecting to $feedPath', + ); + return feedPath; + } + + // If the user is anonymous, allow navigation within auth paths if in a linking context. + // Otherwise, redirect anonymous users trying to access non-linking auth paths to feed. + if (isAnyLinkingContext) { + print( + ' Action: Anonymous user on auth linking path ($currentLocation). Allowing navigation.', + ); + return null; + } else { + print( + ' Action: Anonymous user trying to access non-linking auth path ($currentLocation). Redirecting to $feedPath', + ); + return feedPath; + } + } + // Allow access to other routes (non-auth paths) + print( + ' Action: Allowing navigation to $currentLocation for $appStatus user (non-auth path).', + ); + return null; + } + + // Fallback (should ideally not be reached if all statuses are handled) + print( + ' Redirect Decision: Fallback, no specific condition met for $appStatus. Allowing navigation.', + ); + return null; + }, + // --- Authentication Routes --- + routes: [ + GoRoute( + path: Routes.authentication, + name: Routes.authenticationName, + builder: (BuildContext context, GoRouterState state) { + final l10n = context.l10n; + // Determine context from query parameter + final isLinkingContext = + state.uri.queryParameters['context'] == 'linking'; + + // Define content based on context + final String headline; + final String subHeadline; + final bool showAnonymousButton; + + if (isLinkingContext) { + headline = l10n.authenticationLinkingHeadline; + subHeadline = l10n.authenticationLinkingSubheadline; + showAnonymousButton = false; + } else { + headline = l10n.authenticationSignInHeadline; + subHeadline = l10n.authenticationSignInSubheadline; + showAnonymousButton = true; + } + + return BlocProvider( + create: (context) => AuthenticationBloc( + authenticationRepository: context.read(), + ), + child: AuthenticationPage( + headline: headline, + subHeadline: subHeadline, + showAnonymousButton: showAnonymousButton, + isLinkingContext: isLinkingContext, + ), + ); + }, + routes: [ + // Nested route for account linking flow (defined first for priority) + GoRoute( + path: Routes.accountLinking, + name: Routes.accountLinkingName, + builder: (context, state) => const SizedBox.shrink(), + routes: [ + GoRoute( + path: Routes.requestCode, + name: Routes.linkingRequestCodeName, + builder: (context, state) => + const RequestCodePage(isLinkingContext: true), + ), + GoRoute( + path: '${Routes.verifyCode}/:email', + name: Routes.linkingVerifyCodeName, + builder: (context, state) { + final email = state.pathParameters['email']!; + return EmailCodeVerificationPage(email: email); + }, + ), + ], + ), + // Non-linking authentication routes (defined after linking routes) + GoRoute( + path: Routes.requestCode, + name: Routes.requestCodeName, + builder: (context, state) => + const RequestCodePage(isLinkingContext: false), + ), + GoRoute( + path: '${Routes.verifyCode}/:email', + name: Routes.verifyCodeName, + builder: (context, state) { + final email = state.pathParameters['email']!; + return EmailCodeVerificationPage(email: email); + }, + ), + ], + ), + // --- Entity Details Routes (Top Level) --- + GoRoute( + path: Routes.categoryDetails, + name: Routes.categoryDetailsName, + builder: (context, state) { + final args = state.extra as EntityDetailsPageArguments?; + if (args == null) { + return const Scaffold( + body: Center( + child: Text('Error: Missing category details arguments'), + ), + ); + } + return BlocProvider.value( + value: accountBloc, + child: EntityDetailsPage(args: args), + ); + }, + ), + GoRoute( + path: Routes.sourceDetails, + name: Routes.sourceDetailsName, + builder: (context, state) { + final args = state.extra as EntityDetailsPageArguments?; + if (args == null) { + return const Scaffold( + body: Center( + child: Text('Error: Missing source details arguments'), + ), + ); + } + return BlocProvider.value( + value: accountBloc, + child: EntityDetailsPage(args: args), + ); + }, + ), + // --- Global Article Details Route (Top Level) --- + // This GoRoute provides a top-level, globally accessible way to view the + // HeadlineDetailsPage. + // + // Purpose: + // It is specifically designed for navigating to article details from contexts + // that are *outside* the main StatefulShellRoute's branches (e.g., from + // EntityDetailsPage, which is itself a top-level route, or potentially + // from other future top-level pages or deep links). + // + // Why it's necessary: + // Attempting to push a route that is deeply nested within a specific shell + // branch (like '/feed/article/:id') from a BuildContext outside of that + // shell can lead to navigator context issues and assertion failures. + // This global route avoids such problems by providing a clean, direct path + // to the HeadlineDetailsPage. + // + // How it differs: + // This route is distinct from the article detail routes nested within the + // StatefulShellRoute branches (e.g., Routes.articleDetailsName under /feed, + // Routes.searchArticleDetailsName under /search). Those nested routes are + // intended for navigation *within* their respective shell branches, + // preserving the shell's UI (like the bottom navigation bar). + // This global route, being top-level, will typically cover the entire screen. + GoRoute( + path: Routes.globalArticleDetails, + name: Routes.globalArticleDetailsName, + builder: (context, state) { + final headlineFromExtra = state.extra as Headline?; + final headlineIdFromPath = state.pathParameters['id']; + + // Ensure accountBloc is available if needed by HeadlineDetailsPage + // or its descendants for actions like saving. + // If AccountBloc is already provided higher up (e.g., in AppShell or App), + // this specific BlocProvider.value might not be strictly necessary here, + // but it's safer to ensure it's available for this top-level route. + // We are using the `accountBloc` instance created at the top of `createRouter`. + return MultiBlocProvider( + providers: [ + BlocProvider.value(value: accountBloc), + BlocProvider( + create: (context) => HeadlineDetailsBloc( + headlinesRepository: context + .read>(), + ), + ), + BlocProvider( + create: (context) => SimilarHeadlinesBloc( + headlinesRepository: context + .read>(), + ), + ), + ], + child: HeadlineDetailsPage( + initialHeadline: headlineFromExtra, + headlineId: headlineFromExtra?.id ?? headlineIdFromPath, + ), + ); + }, + ), + // --- Main App Shell --- + StatefulShellRoute.indexedStack( + builder: (context, state, navigationShell) { + // Return the shell widget which contains the AdaptiveScaffold + return MultiBlocProvider( + providers: [ + BlocProvider.value(value: accountBloc), + BlocProvider( + create: (context) { + // Instantiate FeedInjectorService here as it's stateless for now + final feedInjectorService = FeedInjectorService(); + return HeadlinesFeedBloc( + headlinesRepository: context + .read>(), + feedInjectorService: feedInjectorService, + appBloc: context.read(), + )..add(const HeadlinesFeedFetchRequested()); + }, + ), + BlocProvider( + create: (context) { + final feedInjectorService = FeedInjectorService(); + return HeadlinesSearchBloc( + headlinesRepository: context + .read>(), + categoryRepository: context + .read>(), + sourceRepository: context.read>(), + appBloc: context.read(), + feedInjectorService: feedInjectorService, + ); + }, + ), + // Removed separate AccountBloc creation here + ], + child: AppShell(navigationShell: navigationShell), + ); + }, + branches: [ + // --- Branch 1: Feed --- + StatefulShellBranch( + routes: [ + GoRoute( + path: Routes.feed, + name: Routes.feedName, + builder: (context, state) => const HeadlinesFeedPage(), + routes: [ + // Sub-route for article details + GoRoute( + path: 'article/:id', + name: Routes.articleDetailsName, + builder: (context, state) { + final headlineFromExtra = state.extra as Headline?; + final headlineIdFromPath = state.pathParameters['id']; + + return MultiBlocProvider( + providers: [ + BlocProvider.value(value: accountBloc), + BlocProvider( + create: (context) => HeadlineDetailsBloc( + headlinesRepository: context + .read>(), + ), + ), + BlocProvider( + create: (context) => SimilarHeadlinesBloc( + headlinesRepository: context + .read>(), + ), + ), + ], + child: HeadlineDetailsPage( + initialHeadline: headlineFromExtra, + // Ensure headlineId is non-null if initialHeadline is null + headlineId: + headlineFromExtra?.id ?? headlineIdFromPath, + ), + ); + }, + ), + // Sub-route for notifications (placeholder) - MOVED HERE + GoRoute( + path: Routes.notifications, + name: Routes.notificationsName, + builder: (context, state) { + // TODO(fulleni): Replace with actual NotificationsPage + return const Placeholder( + child: Center(child: Text('NOTIFICATIONS PAGE')), + ); + }, + ), + + // --- Filter Routes (Nested under Feed) --- + GoRoute( + path: Routes.feedFilter, + name: Routes.feedFilterName, + // Use MaterialPage with fullscreenDialog for modal presentation + pageBuilder: (context, state) { + // Access the HeadlinesFeedBloc from the context + BlocProvider.of(context); + return const MaterialPage( + fullscreenDialog: true, + child: HeadlinesFilterPage(), + ); + }, + routes: [ + // Sub-route for category selection + GoRoute( + path: Routes.feedFilterCategories, + name: Routes.feedFilterCategoriesName, + // Wrap with BlocProvider + builder: (context, state) => BlocProvider( + create: (context) => CategoriesFilterBloc( + categoriesRepository: context + .read>(), + ), + child: const CategoryFilterPage(), + ), + ), + // Sub-route for source selection + GoRoute( + path: Routes.feedFilterSources, + name: Routes.feedFilterSourcesName, + // Wrap with BlocProvider + builder: (context, state) => BlocProvider( + create: (context) => SourcesFilterBloc( + sourcesRepository: context + .read>(), + countriesRepository: // Added missing repository + context + .read>(), + ), + // Pass initialSelectedSources, country ISO codes, and source types from state.extra + child: Builder( + builder: (context) { + final extraData = + state.extra as Map? ?? + const {}; + final initialSources = + extraData[keySelectedSources] + as List? ?? + const []; + final initialCountryIsoCodes = + extraData[keySelectedCountryIsoCodes] + as Set? ?? + const {}; + final initialSourceTypes = + extraData[keySelectedSourceTypes] + as Set? ?? + const {}; + + return SourceFilterPage( + initialSelectedSources: initialSources, + initialSelectedCountryIsoCodes: + initialCountryIsoCodes, + initialSelectedSourceTypes: initialSourceTypes, + ); + }, + ), + ), + ), + // Sub-route for country selection REMOVED + ], + ), + ], + ), + ], + ), + // --- Branch 2: Search --- + StatefulShellBranch( + routes: [ + GoRoute( + path: Routes.search, + name: Routes.searchName, + builder: (context, state) => const HeadlinesSearchPage(), + routes: [ + // Sub-route for article details from search + GoRoute( + path: 'article/:id', + name: Routes.searchArticleDetailsName, + builder: (context, state) { + final headlineFromExtra = state.extra as Headline?; + final headlineIdFromPath = state.pathParameters['id']; + return MultiBlocProvider( + providers: [ + BlocProvider.value(value: accountBloc), + BlocProvider( + create: (context) => HeadlineDetailsBloc( + headlinesRepository: context + .read>(), + ), + ), + BlocProvider( + create: (context) => SimilarHeadlinesBloc( + headlinesRepository: context + .read>(), + ), + ), + ], + child: HeadlineDetailsPage( + initialHeadline: headlineFromExtra, + headlineId: + headlineFromExtra?.id ?? headlineIdFromPath, + ), + ); + }, + ), + ], + ), + ], + ), + // --- Branch 3: Account --- + StatefulShellBranch( + routes: [ + GoRoute( + path: Routes.account, + name: Routes.accountName, + builder: (context, state) => const AccountPage(), + routes: [ + // ShellRoute for settings to provide SettingsBloc to children + ShellRoute( + builder: (BuildContext context, GoRouterState state, Widget child) { + // This builder provides SettingsBloc to all routes within this ShellRoute. + // 'child' will be SettingsPage, AppearanceSettingsPage, etc. + final appBloc = context.read(); + final userId = appBloc.state.user?.id; + + return BlocProvider( + create: (context) { + final settingsBloc = SettingsBloc( + userAppSettingsRepository: context + .read>(), + ); + // Only load settings if a userId is available + if (userId != null) { + settingsBloc.add( + SettingsLoadRequested(userId: userId), + ); + } else { + // Handle case where user is unexpectedly null. + print( + 'ShellRoute/SettingsBloc: User ID is null when creating SettingsBloc. Settings will not be loaded.', + ); + } + return settingsBloc; + }, + child: + child, // child is the actual page widget (SettingsPage, AppearanceSettingsPage, etc.) + ); + }, + routes: [ + GoRoute( + path: Routes.settings, + name: Routes.settingsName, + builder: (context, state) => const SettingsPage(), + // --- Settings Sub-Routes --- + routes: [ + GoRoute( + path: Routes.settingsAppearance, + name: Routes.settingsAppearanceName, + builder: (context, state) => + const AppearanceSettingsPage(), + routes: [ + // Children of AppearanceSettingsPage + GoRoute( + path: Routes.settingsAppearanceTheme, + name: Routes.settingsAppearanceThemeName, + builder: (context, state) => + const ThemeSettingsPage(), + ), + GoRoute( + path: Routes.settingsAppearanceFont, + name: Routes.settingsAppearanceFontName, + builder: (context, state) => + const FontSettingsPage(), + ), + ], + ), + GoRoute( + path: Routes.settingsFeed, + name: Routes.settingsFeedName, + builder: (context, state) => + const FeedSettingsPage(), + ), + GoRoute( + path: Routes.settingsNotifications, + name: Routes.settingsNotificationsName, + builder: (context, state) => + const NotificationSettingsPage(), + ), + GoRoute( + path: Routes.settingsLanguage, + name: Routes.settingsLanguageName, + builder: (context, state) => + const LanguageSettingsPage(), + ), + ], + ), + ], + ), + // New routes for Account sub-pages + GoRoute( + path: Routes.manageFollowedItems, + name: Routes.manageFollowedItemsName, + builder: (context, state) => + const ManageFollowedItemsPage(), + routes: [ + GoRoute( + path: Routes.followedCategoriesList, + name: Routes.followedCategoriesListName, + builder: (context, state) => + const FollowedCategoriesListPage(), + routes: [ + GoRoute( + path: Routes.addCategoryToFollow, + name: Routes.addCategoryToFollowName, + builder: (context, state) => + const AddCategoryToFollowPage(), + ), + ], + ), + GoRoute( + path: Routes.followedSourcesList, + name: Routes.followedSourcesListName, + builder: (context, state) => + const FollowedSourcesListPage(), + routes: [ + GoRoute( + path: Routes.addSourceToFollow, + name: Routes.addSourceToFollowName, + builder: (context, state) => + const AddSourceToFollowPage(), + ), + ], + ), + // GoRoute for followedCountriesList removed + ], + ), + GoRoute( + path: Routes.accountSavedHeadlines, + name: Routes.accountSavedHeadlinesName, + builder: (context, state) { + return const SavedHeadlinesPage(); + }, + routes: [ + GoRoute( + path: Routes.accountArticleDetails, + name: Routes.accountArticleDetailsName, + builder: (context, state) { + final headlineFromExtra = state.extra as Headline?; + final headlineIdFromPath = state.pathParameters['id']; + return MultiBlocProvider( + providers: [ + BlocProvider.value(value: accountBloc), + BlocProvider( + create: (context) => HeadlineDetailsBloc( + headlinesRepository: context + .read>(), + ), + ), + BlocProvider( + create: (context) => SimilarHeadlinesBloc( + headlinesRepository: context + .read>(), + ), + ), + ], + child: HeadlineDetailsPage( + initialHeadline: headlineFromExtra, + headlineId: + headlineFromExtra?.id ?? headlineIdFromPath, + ), + ); + }, + ), + ], + ), + ], + ), + ], + ), + ], + ), + ], + ); +} + +// Placeholder pages were moved to their respective files: +// - lib/headlines-feed/view/headlines_filter_page.dart +// - lib/headlines-feed/view/category_filter_page.dart +// - lib/headlines-feed/view/source_filter_page.dart +// - lib/headlines-feed/view/country_filter_page.dart diff --git a/lib/router/routes.dart b/lib/router/routes.dart new file mode 100644 index 00000000..5e64493a --- /dev/null +++ b/lib/router/routes.dart @@ -0,0 +1,6 @@ +/// Defines named constants for route paths and names used throughout the application. +/// +/// Using constants helps prevent typos and makes route management easier. +abstract final class Routes { + +} diff --git a/lib/shared/constants/app_spacing.dart b/lib/shared/constants/app_spacing.dart new file mode 100644 index 00000000..ddc23d98 --- /dev/null +++ b/lib/shared/constants/app_spacing.dart @@ -0,0 +1,40 @@ +/// Defines standard spacing constants used throughout the application. +/// +/// Consistent spacing is crucial for a clean and professional UI. +/// Using these constants ensures uniformity and makes global +/// adjustments easier. +abstract final class AppSpacing { + /// Extra small spacing value (e.g., 4.0). + static const double xs = 4; + + /// Small spacing value (e.g., 8.0). + static const double sm = 8; + + /// Medium spacing value (e.g., 12.0). + static const double md = 12; + + /// Large spacing value (e.g., 16.0). + static const double lg = 16; + + /// Extra large spacing value (e.g., 24.0). + static const double xl = 24; + + /// Extra extra large spacing value (e.g., 32.0). + static const double xxl = 32; + + // --- Padding Specific --- + // While the above can be used for padding, specific names can + // improve clarity. + + /// Small padding value (equivalent to sm). + static const double paddingSmall = sm; + + /// Medium padding value (equivalent to md). + static const double paddingMedium = md; + + /// Large padding value (equivalent to lg). + static const double paddingLarge = lg; + + /// Extra large padding value (equivalent to xl). + static const double paddingExtraLarge = xl; +} diff --git a/lib/shared/constants/constants.dart b/lib/shared/constants/constants.dart new file mode 100644 index 00000000..e92c41a1 --- /dev/null +++ b/lib/shared/constants/constants.dart @@ -0,0 +1,5 @@ +/// Barrel file for shared constants. +/// Exports application-wide constant definitions. +library; + +export 'app_spacing.dart'; diff --git a/lib/shared/localization/ar_timeago_messages.dart b/lib/shared/localization/ar_timeago_messages.dart new file mode 100644 index 00000000..a4de4608 --- /dev/null +++ b/lib/shared/localization/ar_timeago_messages.dart @@ -0,0 +1,43 @@ +import 'package:timeago/timeago.dart' as timeago; + +/// Custom Arabic lookup messages for the timeago package. +class ArTimeagoMessages implements timeago.LookupMessages { + @override + String prefixAgo() => ''; + @override + String prefixFromNow() => 'بعد '; + @override + String suffixAgo() => ''; + @override + String suffixFromNow() => ''; + + @override + String lessThanOneMinute(int seconds) => 'الآن'; + @override + String aboutAMinute(int minutes) => 'منذ 1د'; + @override + String minutes(int minutes) => 'منذ $minutesد'; + + @override + String aboutAnHour(int minutes) => 'منذ 1س'; + @override + String hours(int hours) => 'منذ $hoursس'; + + @override + String aDay(int hours) => 'منذ 1ي'; + @override + String days(int days) => 'منذ $daysي'; + + @override + String aboutAMonth(int days) => 'منذ 1ش'; + @override + String months(int months) => 'منذ $monthsش'; + + @override + String aboutAYear(int year) => 'منذ 1سنة'; + @override + String years(int years) => 'منذ $yearsسنوات'; + + @override + String wordSeparator() => ' '; +} diff --git a/lib/shared/localization/en_timeago_messages.dart b/lib/shared/localization/en_timeago_messages.dart new file mode 100644 index 00000000..f3f284aa --- /dev/null +++ b/lib/shared/localization/en_timeago_messages.dart @@ -0,0 +1,43 @@ +import 'package:timeago/timeago.dart' as timeago; + +/// Custom English lookup messages for the timeago package (concise). +class EnTimeagoMessages implements timeago.LookupMessages { + @override + String prefixAgo() => ''; + @override + String prefixFromNow() => ''; + @override + String suffixAgo() => ' ago'; + @override + String suffixFromNow() => ' from now'; + + @override + String lessThanOneMinute(int seconds) => 'now'; + @override + String aboutAMinute(int minutes) => '1m'; + @override + String minutes(int minutes) => '${minutes}m'; + + @override + String aboutAnHour(int minutes) => '1h'; + @override + String hours(int hours) => '${hours}h'; + + @override + String aDay(int hours) => '1d'; + @override + String days(int days) => '${days}d'; + + @override + String aboutAMonth(int days) => '1mo'; + @override + String months(int months) => '${months}mo'; + + @override + String aboutAYear(int year) => '1y'; + @override + String years(int years) => '${years}y'; + + @override + String wordSeparator() => ' '; +} diff --git a/lib/shared/shared.dart b/lib/shared/shared.dart new file mode 100644 index 00000000..a0f4b74e --- /dev/null +++ b/lib/shared/shared.dart @@ -0,0 +1,10 @@ +/// Barrel file for the shared library. +/// +/// Exports common constants, theme elements, and widgets used across +/// the application to promote consistency and maintainability. +library; + +export 'constants/constants.dart'; +export 'theme/theme.dart'; +export 'utils/utils.dart'; +export 'widgets/widgets.dart'; diff --git a/lib/shared/theme/app_theme.dart b/lib/shared/theme/app_theme.dart new file mode 100644 index 00000000..96a701af --- /dev/null +++ b/lib/shared/theme/app_theme.dart @@ -0,0 +1,211 @@ +// +// ignore_for_file: lines_longer_than_80_chars + +import 'package:flex_color_scheme/flex_color_scheme.dart'; +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:ht_shared/ht_shared.dart'; + +// --- Common Sub-theme Settings --- +// Defines customizations for various components, shared between light/dark themes. +const FlexSubThemesData _commonSubThemesData = FlexSubThemesData( + // --- Card Theme --- + // Slightly rounded corners for cards (headline items) + cardRadius: 8, + // Use default elevation or specify if needed: cardElevation: 2.0, + + // --- AppBar Theme --- + // Example: Use scheme surface color for app bar (often less distracting) + appBarBackgroundSchemeColor: SchemeColor.surface, + // Or keep default: appBarBackgroundSchemeColor: SchemeColor.primary, + // Example: Center title? appBarCenterTitle: true, + + // --- Input Decorator (for Search TextField) --- + // Example: Add a border radius + inputDecoratorRadius: 8, + // Example: Use outline border (common modern style) + inputDecoratorIsFilled: false, + inputDecoratorBorderType: FlexInputBorderType.outline, + + // Add other component themes as needed (Buttons, Dialogs, etc.) +); + +// Helper function to apply common text theme customizations +TextTheme _customizeTextTheme( + TextTheme baseTextTheme, { + required AppTextScaleFactor appTextScaleFactor, + required AppFontWeight appFontWeight, +}) { + print( + '[_customizeTextTheme] Received appFontWeight: $appFontWeight, appTextScaleFactor: $appTextScaleFactor', + ); + // Define font size factors + double factor; + switch (appTextScaleFactor) { + case AppTextScaleFactor.small: + factor = 0.85; + case AppTextScaleFactor.large: + factor = 1.15; + case AppTextScaleFactor.medium: + factor = 1.0; + case AppTextScaleFactor.extraLarge: + factor = 1.3; + } + + // Helper to apply factor safely + double? applyFactor(double? baseSize) => + baseSize != null ? (baseSize * factor).roundToDouble() : null; + + // Map AppFontWeight to FontWeight + FontWeight selectedFontWeight; + switch (appFontWeight) { + case AppFontWeight.light: + selectedFontWeight = FontWeight.w300; + case AppFontWeight.regular: + selectedFontWeight = FontWeight.w400; + case AppFontWeight.bold: + selectedFontWeight = FontWeight.w700; + } + print( + '[_customizeTextTheme] Mapped to selectedFontWeight: $selectedFontWeight', + ); + + return baseTextTheme.copyWith( + // --- Headline/Title Styles --- + // Headlines and titles often have their own explicit weights, + // but we can make them configurable if needed. For now, let's assume + // body text is the primary target for user-defined weight. + headlineLarge: baseTextTheme.headlineLarge?.copyWith( + fontSize: applyFactor(28), + fontWeight: FontWeight.bold, + ), + headlineMedium: baseTextTheme.headlineMedium?.copyWith( + fontSize: applyFactor(24), + fontWeight: FontWeight.bold, + ), + titleLarge: baseTextTheme.titleLarge?.copyWith( + fontSize: applyFactor(18), + fontWeight: FontWeight.w600, + ), + titleMedium: baseTextTheme.titleMedium?.copyWith( + fontSize: applyFactor(16), + fontWeight: FontWeight.w600, + ), + + // --- Body/Content Styles --- + // Apply user-selected font weight to body text + bodyLarge: baseTextTheme.bodyLarge?.copyWith( + fontSize: applyFactor(16), + height: 1.5, + fontWeight: selectedFontWeight, + ), + bodyMedium: baseTextTheme.bodyMedium?.copyWith( + fontSize: applyFactor(14), + height: 1.4, + fontWeight: selectedFontWeight, + ), + + // --- Metadata/Caption Styles --- + // Captions might also benefit from user-defined weight or stay regular. + labelSmall: baseTextTheme.labelSmall?.copyWith( + fontSize: applyFactor(12), + fontWeight: selectedFontWeight, + ), + + // --- Button Style (Usually default is fine) --- + // labelLarge: baseTextTheme.labelLarge?.copyWith(fontSize: 14, fontWeight: FontWeight.bold), + ); +} + +// Helper function to get the appropriate GoogleFonts text theme function +// based on the provided font family name. +// Corrected return type to match GoogleFonts functions (positional optional) +TextTheme Function([TextTheme?]) _getGoogleFontTextTheme(String? fontFamily) { + print('[_getGoogleFontTextTheme] Received fontFamily: $fontFamily'); + switch (fontFamily) { + case 'Roboto': + print('[_getGoogleFontTextTheme] Returning GoogleFonts.robotoTextTheme'); + return GoogleFonts.robotoTextTheme; + case 'OpenSans': + print( + '[_getGoogleFontTextTheme] Returning GoogleFonts.openSansTextTheme', + ); + return GoogleFonts.openSansTextTheme; + case 'Lato': + print('[_getGoogleFontTextTheme] Returning GoogleFonts.latoTextTheme'); + return GoogleFonts.latoTextTheme; + case 'Montserrat': + print( + '[_getGoogleFontTextTheme] Returning GoogleFonts.montserratTextTheme', + ); + return GoogleFonts.montserratTextTheme; + case 'Merriweather': + print( + '[_getGoogleFontTextTheme] Returning GoogleFonts.merriweatherTextTheme', + ); + return GoogleFonts.merriweatherTextTheme; + case 'SystemDefault': + case null: + default: + print( + '[_getGoogleFontTextTheme] Defaulting to GoogleFonts.notoSansTextTheme for input: $fontFamily', + ); + return GoogleFonts.notoSansTextTheme; + } +} + +/// Defines the application's light theme using FlexColorScheme. +/// +/// Takes the active [scheme], [appTextScaleFactor], [appFontWeight], and optional [fontFamily]. +ThemeData lightTheme({ + required FlexScheme scheme, + required AppTextScaleFactor appTextScaleFactor, + required AppFontWeight appFontWeight, + String? fontFamily, +}) { + print( + '[AppTheme.lightTheme] Received scheme: $scheme, appTextScaleFactor: $appTextScaleFactor, appFontWeight: $appFontWeight, fontFamily: $fontFamily', + ); + final textThemeGetter = _getGoogleFontTextTheme(fontFamily); + final baseTextTheme = textThemeGetter(); + + return FlexThemeData.light( + scheme: scheme, + fontFamily: fontFamily, + textTheme: _customizeTextTheme( + baseTextTheme, + appTextScaleFactor: appTextScaleFactor, + appFontWeight: appFontWeight, + ), + subThemesData: _commonSubThemesData, + ); +} + +/// Defines the application's dark theme using FlexColorScheme. +/// +/// Takes the active [scheme], [appTextScaleFactor], [appFontWeight], and optional [fontFamily]. +ThemeData darkTheme({ + required FlexScheme scheme, + required AppTextScaleFactor appTextScaleFactor, + required AppFontWeight appFontWeight, + String? fontFamily, +}) { + print( + '[AppTheme.darkTheme] Received scheme: $scheme, appTextScaleFactor: $appTextScaleFactor, appFontWeight: $appFontWeight, fontFamily: $fontFamily', + ); + final textThemeGetter = _getGoogleFontTextTheme(fontFamily); + final baseTextTheme = textThemeGetter( + ThemeData(brightness: Brightness.dark).textTheme, + ); + + return FlexThemeData.dark( + scheme: scheme, + fontFamily: fontFamily, + textTheme: _customizeTextTheme( + baseTextTheme, + appTextScaleFactor: appTextScaleFactor, + appFontWeight: appFontWeight, + ), + subThemesData: _commonSubThemesData, + ); +} diff --git a/lib/shared/theme/theme.dart b/lib/shared/theme/theme.dart new file mode 100644 index 00000000..5d889ee2 --- /dev/null +++ b/lib/shared/theme/theme.dart @@ -0,0 +1,5 @@ +/// Barrel file for shared theme elements. +/// Exports application-wide theme definitions like colors and theme data. +library; + +export 'app_theme.dart'; diff --git a/lib/shared/utils/date_formatter.dart b/lib/shared/utils/date_formatter.dart new file mode 100644 index 00000000..3ac01296 --- /dev/null +++ b/lib/shared/utils/date_formatter.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; +import 'package:timeago/timeago.dart' as timeago; + +/// Formats the given [dateTime] into a relative time string +/// (e.g., "5m ago", "Yesterday", "now"). +/// +/// Uses the current locale from [context] to format appropriately. +/// Returns an empty string if [dateTime] is null. +String formatRelativeTime(BuildContext context, DateTime? dateTime) { + if (dateTime == null) { + return ''; + } + final locale = Localizations.localeOf(context).languageCode; + return timeago.format(dateTime, locale: locale); +} diff --git a/lib/shared/utils/utils.dart b/lib/shared/utils/utils.dart new file mode 100644 index 00000000..46a14dda --- /dev/null +++ b/lib/shared/utils/utils.dart @@ -0,0 +1,4 @@ +/// Barrel file for shared utility functions. +library; + +export 'date_formatter.dart'; diff --git a/lib/shared/widgets/failure_state_widget.dart b/lib/shared/widgets/failure_state_widget.dart new file mode 100644 index 00000000..4bea388a --- /dev/null +++ b/lib/shared/widgets/failure_state_widget.dart @@ -0,0 +1,51 @@ +import 'package:flutter/material.dart'; + +/// A widget to display an error message and an optional retry button. +class FailureStateWidget extends StatelessWidget { + /// Creates a [FailureStateWidget]. + /// + /// The [message] is the error message to display. + /// + /// The [onRetry] is an optional callback to be called + /// when the retry button is pressed. + const FailureStateWidget({ + required this.message, + super.key, + this.onRetry, + this.retryButtonText, + }); + + /// The error message to display. + final String message; + + /// An optional callback to be called when the retry button is pressed. + final VoidCallback? onRetry; + + /// Optional custom text for the retry button. Defaults to "Retry". + final String? retryButtonText; + + @override + Widget build(BuildContext context) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + message, + style: Theme.of(context).textTheme.bodyMedium, + textAlign: TextAlign.center, + ), + // Show the retry button only if onRetry is provided + if (onRetry != null) + Padding( + padding: const EdgeInsets.only(top: 16), + child: ElevatedButton( + onPressed: onRetry, + child: Text(retryButtonText ?? 'Retry'), + ), + ), + ], + ), + ); + } +} diff --git a/lib/shared/widgets/initial_state_widget.dart b/lib/shared/widgets/initial_state_widget.dart new file mode 100644 index 00000000..223b485d --- /dev/null +++ b/lib/shared/widgets/initial_state_widget.dart @@ -0,0 +1,29 @@ +import 'package:flutter/material.dart'; + +class InitialStateWidget extends StatelessWidget { + const InitialStateWidget({ + required this.icon, + required this.headline, + required this.subheadline, + super.key, + }); + + final IconData icon; + final String headline; + final String subheadline; + + @override + Widget build(BuildContext context) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(icon, size: 64), + const SizedBox(height: 16), + Text(headline, style: const TextStyle(fontSize: 24)), + Text(subheadline), + ], + ), + ); + } +} diff --git a/lib/shared/widgets/loading_state_widget.dart b/lib/shared/widgets/loading_state_widget.dart new file mode 100644 index 00000000..a4648740 --- /dev/null +++ b/lib/shared/widgets/loading_state_widget.dart @@ -0,0 +1,33 @@ +import 'package:flutter/material.dart'; + +class LoadingStateWidget extends StatelessWidget { + const LoadingStateWidget({ + required this.icon, + required this.headline, + required this.subheadline, + super.key, + }); + + final IconData icon; + final String headline; + final String subheadline; + + @override + Widget build(BuildContext context) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(icon, size: 64), + const SizedBox(height: 16), + Text(headline, style: const TextStyle(fontSize: 24)), + Text(subheadline), + const SizedBox(height: 16), + CircularProgressIndicator( + color: Theme.of(context).colorScheme.secondary, + ), + ], + ), + ); + } +} diff --git a/lib/shared/widgets/widgets.dart b/lib/shared/widgets/widgets.dart new file mode 100644 index 00000000..08c4d251 --- /dev/null +++ b/lib/shared/widgets/widgets.dart @@ -0,0 +1,7 @@ +/// Barrel file for shared widgets. +/// Exports common, reusable UI components. +library; + +export 'failure_state_widget.dart'; +export 'initial_state_widget.dart'; +export 'loading_state_widget.dart'; diff --git a/pubspec.lock b/pubspec.lock index 6d2e0fff..af182faf 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -545,6 +545,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.2" + timeago: + dependency: "direct main" + description: + name: timeago + sha256: b05159406a97e1cbb2b9ee4faa9fb096fe0e2dfcd8b08fcd2a00553450d3422e + url: "https://pub.dev" + source: hosted + version: "3.7.1" typed_data: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 541bac4f..e8d71840 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -57,6 +57,7 @@ dependencies: git: url: https://github.com/headlines-toolkit/ht-shared.git intl: ^0.20.2 + timeago: ^3.7.1 dev_dependencies: @@ -64,3 +65,4 @@ dev_dependencies: flutter: uses-material-design: true + generate: true \ No newline at end of file diff --git a/web/favicon.png b/web/favicon.png index 8aaa46ac1ae21512746f852a42ba87e4165dfdd1..27649566463fa36dfe0af3efe351934019ba283a 100644 GIT binary patch delta 752 zcmVnu~K~#90CDO@j6LA~`@ZZe*W=k^7*3>Lh ztlcP5Jh)30krt_-pdjeQvj=a2UPLJPk9bolqBn1XT5VIJ*b=N-YnvL|G<#<UGo1b!?mYZYX8SsvJ)w4geq$P&1eQvG#rY&tE|hIlykEQmr+9m;Q7; z|JLvjWn5$+Ak+gti^ct}_wm!>NH&#UUcPu?YB67MUH92yVYTK;qU3*g`Q>w74;zW; zX$*k4D5kQx8Gmzdqp&dd_@QAK5ANT)edlg?cRjtiDGEYG)sCG!y|=rA5b6QTW43Me z_i2(OPn|n6bLGa9xkuNo&bBS9)owdZ$7kYZbvqu9i2}lml0&hOim26Y6GC3hzn*{g zv|Rq{3(8Wy(4i<3i|8s&WkQJ2AP6wyP}@chg3}akv zG+ocfvfLoz1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png index b749bfef07473333cf1dd31e9eed89862a5d52aa..073e2f00c9bb5aca6c399b1045623bf4d440e353 100644 GIT binary patch literal 56879 zcmV)7K*zs{P)(m(Qk*D+1<;h(<$dHfg}()BNVWN$-y9UHW(Wmh&DkO3<8^+b226;6Gae7BnbgR zLMR*Mc+%zFo$2oPRaJNIoB)6C_ugSky1l*GneOTe|N2)|@a)HP8RN!ij$g)T24CF2 zXbfY_aCp%$Cg_I-UuBHL`#61X{C8SwA@H4y8N-4=Dy89vjBBl=6k2P}r4U?eL%+?r zfZt?>UeWZa@HW9XQ%Xr0;?)#>0^N-<#t1I)L*R}X-4)!kvA4qTQuK2UuV}5A!1ro= zE)Mr?AC4Qrg;K^|9)4g$xFEaPJxD@baye2#&e8&R&oG39#l1Rz%=k8PCoKlG2{~)noqC-KOx;fx*vJ8aIw> z24|16(*44lg+SSZUxl9;je7^XC4@+n(nf0y(oCN#q|_#1ct^O%uxsu^nP!G56QJIq z`!it}BuWW;@{B#Y{&+FNH0~UJ3>_nP&eKwo+D^esCm5F4a9k#PR!n+n42d#HgLWT^ z8z}<+czjUzz#fw(pr5+K1mEJzaKLc4P#*}ZA&r$FD+G8F?E}K?Y4{Zs4*V1e zdvEWD?%1um(acFTDQs9U&{5`ZyRBjN0MMu4CgH^c85jeikf?+NT?$nBnv|I)&22BP=~QqI zlC4R01Jb}&1>gg_TcjgmWkJ(z7>!S8?~H`N9#HpGBs6r|+?@;j5REr(53X0tR&GjS zilU7RVGlKz+8tlKZ>~`x3b)^Wm8}hRCQT_+u3RWQ3A6#Ehfw=!P*@~KbVN}lXr@s+ zvji*%cY4L@RKu;@fysbd(gHVL(Z112a-LXEfLU?Jce0d`1tWz^OR5O7f zIJ2;OsC2j!DFKT_*Jnl;?oJvSeYkn4jpFt+mux!YQrktt{pCE-aR1t9BaEOWfpej0 zJK=-qlyEXXC`m#ZXEZc3f%jCr)kk$oDinUfN-O+6et@;Or0Tsc@v7Uflp(-%x84%G z&8Zo(T;%#V?PZ-Ulkz$2-_FA!Q)^Ocy=0(`7h)^-(QnZF#L;qx6>yllta+C6Mw6O6myG7Z|1n6Wat%~XY$E3FTIVSPYH65UJm&?@P~r88T&!xmI&C> z06!E?1H6HeXm?ZxTnZ*MCyy2N7}Mxv&>{>I3&f^6E*_fQ0IOz zrjo?T6MT{gyk}i9;-KU~XEUvwO)^%0Df@)>(0j`-T#!M#!Z}M4r8O!n?%Y)wuuw=5 z1R`K~Acc^D2=GCSVG4H~KGvO5*k)8J@N*%BlXB~o;z}!e9c38ZN<2@b#qh&@K!8?W za-}pQUk5ZHL&pI>fqTOOx`!--!D|W*0>mUZ7IbdB(LuFLYE~P6{_#J-;85wb@?a&a z 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%0AvyE| zh$FW+IO|_<`PDnNZ|-c}3zk;!Aw&6F)%ucaud7-E&P&dnec{EcR=(BS(cx$c3G`49 zT*PtV#2GWJOe3MLs#f~CyOT6Q+*P-1-n8Q+tDq(~^iW(l@`anL1>6tV zb7UfPSGEDC<)I1#B6MD)+}kVu2?WI@Ng@d>Jmw5192GD*k3@K(5weH4?}w0fdpezn<%`bsprmQ7yMtQYs+ty<{ zI}1>`v(dx&Nhf^z>)-mvgMZ$$V_RRfS}c^C$22dv?2`iq57BJwp~zYvjWWX3Ppg4Y z9TyDbh?T2gucyXSwsjghAl|;P2t*TaLK_4#WJ@?Lb9Wfbmmv(BsB?5CT}X`fDGEvT z95-NsxqW!$a&z*8EmDGS1re%@Y(0X1f}JCIP8F;yN#KkbnoP=@_;c&G@I7) z-UzHiQyY_6@H1Z(5Q@a&fkBe4K(loLtKkD*=ijZ?x?C>LIb;6J*>jQv{nOC7M=M<_ z79%h!NR>*4G>y3C#xHK$vbk+vYo$`DtE(G2VtBuS{XrfU*>Em6}vx;mq zX2OI@Qi+m?qJz=;&W{;C`np@b(tfbLr@NjyajmL}? z{YKDRLOacLVuSxx@%)@@isS)Nni%&=a;Hg4<-i(};_P&;ehI|H{DVZ6{$cATTm#`b zhT)wUOp%9~Fyx_9Kx;nd1!vbm%BeXGLDU*z2#gO86M>~9}moVMm1X=AiyY#QhgHT%jL4s zroO%&dl_;OG8o=Q5TE0j=Hae7To)oTNuoC1riuhGsp4E#?M0j~(-h4+2~G7efk<=k zsZV9H0C1fWP?d#CthFGRG4HJwnlc}FKk}&g)sl#rz90^(-_SLsD$6ifms`ZQ>7fvKbkdoMr# zSK{;-POOXym*ubo^xw;~$Wgtr=3I+ZlAm4VMKi{xrNlGFPtM{fi^X`b5mic&9C(AK zY2t8!0wZbkds0^oavWG9=}&I)rqy8m$(6;4d5A(N>A!eA1`1WM z;0V1GGX~UQ6^s%(i59#eaG9yM1bbBaa2SIK91#4Scu=cA`wFXpsk9kcUNo{T%_k2Rdvo3Fa~XyhR|?KCzA;yJnDODZ8RI%P%ND^RIH4z3O_z>ACq z|JCu~%EdK_l5jGBmVP>5szA^KmOc$R_$-qkG?{JrKn*?Y_@_jyP+jDXA1&o+Zoq|B z@Du}(O`zzcRiSnUcehkl4j!JKC?AJ4LGpy8K9W~P*7P5#!t&q6M7C^};^b)6;Xam) za@hCgZ|D3F4L^bizvObOHU}()$AiLYnP5}d=R$^$^I7IqPGcW>5J6Doiy|~Yw1!(t z9>}R2(vz~7hP^(p&>jEhd*c6*6WFXMkj=J=c=l`v^3jAHVQyUsJxcR{>jup1SkZXK+tAuOHm`o)d zQnrJInO7NcQ0vS;Dpxibo^*xXD72p(q8rpKp@^mupERtRjQUX{0E_$o1EJD*C&TwW Q@Bjb+07*qoM6N<$f);V0O#lD@ literal 5292 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 diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png index 88cfd48dff1169879ba46840804b412fe02fefd6..8b2140af6bd7dcb2c57a648947e174f5b92ef9bd 100644 GIT binary patch literal 279423 zcmV(}K+wO5P)@9|fXr2GT;E8Rvv=XtJ_k`lir zj1*EyC51BldBT3GwWgU!8Ag*rnA`~WiT%(R=|u8h%X@_g{M{_a{CX{uX(z zrIboZA!L%+H_dY`gdIV!OG>464)cNW?6Mf6^W4o#(wIq-;Qak3TIcTmq%aM38LbU2 zfPb7ZVG*>>-6Rz(75pmwYTA+ApX?xRRkWX;zfG}`VV<gwJ5jXaep{?Iv0>5kkA2vfq@RTnv(^ z`){B>BoE0})xNcqf|C}fh35onJ;%WaLl zQkD2q1f&H-f=_9ik}m9TmStMwGQuJXI3Rwb?QyX5lsJOdu#Ggb`>sgSlrJ}596KL- zMidbzn~!lLg!L>eHB1bsPUQIRFgF3z;~rqN5)#fk9W;#_%16feTapsSvLJg-EN5^t zlm6WTwc?Btm1u1_18f;Alq0e*YtFQAA(R`?|7t8}5aHlEx}^gJ_i)xke^U5r%F?Ao zl6Frt;c-$)5=k*7%QR|0sF9ZqOZzjUf2I_4)t!sht9++TBJq+5&3GFi_ZBs;fo zmU6cloaTrS>98526GtGHS=m<(EErjpa(iSz48S|OwNd=l{r1~GX(>f~*dn5Ln`%hN z1qSMtI(PdD`&2kEGD+Y(<^BNRQB%M}?L2d>m0c@okBk)(66WRU$o~@NtzjSisj$BS z0sAkybq+5n9r3yIs+jOw0OB(+rCGdm`ziLJ? zngLD0I2us~rHd1alITau1m4>T15em8Vg!tt+81!~h~SbLuABi!bE=qhXB=+x8jL#vrFaC`M&Z8V z*s%{`0TpQ^u$TrG z)GvXthZGK_Qdyq4!KIVLb`7=Aq(c)i*gLZ;7!jr+hcbR!eT_=V^DiA=OG(!YN= z*TUF?U>O$ZxKe5Zi{rM^iYt)s)}SfMLSDz9M>NbKVkO;5bSIk2Hum@%)%M)ht}WcQMkbVF5E2ihL~dpbvMYEvX;`4qdoC`#YD^lU z*O>4qNL7M^XLrg9hj4Sj)QT}7rorhbdEFmp#zmuY+5ym#J#K<6Zg>~v)NU-Z87odP^>&UY(>!*zW0C6BM(^lM&x@z#C(!y~w8TcJPC!+m=We9^XP2Uq4k&*md!_dPG05uY* zmuABCDK?tve6T%JE^6*Dnjv#WdM@d{9swo=1HbSBKsm&A`~*C*LB|hC){g)yZ)m?g zA7JwbY>ZZhfhJ+SjMkF0MHA-d6)8&^9#XBl@c+({Y_6aU4dL6QmSU-1bPRv5MZXu@2*=(IS| z0SP}u$R$d8x6z!01P);dS9t<6B9iU}A;i^99M&jy_)&x_rX>ilgOCl-0!A#6^c~{J z(G6@_hz>d4&X&L-t{~Cju(LBFm^ClZp5ufe6&?Y$-Tr+&5+*&U2PiXuU#REWJCh`} ztN{UES{^p7G_9LX}86a0030m?A9b!i*am3f+_?kenGbf--+Kt zr`%Z3%5*qsQc62u8|Yg5^6xU4^rFVa-GvX@KoG#MLke;0 zn=~3I7I5ZV!)6+8x9H(@*rIBx;%B}_juX$?4+?B;<%ofLQ< zomKui4hP7E;PyDforPeoH?Qpk!w?nv0zVCB+X?nWCArRlh6o@P$m&(1g5K=p7Rh^J zzFfDF(Sz(iX_`105Ktk~EXZ&Kti!sP9M}@gSqjpORHRjLl#D!kPEL4VmPYQOV#~%$ ze&>0`VHLW`+y#5#@l~gvDy11T(QXIWRmq)su4ItJ5dna;0eEJvg^V~$o@Wf2*97z81?BZ07{ z$mtp{Q9QBWGAx)iD5VrieecA!v+^FIKw5N)0UJTj93tHap}?vs=i0NXs*tMPS=Htv zl-`T&W*ayNkRI_3MfNgBC){FMhTz;qLg5bS+=q|=v*t?#te>7vXs2X|o)_fc1z-k~ zQ=@~=z;6N3Gcq^@5{}tWUfA297l%F(<3`{`6U_m~L4S|Ta-EvDeLE<=f8t4D;bsHijiMq&}76`>V7`*-BWVSam6$AwlPE2mS0NG2W z5xpX89f$FsNaq8@Ee>bct4qr7px2Mkh9Y>&xdB<21Pe2RrI0G1hVIAJ>+oS9b&%B?99Ga7-CJ#F3$WDUTH+jRrT5 zB-ouSt+1X(d-G6&Z`Hj^A_YRoLXy7<6>^9;(1x8S3BrYQ0ufmuL1{pno@;>!C0V`G z`3{ZWgm{GD7nD9qN(Yt$%p?Pil6go)P#G1nE#`iwGmmzl6p3{L1Bx!W(~BJ4{+PP6 zMp%LgtVg(r3`0CbN$@-qwun#j{zwG}O*?Lwq=`bU6n!Fr?SVf?1sxY8L1g|0O2aT3 zlp_uTied3!cKNgH3~!0hjl|;~fw~@n2?jD@K19l#ZNclA+?&eu1p@!3Pq#d-W zY;AT1I^PH}L~v6I(LoJC8Z}_?pf{LiE!c4gj|Q87?xYzq(17H50r6Lns~km3B;4q) z-j6Dgc%)%OU__+-5wAgE0F*ByaF;-&5CMY5gVWlP@?|(kqz-VOrU=VxZ6?qY!Uoeg zwC|2>SXvG0yFtwmz#mS5Tzhb4dr=1u^h(Q)KN|wCf>{?<*B=ZS;8fw2MKB{7!oJHk>;;wA_M`DD{c(!a@N~?O{&ZXn%|i z9RSDb8Epr1oXaHC#SjT1DUGbwiXV#jlwO-eHAmuBNN|skCYB-qDgYKo;Fa_=Lwv6g zyUG>>qVS2yawaBFg$rN6BOf49f}4>AOCB{03ObLe0D!K5C&s3L#Mqvo!-@FfTv)N7 zn%D^($Uv|ogwjGW^`F!M{s|#kq<@jr@n<$tW+m=jP_9XP128h-d`2R3VB6xgS432R zIw`ms^-~$b?U7GLb_`omS|Sx45|aIrv>t=+i;qTz8=q{PJgQC<3IZcKzXkJ#5%HVw z14ln3PCz0==_t&EF9z2FvIH-0@P$KYgAnLCqnAe(>$O_JROYZC?(YPj(~)GWN|JzB zCDYE3`Dt(KP=#_dtX76l8R1>WToX!?B+J6lA`Bhh zNs;<3X-NYwAo8I5qgX-7mM-=iAv7TZB*1XjV71dwY*>Ld1PLR*o;Dzpv{KL2qz|KH z2u}o6F-}3S209dj*^iu&juq4Vgy4)48Lz(u&nzKIL9(H4k7pF5vCA$ZnMHmA&kac% z4q6HTKMI@&bVi)bYXoK`IER{jPD=VUK)2r6=AVHFTQdoU1mtZVl$78F6~Tn}qK4oI zMx*YWdyy?EuZJQsDc*+U0llAtEOT_Ca>{2Ei^~tlCfIIDNwlNM`~-kkIM-SdU|8U^ zGQ6E;6f6WdHU&Db=zd^%njNr|Fs<0T2vIa_SBc<&Iz8-3zWZPvsRWgVprJ(ahW@p4 zb9S5ae96K}0q$YgStHo$UZEWn!idKb{DI!;1X{(Y@Stl4G{D+Jkpe->ZNCP*FODqn zBa09WQ=Ar(1W=dVWe@4_5&WXqgOum^j-08Xg~aDWT4-!I2oy7gINHKxz+-QWlo4(j zX_xU*2&7%IS_B%$UXKgFhy%4FokT!%25drcN^Gg=w<6)N8}Ml3s}WewwfjIt{AhU0 zjkH4qEBwRqEN5O{Cial<@;oDU%1#Ce7zSy@k%uq^B1N1Ltfg}MZphnDg9Zba?WR&5 zQdg*WYT}{ch(+ruyrPD$roF?&xCjUUe=uYjynjkF*uXi8A(GpXq6;E5c}NWlrh`jW z16!M0(WH6PjqW5F?>Qh##Unc227-|Z0t)oWC0?g<`P z=J^93EjEnWy@kjCMd2PU{^cl7GVUf4yS|_oU;6k3Ylu=GKpCoBc0g>RR z9Vo!DNB~dnKa;|;7hFty>q!Nc?cYUvg|8dXiA!L1r^d;oa0g?rC(+Ml0;NFtS%a8ABO2xlgeWR9F9KT1^azG(qU{1x)dsU1(Rvdy z%61MA3PDMQKOrfEjGiJQOy^2OpPG}GIT(PQ2_GnG^Vgh%n5=DS5bbcFi@^W~Lx(g1 z_r20h^*?Z10Kp(R6sIDQB7qC$*FmEV07Q_I@b}h1NW8?;5@H~@QAU`6M28GzpJNmO z-V4rg!MK}rAzFgPHAK$BV7P~G5kSv^YWzuw_73-gF(U$tBx1Qdi%sHR!joo`0=#4B7Vb212%#MdWuxLTTZ<;w&a3N8~c;1D8l3|iQq-gngU-Dy1kO7ci8ofG&c(L{N1qmdc5hW?0 z9B;%uq(PX_q&q^mo#ZwLa1N${8k?mRdEIC`SVB0(_0Z#uR~?C&LS$o5N+cQFR`wHh z2_|0!dh(dU6g*EN_+@!0gn=~tq6+09CeRgZjzGrIDDMf7=rETdBS9FSgC>YgN=)dG zjBzki-fs-%UV5!lkuD4n5bc2pwZ?*OB9W;@1YQ^O z*_u=l%q#ohfcYVbuLu{X7?NK&0RRFk4dX*@Vm9oRvaK%9yh8{M zM#{(5gbW2-FiZvuco7}jB3JA?igC?$?HeOqog(Inf;by9PozR=f-02o!A3HWs*4&_ z(kL%nWMnsE)PbvGBfTHkPeu7+4fb%PNt#)l4TjB;`!l89E148^BdN{`XDq=`kUkI< zSd|?->0I0eOB==bs$V!#%ss2H&`QEm!C9Rmo>Ipc3ehM0H9@j90Zd0Bo$$~vV27~R z6t#;{w4v%E?v6q350Z>zj6ha}e8c-dY}Gk`0KK12(<6vV+^ud7QhUo1(IPjE)UTik zPvXae#^HV&gyV}0m$Ouf5z|VlG)cAaX?#w9_d6S(Anpb4Ff3^jN+r3kdco@gGHHyz zB}wWy4zCFs;>JkkGxYy+U6k1AN5&B}nqa^M0=$bpl0;!$5P0%G05GRCwZ0Quam0GV?EwI1f1-RH zLDEoFaKRZDP9BLUjJ9KWF;FKJOL}>!&sQ_3b@azD>)3JwK_YW->>6_Xgu4`$j5R{E zS}mXX=;Iy8B2rX<1y)-n!VRK=c8Hs)RAMW3naF$&e|AGEi`gbfBu*L4jmG2VsTOAi zBqGC-8qpTjM1qqbBO`@~(W4O3=dMKZ7mBrUZ$xQ~CbTl%KV`*@ zU~yt}F-IVwYnD1(ao>WK5FiHPk4`c5i5DZnAkP~HWS3sx?SmLfb5bsqGV`B4Nzn01~*5;8w(&KF{D zOwpS2Rf{y!q$u|aSRDMyL0$r9F$@#}PCf0ytg-fkca>lWhNPNGUOiF1Or6(QrD}U; zQmct&8-A=%nYAo?*I8zHe`fz*L%0&8XaQ5uIs^^oNVtUOj|9Nt27|%m{p=zX5ecWzi13dgvsoziPKqKP zDCqzvAY+;{GBPoEfS3%6B54d6EoR8LU`8zhNdag@yCV>}FA*ud$wY!y`LueKFb#sz<3e{kcLEh8H@mTQ%?RF+T{8-Y^$D@Quwt(P*|p{PKXpMXEz z{2o}vB$2%M1Xf1}hy`+kLmUTv--ofVGIm_$r4j?kaFO&8?geNh*SS}~@m5|YJ%AkA zD~LXf$HMnY5Nu1CZWzoaC2?S!lAs(tZ)!ts7C0NA+#8t)o<>n4qQb+Zpj&T>Bh%DX zvCj!02uM;m2*EaBPA|T560|nS%9+w%d5b-4F!Tv+O&H?^F%TI70V7yXoQ|<8A zkQB$q_o?b6a2+^DV&0XZcN{87lWL_}sZ@J=`}&7Q`iF;m)~)O79~{}ZX=r$)x2G>j z6DQCN02&zg5ZPrW*h73=qUNstP3-fdH(=%%;%d=C{6L;_4y*oZRIXN>u z-CSGKSuWVCN=*JnT!i@yygnxhi05R2RufyDfTfVcFD#y+>S=s2>Gi^Bad;_boN+-> z1JFcFWrp$Rc3TPsSv-7kK7~K)XftHcuxTyG+9D^7w}xV_$)179mrNNB2T8C8M!Im2 z8e|A|0tmu$cw)O>A1L031<~29d==Yf9U}b=`#qj2jfM7)XA>l=@Bf6NO%(rZXa#5l z<75DSqA{l_Ylzm$^1RNcjEh|?SGs%q)(;ME-LY%O?!DW#?;PE{xmxQIsR9fh3xl-F z0D+2TP-aQbgHT{12Z6OAfHDGeWXB*-j{gV}>3wt`uX;;ScC^x(vcKYL(uO^QGZ`|_ z!rUZM18UM?>!1{b_rPJfLp;-wsKb0L5o%=@Db{hL-1wk^;DV=yCD<{-b4HSV&Izmq z0C}iHCpy=74o#@05(@GND1xVDj^tIP?t6ubq*bPCDLkSXTjQ*sQ%H0f3ozh$fE zD5Gu0O4iD(Om8;t+`4t@#Aly=^x@?A-L=)a&RURm1ZsOC6C_29RR|hQ7?nSgEY0G@ zYPkqfH{+FQ=S_-zjAV--m^7Uf9I6vS@9$}tdsFDo>~P%U>ZE<$?{;h^6Y3utIz$4a zZsa|m7-VE&CzYr0HWM~z0AWXp8YO$jdp(v0;Y&jE@9L?F;j< z><}+nDJn?@rU|FpqQnXGk?==J5=Tb02?}QljrBF12i79s0)#n%p!ul8h zns~+AIE_M)mr)y?nasX5MomHPAoNPn&g)?DaG3zeZ+Wr?`6JS3&*Mvzj~MBjCk;^6 zi5=A4?=r36^BjV&pjR1096F2~)oqMP@CmCDD$_&^4jM@!c`(N3S4kF>_xPfk7D0GG zh6sM(GepAKzTeSsC34&e)>*bVH$O3ccVcXOVQ%K`ojW(LU!S~tcXegO3QptNxpnl9 z|6{rS5l`(u*z0}*??1fDdX(J{N~y;3;>A;+&PdV5mr z(H0x9g`p%ye0iC&M|M4F{d}zcp7?5p7~X32cuF>Mi;`ls z4C^^?u_W-SsqYAg3IaGzVW0#Pk&S2BxJ-tIMcKgMGZCbTS2V4J@TLUiSYu%sR^)=K zQ548nKn%PGLn+=gn7N20lNMC#m;`{N?sSG}xl;1|4w@2d7R2Lfqn8&KZ{N6a=ETW~ zJ9p-1XY0!=&Bofw%IeC>a6gOuqVCFfU#Xvu<8fm05Zc?i6YWB{A79Z-p={s?p1@laF@TR;t$ zxr-H6aPmv%GX@3a0TedTml&gTXSTf&FNWs?iQr|mRtTF>x`9L?L11xI#ta<+d}XmP z(Y**Qcz#$V&PbhS;Xs)8Ciy4Kmqshk-W5;?rR37$!p$2uu3Wfq`TW_7XU{LpPPf*Y zJ}=Qa(u0_? zBN6~}@>X+Uc6woc#u$|udE?5J$=hQSw{Pt^cwpPkojpB0uH8Jy0L>g9roc1<>)@k@ z+?@aqg5EFCamqbElwd^{SJfHg4z5SmmsH$G69Vo}!KnpBfj5O`dMDKXF?`HOTF7>` z=6`{v1svdIeQhb!g=dNS6_v_YYP0y|gE`D-qPocZCn=a=1D`2l^2XZQ%JR~c z3m4u!e*EOeAI(jUr4SDeDKP%!rNMT5fy0~V8~`xZ!PI3IFukmywWA>;ppu5|9NrKu zN4sGiSpm`d_;i49gNzA}<{n|dl=@x>B)RWZkahQX3Df@3eX#%dW>dVWQ>miDQr+jT zg~6kNKaViz9EkGwyG+M@g~!O^ozZ{!eD3vv%=O%1odY58Ul~ocxyikLstl4-B1~&} z{^E%bZeP22`QqMV&%d;5*Pi}?!D_9RmXe5s=wK3aM3;&$qb4PmOP9#B1=U%D!wzb` zFD&5@lURHNEIJG#d^cI5BGT&>b=<{DM(qF*eM~iUDc^{5c5X>H^hUR-fc8Zbm1ro& z*|rVAzCpddz;Qy3A!Im9aO@h(#H4|!^Hf{kf{25lJ*$R}ND_e<=Y{Ygo7y*QCaFZl zl5A#)!G0SNv%*siI{&)>9!LaP%IjOdaXq|z8@Ux ziK3s^__RcF#fz1dG35-K=_>t2g?2IZL?!uGE^yXSYl>BXY9U*C=IC{iD6@LJ-i8w#hu~COU#0eb! z>yq4}xYBH+DZ-t;Wn8y#A+g~SRGGuV3=sE8kHJbdE_cAJt#{l$OTyS|gdNhebeLTQ!#A#b_#glf&Y)-VjSH zFeZmhK*Zk<%Zh2hl+>VUL_778BcmfjeSN*PTCH5ExRl%kf}p}` zQrQ7a;L^5`zc2NuU2y`+LB^+f=rDxZvo)4vsqocQ3ZfE~D(nz)WfqR=8KpKdFnog< z-5zE2d1@F}s@uq^ctyH-us$GFil@Bs5Iy*!FA2#VIA{}K-~hGFj5Fg{@nn|!hE^7; zohB9w#O;k|WCA<3`dxuMBdu*dpJA8cq8+DGNc-|rV|iGRY8$OfsKjij84b)yn<#l% z)4Q;xWhN<>jm68xrzJiiAGH^pAOhL=@+Nb^9l*$4x=Yq-wbmMqwY9ZIqp`BGGCe(g z=k}fH>FIjCp)(^jM$ov}L@6|eAPUkiJ$-5;nvI(mPt8x=y>kBilTW|6_t1lBx#U7j zjiTCTZ74jg9`am)F&)v`x_=XFIZ2-j%Gtvp{$kz9xTstwn#N{8E-*0R2sXz;3Xz9= zZfsc01+x|Ee3VM)m*6PgPf1{>Ye#-omrp$dA*hO~Si@t26h&d~%W>vDLpvq&hh|2J z&x38Tt-VnX8z-!+x7^=t*&)yh&PN?(!{kia@nbhS5+#2>O>#QFkxT^dypJ z_p#H7(@Ag?XU%th{KL0@_~zv^XO?E?TA zvoSd{?F)uo`(c!<-f&>w9FxK7L)UiL}rP22Q)vONpSI4Ryaa3Xck=oNFj_i=}M(CI5^nb+f7Atiqk0Y z23$kFoUxTFBt{~eLbRF;%3-3TubYlr6Y->oi%=OJgLzn-#lxy8tZ&tEgu)8lgEDmZ zn<0}(7QPyk0D}e&JkhUR*j`RWQgFKbyIrh_VdvK={LzTc4=N@@n|t0#mp63Co(cUy zafCubp5*dU$PNLFksDF^MuCPM=eDySt(!F1MvaLr`}bVydSh*TV&dA(+wXty(I+2$ zHa#`Hw6r`oJHNcNl(k&VGITP=9K`-Fm5DZDX>R7sXYVJ~iWGY1?p?L+u23^CcJ^{7 zCsP)S;e26bf>(fa$0$_BpCl5{-U`J^kvIr(Ppaka#}AdW4cG1iMAMdm6fvSu;KTBK zP4S&>sFuzX4^TS0&$rQXQI$p-9ZtF}?gVBKq{res3@tf|90_UM?x`tYFCf)%+~|dAi1AlD z+eBfX!Y2l*2Wfmnku77QVzm4BWSSulE__n(H%eYQGXk|SdD>uqVSJnkgLjJ2?ob)~ zb6-Zb`IDo`Gpwm?ZP+`RLYn^1@RvuHNaPvtz65W6@vpRb);p*ear+4>NG;GzkMq7w zoJnj1m76ezV{EBZ-PNu=J9ci{y7hqr`(FLR3%76G{^ZloKK}T`wW~K57ZzIeHKWl> z%e@MIQm$i-Fj-^uqvJm=r!tjh=e`4~RKjE+w!w&X_=SzP78o}9Z+YWMrh^x{#>Fli zEFZ<~1|Clc@u3N0?wKnMSZLq{c~P8&7Iy zmN#40(*gyVUH0L<8Hi;6^Mks!aNs<*4_#hfJ9qxlwd*(DdH1JZdi{&P@f*L|=j;H( zzW?{TicDNmCHes8{99l57a9If@@KL%K3;Ls1znh`DpN6icB8mGnQ9~k`TzN&CDZFRClH$MI8PZk&E zjx8)4dGcwa5+i+E_z*`YAQFUB^CFf2NMT`hnDGO;Hg|P!^B4a)B7Op zqwkygd9RRA{1Zu4;p@-pJcO$x3H2BNcp21OgY6pW?Mme`#UL1TQqytbAiuBh??y=J zQ=41t8@DoRK2}6Sw+ zQ&FyVclGvk^^Ob;9XPQ2=u?ls_4ZHBox3zWG23digwB0s01;}~c|ta==GxNr%jfHB zt9NeSJbdiQ(M_9cwVIJdWYNPyK6)=G?1TuxuTUDA(!L0pLBCBDnn{&lI%-dWiDQ>6 zCv_CHqw&kAqm_%BjtJ37qHr&bEt#qV%!OLNfiCNYYy}f!S^(4t+CqWkUtCElObsH0 z&Q2OzM!eX)jQFNR5Qfbe;&J~4Vr3O z*p3k2y@o9!bM#^K$a~0@hy*1CRCjlE)oRs|(V-nXcWmCW`LmN}&Yrn=>B8kZw{K_7 z3{Y)U?df3WQkeSU?9EH7^OF;+D@#Y7d}hb)y|r4^2Ao=L#4tskl?-Bxl|wqbF#v~j z@Tig^tI37n%RJ&=BY>z4!KZQ9CxVY0FO2^R4{BoX4!Dj#1YLD3pAw+K5x_f)Oy1Hv! z-PNw1YFAIImDks7wdeZk>e||JZd;46@C_mzq{4c=arNr;-~atT5JtT4!t-0UY_3!* zK}1IM&~X8N)(wTL?M|*V$`0!JePEsrf9*WNzxBnmj?Xv4&UVc|^@}gvKU^N#=Xfsr zSxMDZsczf6Wprf2<42x2edgR-KRN#69~~dNb!T;H#kE7^HY)I5D+5epb$+7$-j9AD zjH#sQwq1LYaurGd%WyY`h&v$3E^0i7nvdm96cBg{*MghlhF2CQaZ$OFae03;f-!)K8-~*JB&CMe;i1$;;4QICjJ(DoHZtLd`wLiI)gdtYibtp<)p-_YS=UcBpp9*sFNar|* z2ze-Z5t%K)si1u7hqD|Y7+&Q0+0&=K^Q~`Aj@?eIEbAQVqomAToO-odJNm>EPaHdT z=;1>{9L6V{;ov`Vo@GzZ~;V*AJCDV1`M${-ak0M4Yp8QB3tJfc7V?Qe;M%a z=!&oaG%J-5wNko$^TtghBS#*2WZ%yH-}>fvPM7e#ges~Rma z&L_fI-E3q>mAcJzh<;WW?So!0d?HlaL=NeKjyy=jlHfcigi`sMi5zlu5ab15JB**g zC{UA`gHv${e(ECWJrB@r5jA6I&gH6sy2`66En(qQKusXKuaFZV(d9tCd+-4Wm!cw} zd889rIZg~#93%mii_p;JFr*B`7sN5U!f=UFp(t;vl51D4UO0Phc4{(p;l_@%Xof-A zZe_Vj)ZrtCf8(G3`mtkA3=Z^ncXw6Gl_W{m_f~dp8+rQ4!!t8qIe+f_x4-k9lP69u zE-uSZ=}^Q2da|6Jo_+tl4|eR>{+qx4Ygk?49@ppRW&c#UUWjD*M+EcyaensZ`&q}5DKX|{@%0<{Xs0mDk%B{-TYOdbCapj};-+kt_ zH)6;gr=m4N*sI9`yZDQDu`6TlOLsjnm-gd#ih+}A#KKmxugVKK2O z5$S>=+>DhwJC{5oFkCZR!9H5&E{`v1Wtr3EvGJsWssRr5Qj+`}G-rBED%%`dLc;Q4 z8imK=!BGx>gj_4suVwIi_*L^_0y;bLL_5)rr3dL0kU01w1$E))3Nr%;d@@k#8g9ld z*8&X}6kUc;DPK$hF=Z+yrJJn_XU<$YcUCu>j;x?*A9^*=3zr+&H!yVU=o4T5@@ubs z@e3O^j-*PFKdM}=bazz;2i9-iG_q;aa94Nb%{SkA_ni-K-MozsS?c!5w^p@U`K8NO z-g@i!D=)u1Ix<)(mD?!*UIGY`G8H6Rhy-MMhdT+Zpo1CVLuR-ihJ1KHh6s3B9HQ{Gp8r^VT^|Q#ienm&5Js-C`?6`|CTuP;c9EN+7ofus(ggA__-^K23&rq8#8*YM4;=Tv ze<7qWgat5b9Ew0xOQq3~p_g8GI%_sst>(ucf1K+K>zd)XL6{qv<+FG1UO08~nU`LZ zX_bdtDBNh|ZlVCS^LQISix8OaD~2Jj2pT#T_3Xfw+uZ=cvj~1g7h&1v6N#?a!Z5s2 zv~Sg7M>4)S3>hEzI$p1LyWmY8R{$;&MM46XFRTVzEB|?ld=s+9f=3zej&eun9pW%1 z&r)s21|hMNHahWC_&y&T>NJ^1xD`R^irPE z^w`ZC=TDs+yLlsl0fj7(yb&@jmHG#Uo_pcBuYUFQr=L2yVRXP9ac#nR7tolkTuw$e z48Qv77X}B02K$G8@{{+jUb(hfUv<;abhHhgQz_-#{KBa-XMS@0o!4G@X?SozwB;PZ zgsxnbNlN8%$@X_ooW%-^&nF&B;R{vKf|J+`QZ3M;2{p4=PE~;+hWbqc z+Q<91WrIN|dEhG)R}$7oVxSZbKwAY*cX1q{H;BXn3q}WW#CK7i$we~EQ0qT0B0ae4 zD?_-Cd55W(Yr9En_C)jr+QAZR_gW~@z%)Jona@lCneFcOx!y|omS8-k!NoutUz{8T zBmIoeFaT9}9S?VkMN;@8S~ApZFOa@ zS^`(c&9-Q!i=ndyf0~rbW$PKM)hgw(`y8Jf^kToc0KV?rwe{tfpNDA6OBXLLE-mCb zC)%N$CGd2wEiX;pxwSAoRUREl$|WArs0B8i74%u#PqCMnJ5JetMyv)skxarB3i!mX zP^8e15y>aX&lIl;N1%Ls>`26#c87D&;w^OLt8jXRJQty(I}180ECPQcp9scbbHLmI zIcXn)VPWJM?ZBWh7lViQ_yH)m)@PU_)GGCVT+)H6^0m;d@d+qZvrrJS;@DY)*v1=iEk_3U#` z?%uO&|AGC#_q%_1>Eh+3rG-p4Vk?K1OHWQte)A9h;Lw8y2iC7oQ-vBCCSzs$k(^N{=hfPsk0dIU^a*EeR!ENriokj36 zi{ok9xWGYz_U8Ai?6PtkQ%gXudn1mzWx^m5gVCht_{!EqN`$XeMyFF4OjK~z)a2$s$9^*T{qn?NXWYEhT@;_jeglAt8)o!6oQ0tr+6EG9DCC=90Z7Mr(^9DlVsn%T?2yyL&JmL_{O)+oH;W$KikS$M1<_WmLTfOi|0;% zR;?W!7#s@6pB-4N9a)4~NMSE%zNC@HVW43&9zH~)74V!w^iknwe2~8x;qL5i>84>W`)xt~D>=7cmre-(NdEfDcpgz~XQ zDHe8S`M^Qsx|=jZlL{s>xuXp@142}O*vNwW1#;PRyf;`4ob*>CvSxE~{O)`29G|#5 z?k5IGzlJGaLhL(m;Ok%igyD{^Kw%yOGE2|%U_{oLy7dLI#FgVyxx-G4OF=oe(9ox5U|LB8{ z=jIlA>a9wxu9DOhm-PHuGF#sL9?^=z+q@`tX+^GrnUe%nH9zg6&O-lEZ$d!`ybtgIlUq?WI+P~yXyO`8ix7%7rXp1j6EWjT2pmO$O%hvt zAiO05TIeSU)yJ_llVN7E7sW|TFzmh*cZMynnMz%9gwq7 zdCwW+sY&84B9zh>KAh&uEX)R$xteLJwuyr-D+CBp5h5q^)7irby~=zYF|8J-;H4kZ=l@ z1W%M&n3+BPqaRJ(y_+?g2xp%bc>#uDX9ZZ!pEGQkgV4mlztE+Q! zb6M7sP8S1grmNOf>+0_9tsZz_`#<~jpWm=)@Xa^hJa_)A&YM~kwF<3Gv)TOMgAe!Y z**P@S&tCxSKoh@=2xtF+{m(q}%*m5yPM$oKXPM5u4(IG+h7JmDW{aRcX-W?v1O}zD z3%T=ejE&fZ2sa|6B+(|37_a2R6p))DPeQI0zom==5(T$2T$#;8iab2fqvN5x8JADO zrwJH=b&jRcp^6Q`NHSElkkS_+lm2rOk|AZ2S1MIQ=Q^P;T+t=j0-J@` z7&q{++vaGeI64hsZ8?Dr;l} zaKXR{wB2an2a&*3z9&2os6CrZw5hb3MRSq`z}dQ#T#op3twPXIM@WW-jp|jzzKT$S zo(U@WVu}uQzd1VcU`X^380<;bK8LW3fpZ|8dZJ}sx`5D;0w(d$v#v5honwW3IDN?fm(3OUsK8 zONHC!nZm~>PCWhGQx84-P#X5ft8zw&p`pQJ$BvGVPu?AyYzki$TpP)QUqo0`Zg6vE zA@DTu<=4=I$)U0yY9aVL9@eu^gDi$go=}j=`}9N9YxsWHvyk{3iaju~5M-IevMkKb zGweB@Sry)q7@lK*xOvnEB-EM@)iT0?3G)n6m91E`B0>;dfa*cmD30Z<0;Z=l+kI{5_8X|*jy&cyvfZ7s==qIX7niQX*F@~O$G zsfkIYWKU1e%`4X~U%c|f6OTRl-L-%J?mXA?^NWApyVXtu}O6{?+g1ik}ELRGU#&I`YpDl{dR z;F0w_LMdu`Av>wtUJ-WZ9GkR<^d-Sk58CS#apEGQp`#l)+Bn3xK(rLz`aUe%LqN*c z(F}1V7(4?nrrTKp_X&F!1XFHdsT7(O_Gp9zPzlB(1a9(CUAU*BF@r+rDP7}V6uy_i z#yuo~nQN0TD6*F%NhW5dE?ziy>*iIfxiiRx%BPn~m7`A{d;a-n_U_uQAjAl}m0D~% zYfVqhO-@eD&(F8A))};@n zA8@7}SgP?FK49@0-#5{82E*!xA>;EKo)PT?dn+n<&t$3OBO|uL1Ek^;)Q)v{v&B%Z zd9cSKGBu$#AFJ+$#pB5t7Ch6mN=DK-3^oQ+Mg+Dr<<%kpi__@f=dA;9VvPBETG3)< zY5Aj%KD~VD%9(SQTA6y$66m;^h}4N!W_=X zmoqW0mDu>LtEWHh>s!C>k)uzlQpNQhG%AL~a9YIz3~*s&xer^^CODB4B3`a{j7Tvm z-<8*Q{a=m2j;~n!#;3v}{dxsdgtf9$*R<*em3oFT`q{PvJM?)$ujgWnYzqz|wVOCt zWv7D~kz#{&GG2mbBOnXR8p5=TKxfS9ish!Dzzvj=%PXtXbF&M}%j>(lixl8q#deh$?tkow$H!)8mZzp| z!%cy9NkLC-yVx6|cnEr?fle&`GYo9?;J~K-ee+o<1GDaWxiMu6%T(uP_=uFcF=}4k(ro1jz_6F)+XZ7X`|j z<2P6YX5r%Q1H)tkK@VOc1T)lgq3CcJRx%2)8+ubR7c@rq__F*i%to;VFV0cMz@Da< zD>M~N+bdCAsZwTXdFhi+Pu#h4_ka3d{`)779q#F=ga^bTxU1H+d-u-Qzx?XmiShY` z1rsYbz**sA1!1Ono-Z#ijgOD3L=6rOR%_K#ntJz}w&8Lz zN!Hd{b8`z56L&9Nx->O8Ju*5vG&G=;m|s}b!c;2NwY9o)zVc$W_Pr)1CdbCcwv3J_ zu6?nySnH}DIr8vZKYjP^)U*h!K+1N0a_@@{t3<~yc;FH6MJ`daIAe1%=zI~kLIYA8 zLz;r;1H}3;qDNp3N8m~wrfY(#6@D+e7OUo=ePf0es1=;=Z}q!3%U}JxSo=E)}MZ-uxsyua=C`xvM8yj=m_m(iINUr z@0^*QzINsEwOaSKox6^{@O;@NGyvM?kS25G@|6=Ge0=rNrL5Jc)oKGn zgIjm)eB{{U>({L>rzHV8jgd*3+`4(|^k<)4zj)bb(c9O%ZP$+d4?NJju2-c#dP!kZ zUkql8xHdug9Lqu_TXFf(&d_nkBM5{s$zmb`*cy`Y&|uWkCvnThpaK$hL>2>1$VYkm z!>uGmOk)>gHa~7p(%7igA%h7_iJa1&WF5*R&{*|!8DLO6x_Lf+XY8|2KDmDFTC35N z=t5$KwCU>U-m`!2E3bT^ueTed8n~wOJa0CeD=RC@%PX#xZ<-{jPmPgcZejk`%{%AL zU$}97Y;5fA?9AM1z3$>HO`bQk$z8+V1Q?^M?v2hvuaH|lI6gjp|r`{xc2uOto5B*SD@#tE$At1We zCX>K0$nc`zkig~q+SaPob-lgSa%pO2c4cKHYqcPmiu5~aEF@NPqBP4gql2n}&(Sv8 z*h<9&0#adg#nLj2uOMQTB)20uI;#aluMwJn?W#q&TwdSTw|@P)v9a6p^Rtkd5L(t4 zN&VgY(m2^=N3$Cq0-a$#zS_H?!u61{i2r4>5?XRQHCsZ*3u2P~!II=h(TWjhKH)LY zMzEH(6r$$}E+?v#HCtJ;g{f=S(lEiIk|5X>J~h~P9?yXTm!Ruf`&e9>nD)H~pl4|u zn?$wWee@5e{aY3yLvwTgNH>0Nl$@HGnVPH z#L*+SZjW8NcKz~|3lzXcd?t~mxw3ri;)U^BH>+Je-95cPs?JO|6tqH2i7VP%3?Mz2 zD;F=l`__*xo;k6$x+H`um8!cRcxcn!-P^bCDA{OJhrLK)GIQhFjSt>^_wMZ*(%8(2 zQl+|i$M#BB<;detRC>#xI3+^XS68oIxcJi_zjgD{6`@6?yS8U+f4Nk8984Pmjecsb#*E zgVwo6lfq^IBE%dT64eUl&W6AZH?iEtdM6}@DEHW&S1e)SzU5^ASb1odIMb=oIP=+w zYnLxCEi43&d~^WCmd#rpd-Tx*dv}-YNrpr_=zeai`LC_58QX<9RSJ+Fo!jE&*}3x< z-g)P}k3Kq)HEqjmNZo{zcIX&4LT8>q+e|8LLKSq-_>-xr>D#w&HyVw!nzlg=-dgJI z?H(Q;>FMcRURlQA>SEiUcI*#UFim8sRO#;S+Od7>uHCyvhK9QyW zr0x2 zx`A$qLD&%8TBet%bZ}_!nPW!}?BDm7fAyE2d@|=U9t?MBd8UZGDmSvbr?0!Knn-C4 zdcgnz&m(o0MEw9cunrn8VKKm{KZ75CCp1!_Kn>N;$R;DH_}4#=%A&LW@L2m=+VcnU%Pqp=FL_sGeUEzY4Me;wK_k0{`AT9gTuA1Zmd{i_?hOo zIk_!G;j~D*_gBwfxN!1hYi$LR7Fug-(-U_uU%0Ss>-N+p+*m=OmB=!)ytKMFKcAS) z*^8=GuTPKNJ%8f#!-o#5b;_0Ku@!_S$M0UgaDMFiwUWpam1L`{<2PNb=GkZeoB#S>uguNX zSC*}yZ8agvHA#|krP9^Y+uhUC*Vp^u$0z=`|KtB2AHQQ<#;W&Dkrv`(H)P-X-lI<( z{_psPK$PEXn7Wyz3k>}&zFmsH9>_aFVjFMa)MTQ?3buQuvyjpe1K zg}K?;+1au2yVtH>J9pv2<;#~_&1T|&7*H`>b5!p<0}%B2=bw4~_1F4(dU7HE-~Z=# zjvs$#X=#NeAi5Hl?E>1JuTrVJW$U)DzwxCV+cuBgx${@w|NfctryI?tGOX9H5&iuG z&%N;MfAOFHC$rPD-}=@c{{A<UrSd=jkN?BaQ2)Z>{L<2*)|qzYAfX|X^Fx-a)oM>y_xg3~{@4Hg z|2%Qx)M|Yd0$zfGFGaJ}THn)i`0zt7zx3kn?K{@inkP=3JbwK6i4!MWv#G@U7F~Bf z7wC~TGxNK@`^}x(wr|?BvA3^=XB8nrp;aOe9NhEz>#u$K>8bPQ&ox^0!iqsr=(8t3 z-TS~po40MV%At$4P)X;iYSCI3vUzih?<6ACqGVZsi$_S4q*f}Yp+2%b4XLtdex+J% zELy-2JM_p(SFcnht)H*+((fAX9%yqx0~4bzqli&UgxK@}&M0JOqUQr7FM z6O$9;V|SX(hQ#bsLuJkEu`~liLkA8X+`DI&5t+*^kgiX1mgjkvxzc|w|37mTPo-2@ zo~_KUy!+03*RI`cG%_PnNOu5$$0%1I&x9~_2a==1gLt#k$LwdhUR+qZdF%Gj(1_w` zj)>ua$unfz%J)EJ)sAJ^0=VGOYooK~qYoeY%2&Sh^wY;iH;jx74d>8@4! zx@(&@j2zgz@3(*Zch8+M+E0-!gJw26bS68je#x1al)*dxC zqPwSSWO)6~otu)>)T(7ARY6>}nvK@l>ekWzbVI*!`gTiW)VVtcwwgj(PLuRZwX{-S z&h6iGqeD4EmU$-Aa_PC}p8d67{gsUyhf9fk@`=YToW1b9@4u;PP(4dyp&UXOje`)i zt=c47TQ?2a5;@l2m$j_Y->Ns7%d4wXGjrFj-+1q*?;n5r_{7)*R73RH#Lx&$aaQX7pGv_Z{ zynM0IY@%P-nLN_;53DXvJSZ|$;{(xk7qwtw%Aa@neG_H-Fch8JLZIj~73m2$bax67iQkYDqTjK$BrC${fp0ExOC;sAHMU!`=3lqOxlo{B!S3T zElexVr)OvX_N})zY#Mp~g(qPs+)5wyU#pc49Nhg|zx6Nv&A<7-uHU+5Q^Poo+dh$U zc4qqS?OWS+>{>TC?0HbG-Fa8B|ES3NiOJZdC?)+vL+b~ICU4h$%z{$2-oBmt_LV9n zBxvi>Nz-I-bZ~Uj#-*uo={So}qSD>Heb276Tyl$=v@Dy*w{73HWB2aMXU{LsOdFwc zqkH?-@7l9hm6WrueOpda5(E&);UCb`3DnXM;% z=P$FoyfQw1cXf3Y;(7eHQSw>++=wGb9((Y?2iC3YwLB^ZNKAu}XfzsmmN`vcXSQ64 zmEY5|Gslm=bLPysh52P+5+Ric#m=lgYE2dm`BmCt!a14%9uo+KaDW{xE-qiWdhO7m zM@nVW9t#9l|G@g*o^E*2PGJ<`UqCT>d%7Qf;L)#q<@INueQNvmt*$Bzzs)4puuzrt zy?s4hL;VA5_0{iu=TATU@MEVKOO!l@f!$u)1T7`;$>Gw~J%e~RgFYh%Gp9+Zl-4Tc zp02KvMb8ouplS%4Yt~m+(lqIUg%mhJ& zUiv2Qm}%7C-?w3OaDHyC*4@Qwr~8t5Qkt&r>b9+$D&@4hR(&_&c+6 zbH*>eJw>H*+SOGpr?R`dt7Oeq%zy=crd-U4(6w4+{kk59py+VS5$1zjI%&;cTeeeU zkQfwx9~>Nb+cs~lrj;MR{m$gfWC9)> z_omj_l4tLI_~EWS+aG%5K!5)_~RQR?d2uxY#+eS<0Iu+8Ey%H4RALam2cG~K-4P)|_3z9KP#xlT_!(3fmyM22M zEI!lT@Xw9a*K6x7vM`bu_cEcvjKkc-#?g^q`Q=}H;f3c02G&!lBb1f~W37a95+tLe z13&k**YDiEbN0;H)p|W~Mc?8g&hebE*p2fy+Ol-MmOJtha9M(UR<^KO$;k+VvK!1; z-2lAUHT!7g`SMDAX2I2l^up65X}VT#+_-b6QD3p#UuzyIEYWvtqrCr=NWI;fGtfzI65a)Z}!E5GW?mh}>F?nXA|)y1Tlo)oMWekQiy!^phtA>*&e^ zdNtz6RFqUwq-omM(^GQ(`r*NWCyzZ|E|tf}$3HuDs@_<0OKpu&&@Z)-iNb(|u!9m% zRqUQ3^IR;i)a&(nmgT;pojWPHwl(q^^~UVXOtVq9Xo+(4FW5dEyKIFj}8y58y*~Z`Nii>pT2nF)ai-oyGARaFx|va#*LddPnKw_3T$AARibzWoOVMuv^+^y*Sm6EN_kFs}yRmqudKt{|gaog$-k#%j-@B!E17a`y`irehI9UgBAR z#m4d2U?B!Ac_6^#Ng`{#eYU4n276iO0VC-S3G6^TQ$j(%X#QyW|RyCcGR&6kgBv$r6BN#<}aM=L6@IYD*P1 z;0{a5X^EIxcX!uQPaS>o$)gifQ&+Fw5LyIh7}R1-Bo>*IUiYzphRth|P>x23wYA2@ zi`TAQzqPou(z0&v%+?9@k#EbhGgIT^cSN3HZwq@QE2Yxt@X&(~?k`tTEyVSkKX~fM!@uzLSD$_M(Nbbny@{#u`Gsj4GvgeojIix%-nldW>8B?jKXNz^wg+Dp z8^FDH@16~#8%m|JhlwO#4mm$NKQ}#-HJd6aB}oZHmrQc3RLc$qf)g>vv;>fr(gzMb zc<_OPDploLSs2-DwVKUlZr54(auFVflcOUWzVyZ$Pd)#<&U0G}wNh&4O_$b1v2Qw2 za>K^ajUyvZJ#nIOwyR`scqrn zq^qYVb)Iu2MWt-TA-*y+^|Z!At_{s@YHIecfAG$?|M<_BmX@3dwpo5UZ`d+3SxcA< zUz54h9qH71x?Xzq<$Zg1_V#qSC`{SPS|yoo+rI7j7oPgYH@@K{iqi-Zg@-M~QB}(2 zYSo%n%k|c~ADnpW?f0FemuV^nht@y)%+X){rJp}?Xn&ff4<0=D;&adb_4nQ+TgqUS zOiYthe&wJ2^6cEw)YP9Z zEUg%6%9iJ(K$2GeCI!4uYN?=NHF)>uXBYnP+kf`MA0MBdnZv?F#%1qYkBktl#%f)< zP*I5Kltz?Gm9DNzrTqVq_8vf%UFUh=Ip?OA-|L*ar+a#G#LOTk0z@Fd1SSPbluPB^ zRjFjlcG+dS*0oz+ZEdMsF1c#8w%1x0Emgg~&J)Ohr@ZwG9 zY@K+|ecb~|yRS%~(f!_i_nz>dKYai9S?r(!nRK$FCBMG3@b+6jy?o)Lp1$^6A+x@^ zJT^AAw6wx|4%8yFD=0*;#!gyYIu zD#Ob&5Di=mVrgiIPo8{6hQ5T9%L$pH7Eq`hQ**Z=6j9IS^HW$}LgaeYWUAs6{87O` zKQ^|E$h0UXmbTNb8M~1!m|X?_S9rrxEfPpGA^zgI?)vH)>qFC@icXhdTJ2q3U;5G; zy*-@_ltz^BnMejP?RXXj1RRfg=k}dDcShDXN{|-ZY{N_;%c6Yo$h2)cl}z)_< z{GIoT8)Z#rhR%ivg_R@%-+g!GoF3u6En8I@=2`e(G3pd z-qh^uTt`Qn<1mm?Y*gsa>2#{Eucx!KV|is+!onFkfvx}`I z@d~Z#{EH(s^;Npr^vh&8jAJ-CtxgP6qf7-$w1lkh2kN5m>YF0>1V)=hGN((oOR+A? zUpD3kwC~2+W2iX*aoeT){^B>1Dj?S2s^eQZ-JZOM=upufNBqfk-Hna)hE6D9BZm*>vze%CRpXi#d<%r53~{NnF*-IjGc$)VG)x=WNz+c-iKLyhP3jhGz@rr{$Vbc?d$FB>FJrCnF?r;253{S2tarqSvV29c5gQ< z^yKO>28J;VirKMvzudunJ960+A6C{lEfY3S5yXmo9z%kG=0f(V#|}2-om#c()#~Mq z((=mkd&iF#SJwbN=?z7Kq(4b6m*2f-&tu1q6mmHL;L=L*7w>*BIyU+nU-?p7OG|5O z^QS-k!u_e~Ql+9q+%%da`hS{1uuS29i>7{FPC>pGPTikAefsQjaXptwBpkb~xoK!{ zV6C_s1fk^5V{fI;%+XNHhAO=m)mx!#0BE#!GM(I=O%EHpltG{{2H2&Yiz; z{rdd;{LD;=W$+Nu?1pS!r?=zz!SeFz_3JltxyK#H)^d8$+BQwt*Voh6*LVHKO$O3| z`tgY%DQ~P#-=7@bvkzDtUnB5)nyqZGp_`igE-ScBhWMMEQ2Nu@HWd_LRN+1B0J+LX_loD>9bl}dsVMo&*qcX#jj-Epb? zC+j5amcuZt)oLDX?<6Q{7>YeQQYXGx*^PcAzh6wk&aRG*&UR=tF83{8`ga+Ik;`R= zhquqo&-g(Aq+q>vVu;cM)10EMlKb}U+`oSpO%VXzo6B#NX8J=y3@CJ1*a0BYvqWw- zm0#u0)7IMbnU|mb%qvfGMoG8sEi5iA{ND7r3s*d!*7szJBD!IWNoQB*^Upoq-qK_m zW*FkR#l^SY`Q`Z7_|EOayLatuYbm_+(hKjse`0BQ#ibxF2pUd63XG$ACXndV%#dJ% zMsN17fvXRrMe~0a-{DlUAtE4cfJ`XsFP#;Utc=xg z6hu^+JVYZEE0alcFhy~Fy;7_8_jMT%wzd?Wd+y1>;h_LoC(fLsRTfHUDNGnpUjte4 zjcstY#^@5vW>YV}{LCw_Jcsz#utX^)pjvZJpE-Z_>;<3JVnQyyhypSg=@f3(0U63XKK`P^D5m zbN2kvV2Q(B>%F7XBfqFT8;KRZKlq6Vu%L6!!JS4yLC zCnWCqhzH<(2xN5bwu(WjU<1+w)fx&?tJ9i{gDM%qz z1WK3{1+C$rR;|`66?TSEy-cw%ltj0LuyA?4Ds7~95rVeu*iJHPv!-?&VhxfxidB3Y(g+7cX8#6cdeRLdF_e&PQ4H$nRFlEj*hfMQs{xNQ}V4zUvcS z4Lt`e$c};?(aIt=IbmhS&~x2-trp*cTm=m0@`c`k0p?W`4TAv$fQa9=gwKSS%*@PG zYc*h4hLbj(tdq{A()nyYTPUQP3b~f%d`nBAkWD2l+W(;d&TJ;brb51>y&Zwgh8yrq zdcE$}T{jG|iHvxh8bdE?d1bQ2fkl~b!el0q;CP|G!_bN^NG0v=&Q`uQp_FvjzCip3 z?d_)Ihcrq+5)x@Bpos{O)k5L&u|`B5BCiEiEW{?2B@M))vK^zZuY1?donsS|^9##R z$4<)^CZxZ&=j9ikPtrUtT(7$`^GmnJ?u7O5^0hk$_uqZ(mFITv-SzCV&n_+(N5)1` zG@R<*xPT)&v#@S5xM60w786!1De-!K2M zmq;ct=6N1YJPD-x9Qj$S3J&G*EBzeKGs6&FnVj9+mPH0&RV&Q;5P*1ALaNo;`1r)X z_!s~B#TQ=s>Q}$|>Z_m57NCj1Ku=d+SI1{we&IKM?TtVEzy8x(Kl|l!aSa(ETN-g! z6rozZcJAVZ->Uo?ZbTKzMFU`GXGd>ecOvO{es%MEs+G#h;$rBzwq;7QgEa)Lb}^kX zUnSO&Q7u#bTU-MVsRdis7Ul^h(}KD=`ev~3Y4FnTBip%T&93=iGR(9GYtNl8YXB0%|G1QS!m zKHN;R07~*@k?04N$<)`e!qIV*PK3pZ5^zuw4MnJJ6)xzCW2~p#P2PC2$^$d*}1qMSbMn5XU=;!R?5jcX<$#37>`z(~6XAcvgi zkBJ^X#x_gC4`i!E&!$}w|4$k_Gfo);0YfHvj~o5Ly&j^4RjzfL5-z#nRgZ^Jc&5unG(Wp=^7!eW{rvrxo`1ZhDGvz^K|0%-KlSVr&4ngf0p^nK%&CV+@jwgP z$8J`lLJ?&9gZF;{Mqm$Wb-%b)sk`;CA?YUbQiQ>FPoF+Jd2i<3cTfE8Kltt4d$tvF zDU0?aqwU+aefG82mRHt)`m=W$7M)Z}BX!pupO{=(FL^;|8G6(UCABq5rIIZzg{J1h z;!=%-G2&Pbp`n~Ju-Ev3cjNkv3ujJ`-@56$ zRcL@Kx%`16$A10mze|9@*BTQ+qpi_nqqk1JcYOTHb+1+>giMc3T(GSE;i2B%0W)n0 zc@IiuACBD~`PI*UHZ^*iwq_@jyAB?F;k8%0d$;lBAE_@9u(ndXbM@NWZ~mxOE*YkA zZ~IW_hr9Ofx1EG;k78kq)+?YUQ~_ZW-U&fPcm)-%K&zqhC5Iy7Y5pC|ZI?uVnu&=U zeSHcDSBpeQ^lI_^yu_FR*0L{79@f$oyHUCFNrRfRp85P6UwWjY7n~V{i>?3`-!*DH z^RG-ecA=1?_FdWorAs2x+~R1Zr)3a?m2wT4b~0r_J8dRX$z(E>N~P1uOgfp#WK!v* zZBtGW-mRwiDp?YiZeZK7DR%|$N|m5!@h>K4N=a0BK%;L4e!~Dn70`!_gqo3BtyXvI zo9*qEpV5A1{TV@6DwVlxPwYKVAQiYF_JW{VtpkE9)%w)z-16EwCG9ax%!wK(y?~Dc zylZG%Z$}5<@@!b@iVzvu#PhE!tLxWq-+eGUzp=4itJZKBI*G)UYq!=mDiq*nXsL7} zyq=z(?xAf1sZ@dvAWP=-^>)4S`Og}}>~8BG-af!r(a`q(UAuR5oavllLeMB`CDhh- zG!l^u2?@+)bK3^`vuTHedV>I$D|Lz(k&ZrzMo%X+MNF-P^@WStL&Tm5WV|VxF{C;& zkDWJ3lJhFM?Krfm&v*b`*Ppz1|J&dE_F!*&djB3LnJ@rJSjMqKdo3!yg*gb6@X|KX zxMRf`Ah>-h<=VAtx5n>JS1MJ)x}ZJkG2sgJ@h9tkz{KTcNFzcg;gLc@HYk}yd0~0E z=GKlLJMgLJo;b9BuVui5lRWas;p;a?J~;j{Uy8a%0=YId#>Lgu>Djqm!`qt+IrXFj zM0abNW;UB`Yi(UznrqNY)Pcz zS1zqDFG3O!K-QL*9n-mUS*sonY3Ed_r}JqU%WVe^JZmzg*oul7PhptwzYK|md)2WVwCWujndtlw@x4bVE+Cj z2|~y?^l!Gc4Q}7zP_|Un`Vd>D@%%i{e~uMIW%>{+rN!u-Q6kE0u%5c8n5Nmgsi>jP zfxI6OKVj4xboyxh%K9%iTY7bbL_LDB#8#|U!ELF+%M$ghjB$vwj75Bi@)Lw2>zzVA z2XxX#po&d;p&PU7gtfY7Sc#NrLOX5Q$#goEN+*&@ii)EhLr#JcNGU@s8qGwxf(|z; zjru-_Twbk0jtQ>2b$SK^&;T1(xjlJ@I;V8(#piWlVPSD`F$e;S(~JJ?5b#LzeZm8OQ?4ws{<5tCd?)O`%SV zD0)`(X=P+kmSu^=FmvBZrSgdnjvqa=$8pTvyLVZZWk4|0+eHXaa3|r+#bZRl>%nGn zZEfStH{U*Y`C4&(gD!Ho*Cb$4~$ zzI`LyR1>6h(|%CeDCJw)Elh!%j5Q$Cf%6hGA_$!Li~n+NdTQq0-SwqelYuqqX7$6> z#koso&-4xsSqYoMIw@JLIXiRz{^;1s{2aZA9L;*AGIIUKlTSazke9svi*8-Jdgtnu z%4*Tz`M;2?EiK)?diC+Ap3gKj8-~e5dFX>K%+B4ucJ=O!YX}G2-c&a>#_rs%RjR2> zcFROo!*10Y$57l~Z`|-igJsG^N}s}1zP47Fg&gZ?S(eh)X}p{~X*u<#Vw2{-WP&@Y zSO*myD`ybWq7AGXk2SLnRN*`RFygKZLtn{iM`8W_;=p2HSj-#sG|p970jK}6Z97j3 zwi1@2U78cH@GL3?T?CXJ((|!pr7San?1b$kbJ@75ye;z*E--hbV713o_uZ2#hlls5t?GD^KB0HR~UFpPT>6C)#|tLy9SZ7rX) zh+-e4gX#MI!t%<^TO&b;5$)77Bu<%&M?n_B5Z*@w#0Dc5&s_SeZ+*`&9onWK;1blB z96k2P%g;V7y+1)P-0;OAWiMc{BLK5=3va*kZmAjoz78?oD7kcFA{(k+MPWl|-+jVy zjy!Vk$Rh{Y$LU{No10r(nt7d?!@9%3H*L!>!QOql9)0xKyYHQXq6N*Hn{kJ7G0wR3r_D*MLT z1rR?ENr;yh7u@o?LHx)nK~k@5Ox(R41|B;k5kht{m7c!;V0nH4gg!!{D)9KOJ3TfQ zcrJ74sr9!EV`^f2erAgGtT41aL_ytMUR)|J7n7NSX)vq-y(wdMYHE67EOaYWGlVJ0 z_^!LWIA1E2@+~bktpw0_iar@F>93o3&AJkG<_V7mb6F08cjySOYul6b|KZjpbQFMaw_Mg%?gcSg@e;q%#?Q5zDp_SJ+U`!S<(N znLHE8$m6m*cI{qUcYTVZq|8gM>k^9Ns@ALJz^~~+uWj3h4v$?sYRNZL6786#$AOv_pVA@u;P{^d4TiZH! z?C5>*Q%9bCa{oY28%N?zOirJ_aCN0vOeSqsmf*x8TvduG;;>5(4h}s1mP?gd zwc>g%Wl645QHg4;?D;<749P%N=N_8Y6EBLuF_8q5h#5ctnufWtvGLb`{nzDsCL?2{CifGfSA)=oE8Ael6zN5pdhZq#p)qLg~TcWc-WELydN21H>1+*&ORd`%sL7wE+e^TIOqj!eW71CjMb6Pti+9#tX}d#e(E*%#>Ay zR=bg&X2+ammNkM!1%P<#flw-F>@*TRFXCO?0awJ%nkp|;>^(A;X~<>8ln|nY&L)y| zyENp8qBqE3S=F1#rfHU^IS|-Ysa7oAf4TJx1KGC8;aD-FAnKYFd2P|QCIg2dRu)1GZ{EIp`ph}Q zwnU8(=w&3?t;IlbfRnuwid{=4l9p|U0qtUuO)vDTT3Xw9e>J1RN4y7ENLvA3ZKmH7 z5>6sP_Usz`U;fn}Qp6|kz~*$^fZVw|cKrB=`~;fzqJ)%` z)Na>sUrR3Y;c`;}_-7w^9Rlb`;)TB#!LIk6ctS#_6hM%q`XEoSDw zL2LkQK<0~JKLjD)bCyK_oLgA>$xnVZJG<~ZU;nK~4jpJJ6ximYZRJ>M!3!-qo^PY= zStg;L8R+P2|Cj&r4=Xh{)Y=4@yc_K$GLiAW{+mAqoN6+ec?OeZpW?w@jwp0J`7>@-~MB zDqpW*epIGjW$l%g(AJ0B=7O;NUa>ti6?>II0`b#A5lV}g8o);QC6t}#qIQEhBbinb zVIMXqq`{(_ld7Nuw8jgV!%u%l_b&y^AXc%6(xa^0$>_9%J`87zqML#kJWHelUkDIp zm;vdD=BDUR&&#MPZO|}V{Jhg!uGiMruUxtIgCD&4#ur~7*w#avEgL_g#KlD}V`_T# z(&ekSZr?E(s4i;BQ5TKD$pi7MJn`7kuFeh!NVQh| z==8_${PI^1W@h=y7itkE+9;RZy3f;d?X88!jvc;y^=iHDMYfxS)Z9Cc0bx36J^SPl z#OkL)%z=@^*6Qx;%>2odAHDsHcgDs>EsOOu$UGclL?WzzHe`rP)Lh6m7jiIq5U8Lu zt{;>ur88&FPEutzN%{i?c7^_68mUwY>7W?3g*X>J7J)n?2cmZp;PAnNx#i_wGOfYi zJbLtzLOv@@gGv_yWl8|2mEgb3rqj*F9pSDYj*gGN^X>;1FI@#dmE5=JaD)I*1qRm*acDCXF{ec! zAnJ3m9XprLN=3@(43O&=^8)}Yfl_%wFmFogvR>v0wjUu zICd)A)wk`@r=CtQ!7>h(#5m~b>pA-L<9^^zjE+@HRVR_iH#hYTZF}^&XOfvL=H$7M zy4(96IZ`TD9V=N`EkeU`(y5+-{zJ!(Ha9gx%aAQy^!5jL?C{-BH#Ie_tt^BgNoTSh zT|L7)cjfYV-oPJk^^A;#nyk%TQ#ve7qMN@-{`*kqbj z`<&v8BMR9O&*Tt!uIr7_(ccv4lVgXFu&F@mI0JQ7sjdRmgC@^_n1PSbzEIDn3&wL! zoI~S1M)kb;z)_7#)c#vGC0xa!IG~Pr| z+lP(c$&pKhQ%-Nn^!zPSV9{_8f)|#SzWJ?hH8mGraz54H--D#P$;UNj{TYklnKS1v zT)bQ?u3EOGx;FugeYIAH1)QWFnJ|~jWpjnqwThrSmv>^@7GKIVS%D0bN67M4dAvv? zVI9N{jqn?Vp~(#dQ(DHMD-CRCPb2?V85X?$Yx`1>b+ z^yZK6j*f>EvTRD!k7T~3n?GPR02rfSR1_BiE(9IZYHw-j?&_Yre_!otu_M?&DW`Oy ziM2lIc|y!UMbx~PvXFDkT}6PAMSG7e(+aSM8SN|QAR8MS{}2D^&*l~uUi$P4d-m=we&bD-P4-D?!vq!4s3U#M+ zE_3Xer&_wZ&Ye25Jhz<6X1WLZhxY6o-o2C6_z4Ryup9V8yLQ-#WLsP3;{6$D*}0~s zfx&IVJGWbwfg$Jm6;&pNIf} zJplzL01|`&*6Qlfz7&oDuxwidI`LDB4}rmW_rXIVq=pwK{g_*r{l=gFw^TaY(b=6$ zB9%7cXBW%HK$a%Pb=Uv-FMfIb#tq9c6>Y|5s99ts*$A@6D3s0R@`VDKp5e{&Vh=O& zPYeY|9VKhw9Z3j^!Z*dnLX#F7I9&m^gN&;_>Xe|7Mmm+w<#W{UHVjIvh;dhY+t>fz z-zyYo_CEx;=6NeCD`DVKPzo)j(92;Q047vht9kV_bty8LES2UkOw3WGY==-Na5k0A zBvp<~;FXx$7zE*+J0sut#$SB<+usQ>wi8LyO2{=&q(eauE#D73&*!J9O5cixf6UUt zw5CWwGnsUzwWUQc9x^r<$l^;bO<`DedwaWMSq4C=(hpgS1^}pvL51 zv7itI;M?E%UapWoeCVKUBDd}_i8pz)5-x8}+ZarT9>?iM9I3^HrU3-q z13lY!Zco{twQLg_mh0n6)pLE9AvIYq7^{|G2vgb2fuoNceey{hQd8j8>z?P)!U5Y< zSPB6m;P(yo3=VFyj6^`O-2q(|o{NRy7AF(ptlXy4($&<7#$Tq=kcgr1NzU~eK) z!GuqrSa`w=B3-3XPv9H84lG}^fF!iJh$Ijd?~Dn;u-O&O;Bo}H8_vNVT!D<^xkFh5 z=2z4$h4SCTow;sZrf!r@4NzG;ek+Dy$kGj;V5FEQw)A@CZPUsM*<$TPFWQ-BSrEZZ zCX;@b@B7tCVDk$vNLTQ8ATc#;Syt>EF8|^7% z&7Cs}s@~1mNdA9$5q{^UH9I%=-S2&WVR7N9Cm%g@XfN$WkO>yP1w)MI7ni^L-5=h$ zGwOOi74O(eZj8T>$_XJOM5t7$`Bl%btmf7nGI+!-0#9VXO0`n=ysGQYEG>_W-!0cR zXuCc%pjy*{xs$Bcs(!srA&9=`yB-sRWeFm>YEiZB&Cf4zW>7}c2G>jLCr_VBWX!?A z-c%yt`{DX}Ndv7B8Pu{>Y9gw~1fd)FHLv0%%w)>p2pJ0Uu;BEA`zKGHG+A^Lifp}K zue-&y;)9u)>o;#+ym-~JEytjBJVCF|)fGjGmg0t1S6A+i-p!?)TD3-4HJA%|Qi{N2 zGLuTCQb~#pHB6UP1^CCgmQD}^_wG%6=euvd|NhC9<>I}GscN+b;-~M@((;=>{^`w| zH?zsiuHE}?-5N1WgatPPlBF$*_&9#zqf{#M+N&>3KbWppD~!fp5n&YVAf z>cf%I@xb>s6Yn&9918tZY;n**Pv4JcF>66Qh29+TfoNW!{T4XKanF-dT! zb~=@K7BE$IbOTbSCX|jsLnTr?pv-s4@!`J&s@BcDWF@hVrIlCCI*Sz=NXE1SKw)Mz z%%X}+IeLu9x=O6ns)7BZ=^;|%4GI{(z+4J3I;r`k+0lp%LNzjQ0#5a`I`^D5E;7B( z`8&mGXjnEBE8-*)hG7Mu9$z=qA*s9G+Ik5y%9<^f7OUHuCQ2p~=}bCF**#$(l)^A) za;K`{0S#h(X}9@5L#&Pmn%WN;Hs1AIKk#KJOEh{!4vB$GdQYy7t)g8J9p0PnRaT7T zKOvXX^8MiU?c1xx)f?AuJpROyJ$rX=8yIM6D$q8ZVsT+{>Hhr(H*VfOaq{%y(uz#w zZLt;OSaLW%I{xi%ekY$wxm9=S!Sv+RBo~1ebS`XTU$}75uh*IjxrL?0OP8;dYZWL0 zHON&tJC>v@CM9?YffwNE**Qik&#J7@*x1;3_q|_DOpdp= zw`NkQjkWcqrDEXIS~82rfux!XXJ)4V-JksXY&yy8Y`DI$vA(eiV940xX<&xK@Z_me zqocPeibIBDm~|SLE9Lc#jg{hRxm>lK1jFiar;t@v35m2vAh~;Y?EByQ;i>me_?}PX zCZe7ibwNzqreIWx6GP^M>4lNeyR7wHP-Fm1){3hqPJHAzmRqY+7F6E@@zka72J%JOgU=`k(*BUz(Qf z`OLV{$_hOyi4Z0fQ-}a`ENg0Z&S$0gsGn9YPh_CAwY3WuE)`eTTU%Od)!Nk5^n>Z? zy6Xx);)W$0&(ZRtQW#L~xgcz$`jM=$>>w9O=EgQ8{uSK139N;tnZ=Qx1Y)KajMPVX z&kf?BWKQ(Un4Li=ymM+^)hL)KE87-H-*et*i%iwv!2PcWM>3_8W~FoDs4 z;6Q4T(r^!h5Mth83Iz`=4iL|$0$~(|krah)A+soLKa|=hK+A-a2p}Vp?^xM6f)%42 zk+A}AF=Gc<)LsO2(=6=1X4#|6J0D`1e%YdIt8PeSS4fomlIHCRVh}!fl8&)#`?y+d-ul1$MzrCw{v*7t*tF2cz$7FW_E63VsdP3 zqPVuE(IIHl0b~E-7e)ZgOg)&JnGHS9cY}};9}$XVmm;~Gm2_m}?&QQIAe7sg85Bc= z-ZCkGgK&Os?!W)#w**fF;&>q-GkUD2AW&N6)L$mdf2zCg$jHdZ-BH`JSe=>4>F^^P zNx@P!i7U&?-}&qBA_=M^j8i9S0wBc0!RD?U^oalG$&>l#4w3qw^zqt zh{6DRbwuef^?fRj9kwo)my65Gs{)OZ!}82AlSx0+I`Mg>9;F_equ z6QnrM8~q=ezzn0N8~JJ|Kq`+@wZaNsPM-9jr8guG9K=K(U~~qFIU#%<(yzljKtO_I zRjBS@R%u3DWr*E`5H}48HUSrf#=IEB3>*@p#Ed1!i!xX-k?9f9EYcYN$Rc(`I2a8E z_bD`BvGC^_w>BRyQ@744ldc^UNH*3+{lGf%GRkAf3Der1bE2-IuL^_#FyX95hi6gGeHhZO9otvB2uu1Bx)!ouB zq%Cy>;kWuI$b!RN`D@wu?;P2DK0#yxEMfe7e6_%8M zjD2M5tdt^p2WrgqhA}A3O+-Ay=L|8k8iv8>==kW^gu&(55Oh6Xa23ht)(1h9A+%dj zl@vP80b$QVd#4aKB0z2w-2p-kR$baS05}*NDgp@F)@J~VZXq)gLe`r_=uns#31E+a zlWPDT;Jd!>G6E%Js!lQeutLfJMJE~2I*M8P2HG+vgg}~0cE3o7m_=u+#;l_6NZ!K2 znx|oO3w$uKp!OnIwZVtNTUF1(Yy%Ei1)PV)4HY1zV8kk<5_BWesS>de(KH}Vl&kQR zdg#cgr7d1r2pQcClhfk03?dn)xaM1cXiB7kC|72Sq-o%p9H|Q%y-zK0IbIDhCB089 z*t0_rf5q+=N&Olz2(idQ2b3$@rF#B31c(nQl=8>|SHf)<4Fm%Qj)snwrTetz`XsFBLSK9rl+zW_|H49; zF$a?yG7u1?Wz2tN2LOFxj5RaKIqm_c|3=)C*y<%n1Z7w5)@h)Jz2dutYcw*Dl9-i7 zhUJDYes~Rrhj~#+L;j0IE4X3GbvIN6a6k+|1a524u0g`_1~OL}c{4zAc*~=M$P83; zPZ10mfEek=rrQ$1^;Q9pc0KI}?HGVSP#tmS5y?D?IBW=?ZVg-|Tq+GA!$F&yzf`&` z+BC(ViC25PRb{Ww5@OTD>woIXyY~z(%O2r)ywazmrWN&I8Cx z3+!wT{Ghn9dgI!)jkU!v^xHZ*ckSMrD>Sj{I+Qd86!XnLNITw(r8O!;1Ufp}L@1?i z8=?U8!un%E^nudp;ne#Dx2vcDg#7oMb5ptLCaWW>3hu9}Eyo}_VU(JV zzd&?G(YN#YP|aeRmDl4uAipTe^XW6LE*L+Jpg3US9Sc!0nH}p+!pUZ{o01#!eWg<6 z{^b3+`T73du7u-gRx7ISK`QP;sUOnWbW?M|WsE=}Lwb4`K-!W+VJATliq3m_{6e9~ zgE(4?0z7!8Q(6F_uM$ln)ZHAFSZLTo!YM~I5&22SfZ~9S8+ItuQxVbA-?`K*EG3k5 z8rq-4^4Q{P4K!ZzQYu;#iS^ipqKXHUU z`wf)8l$1gGVCqs*(t0=M=tQkuo&>5zM)#jY>`nwrBS+J25#7gzH+IrN`DwYj#c_d! zmJt+P1cX&dWM+WIRfK_Uk7-da_F8wm6@Vr0P4q9h>Ku3Wlt?Z(3V zLg0F)Wp(xS>_2?y(I+0mLg$^u5bVfYT`pd`dhOkJ-Ypkb0U@b$x_4;c`PW|Q9~elb zGCVM&{dys|d;9LG4?Y;VdL{6y1PAF%W@PBi6lG_h9+t2vidKz`6(0Ih zCRF=&2vx>Izc+2ILrL5y*NtFYl&hYa99GN(qLEr!FlLVlj=X&7d&u=5)nk-+&fomv zLeoU58S%bKDMW7|Uc3fFSI~alsl0^y8YPvlxEH=XMA3 z(?WDe0JYv^MjgryBjH2v94UmG7qS*#5Tehw{#U7&E6M;o`A7u=9M^YSab1KSvxx46^U=?7QNpTBxT>(K5LJ|fPh7JNM zJ&(8t&qN!M%+w3-l+6K)b2lL@wVpdx!GutD7;SoPWfG$_ePo6rTfMmg7Mm6|;QAR1 z8qWbJq54=k2k}H3iQX5b2OBXdn;x|xbuRB7##t>?or-@-rcj`44HjKO>YR}33&P$D zGCi4e#+qogx=#`tMeV`F&}%tsy@y0z2LaHqXd^c@io<1of)iT+?vfybvA!@e2@Flc zO4tl2p3UV$jBAx@ThBcBo3TN@P?J_A#qX6Qp6N>_MYrp|u%rxvCKN_GGm~{H!5UHVY{7 zzde|`KYM?&R4f_>rF($@Zmh0Nj*gGt9o>KEpv`DDcngK+x?^|m-no7i`YvL=9l^M= zv3~37m8YKjlw^1%2!l&!&tLlZ@UUP(-l5wz%}+yT2UVvAeCkgZ4%;$Vqu) z{nqvC@Bi}M@=6hffx%=ZyjtbT#ft+&+gjS%5{ZNa%ZT00+l9oL6lVa94OqMit2ai( zMvf3unSQPGhvc_HB`F@6R;@<28JDTf9PYpK`loCz!<;Cz;V!l5h(V0>2iW2X2~f6P zKi^@bc0;5pO8^mVNsaOe%weaNjj`EmY?R)A@5JX{f4#4_HU7KxqIN9tdj?TXAVwd&Im2fORl(L;=yy z5ZS83^OAC`m<>QuS(E5m^D>Xl?Vv0>MClA!e`d+X_y9+~vnsBO>qA8cq&#>Tii=}d zg`q@MtD$Zv3DFaDvS!FlJdE-?NVB0h4l#quj7e4iEhQjrVpQP;+#N;{FI4pLh>bG} zAq7DOkpmzfK5_@N790Jp2og41x$97%fYkwj!@&0fCz~@UqST^GI|Qk8uD83Vt+n~$ z*;Ca@osa+;kg?EHi=0d(diwi!?b|asPIJ%eE6aphSiltxB1Hif9kIk9$z}8X14B)% zZ41luBR8)4^%@X|IBnYDw}+59ynWZsU3+F`rjNh>zCf_><%&c(x1+1KXJFsOvmZjZ z!7FY7qi!7Dy}MGbj@-HlMXW#-!=PdH_YX|nyHjQS7D4C(OiVkS%I2)3%~(=-yDvse zUMXO}e-MPi_S5WWpu+CBQwXI>ZY1^xMU73M!;l7@hFtEPt6yqyfUcabuJ5ustw}9E zm9OBTae2LT<-$eU44mOky|6JZ5@L{ zLpX|OiIy+~TXL!C2cFykP#4JD{7$psSFDn$&I6*WEh;yEOA@!pWfBy@p(Jb&`5!q! zTO3)6C{({0R<(c{BMQ`qK>Ajj&ju}zz>bCxhsc1bbeh%D1L3bi6`oW7V`XLK{P|1$ zeSLfP?$mrmf76PawTsky0Ity9g6&~+>WyCSheAf4(E(F0HDZ%4gObo;}Q zww!F0*^eyzmXEa6!+pY^W6Ft9K~NffD4QwyZ=ebWqD`lbArTBiQ2OaI>#p97b>Cev zFg1n~DqtWI5Df^3=S;*E2+uXE+t}>pDAzY~ErC3Cl>00aX5#oURdj@-NU<^H6wf`0 z_lOiyL@mX1GKoss^P7fYK;OlX^ii{`6!pe{H#b0-@9Fu2fB5@Hj~os|vRcz{~e({T6{_^d2sMtCP z8Qf6JB;_rKsJW%}tH1G;=bn0Eps&}m>~f{{=8xWb>&HL2ed{Ix45J|k28ihxzyAmS z;LyPXZ@u;NQzwtJ9x6FU)Ip-{$^(NP&%bz-_?6qY&eiH00EWq=^W`tUvG2emXU|=_ zb>oJ~%Nh`5@`dd~J70O_*>C-2aeTByF{~s65Pb1VU-;}7UhnVipuY(NFW_BPc&%Fh zi*J7W{KsegjWQo8PL?Ok_7>>?@Cm;aV~s>^x}g>t1Oa6bktG2|5g~kJdWK=BIXVDR znaR<+BfjtRC(P?w%H~i)D%l2L{9kLVkcP2w~xw zW`&hZq*#M1n?3N#p}N7 zhasucgb*gIzcpkOa6Gk3bc4(QcYzp!70$#zR8cNY*-| zC>0aY8Lw|Gpy!QZL(2j(c~`W(h$hhtDz9n+h*Jj~qMl)vtd3`RAYR>gZfw zTkq@Z&KI&y!rEBhIQQ{s*Y)^%=5{EX%|3GM$XCAhrK86Vba!+*78OV7>hApVmp<20 z$iMT>ug;wLxLPYC!EHkq$-uVW!NJ~+_SR%FU8__%fdzrlE=nY=!NJa7`}NoV>RTIi z-`zIUdvO1b=bnA~%=s%1rXJ8SrC@(*=bGC)jy(G4(@#DA^Pl`kZ90I^(DrS|4j=4k zD-gzUh-D(I;s+DsW6QJicdp)GMjv4bS&G@YE>zzsrKreMfn{5*UqyZ*G zi@*)(Aw379<#UOGk;)H)2E(oHOysF#%AZ@dpZ!?QWhBit2rD9W^g@;zgAROJYv zWGdhbo&CW{IC+Y}vIykOz#7tt@G>2nwEA7CDiSm)@k~i3y}UKmn1z(?ShV0j73W@S+j2dA*D9 ziuY#lvkS`R7@+Fvre*HkyJy?BfkZOt1-?9lWDIATa+>LOr^?p~q07n_T-bnhIMP}+ zrBFar2*rRRFk}>Xih)Wyl)3kf)t(}8ORFu*_(33=ZVr5BUQ#Mv|FE?l^{YxmBB2M-)Oa(JV-HZgK%Zhk(* zK5tpT81LG>{q`0dAC-*e(lbK2M;jud;9wL?%w(8XI{?d^9aF{r%nX4CxfvP z0bsJl=1`sLe63Q~Moi2M#w43bJaOb;=+!U)+jk5MZSP-RDPF#EZG3Eutr&wvJuu(g zw0Hlm9m7K{tu40W1OeOB$XH%3-nwVOovlX)9}Y9-NZg%)W6xen<(8nW)lDA@J%ac$49YBPqDOtlpX`}Xhe z>FMDOWtwSJT5_?)yxDj*?HwIXS zp!6E+YinoDoayW9>F?`_*m9yTrS{J-s0WwN=O9FsA=I$a2`6cR|kr zTK*nr9*0&smhTZ=@9||O3ncP%AWD=iD*x~lf!s*)@fC}*Ok#=WGz|FR$&)lc%wkXe z7UrRcEQ>%3za;Qi=Vspe!S@LPk3IhQ>#w|W^TzG(e(U?kKR5}Y4^YVZyiq!xIdtg2 z=U;nqpuhWrlOO$u|M+Jgop^8i@Q(lS_x`7^eCdr>Uwrm^-~P_Z@^YEUEL z(c9bB+|=CJ*_F%ZSBo1o@eANbAD+2CIosde{m=jD?|pRc$`9ZC>7`3o6HWq$;l{>B zty)I}a*d#n>n173XA92~NXJKCJYoU_W10j4L>{92Cz3Cf{o?^-dsk0;SI^4gI+b8D zO(&CTX>S|Y)<3*^XC{;3fiVWe3xa{+A=j%rndHRX(b7g0AuHEZ=<4qo+POWOZ(^k$ z#4sG_sTZElH8)>4{n5m&8zI5AZMC(v_YV%{+uIL3a=5vr1#*@*U|2?G-+_Ipgmd-6 zg~`#;TD6i$CfhnYcI?@^_wb?i&JGeekUXn_v>G2#Nt9101?z*Le?+<6=H}BwHfLeh zwt#f-vXqF?PZjz*BR(~vU6MJ8Tplu%>@LdmtCoZYgCGh9ykCh#Fz<)HqELv)!-l&O zoUfE}OC}SEwzjtBw)RSG!*hLIY)fyWy?*0HzL092pH)nXTs$1A8iSwl!qaStV8S}Al(h>VYh~X zBF-GfZ8Wb1$ICIMX%!0jox6scn(~%Kx3MGI8kJo}>afuU0cehuR{Rk5TkriLdTvGe z-s)}}gv>s9>b7`8WN#barW^u=nu-p9ct%OToaDRHyJn8oD5gDL`L<|DD7Z8YWQ5-LX*y6;*zz7B;^l=D$-(Oi;*;rloYjuP}Xi)K8$O@$S zLhi`1!%a;&WEl6SXFfi2CiLs$BR3Xjr%VL$xvcFttm`y1XhoPdy0o>mb+)&c%j>^< z|HRd+SC-~xA#qPH&41~Q&+pl>y|caT;Gx}ZZEcnHRWG2Fg%AU`S`YjnkxVwVHh~F9 zH6M9OM3_*>>5%BEv*{BpEv=rpa`ocvJH<*F%aflITsV&1R47mkduv-RS6ExEP+LX7 z$gS&l@7&nFedu?7=c_BrE6WQ@3$ycddL?A^EL?yXz3Y9*V`xA$}*mRMBVGFqaTNKSFkfbG%kb8O>01goub zVp|*ln!b$c?I!U+0kZZhEJd(^vM^B2p}2q`%#58;@l=#*$@DN`Vs`<-rZ3#;{SW*2|DTuS5(ZJ&5zWiP zdJZ%sXzV^j1y90&wABz#p-LRoL#_^llP}J5C^B?NG@t;Plw{w{RCu8&Tt!BFQmIsf zAXMcEE)*_Q7HC?Tx|9jiNG6f+K;tzPGoN`VcOahOJ*K?riW ztU)bT|L))Z$>opF(X&nt1TrXD7D7~B*mFIlX+h~NG4OnUqf{b1Qy=-1TxDA5 z2R$T8+-ix6agEA3(V~r@iXy`kQh`q!$d5=C1j4*1gQcmAuD8ToEaX5dlSwiJ0A$Qg0lNnpkn<=N6Ui6_ zVKS56zGtWBc@QBxk>G4#d~En3B-~tDTWus*ZD@DU4XJ|gsA{Wj$@zeo+yp^WqG8A4#& zc29TDz46gfsmPs4At|O6Bq1P6i_0IL`tX%kUPvVqOckrq+_4=_#odW*rjm&;lQsac z9V?km(6U}OwO*8q8v-J@e z|1H6d_a@PsSOo`AT}^4KMZ+gC4)ItZs%it$cD3cv+ z8K%*&9RcZ%9hq@mC>=g)mp8E;NhXc&wci@m(HL6)Tf?4{K#RSlBeEVTU!f5 zOwq>dLog(ZOY_sS)9r1oPd$F@&h?w2>lp@m;)!GZ{r!n#qE@fXFD!1XuTi}U$kkTB z+Qz!;xw%}vuYX%2(@LlXG;_IBHlOqSaDHks3@Fhbg5bod)0S!V5A^kQbu>4({$y}q z{Kl=)T8X<&fXJFFQ_iW^>s*vd5H7G?xKS=Kh=Bn_?ieXJ7>F`05^X`<}m4xhyW*HJE;U_f|IP&!)mrX65%NzC^)70-I)j_Y>SGwGKP1=`Tcn? z4pB%#MLP(Eq6la9<8n7xHUctT1(}J&066Kik#Hm^L%9M`zEKC+D{=LBD^=qtH5?3z z3rJGwz^DeGFIFk<#Wf5C_Lg^PYeqIw^@0iy6dQA(Fhc49bhuH2jfhnR;@#d+YX2c+ zZVtAKM-}1{d{03LZOhs=IC$~G1p*{ps^p}PJahm{8>Q>lZ(O=~DVM(OO;yFS}BvX*DJM3)vZ#sJJ$_-pMt>2h9R^!)%Btw zB8undp<6(;7H^gKqXTRjD3wY906af{K|Dz>wmv_^fLvqIXbWVm>adXUmqH=PZ^RmY z9tsiCc!lj@2Y^C&Z0ag&cwa0%rmVOs4(KRTtf+&c4~Vmr_g}+JU{j)Nnn_LsVMC(C z5aB!u)FNO>kt11o<#?*p0!mmGXN_mj+DP178y=S9qjmb_2nav99aCq>peZ)1~guI<aubv#r$gqSYk~ zlAanDsQ{5D)ykO4>S=jI%GlxuUfuOTNIBtci_&%zA-#enD<1W}`S!#?xU#eaO=u?) zmSZy>4OvlRJ^#Gdjba8opD6bjF+URm4#fhdhr(1KFlt)URK*9>;ed|U+!+=7? zRituKQsD>5ua4j(hG_~yzb&i=k*61u9xoBikz%w$!$iY7wl}x5&duEq0uOEaIDds0 zudc3r``drj-rm;S+(Ognigr@j7p9nDnI_$PB$KclFYx`)BTU(@+4tMqn!3AM>eYI= zT&q;8)oQI$ua+v+VyRLp+CsB)vzNl{k7U3Q<_N@&gBbd;@w4m=OsaBar6^=)7X~}UG7zm-=@f=+S8ZlQl3fu5ZdzsvE6N?8An-$mU1xN~ti&(# z4pPB~5;JaXviCyqgY*EcpUUAy+z-}$cRx>Q&O@!1Fs3!XoJA(c+=+Od0ZVB2f2 zzw)`yea3)PEYkJ;g{75~r%wO3zx<}}x@^uxO{i9@`JO*8)cc!XdFj`_`VwFbKnTH7 zt@_RH|MAgheNG>F(2e+RP zZ8o^T`in8;5YP8ki>tFU)745fo5{4dcQm)Q+D=jklCZWBWE$LnhhDH=-1zXsiA*jv zI6Tzd*B=mMa(P%owJ<=>^)^=5*NZEJ;B+#T$z~I&q#&eX>`Q!~Nm&pgY(H=F)a2x} zVGtG;1648+h1EztYRkPOx2nqdD2^chCzB_|^cp66Y?a^wB?P8JF+`w#9@d2|#_1aH6vbc-b@-Ly>w zjeLoH$E@%`jYUBDp99bLJJMh;+-mI%V?CsCJ7{!9;={#{)!5`RQ%eml7AkT>P#dd`0mD3&uzD^>4luaRpJcn4;azwwFRD{7ws9tKKl6H)w0sz5m_seedIsKVDs3<3jiHY_>AVjAPlz z5X+kZ(@CWkOwTXB|IT}}vvXaY?TZTw_oipv03*j)SSh~w*4x0azxK5+_xASiL4qNr zKwnx~I(Om93r{^wfe(Q8ObP%tyR?tPVsT@5=ZGo=@flJxI~v;bZ+P%Qw$R_+-OW} zG#nwZoN^SgBVIIDVBRf!-sljL?r8+VR%9%+G-uex;bVtZiVLg7#d>L#YmaMYmnhEl zYOVgk`^OE00?$8muGd zg#ZX{;m*rcj@F*0DE-yjwWvFKQ_P8%NmMnwAZGpfM|7vZ(V=g^jSyw?bth!=0if3s zRYr=C=tzj}NdAY)Jj=8NRF^cQdaI6Dl|v$Q0L2D109;vJ|K9h101az;X2G;AHmypP zj)o?#>(0!~)oSj{+}x>;K3rWcj*X5#n4T4B4gJb&IK8@e|Ni}-zV)+v_os$;?8v0k zGY_V(UcP+i&YhK&RSICUY$)3|fnki?y;u6qkL&g7(()4T(4uV4^bDw7ym+xxUW4<& znRDmbw+(DmYXDL5hQ-CjpS|@?CX=1GH%W8jw7;50H^uqoz0 z2$sv$x8M2Ij(by+_oon&9f>0ILv0&TGDn|~{f|JqDt45mFeaa~IcEU1WWSygQ9_B_ zU7MYmy+3iUv{J-g9fPp6v7Sh$7U!SIH?KmjM?XAq>dy6>Zg~}lUUj`3 z1fZj<_lc*T&So+yu}m;7m&(fv3+szZ9`>jZsTVk@^w9A3L@L3WSz?=3X4GY}KfZ4s z7DY!pR;zP3(ItRYAi~;xVbHs+d)MCGQ;H`jQ_K8&Q*R85}#*TlVv z_kKlP3y8?BJv&pGluj57RBJY;ilR&2)B;%6R7B4NVzBEQrU4DJP{`-=IfPIcJGNtU zr1EK>xEExz#pdECdr~S*4i$}oC|+%uD2&nbOAD*XRPsguIiC$bY`U8K&=v)rPk4XB z8~$JR-t^g$ygnnUYte5rQ3Fa&on+ff5>3cLvU6rnAjn|3|O9YO=O>PV*KvQHx)2q4G|xT)lSn z>a|y2d9B~;0pBFHc}Xr#q9-(iyl`>l<(FR_8y#6*UcS0=r7Vh;@0f<=e$>Lsy!7(R z-+$@lm6estmoHPZ8t75tin8a5-u3H)S6+EFo0wR=aWfA@_O`TV&Ykj2ppDOZ?pf(tFJF#xV(0A9onr#Y+8lPVQsk8UE{K6 zj6c4zXgK0dC%9LX44B&lRTdv={aq+_W z;B0%{PX=CW`r_Cj7RHi`?^ig}jcYh4Z^G5;Dx_iK^JQ~3#-*bi1EZlrkD@8n0nvBk zLWC!SL@O2*GH6LjL=IkCWULk&1~45SkV%?L)MXD*$~flF)ls@>jLC-uGH7=@2ag;$ ze%DHCPxc=^khKg=t|qEXR$4GY(F4#S zr!Q0n1F-H9nbFaa@v(95xb=(LQz+Jhlv=oj3Q#1v8@+_BzSwlrnn-QD!WM6!>Au?z z<5tHx>~Lb|*ZwAd6#B+dAUzr$4E{7+q<(ew8KT|fZ1k5z*&-BPgyhfQ**hq@wk9i; zZUH79TDqqiQDJifSO`VoW0Hb(Rkk#tg&R&a9)K>E-+dq2R(lWCWDy8f6rXYW~{9cG$IDY|}lo?*Ph!*<7bAu4guoMVaFB+wp3JRdKe8(^gWDf@s&#_+) zG$QC2Ce61r^=xiXVy{bO%l^i-t5+1D2+Ry?)zwQYmzU3X!(gmuW7UKHVENoxTNatO z>byLGvM1t0!R8+!P#^eA0!btq2*_4RONiPrV(S#Kz*1rB9C_q2?^gqA_@(@THKB$v!q;iQawAyOocsQcuFqm{=-Lnul0p^;GBrFm3D!$(1_@W{q7 zTdJ2+u)R7?d+t&X6={S0P=fq&0n0KWbYMfXm<$oPP(5ri;Jl5>jFRUt}rL%A$0A-(5B6=YS$u$|%RaG-c^YghKp4=UHBsgLb<;IW^sGcd$7n)yShz zM$HhdbxqvKMmHckEF=*`fw0k#PJ;5;S>$F!mBBFp^j!H=QbOzkBic zefPfp!|!dZ4Mdx%iWRH^otwM4w)QXn;162e_9veC!~nfOLci!(N5!lY=2KQm=JlkA zG{q-j%vme<|HuAAvb2%Ex(ZeTQM5j?DTU z>H*Yl!S1cAp++v5JDSUCimChp`Fw1LF-qvt#xRPYqUhlV(XSAa8R`#dra*&6lgqPH_udvd{R*-W>vrwkbKvOVb8q}O16;wAYGgAr z3wcPm0AnA-V`rp0GCp27ovF;Za&mI|(2>JbxkHf)cq70Q>FMS@18XUoI0hzTu5v{& zW^K}0ozfzNy2V*b)E@r;0+ze4Lq7n;WDkwmRMID?b@CE!2+0naZCWw>`CHQA6?h?K z?}!{h&E&!20mS7wOpVv#xU^2quu%08l$=pB^RrKU@)OJF&hb)gy}(sf1tTUw<~HP1<1 zp*E!`r`m@OleSB*jYTtM6h@g8#>`|7;mU190}6JRWpo^|AB~MznNtuIV&o(?*yJ4A zK!*0Fiexq*NgP|#v~y_Knrf7!WRGhNF&ahvF1$u5sZJt}y*jC`KG)UxqPiNz9NqY{ zgRSYXY7ZnX_KdX7?LDyn;isRRoSeLR;i7Y8cdUEx_9MIZ-sYKTMUG2p?Xf$L+4A{U z_bgq#bj6p^^?H-jlP4Z|tTQs=2|+zKD56DkbF+8ff4?u$9t?D5_Uymy_S9bg9MH6(8zmaS^lC8MK4o!^YmL+(Hvz8H1jxKtuLY%~mgtH!((&R+KS=Gw zn@$m=7*UXFN*d){7slx$U=&BuuA@R~N<-p1IxYid1?y_<1!6=wWG;=4kKKFXf!AL8 zaes4T<b%F4>uzV?mv^$q3RiHA-s%*}L|se>XP%si^1nM3v(dsKkJ z){mw|ZA6e%}!oK)F1_bwIQ=1ma&= z>dCdz`nN5vDn@DI;!bWW4SX%X%4uf}u!qK?Jw;*_YFviDh$N~L8%UE$dWcmr${TVQZdziA*V#_uf|tV zOAL^|YqZf^px2P}GfKJX*_pc^xbL=o`@%Csqha(U8jG=a2z-WYpwNkjJ zm0xk%8E|Jw&N)R4(a5(c)Lx8fL>~XNNqU4;I6*}?9J~;DYX`-irNj2>2jU%=#BFS= zrKe_QKJ}T;uHLw|dgE%*D@*`19d(XP%?&@ul`AV>{mR$gdFP$q`Uijiu}2=-y=$q{ zZC7pi_yw?p0+S}cW&=s?Ha$0;PsN<}jS@TJx6Ob4|M4LbI%|JoQSDqReX3XBorcxg z&bc(9$EC7HlTD7mON3Im#ZF?%3RjgibZW5I)BxW`K}84oyOjs6Xv?s(jKg-mY%Oqx zhmJ)Ya#WxLgpi>hsx!tJmXvG80Z6DcAQm>1_&N{)soI2Kc#MOiO`QL6AY|h={1x16 z`7k7pXtw}^H%I`|tKt z)?P)FnF_d3S!l#&YyhcUcYN%&qZ6TksZ=3H2g2N7f&d7^(!oKCdWGK)tz;OLNsRrX zC=&Zg@Otvk0Mv7xuxtk=|BXRl{w8=0z?4KjLUbR5U0-c2F9syCr%{2bw0EVhe2Wl& z?EK)En26#A6%U@952s@Qt0j@h8k)~w3cLd57!1yyIr~rk@jrR=;SIp%q;$VsMb06}krs*vwg z7P~Q)BfrIYm{18E8+Zlf;S9|a+x5{k4&EW*__hN5%YXq7fSVdKe9!9(xc-yC75++f zRq`vs(_uG)m?}6z5Ep$3I$s9}v$VncMEk_KGHaXrA34$M`F2e2pMG1LLTRjuB7(xW z2cRk7U{GGVbmiOMdExZgvtRrAUq5*Ny$_u@ap=&YnVA{i$&2U2BB6$-5D5P(iowN8 zm)?5k)JreDvbou_)*;c9RB#SEbw~tZ$d*7-46Pfbe_ViapEPWqS}3{+jQB`|@mAMp zvU-I{5&yF#%)b@4M0zU$%rs0k?m+JOhks=}sD4rU2wH+bV-ccM4x>UTqA~ME#Xm*w z-U*dJX1Xwv5ONhU3C`MJlwa#~F4VPb?Zqb8B8u;w4pd6i$c5ov-D%fp-p@2(g&JoNXV3G+O9zk?@X7muqe{qYGO)3g29nyPOMT86tkiHb_G%7=SvAmHT_;i}FnEAa6_dfFAjn!*^e)ZDE z+I1fc2z_jbhR?{E!EI>O<;&NvT)B4YoiiujI{DTcZyrB>{NSO3ON)zR;*h=7~oVn*z(t8Eo?NI?XQpgC{hFl)uDvqR|iXt#EO``K|lw6vj*$!4GI3xk1Gf_$y zZ!h~E7)5w0q{Ah_?`^Xz*Mp5RbaEfQ2$DBi6(WI;RR*!S{#`K;tz(EB@dg`|a_YW_ z-VgKuF$7J21Grd(Wa3M#jyOhnSTE563Y<`YW2d%-MnZ!mFrX}&l?f-N1b^xw+c8`uV@9^@f%@VY12&1_&I9{Y`c2;k=l>(r1 zwmP6jmEVVj?cUJoqLO*pcoQk~6~!#;b;QxQu0)udQrhAQLkz$n8B5-7%`GmNPTMNu z+4xHW0P1%eaN!_iiQB;7=qeruO=V7j@IaMC=?E<)NdzM` zz{w2C0Fr_XW$Y*!Ds)a$;ZaEcH`3I|OdfDo=);J$VSsu9S&c8#u|;VM--}v<`2ckM z-VZm%w%ghIjj{QescyTq6-bBkTLawSD>i~tWQjAW2^pG9nh~-s9iSqt05BS_sh3q$ zo3u-4**LUX72Chu^pHkC0V!&lNC1YgPz_dI6NnX8aQFrjx8MbBwb{$CP*z1Nu%MRb zL&O(M$y|W@GGRcUJwOa+RA{~D>l&49ck;u>4*u3Z{Ov#dXMga$Z~x7u^Jg67|6~lBF;2`=0i5%g773-Fq;}&|{Nv@;nbE%qq`S*7776Ci85R?RMVoWS)%9sIs?y_wl3iGt&xK&+2P| z@S?_5LZxK7LjL0@2r1qpJc|Pc?~woEd)B~~f~x`dnsJzwBvlefJW8*$Ovv0gu%LJh zWix7)B+Mr$xT(owL(Lh=6hfb3B)agwS)jB_itJM0y`p1cs%x!HSQdD>!A{79&B&mQ zqr@2v7YaAE*!x9T>IA`qGC-bS?lB%;kl0YTXQZ`m(0b?EHrNSi&tXm6MDfYlORMim zP)NQnQs_7ud?@rZLhtF)V}QQXL*`RJjUJny`ob@NX>r%mH^2J-oP7O9&i1voLsV>> zd%y{)Nq7udYq@VwOhf7~&M;TJ;Ci$O?*>Yf;FDWN&a$f16j2ftwyJmB7lN`+2?8QV zsbY^;9fHb3*7=31>>^HNE^;YRocyMl+RDV&s^UX5TG9UBsfqEQ`}A{jv$Ne!i+U|9_F1WRDWd889IymXRs_3%$`T?U zDKZH|{}M!%kbkfQ>gv!A4}(zte|AvVPyz+B7g)UW+_x(XVm#FQ8wgPNkyST3mTbtIkV2pjbc&OWOfu zbi@*Is>;xv8z!f8rG|8Q>*9CG?X1HskXix)tsVowsxcIIiB_oOn8J614nqYg*+8YO z4XfX<@MWVL9to5u=>W{f=a6jeYB5e5WmDXHQLf26HM)o<4?~k0NVjeT#dz3?RZ*IR z%Km{1k5kf~&2+Bjb}ycI^6`Kwgfo4PN#KX@9u@^ z=}x;vLQ*`39&%;w1Wq=SRuO2@aVh|xX6b{01=K!at$-o{8!j|ncd^+Arl)xiBnu4* zP(V9s76k3*D6JZo7?r>$AT8l1npvt9twBP$$rMRNTbu?+mT}^{4YShx@-SK}99dzg z$^@A317+8cZXm(|#mJRHdl5qRco8Ogi@t?0O=#3~1`+HN1VAib(#s5Co2G}7gdcQf zcsJHYnvF^_sFe89JgPwdvi}O4Q*C`NCBBrr;Pu2{M)g}Rfp-5<>F2_cozr}FxOd@OO$3ww8uj7?0<&QHuv zzw_p6S1vAZuB{fuKtsSpZreoIB`iny3Ki}ahY2OF3MXlo%6Tc_blq}?qbR*+A51uw zcTTCT1k^Chntrviq%8c&ruD2Q!L7AmqKvp<5>}`U$kxIFQsp!|2$jITNJ3K-d?PO_ z+RiSbuhpaKsU(vVQ8~uX9gAVg&k*--zKhs15LNZjU)625I$74j)Oby?>|x3hufb2G zNci%Em{{Qli8+F=g{ny*qHBMLN_8&#qG>$o4qcg@eC|eATb~FR8bG4 zGnh|#^@XIJ&Ii;F33(40ECzy361BKiEOcul*3|?{!^AJWjRB6Wu0S!I?5}7 z*1VqY6P8NwsQf=@%R5(;6n8;G(-Eug)53^Z>H-V;Hxv{CSdmnvZ-_e8L{pPn` z`N2!eXV2caw$fi)b%UOACHC~8)s2a7G%A7Xuzq9h53iN^L$-ktqNdVixmx2Y~JcK~0tC2rKCOFpB=05Jz>2^mtp`B!_+iAC2{zH$$WjZu@#uOmM zl=HAMfeNHbvsN+rt8=O=>jN4-TF%wI0`2nr_52f+0co2jS3DC8h2@<4e2EWzYzb|JSYjwG z*E=C={K*}d8b5UG5jEb4d9kxQel&+W#437t46A2~CmkjI2iz%NaWUv1J2xl_AGM%Xz=%m@IX|*+@|Ycn zp%%?sP_q$A9RZ{TApkqsAzD%NN{8%Ai+RKv9o9~_H9I%i9m$uLrgra}d-Ju|-}>=u z%coDQ$78FuSmOwH?$?D~yY`*5P4w>sOpTil@x2~kx78&6PeVi>@Q zmmRPi2>*g+2~_@Q{d$7=!Qjk0@4WKTOWM;r2cXAOJ(m_RSSntE@E(`DRZ<4HI!vrW zsO!ko>ecJlE}c8|cBeZsJ~p}U;Gtv3?>=z&=;YLN;G@nUx1NJxP zo;3eJFqDuV1Pp1hX)N-R;24Rz zAl{4q;O6z~H&#~iv{^T$J%C0*6F&)nQW%M>1JQUK7f9H{zE}807=XEKva6RaU%hPC_mb!>{L!*sGFz+Z~ZbkDcK9YzA$}!6f8Rmgvw3KsR z$%+#Jm{0>#lttFgckNx8m>l1?fA7WR_g5}nT)lSn=IV``*RS_`-aYgw*d?M@7_g4M z0Cqc|sz1*T)$46?-Vz50KqLC*ky~)0z;G$t)F>>s*o!+5&~7MO^3IMO+@da^T|+v* zeA%l0pf3GzCj*uXr(Q%>86(_2=m5-%z?X=AMjdKOK6Q-w=DywIjz?D=#ty#tfsUW- z-9GTa7_MuCTPtfsb26o7?hMHFv{;#B47-m8?LRBUonqPJbkQHU(ldg}6eC)8sTZ~V zuA*}(yFd|TMi6YJapkp3=hs$OFP=Ytae4XpJ@+gwElo~Mc1OCQu?(YMNj`v-<|?vj zE4dBphP&+39xH)GCXSO(34a-SC|gctjmUa+<#0MGOq7kUP)taG;3GjpCCC@7Blws#PfJdd@vR|vIJPXDD!QZj;@*XY zrMW;cGU`wa8AEhbY^_LQ>$%Elk2?2O{)X`*pA8|ej@k0 z^@EHmZJDwS#$!%Xa0WgqXDq8XAZ3C2*plC7wzTM%5^#^Ec2)rP1|(k0!H#AB#eFD4Fk z$2ybKQ+aM`^h!T{V_P>SA$_Q*#K(9rn_3dU5SD+)tmLl3%nAoKuAv}hWJi#q%%K|5 zT*C#tT-JB|^07XvD|+AQ9ZZwVhZLZMrrv|J@iEq^DZ|pLqQ7?e!kag)zjx~GS6=+? zk>hvXegAzk^Yg7vOH-Q{B_07%Y+_)O{vfp)r+21xVg53?DEkum`QaK+`vCtkJt+q) z8AuW^lk}$&VN#hIC2kY%ik~~k+uPjSeEW^p-+t@$<@euRzkZ_#Iaijt;pE1&TCL7V zw=+62F+I6^?`?+;AKAbEkj@2$F1q14YE3C~HDlq4XhDylp|Y43=KG?Cw#b>+vSsEg zDs5(SmuGpAw_BlX8>mG*FQ9T*FB!X0b8WOSYa44=h8e@{T-BouC#cmmFfP{U+5shw zNI1~dPk7N3eX zMe~(v$tcv?7fVpx=*ZaQ)D-1N)LfhocYH|LohG;X=}#|ywC$1L9!S>34X`p!ortZO zV6$X|>oY+n9I{z_0+hpkMNGxiOCcI&C_=_gj*m+o5HDq$u|gJ&q{}4zE4zT7v_cD-izsf)3a=O3)~=;f z`5s4A*_lz!)!Dl^e~17d_+D8Q8|&*o{?U(KdhvyK-g@Ku%4Ox3DZ^ zWY?a(=g+>ka_5zOhYn87&gSj5i#HWibH)%xk6^!}B=M@mh|Ym#HD$EQvpl3V;Q|7} z=YaG0Tp|-PuQh=*mf6a&$(!r@4C21BDas>=da;~zh?Jo6BwWLCxyj^%#;>yK5FZWi zEt#D2Q6BZQdQH(+9$$6sRc3>Tk@=BHRq@}4M=`b%a6F?VTWVQw)$yeJJSphWy3^^5 zjg1ePg!tbSPOhD&)3ZOc{@CHSKfr5m*g!iQj}|`|B7E(hyhr# zdJTU^B+Qsp01D!jNM|8^HYx7X=dD#{#m6F!Cr?t*YWW<{_DH+kYPURTlF4&O|L}wy zS!VLARAuIQ^i1gLqdVO$)vv`me>o3HA&su;h6;WY+pvct4>W!TfpuG^;a@h-9hU_# zYQ~oif68cc|Eg8}Ghz`uw>IufF{1C!hP&1CKpAyD(3scR?`*_NOEjDcp#Pz#;K3&J}q!Mwr3@ zs`6fd&kl0PudS@jGpqpdM4%oj3V>r#mU-Ta-fM6Hz#H{FeWYWkku-{8^VU&*Lc=0c zaoTA)CTexN6wl#T9CDhj>i}Ijx4s!F1fi9!TY*!wgQkTwjHP-nc~5*xagSA=qj?^* z;F4}ScyqgLW^(xVVNHfI)GTjxJKbS2L*9#j(((P0YnRT-4#(ug>GHn17Hw;M1pG0T zHLeNvl7xvIsCD9J&R1YZjiZe|>p{D=R_(9>wQ|*4icz}s*W@4`3!v1_i0lFQ-YoJL zM6OeYfo#}qOn(PZqz^chrLsP+lrr=_s1bw-6<*A?J6XHi85tWJo0yuInw^}Qo1C1S zn4BCNpXiQ`i|pWBy5| zv(=Rw-}>s;SC-GKe&57|DtsN3U7wUCYiDdxT)T4l-+cMYQ*$#D~f zk#W<(e}JQs8SFA6C?>RWPA+{*niW2S?mw>GY5B_UBJtZ@NflZ7@0@KSax|I>~HzT8!L8gMl}Iep~l z?RVaD@1Fhprsn6`-I3C141fkU2I{#Bx!^jpjs#|~Tti-}_C>XRl&w4u^=&2N^I$h* zl-WwWoDQR{0jL18-rp_Hp|2!J{+xg?M=U@bnMAamc}i`c`W8;NyeY@M~-2dPM zzK|!pgGgZ|Y#=g2$jDC@K4czKc$|1yp~t4r?nadqB)iH;iWC1THitGDFm2Gc!br=a zfIE;{lX3)#M;$*gFRa86M2tf`(Fe0p8Zdt?|PHkrv=EkZb(Z|I!cbb4Lsji3U`&>d?~1}SNAI~C4u6h&cmVO8Pt z!2R;F1Oh^*5Fvc<%7N6=W+*%T$C+pTVmE?|GZ9)ypNn-NhmM4S9|+WdJ;SHRl@?g8 z`(@F$ZnLzT))h(*tQ!Pd25c=yYTX7_16%rH(FxbPy|ek;oqKmrb~)Q71v3~isB2sa zASf15L6{O!;Ir{cjKjsv?6+i56nUOo=nxg7k~D{mVh@F5YYQS~i{X`wHr=twqqpC4 z^p1P??%Ov$HDx+2m*>6kH@tIbIB67SqI<~>mV89VJ-`LL101PNCWKKdVf9y91k27Y z+$b1mL35cp51jtWQce#6OchvGCpniAU~)voCb+A(W|))wNuX6@B|eSEoO$P+mtOeJ zjjLCDmrfU7ikM|7P}0^~&gs&ge*0uQZxw^$zK0$(txR|g;v!-VX$Ic~n9j?9y~h~w z7FA0g@X?-WBvgSrz<+G;qO9T8Exw-zuub^d@j(%b0C@fKW3Y+SwD2s~0`mO2xCeG( zw^q-oLL#mK^x5h+1Rw=lS_8x%fwUy`B4TSU-P|N}aQoS?si(Fl2i?>|9=~-ghIKVC!onniylB+2~IIPWUNio zFe%RH61ql!4#<7g4@H?MRnJLNO}GlEB%*N8jyN*0Cd;9%9e76lpUPk}51bnWOTP?V z5g_X;aA9b&nT)D__pskk7GM60 z|C7Cm<(%-XE07=thaq_HuoVn+*$By^7I=v$juZ$m27_94I8Hmf6#O`nmc&8ZXs)pq zz(7LPId3|uN%c*>54mylfR$^K6cDqRoPgEPWLjcB8G70Pk3k6zGYF%-!@090fgEJ( zgL)_m;1@C?c?(iWyQW34}nK39_}q>{%#J_xbP6`>7ch`uREq7Z(q<1~O6sP>vb@ zLtOoktF39_(kezH)M!E_9GI^jp$X|Nna|15A>!#Dqh(rCc|JC&TCE&6HT8CAn$`w6 zOp_R~=qk6o(?Y&!CPj!nywU(EY;Wo~q-!E$yMqM^>V zjj$8(&{38k4ZzP==*@%s!g+Uz0@()J71Ds?W~)SfE4k<0Ma7yvmj0D0xLCYLvmWl0 zIaRE0zIX23Z+zqHKlk%LKRw+R*rwC5mIIcv(AjipjS4`f)sgc^cxm45o6Z$G zxG^%-*DdQjNF9G0V+Q=+L4RkwB`A-er$P${vhB~!#J`Xg=xi$h;FoZlgge^15W^I zZ3{wlstk-?ng5}5#^<;MT6$ahez53t8&qc&V+7O+(wa~fRyftVH7@|wh|?xFt-L*= zbI%c}w9PWpX=Pb%sA(+P;6``={>zy|BNFqHfveuI0ti9Giizg!En_k^VM97k$pX2t zTLAo;Cz_p4)x4ae=}cE~WcynwF&nv~(~MHFbiFH-DKePh8iRg+`Q3M~t*o#sgaKtA z1u^Ybdu(iMdU|?pcDB{&Z1y&C^i^|%^@aZnD5wQI%s_ureDpZE1RfVRo> zaqMZ#A)xSdL1hBPtER99ly@=6UJM37O!;h3Evi_3-)1JAGul$ri_=O&YiD0M;K+`4 zacgPf1WMj)wRi$y#|Z1+=nV0M)wiy8_4 zn6;|YJA^Y0WpNndTXdAtV*)0U>Cl#m*RihMmuz;;bLa?^>rP4OliPYTJ84Y($do6 z()|4V%*;%Cq&pZ4&Mz-3qtBi><3fRO_yUDU!49$Ros)0p-Ol{N(r9rF!xUfhR1s)3ou;}f8U0jzQX=NSz8Al(8Y5eu^*`y2GR9{?vShN`f#u*wc>IWR;7 z#S%d*uZCV=$#1Uu*)4Im?eNU))_TPj9&(Zgea*zw#Psy!Xh&v44sV1)mrVNssX_36 zn{z_{T|E$5*lKzh!9gEEL%Z_WUB@LcFxCpZm9&eB$;G5KMf$4FS|iFwsCX#$@S<<- z^Z^lsVBeXfx4364!?%b`L>4O~MKB2Usb+Qxx(=oPi7XHrMmZ=}E?l^Abp>oZZGH5G zn=bo(s>s%c{`3T)6F_1edM!NbUR&jP-s^4Zn2>ubDjR%jHpfYdkXG)^*M59uWo34Der9TBVq&b_4yAV?bfF*; zPY+_D(_2~g2YsI+=1cb4Enm##dlUqV-{|n)Vld!7ilMiS1#CKRw*hDieYP{=t-vW9 z6n#6`ymH}!0v5amqkzJj?crcV+i8;Tkz$7%rI6wFIo=qIZ&Pd>08BQ>h^ z*!s%K3Is^w9ES%R85z0f-g^!oJ~B2w2AuewLDi~ucVuyC*WP`%y?gH5#`=be706&u zd3pZs+b7SyeacT`;0rOq5ez9h&i7=XWPG|?Woe-*CyHht#A&x$Ai6{F(j$7Upy#n; zGGk;RUpusm^E`1%sa}7>lgagZo2zSv+tJt8GZe(QEe)a};%?h!E;|Sl?Bv+~5=ir> z95no~GR}7EN7$fm~i8m z_C$vs-xLowcohi^X&74u~4f_PY4{zCgX>)uB;-Ag!sD{ z@>Nj+Gmy6u`E<3ccQ2ahe%AP6k0c5(PZpD^qrLc3Ht0x44zeNMVriR+=$ zfju^|VXL#W<+YWSet(b#DSTvgdS?2_kt1W1lh97mm&+=p3(vJMIySy**RGW-S9-ol z8}Q^QK^hdG1N5|g=*LpZA&3wpot8dLgjC`{`mj2KTHPR53%on5+X%bQ68(tdBuFaS z3a#UOfw_NAg{5dOOrl)bI{mjcS3fB!my~kI&lT5T@BBI+Vi-cJVWpvKpyK~`@EA6M zwIiljZ|%v{%gv(mY8~3uO@D1PTB9I~`EegEuu`#r6RcQ4TAfv;^%ZOeWVG+#6;kX< ztck6Fot3Ls)fR+6Z1hSIyMfKy2!?@$rG==MqjwTx6uIxWexNW3ykQxIxb&bbS~k}z zYs|}x4<*DACG{k8?b0s>*&DNit3wG#mSs!<6iDeU12(y^_p7yC;(6GE0J~n4&WW^6 zA_28jRLmEnGabT!{u0JPt{8%)&fQ#FD=~S7u|?O)vhlI8$?0h*+Y9AzA-yScx-5yrpO8!HNHZ}x08%Fq<0v-?bxJ2 zbC!lEw~6#8-1CUckvRJjEy5g`n!lgCucn2tg&?kn2;1vgvTi%64ox5m+fV4wV)pb1B9J@6U6d zl!GGkVX;ExzI`kPv10&8lppb6;XNd?N}&>jPkGYlu<3);$m->}459>!4P%ipH581$ zx&>0re}NErtCbt<^5>h0V=G-F^CW2)vL68r5pE-)_4t0N>Op7-!vLuU8#xdwaOQf{ z_^J1hOV@@>1~KVr-XBp2snD+ysQFa^8na{{{sx{F+VHH?QUjmgxIou?EypbXVnfZ8tQH zT4SA)NIm(99(8C!Q66@)<>kn;Bq3Wd&sp~RPP5MFtOJm%F9C1_T7*kmPF7S(CgP$f zf%-?#@W_Qpab(Vuq~5ef!h}_uz$&p98s3ppQ95%W5&`YFVwq}JuIZS4Oq<$2W*|i| zw&zJMIyTtynXVtQ2F8Q*>Bvhb!Y7ag<}~fa0_C zWo2xjRO+;HnitKXVftHhb!kd0muL%~9VnfWbq91yMQKS<1+gj4ZiUF6@!Xl4n>}u1 z4C=%4rCA^I84QXWH*WMcHcMY(%>h?x{OK%Rk#JJFX>=4S8ZTKtl_II?vT8Ug=jciv zNG-*udUo^0boHd|#a~^5H$wr#g{cf1DSACFk}C0EnEgpg9Y4wKb~`f}TPq*vs2Wz5 za?FQ)p~)52vb?!&<$N3mqwS4%VEayc@*i6`tvzR15dCGTi;^?#(F|nxIB}sunH-Wq zLE#tqp-Og#&wt>yp(*XH8 zH{+}+U1kfb+~!)_m7_sHGM8vQGp^A}QS2WZs3O4CXiYV&!58F4F?5y4yqnmFtb81* zPifvzC|h1Xg-oD3NVn4_JJdgdFAMk8k!6NpRd~Z89%`Vi8QH!Ld+8#wU&V`31`G1D z9fxoE%pz0_P*g^&Ou8B>0K)ELcNZ==qG-N&w!j)qWy;A3obnH8-J&RrWFIrjL0kH= zR2d~aDK*;dLgy^B%)=N$zW?Rr<>g(wc6B-(2cS#1PH%Jb@})~>&zxCZT}AB3Iktk> zEe_F04Lyos{R2~U-PmD!T&M?)VIbjzR=(A+D&<1Z%_kV0$ahb-8h8LPKde?1Kxghu z{MUveC1CZEL%v;Fi?#{s9Lg^+l@k*;hLSF;oj;+>k-pP;faE>~{H~o=-i_)pJ-e6;6-Sh_|s+A9lL4RP2($^4>cJ_wS!;1?GK7Q@d!*cb;_4nU<|Lp10 zD_2%zZ7ri`-o$^Ch9m-O0OH|zyG+9|`GXFx=`D{3YD#Se=#4>Y~6|fq9h6xlXSV9NH>is`L4ihwC8xi!uJnx@SIeN_ILDMf+=qy?+Ib5rBt1tW zh54fStzgGl=ctjP1G4tAz{qL=yt7o9s}1mK1a`IriUxKxT=k0ZN2p&3+5muAt$6b& zO_sSvY|~;nS~wke3)oO~h}=78tfwSuIn%PXucpir`65@;$z>aI%D;f z6g0rd#Mom`eR65{-YjbugF)!nXSp*Bfsg*#gS5}s3eG)2fF@O7bgU2xn|@G!|HT(h zz5Q0vTi>bGm5kS4+2@kC+hw4|Yqc^E_n1P1vk&u0vQQ&!Bi5GTqn`BuwJ3H6z zbVJc|Ns`B(vAMDN)*Ejq=N9JYM@L8V%r~;XdhP1@^XJbmFK?``aomI_ipcD;1BZ{y z%+8k1-n_Xs==DR5m(R_#MX5_n;kSguQCWyZBNiPB7nW4X0F#UzNSIQkkP@W<)nFth z(W)KWl}IVdRvwy<{9zAXQd-Y1%pW>%U}Jsbjo05~2P-<$i8mz2gXpEv5CqeDYo*b2 zy{7$!{9>Ao8J(WYE0+FcA8UMk{NWQ1e&Q2PUA%Pho8SD_OF#Hws0U)Jws~;d&oCik z^s9(8DPDrj9W9jzjPIK4JaXIk-DL*tc+e=I(b#?mN^L>iK^!TaRId>4PDMQmkO0>xVS7YN{Ckq_-a&bFZPG^peAx+hnz zrEJS{c3Gos%al`N9Y}`Ct|(S-02&XH+Jt;%A@`IW3{IUnefG@hqCa#A2&kYc35r4Q%EgQ4-Z{C{@3p(# zc01SI4o!~EJpD(ekWvOKx8aqzK!0mFR|Vt~iAw-9RFaS?D!>@572!s%z?Wf9K9V4? z{FxL*%n_pW5I3x4JVXBumjVvMrMVxN1*A#vU2(r$OGj~Mqhdz<}UPx;8Ok({XTGO|1$85{Ra820VcdA7c}+3)p> z!Jyyo_j2h3ug8e9 z>#nD^W?vW@iD3Hs$CR)TXwBpduLHXjy)8rEWHf2N@Cg@x}<<}Sz<+D z|H@e%5@fmR%osB}H@~>F=e^VKTwmENLl2n%hSAq-*;`-trNU_N;ikpfzV!WA=enKF zk)y|M+kbFma=dV^GdZPIq#gDef=FoSTalf@!-S!34A&y{wSxmhq3{(bU=be0D~yoc z?3o{25z4{J!Dhc06upg&%je&J^YvHGpF10(){*ZMqc7UG1hL{l>f1>(58a1IR33VS zr<$6beCF9_{=47(FZb?QI=_5jW@hGp`0xM6n`^6g#chWedbIpAJK zd0wqd=U^A5f2>Rs0n?$@#u#(&{rCQ7|LK4H{HLDMTF=i;e&O?A8oxBeA{cu8TO5DGrysd}k=})n#-YO@ zL^n+^O9GO?eSz>V^w!eQnoMaT7R+T$gb;d?jmbHw@JU>G#7PT=~2>G%O#hZz3Z~$hdSQZnpS>)lO<6>fB)J{mF}&r}T52fQBi2*pyuBp<07)d zjEGXRd{ky?ZtC$TANdEr^>-KNW{gq`^Rv(X%oCgc?LYdx-}|TUymQLpG^8bwoQNo` z0i#3Jv~J3gyS2mDcN){uKve6C?fN{C0= z1~0&9+NpM{H90Z4FhAeQ^AE$)K*ikp(4qa0KmPEUQ>RXyI(=hx)kA99V4@`FJ5r3= zWZA^z#OFW%xzBy}QxDyD&+OC$1%uT{x4Uou-p3z*>}y~9`o$}kOtQT{N|%Z~!yTQg zemZJkSmf^~e>C2>3imXB5i&?EgISvBZ%i<>3D5?ip9Pw31NFHY8==H7rwPJ{qKGzc zwL%STf?#jENL*ZzF?SmOq#euUh_LyhXv;ZOK~a>j$Ne*OJ9pgsz~24)M@C0c6eq0v zF@j5U3^XsA;`4!j(*pZ8(d+Y5F~wa^kL=7)W+WA=7AFreD3+rJoV%g?L1>G)o!;A9JuX^ zUwq#8GAMd)z5RB9X&w>saLVR+HaKu)$l zYT<}Dp629)^gfN5nl3$6Lcwv&>ElphFBuYBKFH9O?48Wg#?CejR%6a*OjY;4`KDY! zB53N-iiHiV55PRuP|DlNb8MN#bF;m=rsb5F^HuW9-Z=3j9RlCvS_x6>V&oSWT! z=-`RRpWLA6ncWSugpz0vd?K|Obk=ryeNLlrU zM8Yi37MB+P_TT>1XP^DV#Kf4RC8Dv}tU7x8pF6b}Kh>Hp3&2jC6kX z)1Q2A`NHL^t1tiX6$ra3QGQPte&wi4b@lIYXIE;t-SF?QFp0)sGgedvdN1(Gxn8n5 zs9_^&7SohP;Nl03s!yJ-#6X)5-lDGIv*wf0f!5WcNiljrS%(Bv!XIrZ9RSL}Vlo2g z5McPvuy76MvWD|B55M^6D>e1A?T!~44x`tVOvmaVhtEmvuh9l))B!(7-@xRp? q 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

xwT^f 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

bBPwD->~GJ<2}Uzuu~LQ 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�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
fTKs##Z0A7Lba~!0b z5$ECeM>33q!ea;x^1PUuo;i2v>gS(+(kl-%Qs7)%R(a#(*|oKcSLPO%LJLb{M8-%F z0*nzY)gA|Glp(H{gJ&;P0a$BU6bLE8)S`tq0$M~IHHZjh2#PWYndJ7^RT|qz!tLNm zlspbYicEq45iReyxF&dY7JeWjjhAH^OR=%>f>AgcQ@qkh$X%r(IU-aLLb?{#C9>eK z;+J{Bn!^npmE*8v)px?6N7oW!4W}3+$A~T~_cg<7Sd*L_n(XQ!i;86k#P*Sb&lDUG z1*4TlFy6820v6pePRSxJJ`73%kbu* zAqGt-!≺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 N002ovPDHLkV1mm^0Pz3- literal 8252 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 diff --git a/web/icons/Icon-maskable-192.png b/web/icons/Icon-maskable-192.png index eb9b4d76e525556d5d89141648c724331630325d..073e2f00c9bb5aca6c399b1045623bf4d440e353 100644 GIT binary patch literal 56879 zcmV)7K*zs{P)(m(Qk*D+1<;h(<$dHfg}()BNVWN$-y9UHW(Wmh&DkO3<8^+b226;6Gae7BnbgR zLMR*Mc+%zFo$2oPRaJNIoB)6C_ugSky1l*GneOTe|N2)|@a)HP8RN!ij$g)T24CF2 zXbfY_aCp%$Cg_I-UuBHL`#61X{C8SwA@H4y8N-4=Dy89vjBBl=6k2P}r4U?eL%+?r zfZt?>UeWZa@HW9XQ%Xr0;?)#>0^N-<#t1I)L*R}X-4)!kvA4qTQuK2UuV}5A!1ro= zE)Mr?AC4Qrg;K^|9)4g$xFEaPJxD@baye2#&e8&R&oG39#l1Rz%=k8PCoKlG2{~)noqC-KOx;fx*vJ8aIw> z24|16(*44lg+SSZUxl9;je7^XC4@+n(nf0y(oCN#q|_#1ct^O%uxsu^nP!G56QJIq z`!it}BuWW;@{B#Y{&+FNH0~UJ3>_nP&eKwo+D^esCm5F4a9k#PR!n+n42d#HgLWT^ z8z}<+czjUzz#fw(pr5+K1mEJzaKLc4P#*}ZA&r$FD+G8F?E}K?Y4{Zs4*V1e zdvEWD?%1um(acFTDQs9U&{5`ZyRBjN0MMu4CgH^c85jeikf?+NT?$nBnv|I)&22BP=~QqI zlC4R01Jb}&1>gg_TcjgmWkJ(z7>!S8?~H`N9#HpGBs6r|+?@;j5REr(53X0tR&GjS zilU7RVGlKz+8tlKZ>~`x3b)^Wm8}hRCQT_+u3RWQ3A6#Ehfw=!P*@~KbVN}lXr@s+ zvji*%cY4L@RKu;@fysbd(gHVL(Z112a-LXEfLU?Jce0d`1tWz^OR5O7f zIJ2;OsC2j!DFKT_*Jnl;?oJvSeYkn4jpFt+mux!YQrktt{pCE-aR1t9BaEOWfpej0 zJK=-qlyEXXC`m#ZXEZc3f%jCr)kk$oDinUfN-O+6et@;Or0Tsc@v7Uflp(-%x84%G z&8Zo(T;%#V?PZ-Ulkz$2-_FA!Q)^Ocy=0(`7h)^-(QnZF#L;qx6>yllta+C6Mw6O6myG7Z|1n6Wat%~XY$E3FTIVSPYH65UJm&?@P~r88T&!xmI&C> z06!E?1H6HeXm?ZxTnZ*MCyy2N7}Mxv&>{>I3&f^6E*_fQ0IOz zrjo?T6MT{gyk}i9;-KU~XEUvwO)^%0Df@)>(0j`-T#!M#!Z}M4r8O!n?%Y)wuuw=5 z1R`K~Acc^D2=GCSVG4H~KGvO5*k)8J@N*%BlXB~o;z}!e9c38ZN<2@b#qh&@K!8?W za-}pQUk5ZHL&pI>fqTOOx`!--!D|W*0>mUZ7IbdB(LuFLYE~P6{_#J-;85wb@?a&a z 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%0AvyE| zh$FW+IO|_<`PDnNZ|-c}3zk;!Aw&6F)%ucaud7-E&P&dnec{EcR=(BS(cx$c3G`49 zT*PtV#2GWJOe3MLs#f~CyOT6Q+*P-1-n8Q+tDq(~^iW(l@`anL1>6tV zb7UfPSGEDC<)I1#B6MD)+}kVu2?WI@Ng@d>Jmw5192GD*k3@K(5weH4?}w0fdpezn<%`bsprmQ7yMtQYs+ty<{ zI}1>`v(dx&Nhf^z>)-mvgMZ$$V_RRfS}c^C$22dv?2`iq57BJwp~zYvjWWX3Ppg4Y z9TyDbh?T2gucyXSwsjghAl|;P2t*TaLK_4#WJ@?Lb9Wfbmmv(BsB?5CT}X`fDGEvT z95-NsxqW!$a&z*8EmDGS1re%@Y(0X1f}JCIP8F;yN#KkbnoP=@_;c&G@I7) z-UzHiQyY_6@H1Z(5Q@a&fkBe4K(loLtKkD*=ijZ?x?C>LIb;6J*>jQv{nOC7M=M<_ z79%h!NR>*4G>y3C#xHK$vbk+vYo$`DtE(G2VtBuS{XrfU*>Em6}vx;mq zX2OI@Qi+m?qJz=;&W{;C`np@b(tfbLr@NjyajmL}? z{YKDRLOacLVuSxx@%)@@isS)Nni%&=a;Hg4<-i(};_P&;ehI|H{DVZ6{$cATTm#`b zhT)wUOp%9~Fyx_9Kx;nd1!vbm%BeXGLDU*z2#gO86M>~9}moVMm1X=AiyY#QhgHT%jL4s zroO%&dl_;OG8o=Q5TE0j=Hae7To)oTNuoC1riuhGsp4E#?M0j~(-h4+2~G7efk<=k zsZV9H0C1fWP?d#CthFGRG4HJwnlc}FKk}&g)sl#rz90^(-_SLsD$6ifms`ZQ>7fvKbkdoMr# zSK{;-POOXym*ubo^xw;~$Wgtr=3I+ZlAm4VMKi{xrNlGFPtM{fi^X`b5mic&9C(AK zY2t8!0wZbkds0^oavWG9=}&I)rqy8m$(6;4d5A(N>A!eA1`1WM z;0V1GGX~UQ6^s%(i59#eaG9yM1bbBaa2SIK91#4Scu=cA`wFXpsk9kcUNo{T%_k2Rdvo3Fa~XyhR|?KCzA;yJnDODZ8RI%P%ND^RIH4z3O_z>ACq z|JCu~%EdK_l5jGBmVP>5szA^KmOc$R_$-qkG?{JrKn*?Y_@_jyP+jDXA1&o+Zoq|B z@Du}(O`zzcRiSnUcehkl4j!JKC?AJ4LGpy8K9W~P*7P5#!t&q6M7C^};^b)6;Xam) za@hCgZ|D3F4L^bizvObOHU}()$AiLYnP5}d=R$^$^I7IqPGcW>5J6Doiy|~Yw1!(t z9>}R2(vz~7hP^(p&>jEhd*c6*6WFXMkj=J=c=l`v^3jAHVQyUsJxcR{>jup1SkZXK+tAuOHm`o)d zQnrJInO7NcQ0vS;Dpxibo^*xXD72p(q8rpKp@^mupERtRjQUX{0E_$o1EJD*C&TwW Q@Bjb+07*qoM6N<$f);V0O#lD@ literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! diff --git a/web/icons/Icon-maskable-512.png b/web/icons/Icon-maskable-512.png index d69c56691fbdb0b7efa65097c7cc1edac12a6d3e..8b2140af6bd7dcb2c57a648947e174f5b92ef9bd 100644 GIT binary patch literal 279423 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 q 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

xwT^f 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

bBPwD->~GJ<2}Uzuu~LQ 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�mP>@BqipOa1!Ux=R^Zmsgr{6vFA+_R<%VeSGja9RJx$~XLu{<1mul; zadl{*O>)9aJ_A$Eb&+@h8oKS_L0gfffX2AOJg z8bu@5;Fh8?uY&WEAIw2L5YzVq*2o*^{fMHebHD^TikU@7_N=I2iN?!@;1eEKGEk=gn5D)9p^p zOrKg^U0GR~nVV^LTA?deC;|4+Pr&|-;a)-Pvq^%9+zw2e5gSI087Q1W5G8{^76?u; z`gYQMDVF1Bz*rhUdBkWMK=`Yno{@BWG5^H9d7;3ss;Xp1f7S8M3Ko(J5OzbV^3Uar zOdd@ipC~hu?BiKLVNfb=lf+>QgDrdj0JsJgJI{?*iQ;I62&b(6M%FO|EadF#u>;o& zErpwIH1q3kzdkWLT@A}_r&BcZ?$iYDKpuU#Lijp*LWo#1ed_G$(#n5)_59Vs;(T|a ztBipLmrNZnoX!nb%RGTsRZdD3x=mV!;gINHeV71UH1 zD)Y1jlX>c1ATQ@xJ{%1Kks*uK$RT-Sjy(>A-6u&ukGlpO$x7LG`GN>QWxCaAp1*YI z#p5TBwl$VslDef%bq6buW!}=UdN7pwSOFd0*J0US2;#BW&84}`ya>7Q(0dQSks$ZVoH67=C;Q)qao|k0-77s{PeL$kM(9jpgQZ8E2_QTIaPh4;!Okk0h!M=GQI?t`(k@Mqw z>bF4+pDetB{zT=cJJ5kj$Hh~=Q!e!QgS9t;Rgvc^(`7a4Hj7q+SrPFJ(8{%ZLkxd9 zWhOUJ&f;YLgvpojy!3Ng6f!iYA+>D%`Pe8+sBR^W6YVTn52(1^F+sY#Vtp;Wue}L7 z%eNNHN9Abo#EI$I+1K8Fr{5nO9vtlM?j0T-1u?a()oxEsP5M3`jRLHq@yQQCau2>g zj3)~2me`I^qgJDi+Ml&lqQbJInqMXA=L0fsD_>L?Fkz^bwPZ#^zTI-_m5p-v*-~k) z29pJYjHAj8aOkhV%|}s4QCmD54bk#evCp79(#S?zV(x%7hmaK4M(#CSRcWDrxQ6U* zxEW6Qj>o1tEYXPmMYRv5aw~{#4lN_Vlq~@U_ihSHfu$Z0`>)uy2v6&hxRmp5E;@u>EP`e;MA>|%av}WT$ z055T(1f08Y;ohy=PwwB*wp5HMf`<#(uGecW!69exRB^jj`s&KL_T=QHD>qh7oz9z$ z%2_Nz7P}6MsyGxNN+k#gA08d{eLC7Gsy1|pdFZ2~!-M_3;b7QoG@;X}=SM|FdnJxK zngSB81SsE;XgvIc)hT)CZBF9wH)2A?B(q1M^Wm(M@@=!2u9!`Txjmrk9fwOG#r$Q%HH z42o9=!`IMfiqF4rW64kuovIyPOHT5=M!asY<-ZMLv@;v3)oqt3)6B-)M1 z6CSa`^alLKQkMU4Z};(|hmY>vd-mx5#U@y{_f7kvnP-5-+lJr(X$5+RavSUb;P;e;o<$yKi_=$ za&~d~@*4+Nu3c|8THMbrBEr$Y;aN!+h}c)+K&ZGhAg!d54@3l$|DGgTlCy&Toph6-8aJUVZL2q+& z`(S5N*&#M+bWT1@Vh$C#x_DOl?CsqA;-$;iu3W#Nv&^5PnFj40TA{dZEoBm`phvyG zwfX4ommj_V?&r6BM`9JCejV{22WRQ1Ke+qZ?e&L`Po6p3|Hd~j-gtfC#7byPWn)Zd zp^Sw`KeBWxDCeW_g{lbRAdpR>z+A=BHV|}I3=71dijh)02&#aLIc_#%ENQfE5thr z2A35!xhRb2L>0E7$;{I}730zr8cl`N6a5a4$Rjt7i5V6P?6nK3VVE<3UtC^(?Q7pS?3KU%<&`!2pX~QoPmw0lr9?0 zYp=cjtv~v%2Mx97!h`Hu49vB02I5e~KH1BS^+>7%$rbdWqe3xwFfr!h)>^xp6P^%wv2 z@bfPUl?(c3d; #0E!_ns-e%NkxTJ6rI8#gSFg)vK4)5NzmFR!MfNk_fE8Jpgw zivpQ`@}i#VSPZJE>_|y(9R7r@dje=;a_8H!I_c5}kjMBO2qaAWj~UcU`jzGr!j`QN z7jWQ8gWRTrcH(l#u(g8X?NCn=u(33p3uWgUb~dDlf+;uL=#-I3G=pNOgPbsNEp)tk z5HtfQ0gRvql``6=D1^mrAJGU@6+}gR;yG^j9<(VfR!t7lFr>oYIb}B{Eb;gnh6`Y?I~ z&VXK)Hm1{^{Py?1cjN81rsn1bRT*-09@B3$8qtGNicKoCPb{>)_2GL@?%t_-y-b-3 z`n!F_jl$iAaG*Tg+y2cz|GZNAdw=q$+T(9{U)IBv1WboL;8W{<&-jUk8ZhYDprECn zm?rtf)U!BY^Mo5W)aExHGqu>rtLqwEc&UZflwyv0kUWVxqf`||_do{-<&#EPwYR(V z_y5;VKL7Cj-Ip&5qISrIGd@_sX!!b-&p-KidTxGVc6#aLN#r-_dUFqEQW0`;jD!hf z)!^=9YDZ&&1tiZLw()UzQEO@&< z1Cg0%2WZjo*}=`Qf{G&A2AnLY4-cn{t@tb#q+UET;_}6uu;LAZjwYb|>Sweq=W>}({<$~DSeRinpIH?@x2|7vQpOO^-A zR>h`=(^bn_DsibqVnuQQgwTqxfA~=R$n>NZtMAAza5BWJjm9uf^m?TH%$T@>cxoQQ zn!pQOi~%~>{Y5LES)6WlE=^BQo<4i#%Uhp5yz|-N{*JRH1Xwhp==fAl6^+K!%>w9pF*8#yf_F4%_UQ2N$%A`eeERA3ix<8*GpT8*<6h}+{b~IC z*^@iBZ=POTyLjmemlLOEE4o5hR~mZ8X5kLU84o&?*A@-`25)@xoEm&*I!>XcTDjzd zjAlRt7%nA9(g5+0m;}T?GN$G-ep?Oiz7(cBaUSFfCg6wh1GML;7g7d2eEIUWB0)r6_>wiAF$!FcayUvgsGc z1Iuu-KnTE0z6#&xlCUdT8QU|UD@t%bqyl0tLBhGAZz2jl$3TN|b^>i=$v3>9GLii@ z5{~6VIdcEwGNUj(#A@giB3m!;iA}6zBD+FfRFdT9ZhRtf;z%c~^y~~KiE0#;CG0#o z%XtbRSxqOOFh>y|;7U=+)8hwB<$Pi=#J|r|PPDF>q4AfzdPI#9=}Ik|EqYtFA3qr>C3>HI35(lmy=VSPUqar{M_7$6SE6TU*7)Y)r)6?{()95 zr_dD~-Gzk{Cr_U~dHVFq>Y1|_&gZR$GEnQ|ho~q_W)c#M;|@XLhr@&YcYpiq=TDyu zdOd@kT4H4V70U)rEkF9@aIo>@(dRcmy>#(1fhSluS&y`o96_f=gJr%j;PppGhcBOR z%*@X(Eidb$kW)`uiB_@0AY6OR6`8bsvn8? z-Ea3_y;QzdHju$|bRd#k^D!@{oqe^je)qG_E?&8^eDYMI*6t?L>^R z29$qA$fkwQqzLqiNvvR?Emcv_JfViFHrNRrt=Gxl%srlJk zAHV-%{c%-}G6?fClQ$ZjZui>jZ(e`n_2pBmSze5s7oSAMf2@?rOq9_l7z`RD`0n22 z-uBkbkKP{~?qftN0t7LjN>08Omb@@#e`ovN7oS(7q0$W-3y29aCkc31%ayf*et&QC z)zSW*4zMrb<&pWe_44KIPd@1#9=-AQJIg0ePE1Z`CU@MO0z$6f)`{4TTqg&h7`m02 zpU`;UI$j`B%cK{{IF$Dpvy6*9ed1>{+}(Ql^udF?Dnn-mnmq9ZsQBpO;a2lt%E92( z#>TBrKAD-FGX+eH8K-_zI@9ao8B>TQif;o8rKP@al)k}-;`d;G9+ICF#uAd`5H*nG zj*c(*D%7AS&JY`Dz}LWp8DSUEVP~fuU1XM25gAH~o5egTp^ZVliersua)HrxqM(j? zmivPWDKE0vP(mw!x}*{>#Iz;RPEE=ov6&%$FvzUZASr~09JgnQ%PBr-Xm%p?V93Oy zy~Vksn6pOvp^74oDCE|}pOcPYav3oVRtgEFF@=hC8Nyj0#V#w&*|U4v3AOCj_`adZ3JvdU!igXtYC-Kr!RIeZT3 z9I2$6;XYP)DbH?G(8oi(_nb_-E^z&(>{Kbtfm5PpzE0cwu^Orf4>_SF;L7W4LnVsw^)$-HC=5 zD`p`K?y8P<;Baqug|H&pa~S9s=9yYi_hQt-ThlP$CQyV(=5nI`&V)jb zSQ`b_pOZt38Z%7dv6W0W3ZJM%RLU1TQNRfVUEhbD9tNRh?JQMQc%K)uc3}H9U%Y(& z^r;;V127HW&W;7B#rR$y77J>u&Qu{(z%Vtd%-+uK&5u61_WEl@tEn5|mPr?j44OgMxy|` z3|-o(&#Q2u$lLLC$U&pK3bJUhr>wKG9RpP(;W$*4gXWQrByB+TB&yl~(gNQLSp@20 zYY9UKo)Su)=tv@p9y5F}2!ngS0h0ej_2DQ%c51|ncuyxoFPZb+I-~2evL5Tr6FNfh zFSVpsTmW42*N+v8QVUIOE((AZ{{5b`i;yE#H|KrC=S)0H|O&qES>A=Hj zNB#kE12oaTP&}C8!Hi$*ymL6dkz$7w6zQ?k6O52Any+K(1~Z%FY{6(LUFdeVwO|%~z5eOb<#6ERV&8J7 z*=jXI!)vq{a2=@d%tNojaWD}cCJ^w={_gJ6M-LhEapEH2;x+xN<(wG|hJ*f*RuvWR z(yfQu)c<|-j-~Qu2Zf`v4?d|G>ff!d7x)bH- z*@OG<{`%KtSzUYMtq}Fa5Q)(W`VL3+5g_ECpdK~LbI-w05+{g0JK-Fd$*j1cgM>`N zN2;oN@$A{g<0qK|@F`}J15eZyMPp`idU0uaYGx*D6um)jb8BlTu33QymLkzLMLP`&QsM!bB_SyzGyHym_e6jwnjXxQ zI%p)v4k=W|z|WzUN&!JG1_jPh*BZ$EM+41I2GxA5ix}IO%k?R4TWM7k1wW3aTa_xI z;JZNEPP|nD8+d%sxh9@C)h1FbrQ;w-Yb!$&9&hm{qzOUTatuNq#uDm${mG|My^hiw z1T)}>!Sp7`BvE!;t<7rGBTiHLqDh86B{S&MP$@t&JcN~L-D)(8vg`z+nx#f5&Z0;Fmf-;NDlc*_ z&ym${=o4UPM76)S_u|=xaWeOay0Ar~SeRe9cI{fb-7PD%ySu-!@pS#k!%;O*qD3lr z)Pv#C&6^)yee131*;yP$hTRb6Q=|Ui*@K6_|K%@V+`m5>9J*=*0XxmT<}R8n^j#et zKKSxZ-e|Ns?emweaPbj&f>AMvmnNkO@T>EpP>ECm;x>+|OnEU|s+ZBVjZROxx4pId z>ZQ?qe&9J(DR=h##Vc2?ojJQUH9ga6cdT{?M@KJSzI^{*izkmB^$zxppGOYz?WjNa z^0V6)E?inzSZv4osbuj)oJtTMV-{27hvVWj(W$Sc2ME9sen9F1$2ZWt0x^a~{T%k# z@wO^7c))QoCUJ3MW|O{K8X*=-;CC{~c~a zIp(P&p_Duf#P~}Ys1yz-h#li39SfTrKLeFJ2v|P)BCP+DSk9#KD`8b6o?LimUi(b6 zCaDFKzWi6}yV0JFqZMF8OaZa=SJXfzRtX%JorzZil7VJp8a>Fwo<{y5+#DW*1pCNM zE1Mz_f>(d=bWCuD=n#%yDvp+8UVr%MM0QAzjk6YmDY52AnW%klj2)8m#*4G%1$dlP zr-_|Rl=t?t;K61&vopN;FABPN%@06%9p%)~;nD8)4zNm`VB~ux(dnrxS1*72JKt_J zn!}OZ+1-8mWKQdH71Sg!Um>YlUNG9+xSly2 zOkEIc*vm#%9E+N%;g$G`IQULcrLJRbyYa^nHy;IT*rgR0QL-O^%x?0v>YH)Q&*e$v zw>ug!M@Om5SI1ERaDpmjWn>n|JHp7dpoI#X-5x`xb;d9HQ$UEGyRSU_Lp z@{b#`vG3E6$fnEz8(+&Vm2^%awJ?rj@KnG8Fu46d3km-dQ&Q56D~h-8|6h8Vv@0kHD%p zUO{HPT3TAVe*OCV{H(REWy^MFZfd&KYG=Rx)vwo|t-DIpeP~s=>TqwT*E{t6hfTp@ zHIx%sqpRWI^G`mx`Tl!uG;pfq&IB2W*@;BB#&EzhRQ!pK zN^&e!8pdISxG1_1Mm3rZ?BOF17>doHW0vxK)4-Y>8-KP^Ray2AkNQVPVKrumZu>-( zDLS3k-gy1Zx8Ev5D@#wBbhcf#+O5`GZ-0Gn=iu<*@a4u6Wsx7Dq1i=c`-caEeh+x$ zAc}!EO(F7l7r7XfN`H{HMon$72KVzB5W!O6smH3%+9rxuGos`{w8Th6nPdbNL+aWl zqBk1kkcV_mmgPYrL-dRWAkDq2e+eKH`@>hdUQR{CSBqQ+kEC!g6OR}m|L6Qvg(U?I~c;GM)% zX6+#i!$Tg-Vo8EyF%@ItW`NQ3;(_5ezLk%r;4#oVpc`vYZw?=^1gr`rYJYE}t0SLJ zoHCZ7Mfjr!bD3lo-jvaqjxHZCx1cI2^c{ndEwV&0JE#*HUbtd3l#DM!-w6RSfcl`0 zr9TA7>ExvM$*2n1K5##R636H@dmNyrrnOLTR4Pj$BLFm^r$-)O*-=^gR)`^dY~&4J zv5Cj33-S%@^#d{5vULESv@*HxMd#fcgZ1u~;<|8RYG)_At;PA7qEO|i%8YL0d8?S{ zT)+B!eWQ2O-`d>b-Q`pkvVqlT;5#7ZSphf=b%a$WSHFMn-7h}-czf$b$iqV+b1=dg zbPc3q95fvRn*iKvnA!fp!SDY0pJrz#Tb+hiKLl+M60cLNyA_;_3JW_uXFF>)RiN7k z!(aN)?ZNncDb}JK^>5TSeB&_0W1nGv_5j zt6ZzR(_T5TbpFEm^=D5uU#zQY!~iESQ3u2RaM<@xZ2ch#ditsP1Eo(VF$c(YLS*_fp|ehCw?-KmL3gtlc^1fWR}5FIwnf?vQ2N$Gv2=DILl6)*{+Y*>wQQtUD( z=Pa;Bth2-6Py{!M==SizieMK1o60xLKv6js*ip6f&uA5ofdt{C_8##}0%yr$H)|j> zTDJZo-~duTl+bGuf&f24#h$6*G~?k#F|iphrFzYn6I=>@Rq{dLo^f;>zNc=he3BC$wBM| zUKvtKjK_joYS7a;M-p#}-6h^DaBc%WnO13Y@Qd#iYOi8l64s<0i#5QrJGu?S9hVgD zG<+`hu%Iy#y9N?<4U(c(itT`U5#q4gRb>U{6Bjy{GKNok#Xa!rf$|cvUlm0mq}ssc zf)aJ5RYf%UMxz-9g1flG76CP$K-|g=Wba+>>#CNPmZl~jZ*6X?2=N5n2o=P5#jYhU zPnDzLCm(+B^wEQ=92tW9;qdp7StcOxfa=-`T293-#-q{j$)kraHrA(S=Ud&0N;#(X z%7=nfE537W*=g&EA*-9TOi}C zlgOH2Hc?yv z%Q=ge;`K)F(Jm&JWLAehnGR+WS8?MDY+sIHbrNhMUsiHSRdSpB#kDX6=U;;cGkZ$t zP3ij0j4viKJ>J|EjiS}=B=byLw%70N?d`3sEMwgOY+d7uP+FE=8~kvhP?4j8G;Le$ z@9nKWd2+b7Cm;tn9W;W7_Y)Km3ugEg;_@-vZ)gMP*HqEtYI)apz`?np4gw<$>1Sxj z2nUNUvdAG?&)lzljCMZM7}KE0&fc}h=jV!0Px5;u-#PX<`IzZY(=VkIN-PB9AJ}jl zn;WRlACjM7L0hg|(F+pAw^}eg(f;OpfH#FIR*h&$PB!u%eqC%6A1V8JRBiG8Y(1}B4iKCqgX0NYhBMb(D8=W!-WsE9XM5-I zqsQmZod=O^nE9$4?(OaMdc7oK4Ns8ec^0g#piudLmQ}U&^3~wrNL4n&_N|KTKZjb5 zqfZ-9tRP$)!PD@+=g&8`x3}jOPnaU-gO7E=;Qwu`S|~3(}hNl zT;@b5D2#iujkQumtChD}gQG*z7>75ia#U_?JbUrt`PsF#$||p#5cX&A%7zE~I|m25 zwkoq)n$h>n@jP8`Zj20nla;1wzqJB)B%?>mI9`NPZoFEQ2tXB+`ognUX+t2x5+lZGa9Pa??ONCl zM;a&}M|{4;07NvsVvQIIhEP!$0MJ^z7y^n1D##0m!GwC| z&~+*w4u>3=$LzYVZp%3C1H`)~%O&HWcr0-@BCaz?&pDAWh&&2bbg58dvOcZR86k&m za&mI%#Ije6W-pmm>iYWn2OoTJ;lhQrb8C%e(^j@W7_6^v+`W5mYikSkkD-v-DAR7W zTa9*RV*Lwr*|b%){qkis7-m-GnJ!7%8|*U8vyP2n;08RCDRazz)t6uP&~^au~D}bwAAa6 z74XqBB45ywj*AykRIuc{Aybj|&Bp+$bCZ->Q50o40*D5is{nQe`Kk&#WND+TvckUY z5X6y#j~<|O8$n);4-EK(!_tr-0cBarmxo!Tz@VvF5J3WxivSO(y>9J@=5(o%+16-I z(-e*nUW{@%p1`!FKrn~JAry7uMev9ukaS{?$d0H;+0-TS zSYqH!@iL~Q$Qgw1vdnuSB@G4HPMR_*lZW&ORAWKaE@6eqlPE5>2xb@LBekafKJ+GP zz7C_x-E9b`Cl#=YkG&Y&!e|=fM0o`kv9sW}@~K@TN{AFu;`DGdLN7#27~GasD3zx) zCJz##I(-rSAUrr)-XfrlNf`-&c@7T+`mo6@84&Rm{7@D_YU5qfnc3Mh=g;TumMVud zfEFb2t#cdCpZ_m^^EcZ$7IH7f zR^`#b-ph^Wy0TPxjyxNs)#2XO`@j3u+u!_7(V6loSbt-di#Fk&jKaVRZsFvq(`VN% zJpSS~FKKvRo@Ed2KlsW2{*#w4Uj6V#f4a21+z58<)vH%O{ky;a?2}KA4i5}Azr?Fm zN=+{;&CV~jI}`EYh2L$o7Md!GmH+WMsSpeay%xp64TfJT&vHU6u&59f%hAgQgx14s z5~WGghsT&9k9=p?g)#SSGA*@cgp&i44uK`**F9Qrka}cOC!*4-EU_Zemwi|)DNv-x zNBanb>p7`QP1qy%CQg53p$dPOY!^t-hI)UE317#%Lpng-;z0s0rU4WrHF&uth&o5x z%!mm-dq!p0Y_Gy$Y$6y%D#9urkRnv&J$)++ie8Z)ZJB%K&4rBQ;I9aZP|bBo~+_rd5oVrrqHJahf=L!dt1uY8=C82721v?&8Yw%IPz&o<6Sn1Eu6Bsb0VT5R@32KKhLp54E{v+>-GN-D%9 z-FIE>ZEt?`?!PW9E}TAhwKXw~@|t{Opt#8gbFh<3ODm_(oNIR{tD^&^2*7*$z5cx~ z?;ai;-M#nV!o`a-GtrS*5oHsrTBA_Y64zr;OQ zaCgbCqRcXS)37)Bc1i3LLFcGf$tJQcXA522NpV3$!;Hh=A0ii;TDv&**A+$FHN;GO zOM(kYvrHp~&9+pEvmKWRlqgzU37o3oe)M%U(1^7;z7JT?iYjchyj#*8&^9eW#$Dj3 z0fI`@VA2}?hy`=+r+DC#eHJONT0+C|Y3ZnjL{1*CGx>G}nqk4$;AxPqv``5MZh>Yb zuKp0RyHGl{d?YYjLpvUqCM;w%2DOVtKw&1%E>eaW!HyL-$6NvTFeMd2X@yam*-*zA z1ShP3n9A6zoGll)ibXy%KmX>}zVW;L{oT<^70y(7^i|ewZS8Ek9pY&iZ2nFR6Hg;4 zis`x8%h#?o+wH(IwPc!f=+v6e&d)d79qrvx5Pa82l!*nZNs%Guby3X^54SAOXXobH z-Hu9p7oKnE4`bl4Rn{GC?`=PQ*5BH3qtXFS5SvH)SMOl|$^CmDzxQstGqu|3WWK(P z+q%O*lDaZ|OSjuSdFu4q`OEiie^Qmsz%x?YvR<$E;Qsyl4<4QTS=7Ar+Osgve4VVMwcKz0?^MV%fgo^1RCrG=SfAmlp}`34r-U=ocSD3NtQ ztA?b(aDjRq0M9GK0zpjAWjd={4FXWO`2iP#$&@bm;N$7mm~DnpGm0alG`|rSEBpew zQM%e$L}?ke)FKOgOo&6cjTR#qdp8h1=+e_s!AIx|O%3ZLE^}l7^G>XtF}ycI_d}XU zB^HfBYN|}JiA}+vnIa0Q85&!5AelrfI9>4wNzzuD%bvy1aaPTzHXsQ*IXU&6 z@BQ(EJ6|3h?T>l~Wa#BF2@bIq)$`bhEqF&}dTw^@(xs)7CzbC&>FBt@M=OeAacOyO zX?bgFb9i)M6n7P?Zxvcr@q5`!m@My1Ow2DXbh=%wRS^;lj9dqiQOASor>}BqRH=Sh z^@q-u6|h=ewB|~yVc&l8{(CDctMl^<6LWJxsYFL_Mp!VO>$ww)U;pkOZ|{0dh-%PR zLU0BHJm;Q0dHM{E2?>tUBJu%KmQ61#+<5ElGiT4Xx*cw1Kc1LG;=BTL71Hu1b}w*H`DJmra9r@DN9Sfcd~OG5lP{?W6g8K z`$gz;tSA{DJTmi2-no-=evEx4gAm&CAOREzyTA?2lM|JaGoYx+ycFutsI9W~MPr~H zVxoe?w@8YPD&cL_-j=GZCLfQj)Z)@C%QDY1$SdKH1?4GiJZVH6)G{&>DKa__YsA|y zulUtqb`55|bjpH_3x(q(a(OcD^`n#xK%3&PkmrzGf`PmqJ_u2>Vs4yvL<8mX6f!Z+ zK_*Ixl!>9F2#mQYZ3)W-sPe2e7{yy~L*Q!k6d;XKXwU?ht2DwL8liRr_;&C(GCeUn z^XAvSeXzUt;O@;l#}-Ag&#)p~J{k$+5&7>a@{8AR{OMo(hk;M8`8L9hhNlAoR1LYv zW_RL`fBa+X?B}0+WGuinAw@&S0K*%gjTwy{>hkGUyM6J><;4>xTFs^ks*lDRF^M60 z1GQT~>#FRiEC-{(a5N-w!ZgGPx8K{}yZz}$lQYw=ef{gUXyu7;K2<0apjf%8IoZAO z^>^0JU-X(_ID&{@M_sSBp6h@a`tPb|)CS$&2Rn!s6TC`lG6E$&N>Iw{zegWO2vvk^X^gw z0+j^f1Z#5;852mFC_@ejcRAtJ+QM)Z^YKLbewhZ{U} zwz8QqRmcNpJUb-bF3PpA#-07;Xe+SHBWC=-CNOu{QBMX3yV!HUNRXbJ)JLC>y?d8D z1X(0<;4+q;u0;dDLBb=PWy~>jNaiS(l+r2Au?{%RV2E;hBrEfouzsa3AeO2!{0I7_ zhUU9&9yuMzs&AZgmr8Xkw&<{n4xB>~4`F~uGaN#29S%Ra_LM7<&p@rK)2sto!{~-b zbd2YQT!8V&CDudH4Dsw}-X=jXfKx?$Ov9JjS{)fpe8l17)~DM70~%H+s-PsG1TQ#Z zXdoSeAA_7%g-MNA%xS3%IzEF~n#ZVUrTb4SH@h%%{jJwK)7_=Jryt+DyZiFhs5gKy z3Ir@esUoxud8<7;Gks!Z<@y_Mteiemp~2>YW$mz2s$W;7b6K--=KRIoo!w7Iql4|; zPK6m-brE53lmrq#Kp_712tn%l(gczT}*m~P-`8?1ell$c*YS9ts zuYHId)hvRCNVnr6fsUGVnnI#$!s|h-hkwzJ^AOyp!l&Y3|;_$qXUXu8@jB8uQ-iq?X^DW1t+V z^z>!IO2>AxSb&u^vJRi94?cYG<(E6JUJZ_Vqkg{{m9R1a(D%i|-R|`K z{L1N57cXC)Us`H(S`}6KXU2E?#p)Fwp!l09tsM*p3n!MYz469i(7%7@%Y(h$axlab z3&=v6r;Vw$CeKZ4Vq$ge?1igWI};OmsH_DgAzl?B4#_MUe_#iB)=g0q%~r!JCS_FJ z>|AOK{CAIr!`{)+;HcN^daa%e+%6z5Qo3BQZgC&ACnqo7cx`feu4qj@`0}%Z?N?R5 z=UeASzuRA+ndL>JQM8)V^K)-~`{3nd;uhsD@W+Li4Km;Z8CA0Wi`-%IC1;p ztS3IX=i<_%QO_A@@1Shd0@5lP6~&90MA-<}A+x}=nP?>_ey5u!HaoM(K`)%nWrwwz z^5D?Y+L)-(B5g~|y+xFpocHwnh$mF7dVozUX_WCt*muKth;slc`gN?$8qh$L8c7j8 zthc0`l2etGC93Tg*5LfA7L0%lNQMRkEsjEv&`lzP%Du8GY3#&3OH5Aq&s=bjKs=fk zP#hP&8Dy%^i!rtIaUuqaZVJAKC@M+^>{Te3DnO`p;4EpmUd6a#Wv-$WlVBh?^k@XT z9n4LwYa7s_YWXF+h>h8Q$~(H_mXUNNd4b}ph1?OjGmgiq(P%E6SpLz!|MTtbZ#{eb zW0Lw5`Z;J%PMp7T<@}|Ki%UxxO&HOFnO+R8 z20$WVPlksr8V%1%@}q6o&8`^;_z#aLa z!JR8#+`9SX!GqncP22C;a^%zOo-&_zC#M#dmrkBuU0qvSJ-?PW8v&{caw#e{bpe?y z-mucxi;Q&42FuuvJx#<*10t5^xiCOVQZvAs;PDc+6cir;TfYRxDk!N{(0Cbz)A$>q zHVQ>9Q)e83iXffj;){KM5gQ2*IAUe-I+}BoN^{+4j2y-i)M5XEOjBk!laIPR)GJ5F zSXi-j4x9+XTM~eNOAkiT6ja?iDiV$xN}3c-JaDr=R`-PG&0v=xPyS^vs0%3M~$j|Ew&?;rSFF-;Xi*v3=lRt>jW$-0Q^gjX5e+x9~%H zGSvlq*zNofQG>W2d#y9`tpgp)6 zSwLoE>2laHJ{1u(Og(ERYc?-lxwdp-<;C-j=Nr%VcXs>zUhn8=hyj6awOXxqyW8zf z&(5A)U7ekuYfpB)9EEjxh%aDX1dGEkRh-We=WNkzPE1YtrU=ebk#REPFv8u5?)3C@ zquH!%1-h6S!Ci58uxkcNoB|iJBU~1%4%y8|#Zu@ z_GH?y$e}c+=9+3T@)SxVK5CtyX&`A$1_XSj0|mhnU&vyK0EMq#kwmHi2y|J;(T{LO zd^^)tvsL7UZQBq$K|!Gl%8_2~8wSNvxC>f4d3cf10O7tEdV;)jfV}d&J2ly86`je> z;_}j`qKHnoaL<`^D|MU~1pw-9(j0A+}B!4L(Vu z)tsK2o0(rY*x9k8QaM-S!T6A*Xsn(&x4e4VX^O0=9fXUGIUObM0erF<;s-wX$#T<~ z=;Y13J3ToXj>_Svs>&d)syrc*kHONvBn<8$&*ttH!zM2-R zGAwDpTPb{nB}0TwML2qhU;%Gk&hcnIN@EE(feAv00^CqJ2y{pIX6S{9J^S!F$rv-8 znhy!k>Zt{1wfTzMo3#Jn;Guo$pjT# z(^-lD8S7=sCr;1m`bk@hD+%X;(Tk-|JktbO#9DJnHU$SiGlq1hjdWmKJZr(Z;CtZN zjd5;Nd-Wm*Q68Q8?!*s@92EM4W649LqRMoW=oJCIRsH{!L0G}NnO1QtMP`gx1woSk zN0w#HW-HG#a0o!BT4V1?&TR!#VL}dB6%*NHcXAS#10HP
fTKs##Z0A7Lba~!0b z5$ECeM>33q!ea;x^1PUuo;i2v>gS(+(kl-%Qs7)%R(a#(*|oKcSLPO%LJLb{M8-%F z0*nzY)gA|Glp(H{gJ&;P0a$BU6bLE8)S`tq0$M~IHHZjh2#PWYndJ7^RT|qz!tLNm zlspbYicEq45iReyxF&dY7JeWjjhAH^OR=%>f>AgcQ@qkh$X%r(IU-aLLb?{#C9>eK z;+J{Bn!^npmE*8v)px?6N7oW!4W}3+$A~T~_cg<7Sd*L_n(XQ!i;86k#P*Sb&lDUG z1*4TlFy6820v6pePRSxJJ`73%kbu* zAqGt-!≺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 N002ovPDHLkV1mm^0Pz3- literal 20998 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 MPgg&ebxsLQ025IeI{*Lx diff --git a/web/icons/favicon.png b/web/icons/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..66a69cb1850861f675e7ae3e8a650aca116a62a1 GIT binary patch literal 1091 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|T2doC(|mmy zw18|523AHP24;{FAY@>aVqgWc85q16rQz%#Mh&PMCI*J~Oa>OHnkXO*0v4nJa0`PlBg3pY5xV%QuQiw3qZOUY$~jP%-qzHM1_jnoV;SI3R@+x3M(KRB&@Hb09I0xZL1XF8=&Bv zUzDm~re~mMpk&9TprBw=l#*r@P?Wt5Z@Sn2DRmzV368|&p4rRy77T3YHG z80i}s=>k>g7FXt#Bv$C=6)QswftllyTAW;zSx}OhpQivaH!&%{w8U0P31kr*K-^i9 znTD__uNdkrpa=CqGWv#k2KsQbfm&@qqE`MznW;dVLFU^T+JIG}h(YbK(Fa+MV_M+)g&;&y_#OFZ|70 zz5o9Fm$%=ly?(#*`LpDY%?_OxU+%l~{{4H6>8E$Ztq-saUF>0E%4EHvgLSSS`|rPU zx8I6gekt;>K;mMCNT-Wa!J3OEzSk~waW-jgznF30VS&Q@^UBjtA51V%nCo}=@y7*G zYrS|69x-rXj2G)>jan;~V>Y{F&e^mF=bsiSif|oFF*=yE@xkNA&L^gF1#XC18?gFn zfR5NiAGM3Gzp@DMunBg$1gs1RSbtrx`{+CsuhvE*zvaSTs`hTkHcUP~tlT+HYzw3~l3+{q^3 zS>)QV8E4ZJy_W`kTF+%U?fUDf7mq#ODBsqj zJMQKg&NQ8Vn$>PTf1|^LY?h{zN0Nh{|NHihZTDThERM7vf9rP2s{|$_%|CuZ{N9eV z&6;yF;}!-881(0uNG-hozFYo_hwS6eYO7cT-I6KFK0dha)#IPxebx009 - - + - + - + - + - ht_dashboard + Headlines Toolkit + + + - - - +
+
+
+ + + + diff --git a/web/manifest.json b/web/manifest.json index d0e3fb66..d2a5c5a8 100644 --- a/web/manifest.json +++ b/web/manifest.json @@ -1,11 +1,11 @@ { - "name": "ht_dashboard", - "short_name": "ht_dashboard", + "name": "Headlines Toolkit", + "short_name": "Headlines Toolkit", "start_url": ".", "display": "standalone", - "background_color": "#0175C2", - "theme_color": "#0175C2", - "description": "A new Flutter project.", + "background_color": "#FFFFFF", + "theme_color": "#FFFFFF", + "description": "Develop News Headlines Apps Rapidly & Reliably.", "orientation": "portrait-primary", "prefer_related_applications": false, "icons": [ @@ -32,4 +32,4 @@ "purpose": "maskable" } ] -} +} \ No newline at end of file From 232fb342b6c3c945795ed168aa8b399ed459cd29 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:18:22 +0100 Subject: [PATCH 02/25] refactor: Simplify main.dart and remove DevicePreview --- lib/main.dart | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 268cbdc5..b90e2f03 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,3 @@ -import 'dart:js_interop'; - -import 'package:device_preview/device_preview.dart'; -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:ht_dashboard/app/config/config.dart'; import 'package:ht_dashboard/bootstrap.dart'; @@ -9,9 +5,6 @@ import 'package:ht_dashboard/bootstrap.dart'; // Define the current application environment (production/development/demo). const AppEnvironment appEnvironment = AppEnvironment.demo; -@JS('removeSplashFromWeb') -external void removeSplashFromWeb(); - void main() async { final appConfig = switch (appEnvironment) { AppEnvironment.production => AppConfig.production(), @@ -21,20 +14,5 @@ void main() async { final appWidget = await bootstrap(appConfig, appEnvironment); - // Only remove the splash screen on web after the app is ready. - if (kIsWeb) { - removeSplashFromWeb(); - } - - if (appConfig.environment == AppEnvironment.demo) { - runApp( - DevicePreview( - builder: (context) => appWidget, - tools: const [DeviceSection()], - backgroundColor: Colors.black87, - ), - ); - } else { - runApp(appWidget); - } + runApp(appWidget); } From 659b43b6ec9ee2e776110caba6fd442bbd1b3c05 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:18:30 +0100 Subject: [PATCH 03/25] refactor: streamline data client instantiation - Removed redundant comments - Clarified client logic --- lib/bootstrap.dart | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/bootstrap.dart b/lib/bootstrap.dart index 0a56d908..ea8a2f14 100644 --- a/lib/bootstrap.dart +++ b/lib/bootstrap.dart @@ -42,7 +42,6 @@ Future bootstrap( storageService: kvStorage, ); } else { - // For production and development environments, an HTTP client is needed. httpClient = HtHttpClient( baseUrl: appConfig.baseUrl, tokenProvider: () => authenticationRepository.getAuthToken(), @@ -55,7 +54,6 @@ Future bootstrap( ); } - // Conditional data client instantiation based on environment HtDataClient headlinesClient; HtDataClient categoriesClient; HtDataClient countriesClient; @@ -142,7 +140,6 @@ Future bootstrap( toJson: (config) => config.toJson(), ); } else { - // Default to API clients for production headlinesClient = HtDataApi( httpClient: httpClient!, modelName: 'headline', From 8791c5ac221dd49b3fe82decc8778c57fc1b22ac Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:18:42 +0100 Subject: [PATCH 04/25] refactor: simplify AppBloc auth state handling - Removed unused settings logic - Streamlined status updates - Removed demo data migration --- lib/app/bloc/app_bloc.dart | 392 +----------------------------------- lib/app/bloc/app_event.dart | 90 --------- lib/app/bloc/app_state.dart | 75 +------ 3 files changed, 11 insertions(+), 546 deletions(-) diff --git a/lib/app/bloc/app_bloc.dart b/lib/app/bloc/app_bloc.dart index d256a55b..ad5d2b74 100644 --- a/lib/app/bloc/app_bloc.dart +++ b/lib/app/bloc/app_bloc.dart @@ -2,12 +2,9 @@ import 'dart:async'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; -import 'package:flex_color_scheme/flex_color_scheme.dart'; -import 'package:flutter/material.dart'; import 'package:ht_auth_repository/ht_auth_repository.dart'; import 'package:ht_data_repository/ht_data_repository.dart'; -import 'package:ht_main/app/config/config.dart' as local_config; -import 'package:ht_main/shared/services/demo_data_migration_service.dart'; +import 'package:ht_dashboard/app/config/config.dart' as local_config; import 'package:ht_shared/ht_shared.dart'; part 'app_event.dart'; @@ -19,30 +16,20 @@ class AppBloc extends Bloc { required HtDataRepository userAppSettingsRepository, required HtDataRepository appConfigRepository, required local_config.AppEnvironment environment, - this.demoDataMigrationService, }) : _authenticationRepository = authenticationRepository, _userAppSettingsRepository = userAppSettingsRepository, _appConfigRepository = appConfigRepository, _environment = environment, super( - AppState( - settings: const UserAppSettings(id: 'default'), - selectedBottomNavigationIndex: 0, - appConfig: null, - environment: environment, + const AppState( + user: null, + status: AppStatus.initial, + environment: null, ), ) { on(_onAppUserChanged); - on(_onAppSettingsRefreshed); - on(_onAppConfigFetchRequested); - on(_onAppUserAccountActionShown); on(_onLogoutRequested); - on(_onThemeModeChanged); - on(_onFlexSchemeChanged); - on(_onFontFamilyChanged); - on(_onAppTextScaleFactorChanged); - // Listen directly to the auth state changes stream _userSubscription = _authenticationRepository.authStateChanges.listen( (User? user) => add(AppUserChanged(user)), ); @@ -52,7 +39,6 @@ class AppBloc extends Bloc { final HtDataRepository _userAppSettingsRepository; final HtDataRepository _appConfigRepository; final local_config.AppEnvironment _environment; - final DemoDataMigrationService? demoDataMigrationService; late final StreamSubscription _userSubscription; /// Handles user changes and loads initial settings once user is available. @@ -62,392 +48,28 @@ class AppBloc extends Bloc { ) async { // Determine the AppStatus based on the user object and its role final AppStatus status; - final oldUser = state.user; switch (event.user?.role) { case null: status = AppStatus.unauthenticated; case UserRole.standardUser: status = AppStatus.authenticated; - case UserRole.guestUser: // Explicitly map guestUser to anonymous - status = AppStatus.anonymous; // ignore: no_default_cases default: // Fallback for any other roles not explicitly handled - status = AppStatus.anonymous; + status = AppStatus.unauthenticated; // Treat other roles as unauthenticated for dashboard } - // Emit user and status update first + // Emit user and status update emit(state.copyWith(status: status, user: event.user)); - - if (event.user != null) { - // User is present (authenticated or anonymous) - add(const AppSettingsRefreshed()); - add(const AppConfigFetchRequested()); - - // Check for anonymous to authenticated transition for data migration - if (oldUser != null && - oldUser.role == UserRole.guestUser && - event.user!.role == UserRole.standardUser) { - print( - '[AppBloc] Anonymous user ${oldUser.id} transitioned to ' - 'authenticated user ${event.user!.id}. Attempting data migration.', - ); - // This block handles data migration specifically for the demo environment. - // In production/development, this logic is typically handled by the backend. - if (demoDataMigrationService != null && - _environment == local_config.AppEnvironment.demo) { - print( - '[AppBloc] Demo mode: Awaiting data migration from anonymous ' - 'user ${oldUser.id} to authenticated user ${event.user!.id}.', - ); - // Await the migration to ensure it completes before refreshing settings. - await demoDataMigrationService!.migrateAnonymousData( - oldUserId: oldUser.id, - newUserId: event.user!.id, - ); - // After successful migration, explicitly refresh app settings - // to load the newly migrated data into the AppBloc's state. - add(const AppSettingsRefreshed()); - print( - '[AppBloc] Demo mode: Data migration completed and settings ' - 'refresh triggered for user ${event.user!.id}.', - ); - } else { - print( - '[AppBloc] DemoDataMigrationService not available or not in demo ' - 'environment. Skipping client-side data migration.', - ); - } - } - } else { - // User is null (unauthenticated or logged out) - emit( - state.copyWith( - appConfig: null, - clearAppConfig: true, - status: AppStatus.unauthenticated, - ), - ); - } - } - - /// Handles refreshing/loading app settings (theme, font). - Future _onAppSettingsRefreshed( - AppSettingsRefreshed event, - Emitter emit, - ) async { - // Avoid loading if user is unauthenticated (shouldn't happen if logic is correct) - if (state.status == AppStatus.unauthenticated || state.user == null) { - return; - } - - try { - // Fetch relevant settings using the new generic repository - // Use the current user's ID to fetch user-specific settings - final userAppSettings = await _userAppSettingsRepository.read( - id: state.user!.id, - userId: state.user!.id, - ); - - // Map settings from UserAppSettings to AppState properties - final newThemeMode = _mapAppBaseTheme( - userAppSettings.displaySettings.baseTheme, - ); - final newFlexScheme = _mapAppAccentTheme( - userAppSettings.displaySettings.accentTheme, - ); - final newFontFamily = _mapFontFamily( - userAppSettings.displaySettings.fontFamily, - ); - final newAppTextScaleFactor = _mapTextScaleFactor( - userAppSettings.displaySettings.textScaleFactor, - ); - // Map language code to Locale - final newLocale = Locale(userAppSettings.language); - - print( - '[AppBloc] _onAppSettingsRefreshed: userAppSettings.fontFamily: ${userAppSettings.displaySettings.fontFamily}', - ); - print( - '[AppBloc] _onAppSettingsRefreshed: userAppSettings.fontWeight: ${userAppSettings.displaySettings.fontWeight}', - ); - print( - '[AppBloc] _onAppSettingsRefreshed: newFontFamily mapped to: $newFontFamily', - ); - - emit( - state.copyWith( - themeMode: newThemeMode, - flexScheme: newFlexScheme, - appTextScaleFactor: newAppTextScaleFactor, - fontFamily: newFontFamily, - settings: userAppSettings, - locale: newLocale, - ), - ); - } on NotFoundException { - // User settings not found (e.g., first time user), use defaults - print('User app settings not found, using defaults.'); - // Emit state with default settings - emit( - state.copyWith( - themeMode: ThemeMode.system, - flexScheme: FlexScheme.material, - appTextScaleFactor: AppTextScaleFactor.medium, - locale: const Locale('en'), - settings: UserAppSettings(id: state.user!.id), - ), - ); - } catch (e) { - // Handle other potential errors during settings fetch - // Optionally emit a failure state or log the error - print('Error loading user app settings in AppBloc: $e'); - // Keep the existing theme/font state on error, but ensure settings is not null - emit(state.copyWith(settings: state.settings)); - } } - // Add handlers for settings changes (dispatching events from UI) void _onLogoutRequested(AppLogoutRequested event, Emitter emit) { unawaited(_authenticationRepository.signOut()); } - void _onThemeModeChanged(AppThemeModeChanged event, Emitter emit) { - // Update settings and emit new state - final updatedSettings = state.settings.copyWith( - displaySettings: state.settings.displaySettings.copyWith( - baseTheme: event.themeMode == ThemeMode.light - ? AppBaseTheme.light - : (event.themeMode == ThemeMode.dark - ? AppBaseTheme.dark - : AppBaseTheme.system), - ), - ); - emit(state.copyWith(settings: updatedSettings, themeMode: event.themeMode)); - // Optionally save settings to repository here - // unawaited(_userAppSettingsRepository.update(id: updatedSettings.id, item: updatedSettings)); - } - - void _onFlexSchemeChanged( - AppFlexSchemeChanged event, - Emitter emit, - ) { - // Update settings and emit new state - final updatedSettings = state.settings.copyWith( - displaySettings: state.settings.displaySettings.copyWith( - accentTheme: event.flexScheme == FlexScheme.blue - ? AppAccentTheme.defaultBlue - : (event.flexScheme == FlexScheme.red - ? AppAccentTheme.newsRed - : AppAccentTheme.graphiteGray), - ), - ); - emit( - state.copyWith(settings: updatedSettings, flexScheme: event.flexScheme), - ); - // Optionally save settings to repository here - // unawaited(_userAppSettingsRepository.update(id: updatedSettings.id, item: updatedSettings)); - } - - void _onFontFamilyChanged( - AppFontFamilyChanged event, - Emitter emit, - ) { - // Update settings and emit new state - final updatedSettings = state.settings.copyWith( - displaySettings: state.settings.displaySettings.copyWith( - fontFamily: event.fontFamily ?? 'SystemDefault', - ), - ); - emit( - state.copyWith(settings: updatedSettings, fontFamily: event.fontFamily), - ); - // Optionally save settings to repository here - // unawaited(_userAppSettingsRepository.update(id: updatedSettings.id, item: updatedSettings)); - } - - void _onAppTextScaleFactorChanged( - AppTextScaleFactorChanged event, - Emitter emit, - ) { - // Update settings and emit new state - final updatedSettings = state.settings.copyWith( - displaySettings: state.settings.displaySettings.copyWith( - textScaleFactor: event.appTextScaleFactor, - ), - ); - emit( - state.copyWith( - settings: updatedSettings, - appTextScaleFactor: event.appTextScaleFactor, - ), - ); - // Optionally save settings to repository here - // unawaited(_userAppSettingsRepository.update(id: updatedSettings.id, item: updatedSettings)); - } - - // --- Settings Mapping Helpers --- - - ThemeMode _mapAppBaseTheme(AppBaseTheme mode) { - switch (mode) { - case AppBaseTheme.light: - return ThemeMode.light; - case AppBaseTheme.dark: - return ThemeMode.dark; - case AppBaseTheme.system: - return ThemeMode.system; - } - } - - FlexScheme _mapAppAccentTheme(AppAccentTheme name) { - switch (name) { - case AppAccentTheme.defaultBlue: - return FlexScheme.blue; - case AppAccentTheme.newsRed: - return FlexScheme.red; - case AppAccentTheme.graphiteGray: - return FlexScheme.material; - } - } - - String? _mapFontFamily(String fontFamilyString) { - // If the input is 'SystemDefault', return null so FlexColorScheme uses its default. - if (fontFamilyString == 'SystemDefault') { - print( - '[AppBloc] _mapFontFamily: Input is SystemDefault, returning null.', - ); - return null; - } - // Otherwise, return the font family string directly. - // The GoogleFonts.xyz().fontFamily getters often return strings like "Roboto-Regular", - // but FlexColorScheme's fontFamily parameter or GoogleFonts.xyzTextTheme() expect simple names. - print( - '[AppBloc] _mapFontFamily: Input is $fontFamilyString, returning as is.', - ); - return fontFamilyString; - } - - // Map AppTextScaleFactor to AppTextScaleFactor (no change needed) - AppTextScaleFactor _mapTextScaleFactor(AppTextScaleFactor factor) { - return factor; - } - @override Future close() { _userSubscription.cancel(); return super.close(); } - - Future _onAppConfigFetchRequested( - AppConfigFetchRequested event, - Emitter emit, - ) async { - // Guard: Only fetch if a user (authenticated or anonymous) is present. - if (state.user == null) { - print( - '[AppBloc] User is null. Skipping AppConfig fetch because it requires authentication.', - ); - // If AppConfig was somehow present without a user, clear it. - // And ensure status isn't stuck on configFetching if this event was dispatched erroneously. - if (state.appConfig != null || state.status == AppStatus.configFetching) { - emit( - state.copyWith( - appConfig: null, - clearAppConfig: true, - status: AppStatus.unauthenticated, - ), - ); - } - return; - } - - // Avoid refetching if already loaded for the current user session, unless explicitly trying to recover from a failed state. - if (state.appConfig != null && - state.status != AppStatus.configFetchFailed) { - print( - '[AppBloc] AppConfig already loaded for user ${state.user?.id} and not in a failed state. Skipping fetch.', - ); - return; - } - - print( - '[AppBloc] Attempting to fetch AppConfig for user: ${state.user!.id}...', - ); - emit( - state.copyWith( - status: AppStatus.configFetching, - appConfig: null, - clearAppConfig: true, - ), - ); - - try { - final appConfig = await _appConfigRepository.read(id: 'app_config'); - print( - '[AppBloc] AppConfig fetched successfully. ID: ${appConfig.id} for user: ${state.user!.id}', - ); - - // Determine the correct status based on the existing user's role. - // This ensures that successfully fetching config doesn't revert auth status to 'initial'. - final newStatusBasedOnUser = state.user!.role == UserRole.standardUser - ? AppStatus.authenticated - : AppStatus.anonymous; - emit(state.copyWith(appConfig: appConfig, status: newStatusBasedOnUser)); - } on HtHttpException catch (e) { - print( - '[AppBloc] Failed to fetch AppConfig (HtHttpException) for user ${state.user?.id}: ${e.runtimeType} - ${e.message}', - ); - emit( - state.copyWith( - status: AppStatus.configFetchFailed, - appConfig: null, - clearAppConfig: true, - ), - ); - } catch (e, s) { - print( - '[AppBloc] Unexpected error fetching AppConfig for user ${state.user?.id}: $e', - ); - print('[AppBloc] Stacktrace: $s'); - emit( - state.copyWith( - status: AppStatus.configFetchFailed, - appConfig: null, - clearAppConfig: true, - ), - ); - } - } - - Future _onAppUserAccountActionShown( - AppUserAccountActionShown event, - Emitter emit, - ) async { - if (state.user != null && state.user!.id == event.userId) { - final now = DateTime.now(); - // Optimistically update the local user state. - // Corrected parameter name for copyWith as per User model in models.txt - final updatedUser = state.user!.copyWith(lastEngagementShownAt: now); - - // Emit the change so UI can react if needed, and other BLoCs get the update. - // This also ensures that FeedInjectorService will see the updated timestamp immediately. - emit(state.copyWith(user: updatedUser)); - - // TODO: Persist this change to the backend. - // This would typically involve calling a method on a repository, e.g.: - // try { - // await _authenticationRepository.updateUserLastActionTimestamp(event.userId, now); - // // If the repository's authStateChanges stream doesn't automatically emit - // // the updated user, you might need to re-fetch or handle it here. - // // For now, we've optimistically updated the local state. - // } catch (e) { - // // Handle error, potentially revert optimistic update or show an error. - // print('Failed to update lastAccountActionShownAt on backend: $e'); - // // Optionally revert: emit(state.copyWith(user: state.user)); - // } - print( - '[AppBloc] User ${event.userId} AccountAction shown. Last shown timestamp updated locally to $now. Backend update pending.', - ); - } - } } diff --git a/lib/app/bloc/app_event.dart b/lib/app/bloc/app_event.dart index 46997225..26697696 100644 --- a/lib/app/bloc/app_event.dart +++ b/lib/app/bloc/app_event.dart @@ -7,13 +7,6 @@ abstract class AppEvent extends Equatable { List get props => []; } -@Deprecated('Use SettingsBloc events instead') -class AppThemeChanged extends AppEvent { - // - // ignore: deprecated_consistency - const AppThemeChanged(); -} - class AppUserChanged extends AppEvent { const AppUserChanged(this.user); @@ -23,15 +16,6 @@ class AppUserChanged extends AppEvent { List get props => [user]; } -/// {@template app_settings_refreshed} -/// Internal event to trigger reloading of settings within AppBloc. -/// Added when user changes or upon explicit request. -/// {@endtemplate} -class AppSettingsRefreshed extends AppEvent { - /// {@macro app_settings_refreshed} - const AppSettingsRefreshed(); -} - /// {@template app_logout_requested} /// Event to request user logout. /// {@endtemplate} @@ -39,77 +23,3 @@ class AppLogoutRequested extends AppEvent { /// {@macro app_logout_requested} const AppLogoutRequested(); } - -/// {@template app_theme_mode_changed} -/// Event to change the application's theme mode. -/// {@endtemplate} -class AppThemeModeChanged extends AppEvent { - /// {@macro app_theme_mode_changed} - const AppThemeModeChanged(this.themeMode); - - final ThemeMode themeMode; - - @override - List get props => [themeMode]; -} - -/// {@template app_flex_scheme_changed} -/// Event to change the application's FlexColorScheme. -/// {@endtemplate} -class AppFlexSchemeChanged extends AppEvent { - /// {@macro app_flex_scheme_changed} - const AppFlexSchemeChanged(this.flexScheme); - - final FlexScheme flexScheme; - - @override - List get props => [flexScheme]; -} - -/// {@template app_font_family_changed} -/// Event to change the application's font family. -/// {@endtemplate} -class AppFontFamilyChanged extends AppEvent { - /// {@macro app_font_family_changed} - const AppFontFamilyChanged(this.fontFamily); - - final String? fontFamily; - - @override - List get props => [fontFamily]; -} - -/// {@template app_text_scale_factor_changed} -/// Event to change the application's text scale factor. -/// {@endtemplate} -class AppTextScaleFactorChanged extends AppEvent { - /// {@macro app_text_scale_factor_changed} - const AppTextScaleFactorChanged(this.appTextScaleFactor); - - final AppTextScaleFactor appTextScaleFactor; - - @override - List get props => [appTextScaleFactor]; -} - -/// {@template app_config_fetch_requested} -/// Event to trigger fetching of the global AppConfig. -/// {@endtemplate} -class AppConfigFetchRequested extends AppEvent { - /// {@macro app_config_fetch_requested} - const AppConfigFetchRequested(); -} - -/// {@template app_user_account_action_shown} -/// Event triggered when an AccountAction has been shown to the user, -/// prompting an update to their `lastAccountActionShownAt` timestamp. -/// {@endtemplate} -class AppUserAccountActionShown extends AppEvent { - /// {@macro app_user_account_action_shown} - const AppUserAccountActionShown({required this.userId}); - - final String userId; - - @override - List get props => [userId]; -} diff --git a/lib/app/bloc/app_state.dart b/lib/app/bloc/app_state.dart index ed011a45..04d11c18 100644 --- a/lib/app/bloc/app_state.dart +++ b/lib/app/bloc/app_state.dart @@ -13,110 +13,43 @@ enum AppStatus { /// The user is anonymous (signed in using an anonymous provider). anonymous, - - /// Fetching the essential AppConfig. - configFetching, - - /// Fetching the essential AppConfig failed. - configFetchFailed, } class AppState extends Equatable { /// {@macro app_state} const AppState({ - required this.settings, - required this.selectedBottomNavigationIndex, - this.themeMode = ThemeMode.system, - this.appTextScaleFactor = AppTextScaleFactor.medium, - this.flexScheme = FlexScheme.material, - this.fontFamily, this.status = AppStatus.initial, this.user, - this.locale, - this.appConfig, this.environment, }); - /// The index of the currently selected item in the bottom navigation bar. - final int selectedBottomNavigationIndex; - - /// The overall theme mode (light, dark, system). - final ThemeMode themeMode; - - /// The text scale factor for the app's UI. - final AppTextScaleFactor appTextScaleFactor; - - /// The active color scheme defined by FlexColorScheme. - final FlexScheme flexScheme; - - /// The active font family name (e.g., from Google Fonts). - /// Null uses the default font family defined in the FlexColorScheme theme. - final String? fontFamily; - /// The current authentication status of the application. final AppStatus status; /// The current user details. Null if unauthenticated. final User? user; - /// User-specific application settings. - final UserAppSettings settings; - - /// The current application locale. - final Locale? locale; - - /// The global application configuration (remote config). - final AppConfig? appConfig; - /// The current application environment (e.g., production, development, demo). final local_config.AppEnvironment? environment; /// Creates a copy of the current state with updated values. AppState copyWith({ - int? selectedBottomNavigationIndex, - ThemeMode? themeMode, - FlexScheme? flexScheme, - String? fontFamily, - AppTextScaleFactor? appTextScaleFactor, AppStatus? status, User? user, - UserAppSettings? settings, - Locale? locale, - AppConfig? appConfig, local_config.AppEnvironment? environment, - bool clearFontFamily = false, - bool clearLocale = false, - bool clearAppConfig = false, bool clearEnvironment = false, }) { return AppState( - selectedBottomNavigationIndex: - selectedBottomNavigationIndex ?? this.selectedBottomNavigationIndex, - themeMode: themeMode ?? this.themeMode, - flexScheme: flexScheme ?? this.flexScheme, - fontFamily: clearFontFamily ? null : fontFamily ?? this.fontFamily, - appTextScaleFactor: appTextScaleFactor ?? this.appTextScaleFactor, status: status ?? this.status, user: user ?? this.user, - settings: settings ?? this.settings, - locale: clearLocale ? null : locale ?? this.locale, - appConfig: clearAppConfig ? null : appConfig ?? this.appConfig, environment: clearEnvironment ? null : environment ?? this.environment, ); } @override List get props => [ - selectedBottomNavigationIndex, - themeMode, - flexScheme, - fontFamily, - appTextScaleFactor, - status, - user, - settings, - locale, - appConfig, - environment, - ]; + status, + user, + environment, + ]; } From 9bed72f1dba7afe61851a4074e8d8eb55cfb9c26 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:18:53 +0100 Subject: [PATCH 05/25] refactor(app): simplify AppShell widget - Reduced destinations to one - Removed unused l10n - Cleaned up comments --- lib/app/view/app_shell.dart | 42 ++++--------------------------------- 1 file changed, 4 insertions(+), 38 deletions(-) diff --git a/lib/app/view/app_shell.dart b/lib/app/view/app_shell.dart index 08ad06a7..fff3f136 100644 --- a/lib/app/view/app_shell.dart +++ b/lib/app/view/app_shell.dart @@ -1,10 +1,6 @@ -// -// ignore_for_file: lines_longer_than_80_chars - import 'package:flutter/material.dart'; import 'package:flutter_adaptive_scaffold/flutter_adaptive_scaffold.dart'; import 'package:go_router/go_router.dart'; -import 'package:ht_main/l10n/l10n.dart'; /// A responsive scaffold shell for the main application sections. /// @@ -21,56 +17,26 @@ class AppShell extends StatelessWidget { /// navigators in a stateful way. final StatefulNavigationShell navigationShell; - // Corrected callback signature if needed, though the original looks standard. - // Let's ensure the AdaptiveScaffold call uses the correct signature. - // The primary issue was likely the missing import. - void _goBranch(int index) { - // Navigate to the corresponding branch using the index. - // The `saveState` parameter is crucial for preserving the state - // of each navigation branch (e.g., scroll position). navigationShell.goBranch( index, - // Navigate to the initial location of the branch if the user taps - // the same active destination again. Otherwise, defaults to false. initialLocation: index == navigationShell.currentIndex, ); } @override Widget build(BuildContext context) { - final l10n = context.l10n; - return AdaptiveScaffold( useDrawer: false, - // Use the index from the navigationShell to sync the selected destination. selectedIndex: navigationShell.currentIndex, - // Callback when a destination is selected. - // Ensure the parameter type is explicitly int. onSelectedIndexChange: _goBranch, - // Define the navigation destinations. - destinations: [ - NavigationDestination( - // Make const - icon: const Icon(Icons.article_outlined), - selectedIcon: const Icon(Icons.article), - label: l10n.bottomNavFeedLabel, - ), - NavigationDestination( - // Make const - icon: const Icon(Icons.search_outlined), - selectedIcon: const Icon(Icons.search), - label: l10n.bottomNavSearchLabel, - ), + destinations: const [ NavigationDestination( - // Make const - icon: const Icon(Icons.account_circle_outlined), - selectedIcon: const Icon(Icons.account_circle), - label: l10n.bottomNavAccountLabel, + icon: Icon(Icons.dashboard_outlined), + selectedIcon: Icon(Icons.dashboard), + label: 'Dashboard', ), ], - // The body displays the widget tree for the currently selected branch. - // The [NavigationShell] widget handles building the appropriate page. body: (_) => navigationShell, ); } From 8f0db75c762ef83220edb3b419bf9c06847d91a1 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:18:58 +0100 Subject: [PATCH 06/25] refactor: migrate to ht_dashboard package - Updated package imports - Removed unused repositories - Simplified app initialization --- lib/app/view/app.dart | 178 +++--------------------------------------- 1 file changed, 10 insertions(+), 168 deletions(-) diff --git a/lib/app/view/app.dart b/lib/app/view/app.dart index d3adeb7e..f8d3b81d 100644 --- a/lib/app/view/app.dart +++ b/lib/app/view/app.dart @@ -1,23 +1,18 @@ // // ignore_for_file: deprecated_member_use -import 'package:flex_color_scheme/flex_color_scheme.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:go_router/go_router.dart'; import 'package:ht_auth_repository/ht_auth_repository.dart'; import 'package:ht_data_repository/ht_data_repository.dart'; import 'package:ht_kv_storage_service/ht_kv_storage_service.dart'; -import 'package:ht_main/app/bloc/app_bloc.dart'; -import 'package:ht_main/app/config/app_environment.dart'; -import 'package:ht_main/authentication/bloc/authentication_bloc.dart'; -import 'package:ht_main/l10n/app_localizations.dart'; -import 'package:ht_main/l10n/l10n.dart'; -import 'package:ht_main/router/router.dart'; -import 'package:ht_main/shared/services/demo_data_migration_service.dart'; -import 'package:ht_main/shared/theme/app_theme.dart'; -import 'package:ht_main/shared/widgets/failure_state_widget.dart'; -import 'package:ht_main/shared/widgets/loading_state_widget.dart'; +import 'package:ht_dashboard/app/bloc/app_bloc.dart'; +import 'package:ht_dashboard/app/config/app_environment.dart'; +import 'package:ht_dashboard/authentication/bloc/authentication_bloc.dart'; +import 'package:ht_dashboard/l10n/app_localizations.dart'; +import 'package:ht_dashboard/l10n/l10n.dart'; +import 'package:ht_dashboard/router/router.dart'; import 'package:ht_shared/ht_shared.dart'; class App extends StatelessWidget { @@ -29,11 +24,10 @@ class App extends StatelessWidget { required HtDataRepository htSourcesRepository, required HtDataRepository htUserAppSettingsRepository, required HtDataRepository - htUserContentPreferencesRepository, + htUserContentPreferencesRepository, required HtDataRepository htAppConfigRepository, required HtKVStorageService kvStorageService, required AppEnvironment environment, - this.demoDataMigrationService, super.key, }) : _htAuthenticationRepository = htAuthenticationRepository, _htHeadlinesRepository = htHeadlinesRepository, @@ -53,11 +47,10 @@ class App extends StatelessWidget { final HtDataRepository _htSourcesRepository; final HtDataRepository _htUserAppSettingsRepository; final HtDataRepository - _htUserContentPreferencesRepository; + _htUserContentPreferencesRepository; final HtDataRepository _htAppConfigRepository; final HtKVStorageService _kvStorageService; final AppEnvironment _environment; - final DemoDataMigrationService? demoDataMigrationService; @override Widget build(BuildContext context) { @@ -78,11 +71,10 @@ class App extends StatelessWidget { BlocProvider( create: (context) => AppBloc( authenticationRepository: context.read(), - userAppSettingsRepository: context - .read>(), + userAppSettingsRepository: + context.read>(), appConfigRepository: context.read>(), environment: _environment, - demoDataMigrationService: demoDataMigrationService, ), ), BlocProvider( @@ -93,14 +85,6 @@ class App extends StatelessWidget { ], child: _AppView( htAuthenticationRepository: _htAuthenticationRepository, - htHeadlinesRepository: _htHeadlinesRepository, - htCategoriesRepository: _htCategoriesRepository, - htCountriesRepository: _htCountriesRepository, - htSourcesRepository: _htSourcesRepository, - htUserAppSettingsRepository: _htUserAppSettingsRepository, - htUserContentPreferencesRepository: - _htUserContentPreferencesRepository, - htAppConfigRepository: _htAppConfigRepository, environment: _environment, ), ), @@ -111,25 +95,10 @@ class App extends StatelessWidget { class _AppView extends StatefulWidget { const _AppView({ required this.htAuthenticationRepository, - required this.htHeadlinesRepository, - required this.htCategoriesRepository, - required this.htCountriesRepository, - required this.htSourcesRepository, - required this.htUserAppSettingsRepository, - required this.htUserContentPreferencesRepository, - required this.htAppConfigRepository, required this.environment, }); final HtAuthRepository htAuthenticationRepository; - final HtDataRepository htHeadlinesRepository; - final HtDataRepository htCategoriesRepository; - final HtDataRepository htCountriesRepository; - final HtDataRepository htSourcesRepository; - final HtDataRepository htUserAppSettingsRepository; - final HtDataRepository - htUserContentPreferencesRepository; - final HtDataRepository htAppConfigRepository; final AppEnvironment environment; @override @@ -138,165 +107,38 @@ class _AppView extends StatefulWidget { class _AppViewState extends State<_AppView> { late final GoRouter _router; - // Standard notifier that GoRouter listens to. late final ValueNotifier _statusNotifier; - // Removed Dynamic Links subscription @override void initState() { super.initState(); final appBloc = context.read(); - // Initialize the notifier with the BLoC's current state _statusNotifier = ValueNotifier(appBloc.state.status); _router = createRouter( authStatusNotifier: _statusNotifier, htAuthenticationRepository: widget.htAuthenticationRepository, - htHeadlinesRepository: widget.htHeadlinesRepository, - htCategoriesRepository: widget.htCategoriesRepository, - htCountriesRepository: widget.htCountriesRepository, - htSourcesRepository: widget.htSourcesRepository, - htUserAppSettingsRepository: widget.htUserAppSettingsRepository, - htUserContentPreferencesRepository: - widget.htUserContentPreferencesRepository, - htAppConfigRepository: widget.htAppConfigRepository, environment: widget.environment, ); - - // Removed Dynamic Link Initialization } @override void dispose() { _statusNotifier.dispose(); - // Removed Dynamic Links subscription cancellation super.dispose(); } - // Removed _initDynamicLinks and _handleDynamicLink methods - @override Widget build(BuildContext context) { - // Wrap the part of the tree that needs to react to AppBloc state changes - // (specifically for updating the ValueNotifier) with a BlocListener. - // The BlocBuilder remains for theme changes. return BlocListener( - // Listen for status changes to update the GoRouter's ValueNotifier listenWhen: (previous, current) => previous.status != current.status, listener: (context, state) { _statusNotifier.value = state.status; }, child: BlocBuilder( - // Rebuild the UI based on AppBloc's state (theme, locale, and critical app statuses) builder: (context, state) { - // Defer l10n access until inside a MaterialApp context - - // Handle critical AppConfig loading states globally - if (state.status == AppStatus.configFetching) { - return MaterialApp( - debugShowCheckedModeBanner: false, - theme: lightTheme( - scheme: FlexScheme.material, - appTextScaleFactor: AppTextScaleFactor.medium, - appFontWeight: AppFontWeight.regular, - fontFamily: null, - ), - darkTheme: darkTheme( - scheme: FlexScheme.material, - appTextScaleFactor: AppTextScaleFactor.medium, - appFontWeight: AppFontWeight.regular, - fontFamily: null, // System default font - ), - themeMode: state - .themeMode, // Still respect light/dark if available from system - localizationsDelegates: AppLocalizations.localizationsDelegates, - supportedLocales: AppLocalizations.supportedLocales, - home: Scaffold( - body: Builder( - // Use Builder to get context under MaterialApp - builder: (innerContext) { - final l10n = innerContext.l10n; - return LoadingStateWidget( - icon: Icons.settings_applications_outlined, - headline: l10n.headlinesFeedLoadingHeadline, - subheadline: l10n.pleaseWait, - ); - }, - ), - ), - ); - } - - if (state.status == AppStatus.configFetchFailed) { - return MaterialApp( - debugShowCheckedModeBanner: false, - theme: lightTheme( - scheme: FlexScheme.material, - appTextScaleFactor: AppTextScaleFactor.medium, - appFontWeight: AppFontWeight.regular, - fontFamily: null, - ), - darkTheme: darkTheme( - scheme: FlexScheme.material, - appTextScaleFactor: AppTextScaleFactor.medium, - appFontWeight: AppFontWeight.regular, - fontFamily: null, - ), - themeMode: state.themeMode, - localizationsDelegates: AppLocalizations.localizationsDelegates, - supportedLocales: AppLocalizations.supportedLocales, - home: Scaffold( - body: Builder( - // Use Builder to get context under MaterialApp - builder: (innerContext) { - final l10n = innerContext.l10n; - return FailureStateWidget( - message: l10n.unknownError, - retryButtonText: 'Retry', - onRetry: () { - // Use outer context for BLoC access - context.read().add( - const AppConfigFetchRequested(), - ); - }, - ); - }, - ), - ), - ); - } - - // If config is loaded (or not in a failed/fetching state for config), proceed with main app UI - // It's safe to access l10n here if needed for print statements, - // as this path implies we are about to build the main MaterialApp.router - // which provides localizations. - // final l10n = context.l10n; - print('[_AppViewState] Building MaterialApp.router'); - print('[_AppViewState] state.fontFamily: ${state.fontFamily}'); - print( - '[_AppViewState] state.settings.displaySettings.fontFamily: ${state.settings.displaySettings.fontFamily}', - ); - print( - '[_AppViewState] state.settings.displaySettings.fontWeight: ${state.settings.displaySettings.fontWeight}', - ); return MaterialApp.router( debugShowCheckedModeBanner: false, - themeMode: state.themeMode, - theme: lightTheme( - scheme: state.flexScheme, - appTextScaleFactor: - state.settings.displaySettings.textScaleFactor, - appFontWeight: state.settings.displaySettings.fontWeight, - fontFamily: state.settings.displaySettings.fontFamily, - ), - darkTheme: darkTheme( - scheme: state.flexScheme, - appTextScaleFactor: - state.settings.displaySettings.textScaleFactor, - appFontWeight: state.settings.displaySettings.fontWeight, - fontFamily: state.settings.displaySettings.fontFamily, - ), routerConfig: _router, - locale: state.locale, localizationsDelegates: AppLocalizations.localizationsDelegates, supportedLocales: AppLocalizations.supportedLocales, ); From 361a8da98470e92763bbb8901a90e29bf50d9d37 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:19:18 +0100 Subject: [PATCH 07/25] refactor(config): Simplify AppConfig factories --- lib/app/config/app_config.dart | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/app/config/app_config.dart b/lib/app/config/app_config.dart index 9310dc63..289f1e45 100644 --- a/lib/app/config/app_config.dart +++ b/lib/app/config/app_config.dart @@ -1,28 +1,24 @@ -import 'package:ht_main/app/config/app_environment.dart'; +import 'package:ht_dashboard/app/config/app_environment.dart'; class AppConfig { const AppConfig({ required this.environment, required this.baseUrl, - // Add other environment-specific configs here (e.g., analytics keys) }); - // Factory constructors for different environments factory AppConfig.production() => const AppConfig( environment: AppEnvironment.production, - // Todo(you): Replace with actual production URL baseUrl: 'http://api.yourproductiondomain.com', ); factory AppConfig.demo() => const AppConfig( environment: AppEnvironment.demo, - baseUrl: '', // No API access needed for in-memory demo + baseUrl: '', ); factory AppConfig.development() => const AppConfig( - // For local Dart Frog API environment: AppEnvironment.development, - baseUrl: 'http://localhost:8080', // Default Dart Frog local URL + baseUrl: 'http://localhost:8080', ); final AppEnvironment environment; From d281f8e752a823de73ec4d3cc441083c454d6006 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:19:30 +0100 Subject: [PATCH 08/25] refactor(auth): remove anonymous sign-in - Removed unused event - Removed handler function --- .../bloc/authentication_bloc.dart | 27 ------------------- .../bloc/authentication_event.dart | 8 ------ 2 files changed, 35 deletions(-) diff --git a/lib/authentication/bloc/authentication_bloc.dart b/lib/authentication/bloc/authentication_bloc.dart index 95656807..0e2fffcc 100644 --- a/lib/authentication/bloc/authentication_bloc.dart +++ b/lib/authentication/bloc/authentication_bloc.dart @@ -35,9 +35,6 @@ class AuthenticationBloc _onAuthenticationRequestSignInCodeRequested, ); on(_onAuthenticationVerifyCodeRequested); - on( - _onAuthenticationAnonymousSignInRequested, - ); on(_onAuthenticationSignOutRequested); } @@ -121,30 +118,6 @@ class AuthenticationBloc } } - /// Handles [AuthenticationAnonymousSignInRequested] events. - Future _onAuthenticationAnonymousSignInRequested( - AuthenticationAnonymousSignInRequested event, - Emitter emit, - ) async { - emit(AuthenticationLoading()); - try { - await _authenticationRepository.signInAnonymously(); - // On success, the _AuthenticationUserChanged listener will handle - // emitting AuthenticationAuthenticated. - } on NetworkException catch (_) { - emit(const AuthenticationFailure('Network error occurred.')); - } on ServerException catch (e) { - emit(AuthenticationFailure('Server error: ${e.message}')); - } on OperationFailedException catch (e) { - emit(AuthenticationFailure('Operation failed: ${e.message}')); - } on HtHttpException catch (e) { - // Catch any other HtHttpException subtypes - emit(AuthenticationFailure('HTTP error: ${e.message}')); - } catch (e) { - emit(AuthenticationFailure('An unexpected error occurred: $e')); - } - } - /// Handles [AuthenticationSignOutRequested] events. Future _onAuthenticationSignOutRequested( AuthenticationSignOutRequested event, diff --git a/lib/authentication/bloc/authentication_event.dart b/lib/authentication/bloc/authentication_event.dart index ac8e7608..6034e484 100644 --- a/lib/authentication/bloc/authentication_event.dart +++ b/lib/authentication/bloc/authentication_event.dart @@ -47,14 +47,6 @@ final class AuthenticationVerifyCodeRequested extends AuthenticationEvent { List get props => [email, code]; } -/// {@template authentication_anonymous_sign_in_requested} -/// Event triggered when the user requests to sign in anonymously. -/// {@endtemplate} -final class AuthenticationAnonymousSignInRequested extends AuthenticationEvent { - /// {@macro authentication_anonymous_sign_in_requested} - const AuthenticationAnonymousSignInRequested(); -} - /// {@template authentication_sign_out_requested} /// Event triggered when the user requests to sign out. /// {@endtemplate} From 7efe22386c4d569e2052b5383d18c98984abde4d Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:19:41 +0100 Subject: [PATCH 09/25] refactor(auth): Remove anonymous sign-in button --- .../view/authentication_page.dart | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/lib/authentication/view/authentication_page.dart b/lib/authentication/view/authentication_page.dart index 09b2cc0b..2a644358 100644 --- a/lib/authentication/view/authentication_page.dart +++ b/lib/authentication/view/authentication_page.dart @@ -141,24 +141,6 @@ class AuthenticationPage extends StatelessWidget { ), const SizedBox(height: AppSpacing.lg), - // --- Anonymous Sign-In Button (Conditional) --- - if (showAnonymousButton) ...[ - OutlinedButton.icon( - icon: const Icon(Icons.person_outline), - onPressed: isLoading - ? null - : () => context.read().add( - const AuthenticationAnonymousSignInRequested(), - ), - label: Text(l10n.authenticationAnonymousSignInButton), - style: OutlinedButton.styleFrom( - padding: const EdgeInsets.symmetric( - vertical: AppSpacing.md, - ), - textStyle: textTheme.labelLarge, - ), - ), - ], // --- Loading Indicator --- if (isLoading && From d39a2a05f202c71a43833c366ed6af801df60560 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:19:52 +0100 Subject: [PATCH 10/25] refactor(router): simplify routing logic - Removed unused dependencies - Streamlined redirect logic - Added dashboard route --- lib/router/router.dart | 651 ++--------------------------------------- lib/router/routes.dart | 34 +++ 2 files changed, 65 insertions(+), 620 deletions(-) diff --git a/lib/router/router.dart b/lib/router/router.dart index 400f3f42..e40812c5 100644 --- a/lib/router/router.dart +++ b/lib/router/router.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:go_router/go_router.dart'; import 'package:ht_auth_repository/ht_auth_repository.dart'; -import 'package:ht_data_repository/ht_data_repository.dart'; import 'package:ht_dashboard/app/bloc/app_bloc.dart'; import 'package:ht_dashboard/app/config/config.dart' as local_config; import 'package:ht_dashboard/app/view/app_shell.dart'; @@ -12,6 +11,7 @@ import 'package:ht_dashboard/authentication/view/email_code_verification_page.da import 'package:ht_dashboard/authentication/view/request_code_page.dart'; import 'package:ht_dashboard/l10n/l10n.dart'; import 'package:ht_dashboard/router/routes.dart'; +import 'package:ht_dashboard/dashboard/view/dashboard_page.dart'; import 'package:ht_shared/ht_shared.dart'; /// Creates and configures the GoRouter instance for the application. @@ -21,70 +21,33 @@ import 'package:ht_shared/ht_shared.dart'; GoRouter createRouter({ required ValueNotifier authStatusNotifier, required HtAuthRepository htAuthenticationRepository, - required HtDataRepository htHeadlinesRepository, - required HtDataRepository htCategoriesRepository, - required HtDataRepository htCountriesRepository, - required HtDataRepository htSourcesRepository, - required HtDataRepository htUserAppSettingsRepository, - required HtDataRepository - htUserContentPreferencesRepository, - required HtDataRepository htAppConfigRepository, required local_config.AppEnvironment environment, }) { - // Instantiate AccountBloc once to be shared - final accountBloc = AccountBloc( - authenticationRepository: htAuthenticationRepository, - userContentPreferencesRepository: htUserContentPreferencesRepository, - environment: environment, - ); - return GoRouter( refreshListenable: authStatusNotifier, - initialLocation: Routes.feed, + initialLocation: Routes.authentication, debugLogDiagnostics: true, // --- Redirect Logic --- redirect: (BuildContext context, GoRouterState state) { final appStatus = context.read().state.status; - final appConfig = context.read().state.appConfig; final currentLocation = state.matchedLocation; - final currentUri = state.uri; print( 'GoRouter Redirect Check:\n' ' Current Location (Matched): $currentLocation\n' - ' Current URI (Full): $currentUri\n' - ' AppStatus: $appStatus\n' - ' AppConfig isNull: ${appConfig == null}', + ' AppStatus: $appStatus\n', ); // --- Define Key Paths --- const authenticationPath = Routes.authentication; - const feedPath = Routes.feed; + const dashboardPath = Routes.dashboard; final isGoingToAuth = currentLocation.startsWith(authenticationPath); + final isGoingToDashboard = currentLocation.startsWith(dashboardPath); - // --- Case 0: App is Initializing or Config is being fetched/failed --- - if (appStatus == AppStatus.initial || - appStatus == AppStatus.configFetching || - appStatus == AppStatus.configFetchFailed) { - // If AppStatus is initial and trying to go to a non-auth page (e.g. initial /feed) - // redirect to auth immediately to settle auth status first. - if (appStatus == AppStatus.initial && !isGoingToAuth) { - print( - ' Redirect Decision: AppStatus is INITIAL and not going to auth. Redirecting to $authenticationPath to settle auth first.', - ); - return authenticationPath; - } - // For configFetching or configFetchFailed, or initial going to auth, - // let the App widget's builder handle the UI (loading/error screen). - print( - ' Redirect Decision: AppStatus is $appStatus. Allowing App widget to handle display or navigation to auth.', - ); - return null; - } - - // --- Case 1: Unauthenticated User (after initial phase, config not relevant yet for this decision) --- - if (appStatus == AppStatus.unauthenticated) { - print(' Redirect Decision: User is UNauthenticated.'); + // --- Case 1: Unauthenticated User --- + if (appStatus == AppStatus.unauthenticated || + appStatus == AppStatus.initial) { + print(' Redirect Decision: User is UNauthenticated or INITIAL.'); if (!isGoingToAuth) { print( ' Action: Not going to auth. Redirecting to $authenticationPath', @@ -95,139 +58,57 @@ GoRouter createRouter({ return null; } - // --- Case 2: Anonymous or Authenticated User --- - // (Covers AppStatus.anonymous and AppStatus.authenticated) - // At this point, AppConfig should be loaded or its loading/error state is handled by App widget. - // The main concern here is preventing authenticated users from re-entering basic auth flows. - if (appStatus == AppStatus.anonymous || - appStatus == AppStatus.authenticated) { + // --- Case 2: Authenticated User --- + if (appStatus == AppStatus.authenticated) { print(' Redirect Decision: User is $appStatus.'); - final isLinkingContextQueryPresent = - state.uri.queryParameters['context'] == 'linking'; - final isLinkingPathSegmentPresent = currentLocation.contains( - '/linking/', - ); - - // Determine if the current location is part of any linking flow (either via query or path segment) - final isAnyLinkingContext = - isLinkingContextQueryPresent || isLinkingPathSegmentPresent; - - // If an authenticated/anonymous user is on any authentication-related path: - if (currentLocation.startsWith(authenticationPath)) { + // If an authenticated user is on any authentication-related path: + if (isGoingToAuth) { print( - ' Debug: Auth path detected. Current Location: $currentLocation', + ' Action: Authenticated user on auth path ($currentLocation). ' + 'Redirecting to $dashboardPath', ); - print( - ' Debug: URI Query Parameters: ${state.uri.queryParameters}', - ); - print( - ' Debug: isLinkingContextQueryPresent: $isLinkingContextQueryPresent', - ); - print( - ' Debug: isLinkingPathSegmentPresent: $isLinkingPathSegmentPresent', - ); - print( - ' Debug: isAnyLinkingContext evaluated to: $isAnyLinkingContext', - ); - - // If the user is authenticated, always redirect away from auth paths. - if (appStatus == AppStatus.authenticated) { - print( - ' Action: Authenticated user on auth path ($currentLocation). Redirecting to $feedPath', - ); - return feedPath; - } - - // If the user is anonymous, allow navigation within auth paths if in a linking context. - // Otherwise, redirect anonymous users trying to access non-linking auth paths to feed. - if (isAnyLinkingContext) { - print( - ' Action: Anonymous user on auth linking path ($currentLocation). Allowing navigation.', - ); - return null; - } else { - print( - ' Action: Anonymous user trying to access non-linking auth path ($currentLocation). Redirecting to $feedPath', - ); - return feedPath; - } + return dashboardPath; } - // Allow access to other routes (non-auth paths) + // Allow access to other routes (non-auth paths), which should only be dashboard for now print( - ' Action: Allowing navigation to $currentLocation for $appStatus user (non-auth path).', + ' Action: Allowing navigation to $currentLocation for $appStatus ' + 'user (non-auth path).', ); return null; } // Fallback (should ideally not be reached if all statuses are handled) print( - ' Redirect Decision: Fallback, no specific condition met for $appStatus. Allowing navigation.', + ' Redirect Decision: Fallback, no specific condition met for $appStatus. ' + 'Allowing navigation.', ); return null; }, - // --- Authentication Routes --- + // --- Routes --- routes: [ GoRoute( path: Routes.authentication, name: Routes.authenticationName, builder: (BuildContext context, GoRouterState state) { final l10n = context.l10n; - // Determine context from query parameter - final isLinkingContext = - state.uri.queryParameters['context'] == 'linking'; - - // Define content based on context - final String headline; - final String subHeadline; - final bool showAnonymousButton; - - if (isLinkingContext) { - headline = l10n.authenticationLinkingHeadline; - subHeadline = l10n.authenticationLinkingSubheadline; - showAnonymousButton = false; - } else { - headline = l10n.authenticationSignInHeadline; - subHeadline = l10n.authenticationSignInSubheadline; - showAnonymousButton = true; - } + const String headline = 'Sign In to Dashboard'; + const String subHeadline = 'Enter your email to get a verification code.'; + const bool showAnonymousButton = false; return BlocProvider( create: (context) => AuthenticationBloc( authenticationRepository: context.read(), ), - child: AuthenticationPage( + child: const AuthenticationPage( headline: headline, subHeadline: subHeadline, showAnonymousButton: showAnonymousButton, - isLinkingContext: isLinkingContext, + isLinkingContext: false, ), ); }, routes: [ - // Nested route for account linking flow (defined first for priority) - GoRoute( - path: Routes.accountLinking, - name: Routes.accountLinkingName, - builder: (context, state) => const SizedBox.shrink(), - routes: [ - GoRoute( - path: Routes.requestCode, - name: Routes.linkingRequestCodeName, - builder: (context, state) => - const RequestCodePage(isLinkingContext: true), - ), - GoRoute( - path: '${Routes.verifyCode}/:email', - name: Routes.linkingVerifyCodeName, - builder: (context, state) { - final email = state.pathParameters['email']!; - return EmailCodeVerificationPage(email: email); - }, - ), - ], - ), - // Non-linking authentication routes (defined after linking routes) GoRoute( path: Routes.requestCode, name: Routes.requestCodeName, @@ -244,481 +125,17 @@ GoRouter createRouter({ ), ], ), - // --- Entity Details Routes (Top Level) --- - GoRoute( - path: Routes.categoryDetails, - name: Routes.categoryDetailsName, - builder: (context, state) { - final args = state.extra as EntityDetailsPageArguments?; - if (args == null) { - return const Scaffold( - body: Center( - child: Text('Error: Missing category details arguments'), - ), - ); - } - return BlocProvider.value( - value: accountBloc, - child: EntityDetailsPage(args: args), - ); - }, - ), - GoRoute( - path: Routes.sourceDetails, - name: Routes.sourceDetailsName, - builder: (context, state) { - final args = state.extra as EntityDetailsPageArguments?; - if (args == null) { - return const Scaffold( - body: Center( - child: Text('Error: Missing source details arguments'), - ), - ); - } - return BlocProvider.value( - value: accountBloc, - child: EntityDetailsPage(args: args), - ); - }, - ), - // --- Global Article Details Route (Top Level) --- - // This GoRoute provides a top-level, globally accessible way to view the - // HeadlineDetailsPage. - // - // Purpose: - // It is specifically designed for navigating to article details from contexts - // that are *outside* the main StatefulShellRoute's branches (e.g., from - // EntityDetailsPage, which is itself a top-level route, or potentially - // from other future top-level pages or deep links). - // - // Why it's necessary: - // Attempting to push a route that is deeply nested within a specific shell - // branch (like '/feed/article/:id') from a BuildContext outside of that - // shell can lead to navigator context issues and assertion failures. - // This global route avoids such problems by providing a clean, direct path - // to the HeadlineDetailsPage. - // - // How it differs: - // This route is distinct from the article detail routes nested within the - // StatefulShellRoute branches (e.g., Routes.articleDetailsName under /feed, - // Routes.searchArticleDetailsName under /search). Those nested routes are - // intended for navigation *within* their respective shell branches, - // preserving the shell's UI (like the bottom navigation bar). - // This global route, being top-level, will typically cover the entire screen. - GoRoute( - path: Routes.globalArticleDetails, - name: Routes.globalArticleDetailsName, - builder: (context, state) { - final headlineFromExtra = state.extra as Headline?; - final headlineIdFromPath = state.pathParameters['id']; - - // Ensure accountBloc is available if needed by HeadlineDetailsPage - // or its descendants for actions like saving. - // If AccountBloc is already provided higher up (e.g., in AppShell or App), - // this specific BlocProvider.value might not be strictly necessary here, - // but it's safer to ensure it's available for this top-level route. - // We are using the `accountBloc` instance created at the top of `createRouter`. - return MultiBlocProvider( - providers: [ - BlocProvider.value(value: accountBloc), - BlocProvider( - create: (context) => HeadlineDetailsBloc( - headlinesRepository: context - .read>(), - ), - ), - BlocProvider( - create: (context) => SimilarHeadlinesBloc( - headlinesRepository: context - .read>(), - ), - ), - ], - child: HeadlineDetailsPage( - initialHeadline: headlineFromExtra, - headlineId: headlineFromExtra?.id ?? headlineIdFromPath, - ), - ); - }, - ), - // --- Main App Shell --- StatefulShellRoute.indexedStack( builder: (context, state, navigationShell) { - // Return the shell widget which contains the AdaptiveScaffold - return MultiBlocProvider( - providers: [ - BlocProvider.value(value: accountBloc), - BlocProvider( - create: (context) { - // Instantiate FeedInjectorService here as it's stateless for now - final feedInjectorService = FeedInjectorService(); - return HeadlinesFeedBloc( - headlinesRepository: context - .read>(), - feedInjectorService: feedInjectorService, - appBloc: context.read(), - )..add(const HeadlinesFeedFetchRequested()); - }, - ), - BlocProvider( - create: (context) { - final feedInjectorService = FeedInjectorService(); - return HeadlinesSearchBloc( - headlinesRepository: context - .read>(), - categoryRepository: context - .read>(), - sourceRepository: context.read>(), - appBloc: context.read(), - feedInjectorService: feedInjectorService, - ); - }, - ), - // Removed separate AccountBloc creation here - ], - child: AppShell(navigationShell: navigationShell), - ); + return AppShell(navigationShell: navigationShell); }, branches: [ - // --- Branch 1: Feed --- - StatefulShellBranch( - routes: [ - GoRoute( - path: Routes.feed, - name: Routes.feedName, - builder: (context, state) => const HeadlinesFeedPage(), - routes: [ - // Sub-route for article details - GoRoute( - path: 'article/:id', - name: Routes.articleDetailsName, - builder: (context, state) { - final headlineFromExtra = state.extra as Headline?; - final headlineIdFromPath = state.pathParameters['id']; - - return MultiBlocProvider( - providers: [ - BlocProvider.value(value: accountBloc), - BlocProvider( - create: (context) => HeadlineDetailsBloc( - headlinesRepository: context - .read>(), - ), - ), - BlocProvider( - create: (context) => SimilarHeadlinesBloc( - headlinesRepository: context - .read>(), - ), - ), - ], - child: HeadlineDetailsPage( - initialHeadline: headlineFromExtra, - // Ensure headlineId is non-null if initialHeadline is null - headlineId: - headlineFromExtra?.id ?? headlineIdFromPath, - ), - ); - }, - ), - // Sub-route for notifications (placeholder) - MOVED HERE - GoRoute( - path: Routes.notifications, - name: Routes.notificationsName, - builder: (context, state) { - // TODO(fulleni): Replace with actual NotificationsPage - return const Placeholder( - child: Center(child: Text('NOTIFICATIONS PAGE')), - ); - }, - ), - - // --- Filter Routes (Nested under Feed) --- - GoRoute( - path: Routes.feedFilter, - name: Routes.feedFilterName, - // Use MaterialPage with fullscreenDialog for modal presentation - pageBuilder: (context, state) { - // Access the HeadlinesFeedBloc from the context - BlocProvider.of(context); - return const MaterialPage( - fullscreenDialog: true, - child: HeadlinesFilterPage(), - ); - }, - routes: [ - // Sub-route for category selection - GoRoute( - path: Routes.feedFilterCategories, - name: Routes.feedFilterCategoriesName, - // Wrap with BlocProvider - builder: (context, state) => BlocProvider( - create: (context) => CategoriesFilterBloc( - categoriesRepository: context - .read>(), - ), - child: const CategoryFilterPage(), - ), - ), - // Sub-route for source selection - GoRoute( - path: Routes.feedFilterSources, - name: Routes.feedFilterSourcesName, - // Wrap with BlocProvider - builder: (context, state) => BlocProvider( - create: (context) => SourcesFilterBloc( - sourcesRepository: context - .read>(), - countriesRepository: // Added missing repository - context - .read>(), - ), - // Pass initialSelectedSources, country ISO codes, and source types from state.extra - child: Builder( - builder: (context) { - final extraData = - state.extra as Map? ?? - const {}; - final initialSources = - extraData[keySelectedSources] - as List? ?? - const []; - final initialCountryIsoCodes = - extraData[keySelectedCountryIsoCodes] - as Set? ?? - const {}; - final initialSourceTypes = - extraData[keySelectedSourceTypes] - as Set? ?? - const {}; - - return SourceFilterPage( - initialSelectedSources: initialSources, - initialSelectedCountryIsoCodes: - initialCountryIsoCodes, - initialSelectedSourceTypes: initialSourceTypes, - ); - }, - ), - ), - ), - // Sub-route for country selection REMOVED - ], - ), - ], - ), - ], - ), - // --- Branch 2: Search --- StatefulShellBranch( routes: [ GoRoute( - path: Routes.search, - name: Routes.searchName, - builder: (context, state) => const HeadlinesSearchPage(), - routes: [ - // Sub-route for article details from search - GoRoute( - path: 'article/:id', - name: Routes.searchArticleDetailsName, - builder: (context, state) { - final headlineFromExtra = state.extra as Headline?; - final headlineIdFromPath = state.pathParameters['id']; - return MultiBlocProvider( - providers: [ - BlocProvider.value(value: accountBloc), - BlocProvider( - create: (context) => HeadlineDetailsBloc( - headlinesRepository: context - .read>(), - ), - ), - BlocProvider( - create: (context) => SimilarHeadlinesBloc( - headlinesRepository: context - .read>(), - ), - ), - ], - child: HeadlineDetailsPage( - initialHeadline: headlineFromExtra, - headlineId: - headlineFromExtra?.id ?? headlineIdFromPath, - ), - ); - }, - ), - ], - ), - ], - ), - // --- Branch 3: Account --- - StatefulShellBranch( - routes: [ - GoRoute( - path: Routes.account, - name: Routes.accountName, - builder: (context, state) => const AccountPage(), - routes: [ - // ShellRoute for settings to provide SettingsBloc to children - ShellRoute( - builder: (BuildContext context, GoRouterState state, Widget child) { - // This builder provides SettingsBloc to all routes within this ShellRoute. - // 'child' will be SettingsPage, AppearanceSettingsPage, etc. - final appBloc = context.read(); - final userId = appBloc.state.user?.id; - - return BlocProvider( - create: (context) { - final settingsBloc = SettingsBloc( - userAppSettingsRepository: context - .read>(), - ); - // Only load settings if a userId is available - if (userId != null) { - settingsBloc.add( - SettingsLoadRequested(userId: userId), - ); - } else { - // Handle case where user is unexpectedly null. - print( - 'ShellRoute/SettingsBloc: User ID is null when creating SettingsBloc. Settings will not be loaded.', - ); - } - return settingsBloc; - }, - child: - child, // child is the actual page widget (SettingsPage, AppearanceSettingsPage, etc.) - ); - }, - routes: [ - GoRoute( - path: Routes.settings, - name: Routes.settingsName, - builder: (context, state) => const SettingsPage(), - // --- Settings Sub-Routes --- - routes: [ - GoRoute( - path: Routes.settingsAppearance, - name: Routes.settingsAppearanceName, - builder: (context, state) => - const AppearanceSettingsPage(), - routes: [ - // Children of AppearanceSettingsPage - GoRoute( - path: Routes.settingsAppearanceTheme, - name: Routes.settingsAppearanceThemeName, - builder: (context, state) => - const ThemeSettingsPage(), - ), - GoRoute( - path: Routes.settingsAppearanceFont, - name: Routes.settingsAppearanceFontName, - builder: (context, state) => - const FontSettingsPage(), - ), - ], - ), - GoRoute( - path: Routes.settingsFeed, - name: Routes.settingsFeedName, - builder: (context, state) => - const FeedSettingsPage(), - ), - GoRoute( - path: Routes.settingsNotifications, - name: Routes.settingsNotificationsName, - builder: (context, state) => - const NotificationSettingsPage(), - ), - GoRoute( - path: Routes.settingsLanguage, - name: Routes.settingsLanguageName, - builder: (context, state) => - const LanguageSettingsPage(), - ), - ], - ), - ], - ), - // New routes for Account sub-pages - GoRoute( - path: Routes.manageFollowedItems, - name: Routes.manageFollowedItemsName, - builder: (context, state) => - const ManageFollowedItemsPage(), - routes: [ - GoRoute( - path: Routes.followedCategoriesList, - name: Routes.followedCategoriesListName, - builder: (context, state) => - const FollowedCategoriesListPage(), - routes: [ - GoRoute( - path: Routes.addCategoryToFollow, - name: Routes.addCategoryToFollowName, - builder: (context, state) => - const AddCategoryToFollowPage(), - ), - ], - ), - GoRoute( - path: Routes.followedSourcesList, - name: Routes.followedSourcesListName, - builder: (context, state) => - const FollowedSourcesListPage(), - routes: [ - GoRoute( - path: Routes.addSourceToFollow, - name: Routes.addSourceToFollowName, - builder: (context, state) => - const AddSourceToFollowPage(), - ), - ], - ), - // GoRoute for followedCountriesList removed - ], - ), - GoRoute( - path: Routes.accountSavedHeadlines, - name: Routes.accountSavedHeadlinesName, - builder: (context, state) { - return const SavedHeadlinesPage(); - }, - routes: [ - GoRoute( - path: Routes.accountArticleDetails, - name: Routes.accountArticleDetailsName, - builder: (context, state) { - final headlineFromExtra = state.extra as Headline?; - final headlineIdFromPath = state.pathParameters['id']; - return MultiBlocProvider( - providers: [ - BlocProvider.value(value: accountBloc), - BlocProvider( - create: (context) => HeadlineDetailsBloc( - headlinesRepository: context - .read>(), - ), - ), - BlocProvider( - create: (context) => SimilarHeadlinesBloc( - headlinesRepository: context - .read>(), - ), - ), - ], - child: HeadlineDetailsPage( - initialHeadline: headlineFromExtra, - headlineId: - headlineFromExtra?.id ?? headlineIdFromPath, - ), - ); - }, - ), - ], - ), - ], + path: Routes.dashboard, + name: Routes.dashboardName, + builder: (context, state) => const DashboardPage(), ), ], ), @@ -727,9 +144,3 @@ GoRouter createRouter({ ], ); } - -// Placeholder pages were moved to their respective files: -// - lib/headlines-feed/view/headlines_filter_page.dart -// - lib/headlines-feed/view/category_filter_page.dart -// - lib/headlines-feed/view/source_filter_page.dart -// - lib/headlines-feed/view/country_filter_page.dart diff --git a/lib/router/routes.dart b/lib/router/routes.dart index 5e64493a..325d8439 100644 --- a/lib/router/routes.dart +++ b/lib/router/routes.dart @@ -2,5 +2,39 @@ /// /// Using constants helps prevent typos and makes route management easier. abstract final class Routes { + /// The path for the authentication page. + static const String authentication = '/authentication'; + /// The name for the authentication page route. + static const String authenticationName = 'authentication'; + + /// The path for the request code page. + static const String requestCode = 'request-code'; + + /// The name for the request code page route. + static const String requestCodeName = 'requestCode'; + + /// The path for the verify code page. + static const String verifyCode = 'verify-code'; + + /// The name for the verify code page route. + static const String verifyCodeName = 'verifyCode'; + + /// The path for the account linking flow. + static const String accountLinking = 'linking'; + + /// The name for the account linking flow route. + static const String accountLinkingName = 'accountLinking'; + + /// The name for the request code page route within the linking flow. + static const String linkingRequestCodeName = 'linkingRequestCode'; + + /// The name for the verify code page route within the linking flow. + static const String linkingVerifyCodeName = 'linkingVerifyCode'; + + /// The path for the dashboard page. + static const String dashboard = '/dashboard'; + + /// The name for the dashboard page route. + static const String dashboardName = 'dashboard'; } From 787d6ee0d2da684fad3667dcae4c0d6f1b5ab7a6 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:19:58 +0100 Subject: [PATCH 11/25] feat: add dashboard page - Created basic dashboard UI - Added welcome text --- lib/dashboard/view/dashboard_page.dart | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 lib/dashboard/view/dashboard_page.dart diff --git a/lib/dashboard/view/dashboard_page.dart b/lib/dashboard/view/dashboard_page.dart new file mode 100644 index 00000000..a0d7d136 --- /dev/null +++ b/lib/dashboard/view/dashboard_page.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +/// {@template dashboard_page} +/// A placeholder page for the dashboard. +/// {@endtemplate} +class DashboardPage extends StatelessWidget { + /// {@macro dashboard_page} + const DashboardPage({super.key}); + + @override + Widget build(BuildContext context) { + return const Scaffold( + body: Center( + child: Text('Welcome to the Dashboard!'), + ), + ); + } +} From cf1814e20301116345e445af69f3e6a973005265 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:33:44 +0100 Subject: [PATCH 12/25] feat(l10n): add email auth localization - Added email auth translations - Supports English and Arabic --- lib/l10n/arb/app_ar.arb | 80 +++++++++++++++++++++++++++++++++++++++-- lib/l10n/arb/app_en.arb | 76 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 152 insertions(+), 4 deletions(-) diff --git a/lib/l10n/arb/app_ar.arb b/lib/l10n/arb/app_ar.arb index 46fffaed..6596192c 100644 --- a/lib/l10n/arb/app_ar.arb +++ b/lib/l10n/arb/app_ar.arb @@ -1,6 +1,80 @@ { - "helloWorld": "Hello World!", + "helloWorld": "مرحبا بالعالم!", "@helloWorld": { - "description": "The conventional newborn programmer greeting" + "description": "التحية التقليدية للمبرمج حديث الولادة" + }, + "authenticationEmailSignInButton": "تسجيل الدخول بالبريد الإلكتروني", + "@authenticationEmailSignInButton": { + "description": "زر تسجيل الدخول بالبريد الإلكتروني" + }, + "emailSignInPageTitle": "تسجيل الدخول بالبريد الإلكتروني", + "@emailSignInPageTitle": { + "description": "عنوان صفحة تسجيل الدخول بالبريد الإلكتروني" + }, + "requestCodePageHeadline": "سجل الدخول أو أنشئ حسابًا", + "@requestCodePageHeadline": { + "description": "عنوان صفحة طلب الرمز" + }, + "requestCodePageSubheadline": "أدخل بريدك الإلكتروني لتلقي رمز التحقق. لا حاجة لكلمة مرور!", + "@requestCodePageSubheadline": { + "description": "عنوان فرعي لصفحة طلب الرمز" + }, + "requestCodeEmailLabel": "البريد الإلكتروني", + "@requestCodeEmailLabel": { + "description": "تسمية حقل إدخال البريد الإلكتروني في صفحة طلب الرمز" + }, + "requestCodeEmailHint": "بريدك.الإلكتروني@مثال.كوم", + "@requestCodeEmailHint": { + "description": "نص تلميح لحقل إدخال البريد الإلكتروني في صفحة طلب الرمز" + }, + "accountLinkingEmailValidationError": "الرجاء إدخال عنوان بريد إلكتروني صالح.", + "@accountLinkingEmailValidationError": { + "description": "رسالة خطأ التحقق لتنسيق البريد الإلكتروني غير الصالح" + }, + "requestCodeSendCodeButton": "إرسال الرمز", + "@requestCodeSendCodeButton": { + "description": "تسمية زر إرسال رمز التحقق" + }, + "emailCodeSentPageTitle": "التحقق من الرمز", + "@emailCodeSentPageTitle": { + "description": "عنوان صفحة التحقق من رمز البريد الإلكتروني" + }, + "emailCodeSentConfirmation": "لقد أرسلنا رمزًا مكونًا من 6 أرقام إلى {email}", + "@emailCodeSentConfirmation": { + "description": "رسالة تأكيد بإرسال الرمز إلى البريد الإلكتروني", + "placeholders": { + "email": { + "type": "String" + } + } + }, + "emailCodeSentInstructions": "الرجاء التحقق من بريدك الوارد وإدخال الرمز أدناه للمتابعة.", + "@emailCodeSentInstructions": { + "description": "تعليمات للمستخدم للتحقق من الرمز" + }, + "demoVerificationCodeMessage": "في الوضع التجريبي، استخدم الرمز: {code}", + "@demoVerificationCodeMessage": { + "description": "رسالة تعرض رمز التحقق التجريبي", + "placeholders": { + "code": { + "type": "String" + } + } + }, + "emailCodeVerificationHint": "رمز مكون من 6 أرقام", + "@emailCodeVerificationHint": { + "description": "نص تلميح لحقل إدخال الرمز في صفحة التحقق" + }, + "emailCodeValidationEmptyError": "لا يمكن أن يكون الرمز فارغًا.", + "@emailCodeValidationEmptyError": { + "description": "رسالة خطأ التحقق عندما يكون حقل الرمز فارغًا" + }, + "emailCodeValidationLengthError": "يجب أن يتكون الرمز من 6 أرقام.", + "@emailCodeValidationLengthError": { + "description": "رسالة خطأ التحقق عندما يكون طول الرمز غير صحيح" + }, + "emailCodeVerificationButtonLabel": "التحقق من الرمز", + "@emailCodeVerificationButtonLabel": { + "description": "تسمية زر التحقق من الرمز" } -} \ No newline at end of file +} diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index 46fffaed..f0124e1e 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -2,5 +2,79 @@ "helloWorld": "Hello World!", "@helloWorld": { "description": "The conventional newborn programmer greeting" + }, + "authenticationEmailSignInButton": "Sign in with Email", + "@authenticationEmailSignInButton": { + "description": "Button label for signing in with email" + }, + "emailSignInPageTitle": "Email Sign In", + "@emailSignInPageTitle": { + "description": "Title for the email sign-in page" + }, + "requestCodePageHeadline": "Sign in or create an account", + "@requestCodePageHeadline": { + "description": "Headline for the request code page" + }, + "requestCodePageSubheadline": "Enter your email to receive a verification code. No password needed!", + "@requestCodePageSubheadline": { + "description": "Subheadline for the request code page" + }, + "requestCodeEmailLabel": "Email", + "@requestCodeEmailLabel": { + "description": "Label for the email input field on the request code page" + }, + "requestCodeEmailHint": "your.email@example.com", + "@requestCodeEmailHint": { + "description": "Hint text for the email input field on the request code page" + }, + "accountLinkingEmailValidationError": "Please enter a valid email address.", + "@accountLinkingEmailValidationError": { + "description": "Validation error message for invalid email format" + }, + "requestCodeSendCodeButton": "Send Code", + "@requestCodeSendCodeButton": { + "description": "Button label for sending the verification code" + }, + "emailCodeSentPageTitle": "Verify Code", + "@emailCodeSentPageTitle": { + "description": "Title for the email code verification page" + }, + "emailCodeSentConfirmation": "We sent a 6-digit code to {email}", + "@emailCodeSentConfirmation": { + "description": "Confirmation message that a code has been sent to the email", + "placeholders": { + "email": { + "type": "String" + } + } + }, + "emailCodeSentInstructions": "Please check your inbox and enter the code below to continue.", + "@emailCodeSentInstructions": { + "description": "Instructions for the user to verify the code" + }, + "demoVerificationCodeMessage": "In demo mode, use code: {code}", + "@demoVerificationCodeMessage": { + "description": "Message displaying the demo verification code", + "placeholders": { + "code": { + "type": "String" + } + } + }, + "emailCodeVerificationHint": "6-digit code", + "@emailCodeVerificationHint": { + "description": "Hint text for the code input field on the verification page" + }, + "emailCodeValidationEmptyError": "Code cannot be empty.", + "@emailCodeValidationEmptyError": { + "description": "Validation error message when the code field is empty" + }, + "emailCodeValidationLengthError": "Code must be 6 digits.", + "@emailCodeValidationLengthError": { + "description": "Validation error message when the code length is incorrect" + }, + "emailCodeVerificationButtonLabel": "Verify Code", + "@emailCodeVerificationButtonLabel": { + "description": "Button label for verifying the code" } -} \ No newline at end of file +} From 0e77aafb99cfd5ab588c2aa95663f72a3c8d2033 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:33:50 +0100 Subject: [PATCH 13/25] feat: Remove splash screen on web after load - Removes splash on web after app loads - Improves user experience --- lib/main.dart | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/main.dart b/lib/main.dart index b90e2f03..34b787b4 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,6 @@ +import 'dart:js_interop'; + +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:ht_dashboard/app/config/config.dart'; import 'package:ht_dashboard/bootstrap.dart'; @@ -5,6 +8,9 @@ import 'package:ht_dashboard/bootstrap.dart'; // Define the current application environment (production/development/demo). const AppEnvironment appEnvironment = AppEnvironment.demo; +@JS('removeSplashFromWeb') +external void removeSplashFromWeb(); + void main() async { final appConfig = switch (appEnvironment) { AppEnvironment.production => AppConfig.production(), @@ -14,5 +20,9 @@ void main() async { final appWidget = await bootstrap(appConfig, appEnvironment); + // Only remove the splash screen on web after the app is ready. + if (kIsWeb) { + removeSplashFromWeb(); + } runApp(appWidget); } From bcc6486c3ecd1e3c13ce1d6d1f6fa10beb725d64 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:33:57 +0100 Subject: [PATCH 14/25] refactor(router): Remove unused context property --- lib/router/router.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/router/router.dart b/lib/router/router.dart index e40812c5..77e8bcb6 100644 --- a/lib/router/router.dart +++ b/lib/router/router.dart @@ -104,7 +104,6 @@ GoRouter createRouter({ headline: headline, subHeadline: subHeadline, showAnonymousButton: showAnonymousButton, - isLinkingContext: false, ), ); }, From 17c8a554f84bb98f1108cf86615785ea34ef379e Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:34:07 +0100 Subject: [PATCH 15/25] feat(l10n): add email auth localizations - Added email sign in strings - Added code verification strings --- lib/l10n/app_localizations.dart | 96 ++++++++++++++++++++++++++++++ lib/l10n/app_localizations_ar.dart | 58 +++++++++++++++++- lib/l10n/app_localizations_en.dart | 55 +++++++++++++++++ 3 files changed, 208 insertions(+), 1 deletion(-) diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index f3949c9d..f980f715 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -103,6 +103,102 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Hello World!'** String get helloWorld; + + /// Button label for signing in with email + /// + /// In en, this message translates to: + /// **'Sign in with Email'** + String get authenticationEmailSignInButton; + + /// Title for the email sign-in page + /// + /// In en, this message translates to: + /// **'Email Sign In'** + String get emailSignInPageTitle; + + /// Headline for the request code page + /// + /// In en, this message translates to: + /// **'Sign in or create an account'** + String get requestCodePageHeadline; + + /// Subheadline for the request code page + /// + /// In en, this message translates to: + /// **'Enter your email to receive a verification code. No password needed!'** + String get requestCodePageSubheadline; + + /// Label for the email input field on the request code page + /// + /// In en, this message translates to: + /// **'Email'** + String get requestCodeEmailLabel; + + /// Hint text for the email input field on the request code page + /// + /// In en, this message translates to: + /// **'your.email@example.com'** + String get requestCodeEmailHint; + + /// Validation error message for invalid email format + /// + /// In en, this message translates to: + /// **'Please enter a valid email address.'** + String get accountLinkingEmailValidationError; + + /// Button label for sending the verification code + /// + /// In en, this message translates to: + /// **'Send Code'** + String get requestCodeSendCodeButton; + + /// Title for the email code verification page + /// + /// In en, this message translates to: + /// **'Verify Code'** + String get emailCodeSentPageTitle; + + /// Confirmation message that a code has been sent to the email + /// + /// In en, this message translates to: + /// **'We sent a 6-digit code to {email}'** + String emailCodeSentConfirmation(String email); + + /// Instructions for the user to verify the code + /// + /// In en, this message translates to: + /// **'Please check your inbox and enter the code below to continue.'** + String get emailCodeSentInstructions; + + /// Message displaying the demo verification code + /// + /// In en, this message translates to: + /// **'In demo mode, use code: {code}'** + String demoVerificationCodeMessage(String code); + + /// Hint text for the code input field on the verification page + /// + /// In en, this message translates to: + /// **'6-digit code'** + String get emailCodeVerificationHint; + + /// Validation error message when the code field is empty + /// + /// In en, this message translates to: + /// **'Code cannot be empty.'** + String get emailCodeValidationEmptyError; + + /// Validation error message when the code length is incorrect + /// + /// In en, this message translates to: + /// **'Code must be 6 digits.'** + String get emailCodeValidationLengthError; + + /// Button label for verifying the code + /// + /// In en, this message translates to: + /// **'Verify Code'** + String get emailCodeVerificationButtonLabel; } class _AppLocalizationsDelegate diff --git a/lib/l10n/app_localizations_ar.dart b/lib/l10n/app_localizations_ar.dart index 73d021c8..5d0deaa4 100644 --- a/lib/l10n/app_localizations_ar.dart +++ b/lib/l10n/app_localizations_ar.dart @@ -9,5 +9,61 @@ class AppLocalizationsAr extends AppLocalizations { AppLocalizationsAr([String locale = 'ar']) : super(locale); @override - String get helloWorld => 'Hello World!'; + String get helloWorld => 'مرحبا بالعالم!'; + + @override + String get authenticationEmailSignInButton => + 'تسجيل الدخول بالبريد الإلكتروني'; + + @override + String get emailSignInPageTitle => 'تسجيل الدخول بالبريد الإلكتروني'; + + @override + String get requestCodePageHeadline => 'سجل الدخول أو أنشئ حسابًا'; + + @override + String get requestCodePageSubheadline => + 'أدخل بريدك الإلكتروني لتلقي رمز التحقق. لا حاجة لكلمة مرور!'; + + @override + String get requestCodeEmailLabel => 'البريد الإلكتروني'; + + @override + String get requestCodeEmailHint => 'بريدك.الإلكتروني@مثال.كوم'; + + @override + String get accountLinkingEmailValidationError => + 'الرجاء إدخال عنوان بريد إلكتروني صالح.'; + + @override + String get requestCodeSendCodeButton => 'إرسال الرمز'; + + @override + String get emailCodeSentPageTitle => 'التحقق من الرمز'; + + @override + String emailCodeSentConfirmation(String email) { + return 'لقد أرسلنا رمزًا مكونًا من 6 أرقام إلى $email'; + } + + @override + String get emailCodeSentInstructions => + 'الرجاء التحقق من بريدك الوارد وإدخال الرمز أدناه للمتابعة.'; + + @override + String demoVerificationCodeMessage(String code) { + return 'في الوضع التجريبي، استخدم الرمز: $code'; + } + + @override + String get emailCodeVerificationHint => 'رمز مكون من 6 أرقام'; + + @override + String get emailCodeValidationEmptyError => 'لا يمكن أن يكون الرمز فارغًا.'; + + @override + String get emailCodeValidationLengthError => 'يجب أن يتكون الرمز من 6 أرقام.'; + + @override + String get emailCodeVerificationButtonLabel => 'التحقق من الرمز'; } diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 2c753f4e..24a93dde 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -10,4 +10,59 @@ class AppLocalizationsEn extends AppLocalizations { @override String get helloWorld => 'Hello World!'; + + @override + String get authenticationEmailSignInButton => 'Sign in with Email'; + + @override + String get emailSignInPageTitle => 'Email Sign In'; + + @override + String get requestCodePageHeadline => 'Sign in or create an account'; + + @override + String get requestCodePageSubheadline => + 'Enter your email to receive a verification code. No password needed!'; + + @override + String get requestCodeEmailLabel => 'Email'; + + @override + String get requestCodeEmailHint => 'your.email@example.com'; + + @override + String get accountLinkingEmailValidationError => + 'Please enter a valid email address.'; + + @override + String get requestCodeSendCodeButton => 'Send Code'; + + @override + String get emailCodeSentPageTitle => 'Verify Code'; + + @override + String emailCodeSentConfirmation(String email) { + return 'We sent a 6-digit code to $email'; + } + + @override + String get emailCodeSentInstructions => + 'Please check your inbox and enter the code below to continue.'; + + @override + String demoVerificationCodeMessage(String code) { + return 'In demo mode, use code: $code'; + } + + @override + String get emailCodeVerificationHint => '6-digit code'; + + @override + String get emailCodeValidationEmptyError => 'Code cannot be empty.'; + + @override + String get emailCodeValidationLengthError => 'Code must be 6 digits.'; + + @override + String get emailCodeVerificationButtonLabel => 'Verify Code'; } From 0008729a7fe2f7fefb23110db74ea55380839c27 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:34:12 +0100 Subject: [PATCH 16/25] refactor(auth): Remove isLinkingContext from page - Removed isLinkingContext prop - Simplified navigation logic - Removed conditional close button --- .../view/authentication_page.dart | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/lib/authentication/view/authentication_page.dart b/lib/authentication/view/authentication_page.dart index 2a644358..d023f5ef 100644 --- a/lib/authentication/view/authentication_page.dart +++ b/lib/authentication/view/authentication_page.dart @@ -21,7 +21,6 @@ class AuthenticationPage extends StatelessWidget { required this.headline, required this.subHeadline, required this.showAnonymousButton, - required this.isLinkingContext, super.key, }); @@ -34,9 +33,6 @@ class AuthenticationPage extends StatelessWidget { /// Whether to show the "Continue Anonymously" button. final bool showAnonymousButton; - /// Whether this page is being shown in the account linking context. - final bool isLinkingContext; - @override Widget build(BuildContext context) { final l10n = context.l10n; @@ -47,17 +43,6 @@ class AuthenticationPage extends StatelessWidget { appBar: AppBar( backgroundColor: Colors.transparent, elevation: 0, - // Conditionally add the leading close button only in linking context - leading: isLinkingContext - ? IconButton( - icon: const Icon(Icons.close), - tooltip: MaterialLocalizations.of(context).closeButtonTooltip, - onPressed: () { - // Navigate back to the account page when close is pressed - context.goNamed(Routes.accountName); - }, - ) - : null, ), body: SafeArea( child: BlocConsumer( @@ -95,7 +80,7 @@ class AuthenticationPage extends StatelessWidget { Padding( padding: const EdgeInsets.only(bottom: AppSpacing.xl), child: Icon( - isLinkingContext ? Icons.sync : Icons.newspaper, + Icons.newspaper, size: AppSpacing.xxl * 2, color: colorScheme.primary, ), @@ -126,9 +111,7 @@ class AuthenticationPage extends StatelessWidget { ? null : () { context.goNamed( - isLinkingContext - ? Routes.linkingRequestCodeName - : Routes.requestCodeName, + Routes.requestCodeName, ); }, label: Text(l10n.authenticationEmailSignInButton), @@ -141,7 +124,6 @@ class AuthenticationPage extends StatelessWidget { ), const SizedBox(height: AppSpacing.lg), - // --- Loading Indicator --- if (isLoading && state is! AuthenticationRequestCodeLoading) ...[ From da05f0b395878e3094d8a06ae2d35129c0fbba11 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:44:53 +0100 Subject: [PATCH 17/25] feat: add new labels for navigation and content - Added labels for dashboard - Added labels for content management - Added labels for headlines - Added labels for categories - Added labels for app configuration --- lib/l10n/app_localizations.dart | 42 ++++++++++++++++++++++++++++++ lib/l10n/app_localizations_ar.dart | 21 +++++++++++++++ lib/l10n/app_localizations_en.dart | 21 +++++++++++++++ lib/l10n/arb/app_ar.arb | 28 ++++++++++++++++++++ lib/l10n/arb/app_en.arb | 28 ++++++++++++++++++++ 5 files changed, 140 insertions(+) diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index f980f715..2a86f2b8 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -199,6 +199,48 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Verify Code'** String get emailCodeVerificationButtonLabel; + + /// Label for the dashboard navigation item + /// + /// In en, this message translates to: + /// **'Dashboard'** + String get dashboard; + + /// Label for the content management navigation item + /// + /// In en, this message translates to: + /// **'Content Management'** + String get contentManagement; + + /// Label for the headlines subpage + /// + /// In en, this message translates to: + /// **'Headlines'** + String get headlines; + + /// Label for the categories subpage + /// + /// In en, this message translates to: + /// **'Categories'** + String get categories; + + /// Label for the sources subpage + /// + /// In en, this message translates to: + /// **'Sources'** + String get sources; + + /// Label for the app configuration navigation item + /// + /// In en, this message translates to: + /// **'App Configuration'** + String get appConfiguration; + + /// Label for the settings navigation item + /// + /// In en, this message translates to: + /// **'Settings'** + String get settings; } class _AppLocalizationsDelegate diff --git a/lib/l10n/app_localizations_ar.dart b/lib/l10n/app_localizations_ar.dart index 5d0deaa4..35ae9252 100644 --- a/lib/l10n/app_localizations_ar.dart +++ b/lib/l10n/app_localizations_ar.dart @@ -66,4 +66,25 @@ class AppLocalizationsAr extends AppLocalizations { @override String get emailCodeVerificationButtonLabel => 'التحقق من الرمز'; + + @override + String get dashboard => 'لوحة القيادة'; + + @override + String get contentManagement => 'إدارة المحتوى'; + + @override + String get headlines => 'العناوين الرئيسية'; + + @override + String get categories => 'الفئات'; + + @override + String get sources => 'المصادر'; + + @override + String get appConfiguration => 'إعدادات التطبيق'; + + @override + String get settings => 'الإعدادات'; } diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 24a93dde..0f81c2fc 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -65,4 +65,25 @@ class AppLocalizationsEn extends AppLocalizations { @override String get emailCodeVerificationButtonLabel => 'Verify Code'; + + @override + String get dashboard => 'Dashboard'; + + @override + String get contentManagement => 'Content Management'; + + @override + String get headlines => 'Headlines'; + + @override + String get categories => 'Categories'; + + @override + String get sources => 'Sources'; + + @override + String get appConfiguration => 'App Configuration'; + + @override + String get settings => 'Settings'; } diff --git a/lib/l10n/arb/app_ar.arb b/lib/l10n/arb/app_ar.arb index 6596192c..9c9dd01d 100644 --- a/lib/l10n/arb/app_ar.arb +++ b/lib/l10n/arb/app_ar.arb @@ -76,5 +76,33 @@ "emailCodeVerificationButtonLabel": "التحقق من الرمز", "@emailCodeVerificationButtonLabel": { "description": "تسمية زر التحقق من الرمز" + }, + "dashboard": "لوحة القيادة", + "@dashboard": { + "description": "تسمية عنصر التنقل للوحة القيادة" + }, + "contentManagement": "إدارة المحتوى", + "@contentManagement": { + "description": "تسمية عنصر التنقل لإدارة المحتوى" + }, + "headlines": "العناوين الرئيسية", + "@headlines": { + "description": "تسمية الصفحة الفرعية للعناوين الرئيسية" + }, + "categories": "الفئات", + "@categories": { + "description": "تسمية الصفحة الفرعية للفئات" + }, + "sources": "المصادر", + "@sources": { + "description": "تسمية الصفحة الفرعية للمصادر" + }, + "appConfiguration": "إعدادات التطبيق", + "@appConfiguration": { + "description": "تسمية عنصر التنقل لإعدادات التطبيق" + }, + "settings": "الإعدادات", + "@settings": { + "description": "تسمية عنصر التنقل للإعدادات" } } diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index f0124e1e..cffc9c21 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -76,5 +76,33 @@ "emailCodeVerificationButtonLabel": "Verify Code", "@emailCodeVerificationButtonLabel": { "description": "Button label for verifying the code" + }, + "dashboard": "Dashboard", + "@dashboard": { + "description": "Label for the dashboard navigation item" + }, + "contentManagement": "Content Management", + "@contentManagement": { + "description": "Label for the content management navigation item" + }, + "headlines": "Headlines", + "@headlines": { + "description": "Label for the headlines subpage" + }, + "categories": "Categories", + "@categories": { + "description": "Label for the categories subpage" + }, + "sources": "Sources", + "@sources": { + "description": "Label for the sources subpage" + }, + "appConfiguration": "App Configuration", + "@appConfiguration": { + "description": "Label for the app configuration navigation item" + }, + "settings": "Settings", + "@settings": { + "description": "Label for the settings navigation item" } } From 72037582bb36556d9445a9d74a0a73507e468890 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:45:02 +0100 Subject: [PATCH 18/25] feat(app): localize navigation labels - Added l10n keys for nav labels - Used l10n for navigation labels --- lib/app/view/app_shell.dart | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/lib/app/view/app_shell.dart b/lib/app/view/app_shell.dart index fff3f136..bf7cfa67 100644 --- a/lib/app/view/app_shell.dart +++ b/lib/app/view/app_shell.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_adaptive_scaffold/flutter_adaptive_scaffold.dart'; import 'package:go_router/go_router.dart'; +import 'package:ht_dashboard/l10n/l10n.dart'; +import 'package:ht_dashboard/router/routes.dart'; /// A responsive scaffold shell for the main application sections. /// @@ -30,11 +32,26 @@ class AppShell extends StatelessWidget { useDrawer: false, selectedIndex: navigationShell.currentIndex, onSelectedIndexChange: _goBranch, - destinations: const [ + destinations: [ NavigationDestination( - icon: Icon(Icons.dashboard_outlined), - selectedIcon: Icon(Icons.dashboard), - label: 'Dashboard', + icon: const Icon(Icons.dashboard_outlined), + selectedIcon: const Icon(Icons.dashboard), + label: context.l10n.dashboard, + ), + NavigationDestination( + icon: const Icon(Icons.folder_open_outlined), + selectedIcon: const Icon(Icons.folder), + label: context.l10n.contentManagement, + ), + NavigationDestination( + icon: const Icon(Icons.settings_applications_outlined), + selectedIcon: const Icon(Icons.settings_applications), + label: context.l10n.appConfiguration, + ), + NavigationDestination( + icon: const Icon(Icons.settings_outlined), + selectedIcon: const Icon(Icons.settings), + label: context.l10n.settings, ), ], body: (_) => navigationShell, From a948bd84b0ea9e5fe7e9f02dc2fae680ec3ac809 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:45:35 +0100 Subject: [PATCH 19/25] feat(router): add new routes and pages - Added content management routes - Added app configuration route - Added settings route --- lib/router/router.dart | 50 ++++++++++++++++++++++++++++++++++++++++++ lib/router/routes.dart | 36 ++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) diff --git a/lib/router/router.dart b/lib/router/router.dart index 77e8bcb6..070dfec6 100644 --- a/lib/router/router.dart +++ b/lib/router/router.dart @@ -11,7 +11,13 @@ import 'package:ht_dashboard/authentication/view/email_code_verification_page.da import 'package:ht_dashboard/authentication/view/request_code_page.dart'; import 'package:ht_dashboard/l10n/l10n.dart'; import 'package:ht_dashboard/router/routes.dart'; +import 'package:ht_dashboard/app_configuration/view/app_configuration_page.dart'; +import 'package:ht_dashboard/content_management/view/categories_page.dart'; +import 'package:ht_dashboard/content_management/view/content_management_page.dart'; +import 'package:ht_dashboard/content_management/view/headlines_page.dart'; +import 'package:ht_dashboard/content_management/view/sources_page.dart'; import 'package:ht_dashboard/dashboard/view/dashboard_page.dart'; +import 'package:ht_dashboard/settings/view/settings_page.dart'; import 'package:ht_shared/ht_shared.dart'; /// Creates and configures the GoRouter instance for the application. @@ -138,6 +144,50 @@ GoRouter createRouter({ ), ], ), + StatefulShellBranch( + routes: [ + GoRoute( + path: Routes.contentManagement, + name: Routes.contentManagementName, + builder: (context, state) => const ContentManagementPage(), + routes: [ + GoRoute( + path: Routes.headlines, + name: Routes.headlinesName, + builder: (context, state) => const HeadlinesPage(), + ), + GoRoute( + path: Routes.categories, + name: Routes.categoriesName, + builder: (context, state) => const CategoriesPage(), + ), + GoRoute( + path: Routes.sources, + name: Routes.sourcesName, + builder: (context, state) => const SourcesPage(), + ), + ], + ), + ], + ), + StatefulShellBranch( + routes: [ + GoRoute( + path: Routes.appConfiguration, + name: Routes.appConfigurationName, + builder: (context, state) => const AppConfigurationPage(), + ), + ], + ), + StatefulShellBranch( + routes: [ + GoRoute( + path: Routes.settings, + name: Routes.settingsName, + builder: (context, state) => const SettingsPage(), + ), + ], + ), ], ), ], diff --git a/lib/router/routes.dart b/lib/router/routes.dart index 325d8439..ccfde190 100644 --- a/lib/router/routes.dart +++ b/lib/router/routes.dart @@ -37,4 +37,40 @@ abstract final class Routes { /// The name for the dashboard page route. static const String dashboardName = 'dashboard'; + + /// The path for the content management section. + static const String contentManagement = '/content-management'; + + /// The name for the content management section route. + static const String contentManagementName = 'contentManagement'; + + /// The path for the headlines page within content management. + static const String headlines = 'headlines'; + + /// The name for the headlines page route. + static const String headlinesName = 'headlines'; + + /// The path for the categories page within content management. + static const String categories = 'categories'; + + /// The name for the categories page route. + static const String categoriesName = 'categories'; + + /// The path for the sources page within content management. + static const String sources = 'sources'; + + /// The name for the sources page route. + static const String sourcesName = 'sources'; + + /// The path for the app configuration page. + static const String appConfiguration = '/app-configuration'; + + /// The name for the app configuration page route. + static const String appConfigurationName = 'appConfiguration'; + + /// The path for the settings page. + static const String settings = '/settings'; + + /// The name for the settings page route. + static const String settingsName = 'settings'; } From 5667548bfdd309f630ef85d4dfc5fd584912d086 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:46:10 +0100 Subject: [PATCH 20/25] feat: add content management page - Created basic page structure - Added placeholder UI --- .../view/categories_page.dart | 18 ++++++++++++++++++ .../view/content_management_page.dart | 18 ++++++++++++++++++ .../view/headlines_page.dart | 18 ++++++++++++++++++ lib/content_management/view/sources_page.dart | 18 ++++++++++++++++++ 4 files changed, 72 insertions(+) create mode 100644 lib/content_management/view/categories_page.dart create mode 100644 lib/content_management/view/content_management_page.dart create mode 100644 lib/content_management/view/headlines_page.dart create mode 100644 lib/content_management/view/sources_page.dart diff --git a/lib/content_management/view/categories_page.dart b/lib/content_management/view/categories_page.dart new file mode 100644 index 00000000..17d5134d --- /dev/null +++ b/lib/content_management/view/categories_page.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +/// {@template categories_page} +/// A placeholder page for Categories. +/// {@endtemplate} +class CategoriesPage extends StatelessWidget { + /// {@macro categories_page} + const CategoriesPage({super.key}); + + @override + Widget build(BuildContext context) { + return const Scaffold( + body: Center( + child: Text('Categories Page'), + ), + ); + } +} diff --git a/lib/content_management/view/content_management_page.dart b/lib/content_management/view/content_management_page.dart new file mode 100644 index 00000000..beca289c --- /dev/null +++ b/lib/content_management/view/content_management_page.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +/// {@template content_management_page} +/// A placeholder page for Content Management. +/// {@endtemplate} +class ContentManagementPage extends StatelessWidget { + /// {@macro content_management_page} + const ContentManagementPage({super.key}); + + @override + Widget build(BuildContext context) { + return const Scaffold( + body: Center( + child: Text('Content Management Page'), + ), + ); + } +} diff --git a/lib/content_management/view/headlines_page.dart b/lib/content_management/view/headlines_page.dart new file mode 100644 index 00000000..32009f43 --- /dev/null +++ b/lib/content_management/view/headlines_page.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +/// {@template headlines_page} +/// A placeholder page for Headlines. +/// {@endtemplate} +class HeadlinesPage extends StatelessWidget { + /// {@macro headlines_page} + const HeadlinesPage({super.key}); + + @override + Widget build(BuildContext context) { + return const Scaffold( + body: Center( + child: Text('Headlines Page'), + ), + ); + } +} diff --git a/lib/content_management/view/sources_page.dart b/lib/content_management/view/sources_page.dart new file mode 100644 index 00000000..0006e170 --- /dev/null +++ b/lib/content_management/view/sources_page.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +/// {@template sources_page} +/// A placeholder page for Sources. +/// {@endtemplate} +class SourcesPage extends StatelessWidget { + /// {@macro sources_page} + const SourcesPage({super.key}); + + @override + Widget build(BuildContext context) { + return const Scaffold( + body: Center( + child: Text('Sources Page'), + ), + ); + } +} From b31405a89d7fb162576211d0cae80718f09c23b3 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:46:16 +0100 Subject: [PATCH 21/25] feat: add app configuration page - Created basic UI - Added placeholder text --- .../view/app_configuration_page.dart | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 lib/app_configuration/view/app_configuration_page.dart diff --git a/lib/app_configuration/view/app_configuration_page.dart b/lib/app_configuration/view/app_configuration_page.dart new file mode 100644 index 00000000..09833605 --- /dev/null +++ b/lib/app_configuration/view/app_configuration_page.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +/// {@template app_configuration_page} +/// A placeholder page for App Configuration. +/// {@endtemplate} +class AppConfigurationPage extends StatelessWidget { + /// {@macro app_configuration_page} + const AppConfigurationPage({super.key}); + + @override + Widget build(BuildContext context) { + return const Scaffold( + body: Center( + child: Text('App Configuration Page'), + ), + ); + } +} From bda60347ea7c257b050592019d6d9f9f15fdc50b Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 09:46:48 +0100 Subject: [PATCH 22/25] feat: add settings page - Added settings page - Placeholder implementation --- lib/settings/view/settings_page.dart | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 lib/settings/view/settings_page.dart diff --git a/lib/settings/view/settings_page.dart b/lib/settings/view/settings_page.dart new file mode 100644 index 00000000..343725ca --- /dev/null +++ b/lib/settings/view/settings_page.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +/// {@template settings_page} +/// A placeholder page for Settings. +/// {@endtemplate} +class SettingsPage extends StatelessWidget { + /// {@macro settings_page} + const SettingsPage({super.key}); + + @override + Widget build(BuildContext context) { + return const Scaffold( + body: Center( + child: Text('Settings Page'), + ), + ); + } +} From ba03899335cec544069583831245920b5aff1c18 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 10:12:48 +0100 Subject: [PATCH 23/25] refactor: remove unused useDrawer property --- lib/app/view/app_shell.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/app/view/app_shell.dart b/lib/app/view/app_shell.dart index bf7cfa67..604e6f1c 100644 --- a/lib/app/view/app_shell.dart +++ b/lib/app/view/app_shell.dart @@ -29,7 +29,6 @@ class AppShell extends StatelessWidget { @override Widget build(BuildContext context) { return AdaptiveScaffold( - useDrawer: false, selectedIndex: navigationShell.currentIndex, onSelectedIndexChange: _goBranch, destinations: [ From 54668e4e30ba7e0b410e1a3062172f309f8982b6 Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 10:13:00 +0100 Subject: [PATCH 24/25] feat(content): implement tabbed content management - Added Headlines tab - Added Categories tab - Added Sources tab - Implemented tab controller --- .../view/content_management_page.dart | 51 +++++++++++++++++-- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/lib/content_management/view/content_management_page.dart b/lib/content_management/view/content_management_page.dart index beca289c..29b65ada 100644 --- a/lib/content_management/view/content_management_page.dart +++ b/lib/content_management/view/content_management_page.dart @@ -1,17 +1,58 @@ import 'package:flutter/material.dart'; +import 'package:ht_dashboard/content_management/view/categories_page.dart'; +import 'package:ht_dashboard/content_management/view/headlines_page.dart'; +import 'package:ht_dashboard/content_management/view/sources_page.dart'; +import 'package:ht_dashboard/l10n/l10n.dart'; /// {@template content_management_page} -/// A placeholder page for Content Management. +/// A page for Content Management with tabbed navigation for sub-sections. /// {@endtemplate} -class ContentManagementPage extends StatelessWidget { +class ContentManagementPage extends StatefulWidget { /// {@macro content_management_page} const ContentManagementPage({super.key}); + @override + State createState() => _ContentManagementPageState(); +} + +class _ContentManagementPageState extends State + with SingleTickerProviderStateMixin { + late TabController _tabController; + + @override + void initState() { + super.initState(); + _tabController = TabController(length: 3, vsync: this); + } + + @override + void dispose() { + _tabController.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { - return const Scaffold( - body: Center( - child: Text('Content Management Page'), + final l10n = context.l10n; + return Scaffold( + appBar: AppBar( + title: Text(l10n.contentManagement), + bottom: TabBar( + controller: _tabController, + tabs: [ + Tab(text: l10n.headlines), + Tab(text: l10n.categories), + Tab(text: l10n.sources), + ], + ), + ), + body: TabBarView( + controller: _tabController, + children: const [ + HeadlinesPage(), + CategoriesPage(), + SourcesPage(), + ], ), ); } From 1a02b19cc6197b64213123b9c2b300063c8b2bae Mon Sep 17 00:00:00 2001 From: fulleni Date: Fri, 27 Jun 2025 10:13:08 +0100 Subject: [PATCH 25/25] refactor: Remove Scaffold from page bodies - Removed unnecessary Scaffold - Simplified page structure --- lib/content_management/view/categories_page.dart | 6 ++---- lib/content_management/view/headlines_page.dart | 6 ++---- lib/content_management/view/sources_page.dart | 6 ++---- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/lib/content_management/view/categories_page.dart b/lib/content_management/view/categories_page.dart index 17d5134d..b32c0273 100644 --- a/lib/content_management/view/categories_page.dart +++ b/lib/content_management/view/categories_page.dart @@ -9,10 +9,8 @@ class CategoriesPage extends StatelessWidget { @override Widget build(BuildContext context) { - return const Scaffold( - body: Center( - child: Text('Categories Page'), - ), + return const Center( + child: Text('Categories Page'), ); } } diff --git a/lib/content_management/view/headlines_page.dart b/lib/content_management/view/headlines_page.dart index 32009f43..851a9663 100644 --- a/lib/content_management/view/headlines_page.dart +++ b/lib/content_management/view/headlines_page.dart @@ -9,10 +9,8 @@ class HeadlinesPage extends StatelessWidget { @override Widget build(BuildContext context) { - return const Scaffold( - body: Center( - child: Text('Headlines Page'), - ), + return const Center( + child: Text('Headlines Page'), ); } } diff --git a/lib/content_management/view/sources_page.dart b/lib/content_management/view/sources_page.dart index 0006e170..3f216a7d 100644 --- a/lib/content_management/view/sources_page.dart +++ b/lib/content_management/view/sources_page.dart @@ -9,10 +9,8 @@ class SourcesPage extends StatelessWidget { @override Widget build(BuildContext context) { - return const Scaffold( - body: Center( - child: Text('Sources Page'), - ), + return const Center( + child: Text('Sources Page'), ); } }