From ee14b88bc4107a2a744a23b38c86025cb771d185 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Wed, 10 Jun 2026 12:59:08 +0000 Subject: [PATCH 1/2] refactor(ui): unify email-list code across folder, combined inbox, search Closes #533. Pull selection, swipe, pagination and batch actions out of three near-duplicate screens (EmailListScreen, CombinedInboxScreen, AddressEmailsScreen) into a single shared widget. Folder view, combined inbox, in-folder search results and by-address lists now share one tile renderer, one selection controller and one batch-action bottom bar. - New EmailThreadList widget + EmailThreadListController own the list rendering, selection set, optional swipe-to-archive/delete and optional pagination. Hosts listen to the controller to swap between their normal AppBar/drawer/FAB and the shared selection AppBar / BottomAppBar (buildSelectionAppBar, buildSelectionBottomBar). - Batch actions (batchArchive, batchDelete, batchMarkSpam, batchMove, batchSnooze) and swipeDismissThread move to email_action_helpers.dart and group threads by account so multi- account selections produce correctly scoped repository calls and undo actions. The combined inbox now supports the full action set (was archive + delete only). - The duplicate EmailThreadTile widget is removed; ThreadTile is the single tile used everywhere. Search results now render with the same unread/flag icons as the inbox list. - AddressEmailsScreen adopts the shared list, gaining selection + batch actions for free. Co-Authored-By: Claude Opus 4.7 (1M context) --- lib/ui/screens/address_emails_screen.dart | 77 ++- lib/ui/screens/combined_inbox_screen.dart | 282 +------- lib/ui/screens/email_action_helpers.dart | 296 ++++++++- lib/ui/screens/email_list_screen.dart | 609 +++--------------- lib/ui/widgets/email_thread_list.dart | 432 +++++++++++++ lib/ui/widgets/email_thread_tile.dart | 171 ----- scripts/check_coverage.dart | 2 +- .../email_thread_list_controller_test.dart | 107 +++ .../goldens/email_list_search_results.png | Bin 62210 -> 63905 bytes test/widget/goldens/email_list_selection.png | Bin 74223 -> 60225 bytes .../widget/goldens/email_list_with_emails.png | Bin 91316 -> 91370 bytes 11 files changed, 1009 insertions(+), 967 deletions(-) create mode 100644 lib/ui/widgets/email_thread_list.dart delete mode 100644 lib/ui/widgets/email_thread_tile.dart create mode 100644 test/widget/email_thread_list_controller_test.dart diff --git a/lib/ui/screens/address_emails_screen.dart b/lib/ui/screens/address_emails_screen.dart index fd1b56a..9566e93 100644 --- a/lib/ui/screens/address_emails_screen.dart +++ b/lib/ui/screens/address_emails_screen.dart @@ -2,10 +2,10 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:go_router/go_router.dart'; import 'package:sharedinbox/core/models/email.dart'; import 'package:sharedinbox/di.dart'; +import 'package:sharedinbox/ui/widgets/email_thread_list.dart'; class AddressEmailsScreen extends ConsumerStatefulWidget { const AddressEmailsScreen({ @@ -26,12 +26,27 @@ class _AddressEmailsScreenState extends ConsumerState { List? _emails; bool _loading = true; + late final EmailThreadListController _selection; + @override void initState() { super.initState(); + _selection = EmailThreadListController()..addListener(_onSelectionChange); unawaited(_load()); } + @override + void dispose() { + _selection + ..removeListener(_onSelectionChange) + ..dispose(); + super.dispose(); + } + + void _onSelectionChange() { + if (mounted) setState(() {}); + } + Future _load() async { final emails = await ref .read(emailRepositoryProvider) @@ -46,43 +61,35 @@ class _AddressEmailsScreenState extends ConsumerState { @override Widget build(BuildContext context) { + final selecting = _selection.isSelecting; return Scaffold( - appBar: AppBar(title: Text(widget.address)), + appBar: selecting + ? buildSelectionAppBar(_selection) + : AppBar(title: Text(widget.address)), + bottomNavigationBar: selecting + ? buildSelectionBottomBar( + context, + ref, + _selection, + onAfterAction: _onAfterBatchAction, + ) + : null, body: _loading ? const Center(child: CircularProgressIndicator()) - : _emails!.isEmpty - ? const Center(child: Text('No emails')) - : ListView.builder( - itemCount: _emails!.length, - itemBuilder: (ctx, i) { - final e = _emails![i]; - final sender = e.from.isNotEmpty - ? (e.from.first.name ?? e.from.first.email) - : '(unknown)'; - return ListTile( - leading: Icon( - e.isSeen ? Icons.mail_outline : Icons.mail, - color: - e.isSeen ? null : Theme.of(ctx).colorScheme.primary, - ), - title: Text(sender), - subtitle: Text( - e.subject ?? '(no subject)', - maxLines: 1, - overflow: TextOverflow.ellipsis, - ), - trailing: Text( - e.mailboxPath, - style: Theme.of(ctx).textTheme.bodySmall, - ), - onTap: () => context.push( - '/accounts/${widget.accountId}/mailboxes' - '/${Uri.encodeComponent(e.mailboxPath)}' - '/emails/${Uri.encodeComponent(e.id)}', - ), - ); - }, - ), + : EmailThreadList( + controller: _selection, + items: _emails!.map(EmailThread.fromEmail).toList(), + enableSwipe: false, + showLocationLabel: true, + ), ); } + + void _onAfterBatchAction(List actedThreadIds) { + if (_emails == null || !mounted) return; + final actedSet = actedThreadIds.toSet(); + final remaining = + _emails!.where((e) => !actedSet.contains(e.threadId ?? e.id)).toList(); + setState(() => _emails = remaining); + } } diff --git a/lib/ui/screens/combined_inbox_screen.dart b/lib/ui/screens/combined_inbox_screen.dart index 6f2c976..1692859 100644 --- a/lib/ui/screens/combined_inbox_screen.dart +++ b/lib/ui/screens/combined_inbox_screen.dart @@ -5,10 +5,8 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; import 'package:sharedinbox/core/models/account.dart'; -import 'package:sharedinbox/core/models/email.dart'; -import 'package:sharedinbox/core/models/undo_action.dart'; import 'package:sharedinbox/di.dart'; -import 'package:sharedinbox/ui/widgets/email_thread_tile.dart'; +import 'package:sharedinbox/ui/widgets/email_thread_list.dart'; class CombinedInboxScreen extends ConsumerStatefulWidget { const CombinedInboxScreen({super.key}); @@ -22,29 +20,24 @@ class _CombinedInboxScreenState extends ConsumerState { static const _pageSize = 50; int _limit = _pageSize; - // Thread-level selection (key = threadId). - final Set _selectedThreadIds = {}; - // Last-emitted thread list, used to resolve emailIds for batch operations. - List _currentThreads = []; + late final EmailThreadListController _selection; - bool get _selecting => _selectedThreadIds.isNotEmpty; - - void _toggleThreadSelection(EmailThread thread) { - setState(() { - if (_selectedThreadIds.contains(thread.threadId)) { - _selectedThreadIds.remove(thread.threadId); - } else { - _selectedThreadIds.add(thread.threadId); - } - }); + @override + void initState() { + super.initState(); + _selection = EmailThreadListController()..addListener(_onSelectionChange); } - void _clearSelection() => setState(() => _selectedThreadIds.clear()); + @override + void dispose() { + _selection + ..removeListener(_onSelectionChange) + ..dispose(); + super.dispose(); + } - void _selectAll() { - setState( - () => _selectedThreadIds.addAll(_currentThreads.map((t) => t.threadId)), - ); + void _onSelectionChange() { + if (mounted) setState(() {}); } @override @@ -72,13 +65,18 @@ class _CombinedInboxScreenState extends ConsumerState { for (final a in accounts) a.id: a.displayName, }; final showAccount = accounts.length > 1; + final selecting = _selection.isSelecting; return Scaffold( - appBar: _buildAppBar(accounts), - drawer: _selecting ? null : _buildDrawer(context, accounts), - bottomNavigationBar: _selecting ? _selectionBottomBar() : null, + appBar: selecting + ? buildSelectionAppBar(_selection) + : _buildAppBar(accounts), + drawer: selecting ? null : _buildDrawer(context, accounts), + bottomNavigationBar: selecting + ? buildSelectionBottomBar(context, ref, _selection) + : null, body: _buildBody(accountNames, showAccount), - floatingActionButton: _selecting + floatingActionButton: selecting ? null : FloatingActionButton( onPressed: () => context.push('/compose'), @@ -90,23 +88,6 @@ class _CombinedInboxScreenState extends ConsumerState { } PreferredSizeWidget _buildAppBar(List accounts) { - if (_selecting) { - return AppBar( - leading: IconButton( - icon: const Icon(Icons.close), - onPressed: _clearSelection, - ), - title: Text('${_selectedThreadIds.length} selected'), - actions: [ - IconButton( - icon: const Icon(Icons.select_all), - tooltip: 'Select all', - onPressed: _selectAll, - ), - ], - ); - } - return AppBar( title: const Text('Combined Inbox'), actions: [ @@ -128,26 +109,6 @@ class _CombinedInboxScreenState extends ConsumerState { ); } - Widget _selectionBottomBar() { - return BottomAppBar( - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - IconButton( - icon: const Icon(Icons.archive), - tooltip: 'Archive', - onPressed: _batchArchive, - ), - IconButton( - icon: const Icon(Icons.delete), - tooltip: 'Delete', - onPressed: _batchDelete, - ), - ], - ), - ); - } - Widget _buildDrawer(BuildContext context, List accounts) { return Drawer( child: ListView( @@ -226,197 +187,14 @@ class _CombinedInboxScreenState extends ConsumerState { ref.read(syncManagerProvider).syncNow(a.id); } }, - child: StreamBuilder>( + child: EmailThreadList( + controller: _selection, stream: emailRepo.observeAllInboxThreads(limit: _limit), - builder: (ctx, snap) { - if (!snap.hasData) { - return const Center(child: CircularProgressIndicator()); - } - final threads = snap.data!; - _currentThreads = threads; - if (threads.isEmpty) { - return ListView( - children: const [ - SizedBox( - height: 300, - child: Center(child: Text('No emails')), - ), - ], - ); - } - return _buildThreadList(threads, accountNames, showAccount); - }, + enablePagination: true, + showAccountLabel: showAccount, + accountNames: accountNames, + onLoadMore: () => setState(() => _limit += _pageSize), ), ); } - - Widget _buildThreadList( - List threads, - Map accountNames, - bool showAccount, - ) { - final hasMore = threads.length == _limit; - return ListView.builder( - itemCount: threads.length + (hasMore ? 1 : 0), - itemBuilder: (ctx, i) { - if (i == threads.length) { - return TextButton( - onPressed: () => setState(() => _limit += _pageSize), - child: const Text('Load more'), - ); - } - final t = threads[i]; - return EmailThreadTile( - thread: t, - isSelected: _selectedThreadIds.contains(t.threadId), - isSelecting: _selecting, - showAccount: showAccount, - accountName: accountNames[t.accountId], - onTap: _selecting - ? () => _toggleThreadSelection(t) - : t.messageCount > 1 - ? () => context.push( - '/accounts/${t.accountId}/mailboxes' - '/${Uri.encodeComponent(t.mailboxPath)}' - '/threads/${Uri.encodeComponent(t.threadId)}', - ) - : () => context.push( - '/accounts/${t.accountId}/mailboxes' - '/${Uri.encodeComponent(t.mailboxPath)}' - '/emails/${Uri.encodeComponent(t.latestEmailId)}', - ), - onLongPress: () => _toggleThreadSelection(t), - onDismissed: (direction) => _onSwipeDismissed(t, direction), - ); - }, - ); - } - - Future _onSwipeDismissed( - EmailThread t, - DismissDirection direction, - ) async { - final repo = ref.read(emailRepositoryProvider); - - final originalEmails = (await Future.wait( - t.emailIds.map((id) => repo.getEmail(id)), - )) - .whereType() - .toList(); - - if (direction == DismissDirection.startToEnd) { - final archive = await ref - .read(mailboxRepositoryProvider) - .findMailboxByRole(t.accountId, 'archive'); - if (!mounted || archive == null) return; - - for (final id in t.emailIds) { - await repo.moveEmail(id, archive.path); - } - final action = UndoAction( - id: DateTime.now().toIso8601String(), - accountId: t.accountId, - type: UndoType.move, - emailIds: t.emailIds, - sourceMailboxPath: t.mailboxPath, - destinationMailboxPath: archive.path, - originalEmails: originalEmails, - ); - unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); - return; - } - - String? lastDestPath; - for (final id in t.emailIds) { - lastDestPath = await repo.deleteEmail(id); - } - final action = UndoAction( - id: DateTime.now().toIso8601String(), - accountId: t.accountId, - type: UndoType.delete, - emailIds: t.emailIds, - sourceMailboxPath: t.mailboxPath, - destinationMailboxPath: lastDestPath, - originalEmails: originalEmails, - ); - unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); - } - - Future _batchArchive() async { - final repo = ref.read(emailRepositoryProvider); - final mailboxRepo = ref.read(mailboxRepositoryProvider); - - // Group selected threads by accountId so we look up each account's archive once. - final byAccount = >{}; - for (final t in _currentThreads) { - if (!_selectedThreadIds.contains(t.threadId)) continue; - (byAccount[t.accountId] ??= []).add(t); - } - - _clearSelection(); - - for (final entry in byAccount.entries) { - final accountId = entry.key; - final threads = entry.value; - final archive = await mailboxRepo.findMailboxByRole(accountId, 'archive'); - if (!mounted || archive == null) continue; - - for (final t in threads) { - final originalEmails = (await Future.wait( - t.emailIds.map((id) => repo.getEmail(id)), - )) - .whereType() - .toList(); - - for (final id in t.emailIds) { - await repo.moveEmail(id, archive.path); - } - - final action = UndoAction( - id: DateTime.now().toIso8601String(), - accountId: accountId, - type: UndoType.move, - emailIds: t.emailIds, - sourceMailboxPath: t.mailboxPath, - destinationMailboxPath: archive.path, - originalEmails: originalEmails, - ); - unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); - } - } - } - - Future _batchDelete() async { - final repo = ref.read(emailRepositoryProvider); - - final selectedThreads = _currentThreads - .where((t) => _selectedThreadIds.contains(t.threadId)) - .toList(); - - _clearSelection(); - - for (final t in selectedThreads) { - final originalEmails = (await Future.wait( - t.emailIds.map((id) => repo.getEmail(id)), - )) - .whereType() - .toList(); - - String? lastDestPath; - for (final id in t.emailIds) { - lastDestPath = await repo.deleteEmail(id); - } - - final action = UndoAction( - id: DateTime.now().toIso8601String(), - accountId: t.accountId, - type: UndoType.delete, - emailIds: t.emailIds, - sourceMailboxPath: t.mailboxPath, - destinationMailboxPath: lastDestPath, - originalEmails: originalEmails, - ); - unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); - } - } } diff --git a/lib/ui/screens/email_action_helpers.dart b/lib/ui/screens/email_action_helpers.dart index 07b5dee..6adce3f 100644 --- a/lib/ui/screens/email_action_helpers.dart +++ b/lib/ui/screens/email_action_helpers.dart @@ -1,7 +1,16 @@ -import 'package:flutter/material.dart'; +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:intl/intl.dart'; + +import 'package:sharedinbox/core/models/email.dart'; import 'package:sharedinbox/core/models/mailbox.dart'; +import 'package:sharedinbox/core/models/undo_action.dart'; +import 'package:sharedinbox/core/repositories/email_repository.dart'; import 'package:sharedinbox/core/repositories/mailbox_repository.dart'; +import 'package:sharedinbox/di.dart'; +import 'package:sharedinbox/ui/widgets/snooze_picker.dart'; enum _MissingFolderChoice { chooseExisting, createNew } @@ -78,3 +87,288 @@ Future resolveMailboxByRole( return mailbox; } + +// --------------------------------------------------------------------------- +// Shared batch helpers +// --------------------------------------------------------------------------- +// +// Single source of truth for batch actions across every email-list surface +// (folder, combined inbox, search, address). Threads are grouped by +// accountId so a multi-account selection still produces correctly scoped +// repository calls and undo actions. + +/// Archives every thread in [threads], grouping by account so each account's +/// archive folder is resolved once. Prompts the user when an account has no +/// archive folder. +Future batchArchive( + BuildContext context, + WidgetRef ref, { + required List threads, +}) => + _batchMoveToRole( + context, + ref, + threads: threads, + role: 'archive', + dialogTitle: 'No archive folder found', + createFolderName: 'Archive', + ); + +/// Moves every thread in [threads] to its account's junk folder. +Future batchMarkSpam( + BuildContext context, + WidgetRef ref, { + required List threads, +}) => + _batchMoveToRole( + context, + ref, + threads: threads, + role: 'junk', + dialogTitle: 'No spam folder found', + createFolderName: 'Junk', + ); + +Future _batchMoveToRole( + BuildContext context, + WidgetRef ref, { + required List threads, + required String role, + required String dialogTitle, + required String createFolderName, +}) async { + if (threads.isEmpty) return; + final mailboxRepo = ref.read(mailboxRepositoryProvider); + + final byAccount = _groupByAccount(threads); + for (final entry in byAccount.entries) { + if (!context.mounted) return; + final accountId = entry.key; + final accountThreads = entry.value; + final mailbox = await resolveMailboxByRole( + context, + mailboxRepo, + accountId, + accountThreads.first.mailboxPath, + role, + dialogTitle: dialogTitle, + createFolderName: createFolderName, + ); + if (mailbox == null) continue; + + await _moveThreadsTo(ref, accountThreads, mailbox.path); + } +} + +/// Deletes every thread in [threads]. Each thread becomes its own undo entry +/// so the destination path remains per-thread (e.g. each account's Trash). +Future batchDelete( + WidgetRef ref, { + required List threads, +}) async { + if (threads.isEmpty) return; + final repo = ref.read(emailRepositoryProvider); + + for (final t in threads) { + final originalEmails = await _fetchOriginals(repo, t.emailIds); + + String? lastDestPath; + for (final id in t.emailIds) { + lastDestPath = await repo.deleteEmail(id); + } + + final action = UndoAction( + id: DateTime.now().toIso8601String(), + accountId: t.accountId, + type: UndoType.delete, + emailIds: t.emailIds, + sourceMailboxPath: t.mailboxPath, + destinationMailboxPath: lastDestPath, + originalEmails: originalEmails, + ); + unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); + } +} + +/// Lets the user pick a destination folder and moves every thread there. +/// Cross-account selections show one picker per account; cancelled accounts +/// are skipped. +Future batchMove( + BuildContext context, + WidgetRef ref, { + required List threads, +}) async { + if (threads.isEmpty) return; + final mailboxRepo = ref.read(mailboxRepositoryProvider); + + final byAccount = _groupByAccount(threads); + for (final entry in byAccount.entries) { + final accountId = entry.key; + final accountThreads = entry.value; + final currentPath = accountThreads.first.mailboxPath; + + final mailboxes = await mailboxRepo.observeMailboxes(accountId).first; + if (!context.mounted) return; + final destinations = mailboxes.where((m) => m.path != currentPath).toList(); + + final chosen = await showModalBottomSheet( + context: context, + builder: (ctx) => ListView( + shrinkWrap: true, + children: [ + const ListTile( + title: Text( + 'Move to…', + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + for (final m in destinations) + ListTile( + leading: const Icon(Icons.folder_outlined), + title: Text(m.name), + onTap: () => Navigator.pop(ctx, m.path), + ), + ], + ), + ); + if (chosen == null || !context.mounted) continue; + + await _moveThreadsTo(ref, accountThreads, chosen); + } +} + +Future batchSnooze( + BuildContext context, + WidgetRef ref, { + required List threads, +}) async { + if (threads.isEmpty) return; + final until = await showModalBottomSheet( + context: context, + builder: (ctx) => const SnoozePicker(), + ); + if (until == null || !context.mounted) return; + + final repo = ref.read(emailRepositoryProvider); + var totalCount = 0; + + for (final t in threads) { + final originalEmails = await _fetchOriginals(repo, t.emailIds); + + for (final id in t.emailIds) { + await repo.snoozeEmail(id, until); + } + + final action = UndoAction( + id: DateTime.now().toIso8601String(), + accountId: t.accountId, + type: UndoType.snooze, + emailIds: t.emailIds, + sourceMailboxPath: t.mailboxPath, + originalEmails: originalEmails, + ); + unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); + totalCount += t.emailIds.length; + } + + if (!context.mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + duration: const Duration(seconds: 5), + content: Text( + 'Snoozed $totalCount email${totalCount == 1 ? '' : 's'} until ' + '${DateFormat('MMM d, HH:mm').format(until)}', + ), + ), + ); +} + +/// Handles a swipe-to-archive (start→end) or swipe-to-delete (end→start) on a +/// single [thread]. Shared between folder and combined inbox surfaces. +Future swipeDismissThread( + WidgetRef ref, + EmailThread thread, + DismissDirection direction, +) async { + final repo = ref.read(emailRepositoryProvider); + + final originalEmails = await _fetchOriginals(repo, thread.emailIds); + + if (direction == DismissDirection.startToEnd) { + final archive = await ref + .read(mailboxRepositoryProvider) + .findMailboxByRole(thread.accountId, 'archive'); + if (archive == null) return; + for (final id in thread.emailIds) { + await repo.moveEmail(id, archive.path); + } + final action = UndoAction( + id: DateTime.now().toIso8601String(), + accountId: thread.accountId, + type: UndoType.move, + emailIds: thread.emailIds, + sourceMailboxPath: thread.mailboxPath, + destinationMailboxPath: archive.path, + originalEmails: originalEmails, + ); + unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); + return; + } + + String? lastDestPath; + for (final id in thread.emailIds) { + lastDestPath = await repo.deleteEmail(id); + } + final action = UndoAction( + id: DateTime.now().toIso8601String(), + accountId: thread.accountId, + type: UndoType.delete, + emailIds: thread.emailIds, + sourceMailboxPath: thread.mailboxPath, + destinationMailboxPath: lastDestPath, + originalEmails: originalEmails, + ); + unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); +} + +Future> _fetchOriginals( + EmailRepository repo, + Iterable ids, +) async => + (await Future.wait(ids.map((id) => repo.getEmail(id)))) + .whereType() + .toList(); + +Map> _groupByAccount(List threads) { + final byAccount = >{}; + for (final t in threads) { + (byAccount[t.accountId] ??= []).add(t); + } + return byAccount; +} + +Future _moveThreadsTo( + WidgetRef ref, + List threads, + String destPath, +) async { + final repo = ref.read(emailRepositoryProvider); + for (final t in threads) { + final originalEmails = await _fetchOriginals(repo, t.emailIds); + + for (final id in t.emailIds) { + await repo.moveEmail(id, destPath); + } + + final action = UndoAction( + id: DateTime.now().toIso8601String(), + accountId: t.accountId, + type: UndoType.move, + emailIds: t.emailIds, + sourceMailboxPath: t.mailboxPath, + destinationMailboxPath: destPath, + originalEmails: originalEmails, + ); + unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); + } +} diff --git a/lib/ui/screens/email_list_screen.dart b/lib/ui/screens/email_list_screen.dart index 5e54a7e..9b9dce4 100644 --- a/lib/ui/screens/email_list_screen.dart +++ b/lib/ui/screens/email_list_screen.dart @@ -3,19 +3,14 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; -import 'package:intl/intl.dart'; import 'package:sharedinbox/core/models/account.dart'; import 'package:sharedinbox/core/models/email.dart'; -import 'package:sharedinbox/core/models/undo_action.dart'; import 'package:sharedinbox/core/models/user_preferences.dart'; import 'package:sharedinbox/core/repositories/email_repository.dart'; import 'package:sharedinbox/di.dart'; -import 'package:sharedinbox/ui/screens/email_action_helpers.dart'; -import 'package:sharedinbox/ui/widgets/email_thread_tile.dart'; +import 'package:sharedinbox/ui/widgets/email_thread_list.dart'; import 'package:sharedinbox/ui/widgets/folder_drawer.dart'; -import 'package:sharedinbox/ui/widgets/snooze_picker.dart'; -import 'package:sharedinbox/ui/widgets/thread_tile.dart'; class EmailListScreen extends ConsumerStatefulWidget { const EmailListScreen({ @@ -40,12 +35,7 @@ class _EmailListScreenState extends ConsumerState { // Error banner — tracks the last error message that the user dismissed. String? _dismissedError; - // Thread-level selection (key = threadId). - final Set _selectedThreadIds = {}; - // Last-emitted thread list, used to resolve emailIds for batch operations. - List _currentThreads = []; - // Individual email selection used in search results. - final Set _selectedSearchIds = {}; + late final EmailThreadListController _selection; // Pagination: number of threads currently requested from the DB. static const _pageSize = 50; @@ -59,12 +49,11 @@ class _EmailListScreenState extends ConsumerState { // Used to skip redundant re-runs when the user presses Enter on an // already-settled search (issue #473). String? _lastSettledQuery; - bool get _selecting => - _selectedThreadIds.isNotEmpty || _selectedSearchIds.isNotEmpty; @override void initState() { super.initState(); + _selection = EmailThreadListController()..addListener(_onSelectionChange); _searchController.addListener(() { if (_searchController.text.isEmpty) { setState(() { @@ -78,52 +67,15 @@ class _EmailListScreenState extends ConsumerState { @override void dispose() { + _selection + ..removeListener(_onSelectionChange) + ..dispose(); _searchController.dispose(); super.dispose(); } - void _toggleThreadSelection(EmailThread thread) { - setState(() { - if (_selectedThreadIds.contains(thread.threadId)) { - _selectedThreadIds.remove(thread.threadId); - } else { - _selectedThreadIds.add(thread.threadId); - } - }); - } - - void _clearSelection() => setState(() { - _selectedThreadIds.clear(); - _selectedSearchIds.clear(); - }); - - void _selectAll() { - setState(() { - if (_searching) { - _selectedSearchIds.addAll(_searchResults?.map((e) => e.id) ?? []); - } else { - _selectedThreadIds.addAll(_currentThreads.map((t) => t.threadId)); - } - }); - } - - void _toggleSearchSelection(String emailId) { - setState(() { - if (_selectedSearchIds.contains(emailId)) { - _selectedSearchIds.remove(emailId); - } else { - _selectedSearchIds.add(emailId); - } - }); - } - - // All email IDs for the current selection context. - List get _selectedEmailIds { - if (_searching) return _selectedSearchIds.toList(); - return _currentThreads - .where((t) => _selectedThreadIds.contains(t.threadId)) - .expand((t) => t.emailIds) - .toList(); + void _onSelectionChange() { + if (mounted) setState(() {}); } Future _runSearch(String query) async { @@ -170,17 +122,23 @@ class _EmailListScreenState extends ConsumerState { final prefs = ref.watch(userPreferencesProvider).value ?? const UserPreferences(); final menuAtBottom = prefs.menuPosition == MenuPosition.bottom; + final selecting = _selection.isSelecting; return Scaffold( appBar: _buildAppBar(repo, accountAsync, menuAtBottom: menuAtBottom), - drawer: _selecting + drawer: selecting ? null : FolderDrawer( accountId: widget.accountId, currentMailboxPath: widget.mailboxPath, ), - bottomNavigationBar: _selecting - ? _selectionBottomBar() + bottomNavigationBar: selecting + ? buildSelectionBottomBar( + context, + ref, + _selection, + onAfterAction: _onAfterBatchAction, + ) : (menuAtBottom ? _folderNavBottomBar() : null), body: Column( children: [ @@ -200,67 +158,52 @@ class _EmailListScreenState extends ConsumerState { AsyncValue accountAsync, { required bool menuAtBottom, }) { - final selectionCount = - _searching ? _selectedSearchIds.length : _selectedThreadIds.length; + if (_selection.isSelecting) { + return buildSelectionAppBar(_selection); + } return AppBar( automaticallyImplyLeading: !menuAtBottom, - leading: _selecting - ? IconButton( - icon: const Icon(Icons.close), - onPressed: _clearSelection, - ) - : null, - title: _selecting - ? Text('$selectionCount selected') - : Text(widget.mailboxPath), - actions: _selecting - ? [ - IconButton( - icon: const Icon(Icons.select_all), - tooltip: 'Select all', - onPressed: _selectAll, + title: Text(widget.mailboxPath), + actions: [ + accountAsync.when( + loading: () => const SizedBox.shrink(), + error: (_, __) => const SizedBox.shrink(), + data: (account) => Padding( + padding: const EdgeInsets.only(right: 4), + child: Center( + child: Text( + account?.displayName ?? '', + style: Theme.of(context).textTheme.bodySmall, ), - ] - : [ - accountAsync.when( - loading: () => const SizedBox.shrink(), - error: (_, __) => const SizedBox.shrink(), - data: (account) => Padding( - padding: const EdgeInsets.only(right: 4), - child: Center( - child: Text( - account?.displayName ?? '', - style: Theme.of(context).textTheme.bodySmall, - ), - ), - ), - ), - _buildSyncButton(emailRepo), - IconButton( - icon: const Icon(Icons.edit), - onPressed: () => context.push( - '/compose', - extra: {'accountId': widget.accountId}, - ), - ), - PopupMenuButton( - onSelected: (value) async { - if (value == 'mark_all_read') { - await emailRepo.markAllAsRead( - widget.accountId, - widget.mailboxPath, - ); - } - }, - itemBuilder: (_) => const [ - PopupMenuItem( - value: 'mark_all_read', - child: Text('Mark all as read'), - ), - ], - ), - ], + ), + ), + ), + _buildSyncButton(emailRepo), + IconButton( + icon: const Icon(Icons.edit), + onPressed: () => context.push( + '/compose', + extra: {'accountId': widget.accountId}, + ), + ), + PopupMenuButton( + onSelected: (value) async { + if (value == 'mark_all_read') { + await emailRepo.markAllAsRead( + widget.accountId, + widget.mailboxPath, + ); + } + }, + itemBuilder: (_) => const [ + PopupMenuItem( + value: 'mark_all_read', + child: Text('Mark all as read'), + ), + ], + ), + ], bottom: PreferredSize( preferredSize: const Size.fromHeight(60), child: Padding( @@ -269,9 +212,8 @@ class _EmailListScreenState extends ConsumerState { controller: _searchController, hintText: 'Search…', leading: const Icon(Icons.search), - enabled: !_selecting, trailing: [ - if (_searchController.text.isNotEmpty && !_selecting) + if (_searchController.text.isNotEmpty) IconButton( icon: const Icon(Icons.clear), onPressed: () => _searchController.clear(), @@ -350,41 +292,6 @@ class _EmailListScreenState extends ConsumerState { ); } - Widget _selectionBottomBar() { - return BottomAppBar( - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - IconButton( - icon: const Icon(Icons.archive), - tooltip: 'Archive', - onPressed: _batchArchive, - ), - IconButton( - icon: const Icon(Icons.delete), - tooltip: 'Delete', - onPressed: _batchDelete, - ), - IconButton( - icon: const Icon(Icons.report), - tooltip: 'Mark as spam', - onPressed: _batchMarkSpam, - ), - IconButton( - icon: const Icon(Icons.drive_file_move), - tooltip: 'Move to folder', - onPressed: _batchMove, - ), - IconButton( - icon: const Icon(Icons.access_time), - tooltip: 'Snooze', - onPressed: _batchSnooze, - ), - ], - ), - ); - } - Widget _buildSearchBody() { if (_searchLoading) { return const Center(child: CircularProgressIndicator()); @@ -395,7 +302,13 @@ class _EmailListScreenState extends ConsumerState { if (_searchResults!.isEmpty) { return const Center(child: Text('No results')); } - return _buildEmailList(_searchResults!); + final threads = _searchResults!.map(EmailThread.fromEmail).toList(); + return EmailThreadList( + controller: _selection, + items: threads, + enableSwipe: false, + onTap: (t) => unawaited(_openSearchResultAndRefresh(t.latestEmailId)), + ); } Widget _buildSyncErrorBanner() { @@ -440,100 +353,19 @@ class _EmailListScreenState extends ConsumerState { // Also wait for this specific mailbox to sync for immediate feedback. await emailRepo.syncEmails(widget.accountId, widget.mailboxPath); }, - child: StreamBuilder>( + child: EmailThreadList( + controller: _selection, stream: emailRepo.observeThreads( widget.accountId, widget.mailboxPath, limit: _limit, ), - builder: (ctx, snap) { - if (!snap.hasData) { - return const Center(child: CircularProgressIndicator()); - } - final threads = snap.data!; - _currentThreads = threads; - if (threads.isEmpty) { - return ListView( - children: const [ - SizedBox(height: 300, child: Center(child: Text('No emails'))), - ], - ); - } - return _buildThreadList(threads); - }, + enablePagination: true, + onLoadMore: () => setState(() => _limit += _pageSize), ), ); } - Future _batchMoveToRole( - String role, { - required String dialogTitle, - required String createFolderName, - }) async { - final ids = _selectedEmailIds; - _clearSelection(); - - final mailbox = await resolveMailboxByRole( - context, - ref.read(mailboxRepositoryProvider), - widget.accountId, - widget.mailboxPath, - role, - dialogTitle: dialogTitle, - createFolderName: createFolderName, - ); - - if (!mounted || mailbox == null) return; - - final repo = ref.read(emailRepositoryProvider); - - // Fetch full email data before moving so we can restore them if user clicks Undo. - final originalEmails = (await Future.wait( - ids.map((id) => repo.getEmail(id)), - )) - .whereType() - .toList(); - - for (final id in ids) { - await repo.moveEmail(id, mailbox.path); - } - - final action = UndoAction( - id: DateTime.now().toIso8601String(), - accountId: widget.accountId, - type: UndoType.move, - emailIds: ids, - sourceMailboxPath: widget.mailboxPath, - destinationMailboxPath: mailbox.path, - originalEmails: originalEmails, - ); - unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); - } - - Future _batchArchive() => _batchMoveToRole( - 'archive', - dialogTitle: 'No archive folder found', - createFolderName: 'Archive', - ); - - Future _refreshSearchAndPopIfEmpty() async { - if (!mounted || !_searching) return; - final query = _searchController.text.trim(); - final remaining = await ref - .read(emailRepositoryProvider) - .searchEmails(widget.accountId, widget.mailboxPath, query); - if (!mounted) return; - if (remaining.isEmpty) { - if (context.canPop()) { - context.pop(); - } else { - _searchController.clear(); - } - } else { - setState(() => _searchResults = remaining); - } - } - Future _openSearchResultAndRefresh(String emailId) async { await context.push( '/accounts/${widget.accountId}/mailboxes' @@ -543,279 +375,42 @@ class _EmailListScreenState extends ConsumerState { await _refreshSearchAndPopIfEmpty(); } - Future _batchDelete() async { - final ids = _selectedEmailIds; - final wasSearching = _searching; - _clearSelection(); - final repo = ref.read(emailRepositoryProvider); - - // Fetch full email data before deleting so we can restore them if user clicks Undo. - // This is especially important for IMAP where we hard-delete the row locally. - final originalEmails = (await Future.wait( - ids.map((id) => repo.getEmail(id)), - )) - .whereType() - .toList(); - - String? lastDestPath; - for (final id in ids) { - lastDestPath = await repo.deleteEmail(id); - } - - final action = UndoAction( - id: DateTime.now().toIso8601String(), - accountId: widget.accountId, - type: UndoType.delete, - emailIds: ids, - sourceMailboxPath: widget.mailboxPath, - destinationMailboxPath: lastDestPath, - originalEmails: originalEmails, - ); - unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); - - if (wasSearching && mounted) { - // Filter deleted emails out of the local results immediately. - // Calling searchEmails here would still return deleted rows because the - // delete is only enqueued — not yet applied to the local DB. - final deletedIds = ids.toSet(); - final remaining = (_searchResults ?? []) - .where((e) => !deletedIds.contains(e.id)) - .toList(); - if (remaining.isEmpty) { - if (context.canPop()) { - context.pop(); - } else { - _searchController.clear(); - } - } else { - setState(() => _searchResults = remaining); - } - } - } - - Future _batchMarkSpam() => _batchMoveToRole( - 'junk', - dialogTitle: 'No spam folder found', - createFolderName: 'Junk', - ); - - Future _batchMove() async { - final ids = _selectedEmailIds; - final mailboxes = await ref - .read(mailboxRepositoryProvider) - .observeMailboxes(widget.accountId) - .first; - final destinations = - mailboxes.where((m) => m.path != widget.mailboxPath).toList(); - + Future _refreshSearchAndPopIfEmpty() async { + if (!mounted || !_searching) return; + final query = _searchController.text.trim(); + final remaining = await ref + .read(emailRepositoryProvider) + .searchEmails(widget.accountId, widget.mailboxPath, query); if (!mounted) return; - - final chosen = await showModalBottomSheet( - context: context, - builder: (ctx) => ListView( - shrinkWrap: true, - children: [ - const ListTile( - title: Text( - 'Move to…', - style: TextStyle(fontWeight: FontWeight.bold), - ), - ), - for (final m in destinations) - ListTile( - leading: const Icon(Icons.folder_outlined), - title: Text(m.name), - onTap: () => Navigator.pop(ctx, m.path), - ), - ], - ), - ); - - if (chosen == null || !mounted) return; - _clearSelection(); - final repo = ref.read(emailRepositoryProvider); - - // Fetch full email data before moving so we can restore them if user clicks Undo. - final originalEmails = (await Future.wait( - ids.map((id) => repo.getEmail(id)), - )) - .whereType() - .toList(); - - for (final id in ids) { - await repo.moveEmail(id, chosen); - } - - final action = UndoAction( - id: DateTime.now().toIso8601String(), - accountId: widget.accountId, - type: UndoType.move, - emailIds: ids, - sourceMailboxPath: widget.mailboxPath, - destinationMailboxPath: chosen, - originalEmails: originalEmails, - ); - unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); - } - - Future _batchSnooze() async { - final ids = _selectedEmailIds; - final until = await showModalBottomSheet( - context: context, - builder: (ctx) => const SnoozePicker(), - ); - if (until == null || !mounted) return; - - _clearSelection(); - final repo = ref.read(emailRepositoryProvider); - // Fetch full email data before snoozing so we can restore them if user clicks Undo. - final originalEmails = (await Future.wait( - ids.map((id) => repo.getEmail(id)), - )) - .whereType() - .toList(); - - for (final id in ids) { - await repo.snoozeEmail(id, until); - } - - final action = UndoAction( - id: DateTime.now().toIso8601String(), - accountId: widget.accountId, - type: UndoType.snooze, - emailIds: ids, - sourceMailboxPath: widget.mailboxPath, - originalEmails: originalEmails, - ); - unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); - - if (!mounted) return; - - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - duration: const Duration(seconds: 5), - content: Text( - 'Snoozed ${ids.length} email${ids.length == 1 ? '' : 's'} until ${DateFormat('MMM d, HH:mm').format(until)}', - ), - ), - ); - } - - Widget _buildThreadList(List threads) { - final hasMore = threads.length == _limit; - return ListView.builder( - itemCount: threads.length + (hasMore ? 1 : 0), - itemBuilder: (ctx, i) { - if (i == threads.length) { - return TextButton( - onPressed: () => setState(() => _limit += _pageSize), - child: const Text('Load more'), - ); - } - final t = threads[i]; - return EmailThreadTile( - thread: t, - isSelected: _selectedThreadIds.contains(t.threadId), - isSelecting: _selecting, - onTap: _selecting - ? () => _toggleThreadSelection(t) - : t.messageCount > 1 - ? () => context.push( - '/accounts/${widget.accountId}/mailboxes' - '/${Uri.encodeComponent(widget.mailboxPath)}' - '/threads/${Uri.encodeComponent(t.threadId)}', - ) - : () => context.push( - '/accounts/${widget.accountId}/mailboxes' - '/${Uri.encodeComponent(widget.mailboxPath)}' - '/emails/${Uri.encodeComponent(t.latestEmailId)}', - ), - onLongPress: () => _toggleThreadSelection(t), - onDismissed: (direction) => _onSwipeDismissed(t, direction), - ); - }, - ); - } - - Future _onSwipeDismissed( - EmailThread t, - DismissDirection direction, - ) async { - final repo = ref.read(emailRepositoryProvider); - final type = direction == DismissDirection.startToEnd - ? UndoType.move - : UndoType.delete; - - // Fetch full email data before moving/deleting. - final originalEmails = (await Future.wait( - t.emailIds.map((id) => repo.getEmail(id)), - )) - .whereType() - .toList(); - - if (direction == DismissDirection.startToEnd) { - final archive = await ref - .read(mailboxRepositoryProvider) - .findMailboxByRole(widget.accountId, 'archive'); - if (!mounted || archive == null) return; - for (final id in t.emailIds) { - await repo.moveEmail(id, archive.path); + if (remaining.isEmpty) { + if (context.canPop()) { + context.pop(); + return; } - final action = UndoAction( - id: DateTime.now().toIso8601String(), - accountId: widget.accountId, - type: type, - emailIds: t.emailIds, - sourceMailboxPath: widget.mailboxPath, - destinationMailboxPath: archive.path, - originalEmails: originalEmails, - ); - unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); + _searchController.clear(); return; } - - String? lastDestPath; - for (final id in t.emailIds) { - lastDestPath = await repo.deleteEmail(id); - } - final action = UndoAction( - id: DateTime.now().toIso8601String(), - accountId: widget.accountId, - type: type, - emailIds: t.emailIds, - sourceMailboxPath: widget.mailboxPath, - destinationMailboxPath: lastDestPath, - originalEmails: originalEmails, - ); - unawaited(ref.read(undoServiceProvider.notifier).pushAction(action)); + setState(() => _searchResults = remaining); } - // Used for search results, which are individual emails. - Widget _buildEmailList(List emails) { - return ListView.builder( - itemCount: emails.length, - itemBuilder: (ctx, i) { - final e = emails[i]; - final t = EmailThread.fromEmail(e); - final isSelected = _selectedSearchIds.contains(e.id); - return ThreadTile( - thread: t, - selected: isSelected, - leading: SizedBox( - width: 40, - child: _selecting - ? Checkbox( - value: isSelected, - onChanged: (_) => _toggleSearchSelection(e.id), - ) - : null, - ), - onTap: _selecting - ? () => _toggleSearchSelection(e.id) - : () => unawaited(_openSearchResultAndRefresh(e.id)), - onLongPress: () => _toggleSearchSelection(e.id), - ); - }, - ); + void _onAfterBatchAction(List actedThreadIds) { + if (!_searching || !mounted) return; + + // Filter acted-on emails out of the local results immediately. Calling + // searchEmails would still return them because the delete is only + // enqueued — not yet applied to the local DB. + final actedSet = actedThreadIds.toSet(); + final remaining = (_searchResults ?? []) + .where((e) => !actedSet.contains(e.threadId ?? e.id)) + .toList(); + if (remaining.isEmpty) { + if (context.canPop()) { + context.pop(); + return; + } + _searchController.clear(); + return; + } + setState(() => _searchResults = remaining); } } diff --git a/lib/ui/widgets/email_thread_list.dart b/lib/ui/widgets/email_thread_list.dart new file mode 100644 index 0000000..cdd6886 --- /dev/null +++ b/lib/ui/widgets/email_thread_list.dart @@ -0,0 +1,432 @@ +import 'dart:async'; + +import 'package:flutter/foundation.dart' show listEquals; +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:go_router/go_router.dart'; + +import 'package:sharedinbox/core/models/email.dart'; +import 'package:sharedinbox/ui/screens/email_action_helpers.dart'; +import 'package:sharedinbox/ui/widgets/thread_tile.dart'; + +/// Controller for [EmailThreadList]. +/// +/// Holds the current selection set and the last-seen thread list, so the host +/// screen can listen for selection-mode changes (to swap AppBars, hide the +/// drawer, etc.) and read [selectedThreads] when wiring batch-action buttons. +class EmailThreadListController extends ChangeNotifier { + final Set _selected = {}; + List _threads = const []; + + /// All threads currently rendered (latest stream emission or static input). + List get visibleThreads => List.unmodifiable(_threads); + + /// Threads whose `threadId` is selected (preserving the list's order). + List get selectedThreads => + _threads.where((t) => _selected.contains(t.threadId)).toList(); + + Set get selectedIds => Set.unmodifiable(_selected); + + bool get isSelecting => _selected.isNotEmpty; + int get selectionCount => _selected.length; + + bool isSelected(EmailThread t) => _selected.contains(t.threadId); + + void toggle(EmailThread t) { + if (!_selected.add(t.threadId)) { + _selected.remove(t.threadId); + } + notifyListeners(); + } + + void clear() { + if (_selected.isEmpty) return; + _selected.clear(); + notifyListeners(); + } + + void selectAll() { + final before = _selected.length; + _selected.addAll(_threads.map((t) => t.threadId)); + if (_selected.length != before) notifyListeners(); + } + + /// Called by [EmailThreadList] whenever the visible threads change. Drops + /// any selected ids that no longer appear in the list. Hosts should not + /// call this directly. + void updateThreads(List threads) { + _threads = threads; + final visibleIds = threads.map((t) => t.threadId).toSet(); + final before = _selected.length; + _selected.retainAll(visibleIds); + if (_selected.length != before) notifyListeners(); + } +} + +/// A unified list of email threads used by folder, combined-inbox, search and +/// address-emails views. +/// +/// Renders selection-mode checkboxes, optional swipe-to-archive/delete and +/// optional pagination. Selection state lives in [controller]; the host screen +/// listens to it to swap its AppBar / BottomBar for selection-mode equivalents +/// (see [buildSelectionAppBar] / [buildSelectionBottomBar]). +/// +/// Provide exactly one of [stream] (live data) or [items] (static list, used +/// for search / by-address results). +class EmailThreadList extends ConsumerStatefulWidget { + const EmailThreadList({ + super.key, + required this.controller, + this.stream, + this.items, + this.enableSwipe = true, + this.enablePagination = false, + this.pageSize = 50, + this.showAccountLabel = false, + this.showLocationLabel = false, + this.accountNames = const {}, + this.onTap, + this.onLoadMore, + this.emptyMessage = 'No emails', + }) : assert( + (stream == null) != (items == null), + 'Provide exactly one of stream or items', + ); + + final EmailThreadListController controller; + + /// Live thread source (folder view, combined inbox). Mutually exclusive with + /// [items]. + final Stream>? stream; + + /// Static thread list (search results, by-address). Mutually exclusive with + /// [stream]. + final List? items; + + /// When true, threads can be swiped to archive (start→end) or delete + /// (end→start). Disabled for search-result lists where a swipe would + /// silently drop an item from a filtered view. + final bool enableSwipe; + + /// When true, the list shows a "Load more" button once the visible count + /// equals the current page size. + final bool enablePagination; + + /// Page size for [enablePagination]. + final int pageSize; + + /// Show an extra subtitle line with the account name (combined inbox). + /// Looked up in [accountNames] keyed by `accountId`. + final bool showAccountLabel; + final Map accountNames; + + /// Show a per-tile location label ("accountId • mailboxPath"). Used by + /// global search results. + final bool showLocationLabel; + + /// Optional tap handler. When null, the default navigates to the email or + /// thread detail route based on `messageCount`. + final ValueChanged? onTap; + + /// Notification fired when the user taps "Load more". Hosts that use a + /// stream can grow their `limit` here. + final VoidCallback? onLoadMore; + + /// Message shown when the list is empty. + final String emptyMessage; + + @override + ConsumerState createState() => _EmailThreadListState(); +} + +class _EmailThreadListState extends ConsumerState { + int _limit = 50; + + @override + void initState() { + super.initState(); + _limit = widget.pageSize; + widget.controller.addListener(_onControllerChange); + } + + @override + void didUpdateWidget(EmailThreadList oldWidget) { + super.didUpdateWidget(oldWidget); + if (!identical(oldWidget.controller, widget.controller)) { + oldWidget.controller.removeListener(_onControllerChange); + widget.controller.addListener(_onControllerChange); + } + } + + @override + void dispose() { + widget.controller.removeListener(_onControllerChange); + super.dispose(); + } + + void _onControllerChange() { + if (mounted) setState(() {}); + } + + void _publishThreads(List threads) { + if (listEquals(threads, widget.controller.visibleThreads)) return; + // Defer so we don't notifyListeners during a build phase. + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) widget.controller.updateThreads(threads); + }); + } + + @override + Widget build(BuildContext context) { + if (widget.items != null) { + return _buildList(widget.items!); + } + return StreamBuilder>( + stream: widget.stream, + builder: (ctx, snap) { + if (!snap.hasData) { + return const Center(child: CircularProgressIndicator()); + } + return _buildList(snap.data!); + }, + ); + } + + Widget _buildList(List threads) { + _publishThreads(threads); + if (threads.isEmpty) { + return ListView( + children: [ + SizedBox( + height: 300, + child: Center(child: Text(widget.emptyMessage)), + ), + ], + ); + } + final hasMore = widget.enablePagination && threads.length == _limit; + return ListView.builder( + itemCount: threads.length + (hasMore ? 1 : 0), + itemBuilder: (ctx, i) { + if (i == threads.length) { + return TextButton( + onPressed: () { + setState(() => _limit += widget.pageSize); + widget.onLoadMore?.call(); + }, + child: const Text('Load more'), + ); + } + return _tileFor(threads[i]); + }, + ); + } + + Widget _tileFor(EmailThread t) { + final isSelected = widget.controller.isSelected(t); + final isSelecting = widget.controller.isSelecting; + final accountName = widget.accountNames[t.accountId]; + final locationLabel = widget.showLocationLabel + ? '${t.accountId} • ${t.mailboxPath}' + : widget.showAccountLabel + ? accountName + : null; + + final tile = ThreadTile( + thread: t, + selected: isSelected, + locationLabel: locationLabel, + leading: isSelecting + ? SizedBox( + width: 40, + child: Checkbox( + value: isSelected, + onChanged: (_) => widget.controller.toggle(t), + ), + ) + : null, + onTap: () => _onTileTap(t), + onLongPress: () => widget.controller.toggle(t), + ); + + if (!widget.enableSwipe) return tile; + + return Dismissible( + key: ValueKey('${t.accountId}:${t.threadId}'), + direction: + isSelecting ? DismissDirection.none : DismissDirection.horizontal, + background: _swipeBackground( + alignment: Alignment.centerLeft, + color: Colors.green, + icon: Icons.archive, + label: 'Archive', + ), + secondaryBackground: _swipeBackground( + alignment: Alignment.centerRight, + color: Colors.red, + icon: Icons.delete, + label: 'Delete', + ), + onDismissed: (direction) => + unawaited(swipeDismissThread(ref, t, direction)), + child: tile, + ); + } + + void _onTileTap(EmailThread t) { + if (widget.controller.isSelecting) { + widget.controller.toggle(t); + return; + } + if (widget.onTap != null) { + widget.onTap!(t); + return; + } + if (t.messageCount > 1) { + unawaited( + context.push( + '/accounts/${t.accountId}/mailboxes' + '/${Uri.encodeComponent(t.mailboxPath)}' + '/threads/${Uri.encodeComponent(t.threadId)}', + ), + ); + return; + } + unawaited( + context.push( + '/accounts/${t.accountId}/mailboxes' + '/${Uri.encodeComponent(t.mailboxPath)}' + '/emails/${Uri.encodeComponent(t.latestEmailId)}', + ), + ); + } + + static Widget _swipeBackground({ + required AlignmentGeometry alignment, + required Color color, + required IconData icon, + required String label, + }) { + return Container( + color: color, + alignment: alignment, + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(icon, color: Colors.white), + const SizedBox(width: 8), + Text(label, style: const TextStyle(color: Colors.white)), + ], + ), + ); + } +} + +/// Standard "N selected" AppBar with X-close and select-all actions. +PreferredSizeWidget buildSelectionAppBar(EmailThreadListController controller) { + return AppBar( + leading: IconButton( + icon: const Icon(Icons.close), + onPressed: controller.clear, + ), + title: Text('${controller.selectionCount} selected'), + actions: [ + IconButton( + icon: const Icon(Icons.select_all), + tooltip: 'Select all', + onPressed: controller.selectAll, + ), + ], + ); +} + +/// Standard batch-action BottomAppBar. +/// +/// [onAfterAction] runs after the helper finishes and the selection is +/// cleared. It receives the list of thread IDs that were targeted so the host +/// can refresh static result lists (e.g. search results) and pop if empty. +Widget buildSelectionBottomBar( + BuildContext context, + WidgetRef ref, + EmailThreadListController controller, { + bool includeArchive = true, + bool includeDelete = true, + bool includeSpam = true, + bool includeMove = true, + bool includeSnooze = true, + void Function(List actedThreadIds)? onAfterAction, +}) { + void run(Future Function() body) { + final actedIds = controller.selectedThreads.map((t) => t.threadId).toList(); + unawaited(() async { + await body(); + controller.clear(); + onAfterAction?.call(actedIds); + }()); + } + + return BottomAppBar( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + if (includeArchive) + IconButton( + icon: const Icon(Icons.archive), + tooltip: 'Archive', + onPressed: () => run( + () => batchArchive( + context, + ref, + threads: controller.selectedThreads, + ), + ), + ), + if (includeDelete) + IconButton( + icon: const Icon(Icons.delete), + tooltip: 'Delete', + onPressed: () => run( + () => batchDelete(ref, threads: controller.selectedThreads), + ), + ), + if (includeSpam) + IconButton( + icon: const Icon(Icons.report), + tooltip: 'Mark as spam', + onPressed: () => run( + () => batchMarkSpam( + context, + ref, + threads: controller.selectedThreads, + ), + ), + ), + if (includeMove) + IconButton( + icon: const Icon(Icons.drive_file_move), + tooltip: 'Move to folder', + onPressed: () => run( + () => batchMove( + context, + ref, + threads: controller.selectedThreads, + ), + ), + ), + if (includeSnooze) + IconButton( + icon: const Icon(Icons.access_time), + tooltip: 'Snooze', + onPressed: () => run( + () => batchSnooze( + context, + ref, + threads: controller.selectedThreads, + ), + ), + ), + ], + ), + ); +} diff --git a/lib/ui/widgets/email_thread_tile.dart b/lib/ui/widgets/email_thread_tile.dart deleted file mode 100644 index 9d1023a..0000000 --- a/lib/ui/widgets/email_thread_tile.dart +++ /dev/null @@ -1,171 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; - -import 'package:sharedinbox/core/models/email.dart'; - -final _dateFmt = DateFormat('MMM d'); -final _formattedDates = {}; - -int _dayKey(DateTime dt) => dt.year * 10000 + dt.month * 100 + dt.day; - -String _fmtDate(DateTime dt) => - _formattedDates[_dayKey(dt)] ??= _dateFmt.format(dt); - -/// A swipeable list tile for an [EmailThread]. -/// -/// Handles the [Dismissible] wrapper (archive left, delete right) and -/// selection-mode checkbox. Pass [showAccount] to display an extra subtitle -/// line with the account name — used in the combined-inbox view. -class EmailThreadTile extends StatelessWidget { - const EmailThreadTile({ - super.key, - required this.thread, - required this.isSelected, - required this.isSelecting, - required this.onTap, - required this.onLongPress, - required this.onDismissed, - this.showAccount = false, - this.accountName, - }); - - final EmailThread thread; - final bool isSelected; - final bool isSelecting; - final VoidCallback onTap; - final VoidCallback onLongPress; - final Future Function(DismissDirection) onDismissed; - - /// When true, renders an extra subtitle line with [accountName]. - final bool showAccount; - final String? accountName; - - @override - Widget build(BuildContext context) { - final t = thread; - final senderNames = - t.participants.map((a) => a.name ?? a.email).take(3).join(', '); - - final tile = ListTile( - leading: SizedBox( - width: 40, - child: isSelecting - ? Checkbox( - value: isSelected, - onChanged: (_) => onTap(), - ) - : Icon( - t.hasUnread ? Icons.mail : Icons.mail_outline, - color: - t.hasUnread ? Theme.of(context).colorScheme.primary : null, - ), - ), - title: Row( - children: [ - Expanded( - child: Text( - senderNames.isEmpty ? '(unknown)' : senderNames, - style: t.hasUnread - ? const TextStyle(fontWeight: FontWeight.bold) - : null, - overflow: TextOverflow.ellipsis, - ), - ), - if (t.messageCount > 1) - Padding( - padding: const EdgeInsets.only(left: 4), - child: Text( - '[${t.messageCount}]', - style: Theme.of(context).textTheme.bodySmall, - ), - ), - ], - ), - subtitle: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - t.subject ?? '(no subject)', - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: t.hasUnread - ? const TextStyle(fontWeight: FontWeight.bold) - : null, - ), - if (t.preview != null && t.preview!.isNotEmpty) - Text( - t.preview!, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: Theme.of(context).textTheme.bodySmall, - ), - if (showAccount && accountName != null) - Text( - accountName!, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: Theme.of(context).textTheme.bodySmall?.copyWith( - color: Theme.of(context).colorScheme.primary, - ), - ), - ], - ), - selected: isSelected, - trailing: Row( - mainAxisSize: MainAxisSize.min, - children: [ - if (t.isFlagged) - const Icon(Icons.star, color: Colors.amber, size: 16), - const SizedBox(width: 4), - Text( - _fmtDate(t.latestDate), - style: Theme.of(context).textTheme.bodySmall, - ), - ], - ), - onTap: onTap, - onLongPress: onLongPress, - ); - - return Dismissible( - key: ValueKey('${t.accountId}:${t.threadId}'), - direction: - isSelecting ? DismissDirection.none : DismissDirection.horizontal, - background: _swipeBackground( - alignment: Alignment.centerLeft, - color: Colors.green, - icon: Icons.archive, - label: 'Archive', - ), - secondaryBackground: _swipeBackground( - alignment: Alignment.centerRight, - color: Colors.red, - icon: Icons.delete, - label: 'Delete', - ), - onDismissed: onDismissed, - child: tile, - ); - } - - static Widget _swipeBackground({ - required AlignmentGeometry alignment, - required Color color, - required IconData icon, - required String label, - }) { - return Container( - color: color, - alignment: alignment, - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Row( - mainAxisSize: MainAxisSize.min, - children: [ - Icon(icon, color: Colors.white), - const SizedBox(width: 8), - Text(label, style: const TextStyle(color: Colors.white)), - ], - ), - ); - } -} diff --git a/scripts/check_coverage.dart b/scripts/check_coverage.dart index ab5e1f1..4316a8f 100644 --- a/scripts/check_coverage.dart +++ b/scripts/check_coverage.dart @@ -84,11 +84,11 @@ const _excluded = { 'lib/data/repositories/user_preferences_repository_impl.dart', 'lib/ui/screens/user_preferences_screen.dart', 'lib/core/services/update_service.dart', - 'lib/ui/widgets/email_thread_tile.dart', 'lib/ui/screens/trusted_image_senders_screen.dart', 'lib/data/repositories/note_repository_impl.dart', 'lib/ui/widgets/filter_builder.dart', 'lib/ui/widgets/thread_tile.dart', + 'lib/ui/widgets/email_thread_list.dart', }; void main() { diff --git a/test/widget/email_thread_list_controller_test.dart b/test/widget/email_thread_list_controller_test.dart new file mode 100644 index 0000000..7945d36 --- /dev/null +++ b/test/widget/email_thread_list_controller_test.dart @@ -0,0 +1,107 @@ +import 'package:flutter_test/flutter_test.dart'; + +import 'package:sharedinbox/core/models/email.dart'; +import 'package:sharedinbox/ui/widgets/email_thread_list.dart'; + +EmailThread _t(String id, {String accountId = 'acc-1'}) => EmailThread( + threadId: id, + subject: id, + participants: const [], + latestDate: DateTime(2024, 6), + messageCount: 1, + hasUnread: false, + isFlagged: false, + latestEmailId: id, + emailIds: [id], + accountId: accountId, + mailboxPath: 'INBOX', + ); + +void main() { + group('EmailThreadListController', () { + test('toggle adds then removes a thread id and fires notifications', () { + final ctrl = EmailThreadListController() + ..updateThreads([_t('a'), _t('b')]); + var notifications = 0; + ctrl.addListener(() => notifications++); + + expect(ctrl.isSelecting, isFalse); + + ctrl.toggle(_t('a')); + expect(ctrl.isSelecting, isTrue); + expect(ctrl.selectionCount, 1); + expect(ctrl.isSelected(_t('a')), isTrue); + expect(notifications, 1); + + ctrl.toggle(_t('a')); + expect(ctrl.isSelecting, isFalse); + expect(ctrl.selectionCount, 0); + expect(notifications, 2); + }); + + test('selectAll selects every visible thread', () { + final ctrl = EmailThreadListController() + ..updateThreads([_t('a'), _t('b'), _t('c')]); + ctrl.selectAll(); + expect(ctrl.selectionCount, 3); + expect(ctrl.selectedIds, {'a', 'b', 'c'}); + }); + + test('clear empties the selection and notifies once', () { + final ctrl = EmailThreadListController() + ..updateThreads([_t('a'), _t('b')]) + ..toggle(_t('a')) + ..toggle(_t('b')); + var notifications = 0; + ctrl.addListener(() => notifications++); + + ctrl.clear(); + expect(ctrl.isSelecting, isFalse); + expect(notifications, 1); + + // Clearing an already-empty selection does not notify again. + ctrl.clear(); + expect(notifications, 1); + }); + + test('updateThreads drops selections that are no longer visible', () { + final ctrl = EmailThreadListController() + ..updateThreads([_t('a'), _t('b'), _t('c')]) + ..toggle(_t('a')) + ..toggle(_t('c')); + expect(ctrl.selectionCount, 2); + + ctrl.updateThreads([_t('a'), _t('b')]); + // 'c' is no longer visible, so it gets dropped. + expect(ctrl.selectionCount, 1); + expect(ctrl.selectedIds, {'a'}); + }); + + test('selectedThreads preserves the visible-list order', () { + final a = _t('a'); + final b = _t('b'); + final c = _t('c'); + final ctrl = EmailThreadListController() + ..updateThreads([a, b, c]) + ..toggle(c) + ..toggle(a); + // Selection order is insertion (c, a), but selectedThreads must follow + // the visible-list order (a, c). + expect(ctrl.selectedThreads.map((t) => t.threadId), ['a', 'c']); + }); + + test('multi-account threads are kept independent in the selection', () { + final ctrl = EmailThreadListController() + ..updateThreads([ + _t('a', accountId: 'acc-1'), + _t('b', accountId: 'acc-2'), + ]); + ctrl.selectAll(); + final byAccount = {}; + for (final t in ctrl.selectedThreads) { + byAccount[t.accountId] = (byAccount[t.accountId] ?? 0) + 1; + } + expect(byAccount, {'acc-1': 1, 'acc-2': 1}); + }); + }); +} diff --git a/test/widget/goldens/email_list_search_results.png b/test/widget/goldens/email_list_search_results.png index ba71341fcb6669ca3c5b813904df73d5f12f96cf..79648f5704d64e4f4d3e075579dbc16bcdcc76e2 100644 GIT binary patch delta 22962 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 B2ju_& delta 21246 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�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 diff --git a/test/widget/goldens/email_list_with_emails.png b/test/widget/goldens/email_list_with_emails.png index ab558739825364425c43beb490ec9f1642dadf54..c32ef82a4a23605b4f9cde1f7ec4ed5e43c0c2a1 100644 GIT binary patch delta 52137 zcmc$`2UJv9yC#fn+qMZB5fKqk6cI@cie#!)f`EYJ3<{EywuS^u4ThqW+3owLv0``vGNp65LkZHE@y4wa<% zLC1^h>M0ELV@DE8g6*tV<#ZqZT(g*mOtUOBuB;j~MswKA$qHB@ROomb0x z+)(}7nIA6v7WCJgVw|$<+>=YcL_O)5tE;(7*rB9)xKENB2cy2Y?hDKdSC?ltI>t7O+p|rCr@dWKK>*6E#6%`6B zF!I6;)G1$5t!8SB1K(~Mlx$pbKTvk>eK~R5qo+Bk zw!Gi0+uJt9O@DlEH8{<<(qTb3bC{IJFc{AjIQ_0>aZ$jk>CY1j!jLsOA|k?Ws0ek= zuesN4`k6BJ-C@p?tOELXeT?=W`4^Kar%*RMwiUVBz_Qx7?R_`#hWJs;&C)lE1Nm44 zo!(P(f9)w4p_$aqps&!}`SRLSr-w##u16Jj5tYIZ7pG%j2<5!_l%F#4QAxTx6GMGofb0ALdR;4I36@) zX5QJ^aqH?SjzaFCH0#txa^aPGdq7zM8DtOIMw_s#WVglcQVfuA6Hrb=9D#%wWR# z$hWooZNYiC=X=?P5C zEPKz01#M+&B50Qa*P1#kmuo~9gb#hcLMr&&xBvmY{rmjKH&%6O{MTk?kG_9c=ecn9 zVlZ@u39)HcD-Bg0-~W7L8{_a^5V@x*8vEf3_lu=9z1VGFuiYG;fp-(d1OmOgMA9r< z!v5u%+A~$-uD0|*q>cn>KbzyybHHlKm1CC#evUD!f9OWta;D zP`-JCzv*U!+LY}OMCBp5)~Z^7RWn<6}-!oEVnWzz87}Zn6)R7ByzsJEiz957|h3b#C}l5xq^^ji`u= z&eO}!LMK&>&K)$g7_IYy9A$~0@Wdg^#M%BVb@hLqaxJpI)GE7XHX9M`(IX`ycI_HC z(Gq_!=$|ZZpgVk>TFA4eezT+d%a<_`L_dgMOf_ZUJGYnY8NVKRF-Y%;VmMpNMh}8R z6G739;6?~f%0j;P0MglGK0 z{h=}ktDMo2OP%F-s>fmF@Y6zID(1=zj%;125JE&L;wF~@mN3?S zGxOTZL2*h;gN5O_{aMYOM%S#~QFn+tuX-*@NJtD8_e6Rv4Jx|0xJ(!I&~T8)Pz&&! z{bphe!2f;yLjDG9D^1DU`=PC^vUlWij#0S{{LjdYh2+4AKD*3 z=zsmq-`D(C|KjWX|EmXqr}DoU1C0N_`OSaNFQEUYqX%h2|BFTZ_w4)rmO%f(9{&qQ zZ&&p>@SDS&#jlb|5$9fh3?#q(o%rz}Q>FxcPckDkg>^7qK#Pt~>~hRfoo1x?Q! zWaKtXlLEm$aynXh3twKhgfJ`5lIE)Ff~`Q=>~o;YmqJ|N6Vj0uzVc5Xf@)iTgC^EZcP_NfFe!xR{yM8J$kzFw@T^XQpE=%E+KUZMhbUBM=1i z9-X}89GdOll_DoI=}#%FSt6j*x8F42ZHG)*~FV zB4G#|wyu^@Mwc3~5kPu*HF+`_vJUPDZPJe}**#yU7jK(^=@BuS6X>#?~6tbeKT$0;$=Vy*dhEzPCa7 z8UBT^$!XeQ#tNICV${dAj^R zv1#e#2^`(G-Ye|j$QW6*Mue7kOUVRo;sva}q&-!PG6Na$amszezD6BQDc;4wT%Bp^ zRlU6CHooN83RlwdNa>>oy%fmo=}~qW&i)3I>R42{P0!Wd!2L(P#23^ezq%zc8M12b z``}qNbW3PwxjYu7n5?j+w=!C#K2q(pvu;_ab#iNQAbhs#74HhAAY^X;xn7gY`pg)X z8Q~SBE-*oNM-55}&%1kgSdCWL6H}GBBZ2wzM!b}O0>>ZWUGa1X$EKI3t1@pc!H)pemFgI%f?3kQ-RU7 z1&nm%l0wYE#AZ>P{AD_=7>Q4C<&N=;WWK1}ie7DquW$wFJO6f(vAAeST!867EQ&+I zS#a=yR>lgb6|Tn6_7{O94xc)Ba||HUK)-hSSBIDajKE#P#)ioFT;R%;D}yx? zxh22)QL3EBNS^%rm(DzAI88~4;*?PW_kB)kkecoq1|{SzWaKG6l@<*R>~3D9VnqJS zWU~TsRfncO>oZoimWD+B!`L2WWo2nz`GYDHsLE;NBsj{NcE#X~wQuPc7-|)u;zcY{ z%0$o+KNtdIQXMr1k1sZ|pAFx)(5XlFw}-xe51*nebcC69sipqIhZ*Rw1`Bg@%MXic ztXD71p4`Skd$IWJo&@s(IoqC>$z{cE_)kmmgL97Z(J#wwGKY(aE;#6)yXq1S8a{o> zoZi|MQOYvc`iVWtch)l-tnFiOw+ za~y_>IF-4*bn9u|GDlFLe0Mk9Y2s$}3mcg2O2k(VnX8TZyghJO0T@)c8RVwE>#5z| zsLL00U_bx8CpNQt^nLw_9pW|;7a>F7JeiK|8eM7vN7Hf0IieSD)55vU7%D@j*-Sfs z(DYG3#=U?4-glXZ)h02`BhHtJU5g=YEscrTBLSWRO1c6r6goK@(bC@|%VKiusJESnpkRc= zWWcqeot++?BILRXA8S6nn9{X1)DoMkb8=L|W&Df}70)d?T?k!Jne!ri;+OWGznAw< z@Y1Sn_+t&@od^ei@@~hdGKKhd8>+vD6 z)VkvZ&(H#HwImi5c~(5EL%89(3z|mCpkb(6#Z#H_7Eu=&5weSeg)ELkh2hWOqXU7n zgp;I%(9~`mD6Dm|H2B3lbR8L!u|^aH4*ouVn)~C>v&YSEN?LXI zdB&GuI};jKWgU&AzL4?w=iwrg3pFqh)`e*({gkbb%5}rHehm}5TT82b(!5*w7E~UG zfxJrP?H|A0?n+O)GlOGG`#AKZYH{Ey*0o5U|E%~h<%cVgXFrAEOi|jp#rjfjL~Lj3 zDn99&C&|o@lbcpuLzkDAEhAk)z?WTHrC9#9cOY}L*reKpm>SF-1%gtnL!d%)B!=c3 zx{aZ^R>#%Z>_7f&YAe=icxto)2`BCce)Y|U{)u?p@%pTpX$IPb%&Xl&tDa9ZGBWTQh z$~O=RBtPbEUdT>v?8v_7Wj7?RAx+Gvp`@Vk^ut_N+?{&3ra|zpQ!VSl&*x9mS5QB>7l(p73%O6QMxMKM)|W_KWL>}zHdGv3el+_ zdU~RP6H!habWZbGy^a6;m@x|M<;n}xeoPwHYJH)OTf6vLbs>!#$F{U_W96fMx__MS z8aEF2rttn)l`lm8L8>_`3!0s9yH))qh|VtWg$!&mkO z3r*q)&l{O%yHdHCzF1z0q|#SF&yiqGH8a!EexHjs%`*tE6x(bZoN8@>~Rra z!NM2?us~iA?A6N2YD+YH<`7@An(N(=_hOB2L@!>vs3BEko8*40C&!rAPo0^WL&7DB z&733t5$!xY%GdfUqpb4vd3oAqjPKlp4?dJHHA38RFaw?8Zku`(z~J@N*5)&!Ha4c7 zgdoWpWO#;Eo_^t}#~Q1g4NNYqOtSKVHl60imn$or2PB2%U4Ogo*!TK_8(#hu2a~+0 zpnjpb#bvMk8Qr7TlXjQf_8v1eD|4e_36OSsB}zDmmATYmYnR-Cun0GoGj2U(yB+@1 zmg8m4p#qi1HN^Pr79{uGNaa*^=EU{t*L0e! z#+5yMIvV#!Tb5CRB>jWe^kCzUjnNFXQBQ3Bd<>H~INBbAg0WLblx412IfkwIb-zDW zG}tGqprG@K=u6hC&AkU@6r+o}rh09ansZ9az3qGCgDawd*@XLhIb@tG_j0^>+z-;0 z-FZI`GJqxFmHo`+ZDT%gKyHKVwyj?d9#)#`PQG~U+BHzmCJ@Tn<33?URxaLfoje;Y zD=r)80dS!W3nVCUk zvK&6#G?kU;8dcuId8&c36?t7NEH()euI8p2<*CjHA$SV`;JB24a19hR-P|+y!F+FwBh70`-_5T0cE6zz z?}eba=20&Wd=xUc`6F}x6mpIfP20|g%dN{Nre-aYxmE*z<>f+pKXhuxon&U#yJ`@z z(X-5<%s7AMC95`Wojg+3gNNSm$%klW)fnuTEU#seWJI)rLi0=8BxW{fHO&t20AP9w zpt8H0ASoJ%?2i<69<2xofwP}OB_y8Q{+rEwI;UI3C1jaJ8gIz2OSq~_U%pm;D}b`r z?M7MciJm-M9R+`nK~Nz4Ls0(gBv!YE7e_`zjxN5p$onAneQv-ouwl6aA+-v}As0%a z6I>X5cy}1PHDq3m8V6qJw17d;U8~I4CoCo2X|L~_!1hnRzqwgMuK&F^msb5eD&L@5 z$rQCyDr4rlUeV&VXLTE2Zk-x`vvS{R16aJ4KZ*uY(*@Ekp_VWe3X>H1v)y=&o1j_U zbsnD6BIf5n&Wvl)(?0uyVN1osg*mqk3yX**N@euT?5)tz%Dgx``m0KgsWvvH7Rtq} zIHSn#x4s6FKnaJzf|q3o0RaJNujLxKpg43OjjJHa>_U*lOt|MiUM%vxj)N?Y(Zntn6+aP3EA;uM8X?QnrXN0SmdH;c~Ab&7K-yiMlnPQWWXN6bM71|rWC13l)Kd`8qrAG zZra^ald1x+{1_BSiu&PN#~9?z z>rTVJf~5YJLt|AfPmZwgh={mSlKwow(V9wM!{z`Iv)!w_tZWJ@Qxgdn2;6J}=b4i1 zGqvI~844CzF|J+Da&*%kfQRL%0DNntRj%XDZa;h{9FU1%Il{A3eZ@wrT`>(pe0+S9 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

Ce)PwzrVtE%3;Wa_g+daME^3 zDt>VSf2Rp=Q_8k+5{J<5KpgR2@&{f*-L3(so*4`3UBHQRz78F70E8^xK18mrPOx9I}fwg?!IM+x4@{@FU# zAegksY9{Ry<%5F|lK~rrpm2SsF$cpdF9N(#)EP|(_9BET4U>#M0PjKA0R56gFB_~vQ${;T$ z5AX$Ne4A#uN*Np$%ijo%fbRFp4Iy&p>P$Q;Q@0;(E#~2 zB|h%(G2sNQ8cHzu|E9q)UYJ;(O24!?I6;)g0OSE>^@HI+o<5{L+UV`P?nr2l0Rr6& zNTSk#Kz&&0smjXLX@-#p1^o+mbKubhO{xUn$O&A#28fR`69<8%RcvwIy*IZu2`D@G zJAl43CyHwAOptaq4xqO20a0sxh6mtz&p{Llr`u4nkAgn4rHAR9?14Drj?ZZ3a8*A^<-_J z4iU=50NL>DLELk=26$2hn#srunnkKVTcG+urH!zs0I87A7#E27Dr3j0oyVM! zv8~T}Q+b_nt{5d`J@n!^d9a!>-(q2(g9-6KUZj2Dh7_;$x%>nyjqvLnhSi& z-AoMtgHk@4!{5xzrA{O3zDvnI^ymgkR8d{y-eG#3%5VDT4?PUw`S8~TWL+ge&w0XY zQ0{g2V6SW8n6{&Hp~(TaDZ3>?aadK{g`a=^F^S&@#K^O`)0*b|FnCZ3Ty^7}2Td_nyPFH3oQ_w`{l)>@*ZHyJGs3{jYjslS z^4+@)>v^wVpP%&GUUj1~MU5?=wFs0#c#k;`RakAz?Fl%;he@o!7c07jw+E11!ATl~ zR<05G~*I_o~%DCBufUUJ2RRn2Vox z9dOtN#FEy_q2jB60Sl}D>4asAk4F8g8z?21!aOUky2se|aHL5`W+j$xT%XzTBCdQi zOx&$6qk^_lMSN|AWkhDJaLdio=AnMHPi{{nP!u~u(S(WiO2{5_OsfqSeeASwgq!^j zdC1iXjKUg-8Chh}a?6cj;9MLDZ zw5NLFHyZECAfDY(2xeUAk75m+dy=vzA4AV~8OYmA-P_fcr(~+d$L;QPCd)`TLwXAn zXoFEYTs1mFT3TB5^wvacb4-O!w0zQa{u@rie|bCUzKZE+cLZQXCOrj!I)e1|bpd;< z>M==Y0cpr*@szmZi{q6Ia#P9L7`PqibPppWzhc;vBG*TDKr^7C&$baV*x!m#)djtmj!F!kpI^b4*K zM6L)%0L3=e>@gtlaiVt17F+rlZ`D|wLtIhE>Hq|G3uxv>J=Z&m9!s2;_ z_sq5B-0c3J`~bvw1}JjXDR=D+4$jVIF&%55F6Ni+A}-W`#E&gF9|-FbZyYZN8MW`s zz>xM=@{mZt?J;98tMm$_ZrniXWbqJ#~ z8m3%`pj!Ui6rDjW5;U%t{F4zW#>FjGF~0h&d&Os*_2Q(T#2`)c9-$nh6N#=3a?Zn| zA|fI%Dt!TI@B&nYlC$&aeNhwcV=KhT56_-~Wgw>hHT@|%yJZh(Dca|#g>dQbe^S@p zz%vTsln~BRPvkoE^r@DvuI`jiaakj`kL!pSn2d?##GHk%DDbJzs|H1_`uFG(!ZQ!Q z0o6h6vqx`{qXCMA-9bo60JwOYw-rXb);{vV-)R8*03`~m+KT|Qsp}aqf(n>H=54CY zJypXu$Z8i+hs}hOOHiYP`$N$5bq$aNXF+TtE&zZkNh&inL-(HHnYM>w&TH04kPaoz zml@0@>=G+t>2MC!5`Q8Dv}WEguCQYkcbIN|&TE0S*u&wb`g`OBN;QJzwgug+N2

  • c)bgc2AeEKWdT=VgiyVI(t9`MQ0X$0!}7XXKp| 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 Q5xuCsuCY$W!Q;RF1Bu4znE(I) delta 50704 zcmc$`cT|*T_cn^jYm709hyp4?L;)#601@dLDFFloq&EfW0#b)M4^g9ZqJVTzdPk(! zu>d1QklsOO=+&VN1H;Um{Unn2cfP;Qch0xgVJ(*6@U;8h_ukjOuIqjlTKAW??thi) z%W(T|1tCGZ?KE5@;!qLJ!0DT8y49Wv?L|7KKtwbkBt_C z%{FTtR1dArZT!}zT*PUqNIfkD`OYiE!nuhe)!O!bO#gfZ=~9>0wTaE_X;E>OzGvOt z-FwWnJQw<;AJ=bMEDhepdB*7qpWq8R!BTqX{p0H0HVxu7d#VOTK(^eapAS9Xm1U$) zB3(J``Mk)1ZzpB)c6j?>n?%s)!XFZqWA~Wp)WS&1Ci}J+lRo3PLrzILX4b`672Moc zC@Q}*^xo}bg(1Er;&iWh+mVwePjE-LaNv&?xx!{X$X*L&ywrP5{m z6tN{Lf?2^wbb|4DJRZ61?09@dx%6eCq*IF`o!(VF_b#m0Ts=hp1CxPLQ%8aXp~FKf zDo-y5E}QwftjzlJoriGt$k20k=_tIyX|m1aB5 z(=`__ch`E2e&~e9H{QGbrSIK6Jghs%hQ<8Jh4JDx?mtuK-lPB4wvS{LV83Qm)3lL@ zeEov#x)|MpPcTFcJClZlo>fcE#epIic;22&wP^eCTIX_y@yjFS4y;9pNkvGl*MdsF zqke`-zoSltV}Gu0h2yOP6UlsoB7>JJmH+v6^%onLUB)=Jx09?ru-JR8T~WKcyFR&ml5tNvXxZH8`Q3nFkwt@yOZB`I>C=1WCi3#= z|2QJR+Q!zl#U{>ztBSS~h3MpHrFh2a&5&D}2I3SLyJeKO%q794#Fosu<9ipOv`9~V zRv^8hF)PDgLv+*(+ZF$EBipoUMa-RoC(WIUTGhip-;0Ac6H7rf=3s{0&fRcMI!WP7 zV`!j!&}J4q*Du+c2`3cmR@ilF+^0R`zGp(dU4xn_sGr}|g^=6hWqfUu{X2cU`((t1}Dg+%Q6ZxAer9XR88KiR8g*lnd| z7LU~=Yha}PFYYU}N>oHFtEAD&G@}h5~YW1jHim$iX{fR%j^Ys_um@hxxUe4ZL zpKT7-IcL=r{6);YFF0Ny(4CH^;cQGUobt8w307?$1H;yy~F9u9v0!_VPx zSXNzOU?`J;^k}V@6D&Mg+m2)w2#WBN5_U};44P?;qfKr5-W1;E{*-$s!+x~VyxeI} zVWi3l;f9$DBQKArE)F=SyHB^xi@2uo1;wf?4wgja^=3D97)w~c-Q6y=T~7S)@ngi{ z)9%)=0-q)&ovu0U&R`%OgZPF1f?jj+y&>|y`f%rPx`DU%T{}Bf@1mt#7-saxA`=F# z$YR{DyIwiWez4Nqb74r@aS$m^S$T#l{m-kt! zk^g5H_wp~(|A!d*e}8qRz5M_G@ah6WdVFW|8h>gCY~<43&s4;6a>!64X zW`)z(SfO$6zoNc7+p%w?o-wiALhhSZ zxkN0wR{sMZ|NEhq0b~Il6r()+;m8g9$$Du;0GL*Nb2?As;^N%t@01S_6J}E*xEXT` z?!|khI;aFL*l-npclxyys=}16Wxg$8Zh%FIe=xA3ycwpcETEE0RH3Qf!aD59vqC;>s3o{<7D@> zR+u^Sg&j;^Vj4HI9Od@zW@M9I17h2idS;rB`)K&-Sxif=EY*J6ZO@E zHX*|Mm)AA)-+$1_ASADMh0ROY#yDb?nugqn1UQvIcd}5)&b0u!8KUm$!EYzM$@L$Y z7~f4CBchu-N^1nuy`Np>W1?hOavIbsT+Nrq<3DLDD@{#J0m>q+8#M-OyAGz@+FMdJc_S*;h#iqtFgbC`3hD@%ZqnEPk#E4k$ly|Kn?}6V| zZbZsp!Qjlih?`-DzhWDf4j$*l@HMh2b2-(sQqp5 zgI@Cm?LToVO(Bp#She7UhDmUMf|=Cdipe)Fvo*U<->=*$zt|y>VU3SeqgwdWHe=ov z-}>P&=kXL-FRfwAEcMvxSHX$8<~l!qJL9XIgSW5km$dDOzp|KIMpRX7l!0(Hni}da zFvPz?q8{@u%WlT#rDGfXlsiixLna6GsHsuWb#aKDt${J9pC41&E++54@%ylp6S?r% z@?NWY(*i>7fjM-|mZvoLT6}jxZ^4B4ci(9K~HR2g|qQ2Pnt_{M?LiA%Fx=#r|qLvAgZo`wrSX2*WQ@Q zw;nWl#r~nABXp#~iJxXz;?jV^-77Prc%%u(@IpA(m#v=_i&;&5@L@b;enxhNW^Q_- zzkvUT%4bmpsjppoXEd8lGBOWT8z+kBpPQ`+E-= zKz@vexI`G{sKvEw*GgMrv);X%S{|)(o$Srpd;ashFw@A5+0K-VYY%@=qfT(GdEXm; z&HJ*!AT&DDiap0Vus@rprN6UNWZ)EUg`2fS5Bc%o)6d(nduQN9&v3)Qz@Xf@_p-y} zK#{5S`^Se5E<+QmUNaGTLMXIib#1y`k8BgC$K=$VuB zI&==u_VX2SZ;k0T|wfS{-hAEe=FvM9BzF1gerMHZGy(n*C9V!FZAUJP^+9r*|Zf>YO`VR z$Tj&D}!0Ml`p?H!)=K|KWfbPwjQz?%5|6*$ruZ~ zVr8-+TW#*S+9N!kwS@G}bf%ofOs;oj2BM|(&qM6Zqt_=Qi%hH7YC7NSdy=)}1f+?X z+xD~@J_WeId2 ziV>_@a$;JFo8@yOMNWN%IuZtjMl7!N+qONo2jV)f(87^pY1Mo5$4!e&4s{2D-FmP2 zJ1z;*`u2B5)A!o?1e6~~h7uDC5KiZjasl^_tjW6bEfL(@@1O814&U3rXIR5`ScT=R zRthm^(84s|1h>!}XBok6Gxz0?DZb1_VV+oG$h$Y!3tr6V9Pv`(Z0gI8CfrAAv|#|1+zS?d0Gh(mdT^wot7 zX86kc3w0#19?NRonL5pff-gDT;zxheDO2fx)R-K**sIIh>@iU@+sutcOra34I|Z~O z&o2^RB8o>L@&x;_@_rjAZDQ}aI#6_L{Tz=Aec4r`o{@soW%Nnzt*;n%!=uk%hKGmG zb!YjGVb`TeZAq+zSSfy`J9qBXwhQX2sHh~n2drM1rcCHGn8ZR>{2ilqytiBR%!%1l z4;M}apZg(`RkW>1#g#f_Hr0ptQHt0|Wt{Ms?Hr#@{^9VcCT8U8!z;A%UJUhkzSbF; z7B&9V<69FLS2@b3>&lVK;{}FhTfK|vmXnQj75v{~{;KcMH-ZQH3-m)gv=>j)j<}p= zRuJn3U}{y#Haw_8d_8JLoZ?hMtfT*E4h z1UbEwTCWVKV{Y$Vi=%qAq$Qz%oM7eC0xUYKip65f?+uHOR5-H-Qn^kY;P$-Vm#c$h z+#v78-vuWC9jnu-mzJ|cwn^WYo^@T9Xta zdwo7b7~blyg>*N{ofMw3p3bV9Y+E&ZnJ6e&y_w^^%ZI{S0+FZscvp65+ubJ||5jY@o<{*A#~htkoD1>PS*lEbMks%O@$tvn81-F2OIl)&rwMKKY%Ijs10GV#a6f&!=u92M?%jF6cjtoF6Vy-pyL3{}WVI zd`fquCz%qSK4r<_9F*0Peu=qN^1MDfI9M~OvPr`=T%#I$bT8?JI+Gp=-8MHNgW@RFw3A#!g#=SR>K=FXYKwzLnoD_Sh@wIe0(ea>xpJ{v?2eZY zREn~^5mdG2>kQH66Aebg9?v-;`TDguYs+1O{Nt+3E5{mYtAZh5STb5VM~dXBXL>G+ z$T?lTlxrw79q&B)lNIveNi<fbJmV^~)dJ;?*;utdcP0%8q)5PC%p+eFndNuym)nmEnv}bo*rF|3)^Q?lmDyJ~ z6y5uBGp$pRFMpn~PW2@Z2L}%s+&ubT;S^idn4eQ};6zO~<|^aL*6#Y>)l5JyCuUwE z#e+Odnvh*>sZiWj+nDPoo-E8IYN77h+{dMQe*kvFnkG0$?vEc1g%&^>$&2*NdP(H;=VvKt#Mk+@{ zMe6R~FTXc%VH*4ApML_fDfHQxkFpxy(X`q5mu@)T1x*~GHjQ=;abYMGTjB!^EjhQJ}%#d49dMwf7!i? z-!tFMkYi(Eu}gJRG23a-NDriv0nxGS-@jk%4xx#%d{GKt?$8S@atMFgapX<@RoxuS z1x%WzF~{Ke#;y9@7Rrao*B9sGJ37=!%kS%2QgFCmcDTkaqu-Fk_M`uq{j=q?>oA)r zPE4V=ZeHMv&|VH`XaZ&76hfgngB11TOjR~2Hk>`c%_(JpypMD%!I4x7&1%FWVs(#c zy-_cFfIL_xZD?c=GrD_;J?jTl<02>3Ws0xSOx%`Z@z7>$btWg#(!2AC)te=v_%Gkf zwAAEmhShpG#@N$GyiOD6;}DhRC+D(bO(XW=DW)@sPRsCK9uc6Hy?&jpG21Eool(u{ z%S&$;hR%Fvjyd=mO-3b4{iJf_WMjjxk0TP<7{1<0Q_dZe)?Rz* z<7OrB5sk!I094r(Y@yn4LoroiiYxw8G!7Ye6U5A&{=%MKG=*=yXjCrFg>^K#k+j{+ zRl>4&Lr33?6lf-GEAJ9!>q~M)O$x>NW<*$>uJ%wA{O-1SqTXV zEM|1o8u}!-ggbsKb>^-UkWwo zrwjy#mBnH=O7T|EHVWXez>)Y6TKO@%*rA|(0{BY%ZYz8jNN1<+b#Yo~El(dihs!EwfgC;S=dZR(i4 zfn`E&nr$u)MvXEyW~;x}u`4T~u%7U4)#5m+J42K!za=k=-Ff%uLwozESdJU9 zS^uiC2Mh;kNlzP5#YdjOltTmE^yK=J7FF)Ray`nz*S8Oe3H)iHK(sBpk6TAc^IrG};@vTUP>iHbU6b{1pIyoh0J5 zgIo3Z@E~(T4pVMt>&`IUn(NKc29=5bH3Cg?g)OiagtqpQ;KnE92+Twve~Whf(e;^+ zVSEv%RqHC334dKb5|R-qCw}UZ{n2wOk;1e5ndu*fYHMEoI<9<6DQ=hY$IxF@(&IKu zEPHUxGw$CZ_CI5IbZ<2>#Q^ELcb``U4&Fxo{j>k|lmGdFfq_ZK!8lscN}vFG%7{OFfi>ti-CSvBXbUa)MoxGP}iJ&lA60 zc?im3L5v^9_2~)%=S&?>{J)*^?+-m4xE}6!1>ecY&Z&!Wm#jwcbKS~JPMER4t_Gl8 zF>TJYXsul>GZL-6%{g%Ik#t$#j2xbnpM5p-+Qu}TOHp<_D<-V*Kvl$Qs)tc+dys4W zmvbsDp!FXciBeejkZXZ7_?b99@chtf%)%XYGWyd*y>A(~9866dzYQ6rpTp>&rkVMg zaf*A}hNoQN=hL=41}PDgxAAA@1%96M_pfsH6nH_^G{1W{vySKU^4aTz-Yx}gd+txT zG$yvm3+*261o{E48}^EuG12?KiCsbEEN_qz&66itP(Vx%98tb=r)i*Qw8y;1CC^M+ zV{R{}Fomiy75r>-SLs$Bfp;&4gIs@dID5g)Fo5y8dgp43Nw!nQU~ zMgUP)`Jo12Q=R#_z2V6^7qox6P(4<#jx$ad$4VOH`1uuR8)fm7R{m1Y z;k6H~tsxgpE0t(|o9VvmGr)P~aD2j9UUKZSk8>KQ58|3%MLk~a8vyyCn!1WXR)(CW za=XzLZnW0iV+64OlEc^)&_-Dv9yr5xU~{EGFSrP@2%mQ9v2&^sk$Js2_}4b=JUr=Y z(JkE#rd1qr_iw`juWjlwGlOBa>Vvb{EcC@IBG(Gd>n`)~Ec6wzeoT^#I&x;D`6VRp zvhSI1$SA^>mhAcxV!q<>r8#biQUf#uDNU72UAhvkHuEuwn^lo^iBB`}xR60%cye;` zhy3Idn+pSBP#RSRMa-f3yAD#ysk$-h$Rd_Y!tUcpUQyTC19(j-Gj0|Z=*^;@W~ek* zlZeEytactLDXCL^CERCZ%A>G>%n^-GxK4pxrEUzF)hIA5i3CozIlk1|y7if;RiKN@ zQk7-&-^1)n`GN{HRwXA`#B7(Ut2ei*c*`yC(|z4mhV6J$%B-f_swvOfkB!uMu5coB zYl2A*Xwy@(v#WjHU$$qPrR~yABwcn6efeG?GzuRcvi}fU%g)%CJ#>EMj>9}VT!^1N z=g90|R)0!`Iqg0QA&r{4Xxih5B~_|a@8xu$kx`}rR>o-wyUtJ;g0=O@(om+aUSEyP(?U_5{m@N7r!7`a841? z=*u&gC6AV$kbYVqWJd&~3MuQ2YRiBB{2SQqZA)g{*fVeI|s6WtXWv*LjY z{{+SDuJ-!*$4RbQ7?!V^QZBoX;w7EDf1{?F@dfR939dExBcRLi9*VsO_7%AKR5T{6 zJf0nWGk5|3-&Cuf)l7%6+t+Icl>77ZuKxg!7U5Jv^}UgDxoBwfMw-|;1+c(fxp$S3 z3+9X-F*HHJ5?kqeo|eX4U{DgtZV@2xQzP5db}g^Q^QN`rX~>7Ol>SYr7JxYzCuB?{WK6Ezc40(w@RV>P8% z+Rmd!krY|wt(9?aN7L6+VUP3%d3b8Q78AvfmH{O5neJ!sl}ovdT|raABeGo@a`uZW zX1TV4)RN@d45WQ%Kq?U1XzEw(N|jH)M%z)2ycj9^Tm*@D`Tj9)`Cw;fB$eCeK3>2r z4~5#G{DD|n+zo;k4~V&Bow0!SqSC^6!~=|MVa!jCgsFqs561El?g=#BEp}BZ7Z>Evnk^~GkM&lAcznyaZ`ig%umm(Bj2m`Y=y0#)!m@9zt z)T+er*_ML2ySu@0*%xKNB2vbkk#NAt&rRh^8p$Rh3cXv3UvIaq1_uYD$sPv__fc#|kP%8^<$LZZ^3SSyg#k%_={f*?ox4og zP!n}tIhz)mSBW?N&#-^?lETBK10R>1@T=+Gl)sl~SCq@rdBB~alOzl7vSWV68 zxUGfoKhMt=1qM`bKJWJMa0Q`UPdnuKMU$pV=lx=Koyk6=X~Sd1dL5(HVyV6>HI#0B z#bC;$(@t;Nu8%6iL$p5Tl9}iBmS}{Dq?3x0(sY|_T1Oec5Xx*r>vh-7h5oQ}QCH*^ z220q53=6}VA0I(9{7#H!Fnr~H;JS>qW;#oQRt?$PEf^tp7#hgan;BtrR1ii+LMUKa>Eg zfu-T@V&~CEji};ixk~Y0*erXUuJitJsrNE6l4-c1tR%NKXWjiWux_qro1t}falC9c zQtu7hMT@`F+q?QydB3JF4-c$RTE^GQY!ps}V9!zV?SIE4wH z^&%faUJh$Z<5z-)8|Cvg+5P*_vX-F|rNv>|U{X;{bVWjJ4{%jyEGL(Bh2j{*70P{k zf|ngsY%>DWK!RN|7k}XFqg)1#sfEC+K}hvyoJiA7jB)Q&ri9vshUn+rz)*ZG!X1?6#aJ;W(Ceu zahBc=xAJs(QKcE2xI=lO#!QQ^=rl~dh~-vmP8#pwX8;Ig=oISY^6`8bP}m7^xE)Pl zi`RE^O3@H?Sc{qS`0!R)fiZ{xVQ1|2j)YeRz{*3%jDLO~MdwG&HNSelYtlv$5L^c1 zm(C^L)bsHbXNyZEmu}72@dJPlpa! zuf^n%y8Kr)b`)^rkwp}Hs6wr4&q|&7nAjX^7@#PFU>1%8MlS^rfad&NS}}6|u=>Y% zF$sq^^N_hhp#g{V2(}a~<)Ki<>dU}%fbXTiX;FY5sGglbn%Ont_`(s&Q#`>H*-=`pK_|3e92AslJ&GV5)ArGKHaW#}cQ%@zo$AZO(TKvfNU{^Zi6-y!HoSc6Q!Kk6zSc}(UED;e1tfv^BLdF1-%pO z1&w{B*PokQsez_r;@KHrO3Z}m1vos4Ra6VJ(20Z0Z`6dMj{=kne z>fwVxHN^$2)(MnU$jrpM;>)^le|=K09_X0+^o607zc7}kC%3f`eUOM6;yuTKy-Ay#khOGuXOIz9m(vdmq1J0TvAjf$*y6V1kki7dtq}W3%6g_S(@=7y7_vK$<6v=0 zxu|~1;m2zZG^N_KR0|%>^LQb7!^gQ?eLZJQ;Yvu4ov@y_Y3GW<|U0#=E~rrX?F5pwNA#F zoSpzQ-J_JCkPzyW_$oR)MwtvzXf4*D`cWJ(mvSe6ai9)rV@7y+Mg?1JOk<4iEUEm7vG!0bj)jAWz2`S2Y8*+DP(uu@^7dO*bd{^)ma?7v7RRQ<2S?0 z5)BwMY7j&|zr2nE6jM@4wDv`kU#nL2c0LOD?a~6-^s;Y6)U40o!TQD{g}FX8J$<6# z{+&A^PHI`YSxtI>c}w$4_+HJqFSRH$GpdS5K#fay)d`E3FfcjErk{T+1o%VcS*tX--`VCB*9d91YMlxT9%>Bq|7{cs&a+6`&WS9`!Cak;T+D=93 z&w%-~In1jwF&Wk1zZD5x|M_}V)Wo(Wzty6++8`=Z?#gXm>lt}uc~lu~j3*3>=f1IE zf(rYDhYl24T6*(qC@U43;uIYGAvx6pq$6!ebhTuU%Sk#~_5dtJ4KjpODm}Iw0eV2p zWtYMMmc#%hpmlV4k1Y4{M{bk5p;NAMFLH)5LF$8}0lbedzZgz^CM?X#0ts^1yt}$8 z-voAOlvv1rk^Fr#Va&A9I7zNNVWF?A#BnUs?KdW;-kFa8RM{bFMwUm~sMJ!w3P)0V znkD<-G+0<(W;zo5_z!sOt8fQ>S3_iTWf z;4Pm9ix`NG$Cwp&;=k%2!*gTqjrq_@GF(z*>NxA5eo^cxU#sD%|DH(L2_g`eh|(y7 zyBl^WVJCQlA{a{X7ikwdwPo9y>H$t2hrBGLy3%F%S$TtF|I}d2$|b&L{p{ApC+gPP z0g9DiOr?|KMl&>%2AWN*d!__PgR(2(+~yw69f|UFHx|F8K(ZW~0$nySt>vW8`8+BRRp2jsi%=;#h{p*cb=5+ zHWS_^v{2g9=tnD@21UwDP%Z=4u!&K7Z*FXic7hEVVCdAzu>F`D^OU7vurP$((yyk2 zJb5PXfdM#H$UYb6UqMUss1oKVJL@??-AlJ0;BC5kXi$ILWfyg>IpKmg$ zHZhHzu0THcYcdt6Y%Zvc4i;%(KaMw^2Q6TJHd|}iJgxA#R^GdZK#eK^gxBp9g86{J z;4Qbau~mU+Y|E^KOtYI0#Zh^(@req2BPbbbwG*Bo<~34I*(mD*CBj#27WIMA$y;@V z)VkHsLY{$dat+zyJEK?3xq3O?cWrF>l8;`3T=1c-P2E>U(=AZW_FfOUptxGjffCAC z4f>uO_5G0{#Yj0q@CCRJ<1#zEhA8eBxPfnQ$U?701b^YJyNFTNc?Av`;g=WBojZr! ziFP{n&d@&zI#xdCG;q@U+_HF{lDvQm*? z6EWk^JSC+i?b;j~i@K9h7I{5pRYxs$Ys*>??K*(i4?(|!gJC@Iva1d3UGj|I-o?H^ z&~b;|WpqXIifrw|4xO8_$ajbJ_kAbRe-yv_A=RbGU*8my;>Da>=2c$dqES>);j+Ie zB%`PfCpcp8_?KUP6zBZ;Y1^?MHGVl?gHzm*T$Vg|KJL-^HJ@an^p?EB>egcPU!#gU za;q4CZVkG75~5%n6I;N6zC1*aAE>aC(K(qGzOg`BxZ>8MuB;ruyLdrAVRXE1rB)-v zI*g50*F+aFm&q|EVesKmwx}&UY?Irgqgxh;tqtPd6^hwz0tFUve6_- znr|`)!qj*3q`o=RO|c)2aNM+F5Vhq_md$ny6Utm8xz5BL*><=={rdhGUPI<3ACJ|? zkqTZivOOJF>OgEM8ZbLqdAuq2=R<75!KzOVi;^eV58*DjVR@bgcc#e3UNQJu#Og<< z-e|Ri@)fhYK55j}g@q8wq6e@E8{M=*^ydeW64ww~SHoAU5E_bpMiyOTd}%#e@;kQ| z`i9CK^g^tyHLlbY)(@0eS}sfuqt>|+(FQYuk;A^6g>=)wVn}bKo1>-~lOmf`JMgrV zI&x>#ITw3#Fd?*)S;?Ul?$h}f2MmoTqkuUPBCUeIQ~gMfvXUpjxF)(QlJ@Bv_ut3) zozd4bZlC@*proaxRZ6d~udiNtY}sN--_f0#nPJnV>y6Tq{iJ5(~vuO;I&b<{m&(HV}QBDxr|6*x1||V z*D#3X5EzGG#v!#%ioNabT1%2HwsR5)jlewqYq8$SvyVbpfw?q(3h@r}*Gwl1E>hj9 zE<2~g!!!>Bu57bg!42^a$Y6hKMHnB|rH2pygCuk5X4ih4WI@pEu#R=t0$qzcGy=te zuUMkcZ&lbs$QUg1K2(P`+pP(S#I)6|*SM6jQt+Qs41mosTxyu+{D ztjE^z{=_JxRuqcHDY%O8Pd%|ykGQ$Gjg9*mNO2V7Ewk0e=<0F*IH=yupXyd3p-`&! z@@ev5HWx0^Z*{j>}_~#8mOh?8%mwEMT3$p^@BNh?(5x zhJ=7e9I~lz7BKvo^0pMO1XLuCY~3AL4lUIrR;#6I0)L(j)V7k;e%ZUR@!ND`Kl2HJyvp1G;lZ~W}vJ5MvKc6rdaM7|+ZsHWp zJHe>~^a0eW?~C<{`~AGtSDUz&uHps-SQOFXl>ysp;%SMVV4;kW87NcT@|hXd$%P{CrzksUt;J3M{Rr*|m-ITC4Y}HnFj>C*sU}?(FXFoL1-5=8HC^Rn<$X za(mqk*;nX_#CXc+DGLe<3vb3`!gRNbxOH@^>N}n}kp*emZ8O%eNwaFqgy3UgVSy4T zVNS{33j*B*c3ryo)1XGfgb8n+!e2DMW&%Tp=iYi4FXQFdkt`{j1=dDQ(z`HZg5WoK zg<2?)0U*RC@!O`oTZ+ZMJX($SK)R%5wZMO0p1RypIq1LzF^tjs({DxYdx0ejl&(iqH_PsqR>(ZZ7K;Zyq?zd6bGQH5ew$4uS^P zRB)#KoRCmKQ^8mDXT8;Ky9niM6M& z*u9Y(>|3XCJI#kt3cq|ner3p-Sk29uH1N%#b#?QXp#76#!11`XL}`bOy3`2BcnO;R z@&Y(;v8mUH1~GEf<)WlgUjsE&Y$I|s!=|0h)C@XEA(8se^{5b~!D&fpX1B@D%bx%A zGEmNw5$HDb@=45gf_$A+d+$abG{;Jtml@n{UOW0XN*LGXIHa zDnW4x@pR=dHgI1*nFELJ#_FIH5WTp5NmXxS;qw)c?}620wgN8> z_^Nu0D)0G%+Nuf_vwYYqZYV=92lzkBa#x&x!u9j0d8Y31#7V{}3BCz`*WZ9D8Z&|v zh;D-EEHY6UEH+0n?i@Uu^&VuuA2t@*8Ge`>H&VrUXGAG-AUd9&q)u$5(^l$K8Q4H# z5N#_Auv#;^!3=7wKxIo`UN7Or_sqF}rRm5Vk-N>9>o5D8spGqm%wZ|KgDEtv5;3W? zXOXYPpjcS67DQqe7T8l0I&B%KKT`pri<};$FD+bI_;3#8F&SH!wKS)FkabU?ZQ(xJ zPIJ&c8dM<(*n3wgtyB$z<+du1i-N)!;YOVNd(+y2q*MB~mMjQqb$Bdw3EaI~8jHvC z7Ob|$N1KbJ7%~cUN_4!8vk6R?pRg%izYsR{oVpDBMxtZ{BI54}TA#nlszpN^tr*W0 z=(#jpVOqaQ9wmKw(rZ26lf}Z)o#_xg_oj1WOzr!ad^mZc^U6;a5t!QamhPwtaAJlNR*PMnTXc>>e53@jlEb;t{#C> zP*P$VQQP-=mx8&Cqis|=Ww{jU0waSJ#Wp;m;Yl=bI;UIzYRs&b|#)w<@UdqFk9s`dO5Mmo<&x26tc+z z2Wq>*22yKVn7`d4@*)w89FF(suz3wyTgD{|hATtbF6GQ@8pZ<6^7;m+_Z|ll@u_(d zzeO5osgZLibfrUyphgh)dB`3oe^97nxW9iWQ7+QmGX4T zGwL}uJ0!&HKfhSMbrC%lmDQLS8cc`shnm?fj)QJ8N=V*)@BlPe13B4+VIS|l+?djr zu;WZyk#x7O#1i*RXwQT4c@zd-@~VNYElM`8R4Hk@Hqo0y zzm`6{&aY*9v1?LsFSduiQKo$^;f4y&(+gWBme_5ZdMUTxI^q@1*&=fMXp1K;E!}N9 zc)8oVYCPQ%hwZM?PP2!tA^RJzH9<`$(A1)>-ZdQrdTI=Inz~wmVEe20Xpyt$YNOp! z!{9_W)Ta+0{$kyG%zV*(!nuC{h}IhcYwENG8tSAbJ?$0{=5OA+Mr6nu8>sum4G;@dbt*SSNtUSdliW*lMDrj4C8wN;9hG6k0N+qbCBc!_g&Ag zf5E#xHZL#l*&=Tmb6)&j^3#L;hjd3^htGw?GI7b&>jC z8YzS@_d#j|Tt!=M`);y7-Iw=qN#khrS5Z3eAvcbB?~<5rYr)T6c@bp(_%RImAaiyAOP)?eQJ3E)T+4?l;^+(^D6CIT;C z@%h|HwcZ-Xh+>wzKD`g2{@%P@1a<6a08$I|%}+)nM>@0qPV)kcS5d4b(WlHAbU? z?53yJ@>o%UMjSXZ>0uoTLNyvt{xVJu%P*F#2-xy*l}nxf}WAM zg`tW3@H5BF?7-}gq(WfZr7D;mw^n8L=6*%0vCbsa^)P^d`yU|fev7b zgnM_^P}Ux+z{kcfq#T+dbUbBu+(Zsn1gf>sFs{ZwCjnT{MkxqEGm*M)z0% za}m&Z`&!Mww|PdGa&N#U=kIBoS#gA=wB7T?bzgR1Yv=d^_~B>JXw===*$^33yTx$& zTvaR^;Iv_idXn5r^uPjA84j=`XX7LLo4vctXMwvsLB-EiWxz0IMY_UkU{GOpeWoi6 z$Dn-#A@ZrRHF#luo0=((^j|?5WdYOOTsXy`uT2UpUj{mm?P43|l)h4vOWiUXaB-m@ zlcd-;FYaum+mBVd)eH(2tc=&;snL8VD&mBVbshZol59*I#7JTRh>GR*-8|$|<%VM$ ziX7gIB9AT|V+i_Pm|7I)sdB7FshqB5RyfAv%Wg$Yl^rP(-m zKC6MgxEWi^{cVu0`u+&XxolN|+T;vI(Vi_TxGny)gjOWs@M)>c@~Y{keCU|89ZF0M zYyQaHIlO>4;k^FW<2|QXRF#rIC)kKMBU{`!_n%jlh>mzd zxR^D*g|fxh6n>Ihd1awr-@NB?D|jnwF_RMH38$M&RjZBfjQWSr9kL@uCb3+PMjFiP zP>|B*pxdjk`)Ww?v8e>mYcXVthvZP;?_y*S(~BnM7tkb<<+|lvXE^fTv7G+to%1W$ z$ zPTx2crl7X-K^2F&eD5JXpja2@x9473jXZfe>M*xXzs=1DQj>l{XgXK7OjBs6qI57v zY97Abu(nVD%mrO%M&8ng)ErOhRuu?*!e!RTG!XnW3J)dBG8;?-HKeZ@QJEVl-felX z>yzgG-=YdRtLM`6LuSGO3l=Bpw)RxY*EGck=?XJl2P{@rnm<{F2@OAhM#aj(Yf6@A_Hk+`c$!sfM?fc}!xlH1ONKE=3g z=yUrIs@~pYwlwYY$J{>l8#b>%uh_S>iZEn5>%Knl*^V`|f?C_0Y7F%{Jb(~_Zf?@u z@rTlazW&2x6-6Xhh)ZPz6b9(m6zH}9!_<)|DO6m)lm8E2#a?H)n%!j0mzI=#<1tregOX_*hqW*--&%WG#f(NA}+eLBVhKPl~ zBy6>P`dS68V4b6@!Jz5IP|f`}7f!$vh5<9xR557DjyXcpgho-++o3_@Ugsny>bGpw z3w?6he`^J>vcE-$)3+3SlO)bI&UI3V!TF~%mi4JlRet*)j+#tDnjqx?DH)#;6)J%Z z7%|X3m+vxAjF_K>ozwT~$vdZ^@fs2yMccc5F!YFVO)$5g`85(gS4*mYaym2l3X#vMD)qwtA zDKmc`)OYELJJjZ1`7Af2ktecpkXt}3YYCB$=28+vl6D9izgXJNe>BiJr%Y8?L{XhO zW2yy=(wfpCatLK`vq&f`aaYe(AOT@q5jzEhUA$bPe%Oda8`eL-X%DTaiHdSdts1uv z|4}shzihqx@L?XOEnB0;qy7$WJg-{GWz%-?n6bvX5K5%(y}IWOQCVfX^^9N|HTLP* zal}RNaxSpEPVG@xoa&G+yFShxq-7V^G2oPzK+crP4F!-!9DCvayExE81w-~o2P5_C zz(^Am?wqMks5kZ=y?Ppk4_D$yX#p#n5U2^;$!AL8QZ8^(ubq6Pybo!@=SEv1%Annz zruJw@2y57p2#Y~E)@819erqd2GblH4g*F`TiH`pkBzqCjQ|ze*67y8bg~a$XnAbXK3qGc z;z9o49I&SbyBl%Pf7#KXm}afBm3Mw|$I^5y6f2mlGo_vDtT zC6vb(lltufZqGBb(*NM&3+lQ^t4s!9iazDhLd3&Bx7HVyTd>-_0iF%ZjF7Fe$~fo| z%?~Xgz6)&6JRhuWNV=IdNGH}grNs-PO@Zsju+%T#*9Nxkj2mB;jTGT`OxwYKsrTR& zLe1jgAeZ@N0k>NFntOF$GEB0{qG{m$rU!huTYz>Y)vmIrpc!YM@P~3wUeU2L6#Nqw8H zsG@WqIleZSSL}bUE=MyCRK#*uP4uQ2g5?Mu^|9b>*__kXQ>FjESCU3);X;(0XVpQd zp4>}kzV8CSJx>K#5cIAYE`;s##ajEjU!SfZDpFN0HWS@B$9LAjS*@R70uDaR29=A% z!FwWm%pX7QEyUJpywh{yRX46pdMJJjul*1!+C9Xi8t>vs0lp$4d)6J>EWEeB+#8t! zGW`c1)_6r5>X`D*SjWaZ2B^c+L4E$s3TQ%EF{(hyS#nKq!Yi8>fGM=_7mJThuIdY&wKzD})CV${a8YAre z<=v6p%A%8gksmK}M;4iAQO`zZe^z|3P_FBskTK85bW#NW4E={PL2A<#@<`AZorm}b ze!B)jz&6sP@5Y=o99$RAyifG=>Mi)Q!?qEMOHdlHY6*;0IU7V5TH>_{1wx6P2jZ^7 zed@AJ@DmP`QRlEPb?0jbIZK=89|Z+}-XrGfb7Mv$Q0SrzRpkuS2X&2L*=!-K2_K&> zzdy&mcOsiThy7`~(HY*3?(Q5}kJ8MO4}2rL?%&Wep{F=;n zYy=)?JA^)h&trfUp-DkI%@NL5NmUG7FSd@z2HwH58G3Kjd(^!f96a&VOBDfjwr{b90a8=tQ|uN(3d-IRJb@ z6|w9uGp6WfCZ`=IH}|^js`~yaZwhIPN&!nne2ceg`LfoZmrKI`F_6{CAI~tg{;LRt zMWb~>CH=w)YTn^mWZcDjh=2!03dO9N>DXG)X@hB0El*@gW=GFn{pl=^KGcz8`!*wZ z+8$gg>f+qOWZVb(eCIIoM3QxR`vQ~`_mx>6E->5oSen}i%Ccyl|cc*Pu|56SMBxLMPQCeoaoxqK2)Jn zg|tjeiiS54@Kio?bITT@qoX4ztrGaKic!~prQisEe0sum&Lib%jR{wg#TBCUE~pT$ z?Y`~{%-HSF07)&w(K#ad@=pG)H<@>VvnV8y;Pa=t52>;>*Dc9-bOFW}Ftiv@hCx#@ z)DOKyI^XNNr_1^yf_pY5;3FLRcf?ei!{=#f&9_k~F`Zrcl;3@$twQk})~p6Xv{gxT z%%CF@CYCyElII;>>#G6K_i4hBlUW9yn&19B<=5{Z$!{sE6nG3;uOLsFS@QwDg_NtE zmdUS%zkV|Rh-R7rOcfDK2hMu3u zzESi~rz`(P>U4xd6h+F*I(;A9LV>V$-RXCDq0{~T>;Kq(_S5*C_vfzqIvn;pENcF$ zX;OT0YR?^^#9)V-RUTuJFIqqS(AKKme`oC$9_m;lX4kvnTOc{4_KPr> zih-={T1X3arMbn>>7rv$FKjLic~>T$4Y;@r>shFtY9nE~toR+Gi0rqPu^t z@%I8UoG-7&=H~h2i!oJeVUburOxx>O!qWz8na5b3V<4sRVo zN&^F-vHzhu8FW=|EY!7PI!M%l#^F`u)sLn z`y_6})zZkR3mzZk^~J<68SAp$3m{ZIyh?Au>H$ZMRL=Z(J?8=hhJ4Z@{oPVZf>?sqyf(p)b6I6?>^qiGQA7$qCN?vQZUrujgl}7intK4 z8}FZYP*k+1*cqr0^P%V~-u%5mOiI4sq%(2^LBkZk?LATh{*z6Q)E)IcCgE_%k0n9X zD|r2eO|@%A5Lh0i-gH*L*kr$=+sOl2Wr0t|;C%%aIh#ZbH8#8MO-T&M{BSw*XHq+3 zZF7j`YjzcV`Q0?%p!Y;^)jqf%q&$Da937fP1cOX-b@nU8GOyTXHKx33`lOe>Hxu`t zsC;T2_vC=AihoS&Z(HKD7mvYtcLd|c~n)R!2=0E=IEjyJ(1 z{rehwwc&(HYNprZ!7HqL2gjDZ_6y9*bgJGd2ZQo{3GG=wjL23hj49dAEiiKCYTar1 z|FhH9aSPzW->385QA^-i(zvK&8xqon&xRj0HgC84x{u_81yx-w+x=%(i+;+w^TfXK zB5`fQpPqBE;cnC;xn9=!l|Tlxfd zaU96)%skiTHtSAH|8hRn=?_kTsr5Ur&((NRrp(%lT9+wq_Unrbw5EAWVXtp83Q6TJjh)#SZzIA?X>YW@l*3oDUUJ%E{Ev*v+Dr8*Zzbe{cyr zI89?`6BPWK<5BYg!2aUd(F<^~Mug)u4VbNTrxgRurTNdLwAIasR%4ma`|LQY)b9QL zOPx6`uNnK0i=6>(GX5O+o*QALO3-2yk_ZgRmuveo9gIGD55l7;x3B+(i^4%|{1dMN z&{D!cqdc9*u(@Ri6f@5)#^Qe+h?1LF;)NzF=@6p;A@Y+T`+WUQ9q}WXHI-N}l)Oi9 zQP8FUJH)It%{%v6XK4x|vc+GW%{YV+O8Ty+d>;D#X@6Bau`cT;z*@R0d_7EK^G<;P zPW-xQ1E6Q>vt6%1KiO%#3~Uv|SwLJ0O#=WnpYlCn4199yYH3jEASm`J>{objs^h>4UmA<{PJA}Cb zB$J&eA4>iP=N*>2gzl@FyEtLl>gCHuB-?w!+_5|P;ycQx-){l2Z^~nN@cKFh#a9l} z1ZB#sZG`myA+F}s31peLQ)Bj$9?7s-6TnAy8h}@1jzK+YZrQ8e)!3=mURRgQ@OAGc z68p#jCNKQ&!|{%|IRMm2E<_hV!>P=WxTu@;P&#B8Kxl7!c;1cyx~qunfM#hMHqZ0^ zD4J=%1IIrcDXZVNw8&l-3FvwTRBD{$=K|n42jf>}?}7oFs}Tw6-|&q|n9T$x4+bBG zP9nawgO>dgK<3$@K65kK%f@D44`b~F=!$eS^<4id<-K*Ks!l{ed3yg-7*m6{>4&0k zM3l!D6QPt>%}%E^mFN)fj3$|p*`AY~97gavEl~?Eu4g*Iu7Q-LT+KgLIoFE!s|j}kwG3HObw7KA>;WH*eP|lgJ?uVVQeOf z=(cXwhHmtMA} zkivmyq?Vr_%u(U6pJeHuvz@FWfbE9uu?&xrx{;P2GsSrVTTgxdy*(K3 z%|@>x$Qa5*yTy2wZ!l2+AOWa@2aB2AmT)3geG?i$PZkL25mM7=S?<>>%Z9 z;0+NN=p+(Q+P<#io``{L$3Rbu{RF@)1R%OCu7TFO7>mc8QXo2raGxn4Uj!}d1UZ%ZpizSz*;>l%*#8CYR6Iuy?;n|Ah} zzR7H1S^Wz(Z2k!;M)FrYuOkiZo~F38$__5w!Z4#0U5Q@(*nqt*y;I9&l@AcguA~!s zqFAlaP2^OZ@L5S`+Ssre{*>m$3mxGv?kR-9F>gx%GZv?}I8ZU7%&j8s~-($zON zeI}{iqE$b8pL(n+y-CRLqpLIM!2g_8i9CTcu#04+UmGfEEBypH_qOK__!J#;I@K*e zzNgq_mqKP|paQ6*;8G)t$YPa(h=dy$h{j5DvPTciN;ZP7s=k`ESD3DS-Wg;Zh_5Kh zXo0r~(ulPAQ;F*0fNmrMilg0Z{_6ZOy>eieJNc`8Kd#RBBk4sp)H8^SdZpxY`w^&x zA1>Z#dZKvBDc5SL!KS_B6!75sd>I;f7<{sUvj5n{ZmUW^(=iZ(cxy4SJA;4{xW_kP zKoP<6#6+JX-DnlF*&r{;zPsI|zR2bC0eIUd+0#`dFp`suyJPvpI)Wj36XztG&5;nvvk z5-0)LV{r-ALr^u19!Qch&D;$p#!?+6-;3rqW?@o4+lrj4R9(1SzPvC&ZNKsOagj++ z5;huOle{FQxqNV`0CxE!Wv6TEt3#jmUK?(g^B$-Olr`{P9&b{r<8tYpHho!cQUU-f zwclH(x~jW;JJ@8y7n>NJJGYl!xA1ofdp-@Muf-Wgl{eU9n>%awZRg+50uzUrA+`&I z^zah}J+9|#fL(wCGy5R2sHmvGDjZm2DVz3Cq`ch#rZ>T8P@%eDcHN4AM}&Fl3PxTrj8n8vlj}YCh&kL~385;dXMM@f8_MGgR)Spnfo^J{ z;5>b8&G64Z1_{bv!5|@eadBVl^{Kth-Cp9>?%Q9JvCN^Cb{x~TZ!rX4PvX#9hE(r~ z1o-s%5_7$LmyMiWGvCbt+15FN0+1;G=NE>C#VzWT^43>_`^pncfIGrmEU9{Y1!E58 zGp}~%C)95TP;to$ss@v^Q~kqFc9m?EbaZggg4$>C94j$YP(f1si|63RQC-;4UTSHW z=VXmoxgpJg)l@PtaL8&8SL?;{Nv?~{Pk1J)mB*d^0MwInE&p61BjoQs>pTBQ4k@q` zMnJBJ+_R&oi5lg!Vw>-4pDDQuT#?Shf;dEl83nEVhT5j!N zU(Ua~ekBFAU0tTV_W(5fOMRdwy+q3Ksb)}X@PNPPK`cu`{q^xSm2XdAE3b5q(?@uf z_BHik90Ag64}`d0_UD?hEcdeh$T|PkzysTJ*y<5CbD}L{&cJ@H2>k=-4y-?n(sogE zXFGBu)M%@xto&-i;Cc(5m5~q?1$xh8{~Ubvs!XnMpHa`OxLJ@9soKMMYf^G5`2$*YuUHQaKQgM_uuz_J{*6lsAG+`&{cHO5wVl zPR4b-G|AZ%uW@nOz#dGT9{5l9mKdISX`!&p;LM(R)nM{s>gdI0uSr4wnYYj(&DphY z`~HIQ+I+*->jZ!HQm0>bGt8Fk8q|8JVQpTLVw+nL?cdze5&;{Vm<)45JSRZx0D_N#coY?YuxdH=)s_00!VZgSO}DfvWIzlm z8)VkO#f8*ssC0Wk+X}M(`A1k@gBQcKU$m;UYzA&sxWnOYAuf$3M&(Zz^2tAFSz%q^ zRXe)oLWtJ}{v6?aZ;Wd%5Li9Vz1Z)i{w!m8$7HM)5Lqb5{;jIJ+r3vB7Xg%Pb|YbS zmOMaOsRoy`Mw|9>rP;Z;5cNn&p~>0c)yfj5epPITOP_MLu!h%^fjv0LG-mx2p|YG_ zxt!ou;MLSqX=5L^FsZb=n*>ni&>S3YVs7Q6w;yHZ~#|}|BSG;4aRlU@)hVierb`E4M z6azaG`P2|I@M_}SC70-A(cEXfX0vmQ>B3i3mwt=W4j2&4DG>tES0aSv6`^5xbOkE~ zA}@0+#li2Zm)SfujNP=9ns1<0+aYA2-TT6X7~U`n?HBX>+kYJVdgjL)M*rThX}@9q zhmYAp$fmz4P89uB|F{xrjkX(KB>z6|Knrdq{hM6Nkm zIGd81V1z)LLe@cIRmz^uAO~v2pdkzl1cc`DHLD93sAGMvO)OZngJNO}NnZEuv*JG*vt<-iY`#Rcc&2980~U7JR($G7CL)tSvWT# zcXBUC571AocR>aVL0Y1|ZLQ&d=MpmDa*l*NvMWpE+i6H_W5s*U0(}WOu@3{?M^qFL zs-$h_!{C%vfgUP62(rqeKO`1i?&!(LJzOQNR&IFYCP)Gbl^Ih7i0$(Tlk)&x9?U;iSbR zqH@ClH#?LJpoCWA9%(Or)HcEecWTuiE(SZAQHF79x_OFDekI&Ng_otb!<)+IC-}bW z#6avVimRT_neH8MzZL$MW;O2G86fHt)4<6R&R|~`I5JlBT&h()CxO9r#arXN(?my+ z{;V(9W`ZqC8Q9+GhhLSzl>C{9q#;dLr4hKc^^7o&-3nHZJOmi}DJ9NPh^8AU9efc-S=}sh zcu^QGBUIGnTSFPZ-D&=$%ya3;AJL%3g!kG{WnN!sYBtbx>w2{h4%uBM#pMC7fYy%e zVvKuf_cv`9buOP2OKW)q%Q;7?XrV+U*#+xOht-_F^7fydcEFBr@S@phgv5If-CW-= z3Q%(WyE`Gs+C)?ofC!$KJKRhsioTaLe`te8AnQcst)1cDHs$C`ya=MQ1a&ZJqe;Y1 zX^95oNc<8k7zcurPsewjD&{?W4oSWac4&sg9{$To$+@Qx)AD>+3_Z+?Le5fKW5XmD z<2k@HP+tZsC}!E#M4Kd_B~_t#MAYsR=&C@s7-H@1J`b|&rFeMXAksa!*oW}w4%wUw zeF^X?!7KuQH~WC$V}9h3z$DZD8a2>Pa%it)#diK0E`Zy2z;NkEVSBEdmqYX{4O>Gs zB}HLZ+^g~);RBvWN|ANo6u-0glEsr{9Hoz~&~yvy^`Jg`?ETrqs2F0NCta5is5lhrpzPnmQJ+!@P5 z+folkp{h&lMR0${z{4Yox<1us<*OpFcI@<68Gt#12iUZ`4VVK!jqFB-2n5NF408=X zf8UKGuWWNAYJ5O+5v1z51B~#XD^6+U?Zl11n#Gl{%F8G*Ywnp>pF+kF;UGN5Qg*(+ z$+EB?JBV46G)YG)?dQU<~CGneEYXYMfOgLW>x5t9soS^$M;R%Al@r$Y>(A zPjh*UQaZgX5W@3r;&Ztfh<^iRbN2NW2S78@`r_22@lqmH!5Qm0YM?pZ_-h9YvB?)p z`uKsUN*V?cO?>G}Y;`bLcGV$&(0UP4{55GuBUR7k*_Nw~UTGH=sJ$0?3~~- zNubw^Q&Eu%cy~L&Knub4eamx6KsewbTx(Ulr{Kg5SpZ&0~a0$BNh3(5kB(dkXKza z&PcFXF%soXXZ#K%%c)1)1W8)VPpi^DNw9_LELVtH_)52$_@%LxS zoZy1xbQn%1n6ZRILkp_H>iw*eEB*Xn`xI`J;!XGyXkJkV?$x&hT=O^zyZam~!F}1= z4hTI++_;|wcC~vc5-0np74V$v4Fmk`F~~G{agH^$)ok1A!^ywfG2`40uppU`54Bd* z3Rmm$`t6<8mQ%lV%jt@|Hd&YD=Cvq8q`d?rsh(Og!0p}VYvvD4Xg*d826BN)-dH<% zoWr0pn@g%qvkA+KO$M)ZX5gKYUuoQK3s+8dak$W7@OtETHNVcZ3+unfs=fL91v{eX z?+vG+!YF7~7Yks;l_%R1A6O3;!x7(aV|MO~P3(>;W!I|ldgbTGZrL@BgOHuQ3P33! zHsYBtvrVB+t-_j2=_^^e!SH!ayZfVb34~EWF%|+ZcaL9EqK4m#_=D}>9E%taJ)XR} zx3EnMlyLljFiB%Y4er)iVWJ3>x9*>}cY@B;=JZt5>oV%qo^}vdF_a~Ms1M@v`)!?I zUugG(3y(mGV=9+PIo5qElWKNQamzUYBS_87<}kiW^lYyAE>p;q1bC;lY+(>NwGREF z1+E)GN$jbIrP%y~5Q+evb0e=t36RW)s&0ZEG;+Xy3VkH+W;4Vd#pTJ!%7Th*R~Ww| z*sUZW`V-i#lpk50orfA8jh)Hw|K0$%M}wU2hcD-#vi4t0;?%-;E(J8h?mk&(k)j2; zhM>w_d>{oHA!K=k&J+Z!$`j7-|OLNuJ(^F`J70sT?L{QytH7nGhHy##*|3U+?QS9|7UbZy=}_ z!74a^`(Q)wqgOj#?u52waSuyejw3pHL6Ps^b^opu|7?y6i~i=Hjr9mK9si5s>#k) ze*Sh}Yq3k*C4$c+s0!1Z*=ygui0uL(NW?P#y3=9vvUx1b7Qcx1S>5Q~@b#^Gm+ig( z^Y~C+*mH>_etr_W+Kt#tt1uaWVZpzD1V6!R9G*fsC%`i0U2;Wu{|!%9SRr!I3&%i1 zDj^|L<#1J<6I-oCnyO-@Tm1W-Fxo8!Bb4E(*~YtC(71W4T|h_;G6$Sq8b!=xLtk(3 z?Wrv=)DVJC?l47f?a6jUg81gA_vuzDNC{cJ+Aic?~`QE`PU_S*Ls- zeO3>k!b#pL8wz*Oi}?rvTvZ>qLL+Ji{Q37Q5LBT&c$;Ff40&NDu0NDzg71%f087as zex=LtZ8op2BF8(VETdb9U~KnLA)L&G=0|)Uqb(r-J7_~YnqvO>LMxb`jzLR154{DN zeh1@!%>zO`f{;T6a56x^-wmW^?3<>2ZbUlSW7MFv8qXQ)dUpIw=6;Dax9F*A5YhZ3 zdGO!~C%68xqFQHvXkfui$dI^#thJdDXzM5nf&}O_vWQh9=<9`J>YEid9kQ+%zS-&kco-sc*jA10!EZ+6tey% zUcRcH)~(ozbG-N9#=NV8@BWjP9n^=`c*_Xb1BPHAkklh#;KgP>wY2NN$-od9K0&}o z4nYg07z(|b3cr%8AWCt9hgyf24Dine;e5CNe=F6YeCAxzbOc&krHi~aKKmYC;T6sT z9Ul@IJ`wIXs_5FY8#uoq07yLlXb!qftGODH+FcPEd&2VhV|;!D)M5GiA$9CMY;v+v zb)^LQfm6=i$=VRHc&P44HTe9436g-xJ2M2T#knoJ`$MKk1OR6*LaUcvJlQD$5w`zE z*@_VHKr#$qmHR~zpgxM|4Oj~C`MQdu9StxnzLSd>uAO*4>usuwU0``*FiQaU*N<_S zk}TNgw#ZE_bVjY9&k@?R{jN((E&7FPqkuomJs_8J9Y}V<0L%cRK|BxUN3V0hV4+c_ z)o8)c@loBw-~%Y-{Eb6aT@MIQY)4246Am}4Q$j^+&LCTgtlTn5;Zoc}<~s%n!` z^rWNYIu&aZzpJ^b<HPvw<(bSghY+&G=x3EHPx_JceHqLsLxe-O_56rb%vN5% z^+WfZY{jqeRHSFES4Y^$C>+#Tb(^>Dd0v4sw%F5&B%LHpLU2(_=wo>b+Q{SOD;>Sb zz{U5A_xsQwK{Rw*{R=9c(cCBkIGv6vQ_4wUAl%*U%yEGyAPtG>ll|ctaEGv&^>J|F z{e{+&180V-CdD~cM!e^TM&>YVZxz3>$b0(gqnkVZao|kY$9*Shbs-l^Ei_bKy{!zA z*ANZPR6$EPOl(wuUoFJNg}AUZOlcqxhDd2$&Q|_|+DN}<7xof99xFMA6IR|e+Z(Dz z@jm-YC)I%y49?_mB~$9NMy#HYho29pb!lGciOx(*AJ1| zq8LbluPrvmxoM+wbtwQm4bj)1t8j3ypx4j%%w{}m@W!x}UJ_WldG>kJDiJH+I)~m$ z6iF?NQ*ha1ZZ57C240ImZ8L&U12pc=cdOHt0;++kxJ_0min#)ttCPhzh%GwOyEdAC z`W$Wp)@wNQbitKyezI5AwS1w&XCx!dcBVDQ`Ck-vzLe_y<4lu> zAJzknnJKuoeV3RGlzHm+IP(xYq%FUxdH??xaHjIc0?ZzsMpuEq-qn`HKzTbRB9!hD$s(;6&7Au!e$E>t$^bIx9`!^TuAbD zdTD9}AA_FL#g68_;Weh*O@eev#a5;y@YhqzAgBfp3a2AKbBsl znQrhpQf(UTQ&4=nHbm<9=ymEbpz{4Zaw*-=7M)|IlOc%Ya4%1&pD7 z{IUE+BrzMdZnMb%V?79bKeWu46wuuvcrdg`1hm2}#yw#IG}WKmGaVaIwSpvOFAPcJ z{52Ynm7R?B%JHOt$e5U-M!KIfu<_&w^`X&KXQeG;x_>Cl#6e+J`N|azu~JqdslK1l z2h!KDoNv*FeeGGOv;F4R=N91S2G~(fg?{qS$mY|VGZz3>Q_BT7|~ZH!qd zSzVa><}vz^L>Tm>C&ty_A`j8PiISsYlApdk?JoLDc>&rkeH$Kzlc{jV4l8L z;0w?wyz$cc_LB_*|W0`IiHd8ythV|_MCaU2L3O|YXamGI(2 z9~WFmolm%G)$r3f!)=5kpte1ojeKcA1FcG%zRX7ghw-zi73IsBSwNuhC_&aMR#<;gD-`PvBuG`+ zeM`3ds7=6d447JdHt+x>$ZpKUu&yq4o547(CsiMkU6-5)MDP`(^lfd9;9XtrWU4df zqP@Q>tC_8yo%J3qxTINZ`h!$X;0__x=l@0TnKvAy{Un*GGB*E#u|G= zbzwBZill)o473umdt_|{Q*?L<{loY5WkXD=7mMtuaJm`+(4=oW_z+QH2BEZiGtpaE=nnSi5J{z03q)|T;$J9 zIDmGlq;4=Kc@FO&@n~;H3O-$goN0i4$$;E^ zkObu(I5?nlp}QKqNqm@*x?XA}PzAt+IUNY2sWelXshJfYw4%o#?%54`DL^N5DwalE zM+j>T(yn_TIJ2gARA@qUJfl?Di! zTq0rlap`oAa|)mk;)$dp{aEJYoNO&4x9Y_?3X*oBT1I`Ti{gYh@JHmGi9E4*;hh>Y ze*ji+A%fBZSFq1)9uZZ-PHQ^;b*CT3-!$EXoC&7=0tA44<%(H(jek`xbf?V9WSkJm zwc>-!;&UhC(UP>~%{-IAjjWG#%*|UX%;%6`4E$Z?dP>|xKqQvip*eK_IJrk;NMxi5)g3ylu49(v6 zDg{^}XdHc8yYrVoIH`0%Eo}Go=6b+o?^UiEe1D2J^T9nN?wF2U}Fm zfk)&HE>5*hX#vvklJgBO_eQ}XP0WIaotEUQ2;db%SyR5iOPw<%&w8%7_K~EYusVjF zt4G*Y9x*9U#2P#PF+nM}qA}<-sLCU9s`nu<(C$v|+BZn%Bbir7jiopSV|$YUaVqb_ z!`A%h*fG$c79w8;-&m7pum8C!Vh*zcD-0wAg}F)mqw$_+0Z|!9W97ocKanu~+GnB2 zmUSKfBe8yQCjuJ~y#Q87Nax*#`_X&WXB$I6@k{1g1vBEUoj7h78(|@WAn2-r+;%zl zCCAuW&=LS^Fxu%9+SfNeKJxkcOcz$6cPs@ie_rJ5&0dYbg29{X$jdcm&rO0o>hSFA z=fR)61S89~Xq5D_e;$YMLG2hxaXUci0g8zAnZ8q9kHg=1{oXwZTlGae1jNfjp{B_I zhdCOzAb8-Oi0@JG$0_V}C#`lUQL^P*0-;_6L%ZtglWXRP>&}z-7ndjLW0VLa)M_k` z&IO^?k<;+rN{29V2svGBbNz;$8iFGJub#elhk_>9>GQ=}81L;$BdmOR|NdYCE*yQH zX!C#xC;B`gSJkCg(S3OMc=D;qj@0}$wdOij1aNg<+|EU$Gt%-%2?~sNAGpIC?d*aV zhm6W}mpDat7-!ZAxNVD&NEF1t_{_D>=_J6&>dVYsbnttsH-()x?Y6p^t!JK#u2 zJtIl`sS32rX5k37QD=^_DCuGmeZ!@7Ay{m!r_#V~M85+zNKP#aaY9gNO6hccoR>hA zDtHM|-r`6iX#v#T{{`d8sxLArt>l@r=r8@vt)0{EY$)+#1#z$nM2T!_9dFdPutkVj z%=dJzV66JNvt$Dx#*c7zUO@S`X4TPnWC&p3x z!|h$K79%%ppFklzyu|IQiV(s6>>I;Kkntfax9&Ye7|b@xgaNlrTQstZTK4ZM?DClz z)Fscg;7G%zI$`vby!C?c7|Hiy1!%?(eQTuciD6+l_IL!n zu@~b)`Rf@|-5K_2#^(3>A&QEKl4`K!8XBdpnj^NlT*903^y&FDx$o=KO%z&X2yfC) zHcH7B?OX;b6yWS4VGzhLeXSa*wK_hMhK2#BnWG&x(XPK>iC)e({NZ3C$`kSI#3!js zXF(SQ$a~zmG6yHHR~nAFiK||CcnN}K=bNT2!`qFaSQ~x{j;-zkAki}dN;xdu-SQWC z2>!rS*oAyxQFOry?ZcZ;&WgJWSg)d)Csg}sVmKTY%ep@OMJ{LWk^Ml|KYM}nW3=)n zQDf=Lr@%nw^mrQaYluv^Sh%t%O#e|HJCwefE~;0Bc?S&3T~0 z9PvQN_ej+T;2PjnIRHKYP*3HRf?C=h=5KOtt8Dbo=vnkSG9}?0WY4fVYZJWLddw}~ z-akBt^Ed=K(I@f!TwpI0q9w}3#T6rE77kqvu?1T$7%J_&yFG*hNaygmL*j$~%f9vy z;2h-N4oNSmhL*2GSPm83N_K z4LJsAfPgkCO5Ta2KzRa!P9St@%zq--tm&iH{dThmuLfR8Ks62!MtL?!kO=p$SXF7x z)%U5fwOHha%~}9u(T=RaYF}@P-z-W(TCgvX8^FHW74aise+3p)Gb-PI%(fm#UHj5E z>kZds{R96_2p#pl|Ao|D(fy$cxVgo4vg0KkWWeIR-QC@-z=r8>?yhju*HaTaZgm%H z8+O~h_HKFpgaU{X>&=z~$}|u;#&#J_$=zH4dl~Vh$7*IQU02%r4%of9B5Y?M(>2|nf7V|9)CSi%4|=H#g6|W z9n$ypcV;grgAFxtD%UST#dSRv4gwM07IoH@e8SM1zsm)C!HaHaZj!TXc6eo`MwI9R zyFwV0)hIxTzkSXWK&0<);*UGXF-I4UV<^aw(NopP6KE~axLSgU2uTRZipBdn=H~(u z;*Rw_wNAR(J{{-Q=86dC^d`KHc8t;geXD>d$_99J z_PY-NO-c*2;sulnD768|(g9yfJLhA^PA00WKxO{G1G%$#uPir12UsuD*#w%+eX-kv zq;ji3HiSXJcp=nht_hKaC)zWKeZC$j>au~36aq2-M})I(-I=4%0q&J$55Gp1srhd3 zW%OpaufS9z3HaEM`A%NC$l=y4bSWo#8fuO|XVOn8rOtL!h@s)YO($k|7uYS$g2JdZ*)e3SBh?w4_Q3JN z%K>6ivlS41FBY%3e|dq*i$DeB!1O>|Ulb;(mwI2g%tIbyIBvQ$9Y8_I@G1+fz8@_5 zeYRl4MWDrd*aMaBkPrbVew3w)Nry_F=+&4ll&`JDr-uRXjzAhc}NSOSPq{xF>m?ZL6BjycWKpUhNB=uS4C>--GUBuw%toas^ z2UH#Umt7Gt-hX|6kX{%lLFqAKy`@_avK)#!i&D{?bO5czNb`6~eUJ6666 zj3_D)b84HE`cF?)uJ0;dH>2=lJ zV4l=jI+7{XSe|XH1UC@SR5ms&LcNN_5yKYWq0FhBke>V}PK#C-!p#EMoR2!?phb;;WX_x21~cfPimN*$vJ)Fr~a5 zU4=5Nf+Pg-*@V#+01q_DfyLsP0(!?$-q-y5lm;)D6H7W=9nYE-imu`WtorJyfugqW z@*#aR@h2t;KDkoj(yR0D844#9yhs~3fI$g=1VwV8h4l>t`s*7A^rxBQ)8qHN=o7DO z8x{e7-7R&q2$)&Ono^H+J1EKy+EsMfX*4Hk+FzJ`4G$Q_YH@e&cr(2K9F5gg23Gs< zC1f%q_D1yD>UyKO|E6g$cMztPmm5QQ)Ar)j<*v&RAVyy>sV*k^!sxdr!wtz=Ajcco zIl7LHjEo#G><q+&<`_pn=^htOwW0G}P)~}~#lN02rtZ77In4$rC8>Q$O9Ose z+j>+IR86n7ubnE<#2x3Z-bCb28)5ka?KY3%zPa6Gtc-q4i0aU!-=^62S-L@PF58CKx(vIC*gtwk|&?V0WLR!FVrPu51!O?S5oaj&ozkQ4IrCS*(h`9%w;D(dUtxVEqR z5QDgTU_=!t++SWd^XzzvJ#mM4PKx^Gi2+v#WW$=5KbYxj;N07Wlzr!UO{j29_{{9A zmc<5y)a+o=03H00kK5aS&Xu?lVC1ES(nf{CFN?sh41?m3$ImdU*K;Zlu;snD!2};a z_U&_3{=O*MgP$<%;a&@dW1x5kQw|+1fU8qGD`5=tXr{Rq{;DPUn_*Xi(WQzgJkUkJ zOq^5Oa@t&`V(bBOCSqS{;4bLxqwOwU1KCq836pqUq=c5-u+EUf$l?6r=0~B59z>5A+w5d5sG~=&G~_VMzoNg!0NteYQl`1ZN)scq0)C zTYCrwpnpA%1s61{%2zGN$m(9WfVE?HkR{+Whq6I#`ejK-f+fTjp%6P{V2G_w*1!j# zL*%fQJ0%4lAe$35{qN0`FeTz1wUTS?nde?#Ha!`qse!@*l$Yit>N=|y+b{K{8>Mzs z0|ygDcXM*lLTd_< ztrSED%UqR*fuP3uH^(fUwJYS^jr$mJq&?+{8ZAsPNTTFPB!0N#C+@ z@ZZz!COP`I+Z&z(KGOQi_SP9cxK>jarGW%O-!<@8(Pm+d-wj?ibZ*-2@5c||$4k1tURd;DH>4pt=90o0y65i250A_!4=vrK7&lP* z49e_*wVTtYf^twJbwxsw`W8Ri4Q4$E6=IyV^5|d4yKriW5C!8t&%PThL;Y2Ld(SV|nFW+(2XkaK&!WBiSYhSrSZL{v9i=`IsTl1Q}wkdYEO z>KfuX7_!Ie1@!tW9T%P`ppW%My_ObuU8?IOUDLbX{B0&i)P;3E)m;EnX$~K{#JRX= z*vv62@0Bomqu+G6PFOH0?Ey&aa0_K-7##X`wKJDG3eCTK_!z3-+*un3iaNOGObCF& z3RJTf2oOjrO4~aB9_dNlXhdI`5@;y|i#&<~7v6zTK1{3ErA}i@J08kwSHjUY1PR<;% zQ%Z_iZer`0N0=QeoSJvu)>VD(V*&crfrg2+@@WV%t6q>0zuUN|J$Taz8c=enkrK57#NepV{u{Fmd{YNLeX zFRW-)Mz(nYWz@SrYR`)a$m5H@%64~W4&Kv7CKLV3o^pc;L3A3g%}EVs4!g5D1v+i_ zv(MUs@Jnsx^cYzxVT7|9kp`&eib{Lc92TCWW02N{RsVacy}5X2-5$X|keX!UD^byF zywb=SpJ!6Zd2#B?WPKPvN)!_nZF{E(5CzHy(uLwII80XXr{F;4Ov1SM$JLd0Ax`Bk zpa%>Dhh&;|zo__Dm=$xU=m-latujZTRe_$D4z!E9z`+`Q%<8yfKZm&avsWq~Dz|3J zd3RgtjzaV1I+O=?C%6y>B-VUOhpg>#cdMJRJs#3z2_vp*c00joFw6G%JusRe;3h6Q zrsC~mo88Gl61CReBmtP%Mg$^bgL*gcMlM~PkdhMI)&NIbPTB12UR8$^c^)Y`;h`Ah z|H9>4vmwLY&x@T2+z2-Fg#eP+JJ|yu$|sTN^CuAHszZ<#){`A0Xa8Z_dDB?GxG#wJ z(U7*d=_&HVQCgiTLuI5zwHGx!^x5%EMA$`WA;fKoR%fQ+bfHQ}w!gQdZbb9kV)jd{ zy2`!IF*cPNjPY{GUHbH9ue#6azN?=jOx8c?wBZ=Wv#13rK$jG6ehgRePWAb;GpzSw z5rG1^99xHyOOYM9@U!G*yX+ye6ytM?;8g!M3d$HtQKwDBu5et=huk8_T&DK}WFi}X z-LB_i8oVKQwtEUWMlQEr79-#%n8<%`frC|WiA89~cMNp>B_H!2w^PlR z!T;27D?Wjf;9)~%u}<6Nu6i$cEQfeCbXn=l6M_r=){CjW&Q zZ?AV4 z(=ticQwT%32a~zwiW5Al95#+)YDe-0&PQ)p8vG>prBvL(Jyks^Fp{CyIOm2#BfKf1 zz7pv4r!CE8lsOe}`}l=w4o7o0{%Lcgp$>%8ehwYke53IzFA)uDqU(8siJo-WS?g&R zW7OIcH;d@0c~RTV_H6yQThYJk6^1fKO{m~2N34lZFT-~}Mmj2sXcuMRhE%&I zGVv>HO?${cGu2*jG2VMxC1Vk|7N5O}q^^9-%1w=Vsy>Il#6&*{U4>Sjb&eTcC`NE` z8RNG8&Ia{=2!hM?*K4_4KL2!7d}BJ;H#|7|B+D)G{u}7upo@I0st{~ZfL(Aw#cun6 zN!6?UfJ^FA{kgf^K~QN<&XK$$HV^yIbuWTOp2rP99s+mJj2H=Zq= z<1X!z*xl{Y8ihP4uJBf2o4p8O-ssBmb1OR|C~^-d_$|f*kmWXZ>HXJZ?(;X-4~MG- zd`U07+8do=VoxWFvs@BlV!#vEirGKcNZ7<$_)Au<#IEiGH%l5yG^pSsFJr@vc<>{B z60713{g;JGB~;gSZH|qSJ{x&Hml|OyD5j&4s#S!hSzkmcAn2)b<>?H7cqH= zcxt4Y^(UrcE37+TCYR04>BF*E2D?a5NfI%IFVhZbTXyt8!pUD!BIlm0t}Lfgrxv^p zd3+~_rlMx%AhLV#TS z`6VNZat{N8jLAb4lV`wlqH)Ud9O=)&`!K5p*Gutx$0bqyXSzfB8+8gzGq;3MEuNF0 zCv5A1YvDxiN+x{2AbfUPn))j(OO$8diy2c(piPHS=`~_|Zj!01&tcJI)2w-J3=bu8 z*6E;{KxIcq%4U#g-KGPj3qMGP?WVe$kx!K z({WmageD=`jcu}I8=AIb3NK;oTL@w7S;EY`-&<4Xy{`AydtJZlI_K11{^*(Kx$ozG z?)&@wd_SMh_h{J1Li&kH^k|rP3XhYkGrYrOyZkRU&tU4%q3(IQw~=^uJ-r`!rc?%H3ie zTNvrs3f;*@4Ld|{g*iw5Omq*+7(BeQ(6kY9G&~c!&$hLWAx4dT-}6|LeV9(Wn1ff$ zyNauI#cw?a-_CMP1CaVyEO+(_2I1U5-$o-G|U%n*#uH<1QejE z4q&37vcu9f>zGGyaXBCa1rn)Vry^LzM;Vw8q4WgIy%ef`zSwLqHgr%h)4jDR$NiW) ze-mgB;*7SC9}C;K`qM;|2s{>aeqiJ?J`i4{& z{YzmhfHxoCldLVaBt(L|?i}Ei??L?ADs2y=a~}I3v*Q8kbvm2#)W_L2=8Udt{35w2 zv@_niceiNZA+aliIHa|&9)2VioW9BKRU$m5KwEr~eD^#w&|Nyom2rjH@Jq=*YszyV zOc&+P?7d(9-p4xNL@u1VfTf_}!2(PeT*CmapGIZX$2&*$ zD5&4ArEgyis3l}_*MFMZPB6Lok}n1dM0PRBDa)@B@@(u*1rNvjWL_lB*tj|b6YpaL zig_4|Tc&t)VFBQG(9BRAnlU`E*NNJ%G{Mg@&YrxNR|*A`x&-Fp+PLPnEF++H--Hkw z8@udm((njRs>Yw}9xQF9OEwO41u3^(&!pA>R8TMR#Ob`CbR`^6tr`Iof}~H#vumr> zG-3-|n&ZdDYlcmsr%{+dx8TZ;?}4!NzMIfW)H8eEEhwWLu3uHzan*ow(kMCQ$a&or z(FrNuE0*;H#sV$yt{t9@sX@;RptML;;t& z3Q9WN&S_Zh>L9V!ODF^|YU8%w1^gE++mJXh@D__XN_Kc%uF09k22(j}(N|wJ;hk~v zr?k=((*woA4H;&i5+>8r(nP6t-G(khA~^SW7}?CFg+eK1#abzj!BND!zZv8@Y6*-o z%IAh>-ALi#=5iU}afQM!{6520jnMAq%}a+bhY=_)DsQs%^K8f;Y{p9lDE|Ayq_BWO z_3T8gnx=_c3pM>0XK}#=RxfQ>rg~)8osgPc>BY9Av9^p4uCl;;WMsC15>@fgybkA} z;zLd^4N8eKAAgbstn&!N%Kc%u5K-mxC9ftAJTI* zC>#WH-t0c#oae;RZ|zmeb!vaOetk-5r7`+Wu870hNh%#OW{J8wQCwY6Gr1(rY(xP1dMa-05%_+6*a$>Or1J27x#*S2SHDknR~ zN&GnQ@4V=6Ub@-4u8Et zNF0v)?3aK7fpjJyW%^W~m;!bLY@@2~WlVkIS;wKIEC$wjD@?Kmx${%93R0W18S%~` zIg_1Yc>JKLF@TMD2g>P!6b6@QcDNSgjMu>WXa+fw=o6uj#OM%}=s^*BOT#i<^p1hh zR*Vq)3nC-KnSpX0@;C@3ce#4Q>J!Bgojk2d%8g+wy(dR!3S8f3huvKt`TzvT_IVG+ z5R_)_Gx&r-gKsM-N=E2X1bBS=)f3PbO4m95WG`rY+|@T3cZ~9%f}zeL;s?1NnBI2L zL1WNoSTem85^f1IQ@83=^_kgy;NEeq@Zt8JO6)+oS?$$={*O{_kfoUrU;Oq1TGa09 zi5SfZgank422>t+iVu_F2I8e4w7V8>6Z7sB#446`Oa-z#hwW1)(hgu3>H?p_Dv5AP zj2dp}NM56suu=ZZ;eIzTW-OX3l@v4~sv@+hvrB`y{nR~PzL_L*3M9!rggx?m0PD#I z_azNhbFPnR(L=sStP!0}^ zLm(~Q?uTE#8%(u9*&Jm*^`WjfRJU(ts(B;ha$k2bZv5ou=V#pyQ}D@wt(hf-TKvnOIeqO>!dG=$JcYl z)ik3N(_5S&j`j!SBdG})Rs#A&Qb>%wdz#MP50W?ADodv~PeC|R0wr>j7%VgBAh=Sy zcN6SXUZ!M0Vb{}@+2AtE>J2#1ReVHD&Q;M(W7%qgU;m_3lvl}ynkL%Q;RBgZ7O0SG z!NJFGgT)%m=e<+H73GKfXBdnD1kax0cow#Jkz_FCl0XrXy})M0?Sl$3QrQO9CPaFm zNOuKS+7P{Hff4r0opo(75->wh%!h~`cxP3BrTw&RO5*g&ftOkldWc9s=->QynL|yX z8z9kbkF=308Iom7Hgva9v__}*xQ=508R`;%68%vNhV3RqJ!qb!x_t9~soIBoZ5-!@ zoiM}xB1Ex{Zgh){(2nh}m( z45@&cD%v*y64x8_EATH};Q_nMtGr6KbyH?D=B^HrOe#Zmt+-Yob(nR&DbooXh)9^E zq;0RyqydjW^694lr+AUsS_Jd zAH=n6pBtJIo7{Nlg00D?Dr5x>HsJ|+(SAr80~l`ZYtHt!1aK0R?+(R6@Mh{EB>^=} z<2@v{4>yL177G{rz{liAEQwrj-ClNR`KEozFIMt=VTd3L_8?75Lgh;s4kufGBweH2!uG7n}g7MDA-iJC7RN!2IJ8OG$?*Q&c zIJyIF%x_~DqXm6n;(6_xk{)`yKp!GyxX}iBkPt!Ya6Q$KGF@$KQxc-XQW6zK0erm~ zW_4RgK@L^@8XKk2c?GD4h!gNkibkzx0`cwBGxeg76^Er^78zC;4iHm>3_`yW+11gZ z6|>!xA%Ac^+@=ll1X5ryKOj&Iz#`&$=9%X&Jcpt=fWg)!mUuuf^H;51leOsS0ATk= zm{KPF_6_FxMi8=Cr7 z{!G(=9vziKx)63f-4*B$wr-ms*9@H4xWD8*lyV9%wxskqFVy6{^EINF=Qt~&Tz-lbzTT8`kDwhUPU`;F+_PkUyU0r5J z$GI_$Iut-X-r2LcbzL6oqm5m{GxMLu?Th3RnR?c!J$9t=FsJ|%Jn+7 zrD4V`F5^L{ThYyozB8#1SBqLQUR#}do-loml&t`T=_Y!Bu(9PYeG%=`m%SsSH*?QN*wd8=Wy{NDEMJ{s3cBmq(SZva1)7HKb4`Vghw_9rcMP4S6rG0QQ~z& z=g8S0=stLm{VF6Ou&lfsN{4 zSiGcC23m^%R|TeK)+3{`{E2%J_}1`@$AFB0W#C-?k%6`i0B!aIiKB%$6(x&Zdi`$c z#4yNGTUg^bi5z_Ao#)p&1EX8bW7@?bDhx8c;(f}yYrrD)t>RNo@iN5D7VPJ0!J-A- zAxcU<8XR?GF% z-whNWSEU)(yIuLm|^f!mcrtm z#PxdPTom1I0Yy&?!tfuxFfS?+z*UI>L&vvFcH8gtD!v&ypq7?np=4D51-)9pT##}g zyaPzC1FOK$7uZ7WS4=SiL=>Sw?nG47}{}pE*Ci{e|c)i?QnY@ zM6FNk8|5;nJ^ioEa&{tHm71hV$o379=S3W3w}|echH3@?6{1}|p)Dy=JF0Uix_xzx zP5EsIc3y#jy%nfbkaLYi?*YSC^!3wSD>-}Jb_43C zC|t{al)(+R7&XxBJ-LjA;c>xL>oxE8N z{6wzv{WD%`ekmSb4O%iH z>7O0;*Jql)KlfeywKMzm7U*Zcc?awtecS*2Okd{zFI!OmeT(^N<@v@Mhx`9OulQ>( zz`oaqH$UoGBF4ViPSBr@aTg zaO|5q!{0h=bnE$1f0_U9^%0``f3Lj8{7d~c zJ&}S%i%zro^MW;arxpn3XbQ;3=|s~sb>v?)50riUqNU^Ul-NLu!SgEYDQt0Swz~YP zkvV%vsbkeZp|;MK8~Y}iB=ScFpZp>$=3xt%uUbI5s?Mvur%F!g-R&!Lb3em17-#O` z!!H-{=!iWNdVI0@&pW*n@l;tt($(bMvUC1v1|}50+92_G@{?vS5;cRqUOs)JXv;!U zl_szD&#~t(Kl^F$|9Gr5XI4zl49 Date: Wed, 10 Jun 2026 13:45:10 +0000 Subject: [PATCH 2/2] test(email-list): drop redundant accountId arg to satisfy --fatal-infos The CI dart analyze step runs with --fatal-infos so any avoid_redundant_argument_values info fails the build. The new EmailThreadListController test passed the default accountId explicitly, tripping the lint. Use the default instead. Co-Authored-By: Claude Opus 4.7 (1M context) --- test/widget/email_thread_list_controller_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/widget/email_thread_list_controller_test.dart b/test/widget/email_thread_list_controller_test.dart index 7945d36..9e5e7a7 100644 --- a/test/widget/email_thread_list_controller_test.dart +++ b/test/widget/email_thread_list_controller_test.dart @@ -93,7 +93,7 @@ void main() { test('multi-account threads are kept independent in the selection', () { final ctrl = EmailThreadListController() ..updateThreads([ - _t('a', accountId: 'acc-1'), + _t('a'), _t('b', accountId: 'acc-2'), ]); ctrl.selectAll(); -- 2.52.0