From 1b5adeaf22d067fa8f2b7444fffdfe4ff1a0f9d4 Mon Sep 17 00:00:00 2001 From: 27942 <1313123@342> Date: Wed, 4 Feb 2026 15:25:04 +0800 Subject: [PATCH] haha --- backend/apps/admin/api.py | 309 ++++- backend/apps/products/admin.py | 35 +- backend/apps/products/api.py | 344 ++++- .../commands/record_price_history.py | 41 + .../migrations/0006_comparison_tags.py | 57 + .../migrations/0007_product_price_history.py | 31 + ...comparison__is_acti_f2c47e_idx_and_more.py | 28 + backend/apps/products/models.py | 93 ++ backend/apps/products/schemas.py | 70 + .../0006_user_users_user_id_83dd09_idx.py | 17 + backend/config/api.py | 5 +- backend/config/search.py | 63 - .../50b85ed16f4d40b698c57925cf35738c.jpg | Bin 0 -> 113733 bytes .../a793c69e92bc4bceb76a758662ef51fc.jpg | Bin 0 -> 113733 bytes frontend/pnpm-lock.yaml | 10 + frontend/src/App.tsx | 4 +- frontend/src/components/MobileNav.tsx | 3 +- frontend/src/components/Navbar.tsx | 3 - frontend/src/features/admin/pages/Admin.tsx | 660 ++++++++- .../features/dashboard/pages/Dashboard.tsx | 11 +- frontend/src/features/home/pages/Home.tsx | 12 +- .../components/ComparisonTagsSection.tsx | 369 ++++++ .../products/pages/ComparisonTagDetail.tsx | 1180 +++++++++++++++++ .../features/products/pages/ProductDetail.tsx | 3 - .../src/features/products/pages/Products.tsx | 625 +-------- frontend/src/features/search/pages/Search.tsx | 172 --- frontend/src/hooks/useApi.ts | 172 ++- frontend/src/lib/api/admin.ts | 29 +- frontend/src/lib/api/comparisonTags.ts | 25 + frontend/src/lib/api/index.ts | 13 +- frontend/src/lib/api/products.ts | 4 +- frontend/src/lib/api/search.ts | 7 - frontend/src/lib/types.ts | 96 +- 33 files changed, 3597 insertions(+), 894 deletions(-) create mode 100644 backend/apps/products/management/commands/record_price_history.py create mode 100644 backend/apps/products/migrations/0006_comparison_tags.py create mode 100644 backend/apps/products/migrations/0007_product_price_history.py create mode 100644 backend/apps/products/migrations/0008_rename_comparison_is_4b7062_idx_comparison__is_acti_f2c47e_idx_and_more.py create mode 100644 backend/apps/users/migrations/0006_user_users_user_id_83dd09_idx.py delete mode 100644 backend/config/search.py create mode 100644 backend/media/products/50b85ed16f4d40b698c57925cf35738c.jpg create mode 100644 backend/media/products/a793c69e92bc4bceb76a758662ef51fc.jpg create mode 100644 frontend/src/features/products/components/ComparisonTagsSection.tsx create mode 100644 frontend/src/features/products/pages/ComparisonTagDetail.tsx delete mode 100644 frontend/src/features/search/pages/Search.tsx create mode 100644 frontend/src/lib/api/comparisonTags.ts delete mode 100644 frontend/src/lib/api/search.ts diff --git a/backend/apps/admin/api.py b/backend/apps/admin/api.py index dc80a76..82a5ef2 100644 --- a/backend/apps/admin/api.py +++ b/backend/apps/admin/api.py @@ -10,7 +10,7 @@ from ninja_jwt.authentication import JWTAuth from ninja.pagination import paginate, PageNumberPagination from apps.users.models import User -from apps.products.models import Product, Website, Category +from apps.products.models import Product, Website, Category, ComparisonTag, ComparisonTagItem, ProductPrice, ProductPriceHistory from apps.bounties.models import Bounty, BountyDispute, PaymentEvent router = Router() @@ -40,6 +40,10 @@ class SimpleOut(Schema): name: str +class MessageOut(Schema): + message: str + + class BountyAdminOut(Schema): id: int title: str @@ -193,6 +197,77 @@ class ProductImagesIn(Schema): image: Optional[str] = None +class ComparisonTagAdminOut(Schema): + id: int + name: str + slug: str + description: Optional[str] = None + cover_image: Optional[str] = None + icon: Optional[str] = None + sort_order: int + is_active: bool + product_count: int = 0 + created_at: datetime + updated_at: datetime + + +class ComparisonTagIn(Schema): + name: str + slug: str + description: Optional[str] = None + cover_image: Optional[str] = None + icon: Optional[str] = None + sort_order: int = 0 + is_active: bool = True + + +class ComparisonTagUpdate(Schema): + name: Optional[str] = None + slug: Optional[str] = None + description: Optional[str] = None + cover_image: Optional[str] = None + icon: Optional[str] = None + sort_order: Optional[int] = None + is_active: Optional[bool] = None + + +class ComparisonTagItemOut(Schema): + id: int + tag_id: int + product_id: int + product_name: str + product_image: Optional[str] = None + product_status: str + sort_order: int + is_pinned: bool + created_at: datetime + + +class ComparisonTagItemIn(Schema): + product_ids: List[int] + sort_order: int = 0 + is_pinned: bool = False + + +class ComparisonTagItemUpdate(Schema): + sort_order: Optional[int] = None + is_pinned: Optional[bool] = None + + +class BackfillHistoryIn(Schema): + product_ids: Optional[List[int]] = None + + +class BackfillHistoryOut(Schema): + created: int + skipped: int + + +class RecordHistoryIn(Schema): + product_ids: Optional[List[int]] = None + force: bool = False + + @router.get("/products/pending/", response=List[ProductAdminOut], auth=JWTAuth()) @paginate(PageNumberPagination, page_size=20) def list_pending_products(request): @@ -262,3 +337,235 @@ def update_product_images(request, product_id: int, data: ProductImagesIn): product.images = images product.save(update_fields=["image", "images", "updated_at"]) return product + + +# ==================== Comparison Tag Management ==================== + +@router.get("/compare-tags/", response=List[ComparisonTagAdminOut], auth=JWTAuth()) +def list_compare_tags(request): + require_admin(request.auth) + tags = ComparisonTag.objects.all().order_by("sort_order", "id") + return [ + ComparisonTagAdminOut( + id=tag.id, + name=tag.name, + slug=tag.slug, + description=tag.description, + cover_image=tag.cover_image, + icon=tag.icon, + sort_order=tag.sort_order, + is_active=tag.is_active, + product_count=tag.items.count(), + created_at=tag.created_at, + updated_at=tag.updated_at, + ) + for tag in tags + ] + + +@router.post("/compare-tags/", response=ComparisonTagAdminOut, auth=JWTAuth()) +def create_compare_tag(request, data: ComparisonTagIn): + require_admin(request.auth) + if ComparisonTag.objects.filter(slug=data.slug).exists(): + raise HttpError(400, "标签标识已存在") + tag = ComparisonTag.objects.create(**data.dict()) + return ComparisonTagAdminOut( + id=tag.id, + name=tag.name, + slug=tag.slug, + description=tag.description, + cover_image=tag.cover_image, + icon=tag.icon, + sort_order=tag.sort_order, + is_active=tag.is_active, + product_count=0, + created_at=tag.created_at, + updated_at=tag.updated_at, + ) + + +@router.patch("/compare-tags/{tag_id}", response=ComparisonTagAdminOut, auth=JWTAuth()) +def update_compare_tag(request, tag_id: int, data: ComparisonTagUpdate): + require_admin(request.auth) + try: + tag = ComparisonTag.objects.get(id=tag_id) + except ComparisonTag.DoesNotExist: + raise HttpError(404, "标签不存在") + update_data = data.dict(exclude_unset=True) + if "slug" in update_data: + if ComparisonTag.objects.filter(slug=update_data["slug"]).exclude(id=tag_id).exists(): + raise HttpError(400, "标签标识已存在") + for key, value in update_data.items(): + setattr(tag, key, value) + tag.save() + return ComparisonTagAdminOut( + id=tag.id, + name=tag.name, + slug=tag.slug, + description=tag.description, + cover_image=tag.cover_image, + icon=tag.icon, + sort_order=tag.sort_order, + is_active=tag.is_active, + product_count=tag.items.count(), + created_at=tag.created_at, + updated_at=tag.updated_at, + ) + + +@router.delete("/compare-tags/{tag_id}", response=MessageOut, auth=JWTAuth()) +def delete_compare_tag(request, tag_id: int): + require_admin(request.auth) + deleted, _ = ComparisonTag.objects.filter(id=tag_id).delete() + if not deleted: + raise HttpError(404, "标签不存在") + return MessageOut(message="标签已删除") + + +@router.get("/compare-tags/{tag_id}/items/", response=List[ComparisonTagItemOut], auth=JWTAuth()) +def list_compare_tag_items(request, tag_id: int): + require_admin(request.auth) + items = ( + ComparisonTagItem.objects.select_related("product") + .filter(tag_id=tag_id) + .order_by("-is_pinned", "sort_order", "id") + ) + return [ + ComparisonTagItemOut( + id=item.id, + tag_id=item.tag_id, + product_id=item.product_id, + product_name=item.product.name, + product_image=item.product.image, + product_status=item.product.status, + sort_order=item.sort_order, + is_pinned=item.is_pinned, + created_at=item.created_at, + ) + for item in items + ] + + +@router.post("/compare-tags/{tag_id}/items/", response=List[ComparisonTagItemOut], auth=JWTAuth()) +def add_compare_tag_items(request, tag_id: int, data: ComparisonTagItemIn): + require_admin(request.auth) + try: + tag = ComparisonTag.objects.get(id=tag_id) + except ComparisonTag.DoesNotExist: + raise HttpError(404, "标签不存在") + product_ids = list(dict.fromkeys(data.product_ids or [])) + if not product_ids: + raise HttpError(400, "请选择商品") + existing = set( + ComparisonTagItem.objects.filter(tag=tag, product_id__in=product_ids).values_list("product_id", flat=True) + ) + items = [] + for product_id in product_ids: + if product_id in existing: + continue + try: + product = Product.objects.get(id=product_id) + except Product.DoesNotExist: + continue + items.append( + ComparisonTagItem( + tag=tag, + product=product, + sort_order=data.sort_order, + is_pinned=data.is_pinned, + ) + ) + if items: + ComparisonTagItem.objects.bulk_create(items) + + return list_compare_tag_items(request, tag_id) + + +@router.patch("/compare-tags/{tag_id}/items/{item_id}", response=ComparisonTagItemOut, auth=JWTAuth()) +def update_compare_tag_item(request, tag_id: int, item_id: int, data: ComparisonTagItemUpdate): + require_admin(request.auth) + try: + item = ComparisonTagItem.objects.select_related("product").get(id=item_id, tag_id=tag_id) + except ComparisonTagItem.DoesNotExist: + raise HttpError(404, "标签商品不存在") + update_data = data.dict(exclude_unset=True) + for key, value in update_data.items(): + setattr(item, key, value) + item.save() + return ComparisonTagItemOut( + id=item.id, + tag_id=item.tag_id, + product_id=item.product_id, + product_name=item.product.name, + product_image=item.product.image, + product_status=item.product.status, + sort_order=item.sort_order, + is_pinned=item.is_pinned, + created_at=item.created_at, + ) + + +@router.delete("/compare-tags/{tag_id}/items/{item_id}", response=MessageOut, auth=JWTAuth()) +def delete_compare_tag_item(request, tag_id: int, item_id: int): + require_admin(request.auth) + deleted, _ = ComparisonTagItem.objects.filter(id=item_id, tag_id=tag_id).delete() + if not deleted: + raise HttpError(404, "标签商品不存在") + return MessageOut(message="标签商品已移除") + + +def _record_price_history(product_ids: Optional[List[int]] = None, force: bool = False): + queryset = ProductPrice.objects.select_related("product", "website").all() + if product_ids: + queryset = queryset.filter(product_id__in=product_ids) + created = 0 + skipped = 0 + for price in queryset: + latest = ProductPriceHistory.objects.filter( + product_id=price.product_id, + website_id=price.website_id, + ).order_by("-recorded_at").first() + if force or (not latest or latest.price != price.price): + ProductPriceHistory.objects.create( + product_id=price.product_id, + website_id=price.website_id, + price=price.price, + ) + created += 1 + else: + skipped += 1 + return created, skipped + + +@router.post("/price-history/backfill/", response=BackfillHistoryOut, auth=JWTAuth()) +def backfill_price_history(request, data: BackfillHistoryIn): + require_admin(request.auth) + created, skipped = _record_price_history(data.product_ids, force=False) + return BackfillHistoryOut(created=created, skipped=skipped) + + +@router.post("/compare-tags/{tag_id}/backfill-history/", response=BackfillHistoryOut, auth=JWTAuth()) +def backfill_tag_price_history(request, tag_id: int): + require_admin(request.auth) + product_ids = list( + ComparisonTagItem.objects.filter(tag_id=tag_id).values_list("product_id", flat=True) + ) + created, skipped = _record_price_history(product_ids, force=False) + return BackfillHistoryOut(created=created, skipped=skipped) + + +@router.post("/price-history/record/", response=BackfillHistoryOut, auth=JWTAuth()) +def record_price_history(request, data: RecordHistoryIn): + require_admin(request.auth) + created, skipped = _record_price_history(data.product_ids, force=data.force) + return BackfillHistoryOut(created=created, skipped=skipped) + + +@router.post("/compare-tags/{tag_id}/record-history/", response=BackfillHistoryOut, auth=JWTAuth()) +def record_tag_price_history(request, tag_id: int, data: RecordHistoryIn): + require_admin(request.auth) + product_ids = list( + ComparisonTagItem.objects.filter(tag_id=tag_id).values_list("product_id", flat=True) + ) + created, skipped = _record_price_history(product_ids, force=data.force) + return BackfillHistoryOut(created=created, skipped=skipped) diff --git a/backend/apps/products/admin.py b/backend/apps/products/admin.py index 3e76453..0085107 100644 --- a/backend/apps/products/admin.py +++ b/backend/apps/products/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from .models import Category, Website, Product, ProductPrice +from .models import Category, Website, Product, ProductPrice, ProductPriceHistory, ComparisonTag, ComparisonTagItem @admin.register(Category) @@ -33,3 +33,36 @@ class ProductPriceAdmin(admin.ModelAdmin): list_filter = ['website', 'in_stock', 'currency'] search_fields = ['product__name', 'website__name'] ordering = ['-updated_at'] + + +@admin.register(ProductPriceHistory) +class ProductPriceHistoryAdmin(admin.ModelAdmin): + list_display = ['id', 'product', 'website', 'price', 'recorded_at'] + list_filter = ['website'] + search_fields = ['product__name', 'website__name'] + ordering = ['-recorded_at'] + + +class ComparisonTagItemInline(admin.TabularInline): + model = ComparisonTagItem + extra = 1 + autocomplete_fields = ["product"] + ordering = ["-is_pinned", "sort_order", "id"] + + +@admin.register(ComparisonTag) +class ComparisonTagAdmin(admin.ModelAdmin): + list_display = ['id', 'name', 'slug', 'is_active', 'sort_order', 'created_at'] + list_filter = ['is_active'] + search_fields = ['name', 'slug'] + prepopulated_fields = {'slug': ('name',)} + ordering = ['sort_order', 'id'] + inlines = [ComparisonTagItemInline] + + +@admin.register(ComparisonTagItem) +class ComparisonTagItemAdmin(admin.ModelAdmin): + list_display = ['id', 'tag', 'product', 'is_pinned', 'sort_order', 'created_at'] + list_filter = ['tag', 'is_pinned'] + search_fields = ['product__name', 'tag__name'] + ordering = ['-created_at'] diff --git a/backend/apps/products/api.py b/backend/apps/products/api.py index 02592a1..74ace3a 100644 --- a/backend/apps/products/api.py +++ b/backend/apps/products/api.py @@ -22,15 +22,19 @@ from django.db import transaction, IntegrityError from django.shortcuts import get_object_or_404 from django.core.exceptions import ObjectDoesNotExist from django.core.files.storage import default_storage -from django.views.decorators.cache import cache_page - -from .models import Category, Website, Product, ProductPrice +from .models import Category, Website, Product, ProductPrice, ProductPriceHistory, ComparisonTag, ComparisonTagItem from .schemas import ( CategoryOut, CategoryIn, WebsiteOut, WebsiteIn, WebsiteFilter, ProductOut, ProductIn, ProductWithPricesOut, ProductPriceOut, ProductPriceIn, ProductFilter, ProductSearchFilter, + ProductPriceHistoryOut, + PriceHistoryStatsOut, + EnhancedProductPriceOut, + ComparisonTagOut, + ComparisonTagDetailOut, + ComparisonTagItemOut, ImportResultOut, MyProductOut, UploadImageOut, @@ -40,21 +44,29 @@ from apps.favorites.models import Favorite router = Router() category_router = Router() website_router = Router() +compare_tag_router = Router() MAX_PRODUCT_IMAGES = 6 +def record_product_price_history(price_record: ProductPrice): + """Record price history for a product price record.""" + ProductPriceHistory.objects.create( + product_id=price_record.product_id, + website_id=price_record.website_id, + price=price_record.price, + ) + + # ==================== Category Routes ==================== @category_router.get("/", response=List[CategoryOut]) -@cache_page(settings.CACHE_TTL_SECONDS) def list_categories(request): """Get all categories.""" return Category.objects.all() @category_router.get("/{slug}", response=CategoryOut) -@cache_page(settings.CACHE_TTL_SECONDS) def get_category_by_slug(request, slug: str): """Get category by slug.""" return get_object_or_404(Category, slug=slug) @@ -115,7 +127,6 @@ def create_category(request, data: CategoryIn): @website_router.get("/", response=List[WebsiteOut]) @paginate(PageNumberPagination, page_size=20) -@cache_page(settings.CACHE_TTL_SECONDS) def list_websites(request, filters: WebsiteFilter = Query(...)): """Get all websites with optional filters.""" queryset = Website.objects.all() @@ -129,7 +140,6 @@ def list_websites(request, filters: WebsiteFilter = Query(...)): @website_router.get("/{website_id}", response=WebsiteOut) -@cache_page(settings.CACHE_TTL_SECONDS) def get_website(request, website_id: int): """Get website by ID.""" return get_object_or_404(Website, id=website_id) @@ -142,6 +152,199 @@ def create_website(request, data: WebsiteIn): return website +# ==================== Comparison Tag Routes ==================== + +@compare_tag_router.get("/", response=List[ComparisonTagOut]) +def list_compare_tags(request): + """List active comparison tags.""" + tags = ( + ComparisonTag.objects.filter(is_active=True) + .annotate(product_count=Count("items", filter=Q(items__product__status="approved"), distinct=True)) + .order_by("sort_order", "id") + ) + return [ + ComparisonTagOut( + id=tag.id, + name=tag.name, + slug=tag.slug, + description=tag.description, + cover_image=tag.cover_image, + icon=tag.icon, + sort_order=tag.sort_order, + is_active=tag.is_active, + product_count=tag.product_count or 0, + created_at=tag.created_at, + updated_at=tag.updated_at, + ) + for tag in tags + ] + + +@compare_tag_router.get("/{slug}", response=ComparisonTagDetailOut) +def get_compare_tag_detail(request, slug: str, only_discounted: bool = False, min_discount_percent: Optional[int] = None, only_historical_lowest: bool = False): + """Get comparison tag detail with product prices and enhanced stats.""" + tag = get_object_or_404(ComparisonTag, slug=slug, is_active=True) + prices_prefetch = Prefetch( + "product__prices", + queryset=ProductPrice.objects.select_related("website"), + ) + items = ( + ComparisonTagItem.objects.filter(tag=tag, product__status="approved") + .select_related("product", "product__category") + .prefetch_related(prices_prefetch) + .order_by("-is_pinned", "sort_order", "id") + ) + + # 获取所有商品ID,批量查询历史最低价 + product_ids = [item.product_id for item in items] + historical_lowest_map = {} + if product_ids: + from django.db.models.functions import Coalesce + from django.db.models import Subquery, OuterRef + # 查询每个商品的历史最低价 + for pid in product_ids: + history = ProductPriceHistory.objects.filter(product_id=pid).order_by("price").first() + if history: + historical_lowest_map[pid] = { + "price": history.price, + "date": history.recorded_at, + } + + item_out: List[ComparisonTagItemOut] = [] + for item in items: + product = item.product + prices = list(product.prices.all()) + + # 获取历史最低价信息 + hist_info = historical_lowest_map.get(product.id, {}) + historical_lowest = hist_info.get("price") + historical_lowest_date = hist_info.get("date") + + # 当前最低价 + current_lowest = min((pp.price for pp in prices), default=None) + current_highest = max((pp.price for pp in prices), default=None) + + # 判断是否处于历史最低 + is_at_historical_lowest = False + if historical_lowest and current_lowest: + is_at_historical_lowest = current_lowest <= historical_lowest + + # 计算距最高价降幅百分比 + discount_from_highest_percent = None + if current_lowest and current_highest and current_highest > 0: + discount_from_highest_percent = round((1 - current_lowest / current_highest) * 100, 1) + + # 推荐逻辑 + is_recommended = False + recommendation_reason = None + if is_at_historical_lowest: + is_recommended = True + recommendation_reason = "历史最低价" + elif discount_from_highest_percent and discount_from_highest_percent >= 30: + is_recommended = True + recommendation_reason = f"降幅{discount_from_highest_percent}%" + + # 筛选:只看降价商品 + if only_discounted: + has_discount = any(pp.original_price and pp.original_price > pp.price for pp in prices) + if not has_discount: + continue + + # 筛选:最小降价幅度 + if min_discount_percent: + max_discount = 0 + for pp in prices: + if pp.original_price and pp.original_price > 0: + discount = (1 - pp.price / pp.original_price) * 100 + max_discount = max(max_discount, discount) + if max_discount < min_discount_percent: + continue + + # 筛选:只看历史最低 + if only_historical_lowest and not is_at_historical_lowest: + continue + + price_outs: List[EnhancedProductPriceOut] = [] + for pp in prices: + website_name = None + website_logo = None + if pp.website_id: + website_name = pp.website.name + website_logo = pp.website.logo + + # 计算单个价格的降价信息 + discount_percent = None + discount_amount = None + if pp.original_price and pp.original_price > pp.price: + discount_amount = pp.original_price - pp.price + discount_percent = round((discount_amount / pp.original_price) * 100, 1) + + # 判断是否处于该商品的历史最低 + price_is_at_lowest = False + if historical_lowest: + price_is_at_lowest = pp.price <= historical_lowest + + price_outs.append(EnhancedProductPriceOut( + id=pp.id, + product_id=pp.product_id, + website_id=pp.website_id, + website_name=website_name, + website_logo=website_logo, + price=pp.price, + original_price=pp.original_price, + currency=pp.currency, + url=pp.url, + in_stock=pp.in_stock, + last_checked=pp.last_checked, + historical_lowest=historical_lowest, + is_at_historical_lowest=price_is_at_lowest, + discount_percent=discount_percent, + discount_amount=discount_amount, + )) + + item_out.append(ComparisonTagItemOut( + product=ProductOut( + id=product.id, + name=product.name, + description=product.description, + image=product.image, + images=list(product.images or []), + category_id=product.category_id, + status=product.status, + submitted_by_id=product.submitted_by_id, + reject_reason=product.reject_reason, + reviewed_at=product.reviewed_at, + created_at=product.created_at, + updated_at=product.updated_at, + ), + prices=price_outs, + lowest_price=current_lowest, + highest_price=current_highest, + platform_count=len(prices), + historical_lowest=historical_lowest, + historical_lowest_date=historical_lowest_date, + is_at_historical_lowest=is_at_historical_lowest, + discount_from_highest_percent=discount_from_highest_percent, + is_recommended=is_recommended, + recommendation_reason=recommendation_reason, + )) + + tag_out = ComparisonTagOut( + id=tag.id, + name=tag.name, + slug=tag.slug, + description=tag.description, + cover_image=tag.cover_image, + icon=tag.icon, + sort_order=tag.sort_order, + is_active=tag.is_active, + product_count=len(item_out), + created_at=tag.created_at, + updated_at=tag.updated_at, + ) + return ComparisonTagDetailOut(tag=tag_out, items=item_out) + + # ==================== Product Routes ==================== @router.post("/import/", response=ImportResultOut, auth=JWTAuth()) @@ -265,6 +468,10 @@ def import_products_csv(request, file: UploadedFile = File(...)): currency = (row.get("currency") or "CNY").strip() or "CNY" in_stock = parse_bool(row.get("in_stock"), True) + existing_price = ProductPrice.objects.filter( + product=product, + website=website, + ).first() price_record, created = ProductPrice.objects.update_or_create( product=product, website=website, @@ -280,6 +487,8 @@ def import_products_csv(request, file: UploadedFile = File(...)): result.created_prices += 1 else: result.updated_prices += 1 + if created or (existing_price and existing_price.price != price_record.price): + record_product_price_history(price_record) except Exception: result.errors.append(f"第{idx}行处理失败") continue @@ -322,7 +531,6 @@ def recommend_products(request, limit: int = 12): @router.get("/", response=List[ProductOut]) @paginate(PageNumberPagination, page_size=20) -@cache_page(settings.CACHE_TTL_SECONDS) def list_products(request, filters: ProductFilter = Query(...)): """Get all approved products with optional filters.""" # 只显示已审核通过的商品 @@ -362,7 +570,6 @@ def list_products(request, filters: ProductFilter = Query(...)): @router.get("/{product_id}", response=ProductOut) -@cache_page(settings.CACHE_TTL_SECONDS) def get_product(request, product_id: int): """Get product by ID.""" # 只返回已审核通过的商品 @@ -430,7 +637,6 @@ def get_product_with_prices(request, product_id: int): @router.get("/search/", response=List[ProductWithPricesOut]) @paginate(PageNumberPagination, page_size=20) -@cache_page(settings.CACHE_TTL_SECONDS) def search_products(request, q: str, filters: ProductSearchFilter = Query(...)): """Search approved products by name, description, or by user_id (submitter).""" from apps.users.models import User @@ -599,6 +805,7 @@ def add_product_price(request, data: ProductPriceIn): from ninja.errors import HttpError raise HttpError(403, "只能为自己提交的商品添加价格") price = ProductPrice.objects.create(**data.dict()) + record_product_price_history(price) website = price.website return ProductPriceOut( @@ -614,3 +821,120 @@ def add_product_price(request, data: ProductPriceIn): in_stock=price.in_stock, last_checked=price.last_checked, ) + + +@router.get("/{product_id}/price-history/", response=List[ProductPriceHistoryOut]) +def get_product_price_history(request, product_id: int, website_id: Optional[int] = None, limit: int = 60, days: Optional[int] = None): + """Get product price history.""" + from django.utils import timezone + from datetime import timedelta + + queryset = ProductPriceHistory.objects.filter(product_id=product_id) + if website_id: + queryset = queryset.filter(website_id=website_id) + if days: + cutoff = timezone.now() - timedelta(days=days) + queryset = queryset.filter(recorded_at__gte=cutoff) + + limit = max(1, min(limit, 500)) + histories = list(queryset.order_by("-recorded_at")[:limit]) + histories.reverse() + return [ + ProductPriceHistoryOut( + id=h.id, + product_id=h.product_id, + website_id=h.website_id, + price=h.price, + recorded_at=h.recorded_at, + ) + for h in histories + ] + + +@router.get("/{product_id}/price-stats/", response=PriceHistoryStatsOut) +def get_product_price_stats(request, product_id: int, days: Optional[int] = None): + """Get product price statistics including historical lowest/highest.""" + from django.utils import timezone + from django.db.models import Avg + from datetime import timedelta + from decimal import Decimal + + queryset = ProductPriceHistory.objects.filter(product_id=product_id) + if days: + cutoff = timezone.now() - timedelta(days=days) + queryset = queryset.filter(recorded_at__gte=cutoff) + + # 历史最低 + lowest_record = queryset.order_by("price").first() + historical_lowest = lowest_record.price if lowest_record else None + historical_lowest_date = lowest_record.recorded_at if lowest_record else None + + # 历史最高 + highest_record = queryset.order_by("-price").first() + historical_highest = highest_record.price if highest_record else None + historical_highest_date = highest_record.recorded_at if highest_record else None + + # 平均价 + avg_result = queryset.aggregate(avg_price=Avg("price")) + average_price = avg_result["avg_price"] + if average_price: + average_price = round(Decimal(str(average_price)), 2) + + # 当前最低价 + current_prices = ProductPrice.objects.filter(product_id=product_id) + current_lowest_record = current_prices.order_by("price").first() + current_lowest = current_lowest_record.price if current_lowest_record else None + + # 是否处于历史最低 + is_historical_lowest = False + if current_lowest and historical_lowest: + is_historical_lowest = current_lowest <= historical_lowest + + # 距最高价降幅 + discount_from_highest = None + if current_lowest and historical_highest and historical_highest > 0: + discount_from_highest = round((1 - current_lowest / historical_highest) * 100, 1) + + # 距历史最低差额 + distance_to_lowest = None + if current_lowest and historical_lowest: + distance_to_lowest = current_lowest - historical_lowest + + # 价格趋势(最近7条记录) + recent = list(queryset.order_by("-recorded_at")[:7]) + price_trend = "stable" + if len(recent) >= 2: + first_price = recent[-1].price + last_price = recent[0].price + if last_price < first_price * Decimal("0.95"): + price_trend = "down" + elif last_price > first_price * Decimal("1.05"): + price_trend = "up" + + # 历史数据(最近60条) + histories = list(queryset.order_by("-recorded_at")[:60]) + histories.reverse() + + return PriceHistoryStatsOut( + product_id=product_id, + historical_lowest=historical_lowest, + historical_lowest_date=historical_lowest_date, + historical_highest=historical_highest, + historical_highest_date=historical_highest_date, + average_price=average_price, + current_lowest=current_lowest, + is_historical_lowest=is_historical_lowest, + discount_from_highest=discount_from_highest, + distance_to_lowest=distance_to_lowest, + price_trend=price_trend, + history=[ + ProductPriceHistoryOut( + id=h.id, + product_id=h.product_id, + website_id=h.website_id, + price=h.price, + recorded_at=h.recorded_at, + ) + for h in histories + ], + ) diff --git a/backend/apps/products/management/commands/record_price_history.py b/backend/apps/products/management/commands/record_price_history.py new file mode 100644 index 0000000..f5f1db9 --- /dev/null +++ b/backend/apps/products/management/commands/record_price_history.py @@ -0,0 +1,41 @@ +""" +Record current product prices into history. +""" +from django.core.management.base import BaseCommand +from apps.products.models import ProductPrice, ProductPriceHistory + + +class Command(BaseCommand): + help = "Record current product prices into history." + + def add_arguments(self, parser): + parser.add_argument( + "--force", + action="store_true", + help="Always create a history record even if price unchanged", + ) + + def handle(self, *args, **options): + force = options.get("force", False) + created = 0 + skipped = 0 + queryset = ProductPrice.objects.select_related("product", "website").all() + for price in queryset: + latest = ProductPriceHistory.objects.filter( + product_id=price.product_id, + website_id=price.website_id, + ).order_by("-recorded_at").first() + if force or (not latest or latest.price != price.price): + ProductPriceHistory.objects.create( + product_id=price.product_id, + website_id=price.website_id, + price=price.price, + ) + created += 1 + else: + skipped += 1 + + self.stdout.write(self.style.SUCCESS( + f"History recorded. created={created}, skipped={skipped}" + )) + diff --git a/backend/apps/products/migrations/0006_comparison_tags.py b/backend/apps/products/migrations/0006_comparison_tags.py new file mode 100644 index 0000000..803f805 --- /dev/null +++ b/backend/apps/products/migrations/0006_comparison_tags.py @@ -0,0 +1,57 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("products", "0005_merge_20260130_1626"), + ] + + operations = [ + migrations.CreateModel( + name="ComparisonTag", + fields=[ + ("id", models.AutoField(primary_key=True, serialize=False)), + ("name", models.CharField(max_length=120, verbose_name="标签名称")), + ("slug", models.CharField(max_length=120, unique=True, verbose_name="Slug")), + ("description", models.TextField(blank=True, null=True, verbose_name="描述")), + ("cover_image", models.TextField(blank=True, null=True, verbose_name="封面图")), + ("icon", models.CharField(blank=True, max_length=120, null=True, verbose_name="图标")), + ("sort_order", models.IntegerField(default=0, verbose_name="排序")), + ("is_active", models.BooleanField(default=True, verbose_name="是否启用")), + ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")), + ("updated_at", models.DateTimeField(auto_now=True, verbose_name="更新时间")), + ], + options={ + "verbose_name": "比价标签", + "verbose_name_plural": "比价标签", + "db_table": "comparison_tags", + "ordering": ["sort_order", "id"], + "indexes": [ + models.Index(fields=["is_active", "sort_order"], name="comparison_is_4b7062_idx"), + ], + }, + ), + migrations.CreateModel( + name="ComparisonTagItem", + fields=[ + ("id", models.AutoField(primary_key=True, serialize=False)), + ("sort_order", models.IntegerField(default=0, verbose_name="排序")), + ("is_pinned", models.BooleanField(default=False, verbose_name="置顶")), + ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")), + ("product", models.ForeignKey(on_delete=models.deletion.CASCADE, related_name="comparison_items", to="products.product", verbose_name="商品")), + ("tag", models.ForeignKey(on_delete=models.deletion.CASCADE, related_name="items", to="products.comparisontag", verbose_name="比价标签")), + ], + options={ + "verbose_name": "比价标签商品", + "verbose_name_plural": "比价标签商品", + "db_table": "comparison_tag_items", + "ordering": ["-is_pinned", "sort_order", "id"], + "unique_together": {("tag", "product")}, + "indexes": [ + models.Index(fields=["tag", "sort_order"], name="comparison_tag_183b4d_idx"), + ], + }, + ), + ] + diff --git a/backend/apps/products/migrations/0007_product_price_history.py b/backend/apps/products/migrations/0007_product_price_history.py new file mode 100644 index 0000000..4aa4f5f --- /dev/null +++ b/backend/apps/products/migrations/0007_product_price_history.py @@ -0,0 +1,31 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("products", "0006_comparison_tags"), + ] + + operations = [ + migrations.CreateModel( + name="ProductPriceHistory", + fields=[ + ("id", models.AutoField(primary_key=True, serialize=False)), + ("price", models.DecimalField(decimal_places=2, max_digits=10, verbose_name="价格")), + ("recorded_at", models.DateTimeField(auto_now_add=True, verbose_name="记录时间")), + ("product", models.ForeignKey(on_delete=models.deletion.CASCADE, related_name="price_history", to="products.product", verbose_name="商品")), + ("website", models.ForeignKey(on_delete=models.deletion.CASCADE, related_name="price_history", to="products.website", verbose_name="网站")), + ], + options={ + "verbose_name": "商品价格历史", + "verbose_name_plural": "商品价格历史", + "db_table": "product_price_history", + "ordering": ["-recorded_at"], + "indexes": [ + models.Index(fields=["product", "website", "recorded_at"], name="product_pri_6b8559_idx"), + ], + }, + ), + ] + diff --git a/backend/apps/products/migrations/0008_rename_comparison_is_4b7062_idx_comparison__is_acti_f2c47e_idx_and_more.py b/backend/apps/products/migrations/0008_rename_comparison_is_4b7062_idx_comparison__is_acti_f2c47e_idx_and_more.py new file mode 100644 index 0000000..a8a65c8 --- /dev/null +++ b/backend/apps/products/migrations/0008_rename_comparison_is_4b7062_idx_comparison__is_acti_f2c47e_idx_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 4.2.27 on 2026-02-03 09:33 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('products', '0007_product_price_history'), + ] + + operations = [ + migrations.RenameIndex( + model_name='comparisontag', + new_name='comparison__is_acti_f2c47e_idx', + old_name='comparison_is_4b7062_idx', + ), + migrations.RenameIndex( + model_name='comparisontagitem', + new_name='comparison__tag_id_ea17fc_idx', + old_name='comparison_tag_183b4d_idx', + ), + migrations.RenameIndex( + model_name='productpricehistory', + new_name='product_pri_product_8d9f8a_idx', + old_name='product_pri_6b8559_idx', + ), + ] diff --git a/backend/apps/products/models.py b/backend/apps/products/models.py index bb323cf..f7e19ed 100644 --- a/backend/apps/products/models.py +++ b/backend/apps/products/models.py @@ -122,6 +122,67 @@ class Product(models.Model): return self.name +class ComparisonTag(models.Model): + """Admin-curated comparison tags for products.""" + + id = models.AutoField(primary_key=True) + name = models.CharField('标签名称', max_length=120) + slug = models.CharField('Slug', max_length=120, unique=True) + description = models.TextField('描述', blank=True, null=True) + cover_image = models.TextField('封面图', blank=True, null=True) + icon = models.CharField('图标', max_length=120, blank=True, null=True) + sort_order = models.IntegerField('排序', default=0) + is_active = models.BooleanField('是否启用', default=True) + created_at = models.DateTimeField('创建时间', auto_now_add=True) + updated_at = models.DateTimeField('更新时间', auto_now=True) + + class Meta: + db_table = 'comparison_tags' + verbose_name = '比价标签' + verbose_name_plural = '比价标签' + ordering = ['sort_order', 'id'] + indexes = [ + models.Index(fields=["is_active", "sort_order"]), + ] + + def __str__(self): + return self.name + + +class ComparisonTagItem(models.Model): + """Products included in a comparison tag.""" + + id = models.AutoField(primary_key=True) + tag = models.ForeignKey( + ComparisonTag, + on_delete=models.CASCADE, + related_name='items', + verbose_name='比价标签', + ) + product = models.ForeignKey( + Product, + on_delete=models.CASCADE, + related_name='comparison_items', + verbose_name='商品', + ) + sort_order = models.IntegerField('排序', default=0) + is_pinned = models.BooleanField('置顶', default=False) + created_at = models.DateTimeField('创建时间', auto_now_add=True) + + class Meta: + db_table = 'comparison_tag_items' + verbose_name = '比价标签商品' + verbose_name_plural = '比价标签商品' + ordering = ['-is_pinned', 'sort_order', 'id'] + unique_together = ['tag', 'product'] + indexes = [ + models.Index(fields=["tag", "sort_order"]), + ] + + def __str__(self): + return f"{self.tag.name} - {self.product.name}" + + class ProductPrice(models.Model): """Product prices from different websites.""" @@ -164,3 +225,35 @@ class ProductPrice(models.Model): def __str__(self): return f"{self.product.name} - {self.website.name}: {self.price}" + + +class ProductPriceHistory(models.Model): + """Historical price records for products.""" + + id = models.AutoField(primary_key=True) + product = models.ForeignKey( + Product, + on_delete=models.CASCADE, + related_name='price_history', + verbose_name='商品', + ) + website = models.ForeignKey( + Website, + on_delete=models.CASCADE, + related_name='price_history', + verbose_name='网站', + ) + price = models.DecimalField('价格', max_digits=10, decimal_places=2) + recorded_at = models.DateTimeField('记录时间', auto_now_add=True) + + class Meta: + db_table = 'product_price_history' + verbose_name = '商品价格历史' + verbose_name_plural = '商品价格历史' + ordering = ['-recorded_at'] + indexes = [ + models.Index(fields=["product", "website", "recorded_at"]), + ] + + def __str__(self): + return f"{self.product.name} - {self.website.name}: {self.price}" diff --git a/backend/apps/products/schemas.py b/backend/apps/products/schemas.py index d77d512..c0727f5 100644 --- a/backend/apps/products/schemas.py +++ b/backend/apps/products/schemas.py @@ -72,6 +72,39 @@ class ProductPriceOut(Schema): last_checked: datetime +class ProductPriceHistoryOut(Schema): + """Product price history output schema.""" + id: int + product_id: int + website_id: int + price: Decimal + recorded_at: datetime + + +class PriceHistoryStatsOut(Schema): + """Price history statistics output schema.""" + product_id: int + historical_lowest: Optional[Decimal] = None + historical_lowest_date: Optional[datetime] = None + historical_highest: Optional[Decimal] = None + historical_highest_date: Optional[datetime] = None + average_price: Optional[Decimal] = None + current_lowest: Optional[Decimal] = None + is_historical_lowest: bool = False + discount_from_highest: Optional[Decimal] = None # 距最高价降幅百分比 + distance_to_lowest: Optional[Decimal] = None # 距历史最低差额 + price_trend: str = "stable" # up, down, stable + history: List["ProductPriceHistoryOut"] = [] + + +class EnhancedProductPriceOut(ProductPriceOut): + """Enhanced product price with history stats.""" + historical_lowest: Optional[Decimal] = None + is_at_historical_lowest: bool = False + discount_percent: Optional[Decimal] = None # 降价百分比 + discount_amount: Optional[Decimal] = None # 降价金额 + + class ProductOut(Schema): """Product output schema.""" id: int @@ -95,6 +128,43 @@ class ProductWithPricesOut(ProductOut): highest_price: Optional[Decimal] = None +class ComparisonTagOut(Schema): + """Comparison tag output schema.""" + id: int + name: str + slug: str + description: Optional[str] = None + cover_image: Optional[str] = None + icon: Optional[str] = None + sort_order: int + is_active: bool + product_count: int = 0 + created_at: datetime + updated_at: datetime + + +class ComparisonTagItemOut(Schema): + """Comparison tag item output schema.""" + product: ProductOut + prices: List["EnhancedProductPriceOut"] = [] + lowest_price: Optional[Decimal] = None + highest_price: Optional[Decimal] = None + platform_count: int = 0 + # 增强字段 + historical_lowest: Optional[Decimal] = None + historical_lowest_date: Optional[datetime] = None + is_at_historical_lowest: bool = False + discount_from_highest_percent: Optional[Decimal] = None + is_recommended: bool = False # 推荐标签 + recommendation_reason: Optional[str] = None # 推荐理由 + + +class ComparisonTagDetailOut(Schema): + """Comparison tag detail output schema.""" + tag: ComparisonTagOut + items: List[ComparisonTagItemOut] = [] + + class UploadImageOut(Schema): """Image upload output.""" url: str diff --git a/backend/apps/users/migrations/0006_user_users_user_id_83dd09_idx.py b/backend/apps/users/migrations/0006_user_users_user_id_83dd09_idx.py new file mode 100644 index 0000000..549c7f9 --- /dev/null +++ b/backend/apps/users/migrations/0006_user_users_user_id_83dd09_idx.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.27 on 2026-02-03 09:33 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0005_add_user_id'), + ] + + operations = [ + migrations.AddIndex( + model_name='user', + index=models.Index(fields=['user_id'], name='users_user_id_83dd09_idx'), + ), + ] diff --git a/backend/config/api.py b/backend/config/api.py index 9fa5177..7d3c92a 100644 --- a/backend/config/api.py +++ b/backend/config/api.py @@ -10,13 +10,12 @@ from ninja_jwt.authentication import JWTAuth # Import routers from apps from apps.users.api import router as auth_router from apps.users.friends import router as friends_router -from apps.products.api import router as products_router, category_router, website_router +from apps.products.api import router as products_router, category_router, website_router, compare_tag_router from apps.bounties.api import router as bounties_router from apps.bounties.payments import router as payments_router from apps.favorites.api import router as favorites_router from apps.notifications.api import router as notifications_router from apps.admin.api import router as admin_router -from config.search import router as search_router from apps.common.errors import build_error_payload # Create main API instance @@ -69,9 +68,9 @@ api.add_router("/friends/", friends_router, tags=["好友"]) api.add_router("/categories/", category_router, tags=["分类"]) api.add_router("/websites/", website_router, tags=["网站"]) api.add_router("/products/", products_router, tags=["商品"]) +api.add_router("/compare-tags/", compare_tag_router, tags=["比价标签"]) api.add_router("/bounties/", bounties_router, tags=["悬赏"]) api.add_router("/payments/", payments_router, tags=["支付"]) api.add_router("/favorites/", favorites_router, tags=["收藏"]) api.add_router("/notifications/", notifications_router, tags=["通知"]) -api.add_router("/search/", search_router, tags=["搜索"]) api.add_router("/admin/", admin_router, tags=["后台"]) diff --git a/backend/config/search.py b/backend/config/search.py deleted file mode 100644 index 4f7b6e3..0000000 --- a/backend/config/search.py +++ /dev/null @@ -1,63 +0,0 @@ -""" -Global search API routes. -""" -from typing import List -from ninja import Router, Schema -from django.db.models import Count, Q -from django.conf import settings -from django.views.decorators.cache import cache_page - -from apps.products.models import Product, Website -from apps.products.schemas import ProductOut, WebsiteOut -from apps.bounties.models import Bounty -from apps.bounties.schemas import BountyWithDetailsOut -from apps.common.serializers import serialize_bounty - -router = Router() - - -class SearchResultsOut(Schema): - products: List[ProductOut] - websites: List[WebsiteOut] - bounties: List[BountyWithDetailsOut] - - -def _serialize_bounty_with_counts(bounty): - return serialize_bounty(bounty, include_counts=True) - - -@router.get("/", response=SearchResultsOut) -@cache_page(settings.CACHE_TTL_SECONDS) -def global_search(request, q: str, limit: int = 10): - """Search products, websites and bounties by keyword.""" - keyword = (q or "").strip() - if not keyword: - return SearchResultsOut(products=[], websites=[], bounties=[]) - - products = list( - Product.objects.select_related("category").filter( - Q(name__icontains=keyword) | Q(description__icontains=keyword) - ).order_by("-created_at")[:limit] - ) - - websites = list( - Website.objects.select_related("category").filter( - Q(name__icontains=keyword) | Q(description__icontains=keyword) - ).order_by("-created_at")[:limit] - ) - - bounties = list( - Bounty.objects.select_related("publisher", "acceptor") - .annotate( - applications_count=Count("applications", distinct=True), - comments_count=Count("comments", distinct=True), - ) - .filter(Q(title__icontains=keyword) | Q(description__icontains=keyword)) - .order_by("-created_at")[:limit] - ) - - return SearchResultsOut( - products=products, - websites=websites, - bounties=[_serialize_bounty_with_counts(b) for b in bounties], - ) diff --git a/backend/media/products/50b85ed16f4d40b698c57925cf35738c.jpg b/backend/media/products/50b85ed16f4d40b698c57925cf35738c.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d92d0352f6e3a43396bc7ea20f74513ae0bce8de GIT binary patch literal 113733 zcmb5UcT`hB(>Qzyp+yl00cp}p5<~?8(uF`E2{nZx*eC*_N>xCVst^Gw0U-iHNFbpo z9i*tJ2q-8eAW}pTP(ZAJV*SPEIp2AI-yiRH&bRm6&D`C|%AlUJ7RbfYBBJ@aO(dnNJA-bfg1-%*_9ksaF7iSQ-GdKl`7u z|Ix`A??~_ekOT8_kiS0we5nBd(W3w$ISK#}um9BXvj0UkWnPs6Pp)v@699w&rvYUE z2ZRB>zyThl2OI))0mHwufHfcp77!Ew3knJd3JD1cL&PBv5fKP%kJxVUy)YS>y)bEM zxqTW+a`I{l($dQNmDM!05J-fqlFlI=_#q8A0{)K(pOBCcL>M9ofk?vTq~+lMzti7) zfP^r=GVkG21wayf{1SYBAMzRi@Coq!8;Ji;;sZeZJb8tLd9_aB03Sa;KL`xw7Xf3f>7H(sTI1ONho_&{LLE*`=^Jb(`*!4Fjd>q=S?KB;;O z!1Q?BDx3PoUVm1TLXYbU-v2uT?B?f5EWwlN2rxw@zpIq`q5B=Hno$K~B!LOMJU3Z! zlaWQB3Y=0PWH8}>T0KNrO7SS4q$Vbjs_c{HB5jDU^Ndlk^iZV{sAORRJ{xI?^kCV- z#Z~iaFv9%+g#4~T0Dusjs02$Iz$3=+aH(um zU_ZQKKaBmKJY9wb131JgOHiR4Ss2D1Xa4)|wWmn}Y9lfuaF{?6^`wa|TGzp+(y0=Y zgy2a4SVXhw1WW#9`y6;bl1DasPbH_SHQBjO!4>c5f{Av)d5dQn!C_e>bQpo2UxK)ME^_q{af4I9iAWr8weR-6vF>?5)uU<2w5%_K;k<^3YU@8)XE;; znUI+w`{W=5vUpvWt((e%=;GmgM5<9tuxOqGaC=CAd=v`w`!^}=uZ zM?=0uxyc7SkqQoblcbsF{FJrSax4*`4u#op=UIG%f2tF(yPn~cSPapl_2s;?0 z55_2iv3G%q>vR+&*8_o(VOiGy8;*3cK#D#VqH7D^1&(Ff1;rrIO-;5LviE92+;^O3 zuJGmI%V0|=)^5mt%Hio8i)aSZK8SFyPPl~tb+o4+e{u=&>^-BDn6t%fI5L*vU+H*- zMWEX6KUu=;I@T1!ae@!D14{~N;f=YqS%JsDSA9R zoiz7qD(@-tyKz*s?4jzVu`(H!l!*s1%Z4<<7$A6tlRWl9ek=<{XtzWzT z3HikdyZmZtQyU}Kc>Q!iF{oTeSS_MozQRNAh$?TkkA6{qgOYCpo}qedC|gGt1cX^q z6|=x8h!Uhc^=s8btF2>&eP}r5*zucAb0pEO%SWrLOG+F4uI70nFiw|XRils-=--_8 znV;Ui%up?KT#j0M_Be%3jDv-w;tr}J$s09IOg>EkQ}qyH6&{fRr; z^-;$oiQ+LH-uU=rgWScUn~PV#*WcUWSzp|-&6U$*&Dywl@o~=isyP=O?KbJuqwx~I z;e2kG=5DHYFiT#gC-V511PmF|(soI@~rw1478CK{RI# zyZ!~>djM8Tg#JVFxuTFR{7Jn|Ki`RG@xED>eRX}NJ{H_brVQt(Y<*YYb6*2T+VH3_ zQp+E644ygyoo+a6e5YaP2L9H0lStid_8kRD^+^On$rBoY2P!BmRPd~oZ;Y*=4XCPC&#vnBqpGyNa9WP%#;9Qvx>Bp27P#u} zltO$F_4>Ti_n2)dQ`H`0i@_8G#!EV&Y}$hR7f6Hrg7w&(oNSJV1x{{yAdXEwIWFr2 z-|N&jO@3mg_Qb#Q&(&vnTten1Gniq5B(l+0pO%GJ#@)0tH%|}Ps;3+;+x6}Os|&mG zlR$khb_qHo&FVU}WGH&-`07(sC*Ilo-N2;p;M)H3ns?=Vn64qu+h zG;j;dc6@2aQMT|T2f$*IV)*a|Zp1@+ZQY0y2Q|2CZyW~`A1~B(`m%RAaUHjt?_LJu zQU$mwqy8nS+FXoNvQ#(2l78?qL2h*a#Q0ne@&pMRtvx*Q#pvV|@NXk#2 z{~D<)%{32_Wk&FFvj%?3j~0GTJg^Iw5>uH_EIcq+JB#FuFL-eBpT`&K^amiyjDEzc zSx4S*H8a>CX_z@;B{z;5mo?q5%daH}mWyMP-F97MsWU|FOM*ouG}L1_$F>MA1F-qq zobCg4DN=_KWY-wI0{4{Na^crrHaKMkq}vaUe36t7+;L5G?6>iHq}h6O|4O3X35vBchI}=->578Ma#dB#!KzG7)B#MHD6mO zN@Qf%5a({y-O{_7k7X@Kx#Qs>=9~}ClX>=!%`gUzVeXGx4Hap-qR%D$Adi(Tg?)6~ zzxzwDO_jwaY;=QqOMGZEb4T`%^UiJdR6k|s;v6|B;0NjG?ziKb-Lfo@{zH;zZ31MB zYrjdfBD5M-dIi^j~MYHozu1U>Hhq(d|P7z{weQhyQKp8x`i!M zIEzH381GfUAyqvOlSDhe)tUNa5ofM^BHs?YwG5HBaP`Jf15ovEL|M;*a8 zEx&pDGB-R75pqN%mlj1$f5c~A`vR^P$XVUi>B zL{#FBio#-UxN0@tFBL|7X}%VV@~BVs$3PdxYhH*4ZuIRCn(W0mxKLb;AdTKgC}Fm~ z`c`vW5p=Aur_%hhlg?-229q==XDE;vFRpVWNYq!e9`-?z!=UXR>)`h&pUSwOSZmAF zhHc#8O7vUDhRRH6;q&hV`BlWSC3m>*PChZ9oU+KGas!c6i>( z;-S2Gi#Z$Ydh39{aCOn(s%`%{TS5!+BW(M<^6NXnUvz5dwnNa!*4Bu_jtpCdAD}h*PYyAs|9XqbOVpx=K{ud~Wd2WK1PJ-Gb z%PLI%j3qw6qAfQw>c9L}ox8B-t-JH4ARPC-v?|j=whMi#J()jQfh0(+_9R{d?S?5{ zm|S2=z2Z7~R4&WrOiQKwu-2mN3xDTS76m?o=El|uha{<(x%-zXj=*P^3lj>QYzqRD zZp{yWGds_@b7#NH4^_f>RK!M`8MS?E`UW<2!|P_?pqoqY4V4k&Ua4Hc<@y^z#I=f_ z^aqtgd;5~w@=p^l#PClAMt}H&T>A^$*NKJE>i$qh&<(P8a_SX}rF7R`b)O;s5W$^4 zR_ZuaWXI9{t!=itjz7z~W%opC=EQVE>aNFPpCQk59+Y!#zE30tO_+sMy{k`%WWV)n zQB7P6PrFwh%(NFd8@5@aK)>VJibkU)K(ww$J=B3sv*6oUYE_fNVDn_q3S-AHZFnz~UKJyOuFukdTl z)v!i3r9xsK`vEbUp&CU-IwWqGK4r&>6E;ESraJit+vjXr>CR2X_5AvD6z~>DU zJ>rneI`LBXwD=4NSg23NQj>EHmrZcgnQW$7DZQwh8|YJO3(=q;75@UBJ&VLOYu_O8ax5E~ zu~HgWzx<@7MsD0>Os*tE063gLPj^VU@ntf@oN`aNnmHz>aC*sw6k*x1PuHE6!!uwu zuAJg0qEd!Y)?vsYjQ*3_>7h4%rU6v1pu|fVVcD0O^zIBV5#eO5=y5d3+(*P*A6)cLG0Sx9-c!)x(U~W zTyN$q-{?2M z)tQ5Ix@nYMxDzd8m+VP@BL?AWJPmRN zHwT}V))S{*7^db5)8*q(?I@3T8L2Z_zEb-ydLo>UVRSAv<%XcprjuEr)dQ#y_cZFV zd=^G|R5_GdXgx`_(xoRzyslIG0t1hSG73dF6Z$!bi7rqRZiv30@FC+#psq1{&a%$S zlpAEVL+0$=e?At;k?22EZ93UpIzKmr3d ze>yrr6A~h9_-A1u2AM}x#rF3r?cc0ZR(gxoj3>XRykaOFNSGMUc-!XKYBM&2j78-j zWxx?wej<1b%ZW6|5==^%`1-PFZVbd~@u(VGL4;S|h&TAUnV6X3Fvbw1jKUi$G|SD| z5SIWLRRf!~Rl`*|K4Qd0>5jv{Iy(27!jg`SqbRi~pg+k5sXUdqbtQ~hbZ^fdZOhDc z*HUeKm4vS6n^04SXX@lal()`hxkIgaj`qRCUgaB4yDUeKT%Fux6pc@B@_GFZSc>{h zh%a`Wxnrr)MqY1=L-14dXWF$CH)k%FwO}Ut)qwWf76s;~$l;aTt3<5g@8HUrk~vFy z-GxGORZFN>CHr-bGl#^7aWBH^(Mv-aHh`5SywdMjYF_8}BsjMH0pnkAfk27S?Gs zr*KmI_x2uE%V~XRB;NDuc759&M{eCEtk%R&e(NNZH*Ue#_U;7 zC@W0xre3~nRKJLY!!*^lp=b62OL@e7){Ap=2p;q<#6Lq~JVUmIaEf8eseTlMHe$7x z<-YOr3Vi=G$YTQ!Zyco}Y|kJaTd9fc#?c%&#vTR^+D+gGXJf*8R|ZdbKmQ7p1amW>&wORy5TPWi>{) znYGMZyGBhYcrDcq38L>4@ci;DNFGkoc#VvUz%m+OBs{W1UdOy8dR_|)_G1NvH)c$yx5>2Q(##^nmZxl75>&KlVcxk7-8G@x)swpj^G%M z@mp+$K)_xm#1|xtXiE0w*LfQZp$n8((M-E#%vGzj1Q+VX5F+u^m^b_Wp$Ny1L|ZsQ zHJ;!Tp?0-U)s)Oq6~fC0HU-|xS1m0@acefK+AUh83zTv;?{HrVDC%OnrC+R$fRdaL zL&huDJl(BuSuapM^<7b)SQR)xtrp zsN|nyjW~vsJG)(To+_nOEQH#XQYgT{yNX0HC(bX#$2WyIbS014VpLZUd%+H_>SH?9 z=tdSZ#WqMSB$sbStHA?Vn(T5d$(TNNGVi+ma5@(63}S@}dzxhEI(Q}9W$cjKhdc+E z=pg32c>W#8H%FT7Q!zZdBEXPj@Kfe;;fda5iw<+@v<|+1*oL1M}4rT=i0nrKXD4r94;W zJ4Vq-<-cnyxpz?k7KIi*QM!2K);zr!D(smsiQT@*9>IAUEob*n$imR)IK**o*{s7^ zYJvmjfrt>ySlMG%MP$R?KWMRjF2o@!hq5tSkAx&<+hz1Ry6s(|%12mIr(Ca}OD5=~ zh4BF^`HwICi1ptv=X3|-ghlY<6>4lMyA|VER$?zDZdLv09ETbR+p23h4282g8b|Cq zK3Zy-Q>I(hW}m|Q@sc)&bw_wszHoaYC9(FgrvMs5nVD@L%g=SzCz#c0Hm=TPUDP-a zyV1mX(LP`3qf4L98;!7Xah9!DjQy2UyxDZMBq#bCj3EyN)*ZeJ*_yTCq0Q5jVj)rfwxl$ilMu*25DG6osvFdR^8H zwCPkzbi$bwm~_?4pf{nHUMZvP@TIbhxRnL5q=5-v>axO{8B(V9jIEYb@j4z|iBo>= zUtuazzkwe#^R`1w3KAo1!! z&AodaZZ+pTrsZsABvX5{di0=ha(5KbFu4qQRsk~Qc0fsV427{idQ>dajv>3L+bEUk*{FUaD${WT)$tZrp+mV=<)&1o2O@n$6gZ^=*1p$K4nHJ9gR5Oz(vR6zloW8W&=w>Xp6nlxYA zAS>pluHQv%Y5DM+*!YO!%kc`c-Fs-KWFSWiy5YTbruD z8FBcp2*S+Q&(%m_@4FrjxxL)Z3{{(O#uJl80E{lwvPx^iBQorA9X%w6HeT!Pib@%B z?$yP=GiGx+%-pJeRJvbSGo)jGk}A7fKIf&DRPCa52ExpB?+cx!-EN)BYrgpw>5i?C zphTK*L;YKBhWf;d(@u3kCV$9F73}2a$(~ai8ciaggsG^ZTGYUmfT8j$8XwXv>)yA@ zD;=4tb~S8_iu@2gAa~U}nI<3=I<#`bjwQ@Fz*a)S*fP~B6ZSEOV-Z+7*rAX}tl*Nc z~dWyEocknRYY;jmI780Ab1E$SJPsb&}G6114)bTqtn-wWG!D6L5FX8mO%BvZBh z=4fG!S@PAO$1(Efl%Kop?R&treSF1<(j7r!Cy*d-2+_1ZH}-xJG$o7t3%99 z*1px11R`%jUBAF>r=PRnTJ>woQPo^3TOUG-lPFCy<@a7;TDO>znn5R8g{w}Tk)55% zb+ka(>f#63hCd0`L7tV$bQR5dy@p~5x|3rp>Jn-}8Izx}C64$D2+aHPj(z+lm{SKL zO^V>|zJawxYgeM_lEOMsdEXzQ&T2=F>8<7I34wOBtaZx_(xD2E{uRCWm(;Ok8oT9EY&bR?jyBRB)?z}{~ z(z)|-#7GvVhI*xMnF$gAcE9p3El2!DhIGk@NT538A{?j`=O6%FQXvY3E6ANv4a8NU zlTol@{i*zcvSi8U%ht<8LlxtdoVoOqU|hR7mfAjxz{*HE3f18Ako`8y7X&Jr=$nJo zCpvq2GpT-lxa!;>ykPB+493`uG%OxP_RM17TDY)BE^E)wHb{JH0h;Wi_&-^l?sw_x$VDZLvve! z`!x9H>nEDYK1DPeDR9CD>658h z&IYpW$Ci8={A`{1;Tu)Ua1n&=mjN&Z6o30U~KgGC%K zB%7Z`$~tg&VM`&o6J*2zp#xZ+m+VXh$JVu&W4HeT5%!_@xHqUSx&0^=H3b(cT>v$p z>(tL4tQ2ZHvdPNg`IWLt4Mqei%!7-u^)CdE!)g1I?S{?Q^pAKNv#`t;cky{|U~|tU z-ht^PN0cok2{(eMo*3241zmf}{PO!9Y|OWkLBS}tvYU99S7abQfdG5KLIIxwM-ItZ zj#pM&iHar!`F@qvakd;YBZL_EOy3bk$;dN!YJ42Py~Cq>b`VILS&WjLln$ z(K9EV;2c{~JE+41)-gM0QWd->3aeF76Ut8w%~Vd8Gp*Gh;m2S0o8^RmV_PxBP%cMR z$Pne^Hq+U{thVuD+d=jOq_S1hpoZ) zUyD($bSbcpg;z9(zG3N1xHzh^Q7-kR$UIj!QVk2VnpIN64smcp8X)~**^h@5Cnd;G z3^8*LCJnBo>BkMP+#_51Yfb8a z`7H`ayH(*taLA;*e1BaBJe~_{L|f6AS>+G^0tY_`U$~*(wmlZYHU+ns?)j8uPYPy}sFRO1CY`@Xir{Z&%5(ocb+~@RZawy6)6( z?W{22!J0)UnEFqGP$ffDB}4ru z#)ugMN~3zQ`KTe1sSeYA_l!7J!=$8PYAjN_Z%tI8-zkn=1Q@|QN^L}CQG->MDic_G zW>_U89nLTLrM8CTjYu4T5N-%nol!e8deMc=aNtpCwEzvcy82Pa$uXv0tpY z4R%g^D7oz&x9haG<&@e5wF!f|mHnvSR+rD#Mc#K8c$jq`2S%Pl{34V_9ebP6HY>KL zBZ~6+i5np{siF;~0rzAO1LQ9=Y5BT&hkWUYWa3L5qnm$$*Ecd1x8v2q4c}bw4aU#r z9|j5M`rarrlLd12`1c?uJ^!>+YuoF{Ykp|I9kQx^?J$l=>lxBgwtT}8?7p~X{`k4r z$2)RW?qXe+W<0!4>{t*V zB~;BCg2v{XZJA1&@TbOAD}ShPG&_vipf&6%kwO-DYf&|1GZ^_X3hl`p^~c5YmF@DsYlG*J_G;Lm&3rgOVyw8n1@LrXxe?nGg(*kS~; zam)QiS~G<-#v|S$1j$vU5u4j&+i9dl9>DGqJve^ZQ;j~zRk7u&YoXMVS=&jl? z2#e)xX@b*3U4UhD#G&1rucnTgWSyHKCO*1dRCjv@Foi&{L@d!tNZd}fW#hxKQ2VdP z#SUkvi2G}TeOG@hwrX0cDkpCVwq~^>YE|)9Ai`(zU)*<#QhZdyo&x2gla#Ykpa0-u zkNTz6=fC&`*?52P?z1A*M+iyFkpry{#RJoQuJewn_-5G-{d;(W24fH;T4{e&1PjHP zVJx(@A9}W!V6M`?o*sFaRs%r6eS~{&BuU0>%wwl~SedqVkX#<7@WFdkZZlDO_GTC8 z*np-UZBV4Z?6d5xBVC{KZX04I4HvKQ2N$i0%rx3A!zGkuWCrgk)33X9wchn>otbNo z(+S0TVXOoK#uH@`YLU(eHJO#BnEu%{>FqA+dx35oG9b9$%HGo!l$Rn7l-(PK4=uSr zjY&M=FjgOFzq9dWvG>lKGaY9?E6oQp5 zfARh7sORDORp(C6Ue3RKyemAYVc#^7D36W6Y3^-==cRb-oxA1!Ddx>t6M5(Be$DC1 zExiELF!g&^d1FGPfYs|n1@o%HH8&ldC;cWgrpWZv`NjZ%jn0rLw2htm-bH?+ko)1! zU*N&QFVwk;0{hf!pH@m&u2xav6R(x;e;G4CzUEfbLrW?>EROq*I?(Y8li zKjYfC*IT;04R3iCemJx;osU&@z|$l}{sJh!T;aA)n9i^F-z+Q+(I(HENyYS1>O!sU zx%J`pMc#*wQ;fa*D($VQlHDuCDFNz^@lFNtBae$F>ucvLa`!eSF>GGjL6*)OiZd6w zyxN{ad0PG6V&ZHECE}J&mvZnsiGo$*o*&C()(_O(8*jc4t^~bULuXd2cvJBCOt!*fC$Yz6C$RtuL9F1j zZ;-?zrjuvVjYhvQ?!h>(cyr$4UDkN2bMg$GGJR>Z3MH!N!FdNL#h*r0rf5J+yGZxH zy71dpUuo|1SaqDAVhDZ2))op}CDwqdh-V|7!KzDBog2@ByoTx8A;|J0CKz;KBhxhk zED7}6N#3jTdj`8Nq)Ts8Rlw#yrfKFEd%Q#5cipb)B)+&xCX(zGm~Un--H%slJBEbK z31Dl9ex0g}>j+g0irPsw;qICpB@rd5$1{AcOR2z+^;B7z>O9`oY`eNXjmfbAO7kPA zu{yRgcs$J#J6t{qB_3A^1}n?ro!2hbJYU-68NVrE%U^JF=ctc=feS$%>zH(c?6-;_ zG+mx&Py>45i=`y%@Ss?voB*5yim(oqHc?Z}*thyK5cUS;;i5ZU3RQy$(!k9RYN|tp`!XM%_>8ID>S$Ovy`_|T+Nn28!2_R?^m`3^p9Xcltz>oL zAnAyNlWxI$?Ay0H$K#_;W*)i{LB9RONPaESK~5*{yQzQ{*xmv?d{&aYpDCAaDvP%aElDVVyr8=JcCvhm`G7;!wt@0UE@ z+Wi(s6k%)DpR592s_4tq6swNZtoqb#!dlza{sbTP;$`}5DEdJtGqJbd?_W1Uqz3npyn3+Vje52uDEA&c7pWf7H;#@=qGyKQ&-*_Sok) z^q8BB`5*H3HmFd!M3%>|QszHR?gnpX#~03$><4am%^x_PIP~ zeru#VynXAZXm}_>1*eexa2RW(TY5IxO^l)!jD_oQ|zZccecMWJ*yJ9 zo>KoURbimy`s#ry^*eiOFZ}xT^q79>jX#&~zLR73w4#gN1f$a`A0k|A9{GWUjm)jy z-VUH{d4(GG!*5?4I#_o~IeHEE&cs>Ozo+KjorCRBE|`Yy?3qR zrySOi&q6n)iG7tZ<1cVO{+spgGO4+xpK&U7mO#XTcnNn)R^txcv{i_+0dyTyEw z(@-SYAx`Me!a*>fnh*Xo$euteXYZ>Hpl zgSElZGfvI>>s{VJ4(MRL8fuA!;&^h?FOcPmH^MB_LdiX6pBZfdv6Jw{s_V*f*&j~y zwftUf?+(mYiuKc0L)f7`%k>hER^iwrKlUbd-Fof9L`Mf82wd zc=)tyYb<5?aW9`*DtH6@%C06>RlRs$qS?8}k0xxxU3!VL$WXp8+9GatZC`Sx%fL(> z>jz%)de$BBd4qr>i}|phe*xG_<|QR>9d>IP-23!tq@`YZsPYFaqL?5fS(NQIxs?|c zl77_~Z+#8>*h{%O_LcvU$KaA=W7e(puGqG)j@E?BN5>cP@8{heU4&Xjz%zg{rr%(x zVrknQHZOt{-;loug(!3qzvQ|q9}rQ-CY?DXXd67d-tx?!@$HIRLQBT!x#D8gWd>lqt z9RBJ=z&#lJvDe{quyFJEZ2aQ9J4eGkv@u;7{5YiueU@KP*LXPM_($Bp&-3eVHugST zZ{uoi(M*FrgRq5VK`>>BG%~sHuGsb+PK~OQYYet3~{QZ)}zO z+<8#3u2HyZv3hYVdPfo49+Hf<^(}AP^<1YtAJ$lS3UKiI{N+!ZwF7syhhiVdX4)uP z2}aGi4$f2D4Zxb@`CdhzypyK&h{dL3Xeu+diy|jbtB6^-tcE!!glG?N^vO;gIL}=IovYOecZkFu- zEZ9Sum3Y`%%2dAiZkD=jLf%40SR5yRp}3-hPgrO?b>X(slb@0q^!*0fc`wt*Poq?e zqg?$aCC2zQtF66mGpey`szrU3U}wBai}NgO5xXRT$+i(~JwjzoXC&nbR_!w9grmx6 zoINB8B1z~eA~{zRM>ov|wZI}34!w7@so?83s)IckLD^Sekh*wHpJKKI8tHfVWoh-e zU5#L2VMAfI@H$a?kO14BInqA8g+lr?lk6r(1wHAB%8(G zCNG9=I8eUj>l2ksXaGPqzXO|(9gS)b{z+gRrNJwmcmd}G7Ct$HcQsR;B)W%|E>l4f zCcwbFT@k_jkPnRr;~NT|8Ckym$Wyc)5!yUk@nhI~!67^8VT!u5^242}=5?Jp^XMst zXXxhjgzJel-*N=NA538^;m5q?J?op)>IK7~r!U9kvL77m-0Immot6&wjqdvhNDj*0 zD(_#v_9NwHjDKk&BtL0!J6%e=0-bvnz9i0YP#h1w|HD~5qHQs<=g!F^7hgPH;&R>J zEaWU)Hv0=$*fH*MRy%$?&|E_OgxH6M+b6(gGnI89=~y>E*kB5*L~1lxu5dnk-EhsW z{7Z^m@#WndRZEv)*)5jsA)6e_`d%fg*6!AbCz#o}hA1&+x;=u z6qS74M&Db1JQ8{~sJY@zn1IRLG8Uqrf_4R4sc0=(<65QKkk>7JM4NrCoWCpA}d=Mw8vSXoX;IswtZ9Ra!nX>+{3K#PUtu zvw;e67#%@8?e2qBaKSL_mExFS&%`5odr9cZ9L1BdFELawcTp*X!JpybULSe@NJ)ws zRG8fIP|;}ZzW6})v8l#^KR0gNb$&Y}nm%!3pKsXIr$PJ)q9B*4HPJl|hTvQG@KXu5pNgg{FIXR-_5jkJoKf+oox@QqYW+a2V zAUH+uUwHK`Bbi$+pZZfa=Pfp_TuweB-NB!(EU^OkeOt=;y`EaLs$$k)@nm7nO(BBt zS^MtYrO&~MyI%L$Cj?G3=#`*Tr{2O{a1n6CaD-5!s*n1d^-$;dmKgHQ6JA8$>3&02 zyM0E$Fnp%|{%!qs;XYZTb+fPwQnLfRrSC}{nwlbh*<9lkM+?ZD5njs3RCh1%_;rC( z*HqQmv9G%))RvfW0GtjNu(P~zk<62*^n_WC$jLcx#Q3N2ZdESIzQF-C(Qs?g?a4vI z%LIAQvZ;d6GiHF$r&Ng4!nxpW-|CZrMQ5`)2d;$)$JwL%EN43c@k44{va<}x5+P-~ zVB6K)MY>gqZSCwJ?rKm*AXUIpq3TKGTy(O`w658Yi^;b~UDe+%|Bx>}q@_T;yZ9HdAIOdhp8pHjKEE9OF{vqX45BwI*oQPVH&-8a_-)=f zb85djYg%1Ff}3c7r_nY=3}*>3;gRJDYv?rFK@r) zw5DtDDI=0{vG|$-sAY;9)@4++B5qHYignOM8m?Hk6{`KL9J?jc z5xjW(`JF%3js^k6=Nz@e-p%~d?M_@`S8<_d({H>KG2R^J-(1Ol*=mp|Ft4|uL-B2i{uOCMtN1714yp{$ zNkK8c>t@K6>baJOqQuqnHl8IH(PEG3%Z3Wo6{47Eoz{if5>szVZy_Br=|tP;x;l8w2FD8Y@f57m1+=(MG*J*+h@ zjkjTD3_^pa-|2M@weI{5OxyH|JKy=`;*0m0zZ+J!f8^(#xzd`}RjJ#9h}7tLm2)nO z8R69sH2h)>68XaM()`>abcU=9vMRaf0_HCrw$r?G`l457luOuaCyh3QA4ezqmE;iC zXf1fE$C&-gv*h;g=egUzjDYNl$U^M!(}d!u+Q;VI&g)${U-KjJ(R38otvgQ?3*o2w zEbjTfm7MAl$=keT_}RZJ+kn#E^1aXqPmjTF-ioB<7p8q8wVPxLv88%nXNNxNzx_6! zWvMM(r~+VjS>&~2Re9!N(waT6XcSk__9>@+oSHr0GI4r<46@T|of7z#g?i#9{^3ij zju)R51mRKw0R}TRaw80Go~Tlkic`-m&HoT}qwS#h-I^I`xj49YKu~VshF2pq-H;qC3eAn+uUG@$69>DOoSQw_@;roaz9TH;V+fT_ zbYap8FGE$}7PnO$vV^l1yKaDyA6^c3vs>4#_6Um4cO&smZ#o+1%J;la;?vYWX4J)A ze$unA_AkKf^NO@%5T%}KKV%0G<<4|ycZM)K#Tzfi61^#zrOfP}jPl6_Z_dnum)_Td zs{5RlSa{$~o{+x5{GKX>S?YPl`_4eZdM?H70ho|OL%4ugc-kn41>-mZ3Pjl4IGq=> z;l%E%LhX*^(5mw)tPA=jrDTm*C>JQPI&8b51_Z@th$zsl6&CYph43UnoKe3!&{NTt zB7OuU#ydE2ihBjr(4-sDg2WV)Zx(;%kKmXSST}x$ny2t6GFI&_tevXwP$2?k*GLk^ zVN?fGzcEBV>~p^){!yMRsA?w22g5H@)5xZpv+bl1S)-`;WHd$zpw5Dr{65*OljnM3M#a!exg#+_|n&527bu@hI1bzYENzqo&v4RVR}H&)NGJBB$o z)o}iDIR3rP1?j#pjohSHcEy#5Lgs5#?3Q|-zV31V!k;#c5eJVR(-^oVE<#j*J8fpA zs0Iij3IsHJzIjX;B=qk2F|%2T`(9W#e7cjkata3U{Sw(aYb^ULd-JmE6-@)@8_&OP z?8rV-?Y?}Z=0?EzA7uln2D1qoHz%J=;jeci(4b2X;ZHXPnq<`dvBuEg#)$*7vCHkP z&!21`=HDOA|5%w{<)n(K-|+LN@d+l`4bMuihu+%1F%5MZFA(ro1{&@?)$`#SdWYJG z|K>B%!>Sib>D16$SKi^0`iHQ68E8DlMb1rXH?#|t+rqGM0 zHd?M6pBZg@VfRaFw+hALVVHxT!XE9%e}RW>(gyb3-3e*N(eFE7h2GuIvf*1%2ayD= zOcMrEsa1BfO$nFpYD2G7**sDI!1xo`H4=H!;6hDe;4$^mul5j>Tft`37nqKDE3 zBFP0p<;2HB&b2QmuVx%?fkTKzc};ta*V8H#K(>p!?T+RV-g&mnM25Y;*)z}}Lm-yC zLV~lRjEyCRQ&od6-k(wXQGRFE=gYkF5&yQ_d@{5V%47zl!1V89m6Magh(q-J^Nfny zFV24Zt(gAmhR83;H&cX=Zy#N98(p$4!1B#CU5$)^Xid}cH&0qgqUf@hvj@>)tU*ah znGExaLHZYa`R<0p35dk%80nYRRgw0W__B*jX!%w+A@MW8XZx>x@Mu1Gjia)6W%8PR z0|(3VvsFf+uAsy4X)e&4Ope@cE34G8EOfsNO}{--bdA-;8bB&tGsP_@*~Xo&s9N60wG`914G+1 za5L49@F@Y@1Srfr>CN3v&+kLMC&nsS%EyjLi?3g?5_%$Ng~SdzFqe{y>V6zSokrX~ z-#d24m}ez;eY7u9=)vt>`RSJSX}^>I*xiykbq_axPqyAaMml_2$87CHp64BRPijDW}PEj>7NEkSAn0Jr!A}Q6q^RO3kX;t3vHkf}%zvVvo{_ zQL|Re7Nw}wnytNOX=`=&`{egO&%2zHyvU1;`@Y8Ks-Q;G9(-7yo(z@|OqOXn;cjst zw1W<938hI)a7=DZ5q6Jif6NE{jlkl;SnM_9(PQ{1URY@=`<1PAhWmE$mw)b`Sgy%d ziQ@8NTzhtEAhFXKsKKK{JI5($%cSKj(Um^-U1LI+RqW9{=W|hTDWru2R_~V;b2>yGp3EujXHj7O>4vH1SYQ4v4aY^ka5OVLAeL)NGQV%8 ze$tV8($#4GIY}`OCV^r~|HHpt?%T&t*SFym*=gh~834=0rQ+=y z&P8Wxg?_l~Sv8=IG=_BhhD4H>wBxtwdc;#d+o^e#QO?>1i+_q5*&3X}%h^9E0#oDK zfOK5x-Y=kU((Z-(oD^tefbKEV^Gomm;JupyB`Nmyzn#yThE7QJm&qhh&mU3C{ai_q zK+++(6Y&YM!mN4W@JvE(5qrdfArdM4F|OqX?+sxPG4QsM?GvZhTMchtlrN)YXs)G{ zR7p_$F;s_d~2$Fa~uzoWtxcOL7(?B-lGR2Em}j~IC2 zxddu3D{Oo?WLdP!uSJ5TIw1S_dD|+N>Zaj%=l841p8uqOFg!By!RlspN{RAYq_?L| zyld*RxIgsDZCW`tYy`tFNdf{S;H*$^dhT9wUHW6oHdh7VQjIq>{arb&m~)s5;TdSyXzo^KC~qnKZV z!bpGv$;V%0uNvI{D`oHCpt96Cg0|zKX`^l5I?yo?5YRY-31Bl3nt$*Ry3&{R)B15y ztQ$g7UN>`2K62oGhyK)D2t&&6&VhZe(6#W}VDwc|SoTW0k9P0PpT#d< ztk^m1rSC&b-Z|MzxB5Lwx;Y6HLK|!nfiZwQ$p8l1UB%NwXU3H_>huMl@Q~VlT|Lf{ zyRmd)@FT!c9y~zveC>Aw*-ll!vYy|*jI+Y|h!oB*Z^qwm%<>%*WZKxOTc^@B4`t?q z%xAn8d0wVNa5eSFsoYc+a5L~I)5p8Ir6r&*rVX1&8EeD9U8M>O zbzqmCvLC37z!q}I`{W#mj5OQ#CpE4**MAoKAFpZzOhuY=<~i{IadrKy>G3WMK3;Wl zs|(EztUM)Uoawq1{5xW<+Z@ge0l|vHnHz;&ul2u>O1dz@{xwtI)v>c9RX<{yMai|# zfZ13b8F@gD0_kSPJLARo_gbQq>>Rt7W-8g3Y;V-PB2!2t5)MGT(45!XD>M*vo?rc| zHP=t>(y@@&v}#|f9;LtNjT&rNxT50fJ*zJ78NY@hx9vNakAfUP;xiOTM;h)gfk8OB zaJaKSf7AE;f{FI+u322_OuabuKLFHZxzxk2d`WESz;C>5moD1JjfqF6mL%K&8H9OVNef&anqWp>d`;Q7q+_{h>p6m9LKP#nYKxL z3)8ReLHpS740(vAe&~Gg*Y+FOlZ*H(l9ArNYnT`mHwkv~A0X&dn8SuOciM92i?PP} z72IR1>JOYq3uP%f^JiWc0m5Dvtt#p6Q?OY8X{#!8U@4C$5`{$QfnwqL0A^97v;~0O zjLQOnm|%23^U*CNA@B;#|&bKPs;PyWs_s^^U07w%6H_yD1ZVU&Or_z!$x%{-k z((Cb?8^Kbg0wqlTB{!Gzz04J+c&L`1CIF3K2*soX7*%PEEAfhP&rqJidIBa(|3?s^ zy%l|K-7FxaeBh!Lpz^mlMQ7yxvoz`0$Emn{B^p`6i<$1;=dPSfuC>o3(7eGWJGev@GZs zzu9nCeafC}3Yf>0@Lc2X{W(X!ar@Fs%Ki%D8{@@h!Rz-4*!Gy*&40Ak-1fxu`hYM+ zO!DfbM?W8kh*x!bCl=csEr!e3l{U9*aj0Nawd0BI?ve*Mv7L9#QOx&|p^*6266T(L zn&A&Djaz3ea7zj zm{j#Jqs?Oy_~G9)fkC$=GlgoqipGt--mK;X_rAaS>Jvw2r8j$)dTGFpI1mLRW-2NH+0}rV{{hDIZl2!bT3T@Mlxb)QsQX!Y0zg5v+*+J3^@E^raPir8Yv}mmUfoYqO4*TK zBYM7tgrD%8aCQM#Ug~N)eCvMrL5XJQ1(?ZJ)zUO zr#)1g2-(_^U*3K8+8vfhr7~<)Isf1b1hhKJxbRz#P|&^;4kssD)-IS`0)le>avfXqW+hq&0e1vdN?EhfROzELB$H zK`R@HQ}gSIz6>Y}tQ(sE;RKqa{op#r&Pk^Osw4bF#CwYo&+6*6%h42B@2j zsr$DCJjc5}N$T)pW+>w$C7BN@#e|9|$YX#qbrDB;M;lPEAN?34_j2#X#iZcy>{u*zGrxU~*Zs#WWMfS58Qihhc}KQlQ~a?ve6>B2p@=%%0b zi~zBj1VC#>7z0_4l`{cUOCTRnTqzHJ!!rF@HWb<_*p^(e{vG4M=Ax?C~5W6(w6 z<)*c-Tgkeg?0u|c-*hGE(%cvbsFI+nUAjhV;cE?E?gd*qBc*ZalcXTfsTxdZ`)*5w zS;A$1xwEU?WsA*Iz6<0O4?e7;=|^*!;YF}8E4OOy^NQQQq>QrtlKmFf>V>0hLOpc@ z4R&8e>b#`j7lio~`QEDNCz?SA4e!Z_RbpalsdcDz62~6|lg8dz ztJE@>H)FuKl87X@jC?@U0o_PsK}vP`+?L!&m9j$_!IB{&V2FEo+Ys-_!MK8dRsXv3 zc6VD4j;e#3^Sxxme0q3GW15K1U8Ku=YmDc9qG6`{PAH)CN+RP-0+%ANqAM0A05?Xx zxMo*3!a@~9m?<`7;26G60-l zCbeB}YbH79YVX${aR24rzxL*SGG0`Rb`y#zheKsXhk;(DGbUA_E(P03wU@#z-bhz} zeVJr>teZpxgSbISt2&xCNUy+|@v6{(?1Gc*o~)lS43eI3_$oYorzA$5-!A&_rEd@aIfFjrrK{=mBCBbZZ_dW+WGox;pCcl z7t8lUi%Q&Fqc*Y|GB)XyfNI5Z`vB4N$t>1s^-y6}8s37wCILB)~*nn345cW2j&)s>1Tatus%L3adu zjr}qw15g6v*Mkg=Z}=^cc^OFw3=AEiK)tu>#Y`xHdIJ-ad)veJ?xl>D7iq0OS)y-? zCBjOc+>nBpmTKXsanHui+x>fdi{Mtf?8L-ecQ+*wQe-6i z^|KkT?{o!5Mj@QG4s0W0pada)rk9|%sK*-z;z$%XVr+#8J+t$sV{72ROKb_Ia@322 z_XXoplAb6gEq;f~ommc~@%K1I%rAhr8b%q(v4X>(g48*+ow|E>~er zHv-}WBr5>-Q<*CU&^k^cLM8Rx+0oYD5+dHUkUf|7oFcbjfDMfoBQ`<|ikb>4*;@ z=YltC2v&TsJmW8tRevGe3cPOBgsrBd_Q3Kw^X+Z(iU%!7b11w}k7u0@UJOuTqs$jg z17w9e!Ln3R+b%b!F?;x6i%o!cy{s&b88R4yXK^nl*kLhKqIRikiKr^!}I_~H2 zMKC2?Wr-*@X7m3=A?Qh-03_|@oPd23J#r4(p1`R{7J0Qp>*nwf zzOe+*l<5D9L+l6P-UG_KaOD7HHrk058C>RNNq3P)Y7AI{qo~n>(`o<1v2p8A#-y!) zy!151*qAY&F_{OMY7k3f=J9#qDF375Ins!26g_60|AWr~Cms!hFFDSnKz2^1VpNqsLQ0~U1E z{zU`6LVu5PGr!Xf!(iIX;rDH_+^DuPCWjNF$v{8pRVBfLMq2r+3PNd+h?0MG105ts z3osnAO?PliLaO9kHYnD3{Ahcx(_M3phnT(@!{+iM)6%iixF9MqkOa1h=!J8t8~;wK zLmn)dEVSHmtdgFZ&CwMH976R7L5vZmktTOFe~nnxV6J^URj5`xD;i15XrcI8z@7iK zyxo8C^5$fnAY#DZJXoWQJU(ghg%|;aZ8Mn8lFFO!`oEhAtGIO?FO#+(GgdY&HdK-a`-fS9l9LOAkC9JYQTCO>n49Azz@g zgFfTQVjEuCOJyAh{>Rng{~y5k+APM4nvF5?Z{vJU4LQ5^u?(K6nHpeX9%(Xt@wmRO z_GWn5LSo!C>mfEKv%Kr%;U|L%Q0FI^w}eWz99};xSr*~>JEb;;`y;#HgJ}GABSsFb zK}^tra|Y6Jf!xh#0KFWpYSG`iBj-o)wf+9ram0ie=IP81G&VN%s}5|2>F}ydkpr8W zT*sSAKhvUkokiFxn$C+p4ode{I&PwF&SFMZ(91-nv9&;2@H}k~XR!Iz13uwEuVClW z_w2ct)&1<1hkHk9+T4O{X0~o4p%+{Q5psw-Sp9b6nD&_35-H=RB$KL z73JqI99!pwqNdccSjyfNIr$Q@SN1RhJLO()vwV?c9bjJH-%k_g| z4$%*%_do5nrY|Q@Y(A^bPS@}P=Nm}!Jh=kt8OfYb9-$AlpZPls3p0>7vWn^|NH>{N zR6;4nLsiLitnA}F!hgAb?W5OpC7o!O%-5m9To55FvvBsJh*5+K&lEPcosJ5kU{3Qc zZJCdre}T%R-=Y@yOxw0SIPU)aeZo5BYTDJem+U^`1a)UK_R@jIJwzC%A!mfpWINvN za>FjUbp7V8;x#x)lE43C^gCm-@?faf!?iijaK@Q>RghbMF9<+#j%C`?#NXuG>Zp+u zHX6EsMPPmI;8LLo1p?rZNgQNiEH)K-G`3E*^a@qV_7|R6KvL}lY%NPlFs1-fxDcyI z)96g~_sNYUx9C6zKw5!rcZ)^3PoXlzRyq#~Q2qCg=1DImpGWs-HXWjLAa5j+g z!k5Bewm@kCps^*SF#gyhk7Bj|0AEugZ`wBPl*$Q6Uw5$vo|EWckiK$89k@q+z%bwE zNvNs5-*w;SlmrzLRWSV0E8{1Z>0W!T%kw}+D+D%!>y{lIJV%>zIL+tZw~nL@t{d}Y z34yXu#XVfZR|mUh2KyFO3i_JWLuI_Jp7!y8#-m{5-d&lJ$vo`+$e~+~PqN=6%*4$1 zGBVSxKE)DHFn$3hUV+;xPecFmwKo<-#Cn*|2q3;6rI<3bu8Nd)VNs(=`q|Xbm1{dvPnNQBWp>e<{mEkz1)X=z zTkLQZpIZ@bcR}l@%sI(IF8+1(e>J7wB&1MnQ&H(}ZnU}l#s+k}>zdT8{dWh#0^-aB zIw!$~Bw#y|m0!ExjNV4H5;qS6Hkg56D;+qu_~Ot2z9ZbR^=TEt%XE%J2gTw-G8H)C zG2-b4^7<c<$-+nk<1X}cp43(B@bOOVyYIPn27Bba^e|_ z+ee40EyZJIhg+v0Q1v9l0`LS^#u-isVDqruy@olS-l!904#(JIJUL71G4w)EMFUuj zGwS)JoA|2hCNHUB!U zI3|knj$GOc+KizS0O8;Fd~SIPuG$%H=$7ijWjBkWkKdk2W${#A8h{~`QdtRXZeb7m ztj{^x{?#;o$$yG$Ad`g%Jg)b}nd;Eno#NAL0WES5E!BpxOJx7r%YL6MO&VIdifYRm zn91uNfeyC_5c#rk@eqBzfvkb0bw?v+>JLM#kqibB;J?=5QL_z#%CvR3^v&>no>zvk zy|CkAWNx%FKm)Cq9u%%O+0@$q2Y6gH_a7iEz6y;cwV9)dFfJjKswOS6lCPy#R{VH8 zig*6Xy!KaQ@a0-Fb#nN=*Vro(7->bkqxF+tk{2=dTtu|F$ukF3lN-s{vlZidkvw4q`3gD>k*L6-VZ`;O>H^g%eqC9H0qj!lUQ7#H6U3@C1Jfp7u6^Kbhvc?OP3Aw56VzKJKI^0ra^(GR8piC3P~ zNKr6gXD)$TD#8=MZxdhS6OWzLPkmOV}cFNxIcl z42Yi-596|YU|)H2-3gBc>pCp`aFbyF!JoHnfZlsNG)+oqZEi{^W8!PSPRP`xW-;m0R>BXTQUy{Ys{sHeLL_m z*)w`&H;0f8@?3@|bM*}80u>x3;%d4GPvvV{9n6ifI##{c3F*Su>`rWmE zOjeRx;=6*v)|01iINX4VCPD*&& z1GG0^=A*>$iqos*U8j|(yu6lSKI;O1r;;y#G9V!6&0ee3!?>xqe*GKKBFE{cOobLQ z^PfJoH=xt|lg)HlIf5MOlD;;*zrQZ~ena}oA$Fd@wB`a7Y(Bp3>KemrtTQ}oNqPW$ z!t}z{@!6hC4Df?srV_U`ThKqK{cAAGu(1?}3=!+>W+{+YZ0NoFtOGydxghcALz$QU zEf$JYd9A%(e&V{lY!<~+RLx?kM=UFWyYm0qVT>3BUQbmnrZd`DZZk5Ew4ZvGhQuQp zi@dUdc47NqQcmw>S*Z_TrUh^S6utK)4A?Abmr@)JSOxfHuDqce8}t5gFhGhIh@|6j zNublE1(Rq=9SiIeQz?G2ECwkAvt6nvEK8_|Ug>83Yih{ati3}mpmL*RN823#zm~S$ zW2^TKWeDdr9Yf61-?P?FYZW3+URfp|zlnV*S?ODA@zV@zici73THEsQ*`z9MJ&Qc# zdE?=4To8gevgb{z=d~B@FCEjqsXHUjR;48LO-sqPWAO3)0>rhdm6z4_Rq;q9?l3!E z0MsivrBybUc=_XG^OT10fJ2+1%~!ss|9GF!0;w^xb?f267Ja+I9An##|`0^|}!eOX+ZF+r!}J{mSrDFv!+ zirqb>dOYRP5B~fLP0BwF+hch~J+x_(4hv;{|*=@HYzqa-8WPTSzvmQwR zxYT`dN?`B>{YazT}s!MorAe6d)oQ(lBE zj#Spl{1Jos1Nh~943z*gF$wUxsn3>VU%U}IVl=u4{iTz3=trmVa-!0daXpON>MB|6 zB&tuuiW13F!DGz6Q!`3;q*vUs6>KV7Nf{oQ#u%+VKK!z>4*#)ts9|;^1k;Lnh4SC^ zJ>#N!!OXOi{J98Evpj8ol(s&&;^UiLYg&Ax%FfX@ycBEx#6ke*QA{WNJg)Q6EoyVP zerw_4{w$paKtWs*|7WA5_BI<|G~}(5ZP4gb#K0B=ZO&+!C-3Smul{&0l>ghpU-{Gu zB+Z2R_a9(*@rRPb2jzI$(Pv#Iv`$V0_wnXl+dQ`*L8Ur`PJ2LA9z&mQ^cE6)U7R7l z+dr#o-sl1ZYmGY1;$F$KaXN|1zTM{kYk&&9l18GoCJ^FfyK>DxyRxPdP}QOHf8REr zu;In09YFT{dJ{lB#c^JbqiQ02G zD^KmlEstF+I;l|~8FuT;G1!bp+|t|#iE=m{W!`&mkK*OT)zljOf#u=I{J|caLX!%z zBxjmQracj+GR8_l_VwakcWKxBD<|I#b9`hqm-B;}^4fzlWE+ie@wE6mruco$P=;#8 z;Klt5o0_)PzwdJ%>&|@81Kxe5!#%`3+wEbxv|bjLP%p>V-NRk&jlm6x1cxjsVhJRzU6mW&pLywq?whE( z;w-y1ie!M-YczwtK{)K4GxyLgtBHfp`vld6WZyP2FHOr|V(uL+CWK2aza(unOI_nx zc`fSI%7D4mCKq1XNPGk%sKNv2EUtL0Kt}HeB@0I){Ha1#S31VG0;z+Dp#GNoq7+Bxq+{x6`Q#&rv*xeaKgXG zF}81|TV{R=2>M}3uKnj>Fs<+0EL8oQQVX+J` zWb5`eC01Wl&pm=WZ#9oQzxmAyN4YYo3NM960z`wGOMlK^c3kr2cM{nhUumbt)A`vHmZ)) z2%W9Io#ZuB`rJ1`I2L73GLDu47-|>YY|{hvYqZ6^V*X~Q=gBQ*X5G7i!xL8_ikK{cf+2BFZBzkZ z{^1@mZx)%W4q>rndwY2H@MPvd9Ih-^hvcl+^Ig;9>O|)~ypK!vEic!udBS5MY3%st zjLgZfOGUnWa|}i9eYaT>RV@pA^7TY$LV<6$wTdZ*NjPk%V2FD+yr+;YR{lIOpYD>;MU+{vpXG}pqT z?(ik`<+TxayPTNC5;qnkr@1lE@D_{{KRvtsa=UpSed6+o`PRz4F2^?55>*kgF zQpsN=y8g7a+AAPrnGZTIT;o_=SV&NQ578Y(_!D$Hom0;>@o;AK{7YRnq^Z;_9+`2Y z$A^#%D7>G520F*Vt&66xFT+*#Ma|+>=u<=yJ?54f{1yp9+yJh)o~4R{!HXTtR9!)H zy!~WDV+jeMKzFMUXj~YFd!bo6eVcX2=SG)kXG%$nR8~_MT#^`QNA=Jt?@sOfJf+j#s%fXWsC@kz63bjDwI)83 zI;5(olX9_prhB%yV9Q=1c#AW~Cxmx*@VgLlx27v=zD+r9c->I*f(6H`k5d&Vv$?JuRshi!ZdCK+j9%X+F$$)Kc z3uo~~OgUrF$G)F?dRu*FV5>73U*03)G+h}8ffus7 z8;F;zr>AgeypG|#CEi$C7WgfoA^2vbH%=VC0^%M7Y8NBF zb3FSPlf~nJ&~SeUjiHAJ+!gtef4r02u9bs$H*e6LHt@{Pyi*U@SYkTIjK-qrecg33 zi@~s@Z5duR+%RQ5axM+ZJl0Dj`vn(!gl)DFKbcB?|EGa&g%09Dwq1eaCB0p z&=3=S;p|9fPQ|kFyftC+(Ojs(VkT0Y3v_m_Fy`*{;@(<-;hQ|>Q$1q>no$Q-I2_}_ zl%A;fiW=2_!F(PeDx+g?Ts8{IQ;U5U(evf%aNgX2|i)+}sPaz!xeb-tA7ApkV#JH)cLG)bQ z1a?O0*~bHM`#3oufwLK?`;HG|indz)-n+Bs7!?2DsyKt%l8W~yCzWcZ!Q5RtvOSBj zA3rQlTue+aIMup3)X1yhkuc_laa_9|e;iO@G(%wLH8%N!(;fB~Z_n6mvjFqAgQhP` zU)Bq@;`s*3RjtncQY1^5I#SxIVwSB4SP*=4+M_wPr3;WTdpc4VBKosEG2 zOtlY*d}t572c`!jG~jD zX3LcZ`d{6CQ1I+YG7bUzhd>$g9QC!ve?|5Dv?+R8mnIwj937CiqQ1z;l-9K(^1a& zQ`i;`#b2ZStwlX+!2vmzBXh$WI~~QKs?dCQMgzTX3IH}fb$H%yKze0{Ztx44ORq}I z-XhULqy&3A%o%t%WAwL;u2NwnDv!6<(=H`aKn|{6M#@t2Z7iFRt@lzQe;wRJfFunO9u2x!J-Xd5#CNO4Jz(BMnZ+<5SDw((;4 z!_lER>sTKl$ofj(VnF{7)8qS)NVy1ySjqj7j73j6)lns7k8)(!2co3$4NE$&?FqTyFbLT6&M~hr#n;$=G;&{?|i>%gR|=_%i!tTLeY* zg9U5d#*Y*?=R6Gz@}M_vz^7#$Z6-t;g;9pGo9RdST5HX-sRoe z)q1zBFH8Rn4l2E6O&z9=|318~`Qy)o&eR{DvV%bsv~{`yE8@1rp+*(sRujp5YUK_? zy(kv%y0h(jW)$f&l6}k0+HX!APl7(0=6o=={LE7AbSJ|}HRX4$cE9JV$>~Qc?i*u% zjk;59sbqrM=m!1uzUI>>oXY;o(ZBd+o_iki#;Z|q!Q@2=RtaBXkKm*Jg77;y^ya6}Q#kp zJQsezd$n82FH_#yUe%mi;Ys`BeQmGn^3)5ITDdt)cQY$!DNz9Xr(cSM%Y3pXgxM)G z3B4cw?F~=a@0In>bC+&D5s`ZRW^QNX@5*t=yj!JH>dZjx$V1MPl^&P(+ zpve07u9rlX!UOBtUwn2`Y%lShAAPHLs zN0Swj5x8cleg+h+g+P#0U7gboTl!l)vRJ-&^IhmY->1tcMyzq{T-<~Un<>Ang}>!Z zRa(kDOzTG9KlSFXV-rbrd5uPM7cPMBlxT+#Cv_hund%0XpjRhMWya2w?mdje2T-nz zwzY*UNeMu7&`9fVN6dFOqpI2WX4*~;0k8FYWL0f|;@Pze&d{SC=eqS^ptNA{|hAJoUER^sNp(W2yBze$@ z>Suj6l`-1r&akwRY;y||s)f)y0;GVnJnz zd_)g2va3(a7`-uT3HfyXR96UqX!$2b($z&xK+%I+yiXGyB2U0AOFxSuW$u*oU^ zTBPm~ZZ-?VNr)M9x^s-TUE*wLEx>QJ9xvdAEEl#UwUbygPYwn`{2k{%cDrtvsGRtB zVMNV!(mK(jdVvOTB6_FbRY%BP0pFqd)W9UyR*txLKV91k@ts(K46}+9%a2OZ`6R{5 z_nfF*?jI(th86i7()EC5=)4Vq+9JJzDBZQ3_wz;pj>v@PlO-@A0!qAVXji)0U(ozm z*w5^G?mbUCKDZD$^@tzN6}uRBGx(v{%+5tQMAJ)zNf}QM67yv5Z~kGn6!qOEkGN|4 zMP#R(=7Fp%#78pFU@{N>)&=tOoWJggejEO`V8zn_)%fdV zo4keDsrNr%bu5g3Eix;_7{a33$AU$KXYw0p>n=3*HRI~`3@BNRYdLJEPUfj*aGE|d z8*2a0IMq1h!**H)nMKNu^vvuV3IsAMJJWOlL8Z?!S>q!9j*V}YLjI0!j129A(&0cC z+VQumTiQ~a`BvZz`_FWwQgg{LQk;o-9!x|H+E%kJmdJ}xqv9#$uY?|TyT(^3mgEB1 z+T(i9>lMRX{{wJ)-Sx6mzueluQ-K#%dvVY`!&?p0tmfHU?tK4h7@4a%Bw>bhEfR&d*7=}w!Q!5JpK6ONE>!47WzTG> zR*1byB0A4?!yiUTvaX zsz%}unGq%w^9IOhvcviHPw6PSdrrKqAEn_L?Rq`K$!bp`I%`%G&oliuz?NnVC91$O zzsn`)!X1Ct)o)r-jX95567hhfTmO(k+{;Y7t^BHYciMKSvZ=w<)Fn$KJ8gt*aJ2C6 znAf~wfquirF3w2}n#UlaqnddxaDE`$c#kF79t-xvESDAL{!w&xaTn`Yy1F2FS-AimEKFtQ9zzjC4aF%<*JB%8? zt@G!j9?>Ji$9^;Gm0SscNjrN448_7DjfEMT54Ftxh^IEMkXQY#fqkp&pGOBtt0i-? z;(1k`EwC*uLrMEkY+ZrZkn|qRnNFmrPcI{PxX;#VN!-&^(eAaST0BQQThV}@C^iIc zupypHG(a=DNU+|l7KEKZqC}j%q|CtvR+Z+8j1U0*As6nY@6tEF39Z*F9l}x)5Zz=A zQ#VBbKPl3{duBtX8EYH3*Vsa9$1;ah!G{RX|2P7OI*LpW8eQ8}>$Xg&NL{JKn|`gI z$v0w%CFEadTvoen`d@LOvD;sN?>UwFPFijilt1RFdHdBxNp17e&$gQ8Za=&yE|CCD ztFm;nY!~Bk9oF845lkUm18m50{WtmyJDkl~t=%-Xj^x3DCS)jon=HqEc`NO(QN7!4 zD{)?jucT7740(rcEb%KBQ~OSAOoYC>z4Vrio3!DPE|^_eRNBgPI*BnHMhDxj_c<5G zb=Wq%qPqvW%pl_l@2}+F0O|$9R%ault+N{)m*olor897f6dDZxn7Zf;N%9k2gYG`I zpsc)Kkd-qjf|xch_|*=GW>NP~`{Ov#x%{+18a#8kJaDW+h%ddQHZj@Houdo^Pk_gY zDTvqHt@Ze{uVSh?ViZt4Do>1pffL}Yy>U=Ge)$nxJmTm->60XO1FFbva5UNJyET;w&yR{Gy!;w?4@dm@mB z{xKFCCgDl|i$T(fK10oHW>H&|k(A(psA5@0SYhTNM3H+4-{m^jQx3K*b54bUGi=)rj7qM%@ zROx&)qbe7kU8WFq!RebVqVja7g~g~Zx9HEwWApy@bEhLW?Z4ou z&=O&vNkV;J)nW}DKR`fJ-*D}U!0zlt)4XyAM9ASw*Lk5J-=B{m=y&lX=ivTLp`P#m zs06>O*IB+f&oq7D-1<8()?|_;i@-RJj5yQN$F8K(mQo+k2)=E0C%Emtl`mRexe(~x z!!HAYA;s!b=6lGTDaro;kM4RK1fncJo0ndX*Q;$fO8n~GYOQ`NP~}k>X8{Do}u%4KGXdST2}wYBIm{8(zkZ1GWpoN?-x)UZv!*r)=tq%gaseCTlI7U zS{>X9ifa2VnVKHF8r%0TVAiRlc>+&33!cJMC#VWwxa476`F~t5TWIVY~n( z?S33C8b4X-{Y84|?Le#%TNw@bfvb+b{1YydbjBG~+3_S0Y0LHeTtdG?Hh+FXR9D6;7Il|X{kuiWk7VbK zerLTjQ4po~1tp1l<-$gXbBQL-`yv9bn%aIG7qrw5gUSFZZLCPhXvX!DQb~<;d9}{S z?{&dfS=^A#r8-#&l>}!3=J(x?=~;`m-fmB0I@&sYdEHit*3br0C{MLCoui)XF&&)0 z6}`_qs?Wi*`qv6&JTYJ`qw=%Y{63n|1K}Tj@MCGX!zHn@Z$6J zH|bU74yfQ3U83ZccJ3JdAL83ogcM)0u7B`D6>k6LY@_FaG3Y<$&$tNz52wUlJq}-c zEa>_`V7RhEykzdo>eF5hmG6jjRy@--&kQ6phWr|3>k-;Kf%=T!cf4oPHd8yEdsI$+ z$_&1<(>KYQKyJh^7%_drXjXDca{XAiHGNf>dBS$;VjFhBdah2^o?Xxto*<tCpxI(jUy0 z?lH{CEyx6Z^5$fpsqDk-#}ZK))2EUvXOGY2C&DCFB&z0{<(kv*D$Al_Vcox@u)B7j z>~lz@lVrCm6;lnAX9&X?!Cu%P)Y*IY;@4O0D(TW||Bs^c@Tcnkg}{U0ZhdW)r#Btn3w%Ra|=&k|NrDfA{wv+;JY~e9rs* zdOe@NQ{cPvPpl%7B|uxTX|Nm?&c09F3h+qh-Tl24!C9-KX%l&~4~B8?kV%NQkQ4); z_#H>7e-drpuSxI+7s8eW_}z@8u`KMf-OReaf9qt4@PD%vnpmeRb+-qsXC{eFv@W~z z7C-myu2h{Es57FajZ5zGXA2h=SO32HReHEN=yz;&*<-?SQjl)Hvr%mhTY%c`%2Nj> z-fKG2wTL-*8x#{<&?_TwbUHP1_ zQGFCKEE2UR0~WQYK*-95WSygFTuJY7s{VmX>AdT(hje@kg7PuS0k_kq|J z%hfBCXA%?vfpf->EP!K$C1(C-aU4&N8WuZm-OJrKoP8lJ5BSasIe~0DjcH2{Kdkp> z#|6qSR@qmac1e4(FzBSF@TU=OB1dFiKASEKqM1JPE|`4n=Ls?&`43=&IE|0_^-lS1 z(Xmxnaw+*>?Vo7rrJe5k3$Je6Yae|9Mr4;brQZHN9L=?V-gIo?ZK(f2X4gPE3nrU^ zJww6{J_3SnziSOpaHS(MGL~f)=ODG*wG0T}!9>oak5?0nyF4y&atCTB!HCSMoYn~9<{+Y(pY{Lpn-THj9 zY0nR5_L|~Ci(=CmWlIDls3A+n3Y)>#A~AP+%EBK972UA@GG^IDI2cCHY>N4&FiH89 zL>?_Quc-Q;7(DEj3fp(m8F;V&1leZqYxN0bc-TF5_8FvgkX{AWNGQso4P)Hu0lr1L z+c&Fc5Bn8gXK5b|kYLYRpAisJkfa|k@1dGRi)2=3?nS>^f2;Y?dp9X|g(z76&>IfH z3xGpB7!sHgW3tpWQZ~87Xphu4tV_0#954$BE9j)XA;7NV;El6m;DX2_1wIp-ia< zg}YT$lgB8#$4Su)BGHhqS}L45$699sFN5mBa-KiZcY6HG}TU-Xl`H8TfhE%%cNPT{LW;q>~DGDidbTdojM2I zN^AK3DYrdo&!LkC+MnRK0UY5gdmu1*o`vS0b?uK;PYN!QZVkS`v`$y6UV#+iAooD3 z0JAq`-{$v~d-7;1<4i346tyeW0E--`#~1aYNj<^L?mM%eyPB`usqa~eNSr_c?goQW;b!?@9 zLN1r?$i92wqg}MU&3V^hzB4>T$y-*9xiRpx$EGm7nOQ2U?dlP{G?Y=~$BqDVyE#hf0)f0xRp3A1d zT(Qf!InX?O?3+$tk}OO80qBb2!-x0tUI4p_{%#V%Es*SCnVaFC1L~Axps}|l+8iYB zrJWZHZe)<>xP3{^>qH6yhKzp4>(v*(6AJC_P6>mn{Tj5I@p+8JVzv+Ko|l9dGl#e(S&nJ6FZpMa8SDLN?*q_6@?vFD0gV zh_4^N;;aFbd>!qReG1%FuRQd>;|ENKxoTs10$@N6T+%CgJLy_+PQzZ) z^KI7xnj$pjHHz*ef68Au}WRD+`*o6$?%yRk^7iRAzmTCZv1F%mX>*L zhmx9gn#lPERo}?l_4XYP90e%crSIh>ZoQw#W~A>Yhp*PEX+#GW>7=E|`j0Uf|H9L^ zgN4IpOpPl>PA5uDViD!)OtBfv0AD`{Y80|cH zT?%b>GxWxJ-3w;2Dbn#7^ZV9nC)9oHv#lMJfsM2)sw6&4KQa#eBY=3=TG<{Xyp)Vw znjunvOsa&6k~59F8^fYAC3h+xxEmOGdrKP|lH`o}l33IGIwOPOzbB~u{3$j0_z$7b z!R=mA(X2e0c$&7o<{#M7?xeBwljy*8cB5u8%mpk9AsDD9bol1d;xbzxsY0e-Vg==xCySR{yBi-dMCx|$?sQsJ0cO#l+^bf zI>eF^M&tO~6oUf_Z`lHX+6uNM>gpHCk{z~_!L#;jzE`?9)1@)Pm1Qk zX0AX9A1~yq?v(a|rVE;UAH_Oi4O7n81Fhqudmj0jlxJ(D-=YHcNmtKzP35H5W%K0v-*Q8Hf$rG@HvNQZO34D-kq%66{9J>c*|g=1}H7zT-u zLOr^IAkY82vpF|@+Pb9O$XrfB30N0RDtUCT^d|M#vPw5|&#q9HECU+b(-Kg9R8i`rLd9ZXG3_)I`nc+fwA8CG7FDs~P=`Nuu!YZbfuF;3Nh_}y>{h$=y{W38xu0gS znB7^x*w{WWe6;qD%kO|W#nt2Q%u5wGCler9_q6xJ2bZmT0?``%{{)-8+UjpP#s*WJ49T>287C6%>tMh1#k%NNs6ageA zpd8mP^{)c;kJ4WGlE&#;dz!3tI8@u_jR7}b zQea{V%sN@CeoWLJt9gvQJzr$CDlM2FM{r>0BFhs=y|5j4<``=#ocvf!UElu)(xM6_sJOwO1FZqe}(+wSYAAHiL>v4zvVc1oX1+lBv1> z?R7RAc6a%f-ycjRgMS$YiByMrq)t50MOBZKABWe*meN6lO^5Qb0r>@K`hIXOcp)^0 zkLWS%3lY*N4|4H!?)LVNkuwO*-o3(N@yotY*RVPpl0E5Bwf7|E_T%={^RRIGs1lMQ z4D?`1_}H5y1$1bP+BoO$ede}g$dh&r%wJjbLH`MBtx9-~J~Q>DiTh&k$bsd!V?H%D zS`lQ$xW#NN1nXO8gKYM!JZ%z>yG56SWuzZa4l#QiIBr@)N3tS)Xj7R)B$ln#3V$+a zia)ean+R#FveA-VKHL5qa5rCVgbSmJcI&8beeuiP@EYzc(Nz&rXKkNY#Cu$?xC+c2 z_Xch0-fO4WMPn>y*ahF)XXK=NXVxv-xU}ClwXaeEen05@?PQ)gvIQF&zbeieTDdpj zPIyRc-6!T9rQlF+NT5WvBw?ZypL?RfEu3GQ<_XucV-BleR0z}ne-lX0+V(>T+vTj>fZKmyWw$~ftJQA54Va<_EBmB2{-6tLYv31^|~EDv0j#is{Vo!5B< zx#@4Y_;lv*JvWCF*9-xTw}&d@k$h^%v7&Xa^cg~9uRvF_rcGM|*JPCs*tm3(;qPAJ0@;tR)94JM+p|+WV0kw zza5XgpY4C?6yAWPxCfw(aQAH*3Fj%&fNd}&IeUU&ft+-qc06x?5w^LJvb@stVcgJ8 z8m6NDOkoZs58(xTPwx%dbtFr)>r1pTD^j%bm~kRAA@L@RitM9E^-7T_&be02u0fA8nSmGWaDjsMUV^&f~Dg~t6kK* z@d2ht-~SnLvm&z>%7&caBq`kX0oS4AHLh5Dm%vk3E^r}I# zp~j%;`S6J3?y!`fUIYPsPcT7y7`46iGJwHJDaOLk9Nl(mwZ{&eDEemz|G6-5j^9;) z)=}Uj$zTA_Vb$}P;AA?wHl_9mR@ey}`{G8O8G2F^>1zMl3+KWQ6}ZW;4^0vS-qM(F ziEQly$X!yaAoH-tOL|`020@F!R&fiCskSjV>PDx5MRh2IJ{`x0u<@$)0>1N8G~7$U zAL;m`ME*2J!&^GByCAItRhdq8lS#5vy_10XbWnNR?*(24hUa_Wb6_N&sua}p?)`Sr z?rYT0>8;Ezvd0k{G$~svqi=74`)0?8Qet`V%zk1jhI0b~MbPtL(H;}roc1HmPQCo< zouJ!{S9nl-ZGAafpDd6B6`=W3+>+{uw$;FXmNjaWrb9kNLvKtLwq-D(X7 ze?4_r$HdQ7 zK;^e|^$RVVymz+~J8EDb^mW4R@~E7|q%wW%Xx=?N0!i>0sF0Evdi z33x!3$3*0=`_jr}x0AOLwXG3^48*qzB;yf~1OUL|ScWpd_T8K)%h9EIS;YJxm)1i| zGY_N432+S~i8dahUp$1=p#+6W`u@&-CI~ZrfyqD7B88{2jS=HGufpj(Yp)eRWV3`{I&dhgQf4;c9&ri6MANskmg z57Mn74dCfhS!Y~H~fNBa819TH9D~6Ezd~pih zY2td%gR=RGZ$BmQ<{9q4zmF3TbWcGz8WQh2|%-=F=Zb%iIQAIVBcfubIC;xKugW&h^PgnzHdk zDt&(TLpr?Lu;QktJlHh+ANKb* z$!hOyIL)HVZD}?n_vhoV81;+m@d~~v!@4Suv2HJZpZtlp4w})82^kl;J4u~Uyf_}D zWIu4Xl7Wn4;1I@;7@(Z&Gd+Ln{m*w{mfAcukD3{Ot>_Tc`=gP-3?}HrmcYi@Qj*n; z%e0R!hIHBn=TmNb(^zi34;0**f3)Cta_x^0`xiTfh_Yz0DucAr#eE&eb64yhttT%% zw}{zsQvQY8FN3_C|Ad>5tI_^NAj>uFdHee_SU)v*ADROx;~cH|^v67Qh$1$iC(^yfslCtX>rfC#~ITnYoHB{yM89WJ zKV3jV-iV~7_U<;;kNi^!n_6GeCw7N0GNxmmP(vDc9Avc;Sx3t?=8EKcY$EeIX6p^7 z=j$B)1MpbwfPr2>62q*XyzHkVq2~@mFAp9@!eF73y)h^hAec`YQz1o)SFq+&XbijD z(|NBTBGmdeI=4g5Zs4E#ySDaX!$kUU`3&By%8tRa#EwD+g%0KxqSJL_ny%OGHZ8oi z6x-ENv^=Y~^Ew^Mi_1QnIr(Df-xm-B~rj5bD? zGPOF|O2_pHKvLn>wwgkzweHQFoX~IWM_-f$eJ?5}u9h~z9?M?9DmA?&f5M`e!cDzV zNTH=FD^BPc6aA@)^abP>Oj!tW}1L zZ$S%geN^OgyIxPi79@Ut`}*O1kfx=yT1s zEH7Lx9h*>)!rG3~Adg=01ogCwcH+3G?Z&6dNH?hlW4V$@s4U1lyvt}U5Xxwx8~dl5M67Z5kf@WGxm zo`90|Q|V#r6=f5c{Ws-$QEl#m$?v_TN2}cdfvdZzY3RJ+A>vhVmUK`nhtxxNr<6$ALmk)O@v5gZ@EAm);Eq1Kx!tkiNLsb|Okj|PYn;b8Ju-ZCoh&u@wR_szrLw=v;&Hx-u| zp1E^>GQ5AM)%5-7I!KFAA%9l5`~2an=v|oO=ljIqDjr!C9qV=?A_Ii2e^i zJNa&U?MRX~I!2w%@vJ$Y{}lY7dV+bS)^-%h#)C@a<_^vJ4}kHz@R;gIExzTn;KcCM zW{?KyqK@0P^#jX?jmbBXIk$ViT$NwjWO@y1ml*6>##3M(8-^j3sY&m&_HNSL<^m~E zpBt2%ygnJFQILVWYFB{5Hm7|1DzR^8PydO~-uzIH$-kPWK;J_QtiAG!&3n z@!u)9DcFakl(uR=G~JcA4v^iCb&{=V>yCD8eLyU!m5>5hFl8YCaSKIVi;;FsbC(wX z*ylQNtbM`mS;?$e(a*^J8L&%Giv&PUmjO{KN%gq?ic^5mWD4zmzx5_&h7s%&0#Cf1 zCbs!Z@w(lS8y?SY$BcG5l5Mz{q!$|{Q!<~jvfnFV-tMaNI>Do6(<0GpJWW`5!o%ru zi_B+>DOeNN!({k=`w)~c&9$t&Bb?J`1(%2 zVNc5&S?pFGN_AT1Iqu@MSM4Wr)PG{~E*OFKKqi0}!|C?-^d(;NbdmHh)X$haF*^m@ zm}G6;i3iABCC-bbI$<(Z{{h~~QzP>}FPWY&KqKC4@~x4gYMPbYEXNsdNVF2sC`S7* z3$}~1Cpq?D2J70!D#XZ_veixPZ>sJW1)_W}x9DvA{{AsoHKZETx>fnW)rL9VjrXYZ zNt;1^W-Tt)UAKaMvJ_y>t(8rKA4(lh-r5WLIToYXk;f1HIU}WnAl6^xZW~ZZ^J34*@p2H{K|@ zI}m=(`G%|harQ+wu~iqcJXbIA9xo(~4-)D?{Aoh@<&I_clQZ;2>Ll0~LP9~pKkagA zBzSUP=E_9FZ-r)$)Qo9e^()-0!crRJewJEG4-DKbe|@>k>$!K}mfRhF5*gJYZ|fZOAHOzjh*Jffqv9l^B;}NrR*!*mvQbLOEdJi z-%G=}bF8gq2-!5%h54N)QI;-U6xo}+Oyf56Xwg_g_bdzN81M8u)i8=igUfP(b4RBN zhS6&J`M(NJ2=X(xkNl(5pyIiP_hFMxmY4JMiJ~Zg0=V#x{BYQ<57#zE9z(ajhWs;o zGP^^3AV!yGFT8ln8dVDmgh@*Was5Wg27Zym&~vBwn7Uspqg?x-6Ye)UVdG&CCa^IB zoHr*+f%rC9+^U4ylrPkk3nwQ}F=YLnC8)BN(SCI*`DMwY(`V&fh&Hl4oV;4_PXYCs zvY^>0rKdsLZ;i|)jvl&_fQJ?pbx}oNz#suckY&A$E9Ip9{B#*0xZx#-$oQh2$e6}j z_|e3nMRKUfb%!Fs$WQu=MzXIks`&=D@dRkl+Vh?+bsTohel%d8+9t`ZXY{hZl2LHp zTD)o`H{SA6Z}Dx{W?36-dEy+#rq3G7D@bs~{OMiYp5bw?brV zgg=Jq)iTuWFTp{9$|7l(gI>_~OcyHM-0f1LICl-H@+sXYZgpOFwH1@j zE+~=aM{(w%6~Fz=6O5T5{1YKooKboT`CbrLP2v)PL<(Zic_6H{8Q^Cr^Y6Izk4i%B zfnsMA%}c-0YJZ^~e$69!`skpYSR zRfrui{~-W-C$4-%kKp8Hd{`5g4!VM1F_b6YqeA70 zS0aSgKQ!r|lDyxnM{NZR1h3sHuw(YPBw@m=U}LLg!y;3T4GJm?T45&D?nna~5dai# zj)DBc%j*aXkyY$fqs52(O9Nvk282Qu;I7xnapPle&Dke2e-z1AJ<0y`PFp^`aydhS z;2D-x42BUUyeusOabNGMV+}gn+S$CDl^G;py7xZk9BEAjxLVx(_q%_01OKMDR>1<{ z_RAh)Y@lKtR45v{q}cVov(x|Mzkjq?``k`xC=q%_ zf?+=mYgLON6oMcmq7MQxh!hoFaG`0wyJATuuPelkrdTb5b8?TZX>IfOA01t|v?7{I zHUNMw4)85_#UIFjdmL{a6B(r4Rv$L!F>x_0j(zq*r>OHz*yV_anM?ZvD0Cq}5oMPG zQz5YDdW_Wjw?ahiwGYZcb*qB>)k5E%+Dq{;2tA5PPa2qd@*hCJ71+7+SqD9fH?R&o z_wt-Sxv7zDe#IP{48gM;E}tX(Rq&(lv90?=4u&pVIDB1jcBo6yED&|cV7xLY`<45a z6!xI3$|?p+rG@&1%K9f7q8XN@a{g^TCm>wd`O&GPQlejvT)y|Ekl)CO>--=M#+ltH zU(?c&t057J=WR3cfDIN43t1n-?J0I|E=kBUdJzclkD;p0#(8qwJ&t*~t(MYb8`^0G*wLFwM9FGzWAM$n$;I4a1sq~UKS3!a@B66pu zO}W?M8O1Fd-5a4#mSG-H7R-%Mc6J-WK5D4}Y=+9%f;VJJBr98)6_PnqBwP~_5(u$b zVxedj+jotfhR}!kub*rA3RMTsy|bL8Eycd~F5Q|84j)9J?8RE)5N3H_;j^r0N0-AR zF=_{PIynf$&9)SiP?*6DD)VWG$)wb}>ji{$Lu;BgNQ&ORVJHa+4{vt{Dcy_yl#>J3 zrrJT)6|`f@rER>$-@%fzrVLwKpO%G59S>4sftz#ZZ3&QhBMF~Fb?7K!WJjtesz zDmZo`?rojYAdg@Q>{Em0@i9U(GLTJHmGYQx;>6jKK z)dYeXr^l_%+CwqRZZ>SaJ$=mKI8*xm6=rN5Kvbtk1$2d3-&oskXR#^GeLi{Ql`a zrS={c!+a5po$x3g1)Tz(4F&IA2(Y65&U8-c+BCrQk0*d+{qgGz9SBL#wn?~E^kCsv z{TQuG$*;1=4#RY!ZVEN;+d2>8XLgBj;yHACXw-v4p2j+5JwK}%1c;Er*O$GP7#pgg zeR3WN|X9U>A8J*W2ny3o&N>u>>2P1j&Hn|>}RN2fVSx}R!pD}}ybD)WA`Z>cN zc?E)0b33%v&`uyf6x#0Zxp(@4FuQ#2mkS< z?V4(v7-42nHt!l3i%Q;ta~^UG@d>5U3hyTJgc7{+?Gp%=cL-$B>GsC;mr^M zCj1>{jF`4hje*^dR5ZUZsCR!MWk3jCe5vYyZ)x@397u!&J0`DVdm=$6Z8s)iHm5K> zTB+Vbz6Cw}fv3hEBrV^cdNl<>1b!|1!c3&J$8{G?<@W-yvY0fEnjpy|CXCSf+SXEb0@mE5%(r&e|}dqY`Ib)o_x-LnGJXd zy~z(19a}F{-wz0Jcr77wY^UH%*}m+iEPXf3zAbYw(I%Snq6Jb9QM}65X`VmXwEB_O zLllV@Ja7Tv5SONA0KnuN6{w?N3hC`|9+d{Oxr+^Y)H8QKO4DnOphI zQ(1r5phOZ%=runp8SS;I<8Q(}x+PuiFYhJ7V=uMr-~5n%YSnr4r(~r+DZkF|+2LDx z$D>QX(sR<5!o0W*hGj`1)Q9M69h!oDYkK`CXxe`OE8~fXO)D0KX)T&y1AN*$oD*G z%!ZAvT6n71L7>o%;8*g|irAZ{V=%e1S6A0JXs*~cPsfygQet9?tREI_wYYzUH{nl* z0L@hqro>W;RTwNm=$*T(@RqLBS#+e-`ZeuqOLckT7VdnzzwAtRni-&wL<>Hq>=BJ! zbL{XO%`cMHCK_~G*7FU758~St``cmU+G1Zh)7vZk_cX?0&ZnDwPw? zxGFS-EG{X^(`9qvz<+WhE*}6fM7xmty2GO>52W2fC7UQAGm0TIr4he8g~XlT%%pju zi{Yz^H(2J2-*>>=$1lLl(`<~9sSr9rb|OT_$tXA!`$fUzxgU0@%Lu2tFA6*Ze1jq; zCPYV@7_4E^6vZ#e@ZH|L@@u>qQQsRg)%KEE-rrm?@371M=wgibGECJoYyY;puO0RF z>1?`feAX-D)q?;B+Cme|`kdkevnMe*Fnf#b1il2w5YEl@+3uREV%5h{1+0o-4IX(g z;|qVo=k^tS-Xqryce0GZuxD*nK@S(5I~DozTdynMi4 z;3|@v@@p8eTze=CIMq$d>d}%;%-!t#XF+|JpQXNW!(r;n{$tDxnB4fRF)@ZV@ogyb zEZWi)Yq{8UI*|DZ%pE%M2Bovup5)2+}Agx4SdOv)wIE9u% zEjpz&`pJ2J5INokcwQUvD-mwi3<+}Jp4eNgQBe3nTp`!(e)@R{K8wQS8s_ct6u~S! zz)=Y!ZbM;9%zs-VXYjm$idv(fc?%+=sW#oN%TZ8-3&4&XFEQNsY8dk!nHA<$c;s9h z*Vt0~lEEerx3(+8V1E}P3xD(GMQpsj@}CQLew*_BXu1*oYVLq9Y9KK1gll-`mq#Yq zqcBgrJ$Rv^)O5$9K#6F0&H7()G|!U>K3y~Gz>@U7w$3Xq#mrs&TYhwe!4&{fO1AuV z$+voW?#f<~P6Ue~|5j3X5-&ZJXKl6nET1{zcNT22n1SKIjJOf$ImDc3H80zcR+9Ck zCnHrra_tiB&^ClIp-b?J+#!?^u#MmqKAN7zh`xBidHIO=I$h;Oof-m~V&(w^AovD- z$n%%ImKQ(Iu3#8>u5R*j{DG$eLpXiaRE-j?NIw*$a5^AVg&FiZ@4 zl9lxBm%U>_oiuw_<~|)ls`C|ZWj%Y9(3E5`^M}em!?U?;h+65oQs>c^CJ9XIOWSi> zSttlo77RQr!N);VdWtkd^#5C9iC56qnN<{5N z`hzUcUBVVbP(qpZaCq(0eZ`;e{O#zt&yYqWJ3IGh+8&C>!fW{4c%577oaF!(hk^>g z)aXSC0yn6rY}*)b8O%1OnMKY-U&8MrgX6MvokEV=OY0aQy+Q}Q1bGgfzwb=xvDMRL z{(oQsAvWpf$xjQnFW(=$pTEqZv9CFfS;!o?Ihs99IH&qa!OrH(;d93t*GqzgIZ1oe zx3ZfkX0s!g?blgqq4A?{6h)k9(_1UuxbODhr69)C!6c|xuh{MKJUjC-c^oMvp+`3M z{;G`ZGx5TvnvV-L(O4YiC!MfE4{-ET*Lk(lG8|eq#8j42D&JkZ%~er3V`vQ#7XHpk zBfG_xn7=66ER*Sc$!$2Ny(DtG5{nDKNYjHph{11r--=(6{)9iq&Cu|D4-@$@2-fDH zyt|X#mKx^m?W|Mr2Ci;EGMbg0H_@2j6SI{*9e>d!-T8LUW~VoGlOYF!Tq?>~=Wc7= z!9)sumz7K=+Zspb2W2Y0O6^bqDPEG|=FO}$l4`IHk<~Qc5*$tg5E3GIR zYs@r5hB}^o{BhQMiR>vYgK3zM<9pW@p}JPu-4hv>pA64Y&|$=Ej<|({`Id~GHEdEd zg+Ev+Hmj5A%D~(o!R|5C1&qE}s!?37J(;MPK|rwF#ICxW_YUm7zxt!#eAk8qahoX_ zns*l*u5!*g_JiB2SHT1IMre`AO|j!en^jD59k=?}U;m^FWlaY|zbh$5a(?w%x^JxF zCW^!MqSHgkH?H1`u^q`C@oPFC{p&x#rDaN2%WQD^%5?8zsH6uITP9v zm~j)R8q>yoG?IS$QhK)?KoStQMqVUl^ChM7YNXJwq>oKM+3e~(+XdUCzIU7DqEXg- zoqC-kF1zji2Xk-3y@n=NpM+3Yr*|53UYGz$cs2k+iczM0V0Jhla^=pSH{Rb?1>u&c zD;jt1y8Su4E7mjha&um3|3bpKyL&;k3j`Z862TLaaGGU&@su191>S+}_icT1Mzxq^Sv{sX02!fhEaOPV!#4Wtm$KW9u{wXuyHcE){R?0=9; z%9A@A0SrTZE52VKzkCvSfbFDq8#PrbQD+m`ZKwNwikFKWSgrLJpOW`=zqO9{PrDce zk*yVtHvtofBCYHr_Zw-t=QnXiCeN=|bh8XScNKERy}6v{>z_KFr&^ZRm5yoiyqIr! z!~gryUo8dK`a}xUjm7OpG*h}$b&S*;n@}P^EX>+Jab^c?56+YF_fg9wLQ^7yhgB0? z7w!VSnoRz#!QB^%ee*cFU5;x{zZ?N!kj(<|N>&D+`EL1O_;*WY$I!DBsu(DNS2o5X zdr4ORwE2GV`oY*kDJ;3K+<$1OUtpKVYNbwvO;wmjl_^o(v5}x*9&jjsbhFfNlx`(R z1&H-q_#mZ5@U&S;csE?Vw)d7l=8$#;KR)Qkd)R-qt(&pmQ@ls~SUBZXjJw}J#>?fQ=4=?L| zV_{W?Hoc4AI`a8vG--{}9PIQ{?HEhU;ZjpYt&=$idZD5fZ;{y|1YncArCZb#cx+im zUm05IH;dqI)TZ41m4Jk~n6Y+>YY$|8kLHQ0fajU9bSpe`=%OXNc9C&KNI;6v#JOh4 zPL5&6OjPeW?S}&}BHK0M*lI?K9FUtCaGszCY#WuD0bdc2H)cc)hugX>QU5)42&uM! zrtr&VFiLf%{Txj9eryHfP^6aDT0`-&2XDq3n--&ETkmv-Jxfk5tz*SPK+sLCJ(rPG zYEh5)xwY)V6CAzS*Rh$8=Zo4v>V7F>cB0(c5_LRn)UnkXUI(76oi@@AqTW_L8wJUq z=tGiy*$Wx9Mj4-9k3aBH9O_1NwlRT*?Q#o0RJ)LM+{8rg1bq4X$n1;SfIcAX>(QEo z65ROFAQ*l%{G>^|kIprjs@t6Js7+}^WPqDq=@$Mh{@nD3CcY?HWanKQcx25(mX|%~ zUTX|nYaMpg{MB908cK}>q(p%ryfj&j`&V1Elr+f$sIoVY)Cft& z!Hd{=e0zA;M7ZVwrvB9DPu$=8Q;z}!57pY2J8XTHV{=n^DsGSMsmW$6tho$-u#Nh7IHq^A_-Dxl z7Z*bTdK>oEU)x_vj!m;WKbznMMkKr-E7@5HlK$+qpN)5ijZ-D0@X?^X@5NKa!=<^c z{38iv&SA}*zeAB)uOKlZJHl*Bn~6{6PwJx-rN$Io4@uI@CZclx0pz=V2H4}-O`dzQ z_)geo!P7ssH7fP>=LueLz9z}9rV`R+zvuiR>(h*uChei67i`#GR|E6409 z2PxCe*6Osf-~vR^^ol~@Q4$``3ygpEjoRxzn*y@Etq^Lvyl>A*OfFnvP?wD133oeD z)(MC@sWd@h_*4uCB9I~``s%P*qx%V6-$HIB-X{(iKzKSZ-s(jJV3{PhkHYxtM^;W% zx<5&ekxetg46Y?|C-*1oa?23V5QtY_7I(ONerdzY?uR@gp!-COF#+raB>?g81isO% zl2(GgB2^Ua&<14YJ%B+OQP84M^$akC$z@@osdcJsXWY7239Md@;>Z)Qvf3Ez6-N)q zTj}PBM$#r`yI;6Br-?^ai*acM@BUN>sgbRO(dERvYmjYG&F@y0N7-SH$FIT?mmHW~ zQ8}r9AZ2XCFxBCcJ)?pQXzO?}nj>?Q9f?NY@ApV#S(gO%?ba1IPL(C?k{VTV6=e(< zjOG~r7z(iN@TKbd-@Ts&k|`RM=&dJ{7go?1fOWnhAC>JJ0lLjwl#wu`KlM?%trCVt zv&B>k7WP~G`f?8h$s!m?NjClkjpN23VcueKa<_dlOT3fuWnpfEJ+ZFvhGQ&l~!1L217 zT0#3Z7*K-aq8|vHEg71ze(UJ^qvQ`4OizYC2)%u$*4DN87z<=HoRgg~E~(W^PU==? zS}l988O#(yuazu0GF77fVCD7TJS-|&>lq6g3-yuy0}31glZv00{sT06@epKKZQ_Q{ zxn$DT`RPlvn5YA~cmt-B0Njq4pwH*G9`)w@&QfN-jy!a+bF>sAQp>Jk40vIxvO({8 zkbNou85w#$%6Lt;TNws(tEg1cMyjcChOo)1nBDFZy`Q?#J=3rhK`l-3mqr{Bkw`Vp zr0!HHF=+8OaqjzyZNG!Bdc?=^XGklcEUfw7uvTP+yTydsRWBcmWG+38D7OAIK4AZq zog(5}K&FZKOrPfUl&g*rH|QJ_2zTD1#`+EJj|-EMz*#o0 z`8e!;k@xkugm;TTioaq0EfxEF=dPYLzR(_si&nyE9z+iRg*om>0`E$_TYaHltYdIx z`K*#{sMdDt)wADmrae0KANO10{y1M>t_|v9|EI9lx2xWjKK9OSor|OQr=XJsI zb4&G_n?~S(=Ghlq<9p=E4S8F;dPnaYNu+U~fEkfs>$ioLbj>?3sU@Fi|3ocB2cs@c{4U0;=uXKT;e20k~GU~)@3@72s88$Y!Eojx{vjCO_T5Ny=5#kA*~F1#d?V}f5A0N)e^ zeY&;$RR6hvDkrm$_d1b*_9623pW4G-jOP`GsRvVK=cZcQKdQQ@&3;POwA<-mlXxa! z$ZDl9qHFz|8?7N26d`il2v^jP&l_d-gd|33{mJ_e;DkOif9P|=kodQ21))Rjq|jLh zMZgF(dCj+B1O9%nc}?G$pDRp@Hy$c`Ox&l}h<4rKUZJb=3%&9X}~K#p$;Z z^;ENmp^hWzm(P816;q`7oHExAn#?vm%WWms-s|Qf311`@EhBB!;I-u~?}TQHqc-0w zhxvvFrG&D+wDK@MZ3x@mdOdy8>KPh4cK7;!0M%mc#jxYUg9oCRC4?OUpWI9TA)#NP zX6iCe%u+9gZg=dbBGEYqEWjej2_WZD@YHIG@2wDbZ%1qS!`I%I-O%VXfT+dxsMu{l zsN2x^qR&T78yecm+bdN~-`idF{haRY>tL*o=|NpvYvjYn9_6a1jHEIf4+2SU z0>qTS6KkUO;hK_GP{qMRr$z-sHyw~8-TJHW$PcV{>~znI=iQ(LcXykN0Sx4JOf<-z zn9J%gw|&Uaw1E0pVHKLAg}5(ps*sJ@;%OS^F?tBL2sga;%4D;=4L2fkO+sgE2?6>D6jJXorm;UJT;uPCL{b>Y~+jn=Ib%1xrr5RJn`t{gi!)qcstHc z*Rq24-hUy+C$DfsNQ;$zP|S3O=Ql3kw!H ziQG^tGp2TpakXY?j`%jI*jb%qt}26G{a*1#tg`L-Gzqdaw{}$KG#w@4^(A(6of}d- zAfu%v%O^B-sP4b8L38YBx7VdpjGJ#S8zWd))p-*}So}?uk!{%FG3IZ%%*+5%9}l`a z6*9K<)H3|MQ`6;fkv_!=mSt4w*GB_$MN;p5nkY5xVM}0|H+nf5CQTQ<|Bs^c@TdCw z`}&b?M=v@T|0&Bot;g#E;6FX_jiB) z!g+ko=e)=3^?Z@gF@j+N5C06&wavN}L)zk|er7k@trLyt9;D)#9~zrFitc|JsKbpizCL z{Qe*6>KL?c^1{Q9u1@ zN3r0A+W70IoPK?e;aZ0B# z)OUeAoVU|sjS$70RS0J6k76=qg-^;z9AcF2pKrAndB0GZMzb*munHVxBRJ!8XbHXe;n|3fuyp#>p0{z;IbuCu+{%>7l=IMBAGl4B7Q8O_}a_zoswX3U` zv#=nnXZa7PE=YsaGZO{fZA0b5(_=CYO?2*AUbC@w*K2rJ&F;A8vL9hEEiYdqYYXxYhT!Oyc{zqK;{o(2wQm{HFIiX^k;6R+OxnR|8_M)-= zO@uE3*s4kqs9b!uwvKkt{&>}rYcYNKxi9~e+P5Y`z|466=1SP)SN3;zbR|yjem{>S zDCmC}LOXz5D0#KnWo;HqGq$T-xD~XdD;nJhROXbzXb@+VwVJi~agX>&sS6f9Gsv1G zoTSgZ9`r!A@$1jxsnz^3Ns>}**Kj+Yy9WkoaK>g>xvcGTMsha$?=7aVUFictxY!v2 zG&KV&5^c1e746TOrldFh2N-4<8iD+AMDklLv|8dzd)yZ1`5@TLSt4~R zKZPv$fHm0vs(Jf%e0VtjA2zu$q$o8!S-RxoQyH$ml)0@ zZw>_Yz|tsIwrSO|IY6FZ!{y>iDO=q7q9y+X`zIoa;~4Nl?!R%xg*xBMdf*qP zR}ms^^Pd4g8fu`LC4)fiS$swuE#lFLVEa$$DPBb$L>V^4b$F z~k?4lXw+Hx0(oA^1k8TYZfdCp54iiSa=b(jxOhl}KH7B5obqe@JkTKoV$MaxfAA zVgV$Y_$)Iz8Q*98#s9+hN14zIm)i^Vnnm{6I;5NMuVEx-p{m_6bY7p3B8JO1qmu4W zq=b-59u8D4JvVqgY24-paxffR*!2ug2Xz9o-2rl=)=!?Dyn5+6rlB}HT`0Jzp8afL zN&Mvr!z;I$9JP^wU;q$79iLLT_K$uXTQV^J>Ess_>!egej4CA%kJq#%m*+XF#?}}+ z-6i;?AEUJdD*gy%84=oU!u5}rZi4_3Fw6f_3j||96rnE_D@bc^mpbE5rf#VfwX;dm|n5?a2JD{YkC?{M~2eX)n`kZy-jKs;sm~>yvxzb@;Sij zvz#rI9p@N>a@x=ZqLj*scrdesQ{>ep>3(I)7+%PkEx4G@F9vEgjMTHe4~LGk7(N~S zHk(KSpzG_|zN+CqnRmnbsa63<9D9;f4{S#z^64{jMig{1L|4CV?pDeOrU^fQi38o~ za18v#ODfA<--=e`N(h^+%9xv5r>sm67XD2!i8kY5Z;A`JV;hGq0Mcs<5k zw7WEB)|s8hH>dE5gcpd>EV6eXS5r_))6<;^5QTMWr&ziHzXc=sH?OPjAh_ow(gOa$N>G^;tFK>OS5BLMasV^3M~*91u;vu z>zNwSm~;ia9ZRtwO9Bd?jmQl*9K}a@5#cG%ElSoy8%yt>e^`ybiN=6Ie3Hy~EtmG9 zW$BSt7pcB`^D6r0e(#$eBOodm34L}75cniipxNWhBdxO@13ev4sw{C^liFLpg`K~| zXt)lVgQZLKRSwA= zX2Fm7*xcOK*lg@uGU5Vwg;rL$IT4ObA{1qh(nx)&m^0gd_9|McF)T*qswkhmtU)@i z?m}(Z76v3GdhE&0-ZD^>bR8s(t`3vTvtD>l%l{s`V-=hVpJBu2MCj!$;qxU=SrmR@ zcE;d2YCT%~=Mfz$G(eUlB{yI~|ExoK>sC^E%HpmOCEgpP$y4H0NNUm-VqieE9S(_BRRuue0+!0*-SN| zUvonaNSFfI=vV;tVDs9<=B1HA-}~ zF+wpMe`a%i3%{P1PS?ERRN*4U)!lWk(wW-o zlLDb96=d9_x_o0SzJ5pFiXbMR@V7g@tl{l56t!@}WAu~2P`yw{y#H8(7rn1ZR*_=l zZNFC!^)?zgUD?pJ)&iDHb_n2+>g*GjwaZ&M4U;uh*lY5E2H2#%2hXQ;&1)!3O^nJF z#6<1=x}5o)R=^+sjE2_o!nZT`&1}O7)Vay2$%GQe;JsX(WfK2H+3|^pgQn~UQ+}u% zM@BkF#`Svs%xSSn^Os1i1;YWu?!d>ch2sM}XEs_l%j`B8Ov<*ah!cC+B0>NhP({&pm7njU1F+-pO{8W5T{Gn$9tzSMjxfZxc58{K1f|G;E zAlx6h5PuAxeyu#LmzRI(xQx1A@BW$b5o^uzLUIw*jTUxxTMVEihZhGUs{J0de7k3E znv63Kgj&CV0J}NXb@naVQzq{i7X2ms6Ml{<8G$<90FNHdSl8ZvH$p1oPM@S=xZuDt zJBn~}`yIa4I>P3k*In_(16SXJmUccG49$}N0<#_RqJ&+9f^G6)@L#|Jo3h;s%6w4WF{~Y_J zDva-Iv?$E;ak}E8Rq$omVTs%d>$L+>FCS?1Frdtz=3T`9(P~{jtGK>%lVLT5PXYu8 znPgG*c)L${5Uzp=>}d|2FNDA#EaKrf04X{n%)H*&W&ZR3P5F}8=>eFVGGd-qc^`<9 z9gYRq7aqO-bU!Ra9<_`q!ROb%Cj)YT>4x$0C(-21^0DyFz&P=)jimD-X(>o$YZ`Ih z_+@ai3X)b?4_FEs5TNNu?~{7FRTOzDCH%b)ezWNCp(#rN??ehXMgbu}C8jxSkX143 za^RW3k8~rzNf4o%XkAwXF;u;jndeXClHU0%I2QN7sIge5#62|HSQu9b&^)37_qv(S z{q?V~MbiuPdvT-E9%wMWg+0f!)jTN5>naXKbbyN(AjsGe4^2n(tsXiRqTz9-8A-RD z8bXUF+ql;i1@0RfCjgsX6~fxh5G@#}EwnfVD-5>53b1Fyf0s1*+tp}3SKasIH76x( zsTm34GvE>yS5ozOmZufUvaYI8qD`yQ5|(d#qr?l>_-V+?i~zt=Z6pzA5Mu%&$!{LF zw0=STn=`9tL)+qAUHvzH{hci{UAU6US$IF)E$6m*i%AXvGfhweZr3R7Q=7Loeq*oy zbIa^otzV2QI|L>Hdi3(I5!yA(|77HK^f#Mg_Mo(555Xq}?_k=+?%|CW{O-xgm8v*N z2)PGW(%joIhE`J6pA1|5hXs}VK_6v2Xh#qa+LBM4dh^zyHH^L)j=h?Nh_Tg?8PnGAfEdD2=)WtD~c2hayYMtmBNbgdNrl&xLh0vQl*wQ-DIUPiB0Za zi$pUEn+Uk(+868|n(j0|y>`@R$Ckuq=q{4HJPwyL-mxQP1jn_U9fs_RA&F9m?Fn}) z?X1=KckP}E?{Ce1>ZCQIhs9hfPEWl$jl#I;MR*mwEZtDQm_wNVsylmX;c+#6oEZ+J z3GsN8f+$^Cn4A0J^TvJQrWQEuxu-K4q4aN5At~g!!o|XG(kmD}GMyGRK}=1eRk1iB z=V=YYSBB2}yKICCUNsbziP*OEat%xbZ&>2Hj_@}o;F--R?{`7UOrSKkhF znvm9DMh}TWh^c}9e`s0)Eh^!QE$WlYcmB2d8X1}zPcO8MFB!@x1}?b2xwe*|ZpBmj ze}q<47#_g0U4Gxy-pX}2E`kftz;wl)1oA8hb1d4_WfC9Rf0mdD`bp{jcWYIQ`9 zn)N*T_=V9o;t@+KtMlJykM}H^0dNQXV8W5@NpMh)-y7oNj?esR<(u14RmAK`#nj2o z+TbXrRc&+bT^fP+CS=*pY^sQU);yW(0D>I;=yix&6R?; zQBPHEJGtuI(lU+{!U;j{=g%$ziWcYnD76_SmRvuFGp6e)`AYTs9-;!C{8GrYNfT=J z6M8kf$zfD<8?epFby`z*VBX|@;t^|Z)`~%$WWa!`YHPc>b&zRpyGf1D8Zm7R)>}8{ zGtH_f!-1U}F&s(p4NU!YgZp7Zr%bU9J`a`Zophg~A8WPN-Yhk-dK{hs=+?Qt9WO$m z|H-0rS=2CJXH^f<=P^DzAs-c`sIZo!XLQG+*`HX8HFN1|D28`C3+q8jJafyb=(=f7 zEFNnfEfr@u*l1hH=v|I%RA9xFAp@)1VP@);JzUuW|NaAX1u|AtWo;)76M9)TJDyI~ z@q0e;ntxJZSm`(19Ny%7)M}n6OfeC1;34~?=HtPgm+)R9F}aZ~zv#Z3E-;wCtlJi~ zVIW;|aC#Z}4D*nSvcN$F$5x!2&7liE3Tm~rZXA%aTXS`P;b(X8({uKQFumi=!Np|s zd6_~owO$BNGiG--=D~f@nkxFQPOpYr>zmDf!d%fT66-X4NZm09icjMcf&1I$tyWsa zDffyko5@*8 zA07(c)!yza`7*TuZva}DT`8#jSabP0DiL){SQ*pV9pDk~KfOPKz``q1fJB#~Md#;h zU0-N&qi%C+xyWvgM7ys~^h9RB{T%L6B^TikNnGi2q_gd>bV^`;PHl#Mcb_V<8?sPr z^HKtkxI3JXSlvI=?Opgc^Aj}gu8z&>8TBFC-{%fBiv>8Gg^A&J{Z#=3GdQvDv-p?C zG{#9|N9&8Q16+Dy49}~JK0iVZM^njNZ8iNw zXSF)y522USMKI?{)NbTrsE)oNcIt@JEJ4q&9@bGS3TPQleSFgKQi4rh3ERGs@aE8Q ziLu`p?|AAFz~n!Gel`;gw}&~mcGe?)yzy&zY5nxS@kVF35JdJvm%*-3c6g}AIE7-i zXW1MY6Mjqa!#O3C%t2Ta$4@~3AP;;q<9Aaz>M)}4MaP9P^Z+=g_7NE?WFy#Df=a}9 zSNd?Fu_8dgaCsLUI4x-X+MRC8-{`@zY(=Z)vajjeLP=!1ty6-Dlc6>|%at1gFX*T3 zdUI15IG`ihE7$QWGI^ot7K6#W{K!YN36D*Ljg?W+K|CsPOm^eW&l*LkU$(9HnD$47 zHHyzz)?@L8=wip17zx$4Z@0gSM!=;*q<1iEp|}Q!i{4_Fm_|yT2d{VSx-)E=7*(=561ed~R?8$Xy5?Br-B%KyE|6UeC zzalE)eBt%MoUVXw^a2TeJXI(eBgemaT-H$W;`vUh_pK*+!gEP>EC_gLkg5oa7|E^k zXI6by9BuJkBxpX(@t?NFS5x$vl2v4e`%?QxbKtZMbuJ=3n=7vhO%e-n`8m1WprnO_ z0KIYk;(!dsA@ZnvJ8BBDsOvqkK1`&4Wy;KpE2k*)7Iqw1?%+1QN zAOTQD=FU=`!B-u#pOTw>#gYU~CP?%E7_q0N_ex8vu{Nx6L&9*wA74an=_c6`U&v)w z+nq`naqB4)7=81!-75{7<)z`|9y&9r&90KKjl@Ijzi1l#6ExB){(8SL+7EhvtxIh! z1C}l)N8M8O&rH){ymqrb`$LnIw0OCdmaV89Dn_zsrf&;~&ly>)#u;5nEtFtaoE3lb z55|NGPvf@X8<;E|&caRy6s+VUdp3e$VQ<;Ph1Z zIBZz>DUQvD64i+Z+XdL=Hz1@T%L}!lnLe%%7c_|g$*ps$R8bJ*@}-p7Jv4NkdrQRLYN1i4XI|*L8EYVOe115!nPgXz zxu#X0np`7Jr5ZuU=!Tc806+4yu)6np=kjPvE`SV~2%ukQ zK`MbYy|xMhM%~_d0&3tGZWOPuu#v9cIq4&QkZNWa|FS(x_YMzst<6tdi2<33GPI{hyidrJ^1J3RAH!R+1}x9JECw%^&_ zuj=Kg8>oml;@hhHD!p1kOLPadFC?d%COwg33!w>bTXGn(fYrQh_M=s~qjHr-THi&> zvR)@iPzx4!@4jlz@_fdBu12@Rb0Q+5|)_tVn{dV$x44}C{Fz_`W3U$V$ z2Idjgx$`nJWiYc@K48!Cfqn@l4>b=)as(quvxGi@f*GvIrx`eD_x}YK#cft@Iw7F0 z2v%q2Sg&+UyS7w$=lBBQu_dP84HW`ppdjTSepe!?=>Cztp8URIW#w>u$4|Or;@IlQ zFm)!c_>sq(m(M@Vv7}D1bL#sS6_pgMMkq^;8!Qwd z*~k?G(osPA*R=#AS}yROm)y7izG8v(eJS-EYBQR_Oh_sG*!=m?CD~6iinc&C1;rog zijns!8^bSM-towEWcnZ=I!_Q*ub_<(a)B@dw#fm2S;_Ujm6mUFXo?u`AG!{ao14I9 zT6W2Fpol~Cj}MgCmvO5rQrb z%9}@dUnKry=MHasQP@pqrO`IFv{|$vDlD%GN0g&;zEcGIQWH27_cPbM%-#iPv_*NF zMf?oqLW|i#K*B8Y_EeIY`%+Dn_p8l~Efv!ySh75e01JY^(83FMWVCR%hw4{`SF;5@w*}Zp$YJ68jVD zVE%zzo0^b_^P{r8^I<#EMe%%jqB`4s?w-&`4}xO81d^GS+y-Y8>|51X{rZuvTW=O! z0ql6~<}yZ~j0q_~#)V>0^Y8I|%`q{DCEoIR^`OnRGK~{M3Z5}sYO}<#Nt0^>gUZkG zUT=bnX<8gTmifO`2P)Z@)R)X#{F_bR!+$3kx^XH#niRoQHq;bSM%o6)JaqCU%WW`W z_0;rLq@FIAk}R~0kIoiEvcC0A|9Os@7shAnmRno>=^jlLx2j4Cw^)co|VF!Jdx z1g(q%@wp-%=_KwtKM&|O#Z-+KT?L?&VJ`VO*ZDq{6yg$ck}-+qOVjU0_fmgrmDvrz zTzDf9F9?S*5psfHy3hhX;OWl?HyTg91IOW&)i)~08iVzjiedZ$sx(YMb;QWMc=>M& zT;KFA@)G-&UuG8GB4tJY>oS}(&3P*5xPik+_ba$6#DfyqpX(ldrJZ~A^8mL}K-o2Z z0w7f$O6HnOs?nWtM6U(5XOgc<=UY#n9KRnF<%SBG=n2o$gy(06O+qd)bzZA;DoYWK z^P#wuGRp%62(n)cB~C7=I3qD~&%yDJY_X#8n%1$0>4(fX8KmXTPm@KtcFlyVcUF$1 z;@Sfo8%xH)y_XxcMhq~XT|QYbHM9(1P1#olp^9&#!9j;97 z2eIcG@yx7FEM79M-bmBkABAp{Tfm`c5#ckkP}z>?Eyn;mQ7qhhasRVR9ewH~42lQf zH8+ramcKjKOQvNYv+HgnPd=M$zn%D`Sv#NU{|$*Ir&*xpI^AW_?6JG>N|6exSZ@K0KruwCM)NU}(?$>f0%vY|!6oLW z`_!|aV*g6)KD0ZdkN^NOV!{&t|Z`a!Z}1QLa!8>1D}**=v)?=dERSF zkT>^=6#h$Z{Xn=3Unu%h9t1)ocC0N=|DFpJxV;lN%)BXV&@cUh(Auc){Zq|5qf>%){DaRM@1OqDDOGFiZcpd!j{{oIQ?ht?r!@Wp z0Ee_;3z1VfW93L{KT1Ik0L5fcfd0+2rlCnJG10*tAN8rbSj3nCGFG7K%E;*}emisV zS%l?MwAJ^Q`PB4-DJ&|}qqZ@ETsqGhMg^`9zK%IGJ?VO@lUiR*Zi!0hro#(>S#w1) z9tzFg+uT#UNHb`twx_kkOKH@ZZ}#U3{2C-l; zlT7j~b#&~Z26`N-rBdH`+MkISSy-dcoB*9xZ;!_elQL& zh%_%kiT4O;qg_5cQ>=e?8Ozzmc?Qp_QVQ`5YjT3tS~IXn$D9l1r8w+A6mr~kYIF^R zPwJAvA-n(v8Zb}YaO`xJmI?`OH=i(kWo@rM&XHr+Bzy`1{NM~e>zBKzeMA+fzqA>*&~oV%*3C&EhSagoX$3KM9I{{hwO zU>(!NqpGd1x5T^1`qxb?y zd;3X*#9GS;RV4lO#+C3mJdAurIr|cq-vFm*1B1 z#gRw2_SaU?gKg2zch%~jr!Qzjl^<#=_Sg$BP+9V9%*I_r3~BNFX?(C6nT2N~d*r7i zTP3o>XxwbtB-4aslxCZZ2>1^W8>1T!CgT>LZ~4Ns8`^W}ZR&TwD4|!i7x~9CJ?W%6 zH`n-BgDCA@`EAbt1==r$o&zaQ@wQ|?9V-rHS{zg($bh2?Q#!?n6(KB0Gq@-{bIhQA zqJf-BY5!X+-|b)OQ@F()ns5G%nb31}~+HLalG!mkRT~H(2EQ&tZWdWhdfdX{yQzu=YjqQp| zXH8}>%3(_YNCkY^4++HfCk7|<#1G7kLFZ(C68iUU^5tv--o0sH@^){0Ti4jqPV2`z zsoC$RC!eJtc}2n91uE_&O<12|PY`3_p7Xw`&8-vE@1r^uP2;nJBDn ziEWzA6ok*}V{|k4%yS#$OwjvUl&COu>CIj+>q5Kj-nr(yNg9_IeF5Q>pe2_8>b#Qv zRgY2JpXkPqenn-pl$ayfsb%no{ETcCK#!kcjE`GD;L63v(ia+jlqkPE1kNWEu)<0W zyo;-rD-qb`?15^1O!}99@%M*uJ1>-;&)lVf7XsCSpAK0X$a7FBSR=L^ z=^tx&5+>6$%QzHhwJ|E;G#h8KVauOOroDXbc{WfTJdmjxr#>*7ocTGBz7aiqIUBn7 zcaqWZ{sKSBCGuv17>rCS1AwOmiO(oiKvRtxB^e4!ETrMtm0PD8MxJdY4|&hTPRev? zXv15Rf4Ch^#nZ^Gw<_FyIQiW1(&a1P^~#VV8_KP>`|O9S1a(upty0CO>C0F!w0Gt` zz+7lknITf{Zb^gFoa3@rnfuY-+g>A8MgD3NMcHqN>2G5*B<}x%@@(fM?B1t;b4BX& z4sOg}HpN{@mch$r#!H6EmRV>M)--*Bco8F>h^lBr|2$Ow`_8S zKdrK$m>b2W#YFIA<&L^^_r6~sZ^a_uFOnFZ%%c&|Y{gfyH}OcaCMC2SF* zo~J6MQQGV^W8ECGr$0n^6*m)JZ=QvbX+iQ?fXlURVWTXLH=gQt`iN=}T9c z!-)OaZsQ*M_qiO2Y1LRGbaf7(~d@FmG92O$ATGTFYVfH!<*KwEvNI8O^g<6kYL4MtEH~Di)as9s2 z0xt?!)a{Y^BliiUQ2q78kL2sm>?Y-dx+e6Q)KB7!p2f1%aLFu_1ZJM6P3ms#TDIvHCg;`Yq?jc+pe zr+yM8xK~?DM;VcAXt23C()M;4XF@Atf&!BPN_}GgNgB+5cIYvyIxU04d0!iggCHP| zj%=IsD$9uviQ7ZFFH3%#UUr-vcGWixax*}!2(ma_0VEou48Tzj9q@fj`x~(oZBfov zzc=KEfMINXIv}iLlhGBo7@A68!uMg_gw?Z_P$;B?znUy}<9CJAFAl@(=*GoWl^Da7 zo~iWPeJe_JX6o=0^#}evALq4RQ)d$X)tO?7B7o_CVyBlR&hAy>lEbA{kYYg+Nwb7& zgYce~aCt_#>NL$pTfzUB`75r^%m<1I45qs}b}RpjN{k6y3WvE%bMsZ;aw5nJNG z%Yo__w*tA}3HvuzE?{S*$oEygixvG)1X-EqpQwgmK(tnais;?DUsJ4dm8fV1GhRcHZwCbv_7k#q!>R+ySr zLEVArO|rgCA8O_EcAiX3cDF(f!vMRQ;K((x%N0@hbkYKGNmwC z;$;A@y^_&6=pb6m04ukSdBEh)0hO646=-b(irQM8^|Y_uyslj0=&0p($)*6+=IgxUh!j-3zB)Ia(^yB+a_%AD_ zu&J9vFW@xMlKk9ilE;5+f3-8m`Wx%4y}OgOzS$Mn(=|`YN?=jW)A@2*bf3M2W-!|{ z>7oS>o@zQYgX+NV*fhSy%tlVbSR^Vp=!R{`1@Tr6mtsYq^6MjK62#;~M4_mSZa3M# zxB1ykOTT%N z9Fo{eh3KOYM=J=FaR)&HIfzm(zt7xv#(g+lXs9YmDZnZY0N~<-Nu7X@cz+JS+vQrq zx3AvPzgyomj+R-OF^#)my;#Hm3Tm?a%t?xgZ8ioD-VDTtrfeUgd115*yPVzwauNb! z@+d}&_K%cV`)WLD)4)Tzh+4I8G}@bp+hPoMmUMT#D{>h%?wW9Cm+(AFkQ_G*ZtLR| zIuYem-Yileri8y$>L&J2j1|Y2TSH4r#4Cx1`f**?=el% z`*OeejDOY>f8lhhz<70kZ3(?Htd=`nwWET^rv5TsX+$wqCgggM*GuW#FnJT&;JGxq zRO77A3)OhGh+~jX&~cRkw?>k-|yds+H3++H>=MJKq8dj59Ech@wJvl0ocxyx2X+m>1Lr+2)rc? zUNu%tHa^4o!Uc+Mb|W;V8dAiV9h_me81K2q;$9wJezkGrL0EDixCsz^8 zQZNt%{-^a!b5!p_tL`5(*Y&kT$;z?X>jK{)?IlH8Zc25VVE<4IImA1xe}geae*Ikc zBPm6y0W;*3n)%QQgt{TDNI~uFksY5=Ml^pZecs#nZYWA8J+X!TO;x(y_!jKX+weQ8#)3lmoH$;j6nRwcp-@9jFRrs@bgsPP z>VD7Z(wtDh2E9eFr$wtr>P?!o+Ye-T8Uohg8JMJ!PnXe;NsJEVpBT`BY(oFER~0>2 zvc!==Wwn_kXBGyagVC{+0?bs%jIi6(+I_li@_MJzF3-{UuG^}lYN>FlaJ=`x29Ov- zH8m0EpHop4oAmB*&*g%-Er|ayVbb_T-7D-cwK>0kQ)y)ilP{&Jt!>Qjs{2gRLvhW{ zZ`m*FHJ)_5Cr|3&ib(>h(z)?9r@hK{eRO?ivREN{_z2@n>2 z2!K~^AHw|8*1I~AG|!%_O0>LL%aj1`TEq(Lu?~#&&p6IJe{l!z!gexC-^GmvjRJLm z!8Ez5c1{x8$mu0ND`_7`Udm0D?@WA8$G2I4cw0*?gC5tRAhWmHBBypIB`VlC>0r2LMQ#I|8wS{MaC1wZ7RBbG%Z-Cq5(AO5UGWnS47 z7m-ta%}PiP38NGMUfaHt$>nf6Wc*Iequvc26I~O+v#{ZcHjs;e0oIGyj>6Tn^y@ms zZ12@2!Yk5h^Uk<)Ro8Cv&ov=bq5v5=azIva(U9k3m2vqmA%mWUHD#ualI%g0ZogbV zAI)}^z0wPRxM?#e(iryQvVqn1ioyJ={~l@moIy`zw=_1xZxE^ju*Zp)VcF%zi8mdc%A3%Q+ri z-XmWR8O0qyNF*5~I2S3#XRpX081=Gxml8!6HMO3j5kMQ=X*jOlWEG!n*pQP6_p;5( zva?WGyojixD~bR|Fy*V_mBBdGP;vg4%2P5QuV3E#8UjnTgaX|>Iad`+29R)eOt&RD z)nu+z$0r!-1ER!Y=hiu6@sxZ6p>_~b`ZpN`L6HQkd3mO>Z^GnCKkZjM`3j`uZFqpx z6bkSD6{@s%qmf8hvZxp`Vs`I24(v(j3O1}PWsLz*&jAxV0h&Z&>sc?+*@b9kg-bU7 zRG$JsLIhtbMh~QKA&c;bOtWEDjYQ%i911`12?#NvjRqhDmqELIrX5Gk7|)@EFw(lv zg2h0g7={Jp9^0xv%6aa+KEG|eEXwgXT6<;!1zpD40Ekt5cl%FsA&c zqqKJ{FpGS`8(5~`!%jiYuqH;O?bkj7k&w93C^a!LwJ|2vjMttOa7ZFj>|#NjmlCPOrk`Q$%S=pGuJQ`vPV7UTQ)q3lYnkR%8X`C*+`9Ev`#d1cHdrK4_?Aac3K6NOt z(O(gW+pK7f%=h%pcGE7S?7L}bnW0(48jJy^hgu7M^6z>7tV!iw6?+4&5i`G~gbHnm zVNxCLSde^M;qWHF_9Ve#FHX|;x~H_5m0;sDl_A0SD&A&|95Vk-#_0t{oYdtUc1Odd=L7R26pxtO9FfAZ8^b(jb1#P*JQwy~ zMwrUa>7)^8z&PLinDgpK8pnhm*q*Kz3pmByO;{)(_av{~>oa3hGvQ(@MkymIy^9AYGH66j_n3B(!MC*>IU{W$6SKj25adHp zoAjgt*0VMppS;%C9h%DhXWh;CRPmZAT03EV4=-(~e<_&?iky&Uk3l_~56?Uc3n^u8npM$x>`zfg8cI=Om&OW+)0?V>bNB89~A1w^dW29{3PJu1ZcLEBJ|A z1U>onu*T8H1wuiH{SWXwRitVx>;vqof{&$F?@DG39lLq zCayT$kMXo!I=>>c6#(ky8%9OG&pWlGi{L-@G*vlbgC#sVMoCZ%D4S=eG}iZ#dZW*f zDG{Ug=yrzE$-re`#pF-;H|(4SO2a`syhz}+S7O0;Nym8=79c~Oq#5+IXn@rIU)s(- zFp~DvJ*^s<;L_{=dtxBd!e=4I$g0;KxL~<0!T9T6&#Jg!^^(hxmvt-D_gc$bzS_U9>CK$~natHf2!i|v*faZ}yqn1U zcb3(s;`4r1wl1w{Br!rowePhJJ97E{TCk+#n6rW5WV;IsNHZqHRQ--dQeNrkHoYy8 zTPmzE;Z}}ULzUlrG1vB&*}5t_QP1BNrkqy9Iyu)Eh)1H5GdLGbUAbg@*7u ze?JD~_Qb{!|GqRv%r2-OIOZ62_0$(;wpq)T99LM^3+@{%(u%>{RI-hU3um1qhB7|Y zxB_!mK(9*i(!neU#SG@$^lkB&ncK6O^g=nNnQRkTB7Re)3FtA1B@Gu%H^oHtn|Bsf zGgA?T?uOnq&TJ&Rc=YefX@LhJqA&+fAd6uO5Otm*S3xupnLxh*r7$73Iaos#y#5;c zxvk*Y_=hNNjn!U0sSW=#_|Qtjfis_VJjh9{i`ct;#9G@R-i2;rovWWuOj6}~M6@r}| z|5Wb6KmWm__K)up5k?BbDdZ@*+r7e7UvVwm`u6O|&pzGjI%Ap5D&w9+Z@aj`lwYys zC?M-q`9Y4`=3*II5?&fut7XeeVu+aR{EwmY@Q3=3QyGUM>u}bItn76%?#@0d zGb@{%m03m#iM!+M&2ci4JyM9QjO$?m)#|SL&VS2P8Pf`Eb zIoq|Hqp^sSUqeUYVoupe0T?~)0c!Dwewhv{)R`zrQf?@7L8Un8k2w_l_AEe^32Yj# z&Cq~%vh$0={X*3|C+i9|2P_5N$qHZ)=){YM|~ud)5n zYS+Mh$>Usp`n9ZtP53ZI??J#+0}i-dgG|M1sEX0_kxTeLzx#D}X8nLCmKS?T)RXqn z18^&7uuK6_r@CqWN0^udbkh2_)w}R-IuF}_2eMY*-~*QWP zXT0@orXnF%rOwQJ=v42nPpI~4Q2~4u>UOkN=4Feq#!q>IDY22NQyhQGYJOL){(K>k zo+-O>UFgEye4KR`t;uloL<5$^FV&>l`Q~nj&ydZvNUayk-itRUqaaXn*Z>sI9(!8- z@~=aVvYv}|o$*l)TJt!Sym1|^cJXZcH&*953E(`Yj89nF*}mM@!F#<>$&*K{d-ao! z&w@ws>%gk`S${%2m4~o^;zr8gn^!MxGYUAO)WJGqh7&?Y0ayc#p}oi(qKCgNcYh$& z$0#fxn|hzd4edi;YDP3_^f;^r_gK8^F2)UBC0f~kC4lWc)1N%`z*r*vs`x6%q#RT< zy`&%8^9>ya(Sc_E&AsP~O91>!FnTLe(PTg2vkZ&vbkSv=+*bsW;aP&*>$#}BQrxLJ zF(}yAH+*7OAIB0St!^})uYZq+G7?yFYq(x|znS}YA6v+8MkQiZwI;BN!!~FQ!PDJ1 z*XfKk1*??KS~=aQ#&^TD?$ znBGNmcR*2LcpB};zZGOivvRwMdX?T6F^p^arTFmveQPxV^LmQuEEFX@R3iaE*B8Ot z7|^;WeEaS#o%NI+@73k^@143VMs_X5$>noBq}odg@_}_73n5>aQZXycc8cLX9wct< zUYiRo5&;zrT+VXdj$hdIWaNRh9HZ4c?_>ILV}d9Ml9ABW-^C4cYupRw_9nah>YKp1*Z`&go~bv% zJJ&vKzknCpzA9Dr2;BUX5a?_8```F;hj3R+vg&T6+PCTa$eW|rv~MQfY*eYcS=A59 z1oLCYvev4FZ67&K^7n#Fw74th^`mDg72Yg6GXN|9s@5UshhFk)sET0FW`iNtUg+?l z%U3gO^(KKL5Tq!I6(5B~L$v6+sDzMvrVkeRyDn|Q7YH2~zmhF*F&JO;J7Fg&oHC3> z_nWx*Qczl-!*YCT4I6tsQW%jv`29Jo-ax0P#Ay7p?|vj#cgtpK8-;NA!>(v-UY zV5{|!YFO`(-m4VY;n73;GfIoni;7O=cqk&7-%oiO+2ORcA^uP2q7KCb9Eg&x;Ob(M zlBD(A8;eshDYsp_8YB9o(uR=R9Y?h9V{PrW(hmdHX#dIv@-wQw;flNub>l(H%T}8- zJS-xY{uLJJgM1H^(-|lc>ywCq9X4XQLfQ+at>!m%5eKT;y$AC|N<1UF7W~MT6)$ja zcqiTF&f9`Ort;j`6u;}FfA3DJr94`D6fEANW0FIjlPoy=KI3&5Of$sZjaltl-puEz z4aumna}XuS-qh3=)q+#PAp`j(DgY4=34)irrTk4pZ#22}-UzLdfPf9pX@v{ig?Y!Q_!f8AfzLRTtzIY|tN26d?~W$DJYrh$5i72s9Osvw zm?IY!VmKC6OrQk&8`77SGWXpJ>$SFfotolNW2ey1w>kfKFqa>K%d1rjAQI2W<7Kdq zsZY71o&*ABhSxvN$FXjCPr3h@a+r{Bx~sY9USia{_&PxJ9dOMbeEz-PUle_nB##+k7+{-VACd+!f(c2g= zhr^vhIX1LSn!>gY+hZMle7j9sxCcOsa3sGZq;#4L&*sbxn!067tPt|2prYFK@VIsG zuz26H87SM0O6*@vi|*VQJtne66u(#1x|CwOr0Oc!>_4yZ&=!XCx6(aqkD;G*W@)j0raF8zWuG6VVsFdgdD(a<4Xi z)ZD%IM4ZX?w_pv$VqwA}M88jpqpI5e(yYBn=%lV}0HkIH)~CC`Sn2V&=EC`PtB@B| zr*G1mAJ6-mUb7C!?3daFdW!xJV2l}MS8xoc zM^nVIBe`Z2&I&K9cO_J8(UZ);7%8ap{5#vpw-&_(@!=llR}nLYDoDAJmR{I10gD4; zn-89gR_J~_Qpo9be$C}wrUl$CB_lJHBc! ze|BYwwt}jISi48X_l<(*0rme?QL$L%VQ2wXt zC-V&DnASr3fOtiL;~M0!kcB8wVDSVf{#s)Ar9c=nY!A34X1(;K>L>eyEhYM`lkn0` zU@p{O*K@{mr(vPm2Jg7Z5Kdv;HD5pXs=>YL7Uv0Gi3Mj!pSTK|qNtfT$15k!Wx%83uwD#C^ zY#qv9S_hL|8RQZNLu27WAv-3Owy(@aAr^@QI|c0XCb=Uljaz9@3c+*MJ>J8^*c<8t zmghQ2oha`J-rpJidw&*}j7wUpZgj;qq{T;FcQ{#7&yyGGf(zu=j^}8)4FQtrm_mPu zSyeu2!Zqm9NC~U`ogTWmDjOUHA=e~YF*hJ_I%CxL?TLPgT~kdh2$(d8!i1&Z<9vm! zy*S^1u~CIgO2EVs=^nSmQidJ1$D)~5IO9+?ChQs_yy0$YJ{APy!c{n0N^xc8X$ zyn-)Qi4tb@%(U)nn9+wjde*u;_C#UbQk&(+3?%Xeo?>Y)!}XLvcxzA8Tlipj>cnWj zMrIlZpeCo=ZQ>MGm9_d2xcm~*5cPb?iThv0@haeM14V6q6TY@~HRU57h3IqROuLkY=ft^1AXBX4hSM8FA za>1$(f8k|#K3(?O)N96M|CELU-QNEPh_KMBe1JmNA#yD~pK0h^Kox9$sGMS0d!-1iW!iPVTkO0hQ3ijA8wbLM_ z?yuf(;UN-vP|~PHzt)llB;r(&3Q4oYg}C4LM4bq8_8fblfLj2Cef#T z&p^&AKl768qVBNvi8OP4DGkzf43XKM_L!(>zg@wWl49{B9D2p3?jW-*q z0Sx|z4h7%V)PnMLuWi_9gXN3Vj(>N|Dmd1Yo&z-9G%E3qk=0=)uh!9eS zQZ<_DB>LVL>%E$$bx+^D0i>`WjMESf1XOYC0JyHxf6tueb@!3~el1EfR!<{ZB?}sG zkYAD*|J^-XHg9aX!N<#HwbIez5!BUH$%PA%LT>4Y8%ACh++&o}Ix#Ub;t!7<7i(&r z%=?XgSu=(ZLZ?-DNELikjja6gUi;~BMycphyJ^EyQ5FTRuAK?C=1;ba&~&0{*`jq@ z`U+V?MVX4HQ)C7tTs0O}3SR7(mAgmDz0rv73*{l(d4HPO5qyxiu4tCN!G@*C>7NX} z8Zl7zTt6qghYVhIuIyiZ4uaN?ydS6IhI1=fC{Hs~9`d<7k#D+M{UBlK zF{K++?3dGe8Ahd>n;R6$BeW|=W%J%MvF|X2hYvUemHmVQZ1?w5la}~UKt8SKmG1-W zU;IqKJPMwtev|EExDT@=!H|>yN@hd}7odP{g9<3!|~~d)wU+*MFm`Fn?6#*k&vI6<1Q?kY#s&%^6q7R^yelF*K_X=*LNTw=qi`B9G zOe#GI)OJq@ObM%fj!SGTwaQrGQ^}=BTAkYSqHY=fM5N&~#HgRGl?a(-r7d_DcV6@8 zsT6Qj=>y&#udn4J!feopO=!UgZ2A>Z-EY9go2`%l#lP;P%F*PU$Pr@-k9akkDg>$yhJ?6t?YK18C*d5ijXYVa5 zcb-yv+>S}i2^cblK?FGl_WJ*Mk)71^Hm}lSI4Ldk#rf_hGdQUhzlnryBxV>jIHj;Y z(`dD+)U<)0T(R>#NPZ`;jeH=ueey2;RUty`HrD~V z(2Z1}Z#4J%%BJPdhIKFhqXI_*HfiEdbS=U-o+dmuKvs6ae`+Xq;1mE%R?GXIFX7Gg znBRM-6|UDzsi{E@ck3dfXO?Sut%ARiOa!&Hm>3-d?oF&bzo>bRFwqYOi%|~0ZX*=u zQp({qM(AiSrq*9u8OK>)FfH7>+@KB?l}UE3SrFM^$F@+-6Xh0sEwr$#N)Z>sl;8|z zCXfu^m@UUP_iOC8cYIWi$c5j|YM(u6=gb=vp1&RfUb;~wO{ED3tFB(N|PXK{1Y`~CB%`xO_5yoP^gr1uALk=`!` z=AW>zCxM04Vbi{=qNOj{G6kf=^z&Epz_BS%UD;Iv%dWlY8OfcE`r31a%+F}NaKWiX za@v0Yd>PlWIe}7?K}2AcSjzaf^pyFToh)uAJ7=ZrL zVf0MgHtX=;-&9i%eqcg=yrgYa-R10nS5~5n07?B+lC*|T8y0My!#3%Hz*OOGezB0N z2b5ldx5(-=uA{UH=eqss@1}AFBn@&H&y5|DaLL=@>oL^myYH)nwZ>?}fY*sAeyQUN zj+)3*M|1SF-fMyDawH*#Oyi}~{QOgyzQ->go_rOi`O&y` zX4Me6AxWE2AZ|Af0nl*^D^{5mG1Sgv0mWhb;Zf=zt8Ig}##g$Q@n!bjN{nWry14yh z)jheLyVkF~(6V%IRCy-C15AzqfYwGqa zXNGILL5T{KhZF#mfoWO30D4Sx*@t6d&OQvV7Y~A-Nl`4tCMj~O~ zdVE^^gg9~CZq~D*1lZ?DQ{v6QHUqx8AtSQ=jhRqrh&u^nv{FG_~nj@y6#W< zchB`9O}NPcXhDs-b@6gpdBYCstcCM_6z@eE-9;DM7tajxJ9*{L8uHV9CLW_JEgoZ=K0%G&ar&WkAjaVpOgugNrS^SF>gllFYM7(?t-5O6&^+OVZDzT-2PB`7xnG8v&v z39ys}tl&r=7T}F(H}f1rQRV_gJ>>WEOR@`O?7el7J3o{u?5w81NE7Eq zvQ107mf8y9R~1D9aQ*oK4~7MKu02OT%0o7Y%Bi>hewC5qf$$6_ih@xoj>42AYsvMd z8L^gz`p}L6`rnGzjG&o&N7bqZn&Vf!zCR7x_Kmx95!m@C9Qo|Op*Fod|5d|2G+C*7 zz@V;~?D0|S*_gRE{zj(1s)QtW=TVeP6ksQYV$_*AF@3zVE>1QlP(4uRG_>H?JP?t; z)gW=wq*vXv*?Da5_o6#mPzymuW-$NsToWJ9Y2Q#makhcb+%jMsH8hz4=E$g|_$?*J zjsGmaJU6I(zdG%uBj29DZ#p6RXhoK3&yKS6rS`-}HyVzI0d}D~M`K1H09W>kn}J8Q z=Nzb2;{8!d@q$3ApjAA#tI~91P4w1BjQ4lY@zU`^(8Fj4GXI!^JEg($p={uQJX_b$ zn_foI8}EnPZhlXH=n%%L6O7{*RzZv7!rEQ49B;@zZ{4b9sb$?bhxSL?XFdKF2%BD> zOA+_w>)c(`jKR-?6$S)UKccqp8G!b}tBu>97unlrfb_WxWgZNmU|)hTTS-vgyS0Pa z&5>S@!|$^GKbUW1q@$;w!?A9&5b(hdyG#`xOGf4d*6x>xq^_Cf}}49kr#^D1|*P z7JKswd*Di54=SFq6B zkB(ujb<$Ap2^Dg<46LbHvGVX}g<*;|#Y@G0WiDn>DqjU1|BQ~XnaG6OJjd%-xTNk1 zT{k*U{JAul_BrM0julM8YJb24AXhQ30|2B>UQX9~43yL;ni_3{b6VbbjnxwA)BpD& z@cgG-98v-O0cXqm@-$BE_Hsj21`RwvA^&4UWF>jYZ;Uivs`pr|fSs>%ToGzQ_T*U& zukS(4UYGqGw-5BqD|BGE$aX%j7MOs?(HYD#OUtiswe(3NB}8YeF)HFb3EXdX`3D z-?&S%3>$j8=Sz9l`Pbm*B2Aov*8mApimTh~+f8DhPhTUqg9JlsUYc|x=7Vt@GLnkX z)1GWiKek6FMYOqv<0Bs4ZX8EVrd+&6ETX2XEg*#BSw^_i?f_QM;um4qlO}euxkR_XYk{l%4=}xzXq&{N3pi#Z2B4)0WHWP8yUu`tk@iBirj-M`5Aok?yqNaC_U+@fn z8MR4bl$A@R5rjm+zg)V8@LErWeF`F_Pg9sM<+AB`*`IYGKRRRlga8040aYQI5S-0j zkN%sYCa7XmVJU+WR;@q@lhQMs7OFC`JSn$k+R^|Ng^3FJJHS~~)@bb~ho((9$7@ST zM_73lb}1&>>9$*e8**#u8~_qZ0~Kkf1=ez)>oc`d8gBKZoI^<>sBH)ek_axh#I3>X zh};VS#9P;Hd3iBD4Y(K?Qh$;g9=TWJJ4r2zrc6VFDQ%K+vsgF=Rt@~;1+!};IAetU zAXtZ>EwM4?a;3(ihC4K4SO9wPLm?$FlA`36oQlMZv&0UacB-dw5E8KefF2@7V$$G_ ze|vY@vh8pHU913GZ&LodH+@fxHdagNCX)6LNe>7FbaDm%nMw8BPf3nIO6~I!0&8yg zw`to5f@@vF+=%XrE!RdwxW~wL%md~E&sYO@HgFZ$H7#Sg;vs0rq%(%xLagVfS^H!; zZ`RdK>$|cw^f2UAO7(I8j-g4>9M$qPn+SH$2KnhYY~cPQJt4-4Y@)?up1!$d(O(n% zy>}ZHDlm+KD+qq0q4=}JUn%o(FF(oc*pS40l+ReY(0IdH=5zH3%dutUsfkBKH7=wj z32-goZ|B>L{{UV}ZI9ogO*aZ-(3;{yk2HZ|3Xskba_R6d85=*PBmCH^=KT{zi=VW= z!vIhwB7*AjyizW`>oNoTx|B6uI(Ss2=ZcW(5YZ#rBAE(38Teb-_$xATdCFF>{AOAe zSO^NHF}k$4czUg5_`&&rPIH_rHO)e(JKUQ@Sz3jZ)JQsnV$i~R4|}}Q(gZlfx{eh z_iQoq-ajK@=4_j8GOGq`h91dyF6!b6dSd{4|AzCtjQ#6xL$0&6#^`HNS-AW#UG)dU z4k6sN<9Fu;Ku_FP`}ie8`aPdEA_F3CjuAU| z(uR_YdWi1S&|n%y&#CK8je<6&u_|r{wrZ~;+x<-6`0<-U=>|LMW$e5xDVq8hp$Vyp z`=2KhUp2a9j0&cSqLwwaSmG}a|LzU_H7SR!qbKf~z878i-2E)L7z{2h$ronN+-mdD zH8bc8<(t+-7t-TkkWnipse=Qn`F2v+p7t_+E$*u^wGJCdCYeT9hI!eklHb6T?WnZF z@~7WQgVzHQ^!rKC?({A+Jsb~W;c{?(J6QYBO7E2@?77bX03n6dI%ZqAnzHC}Gt@X5 zZ~TDQN`O$sCaVh^zg2y2^hwdr48GK;Rpye{F~T4=ynC~{(B?xffHZXpLtG*@f~yWC zD4I%OC!8DA+q4*%Rw z%fGNCSP+UH6t~UXr`WfH@(_SczL`ZE)b@Cr{i2mg++mupxeverSd);e>|5`^HhSWN z&r5;Zt-0jgV30K>zPKlbWRj`k;EFh3og{kCr-}%m{87#NPg1EiCDqJvVY@!>wcplR z(kpprMrz8FAU^8OM{ji_o2(mJFrg?j9m@oPg;-S?d%ZPbtjePr);OYsG$)gDUPmj9 z>N~ctFL|1UMEX2D-%lt#yJcT=-muZEEWXba&nGQOqtQp6_|@e6PVKy$dar?NPY$z zvzzJhp%=AS9;6YTZ`l*XHn3(|gtCmc$=M!d!6m>q<>6K3aT1>+(QDEE5V|O#`X5QP zthy2`7t=ZWaSL(>U}ScY>#UrQs4(7WTa!F}`nV6tjow_*>_$173=CULE~0~gc)-6o zRp)y?>Ctc~jfuRR9k>B zhQ)%`r0Mo-(a|V0t=aVFtgr_X)fxq444IR(wAh_l58L|^cdz;newdZ9H@5~MX9>Q$ z4y^J0T!+2J{{h&J7pDA#EVP0KomF)odNSBQ`^!H;iZYu=#^{7>XI&lI))e>^FYREo z2u&4=(yq^1tE3!S6%nn@zgzF+w;!huESBtm2JkWy^T}BxMK}L6qKA#AF)GI%?Q(i) zLGL>l4DWw)e(Mzjb!5nu`PbD8foz4+jWCv%dLIHj@tbx1^lDc0$S>rzh-ZeSc6MB> z!9(d6OvPzU^$oEcLSd=4=E)Up7YzhW`Q{KXiK>m6%V*6CtrjVvsd{*#uvvDwe zyeShh3Jgx1m^^)yqxrxmUFC~NLll8ySARy_xArivLD$mkFP0sR=U_-MTa>gyV%Ay94Dz6W9w%gve4sFF1Ac4CUvw=c-@-5S9scM6+|yUfCQIO|BLhtPqc-i?NCF29#@5MgB`7@p#Ou-yKZaVOp=oxs=3JV4fP zJ?~TNs}9H}*1PLu))55}VPJh>3_l&a%t7o);z7fSY{qSBAx&NN(qyqFCUQf4`SqS2 zD<^uvr)gY31f{`yU_1I+mT--ZLK~R!O||_zdtdgeI3=LKN#l>j<5$-7b@LRfr+-sU ztLvSNI3L|}i(6^ByyGp#S3mamH(vd|6{#(3F0P1t#bav(Xk;eXrhn%TBYZeRAU`>g zfBW8Bay*^8W(=c%1Jm+8vF|b4qxuX-+-^UjwJ`ge_7f`%g^ys&@z@M!J`E1x%;Xnh zhEo*NiBST{Mw{amOZ+_SEV)eTN?QXM8OvMm&|kG{$!u(`7(+iJjgYHDyVsXp7Mq2d z2vew!F$7rB93Uepu-zx>6w|m0)-|EJyqG~fXNyT~WliYfi519c+}} z8Kqh40F*-E1KgP5;9hbQhqH#ks7Jm=hS)B4v?La#9-j%tx@x3&-0QXVqVA(t6&y<= zLRLp;u5&~yFlW8hK5R-X=fpHXD_YVDdh3&-$q{2jezDi{CrF=W&XrbojRF+B=a)Yy z8LqNcgDe)rBXPS*Q{5*ot7E=4L{Y$?L}?5VAk)8H9Z;jNo(wL0!azdkW3al?wD&sJ zl%>4O7657ci-d(<_~~sjQB(Q|5lR58w$%zIz$0fJsh;PYD>js z3OQzh3W9Fp-|{$|dI;7kKoWqdG$oVg@0ZBEk`H49;F3M12Ji1S_PTfm&AO{nRf~vVE7i)@ITS3lj8Th7z0tl2VsjbINpo z+bqzVsr0Pl757+Do}TV}fK2eV&G61obcw*!ux7c*ep)P<3Ku~&jn~yN@;q>*5@HbcH*u)S05i?ay4TSf8v<1h}DW^VP%4s~>+T zYTytUN6;fxk%q#OTG6N3>+dbTIyzF<#X(bJp!pNi09wVZj^$&NUaWMX6tzOKG!1;z z^JryWD8Au+THU(4F~V5G7O!h;=&BTbS|d?j7UXJGQWxkF!t-TurPj`;m%0;(*J8*W zQGENrFrC0b){Q2Cj4!qmH=eoOmc9}sw)&1!VjB63L9wyWfLtc1WtEicb9^!M5E`hi z6v=CV3Dz~bozVF^!^opuFvF1E%u!dkOzNN4c849({CGnni8+^J)pCN2fO*QO9qJI> z3Z-arNg9>uN%6c0{`csK5s8vQ_|RWu7ehkfLT9>PWozPDkv+`OvFHB*+^fL=%qOAi z8&pz%D{pq$Jkh0j+we;~0eW(AcCR;VAoo|G&QHC;SY{5DNT+&sjt5-p%zt-}N1kqO z2AQY|EOeMQO7HfybbW@U2F^8|q*Q+NWKe5&shzm~zT6fC2o#C^>CnSa&$gxp9Sf4L zAp<{t8$??PiV-q9dniASc0`I*$ojG}HENnK7BmKgt7zwP-=#b`WOg66ec23J$dd^e^9al_iw z{rZtvGPwokHSvMC*l*nS!s59!_=d8hQv-d83ynBIezNsdaRe!|P*L@a#ZGAXRI7yw zu>s5lCD3U6F$kJI%kj-MrhU?rp{NhjiR=?tX{~wu*`WH40#iB5E*DdPss>nTOG+Sn zRF+#NCfAW|=V2Ykw^#4B6vfO48Y?o?4}MSw&X-khmcCddAf9h4#yC`}zx6zBzcu|S z(c)KH90f?)A3pj~0pLoeK5{=XlJG^BOy-Si#Ku(_}cR(Kylds~sgS3U43)EU>_c!_mo^ z)Q7+f&N-mSc42-WbMoo;dE!i7G4aKC0t>K(`~gS921p@8TW(R;WcEs_5b~`n0V4H*WGC7lFlf4CNcR<2pwh!37@9Z=MT5| zkO`=3m+4pdV@}Hi?vhcTylre-@9}{d-~)?MM`(wRw^}=-dPRp5HcJ0!!gDP{etZ4BWoYqv0iA=S^8w0B7oXfuo|L9>sX`HV}O# z@CzX9Z^s^fD*eWAw=}LvnS*&0GrLyN3ll3hN;5^NYznyJ8t5atBbqFwPAlh~Mg4yl zqck)!r9*dO$B9!u5sjkKB*^Cdd1Buy2`f)eq5RzKg4Hy+xWUvG4di!MNtugjDtghy z=qad%qQd%R_RIup`d^iFahy0S`XZW#<^vIxhj7g*oL zzwcK{6jM|z)&`bVb$ezA2%sK4sECSX(Keo)S7*BiAUGh)B|4X~ZzlW)82r$>8qND` z$5UaoH}h8Q+$aicvEWPP*OQEt+GNUZd$h=yqj z%fX+?fzPKAZ4)eMVkss#BZOK}PxhAYh@!HKC#1z3$k^fafOn-9*WxqE4oMbMq{As} zHSLd~w+@>$y7+~;rWGHu8ZP4P?nK-lbDKD!NgV+aAz3oBeQX9UR~Ih$5=vT?g27jH zl}*1O%rffU&rpNR8M9@u9eXvs4N7S0S+m{MP zJ`~bQvOrTxO1QwCd`6so`}AwU0xwJz=)8Y%`z*{|-1~cs0{PMMtygfb2tBC9M++w@ z?*l;scr6$wHosagQTfFiv$N2~CO@n5NL>gVNv(N3eucu}Gz9GI7;CTO%pZEc8 zvql%6>=h~&ce8+&dX1ZRO_Mc-jGv`3ZWsxnhHSt?Qp6Df4m5BECO0gc zM)!T+)6@MKi=0^zaY2U|gz@&}-%9M{$%|Nqawp?rMhKa96_JY59%q!GY;CHB3Zl(6VBmO~<$tWGTnHBuoLHjlM1W16fQue9FmkaPF>q0Ey5 zGR*s@Z?%6B-`Jq#2+TrAfgSQs;`#aAgjqAzcp;w%7j+l=v(?_gGuc=dF`Ha?6-jYv zsdL?uf45a8$VXs=fgs5POF>$E9sOHRh1G%cT5sQ#Ws@sSYcipiEL`j4ca?m9l~+0O z2@-=ssBBREnUdePL4W)PBn?~*hoL*O`AzD()ZHzRI;BH;p9-Gq7aG#SfLZ~$ms(TG z%0hM@8x1#}GsTKhqm`o|S;;R2s>5z2H_)DPo=7YeH?RULG^m*mEoTkaWyDSf(G%HU8orPp`c5LS~%5`lR_quiPrNY~&6L9Cd=THcnO@=FT|a zj+{0&)I@qfy1uiq{5z|;Z!><|pfX7|6O|F~1C3QRje5GSDmE2?1s7v0AXohAu&&8F zR0o34C~Q?MZFxZ7Ioqdbw8A=tqwwP%*Wve|(CuK5MG38waDa5FGPrb61V|Jg=;N^qU}; z*sag-ePq8K;a2H*VRMyS)wC6Hy*0X}&iH7=WiR#Awez`^QPpoKS|B4aW>@|dd zQ1Q_M0yoYN&a2OV7~7e~-JsTSgyddMJrQ?I{~7~WU6bLDtcbMJZi=t*o@t1)X-=k* zVp9pnEyFk;>xnY6_pcvSxRsB$gIB%YagqSc(Ab{=2eugrCuz$nX6b2b0NkEv><`oY z(7$W#Okw7_bJw1L4EOMqsjCA*PEP+=ABHbEHjdDt{A$vbOG@99+ncUicC+$4Kn$)!V*-K5EnB!)4i>8 ziqiv7fA3O3XmX!QcDn{{b$|oyO<%TN+#TY6w|`Em}u(m}_vt z1sX^tKtrGmG-{_x!k90?B>~2<XKe(o9cByHa#c%9owu7$WHAboj0| z>LpV{u&l)Z9PK+pKrU6nn#Z{p@9LY!UuGMdG*D&8ZAoe8OtwkS+eQQ;c08Ia?l_d+ zHMZ0za7Eq-Xtp+AZPKG7mkZ!1TLKqX{LZP`T5F)6^W&E+VxPom#@;Tou|b%Ef&DDF zto?B(F=2D`lz-DJt)Ey*A|PR4hgVXpV!UC-yW0GY23=I4T#V`fSYe;LtYr!QA3)x2 zfr&(wx5)k_S$Na-LZR|r!xGnCQW5`_39v@`8#G!mp8ZeYo8}E-Ia6Av2pArt5yjv3 z+I7lcE(e=IXG)I2BXFu3eUsUnzDuYYF5Y$ofTdF)0eU>%dUP(8eRNMn$~#W2hg2TI z6iTId@L5u<^w->tWzUx(2>CdLE~tIxLWO(Zsr01RT7s*6CL51;h&5M*aur+Eu%Cq$U_=msZTAn;90?#+-Ha z#XN=mwW@yIe&d1~5lB|$SV4`Ry_HmbqkdzTm)cW;n;v;R6=bORAHW2mHm)7eHj`i; zULL)zP_W_x750Q%07THKLawg5%yx@9yrC>l`aWzm<&@bdo%UhNZl2e1L)lk5**@*H zN$1Siqp{t&R-#8&Y&}L)G)Q&AlMlRyOcrJPbv2tH1@G!QxlWni=e&+QU#DBuxjYXm zG8Q}TkQq`p8`!AGQ)kpuSB3J|;x;lvY#4=W|4K~dx|+tEJwWIjdgE1&*B$=)!~V@X zA+}4joHzF8=_C<-PmRJ3$ab^$hUJSs5=97%a?RLHP>fcL%im61XZHGERAGnp`H;74 zDifF&`ip$##<%C?d=v(;S*qIR2@OgE-DdNyK$yG>J;~xp zCWqRoh+xY+ov}(P>-0hf%a>792jK=Z$LXD*7!=^bB+NFxo8jS;qs7*+okrYB6MRZ1g;Bg%JGFIp7 zBW>*ulz)Nc7_mu_Wv`3rA_e>@1l%c{7?ih)T1{30-p5Ip(q_eSP3?PQ%mY2#Ia4d& zAMnxPzOVd%UA3%nVd~!>Z2WO>3CD2PTis+7ZMIYHfH6G*xaI!`7&@-Jg@QImrE-(O za-;t$P!Y1p5x7<%!>Fee4pflb;9;j2^hOq~it}-G&b{Yz%7W0m&KpbNw}}{E#Pai& zcMZGP%}U7^9xA0oT#?4 zy^K3EdHw?&*w|%t8_q5%N(ElWH5knoMersBhc4YC_ecL+>6V_9-ZpL4^^E+I8KnrF ze0Zm$)w`w%^-YvpDcdlGPZ`bd)0Ir7T}oe-n^i7(E3o}fDQJYomP!UXr5X70=8FG^ zW#m@5Be*I#ZHoDx>&jtyHA@Dyq3vxx!J8;B9pvzcvIwOLx>&0b7c?L_u_|nS2-gm6CAc~t` z(ngS7{H{+=?Hb60$Q%0a1RFkwDkNsLJ1W}TN$E~zNgbxiGvf91{32OmHvWyapu?r4 zPH|FBC&!Dr6Oi8-R9P9qca54%Gi1Q5s1Lp~UW=KKI=QEa(Y^-!a(R3Y+}H1+|6u_A z!vYQBzpn2WDj7)z5;iJ^#3gZeUpIXA&T6{!nn4)_4SavvOY>`Y3>SpXnEyKFb7bYc zp4T6AYeVFAZYUKR%EKi?Rb`HN?|SZ;`*FeNam_Kvs~*er5I1uTm~L(I=gv@3lx0l6b!# z-G19psxZ!X13H56gzDPE|0Irjp^ms7hY!FqDa4LHilgQXuU-N_l)9>! zXJMQsp$%lo^SWOfjn*$$Ms=mEz!MSN_h~o`IV&|8tA1z3z$3X^j1Y9gP%LoC&zseHta?|I>!lIl7MA3YRV*0+~3(xUv2U3MtN z`;lRn&IxO*a0SQ=x!S+p7$!5YoZ7QZbl$tp`|G@!CRJ2H#L!Qdyh5!Tc&&%EZAeM` zi{SD?hcc8n;p^ywb9D`c56t)bsg=tVdp&-q>V~!#ucx2ChO!jA1acjbFPzXGb1yI8 zTmGHbU-6~?0}Mg)zASC;n2dYZg*eiqn=EbcK%`5lNSKg6DteMbPy`8s)X(y(KM2>v zAgbx75>*Fkk|6y^2k%AuWP|_|6yjvUR0#vI&OU;%c8F1SeUZE6OLxkl+$jZiuc$h# zn{c8P?@(`}yZf2~$+r&w0G%z>4)gt*AztEuvO=PGBC9^hbtEZ!r=LmV=wwvezErn; z=>b9eP~EvoN|ckxT<6;rk$a=t-8K^Cg53b_NC^Z39OQHJn&{S@;DQ1Bif+V0fl6gu z{JylDQ|>A_twTv=ts3C7Y=#xEjqnKvq=ckIe8qU6R6{iZ2O7N7VNSu;qW&xSW6PTLwi@dtzgk(nGpiV#14n=xDjJ(S` zCK?Jtr9{Cbs{@e-7(9+oL0)Tf9}Mc!l&MN29myn*sWUTNITyq!O*uLvlBU8OCvX8< ze4v3I*acDUV?5Q1CsNx5Yn-f+<{$|N00KmPyYq_4vjskIfu80E_wvmIT>k6JN2G-r zAydhpp#5pznN0OYb=KO@5QiPL330NYDK4oBC%2?7N%?>WV^lP)V%@DJ@bVuGq(Jor zAQ2=2VnCb-A6nqftn$(=(+xIL3tMfaB>eLPdq?M*(bBa7hSrs)&0!#+3fKaZBL{E* z#P>eYTfCN{Hy6ykPPfBOd`_~A z0wdm@DYp$saY-pZBJP64t9mw{e(KP>g&|VQq@f8)Oh$c5S0t2@Mgap8=bFR65q)&& zgzr&^1OO+FSK~js_bQm&kYrR(jqVHx0;YmhBzzD!qjdQW3kdZ6 zNalh+;UpXoe=2)msiX-W&?cm517MlQJp~P!w?rk7sYu)>*qTUgR+%`SwPgvFNSz*pDyIYwgrIwNj9PmVgRSQIbFr+{P(6(Ta3Xw6`i+wtx)8#yFWi)n#Ee&KBEA z-!e%~W^hRT2To3KE;+W%1-8LTil^2Hj-ZfwjzHR7r6uB1~qBjt#h3iRiD^rk#R|Y;yn?Rw8-#sS*Jx3M2qJiOoT7q2`iQ zGu*{U7YdZ0v85%*NmC_pNenMJCmHX+fK>!e)j-Vj`Fs4U38i7`Z)hvOOUxq;25H^qbiGx1bA1d{| z7&xl};>hO&Hc&y5IU)@9jw{VP7Si2PTPoaS7*e*3nCT=LJ*O4vdQ(xRC=?Lp?dl~s zDwFb)j$*p{blWzE2xp03N;K6*;}Q4_L=bm-fJDYAx=X=MZQP{;llWmma$}r>?rS&1 zs#DDfHw!`!2uV;;_uC}*9`tR>L*>Q1+79j%*-apwzDjLT=$aS|+=Qs7 z)H1j|{{RX8N3S0~l5rWuVQ7g8WeX5nQXqn&cTaH<-nCMq*$Gi41b~$j$FcrL>GSH3 z2&k4OfmKFTnp>)eV_zGS$sYT*{$iq2JSu1YWfK)CGuD!iw-lPO*tVx^05}7g{c63# zL1{=LWBo}#sKr<+_ok8w;1ffQg5XTHgaNT24!N1Bswsg2C~nU*(x9?k)Fz|dj%aSD zKuT3ikuxTkRXu2KphTOfZa>+m%Bj1)bwrXCP%5a(sBWKX0GO&MZm5c>1yC|juX-kkws zbq&=H{{VUf=da$16_bTg-S1Ft=b9V7bPTXnR5fhcxr84{1T26Ih{-sPnFg%xsGkK$ zAWzVgpURU~g3lDzJSfMSRGWobp=9A2n{6a#JS3$;AYurC&1Grc8n?H-aqDL96$ApN zZqV%KCQ;Mo1$zUUZNl$L)BYygWRvLlbs+s6A(@9cpeD{|7%8jWG+uIl&eQ0be z?qawl(%UnVwt2I@AA0S;Shm&I<+u;1Ak3V>N)*4CBv98pJE$j1Qd{`spv(tQ`6P1% zB?OOemo@5d>6U?MFEE9PAO~A%V>st*gYrLmuc>LeXtmnA1{8uYv1XSNi0Vf?b&r)N z(I;i4OzO8$-BtJZq!*rR(W5&oZZv|r)o`h!yZeeLc2B#%>q~I%DgdK0DDE^+76Qli zO*kk>%~lFM%{VXI{pmC`%K=~9Q&u+&DM0%YDj=`!XqEHL6gwPXGD4JoYEk^pHOt-X zQ?4P@Eyh%KDKerzDKqasYUvzv7(bL(5vwiFj@W{vjnGyCWkz}RMnLRqEW9fsT(pjB z$5w4SY*A>!4B`^h_dcRXAp4UQr|LRS9vP{wn-!ak@Dj-((CFW zAs_;;Nl4m6`;X@}Z?Q@9Na&t)KWI=;vy!AKDFlwNW&rw$_Z8Bx+n?ZVxThBDs95x^ z!jrZ=D#1IVNWnhvD~NF`OA2k^qObr7Aees&C6q;M0I90YWg6 zQVbt#@t$h2GG_RHBQwLQSCg$W_s2MusV*oo-t?t#d09|cQ69v8mFL=-DZEo*3vDP- z0WKLS&&YN5>sKzH*!!+1v?VD=`~a~4@Fyeb`Bq3+Qi&UVA~@S4<=(Y&xY49z@on-% z#U>D_xG~!pYq{iTTvNNqmweTVRn8R6+TSWOn?j6si!Jf=Q9qr9eJVR2-6jl{Vdy zriu`qs~itzFYJds{a=)HfWXuUoxvd>M|q|byvQJ*lzz2;GiaelT>V99Y0we@QA$h_cX9NBYc(P= zNhjS?S{AM$Bn6>6x)Mpx(7~lH!+at|gq0~Wg$XAlj=g=VWu48GVLp-ANfC+Zieu8H zdQ-IU18Gq?`t|MaQ(B=;1#Se7;*qqD<^jMR`qoYGWaYryc1wy01|m$!z>Jc6b(+?9 z%e1vh8f{8Z{kB15g^%DXm#pY!ebej$qctrcmiaYD`LoK;s-l1Nqi{yI;KkWDebH zcuJye7g3dV^^-*mj_=!GJf?;q7@_o_ooNIMermfgTj8*G8g;8 zb3W#2hy*X`+M3oBW}EB}l4U4~uK z*aEGE?6*?(f=3>sIXED2eqySjY4VZ+eMSmKNIuc`t4c}}X3;2GE*?ye$AlXxdeiiz$gzC3}#9}^$*B(JXf!@jqD&H#{hwZtihnaDE(xo6iq^oR+A_NojA3kcvo2NgyZUzJ7iB8*~ffJk*$R6a9V!Hi9P4m!4 z!nEiHeNL?gW4d@WG`%5 z5d=if(wV%VfU-&s5~I-eC;OfbXepw`>Qhnf`_SF*`5Hh-RYP~aYBH~SQ}0X(cTk#( zengQ(D<+W12|egdH+466QxpK{`%_A>ieXsJMKrJP^QuTpc~|!o3WxR$M5R-A4wUGN zCf!SSXsY|@g;StRu}g4{N8XqTflX4N)b}W{Jn>B?di|;p;f|k51=A8ZqKa)YectrV z-`rF_W@Lf)rtj%ZA}p{~)33^!Rqs&wp5}pBjw#TrpLe}CaQ^@`KwS5atq(KY{prxQ zEN-Q{H3(nMjQi0++>&WcM>L6~6iK?4?)3>#>CG9Mp^}vkY6V^Rii>qA_Y?_`D%F*| zrvqq8;$*TWf9C7*GgcZxQZN$-I1!%oH)4P^Br6>166r}&W-<)H2j|G7=IwwXYD&1> zgCBZojwo*(WA&nelkfiKky(m^fAInb@1r5iEAV~H;@m>0qA~1fH!uXMZo5ZQ@fw3T|0ycxs@a+Wg zD*0AflX2jQKZz3S7e$W@DOYz$X+Ui&03|3Sc2P`^uRM0I0@hX*^QuC_fT}kq@T;kh z@9SO0y{We2tF~gzkBDhoQ|Bd(umSZYAOR!iAmWL?%mK-a z846c_YR_r#oz1M6S7`=*oYqL_PRRncDMYx0r1B4}6Vd``x}w@rr(sG^1ma`o<ud zwK4KMu&*#DAO#Z#=M_5%N?u6;MIdhU#^MiCG6a0b&Z%;NS90@cL^j+c7gayIN#2qU z0TMdGttbL-Q?T2!xR@HzB zPy#(!kCYQhEs}*VYoK&7i0eSK;}3?NZEd=YDGCHA9>!|Z2?Z+kZB$RBanqh^Wa*hn z(;#Q?dSF03qNmcV%kQBwpT#g1kbZ#R(J32>Nm7Uro}ZT$HjIF7gt~@c%oRY-Kxrpp zPTd{Pgfxp4sq(E?L`$S?3Dj)R>QZNuH~{fHo@+z)r{Uj*(yd(6?KJO)X&=0H(J4mt z9!}JNBjv?+f3xq}9yyGyQ{#4Rqgy^EEC zcMhD*P;Epx2R}N)vZG}yj{}2hTompye}yw$CX1x0O&8v<)s{c`tug`th$2rtM@q?Y zk{Lpsw=IYsw50t>lgww|+P3tKJ%ynTrREku+z_;Z0!~0uxE)MD$9bffrS?qiPSGaq z#+eI108gET0m+gv1HD*G+E{Ev7gV9^lY%k{2RIxKoSgAODc-(FDeq2jfw~O#$4{MwXujY9u;Nv_B_znlXc)=*)o(Gufv|`JDdr7T zQ>iK>w2_WeKhA|48jbQuNO@7@(&m ze~1HC+hJ;CCa>Ti`9_yn*$g`h6S>`%}_|A+ksxaZxQ$j+|CYxr*<= zOhDpe+KRsbr#7DB1E8mEAQ1`s14V_A55%72#aY}^+PcV*6 zUL(m zxJiIQKpTf*LX1aA$I7MC+Yc~+90e&QB?Tc$Py~8FCPB|UfJp|uBsU>;otM56_Zfz`Oyme=wn=y6;leZL4pY2iN|VgX^K6~2yA#!L`(XG=68`ItF37g2?P-YMC0C?6$AwmQctBvr?LJ=>CHMO{R=)}=nvX~S?e_q1}F2R zwMGfziWRa__i$(zM>1->iR(jo;(qk#TQYLyaVPIf%#L>tsj8}6aDO^!c|-V*-~FlT zE$FgdPZD$QO)mWY=BpQ$de78TRN*-z^rxvVWuG#7;*oGiC+upeTuvw#6}N%;)6`p* ze8KNXIoQY2srjedKIV{FCSfu2H1!tc?>0Y)KVwZUPhZxlmw*{S$6{y~yMDB_ABbHG zGIRRUD>KN?y;2YKAji&}myHRPItxU_W+}V<>J=}&H-BS_q=;;@zqucJcwR()qN(p4{{S;cI4AL% zO#+d4tVTqAMMvg*{{Skj=FjnhK4OQMdJ#sYZd(f-kJ_ET7zU{CJ<~rSN6b;;KGbRo zWxe?`KT%HH1yc*pN`Ccm(vw3{EbkFbC*@W5sB|;)p}j<(K@{jLuv82a{^r zHSO{Z#l54KuamoC?A>&!JaPuq&*jM?an9;`3yr+O-LhSxR6pS5DoF>3D^j!4B6?S? zKcVRkST5boH&(xC0FiF8;0Agpa*&>x%zf*ayU{Jw@)2R-`zt>zh50WbvZM@piEYUS zMmaU-W$F00@AM)sUL!}F>$YfP%1Cd^FbAc3!9M44f;xy1SS=w1`11Fwq%0;YsPRRk z2)$ZbyJ>D6z_qjmwt9j9o_Lw8BF)d95T&*fPXTB~@25X3R}AB;Xx|i^m5g~sCVfpV z0QMvM`OP_(Hi!vA2U3zsmG$T8$5^Xv11nDCGLR)pOJzqrIKak9toz3aDhVZKW)zX1 zsHGCC$d&NFH_c!rx2sql0C@9OrIl^k|VVZ%Ha+pxGN@4 zIs42%>X9wT(ITe+0Z+gwhZuOUv{^?2`3X}f;S4>x1p;|nKlJn|9 z3XrrVrwXLvJuo3qIT@t|aug+Y(Z}k{Jk|TCe%Z!JG7{s(;hxLu^ECoU+W`<$$v`99 zB>w;*S{jQs%D;;vZdpzO(YXOc*_?X@&OabBeX=`)X>2NdSK%NGJ@FV~g9Cd-xp7q*aHye=lz7r*F zxV^!m0F9yGH+085u>To02Ac`{VdIj}vJY{{R^1V$)KvdDwAnUD+_x2ub5=(xO1-Fc$>5sc zH7E4K&wR@%3vG_Jt`8~+Z&Xl1KPArRTP@4 z99(F|?=e67qMF*0SB##CGem80WVU2rl0`)t^^Ae!7 za1$whBz{286;gw0(Vj_PV}f-EPFw!~^`@#gq9!vw_0{THDi%@2Ji9)WMl#@Nz z&MPI|9_PwjxPi37f?P_tYHSCpO62klZfw5QZZ6U5W}g&nJH zN#+PRBj`+@rAW=K$YDxD3sOjupo7Qs#SEMImcv%2%}%s|wNQ`=m88TRfMdMJQBg47 z)D5jWfj+n?-N7P%_g?FxrC7@FamU zFbD&ZGd=3A%W92nC(ByPj)w|RLxcqG-H=F52nVFWe z)RdAW6$I_+5fUW80=)kK!fuAHLeQ`rK9ue|Qc2)U@?^#YAC-G=haS6kPidPQrkmK1 z3x$HTsPzCyn8+kxp2roZO$9f}N$_rIdM%}rN0fkenNRLpM&Do(k&4zzQ{FK+6;9Y) zB+J(*bZ`P#N+aKsR!WWxkGQX5DwQq@R7go2Qt64BU{)YTX(?FAKYUZNs0vh4O2qyn zkF7$r$9jmVJF=yGs_M+#sh2{hjo)aXwZJ};RYQpYfR|6!qjAv(((nC3l8+;E;GIuK zN)=2?rBjInL6IQ)8ms0Ez;phpZ05+nD!cuC#%1pbGw9P+hjzY;9ArL1yC$_)=NM3O#}RFwY! z`d#|0(D;l*EB>QZsh^0wOAbBG-M@eKsLQ5vA9GdI@?(Mz%+ox<(kj$U+{*=jDq&FP z(@-hV-89nR_NqvYth2a(kuyzFhqvcd_vexM(B1vb8jE7dbKKK>zz$;bj+BQ1-Iecc?Qriu-Vf!y?>92}ae74JZ-#0jE` z*tT39BkBb&GdTjOl^(}F)O^olMFz~aT=pMxP4f(N`_*qSd(z+TXrVS}?;kIb~ViJo`~AG5C#VMOip-o;Q7}RIOd{RCfc)kJ@PNKoEC*fTDpqE^qJ8$O@UaK2@3) zka#sJT~9{w?rAuVGvvNqoPL0siN*UE_o$NUqYbJ)f|{kMkuWM!E>f~h`J@-0YJjgC znj5=KT^ZUeZl)|D$nz2v21i);sKWk#YCDfXOheR0(*PJ4t}j}@de>78Ivd!f1F?ij zNHPH{Spei70gfZBbnd#1Jm)Bk?Rmu}=lm&C;Fj6pi$@e@&OjnbV51IOx7ot!{ zG^bQrSV(k<5~81I=4NN#^s26@#XgW6P%ys6XQPjCCF#C+Kq`H=t$%$H41QW~?Jc_8Bkn`#-lroYG z7EvWVU_cUn-#V7%wKnsKVJzNmAC0!j0CxkY9GcH;KI*~(S>2cfB{=&306f!Hl@l87 zB9gx`XnoYQNQBSp_O6S=Hm}?z#M-jsfP#k-+lxw7?xh6@=wm-B%CysN-eGPvWqRo! ziAiYeNa$uirCrlr7EYqyQd6i%^%lYl|!mCYv%;ny7Px@t+k|(*R+mv{`FwAyLSc4?X5OzPQ-ca>iH>cgrRD2DN39P5JylpkrFaUJ*PG89|dX@+X1vP zOnIJK5QM2Co(Igp`PSHQ?``=I?}|J+%R#uf1^ay?Rc!}u#G+R`$sUjHR?&ZvuT~EbsIt2LIjx^h)Cum5nTQLqU&B^x6-v+ zhE@qzoU|bT9)A*olaBbVkE=#JvM<&9{LV{SU9+35N*Hx*6$aE6qO^b@sY(O@CVevl z878^wq>FR#a0R$8v?omIN zUvW%XQ|Lkz&esMKWT>m!B;vK0vAQtLvPHwIlzD72rxs_V4t~6Jrd()OwvH(`%%aUh zqwgiMoOJ}x)1H+ankiQvW>5G{pqoSP|{5%d}SsofW|B5u+MCg$56fmiaNEf~pl-KUZJ zvznYZ8zCySV{!f!IHeMPK~r0HO4S)X`7E{6r_`+r5-ee3dn z{*G4jO7Po&Zty>hZAj!ah##ESKXsvaT`o$r&l_67{wqeDf%X;XPHAbM-QTv4oyE}k zejB>UytcTvQ1f*n(hu{`0o=kPe=5y ze=vWQQM$MA>QqBo?d)<(wlSZ7RQ^@me~2Z8kB9LdrMt6Qjo0Y52%_$_ctkHse10HvRtqf>m5E-~BmlJ4W!W+ERbT}h9XC<2 zx^Mi;yk#W)Cm)@4HrF2&$kHy%=g!cYU*E}ipZ=Pws9R}eMK@X(gdSPqUAWU%{{Z`v z2j@qH7OI0(-+q2g{{TlN{{V)yP+US&YPHA_@obSE!*Jw|-+7{RO-ZD~*2zMI2~yLv z=eRNLCPj3s(DZj3{r85o`&OcN>6a|tv_0fc^{V#TUxiy&mdA;;EjigRo9iVuQ|wd~ z6^yWJ&-4AHRlBd{e}BMqtpeePQm3r#*dT%&_{0)meE28zuU_!Slq|v<4WuS8g#`)3 z!5BH`12xU~XHK|6ci4EHI+7y+J30;wZZY<*#>JJi2zKGeR!p72IQGCCcjmhKTv|I{ zz$IPF;RK102e_vtB_j?2^36rN80MR}48Zr0E3~ypkhrM-0EiFJ{{S&f^9NPu{!nTq zI1T_!H*$Ia58j;$$ritJ_KJZ^gVut`n9tgyP(Lp9NX?H^vCwDQY67`Ai1|eozz}x! z%!-Oc%wn{S8A{mlp&TZdRzK186xBFC$`8J0^{7gxrCKw5b|>=(Wc|%M%t#zIK@pOp zBeC|X+lK;}T*ox(#j{0{?8Z?9`cC7|V?UAW!Otx(EKHR1{$o{(@gSrgK@&LpQZC9y zOiU#1$UTXVvFpLlFIp#SCoZc#p+7nW)pwt*Ra1&56F*8}S%J^kRcc1;v{ri0DZA63 zN`LCA<-sBeA0tgJ$MGtDK+~aYS=`*?r}~Wz$p&DLtyV7%rBnX^D52(ne-i%y=%RTPbXtDqs}}@xpZQHNEKC4C(MpQgyq6F8lSj-w6qEF-fqjxl_9B5^e**E` z3RG2>0@cr_>?oBVZ2Q$M;}W09(ke;L(f5iq9>ubyM+TPVPy1C};B+7LQcH=G$okPj zve%e;?V=p^5mmg=(L?g3yv`JeqK9Rz>FSa6q85(eed?%DoG5+i+tu99&XodXkl>6c zedz_~@ejRL-l@ur{OE61dk=9+igGP)GsyO%zm6)PS>UAo=Bixd4U1(pi&1c-{?>_eb z0P#&ll+1)Mv>*>}z)XF6)J{7p7n*#Sm#;adTP1p$teSP;5|)`!%KDI^B#**4F_Q*j zyqm-~x9(ot0KZGQDQaM(cAWDu!Rr~XSn(=u?bEi*T-`W90U}nTA_hnx3CWROQK~CY zP1DRS+$9oHt;$eJRC$!906peG={4u|R+giWGBdQ5S~qdF;qqKsU^dO5aD(ntF&#*g zU5L6SW{@8xR8H7)z#}r7Z+tuww>!c)YwXPARLt_ z%#(rb*0Ymt8`NUL&dOAzx|vuzP6o&wCozIEH0K^&8Dn)<@7)$1u-A1fWUYF&?e_G* zX_PpGDJjM`1cg963`bh#u5>+5O?Pe0i_8ZMLcj{(nThS1_G@Qv+F=e{CA+1RLPfJ- zDN+giB}yb7;t1=`1$noN8Mkut7O#TgD@vVHt0cx`n2o&PL5|$i@vUu?+uE$7rv(>S zZNwK`UeXDbB|z~c{X~4ldZn}Lb4+y>P7Nt(*pRoagCNFAl7&dy#%2lTym^M6ZSOQb zw56@Pl!SySQe**>k}?cWwR&HI9@Iy~N*up!O>av4Ev4a364$(bNUy-hNO#cASYDhv-(`_Lo#Vj=h5Fkhfd4Z3a z#dSV8F5O&i)O6(86sV;Ihl8%Df2fGS>GrNIrvBpj2p zm;yb`c!r+)*G@9d`?u19REE-$LS%mkzy~sG(tIvZEu2lY+rbb@g1}p;B4nvWAdw^) zB!K`9_0fWL!t6s$@Xp6c(}RtLTxvSC!+{{V=3giyj$tqW=bZfFwC=q&z&6TC5IrGl zm>=dK^V~`7PHH_h2?VJde6WxX&m~ifyIY=DzfyH)3a5k&4 z=Jy(f%C8&;PA*(FPRp+#xTMI;8B$U+5H`sflUNr?UE`@vrryn}Doa}tyvJWi^!4W* zdRJTGZ8G8a0?@5dU;vPdA{!jeRO0r5^sHN-4lhj7AG=1AdL3CC{QX0Fj-+BYHZU{9 znd)&|c`?e_7i*v6`#A>^<)}9*OZK*{Af>Iqe)N?vjhWaEe&)QUk^LQT9#kuM|z@<Ia)^%qe)FE3cU1ombQhPqkcmw>*+tRl8Qer3x%2 zCT0mF&Oj$7IL2xvTeQ;QyP&3s!DHl!brR_yi|=DVeMa`ARZRhEukD;tNIewMM*2?aCU zMRR@-(i*ze*>1^)*5Xzi^NDRCt-0JuLWwX$BtV|0k?L<~EflGDmwMIely=Im97!J} zwo*SMUWZ4GyKKWNNhR<1IL0(*EZjiUEUYb+F|o~mVfk$c1lFjv(2!EguG=Z)5JEr2 zZr@it1hqeC6!d=2JUlLZ)ae(2dyeDrL~oOlNm()WHQ#Br4Y6t)Wv?lq015L-L=Rz) z>s?dE{L=UN3m-4xzti}$15eTPWkEVk+nayUeUt6x5G#2acAkKMjUB|K=M53G`{qIW z)|weeKuDdj(t%+CJUTz+SqJ*m(mGUMnT2-E(;JPRisP^j(qGyqpfE`Q_W=9WCCe9T zKq~O=pxTsWUQ*PggVt5J0y`7$U9)U9+I=SFM0H!GNAs+Uog&%W^jv%yTd7?6s#=m$ z@6;=gYKca}R=G!?>l%I3grVCzPO3%1y+hbRl76E#NxLhRT_Lu0cF{QiGPeQyf(Ob# zuTj)=n|tI#!Q>bq7T2)-W1pQ9}2wO@$>@U3_wv;P2x2XCg?-acJv zR;X}fsf9MDMmdIxSA*PxS8bj0odG@}V5_4y#z7zQzMPMe&1tpak1+{D#=*q5!1!zl z&)_oz_ezr-is-ca7LdZ)eGEKQWTXPHM`OIG#yXf4l8pSzQB8LD`4n`kBnK06^}VVd z+y4L--30;<$f+PlV_gGdY()P6)jzF7#37JSmcSf&Km`3G9@wJR@PXziDPUxT#QcX( zy=@4nt_>2RVyVFdeJQF*B2zIP{{WRoB}g-#nf~~ut8z#nN_viBtQjguBbr6k3~fw( z>7gVhK>!??5Je=p3fq7>`iJSwA*3acL6;LhEK~|wfRvFxKj&6f6B3=X9cq)8DheaZ zb#eYw59d`LdlNo8kKCdp6;BXP^Wvg%TmB_yksMQluQ{ECvDs-P{zj|ZJ^+B*#GcKO zT1M`SITM6Z+LgJdrGm$hKTPQmCf+q;QoH zk)9*56I6}BhzVTBPv~fTLQh5hm8Pa!7u4d25LE^MB=PJ?{EuD^d5E}X2v|IK{#9ID zCP?)}K?F`a8hV@y7%oA83H*USq3glVGgLP0kf;$PsypNQQx>q9ATQ^ERhGCv#UtF} zndYPu>msg+vdMKb{6c-{7ZaaTf~%L2AMq#`Q#f=->qQ8dxd-tt>Ob0%cPG|N_W=I@ zDz02l{{S#^@0w{^f6fIkESE&`BmPnSX&1AFC+tV_s@u~%q|FWEC(}xcMX>6pk@r8+ zkDDi){{YNCn5to2M0TOL&H?+;K%Eyi&q4MEh*_QnGH`#DQwuR06-RzQ3Hq8;Qe~jO zm)z3d?tb9aa_Ni=eCfN)=093gQ*>MNd(YaJnkO;`%+*lmc#mOAe-Ka7XbUZeL5Nz1 zuvH&1ScR|Otkq92&JX54n4`S^0AL@|iXE1M`>kJULCoP_oK;=^oWS~#NI9O9^O`7D zi<{NZsQp2t7I{0qpc<#RbwvLF?f#UKw0q;+kJgnBV(3{T@Fe{p(hiZ!YCj`Y0>pkN zKO;mdf>eH}iYRH8{Lo@sTv7{c@)SO46-+5JA@9tJJHPzH`qHATxE6!KA5j!{K<6JS zr@TaOPaH)!D0JKRicJD%Qlu=8QkoI(H4>7M%F=t)l`zoZAd&Ai5}O0?wwmBmM|7b? zX)*XviSBAdDZqd9htN?8F^17cYL7AWr?4o{;HN+NpiKur{wGwUMJ%M5Q77`L15A(L zQ9mP7vJD@ZNky=Flk=vMl6@&ZS*-#9!W)m6r*3f|L#a>x(N(!G5t#?E`%)9w{i{f+ z(mxm^{VKbmc`7LS9Mvp@ymVBY@lFcwG(aU^gK_E2NLYD83@ScVZb*d|G%JdECv3rw zmMRk3(0xfMKJY3;?b;<`djT{7&v=r~>h(ztEh%9$yK{j9FbNUKi2{4q39MLnb&!-^ zUfh*_5}SB*P6;Yh1e3-y2E9h^(Tk*j`$5$9R!7_GP&KC6+e)piEt*_oV@XN*NEOeQ z4(`Zyzv<%olUhSMdJdm!a;2$e9euK&PCK2a>ra3sJ0=edenYubgwKSFNk~pQ^ZxkWA{uJ} z1@iJAO2jF&--K}XL2|k3SDF!n#VxOsKnkwy` zeOj8E@=*k#NoEp3f$AWTeqeO#o~S0{{*{$!`oU(CL=BoN5}wuxT@{=PWdG*ziFU(>k><=Tct6XAtnHUg!3IHA}j4d z{{Ro%T3aUHPqw!!NmcEQid$`c_Nl}YNa{c*v7A=0T5`(U%lrP1T+%LExNS*p;fsPG ze&tR$ep{fA&a_swwgOy0O1;d-^Q<2X>w{F&OUW+Wr3%;~YlRN+fgJbZwi~=~11%+> zNg*Mik_Swg&3af~%hb;;CEUuo@UEGEdGU8|Jf-yreQ5;y!JI(AAXa|4qubb9p{oYl zODYiJe~rk@1+UB_J;93TR^U^H58TN=l{WFB+al-8^dJ=|Ad+G`43o!m@}n*Yq}i4^ z-w5-v9JjN43v0I6Ley5ZJmQnIi8xD0PcmjtwQ-uCh@JGcXuHE~O0dI)uDmF16Zg$} zmy0!1rfChK4!+u+Nl++EsYIB`DIq2x$0LgJ2ku6s{lcyFw#@o9;`faGFz*EIap7R7Bc;}>5fpdLmpDy*4J!%XeF|`qqg9a-@ zO|`sr@pjIG4ry*HZ~*cWOh6!m^%W4t<;bNf z_w5*Zb&ru|U$FRnLebPimX04<1kMyPk_ZPsn3|_>P`$$0;C)7IZcq~Ie&I>Nzh7#V z=pgVvPqki`$G`9QCBHv^ zpKs6eC@@`c?QE@NV5PMO4nfA#pVp+bu}0+XxJnkImKK8A@_0_*0giFo z!vnqLv2_F7IME8{sjYh})dU1Hs3Fwgd1C3SfPP4LB}3#CYVq`{>QCR?Os4DM{{TN0 zZFpzG*6*w-_wJUE0?(rZ*;1h+=A6$Wy*al7ZJ_}mB_IeGz`%iCUuSixS==RP_%;zB z!b{v-FQig=zE2mM3}VSUt|8Y8(;{#DPbI`>JJR?Uy*rNwx2h{hqbV*#f>aE$;vmPWKH?`81>1YzizL24^zU#a ze6#&3+C=csKQ;4BT47m25u+ebwQaM7C2y06>=OqukNZ)z(=4pe z>1Nf2*6bG)*cpQ{o&h~DGsM$fytQe~tGTx>f0Q^0PtZv}YEIrWu}TGM1N|gV)QXiG z`IP=1<)plX02@e193>zCKAZ{(ROfLMjFFF>WLxSETs~0K4Iv{cDsZVle1Q@9)`Nr= zlu{RtsTn^iy7DDT`6Rfx@&F+&J3J+z3I70UUVO8-q@xmNk@NSeExe?NZr14LcPM~= z`i#?^w)4~!f)_dBMuacX4ThMy?;}y4uw`EA@@q9nED`wN0q5%i88)93$EOq)R?bo!97G54NG|w!MM#{4lM0nbRw5;bX&jpVROSFx}NwpjQ3Q891mR367OKP z_z!fnMjCo))H?ZxSoLMNp9TVX@Vqs#)DZL4fbIVX`D`TVEkb51!BP09ZTM-P&$T8} zxouVs(#EjRm;|}tVVOmMY@|>Fbzv?N9(r+EXwym;eXi9eyfL{vSA(Fl^@=dZG1g%? z-)5XyCo%(md|3Js8y&My`^_Z3&RAYICBhiC$BbV|=U|(rkfd!h-n9G!e*RKb; z0EHMuohnSKGQ{~77yS_3l4~3~JIVRmQI00?CAWaiK35jCnY&wm+rehZY>iAWJN(=P6Qeo`711*eVAF$MyTh6dF828cm=Zl(Uy%@3{*cqKzp&yL z83&Cugie)=*HHwPd-ZGi78s=gb?@^kP_=h^vEbQAncHqyx1F1=Bf&HuykAIU2L??x zts|9w6t0t+JHpU=BMRz&f{n#6X}ia_a@WiTKsPClOFDW2u|Dts5j`hZ&165Xi_Uc1 zip<3A3t2a$I!Sk&j=jA&kxqz?#alJizU^3;D2Pq1k}B*m9CtP6;mE>+S2$KkRYw;e zcF6o1dcX)z*b`4sqC+}CgxE#G1E$_KTt9seoZ-zDZxKC)x^;Dz{T)z9ED1SxM zws26`Siid4{PsZ8E+P5rsIdsm3}6JDN-(h6b974m&c<4CcI9E`RcDb(M(|E@dzJ|2 zVf%2d!=s@(EHy$YUYlSnl{`8cn1ATC#pwJ_n%IBv_{zAzp(r(Hzp<{l<9KR<{5|sM zpPT{R*hHHDcs^ILY;^ts<4$%Y?>yoAK+);-vx0=-UHj?dN9{Jx2z0QwO1mzuTRG{b zH?|z0Ilo^q=p1LvK|2UdK9TL9!uwz2&b+UJB(sP+4#Pq1Vlh`1zH2uq4ug0J`33_M zQ)e_io5PIHfD|+{q!$4Tn4e6Pxl$~Y^vKv?;qE)X=a1T<0TG?iRt;i;-1ReR(_}aE zsJEZDvrWGsLX-d0{(O@c4sVjc_KU=qojAF-pWv?9x<2#HIpFW;?~NO$dS{!0={6jz zDazMb_vNL6FT9DVom>UmRh_nPmp#=JZ`W}|U`%}Q*^kuQYtn?48{*zPAJdFM!jWof zWf{4CU;FsFPF^eMjyd?WD6!?_f5J1ob7s$2fydLNZ`9`>XHr#EiyGEX+7pEvPD^S_4S}4@8h>D$-(DUg)_%EARN}^h z7|9tf-~XZD-kSMX%g?9@C|8`Jwl}OEryXaXUotsQgax^IXIZHo;nsOxIMs3WrMQjV zAOFq|ob2mwOLpse9<1kExtZck7G+l<+^1k$# zW4p~uz1C*@V(0sG*6|Mr+sY>G?B}vmQ;+(+LuLCk_$%j+T$jK;t*A%#Gh|E8To4d8 ze=o~csHP?>ooJwLKcceDeXD- zb~JhDjG5vFBuOmBscn>KTiP?x0|Dw~q z{zT6g(q5jPH$4&1zA7t0*%yX0SGxN(%@t>ACOJ(dFgStB#qBk;Ym*@JQGM-v~ik<;-k1um42z`XvY!gPZmj%w6Z zi`F1&#lDBm8v=$l!EC0MpS6NsU2{PLoy?=mY!elCxv8T;AKI1WQz9dWt_SL7w2)rq z2YmAPZwnA<t9P*6zELrr6Kabqb=Lzclt%sJW^v_ZEC=|2I{##%A?8)0sL)WaP z{xt=ojcb)Z`5FHHKA#<5rd$G=oFrO(O>o9EPn{O=Rn+^XDnbF}j;WTTAV z?){Qq>Z_kQJta5u^|YbX)dAis_i7S(pI1FLoc3vLBMf$>^GPJ1KAK>wU91=>EPU+q zZIL1TM3Pqf(2Y+Kiy+S9glWaVJiGZ_fwl;Bzg5e+qjAD2=U4n#Zf17pOA;RxYYTop zu^4-53n0Q7+q(8j-X_TTxL5!!kD3b~cF40jrFav>?zQBur+MAYm9o8RQd(ka)*?od zfT9UGJ+<8T6uqeV=Pv%acBT255D^{uL%4zK>9*eRv795uAdud%iH|jPKSgh@Z~j(| zAT4#ho_x}EoyJZmaf&ys>2q2T2FZhX3Jlf?!sgJSLo-vIwD@p_@~>aPa?m$cprNR5 z`t4(D$Fyz+fQ2!`;#S<8Tqd$7*?B|~9C?`Ifxm7)G`-cz!LR)8V^p6AbQyFay?%bK zVLr>P;o7q~lz>3%%42DZ+9nq#g;5!Y^1NtguOH$`*)QKQrENJM`_&oUj&&R)YWeHY z^RHd?D+=IsoesiSeK#%6*s~P%Q6`4u z(dT|`DVn5cdXvUf1p020r8i*NiH(n zz6ObEd*f>!ru{zG(HHkz-b_!Zzuy1wY+&V0xuNFWxS(tA-yB4nAG9a|dwv^-4ClRo zty8%C_fmE;TjSJ=50-^4eUCe+K};!|CZ{G@-Zz$^U788Ew6QP!lt1)1G{ovt6pdd2 z8i%HOJm#G~y-^g!S^RaGP`%_KS5*15_#~Zw3Bew_7}t#{x>)+`Z9~qrf1viwzh&QU zu1_So|LMCO&mY@Btj&a&XNEgO7I#*!X*`e!f#wZ1E^z$h02onzH@T`TMQfP$3jFsfyr`3EN!pKf)}*Xydr zu@?6$?>*$qg+E|?-b*)RVRRe-Na%UG@@4xb>YB3HI?taFL5mn!fVkKS^tTD87PxT% zD)5Ze_>5D~wBVihwlx|rLvwL?jNxwloHQWIbFg|v`TGTJzsF_)dG+=%Or=4xqGA30 z8^t&OfoL|JlV0&#vBip%$cR3LE=z~}1KT@nE;#^=!5+px)o1`4@}>9mYL0D#{_&ov zgQTEqK6ggOzd^(O>HKTLN2#}WEzXAaEqV`%o=JYv z^`_=KyWWkjtj7Mw=a)DR8}B&lYz^HbT_7&p1npv7Nf#{6^(!sAuz&}QFD%DH4ghLn zV2MW~BaqcCWVFPP3`zLIl%FhgAf9x6q~FY=6JU8Tf>!qa2Vzh7?d~Y|t5a2GYxF3o z`c-wCfz?kK)5>?KrrQ4}zVbns9QT8IMyXD*VziKTguH~^;bbLN>kJq4QcBEm>tOk6 z^=g2y;LP=;hpd_lHcPxpYbZ!P`N8k4o#>^f`GF#`cVsGY_VICGkl}KjmXho#nP7`Y z{6ulLBJae<`padQVa#v?j~q{)iB!4)BJGv%O<}|Ogg9;9J#mf8KZWR&ubPlz-Q&-p z%TXNvFDEA;h`;b(1r8#zf zLE*G>&~cvXgLgG?yCIoBU%oT|`!QnPLn2;qF2@Jn?kjX;NGnl-?5bIH-+fEbi?Uyv z?XA-}-xbMI!CYH!=8bT0KSJMX|I_PnVD({f&yK9!OVyQ*tmLH^TUHH`pKq(4_)TM6 zP}nU=c@Cr!U%L&?6l6W9F7HeD<@5Hj*xR=dqgb z=RJ~%KfhCk;ke^zevV9|vwU(7)t7@0^HBm<7G0+c&QbF%M6`4N>wY#N#H}<$0v#s; z!%RwV2|-xB%y3IfDR(x8&&m4vy#0<`rMiUI*G|$l=cv0_0hKC4SePv(vkBJy(r_;v zuI{Mo$f_Jys9m`B*(xW3R3sQJ1<9q$jv=p!(K|$c(Z>s7^tZ|B zy7VtH+YXp8-swW62MnkKxo#N4jDsXh61k8@ywG2Ma>8e=WcE`GC9Ix9tGDCYBCpc5 zb@PJ$5@#be;#TNdC%K>kUig4c!hnQ-w~o@TJzn8m*YUjXRiZL}ogcT}a?IV`chW<5 zDoYf-iiRFiCn^vzf}EE366`g;xl5HyImICIw>W+^`Bz_O^*Z=l9Aj-AI(i~3=J4{1 zYVN;u<>=LZ4MFGz1*K&@tTVtJ5KprVl6g;w`kR`-uTK>WZaeA_i$^Q&Lnd=om{UpJ z;9S3inMw&q@2WkZ6R1D_W zxwLr?b>y8Z&ZQhWqAVkys~HgNSWV%_oz@4Y)zx1F3Vd~GCui4QecxrpovTX3?+N9z zTC(sr9_T#8sBH{Z#5CtfLKl9piRzXV81-+p=+CXV?~;?AX*BJThDW!fJ-Ym-o&<`V zfSL7b7lftWL6>ofyt+tu# z`uB`0$d=87oHjU?e+uDwwFYBDa9MYxJjs80xnJJ$z8Q+@hQzmfE04?HF9>pI30afy zzJa1W0Lk<)%>~-DJ^X}@KC&DNo6Hzq>vMkfD84{W%QmLAHC6Xk*l;6ws6g|06_2q^7kcDp z9ru3E4S$Ao!%jNg$-5+M2jXw|=r|$6b_#8x!wGFDoKD*PZ%o;|`CgtlM!1}lV{8i= zo7AAB52egs5dcMM%e*ft@MWsLS@u&Vba=C~8?W*lA%~vZ!yFG@;^L8imv=Sq+S$r? zY2cq@psOo30-7VqG?e8NyU7%i##H{32drBXuE7&x>ycMZQ{by_VMn5#r#Cx&jI=)5 ze$D#Vd$XL%)qQEcn_0-0eTvKLHqy4dMnU$OF}xJ5T2Ipcyhp3_kn-wPZl+L zp5mPDrrM*TV*LB+-bC3?beP?ih0enscg<&-fLqUP&i)754b`^v7*Sexth#9;XP;wd zX45rsbhtY0iqsWq!k$yi&S6Yq3eEEfFR!c&vvbV5?jvid;5abs57B);r$H0;ZYFU4 z@Ps*>T}f=u^tTv2uSe(&y@{Jo^ysuU&Hjl+ zkxoch{#H7A>ww`(NNUIO_sTz7>a;ISjTI3*v%>IkfSWPCt_i}(uFnHa^}~w#qk@jJbBnMuYfp@eU4%9 zU9<1NYyM8A2CtkyOng|?HZE<J;12^ zAjAB2PqurM_d)6E)xzci=bL{8Y)3EnFZYxNJnH+lX!kM5X*%@L=qkb9;28LqQFhmf z<92`zcEmNC?nar!4Hh0oR=6}lUGQAyF=wZoq@g{cF z0G>=H;vvlY)6Dzyf&iShnr-O%Pc=umQ zzTj7@Ej@n0E=o9>Y*za@f*qP*H7(TBr(w%WJ5qf7di&Svd0Fz2FGfqE&bh_BByG`W zgv+hJsUB$c)&#uh?|NW_{xV*r^knXHMon5l$~(e2IerrcXoK`TLBL50dLEu#oVgAOQRj8D;+eeNqF$EGn}Wi)X}PLYC;Ivh)Uwp;@% zQw>fLXoi&Xn;dD{Fi}^v<0-VmU$N+K&x&Q0bM8dO?CkpBr%(Hs)T2MN+E?mXl3f32)Uc z2W-z$P)9Gn^RT+j#w5Nzi{f^)>(=3K0EwV$7mO6$`C-RkZ{Cxn0)b(z?&R^1 z#|hQlS_9BTE16>K@$Se{RL{`aSR&*JGm33p)Lk-ocX-T%vV|=?!TKmG`0!_)vbqBF>R3B&`h5iHSj$iBlDEyX9O@91fEy=d^UiYBO zd0GtE4NB^|MxWI-tsE_(9Qx!@|AE>>R=#@lW;Uh(edNAHEhen6+)C@9pI7MZ9g}rq z8Gn`29skz(6%(Dg`uf}l4hF{SpIAKlo%^F*_+!r1J#gRF=*F|$@8h8^`&#?JSD5xo zpSm*q`H9aL$&#YxYP*-cM6J-f$`uAG{7XwByUzM=vR(PUYaR!^fjf&HjT+Bv2%bD_ zne#}vKQusyxM{s^5_@rYp;|H`dFlXYb>E7TN=kbt13Ax%G<1=5Y!683y3$ihva}d> zvKz)mx`{7T5&8aPOiYPL2cx`m+payFH-D6F2=({d8SOjx>CXD*Q~d{czSAgUWpdZ< zwb5bDleIhW3-xWB2j8a;i!Hvs>U4$F+;D*CfK3-~y*SYl_YZUuUbo->;k3vItj+pj zxrT@9+X*q+KTv|=it+1(0z)68O7|$;aOm3R#dj9=Yt0VOiv8*zpBUlul~5|pS^AQG zF06XVC3j6+A{E;yT4i=cY1biq;*Ms)!lZDyC80E8Kj^$|d+qHM_nK`RY`EvkY-Q)Y zIPQvSdcV@oYrs&JB7H1`i|5Z(LG7(ZBSdjmv*<~)4_3eV1=d^;7O5gDVc(jj!N-mw z`|L_uURcDk+#>KT-(UC?#MFkq|C3VROh%Ov-t1OE7ryr0*`M**i&33|NiSWj(HPRZ z`70|$z5P)H&`$qKiXBq9BI!kvXTCNxF?>Xr9~@hoOf^$+pfs_qL^@#B&5UD0d)tSXxIXolc`LG0(XR%gEzOr@y`EGa-ca zlO7Q=6vl;bdiOPH{^p0I)GncS*{_}QHN8aJe198qzvvmz9VLp@?C^%844qf6l>{(@ zf;)`{$Yt)`0q>_WV^(x#liuz*nTc19f{QvFjK<0Lnu%|4W(CJAv^9z-XEa_sx%slw zKeldgiK4#fZ}67(b+V|kaq@0UT(J*4_A+&NQrSajXu$}zD=sUWztj}C0|~eM!n+54 z&nqPcw@x}`{-)c&yy1dH&UUC`m6HIpy3&XH_9|BJr;?5l!Zr65s)w3P>F)pQnN!G{ z#<#^Du{`f|xf)OKbai*CvO^i4^XjIncz4L3Mn64jYtMvclN6mqpM_uS{jg#a3JcYf zGL^KuLWRYK{J0k{l1vQ*#TyoRt$5}*pSZhtUYFsW(}I0Ae6Jxxj+bN@v?9Oe_~ZpM zA+Sn>yi!-NbS1?w`gREYUEZcRMJntBo9PD!agA z2bQEf=lFT~W~sw1QoWt>28^~db*|K*@H^IdHVQY5)#YiB?xkIDmky9L+RxplJFQN{ zV3gKu`c`3rEn5Xv4RFKn5o)N@DzU=$zj}>LpABMVfic=LSV>V^K{(uepR9UrZHEf@ zmPU%w!I;apTjE5-I=1l8kF%*;S=VJD{D!tou$`cvN^^| z2Z4xW^b#L{Td|JX8&sC2cICQWxY}m!5F3)1>*u73)_*5`MLoPtbr$&M*gy5VMd0{F z@qnL`2~?xFAQXSmNwieDzR<^ghv+wc5^wyDg% ztvGgNyw>ei(kvEZRgT>TiV@WptIu`7n->4uq4aE(-e*9x>pn*;2%1R8Z{pFLKnGij z0Prse(PP09W*{&3P+lL&{51Mjx_%RP4fV;E9chFzpxZv#GBHv>bURZudHc2 zuTry-!17@Gu6(GMnM_Lm5YXnnl5SYhjgp@NYJ+twDw(r&U{t}k)*2Ta zI(Xx)F*a$3^S$*C`mVjiL}<8;RycPJoBXb0+|QD{viAG!mYsziWco(!S|-A|M1aE& zlv|8>T^*5QPhOX&i5i<|s6FF!tg%t(>@k&CQD=wOw4q4?MPaFYgJ*rG^#$(sz2O zB`qZLv-t+oEAjDPo)%PpX{AHw>R8JvUWrwo0{8H%($e^;^(WB$>X&x32Fo(AX_K2) zTcl3ERZw>@=&3_b4G;@ypYyD}a?1Mc?rUYGclc$)Ei;Zk#Sk-aT18wOba8-&g*FX8 z3uVkcEsNUyAoB6fn@PrQ{{|M>`jKM?m@t;qCQrgo3l&vO_kBWK5J6bs)}8eCHDVRr z?GBpqcS*Fz@?{!lAGfFf2^k9Xy^NQnwfzItiy8V<&Afcesaeam=otER@)?Jxj2xD; zqb|9O6zg8tg!)|?_HadHtW0PF&5-WwF!KcVSZqF0x^Fc1Obvp1+1%g2gMs7n=4`#ikrFsQPriDZqf9BE21EOZ@~1o~`8^O^rGXaly+%LmRmG>nXY0 zgg5raZAxIvD7WWpI1IPFbs!{#;Wfyf7m;IxNmdDM2(ZDaqElX+$la+uE&nG@Hy##R zd(=DFm|iw5EZ}#eLh`Up2)+Wfzx7-fXK=l&11q5Bk&XIl$qVW226}4*uYz%ZVb}en zX?gR{`jPAJj9!X@ZoOeotUO<@%G-C*&(pq`C)DBdmmFW|R&;mFH&OaFy^kz>6)+2h zLVfc29XckRvWzIsB?NUA$@tw}R_;D?cBl5G6BfLQ)q6IGzd`Hty}#NA-9d&&kJ(%Q z0|iobp@^NjC*gGYzZWZE9Df)ex6P+|*`KQ8qoRlPh%SB^;W=Ac{M!()8%kN4o=2CN zudy=fwVBi#o`gvWK*Q@db||gkHKvw$E28YsW6H@I8+*k>dZEF}NqusbOq5$~af-0N zQlT|b6taI9!kar^`-X9*i2{M{(7(x@V zELCs7+0W#qjS{(*J=QKgHuE}}%x$)lQ(N+LvW`rEfuXZXBy=#b4B(N@LCK*w z#_rWh3FmXy$I1CgKkh|p3kPjiAsk`4&`bNk0GKH5QypHIZHLwwQ4@lep3jLU1oBXgUmOu||8nr&jFqcfYwplso6>qCEQ z3CrF3RD@u4RG?raFz;1@Qk@-_eB*k`qKuxWlIs^36!(>GV&FThia%2^4IMdc_aosK zy`hZ*+1sc9egnl%+x^6vDK!iF@}bSQkwMdAmvZVW<-6G_^Lk|2vFKjG&$Yca#fZXW zQtapa-1iiIU}#a9%sbJy^Pf88j2}7dDcMs&DzS)MgJw?%bCZAox;<8|cAJU;oICC; zzyhi%w1D^@<}|y(Y{2W1m~Mkx5S0oy33~#2Gbt(gok|zI^A;x~y6F z$sjFVi6L7xt`8zfZW(m_1)vAm4ijc@QhxzSMHxeAA+)3Gs8s4=f|WKmCTV;kCwjz_ zp%W-w)KiB~BB>jsSpPHybD+pSO&q+3%l7LF3 zWk_N*&0mcflTfCSfGWWaw|a;V^oFNl_lI|PXvm({QB1EG#Kx+6ht}aB(R=1B;r^;! zM|cguHM)saT`_=bisvGBC|%Q|T1smedsGh4(yltgpqVBZFo3wagQSMjGmszk2gMAm zC6Zaj`Li_(&2ZqCGzDDU{G?vzU+k70FIca!^vjI%b1RA(@ft5MIg&v3u3AneJ3-K0 z-BO>@=~U)6&H#-WMA8S(*@V`0Fz-=*wX`ZYFaZYDd{m0C_b`w-bd5zo8airVA%(p# zgF*FMgt?u1T^S*?UP3;W#l^lPTW@3EVe@sr_v{eH_a>}VF~Qzs5RUAr!(cgT(FQ9w zvK*qbRbMuXA)qWhCQHE2=Zm=zDutgV3Tda0D$N!RL-c~`I?E@rfS+fPWC8w)6uzDW zyvlIB70qxfG2#gKghS;e*B25`V_syZMueHHwy0Oaj1 zVd~?^Whz>!TP0jnQhKXywvv>gHk+PPPnpkI$;gw!I<;$e|%^qys(EE0#~ zH=_YO1yKIN$)x~LR?k${7Khwku< zu@KTbq$Wfwh$eSiF0G+k7Ltyv&#ljg*O-z42BjkAbX5_E<^ebDBuk|5F?FaAU9aYo z^uyNVothA%&@<rj)=I z8CO*___9svWgDAWk7d+Z&ZX&#Pr!7H%Kx1Cc;G9v=)yliHR!wBS~s;wF(Ki89- zqFe8-pZttJv512tbw=S|)W2P~4qQi((w@Ke_5V(+NORRoVY7)H9cE58`Yg=m%)`K5 z6c4&-=kRQ!p(j-`*{W6)GPs<&%AWr6CB0S>O@C{LuDRSYsA2xXn3+LW%&OY@uA%hN zfZ;F7S+zyo2Lz!+!E+(f&r{Bh7x)yBeQ!n)z}%AwxD}-LAlTuRw)B>_!!6tlP`F8_ z>CiKa{sWCl)4l;3Vytz`pxRyr3}4q7J!sBb*O{tnxq$>Sqrows;uL|S23Xa&z^?Y{kN|4Uibu$Sg4dZx*qFB4uddW{DNMv~#fgt3b7DMnj0U-76+u7@$*Q zGo~&@{7(nmhoPiP&fTi7fxyR3#G-WS47XfxfB&w$FdlmE|?mYN;oPwF-;VNDh>Ic;H} zO=Rjukz&#CsVGJiu$&3f4nA^Hu4GkMp2oWzUsK$xI?5zl)i_S(;aG}A{M$l`$yN24 zQo{4e3!*|~!sSe9>YU$2*GvG8zXz;{mtw%EsLgYMxZoDHsqm*)RCjB8%6>|31>#dCoJ5weM#^beNMpxw_P=MM?>Ki%OYk~>UCDtLm(zpyPp5%clK_Sf(z|3 zM5hETj9te#<<-bO2?>A&Z-JbkMW%3&8+RoU{CWqhk!#&zuoskBirq@ zMyBB(>0vB$*r)+g5s3BRLDdmFfPgxIOAMEZLRpkQA>$62FnYf;vjmVsxvDOU{*D-*e_P}5XdJ;JBiDzrwhzEYTA1eI7K)fTwk_g8c*3D zR9&uHPCrrGlebbxJ_!VPf?Ft!_HxP%2k;8xJ{&%xJp!Ezg-?4WXCKORi*kw4Hwp zoFWTB@lb8Cy!9L@@EU_}Z)um{8!)>zNy1+^Xi~e*totm#67oJ48Bc{6Nx^wmunE=> zkasW!#cmme|A_ZA$^T2%CSS*sj0I7uJr(VcM+?ntR(kY43gltdFsJm@D7{`3zMS=!E({ZyjHi4#UnfVY@d4!c zw6#%nIfsRLNx-;3o;S)Pzr!Nb&063OB?)BqG@nZRCP|_X(2Z~~0RblyfZ=>qL~f|m z=tL%12GEh%R=|Vsmp8<$+{OWtg05ieQ^fVUh9QPo4sO}1uQS04Q#8LLB8co6PrSR zL~i7ob&MFK&zmrVD<%{I7TZM^bs!LZfII_xxYa%uWR--Bh){cSY(?;R=s^r~B< zK`RiO^bz^USr}Fff>y)$>8xXbTb#3uq(5$m#zBl?RJR6D(pxU{*afo~O%xoGn9dIy zY7?X~^PPNoX(HB3SSXWi3MB`x$UeDg{7v0T+=B01x|06Ef#}hv||y8#1{_N zRnbAlqv2qC6{ zX`%2s&sB^lBs>8(JgAyPh?&pF(dBY{?~M!0Y+@?R?WH)eC+iDMi7xa&EbG z#=FPDX-87`+`jRfNv)vx#MWX4ZTeKM4o3qVgGX>OmM?DSTrtxP$Q8%aj@HoVDkwOFlLqcVp8s z6wn6$`P47CLM+)$fbhbRmu`X#$KU%e<~RgnkuKj#L)jbsP}+)l1aUNtoClV*r??D^ zB-xQ5IG2w|<2ocGUCMWm9R?Xz+fT;L!Yh2g)2_q$XRrv;sZK*j$;`xaOIiaOXY#H4 zYRlcsGY6cbE_gC-RdXLN)gJHdZ{&wM? z-*jHi63-2)1*cQgozj@S=aPHb%#(jZriaPuwmpdgQDI+fNTvW@tFcETS1*6J>=g_~ zIgAcUrA_Baj*!zr?Aw8KBZ$($oI#F~RbXMO64~r9u#>KNp+z0}9PuMP6cMm$Z;bOD zR1e44Z(`nk`UG(X49ayb%gne%D2Er?LNd%-t-YFHT!(noT!lY`lD#abpm2 zG_lDv<&3kdCZEvN0m?GqL(h{m`S6B&Zr!VZ&uUXBufual`KACDI$vb3wLfySF2P;~ zQ}Ki_3#0)Id+@g#fE(Q#DW|s&&lztk)ZvN;WtYUnANVd8Ihee=aHAV|ea?8k!hk`@ zpD3rBkH*(y1zW~=DX&vkMX>+JUv(Ogkt3O4DQJ-SneKCdbJq)`srR0>PrjT9hTtII zaY&HKptg7p5fHBx774(-pQse>H7l7YNVYO)@N|)p>p8jj;~0kon$B`OPn`|ftqTV+ zELIN{0^owyfbMfm;GMCwM)>!Z+5HD)cz@dl90A3A%Fe$)G1P~w9 zZdNRdXCfJH$`1OEvC7CtqmS@!15-t%w;mF%H*n%j9-IP^1Fw@y!_8Eev1qcUIo1-$1S(x$|(PzF4uQ5Xrc1z}pUX1EA2O5zj^i7Cf?QToSBZ z+mo+U2HQ=n)$__XlLByU#>T>^YjrTSyhIF^vZ0gdo$++rYBGR8W3gb9=CMm*{bs{_|v8i^{rG)&40 zs8hqdF`+@I1OTsr1ii@T>pJj9A>8tp1_k+~=5x!)FdYdn?MUUa5>0hJ;U>=}2DSkp rWXX8B+)~S!Gw0$LZQzyp+yl00cp}p5<~?8(uF`E2{nZx*eC*_N>xCVst^Gw0U-iHNFbpo z9i*tJ2q-8eAW}pTP(ZAJV*SPEIp2AI-yiRH&bRm6&D`C|%AlUJ7RbfYBBJ@aO(dnNJA-bfg1-%*_9ksaF7iSQ-GdKl`7u z|Ix`A??~_ekOT8_kiS0we5nBd(W3w$ISK#}um9BXvj0UkWnPs6Pp)v@699w&rvYUE z2ZRB>zyThl2OI))0mHwufHfcp77!Ew3knJd3JD1cL&PBv5fKP%kJxVUy)YS>y)bEM zxqTW+a`I{l($dQNmDM!05J-fqlFlI=_#q8A0{)K(pOBCcL>M9ofk?vTq~+lMzti7) zfP^r=GVkG21wayf{1SYBAMzRi@Coq!8;Ji;;sZeZJb8tLd9_aB03Sa;KL`xw7Xf3f>7H(sTI1ONho_&{LLE*`=^Jb(`*!4Fjd>q=S?KB;;O z!1Q?BDx3PoUVm1TLXYbU-v2uT?B?f5EWwlN2rxw@zpIq`q5B=Hno$K~B!LOMJU3Z! zlaWQB3Y=0PWH8}>T0KNrO7SS4q$Vbjs_c{HB5jDU^Ndlk^iZV{sAORRJ{xI?^kCV- z#Z~iaFv9%+g#4~T0Dusjs02$Iz$3=+aH(um zU_ZQKKaBmKJY9wb131JgOHiR4Ss2D1Xa4)|wWmn}Y9lfuaF{?6^`wa|TGzp+(y0=Y zgy2a4SVXhw1WW#9`y6;bl1DasPbH_SHQBjO!4>c5f{Av)d5dQn!C_e>bQpo2UxK)ME^_q{af4I9iAWr8weR-6vF>?5)uU<2w5%_K;k<^3YU@8)XE;; znUI+w`{W=5vUpvWt((e%=;GmgM5<9tuxOqGaC=CAd=v`w`!^}=uZ zM?=0uxyc7SkqQoblcbsF{FJrSax4*`4u#op=UIG%f2tF(yPn~cSPapl_2s;?0 z55_2iv3G%q>vR+&*8_o(VOiGy8;*3cK#D#VqH7D^1&(Ff1;rrIO-;5LviE92+;^O3 zuJGmI%V0|=)^5mt%Hio8i)aSZK8SFyPPl~tb+o4+e{u=&>^-BDn6t%fI5L*vU+H*- zMWEX6KUu=;I@T1!ae@!D14{~N;f=YqS%JsDSA9R zoiz7qD(@-tyKz*s?4jzVu`(H!l!*s1%Z4<<7$A6tlRWl9ek=<{XtzWzT z3HikdyZmZtQyU}Kc>Q!iF{oTeSS_MozQRNAh$?TkkA6{qgOYCpo}qedC|gGt1cX^q z6|=x8h!Uhc^=s8btF2>&eP}r5*zucAb0pEO%SWrLOG+F4uI70nFiw|XRils-=--_8 znV;Ui%up?KT#j0M_Be%3jDv-w;tr}J$s09IOg>EkQ}qyH6&{fRr; z^-;$oiQ+LH-uU=rgWScUn~PV#*WcUWSzp|-&6U$*&Dywl@o~=isyP=O?KbJuqwx~I z;e2kG=5DHYFiT#gC-V511PmF|(soI@~rw1478CK{RI# zyZ!~>djM8Tg#JVFxuTFR{7Jn|Ki`RG@xED>eRX}NJ{H_brVQt(Y<*YYb6*2T+VH3_ zQp+E644ygyoo+a6e5YaP2L9H0lStid_8kRD^+^On$rBoY2P!BmRPd~oZ;Y*=4XCPC&#vnBqpGyNa9WP%#;9Qvx>Bp27P#u} zltO$F_4>Ti_n2)dQ`H`0i@_8G#!EV&Y}$hR7f6Hrg7w&(oNSJV1x{{yAdXEwIWFr2 z-|N&jO@3mg_Qb#Q&(&vnTten1Gniq5B(l+0pO%GJ#@)0tH%|}Ps;3+;+x6}Os|&mG zlR$khb_qHo&FVU}WGH&-`07(sC*Ilo-N2;p;M)H3ns?=Vn64qu+h zG;j;dc6@2aQMT|T2f$*IV)*a|Zp1@+ZQY0y2Q|2CZyW~`A1~B(`m%RAaUHjt?_LJu zQU$mwqy8nS+FXoNvQ#(2l78?qL2h*a#Q0ne@&pMRtvx*Q#pvV|@NXk#2 z{~D<)%{32_Wk&FFvj%?3j~0GTJg^Iw5>uH_EIcq+JB#FuFL-eBpT`&K^amiyjDEzc zSx4S*H8a>CX_z@;B{z;5mo?q5%daH}mWyMP-F97MsWU|FOM*ouG}L1_$F>MA1F-qq zobCg4DN=_KWY-wI0{4{Na^crrHaKMkq}vaUe36t7+;L5G?6>iHq}h6O|4O3X35vBchI}=->578Ma#dB#!KzG7)B#MHD6mO zN@Qf%5a({y-O{_7k7X@Kx#Qs>=9~}ClX>=!%`gUzVeXGx4Hap-qR%D$Adi(Tg?)6~ zzxzwDO_jwaY;=QqOMGZEb4T`%^UiJdR6k|s;v6|B;0NjG?ziKb-Lfo@{zH;zZ31MB zYrjdfBD5M-dIi^j~MYHozu1U>Hhq(d|P7z{weQhyQKp8x`i!M zIEzH381GfUAyqvOlSDhe)tUNa5ofM^BHs?YwG5HBaP`Jf15ovEL|M;*a8 zEx&pDGB-R75pqN%mlj1$f5c~A`vR^P$XVUi>B zL{#FBio#-UxN0@tFBL|7X}%VV@~BVs$3PdxYhH*4ZuIRCn(W0mxKLb;AdTKgC}Fm~ z`c`vW5p=Aur_%hhlg?-229q==XDE;vFRpVWNYq!e9`-?z!=UXR>)`h&pUSwOSZmAF zhHc#8O7vUDhRRH6;q&hV`BlWSC3m>*PChZ9oU+KGas!c6i>( z;-S2Gi#Z$Ydh39{aCOn(s%`%{TS5!+BW(M<^6NXnUvz5dwnNa!*4Bu_jtpCdAD}h*PYyAs|9XqbOVpx=K{ud~Wd2WK1PJ-Gb z%PLI%j3qw6qAfQw>c9L}ox8B-t-JH4ARPC-v?|j=whMi#J()jQfh0(+_9R{d?S?5{ zm|S2=z2Z7~R4&WrOiQKwu-2mN3xDTS76m?o=El|uha{<(x%-zXj=*P^3lj>QYzqRD zZp{yWGds_@b7#NH4^_f>RK!M`8MS?E`UW<2!|P_?pqoqY4V4k&Ua4Hc<@y^z#I=f_ z^aqtgd;5~w@=p^l#PClAMt}H&T>A^$*NKJE>i$qh&<(P8a_SX}rF7R`b)O;s5W$^4 zR_ZuaWXI9{t!=itjz7z~W%opC=EQVE>aNFPpCQk59+Y!#zE30tO_+sMy{k`%WWV)n zQB7P6PrFwh%(NFd8@5@aK)>VJibkU)K(ww$J=B3sv*6oUYE_fNVDn_q3S-AHZFnz~UKJyOuFukdTl z)v!i3r9xsK`vEbUp&CU-IwWqGK4r&>6E;ESraJit+vjXr>CR2X_5AvD6z~>DU zJ>rneI`LBXwD=4NSg23NQj>EHmrZcgnQW$7DZQwh8|YJO3(=q;75@UBJ&VLOYu_O8ax5E~ zu~HgWzx<@7MsD0>Os*tE063gLPj^VU@ntf@oN`aNnmHz>aC*sw6k*x1PuHE6!!uwu zuAJg0qEd!Y)?vsYjQ*3_>7h4%rU6v1pu|fVVcD0O^zIBV5#eO5=y5d3+(*P*A6)cLG0Sx9-c!)x(U~W zTyN$q-{?2M z)tQ5Ix@nYMxDzd8m+VP@BL?AWJPmRN zHwT}V))S{*7^db5)8*q(?I@3T8L2Z_zEb-ydLo>UVRSAv<%XcprjuEr)dQ#y_cZFV zd=^G|R5_GdXgx`_(xoRzyslIG0t1hSG73dF6Z$!bi7rqRZiv30@FC+#psq1{&a%$S zlpAEVL+0$=e?At;k?22EZ93UpIzKmr3d ze>yrr6A~h9_-A1u2AM}x#rF3r?cc0ZR(gxoj3>XRykaOFNSGMUc-!XKYBM&2j78-j zWxx?wej<1b%ZW6|5==^%`1-PFZVbd~@u(VGL4;S|h&TAUnV6X3Fvbw1jKUi$G|SD| z5SIWLRRf!~Rl`*|K4Qd0>5jv{Iy(27!jg`SqbRi~pg+k5sXUdqbtQ~hbZ^fdZOhDc z*HUeKm4vS6n^04SXX@lal()`hxkIgaj`qRCUgaB4yDUeKT%Fux6pc@B@_GFZSc>{h zh%a`Wxnrr)MqY1=L-14dXWF$CH)k%FwO}Ut)qwWf76s;~$l;aTt3<5g@8HUrk~vFy z-GxGORZFN>CHr-bGl#^7aWBH^(Mv-aHh`5SywdMjYF_8}BsjMH0pnkAfk27S?Gs zr*KmI_x2uE%V~XRB;NDuc759&M{eCEtk%R&e(NNZH*Ue#_U;7 zC@W0xre3~nRKJLY!!*^lp=b62OL@e7){Ap=2p;q<#6Lq~JVUmIaEf8eseTlMHe$7x z<-YOr3Vi=G$YTQ!Zyco}Y|kJaTd9fc#?c%&#vTR^+D+gGXJf*8R|ZdbKmQ7p1amW>&wORy5TPWi>{) znYGMZyGBhYcrDcq38L>4@ci;DNFGkoc#VvUz%m+OBs{W1UdOy8dR_|)_G1NvH)c$yx5>2Q(##^nmZxl75>&KlVcxk7-8G@x)swpj^G%M z@mp+$K)_xm#1|xtXiE0w*LfQZp$n8((M-E#%vGzj1Q+VX5F+u^m^b_Wp$Ny1L|ZsQ zHJ;!Tp?0-U)s)Oq6~fC0HU-|xS1m0@acefK+AUh83zTv;?{HrVDC%OnrC+R$fRdaL zL&huDJl(BuSuapM^<7b)SQR)xtrp zsN|nyjW~vsJG)(To+_nOEQH#XQYgT{yNX0HC(bX#$2WyIbS014VpLZUd%+H_>SH?9 z=tdSZ#WqMSB$sbStHA?Vn(T5d$(TNNGVi+ma5@(63}S@}dzxhEI(Q}9W$cjKhdc+E z=pg32c>W#8H%FT7Q!zZdBEXPj@Kfe;;fda5iw<+@v<|+1*oL1M}4rT=i0nrKXD4r94;W zJ4Vq-<-cnyxpz?k7KIi*QM!2K);zr!D(smsiQT@*9>IAUEob*n$imR)IK**o*{s7^ zYJvmjfrt>ySlMG%MP$R?KWMRjF2o@!hq5tSkAx&<+hz1Ry6s(|%12mIr(Ca}OD5=~ zh4BF^`HwICi1ptv=X3|-ghlY<6>4lMyA|VER$?zDZdLv09ETbR+p23h4282g8b|Cq zK3Zy-Q>I(hW}m|Q@sc)&bw_wszHoaYC9(FgrvMs5nVD@L%g=SzCz#c0Hm=TPUDP-a zyV1mX(LP`3qf4L98;!7Xah9!DjQy2UyxDZMBq#bCj3EyN)*ZeJ*_yTCq0Q5jVj)rfwxl$ilMu*25DG6osvFdR^8H zwCPkzbi$bwm~_?4pf{nHUMZvP@TIbhxRnL5q=5-v>axO{8B(V9jIEYb@j4z|iBo>= zUtuazzkwe#^R`1w3KAo1!! z&AodaZZ+pTrsZsABvX5{di0=ha(5KbFu4qQRsk~Qc0fsV427{idQ>dajv>3L+bEUk*{FUaD${WT)$tZrp+mV=<)&1o2O@n$6gZ^=*1p$K4nHJ9gR5Oz(vR6zloW8W&=w>Xp6nlxYA zAS>pluHQv%Y5DM+*!YO!%kc`c-Fs-KWFSWiy5YTbruD z8FBcp2*S+Q&(%m_@4FrjxxL)Z3{{(O#uJl80E{lwvPx^iBQorA9X%w6HeT!Pib@%B z?$yP=GiGx+%-pJeRJvbSGo)jGk}A7fKIf&DRPCa52ExpB?+cx!-EN)BYrgpw>5i?C zphTK*L;YKBhWf;d(@u3kCV$9F73}2a$(~ai8ciaggsG^ZTGYUmfT8j$8XwXv>)yA@ zD;=4tb~S8_iu@2gAa~U}nI<3=I<#`bjwQ@Fz*a)S*fP~B6ZSEOV-Z+7*rAX}tl*Nc z~dWyEocknRYY;jmI780Ab1E$SJPsb&}G6114)bTqtn-wWG!D6L5FX8mO%BvZBh z=4fG!S@PAO$1(Efl%Kop?R&treSF1<(j7r!Cy*d-2+_1ZH}-xJG$o7t3%99 z*1px11R`%jUBAF>r=PRnTJ>woQPo^3TOUG-lPFCy<@a7;TDO>znn5R8g{w}Tk)55% zb+ka(>f#63hCd0`L7tV$bQR5dy@p~5x|3rp>Jn-}8Izx}C64$D2+aHPj(z+lm{SKL zO^V>|zJawxYgeM_lEOMsdEXzQ&T2=F>8<7I34wOBtaZx_(xD2E{uRCWm(;Ok8oT9EY&bR?jyBRB)?z}{~ z(z)|-#7GvVhI*xMnF$gAcE9p3El2!DhIGk@NT538A{?j`=O6%FQXvY3E6ANv4a8NU zlTol@{i*zcvSi8U%ht<8LlxtdoVoOqU|hR7mfAjxz{*HE3f18Ako`8y7X&Jr=$nJo zCpvq2GpT-lxa!;>ykPB+493`uG%OxP_RM17TDY)BE^E)wHb{JH0h;Wi_&-^l?sw_x$VDZLvve! z`!x9H>nEDYK1DPeDR9CD>658h z&IYpW$Ci8={A`{1;Tu)Ua1n&=mjN&Z6o30U~KgGC%K zB%7Z`$~tg&VM`&o6J*2zp#xZ+m+VXh$JVu&W4HeT5%!_@xHqUSx&0^=H3b(cT>v$p z>(tL4tQ2ZHvdPNg`IWLt4Mqei%!7-u^)CdE!)g1I?S{?Q^pAKNv#`t;cky{|U~|tU z-ht^PN0cok2{(eMo*3241zmf}{PO!9Y|OWkLBS}tvYU99S7abQfdG5KLIIxwM-ItZ zj#pM&iHar!`F@qvakd;YBZL_EOy3bk$;dN!YJ42Py~Cq>b`VILS&WjLln$ z(K9EV;2c{~JE+41)-gM0QWd->3aeF76Ut8w%~Vd8Gp*Gh;m2S0o8^RmV_PxBP%cMR z$Pne^Hq+U{thVuD+d=jOq_S1hpoZ) zUyD($bSbcpg;z9(zG3N1xHzh^Q7-kR$UIj!QVk2VnpIN64smcp8X)~**^h@5Cnd;G z3^8*LCJnBo>BkMP+#_51Yfb8a z`7H`ayH(*taLA;*e1BaBJe~_{L|f6AS>+G^0tY_`U$~*(wmlZYHU+ns?)j8uPYPy}sFRO1CY`@Xir{Z&%5(ocb+~@RZawy6)6( z?W{22!J0)UnEFqGP$ffDB}4ru z#)ugMN~3zQ`KTe1sSeYA_l!7J!=$8PYAjN_Z%tI8-zkn=1Q@|QN^L}CQG->MDic_G zW>_U89nLTLrM8CTjYu4T5N-%nol!e8deMc=aNtpCwEzvcy82Pa$uXv0tpY z4R%g^D7oz&x9haG<&@e5wF!f|mHnvSR+rD#Mc#K8c$jq`2S%Pl{34V_9ebP6HY>KL zBZ~6+i5np{siF;~0rzAO1LQ9=Y5BT&hkWUYWa3L5qnm$$*Ecd1x8v2q4c}bw4aU#r z9|j5M`rarrlLd12`1c?uJ^!>+YuoF{Ykp|I9kQx^?J$l=>lxBgwtT}8?7p~X{`k4r z$2)RW?qXe+W<0!4>{t*V zB~;BCg2v{XZJA1&@TbOAD}ShPG&_vipf&6%kwO-DYf&|1GZ^_X3hl`p^~c5YmF@DsYlG*J_G;Lm&3rgOVyw8n1@LrXxe?nGg(*kS~; zam)QiS~G<-#v|S$1j$vU5u4j&+i9dl9>DGqJve^ZQ;j~zRk7u&YoXMVS=&jl? z2#e)xX@b*3U4UhD#G&1rucnTgWSyHKCO*1dRCjv@Foi&{L@d!tNZd}fW#hxKQ2VdP z#SUkvi2G}TeOG@hwrX0cDkpCVwq~^>YE|)9Ai`(zU)*<#QhZdyo&x2gla#Ykpa0-u zkNTz6=fC&`*?52P?z1A*M+iyFkpry{#RJoQuJewn_-5G-{d;(W24fH;T4{e&1PjHP zVJx(@A9}W!V6M`?o*sFaRs%r6eS~{&BuU0>%wwl~SedqVkX#<7@WFdkZZlDO_GTC8 z*np-UZBV4Z?6d5xBVC{KZX04I4HvKQ2N$i0%rx3A!zGkuWCrgk)33X9wchn>otbNo z(+S0TVXOoK#uH@`YLU(eHJO#BnEu%{>FqA+dx35oG9b9$%HGo!l$Rn7l-(PK4=uSr zjY&M=FjgOFzq9dWvG>lKGaY9?E6oQp5 zfARh7sORDORp(C6Ue3RKyemAYVc#^7D36W6Y3^-==cRb-oxA1!Ddx>t6M5(Be$DC1 zExiELF!g&^d1FGPfYs|n1@o%HH8&ldC;cWgrpWZv`NjZ%jn0rLw2htm-bH?+ko)1! zU*N&QFVwk;0{hf!pH@m&u2xav6R(x;e;G4CzUEfbLrW?>EROq*I?(Y8li zKjYfC*IT;04R3iCemJx;osU&@z|$l}{sJh!T;aA)n9i^F-z+Q+(I(HENyYS1>O!sU zx%J`pMc#*wQ;fa*D($VQlHDuCDFNz^@lFNtBae$F>ucvLa`!eSF>GGjL6*)OiZd6w zyxN{ad0PG6V&ZHECE}J&mvZnsiGo$*o*&C()(_O(8*jc4t^~bULuXd2cvJBCOt!*fC$Yz6C$RtuL9F1j zZ;-?zrjuvVjYhvQ?!h>(cyr$4UDkN2bMg$GGJR>Z3MH!N!FdNL#h*r0rf5J+yGZxH zy71dpUuo|1SaqDAVhDZ2))op}CDwqdh-V|7!KzDBog2@ByoTx8A;|J0CKz;KBhxhk zED7}6N#3jTdj`8Nq)Ts8Rlw#yrfKFEd%Q#5cipb)B)+&xCX(zGm~Un--H%slJBEbK z31Dl9ex0g}>j+g0irPsw;qICpB@rd5$1{AcOR2z+^;B7z>O9`oY`eNXjmfbAO7kPA zu{yRgcs$J#J6t{qB_3A^1}n?ro!2hbJYU-68NVrE%U^JF=ctc=feS$%>zH(c?6-;_ zG+mx&Py>45i=`y%@Ss?voB*5yim(oqHc?Z}*thyK5cUS;;i5ZU3RQy$(!k9RYN|tp`!XM%_>8ID>S$Ovy`_|T+Nn28!2_R?^m`3^p9Xcltz>oL zAnAyNlWxI$?Ay0H$K#_;W*)i{LB9RONPaESK~5*{yQzQ{*xmv?d{&aYpDCAaDvP%aElDVVyr8=JcCvhm`G7;!wt@0UE@ z+Wi(s6k%)DpR592s_4tq6swNZtoqb#!dlza{sbTP;$`}5DEdJtGqJbd?_W1Uqz3npyn3+Vje52uDEA&c7pWf7H;#@=qGyKQ&-*_Sok) z^q8BB`5*H3HmFd!M3%>|QszHR?gnpX#~03$><4am%^x_PIP~ zeru#VynXAZXm}_>1*eexa2RW(TY5IxO^l)!jD_oQ|zZccecMWJ*yJ9 zo>KoURbimy`s#ry^*eiOFZ}xT^q79>jX#&~zLR73w4#gN1f$a`A0k|A9{GWUjm)jy z-VUH{d4(GG!*5?4I#_o~IeHEE&cs>Ozo+KjorCRBE|`Yy?3qR zrySOi&q6n)iG7tZ<1cVO{+spgGO4+xpK&U7mO#XTcnNn)R^txcv{i_+0dyTyEw z(@-SYAx`Me!a*>fnh*Xo$euteXYZ>Hpl zgSElZGfvI>>s{VJ4(MRL8fuA!;&^h?FOcPmH^MB_LdiX6pBZfdv6Jw{s_V*f*&j~y zwftUf?+(mYiuKc0L)f7`%k>hER^iwrKlUbd-Fof9L`Mf82wd zc=)tyYb<5?aW9`*DtH6@%C06>RlRs$qS?8}k0xxxU3!VL$WXp8+9GatZC`Sx%fL(> z>jz%)de$BBd4qr>i}|phe*xG_<|QR>9d>IP-23!tq@`YZsPYFaqL?5fS(NQIxs?|c zl77_~Z+#8>*h{%O_LcvU$KaA=W7e(puGqG)j@E?BN5>cP@8{heU4&Xjz%zg{rr%(x zVrknQHZOt{-;loug(!3qzvQ|q9}rQ-CY?DXXd67d-tx?!@$HIRLQBT!x#D8gWd>lqt z9RBJ=z&#lJvDe{quyFJEZ2aQ9J4eGkv@u;7{5YiueU@KP*LXPM_($Bp&-3eVHugST zZ{uoi(M*FrgRq5VK`>>BG%~sHuGsb+PK~OQYYet3~{QZ)}zO z+<8#3u2HyZv3hYVdPfo49+Hf<^(}AP^<1YtAJ$lS3UKiI{N+!ZwF7syhhiVdX4)uP z2}aGi4$f2D4Zxb@`CdhzypyK&h{dL3Xeu+diy|jbtB6^-tcE!!glG?N^vO;gIL}=IovYOecZkFu- zEZ9Sum3Y`%%2dAiZkD=jLf%40SR5yRp}3-hPgrO?b>X(slb@0q^!*0fc`wt*Poq?e zqg?$aCC2zQtF66mGpey`szrU3U}wBai}NgO5xXRT$+i(~JwjzoXC&nbR_!w9grmx6 zoINB8B1z~eA~{zRM>ov|wZI}34!w7@so?83s)IckLD^Sekh*wHpJKKI8tHfVWoh-e zU5#L2VMAfI@H$a?kO14BInqA8g+lr?lk6r(1wHAB%8(G zCNG9=I8eUj>l2ksXaGPqzXO|(9gS)b{z+gRrNJwmcmd}G7Ct$HcQsR;B)W%|E>l4f zCcwbFT@k_jkPnRr;~NT|8Ckym$Wyc)5!yUk@nhI~!67^8VT!u5^242}=5?Jp^XMst zXXxhjgzJel-*N=NA538^;m5q?J?op)>IK7~r!U9kvL77m-0Immot6&wjqdvhNDj*0 zD(_#v_9NwHjDKk&BtL0!J6%e=0-bvnz9i0YP#h1w|HD~5qHQs<=g!F^7hgPH;&R>J zEaWU)Hv0=$*fH*MRy%$?&|E_OgxH6M+b6(gGnI89=~y>E*kB5*L~1lxu5dnk-EhsW z{7Z^m@#WndRZEv)*)5jsA)6e_`d%fg*6!AbCz#o}hA1&+x;=u z6qS74M&Db1JQ8{~sJY@zn1IRLG8Uqrf_4R4sc0=(<65QKkk>7JM4NrCoWCpA}d=Mw8vSXoX;IswtZ9Ra!nX>+{3K#PUtu zvw;e67#%@8?e2qBaKSL_mExFS&%`5odr9cZ9L1BdFELawcTp*X!JpybULSe@NJ)ws zRG8fIP|;}ZzW6})v8l#^KR0gNb$&Y}nm%!3pKsXIr$PJ)q9B*4HPJl|hTvQG@KXu5pNgg{FIXR-_5jkJoKf+oox@QqYW+a2V zAUH+uUwHK`Bbi$+pZZfa=Pfp_TuweB-NB!(EU^OkeOt=;y`EaLs$$k)@nm7nO(BBt zS^MtYrO&~MyI%L$Cj?G3=#`*Tr{2O{a1n6CaD-5!s*n1d^-$;dmKgHQ6JA8$>3&02 zyM0E$Fnp%|{%!qs;XYZTb+fPwQnLfRrSC}{nwlbh*<9lkM+?ZD5njs3RCh1%_;rC( z*HqQmv9G%))RvfW0GtjNu(P~zk<62*^n_WC$jLcx#Q3N2ZdESIzQF-C(Qs?g?a4vI z%LIAQvZ;d6GiHF$r&Ng4!nxpW-|CZrMQ5`)2d;$)$JwL%EN43c@k44{va<}x5+P-~ zVB6K)MY>gqZSCwJ?rKm*AXUIpq3TKGTy(O`w658Yi^;b~UDe+%|Bx>}q@_T;yZ9HdAIOdhp8pHjKEE9OF{vqX45BwI*oQPVH&-8a_-)=f zb85djYg%1Ff}3c7r_nY=3}*>3;gRJDYv?rFK@r) zw5DtDDI=0{vG|$-sAY;9)@4++B5qHYignOM8m?Hk6{`KL9J?jc z5xjW(`JF%3js^k6=Nz@e-p%~d?M_@`S8<_d({H>KG2R^J-(1Ol*=mp|Ft4|uL-B2i{uOCMtN1714yp{$ zNkK8c>t@K6>baJOqQuqnHl8IH(PEG3%Z3Wo6{47Eoz{if5>szVZy_Br=|tP;x;l8w2FD8Y@f57m1+=(MG*J*+h@ zjkjTD3_^pa-|2M@weI{5OxyH|JKy=`;*0m0zZ+J!f8^(#xzd`}RjJ#9h}7tLm2)nO z8R69sH2h)>68XaM()`>abcU=9vMRaf0_HCrw$r?G`l457luOuaCyh3QA4ezqmE;iC zXf1fE$C&-gv*h;g=egUzjDYNl$U^M!(}d!u+Q;VI&g)${U-KjJ(R38otvgQ?3*o2w zEbjTfm7MAl$=keT_}RZJ+kn#E^1aXqPmjTF-ioB<7p8q8wVPxLv88%nXNNxNzx_6! zWvMM(r~+VjS>&~2Re9!N(waT6XcSk__9>@+oSHr0GI4r<46@T|of7z#g?i#9{^3ij zju)R51mRKw0R}TRaw80Go~Tlkic`-m&HoT}qwS#h-I^I`xj49YKu~VshF2pq-H;qC3eAn+uUG@$69>DOoSQw_@;roaz9TH;V+fT_ zbYap8FGE$}7PnO$vV^l1yKaDyA6^c3vs>4#_6Um4cO&smZ#o+1%J;la;?vYWX4J)A ze$unA_AkKf^NO@%5T%}KKV%0G<<4|ycZM)K#Tzfi61^#zrOfP}jPl6_Z_dnum)_Td zs{5RlSa{$~o{+x5{GKX>S?YPl`_4eZdM?H70ho|OL%4ugc-kn41>-mZ3Pjl4IGq=> z;l%E%LhX*^(5mw)tPA=jrDTm*C>JQPI&8b51_Z@th$zsl6&CYph43UnoKe3!&{NTt zB7OuU#ydE2ihBjr(4-sDg2WV)Zx(;%kKmXSST}x$ny2t6GFI&_tevXwP$2?k*GLk^ zVN?fGzcEBV>~p^){!yMRsA?w22g5H@)5xZpv+bl1S)-`;WHd$zpw5Dr{65*OljnM3M#a!exg#+_|n&527bu@hI1bzYENzqo&v4RVR}H&)NGJBB$o z)o}iDIR3rP1?j#pjohSHcEy#5Lgs5#?3Q|-zV31V!k;#c5eJVR(-^oVE<#j*J8fpA zs0Iij3IsHJzIjX;B=qk2F|%2T`(9W#e7cjkata3U{Sw(aYb^ULd-JmE6-@)@8_&OP z?8rV-?Y?}Z=0?EzA7uln2D1qoHz%J=;jeci(4b2X;ZHXPnq<`dvBuEg#)$*7vCHkP z&!21`=HDOA|5%w{<)n(K-|+LN@d+l`4bMuihu+%1F%5MZFA(ro1{&@?)$`#SdWYJG z|K>B%!>Sib>D16$SKi^0`iHQ68E8DlMb1rXH?#|t+rqGM0 zHd?M6pBZg@VfRaFw+hALVVHxT!XE9%e}RW>(gyb3-3e*N(eFE7h2GuIvf*1%2ayD= zOcMrEsa1BfO$nFpYD2G7**sDI!1xo`H4=H!;6hDe;4$^mul5j>Tft`37nqKDE3 zBFP0p<;2HB&b2QmuVx%?fkTKzc};ta*V8H#K(>p!?T+RV-g&mnM25Y;*)z}}Lm-yC zLV~lRjEyCRQ&od6-k(wXQGRFE=gYkF5&yQ_d@{5V%47zl!1V89m6Magh(q-J^Nfny zFV24Zt(gAmhR83;H&cX=Zy#N98(p$4!1B#CU5$)^Xid}cH&0qgqUf@hvj@>)tU*ah znGExaLHZYa`R<0p35dk%80nYRRgw0W__B*jX!%w+A@MW8XZx>x@Mu1Gjia)6W%8PR z0|(3VvsFf+uAsy4X)e&4Ope@cE34G8EOfsNO}{--bdA-;8bB&tGsP_@*~Xo&s9N60wG`914G+1 za5L49@F@Y@1Srfr>CN3v&+kLMC&nsS%EyjLi?3g?5_%$Ng~SdzFqe{y>V6zSokrX~ z-#d24m}ez;eY7u9=)vt>`RSJSX}^>I*xiykbq_axPqyAaMml_2$87CHp64BRPijDW}PEj>7NEkSAn0Jr!A}Q6q^RO3kX;t3vHkf}%zvVvo{_ zQL|Re7Nw}wnytNOX=`=&`{egO&%2zHyvU1;`@Y8Ks-Q;G9(-7yo(z@|OqOXn;cjst zw1W<938hI)a7=DZ5q6Jif6NE{jlkl;SnM_9(PQ{1URY@=`<1PAhWmE$mw)b`Sgy%d ziQ@8NTzhtEAhFXKsKKK{JI5($%cSKj(Um^-U1LI+RqW9{=W|hTDWru2R_~V;b2>yGp3EujXHj7O>4vH1SYQ4v4aY^ka5OVLAeL)NGQV%8 ze$tV8($#4GIY}`OCV^r~|HHpt?%T&t*SFym*=gh~834=0rQ+=y z&P8Wxg?_l~Sv8=IG=_BhhD4H>wBxtwdc;#d+o^e#QO?>1i+_q5*&3X}%h^9E0#oDK zfOK5x-Y=kU((Z-(oD^tefbKEV^Gomm;JupyB`Nmyzn#yThE7QJm&qhh&mU3C{ai_q zK+++(6Y&YM!mN4W@JvE(5qrdfArdM4F|OqX?+sxPG4QsM?GvZhTMchtlrN)YXs)G{ zR7p_$F;s_d~2$Fa~uzoWtxcOL7(?B-lGR2Em}j~IC2 zxddu3D{Oo?WLdP!uSJ5TIw1S_dD|+N>Zaj%=l841p8uqOFg!By!RlspN{RAYq_?L| zyld*RxIgsDZCW`tYy`tFNdf{S;H*$^dhT9wUHW6oHdh7VQjIq>{arb&m~)s5;TdSyXzo^KC~qnKZV z!bpGv$;V%0uNvI{D`oHCpt96Cg0|zKX`^l5I?yo?5YRY-31Bl3nt$*Ry3&{R)B15y ztQ$g7UN>`2K62oGhyK)D2t&&6&VhZe(6#W}VDwc|SoTW0k9P0PpT#d< ztk^m1rSC&b-Z|MzxB5Lwx;Y6HLK|!nfiZwQ$p8l1UB%NwXU3H_>huMl@Q~VlT|Lf{ zyRmd)@FT!c9y~zveC>Aw*-ll!vYy|*jI+Y|h!oB*Z^qwm%<>%*WZKxOTc^@B4`t?q z%xAn8d0wVNa5eSFsoYc+a5L~I)5p8Ir6r&*rVX1&8EeD9U8M>O zbzqmCvLC37z!q}I`{W#mj5OQ#CpE4**MAoKAFpZzOhuY=<~i{IadrKy>G3WMK3;Wl zs|(EztUM)Uoawq1{5xW<+Z@ge0l|vHnHz;&ul2u>O1dz@{xwtI)v>c9RX<{yMai|# zfZ13b8F@gD0_kSPJLARo_gbQq>>Rt7W-8g3Y;V-PB2!2t5)MGT(45!XD>M*vo?rc| zHP=t>(y@@&v}#|f9;LtNjT&rNxT50fJ*zJ78NY@hx9vNakAfUP;xiOTM;h)gfk8OB zaJaKSf7AE;f{FI+u322_OuabuKLFHZxzxk2d`WESz;C>5moD1JjfqF6mL%K&8H9OVNef&anqWp>d`;Q7q+_{h>p6m9LKP#nYKxL z3)8ReLHpS740(vAe&~Gg*Y+FOlZ*H(l9ArNYnT`mHwkv~A0X&dn8SuOciM92i?PP} z72IR1>JOYq3uP%f^JiWc0m5Dvtt#p6Q?OY8X{#!8U@4C$5`{$QfnwqL0A^97v;~0O zjLQOnm|%23^U*CNA@B;#|&bKPs;PyWs_s^^U07w%6H_yD1ZVU&Or_z!$x%{-k z((Cb?8^Kbg0wqlTB{!Gzz04J+c&L`1CIF3K2*soX7*%PEEAfhP&rqJidIBa(|3?s^ zy%l|K-7FxaeBh!Lpz^mlMQ7yxvoz`0$Emn{B^p`6i<$1;=dPSfuC>o3(7eGWJGev@GZs zzu9nCeafC}3Yf>0@Lc2X{W(X!ar@Fs%Ki%D8{@@h!Rz-4*!Gy*&40Ak-1fxu`hYM+ zO!DfbM?W8kh*x!bCl=csEr!e3l{U9*aj0Nawd0BI?ve*Mv7L9#QOx&|p^*6266T(L zn&A&Djaz3ea7zj zm{j#Jqs?Oy_~G9)fkC$=GlgoqipGt--mK;X_rAaS>Jvw2r8j$)dTGFpI1mLRW-2NH+0}rV{{hDIZl2!bT3T@Mlxb)QsQX!Y0zg5v+*+J3^@E^raPir8Yv}mmUfoYqO4*TK zBYM7tgrD%8aCQM#Ug~N)eCvMrL5XJQ1(?ZJ)zUO zr#)1g2-(_^U*3K8+8vfhr7~<)Isf1b1hhKJxbRz#P|&^;4kssD)-IS`0)le>avfXqW+hq&0e1vdN?EhfROzELB$H zK`R@HQ}gSIz6>Y}tQ(sE;RKqa{op#r&Pk^Osw4bF#CwYo&+6*6%h42B@2j zsr$DCJjc5}N$T)pW+>w$C7BN@#e|9|$YX#qbrDB;M;lPEAN?34_j2#X#iZcy>{u*zGrxU~*Zs#WWMfS58Qihhc}KQlQ~a?ve6>B2p@=%%0b zi~zBj1VC#>7z0_4l`{cUOCTRnTqzHJ!!rF@HWb<_*p^(e{vG4M=Ax?C~5W6(w6 z<)*c-Tgkeg?0u|c-*hGE(%cvbsFI+nUAjhV;cE?E?gd*qBc*ZalcXTfsTxdZ`)*5w zS;A$1xwEU?WsA*Iz6<0O4?e7;=|^*!;YF}8E4OOy^NQQQq>QrtlKmFf>V>0hLOpc@ z4R&8e>b#`j7lio~`QEDNCz?SA4e!Z_RbpalsdcDz62~6|lg8dz ztJE@>H)FuKl87X@jC?@U0o_PsK}vP`+?L!&m9j$_!IB{&V2FEo+Ys-_!MK8dRsXv3 zc6VD4j;e#3^Sxxme0q3GW15K1U8Ku=YmDc9qG6`{PAH)CN+RP-0+%ANqAM0A05?Xx zxMo*3!a@~9m?<`7;26G60-l zCbeB}YbH79YVX${aR24rzxL*SGG0`Rb`y#zheKsXhk;(DGbUA_E(P03wU@#z-bhz} zeVJr>teZpxgSbISt2&xCNUy+|@v6{(?1Gc*o~)lS43eI3_$oYorzA$5-!A&_rEd@aIfFjrrK{=mBCBbZZ_dW+WGox;pCcl z7t8lUi%Q&Fqc*Y|GB)XyfNI5Z`vB4N$t>1s^-y6}8s37wCILB)~*nn345cW2j&)s>1Tatus%L3adu zjr}qw15g6v*Mkg=Z}=^cc^OFw3=AEiK)tu>#Y`xHdIJ-ad)veJ?xl>D7iq0OS)y-? zCBjOc+>nBpmTKXsanHui+x>fdi{Mtf?8L-ecQ+*wQe-6i z^|KkT?{o!5Mj@QG4s0W0pada)rk9|%sK*-z;z$%XVr+#8J+t$sV{72ROKb_Ia@322 z_XXoplAb6gEq;f~ommc~@%K1I%rAhr8b%q(v4X>(g48*+ow|E>~er zHv-}WBr5>-Q<*CU&^k^cLM8Rx+0oYD5+dHUkUf|7oFcbjfDMfoBQ`<|ikb>4*;@ z=YltC2v&TsJmW8tRevGe3cPOBgsrBd_Q3Kw^X+Z(iU%!7b11w}k7u0@UJOuTqs$jg z17w9e!Ln3R+b%b!F?;x6i%o!cy{s&b88R4yXK^nl*kLhKqIRikiKr^!}I_~H2 zMKC2?Wr-*@X7m3=A?Qh-03_|@oPd23J#r4(p1`R{7J0Qp>*nwf zzOe+*l<5D9L+l6P-UG_KaOD7HHrk058C>RNNq3P)Y7AI{qo~n>(`o<1v2p8A#-y!) zy!151*qAY&F_{OMY7k3f=J9#qDF375Ins!26g_60|AWr~Cms!hFFDSnKz2^1VpNqsLQ0~U1E z{zU`6LVu5PGr!Xf!(iIX;rDH_+^DuPCWjNF$v{8pRVBfLMq2r+3PNd+h?0MG105ts z3osnAO?PliLaO9kHYnD3{Ahcx(_M3phnT(@!{+iM)6%iixF9MqkOa1h=!J8t8~;wK zLmn)dEVSHmtdgFZ&CwMH976R7L5vZmktTOFe~nnxV6J^URj5`xD;i15XrcI8z@7iK zyxo8C^5$fnAY#DZJXoWQJU(ghg%|;aZ8Mn8lFFO!`oEhAtGIO?FO#+(GgdY&HdK-a`-fS9l9LOAkC9JYQTCO>n49Azz@g zgFfTQVjEuCOJyAh{>Rng{~y5k+APM4nvF5?Z{vJU4LQ5^u?(K6nHpeX9%(Xt@wmRO z_GWn5LSo!C>mfEKv%Kr%;U|L%Q0FI^w}eWz99};xSr*~>JEb;;`y;#HgJ}GABSsFb zK}^tra|Y6Jf!xh#0KFWpYSG`iBj-o)wf+9ram0ie=IP81G&VN%s}5|2>F}ydkpr8W zT*sSAKhvUkokiFxn$C+p4ode{I&PwF&SFMZ(91-nv9&;2@H}k~XR!Iz13uwEuVClW z_w2ct)&1<1hkHk9+T4O{X0~o4p%+{Q5psw-Sp9b6nD&_35-H=RB$KL z73JqI99!pwqNdccSjyfNIr$Q@SN1RhJLO()vwV?c9bjJH-%k_g| z4$%*%_do5nrY|Q@Y(A^bPS@}P=Nm}!Jh=kt8OfYb9-$AlpZPls3p0>7vWn^|NH>{N zR6;4nLsiLitnA}F!hgAb?W5OpC7o!O%-5m9To55FvvBsJh*5+K&lEPcosJ5kU{3Qc zZJCdre}T%R-=Y@yOxw0SIPU)aeZo5BYTDJem+U^`1a)UK_R@jIJwzC%A!mfpWINvN za>FjUbp7V8;x#x)lE43C^gCm-@?faf!?iijaK@Q>RghbMF9<+#j%C`?#NXuG>Zp+u zHX6EsMPPmI;8LLo1p?rZNgQNiEH)K-G`3E*^a@qV_7|R6KvL}lY%NPlFs1-fxDcyI z)96g~_sNYUx9C6zKw5!rcZ)^3PoXlzRyq#~Q2qCg=1DImpGWs-HXWjLAa5j+g z!k5Bewm@kCps^*SF#gyhk7Bj|0AEugZ`wBPl*$Q6Uw5$vo|EWckiK$89k@q+z%bwE zNvNs5-*w;SlmrzLRWSV0E8{1Z>0W!T%kw}+D+D%!>y{lIJV%>zIL+tZw~nL@t{d}Y z34yXu#XVfZR|mUh2KyFO3i_JWLuI_Jp7!y8#-m{5-d&lJ$vo`+$e~+~PqN=6%*4$1 zGBVSxKE)DHFn$3hUV+;xPecFmwKo<-#Cn*|2q3;6rI<3bu8Nd)VNs(=`q|Xbm1{dvPnNQBWp>e<{mEkz1)X=z zTkLQZpIZ@bcR}l@%sI(IF8+1(e>J7wB&1MnQ&H(}ZnU}l#s+k}>zdT8{dWh#0^-aB zIw!$~Bw#y|m0!ExjNV4H5;qS6Hkg56D;+qu_~Ot2z9ZbR^=TEt%XE%J2gTw-G8H)C zG2-b4^7<c<$-+nk<1X}cp43(B@bOOVyYIPn27Bba^e|_ z+ee40EyZJIhg+v0Q1v9l0`LS^#u-isVDqruy@olS-l!904#(JIJUL71G4w)EMFUuj zGwS)JoA|2hCNHUB!U zI3|knj$GOc+KizS0O8;Fd~SIPuG$%H=$7ijWjBkWkKdk2W${#A8h{~`QdtRXZeb7m ztj{^x{?#;o$$yG$Ad`g%Jg)b}nd;Eno#NAL0WES5E!BpxOJx7r%YL6MO&VIdifYRm zn91uNfeyC_5c#rk@eqBzfvkb0bw?v+>JLM#kqibB;J?=5QL_z#%CvR3^v&>no>zvk zy|CkAWNx%FKm)Cq9u%%O+0@$q2Y6gH_a7iEz6y;cwV9)dFfJjKswOS6lCPy#R{VH8 zig*6Xy!KaQ@a0-Fb#nN=*Vro(7->bkqxF+tk{2=dTtu|F$ukF3lN-s{vlZidkvw4q`3gD>k*L6-VZ`;O>H^g%eqC9H0qj!lUQ7#H6U3@C1Jfp7u6^Kbhvc?OP3Aw56VzKJKI^0ra^(GR8piC3P~ zNKr6gXD)$TD#8=MZxdhS6OWzLPkmOV}cFNxIcl z42Yi-596|YU|)H2-3gBc>pCp`aFbyF!JoHnfZlsNG)+oqZEi{^W8!PSPRP`xW-;m0R>BXTQUy{Ys{sHeLL_m z*)w`&H;0f8@?3@|bM*}80u>x3;%d4GPvvV{9n6ifI##{c3F*Su>`rWmE zOjeRx;=6*v)|01iINX4VCPD*&& z1GG0^=A*>$iqos*U8j|(yu6lSKI;O1r;;y#G9V!6&0ee3!?>xqe*GKKBFE{cOobLQ z^PfJoH=xt|lg)HlIf5MOlD;;*zrQZ~ena}oA$Fd@wB`a7Y(Bp3>KemrtTQ}oNqPW$ z!t}z{@!6hC4Df?srV_U`ThKqK{cAAGu(1?}3=!+>W+{+YZ0NoFtOGydxghcALz$QU zEf$JYd9A%(e&V{lY!<~+RLx?kM=UFWyYm0qVT>3BUQbmnrZd`DZZk5Ew4ZvGhQuQp zi@dUdc47NqQcmw>S*Z_TrUh^S6utK)4A?Abmr@)JSOxfHuDqce8}t5gFhGhIh@|6j zNublE1(Rq=9SiIeQz?G2ECwkAvt6nvEK8_|Ug>83Yih{ati3}mpmL*RN823#zm~S$ zW2^TKWeDdr9Yf61-?P?FYZW3+URfp|zlnV*S?ODA@zV@zici73THEsQ*`z9MJ&Qc# zdE?=4To8gevgb{z=d~B@FCEjqsXHUjR;48LO-sqPWAO3)0>rhdm6z4_Rq;q9?l3!E z0MsivrBybUc=_XG^OT10fJ2+1%~!ss|9GF!0;w^xb?f267Ja+I9An##|`0^|}!eOX+ZF+r!}J{mSrDFv!+ zirqb>dOYRP5B~fLP0BwF+hch~J+x_(4hv;{|*=@HYzqa-8WPTSzvmQwR zxYT`dN?`B>{YazT}s!MorAe6d)oQ(lBE zj#Spl{1Jos1Nh~943z*gF$wUxsn3>VU%U}IVl=u4{iTz3=trmVa-!0daXpON>MB|6 zB&tuuiW13F!DGz6Q!`3;q*vUs6>KV7Nf{oQ#u%+VKK!z>4*#)ts9|;^1k;Lnh4SC^ zJ>#N!!OXOi{J98Evpj8ol(s&&;^UiLYg&Ax%FfX@ycBEx#6ke*QA{WNJg)Q6EoyVP zerw_4{w$paKtWs*|7WA5_BI<|G~}(5ZP4gb#K0B=ZO&+!C-3Smul{&0l>ghpU-{Gu zB+Z2R_a9(*@rRPb2jzI$(Pv#Iv`$V0_wnXl+dQ`*L8Ur`PJ2LA9z&mQ^cE6)U7R7l z+dr#o-sl1ZYmGY1;$F$KaXN|1zTM{kYk&&9l18GoCJ^FfyK>DxyRxPdP}QOHf8REr zu;In09YFT{dJ{lB#c^JbqiQ02G zD^KmlEstF+I;l|~8FuT;G1!bp+|t|#iE=m{W!`&mkK*OT)zljOf#u=I{J|caLX!%z zBxjmQracj+GR8_l_VwakcWKxBD<|I#b9`hqm-B;}^4fzlWE+ie@wE6mruco$P=;#8 z;Klt5o0_)PzwdJ%>&|@81Kxe5!#%`3+wEbxv|bjLP%p>V-NRk&jlm6x1cxjsVhJRzU6mW&pLywq?whE( z;w-y1ie!M-YczwtK{)K4GxyLgtBHfp`vld6WZyP2FHOr|V(uL+CWK2aza(unOI_nx zc`fSI%7D4mCKq1XNPGk%sKNv2EUtL0Kt}HeB@0I){Ha1#S31VG0;z+Dp#GNoq7+Bxq+{x6`Q#&rv*xeaKgXG zF}81|TV{R=2>M}3uKnj>Fs<+0EL8oQQVX+J` zWb5`eC01Wl&pm=WZ#9oQzxmAyN4YYo3NM960z`wGOMlK^c3kr2cM{nhUumbt)A`vHmZ)) z2%W9Io#ZuB`rJ1`I2L73GLDu47-|>YY|{hvYqZ6^V*X~Q=gBQ*X5G7i!xL8_ikK{cf+2BFZBzkZ z{^1@mZx)%W4q>rndwY2H@MPvd9Ih-^hvcl+^Ig;9>O|)~ypK!vEic!udBS5MY3%st zjLgZfOGUnWa|}i9eYaT>RV@pA^7TY$LV<6$wTdZ*NjPk%V2FD+yr+;YR{lIOpYD>;MU+{vpXG}pqT z?(ik`<+TxayPTNC5;qnkr@1lE@D_{{KRvtsa=UpSed6+o`PRz4F2^?55>*kgF zQpsN=y8g7a+AAPrnGZTIT;o_=SV&NQ578Y(_!D$Hom0;>@o;AK{7YRnq^Z;_9+`2Y z$A^#%D7>G520F*Vt&66xFT+*#Ma|+>=u<=yJ?54f{1yp9+yJh)o~4R{!HXTtR9!)H zy!~WDV+jeMKzFMUXj~YFd!bo6eVcX2=SG)kXG%$nR8~_MT#^`QNA=Jt?@sOfJf+j#s%fXWsC@kz63bjDwI)83 zI;5(olX9_prhB%yV9Q=1c#AW~Cxmx*@VgLlx27v=zD+r9c->I*f(6H`k5d&Vv$?JuRshi!ZdCK+j9%X+F$$)Kc z3uo~~OgUrF$G)F?dRu*FV5>73U*03)G+h}8ffus7 z8;F;zr>AgeypG|#CEi$C7WgfoA^2vbH%=VC0^%M7Y8NBF zb3FSPlf~nJ&~SeUjiHAJ+!gtef4r02u9bs$H*e6LHt@{Pyi*U@SYkTIjK-qrecg33 zi@~s@Z5duR+%RQ5axM+ZJl0Dj`vn(!gl)DFKbcB?|EGa&g%09Dwq1eaCB0p z&=3=S;p|9fPQ|kFyftC+(Ojs(VkT0Y3v_m_Fy`*{;@(<-;hQ|>Q$1q>no$Q-I2_}_ zl%A;fiW=2_!F(PeDx+g?Ts8{IQ;U5U(evf%aNgX2|i)+}sPaz!xeb-tA7ApkV#JH)cLG)bQ z1a?O0*~bHM`#3oufwLK?`;HG|indz)-n+Bs7!?2DsyKt%l8W~yCzWcZ!Q5RtvOSBj zA3rQlTue+aIMup3)X1yhkuc_laa_9|e;iO@G(%wLH8%N!(;fB~Z_n6mvjFqAgQhP` zU)Bq@;`s*3RjtncQY1^5I#SxIVwSB4SP*=4+M_wPr3;WTdpc4VBKosEG2 zOtlY*d}t572c`!jG~jD zX3LcZ`d{6CQ1I+YG7bUzhd>$g9QC!ve?|5Dv?+R8mnIwj937CiqQ1z;l-9K(^1a& zQ`i;`#b2ZStwlX+!2vmzBXh$WI~~QKs?dCQMgzTX3IH}fb$H%yKze0{Ztx44ORq}I z-XhULqy&3A%o%t%WAwL;u2NwnDv!6<(=H`aKn|{6M#@t2Z7iFRt@lzQe;wRJfFunO9u2x!J-Xd5#CNO4Jz(BMnZ+<5SDw((;4 z!_lER>sTKl$ofj(VnF{7)8qS)NVy1ySjqj7j73j6)lns7k8)(!2co3$4NE$&?FqTyFbLT6&M~hr#n;$=G;&{?|i>%gR|=_%i!tTLeY* zg9U5d#*Y*?=R6Gz@}M_vz^7#$Z6-t;g;9pGo9RdST5HX-sRoe z)q1zBFH8Rn4l2E6O&z9=|318~`Qy)o&eR{DvV%bsv~{`yE8@1rp+*(sRujp5YUK_? zy(kv%y0h(jW)$f&l6}k0+HX!APl7(0=6o=={LE7AbSJ|}HRX4$cE9JV$>~Qc?i*u% zjk;59sbqrM=m!1uzUI>>oXY;o(ZBd+o_iki#;Z|q!Q@2=RtaBXkKm*Jg77;y^ya6}Q#kp zJQsezd$n82FH_#yUe%mi;Ys`BeQmGn^3)5ITDdt)cQY$!DNz9Xr(cSM%Y3pXgxM)G z3B4cw?F~=a@0In>bC+&D5s`ZRW^QNX@5*t=yj!JH>dZjx$V1MPl^&P(+ zpve07u9rlX!UOBtUwn2`Y%lShAAPHLs zN0Swj5x8cleg+h+g+P#0U7gboTl!l)vRJ-&^IhmY->1tcMyzq{T-<~Un<>Ang}>!Z zRa(kDOzTG9KlSFXV-rbrd5uPM7cPMBlxT+#Cv_hund%0XpjRhMWya2w?mdje2T-nz zwzY*UNeMu7&`9fVN6dFOqpI2WX4*~;0k8FYWL0f|;@Pze&d{SC=eqS^ptNA{|hAJoUER^sNp(W2yBze$@ z>Suj6l`-1r&akwRY;y||s)f)y0;GVnJnz zd_)g2va3(a7`-uT3HfyXR96UqX!$2b($z&xK+%I+yiXGyB2U0AOFxSuW$u*oU^ zTBPm~ZZ-?VNr)M9x^s-TUE*wLEx>QJ9xvdAEEl#UwUbygPYwn`{2k{%cDrtvsGRtB zVMNV!(mK(jdVvOTB6_FbRY%BP0pFqd)W9UyR*txLKV91k@ts(K46}+9%a2OZ`6R{5 z_nfF*?jI(th86i7()EC5=)4Vq+9JJzDBZQ3_wz;pj>v@PlO-@A0!qAVXji)0U(ozm z*w5^G?mbUCKDZD$^@tzN6}uRBGx(v{%+5tQMAJ)zNf}QM67yv5Z~kGn6!qOEkGN|4 zMP#R(=7Fp%#78pFU@{N>)&=tOoWJggejEO`V8zn_)%fdV zo4keDsrNr%bu5g3Eix;_7{a33$AU$KXYw0p>n=3*HRI~`3@BNRYdLJEPUfj*aGE|d z8*2a0IMq1h!**H)nMKNu^vvuV3IsAMJJWOlL8Z?!S>q!9j*V}YLjI0!j129A(&0cC z+VQumTiQ~a`BvZz`_FWwQgg{LQk;o-9!x|H+E%kJmdJ}xqv9#$uY?|TyT(^3mgEB1 z+T(i9>lMRX{{wJ)-Sx6mzueluQ-K#%dvVY`!&?p0tmfHU?tK4h7@4a%Bw>bhEfR&d*7=}w!Q!5JpK6ONE>!47WzTG> zR*1byB0A4?!yiUTvaX zsz%}unGq%w^9IOhvcviHPw6PSdrrKqAEn_L?Rq`K$!bp`I%`%G&oliuz?NnVC91$O zzsn`)!X1Ct)o)r-jX95567hhfTmO(k+{;Y7t^BHYciMKSvZ=w<)Fn$KJ8gt*aJ2C6 znAf~wfquirF3w2}n#UlaqnddxaDE`$c#kF79t-xvESDAL{!w&xaTn`Yy1F2FS-AimEKFtQ9zzjC4aF%<*JB%8? zt@G!j9?>Ji$9^;Gm0SscNjrN448_7DjfEMT54Ftxh^IEMkXQY#fqkp&pGOBtt0i-? z;(1k`EwC*uLrMEkY+ZrZkn|qRnNFmrPcI{PxX;#VN!-&^(eAaST0BQQThV}@C^iIc zupypHG(a=DNU+|l7KEKZqC}j%q|CtvR+Z+8j1U0*As6nY@6tEF39Z*F9l}x)5Zz=A zQ#VBbKPl3{duBtX8EYH3*Vsa9$1;ah!G{RX|2P7OI*LpW8eQ8}>$Xg&NL{JKn|`gI z$v0w%CFEadTvoen`d@LOvD;sN?>UwFPFijilt1RFdHdBxNp17e&$gQ8Za=&yE|CCD ztFm;nY!~Bk9oF845lkUm18m50{WtmyJDkl~t=%-Xj^x3DCS)jon=HqEc`NO(QN7!4 zD{)?jucT7740(rcEb%KBQ~OSAOoYC>z4Vrio3!DPE|^_eRNBgPI*BnHMhDxj_c<5G zb=Wq%qPqvW%pl_l@2}+F0O|$9R%ault+N{)m*olor897f6dDZxn7Zf;N%9k2gYG`I zpsc)Kkd-qjf|xch_|*=GW>NP~`{Ov#x%{+18a#8kJaDW+h%ddQHZj@Houdo^Pk_gY zDTvqHt@Ze{uVSh?ViZt4Do>1pffL}Yy>U=Ge)$nxJmTm->60XO1FFbva5UNJyET;w&yR{Gy!;w?4@dm@mB z{xKFCCgDl|i$T(fK10oHW>H&|k(A(psA5@0SYhTNM3H+4-{m^jQx3K*b54bUGi=)rj7qM%@ zROx&)qbe7kU8WFq!RebVqVja7g~g~Zx9HEwWApy@bEhLW?Z4ou z&=O&vNkV;J)nW}DKR`fJ-*D}U!0zlt)4XyAM9ASw*Lk5J-=B{m=y&lX=ivTLp`P#m zs06>O*IB+f&oq7D-1<8()?|_;i@-RJj5yQN$F8K(mQo+k2)=E0C%Emtl`mRexe(~x z!!HAYA;s!b=6lGTDaro;kM4RK1fncJo0ndX*Q;$fO8n~GYOQ`NP~}k>X8{Do}u%4KGXdST2}wYBIm{8(zkZ1GWpoN?-x)UZv!*r)=tq%gaseCTlI7U zS{>X9ifa2VnVKHF8r%0TVAiRlc>+&33!cJMC#VWwxa476`F~t5TWIVY~n( z?S33C8b4X-{Y84|?Le#%TNw@bfvb+b{1YydbjBG~+3_S0Y0LHeTtdG?Hh+FXR9D6;7Il|X{kuiWk7VbK zerLTjQ4po~1tp1l<-$gXbBQL-`yv9bn%aIG7qrw5gUSFZZLCPhXvX!DQb~<;d9}{S z?{&dfS=^A#r8-#&l>}!3=J(x?=~;`m-fmB0I@&sYdEHit*3br0C{MLCoui)XF&&)0 z6}`_qs?Wi*`qv6&JTYJ`qw=%Y{63n|1K}Tj@MCGX!zHn@Z$6J zH|bU74yfQ3U83ZccJ3JdAL83ogcM)0u7B`D6>k6LY@_FaG3Y<$&$tNz52wUlJq}-c zEa>_`V7RhEykzdo>eF5hmG6jjRy@--&kQ6phWr|3>k-;Kf%=T!cf4oPHd8yEdsI$+ z$_&1<(>KYQKyJh^7%_drXjXDca{XAiHGNf>dBS$;VjFhBdah2^o?Xxto*<tCpxI(jUy0 z?lH{CEyx6Z^5$fpsqDk-#}ZK))2EUvXOGY2C&DCFB&z0{<(kv*D$Al_Vcox@u)B7j z>~lz@lVrCm6;lnAX9&X?!Cu%P)Y*IY;@4O0D(TW||Bs^c@Tcnkg}{U0ZhdW)r#Btn3w%Ra|=&k|NrDfA{wv+;JY~e9rs* zdOe@NQ{cPvPpl%7B|uxTX|Nm?&c09F3h+qh-Tl24!C9-KX%l&~4~B8?kV%NQkQ4); z_#H>7e-drpuSxI+7s8eW_}z@8u`KMf-OReaf9qt4@PD%vnpmeRb+-qsXC{eFv@W~z z7C-myu2h{Es57FajZ5zGXA2h=SO32HReHEN=yz;&*<-?SQjl)Hvr%mhTY%c`%2Nj> z-fKG2wTL-*8x#{<&?_TwbUHP1_ zQGFCKEE2UR0~WQYK*-95WSygFTuJY7s{VmX>AdT(hje@kg7PuS0k_kq|J z%hfBCXA%?vfpf->EP!K$C1(C-aU4&N8WuZm-OJrKoP8lJ5BSasIe~0DjcH2{Kdkp> z#|6qSR@qmac1e4(FzBSF@TU=OB1dFiKASEKqM1JPE|`4n=Ls?&`43=&IE|0_^-lS1 z(Xmxnaw+*>?Vo7rrJe5k3$Je6Yae|9Mr4;brQZHN9L=?V-gIo?ZK(f2X4gPE3nrU^ zJww6{J_3SnziSOpaHS(MGL~f)=ODG*wG0T}!9>oak5?0nyF4y&atCTB!HCSMoYn~9<{+Y(pY{Lpn-THj9 zY0nR5_L|~Ci(=CmWlIDls3A+n3Y)>#A~AP+%EBK972UA@GG^IDI2cCHY>N4&FiH89 zL>?_Quc-Q;7(DEj3fp(m8F;V&1leZqYxN0bc-TF5_8FvgkX{AWNGQso4P)Hu0lr1L z+c&Fc5Bn8gXK5b|kYLYRpAisJkfa|k@1dGRi)2=3?nS>^f2;Y?dp9X|g(z76&>IfH z3xGpB7!sHgW3tpWQZ~87Xphu4tV_0#954$BE9j)XA;7NV;El6m;DX2_1wIp-ia< zg}YT$lgB8#$4Su)BGHhqS}L45$699sFN5mBa-KiZcY6HG}TU-Xl`H8TfhE%%cNPT{LW;q>~DGDidbTdojM2I zN^AK3DYrdo&!LkC+MnRK0UY5gdmu1*o`vS0b?uK;PYN!QZVkS`v`$y6UV#+iAooD3 z0JAq`-{$v~d-7;1<4i346tyeW0E--`#~1aYNj<^L?mM%eyPB`usqa~eNSr_c?goQW;b!?@9 zLN1r?$i92wqg}MU&3V^hzB4>T$y-*9xiRpx$EGm7nOQ2U?dlP{G?Y=~$BqDVyE#hf0)f0xRp3A1d zT(Qf!InX?O?3+$tk}OO80qBb2!-x0tUI4p_{%#V%Es*SCnVaFC1L~Axps}|l+8iYB zrJWZHZe)<>xP3{^>qH6yhKzp4>(v*(6AJC_P6>mn{Tj5I@p+8JVzv+Ko|l9dGl#e(S&nJ6FZpMa8SDLN?*q_6@?vFD0gV zh_4^N;;aFbd>!qReG1%FuRQd>;|ENKxoTs10$@N6T+%CgJLy_+PQzZ) z^KI7xnj$pjHHz*ef68Au}WRD+`*o6$?%yRk^7iRAzmTCZv1F%mX>*L zhmx9gn#lPERo}?l_4XYP90e%crSIh>ZoQw#W~A>Yhp*PEX+#GW>7=E|`j0Uf|H9L^ zgN4IpOpPl>PA5uDViD!)OtBfv0AD`{Y80|cH zT?%b>GxWxJ-3w;2Dbn#7^ZV9nC)9oHv#lMJfsM2)sw6&4KQa#eBY=3=TG<{Xyp)Vw znjunvOsa&6k~59F8^fYAC3h+xxEmOGdrKP|lH`o}l33IGIwOPOzbB~u{3$j0_z$7b z!R=mA(X2e0c$&7o<{#M7?xeBwljy*8cB5u8%mpk9AsDD9bol1d;xbzxsY0e-Vg==xCySR{yBi-dMCx|$?sQsJ0cO#l+^bf zI>eF^M&tO~6oUf_Z`lHX+6uNM>gpHCk{z~_!L#;jzE`?9)1@)Pm1Qk zX0AX9A1~yq?v(a|rVE;UAH_Oi4O7n81Fhqudmj0jlxJ(D-=YHcNmtKzP35H5W%K0v-*Q8Hf$rG@HvNQZO34D-kq%66{9J>c*|g=1}H7zT-u zLOr^IAkY82vpF|@+Pb9O$XrfB30N0RDtUCT^d|M#vPw5|&#q9HECU+b(-Kg9R8i`rLd9ZXG3_)I`nc+fwA8CG7FDs~P=`Nuu!YZbfuF;3Nh_}y>{h$=y{W38xu0gS znB7^x*w{WWe6;qD%kO|W#nt2Q%u5wGCler9_q6xJ2bZmT0?``%{{)-8+UjpP#s*WJ49T>287C6%>tMh1#k%NNs6ageA zpd8mP^{)c;kJ4WGlE&#;dz!3tI8@u_jR7}b zQea{V%sN@CeoWLJt9gvQJzr$CDlM2FM{r>0BFhs=y|5j4<``=#ocvf!UElu)(xM6_sJOwO1FZqe}(+wSYAAHiL>v4zvVc1oX1+lBv1> z?R7RAc6a%f-ycjRgMS$YiByMrq)t50MOBZKABWe*meN6lO^5Qb0r>@K`hIXOcp)^0 zkLWS%3lY*N4|4H!?)LVNkuwO*-o3(N@yotY*RVPpl0E5Bwf7|E_T%={^RRIGs1lMQ z4D?`1_}H5y1$1bP+BoO$ede}g$dh&r%wJjbLH`MBtx9-~J~Q>DiTh&k$bsd!V?H%D zS`lQ$xW#NN1nXO8gKYM!JZ%z>yG56SWuzZa4l#QiIBr@)N3tS)Xj7R)B$ln#3V$+a zia)ean+R#FveA-VKHL5qa5rCVgbSmJcI&8beeuiP@EYzc(Nz&rXKkNY#Cu$?xC+c2 z_Xch0-fO4WMPn>y*ahF)XXK=NXVxv-xU}ClwXaeEen05@?PQ)gvIQF&zbeieTDdpj zPIyRc-6!T9rQlF+NT5WvBw?ZypL?RfEu3GQ<_XucV-BleR0z}ne-lX0+V(>T+vTj>fZKmyWw$~ftJQA54Va<_EBmB2{-6tLYv31^|~EDv0j#is{Vo!5B< zx#@4Y_;lv*JvWCF*9-xTw}&d@k$h^%v7&Xa^cg~9uRvF_rcGM|*JPCs*tm3(;qPAJ0@;tR)94JM+p|+WV0kw zza5XgpY4C?6yAWPxCfw(aQAH*3Fj%&fNd}&IeUU&ft+-qc06x?5w^LJvb@stVcgJ8 z8m6NDOkoZs58(xTPwx%dbtFr)>r1pTD^j%bm~kRAA@L@RitM9E^-7T_&be02u0fA8nSmGWaDjsMUV^&f~Dg~t6kK* z@d2ht-~SnLvm&z>%7&caBq`kX0oS4AHLh5Dm%vk3E^r}I# zp~j%;`S6J3?y!`fUIYPsPcT7y7`46iGJwHJDaOLk9Nl(mwZ{&eDEemz|G6-5j^9;) z)=}Uj$zTA_Vb$}P;AA?wHl_9mR@ey}`{G8O8G2F^>1zMl3+KWQ6}ZW;4^0vS-qM(F ziEQly$X!yaAoH-tOL|`020@F!R&fiCskSjV>PDx5MRh2IJ{`x0u<@$)0>1N8G~7$U zAL;m`ME*2J!&^GByCAItRhdq8lS#5vy_10XbWnNR?*(24hUa_Wb6_N&sua}p?)`Sr z?rYT0>8;Ezvd0k{G$~svqi=74`)0?8Qet`V%zk1jhI0b~MbPtL(H;}roc1HmPQCo< zouJ!{S9nl-ZGAafpDd6B6`=W3+>+{uw$;FXmNjaWrb9kNLvKtLwq-D(X7 ze?4_r$HdQ7 zK;^e|^$RVVymz+~J8EDb^mW4R@~E7|q%wW%Xx=?N0!i>0sF0Evdi z33x!3$3*0=`_jr}x0AOLwXG3^48*qzB;yf~1OUL|ScWpd_T8K)%h9EIS;YJxm)1i| zGY_N432+S~i8dahUp$1=p#+6W`u@&-CI~ZrfyqD7B88{2jS=HGufpj(Yp)eRWV3`{I&dhgQf4;c9&ri6MANskmg z57Mn74dCfhS!Y~H~fNBa819TH9D~6Ezd~pih zY2td%gR=RGZ$BmQ<{9q4zmF3TbWcGz8WQh2|%-=F=Zb%iIQAIVBcfubIC;xKugW&h^PgnzHdk zDt&(TLpr?Lu;QktJlHh+ANKb* z$!hOyIL)HVZD}?n_vhoV81;+m@d~~v!@4Suv2HJZpZtlp4w})82^kl;J4u~Uyf_}D zWIu4Xl7Wn4;1I@;7@(Z&Gd+Ln{m*w{mfAcukD3{Ot>_Tc`=gP-3?}HrmcYi@Qj*n; z%e0R!hIHBn=TmNb(^zi34;0**f3)Cta_x^0`xiTfh_Yz0DucAr#eE&eb64yhttT%% zw}{zsQvQY8FN3_C|Ad>5tI_^NAj>uFdHee_SU)v*ADROx;~cH|^v67Qh$1$iC(^yfslCtX>rfC#~ITnYoHB{yM89WJ zKV3jV-iV~7_U<;;kNi^!n_6GeCw7N0GNxmmP(vDc9Avc;Sx3t?=8EKcY$EeIX6p^7 z=j$B)1MpbwfPr2>62q*XyzHkVq2~@mFAp9@!eF73y)h^hAec`YQz1o)SFq+&XbijD z(|NBTBGmdeI=4g5Zs4E#ySDaX!$kUU`3&By%8tRa#EwD+g%0KxqSJL_ny%OGHZ8oi z6x-ENv^=Y~^Ew^Mi_1QnIr(Df-xm-B~rj5bD? zGPOF|O2_pHKvLn>wwgkzweHQFoX~IWM_-f$eJ?5}u9h~z9?M?9DmA?&f5M`e!cDzV zNTH=FD^BPc6aA@)^abP>Oj!tW}1L zZ$S%geN^OgyIxPi79@Ut`}*O1kfx=yT1s zEH7Lx9h*>)!rG3~Adg=01ogCwcH+3G?Z&6dNH?hlW4V$@s4U1lyvt}U5Xxwx8~dl5M67Z5kf@WGxm zo`90|Q|V#r6=f5c{Ws-$QEl#m$?v_TN2}cdfvdZzY3RJ+A>vhVmUK`nhtxxNr<6$ALmk)O@v5gZ@EAm);Eq1Kx!tkiNLsb|Okj|PYn;b8Ju-ZCoh&u@wR_szrLw=v;&Hx-u| zp1E^>GQ5AM)%5-7I!KFAA%9l5`~2an=v|oO=ljIqDjr!C9qV=?A_Ii2e^i zJNa&U?MRX~I!2w%@vJ$Y{}lY7dV+bS)^-%h#)C@a<_^vJ4}kHz@R;gIExzTn;KcCM zW{?KyqK@0P^#jX?jmbBXIk$ViT$NwjWO@y1ml*6>##3M(8-^j3sY&m&_HNSL<^m~E zpBt2%ygnJFQILVWYFB{5Hm7|1DzR^8PydO~-uzIH$-kPWK;J_QtiAG!&3n z@!u)9DcFakl(uR=G~JcA4v^iCb&{=V>yCD8eLyU!m5>5hFl8YCaSKIVi;;FsbC(wX z*ylQNtbM`mS;?$e(a*^J8L&%Giv&PUmjO{KN%gq?ic^5mWD4zmzx5_&h7s%&0#Cf1 zCbs!Z@w(lS8y?SY$BcG5l5Mz{q!$|{Q!<~jvfnFV-tMaNI>Do6(<0GpJWW`5!o%ru zi_B+>DOeNN!({k=`w)~c&9$t&Bb?J`1(%2 zVNc5&S?pFGN_AT1Iqu@MSM4Wr)PG{~E*OFKKqi0}!|C?-^d(;NbdmHh)X$haF*^m@ zm}G6;i3iABCC-bbI$<(Z{{h~~QzP>}FPWY&KqKC4@~x4gYMPbYEXNsdNVF2sC`S7* z3$}~1Cpq?D2J70!D#XZ_veixPZ>sJW1)_W}x9DvA{{AsoHKZETx>fnW)rL9VjrXYZ zNt;1^W-Tt)UAKaMvJ_y>t(8rKA4(lh-r5WLIToYXk;f1HIU}WnAl6^xZW~ZZ^J34*@p2H{K|@ zI}m=(`G%|harQ+wu~iqcJXbIA9xo(~4-)D?{Aoh@<&I_clQZ;2>Ll0~LP9~pKkagA zBzSUP=E_9FZ-r)$)Qo9e^()-0!crRJewJEG4-DKbe|@>k>$!K}mfRhF5*gJYZ|fZOAHOzjh*Jffqv9l^B;}NrR*!*mvQbLOEdJi z-%G=}bF8gq2-!5%h54N)QI;-U6xo}+Oyf56Xwg_g_bdzN81M8u)i8=igUfP(b4RBN zhS6&J`M(NJ2=X(xkNl(5pyIiP_hFMxmY4JMiJ~Zg0=V#x{BYQ<57#zE9z(ajhWs;o zGP^^3AV!yGFT8ln8dVDmgh@*Was5Wg27Zym&~vBwn7Uspqg?x-6Ye)UVdG&CCa^IB zoHr*+f%rC9+^U4ylrPkk3nwQ}F=YLnC8)BN(SCI*`DMwY(`V&fh&Hl4oV;4_PXYCs zvY^>0rKdsLZ;i|)jvl&_fQJ?pbx}oNz#suckY&A$E9Ip9{B#*0xZx#-$oQh2$e6}j z_|e3nMRKUfb%!Fs$WQu=MzXIks`&=D@dRkl+Vh?+bsTohel%d8+9t`ZXY{hZl2LHp zTD)o`H{SA6Z}Dx{W?36-dEy+#rq3G7D@bs~{OMiYp5bw?brV zgg=Jq)iTuWFTp{9$|7l(gI>_~OcyHM-0f1LICl-H@+sXYZgpOFwH1@j zE+~=aM{(w%6~Fz=6O5T5{1YKooKboT`CbrLP2v)PL<(Zic_6H{8Q^Cr^Y6Izk4i%B zfnsMA%}c-0YJZ^~e$69!`skpYSR zRfrui{~-W-C$4-%kKp8Hd{`5g4!VM1F_b6YqeA70 zS0aSgKQ!r|lDyxnM{NZR1h3sHuw(YPBw@m=U}LLg!y;3T4GJm?T45&D?nna~5dai# zj)DBc%j*aXkyY$fqs52(O9Nvk282Qu;I7xnapPle&Dke2e-z1AJ<0y`PFp^`aydhS z;2D-x42BUUyeusOabNGMV+}gn+S$CDl^G;py7xZk9BEAjxLVx(_q%_01OKMDR>1<{ z_RAh)Y@lKtR45v{q}cVov(x|Mzkjq?``k`xC=q%_ zf?+=mYgLON6oMcmq7MQxh!hoFaG`0wyJATuuPelkrdTb5b8?TZX>IfOA01t|v?7{I zHUNMw4)85_#UIFjdmL{a6B(r4Rv$L!F>x_0j(zq*r>OHz*yV_anM?ZvD0Cq}5oMPG zQz5YDdW_Wjw?ahiwGYZcb*qB>)k5E%+Dq{;2tA5PPa2qd@*hCJ71+7+SqD9fH?R&o z_wt-Sxv7zDe#IP{48gM;E}tX(Rq&(lv90?=4u&pVIDB1jcBo6yED&|cV7xLY`<45a z6!xI3$|?p+rG@&1%K9f7q8XN@a{g^TCm>wd`O&GPQlejvT)y|Ekl)CO>--=M#+ltH zU(?c&t057J=WR3cfDIN43t1n-?J0I|E=kBUdJzclkD;p0#(8qwJ&t*~t(MYb8`^0G*wLFwM9FGzWAM$n$;I4a1sq~UKS3!a@B66pu zO}W?M8O1Fd-5a4#mSG-H7R-%Mc6J-WK5D4}Y=+9%f;VJJBr98)6_PnqBwP~_5(u$b zVxedj+jotfhR}!kub*rA3RMTsy|bL8Eycd~F5Q|84j)9J?8RE)5N3H_;j^r0N0-AR zF=_{PIynf$&9)SiP?*6DD)VWG$)wb}>ji{$Lu;BgNQ&ORVJHa+4{vt{Dcy_yl#>J3 zrrJT)6|`f@rER>$-@%fzrVLwKpO%G59S>4sftz#ZZ3&QhBMF~Fb?7K!WJjtesz zDmZo`?rojYAdg@Q>{Em0@i9U(GLTJHmGYQx;>6jKK z)dYeXr^l_%+CwqRZZ>SaJ$=mKI8*xm6=rN5Kvbtk1$2d3-&oskXR#^GeLi{Ql`a zrS={c!+a5po$x3g1)Tz(4F&IA2(Y65&U8-c+BCrQk0*d+{qgGz9SBL#wn?~E^kCsv z{TQuG$*;1=4#RY!ZVEN;+d2>8XLgBj;yHACXw-v4p2j+5JwK}%1c;Er*O$GP7#pgg zeR3WN|X9U>A8J*W2ny3o&N>u>>2P1j&Hn|>}RN2fVSx}R!pD}}ybD)WA`Z>cN zc?E)0b33%v&`uyf6x#0Zxp(@4FuQ#2mkS< z?V4(v7-42nHt!l3i%Q;ta~^UG@d>5U3hyTJgc7{+?Gp%=cL-$B>GsC;mr^M zCj1>{jF`4hje*^dR5ZUZsCR!MWk3jCe5vYyZ)x@397u!&J0`DVdm=$6Z8s)iHm5K> zTB+Vbz6Cw}fv3hEBrV^cdNl<>1b!|1!c3&J$8{G?<@W-yvY0fEnjpy|CXCSf+SXEb0@mE5%(r&e|}dqY`Ib)o_x-LnGJXd zy~z(19a}F{-wz0Jcr77wY^UH%*}m+iEPXf3zAbYw(I%Snq6Jb9QM}65X`VmXwEB_O zLllV@Ja7Tv5SONA0KnuN6{w?N3hC`|9+d{Oxr+^Y)H8QKO4DnOphI zQ(1r5phOZ%=runp8SS;I<8Q(}x+PuiFYhJ7V=uMr-~5n%YSnr4r(~r+DZkF|+2LDx z$D>QX(sR<5!o0W*hGj`1)Q9M69h!oDYkK`CXxe`OE8~fXO)D0KX)T&y1AN*$oD*G z%!ZAvT6n71L7>o%;8*g|irAZ{V=%e1S6A0JXs*~cPsfygQet9?tREI_wYYzUH{nl* z0L@hqro>W;RTwNm=$*T(@RqLBS#+e-`ZeuqOLckT7VdnzzwAtRni-&wL<>Hq>=BJ! zbL{XO%`cMHCK_~G*7FU758~St``cmU+G1Zh)7vZk_cX?0&ZnDwPw? zxGFS-EG{X^(`9qvz<+WhE*}6fM7xmty2GO>52W2fC7UQAGm0TIr4he8g~XlT%%pju zi{Yz^H(2J2-*>>=$1lLl(`<~9sSr9rb|OT_$tXA!`$fUzxgU0@%Lu2tFA6*Ze1jq; zCPYV@7_4E^6vZ#e@ZH|L@@u>qQQsRg)%KEE-rrm?@371M=wgibGECJoYyY;puO0RF z>1?`feAX-D)q?;B+Cme|`kdkevnMe*Fnf#b1il2w5YEl@+3uREV%5h{1+0o-4IX(g z;|qVo=k^tS-Xqryce0GZuxD*nK@S(5I~DozTdynMi4 z;3|@v@@p8eTze=CIMq$d>d}%;%-!t#XF+|JpQXNW!(r;n{$tDxnB4fRF)@ZV@ogyb zEZWi)Yq{8UI*|DZ%pE%M2Bovup5)2+}Agx4SdOv)wIE9u% zEjpz&`pJ2J5INokcwQUvD-mwi3<+}Jp4eNgQBe3nTp`!(e)@R{K8wQS8s_ct6u~S! zz)=Y!ZbM;9%zs-VXYjm$idv(fc?%+=sW#oN%TZ8-3&4&XFEQNsY8dk!nHA<$c;s9h z*Vt0~lEEerx3(+8V1E}P3xD(GMQpsj@}CQLew*_BXu1*oYVLq9Y9KK1gll-`mq#Yq zqcBgrJ$Rv^)O5$9K#6F0&H7()G|!U>K3y~Gz>@U7w$3Xq#mrs&TYhwe!4&{fO1AuV z$+voW?#f<~P6Ue~|5j3X5-&ZJXKl6nET1{zcNT22n1SKIjJOf$ImDc3H80zcR+9Ck zCnHrra_tiB&^ClIp-b?J+#!?^u#MmqKAN7zh`xBidHIO=I$h;Oof-m~V&(w^AovD- z$n%%ImKQ(Iu3#8>u5R*j{DG$eLpXiaRE-j?NIw*$a5^AVg&FiZ@4 zl9lxBm%U>_oiuw_<~|)ls`C|ZWj%Y9(3E5`^M}em!?U?;h+65oQs>c^CJ9XIOWSi> zSttlo77RQr!N);VdWtkd^#5C9iC56qnN<{5N z`hzUcUBVVbP(qpZaCq(0eZ`;e{O#zt&yYqWJ3IGh+8&C>!fW{4c%577oaF!(hk^>g z)aXSC0yn6rY}*)b8O%1OnMKY-U&8MrgX6MvokEV=OY0aQy+Q}Q1bGgfzwb=xvDMRL z{(oQsAvWpf$xjQnFW(=$pTEqZv9CFfS;!o?Ihs99IH&qa!OrH(;d93t*GqzgIZ1oe zx3ZfkX0s!g?blgqq4A?{6h)k9(_1UuxbODhr69)C!6c|xuh{MKJUjC-c^oMvp+`3M z{;G`ZGx5TvnvV-L(O4YiC!MfE4{-ET*Lk(lG8|eq#8j42D&JkZ%~er3V`vQ#7XHpk zBfG_xn7=66ER*Sc$!$2Ny(DtG5{nDKNYjHph{11r--=(6{)9iq&Cu|D4-@$@2-fDH zyt|X#mKx^m?W|Mr2Ci;EGMbg0H_@2j6SI{*9e>d!-T8LUW~VoGlOYF!Tq?>~=Wc7= z!9)sumz7K=+Zspb2W2Y0O6^bqDPEG|=FO}$l4`IHk<~Qc5*$tg5E3GIR zYs@r5hB}^o{BhQMiR>vYgK3zM<9pW@p}JPu-4hv>pA64Y&|$=Ej<|({`Id~GHEdEd zg+Ev+Hmj5A%D~(o!R|5C1&qE}s!?37J(;MPK|rwF#ICxW_YUm7zxt!#eAk8qahoX_ zns*l*u5!*g_JiB2SHT1IMre`AO|j!en^jD59k=?}U;m^FWlaY|zbh$5a(?w%x^JxF zCW^!MqSHgkH?H1`u^q`C@oPFC{p&x#rDaN2%WQD^%5?8zsH6uITP9v zm~j)R8q>yoG?IS$QhK)?KoStQMqVUl^ChM7YNXJwq>oKM+3e~(+XdUCzIU7DqEXg- zoqC-kF1zji2Xk-3y@n=NpM+3Yr*|53UYGz$cs2k+iczM0V0Jhla^=pSH{Rb?1>u&c zD;jt1y8Su4E7mjha&um3|3bpKyL&;k3j`Z862TLaaGGU&@su191>S+}_icT1Mzxq^Sv{sX02!fhEaOPV!#4Wtm$KW9u{wXuyHcE){R?0=9; z%9A@A0SrTZE52VKzkCvSfbFDq8#PrbQD+m`ZKwNwikFKWSgrLJpOW`=zqO9{PrDce zk*yVtHvtofBCYHr_Zw-t=QnXiCeN=|bh8XScNKERy}6v{>z_KFr&^ZRm5yoiyqIr! z!~gryUo8dK`a}xUjm7OpG*h}$b&S*;n@}P^EX>+Jab^c?56+YF_fg9wLQ^7yhgB0? z7w!VSnoRz#!QB^%ee*cFU5;x{zZ?N!kj(<|N>&D+`EL1O_;*WY$I!DBsu(DNS2o5X zdr4ORwE2GV`oY*kDJ;3K+<$1OUtpKVYNbwvO;wmjl_^o(v5}x*9&jjsbhFfNlx`(R z1&H-q_#mZ5@U&S;csE?Vw)d7l=8$#;KR)Qkd)R-qt(&pmQ@ls~SUBZXjJw}J#>?fQ=4=?L| zV_{W?Hoc4AI`a8vG--{}9PIQ{?HEhU;ZjpYt&=$idZD5fZ;{y|1YncArCZb#cx+im zUm05IH;dqI)TZ41m4Jk~n6Y+>YY$|8kLHQ0fajU9bSpe`=%OXNc9C&KNI;6v#JOh4 zPL5&6OjPeW?S}&}BHK0M*lI?K9FUtCaGszCY#WuD0bdc2H)cc)hugX>QU5)42&uM! zrtr&VFiLf%{Txj9eryHfP^6aDT0`-&2XDq3n--&ETkmv-Jxfk5tz*SPK+sLCJ(rPG zYEh5)xwY)V6CAzS*Rh$8=Zo4v>V7F>cB0(c5_LRn)UnkXUI(76oi@@AqTW_L8wJUq z=tGiy*$Wx9Mj4-9k3aBH9O_1NwlRT*?Q#o0RJ)LM+{8rg1bq4X$n1;SfIcAX>(QEo z65ROFAQ*l%{G>^|kIprjs@t6Js7+}^WPqDq=@$Mh{@nD3CcY?HWanKQcx25(mX|%~ zUTX|nYaMpg{MB908cK}>q(p%ryfj&j`&V1Elr+f$sIoVY)Cft& z!Hd{=e0zA;M7ZVwrvB9DPu$=8Q;z}!57pY2J8XTHV{=n^DsGSMsmW$6tho$-u#Nh7IHq^A_-Dxl z7Z*bTdK>oEU)x_vj!m;WKbznMMkKr-E7@5HlK$+qpN)5ijZ-D0@X?^X@5NKa!=<^c z{38iv&SA}*zeAB)uOKlZJHl*Bn~6{6PwJx-rN$Io4@uI@CZclx0pz=V2H4}-O`dzQ z_)geo!P7ssH7fP>=LueLz9z}9rV`R+zvuiR>(h*uChei67i`#GR|E6409 z2PxCe*6Osf-~vR^^ol~@Q4$``3ygpEjoRxzn*y@Etq^Lvyl>A*OfFnvP?wD133oeD z)(MC@sWd@h_*4uCB9I~``s%P*qx%V6-$HIB-X{(iKzKSZ-s(jJV3{PhkHYxtM^;W% zx<5&ekxetg46Y?|C-*1oa?23V5QtY_7I(ONerdzY?uR@gp!-COF#+raB>?g81isO% zl2(GgB2^Ua&<14YJ%B+OQP84M^$akC$z@@osdcJsXWY7239Md@;>Z)Qvf3Ez6-N)q zTj}PBM$#r`yI;6Br-?^ai*acM@BUN>sgbRO(dERvYmjYG&F@y0N7-SH$FIT?mmHW~ zQ8}r9AZ2XCFxBCcJ)?pQXzO?}nj>?Q9f?NY@ApV#S(gO%?ba1IPL(C?k{VTV6=e(< zjOG~r7z(iN@TKbd-@Ts&k|`RM=&dJ{7go?1fOWnhAC>JJ0lLjwl#wu`KlM?%trCVt zv&B>k7WP~G`f?8h$s!m?NjClkjpN23VcueKa<_dlOT3fuWnpfEJ+ZFvhGQ&l~!1L217 zT0#3Z7*K-aq8|vHEg71ze(UJ^qvQ`4OizYC2)%u$*4DN87z<=HoRgg~E~(W^PU==? zS}l988O#(yuazu0GF77fVCD7TJS-|&>lq6g3-yuy0}31glZv00{sT06@epKKZQ_Q{ zxn$DT`RPlvn5YA~cmt-B0Njq4pwH*G9`)w@&QfN-jy!a+bF>sAQp>Jk40vIxvO({8 zkbNou85w#$%6Lt;TNws(tEg1cMyjcChOo)1nBDFZy`Q?#J=3rhK`l-3mqr{Bkw`Vp zr0!HHF=+8OaqjzyZNG!Bdc?=^XGklcEUfw7uvTP+yTydsRWBcmWG+38D7OAIK4AZq zog(5}K&FZKOrPfUl&g*rH|QJ_2zTD1#`+EJj|-EMz*#o0 z`8e!;k@xkugm;TTioaq0EfxEF=dPYLzR(_si&nyE9z+iRg*om>0`E$_TYaHltYdIx z`K*#{sMdDt)wADmrae0KANO10{y1M>t_|v9|EI9lx2xWjKK9OSor|OQr=XJsI zb4&G_n?~S(=Ghlq<9p=E4S8F;dPnaYNu+U~fEkfs>$ioLbj>?3sU@Fi|3ocB2cs@c{4U0;=uXKT;e20k~GU~)@3@72s88$Y!Eojx{vjCO_T5Ny=5#kA*~F1#d?V}f5A0N)e^ zeY&;$RR6hvDkrm$_d1b*_9623pW4G-jOP`GsRvVK=cZcQKdQQ@&3;POwA<-mlXxa! z$ZDl9qHFz|8?7N26d`il2v^jP&l_d-gd|33{mJ_e;DkOif9P|=kodQ21))Rjq|jLh zMZgF(dCj+B1O9%nc}?G$pDRp@Hy$c`Ox&l}h<4rKUZJb=3%&9X}~K#p$;Z z^;ENmp^hWzm(P816;q`7oHExAn#?vm%WWms-s|Qf311`@EhBB!;I-u~?}TQHqc-0w zhxvvFrG&D+wDK@MZ3x@mdOdy8>KPh4cK7;!0M%mc#jxYUg9oCRC4?OUpWI9TA)#NP zX6iCe%u+9gZg=dbBGEYqEWjej2_WZD@YHIG@2wDbZ%1qS!`I%I-O%VXfT+dxsMu{l zsN2x^qR&T78yecm+bdN~-`idF{haRY>tL*o=|NpvYvjYn9_6a1jHEIf4+2SU z0>qTS6KkUO;hK_GP{qMRr$z-sHyw~8-TJHW$PcV{>~znI=iQ(LcXykN0Sx4JOf<-z zn9J%gw|&Uaw1E0pVHKLAg}5(ps*sJ@;%OS^F?tBL2sga;%4D;=4L2fkO+sgE2?6>D6jJXorm;UJT;uPCL{b>Y~+jn=Ib%1xrr5RJn`t{gi!)qcstHc z*Rq24-hUy+C$DfsNQ;$zP|S3O=Ql3kw!H ziQG^tGp2TpakXY?j`%jI*jb%qt}26G{a*1#tg`L-Gzqdaw{}$KG#w@4^(A(6of}d- zAfu%v%O^B-sP4b8L38YBx7VdpjGJ#S8zWd))p-*}So}?uk!{%FG3IZ%%*+5%9}l`a z6*9K<)H3|MQ`6;fkv_!=mSt4w*GB_$MN;p5nkY5xVM}0|H+nf5CQTQ<|Bs^c@TdCw z`}&b?M=v@T|0&Bot;g#E;6FX_jiB) z!g+ko=e)=3^?Z@gF@j+N5C06&wavN}L)zk|er7k@trLyt9;D)#9~zrFitc|JsKbpizCL z{Qe*6>KL?c^1{Q9u1@ zN3r0A+W70IoPK?e;aZ0B# z)OUeAoVU|sjS$70RS0J6k76=qg-^;z9AcF2pKrAndB0GZMzb*munHVxBRJ!8XbHXe;n|3fuyp#>p0{z;IbuCu+{%>7l=IMBAGl4B7Q8O_}a_zoswX3U` zv#=nnXZa7PE=YsaGZO{fZA0b5(_=CYO?2*AUbC@w*K2rJ&F;A8vL9hEEiYdqYYXxYhT!Oyc{zqK;{o(2wQm{HFIiX^k;6R+OxnR|8_M)-= zO@uE3*s4kqs9b!uwvKkt{&>}rYcYNKxi9~e+P5Y`z|466=1SP)SN3;zbR|yjem{>S zDCmC}LOXz5D0#KnWo;HqGq$T-xD~XdD;nJhROXbzXb@+VwVJi~agX>&sS6f9Gsv1G zoTSgZ9`r!A@$1jxsnz^3Ns>}**Kj+Yy9WkoaK>g>xvcGTMsha$?=7aVUFictxY!v2 zG&KV&5^c1e746TOrldFh2N-4<8iD+AMDklLv|8dzd)yZ1`5@TLSt4~R zKZPv$fHm0vs(Jf%e0VtjA2zu$q$o8!S-RxoQyH$ml)0@ zZw>_Yz|tsIwrSO|IY6FZ!{y>iDO=q7q9y+X`zIoa;~4Nl?!R%xg*xBMdf*qP zR}ms^^Pd4g8fu`LC4)fiS$swuE#lFLVEa$$DPBb$L>V^4b$F z~k?4lXw+Hx0(oA^1k8TYZfdCp54iiSa=b(jxOhl}KH7B5obqe@JkTKoV$MaxfAA zVgV$Y_$)Iz8Q*98#s9+hN14zIm)i^Vnnm{6I;5NMuVEx-p{m_6bY7p3B8JO1qmu4W zq=b-59u8D4JvVqgY24-paxffR*!2ug2Xz9o-2rl=)=!?Dyn5+6rlB}HT`0Jzp8afL zN&Mvr!z;I$9JP^wU;q$79iLLT_K$uXTQV^J>Ess_>!egej4CA%kJq#%m*+XF#?}}+ z-6i;?AEUJdD*gy%84=oU!u5}rZi4_3Fw6f_3j||96rnE_D@bc^mpbE5rf#VfwX;dm|n5?a2JD{YkC?{M~2eX)n`kZy-jKs;sm~>yvxzb@;Sij zvz#rI9p@N>a@x=ZqLj*scrdesQ{>ep>3(I)7+%PkEx4G@F9vEgjMTHe4~LGk7(N~S zHk(KSpzG_|zN+CqnRmnbsa63<9D9;f4{S#z^64{jMig{1L|4CV?pDeOrU^fQi38o~ za18v#ODfA<--=e`N(h^+%9xv5r>sm67XD2!i8kY5Z;A`JV;hGq0Mcs<5k zw7WEB)|s8hH>dE5gcpd>EV6eXS5r_))6<;^5QTMWr&ziHzXc=sH?OPjAh_ow(gOa$N>G^;tFK>OS5BLMasV^3M~*91u;vu z>zNwSm~;ia9ZRtwO9Bd?jmQl*9K}a@5#cG%ElSoy8%yt>e^`ybiN=6Ie3Hy~EtmG9 zW$BSt7pcB`^D6r0e(#$eBOodm34L}75cniipxNWhBdxO@13ev4sw{C^liFLpg`K~| zXt)lVgQZLKRSwA= zX2Fm7*xcOK*lg@uGU5Vwg;rL$IT4ObA{1qh(nx)&m^0gd_9|McF)T*qswkhmtU)@i z?m}(Z76v3GdhE&0-ZD^>bR8s(t`3vTvtD>l%l{s`V-=hVpJBu2MCj!$;qxU=SrmR@ zcE;d2YCT%~=Mfz$G(eUlB{yI~|ExoK>sC^E%HpmOCEgpP$y4H0NNUm-VqieE9S(_BRRuue0+!0*-SN| zUvonaNSFfI=vV;tVDs9<=B1HA-}~ zF+wpMe`a%i3%{P1PS?ERRN*4U)!lWk(wW-o zlLDb96=d9_x_o0SzJ5pFiXbMR@V7g@tl{l56t!@}WAu~2P`yw{y#H8(7rn1ZR*_=l zZNFC!^)?zgUD?pJ)&iDHb_n2+>g*GjwaZ&M4U;uh*lY5E2H2#%2hXQ;&1)!3O^nJF z#6<1=x}5o)R=^+sjE2_o!nZT`&1}O7)Vay2$%GQe;JsX(WfK2H+3|^pgQn~UQ+}u% zM@BkF#`Svs%xSSn^Os1i1;YWu?!d>ch2sM}XEs_l%j`B8Ov<*ah!cC+B0>NhP({&pm7njU1F+-pO{8W5T{Gn$9tzSMjxfZxc58{K1f|G;E zAlx6h5PuAxeyu#LmzRI(xQx1A@BW$b5o^uzLUIw*jTUxxTMVEihZhGUs{J0de7k3E znv63Kgj&CV0J}NXb@naVQzq{i7X2ms6Ml{<8G$<90FNHdSl8ZvH$p1oPM@S=xZuDt zJBn~}`yIa4I>P3k*In_(16SXJmUccG49$}N0<#_RqJ&+9f^G6)@L#|Jo3h;s%6w4WF{~Y_J zDva-Iv?$E;ak}E8Rq$omVTs%d>$L+>FCS?1Frdtz=3T`9(P~{jtGK>%lVLT5PXYu8 znPgG*c)L${5Uzp=>}d|2FNDA#EaKrf04X{n%)H*&W&ZR3P5F}8=>eFVGGd-qc^`<9 z9gYRq7aqO-bU!Ra9<_`q!ROb%Cj)YT>4x$0C(-21^0DyFz&P=)jimD-X(>o$YZ`Ih z_+@ai3X)b?4_FEs5TNNu?~{7FRTOzDCH%b)ezWNCp(#rN??ehXMgbu}C8jxSkX143 za^RW3k8~rzNf4o%XkAwXF;u;jndeXClHU0%I2QN7sIge5#62|HSQu9b&^)37_qv(S z{q?V~MbiuPdvT-E9%wMWg+0f!)jTN5>naXKbbyN(AjsGe4^2n(tsXiRqTz9-8A-RD z8bXUF+ql;i1@0RfCjgsX6~fxh5G@#}EwnfVD-5>53b1Fyf0s1*+tp}3SKasIH76x( zsTm34GvE>yS5ozOmZufUvaYI8qD`yQ5|(d#qr?l>_-V+?i~zt=Z6pzA5Mu%&$!{LF zw0=STn=`9tL)+qAUHvzH{hci{UAU6US$IF)E$6m*i%AXvGfhweZr3R7Q=7Loeq*oy zbIa^otzV2QI|L>Hdi3(I5!yA(|77HK^f#Mg_Mo(555Xq}?_k=+?%|CW{O-xgm8v*N z2)PGW(%joIhE`J6pA1|5hXs}VK_6v2Xh#qa+LBM4dh^zyHH^L)j=h?Nh_Tg?8PnGAfEdD2=)WtD~c2hayYMtmBNbgdNrl&xLh0vQl*wQ-DIUPiB0Za zi$pUEn+Uk(+868|n(j0|y>`@R$Ckuq=q{4HJPwyL-mxQP1jn_U9fs_RA&F9m?Fn}) z?X1=KckP}E?{Ce1>ZCQIhs9hfPEWl$jl#I;MR*mwEZtDQm_wNVsylmX;c+#6oEZ+J z3GsN8f+$^Cn4A0J^TvJQrWQEuxu-K4q4aN5At~g!!o|XG(kmD}GMyGRK}=1eRk1iB z=V=YYSBB2}yKICCUNsbziP*OEat%xbZ&>2Hj_@}o;F--R?{`7UOrSKkhF znvm9DMh}TWh^c}9e`s0)Eh^!QE$WlYcmB2d8X1}zPcO8MFB!@x1}?b2xwe*|ZpBmj ze}q<47#_g0U4Gxy-pX}2E`kftz;wl)1oA8hb1d4_WfC9Rf0mdD`bp{jcWYIQ`9 zn)N*T_=V9o;t@+KtMlJykM}H^0dNQXV8W5@NpMh)-y7oNj?esR<(u14RmAK`#nj2o z+TbXrRc&+bT^fP+CS=*pY^sQU);yW(0D>I;=yix&6R?; zQBPHEJGtuI(lU+{!U;j{=g%$ziWcYnD76_SmRvuFGp6e)`AYTs9-;!C{8GrYNfT=J z6M8kf$zfD<8?epFby`z*VBX|@;t^|Z)`~%$WWa!`YHPc>b&zRpyGf1D8Zm7R)>}8{ zGtH_f!-1U}F&s(p4NU!YgZp7Zr%bU9J`a`Zophg~A8WPN-Yhk-dK{hs=+?Qt9WO$m z|H-0rS=2CJXH^f<=P^DzAs-c`sIZo!XLQG+*`HX8HFN1|D28`C3+q8jJafyb=(=f7 zEFNnfEfr@u*l1hH=v|I%RA9xFAp@)1VP@);JzUuW|NaAX1u|AtWo;)76M9)TJDyI~ z@q0e;ntxJZSm`(19Ny%7)M}n6OfeC1;34~?=HtPgm+)R9F}aZ~zv#Z3E-;wCtlJi~ zVIW;|aC#Z}4D*nSvcN$F$5x!2&7liE3Tm~rZXA%aTXS`P;b(X8({uKQFumi=!Np|s zd6_~owO$BNGiG--=D~f@nkxFQPOpYr>zmDf!d%fT66-X4NZm09icjMcf&1I$tyWsa zDffyko5@*8 zA07(c)!yza`7*TuZva}DT`8#jSabP0DiL){SQ*pV9pDk~KfOPKz``q1fJB#~Md#;h zU0-N&qi%C+xyWvgM7ys~^h9RB{T%L6B^TikNnGi2q_gd>bV^`;PHl#Mcb_V<8?sPr z^HKtkxI3JXSlvI=?Opgc^Aj}gu8z&>8TBFC-{%fBiv>8Gg^A&J{Z#=3GdQvDv-p?C zG{#9|N9&8Q16+Dy49}~JK0iVZM^njNZ8iNw zXSF)y522USMKI?{)NbTrsE)oNcIt@JEJ4q&9@bGS3TPQleSFgKQi4rh3ERGs@aE8Q ziLu`p?|AAFz~n!Gel`;gw}&~mcGe?)yzy&zY5nxS@kVF35JdJvm%*-3c6g}AIE7-i zXW1MY6Mjqa!#O3C%t2Ta$4@~3AP;;q<9Aaz>M)}4MaP9P^Z+=g_7NE?WFy#Df=a}9 zSNd?Fu_8dgaCsLUI4x-X+MRC8-{`@zY(=Z)vajjeLP=!1ty6-Dlc6>|%at1gFX*T3 zdUI15IG`ihE7$QWGI^ot7K6#W{K!YN36D*Ljg?W+K|CsPOm^eW&l*LkU$(9HnD$47 zHHyzz)?@L8=wip17zx$4Z@0gSM!=;*q<1iEp|}Q!i{4_Fm_|yT2d{VSx-)E=7*(=561ed~R?8$Xy5?Br-B%KyE|6UeC zzalE)eBt%MoUVXw^a2TeJXI(eBgemaT-H$W;`vUh_pK*+!gEP>EC_gLkg5oa7|E^k zXI6by9BuJkBxpX(@t?NFS5x$vl2v4e`%?QxbKtZMbuJ=3n=7vhO%e-n`8m1WprnO_ z0KIYk;(!dsA@ZnvJ8BBDsOvqkK1`&4Wy;KpE2k*)7Iqw1?%+1QN zAOTQD=FU=`!B-u#pOTw>#gYU~CP?%E7_q0N_ex8vu{Nx6L&9*wA74an=_c6`U&v)w z+nq`naqB4)7=81!-75{7<)z`|9y&9r&90KKjl@Ijzi1l#6ExB){(8SL+7EhvtxIh! z1C}l)N8M8O&rH){ymqrb`$LnIw0OCdmaV89Dn_zsrf&;~&ly>)#u;5nEtFtaoE3lb z55|NGPvf@X8<;E|&caRy6s+VUdp3e$VQ<;Ph1Z zIBZz>DUQvD64i+Z+XdL=Hz1@T%L}!lnLe%%7c_|g$*ps$R8bJ*@}-p7Jv4NkdrQRLYN1i4XI|*L8EYVOe115!nPgXz zxu#X0np`7Jr5ZuU=!Tc806+4yu)6np=kjPvE`SV~2%ukQ zK`MbYy|xMhM%~_d0&3tGZWOPuu#v9cIq4&QkZNWa|FS(x_YMzst<6tdi2<33GPI{hyidrJ^1J3RAH!R+1}x9JECw%^&_ zuj=Kg8>oml;@hhHD!p1kOLPadFC?d%COwg33!w>bTXGn(fYrQh_M=s~qjHr-THi&> zvR)@iPzx4!@4jlz@_fdBu12@Rb0Q+5|)_tVn{dV$x44}C{Fz_`W3U$V$ z2Idjgx$`nJWiYc@K48!Cfqn@l4>b=)as(quvxGi@f*GvIrx`eD_x}YK#cft@Iw7F0 z2v%q2Sg&+UyS7w$=lBBQu_dP84HW`ppdjTSepe!?=>Cztp8URIW#w>u$4|Or;@IlQ zFm)!c_>sq(m(M@Vv7}D1bL#sS6_pgMMkq^;8!Qwd z*~k?G(osPA*R=#AS}yROm)y7izG8v(eJS-EYBQR_Oh_sG*!=m?CD~6iinc&C1;rog zijns!8^bSM-towEWcnZ=I!_Q*ub_<(a)B@dw#fm2S;_Ujm6mUFXo?u`AG!{ao14I9 zT6W2Fpol~Cj}MgCmvO5rQrb z%9}@dUnKry=MHasQP@pqrO`IFv{|$vDlD%GN0g&;zEcGIQWH27_cPbM%-#iPv_*NF zMf?oqLW|i#K*B8Y_EeIY`%+Dn_p8l~Efv!ySh75e01JY^(83FMWVCR%hw4{`SF;5@w*}Zp$YJ68jVD zVE%zzo0^b_^P{r8^I<#EMe%%jqB`4s?w-&`4}xO81d^GS+y-Y8>|51X{rZuvTW=O! z0ql6~<}yZ~j0q_~#)V>0^Y8I|%`q{DCEoIR^`OnRGK~{M3Z5}sYO}<#Nt0^>gUZkG zUT=bnX<8gTmifO`2P)Z@)R)X#{F_bR!+$3kx^XH#niRoQHq;bSM%o6)JaqCU%WW`W z_0;rLq@FIAk}R~0kIoiEvcC0A|9Os@7shAnmRno>=^jlLx2j4Cw^)co|VF!Jdx z1g(q%@wp-%=_KwtKM&|O#Z-+KT?L?&VJ`VO*ZDq{6yg$ck}-+qOVjU0_fmgrmDvrz zTzDf9F9?S*5psfHy3hhX;OWl?HyTg91IOW&)i)~08iVzjiedZ$sx(YMb;QWMc=>M& zT;KFA@)G-&UuG8GB4tJY>oS}(&3P*5xPik+_ba$6#DfyqpX(ldrJZ~A^8mL}K-o2Z z0w7f$O6HnOs?nWtM6U(5XOgc<=UY#n9KRnF<%SBG=n2o$gy(06O+qd)bzZA;DoYWK z^P#wuGRp%62(n)cB~C7=I3qD~&%yDJY_X#8n%1$0>4(fX8KmXTPm@KtcFlyVcUF$1 z;@Sfo8%xH)y_XxcMhq~XT|QYbHM9(1P1#olp^9&#!9j;97 z2eIcG@yx7FEM79M-bmBkABAp{Tfm`c5#ckkP}z>?Eyn;mQ7qhhasRVR9ewH~42lQf zH8+ramcKjKOQvNYv+HgnPd=M$zn%D`Sv#NU{|$*Ir&*xpI^AW_?6JG>N|6exSZ@K0KruwCM)NU}(?$>f0%vY|!6oLW z`_!|aV*g6)KD0ZdkN^NOV!{&t|Z`a!Z}1QLa!8>1D}**=v)?=dERSF zkT>^=6#h$Z{Xn=3Unu%h9t1)ocC0N=|DFpJxV;lN%)BXV&@cUh(Auc){Zq|5qf>%){DaRM@1OqDDOGFiZcpd!j{{oIQ?ht?r!@Wp z0Ee_;3z1VfW93L{KT1Ik0L5fcfd0+2rlCnJG10*tAN8rbSj3nCGFG7K%E;*}emisV zS%l?MwAJ^Q`PB4-DJ&|}qqZ@ETsqGhMg^`9zK%IGJ?VO@lUiR*Zi!0hro#(>S#w1) z9tzFg+uT#UNHb`twx_kkOKH@ZZ}#U3{2C-l; zlT7j~b#&~Z26`N-rBdH`+MkISSy-dcoB*9xZ;!_elQL& zh%_%kiT4O;qg_5cQ>=e?8Ozzmc?Qp_QVQ`5YjT3tS~IXn$D9l1r8w+A6mr~kYIF^R zPwJAvA-n(v8Zb}YaO`xJmI?`OH=i(kWo@rM&XHr+Bzy`1{NM~e>zBKzeMA+fzqA>*&~oV%*3C&EhSagoX$3KM9I{{hwO zU>(!NqpGd1x5T^1`qxb?y zd;3X*#9GS;RV4lO#+C3mJdAurIr|cq-vFm*1B1 z#gRw2_SaU?gKg2zch%~jr!Qzjl^<#=_Sg$BP+9V9%*I_r3~BNFX?(C6nT2N~d*r7i zTP3o>XxwbtB-4aslxCZZ2>1^W8>1T!CgT>LZ~4Ns8`^W}ZR&TwD4|!i7x~9CJ?W%6 zH`n-BgDCA@`EAbt1==r$o&zaQ@wQ|?9V-rHS{zg($bh2?Q#!?n6(KB0Gq@-{bIhQA zqJf-BY5!X+-|b)OQ@F()ns5G%nb31}~+HLalG!mkRT~H(2EQ&tZWdWhdfdX{yQzu=YjqQp| zXH8}>%3(_YNCkY^4++HfCk7|<#1G7kLFZ(C68iUU^5tv--o0sH@^){0Ti4jqPV2`z zsoC$RC!eJtc}2n91uE_&O<12|PY`3_p7Xw`&8-vE@1r^uP2;nJBDn ziEWzA6ok*}V{|k4%yS#$OwjvUl&COu>CIj+>q5Kj-nr(yNg9_IeF5Q>pe2_8>b#Qv zRgY2JpXkPqenn-pl$ayfsb%no{ETcCK#!kcjE`GD;L63v(ia+jlqkPE1kNWEu)<0W zyo;-rD-qb`?15^1O!}99@%M*uJ1>-;&)lVf7XsCSpAK0X$a7FBSR=L^ z=^tx&5+>6$%QzHhwJ|E;G#h8KVauOOroDXbc{WfTJdmjxr#>*7ocTGBz7aiqIUBn7 zcaqWZ{sKSBCGuv17>rCS1AwOmiO(oiKvRtxB^e4!ETrMtm0PD8MxJdY4|&hTPRev? zXv15Rf4Ch^#nZ^Gw<_FyIQiW1(&a1P^~#VV8_KP>`|O9S1a(upty0CO>C0F!w0Gt` zz+7lknITf{Zb^gFoa3@rnfuY-+g>A8MgD3NMcHqN>2G5*B<}x%@@(fM?B1t;b4BX& z4sOg}HpN{@mch$r#!H6EmRV>M)--*Bco8F>h^lBr|2$Ow`_8S zKdrK$m>b2W#YFIA<&L^^_r6~sZ^a_uFOnFZ%%c&|Y{gfyH}OcaCMC2SF* zo~J6MQQGV^W8ECGr$0n^6*m)JZ=QvbX+iQ?fXlURVWTXLH=gQt`iN=}T9c z!-)OaZsQ*M_qiO2Y1LRGbaf7(~d@FmG92O$ATGTFYVfH!<*KwEvNI8O^g<6kYL4MtEH~Di)as9s2 z0xt?!)a{Y^BliiUQ2q78kL2sm>?Y-dx+e6Q)KB7!p2f1%aLFu_1ZJM6P3ms#TDIvHCg;`Yq?jc+pe zr+yM8xK~?DM;VcAXt23C()M;4XF@Atf&!BPN_}GgNgB+5cIYvyIxU04d0!iggCHP| zj%=IsD$9uviQ7ZFFH3%#UUr-vcGWixax*}!2(ma_0VEou48Tzj9q@fj`x~(oZBfov zzc=KEfMINXIv}iLlhGBo7@A68!uMg_gw?Z_P$;B?znUy}<9CJAFAl@(=*GoWl^Da7 zo~iWPeJe_JX6o=0^#}evALq4RQ)d$X)tO?7B7o_CVyBlR&hAy>lEbA{kYYg+Nwb7& zgYce~aCt_#>NL$pTfzUB`75r^%m<1I45qs}b}RpjN{k6y3WvE%bMsZ;aw5nJNG z%Yo__w*tA}3HvuzE?{S*$oEygixvG)1X-EqpQwgmK(tnais;?DUsJ4dm8fV1GhRcHZwCbv_7k#q!>R+ySr zLEVArO|rgCA8O_EcAiX3cDF(f!vMRQ;K((x%N0@hbkYKGNmwC z;$;A@y^_&6=pb6m04ukSdBEh)0hO646=-b(irQM8^|Y_uyslj0=&0p($)*6+=IgxUh!j-3zB)Ia(^yB+a_%AD_ zu&J9vFW@xMlKk9ilE;5+f3-8m`Wx%4y}OgOzS$Mn(=|`YN?=jW)A@2*bf3M2W-!|{ z>7oS>o@zQYgX+NV*fhSy%tlVbSR^Vp=!R{`1@Tr6mtsYq^6MjK62#;~M4_mSZa3M# zxB1ykOTT%N z9Fo{eh3KOYM=J=FaR)&HIfzm(zt7xv#(g+lXs9YmDZnZY0N~<-Nu7X@cz+JS+vQrq zx3AvPzgyomj+R-OF^#)my;#Hm3Tm?a%t?xgZ8ioD-VDTtrfeUgd115*yPVzwauNb! z@+d}&_K%cV`)WLD)4)Tzh+4I8G}@bp+hPoMmUMT#D{>h%?wW9Cm+(AFkQ_G*ZtLR| zIuYem-Yileri8y$>L&J2j1|Y2TSH4r#4Cx1`f**?=el% z`*OeejDOY>f8lhhz<70kZ3(?Htd=`nwWET^rv5TsX+$wqCgggM*GuW#FnJT&;JGxq zRO77A3)OhGh+~jX&~cRkw?>k-|yds+H3++H>=MJKq8dj59Ech@wJvl0ocxyx2X+m>1Lr+2)rc? zUNu%tHa^4o!Uc+Mb|W;V8dAiV9h_me81K2q;$9wJezkGrL0EDixCsz^8 zQZNt%{-^a!b5!p_tL`5(*Y&kT$;z?X>jK{)?IlH8Zc25VVE<4IImA1xe}geae*Ikc zBPm6y0W;*3n)%QQgt{TDNI~uFksY5=Ml^pZecs#nZYWA8J+X!TO;x(y_!jKX+weQ8#)3lmoH$;j6nRwcp-@9jFRrs@bgsPP z>VD7Z(wtDh2E9eFr$wtr>P?!o+Ye-T8Uohg8JMJ!PnXe;NsJEVpBT`BY(oFER~0>2 zvc!==Wwn_kXBGyagVC{+0?bs%jIi6(+I_li@_MJzF3-{UuG^}lYN>FlaJ=`x29Ov- zH8m0EpHop4oAmB*&*g%-Er|ayVbb_T-7D-cwK>0kQ)y)ilP{&Jt!>Qjs{2gRLvhW{ zZ`m*FHJ)_5Cr|3&ib(>h(z)?9r@hK{eRO?ivREN{_z2@n>2 z2!K~^AHw|8*1I~AG|!%_O0>LL%aj1`TEq(Lu?~#&&p6IJe{l!z!gexC-^GmvjRJLm z!8Ez5c1{x8$mu0ND`_7`Udm0D?@WA8$G2I4cw0*?gC5tRAhWmHBBypIB`VlC>0r2LMQ#I|8wS{MaC1wZ7RBbG%Z-Cq5(AO5UGWnS47 z7m-ta%}PiP38NGMUfaHt$>nf6Wc*Iequvc26I~O+v#{ZcHjs;e0oIGyj>6Tn^y@ms zZ12@2!Yk5h^Uk<)Ro8Cv&ov=bq5v5=azIva(U9k3m2vqmA%mWUHD#ualI%g0ZogbV zAI)}^z0wPRxM?#e(iryQvVqn1ioyJ={~l@moIy`zw=_1xZxE^ju*Zp)VcF%zi8mdc%A3%Q+ri z-XmWR8O0qyNF*5~I2S3#XRpX081=Gxml8!6HMO3j5kMQ=X*jOlWEG!n*pQP6_p;5( zva?WGyojixD~bR|Fy*V_mBBdGP;vg4%2P5QuV3E#8UjnTgaX|>Iad`+29R)eOt&RD z)nu+z$0r!-1ER!Y=hiu6@sxZ6p>_~b`ZpN`L6HQkd3mO>Z^GnCKkZjM`3j`uZFqpx z6bkSD6{@s%qmf8hvZxp`Vs`I24(v(j3O1}PWsLz*&jAxV0h&Z&>sc?+*@b9kg-bU7 zRG$JsLIhtbMh~QKA&c;bOtWEDjYQ%i911`12?#NvjRqhDmqELIrX5Gk7|)@EFw(lv zg2h0g7={Jp9^0xv%6aa+KEG|eEXwgXT6<;!1zpD40Ekt5cl%FsA&c zqqKJ{FpGS`8(5~`!%jiYuqH;O?bkj7k&w93C^a!LwJ|2vjMttOa7ZFj>|#NjmlCPOrk`Q$%S=pGuJQ`vPV7UTQ)q3lYnkR%8X`C*+`9Ev`#d1cHdrK4_?Aac3K6NOt z(O(gW+pK7f%=h%pcGE7S?7L}bnW0(48jJy^hgu7M^6z>7tV!iw6?+4&5i`G~gbHnm zVNxCLSde^M;qWHF_9Ve#FHX|;x~H_5m0;sDl_A0SD&A&|95Vk-#_0t{oYdtUc1Odd=L7R26pxtO9FfAZ8^b(jb1#P*JQwy~ zMwrUa>7)^8z&PLinDgpK8pnhm*q*Kz3pmByO;{)(_av{~>oa3hGvQ(@MkymIy^9AYGH66j_n3B(!MC*>IU{W$6SKj25adHp zoAjgt*0VMppS;%C9h%DhXWh;CRPmZAT03EV4=-(~e<_&?iky&Uk3l_~56?Uc3n^u8npM$x>`zfg8cI=Om&OW+)0?V>bNB89~A1w^dW29{3PJu1ZcLEBJ|A z1U>onu*T8H1wuiH{SWXwRitVx>;vqof{&$F?@DG39lLq zCayT$kMXo!I=>>c6#(ky8%9OG&pWlGi{L-@G*vlbgC#sVMoCZ%D4S=eG}iZ#dZW*f zDG{Ug=yrzE$-re`#pF-;H|(4SO2a`syhz}+S7O0;Nym8=79c~Oq#5+IXn@rIU)s(- zFp~DvJ*^s<;L_{=dtxBd!e=4I$g0;KxL~<0!T9T6&#Jg!^^(hxmvt-D_gc$bzS_U9>CK$~natHf2!i|v*faZ}yqn1U zcb3(s;`4r1wl1w{Br!rowePhJJ97E{TCk+#n6rW5WV;IsNHZqHRQ--dQeNrkHoYy8 zTPmzE;Z}}ULzUlrG1vB&*}5t_QP1BNrkqy9Iyu)Eh)1H5GdLGbUAbg@*7u ze?JD~_Qb{!|GqRv%r2-OIOZ62_0$(;wpq)T99LM^3+@{%(u%>{RI-hU3um1qhB7|Y zxB_!mK(9*i(!neU#SG@$^lkB&ncK6O^g=nNnQRkTB7Re)3FtA1B@Gu%H^oHtn|Bsf zGgA?T?uOnq&TJ&Rc=YefX@LhJqA&+fAd6uO5Otm*S3xupnLxh*r7$73Iaos#y#5;c zxvk*Y_=hNNjn!U0sSW=#_|Qtjfis_VJjh9{i`ct;#9G@R-i2;rovWWuOj6}~M6@r}| z|5Wb6KmWm__K)up5k?BbDdZ@*+r7e7UvVwm`u6O|&pzGjI%Ap5D&w9+Z@aj`lwYys zC?M-q`9Y4`=3*II5?&fut7XeeVu+aR{EwmY@Q3=3QyGUM>u}bItn76%?#@0d zGb@{%m03m#iM!+M&2ci4JyM9QjO$?m)#|SL&VS2P8Pf`Eb zIoq|Hqp^sSUqeUYVoupe0T?~)0c!Dwewhv{)R`zrQf?@7L8Un8k2w_l_AEe^32Yj# z&Cq~%vh$0={X*3|C+i9|2P_5N$qHZ)=){YM|~ud)5n zYS+Mh$>Usp`n9ZtP53ZI??J#+0}i-dgG|M1sEX0_kxTeLzx#D}X8nLCmKS?T)RXqn z18^&7uuK6_r@CqWN0^udbkh2_)w}R-IuF}_2eMY*-~*QWP zXT0@orXnF%rOwQJ=v42nPpI~4Q2~4u>UOkN=4Feq#!q>IDY22NQyhQGYJOL){(K>k zo+-O>UFgEye4KR`t;uloL<5$^FV&>l`Q~nj&ydZvNUayk-itRUqaaXn*Z>sI9(!8- z@~=aVvYv}|o$*l)TJt!Sym1|^cJXZcH&*953E(`Yj89nF*}mM@!F#<>$&*K{d-ao! z&w@ws>%gk`S${%2m4~o^;zr8gn^!MxGYUAO)WJGqh7&?Y0ayc#p}oi(qKCgNcYh$& z$0#fxn|hzd4edi;YDP3_^f;^r_gK8^F2)UBC0f~kC4lWc)1N%`z*r*vs`x6%q#RT< zy`&%8^9>ya(Sc_E&AsP~O91>!FnTLe(PTg2vkZ&vbkSv=+*bsW;aP&*>$#}BQrxLJ zF(}yAH+*7OAIB0St!^})uYZq+G7?yFYq(x|znS}YA6v+8MkQiZwI;BN!!~FQ!PDJ1 z*XfKk1*??KS~=aQ#&^TD?$ znBGNmcR*2LcpB};zZGOivvRwMdX?T6F^p^arTFmveQPxV^LmQuEEFX@R3iaE*B8Ot z7|^;WeEaS#o%NI+@73k^@143VMs_X5$>noBq}odg@_}_73n5>aQZXycc8cLX9wct< zUYiRo5&;zrT+VXdj$hdIWaNRh9HZ4c?_>ILV}d9Ml9ABW-^C4cYupRw_9nah>YKp1*Z`&go~bv% zJJ&vKzknCpzA9Dr2;BUX5a?_8```F;hj3R+vg&T6+PCTa$eW|rv~MQfY*eYcS=A59 z1oLCYvev4FZ67&K^7n#Fw74th^`mDg72Yg6GXN|9s@5UshhFk)sET0FW`iNtUg+?l z%U3gO^(KKL5Tq!I6(5B~L$v6+sDzMvrVkeRyDn|Q7YH2~zmhF*F&JO;J7Fg&oHC3> z_nWx*Qczl-!*YCT4I6tsQW%jv`29Jo-ax0P#Ay7p?|vj#cgtpK8-;NA!>(v-UY zV5{|!YFO`(-m4VY;n73;GfIoni;7O=cqk&7-%oiO+2ORcA^uP2q7KCb9Eg&x;Ob(M zlBD(A8;eshDYsp_8YB9o(uR=R9Y?h9V{PrW(hmdHX#dIv@-wQw;flNub>l(H%T}8- zJS-xY{uLJJgM1H^(-|lc>ywCq9X4XQLfQ+at>!m%5eKT;y$AC|N<1UF7W~MT6)$ja zcqiTF&f9`Ort;j`6u;}FfA3DJr94`D6fEANW0FIjlPoy=KI3&5Of$sZjaltl-puEz z4aumna}XuS-qh3=)q+#PAp`j(DgY4=34)irrTk4pZ#22}-UzLdfPf9pX@v{ig?Y!Q_!f8AfzLRTtzIY|tN26d?~W$DJYrh$5i72s9Osvw zm?IY!VmKC6OrQk&8`77SGWXpJ>$SFfotolNW2ey1w>kfKFqa>K%d1rjAQI2W<7Kdq zsZY71o&*ABhSxvN$FXjCPr3h@a+r{Bx~sY9USia{_&PxJ9dOMbeEz-PUle_nB##+k7+{-VACd+!f(c2g= zhr^vhIX1LSn!>gY+hZMle7j9sxCcOsa3sGZq;#4L&*sbxn!067tPt|2prYFK@VIsG zuz26H87SM0O6*@vi|*VQJtne66u(#1x|CwOr0Oc!>_4yZ&=!XCx6(aqkD;G*W@)j0raF8zWuG6VVsFdgdD(a<4Xi z)ZD%IM4ZX?w_pv$VqwA}M88jpqpI5e(yYBn=%lV}0HkIH)~CC`Sn2V&=EC`PtB@B| zr*G1mAJ6-mUb7C!?3daFdW!xJV2l}MS8xoc zM^nVIBe`Z2&I&K9cO_J8(UZ);7%8ap{5#vpw-&_(@!=llR}nLYDoDAJmR{I10gD4; zn-89gR_J~_Qpo9be$C}wrUl$CB_lJHBc! ze|BYwwt}jISi48X_l<(*0rme?QL$L%VQ2wXt zC-V&DnASr3fOtiL;~M0!kcB8wVDSVf{#s)Ar9c=nY!A34X1(;K>L>eyEhYM`lkn0` zU@p{O*K@{mr(vPm2Jg7Z5Kdv;HD5pXs=>YL7Uv0Gi3Mj!pSTK|qNtfT$15k!Wx%83uwD#C^ zY#qv9S_hL|8RQZNLu27WAv-3Owy(@aAr^@QI|c0XCb=Uljaz9@3c+*MJ>J8^*c<8t zmghQ2oha`J-rpJidw&*}j7wUpZgj;qq{T;FcQ{#7&yyGGf(zu=j^}8)4FQtrm_mPu zSyeu2!Zqm9NC~U`ogTWmDjOUHA=e~YF*hJ_I%CxL?TLPgT~kdh2$(d8!i1&Z<9vm! zy*S^1u~CIgO2EVs=^nSmQidJ1$D)~5IO9+?ChQs_yy0$YJ{APy!c{n0N^xc8X$ zyn-)Qi4tb@%(U)nn9+wjde*u;_C#UbQk&(+3?%Xeo?>Y)!}XLvcxzA8Tlipj>cnWj zMrIlZpeCo=ZQ>MGm9_d2xcm~*5cPb?iThv0@haeM14V6q6TY@~HRU57h3IqROuLkY=ft^1AXBX4hSM8FA za>1$(f8k|#K3(?O)N96M|CELU-QNEPh_KMBe1JmNA#yD~pK0h^Kox9$sGMS0d!-1iW!iPVTkO0hQ3ijA8wbLM_ z?yuf(;UN-vP|~PHzt)llB;r(&3Q4oYg}C4LM4bq8_8fblfLj2Cef#T z&p^&AKl768qVBNvi8OP4DGkzf43XKM_L!(>zg@wWl49{B9D2p3?jW-*q z0Sx|z4h7%V)PnMLuWi_9gXN3Vj(>N|Dmd1Yo&z-9G%E3qk=0=)uh!9eS zQZ<_DB>LVL>%E$$bx+^D0i>`WjMESf1XOYC0JyHxf6tueb@!3~el1EfR!<{ZB?}sG zkYAD*|J^-XHg9aX!N<#HwbIez5!BUH$%PA%LT>4Y8%ACh++&o}Ix#Ub;t!7<7i(&r z%=?XgSu=(ZLZ?-DNELikjja6gUi;~BMycphyJ^EyQ5FTRuAK?C=1;ba&~&0{*`jq@ z`U+V?MVX4HQ)C7tTs0O}3SR7(mAgmDz0rv73*{l(d4HPO5qyxiu4tCN!G@*C>7NX} z8Zl7zTt6qghYVhIuIyiZ4uaN?ydS6IhI1=fC{Hs~9`d<7k#D+M{UBlK zF{K++?3dGe8Ahd>n;R6$BeW|=W%J%MvF|X2hYvUemHmVQZ1?w5la}~UKt8SKmG1-W zU;IqKJPMwtev|EExDT@=!H|>yN@hd}7odP{g9<3!|~~d)wU+*MFm`Fn?6#*k&vI6<1Q?kY#s&%^6q7R^yelF*K_X=*LNTw=qi`B9G zOe#GI)OJq@ObM%fj!SGTwaQrGQ^}=BTAkYSqHY=fM5N&~#HgRGl?a(-r7d_DcV6@8 zsT6Qj=>y&#udn4J!feopO=!UgZ2A>Z-EY9go2`%l#lP;P%F*PU$Pr@-k9akkDg>$yhJ?6t?YK18C*d5ijXYVa5 zcb-yv+>S}i2^cblK?FGl_WJ*Mk)71^Hm}lSI4Ldk#rf_hGdQUhzlnryBxV>jIHj;Y z(`dD+)U<)0T(R>#NPZ`;jeH=ueey2;RUty`HrD~V z(2Z1}Z#4J%%BJPdhIKFhqXI_*HfiEdbS=U-o+dmuKvs6ae`+Xq;1mE%R?GXIFX7Gg znBRM-6|UDzsi{E@ck3dfXO?Sut%ARiOa!&Hm>3-d?oF&bzo>bRFwqYOi%|~0ZX*=u zQp({qM(AiSrq*9u8OK>)FfH7>+@KB?l}UE3SrFM^$F@+-6Xh0sEwr$#N)Z>sl;8|z zCXfu^m@UUP_iOC8cYIWi$c5j|YM(u6=gb=vp1&RfUb;~wO{ED3tFB(N|PXK{1Y`~CB%`xO_5yoP^gr1uALk=`!` z=AW>zCxM04Vbi{=qNOj{G6kf=^z&Epz_BS%UD;Iv%dWlY8OfcE`r31a%+F}NaKWiX za@v0Yd>PlWIe}7?K}2AcSjzaf^pyFToh)uAJ7=ZrL zVf0MgHtX=;-&9i%eqcg=yrgYa-R10nS5~5n07?B+lC*|T8y0My!#3%Hz*OOGezB0N z2b5ldx5(-=uA{UH=eqss@1}AFBn@&H&y5|DaLL=@>oL^myYH)nwZ>?}fY*sAeyQUN zj+)3*M|1SF-fMyDawH*#Oyi}~{QOgyzQ->go_rOi`O&y` zX4Me6AxWE2AZ|Af0nl*^D^{5mG1Sgv0mWhb;Zf=zt8Ig}##g$Q@n!bjN{nWry14yh z)jheLyVkF~(6V%IRCy-C15AzqfYwGqa zXNGILL5T{KhZF#mfoWO30D4Sx*@t6d&OQvV7Y~A-Nl`4tCMj~O~ zdVE^^gg9~CZq~D*1lZ?DQ{v6QHUqx8AtSQ=jhRqrh&u^nv{FG_~nj@y6#W< zchB`9O}NPcXhDs-b@6gpdBYCstcCM_6z@eE-9;DM7tajxJ9*{L8uHV9CLW_JEgoZ=K0%G&ar&WkAjaVpOgugNrS^SF>gllFYM7(?t-5O6&^+OVZDzT-2PB`7xnG8v&v z39ys}tl&r=7T}F(H}f1rQRV_gJ>>WEOR@`O?7el7J3o{u?5w81NE7Eq zvQ107mf8y9R~1D9aQ*oK4~7MKu02OT%0o7Y%Bi>hewC5qf$$6_ih@xoj>42AYsvMd z8L^gz`p}L6`rnGzjG&o&N7bqZn&Vf!zCR7x_Kmx95!m@C9Qo|Op*Fod|5d|2G+C*7 zz@V;~?D0|S*_gRE{zj(1s)QtW=TVeP6ksQYV$_*AF@3zVE>1QlP(4uRG_>H?JP?t; z)gW=wq*vXv*?Da5_o6#mPzymuW-$NsToWJ9Y2Q#makhcb+%jMsH8hz4=E$g|_$?*J zjsGmaJU6I(zdG%uBj29DZ#p6RXhoK3&yKS6rS`-}HyVzI0d}D~M`K1H09W>kn}J8Q z=Nzb2;{8!d@q$3ApjAA#tI~91P4w1BjQ4lY@zU`^(8Fj4GXI!^JEg($p={uQJX_b$ zn_foI8}EnPZhlXH=n%%L6O7{*RzZv7!rEQ49B;@zZ{4b9sb$?bhxSL?XFdKF2%BD> zOA+_w>)c(`jKR-?6$S)UKccqp8G!b}tBu>97unlrfb_WxWgZNmU|)hTTS-vgyS0Pa z&5>S@!|$^GKbUW1q@$;w!?A9&5b(hdyG#`xOGf4d*6x>xq^_Cf}}49kr#^D1|*P z7JKswd*Di54=SFq6B zkB(ujb<$Ap2^Dg<46LbHvGVX}g<*;|#Y@G0WiDn>DqjU1|BQ~XnaG6OJjd%-xTNk1 zT{k*U{JAul_BrM0julM8YJb24AXhQ30|2B>UQX9~43yL;ni_3{b6VbbjnxwA)BpD& z@cgG-98v-O0cXqm@-$BE_Hsj21`RwvA^&4UWF>jYZ;Uivs`pr|fSs>%ToGzQ_T*U& zukS(4UYGqGw-5BqD|BGE$aX%j7MOs?(HYD#OUtiswe(3NB}8YeF)HFb3EXdX`3D z-?&S%3>$j8=Sz9l`Pbm*B2Aov*8mApimTh~+f8DhPhTUqg9JlsUYc|x=7Vt@GLnkX z)1GWiKek6FMYOqv<0Bs4ZX8EVrd+&6ETX2XEg*#BSw^_i?f_QM;um4qlO}euxkR_XYk{l%4=}xzXq&{N3pi#Z2B4)0WHWP8yUu`tk@iBirj-M`5Aok?yqNaC_U+@fn z8MR4bl$A@R5rjm+zg)V8@LErWeF`F_Pg9sM<+AB`*`IYGKRRRlga8040aYQI5S-0j zkN%sYCa7XmVJU+WR;@q@lhQMs7OFC`JSn$k+R^|Ng^3FJJHS~~)@bb~ho((9$7@ST zM_73lb}1&>>9$*e8**#u8~_qZ0~Kkf1=ez)>oc`d8gBKZoI^<>sBH)ek_axh#I3>X zh};VS#9P;Hd3iBD4Y(K?Qh$;g9=TWJJ4r2zrc6VFDQ%K+vsgF=Rt@~;1+!};IAetU zAXtZ>EwM4?a;3(ihC4K4SO9wPLm?$FlA`36oQlMZv&0UacB-dw5E8KefF2@7V$$G_ ze|vY@vh8pHU913GZ&LodH+@fxHdagNCX)6LNe>7FbaDm%nMw8BPf3nIO6~I!0&8yg zw`to5f@@vF+=%XrE!RdwxW~wL%md~E&sYO@HgFZ$H7#Sg;vs0rq%(%xLagVfS^H!; zZ`RdK>$|cw^f2UAO7(I8j-g4>9M$qPn+SH$2KnhYY~cPQJt4-4Y@)?up1!$d(O(n% zy>}ZHDlm+KD+qq0q4=}JUn%o(FF(oc*pS40l+ReY(0IdH=5zH3%dutUsfkBKH7=wj z32-goZ|B>L{{UV}ZI9ogO*aZ-(3;{yk2HZ|3Xskba_R6d85=*PBmCH^=KT{zi=VW= z!vIhwB7*AjyizW`>oNoTx|B6uI(Ss2=ZcW(5YZ#rBAE(38Teb-_$xATdCFF>{AOAe zSO^NHF}k$4czUg5_`&&rPIH_rHO)e(JKUQ@Sz3jZ)JQsnV$i~R4|}}Q(gZlfx{eh z_iQoq-ajK@=4_j8GOGq`h91dyF6!b6dSd{4|AzCtjQ#6xL$0&6#^`HNS-AW#UG)dU z4k6sN<9Fu;Ku_FP`}ie8`aPdEA_F3CjuAU| z(uR_YdWi1S&|n%y&#CK8je<6&u_|r{wrZ~;+x<-6`0<-U=>|LMW$e5xDVq8hp$Vyp z`=2KhUp2a9j0&cSqLwwaSmG}a|LzU_H7SR!qbKf~z878i-2E)L7z{2h$ronN+-mdD zH8bc8<(t+-7t-TkkWnipse=Qn`F2v+p7t_+E$*u^wGJCdCYeT9hI!eklHb6T?WnZF z@~7WQgVzHQ^!rKC?({A+Jsb~W;c{?(J6QYBO7E2@?77bX03n6dI%ZqAnzHC}Gt@X5 zZ~TDQN`O$sCaVh^zg2y2^hwdr48GK;Rpye{F~T4=ynC~{(B?xffHZXpLtG*@f~yWC zD4I%OC!8DA+q4*%Rw z%fGNCSP+UH6t~UXr`WfH@(_SczL`ZE)b@Cr{i2mg++mupxeverSd);e>|5`^HhSWN z&r5;Zt-0jgV30K>zPKlbWRj`k;EFh3og{kCr-}%m{87#NPg1EiCDqJvVY@!>wcplR z(kpprMrz8FAU^8OM{ji_o2(mJFrg?j9m@oPg;-S?d%ZPbtjePr);OYsG$)gDUPmj9 z>N~ctFL|1UMEX2D-%lt#yJcT=-muZEEWXba&nGQOqtQp6_|@e6PVKy$dar?NPY$z zvzzJhp%=AS9;6YTZ`l*XHn3(|gtCmc$=M!d!6m>q<>6K3aT1>+(QDEE5V|O#`X5QP zthy2`7t=ZWaSL(>U}ScY>#UrQs4(7WTa!F}`nV6tjow_*>_$173=CULE~0~gc)-6o zRp)y?>Ctc~jfuRR9k>B zhQ)%`r0Mo-(a|V0t=aVFtgr_X)fxq444IR(wAh_l58L|^cdz;newdZ9H@5~MX9>Q$ z4y^J0T!+2J{{h&J7pDA#EVP0KomF)odNSBQ`^!H;iZYu=#^{7>XI&lI))e>^FYREo z2u&4=(yq^1tE3!S6%nn@zgzF+w;!huESBtm2JkWy^T}BxMK}L6qKA#AF)GI%?Q(i) zLGL>l4DWw)e(Mzjb!5nu`PbD8foz4+jWCv%dLIHj@tbx1^lDc0$S>rzh-ZeSc6MB> z!9(d6OvPzU^$oEcLSd=4=E)Up7YzhW`Q{KXiK>m6%V*6CtrjVvsd{*#uvvDwe zyeShh3Jgx1m^^)yqxrxmUFC~NLll8ySARy_xArivLD$mkFP0sR=U_-MTa>gyV%Ay94Dz6W9w%gve4sFF1Ac4CUvw=c-@-5S9scM6+|yUfCQIO|BLhtPqc-i?NCF29#@5MgB`7@p#Ou-yKZaVOp=oxs=3JV4fP zJ?~TNs}9H}*1PLu))55}VPJh>3_l&a%t7o);z7fSY{qSBAx&NN(qyqFCUQf4`SqS2 zD<^uvr)gY31f{`yU_1I+mT--ZLK~R!O||_zdtdgeI3=LKN#l>j<5$-7b@LRfr+-sU ztLvSNI3L|}i(6^ByyGp#S3mamH(vd|6{#(3F0P1t#bav(Xk;eXrhn%TBYZeRAU`>g zfBW8Bay*^8W(=c%1Jm+8vF|b4qxuX-+-^UjwJ`ge_7f`%g^ys&@z@M!J`E1x%;Xnh zhEo*NiBST{Mw{amOZ+_SEV)eTN?QXM8OvMm&|kG{$!u(`7(+iJjgYHDyVsXp7Mq2d z2vew!F$7rB93Uepu-zx>6w|m0)-|EJyqG~fXNyT~WliYfi519c+}} z8Kqh40F*-E1KgP5;9hbQhqH#ks7Jm=hS)B4v?La#9-j%tx@x3&-0QXVqVA(t6&y<= zLRLp;u5&~yFlW8hK5R-X=fpHXD_YVDdh3&-$q{2jezDi{CrF=W&XrbojRF+B=a)Yy z8LqNcgDe)rBXPS*Q{5*ot7E=4L{Y$?L}?5VAk)8H9Z;jNo(wL0!azdkW3al?wD&sJ zl%>4O7657ci-d(<_~~sjQB(Q|5lR58w$%zIz$0fJsh;PYD>js z3OQzh3W9Fp-|{$|dI;7kKoWqdG$oVg@0ZBEk`H49;F3M12Ji1S_PTfm&AO{nRf~vVE7i)@ITS3lj8Th7z0tl2VsjbINpo z+bqzVsr0Pl757+Do}TV}fK2eV&G61obcw*!ux7c*ep)P<3Ku~&jn~yN@;q>*5@HbcH*u)S05i?ay4TSf8v<1h}DW^VP%4s~>+T zYTytUN6;fxk%q#OTG6N3>+dbTIyzF<#X(bJp!pNi09wVZj^$&NUaWMX6tzOKG!1;z z^JryWD8Au+THU(4F~V5G7O!h;=&BTbS|d?j7UXJGQWxkF!t-TurPj`;m%0;(*J8*W zQGENrFrC0b){Q2Cj4!qmH=eoOmc9}sw)&1!VjB63L9wyWfLtc1WtEicb9^!M5E`hi z6v=CV3Dz~bozVF^!^opuFvF1E%u!dkOzNN4c849({CGnni8+^J)pCN2fO*QO9qJI> z3Z-arNg9>uN%6c0{`csK5s8vQ_|RWu7ehkfLT9>PWozPDkv+`OvFHB*+^fL=%qOAi z8&pz%D{pq$Jkh0j+we;~0eW(AcCR;VAoo|G&QHC;SY{5DNT+&sjt5-p%zt-}N1kqO z2AQY|EOeMQO7HfybbW@U2F^8|q*Q+NWKe5&shzm~zT6fC2o#C^>CnSa&$gxp9Sf4L zAp<{t8$??PiV-q9dniASc0`I*$ojG}HENnK7BmKgt7zwP-=#b`WOg66ec23J$dd^e^9al_iw z{rZtvGPwokHSvMC*l*nS!s59!_=d8hQv-d83ynBIezNsdaRe!|P*L@a#ZGAXRI7yw zu>s5lCD3U6F$kJI%kj-MrhU?rp{NhjiR=?tX{~wu*`WH40#iB5E*DdPss>nTOG+Sn zRF+#NCfAW|=V2Ykw^#4B6vfO48Y?o?4}MSw&X-khmcCddAf9h4#yC`}zx6zBzcu|S z(c)KH90f?)A3pj~0pLoeK5{=XlJG^BOy-Si#Ku(_}cR(Kylds~sgS3U43)EU>_c!_mo^ z)Q7+f&N-mSc42-WbMoo;dE!i7G4aKC0t>K(`~gS921p@8TW(R;WcEs_5b~`n0V4H*WGC7lFlf4CNcR<2pwh!37@9Z=MT5| zkO`=3m+4pdV@}Hi?vhcTylre-@9}{d-~)?MM`(wRw^}=-dPRp5HcJ0!!gDP{etZ4BWoYqv0iA=S^8w0B7oXfuo|L9>sX`HV}O# z@CzX9Z^s^fD*eWAw=}LvnS*&0GrLyN3ll3hN;5^NYznyJ8t5atBbqFwPAlh~Mg4yl zqck)!r9*dO$B9!u5sjkKB*^Cdd1Buy2`f)eq5RzKg4Hy+xWUvG4di!MNtugjDtghy z=qad%qQd%R_RIup`d^iFahy0S`XZW#<^vIxhj7g*oL zzwcK{6jM|z)&`bVb$ezA2%sK4sECSX(Keo)S7*BiAUGh)B|4X~ZzlW)82r$>8qND` z$5UaoH}h8Q+$aicvEWPP*OQEt+GNUZd$h=yqj z%fX+?fzPKAZ4)eMVkss#BZOK}PxhAYh@!HKC#1z3$k^fafOn-9*WxqE4oMbMq{As} zHSLd~w+@>$y7+~;rWGHu8ZP4P?nK-lbDKD!NgV+aAz3oBeQX9UR~Ih$5=vT?g27jH zl}*1O%rffU&rpNR8M9@u9eXvs4N7S0S+m{MP zJ`~bQvOrTxO1QwCd`6so`}AwU0xwJz=)8Y%`z*{|-1~cs0{PMMtygfb2tBC9M++w@ z?*l;scr6$wHosagQTfFiv$N2~CO@n5NL>gVNv(N3eucu}Gz9GI7;CTO%pZEc8 zvql%6>=h~&ce8+&dX1ZRO_Mc-jGv`3ZWsxnhHSt?Qp6Df4m5BECO0gc zM)!T+)6@MKi=0^zaY2U|gz@&}-%9M{$%|Nqawp?rMhKa96_JY59%q!GY;CHB3Zl(6VBmO~<$tWGTnHBuoLHjlM1W16fQue9FmkaPF>q0Ey5 zGR*s@Z?%6B-`Jq#2+TrAfgSQs;`#aAgjqAzcp;w%7j+l=v(?_gGuc=dF`Ha?6-jYv zsdL?uf45a8$VXs=fgs5POF>$E9sOHRh1G%cT5sQ#Ws@sSYcipiEL`j4ca?m9l~+0O z2@-=ssBBREnUdePL4W)PBn?~*hoL*O`AzD()ZHzRI;BH;p9-Gq7aG#SfLZ~$ms(TG z%0hM@8x1#}GsTKhqm`o|S;;R2s>5z2H_)DPo=7YeH?RULG^m*mEoTkaWyDSf(G%HU8orPp`c5LS~%5`lR_quiPrNY~&6L9Cd=THcnO@=FT|a zj+{0&)I@qfy1uiq{5z|;Z!><|pfX7|6O|F~1C3QRje5GSDmE2?1s7v0AXohAu&&8F zR0o34C~Q?MZFxZ7Ioqdbw8A=tqwwP%*Wve|(CuK5MG38waDa5FGPrb61V|Jg=;N^qU}; z*sag-ePq8K;a2H*VRMyS)wC6Hy*0X}&iH7=WiR#Awez`^QPpoKS|B4aW>@|dd zQ1Q_M0yoYN&a2OV7~7e~-JsTSgyddMJrQ?I{~7~WU6bLDtcbMJZi=t*o@t1)X-=k* zVp9pnEyFk;>xnY6_pcvSxRsB$gIB%YagqSc(Ab{=2eugrCuz$nX6b2b0NkEv><`oY z(7$W#Okw7_bJw1L4EOMqsjCA*PEP+=ABHbEHjdDt{A$vbOG@99+ncUicC+$4Kn$)!V*-K5EnB!)4i>8 ziqiv7fA3O3XmX!QcDn{{b$|oyO<%TN+#TY6w|`Em}u(m}_vt z1sX^tKtrGmG-{_x!k90?B>~2<XKe(o9cByHa#c%9owu7$WHAboj0| z>LpV{u&l)Z9PK+pKrU6nn#Z{p@9LY!UuGMdG*D&8ZAoe8OtwkS+eQQ;c08Ia?l_d+ zHMZ0za7Eq-Xtp+AZPKG7mkZ!1TLKqX{LZP`T5F)6^W&E+VxPom#@;Tou|b%Ef&DDF zto?B(F=2D`lz-DJt)Ey*A|PR4hgVXpV!UC-yW0GY23=I4T#V`fSYe;LtYr!QA3)x2 zfr&(wx5)k_S$Na-LZR|r!xGnCQW5`_39v@`8#G!mp8ZeYo8}E-Ia6Av2pArt5yjv3 z+I7lcE(e=IXG)I2BXFu3eUsUnzDuYYF5Y$ofTdF)0eU>%dUP(8eRNMn$~#W2hg2TI z6iTId@L5u<^w->tWzUx(2>CdLE~tIxLWO(Zsr01RT7s*6CL51;h&5M*aur+Eu%Cq$U_=msZTAn;90?#+-Ha z#XN=mwW@yIe&d1~5lB|$SV4`Ry_HmbqkdzTm)cW;n;v;R6=bORAHW2mHm)7eHj`i; zULL)zP_W_x750Q%07THKLawg5%yx@9yrC>l`aWzm<&@bdo%UhNZl2e1L)lk5**@*H zN$1Siqp{t&R-#8&Y&}L)G)Q&AlMlRyOcrJPbv2tH1@G!QxlWni=e&+QU#DBuxjYXm zG8Q}TkQq`p8`!AGQ)kpuSB3J|;x;lvY#4=W|4K~dx|+tEJwWIjdgE1&*B$=)!~V@X zA+}4joHzF8=_C<-PmRJ3$ab^$hUJSs5=97%a?RLHP>fcL%im61XZHGERAGnp`H;74 zDifF&`ip$##<%C?d=v(;S*qIR2@OgE-DdNyK$yG>J;~xp zCWqRoh+xY+ov}(P>-0hf%a>792jK=Z$LXD*7!=^bB+NFxo8jS;qs7*+okrYB6MRZ1g;Bg%JGFIp7 zBW>*ulz)Nc7_mu_Wv`3rA_e>@1l%c{7?ih)T1{30-p5Ip(q_eSP3?PQ%mY2#Ia4d& zAMnxPzOVd%UA3%nVd~!>Z2WO>3CD2PTis+7ZMIYHfH6G*xaI!`7&@-Jg@QImrE-(O za-;t$P!Y1p5x7<%!>Fee4pflb;9;j2^hOq~it}-G&b{Yz%7W0m&KpbNw}}{E#Pai& zcMZGP%}U7^9xA0oT#?4 zy^K3EdHw?&*w|%t8_q5%N(ElWH5knoMersBhc4YC_ecL+>6V_9-ZpL4^^E+I8KnrF ze0Zm$)w`w%^-YvpDcdlGPZ`bd)0Ir7T}oe-n^i7(E3o}fDQJYomP!UXr5X70=8FG^ zW#m@5Be*I#ZHoDx>&jtyHA@Dyq3vxx!J8;B9pvzcvIwOLx>&0b7c?L_u_|nS2-gm6CAc~t` z(ngS7{H{+=?Hb60$Q%0a1RFkwDkNsLJ1W}TN$E~zNgbxiGvf91{32OmHvWyapu?r4 zPH|FBC&!Dr6Oi8-R9P9qca54%Gi1Q5s1Lp~UW=KKI=QEa(Y^-!a(R3Y+}H1+|6u_A z!vYQBzpn2WDj7)z5;iJ^#3gZeUpIXA&T6{!nn4)_4SavvOY>`Y3>SpXnEyKFb7bYc zp4T6AYeVFAZYUKR%EKi?Rb`HN?|SZ;`*FeNam_Kvs~*er5I1uTm~L(I=gv@3lx0l6b!# z-G19psxZ!X13H56gzDPE|0Irjp^ms7hY!FqDa4LHilgQXuU-N_l)9>! zXJMQsp$%lo^SWOfjn*$$Ms=mEz!MSN_h~o`IV&|8tA1z3z$3X^j1Y9gP%LoC&zseHta?|I>!lIl7MA3YRV*0+~3(xUv2U3MtN z`;lRn&IxO*a0SQ=x!S+p7$!5YoZ7QZbl$tp`|G@!CRJ2H#L!Qdyh5!Tc&&%EZAeM` zi{SD?hcc8n;p^ywb9D`c56t)bsg=tVdp&-q>V~!#ucx2ChO!jA1acjbFPzXGb1yI8 zTmGHbU-6~?0}Mg)zASC;n2dYZg*eiqn=EbcK%`5lNSKg6DteMbPy`8s)X(y(KM2>v zAgbx75>*Fkk|6y^2k%AuWP|_|6yjvUR0#vI&OU;%c8F1SeUZE6OLxkl+$jZiuc$h# zn{c8P?@(`}yZf2~$+r&w0G%z>4)gt*AztEuvO=PGBC9^hbtEZ!r=LmV=wwvezErn; z=>b9eP~EvoN|ckxT<6;rk$a=t-8K^Cg53b_NC^Z39OQHJn&{S@;DQ1Bif+V0fl6gu z{JylDQ|>A_twTv=ts3C7Y=#xEjqnKvq=ckIe8qU6R6{iZ2O7N7VNSu;qW&xSW6PTLwi@dtzgk(nGpiV#14n=xDjJ(S` zCK?Jtr9{Cbs{@e-7(9+oL0)Tf9}Mc!l&MN29myn*sWUTNITyq!O*uLvlBU8OCvX8< ze4v3I*acDUV?5Q1CsNx5Yn-f+<{$|N00KmPyYq_4vjskIfu80E_wvmIT>k6JN2G-r zAydhpp#5pznN0OYb=KO@5QiPL330NYDK4oBC%2?7N%?>WV^lP)V%@DJ@bVuGq(Jor zAQ2=2VnCb-A6nqftn$(=(+xIL3tMfaB>eLPdq?M*(bBa7hSrs)&0!#+3fKaZBL{E* z#P>eYTfCN{Hy6ykPPfBOd`_~A z0wdm@DYp$saY-pZBJP64t9mw{e(KP>g&|VQq@f8)Oh$c5S0t2@Mgap8=bFR65q)&& zgzr&^1OO+FSK~js_bQm&kYrR(jqVHx0;YmhBzzD!qjdQW3kdZ6 zNalh+;UpXoe=2)msiX-W&?cm517MlQJp~P!w?rk7sYu)>*qTUgR+%`SwPgvFNSz*pDyIYwgrIwNj9PmVgRSQIbFr+{P(6(Ta3Xw6`i+wtx)8#yFWi)n#Ee&KBEA z-!e%~W^hRT2To3KE;+W%1-8LTil^2Hj-ZfwjzHR7r6uB1~qBjt#h3iRiD^rk#R|Y;yn?Rw8-#sS*Jx3M2qJiOoT7q2`iQ zGu*{U7YdZ0v85%*NmC_pNenMJCmHX+fK>!e)j-Vj`Fs4U38i7`Z)hvOOUxq;25H^qbiGx1bA1d{| z7&xl};>hO&Hc&y5IU)@9jw{VP7Si2PTPoaS7*e*3nCT=LJ*O4vdQ(xRC=?Lp?dl~s zDwFb)j$*p{blWzE2xp03N;K6*;}Q4_L=bm-fJDYAx=X=MZQP{;llWmma$}r>?rS&1 zs#DDfHw!`!2uV;;_uC}*9`tR>L*>Q1+79j%*-apwzDjLT=$aS|+=Qs7 z)H1j|{{RX8N3S0~l5rWuVQ7g8WeX5nQXqn&cTaH<-nCMq*$Gi41b~$j$FcrL>GSH3 z2&k4OfmKFTnp>)eV_zGS$sYT*{$iq2JSu1YWfK)CGuD!iw-lPO*tVx^05}7g{c63# zL1{=LWBo}#sKr<+_ok8w;1ffQg5XTHgaNT24!N1Bswsg2C~nU*(x9?k)Fz|dj%aSD zKuT3ikuxTkRXu2KphTOfZa>+m%Bj1)bwrXCP%5a(sBWKX0GO&MZm5c>1yC|juX-kkws zbq&=H{{VUf=da$16_bTg-S1Ft=b9V7bPTXnR5fhcxr84{1T26Ih{-sPnFg%xsGkK$ zAWzVgpURU~g3lDzJSfMSRGWobp=9A2n{6a#JS3$;AYurC&1Grc8n?H-aqDL96$ApN zZqV%KCQ;Mo1$zUUZNl$L)BYygWRvLlbs+s6A(@9cpeD{|7%8jWG+uIl&eQ0be z?qawl(%UnVwt2I@AA0S;Shm&I<+u;1Ak3V>N)*4CBv98pJE$j1Qd{`spv(tQ`6P1% zB?OOemo@5d>6U?MFEE9PAO~A%V>st*gYrLmuc>LeXtmnA1{8uYv1XSNi0Vf?b&r)N z(I;i4OzO8$-BtJZq!*rR(W5&oZZv|r)o`h!yZeeLc2B#%>q~I%DgdK0DDE^+76Qli zO*kk>%~lFM%{VXI{pmC`%K=~9Q&u+&DM0%YDj=`!XqEHL6gwPXGD4JoYEk^pHOt-X zQ?4P@Eyh%KDKerzDKqasYUvzv7(bL(5vwiFj@W{vjnGyCWkz}RMnLRqEW9fsT(pjB z$5w4SY*A>!4B`^h_dcRXAp4UQr|LRS9vP{wn-!ak@Dj-((CFW zAs_;;Nl4m6`;X@}Z?Q@9Na&t)KWI=;vy!AKDFlwNW&rw$_Z8Bx+n?ZVxThBDs95x^ z!jrZ=D#1IVNWnhvD~NF`OA2k^qObr7Aees&C6q;M0I90YWg6 zQVbt#@t$h2GG_RHBQwLQSCg$W_s2MusV*oo-t?t#d09|cQ69v8mFL=-DZEo*3vDP- z0WKLS&&YN5>sKzH*!!+1v?VD=`~a~4@Fyeb`Bq3+Qi&UVA~@S4<=(Y&xY49z@on-% z#U>D_xG~!pYq{iTTvNNqmweTVRn8R6+TSWOn?j6si!Jf=Q9qr9eJVR2-6jl{Vdy zriu`qs~itzFYJds{a=)HfWXuUoxvd>M|q|byvQJ*lzz2;GiaelT>V99Y0we@QA$h_cX9NBYc(P= zNhjS?S{AM$Bn6>6x)Mpx(7~lH!+at|gq0~Wg$XAlj=g=VWu48GVLp-ANfC+Zieu8H zdQ-IU18Gq?`t|MaQ(B=;1#Se7;*qqD<^jMR`qoYGWaYryc1wy01|m$!z>Jc6b(+?9 z%e1vh8f{8Z{kB15g^%DXm#pY!ebej$qctrcmiaYD`LoK;s-l1Nqi{yI;KkWDebH zcuJye7g3dV^^-*mj_=!GJf?;q7@_o_ooNIMermfgTj8*G8g;8 zb3W#2hy*X`+M3oBW}EB}l4U4~uK z*aEGE?6*?(f=3>sIXED2eqySjY4VZ+eMSmKNIuc`t4c}}X3;2GE*?ye$AlXxdeiiz$gzC3}#9}^$*B(JXf!@jqD&H#{hwZtihnaDE(xo6iq^oR+A_NojA3kcvo2NgyZUzJ7iB8*~ffJk*$R6a9V!Hi9P4m!4 z!nEiHeNL?gW4d@WG`%5 z5d=if(wV%VfU-&s5~I-eC;OfbXepw`>Qhnf`_SF*`5Hh-RYP~aYBH~SQ}0X(cTk#( zengQ(D<+W12|egdH+466QxpK{`%_A>ieXsJMKrJP^QuTpc~|!o3WxR$M5R-A4wUGN zCf!SSXsY|@g;StRu}g4{N8XqTflX4N)b}W{Jn>B?di|;p;f|k51=A8ZqKa)YectrV z-`rF_W@Lf)rtj%ZA}p{~)33^!Rqs&wp5}pBjw#TrpLe}CaQ^@`KwS5atq(KY{prxQ zEN-Q{H3(nMjQi0++>&WcM>L6~6iK?4?)3>#>CG9Mp^}vkY6V^Rii>qA_Y?_`D%F*| zrvqq8;$*TWf9C7*GgcZxQZN$-I1!%oH)4P^Br6>166r}&W-<)H2j|G7=IwwXYD&1> zgCBZojwo*(WA&nelkfiKky(m^fAInb@1r5iEAV~H;@m>0qA~1fH!uXMZo5ZQ@fw3T|0ycxs@a+Wg zD*0AflX2jQKZz3S7e$W@DOYz$X+Ui&03|3Sc2P`^uRM0I0@hX*^QuC_fT}kq@T;kh z@9SO0y{We2tF~gzkBDhoQ|Bd(umSZYAOR!iAmWL?%mK-a z846c_YR_r#oz1M6S7`=*oYqL_PRRncDMYx0r1B4}6Vd``x}w@rr(sG^1ma`o<ud zwK4KMu&*#DAO#Z#=M_5%N?u6;MIdhU#^MiCG6a0b&Z%;NS90@cL^j+c7gayIN#2qU z0TMdGttbL-Q?T2!xR@HzB zPy#(!kCYQhEs}*VYoK&7i0eSK;}3?NZEd=YDGCHA9>!|Z2?Z+kZB$RBanqh^Wa*hn z(;#Q?dSF03qNmcV%kQBwpT#g1kbZ#R(J32>Nm7Uro}ZT$HjIF7gt~@c%oRY-Kxrpp zPTd{Pgfxp4sq(E?L`$S?3Dj)R>QZNuH~{fHo@+z)r{Uj*(yd(6?KJO)X&=0H(J4mt z9!}JNBjv?+f3xq}9yyGyQ{#4Rqgy^EEC zcMhD*P;Epx2R}N)vZG}yj{}2hTompye}yw$CX1x0O&8v<)s{c`tug`th$2rtM@q?Y zk{Lpsw=IYsw50t>lgww|+P3tKJ%ynTrREku+z_;Z0!~0uxE)MD$9bffrS?qiPSGaq z#+eI108gET0m+gv1HD*G+E{Ev7gV9^lY%k{2RIxKoSgAODc-(FDeq2jfw~O#$4{MwXujY9u;Nv_B_znlXc)=*)o(Gufv|`JDdr7T zQ>iK>w2_WeKhA|48jbQuNO@7@(&m ze~1HC+hJ;CCa>Ti`9_yn*$g`h6S>`%}_|A+ksxaZxQ$j+|CYxr*<= zOhDpe+KRsbr#7DB1E8mEAQ1`s14V_A55%72#aY}^+PcV*6 zUL(m zxJiIQKpTf*LX1aA$I7MC+Yc~+90e&QB?Tc$Py~8FCPB|UfJp|uBsU>;otM56_Zfz`Oyme=wn=y6;leZL4pY2iN|VgX^K6~2yA#!L`(XG=68`ItF37g2?P-YMC0C?6$AwmQctBvr?LJ=>CHMO{R=)}=nvX~S?e_q1}F2R zwMGfziWRa__i$(zM>1->iR(jo;(qk#TQYLyaVPIf%#L>tsj8}6aDO^!c|-V*-~FlT zE$FgdPZD$QO)mWY=BpQ$de78TRN*-z^rxvVWuG#7;*oGiC+upeTuvw#6}N%;)6`p* ze8KNXIoQY2srjedKIV{FCSfu2H1!tc?>0Y)KVwZUPhZxlmw*{S$6{y~yMDB_ABbHG zGIRRUD>KN?y;2YKAji&}myHRPItxU_W+}V<>J=}&H-BS_q=;;@zqucJcwR()qN(p4{{S;cI4AL% zO#+d4tVTqAMMvg*{{Skj=FjnhK4OQMdJ#sYZd(f-kJ_ET7zU{CJ<~rSN6b;;KGbRo zWxe?`KT%HH1yc*pN`Ccm(vw3{EbkFbC*@W5sB|;)p}j<(K@{jLuv82a{^r zHSO{Z#l54KuamoC?A>&!JaPuq&*jM?an9;`3yr+O-LhSxR6pS5DoF>3D^j!4B6?S? zKcVRkST5boH&(xC0FiF8;0Agpa*&>x%zf*ayU{Jw@)2R-`zt>zh50WbvZM@piEYUS zMmaU-W$F00@AM)sUL!}F>$YfP%1Cd^FbAc3!9M44f;xy1SS=w1`11Fwq%0;YsPRRk z2)$ZbyJ>D6z_qjmwt9j9o_Lw8BF)d95T&*fPXTB~@25X3R}AB;Xx|i^m5g~sCVfpV z0QMvM`OP_(Hi!vA2U3zsmG$T8$5^Xv11nDCGLR)pOJzqrIKak9toz3aDhVZKW)zX1 zsHGCC$d&NFH_c!rx2sql0C@9OrIl^k|VVZ%Ha+pxGN@4 zIs42%>X9wT(ITe+0Z+gwhZuOUv{^?2`3X}f;S4>x1p;|nKlJn|9 z3XrrVrwXLvJuo3qIT@t|aug+Y(Z}k{Jk|TCe%Z!JG7{s(;hxLu^ECoU+W`<$$v`99 zB>w;*S{jQs%D;;vZdpzO(YXOc*_?X@&OabBeX=`)X>2NdSK%NGJ@FV~g9Cd-xp7q*aHye=lz7r*F zxV^!m0F9yGH+085u>To02Ac`{VdIj}vJY{{R^1V$)KvdDwAnUD+_x2ub5=(xO1-Fc$>5sc zH7E4K&wR@%3vG_Jt`8~+Z&Xl1KPArRTP@4 z99(F|?=e67qMF*0SB##CGem80WVU2rl0`)t^^Ae!7 za1$whBz{286;gw0(Vj_PV}f-EPFw!~^`@#gq9!vw_0{THDi%@2Ji9)WMl#@Nz z&MPI|9_PwjxPi37f?P_tYHSCpO62klZfw5QZZ6U5W}g&nJH zN#+PRBj`+@rAW=K$YDxD3sOjupo7Qs#SEMImcv%2%}%s|wNQ`=m88TRfMdMJQBg47 z)D5jWfj+n?-N7P%_g?FxrC7@FamU zFbD&ZGd=3A%W92nC(ByPj)w|RLxcqG-H=F52nVFWe z)RdAW6$I_+5fUW80=)kK!fuAHLeQ`rK9ue|Qc2)U@?^#YAC-G=haS6kPidPQrkmK1 z3x$HTsPzCyn8+kxp2roZO$9f}N$_rIdM%}rN0fkenNRLpM&Do(k&4zzQ{FK+6;9Y) zB+J(*bZ`P#N+aKsR!WWxkGQX5DwQq@R7go2Qt64BU{)YTX(?FAKYUZNs0vh4O2qyn zkF7$r$9jmVJF=yGs_M+#sh2{hjo)aXwZJ};RYQpYfR|6!qjAv(((nC3l8+;E;GIuK zN)=2?rBjInL6IQ)8ms0Ez;phpZ05+nD!cuC#%1pbGw9P+hjzY;9ArL1yC$_)=NM3O#}RFwY! z`d#|0(D;l*EB>QZsh^0wOAbBG-M@eKsLQ5vA9GdI@?(Mz%+ox<(kj$U+{*=jDq&FP z(@-hV-89nR_NqvYth2a(kuyzFhqvcd_vexM(B1vb8jE7dbKKK>zz$;bj+BQ1-Iecc?Qriu-Vf!y?>92}ae74JZ-#0jE` z*tT39BkBb&GdTjOl^(}F)O^olMFz~aT=pMxP4f(N`_*qSd(z+TXrVS}?;kIb~ViJo`~AG5C#VMOip-o;Q7}RIOd{RCfc)kJ@PNKoEC*fTDpqE^qJ8$O@UaK2@3) zka#sJT~9{w?rAuVGvvNqoPL0siN*UE_o$NUqYbJ)f|{kMkuWM!E>f~h`J@-0YJjgC znj5=KT^ZUeZl)|D$nz2v21i);sKWk#YCDfXOheR0(*PJ4t}j}@de>78Ivd!f1F?ij zNHPH{Spei70gfZBbnd#1Jm)Bk?Rmu}=lm&C;Fj6pi$@e@&OjnbV51IOx7ot!{ zG^bQrSV(k<5~81I=4NN#^s26@#XgW6P%ys6XQPjCCF#C+Kq`H=t$%$H41QW~?Jc_8Bkn`#-lroYG z7EvWVU_cUn-#V7%wKnsKVJzNmAC0!j0CxkY9GcH;KI*~(S>2cfB{=&306f!Hl@l87 zB9gx`XnoYQNQBSp_O6S=Hm}?z#M-jsfP#k-+lxw7?xh6@=wm-B%CysN-eGPvWqRo! ziAiYeNa$uirCrlr7EYqyQd6i%^%lYl|!mCYv%;ny7Px@t+k|(*R+mv{`FwAyLSc4?X5OzPQ-ca>iH>cgrRD2DN39P5JylpkrFaUJ*PG89|dX@+X1vP zOnIJK5QM2Co(Igp`PSHQ?``=I?}|J+%R#uf1^ay?Rc!}u#G+R`$sUjHR?&ZvuT~EbsIt2LIjx^h)Cum5nTQLqU&B^x6-v+ zhE@qzoU|bT9)A*olaBbVkE=#JvM<&9{LV{SU9+35N*Hx*6$aE6qO^b@sY(O@CVevl z878^wq>FR#a0R$8v?omIN zUvW%XQ|Lkz&esMKWT>m!B;vK0vAQtLvPHwIlzD72rxs_V4t~6Jrd()OwvH(`%%aUh zqwgiMoOJ}x)1H+ankiQvW>5G{pqoSP|{5%d}SsofW|B5u+MCg$56fmiaNEf~pl-KUZJ zvznYZ8zCySV{!f!IHeMPK~r0HO4S)X`7E{6r_`+r5-ee3dn z{*G4jO7Po&Zty>hZAj!ah##ESKXsvaT`o$r&l_67{wqeDf%X;XPHAbM-QTv4oyE}k zejB>UytcTvQ1f*n(hu{`0o=kPe=5y ze=vWQQM$MA>QqBo?d)<(wlSZ7RQ^@me~2Z8kB9LdrMt6Qjo0Y52%_$_ctkHse10HvRtqf>m5E-~BmlJ4W!W+ERbT}h9XC<2 zx^Mi;yk#W)Cm)@4HrF2&$kHy%=g!cYU*E}ipZ=Pws9R}eMK@X(gdSPqUAWU%{{Z`v z2j@qH7OI0(-+q2g{{TlN{{V)yP+US&YPHA_@obSE!*Jw|-+7{RO-ZD~*2zMI2~yLv z=eRNLCPj3s(DZj3{r85o`&OcN>6a|tv_0fc^{V#TUxiy&mdA;;EjigRo9iVuQ|wd~ z6^yWJ&-4AHRlBd{e}BMqtpeePQm3r#*dT%&_{0)meE28zuU_!Slq|v<4WuS8g#`)3 z!5BH`12xU~XHK|6ci4EHI+7y+J30;wZZY<*#>JJi2zKGeR!p72IQGCCcjmhKTv|I{ zz$IPF;RK102e_vtB_j?2^36rN80MR}48Zr0E3~ypkhrM-0EiFJ{{S&f^9NPu{!nTq zI1T_!H*$Ia58j;$$ritJ_KJZ^gVut`n9tgyP(Lp9NX?H^vCwDQY67`Ai1|eozz}x! z%!-Oc%wn{S8A{mlp&TZdRzK186xBFC$`8J0^{7gxrCKw5b|>=(Wc|%M%t#zIK@pOp zBeC|X+lK;}T*ox(#j{0{?8Z?9`cC7|V?UAW!Otx(EKHR1{$o{(@gSrgK@&LpQZC9y zOiU#1$UTXVvFpLlFIp#SCoZc#p+7nW)pwt*Ra1&56F*8}S%J^kRcc1;v{ri0DZA63 zN`LCA<-sBeA0tgJ$MGtDK+~aYS=`*?r}~Wz$p&DLtyV7%rBnX^D52(ne-i%y=%RTPbXtDqs}}@xpZQHNEKC4C(MpQgyq6F8lSj-w6qEF-fqjxl_9B5^e**E` z3RG2>0@cr_>?oBVZ2Q$M;}W09(ke;L(f5iq9>ubyM+TPVPy1C};B+7LQcH=G$okPj zve%e;?V=p^5mmg=(L?g3yv`JeqK9Rz>FSa6q85(eed?%DoG5+i+tu99&XodXkl>6c zedz_~@ejRL-l@ur{OE61dk=9+igGP)GsyO%zm6)PS>UAo=Bixd4U1(pi&1c-{?>_eb z0P#&ll+1)Mv>*>}z)XF6)J{7p7n*#Sm#;adTP1p$teSP;5|)`!%KDI^B#**4F_Q*j zyqm-~x9(ot0KZGQDQaM(cAWDu!Rr~XSn(=u?bEi*T-`W90U}nTA_hnx3CWROQK~CY zP1DRS+$9oHt;$eJRC$!906peG={4u|R+giWGBdQ5S~qdF;qqKsU^dO5aD(ntF&#*g zU5L6SW{@8xR8H7)z#}r7Z+tuww>!c)YwXPARLt_ z%#(rb*0Ymt8`NUL&dOAzx|vuzP6o&wCozIEH0K^&8Dn)<@7)$1u-A1fWUYF&?e_G* zX_PpGDJjM`1cg963`bh#u5>+5O?Pe0i_8ZMLcj{(nThS1_G@Qv+F=e{CA+1RLPfJ- zDN+giB}yb7;t1=`1$noN8Mkut7O#TgD@vVHt0cx`n2o&PL5|$i@vUu?+uE$7rv(>S zZNwK`UeXDbB|z~c{X~4ldZn}Lb4+y>P7Nt(*pRoagCNFAl7&dy#%2lTym^M6ZSOQb zw56@Pl!SySQe**>k}?cWwR&HI9@Iy~N*up!O>av4Ev4a364$(bNUy-hNO#cASYDhv-(`_Lo#Vj=h5Fkhfd4Z3a z#dSV8F5O&i)O6(86sV;Ihl8%Df2fGS>GrNIrvBpj2p zm;yb`c!r+)*G@9d`?u19REE-$LS%mkzy~sG(tIvZEu2lY+rbb@g1}p;B4nvWAdw^) zB!K`9_0fWL!t6s$@Xp6c(}RtLTxvSC!+{{V=3giyj$tqW=bZfFwC=q&z&6TC5IrGl zm>=dK^V~`7PHH_h2?VJde6WxX&m~ifyIY=DzfyH)3a5k&4 z=Jy(f%C8&;PA*(FPRp+#xTMI;8B$U+5H`sflUNr?UE`@vrryn}Doa}tyvJWi^!4W* zdRJTGZ8G8a0?@5dU;vPdA{!jeRO0r5^sHN-4lhj7AG=1AdL3CC{QX0Fj-+BYHZU{9 znd)&|c`?e_7i*v6`#A>^<)}9*OZK*{Af>Iqe)N?vjhWaEe&)QUk^LQT9#kuM|z@<Ia)^%qe)FE3cU1ombQhPqkcmw>*+tRl8Qer3x%2 zCT0mF&Oj$7IL2xvTeQ;QyP&3s!DHl!brR_yi|=DVeMa`ARZRhEukD;tNIewMM*2?aCU zMRR@-(i*ze*>1^)*5Xzi^NDRCt-0JuLWwX$BtV|0k?L<~EflGDmwMIely=Im97!J} zwo*SMUWZ4GyKKWNNhR<1IL0(*EZjiUEUYb+F|o~mVfk$c1lFjv(2!EguG=Z)5JEr2 zZr@it1hqeC6!d=2JUlLZ)ae(2dyeDrL~oOlNm()WHQ#Br4Y6t)Wv?lq015L-L=Rz) z>s?dE{L=UN3m-4xzti}$15eTPWkEVk+nayUeUt6x5G#2acAkKMjUB|K=M53G`{qIW z)|weeKuDdj(t%+CJUTz+SqJ*m(mGUMnT2-E(;JPRisP^j(qGyqpfE`Q_W=9WCCe9T zKq~O=pxTsWUQ*PggVt5J0y`7$U9)U9+I=SFM0H!GNAs+Uog&%W^jv%yTd7?6s#=m$ z@6;=gYKca}R=G!?>l%I3grVCzPO3%1y+hbRl76E#NxLhRT_Lu0cF{QiGPeQyf(Ob# zuTj)=n|tI#!Q>bq7T2)-W1pQ9}2wO@$>@U3_wv;P2x2XCg?-acJv zR;X}fsf9MDMmdIxSA*PxS8bj0odG@}V5_4y#z7zQzMPMe&1tpak1+{D#=*q5!1!zl z&)_oz_ezr-is-ca7LdZ)eGEKQWTXPHM`OIG#yXf4l8pSzQB8LD`4n`kBnK06^}VVd z+y4L--30;<$f+PlV_gGdY()P6)jzF7#37JSmcSf&Km`3G9@wJR@PXziDPUxT#QcX( zy=@4nt_>2RVyVFdeJQF*B2zIP{{WRoB}g-#nf~~ut8z#nN_viBtQjguBbr6k3~fw( z>7gVhK>!??5Je=p3fq7>`iJSwA*3acL6;LhEK~|wfRvFxKj&6f6B3=X9cq)8DheaZ zb#eYw59d`LdlNo8kKCdp6;BXP^Wvg%TmB_yksMQluQ{ECvDs-P{zj|ZJ^+B*#GcKO zT1M`SITM6Z+LgJdrGm$hKTPQmCf+q;QoH zk)9*56I6}BhzVTBPv~fTLQh5hm8Pa!7u4d25LE^MB=PJ?{EuD^d5E}X2v|IK{#9ID zCP?)}K?F`a8hV@y7%oA83H*USq3glVGgLP0kf;$PsypNQQx>q9ATQ^ERhGCv#UtF} zndYPu>msg+vdMKb{6c-{7ZaaTf~%L2AMq#`Q#f=->qQ8dxd-tt>Ob0%cPG|N_W=I@ zDz02l{{S#^@0w{^f6fIkESE&`BmPnSX&1AFC+tV_s@u~%q|FWEC(}xcMX>6pk@r8+ zkDDi){{YNCn5to2M0TOL&H?+;K%Eyi&q4MEh*_QnGH`#DQwuR06-RzQ3Hq8;Qe~jO zm)z3d?tb9aa_Ni=eCfN)=093gQ*>MNd(YaJnkO;`%+*lmc#mOAe-Ka7XbUZeL5Nz1 zuvH&1ScR|Otkq92&JX54n4`S^0AL@|iXE1M`>kJULCoP_oK;=^oWS~#NI9O9^O`7D zi<{NZsQp2t7I{0qpc<#RbwvLF?f#UKw0q;+kJgnBV(3{T@Fe{p(hiZ!YCj`Y0>pkN zKO;mdf>eH}iYRH8{Lo@sTv7{c@)SO46-+5JA@9tJJHPzH`qHATxE6!KA5j!{K<6JS zr@TaOPaH)!D0JKRicJD%Qlu=8QkoI(H4>7M%F=t)l`zoZAd&Ai5}O0?wwmBmM|7b? zX)*XviSBAdDZqd9htN?8F^17cYL7AWr?4o{;HN+NpiKur{wGwUMJ%M5Q77`L15A(L zQ9mP7vJD@ZNky=Flk=vMl6@&ZS*-#9!W)m6r*3f|L#a>x(N(!G5t#?E`%)9w{i{f+ z(mxm^{VKbmc`7LS9Mvp@ymVBY@lFcwG(aU^gK_E2NLYD83@ScVZb*d|G%JdECv3rw zmMRk3(0xfMKJY3;?b;<`djT{7&v=r~>h(ztEh%9$yK{j9FbNUKi2{4q39MLnb&!-^ zUfh*_5}SB*P6;Yh1e3-y2E9h^(Tk*j`$5$9R!7_GP&KC6+e)piEt*_oV@XN*NEOeQ z4(`Zyzv<%olUhSMdJdm!a;2$e9euK&PCK2a>ra3sJ0=edenYubgwKSFNk~pQ^ZxkWA{uJ} z1@iJAO2jF&--K}XL2|k3SDF!n#VxOsKnkwy` zeOj8E@=*k#NoEp3f$AWTeqeO#o~S0{{*{$!`oU(CL=BoN5}wuxT@{=PWdG*ziFU(>k><=Tct6XAtnHUg!3IHA}j4d z{{Ro%T3aUHPqw!!NmcEQid$`c_Nl}YNa{c*v7A=0T5`(U%lrP1T+%LExNS*p;fsPG ze&tR$ep{fA&a_swwgOy0O1;d-^Q<2X>w{F&OUW+Wr3%;~YlRN+fgJbZwi~=~11%+> zNg*Mik_Swg&3af~%hb;;CEUuo@UEGEdGU8|Jf-yreQ5;y!JI(AAXa|4qubb9p{oYl zODYiJe~rk@1+UB_J;93TR^U^H58TN=l{WFB+al-8^dJ=|Ad+G`43o!m@}n*Yq}i4^ z-w5-v9JjN43v0I6Ley5ZJmQnIi8xD0PcmjtwQ-uCh@JGcXuHE~O0dI)uDmF16Zg$} zmy0!1rfChK4!+u+Nl++EsYIB`DIq2x$0LgJ2ku6s{lcyFw#@o9;`faGFz*EIap7R7Bc;}>5fpdLmpDy*4J!%XeF|`qqg9a-@ zO|`sr@pjIG4ry*HZ~*cWOh6!m^%W4t<;bNf z_w5*Zb&ru|U$FRnLebPimX04<1kMyPk_ZPsn3|_>P`$$0;C)7IZcq~Ie&I>Nzh7#V z=pgVvPqki`$G`9QCBHv^ zpKs6eC@@`c?QE@NV5PMO4nfA#pVp+bu}0+XxJnkImKK8A@_0_*0giFo z!vnqLv2_F7IME8{sjYh})dU1Hs3Fwgd1C3SfPP4LB}3#CYVq`{>QCR?Os4DM{{TN0 zZFpzG*6*w-_wJUE0?(rZ*;1h+=A6$Wy*al7ZJ_}mB_IeGz`%iCUuSixS==RP_%;zB z!b{v-FQig=zE2mM3}VSUt|8Y8(;{#DPbI`>JJR?Uy*rNwx2h{hqbV*#f>aE$;vmPWKH?`81>1YzizL24^zU#a ze6#&3+C=csKQ;4BT47m25u+ebwQaM7C2y06>=OqukNZ)z(=4pe z>1Nf2*6bG)*cpQ{o&h~DGsM$fytQe~tGTx>f0Q^0PtZv}YEIrWu}TGM1N|gV)QXiG z`IP=1<)plX02@e193>zCKAZ{(ROfLMjFFF>WLxSETs~0K4Iv{cDsZVle1Q@9)`Nr= zlu{RtsTn^iy7DDT`6Rfx@&F+&J3J+z3I70UUVO8-q@xmNk@NSeExe?NZr14LcPM~= z`i#?^w)4~!f)_dBMuacX4ThMy?;}y4uw`EA@@q9nED`wN0q5%i88)93$EOq)R?bo!97G54NG|w!MM#{4lM0nbRw5;bX&jpVROSFx}NwpjQ3Q891mR367OKP z_z!fnMjCo))H?ZxSoLMNp9TVX@Vqs#)DZL4fbIVX`D`TVEkb51!BP09ZTM-P&$T8} zxouVs(#EjRm;|}tVVOmMY@|>Fbzv?N9(r+EXwym;eXi9eyfL{vSA(Fl^@=dZG1g%? z-)5XyCo%(md|3Js8y&My`^_Z3&RAYICBhiC$BbV|=U|(rkfd!h-n9G!e*RKb; z0EHMuohnSKGQ{~77yS_3l4~3~JIVRmQI00?CAWaiK35jCnY&wm+rehZY>iAWJN(=P6Qeo`711*eVAF$MyTh6dF828cm=Zl(Uy%@3{*cqKzp&yL z83&Cugie)=*HHwPd-ZGi78s=gb?@^kP_=h^vEbQAncHqyx1F1=Bf&HuykAIU2L??x zts|9w6t0t+JHpU=BMRz&f{n#6X}ia_a@WiTKsPClOFDW2u|Dts5j`hZ&165Xi_Uc1 zip<3A3t2a$I!Sk&j=jA&kxqz?#alJizU^3;D2Pq1k}B*m9CtP6;mE>+S2$KkRYw;e zcF6o1dcX)z*b`4sqC+}CgxE#G1E$_KTt9seoZ-zDZxKC)x^;Dz{T)z9ED1SxM zws26`Siid4{PsZ8E+P5rsIdsm3}6JDN-(h6b974m&c<4CcI9E`RcDb(M(|E@dzJ|2 zVf%2d!=s@(EHy$YUYlSnl{`8cn1ATC#pwJ_n%IBv_{zAzp(r(Hzp<{l<9KR<{5|sM zpPT{R*hHHDcs^ILY;^ts<4$%Y?>yoAK+);-vx0=-UHj?dN9{Jx2z0QwO1mzuTRG{b zH?|z0Ilo^q=p1LvK|2UdK9TL9!uwz2&b+UJB(sP+4#Pq1Vlh`1zH2uq4ug0J`33_M zQ)e_io5PIHfD|+{q!$4Tn4e6Pxl$~Y^vKv?;qE)X=a1T<0TG?iRt;i;-1ReR(_}aE zsJEZDvrWGsLX-d0{(O@c4sVjc_KU=qojAF-pWv?9x<2#HIpFW;?~NO$dS{!0={6jz zDazMb_vNL6FT9DVom>UmRh_nPmp#=JZ`W}|U`%}Q*^kuQYtn?48{*zPAJdFM!jWof zWf{4CU;FsFPF^eMjyd?WD6!?_f5J1ob7s$2fydLNZ`9`>XHr#EiyGEX+7pEvPD^S_4S}4@8h>D$-(DUg)_%EARN}^h z7|9tf-~XZD-kSMX%g?9@C|8`Jwl}OEryXaXUotsQgax^IXIZHo;nsOxIMs3WrMQjV zAOFq|ob2mwOLpse9<1kExtZck7G+l<+^1k$# zW4p~uz1C*@V(0sG*6|Mr+sY>G?B}vmQ;+(+LuLCk_$%j+T$jK;t*A%#Gh|E8To4d8 ze=o~csHP?>ooJwLKcceDeXD- zb~JhDjG5vFBuOmBscn>KTiP?x0|Dw~q z{zT6g(q5jPH$4&1zA7t0*%yX0SGxN(%@t>ACOJ(dFgStB#qBk;Ym*@JQGM-v~ik<;-k1um42z`XvY!gPZmj%w6Z zi`F1&#lDBm8v=$l!EC0MpS6NsU2{PLoy?=mY!elCxv8T;AKI1WQz9dWt_SL7w2)rq z2YmAPZwnA<t9P*6zELrr6Kabqb=Lzclt%sJW^v_ZEC=|2I{##%A?8)0sL)WaP z{xt=ojcb)Z`5FHHKA#<5rd$G=oFrO(O>o9EPn{O=Rn+^XDnbF}j;WTTAV z?){Qq>Z_kQJta5u^|YbX)dAis_i7S(pI1FLoc3vLBMf$>^GPJ1KAK>wU91=>EPU+q zZIL1TM3Pqf(2Y+Kiy+S9glWaVJiGZ_fwl;Bzg5e+qjAD2=U4n#Zf17pOA;RxYYTop zu^4-53n0Q7+q(8j-X_TTxL5!!kD3b~cF40jrFav>?zQBur+MAYm9o8RQd(ka)*?od zfT9UGJ+<8T6uqeV=Pv%acBT255D^{uL%4zK>9*eRv795uAdud%iH|jPKSgh@Z~j(| zAT4#ho_x}EoyJZmaf&ys>2q2T2FZhX3Jlf?!sgJSLo-vIwD@p_@~>aPa?m$cprNR5 z`t4(D$Fyz+fQ2!`;#S<8Tqd$7*?B|~9C?`Ifxm7)G`-cz!LR)8V^p6AbQyFay?%bK zVLr>P;o7q~lz>3%%42DZ+9nq#g;5!Y^1NtguOH$`*)QKQrENJM`_&oUj&&R)YWeHY z^RHd?D+=IsoesiSeK#%6*s~P%Q6`4u z(dT|`DVn5cdXvUf1p020r8i*NiH(n zz6ObEd*f>!ru{zG(HHkz-b_!Zzuy1wY+&V0xuNFWxS(tA-yB4nAG9a|dwv^-4ClRo zty8%C_fmE;TjSJ=50-^4eUCe+K};!|CZ{G@-Zz$^U788Ew6QP!lt1)1G{ovt6pdd2 z8i%HOJm#G~y-^g!S^RaGP`%_KS5*15_#~Zw3Bew_7}t#{x>)+`Z9~qrf1viwzh&QU zu1_So|LMCO&mY@Btj&a&XNEgO7I#*!X*`e!f#wZ1E^z$h02onzH@T`TMQfP$3jFsfyr`3EN!pKf)}*Xydr zu@?6$?>*$qg+E|?-b*)RVRRe-Na%UG@@4xb>YB3HI?taFL5mn!fVkKS^tTD87PxT% zD)5Ze_>5D~wBVihwlx|rLvwL?jNxwloHQWIbFg|v`TGTJzsF_)dG+=%Or=4xqGA30 z8^t&OfoL|JlV0&#vBip%$cR3LE=z~}1KT@nE;#^=!5+px)o1`4@}>9mYL0D#{_&ov zgQTEqK6ggOzd^(O>HKTLN2#}WEzXAaEqV`%o=JYv z^`_=KyWWkjtj7Mw=a)DR8}B&lYz^HbT_7&p1npv7Nf#{6^(!sAuz&}QFD%DH4ghLn zV2MW~BaqcCWVFPP3`zLIl%FhgAf9x6q~FY=6JU8Tf>!qa2Vzh7?d~Y|t5a2GYxF3o z`c-wCfz?kK)5>?KrrQ4}zVbns9QT8IMyXD*VziKTguH~^;bbLN>kJq4QcBEm>tOk6 z^=g2y;LP=;hpd_lHcPxpYbZ!P`N8k4o#>^f`GF#`cVsGY_VICGkl}KjmXho#nP7`Y z{6ulLBJae<`padQVa#v?j~q{)iB!4)BJGv%O<}|Ogg9;9J#mf8KZWR&ubPlz-Q&-p z%TXNvFDEA;h`;b(1r8#zf zLE*G>&~cvXgLgG?yCIoBU%oT|`!QnPLn2;qF2@Jn?kjX;NGnl-?5bIH-+fEbi?Uyv z?XA-}-xbMI!CYH!=8bT0KSJMX|I_PnVD({f&yK9!OVyQ*tmLH^TUHH`pKq(4_)TM6 zP}nU=c@Cr!U%L&?6l6W9F7HeD<@5Hj*xR=dqgb z=RJ~%KfhCk;ke^zevV9|vwU(7)t7@0^HBm<7G0+c&QbF%M6`4N>wY#N#H}<$0v#s; z!%RwV2|-xB%y3IfDR(x8&&m4vy#0<`rMiUI*G|$l=cv0_0hKC4SePv(vkBJy(r_;v zuI{Mo$f_Jys9m`B*(xW3R3sQJ1<9q$jv=p!(K|$c(Z>s7^tZ|B zy7VtH+YXp8-swW62MnkKxo#N4jDsXh61k8@ywG2Ma>8e=WcE`GC9Ix9tGDCYBCpc5 zb@PJ$5@#be;#TNdC%K>kUig4c!hnQ-w~o@TJzn8m*YUjXRiZL}ogcT}a?IV`chW<5 zDoYf-iiRFiCn^vzf}EE366`g;xl5HyImICIw>W+^`Bz_O^*Z=l9Aj-AI(i~3=J4{1 zYVN;u<>=LZ4MFGz1*K&@tTVtJ5KprVl6g;w`kR`-uTK>WZaeA_i$^Q&Lnd=om{UpJ z;9S3inMw&q@2WkZ6R1D_W zxwLr?b>y8Z&ZQhWqAVkys~HgNSWV%_oz@4Y)zx1F3Vd~GCui4QecxrpovTX3?+N9z zTC(sr9_T#8sBH{Z#5CtfLKl9piRzXV81-+p=+CXV?~;?AX*BJThDW!fJ-Ym-o&<`V zfSL7b7lftWL6>ofyt+tu# z`uB`0$d=87oHjU?e+uDwwFYBDa9MYxJjs80xnJJ$z8Q+@hQzmfE04?HF9>pI30afy zzJa1W0Lk<)%>~-DJ^X}@KC&DNo6Hzq>vMkfD84{W%QmLAHC6Xk*l;6ws6g|06_2q^7kcDp z9ru3E4S$Ao!%jNg$-5+M2jXw|=r|$6b_#8x!wGFDoKD*PZ%o;|`CgtlM!1}lV{8i= zo7AAB52egs5dcMM%e*ft@MWsLS@u&Vba=C~8?W*lA%~vZ!yFG@;^L8imv=Sq+S$r? zY2cq@psOo30-7VqG?e8NyU7%i##H{32drBXuE7&x>ycMZQ{by_VMn5#r#Cx&jI=)5 ze$D#Vd$XL%)qQEcn_0-0eTvKLHqy4dMnU$OF}xJ5T2Ipcyhp3_kn-wPZl+L zp5mPDrrM*TV*LB+-bC3?beP?ih0enscg<&-fLqUP&i)754b`^v7*Sexth#9;XP;wd zX45rsbhtY0iqsWq!k$yi&S6Yq3eEEfFR!c&vvbV5?jvid;5abs57B);r$H0;ZYFU4 z@Ps*>T}f=u^tTv2uSe(&y@{Jo^ysuU&Hjl+ zkxoch{#H7A>ww`(NNUIO_sTz7>a;ISjTI3*v%>IkfSWPCt_i}(uFnHa^}~w#qk@jJbBnMuYfp@eU4%9 zU9<1NYyM8A2CtkyOng|?HZE<J;12^ zAjAB2PqurM_d)6E)xzci=bL{8Y)3EnFZYxNJnH+lX!kM5X*%@L=qkb9;28LqQFhmf z<92`zcEmNC?nar!4Hh0oR=6}lUGQAyF=wZoq@g{cF z0G>=H;vvlY)6Dzyf&iShnr-O%Pc=umQ zzTj7@Ej@n0E=o9>Y*za@f*qP*H7(TBr(w%WJ5qf7di&Svd0Fz2FGfqE&bh_BByG`W zgv+hJsUB$c)&#uh?|NW_{xV*r^knXHMon5l$~(e2IerrcXoK`TLBL50dLEu#oVgAOQRj8D;+eeNqF$EGn}Wi)X}PLYC;Ivh)Uwp;@% zQw>fLXoi&Xn;dD{Fi}^v<0-VmU$N+K&x&Q0bM8dO?CkpBr%(Hs)T2MN+E?mXl3f32)Uc z2W-z$P)9Gn^RT+j#w5Nzi{f^)>(=3K0EwV$7mO6$`C-RkZ{Cxn0)b(z?&R^1 z#|hQlS_9BTE16>K@$Se{RL{`aSR&*JGm33p)Lk-ocX-T%vV|=?!TKmG`0!_)vbqBF>R3B&`h5iHSj$iBlDEyX9O@91fEy=d^UiYBO zd0GtE4NB^|MxWI-tsE_(9Qx!@|AE>>R=#@lW;Uh(edNAHEhen6+)C@9pI7MZ9g}rq z8Gn`29skz(6%(Dg`uf}l4hF{SpIAKlo%^F*_+!r1J#gRF=*F|$@8h8^`&#?JSD5xo zpSm*q`H9aL$&#YxYP*-cM6J-f$`uAG{7XwByUzM=vR(PUYaR!^fjf&HjT+Bv2%bD_ zne#}vKQusyxM{s^5_@rYp;|H`dFlXYb>E7TN=kbt13Ax%G<1=5Y!683y3$ihva}d> zvKz)mx`{7T5&8aPOiYPL2cx`m+payFH-D6F2=({d8SOjx>CXD*Q~d{czSAgUWpdZ< zwb5bDleIhW3-xWB2j8a;i!Hvs>U4$F+;D*CfK3-~y*SYl_YZUuUbo->;k3vItj+pj zxrT@9+X*q+KTv|=it+1(0z)68O7|$;aOm3R#dj9=Yt0VOiv8*zpBUlul~5|pS^AQG zF06XVC3j6+A{E;yT4i=cY1biq;*Ms)!lZDyC80E8Kj^$|d+qHM_nK`RY`EvkY-Q)Y zIPQvSdcV@oYrs&JB7H1`i|5Z(LG7(ZBSdjmv*<~)4_3eV1=d^;7O5gDVc(jj!N-mw z`|L_uURcDk+#>KT-(UC?#MFkq|C3VROh%Ov-t1OE7ryr0*`M**i&33|NiSWj(HPRZ z`70|$z5P)H&`$qKiXBq9BI!kvXTCNxF?>Xr9~@hoOf^$+pfs_qL^@#B&5UD0d)tSXxIXolc`LG0(XR%gEzOr@y`EGa-ca zlO7Q=6vl;bdiOPH{^p0I)GncS*{_}QHN8aJe198qzvvmz9VLp@?C^%844qf6l>{(@ zf;)`{$Yt)`0q>_WV^(x#liuz*nTc19f{QvFjK<0Lnu%|4W(CJAv^9z-XEa_sx%slw zKeldgiK4#fZ}67(b+V|kaq@0UT(J*4_A+&NQrSajXu$}zD=sUWztj}C0|~eM!n+54 z&nqPcw@x}`{-)c&yy1dH&UUC`m6HIpy3&XH_9|BJr;?5l!Zr65s)w3P>F)pQnN!G{ z#<#^Du{`f|xf)OKbai*CvO^i4^XjIncz4L3Mn64jYtMvclN6mqpM_uS{jg#a3JcYf zGL^KuLWRYK{J0k{l1vQ*#TyoRt$5}*pSZhtUYFsW(}I0Ae6Jxxj+bN@v?9Oe_~ZpM zA+Sn>yi!-NbS1?w`gREYUEZcRMJntBo9PD!agA z2bQEf=lFT~W~sw1QoWt>28^~db*|K*@H^IdHVQY5)#YiB?xkIDmky9L+RxplJFQN{ zV3gKu`c`3rEn5Xv4RFKn5o)N@DzU=$zj}>LpABMVfic=LSV>V^K{(uepR9UrZHEf@ zmPU%w!I;apTjE5-I=1l8kF%*;S=VJD{D!tou$`cvN^^| z2Z4xW^b#L{Td|JX8&sC2cICQWxY}m!5F3)1>*u73)_*5`MLoPtbr$&M*gy5VMd0{F z@qnL`2~?xFAQXSmNwieDzR<^ghv+wc5^wyDg% ztvGgNyw>ei(kvEZRgT>TiV@WptIu`7n->4uq4aE(-e*9x>pn*;2%1R8Z{pFLKnGij z0Prse(PP09W*{&3P+lL&{51Mjx_%RP4fV;E9chFzpxZv#GBHv>bURZudHc2 zuTry-!17@Gu6(GMnM_Lm5YXnnl5SYhjgp@NYJ+twDw(r&U{t}k)*2Ta zI(Xx)F*a$3^S$*C`mVjiL}<8;RycPJoBXb0+|QD{viAG!mYsziWco(!S|-A|M1aE& zlv|8>T^*5QPhOX&i5i<|s6FF!tg%t(>@k&CQD=wOw4q4?MPaFYgJ*rG^#$(sz2O zB`qZLv-t+oEAjDPo)%PpX{AHw>R8JvUWrwo0{8H%($e^;^(WB$>X&x32Fo(AX_K2) zTcl3ERZw>@=&3_b4G;@ypYyD}a?1Mc?rUYGclc$)Ei;Zk#Sk-aT18wOba8-&g*FX8 z3uVkcEsNUyAoB6fn@PrQ{{|M>`jKM?m@t;qCQrgo3l&vO_kBWK5J6bs)}8eCHDVRr z?GBpqcS*Fz@?{!lAGfFf2^k9Xy^NQnwfzItiy8V<&Afcesaeam=otER@)?Jxj2xD; zqb|9O6zg8tg!)|?_HadHtW0PF&5-WwF!KcVSZqF0x^Fc1Obvp1+1%g2gMs7n=4`#ikrFsQPriDZqf9BE21EOZ@~1o~`8^O^rGXaly+%LmRmG>nXY0 zgg5raZAxIvD7WWpI1IPFbs!{#;Wfyf7m;IxNmdDM2(ZDaqElX+$la+uE&nG@Hy##R zd(=DFm|iw5EZ}#eLh`Up2)+Wfzx7-fXK=l&11q5Bk&XIl$qVW226}4*uYz%ZVb}en zX?gR{`jPAJj9!X@ZoOeotUO<@%G-C*&(pq`C)DBdmmFW|R&;mFH&OaFy^kz>6)+2h zLVfc29XckRvWzIsB?NUA$@tw}R_;D?cBl5G6BfLQ)q6IGzd`Hty}#NA-9d&&kJ(%Q z0|iobp@^NjC*gGYzZWZE9Df)ex6P+|*`KQ8qoRlPh%SB^;W=Ac{M!()8%kN4o=2CN zudy=fwVBi#o`gvWK*Q@db||gkHKvw$E28YsW6H@I8+*k>dZEF}NqusbOq5$~af-0N zQlT|b6taI9!kar^`-X9*i2{M{(7(x@V zELCs7+0W#qjS{(*J=QKgHuE}}%x$)lQ(N+LvW`rEfuXZXBy=#b4B(N@LCK*w z#_rWh3FmXy$I1CgKkh|p3kPjiAsk`4&`bNk0GKH5QypHIZHLwwQ4@lep3jLU1oBXgUmOu||8nr&jFqcfYwplso6>qCEQ z3CrF3RD@u4RG?raFz;1@Qk@-_eB*k`qKuxWlIs^36!(>GV&FThia%2^4IMdc_aosK zy`hZ*+1sc9egnl%+x^6vDK!iF@}bSQkwMdAmvZVW<-6G_^Lk|2vFKjG&$Yca#fZXW zQtapa-1iiIU}#a9%sbJy^Pf88j2}7dDcMs&DzS)MgJw?%bCZAox;<8|cAJU;oICC; zzyhi%w1D^@<}|y(Y{2W1m~Mkx5S0oy33~#2Gbt(gok|zI^A;x~y6F z$sjFVi6L7xt`8zfZW(m_1)vAm4ijc@QhxzSMHxeAA+)3Gs8s4=f|WKmCTV;kCwjz_ zp%W-w)KiB~BB>jsSpPHybD+pSO&q+3%l7LF3 zWk_N*&0mcflTfCSfGWWaw|a;V^oFNl_lI|PXvm({QB1EG#Kx+6ht}aB(R=1B;r^;! zM|cguHM)saT`_=bisvGBC|%Q|T1smedsGh4(yltgpqVBZFo3wagQSMjGmszk2gMAm zC6Zaj`Li_(&2ZqCGzDDU{G?vzU+k70FIca!^vjI%b1RA(@ft5MIg&v3u3AneJ3-K0 z-BO>@=~U)6&H#-WMA8S(*@V`0Fz-=*wX`ZYFaZYDd{m0C_b`w-bd5zo8airVA%(p# zgF*FMgt?u1T^S*?UP3;W#l^lPTW@3EVe@sr_v{eH_a>}VF~Qzs5RUAr!(cgT(FQ9w zvK*qbRbMuXA)qWhCQHE2=Zm=zDutgV3Tda0D$N!RL-c~`I?E@rfS+fPWC8w)6uzDW zyvlIB70qxfG2#gKghS;e*B25`V_syZMueHHwy0Oaj1 zVd~?^Whz>!TP0jnQhKXywvv>gHk+PPPnpkI$;gw!I<;$e|%^qys(EE0#~ zH=_YO1yKIN$)x~LR?k${7Khwku< zu@KTbq$Wfwh$eSiF0G+k7Ltyv&#ljg*O-z42BjkAbX5_E<^ebDBuk|5F?FaAU9aYo z^uyNVothA%&@<rj)=I z8CO*___9svWgDAWk7d+Z&ZX&#Pr!7H%Kx1Cc;G9v=)yliHR!wBS~s;wF(Ki89- zqFe8-pZttJv512tbw=S|)W2P~4qQi((w@Ke_5V(+NORRoVY7)H9cE58`Yg=m%)`K5 z6c4&-=kRQ!p(j-`*{W6)GPs<&%AWr6CB0S>O@C{LuDRSYsA2xXn3+LW%&OY@uA%hN zfZ;F7S+zyo2Lz!+!E+(f&r{Bh7x)yBeQ!n)z}%AwxD}-LAlTuRw)B>_!!6tlP`F8_ z>CiKa{sWCl)4l;3Vytz`pxRyr3}4q7J!sBb*O{tnxq$>Sqrows;uL|S23Xa&z^?Y{kN|4Uibu$Sg4dZx*qFB4uddW{DNMv~#fgt3b7DMnj0U-76+u7@$*Q zGo~&@{7(nmhoPiP&fTi7fxyR3#G-WS47XfxfB&w$FdlmE|?mYN;oPwF-;VNDh>Ic;H} zO=Rjukz&#CsVGJiu$&3f4nA^Hu4GkMp2oWzUsK$xI?5zl)i_S(;aG}A{M$l`$yN24 zQo{4e3!*|~!sSe9>YU$2*GvG8zXz;{mtw%EsLgYMxZoDHsqm*)RCjB8%6>|31>#dCoJ5weM#^beNMpxw_P=MM?>Ki%OYk~>UCDtLm(zpyPp5%clK_Sf(z|3 zM5hETj9te#<<-bO2?>A&Z-JbkMW%3&8+RoU{CWqhk!#&zuoskBirq@ zMyBB(>0vB$*r)+g5s3BRLDdmFfPgxIOAMEZLRpkQA>$62FnYf;vjmVsxvDOU{*D-*e_P}5XdJ;JBiDzrwhzEYTA1eI7K)fTwk_g8c*3D zR9&uHPCrrGlebbxJ_!VPf?Ft!_HxP%2k;8xJ{&%xJp!Ezg-?4WXCKORi*kw4Hwp zoFWTB@lb8Cy!9L@@EU_}Z)um{8!)>zNy1+^Xi~e*totm#67oJ48Bc{6Nx^wmunE=> zkasW!#cmme|A_ZA$^T2%CSS*sj0I7uJr(VcM+?ntR(kY43gltdFsJm@D7{`3zMS=!E({ZyjHi4#UnfVY@d4!c zw6#%nIfsRLNx-;3o;S)Pzr!Nb&063OB?)BqG@nZRCP|_X(2Z~~0RblyfZ=>qL~f|m z=tL%12GEh%R=|Vsmp8<$+{OWtg05ieQ^fVUh9QPo4sO}1uQS04Q#8LLB8co6PrSR zL~i7ob&MFK&zmrVD<%{I7TZM^bs!LZfII_xxYa%uWR--Bh){cSY(?;R=s^r~B< zK`RiO^bz^USr}Fff>y)$>8xXbTb#3uq(5$m#zBl?RJR6D(pxU{*afo~O%xoGn9dIy zY7?X~^PPNoX(HB3SSXWi3MB`x$UeDg{7v0T+=B01x|06Ef#}hv||y8#1{_N zRnbAlqv2qC6{ zX`%2s&sB^lBs>8(JgAyPh?&pF(dBY{?~M!0Y+@?R?WH)eC+iDMi7xa&EbG z#=FPDX-87`+`jRfNv)vx#MWX4ZTeKM4o3qVgGX>OmM?DSTrtxP$Q8%aj@HoVDkwOFlLqcVp8s z6wn6$`P47CLM+)$fbhbRmu`X#$KU%e<~RgnkuKj#L)jbsP}+)l1aUNtoClV*r??D^ zB-xQ5IG2w|<2ocGUCMWm9R?Xz+fT;L!Yh2g)2_q$XRrv;sZK*j$;`xaOIiaOXY#H4 zYRlcsGY6cbE_gC-RdXLN)gJHdZ{&wM? z-*jHi63-2)1*cQgozj@S=aPHb%#(jZriaPuwmpdgQDI+fNTvW@tFcETS1*6J>=g_~ zIgAcUrA_Baj*!zr?Aw8KBZ$($oI#F~RbXMO64~r9u#>KNp+z0}9PuMP6cMm$Z;bOD zR1e44Z(`nk`UG(X49ayb%gne%D2Er?LNd%-t-YFHT!(noT!lY`lD#abpm2 zG_lDv<&3kdCZEvN0m?GqL(h{m`S6B&Zr!VZ&uUXBufual`KACDI$vb3wLfySF2P;~ zQ}Ki_3#0)Id+@g#fE(Q#DW|s&&lztk)ZvN;WtYUnANVd8Ihee=aHAV|ea?8k!hk`@ zpD3rBkH*(y1zW~=DX&vkMX>+JUv(Ogkt3O4DQJ-SneKCdbJq)`srR0>PrjT9hTtII zaY&HKptg7p5fHBx774(-pQse>H7l7YNVYO)@N|)p>p8jj;~0kon$B`OPn`|ftqTV+ zELIN{0^owyfbMfm;GMCwM)>!Z+5HD)cz@dl90A3A%Fe$)G1P~w9 zZdNRdXCfJH$`1OEvC7CtqmS@!15-t%w;mF%H*n%j9-IP^1Fw@y!_8Eev1qcUIo1-$1S(x$|(PzF4uQ5Xrc1z}pUX1EA2O5zj^i7Cf?QToSBZ z+mo+U2HQ=n)$__XlLByU#>T>^YjrTSyhIF^vZ0gdo$++rYBGR8W3gb9=CMm*{bs{_|v8i^{rG)&40 zs8hqdF`+@I1OTsr1ii@T>pJj9A>8tp1_k+~=5x!)FdYdn?MUUa5>0hJ;U>=}2DSkp rWXX8B+)~S!Gw0$LZ=12'} + pnpm@10.28.2: + resolution: {integrity: sha512-QYcvA3rSL3NI47Heu69+hnz9RI8nJtnPdMCPGVB8MdLI56EVJbmD/rwt9kC1Q43uYCPrsfhO1DzC1lTSvDJiZA==} + engines: {node: '>=18.12'} + hasBin: true + postcss-selector-parser@6.0.10: resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} engines: {node: '>=4'} @@ -3747,6 +3755,8 @@ snapshots: picomatch@4.0.3: {} + pnpm@10.28.2: {} + postcss-selector-parser@6.0.10: dependencies: cssesc: 3.0.0 diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 4496f90..2e674b3 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -11,13 +11,13 @@ import { Loader2 } from "lucide-react"; const Login = lazy(() => import("@/features/auth/pages/Login")); const Products = lazy(() => import("@/features/products/pages/Products")); const ProductDetail = lazy(() => import("@/features/products/pages/ProductDetail")); +const ComparisonTagDetail = lazy(() => import("@/features/products/pages/ComparisonTagDetail")); const Bounties = lazy(() => import("@/features/bounties/pages/Bounties")); const BountyDetail = lazy(() => import("@/features/bounties/pages/BountyDetail")); const Dashboard = lazy(() => import("@/features/dashboard/pages/Dashboard")); const Favorites = lazy(() => import("@/features/favorites/pages/Favorites")); const ProductComparison = lazy(() => import("@/features/products/pages/ProductComparison")); const Admin = lazy(() => import("@/features/admin/pages/Admin")); -const Search = lazy(() => import("@/features/search/pages/Search")); const Settings = lazy(() => import("@/features/settings/pages/Settings")); const NotFound = lazy(() => import("@/features/common/pages/NotFound")); @@ -37,12 +37,12 @@ function Router() { + - diff --git a/frontend/src/components/MobileNav.tsx b/frontend/src/components/MobileNav.tsx index 55b76a8..4e5c65a 100644 --- a/frontend/src/components/MobileNav.tsx +++ b/frontend/src/components/MobileNav.tsx @@ -3,7 +3,7 @@ import { Link, useLocation } from "wouter"; import { Button } from "@/components/ui/button"; import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from "@/components/ui/sheet"; import { useAuth } from "@/hooks/useAuth"; -import { Sparkles, Menu, X, ShoppingBag, Trophy, Search, User, Heart, LogOut } from "lucide-react"; +import { Sparkles, Menu, X, ShoppingBag, Trophy, User, Heart, LogOut } from "lucide-react"; import { useUnreadNotificationCount } from "@/hooks/useApi"; export function MobileNav() { @@ -16,7 +16,6 @@ export function MobileNav() { const navItems = [ { href: "/products", label: "商品导航", icon: ShoppingBag }, { href: "/bounties", label: "悬赏大厅", icon: Trophy }, - { href: "/search", label: "全文搜索", icon: Search }, ]; const handleLogout = async () => { diff --git a/frontend/src/components/Navbar.tsx b/frontend/src/components/Navbar.tsx index 88582b0..0aef7a9 100644 --- a/frontend/src/components/Navbar.tsx +++ b/frontend/src/components/Navbar.tsx @@ -34,9 +34,6 @@ export function Navbar({ children, showLinks = true }: NavbarProps) { 悬赏大厅 - - 全文搜索 - {isAuthenticated && ( 个人中心 diff --git a/frontend/src/features/admin/pages/Admin.tsx b/frontend/src/features/admin/pages/Admin.tsx index 482b5ee..19be351 100644 --- a/frontend/src/features/admin/pages/Admin.tsx +++ b/frontend/src/features/admin/pages/Admin.tsx @@ -1,12 +1,12 @@ import { useAuth } from "@/hooks/useAuth"; -import { useAdminUsers, useUpdateAdminUser, useAdminBounties, useAdminPayments, useAdminDisputes, useResolveDispute, useAdminPendingProducts, useReviewProduct, useUpdateAdminProductImages } from "@/hooks/useApi"; +import { useAdminUsers, useUpdateAdminUser, useAdminBounties, useAdminPayments, useAdminDisputes, useResolveDispute, useAdminPendingProducts, useReviewProduct, useUpdateAdminProductImages, useAdminComparisonTags, useCreateAdminComparisonTag, useUpdateAdminComparisonTag, useDeleteAdminComparisonTag, useAdminComparisonTagItems, useAddAdminComparisonTagItems, useUpdateAdminComparisonTagItem, useDeleteAdminComparisonTagItem, useAdminSimpleProducts, useBackfillPriceHistory, useBackfillTagPriceHistory, useRecordPriceHistory, useRecordTagPriceHistory } from "@/hooks/useApi"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { Badge } from "@/components/ui/badge"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Navbar } from "@/components/Navbar"; -import { Loader2, Package, Users, Trophy, CreditCard, AlertTriangle, Star, Trash2, Image as ImageIcon } from "lucide-react"; +import { Loader2, Package, Users, Trophy, CreditCard, AlertTriangle, Star, Trash2, Image as ImageIcon, Tags } from "lucide-react"; import { useLocation } from "wouter"; import { useEffect, useState, useRef } from "react"; import { toast } from "sonner"; @@ -14,9 +14,10 @@ import { getErrorCopy } from "@/lib/i18n/errorMessages"; import { formatDistanceToNow } from "date-fns"; import { zhCN } from "date-fns/locale"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog"; +import { Switch } from "@/components/ui/switch"; import { Label } from "@/components/ui/label"; import { Input } from "@/components/ui/input"; -import { productApi, type AdminProduct } from "@/lib/api"; +import { productApi, type AdminProduct, type AdminComparisonTag } from "@/lib/api"; import SortableGrid, { HeroDropzone } from "@/components/SortableGrid"; import FileThumbnail from "@/components/FileThumbnail"; import { createImageFileItems, processImageFile, type ImageFileItem } from "@/lib/image"; @@ -45,6 +46,23 @@ const createId = () => { const createImageUrlItems = (urls: string[]) => urls.map((url) => ({ id: createId(), url })); +const slugify = (value: string) => { + const base = value + .trim() + .toLowerCase() + .replace(/\s+/g, "-") + .replace(/[^a-z0-9-]/g, ""); + return base || `tag-${Date.now()}`; +}; + +const parseProductIdsFromText = (text: string) => { + return text + .replace(/\r\n/g, "\n") + .split(/[\n,;]+/) + .map((v) => Number(v.trim())) + .filter((v) => !Number.isNaN(v) && v > 0); +}; + export default function Admin() { const { user, isAuthenticated, loading } = useAuth(); const [, navigate] = useLocation(); @@ -63,6 +81,26 @@ export default function Admin() { const MAX_IMAGES = 6; const urlHeroId = "admin-image-url-hero"; const uploadHeroId = "admin-image-upload-hero"; + const [tagDialogOpen, setTagDialogOpen] = useState(false); + const [editingTag, setEditingTag] = useState(null); + const [tagForm, setTagForm] = useState({ + name: "", + slug: "", + description: "", + cover_image: "", + icon: "", + sort_order: 0, + is_active: true, + }); + const [itemsDialogOpen, setItemsDialogOpen] = useState(false); + const [activeTag, setActiveTag] = useState(null); + const [selectedProductId, setSelectedProductId] = useState(""); + const [tagItemEdits, setTagItemEdits] = useState>({}); + const [batchProductIds, setBatchProductIds] = useState(""); + const [sortableItems, setSortableItems] = useState([]); + const [isSortMode, setIsSortMode] = useState(false); + const [isSavingSort, setIsSavingSort] = useState(false); + const [forceRecordHistory, setForceRecordHistory] = useState(false); const moveUrlToFront = (activeId: string) => { setEditingImages((prev) => { const index = prev.findIndex((item) => item.id === activeId); @@ -106,10 +144,25 @@ export default function Admin() { const { data: paymentsData, isLoading: paymentsLoading } = useAdminPayments(); const { data: disputesData, isLoading: disputesLoading } = useAdminDisputes(); const { data: pendingProductsData, isLoading: pendingProductsLoading } = useAdminPendingProducts(); + const { data: compareTagsData, isLoading: compareTagsLoading } = useAdminComparisonTags(); + const { data: adminProductsData } = useAdminSimpleProducts(); + const { data: tagItemsData, isLoading: tagItemsLoading } = useAdminComparisonTagItems(activeTag?.id || 0, { + enabled: itemsDialogOpen && !!activeTag, + }); const updateUserMutation = useUpdateAdminUser(); const resolveDisputeMutation = useResolveDispute(); const reviewProductMutation = useReviewProduct(); const updateProductImagesMutation = useUpdateAdminProductImages(); + const createTagMutation = useCreateAdminComparisonTag(); + const updateTagMutation = useUpdateAdminComparisonTag(); + const deleteTagMutation = useDeleteAdminComparisonTag(); + const addTagItemsMutation = useAddAdminComparisonTagItems(); + const updateTagItemMutation = useUpdateAdminComparisonTagItem(); + const deleteTagItemMutation = useDeleteAdminComparisonTagItem(); + const backfillHistoryMutation = useBackfillPriceHistory(); + const backfillTagHistoryMutation = useBackfillTagPriceHistory(); + const recordHistoryMutation = useRecordPriceHistory(); + const recordTagHistoryMutation = useRecordTagPriceHistory(); // Extract items from paginated responses const users = usersData?.items || []; @@ -117,6 +170,9 @@ export default function Admin() { const payments = paymentsData?.items || []; const disputes = disputesData?.items || []; const pendingProducts = pendingProductsData?.items || []; + const compareTags = compareTagsData || []; + const adminProducts = adminProductsData?.items || []; + const tagItems = tagItemsData || []; useEffect(() => { if (!loading && (!isAuthenticated || user?.role !== "admin")) { @@ -124,6 +180,19 @@ export default function Admin() { } }, [loading, isAuthenticated, user, navigate]); + useEffect(() => { + if (!itemsDialogOpen) return; + const next: Record = {}; + for (const item of tagItems) { + next[item.id] = { + sort_order: item.sort_order, + is_pinned: item.is_pinned, + }; + } + setTagItemEdits(next); + setSortableItems(tagItems); + }, [itemsDialogOpen, tagItems]); + const openImageEditor = (product: AdminProduct) => { const initialImages = product.images && product.images.length > 0 ? [...product.images] @@ -211,6 +280,11 @@ export default function Admin() { }; const pendingProductsCount = pendingProducts?.length || 0; + const productStatusLabel: Record = { + pending: "待审核", + approved: "已通过", + rejected: "已拒绝", + }; const handleApproveProduct = (productId: number) => { reviewProductMutation.mutate( @@ -246,6 +320,250 @@ export default function Admin() { ); }; + const openCreateTag = () => { + setEditingTag(null); + setTagForm({ + name: "", + slug: "", + description: "", + cover_image: "", + icon: "", + sort_order: 0, + is_active: true, + }); + setTagDialogOpen(true); + }; + + const openEditTag = (tag: AdminComparisonTag) => { + setEditingTag(tag); + setTagForm({ + name: tag.name, + slug: tag.slug, + description: tag.description || "", + cover_image: tag.cover_image || "", + icon: tag.icon || "", + sort_order: tag.sort_order, + is_active: tag.is_active, + }); + setTagDialogOpen(true); + }; + + const handleSaveTag = async () => { + const name = tagForm.name.trim(); + if (!name) { + toast.error("请输入标签名称"); + return; + } + const slug = (tagForm.slug || "").trim() || slugify(name); + const payload = { + name, + slug, + description: tagForm.description.trim() || undefined, + cover_image: tagForm.cover_image.trim() || undefined, + icon: tagForm.icon.trim() || undefined, + sort_order: Number(tagForm.sort_order) || 0, + is_active: tagForm.is_active, + }; + try { + if (editingTag) { + await updateTagMutation.mutateAsync({ tagId: editingTag.id, data: payload }); + toast.success("标签已更新"); + } else { + await createTagMutation.mutateAsync(payload); + toast.success("标签已创建"); + } + setTagDialogOpen(false); + } catch (error: unknown) { + const { title, description } = getErrorCopy(error, { context: "admin.compare_tag" }); + toast.error(title, { description }); + } + }; + + const handleDeleteTag = (tagId: number) => { + if (!window.confirm("确认删除该标签?")) return; + deleteTagMutation.mutate(tagId, { + onSuccess: () => toast.success("标签已删除"), + onError: (error: unknown) => { + const { title, description } = getErrorCopy(error, { context: "admin.compare_tag" }); + toast.error(title, { description }); + }, + }); + }; + + const openTagItems = (tag: AdminComparisonTag) => { + setActiveTag(tag); + setSelectedProductId(""); + setItemsDialogOpen(true); + }; + + const handleAddTagItem = () => { + if (!activeTag) return; + if (!selectedProductId) { + toast.error("请选择商品"); + return; + } + addTagItemsMutation.mutate( + { tagId: activeTag.id, data: { product_ids: [Number(selectedProductId)] } }, + { + onSuccess: () => { + toast.success("商品已添加"); + setSelectedProductId(""); + }, + onError: (error: unknown) => { + const { title, description } = getErrorCopy(error, { context: "admin.compare_tag_item" }); + toast.error(title, { description }); + }, + } + ); + }; + + const handleBatchAddTagItems = () => { + if (!activeTag) return; + const ids = batchProductIds + .split(/[,\n]/) + .map((v) => Number(v.trim())) + .filter((v) => !Number.isNaN(v) && v > 0); + if (ids.length === 0) { + toast.error("请输入有效的商品ID"); + return; + } + addTagItemsMutation.mutate( + { tagId: activeTag.id, data: { product_ids: ids } }, + { + onSuccess: () => { + toast.success("批量添加成功"); + setBatchProductIds(""); + }, + onError: (error: unknown) => { + const { title, description } = getErrorCopy(error, { context: "admin.compare_tag_item" }); + toast.error(title, { description }); + }, + } + ); + }; + + const handleCsvImport = (file: File | null) => { + if (!file) return; + const reader = new FileReader(); + reader.onload = () => { + const text = String(reader.result || ""); + const ids = parseProductIdsFromText(text); + if (ids.length === 0) { + toast.error("未识别到有效商品ID"); + return; + } + setBatchProductIds(ids.join(", ")); + toast.success(`已解析 ${ids.length} 个商品ID`); + }; + reader.readAsText(file); + }; + + const handleSaveTagItem = (itemId: number) => { + if (!activeTag) return; + const edit = tagItemEdits[itemId]; + if (!edit) return; + updateTagItemMutation.mutate( + { tagId: activeTag.id, itemId, data: { sort_order: edit.sort_order, is_pinned: edit.is_pinned } }, + { + onSuccess: () => toast.success("已保存"), + onError: (error: unknown) => { + const { title, description } = getErrorCopy(error, { context: "admin.compare_tag_item" }); + toast.error(title, { description }); + }, + } + ); + }; + + const handleDeleteTagItem = (itemId: number) => { + if (!activeTag) return; + deleteTagItemMutation.mutate( + { tagId: activeTag.id, itemId }, + { + onSuccess: () => toast.success("已移除"), + onError: (error: unknown) => { + const { title, description } = getErrorCopy(error, { context: "admin.compare_tag_item" }); + toast.error(title, { description }); + }, + } + ); + }; + + const handleBackfillHistory = () => { + backfillHistoryMutation.mutate(undefined, { + onSuccess: (res) => { + toast.success(`历史已补齐(新增 ${res.created} 条,跳过 ${res.skipped} 条)`); + }, + onError: (error: unknown) => { + const { title, description } = getErrorCopy(error, { context: "admin.price_history" }); + toast.error(title, { description }); + }, + }); + }; + + const handleBackfillTagHistory = () => { + if (!activeTag) return; + backfillTagHistoryMutation.mutate(activeTag.id, { + onSuccess: (res) => { + toast.success(`标签历史已补齐(新增 ${res.created} 条,跳过 ${res.skipped} 条)`); + }, + onError: (error: unknown) => { + const { title, description } = getErrorCopy(error, { context: "admin.price_history" }); + toast.error(title, { description }); + }, + }); + }; + + const handleRecordHistory = () => { + recordHistoryMutation.mutate({ force: forceRecordHistory }, { + onSuccess: (res) => { + toast.success(`已记录当前价格(新增 ${res.created} 条,跳过 ${res.skipped} 条)`); + }, + onError: (error: unknown) => { + const { title, description } = getErrorCopy(error, { context: "admin.price_history" }); + toast.error(title, { description }); + }, + }); + }; + + const handleRecordTagHistory = () => { + if (!activeTag) return; + recordTagHistoryMutation.mutate({ tagId: activeTag.id, data: { force: forceRecordHistory } }, { + onSuccess: (res) => { + toast.success(`标签价格已记录(新增 ${res.created} 条,跳过 ${res.skipped} 条)`); + }, + onError: (error: unknown) => { + const { title, description } = getErrorCopy(error, { context: "admin.price_history" }); + toast.error(title, { description }); + }, + }); + }; + + const handleSaveSortOrder = async () => { + if (!activeTag) return; + setIsSavingSort(true); + try { + const updates = sortableItems.map((item, index) => ({ + itemId: item.id, + sort_order: index + 1, + })); + await Promise.all( + updates.map((u) => + updateTagItemMutation.mutateAsync({ + tagId: activeTag.id, + itemId: u.itemId, + data: { sort_order: u.sort_order }, + }) + ) + ); + toast.success("排序已保存"); + } catch (error: unknown) { + const { title, description } = getErrorCopy(error, { context: "admin.compare_tag_item" }); + toast.error(title, { description }); + } finally { + setIsSavingSort(false); + } + }; + return (
@@ -504,6 +822,260 @@ export default function Admin() { + + + + + {editingTag ? "编辑比价标签" : "创建比价标签"} + 管理员维护标签,用于首页和商品页比价展示 + +
+
+ + setTagForm((prev) => ({ ...prev, name: e.target.value }))} + placeholder="如:办公效率" + /> +
+
+ + setTagForm((prev) => ({ ...prev, slug: e.target.value }))} + placeholder="如:office-tools" + /> +
+
+ + setTagForm((prev) => ({ ...prev, description: e.target.value }))} + placeholder="简单描述标签用途" + /> +
+
+ + setTagForm((prev) => ({ ...prev, cover_image: e.target.value }))} + placeholder="封面图URL" + /> +
+
+ + setTagForm((prev) => ({ ...prev, icon: e.target.value }))} + placeholder="图标标识(可选)" + /> +
+
+
+ + setTagForm((prev) => ({ ...prev, sort_order: Number(e.target.value) }))} + /> +
+
+ 启用 + setTagForm((prev) => ({ ...prev, is_active: checked }))} + /> +
+
+
+ + + + +
+
+ + + + + 管理标签商品 + {activeTag?.name || "请选择标签"} 的商品列表 + +
+
+ + + + +
+
+ +