From 08ab0ee92b61a214184c84e1f69a1d4757bc4581 Mon Sep 17 00:00:00 2001 From: D K Date: Mon, 22 Sep 2025 00:28:15 +0300 Subject: [PATCH 1/7] Implement ASGI application with fibonacci, factorial, and mean endpoints --- hw1/app.py | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 100 insertions(+), 1 deletion(-) diff --git a/hw1/app.py b/hw1/app.py index 6107b870..8eea9137 100644 --- a/hw1/app.py +++ b/hw1/app.py @@ -1,6 +1,39 @@ +import ast +import http.client +import math from typing import Any, Awaitable, Callable +async def compute_fibonacci(num: int) -> int: + start = [0, 1] + for i in range(2, num + 1): + start.append(start[i - 1] + start[i - 2]) + return start[num] + + +async def compute_factorial(num: int) -> int: + return math.factorial(num) + + +async def compute_mean(values: list[float]) -> float: + return sum(values) / len(values) + + +async def send_error(send: Callable[[dict[str, Any]], Awaitable[None]], status: int) -> None: + await send({"type": "http.response.start", "status": status, "headers": []}) + await send({"type": "http.response.body", "body": b"Error"}) + + +async def handle_lifespan(receive, send): + while True: + message = await receive() + if message["type"] == "lifespan.startup": + await send({"type": "lifespan.startup.complete"}) + elif message["type"] == "lifespan.shutdown": + await send({"type": "lifespan.shutdown.complete"}) + break + + async def application( scope: dict[str, Any], receive: Callable[[], Awaitable[dict[str, Any]]], @@ -12,7 +45,73 @@ async def application( receive: Корутина для получения сообщений от клиента send: Корутина для отправки сообщений клиенту """ - # TODO: Ваша реализация здесь + if scope["type"] == "lifespan": + await handle_lifespan(receive, send) + + if scope["path"].startswith("/fibonacci/"): + await receive() + path: str = scope["path"] + path = path.rpartition("/")[2] + try: + num = int(path) + except ValueError: + await send_error(send, http.client.UNPROCESSABLE_ENTITY) + return + if num < 0: + await send_error(send, http.client.BAD_REQUEST) + return + result = await compute_fibonacci(num) + await send({"type": "http.response.start", "status": 200, "headers": [[b"content-type", b"application/json"]]}) + await send({"type": "http.response.body", "body": f'{{"result": {result}}}'.encode()}) + return + + if scope["path"] == "/factorial": + await receive() + query_string = scope["query_string"].decode() + if not query_string or "n=" not in query_string: + await send_error(send, http.client.UNPROCESSABLE_ENTITY) + return + num_str = query_string.rpartition("=")[2] + if not num_str: + await send_error(send, http.client.UNPROCESSABLE_ENTITY) + return + try: + num = int(num_str) + except ValueError: + await send_error(send, http.client.UNPROCESSABLE_ENTITY) + return + if num < 0: + await send_error(send, http.client.BAD_REQUEST) + return + result = await compute_factorial(num) + await send({"type": "http.response.start", "status": 200, "headers": [[b"content-type", b"application/json"]]}) + await send({"type": "http.response.body", "body": f'{{"result": {result}}}'.encode()}) + return + + if scope["path"] == "/mean": + data_body = await receive() + body_str = data_body["body"].decode() + if not body_str: + await send_error(send, http.client.UNPROCESSABLE_ENTITY) + return + try: + lst = ast.literal_eval(body_str) + except (ValueError, SyntaxError): + await send_error(send, http.client.UNPROCESSABLE_ENTITY) + return + if not isinstance(lst, list): + await send_error(send, http.client.UNPROCESSABLE_ENTITY) + return + if len(lst) == 0: + await send_error(send, http.client.BAD_REQUEST) + return + result = await compute_mean(lst) + await send({"type": "http.response.start", "status": 200, "headers": [[b"content-type", b"application/json"]]}) + await send({"type": "http.response.body", "body": f'{{"result": {result}}}'.encode()}) + return + await receive() + await send_error(send, http.client.NOT_FOUND) + if __name__ == "__main__": import uvicorn From 62901db8aa4615f6d2cabcdbc721ad750e1b3771 Mon Sep 17 00:00:00 2001 From: D K Date: Mon, 22 Sep 2025 00:31:41 +0300 Subject: [PATCH 2/7] Implement ASGI application with fibonacci, factorial, and mean endpoints --- hw1/app.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw1/app.py b/hw1/app.py index 8eea9137..2c38fecf 100644 --- a/hw1/app.py +++ b/hw1/app.py @@ -89,8 +89,8 @@ async def application( return if scope["path"] == "/mean": - data_body = await receive() - body_str = data_body["body"].decode() + body = await receive() + body_str = body["body"].decode() if not body_str: await send_error(send, http.client.UNPROCESSABLE_ENTITY) return From 240c55fd85acbba32fcc156ded825f5a5ded4b5b Mon Sep 17 00:00:00 2001 From: D K Date: Thu, 2 Oct 2025 00:03:24 +0300 Subject: [PATCH 3/7] hw2 --- hw2/hw/shop_api/api/__init__.py | 0 hw2/hw/shop_api/api/cart_routes.py | 117 ++++++++++++++++++++ hw2/hw/shop_api/api/chat_routes.py | 19 ++++ hw2/hw/shop_api/api/contracts.py | 89 +++++++++++++++ hw2/hw/shop_api/api/item_routes.py | 122 ++++++++++++++++++++ hw2/hw/shop_api/main.py | 8 ++ hw2/hw/shop_api/store/__init__.py | 0 hw2/hw/shop_api/store/models.py | 33 ++++++ hw2/hw/shop_api/store/queries.py | 172 +++++++++++++++++++++++++++++ hw2/hw/shop_api/websocket_chat.py | 55 +++++++++ 10 files changed, 615 insertions(+) create mode 100644 hw2/hw/shop_api/api/__init__.py create mode 100644 hw2/hw/shop_api/api/cart_routes.py create mode 100644 hw2/hw/shop_api/api/chat_routes.py create mode 100644 hw2/hw/shop_api/api/contracts.py create mode 100644 hw2/hw/shop_api/api/item_routes.py create mode 100644 hw2/hw/shop_api/store/__init__.py create mode 100644 hw2/hw/shop_api/store/models.py create mode 100644 hw2/hw/shop_api/store/queries.py create mode 100644 hw2/hw/shop_api/websocket_chat.py diff --git a/hw2/hw/shop_api/api/__init__.py b/hw2/hw/shop_api/api/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/hw2/hw/shop_api/api/cart_routes.py b/hw2/hw/shop_api/api/cart_routes.py new file mode 100644 index 00000000..3e2d2e70 --- /dev/null +++ b/hw2/hw/shop_api/api/cart_routes.py @@ -0,0 +1,117 @@ +from http import HTTPStatus +from typing import Annotated + +from fastapi import APIRouter, HTTPException, Query, Response +from pydantic import NonNegativeFloat, NonNegativeInt, PositiveInt + +from shop_api.store.queries import ( + add_cart, + add_item_to_cart, + get_cart, + get_carts, + get_item, +) + +from .contracts import CartIdResponse, CartResponse + +router = APIRouter(prefix="/cart") + + +@router.post( + "", + status_code=HTTPStatus.CREATED, +) +async def post_cart(response: Response) -> CartIdResponse: + entity = add_cart() + response.headers["location"] = f"/cart/{entity.id}" + return CartIdResponse(id=entity.id) + + +@router.get( + "/{id}", + responses={ + HTTPStatus.OK: { + "description": "Successfully returned requested cart", + }, + HTTPStatus.NOT_FOUND: { + "description": "Cart not found", + }, + }, +) +async def get_cart_by_id(id: int) -> CartResponse: + entity = get_cart(id) + + if not entity: + raise HTTPException( + HTTPStatus.NOT_FOUND, + f"Cart with id={id} not found", + ) + + items_dict = {} + for cart_item in entity.info.items: + item_entity = get_item(cart_item.id, include_deleted=True) + if item_entity: + items_dict[cart_item.id] = item_entity + + return CartResponse.from_entity(entity, items_dict) + + +@router.get("") +async def get_cart_list( + offset: Annotated[NonNegativeInt, Query()] = 0, + limit: Annotated[PositiveInt, Query()] = 10, + min_price: Annotated[NonNegativeFloat | None, Query()] = None, + max_price: Annotated[NonNegativeFloat | None, Query()] = None, + min_quantity: Annotated[NonNegativeInt | None, Query()] = None, + max_quantity: Annotated[NonNegativeInt | None, Query()] = None, +) -> list[CartResponse]: + entities = get_carts( + offset=offset, + limit=limit, + min_price=min_price, + max_price=max_price, + min_quantity=min_quantity, + max_quantity=max_quantity, + ) + + all_item_ids = set() + for cart_entity in entities: + for cart_item in cart_entity.info.items: + all_item_ids.add(cart_item.id) + + items_dict = {} + for item_id in all_item_ids: + item_entity = get_item(item_id, include_deleted=True) + if item_entity: + items_dict[item_id] = item_entity + + return [CartResponse.from_entity(e, items_dict) for e in entities] + + +@router.post( + "/{cart_id}/add/{item_id}", + responses={ + HTTPStatus.OK: { + "description": "Successfully added item to cart", + }, + HTTPStatus.NOT_FOUND: { + "description": "Cart or item not found", + }, + }, +) +async def add_item_to_cart_handler(cart_id: int, item_id: int) -> CartResponse: + entity = add_item_to_cart(cart_id, item_id) + + if not entity: + raise HTTPException( + HTTPStatus.NOT_FOUND, + f"Cart with id={cart_id} or item with id={item_id} not found", + ) + + items_dict = {} + for cart_item in entity.info.items: + item_entity = get_item(cart_item.id, include_deleted=True) + if item_entity: + items_dict[cart_item.id] = item_entity + + return CartResponse.from_entity(entity, items_dict) diff --git a/hw2/hw/shop_api/api/chat_routes.py b/hw2/hw/shop_api/api/chat_routes.py new file mode 100644 index 00000000..a8631b3a --- /dev/null +++ b/hw2/hw/shop_api/api/chat_routes.py @@ -0,0 +1,19 @@ +from fastapi import APIRouter, WebSocket, WebSocketDisconnect + +from shop_api.websocket_chat import chat_manager + +router = APIRouter() + + +@router.websocket("/chat/{chat_name}") +async def chat_endpoint(websocket: WebSocket, chat_name: str): + room = chat_manager.get_room(chat_name) + await room.connect(websocket) + + try: + while True: + message = await websocket.receive_text() + await room.broadcast(message, websocket) + except WebSocketDisconnect: + await room.disconnect(websocket) + diff --git a/hw2/hw/shop_api/api/contracts.py b/hw2/hw/shop_api/api/contracts.py new file mode 100644 index 00000000..5d658020 --- /dev/null +++ b/hw2/hw/shop_api/api/contracts.py @@ -0,0 +1,89 @@ +from __future__ import annotations + +from pydantic import BaseModel, ConfigDict, NonNegativeFloat + +from shop_api.store.models import ( + CartEntity, + CartItemInfo, + ItemEntity, + ItemInfo, + PatchItemInfo, +) + + +class ItemResponse(BaseModel): + id: int + name: str + price: float + deleted: bool = False + + @staticmethod + def from_entity(entity: ItemEntity) -> ItemResponse: + return ItemResponse( + id=entity.id, + name=entity.info.name, + price=entity.info.price, + deleted=entity.info.deleted, + ) + + +class ItemRequest(BaseModel): + name: str + price: NonNegativeFloat + + def as_item_info(self) -> ItemInfo: + return ItemInfo(name=self.name, price=self.price, deleted=False) + + +class PatchItemRequest(BaseModel): + name: str | None = None + price: NonNegativeFloat | None = None + + model_config = ConfigDict(extra="forbid") + + def as_patch_item_info(self) -> PatchItemInfo: + return PatchItemInfo(name=self.name, price=self.price) + + +class CartItemResponse(BaseModel): + id: int + name: str + quantity: int + available: bool + + @staticmethod + def from_cart_item_info(info: CartItemInfo) -> CartItemResponse: + return CartItemResponse( + id=info.id, + name=info.name, + quantity=info.quantity, + available=info.available, + ) + + +class CartResponse(BaseModel): + id: int + items: list[CartItemResponse] + price: float + + @staticmethod + def from_entity(entity: CartEntity, items_dict: dict[int, ItemEntity]) -> CartResponse: + cart_items = [ + CartItemResponse.from_cart_item_info(item) + for item in entity.info.items + ] + + total_price = 0.0 + for item in entity.info.items: + if item.id in items_dict and item.available: + total_price += items_dict[item.id].info.price * item.quantity + + return CartResponse( + id=entity.id, + items=cart_items, + price=total_price, + ) + + +class CartIdResponse(BaseModel): + id: int diff --git a/hw2/hw/shop_api/api/item_routes.py b/hw2/hw/shop_api/api/item_routes.py new file mode 100644 index 00000000..962e7f5f --- /dev/null +++ b/hw2/hw/shop_api/api/item_routes.py @@ -0,0 +1,122 @@ +from http import HTTPStatus +from typing import Annotated + +from fastapi import APIRouter, HTTPException, Query, Response +from pydantic import NonNegativeFloat, NonNegativeInt, PositiveInt + +from shop_api.store.queries import ( + add_item, + delete_item, + get_item, + get_items, + patch_item, + update_item, +) + +from .contracts import ItemRequest, ItemResponse, PatchItemRequest + +router = APIRouter(prefix="/item") + + +@router.post( + "", + status_code=HTTPStatus.CREATED, +) +async def post_item(item_data: ItemRequest, response: Response) -> ItemResponse: + entity = add_item(item_data.as_item_info()) + response.headers["location"] = f"/item/{entity.id}" + return ItemResponse.from_entity(entity) + + +@router.get( + "/{id}", + responses={ + HTTPStatus.OK: { + "description": "Successfully returned requested item", + }, + HTTPStatus.NOT_FOUND: { + "description": "Item not found", + }, + }, +) +async def get_item_by_id(id: int) -> ItemResponse: + entity = get_item(id, include_deleted=False) + + if not entity: + raise HTTPException( + HTTPStatus.NOT_FOUND, + f"Item with id={id} not found", + ) + + return ItemResponse.from_entity(entity) + + +@router.get("") +async def get_item_list( + offset: Annotated[NonNegativeInt, Query()] = 0, + limit: Annotated[PositiveInt, Query()] = 10, + min_price: Annotated[NonNegativeFloat | None, Query()] = None, + max_price: Annotated[NonNegativeFloat | None, Query()] = None, + show_deleted: Annotated[bool, Query()] = False, +) -> list[ItemResponse]: + entities = get_items( + offset=offset, + limit=limit, + min_price=min_price, + max_price=max_price, + show_deleted=show_deleted, + ) + + return [ItemResponse.from_entity(e) for e in entities] + + +@router.put( + "/{id}", + responses={ + HTTPStatus.OK: { + "description": "Successfully updated item", + }, + HTTPStatus.NOT_MODIFIED: { + "description": "Item not found", + }, + }, +) +async def put_item(id: int, item_data: ItemRequest) -> ItemResponse: + entity = update_item(id, item_data.as_item_info()) + + if entity is None: + raise HTTPException( + HTTPStatus.NOT_MODIFIED, + f"Item with id={id} not found", + ) + + return ItemResponse.from_entity(entity) + + +@router.patch( + "/{id}", + responses={ + HTTPStatus.OK: { + "description": "Successfully patched item", + }, + HTTPStatus.NOT_MODIFIED: { + "description": "Item not found or deleted", + }, + }, +) +async def patch_item_handler(id: int, patch_data: PatchItemRequest) -> ItemResponse: + entity = patch_item(id, patch_data.as_patch_item_info()) + + if entity is None: + raise HTTPException( + HTTPStatus.NOT_MODIFIED, + f"Item with id={id} not found or is deleted", + ) + + return ItemResponse.from_entity(entity) + + +@router.delete("/{id}") +async def delete_item_handler(id: int) -> Response: + delete_item(id) + return Response(status_code=HTTPStatus.OK) diff --git a/hw2/hw/shop_api/main.py b/hw2/hw/shop_api/main.py index f60a8c60..16366e67 100644 --- a/hw2/hw/shop_api/main.py +++ b/hw2/hw/shop_api/main.py @@ -1,3 +1,11 @@ from fastapi import FastAPI +from shop_api.api.cart_routes import router as cart_router +from shop_api.api.chat_routes import router as chat_router +from shop_api.api.item_routes import router as item_router + app = FastAPI(title="Shop API") + +app.include_router(item_router) +app.include_router(cart_router) +app.include_router(chat_router) diff --git a/hw2/hw/shop_api/store/__init__.py b/hw2/hw/shop_api/store/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/hw2/hw/shop_api/store/models.py b/hw2/hw/shop_api/store/models.py new file mode 100644 index 00000000..b44a6bbb --- /dev/null +++ b/hw2/hw/shop_api/store/models.py @@ -0,0 +1,33 @@ +from pydantic import BaseModel + + +class ItemInfo(BaseModel): + name: str + price: float + deleted: bool = False + + +class ItemEntity(BaseModel): + id: int + info: ItemInfo + + +class PatchItemInfo(BaseModel): + name: str | None = None + price: float | None = None + + +class CartItemInfo(BaseModel): + id: int + name: str + quantity: int + available: bool + + +class CartInfo(BaseModel): + items: list[CartItemInfo] = [] + + +class CartEntity(BaseModel): + id: int + info: CartInfo diff --git a/hw2/hw/shop_api/store/queries.py b/hw2/hw/shop_api/store/queries.py new file mode 100644 index 00000000..51545c9f --- /dev/null +++ b/hw2/hw/shop_api/store/queries.py @@ -0,0 +1,172 @@ +from typing import Iterable + +from .models import ( + CartEntity, + CartInfo, + CartItemInfo, + ItemEntity, + ItemInfo, + PatchItemInfo, +) + +_items = dict[int, ItemInfo]() +_carts = dict[int, CartInfo]() + + +def int_id_generator() -> Iterable[int]: + i = 0 + while True: + yield i + i += 1 + + +_item_id_generator = int_id_generator() +_cart_id_generator = int_id_generator() + + +def add_item(info: ItemInfo) -> ItemEntity: + _id = next(_item_id_generator) + _items[_id] = info + return ItemEntity(id=_id, info=info) + + +def get_item(item_id: int, include_deleted: bool = False) -> ItemEntity | None: + if item_id not in _items: + return None + + info = _items[item_id] + if not include_deleted and info.deleted: + return None + + return ItemEntity(id=item_id, info=info) + + +def get_items( + offset: int = 0, + limit: int = 10, + min_price: float | None = None, + max_price: float | None = None, + show_deleted: bool = False, +) -> list[ItemEntity]: + result = [] + + for item_id, info in _items.items(): + if not show_deleted and info.deleted: + continue + + if min_price is not None and info.price < min_price: + continue + if max_price is not None and info.price > max_price: + continue + + result.append(ItemEntity(id=item_id, info=info)) + + return result[offset:offset + limit] + + +def update_item(item_id: int, info: ItemInfo) -> ItemEntity | None: + if item_id not in _items: + return None + + _items[item_id] = info + return ItemEntity(id=item_id, info=info) + + +def patch_item(item_id: int, patch_info: PatchItemInfo) -> ItemEntity | None: + if item_id not in _items: + return None + + info = _items[item_id] + + if info.deleted: + return None + + if patch_info.name is not None: + info.name = patch_info.name + + if patch_info.price is not None: + info.price = patch_info.price + + return ItemEntity(id=item_id, info=info) + + +def delete_item(item_id: int) -> None: + if item_id in _items: + _items[item_id].deleted = True + + +def add_cart() -> CartEntity: + _id = next(_cart_id_generator) + info = CartInfo(items=[]) + _carts[_id] = info + return CartEntity(id=_id, info=info) + + +def get_cart(cart_id: int) -> CartEntity | None: + if cart_id not in _carts: + return None + + return CartEntity(id=cart_id, info=_carts[cart_id]) + + +def get_carts( + offset: int = 0, + limit: int = 10, + min_price: float | None = None, + max_price: float | None = None, + min_quantity: int | None = None, + max_quantity: int | None = None, +) -> list[CartEntity]: + result = [] + + for cart_id, info in _carts.items(): + total_price = 0.0 + total_quantity = 0 + + for cart_item in info.items: + total_quantity += cart_item.quantity + + item_entity = get_item(cart_item.id, include_deleted=True) + if item_entity and cart_item.available: + total_price += item_entity.info.price * cart_item.quantity + + if min_price is not None and total_price < min_price: + continue + if max_price is not None and total_price > max_price: + continue + + if min_quantity is not None and total_quantity < min_quantity: + continue + if max_quantity is not None and total_quantity > max_quantity: + continue + + result.append(CartEntity(id=cart_id, info=info)) + + return result[offset:offset + limit] + + +def add_item_to_cart(cart_id: int, item_id: int) -> CartEntity | None: + if cart_id not in _carts: + return None + + cart_info = _carts[cart_id] + + item_entity = get_item(item_id, include_deleted=True) + if not item_entity: + return None + + for cart_item in cart_info.items: + if cart_item.id == item_id: + cart_item.quantity += 1 + cart_item.available = not item_entity.info.deleted + return CartEntity(id=cart_id, info=cart_info) + + cart_item = CartItemInfo( + id=item_id, + name=item_entity.info.name, + quantity=1, + available=not item_entity.info.deleted, + ) + cart_info.items.append(cart_item) + + return CartEntity(id=cart_id, info=cart_info) diff --git a/hw2/hw/shop_api/websocket_chat.py b/hw2/hw/shop_api/websocket_chat.py new file mode 100644 index 00000000..2646360b --- /dev/null +++ b/hw2/hw/shop_api/websocket_chat.py @@ -0,0 +1,55 @@ +import random +from collections import defaultdict + +from fastapi import WebSocket + + +class ChatRoom: + def __init__(self): + self.connections: dict[WebSocket, str] = {} + + async def connect(self, ws: WebSocket) -> str: + await ws.accept() + username = self._generate_username() + self.connections[ws] = username + return username + + async def disconnect(self, ws: WebSocket) -> None: + if ws in self.connections: + del self.connections[ws] + + async def broadcast(self, message: str, sender_ws: WebSocket) -> None: + username = self.connections.get(sender_ws, "Unknown") + formatted_message = f"{username} :: {message}" + + for ws in self.connections: + await ws.send_text(formatted_message) + + def _generate_username(self) -> str: + adjectives = [ + "Happy", "Brave", "Calm", "Dreamy", "Eager", + "Fancy", "Gentle", "Jolly", "Kind", "Lively", + "Mighty", "Nice", "Proud", "Quick", "Smart", + "Swift", "Wise", "Witty", "Young", "Zesty" + ] + + nouns = [ + "Panda", "Tiger", "Eagle", "Dolphin", "Fox", + "Wolf", "Bear", "Lion", "Owl", "Hawk", + "Dragon", "Phoenix", "Unicorn", "Griffin", "Raven", + "Falcon", "Panther", "Lynx", "Otter", "Shark" + ] + + return f"{random.choice(adjectives)}{random.choice(nouns)}" + + +class ChatManager: + def __init__(self): + self.rooms: dict[str, ChatRoom] = defaultdict(ChatRoom) + + def get_room(self, chat_name: str) -> ChatRoom: + return self.rooms[chat_name] + + +chat_manager = ChatManager() + From 15a1e366e591731c142399226e526774151ac23c Mon Sep 17 00:00:00 2001 From: D K Date: Sun, 12 Oct 2025 23:59:51 +0300 Subject: [PATCH 4/7] hw4 --- lecture4/Dockerfile | 29 + lecture4/cmd/app/main.go | 72 +++ lecture4/docker-compose.shop.yml | 54 ++ lecture4/go.mod | 59 ++ lecture4/go.sum | 191 ++++++ lecture4/graphana.jpg | Bin 0 -> 388683 bytes lecture4/internal/api/handlers.go | 593 ++++++++++++++++++ lecture4/internal/api/models.go | 46 ++ lecture4/internal/config/config.go | 27 + lecture4/internal/repository/queries.sql | 111 ++++ lecture4/migrations/Dockerfile | 6 + lecture4/migrations/shop_init.sql | 42 ++ .../provisioning/dashboards/shop-api.json | 419 +++++++++++++ lecture4/settings/prometheus/Dockerfile | 11 + lecture4/settings/prometheus/prometheus.yml | 11 + lecture4/sqlc.yaml | 16 + 16 files changed, 1687 insertions(+) create mode 100644 lecture4/Dockerfile create mode 100644 lecture4/cmd/app/main.go create mode 100644 lecture4/docker-compose.shop.yml create mode 100644 lecture4/go.mod create mode 100644 lecture4/go.sum create mode 100644 lecture4/graphana.jpg create mode 100644 lecture4/internal/api/handlers.go create mode 100644 lecture4/internal/api/models.go create mode 100644 lecture4/internal/config/config.go create mode 100644 lecture4/internal/repository/queries.sql create mode 100644 lecture4/migrations/Dockerfile create mode 100644 lecture4/migrations/shop_init.sql create mode 100644 lecture4/settings/grafana/provisioning/dashboards/shop-api.json create mode 100644 lecture4/settings/prometheus/Dockerfile create mode 100644 lecture4/settings/prometheus/prometheus.yml create mode 100644 lecture4/sqlc.yaml diff --git a/lecture4/Dockerfile b/lecture4/Dockerfile new file mode 100644 index 00000000..06ff8ef9 --- /dev/null +++ b/lecture4/Dockerfile @@ -0,0 +1,29 @@ +FROM golang:1.24-alpine AS builder + +WORKDIR /app + +COPY go.mod ./ +RUN go mod download + +COPY . . + +RUN go run github.com/sqlc-dev/sqlc/cmd/sqlc@latest generate + +RUN go run github.com/swaggo/swag/cmd/swag@latest init -g cmd/app/main.go + +RUN go mod tidy + +RUN CGO_ENABLED=0 GOOS=linux go build -o main ./cmd/app + +FROM alpine:latest + +WORKDIR /app + +RUN apk --no-cache add ca-certificates + +COPY --from=builder /app/main . + +EXPOSE 8080 + +CMD ["./main"] + diff --git a/lecture4/cmd/app/main.go b/lecture4/cmd/app/main.go new file mode 100644 index 00000000..3334ea29 --- /dev/null +++ b/lecture4/cmd/app/main.go @@ -0,0 +1,72 @@ +package main + +import ( + "database/sql" + "log" + "time" + + "github.com/gin-gonic/gin" + _ "github.com/lib/pq" + "github.com/prometheus/client_golang/prometheus/promhttp" + swaggerFiles "github.com/swaggo/files" + ginSwagger "github.com/swaggo/gin-swagger" + "shop-api/internal/api" + "shop-api/internal/config" + + _ "shop-api/docs" +) + +// @title Shop API +// @version 1.0 +// @description REST API для интернет магазина с товарами и корзинами +// @host localhost:8080 +// @BasePath / +func main() { + cfg := config.Load() + + // Подключение к базе данных с retry логикой + var db *sql.DB + var err error + for i := 0; i < 10; i++ { + db, err = sql.Open("postgres", cfg.DatabaseURL) + if err == nil { + err = db.Ping() + if err == nil { + break + } + } + log.Printf("Failed to connect to database, retrying in 2 seconds... (%d/10)", i+1) + time.Sleep(2 * time.Second) + } + if err != nil { + log.Fatalf("Failed to connect to database after 10 attempts: %v", err) + } + defer db.Close() + + log.Println("Successfully connected to database") + + router := gin.Default() + + router.GET("/metrics", gin.WrapH(promhttp.Handler())) + + router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) + + handler := api.NewHandler(db) + + router.POST("/item", handler.PostItem) + router.GET("/item/:id", handler.GetItemByID) + router.GET("/item", handler.GetItems) + router.PUT("/item/:id", handler.PutItem) + router.PATCH("/item/:id", handler.PatchItem) + router.DELETE("/item/:id", handler.DeleteItem) + + router.POST("/cart", handler.PostCart) + router.GET("/cart/:id", handler.GetCartByID) + router.GET("/cart", handler.GetCarts) + router.POST("/cart/:cart_id/add/:item_id", handler.AddItemToCart) + + log.Printf("Starting server on port %s", cfg.Port) + if err := router.Run(":" + cfg.Port); err != nil { + log.Fatalf("Failed to start server: %v", err) + } +} diff --git a/lecture4/docker-compose.shop.yml b/lecture4/docker-compose.shop.yml new file mode 100644 index 00000000..38391591 --- /dev/null +++ b/lecture4/docker-compose.shop.yml @@ -0,0 +1,54 @@ +services: + postgres: + build: + context: ./migrations + dockerfile: Dockerfile + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: shop + volumes: + - postgres_data:/var/lib/postgresql/data + ports: + - "5433:5432" + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 5s + timeout: 5s + retries: 5 + restart: always + + app: + build: + context: . + dockerfile: ./Dockerfile + environment: + DATABASE_URL: postgres://postgres:postgres@postgres:5432/shop?sslmode=disable + PORT: "8080" + ports: + - "8080:8080" + depends_on: + postgres: + condition: service_healthy + restart: always + + prometheus: + image: prom/prometheus:latest + volumes: + - ./settings/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml + ports: + - "9090:9090" + restart: always + + grafana: + image: grafana/grafana:latest + ports: + - "3000:3000" + environment: + GF_SECURITY_ADMIN_USER: admin + GF_SECURITY_ADMIN_PASSWORD: admin + restart: always + +volumes: + postgres_data: + diff --git a/lecture4/go.mod b/lecture4/go.mod new file mode 100644 index 00000000..7a9309fe --- /dev/null +++ b/lecture4/go.mod @@ -0,0 +1,59 @@ +module shop-api + +go 1.24 + +require ( + github.com/gin-gonic/gin v1.10.0 + github.com/lib/pq v1.10.9 + github.com/prometheus/client_golang v1.20.5 + github.com/swaggo/files v1.0.1 + github.com/swaggo/gin-swagger v1.6.0 +) + +require ( + github.com/KyleBanks/depth v1.2.1 // indirect + github.com/PuerkitoBio/purell v1.1.1 // indirect + github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/bytedance/sonic v1.11.6 // indirect + github.com/bytedance/sonic/loader v0.1.1 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect + github.com/cloudwego/iasm v0.2.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.3 // indirect + github.com/gin-contrib/sse v0.1.0 // indirect + github.com/go-openapi/jsonpointer v0.19.5 // indirect + github.com/go-openapi/jsonreference v0.19.6 // indirect + github.com/go-openapi/spec v0.20.4 // indirect + github.com/go-openapi/swag v0.19.15 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.20.0 // indirect + github.com/goccy/go-json v0.10.2 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/compress v1.17.9 // indirect + github.com/klauspost/cpuid/v2 v2.2.7 // indirect + github.com/leodido/go-urn v1.4.0 // indirect + github.com/mailru/easyjson v0.7.6 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/swaggo/swag v1.16.4 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.2.12 // indirect + golang.org/x/arch v0.8.0 // indirect + golang.org/x/crypto v0.24.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/text v0.16.0 // indirect + golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect + google.golang.org/protobuf v1.34.2 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/lecture4/go.sum b/lecture4/go.sum new file mode 100644 index 00000000..faf66918 --- /dev/null +++ b/lecture4/go.sum @@ -0,0 +1,191 @@ +github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= +github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= +github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= +github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= +github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= +github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= +github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= +github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= +github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs= +github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= +github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M= +github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM= +github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= +github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= +github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE= +github.com/swaggo/files v1.0.1/go.mod h1:0qXmMNH6sXNf+73t65aKeB+ApmgxdnkQzVTAj2uaMUg= +github.com/swaggo/gin-swagger v1.6.0 h1:y8sxvQ3E20/RCyrXeFfg60r6H0Z+SwpTjMYsMm+zy8M= +github.com/swaggo/gin-swagger v1.6.0/go.mod h1:BG00cCEy294xtVpyIAHG6+e2Qzj/xKlRdOqDkvq0uzo= +github.com/swaggo/swag v1.16.4 h1:clWJtd9LStiG3VeijiCfOVODP6VpHtKdQy9ELFG3s1A= +github.com/swaggo/swag v1.16.4/go.mod h1:VBsHJRsDvfYvqoiMKnsdwhNV9LEMHgEDZcyVYX0sxPg= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= +github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= +golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/lecture4/graphana.jpg b/lecture4/graphana.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b23db405e76fa2b1d323cf5e0375d1e3a66224a0 GIT binary patch literal 388683 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�BNvdt`!$ZkDc)f`0Qh41pa7Z_56xdg{q0IPH00G|oB7tyye025Ue9T=6Z)-7am4CQ8`l zPj@QwE2y`9o8rmYQ2R0t%79WFdhgDc0R5PEpCm>}-9yLy7PMIJmAw>F6z~eUlF9`l zVPXEkJt*2>K{&Q`aye=v_?!*lOp9UTfXyraml|#KPhLiIXb&1o)xG$nb!{M#b#$CB z-17(o)a~J_%iaA82#lEUcSU7RYcE|hE=EWEpvk)R4Sy`~g?m0iAQ#{ucGlrVf>|ug zZQD^UsbA;psce%@b{c<^lH)JBaz8uep+hv;fc#qdBvF)b2J_k!#nk8?h=FnFxO$$t z-l=PQiYov7{1biw#>9F}u9f8I0|$(J`+HTU;OPu>g5|)BrTN{9wV}#%@X|*~iVVwf zZT|PWdpHG;xmdJVTvibR6NLA}ejd11f>}u>RTcQNs~@5V&qbM+V^8p=F$(6Y(BJ9L zhwJsPzw(}Uk2{5sAS7b~ZK!oWSEOzaTb$Qu?151E_6gpH`7z~xQV=*78r+1}dWw9w zHTkL|k|oQI5UR|fu5`)Hn_6M!uVGGic^d68`>K*MjKLJ_Zv~tp4$V9&lcXdnT?>U z-5QV> z4Shm@sHe4OU8ox^`8j^(OR71g%X9JELS+o?p2pce5M96ynu;<6tJG>mKm9%n0pQZr zOl0)5 zRlo`+x%f2)bHlg@*tRBcV3=e5X0Fpcd&b80OYh8U!nB1o}}?~S|ZYuoMIIXKeu@yO2Dzxg$}?vh58fXySf-{ z!BKNDEk%#q3Pv{tOyF|7GMW(SB zvdl#jZp9nu0CEeUA1CxjWp6pbzHK+1Bm`kf0+z8`k&RXo3vq=ugosHedvVFFe8HTgdTKE&xYeD7#E${&#;{>Mvg{QlaulB1Dm21XeO=HDQ zgYw{ERE0#@IvyOcRE?)z%br?VKegA2?j>G+hK~}QY52O=sj@Z!oy#-QR23pv-pdXA zv8c0oeOg|3=8~|e({kyasyRV`C^bd8M}T4apSfe$ zhZb>zwTzD>p7vddnAVq~JYeg&8obg4b0$vhognzkqZ#0rh#mE2QRhduNJg%97iMA~ zK&1^FEj?hOP`qUZ6WThF+TKz{b+Y0>u21w9{#*!3w2b9LQ3 zRM#dyk;&w_@#!<62G7#pW*J9lwW4D0@S+;OkYU1d`5V1PX8?<0*=cgzy0{N`GP11) z@wOd|lyRO86ZakZlwFve9vDr$x|fLaTd%=vMVr+?ID!RMGc+3Vd`Na=<+=jKCpENaShMhKo_ojneo6(s#D1S=`B-DhP$%bqfczsXRaM+ zFEynRy6{?i2;_wQ5on(7DZ*`5@bmC|wVv`!UfknZy&>%)R8Jgj_jcHmZ61FBv-&oCQyXUVf;U`WHqu6N~>>Xa#EaFr|t20nGnkBY9pEZW=aagFZzwNCWpK%Ho`a>7c|&b)G&vW-+vX2r9}Yl!0OczEOA%!P6ugX-ks0s9(*1#hTh6ad9p zHIwgBBXsF}V4SvXUy9Xp;^0lUeMG%ebm6!WmGIARIav_cMKqE$j=QK4}W^XzLI^WEFcb z)^XYX08w|XUU2yV7%IlpccBLyJQNg|5>p&K_IF{)Cm+kK31{(l_vdQbgXFuaQ$1H1 zU7AGZf*D&bPo2}G&~?qY-=#nI91-7;9SLCu*o(J2+4)Z3;%c)EQMRF7k32OS8zQ%jadHBQ&7 z@29UxKe6hd4E7fN(JZP`PjeZ7W0Ev3#)G-dFNd6oTTkp^#g`Sy7`ssqo^;a1oW`I} zLhbrvVGtRsvS$I}dj==y zE{|o~LB>>WMIC{t5oU#iW7ylML5GU;P4*g=7PeMopW=uBsCO+CZ0+GsV+IA-?OGTI z^2vG>g>D*&e;oMP5MoM_!b!F#OgQYl#9d0n_=U(v2}KV!^~k?s{XX_7=ygQ5>4D(n zxTvC`hX3-$tNB-wOu>V9MI!aD0Zg)M$V%U&r3?Omqz};hN*MDY@*$vj_l~mI?~qdn z9dGZzJi@i_o0z>#vt;RZMyu9Oio)k{3y&EJ6uSFkf`?G29#Mo5u6V5&nL6beC7tiH zgIzOl38VXFFef<<$krX*dFs~pInnJ5ssLZ{`7z{JH{g&s=^=}Thf&l{0M1Q;Uo`RN z;d_q%C~V-rnfM>Y83qUFMbyNvzwc27iHPZHj_4;Ao3HjZd`-dYbBy)f8z*^cgNsS> zM2p}7G_4FHI8th|&4DkOrTFryFLRm*BdMGI!P8Q3ul5R>4VVW`lw(;Gg!j#`tFos= z*~HIxiSzN_sZOEKQN4^3Z=bv8o#1?!MqxPfCeF+X2kZC>Aq!}XRaRE%3?T9oGcf!H z#fe{E?9vB`?W9({a+#?;9#lu9BWa>=HJ#cBHu3OEBuB@E#(|oP!qIZ6Tvyh%E0J2u zZ^{x8lJgK&!juWO@Kc#rB>*u~XTkEuu!2UXc{m+|6qRsn;@aKMZ%OCKxxsv^drb<1 zB%b1x{S2O%+D+BgO@S+3<{yk1u!=ONG`+6eW-RbfL?>i1R1y5~$sJ9nhKKtq%A361 z!U*SHpU8m`7?cuP8zbryxZ!>6uu}-5_wcR`KiH#DA9)soOQUKx-)m5rfQ}W0gP23> z0$#emIUd})!gmP|d4inFlH(J>z1Uf)FG)G=FMm2*Jj=dR0O3aC6|1GcOW1`~LzsL} zAh`D)=b&tMG`H;UFpXX^N{ zYdEv$DhE7!T1hWXm-S=2V9bKUjP`+ITAvWYx#K4(|~+xD9)Q0?8VLP=s;SRan%-5vY~DI-ojBsAgLz;;L13 zidK`tq@kS%ZvnN3poiB9V=*jrBCOMLxubuIh1f|^4ZruDzr68^Rk)p%LzMCKjp+8o zPjVjKJ&M9fE?Q?<+&yH(k@vu0$M5WyNjiiyhnzLbXUD`IYPWJJ9N0SLYo^g)7w?q4 z0vxk_v!Vn6OeREstPInLqttmkzgE~8ep=@quP)D-#rh93aSNwToNTjQ2Xre{I&!kI z1>V4NgmMv~H~L6fEsj^(@;t5By=QVAoJ5{^&u{X4I)V!s%K+ZZAO>=bq)wEdA}QdI zu?bOCdhEK8@~U3#F=Kjgs?EX`&HSggnzK&u3efO4Z8}%cQ z-ahNX@S-X8iaBa7tNv14;QKyo!ZRbMj0a!J$8X+`7S2?zviI8&ntZBg#~`I`Gr`q? zSRtxXdVrBzIgWlNI3h5he8o=ShI@X(SEo$H`%Hn)Pv!Ew{%G`?>ABhn;7}Y!m$P+|Xf~^J~_3V|4Cvr4=&?pUPYjZtbQ@Khv^i7quBM*p`?kov=1*OYPd_DYzs4tzC&Cma zNN}7(8*GvYBYc=Aty0)Vg1K>-w7TC#8t*yt|y(D#X}*TucW9a6dRhsNs?wR|OM&HuwSq zpH(bcTYbhHPm~T-G|uBwKL)(;MhR>lwO$7}`{xKd^IPqTl~69U?%7uHGxYiLSB^9C zPg#rVe!dw-tfm%F-33rB(Uh}@TLgEaDM@*VB1i~Dvi5kFI7wSLOZN%Bv+_oSalT0J zyz`{@m|Azsxv)DIC5EUsBqwe69@YT*;iaz5EMfeensDW-1uJrUs*m4V>bM0DdY-?w zr0n=c>_d-Wa`W92WkB%DF<~5QK@gdLPx5=Sri+1s{S&*c9;n{>PVsDaQ*$tji|2p~ zEZvivTl&mFVNfr2W+Ca~Izx7@lvfWOAJRzvsH@Wcek1;+7)vbCET7=ExAx0M^jvlM z(Crr7M}yb2PCb8qgevyop8l~z5S_D^k!umvfuaVh*+q6&BzBfanLsL)nEvh8TgOml z$hmCOw0c-8kmaZIAMXRXLY(7;b(m9-5 zfh%rb(+UOF@su6eH(uGE)?(@u)UuUgGpaJu=X|b|_|-;4aI<;O^(KsPF)KM&^)r03 zYeK+yU4Y0teEh6IBHs!U-%F_Qi*J%fT#Hc5OSZ&ApKbC#y}DtVYE0u&8&de@B9}6V z)*yiBzUN3TQyBADnXDmrK0QmSLaD7}9v(QseqW*X*Ow9-%T1r5M;aUF)H;sU@-< z94!}M+VH;cz%+{WCR1c#*Rp=X4)MSxLZ`1|MY$KZc6Py{MPcL2SKlzp&kL88N*0i&H|>`^B|zgWv*Ssl2z zI?Xe4#oNo9d*;keYjFIs#gBbWAU!Qctu-PKPkr!#9-OcNFsByKp8`gJEbqSAM``E+ z5b+FYw|^xNp~*hKR%2m2xdU*9==QmZB>DnydnDrG2%b|cw3!RFz!B&7fMxCfeD5NOJo;ffa=Vun$k_XXSn!_1&QNrjOUV%RZrOZU0_uU}1hM1F zEL_^MZlp}sE=gopB)7KKN-QY9HSW0x8CzI-nyaA#qoZIZAW@4%o= z%zk;+CsFfdpsLaH<%9S|*5btag@+;vV$XSG@j3HwV`caHvn&P}Ki+&GN>rS;OcB zW$8xePwVgpkCWu=XuyqXTnzBC9(K?b&?a^5*1?d`P4A`YW2kEsD9MvxgH4zSY=$zE zt`w6i+La{t3??`9s@j9i{vY<Z!ae=nU~?eud!!A7yD=NX^PI=-kG<6po^7gQK^5R=bKJ&H@`l z!zYv=6m}QHHHqrVak+!V^g^f!$!1ww)4pjy5bAer+hKPpY>6+W{*{Qwt876&JSB!g z%^}#0`ZJ;))vJ4gXhC@S+CO~hdl9LuXxfRJ_WhU%^{I*sv7cMVrj^ z9>;7-9^e=l`&e|S)I)Z7>INVB$vDt(!G^Tupy+)a7aevzh#s}8Dytd{ge-r-Spgni^Z$8=hJOXr*THQke{IrEuJ`qkO6)i+bH^ ziUZ>XNCkb!<(-&)jPiLLeXADBKx{!;O2F>4=1S_7`%J!7-7A$;AYx8_YS}9FJhHZ^ zPj`xZv_wW?vlf%1x7}=NB(6-%f6(C5yXChPrS<%-mHIKr1mKK9q?a`eu&@=#*2FR@ zTmsHTm@87tvoJpeYv^<~-c~kui-XC}(Zya%PKyVCR&DNHjdfO*AmgCW!`?z-5Gey~ z?|y2N!=dAS8H(8@Fwdx`J)|$~e$2cnf0EScmwYi8&rje|@;xoy!EKRfFF8J>e&Cp3 z;gx#81GxWt$I`zzODKS{OGG5yOrI99Frv2KN8X(e5i@rrzI zGd$BBVW)YLdV+pdTE$VCk6)+VHac7}82`@K($bPrnCWEFnyR@j@&RbBb64xSe%xP_ zk15Omtk(P=u-eQ?0IQw+rxKFOp;Z;45R(Z-Xz8>|CjWT4F`nu5ur9N!|LV;&JLOlC zt}LfX;-kNgkWdJ>qJqN`3P>g#gX||BVIBtdzIHR7>x|wXIj2|+!ae&00*WV=Fhpj| zjb}&pKlrSbWL4_zh~jf)0sDmBPmEpFR7%n-wRyeD@VHI40vQqIp4@7Vct+A&M+q0I;0X3v@{h9&oWS+T^NKx*IBfbWAd*=6<+R zyX|D1UyIh?7^R5Jj}zt*B>WAqhzb6kKd2L0@EY;X?4P`aJz*5#AcKS_`>Z!>5F`K5 zy+GY)22R+Qhz0j`4HceWOt3@lBL%oKA!r2|tsn9c0pT;LeHmgYpa(=RXCJ537Ac#n z|HXsQQa|wEOeVx0QNtf%KkhyAza$HX6*SEOv3@@t+4Nic6;pM@W|pjy|5xRUC^Iaq zACUkBiyC!zl119bwpNbP$qrd35iKlvBZyP1rJ2s76dTYd=$hzluf-v@L`0YGz+!(U zudCAB(ac~JwVk~I^^R%Mea79hDhH7v#r|x4nNri)Xu9u2{dQrTRid-N_?l*Z!bOLf zx^xEKgjL)H?NbnmPc%dUoXqxh+-5J{-MZ3$l2ozEX{F$6uI2-H5jnQAU=M#36l>fA z<0Q(rwT`zkm+QQ?SeR)m-=R70ZxMF?J2f@$#pn-Up18&dz0YTb;sh%_&X8!vL*(FM zS$OW`#XYmh9k$a;26lLt(6G$RS>ysc5&83`-vWNKHzY{U@Vp7Q2>lS?urk6K2|29f zIt7iT3OnWZB}=Awag+7WPu@z%yb`dz3Q83oQ5J$*6MPmIrZsd3>sW#NIyRj7Zr6ox zp6V@qna%#4ZGS|7Id86!YUZ*Do)x>zGCo&My$OzQH9w+-2ak)k2CoF`ud84_HTN{U5%!q4+zJ@Ch#Fu97*Nol?skgeZ)YN>K?mffXWe-B0z?le3*#0g^b#k&Yhkv|@bS~edda0;r$dIQ% z7QRe&IetHuQ@zPUJSr508qcf4B+UWKJwIDL|we zYOwq8rk(H8VBIs``gU{&em#0AvcChCoc>WfnoHh%?oq(Ko4g0P_wz*t3;Fm9Qcm!O z?ru|(1N3ebk2ONdlrP{kwjfyP8GRf$@;e_cq{xr87l-;tl`p1GH0|bIz9lvh5lV~*_fY85q+`g&#bE)brM5r1U5Gql zMS)B3)OzD@(0Q2lOl0helNI~-QK#=5vfT{Q#a&`+U57aZOM_RM%fSGV(iIk$OF?MD zNowM#yXSO|jCE^AFV&^OE;~wGo4xzR_fyK-uIB8}q`;q*M_p)6GP~2lTl)%Z>b~i2 ztFcGJB?V~BEcd+K=QKp%+ZRy=xfX#wsG*H3K^nfl=#n33rO~*Z;A7AubdFKkZ{s&7 zU_RtQXzhArJI7ZuWEV2d*M7ZAer#~f^L*BTWFK$3oDC==PK|4OfLf7Z7JfxdcA&_c zdQ&%&Xm>x*R|6m%?IjLe`I3e2%A~aH8G7CpWu6v$vO}lxAsc&^`oo@~d}8Qf)AF`4{sf_- zydMYdG3%MO+S;`kDXfDD6x})=n`f@8RzJpZQDuc`0L!9m-l+Xw<6Z-xEo1)&*beGP@m~=J z@8JtU0MF%}**>{t;8&-vPZiuS@(m37=R8nYJn2Js@*gV^sQ-B0WP6KFmLo|u#p4s&p+p@s6(J^Czw;*EQtt)@mQc!d}Sau64x z1ijzK5BT%*$s@ziuNMJ~07(@5eO$#fqK9z&3fW@-ma#6G<@d1(?Id)U>8}+{h2sFX zn%@uLRs$y(z^(2s{d#ZCe3o{*>x$mH-E5B{fjTXpvaf7xk`}bv?JhO8gCR0phx%3Y z|K`)Le5P?MM%Q|S4^Jaj1&%>ypudepC~NP-rsb(gl+ayffQkwEZG7&enUMH4Hw8Hi zps@lzQu1%(_!FY6Z1|*5K*j=0i~wjD8oyttJxPy?Khgk-U|&U(Zy>M*zm4-d{yQe| z&sY4v;lD@^r0-WP+z*M+L$PWh$Dbc5of02l8ZR#na=s7AQu!8F^4pHnubTSz*5KW) z|J@Bq-w3>g?5jT;>hHawtbWzo{A2z2HE#2p2^P29Lrm+fTN}t+ z>j?&k->f$1e~x+0#gLV4fC61aj=}FIBKh-hMNE!ZrtjSwB9EGQiv;38%RYz$TA-UE zCIG6_4;X>8TOBblX@!uqIbw2C-0Aw_qSQ2KlAYq^FjSb#`4cn z__Hgv#zvr?g5pMk*qa& z`E}n!BW~0c3Zz0Tnpirp>c2Xx$BhAT>S_7_TUl3vfqv2dQ2dO}q&Y@HsOp z+3U_p8WY|g8mq9uxE5pUA9x=rB8p#eN+Nzgc>b9KYXN+R)8h+2NC5W(0Ve4E?UmYz z4-jmk4j_p(iTov~8~L|aEcdwn-2P|k{w$l{Hqf6f^T%BLF_nLFX#6=Q{+zIXyo*1c z)j#=||GzpS^&#|@j4_oJg>HkX50P(F3X6cE(qugqFRs;;R(&ab`pP283q1zH?mZ9a z-M*fcgB+eNzkLSK8hHZ!Pqv-06o^7&U^ao>^-!AUa0dz&WuDH!wFvx$WH!yg< zV#)oivsrIqRLGc8&T9+hLa;Vq3{NQ$9#U(+p8>uW_Pl5%%SldSAx4Dy9!2Rxr0?NDqn_LGddFKG4tw;*o z3^{fv29QuQ0JJmuN_O9V-jx@wXvTt*%Hi5<;o@+G;?89n{6V01`ZLj$9nOqLr*1{_ zrbMn917%`os8VrW?B4KI@_L*b-QI$4A(Ny8m1i} zv01HB1c|g61?4v<(-I(kxiYyyuv1?-qS~&PMyH90+BG{)B%SbNdV5b7l)1%EpvU!{ z{!jx~#4%mkHTfp<0F3%xG8MYIXBgk2-9r0PWG4@(wl*p2zx3SOdi+{8LvW(;>wiDt z!RnEEdJ%plttjc5v|5c zoN3iK`}m;zS=qtp*X@Z=;w!H zkc3HE!z+O73KU0SB#FHspW0uN&qkj@mq@m~9JL%5!XIJ$8u%g-HP27eGHEk_KulV) zWx2xGrlZ zC4@4>Q4^n39)q@#G z7b)@ASf{~ne{EN1q29ur`8*%i#0YUOF9pgZ!SR-sw;hIhsai@Pl)=ATT*X?UtIv%! zmc^<4TRMLfqT;<3wwau+8H!gF*4y{LO1qz#)vZj0LnT@*DRM87Zd$si(O<2qOJD6P z%0pZ+cT|28f8xEKz7E~w52dy)DgB;aOLm68>LryAlP?gCdZrCOwJf3OH_R%t>@{=O zMn5?%#uU%`y^AySkdsroVschFP8iXh%YxHL@BwcjX&m=6=f3Kb)e>7Xu5DRWRA0C6 z`0lB~&SFT?)gIr|xe+X2TASH*I1#5qiL2G`TPbb6N>}tbZWi1Bgy_Cv;GxL5w0+Z3 z`pNnBPAAc!=bV3eQ`r?Mle7A9>He4NGqqh_Okc^jNlH3XU7gLKy2{{xDgQ5R5&%x~ zpP&DgbC8V;4$05DtJ{v&Q(=W`0R-L_6hP$rdZ}vDs|UHu*?fp1hY6nzzx59~#^e8~ zR&Bo>lmE(@IfQZlEJM~oFGrJnTaQ7br%>-QNlAb>gzx<4Z)l3vpyCY=(wk41d+Db6 z)0`h-MMiRb8>o30!#j7Z00uC9+L17zV98K>4C7(S>HZ51v7_+nLF83*3qhxSL(djFX6J za%Y9}q_pt`%L3s8W9HZHb*jg1$Hd-b4YJcp+|NS(1f*JVeJni zUTF6E_SDSm)47eQ*N;alP0kq`Bp1SkkGO!g0`CdTRO=o2W@-9HJK7As&XNxDF13)O=Z-6u<5$ z(2%-(X;g!~+49+}jz_1FmZ`EKBepeo;$G3N*_*P@cSv`DwP%fZ*T1rJxCd0Yj65@D zD@AnPAj|m&^_e9`OlGS6jEvkGJ`i`kB&o&~>Dk6dDNSv`nClT}4B)zyK(SCta{t25 zZ`Q}4g3BlqtY0VMv+lBZPu3i#YFmaSj^m@Jmr}ym{H+Asz)O|c6k+RRq4LMqJX9`M zUfC^^$WGp#`Xz-3xJvHf2uE(|4ijh0G3bF!&k2$Az{sXFo97AcjxWTTF5B19V1odYh&g_fNE{XRsTu|wg0*P?S|cwl=s{zH<_Mtm|9?qX(*Jm zcmRbu@+6TOz`#SvEdB!Kgn$)jLLfA;R_P8)*!ju_(OV<86Q1?ZTHd+y_~dE5+AFgG zA}&49#auJjighShz-tE#ZJw_*Z1k(X8)@a{OzwI{?u{M#q0$R zZ!q|M`M1pUj7m%Mya163E4!B+8yBysmu@F{+)t;U=L=&m58>CUoSWUqFpGF>k(Wj+i&=f@ z{-i&r-BjNY2od^b86@!gL{@4tv>n(C7$svsBB8FtGd|u?qYnuI{9qV6`4i4jpMWx` z8dq<3y9KpzGIyA2t^UiyG9?oBq!uC}H8KfgaiTI#pa%wamOfW+b^b@h@N8|FRMct8 zb^CWy0S2MzTt{9ocSNTyAaD16so`k4VYjxB6s-yf;ll`3LGI{d(AeWKyi0C(ebE}M z8x=*CAXF@8xl{Xd>bh#^H=e?Wv0h5_Y}Vq!#x$K5XaYTa3ZBV;Vs&5%DNgDe^oU!z z2gZI=5gBJ_$X}m!Cy-Pw{M<%jbu3SIEp+6{7XF+)@)nbs+vV@w@R5F+58;navt8U@Wfgwf5q9k~s*VWMZcu(9 zOrgFpY&1{i6@F#1Q0I1a<4f0$5O`W0Q}EDWGulR;F>`NcMxb9A1mv3>A(6;)aA>ey zWunA#D$!(!wNv7=C0{A0Edy6seV67}g){qTK#=QfE6tIubo2^P?aqp>LDe2Tcx&1# zkXbsD5IX-EP))ldWBnq`gT*%VmQz{P+k@~G)Kt*2UpF$=iVM(bh}mAw==FPQ`t2~n zZOBeiSLkNW(apq!4a?h9pzyHMLmLh;Xxnc;p;H-m2x^7h`R4x3WA7xLbF~Z~KReHL z@SZK(?@GV$P>ApnczR!xR7AXTHnf0fkFmw8!UsVQ(aew%0O z#8snik-U_ob;*$L7*tmkG>)vI?iW8vl)!;wTV+-@3470RGE-LbhhFuJq77M1m!D%p zBVHOk5>p)*VBJ&8*h1l8UAa8t$^zt1FgDxq@7GU=zb|Hd{7fW!JJrJ>&Yp|aKIXv_ z|H9LkD`_A}&6Q~-j%GRY@#W@P4hU=EPDQ2?(@W{s3`au0s#0?N9GYq&13AL(p`){( z5nsPl>Mj=$4s~M!H{p6`74M6k*|=cSmtcR7%9DX{v6zyTotM%?Ls!RpHH>N1Cm|Vq4TXBhYoy};?_}YM{=lO$h)cgADE1Q;n zU8oDDAu~`=t6@G-eZ_^I(Uzg0KQ)MpQ&D zyZ4`LiSRBS8>lT(f zQ?uThW8?c0vCPHp@r{=dx~WH8Lc$WAJP(+ZOEHMWEF_22$BR3A6)??-@5}mqlXCX4 zv&l<|UlQ*j_v65UWk=@;L3kwYY<#6DoEziXDzoI|@UXR|HA;?UPVsipJ7x1hyIa#9 z=k*@btp31jY^`G@wFw$H{UDOYilVX*?p&U`l)=|cAsTyLI;&ejFYTW8C#*l<&Gmfx zxJc)EDU$|})_gm(b%283AXG?~l=M2CD(WWP7^$;_>Ln5f=n}8)_NblL7QW#}-FH@a z9_Mc6y-2Ud8?RgRXMjM?~i>lsmY8<)Oo~tre|mWvi7Mh1XEOA~TWa zCfr0cDaD2uSSciiyv9X{3pBbj<(vNoC0sfibm#;#-(>S-PNPy zOz)M^t+G;3D`F%qUPrS07H|IIq8WWZBr_o1o!KD+`kG&DT1(rE{|3l-)fnk}n4t|l#K#{PGyWCCxKEid zxIv^{0%9a?LccoJ?Ij>cCjW8Vs5qFeoK4`febenjUc7E|Z4D`p2P+7Ij;<2x8->yK4T)L>6(hr*VjvQyEUZO z_n9=T)(a#KSzVLG7tv15s9Yt}67N=#YRP8_HQf+qZ*7yE+Nu)XnUdXxJ4x1=3|}(k z81jZb1lfkE`DYNB!$!8mL-n^k~+<~)uh2Hnd{jx&RXqA#GQ`IH3 zA;RXx9Mmp3=2_zmr?x-Eg@}sk_1$;n#l#yLtD+%ch)!9=YNIm*PlG%L-MmdaLJb4n z2MxtaB0-??8I&BACe_Y&`k)1$0UWpcE6GPR+9cs^K-B7T^x;knQ?Ci#B1Q$1FPX{lke)6(RVxj5d$&9L1m+p(B?D%iD* z{PBVqMw!Qo=s`j%i}!mLTYlJQ?DynpZMa~s``jV+ivgSLea9Gzr12Xxm5V6^(lX>E zp{8qItPy*m;mv#Z%9*>O(-_X|cb})(&d+l4l$@tzPzy#aAqWC&eQoYq@%ocLMTJ!} z?Pf(CQcdme>@fxCRbM%jv~3HJiMJsYBJoda>TncN039m7F;bM@qyk?*dPkq<^hJpk zJ_#%8`A$l3Ju&!54sMEjp6M6+E1pZ@@Qa$CV$k3^Q#Dg?arXB2^hv1XL>J`UnR{Uv zRTJVGVd4l%yhWfd>wM!sKYclDPoloH&X&J+CNR>bv@_brj(S75p1^s;OEe&C7Y(2s zZ_H?o@OrVgwL9ET>o<&LG(~cMI*I?}k7|dyE6~fkPxW`Ec9tOAD(bdVZMQC*GoC|&rSAl;O&--mRWi9n>c=+7S zRHf4&#cqvOB}-xViOfMO>J z=(V0x5i^H$E(7>ExIz8qvmfWCX@=gMvLR0gW`tiKntHEQmDMK?iz8~inl(ebp3$Yr z_3cmN%hlK7r5~KKPL=#9XJBOemaqvZamro%BXsarp@V-v5A<&o2K@yg)hQBKfEB+w z(+u9f^0!xq{$O$KO6(SxE zDJEpxsl!xSPuwztH#{wzjnZvAN9D=uM&=S%D%+io6MT+(&~%uBlLVgRj(*@yPmu2K zX?FdDrjvIbC{hccoxhl5`HAC{?WJw5Y!vtA?tGkJb|rmo306{XY%e)cnPS4nv;JH z-K2Za$#ZJ;F{`>JSMHmZp_z={3miDV{+VstuFSeObq^jr8n!UKo57HN|KLgLwL#6D z@LqVZ8rL+Ce-$iYJX8ZVJlz+47u;j?e z1xiJhhKpnOdyhd>go4{J7N?Y(YfgRm6U9n}1C(9E)ISv82XOjIW9gztTU1xjPmuM| zUBS%VNaj`@a0J{n4+NiywGC}0|Z&75v_Td1ikop&+tN|27*Qwx$mA{6=-(~aN~ z=sh6wOfNVYHQYGtzggd0-$Z}aW2B!wHdD*ixNo8l)Zr_{o-Ixg0uvE%IY8bv5Jir3 zfu&7K7S?UIeRz@z@d$e*^UEnv0GRvex1%IZ)ALq zK}J*kx7)p!hrb8=RRRLW9;CM+jD(Pdek;j(EGkASQj1I1kG`(AZ9wH&v3X*dh?vU7 zjFAA!Ym=BzxapBN@hU-l#XS-UhPzrTm`z(9VAwLM)DI)KKbBB-rmG5`(4$T-^glx@ ztrNmEqCMkNWpRYU^O5r5l30YrB%B*Z(~6?=f2Gm<_|2{QMiql=Jd_8Id0ii$=rmm6 zj5(wl!yAyEJ|Y?^`pEQhE3b5o42orF2OZsrR9*NYwXCxZac#Mo(zhId8ju$<)Dao3 z4EDrn_o8d=BOtYj8XZ8%h=A*RieQBOLl5L2cX^?Ec?tS3j_gM2nEH=Cs zN=cR_57a{_6kV2&+|O)eJ}@a{WA1h5aTKE)(Pqd=vopFw1zPnQ3x_>@Zh)`cxAxkD zE-JqSx}WJTLlfK2!OdI&ZGSeMbBW6|Ulv^WC|Ly`CVr4;KW+Eym1{@iMb$%@CGl?X z)EM3#XNl=4CQHuDPoL)3+%nqz9BXU$jn6}&ty|piO!!)7zb&C(?Mz|wsUcTVf%0W1 z1RMDpA$gf9_7T20q=4^=TQ#U!$`||k%y%k}Pt3m8JhL6*@~{*JW8UtG6PrmfJzQ2Oez7SEYo4q;_iH{S2b1VMp#qQD9)kwd*?aohR5Wp%V_ zedu~sW6~Obnp@=y!2D!*80o8fg(jEi`Bg)j0Tc?kA&&+tgcoO@_OcZzdaxBH4Rn9z-XObA_eLC{&v z&B8QTcP;wqBvl{BGfT;c!0UZHJZKJvD`yi{M#!h(GNcy>djv$ae1WJp_VZ(qVUkOb z7GGn1)chx=D2;&IgByii5k`KTv0W$uNWyaiL*HSs;I}y8W%tNh@Jxt%+&RDDjpUhE3@wu;_cbl$ zI(inP8^4ayKcC;`U}hMxf&&tqFUdAtv18q9y$AR|1Q5Vj{FH1T8@jYUtB?td4eKo@TKHH#Ixlzppy;a2`dE8la%@~kQ(rj+HL>d_S^oD1HG zRMigoHh+OIRC064oz>|*x!yGOW2yyc*IZXng5}wHiT1mQh{fv)o$a)w#AA@1(;6Xe zUMjv<{!1xziucH}ZFZxFF@~qUk85w92sYe=B}y61&%D>0Jw%xi7G!|)dfMv-;pH;# zg=a3!N7wh-PxPw}phiaKC1kDWR8bfrVf)$ryc?6Wxf&QwF# zvXBOE^RpyRn2??Un}atmUb_zoLfaw|1BnZawTPJdX<_HY^|@}>VzXOG+wbL~7TsfK z${wD`^*SflktjSlU1b>?MXAJ(S_IZ@(n)zIlkWl(%cb>O0Zy^{3g z1T1CGC<*mYAu`B)YabVa2!pUlp}Ar>Ha>9=&vm_~N}boM!><#f=V2a_R{U!AIdzOj zYB-9eg{`0?y@g)fIZS{0Ar zotx3xz4hu*Ol|1$yNxJmh1eAVR>GXxb>n7QWCg6=y(c+BS%8$&D)|a7g*%rM%$hcr z-)VPhT;Ed7l};?~VT4?YheS>X<3eWql5YRblLZcCs%bbA>6JTxepl|jvu%i5yD?Jm zn(L;B!ISq~F|V$GJNt1bRfw6W5qF?_1;XC)=8_bGnk+}St3Vmqz=M;~Qoa%R2 z8=se|eM^mu<4I8k`dfa=-K31#ovG+0fD9oHXT)loG~wiX;4`1K3dh{mwcq^pE&pL8s|>_7sR=M48$K!*MIjM)bBwEM8x45;zjxG zso^=Jy(rn)2ymt9tF!IDJ^G&?;<`O&i_}_G0`$&9{>#8N3ajA&lMAmSZV;`NOgaZk9ShHw#Q4*=$vuKh}I z@C&kiRj%0ckSm2h)Fpeyl6(2u9nwauez+b{)Jte+CEZR52i1$6^u(c27O6PCAmoeEw?ecugF~p?pF2D z%Ir*gYf$}BbsJ)ls?oF6Fny_{c>>3nV6@#vU-e?pBrY!T{1vUO^!2{y#&hC8&fq&K ze;83bI`hq6mpouvL+*goK0FVA=|0bq-z|WeDLd4e3xXb7_5EW2FFobEV%9nIm$9Sd zI6+j!cYtjGKn&7jP@K-eXTWklrXq(maUO%FWbmi&Yyct!;@l7CQaWKR0ivO=fwWmEVcP z9K`Kc9prLUw+X$?DA3)Nb5QprJX2R=SyNXRS}fsCrpmH>WBorRKKftGw~hP{c5SFz zABAco*xwyGKt^90eMd~pATUtU%hJNX?^egF-#1p`lqFtCb8{#BYyha(#~^u7$=`Xw zP;^Q1YRZdA62^pPVYqM5324Rrf7NOGzt4smn=UP!By{&ai$|RO#>V#PF4XTlPq0of zWC`|pVOhDR+BMK$%F#Sq;s;;n0r6_f76i*pUsgxRXQvIJ3dY*$=S&zkW<&6yY0rP@pJh>JJD`Y<~4g9~YD{=q}roLHcv z6d`r~4q`~M`R!#=sWM$Rl8^o6>vn1h4_o*$ANo} z)?cnDnDWgKQt;Un;bk|a3yf+lY*4;?=8}8OafDFlVjiRhj{Lze&bIk*<#6&fqye?H zBnNUaW?VnQe?U*7(*%|>82aI-V8jzZ;R;E%CPDZZlu@>${64?ku!aPbRXHehNh~+! z4H18GLUVjM5ZkIpQ0IrDsHDB>b;6wu&Rvu=nsS{59UESZ-X1`t)Ov9#))%+$1x?t& zzM5SwJv||H6x0!TFv5pCWVrs}8-hidd((u&IA+Vu&wEN9xoPQbmY$=mm{t6GXx~zI z_xkd9*Rr7Yd_q2nL!M=czo2O?5Yv$yuFRv~ToksKAv%#dDhSL@M}gt><@t-G2%v0& zmil#%07#AdG19W-{%IzN66&>pGMdz=v#Mn#PxO&(sN~Hf~;aDGNSTLm~xFd zDhskE+_|$CY<@c>Z@hf1&Rh1FH`2ejA}*_i>RkAtkr=c1LdofVLkaPX9&FeF$Zb3rn)=a8euy`_KYeQa z<%fDnpu4<`C_C|7yArOS$Sl({Y5iUC#Igx$*x?ad?3Z`Jl9!ecw@J|#4{v(RUmGdY z8_n3CL3rS;T-ZMH;bNC>{Gx`{pX$9 z{y)Dq_!UqYI1TJ$HUv+iVxg-tK0je3N+WJJ|7YZzelSCzsfe2OuwxkDoP&=?{|lW7 z&`E#Rt!9m_pE#7|2z5*?lG<5DKB(9y&05w@slT|gAFqz3dWnOq3`OmUI$u&~ANnLz>dx0JC2pu=A+gG--xUIcqMjieAV_REX{=v0g+6M>WTssul z?YL11qZSTjik8~uw@s;^@R!5;qV1PL_ z)5#|%?9B1LZOx$&E$26pqx_M*@+4pm})7*qxny;UNPBn@vjc#$h-ez9V=J{tagVU98{M1KXE2tJs&-5^5@oB?dyF(?Og z|L+X9ocyb+RpyE4e|-$PPp;GdS5xm|$Dj|iK$&_y^pM+g;`8rU<7^C-3;N$2jzLx< z2%+WQ;@BrCF99!7<^L$dpqnJe@5$wCne_xTaD7kU3ECbO+b+vEcRd5I6Tf(XQF){K zz0^Z@$>MXiosh&@8DB~iFYDds0i{}eaGa%aR4e215WA&lQPf`3&Z+>}G><3f**91r z`4s7CJ2%1oeKYPHDR4XBlGR0OQs)zmqbXGJ-bVrL5m%;e&DyxZY2|aW_te9`mV!`E z`*C%G-=dRcvPK}niOYwcqY>_Fdm3v)VaFhwV-TBjs2JQDap4(br-ViB{(Ixt}N9DIeIeSc+4{!TgrbiDh{~#K=a&5JU zo|*JD3WU?TSf4b%ku9X2#}W)$E}x*+FdXyF@@pCYUQicFWxD#HRQWY#h%8JhAu|yk zwi+GAPE@kVYOA(sLAH~h8|OrK8kHY|{LT$2M=@1695vPlLo_uh_!f=V*t73}+dHFC#$n-86j!#vgK@s%8UL z;YlvzFLd=gUcweucYX{KYa|As`T<21x4>C)UWNcrdiz^S)(32ny-B-B~t827MY zf|?H+n4si{z8XQ4Q94zE@@f8EjY3_T+Ym~o0~Vb)1-6u_7eD!a7SVEgjx!S`28G}B ztD2aZCodM!I#Of7gGKo{PvYN2AH^T&A6z{Kc_J?A>#6BjRSquA`a1MsPEmw^j*{z01`Eh$HZn`;O(M!;xz5W#6<8 zCS*=rXvrgwKp?HM_rJ}{kFU~>xQRV%guUSx5uWx2&+OonMtm!a0-Vb8eKRNd_<~-f z>2AWfMqt7(2#6G*oM8T{_m^Xkn=lFAG@~um)4f=X`9PAxt`k`nOrvcG{he<$spqBj zt0AZzTI1pQbAa)WA)c8W)ToG`V=~?rQNKk!Hx3fUoy>Q%LA1UivmUIu?D;Ka>&yxc zW|6m$tKZQS6M4P<@7#qC3l7b(8U3j6dD+kH=W%wCtEgj;NW>r?#PE|^;0J@7^53J> zQiAV?L2r}qP4_Vme$lN9bdLzR3b(@23J@<@iH?ipC%?Y5^g%JO?{4>j@t2niBRZz< z#rohy5K=RM@VF|KLpi<6biX_7eNzkJ@)swc5de;}HCaVVTZd(K;}bar3AcMPRt#ndExqI>~{Ae^QD8g4y08sa7BnDlEB#0NIS4ZdTnf??B1;vLOpEl zpFwSW*9EEsU4*=Pee!AmRjckY_0~54)p__B(Pg~kBIm~U$?al-s)yEhyLcC555{hB zCw2i$<}r&$Q@czCmOp%Wz$~10_{9JE9A>RnLUyaZ?c1PtsTd|6_Dm_@Mvmjg^Njfr zJ-9kB%?{t5(YS}O6QZ>3SL4l>+7NTb?7SO2m<}it)DEBtKxyx!5}tLBDP;!$rT_I* zjuIP|>ZcIe-jjwtf{WLxI;rzmk96sRdA+vi^WvRbp>40xSpLH|aJ*zhRo(UIW@7zO z@@h^>N}Q}vcQG$j7HkyU3!Y+IjP8{X?JIiK`)1?XLsDh0T5Dl4PWl5ibjKbo(=G%Q z=gGBSB)EJUSLU)RirE_DQz0a+ihpH4IsqHa7T61a=Ot`_lDSdvO{rafX6NlL`}cFb zdXvI00}v?(Xf zR%8$0q>ex%*}w0B{%<|+e+}0k`!94r!Ed3~x(riaA+<&k4Ws3H&Wy9>C+AjEFPmUC zKB%Cs5tgtkJ%`kN+lVgMgG}?X9M#^^QYL#-LW1Vr-Uhs_>qtW#s^Y?O0 zj&=!YKx5-3Q_WQdbyZZG)DS^XCV6|y6=s5MPbqUT(u;`K%amqLpmRIW1d*tOHESnc zd~}})p~!QD(1x(}bp>nR9($55^(Fi%tGfK^dK{53zE`2G-V#J_Hm$Aw{Agsb(8S?0 zrf8n%imONAY{pj3w#aXoP2|kVXx7m69;MU0jU=m(RWquQEJGW*xH{Io8mL;WTkf2W6);~*g9*7uW=LHfv}B&yCip~YzF$& zJ;BbEnW^C)uYWL_dA}ooeC~~+FVvfxqfk!6Cil)kZeS;ouXPt8;El&-{Z+GbX4IJm z&weQQT^|9O|NR(7e|<@?JqCe{+C718g~=x5H0M^Kmv+>br-`tG+&jC|VmfsM^bchq zXpLOYLySmb`^lgR2)1=k{P1!JJK*uLqH@0$lLzyNXrNf+8lw8EFK{RF2IBWWo=mU` zWFs*{=@5%&FhkyYq_mp{09DqSlyS2GFvK4YnaOOqk;kB0L){R<$=biUw>>C7d8-ui z9(W7zRx>x6jqEUt{Qda_zu#N;V~z!3caIF~1@eRlyW#Es_~i?Zgrau=eS+>Iv1oVT zwwHSXL~$irax5|miaq7{H(wmSuLhaA56!?K)*w^f3L)aep*-kPz*pGb9U=hH|3B<~ zcU+TOwssH|rHay|MFpi71*8*E0Ribkq((ucN$(I66&0ik2q+3s0qI1f*B~uY6zRQ$ zDm{@FNb!3;_Z08UIWu#shzOw7xslWxh)Ir-6~C zw!a(!&I&pB6~xea9^gB3z{QejEdJZcFx4)tEmM|RU;x9mteGc(0hRe|@ZHz}|JnB^ z@2o~Z-ex1Ez6~Md&w>B>Kl^`u;0ue-_o)Ed{TzYwepska$Pws+*45=3Z^{m}3O>3{ zu5Cm;VFcJ+S~o}GX9-s0^n|*&DFu}6@W)rMU0|+=hf;~Bikj>nMe%0mX*-t&qn}2@ z%UDAbPdZ7Mp^-ITj`DM5IA)X@zP}{k?F){U=>**AC_wMlJtMpHt0@z8AP2}=y{;>q zuF(Wezrlss59=Vc#OcJ<>v_2))5gkj-h(gAuiQ-;N+OexJ6kY-w!9@)ZGsw-Ox<-S znmt|83T~0M{`0JS1?N`YDb^(ZHb*1gQMGw(NKJyz=Tl_f}P?0|D|)YKr}~pU8@i1JJ{1 z9%@%?ma#8r`(ODAu+0kHc=){6&)H%QY|O<rNxQ#Y%(oLb>6oP}0s!`L}wUr zE0nsA{P`#A;q;G|jOx<&w$5+bN#H+?hd-^hKh0(OKh5R;PxmQZPK3q_(mDV?RssCX zp2X>8-O%To+5c^?Wy8Qp4(i-ASTc3|Ny`4a_GnM3C;AHHtb+}Er+cowwal4$tiFFH z;@Gl&lc5Kj5AB)1{Gn05?Kk#9M6uJ$c0t2uINP zQ?FT|C`CZ@Zz-k_`(5Kd0q9=j;^H0b$(Q+DPo+CGJDfr0$RJIBT{Y33bRq!LMAgrl zKC5&x6j$>~#$%c?fg^jkMDjf8YQ(0L`&i_1p4?ALZ~m zn?Fgbr{C?t4J?OF!w!d|$pBgRpqXCi?3)jbEZfL10{W8_4O|c})EIf4R)Y zjOR5nFAYh*QAHGQj~3M-G>S>Cc~5yWOFpk1ReHO+trA=h-c!d*R=zabRnnBQsWhgq z((1j);NboV`libY7KJ!YRIWEexe&~9n8I63kA?x^{?)8;$Zd2?s?OlUalJN!Ie5mr zSju8~fT+T>om1Kzm7}q!vY%geich0=vIqpv079-Hmd5X^DkIwFj?o;HBNNa}b>! zTji^EGmIz`GqDwE6`_0Sd9gCwU& zoh($^R~M`mvovG<-bw~4zTR%N1*1)6L-cd6 zF-y^Wo8p&qif#~n>47!&?P@)e$n3I{5Lv_9`PSuQEpw2|%7t;5THajT78k(M$rRpw zrg(WnH53bBQehy7>A4EE>`IgsxT#}Pxr>jhc7?a0JYfJ_JWEOl+(o}zxzsTF z=1ui2G%4r!Jat!Yw^<|LxzLoPXS}w`KEHG_`YMLxyRdHNpsy_QG8|SLQ@e|52RE_Y z2MArQbNK|YO0v6FJI61F!z)jZfzw$$ZIG}&OavT^L-IJ8I3mP*j`fK8(dw)d`HNIgg z2b#rQawC(oSbt$xW=4pPv;E{Z$GXqq|8W%Z3~6bTZP+Vhb2kE%_dNxRWt!kG>?}Uq z-$DSiU;hZ+>W1$UrS|;znK`$es%p1unwtlBcle7aqJ3Vf9sD>AHseEoV7QxR4SX0t z5Z_yx%nGY<1+Pif$O~=x4z0~XM*RSsCWx-T&IDbkw%5vX359<|mg?mS!NrD&OV~X?vVBt{HuYOVK1^rX4Jpb)mRw1BrL@vR{igNgo;uf)M3J zx-{6A(w_YI{4{R!6zg(|H-J`7$u+G;ZTd}Yb^-t_=bV4Ih5;YleOZQBHe!N4ezOeT zz7u~;%kba~l~!(3D+cb6NtP+DCPMLb0`|N@?Y(lW&CR{H;f)?M!XHm>7IJPm_SnL> zoYhWObCu&iM3pOJs%4mpsPKWOi^*RWQxeCs6g!f=Y6>>}#F421Pr`EtW3*kkGP9lm z+}1m38jiVrJ16nY5-JlrC*n>%ys0P@?0Ts z(2*H-KJBykH`5hJXaG~Lm}0WqXHojIDfUyA4sAje5RG_>9EW_&>x)Dacaka7#*l-pFC%vCIb(+nt?>Qc#(rcQ>rP1cr%4(c( zol`_vAPk*OWv6~nQzS;%_PQT;70`l%)qF)iVm3ao2rYHjbrSVRVnp5gDGAG_cfP6C z9*rIyr@>^|(x6Ei*uH0kc<2Lm_{8Vfhz|-yVvS7O0DN)=#zdtf zvfxsy`1o5LF!dAu(oAAtTg2xr_GLCG&2;C(aYmx&HFvm4HrB1l{y3daH?k^J98u8> z7tgX}HD3Lau!A}(Vv07gY`eU+)B#5lko8EWf+4bY&Izk&G1sFL%0ckRc$vijbZDI* zqJLb9V50k)$bYIUpGRySyt%CErM5QdGV4U`3GvuYdA{bW66UQO-;}V4e$z%2%~%oF zeY;$)mM4i5Y3puMmTdQ4>Gxe=lC(jvV^*7Mi?C|PHx z>RefFICb@E^RbyTc#W&C60}$8x+mx%EA znVV8UWhEO)F9bEe$A2t7#o1bOElvi!s)K;N5K`+Ssv2s$^Q1P;UjG!sgivp(J1`U2 zmZ)VgWQug=c9|~n z?%l%^r9J46Md`{OOWMnC|rsYdS%dEW}7i^qT?ccE)}EDHtnAJB>cL5i4Bxe0s-ABMkJ%@= zgC(hMA1xV1yvr^*T;Pq+%6+rf%oTYVaun&n@&Lx;GauTt8`PLBtY*3l5+|gM#-#W1 zml6vIq%8*``Ud&$#sxT-;yk7^siK#1^*Dw`3k45joxYDfG&8{&`Pbo(E)AbS@a%@QYby0>_afHmw<-FgWOWLP zF=u_zW`Ct|a8U_rrk?-yBZKaW(=0>%S(aH1)L;bUX=6CzW4`Fd5P6G?l$mK0epOrC z{}Yb$pT}FK4Ug+qKPk9=G~VHg(c;xf!$I&Bq79gM0peh-YYI6zALX7j6k^doVZAh2J@em!GEM>U@{#&>l-5{x$FTtDwtLe)y4rOlOkJoYm|f@ET^r`8Pm0?T>+2Z z{0!Pg_pF7&iop-4U@eZ~De085%EtWyr_YBR;?EkdxizAaelNCeO)~t8x5`u!hZ?DR z8IHxfY#9xxTs=;pi@D$wWPUtpl%UeMKo(f)EJZvDuxmho@ovc+(YSWO;?nSIdufG6 z)8?vyhY4P|CIQ{_K^;vtfq&pY z`n%l=e-yM2tt*5J8hoaYSVnSw_Mf$qw`6td9E+X)qLxq0AzkbAT6aV-9y_jSiq7N` z8kbv&^$vxxJNpk8VnR;kOfj@dxn(Lpow3CVEtz)9MqS@8vbpPK{n)Ufr8j+j5pn-c zyD%=@*=T3;5GWnc`i`$^WomwpOXBzR72SWE?#THT5w;niavPF9EkX~bNjEUD7wL+6 zIB}4lNuVjSMh~~qu;W#}_6oMeyUUDSM-NWi1B2_h$u2z{+wZDU8wbV<5Mu&B`7~X!3K5q8S+-Mh2rBJh1INdmh)%CcFWOhL@b^K zH{UYGUed{VRchD}d}39a!|`g&0U!YZJwTS(J#Tkr+=|~lsKn2hrMeLz~MEi59u!yEM{rSOOQ{my*SKZe&vY++(Z z3@7=N5Ii-T7CW_fT{c9Odv!%7dV%Y`K{{)wo>(=_x_qKk^876|8_#N9haNdTMCJ#Q z3(;^Ac=5!6XBsjEz_UeE~Y<$?<&&fSUg@u zh#dGm66f#r6&tOiS@P?zlS*zFPDeIXH*<6^tUJ6ogML4_ISK+>;D<}?0@YB#`zU$0 zQie6+SkjNbhde2STeG<6Um-oQ%_ix1g?TeHr!aNiC+h+Whv27sUAal?6JZys3cHNx zs`BB^>|K>9Uc~W95cXr?d;n5p-vo3WO8mTO&OfzDc+f?iKxpY z9$_I103`;oO-`Dv0%dwiU6`8n_#3pJUqDeQeI73*t;Zw#K6}iW@;bJS)N={0omU7$LDhRs@hXV^;8sSLWxz2XO4ubFl5$_1sO{ zC8`=QXMw~zCA77R-Af=8b@|(q{RgEppWFMK9watOWq}_g7&NPo0$XpS>KskhySn!Nq0I z{fp|iLFmZNidpfTy4KHXCp zkbPY3RRFlYK`+*fkbryQlN$;YKg=|&n|YF+DZH07u$?DDH@DCqU(yezltCXq#T(wY z($E!ayS%Z+8jySepO$#Gbc&(rZOLu>)Q>XDbjBg~5gzbslw7$r&Q?fR%^n{8?uWwz zLJu?fC&s|&?i!&fx+V-4+@#Oan84SndkyL9d@nqmzp-*#uK9#0Q?9hw#`A=GIbEff zwQ42DICoGl?0IGA&*oT~BMwB{p3+S7JJU8V-r=PUu}Fy!TRE(j{kLZIANgI(rFf&# z7MC#uJ+&Krn7Y?l`&6ipFW=GFwUV8|Cr^<>OC`IkJJ2vA8ynAfoDBWphG~(U2FuqN zbgi@N1y&_vlh@0gpBpD(D<|>m(}nTzpE+#@pwToHJ#)uzUKm9?z&wd}VCSJ<3ep#c zC+=@v^<87MY0q-z=r}6)FyfI`&ki@mpYjyqHYU~V>N4pb*->>9eTP>m?2?cwD1j6e z5(or^!r?}{YPMdha6f~f$Nrw8af${1=w)RuPn!#2@PovZ=gmiV+H?-v0PA9Z<1XMu-ilor^Dy#V_R3mX@lC2Ks` zsxY^BMSQUxyHof9;V>Kc+6a13&AdQK<}g4Y@+tOrM*#oX2_*6@RaT_r2L}la^t(c! zA8s}2}*bYK4vW--ip$Yg4=v{cjDA*YV>oxzz^O~JEX`Ve~ZHu?h5oFHIL z)SC{G$Exwat9k=}>|T9>|0vH;7`tI&YDoMAQc|eu z-5dgV=k~EC$r9G?mAraacnjbXkM-)PkD{{ofrrss*2ztcKv_CwcO*_`^wj%9J7CA9 zIfssq-XHzuhwEUaL_!uZYkC>NStsEH9#QhvtJ3Adzq2(elQW!EAHo{TL{tkFc&JuW z4}S1>=WMaoY13qon|mgDG5BtlCw7tvu3qS9QCc494p)||2I_JYjEw9k?2x-j=cfnc zmaEEJ#+1(y@e`bCtP8L~KM#GuyC2W7u?a929(qI5q7Hg~vo04ooVR6NOAth|`AUV! z7fj1u7ZE*vc5c!q;ncYRmHDGvFU|9;m>ajA0K}fGb;@uc!-lV`w3s?I%kR!#Eq)h!^P|cHTegD%9(4#Zy4IcKW2>ZCGpx^ z_ZVE>4@tFdPTtNShY|a&lgUBYjXcwaZN>4~d~;-w!Fyyh*IVia>Jb2Y&eJ%~QDje9 zfE=gF+P0Ir5f{kL1#C1f9I)|(FW_lSaZIhy45THu>)fB+{-px~z6cbFB@S$b3~boi z=%VPYHISfV?x)+}ij#dDeT#E;Vr15q3UOm9W<}RR)We6@RmN^f>mJfOo3T)Msg>z86m{aFqUVG`T*Z1L#IrB zylPh@%bNBM3xJ-7z6rWtbM?nr^5(}`@&hUH@~b{d2O%ERzFvGjuM2Sj_?}u7g>EA24oI`I(;$K0ssU~l>w{t6gQi&%3Y=Aj6hvHlSviMPn zc1244mv}5O-1jRg6y#lg9=mde+#NDK7({W-xI5y$s+&Ol1VTJW`p@3dnl0awl2fk8 zmnB*RKO7W2!B~9c6ODFBsjb`aqYG@sZI8}9&=v%$8Qq8v0*P&0*b1Q}zbK2DXo0a_ zn^0^VF_+g^Vhx7xwl}1?->=zgOoHCZFF)F07;<|1*#`SgUx((3*qyJmvyUolT_lJohkkzt=YKa?fcNsK2-K>rKz~M;OIb+ms%OJP1h6qX#8L#+vJ=EDhskLwZ2lrl(TG}n5*td>*J|WpAzBdqsnEH{S)ftA9~NWziE3Sdb(`d9Ky5Yd5heSx<+Kjj*yKg@Ir?sE8oA@JbJ zBN6PxwE2cK>9;Pr)qV;JYF2qeUDcshe8|fveguf9JdL@Z(X}~vQ7KAPFLRM*u7Ogy znpJ_GZ=c$Jhv9~E5-wA@3BEac8BZkHz@h=`jUrULQsfJMwt(9EQ{1A_mKTn&=L6yX zAT{g$r5=+n%WKEeIIOz*SWbjO_#_(C?T!|72eP6-&`L`vYzEZBgQP)KC5M z-;qM?5C67({`%<;%)qAA9$SXeXI^lWBpGueCcj`}u83nBy}mcN3W zR5>IdQ_4$bw?mR)6xsI!E!?qDg%2cZWUkA7viqdpc*Bm+4t?sJ+zsIV z`ZG_T(#^3k>&z>H^w(k<2tYPI4@q$`C~iketfPWPJ>+fI3vZ$!Kw{Yssn}=By zsdrx;YqbpmiO9QNeO8uUvZ6#Xs}0ldx$YAAbnwIp#w4LkL=LqRS=<-fSS?(mJ#{r{ zzUfG|=z+Eo+9BjHpj99a$f2zs+*lOiBtcvk5-!Ph=)n6jx;H?Ct#_cWbSL?+r$Fu) zJ{?M-R+|a*|g%mf|!+u0{l4My=xq09V;67gz#N2F%r}* z-7oS!lKZ~VZIM0_Gaan~i=IhFer)fXCptdIa(c`F{~Xl3`|qNxOw9ZCU!BTnMIOeZ z1u%dkqmVr0qv96h)IG&sAS5CjKHm#1h%gEMBlaLpa{wi@gV5}QEVFf zV7k}G{C-&;{T+YXWtI1+O4ypnGE#}^we$k-9z{06k2IClN#gC7hF}(NAR;@~-feF; zM1wqBSrjeg3)>`FIr_5a3|X~Ll>x8n<6&4gviN(&^oyQ zeI#Q*?x4&ez1oI5bMHC%ku-H&?xpfgapAop2wSmrF zBJZ|bTj!0H-ts+?Y4L2sY1<$d>8-UWyJ+0hUDYp6wWZ3FnF(R_6C59Korllc3_WzQ zETwBp6UVDBhiKW^NWpsLTfq1D4->m4Nhtb&*Q08ir^Y?#p6z{t13YD?KMkyx67nVi zyWjw^VY-2O@?MF#gsT_b>U<PGws&hN#89@3!5{i zUJw_r#N~r=GXa|bw679;_U}%*KZ?x!_rdu7RaDXcKD7>le)P0<6&$2MG_Fdl)4s&-gx=En#kNu(wU1 zO(}P-hl!=C!TCfDg`C2d8f<0{?th;W@VnTn+2v{uk6CHB92gVq$WHHjGKnZ<3YxFS zFbh4T3Ogp5M2%Qpa(k_sq_CfiA|7IoIq^12-xRFjExKu{pyU3k5}+cRjnyc_qZ->y zNCmX|S{}-JUj7Pd(|hVd3g@Sw;oxR|rT)?^#UrB%ux*oBuC4k)?wZlMg!^1sb!&Z# zKrQVsTJ46%CKLXPo7Vw3dA!6kIY3{ zw=j!+)d-5oI-T-bLNR{6dD$j&(X~i2HH6GCb0#t=r_Y-ccHyf0g0ZEpS7HgNOt%|n%{wnr7 z@QG1=9&igagPJ&_6A{6#33_Q{bUwSDZIP0|a4$m-VAD#CpX~*p+%ExR{`u_R z9Bk420Z$F=xZ2&~lQl^;G{dSnXZPnP8#Zsp7`({eai4J$;L%z#-?%bLCsX~r=+rX} zw%flqc1RZU@MC=OTs3uSv#xu+=Pjc*1F2xuXUCE%+(r~zdC}>Kj z>n~wXd~jvP8*m{0}5`zCdxAAtvw;t~vO-l2bhIs%Qw+>Y- zzaodj#MrbLJ*mb?+guY>Bwptwizv5_^}__d~f#A*Efk)cHneJ*wt z>D7FtL%{j*#5|l0XE?sfLT;*d2)P1q;XYXE9BuW^!3m8^`R<~6n*(C8$U9Un;{0TF zEYnil-f9gACm+!Iv1HyuAuOKbm6)OGtqA-Y7IOd_LMu^Nee}|MGvNiVp^sB z^uYKk@Og;ndKEPe*r)*k`g6qf$<|w$(booUC8o7}W_fB^*rM9I3tcat>ZEt6J3wGs zd!VB2ycKl+UNmo91@_n`|BFq!Zp1(tq6w7l!Lf;>3osK$WT{pI3p-pp66f|3 zzor-VF6e&emXG`i*(2yD;}(~igpVE8^cbRjo+7}ISH=MWU<@%k!kJ}J&lxA7eMo@g z&LKxdk#q@*4{gjxVDraDDA9wfBCbA-`(lp{W(h68tcfF2sJjq{0x!sY2xA@Bg{fyD ztn6}@l`mzKTVqrG!%=(vg<_rA)o^xSY$A3?w(?Mu4=VEQ41?)qtkt|eOeb> z<@b8DfmRRD@rli(JQPztu$T|197v``ZW)ZQ1nw??@{GP)1vJj_-{%?p2i!Z_jBnLN z4OoW>Z|v3X@rD|8o#XE!X^xyigYO|uSfE!o#}qV<^X)BbqD6UEZ=jznEnS`Bm!UlO zwPe8r;uwg9y+Gb>oWkiu{-K$HR?`oUb$Z8ywk%;11Cw3tiPh>oRI`D0U!pYN$>>u( z@qh2d*nKvsT19k!$FE3?lO7S|h|ID`ARG8hsHxT)!Ndpp>qNl#F!(`y@;%O(ihLSI`t?p|hab#lC`Fl}_3T@ym_B|JAl1#?ks z61LN*y5!D;smp7F*g<2&`b0bR;EV9M6Ikwh8eAYo5ZyIVhW2)AwSLQyAr7wN#vhkG z*tLxHt_li^V?kbe2sdia1Yd0U>M5c(?kK>6VQX8SaC}OW&ybZY0Pr0!nrdOuRp@TSxqd|;6?8v4Wem-p0u}1YKMGNd`PZd~H-3MO|FUmIM+VhM} zmwvBB62_^1(h0Yad!;{|;&SlbeR}6qxmVx(Zp@E<%b)ftH7T2wbq^MlR@3L z7}l+{4(!AjWZw7?C|<*o7?PVK_&iPTr0z9f3LpEM_Rl}^mnJD@gwHaIiVD--t(}gtD=pVH_vTqeL2W$HZ z((2lg`AkHr1ekv@m<-+tM0FRyrARjs9cCyl6*-|u^66VSQ?;UJu4KQfd>A-5p5Z6A zi3Xg!{6zOD*nM%8>p08AsyCP@rAJ<-n1?){awZ2HVDHSC17qG7b4@wgusc=D0?6^w zq2;b!Hz6k7BiaoXSrjX(&gzQfEy>KcwGUsU?H4(r&?qMIZf{Vi>C$HV7J-s%Vd70d z)tB8qB=4L=kd%oj1}T391+Oo`;!3H>crZ84d%2ElS*Cc{Xz8f0!A6J?k?N3az+l>g zYTf?kxf)6f_$_PVk2?PQtdc*3nHO^&IhpF+pmr)CqT^9Hr;=s3fd^D@GDK{BxKfWXh!Te^LvYCeEjYN!jId~lvLNp54XuZ znx|UGRR>-ptu}kXN?gc55thdz>FNpb>0DS(n5zpIjJaVD8EroeiLB%3Jx0(g zaTL7H(sa(!?Y0hxtmxv`mEZg;qI)z zm@9}T>X5$Tdvs^+uJ_gx$_qQ_i@}PT0;ImN0A2Hh#=2A8n-$NTiYsEyBZrvQ5q5H2Kza*f5Tt3TddYso zrJ#|WtgujKKf}@lWv6S6aLGuX!c0Qyr!!Y=EdbCrn#f3iNVZdhF%%%?vYh>888crE z@W^6-S!-m|y2w3XG!*DJfkAE}*E=Zyt*vuzpdV}wI`7w z^y55S4TaEc-FPj59F=~S<<1N(shC1I)GvK`oU5p!?quEC6HZ&H-c^NNXsQeMy_B+o zz?=?U)n4>*A#{f}nmc{Ic}E=~McqR-5Oqf#p|TS(M1UA+=VyTuE7?O0mZtzg*dbF3 zv62;uUu4aH`$~Avz<07H`xm)o3V%Z|Nz+eSeQ1;Z4gt9jBlo$$KKvOZ`gvAe-Nm67k7!5H*1zOM??P3}wZN}Tk;FY(0X=Wfgb*`(y$eUzvBhb9Xfmec4 z4Q)3}<%BDA)o}%wjWiA$(;lN)J&FAwo&oPL__Br8d{qOT4r?xe;Gp+U){KL%RPU2G zu?izK1<{ichw>g4*ym?-w!P$j5>aN+b{SAd!=cm9h&rw0gSdx9dE>8z;tZrU8(*kC zi6D>P1&eqE`pu-21|qYUQW9IL^E(FQ%VTcDO~mVZIVFOO8fsBvC-Gh}GD&NQi! zLHpb1L7+a}FYIW4;ppBwop5fSY1+bZuEp_0i@EKimyk;Bf(Z$&auRpMi(5~(qZ(em zig@%-do2FKtHE|SOVmTd*>ZyR{^ zg)g16t7M%VlaVv0_KF2&s`dG`9wl+eB9w~G!0U%sfq2^9TBtE>~>)o zOmYeAO;2ZhV8(SUf{KLPf(=!{?xvjyacC^-P!Y?k4ECaHr%k(TQ;%dRMXHz1L)a1A zj$n=&)@-6!lhImv?Rj=ggd*LTuWGm)c?qW#UK$X5#?;a+YB>umx%9zjr!cGEA@H)N zPavXukZR$G)+83-JDb1<;qE_Nfi0!&ynvVV+h$baz)+anyc{+8T2V<6+jX0Jl`jQT zTy8!kQgpoTJ-?Cv378e#=l&?4#IIfF_xUOQv-u8xURBU)IP^BLd=eX4*93ZmWXl zJnT?XCt@j;G%|3#A&aDF7QQa+XNj;)aF+Z@v`sx zgWW#m{8z7kX_ubopY%ufQlHb$l6i2dV(<8Qitzo>hhoM*O4qQ|Of+Ff(_FFyX%ap` zrz*#t#I60+QdL>ruSd0A&HWgn6vPE!7det~dWY9w{Wq^lh<~as=Jnx&aFbn$PYFj% ziFs2?v8>MGW_?_l`PT8r5Js^8x#2)HwGYf?*<7_0K-)OLQ}RKT;Pp8m-hNTFVPkio zO*oSKp3U95?R#$x>ts$cYp;<;$jfiI8AF=Cezgi- zeO&#V<{W)THjv0b-%?ragt&r3rfPY5tph&YPo~ZfzOilnO<(%2`Pcu^W9;H4DiW1U z8X6#z-ik(_Sq2+!i3vkNJq^CCdczU*F6ZM-DAkqgUJWk*2es5e1Eb*nTH3JraQo^`7Y* zfo=K0BI^zyj}U`KItXX)^QfrPeNefO6gvvAFic*IYh{dP%QgD+NPY6IQYfsyQTUqa z1NF%WvN)v%;_wc?)B?sAsmQy|ezw@S*Oskz)y*;ibq*W1){IEpa3_egz!s@zEL5G! ziP%k;%=@Y3S4&G*2GBdGv<)K-qR&!218$_s43)B za40p}?}LlNa@WVR)9cNFrh4uwN#(58=RF0*3$s4uywCS!Gu815UCg()iGO~Qu8*0B z!nLZLoTm7zKeAgMkc3jOI|JZ5h0Jx&C>i1j#?KlshgP85YR7vLtzy)cG*O2t6z z0}FdLCt-DUA3jlMRzquGVHYs{>gxWr75}%673czivQNl*OseTGQ2%r6j=z(Y{rBRk z{<8niB)`tRKW#)`{Pg>n^}kEPGn4$8Zl=FX=^M7^o2&%^UQ}rb1M1*c&}UyP)b9J1 zq1E~75Zz1^C0K);7yext=RKPCY)0z8BH({b=>K0G+jCp{TO2xv+J-#v6@+8LR}lP) zn8%=34c~Klvw<5_BYk&m>!c~q5uDlt9_(pt|D#G~Nf!qgwc0L0L__ot4H|47EsvUB z9+qam;sf#kp>I!%54T>ww%rF1h7fqoQ_RI>`2kn*qurh2t;fVN3^V-1Fyg7CT&k&s z!nwuBPnFcfwUn*$>$ng6YnHt;td{02-OBv8X<$(hR&roA*?^F_79rJoh(p93eB)t& zQLM3|+U6v_4%oUv2(OZ8Oe1 zXVumKxmk=Ie9%vt-potv5Mw`{d{@k?f97(v_}=ow+3_Q?8y+&jdql^2p+~`Nr~|%-;!3XFeeIz8PMA6#p8m z)Sf#_Ow34%E&e=^uIxp=h2OL@<6~Kzs@a}OZcJsFLf_dm*t@h)HDUPh(OEUe39uOY zC0(2iCkYJqkDbZrOGu*`Vb54FGk^T(`MdicGG2Z5`F>En=7x(3dGO z;9G1{oxWuu=QJgpBVi|q6hpF-=?dVogx5KfwLt=W{i$N7474tj3ss+ZiG`tuQAA;b zdhaP1qfj%7d3dc?*1mbM1tT-!?@gUISr#K$V7lEIE5_51k9%6s(ZR*m8Ra{w135b! zp2;c_{svhF=Kv7V#*wza8t}jOhy0`8|G<9l`h%VXnG%G^4_51dWYQNAjRl>Dk?-A> z7BRaA@|BprNdTI!e-NeJqWh58WMKl~*_84y5#>)7*cIIWg($`*9=iJS`g=xAX2oWO zyy|0W7Vla-u>~g)xdHyu=;bZ~1GbBN9ED3ucEHu@d)ql>W8K;Od7dw8GvtO@V=Iou z%+(#Cyg;y{LXqrpDB6}4iOk}M64pC6%OAVNdTtJDhAd_>h`mKvk* z#5|x16B~^N;QlD0riz%GyW7A?Gri~cY^D9SRW{JCfegijEq7w)G>m9cmE348ui5Qu z7Obkadq5y!=F-rWlU*0~+kFZhD0FH`?FS%luOl{DqA<)^L=%FLC0@4UhMtn&RqLvn zi{xlx1ZjOsn0RoK6mkmkaDtd!C|4AxFK@p(udYZTE~vZ(7eOa3Y7}KE5BB> z=8?Iq&;JgYUa=-1k|4wcfpdb5-nin!|_}Fb-=>!~n$VT2r|}wjO1g z(WUeX$^H)ex=`50!%~XBL6^k4Gq6z&5EeErZACqb&VV@b=^w3e1&8J1CEySj_W0Zl z=5$Hqk%%v+*V0NwZQdd!Fq}mGoATp%`lvjh!4Y81W@PPf_1DGouLD{CR$tSf$Qg1= zf64{;yr{K*O7#jDS0OqZ6>0J&x|`DB_jlHJ*3wWq|2eN-VZb_{%bhRTk8VkZ!mF53Os z%dW`trH-lnCsN*|L8B$|LE4_;o~NK*$zB7W!TAo)ZRDgtY@y4ra3SrKd-O5_93XE< zIJpG6cK(FT+HtTjJMrInPMfm3{@9m&vc*%$+rqJ<5&L0NdHw3yjmoua%@Y2)gl!);f``n3v|NJSUTKknn=>*yvMBTT0h%pXk4K3;kDH z?b(~(w$CPxFPKO!ca)GNN)g3YqsFrOe8FbqGx_iNoO|{FB`|)NLEmQ4_b>htk|No* zmUx_?Ye3+-siZd&?*5AI!NZRSvALV<6yAlD#H6CE5$CE~?Vc|F-0f_UZB+{I1qLIi zrl+EGk6s``my^jyCZ>al=?%qX(ScQYXA3R~N2}Si2~s+xa~9V66{PLX(g#=Z9+eIG z>;zHRKyEGdbnSrM8;)j)k8`_gmFMir+9++)!_Q9ZIdOmY);iXLJuNMNzu0iP z!Kv2qW)=KBq~k3E7@9hHr!sm=!)KQ&2RW1M&vr=DRia}N2Q6&I;P!aE+V})dO6fJt z{g=c%?x7lU(Cz>$9jO7im#XNJb{ubgFM-GcO|tYWNl>P?d`LVduV}-}q8c5%dWWC| zm=4xcVyK9;{iSuiD(YqC65{p|>TG8!AU>EjrO6{br3Zyv{b&Hd8iGY03mdsP-2m|X zR`(RR7ToO3pxdi)n2KjPKR?TVZ=lG98`d0qh}wfVSkwatXD^^wRM^EXxEwEcT!}ex zL*~fs3RSkI9rI{O7*p`pc~h&LCfLCDMbh& zCm5@bB>?8*m#D44&lnfg#O}9#f91{>W&?#>QvuKCVJo4N81~O#Uby)blZ#Hp+aBLk zO(*fflTrEp2Tpg~3b+oi5{rFC4I50`WD&xq`11nYb32i^Y{{7rNyR$`qMR+#VTojy zdFK|t>NigZ7YOzJo}9@}SiOwC3DFU1Fo0Ki@OJsXQV0q~+`MbsZA{C_0Bi@##Q)O= z(^roof9)uMnJ}AJ2e3c9vOj&017fYEvzEwCB-x|u$M-%90DF??3gCRcf(VUTKYucH ze8KSNW&c+U!jg(Wt`=_M$U@Mlys||%jyE-Hb)ISWW;w<&mf0L&kUkEDLWcw?QWFpeB*eEo@9ur~*=OJP?zzWv%X|BeuDOz|khSIFC;RcWokkH_Dt@bn3)+IYSv;sPTzHVY5fu|!Ow~0QWGPMW4QbCpvo-!=ABlQ*BfO@twpeycc zrr1`w<0AGy1|MbhDX+92d%JJ>P$i!ILx_5;Di76;^t8rvlAX3MeV+3OpAcgS+jyFL zG$wqvJL&N6k8l8SDHfW8j+gW5iyE{e8uFWkNkKPPi5=ZE0o-$tfhV3ukz=SgPdQAfIZ zPs_O7sd!^m3o*$#TC7zQurs2A$@sHcmZWuH1+q80E>fQ+%OFEEyJ8Hs%L-?b~t1v$fMzfhY8W(0-$XN~8 zeb$LMBgUMDOY_E_D2iG$<*Mzwb|tiUm42w_K)ueEP)2#{;AD6_`%UvI7YTeGcZ`5K$WuOE69C@VMvR)O=PN zGOl6P?m-oyKCpq?5xe|NUG@%R47>R|<75@fPij79h`Jyg@fJUgzRre9w&A~5+HRwF z(c-xu(E36dC6+^tK$USxwf7)%74t@vVoObrC9sS#i|9`0X^H+tX zzf+>+e?C3iFBv(2&jrO|MnBvYsHsW;lp!?I$329!zD2PH0~N7nkx)&uj|krXT@`i# zxQ0Su#W0J&>_=>=NO-Pr)0-Fp)s-TfEMxRZ|Hp447ERXrN$T$|TKf0v{2*U5#_CWC z2+br6+5^f_I=X3rar~ys4@B0}*)p9ngK0+BrC|=4^SvK3c#anUtK^U6I8L-?FLCa- z01%xm>G%wq0I42cLG%jz=2DRYi%EbQ$a72-`vh5;nk-5`cr}x6rj%oHk=@Nca~UjP zf>0)4_aoFoXIxHwwi??*yU`WKwHk)+ikY9}MO+4CM;Ocp#LoJ6DmJJenBG3mGp9T= z(?90e{KhM5!@IzLkABmuCnerEvk$=B8}ayQX_G%8QBuE_kN5tc%HRLq*V0}H$V*%i z+n1#MgQS!sExp6Ad7s1upCekoOgguD%VFnQvoIoK2AueaNLEY%aK&fDp<~diy?L71kG_KjQ?aA@l?Us)!;kl^L!fP> zkO2PPA9w=n`K7<{gs@Lqvg7;I@)a`1CT=7#-O~5H?sP4m4-%lI#RK}A9O}=ay!yXf zN9vex$XFq!6V0@$aH}r!-K+W|?v%c3>>(k}pFCKr*wnKB=!vuA2+e2@w}9$%y$JV| zt37S@(s2M)hEn~B#adyruS-b^)#S8FwV8pXxZuahmt}|fUEvJA(8xaR(oC6 z;A#Y#{6FQ1{C`J4_Dcoq=3rk7%$=uShl3?6bIUl=u;Q&J=amU=If?4T9nv*C}4L_L++8iUzZ6N5R%F)rtz2k{v?6b#aWIxL28Y zXgYsx7V-=`w#=nh(sMfWoLJ9AEr-LG-#y;ehTNhc&on>mjS%q|*ioQJHoGHLV&6LE zmg6ovo7I4eQRwTZy8>fRJ^T*(s&Yhh{18fw+Dl&(QEPoljUDAFSIYYaz|zR-M2-+w zjYreFb`5>SUlQ(_S1~%R80_S=5LnbXt<&l8>k;gXsOg`KPY<22i?UeuE)BnuZ_a_34 z^lOc{g9Ewt<|+F{v>u=Qd^}8b_2%ote}oC*83G_Rmncfjo`R7s#eJnAZu;n2$csl- zKBnat$@a*#hmeD6l_4meV6B}Owa+xn}D`2E=YQ=H$FqoG%kz16&eW+AunIequlqHOc} z+Mx?t2s|`(ihM9fs^8jRJtORtfPH)-g0;FKu}TH{4A^}3B7ioJzaJ9tfBMYd*VWPc zQy8gb29PW?nStt4h>Lw1%&EASZv2G>oG~HXGh@5^PCr}wD6_##=R!6-fREC-D-+V+ zAub=M9_>doQ&lUd70gYORn69At58;iD@Fe!jh7Pmfx>q)dU@|qpx=X&#{-&-0;?4x zhX$^)v8A*~Vf85xQoT8)mdtdOBpOzC!h>n|OX}gg%l?leP~(OMRX%f&I@AzakDP!I z=vUUiK)Y;jY1V%^LT+%L_MVx+al3R8ZG8Fm#Cy9nddLnJQDuorRA8XpFQKS&C(pWE zUziY*2@{FZc}y_sWV-OSSj}u;1c zcUBVLkM6bamlyMO?>bd#MKAh>Uf!2^K_NW4zS!In$}y^Q@1vT`yKR8=&>UPKAHHw0 z;S5=B$2FhSnAnse?~PnOVB_O;2~ z6sMKE4UTdc!nuS*&lf_)XMui8bkig$h^AOxQsPtMUBKc0R+B!FBgnLxx5Q^~L>79I34O-K5^|nt4tf$lKPKtBsd{;04Nt={tg6D8mOf=x z&0x2I-5K=SQ^N0kpNYcpwd5lnuKO&rg~|}a*VPpEM&AZ_=%qowUrhhmV_+}ql52NP zC}XhTt4YWw+kQhP11&99Kl6cR@7O|6^50_n7$$M|aEAdF3wZi!Jy-RR2csPSIgN(7 z?Ym}U1KYZ(&IRzN4T7E(u2*0dk)7(#9$whNFSx$(VNc5#ovay6Db;$Qg9xFxiq}6J zFyS+%UYcKTK$*8m-QlH zRhi1{wSM0*!3szG~uQa-7g}KQ$iN~ zAMJlN%Q+TxMU^JAK3E;R8%I|dLGV*@Y>C$9N=_;V2l2l9iDEBre-hc8Q_V_WK6V;z z=X@)ye0abSc!y$sjYU$BC@2sSY)OViY| zV>B(dkSwx-t|;eIOi3c7D@?y-a_0Vcg)6*CDPn*CJw$^|VMfrKZwmb_2KW0CSVOPK z&omTC@+2WcDJOAFDooe4=n}u+nVPn<7Glj_@_*Qvw^!t|tli2`vleraT-w zCE0GrK6bd~A?o?vq!=9eO>?!-E+7*au3!*&Lmyn1*TRlr8?WUQJDc5ss!kyQ!i_jfu->oS_?6yWqGZjvJ8L#?Ah&4Z>U2gOoCqmeZDIox zOB&2wDizipZ3O+7&P3UX-nQEBp7g*o%&cVtD5MJ0S?5s)W_we55Dw|^QfC?Qvwa!5 zm5I-9Yu35HB`1&$HhEPiJJ@Gf>K=c4EzLb*=^Z^icQ?fCCct=sr@^HE1ZPz2#_h%Y*hJ(nuO7ne-O}Yo~SaWQ=#OP zC1dZ5-A&x|57fb*@BM%2K6DPsIw&=_qO!niJw66icX$0zz`Vf))0JU>v@sOC`v|Ev>Wq`WfGWH)gTsSbw-F>d=$5?PG=T2eBX9fuL3s}>GsRa*7;>&d^Eb1 z5KI4;RdCwpmu2Lf#=Yl{-h7_-&-bF5J{tX(-3QaO{5MP84>652*y2X^$A6Vyf3EP$ zBmJ$dd)@Y@{rZ2&e*JgwQ3Da3ZuwoU9tP7;ly}xIPBZn_o`(Z}_($5~es#g%U)?XD z|N3alROwCp69a&qCmGNE99(xcUJy2>?GdU?*ucMGz{G%6^X* zu}1%9aKZiH@`ijYYGaviEm!Q<*2)je0`A2~4QO!W2Ri7ZghlZDw`8+gw%x=`urvIkSA#0%3!^_iBle zJHZ(iTIpXmM-ZR`%PCj-_xJ|ze*kd4BI3H01Cpu{gOZWx{IJ19#2nR#Qb6ZK2dMNk zQ00}+SUT<^T@B`C$W|guw+fxM9KM)eWiN8;9a=PoV;XOj1g!`?wHZ_Qr*}TU zz2m`{EF0fFc;jH%)8(q(&W7NF8%I>t4*NbF=w`Fa23 zfrBrAZ0C(X3ZVY8&oSs3#IfEvx6PAd)$eLlA2HCAwcoJ5>ZUn65P&}WeZc8A3pvFL zZK~ec#n5ziE2jA6QeFC-a=w)0e+O}Vh3+@&1{Y{o?P7=(tL&eL^eAnBeu&Fix&@XC zQol|ZwN{4QCP6fJVtuZ^#Z;K6Ld-q_^2R^IUv2B9!Ve;;fAqvO95;qkLbZ1#-}jV7Ht@guOb?g%fN?u`ohH97D%#P#C; zEaLj#6o~k5HSYjitBbDz!tL<8rqy}$YRJwk9XX=|0s0M4A z2BBo(QV)HfjBSx!cDU#Br8^fuTt5FU2X} z-!F50&jSHy+v^|s)?7kwFZ90_U~e4CTW~5g`o}R}zyGTL=-ATquv@6@LQ$xhZ0hhy zkvAcZY^_qse~WS`t^{YR1Zu!iVFyP|&vu{v4zi69`j&kw6V4HP%;v)dp2S zD{%rE=ip`;mA7DDR**%FM`Dk~c&joZm7|Gr%F5vfzk~E%-nFXx+C{y@(}g%a_yRW- zE@>!N)-Iik8Zq*>9v0wN-o8sDoGDL7r4L>GMjle_pHLRVwCd5BftCMZJwee`9Z))9IJ#8pwLPGxb|^ZEx-n@?bAbdnk&2i2|hAp;l`}I z^+TJ&_~&+&|6R$oe-_sY+Z7KbRz1GB#1w(9@1R?0bUb9eZ3D2Arpi2`9bB#9m}LN+ zqk)6ci@+mu^e0H%u5(i|`ksG`5agFJq^OIwwu{;s2-gzrV3IzA`j>G(3WnL9+4&CI z$Px@Wm%x4#=qmf=%!l865%<&6!XJizJz=z)i<*mD1TaC_&QhC>XN?MeJ&{7S`VQ(+ zz<&qjnD-k2fl!LWzn;@;;;tznjtS`qwk)Uw?+3kxs#dKY!Q%wCBa9 z4L$cRj(;3%K;bg=(U(ou3O?T)TYAHANOOe5nj~0a{9G_|)(+gGDd^d|nay z3X`|#yPHG4=`34jEj^-JFvQz{qADY?_?a=6pxFj(jQuv|t-BA>nH*@p{k9~0<8e1a zJZoWPRI|-R#-HA8j2^^sG}haUjXNLqp~l->+OWecLbISn*DD_zJiqn)%IMvGQFRZ9 zaVh;7enupJDL|*_DS|DqNMK-Pc}o<>WLPB7zw#X<_Mr(l)lK0>P-%- z-f*C#0}$w^OkaL#a_8?%?ED-ms-Fpp`M+IDCW~a|r=d^gXz)zpA;m;bE~tb**O~_{ zv_F+vab$RvTs=5|yWJID?uypTfSrlS9J_V&N%pd9{EFe8w=PoqeS&$`c;W(!sxDcf z>rG8>=zY{vcv(z9!R-NV$HC0ToSLTO>WP9~UriOOuZtQbYFb6KpksOh@$U@Enf40`-x`yB^vcL4fK*Qi4AqpU6pz*> zu?HNlF5MS;^=hM_f~n`8Ah2)hOVOuV-foSU=Kyb(67j1BA91cEiZ0cA!^Juk4f|Gq z>OBBNh$p3N8c;IHFrdKyJVVb?UtC+(M7~HMjQOar$ZONjT>`2Zt*f^+?(nR`<$3ZyopaK2FrL?$7xaE;hch zDnD))BGqIu9s$~0-BGgpjIOGm5uD^BCbZ_;=s#XE@<98Ek$?crebt1&7jkrU`1}-D6EN3`+miw&~>1$8b%TBy86n}s$ z+r+X{(n#oL2ovH0AaFhxA&cx#&!wbZsuqZ*_EhhG;7#HvGWNepuxp>krXzXiEt5QS znR&ZLwY#1P*F!prx-x7;@@y`C-KTY2WLBLz0__&PZw~~TlwQ4iBGU~3ck=o)n}ZQhA7fK ztfu}-<5p)QCgdp&d&)LJeGj}oiK=V)Xp!|cfAGy?>sN_wt9dXr4V}YdP6YxDHfgmc zHKHk+8*9rF31h&@`4#;A-)7$d(L&u}V?7=iggC$W!XboFGbPro{~&du+IBbUG-|2q zdF&Q@Y1AfBmwCfxFOUP-@y78G1tO)4)n9_XYs5Z_3s1U-l{B6LcXXuvXRHrWFvss794vMvV6D|#_ z#y#1Q%+f~zojQMKMPHU)aF=gQEmdLoc92h`|nq|{(Uj$XO6r3 zCJ%FO@Z?!-6x@$DsCuky1gyQktsgDX`J5fJDRC**bB?hFQUF8Sg@PUY*Knl%==d4T z$029tLFP!Dc*3rEUxwuy7FfX9!`k7P57tLkCDHp5G6yE>k1JFGd_OK{ zIfBb?4^%Q|4@bToE%05zoTQs<+g!MDlcd7~q{=>6rj3U;7VHk&*+VYMtQlAq!Q}32 z_B62?tI@B)kOG-2olJq>UbQVlnM15^rfi+Y&$gEXJG@jn^!Lx;9~%E%$;qEWX!W1D z!>p>Ga%fsMn7UW?5gvHC?|oHOzwF(7-Q&mjFNft+xsUPi5H^-j40IOCn`v}-4o#A< zu|~Ag^LmI}I<%KTaYJK@{mX#%RyRjFflmV6q0sV`)6o{F+#Bco=;)}kt57Ez65WL1 zK=AM_ZID>%N_xH;Nzn)Tr_oz+t~%1$inR;P^GpI=HIuBGtdsC{;wvzVhRz36-H8uY zOnX*r*AK*;za8L}A$#h=_();QK=O;ObUGJJaW}PE6FzsH(zly_KU*Ga>g1}`5ESzA zlY+4OUU*H-4R;Gv;Y!*RG}h zI^0MFL9#&)dJwMfVI)#C#JkE;GL(*f(6%INctYfY09I?aOhY3{mVyH$HCZX%gX$Q8 z1;P6#kg=3Kb9X%bBc=iuI~AApY2upt6!H{i4_ut6K^LOfW^3Y7f{1tHgS-w`KN6iW zVbx(e!d{B4s^&2V(k%H7b<129{VCd%0J7i$es@nS5X?R%Iuk&m%h0-jjM-cXulr&1cIr(1YPQIQSPh#Oc z?xN5(Tfp64tJQmmyuXg;uiaO%aA13KbEVjFa>U%CM0a^91){A=FB+$hRi79@aM}XA zM^jrbR*v-*X0aV+$vn(=qT2KxdbUYvOT|Yw2RFJhN;nr7PQWj(u39#~tcs7qpV++M z{5-M7WgLfIwHryKS|HT%bXB+>;X9}a6?g`l)39^xjEeh(7g3TIyFPDBEM+-$9Q39!w*l-BNT3yWyJ;VH;DS+VV z&MiXo!yfo&E*f2m6eX|U{{|Ve@%MWOyXAztkTMG$!4Z*|6#BqJIKK9T%hM+Wd{Nug z^edtZ17_-e`Cnw@**Q+bEo&zWo0n~g{$%y*{k(OOrRE956JPvTT;77^Pqsf`y1zb# z??MVtbck$EiT9$X6hy3a39u?}!{pgbvAM^A2isZXy%d|g%nBDFj3}p7KO1E?HaM@o z>Fls8)3AKDK-9!ECWe;0^el-`uyI;qv|@<8U~`i!8j3|&^dQu^!{_ErL!Ep)dp=Db zwT-Q9T248qdM+H^wai1BB!KHju^i1LYy+0ah$~u`ug}ND9BDdfVg~vSdhDl@<0C`$ zZYnURsh8lV185#{uLT2N?$;G(6n?Zt4%@`O^q71udW>Q~>|$voqptZtbO$8-oIF3> z8T8Xy&x;7-PLOu3#aPfgHNib}5JGwY=Y$rn$@ys2FgO7&dWqvAC-Co@77zfC} z{Cu79x0W;Ns_s!{iCb68Vm^N@n-GKbRm;#W?}lqC-f|rA3Zfb03_0y^UzD*_-@|Pv z$v_u8F6 z$dKf)p%6P6jsv5V;;ya&lL)8XxN0$)2I(mruSdR0 z>8qp0+$$}P{0{PDCM2C&IkQqjZSd3K@z0>Qi>i`!YV|mRCm05V8k|m7$QQmolpR~j zB&+-KMQu$}5B^-%f`PxNAX%plJ*-3YXl@Kjs=q#vZ2oOgJ+^*3^_2b1q*F_Q4ACVc zG1!#zND}}7(0Sz#@B+W`OZ+3RnT(%Va@q;c*$%rVm!|8fqCHewjIj$dkxm*Mc{=*~ z{<2}q>6N@>_U!ftpq=RRU>$@G1y7dT^dqMSx}`SDW8^AN4qKQHwH-O%YS4M|QPhE! zrF}j}0a}vARKz(7l(f}g=5I)T5$PmblJD@SDJrNg@LY?u4rIK`dqV+eJlvNH0n|BP zpvjkR03fI1l+di^{JP#_6R}t8k6WhWNBG|y7rXV_SFeQftK zc<@}_;3!|x-Uz?qm|pycF7uvB5Ax_{MBif$zv{z!PoJXLM>Ss7-nGHEho8xGdR^gq z;%-PGilvsg2st?Btg>c3X4NJ&5iHUWT;llne!lORJM^u0 zU@bbR99sVd5`r%`)*)2Ptr1Hu#mgv+N#_BT;6{ldOTAA(-NNp}DNp5nGUt|!^xivx#YUsI3WF*599(UeOYzy!(E)APoWoJV^ zg$X`&QY)H`r4^<2UPgXsKwaIH*+pv#!2Jn~HnNl+@|jkB4*lMx;~_klgKLV$IM8M@ zLqC2Nnf6p7?Ss{V5-Pha@{3#6+k{}6G|^sKDmniLtNLG1IbQVJw=lbT0G4MlBDeWB zgLkC?o;z`Rke$uYZ8J{m>a^Z2dQ~$0CSzEuRI(os*!?{IjTr6OgX(W@0E=~erHBP~ zm)iR|1j40TAro8yE}Go;xHc6bM_P_OSvO!&HC%=@l4Ov`t32x*tF}MU(SNTDJPzPk z^$FC2(swhTE+8{QL%P#?PLWImjyJ^0l+&yEF`ZMo04IvHq z1k<=6tk4bey^;?Q3Cm2Bw)l>z3v$&rtwsCLQrs70M?gl)RmG*3fQjmN1$_QrF=E_- zp85KjzI-Dy!=>-+)(6;`J^xYo$3N+Fd;R@5(jI^C5-a(Td#{{Ddweg|sMV5HJ4x9{P&yO;rh$TFJP{WJGh z8IqIG59xi;tJr?SebC>?3yl3%c;H>nk2?eY{?8(3`l*ZNw+pZeOu#pG1>u;n@>sek zOd(~==3T_SE5vAThL?)cs*7K3+_g^E?1a*VbT;1tfZtgZZ6DA=Iju~v5hG8ARsz~w zmF`&QhgPtH^42Y9-V-VxYHVi$K+n|oSjBLUy&3oYR#dX=Pu02QbV(<$$xHO&2g6(Z zg6H4a3AI1P9e%WGbAls6!;&dvn%wGKkm!A)a-;Izq*OFsE^;}{PT1^(mZSs|bQ zsUT|OB!g)#AF4AmTSLN?K4uOjf^Hss$C~687Zb!wAMyY3QCM^<)ZDJbUgStcfN z|3wq2R3`grY>?T@(pijm84w6BJa z<{Kv&UdJ=3c`N6xSn&AK`LRcm6DOv;CLolQ>F=NrwGiiOjluMR6)_>>_K^?%xjcuY z(KTiaTHJ4bQsVHh_VmA8lL1SDpfxN>qYWo1*jlwvC-3Zo^U=xTFZ0>5&wS3VL_2Rm zC@$cUNA$q>?;sLy-*-?LzOB&YgmM8xH{vPTjL6imd~dQr^X%ZU0cD|^%-oIQ!I2j} zGqm0mdAfl$?1jLvBa)YT&9pv|V`_>oA4s}u*t+n}Zne@L-5&*;U68u*bc{W;K~#>c z5VBFGp-Ysz3fsMII?>lU>{A~ZQ7`hWhNl~VcoA_8;E+@1ZPOk1^eqa9XjwiBL7eJg zVjmPAeD9`L1(?m<|;Se*1 zKDsEvfs#l{*M-)o(ROZhUWig=K6YQ{VU&!#Pfdp|nQPji5ganBOkNF=91sgAId=J& zyUgRx&jS}Uzuc?L4?%Pe0=MtPPuULs(N@v~n07g*b|!D+y=;8sB&NspjM*&gg|UBR zt-vhMp8_^Sk6zk*1KKkkPl9|M{L2$zAhQ6I2Q_fNrupg?Axo2tlmud3o4ebQ=LshbtYklqqF7B;8Wh4X zTu5nM;iPl;xdGF|*W8Qy!*y2exKEo_R&5#v5JC+C^9z_7tV<$tL)PrWi)` zJLqyGYV|#O5gI_S?J!kb>7fh?Y7B@~6e1OMBr(d3UC=XTZtb(_A7d}^PEX|EzcHFb zQk{XCyzwu_;V=KE=ha1D|KQ3#WJNV((zvdB`jwHzkBsj>ZTkO5u5H?xG#rG!WIm9Y z0j@6W7JOx-W&Zm;1)KXT+Xb1W)nUKYPEx>bI%;}i3N>8=G~FWZd7BM@^Q&6SJw_Ew zfsKGHdeKJmkT%6(4Pr}@;aZ|ZgwXAee+NaC?0{{|>M%veGop#%@&NbJlsnMh&q-I_ zvPL|jnvBd*+1J63It-|bOgm<6cW)F+K$Lc%&B7{$g!0vGD=7UMI>IqIWEVtd`iD}u zzi;aPyHdJ6KZW+>C+@a?yK(sQ_}`3TSa9om0Vu;VnjUE7;R*T8U|)kwNq@NoKxR@1 zZ7mJ?wO8uhv3tO3I`sQM;U5|EeB)cHaM{F!-#R2No%9r3C(($YLJg6hyPx3rmc9Te zUBhdr)8ae$H*Z^qu41X!H4WOJY5h&)wcYzz*4@-x{ft`dp;mT?m*98M=N-V!B@)3j_W*?Ujpg9L z%-tAbl{`|UNnvGj#gTFtU}Ws+S}*;XrMMFhf(3N@PiCv!8hDpDl~?d}Z1 zE;78g`F)Ex&ci0JY!{@ii(oa4MILTX5{7uIW^*(F7Mj?lEO!VmDgJZ z_FO)!h4Wl%j2LJ(crNozd~=1~L25+TVf@KfLWz1c0NIx(!NREW^YZk?v}a6SFPkIc zK~rRFvpRK-y~qw|fj(xL59??Mk87NeEk9FkrQ)2!lOOm>{uHxSs)2Ypty%inhhu}i z;o}vow2oxl1q}zP0YZ#2LrSsfLn^?vMP!B0@G~+A**Jo8 zn0sfwjox&mTu7z4Q?i_<ej`|HVhP04|8 zGG0z%eOP(9$Wftq+sKz(5vR`2;_g7~AtNw-$_80YU!lo{v-ca8^Xp*2n3LBgXTC~w z!=v*vp^C@NRjf0dwlA>Q?4v5u1WA(-n$k2wN*rt3~=|!XhqC)U7pePpj_|53(qfGv->d#(64-FaGpUFQ^ z?YNdXdOL5ugJ)}%CWRSlriVVCr0hpg#u4wykLoo+BurRZucjazP@BDUsNt*k9Yrp2 zj>H2;eEKFCu+ulDy3MK8ZbNp2B`~)n=_pw@<~g$K@F8&~DOdD@**H zxtZg>M-a{F(qE>1_6$)|^mkw3?xBO?ypotG7sz+4FEtgrx7NvgK=sHU3p#xHni%>a zxlMbG@NnpeS)-@`#b8>22VoRS*pIoNN#v`Jt-I`5r**u{R!JR%yi%v62qLKh5R7mt zA3_#gccY7XgLbu)-av{Auq}m2M$f>?zG(Z#^JR$zO1*oy_A=`&u)H^qkr^QXgAvS4 zh<2&`*@fe~5osUlnQI-Z`<{S6qBBOV(UY1RR+&R~LYo(NU2i=QmU;1gi}(RohPS?92^0viq@Lq2;s|*qgG6mu$a$J^YB@^w^<0P+n{Z^* zo};fK)cjvQ*k)}U6MMhxxZ8S7m9Xl}o1teb8@3EhmR zuw^=54V5o1zwCA8{0wp|=Y=TUPAW4$s^`GkB4k)-YO)^1;y8j?RwVCrV}&7)gthF) z*o$rks@A;RHdY*cDZG4>Er!)S8pul*qL-$hkR%OzJwy~t3^?J&4es%e$F)!Hr%C7O zj95H+!5WsqUKw`V7mu9SsiLP*uTfsKl82Lfa{&Fw2i~&!FySv8Zl}y3H(>ph`Wh2r zKwaw*#dXfaXKmhlHRgU-8~5Q(-nC zuZ3lfILh*V!P^59$*7d;9zW~FxR?86@Q_+8 zzYW`Q1HCa>ga-lYn{<@yP&>(uaLC6M1?rKqzq*~Pd_(UMhs5~3zEQe6zfk`kdl)-p z;0G>b3SI`9M^QYKLdTIy<8amyr`Sm4f^9y<%dtIK<5I5#j@7@-k70b~zPP4Sg9*`O zt_G5W&>&F_iWejdp_}bi+FRHm)@|U#HhQ=n**-JGx(qZfo;`2AEXk;{58!pQ*FrAR z&K6Ppsh7Sc9U-|b?;}NY)vE~?-+#QA=k}$8H8sG*B&Iz}%+E@V5qyI2k^kE2lDZo~ zPKAJO%CT%#yQbFpCfV|WyE|i0&a9RjTVJKKW%};xtyP0zXTRoI6P}$7swNFiT3x{FuX?^O+U2;gMF~9JsCNE~+!_j9Ca?0+8NeCcUHQ*deF(kK|-bKtIO$mg- zGiPs(x-YQ?`Q@^aV|s_;;}eAf4@4gR0KaG7#jx+`x$L^;n#X2ea|5XlXb|%3`=1i$GB!vq~i6KWftkKjcb0qo6 zt0dP9?iRO)asq-4$x7IGnYVYBN3i^1f#Q2{ig5%3-^U8*9eiC^Q1!9sdb&ujo105# zs@(+j=$K2(d5%+{vYP4BR}+g_z#2VJB*0i1yc>p^FVzPa{~Z8sD10lJPeW;ngPGE5 zEl$V?<_IZNWW64jF3x%C1c73-Xqp- z&70DkGE5T}?i>q0lnEjaR^QtVtUOAvRN$f6lkj13w*8M2C5A@Ep0rf*AB`oRy|QvD zrckrtaPW^!i@>wMtvxu#2+a#zdE%nL5JyIe(mnzajI3T@BQcNV7Q6L{i%n0 zYSvIA^@NgoNB~%{Qee7DT-TzKlNeJnAb{+nv{Z#q$`-1qbK#7{| zvWVjuPFo4Z?_p_92-t{8?(|-o^@o}$ zpQI*{L6Xwjy~|%(JsqC)@|W0Y93(+Qz=tXsi0BBq5E-?!N>J$`=0_Wx+1xvRR7DNY zRJif!d}kK!%e512oJr}pix5YH;pwTZMzH97k}@T7`n9GAJk-3f*m7KAcA@9XtERm~ z$tO2u_N=+>=?P+#f0XcCWq}u>0&!d&UN@oaA-*|xcH_WCBG;{e+{dHyO_OTMO*0;h z&)Uk6U!^adV2WZYq-pNHq6>dTv7W|-q6)pjzK|kfu*)u*g99pKE!?4H!t@o>vfHy2xaL>6|yM* z4OHzF*Ng&6c z3B`qYlsLI}@qXU%iSFYs%*JkNP8>{3bvS5Jt8M818s)G$oOKnTl|T207}o$jjD1ey zAZ)WLS?^<$EdYg?FgyUUr>Nd(uQk!_JQqDxxDK2Agleo}x#6=}ZbBThPmCe83ShGplGkz>uY@g`DPF8C&Xf|=&^*8v z=?}oN3Idnbvk)k<^73n(zR>v|G0SiRL-*2);T3n@9oxHHgl<27FuQ@YXP1p+R@cRf zV5jUMi#I?RlnW^tIj}R~F!yt>x}SJ+?I~Gp*;_Z>Ydxd={>Tg$Wp3C#Gmeb9U3t@4nVJN&xJHCMDQD$7ak1 zZqQILZ%Qg}5|2`K6%Rx_XI(woGR=^|Ll*G?D5OWstjT8eI6j(2Y44F2lZ_MNrDX1c z>@XVv`C}HW2UBl|^XtYPMGZ-6R+`aBxDA(n9j8Nx0_jG}oZ!5|h=! z?ff3`b+hm}>)nr0KIF?LeGKcOA-i`eMN}=g!RAf!WeB6@VK`W?vatJhiS>2jHgm$P zMT*4%1<~G4qgRE1!9RWxlw4`ISxrGrv664{GutJCG+x`bh<3F!6a3Ki>Yy^Ff*WcR4?vy{TRdu6(Crv(X1HnZhl_r^7AH z`)Nw#2z@=X!h$52x@qAND=QrVM`C9!TJf3HT-a<%WJog*a3WYpTg@Vtjl4ET`&S+h z6|%{#_AS-2TxqSb4fWgWJFm2=(`4X_6s5pOXac4|M8&wQs+!#KzO3|xp`X;1kP`=+ z3tgvLB6Po6xz#F!mt$+yR}W1(c|X1t3isE0bIn~Q|G=QB@vMCJLv1ziEod-U$OHI? zgT_RnZ(R@RoUDoMv%GXlU1^N@vR)jc?bV>t<{b6rxONWCtTPXCI>vaH9vt_$sAI@a z#NE*pp5IxmR~QbhtybAh)L>4B_cf?h-toCJON6M+2>Z`UCzoHLg12lr=~fQ5V@=h{ zz_UIIHzu-I5nyEiiR+Ys=&dDv=M!>+gUl_qMX^f3%#6b7&pZ<|JO@sXtIO3j3sG;< zIJ@b4Xjh6zW`P?liC0H_&It9%b)P59#NL!X13JlQSK__>5eGxTCPyyzO_?<$O83=^ z9_sZ#aY3DW3_LzKD+*Z1Hsq%oY8yqqS~;w!{^^vaagwI(ZebyGA3UxG%7#1#H`Wfl zSWXVF2%SG_V&bsY)BnlveLVYyLfEI#B)`O~FiQrVxd5J>W$16gk!pyBUw9_)u;T7;WlT8FD^S`SSzQfOV<==VvJX;VvbD^X?06CmYZB!w zqn^p&N&eXQFfEzwEy$cP##*4-_QkbGf8DtE*WGfh zBDQ3U74-?O9ctmyJM?50al3f0)YOZ%2Q|E1$9A@!qX0&TXQF5E8)!BQN2Df+t*pxO z4foLTFzvOEeh+8va$X4#d3|D}X72q`ITQ#ObhUiANcEfMls2+|J%kiT;nVY5y|(_P zsx<5JuAFc6S*PdF^Rl!x8!>jUQKi~(P3nGJr=WK#&RZfrb!-x zbDw9xg?Om33xO4Ojcz(YT#e>?8x$!9FtOWuJ+~iS|0b}E>Q&O!;KW0x(XC_}FAi{B-WTDvlHI{jM8Y?GqOnk$M%hLE z<8~ADB|pm%l+*TM`sa#sv6X3qxUG?fANTgQ5+sY0Ii?rgJEcrzw=dvZ8G?~)4a)ev ze(cV+bho9Qw^ip+5KbWT-ZJQ_aE-wYkea}S;TqWGP3N^HnIS)QzpKh`@=eTsvlSTS zzT)B~vK)JE@8glLl!UaW*)(fIH(Te0O)m4D5oT5IRG!E_-N>`UurB%pIluJ$gt`vS z0ATk2G?MiH(lh-JBnthPFvat?IpfBlap~2^q5^nDX+OZd0lVtTnCkkuq(Ll$6o{6oqZ~@A$($T)GSAQK7Xu(;D;qG+ntxC{)9?) zqvs1wv-im0Lyd!i_j2el)Nl@JcIfQ#zchB}o}8(%)qu8+HK|G?OK#r?nRw0Dv8DTfx=AFREi#10wNPg*TEghF&W{bvwMg(4 zv`rkhpFziYS&WDZHPsPTYl1&Nf{He5;ijrvrpUG;^^rIcmN#=_LTtCvF7SA!*N9(e z>Y5|P#!6E~RaN{zh!pVRW(#`AbGjhSHA zU9qixi8_(mE2rdruXB-Rr5of9V}LxMl#AchR|t=0Wi@=GYe8+5>>TZXLH~3-Hs;Jt z%W(+u1gp-J-iV|cc9aT=2P;D|Xscd{n zo-dQ0Axrve;|zoC)t}@h++m!obgH!Qf`fZ`Zt=zeC=EOTMv$N^j zd6jig}77v+VTGhDl65zc#`qVnfkF3eI-BuJ-fnzfB24 z#Y0C^TDG+MV(!@{-vDOagyO^hF<(xPj|_=IPD^udNH#dNhCVj6_{+FA$u%|HA&QZC zlwp2>gK0~cr8i+Yn=hxhYi6x(>$=;N$!mu|%h_U^Zp{dmyY_s4xA!`?qg5hN|1k1q zP}^)Wb*an|ebgB{>CUepi9%D@MpEE@`SVhKuyxEMiW!&FiLvVHDo*9->f?P?Tif>` z%L!dipXwy4LqL>%I!jJ7mTl8!TUESQhG0fU-LOh+p#-MubJs+q7~HDYVE}W@?yb>D zWmuiLvB?;c@;vXe<=ZhjwiKkVBIDW7W1@&h`s>pAGP$!Mvo7t4_x`8ipaMTvHbA6J3NVD<8Usim) zX@KZSfVKcF1?k{IFRlIl>x-I~g01kSYXZ-|+LT@jo=nqs;i$U0@N>o-zV{at2)OAq z*#sYN+@HwICp{heP^|rARA|^e>eby{(a$*v&vJQ;JZ_Bp!)wUHNXo4yexk7h;(54G z_y?~vwO6WAo!O#SeO8IumRp)|Rl~XE+IERgwZr8m+1rxQ<8pPTn<~|hlvxV0-c5&v zyZb6KJPYsh^cQ}@NS`~qXo$KaP%@xXkvvs^1ygyYVvKu@8A6Jzni^8e7?RoQAMmoM zx@w8+f+@-E#?K{g4a8M;JHEZaQ{a+COKFRYMPJ+chg~3U5;e=ZnQ6}3W5YRep-5ZPelWo>he{d7=Y|&5ejLA#z zbPn07&^Vv^K`PLtYK3V#;5uf)<8iYPs}am*)MY-@mTmHKVV5L)0w7!)7^8OL%ZB zQCbiYof&8u6kI`O=BT0$^&th}3k`Tb2uSdWXde49^}v)Yatj}$EL*we$u zJ*PUgEVr_31|46-umYn%C$hlFq_&Rm|HM2=4w3joQfv zh{*{o&qs-poQcz~-~9Rn$i}5dM#*ZtQ&8i^d^l!-O8jM%oyp8aA9lwtrGG()r^zkE zrK55De1g9qaJP1?gc<~i>l^}=n7R`xj% z+esl^z{DW4;EKfDZ=ad;?4FBxU!_a$_SN{uM`tJ_+A@xb_PKaKC}-+0+&JEX)KBkhsb)RR>|@U zulew9wEg_G!@$=heO^SqZ2X?n0n-7dYx}ccd|Tn8nq1mVOge^e;|x=GPU-WCjrpa! z0hq06V#d7pK+=&vf5Vs7;0)&AE4A+f^ySe?vm)!eLEv(OT7vF%9Gy9~B90;G@iS)W z2}-TY5!xX7kbV^}(0&{RJ~l)s5~7zw^k8H;6v;1cQKbIdf+&Ws+fKt%u?{qJ3Y{`l zzea9cj=Xmf!wI-Sm1(=d?sRa>;(x^`K$+`~RC@`$P7rBJ8W=O0qWNHVN@Ou4`l3h% zukSGhmHN&qtv`WDrS_Bt*I)xItI#p~3=)@{%lG;GTNJf5fpM=}$S#L;nD401a6b4L zlu70apiMOm^LnC9D3bU& zx1LnQs3iaH?czmWEFt=!`w-PTeP*8|c{~t zBFGZu_@)$^qA>sV$=_`k&yS&DAWu1#b%SC~XSeh+Re$5skEY9830tu8QPXUAmcrlWw}s=Mw{ioxy~= zd1uWk^kdwmmt1xu&nZVf?9%%w;G+##XYNY-v(Enc9KgcQVPlCAO4N3>Bb+UHc9`r& z@k%3&EV_RfuW+$zbKRugy?(yBfw(Z;#3kG-VYFrP)oMxe11WW&fH39wfGMU!UPV(6 zHrC{?%?qpqyV{limXcO$O>WRvsI(zB+J2MG&x-u@FaLRjp6WOvJA-B7;)YQLrNPakbf>hR~MGV_aW#*JIcQxAh4B`9gT;$E~8uj%M_n|;J*{X&t=x%)dJ=L$Ftlh5oB*Y-aGDm*l0i@`g> z#Vi}V38y?~cCdM392V9LW#6!Obf?pMlu%NlEh_MXOZGwfgq!?ot;{4z?AIXTJ!;BQ zn@E?pF=%V9fL9)>E00}|RCVKB_lSS^_RgQ)uCqtN8#ysKHY<(dNBLvGUS3@Tui8Oo zAMw+$bh1-y`r`Ycw)U4~p|Dzda*J0rd^^<+1nTocaVI|A6nL&Py38VXJZ8=Don%dg>r2e|( z6~7C$lcmjTlJDh~6NO&!S;XeuC}^Rc99}iMW_oT10A(BCNz3L;F=7%y!>~NPLt*aw z$U%nEZ&1O2x4oEH1^>@TlKT3L0DEZ4;jz3=Yh3%PE&%@d? z`7=TI@45jXWXuT%i%1(!KSv=P6jKtcZ6B!Z;{`IEGOqs$|J+Qy%Q(5DBy%Q8(jAlr zM}S$C80}7bh>kF>d9xqs1=*L$eO_@8OL{e$Wx03V&3Dt?Qb1%IQ`6bGuD8Gih$jFS zfYkR$wW6{pXmu+!tcemnW^7RIo9|~z9C69=f@;MYCX#3Lk^l|v&g7M3U77x?Z1P(d z`mrZ{xd7Y0Re>5q2dw9k6^KYqVNw0n+>4p8^z8=13);TrzFkULI_ z?TO0ZITcrZc)(Yh!e@G0Y)WKcdLYlgK-cCEc1bjGe?bYG05dVF=^oxG*3U*f9C8Kw zj>MDOO{*qNv|{Az3Z`8Qc_{1BY`o8T=b1w!7G_GuAj@~s37a^&c60vPy#ogN97Drj zclb<-w;n&v@gK9u^QDNFMs_@t9iMZ`8?wlAN!WJU zb+(UpSJdNfS(ZuiCGp?kS6-S^3nUS!n~~Sl&xFXMblIebH323wSEMs^akCAjsywYZ zQG6Lc+XVuz`qehu)8d*WvP$%2>Uai5&-IQjDh#xr0P#6Qq&k>Z+_C@L+gIuR8tPoV z@APOaZrE6KuPiyTN0TZS5tT4Zqf{rX;{F%h?ge$0@zg~`XN8Fsmw*Jq`%hXP{GiF>pRwsC*bOu**6R#pmz?=x18K;@6I>Sn`B-)9C*^QKh zM?X!>e-j#{9^cDts9Ao!QKMp@(^`1v_1H4HG8Vl!5DKIA<2V!bl6@IwR6n?K=7Dly zP)5?XXk7ty?LXM+zWp=ckmY2CdE~KC>o&)mifsWaUJTDq1;@O2Q;`KFD$<1sC3*1( zo8dzfGv1ljqbN@|nMv1l6K{&;OR?7@l!6-Qn?4gY2^dwPHQojX3w&K(i@4^sa$EFG zZM0AVPhFV$(~rNLpJ@or{q*LS%a1|j^RM`v)1HT9u(d%skMDsAnx)G}*JrIJRx_AY z3_LHvL;dJJfPd|F1{hHsb@`q~IYSkoi)lL%g!1-VleYoSCfC&hj7I%4(tcLKOQ1$~ z1B}R2vGnPL$2{<*HeN_AKCa#Wj^`S_LwqX5-TJIk`FvAsQTJi6@MQ~jzslpnZo&g> zHDE!!v<b-xZJrm6{DETU?k)$jqvbo1$n-t8Vi}MWLx3c0ZhhalJYiUZi5%6@I^`TR$KL zcf)&2+HA3(KHacD3ni*Xv?r9R=*2$*maIYR`0iCUrMI4r1M-Ih#WcCa-%QVU&cDLB z{k-sDu}+5ramZ^x_>;JOZe*L9$?+GO2!2~fzeN5=*_t>+A#e3|6Q!~j_N4~Y5)s{%#RGylA}z~>#5DYq(Za5 zpe^*$?jt(lUKMl}x~1C82@%;5b4~i{89Zik6h7M<4^jPJP)?3~YGPsn zDRShE@)Z5;W(ZB8s)F`YHmFsDB3|U^=Wu2E+!NetXL<}%%jpN#hSa0!ubGwsP><&4 zKNCuvjcNy8(|a=XJBVY**9Vp4-YZEGlCw!KhIDb;S4J6<1i$4P%h@D3C)u8rT)1?E zYj|w3Ifd2m-VsQ=P2P}7EIhchsBe4=cpi6miGY*FR1!I6R||l7fa2hUw@I5=zr;XA zT0GVWO{DYmM8zzmX zc)f_%gjTgpoapn)E}_^2!Q%B$JyXKi>kY~D5-78Q}# zjs!RHMG;p*z3inwJI!U+e=b>#H`$Iw8G6Z+c zzo?;(r@!0>x8a)UtYj61gidK;S(kn>&5F6C9q&$=;ABIUnEjjv8(fw+tb)}`V+qz? z*^*^nigRL=^p{D!)GQKdb!vu6J;a1F8n0lSO{bz|r}u2({2^o>7^xEFuk?H3n z;Ht;`%GNgOvLTeI)PEdm`n*%O-ErtEBy-}>A~JaX(&%?Hk+v*4T3A=}%&m^z0;Y_m zP_^V2QnXf~6aiO=3pjA39t@yZMODtxtXPe>_Zb}RNTkI1>Gkgk9t@Zj4<3|Iefm+U zPB~CZ(G9L~?W`?*`LexN+}5siJm#{3!T}LYwFan6^GU?MebBteCaUu&mxA?w4rB&mB;b zTc<~|wW}^I&)bw&d9WLDf>N>Jh4kB}QkKD6I9(b{FRELgf zF!Mrd^y^V$N;+*wB;^`7q|mXPuSg>TdJR|FoAKc z_}{mYds;8doPYQ6j&1_vbwW*n>2e?p$=D~;_Ql2{VZgvboz$nQS~1#3@bch@37YN}h>;#Hh=WgEzv2-6m@m|#SHWR*p9#khRpRHrgu3Q6 zy(2+ew|&@wjphz--($PXkQGFYHT{~Td0R)M{3Dm4ix9|zV_RqRx1qr!XOtgs@2O3R zkFX4sUgf4^04f>dpfo|3^Qe7LD4F@AdX0nJ{^PH_jZ)^+u;=hmF!u*U3|Vx@sX^Sv zE$^K%RVqEw&dL3k8VARh+3=~ zQRZxb+wf9d^rCg@4Vy+d+)qF|G;Znq9?3j$1xh27Hi59BeQQx#8bdW`LMJ#l+0p`u zt=vRc=3z7$ma5w|G-0hNu2b)fMI()juZ#*LQhIpAXC*Q-HVZG~zkOv2)bWVoR6-MH z&hESiS74&EiC8?eUBPT62AA(Jzig%<;6OXnS;~0Hr54Ora$v8}gpKvuL(VX?lWFlb zZB7*MUZrcJhDPZv%cdKK5=%WMNYPQDOEFu+U0V%Xl#c{f!AOteiK@Vqah%!{d<%C8 zyaqC6?D*s8k=qgG==*sFN(pKUzp6wzR%AgikIH>IY&56&=gXE54eQGr5?sJm>YgX> zBam!3$#~=gbjs#Pr;bRS|Nhr|_A{lI zM^?D#*f;MqO%>ZAUj2j~zT|tgC(I#dbA@>Xr){RQ2X^x;?xGRxl^G#~S{F1K?lq)7+DK|$-E?Y)g~gL+fv6xq zFo6LJN7+zER$SG|+ZbmnWB<)f<)~v8DlprnHoZ3Yw)ng?nHSctL=9hzuDJ6Nl(&8?T3b^j@z&bjHx z$4*(sl3aG7Qy#>q%3`@#51lML@*<3yLx7psU`L>zoiv^@mXGK2)_wYs^`!;>e#WvN zCH5tw3o=zn#?KlLi-BJv3F5^=cWfN&TJI^qM4k>6IsM6siS=@PxfprEx3aOZXX)ZC zH6Y^d&0Y>JkeAWTM}4^87bD&Qzdg7;J)%4=E=}Z!`n}8F@pEnZz|>b7(Q8aFdleFs17@v zd-$tzr1Gl9m&ll2{!nX=<{f8x%J&?00`1ahW%_?F#8;1@9WX}$xBzHV{Z|O{7Wqh3ZQ{hZkr(CkBgPgsUWoG66 zom&xa<%JS8nbPWimB2&DGxRZd^di+bHTg~h-j~bwE+??ri0pT*uaT-DT3e;1w#U)f z4lAz~j~82BkB;7DP`G32+3y0=BQG?G5U6s`9@&|5)Q#q)J{x{hdd--Ft1BXN>ek!q ztM4qV1gfNhW0RM_7n<(3;AKsl2z*|8+62LDX_qK@r%>bHF9l8#cyfd9$vt@X)e|L0 z3ge$NRhz!T2=yKEz^ecrx-`0XQz6IdYJsE$)GqA=VlF?H@KbbNd*Y&pH>j|QC>;TfcjwpM105!7v z6E}V0>31t0aKPH&Cv9%{oTMIAM)eY*J`4N(@8UKiNvQ%J9m9vJD;y81gpog?cP;*c zUZS5RW(A)=^A|Qg9|D*Di{SCaD0GaW81_?k=@=R#NF~bre~uu!7+@5_odm0ZmhT2G z;>BC%crm}P&%;#2#k7>(CcdemAa6LZAIY3>07@YhV80yIdCD3Vv*6em#HaYB88z3T zuY5T`IKP=90E7x$`f8$+_sD&W9M(=qxs~4ua0uPH*>I{h!8dQOjF)2e_^np3pG)>%1ARPon`M@A~_hz0Ay*1|QSFDU=b>*B&O z(ts~ti!l4U5|rUS&5?NEUl0?D%tqW8Fo=C}p7EiFa?9*VD<&y!S6pAIX$r-Y)o7~1 zEAx82&rE6rr6O}dG*k(E1Xux$|nN_oWLgTHJ$TtD}d zI_+%-QLw#Bz)xA}Td^RFK-$SX|8G0XJDnMV$r*FIr-EKU4xS;4*1eqJ@+LGMGYYFh z$BEk)Rm6cNpIJr{Wya=*A6Y%V^v?g~R{$19E7+A0s^dsz1U9`mBLWb1brdoy5w1hZ z&uYD>#%1x+JZC?8g3GK{40dP=u~j^ssh#??s8sw|I`iEBaii~|O{_SHnjoS&CTcC> z5eQwjRYwQpJr+3Z40G4egc)4BYiLVGB{l%g%FN#Sj z9NI-4WHo^k@0>H|al>IEWw<;RxXc?~pPt+R@QAXB)dt!>+dn<3H~eI&s<&;X7YhDV z9vyGJT72iO&9niRZTblDd1}Gs+7<|z>S55mc6~bmc5Px4wUwGBmVmd@uA8bnR9~$X z;!ddV0iRO(%d%R`-R08owk6vP5|nO@v`ROPhgA_5Iy{sv%PCd-&)DDD0g56ACPxzlk##cFFiGa>n@W@7 zJqDviE}*O8pDc3{V+vslc=2tsvIq_M5?sPzxfx^FUhRr^BU)(E=5f9n;XB1v5}H@3 zRrP|3@@@ogzZinO8#=@QC{!~;gcAXZ{qv*P4_m3he`MDz*BdV9hp4Ji`qD3gfdbF; zlR_`yfzGPIxXQKiyRJ3d>E5xkU{j@$Eh%%wGe%;aFjh~-&!)ld$ zf*N(vKTp2%(w_<8a;hX)U7jZ#mt_y&>i$>}=tZKGI==Gj8_MX*Wh~@7YP~VUQo$yH z^Dg6&(|z&AUmy zkx=blwrB7dv6@yj3JwYo**9lw^|xdZK9u=0vGN!61Mc5SbaIMFexEi2OP5OnW~?q$ zO$m9PLI&0{HjJ|u{K)=Y-B}T1Avi@o?s}J^yqx8le+ay6ZhB_HxX;=n$jC-T)qsPx z=-wkLH0WmXw=Y6kocC#!zOA4=l)#&-9ZHu6Nslq&{x-C+i1qI;fNl>j75e^?Jxz$3 z1^=cA&=RL4=dfUSRY4C;OB!owM%!ZLn}M-2}3ge0PYX5>;CF;;B|8Xz~gp%2bBJtUk#ghZ+wsELwM)XaQgN36JLP!a6v5!{o95H=BiFwB#LUhdZj&o@3P~;)A9_nwTs9_{e8;BW=TLyLhns zZV`*ViiX4@NaTp?$cqSNXhl==FLcs3{tQVW5PB_twlZWLAKD)_qdr5ew1c73sfC0m z?JwRA_eHLEEky{Lm+em}h@Zipon{{e5bK@rc`aqy?>DCBb2zzf56Id34JVwBQY)=e zGgckw_sr1oRs zhVIR?zOgr5TT1(Iic!PnL&dSNj_uy+)I{l#{%wI+%-w#BK+X)Or}ztcMo2qm zn5vTe3%Vw@aF)`GAS{aX_aV<9=M0VbCRrRUC;3$A00k&3Y*{gF7~XQsx!oGg$;{E` zB%1(BfM@vaoX(He2t5t-j-809B3A5}^G-M%7~-iq*(KzE^OyUVO6dR3-{qA~&z0|g zMf$_D0)&Z49E z?Mo-|eN;DDb!*P=!H5kr_l?OatyO1YV|M!{xayQgr0Bb1RIM~au zb?2V^>A&ISGPs?mJA_PhBI#~&Oi2O0AAUET)?sDk5^5P3d;v5bg+Wa@K8;)Q4C~or z$fO=^T{PTc85A6U4Xs)DjTT$7A&*g>FN^`1O1{AKkK8+dMO0i8sYVmvwf;AIOkt*7 z+V#&mYwN}*60#>`m=O)tQWS^uc7kZloMPsL(_1p{a)51W@l~iE)S_nsiFH3r{~G0> zqTAH6qy?4GBTtRDI)&VOuJW7>|LdsBnp_!k#>meA+LQ#>O%TB!EusB&$Qk;l+QB3I z^yWLW4EcbxL74Q@$3_7m36;tGQibe=YyD%TDLDOK;3;SFGv@A{UI zj1Mix-QP6_34vuA%U|z3cyOo`9J_3o2=4)OY29PFRe-KA%ISc;%lGOl>eCe-L1#n& z;xd`PdkM9s(pa)?&M~xexb28_urJD%)Zpg^WuGJs(yyQ)xT52XbFI)uz?=k*cENwu z__~k&IW&PjL3~+(^1yFRlO*tzM?VF03d{cIz)AJTPJ#(+kS3H zWbAEUPV^Q)`Wz0#Kv~_PQE<^D!_U$R4kc?v#od2FhOF>?kNI;GJWshf6sFwvMRn}9 z?*elrV%c|!O8?MU>A3y)FX#qp1|8(lI)arA`K}Xq#GXz*J3$x2`3!ept+tHXp-QY) zi-@<=aqTJ>P~ceDjx7p0xL4Cn-ncq&pu}-rgR)BP;N=?WKDkl(rTI8v6nswA#EGf^ zgpL(&mgZQW92++W66FW>QBfju*oqXYO~a$+*UB!!mLqlvuovXclvbxG$>%DXjnTb|Zh3CC_#C4zkrY?BKVKTMnS8bk4@Gm^9qu2!P|*&m({YRu zZ2@a88)96_{(`Kd$a|zOdtc4bQ`wuRQXL3KyVv#*QO{Uilkk1=UI97zWCoT4t>y-Z zjM$peeXd$||4UW~W72%d4wGkd+v-WiSKuW*iQOl)HvJ;9oN2v>(iStdl7*_1UJf!R zv8AXY9cq@hW*=HBdL-WSrp|{74Vib!QfOS)o*FY$EsSaz`5%m?(mKTU6F_x+L7XHI zG!=dcBh#?fvxV?@1bu85LCD*Vz_&dqbHS>lx68I)i%fuAEA*J(`}q}7R}4#LHtZW& zEaFR*aKnS-3G#|F-Fq+ZTye3ZMj|SP*J-U!BTvHgc!&QC~}S zf+mb*tmw21{>jV9jPTe8Vy4@HGz3qq;FlxY)B6!l&1(hRmH~?Dr0!!>Cn5^U=njoE zm#im<60E9)dMZC=-VD_Kjn*5BD>&%z=Q=a-dkY{daRyL2(gURrb29rrYhGzsAJv30 z%U$xsStUWy1+bo3f3hh9mxo^^O?9`)>*X>Oy(H!m#fdkS->;{!Ru|Vssf_H1&-oNL zXy4&Ddib7Pu(-gsmhh#rnEtd?hC|fF;qF6*!hBS*y9H9j2dTB8`~aqx4v+&MxBk2G z1GT<%jG5G@86FAi#SEuW7)RbN{1+_@>Ko$iWlv&{(dPq==L`i2cB@OU=j0xPlTr7c zh7Zcm&rP7i4MjT!ZO_l8S~egg)sJTBh!3xh%=~)Jbo$C$Jg(EDywLHgs2_#P=;pMatlRPN?(gM8|0( zs?8}_iFHU?RB|kj5c9Fj+_W3u%XM?Iw$bt|G`1$ifA=x$gL4DU8zeKIX+&tniTjm7 z$2XkIe5d8y!f~$3_e0%A4Q+98Vdk=UD|Ki@g?G{S_-)2`Ud8$J!Lr~rskC1FY6wIX zw>dsSlF94I*9vyKJaLn4>@)VIZ{qD=u|AR85FPw(XVcYK`3CJAO-tJ1N-KMab=~%S zNU9u^#wgh>R_edj64m)LRb5R2 zpZ1TEVA~@jlC-!1^sd7`Qi)4jgo1WKp0Jl9*H{jr)ILVi#l%wV~ z4Z=P2VC{#r2G;$G_X+SN#&y6#lf1x~)z&&A-zeW*F%6zcu^x$O=FBhjG^bWb%-(pgoFZ!eTz_<=`{uM zb~H$3@Lk$M7oIo1C+Hz4QN^R?O(KOj^`#d$RwehWrV%_c7{cO-9S9kjTRYn8DV#GE z9g(#DafNx3-Z!8{OEJW+gCN+C(FQmN;r7y#2J_?7r(W4HR4gpq`5+(K7faU8rR_t? zzHu!*9hGGSB|k7Y@=*nC|BA$s{)-bKFCjbkTX3gO@GCcYd6eB1WP|(+aXgYsMuP|4 zCQy`L{Ha!C_hynYhAsJ)5TB}C!7cB%Yw1&T`}Cc@zwTY{^Un zvEpLDxlKwlZBsXJP9R9;Zr4yoaXmMP;ZjnZ54X`4FsBeWXbAF}pOEEw0ctI2dYaZT z^-lsDgsxL^##Kum12GVbSlnguO8kBNVzA;w{PjrCmuU!NdU1!*Hy8D$@_ zJbV&PD=w$1y1)y*!X-CaUkm!AGg@}>)x#Y%_7c|4*5j8AQQ9M~eG3aiuW;+!@$^s( zidD~Qewo!MqECE4kbOFW)E{kty6_aeH=FY4(oxm@9o-AsQCn(sW@TlY&Rtf3r#sym z8{J}+%hKK1@}=YujJlv3c@SfXWoR#^)^ae>9~9%OjPZO>GId|vwS^-xa5i4T-08_f zKtXwfM&v-y3FHTf!wH2px}grmN$)_Nb| zC6#DOVc6v7iDwIg2>E7hk{RjfQ*jSGYGSDbPLv-@bhdN1!+5m1)~X%a>NVKukeu*{Lr|_Z3-==wgxhi6z)a$P@Q0q9c@M(}x-Q z?ulb_`;r|C_4};&88!QS{-7(%hDbj~A_6<-L1%;Em7|@e4zrvm1U*c9m>VwFa`Peh zHorjrdb}3!rROY1h9Ns-I+9IY9p03eRht%8@qAqN9?SeZOrWacg%SO;sznv}>xU?I z;w!A34k1Y!pBh=rxFRR!=&*A$-ciLXJKk-B;x=FGi_)b}hT~*uJnEx8nVmTCvUIo@ z+gL_mK63t@Pl4fl9>AB`=BPsHm!Muq@ksf$+>Hd}`(uWf35$*6r(k>-2FoWZd7ai~ zz<{6n_%*HA0= z^W0na=_pDubmoTW7O0x;NiyUw^DZSQ2MlC2p@{YPl;aoU6}tpKYV&^#`A1}sg+vo` zd{sGp5rhRhEo9tt2m$X?Xv|g6)qmvdp_JN83CBA#`_bC6YXa+GZ_jCZ4*>> zk1y3u{>=S!k83I@sUkQ)+Zb0lz_4k~F$#V*v6cI){^6BaePL&x>yyEg(ZGo)vh2WE zQLIaCbKiFtQ zDy{C_pYmL)e|;gd@);XX+`xO0i6&a&#%9aBaA=>yjmGlvm7wu;L0wFbO{d=1i?W`V zc$3*MbQD_ni4HnDjp3UnzM4bN627(OWiWQNJY1w}U!(`&eoULHCIRy6e@S8fkF2Es zGrkMZcit1#CQkxxvhEl|%m4Z4h3VsZe~nz^xvw&*FuY_zcO5VUGao_-UsSPX)_DY! zh%f%be#{f_p~qWbCO=u1uMAbKd27AYhbYRa)K3%IMglIFkd{U0-m6pj4Z-xB=+kOC6;;qU1T$G71# z+4EC}``;6wGJNRE*e>M+#cyODSTotOLXU)PB=8gB+u-r!=Z!9XtcL1V~J9< z@_qET8#_r*N39J2#M7t!pYMRMyvo|7Ph?{Jp2S1$4(1c83F`yt-@X4Q{FcG$99hYJ zFc1xA&D0A?B-|WmK;Iy{pFRK0^NcrI;$&j+ZD2un)@BN4gDQg!#5H&)nhw6Vu8>?( zo;$U1q}eoo%Dx(XniI(m02KF^(&%31>D5&OF?jTT)EqkRa}_cT$W8nBRh(AZG_)Oj zeZA=3jZv}3e?fIt7U=IR?Gt0L%GKZ>_~Q~ci*v7<`TW&hTN0^<< zK5RkzHgqc>9I7u9c4oJ6eTF1EVt?iQ&-}N~yj`*F0M>UZjzxqZurx&f?_O_Gt*Q(F ztz!jhAArQ-N>L#IGPTRt=8hAkX#I8HxbuqGTb^Pt(usXV+@u&&(n8&6>*+K2k!U_9sEC?6Qe>{(^?y`(&;L z&c?bOc@QZ9{r5}QHLsxiVQu%d_cLG4sWqIa`9mApzAXX)dLHZ_&e^ooZW?WE6=ef) z$_W@w`pf{32u=L#B_T8iJJN#TzuUj2WwDU@HD3r zcwS?1;c~wv{!cmX)yu_sg-rBeFSzc(;Q=b)4jw~)CQ!;U(KrMcdyP-yf#_ z^Dqb~DE&(hv9L-6$esOAJGhCpE`0ea?Cu$R20(QYCcQ+B0$|fX```we&avX+NzKsC zjL16kk}Lds;SzB?IE6*?0|L*GjN1@1vc5HxsdMJKZtV`fY9}n`wR6*LhX%l^jETHx z6QKD8rPjnDLuA>GT)a~imZQtdP5BS(y+LY{vQFe#tTCr>;c^{*F z&EVganGHvfPyJ=j_}6V-5c~3G6F&V4!o4L~-i8_g<~u)4RqcMv&Gydd-p=@Z3d)&i zg_g1f=Z4Oh5&C*f4E(DMwh-YLc}@N4f1kQ7EkwM*qgr9tHze;*-Kw(lYV?}|=sf5I zdDL&O6ogT){_TSb1ge2F5`Jr&u<_L|_3#)OHE|5JZ>p*9gq-mF1?^^O`pcYwHzcM= z7FCt;i}Ta7DrkMpzo0Wwze@8YJfgkSOBDwTtK1BoqHLVC&|BxqK%FwdvfqAE{K1(k zGbXj`#t9*Mx41t)M@`%v(HTM&37l15Qwv-Btqi9&o$0o96D?|Ee7qH{IJ!7-aHWmm zg&o23CP&)dh-a@Xa+zYUKHTeN?ySD=1aeul;l#4b*+Yvl@! z4*)JSVGsZdLJc#ZY0d%C>xc3jKMs6Hc{C(mx^H)-s~?EKCG56wvg}5Xp5%EUwBq_| zM}=aUVY*w?e_-`>_fws+Y*`g#zO}PnQ@x0&XAA*&d4b{UDf7iXl zYSg2Ft3*Mbo&E@S3i*&L?`PWEHb@rf7p%Sx4% zJ)AZhk4mvy^YRGJ3(8{yddBd)`uHK|Rz2-X@;^~z`@_~qky-df(ycloYDuo>hk+(< zbJ4_b+zv(i>%SoH0g4%+$~O`1tue9&*<~tn(NAq3jiwKQHOXBtDo6#G1)@sbJCmdt zgLyQRhaoGVBMxM?(G_`}(nM=4|BrRaxb5>d#t)q3@8zj}jyVubX02Q_lJMNSL3Oq688Gwz3{#?nWiX!|2)(h$h#w3 z^C=GJ&Ao?Mys3(XX?Dm*<0qZw>g6B!fS+I;#_P^H@G+)M&RKfO-k86PSw0Tc&>y*9^t1x$M& z7A7AO8U;w(Ft%wrwO?buOh4rPdO9%xRG1AW`9%KCY1QzGDP!5H8qGzAfp0B3(+5-g`%+7wH6~g9$Z2z&pRa&f0gs``zcR zd-i?rI`1Fnk1S?}$yzg$d7kH6J_UDorj%BF#+`{@!dUuK4ih$J5NKSVN=Sy z(8X>iihG`H#v^VHhTnOqb^pU3P^t(#q)m6r2%CFa(zIB-=PHbw0iU+O@GmvZ zyqBbcCLoyKc7@lMkSp8s(jeOI!nw_3NE{u~s;kBVHy(*|ykL<4d@b_;EZK#NTDdfbg4 zLfXz4Kz&_aJ{njb9P6X77(}LmD}=LtKE^7TRiQ`L3VY&$+icB4uODQnM4kj|Qm7V$ z%#!9r>*f~hIXBUtA;04cSDMZIl4S_*R2B-nJ868Oe!W}iFt=>=)rh%Q<>N%>%xMjq zyJOS$>(5)rP3ZN#lG9?qSz!4Oh`Z4d5GDb7LZnldF98g}??0gAMR9}mShRp@vCY~mAAxZHAGVX(~o6=d9*ST=cW zq3tBzv2_r7r>qPPrj0U^eWM0DQ=u-R z*AM26ntFLPY#LTJaf*syHQhp5--G>YyS{QnN4i5`2{yY+6QhKgc+{}?VFsT*+MdIk zH88b(fR29HmB!$B0JAySR*haJVw6T%)nd`TNosC7$LHTdm_NN0@-7{TN*6<-1V1d3H7n#9Yxvm|*p#Nd zcv_&%OZkLYPBes2j3Ap(vJ@T$6z0fFv1HmI<}}$FrgF4LcE|@WhNboGDhhZ;u)3BtLC%rU2@54Jb8WufYV!r}%T8`63jsxqr<{LIuX7+uUrj7`fQ0sAZl<1^hnbgk~`2+jDNNoiY z!2A$19U1x9HzUWPisE*RrwX9e-NFVErxlN8^o9hsGsAnlO_#`;~b0+NTpuF@e zDF3yuq;|OnR|q*8sH1D{Zkkj|&qcMiJD-Ti z{1Z9*Hg>j<(|?rk}0jAwY+$w&YBRRpyfk4ZpYMa-wudfgxegZpX0 z!8<}vPwQEfyr@{fTg-sxI!3#@MfBB#1AbJLRTG({ZgqF*lY)En^MTRP21DaYt7SxM zWW_W_LKuNK@bEzBkJ;Y_F&*3$MRp(hx3|sG3b)&;SVGD-G5EXU%&hXr_3gtadm>#q zgpUT8qJ;2~CJX@FLJN}x5YTa^;!!dz3^pR(Npx%=^@=_L<&hg? z2<|3OU<^kJV$7pzmhai_mwUxJJA3tiOS|YX`p&2EeR@yNcYyPf@ML~~+5V}s=E`DJb_?;!8=H5v9y z6)hNEnAGj@HaTKb{t19@^2ms?CJGagR@p10}zhP1zay+lxPAM3J z<=1Bv-nSrb-{qdW5Saz0*$@%vA%d1@tI;Zb%hX!gHH+P6ezTBKe-QZP`13M`NdQ(Jy` zltwM8=};D8&E(oki9(IC#cO=DOxIt!IM9{BA2< z!Dom+;?2YwqM^2SwU}vibSszr)xGT+B;_4A$D0v z>`vHO)+hRCg#Fz!t$$%!R$k2KY+XKXSk%jE^#j%HIk0Q8e|54{?B`r;OZDlXeBI`K zLSs|I!gs#`$*(B~=0wf-tH`@H{yZ}Phs*^HnqjmUWN0&6p;sq4h3QqwiKa}KolG5EM6+BB7dd;`mD+w* zNZK2xjO9fU|0ae}VQO0nDm0qZs;DXML94C5&dM-SXM0^tE&m+qZRNzI)*-!gdwinj zYGRfU?D-BRgD-!p&T`wW8orY>%Ov9+lA&KSC$(WAY&Kt&ee!#7%3V#TEaz~sxn0a^ z^Ug~Po6ByUOIfd(F0-4MnClW$M%%Z!;lhC%kkmsFR0{Kc9Z{w7NA3&*Hry(UKk4dp>#vR^c^SUL;025YyCoeS3OMs-`YR zM%Is--ZEhcW&M_ZVT%z>WS)X>5D^Z7_Q}!Mw%zFoEm>WT(Dyf(@4Jxu5tpE=yYV*{;$hj3)@D5+?lOD}e#2g``# zVXZ$PXRlwZnWdRk5RL|YdP!L&&MrYZm`pR)>MKqdb82Jgo)1jH%uuw*4v z%SA|GCD@>q#j9_%HS04LxvCxhSZ!srhPQ#edh)F@3Fg;J2Rvf#2ajb6#)YTKV2lJbdt)c~!wTXMibu1NL;r zUidUdZccKozyF9W(!(U~Sz!8>3>Xy`fFQB2@g=1-t#50Zw4Z%ES)pza@Z?F81s!|l zrUSXh${oz_kfq1ynJ_sP?3v=U!}W-7nbEB>w!=l-%;7H+2R)wVipy^Ii!r~T&D`rB z%akw+z-->s+MjLe;S}Eqv0>I)gT;fAVj?c`J3^{FLiMr|G|PdfM(|L6xd&dTd++L7 z(0i^NpPjP;@9N8~c}x++IwN$=w9#xm=|n*|ICBlk82Rldv3IVBowv{rLc-apj7%T> zwl4C>bgSTIgL1{vuG0}xY|Oew%A5uP-=(?Dj#vXpi>h4iP0or0jV?$vdAA>tahiVX zB+IKvr;h#dS07!vf&%=$Gx{yukoau|sIeFs?YzKF^hJTQV)N-9OxE+-TU$~|Gpq5^ zNh@sLSD@cDys-8E-g>(!qkFnB`I;@BE&S2>s>nkVHy-pCG#Q?2pP3f#k83)Z{y0t$ zrRl)$s-=WpjyTJos^&dxk2bbeq8t3$@Ioq~fBkio->U;ZwiQ*F!Dp}BOM@N=)$y=} zW<8kzfA*flFRclxZ+AZ0Sve4j2%8J4(S}yDL`&uASa)?d${2`0yeDnZVkS;d(3w+7 z%~qK2V}>ZW{_cOb3DHeny5JRfqb;d$fVg6a>;v5dy9Zx8S&I{N^Gdqc6Oh(-TjE2* zZ1M&+p1qF7t3?))ok-fJv^L*DR9vBx=|fU_%$*_NLC0x2xL?Z+j%Dsd)1-C+kG@ehn0StSS9Zv(UF}`sHHWf$u z^>ubzH5gtz-6dXOhxu$Fpk9%eh~%mj_koouc#s@# zGp4OCOQlD=|3Tu#xW_HBClAi8qq4Ej34KqBO(_^3)?sE);JR+5tMaT7IarXG|*)T1{&o5I9rHFR$g1)z|(y*8?ETjwm zYI`vu`jAb-KrRf*-h+EsG5-z^P-??8|o(1{`yg z_{1)0uWWy^e{$`^R9HGlSuw6X${2lWR2PXe#AKkD6P$)_W*74+KpkF_MBJU>V@xz` zebEy!GTw^7rmUFXum&S^t3w<7-0U=>Vy#t zZzckaiz3p^BmAjLvIma9u#M6f(i&#SCV3RCuEddFQs5AQ!G6ft#y7m z=8HU!rz*SqT#G>QPhXI%SO86-HOc;ugXYyO`5U>Oz~sqbyv%}lz>?M=`jwIVdR+b|y*q_|C^#L|SWC3gb>SLZ5 zp`h@3Jky6_c9))8efAlZyupCC3vGvfD`5@R5ZyJLrfxvBXgWx5~&OKEq&#d=0R`*lKPeCR*R+j5L-$?Rj@oNHgV{g&h>=0FWnd_ic zVsST7kXty~0IZ{KI@OVqGxPSt=%BpYfD?SyrvYw6qiFi!9}r;)1W=5TC{s9^d9KU) zyW(*%By<#RG&2V9p)FRXvU7{DgcqCLJ|}x-&+J7+R2Y&nsVo%gSnsy8#}hH8A2|lY zsjHEw9 z01&pjj&p*#t?0987=4K$i@=fAx6pSBQZg@6L2=Jwm0o&SC_!QoG`RO)aPo*QIfhA& zvEzMG)>y8xxa87j>gTVe;xeqwn*t2XF6m1%GT5u}8B>@5>9|8LCyiYMN zjQ}tLEnaY!&z+Ef3ZC)S#ij~x5E-FAAa#HQbJqXdXQ>wK7NqgA(nS9VTpjx9Hq}^7 zJC5HVezaR`LjxI3if>2W)cSRDj^*r&#J99Nm@uwEN%ZBq6OG8R;pEX`2`hAf z0)k+|!ST6?hPUT~%IXh7PLePAdIAR8L0tH<8NNG&=3Q4-o%;T?wZZyWM`sjoijBBg zZ@FHFYhWkkVXV|?*$5@{nlM9t@=G07*R|mL>0znoGxi%qJWu+yIywQZjgs%pf|y(s zOR$@DH97gtZO8X`9#4gyuG799J`zcqyqL}|2G&SaYE^;hHbZDpqS3MhYAsX|dkflyC9%OsBD}DPc;MYzOAVJ7P<+Sl!Q9gZ3ps?K`_hFFs^1e-~>0A&U42 z_AAxG6|5!&iB1g3iF9G~yS;qXu~Fc%NioOD`R4(5ZQ||)_dCs3;IV$)1lG8zGT}C$ zFH7&Gp;kR(1-}iIav{iCiTG&32m;i$LrJ5f<6kC9GC^@h*rZibjjmQ^G*PgCz++PJ zrzsD8hvF3*l-@rV=lRxdfk-9`Ah|QPr?c!o0ilGMfA*@-yroz7frD(3`6x;g3by=792BW9n-V{{~MeCv(1QY%nKylckzG zx><59j!~i1%k1}lYQk*KZ8-nh`PBMb;RnSlLYs6Y%rcm^u*ZlHvpeXGB(Haq$1%$` z(JBwlRUC+Z4ALB3jaxf9n;ie1!|!eU9q^cx7MS7#58jPEn&)NDxT5>GI3&$=Gn9<* zd!`>sYi|l5pt{0TuQF!_BFPoK9~+RV&xd^7uUHQ`euF1{-cJoJ1fso z|80q`o1FYd!aR~7E|9LHbM~h-ZAK`N`V+0x!=#-~4HztoBr z-+kG7&nwLUn}N>glVid}?-yk~oYZ!77G7k1n<(YrIxvg5aeI>>8r2x{!aS@FaZ24(eO~@>`H~yo)@EQ%Cq^p3hp4%%(XY?_(YYC$9m_B?Ow23|eOtG@1s$ zX?Au^#)%P#yQLhNxyL9kY%EaD2Ajkw#d{?oH7%%pk z>6D{FFCN6U5@K$6ef4d4C8I%cZm8~UYryIG@l~|1L9%{dn7ifZ<110qr&MBDuB82n zW6@eHEU~=2IV|>2DTCfDl|6>SC_rA%i}}kAr}v?~uU@Er*QWeX{cT^d9;AxT!p*i+V`161 z&xDcgH4=|mMgI;v;XZCM=3+}eC$kV4c&NsweEYf3jclolDecI#-)qQ#B{1foBI*js zG*IU)KWFO7X9r(V=5UZ8k^nEmEUK}hC`WoGNFPI4Z%Bzvf^xyD(d7ETzK?`YRPkP@ z(u0n0igajXG@KGAT53I~(lr7CpqXP%D1Ck1N1wq2grF6|w`!m&VF|il8bzY;(;%Qi z4OvB81;t%Q)*-?F(=Zz;kL?07cdwEzf5M4l-nQzI-0f@4xpRkXlWY^-I)TsPT;3*e zK4_m$vQLNk8GK7j-}Y|w$jpaZMWD2QOI7edr~!$KiFESNR9|hH$1AlMrJeb*=}dM* zkG@|O%kg;U>LDY_J2$;JyC7sxe>O~Z(%l#<{?WRoxTax8n zr;&}3o2Y}jUve0Vy6AWpe7@TWSZ4B8YhygrqyHmip#%b&@&C&oFdu)V_3~vYIUt0| zg@5L{div$DBY|~#xa3iph2#YZTzxmolTEPbL9^(o!&F<%HHEcfR_{*+d;kIsx$-$P z!qGBmBv!BfZ2OMWrPofZUi(>vVM8e+uHt|+$H(R#tf^4q56GAF3Yv&?yec?G?#0D0 z1oqzC(-}dS{$v59CPVyJQ}s5xCJ=6IY^NkQ&3q`*+<=x*`C92ex6?KcX6*K4y}zF1 z6bZ1C?(oXx1pF(o6Yq(|sR}lUJQ7DJ!{)VisnONON^rzcm8jFU!oDwu5G?c8ov}v) z%H3yOaOyd1Zr9;nI(}I6)j%%9N1UnSikvMSQ?-EH_43q&Y3S{EOHLb~d?h3Hn<>6n z#q_Pp7WN>n9pDbg2*7+A~Nry8sHSw7nSh^dwx`Ow-%B#Aw$RXQcC5;R4!jo9Pz~`FO&_?4_b-1M!x>qA1x!CaVWxOBBe?K9YU{pkI17meQFFnl3#~O9= zhW}Xi2v>a>yW8eLKHkE7csQa}lX`LeuC_K%V}L!Hl2YY`+6tcOCnTNJ-BU@lWeU`)Op+;QgAanEaI46&}_BPBgL$nCX`uBTy`{HI8?` z-{IIR98|^hS7R5?UOU#bx+L9MA+$fXEi6;l2Q&}1f=`L>lVE&Qq= zQIszUEWyEc(_%9?k4wXyy{4}W49v4z?9CePVBYOA+XUiW9 zbA;x#WFPL%ZXaiHssrJSW1fu=M@mTa8@3pUmr8)=Df^-J!#43Yo47gdX5Ghq0Wy>> z$}!Y5&5b~1y>Ei7=mUJ{J|L|{d)Wei_CAt(&Du(V-QiAUML+8a0rQszBvzrB`VZ*I zDbObg0B}AS@OiIpT<#NOZ5a{ggjvf-;2@^DXzH}a;`;^s6IN2mABbial6&Zi0ZA`JjzmAx~z> z09ho7JV5S2k4>?Jrl_fojVN_U%mAS{M0q81wJjsbu#z@q=9i3^;!*1}$!g)kA9gS~(nHZ4aKEqQLDsN* z7u+MP1u8C5jy38j`lP|SgAlbE`XET=@W*n$yKIPmtv34J%CDY*rld}>8&6zAqTX6v z^>kjRY%?fFCpmes=$MvqU^QL>em&@< z(EljeU~6-krHZ9$q}vxBzD&j^z|?mdn_6Py(J-*guxh@wBZ@G&Fp#`dgHgjHvzg*v zj3&TW?~g0e;oX0V$u@eRO)ml1a7PDd`n$lGuz-azJLZ{BPpnl1;Z{!--5j+P!*sYA>!^=WE<#$<6+P+d!E~fha)_Y&gpk^a>4HPcm;Z z8NEWtN9yBT$K)~XzW9c%Ojr%{M5iaT$ji6OL*G;F%#xBY0lw%l zMBYAA#Vl1gP$oXSTX=FPYmLd0Gqq{DW|`?fH$TZ-yf0nniVFoBHNCQYT60J>Ux4ZZn{1V)!#vH&S(?5^N$o(b{wKEnDx>NH#_}WNf2XqaF=#Job zbgu4h)FW+ld|P}ue!|VHB0_VFMY=E5aI(NYi!3(SxEV-e;m92#z_#^J>pGynr$RQ= zNw$PJlJ_LMhdmLZ75zeA;VE(L0E443~kytpN?{i;l~w&eZfwaP#-Hm z8-5P!GXq@|I&$P>dY>8har3fd%&%cb6Sj8AhNHXgoKWc=p;U;vJm!5JD;Y_+G88=8 zrf@wn-S`JIm$oK^CJ${}r5?4KM?zJVe?cC%G_2;GT5h#P?3-t9Vt=lE6K-EU)iyUj zROzttYFHB{CQ^KN0>I_jVGWmhFiSZJ3_aR1Sk6uJ?i2R+5dNP2)wsq&R^RmthI8O% z4l3xl-fSzU$R?b6@v(Egc$rgq=c*KY)0JttWBJZ7?c(Lbo09IyT{N|acuD$ zfh6%RCNpR70@=iD+G~Pv0O-asg5f?7IJkX`%wFST|N7?TmsVPM!m6_+gPzc!&Lz-f zX4^EMYtyW+z)pM}7D+Ll{hThMqBlz&*Q4nr5NP3C3{Ce(Scj^WbH-505Ab~lfeiKx zddUO*?_#^44s&^xuWa?bDHc2Ng%qclv`JbnDSVh4R{X)&gJv{XXJi-3_e$B+<9hU< zZkZyK3sJR4vR<*L@!GxDIhK(eyt=(I`5u!GHTJbH?h8WMQgjv#q130polxpH+8Rhw z7Kk2$vC^pX@!g)r#YwmebT^GfIVBu9V?KwE%0{3^+S3yGx-KnV#C)y{7g{n6CHc5p zBbw+REcu{~L5+R=P*Z@YbKpt7jon__kc*czDF^+OuPj9}07P9q1@NB#84Pa9NL)+9 zJT=nWl&7-;&BMoMPSL>wpk1H;4&UYa67bhHuW6=njej)mZp9^0R}9CkzRYaLs}u9g zI{Ai3RuR+o9{)nG7wtCL_a^K>eMvV+{OOUYD4*)_UpLou#@dr###CI~(wDNl~4*uskN1`9&TJ;D)Mk<|WHka`s(E#}d~m9bL~` z3^gj{CbsX#tPeRIL()Aj0bqe>GC<$mCtnNr63O+Sc)9=Xu|m#e^P+-@zu;TXZ<x#_^02*Bt5IsX4w`@B_SIQOzGGw`&`{lf6n5fkBzFrH`i z(d#$u0`Rt6$O&fX|KDdt;B96QHqLY9o~g(5^ngHbgRT9?Ch%bgi8u*9qGh~!Dbgmu z;4|zo=4zzN5r_dhRcx%&kn7EI#@`geI)2E@3Y)=|ZU??SSS>#&XmkP>c(@SBzuG7n z188^u<0bpYzkEg}vRRYj&H=;tB>`PL>X`v5`ELG?F{$6ymMOGRnyy2%x?dm8CYRcN zD|${t)$KO0S^RiVN1n+%2=*+S48va-zSPODz2`gF0a@Vde<{3jn0LU8D#s~c0Ae*u zH<9^tr}8dC4~@aa-yEt=m&4{_(^2Htk^7TEe9CU4MYC zU0gl5s&Zqg!%0_7vzag1oY|@!tGplwR4(UY>XgfNc#pNHkRw5n`)+*$)_Rxe9=#cka9 zEPdA2o$sp>M9*~#g0+o{gB*+g0j;M1!d-N^*9^I9BUdDVKLH0&>+j{=9OOk@vfT!} ziY$Oc5P1klwRipjjTBw=Uy%RPxquHxXb~1bZz)2q)eM1@G4lK{5>hFIINE?dOgdre*yFuaTtR9hbiz`g-D{ z{J&Ov+pNu3-A3nFX~+;|uCXfFc{9(DPl* zlCzloP_1a|ON-*z-xh;~Q5g*s3$Z!S74b>w{p8kmIKHGD6MihM+J7nu4pVyeC9jOb zja%ulrJq`!|11l=TmK8*j3|EX*S)(Ljvud{@iUpWT~)~mncX*bo3K-(`!4oF_3Uad z7NUMG6?w$06zp(4;MbRaXvgt;Z)U+mjvpJc=E$_*SJ=}y{3B0cp_mQD4%t(#2Py*r zMdebFyyJyhLM9dZDmizYBY#C!0#{jDQOH*9P|3OU;?|l>oQ39>0NHE7xwy4FN_Gmb zcojxlu%4Y=fF3>wZ{6)iGrW6=Yo_^qnF&AwuZ!_3GNs&5?=X;{1MviW1?_>rfl4l; z?PCS!#T~$}C0VqxHSyONIaCAU4O11>m(w%icReW==hR1s0RhY>dMRP7L6QV7A3Yys z(f2Yq?F7J1mruV<_7pTm1h6;7q{7JNQSXR$2DMupZ2`~LzV4_Y&tUcO>V4Tv3XXa9 zAFaC$otry(z6JniJB}}y@YnZk-ajByF`43bA5{dbG)=Z-v{7x8UL*QxrWhq$ddzV> zp&Gfo6i;BlS7{Ka+&_|c`UB02XuX8(ULKyYzojBH|Ekz(T&Xz`yglqNZJC)VipaN_ z`YXiz_*WG5j~@nq`fpOm=tuSvq@BheyZppSu2U{DXx?%q-XEhO?>E>?YmedDX`?Q) zeACFwo~V4W&+4CNuoVM?P))VG>Z^oQUdKv0Rt@o@(y^P4$p+`OZ@jXPZCaTokpq1R zj%=G-1#KJ$1(!R;pgbb=xVBW^ zvk_2EQtrx={5=?`1w76eF!Y(mq&&ZW2%qQ3M2LHP_u}k-EMT%zvaBq8ix&6`5RM#^ zzZ2Oah#T4mI*T|1<-ykFN!Jw1v_M6S?D7u?FCXasLJ{foWd**zAFKg)%tj%eL7?10 z6t4hqEu?sz0mDi|K1hwOS`(DdYJ@`dZJ&8to#XB+H;|68lw+8TVrlP@4TI^_vGb;@ z0{$Q^lgmp+{gJzpUA&VT%HqCd==3K-2tid+B8d|Xi{I9Ycv|NYKtfdNxX~R z+;|fmvU2E!`eyx4NzZ%*dM5nD*rR#;xTL9{IyI4wJpsgA`c?iji8}Y8GDcd3C)tf1 z{I{RQ$j2pDY!M8~kf0#z8~Nb;;;p&fD51J(KC6o4V>Og@Mw}IB>egDK&0VhK zrUpDcWi`&vpy&8pWmzg++4slqYs469G*(7F1ADJ{O;t_Y3?M8roL$-xC$=e^A8?mm z4@W&Ya1wF)dVA&hO(R}qdp7;L8u6;1+DwfN(Su`^pW~_S9I)LBB#N!c0w#`im4s=D z$tqzGNJLE*RAvh8y4Va8nC>&LKxoywQSrIk2Kk|dcytQak>Vvp@aUS=b(kMQ`An6 zLi@_0brbN9TdV08)5dNMrelx7``OJTU&!~byU1GKNTGQVpavpIlE1BF+BV_NB=E+* zcy7ps`+3Jh<(S%Rye^P)pHcpQnDqWW0fMVav7Tn=qYmblLhZtu!P{)qy<=&L3l8{? zeq)uJm96e}sW%-(`&(;2&|ETeZoB7NCu5ZldaGmV844pp{id5=GWD|1OnM%t{d3d% zy{7I%V|}iHov&WknY+*)7)N2LWvV&+p-X%QWJ@OPav^`%(-j z4Wi?4W@DBf^WdRJWU{axR{whBPa_-&`k>%Ktfg>gY|}jtGbnsLgm2z7$DG4llKW~$ zN9?2_gni_4@HTSTYmMBtqGZwd03x@>bGP_T)>P}-h`)q23px?TKXW|Xl(Dy=a1yt% zc8Kha5_`y0*6{*p7%b2A`Mr0x5*pNsj+RvQH{fBx(Tj91*c8O5%vzpYMC(gBx_~7bi@H_tB z;WRMKO5>=fK^N^!SITRX2DMe6OiywE(KSL_24=#!C`|Ej3*zvozH9wEUo4PKjFwh52)N%2mp zr;`MTskOH>h@5q!S{|?$_>V*Sz68PeB&}fOUAfuMSIaq z3p3+D<3GLb$9miFmb155enjX&JX&ho9u1ecq8^SMYj-vm?sya4O){!Kf*3+C5M0-j zjU!24Y@~t93O|@=x|3l6x>J(8{Q=dTF?(sWoUb3^-4+dB>WX z;7{7KzVmt8S`u8zBN_Yn&F)BwVGF-!Z6x5oZ5l@&?ke^18KgG6_M6u87;t#chC|V9AMAyDo=(LP70Pn9i=AN-6|qX~xcl65m&Re7pT zHb;XE64lzl=f0O3yBDvA4k}~~XtDhd5KH|=3XF-)j!$}_f&Qh73 znamq0fVD@%O|em=(*)I->>r7S9PZnMCiK&=au)6}F`Bw7XHp(}RljA6U zUe!vJ@lf>MVswf^uPS4$D#&w-_apjbISw^i;|nLQ!H%1%oCeg8y}hFs_FJ7i8Qd?~ z&V~dZ6Gdk4kpF~s@#elW8upCp%=DEOgvL>q;{W?Ge!>IHk%Q>i>>OKYpIKH zD{!_nU9bWt z!++T6cjoqcW~qf`#n+}n5u?7d`(q(-U?am3i=~K@x!!HPZt`m{d^b+NX@IEGTNpJ} zT6Lt^o?9w>*Hlmy6V#svCsS-CFIdTyOF44$@x#^GzX4arxr8Kl7ik2wd4cgI={8!w z0faOE8(8!1>A8^*`;+q%x(|VDx7f)_KL~LZ@_{yIqfe2LF?S|-Hw&ZSiDT$Zd&l2} zjp^jIT&6i=>Cbl*LEg5h@t@Y(&@tGk>p)NQGXQDWStVfaV7DQ57T-)&E|SQtPrv?- z8G1~;XI`U?`vclGKO2N&8qZnQsJ!MN41?K_M0)o(B!<>PY{F~5dPgD5T*-DsbDqpx z<0IYk#XWm+hUkxeOK;b{Un(*+j4bsz)Et@beS34-7Ex)E(3A4vaC7k!+qD*SWA20{ zq|TiB(bbb{Ag@UmHR&O`(CSCUpG%G`CNr;Ly$eS?Xl471F?IV8z!j#nCKGK_WZEI- zB&tHe9yC;44{~RBUTU6LsSQF<%kgE5P=z!-8!28a;hGmsBf6}L{z-D1pmbi17a{plO%g?-BN+qwcCpSWdz{#vz;`R&DHx@&@h5^{AG=xff)gvVR znm5;$t?&Cd(Jbg9JLNcTpBE|%z^eIINhOFgwo2ay>ZmS^YutZolIfxzZ8cr6U+4^m zXgsSG5XjN-sbXcL**@i4K<;zQ;7U8-LPWEiuvwaRI(~pRiW$K;jh&L!% z<=Lp&WP6Jb(YP*Te|KQEvU4`?k7mI&WH<}n36r9tz1S@Wf$t*P;5ku7F6lcT7swP@ zjE>`CpW7@w2J~r{qjfqsVsrd=p^pUFM8Mr2=k5jIE32=Nc2s&7`WA>z;6zbOj~!ac zde7pEG(|8R-y_9nYQjMam_&(T7|@uT-t9?W929z=dhx4+F^EB5vfLvwjW?nK`Pm<= zvSuj9;GNB#8mn(dsU7bB(2l>PV*}4jEo+D8boM$Va-(v?%DK#PTu5)cfr9mOS3{a6{6Yn zs8jn?D5m%=BvXl6Ww#BO*gYOo>4PNB*k4W=FO)MFLIqjW@9`-&EA!?;vm@gMOX5X7qx*LKD`Z96vB~ zw1|oEShh|Sdfe)K%%>5Dt+MOie1g!nXym*4fCux z-F&|d@jIa{<<)_0a~Z7Q%4x$|ndi$1H)s=lZ~uWoti3|SrS#3W`1ef?76?~=2oJDD zUx=mr0X-}Opscfc@M8(+y;YXLGIz)=XsZxLCA|C?LNZtP^T49oL%&|)g<=35B&snz|4TdQ$;=u$sdqdg<|I6ng3urxuJSRbLfOArhE1b-q zc$bB$n)u2}wKeoMU*Rj6Vg|A26z>qY$RGBE)dV=R}zt`8dt0jCApLe>6Ou@-vJyGNl3^S*4AHGI0{Lc0kc@QFf zmz6qcOn&_ek8KYA?kBsPYd4yW zJLCv3L~$_rY^G5ZGn}7yASIT@j968k9pu$3qJ85F`u$9dy}RMPc1yG^DRJ0c^~OePGZZ{ z4cK`4o_^|^e=fl0sUI&A-!68fs7k+z_zw%wmkPt`ecMS>POcifXY5i+&q6Bka zzo@@7F%Vb0*XP>T;^y~YdgkE5IQOTRrk;n@G6>n6zErqNhS&<;nb_&>)7;nJP7A|j zR0_xeFF|f!Vs7-_0}=KY^oi2JA(HF3tD7)G0MB0-?$5DPxjpx=|84E_Gg_*36{@7b z%o`faPDCcm0n}#R=JK$+XvvxCD|ojLGTfmV^4aE_T{BeWop(xds%~^lj!#foX24C_ zCVYdJSD6k#jN$m0{I*wmSGPEWPipqu4g8o~4g~|}rctql8DjMO>Rlv8Tx(k37+Rl$ z&^Qe0VUhQw8zY3Dm z3OJNRLaq?=&x1SQ)c2GJm--wt{19HM59)u`Elc#Z81RgGNS;G1p}QHzMa>XYmbBhf zY2Z=mm)CbHPhNCH5Xq1Z=E|z>nrWiXR$Ft{M(z%;;yXPWDq>4n7!0YcX6L>CT!H9e zZ7aUUSI!8fwXv92|1iyzn{&$biW=$hfOLnAxwrsi~DsQU>y=4_laY@B<>K^@-9GZp{Wzs zY}RKNu!6a3emPE&r#+^ImPr@eRBA5(nVZM%OhH_5PbZ*8vvDc+OauvFJ3*f^JBU!3z>RL#_sI38~$RU?{i88fNA z-EAr+-ZvHRfv_y&XzIrN@8P6`4P|R8wcVY6u~o-*BkyBg93O`718ha!3b za$Q7QO5#&78Gk@j4*YW5FuI9ru3<+;hK&@7>SnJQyvf?{ej@!VEKP|wZLow#FVI$d z=dP$_Jfpme{o#rHg(13BRW<`2vLzR=M+L!aM?PiIS7J_TIsSv`ar0rR?u$yypv70W z-)@l?1%{t)G@6s|LebJI1)or53^V(UbrHXA&gokaz=Q#R^DzTDI`*WbfSXJXH_Jp# zXIj}{WEis?jMU=$>tU6|&O=rGyWT0cO>>?^hs}L@E?Qqa^0*gvt7g2JcV(FdW;SU* zzO$ynVpV0p$d|9|z4xj=Dxn`RvHAn*@)ycD4MmGb$Vj7_9@Vsre=+`ORb!36;*K)(1J;`${cLY}&5y9#v8kq!R*Ckvx6Qg*rf)ccxxNSF2;;&Imjgxt zGOYyI@CsWWhbG4G@HbB>8;hOVxaeQtbx6LRWu3W)4%V(i8}w~g^Ol6D+L>Li?!fQ%9!-GNZyG&~(Ta>XaO zct_8zELCQ};^QdUCKO?vl_#2mKes++15Rnm6c}h<#^3#^*EQB>W?)k1#bUQ{MWUBu zSwT&FkBDk?tW?R3TaZAc6ZZVg+EdI_YzoRx&3)*s`h&dv%3&z`|Ha;WKt;7>>ElHb zkfaEbgMxzOAUPDMWC2lvk`*L~faFwA1j$K2zyK6cK(gdmWJHqWD51!?idaxk{IA`w z``I&Z=Ks3qO;68nTuauvx4d=kt#i-bXPW^zlV>Ne`HfJVtHes?D zHb)l}oq?Xw%rG`RAxmLBFI``~SxFeRFj@?8vUyuag6v&3>^rD!lm>Qp*U8OZRzr4^ z<|Ve&$#~@eXd;YgroBNZyw&qVz2)2~pOmt#uE7VoSkoOr9fDWRYJsn04~OeemxG^1zVrv3Fyh*?J44f|pevVMxW-Md9g z^D{WYn_;o2!VjmfQ*Etc`=@h03Av12XSMA!74wUl9=@--@%+e#jKZKM(2my`6PgaK zS-tcLmWD@VXyrMa$?M>fJ$0MXd)Yl%+jSu(?09!Bt7wy$!>=q6>AeJFj?%*Rmf{N$ z>@rAwdU?8Wn8$LV0BV(ULY)T>v)fyBjv>aVHeXOS``kP83My&%?tDiw>!O-JPrPvQjev#4Ma@X*78;VUo7paN?NPJ9ll)a0LM93(GRU}s zrf32QOy1pQmU=p44#Q80E^5`4r7IsAk}0lv+@N53p5<-7;;cL#`+QEJa0iTZA0AY5 z8kvyA?&ezg-n^nFSk~|(t+`WwkfM_G1*aY_lM@aT@;b9Qb;1@f-Obw5>$`V-m2AA| z#TBE^2Pw?L-kVN|3VfagUO^i?c+g!9d$Ha?eKdQt4xB@9nO7>o>K?&U9V}CpGMkn0 zn?^)#mMu=oDynvl|Kz&Q%}Ug{JOl{~g>~})w|4AmqsKM9m=GNcIrqmWj}D6BWv`#` zjLOnJ6CIg&UGi;XB;XAFaLCYhDb|AL~H;p>Om_&v0QgA$; zPC2Z-z&Sn-M+x1jMN1*uZ51jDb(r4lE(V@ggnq-@$>x>{kN}_e>6=I>np=lnLT4M4 zBioXf$f{~ETMS#Vbgw|)^pawFB`qV-@kp2n+E%2j@>2)&!whMY$2mxac<)Hxx95)M zl-XWskjt1Il*DN<3l8wYUJTxEWN=|wJABKi5;a+TNqiH4tJhSWzP7Nn;pl9TH#I42 zl8jE22{OlHs>(!^%bT4WJ+K{G9N3$=VB#Lsr8&TFd$lHEY5wrZCC>Y~L8inwx$us^SUKjq2{rQ~oTN=sCfRd0sCfz7Z*${Pjz$^vRr#B#jT^kNp zQ+toedHy`zx{!~_Eb1nmrJJ}8-cSnnID~GV<)yx6aKVQ3quC=7BUMqT(4qwwqcCNi zouTOk@cDoT_U8deSc+f9iSPhR%Y8%Ts}|ODSjWatA=;Q?T=zDGmu|0ox+_IjZEXcPV4nN}a}!M!w|Kwjwqu_+MY6}nNzBvVSLDylC8 zMs{)=+4o4DUw`td#s@X8kkFmQdoLW4E`0Gp%80KKaa5mXu@Auzy_tz^b+3cQ3@o!> zKe_LU@d(`Aez(;iBr-IEFUvAzW1f6>vnlTMaY(C&#PX|4H{a=pAh5C>^UC~tL?>qX zN_lk&#?IHp?_9x45|vx)uIZ z$H=T8JnvHG3a749p;9SkNJg)AhZJfeG;HFK3RwWKIHHW3S9E?O(aFSs=Ygr%>m`K= zv@}yTAoT2Y`T?RaXM4MqBz0^I+PZt!+@R|;EainD?uE_8iUmg{CPJ!)&owN3Kqegb zPdJm`03iOWe$ICW>Lz&rU^&3YOb){UEA+2tLo^qD;DAPOR}R$xaH7#NlP|t8Zvp6{ z+;1SmehV%3yFbGVh%xyDEwv0K4E3S3rWD?e{VYis_ z&;$3X?9#6%$n>`i_6m=u9;_eS-j_?SiNtG?wT}Wc1EG65KnIJL&O2*Nsx#MwhDXVxo97%x*=auE*@?*jh6)j+P%K%qSMW zL(TZI-BMZ}fGYsCAAT&j4fK=Y01V8SccH|w$4lTm(Vp@_k{9EM?04|{Rirf8<5^qo z&8+~CLHcAfbQZ8#F63hCz{jH(&W3f<;m4S0CKUchsmIn59vji;kl7nqC^nOE(ZZ|! zrq3;Vq!#c_oBRMuX1%YHCL7<7ZjG)8VCTWJXwq0P;nJ5Y;YbC5n+>&g1Z_7d?`UJ8 zv=2~@Wja6p2~?>*aB*wLZh3_OGMBf0yabo19@$=Qc%8KMP7&J0K99`W=jpn5^6Vo? znHvDEm<=960j3qHCGQ#qFu@*ce)Jgt#R8E_j{|Ye8+y7D~7;`NaT-B=W zeDB;#&zAwgIKhj0X7z#S-ofpM+7GIj#98+wvI?!uV`SGa>aoFN+#RZX6k!4kH+96f z(|oe65AzvdcW-#k zrhdUzOFF(^@nV#TS7VCG2ngDZHSq$=*MYN@GOZFM&2JOipJzQGc&2`}h2+aJ z4pppA{520iCYIL$A~UOQqQzTY7YA@7)^mITKQKvb=F1#d8^^w$cc4OwOALD|CK((l zKpVm0(k^)wwTMkUZH}wflgy2bde<~uEuU;SK3sq~sTU31Xj0_jPQ#j;l{gmZyDZne zw_n-h9X~@~S}`qSYd|!FY1z*i11EoW?Cgp4^K_F*S^(vH#!nRrxL;G9 zXJaFjKzVXi*F-J%%krR61lxgIkSnvANlMNpCP?bdO}PdSjWDz-*{+(IKFTOOK9@R-!MwUrCq*cH6yjzD#VI7S_y+ zhdhzJTwKqw$%}WxLnnyNM_W#eoOmIo1GkzYaE5wcGpJHei{$ChUb4LF)cEH~Ep+>$ zxGA}~^aUk+XSOe#8E>~}WQzxZZDfiTJyZ1U#)F!tN!|LZZ1H9uQ3DswDHo@y^eOJq zF4b8!gD>s(5um>SUd;y68kwx`CbT(jLNaoy+O*#DrVEN=t{3TT*T9s2tzO6A_aoxgiHFRhfTV}Lqa2c&LDsqo*9YEJ=Rf8uSzkCY4v^ds3 zZz?~=3Zlp^aMHfF(7Zg@au7V=QmghDMcAZkd<9;np6A$|W5E2eUlwOgPP`8}ngk5K z@`4j(8v~Vs`9bIRq~0mL6jd+DYC{`4@%$P=F9`2L(!=cT@=@=>n zUrl|+@Dxl~4S)I4S!O#$P9%)$uxfHsXK`qseQ-uatvaDyX_p>{jp%J-JL2tx0mvz0 zK%<#+G{>C-q2?~t+;9WgIEWnus)c!QDa3kqPLkL@xNg`2`{5t-vOK)0t`p`wJW;XX z5A=*~;omq#U^nd=MwjL-2I(djH zGxftX-FvB|R2u?{5=c+ZrN>TdUEm2Ng|7vLdqpJZ>yzq(h3NpcV2<(2JkD7DLsoLp z7}$X?qAt7zPO0IC+%-X77z8#NH#_t&O7APbOjbs|C*Rn_B8vplqbz7-ZqI>R6VN6I zk^&d!?M?o&37N{or6VafN!iUw7V+^2Gq`>cau8uriR^pmeOp7`#o95A&(`o&9A~dY zQwyI4ImLYm{IFfm8%ANvL#00b`h3xrE94v{rtUUpTGtZ3BA!f1 z-7BI)(zM!NfPhhSDDw9lDT51!Z8xs*QAa7;9razQ30Na0^i78eGyNVbwHgxfR?{BZ zD*ua>zGA%WCiMmtb($v{rlB6#Wnxzk+of0$yxPxg3r{vYV;!wu-@l-jf5MN> zb3!hbGjK;r@|r0Rzq;0wnQdj8>MPIH@~TyUOP+dR=)qlz{4(f-W($@&IRgpvvn|6& z_zCkkg)GFhi^i^Bq&0SDU6#JsYwOb|xi}IyTNKj3R;nX*S)ju)Z1y!zO!q9~1&5eE zksT&ydd;x9+i9y4QE{0wGUX}x{!%%kwDBM|Lbm>pd8TKtJDgTto~D~C*^p~bEy<=VbfJ`8!>fwI8b&-Bbq3r!j@E8`w5VZSCJ@s z$L-cKeQgwSBL@&&aCb#**fk4zghp)IWxP@n&&(=Jb6R~1wgP;-%_ST9Y`;yuI;Cfu z^fTNaFLSEq?J@|x0x?p06EW%q1H?Av+pWs7S8cw2$Z#NQ?pXj|+|aD0N4f^GIM42O zcJ@McRG6)qtsj@2Cp}U*}GVo3{@+Ou2ztMJ>fYyJ?eYWqgH!@Tt38OR4R> zZsq00c5#XAbqdTaG*n;N?!;zRip)|wklJV9k)F?tj(d_{%4EoT8>C)=vD-~X3SrVF zKGP;L#=WbG4cz=-n3G=^GV;jRuxU zInFu^+86q(*vZ968D07w>?TuHzcJj84xPDNZXe2TX*CkF>Zy?=Xm3gUC9Qobp?Sft zu@OWbkSmo!fd1w-2P21_LnkU#qWE5tn^jg_x$AK)gjA=APJ)h(Fbyv|5SZcWn}JF5 zD*9*%?YiBJ#YHYw2HNr;5>Mk6u;oPvFlgb%iubXTztl^Hh@#^QA;Kf?bp~`SgXV4- z8gw?R1^}Fp0sxWO7BTg*vsQPT(<)|Wg0Htly)K|p_F^e=7@Jy^uy!?~@i_2d9J~1@ zk1}DBUN=v7_oFD4g}9-2s+_jP)gpD2MurMDMBmuEb25fX8jI2afoAB2tyCMmUSOHc zL)%f6Pnsg>ky`ImG;zN8YFyNgI0Lzl_6mMRNp@YLa%RoL^Cw!7-_N6&2*l<(A5J89 zC%OsELrSHTHvz)(Cn}8~if8<(3;?swK?x%I!lRXArcxur&ugwZn2(uu7Ba8huGh~W zBo8f?p-U{?KJ-4RDgIP(lfn_Lf?N z`ER^tsMsN=zs}t!-U%otO6rB9F$mdO6h&)5D}BSo$IX+IX|jf#&9ROa=@n$ySdQ6jIz{W0zDzzO)K2` zrYhb0#nZnv;CR@R>(2L>(_7>zM$Vc(A^33?koAbH4CQlfBPMI9$-4kz5is{r#&acS zU<}*s3k6f}vxK;*82_DLjZ{>br|BKvA7& zpm>b0NI(fhAnOHeiA$s zC4(RK7xAYj3Pfj0%b<4puot^Dzvp6xm~TXDBBrh1LfW(%2|Z<%8SU^X2_@DI?OV6Q zYoc4lH}>)jIQMKRH1R%{yj;Y?@$J5qBhJWq9yek>x9Cdxd*HF^A#NzjmL?x!gU{hK+1z-P z$<)a7(U;TyJ&3WAeKdYumJ3A@V(X0IeRi}pJAl}+jYoxKG%_fHHZqE`oc0z)$pW8Q zdA0%Aj&NSLyQYb{m)QGbg~YCW{=7wTODe1@JymI##-t1!#8(&`vWO&$L&w~Tul1nz zjZwUO*W+=NfPk1extPPd&v6Jd$bEF*Y`yi~+=urD;ZlzNCQ=TU5_ywDqw6C~_ts6s zbb6%j)eqQj?#oC%AQ;XJ=ef_X<1BGs_N9(f$rMHpVc*U|w#qCsR7OFAmK|+n8K+y-5{*+mesO+Z zNlo=G<*(~!hqy@WCqJ7j+_qB|QbkX-$!R5-z5r1t-pL#@+ynSnfUPCX*6@0+mDMxQ zIPfna+$LJAXQnK!R_YRqhR^r#MWuv!8Ohd6T;TqZf@*rrwZ;xM*A>FYAx8P!t;zD< z+arh9N1>1X)(rvA>e|r?zfituuMQO&K`ho~GcjGjCzW|`r|^PG%bQ04DAXhRpMkRe zzS`m6dbZjhwa4^;y0%|+$^My2WZw&OjTbSJ?nT&({9zL^L(vr^6`})Pq2es)1MZe* z!;w=JV#UUdljeTILs4xSHZU4_oh&Z7v_aDE14^ zD@<8bJ_(>Z8eB3N(i2XFm?Nc`aR#JS5M;*FpA8MJaBYd%X_ZB|^eVW+BH+Mo@wwHm zYej)Kk6f%JwAf)a(K~BOUja1{g7_!jOuora^Y83}Ih&tWCF&i%aMRq8y@zH(zM}{| zKHUy3XHvsR?9HmB7cRdjC@V|Me>P~~a zizQg@>UB*EpXOn?+_NE|Jkq*de9LBjztE-$hP700aJCvYy~?YG|^# zYaH_xM8iP!OecAV*k`p&d%P_WxPEJTa^os#XmOPU$fBY0G_g+h$>2Wt(%mYXgbVEs z!}6V{az&x?Y`zZfj=km*J1}5Es}U^Y&|d!JZP;}4n4M<=p#=D@UVPGE-u>{vYfk(8 zM8eXw1W7H_Z?zX99+Z~ayj?A*=&#qTwON>%h;B7jjLUX+q-iny{M2DBL@)pyW85{@ z7e0-H64x#n8o2Qu`$&BUykLXikMdzRxroN1(q14R`JFdia2Sd%fQ+d5!$xQ%%gezT z(q{8_`H$;G0t)Cby6H*!o^}U2x<@HeKt=Hsto6!&P~-kywYpMT< zLm~Bi!w;ovF4aF)waKS{Pwj!v2LBs!IJo~Nr}OjtHzb<=i+w}_-^CpQmb}r}U_%#I z@DC>htv~EKRE2Hs^Cdv{H)(cK*)4$0hYNpbzVMeE;tlqFiMDHh=Rp0>2J!#Y|H-rO zSpAu8)dPJ~7 zLY0#TM_mQzRbW_oPw-zaAPCdenL)=uziI-N@bxTzy#lw5i);Ht8NLGS8oe@({_7Pu zPvWWF{(3j1zh2>6q8bJSFqHhq#6Tej&94t6_b^KV*nkS9IR!}9c1VD!_b=C^^4w1c zP&t2j!e6iX`tvvZd=I~llb>Vhr#<|%hoAQF*E!_p{P2H#o-T&|ipm)toS7L@c+4C4 zGEz!IyEdMy>cK0J^nT$J|5tkUxz43$pdu@HyaV-UTaLBc2r|5LV#4a)6)BQjl0n*3 zy8FK!w8)G8jH3P$EB=fGe@3%EJ?{T;kNb0V2dtrgu26qw3jUlA`Cpdp_)})e;Md_h z5PFj~wccrfW zrxJWW@B8l=sDJj!|45$@o{ju2Q!!{@sSNU}Hh+s(P{+^t;A?!l@X-jha|(bdHu63L z8ONT11m%SFFc#<+S=z2RG|>amn|WuT?V?j8eD0CuIOO+40Je(MVlZqFhC=ibwE~xAFZoHg_Cz$ z4m|}>>J2m}oY)CC_84e_1WO&S0Qz~epWXO#fc&(x@1EzU2l?q6e@-z!C(oZ@!9OLs zqAB{aCaKdiwUTaQMn|5Cdpo&Gyil~3<;d?D^q>Q%?<|z`M^JwY)rhyZrB44?7Q+*< zD9>IwQlMnvj|NKfn6D36;fj7S9fL+HrzYuNZHCzZ_P*N{``*RV1FBPX8Tf7l>s z_*eHx1^ppJ{gUqc^Im@my?^%M&$02-zW%!01RT*%zwy)e{+f>X+ezx@*!Vd%evXY_ zQhon6j^Z3H%)G)u%ysF@Yg%xY`JWZ`&RLY&GNoiY*wYY2Htv1y+t2^o=Yzt^Gs zK{9)%0;jug3JrSoOnIM%`7L}O4YCj^zh_0d*XDZs)4C=>A0JylhqO{Gbb60W+5Sk@1Kuy^f+_?xCpw zCvH5oW1l8`$S7lQGppL1;mw_h1&aGr%v@;%D!R06{$!wQ)a>`Vq{B&x29&1=?x}#~ zxD4{7y6B|ekFi(A6^>J-okW6k)3d^em)YeRl$DH9lYDff^AL z#g$Jff&rP$Y*fc>q)8<2yKUvVDAZyoyL&jT?Lv&K^OYbv`Po6$twzYAf;S%KKANHh zOp294!n#nkJen$HtSwnU4Q6@TZzv!G8cpaL*lm26(SfED zfsrY(hgw(F+3{650&%`wx&h{n@pn*{pLy*nE0|t?39;pug?@mjj5y&>Yc(A#i?qB~ zS`ks=_^Rmzsy*vX?2A;=Se0!f7!{m!^_15GXGrxv8Yv~p|x3^E~ zFtfkb!r6H-&5^JWbkjFaL85=&i7`y)^{l^u{2^6I2YX@3ovd$BxH+91W9LCnsqJiK zvD5P#ag!>H=)Q!{O{meWn0NUrs1g;bJbwI({+u{vI$cJxSd80PK~~jxmxooK-?p!V z4iT4XaTDVOE1cgd*!ua||9`RDKU&nLT`Vs$gqk!+i+%Kv>tjT0>nx5uzP8>PKnDah z>+_#E55coX;Ta=bdJ~hMTpH}0z~4@aDO{yjNXg}^WX`f@-@Fpsb#cQ~ut~Oj z#MnLfz}kM?k%@UmKE~%Nl5F&q+tIYOR8Plk=3Y@O?Y3TL!J7?;k-}ZxEmC9m&I^% z7~jGA-P5E7j%T7mw1u{owFw+dIs;9Ql#egIgB|n@@c4-O^fHs5rrsn9P|sE(t;CVw zwuMk%zrFUj>U_hDVE*=)C00ESQHeR6Iku;!*|>pVUCgqQmU)FV$CgaNGD~ zv2%h~BgUY4Ve9&BO4Sz2jRsag$YC;8Yl6;om+dP+e-x{#;0W%XSs6JmBgbQL26BnC zfHrCNXI7wX>B+hW)>3h%Vr&dYPpG)tM7r%qga? zlNM$yb*}EbLxBn1-ydwC`2F`a>7N}QYX+JQ28f62ltx{4&$zXtJgF7N6}?TG;!e9X zeXt_j2cCU%aCwvhCB(2oc`HEKP%(m8y=gn!M|+}Ij;79V=Ni;N#`mYR zXgGr!#@JjRaGBYSQ&Zr@#Kd|OieZUE9j<+wX(P$?IqAuiGV@Ci%N%WoePTIDrtpWa zAJ3nG?x;O#SLYm4`UV4JimmvAXG#Dv!8x=7^00Aa^zyxr)6axTH{;)}BoamXt7x+k zd=j|j3tH|0*wNB`2$1Px?)-?pppE%bm0v>-_x$I?~e@Wd!iS%1h%4>7;GNV2Z#IMoJb-A z%L_v1U!obkuGe8_|67Je-8V!9vII0>UuD3A8X2)qeVh(6WR*JmK}NkF3&%k+li z3`A}6ZQ{;)OPQEs?dOiu$$Q0dV=+2Rwz5r2KKDJE@5j|c7d{9LZu+;Rof_9n#99h2RXP|*R z&n>Vmbld=85-!VW2+(bKeW<9lENHRgdmQ*$opc1nBQeoxr+DW+QD?9FwsAb>!U+ha z*+f*QhSEfQQc68d@7h=;9pGEBjd?k!CVYb{W5JMg8MMsA{gkj*>KP<-&K@7Fhv3+p zD@1FyKf5+iSf^fC_o}4vZE7q+I|8Qol#Z!`X?@#1VunfD2`Sd0J5B!;OH}|wM7CxD zE}P}G4J%=}FH-J}UyNA1RkcjlOXg$h{-9-Ibdvz1Vnd0h(TkQJ5~+WnHJo2~-7<2B zF2#kol%t!-4JYR7u1Q*rWoz^#cy76s1RC7HiR|_P4?xD|=_6bb*AmWk^eyEQ<)`j0 z;W|)eywIb5H3r!LyK1D_OboB&6{EsYrFy$^$egCKg(M(R8RFUWv5R7~HZYILH2oKt%T38-wr&C$-&dW=J-4Qpfb|5`SlpT5Q zz%Zpngl~)ceN{9RU4nvYpTbh<-H7`d zwhx=oYo94!_N()N&uOI8zyr&P5TaQ1*KU;ZocBH{U6;3eNJHx0VkWH@=+iHD1}cwC z+&C32LK*1y&-L%ORfcV=U&wR|*-zp5y|meXm}n|1V%q z_!oP|e?%!VejEO2DcrK?#0RMX^9g5XnGjU|@{Qq(6w=!%49T@e5oml98VtQyCpG`n zXkMv4Xl@kqIf8_u)gsC53d>Vylj4b9-ZK+gfKTRp7dM%d%3yjd=O@>r(%Nl^SD+SJ zj|FLPV1AnQM4b=;(EU?<(w7d{yzC^sUQ5Syo9zZZ;{|#Aizdd{QE=(z_U5Im6%%?{ zvd+sTjt4djjfEfWcsu#&6xl&5j{>+ajxs57zdTKBIFB7ZFy`-n&|cG!H&=Adijuv+ z@)~Mf=*l#!vY9KxL*#g4lZ?8vxYu#Kt!5Hd_(TT1JI@k1O^NJl?|N?ykw<{9_D&nP zL~6@Doe(36AtdNreTRY0bF=~aYiFPmyXZ84Wy@jCM(tD=aq(umL-e=k#Gd#>(rq@p zs22iWrg{O`uQLpFLNgU6FGa!)0%5Air)>rGLpg4IDA84<(xE&E6JQj*xsGJ(kd;Ac zgrbxh=^-hspQ=it2DHnVZBiAj**3*iRBuqv$15Fj?DNSa&Lzkro0oxHJc z?K>=oow5bx+QAG+k$s^vWu!CZ2?cY|fOjlG1t&639r7D_vvj|)>XH$W`F=dd!hu)r zZI6ok{w@Jsp-QE%4Ga)*WO)`g&w=QjnRv%mN7vGqt{}G9ps zQq&c)OGmw7F25L8>aE~Zi24wRJUnPSO)6&zJ(i8U9EUhPClM;hNnScxco0&I2XW*R zOnG@6G0K1unV9Ir5JS{bl(jN-M+DmBABT&V1dP;^%+9gP(8(1zS##(4jfA0TuwWBP#g@b*s12T$- zdC*5)xtYYrVH(rn^g&o~1w`C)t0uZzX^f@PzT=zTTw4;9{P|5UwXr(A4@OG7-E$Ge zL9HIq_@r~8%hIE7Y%W)1V2Lxbr$Qd|PO|is*#YDM8RYfPI!>s}<|?D4)$-9^Z4E2~ z*N1Kv2(_)na$ntRCUf-63UqkW$S`$}IEjaN`K`0Bv>tIywLcPrsYa_Z9 z3auq|TG8($s1pl&9Rh2!!f!CnO%*4*_Y;xXBeQElLC^T4TJl#7rRW^wQp=10E|Zvh9G5G@Tm z7jTKU?q&tH$hG-OJ+X=-ZE~pYl;DVYWwTt*-!7@=51&n+D94s_HCcN&Kktr^)A0(w zd51kEz=2L=k7JW=K6;X(i5VOV4m@^T!_vYpzJEaQT91Nc^E~RaGLP)zD#3X|Iz-4y zvhR-O_={+(Jd9tP1&jjCQ_kwMxt{J*HuM67%)2$K7(1+Y6)f@PveB=CVsY zlXK+r$*lI2SNVFOY~oK9xZXUeni_lTOJVrH2M`xKC-(}&8HTVZTi=9u2y3^ zf`lE}qMm-M7V~WkX!&TmJW6FUUGMuD-Gotwh@oM~cYqa}(AJT-0a+<#R%r2&Zi;>z zCn)p%68F_yJGvL+Oh-lCA5YhZ0uS3~#`9V|`#QD>o94U~2d0;l$470hgz(5Od@F#LW=-D5kFxzK_r09T$0tw1Gj(m5HrkeCe*7S#O><~8YPc3(! z>==-*bysW1-WMD#a00YHInbkXETMXB(|B-f-%#s)Im7nYJf-Vm-0Xg@qi_~p$jR7z zCtbxWLCr+h>7cmV5>rG`k;{|iUb}P&M&Y!w_wnT}f^=}SNkQDD=pxiEBDnqYUR49z zv(TKv2n*3k-noFsFjL5pa&75ik>Na}TM+}mFH2Yl;X2Kd6@W05c?&m5&fm^fZtKZh zDQ%?P=ZeLpN?CMxH-dhP(Sz8dOETcWkOxK71B)GRZEYwGGE<#GrHe@-BIZJ=cO$8e zz7@Qv-T)J0r6KC*Yo`E+|NQa;bt#O^XN)e!-E!u@8*3~*Y+JR<@Ig4m^E^VDZrMbNTSzIQ_$G=8te|Z`@a{;&PnYd zPbkK!mSoE1D_;aDH|I3_eRVPd1P-I2m#|!DFC}DUWckhdL1!NC*qfC>l<)5;3iW?X zI8v0jUgsDl@rHRAnSJmQU4%4Lr|{j+E-$UJ-O>M&CsHe>K5gimWA6}Pq}d9e=$nsj zGon6`K-jujBnsdfcs-2$_LMo6wvk6j*xzB(L{v*Nd14fA*oPWojSfZXX*CS{Fs%`1 zPpt{^2$wcdVPXtk(8fO`_X^wf*3_yU-si5@KRxNn8#hnUZDh!d2^VafHILKI$$A04 z12%(>J9SK7MX?0^H%-;86nu=oc8(7_!)%&4y41@cabz5#y*)FD* zd~ruLi0^!?ipb~Khp`$e+q%nJFy zt7>udQDFtFJfIEXuw^Ul|UB8{sUi<$O`+@d;V^v zep!w4?5`IvDK_)ZIPcp$W^xOMxB*cSlY6WQjeC(c?A~ye=`7$KkC5JdkTq z=AQjz-a%x4nR$PlN!ZG5+9-)a-n0Z$P~)|6$DXb6>kYE$f!F<)>(F@ziRhkrd)z+c ze4FI)TGQZ3_;HybfqSi1X@PH-o>L%qB@HoNo{5!6%AHBDLT!r zv(GrWjXsjbFB8qORQdKGYv5n9-adX`<(mBnS>6SWN!(GQ{{cQ%iag&YdU{QygF7 z#!X{Ql-j&oYhOfV@$`w@i1`pf1>}v~!_<&U{7hwBe}~R?bq@tkSZd@N}^x|mKjD}HRg;j`ATV;m{2g}a7D|w_u)9E*HoVFCL zrTJ0o2xx#0^D{V!v`lUmJXoYi`kS2XoGY~KYR7faPD-#u>1+>4?QKELC} zoazO>2by6p7TFso7O|J+zgchdZuYJe^y|`ItiNN0yF3*!LeXL$E(=C0akN3urh<&JPj&FS$89{q8ZJTMqyJBPc+O4S;+4{_{<7&ja+mh z-2JwLSPIyyvil75(CM(gMlVWBNotEmCR!7{j{>WqpE@D^yB;W?@VddfD=^a6qTk5d zPsi_`Q^xK)&XD`CyTj)+!&p(#e%qHjbShQYROs2?5X7qrjI%zKAgn699HwXLVl0Hp z4yp4(ut|lFvPC7 zMYJ44_2S&&{Z^bte3Z#`Ep?Rw|K(hWCb|#BHh($oa>o4W6Lp1x-9-gIMnTKM&tD1f z4_VDeEs?bcndp9G@Lg;RGN?-N4e`_Rsz|=8w>+fqeK-5OtBO)`vbwil$Y2oAO$ihX zaR57woR{&)8gx4+TCA9W5@h;5RhR)&g>SzCS!EUAS(JYUw*ST8{_hNK|2u?Fe!j#1 z;ye5ui@Sd*(#-!3BF_J3+Wh;3h<=jT{`cF?e}{kiX^+1p!u7BC+23c6{{Vfh5l0Yw z)C4-33Gco~3V)^1c{ZvYZVl|* zdXwBbeLshEYcW`fHDPpL4QxZtmY2!9JqK&n?k~Y*>dfZ2p-kBEvs4AhRjg#HM@L1ONCQz#?r926K`(Q*Sh z454_%(&wR@N=~*Yg9A6TH>w>$pzbjB$hd|Rr?;gFhNh+MAty0#CSgeuSxdQrz6Kx& zWa%nU(P7duGC`5<_Y@p^7})5}>AkdIlbzLzAKha^^bjhdlaabJvx{HJa@SHAB?I4p zcL#<#N?8uR7J8SeCh@;e#(L!qOKTyO5ZV4Gg0}NuDtAwBuwor&iJ@};t9H3ZJ~~fY zSeesnz`ipi{0&zi&%d6KI1uk3>So-D<{npETOeDl;_Kg1@Og)w@;rzu^65=oc_aGH zr<^HP08_A_*upju(!5$+a`a&S`x5(tEc1#aN2s)B_UXHhRy@&sriXD6zH-u(5{1*F z2g;}E+q~&@6-b?~7D=9vW&`Nkhvv-YTipF{E0%N5Qs~hx$UL2T6v1@COg2g+Ov*mt0%|)xTPIk$ zqRzF@_QvKg&YbUL%|8K&e{3J%xM5B8VW$8f?CW||VaE?Asa1il$BAm-gxm2D3Y z6ruDHmqm}+Zy|>5D7F@0;)Z9S+K~p?EYhwoN!~Zw#-}JIqlqChNGPy@V6A2!4nvmn z>~E@kh$+|`OXa%be#K0Y&t2zWslfuBk?yWE2j28fM<1|I-Oi2FYz^AI=VvzNj2xAS zVO-ea67Hi$5w@^|(r-5x(OYB1zf#`VE<@b47Pp94FndJ=E-*unwoN2PotWgI`*gLV z4j2Y6FAMXBG-srgd=jhzm)K2XC!6dMMW^W@GGJT~QOf;;>DV#NBhS zWg;*IR`eky&2|YM(#d7Eb=V0m;?)(PROJCz0pI(lxiz52z$~ zZHM%vzranfd?#w}=QLZ3e2qDUo|j6RCybhjvshMH%{xNBk=3qo@8H&lBjD|QR3|2t z$j!=7)=EE!$g`1zrEiba*r?eX9xj|@eBff^zD{&%F(Q2_&8H85)ldU)PUQ+7&+=HP z`8=bV#}Ma1oaNlRBa;rAQF_=0UB)w-yT&%j9+{3_rRT0Un4<$RY9|WlMC7_6+7fZj z*Sbb9@?}iWrMqVL^Oj;;87-x8K2!TaQSdhX;ARrA|E|F#+2t?mo7SwlyIr#pm%l|g zt?H|$uaLp?d`4Jylw}D4wdEvuujGLyumkZOKM^$Oez|3Cc<-R1QvZ&*!QOjRlzwbMA%#4HEJuBNI#Xi>~`&FFRkDdq$mq^bt zLTenFrewHxG#X;jSr~0Vk*Ns49X1Q*^_+ucB#@6JXdP))GvPU^;0-j`=HzmR#A&9;JOlONpFYc?eiIJ0j>fuktSe0bl0PZL$HS_exHG>T_aD4D11v#%Yclk^riieukR7Se>u+h>oB0gvH#`R3Ue2_+XU9nRR9_M za`;ONAGPEzV}CaGzrD{&J)~7!t`^jQDC(aM*KVURiR*HNKkfaeTjNY6Gq6V3i;1o{ zFfi}y{W8w2ZNZE1Q%Cz%?UlcGT2NyDvhGKjUDYG60QyVz5U87Yb23F{p@2>A2yS9!9{1|-(nx+E9fl8GL7 z2rL; z7%#AY9tTy;*5m!FC;1y$zF#`y9|3f~)>6R#GyFj}CHzBY{<8zmyGj%uLU&{fKpn!u1+h(Uo&b8=)W2&_++q0Nc9TMc>9d+`Jv!KTfHwD9b3bn$dQ6?y^j9 zH~N6kfk=BGMQ>IV~3`^cn5IB2#haPa&{vmgRdxqb%z{ z5s3R4NHWOx57#sU6a@dnHcJ7cVtH`}ssktM{@{Qp4ky>F%a$>l`!^>*|MvCV_+F8E zqwG(~W*ogAP=%G!Dn9@YS8mGxiE4WEck$=`A8?f_Yi!QlVU&^JOd^@pBqClk^82Dd-0vR-%fugH{wPwK#v||dc56b-~vPTni zX&%|1fehat>q!3SwB&vZUG^Yn38~i$I_FEQop|Gi z^j@P=Y!}thAd>m|S>HQ9l}3McDEpM$xTA!Z zTR1p>t{k~WG4^F$6YYdwVkKx4F7?O`MDe19bRgO=R%y;y!$%t1Z9;p(o6ga}M8DP7 zO3%(sk!+rt|HYSFL$6ShaW}=L8Az|3fhGv$(4kp?)Bt${gLO})yKu`oCS)@7I&`~g zMR2m{L638Fo~YK2h$f|6(Oi94ugX(ke`55b^F4yTUr#f>075w_n*a$kbbl?G3diY(^OYak&Q<{Zi{Fay z!CdnB!B%G0;{F6zmgjHT*g3?_0-|j4(517yKzU=-J`0J#Hx>5FS<)3Q1Yw`>{y+A< zJFcm0Ydffjii(Of1!6})Koq1C#Q_wAh?F2Lqlh#Skrp5jD+maYt|&z5Jt9q7f>aUd z9i;c3P(nyKdo>k2&aDK)J29X+R zA&8;8_%@oK&&zwQ^P)Wg=rFigMHcVY&0UEhz6n@%f0HE)s1&(B?L6jWg;eJTToscC zyDHVNYfa_L-@K-8-g$DP*}KVzZ#sV8AWXFZTNw%sUi(qm6GpAW4HKj@#}*VtxJm*v zZy6uVi$_&>D$$iBI;4<-sE2P)8C{4u33QXOZAFZ>v{x$H+v_bB8U{Y5Xzac=I1Rd< z&Ymxlpo_)smd8IjkqEsl*!NHd*oo`32ku4h1F66FgYab1b%m#yvySIYFgg(oW<=jA z1TsnsC5}ylVuH$6j43@y2Q7;R-E!!1Icz|kaS-;VkIAZd2Ao4@0j~aRoh3d@eW&Lt zgtUJ0(kcY^h7P893oe0K&h^uvQac0Rf$7@;5|t|;sR$D0BGokmRW$&_rkq#yYw$6y zcr3i@H9sq#qDTAP_6E$>sxE*FeWtl!v`g3l81fq{Z%S4b@k@(Nbsa4VM5_unY1qVl zKEQ_kqj!yH5?uLDpVxbqgD$W5(f;#8_H;1q9_FV@X}z6J8_Sfy)mp37}r@=y|&>vnEQhHhpKVU5P7S_zx1 zWA&-Y12t-VXI=R)7Hmgem$wcl3R5mr?bHo^k=S{nuM*6%uq;FJ_n@vf&0e+})VpTA zn|psKXYg@(IwI_s<>+Zkzt&ZXc1yIOBsw8-?~e*}8e%7qP{a|PM`0$?^1(gn+BY%^ zlYJhH6srD1laFgcVC0*Vsizz+GgBn`@_M1~Kx;8A<(n-ZM1y>J&b}{CmjN1^_TQ+L zR>V(RzyC{hqR$H{7k z=nYWyoz9=pX8Ra>*3bNK}v?KNIBy^I*Zm!^wqH1P}~EBL#|$pUTR zmcA1FPD2^>V`k~lKzl$8txUZiZ>knfvZgeAvZiDvZQi9G*7ee3Ysj1#D`&0Ezv6Hc(fWarvq1g8>C}55uRN`3 zJZ;W`mQ_*F@H}Cvl^Pal$`v(DG(f*nHEB6E+>D=fS|PR>YmjAHd6NNsZ9=@lBsNBy z2JUt*tQDqW`8|IIbHt%pWV+tZ?zuZ6|3rpSif}B)H4n^begk|C3_}Jg1ChKApKsE(Q`9;!%m8v~VhH zTn%W<)2Zn7BpyFt!St*HXY|lD9|+(aMdI>$H^2c!`M=6}bM7waY>m4I)5sabQlA5L z@}^_G@@feb(9++xjcGfQ3ZsnZW@*m(uR^5IBgo}?>(2P)M8NXHqK>NP`Ngl}h`fYW zfOcY76tAQT?wKED*O^UIvmGg*rKkcQm@k|j(FDvdx*Tj##gXu$r`nGDxJi^D8x|au z%r`BA)skQhq{yQ&1==syoSOJo%A2l^oh4JEG1woXPb)Qs6Fl%6nEt72{Rco6h6(ABzg87DEc_iy-m6g zPCQ#*i=-2{8lhQM=VK&jtRyy4=#w9ZvX)hE~-$C!RfEso(?29N+J zmi0^uEz(X7pnGba`n6;8H|dx^BK^744@^ULgFYB0=RPJVguQBD{dj#Tl-quvOdZ6` zZ8ytD^~63cPB>Q)cF(+_@IEiulm}dgcHR?RoI)^joO;$*pm zT+N65wrQpiGBbkhhA)-gH>{PN6M6AI|C)QT|TpG%Ejmh_w*$Fb!RCT zhJ-de!+?B8yCPrbk50%dvAJ@tSv4i&w-EA5V?=92cl9bWs#qc`TLotQ*eZ@uGe z`0iu+Dum^96$#%~-yNYrnhm4NUAA`LeLTh5D6IIEWYPvHo!3`_G>#YCIOcVt*LqI^ zZUYaZE%@EGh91s>FvR+TkhYiHGI7_8tFg-*R74jn`&1(N#N0qt*(S6t>tpw8WWHmO zosgh=cF0~Yws=nrT^(qQK0w{2$P#@(dS*> zkXng5)uV!Y&v)t)lt2zUvwX5)k`7i1boLMrU3pYq8R`}fdNWanvi!=;3C)Jd-MQ;7UZh?{G z*5RJD!)+N4C9^$N)Eayq;*6ivHGA*w7I;pu1o48*n}XYN(afD#XkYO{JoiXqX(%EZ zKif@K!e}*kv7x2j8q=pb6_KgN=;~eDa%0XkjKyxHNRJRskt_3uYAu#LuY)1OtvV7r zD|p9~iXmK8I@*ET)XbXfKA84Rbfg%n@;O%LYZfvUSY1~k?9!NNiAP4;leD?_#`TP! z8Dd+=SeIs`ZI>~SFL2cvLmwW^OV`rgb$>EoN_X_W|D-L$t`RmMNKGHKli91@E%>8S zA`@I(4XHJv6WFeMEn0&!dn<(BleY(1y3|h6Pw~@114+pMfxvNS!#(y}w91XEz&$|8 zY&vH3do7ipBamP)YnkC$v-ENc7{2=o4ETGs_D3I^WUoTPS0PK)#CYA*aNK+!kT0{C z;`BX;^}ib?%#mEQmDq{NYWJ0vC}buk9nSD{Ich(pOSQw~c&$TKX-_eu6cMP!_uaTA zTuK!a3zCvvubEwi*qYTlV@;o4076$G_t}~8FH!Af#a`WsCx_ZURO3UERw1sJ@XK?{ zQpB^PDGH^|Fd`;D4*g7ZH=+%y@#O_`En&+mfEubrzW_%9{j4h%Y&JRn& zwfTW4@T!|B96V-#Tv)bsgtjkVz{I0WJ$Onqu~}%{MjX9TA9O3mUNMo2BnT$P$}VuZ zb1queyMJ(VuUN$NMC+_brgcp)Z0#s;9$Ri|Wlb_>@qq19yiq8AcfH#4B3)3(WFPzc zAm7^YUoq3K@|T7kcmr|>qPLI()0=0qs;qG){X zFxiXM5rT!gBUg?+-X&~7(@%#=0icr|VkjWeijBm$uR`t|-mPPnIq~o^7~;Xc#q>h! zQuUw1sB|CZ0AqX|+vh#I<7e~e*TUepK&yB<9>!WEqcYKYMT{(xgVjd&E$ZWl|E!zmT%vWHvZkzfL#y8F0 zE`4KIoK@z^Demg3@H@ktfvb=Yxi>$wAEhr-Dwzq2cBK1Nr=oeOm<`;!>g~BIYP(A_ z7H*wNI^?wezL_dr&9nn;&U}iNAUEqb4>U8*3pC_BYgFNDR@lyV>-;C>Fn>!BTfCQw z9WWKrV!lKl7SBwxYE0AVJ(HcC5(|~Q%Ar)HLGJ5bVm~&jHs*YVg+~H$79y z+=O`MD?q`D$eqsEq$p?WU=DkD%&1o_!m3C3+K<)Q(Hpz!cD=c(-UHnZY?~miQx*rw zP>WMbIn_xOaS?kiUwL@Fa6?A(cdeNrSm^_ zFh%cE2k6(-$?*Q@XQUx`R&=vo$n=ojGs>gUa~n@z;AfH&aT@cr=0iB29B5~VCRLa# ztaLJ0-lwa}F|S%U`|)XD&(Rcm~?`;{%ZV3?;HqN#AycL|mtd@h6lDo8Q1lcdkl>L)HfJ{4ze4VNQnw zHGRA6oYct6_oc;D7Syu?TlslQN>jY6Y8%2{Y1t+TEC(v;z64sKZzwsbD4We_Ifs6? zUDi@mW4r9~{$3Il}&Q3S==^F7Q-0<5Z zyW&_~QoT4-jF!CI8rJdbn3*>G#X0D7OGoBX$UN62zmKX#hP3LHEt2L_Lc=2QAYhnV z`Hh##L590L}7y!`4x4aFvq zOHznxLBgxr9c7%O-mAAA=vLc!6vr}mjsF375m**FBMGF>xi1m8#M`AsDX@!NaS2a? z1Rkw=xujHUK=mQBUnKX&JPb9O2sf|E&e1;TC)s?r67Fc`YG$|P7*8 zYtC7=ICD+|MNvHoz5CDmmk8^brEdU{XDzFfARbNYw|*UUv4)&rkpEE+;yp&YK zGHERWgx#>0Rxm!(W~~D|!78jE>RTv^(?|aZ?IdiXdJfd#ESevKV1tZVBhb#YEDVU2 z53T|*GeUV)8B56+E89EhD~S{L6P_g)8JjnxfQ;($!(Q7bp`Ey0PNHvaao^%#u=}mJ zJAHc1Q7g0DgHzIe9=>@c0bs&+w23LdOEv2lf?7r!l7XR}Oi}q__Cdl^C#06FtHaWJa_Zx#?6Er3{%#izooxap_x1I(=s%&@qw67^S`wz=^xyD!F0 z0weY<3zC6L$?B~Dl%xU6su=6^I()h8h36Z&A89Lo1_URvIF1=MD4=mihOZiI~)Dt(muTd)@Prb(2SeQYiYLn)%Ya}^&yiIek%UP zirj^He{*V*NZXVq|F>n|8rMAh(AEF%sa1X#$bbFW^I7uV$(BFL$(&T@VN%{<(ml`9 z&rUYy`KK41WDm`3oZ08Q-)tw+{-eVr3eQ2+Ou*POE|6-yPZrR44t5<`;26*8L0@T6 zOC_Hymr1#ecY5b}?~Wu5f%P@%cq`N-#+*4=laZe(X&Qp@IJaPQG^TKS$u}7X>&GST z+DQ9L@KL20ecgME!;q-keQkvE6YoF{x^f>(vbU#P59@@R0Mx}m_fm%Y*Ld1*jg9{I z$3o^Q)7Bh`vYexFf$r(e&S@f3u+8H3y`p1YP2XTtJ4{9>=G35}yBr&dIl~$Zu3FeDJ)b)MTd3^^C|PHWRS~X57npucJK#$+7NtLd?aS{+vb3 z42)MTRzSLu^o zf)epZY@b#EilU#0R(qF-)bw;I%i)Jjhu6QHZ;)8b5T$s%=2?YsJ8c`fZCrQw3h?2! zjRX`K1+VOyAd{d#09v(!VILRU|A-%7SO;V^?idiDsO$^aUmyC zaARgiKAQUH8OXr`P_NM)DcCoDjJ`>?i|CF>>>JGmOi~x9uozyR$~k9p68$#i_G}~rH}0Uf>>xGLBTWN*YMgXbJ=9aa1X6zMf3BN! zKzRh@TgU@J>d@Ovt99}JH|aCK@mij**?5y9i3|`BpP|JRiTbq%9u%g(KWF#u`@)`! zn4Rkv@XgJ!=&j6W05?k0l#F?BfQ)&hsLyU<|5iU(w#9tk&Hh{J+Bqu$_FE%(c6OJZ zm_M$+zU9RhrZ-vr5rLbrk1E>Vw+?8?C6b=nNNjqWlV{jaTy%k@MMy+8kUq7%r@7%m?(^2VHfE61dg-zx`x+OpCd6ft0967y6>U}R zy=mub_sko9^9vC`{o&r4Icq@|Fb;F8-9w@{wrnIQA#4;=G;PQ{U#o6V^b|ApmJuL$ z0k-hTOD#{H!;<Vhv2Cmk)^Rdi;AR{EAibPRxcHU>jt*ov+QT_6#I@Oq1W zq58xx7b*XIcKrl?lLQ4hJ%#UC47t>@-xr>;P6pwFAWj`ujR)#`xic43a$mVh)xH}R zRZ_4)jog+_I<SGQxYU-AbAF(S!E?cpRhf8YtxK>@0f{Qt=; z|Ic27|GmHNiwh{(>!%fIV~g6i074VbA&V6DK$5?}6Kz$%Zg9bY-5yXQ|37I8|G_Kb zuiO28X`=jy`P8lvZReS)1!R=L--aj$ydEry9JI`j*7TKgGt8ugL{jSSK2c4eidJvExKw*#7Q^3C^8o`h9N-Av zyjveLJcHjee+5iy9h#S(jsC$1KRuFqcGTPRq>k^qcLRoxn<@)6LJQA($$Q0ADrme| zYeA1R{=MkL-&pbsyIv0{4}h>*jJ)d?4ShN59!HKUC=5|9QY>I?BTquYbA(y%wi)0_ zG2C41XPNwa1aC?j?#q5W7D;T+Ykzv$av_mA5D z8xr}Wy9PClA7xyXMLm^Oo^(XU84)X>ov9QbQso^l@!n5V+w#a`>pE(;D5O1l$uY3O zF>q-mT~*KG$|pK~5LdYhc_7F|l>y-&_f%}V#nkLi(I`KDKyKi?^J#cSuyq*5l>xKt zP-GhrCUCnENg?H2IRXQB-a}r5^9s3MaKT56CyaKOFom8E3Qebz>r0JxQj-=?=H*6W z1>J?+YTeiMAeO_ta#dcAkqhvygF|^`GspoTfQ0A=VPFI4!sSgS=eA@wZKWtKSJ$G| zRb_M@g7EdU@_%Iy%e92?(WMJfZWI^7L?;XK!e(`L@B`Ng`uKE3Gh8Q>g~6V%C?E2v zXD2Yl%7+({c6EByt4Y!Ve4ag>oG2@b7;r(aLO@rYPMb&H-3U6OzaHz9k#5b8II0BS zH#CnA6`exf=|>WM8H!c@GbhZky1cdM@H3b6NUFC-Xa-*pX2b8S4bsrf^mfLYq*}sW z5I%jV-&rcmRr|pw8}5dq)xkfQcxoM)&Nxz^Opr)wM(^(z+vJdSA<#uIVBZ)>Wr-ko zHEQo8f0RFfi_pxvw{u+iv~9^$IcV@FC10#^j#Jui33E zztx@p8$Zw1LSRQu6FY~>_xPx{NN<{{D!6mfOu&qsDnWrylLu_g0#bVFC80~TkJuLR zYuiVQ&sr0nBVitEAI_D32)V@j$E-Pg`N*|m8VU3Il0 z_G(LLI6Ms>H|o!V}3+TT5j=%4cDrddOS>BrW?@lir>c7a=O5{Y)MF;H5JU85` zwG{gp%ghyF8@DY<9p~s0XzDI6IQ4Kdv-f#?_Yoz&N<*)(1t!YPEPHoh4|68#eT{QW zeDB?AP;)@_$T;eOd3KbZ6Ff&fdE{ znv<$DIKw_rch9`VIZ6#R*eX$Qr_NzSeR?zgRExco{T+e;W;5!lULo0Y-mXO=BIxF( zQCV!#L?ju?X7k1n)vVTb{dT>*$A*vP^BV7YgKbC2Hiqxd&#)`F5r8PdLP>e0;aknP zV>4r86CFdqK5JY@uS~mCnjKwixN)d?tL+oKJu_x;ZhG#q;JzWK&GQ-P^71Ht2i|c# zBKomVkHq^WlC#`|ifI!lV+sQQ{J1FD6v9te?CHqZ3$K#tph!#Iu^H2msbFq&V z<(Sy9_%yyMF->V@@R8LD|6)( zOeb)-HBAzmWm+!?`}72iv?h{jE&?^=QGd@Ug6RjxCD}AgpgfWyQ-RrKIAl-LJ&&bL zu3v>rw^p6$<~iIeO2Uw|<&CaJ&OxhJA@3AHLk9oj(mD`*^w8asQeO_|uzuP@@qdqi z8gP{$ih)`K=uK)?{Q1Ys$4XVrA52@Tp6U(1l5@E*Ql&Q%3;r)8<1YeD)F`~xixt;x zJWRR*Cf?1|9+g0+!^zr`2J;2lB+9G8&1w~*HSD)?D*tx6QVOuZ2$8$p zw}K*q>8^)BTXikf@;e(jcGoX7HR)eLNWbEO`(6O|kLnZo8F3`CC$f);#>{Pjh{M{e z0W#pcP3w!(>DR!SpN-330cw6ve?0$-OZrR^j_gU7Tqe3x2XlgT%?O@JUXrQY0Mw9N z?-VID*EH`MgD&-r0yzsy9&Pdn5$xFFab;ZrY=K8ytww0;rB*9o_(2&^POLcu&JwJ5Pj;E8eSH|m< znq?|=N8@FeFANsBCayxRfgrYKhrH?b5OwUbiQn*47sg6UhAuJKTfALzv}O#`*H}nv z_eWgclBmS1S)i`AD^claO~Dz18>^6^S?IFQLQ3l|u8;}&P0%$Ml6C!O-oIa&#=0SM z_!eF3HQv9Y>+rs?VHxKoBy)p-z)e&LaMl$GCLlGaUTLsen?@X~e+c1U=&raEFLpNg zX-qNJ<0k-aa&*9;fKjEA#)r~L;l$jqvxgc}*S$Y8w824TeIL>CI`cWdi6*&q4tbI1 zJjLQMCyS3&{nL_r%J$l=Gq}78?_y_<0VuDvD|a*Xh_U{Cb=!-22WEQLUwiT5_NFR< zRL4rpR@k*Ze_9M`uFOo{=N;KJ&fX#Mgvch+#+gTKAK-&0&D=l|{7Y2(LA$;0VCxA2 zy+s6mQkhz?&8~UgnfYapJ90S2OZ&!oZfkcR*C zU^Um1sy9mAS$(qjAec2wkP0gYvqF`3Oc-rU-L}+=wLQ?QzSrXARb3XQ{2rRZklB5@ zGTP0*v>^HwS*_;W^K;GSxv0CJZtI_X5x7azPolW!j%!7&LMbh8I>^z2E@M&(>~7BZ zp{q!nw@2CGp7yQnx6W0`@*ZS^1?kg_Gf>O@_9gJU(Lz*fQjJ+eg?pdhheKK95w+C5 zI~yT~SRMyEMvE?JWTiG-2tQiXq&8xLK@BF*_k&)}OaQ~QNmjjfps$mIv4mX!{Zu-X zvmghUIj93^t)D9hd_8ROd;$ivKs+Q2$oX7I;Fm+_HP}KMtbP@e{<)sO*CX|>w_QU% z|Mew5zrFwd*M$(b;|Q^(cdSBMqd|0ZUe2{|w=}0W|1!z`U(YJ%==F`yb;-GR6MfV; z`?`f8tB}n>j@?af{U~#t^%wTwE0Nn(hL#;P4}J7t*{$6VT+MfAbvs(;8NvueTWD+O z;y{b`@7T)1nM{v7O^-be8PO$}(%6OAY2soVtS+U|ROpQDPi-ui4B8B?Ir&so$lrhJ zG&i9Jw71L|<3C-Vl6{dC|K;=1T?bh|>iX(R7UcCV%B4*nwYorSA7U$o?m#2j!Mth# zl-UB@YDr1CF<~Ji{M3TM;Y*VDI}o7nxl9~=4n!NIi>^Y}gZ>U*ya*3xQtA7W?In@O z>`$0_u#XVn7J9tH@1ov-&Sg6=srj8Ejn`(e|J4@18ar5jG?;I+HJ^MC@XE%6KtSL~ zF$?E;D%(I_Q?|!*kG{Q=I)j4~hVqwVISTn^JLXm)llVxW*#Q(gNPs5Ic~b7vaORR? zYdyO`daRi%_F6i|)GS&R&VDIA%(_=8IEU#hUYFH#VVOsU{n(pbA3v4{!!K#6iFKZ{ z2xH;LMyBYPJq(-@Y^TG!Jo75uEgyw7BJ`W>;xMml;@5?*<#YIibUlMOk zU)-cMFf)+7RqgGdCb%s96IQB$+$Q;( ziJSYCeS*b)+6Qp20zH9CN#7b#VCkK&CYAD65%akK&)1{aU=A@?djkqvfVy(rxe8(a?a@UOl|oO=cpTG1m67`Bn>4L;Y8Jb7&io$FK3hB*+KkB|9JV@z zs=KM535?Y;MKh>bNf;aSIWp_4BVodaNm>VT2H+?*ISXDw#(hCSiD#s%nr((??VNZM zW|m2d_ySIT5K&LB(?T`1b2DOyJRrVzzMCMtqUt39u!MoW5$g`C2~K8&e)iis#bh1g zfo<-v8JHc`mp#=SP-!#BlUwTHq@*=*f(7m84=UTwToE@12!Q8Q}TWGcvD`ch(;ourQRPhOy`h+D>06ygluCKA}<7Nnrms(GIo- z<+TT=3XwUqr^0d~ptDNoFr+bB5bPvju-UVP*_B}DaeT0Ch*(p)#VGO6?H^&j`fm6& zFNsAh{cE}xXWBCMtqe4^}Z_zUySeaSP(4+Y-vS$W+1mfZ%md!^i$XXJRI zhLjXQaO}%moc$@!TQ3o{Ig6l8rVlid)bBXYzRjcyD}%{rwA9fpRYI6)vS|ik%zSGy zFesXfbA0{Xm{Re{hCei_^hfbgvQ`TSf0N+%1?&HB`TrZ4q6p8J5i_Nz*mC)WTT*tr zDE&~it{q-5X>=`87rhe-X5)DsqK3?d<=*=UMP{F4fyTSJfu^rzs7I&g%)z=^=Wty2jT4gNHu)YHcm!$-Sl^FoiRy>((hhoW zff=n_C!{s<(2Xh10h0XA@9>0z7~IYZ)(FO7VBeLBgor~w()hI5=J9(DWgc@oQd~H2 z31h+FBKM}DY}<14&H@ux)u+t%n~4kb7F)Z;FH2B`!p<7CT8u_~BKCvA*tE(D@fQ69 zw2R21D1d3ruJM1w3+`Sz*Dv8Y@GicX9E|0*tL>>11;H1To+Q=YGIt6SrUWx?5_Ns} z;*x8!BZd+u(W#&|%XNQ;)E!S{hS6nAG3++9$Q>R*f+xYb;72R0WM@W@WJZfmY)t}bZvIhvT<%eg#uuh(4{Za%g zIpd3~{X22Z@5MTQUmw?E)pR3ob{pf&ARAO1mr!5-%6T8+jnw>3 z;0;veHhcjuA%~fsRhlMHunN+cw+^6e$*SPSkLHpx?!rL477 ze#z1Og?7?;GCJr#j(GA<%1io241X(<|EB%h!F~7?v@#4d;;(y5VGEpl%w&}brzM!8 zBQ~FxY6wZF#0b_yM~5JX+7I5u7|lCsnI3fo*C<%@tM;R_(-4SzDpceKQ}bh!{#k&D z#@^o)053)ER8)35F`iX-zwMm2`aC}P(Y`0{VAzpz!x=Zo*Dx%rW%gnA(^%s1Ong|* zCZk?pl#N&N{iJ$ByC7@#P6MSC~0lN3oK*V_; ziPU@OUdRd!fT*i_;cNsqGM^K#&uySyMf!Ga?G+)jJ(_vgZ2lmCU$|t&=kzD%dg&2Z zHvV0`w+m)FT7g_Pa6r>M#uh(Z99L|Pej-^7Ow zeIP>ALy!JuvY?FECUqJX1wv-n$h_Mmz&xF@VlI^1mA7w0J+kf)&CWQFnGk~6*(1mZI!yA$2{{cDfN@m74oZ~ zHtET77HWGNbT8TbN`En{ES)=OBWTrX@tu)g5b~J;_cJE1vmRT-M@z4tEF}apV`dN9 z`{sr3;4izf`*P*Ld4t8G`?%S!Y6oLt6!Z(A8?Df>QicASl@dyPe zxir=2Z{o&17dR311fd7r)DXS91@SFqV4j@x42*SFxt4tLY)FCy=vMR;<{CwEiV>=Z znC>8Zg{#n{qY27W^7eusqq9o=f?m-e@zkvrFj0>!>3e3>FL=BE)$GZh@Rt%4#B{ft z(0OMqJ&33IX%;XQ3N%P6e3@%fuHd@l;h|5T&MD6{*L&IBY;Eb}L*?(N#P|j@kCg(vj06 zgs*A}DQd$#XN_^N+gGM~P*||P{m7aiQ^qbbw<{jZanD@DB#!HTE%VlD^GzuL_pzkY zKSAIBpt_TP2!r51U-*As4Zq)^;?lhoBq+|r`{$_%O`3Mrs9|AdxmNVPjD0tt9aL{Fi<-L+ibJGN)6OY?DHIzbe-$AupZu{P%`?k+L z@tv3^2mwg+o;{iOu`rMy^s<;|(b^*!y3Mdm!aGy1}Z5l~Es}Ks}ky9;P zmVWr-iLqvLZy>DAtEmgqp)5XG``9znJfF6bS}0us@2QlK1>nHuDgjB&I#|dWIq6|g zOjiHLszRM-)wB5rMEbI$A8LaJD zW&UaO*^numV$DpNkwWsI5-T}CUB2t`l|9*U_)twK%$yFI_OKvqXc9z_R?l?^fK zsXAXSXiy|=f>w~{MTFli#NZBT3EX`qFEj@%^Wz#kc+eR5+k?l;qNLs zV%6_~2pM66qGT4i7Pb}ei6011(>%^gi=^R)$i`a6WnEi5dte&(v1gA~1Ny_GTp}JC zPRTXl%Y+^!_(_3FXj0;4qve_Awh<&%r*AXp@=opoS-*GV82Ta%4ytzAW@@6%EzH;l zI3Q9a?pHI}3YI9O(_;ZO3<4x;hv9ml^Gba~*V6}>x;l+c*sV4WlY6{^uJEt>k?*Xm zkP8b`gDjE7u`;vvj=?x8?+y8Q)(vy!XeCzdEt{u}=wME6bR%HNIQq3ElFpT%Z#!KE zc&M*{1tQ>7rL+kGA9*$^*=9NDoyFU@`UQccvJL%P=50hp7WL1`DktbC3%`4}q(~oRE-=ElMPUHOQ~pD-x?S2gwcFbIVpK1cemF@9c^;CJlQ$mp z^`TGK{!;o;a5%}Ihx1G8GtKFA zEZ|WEj%Mta#u}aJch?^GKe)B6nGseJgMoh19&4V^|K(dHz9fCD6Jvf^lYg^1H~xt~ z>QB41#>>nt^3g|kE)so|*Q0JOyrWtAF)k0ClVVAkll*})C$6&VB%f|_#5$jGp+KGcl zzNJy-{6V60l4VI($H*(UbmNXA4o1QT@dlA$>W6xAG_$4yI8(LLnD)xj7_A`*!~_^Mei~43;A_67p8XG-<%)2 zva|ss()6p5B!VybSw9joeiloO@DB&`t=3p$@3hwqFpIBEdKiS<{Lt71Sdo%EY?ABO z22vdG$p^Eg0;zB?GfW!{`9r|X;$YI>-x%SoW6U%nf`BrN6Xt#2nrQwgPJ@%9()bk%X#`*T#Eo0Xko}wR8 z7x$J3@&{r%WlXlRML7!8mf{_Uhwsx6Av1M9U_>*PfAtFOZuB$3nB@9=NE%O z?myLN+3tUav{*pNvWz|Bu%~!9b%)}Mo3eG1#>5?HHiv!=9whbByA6Lw-rd-akpw!K1TIw^?5JUTlIR&X1ppB?=+l6&A2%@B9VR|;?}tKW%xY)2x>Gl zvux49e$4S>v}Brzm6L-#S^3&`l?m6B;Ipse{`=L*KOM8*e{1)OvC`BjxVHgrml5S8 zYwM8FiUJ%WKGRLSaJ8uB%ap}8aO|YIOEaIOwXlq-WcGy3$`C#R`YRJ=+PZ&v!sSQH+I(M! zr7OB}Mq(jymrr>LIfAt>gw*a;qv7Q3eVWCEd4ByRZGj^O`tOHjq~XAB*HR2k#Dz#@ z6-r1K?$d^8+(*G99&z zt8pvHv?3qIpPt(nb1HC`$)sb_h&{ZKoA41fmi?2p@wK(aQ(f_WTd0_HX~3z^m$o7O zgkA8+!5f^7bsRPeaKAk=6w7jn9hcpb`~`;JovH8njlm-NrrAqi%02Nx4s4Hc?M9Ja;EYfrN@EDXU^ZqYF~ zHX|-E+ntZX;_BjFrx9rD~QMCEioimX6XzAQz`@!CHdZgqqnN3+62L=Fxe; zZErwyh|ps|C_r#bKUee7VE6{Uttr}a<1)H>9n)U+I!F_S4KvK1u!kz&JqUX!-Hq8z zHFHx;D7bUa+qXc@a1#EbhE8_h!0V;UDZDg;hI z{V*KUfarwe{nUy5Ht9BJ1^;qyA~Ha*6{86YBk^ zl=RxylPybh8H(h9x(+Q+G zyP=8hkrhEp5Tx+NJ-!CMVh;v)Kn8O8d~1-Z8Z_ZUFd9o7-o#DLbC0&t{JEN)M0KD0 zPt?5+-Tvx4y=ua+y<8>KWOVv*D&nE+LTx8Mn~$P&IyFn*M~%dc?KS;)ddr;`midc< zqlAFB%qWJ!l`OSZw5^5ZAmnAu&0#m4On_79Lf``fZ#xJU?FSZuC!6oo51JLDLCUG5OheLl)W)v}hSS}@Xv>ESMDujF1IDG{usKs4+1 zi33UEvXJGeyhaP>?g`v(#EhhertX8C-j2~A2O!JbfxE&!#?2YWO!%)_MZ%byw#+Qz zIjQ%52)o{tvpGG=efMqA*6g{i^;H+uDR$Pc+Fl;qDn7JJ5~^E!Db?Sb5=_TU`sqtv z>}_H|C$Zrm1A7&12KR`e<&e@b@p?i>BbokaBNGffS?qS8p{Gi1Vn_;qaq?iKza)aiULwZKtMr>H0eYs(uqik zfbI9pAD* z`&a;_0;pyJLC8Gp4^PfJ?wnhZj7G1_@hs*X{)OF4+rjr-Pi^bZkS^Qh{{${e5zT6h zzDvQWzpq77i}WEd?zwMF!uE`IvW&j3VDKTKB0%Sl0G{_8$dKx5dOF$k+=p7XFCZHM zXKT7)5Eck<`aSXTT?C0b zC_4xH)9quSh|0`1RjEzL;l8r-uCIvmMwP3fK>+``+Q25- z5|lR<969MtnA`QKx28*RudvmbGf+V}jycGajlP%7ky5}HiDH;6+AcbM z?&a7@6?QWhxcboNAwWEgd@n|@26^&?o=!Sa*+bB`_LPhF+13bxOD5Q?E$Dlw#@I5n zHo+`q3&yQX4;Uye`U%ZTLy*BTiKi0@CISh(GJbwHK5HCcX@g=&q%+ozx zIMyEH=!m)ShGWJYGAAUpN(fNiOH5SlT@J0kidq@shV9glFaI=LX;p<5gVgQ+zzG~w$^^GZ3)c}Oq zr*)HlZizo#qgkbt??RvW(i+vwMg3-R`AAr@ktL{5@c1-i>4Dxgv-ftJ#uq9OA==a; zhYol%YD~GM^sHjo4>oR&3N)SGvM@5Amtd`miaUl0TRYMp)`o)?7^ya7SeUvjz72;i zL?5nj4oGTf;q+$~QvB}PB64)MFs3z(kIL)*#{ zD+1^*=adHnoovCaXRfc-_?CN$7zI@?JI1OyP*+C2h&EhssC$9gx56=}3z=CfZlV^$ zpz}hwwjwWFMjt)zdRghrM5731t)1(-*zu}p&am72Z#J+Be+CGUj+P%VkRT?ccJ6QJ z`DbV`P_?e-8Z_TFo{ta!?TIy$=9)gYrOXZJIQ+nlq=}J)O9>5{CuP8yh}Uf^Lf8bR zNExhQDQw(!;%zY*G$>GV{u_(u$Qz3$`(t@gy|}cGor>uT(Rn^cJv0uj)_|$1n)pKw^tQmw{(t+o&`}rU3)xbuVmqVD-=5McSG^s7 z?8reyLBFu<+XRhaj$PBjvSgj8;gg~cy{_IbvTqLDFCDv)B-(!L5nH~8vjzo2HA0#O zn$@qxMh%CU_3uR%9SmU|z`tSI^O_3FNA(E<`wGJ6;V``R*qYHI%${$mV9z{QVKx0` zDMAtAMRkJvRwz+UkRBsgI4L>@TMAg)KiDQF$Jn_r8H>YI@abgqPlhOIOwEeK4~n6D3GIUgVPP<$?rg=t@kig7k~E1& z_OrAd?~Kw|!fH_HMBH}d8NhxL7F@AETs@nt+SAo_%*^Sw;l5`Y$_cl8K4K%0hGXBD zZtP}$F&1Y!N}aPUHI|iOS&bt#JxD}KP~_0bUuzJKK8Pbaw0utERGf3dMca>x!PI``QlniqVjkW*A6PN0eV4WXfn6H-f0%STpI=&w-1ZcA z#6a&+(}&5=cAR5o5poU*VO%22+_vB^qsODI!UQO$#I90=cN(Hr_Fa2~gIw#weB!@d5@f=?FSq2)weF7%xf7|jKtUaTg;D?<4Fym-Bj6j;Q`pff zKHIgTUH75v1Pe~*-&nVj#bhY|)c}^`8GQH=41Kdo)!-zWGUm(>p~#TopA?;Kdl-)$ z?d}HbK6v|?RPkbWpz!!}8A0XON!LzpBxpb`=(MKAt!TvjoUFT4IXrCH8J1^;ZU)ZC3T^qO80y5*8|~9)cU5DY&+(T?1r&s$4L-Ckml_`{ zF1;U^peqtfy-CxwCV`A+Ani0`$9p_dyK?s5))K#wZ#3o|9z1XQ2GY-kFFP*Kn)VQqpv$9J_pTczyDz6dWm{0 z{2Cm{ogxr^1t%gh*5S3(TJwa)_s4U4e*TKqRYcf2Q1jO6-mU|eAd=zY`QyU$f8>XB zmc}8%juF;$8Ck&F%%B=bDZ&>pP1${oQjv%y%!)ORYIlzNKN!LPEu@E!235JYA%%h_ z@&pc?(H9OqnGwOU`~ErJHSE4KYg6b@-CE^X1#a*(&GJ|&P*vKpSnF%6|nUj0G+)znE1i)x9hn-rv3ZHb-?{! zzrh8p3y@%bY?J4Hb7^U>^E$j~KZ#O`O5LNRw!dSv4vlOA^)Zx=UjW>iTLM)VD6j{kt^5 zCZg|{%l6UE#Z?oG5e~bI`ldOGXvvBD^;Q~2eZ(Un@NT`=It}DWXG?^);x)`|1kwlR zqeT>I49(3mog}MS3AeZrkB)}rAZk#}o4R@2qFhqebfIESwr9HL5gD`k#oL$#!Jsco zR*ZGpOxzBQ?zRx6BfCyYS?ipd4e*HvU6cn!K7Je$?a1y;bzb@V$4UY^PBI{WWArV)oY+_*D>E^apr-Z$1AVm?Xs&rQEEqTr9$+~ ziprGIB7^fIOV9-8814XP&6*yq>&<$F^cYoc7a z4ttE*t}J?gBQ+3t&9%}#L_4Z%k8+!m!x7#bEj)%xZjeVk_6)|39`&Zzk@fjbgDp=V zzwaQtG-*7sRN>6XF74Dkv#FT`-YB2<%5_2@mX|NxucY>^9R1Qon3{a{FHc#JGx;xH zKPNbzV&}N}f!@9h`Q#(6F#K|xIiE)QRs;HF8&ubz!lV+_(EHN-sV|q-|T$Ces@3grD2we0?jh(yn1-RP} z{&f5NXRaGkt5zQX*m8aehNnHur^bbBAWPBNo^O-nd*s+NpH|$<83fKHiyG1v=US~HFtNTs;ow!`&<}J?Pk{P zU$(;HUS0lblS0tNU2JX?dbhOHzR;WI(A*#X~z!S~Kf8+6A2nX2En-T*7AItk;qK4i>G7-v{NC zC1I=|Bp)I^qnbTcaJ0qn7{>b9oGaU+W;9wE2k3jQ9Ei%mZ?<-Jfc)`^x7@!|d2{dn zJ!h7Q=Wnj^w?HfYQ4v@6AEV;T1P^v?##i#&C!28r`(Y3lfVBxj31!$GW>@X6RMy!Y z7+sME7Uoo?slgs7kL(_qRpW|Q5DKVpn7ZoGaE;MI?#j$y!6>ebHq$udhKZKVL5@C0 z)^QZJaC2v(p!a6rXb1GJwh~o|So@&}-y;Z2KlC<44Pr{F$Mz63IKSM(rBjw7(wx(| zrNS=fO9t|*t=%f^>8lU!Rh8=?_+{~+?~iFDKDt8ywVR8x9^7vWcc&Vzikoe$BT6CJ z+9@1!aKI;Cf`-pFe4T$kRqi&iobI}x@fq-ps@z=DNl(*uUFq4PM+!yfm+_1=?^&T5 z1l6aQlI~uUZ@9L=(v@w*I=UZOi3BF?Z%S1y!8to8ibbX>*UMgxXw z6N{s&b^F8+Kct@Jr8=oOgYg7RD%obdMvJ#Bg-L~d02}|x!($N^f-YT$QbhehlHz>) zM_4;9uZ`}fNiGa5@d?ve%$u6n2TeiNz^~Edb!V}@jME((Xq&!^wj4PhO(EHyo_La{ zcRp^vXE&Bq3>sWjX^BCTiXcq$x1^@>W;h%S`llXvIXyI;d3ot6G~2_t)pQ6R zx{NMgwd5XGQO@0iX#OJfT(n1Psc`!KNdDCr8>vOQ?sKufDm`p5JhS&7ix0DSe_BQN zsEV{poW|svRloSg$cw2rK2FM$~6sY<)$#rD)0GpR~Dc`A&E4w!R%T_`R} zr>^5t%qh)idiqGV6IEfKg*-#?G?=Bdg^-{*9tv2gaVm~_=84~!z$h{;@`DJY>ihDIKUe!A%6h@Pf5&}N5DnL&2U>`d4 zHsG-#taPe%6$k_mL&T1SC-*M*>4+Z)l4R3P@o29p5rp1plMBu~`#v=MN_`oX#fY#G zoseNBkbQYvD?Ki=zUC|ASUMn_v9aZ^&CCdd>6b-Mn&y12&Vk?Bko4NwnCL4fSx|m! zqki|9)m59hleo^`=D$4Y9lLfPx)U*@m>=sjx!@^dl;mKvYA%w!e+kn zFcqJ!;A{vO?|- z@IEPEk5=KWVPvbOkR0dCC|MU$bPSHRRB@SKdpoTfkm5lkq93CLZE#kHI}1V^@FK9yZ$>}%!%<83knBmtDti4pLKov9T*-l2Tn&53YrUsCRy;d84s zP6gvbqzqX?J}k0xBQIcwzg|EERy1?P`XX@lSU&-&DkojR{>0D_X{6K|2VM`8^&HDG z@2|%Mjy)U>3IF`Maw{QD&$O9cM=M&-P(EJxRg8F$YCxwd#Di;uJGqBY^-^Dryf3uf zMt|@7dhZveZ*^0UdD(ZpZ~?A-F0bvow3LeW@GETF4k+m7#nbZ3O5PP|l`5F zQMuKdfSVfRR2C--=!OB^gvT!L_$Slp7T;sR@0Ort;?dHX{=EYML|h|ERMy-?z`KP8 zTW45*c7b)sqjMR>C%;5YqC{IIB?QO$j+QOHezq(Tr^E5V7DtmF3_(xcY=M%L(PZwn zyez4uB&)caxYrOF7!Juv+J?z8>!-}r3{?$dIUb0FXmEW|Fp41zln6LM@T_zix>)f6hlbjaa=Fdar5^V z%h!Bj)+_wE$r*+7X-b3c-Dr&E1B%~>j|RTtNKw~<&S&S`0nW8sk3G~_zPhgE2nUIO zh&ujBjML=Ehu3F6iJdk%G6{W52KaMx(nu|4&)~$%H;k5ii{jWrEvPNv98OT(O$kRz zk-0Q+FF*7)h=xN`qonEwQ|`lgl#dVWq=e>BJdS;SQ|$H#-Oi(w1UP^$%rDB0$zcj=dAFXzu};SJoYm$ph3};Bub<~r?NKj^VS}=fRiG{ zMe3i8Zy&kmXx;hb^9JnR;9kb=ZHH9(Ou3uc=61I;)-zR)gjVn)`C4gQkogr|u6H<` z5Z_Jsien+sNqi!9{j0vw%lfRivGS-m6Uh>H>nA%AoF}eFx^){DB+jI|c@NSgpnjO; zD|TqoAsi(ZI((BR_>C#i65v1{>;|YO!b3e%^qp%9Qna1$aRmLfE+7~Ch*^(c`^Lo1 zF*HHv5`fdTJ1~xgQH;=R(8(8@$yXQAWVxZ|di0lCWjN9a^b54LJ~+onq73VDFuYY1 z;Lrc9mhg>fivWmyCNT~`Dw{WsoxxG|4$`zig66NUgLHRLakL%Zm|iZRN$(hY(51-|WK|C7(wafu zz~catGvi4pma$d-8xxnt-_I23@^QwOlmYmU?xp|Uy#Wv~`G*<&&-HILOaOVcWo3b_ zmm>9PKrpPTYj3|#dY8hL2fa2zA6FVZ%J;)`ARIgO#sYv8P}|A*w)h56z3lJ(QUCg@ zHutjB$7fQ@3&I{g>r^*CH%rKJE05DRCb9MD@`crVMWLt@-8Sv7E~Ztw0**Y5$K(xS z8LbHWm!{7elinN@}6a3|cXuZQJt&Ub5i%FNK*YuK(T!- zDP)c7oyyE3#?NdRhYIi7C8@CsaxpL76Us#p`>i$0TU-&1JbJp4*iV(2J| zJ<`sv(mORZ5vg}1gvFemr*|46%#~!M0mkRj@|K?}WcDB$--k0vH(bDt%)_$*t~%)W zKLe8ePu<66stPg>LwzeG$l}Nt)k8%AI)(NDwyzhNSM=Z~2wk}SK$btU9BzJ4wjC#t zZckVPgcI6UOea7%PZJcjS}T7oxj-`c#uPq2uDbO2_x92XAdAwt`Zo!`pV^+kFhvv2 zWJLXJ{3`Cm+-M6YuMVE4Wjuy=;6~;u{MHS2&OEK1xd9N(A)A^Gkh=d1C>_~4!pyE(ZhM$A(+zcG0)Tknz4Y(o#w`4&Tg={GzB48T8;PW|`D5n&zZ-7!?DA$W)@ z3gZy3q`X1e1M<0?Dl)7Xb@W%VFBH-DruS*DEIu8avM{vEx(Ud*CN_lat+H+c;tSB? z0%%#y4(@*1=?-)*>fl}eCujFsT) zfqfAI0N`-EiDz4xW!BWFWnIa0lpSWqywG<+2Q#9*Z|N+j`6u1>`;E|%72o$1Y)+Jb z;rMyQFl#+Cm;4&s4{`?GE3hmy2##+hZz4GTI(GhEGsFKU+|QRiY-JH$hJJlf|5r7# zKiL5rma7)$5hEwHs&}cHOX(Cpi?4FI4GT9bjvyNEsJkNy)wgIMDWLOE5ZVO-2W$S) zz0k=v;ZC9}v6aAOXc0UQqw9)2EegtAhCc?-!ybkLb~WsQGIP#TH{*hI)v4xXK;t~^ zz>8hQ&dwy5t@wyvbG2lA@%0rSizSG*MTXrW5N)EsiGj~UkipE9>$m=z9|OJ{D%wZQ z+wB?$66|ctt-^Vh&ZdZ3Im%m3V}mhdNfJlZ;GX3(ANF0TVw9?$hejFD<0n{Z3O5`_ zZTWqwc~>OLfHx&FjH2bzc>1il(&c=+DHBHBMu!i1-Mt?D>+gnO~& zF=?MqJKFo+`ebDp*OE4UBc3JAR6v{>C)2gV0!keV%y8{RUTS|DHL|eRh%-!b)iUhP zt*T|YYC^jnMs|N`(qM|}-E?>G^YbPC%FGgV&aKF@&oh7EEoq^J;XU z*-X43dCOBdAu(o*J`dYEAq-YXyBh|0jI68r?>X5e6csp6yNmDYGQdb44*8x+z-fAU zIb|BhL1Aln4tRYuGPqZe>GUw_8Jh!W*8=lvrWhyA3k-wBK)!=sgs#E;+sO{4Py^`0w3(ieoJbX;(#&Un z@N?MuZ>m;4JE$_f_LS(@1U_@gHsTQV=BDdtagayH-eG=zM{}I>5$ow{!Ut4SE4vUB zFMP*Prk>#2cm)KT=tm%1 zL_^EGt+`3PDK;<5%bnK@c~zY_sDRU|E46xoM{@+u2cJ7Yamg{x8uhvScO525?*ezu?f6lo-tVWHUT8_*#Py zskZ;SN0ri_7=GI#?L0)!qMLfYxs|H%K)Bv9d7R*?NI==FR$wQC1+N! z4^hBedNe}ZgRyivo!ZUi?lCc+wHG;|TJ4Jq^*rfgGrYaI3i^;gAn=u^7d}+b#1weT zPV$V02jp3DPuz(b+iCWWl9IT-vVKx$S8ZOXsuA*9E7%wf&JQUm#4a)>)M3Sn*ey_3 z2%oQl>}2&E6Y`YRPtv@wle3%Wa>S$SM{+mChU~AOROrlj+si1%(072cmc?Mn*#YEi zGviSQ^R@rP-2T!A|M9)$T*H#dF4!j)0;NrCy+a|G)!X+2mgOc~6OspnlnnAZ*i4O+ zVi=SggKh7t^(Rt~uK`DwLc;MiHB3m)-8R$-kLXJEeM;SK)O3YyW%U)0>8V+2sWpgn z!u&w5X`gk+=VG~~PDFIaL{)oC1TCmxqVdAMMU5;Z7YR)}hT+W5R&)#&hf&SjAtmp6 zLpR44%HK~(B1VpI2uz!lkhcK~hnq30M|uPEBz5x)uT`S=QU>($u93xeOMi~v9=vb` z^;pA%B(15SqJ6&|Mc`C?ePkZn_>C#%^XOZ8is$tyh%3s0R&fESQ=lNQNq%|RyO;J7 zZ#|A$goIoVt2Qt>A?H)w*=*mcsz8bE>99eG7W!42pw7IQ?>N9hkD2BuH&<1mh>YfA zc8y4QidekkTd3_JT^4^lmJh0Ql?%YbYZo_QC5Fp(D2;OTCwJ0C#*+y25HS47`zee= zG`<4YqFjp2K3&N1Mz=2srB;`hELhc~W_x^on7B1`%y(x%3d1_pql(xZtZae19c}f# zJu-0aWI)V5?9B&VWz`X$vU=t&cQ3?_Jr9;x?^@YJ}dCr1eO}R(* zyh(5LBFu58m>@V3k+9Ylb~u-5Lh;VCTAypXd6porJ<5GJNIfEy2c(5+IJ^CJ#OHAA za^K3*RjX%SEFlazd?>2vezjZc26VCYRS|x6jGvy53ZoUO{+9S^vh}?NtFg{@<-KZW z%G(KlTbMq8N6v|EoANu`VLtP<63h;Yc#ZH`oR9pc9%Rf?ZE4>zCIdD;k)b^Wem5=M z(+4V3zt-L`ca0`A>J=G!%U5MZi3* zsmDm1$gG>&_~2-HTJpeSmD{Uy)3fZ*?l^poa-+$TcH4+xVUMJ*BQQ9bCYG{4SFqBQ z+G>HhkGxQzVezi_T-)i5Gv}}ZC7p5tUH$H^BKXce%*6F4qUnuJB}Oli26mG%GtRHu zskGUI;|jrc=U(IUXQ2hY?|%G`_O3a*UQpf49YBt{3m0 zksnX9$q~6bDA1Y>{6p6w*G7Kx2=)8ZsM$cT%soRL4Lb~lR}@1FTFW8f(w{oQ%5{?L zTpTng!s_*(YXtY!-#SHqj)-D@V z_#ra}$nn2TnaVzvM;5)d_sonB)GAry!)J9?=&EJ=NI*>qHq`zcrw3fSxb&KrXUZ;H zoPKH0;_C}@3kx|?w?*<7Wg@(2csXL@5^?ZuCUO85q49iB6_|>yfX04{nj%PzdfM^_ zOLj{?mbU4xvNI6-)%s=Tvc&!}265?Ve6J7NVg@$>M8JV@rOyjYOJ;Y*4HFFgJ#bOX zJk7!X;mMn#$8H-jTF{Nv;B^?Mc|}TFGow6_aeZq@{qe+y|5U90qnM3SC+>Go&Wv>} z?T7c8YBXpaPTPpoEERuJ3eiWJ0q>prLsiIK@k&442xGQPrCpHvvTfxPtB<0%YBo?Y zJR7CE&-9#9;mt8A<1f3CjUq~w4-U+G8at3~QTyrh!$9YF^Y^vR|H7jCZsmE;vdm%f z?i51+N&hKmyT{?OofW<$Ur=rth^w81Otq8Gg8>JiAOZ8zhF7&M3i5 z+z-eeKRU2Z`G}Ondk3uPzb;rzOuw^JF*0ZaKcXWctIIMej_-DP@fx4>ZYv@3MQLXe zuUcEjlbxpr5N z+9MsZ4c5Z5Z~U>x*tT-^l&6kVqa8@_s(w!eDNBickkzOdNXq@rcCO3j^Eh@!0Jr(+ z{bK_&B-|vj3M`X+uY{jW&sRIT0G49}dQ#(f80sgOIR_+emWk z+k`DAR@9E%$L_{@5Mrp}t0+=bfTmQ=_)C07$lPWrX=ZFb#uHkl+p>7yWU1kMQEBg{ zpa2*>zRWz;HKKmHXV@po$R7JVb0*C1psfWrnc+)&x%?zK1l|7ID6DQ*ic$LX9`P#$ zJt=oR2Ny1tu@qc>zl0lj2CNhijQ{B&$H%~v`lQ!#xQ_27YA4XlvS)Ftjs zw$!lMcI$)mWk7;+k&cKF(vJuk>z0Y*(~sV~I*<5}aFitMrGPcZFYi-x6OZF3%;1mg zd+^m8<~^@G-8nH;_Zx*zmDyda@hTq?d};p{>c7Y~W#rbDFVA_UT<-zoL5|pdy9=_k zY>MErjY&{I6prNsJxPKUQ`2wnQG2-jv<^li6rG0MgMEv$`Fz0KyUL{R;%J8~!q9T& z@I(FztL)q-OE=RuOy^s&a^0({+7~zTsFrm|e-LcHTyogV1w5$QJ^aSlr&~@)$2hK^ zdpjf>nYir|OSz9F8O}Ib!9?*+kYc@eJN`VQ{S+P$h*)P$RyBQNavBn&Ko`q= zL<|(HFuFi47-T^!1;HlTDiY!gRV0~guvC7u9o&NSOpd=@;B6X+Zw<6uH&l2U1d<~G zy7jFQeLsjS({TEuo6dzQ!bzi#1o>yCsmA8lQKH-{8gp#Yc;ar3OJR@N^MfyaUiL{Y zT*AiFSa0>jge;pL zYOA495R&xVJ4uW*{wS&c07C}E`Z4>J)$F%%=Zv~SX5W9tD&zsW%_8&wq^W#qH7@^B z#c^Gq?exx-d@iYq>((n+mS3;uH`qGgoNB1!j%kj4baXWE4;3;CdR#Z5QxF513>*aZ z~8(JB*O>+zU>W&+PCjP<=;2QDX zfCa}O6eAZzDaNRPDBmvEqXW96_GJYi#5PN*{FkHS|CXYg|3q4UKk3RLm4iEI&Lh$N zi8fz8j4YVxAk$#ewWa9C8`w_^yD2Db_iC@}v4eqXRavJl_1Yzc8eA@AZrG=_g(Jm? z>;O&%UP`uVZF{Jaj>W#V7Ee8~jT=sAE(?Qu1~!_Xp4-`Dm(9^EO__n&C(d3A&F*9b zV~2o0*x!uu1jL7XpbR#t@9`VyiE7<-28b#EKNKZ)5r7rY&4#o_$lXn7diHv3a}4mW zL3tP~K&(E!qD!N}DI7Ge)&g{Q9`Q_giup8kR?0Frq)x=G@Pduo)8ylNvFnWT=HbDo zQb;ahoc8V0v4g7S)mL=7525&UhxKUAq}{kjWmig?9#fk+C=Xc2BC-7jkNfdn&UC- zyX-L=83_()mm>oe-dIBlo=7P(9y!s3sePHsjJTULA2>2{(0dJg0xQm}WA-$eal#ge zz(tMM58if|O_UX&6TkaCi+&m3f2RYk4*Dwg@jFxt*hx~iHJGaBzBHXLe03%V^@#Aq zpp?BXpZZlQyD#~jV#&Mdov#S0k`FU4Umv`F^GVX&iF%>d;1S54J`b%L#Z>>Cym1@C zzRF12d0t<%;GN}O*EC83N4KF za0}d%oNcA)mu0+HRyNCbxcwkQ)*r&K4*=kWm$kpd^_Nl;m+By&Uat2twiL_F4+@rD zv`M2RO6{H;-7Q`f&VH5~H4j^Ow-IhwvCRZOgxT&9Nt|0G-aUlaEw7?o{f+5_>)LsM zLQwTgE{@fD@^m6R__Ru$f*eu7+e|CwlFgDgy+OBZ(P8fN9`i$~jSCdc9~R^vRjWT* z;+@z2K4{96{%gkn1Bl!|c^_Los*QcMg9Lj5lx$m@&YCX_xzKe?kv7a0L>mn7gf=cGTu5 zp>fT`sq~g^y6BN93wtiE+57hJ23Jac%&2G4Jq?f)^v`l z1DOJrP;w3@BMywrWqUDv92E%v#YRo>y`{fWd? z>qJyb1!q2K;c0T0%gxu2>br96>MUcu@?Sps@WzW*&dfL*q-jxjoKrCa2;m*hvgX~{ z0?`nX@Hy^9ZR;oldrV$5xs?$%9+KM=7TMk4F~!gwe+c4ZSAN9De#XWuMo5_9GSpeJ zc5PBNt{bV87?wZS#zr^3oS#if@rcgMu$VCkt<6mPe5bg?X&#?`tP~fdsvLt?Jt*Cq=6CtM zu=aEIPxyVLvnwhyjp7ZJZISi`@F4iZNnB1U=5dO6Nr9>;MKX9}bMd<_N$@bq#nyGry`)P*FWlrR1C!1+_qI|>a%N~$8UJ!Vb&H;8 zI?R>f6ULNSQS=(bK0;N;O-t=W^*XnPn5l^*ikQ8cV^zPes0TdJ@ZtF|{NplaOJUW8 z9+0Z1Ow4C=#8HknOjvEi&=cfI*U(B*9qSgm#jls}eaMTw2Q-p14x?fO+L8D}px~1^ zflfh_u*uf+1m$~}Mb^UiZEQE~?)h?1C;36tcsCar!SG}M#^g)dbgB3t_5&tu0D?Hb z5~9_^z5wnc!Nc~6K=dRJzyX1{gxHDvllBA0;zx9gf@Jyb+%?kfU_M|UmFGY|HbioGGf>bPEeD~U%`TgeRs z)Wf+?8@;HhtF-AZWoXna!xE5JNkS7<7(O_~e(2?)Ck>_zJw~R_Z?14p6wK&l^3~`_ zse4_|sCCqT`UPk)E#EWb#Ts9~?n-dq9r|2buBPfy=>FSzr$27Vgmu8T$nJ(#DH^7e zxgc;{3*uIG(`O>wSej%7Yij=RmY9 zU*&?GIIPfHtJL|!rM{cbsa>u<4rKpYjv$Ne`IM^U-!jvUIT4xFuk#o=W_$WGM}uB% zlj_wUw{0_#>yCU_O*JylluI%P1!}l|C^df-5BzcOny==^(O9MpY~>6X@|f9$>}mXH zG1*|*&=Esi98&5PuHH%V+F&2yM}LwZc3?$9b))iUI34e+SiRWAMY&VqgJqXoOA^C< z>0Q5v+v>^7;U%3(Ys5u2kj{gXGSPigr~3Kz2jkGI3K)+Dirp-n->&ZD*j3@4dRXS& zZ+v&ovh=mWTd1?aG#9_6PAIPX`?)e3L=C?FHQF zkr;V)+3Lb3zA)z|Z5#dD{>^Q37l-9%v823V^h2Z?SzjGj(uvfvZF~Q4{x<9LhdP}% z*mf!ITz42zTbmtpO*Y0>h90Bp;`TvQa#AA$IX zfhnyg_kCr577~sO%DK)N^4^RPhXOj*c2(X1q*N)y${>Bjf{JNYMC-p-zG3PNvlVWjDBDBo@LBwMOWOY;sbS=~Ezc5&nu$AsC7=~vH1CF>X( zXQYw&){=FxPys2mh3b9>oBH#|pP&L+Jq=vrr6RPoYWTC46uC}*30UA*xK%uui(6}F zY;ZR|3OIQjpR0b>Xt5pC4K_&3_5nf63d~wd(kzw^D%n*$b}<_mGZ7 zUFxLX{bIwQf>jt}13h>l?8nFLHT$7zf=)lW5LwNMFyI3EJ5Q~=0h`Gv3-MGZQQ%rvKQCKBe2D?uzI_Rv7 zC^ecYx1Kb5S!_7>nIO+*|5ru7cO5vDPqe~R!2$MtRDQqf`|rNDZ;1{9L`9hT48wx4 z$o1f*)IMFJa1?A-_s1+T=_ls+0DI%d)ctRK(-peMr7Fu~;tI^=BGW+ zI#FT>!og9IPlx8l(sZYc;dvjP5+K|z!O_PXZa3aPcf%v(&bu;`g>;WpSjVnFRI9r( z#>2(>Seb1OrTG%Wfx$ecYX(b31E?I+*zrHDHuFLy`@deA@!k7?n#yS6pEbYTwz6GB zZ!)XO5gUb=!TF!bPN&IJ9wZzvJfe$u&YTw=7Q23N_SznKu#UxJB-~ybp}oE_d1)N8 zm{WYeL~HwtIWMm6F_~BJ{C&3CoOq zgT8xrl`^h!OjJA8E_rX*i(N=Rxnal;i7Q?W#^(XgARMP(*MR=f=!aUL2ru*6xPs@j zJ>!10u;SJ|j;0FpPP+kue(8s2HiffFyG|Wx#v=QG+xKz`ZT|{0?jTHxayQ#!-FB|3TXjsa)_VD+s{$5 z+Y`!RL;0GdPcbGfSXh{ycXT+kyx2Dfi9)`I8zEK~G8s(=oaPN9H9JkD%3Fmlq7~PF zO_%fNhW>M<%WzJ-`*voGuxMYZwuG>YkN3U^&imIz$8GdDCQAQI+xys8Y2yost%fhM}R{=EURh`A7vI1&>D$Mn^oBB}tLBLj3qPutMTKCLG zRHn34l(X2#{n_#NjNgw{SOK5;F|YUTFcs%jR6F4+<$Xf3-54zI#rdf)Bn~@e|LMKQi_9|BOn$03 z8b5U=NglEGsGxT@zm8}9{P$n#m3YuZ4yyHZa4B@_Oha?8Oa2~oubCrU9%%abKIj6+ z1pF#Zr@&5sD8^6jYQ04l5phRh@{OP~1=e`R&0#gI!i8Ezd3-Yx*XOiqhmx46$IN?r zpTQlt10X5sZ#yS)edd-@^=TL4e(Eb1TTirX(_#Ik>+1JREjBpszdWf`;w!&rJn}|! zDnk@qoi`j))xXbIpMBnTch0wo(*#zXNvh02=Wm=2X!VqhjwNpiA1(ApX1bnn*t)X_wx8`YxOW#nAXFuUmpJU(DRed#}N7# zYq=$jAW+xHL&mIxH1Xu#0RC#;tq8S)m0Qu5Qx6of3(`S6T&gnu5aj{U6tcs^;%mRH zV#vd@k#Fke@wrcvSGn70*C}cvx_(}>7J}qz&hy@~7pyon$0e&49$aoBuzb0jSU!V? zzz-bl65({m9gF6OS|Tyh_LR8h?r`A9N3aZchwTAhmc0Me6shNe$( z7>a{JC^_{4cE{F}jOy$8uhgf+oOpV6|K^*;dsPo3x0BIT@ZBEnHT-=a7EL{#-Qj*x zB^@En!ja-tP&g|?UYu?kSeM8$6i@3iTIE1jqLm_8u&plb8G>XcJ}d`r*N&FNT;qVwpNxWzBV~O|m}(Cw(OFxZ58Ao{tFK#T9HOO%H8J za;OBZ{4AP`SVb}F&GcIOnm>9hD8A}_3aKm3hQw2euP*V0kv|mgFufEPX|>Dm<#xuZ zBCLr3gYgig&HF!F#om#a#fwCC#FDI_+1GKj(lFvCB@-yFQIV%ae@wwG!e5$2=x779 zbNCNlzdyJce!3eruMmyNE(Q-JjuefrWE>>#{@|B3DR1Ak*!Qq^I5OhY>5omU&QQ`D zW#G0_lLym-1BtdZuwXq4W8*{# zjJ|gGgj)dbD;@0w6ulnw@Hvl*j39fk zB2b`WQBV?NKiebdqhPdQx-7*yY^J?@vkSSk<#Ze5rQN)Z0$azKPs`C3<)db5z5*Sbe0_ zF!c`Wh{LnzSB{m}RLD;9@AMRACZRBI?WlQQ;*lfmjN?>RH>GNrywod6 z7Om5zj-3*RXA`YS=QTP9N$_!-m5|>UyvH|it>~8knA7}ZKB3U2A-rYa_>q|!D1#3{ zbf+!1qe*hmPh|yI2ch7ydCk#?+Q>N=d}4oW8Z{FuGXA|M7a*`cWsoZjNJ;^p?v6+N5Wz4Yr~3tW@z^#8R>IyReHt@!y8Ip zwppt#=u3I3sWOeqHgpcg%C>ciWMkvAFqzk%M`nwsv~>{{tS$q*Pt#E1KgnEqBj^Nz zrK~!53ewa{7J4G%V*h02@o2&8i4!*u5a8cv| z<-P_=(a@oGfvIW;!=v1zyCAD#jv`nd9J_MOIUlm>95h_1^|jMQxY>x2xdL|7*>_>x z1}+xO1{>H8a>lPXtshU^|?kF>};j+(WaCe#X z*VZ!Gcw_N4(~z5e;e-|gfSo$rUThF) zD{K2O;bi<|Ue|=QUS5s@867-v(+pFeiDxNunF>BHCd&q4i@ggf&O?JCb7k^GK3Ti_ zo+Srxe0gOd%Ug7~*XL6~azP#u{a_viq13LOj~Vwj{cj<&JX5I|%`jNu3+=J|lzv@-E0N+kimyE}v&(1HiLB zmHYo}Ruaoofe@;M?4`_Tf(i#|E}<&hFTE{UH?-OD(O?wi`jR;KaBy##Aiv$kD~Mn< z0N4yh57dOE<;cCbI^nY3*#yVxO{^m8C!Q1DAjL@|lsuwn!17V^8AngfXRcrLKCDB@ zEr_TD?Lscl;u zMp3arL_w4m6%+*p73r8LZbU#tL_A|PG5gx(WM z2&DK;*ju;9z4y7_Irp6VyZ65LkF2bfWM!>2=A2`WImR=d@zLY8?bQw^7nL~aayx|t zWd(N6aiBLcf)##H9y=WH^8lNhdp-Tz&Ud}Sh612KOx`MFs#w2|qBd7$|-RqFvoB4(8ac+n14D^_6A2Nswx_qfTR* zc`Z4pz0~V-wufpkBeC9_3j||rCX6^0&%9f8B)_5*L#uHCn)S(-*}M`Tn%;Wlp?*TP zCx$f^8PUetcz#md0HZgGHp4xFv$}~9(Ta3z+1^Qb z&&h5TQ8BTrvq~QKH}LX~@(_@I01c-l;r6&(S(RG?mtRkXf@nmOFGSct1HUk;`WaLQ^v4$pK;B2E>vhvSw2M=# z>GjY2hDWndU0y|(7YVbE!L+OR^JMu?JTCPxsiZ*~U+$RipZrMfO+h3Ik+ zLirV3$vh74>J4n#W8nccu1QNVRKyruRA0nB5luX0sK&nU=rmjadC`ppPi3j*+Y{@a zj1*unf`P8F2C#X0_>jA;TFpRq--oBGr!wV5pB4ocsV^w;LoZ+Mw8M^uz(5%G#?rwm5sM44>xImgR zD7&lrEZ@a?6C&ts{hmowwQs>IOjZDGVAA<&=N=8PMzvnz0kI~V?r#PU=OS16M+*-Q z(wLt*%qp_;fXh=I=+s(bibs>JH7TPe^efYOeV!OMmysQ4m4yXG>LXb9TD5P`)IvST zV$G3jr^;XCNSMJI07thm|MeCj`h1nPyQ>XYW?!Gp`~z{!DWBTa6?i|qF(EAz-dP8% zeS21>Z+Ek9evKoypJ@WM4;Xx{Ti+Ly`lx?;gFA~u)1T#hWy*KcYv~Q5hu$t&bym?| zMerMIhIx;4!QYS6ULQ`Bakv~c1WTYNlEjUoWY`VlFHG$3F+%FcAHg%)NNh=|V{o&A z&;`cA9vyq%z1YLjAZFoYc7H8qVd-SGI8k<>6<1!KUl0uD`N%Cr_->VVIyCLJ{Yv%r zyqaE9qoSy$7nWfllhe*?1%YF=Kk1Zm zTIyD~Qxe-g&~>3CYS3|&|BeYR+s|37Vr~)U0kF%dQ)kC2P=L^1tY+0(Go?i8oVybv zVm`v%oT!M-u^ZS&am4l5bwT;d5b%yN)l7q8mE6QpEGVDC`; zU=5w$+LCG7lzeeu%1F&o3~PUe?pAw;)`+UXONy>}MNFUMR;{~9a7JFl%&$yTDFU0H zZ7llb3-kaQXf;@d<@Tv*+4kU3o8bnYvGI2u6n|UIC$7nM2){Fj`Nz>UhH_L9f}j8N zxp%6`0^{$bmT;#*zeu{vXdp?dzDB=SXzU(?6?cM=*ES?IaC2cw-*vv#Bt#4iTBaB8I3NZiOcBRT*161Tx2mm!%6GjAW}lF zWg)*ew9cm^N!J-Lih^dGlk@y()I#hF*C=Z8HQ-L;t4{=7w_SlO;GzJecxV>7?6-h> zRmLYo##dPTa|`v)pV&MKp9*D>n9sn{+$$MGhJAgcoXTrC)rCtV^@|ag05Wdj(!=%2 zSO8z)UX~nV^mbyiy~n03Mhhwa(aoTh<;TgeOpzxzV+wN$+MK5Q$&wTob_TyZu>-iq zMr+#EMuGag49RvR>6pXiX_#zZAofww>vO}pPx7JU1|>?Tuf@P57kzHR$Y-eU0#&od zrGa5P+WX#iQJN7kR`d;?C%Tb0CxO3i-;IR&E9~=1aG*7ke~nQ8L$vVCw1=Mn)6p>& z8o0mn5*3~H316AsUxQG%7@jDf%*uUW{yTr(P{Rd`*vQw~tEpZlI<6W?1e}072mNZZp}##eD-t@82r!-kB}V z%e46nOIs&)pNBZjg)(NH=5%OvzJkmc+}+aMk6_oY*~Hpq_2!FpqhrZM5krEO8V*J&X|f%CwmyB87rWyxe!YRls=Z0Qa(3&@wVx z3WOSWO(44cs$zm=n^b}i=Df`hIkm~D_5i1RG{{c#^malH4oTo19qu$ia`bffR9mLZ zAVqa{2xo@}d2$J57(^Ad@O-AF;Kq^qZ<{?1xgCE?Ihgv2jzbdb`}HCLe6XYD6#v=E zto%=ig=S<1nwKHa>n2R`BJQZsD0_b*r%Rx4QF7soO+EI-DS`eM;ki|qM{rY&H=Agt2AUMARMEFO@z4pXLsh#-<``@V|Uzvcz(l$Dg3b2G54De15&umgA4RsKf57 zXkRAvNnVDyv66t9VM#f23(cu}fj=6tU)PFaiC6mE>#(Ivg%t6z6Z;1C$njoJQjDQ! z)$$$fBeWv}2ve=VoVLcFgoE3luyX4mq799jx;>F}{7tdItFg z9^8LC=3PE~#~?neh3}BW)9y>}6F$@i&CCUm(A|{`Wfma3)rF{)TBEmABPZ;TwvWx1 zOCI}?7I}GLW~666Uhh*4jyv_e8Io?;t4H&!Ru9l{N_>ZZYfRA`a&ImoT}*Uiiw-M{ zG;3DDKEuF|_Clx?ctFw9sai^!3;D`)Ta2fHdak>`UA#VAwW#!5{^qPL=jDfanOq*% z;18wCmTqeF`x|f91;r=TR#ls2jF%sr^~>Siu2h+1p?a+ zoGrfH*~AbhCMSKt>_JkDwH2~If6zP|=aLS&W5C@N!Z3TOYkXZ>Ve7#y=b=9CVz1B@ z0;KFp?u&16sK{t8|HWMDiPpwfYE|aTye_fEM@lBHua;VyTRZ5lz%XOkEBtO_)526$ z*Q|lMMRei{bWbx90qQ<&c?};H8`2Kv^JusmykerJQsg*2lHxugwq$_LI@C1087wAI zt>~S=BRtc&`gwqQ1u__ftz)FrJwbE~>CCSS27(0V}JfG!N*gTPSdVA0%3Z4xZRwcG8JF@G&=mHC za?bD}u}pt{z0XOQG8Aw188c>JT7`ZT6))4iXPS68KJ<2(R@`%qyrZ?uLB_D$CZkdV z1+s=$fNQ>Gv4~Wmk43u(WA>Ddp?+RpL`?6nn=T;^I3<@l@ac7<>i4ULvT!CEpSO=r z4)j2&z@!@30jj5eZ&$-l0Rb8T&3tQbs=r)+kwO3dmD2a$b0UOCRD}QZe1L-Zzi<8v zW$=SjaIM_deK>UxU6Em6h!3}%S6YS;#g=2b1ARWe`oGrt@7yoPEWbegyPGO&+iy3w z@6Xj&%DJ_&!aOu)fZkQh`A#k;q(!Fwlpyw+Mbq~&_`{ght$A`iwxxa6lw0H4eO2wh z8nj6bqJQxffI0oI`z9TMCoKteM9pC6@4*_%2h>-|b#(y9nDAi?ZkdY)BAXxnT)X|x zl?LtwO=34dAnUslSFQU|{ruX+EuZNV0veHiXDMH{udLxPze{7Bc6f+Sy_|6{i^LYq zekVH=x#3*z^ZAs|A*}a}%~bA{zz)9xjtsB2^?`}UYDkpG^v=~!^V`@74k71rpFBQ4 zt$4aDn^H<_(k5+rYdwVZjh36#Q}Q?FI(%Y~?Pf%w{S6jgGVTyC475O2l#fUgZ8Ln( zaGzUa(3h9P;nV#!ZQ|QCJ;TF{5TECx7w5d=nW6|nK^bQC{9^GS%nEmLoESUlU%^`}pjTX{Raw)wnN zUw2XYgPw@p!pgp(Q|VD*LE+)e&dxN9Jf(E#lA9sHcJEX93;`8nR#%Pm4sM%RwwVyr zhgSnVf`2q-v_8E^D_0Qt1*H&{vU%%tKt!*bEGeStp_{HL?!tmXN_|1lnhV=r0MAQT zypQ}dqen~6!scFBbHugnHa20+aelSx%=%9HRn1c_2l^76d|3MuL%bXZ)L(_KcKRbe z8*S|@IXi^kU_=uq9JFpM1nk*|-wLOl8(3O=~9XE6~ChJv9*mO+Mc+-<(?=b?Kf>lqAGu7cTw3o^E zo4+!(k2^+x3~Y{9KVdtY$SF*_P4x9!pvb*jwT!Ev*FQ?!{Q;|Bt1sVZO|io^)-Tan z<8S_kA}7slqp^c{?udSjnoP#=9+3OPn3Q+%bm>ezPplkd@nl-V*jwITlI_+3^;DX% zVUQsMzekMYfGDvlGdoTEor}VA!3*PF8w&(n56T?%#*(>cB2qim)CuYl4ww~uON~|h zp_Ez?(R$hdjd|SP3bvi5oQK}V$_Hq_v7|wlj4++AOgpRS)A6HawjfN3+v6tR27oe4 zRQFU`rR)MnT~|br?X?|s8{S{4rENf0l;SI(oYQk>UJ~I|^;+#YdsmDduHMNNDv~mQ zsQ6c8@-18|No<#LoQ$D8x|()D&+&;%O8S!eB242&=>h>+;jUD13d2sZ9O@_$w_Uhk zzgvWZg>sweo{|a)k`JdXU>Fo65r>34^3ho+@8gf#`HOIEG(;hS({ZNhE0a7(@GJvb zhiVJVKS( z363{=;PS&3Xc#ee{|IH-GsyIrVSsiz1oi*Qv|F^q)R8kXZdYs0S^2x!Ie{a;XuK0- z%b2@fa)P8;3)>}JbTLinF@C;AbF@l{iU|cJaDO-Bf4B9uj`P9PP3sd>x2av|njd!^ zE`w8ahjQjU4pNNdJ1Y_^r8ch|?ZD%WG)%eg%{MjUOLZ zIX-x29C8vhCYA?Z7Whq2->sR#cwL@MT?vlX+{MdrX#N?&7C3Mg8AR9?bVM zMOq5Sd;j7)p!EN>-<*Kd4y%mC?{>;nJ8 zvAgbIIX#prIVtWwFq3gbx~%Nd3E(hnXNW+%kQ?Q>5*Mi^Rh>_lRvgBb0Fhj0S0!*5 zrj3ruQl*!}XrfJ<*1Uz2z^(nqf|h^w+0wv61oRFi@kL#%NgsOd<)M;*(j9|pwOwTg z$FG_0F9Zv!vJjCdKAz_2d30z)Q1Ezzvv@;^vn5%b8|6T$sV_upA1M@GYzm4TxJ^kQ zsJap^94WosWoWWfYs{;>exTXB3?61wmO-q3c0$La__Q5;EsE=r` zlK#dy{G*TZ+rGO-A`T=6_newIlJRO7di~r6Xp)nm>sauo3Fv0|%`XNA0d;&kcBFBWLJFQ*0;Ia{BH!-}tOC-iW!^hvCU z2TwfmnvJGCTQC8asGIyl&OQ;P8J&^k+TGw@;eI|&5_94l=L+9Aos#Ug{v!por}1gnL(Scxa^9u!wVR2tfW>LT@ps2 zmq>uAUYPqg5bTt!!hc*}b=8_|0lnDCC$Z`ph=XMi0Bj(-D+$pfD8#GT4`I@g#{p^cDhKJFym_Tsx*f1IGi(MItLuIR(29qIJWUfNA-#ZW&^Z_Mzw$rre^5;t zD{^|k54y`uv2|}~w<)7odI&Tu&XJf;Q-R;1-?A>I=cZP2b=K7*yb*rh9T@=C<1%nx zDSX{6&QRVA6VGig-FoJO$R|0BDLwHJ^)~;Gwes$)$B)b*55A?NMpaf53DIZ^8XNKA z+hu(AXhBX>@-z&tvSM;^bjKtr<_NlAWV)LgBXd868V~p{%j9TH_|XeN^}Na?E@b8 zQU5m;@$DUupTV$slO6|&%g7l+;mPAJgCMH4qIYI~=^%93q;?oJJ^(--R~b!|#3Wlx zjx`ASq#>t_gb2ZKs!+{pNKBA>JgF6WF;o7?(^tR7^ms0-DfS7iB!&XYE={$Rb;7mI zH!cs6N{o+rR5$Z96tFxVUx~4`!Kz1Dq4icO%3e~oW4p?>1B4$e=J@7JP~?LRt}?$6 z#b`L(Uq9y{Ki$qCsFp_cPdl~K%G{R#e08Bk$@*is&bQ=w?Ie@QU!C}dXWFBcuCq6R zUfc02ifJAH*u73I&y-G3Ut#TY2RiILr=NbjAh?mf&UW-7yN(_A0Wf?B(~=r(A5V94_Z&65);YW|m*=e5`SOw13(W%7NJ#c-(ZSH~SLj z1e^nQg3>g!CEGfa(oK*HEY{K9bgJqtQ{bnYOnm7d$CGR}yP&JA1N$W?Xv zdn!9-Q0605p)3Z?Q!Z-VtBx0ONfi=s(nlh(+A5*KoZ97b0T1+_PZ`abQyo1%IXGyO*)6m$is*C*_8Bwp zO5GTuvbvqpA7Ei!U_b^`IM^JeYHXmkd9qWzp7XQ@t=xJayMm70;XTYD?F0@D<>FbE z3rXnOY(QlBI79Yh3x22z-w%JU9d}>dcK=%YD3yL zX^EeD2ArwG2@F^{e_Boon^3wC|IRLWvZG8XLyMwG)l^Czn z{rBeGY=w?DEw)DyYN0&$tSak%r0-8|XX9R4*QNpXGeG?sYBA%GSV=TT$;* zuX-B}ag?10^}1`m&&NNs2TKy|EG6c(({92gjvX^crY#GzVnzcL<@q5OLY6uk(ijbh z-KACWyW2EIZdG5KiP#_{c$DRV+;)J%4M^U&J3QJ_sw)?*&uf43>XX7&^Rk9?dTp_L zJ{cG%37XddyE!1Y;l4k>_&8ba=e;EE6>rT0Z7ksrz^00gMKLzjt$H#5Rruv4i2uND zQ8$#lB)1#0+9x|wR^ta4`>uQ2m_0vFqUy(A6s0x?OQ)VUvujS|w$TV!OXF=@D?0QC z-qf|v@=;%zPT;3v0A}+0-uEAl=893M*3TJQ3b@H{EXDS<#`bSO*Qr@+HN&q=Pxq#L zWx9)AlpRV3?(g4^QbiAb=bqB4`k^M%27%Kc7W;<;d!W~t{^Ye`ytr>|Do4=3%IJKH zJo_N2mhAB??CkIX5IJ25RLGX~%{9JN@@y;^K9{_)ER>!g>OHUv_96B}L|n-}z5p?a zVPpHM7R>E|VZ7$YYLtI+u^|JSHV8VPeca6-ns>wB+c#8yI7)>F+36PDE%s(y5sA#O z+=3L)e-o2jHv|vg-k4RwJum(Ww>Nm8n++;L81ombkzdhPr%r5ks&-wTIR=R!$(qB* z2rbxjO84g8D3iaTP*+0Wo}PD~oQX|~_+9_2Z;bKByjHb8VEOv*~_f$Ug9P?zLO za`n9B+Zl8P0E9U=yS_Rh<3m*GiC>^hs8R<#9tHPS?1a%VqmiM_jCOjQooYzN%gHM* zm#dyXfa`s!HrEa+nORP@xs{WqV&p(=h3SH2PS4q^f70$h^o7WMA6u1nO-{3nn%!{M z8mea0Q)IrJfXqfIi~27u+_zor^hDrkPVn2|713LVsN$FMgZ-%b=Ow;y4vx4qUz_cr z_Q=QP>lyU*pk2W|mogW8lb*1S&dcV4Ar$j!+x4sO$k1**v79L*9ugC;h3s_!STaB0 zu4qSUxS6i;(IP8n03YqGf*j+?`}<7iaZxDj5%l!r+03%h#=B{ZLD5d6?ae)|Z618f87bbe0Zi$k*gY9h!O-(y|fdjXnu|;5Bg3mQ2^P66F zk*ZKztDOUTXc{y+0cB9+@JSAME_=v~`Xi$Qr7Q11np3M|HU22B8Yn#ZLR5f<#+uiPAK2BcZ#s$e z+AfLu9nWn>)Ok$DD~i$GcRnhTuFPFyX1?y(Kkhmkth9(b6CCjVwe$fmqgJZ&fimP4 zCm$s)J$d#$lb?pU2eHM0$<$=L&?>KH>mIdbH4osGLV{k_{b#-GzUY|N(t)dh`~1in zBa#tY3v8mKIC>g$6=A)E+YIu8n;2ftow&~Ny8B(Ohd6JQk@%uDI1=45x@NQvn{>CX z?dSkd+&JG@*=2YxV4aAmw=S`B*D_t*wkyM}GEpz4Pp|Rg&Xv|f9(OmpUm$)#Teuye zcs=LWP4FC4N_kQ%=wUyI+>tZ%igy0f>vxS)sXdGpAYW&S%)Ibaw)LEH>^|jr;rg|` z_)e;V!5pbN_rXN+L`UT3#iNCc+(9h>tq1&`NhEj`m+*bO+2^uy4pF$u!uFCP-kbv^ zp~)L16E+Wft_k>W$f?!_!L$ee0I=#PV+w8J4>u2sdOWOFB^9eP8Yz{pQ}^xZedI^a z87&l%(c>vNqUjm(5}JV1r@uU?3llJ3ZP|Gw#nkdZ?S+|X<;#Ic+si{eoLqhI zirNOT<(^6NoH6Rm(wT0u`c(j-+KidTbTw5)!R@BF$V9KH5tCrI6eMEG7;v#U5%Zoc z>rt;pkFQ2-dq|tAYskGm*sn_LT$Jyv*Sf+tjAun(C>Iga239_P4z1Gmx>TR8@Rg~Q zE|SF)7uq{E{vu#fa$O<)L)DpD{}p!hPkQ@DJ`W<@v zyiKJ*Y8%%?|a`b^54L| zVQyxyn~!Nyq6T{mZo6j*33Tz;&^J3^xx{J`NdiWNnop#Tr%!VQpr>1J=R-N~S|8pY zP{Z>G%V6GPyp$=9EJF3&XUsHS&VD~YA>sI~DET9tlzfI#)Cn8)40DfkdV;+mC3Y;YohdaR$+c2(nOmly*zy!4yYetdr9O6y)kizOoPyQu>lL& zQWh4!az*eROLH)12-R_1%Zj*_k}CZYXSY=G_eOXTWcz1W8bR%Jxr})4MSRTmv8m27 z=84K{l(&QL4ep#NQijsoWh9yc)9O?-r=R&ANjWT|nq~Te@oD*yBT4;wh}e>Lh4gio zyXRP)d>r9>#2QnE=pG9)h|(BqYC885_E`~xng4kcePM=!o{J^=C;-y5!y~FXFvy6uIWmpODKfT2bP^p*Gy4wBB zJHlqs_altoyyy*5tP#khQdvxl1H<)9;g9(?hXZw#&vID{$n~)7%oig zUe*t#XHX>#Q*`Z0ub(6bKQUd(+-Vh_1ZzPCpq8X7eS~J5 z;BLm{qT~drtsnj2dpBmI0C(lY*mX+iV9({-JfC&_sKW2CpR{!z&9^=&K4PNh_U8UH z#)O_=rLE4N^u$fc#Kd|lzqgpgp#21TpS5oSNyzBg6%DKXT=e!Yh-k#Ks0)$aTw&7p zc8w(dYK>IBULJUGe_O5?`}q9*BH!?P572oh6>X5&jWO83yb~usOqAIHr}^DB%$PoQ zgZ17{f>jhRescDgPr(N+JxO}k7V`U_%_q{ytI?J+>kwhUl*xHijiFlo}b6ttOcn^Q-pS|Huf$0z583m;y>d0(fS z;!$!j?Zj&Q9WlMdq3$_i{-l%QHy5K`MAUDLo(`3^d2+FIut>PL)+_(fA`flqKLxXPjrOKyrT@FF z^(Om4TH3SrI`T2bx%hTa`yu^F`kqTTj_suym*9rLC$4ukjO&o(&$4&>zvlRVt@CQ* za&#Co> zUlH@Mk9O(0yBZ>~>);=C^1=B(QPYYsg^>hXVb2Y1Qk>3sbNpST zJ~u$FMmvM&jeJ{p5jHs$u;NjcOnHU3pd9|<+K4xeB=FMjp+=%d>+oJyjYtp^#(n9@ zjvB21uHx&9z^?im+y5W-ZHoXW*FzC{+!q|w$(z_gR^^6X8y?=i;#rnVv;ZC~kH+rV z=N^c*T)}+)B(3v|J0&FpdMbR~$VX#$qFXg)TWIR6!0>(kd-0IvfvyjBFu0|tt$!|$ z+*AF5Q<88!qVVFJmx~|Sv8oC3;mTgsRD$u$!ESV%&7G^Gl>jn>Iq4^{4R^%JD&2}4 z9oP5TiT^K6?)g_hdv?mhIj=hko|bgdnIANqf){}w@=q*febR# z{!-3m7<$xacNFS>*45M&+pc#sBP`E%LjT;iI+EYaS`Zk07$jy{ zV*DK5SKK^i&yU-`2~pP=%#&kTe(n5fz^WJ7y+DhCvAlV(0$DE4x_Db?7178L$VG|m zvd|8ad}?K4;Lb}ZJn3@FLJ8!@A`|L-TG=%ml^JH$|I|VdqD48F9E>2~d}nk_U|oCQ z)aSz>6jp6`fvQdr@)ymHkO~*ZlC}Ifaa6IcMH-e=^YCq% zIOLqVKp}WG-p*h#*ZpF^!;GJoPstQE(m)2Hhe3>Ct#%in-q)+w%qdnc-I-cRJka4T zqmSCMD3f&9{-%VzaU0w`UD1!AZ&b~Awc65u)m_;LH5Ls}E`C9V6J=XEJF$5aPi+}3 zyG|ibYwOD6d_8AU`VxG#=ls@o)~a7l@IL^tu?U7wB1958x7|#B7#~}6Y$?COf=R=J=%#*l8fAi^w zN1@<_*u%|N?9BQSZG5kt=O@H~!kGYJ@tu-(9oXbLHr;+JAHDZX*9f#IJAhyci#c=) zj09PrcTf+`O9e@c4N;{o#y$DUl=t~6TyMeFS)UayVU54wbtdA?!h$w+QNFm!(Grcb z;KI~JIzt%pDDIb$7mnkOO%7u}w%NZFxE=c1`1X40IA2s{&rpg}k76+kkJSs7as4f2 z(d{|qgH03zmjWJb=M&eMClBwpSYf_WAQ?sO6zMp|>GuUS2f@7UnLuy9)i(2azx;*6 z32u%(?2TydmEIne#UWa^JK*g2xR`MT-jLGU3fl-;dK}~Qt-JsDE;7!?4$sA#4(#f2 zpRnswXt~WFV6a7EVac6`sCzMO5W;V!-e}iZaDK9Rm!k7Zc#Z(9QH&%l&SiFN&8zbs zvhLJg*}(RWeB>DrX52s}4|5t#fw&ZTTCmj5k(%%jp5%h432b&Ji5uF>TuPn?V#|84 zL3bcK*mJ;5zh$S_vID{VDVg8ka^(_dlhdoEThf*gJCKAB_w^5HlLMK zIOBpNQVRt96>okrTT{c3ukHWl1>IljxSuA0fBbi)$>z}^*=WG2&{NviSHCIbXj^tM z|GVwWd(*iGa-3MxKTJ2}j7xV;_XcDajVx60}t# zpz)&|GOy{pyp|ax>&dF|a)Y8Z#kc}cF2(0t4mR!hT$ehD2+lidTrb`E;YMh_-M zWC?=tqJ%2@rCJ4Ba(4v^g$oGq1;3ZMc(bV^?!nMFPLtwJ)Fk*-9}cr-Hrq3K@0T7U zt?p2-iNX(Flsj+T?1`MwgQo%X!C{SBDyo>4ac50YR>Se$MToJ z6D3PuIl(67&Rh`4dfFFpuI{i#pxxpccNzCFU6rucCzUpFtDNINn18YMigEv?6di$HtOJ!|AvxCzEY&hm=1}CWE46P(tkVpW&|6Y#lzO&iq(UiuX%|pvT3y z2UUPRsTFOa-VM=domo`92ZQWt^;!h$S|LM<4k?)|)Wx_P|hnY0?!Jc51 zu5H@S9A4fC>4|#+t(15;gz@c{rC6pOc{UWx?S6!CPG#FU;V(AxSz#%}Gt7|Vm**?hSD zu$aehpdm-Idm%!gnh)9!aA=na&@@rG#4UcJS$8)+qa_DBSW^r8>pS^UFF~Y%Fx&7Z z@NUSZHwEnyVp|N)qbz)t4eB;*Pp^}|q~?V8lNZNPinYBIi0wf|!SwQ~dlkh1p?dCY z6UUi%m7p3A2>)g~)--J#udU)2B4#vXcpf!OM2HHX>K7$0Vf{1Y&%fwaba`FR z*)SG$dgd1X^o;ZbHp%IPy^Cu>cF>jsHNq+W`uorCMxO@!h{x$6L)1jZDs)Kc^DMjw z5Y{s!^p6BZGyT;$W*eKn{qT(Yw{x|!%<7)+`2Aj*zh6+hF7e2N|7jP2yn0=-Z(uiL z%Y+gC+xEp7xJK*J{@W&{g*teLt8B9I%8NMAM}754a5^iDA9UZZOpJ<>8*(Ac?39-E zK59Q&xy^|6mHqJ;Yt-C={P<1OdA#Yhx;*mS!r2(cerw>lTs%W@{mR4)(D~cpgON1A zqj*8x4^M=DWqO0#zaYpU(Z<)eQ|hK50}q@2>qs-7Cczg-Ya>wo&L3_8LovaFvIC!5 z2j^%I5LptbajS!upk?LPw`b!;7#=v##kac3e=7;qh5zZ&iGR2`685zE9JCSh>-NWc z;co&L`>o0p+4`qz1AzL^0y6y=POV)?{B_$!z>iI?k9@yuAdM!V!PiF6KPsJZvJ-A) zb&Y`U;O~;LETl)3s0pO;A0<*MQb&PA(8X7OQVm8*j)L*GXtlFqXp8h;b=-Hgr1<+^ z{qsVm|F_gA|EFfZ&0v3j?y(0vD|VZR0IJ6Pu2Lhr&025Ne3mtKN|+fN6))$CXfRrz zLJm4uy~Nfe45F@R*jpG1x$0HPOX#YIzMKs&>!7Rtu5JHTA(rm>^q*0Q5^o2`3R)%l z;2Q6scj9Hl3(z~5rwqty`z1~Xw_bjBaq{CTju7=OW`NJBajsgH<&m9qhFApe@#O?T zR!qzR=7Ii_g}*<{OD3i7UOte(T_iRO#-#MIn{Rgocw3m^i-E)MA06o#?%(vzwv>PQ zNdM=D=l^yc_-~O+=AsiHgOhfEv^U26wRyL1LV7*-p)P~hDfL4#)Z{XQ^$BZYN8y*Z z@L*H<6V6@N)9j*M^{t=nspyD{P>DjQTMeA9{d4;PcWLpz#DakQLNU3&Duy{@sBlLo zQPpQ>^%JIya>23wQaM1F9iL8s?42y?zz{4qAD=TdzqK2=`Ci84#>bE$q~vgG$@)w> znBki`>8huhotsx!jetmLc56n&W#l&fQRXlG$c7|Y6~HC8P0250>jW^VKX(TFY9bup ztvn|5(Star`ukiM_=7=QCpKM7aESQqlvr7LTwRLsm1(y150(Odw6gpJ%y=1tb_rac zSW~{wVoLvtS?s^@Fo9(eA(cEBZx{7PviMs`ot2iyb^QU zCRB~~;oq0rx)di_@s&wA@_MM4mA1ghP>`|Blo4p`pH?(Z?;Lrz2#}I~HS8Kvd~jDL z<5WfRbC*}*?M~(<*k4JC=;^_K{D*byciZki)Uo$H>f?{FC6#CnPHz-vVAuL%;E&6y z(r?;&Yw4N+vt}=DTZGg``0`yiN9>5RWu4Z8#qnAS?iQ&XJtgozcxpJd zIb8qdJ;sMp=z$9~Gb&&0vJ!m}UXy;iIowd_yeY`->Vqx= zb~x@OuhIH~Bvul(C5H~Nx^39{QDtmoDxm4_o1dBXsvHreuh#9)*vZJlBCcBh zoc%dL{k9Bcr~WUus{g3nN(C+wIk4McTogQ2Rj*ZSZb^sW%aK*6tCMC^EHEMgNbT0v z$(Ib@m)}Bjf5_Zj`b*-qr1sXHY`m@PQ@z$4i|a*26Fo*Fm_P3zM$g70J!);}&42|F zLQ4F-uVjQ@RAbW9SM|B!5CZRp4k53)-6H+MJytQmY#y1<-XL2oa3x?;@3gnD@BX1f zWm-&v8?xCd=AK>RC1Y)bYomBN4Zde&%(dRC1U7i4AE zpyHHaxuhx*cz^!=t7m47pOj&_3!`c}*>|`!cG)a!AFIAe&ydk9&9o(?x~kmwa*eOI zp^7<$sXj7-b2zz)h_lC#V)xV%+W_0&-?~KfktAFcP%@joNVEJfRmr5CvE`hZ zY#XLe-ebW@5b+P>Hxodj&9N*Z#>Y}`l1zHH4=OC?X#9CQore;fF+PxmtOTCxLHCj< zhE&HP)^rQ=Jy5}u)K~B9ryhQ`9SBYv@bEWVF|LUhBVsBs-6^^xhp435*W;^KlILqt z1%g(COgCdszPsO--c36}QYWWUnn?;xH82+6`Bue(qF*jO#$;XC7+R{z%Uokyb00ON z&g3RdLRKSrl)m)sPsHe!_J1*w`(?kMkPwQmR%QZuj=}@jArDgF6kjplXgAFjNiH8& z%wwZtx=*c+4xT^gcOhCM3h~AO;9pUtTwosF1-CdWS5d}Yl9wG%-hnby7!#;d&1x!q z#CtF1{1}dNL8%t)txD9dRsS-+^whp;SMBL0Hl`Jj`OGHmTFw zegLB5?pNh;xRp>?n)3kQ7R+vW+=UPt5t!M|20Uwt0OvqW@SgLO`s3YdX>t5BxYIoK zybn|zU^!|QpTwt;U5S;l>eI`_L71#lcb~oy>3Ev?i|)E*TKrSs}Y$*2f?;bY)DbHdTc2ulJS*RyWp+*)i;xBH<+B?zn>@nfhzxo zT4v^4XAF&F$GbBAe9~R$?wG2_!P;V37wDlQjOBV3x)r@oy783W71+$)=PMq^$e2yQ27De6TyQ zo-9Opm_dm?@)pe{cix=$d3w<$&jSwe&H`{1zLn^4meB?d4TGvbgphv@DgTql&}$w| z1N=EyPkt!rc1O3ZI>BA9FQIj|rX_C}x5=xCwTW}dZ(5lIA)u?EyPbUD&`HQEr_&-b zMk~0JH?_VMK>-xkW5F7Cv84C;@+Umto>a~ zL8oIuSIW9UvSW1>%8W8n1ucsPS7o;_$6`xd95{1$^h$l*rihM19^pi2O}`*%OK3uJ zwnVp@wXtB>CMrz-&^gIG^^t0K3{@C~&B^zN9l(Hn=~eo(7D!%dRA_ z;JHZ!_!7t;?}et#T;5$4!a|QlIhN2t6X&*Z$HO zHJ+o^#c$@UQ{hYv6&t3u%dQjq;?!+zfehJZP#ah(BB66&8!&ULR z#r?QjK=pjF2j-kv9J&I#<3O~Ms_)5iR2ZpnQ<10)kdkl@JwjgY%QE1|g`GAGK6Qq} zHIZ)?@v$iQ!7pwLkFU&CBxT%X=^e<)@4eE9g;qcoI)mQ4?yI3hOpgmWy&iL5uHg#?aobI6E^2A z3T%D%OYo@i1KU^!90q?E=ev3ZLwaS2u4Ekb{K|wNiKbEO&m~K~c{06i6n4eAym5<& zUSJ;&terAP93y*@1Sr><2KQ#{#iW?8UROR4_NBt)=_}%Mk=sEYxhsaGmewH{2G>JD z4+-X z8_149aEp2hV?RZ8u(rYuTNygRp5OCQfw}jx!_0w@uD+%BI7do*Dk^$;T4S)(me9&V zQmlEwT|IJDlz)J=-m&Hs)-rb#oei0uNy&?ls#OmpN#K0W*o=1fWQ8qcn8J-i= zfVm6>8OGz5<{*V)xFp&eQslgBI()q+^d0k@1MYQ+47@5vy-UBg#iQA$I;SpQC1erT zt$M@s##CpDM_D^@)`u7~#Py&=;JL>qk3IAK4ap}^5((n!JJN0+xkSEU2g_Ynf7itC zR8RJ!Act^lZnl63I6SG_nY`-#)*0aOJT|=B&NjL|2hRF*2YR_58} zI7W74OBXCi9y@+WYivZ|vBiODGW#@|Q+@~arqiB^Wp4ZNdDxRG!3aFs4q$rUfWIaj>v9t2BX`7{(U`dV_W!UdV7bR?Kx~hJ{ zGi(-OhII(X;iiWH@sM2-Tpf!T&TR+6M1oH08n`8$|FSb)(anaGSh2UCnUX=kZSC54 z!mdGquy4cE$Z>BWhFriZ3t5C>OE5$X)r7w4)ls)J86>09pP2-QUaftv`B+BqR*62@ zkHm)!U`RUE8?+AZ(Q8WU^*3~pM;+9z%|LJcqr--D!?s~f=UpD!))8!r}L z>4)j#4k2BH7%=D%nm0jlvQRo?Aycm?20~fHjHBaB5x0ciT7i66+XMgUfc@VG0c>m^ zSOsAc8+3$LIsy%{`KuXP+7G@x>e}P}+h5np8HMnEPEJ*pRe&jTx?1i%F!gf1K$~np zQViV=I|m)p`1jw&kB_Q-0zNbAOL}hD( z(D6C5>DtN55yW6l6-&0UGzx|=_6RWGtCOzO-E6k^61@NXttPKVjs=J1HTA19qh(Qn z1*79+6Kl%vcE zlD%al4!cXt;}GSV*&?-10TE^wlYDXYM#BAs~zIvm#oS|Z;Kzhc*2wI zUVrWf%5u#rz6!q2B3_~+QhLr_H`;tJd+r9S4>E*;$zz7oEat$ztkuI;V)spWNHj+r zDQ$Uqx+>fxQ7{epbR*kIcXN*ePIEexz#&USZFI#;uGO4Tf})=YcNx>ldBKqQ+-eQQ z)eU4n@2^Z&VgZ0-iH`GI(r1;c+IAzsa03pnNzVU^fK5{b0h9I#24e-hpT^85CjekF$dDWvhvd6VWnJ=1m`}8{xt$DgpUY zy^gRD3Y>b?O_?H<-0<8i!#d4uL2}5{#rM*a_@r|Of|h3txvJ1TECkak2%Fj20V}WogV~N9@pFUFZb*#>D@8NY?NIB1Tz4TuN9WsNr|+mu zzAC?BLla2-|JZxasHVDgZ5Rasr3uoj3W9)uAiYIYng~emM5PHa^b#N>2m;at1OyaB zq?btVy@?1&kzNyeO%OtW1mE>Mr|o^lK4X0EclQ4Ajqmxv2x)U=uC?Yp?{eMOC1bX@ z(7V6~XKbp^=rGc}k-K+tsuLzb@ya9dW1PnNC|kLgcAEQ5Vn&5{C;zpms}h zioZw!8^i4Bj}B?OGFyJ4K{N7x`usm$r`Om*C^w&EtH2XM4evmh$ibf ztPzhU2DWxA-?o0MWuPfGC;PS;X;#nAy^pV7Mex@I8RFB^q+izRbJI3`8pSApOia zHN~73TLj8#@+)2v%{u#8ceXkFZ|_WfS$0xW2N-3iYx(9ZLDjCHhN?hW?wIwPWyn9j zrHL=?Ju;1V>`eG@fd%jYU1pI!&;M=czplhzcXH03mf+vr;(< z1x`wPvxL62!hVw}M*nFg^ry=A|FQ*t+0y^n)|*7@6ON-vOV+J_TKp1=&05OMYt;yB z&Q!VQ9p^t80KR}t>gE?j4y70V-CV{0BXb4ZiT_D+1oS`sv40fL+V*?CZ%-{I_A$HF2HzUH@tG;-4 zJe!viO`SE{;&r;=v%Y<%IpCC3Qfy$%+w!Y6&|;FXg@1;PkAOpPVpVQerf!hlm1ly* zPTWlIGVrF!tjyp3VS%{5HP4Mb%=mh3Ye9>=qf`D*Q%7$eAx3fm5vTX==PNfrvR=DIpK1aA1CGCRVNASaWm zj3`}8yx*bfT|Sx?fLF6a^-NfmuaVQ*c~yEF7{9?Fwj0D&x3(5pg3`mGY6awpR3OxnC+L>YhUn5eyN&CAkbZkdh#MaN-udRV(ELu zXJKO#r+x*`7pQ>+WQ0jx$w--Vbo6_FepnfFey$lw{)<>F%5pV?UUETZeG7|3hdSq& zfoZ`q#dK}2_0SAKS;zxa5m9VWjNF`rf~(v4zeu#$aMaa)`b3uF-2)9xJzkr(fG9l8 z5Wxz9ySY`2iRI;?RB=lN&sKr060a>jS4q8Gi}-#-#RJo>I&D1TX_%n&Fw5# z)0)CZW1Mrbg%CtDOG8%jz6MT7UF5B|fK);V^(OUUp4n(?bxOw4jDFO`LYS+$K(t9k z6dGCCP~pEcFAI_&OEwW2TRuX)E5_V;(Y)j#b9-kYd73ojM-_=5%P}2q02X-@=HG?t z|M@go|Elone>3hWKmH-Xe-XtK&#H~#Q4~EK4U2sJO^Y!SPFgG2`hqZ7UZ@i4oK)q8 z>$HqiO~OBj;|zBPG}YtuI5bbo*co1!)gt;R;;D&-R~MtX+(;~bR;{d6#|T;CWvpA5 zim)=tanQWP_3oyvpOqig*~}}^buN{yLzZNNE_>!=c?p-d`QFvex_K?ysJdgmGQCVY zIpM(Af@48+Ix&otdPWV?>6*V(j|0aZOzy?ydfHW5c)esM3wPM)S6xKTqTZYdt>XhU zyHHHe1C)79s>^abC>XB_xs-&N+}+w1J?I#HT#k+C0!4r?9QaZ4i0aqX*Y$FxLFaGw z9oelaoP^qPU^6-_^w<-F=i zoZ6r^ccw0U0mr4Q2-=Z>`eXa`swc!zv}RwXV=JsO!Zql7oynfQ{i>(IAoDA&mD(sr zPsUl{#^9&1L^p8NTice5%sd*!x64b?H7&6-!wbKZ#U(<)%&Vh7=){lh#?{U=sv6L0 z-09%UI4Bc(^rJe~$uwSVR7{|5%)wFprRE;Z%^Rsy+%en}o0RcXy%dC(`CF>8INPM0 zNquPuDS`WAgl5OK7t?@Ad&hPorOw0%R7W%H?v_P4ih9lR6$pf*+mJm$*Zs)~$a%|GXrm99X~eqn%$ zQ_IbxkpI?f$)H0}_~e|)PsmytxMC4(J!NYnqQm9w&@L~3V!E(%VQGM?1IgyIL*9um zc6tiIgT)0-i(96JUIbZ079hxell3`Zvq%UOp#PaoDnu?f!cxy>TMyzmPYQlS;Q0%` z)i)QJZMkaZp7P!=lt2|M=xP2Y%jIulv6#Gm{(CPOy|!Sp$p3hei?S{)bTI;Mwnj$B zw6*16G4ssMPM*zhWw74r@)M!?K@G`t63g%+VKM8nG|8!FUUbAe@ZxGLvV#BZ<#mDq zr|8a&$pZx;l{+I1@=g)Lc2Cxfvb>weN}6T@;3;_)WzLFB54jt`rhDs&L_A0|lOrds zbU8M~aF*9l!ksNl6iS_u%Ly#MRv*0>6=n{3~8wK#B3PJn2*f@N{)~~ z8;DJ$-AGeEBqKicW}-6JgRr~X1g~BpnFGz&JE~GHykc(La1oqMc>SlR7SeqJyn1uN z%-{WKwfm?2%H8wYkH=JaV z!8r*w{?#U{|C8RyDOtX>Dp)D`8&TK&m=LqaeG1);0I ztj%_0FbqtaSxkpRG@ESuy1CA&568#15n6qbp2i5FUuBBNzLz*26iwR>8+$aDR!o&e zO;i%{e$H&4Z|D!LWwpoV*mwr>jg!pAr}>)`#rYQ2dXXyq=R0mrE@hE1xr^@6 zAg7G9kP&8&?-yF=NKXehMp!CzY}gu>%MZ?maJ5JdYCa@@I;T5fNSiMcOw?tuF}Q)1 zN7ly-#+4UT-xp^ATq#P|x=97jDm#@^a|NUJQ~wyil+{ee~+Z z_^9@n9ZW#$SiSD`?jUl;Xq1#>((2$ArYI4A*bKJ7IeeO1KQR_%*Ou3)d$-IDv?N7& z9kT2N45i}ymYlk>C_#HNNUANxm~l)oG!AX?srR&h^?^#*W9(WgHfgc-rLuBs<4>YT z@uZHNC4fI}Zm5?~2fPecgLNeMsBCYHoYUY9Z z7Phtvs@Shd2t&sT>AhBSb||uKr?vZ}$-P^YGf8&ABYB;V6}eml>p$zXj6ZwZXNv^C zU6s^fG!U!LS`7;4sMQn0t1leCbV1?)FZ+I(Vk6(*JgFNj2=hHj)d8L0qmRuP|C3eR zm?Gxe%}*hJcl!VKQv3`5zv%e(Tl?!CGQKz6>i?SB{{M&xA5=o~g%-dCd82=j6Fj~E zW<@GSKJ^A{uDUw*omKm4iSwlD`R4mx>X?Vj+#+{Dd% ze&Nnu>r^W~5<4HZz z?M2zBw8Wyf3g@}je^#&7MA_+epP!;R`tj^jAro{LUbX@imU zkVt|kPN}VhjWC1BVunl?O*>mw&SzMB_q_c^$5-Id1;b9^p{ocVTrxAJ$KUu zqol-#r`1rO#w%Z!Zm9a#ESJoGP}Teas$7d{l3U!1jzoi)=A(I(zBL$$ihiNI>x+FE z4|)i`Na*bhK<-=zX@;W3?sdQ&Wj*km(0S<3!U} z$K$6PITKL&Z)xxw!UMH?nyD+O<17OgB*(V0{7IFc8P2F!8 z-4Ol3G?$~t(5ot`B58iyd8Ti6tuU#3zfQM1x8LWd_z7<`PTvCSSdZZ9wI zD*q-a?b4cen6{GNm5w+v@)pQo!KW54me)Qm4@(kt8`n!(v<^0m9!G_&1Eq{7&;O%^ z{QnP+K_;gP@Vi)KNRu4yd~Y{r)Z|c!r5ewt3Z>(+gxL_v?kBfx0x+oY+CS7_Vr*Hl z>Uot*ZoIaod1=xKw$n|o_ixtSBd5Jy-ZvdXfBVwOM9-Mn=nB#7b*HjYUh3}K#03+< znU)rWW>RF|hKY$n#?cN^6l%AnPXV|60W_~UE4488anToA2Tlr0OYs_n%mR9ji=@K8DDP(lt(RLDub@%>+T1n$tmE74s zf(~JKdtdCJoATR{%tX2+hB!=5x@^h`GMpjJwVbvok~^|?pk0Wf_Pa4J^Ba{jmrvEG z?kire)`wqlI}Ci9BhHNWSuoP(DObd-2@94MZ=4~V7L05WgPdkv_Jmvy^l7OrI&jIK z1xR#+TL=u|zdx;cpto2*NOgatUg9!b4=b~yL!=E&NoW@tH}wFh~5{Y;2Zj)Fzs zt7o(Hnd@?6&bGKO(i5e}4){}_nw9WH07=9vASyv=j4AUKl;yZV?4Kq4Oh;hk&3DGT%1dfOSe8S-E*kI@1T7JbYO*UPtgg~D-~TrM zru%A)zrn5h=Sut5LzNFvFV|6@`e9*9*gYB%gZI|;&0BjAZ%Fp)vx=XFMMZh&9jI6h z$>7i}LRkl!vAEU)WwXNC7OOTc;j3V~Yu>8%hL3FMe;6w7oV$q0=2s~mb!;NNmqxwr z!#%`wA6Yhc9d+!B>c;iaR%n0NdDr>k^@nz^_w*6Da2j==r*#$HpB4++do$8S28RQn zs8p+WKl^gzzHdInSI(HMapjtma zI2*jm74|C5&)Ij*cN3g6?t8YxF5D+jA7nO1$kMWbJB{oipTASRRbAYhr|HGMk5yi{ z_H>_y@kh;U&7Ga}QBn>=hyLaH)_5WfT4+or$aWP}HTBj(3&RK%Z%oiqN>IBHKaYtz z_KZRoc9|4CF1}Y{{B~u?uOVr!81zdn&VqU@OiQ-jq}j|7Fm>?bjsGa({@o+M7&QYF z-soZcXm8G=C^yrNb}?6esfxznK{A6^wEib%FNbaFeHG1Juw804-Fc{*aP|_#Vm;&B zN>kNx0vP9Y4~y(wVA`5U4Td>&nFR!=KugT}6P;2n`krenqk0tF8>K1^w*Ydj(Jitt zJA)C|F@jyE*JO!dkyPH#WP$X%uPE8st?fS1UOHBc!h^<3^nbP#=SzStk_Kj2ih-B_o^{Ag8KSl9uGZaYNO;g`5;?r$=a^8vL4v$%;e zxC&ty!w_ys-}n(`g9(?o+;hF|4QlUv3~78*aWocHz^4sa_<}D=r`s)F1aUZ@i8PEF z01co%Q-Vf&7mhRXM_Tj=NbE#6n5hX&6#|!owi={GeQ~9Diom(uZQcS9{FC_|4XDs( z698JiW#wRx&cb4V>G<ln1O)<`QFi4^^QO_=gl~New-DuoG&F?Ga?)>di|3|(nWg_1>7Dhs5wmgkdA6s_LIx%P~6*mz9mnbEgHe%P>2`h~wWxEedZ+d?B<9_0l zcxP1RBy@4k=ppIDVSEH1Fj)AqCXTWm36ZT;Tzr4${P3BIYVz%{`Ns2_D{|d@5w%EK zWuHPA=kA8v+UV!~?*+LmLluc0#}lKr7fI1FAM85DZAEcwQ7@XV(dV734&TtxI&Iki zNnvEnFtQ15sIw`i_1cG=TywVbLR8tbi=015O+FaL^r&^B(iY9i93+tHq)^jVaS=1$B-^S9w+i&YpeB{{CaNp( z(F+VNlAX+`ehR5uPtGH!T!`p`bnSIoAhY}O@65vgOVs~A93$u=Ruk`ybLy!K3bON| zPx!PE%$0GPb@*KWE~SP(2COns{(ON8?wk#m98z8Z2tDQ4YT?3$O~ewfpsgg>Ht^&=U#o3UoN=YG18+c=aIGN#c{do>YF1zIgHuUK z^a6vQKj@^u_+aQ!QfLokduVD)t(hQ!W$S6Zg1BZaQ=0XZLbn&@?oLq zyxQWjhF)Foc>OP`9&WcO`(u0Mdw-$A&S)7zIrq9^5x+3Oi8H!&YQlrmQr(6_kvVwSH^UW`Z_RchtBg4K>T4FuHU6h7yLWrh9QTiOM7umpv55o$wkUQ@Kx}D?v^JU3MX--ZwG4$ z%_x8#D;eff%zsQEl>00}qTM+47t3$^F9LJBO;00`r!qNoPs1bqG|+?;`VmVUo`yvL ztc?zngaLES^FbaGECx&n9!*PB!;635j3l?-2~ z&xlKi0o$8|-lu_Rz8#t%^1Gvhf~^f4cLRf^>WN#cn}>uJY1ptTD^PyRs`8H3NPH^l z4~ev?b!~sz$FXC=%D4(J(wbn+ z7B!>KLAzSmM!hJ>D}kD~|2 z`eLi%EKynD6)+9#4!Sm;$d}`SxQxxqCuIR2oU;-6+3vm#^C6+Ke)}%1o25rxss%|Zu z2i3IPgoT>hJnzo`#@egrrjQkI==N@nZ?J`*paAIBi+1sf<6N_G-*sFn1x742!g6Tt z$bEX_Np%;Ne-rwHQ+Z|)++M1KiI2r#Z8MO(?*^EYr1!5S7;EI#KQ=3q9B)aeBSjw2 zm?a9gh^_YvSkUINe&w${nXWyh**v4d9s!VAW*5c5Qu$@p~$Wy>O|xvCL@j2>6~*#zN&a5^;Y zUtsUYBnAQa(340}C32va_!+p(|F5M0{u#2P{e8Kcp4a<$K7TJcN1@SmIpDH~{@K@` z$hB|CQ~bh`p=R0E?VfV=K&k6wMdWYDxXBa>K}**rkZWhiQy|+FOJ?>rpVq`{07)cO zz)M@G0dAUdfVF`hpgaNn0$y+;J_jP42tcAR3uqMFt2~pYMUfJK4)P&@lk;e&wIhBz z*6a+P|C_88dd6aR#>C@yhFk-fxrPWp`|{t7bH4TOj{~ZZ0Uz&Yosnt@Ch-I$x?uW;$FfcL*L2Y-c2 ze}zkbg-ie62$yIhG-Ia~n2Uw4hTK-;QDdHlCu&Q_-YT(~O?l=okf|;GjRHvey<-J3 zdoPd&ikM;`E%;y03dFDdCxXzV>u(g_&hbkDK!)H?{{YDLuXqhrhO`GH$lT%(qL5|- zB8p*yw$xj5{>>qEtL@>wj4v+-ArzB!q4$<5)5M;)_xsT6(}UOu{t0J}qG+=*#uKMg zT>=AUp-Vd(sLuk$g7{n*--9kw>;vCOyhn5SSO5U~%4!3o9#r`Nq(_&H&Qfjsp)*{i z(6Xewc)nH=1K+Esp9r0t?X>$rK3`at=h zj7<|q-?&6FkSS$43*;gUn!@bu-&~o!t&lxn`Bgl~02^U4jC2@^n*d|0fI{02O)QJ8 z^gi{IiZ91DUT5k-UWxEmW$@&`h0YP03aNL~$2Hla{cHP?N=QuDUnT@!(qL%Du@RYPrVj6~RY z6*3y2s~A^#HfmWNDbB*}8asTKf}}LDYKkh^oIcAIFD{+y4+>QHp7dyC*=y5$A5x4R z>XvxjLRSNkpn=7m>eRkiRq~&gUYq1LTKl6J-y88`9M5+F>6k?izm&eI6dQ1|dVb7BI{bh^$8Zsq6?{2S8ir zU3|5hm;p(<9`EI&Wc)J8gfeN2@yKjP2z!cuOK2@?9wPD^I-ju(C#QTH;G#~*$9>^u zy^7!|?mD9ea8*J*;ES*rbBLQ0#)boTA++L_Va%I=*xAdPR3l9;;J7S~{K%z@p6Sk> z#bV*+w;>FV5iW~WC`QOMZw{$E$K}ct*uM4yZA_y5q0&pL^!yuvacdiE+bFCX#;pU% zV*^wwFSHNCB^=zYHd?HHH==bvpDDkUek?e&WLkWBkLZAdqB@^a$o5GeJ+y}wu7vk! zp7y5iLy_pCZU$xxq$44sTQQbY$S$etx&10I#2u1`J&J15SrY9XQSUyGS~xu0-S+(c-BVkr zP_WvYk8$gawUskJ{P5yIfA@t4_cz~L z)#=~JMEh$yB}`UIs`M%UbV+--i+-xkZ2X53-~R}s{@=W3wn4S+a4I=ND4GN~(UMU! z2gOV~4)zMC56XEA@iGB7{gwnOC?l- zMRY>G)TejwF$BNUM?`Dfg^5U?Ec!l&?2V!YhbmLj?B#s8-wPj^@0KU8=l8Rfmsw^5aU&$>+HaIj#QOL@O@7!Qvz%+8|5#%;x!sv_ zw|ePxW$Zv{qeOf(Ifd%^tkay9jNZc|j+4++5h5F50qEo8Zn=hAX&-Kqw4+#fab@6L zp3N&VW~~1nSOVBsK8z!uXGPm8wGf=}u&Pt-wFbkT>PHTBG>0gL2|$6z0H+dq zbj60>LX*!Yyc|{7183kHQnKyf=^v86zp?3=88?1b#-;G}=^&)>=ht_6MhK z%jA_bn>=B0dwc#L0O&zV$D2*{n4pe}Zm$JbBjcdE4sl{^J>^6By|Oz6R@XwWY|i+e z$#k!S%jLSF^<&Dl3woJgmg7e|x(MqR5FaRkci97+S>7*Tc&l7e)96jxVu;devxr;F zZ!%VKY1FntlT~4J++2%xLz1(#oioSAj;^i`O=j<@1L2nzZm0*6{qdpT=m7*)V&|h^ zD(U1wH3|UH^&Fj^?dnJ_Cyk9l6qFiY1BUwUpOE9_)2&11Y0sd;lPI!cwEi*OT#(ss zGBuV6t4x94WN+psej*PT&AmDQ;4>rtJ^D|hx|+u>gb~%yBwcAYI&+-@Tdj+XT~h9f ziF#zb%jo7Oi0{A2xL*$uuLD#|3#Z64CF`H%RnCpZ>G}hoy?%C&9A4VzkM;zAT;zxh!ph^6-%him-NKd=mtg1jT_zvmqZ}XbpiF%O?L-}yFqf? zX6rY8lM$~hbT_aTiol9{8dM{5&M|c&z30u-o$tK+$up7MdsII}Uh2$VTW$(cd5+3H zQ$`H5$P;K(!g}g&appxAJ8h@O77B8()6KB+HFP7MNU3p$xO?oRgSI)){UjPSoNqpQ zM?wpGR+(?L(C6@_T07-AEg0Ui$H~Uz@>IAM7CVTQiZyS z?QSc}`6$a-c6vCibnaLK;0E=!cIJ> zxxx0Yhy1+UXRg)0=5{Dg)K(^=)CSm4_cHI0B9+xY5#)?<$Pi_4E^O?%mVHaj=sW3Q zk>wUy#v7>aCyIgubnIgE?*X(LS z%o|T7>s#qN8tOw{_z8~o6 z>p${E;8RWmLn>+4Yov*0(QmsSqaWK>=z^E?JrRni3a!ByHQ#v3FyZ1&d$--~-31E! z{R`kqzv>9P)lJc@R=|6uibn9jWc6RSa8Cd(E+@=os%F;4xs1K@t4+7bdlrh|E=kd` z82cFgkcEn&XjKV<=U%UzVs(5NQNl?gaXS3tlEHgB_s0)o#P8mCNBf@k{gS8Bqv{ANSYJdIp>LNyEqPG&~fOJB>LScA(XC7l$wlAIdl*pom zvoE(5@?{9&l4EP)zb}t2&o9}b1BPw*O`$T?$rbN6*3Yc0U(fV0kVXY%*AjZXzz#4f z{B@jDq%w;G2E`4_(8a2R7ewFqv`I^m$RCpp9pcPe3Zc|)UncJkT`io2%U>TTyD*NLZg`=6ptkc$!9l^DL5X|cWNr=PcYy=G;WZs)$g ztu5d%*Vo=JL>||aDJp>x+KxbHg=JF5qxIrZ=CH<2tDl06UlbVGpi#4TiUog@y?ryw zB!7Syn8uXvi?N*aV!iNCtZe0}@YY@snvT*&r|bGSPR1EtNs3?1ZLF>uVg2r!FQO*e z4|L_-CPJ3JHeEvxSan`@x$T16NM$%bH~j@BMD5NiOA(S^bMez-$m8d$Kx^;-R$|)@ z-O2-(1)|1ocDQ!FbGqyoM@XcEeqxHjeSriwKgV;mQe;$ofu%RQn_s~l)Pr`4&)PDT zDkr47N0fE)Tx?leYExFBe(q7@)AAm5b@OezL*MQ{SzL~BtkVa!zzQIKVS!y!6?mR` z{R=K4{8c3Pgs;Fk#)J@2_uZ1*uh!vT1w3>|Q=d*AGew;!ErPd)F#2(~H#rAlf3}1z z?TAKy&^t(erFy4Y5zs-by?T>h=#6M8q5SkJtafQ4)SeK%G~lO?%MUNjfOe0kFU2T_ z&6-%WKh~nX&(y5dqh%d8LBn_50BlCQN=hVxaj8oKyy0>_V-)CP-?5D@MYPQ;-d<0gKZg@fL+>aVWqqw{ta1Nhv7}QKx3o;h8LW17O`d%% zys-a^IYB(?)D6wHZGa+}wQbqXkCe`-Foq?zL zYs&@1V5S`57cxMaGFo>;x_ZvPV9w#m>%&ROqbxp24xl%hgF}I5n^l=I3Q)Y(-!?(- zQNg5s^&;qTtXY^?iAQ}+XM;+g!_4+>n>dqGY%bis>J?YL)_T6xF`gBU7;e%oAUr&o zpI__jnSw{Q^9EY)wb9F4`#UL6#%Ts#h|efM)yVKoF1=9pU($~-fZrRD@Nv6Bs%N)) zDKf2ZA1Rb9ICb&+%Xi}U_CG(F=x+gG1uL*LiZKv>k_ma z@Yj=~t-|62qmBSZHa;?$_+UR?zR{-p#a0V0iYwWTiPJ11_#*1Z+=*)au4M7MoY+gc zRvP?T>(d<@(WTWf7(K^H@khGLsb}j+TwcA8#-WH(qC7#r3~omXhl7?F7_{9WN|4G~ zeJ{_M>mlOE z9QaA!(>Lz&RJm4pN5HnA!g3(MS2r@$*4}c9h#9J6( zm(E7Jk}O#q$4aw&Ucc(8kS@Kxch1arG(>NgN_tN2<2L*^nR?J+32-}#a0UV1%Qar< z;U=S!jn}pq-I@eb?_QIo1-eOBnxr0ecr`YEaV-{co3H{WUxGYIf90}oUEMC3TV-%t z(_jAU^mjHgCjo{}?$2-eo2bgqo0)$y++Du#SV~)kjJNs-{2KIBpJ@i>XZ#a>1*5{> zeUcJ=MaM7Syw3T@)f>sajfq6}5;mc@>P0}QRWOyl^i&OYsbiB5V0?i1b5MU()$xBH zuU0FV5vuq7mdCspK^rI97Jx`Af^~LISn9S^bVF%3$sc|@Ct7)(L_Jghuo@mR?AYPBdQOgZILe%BEvp8gOLHc6 zqfZq(lcF-5Eb2WXND#CJ@491t|`6yH0J_ zP?sp#aNAQ4`&}<^(fxuP-8QQ#?Wb0?-(*V*nSx)&KMxc2F{Nzk{>%FZhacK94;DS& zR2H^BGk#Kz$#*%{NB6cPIf;BY93c>`#R@ro;O2sL$Z3dk6y?%hANhd< z1!3(mPCv}&gZP7=htyEJAGc&_8db&@Lw@8ikxL=HJu%}|()yEp-QX!%U~%9w2MKkZmdFKO%^MI;?I8VxPI)5f>jtNyrFjBr_ImjQKL9r zdkLu34zWSznMR3L7}S-G7OH5o$Kxp{FS`c0c6Uu-9hLT%>xC%n$-8e*0ah&HIm(N$ zatea2Es9q==feureH;o!Rgw?O#b`I*%_^*zpT9^o_9PuYbm6Q^Rd^iEpHFD)Z4ntE z((#rxZtoll(nv=kb{F^94X3D{_mRZ}!?M-pJIZkvSay(HE#xrFBIxziVYp?&fEyxK z?88dE*o6+^_V%ln`xEN*AH`{1ok&w#a=T)4FIBcdeR)`moIkfIri9@hwKb!59wnW# z<@4#5Y=~FTQ#+M`>UVR>SK9iX zP|4trwlSs7(2JhMAr zP2d?U{rY-<)Gj&ytSK~T?>E^6vhk`Nr{4KXP$^j1Wx!*c>2r9(tDW~%$!mx_s&L6| zQop;lg=>^}A4k=lZWcmcQiLC$*i~MoKWFk}h@IY3>SH<2F}kpQ{;RL*l~2vR7|k{i z2ay2>O$}Ez{4vB@@JUCh-_w!d7XI*piB{PziTP1Ykev1O z+l;s5j&xTd^O6)|4d(o^)#2!WiuU`lHoFZ zBz2ps<~GPDir8i!qCl~T8CMoNr6WvqtI}g9;*+{8eY3J5DPY(7`Ub%p75CVl)eF&D zd8~<0((6A|$!HGg?P4~Y;Nt+<^RW{}u_45JBQntvY%qHk3%6VJ@X}tFO0vOAOm}D5 z7c(^!PH+x>D6P_H_C_?33soX(H5ybW3MbH-}8r|j7jfXZon}3x7glzxY+4k z=O3HA993VOkyZ9pI#1n1)^1)ZDqDVRPqimFuYbKvdhba&;pFwcVlQWk<5eI?68gw8 z>|#rgL&VyrXO?F#m{0Y8(^aV|*OkIPwS@heH2VyvC6y~1;UMVuAUaiX^GO$8R$QpI9nY5Fxz7lj(L?e*3X_Kw30xEe+CH$_hoW z{s2L(z^_#Kr^G{{rBX$@-}*1Up0&Dnd^+=slh68eVhqU$H2X44Gjt%UQi-A<+I2=C z5ZlYHt{xfhwr~^Eetd&zXO>)e&?F@P{*O`P)3EryOY2ox)UaCHn#5oChb5}HV4k)* z5NAhq^0HO+s|Xn&Wvq>j=t!^KiO43ZVxu(kd(o}i_*N}48rq{fir?Ec&&52fV4ST9 zoXA1^Xsy<3#R{P*z*H?4%_lcF*0F= zH^BagsQ|VxB4m*P$Z1re!bx4vy)MewM!Ee<3A-CmGTqV*3or(se5ApxRzb&&VQQ{@HG!2j~FPNTPaK_)6vzij$Scww! zj&%RiNRqvO?=6F8=*pTb?w+T|I;_PJdC+2@UQXMzB!AL-KkZAX`6opqlox-tJh{8Z z1NqtdOrLhsRtlg%80wh5r6ZeDY;HAeCHm%LzckzPdb=O?G3hQD&F{>K2UWC_ z{FcjYZ*PB_D#4KQ2i7fm;A;gZ53cTc6OL~xcmCO+@<5|kt+MNe^&H~JmN3!Tiv1yX zL=)t^3}jntu23>*)()J$hi@3}LG)YH2GPiNG#9Dg&GSjz4n?8iRDNRzZ<-y+6{kDeIF1M-s=+qEz zmgrL*lddV@?M$SN z8&Bwe@+jITlC9>pm!9voy8?H^Io2)?NUcbJ&{3~Q+0@$2d661r{JKl?f|b|eTArej_oO*i zQS^Ym_w3>+dZyoZl&fc203oXN3YFvEn0L?2cS58)qJIDD-bf2K&MfS3;Q}oBF*ZN4 zl(XM>WaYV2*hw*}ZV{+Eb6-~DHhjxDYpQT^6ZHvL0t2=RggsJr!TPAxh9YmGhfl#g z)0Z6RTs5+(&2u*RV~9S#u;@0`;F#Ie!WE>Q#1$BS+e9m)vhW}2y>!{sqyRj<+`XJV zS(Z6-AsoEz<)A3l;@);F(BYKDu+W=%WejR(Ud^B1+;n`eD4I*T`SztP$Il4y3{~=vS}-&CT!($@6h*CwYJ5>1J&@BE*yAU0=)z3V4J^% zWs9n6b;8c6A$H zoz-(NPkEMU0rF^@zcZStc|MFP@OC+FAUw8svwT)3cX9}p61n>5N7o2-Qd0f5&?8)l4%P&@%tzR;Ky0t-kQv_ojjp81EITyj7(0jcFLyD^|ReA_?h3_g&p~JP|vP0Af z$rkfUf$guT5YO@lr6clzC?temuP(|gqSK>K=9rW?J6LFX;JI8Wt)8}x5-E2?G|<7Sc?nZ#h$%S99ntzz3@gy%)PQug~z?V zitsvRvnf?7QZ+)Du!j#GA&PyTnx2E*xBO}Njpw#yp6Q^rtbd+vBWa8UP&|d z{6*2HPsQ7;y7y-RqxANq2nxe@P40$RnLC1SH! zy^)kW4@Xa><)(c&SUYC@ecj*KFAH7R=Qo;qXY|;tl7=r`F)zAg-K(^$_Ni*tow7rn z*O`JM+FZfz7da@LrgKM{l+bkE52tz4dk+st{MF1~k#OtKdH1HE%S!aeD(K$<7aCqH++VX$7way^BO^VQeJDKWIa zxwuE-WhP3k)goJD?<~+dRr?Dy98VCO>n=@=SB4^Cji0KAmB%qcE{{swRoq3caW!6u zAGC@NjMj;Sild(kg+*y|6`E-ng_PvKQCkc(^KND{pAdrBFm(jov$xq!!AX}eUzWQZ z{6^~TP;*emsXtM%8e7}F-sF{CR1=9QHXgf{2s(81Ip;WYh7}ef(zlcX_b&{_ri)E| z>85&v@RCJB*$Lj@n9hCPmg~v(%pKB^1x=uOdiBHo6&k+80JB$324#?(juVX}AHU+n ze!SL_?|WvBCq`W1!xQ{*hqe;*uyBk?*1g(M@!YY}v=J-guxZ%zod`O1u9rsbUl$Ki zO+*l1Tpp>p$>1q=!7x;7T--;+f)(=a!H?tT@%+U?9J5zqyya!45Iwz?^`r_o5@>p} z>2Tq!u!3ClQT+HI5w`bH(?_i%M6Hd7idn?Zmxk{HTPCn?WVufGols^&&j)SXs7}5d zWL|K-K8nPQZQVhg-gN;pl{QJIq-0(Tf!^QlXn&Eza0}r$OBs9rJR2dhZ4)-&KeU5c zT)0HIgV`Bq4Z9XKuA%gx4MOP z5}*zkhL8msgv^$rwW3^f)7?yyWe>qlWnI=oPsJtQaO-`FcLUECOLKVQhvIDG&dPKuwTGTnK|dl!Z_bBsuaK zl7V=SAd`3B2Td1n*i&2(?NgUH_aG_w`{&yoFSL3V?+$vT3}~Z4mmz%ItSj638g5H=81-U*_TyO^?C-t0!wd$dx4Et~w-ejR1`*1-%qzI!gvlptC{V8egG z2JPfWtx5=n7IoTP>TxoeeL2TrLjANFZ~ty`1-AA}FtTTcdg@PO0sAjw@!S@gQ5idP zuE*UYy$3bHKoG>|=B~F;;LcFR|A)Qz3~K6q+eJf{BE7drR{;@eQUfYYq)6{k=^)Y} zNC_S30s_)eP(VsRdhZ}Ay-5)gx=2YtLLecY_1k;TdH?6ke&5;qoOjNgJ+nXL!^2Ei zYd!19U9ao9vr^}2mq~<^Nv?3&`T9+g`i51ZfSS)YR6OBkajLz*b2Rw|F z9Q$Vvn&+@7XTy-6A5n*u^dm8DYCziEDWb&wk6n^KFLsXIUhKI0vyRt=itBe`%R8LH zP?4w&7JZl&RC)E5jO4;1Dp)0kYg@nMVE5$(_&&51TDKGNXCfX<)o6I&Xu8k|bDoR3 z%|ragXqJRPzgh(U_y(m6AER3DZNm+S4M+wqXvK|B+vIPxwy@-y3wfJ-6+2W)*-%y7 z^uF1Z-RH1wCpJ(dun<#zf96&b6TQkrgZjzyp9L>|(91+8&$buGh8n)_za>}5f7~zB z8rPuh8i~Df;UobO$@%ItYrQ5QuB?g7$Ei%Nnw z`Y;|PmCSz!y%6_`_-!UYuflWA;GWiJUM)a0*-ve5D=YsV-~nG#*w)V+o$9^$JR|v` zqc!tzghn=XP18vCQvkNS53(fQTTG_L=#GIwH9gW2E(-S9FSf}umc*Z#UZ=AO`dU(F z*Lus>m-6QO%oT?8Qv@9>XTVp&UU2%wpB8v~i;*q~L_;un`jN{4? zrlM795wqtm+5_=6j0vh^rJU|m!gM7utuP}$tWv}IZ8zWA2>r^?%J zOtQd3jXQUNjwmZ}2Fw;t2MgaB;HT(pX|8W?_ZVfju`G8Gf3Icmi}khqaHl_EufUjV z8;nM%04DI>H~<@rFo9#(M)g?h9-_a;DGG^LSw78*Cua;Mw>VJP-@vOA^ykAlVKW

Y%qz4i5ze#MHO?_TG1 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 HetrC3%1>k5 literal 0 HcmV?d00001 diff --git a/lecture4/internal/api/handlers.go b/lecture4/internal/api/handlers.go new file mode 100644 index 00000000..e48e9ff7 --- /dev/null +++ b/lecture4/internal/api/handlers.go @@ -0,0 +1,593 @@ +package api + +import ( + "database/sql" + "net/http" + "strconv" + + "shop-api/internal/repository" + + "github.com/gin-gonic/gin" + "github.com/lib/pq" +) + +type Handler struct { + queries *repository.Queries + db *sql.DB +} + +func NewHandler(db *sql.DB) *Handler { + return &Handler{ + queries: repository.New(db), + db: db, + } +} + +// PostItem godoc +// @Summary Создать товар +// @Description Создает новый товар +// @Tags items +// @Accept json +// @Produce json +// @Param item body ItemRequest true "Данные товара" +// @Success 201 {object} ItemResponse +// @Failure 400 {object} ErrorResponse +// @Router /item [post] +func (h *Handler) PostItem(c *gin.Context) { + var req ItemRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, ErrorResponse{Message: err.Error()}) + return + } + + item, err := h.queries.CreateItem(c.Request.Context(), repository.CreateItemParams{ + Name: req.Name, + Price: req.Price, + }) + if err != nil { + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + c.Header("Location", "/item/"+strconv.Itoa(int(item.ID))) + c.JSON(http.StatusCreated, ItemResponse{ + ID: item.ID, + Name: item.Name, + Price: item.Price, + Deleted: item.Deleted, + }) +} + +// GetItemByID godoc +// @Summary Получить товар по ID +// @Description Получает товар по его ID +// @Tags items +// @Produce json +// @Param id path int true "ID товара" +// @Success 200 {object} ItemResponse +// @Failure 404 {object} ErrorResponse +// @Router /item/{id} [get] +func (h *Handler) GetItemByID(c *gin.Context) { + id, err := strconv.Atoi(c.Param("id")) + if err != nil { + c.JSON(http.StatusBadRequest, ErrorResponse{Message: "Invalid item ID"}) + return + } + + item, err := h.queries.GetItem(c.Request.Context(), int32(id)) + if err != nil { + if err == sql.ErrNoRows { + c.JSON(http.StatusNotFound, ErrorResponse{Message: "Item with id=" + c.Param("id") + " not found"}) + return + } + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + if item.Deleted { + c.JSON(http.StatusNotFound, ErrorResponse{Message: "Item with id=" + c.Param("id") + " not found"}) + return + } + + c.JSON(http.StatusOK, ItemResponse{ + ID: item.ID, + Name: item.Name, + Price: item.Price, + Deleted: item.Deleted, + }) +} + +// GetItems godoc +// @Summary Получить список товаров +// @Description Получает список товаров с фильтрацией и пагинацией +// @Tags items +// @Produce json +// @Param offset query int false "Смещение" default(0) +// @Param limit query int false "Лимит" default(10) +// @Param min_price query number false "Минимальная цена" +// @Param max_price query number false "Максимальная цена" +// @Param show_deleted query bool false "Показывать удаленные" default(false) +// @Success 200 {array} ItemResponse +// @Router /item [get] +func (h *Handler) GetItems(c *gin.Context) { + offset, _ := strconv.Atoi(c.DefaultQuery("offset", "0")) + limit, _ := strconv.Atoi(c.DefaultQuery("limit", "10")) + showDeleted := c.DefaultQuery("show_deleted", "false") == "true" + + var minPrice, maxPrice sql.NullString + if minPriceStr := c.Query("min_price"); minPriceStr != "" { + if _, err := strconv.ParseFloat(minPriceStr, 64); err == nil { + minPrice = sql.NullString{String: minPriceStr, Valid: true} + } + } + if maxPriceStr := c.Query("max_price"); maxPriceStr != "" { + if _, err := strconv.ParseFloat(maxPriceStr, 64); err == nil { + maxPrice = sql.NullString{String: maxPriceStr, Valid: true} + } + } + + items, err := h.queries.GetItems(c.Request.Context(), repository.GetItemsParams{ + Limit: int32(limit), + Offset: int32(offset), + ShowDeleted: showDeleted, + MinPrice: minPrice, + MaxPrice: maxPrice, + }) + if err != nil { + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + result := make([]ItemResponse, 0, len(items)) + for _, item := range items { + result = append(result, ItemResponse{ + ID: item.ID, + Name: item.Name, + Price: item.Price, + Deleted: item.Deleted, + }) + } + + c.JSON(http.StatusOK, result) +} + +// PutItem godoc +// @Summary Обновить товар +// @Description Полностью обновляет существующий товар +// @Tags items +// @Accept json +// @Produce json +// @Param id path int true "ID товара" +// @Param item body ItemRequest true "Данные товара" +// @Success 200 {object} ItemResponse +// @Failure 304 {object} ErrorResponse +// @Failure 400 {object} ErrorResponse +// @Router /item/{id} [put] +func (h *Handler) PutItem(c *gin.Context) { + id, err := strconv.Atoi(c.Param("id")) + if err != nil { + c.JSON(http.StatusBadRequest, ErrorResponse{Message: "Invalid item ID"}) + return + } + + var req ItemRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, ErrorResponse{Message: err.Error()}) + return + } + + // Проверяем, существует ли товар + existingItem, err := h.queries.GetItem(c.Request.Context(), int32(id)) + if err != nil { + if err == sql.ErrNoRows { + c.JSON(http.StatusNotModified, ErrorResponse{Message: "Item with id=" + c.Param("id") + " not found"}) + return + } + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + if existingItem.Deleted { + c.JSON(http.StatusNotModified, ErrorResponse{Message: "Item with id=" + c.Param("id") + " not found"}) + return + } + + item, err := h.queries.UpdateItem(c.Request.Context(), repository.UpdateItemParams{ + ID: int32(id), + Name: req.Name, + Price: req.Price, + }) + if err != nil { + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + c.JSON(http.StatusOK, ItemResponse{ + ID: item.ID, + Name: item.Name, + Price: item.Price, + Deleted: item.Deleted, + }) +} + +// PatchItem godoc +// @Summary Частично обновить товар +// @Description Частично обновляет существующий товар (кроме поля deleted) +// @Tags items +// @Accept json +// @Produce json +// @Param id path int true "ID товара" +// @Param item body PatchItemRequest true "Данные для обновления" +// @Success 200 {object} ItemResponse +// @Failure 304 {object} ErrorResponse +// @Failure 400 {object} ErrorResponse +// @Router /item/{id} [patch] +func (h *Handler) PatchItem(c *gin.Context) { + id, err := strconv.Atoi(c.Param("id")) + if err != nil { + c.JSON(http.StatusBadRequest, ErrorResponse{Message: "Invalid item ID"}) + return + } + + var req PatchItemRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, ErrorResponse{Message: err.Error()}) + return + } + + var item repository.Item + if req.Name != nil && req.Price != nil { + item, err = h.queries.PatchItemBoth(c.Request.Context(), repository.PatchItemBothParams{ + ID: int32(id), + Name: *req.Name, + Price: *req.Price, + }) + } else if req.Name != nil { + item, err = h.queries.PatchItemName(c.Request.Context(), repository.PatchItemNameParams{ + ID: int32(id), + Name: *req.Name, + }) + } else if req.Price != nil { + item, err = h.queries.PatchItemPrice(c.Request.Context(), repository.PatchItemPriceParams{ + ID: int32(id), + Price: *req.Price, + }) + } else { + // Нет полей для обновления - возвращаем текущий товар + existingItem, err := h.queries.GetItem(c.Request.Context(), int32(id)) + if err != nil { + if err == sql.ErrNoRows { + c.JSON(http.StatusNotModified, ErrorResponse{Message: "Item with id=" + c.Param("id") + " not found or is deleted"}) + return + } + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + if existingItem.Deleted { + c.JSON(http.StatusNotModified, ErrorResponse{Message: "Item with id=" + c.Param("id") + " not found or is deleted"}) + return + } + c.JSON(http.StatusOK, ItemResponse{ + ID: existingItem.ID, + Name: existingItem.Name, + Price: existingItem.Price, + Deleted: existingItem.Deleted, + }) + return + } + + if err != nil { + if err == sql.ErrNoRows { + c.JSON(http.StatusNotModified, ErrorResponse{Message: "Item with id=" + c.Param("id") + " not found or is deleted"}) + return + } + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + c.JSON(http.StatusOK, ItemResponse{ + ID: item.ID, + Name: item.Name, + Price: item.Price, + Deleted: item.Deleted, + }) +} + +// DeleteItem godoc +// @Summary Удалить товар +// @Description Помечает товар как удаленный +// @Tags items +// @Param id path int true "ID товара" +// @Success 200 +// @Router /item/{id} [delete] +func (h *Handler) DeleteItem(c *gin.Context) { + id, err := strconv.Atoi(c.Param("id")) + if err != nil { + c.JSON(http.StatusBadRequest, ErrorResponse{Message: "Invalid item ID"}) + return + } + + err = h.queries.DeleteItem(c.Request.Context(), int32(id)) + if err != nil { + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + c.Status(http.StatusOK) +} + +// PostCart godoc +// @Summary Создать корзину +// @Description Создает новую пустую корзину +// @Tags carts +// @Produce json +// @Success 201 {object} CartIdResponse +// @Router /cart [post] +func (h *Handler) PostCart(c *gin.Context) { + cart, err := h.queries.CreateCart(c.Request.Context()) + if err != nil { + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + c.Header("Location", "/cart/"+strconv.Itoa(int(cart.ID))) + c.JSON(http.StatusCreated, CartIdResponse{ID: cart.ID}) +} + +// GetCartByID godoc +// @Summary Получить корзину по ID +// @Description Получает корзину по её ID с расчетом общей стоимости +// @Tags carts +// @Produce json +// @Param id path int true "ID корзины" +// @Success 200 {object} CartResponse +// @Failure 404 {object} ErrorResponse +// @Router /cart/{id} [get] +func (h *Handler) GetCartByID(c *gin.Context) { + id, err := strconv.Atoi(c.Param("id")) + if err != nil { + c.JSON(http.StatusBadRequest, ErrorResponse{Message: "Invalid cart ID"}) + return + } + + cart, err := h.queries.GetCart(c.Request.Context(), int32(id)) + if err != nil { + if err == sql.ErrNoRows { + c.JSON(http.StatusNotFound, ErrorResponse{Message: "Cart with id=" + c.Param("id") + " not found"}) + return + } + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + cartItems, err := h.queries.GetCartItems(c.Request.Context(), cart.ID) + if err != nil { + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + totalPriceRaw, err := h.queries.GetCartTotalPrice(c.Request.Context(), cart.ID) + if err != nil { + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + totalPrice := float64(0) + if totalPriceRaw != nil { + totalPrice, _ = totalPriceRaw.(float64) + } + + items := make([]CartItemResponse, 0, len(cartItems)) + for _, ci := range cartItems { + items = append(items, CartItemResponse{ + ID: ci.ItemID, + Name: ci.Name, + Quantity: ci.Quantity, + Available: !ci.Deleted, + }) + } + + c.JSON(http.StatusOK, CartResponse{ + ID: cart.ID, + Items: items, + Price: totalPrice, + }) +} + +// GetCarts godoc +// @Summary Получить список корзин +// @Description Получает список корзин с фильтрацией и пагинацией +// @Tags carts +// @Produce json +// @Param offset query int false "Смещение" default(0) +// @Param limit query int false "Лимит" default(10) +// @Param min_price query number false "Минимальная цена" +// @Param max_price query number false "Максимальная цена" +// @Param min_quantity query int false "Минимальное количество товаров" +// @Param max_quantity query int false "Максимальное количество товаров" +// @Success 200 {array} CartResponse +// @Router /cart [get] +func (h *Handler) GetCarts(c *gin.Context) { + offset, _ := strconv.Atoi(c.DefaultQuery("offset", "0")) + limit, _ := strconv.Atoi(c.DefaultQuery("limit", "10")) + + var minPrice, maxPrice sql.NullString + var minQuantity, maxQuantity sql.NullInt32 + + if minPriceStr := c.Query("min_price"); minPriceStr != "" { + if _, err := strconv.ParseFloat(minPriceStr, 64); err == nil { + minPrice = sql.NullString{String: minPriceStr, Valid: true} + } + } + if maxPriceStr := c.Query("max_price"); maxPriceStr != "" { + if _, err := strconv.ParseFloat(maxPriceStr, 64); err == nil { + maxPrice = sql.NullString{String: maxPriceStr, Valid: true} + } + } + if minQtyStr := c.Query("min_quantity"); minQtyStr != "" { + if val, err := strconv.Atoi(minQtyStr); err == nil { + minQuantity = sql.NullInt32{Int32: int32(val), Valid: true} + } + } + if maxQtyStr := c.Query("max_quantity"); maxQtyStr != "" { + if val, err := strconv.Atoi(maxQtyStr); err == nil { + maxQuantity = sql.NullInt32{Int32: int32(val), Valid: true} + } + } + + carts, err := h.queries.GetAllCartsWithStats(c.Request.Context(), repository.GetAllCartsWithStatsParams{ + Limit: int32(limit), + Offset: int32(offset), + MinPrice: minPrice, + MaxPrice: maxPrice, + MinQuantity: minQuantity, + MaxQuantity: maxQuantity, + }) + if err != nil { + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + cartIDs := make([]int32, len(carts)) + for i, cart := range carts { + cartIDs[i] = cart.ID + } + + var allCartItems []repository.GetCartItemsForCartsRow + if len(cartIDs) > 0 { + allCartItems, err = h.queries.GetCartItemsForCarts(c.Request.Context(), cartIDs) + if err != nil { + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + } + + // Группируем товары по корзинам + cartItemsMap := make(map[int32][]repository.GetCartItemsForCartsRow) + for _, ci := range allCartItems { + cartItemsMap[ci.CartID] = append(cartItemsMap[ci.CartID], ci) + } + + result := make([]CartResponse, 0, len(carts)) + for _, cart := range carts { + items := make([]CartItemResponse, 0) + for _, ci := range cartItemsMap[cart.ID] { + items = append(items, CartItemResponse{ + ID: ci.ItemID, + Name: ci.Name, + Quantity: ci.Quantity, + Available: !ci.Deleted, + }) + } + + totalPrice := float64(0) + if cart.TotalPrice != nil { + totalPrice, _ = cart.TotalPrice.(float64) + } + + result = append(result, CartResponse{ + ID: cart.ID, + Items: items, + Price: totalPrice, + }) + } + + c.JSON(http.StatusOK, result) +} + +// AddItemToCart godoc +// @Summary Добавить товар в корзину +// @Description Добавляет товар в корзину или увеличивает его количество +// @Tags carts +// @Produce json +// @Param cart_id path int true "ID корзины" +// @Param item_id path int true "ID товара" +// @Success 200 {object} CartResponse +// @Failure 404 {object} ErrorResponse +// @Router /cart/{cart_id}/add/{item_id} [post] +func (h *Handler) AddItemToCart(c *gin.Context) { + cartID, err := strconv.Atoi(c.Param("cart_id")) + if err != nil { + c.JSON(http.StatusBadRequest, ErrorResponse{Message: "Invalid cart ID"}) + return + } + + itemID, err := strconv.Atoi(c.Param("item_id")) + if err != nil { + c.JSON(http.StatusBadRequest, ErrorResponse{Message: "Invalid item ID"}) + return + } + + // Проверяем существование корзины + _, err = h.queries.GetCart(c.Request.Context(), int32(cartID)) + if err != nil { + if err == sql.ErrNoRows { + c.JSON(http.StatusNotFound, ErrorResponse{Message: "Cart with id=" + c.Param("cart_id") + " or item with id=" + c.Param("item_id") + " not found"}) + return + } + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + // Проверяем существование товара + _, err = h.queries.GetItem(c.Request.Context(), int32(itemID)) + if err != nil { + if err == sql.ErrNoRows { + c.JSON(http.StatusNotFound, ErrorResponse{Message: "Cart with id=" + c.Param("cart_id") + " or item with id=" + c.Param("item_id") + " not found"}) + return + } + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + // Добавляем товар в корзину + _, err = h.queries.AddItemToCart(c.Request.Context(), repository.AddItemToCartParams{ + CartID: int32(cartID), + ItemID: int32(itemID), + }) + if err != nil { + // Проверяем ошибку foreign key constraint + if pqErr, ok := err.(*pq.Error); ok { + if pqErr.Code == "23503" { // foreign_key_violation + c.JSON(http.StatusNotFound, ErrorResponse{Message: "Cart with id=" + c.Param("cart_id") + " or item with id=" + c.Param("item_id") + " not found"}) + return + } + } + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + // Возвращаем обновленную корзину + cartItems, err := h.queries.GetCartItems(c.Request.Context(), int32(cartID)) + if err != nil { + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + totalPriceRaw, err := h.queries.GetCartTotalPrice(c.Request.Context(), int32(cartID)) + if err != nil { + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + + totalPrice := float64(0) + if totalPriceRaw != nil { + totalPrice, _ = totalPriceRaw.(float64) + } + + items := make([]CartItemResponse, 0, len(cartItems)) + for _, ci := range cartItems { + items = append(items, CartItemResponse{ + ID: ci.ItemID, + Name: ci.Name, + Quantity: ci.Quantity, + Available: !ci.Deleted, + }) + } + + c.JSON(http.StatusOK, CartResponse{ + ID: int32(cartID), + Items: items, + Price: totalPrice, + }) +} diff --git a/lecture4/internal/api/models.go b/lecture4/internal/api/models.go new file mode 100644 index 00000000..39f3c60a --- /dev/null +++ b/lecture4/internal/api/models.go @@ -0,0 +1,46 @@ +package api + +// ItemRequest представляет запрос на создание или обновление товара +type ItemRequest struct { + Name string `json:"name" binding:"required" example:"Молоко"` + Price float64 `json:"price" binding:"required,gte=0" example:"159.99"` +} + +// PatchItemRequest представляет запрос на частичное обновление товара +type PatchItemRequest struct { + Name *string `json:"name,omitempty" example:"Молоко обновленное"` + Price *float64 `json:"price,omitempty" example:"169.99"` +} + +// ItemResponse представляет ответ с информацией о товаре +type ItemResponse struct { + ID int32 `json:"id" example:"1"` + Name string `json:"name" example:"Молоко"` + Price float64 `json:"price" example:"159.99"` + Deleted bool `json:"deleted" example:"false"` +} + +// CartItemResponse представляет товар в корзине +type CartItemResponse struct { + ID int32 `json:"id" example:"1"` + Name string `json:"name" example:"Молоко"` + Quantity int32 `json:"quantity" example:"3"` + Available bool `json:"available" example:"true"` +} + +// CartResponse представляет ответ с информацией о корзине +type CartResponse struct { + ID int32 `json:"id" example:"1"` + Items []CartItemResponse `json:"items"` + Price float64 `json:"price" example:"234.40"` +} + +// CartIdResponse представляет ответ с ID корзины +type CartIdResponse struct { + ID int32 `json:"id" example:"1"` +} + +// ErrorResponse представляет ответ с ошибкой +type ErrorResponse struct { + Message string `json:"detail" example:"Item not found"` +} diff --git a/lecture4/internal/config/config.go b/lecture4/internal/config/config.go new file mode 100644 index 00000000..a5e212b7 --- /dev/null +++ b/lecture4/internal/config/config.go @@ -0,0 +1,27 @@ +package config + +import ( + "os" +) + +type Config struct { + DatabaseURL string + Port string +} + +func Load() *Config { + databaseURL := os.Getenv("DATABASE_URL") + if databaseURL == "" { + databaseURL = "postgres://postgres:postgres@localhost:5432/shop?sslmode=disable" + } + + port := os.Getenv("PORT") + if port == "" { + port = "8080" + } + + return &Config{ + DatabaseURL: databaseURL, + Port: port, + } +} diff --git a/lecture4/internal/repository/queries.sql b/lecture4/internal/repository/queries.sql new file mode 100644 index 00000000..7b62f0fa --- /dev/null +++ b/lecture4/internal/repository/queries.sql @@ -0,0 +1,111 @@ +-- Items queries + +-- name: CreateItem :one +INSERT INTO items (name, price, deleted) +VALUES ($1, $2, FALSE) +RETURNING *; + +-- name: GetItem :one +SELECT * FROM items WHERE id = $1; + +-- name: GetItems :many +SELECT * FROM items +WHERE + (sqlc.arg(show_deleted)::boolean = TRUE OR deleted = FALSE) + AND (sqlc.narg('min_price')::numeric IS NULL OR price >= sqlc.narg('min_price')) + AND (sqlc.narg('max_price')::numeric IS NULL OR price <= sqlc.narg('max_price')) +ORDER BY id +LIMIT $1 OFFSET $2; + +-- name: UpdateItem :one +UPDATE items +SET name = $2, price = $3 +WHERE id = $1 +RETURNING *; + +-- name: PatchItemName :one +UPDATE items +SET name = $2 +WHERE id = $1 AND deleted = FALSE +RETURNING *; + +-- name: PatchItemPrice :one +UPDATE items +SET price = $2 +WHERE id = $1 AND deleted = FALSE +RETURNING *; + +-- name: PatchItemBoth :one +UPDATE items +SET name = $2, price = $3 +WHERE id = $1 AND deleted = FALSE +RETURNING *; + +-- name: DeleteItem :exec +UPDATE items +SET deleted = TRUE +WHERE id = $1; + +-- Carts queries + +-- name: CreateCart :one +INSERT INTO carts DEFAULT VALUES +RETURNING *; + +-- name: GetCart :one +SELECT * FROM carts WHERE id = $1; + +-- name: GetCarts :many +SELECT * FROM carts +ORDER BY id +LIMIT $1 OFFSET $2; + +-- name: GetCartItems :many +SELECT ci.cart_id, ci.item_id, ci.quantity, i.name, i.price, i.deleted +FROM cart_items ci +JOIN items i ON ci.item_id = i.id +WHERE ci.cart_id = $1 +ORDER BY ci.item_id; + +-- name: GetCartItemsForCarts :many +SELECT ci.cart_id, ci.item_id, ci.quantity, i.name, i.price, i.deleted +FROM cart_items ci +JOIN items i ON ci.item_id = i.id +WHERE ci.cart_id = ANY($1::int[]) +ORDER BY ci.cart_id, ci.item_id; + +-- name: AddItemToCart :one +INSERT INTO cart_items (cart_id, item_id, quantity) +VALUES ($1, $2, 1) +ON CONFLICT (cart_id, item_id) +DO UPDATE SET quantity = cart_items.quantity + 1 +RETURNING *; + +-- name: GetCartTotalPrice :one +SELECT COALESCE(SUM(ci.quantity * i.price), 0) as total +FROM cart_items ci +JOIN items i ON ci.item_id = i.id +WHERE ci.cart_id = $1 AND i.deleted = FALSE; + +-- name: GetCartTotalQuantity :one +SELECT COALESCE(SUM(ci.quantity), 0) as total +FROM cart_items ci +WHERE ci.cart_id = $1; + +-- name: GetAllCartsWithStats :many +SELECT + c.id, + COALESCE(SUM(ci.quantity), 0) as total_quantity, + COALESCE(SUM(CASE WHEN i.deleted = FALSE THEN ci.quantity * i.price ELSE 0 END), 0) as total_price +FROM carts c +LEFT JOIN cart_items ci ON c.id = ci.cart_id +LEFT JOIN items i ON ci.item_id = i.id +GROUP BY c.id +HAVING + (sqlc.narg('min_price')::numeric IS NULL OR COALESCE(SUM(CASE WHEN i.deleted = FALSE THEN ci.quantity * i.price ELSE 0 END), 0) >= sqlc.narg('min_price')) + AND (sqlc.narg('max_price')::numeric IS NULL OR COALESCE(SUM(CASE WHEN i.deleted = FALSE THEN ci.quantity * i.price ELSE 0 END), 0) <= sqlc.narg('max_price')) + AND (sqlc.narg('min_quantity')::int IS NULL OR COALESCE(SUM(ci.quantity), 0) >= sqlc.narg('min_quantity')) + AND (sqlc.narg('max_quantity')::int IS NULL OR COALESCE(SUM(ci.quantity), 0) <= sqlc.narg('max_quantity')) +ORDER BY c.id +LIMIT $1 OFFSET $2; + diff --git a/lecture4/migrations/Dockerfile b/lecture4/migrations/Dockerfile new file mode 100644 index 00000000..a0623feb --- /dev/null +++ b/lecture4/migrations/Dockerfile @@ -0,0 +1,6 @@ +FROM postgres:15-alpine + +COPY shop_init.sql /docker-entrypoint-initdb.d/init.sql + +EXPOSE 5432 + diff --git a/lecture4/migrations/shop_init.sql b/lecture4/migrations/shop_init.sql new file mode 100644 index 00000000..77be4e62 --- /dev/null +++ b/lecture4/migrations/shop_init.sql @@ -0,0 +1,42 @@ +-- Создание схемы базы данных для Shop API +DROP TABLE IF EXISTS cart_items CASCADE; +DROP TABLE IF EXISTS carts CASCADE; +DROP TABLE IF EXISTS items CASCADE; + +-- Таблица товаров +CREATE TABLE items ( + id SERIAL PRIMARY KEY, + name VARCHAR(255) NOT NULL, + price NUMERIC(10, 2) NOT NULL CHECK (price >= 0), + deleted BOOLEAN NOT NULL DEFAULT FALSE, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- Таблица корзин +CREATE TABLE carts ( + id SERIAL PRIMARY KEY, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- Таблица связи корзин и товаров +CREATE TABLE cart_items ( + cart_id INTEGER NOT NULL REFERENCES carts(id) ON DELETE CASCADE, + item_id INTEGER NOT NULL REFERENCES items(id) ON DELETE CASCADE, + quantity INTEGER NOT NULL CHECK (quantity > 0), + PRIMARY KEY (cart_id, item_id) +); + +-- Индексы для оптимизации запросов +CREATE INDEX idx_items_deleted ON items(deleted); +CREATE INDEX idx_items_price ON items(price); +CREATE INDEX idx_cart_items_cart_id ON cart_items(cart_id); +CREATE INDEX idx_cart_items_item_id ON cart_items(item_id); + +-- Вставка тестовых данных для проверки +INSERT INTO items (name, price, deleted) VALUES + ('Туалетная бумага "Поцелуй", рулон', 50.00, FALSE), + ('Золотая цепочка "Abendsonne"', 15000.00, FALSE), + ('Молоко "Буреночка" 1л.', 159.99, FALSE), + ('Хлеб белый', 45.50, FALSE), + ('Удаленный товар', 100.00, TRUE); + diff --git a/lecture4/settings/grafana/provisioning/dashboards/shop-api.json b/lecture4/settings/grafana/provisioning/dashboards/shop-api.json new file mode 100644 index 00000000..a7b09c5a --- /dev/null +++ b/lecture4/settings/grafana/provisioning/dashboards/shop-api.json @@ -0,0 +1,419 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "tooltip": false, + "viz": false, + "legend": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "rate(promhttp_metric_handler_requests_total[1m])", + "refId": "A" + } + ], + "title": "HTTP Requests Rate", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 50 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "orientation": "auto", + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ], + "fields": "" + }, + "showThresholdLabels": false, + "showThresholdMarkers": true + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "rate(process_cpu_seconds_total[1m]) * 100", + "refId": "A" + } + ], + "title": "CPU Usage", + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "tooltip": false, + "viz": false, + "legend": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 8 + }, + "id": 3, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "process_resident_memory_bytes", + "refId": "A" + } + ], + "title": "Memory Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "tooltip": false, + "viz": false, + "legend": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 8 + }, + "id": 4, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "go_goroutines", + "refId": "A" + } + ], + "title": "Goroutines", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 5, + "options": { + "displayMode": "gradient", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "values": false, + "calcs": [ + "lastNotNull" + ], + "fields": "" + }, + "showUnfilled": true + }, + "pluginVersion": "10.0.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum by (code) (promhttp_metric_handler_requests_total)", + "refId": "A" + } + ], + "title": "HTTP Status Codes", + "type": "bargauge" + } + ], + "refresh": "5s", + "schemaVersion": 38, + "style": "dark", + "tags": [ + "shop-api", + "golang" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-15m", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Shop API Monitoring", + "uid": "shop-api-dashboard", + "version": 1, + "weekStart": "" +} diff --git a/lecture4/settings/prometheus/Dockerfile b/lecture4/settings/prometheus/Dockerfile new file mode 100644 index 00000000..a1e0c986 --- /dev/null +++ b/lecture4/settings/prometheus/Dockerfile @@ -0,0 +1,11 @@ +FROM prom/prometheus:latest + +COPY prometheus.yml /etc/prometheus/prometheus.yml + +EXPOSE 9090 + +CMD ["--config.file=/etc/prometheus/prometheus.yml", \ + "--storage.tsdb.path=/prometheus", \ + "--web.console.libraries=/usr/share/prometheus/console_libraries", \ + "--web.console.templates=/usr/share/prometheus/consoles"] + diff --git a/lecture4/settings/prometheus/prometheus.yml b/lecture4/settings/prometheus/prometheus.yml new file mode 100644 index 00000000..bcde8d83 --- /dev/null +++ b/lecture4/settings/prometheus/prometheus.yml @@ -0,0 +1,11 @@ +global: + scrape_interval: 10s + evaluation_interval: 10s + +scrape_configs: + - job_name: shop-api + metrics_path: /metrics + static_configs: + - targets: + - app:8080 + diff --git a/lecture4/sqlc.yaml b/lecture4/sqlc.yaml new file mode 100644 index 00000000..26a3db18 --- /dev/null +++ b/lecture4/sqlc.yaml @@ -0,0 +1,16 @@ +version: "2" +sql: + - engine: "postgresql" + queries: "internal/repository/queries.sql" + schema: "migrations/shop_init.sql" + gen: + go: + package: "repository" + out: "internal/repository" + emit_json_tags: true + emit_interface: false + emit_exact_table_names: false + overrides: + - column: "items.price" + go_type: "float64" + From 51a7aaf7670a7fe2986d14cd20931df0185c54da Mon Sep 17 00:00:00 2001 From: D K Date: Mon, 13 Oct 2025 01:39:43 +0300 Subject: [PATCH 5/7] refactor hw4 --- lecture4/.gitignore | 5 + lecture4/cmd/app/main.go | 6 +- lecture4/ddoser.py | 157 +++++++++++++++++++++++ lecture4/docker-compose.shop.yml | 11 +- lecture4/go.mod | 4 +- lecture4/graphana_ddos.jpg | Bin 0 -> 288963 bytes lecture4/internal/api/handlers.go | 201 ++++++++++++++---------------- lecture4/requirements.txt | 2 + 8 files changed, 274 insertions(+), 112 deletions(-) create mode 100644 lecture4/.gitignore create mode 100644 lecture4/ddoser.py create mode 100644 lecture4/graphana_ddos.jpg create mode 100644 lecture4/requirements.txt diff --git a/lecture4/.gitignore b/lecture4/.gitignore new file mode 100644 index 00000000..79f7a6f7 --- /dev/null +++ b/lecture4/.gitignore @@ -0,0 +1,5 @@ +vendor +docs +internal/repository/db.go +internal/repository/models.go +internal/repository/queries.sql.go diff --git a/lecture4/cmd/app/main.go b/lecture4/cmd/app/main.go index 3334ea29..86153e06 100644 --- a/lecture4/cmd/app/main.go +++ b/lecture4/cmd/app/main.go @@ -10,10 +10,10 @@ import ( "github.com/prometheus/client_golang/prometheus/promhttp" swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" - "shop-api/internal/api" - "shop-api/internal/config" + "lecture4/internal/api" + "lecture4/internal/config" - _ "shop-api/docs" + _ "lecture4/docs" ) // @title Shop API diff --git a/lecture4/ddoser.py b/lecture4/ddoser.py new file mode 100644 index 00000000..b238885e --- /dev/null +++ b/lecture4/ddoser.py @@ -0,0 +1,157 @@ +from concurrent.futures import ThreadPoolExecutor, as_completed + +import requests +from faker import Faker + +faker = Faker() + + +def create_items(): + """Создает товары в магазине""" + for _ in range(500): + product_name = faker.word().capitalize() + " " + faker.word() + price = round(faker.random.uniform(10.0, 9999.99), 2) + + response = requests.post( + "http://localhost:8080/item", + json={ + "name": product_name, + "price": price, + }, + ) + print(f"Create item: {response.status_code}") + + +def get_items(): + """Получает список товаров""" + for _ in range(500): + offset = faker.random_int(0, 50) + limit = faker.random_int(5, 50) + + response = requests.get( + "http://localhost:8080/item", + params={ + "offset": offset, + "limit": limit, + }, + ) + print(f"Get items: {response.status_code}") + + +def get_item_by_id(): + """Получает товар по ID""" + for _ in range(500): + item_id = faker.random_int(1, 100) + + response = requests.get( + f"http://localhost:8080/item/{item_id}", + ) + print(f"Get item {item_id}: {response.status_code}") + + +def update_items(): + """Обновляет товары""" + for _ in range(300): + item_id = faker.random_int(1, 50) + product_name = faker.word().capitalize() + " Updated" + price = round(faker.random.uniform(10.0, 9999.99), 2) + + response = requests.put( + f"http://localhost:8080/item/{item_id}", + json={ + "name": product_name, + "price": price, + }, + ) + print(f"Update item {item_id}: {response.status_code}") + + +def create_carts(): + """Создает корзины""" + for _ in range(300): + response = requests.post( + "http://localhost:8080/cart", + ) + print(f"Create cart: {response.status_code}") + + +def get_carts(): + """Получает список корзин""" + for _ in range(300): + offset = faker.random_int(0, 50) + limit = faker.random_int(5, 30) + + response = requests.get( + "http://localhost:8080/cart", + params={ + "offset": offset, + "limit": limit, + }, + ) + print(f"Get carts: {response.status_code}") + + +def add_items_to_cart(): + """Добавляет товары в корзины""" + for _ in range(400): + cart_id = faker.random_int(1, 100) + item_id = faker.random_int(1, 100) + + response = requests.post( + f"http://localhost:8080/cart/{cart_id}/add/{item_id}", + ) + print(f"Add item {item_id} to cart {cart_id}: {response.status_code}") + + +def get_cart_by_id(): + """Получает корзину по ID""" + for _ in range(400): + cart_id = faker.random_int(1, 100) + + response = requests.get( + f"http://localhost:8080/cart/{cart_id}", + ) + print(f"Get cart {cart_id}: {response.status_code}") + + +if __name__ == "__main__": + with ThreadPoolExecutor(max_workers=20) as executor: + futures = {} + + # Создание товаров + for i in range(10): + futures[executor.submit(create_items)] = f"create-items-{i}" + + # Получение списков товаров + for i in range(10): + futures[executor.submit(get_items)] = f"get-items-{i}" + + # Получение товаров по ID + for i in range(10): + futures[executor.submit(get_item_by_id)] = f"get-item-by-id-{i}" + + # Обновление товаров + for i in range(5): + futures[executor.submit(update_items)] = f"update-items-{i}" + + # Создание корзин + for i in range(8): + futures[executor.submit(create_carts)] = f"create-carts-{i}" + + # Получение списков корзин + for i in range(8): + futures[executor.submit(get_carts)] = f"get-carts-{i}" + + # Добавление товаров в корзины + for i in range(12): + futures[executor.submit(add_items_to_cart)] = f"add-items-to-cart-{i}" + + # Получение корзин по ID + for i in range(12): + futures[executor.submit(get_cart_by_id)] = f"get-cart-by-id-{i}" + + for future in as_completed(futures): + print(f"✓ Completed {futures[future]}") + + print("\n🎯 DDoS test completed!") + diff --git a/lecture4/docker-compose.shop.yml b/lecture4/docker-compose.shop.yml index 38391591..efa57a00 100644 --- a/lecture4/docker-compose.shop.yml +++ b/lecture4/docker-compose.shop.yml @@ -33,9 +33,11 @@ services: restart: always prometheus: - image: prom/prometheus:latest + build: + context: ./settings/prometheus + dockerfile: Dockerfile volumes: - - ./settings/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml + - prometheus_data:/prometheus ports: - "9090:9090" restart: always @@ -47,8 +49,13 @@ services: environment: GF_SECURITY_ADMIN_USER: admin GF_SECURITY_ADMIN_PASSWORD: admin + volumes: + - grafana_data:/var/lib/grafana + - ./settings/grafana/provisioning:/etc/grafana/provisioning:ro restart: always volumes: postgres_data: + prometheus_data: + grafana_data: diff --git a/lecture4/go.mod b/lecture4/go.mod index 7a9309fe..be32c00a 100644 --- a/lecture4/go.mod +++ b/lecture4/go.mod @@ -1,4 +1,4 @@ -module shop-api +module lecture4 go 1.24 @@ -8,6 +8,7 @@ require ( github.com/prometheus/client_golang v1.20.5 github.com/swaggo/files v1.0.1 github.com/swaggo/gin-swagger v1.6.0 + github.com/swaggo/swag v1.16.4 ) require ( @@ -44,7 +45,6 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.55.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/swaggo/swag v1.16.4 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.12 // indirect golang.org/x/arch v0.8.0 // indirect diff --git a/lecture4/graphana_ddos.jpg b/lecture4/graphana_ddos.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6bfd8d775a2d58535bbe0f294fd8b49b32518145 GIT binary patch literal 288963 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�%=y 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⪻@+7Zq#w+i0Js6Rr84tU~+vbLf-1kRzbuBxx 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 Date: Mon, 13 Oct 2025 09:48:37 +0300 Subject: [PATCH 6/7] added autoconversion --- lecture4/internal/api/handlers.go | 28 ++---------------------- lecture4/internal/repository/queries.sql | 8 +++---- lecture4/sqlc.yaml | 4 ++++ 3 files changed, 10 insertions(+), 30 deletions(-) diff --git a/lecture4/internal/api/handlers.go b/lecture4/internal/api/handlers.go index f5793dc1..74cae09e 100644 --- a/lecture4/internal/api/handlers.go +++ b/lecture4/internal/api/handlers.go @@ -24,28 +24,6 @@ func NewHandler(db *sql.DB) *Handler { } } -// convertToFloat64 преобразует interface{} из базы данных в float64 -func convertToFloat64(value interface{}) float64 { - if value == nil { - return 0 - } - - switch v := value.(type) { - case float64: - return v - case string: - result, _ := strconv.ParseFloat(v, 64) - return result - case []byte: - result, _ := strconv.ParseFloat(string(v), 64) - return result - case int64: - return float64(v) - default: - return 0 - } -} - // itemToResponse преобразует модель Item в ItemResponse func itemToResponse(item repository.Item) ItemResponse { return ItemResponse{ @@ -91,12 +69,11 @@ func (h *Handler) buildCartResponse(ctx context.Context, cartID int32) (CartResp return CartResponse{}, err } - totalPriceRaw, err := h.queries.GetCartTotalPrice(ctx, cartID) + totalPrice, err := h.queries.GetCartTotalPrice(ctx, cartID) if err != nil { return CartResponse{}, err } - totalPrice := convertToFloat64(totalPriceRaw) items := cartItemsToResponse(cartItems) return CartResponse{ @@ -499,12 +476,11 @@ func (h *Handler) GetCarts(c *gin.Context) { result := make([]CartResponse, 0, len(carts)) for _, cart := range carts { items := cartItemsForCartsToResponse(cartItemsMap[cart.ID]) - totalPrice := convertToFloat64(cart.TotalPrice) result = append(result, CartResponse{ ID: cart.ID, Items: items, - Price: totalPrice, + Price: cart.TotalPrice, }) } diff --git a/lecture4/internal/repository/queries.sql b/lecture4/internal/repository/queries.sql index 7b62f0fa..d36b4f67 100644 --- a/lecture4/internal/repository/queries.sql +++ b/lecture4/internal/repository/queries.sql @@ -82,21 +82,21 @@ DO UPDATE SET quantity = cart_items.quantity + 1 RETURNING *; -- name: GetCartTotalPrice :one -SELECT COALESCE(SUM(ci.quantity * i.price), 0) as total +SELECT COALESCE(SUM(ci.quantity * i.price), 0)::numeric as total FROM cart_items ci JOIN items i ON ci.item_id = i.id WHERE ci.cart_id = $1 AND i.deleted = FALSE; -- name: GetCartTotalQuantity :one -SELECT COALESCE(SUM(ci.quantity), 0) as total +SELECT COALESCE(SUM(ci.quantity), 0)::bigint as total FROM cart_items ci WHERE ci.cart_id = $1; -- name: GetAllCartsWithStats :many SELECT c.id, - COALESCE(SUM(ci.quantity), 0) as total_quantity, - COALESCE(SUM(CASE WHEN i.deleted = FALSE THEN ci.quantity * i.price ELSE 0 END), 0) as total_price + COALESCE(SUM(ci.quantity), 0)::bigint as total_quantity, + COALESCE(SUM(CASE WHEN i.deleted = FALSE THEN ci.quantity * i.price ELSE 0 END), 0)::numeric as total_price FROM carts c LEFT JOIN cart_items ci ON c.id = ci.cart_id LEFT JOIN items i ON ci.item_id = i.id diff --git a/lecture4/sqlc.yaml b/lecture4/sqlc.yaml index 26a3db18..50707c4f 100644 --- a/lecture4/sqlc.yaml +++ b/lecture4/sqlc.yaml @@ -13,4 +13,8 @@ sql: overrides: - column: "items.price" go_type: "float64" + - db_type: "pg_catalog.numeric" + go_type: "float64" + - db_type: "pg_catalog.int8" + go_type: "int64" From adad4d3afef2d0ac77751990552d9292a1c386ec Mon Sep 17 00:00:00 2001 From: D K Date: Mon, 13 Oct 2025 13:02:13 +0300 Subject: [PATCH 7/7] added conversion to queries.sql --- lecture4/internal/api/handlers.go | 88 ++++++++++++++---------- lecture4/internal/repository/queries.sql | 52 +++++++------- lecture4/sqlc.yaml | 8 --- 3 files changed, 77 insertions(+), 71 deletions(-) diff --git a/lecture4/internal/api/handlers.go b/lecture4/internal/api/handlers.go index 74cae09e..c499e2a1 100644 --- a/lecture4/internal/api/handlers.go +++ b/lecture4/internal/api/handlers.go @@ -24,13 +24,13 @@ func NewHandler(db *sql.DB) *Handler { } } -// itemToResponse преобразует модель Item в ItemResponse -func itemToResponse(item repository.Item) ItemResponse { +// Обобщенная функция для конверсии любого типа Row с полями ID, Name, Price, Deleted в ItemResponse +func rowToItemResponse(id int32, name string, price float64, deleted bool) ItemResponse { return ItemResponse{ - ID: item.ID, - Name: item.Name, - Price: item.Price, - Deleted: item.Deleted, + ID: id, + Name: name, + Price: price, + Deleted: deleted, } } @@ -110,7 +110,7 @@ func (h *Handler) PostItem(c *gin.Context) { } c.Header("Location", "/item/"+strconv.Itoa(int(item.ID))) - c.JSON(http.StatusCreated, itemToResponse(item)) + c.JSON(http.StatusCreated, rowToItemResponse(item.ID, item.Name, item.Price, item.Deleted)) } // GetItemByID godoc @@ -144,7 +144,7 @@ func (h *Handler) GetItemByID(c *gin.Context) { return } - c.JSON(http.StatusOK, itemToResponse(item)) + c.JSON(http.StatusOK, rowToItemResponse(item.ID, item.Name, item.Price, item.Deleted)) } // GetItems godoc @@ -164,15 +164,15 @@ func (h *Handler) GetItems(c *gin.Context) { limit, _ := strconv.Atoi(c.DefaultQuery("limit", "10")) showDeleted := c.DefaultQuery("show_deleted", "false") == "true" - var minPrice, maxPrice sql.NullString + var minPrice, maxPrice sql.NullFloat64 if minPriceStr := c.Query("min_price"); minPriceStr != "" { - if _, err := strconv.ParseFloat(minPriceStr, 64); err == nil { - minPrice = sql.NullString{String: minPriceStr, Valid: true} + if val, err := strconv.ParseFloat(minPriceStr, 64); err == nil { + minPrice = sql.NullFloat64{Float64: val, Valid: true} } } if maxPriceStr := c.Query("max_price"); maxPriceStr != "" { - if _, err := strconv.ParseFloat(maxPriceStr, 64); err == nil { - maxPrice = sql.NullString{String: maxPriceStr, Valid: true} + if val, err := strconv.ParseFloat(maxPriceStr, 64); err == nil { + maxPrice = sql.NullFloat64{Float64: val, Valid: true} } } @@ -190,7 +190,7 @@ func (h *Handler) GetItems(c *gin.Context) { result := make([]ItemResponse, 0, len(items)) for _, item := range items { - result = append(result, itemToResponse(item)) + result = append(result, rowToItemResponse(item.ID, item.Name, item.Price, item.Deleted)) } c.JSON(http.StatusOK, result) @@ -247,7 +247,7 @@ func (h *Handler) PutItem(c *gin.Context) { return } - c.JSON(http.StatusOK, itemToResponse(item)) + c.JSON(http.StatusOK, rowToItemResponse(item.ID, item.Name, item.Price, item.Deleted)) } // PatchItem godoc @@ -275,23 +275,49 @@ func (h *Handler) PatchItem(c *gin.Context) { return } - var item repository.Item if req.Name != nil && req.Price != nil { - item, err = h.queries.PatchItemBoth(c.Request.Context(), repository.PatchItemBothParams{ + item, err := h.queries.PatchItemBoth(c.Request.Context(), repository.PatchItemBothParams{ ID: int32(id), Name: *req.Name, Price: *req.Price, }) + if err != nil { + if err == sql.ErrNoRows { + c.JSON(http.StatusNotModified, ErrorResponse{Message: "Item with id=" + c.Param("id") + " not found or is deleted"}) + return + } + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + c.JSON(http.StatusOK, rowToItemResponse(item.ID, item.Name, item.Price, item.Deleted)) } else if req.Name != nil { - item, err = h.queries.PatchItemName(c.Request.Context(), repository.PatchItemNameParams{ + item, err := h.queries.PatchItemName(c.Request.Context(), repository.PatchItemNameParams{ ID: int32(id), Name: *req.Name, }) + if err != nil { + if err == sql.ErrNoRows { + c.JSON(http.StatusNotModified, ErrorResponse{Message: "Item with id=" + c.Param("id") + " not found or is deleted"}) + return + } + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + c.JSON(http.StatusOK, rowToItemResponse(item.ID, item.Name, item.Price, item.Deleted)) } else if req.Price != nil { - item, err = h.queries.PatchItemPrice(c.Request.Context(), repository.PatchItemPriceParams{ + item, err := h.queries.PatchItemPrice(c.Request.Context(), repository.PatchItemPriceParams{ ID: int32(id), Price: *req.Price, }) + if err != nil { + if err == sql.ErrNoRows { + c.JSON(http.StatusNotModified, ErrorResponse{Message: "Item with id=" + c.Param("id") + " not found or is deleted"}) + return + } + c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) + return + } + c.JSON(http.StatusOK, rowToItemResponse(item.ID, item.Name, item.Price, item.Deleted)) } else { // Нет полей для обновления - возвращаем текущий товар existingItem, err := h.queries.GetItem(c.Request.Context(), int32(id)) @@ -307,20 +333,8 @@ func (h *Handler) PatchItem(c *gin.Context) { c.JSON(http.StatusNotModified, ErrorResponse{Message: "Item with id=" + c.Param("id") + " not found or is deleted"}) return } - c.JSON(http.StatusOK, itemToResponse(existingItem)) - return + c.JSON(http.StatusOK, rowToItemResponse(existingItem.ID, existingItem.Name, existingItem.Price, existingItem.Deleted)) } - - if err != nil { - if err == sql.ErrNoRows { - c.JSON(http.StatusNotModified, ErrorResponse{Message: "Item with id=" + c.Param("id") + " not found or is deleted"}) - return - } - c.JSON(http.StatusInternalServerError, ErrorResponse{Message: err.Error()}) - return - } - - c.JSON(http.StatusOK, itemToResponse(item)) } // DeleteItem godoc @@ -416,17 +430,17 @@ func (h *Handler) GetCarts(c *gin.Context) { offset, _ := strconv.Atoi(c.DefaultQuery("offset", "0")) limit, _ := strconv.Atoi(c.DefaultQuery("limit", "10")) - var minPrice, maxPrice sql.NullString + var minPrice, maxPrice sql.NullFloat64 var minQuantity, maxQuantity sql.NullInt32 if minPriceStr := c.Query("min_price"); minPriceStr != "" { - if _, err := strconv.ParseFloat(minPriceStr, 64); err == nil { - minPrice = sql.NullString{String: minPriceStr, Valid: true} + if val, err := strconv.ParseFloat(minPriceStr, 64); err == nil { + minPrice = sql.NullFloat64{Float64: val, Valid: true} } } if maxPriceStr := c.Query("max_price"); maxPriceStr != "" { - if _, err := strconv.ParseFloat(maxPriceStr, 64); err == nil { - maxPrice = sql.NullString{String: maxPriceStr, Valid: true} + if val, err := strconv.ParseFloat(maxPriceStr, 64); err == nil { + maxPrice = sql.NullFloat64{Float64: val, Valid: true} } } if minQtyStr := c.Query("min_quantity"); minQtyStr != "" { diff --git a/lecture4/internal/repository/queries.sql b/lecture4/internal/repository/queries.sql index d36b4f67..e17071dd 100644 --- a/lecture4/internal/repository/queries.sql +++ b/lecture4/internal/repository/queries.sql @@ -2,44 +2,44 @@ -- name: CreateItem :one INSERT INTO items (name, price, deleted) -VALUES ($1, $2, FALSE) -RETURNING *; +VALUES (sqlc.arg('name'), sqlc.arg('price')::float8, FALSE) +RETURNING id, name, price::float8 AS price, deleted, created_at; -- name: GetItem :one -SELECT * FROM items WHERE id = $1; +SELECT id, name, price::float8 AS price, deleted, created_at FROM items WHERE id = $1; -- name: GetItems :many -SELECT * FROM items +SELECT id, name, price::float8 AS price, deleted, created_at FROM items WHERE (sqlc.arg(show_deleted)::boolean = TRUE OR deleted = FALSE) - AND (sqlc.narg('min_price')::numeric IS NULL OR price >= sqlc.narg('min_price')) - AND (sqlc.narg('max_price')::numeric IS NULL OR price <= sqlc.narg('max_price')) + AND (sqlc.narg('min_price')::float8 IS NULL OR price >= sqlc.narg('min_price')) + AND (sqlc.narg('max_price')::float8 IS NULL OR price <= sqlc.narg('max_price')) ORDER BY id LIMIT $1 OFFSET $2; -- name: UpdateItem :one UPDATE items -SET name = $2, price = $3 -WHERE id = $1 -RETURNING *; +SET name = sqlc.arg('name'), price = sqlc.arg('price')::float8 +WHERE id = sqlc.arg('id') +RETURNING id, name, price::float8 AS price, deleted, created_at; -- name: PatchItemName :one UPDATE items -SET name = $2 -WHERE id = $1 AND deleted = FALSE -RETURNING *; +SET name = sqlc.arg('name') +WHERE id = sqlc.arg('id') AND deleted = FALSE +RETURNING id, name, price::float8 AS price, deleted, created_at; -- name: PatchItemPrice :one UPDATE items -SET price = $2 -WHERE id = $1 AND deleted = FALSE -RETURNING *; +SET price = sqlc.arg('price')::float8 +WHERE id = sqlc.arg('id') AND deleted = FALSE +RETURNING id, name, price::float8 AS price, deleted, created_at; -- name: PatchItemBoth :one UPDATE items -SET name = $2, price = $3 -WHERE id = $1 AND deleted = FALSE -RETURNING *; +SET name = sqlc.arg('name'), price = sqlc.arg('price')::float8 +WHERE id = sqlc.arg('id') AND deleted = FALSE +RETURNING id, name, price::float8 AS price, deleted, created_at; -- name: DeleteItem :exec UPDATE items @@ -61,14 +61,14 @@ ORDER BY id LIMIT $1 OFFSET $2; -- name: GetCartItems :many -SELECT ci.cart_id, ci.item_id, ci.quantity, i.name, i.price, i.deleted +SELECT ci.cart_id, ci.item_id, ci.quantity, i.name, i.price::float8 AS price, i.deleted FROM cart_items ci JOIN items i ON ci.item_id = i.id WHERE ci.cart_id = $1 ORDER BY ci.item_id; -- name: GetCartItemsForCarts :many -SELECT ci.cart_id, ci.item_id, ci.quantity, i.name, i.price, i.deleted +SELECT ci.cart_id, ci.item_id, ci.quantity, i.name, i.price::float8 AS price, i.deleted FROM cart_items ci JOIN items i ON ci.item_id = i.id WHERE ci.cart_id = ANY($1::int[]) @@ -82,28 +82,28 @@ DO UPDATE SET quantity = cart_items.quantity + 1 RETURNING *; -- name: GetCartTotalPrice :one -SELECT COALESCE(SUM(ci.quantity * i.price), 0)::numeric as total +SELECT COALESCE(SUM(ci.quantity * i.price), 0)::float8 as total FROM cart_items ci JOIN items i ON ci.item_id = i.id WHERE ci.cart_id = $1 AND i.deleted = FALSE; -- name: GetCartTotalQuantity :one -SELECT COALESCE(SUM(ci.quantity), 0)::bigint as total +SELECT COALESCE(SUM(ci.quantity), 0)::int8 as total FROM cart_items ci WHERE ci.cart_id = $1; -- name: GetAllCartsWithStats :many SELECT c.id, - COALESCE(SUM(ci.quantity), 0)::bigint as total_quantity, - COALESCE(SUM(CASE WHEN i.deleted = FALSE THEN ci.quantity * i.price ELSE 0 END), 0)::numeric as total_price + COALESCE(SUM(ci.quantity), 0)::int8 as total_quantity, + COALESCE(SUM(CASE WHEN i.deleted = FALSE THEN ci.quantity * i.price ELSE 0 END), 0)::float8 as total_price FROM carts c LEFT JOIN cart_items ci ON c.id = ci.cart_id LEFT JOIN items i ON ci.item_id = i.id GROUP BY c.id HAVING - (sqlc.narg('min_price')::numeric IS NULL OR COALESCE(SUM(CASE WHEN i.deleted = FALSE THEN ci.quantity * i.price ELSE 0 END), 0) >= sqlc.narg('min_price')) - AND (sqlc.narg('max_price')::numeric IS NULL OR COALESCE(SUM(CASE WHEN i.deleted = FALSE THEN ci.quantity * i.price ELSE 0 END), 0) <= sqlc.narg('max_price')) + (sqlc.narg('min_price')::float8 IS NULL OR COALESCE(SUM(CASE WHEN i.deleted = FALSE THEN ci.quantity * i.price ELSE 0 END), 0) >= sqlc.narg('min_price')) + AND (sqlc.narg('max_price')::float8 IS NULL OR COALESCE(SUM(CASE WHEN i.deleted = FALSE THEN ci.quantity * i.price ELSE 0 END), 0) <= sqlc.narg('max_price')) AND (sqlc.narg('min_quantity')::int IS NULL OR COALESCE(SUM(ci.quantity), 0) >= sqlc.narg('min_quantity')) AND (sqlc.narg('max_quantity')::int IS NULL OR COALESCE(SUM(ci.quantity), 0) <= sqlc.narg('max_quantity')) ORDER BY c.id diff --git a/lecture4/sqlc.yaml b/lecture4/sqlc.yaml index 50707c4f..ad5f458a 100644 --- a/lecture4/sqlc.yaml +++ b/lecture4/sqlc.yaml @@ -10,11 +10,3 @@ sql: emit_json_tags: true emit_interface: false emit_exact_table_names: false - overrides: - - column: "items.price" - go_type: "float64" - - db_type: "pg_catalog.numeric" - go_type: "float64" - - db_type: "pg_catalog.int8" - go_type: "int64" -